Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Revert "curl: update 8.12.0"
Baptiste Daroussin committed 1 year ago
commit b1915d39901f377f7163218795a3a13256ea7234
parent fe3031f
1059 files changed +24217 -28205
modified external/curl/CMake/CurlSymbolHiding.cmake
@@ -29,13 +29,11 @@ if(WIN32 AND (ENABLE_DEBUG OR ENABLE_CURLDEBUG))
  # e.g. curl_easy_perform_ev() or curl_dbg_*(),
  # so disable symbol hiding for debug builds and for memory tracking.
  set(CURL_HIDDEN_SYMBOLS OFF)
-
elseif(DOS OR AMIGA)
-
  set(CURL_HIDDEN_SYMBOLS OFF)
endif()

set(CURL_HIDES_PRIVATE_SYMBOLS FALSE)
-
set(CURL_EXTERN_SYMBOL "")
-
set(CURL_CFLAG_SYMBOLS_HIDE "")
+
unset(CURL_EXTERN_SYMBOL)
+
unset(CURL_CFLAG_SYMBOLS_HIDE)

if(CURL_HIDDEN_SYMBOLS)
  if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT MSVC)
modified external/curl/CMake/CurlTests.c
@@ -50,6 +50,7 @@ int main(void)
  int flags = 0;
  if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK))
    return 1;
+
  ;
  return 0;
}
#endif
@@ -146,21 +147,24 @@ int main(void) { return 0; }
#endif

#ifdef HAVE_FILE_OFFSET_BITS
+
#ifdef _FILE_OFFSET_BITS
#undef _FILE_OFFSET_BITS
+
#endif
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
-
/* Check that off_t can represent 2**63 - 1 correctly.
-
   We cannot simply define LARGE_OFF_T to be 9223372036854775807,
-
   since some C++ compilers masquerading as C compilers
-
   incorrectly reject 9223372036854775807. */
+
 /* Check that off_t can represent 2**63 - 1 correctly.
+
    We cannot simply define LARGE_OFF_T to be 9223372036854775807,
+
    since some C++ compilers masquerading as C compilers
+
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-
                     && LARGE_OFF_T % 2147483647 == 1)
-
                    ? 1 : -1];
+
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+
                       && LARGE_OFF_T % 2147483647 == 1)
+
                      ? 1 : -1];
int main(void) { return 0; }
#endif

#ifdef HAVE_IOCTLSOCKET
+
/* includes start */
#ifdef _WIN32
#  include <winsock2.h>
#endif
@@ -176,7 +180,10 @@ int main(void)
#endif

#ifdef HAVE_IOCTLSOCKET_CAMEL
-
#include <proto/bsdsocket.h>
+
/* includes start */
+
#ifdef _WIN32
+
#  include <winsock2.h>
+
#endif
int main(void)
{
  /* IoctlSocket source code */
@@ -188,9 +195,9 @@ int main(void)
#endif

#ifdef HAVE_IOCTLSOCKET_CAMEL_FIONBIO
-
#include <proto/bsdsocket.h>
-
#ifdef HAVE_SYS_IOCTL_H
-
#  include <sys/ioctl.h>
+
/* includes start */
+
#ifdef _WIN32
+
#  include <winsock2.h>
#endif
int main(void)
{
@@ -204,6 +211,7 @@ int main(void)
#endif

#ifdef HAVE_IOCTLSOCKET_FIONBIO
+
/* includes start */
#ifdef _WIN32
#  include <winsock2.h>
#endif
@@ -219,6 +227,7 @@ int main(void)

#ifdef HAVE_IOCTL_FIONBIO
/* headers for FIONBIO test */
+
/* includes start */
#ifdef HAVE_SYS_TYPES_H
#  include <sys/types.h>
#endif
@@ -246,6 +255,7 @@ int main(void)

#ifdef HAVE_IOCTL_SIOCGIFADDR
/* headers for FIONBIO test */
+
/* includes start */
#ifdef HAVE_SYS_TYPES_H
#  include <sys/types.h>
#endif
@@ -273,15 +283,18 @@ int main(void)
#endif

#ifdef HAVE_SETSOCKOPT_SO_NONBLOCK
+
/* includes start */
#ifdef _WIN32
#  include <winsock2.h>
#endif
+
/* includes start */
#ifdef HAVE_SYS_TYPES_H
#  include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#  include <sys/socket.h>
#endif
+
/* includes end */
int main(void)
{
  if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0))
@@ -359,6 +372,7 @@ int main(void)
#endif

#ifdef HAVE_ATOMIC
+
/* includes start */
#ifdef HAVE_SYS_TYPES_H
#  include <sys/types.h>
#endif
@@ -368,6 +382,8 @@ int main(void)
#ifdef HAVE_STDATOMIC_H
#  include <stdatomic.h>
#endif
+
/* includes end */
+

int main(void)
{
  _Atomic int i = 1;
@@ -377,12 +393,14 @@ int main(void)
#endif

#ifdef HAVE_WIN32_WINNT
+
/* includes start */
#ifdef _WIN32
#  ifndef NOGDI
-
#  define NOGDI
+
#    define NOGDI
#  endif
#  include <windows.h>
#endif
+
/* includes end */

#define enquote(x) #x
#define expand(x) enquote(x)
@@ -393,20 +411,3 @@ int main(void)
  return 0;
}
#endif
-

-
#ifdef MINGW64_VERSION
-
#ifdef __MINGW32__
-
#  include <_mingw.h>
-
#endif
-

-
#define enquote(x) #x
-
#define expand(x) enquote(x)
-
#pragma message("MINGW64_VERSION=" \
-
  expand(__MINGW64_VERSION_MAJOR) "." \
-
  expand(__MINGW64_VERSION_MINOR))
-

-
int main(void)
-
{
-
  return 0;
-
}
-
#endif
modified external/curl/CMake/FindBrotli.cmake
@@ -34,47 +34,47 @@
# - `BROTLI_FOUND`:          System has brotli.
# - `BROTLI_INCLUDE_DIRS`:   The brotli include directories.
# - `BROTLI_LIBRARIES`:      The brotli library names.
-
# - `BROTLI_LIBRARY_DIRS`:   The brotli library directories.
-
# - `BROTLI_PC_REQUIRES`:    The brotli pkg-config packages.
-
# - `BROTLI_CFLAGS`:         Required compiler flags.
# - `BROTLI_VERSION`:        Version of brotli.

-
set(BROTLI_PC_REQUIRES "libbrotlidec")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED BROTLI_INCLUDE_DIR AND
-
   NOT DEFINED BROTLICOMMON_LIBRARY AND
-
   NOT DEFINED BROTLIDEC_LIBRARY)
+
if(CURL_USE_PKGCONFIG)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(BROTLI "libbrotlicommon")
-
  pkg_check_modules(BROTLIDEC ${BROTLI_PC_REQUIRES})
+
  pkg_check_modules(PC_BROTLI "libbrotlidec")
endif()

-
if(BROTLI_FOUND AND BROTLIDEC_FOUND)
-
  list(APPEND BROTLIDEC_LIBRARIES ${BROTLI_LIBRARIES})  # order is significant: brotlidec then brotlicommon
-
  list(REVERSE BROTLIDEC_LIBRARIES)
-
  list(REMOVE_DUPLICATES BROTLIDEC_LIBRARIES)
-
  list(REVERSE BROTLIDEC_LIBRARIES)
-
  set(BROTLI_LIBRARIES ${BROTLIDEC_LIBRARIES})
-
  string(REPLACE ";" " " BROTLI_CFLAGS "${BROTLI_CFLAGS}")
-
  message(STATUS "Found Brotli (via pkg-config): ${BROTLI_INCLUDE_DIRS} (found version \"${BROTLI_VERSION}\")")
-
else()
-
  find_path(BROTLI_INCLUDE_DIR "brotli/decode.h")
-
  find_library(BROTLICOMMON_LIBRARY NAMES "brotlicommon")
-
  find_library(BROTLIDEC_LIBRARY NAMES "brotlidec")
+
find_path(BROTLI_INCLUDE_DIR "brotli/decode.h"
+
  HINTS
+
    ${PC_BROTLI_INCLUDEDIR}
+
    ${PC_BROTLI_INCLUDE_DIRS}
+
)
+

+
find_library(BROTLICOMMON_LIBRARY NAMES "brotlicommon"
+
  HINTS
+
    ${PC_BROTLI_LIBDIR}
+
    ${PC_BROTLI_LIBRARY_DIRS}
+
)
+
find_library(BROTLIDEC_LIBRARY NAMES "brotlidec"
+
  HINTS
+
    ${PC_BROTLI_LIBDIR}
+
    ${PC_BROTLI_LIBRARY_DIRS}
+
)

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(Brotli
-
    REQUIRED_VARS
-
      BROTLI_INCLUDE_DIR
-
      BROTLIDEC_LIBRARY
-
      BROTLICOMMON_LIBRARY
-
  )
+
if(PC_BROTLI_VERSION)
+
  set(BROTLI_VERSION ${PC_BROTLI_VERSION})
+
endif()

-
  if(BROTLI_FOUND)
-
    set(BROTLI_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})
-
    set(BROTLI_LIBRARIES ${BROTLIDEC_LIBRARY} ${BROTLICOMMON_LIBRARY})
-
  endif()
+
include(FindPackageHandleStandardArgs)
+
find_package_handle_standard_args(Brotli
+
  REQUIRED_VARS
+
    BROTLI_INCLUDE_DIR
+
    BROTLIDEC_LIBRARY
+
    BROTLICOMMON_LIBRARY
+
  VERSION_VAR
+
    BROTLI_VERSION
+
)

-
  mark_as_advanced(BROTLI_INCLUDE_DIR BROTLIDEC_LIBRARY BROTLICOMMON_LIBRARY)
+
if(BROTLI_FOUND)
+
  set(BROTLI_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})
+
  set(BROTLI_LIBRARIES ${BROTLIDEC_LIBRARY} ${BROTLICOMMON_LIBRARY})
endif()
+

+
mark_as_advanced(BROTLI_INCLUDE_DIR BROTLIDEC_LIBRARY BROTLICOMMON_LIBRARY)
modified external/curl/CMake/FindCares.cmake
@@ -33,64 +33,58 @@
# - `CARES_FOUND`:         System has c-ares.
# - `CARES_INCLUDE_DIRS`:  The c-ares include directories.
# - `CARES_LIBRARIES`:     The c-ares library names.
-
# - `CARES_LIBRARY_DIRS`:  The c-ares library directories.
-
# - `CARES_PC_REQUIRES`:   The c-ares pkg-config packages.
-
# - `CARES_CFLAGS`:        Required compiler flags.
# - `CARES_VERSION`:       Version of c-ares.

-
set(CARES_PC_REQUIRES "libcares")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED CARES_INCLUDE_DIR AND
-
   NOT DEFINED CARES_LIBRARY)
+
if(CURL_USE_PKGCONFIG)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(CARES ${CARES_PC_REQUIRES})
+
  pkg_check_modules(PC_CARES "libcares")
endif()

-
if(CARES_FOUND)
-
  string(REPLACE ";" " " CARES_CFLAGS "${CARES_CFLAGS}")
-
  message(STATUS "Found Cares (via pkg-config): ${CARES_INCLUDE_DIRS} (found version \"${CARES_VERSION}\")")
-
else()
-
  find_path(CARES_INCLUDE_DIR NAMES "ares.h")
-
  find_library(CARES_LIBRARY NAMES ${CARES_NAMES} "cares")
+
find_path(CARES_INCLUDE_DIR NAMES "ares.h"
+
  HINTS
+
    ${PC_CARES_INCLUDEDIR}
+
    ${PC_CARES_INCLUDE_DIRS}
+
)

-
  unset(CARES_VERSION CACHE)
-
  if(CARES_INCLUDE_DIR AND EXISTS "${CARES_INCLUDE_DIR}/ares_version.h")
-
    set(_version_regex1 "#[\t ]*define[\t ]+ARES_VERSION_MAJOR[\t ]+([0-9]+).*")
-
    set(_version_regex2 "#[\t ]*define[\t ]+ARES_VERSION_MINOR[\t ]+([0-9]+).*")
-
    set(_version_regex3 "#[\t ]*define[\t ]+ARES_VERSION_PATCH[\t ]+([0-9]+).*")
-
    file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str1 REGEX "${_version_regex1}")
-
    file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str2 REGEX "${_version_regex2}")
-
    file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str3 REGEX "${_version_regex3}")
-
    string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
-
    string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
-
    string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
-
    set(CARES_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
-
    unset(_version_regex1)
-
    unset(_version_regex2)
-
    unset(_version_regex3)
-
    unset(_version_str1)
-
    unset(_version_str2)
-
    unset(_version_str3)
-
  endif()
+
find_library(CARES_LIBRARY NAMES ${CARES_NAMES} "cares"
+
  HINTS
+
    ${PC_CARES_LIBDIR}
+
    ${PC_CARES_LIBRARY_DIRS}
+
)

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(Cares
-
    REQUIRED_VARS
-
      CARES_INCLUDE_DIR
-
      CARES_LIBRARY
-
    VERSION_VAR
-
      CARES_VERSION
-
  )
+
if(PC_CARES_VERSION)
+
  set(CARES_VERSION ${PC_CARES_VERSION})
+
elseif(CARES_INCLUDE_DIR AND EXISTS "${CARES_INCLUDE_DIR}/ares_version.h")
+
  set(_version_regex1 "#[\t ]*define[\t ]+ARES_VERSION_MAJOR[\t ]+([0-9]+).*")
+
  set(_version_regex2 "#[\t ]*define[\t ]+ARES_VERSION_MINOR[\t ]+([0-9]+).*")
+
  set(_version_regex3 "#[\t ]*define[\t ]+ARES_VERSION_PATCH[\t ]+([0-9]+).*")
+
  file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str1 REGEX "${_version_regex1}")
+
  file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str2 REGEX "${_version_regex2}")
+
  file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str3 REGEX "${_version_regex3}")
+
  string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
+
  string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
+
  string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
+
  set(CARES_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
+
  unset(_version_regex1)
+
  unset(_version_regex2)
+
  unset(_version_regex3)
+
  unset(_version_str1)
+
  unset(_version_str2)
+
  unset(_version_str3)
+
endif()

-
  if(CARES_FOUND)
-
    set(CARES_INCLUDE_DIRS ${CARES_INCLUDE_DIR})
-
    set(CARES_LIBRARIES    ${CARES_LIBRARY})
-
  endif()
+
include(FindPackageHandleStandardArgs)
+
find_package_handle_standard_args(Cares
+
  REQUIRED_VARS
+
    CARES_INCLUDE_DIR
+
    CARES_LIBRARY
+
  VERSION_VAR
+
    CARES_VERSION
+
)

-
  mark_as_advanced(CARES_INCLUDE_DIR CARES_LIBRARY)
+
if(CARES_FOUND)
+
  set(CARES_INCLUDE_DIRS ${CARES_INCLUDE_DIR})
+
  set(CARES_LIBRARIES    ${CARES_LIBRARY})
endif()

-
if(CARES_FOUND AND WIN32)
-
  list(APPEND CARES_LIBRARIES "iphlpapi")  # for if_indextoname and others
-
endif()
+
mark_as_advanced(CARES_INCLUDE_DIR CARES_LIBRARY)
modified external/curl/CMake/FindGSS.cmake
@@ -99,7 +99,7 @@ if(NOT _GSS_FOUND) # Not found by pkg-config. Let us take more traditional appr
      string(REGEX REPLACE " +-([^I][^ \\t;]*)" ";-\\1" _GSS_CFLAGS "${_GSS_CFLAGS}")

      foreach(_flag IN LISTS _GSS_CFLAGS)
-
        if(_flag MATCHES "^-I")
+
        if(_flag MATCHES "^-I.*")
          string(REGEX REPLACE "^-I" "" _val "${_flag}")
          list(APPEND _GSS_INCLUDE_DIRS "${_val}")
        else()
@@ -123,10 +123,10 @@ if(NOT _GSS_FOUND) # Not found by pkg-config. Let us take more traditional appr
      string(REGEX REPLACE " +-([^Ll][^ \\t;]*)" ";-\\1" _gss_lib_flags "${_gss_lib_flags}")

      foreach(_flag IN LISTS _gss_lib_flags)
-
        if(_flag MATCHES "^-l")
+
        if(_flag MATCHES "^-l.*")
          string(REGEX REPLACE "^-l" "" _val "${_flag}")
          list(APPEND _GSS_LIBRARIES "${_val}")
-
        elseif(_flag MATCHES "^-L")
+
        elseif(_flag MATCHES "^-L.*")
          string(REGEX REPLACE "^-L" "" _val "${_flag}")
          list(APPEND _GSS_LIBRARY_DIRS "${_val}")
        endif()
@@ -156,7 +156,7 @@ if(NOT _GSS_FOUND) # Not found by pkg-config. Let us take more traditional appr
    if(_gss_configure_failed)
      set(GSS_FLAVOUR "Heimdal")  # most probably, should not really matter
    else()
-
      if(_gss_vendor MATCHES "H|heimdal")
+
      if(_gss_vendor MATCHES ".*H|heimdal.*")
        set(GSS_FLAVOUR "Heimdal")
      else()
        set(GSS_FLAVOUR "MIT")
@@ -175,7 +175,7 @@ if(NOT _GSS_FOUND) # Not found by pkg-config. Let us take more traditional appr

    if(_GSS_INCLUDE_DIRS)  # jay, we have found something
      cmake_push_check_state()
-
      list(APPEND CMAKE_REQUIRED_INCLUDES "${_GSS_INCLUDE_DIRS}")
+
      set(CMAKE_REQUIRED_INCLUDES "${_GSS_INCLUDE_DIRS}")
      check_include_files("gssapi/gssapi_generic.h;gssapi/gssapi_krb5.h" _gss_have_mit_headers)

      if(_gss_have_mit_headers)
deleted external/curl/CMake/FindLDAP.cmake
@@ -1,111 +0,0 @@
-
#***************************************************************************
-
#                                  _   _ ____  _
-
#  Project                     ___| | | |  _ \| |
-
#                             / __| | | | |_) | |
-
#                            | (__| |_| |  _ <| |___
-
#                             \___|\___/|_| \_\_____|
-
#
-
# Copyright (C) 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.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.
-
#
-
# SPDX-License-Identifier: curl
-
#
-
###########################################################################
-
# Find the ldap library
-
#
-
# Input variables:
-
#
-
# - `LDAP_INCLUDE_DIR`:   The ldap include directory.
-
# - `LDAP_LIBRARY`:       Path to `ldap` library.
-
# - `LDAP_LBER_LIBRARY`:  Path to `lber` library.
-
#
-
# Result variables:
-
#
-
# - `LDAP_FOUND`:         System has ldap.
-
# - `LDAP_INCLUDE_DIRS`:  The ldap include directories.
-
# - `LDAP_LIBRARIES`:     The ldap library names.
-
# - `LDAP_LIBRARY_DIRS`:  The ldap library directories.
-
# - `LDAP_PC_REQUIRES`:   The ldap pkg-config packages.
-
# - `LDAP_CFLAGS`:        Required compiler flags.
-
# - `LDAP_VERSION`:       Version of ldap.
-

-
set(LDAP_PC_REQUIRES "ldap")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED LDAP_INCLUDE_DIR AND
-
   NOT DEFINED LDAP_LIBRARY AND
-
   NOT DEFINED LDAP_LBER_LIBRARY)
-
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(LDAP ${LDAP_PC_REQUIRES})
-
  pkg_check_modules(LDAP_LBER "lber")
-
endif()
-

-
if(LDAP_FOUND AND LDAP_LBER_FOUND)
-
  list(APPEND LDAP_LIBRARIES ${LDAP_LBER_LIBRARIES})
-
  list(REVERSE LDAP_LIBRARIES)
-
  list(REMOVE_DUPLICATES LDAP_LIBRARIES)
-
  list(REVERSE LDAP_LIBRARIES)
-
  string(REPLACE ";" " " LDAP_CFLAGS "${LDAP_CFLAGS}")
-
  message(STATUS "Found LDAP (via pkg-config): ${LDAP_INCLUDE_DIRS} (found version \"${LDAP_VERSION}\")")
-
else()
-
  set(LDAP_PC_REQUIRES "")  # Depend on pkg-config only when found via pkg-config
-

-
  # On Apple the SDK LDAP gets picked up from
-
  # 'MacOSX.sdk/System/Library/Frameworks/LDAP.framework/Headers', which contains
-
  # ldap.h and lber.h both being stubs to include <ldap.h> and <lber.h>.
-
  # This causes an infinite inclusion loop in compile. Also do this for libraries
-
  # to avoid picking up the 'ldap.framework' with a full path.
-
  set(_save_cmake_system_framework_path ${CMAKE_SYSTEM_FRAMEWORK_PATH})
-
  set(CMAKE_SYSTEM_FRAMEWORK_PATH "")
-
  find_path(LDAP_INCLUDE_DIR NAMES "ldap.h")
-
  find_library(LDAP_LIBRARY NAMES "ldap")
-
  find_library(LDAP_LBER_LIBRARY NAMES "lber")
-
  set(CMAKE_SYSTEM_FRAMEWORK_PATH ${_save_cmake_system_framework_path})
-

-
  unset(LDAP_VERSION CACHE)
-
  if(LDAP_INCLUDE_DIR AND EXISTS "${LDAP_INCLUDE_DIR}/ldap_features.h")
-
    set(_version_regex1 "#[\t ]*define[\t ]+LDAP_VENDOR_VERSION_MAJOR[\t ]+([0-9]+).*")
-
    set(_version_regex2 "#[\t ]*define[\t ]+LDAP_VENDOR_VERSION_MINOR[\t ]+([0-9]+).*")
-
    set(_version_regex3 "#[\t ]*define[\t ]+LDAP_VENDOR_VERSION_PATCH[\t ]+([0-9]+).*")
-
    file(STRINGS "${LDAP_INCLUDE_DIR}/ldap_features.h" _version_str1 REGEX "${_version_regex1}")
-
    file(STRINGS "${LDAP_INCLUDE_DIR}/ldap_features.h" _version_str2 REGEX "${_version_regex2}")
-
    file(STRINGS "${LDAP_INCLUDE_DIR}/ldap_features.h" _version_str3 REGEX "${_version_regex3}")
-
    string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
-
    string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
-
    string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
-
    set(LDAP_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
-
    unset(_version_regex1)
-
    unset(_version_regex2)
-
    unset(_version_regex3)
-
    unset(_version_str1)
-
    unset(_version_str2)
-
    unset(_version_str3)
-
  endif()
-

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(LDAP
-
    REQUIRED_VARS
-
      LDAP_INCLUDE_DIR
-
      LDAP_LIBRARY
-
      LDAP_LBER_LIBRARY
-
    VERSION_VAR
-
      LDAP_VERSION
-
  )
-

-
  if(LDAP_FOUND)
-
    set(LDAP_INCLUDE_DIRS ${LDAP_INCLUDE_DIR})
-
    set(LDAP_LIBRARIES    ${LDAP_LIBRARY} ${LDAP_LBER_LIBRARY})
-
  endif()
-

-
  mark_as_advanced(LDAP_INCLUDE_DIR LDAP_LIBRARY LDAP_LBER_LIBRARY)
-
endif()
modified external/curl/CMake/FindLibgsasl.cmake
@@ -34,17 +34,14 @@
# - `LIBGSASL_INCLUDE_DIRS`:  The libgsasl include directories.
# - `LIBGSASL_LIBRARIES`:     The libgsasl library names.
# - `LIBGSASL_LIBRARY_DIRS`:  The libgsasl library directories.
-
# - `LIBGSASL_PC_REQUIRES`:   The libgsasl pkg-config packages.
# - `LIBGSASL_CFLAGS`:        Required compiler flags.
# - `LIBGSASL_VERSION`:       Version of libgsasl.

-
set(LIBGSASL_PC_REQUIRES "libgsasl")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED LIBGSASL_INCLUDE_DIR AND
   NOT DEFINED LIBGSASL_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(LIBGSASL ${LIBGSASL_PC_REQUIRES})
+
  pkg_check_modules(LIBGSASL "libgsasl")
endif()

if(LIBGSASL_FOUND)
modified external/curl/CMake/FindLibidn2.cmake
@@ -34,17 +34,14 @@
# - `LIBIDN2_INCLUDE_DIRS`:  The libidn2 include directories.
# - `LIBIDN2_LIBRARIES`:     The libidn2 library names.
# - `LIBIDN2_LIBRARY_DIRS`:  The libidn2 library directories.
-
# - `LIBIDN2_PC_REQUIRES`:   The libidn2 pkg-config packages.
# - `LIBIDN2_CFLAGS`:        Required compiler flags.
# - `LIBIDN2_VERSION`:       Version of libidn2.

-
set(LIBIDN2_PC_REQUIRES "libidn2")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED LIBIDN2_INCLUDE_DIR AND
   NOT DEFINED LIBIDN2_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(LIBIDN2 ${LIBIDN2_PC_REQUIRES})
+
  pkg_check_modules(LIBIDN2 "libidn2")
endif()

if(LIBIDN2_FOUND)
modified external/curl/CMake/FindLibpsl.cmake
@@ -33,50 +33,48 @@
# - `LIBPSL_FOUND`:         System has libpsl.
# - `LIBPSL_INCLUDE_DIRS`:  The libpsl include directories.
# - `LIBPSL_LIBRARIES`:     The libpsl library names.
-
# - `LIBPSL_LIBRARY_DIRS`:  The libpsl library directories.
-
# - `LIBPSL_PC_REQUIRES`:   The libpsl pkg-config packages.
-
# - `LIBPSL_CFLAGS`:        Required compiler flags.
# - `LIBPSL_VERSION`:       Version of libpsl.

-
set(LIBPSL_PC_REQUIRES "libpsl")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED LIBPSL_INCLUDE_DIR AND
-
   NOT DEFINED LIBPSL_LIBRARY)
+
if(CURL_USE_PKGCONFIG)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(LIBPSL ${LIBPSL_PC_REQUIRES})
+
  pkg_check_modules(PC_LIBPSL "libpsl")
endif()

-
if(LIBPSL_FOUND AND LIBPSL_INCLUDE_DIRS)
-
  string(REPLACE ";" " " LIBPSL_CFLAGS "${LIBPSL_CFLAGS}")
-
  message(STATUS "Found Libpsl (via pkg-config): ${LIBPSL_INCLUDE_DIRS} (found version \"${LIBPSL_VERSION}\")")
-
else()
-
  find_path(LIBPSL_INCLUDE_DIR NAMES "libpsl.h")
-
  find_library(LIBPSL_LIBRARY NAMES "psl" "libpsl")
+
find_path(LIBPSL_INCLUDE_DIR NAMES "libpsl.h"
+
  HINTS
+
    ${PC_LIBPSL_INCLUDEDIR}
+
    ${PC_LIBPSL_INCLUDE_DIRS}
+
)

-
  unset(LIBPSL_VERSION CACHE)
-
  if(LIBPSL_INCLUDE_DIR AND EXISTS "${LIBPSL_INCLUDE_DIR}/libpsl.h")
-
    set(_version_regex "#[\t ]*define[\t ]+PSL_VERSION[\t ]+\"([^\"]*)\"")
-
    file(STRINGS "${LIBPSL_INCLUDE_DIR}/libpsl.h" _version_str REGEX "${_version_regex}")
-
    string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
-
    set(LIBPSL_VERSION "${_version_str}")
-
    unset(_version_regex)
-
    unset(_version_str)
-
  endif()
+
find_library(LIBPSL_LIBRARY NAMES "psl" "libpsl"
+
  HINTS
+
    ${PC_LIBPSL_LIBDIR}
+
    ${PC_LIBPSL_LIBRARY_DIRS}
+
)

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(Libpsl
-
    REQUIRED_VARS
-
      LIBPSL_INCLUDE_DIR
-
      LIBPSL_LIBRARY
-
    VERSION_VAR
-
      LIBPSL_VERSION
-
  )
+
if(PC_LIBPSL_VERSION)
+
  set(LIBPSL_VERSION ${PC_LIBPSL_VERSION})
+
elseif(LIBPSL_INCLUDE_DIR AND EXISTS "${LIBPSL_INCLUDE_DIR}/libpsl.h")
+
  set(_version_regex "#[\t ]*define[\t ]+PSL_VERSION[\t ]+\"([^\"]*)\"")
+
  file(STRINGS "${LIBPSL_INCLUDE_DIR}/libpsl.h" _version_str REGEX "${_version_regex}")
+
  string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
+
  set(LIBPSL_VERSION "${_version_str}")
+
  unset(_version_regex)
+
  unset(_version_str)
+
endif()

-
  if(LIBPSL_FOUND)
-
    set(LIBPSL_INCLUDE_DIRS ${LIBPSL_INCLUDE_DIR})
-
    set(LIBPSL_LIBRARIES    ${LIBPSL_LIBRARY})
-
  endif()
+
include(FindPackageHandleStandardArgs)
+
find_package_handle_standard_args(Libpsl
+
  REQUIRED_VARS
+
    LIBPSL_INCLUDE_DIR
+
    LIBPSL_LIBRARY
+
  VERSION_VAR
+
    LIBPSL_VERSION
+
)

-
  mark_as_advanced(LIBPSL_INCLUDE_DIR LIBPSL_LIBRARY)
+
if(LIBPSL_FOUND)
+
  set(LIBPSL_INCLUDE_DIRS ${LIBPSL_INCLUDE_DIR})
+
  set(LIBPSL_LIBRARIES    ${LIBPSL_LIBRARY})
endif()
+

+
mark_as_advanced(LIBPSL_INCLUDE_DIR LIBPSL_LIBRARY)
deleted external/curl/CMake/FindLibrtmp.cmake
@@ -1,102 +0,0 @@
-
#***************************************************************************
-
#                                  _   _ ____  _
-
#  Project                     ___| | | |  _ \| |
-
#                             / __| | | | |_) | |
-
#                            | (__| |_| |  _ <| |___
-
#                             \___|\___/|_| \_\_____|
-
#
-
# Copyright (C) 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.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.
-
#
-
# SPDX-License-Identifier: curl
-
#
-
###########################################################################
-
# Find the librtmp library
-
#
-
# Input variables:
-
#
-
# - `LIBRTMP_INCLUDE_DIR`:   The librtmp include directory.
-
# - `LIBRTMP_LIBRARY`:       Path to `librtmp` library.
-
#
-
# Result variables:
-
#
-
# - `LIBRTMP_FOUND`:         System has librtmp.
-
# - `LIBRTMP_INCLUDE_DIRS`:  The librtmp include directories.
-
# - `LIBRTMP_LIBRARIES`:     The librtmp library names.
-
# - `LIBRTMP_LIBRARY_DIRS`:  The librtmp library directories.
-
# - `LIBRTMP_PC_REQUIRES`:   The librtmp pkg-config packages.
-
# - `LIBRTMP_CFLAGS`:        Required compiler flags.
-
# - `LIBRTMP_VERSION`:       Version of librtmp.
-

-
set(LIBRTMP_PC_REQUIRES "librtmp")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED LIBRTMP_INCLUDE_DIR AND
-
   NOT DEFINED LIBRTMP_LIBRARY)
-
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(LIBRTMP ${LIBRTMP_PC_REQUIRES})
-
endif()
-

-
if(LIBRTMP_FOUND AND LIBRTMP_INCLUDE_DIRS)
-
  string(REPLACE ";" " " LIBRTMP_CFLAGS "${LIBRTMP_CFLAGS}")
-
  message(STATUS "Found Librtmp (via pkg-config): ${LIBRTMP_INCLUDE_DIRS} (found version \"${LIBRTMP_VERSION}\")")
-
else()
-
  find_path(LIBRTMP_INCLUDE_DIR NAMES "librtmp/rtmp.h")
-
  find_library(LIBRTMP_LIBRARY NAMES "rtmp")
-

-
  unset(LIBRTMP_VERSION CACHE)
-
  if(LIBRTMP_INCLUDE_DIR AND EXISTS "${LIBRTMP_INCLUDE_DIR}/librtmp/rtmp.h")
-
    set(_version_regex "#[\t ]*define[\t ]+RTMP_LIB_VERSION[\t ]+0x([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F]).*")
-
    file(STRINGS "${LIBRTMP_INCLUDE_DIR}/librtmp/rtmp.h" _version_str REGEX "${_version_regex}")
-
    string(REGEX REPLACE "${_version_regex}" "\\1" _version_str1 "${_version_str}")
-
    string(REGEX REPLACE "${_version_regex}" "\\2" _version_str2 "${_version_str}")
-
    if(CMAKE_VERSION VERSION_LESS 3.13)
-
      # No support for hex version numbers, just strip leading zeroes
-
      string(REGEX REPLACE "^0" "" _version_str1 "${_version_str1}")
-
      string(REGEX REPLACE "^0" "" _version_str2 "${_version_str2}")
-
    else()
-
      math(EXPR _version_str1 "0x${_version_str1}" OUTPUT_FORMAT DECIMAL)
-
      math(EXPR _version_str2 "0x${_version_str2}" OUTPUT_FORMAT DECIMAL)
-
    endif()
-
    set(LIBRTMP_VERSION "${_version_str1}.${_version_str2}")
-
    unset(_version_regex)
-
    unset(_version_str1)
-
    unset(_version_str2)
-
  endif()
-

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(Librtmp
-
    REQUIRED_VARS
-
      LIBRTMP_INCLUDE_DIR
-
      LIBRTMP_LIBRARY
-
    VERSION_VAR
-
      LIBRTMP_VERSION
-
  )
-

-
  if(LIBRTMP_FOUND)
-
    set(LIBRTMP_INCLUDE_DIRS ${LIBRTMP_INCLUDE_DIR})
-
    set(LIBRTMP_LIBRARIES    ${LIBRTMP_LIBRARY})
-
  endif()
-

-
  mark_as_advanced(LIBRTMP_INCLUDE_DIR LIBRTMP_LIBRARY)
-

-
  # Necessary when linking a static librtmp
-
  find_package(OpenSSL)
-
  if(OPENSSL_FOUND)
-
    list(APPEND LIBRTMP_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
-
  endif()
-
endif()
-

-
if(LIBRTMP_FOUND AND WIN32)
-
  list(APPEND LIBRTMP_LIBRARIES "winmm")
-
endif()
modified external/curl/CMake/FindLibssh.cmake
@@ -25,26 +25,23 @@
#
# Input variables:
#
-
# - `LIBSSH_INCLUDE_DIR`:   The libssh include directory.
-
# - `LIBSSH_LIBRARY`:       Path to libssh library.
+
# LIBSSH_INCLUDE_DIR   The libssh include directory.
+
# LIBSSH_LIBRARY       Path to libssh library.
#
# Result variables:
#
-
# - `LIBSSH_FOUND`:         System has libssh.
-
# - `LIBSSH_INCLUDE_DIRS`:  The libssh include directories.
-
# - `LIBSSH_LIBRARIES`:     The libssh library names.
-
# - `LIBSSH_LIBRARY_DIRS`:  The libssh library directories.
-
# - `LIBSSH_PC_REQUIRES`:   The libssh pkg-config packages.
-
# - `LIBSSH_CFLAGS`:        Required compiler flags.
-
# - `LIBSSH_VERSION`:       Version of libssh.
-

-
set(LIBSSH_PC_REQUIRES "libssh")
+
# LIBSSH_FOUND         System has libssh.
+
# LIBSSH_INCLUDE_DIRS  The libssh include directories.
+
# LIBSSH_LIBRARIES     The libssh library names.
+
# LIBSSH_LIBRARY_DIRS  The libssh library directories.
+
# LIBSSH_CFLAGS        Required compiler flags.
+
# LIBSSH_VERSION       Version of libssh.

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED LIBSSH_INCLUDE_DIR AND
   NOT DEFINED LIBSSH_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(LIBSSH ${LIBSSH_PC_REQUIRES})
+
  pkg_check_modules(LIBSSH "libssh")
endif()

if(LIBSSH_FOUND)
modified external/curl/CMake/FindLibssh2.cmake
@@ -33,50 +33,48 @@
# - `LIBSSH2_FOUND`:         System has libssh2.
# - `LIBSSH2_INCLUDE_DIRS`:  The libssh2 include directories.
# - `LIBSSH2_LIBRARIES`:     The libssh2 library names.
-
# - `LIBSSH2_LIBRARY_DIRS`:  The libssh2 library directories.
-
# - `LIBSSH2_PC_REQUIRES`:   The libssh2 pkg-config packages.
-
# - `LIBSSH2_CFLAGS`:        Required compiler flags.
# - `LIBSSH2_VERSION`:       Version of libssh2.

-
set(LIBSSH2_PC_REQUIRES "libssh2")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED LIBSSH2_INCLUDE_DIR AND
-
   NOT DEFINED LIBSSH2_LIBRARY)
+
if(CURL_USE_PKGCONFIG)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(LIBSSH2 ${LIBSSH2_PC_REQUIRES})
+
  pkg_check_modules(PC_LIBSSH2 "libssh2")
endif()

-
if(LIBSSH2_FOUND AND LIBSSH2_INCLUDE_DIRS)
-
  string(REPLACE ";" " " LIBSSH2_CFLAGS "${LIBSSH2_CFLAGS}")
-
  message(STATUS "Found Libssh2 (via pkg-config): ${LIBSSH2_INCLUDE_DIRS} (found version \"${LIBSSH2_VERSION}\")")
-
else()
-
  find_path(LIBSSH2_INCLUDE_DIR NAMES "libssh2.h")
-
  find_library(LIBSSH2_LIBRARY NAMES "ssh2" "libssh2")
+
find_path(LIBSSH2_INCLUDE_DIR NAMES "libssh2.h"
+
  HINTS
+
    ${PC_LIBSSH2_INCLUDEDIR}
+
    ${PC_LIBSSH2_INCLUDE_DIRS}
+
)

-
  unset(LIBSSH2_VERSION CACHE)
-
  if(LIBSSH2_INCLUDE_DIR AND EXISTS "${LIBSSH2_INCLUDE_DIR}/libssh2.h")
-
    set(_version_regex "#[\t ]*define[\t ]+LIBSSH2_VERSION[\t ]+\"([^\"]*)\"")
-
    file(STRINGS "${LIBSSH2_INCLUDE_DIR}/libssh2.h" _version_str REGEX "${_version_regex}")
-
    string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
-
    set(LIBSSH2_VERSION "${_version_str}")
-
    unset(_version_regex)
-
    unset(_version_str)
-
  endif()
+
find_library(LIBSSH2_LIBRARY NAMES "ssh2" "libssh2"
+
  HINTS
+
    ${PC_LIBSSH2_LIBDIR}
+
    ${PC_LIBSSH2_LIBRARY_DIRS}
+
)

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(Libssh2
-
    REQUIRED_VARS
-
      LIBSSH2_INCLUDE_DIR
-
      LIBSSH2_LIBRARY
-
    VERSION_VAR
-
      LIBSSH2_VERSION
-
  )
+
if(PC_LIBSSH2_VERSION)
+
  set(LIBSSH2_VERSION ${PC_LIBSSH2_VERSION})
+
elseif(LIBSSH2_INCLUDE_DIR AND EXISTS "${LIBSSH2_INCLUDE_DIR}/libssh2.h")
+
  set(_version_regex "#[\t ]*define[\t ]+LIBSSH2_VERSION[\t ]+\"([^\"]*)\"")
+
  file(STRINGS "${LIBSSH2_INCLUDE_DIR}/libssh2.h" _version_str REGEX "${_version_regex}")
+
  string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
+
  set(LIBSSH2_VERSION "${_version_str}")
+
  unset(_version_regex)
+
  unset(_version_str)
+
endif()

-
  if(LIBSSH2_FOUND)
-
    set(LIBSSH2_INCLUDE_DIRS ${LIBSSH2_INCLUDE_DIR})
-
    set(LIBSSH2_LIBRARIES    ${LIBSSH2_LIBRARY})
-
  endif()
+
include(FindPackageHandleStandardArgs)
+
find_package_handle_standard_args(Libssh2
+
  REQUIRED_VARS
+
    LIBSSH2_INCLUDE_DIR
+
    LIBSSH2_LIBRARY
+
  VERSION_VAR
+
    LIBSSH2_VERSION
+
)

-
  mark_as_advanced(LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY)
+
if(LIBSSH2_FOUND)
+
  set(LIBSSH2_INCLUDE_DIRS ${LIBSSH2_INCLUDE_DIR})
+
  set(LIBSSH2_LIBRARIES    ${LIBSSH2_LIBRARY})
endif()
+

+
mark_as_advanced(LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY)
modified external/curl/CMake/FindLibuv.cmake
@@ -34,17 +34,14 @@
# - `LIBUV_INCLUDE_DIRS`:  The libuv include directories.
# - `LIBUV_LIBRARIES`:     The libuv library names.
# - `LIBUV_LIBRARY_DIRS`:  The libuv library directories.
-
# - `LIBUV_PC_REQUIRES`:   The libuv pkg-config packages.
# - `LIBUV_CFLAGS`:        Required compiler flags.
# - `LIBUV_VERSION`:       Version of libuv.

-
set(LIBUV_PC_REQUIRES "libuv")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED LIBUV_INCLUDE_DIR AND
   NOT DEFINED LIBUV_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(LIBUV ${LIBUV_PC_REQUIRES})
+
  pkg_check_modules(LIBUV "libuv")
endif()

if(LIBUV_FOUND)
modified external/curl/CMake/FindMSH3.cmake
@@ -38,21 +38,18 @@
# - `MSH3_CFLAGS`:        Required compiler flags.
# - `MSH3_VERSION`:       Version of msh3.

-
set(MSH3_PC_REQUIRES "libmsh3")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED MSH3_INCLUDE_DIR AND
   NOT DEFINED MSH3_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(MSH3 ${MSH3_PC_REQUIRES})
+
  pkg_check_modules(MSH3 "libmsh3")
endif()

if(MSH3_FOUND)
+
  set(MSH3_PC_REQUIRES "libmsh3")
  string(REPLACE ";" " " MSH3_CFLAGS "${MSH3_CFLAGS}")
  message(STATUS "Found MSH3 (via pkg-config): ${MSH3_INCLUDE_DIRS} (found version \"${MSH3_VERSION}\")")
else()
-
  set(MSH3_PC_REQUIRES "")  # Depend on pkg-config only when found via pkg-config
-

  find_path(MSH3_INCLUDE_DIR NAMES "msh3.h")
  find_library(MSH3_LIBRARY NAMES "msh3")

modified external/curl/CMake/FindMbedTLS.cmake
@@ -46,29 +46,24 @@ if(DEFINED MBEDTLS_INCLUDE_DIRS AND NOT DEFINED MBEDTLS_INCLUDE_DIR)
  unset(MBEDTLS_INCLUDE_DIRS)
endif()

-
set(MBEDTLS_PC_REQUIRES "mbedtls")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED MBEDTLS_INCLUDE_DIR AND
   NOT DEFINED MBEDTLS_LIBRARY AND
   NOT DEFINED MBEDX509_LIBRARY AND
   NOT DEFINED MBEDCRYPTO_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(MBEDTLS ${MBEDTLS_PC_REQUIRES})
+
  pkg_check_modules(MBEDTLS "mbedtls")
  pkg_check_modules(MBEDX509 "mbedx509")
  pkg_check_modules(MBEDCRYPTO "mbedcrypto")
endif()

if(MBEDTLS_FOUND AND MBEDX509_FOUND AND MBEDCRYPTO_FOUND)
  list(APPEND MBEDTLS_LIBRARIES ${MBEDX509_LIBRARIES} ${MBEDCRYPTO_LIBRARIES})
-
  list(REVERSE MBEDTLS_LIBRARIES)
  list(REMOVE_DUPLICATES MBEDTLS_LIBRARIES)
-
  list(REVERSE MBEDTLS_LIBRARIES)
+
  set(MBEDTLS_PC_REQUIRES "mbedtls")
  string(REPLACE ";" " " MBEDTLS_CFLAGS "${MBEDTLS_CFLAGS}")
  message(STATUS "Found MbedTLS (via pkg-config): ${MBEDTLS_INCLUDE_DIRS} (found version \"${MBEDTLS_VERSION}\")")
else()
-
  set(MBEDTLS_PC_REQUIRES "")  # Depend on pkg-config only when found via pkg-config
-

  find_path(MBEDTLS_INCLUDE_DIR NAMES "mbedtls/ssl.h")
  find_library(MBEDTLS_LIBRARY NAMES "mbedtls" "libmbedtls")
  find_library(MBEDX509_LIBRARY NAMES "mbedx509" "libmbedx509")
modified external/curl/CMake/FindNGHTTP2.cmake
@@ -33,50 +33,48 @@
# - `NGHTTP2_FOUND`:         System has nghttp2.
# - `NGHTTP2_INCLUDE_DIRS`:  The nghttp2 include directories.
# - `NGHTTP2_LIBRARIES`:     The nghttp2 library names.
-
# - `NGHTTP2_LIBRARY_DIRS`:  The nghttp2 library directories.
-
# - `NGHTTP2_PC_REQUIRES`:   The nghttp2 pkg-config packages.
-
# - `NGHTTP2_CFLAGS`:        Required compiler flags.
# - `NGHTTP2_VERSION`:       Version of nghttp2.

-
set(NGHTTP2_PC_REQUIRES "libnghttp2")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED NGHTTP2_INCLUDE_DIR AND
-
   NOT DEFINED NGHTTP2_LIBRARY)
+
if(CURL_USE_PKGCONFIG)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(NGHTTP2 ${NGHTTP2_PC_REQUIRES})
+
  pkg_check_modules(PC_NGHTTP2 "libnghttp2")
endif()

-
if(NGHTTP2_FOUND)
-
  string(REPLACE ";" " " NGHTTP2_CFLAGS "${NGHTTP2_CFLAGS}")
-
  message(STATUS "Found NGHTTP2 (via pkg-config): ${NGHTTP2_INCLUDE_DIRS} (found version \"${NGHTTP2_VERSION}\")")
-
else()
-
  find_path(NGHTTP2_INCLUDE_DIR NAMES "nghttp2/nghttp2.h")
-
  find_library(NGHTTP2_LIBRARY NAMES "nghttp2" "nghttp2_static")
+
find_path(NGHTTP2_INCLUDE_DIR NAMES "nghttp2/nghttp2.h"
+
  HINTS
+
    ${PC_NGHTTP2_INCLUDEDIR}
+
    ${PC_NGHTTP2_INCLUDE_DIRS}
+
)

-
  unset(NGHTTP2_VERSION CACHE)
-
  if(NGHTTP2_INCLUDE_DIR AND EXISTS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2ver.h")
-
    set(_version_regex "#[\t ]*define[\t ]+NGHTTP2_VERSION[\t ]+\"([^\"]*)\"")
-
    file(STRINGS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2ver.h" _version_str REGEX "${_version_regex}")
-
    string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
-
    set(NGHTTP2_VERSION "${_version_str}")
-
    unset(_version_regex)
-
    unset(_version_str)
-
  endif()
+
find_library(NGHTTP2_LIBRARY NAMES "nghttp2" "nghttp2_static"
+
  HINTS
+
    ${PC_NGHTTP2_LIBDIR}
+
    ${PC_NGHTTP2_LIBRARY_DIRS}
+
)

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(NGHTTP2
-
    REQUIRED_VARS
-
      NGHTTP2_INCLUDE_DIR
-
      NGHTTP2_LIBRARY
-
    VERSION_VAR
-
      NGHTTP2_VERSION
-
  )
+
if(PC_NGHTTP2_VERSION)
+
  set(NGHTTP2_VERSION ${PC_NGHTTP2_VERSION})
+
elseif(NGHTTP2_INCLUDE_DIR AND EXISTS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2ver.h")
+
  set(_version_regex "#[\t ]*define[\t ]+NGHTTP2_VERSION[\t ]+\"([^\"]*)\"")
+
  file(STRINGS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2ver.h" _version_str REGEX "${_version_regex}")
+
  string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
+
  set(NGHTTP2_VERSION "${_version_str}")
+
  unset(_version_regex)
+
  unset(_version_str)
+
endif()

-
  if(NGHTTP2_FOUND)
-
    set(NGHTTP2_INCLUDE_DIRS ${NGHTTP2_INCLUDE_DIR})
-
    set(NGHTTP2_LIBRARIES    ${NGHTTP2_LIBRARY})
-
  endif()
+
include(FindPackageHandleStandardArgs)
+
find_package_handle_standard_args(NGHTTP2
+
  REQUIRED_VARS
+
    NGHTTP2_INCLUDE_DIR
+
    NGHTTP2_LIBRARY
+
  VERSION_VAR
+
    NGHTTP2_VERSION
+
)

-
  mark_as_advanced(NGHTTP2_INCLUDE_DIR NGHTTP2_LIBRARY)
+
if(NGHTTP2_FOUND)
+
  set(NGHTTP2_INCLUDE_DIRS ${NGHTTP2_INCLUDE_DIR})
+
  set(NGHTTP2_LIBRARIES    ${NGHTTP2_LIBRARY})
endif()
+

+
mark_as_advanced(NGHTTP2_INCLUDE_DIR NGHTTP2_LIBRARY)
modified external/curl/CMake/FindNGHTTP3.cmake
@@ -33,50 +33,48 @@
# - `NGHTTP3_FOUND`:         System has nghttp3.
# - `NGHTTP3_INCLUDE_DIRS`:  The nghttp3 include directories.
# - `NGHTTP3_LIBRARIES`:     The nghttp3 library names.
-
# - `NGHTTP3_LIBRARY_DIRS`:  The nghttp3 library directories.
-
# - `NGHTTP3_PC_REQUIRES`:   The nghttp3 pkg-config packages.
-
# - `NGHTTP3_CFLAGS`:        Required compiler flags.
# - `NGHTTP3_VERSION`:       Version of nghttp3.

-
set(NGHTTP3_PC_REQUIRES "libnghttp3")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED NGHTTP3_INCLUDE_DIR AND
-
   NOT DEFINED NGHTTP3_LIBRARY)
+
if(CURL_USE_PKGCONFIG)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(NGHTTP3 ${NGHTTP3_PC_REQUIRES})
+
  pkg_check_modules(PC_NGHTTP3 "libnghttp3")
endif()

-
if(NGHTTP3_FOUND)
-
  string(REPLACE ";" " " NGHTTP3_CFLAGS "${NGHTTP3_CFLAGS}")
-
  message(STATUS "Found NGHTTP3 (via pkg-config): ${NGHTTP3_INCLUDE_DIRS} (found version \"${NGHTTP3_VERSION}\")")
-
else()
-
  find_path(NGHTTP3_INCLUDE_DIR NAMES "nghttp3/nghttp3.h")
-
  find_library(NGHTTP3_LIBRARY NAMES "nghttp3")
+
find_path(NGHTTP3_INCLUDE_DIR NAMES "nghttp3/nghttp3.h"
+
  HINTS
+
    ${PC_NGHTTP3_INCLUDEDIR}
+
    ${PC_NGHTTP3_INCLUDE_DIRS}
+
)

-
  unset(NGHTTP3_VERSION CACHE)
-
  if(NGHTTP3_INCLUDE_DIR AND EXISTS "${NGHTTP3_INCLUDE_DIR}/nghttp3/version.h")
-
    set(_version_regex "#[\t ]*define[\t ]+NGHTTP3_VERSION[\t ]+\"([^\"]*)\"")
-
    file(STRINGS "${NGHTTP3_INCLUDE_DIR}/nghttp3/version.h" _version_str REGEX "${_version_regex}")
-
    string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
-
    set(NGHTTP3_VERSION "${_version_str}")
-
    unset(_version_regex)
-
    unset(_version_str)
-
  endif()
+
find_library(NGHTTP3_LIBRARY NAMES "nghttp3"
+
  HINTS
+
    ${PC_NGHTTP3_LIBDIR}
+
    ${PC_NGHTTP3_LIBRARY_DIRS}
+
)

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(NGHTTP3
-
    REQUIRED_VARS
-
      NGHTTP3_INCLUDE_DIR
-
      NGHTTP3_LIBRARY
-
    VERSION_VAR
-
      NGHTTP3_VERSION
-
  )
+
if(PC_NGHTTP3_VERSION)
+
  set(NGHTTP3_VERSION ${PC_NGHTTP3_VERSION})
+
elseif(NGHTTP3_INCLUDE_DIR AND EXISTS "${NGHTTP3_INCLUDE_DIR}/nghttp3/version.h")
+
  set(_version_regex "#[\t ]*define[\t ]+NGHTTP3_VERSION[\t ]+\"([^\"]*)\"")
+
  file(STRINGS "${NGHTTP3_INCLUDE_DIR}/nghttp3/version.h" _version_str REGEX "${_version_regex}")
+
  string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
+
  set(NGHTTP3_VERSION "${_version_str}")
+
  unset(_version_regex)
+
  unset(_version_str)
+
endif()

-
  if(NGHTTP3_FOUND)
-
    set(NGHTTP3_INCLUDE_DIRS ${NGHTTP3_INCLUDE_DIR})
-
    set(NGHTTP3_LIBRARIES    ${NGHTTP3_LIBRARY})
-
  endif()
+
include(FindPackageHandleStandardArgs)
+
find_package_handle_standard_args(NGHTTP3
+
  REQUIRED_VARS
+
    NGHTTP3_INCLUDE_DIR
+
    NGHTTP3_LIBRARY
+
  VERSION_VAR
+
    NGHTTP3_VERSION
+
)

-
  mark_as_advanced(NGHTTP3_INCLUDE_DIR NGHTTP3_LIBRARY)
+
if(NGHTTP3_FOUND)
+
  set(NGHTTP3_INCLUDE_DIRS ${NGHTTP3_INCLUDE_DIR})
+
  set(NGHTTP3_LIBRARIES    ${NGHTTP3_LIBRARY})
endif()
+

+
mark_as_advanced(NGHTTP3_INCLUDE_DIR NGHTTP3_LIBRARY)
modified external/curl/CMake/FindNGTCP2.cmake
@@ -41,11 +41,36 @@
# - `NGTCP2_FOUND`:         System has ngtcp2.
# - `NGTCP2_INCLUDE_DIRS`:  The ngtcp2 include directories.
# - `NGTCP2_LIBRARIES`:     The ngtcp2 library names.
-
# - `NGTCP2_LIBRARY_DIRS`:  The ngtcp2 library directories.
-
# - `NGTCP2_PC_REQUIRES`:   The ngtcp2 pkg-config packages.
-
# - `NGTCP2_CFLAGS`:        Required compiler flags.
# - `NGTCP2_VERSION`:       Version of ngtcp2.

+
if(CURL_USE_PKGCONFIG)
+
  find_package(PkgConfig QUIET)
+
  pkg_check_modules(PC_NGTCP2 "libngtcp2")
+
endif()
+

+
find_path(NGTCP2_INCLUDE_DIR NAMES "ngtcp2/ngtcp2.h"
+
  HINTS
+
    ${PC_NGTCP2_INCLUDEDIR}
+
    ${PC_NGTCP2_INCLUDE_DIRS}
+
)
+

+
find_library(NGTCP2_LIBRARY NAMES "ngtcp2"
+
  HINTS
+
    ${PC_NGTCP2_LIBDIR}
+
    ${PC_NGTCP2_LIBRARY_DIRS}
+
)
+

+
if(PC_NGTCP2_VERSION)
+
  set(NGTCP2_VERSION ${PC_NGTCP2_VERSION})
+
elseif(NGTCP2_INCLUDE_DIR AND EXISTS "${NGTCP2_INCLUDE_DIR}/ngtcp2/version.h")
+
  set(_version_regex "#[\t ]*define[\t ]+NGTCP2_VERSION[\t ]+\"([^\"]*)\"")
+
  file(STRINGS "${NGTCP2_INCLUDE_DIR}/ngtcp2/version.h" _version_str REGEX "${_version_regex}")
+
  string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
+
  set(NGTCP2_VERSION "${_version_str}")
+
  unset(_version_regex)
+
  unset(_version_str)
+
endif()
+

if(NGTCP2_FIND_COMPONENTS)
  set(_ngtcp2_crypto_backend "")
  foreach(_component IN LISTS NGTCP2_FIND_COMPONENTS)
@@ -58,73 +83,40 @@ if(NGTCP2_FIND_COMPONENTS)
  endforeach()

  if(_ngtcp2_crypto_backend)
-
    string(TOLOWER "ngtcp2_crypto_${_ngtcp2_crypto_backend}" _crypto_library_lower)
-
    string(TOUPPER "ngtcp2_crypto_${_ngtcp2_crypto_backend}" _crypto_library_upper)
-
  endif()
-
endif()
-

-
set(NGTCP2_PC_REQUIRES "libngtcp2")
-
if(_ngtcp2_crypto_backend)
-
  set(NGTCP2_CRYPTO_PC_REQUIRES "lib${_crypto_library_lower}")
-
endif()
+
    string(TOLOWER "ngtcp2_crypto_${_ngtcp2_crypto_backend}" _crypto_library)

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED NGTCP2_INCLUDE_DIR AND
-
   NOT DEFINED NGTCP2_LIBRARY)
-
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(NGTCP2 ${NGTCP2_PC_REQUIRES})
-
  if(_ngtcp2_crypto_backend)
-
    pkg_check_modules("${_crypto_library_upper}" ${NGTCP2_CRYPTO_PC_REQUIRES})
-
  else()
-
    set("${_crypto_library_upper}_FOUND" TRUE)
-
  endif()
-
endif()
-

-
list(APPEND NGTCP2_PC_REQUIRES ${NGTCP2_CRYPTO_PC_REQUIRES})
-

-
if(NGTCP2_FOUND AND "${${_crypto_library_upper}_FOUND}")
-
  list(APPEND NGTCP2_LIBRARIES "${${_crypto_library_upper}_LIBRARIES}")
-
  list(REMOVE_DUPLICATES NGTCP2_LIBRARIES)
-
  string(REPLACE ";" " " NGTCP2_CFLAGS "${NGTCP2_CFLAGS}")
-
  message(STATUS "Found NGTCP2 (via pkg-config): ${NGTCP2_INCLUDE_DIRS} (found version \"${NGTCP2_VERSION}\")")
-
else()
-
  find_path(NGTCP2_INCLUDE_DIR NAMES "ngtcp2/ngtcp2.h")
-
  find_library(NGTCP2_LIBRARY NAMES "ngtcp2")
-

-
  unset(NGTCP2_VERSION CACHE)
-
  if(NGTCP2_INCLUDE_DIR AND EXISTS "${NGTCP2_INCLUDE_DIR}/ngtcp2/version.h")
-
    set(_version_regex "#[\t ]*define[\t ]+NGTCP2_VERSION[\t ]+\"([^\"]*)\"")
-
    file(STRINGS "${NGTCP2_INCLUDE_DIR}/ngtcp2/version.h" _version_str REGEX "${_version_regex}")
-
    string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
-
    set(NGTCP2_VERSION "${_version_str}")
-
    unset(_version_regex)
-
    unset(_version_str)
-
  endif()
+
    if(CURL_USE_PKGCONFIG)
+
      pkg_check_modules(PC_${_crypto_library} "lib${_crypto_library}")
+
    endif()

-
  if(_ngtcp2_crypto_backend)
    get_filename_component(_ngtcp2_library_dir "${NGTCP2_LIBRARY}" DIRECTORY)
-
    find_library(${_crypto_library_upper}_LIBRARY NAMES ${_crypto_library_lower} HINTS ${_ngtcp2_library_dir})
+
    find_library(${_crypto_library}_LIBRARY NAMES ${_crypto_library}
+
      HINTS
+
        ${_ngtcp2_library_dir}
+
        ${PC_${_crypto_library}_LIBDIR}
+
        ${PC_${_crypto_library}_LIBRARY_DIRS}
+
    )

-
    if(${_crypto_library_upper}_LIBRARY)
+
    if(${_crypto_library}_LIBRARY)
      set(NGTCP2_${_ngtcp2_crypto_backend}_FOUND TRUE)
-
      set(NGTCP2_CRYPTO_LIBRARY ${${_crypto_library_upper}_LIBRARY})
+
      set(NGTCP2_CRYPTO_LIBRARY ${${_crypto_library}_LIBRARY})
    endif()
  endif()
+
endif()

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(NGTCP2
-
    REQUIRED_VARS
-
      NGTCP2_INCLUDE_DIR
-
      NGTCP2_LIBRARY
-
    VERSION_VAR
-
      NGTCP2_VERSION
-
    HANDLE_COMPONENTS
-
  )
-

-
  if(NGTCP2_FOUND)
-
    set(NGTCP2_INCLUDE_DIRS ${NGTCP2_INCLUDE_DIR})
-
    set(NGTCP2_LIBRARIES    ${NGTCP2_LIBRARY} ${NGTCP2_CRYPTO_LIBRARY})
-
  endif()
+
include(FindPackageHandleStandardArgs)
+
find_package_handle_standard_args(NGTCP2
+
  REQUIRED_VARS
+
    NGTCP2_INCLUDE_DIR
+
    NGTCP2_LIBRARY
+
  VERSION_VAR
+
    NGTCP2_VERSION
+
  HANDLE_COMPONENTS
+
)

-
  mark_as_advanced(NGTCP2_INCLUDE_DIR NGTCP2_LIBRARY NGTCP2_CRYPTO_LIBRARY)
+
if(NGTCP2_FOUND)
+
  set(NGTCP2_INCLUDE_DIRS ${NGTCP2_INCLUDE_DIR})
+
  set(NGTCP2_LIBRARIES    ${NGTCP2_LIBRARY} ${NGTCP2_CRYPTO_LIBRARY})
endif()
+

+
mark_as_advanced(NGTCP2_INCLUDE_DIR NGTCP2_LIBRARY NGTCP2_CRYPTO_LIBRARY)
modified external/curl/CMake/FindNettle.cmake
@@ -34,17 +34,14 @@
# - `NETTLE_INCLUDE_DIRS`:  The nettle include directories.
# - `NETTLE_LIBRARIES`:     The nettle library names.
# - `NETTLE_LIBRARY_DIRS`:  The nettle library directories.
-
# - `NETTLE_PC_REQUIRES`:   The nettle pkg-config packages.
# - `NETTLE_CFLAGS`:        Required compiler flags.
# - `NETTLE_VERSION`:       Version of nettle.

-
set(NETTLE_PC_REQUIRES "nettle")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED NETTLE_INCLUDE_DIR AND
   NOT DEFINED NETTLE_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(NETTLE ${NETTLE_PC_REQUIRES})
+
  pkg_check_modules(NETTLE "nettle")
endif()

if(NETTLE_FOUND)
modified external/curl/CMake/FindQuiche.cmake
@@ -34,17 +34,14 @@
# - `QUICHE_INCLUDE_DIRS`:  The quiche include directories.
# - `QUICHE_LIBRARIES`:     The quiche library names.
# - `QUICHE_LIBRARY_DIRS`:  The quiche library directories.
-
# - `QUICHE_PC_REQUIRES`:   The quiche pkg-config packages.
# - `QUICHE_CFLAGS`:        Required compiler flags.
# - `QUICHE_VERSION`:       Version of quiche.

-
set(QUICHE_PC_REQUIRES "quiche")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED QUICHE_INCLUDE_DIR AND
   NOT DEFINED QUICHE_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(QUICHE ${QUICHE_PC_REQUIRES})
+
  pkg_check_modules(QUICHE "quiche")
endif()

if(QUICHE_FOUND)
modified external/curl/CMake/FindRustls.cmake
@@ -38,21 +38,18 @@
# - `RUSTLS_CFLAGS`:        Required compiler flags.
# - `RUSTLS_VERSION`:       Version of Rustls.

-
set(RUSTLS_PC_REQUIRES "rustls")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED RUSTLS_INCLUDE_DIR AND
   NOT DEFINED RUSTLS_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(RUSTLS ${RUSTLS_PC_REQUIRES})
+
  pkg_check_modules(RUSTLS "rustls")
endif()

if(RUSTLS_FOUND)
+
  set(RUSTLS_PC_REQUIRES "rustls")
  string(REPLACE ";" " " RUSTLS_CFLAGS "${RUSTLS_CFLAGS}")
  message(STATUS "Found Rustls (via pkg-config): ${RUSTLS_INCLUDE_DIRS} (found version \"${RUSTLS_VERSION}\")")
else()
-
  set(RUSTLS_PC_REQUIRES "")  # Depend on pkg-config only when found via pkg-config
-

  find_path(RUSTLS_INCLUDE_DIR NAMES "rustls.h")
  find_library(RUSTLS_LIBRARY NAMES "rustls")

@@ -71,38 +68,36 @@ else()
  mark_as_advanced(RUSTLS_INCLUDE_DIR RUSTLS_LIBRARY)
endif()

-
if(RUSTLS_FOUND)
-
  if(APPLE)
-
    find_library(SECURITY_FRAMEWORK NAMES "Security")
-
    mark_as_advanced(SECURITY_FRAMEWORK)
-
    if(NOT SECURITY_FRAMEWORK)
-
      message(FATAL_ERROR "Security framework not found")
-
    endif()
-
    list(APPEND RUSTLS_LIBRARIES "-framework Security")
+
if(APPLE)
+
  find_library(SECURITY_FRAMEWORK "Security")
+
  mark_as_advanced(SECURITY_FRAMEWORK)
+
  if(NOT SECURITY_FRAMEWORK)
+
    message(FATAL_ERROR "Security framework not found")
+
  endif()
+
  list(APPEND RUSTLS_LIBRARIES "-framework Security")

-
    find_library(FOUNDATION_FRAMEWORK NAMES "Foundation")
-
    mark_as_advanced(FOUNDATION_FRAMEWORK)
-
    if(NOT FOUNDATION_FRAMEWORK)
-
      message(FATAL_ERROR "Foundation framework not found")
-
    endif()
-
    list(APPEND RUSTLS_LIBRARIES "-framework Foundation")
-
  elseif(NOT WIN32)
-
    find_library(PTHREAD_LIBRARY NAMES "pthread")
-
    if(PTHREAD_LIBRARY)
-
      list(APPEND RUSTLS_LIBRARIES ${PTHREAD_LIBRARY})
-
    endif()
-
    mark_as_advanced(PTHREAD_LIBRARY)
+
  find_library(FOUNDATION_FRAMEWORK "Foundation")
+
  mark_as_advanced(FOUNDATION_FRAMEWORK)
+
  if(NOT FOUNDATION_FRAMEWORK)
+
    message(FATAL_ERROR "Foundation framework not found")
+
  endif()
+
  list(APPEND RUSTLS_LIBRARIES "-framework Foundation")
+
elseif(NOT WIN32)
+
  find_library(_pthread_library "pthread")
+
  if(_pthread_library)
+
    list(APPEND RUSTLS_LIBRARIES "pthread")
+
  endif()
+
  mark_as_advanced(_pthread_library)

-
    find_library(DL_LIBRARY NAMES "dl")
-
    if(DL_LIBRARY)
-
      list(APPEND RUSTLS_LIBRARIES ${DL_LIBRARY})
-
    endif()
-
    mark_as_advanced(DL_LIBRARY)
+
  find_library(_dl_library "dl")
+
  if(_dl_library)
+
    list(APPEND RUSTLS_LIBRARIES "dl")
+
  endif()
+
  mark_as_advanced(_dl_library)

-
    find_library(MATH_LIBRARY NAMES "m")
-
    if(MATH_LIBRARY)
-
      list(APPEND RUSTLS_LIBRARIES ${MATH_LIBRARY})
-
    endif()
-
    mark_as_advanced(MATH_LIBRARY)
+
  find_library(_math_library "m")
+
  if(_math_library)
+
    list(APPEND RUSTLS_LIBRARIES "m")
  endif()
+
  mark_as_advanced(_math_library)
endif()
modified external/curl/CMake/FindWolfSSL.cmake
@@ -34,7 +34,6 @@
# - `WOLFSSL_INCLUDE_DIRS`:  The wolfSSL include directories.
# - `WOLFSSL_LIBRARIES`:     The wolfSSL library names.
# - `WOLFSSL_LIBRARY_DIRS`:  The wolfSSL library directories.
-
# - `WOLFSSL_PC_REQUIRES`:   The wolfSSL pkg-config packages.
# - `WOLFSSL_CFLAGS`:        Required compiler flags.
# - `WOLFSSL_VERSION`:       Version of wolfSSL.

@@ -47,13 +46,11 @@ if(DEFINED WolfSSL_LIBRARY AND NOT DEFINED WOLFSSL_LIBRARY)
  set(WOLFSSL_LIBRARY "${WolfSSL_LIBRARY}")
endif()

-
set(WOLFSSL_PC_REQUIRES "wolfssl")
-

if(CURL_USE_PKGCONFIG AND
   NOT DEFINED WOLFSSL_INCLUDE_DIR AND
   NOT DEFINED WOLFSSL_LIBRARY)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(WOLFSSL ${WOLFSSL_PC_REQUIRES})
+
  pkg_check_modules(WOLFSSL "wolfssl")
endif()

if(WOLFSSL_FOUND)
@@ -90,10 +87,10 @@ else()
  mark_as_advanced(WOLFSSL_INCLUDE_DIR WOLFSSL_LIBRARY)
endif()

-
if(WOLFSSL_FOUND AND NOT WIN32)
-
  find_library(MATH_LIBRARY NAMES "m")
-
  if(MATH_LIBRARY)
-
    list(APPEND WOLFSSL_LIBRARIES ${MATH_LIBRARY})  # for log and pow
+
if(NOT WIN32)
+
  find_library(_math_library "m")
+
  if(_math_library)
+
    list(APPEND WOLFSSL_LIBRARIES "m")  # for log and pow
  endif()
-
  mark_as_advanced(MATH_LIBRARY)
+
  mark_as_advanced(_math_library)
endif()
modified external/curl/CMake/FindZstd.cmake
@@ -33,9 +33,6 @@
# - `ZSTD_FOUND`:         System has zstd.
# - `ZSTD_INCLUDE_DIRS`:  The zstd include directories.
# - `ZSTD_LIBRARIES`:     The zstd library names.
-
# - `ZSTD_LIBRARY_DIRS`:  The zstd library directories.
-
# - `ZSTD_PC_REQUIRES`:   The zstd pkg-config packages.
-
# - `ZSTD_CFLAGS`:        Required compiler flags.
# - `ZSTD_VERSION`:       Version of zstd.

if(DEFINED Zstd_INCLUDE_DIR AND NOT DEFINED ZSTD_INCLUDE_DIR)
@@ -47,55 +44,56 @@ if(DEFINED Zstd_LIBRARY AND NOT DEFINED ZSTD_LIBRARY)
  set(ZSTD_LIBRARY "${Zstd_LIBRARY}")
endif()

-
set(ZSTD_PC_REQUIRES "libzstd")
-

-
if(CURL_USE_PKGCONFIG AND
-
   NOT DEFINED ZSTD_INCLUDE_DIR AND
-
   NOT DEFINED ZSTD_LIBRARY)
+
if(CURL_USE_PKGCONFIG)
  find_package(PkgConfig QUIET)
-
  pkg_check_modules(ZSTD ${ZSTD_PC_REQUIRES})
+
  pkg_check_modules(PC_ZSTD "libzstd")
endif()

-
if(ZSTD_FOUND)
-
  string(REPLACE ";" " " ZSTD_CFLAGS "${ZSTD_CFLAGS}")
-
  message(STATUS "Found Zstd (via pkg-config): ${ZSTD_INCLUDE_DIRS} (found version \"${ZSTD_VERSION}\")")
-
else()
-
  find_path(ZSTD_INCLUDE_DIR NAMES "zstd.h")
-
  find_library(ZSTD_LIBRARY NAMES "zstd")
+
find_path(ZSTD_INCLUDE_DIR NAMES "zstd.h"
+
  HINTS
+
    ${PC_ZSTD_INCLUDEDIR}
+
    ${PC_ZSTD_INCLUDE_DIRS}
+
)

-
  unset(ZSTD_VERSION CACHE)
-
  if(ZSTD_INCLUDE_DIR AND EXISTS "${ZSTD_INCLUDE_DIR}/zstd.h")
-
    set(_version_regex1 "#[\t ]*define[ \t]+ZSTD_VERSION_MAJOR[ \t]+([0-9]+).*")
-
    set(_version_regex2 "#[\t ]*define[ \t]+ZSTD_VERSION_MINOR[ \t]+([0-9]+).*")
-
    set(_version_regex3 "#[\t ]*define[ \t]+ZSTD_VERSION_RELEASE[ \t]+([0-9]+).*")
-
    file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str1 REGEX "${_version_regex1}")
-
    file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str2 REGEX "${_version_regex2}")
-
    file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str3 REGEX "${_version_regex3}")
-
    string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
-
    string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
-
    string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
-
    set(ZSTD_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
-
    unset(_version_regex1)
-
    unset(_version_regex2)
-
    unset(_version_regex3)
-
    unset(_version_str1)
-
    unset(_version_str2)
-
    unset(_version_str3)
-
  endif()
+
find_library(ZSTD_LIBRARY NAMES "zstd"
+
  HINTS
+
    ${PC_ZSTD_LIBDIR}
+
    ${PC_ZSTD_LIBRARY_DIRS}
+
)

-
  include(FindPackageHandleStandardArgs)
-
  find_package_handle_standard_args(Zstd
-
    REQUIRED_VARS
-
      ZSTD_INCLUDE_DIR
-
      ZSTD_LIBRARY
-
    VERSION_VAR
-
      ZSTD_VERSION
-
  )
+
if(PC_ZSTD_VERSION)
+
  set(ZSTD_VERSION ${PC_ZSTD_VERSION})
+
elseif(ZSTD_INCLUDE_DIR AND EXISTS "${ZSTD_INCLUDE_DIR}/zstd.h")
+
  set(_version_regex1 "#[\t ]*define[ \t]+ZSTD_VERSION_MAJOR[ \t]+([0-9]+).*")
+
  set(_version_regex2 "#[\t ]*define[ \t]+ZSTD_VERSION_MINOR[ \t]+([0-9]+).*")
+
  set(_version_regex3 "#[\t ]*define[ \t]+ZSTD_VERSION_RELEASE[ \t]+([0-9]+).*")
+
  file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str1 REGEX "${_version_regex1}")
+
  file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str2 REGEX "${_version_regex2}")
+
  file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str3 REGEX "${_version_regex3}")
+
  string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
+
  string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
+
  string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
+
  set(ZSTD_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
+
  unset(_version_regex1)
+
  unset(_version_regex2)
+
  unset(_version_regex3)
+
  unset(_version_str1)
+
  unset(_version_str2)
+
  unset(_version_str3)
+
endif()

-
  if(ZSTD_FOUND)
-
    set(ZSTD_INCLUDE_DIRS ${ZSTD_INCLUDE_DIR})
-
    set(ZSTD_LIBRARIES    ${ZSTD_LIBRARY})
-
  endif()
+
include(FindPackageHandleStandardArgs)
+
find_package_handle_standard_args(Zstd
+
  REQUIRED_VARS
+
    ZSTD_INCLUDE_DIR
+
    ZSTD_LIBRARY
+
  VERSION_VAR
+
    ZSTD_VERSION
+
)

-
  mark_as_advanced(ZSTD_INCLUDE_DIR ZSTD_LIBRARY)
+
if(ZSTD_FOUND)
+
  set(ZSTD_INCLUDE_DIRS ${ZSTD_INCLUDE_DIR})
+
  set(ZSTD_LIBRARIES    ${ZSTD_LIBRARY})
endif()
+

+
mark_as_advanced(ZSTD_INCLUDE_DIR ZSTD_LIBRARY)
modified external/curl/CMake/Macros.cmake
@@ -27,7 +27,7 @@
# This macro is intended to be called multiple times with a sequence of
# possibly dependent header files.  Some headers depend on others to be
# compiled correctly.
-
macro(check_include_file_concat_curl _file _variable)
+
macro(check_include_file_concat _file _variable)
  check_include_files("${CURL_INCLUDES};${_file}" ${_variable})
  if(${_variable})
    list(APPEND CURL_INCLUDES ${_file})
@@ -62,25 +62,21 @@ macro(curl_internal_test _curl_test)
  endif()
endmacro()

-
macro(curl_dependency_option _option_name _find_name _desc_name)
-
  set(${_option_name} "AUTO" CACHE STRING "Build curl with ${_desc_name} support (AUTO, ON or OFF)")
-
  set_property(CACHE ${_option_name} PROPERTY STRINGS "AUTO" "ON" "OFF")
+
macro(curl_dependency_option _dependency)
+
  set(CURL_${_dependency} "AUTO" CACHE STRING "Build curl with ${_dependency} support (AUTO, ON or OFF)")
+
  set_property(CACHE CURL_${_dependency} PROPERTY STRINGS "AUTO" "ON" "OFF")

-
  if(${_option_name} STREQUAL "AUTO")
-
    find_package(${_find_name})
-
  elseif(${_option_name})
-
    find_package(${_find_name} REQUIRED)
+
  if(CURL_${_dependency} STREQUAL "AUTO")
+
    find_package(${_dependency})
+
  elseif(CURL_${_dependency})
+
    find_package(${_dependency} REQUIRED)
  endif()
endmacro()

-
# Convert the passed paths to libpath linker options and add them to CMAKE_REQUIRED_*.
+
# Convert the passed paths to libpath linker options and add them to CMAKE_REQUIRED_LINK_OPTIONS.
macro(curl_required_libpaths _libpaths_arg)
-
  if(CMAKE_VERSION VERSION_LESS 3.31)
-
    set(_libpaths "${_libpaths_arg}")
-
    foreach(_libpath IN LISTS _libpaths)
-
      list(APPEND CMAKE_REQUIRED_LINK_OPTIONS "${CMAKE_LIBRARY_PATH_FLAG}${_libpath}")
-
    endforeach()
-
  else()
-
    list(APPEND CMAKE_REQUIRED_LINK_DIRECTORIES "${_libpaths_arg}")
-
  endif()
+
  set(_libpaths "${_libpaths_arg}")
+
  foreach(_libpath IN LISTS _libpaths)
+
    list(APPEND CMAKE_REQUIRED_LINK_OPTIONS "${CMAKE_LIBRARY_PATH_FLAG}${_libpath}")
+
  endforeach()
endmacro()
modified external/curl/CMake/OtherTests.cmake
@@ -25,7 +25,7 @@ include(CheckCSourceCompiles)
include(CheckCSourceRuns)
include(CheckTypeSize)

-
macro(curl_add_header_include _check _header)
+
macro(add_header_include _check _header)
  if(${_check})
    set(_source_epilogue "${_source_epilogue}
      #include <${_header}>")
@@ -37,10 +37,10 @@ set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")

if(NOT DEFINED HAVE_STRUCT_SOCKADDR_STORAGE)
  cmake_push_check_state()
-
  set(CMAKE_EXTRA_INCLUDE_FILES "")
+
  unset(CMAKE_EXTRA_INCLUDE_FILES)
  if(WIN32)
    set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h")
-
    list(APPEND CMAKE_REQUIRED_LIBRARIES "ws2_32")
+
    set(CMAKE_REQUIRED_LIBRARIES "ws2_32")
  elseif(HAVE_SYS_SOCKET_H)
    set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
  endif()
@@ -51,8 +51,8 @@ endif()

if(NOT WIN32)
  set(_source_epilogue "#undef inline")
-
  curl_add_header_include(HAVE_SYS_TYPES_H "sys/types.h")
-
  curl_add_header_include(HAVE_SYS_SOCKET_H "sys/socket.h")
+
  add_header_include(HAVE_SYS_TYPES_H "sys/types.h")
+
  add_header_include(HAVE_SYS_SOCKET_H "sys/socket.h")
  check_c_source_compiles("${_source_epilogue}
    int main(void)
    {
@@ -63,7 +63,7 @@ if(NOT WIN32)
endif()

set(_source_epilogue "#undef inline")
-
curl_add_header_include(HAVE_SYS_TIME_H "sys/time.h")
+
add_header_include(HAVE_SYS_TIME_H "sys/time.h")
check_c_source_compiles("${_source_epilogue}
  #include <time.h>
  int main(void)
@@ -98,9 +98,9 @@ endif()

if(NOT DEFINED HAVE_GETADDRINFO_THREADSAFE)
  set(_source_epilogue "#undef inline")
-
  curl_add_header_include(HAVE_SYS_SOCKET_H "sys/socket.h")
-
  curl_add_header_include(HAVE_SYS_TIME_H "sys/time.h")
-
  curl_add_header_include(HAVE_NETDB_H "netdb.h")
+
  add_header_include(HAVE_SYS_SOCKET_H "sys/socket.h")
+
  add_header_include(HAVE_SYS_TIME_H "sys/time.h")
+
  add_header_include(HAVE_NETDB_H "netdb.h")
  check_c_source_compiles("${_source_epilogue}
    int main(void)
    {
@@ -141,8 +141,8 @@ endif()

if(NOT WIN32 AND NOT DEFINED HAVE_CLOCK_GETTIME_MONOTONIC_RAW)
  set(_source_epilogue "#undef inline")
-
  curl_add_header_include(HAVE_SYS_TYPES_H "sys/types.h")
-
  curl_add_header_include(HAVE_SYS_TIME_H "sys/time.h")
+
  add_header_include(HAVE_SYS_TYPES_H "sys/types.h")
+
  add_header_include(HAVE_SYS_TIME_H "sys/time.h")
  check_c_source_compiles("${_source_epilogue}
    #include <time.h>
    int main(void)
modified external/curl/CMake/PickyWarnings.cmake
@@ -23,15 +23,17 @@
###########################################################################
include(CheckCCompilerFlag)

-
set(_picky "")
+
unset(_picky)

if(CURL_WERROR AND
   ((CMAKE_COMPILER_IS_GNUCC AND
-
     NOT DOS AND  # Watt-32 headers use the '#include_next' GCC extension
     NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0 AND
     NOT CMAKE_VERSION VERSION_LESS 3.23.0) OR  # to avoid check_symbol_exists() conflicting with GCC -pedantic-errors
   CMAKE_C_COMPILER_ID MATCHES "Clang"))
  list(APPEND _picky "-pedantic-errors")
+
  if(MSVC)  # clang-cl
+
    list(APPEND _picky "-Wno-language-extension-token")  # Override default error to make __int64 size detection pass
+
  endif()
endif()

if(APPLE AND
@@ -75,6 +77,7 @@ if(PICKY_COMPILER)
    list(APPEND _picky_enable
      -Wbad-function-cast                  # clang  2.7  gcc  2.95
      -Wconversion                         # clang  2.7  gcc  2.95
+
      -Winline                             # clang  1.0  gcc  1.0
      -Wmissing-declarations               # clang  1.0  gcc  2.7
      -Wmissing-prototypes                 # clang  1.0  gcc  1.0
      -Wnested-externs                     # clang  1.0  gcc  2.7
@@ -103,11 +106,12 @@ if(PICKY_COMPILER)
      -Wmissing-field-initializers         # clang  2.7  gcc  4.1
      -Wmissing-noreturn                   # clang  2.7  gcc  4.1
      -Wno-format-nonliteral               # clang  1.0  gcc  2.96 (3.0)
-
      -Wno-sign-conversion                 # clang  2.9  gcc  4.3
      -Wno-system-headers                  # clang  1.0  gcc  3.0
    # -Wpadded                             # clang  2.9  gcc  4.1               # Not used: We cannot change public structs
      -Wold-style-definition               # clang  2.7  gcc  3.4
      -Wredundant-decls                    # clang  2.7  gcc  4.1
+
      -Wsign-conversion                    # clang  2.9  gcc  4.3
+
        -Wno-error=sign-conversion                                              # FIXME
      -Wstrict-prototypes                  # clang  1.0  gcc  3.3
    # -Wswitch-enum                        # clang  2.7  gcc  4.1               # Not used: It basically disallows default case
      -Wtype-limits                        # clang  2.7  gcc  4.3
@@ -117,6 +121,13 @@ if(PICKY_COMPILER)
      -Wvla                                # clang  2.8  gcc  4.3
    )

+
    set(_picky_common
+
      -Wdouble-promotion                   # clang  3.6  gcc  4.6  appleclang  6.3
+
      -Wenum-conversion                    # clang  3.2  gcc 10.0  appleclang  4.6  g++ 11.0
+
      -Wpragmas                            # clang  3.5  gcc  4.1  appleclang  6.0
+
      -Wunused-const-variable              # clang  3.4  gcc  6.0  appleclang  5.1
+
    )
+

    if(CMAKE_C_COMPILER_ID MATCHES "Clang")
      list(APPEND _picky_enable
        ${_picky_common_old}
@@ -126,20 +137,17 @@ if(PICKY_COMPILER)
      )
      if(NOT MSVC)
        list(APPEND _picky_enable
-
          -Wlanguage-extension-token       # clang  3.0
+
          -Wlanguage-extension-token         # clang  3.0  # Avoid for clang-cl to allow __int64
        )
      endif()
      # Enable based on compiler version
      if((CMAKE_C_COMPILER_ID STREQUAL "Clang"      AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6) OR
         (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.3))
        list(APPEND _picky_enable
-
          -Wdouble-promotion               # clang  3.6  gcc  4.6  appleclang  6.3
-
          -Wenum-conversion                # clang  3.2  gcc 10.0  appleclang  4.6  g++ 11.0
+
          ${_picky_common}
+
        # -Wunreachable-code-break         # clang  3.5            appleclang  6.0  # Not used: Silent in "unity" builds
          -Wheader-guard                   # clang  3.4            appleclang  5.1
-
          -Wpragmas                        # clang  3.5  gcc  4.1  appleclang  6.0
          -Wsometimes-uninitialized        # clang  3.2            appleclang  4.6
-
        # -Wunreachable-code-break         # clang  3.5            appleclang  6.0  # Not used: Silent in "unity" builds
-
          -Wunused-const-variable          # clang  3.4  gcc  6.0  appleclang  5.1
        )
      endif()
      if((CMAKE_C_COMPILER_ID STREQUAL "Clang"      AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.9) OR
@@ -163,6 +171,9 @@ if(PICKY_COMPILER)
        )
      endif()
    else()  # gcc
+
      list(APPEND _picky_detect
+
        ${_picky_common}
+
      )
      # Enable based on compiler version
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.3)
        list(APPEND _picky_enable
@@ -170,8 +181,8 @@ if(PICKY_COMPILER)
          -Wclobbered                      #             gcc  4.3
          -Wmissing-parameter-type         #             gcc  4.3
          -Wold-style-declaration          #             gcc  4.3
-
          -Wpragmas                        # clang  3.5  gcc  4.1  appleclang  6.0
          -Wstrict-aliasing=3              #             gcc  4.0
+
          -Wtrampolines                    #             gcc  4.3
        )
      endif()
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5 AND MINGW)
@@ -181,9 +192,7 @@ if(PICKY_COMPILER)
      endif()
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.8)
        list(APPEND _picky_enable
-
          -Wdouble-promotion               # clang  3.6  gcc  4.6  appleclang  6.3
          -Wformat=2                       # clang  3.0  gcc  4.8
-
          -Wtrampolines                    #             gcc  4.6
        )
      endif()
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
@@ -198,7 +207,6 @@ if(PICKY_COMPILER)
            -fdelete-null-pointer-checks
          -Wshift-negative-value           # clang  3.7  gcc  6.0 (clang default)
          -Wshift-overflow=2               # clang  3.0  gcc  6.0 (clang default: -Wshift-overflow)
-
          -Wunused-const-variable          # clang  3.4  gcc  6.0  appleclang  5.1
        )
      endif()
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 7.0)
@@ -213,7 +221,6 @@ if(PICKY_COMPILER)
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
        list(APPEND _picky_enable
          -Warith-conversion               #             gcc 10.0
-
          -Wenum-conversion                # clang  3.2  gcc 10.0  appleclang  4.6  g++ 11.0
        )
      endif()
    endif()
@@ -235,41 +242,20 @@ if(PICKY_COMPILER)
        list(APPEND _picky "${_ccopt}")
      endif()
    endforeach()
-

-
    if(CMAKE_COMPILER_IS_GNUCC)
-
      if(CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5)
-
        # Avoid false positives
-
        list(APPEND _picky "-Wno-shadow")
-
        list(APPEND _picky "-Wno-unreachable-code")
-
      endif()
-
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.2 AND CMAKE_C_COMPILER_VERSION VERSION_LESS 4.6)
-
        # GCC <4.6 do not support #pragma to suppress warnings locally. Disable them globally instead.
-
        list(APPEND _picky "-Wno-overlength-strings")
-
      endif()
-
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0 AND CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
-
        list(APPEND _picky "-Wno-missing-field-initializers")  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36750
-
      endif()
-
      if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.3 AND CMAKE_C_COMPILER_VERSION VERSION_LESS 4.8)
-
        list(APPEND _picky "-Wno-type-limits")  # Avoid false positives
-
      endif()
-
    endif()
  endif()
endif()

# clang-cl
if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND MSVC)
-
  list(APPEND _picky "-Wno-language-extension-token")  # Allow __int64
-

-
  set(_picky_tmp "")
-
  foreach(_ccopt IN LISTS _picky)
-
    # Prefix -Wall, otherwise clang-cl interprets it as an MSVC option and translates it to -Weverything
-
    if(_ccopt MATCHES "^-W" AND NOT _ccopt STREQUAL "-Wall")
-
      list(APPEND _picky_tmp ${_ccopt})
-
    else()
-
      list(APPEND _picky_tmp "-clang:${_ccopt}")
-
    endif()
-
  endforeach()
-
  set(_picky ${_picky_tmp})
+
  if(CMAKE_VERSION VERSION_LESS 3.12)
+
    set(_picky_tmp "")
+
    foreach(_ccopt IN LISTS _picky)
+
      list(APPEND _picky_tmp "/clang:${_ccopt}")
+
    endforeach()
+
    set(_picky ${_picky_tmp})
+
  else()
+
    list(TRANSFORM _picky PREPEND "/clang:")
+
  endif()
endif()

if(_picky)
added external/curl/CMake/Platforms/WindowsCache.cmake
@@ -0,0 +1,194 @@
+
#***************************************************************************
+
#                                  _   _ ____  _
+
#  Project                     ___| | | |  _ \| |
+
#                             / __| | | | |_) | |
+
#                            | (__| |_| |  _ <| |___
+
#                             \___|\___/|_| \_\_____|
+
#
+
# Copyright (C) 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.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.
+
#
+
# SPDX-License-Identifier: curl
+
#
+
###########################################################################
+
if(NOT WIN32)
+
  message(FATAL_ERROR "This file should be included on Windows platform only")
+
endif()
+

+
set(HAVE_LOCALE_H 1)
+

+
if(MINGW)
+
  set(HAVE_SNPRINTF 1)
+
  set(HAVE_UNISTD_H 1)
+
  set(HAVE_LIBGEN_H 1)
+
  set(HAVE_STDDEF_H 1)  # detected by CMake internally in check_type_size()
+
  set(HAVE_STDBOOL_H 1)
+
  set(HAVE_BOOL_T "${HAVE_STDBOOL_H}")
+
  set(HAVE_STRTOLL 1)
+
  set(HAVE_BASENAME 1)
+
  set(HAVE_STRCASECMP 1)
+
  set(HAVE_FTRUNCATE 1)
+
  set(HAVE_SYS_PARAM_H 1)
+
  set(HAVE_SYS_TIME_H 1)
+
  set(HAVE_GETTIMEOFDAY 1)
+
  set(HAVE_STRINGS_H 1)  # wrapper to string.h
+
  set(HAVE_UTIME_H 1)  # wrapper to sys/utime.h
+
  set(HAVE_DIRENT_H 1)
+
  set(HAVE_OPENDIR 1)
+
else()
+
  set(HAVE_LIBGEN_H 0)
+
  set(HAVE_STRCASECMP 0)
+
  set(HAVE_FTRUNCATE 0)
+
  set(HAVE_SYS_PARAM_H 0)
+
  set(HAVE_SYS_TIME_H 0)
+
  set(HAVE_GETTIMEOFDAY 0)
+
  set(HAVE_STRINGS_H 0)
+
  set(HAVE_UTIME_H 0)
+
  set(HAVE_DIRENT_H 0)
+
  set(HAVE_OPENDIR 0)
+
  if(MSVC)
+
    set(HAVE_UNISTD_H 0)
+
    set(HAVE_LOCALE_H 1)
+
    set(HAVE_STDDEF_H 1)  # detected by CMake internally in check_type_size()
+
    set(HAVE_STDATOMIC_H 0)
+
    if(NOT MSVC_VERSION LESS 1800)
+
      set(HAVE_STDBOOL_H 1)
+
      set(HAVE_STRTOLL 1)
+
    else()
+
      set(HAVE_STDBOOL_H 0)
+
      set(HAVE_STRTOLL 0)
+
    endif()
+
    set(HAVE_BOOL_T "${HAVE_STDBOOL_H}")
+
    if(NOT MSVC_VERSION LESS 1900)
+
      set(HAVE_SNPRINTF 1)
+
    else()
+
      set(HAVE_SNPRINTF 0)
+
    endif()
+
    set(HAVE_BASENAME 0)
+
    set(HAVE_STRTOK_R 0)
+
    set(HAVE_FILE_OFFSET_BITS 0)
+
    set(HAVE_ATOMIC 0)
+
  endif()
+
endif()
+

+
# Available in Windows XP and newer
+
set(HAVE_GETADDRINFO 1)
+
set(HAVE_FREEADDRINFO 1)
+

+
set(HAVE_FCHMOD 0)
+
set(HAVE_SOCKETPAIR 0)
+
set(HAVE_SENDMSG 0)
+
set(HAVE_SENDMMSG 0)
+
set(HAVE_ALARM 0)
+
set(HAVE_FCNTL 0)
+
set(HAVE_GETPPID 0)
+
set(HAVE_UTIMES 0)
+
set(HAVE_GETPWUID_R 0)
+
set(HAVE_STRERROR_R 0)
+
set(HAVE_SIGINTERRUPT 0)
+
set(HAVE_PIPE 0)
+
set(HAVE_EVENTFD 0)
+
set(HAVE_IF_NAMETOINDEX 0)
+
set(HAVE_GETRLIMIT 0)
+
set(HAVE_SETRLIMIT 0)
+
set(HAVE_FSETXATTR 0)
+
set(HAVE_SETLOCALE 1)
+
set(HAVE_SETMODE 1)
+
set(HAVE__SETMODE 1)
+
set(HAVE_GETPEERNAME 1)
+
set(HAVE_GETSOCKNAME 1)
+
set(HAVE_GETHOSTNAME 1)
+

+
set(HAVE_RECV 1)
+
set(HAVE_SEND 1)
+
set(HAVE_STROPTS_H 0)
+
set(HAVE_SYS_XATTR_H 0)
+
set(HAVE_ARC4RANDOM 0)
+
set(HAVE_FNMATCH 0)
+
set(HAVE_SCHED_YIELD 0)
+
set(HAVE_ARPA_INET_H 0)
+
set(HAVE_FCNTL_H 1)
+
set(HAVE_IFADDRS_H 0)
+
set(HAVE_IO_H 1)
+
set(HAVE_NETDB_H 0)
+
set(HAVE_NETINET_IN_H 0)
+
set(HAVE_NETINET_IN6_H 0)
+
set(HAVE_NETINET_TCP_H 0)
+
set(HAVE_NETINET_UDP_H 0)
+
set(HAVE_NET_IF_H 0)
+
set(HAVE_IOCTL_SIOCGIFADDR 0)
+
set(HAVE_POLL_H 0)
+
set(HAVE_POLL 0)
+
set(HAVE_PWD_H 0)
+
set(HAVE_SYS_EVENTFD_H 0)
+
set(HAVE_SYS_FILIO_H 0)
+
set(HAVE_SYS_WAIT_H 0)
+
set(HAVE_SYS_IOCTL_H 0)
+
set(HAVE_SYS_POLL_H 0)
+
set(HAVE_SYS_RESOURCE_H 0)
+
set(HAVE_SYS_SELECT_H 0)
+
set(HAVE_SYS_SOCKET_H 0)
+
set(HAVE_SYS_SOCKIO_H 0)
+
set(HAVE_SYS_STAT_H 1)
+
set(HAVE_SYS_TYPES_H 1)
+
set(HAVE_SYS_UN_H 0)
+
set(HAVE_SYS_UTIME_H 1)
+
set(HAVE_TERMIOS_H 0)
+
set(HAVE_TERMIO_H 0)
+
set(HAVE_LINUX_TCP_H 0)
+

+
set(HAVE_FSEEKO 0)  # mingw-w64 2.0.0 and newer has it
+
set(HAVE_SOCKET 1)
+
set(HAVE_SELECT 1)
+
set(HAVE_STRDUP 1)
+
set(HAVE_STRICMP 1)
+
set(HAVE_STRCMPI 1)
+
set(HAVE_MEMRCHR 0)
+
set(HAVE_CLOSESOCKET 1)
+
set(HAVE_SIGSETJMP 0)
+
set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1)
+
set(HAVE_GETPASS_R 0)
+
set(HAVE_GETPWUID 0)
+
set(HAVE_GETEUID 0)
+
set(HAVE_UTIME 1)
+
set(HAVE_GMTIME_R 0)
+
set(HAVE_GETHOSTBYNAME_R 0)
+
set(HAVE_SIGNAL 1)
+
set(HAVE_SIGACTION 0)
+
set(HAVE_GLIBC_STRERROR_R 0)
+
set(HAVE_GETIFADDRS 0)
+
set(HAVE_FCNTL_O_NONBLOCK 0)
+
set(HAVE_IOCTLSOCKET 1)
+
set(HAVE_IOCTLSOCKET_CAMEL 0)
+
set(HAVE_IOCTLSOCKET_CAMEL_FIONBIO 0)
+
set(HAVE_IOCTLSOCKET_FIONBIO 1)
+
set(HAVE_IOCTL_FIONBIO 0)
+
set(HAVE_SETSOCKOPT_SO_NONBLOCK 0)
+
set(HAVE_POSIX_STRERROR_R 0)
+
set(HAVE_MSG_NOSIGNAL 0)
+
set(HAVE_STRUCT_TIMEVAL 1)
+
set(HAVE_STRUCT_SOCKADDR_STORAGE 1)
+

+
set(HAVE_GETHOSTBYNAME_R_3 0)
+
set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0)
+
set(HAVE_GETHOSTBYNAME_R_5 0)
+
set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0)
+
set(HAVE_GETHOSTBYNAME_R_6 0)
+
set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0)
+

+
set(HAVE_O_NONBLOCK 0)
+
set(HAVE_IN_ADDR_T 0)
+
set(STDC_HEADERS 1)
+

+
set(HAVE_SIZEOF_SUSECONDS_T 0)
+
set(HAVE_SIZEOF_SA_FAMILY_T 0)
modified external/curl/CMake/Utilities.cmake
@@ -23,31 +23,13 @@
###########################################################################
# File containing various utilities

-
# Return number of arguments that evaluate to true
-
function(curl_count_true _output_count_var)
-
  set(_list_len 0)
-
  foreach(_option_var IN LISTS ARGN)
-
    if(${_option_var})
-
      math(EXPR _list_len "${_list_len} + 1")
+
# Returns number of arguments that evaluate to true
+
function(count_true _output_count_var)
+
  set(lst_len 0)
+
  foreach(option_var IN LISTS ARGN)
+
    if(${option_var})
+
      math(EXPR lst_len "${lst_len} + 1")
    endif()
  endforeach()
-
  set(${_output_count_var} ${_list_len} PARENT_SCOPE)
-
endfunction()
-

-
# Dump all defined variables with their values
-
function(curl_dumpvars)
-
  message("::group::CMake Variable Dump")
-
  get_cmake_property(_vars VARIABLES)
-
  foreach(_var IN ITEMS ${_vars})
-
    get_property(_var_type CACHE ${_var} PROPERTY TYPE)
-
    get_property(_var_advanced CACHE ${_var} PROPERTY ADVANCED)
-
    if(_var_type)
-
      set(_var_type ":${_var_type}")
-
    endif()
-
    if(_var_advanced)
-
      set(_var_advanced " [adv]")
-
    endif()
-
    message("${_var}${_var_type}${_var_advanced} = ${${_var}}")
-
  endforeach()
-
  message("::endgroup::")
+
  set(${_output_count_var} ${lst_len} PARENT_SCOPE)
endfunction()
modified external/curl/CMake/curl-config.cmake.in
@@ -23,6 +23,13 @@
###########################################################################
@PACKAGE_INIT@

+
if(UNIX OR VCPKG_TOOLCHAIN OR (MINGW AND NOT CMAKE_CROSSCOMPILING))  # Keep in sync with root CMakeLists.txt
+
  set(_curl_use_pkgconfig_default ON)
+
else()
+
  set(_curl_use_pkgconfig_default OFF)
+
endif()
+
option(CURL_USE_PKGCONFIG "Enable pkg-config to detect @PROJECT_NAME@ dependencies" ${_curl_use_pkgconfig_default})
+

include(CMakeFindDependencyMacro)
if("@USE_OPENSSL@")
  find_dependency(OpenSSL "@OPENSSL_VERSION_MAJOR@")
@@ -32,6 +39,7 @@ if("@HAVE_LIBZ@")
endif()

include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
+
check_required_components("@PROJECT_NAME@")

# Alias for either shared or static library
if(NOT TARGET @PROJECT_NAME@::libcurl)
@@ -39,32 +47,5 @@ if(NOT TARGET @PROJECT_NAME@::libcurl)
endif()

# For compatibility with CMake's FindCURL.cmake
-
set(CURL_VERSION_STRING "@CURLVERSION@")
set(CURL_LIBRARIES @PROJECT_NAME@::libcurl)
set_and_check(CURL_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
-

-
set(CURL_SUPPORTED_PROTOCOLS "@CURL_SUPPORTED_PROTOCOLS_LIST@")
-
set(CURL_SUPPORTED_FEATURES "@CURL_SUPPORTED_FEATURES_LIST@")
-

-
foreach(_item IN LISTS CURL_SUPPORTED_PROTOCOLS CURL_SUPPORTED_FEATURES)
-
  set(CURL_SUPPORTS_${_item} TRUE)
-
endforeach()
-

-
set(_missing_req "")
-
foreach(_item IN LISTS CURL_FIND_COMPONENTS)
-
  if(CURL_SUPPORTS_${_item})
-
    set(CURL_${_item}_FOUND TRUE)
-
  elseif(CURL_FIND_REQUIRED_${_item})
-
    list(APPEND _missing_req ${_item})
-
  endif()
-
endforeach()
-

-
if(_missing_req)
-
  string(REPLACE ";" " " _missing_req "${_missing_req}")
-
  if(CURL_FIND_REQUIRED)
-
    message(FATAL_ERROR "CURL: missing required components: ${_missing_req}")
-
  endif()
-
  unset(_missing_req)
-
endif()
-

-
check_required_components("@PROJECT_NAME@")
deleted external/curl/CMake/win32-cache.cmake
@@ -1,205 +0,0 @@
-
#***************************************************************************
-
#                                  _   _ ____  _
-
#  Project                     ___| | | |  _ \| |
-
#                             / __| | | | |_) | |
-
#                            | (__| |_| |  _ <| |___
-
#                             \___|\___/|_| \_\_____|
-
#
-
# Copyright (C) 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.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.
-
#
-
# SPDX-License-Identifier: curl
-
#
-
###########################################################################
-
if(NOT WIN32)
-
  message(FATAL_ERROR "This file should be included on Windows platform only")
-
endif()
-

-
set(HAVE_LOCALE_H 1)
-

-
if(MINGW)
-
  set(HAVE_SNPRINTF 1)
-
  set(HAVE_UNISTD_H 1)
-
  set(HAVE_LIBGEN_H 1)
-
  set(HAVE_STDDEF_H 1)  # detected by CMake internally in check_type_size()
-
  set(HAVE_STDINT_H 1)  # detected by CMake internally in check_type_size()
-
  set(HAVE_STDBOOL_H 1)
-
  set(HAVE_BOOL_T "${HAVE_STDBOOL_H}")
-
  set(HAVE_STRTOLL 1)
-
  set(HAVE_BASENAME 1)
-
  set(HAVE_FTRUNCATE 1)
-
  set(HAVE_SYS_PARAM_H 1)
-
  set(HAVE_SYS_TIME_H 1)
-
  set(HAVE_GETTIMEOFDAY 1)
-
  set(HAVE_STRINGS_H 1)  # wrapper to string.h
-
  set(HAVE_UTIME_H 1)  # wrapper to sys/utime.h
-
  set(HAVE_DIRENT_H 1)
-
  set(HAVE_OPENDIR 1)
-
  if(MINGW64_VERSION)
-
    if(NOT MINGW64_VERSION VERSION_LESS 4.0)
-
      set(HAVE_STRTOK_R 1)
-
    else()
-
      set(HAVE_STRTOK_R 0)
-
    endif()
-
  endif()
-
  if((CMAKE_COMPILER_IS_GNUCC              AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9) OR
-
     (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6))
-
    set(HAVE_STDATOMIC_H 1)
-
    set(HAVE_ATOMIC 1)
-
  else()
-
    set(HAVE_STDATOMIC_H 0)
-
    set(HAVE_ATOMIC 0)
-
  endif()
-
else()
-
  set(HAVE_LIBGEN_H 0)
-
  set(HAVE_FTRUNCATE 0)
-
  set(HAVE_SYS_PARAM_H 0)
-
  set(HAVE_SYS_TIME_H 0)
-
  set(HAVE_GETTIMEOFDAY 0)
-
  set(HAVE_STRINGS_H 0)
-
  set(HAVE_UTIME_H 0)
-
  set(HAVE_DIRENT_H 0)
-
  set(HAVE_OPENDIR 0)
-
  if(MSVC)
-
    set(HAVE_UNISTD_H 0)
-
    set(HAVE_STDDEF_H 1)  # detected by CMake internally in check_type_size()
-
    set(HAVE_STDATOMIC_H 0)
-
    if(NOT MSVC_VERSION LESS 1600)
-
      set(HAVE_STDINT_H 1)  # detected by CMake internally in check_type_size()
-
    else()
-
      set(HAVE_STDINT_H 0)  # detected by CMake internally in check_type_size()
-
    endif()
-
    if(NOT MSVC_VERSION LESS 1800)
-
      set(HAVE_STDBOOL_H 1)
-
      set(HAVE_STRTOLL 1)
-
    else()
-
      set(HAVE_STDBOOL_H 0)
-
      set(HAVE_STRTOLL 0)
-
    endif()
-
    set(HAVE_BOOL_T "${HAVE_STDBOOL_H}")
-
    if(NOT MSVC_VERSION LESS 1900)
-
      set(HAVE_SNPRINTF 1)
-
    else()
-
      set(HAVE_SNPRINTF 0)
-
    endif()
-
    set(HAVE_BASENAME 0)
-
    set(HAVE_STRTOK_R 0)
-
    set(HAVE_FILE_OFFSET_BITS 0)
-
    set(HAVE_ATOMIC 0)
-
  endif()
-
endif()
-

-
# Available in Windows XP and newer
-
set(HAVE_GETADDRINFO 1)
-
set(HAVE_FREEADDRINFO 1)
-

-
set(HAVE_SOCKETPAIR 0)
-
set(HAVE_SENDMSG 0)
-
set(HAVE_SENDMMSG 0)
-
set(HAVE_ALARM 0)
-
set(HAVE_FCNTL 0)
-
set(HAVE_GETPPID 0)
-
set(HAVE_UTIMES 0)
-
set(HAVE_GETPWUID_R 0)
-
set(HAVE_STRERROR_R 0)
-
set(HAVE_SIGINTERRUPT 0)
-
set(HAVE_PIPE 0)
-
set(HAVE_EVENTFD 0)
-
set(HAVE_IF_NAMETOINDEX 0)
-
set(HAVE_GETRLIMIT 0)
-
set(HAVE_SETRLIMIT 0)
-
set(HAVE_FSETXATTR 0)
-
set(HAVE_SETLOCALE 1)
-
set(HAVE_SETMODE 1)
-
set(HAVE__SETMODE 1)
-
set(HAVE_GETPEERNAME 1)
-
set(HAVE_GETSOCKNAME 1)
-
set(HAVE_GETHOSTNAME 1)
-

-
set(HAVE_RECV 1)
-
set(HAVE_SEND 1)
-
set(HAVE_STROPTS_H 0)
-
set(HAVE_ARC4RANDOM 0)
-
set(HAVE_FNMATCH 0)
-
set(HAVE_ARPA_INET_H 0)
-
set(HAVE_FCNTL_H 1)
-
set(HAVE_IFADDRS_H 0)
-
set(HAVE_IO_H 1)
-
set(HAVE_NETDB_H 0)
-
set(HAVE_NETINET_IN_H 0)
-
set(HAVE_NETINET_IN6_H 0)
-
set(HAVE_NETINET_TCP_H 0)
-
set(HAVE_NETINET_UDP_H 0)
-
set(HAVE_NET_IF_H 0)
-
set(HAVE_IOCTL_SIOCGIFADDR 0)
-
set(HAVE_POLL_H 0)
-
set(HAVE_POLL 0)
-
set(HAVE_PWD_H 0)
-
set(HAVE_SYS_EVENTFD_H 0)
-
set(HAVE_SYS_FILIO_H 0)
-
set(HAVE_SYS_IOCTL_H 0)
-
set(HAVE_SYS_POLL_H 0)
-
set(HAVE_SYS_RESOURCE_H 0)
-
set(HAVE_SYS_SELECT_H 0)
-
set(HAVE_SYS_SOCKET_H 0)
-
set(HAVE_SYS_SOCKIO_H 0)
-
set(HAVE_SYS_STAT_H 1)
-
set(HAVE_SYS_TYPES_H 1)
-
set(HAVE_SYS_UN_H 0)
-
set(HAVE_SYS_UTIME_H 1)
-
set(HAVE_TERMIOS_H 0)
-
set(HAVE_TERMIO_H 0)
-
set(HAVE_LINUX_TCP_H 0)
-

-
set(HAVE_SOCKET 1)
-
set(HAVE_SELECT 1)
-
set(HAVE_STRDUP 1)
-
set(HAVE_MEMRCHR 0)
-
set(HAVE_CLOSESOCKET 1)
-
set(HAVE_SIGSETJMP 0)
-
set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1)
-
set(HAVE_GETPASS_R 0)
-
set(HAVE_GETPWUID 0)
-
set(HAVE_GETEUID 0)
-
set(HAVE_UTIME 1)
-
set(HAVE_GMTIME_R 0)
-
set(HAVE_GETHOSTBYNAME_R 0)
-
set(HAVE_SIGNAL 1)
-
set(HAVE_SIGACTION 0)
-
set(HAVE_GLIBC_STRERROR_R 0)
-
set(HAVE_GETIFADDRS 0)
-
set(HAVE_FCNTL_O_NONBLOCK 0)
-
set(HAVE_IOCTLSOCKET 1)
-
set(HAVE_IOCTLSOCKET_CAMEL 0)
-
set(HAVE_IOCTLSOCKET_CAMEL_FIONBIO 0)
-
set(HAVE_IOCTLSOCKET_FIONBIO 1)
-
set(HAVE_IOCTL_FIONBIO 0)
-
set(HAVE_SETSOCKOPT_SO_NONBLOCK 0)
-
set(HAVE_POSIX_STRERROR_R 0)
-
set(HAVE_MSG_NOSIGNAL 0)
-
set(HAVE_STRUCT_TIMEVAL 1)
-
set(HAVE_STRUCT_SOCKADDR_STORAGE 1)
-
set(HAVE_TIME_T_UNSIGNED 0)
-

-
set(HAVE_GETHOSTBYNAME_R_3 0)
-
set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0)
-
set(HAVE_GETHOSTBYNAME_R_5 0)
-
set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0)
-
set(HAVE_GETHOSTBYNAME_R_6 0)
-
set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0)
-

-
set(HAVE_IN_ADDR_T 0)
-
set(STDC_HEADERS 1)
-

-
set(HAVE_SIZEOF_SUSECONDS_T 0)
-
set(HAVE_SIZEOF_SA_FAMILY_T 0)
modified external/curl/CMakeLists.txt
@@ -35,7 +35,7 @@
#   HAVE_SSL_SET0_WBIO: `SSL_set0_wbio` present in OpenSSL/wolfSSL
#   HAVE_OPENSSL_SRP: `SSL_CTX_set_srp_username` present in OpenSSL/wolfSSL
#   HAVE_GNUTLS_SRP: `gnutls_srp_verifier` present in GnuTLS
-
#   HAVE_SSL_SET_QUIC_USE_LEGACY_CODEPOINT: `SSL_set_quic_use_legacy_codepoint` present in OpenSSL/wolfSSL
+
#   HAVE_SSL_CTX_SET_QUIC_METHOD: `SSL_CTX_set_quic_method` present in OpenSSL/wolfSSL
#   HAVE_QUICHE_CONN_SET_QLOG_FD: `quiche_conn_set_qlog_fd` present in quiche
#   HAVE_ECH: ECH API checks for OpenSSL, BoringSSL or wolfSSL
#
@@ -66,6 +66,15 @@ if(NOT "$ENV{CURL_BUILDINFO}$ENV{CURL_CI}$ENV{CI}" STREQUAL "")
  endforeach()
endif()

+
function(curl_dumpvars)  # Dump all defined variables with their values
+
  message("::group::CMake Variable Dump")
+
  get_cmake_property(_vars VARIABLES)
+
  foreach(_var ${_vars})
+
    message("${_var} = ${${_var}}")
+
  endforeach()
+
  message("::endgroup::")
+
endfunction()
+

set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
include(Utilities)
include(Macros)
@@ -86,24 +95,7 @@ project(CURL
  VERSION "${_curl_version_sem}"
  LANGUAGES C)

-
# CMake does not recognize some targets accurately. Touch up configuration manually as a workaround.
-
if(WINDOWS_STORE AND MINGW)  # mingw UWP build
-
  # CMake (as of v3.31.2) gets confused and applies the MSVC rc.exe command-line
-
  # template to windres. Reset it to the windres template via 'Modules/Platform/Windows-windres.cmake':
-
  set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <DEFINES> <INCLUDES> <FLAGS> <SOURCE> <OBJECT>")
-
elseif(DOS AND CMAKE_COMPILER_IS_GNUCC)  # DJGPP
-
  set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
-
  set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
-
  set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
-
  set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
-
endif()
-

-
# Fill platform level variable when using CMake's built-in Android configuration
-
if(ANDROID AND NOT DEFINED ANDROID_PLATFORM_LEVEL AND NOT CMAKE_SYSTEM_VERSION EQUAL 1)
-
  set(ANDROID_PLATFORM_LEVEL "${CMAKE_SYSTEM_VERSION}")
-
endif()
-

-
set(_target_flags "")
+
unset(_target_flags)
if(APPLE)
  set(_target_flags "${_target_flags} APPLE")
endif()
@@ -113,9 +105,6 @@ endif()
if(BSD)
  set(_target_flags "${_target_flags} BSD")
endif()
-
if(ANDROID)
-
  set(_target_flags "${_target_flags} ANDROID-${ANDROID_PLATFORM_LEVEL}")
-
endif()
if(WIN32)
  set(_target_flags "${_target_flags} WIN32")
endif()
@@ -128,12 +117,6 @@ endif()
if(MSYS)
  set(_target_flags "${_target_flags} MSYS")
endif()
-
if(DOS)
-
  set(_target_flags "${_target_flags} DOS")
-
endif()
-
if(AMIGA)
-
  set(_target_flags "${_target_flags} AMIGA")
-
endif()
if(CMAKE_COMPILER_IS_GNUCC)
  set(_target_flags "${_target_flags} GCC")
endif()
@@ -141,7 +124,7 @@ if(MINGW)
  set(_target_flags "${_target_flags} MINGW")
endif()
if(MSVC)
-
  set(_target_flags "${_target_flags} MSVC-${MSVC_VERSION}")
+
  set(_target_flags "${_target_flags} MSVC")
endif()
if(VCPKG_TOOLCHAIN)
  set(_target_flags "${_target_flags} VCPKG")
@@ -193,8 +176,8 @@ if(WIN32)
  option(CURL_STATIC_CRT "Build libcurl with static CRT with MSVC (/MT)" OFF)
  if(CURL_STATIC_CRT AND MSVC)
    set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
-
    set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MT")
-
    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MTd")
+
    set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT")
+
    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd")
  endif()

  option(ENABLE_UNICODE "Use the Unicode version of the Windows API functions" OFF)
@@ -219,43 +202,24 @@ if(WIN32)
  # Detect actual value of _WIN32_WINNT and store as HAVE_WIN32_WINNT
  curl_internal_test(HAVE_WIN32_WINNT)
  if(HAVE_WIN32_WINNT)
-
    string(REGEX MATCH "_WIN32_WINNT=0x[0-9a-fA-F]+" CURL_TEST_OUTPUT "${CURL_TEST_OUTPUT}")
-
    string(REGEX REPLACE "_WIN32_WINNT=" "" CURL_TEST_OUTPUT "${CURL_TEST_OUTPUT}")
+
    string(REGEX MATCH ".*_WIN32_WINNT=0x[0-9a-fA-F]+" CURL_TEST_OUTPUT "${CURL_TEST_OUTPUT}")
+
    string(REGEX REPLACE ".*_WIN32_WINNT=" "" CURL_TEST_OUTPUT "${CURL_TEST_OUTPUT}")
    string(REGEX REPLACE "0x([0-9a-f][0-9a-f][0-9a-f])$" "0x0\\1" CURL_TEST_OUTPUT "${CURL_TEST_OUTPUT}")  # pad to 4 digits
    string(TOLOWER "${CURL_TEST_OUTPUT}" HAVE_WIN32_WINNT)
    message(STATUS "Found _WIN32_WINNT=${HAVE_WIN32_WINNT}")
  endif()
-
  unset(HAVE_WIN32_WINNT CACHE)  # Avoid storing in CMake cache
-

-
  if(MINGW)
-
    # Detect __MINGW64_VERSION_MAJOR, __MINGW64_VERSION_MINOR and store as MINGW64_VERSION
-
    curl_internal_test(MINGW64_VERSION)
-
    if(MINGW64_VERSION)
-
      string(REGEX MATCH "MINGW64_VERSION=[0-9]+\.[0-9]+" CURL_TEST_OUTPUT "${CURL_TEST_OUTPUT}")
-
      string(REGEX REPLACE "MINGW64_VERSION=" "" MINGW64_VERSION "${CURL_TEST_OUTPUT}")
-
      message(STATUS "Found MINGW64_VERSION=${MINGW64_VERSION}")
-
    endif()
-
    unset(MINGW64_VERSION CACHE)  # Avoid storing in CMake cache
-
  endif()
-
elseif(DOS OR AMIGA)
-
  set(BUILD_SHARED_LIBS OFF)
-
  set(BUILD_STATIC_LIBS ON)
+
  # Avoid storing HAVE_WIN32_WINNT in CMake cache
+
  unset(HAVE_WIN32_WINNT CACHE)
endif()
option(CURL_LTO "Enable compiler Link Time Optimizations" OFF)

-
if(NOT DOS AND NOT AMIGA)
-
  # if c-ares is used, default the threaded resolver to OFF
-
  if(ENABLE_ARES)
-
    set(_enable_threaded_resolver_default OFF)
-
  else()
-
    set(_enable_threaded_resolver_default ON)
-
  endif()
-
  option(ENABLE_THREADED_RESOLVER "Enable threaded DNS lookup" ${_enable_threaded_resolver_default})
-
endif()
+
cmake_dependent_option(ENABLE_THREADED_RESOLVER "Enable threaded DNS lookup"
+
  ON "NOT ENABLE_ARES"
+
  OFF)

include(PickyWarnings)

-
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE")  # Required for sendmmsg()
endif()

@@ -277,25 +241,6 @@ if(ENABLE_CURLDEBUG)
  set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "CURLDEBUG")
endif()

-
option(CURL_CLANG_TIDY "Run the build through clang-tidy" OFF)
-
if(CURL_CLANG_TIDY)
-
  set(CMAKE_UNITY_BUILD OFF)
-
  set(_tidy_checks "")
-
  list(APPEND _tidy_checks "-clang-analyzer-security.insecureAPI.strcpy")
-
  list(APPEND _tidy_checks "-clang-analyzer-optin.performance.Padding")
-
  list(APPEND _tidy_checks "-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling")
-
  string(REPLACE ";" "," _tidy_checks "${_tidy_checks}")
-
  find_program(CLANG_TIDY NAMES "clang-tidy" REQUIRED)
-
  set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY}" "-checks=${_tidy_checks}" "-quiet")
-
  unset(_tidy_checks)
-
  if(CURL_WERROR)
-
    list(APPEND CMAKE_C_CLANG_TIDY "--warnings-as-errors=*")
-
  endif()
-
  if(CURL_CLANG_TIDYFLAGS)
-
    list(APPEND CMAKE_C_CLANG_TIDY ${CURL_CLANG_TIDYFLAGS})
-
  endif()
-
endif()
-

# For debug libs and exes, add "-d" postfix
if(NOT DEFINED CMAKE_DEBUG_POSTFIX)
  set(CMAKE_DEBUG_POSTFIX "-d")
@@ -328,9 +273,7 @@ else()
endif()

# Override to force-disable or force-enable the use of pkg-config.
-
if((UNIX AND NOT ANDROID AND (NOT APPLE OR CMAKE_SYSTEM_NAME MATCHES "Darwin")) OR
-
   VCPKG_TOOLCHAIN OR
-
   (MINGW AND NOT CMAKE_CROSSCOMPILING))
+
if(UNIX OR VCPKG_TOOLCHAIN OR (MINGW AND NOT CMAKE_CROSSCOMPILING))  # Keep in sync with CMake/curl-config.cmake.in
  set(_curl_use_pkgconfig_default ON)
else()
  set(_curl_use_pkgconfig_default OFF)
@@ -346,12 +289,8 @@ if(ENABLE_ARES)
  set(USE_ARES 1)
  find_package(Cares REQUIRED)
  list(APPEND CURL_LIBS ${CARES_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${CARES_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${CARES_PC_REQUIRES})
-
  link_directories(${CARES_LIBRARY_DIRS})
-
  if(CARES_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CARES_CFLAGS}")
-
  endif()
+
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libcares")
+
  add_definitions("-DCARES_NO_DEPRECATED")  # Ignore c-ares deprecation warnings
endif()

include(CurlSymbolHiding)
@@ -490,9 +429,7 @@ if(ENABLE_IPV6 AND NOT WIN32)
  check_struct_has_member("struct sockaddr_in6" "sin6_addr" "netinet/in.h" HAVE_SOCKADDR_IN6_SIN6_ADDR)
  check_struct_has_member("struct sockaddr_in6" "sin6_scope_id" "netinet/in.h" HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID)
  if(NOT HAVE_SOCKADDR_IN6_SIN6_ADDR)
-
    if(NOT DOS AND NOT AMIGA)
-
      message(WARNING "struct sockaddr_in6 not available, disabling IPv6 support")
-
    endif()
+
    message(WARNING "struct sockaddr_in6 not available, disabling IPv6 support")
    # Force the feature off as this name is used as guard macro...
    set(ENABLE_IPV6 OFF CACHE BOOL "Enable IPv6 support" FORCE)
  endif()
@@ -500,11 +437,12 @@ if(ENABLE_IPV6 AND NOT WIN32)
  if(APPLE AND NOT ENABLE_ARES)
    set(_use_core_foundation_and_core_services ON)

-
    find_library(SYSTEMCONFIGURATION_FRAMEWORK NAMES "SystemConfiguration")
+
    find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration")
    mark_as_advanced(SYSTEMCONFIGURATION_FRAMEWORK)
    if(NOT SYSTEMCONFIGURATION_FRAMEWORK)
      message(FATAL_ERROR "SystemConfiguration framework not found")
    endif()
+

    list(APPEND CURL_LIBS "-framework SystemConfiguration")
  endif()
endif()
@@ -514,19 +452,6 @@ endif()

find_package(Perl)

-
if(PERL_EXECUTABLE)
-
  add_custom_target(curl-ca-bundle
-
    COMMENT "Generating a fresh ca-bundle.crt" VERBATIM USES_TERMINAL
-
    COMMAND "${PERL_EXECUTABLE}" "${PROJECT_SOURCE_DIR}/scripts/mk-ca-bundle.pl" -b -l -u "lib/ca-bundle.crt"
-
    DEPENDS "${PROJECT_SOURCE_DIR}/scripts/mk-ca-bundle.pl"
-
  )
-
  add_custom_target(curl-ca-firefox
-
    COMMENT "generating a fresh ca-bundle.crt" VERBATIM USES_TERMINAL
-
    COMMAND "${PERL_EXECUTABLE}" "${PROJECT_SOURCE_DIR}/scripts/firefox-db2pem.sh" "lib/ca-bundle.crt"
-
    DEPENDS "${PROJECT_SOURCE_DIR}/scripts/firefox-db2pem.sh"
-
  )
-
endif()
-

option(BUILD_LIBCURL_DOCS "Build libcurl man pages" ON)
option(BUILD_MISC_DOCS "Build misc man pages (e.g. curl-config and mk-ca-bundle)" ON)
option(ENABLE_CURL_MANUAL "Build the man page for curl and enable its -M/--manual option" ON)
@@ -553,9 +478,6 @@ endif()
# If we are on Haiku, make sure that the network library is brought in.
if(CMAKE_SYSTEM_NAME STREQUAL "Haiku")
  list(APPEND CURL_LIBS "network")
-
elseif(AMIGA)
-
  list(APPEND CURL_LIBS "net" "m" "atomic")
-
  list(APPEND CMAKE_REQUIRED_LIBRARIES "net" "m" "atomic")
endif()

# Include all the necessary files for macros
@@ -568,19 +490,14 @@ include(CheckSymbolExists)
include(CheckTypeSize)
include(CheckCSourceCompiles)

+
# Preload settings on Windows
if(WIN32)
-
  # Preload settings on Windows
-
  include("${CMAKE_CURRENT_SOURCE_DIR}/CMake/win32-cache.cmake")
+
  include("${CMAKE_CURRENT_SOURCE_DIR}/CMake/Platforms/WindowsCache.cmake")
elseif(APPLE)
  # Fast-track predictable feature detections
  set(HAVE_EVENTFD 0)
  set(HAVE_GETPASS_R 0)
  set(HAVE_SENDMMSG 0)
-
elseif(AMIGA)
-
  set(HAVE_GETADDRINFO 0)  # Breaks the build when detected and used.
-
endif()
-
if(DOS OR AMIGA)
-
  set(HAVE_TIME_T_UNSIGNED 1)
endif()

if(ENABLE_THREADED_RESOLVER)
@@ -595,34 +512,15 @@ if(ENABLE_THREADED_RESOLVER)
endif()

# Check for all needed libraries
-
if(DOS)
-
  if(WATT_ROOT)
-
    set(USE_WATT32 ON)
-
    # FIXME upstream: must specify the full path to avoid CMake converting "watt" to "watt.lib"
-
    list(APPEND CURL_LIBS "${WATT_ROOT}/lib/libwatt.a")
-
    include_directories(SYSTEM "${WATT_ROOT}/inc")
-
    list(APPEND CMAKE_REQUIRED_INCLUDES "${WATT_ROOT}/inc")
-
  else()
-
    message(FATAL_ERROR "Set WATT_ROOT variable to the root installation of Watt-32.")
-
  endif()
-
elseif(AMIGA)
-
  if(AMISSL_INCLUDE_DIR AND AMISSL_STUBS_LIBRARY AND AMISSL_AUTO_LIBRARY)
-
    set(USE_AMISSL ON)
-
    list(APPEND CMAKE_REQUIRED_INCLUDES "${AMISSL_INCLUDE_DIR}")
-
    list(APPEND CMAKE_REQUIRED_LIBRARIES "${AMISSL_STUBS_LIBRARY}" "${AMISSL_AUTO_LIBRARY}")
-
    set(OPENSSL_INCLUDE_DIR "${AMISSL_INCLUDE_DIR}")
-
    set(OPENSSL_SSL_LIBRARY "${AMISSL_STUBS_LIBRARY}")
-
    set(OPENSSL_CRYPTO_LIBRARY "${AMISSL_AUTO_LIBRARY}")
-
    set(CURL_USE_OPENSSL ON)
-
    set(CURL_CA_FALLBACK ON CACHE BOOL "")
-
  endif()
-
elseif(NOT WIN32 AND NOT APPLE)
+
if(NOT WIN32 AND NOT APPLE)
  check_library_exists("socket" "connect" "" HAVE_LIBSOCKET)
  if(HAVE_LIBSOCKET)
    set(CURL_LIBS "socket;${CURL_LIBS}")
  endif()
endif()

+
check_function_exists("gethostname" HAVE_GETHOSTNAME)
+

if(WIN32)
  list(APPEND CURL_LIBS "ws2_32" "bcrypt")
endif()
@@ -667,7 +565,7 @@ if(USE_OPENSSL_QUIC AND NOT CURL_USE_OPENSSL)
endif()
option(CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG "Disable automatic loading of OpenSSL configuration" OFF)

-
curl_count_true(_enabled_ssl_options_count
+
count_true(_enabled_ssl_options_count
  CURL_USE_SCHANNEL
  CURL_USE_SECTRANSP
  CURL_USE_OPENSSL
@@ -699,15 +597,15 @@ endif()
if(CURL_USE_SECTRANSP)
  set(_use_core_foundation_and_core_services ON)

-
  find_library(SECURITY_FRAMEWORK NAMES "Security")
+
  find_library(SECURITY_FRAMEWORK "Security")
  mark_as_advanced(SECURITY_FRAMEWORK)
  if(NOT SECURITY_FRAMEWORK)
    message(FATAL_ERROR "Security framework not found")
  endif()
-
  list(APPEND CURL_LIBS "-framework Security")

  set(_ssl_enabled ON)
  set(USE_SECTRANSP ON)
+
  list(APPEND CURL_LIBS "-framework Security")

  if(CURL_DEFAULT_SSL_BACKEND AND CURL_DEFAULT_SSL_BACKEND STREQUAL "secure-transport")
    set(_valid_default_ssl_backend TRUE)
@@ -717,19 +615,19 @@ if(CURL_USE_SECTRANSP)
endif()

if(_use_core_foundation_and_core_services)
-
  find_library(COREFOUNDATION_FRAMEWORK NAMES "CoreFoundation")
+
  find_library(COREFOUNDATION_FRAMEWORK "CoreFoundation")
  mark_as_advanced(COREFOUNDATION_FRAMEWORK)
+
  find_library(CORESERVICES_FRAMEWORK "CoreServices")
+
  mark_as_advanced(CORESERVICES_FRAMEWORK)
+

  if(NOT COREFOUNDATION_FRAMEWORK)
    message(FATAL_ERROR "CoreFoundation framework not found")
  endif()
-
  list(APPEND CURL_LIBS "-framework CoreFoundation")
-

-
  find_library(CORESERVICES_FRAMEWORK NAMES "CoreServices")
-
  mark_as_advanced(CORESERVICES_FRAMEWORK)
  if(NOT CORESERVICES_FRAMEWORK)
    message(FATAL_ERROR "CoreServices framework not found")
  endif()
-
  list(APPEND CURL_LIBS "-framework CoreServices")
+

+
  list(APPEND CURL_LIBS "-framework CoreFoundation" "-framework CoreServices")
endif()

if(CURL_USE_OPENSSL)
@@ -748,39 +646,14 @@ if(CURL_USE_OPENSSL)
  set(_curl_ca_bundle_supported TRUE)

  cmake_push_check_state()
-
  list(APPEND CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
+
  set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
  if(NOT DEFINED HAVE_BORINGSSL)
    check_symbol_exists("OPENSSL_IS_BORINGSSL" "openssl/base.h" HAVE_BORINGSSL)
  endif()
  if(NOT DEFINED HAVE_AWSLC)
    check_symbol_exists("OPENSSL_IS_AWSLC" "openssl/base.h" HAVE_AWSLC)
  endif()
-
  if(NOT DEFINED HAVE_LIBRESSL)
-
    check_symbol_exists("LIBRESSL_VERSION_NUMBER" "openssl/opensslv.h" HAVE_LIBRESSL)
-
  endif()
  cmake_pop_check_state()
-

-
  if(HAVE_BORINGSSL OR HAVE_AWSLC)
-
    if(OPENSSL_USE_STATIC_LIBS AND CMAKE_C_COMPILER_ID MATCHES "Clang")
-
      list(APPEND CURL_LIBS "stdc++")
-
      list(APPEND CMAKE_REQUIRED_LIBRARIES "stdc++")
-
    endif()
-
  endif()
-

-
  if(HAVE_BORINGSSL)
-
    set(_openssl "BoringSSL")
-
  elseif(HAVE_AWSLC)
-
    set(_openssl "AWS-LC")
-
  elseif(HAVE_LIBRESSL)
-
    set(_openssl "LibreSSL")
-
  elseif(USE_AMISSL)
-
    set(_openssl "AmiSSL")
-
  else()
-
    set(_openssl "OpenSSL")
-
    if(OPENSSL_VERSION VERSION_LESS 1.1.1)
-
      message(WARNING "OpenSSL ${OPENSSL_VERSION} does not support TLS 1.3.")
-
    endif()
-
  endif()
endif()

if(CURL_USE_MBEDTLS)
@@ -823,7 +696,7 @@ if(CURL_USE_WOLFSSL)
  set(USE_WOLFSSL ON)
  list(APPEND CURL_LIBS ${WOLFSSL_LIBRARIES})
  list(APPEND CURL_LIBDIRS ${WOLFSSL_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${WOLFSSL_PC_REQUIRES})
+
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "wolfssl")
  include_directories(SYSTEM ${WOLFSSL_INCLUDE_DIRS})
  link_directories(${WOLFSSL_LIBRARY_DIRS})
  if(WOLFSSL_CFLAGS)
@@ -852,7 +725,7 @@ if(CURL_USE_GNUTLS)
  set(USE_GNUTLS ON)
  list(APPEND CURL_LIBS ${GNUTLS_LIBRARIES} ${NETTLE_LIBRARIES})
  list(APPEND CURL_LIBDIRS ${NETTLE_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "gnutls" ${NETTLE_PC_REQUIRES})
+
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "gnutls" "nettle")
  include_directories(SYSTEM ${GNUTLS_INCLUDE_DIRS} ${NETTLE_INCLUDE_DIRS})
  link_directories(${NETTLE_LIBRARY_DIRS})
  if(NETTLE_CFLAGS)
@@ -866,8 +739,8 @@ if(CURL_USE_GNUTLS)

  if(NOT DEFINED HAVE_GNUTLS_SRP AND NOT CURL_DISABLE_SRP)
    cmake_push_check_state()
-
    list(APPEND CMAKE_REQUIRED_INCLUDES ${GNUTLS_INCLUDE_DIRS})
-
    list(APPEND CMAKE_REQUIRED_LIBRARIES ${GNUTLS_LIBRARIES})
+
    set(CMAKE_REQUIRED_INCLUDES ${GNUTLS_INCLUDE_DIRS})
+
    set(CMAKE_REQUIRED_LIBRARIES ${GNUTLS_LIBRARIES})
    check_symbol_exists("gnutls_srp_verifier" "gnutls/gnutls.h" HAVE_GNUTLS_SRP)
    cmake_pop_check_state()
  endif()
@@ -897,56 +770,51 @@ if(CURL_DEFAULT_SSL_BACKEND AND NOT _valid_default_ssl_backend)
endif()

# Keep ZLIB detection after TLS detection,
-
# and before calling curl_openssl_check_symbol_exists().
+
# and before calling openssl_check_symbol_exists().

set(HAVE_LIBZ OFF)
-
curl_dependency_option(CURL_ZLIB ZLIB "ZLIB")
+
curl_dependency_option(ZLIB)
if(ZLIB_FOUND)
  set(HAVE_LIBZ ON)
+

  # Depend on ZLIB via imported targets. This allows our dependents to
  # get our dependencies transitively.
  list(APPEND CURL_LIBS ZLIB::ZLIB)
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "zlib")
endif()

+
option(CURL_BROTLI "Use brotli" OFF)
set(HAVE_BROTLI OFF)
-
curl_dependency_option(CURL_BROTLI Brotli "brotli")
-
if(BROTLI_FOUND)
-
  set(HAVE_BROTLI ON)
-
  list(APPEND CURL_LIBS ${BROTLI_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${BROTLI_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${BROTLI_PC_REQUIRES})
-
  include_directories(SYSTEM ${BROTLI_INCLUDE_DIRS})
-
  link_directories(${BROTLI_LIBRARY_DIRS})
-
  if(BROTLI_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${BROTLI_CFLAGS}")
+
if(CURL_BROTLI)
+
  find_package(Brotli REQUIRED)
+
  if(BROTLI_FOUND)
+
    set(HAVE_BROTLI ON)
+
    list(APPEND CURL_LIBS ${BROTLI_LIBRARIES})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libbrotlidec")
+
    include_directories(SYSTEM ${BROTLI_INCLUDE_DIRS})
  endif()
endif()

+
option(CURL_ZSTD "Use zstd" OFF)
set(HAVE_ZSTD OFF)
-
curl_dependency_option(CURL_ZSTD Zstd "zstd")
-
if(ZSTD_FOUND)
-
  if(NOT ZSTD_VERSION VERSION_LESS 1.0.0)
+
if(CURL_ZSTD)
+
  find_package(Zstd REQUIRED)
+
  if(ZSTD_FOUND AND NOT ZSTD_VERSION VERSION_LESS 1.0.0)
    set(HAVE_ZSTD ON)
    list(APPEND CURL_LIBS ${ZSTD_LIBRARIES})
-
    list(APPEND CURL_LIBDIRS ${ZSTD_LIBRARY_DIRS})
-
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${ZSTD_PC_REQUIRES})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libzstd")
    include_directories(SYSTEM ${ZSTD_INCLUDE_DIRS})
-
    link_directories(${ZSTD_LIBRARY_DIRS})
-
    if(ZSTD_CFLAGS)
-
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ZSTD_CFLAGS}")
-
    endif()
  else()
    message(WARNING "zstd v1.0.0 or newer is required, disabling zstd support.")
  endif()
endif()

-
# Check symbol in an OpenSSL-like TLS backend.
-
macro(curl_openssl_check_symbol_exists _symbol _files _variable)
+
# Check symbol in an OpenSSL-like TLS backend, or in _extra_libs depending on it.
+
macro(openssl_check_symbol_exists _symbol _files _variable _extra_libs)
  cmake_push_check_state()
  if(USE_OPENSSL)
-
    list(APPEND CMAKE_REQUIRED_INCLUDES   "${OPENSSL_INCLUDE_DIR}")
-
    list(APPEND CMAKE_REQUIRED_LIBRARIES  "${OPENSSL_LIBRARIES}")
+
    set(CMAKE_REQUIRED_INCLUDES   "${OPENSSL_INCLUDE_DIR}")
+
    set(CMAKE_REQUIRED_LIBRARIES  "${OPENSSL_LIBRARIES}")
    if(HAVE_LIBZ)
      list(APPEND CMAKE_REQUIRED_LIBRARIES "${ZLIB_LIBRARIES}")
    endif()
@@ -954,10 +822,9 @@ macro(curl_openssl_check_symbol_exists _symbol _files _variable)
      list(APPEND CMAKE_REQUIRED_LIBRARIES "ws2_32")
      list(APPEND CMAKE_REQUIRED_LIBRARIES "bcrypt")  # for OpenSSL/LibreSSL
    endif()
-
  endif()
-
  if(USE_WOLFSSL)
-
    list(APPEND CMAKE_REQUIRED_INCLUDES   "${WOLFSSL_INCLUDE_DIRS}")
-
    list(APPEND CMAKE_REQUIRED_LIBRARIES  "${WOLFSSL_LIBRARIES}")
+
  elseif(USE_WOLFSSL)
+
    set(CMAKE_REQUIRED_INCLUDES   "${WOLFSSL_INCLUDE_DIRS}")
+
    set(CMAKE_REQUIRED_LIBRARIES  "${WOLFSSL_LIBRARIES}")
    curl_required_libpaths("${WOLFSSL_LIBRARY_DIRS}")
    if(HAVE_LIBZ)
      list(APPEND CMAKE_REQUIRED_INCLUDES  "${ZLIB_INCLUDE_DIRS}")  # Public wolfSSL headers require zlib headers
@@ -968,38 +835,38 @@ macro(curl_openssl_check_symbol_exists _symbol _files _variable)
    endif()
    list(APPEND CMAKE_REQUIRED_DEFINITIONS "-DHAVE_UINTPTR_T")  # to pull in stdint.h (as of wolfSSL v5.5.4)
  endif()
+
  list(APPEND CMAKE_REQUIRED_LIBRARIES "${_extra_libs}")
  check_symbol_exists("${_symbol}" "${_files}" "${_variable}")
  cmake_pop_check_state()
endmacro()

# Ensure that the OpenSSL fork actually supports QUIC.
-
macro(curl_openssl_check_quic)
-
  if(NOT DEFINED HAVE_SSL_SET_QUIC_USE_LEGACY_CODEPOINT)
+
macro(openssl_check_quic)
+
  if(NOT DEFINED HAVE_SSL_CTX_SET_QUIC_METHOD)
    if(USE_OPENSSL)
-
      curl_openssl_check_symbol_exists("SSL_set_quic_use_legacy_codepoint" "openssl/ssl.h" HAVE_SSL_SET_QUIC_USE_LEGACY_CODEPOINT)
-
    endif()
-
    if(USE_WOLFSSL)
-
      curl_openssl_check_symbol_exists("wolfSSL_set_quic_use_legacy_codepoint" "wolfssl/options.h;wolfssl/openssl/ssl.h"
-
        HAVE_SSL_SET_QUIC_USE_LEGACY_CODEPOINT)
+
      openssl_check_symbol_exists("SSL_CTX_set_quic_method" "openssl/ssl.h" HAVE_SSL_CTX_SET_QUIC_METHOD "")
+
    elseif(USE_WOLFSSL)
+
      openssl_check_symbol_exists("wolfSSL_set_quic_method" "wolfssl/options.h;wolfssl/openssl/ssl.h"
+
        HAVE_SSL_CTX_SET_QUIC_METHOD "")
    endif()
  endif()
-
  if(NOT HAVE_SSL_SET_QUIC_USE_LEGACY_CODEPOINT)
+
  if(NOT HAVE_SSL_CTX_SET_QUIC_METHOD)
    message(FATAL_ERROR "QUIC support is missing in OpenSSL fork. Try setting -DOPENSSL_ROOT_DIR")
  endif()
endmacro()

if(USE_WOLFSSL)
-
  curl_openssl_check_symbol_exists("wolfSSL_DES_ecb_encrypt" "wolfssl/options.h;wolfssl/openssl/des.h" HAVE_WOLFSSL_DES_ECB_ENCRYPT)
-
  curl_openssl_check_symbol_exists("wolfSSL_BIO_new" "wolfssl/options.h;wolfssl/ssl.h" HAVE_WOLFSSL_BIO)
-
  curl_openssl_check_symbol_exists("wolfSSL_BIO_set_shutdown" "wolfssl/options.h;wolfssl/ssl.h" HAVE_WOLFSSL_FULL_BIO)
+
  openssl_check_symbol_exists("wolfSSL_DES_ecb_encrypt" "wolfssl/options.h;wolfssl/openssl/des.h" HAVE_WOLFSSL_DES_ECB_ENCRYPT "")
+
  openssl_check_symbol_exists("wolfSSL_BIO_new" "wolfssl/options.h;wolfssl/ssl.h" HAVE_WOLFSSL_BIO "")
+
  openssl_check_symbol_exists("wolfSSL_BIO_set_shutdown" "wolfssl/options.h;wolfssl/ssl.h" HAVE_WOLFSSL_FULL_BIO "")
endif()

if(USE_OPENSSL OR USE_WOLFSSL)
  if(NOT DEFINED HAVE_SSL_SET0_WBIO)
-
    curl_openssl_check_symbol_exists("SSL_set0_wbio" "openssl/ssl.h" HAVE_SSL_SET0_WBIO)
+
    openssl_check_symbol_exists("SSL_set0_wbio" "openssl/ssl.h" HAVE_SSL_SET0_WBIO "")
  endif()
  if(NOT DEFINED HAVE_OPENSSL_SRP AND NOT CURL_DISABLE_SRP)
-
    curl_openssl_check_symbol_exists("SSL_CTX_set_srp_username" "openssl/ssl.h" HAVE_OPENSSL_SRP)
+
    openssl_check_symbol_exists("SSL_CTX_set_srp_username" "openssl/ssl.h" HAVE_OPENSSL_SRP "")
  endif()
endif()

@@ -1008,53 +875,32 @@ option(USE_ECH "Enable ECH support" OFF)
if(USE_ECH)
  if(USE_OPENSSL OR USE_WOLFSSL)
    # Be sure that the TLS library actually supports ECH.
-
    if(USE_WOLFSSL)
-
      curl_openssl_check_symbol_exists("wolfSSL_CTX_GenerateEchConfig" "wolfssl/options.h;wolfssl/ssl.h"
-
        HAVE_WOLFSSL_CTX_GENERATEECHCONFIG)
-
    endif()
-
    if(HAVE_BORINGSSL OR HAVE_AWSLC)
-
      curl_openssl_check_symbol_exists("SSL_set1_ech_config_list" "openssl/ssl.h" HAVE_SSL_SET1_ECH_CONFIG_LIST)
-
    elseif(HAVE_OPENSSL)
-
      curl_openssl_check_symbol_exists("SSL_set1_ech_config_list" "openssl/ech.h" HAVE_SSL_SET1_ECH_CONFIG_LIST)
-
    endif()
-
    if(HAVE_WOLFSSL_CTX_GENERATEECHCONFIG OR
-
       HAVE_SSL_SET1_ECH_CONFIG_LIST)
-
      set(HAVE_ECH 1)
+
    if(NOT DEFINED HAVE_ECH)
+
      if(USE_OPENSSL AND (HAVE_BORINGSSL OR HAVE_AWSLC))
+
        openssl_check_symbol_exists("SSL_set1_ech_config_list" "openssl/ssl.h" HAVE_ECH "")
+
      elseif(USE_OPENSSL)
+
        openssl_check_symbol_exists("SSL_ech_set1_echconfig" "openssl/ech.h" HAVE_ECH "")
+
      elseif(USE_WOLFSSL)
+
        openssl_check_symbol_exists("wolfSSL_CTX_GenerateEchConfig" "wolfssl/options.h;wolfssl/ssl.h" HAVE_ECH "")
+
      endif()
    endif()
    if(NOT HAVE_ECH)
      message(FATAL_ERROR "ECH support missing in OpenSSL/BoringSSL/AWS-LC/wolfSSL")
    else()
-
      message(STATUS "ECH enabled")
-
      # ECH wants HTTPSRR
-
      set(USE_HTTPSRR ON)
-
      message(STATUS "HTTPSRR enabled")
+
      message(STATUS "ECH enabled.")
    endif()
  else()
    message(FATAL_ERROR "ECH requires ECH-enablded OpenSSL, BoringSSL, AWS-LC or wolfSSL")
  endif()
endif()

-
option(USE_SSLS_EXPORT "Enable SSL session export support" OFF)
-
if(USE_SSLS_EXPORT)
-
  if(_ssl_enabled)
-
    message(STATUS "SSL export enabled.")
-
  else()
-
    message(FATAL_ERROR "SSL session export requires SSL enabled")
-
  endif()
-
endif()
-

option(USE_NGHTTP2 "Use nghttp2 library" ON)
if(USE_NGHTTP2)
  find_package(NGHTTP2)
  if(NGHTTP2_FOUND)
-
    list(APPEND CURL_LIBS ${NGHTTP2_LIBRARIES})
-
    list(APPEND CURL_LIBDIRS ${NGHTTP2_LIBRARY_DIRS})
-
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${NGHTTP2_PC_REQUIRES})
    include_directories(SYSTEM ${NGHTTP2_INCLUDE_DIRS})
-
    link_directories(${NGHTTP2_LIBRARY_DIRS})
-
    if(NGHTTP2_CFLAGS)
-
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NGHTTP2_CFLAGS}")
-
    endif()
+
    list(APPEND CURL_LIBS ${NGHTTP2_LIBRARIES})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libnghttp2")
  else()
    set(USE_NGHTTP2 OFF)
  endif()
@@ -1065,39 +911,30 @@ if(USE_NGTCP2)
  if(USE_OPENSSL OR USE_WOLFSSL)
    if(USE_WOLFSSL)
      find_package(NGTCP2 REQUIRED "wolfSSL")
+
      list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libngtcp2_crypto_wolfssl")
    elseif(HAVE_BORINGSSL OR HAVE_AWSLC)
      find_package(NGTCP2 REQUIRED "BoringSSL")
+
      list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libngtcp2_crypto_boringssl")
    else()
      find_package(NGTCP2 REQUIRED "quictls")
-
      if(NOT HAVE_LIBRESSL)
-
        set(_openssl "quictls")
-
      endif()
+
      list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libngtcp2_crypto_quictls")
    endif()
-
    curl_openssl_check_quic()
+
    openssl_check_quic()
  elseif(USE_GNUTLS)
    find_package(NGTCP2 REQUIRED "GnuTLS")
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libngtcp2_crypto_gnutls")
  else()
    message(FATAL_ERROR "ngtcp2 requires OpenSSL, wolfSSL or GnuTLS")
  endif()
-
  list(APPEND CURL_LIBS ${NGTCP2_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${NGTCP2_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${NGTCP2_PC_REQUIRES})
  include_directories(SYSTEM ${NGTCP2_INCLUDE_DIRS})
-
  link_directories(${NGTCP2_LIBRARY_DIRS})
-
  if(NGTCP2_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NGTCP2_CFLAGS}")
-
  endif()
+
  list(APPEND CURL_LIBS ${NGTCP2_LIBRARIES})
+
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libngtcp2")

  find_package(NGHTTP3 REQUIRED)
  set(USE_NGHTTP3 ON)
-
  list(APPEND CURL_LIBS ${NGHTTP3_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${NGHTTP3_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${NGHTTP3_PC_REQUIRES})
  include_directories(SYSTEM ${NGHTTP3_INCLUDE_DIRS})
-
  link_directories(${NGHTTP3_LIBRARY_DIRS})
-
  if(NGHTTP3_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NGHTTP3_CFLAGS}")
-
  endif()
+
  list(APPEND CURL_LIBS ${NGHTTP3_LIBRARIES})
+
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libnghttp3")
endif()

option(USE_QUICHE "Use quiche library for HTTP/3 support" OFF)
@@ -1109,10 +946,10 @@ if(USE_QUICHE)
  if(NOT HAVE_BORINGSSL)
    message(FATAL_ERROR "quiche requires BoringSSL")
  endif()
-
  curl_openssl_check_quic()
+
  openssl_check_quic()
  list(APPEND CURL_LIBS ${QUICHE_LIBRARIES})
  list(APPEND CURL_LIBDIRS ${QUICHE_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${QUICHE_PC_REQUIRES})
+
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "quiche")
  include_directories(SYSTEM ${QUICHE_INCLUDE_DIRS})
  link_directories(${QUICHE_LIBRARY_DIRS})
  if(QUICHE_CFLAGS)
@@ -1120,8 +957,8 @@ if(USE_QUICHE)
  endif()
  if(NOT DEFINED HAVE_QUICHE_CONN_SET_QLOG_FD)
    cmake_push_check_state()
-
    list(APPEND CMAKE_REQUIRED_INCLUDES   "${QUICHE_INCLUDE_DIRS}")
-
    list(APPEND CMAKE_REQUIRED_LIBRARIES  "${QUICHE_LIBRARIES}")
+
    set(CMAKE_REQUIRED_INCLUDES   "${QUICHE_INCLUDE_DIRS}")
+
    set(CMAKE_REQUIRED_LIBRARIES  "${QUICHE_LIBRARIES}")
    check_symbol_exists("quiche_conn_set_qlog_fd" "quiche.h" HAVE_QUICHE_CONN_SET_QLOG_FD)
    cmake_pop_check_state()
  endif()
@@ -1136,7 +973,7 @@ if(USE_MSH3)
    if(NOT USE_OPENSSL)
      message(FATAL_ERROR "msh3/msquic requires OpenSSL fork with QUIC API")
    endif()
-
    curl_openssl_check_quic()
+
    openssl_check_quic()
  endif()
  find_package(MSH3 REQUIRED)
  list(APPEND CURL_LIBS ${MSH3_LIBRARIES})
@@ -1159,7 +996,7 @@ if(USE_OPENSSL_QUIC)
  set(USE_NGHTTP3 ON)
  include_directories(SYSTEM ${NGHTTP3_INCLUDE_DIRS})
  list(APPEND CURL_LIBS ${NGHTTP3_LIBRARIES})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${NGHTTP3_PC_REQUIRES})
+
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libnghttp3")
endif()

if(CURL_WITH_MULTI_SSL AND (USE_NGTCP2 OR USE_QUICHE OR USE_MSH3 OR USE_OPENSSL_QUIC))
@@ -1183,30 +1020,59 @@ if(NOT CURL_DISABLE_LDAP)

  # Now that we know, we are not using Windows LDAP...
  if(NOT USE_WIN32_LDAP)
+
    if(NOT DEFINED LDAP_LIBRARY)
+
      set(LDAP_LIBRARY "ldap" CACHE STRING "Name or full path to ldap library")
+
    endif()
+
    if(NOT DEFINED LDAP_LBER_LIBRARY)
+
      set(LDAP_LBER_LIBRARY "lber" CACHE STRING "Name or full path to lber library")
+
    endif()
+
    if(NOT DEFINED LDAP_INCLUDE_DIR)
+
      set(LDAP_INCLUDE_DIR "" CACHE STRING "Path to LDAP include directory")
+
    endif()
+

    # Check for LDAP
    cmake_push_check_state()
    if(USE_OPENSSL)
-
      list(APPEND CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
+
      set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
+
    endif()
+
    check_library_exists("${LDAP_LIBRARY}" "ldap_init" "" HAVE_LIBLDAP)
+
    if(HAVE_LIBLDAP)
+
      check_library_exists("${LDAP_LIBRARY};${LDAP_LBER_LIBRARY}" "ber_init" "" HAVE_LIBLBER)
+
    else()
+
      check_library_exists("${LDAP_LBER_LIBRARY}" "ber_init" "" HAVE_LIBLBER)
    endif()
-
    find_package(LDAP)
-
    if(LDAP_FOUND)
-
      set(HAVE_LBER_H 1)
-
      set(CURL_LIBS "${LDAP_LIBRARIES};${CURL_LIBS}")
-
      list(APPEND CURL_LIBDIRS ${LDAP_LIBRARY_DIRS})
-
      if(LDAP_PC_REQUIRES)
-
        set(LIBCURL_PC_REQUIRES_PRIVATE "${LDAP_PC_REQUIRES};${LIBCURL_PC_REQUIRES_PRIVATE}")
-
      endif()
-
      include_directories(SYSTEM ${LDAP_INCLUDE_DIRS})
-
      link_directories(${LDAP_LIBRARY_DIRS})
-
      if(LDAP_CFLAGS)
-
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LDAP_CFLAGS}")
-
      endif()

-
      # LDAP feature checks
+
    if(LDAP_INCLUDE_DIR)
+
      list(APPEND CMAKE_REQUIRED_INCLUDES ${LDAP_INCLUDE_DIR})
+
    endif()
+

+
    unset(_include_list)
+
    check_include_file("lber.h" HAVE_LBER_H)
+
    if(HAVE_LBER_H)
+
      list(APPEND _include_list "lber.h")
+
    endif()
+
    check_include_files("${_include_list};ldap.h" HAVE_LDAP_H)
+
    unset(_include_list)

+
    if(NOT HAVE_LDAP_H)
+
      message(STATUS "LDAP_H not found CURL_DISABLE_LDAP set ON")
+
      set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE)
+
    elseif(NOT HAVE_LIBLDAP)
+
      message(STATUS "LDAP library '${LDAP_LIBRARY}' not found CURL_DISABLE_LDAP set ON")
+
      set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE)
+
    else()
+
      if(LDAP_INCLUDE_DIR)
+
        include_directories(SYSTEM ${LDAP_INCLUDE_DIR})
+
      endif()
      list(APPEND CMAKE_REQUIRED_DEFINITIONS "-DLDAP_DEPRECATED=1")
-
      list(APPEND CMAKE_REQUIRED_LIBRARIES ${LDAP_LIBRARIES})
-
      curl_required_libpaths("${LDAP_LIBRARY_DIRS}")
+
      list(APPEND CMAKE_REQUIRED_LIBRARIES ${LDAP_LIBRARY})
+
      set(CURL_LIBS "${LDAP_LIBRARY};${CURL_LIBS}")
+
      # FIXME: uncomment once pkg-config-based detection landed: https://github.com/curl/curl/pull/15273
+
      # set(LIBCURL_PC_REQUIRES_PRIVATE "${LDAP_PC_REQUIRES};${LIBCURL_PC_REQUIRES_PRIVATE}")
+
      if(HAVE_LIBLBER)
+
        list(APPEND CMAKE_REQUIRED_LIBRARIES ${LDAP_LBER_LIBRARY})
+
        set(CURL_LIBS "${LDAP_LBER_LIBRARY};${CURL_LIBS}")
+
      endif()

      check_function_exists("ldap_url_parse" HAVE_LDAP_URL_PARSE)
      check_function_exists("ldap_init_fd" HAVE_LDAP_INIT_FD)
@@ -1220,9 +1086,6 @@ if(NOT CURL_DISABLE_LDAP)
      if(NOT CURL_DISABLE_LDAPS)
        set(HAVE_LDAP_SSL ON)
      endif()
-
    else()
-
      message(STATUS "LDAP not found. CURL_DISABLE_LDAP set ON")
-
      set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE)
    endif()
    cmake_pop_check_state()
  endif()
@@ -1249,7 +1112,7 @@ if(APPLE)
  option(USE_APPLE_IDN "Use Apple built-in IDN support" OFF)
  if(USE_APPLE_IDN)
    cmake_push_check_state()
-
    list(APPEND CMAKE_REQUIRED_LIBRARIES "icucore")
+
    set(CMAKE_REQUIRED_LIBRARIES "icucore")
    check_symbol_exists("uidna_openUTS46" "unicode/uidna.h" HAVE_APPLE_IDN)
    cmake_pop_check_state()
    if(HAVE_APPLE_IDN)
@@ -1271,7 +1134,7 @@ if(USE_LIBIDN2 AND NOT USE_APPLE_IDN AND NOT USE_WIN32_IDN)
  if(LIBIDN2_FOUND)
    set(CURL_LIBS "${LIBIDN2_LIBRARIES};${CURL_LIBS}")
    list(APPEND CURL_LIBDIRS ${LIBIDN2_LIBRARY_DIRS})
-
    set(LIBCURL_PC_REQUIRES_PRIVATE "${LIBIDN2_PC_REQUIRES};${LIBCURL_PC_REQUIRES_PRIVATE}")
+
    set(LIBCURL_PC_REQUIRES_PRIVATE "libidn2;${LIBCURL_PC_REQUIRES_PRIVATE}")
    include_directories(SYSTEM ${LIBIDN2_INCLUDE_DIRS})
    link_directories(${LIBIDN2_LIBRARY_DIRS})
    if(LIBIDN2_CFLAGS)
@@ -1288,16 +1151,15 @@ mark_as_advanced(CURL_USE_LIBPSL)
set(USE_LIBPSL OFF)

if(CURL_USE_LIBPSL)
-
  find_package(Libpsl REQUIRED)
-
  list(APPEND CURL_LIBS ${LIBPSL_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${LIBPSL_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${LIBPSL_PC_REQUIRES})
-
  include_directories(SYSTEM ${LIBPSL_INCLUDE_DIRS})
-
  link_directories(${LIBPSL_LIBRARY_DIRS})
-
  if(LIBPSL_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBPSL_CFLAGS}")
+
  find_package(Libpsl)  # TODO: add REQUIRED to match autotools
+
  if(LIBPSL_FOUND)
+
    list(APPEND CURL_LIBS ${LIBPSL_LIBRARIES})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libpsl")
+
    include_directories(SYSTEM ${LIBPSL_INCLUDE_DIRS})
+
    set(USE_LIBPSL ON)
+
  else()
+
    message(WARNING "libpsl is enabled, but not found.")
  endif()
-
  set(USE_LIBPSL ON)
endif()

# libssh2
@@ -1309,13 +1171,8 @@ if(CURL_USE_LIBSSH2)
  find_package(Libssh2)
  if(LIBSSH2_FOUND)
    list(APPEND CURL_LIBS ${LIBSSH2_LIBRARIES})
-
    list(APPEND CURL_LIBDIRS ${LIBSSH2_LIBRARY_DIRS})
-
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${LIBSSH2_PC_REQUIRES})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libssh2")
    include_directories(SYSTEM ${LIBSSH2_INCLUDE_DIRS})
-
    link_directories(${LIBSSH2_LIBRARY_DIRS})
-
    if(LIBSSH2_CFLAGS)
-
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBSSH2_CFLAGS}")
-
    endif()
    set(USE_LIBSSH2 ON)
  endif()
endif()
@@ -1325,15 +1182,17 @@ option(CURL_USE_LIBSSH "Use libssh" OFF)
mark_as_advanced(CURL_USE_LIBSSH)
if(NOT USE_LIBSSH2 AND CURL_USE_LIBSSH)
  find_package(Libssh REQUIRED)
-
  list(APPEND CURL_LIBS ${LIBSSH_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${LIBSSH_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${LIBSSH_PC_REQUIRES})
-
  include_directories(SYSTEM ${LIBSSH_INCLUDE_DIRS})
-
  link_directories(${LIBSSH_LIBRARY_DIRS})
-
  if(LIBSSH_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBSSH_CFLAGS}")
+
  if(LIBSSH_FOUND)
+
    list(APPEND CURL_LIBS ${LIBSSH_LIBRARIES})
+
    list(APPEND CURL_LIBDIRS ${LIBSSH_LIBRARY_DIRS})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libssh")
+
    include_directories(SYSTEM ${LIBSSH_INCLUDE_DIRS})
+
    link_directories(${LIBSSH_LIBRARY_DIRS})
+
    if(LIBSSH_CFLAGS)
+
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBSSH_CFLAGS}")
+
    endif()
+
    set(USE_LIBSSH ON)
  endif()
-
  set(USE_LIBSSH ON)
endif()

# wolfSSH
@@ -1357,15 +1216,17 @@ option(CURL_USE_GSASL "Use libgsasl" OFF)
mark_as_advanced(CURL_USE_GSASL)
if(CURL_USE_GSASL)
  find_package(Libgsasl REQUIRED)
-
  list(APPEND CURL_LIBS ${LIBGSASL_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${LIBGSASL_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${LIBGSASL_PC_REQUIRES})
-
  include_directories(SYSTEM ${LIBGSASL_INCLUDE_DIRS})
-
  link_directories(${LIBGSASL_LIBRARY_DIRS})
-
  if(LIBGSASL_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBGSASL_CFLAGS}")
+
  if(LIBGSASL_FOUND)
+
    list(APPEND CURL_LIBS ${LIBGSASL_LIBRARIES})
+
    list(APPEND CURL_LIBDIRS ${LIBGSASL_LIBRARY_DIRS})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libgsasl")
+
    include_directories(SYSTEM ${LIBGSASL_INCLUDE_DIRS})
+
    link_directories(${LIBGSASL_LIBRARY_DIRS})
+
    if(LIBGSASL_CFLAGS)
+
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBGSASL_CFLAGS}")
+
    endif()
+
    set(USE_GSASL ON)
  endif()
-
  set(USE_GSASL ON)
endif()

option(CURL_USE_GSSAPI "Use GSSAPI implementation" OFF)
@@ -1376,15 +1237,6 @@ if(CURL_USE_GSSAPI)

  set(HAVE_GSSAPI ${GSS_FOUND})
  if(GSS_FOUND)
-
    list(APPEND CURL_LIBS ${GSS_LIBRARIES})
-
    list(APPEND CURL_LIBDIRS ${GSS_LIBRARY_DIRS})
-
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${GSS_PC_REQUIRES})
-
    include_directories(SYSTEM ${GSS_INCLUDE_DIRS})
-
    link_directories(${GSS_LIBRARY_DIRS})
-
    if(GSS_CFLAGS)
-
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GSS_CFLAGS}")
-
    endif()
-

    if(GSS_FLAVOUR STREQUAL "GNU")
      set(HAVE_GSSGNU 1)
    else()
@@ -1408,8 +1260,8 @@ if(CURL_USE_GSSAPI)
        endif()

        if(NOT DEFINED HAVE_GSS_C_NT_HOSTBASED_SERVICE)
-
          set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${GSS_CFLAGS}")
-
          list(APPEND CMAKE_REQUIRED_LIBRARIES ${GSS_LIBRARIES})
+
          set(CMAKE_REQUIRED_FLAGS ${GSS_CFLAGS})
+
          set(CMAKE_REQUIRED_LIBRARIES ${GSS_LIBRARIES})
          curl_required_libpaths("${GSS_LIBRARY_DIRS}")
          check_symbol_exists("GSS_C_NT_HOSTBASED_SERVICE" "${_include_list}" HAVE_GSS_C_NT_HOSTBASED_SERVICE)
        endif()
@@ -1420,6 +1272,15 @@ if(CURL_USE_GSSAPI)
      unset(_include_list)
      cmake_pop_check_state()
    endif()
+

+
    list(APPEND CURL_LIBS ${GSS_LIBRARIES})
+
    list(APPEND CURL_LIBDIRS ${GSS_LIBRARY_DIRS})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${GSS_PC_REQUIRES})
+
    include_directories(SYSTEM ${GSS_INCLUDE_DIRS})
+
    link_directories(${GSS_LIBRARY_DIRS})
+
    if(GSS_CFLAGS)
+
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GSS_CFLAGS}")
+
    endif()
  else()
    message(WARNING "GSSAPI has been requested, but no supporting libraries found. Skipping.")
  endif()
@@ -1432,34 +1293,42 @@ if(CURL_USE_LIBUV)
    message(FATAL_ERROR "Using libuv without debug support enabled is useless")
  endif()
  find_package(Libuv REQUIRED)
-
  list(APPEND CURL_LIBS ${LIBUV_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${LIBUV_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${LIBUV_PC_REQUIRES})
-
  include_directories(SYSTEM ${LIBUV_INCLUDE_DIRS})
-
  link_directories(${LIBUV_LIBRARY_DIRS})
-
  if(LIBUV_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBUV_CFLAGS}")
+
  if(LIBUV_FOUND)
+
    list(APPEND CURL_LIBS ${LIBUV_LIBRARIES})
+
    list(APPEND CURL_LIBDIRS ${LIBUV_LIBRARY_DIRS})
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "libuv")
+
    include_directories(SYSTEM ${LIBUV_INCLUDE_DIRS})
+
    link_directories(${LIBUV_LIBRARY_DIRS})
+
    if(LIBUV_CFLAGS)
+
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBUV_CFLAGS}")
+
    endif()
+
    set(USE_LIBUV ON)
+
    set(HAVE_UV_H ON)
  endif()
-
  set(USE_LIBUV ON)
-
  set(HAVE_UV_H ON)
endif()

option(USE_LIBRTMP "Enable librtmp from rtmpdump" OFF)
if(USE_LIBRTMP)
-
  find_package(Librtmp REQUIRED)
-
  list(APPEND CURL_LIBS ${LIBRTMP_LIBRARIES})
-
  list(APPEND CURL_LIBDIRS ${LIBRTMP_LIBRARY_DIRS})
-
  list(APPEND LIBCURL_PC_REQUIRES_PRIVATE ${LIBRTMP_PC_REQUIRES})
-
  include_directories(SYSTEM ${LIBRTMP_INCLUDE_DIRS})
-
  link_directories(${LIBRTMP_LIBRARY_DIRS})
-
  if(LIBRTMP_CFLAGS)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBRTMP_CFLAGS}")
+
  set(_extra_libs "rtmp")
+
  if(WIN32)
+
    list(APPEND _extra_libs "winmm")
+
  endif()
+
  openssl_check_symbol_exists("RTMP_Init" "librtmp/rtmp.h" HAVE_LIBRTMP "${_extra_libs}")
+
  if(HAVE_LIBRTMP)
+
    list(APPEND CURL_LIBS "rtmp")
+
    list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "librtmp")
+
    if(WIN32)
+
      list(APPEND CURL_LIBS "winmm")
+
    endif()
+
  else()
+
    message(WARNING "librtmp has been requested, but not found or missing OpenSSL. Skipping.")
+
    set(USE_LIBRTMP OFF)
  endif()
endif()

option(ENABLE_UNIX_SOCKETS "Enable Unix domain sockets support" ON)
if(ENABLE_UNIX_SOCKETS)
-
  if(WIN32 OR DOS)
+
  if(WIN32)
    set(USE_UNIX_SOCKETS ON)
  else()
    include(CheckStructHasMember)
@@ -1475,8 +1344,8 @@ endif()
if(_curl_ca_bundle_supported)
  set(CURL_CA_BUNDLE "auto" CACHE
    STRING "Path to the CA bundle. Set 'none' to disable or 'auto' for auto-detection. Defaults to 'auto'.")
-
  set(CURL_CA_FALLBACK OFF CACHE
-
    BOOL "Use built-in CA store of TLS backend. Defaults to OFF")
+
  set(CURL_CA_FALLBACK OFF CACHE BOOL
+
    "Use built-in CA store of TLS backend. Defaults to OFF")
  set(CURL_CA_PATH "auto" CACHE
    STRING "Location of default CA path. Set 'none' to disable or 'auto' for auto-detection. Defaults to 'auto'.")
  set(CURL_CA_EMBED "" CACHE
@@ -1591,38 +1460,40 @@ endif()

# Detect headers

-
# Use check_include_file_concat_curl() for headers required by subsequent
-
# check_include_file_concat_curl() or check_symbol_exists() detections.
+
# Use check_include_file_concat() for headers required by subsequent
+
# check_include_file_concat() or check_symbol_exists() detections.
# Order for these is significant.
check_include_file("sys/eventfd.h"    HAVE_SYS_EVENTFD_H)
check_include_file("sys/filio.h"      HAVE_SYS_FILIO_H)
+
check_include_file("sys/wait.h"       HAVE_SYS_WAIT_H)
check_include_file("sys/ioctl.h"      HAVE_SYS_IOCTL_H)
check_include_file("sys/param.h"      HAVE_SYS_PARAM_H)
check_include_file("sys/poll.h"       HAVE_SYS_POLL_H)
check_include_file("sys/resource.h"   HAVE_SYS_RESOURCE_H)
-
check_include_file_concat_curl("sys/select.h"     HAVE_SYS_SELECT_H)
-
check_include_file_concat_curl("sys/socket.h"     HAVE_SYS_SOCKET_H)
+
check_include_file_concat("sys/select.h"     HAVE_SYS_SELECT_H)
+
check_include_file_concat("sys/socket.h"     HAVE_SYS_SOCKET_H)
check_include_file("sys/sockio.h"     HAVE_SYS_SOCKIO_H)
check_include_file("sys/stat.h"       HAVE_SYS_STAT_H)
-
check_include_file_concat_curl("sys/time.h"       HAVE_SYS_TIME_H)
-
check_include_file_concat_curl("sys/types.h"      HAVE_SYS_TYPES_H)
+
check_include_file_concat("sys/time.h"       HAVE_SYS_TIME_H)
+
check_include_file_concat("sys/types.h"      HAVE_SYS_TYPES_H)
check_include_file("sys/un.h"         HAVE_SYS_UN_H)
-
check_include_file_concat_curl("sys/utime.h"      HAVE_SYS_UTIME_H)  # sys/types.h (AmigaOS)
+
check_include_file("sys/utime.h"      HAVE_SYS_UTIME_H)
+
check_include_file("sys/xattr.h"      HAVE_SYS_XATTR_H)

-
check_include_file_concat_curl("arpa/inet.h"      HAVE_ARPA_INET_H)
+
check_include_file_concat("arpa/inet.h"      HAVE_ARPA_INET_H)
check_include_file("dirent.h"         HAVE_DIRENT_H)
check_include_file("fcntl.h"          HAVE_FCNTL_H)
-
check_include_file_concat_curl("ifaddrs.h"        HAVE_IFADDRS_H)
+
check_include_file_concat("ifaddrs.h"        HAVE_IFADDRS_H)
check_include_file("io.h"             HAVE_IO_H)
-
check_include_file_concat_curl("libgen.h"         HAVE_LIBGEN_H)
+
check_include_file_concat("libgen.h"         HAVE_LIBGEN_H)
check_include_file("linux/tcp.h"      HAVE_LINUX_TCP_H)
check_include_file("locale.h"         HAVE_LOCALE_H)
-
check_include_file_concat_curl("net/if.h"         HAVE_NET_IF_H)  # sys/select.h (e.g. MS-DOS/Watt-32)
-
check_include_file_concat_curl("netdb.h"          HAVE_NETDB_H)
-
check_include_file_concat_curl("netinet/in.h"     HAVE_NETINET_IN_H)
+
check_include_file("net/if.h"         HAVE_NET_IF_H)
+
check_include_file_concat("netdb.h"          HAVE_NETDB_H)
+
check_include_file_concat("netinet/in.h"     HAVE_NETINET_IN_H)
check_include_file("netinet/in6.h"    HAVE_NETINET_IN6_H)
-
check_include_file_concat_curl("netinet/tcp.h"    HAVE_NETINET_TCP_H)  # sys/types.h (e.g. Cygwin) netinet/in.h
-
check_include_file_concat_curl("netinet/udp.h"    HAVE_NETINET_UDP_H)  # sys/types.h (e.g. Cygwin)
+
check_include_file_concat("netinet/tcp.h"    HAVE_NETINET_TCP_H)  # sys/types.h (e.g. Cygwin) netinet/in.h
+
check_include_file_concat("netinet/udp.h"    HAVE_NETINET_UDP_H)  # sys/types.h (e.g. Cygwin)
check_include_file("poll.h"           HAVE_POLL_H)
check_include_file("pwd.h"            HAVE_PWD_H)
check_include_file("stdatomic.h"      HAVE_STDATOMIC_H)
@@ -1631,11 +1502,11 @@ check_include_file("strings.h" HAVE_STRINGS_H)
check_include_file("stropts.h"        HAVE_STROPTS_H)
check_include_file("termio.h"         HAVE_TERMIO_H)
check_include_file("termios.h"        HAVE_TERMIOS_H)
-
check_include_file_concat_curl("unistd.h"         HAVE_UNISTD_H)
+
check_include_file_concat("unistd.h"         HAVE_UNISTD_H)
check_include_file("utime.h"          HAVE_UTIME_H)

-
if(AMIGA)
-
  check_include_file_concat_curl("proto/bsdsocket.h" HAVE_PROTO_BSDSOCKET_H)
+
if(CMAKE_SYSTEM_NAME MATCHES "AmigaOS")
+
  check_include_file_concat("proto/bsdsocket.h" HAVE_PROTO_BSDSOCKET_H)
endif()

# Pass these detection results to curl_internal_test() for use in CurlTests.c
@@ -1680,14 +1551,10 @@ if(SIZEOF_SUSECONDS_T)
endif()

# Check for some functions that are used
-

-
# Apply to all feature checks
if(WIN32)
-
  list(APPEND CMAKE_REQUIRED_LIBRARIES "ws2_32")
+
  list(APPEND CMAKE_REQUIRED_LIBRARIES "ws2_32")  # Apply to all feature checks
elseif(HAVE_LIBSOCKET)
-
  list(APPEND CMAKE_REQUIRED_LIBRARIES "socket")
-
elseif(DOS)
-
  list(APPEND CMAKE_REQUIRED_LIBRARIES "${WATT_ROOT}/lib/libwatt.a")
+
  list(APPEND CMAKE_REQUIRED_LIBRARIES "socket")  # Apply to all feature checks
endif()

check_function_exists("fnmatch"       HAVE_FNMATCH)
@@ -1695,6 +1562,7 @@ check_symbol_exists("basename" "${CURL_INCLUDES};string.h" HAVE_BASENAME)
check_symbol_exists("opendir"         "dirent.h" HAVE_OPENDIR)
check_function_exists("poll"          HAVE_POLL)  # poll.h
check_symbol_exists("socket"          "${CURL_INCLUDES}" HAVE_SOCKET)  # winsock2.h sys/socket.h
+
check_function_exists("sched_yield"   HAVE_SCHED_YIELD)
check_symbol_exists("socketpair"      "${CURL_INCLUDES}" HAVE_SOCKETPAIR)  # sys/socket.h
check_symbol_exists("recv"            "${CURL_INCLUDES}" HAVE_RECV)  # proto/bsdsocket.h sys/types.h sys/socket.h
check_symbol_exists("send"            "${CURL_INCLUDES}" HAVE_SEND)  # proto/bsdsocket.h sys/types.h sys/socket.h
@@ -1703,6 +1571,9 @@ check_function_exists("sendmmsg" HAVE_SENDMMSG)
check_symbol_exists("select"          "${CURL_INCLUDES}" HAVE_SELECT)  # proto/bsdsocket.h sys/select.h sys/socket.h
check_symbol_exists("strdup"          "string.h" HAVE_STRDUP)
check_symbol_exists("strtok_r"        "string.h" HAVE_STRTOK_R)
+
check_symbol_exists("strcasecmp"      "string.h" HAVE_STRCASECMP)
+
check_symbol_exists("stricmp"         "string.h" HAVE_STRICMP)
+
check_symbol_exists("strcmpi"         "string.h" HAVE_STRCMPI)
check_symbol_exists("memrchr"         "string.h" HAVE_MEMRCHR)
check_symbol_exists("alarm"           "unistd.h" HAVE_ALARM)
check_symbol_exists("fcntl"           "fcntl.h" HAVE_FCNTL)
@@ -1720,7 +1591,6 @@ check_function_exists("utime" HAVE_UTIME)
check_symbol_exists("gmtime_r"        "stdlib.h;time.h" HAVE_GMTIME_R)

check_symbol_exists("gethostbyname_r" "netdb.h" HAVE_GETHOSTBYNAME_R)
-
check_symbol_exists("gethostname"     "${CURL_INCLUDES}" HAVE_GETHOSTNAME)  # winsock2.h unistd.h proto/bsdsocket.h

check_symbol_exists("signal"          "signal.h" HAVE_SIGNAL)
check_symbol_exists("strtoll"         "stdlib.h" HAVE_STRTOLL)
@@ -1741,18 +1611,11 @@ check_function_exists("setlocale" HAVE_SETLOCALE)
check_function_exists("setmode"         HAVE_SETMODE)
check_function_exists("setrlimit"       HAVE_SETRLIMIT)

-
if(NOT WIN32)
-
  check_function_exists("sched_yield"   HAVE_SCHED_YIELD)
-
  check_symbol_exists("strcasecmp"      "string.h" HAVE_STRCASECMP)
-
  check_symbol_exists("stricmp"         "string.h" HAVE_STRICMP)
-
  check_symbol_exists("strcmpi"         "string.h" HAVE_STRCMPI)
-
endif()
-

if(WIN32 OR CYGWIN)
  check_function_exists("_setmode" HAVE__SETMODE)
endif()

-
if(AMIGA)
+
if(CMAKE_SYSTEM_NAME MATCHES "AmigaOS")
  check_symbol_exists("CloseSocket" "${CURL_INCLUDES}" HAVE_CLOSESOCKET_CAMEL)  # sys/socket.h proto/bsdsocket.h
endif()

@@ -1768,6 +1631,9 @@ if(APPLE)
  check_function_exists("mach_absolute_time" HAVE_MACH_ABSOLUTE_TIME)
endif()
check_symbol_exists("inet_ntop" "${CURL_INCLUDES};stdlib.h;string.h" HAVE_INET_NTOP)  # arpa/inet.h
+
if(MSVC AND (MSVC_VERSION LESS_EQUAL 1600))
+
  set(HAVE_INET_NTOP OFF)
+
endif()
check_symbol_exists("inet_pton" "${CURL_INCLUDES};stdlib.h;string.h" HAVE_INET_PTON)  # arpa/inet.h

check_symbol_exists("fsetxattr" "sys/xattr.h" HAVE_FSETXATTR)
@@ -1778,11 +1644,11 @@ endif()

cmake_push_check_state()
if(WIN32)
-
  list(APPEND CMAKE_EXTRA_INCLUDE_FILES "winsock2.h")
+
  set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h")
  check_type_size("ADDRESS_FAMILY" SIZEOF_ADDRESS_FAMILY)
  set(HAVE_ADDRESS_FAMILY ${HAVE_SIZEOF_ADDRESS_FAMILY})
elseif(HAVE_SYS_SOCKET_H)
-
  list(APPEND CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
+
  set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
  check_type_size("sa_family_t" SIZEOF_SA_FAMILY_T)
  set(HAVE_SA_FAMILY_T ${HAVE_SIZEOF_SA_FAMILY_T})
endif()
@@ -1798,6 +1664,7 @@ foreach(_curl_test IN ITEMS
    HAVE_IOCTL_FIONBIO
    HAVE_IOCTL_SIOCGIFADDR
    HAVE_SETSOCKOPT_SO_NONBLOCK
+
    HAVE_O_NONBLOCK
    HAVE_GETHOSTBYNAME_R_3
    HAVE_GETHOSTBYNAME_R_5
    HAVE_GETHOSTBYNAME_R_6
@@ -1816,27 +1683,25 @@ endforeach()
cmake_push_check_state()
if(HAVE_FILE_OFFSET_BITS)
  set(_FILE_OFFSET_BITS 64)
-
  list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_FILE_OFFSET_BITS=64")
+
  set(CMAKE_REQUIRED_DEFINITIONS "-D_FILE_OFFSET_BITS=64")
endif()
check_type_size("off_t" SIZEOF_OFF_T)

-
if(NOT WIN32)
-
  # fseeko may not exist with _FILE_OFFSET_BITS=64 but can exist with
-
  # _FILE_OFFSET_BITS unset or 32 (e.g. Android ARMv7 with NDK 26b and API level < 24)
-
  # so we need to test fseeko after testing for _FILE_OFFSET_BITS
-
  check_symbol_exists("fseeko" "${CURL_INCLUDES};stdio.h" HAVE_FSEEKO)
+
# fseeko may not exist with _FILE_OFFSET_BITS=64 but can exist with
+
# _FILE_OFFSET_BITS unset or 32 (e.g. Android ARMv7 with NDK 26b and API level < 24)
+
# so we need to test fseeko after testing for _FILE_OFFSET_BITS
+
check_symbol_exists("fseeko" "${CURL_INCLUDES};stdio.h" HAVE_FSEEKO)

-
  if(HAVE_FSEEKO)
-
    set(HAVE_DECL_FSEEKO 1)
-
  endif()
+
if(HAVE_FSEEKO)
+
  set(HAVE_DECL_FSEEKO 1)
endif()

# Include this header to get the type
cmake_push_check_state()
-
list(APPEND CMAKE_REQUIRED_INCLUDES "${PROJECT_SOURCE_DIR}/include")
-
list(APPEND CMAKE_EXTRA_INCLUDE_FILES "curl/system.h")
+
set(CMAKE_REQUIRED_INCLUDES "${PROJECT_SOURCE_DIR}/include")
+
set(CMAKE_EXTRA_INCLUDE_FILES "curl/system.h")
check_type_size("curl_off_t" SIZEOF_CURL_OFF_T)
-
list(APPEND CMAKE_EXTRA_INCLUDE_FILES "curl/curl.h")
+
set(CMAKE_EXTRA_INCLUDE_FILES "curl/curl.h")
check_type_size("curl_socket_t" SIZEOF_CURL_SOCKET_T)
cmake_pop_check_state()  # pop curl system headers
cmake_pop_check_state()  # pop -D_FILE_OFFSET_BITS=64
@@ -1853,16 +1718,6 @@ if(NOT WIN32 AND NOT CMAKE_CROSSCOMPILING)
    }" HAVE_WRITABLE_ARGV)
endif()

-
if(NOT CMAKE_CROSSCOMPILING)
-
  include(CheckCSourceRuns)
-
  check_c_source_runs("
-
    #include <time.h>
-
    int main(void) {
-
      time_t t = -1;
-
      return t < 0;
-
    }" HAVE_TIME_T_UNSIGNED)
-
endif()
-

curl_internal_test(HAVE_GLIBC_STRERROR_R)
curl_internal_test(HAVE_POSIX_STRERROR_R)

@@ -1904,6 +1759,15 @@ if(NOT HAVE_IN_ADDR_T)
  set(in_addr_t "unsigned long")
endif()

+
# Check for nonblocking
+
set(HAVE_DISABLED_NONBLOCKING 1)
+
if(HAVE_FIONBIO OR
+
   HAVE_IOCTLSOCKET OR
+
   HAVE_IOCTLSOCKET_CASE OR
+
   HAVE_O_NONBLOCK)
+
  unset(HAVE_DISABLED_NONBLOCKING)
+
endif()
+

if(CMAKE_COMPILER_IS_GNUCC AND APPLE)
  include(CheckCCompilerFlag)
  check_c_compiler_flag("-Wno-long-double" HAVE_C_FLAG_Wno_long_double)
@@ -1929,11 +1793,9 @@ include(CMake/OtherTests.cmake)

add_definitions("-DHAVE_CONFIG_H")

+
# For Windows, all compilers used by CMake should support large files
if(WIN32)
-
  # _fseeki64() requires VS2005
-
  if(NOT MSVC OR (MSVC_VERSION GREATER_EQUAL 1400))
-
    set(USE_WIN32_LARGE_FILES ON)
-
  endif()
+
  set(USE_WIN32_LARGE_FILES ON)

  # Use the manifest embedded in the Windows Resource
  set(CMAKE_RC_FLAGS "${CMAKE_RC_FLAGS} -DCURL_EMBED_MANIFEST")
@@ -1951,23 +1813,24 @@ endif()

if(MSVC)
  # Disable default manifest added by CMake
-
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -MANIFEST:NO")
+
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")

-
  if(CMAKE_C_FLAGS MATCHES "[/-]W[0-4]")
-
    string(REGEX REPLACE "[/-]W[0-4]" "-W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+
  add_definitions("-D_CRT_SECURE_NO_DEPRECATE" "-D_CRT_NONSTDC_NO_DEPRECATE")
+
  if(CMAKE_C_FLAGS MATCHES "/W[0-4]")
+
    string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
  else()
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -W4")
+
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
  endif()

-
  # Use multithreaded compilation on VS2008+
+
  # Use multithreaded compilation on VS 2008+
  if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND MSVC_VERSION GREATER_EQUAL 1500)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -MP")
+
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
  endif()
endif()

if(CURL_WERROR)
  if(MSVC)
-
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -WX")
+
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
  else()
    # This assumes clang or gcc style options
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
@@ -1993,7 +1856,7 @@ endif()

# Ugly (but functional) way to include "Makefile.inc" by transforming it
# (= regenerate it).
-
function(curl_transform_makefile_inc _input_file _output_file)
+
function(transform_makefile_inc _input_file _output_file)
  file(READ ${_input_file} _makefile_inc_text)
  string(REPLACE "$(top_srcdir)"   "\${PROJECT_SOURCE_DIR}" _makefile_inc_text ${_makefile_inc_text})
  string(REPLACE "$(top_builddir)" "\${PROJECT_BINARY_DIR}" _makefile_inc_text ${_makefile_inc_text})
@@ -2049,7 +1912,7 @@ endif()

# Helper to populate a list (_items) with a label when conditions
# (the remaining args) are satisfied
-
macro(curl_add_if _label)
+
macro(_add_if _label)
  # Needs to be a macro to allow this indirection
  if(${ARGN})
    set(_items ${_items} "${_label}")
@@ -2069,94 +1932,90 @@ if(NOT CURL_DISABLE_NTLM AND
endif()

# Clear list and try to detect available protocols
-
set(_items "")
-
curl_add_if("HTTP"          NOT CURL_DISABLE_HTTP)
-
curl_add_if("HTTPS"         NOT CURL_DISABLE_HTTP AND _ssl_enabled)
-
curl_add_if("FTP"           NOT CURL_DISABLE_FTP)
-
curl_add_if("FTPS"          NOT CURL_DISABLE_FTP AND _ssl_enabled)
-
curl_add_if("FILE"          NOT CURL_DISABLE_FILE)
-
curl_add_if("TELNET"        NOT CURL_DISABLE_TELNET)
-
curl_add_if("LDAP"          NOT CURL_DISABLE_LDAP)
+
unset(_items)
+
_add_if("HTTP"          NOT CURL_DISABLE_HTTP)
+
_add_if("HTTPS"         NOT CURL_DISABLE_HTTP AND _ssl_enabled)
+
_add_if("FTP"           NOT CURL_DISABLE_FTP)
+
_add_if("FTPS"          NOT CURL_DISABLE_FTP AND _ssl_enabled)
+
_add_if("FILE"          NOT CURL_DISABLE_FILE)
+
_add_if("TELNET"        NOT CURL_DISABLE_TELNET)
+
_add_if("LDAP"          NOT CURL_DISABLE_LDAP)
# CURL_DISABLE_LDAP implies CURL_DISABLE_LDAPS
-
curl_add_if("LDAPS"         NOT CURL_DISABLE_LDAPS AND
-
                            ((USE_OPENLDAP AND _ssl_enabled) OR
-
                            (NOT USE_OPENLDAP AND HAVE_LDAP_SSL)))
-
curl_add_if("DICT"          NOT CURL_DISABLE_DICT)
-
curl_add_if("TFTP"          NOT CURL_DISABLE_TFTP)
-
curl_add_if("GOPHER"        NOT CURL_DISABLE_GOPHER)
-
curl_add_if("GOPHERS"       NOT CURL_DISABLE_GOPHER AND _ssl_enabled)
-
curl_add_if("POP3"          NOT CURL_DISABLE_POP3)
-
curl_add_if("POP3S"         NOT CURL_DISABLE_POP3 AND _ssl_enabled)
-
curl_add_if("IMAP"          NOT CURL_DISABLE_IMAP)
-
curl_add_if("IMAPS"         NOT CURL_DISABLE_IMAP AND _ssl_enabled)
-
curl_add_if("SMB"           NOT CURL_DISABLE_SMB AND
-
                            _use_curl_ntlm_core AND (SIZEOF_CURL_OFF_T GREATER 4))
-
curl_add_if("SMBS"          NOT CURL_DISABLE_SMB AND _ssl_enabled AND
-
                            _use_curl_ntlm_core AND (SIZEOF_CURL_OFF_T GREATER 4))
-
curl_add_if("SMTP"          NOT CURL_DISABLE_SMTP)
-
curl_add_if("SMTPS"         NOT CURL_DISABLE_SMTP AND _ssl_enabled)
-
curl_add_if("SCP"           USE_LIBSSH2 OR USE_LIBSSH OR USE_WOLFSSH)
-
curl_add_if("SFTP"          USE_LIBSSH2 OR USE_LIBSSH OR USE_WOLFSSH)
-
curl_add_if("IPFS"          NOT CURL_DISABLE_IPFS)
-
curl_add_if("IPNS"          NOT CURL_DISABLE_IPFS)
-
curl_add_if("RTSP"          NOT CURL_DISABLE_RTSP)
-
curl_add_if("RTMP"          USE_LIBRTMP)
-
curl_add_if("MQTT"          NOT CURL_DISABLE_MQTT)
-
curl_add_if("WS"            NOT CURL_DISABLE_WEBSOCKETS)
-
curl_add_if("WSS"           NOT CURL_DISABLE_WEBSOCKETS AND _ssl_enabled)
+
_add_if("LDAPS"         NOT CURL_DISABLE_LDAPS AND
+
                        ((USE_OPENLDAP AND _ssl_enabled) OR
+
                        (NOT USE_OPENLDAP AND HAVE_LDAP_SSL)))
+
_add_if("DICT"          NOT CURL_DISABLE_DICT)
+
_add_if("TFTP"          NOT CURL_DISABLE_TFTP)
+
_add_if("GOPHER"        NOT CURL_DISABLE_GOPHER)
+
_add_if("GOPHERS"       NOT CURL_DISABLE_GOPHER AND _ssl_enabled)
+
_add_if("POP3"          NOT CURL_DISABLE_POP3)
+
_add_if("POP3S"         NOT CURL_DISABLE_POP3 AND _ssl_enabled)
+
_add_if("IMAP"          NOT CURL_DISABLE_IMAP)
+
_add_if("IMAPS"         NOT CURL_DISABLE_IMAP AND _ssl_enabled)
+
_add_if("SMB"           NOT CURL_DISABLE_SMB AND
+
                        _use_curl_ntlm_core AND (SIZEOF_CURL_OFF_T GREATER 4))
+
_add_if("SMBS"          NOT CURL_DISABLE_SMB AND _ssl_enabled AND
+
                        _use_curl_ntlm_core AND (SIZEOF_CURL_OFF_T GREATER 4))
+
_add_if("SMTP"          NOT CURL_DISABLE_SMTP)
+
_add_if("SMTPS"         NOT CURL_DISABLE_SMTP AND _ssl_enabled)
+
_add_if("SCP"           USE_LIBSSH2 OR USE_LIBSSH OR USE_WOLFSSH)
+
_add_if("SFTP"          USE_LIBSSH2 OR USE_LIBSSH OR USE_WOLFSSH)
+
_add_if("IPFS"          NOT CURL_DISABLE_IPFS)
+
_add_if("IPNS"          NOT CURL_DISABLE_IPFS)
+
_add_if("RTSP"          NOT CURL_DISABLE_RTSP)
+
_add_if("RTMP"          USE_LIBRTMP)
+
_add_if("MQTT"          NOT CURL_DISABLE_MQTT)
+
_add_if("WS"            NOT CURL_DISABLE_WEBSOCKETS)
+
_add_if("WSS"           NOT CURL_DISABLE_WEBSOCKETS AND _ssl_enabled)
if(_items)
  list(SORT _items)
endif()
-
set(CURL_SUPPORTED_PROTOCOLS_LIST "${_items}")
string(REPLACE ";" " " SUPPORT_PROTOCOLS "${_items}")
string(TOLOWER "${SUPPORT_PROTOCOLS}" _support_protocols_lower)
message(STATUS "Protocols: ${_support_protocols_lower}")

# Clear list and try to detect available features
-
set(_items "")
-
curl_add_if("SSL"           _ssl_enabled)
-
curl_add_if("IPv6"          USE_IPV6)
-
curl_add_if("UnixSockets"   USE_UNIX_SOCKETS)
-
curl_add_if("libz"          HAVE_LIBZ)
-
curl_add_if("brotli"        HAVE_BROTLI)
-
curl_add_if("gsasl"         USE_GSASL)
-
curl_add_if("zstd"          HAVE_ZSTD)
-
curl_add_if("AsynchDNS"     USE_ARES OR USE_THREADS_POSIX OR USE_THREADS_WIN32)
-
curl_add_if("asyn-rr"       USE_ARES AND ENABLE_THREADED_RESOLVER)
-
curl_add_if("IDN"           (HAVE_LIBIDN2 AND HAVE_IDN2_H) OR
-
                            USE_WIN32_IDN OR
-
                            USE_APPLE_IDN)
-
curl_add_if("Largefile"     (SIZEOF_CURL_OFF_T GREATER 4) AND
-
                            ((SIZEOF_OFF_T GREATER 4) OR USE_WIN32_LARGE_FILES))
-
curl_add_if("SSPI"          USE_WINDOWS_SSPI)
-
curl_add_if("GSS-API"       HAVE_GSSAPI)
-
curl_add_if("alt-svc"       NOT CURL_DISABLE_ALTSVC)
-
curl_add_if("HSTS"          NOT CURL_DISABLE_HSTS)
-
curl_add_if("SPNEGO"        NOT CURL_DISABLE_NEGOTIATE_AUTH AND
-
                            (HAVE_GSSAPI OR USE_WINDOWS_SSPI))
-
curl_add_if("Kerberos"      NOT CURL_DISABLE_KERBEROS_AUTH AND
-
                            (HAVE_GSSAPI OR USE_WINDOWS_SSPI))
-
curl_add_if("NTLM"          NOT (CURL_DISABLE_NTLM) AND
-
                            (_use_curl_ntlm_core OR USE_WINDOWS_SSPI))
-
curl_add_if("TLS-SRP"       USE_TLS_SRP)
-
curl_add_if("HTTP2"         USE_NGHTTP2)
-
curl_add_if("HTTP3"         USE_NGTCP2 OR USE_QUICHE OR USE_MSH3 OR USE_OPENSSL_QUIC)
-
curl_add_if("MultiSSL"      CURL_WITH_MULTI_SSL)
-
curl_add_if("HTTPS-proxy"   _ssl_enabled AND (USE_OPENSSL OR USE_GNUTLS
-
                            OR USE_SCHANNEL OR USE_RUSTLS OR USE_BEARSSL OR
-
                            USE_MBEDTLS OR USE_SECTRANSP OR
-
                            (USE_WOLFSSL AND HAVE_WOLFSSL_BIO)))
-
curl_add_if("Unicode"       ENABLE_UNICODE)
-
curl_add_if("threadsafe"    HAVE_ATOMIC OR
-
                            (USE_THREADS_POSIX AND HAVE_PTHREAD_H) OR
-
                            (WIN32 AND HAVE_WIN32_WINNT GREATER_EQUAL 0x0600))
-
curl_add_if("Debug"         ENABLE_DEBUG)
-
curl_add_if("TrackMemory"   ENABLE_CURLDEBUG)
-
curl_add_if("ECH"           _ssl_enabled AND HAVE_ECH)
-
curl_add_if("HTTPSRR"       _ssl_enabled AND USE_HTTPSRR)
-
curl_add_if("PSL"           USE_LIBPSL)
-
curl_add_if("CAcert"        CURL_CA_EMBED_SET)
-
curl_add_if("SSLS-EXPORT"   _ssl_enabled AND USE_SSLS_EXPORT)
+
unset(_items)
+
_add_if("SSL"           _ssl_enabled)
+
_add_if("IPv6"          ENABLE_IPV6)
+
_add_if("UnixSockets"   USE_UNIX_SOCKETS)
+
_add_if("libz"          HAVE_LIBZ)
+
_add_if("brotli"        HAVE_BROTLI)
+
_add_if("gsasl"         USE_GSASL)
+
_add_if("zstd"          HAVE_ZSTD)
+
_add_if("AsynchDNS"     USE_ARES OR USE_THREADS_POSIX OR USE_THREADS_WIN32)
+
_add_if("IDN"           (HAVE_LIBIDN2 AND HAVE_IDN2_H) OR
+
                        USE_WIN32_IDN OR
+
                        USE_APPLE_IDN)
+
_add_if("Largefile"     (SIZEOF_CURL_OFF_T GREATER 4) AND
+
                        ((SIZEOF_OFF_T GREATER 4) OR USE_WIN32_LARGE_FILES))
+
_add_if("SSPI"          USE_WINDOWS_SSPI)
+
_add_if("GSS-API"       HAVE_GSSAPI)
+
_add_if("alt-svc"       NOT CURL_DISABLE_ALTSVC)
+
_add_if("HSTS"          NOT CURL_DISABLE_HSTS)
+
_add_if("SPNEGO"        NOT CURL_DISABLE_NEGOTIATE_AUTH AND
+
                        (HAVE_GSSAPI OR USE_WINDOWS_SSPI))
+
_add_if("Kerberos"      NOT CURL_DISABLE_KERBEROS_AUTH AND
+
                        (HAVE_GSSAPI OR USE_WINDOWS_SSPI))
+
_add_if("NTLM"          NOT (CURL_DISABLE_NTLM) AND
+
                        (_use_curl_ntlm_core OR USE_WINDOWS_SSPI))
+
_add_if("TLS-SRP"       USE_TLS_SRP)
+
_add_if("HTTP2"         USE_NGHTTP2)
+
_add_if("HTTP3"         USE_NGTCP2 OR USE_QUICHE OR USE_MSH3 OR USE_OPENSSL_QUIC)
+
_add_if("MultiSSL"      CURL_WITH_MULTI_SSL)
+
_add_if("HTTPS-proxy"   _ssl_enabled AND (USE_OPENSSL OR USE_GNUTLS
+
                        OR USE_SCHANNEL OR USE_RUSTLS OR USE_BEARSSL OR
+
                        USE_MBEDTLS OR USE_SECTRANSP OR
+
                        (USE_WOLFSSL AND HAVE_WOLFSSL_BIO)))
+
_add_if("Unicode"       ENABLE_UNICODE)
+
_add_if("threadsafe"    HAVE_ATOMIC OR
+
                        (USE_THREADS_POSIX AND HAVE_PTHREAD_H) OR
+
                        (WIN32 AND HAVE_WIN32_WINNT GREATER_EQUAL 0x0600))
+
_add_if("Debug"         ENABLE_DEBUG)
+
_add_if("TrackMemory"   ENABLE_CURLDEBUG)
+
_add_if("ECH"           _ssl_enabled AND HAVE_ECH)
+
_add_if("PSL"           USE_LIBPSL)
+
_add_if("CAcert"        CURL_CA_EMBED_SET)
if(_items)
  if(NOT CMAKE_VERSION VERSION_LESS 3.13)
    list(SORT _items CASE INSENSITIVE)
@@ -2164,21 +2023,20 @@ if(_items)
    list(SORT _items)
  endif()
endif()
-
set(CURL_SUPPORTED_FEATURES_LIST "${_items}")
string(REPLACE ";" " " SUPPORT_FEATURES "${_items}")
message(STATUS "Features: ${SUPPORT_FEATURES}")

# Clear list and collect SSL backends
-
set(_items "")
-
curl_add_if("Schannel"         _ssl_enabled AND USE_SCHANNEL)
-
curl_add_if("${_openssl}"      _ssl_enabled AND USE_OPENSSL AND OPENSSL_VERSION VERSION_LESS 3.0.0)
-
curl_add_if("${_openssl} v3+"  _ssl_enabled AND USE_OPENSSL AND NOT OPENSSL_VERSION VERSION_LESS 3.0.0)
-
curl_add_if("Secure Transport" _ssl_enabled AND USE_SECTRANSP)
-
curl_add_if("mbedTLS"          _ssl_enabled AND USE_MBEDTLS)
-
curl_add_if("BearSSL"          _ssl_enabled AND USE_BEARSSL)
-
curl_add_if("wolfSSL"          _ssl_enabled AND USE_WOLFSSL)
-
curl_add_if("GnuTLS"           _ssl_enabled AND USE_GNUTLS)
-
curl_add_if("rustls"           _ssl_enabled AND USE_RUSTLS)
+
unset(_items)
+
_add_if("Schannel"         _ssl_enabled AND USE_SCHANNEL)
+
_add_if("OpenSSL"          _ssl_enabled AND USE_OPENSSL AND OPENSSL_VERSION VERSION_LESS 3.0.0)
+
_add_if("OpenSSL v3+"      _ssl_enabled AND USE_OPENSSL AND NOT OPENSSL_VERSION VERSION_LESS 3.0.0)
+
_add_if("Secure Transport" _ssl_enabled AND USE_SECTRANSP)
+
_add_if("mbedTLS"          _ssl_enabled AND USE_MBEDTLS)
+
_add_if("BearSSL"          _ssl_enabled AND USE_BEARSSL)
+
_add_if("wolfSSL"          _ssl_enabled AND USE_WOLFSSL)
+
_add_if("GnuTLS"           _ssl_enabled AND USE_GNUTLS)
+
_add_if("rustls"           _ssl_enabled AND USE_RUSTLS)

if(_items)
  if(NOT CMAKE_VERSION VERSION_LESS 3.13)
@@ -2241,7 +2099,7 @@ if(NOT CURL_DISABLE_INSTALL)
  endforeach()

  # Avoid getting unnecessary -L options for known system directories.
-
  set(_sys_libdirs "")
+
  unset(_sys_libdirs)
  foreach(_libdir IN LISTS CMAKE_SYSTEM_PREFIX_PATH)
    if(_libdir MATCHES "/$")
      set(_libdir "${_libdir}lib")
@@ -2266,7 +2124,7 @@ if(NOT CURL_DISABLE_INSTALL)
    endif()
  endforeach()

-
  set(_implicit_libs "")
+
  unset(_implicit_libs)
  if(NOT MINGW AND NOT UNIX)
    set(_implicit_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES})
  endif()
@@ -2288,7 +2146,7 @@ if(NOT CURL_DISABLE_INSTALL)
    endif()
    if(_lib MATCHES "^-")  # '-framework <name>'
      list(APPEND _ldflags "${_lib}")
-
    elseif(_lib MATCHES "/")
+
    elseif(_lib MATCHES ".*/.*")
      # This gets a bit more complex, because we want to specify the
      # directory separately, and only once per directory
      get_filename_component(_libdir ${_lib} DIRECTORY)
@@ -2419,13 +2277,10 @@ if(NOT CURL_DISABLE_INSTALL)
    ${_generated_version_config}")

  # Consumed custom variables:
-
  #   CURLVERSION
  #   LIB_SELECTED
  #   TARGETS_EXPORT_NAME
-
  #   USE_OPENSSL OPENSSL_VERSION_MAJOR
-
  #   HAVE_LIBZ ZLIB_VERSION_MAJOR
-
  #   CURL_SUPPORTED_FEATURES_LIST
-
  #   CURL_SUPPORTED_PROTOCOLS_LIST
+
  #   USE_OPENSSL
+
  #   HAVE_LIBZ
  configure_package_config_file("CMake/curl-config.cmake.in"
    "${_project_config}"
    INSTALL_DESTINATION ${_install_cmake_dir}
@@ -2440,6 +2295,15 @@ if(NOT CURL_DISABLE_INSTALL)
  install(FILES ${_version_config} ${_project_config}
    DESTINATION ${_install_cmake_dir})

+
  # Workaround for MSVS10 to avoid the Dialog Hell
+
  # FIXME: This could be removed with future version of CMake.
+
  if(MSVC_VERSION EQUAL 1600)
+
    set(_curl_sln_filename "${CMAKE_CURRENT_BINARY_DIR}/CURL.sln")
+
    if(EXISTS "${_curl_sln_filename}")
+
      file(APPEND "${_curl_sln_filename}" "\n# This should be regenerated!\n")
+
    endif()
+
  endif()
+

  if(NOT TARGET curl_uninstall)
    configure_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/CMake/cmake_uninstall.cmake.in"
modified external/curl/COPYING
@@ -1,6 +1,6 @@
COPYRIGHT AND PERMISSION NOTICE

-
Copyright (c) 1996 - 2025, Daniel Stenberg, <daniel@haxx.se>, and many
+
Copyright (c) 1996 - 2024, Daniel Stenberg, <daniel@haxx.se>, and many
contributors, see the THANKS file.

All rights reserved.
modified external/curl/Makefile.am
@@ -36,11 +36,9 @@ CMAKE_DIST = \
 CMake/FindBrotli.cmake                         \
 CMake/FindCares.cmake                          \
 CMake/FindGSS.cmake                            \
-
 CMake/FindLDAP.cmake                           \
 CMake/FindLibgsasl.cmake                       \
 CMake/FindLibidn2.cmake                        \
 CMake/FindLibpsl.cmake                         \
-
 CMake/FindLibrtmp.cmake                        \
 CMake/FindLibssh.cmake                         \
 CMake/FindLibssh2.cmake                        \
 CMake/FindLibuv.cmake                          \
@@ -59,14 +57,17 @@ CMAKE_DIST = \
 CMake/Macros.cmake                             \
 CMake/OtherTests.cmake                         \
 CMake/PickyWarnings.cmake                      \
+
 CMake/Platforms/WindowsCache.cmake             \
 CMake/Utilities.cmake                          \
-
 CMake/win32-cache.cmake                        \
 CMakeLists.txt

VC_DIST = projects/README.md                           \
 projects/build-openssl.bat                            \
+
 projects/build-wolfssl.bat                            \
 projects/checksrc.bat                                 \
-
 projects/generate.bat
+
 projects/generate.bat                                 \
+
 projects/wolfssl_options.h                            \
+
 projects/wolfssl_override.props

WINBUILD_DIST = winbuild/README.md \
 winbuild/MakefileBuild.vc winbuild/Makefile.vc winbuild/makedebug.bat
@@ -81,8 +82,14 @@ PLAN9_DIST = plan9/include/mkfile \
 plan9/src/mkfile.inc             \
 plan9/src/mkfile

-
EXTRA_DIST = CHANGES.md COPYING RELEASE-NOTES Dockerfile \
-
 $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) $(PLAN9_DIST)
+
EXTRA_DIST = CHANGES.md COPYING Makefile.dist             \
+
 RELEASE-NOTES $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST)  \
+
 $(PLAN9_DIST) buildconf.bat Dockerfile
+

+
CLEANFILES = $(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) \
+
 $(VC14_10_LIBVCXPROJ) $(VC14_10_SRCVCXPROJ)       \
+
 $(VC14_20_LIBVCXPROJ) $(VC14_20_SRCVCXPROJ)       \
+
 $(VC14_30_LIBVCXPROJ) $(VC14_30_SRCVCXPROJ)

DISTCLEANFILES = buildinfo.txt

@@ -94,9 +101,13 @@ DIST_SUBDIRS = $(SUBDIRS) tests packages include docs
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libcurl.pc

+
# List of files required to generate VC IDE .dsp, .vcproj and .vcxproj files
+
include lib/Makefile.inc
+
include src/Makefile.inc
+

dist-hook:
	rm -rf $(top_builddir)/tests/log
-
	find $(distdir) -name "*.dist" -exec rm {} \;
+
	find $(distdir) -name "*.dist" -a \! -name Makefile.dist -exec rm {} \;
	(distit=`find $(srcdir) -name "*.dist" | grep -v Makefile`; \
	for file in $$distit; do \
	  strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \
@@ -181,6 +192,27 @@ rpm:
	mv $$RPM_TOPDIR/RPMS/i386/$(RPMDIST)-*.rpm . ; \
	mv $$RPM_TOPDIR/SRPMS/$(RPMDIST)-*.src.rpm .

+
#
+
# Build a Solaris pkgadd format file
+
# run 'make pkgadd' once you've done './configure' and 'make' to make a Solaris pkgadd format
+
# file (which ends up back in this directory).
+
# The pkgadd file is in 'pkgtrans' format, so to install on Solaris, do
+
# pkgadd -d ./HAXXcurl-*
+
#
+

+
# gak - libtool requires an absolute directory, hence the pwd below...
+
pkgadd:
+
	umask 022 ; \
+
	$(MAKE) install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \
+
	cat COPYING > $(srcdir)/packages/Solaris/copyright ; \
+
	cd $(srcdir)/packages/Solaris && $(MAKE) package
+

+
#
+
# Build a Cygwin binary tarball installation file
+
# resulting .tar.bz2 file will end up at packages/Win32/cygwin
+
cygwinbin:
+
	$(MAKE) -C packages/Win32/cygwin cygwinbin
+

# We extend the standard install with a custom hook:
if BUILD_DOCS
install-data-hook:
added external/curl/Makefile.dist
@@ -0,0 +1,71 @@
+
#***************************************************************************
+
#                                  _   _ ____  _
+
#  Project                     ___| | | |  _ \| |
+
#                             / __| | | | |_) | |
+
#                            | (__| |_| |  _ <| |___
+
#                             \___|\___/|_| \_\_____|
+
#
+
# Copyright (C) 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.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.
+
#
+
# SPDX-License-Identifier: curl
+
#
+
###########################################################################
+

+
all:
+
	./configure
+
	make
+

+
ssl:
+
	./configure --with-openssl
+
	make
+

+
vc:
+
	cd winbuild
+
	nmake /f Makefile.vc MACHINE=x86
+

+
vc-x64:
+
	cd winbuild
+
	nmake /f Makefile.vc MACHINE=x64
+

+
djgpp%:
+
	$(MAKE) -C lib -f Makefile.mk CFG=$@ CROSSPREFIX=i586-pc-msdosdjgpp-
+
	$(MAKE) -C src -f Makefile.mk CFG=$@ CROSSPREFIX=i586-pc-msdosdjgpp-
+

+
cygwin:
+
	./configure
+
	make
+

+
cygwin-ssl:
+
	./configure --with-openssl
+
	make
+

+
amiga%:
+
	$(MAKE) -C lib -f Makefile.mk CFG=$@ CROSSPREFIX=m68k-amigaos-
+
	$(MAKE) -C src -f Makefile.mk CFG=$@ CROSSPREFIX=m68k-amigaos-
+

+
unix: all
+

+
unix-ssl: ssl
+

+
linux: all
+

+
linux-ssl: ssl
+

+
ca-bundle: scripts/mk-ca-bundle.pl
+
	@echo "generate a fresh ca-bundle.crt"
+
	@perl $< -b -l -u lib/ca-bundle.crt
+

+
ca-firefox: scripts/firefox-db2pem.sh
+
	@echo "generate a fresh ca-bundle.crt"
+
	./scripts/firefox-db2pem.sh lib/ca-bundle.crt
modified external/curl/Makefile.in
@@ -38,6 +38,61 @@
#
###########################################################################

+
#***************************************************************************
+
#                                  _   _ ____  _
+
#  Project                     ___| | | |  _ \| |
+
#                             / __| | | | |_) | |
+
#                            | (__| |_| |  _ <| |___
+
#                             \___|\___/|_| \_\_____|
+
#
+
# Copyright (C) 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.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.
+
#
+
# SPDX-License-Identifier: curl
+
#
+
###########################################################################
+

+
#***************************************************************************
+
#                                  _   _ ____  _
+
#  Project                     ___| | | |  _ \| |
+
#                             / __| | | | |_) | |
+
#                            | (__| |_| |  _ <| |___
+
#                             \___|\___/|_| \_\_____|
+
#
+
# Copyright (C) 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.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.
+
#
+
# SPDX-License-Identifier: curl
+
#
+
###########################################################################
+
# ./src/Makefile.inc
+
# Using the backslash as line continuation character might be problematic with
+
# some make flavours. If we ever want to change this in a portable manner then
+
# we should consider this idea :
+
# CSRC1 = file1.c file2.c file3.c
+
# CSRC2 = file4.c file5.c file6.c
+
# CSOURCES = $(CSRC1) $(CSRC2)
+


VPATH = @srcdir@
am__is_gnu_make = { \
@@ -233,7 +288,8 @@ am__define_uniq_tagged_files = \
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  done | $(am__uniquify_input)`
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/curl-config.in \
-
	$(srcdir)/libcurl.pc.in COPYING README compile config.guess \
+
	$(srcdir)/lib/Makefile.inc $(srcdir)/libcurl.pc.in \
+
	$(srcdir)/src/Makefile.inc COPYING README compile config.guess \
	config.sub depcomp install-sh ltmain.sh missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
@@ -282,6 +338,7 @@ distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -306,10 +363,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -328,14 +406,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -372,6 +458,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -379,10 +468,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -454,11 +579,9 @@ CMAKE_DIST = \
 CMake/FindBrotli.cmake                         \
 CMake/FindCares.cmake                          \
 CMake/FindGSS.cmake                            \
-
 CMake/FindLDAP.cmake                           \
 CMake/FindLibgsasl.cmake                       \
 CMake/FindLibidn2.cmake                        \
 CMake/FindLibpsl.cmake                         \
-
 CMake/FindLibrtmp.cmake                        \
 CMake/FindLibssh.cmake                         \
 CMake/FindLibssh2.cmake                        \
 CMake/FindLibuv.cmake                          \
@@ -477,14 +600,17 @@ CMAKE_DIST = \
 CMake/Macros.cmake                             \
 CMake/OtherTests.cmake                         \
 CMake/PickyWarnings.cmake                      \
+
 CMake/Platforms/WindowsCache.cmake             \
 CMake/Utilities.cmake                          \
-
 CMake/win32-cache.cmake                        \
 CMakeLists.txt

VC_DIST = projects/README.md                           \
 projects/build-openssl.bat                            \
+
 projects/build-wolfssl.bat                            \
 projects/checksrc.bat                                 \
-
 projects/generate.bat
+
 projects/generate.bat                                 \
+
 projects/wolfssl_options.h                            \
+
 projects/wolfssl_override.props

WINBUILD_DIST = winbuild/README.md \
 winbuild/MakefileBuild.vc winbuild/Makefile.vc winbuild/makedebug.bat
@@ -499,8 +625,14 @@ PLAN9_DIST = plan9/include/mkfile \
 plan9/src/mkfile.inc             \
 plan9/src/mkfile

-
EXTRA_DIST = CHANGES.md COPYING RELEASE-NOTES Dockerfile \
-
 $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) $(PLAN9_DIST)
+
EXTRA_DIST = CHANGES.md COPYING Makefile.dist             \
+
 RELEASE-NOTES $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST)  \
+
 $(PLAN9_DIST) buildconf.bat Dockerfile
+

+
CLEANFILES = $(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) \
+
 $(VC14_10_LIBVCXPROJ) $(VC14_10_SRCVCXPROJ)       \
+
 $(VC14_20_LIBVCXPROJ) $(VC14_20_SRCVCXPROJ)       \
+
 $(VC14_30_LIBVCXPROJ) $(VC14_30_SRCVCXPROJ)

DISTCLEANFILES = buildinfo.txt
bin_SCRIPTS = curl-config
@@ -508,12 +640,498 @@ SUBDIRS = lib docs src scripts
DIST_SUBDIRS = $(SUBDIRS) tests packages include docs
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libcurl.pc
+
LIB_VAUTH_CFILES = \
+
  vauth/cleartext.c     \
+
  vauth/cram.c          \
+
  vauth/digest.c        \
+
  vauth/digest_sspi.c   \
+
  vauth/gsasl.c         \
+
  vauth/krb5_gssapi.c   \
+
  vauth/krb5_sspi.c     \
+
  vauth/ntlm.c          \
+
  vauth/ntlm_sspi.c     \
+
  vauth/oauth2.c        \
+
  vauth/spnego_gssapi.c \
+
  vauth/spnego_sspi.c   \
+
  vauth/vauth.c
+

+
LIB_VAUTH_HFILES = \
+
  vauth/digest.h        \
+
  vauth/ntlm.h          \
+
  vauth/vauth.h
+

+
LIB_VTLS_CFILES = \
+
  vtls/bearssl.c            \
+
  vtls/cipher_suite.c       \
+
  vtls/gtls.c               \
+
  vtls/hostcheck.c          \
+
  vtls/keylog.c             \
+
  vtls/mbedtls.c            \
+
  vtls/mbedtls_threadlock.c \
+
  vtls/openssl.c            \
+
  vtls/rustls.c             \
+
  vtls/schannel.c           \
+
  vtls/schannel_verify.c    \
+
  vtls/sectransp.c          \
+
  vtls/vtls.c               \
+
  vtls/wolfssl.c            \
+
  vtls/x509asn1.c
+

+
LIB_VTLS_HFILES = \
+
  vtls/bearssl.h            \
+
  vtls/cipher_suite.h       \
+
  vtls/gtls.h               \
+
  vtls/hostcheck.h          \
+
  vtls/keylog.h             \
+
  vtls/mbedtls.h            \
+
  vtls/mbedtls_threadlock.h \
+
  vtls/openssl.h            \
+
  vtls/rustls.h             \
+
  vtls/schannel.h           \
+
  vtls/schannel_int.h       \
+
  vtls/sectransp.h          \
+
  vtls/vtls.h               \
+
  vtls/vtls_int.h           \
+
  vtls/wolfssl.h            \
+
  vtls/x509asn1.h
+

+
LIB_VQUIC_CFILES = \
+
  vquic/curl_msh3.c   \
+
  vquic/curl_ngtcp2.c   \
+
  vquic/curl_osslq.c   \
+
  vquic/curl_quiche.c   \
+
  vquic/vquic.c \
+
  vquic/vquic-tls.c
+

+
LIB_VQUIC_HFILES = \
+
  vquic/curl_msh3.h   \
+
  vquic/curl_ngtcp2.h   \
+
  vquic/curl_osslq.h   \
+
  vquic/curl_quiche.h   \
+
  vquic/vquic.h    \
+
  vquic/vquic_int.h \
+
  vquic/vquic-tls.h
+

+
LIB_VSSH_CFILES = \
+
  vssh/libssh.c    \
+
  vssh/libssh2.c   \
+
  vssh/curl_path.c \
+
  vssh/wolfssh.c
+

+
LIB_VSSH_HFILES = \
+
  vssh/curl_path.h   \
+
  vssh/ssh.h
+

+
LIB_CFILES = \
+
  altsvc.c           \
+
  amigaos.c          \
+
  asyn-ares.c        \
+
  asyn-thread.c      \
+
  base64.c           \
+
  bufq.c             \
+
  bufref.c           \
+
  c-hyper.c          \
+
  cf-h1-proxy.c      \
+
  cf-h2-proxy.c      \
+
  cf-haproxy.c       \
+
  cf-https-connect.c \
+
  cf-socket.c        \
+
  cfilters.c         \
+
  conncache.c        \
+
  connect.c          \
+
  content_encoding.c \
+
  cookie.c           \
+
  curl_addrinfo.c    \
+
  curl_des.c         \
+
  curl_endian.c      \
+
  curl_fnmatch.c     \
+
  curl_get_line.c    \
+
  curl_gethostname.c \
+
  curl_gssapi.c      \
+
  curl_memrchr.c     \
+
  curl_multibyte.c   \
+
  curl_ntlm_core.c   \
+
  curl_range.c       \
+
  curl_rtmp.c        \
+
  curl_sasl.c        \
+
  curl_sha512_256.c  \
+
  curl_sspi.c        \
+
  curl_threads.c     \
+
  curl_trc.c         \
+
  cw-out.c           \
+
  dict.c             \
+
  dllmain.c          \
+
  doh.c              \
+
  dynbuf.c           \
+
  dynhds.c           \
+
  easy.c             \
+
  easygetopt.c       \
+
  easyoptions.c      \
+
  escape.c           \
+
  file.c             \
+
  fileinfo.c         \
+
  fopen.c            \
+
  formdata.c         \
+
  ftp.c              \
+
  ftplistparser.c    \
+
  getenv.c           \
+
  getinfo.c          \
+
  gopher.c           \
+
  hash.c             \
+
  headers.c          \
+
  hmac.c             \
+
  hostasyn.c         \
+
  hostip.c           \
+
  hostip4.c          \
+
  hostip6.c          \
+
  hostsyn.c          \
+
  hsts.c             \
+
  http.c             \
+
  http1.c            \
+
  http2.c            \
+
  http_aws_sigv4.c   \
+
  http_chunks.c      \
+
  http_digest.c      \
+
  http_negotiate.c   \
+
  http_ntlm.c        \
+
  http_proxy.c       \
+
  idn.c              \
+
  if2ip.c            \
+
  imap.c             \
+
  inet_ntop.c        \
+
  inet_pton.c        \
+
  krb5.c             \
+
  ldap.c             \
+
  llist.c            \
+
  macos.c            \
+
  md4.c              \
+
  md5.c              \
+
  memdebug.c         \
+
  mime.c             \
+
  mprintf.c          \
+
  mqtt.c             \
+
  multi.c            \
+
  netrc.c            \
+
  nonblock.c         \
+
  noproxy.c          \
+
  openldap.c         \
+
  parsedate.c        \
+
  pingpong.c         \
+
  pop3.c             \
+
  progress.c         \
+
  psl.c              \
+
  rand.c             \
+
  rename.c           \
+
  request.c          \
+
  rtsp.c             \
+
  select.c           \
+
  sendf.c            \
+
  setopt.c           \
+
  sha256.c           \
+
  share.c            \
+
  slist.c            \
+
  smb.c              \
+
  smtp.c             \
+
  socketpair.c       \
+
  socks.c            \
+
  socks_gssapi.c     \
+
  socks_sspi.c       \
+
  speedcheck.c       \
+
  splay.c            \
+
  strcase.c          \
+
  strdup.c           \
+
  strerror.c         \
+
  strtok.c           \
+
  strtoofft.c        \
+
  system_win32.c     \
+
  telnet.c           \
+
  tftp.c             \
+
  timediff.c         \
+
  timeval.c          \
+
  transfer.c         \
+
  url.c              \
+
  urlapi.c           \
+
  version.c          \
+
  version_win32.c    \
+
  warnless.c         \
+
  ws.c
+

+
LIB_HFILES = \
+
  altsvc.h           \
+
  amigaos.h          \
+
  arpa_telnet.h      \
+
  asyn.h             \
+
  bufq.h             \
+
  bufref.h           \
+
  c-hyper.h          \
+
  cf-h1-proxy.h      \
+
  cf-h2-proxy.h      \
+
  cf-haproxy.h       \
+
  cf-https-connect.h \
+
  cf-socket.h        \
+
  cfilters.h         \
+
  conncache.h        \
+
  connect.h          \
+
  content_encoding.h \
+
  cookie.h           \
+
  curl_addrinfo.h    \
+
  curl_base64.h      \
+
  curl_ctype.h       \
+
  curl_des.h         \
+
  curl_endian.h      \
+
  curl_fnmatch.h     \
+
  curl_get_line.h    \
+
  curl_gethostname.h \
+
  curl_gssapi.h      \
+
  curl_hmac.h        \
+
  curl_krb5.h        \
+
  curl_ldap.h        \
+
  curl_md4.h         \
+
  curl_md5.h         \
+
  curl_memory.h      \
+
  curl_memrchr.h     \
+
  curl_multibyte.h   \
+
  curl_ntlm_core.h   \
+
  curl_printf.h      \
+
  curl_range.h       \
+
  curl_rtmp.h        \
+
  curl_sasl.h        \
+
  curl_setup.h       \
+
  curl_setup_once.h  \
+
  curl_sha256.h      \
+
  curl_sha512_256.h  \
+
  curl_sspi.h        \
+
  curl_threads.h     \
+
  curl_trc.h         \
+
  curlx.h            \
+
  cw-out.h           \
+
  dict.h             \
+
  doh.h              \
+
  dynbuf.h           \
+
  dynhds.h           \
+
  easy_lock.h        \
+
  easyif.h           \
+
  easyoptions.h      \
+
  escape.h           \
+
  file.h             \
+
  fileinfo.h         \
+
  fopen.h            \
+
  formdata.h         \
+
  ftp.h              \
+
  ftplistparser.h    \
+
  functypes.h        \
+
  getinfo.h          \
+
  gopher.h           \
+
  hash.h             \
+
  headers.h          \
+
  hostip.h           \
+
  hsts.h             \
+
  http.h             \
+
  http1.h            \
+
  http2.h            \
+
  http_aws_sigv4.h   \
+
  http_chunks.h      \
+
  http_digest.h      \
+
  http_negotiate.h   \
+
  http_ntlm.h        \
+
  http_proxy.h       \
+
  idn.h              \
+
  if2ip.h            \
+
  imap.h             \
+
  inet_ntop.h        \
+
  inet_pton.h        \
+
  llist.h            \
+
  macos.h            \
+
  memdebug.h         \
+
  mime.h             \
+
  mqtt.h             \
+
  multihandle.h      \
+
  multiif.h          \
+
  netrc.h            \
+
  nonblock.h         \
+
  noproxy.h          \
+
  parsedate.h        \
+
  pingpong.h         \
+
  pop3.h             \
+
  progress.h         \
+
  psl.h              \
+
  rand.h             \
+
  rename.h           \
+
  request.h          \
+
  rtsp.h             \
+
  select.h           \
+
  sendf.h            \
+
  setopt.h           \
+
  setup-vms.h        \
+
  share.h            \
+
  sigpipe.h          \
+
  slist.h            \
+
  smb.h              \
+
  smtp.h             \
+
  sockaddr.h         \
+
  socketpair.h       \
+
  socks.h            \
+
  speedcheck.h       \
+
  splay.h            \
+
  strcase.h          \
+
  strdup.h           \
+
  strerror.h         \
+
  strtok.h           \
+
  strtoofft.h        \
+
  system_win32.h     \
+
  telnet.h           \
+
  tftp.h             \
+
  timediff.h         \
+
  timeval.h          \
+
  transfer.h         \
+
  url.h              \
+
  urlapi-int.h       \
+
  urldata.h          \
+
  version_win32.h    \
+
  warnless.h         \
+
  ws.h
+

+
LIB_RCFILES = libcurl.rc
+
CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES) \
+
  $(LIB_VQUIC_CFILES) $(LIB_VSSH_CFILES)
+

+
HHEADERS = $(LIB_HFILES) $(LIB_VAUTH_HFILES) $(LIB_VTLS_HFILES) \
+
  $(LIB_VQUIC_HFILES) $(LIB_VSSH_HFILES)
+

+

+
# libcurl sources to include in curltool lib we use for test binaries
+
CURLTOOL_LIBCURL_CFILES = \
+
  ../lib/base64.c \
+
  ../lib/dynbuf.c
+

+

+
# libcurl has sources that provide functions named curlx_* that are not part of
+
# the official API, but we reuse the code here to avoid duplication.
+
CURLX_CFILES = \
+
  ../lib/base64.c \
+
  ../lib/curl_multibyte.c \
+
  ../lib/dynbuf.c \
+
  ../lib/nonblock.c \
+
  ../lib/strtoofft.c \
+
  ../lib/timediff.c \
+
  ../lib/version_win32.c \
+
  ../lib/warnless.c
+

+
CURLX_HFILES = \
+
  ../lib/curl_ctype.h \
+
  ../lib/curl_multibyte.h \
+
  ../lib/curl_setup.h \
+
  ../lib/dynbuf.h \
+
  ../lib/nonblock.h \
+
  ../lib/strtoofft.h \
+
  ../lib/timediff.h \
+
  ../lib/version_win32.h \
+
  ../lib/warnless.h
+

+
CURL_CFILES = \
+
  slist_wc.c \
+
  terminal.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_soc.c \
+
  tool_cb_wrt.c \
+
  tool_cfgable.c \
+
  tool_dirhie.c \
+
  tool_doswin.c \
+
  tool_easysrc.c \
+
  tool_filetime.c \
+
  tool_findfile.c \
+
  tool_formparse.c \
+
  tool_getparam.c \
+
  tool_getpass.c \
+
  tool_help.c \
+
  tool_helpers.c \
+
  tool_hugehelp.c \
+
  tool_ipfs.c \
+
  tool_libinfo.c \
+
  tool_listhelp.c \
+
  tool_main.c \
+
  tool_msgs.c \
+
  tool_operate.c \
+
  tool_operhlp.c \
+
  tool_paramhlp.c \
+
  tool_parsecfg.c \
+
  tool_progress.c \
+
  tool_setopt.c \
+
  tool_sleep.c \
+
  tool_stderr.c \
+
  tool_strdup.c \
+
  tool_urlglob.c \
+
  tool_util.c \
+
  tool_vms.c \
+
  tool_writeout.c \
+
  tool_writeout_json.c \
+
  tool_xattr.c \
+
  var.c
+

+
CURL_HFILES = \
+
  slist_wc.h \
+
  terminal.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_soc.h \
+
  tool_cb_wrt.h \
+
  tool_cfgable.h \
+
  tool_dirhie.h \
+
  tool_doswin.h \
+
  tool_easysrc.h \
+
  tool_filetime.h \
+
  tool_findfile.h \
+
  tool_formparse.h \
+
  tool_getparam.h \
+
  tool_getpass.h \
+
  tool_help.h \
+
  tool_helpers.h \
+
  tool_hugehelp.h \
+
  tool_ipfs.h \
+
  tool_libinfo.h \
+
  tool_main.h \
+
  tool_msgs.h \
+
  tool_operate.h \
+
  tool_operhlp.h \
+
  tool_paramhlp.h \
+
  tool_parsecfg.h \
+
  tool_progress.h \
+
  tool_sdecls.h \
+
  tool_setopt.h \
+
  tool_setup.h \
+
  tool_sleep.h \
+
  tool_stderr.h \
+
  tool_strdup.h \
+
  tool_urlglob.h \
+
  tool_util.h \
+
  tool_version.h \
+
  tool_vms.h \
+
  tool_writeout.h \
+
  tool_writeout_json.h \
+
  tool_xattr.h \
+
  var.h
+

+
CURL_RCFILES = curl.rc
+

+
# curl_SOURCES is special and gets assigned in src/Makefile.am
+
CURL_FILES = $(CURL_CFILES) $(CURLX_CFILES) $(CURL_HFILES)
all: all-recursive

.SUFFIXES:
am--refresh: Makefile
	@:
-
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/lib/Makefile.inc $(srcdir)/src/Makefile.inc $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
@@ -535,6 +1153,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
	esac;
+
$(srcdir)/lib/Makefile.inc $(srcdir)/src/Makefile.inc $(am__empty):

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	$(SHELL) ./config.status --recheck
@@ -949,6 +1568,7 @@ install-strip:
mostlyclean-generic:

clean-generic:
+
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -1055,9 +1675,11 @@ uninstall-am: uninstall-binSCRIPTS uninstall-pkgconfigDATA
.PRECIOUS: Makefile


+
# List of files required to generate VC IDE .dsp, .vcproj and .vcxproj files
+

dist-hook:
	rm -rf $(top_builddir)/tests/log
-
	find $(distdir) -name "*.dist" -exec rm {} \;
+
	find $(distdir) -name "*.dist" -a \! -name Makefile.dist -exec rm {} \;
	(distit=`find $(srcdir) -name "*.dist" | grep -v Makefile`; \
	for file in $$distit; do \
	  strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \
@@ -1137,6 +1759,27 @@ rpm:
	mv $$RPM_TOPDIR/RPMS/i386/$(RPMDIST)-*.rpm . ; \
	mv $$RPM_TOPDIR/SRPMS/$(RPMDIST)-*.src.rpm .

+
#
+
# Build a Solaris pkgadd format file
+
# run 'make pkgadd' once you've done './configure' and 'make' to make a Solaris pkgadd format
+
# file (which ends up back in this directory).
+
# The pkgadd file is in 'pkgtrans' format, so to install on Solaris, do
+
# pkgadd -d ./HAXXcurl-*
+
#
+

+
# gak - libtool requires an absolute directory, hence the pwd below...
+
pkgadd:
+
	umask 022 ; \
+
	$(MAKE) install DESTDIR=`/bin/pwd`/packages/Solaris/root ; \
+
	cat COPYING > $(srcdir)/packages/Solaris/copyright ; \
+
	cd $(srcdir)/packages/Solaris && $(MAKE) package
+

+
#
+
# Build a Cygwin binary tarball installation file
+
# resulting .tar.bz2 file will end up at packages/Win32/cygwin
+
cygwinbin:
+
	$(MAKE) -C packages/Win32/cygwin cygwinbin
+

# We extend the standard install with a custom hook:
@BUILD_DOCS_TRUE@install-data-hook:
@BUILD_DOCS_TRUE@	(cd include && $(MAKE) install)
modified external/curl/RELEASE-NOTES
@@ -1,268 +1,95 @@
-
curl and libcurl 8.12.0
+
curl and libcurl 8.11.1

-
 Public curl releases:         264
-
 Command line options:         267
+
 Public curl releases:         263
+
 Command line options:         266
 curl_easy_setopt() options:   306
-
 Public functions in libcurl:  96
-
 Contributors:                 3332
+
 Public functions in libcurl:  94
+
 Contributors:                 3298

This release includes the following changes:

-
 o curl: add byte range support to --variable reading from file [56]
-
 o curl: make --etag-save acknowledge --create-dirs [31]
-
 o getinfo: fix CURLINFO_QUEUE_TIME_T and add 'time_queue' var [55]
-
 o getinfo: provide info which auth was used for HTTP and proxy [40]
-
 o hyper: drop support [57]
-
 o openssl: add support to use keys and certificates from PKCS#11 provider [77]
-
 o QUIC: 0RTT for gnutls via CURLSSLOPT_EARLYDATA [61]
-
 o vtls: feature ssls-export for SSL session im-/export [141]

This release includes the following bugfixes:

-
 o altsvc: avoid integer overflow in expire calculation [16]
-
 o altsvc: return error on dot-only name [178]
-
 o android: add CI jobs, buildinfo, cmake docs, disable `CURL_USE_PKGCONFIG` by default [185]
-
 o asyn-ares: acknowledge CURLOPT_DNS_SERVERS set to NULL [190]
-
 o asyn-ares: fix memory leak [233]
-
 o asyn-ares: initial HTTPS resolve support [166]
-
 o asyn-thread: use c-ares to resolve HTTPS RR [205]
-
 o async-thread: avoid closing eventfd twice [9]
-
 o autotools: add support for mingw UWP builds [192]
-
 o autotools: silence gcc warnings in libtool code [96]
-
 o binmode: convert to macro and use it from tests [44]
-
 o build: delete `-Wsign-conversion` related FIXMEs [137]
-
 o build: drop `-Winline` picky warning [53]
-
 o build: drop `tool_hugehelp.c.cvs`, tidy up macros, drop `buildconf.bat` [200]
-
 o build: drop macro used to enable `-Wsign-conversion` warnings in CI [224]
-
 o build: drop unused feature macros, update exception list [51]
-
 o build: fix `-Wtrampolines` picky warning for gcc 4.x versions [156]
-
 o build: fix compiling with GCC 4.x versions [214]
-
 o build: fix the tidy targets for autotools [52]
-
 o build: fix unsigned `time_t` detection for cmake, MS-DOS, AmigaOS [104]
-
 o build: replace configure check with PP condition (Android <21) [97]
-
 o build: stop detecting `sched_yield()` on Windows [176]
-
 o c-ares: fix/tidy-up macro initializations, avoid a deprecated function [209]
-
 o cd2nroff: do not insist on quoted <> within backticks [222]
-
 o cd2nroff: support "none" as a TLS backend [29]
-
 o cf-https-connect: look into httpsrr alpns when available [152]
-
 o cf-socket: error if address can't be copied [72]
-
 o cfilters: kill connection filter events attach+detach [217]
-
 o checksrc.bat: remove explicit SNPRINTF bypass [174]
-
 o checksrc: ban use of sscanf() [7]
-
 o checksrc: check for return with parens around a value/name [130]
-
 o checksrc: exclude generated bundle files to avoid race condition [235]
-
 o checksrc: fix the return() checker [35]
-
 o checksrc: introduce 'banfunc' to ban specific functions [117]
-
 o cmake/Find: add `iphlpapi` for c-ares, omit syslibs if dep not found [203]
-
 o cmake/FindLDAP: avoid empty 'Requires' item when omitting `pkg-config` module [90]
-
 o cmake/FindLDAP: avoid framework locations for libs too (Apple) [122]
-
 o cmake/FindLibpsl: protect against `pkg-config` "half-detection" [89]
-
 o cmake/FindLibssh: sync header comment with other modules
-
 o cmake/FindMbedTLS: drop lib duplicates early [17]
-
 o cmake: add `librtmp` Find module [86]
-
 o cmake: add LDAP Find module [46]
-
 o cmake: add native `pkg-config` detection for remaining Find modules [37]
-
 o cmake: allow `CURL_LTO` regardless of `CURL_BUILD_TYPE`, enable in CI [88]
-
 o cmake: clang-cl improvements [42]
-
 o cmake: delete accidental debug message
-
 o cmake: deprecate winbuild, add migration guide from legacy build methods [157]
-
 o cmake: detect mingw-w64 version, pre-fill `HAVE_STRTOK_R` [179]
-
 o cmake: do not store `MINGW64_VERSION` in cache [175]
-
 o cmake: drop `CURL_USE_PKGCONFIG` from `curl-config.cmake.in` [208]
-
 o cmake: drop `fseeko()` pre-fill and check for Windows [201]
-
 o cmake: drop duplicate Windows cache value [81]
-
 o cmake: drop redundant FOUND checks (libgsasl, libssh, libuv) [49]
-
 o cmake: drop redundant opening/closing `.*` from `MATCH` expressions [64]
-
 o cmake: drop unused `HAVE_SYS_XATTR_H` detection [79]
-
 o cmake: drop VS2010 "Dialog Hell" workaround added in 2013 [136]
-
 o cmake: extend zlib's `AUTO` option to brotli, zstd and enable if found [36]
-
 o cmake: fix `net/in.h` detection for MS-DOS [103]
-
 o cmake: improve `curl_dumpvars()` and move to `Utilities.cmake` [50]
-
 o cmake: make libpsl required by default [45]
-
 o cmake: make system libraries `dl`, `m`, `pthread` customizable [123]
-
 o cmake: move `pkg-config` names to Find modules [87]
-
 o cmake: move GSS init before feature detections [93]
-
 o cmake: move mingw UWP workaround from GHA to `CMakeLists.txt` [194]
-
 o cmake: namespace functions and macros [41]
-
 o cmake: optimize out 4 picky warning option detections with gcc [78]
-
 o cmake: pick a better IPv6 feature flag when assembling the feature list [132]
-
 o cmake: pre-fill `HAVE_STDATOMIC_H`, `HAVE_ATOMIC` for mingw-w64 [180]
-
 o cmake: pre-fill `HAVE_STDINT_H` on Windows [149]
-
 o cmake: prefer dash-style MSVC options [216]
-
 o cmake: publish/check supported protocols/features via `CURLConfig.cmake` [100]
-
 o cmake: replace `unset(VAR)` with `set(VAR "")` for init [43]
-
 o cmake: sync OpenSSL QUIC fork detection with autotools [102]
-
 o cmake: use `CMAKE_REQUIRED_LINK_DIRECTORIES` [48]
-
 o cmake: use `STREQUAL` to detect Linux [68]
-
 o cmake: warn for OpenSSL versions missing TLS 1.3 support [221]
-
 o cmdline-opts/version.md: describe multissl, mention SSLS-EXPORT [170]
-
 o completion.pl: add completion for paths after @ for fish [82]
-
 o config-mac: drop `MACOS_SSL_SUPPORT` macro [63]
-
 o config: drop unused code and variables [135]
-
 o configure: do not inline 'dnl' comments
-
 o configure: drop unused detections and macros [105]
-
 o configure: streamline Windows large file feature check [138]
-
 o configure: UWP and Android follow-up fixes [184]
-
 o conncache: count shutdowns against host and max limits [154]
-
 o conncache: result_cb comment removed from function docs [1]
-
 o content_encoding: drop support for zlib before 1.2.0.4 [211]
-
 o content_encoding: namespace GZIP flag constants [147]
-
 o content_encoding: put the decomp buffers into the writer structs [210]
-
 o content_encoding: support use of custom libzstd memory functions [186]
-
 o cookie: cap expire times to 400 days [111]
-
 o cookie: fix crash in netscape cookie parsing [84]
-
 o cookie: parse only the exact expire date [3]
-
 o curl-functions.m4: fix indentation in `CURL_SIZEOF()` [131]
-
 o curl: return error if etag options are used with multiple URLs [5]
-
 o curl_multi_fdset: include the shutdown connections in the set [168]
-
 o curl_multi_waitfds.md: tidy up the example [162]
-
 o curl_multibyte: support Windows paths longer than MAX_PATH [76]
-
 o curl_setup: fix missing `ADDRESS_FAMILY` type in rare build cases [144]
-
 o curl_sha512_256: rename symbols to the curl namespace [124]
-
 o curl_url_set.md: adjust the added-in to 7.62.0 [94]
-
 o curl_ws_recv.md: fix typo
-
 o CURLOPT_CONNECT_ONLY.md: an easy handle with this option set cannot be reused [164]
-
 o CURLOPT_PROXY.md: clarify the crendential support in proxy URLs [66]
-
 o CURLOPT_RESOLVE.md: fix wording [30]
-
 o CURLOPT_SEEKFUNCTION.md: used for FTP, HTTP and SFTP (only) [109]
-
 o docs/BUGS.md: remove leading space from a link
-
 o docs/cmdline-opts/_ENVIRONMENT.md: minor language fix [119]
-
 o docs/cmdline-opts/location.md: fix typos for location flag [226]
-
 o docs/HTTP-COOKIES.md: link to more information [125]
-
 o docs/HTTPSRR.md: initial HTTPS RR documentation [204]
-
 o docs/libcurl/opts: clarify the return values [114]
-
 o docs/libcurl: return value overhall [120]
-
 o docs/TLS-SESSIONS: fix typo, the->they [189]
-
 o docs: document the behavior of -- in the curl command line [198]
-
 o docs: use lowercase curl and libcurl [113]
-
 o doh: cleanups and extended HTTPS RR code [161]
-
 o doh: send HTTPS RR requests for all HTTP(S) transfers [160]
-
 o easy: allow connect-only handle reuse with easy_perform [232]
-
 o easy: make curl_easy_perform() return error if connection still there [163]
-
 o easy_lock: use Sleep(1) for thread yield on old Windows [191]
-
 o ECH: update APIs to those agreed with OpenSSL maintainers [101]
-
 o examples/block-ip: drop redundant `memory.h` include
-
 o examples/block-ip: show how to block IP addresses [74]
-
 o examples/complicated: fix warnings, bump deprecated callback, tidy up [59]
-
 o examples/synctime.c: remove references to dead URLs and functionality [62]
-
 o examples: make them compile with compatibility functions disabled (Windows) [58]
-
 o examples: use return according to code style
-
 o file: drop `OPEN_NEEDS_ARG3` option [91]
-
 o file: fix Android compiler warning [85]
-
 o gitignore: add generated unity sources for lib and src
-
 o GnuTLS: fix 'time_appconnect' for early data [127]
-
 o hash: add asserts in hash_element_dtor() [126]
-
 o HTTP/2: strip TE request header [140]
-
 o http2: fix data_pending check [241]
-
 o http2: fix value stored to 'result' is never read [71]
-
 o http: fix build with `CURL_DISABLE_COOKIES` [95]
-
 o http: ignore invalid Retry-After times [107]
-
 o http_aws_sigv4: Fix invalid compare function handling zero-length pairs [24]
-
 o https-connect: start next immediately on failure [223]
-
 o INFRASTRUCTURE.md: project infra [99]
-
 o INSTALL-CMAKE.md: fix punctuation
-
 o INSTALL.md: add CMake examples for macOS and iOS [242]
-
 o INSTALL.md: document VS2008 and mingw-w64 [165]
-
 o INTERNALS.md: sync wolfSSL version requirement with source code
-
 o lib517: extend the getdate test with quotes and leading "junk" [4]
-
 o lib: clarify 'conn->httpversion' [213]
-
 o lib: redirect handling by protocol handler [212]
-
 o lib: remove `__EMX__` guards [83]
-
 o lib: replace `inline` redefine with `CURL_INLINE` macro [47]
-
 o lib: supress deprecation warnings in apple builds [32]
-
 o lib: TLS session ticket caching reworked [60]
-
 o libcurl/opts: do not save files in dirs where attackers have access [199]
-
 o Makefile.dist: delete [237]
-
 o Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3) [38]
-
 o mbedtls: fix handling of blocked sends [116]
-
 o mbedtls: PSA can be used independently of TLS 1.3 (avoid runtime errors) [219]
-
 o mime: explicitly rewind subparts at attachment time. [80]
-
 o mprintf: fix integer handling in float precision [173]
-
 o mprintf: terminate snprintf output on windows [172]
-
 o msvc: add missing push/pop for warning pragmas [236]
-
 o msvc: assume `_INTEGRAL_MAX_BITS >= 64` [158]
-
 o msvc: drop checks for ancient versions [133]
-
 o msvc: fix building with `HAVE_INET_NTOP` and MSVC <=1900 [151]
-
 o msvc: require VS2005 for large file support [143]
-
 o msvc: tidy up `_CRT_*_NO_DEPRECATE` definitions [148]
-
 o multi: fix curl_multi_waitfds reporting of fd_count [73]
-
 o multi: fix return code for an already-removed easy handle [106]
-
 o multihandle: add an ssl_scache here [129]
-
 o multissl: auto-enable `OPENSSL_COEXIST` for wolfSSL + OpenSSL [92]
-
 o multissl: make openssl + wolfssl builds work [34]
-
 o netrc: 'default' with no credentials is not a match [108]
-
 o netrc: fix password-only entries [28]
-
 o netrc: restore _netrc fallback logic [6]
-
 o ngtcp2: fix memory leak on connect failure [225]
-
 o ngtcp2: fix two cases of value stored never read [65]
-
 o openssl: define `HAVE_KEYLOG_CALLBACK` before use [227]
-
 o openssl: drop unused `HAVE_SSL_GET_SHUTDOWN` macro [228]
-
 o openssl: fix ECH logic [67]
-
 o osslq: use SSL_poll to determine writeability of QUIC streams [139]
-
 o projects/Windows: remove wolfSSL from legacy projects [75]
-
 o projects: fix `INSTALL-CMAKE.md` references
-
 o pytest: remove 'repeat' parameter [182]
-
 o pytest: use httpd/apache2 directly, no apachectl [169]
-
 o RELEASE-PROCEDURE.md: mention how to publish security advisories [2]
-
 o runtests.pl: fix precedence issue [207]
-
 o scripts/mdlinkcheck: markdown link checker [19]
-
 o sectransp: free certificate on error [12]
-
 o select: avoid a NULL deref in cwfds_add_sock [128]
-
 o smb: fix compiler warning [112]
-
 o src: add `CURL_STRICMP()` macro, use `_stricmp()` on Windows [54]
-
 o src: drop support for `CURL_TESTDIR` debug env [121]
-
 o src: omit hugehelp and ca-embed from libcurltool [215]
-
 o ssl session cache: change cache dimensions [159]
-
 o strparse: string parsing helper functions [8]
-
 o symbols-in-versions: update version for LIBCURL_VERSION and LIBCURL_VERSION_NUM [193]
-
 o system.h: add 64-bit curl_off_t definitions for NonStop [11]
-
 o system.h: drop compilers lacking 64-bit integer type (Windows/MS-DOS) [155]
-
 o system.h: drop duplicate and no-op code [153]
-
 o system.h: fix indentation [142]
-
 o telnet: handle single-byte input option [177]
-
 o test1960: don't close the socket too early [220]
-
 o test483: require cookie support [98]
-
 o tests/http/clients: use proper sleep() call on NonStop [10]
-
 o tests: change the behavior of swsbounce [202]
-
 o tests: stop promoting perl warnings to fatal errors
-
 o TheArtOfHttpScripting.md: rewrite double 'that' [115]
-
 o tidy-up: `curl_setup.h`, `curl_setup_once.h`, `config-win32ce.h` [146]
-
 o tidy-up: drop parenthesis around `return` expression [167]
-
 o tidy-up: drop parenthesis around `return` values [134]
-
 o tidy-up: extend `CURL_O_BINARY` to lib and tests [195]
-
 o TLS: check connection for SSL use, not handler [181]
-
 o tool_formparse.c: make curlx_uztoso a static in here [39]
-
 o tool_formparse: accept digits in --form type= strings [33]
-
 o tool_getparam: ECH param parsing refix [150]
-
 o tool_getparam: fail --hostpubsha256 if libssh2 is not used [229]
-
 o tool_getparam: fix "Ignored Return Value" [21]
-
 o tool_getparam: fix memory leak on error in parse_ech [14]
-
 o tool_getparam: fix the ECH parser [20]
-
 o tool_operate: make --etag-compare always accept a non-existing file [22]
-
 o transfer: fix CURLOPT_CURLU override logic [171]
-
 o urlapi: fix redirect to a new fragment or query (only) [118]
-
 o urldata: tweak the UserDefined struct [240]
-
 o variable.md: mention --expand-variable for variables to variables [13]
-
 o variable.md: show function use with examples [18]
-
 o version: fix the IDN feature for winidn and appleidn [187]
-
 o vquic: fix 4th function call argument is an uninitialized value [70]
-
 o vquic: make vquic_send_packets not return without setting psent [69]
-
 o vtls: fix default SSL backend as a fallback [231]
-
 o vtls: only remember the expiry timestamp in session cache [110]
-
 o vtls: remove 'detach/attach' functions from TLS handler struct [25]
-
 o vtls: remove unusued 'check_cxn' from TLS handler struct [26]
-
 o vtls: replace "none"-functions with NULL pointers [27]
-
 o VULN-DISCLOSURE-POLICY.md: mention the not setting CVSS [23]
-
 o VULN-DISCLOSURE-POLICY: on legacy dependencies [239]
-
 o websocket: fix message send corruption [188]
-
 o windows: drop dupe macros, detect `CURL_OS` for WinCE ARM, indentation [183]
-
 o windows: drop redundant `USE_WIN32_SMALL_FILES` macro [145]
-
 o windows: drop two missed `buildconf.bat` references
-
 o windows: merge `config-win32ce.h` into `config-win32.h` [196]
-
 o ws-docs: extend WebSocket documentation [206]
-
 o ws-docs: remove the outdated texts saying ws support is experimental [15]
-
 o ws: reject frames with unknown reserved bits set [230]
-
 o x509asn1: add parse recursion limit [197]
+
 o build: fix ECH to always enable HTTPS RR [35]
+
 o build: fix MSVC UWP builds [32]
+
 o build: omit certain deps from `libcurl.pc` unless found via `pkg-config` [27]
+
 o build: use `_fseeki64()` on Windows, drop detections [41]
+
 o cmake: do not echo most inherited `LDFLAGS` to config files [55]
+
 o cmake: drop cmake args list from `buildinfo.txt` [8]
+
 o cmake: include `wolfssl/options.h` first [53]
+
 o cmake: remove legacy unused IMMEDIATE keyword [21]
+
 o cmake: restore cmake args list in `buildinfo.txt` [26]
+
 o cmake: set `CURL_STATICLIB` for static lib when `SHARE_LIB_OBJECT=OFF` [64]
+
 o cmake: sync GSS config code with other deps [28]
+
 o cmake: typo in comment
+
 o cmake: work around `ios.toolchain.cmake` breaking feature-detections [37]
+
 o cmakelint: fix to check root `CMakeLists.txt` [36]
+
 o cmdline/ech.md: formatting cleanups [13]
+
 o configure: add FIXMEs for disabled pkg-config references
+
 o configure: do not echo most inherited `LDFLAGS` to config files [31]
+
 o configure: replace `$#` shell syntax [25]
+
 o cookie: treat cookie name case sensitively [4]
+
 o curl-rustls.m4: keep existing `CPPFLAGS`/`LDFLAGS` when detected [40]
+
 o curl.h: mark two error codes as obsolete [19]
+
 o curl: --continue-at is mutually exclusive with --no-clobber [51]
+
 o curl: --continue-at is mutually exclusive with --range [61]
+
 o curl: --continue-at is mutually exclusive with --remove-on-error [50]
+
 o curl: --test-duphandle in debug builds runs "duphandled" [6]
+
 o curl: do more command line parsing in sub functions [71]
+
 o curl: rename struct var to fix AIX build [24]
+
 o curl: use realtime in trace timestamps [52]
+
 o curl_multi_socket_all.md: soften the deprecation warning [56]
+
 o CURLOPT_PREREQFUNCTION.md: add result code on failure [23]
+
 o digest: produce a shorter cnonce in Digest headers [70]
+
 o DISTROS: update Alt Linux links
+
 o dmaketgz: use --no-cache when building docker image [66]
+
 o docs: bring back ALTSVC.md and HSTS.md [76]
+
 o docs: document default `User-Agent` [57]
+
 o docs: suggest --ssl-reqd instead of --ftp-ssl [62]
+
 o duphandle: also init netrc [3]
+
 o ECH: enable support for the AWS-LC backend [5]
+
 o hostip: don't use the resolver for FQDN localhost [45]
+
 o http_negotiate: allow for a one byte larger channel binding buffer [63]
+
 o http_proxy: move dynhds_add_custom here from http.c [18]
+
 o KNOWN_BUGS: setting a disabled option should return CURLE_NOT_BUILT_IN [74]
+
 o krb5: fix socket/sockindex confusion, MSVC compiler warnings [22]
+
 o lib: fixes for wolfSSL OPENSSL_COEXIST [73]
+
 o libssh: use libssh sftp_aio to upload file [47]
+
 o libssh: when using IPv6 numerical address, add brackets [43]
+
 o macos: disable gcc `availability` workaround as needed [7]
+
 o mbedtls: call psa_crypt_init() in global init [2]
+
 o mime: fix reader stall on small read lengths [65]
+
 o mk-ca-bundle: remove CKA_NSS_SERVER_DISTRUST_AFTER conditions [39]
+
 o mprintf: fix the integer overflow checks [44]
+
 o multi: add clarifying comment for wakeup_write() [9]
+
 o multi: fix callback for `CURLMOPT_TIMERFUNCTION` not being called again when... [48]
+
 o netrc: address several netrc parser flaws [17]
+
 o netrc: support large file, longer lines, longer tokens [14]
+
 o nghttp2: use custom memory functions [1]
+
 o OpenSSL: improvde error message on expired certificate [59]
+
 o openssl: remove three "Useless Assignments" [72]
+
 o openssl: stop using SSL_CTX_ function prefix for our functions [20]
+
 o os400: Fix IBMi builds [33]
+
 o os400: Fix IBMi EBCDIC conversion of arguments [34]
+
 o pytest: add test for use of CURLMOPT_MAX_HOST_CONNECTIONS [60]
+
 o rtsp: check EOS in the RTSP receive and return an error code [49]
+
 o schannel: remove TLS 1.3 ciphersuite-list support [54]
+
 o setopt: fix CURLOPT_HTTP_CONTENT_DECODING [15]
+
 o setopt: fix missing options for builds without HTTP & MQTT [10]
+
 o show-headers.md: clarify the headers are saved with the data [58]
+
 o socket: handle binding to "host!<ip>" [16]
+
 o socketpair: fix enabling `USE_EVENTFD` [30]
+
 o strtok: use namespaced `strtok_r` macro instead of redefining it [29]
+
 o tests: add the ending time stamp in testcurl.pl
+
 o tests: re-enable 2086, and 472, 1299, 1613 for Windows [38]
+
 o TODO: consider OCSP stapling by default [11]
+
 o tool_formparse: remove use of sscanf() [68]
+
 o tool_getparam: parse --localport without using sscanf [67]
+
 o tool_getpass: fix UWP `-Wnull-dereference` [46]
+
 o tool_getpass: replace `getch()` call with `_getch()` on Windows [42]
+
 o tool_urlglob: parse character globbing range without sscanf [69]
+
 o vtls: fix compile warning when ALPN is not available [12]

This release includes the following known bugs:

@@ -274,7 +101,6 @@ For all changes ever done in curl:

Planned upcoming removals include:

-
 o Support for the msh3 HTTP/3 backend
 o TLS libraries not supporting TLS 1.3

 See https://curl.se/dev/deprecate.html for details
@@ -282,261 +108,94 @@ Planned upcoming removals include:
This release would not have looked like this without help, code, reports and
advice from friends like these:

-
  9cel, Aleksander Mazur, Andrew Kaster, Andy Pan, Asger Hautop Drewsen,
-
  baranyaib90 on github, Ben Zanin, Brad House, Calvin Ruocco,
-
  Christian Heusel, Christian Schmitz, Christopher Dannemiller, Dan Fandrich,
-
  Daniel Stenberg, Darren Banfi, Deniz Sökmen, dependabot[bot], Derek Huang,
-
  Dexter Gerig, Donguk Kim, dwickr, Edoardo Lolletti, Ganesh Viswanathan,
-
  Harry Sintonen, Hermes Zhang, IcedCoffeee on github, Igor Todorovski,
-
  Jakub Jelen, Jeroen Ooms, Jiri Stary, Kai Pastor, Kevin Sun, Kuan-Wei Chiu,
-
  Leon Timmermans, MacKenzie, Manuel Einfalt, Marcel Raad, Martin Harrigan,
-
  mauke, Michael Schuster, Milon Renatus, Mohammed Sadiq,
-
  na-trium-144 on github, Neil Horman, Neil Johari, Nicolás San Martín,
-
  Patrick Monnerat, prpr19xx on Github, Qriist on github, ralfjunker on github,
-
  Ralph Sennhauser, Randall S. Becker, Ray Satiro, renovate[bot],
-
  Rudi Heitbaum, Samuel Henrique, Stefan Eissing, Stephen Farrell, Tal Regev,
-
  Tamás Bálint Misius, Tamir Duberstein, Viktor Szakats, Yedaya Katsman,
-
  Yihang Zhou, z2_
-
  (65 contributors)
+
  Alexis Savin, Andrew Ayer, Andrew Kirillov, Andy Fiddaman, Ben Greear,
+
  Bo Anderson, Brendon Smith, chemodax, Dan Fandrich, Daniel Engberg,
+
  Daniel Pouzzner, Daniel Stenberg, Dan Rosser, delogicsreal on github,
+
  dengjfzh on github, Ethan Everett, Florian Eckert, galen11 on github,
+
  Harmen Stoppels, Harry Sintonen, henrikjehgmti on github, hiimmat on github,
+
  Jacob Champion, Jeroen Ooms, Jesus Malo Poyatos, jethrogb on github,
+
  Kai Pastor, Logan Buth, Maarten Billemont, marcos-ng on github, Moritz,
+
  newfunction on hackerone, Nicolas F., Peter Kokot, Peter Marko, Ray Satiro,
+
  renovate[bot], Samuel Henrique, Stefan Eissing, SuperStormer on github,
+
  Tal Regev, Thomas, tinyboxvk, tkzv on github, tranzystorekk on github,
+
  Viktor Szakats, Vladislavs Sokurenko, wxiaoguang on github, Wyatt O'Day,
+
  xiaofeng, Yoshimasa Ohno
+
  (51 contributors)

References to bug reports and discussions on issues:

-
 [1] = https://curl.se/bug/?i=15720
-
 [2] = https://curl.se/bug/?i=15714
-
 [3] = https://curl.se/bug/?i=15709
-
 [4] = https://curl.se/bug/?i=15708
-
 [5] = https://curl.se/bug/?i=15729
-
 [6] = https://curl.se/bug/?i=15734
-
 [7] = https://curl.se/bug/?i=15687
-
 [8] = https://curl.se/bug/?i=15692
-
 [9] = https://curl.se/bug/?i=15725
-
 [10] = https://curl.se/bug/?i=15711
-
 [11] = https://curl.se/bug/?i=15723
-
 [12] = https://curl.se/bug/?i=15721
-
 [13] = https://curl.se/bug/?i=15752
-
 [14] = https://curl.se/bug/?i=15753
-
 [15] = https://curl.se/bug/?i=15749
-
 [16] = https://issues.oss-fuzz.com/issues/383911309
-
 [17] = https://curl.se/bug/?i=15495
-
 [18] = https://curl.se/bug/?i=15743
-
 [19] = https://curl.se/bug/?i=15742
-
 [20] = https://curl.se/bug/?i=15741
-
 [21] = https://curl.se/bug/?i=15740
-
 [22] = https://curl.se/bug/?i=15737
-
 [23] = https://curl.se/bug/?i=15779
-
 [24] = https://curl.se/bug/?i=15778
-
 [25] = https://curl.se/bug/?i=15776
-
 [26] = https://curl.se/bug/?i=15775
-
 [27] = https://curl.se/bug/?i=15772
-
 [28] = https://curl.se/bug/?i=15767
-
 [29] = https://curl.se/bug/?i=15769
-
 [30] = https://curl.se/bug/?i=15770
-
 [31] = https://curl.se/bug/?i=15730
-
 [32] = https://curl.se/bug/?i=15763
-
 [33] = https://curl.se/bug/?i=15761
-
 [34] = https://curl.se/bug/?i=15596
-
 [35] = https://curl.se/bug/?i=15764
-
 [36] = https://curl.se/bug/?i=15431
-
 [37] = https://curl.se/bug/?i=15408
-
 [38] = https://curl.se/bug/?i=15543
-
 [39] = https://curl.se/bug/?i=15796
-
 [40] = https://curl.se/bug/?i=15450
-
 [41] = https://curl.se/bug/?i=15498
-
 [42] = https://curl.se/bug/?i=15478
-
 [43] = https://curl.se/bug/?i=15255
-
 [44] = https://curl.se/bug/?i=15787
-
 [45] = https://curl.se/bug/?i=15464
-
 [46] = https://curl.se/bug/?i=15273
-
 [47] = https://curl.se/bug/?i=15523
-
 [48] = https://curl.se/bug/?i=15280
-
 [49] = https://curl.se/bug/?i=15465
-
 [50] = https://curl.se/bug/?i=15562
-
 [51] = https://curl.se/bug/?i=15577
-
 [52] = https://curl.se/bug/?i=15813
-
 [53] = https://curl.se/bug/?i=15815
-
 [54] = https://curl.se/bug/?i=15788
-
 [55] = https://curl.se/bug/?i=15512
-
 [56] = https://curl.se/bug/?i=15739
-
 [57] = https://curl.se/bug/?i=15120
-
 [58] = https://curl.se/bug/?i=15789
-
 [59] = https://curl.se/bug/?i=15785
-
 [60] = https://curl.se/bug/?i=15774
-
 [61] = https://curl.se/bug/?i=15667
-
 [62] = https://curl.se/bug/?i=15786
-
 [63] = https://curl.se/bug/?i=15777
-
 [64] = https://curl.se/bug/?i=15773
-
 [65] = https://curl.se/bug/?i=15812
-
 [66] = https://curl.se/bug/?i=15805
-
 [67] = https://curl.se/bug/?i=15814
-
 [68] = https://curl.se/bug/?i=15855
-
 [69] = https://curl.se/bug/?i=15807
-
 [70] = https://curl.se/bug/?i=15808
-
 [71] = https://curl.se/bug/?i=15806
-
 [72] = https://curl.se/bug/?i=15784
-
 [73] = https://curl.se/bug/?i=15146
-
 [74] = https://curl.se/bug/?i=15748
-
 [75] = https://curl.se/bug/?i=15468
-
 [76] = https://curl.se/bug/?i=13522
-
 [77] = https://curl.se/bug/?i=15587
-
 [78] = https://curl.se/bug/?i=15850
-
 [79] = https://curl.se/bug/?i=15845
-
 [80] = https://curl.se/bug/?i=15842
-
 [81] = https://curl.se/bug/?i=15840
-
 [82] = https://curl.se/bug/?i=15928
-
 [83] = https://curl.se/bug/?i=15884
-
 [84] = https://curl.se/bug/?i=15826
-
 [85] = https://curl.se/bug/?i=15883
-
 [86] = https://curl.se/bug/?i=15832
-
 [87] = https://curl.se/bug/?i=15800
-
 [88] = https://curl.se/bug/?i=15829
-
 [89] = https://curl.se/bug/?i=15827
-
 [90] = https://curl.se/bug/?i=15828
-
 [91] = https://curl.se/bug/?i=15882
-
 [92] = https://curl.se/bug/?i=15765
-
 [93] = https://curl.se/bug/?i=15809
-
 [94] = https://curl.se/bug/?i=15822
-
 [95] = https://curl.se/bug/?i=15820
-
 [96] = https://curl.se/bug/?i=15915
-
 [97] = https://curl.se/bug/?i=15871
-
 [98] = https://curl.se/bug/?i=15876
-
 [99] = https://curl.se/bug/?i=15906
-
 [100] = https://curl.se/bug/?i=15854
-
 [101] = https://curl.se/bug/?i=15945
-
 [102] = https://curl.se/bug/?i=15873
-
 [103] = https://curl.se/bug/?i=15869
-
 [104] = https://curl.se/bug/?i=15868
-
 [105] = https://curl.se/bug/?i=15867
-
 [106] = https://curl.se/bug/?i=15844
-
 [107] = https://curl.se/bug/?i=15833
-
 [108] = https://curl.se/bug/?i=15908
-
 [109] = https://curl.se/bug/?i=15903
-
 [110] = https://curl.se/bug/?i=15861
-
 [111] = https://curl.se/bug/?i=15937
-
 [112] = https://curl.se/bug/?i=15902
-
 [113] = https://curl.se/bug/?i=15898
-
 [114] = https://curl.se/bug/?i=15900
-
 [115] = https://curl.se/bug/?i=15863
-
 [116] = https://curl.se/bug/?i=15801
-
 [117] = https://curl.se/bug/?i=15835
-
 [118] = https://curl.se/bug/?i=15836
-
 [119] = https://curl.se/bug/?i=15897
-
 [120] = https://curl.se/bug/?i=15899
-
 [121] = https://curl.se/bug/?i=15893
-
 [122] = https://curl.se/bug/?i=15895
-
 [123] = https://curl.se/bug/?i=15892
-
 [124] = https://curl.se/bug/?i=15894
-
 [125] = https://curl.se/bug/?i=15891
-
 [126] = https://curl.se/bug/?i=15889
-
 [127] = https://curl.se/bug/?i=15954
-
 [128] = https://curl.se/bug/?i=15881
-
 [129] = https://curl.se/bug/?i=15982
-
 [130] = https://curl.se/bug/?i=15983
-
 [131] = https://curl.se/bug/?i=15981
-
 [132] = https://curl.se/bug/?i=15980
-
 [133] = https://curl.se/bug/?i=15946
-
 [134] = https://curl.se/bug/?i=15979
-
 [135] = https://curl.se/bug/?i=15978
-
 [136] = https://curl.se/bug/?i=15973
-
 [137] = https://curl.se/bug/?i=15939
-
 [138] = https://curl.se/bug/?i=15971
-
 [139] = https://curl.se/bug/?i=15909
-
 [140] = https://curl.se/bug/?i=15941
-
 [141] = https://curl.se/bug/?i=15924
-
 [142] = https://curl.se/bug/?i=15974
-
 [143] = https://curl.se/bug/?i=15958
-
 [144] = https://curl.se/bug/?i=15969
-
 [145] = https://curl.se/bug/?i=15968
-
 [146] = https://curl.se/bug/?i=15967
-
 [147] = https://curl.se/bug/?i=15929
-
 [148] = https://curl.se/bug/?i=15960
-
 [149] = https://curl.se/bug/?i=15925
-
 [150] = https://curl.se/bug/?i=16006
-
 [151] = https://curl.se/bug/?i=15923
-
 [152] = https://curl.se/bug/?i=16012
-
 [153] = https://curl.se/bug/?i=15966
-
 [154] = https://curl.se/bug/?i=15857
-
 [155] = https://curl.se/bug/?i=15957
-
 [156] = https://curl.se/bug/?i=15962
-
 [157] = https://curl.se/bug/?i=15920
-
 [158] = https://curl.se/bug/?i=15955
-
 [159] = https://curl.se/bug/?i=15953
-
 [160] = https://curl.se/bug/?i=16007
-
 [161] = https://curl.se/bug/?i=16007
-
 [162] = https://curl.se/bug/?i=16050
-
 [163] = https://curl.se/bug/?i=16003
-
 [164] = https://curl.se/bug/?i=16002
-
 [165] = https://curl.se/bug/?i=15992
-
 [166] = https://curl.se/bug/?i=16039
-
 [167] = https://curl.se/bug/?i=15990
-
 [168] = https://curl.se/bug/?i=15156
-
 [169] = https://curl.se/bug/?i=16000
-
 [170] = https://curl.se/bug/?i=15996
-
 [171] = https://curl.se/bug/?i=15984
-
 [172] = https://curl.se/bug/?i=15997
-
 [173] = https://curl.se/bug/?i=15988
-
 [174] = https://curl.se/bug/?i=16032
-
 [175] = https://curl.se/bug/?i=16040
-
 [176] = https://curl.se/bug/?i=16037
-
 [177] = https://curl.se/bug/?i=15987
-
 [178] = https://curl.se/bug/?i=15986
-
 [179] = https://curl.se/bug/?i=16022
-
 [180] = https://curl.se/bug/?i=16036
-
 [181] = https://curl.se/bug/?i=16034
-
 [182] = https://curl.se/bug/?i=16033
-
 [183] = https://curl.se/bug/?i=16029
-
 [184] = https://curl.se/bug/?i=16027
-
 [185] = https://curl.se/bug/?i=16014
-
 [186] = https://curl.se/bug/?i=16028
-
 [187] = https://curl.se/bug/?i=16091
-
 [188] = https://curl.se/bug/?i=15865
-
 [189] = https://curl.se/bug/?i=16057
-
 [190] = https://curl.se/bug/?i=16015
-
 [191] = https://curl.se/bug/?i=16048
-
 [192] = https://curl.se/bug/?i=16020
-
 [193] = https://curl.se/bug/?i=16141
-
 [194] = https://curl.se/bug/?i=16019
-
 [195] = https://curl.se/bug/?i=16009
-
 [196] = https://curl.se/bug/?i=16038
-
 [197] = https://curl.se/bug/?i=16135
-
 [198] = https://curl.se/bug/?i=16053
-
 [199] = https://curl.se/bug/?i=16051
-
 [200] = https://curl.se/bug/?i=16081
-
 [201] = https://curl.se/bug/?i=16041
-
 [202] = https://curl.se/bug/?i=16074
-
 [203] = https://curl.se/bug/?i=16089
-
 [204] = https://curl.se/bug/?i=16052
-
 [205] = https://curl.se/bug/?i=16054
-
 [206] = https://curl.se/bug/?i=16118
-
 [207] = https://curl.se/bug/?i=16128
-
 [208] = https://curl.se/bug/?i=16087
-
 [209] = https://curl.se/bug/?i=16131
-
 [210] = https://curl.se/bug/?i=16079
-
 [211] = https://curl.se/bug/?i=16079
-
 [212] = https://curl.se/bug/?i=16075
-
 [213] = https://curl.se/bug/?i=16073
-
 [214] = https://curl.se/bug/?i=16062
-
 [215] = https://curl.se/bug/?i=16068
-
 [216] = https://curl.se/bug/?i=16063
-
 [217] = https://curl.se/bug/?i=16067
-
 [219] = https://curl.se/bug/?i=16044
-
 [220] = https://curl.se/bug/?i=16123
-
 [221] = https://curl.se/bug/?i=16120
-
 [222] = https://curl.se/bug/?i=16121
-
 [223] = https://curl.se/bug/?i=16114
-
 [224] = https://curl.se/bug/?i=16152
-
 [225] = https://curl.se/bug/?i=16113
-
 [226] = https://curl.se/bug/?i=16110
-
 [227] = https://curl.se/bug/?i=16105
-
 [228] = https://curl.se/bug/?i=16103
-
 [229] = https://curl.se/bug/?i=16109
-
 [230] = https://curl.se/bug/?i=16069
-
 [231] = https://curl.se/bug/?i=16076
-
 [232] = https://curl.se/mail/lib-2025-01/0044.html
-
 [233] = https://curl.se/bug/?i=16107
-
 [235] = https://curl.se/bug/?i=16102
-
 [236] = https://curl.se/bug/?i=16101
-
 [237] = https://curl.se/bug/?i=16094
-
 [239] = https://curl.se/bug/?i=16086
-
 [240] = https://curl.se/bug/?i=16097
-
 [241] = https://curl.se/bug/?i=16084
-
 [242] = https://curl.se/bug/?i=16095
+
 [1] = https://curl.se/bug/?i=15527
+
 [2] = https://curl.se/bug/?i=15500
+
 [3] = https://curl.se/bug/?i=15496
+
 [4] = https://curl.se/bug/?i=15492
+
 [5] = https://curl.se/bug/?i=15499
+
 [6] = https://curl.se/bug/?i=15504
+
 [7] = https://curl.se/bug/?i=15508
+
 [8] = https://curl.se/bug/?i=15501
+
 [9] = https://curl.se/bug/?i=15600
+
 [10] = https://curl.se/bug/?i=15634
+
 [11] = https://curl.se/bug/?i=15483
+
 [12] = https://curl.se/bug/?i=15515
+
 [13] = https://curl.se/bug/?i=15506
+
 [14] = https://curl.se/bug/?i=15513
+
 [15] = https://curl.se/bug/?i=15511
+
 [16] = https://curl.se/bug/?i=15553
+
 [17] = https://curl.se/bug/?i=15586
+
 [18] = https://curl.se/bug/?i=15672
+
 [19] = https://curl.se/bug/?i=15538
+
 [20] = https://curl.se/bug/?i=15673
+
 [21] = https://curl.se/bug/?i=15661
+
 [22] = https://curl.se/bug/?i=15585
+
 [23] = https://curl.se/bug/?i=15542
+
 [24] = https://curl.se/bug/?i=15580
+
 [25] = https://curl.se/bug/?i=15584
+
 [26] = https://curl.se/bug/?i=15563
+
 [27] = https://curl.se/bug/?i=15469
+
 [28] = https://curl.se/bug/?i=15545
+
 [29] = https://curl.se/bug/?i=15549
+
 [30] = https://curl.se/bug/?i=15561
+
 [31] = https://curl.se/bug/?i=15533
+
 [32] = https://curl.se/bug/?i=15657
+
 [33] = https://curl.se/bug/?i=15566
+
 [34] = https://curl.se/bug/?i=15570
+
 [35] = https://curl.se/bug/?i=15648
+
 [36] = https://curl.se/bug/?i=15565
+
 [37] = https://curl.se/bug/?i=15557
+
 [38] = https://curl.se/bug/?i=15644
+
 [39] = https://curl.se/bug/?i=15547
+
 [40] = https://curl.se/bug/?i=15546
+
 [41] = https://curl.se/bug/?i=15525
+
 [42] = https://curl.se/bug/?i=15642
+
 [43] = https://curl.se/bug/?i=15522
+
 [44] = https://curl.se/bug/?i=15699
+
 [45] = https://curl.se/bug/?i=15676
+
 [46] = https://curl.se/bug/?i=15638
+
 [47] = https://curl.se/bug/?i=15625
+
 [48] = https://curl.se/bug/?i=15627
+
 [49] = https://curl.se/bug/?i=15624
+
 [50] = https://curl.se/bug/?i=15645
+
 [51] = https://curl.se/bug/?i=15645
+
 [52] = https://curl.se/bug/?i=15614
+
 [53] = https://curl.se/bug/?i=15620
+
 [54] = https://hackerone.com/reports/2792484
+
 [55] = https://curl.se/bug/?i=15617
+
 [56] = https://curl.se/mail/lib-2024-11/0029.html
+
 [57] = https://curl.se/bug/?i=15608
+
 [58] = https://curl.se/bug/?i=15605
+
 [59] = https://curl.se/bug/?i=15612
+
 [60] = https://curl.se/bug/?i=15494
+
 [61] = https://curl.se/bug/?i=15646
+
 [62] = https://curl.se/bug/?i=15658
+
 [63] = https://curl.se/bug/?i=15685
+
 [64] = https://curl.se/bug/?i=15695
+
 [65] = https://curl.se/bug/?i=15688
+
 [66] = https://curl.se/bug/?i=15689
+
 [67] = https://curl.se/bug/?i=15681
+
 [68] = https://curl.se/bug/?i=15683
+
 [69] = https://curl.se/bug/?i=15682
+
 [70] = https://curl.se/bug/?i=15653
+
 [71] = https://curl.se/bug/?i=15680
+
 [72] = https://curl.se/bug/?i=15679
+
 [73] = https://curl.se/bug/?i=15650
+
 [74] = https://curl.se/bug/?i=15472
+
 [76] = https://curl.se/bug/?i=15705
modified external/curl/acinclude.m4
@@ -1378,33 +1378,55 @@ dnl Check if curl's Win32 large file will be used

AC_DEFUN([CURL_CHECK_WIN32_LARGEFILE], [
  AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl
-
  if test "$curl_cv_native_windows" = 'yes'; then
-
    AC_MSG_CHECKING([whether build target supports Win32 large files])
-
    case $host_os in
-
      mingw32ce*|cegcc*)
-
        dnl Windows CE does not support large files
-
        curl_win32_has_largefile='no'
-
        ;;
-
      *)
-
        dnl All mingw-w64 versions support large files
-
        curl_win32_has_largefile='yes'
-
        ;;
-
    esac
-
    case "$curl_win32_has_largefile" in
-
      yes)
-
        if test x"$enable_largefile" = 'xno'; then
-
          AC_MSG_RESULT([yes (large file disabled)])
-
        else
-
          AC_MSG_RESULT([yes (large file enabled)])
-
          AC_DEFINE_UNQUOTED(USE_WIN32_LARGE_FILES, 1,
-
            [Define to 1 if you are building a Windows target with large file support.])
-
        fi
-
        ;;
-
      *)
-
        AC_MSG_RESULT([no])
-
        ;;
-
    esac
+
  AC_MSG_CHECKING([whether build target supports Win32 file API])
+
  curl_win32_file_api="no"
+
  if test "$curl_cv_native_windows" = "yes"; then
+
    if test x"$enable_largefile" != "xno"; then
+
      AC_COMPILE_IFELSE([
+
        AC_LANG_PROGRAM([[
+
        ]],[[
+
          #if !defined(_WIN32_WCE) && (defined(__MINGW32__) || defined(_MSC_VER))
+
            int dummy=1;
+
          #else
+
            #error Win32 large file API not supported.
+
          #endif
+
        ]])
+
      ],[
+
        curl_win32_file_api="win32_large_files"
+
      ])
+
    fi
+
    if test "$curl_win32_file_api" = "no"; then
+
      AC_COMPILE_IFELSE([
+
        AC_LANG_PROGRAM([[
+
        ]],[[
+
          #if defined(_WIN32_WCE) || defined(__MINGW32__) || defined(_MSC_VER)
+
            int dummy=1;
+
          #else
+
            #error Win32 small file API not supported.
+
          #endif
+
        ]])
+
      ],[
+
        curl_win32_file_api="win32_small_files"
+
      ])
+
    fi
  fi
+
  case "$curl_win32_file_api" in
+
    win32_large_files)
+
      AC_MSG_RESULT([yes (large file enabled)])
+
      AC_DEFINE_UNQUOTED(USE_WIN32_LARGE_FILES, 1,
+
        [Define to 1 if you are building a Windows target with large file support.])
+
      AC_SUBST(USE_WIN32_LARGE_FILES, [1])
+
      ;;
+
    win32_small_files)
+
      AC_MSG_RESULT([yes (large file disabled)])
+
      AC_DEFINE_UNQUOTED(USE_WIN32_SMALL_FILES, 1,
+
        [Define to 1 if you are building a Windows target without large file support.])
+
      AC_SUBST(USE_WIN32_SMALL_FILES, [1])
+
      ;;
+
    *)
+
      AC_MSG_RESULT([no])
+
      ;;
+
  esac
])

dnl CURL_CHECK_WIN32_CRYPTO
@@ -1415,7 +1437,7 @@ AC_DEFUN([CURL_CHECK_WIN32_CRYPTO], [
  AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl
  AC_MSG_CHECKING([whether build target supports Win32 crypto API])
  curl_win32_crypto_api="no"
-
  if test "$curl_cv_native_windows" = "yes" -a "$curl_cv_winuwp" != "yes"; then
+
  if test "$curl_cv_native_windows" = "yes"; then
    AC_COMPILE_IFELSE([
      AC_LANG_PROGRAM([[
        #undef inline
@@ -1440,7 +1462,7 @@ AC_DEFUN([CURL_CHECK_WIN32_CRYPTO], [
      AC_MSG_RESULT([yes])
      AC_DEFINE_UNQUOTED(USE_WIN32_CRYPTO, 1,
        [Define to 1 if you are building a Windows target with crypto API support.])
-
      USE_WIN32_CRYPTO=1
+
      AC_SUBST(USE_WIN32_CRYPTO, [1])
      ;;
    *)
      AC_MSG_RESULT([no])
@@ -1526,36 +1548,23 @@ AC_DEFUN([CURL_PREPARE_BUILDINFO], [
  case $host in
    *-apple-*) curl_pflags="${curl_pflags} APPLE";;
  esac
-
  case $host in
-
    *-*-*bsd*|*-*-aix*|*-*-hpux*|*-*-interix*|*-*-irix*|*-*-linux*|*-*-solaris*|*-*-sunos*|*-apple-*|*-*-cygwin*|*-*-msys*)
-
      curl_pflags="${curl_pflags} UNIX";;
-
  esac
-
  case $host in
-
    *-*-*bsd*)
-
      curl_pflags="${curl_pflags} BSD";;
-
  esac
-
  case $host in
-
    *-*-android*)
-
      curl_pflags="${curl_pflags} ANDROID"
-
      ANDROID_PLATFORM_LEVEL=`echo "$host_os" | $SED -ne 's/.*android\(@<:@0-9@:>@*\).*/\1/p'`
-
      if test -n "${ANDROID_PLATFORM_LEVEL}"; then
-
        curl_pflags="${curl_pflags}-${ANDROID_PLATFORM_LEVEL}"
-
      fi
-
      ;;
-
  esac
  if test "$curl_cv_native_windows" = 'yes'; then
    curl_pflags="${curl_pflags} WIN32"
-
  fi
-
  if test "$curl_cv_winuwp" = 'yes'; then
-
    curl_pflags="${curl_pflags} UWP"
+
  else
+
    case $host in
+
      *-*-*bsd*|*-*-aix*|*-*-hpux*|*-*-interix*|*-*-irix*|*-*-linux*|*-*-solaris*|*-*-sunos*|*-apple-*|*-*-cygwin*|*-*-msys*)
+
        curl_pflags="${curl_pflags} UNIX";;
+
    esac
+
    case $host in
+
      *-*-*bsd*)
+
        curl_pflags="${curl_pflags} BSD";;
+
    esac
  fi
  if test "$curl_cv_cygwin" = 'yes'; then
    curl_pflags="${curl_pflags} CYGWIN"
  fi
  case $host_os in
    msys*) curl_pflags="${curl_pflags} MSYS";;
-
    msdos*) curl_pflags="${curl_pflags} DOS";;
-
    amiga*) curl_pflags="${curl_pflags} AMIGA";;
  esac
  if test "x$compiler_id" = 'xGNU_C'; then
    curl_pflags="${curl_pflags} GCC"
added external/curl/buildconf.bat
@@ -0,0 +1,265 @@
+
@echo off
+
rem ***************************************************************************
+
rem *                                  _   _ ____  _
+
rem *  Project                     ___| | | |  _ \| |
+
rem *                             / __| | | | |_) | |
+
rem *                            | (__| |_| |  _ <| |___
+
rem *                             \___|\___/|_| \_\_____|
+
rem *
+
rem * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+
rem *
+
rem * This software is licensed as described in the file COPYING, which
+
rem * you should have received as part of this distribution. The terms
+
rem * are also available at https://curl.se/docs/copyright.html.
+
rem *
+
rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+
rem * copies of the Software, and permit persons to whom the Software is
+
rem * furnished to do so, under the terms of the COPYING file.
+
rem *
+
rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+
rem * KIND, either express or implied.
+
rem *
+
rem * SPDX-License-Identifier: curl
+
rem *
+
rem ***************************************************************************
+

+
rem NOTES
+
rem
+
rem This batch file must be used to set up a git tree to build on systems where
+
rem there is no autotools support (i.e. DOS and Windows).
+
rem
+

+
:begin
+
  rem Set our variables
+
  if "%OS%" == "Windows_NT" setlocal
+
  set MODE=GENERATE
+

+
  rem Switch to this batch file's directory
+
  cd /d "%~0\.." 1>NUL 2>&1
+

+
  rem Check we are running from a curl git repository
+
  if not exist GIT-INFO.md goto norepo
+

+
:parseArgs
+
  if "%~1" == "" goto start
+

+
  if /i "%~1" == "-clean" (
+
    set MODE=CLEAN
+
  ) else if /i "%~1" == "-?" (
+
    goto syntax
+
  ) else if /i "%~1" == "-h" (
+
    goto syntax
+
  ) else if /i "%~1" == "-help" (
+
    goto syntax
+
  ) else (
+
    goto unknown
+
  )
+

+
  shift & goto parseArgs
+

+
:start
+
  if "%MODE%" == "GENERATE" (
+
    echo.
+
    echo Generating prerequisite files
+

+
    call :generate
+
    if errorlevel 3 goto nogenhugehelp
+
    if errorlevel 2 goto nogenmakefile
+
    if errorlevel 1 goto warning
+

+
  ) else (
+
    echo.
+
    echo Removing prerequisite files
+

+
    call :clean
+
    if errorlevel 2 goto nocleanhugehelp
+
    if errorlevel 1 goto nocleanmakefile
+
  )
+

+
  goto success
+

+
rem Main generate function.
+
rem
+
rem Returns:
+
rem
+
rem 0 - success
+
rem 1 - success with simplified tool_hugehelp.c
+
rem 2 - failed to generate Makefile
+
rem 3 - failed to generate tool_hugehelp.c
+
rem
+
:generate
+
  if "%OS%" == "Windows_NT" setlocal
+
  set BASIC_HUGEHELP=0
+

+
  rem Create Makefile
+
  echo * %CD%\Makefile
+
  if exist Makefile.dist (
+
    copy /Y Makefile.dist Makefile 1>NUL 2>&1
+
    if errorlevel 1 (
+
      if "%OS%" == "Windows_NT" endlocal
+
      exit /B 2
+
    )
+
  )
+

+
  rem Create tool_hugehelp.c
+
  echo * %CD%\src\tool_hugehelp.c
+
  call :genHugeHelp
+
  if errorlevel 2 (
+
    if "%OS%" == "Windows_NT" endlocal
+
    exit /B 3
+
  )
+
  if errorlevel 1 (
+
    set BASIC_HUGEHELP=1
+
  )
+
  cmd /c exit 0
+

+
  if "%BASIC_HUGEHELP%" == "1" (
+
    if "%OS%" == "Windows_NT" endlocal
+
    exit /B 1
+
  )
+

+
  if "%OS%" == "Windows_NT" endlocal
+
  exit /B 0
+

+
rem Main clean function.
+
rem
+
rem Returns:
+
rem
+
rem 0 - success
+
rem 1 - failed to clean Makefile
+
rem 2 - failed to clean tool_hugehelp.c
+
rem
+
:clean
+
  rem Remove Makefile
+
  echo * %CD%\Makefile
+
  if exist Makefile (
+
    del Makefile 2>NUL
+
    if exist Makefile (
+
      exit /B 1
+
    )
+
  )
+

+
  rem Remove tool_hugehelp.c
+
  echo * %CD%\src\tool_hugehelp.c
+
  if exist src\tool_hugehelp.c (
+
    del src\tool_hugehelp.c 2>NUL
+
    if exist src\tool_hugehelp.c (
+
      exit /B 2
+
    )
+
  )
+

+
  exit /B
+

+
rem Function to generate src\tool_hugehelp.c
+
rem
+
rem Returns:
+
rem
+
rem 0 - full tool_hugehelp.c generated
+
rem 1 - simplified tool_hugehelp.c
+
rem 2 - failure
+
rem
+
:genHugeHelp
+
  if "%OS%" == "Windows_NT" setlocal
+
  set LC_ALL=C
+
  set BASIC=1
+

+
  if exist src\tool_hugehelp.c.cvs (
+
    copy /Y src\tool_hugehelp.c.cvs src\tool_hugehelp.c 1>NUL 2>&1
+
  ) else (
+
    echo #include "tool_setup.h"> src\tool_hugehelp.c
+
    echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
+
    echo.>> src\tool_hugehelp.c
+
    echo void hugehelp(void^)>> src\tool_hugehelp.c
+
    echo {>> src\tool_hugehelp.c
+
    echo #ifdef USE_MANUAL>> src\tool_hugehelp.c
+
    echo   fputs("Built-in manual not included\n", stdout^);>> src\tool_hugehelp.c
+
    echo #endif>> src\tool_hugehelp.c
+
    echo }>> src\tool_hugehelp.c
+
  )
+

+
  findstr "/C:void hugehelp(void)" src\tool_hugehelp.c 1>NUL 2>&1
+
  if errorlevel 1 (
+
    if "%OS%" == "Windows_NT" endlocal
+
    exit /B 2
+
  )
+

+
  if "%BASIC%" == "1" (
+
    if "%OS%" == "Windows_NT" endlocal
+
    exit /B 1
+
  )
+

+
  if "%OS%" == "Windows_NT" endlocal
+
  exit /B 0
+

+
rem Function to clean-up local variables under DOS, Windows 3.x and
+
rem Windows 9x as setlocal isn't available until Windows NT
+
rem
+
:dosCleanup
+
  set MODE=
+
  set BASIC_HUGEHELP=
+
  set LC_ALL
+
  set BASIC=
+

+
  exit /B
+

+
:syntax
+
  rem Display the help
+
  echo.
+
  echo Usage: buildconf [-clean]
+
  echo.
+
  echo -clean    - Removes the files
+
  goto error
+

+
:unknown
+
  echo.
+
  echo Error: Unknown argument '%1'
+
  goto error
+

+
:norepo
+
  echo.
+
  echo Error: This batch file should only be used with a curl git repository
+
  goto error
+

+
:nogenmakefile
+
  echo.
+
  echo Error: Unable to generate Makefile
+
  goto error
+

+
:nogenhugehelp
+
  echo.
+
  echo Error: Unable to generate src\tool_hugehelp.c
+
  goto error
+

+
:nocleanmakefile
+
  echo.
+
  echo Error: Unable to clean Makefile
+
  goto error
+

+
:nocleanhugehelp
+
  echo.
+
  echo Error: Unable to clean src\tool_hugehelp.c
+
  goto error
+

+
:warning
+
  echo.
+
  echo Warning: The curl manual could not be integrated in the source. This means when
+
  echo you build curl the manual will not be available (curl --manual^). Integration of
+
  echo the manual is not required and a summary of the options will still be available
+
  echo (curl --help^). To integrate the manual build with configure or cmake.
+
  goto success
+

+
:error
+
  if "%OS%" == "Windows_NT" (
+
    endlocal
+
  ) else (
+
    call :dosCleanup
+
  )
+
  exit /B 1
+

+
:success
+
  if "%OS%" == "Windows_NT" (
+
    endlocal
+
  ) else (
+
    call :dosCleanup
+
  )
+
  exit /B 0
modified external/curl/configure
@@ -915,11 +915,15 @@ CROSSCOMPILING_FALSE
CROSSCOMPILING_TRUE
BLANK_AT_MAKETIME
CURL_NETWORK_AND_TIME_LIBS
+
CURL_NETWORK_LIBS
LIBCURL_PC_LIBS_PRIVATE
LIBCURL_PC_LDFLAGS_PRIVATE
CFLAG_CURL_SYMBOL_HIDING
DOING_CURL_SYMBOL_HIDING_FALSE
DOING_CURL_SYMBOL_HIDING_TRUE
+
CURL_DISABLE_WEBSOCKETS
+
USE_UNIX_SOCKETS
+
USE_ARES
USE_MANUAL_FALSE
USE_MANUAL_TRUE
BUILD_DOCS_FALSE
@@ -931,37 +935,96 @@ FISH_FUNCTIONS_DIR
USE_ZSH_COMPLETION_FALSE
USE_ZSH_COMPLETION_TRUE
ZSH_FUNCTIONS_DIR
+
USE_LIBUV
+
USE_MSH3
+
USE_QUICHE
+
USE_OPENSSL_H3
+
USE_NGTCP2_H3
+
USE_NGHTTP3
+
USE_OPENSSL_QUIC
+
USE_NGTCP2_CRYPTO_WOLFSSL
+
USE_NGTCP2_CRYPTO_GNUTLS
+
USE_NGTCP2_CRYPTO_BORINGSSL
+
USE_NGTCP2_CRYPTO_QUICTLS
+
USE_NGTCP2
+
USE_NGHTTP2
+
USE_APPLE_IDN
+
IDN_ENABLED
USE_UNICODE_FALSE
USE_UNICODE_TRUE
CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_FALSE
CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_TRUE
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX
+
USE_LIBRTMP
+
USE_WOLFSSH
+
USE_LIBSSH
+
USE_LIBSSH2
USE_GSASL_FALSE
USE_GSASL_TRUE
USE_LIBPSL_FALSE
USE_LIBPSL_TRUE
+
USE_LIBPSL
CURL_CA_EMBED_SET_FALSE
CURL_CA_EMBED_SET_TRUE
CURL_CA_EMBED
CURL_CA_BUNDLE
+
CURL_WITH_MULTI_SSL
+
SSL_ENABLED
+
USE_RUSTLS
+
USE_BEARSSL
+
USE_WOLFSSL
+
USE_MBEDTLS
+
HAVE_GNUTLS_SRP
+
USE_GNUTLS
+
HAVE_OPENSSL_SRP
+
SSL_LIBS
+
USE_SECTRANSP
+
USE_WINDOWS_SSPI
+
USE_SCHANNEL
+
DEFAULT_SSL_BACKEND
BUILD_STUB_GSS_FALSE
BUILD_STUB_GSS_TRUE
+
IPV6_ENABLED
+
USE_OPENLDAP
+
HAVE_ZSTD
+
HAVE_BROTLI
ZLIB_LIBS
HAVE_LIBZ_FALSE
HAVE_LIBZ_TRUE
HAVE_LIBZ
+
HAVE_PROTO_BSDSOCKET_H
+
CURL_DISABLE_MQTT
+
CURL_DISABLE_GOPHER
+
CURL_DISABLE_SMTP
+
CURL_DISABLE_SMB
+
CURL_DISABLE_IMAP
+
CURL_DISABLE_POP3
+
CURL_DISABLE_TFTP
+
CURL_DISABLE_TELNET
+
CURL_DISABLE_DICT
+
CURL_DISABLE_PROXY
+
USE_HYPER
PKGCONFIG
+
HAVE_LDAP_SSL
+
CURL_DISABLE_LDAPS
+
CURL_DISABLE_LDAP
+
CURL_DISABLE_FILE
+
CURL_DISABLE_FTP
+
CURL_DISABLE_RTSP
+
CURL_DISABLE_IPFS
+
CURL_DISABLE_HTTP
USE_TEST_BUNDLES_FALSE
USE_TEST_BUNDLES_TRUE
USE_UNITY_FALSE
USE_UNITY_TRUE
HAVE_WINDRES_FALSE
HAVE_WINDRES_TRUE
+
USE_WIN32_CRYPTO
+
USE_WIN32_SMALL_FILES
+
USE_WIN32_LARGE_FILES
BUILD_UNITTESTS_FALSE
BUILD_UNITTESTS_TRUE
-
CURL_WERROR_FALSE
-
CURL_WERROR_TRUE
CURL_CFLAG_EXTRAS
DOING_NATIVE_WINDOWS_FALSE
DOING_NATIVE_WINDOWS_TRUE
@@ -1006,11 +1069,15 @@ build_vendor
build_cpu
build
HTTPD_NGHTTPX
+
APACHECTL
HTTPD
APXS
VSFTPD
CADDY
TEST_NGHTTPX
+
PKGADD_VENDOR
+
PKGADD_NAME
+
PKGADD_PKG
VERSIONNUM
CURLVERSION
CSCOPE
@@ -1128,7 +1195,6 @@ enable_ares
enable_rt
enable_httpsrr
enable_ech
-
enable_ssls_export
enable_code_coverage
enable_dependency_tracking
with_schannel
@@ -1163,6 +1229,7 @@ enable_file
enable_ipfs
enable_ldap
enable_ldaps
+
with_hyper
enable_rtsp
enable_proxy
enable_dict
@@ -1217,6 +1284,7 @@ with_libuv
with_zsh_functions_dir
with_fish_functions_dir
enable_threaded_resolver
+
enable_pthreads
enable_verbose
enable_sspi
enable_basic_auth
@@ -1907,8 +1975,6 @@ Optional Features:
  --disable-httpsrr       Disable HTTPSRR support
  --enable-ech            Enable ECH support
  --disable-ech           Disable ECH support
-
  --enable-ssls-export    Enable SSL session export support
-
  --disable-ssls-export   Disable SSL session export support
  --enable-code-coverage  Provide code coverage
  --enable-dependency-tracking
                          do not reject slow dependency extractors
@@ -1990,6 +2056,8 @@ Optional Features:
                          Enable threaded resolver
  --disable-threaded-resolver
                          Disable threaded resolver
+
  --enable-pthreads       Enable POSIX threads (default for threaded resolver)
+
  --disable-pthreads      Disable POSIX threads
  --enable-verbose        Enable verbose strings
  --disable-verbose       Disable verbose strings
  --enable-sspi           Enable SSPI
@@ -2087,6 +2155,8 @@ Optional Packages:
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
                          compiler's sysroot if not specified).
+
  --with-hyper=PATH       Enable hyper usage
+
  --without-hyper         Disable hyper usage
  --with-zlib=PATH        search for zlib in PATH
  --without-zlib          disable use of zlib
  --with-brotli=PATH      Where to look for brotli, PATH points to the BROTLI
@@ -3815,7 +3885,7 @@ printf "%s\n" "no" >&6; }
      ;;
    *)
            want_httpsrr="yes"
-
      curl_httpsrr_msg="enabled"
+
      curl_httpsrr_msg="enabled (--disable-httpsrr)"
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
      ;;
@@ -3853,37 +3923,6 @@ printf "%s\n" "yes" >&6; }
  esac


-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable SSL session export support" >&5
-
printf %s "checking whether to enable SSL session export support... " >&6; }
-
  OPT_SSLS_EXPORT="default"
-
  # Check whether --enable-ssls-export was given.
-
if test ${enable_ssls_export+y}
-
then :
-
  enableval=$enable_ssls_export; OPT_SSLS_EXPORT=$enableval
-
fi
-

-
  case "$OPT_SSLS_EXPORT" in
-
    no)
-
            want_ssls_export="no"
-
      curl_ssls_export_msg="no      (--enable-ssls-export)"
-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
      ;;
-
    default)
-
            want_ssls_export="no"
-
      curl_ssls_export_msg="no      (--enable-ssls-export)"
-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
      ;;
-
    *)
-
            want_ssls_export="yes"
-
      curl_ssls_export_msg="enabled (--disable-ssls-export)"
-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
      ;;
-
  esac
-

-

#
# Check that 'XC_CONFIGURE_PREAMBLE' has already run.
#
@@ -6706,6 +6745,13 @@ printf "%s\n" "$CURLVERSION" >&6; }
VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\([0-9A-Fa-f]*\).*/\1/p' ${srcdir}/include/curl/curlver.h`


+
PKGADD_PKG="HAXXcurl"
+
PKGADD_NAME="curl - a client that groks URLs"
+
PKGADD_VENDOR="curl.se"
+

+

+

+

    curl_ssl_msg="no      (--with-{openssl,gnutls,mbedtls,wolfssl,schannel,secure-transport,amissl,bearssl,rustls} )"
    curl_ssh_msg="no      (--with-{libssh,libssh2})"
   curl_zlib_msg="no      (--with-zlib)"
@@ -6945,9 +6991,10 @@ else $as_nop
fi

if test x"$request_httpd" = "xcheck" -o x"$request_httpd" = "xyes"; then
-
  if test -x "/usr/sbin/apache2"; then
+
  if test -x "/usr/sbin/apache2" -a -x "/usr/sbin/apache2ctl"; then
    # common location on distros (debian/ubuntu)
    HTTPD="/usr/sbin/apache2"
+
    APACHECTL="/usr/sbin/apache2ctl"
    # Extract the first word of "apxs", so it can be a program name with args.
set dummy apxs; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -7091,6 +7138,51 @@ fi


    fi
+
    # Extract the first word of "apachectl", so it can be a program name with args.
+
set dummy apachectl; ac_word=$2
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+
printf %s "checking for $ac_word... " >&6; }
+
if test ${ac_cv_path_APACHECTL+y}
+
then :
+
  printf %s "(cached) " >&6
+
else $as_nop
+
  case $APACHECTL in
+
  [\\/]* | ?:[\\/]*)
+
  ac_cv_path_APACHECTL="$APACHECTL" # Let the user override the test with a path.
+
  ;;
+
  *)
+
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+
for as_dir in $PATH
+
do
+
  IFS=$as_save_IFS
+
  case $as_dir in #(((
+
    '') as_dir=./ ;;
+
    */) ;;
+
    *) as_dir=$as_dir/ ;;
+
  esac
+
    for ac_exec_ext in '' $ac_executable_extensions; do
+
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+
    ac_cv_path_APACHECTL="$as_dir$ac_word$ac_exec_ext"
+
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+
    break 2
+
  fi
+
done
+
  done
+
IFS=$as_save_IFS
+

+
  ;;
+
esac
+
fi
+
APACHECTL=$ac_cv_path_APACHECTL
+
if test -n "$APACHECTL"; then
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $APACHECTL" >&5
+
printf "%s\n" "$APACHECTL" >&6; }
+
else
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
fi
+

+

    # Extract the first word of "apxs", so it can be a program name with args.
set dummy apxs; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -7136,7 +7228,7 @@ printf "%s\n" "no" >&6; }
fi


-
    if test "x$HTTPD" = "x"; then
+
    if test "x$HTTPD" = "x" -o "x$APACHECTL" = "x"; then
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: httpd/apache2 not in PATH, http tests disabled" >&5
printf "%s\n" "$as_me: httpd/apache2 not in PATH, http tests disabled" >&6;}
      HTTPD_ENABLED="no"
@@ -7149,11 +7241,16 @@ printf "%s\n" "$as_me: apxs not in PATH, http tests disabled" >&6;}
  fi
elif test x"$request_httpd" != "xno"; then
  HTTPD="${request_httpd}/bin/httpd"
+
  APACHECTL="${request_httpd}/bin/apachectl"
  APXS="${request_httpd}/bin/apxs"
  if test ! -x "${HTTPD}"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: httpd not found as ${HTTPD}, http tests disabled" >&5
printf "%s\n" "$as_me: httpd not found as ${HTTPD}, http tests disabled" >&6;}
    HTTPD_ENABLED="no"
+
  elif test ! -x "${APACHECTL}"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: apachectl not found as ${APACHECTL}, http tests disabled" >&5
+
printf "%s\n" "$as_me: apachectl not found as ${APACHECTL}, http tests disabled" >&6;}
+
    HTTPD_ENABLED="no"
  elif test ! -x "${APXS}"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: apxs not found as ${APXS}, http tests disabled" >&5
printf "%s\n" "$as_me: apxs not found as ${APXS}, http tests disabled" >&6;}
@@ -7165,11 +7262,13 @@ printf "%s\n" "$as_me: using HTTPD=$HTTPD for tests" >&6;}
fi
if test x"$HTTPD_ENABLED" = "xno"; then
  HTTPD=""
+
  APACHECTL=""
  APXS=""
fi



+

if test "x$TEST_NGHTTPX" != "x" -a "x$TEST_NGHTTPX" != "xnghttpx"; then
  HTTPD_NGHTTPX="$TEST_NGHTTPX"
else
@@ -18404,14 +18503,6 @@ fi



-
curl_cv_winuwp='no'
-
if test "$curl_cv_native_windows" = "yes"; then
-
  case "$CPPFLAGS" in
-
    *-DWINSTORECOMPAT*) curl_cv_winuwp='yes';;
-
  esac
-
fi
-

-

squeeze() {
  _sqz_result=""
  eval _sqz_input=\$$1
@@ -19111,7 +19202,7 @@ printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}


    ac_var_added_warnings=""
-
  for warning in nested-externs; do
+
  for warning in inline nested-externs; do

  ac_var_match_word="no"
  for word1 in $CFLAGS; do
@@ -19626,7 +19717,27 @@ printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
          fi
          #
                    if test "$compiler_num" -ge "209"; then
-
            tmp_CFLAGS="$tmp_CFLAGS -Wno-sign-conversion"
+

+
    ac_var_added_warnings=""
+
  for warning in sign-conversion; do
+

+
  ac_var_match_word="no"
+
  for word1 in $CFLAGS; do
+
    for word2 in -Wno-$warning -W$warning; do
+
      if test "$word1" = "$word2"; then
+
        ac_var_match_word="yes"
+
      fi
+
    done
+
  done
+

+
    if test "$ac_var_match_word" = "no"; then
+
      ac_var_added_warnings="$ac_var_added_warnings -W$warning"
+
    fi
+
  done
+
    tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
+
  squeeze tmp_CFLAGS
+

+
            tmp_CFLAGS="$tmp_CFLAGS -Wno-error=sign-conversion"          # FIXME

    ac_var_added_warnings=""
  for warning in shift-sign-overflow; do
@@ -19995,7 +20106,7 @@ printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
                    if test "$compiler_num" -ge "207"; then

    ac_var_added_warnings=""
-
  for warning in nested-externs; do
+
  for warning in inline nested-externs; do

  ac_var_match_word="no"
  for word1 in $CFLAGS; do
@@ -20482,7 +20593,7 @@ printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}


    ac_var_added_warnings=""
-
  for warning in conversion; do
+
  for warning in conversion trampolines; do

  ac_var_match_word="no"
  for word1 in $CFLAGS; do
@@ -20500,10 +20611,9 @@ printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
    tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
  squeeze tmp_CFLAGS

-
            tmp_CFLAGS="$tmp_CFLAGS -Wno-sign-conversion"

    ac_var_added_warnings=""
-
  for warning in vla; do
+
  for warning in sign-conversion; do

  ac_var_match_word="no"
  for word1 in $CFLAGS; do
@@ -20521,24 +20631,10 @@ printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
    tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
  squeeze tmp_CFLAGS

-
                        tmp_CFLAGS="$tmp_CFLAGS -ftree-vrp"
-
          fi
-
          #
-
                    if test "$compiler_num" -ge "405"; then
-
                        if test "$curl_cv_native_windows" = "yes"; then
-
              tmp_CFLAGS="$tmp_CFLAGS -Wno-pedantic-ms-format"
-
            fi
-
            case $host_os in
-
              cygwin*)
-
                                tmp_CFLAGS="$tmp_CFLAGS -Wno-suggest-attribute=noreturn"
-
                ;;
-
            esac
-
          fi
-
          #
-
                    if test "$compiler_num" -ge "406"; then
+
            tmp_CFLAGS="$tmp_CFLAGS -Wno-error=sign-conversion"          # FIXME

    ac_var_added_warnings=""
-
  for warning in double-promotion; do
+
  for warning in vla; do

  ac_var_match_word="no"
  for word1 in $CFLAGS; do
@@ -20556,9 +20652,19 @@ printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
    tmp_CFLAGS="$tmp_CFLAGS $ac_var_added_warnings"
  squeeze tmp_CFLAGS

+
                        tmp_CFLAGS="$tmp_CFLAGS -ftree-vrp"
+
          fi
+
          #
+
                    if test "$compiler_num" -ge "405"; then
+
                        if test "$curl_cv_native_windows" = "yes"; then
+
              tmp_CFLAGS="$tmp_CFLAGS -Wno-pedantic-ms-format"
+
            fi
+
          fi
+
          #
+
                    if test "$compiler_num" -ge "406"; then

    ac_var_added_warnings=""
-
  for warning in trampolines; do
+
  for warning in double-promotion; do

  ac_var_match_word="no"
  for word1 in $CFLAGS; do
@@ -20794,19 +20900,6 @@ printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;}
            fi
          fi
        fi
-
        if test "$compiler_num" -lt "405"; then
-
                    tmp_CFLAGS="$tmp_CFLAGS -Wno-shadow"
-
          tmp_CFLAGS="$tmp_CFLAGS -Wno-unreachable-code"
-
        fi
-
        if test "$compiler_num" -ge "402" -a "$compiler_num" -lt "406"; then
-
                    tmp_CFLAGS="$tmp_CFLAGS -Wno-overlength-strings"
-
        fi
-
        if test "$compiler_num" -ge "400" -a "$compiler_num" -lt "407"; then
-
                    tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-field-initializers"
-
        fi
-
        if test "$compiler_num" -ge "403" -a "$compiler_num" -lt "408"; then
-
                    tmp_CFLAGS="$tmp_CFLAGS -Wno-type-limits"
-
        fi
        ;;
        #
      HP_UX_C)
@@ -21158,14 +21251,6 @@ if test X"$want_werror" = Xyes; then
  fi
fi

-
 if test X"$want_werror" = Xyes; then
-
  CURL_WERROR_TRUE=
-
  CURL_WERROR_FALSE='#'
-
else
-
  CURL_WERROR_TRUE='#'
-
  CURL_WERROR_FALSE=
-
fi
-



  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler halts on compilation errors" >&5
@@ -21463,42 +21548,97 @@ fi



-
    if test "$curl_cv_native_windows" = 'yes'; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build target supports Win32 large files" >&5
-
printf %s "checking whether build target supports Win32 large files... " >&6; }
-
    case $host_os in
-
      mingw32ce*|cegcc*)
-
                curl_win32_has_largefile='no'
-
        ;;
-
      *)
-
                curl_win32_has_largefile='yes'
-
        ;;
-
    esac
-
    case "$curl_win32_has_largefile" in
-
      yes)
-
        if test x"$enable_largefile" = 'xno'; then
-
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (large file disabled)" >&5
-
printf "%s\n" "yes (large file disabled)" >&6; }
-
        else
-
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (large file enabled)" >&5
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build target supports Win32 file API" >&5
+
printf %s "checking whether build target supports Win32 file API... " >&6; }
+
  curl_win32_file_api="no"
+
  if test "$curl_cv_native_windows" = "yes"; then
+
    if test x"$enable_largefile" != "xno"; then
+
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+

+
int main(void)
+
{
+

+
          #if !defined(_WIN32_WCE) && (defined(__MINGW32__) || defined(_MSC_VER))
+
            int dummy=1;
+
          #else
+
            #error Win32 large file API not supported.
+
          #endif
+

+
 ;
+
 return 0;
+
}
+

+
_ACEOF
+
if ac_fn_c_try_compile "$LINENO"
+
then :
+

+
        curl_win32_file_api="win32_large_files"
+

+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
    fi
+
    if test "$curl_win32_file_api" = "no"; then
+
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+

+
int main(void)
+
{
+

+
          #if defined(_WIN32_WCE) || defined(__MINGW32__) || defined(_MSC_VER)
+
            int dummy=1;
+
          #else
+
            #error Win32 small file API not supported.
+
          #endif
+

+
 ;
+
 return 0;
+
}
+

+
_ACEOF
+
if ac_fn_c_try_compile "$LINENO"
+
then :
+

+
        curl_win32_file_api="win32_small_files"
+

+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
    fi
+
  fi
+
  case "$curl_win32_file_api" in
+
    win32_large_files)
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (large file enabled)" >&5
printf "%s\n" "yes (large file enabled)" >&6; }

printf "%s\n" "#define USE_WIN32_LARGE_FILES 1" >>confdefs.h

-
        fi
-
        ;;
-
      *)
-
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
      USE_WIN32_LARGE_FILES=1
+

+
      ;;
+
    win32_small_files)
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes (large file disabled)" >&5
+
printf "%s\n" "yes (large file disabled)" >&6; }
+

+
printf "%s\n" "#define USE_WIN32_SMALL_FILES 1" >>confdefs.h
+

+
      USE_WIN32_SMALL_FILES=1
+

+
      ;;
+
    *)
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
        ;;
-
    esac
-
  fi
+
      ;;
+
  esac


    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build target supports Win32 crypto API" >&5
printf %s "checking whether build target supports Win32 crypto API... " >&6; }
  curl_win32_crypto_api="no"
-
  if test "$curl_cv_native_windows" = "yes" -a "$curl_cv_winuwp" != "yes"; then
+
  if test "$curl_cv_native_windows" = "yes"; then
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

@@ -21540,6 +21680,7 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define USE_WIN32_CRYPTO 1" >>confdefs.h

      USE_WIN32_CRYPTO=1
+

      ;;
    *)
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -21737,20 +21878,23 @@ printf "%s\n" "#define CURL_DISABLE_HTTP 1" >>confdefs.h
printf "%s\n" "$as_me: WARNING: disable HTTP disables FTP over proxy, IPFS and RTSP" >&2;}
    CURL_DISABLE_HTTP=1

+

printf "%s\n" "#define CURL_DISABLE_IPFS 1" >>confdefs.h

    CURL_DISABLE_IPFS=1

+

printf "%s\n" "#define CURL_DISABLE_RTSP 1" >>confdefs.h

    CURL_DISABLE_RTSP=1

+

printf "%s\n" "#define CURL_DISABLE_ALTSVC 1" >>confdefs.h


printf "%s\n" "#define CURL_DISABLE_HSTS 1" >>confdefs.h

-
    curl_h1_msg="no      (--enable-http)"
+
    curl_h1_msg="no      (--enable-http, --with-hyper)"
    curl_altsvc_msg="no";
    curl_hsts_msg="no      (--enable-hsts)";
    enable_altsvc="no"
@@ -21780,6 +21924,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_FTP 1" >>confdefs.h

    CURL_DISABLE_FTP=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -21805,6 +21950,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_FILE 1" >>confdefs.h

    CURL_DISABLE_FILE=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -21830,6 +21976,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_IPFS 1" >>confdefs.h

    CURL_DISABLE_IPFS=1
+

    ;;
  *)
    if test x$CURL_DISABLE_HTTP = x1; then
@@ -21866,6 +22013,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_LDAP 1" >>confdefs.h

    CURL_DISABLE_LDAP=1
+

    ;;
  yes)
    ldap_askedfor="yes"
@@ -21897,6 +22045,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h

    CURL_DISABLE_LDAPS=1
+

    ;;
  *)
    if test "x$CURL_DISABLE_LDAP" = "x1"; then
@@ -21906,6 +22055,7 @@ printf "%s\n" "LDAP needs to be enabled to support LDAPS" >&6; }
printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h

      CURL_DISABLE_LDAPS=1
+

    else
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
@@ -21913,6 +22063,7 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_LDAP_SSL 1" >>confdefs.h

      HAVE_LDAP_SSL=1
+

    fi
    ;;
  esac
@@ -21925,6 +22076,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h

      CURL_DISABLE_LDAPS=1
+

    else
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
@@ -21932,24 +22084,326 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_LDAP_SSL 1" >>confdefs.h

      HAVE_LDAP_SSL=1
+

+
    fi
+

+
fi
+

+

+

+
OPT_HYPER="no"
+

+

+
# Check whether --with-hyper was given.
+
if test ${with_hyper+y}
+
then :
+
  withval=$with_hyper; OPT_HYPER=$withval
+
fi
+

+
case "$OPT_HYPER" in
+
  no)
+
        want_hyper="no"
+
    ;;
+
  yes)
+
        want_hyper="default"
+
    want_hyper_path=""
+
    ;;
+
  *)
+
        want_hyper="yes"
+
    want_hyper_path="$withval"
+
    ;;
+
esac
+

+
if test X"$want_hyper" != Xno; then
+
  if test "x$disable_http" = "xyes"; then
+
    as_fn_error $? "--with-hyper is not compatible with --disable-http" "$LINENO" 5
+
  fi
+

+
    CLEANLDFLAGS="$LDFLAGS"
+
  CLEANCPPFLAGS="$CPPFLAGS"
+
  CLEANLIBS="$LIBS"
+

+

+
  if test -n "$PKG_CONFIG"; then
+
    PKGCONFIG="$PKG_CONFIG"
+
  else
+
    if test -n "$ac_tool_prefix"; then
+
  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+
printf %s "checking for $ac_word... " >&6; }
+
if test ${ac_cv_path_PKGCONFIG+y}
+
then :
+
  printf %s "(cached) " >&6
+
else $as_nop
+
  case $PKGCONFIG in
+
  [\\/]* | ?:[\\/]*)
+
  ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
+
  ;;
+
  *)
+
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+
as_dummy="$PATH:/usr/bin:/usr/local/bin"
+
for as_dir in $as_dummy
+
do
+
  IFS=$as_save_IFS
+
  case $as_dir in #(((
+
    '') as_dir=./ ;;
+
    */) ;;
+
    *) as_dir=$as_dir/ ;;
+
  esac
+
    for ac_exec_ext in '' $ac_executable_extensions; do
+
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+
    ac_cv_path_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+
    break 2
+
  fi
+
done
+
  done
+
IFS=$as_save_IFS
+

+
  ;;
+
esac
+
fi
+
PKGCONFIG=$ac_cv_path_PKGCONFIG
+
if test -n "$PKGCONFIG"; then
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+
printf "%s\n" "$PKGCONFIG" >&6; }
+
else
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
fi
+

+

+
fi
+
if test -z "$ac_cv_path_PKGCONFIG"; then
+
  ac_pt_PKGCONFIG=$PKGCONFIG
+
  # Extract the first word of "pkg-config", so it can be a program name with args.
+
set dummy pkg-config; ac_word=$2
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+
printf %s "checking for $ac_word... " >&6; }
+
if test ${ac_cv_path_ac_pt_PKGCONFIG+y}
+
then :
+
  printf %s "(cached) " >&6
+
else $as_nop
+
  case $ac_pt_PKGCONFIG in
+
  [\\/]* | ?:[\\/]*)
+
  ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
+
  ;;
+
  *)
+
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+
as_dummy="$PATH:/usr/bin:/usr/local/bin"
+
for as_dir in $as_dummy
+
do
+
  IFS=$as_save_IFS
+
  case $as_dir in #(((
+
    '') as_dir=./ ;;
+
    */) ;;
+
    *) as_dir=$as_dir/ ;;
+
  esac
+
    for ac_exec_ext in '' $ac_executable_extensions; do
+
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+
    ac_cv_path_ac_pt_PKGCONFIG="$as_dir$ac_word$ac_exec_ext"
+
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+
    break 2
+
  fi
+
done
+
  done
+
IFS=$as_save_IFS
+

+
  ;;
+
esac
+
fi
+
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
+
if test -n "$ac_pt_PKGCONFIG"; then
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
+
printf "%s\n" "$ac_pt_PKGCONFIG" >&6; }
+
else
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
fi
+

+
  if test "x$ac_pt_PKGCONFIG" = x; then
+
    PKGCONFIG="no"
+
  else
+
    case $cross_compiling:$ac_tool_warned in
+
yes:)
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+
ac_tool_warned=yes ;;
+
esac
+
    PKGCONFIG=$ac_pt_PKGCONFIG
+
  fi
+
else
+
  PKGCONFIG="$ac_cv_path_PKGCONFIG"
+
fi
+

+
  fi
+

+
  if test "x$PKGCONFIG" != "xno"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hyper options with pkg-config" >&5
+
printf %s "checking for hyper options with pkg-config... " >&6; }
+
        itexists=`
+
  if test -n "$want_hyper_path"; then
+
    PKG_CONFIG_LIBDIR="$want_hyper_path"
+
    export PKG_CONFIG_LIBDIR
+
  fi
+
       $PKGCONFIG --exists hyper >/dev/null 2>&1 && echo 1`
+

+
    if test -z "$itexists"; then
+
                  PKGCONFIG="no"
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
    else
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found" >&5
+
printf "%s\n" "found" >&6; }
    fi
+
  fi

+

+
  if test "$PKGCONFIG" != "no"; then
+
    LIB_HYPER=`
+
  if test -n "$want_hyper_path"; then
+
    PKG_CONFIG_LIBDIR="$want_hyper_path"
+
    export PKG_CONFIG_LIBDIR
+
  fi
+

+
      $PKGCONFIG --libs-only-l hyper`
+
    CPP_HYPER=`
+
  if test -n "$want_hyper_path"; then
+
    PKG_CONFIG_LIBDIR="$want_hyper_path"
+
    export PKG_CONFIG_LIBDIR
+
  fi
+
       $PKGCONFIG --cflags-only-I hyper`
+
    LD_HYPER=`
+
  if test -n "$want_hyper_path"; then
+
    PKG_CONFIG_LIBDIR="$want_hyper_path"
+
    export PKG_CONFIG_LIBDIR
+
  fi
+

+
      $PKGCONFIG --libs-only-L hyper`
+
  else
+
        LIB_HYPER="-lhyper -ldl -lpthread -lm"
+
    if test X"$want_hyper" != Xdefault; then
+
      CPP_HYPER=-I"$want_hyper_path/capi/include"
+
      LD_HYPER="-L$want_hyper_path/target/release -L$want_hyper_path/target/debug"
+
    fi
+
  fi
+
  if test -n "$LIB_HYPER"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -l is $LIB_HYPER" >&5
+
printf "%s\n" "$as_me: -l is $LIB_HYPER" >&6;}
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -I is $CPP_HYPER" >&5
+
printf "%s\n" "$as_me: -I is $CPP_HYPER" >&6;}
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -L is $LD_HYPER" >&5
+
printf "%s\n" "$as_me: -L is $LD_HYPER" >&6;}
+

+
    LDFLAGS="$LDFLAGS $LD_HYPER"
+
    CPPFLAGS="$CPPFLAGS $CPP_HYPER"
+
    LIBS="$LIB_HYPER $LIBS"
+

+
    if test "x$cross_compiling" != "xyes"; then
+
            DIR_HYPER=`echo $LD_HYPER | $SED -e 's/^-L//' -e 's/ -L/:/g'`
+
    fi
+

+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hyper_io_new in -lhyper" >&5
+
printf %s "checking for hyper_io_new in -lhyper... " >&6; }
+
if test ${ac_cv_lib_hyper_hyper_io_new+y}
+
then :
+
  printf %s "(cached) " >&6
+
else $as_nop
+
  ac_check_lib_save_LIBS=$LIBS
+
LIBS="-lhyper  $LIBS"
+
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+
#ifdef __cplusplus
+
extern "C"
+
#endif
+
char hyper_io_new ();
+
int main(void)
+
{
+
return hyper_io_new ();
+
 ;
+
 return 0;
+
}
+
_ACEOF
+
if ac_fn_c_try_link "$LINENO"
+
then :
+
  ac_cv_lib_hyper_hyper_io_new=yes
+
else $as_nop
+
  ac_cv_lib_hyper_hyper_io_new=no
+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam \
+
    conftest$ac_exeext conftest.$ac_ext
+
LIBS=$ac_check_lib_save_LIBS
fi
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hyper_hyper_io_new" >&5
+
printf "%s\n" "$ac_cv_lib_hyper_hyper_io_new" >&6; }
+
if test "x$ac_cv_lib_hyper_hyper_io_new" = xyes
+
then :

+
               for ac_header in hyper.h
+
do :
+
  ac_fn_c_check_header_compile "$LINENO" "hyper.h" "ac_cv_header_hyper_h" "$ac_includes_default"
+
if test "x$ac_cv_header_hyper_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_HYPER_H 1" >>confdefs.h
+
 experimental="$experimental Hyper"
+
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Hyper support is experimental" >&5
+
printf "%s\n" "$as_me: Hyper support is experimental" >&6;}
+
          curl_h1_msg="enabled (Hyper)"
+
          HYPER_ENABLED=1
+

+
printf "%s\n" "#define USE_HYPER 1" >>confdefs.h
+

+
          USE_HYPER=1
+

+
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_HYPER"
+
          export CURL_LIBRARY_PATH
+
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_HYPER to CURL_LIBRARY_PATH" >&5
+
printf "%s\n" "$as_me: Added $DIR_HYPER to CURL_LIBRARY_PATH" >&6;}
+
          LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE hyper"
+

+
fi
+

+
done
+

+
else $as_nop
+
  for d in `echo $DIR_HYPER | $SED -e 's/:/ /'`; do
+
        if test -f "$d/libhyper.a"; then
+
          as_fn_error $? "hyper was found in $d but was probably built with wrong flags. See docs/HYPER.md." "$LINENO" 5
+
        fi
+
      done
+
      as_fn_error $? "--with-hyper but hyper was not found. See docs/HYPER.md." "$LINENO" 5
+

+
fi
+

+
  fi
+
fi
+

+
if test X"$want_hyper" != Xno; then
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Disable RTSP support with hyper" >&5
+
printf "%s\n" "$as_me: Disable RTSP support with hyper" >&6;}

-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support rtsp" >&5
+
printf "%s\n" "#define CURL_DISABLE_RTSP 1" >>confdefs.h
+

+
  CURL_DISABLE_RTSP=1
+

+
else
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support rtsp" >&5
printf %s "checking whether to support rtsp... " >&6; }
-
# Check whether --enable-rtsp was given.
+
  # Check whether --enable-rtsp was given.
if test ${enable_rtsp+y}
then :
  enableval=$enable_rtsp;  case "$enableval" in
-
      no)
+
    no)
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }

printf "%s\n" "#define CURL_DISABLE_RTSP 1" >>confdefs.h

      CURL_DISABLE_RTSP=1
+

      ;;
    *)
      if test x$CURL_DISABLE_HTTP = x1; then
@@ -21973,6 +22427,7 @@ printf "%s\n" "no" >&6; }

fi

+
fi

{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support proxies" >&5
printf %s "checking whether to support proxies... " >&6; }
@@ -21987,6 +22442,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_PROXY 1" >>confdefs.h

    CURL_DISABLE_PROXY=1
+

    https_proxy="no"
    ;;
  *)
@@ -22014,6 +22470,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_DICT 1" >>confdefs.h

    CURL_DISABLE_DICT=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22040,6 +22497,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_TELNET 1" >>confdefs.h

    CURL_DISABLE_TELNET=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22053,13 +22511,6 @@ printf "%s\n" "yes" >&6; }
fi


-
if test "$curl_cv_winuwp" = 'yes'; then
-

-
printf "%s\n" "#define CURL_DISABLE_TELNET 1" >>confdefs.h
-

-
  CURL_DISABLE_TELNET=1
-
fi
-

{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support tftp" >&5
printf %s "checking whether to support tftp... " >&6; }
# Check whether --enable-tftp was given.
@@ -22073,6 +22524,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_TFTP 1" >>confdefs.h

    CURL_DISABLE_TFTP=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22099,6 +22551,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_POP3 1" >>confdefs.h

    CURL_DISABLE_POP3=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22125,6 +22578,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_IMAP 1" >>confdefs.h

    CURL_DISABLE_IMAP=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22151,6 +22605,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_SMB 1" >>confdefs.h

    CURL_DISABLE_SMB=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22177,6 +22632,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_SMTP 1" >>confdefs.h

    CURL_DISABLE_SMTP=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22203,6 +22659,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_GOPHER 1" >>confdefs.h

    CURL_DISABLE_GOPHER=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22229,6 +22686,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_MQTT 1" >>confdefs.h

    CURL_DISABLE_MQTT=1
+

    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -22484,11 +22942,7 @@ fi
fi

if test "$HAVE_GETHOSTBYNAME" != "1"; then
-
    clean_CPPFLAGS=$CPPFLAGS
-
  clean_LDFLAGS=$LDFLAGS
-
  CPPFLAGS="-I${WATT_ROOT}/inc"
-
  LDFLAGS="-L${WATT_ROOT}/lib"
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lwatt" >&5
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lwatt" >&5
printf %s "checking for gethostbyname in -lwatt... " >&6; }
if test ${ac_cv_lib_watt_gethostbyname+y}
then :
@@ -22527,16 +22981,10 @@ if test "x$ac_cv_lib_watt_gethostbyname" = xyes
then :

      HAVE_GETHOSTBYNAME="1"
+
      CPPFLAGS="-I${WATT_ROOT}/inc"
+
      LDFLAGS="-L${WATT_ROOT}/lib"
      LIBS="-lwatt $LIBS"

-
printf "%s\n" "#define USE_WATT32 1" >>confdefs.h
-

-

-
else $as_nop
-

-
      CPPFLAGS=$clean_CPPFLAGS
-
      LDFLAGS=$clean_LDFLAGS
-


fi

@@ -22580,9 +23028,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
    conftest$ac_exeext conftest.$ac_ext
fi

-
# In UWP mode gethostbyname gets detected via the core libs, but some
-
# code (in6addr_any) still need ws2_32, so let us detect and add it.
-
if test "$HAVE_GETHOSTBYNAME" != "1" -o "$curl_cv_winuwp" = "yes"; then
+
if test "$HAVE_GETHOSTBYNAME" != "1"; then
    if test "$curl_cv_native_windows" = "yes"; then
    winsock_LIB="-lws2_32"
    if test ! -z "$winsock_LIB"; then
@@ -22741,6 +23187,8 @@ printf "%s\n" "yes" >&6; }

printf "%s\n" "#define HAVE_PROTO_BSDSOCKET_H 1" >>confdefs.h

+
    HAVE_PROTO_BSDSOCKET_H=1
+


else $as_nop

@@ -22947,6 +23395,8 @@ printf "%s\n" "$tst_connect_need_LIBS" >&6; }
  esac


+
CURL_NETWORK_LIBS=$LIBS
+


  ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_types_h" = xyes
@@ -23860,6 +24310,8 @@ then :

printf "%s\n" "#define HAVE_BROTLI 1" >>confdefs.h

+
    HAVE_BROTLI=1
+


fi

@@ -24127,6 +24579,8 @@ then :

printf "%s\n" "#define HAVE_ZSTD 1" >>confdefs.h

+
    HAVE_ZSTD=1
+


fi

@@ -24427,7 +24881,7 @@ printf "%s\n" "#define HAVE_LDAP_SSL_H 1" >>confdefs.h


  if test -z "$LDAPLIBNAME"; then
-
    if test "$curl_cv_native_windows" = "yes" -a "$curl_cv_winuwp" != "yes"; then
+
    if test "$curl_cv_native_windows" = "yes"; then
            LDAPLIBNAME="wldap32"
      LBERLIBNAME="no"
    fi
@@ -24491,11 +24945,11 @@ printf "%s\n" "#define CURL_DISABLE_LDAP 1" >>confdefs.h

      CURL_DISABLE_LDAP=1

+

printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h

      CURL_DISABLE_LDAPS=1

-

fi

  else
@@ -24617,9 +25071,11 @@ printf "%s\n" "#define CURL_DISABLE_LDAP 1" >>confdefs.h

        CURL_DISABLE_LDAP=1

+

printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h

        CURL_DISABLE_LDAPS=1
+

        ;;
    esac
  fi
@@ -24683,11 +25139,11 @@ printf "%s\n" "#define CURL_DISABLE_LDAP 1" >>confdefs.h

        CURL_DISABLE_LDAP=1

+

printf "%s\n" "#define CURL_DISABLE_LDAPS 1" >>confdefs.h

        CURL_DISABLE_LDAPS=1

-

fi

    fi
@@ -24721,6 +25177,7 @@ printf "%s\n" "#define USE_WIN32_LDAP 1" >>confdefs.h
printf "%s\n" "#define USE_OPENLDAP 1" >>confdefs.h

      USE_OPENLDAP=1
+

    else
      curl_ldap_msg="enabled (ancient OpenLDAP)"
    fi
@@ -24750,44 +25207,51 @@ printf "%s\n" "yes" >&6; }
    ;;
  esac
else $as_nop
+
  if test "$cross_compiling" = yes
+
then :
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
  ipv6=yes
+

+
else $as_nop
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

+
    /* are AF_INET6 and sockaddr_in6 available? */
+
    #include <sys/types.h>
+
    #ifdef _WIN32
+
    #include <winsock2.h>
+
    #include <ws2tcpip.h>
+
    #else
+
    #include <sys/socket.h>
+
    #include <netinet/in.h>
+
    #if defined (__TANDEM)
+
    # include <netinet/in6.h>
+
    #endif
+
    #endif

-
      /* are AF_INET6 and sockaddr_in6 available? */
-
      #include <sys/types.h>
-
      #ifdef _WIN32
-
      #include <winsock2.h>
-
      #include <ws2tcpip.h>
-
      #else
-
      #include <sys/socket.h>
-
      #include <netinet/in.h>
-
      #ifdef __TANDEM
-
      #include <netinet/in6.h>
-
      #endif
-
      #endif
-

-
      int main(void)
-
      {
-
        struct sockaddr_in6 s;
-
        (void)s;
-
        return socket(AF_INET6, SOCK_STREAM, 0) < 0;
-
      }
+
    int main(void)
+
    {
+
      struct sockaddr_in6 s;
+
      (void)s;
+
      return socket(AF_INET6, SOCK_STREAM, 0) < 0;
+
    }


_ACEOF
-
if ac_fn_c_try_compile "$LINENO"
+
if ac_fn_c_try_run "$LINENO"
then :
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
    ipv6=yes
+
  ipv6=yes
else $as_nop
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
    ipv6=no
-

+
  ipv6=no
+
fi
+
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext

fi

@@ -24799,33 +25263,32 @@ printf "%s\n" "#define USE_IPV6 1" >>confdefs.h

  IPV6_ENABLED=1

+

  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if struct sockaddr_in6 has sin6_scope_id member" >&5
printf %s "checking if struct sockaddr_in6 has sin6_scope_id member... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
      #include <sys/types.h>
-
      #ifdef _WIN32
-
      #include <winsock2.h>
-
      #include <ws2tcpip.h>
-
      #else
-
      #include <netinet/in.h>
-
      #ifdef __TANDEM
-
      #include <netinet/in6.h>
-
      #endif
-
      #endif
+
    #include <sys/types.h>
+
    #ifdef _WIN32
+
    #include <winsock2.h>
+
    #include <ws2tcpip.h>
+
    #else
+
    #include <netinet/in.h>
+
    #if defined (__TANDEM)
+
    # include <netinet/in6.h>
+
    #endif
+
    #endif

int main(void)
{

-
      struct sockaddr_in6 s;
-
      s.sin6_scope_id = 0;
+
    struct sockaddr_in6 s;
+
    s.sin6_scope_id = 0;

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
@@ -25834,7 +26297,8 @@ case "$DEFAULT_SSL_BACKEND" in
        as_fn_error $? "The name of the default SSL backend is required." "$LINENO" 5
    ;;
  *)
-
            VALID_DEFAULT_SSL_BACKEND=no
+

+
        VALID_DEFAULT_SSL_BACKEND=no
    ;;
esac

@@ -25850,6 +26314,8 @@ printf "%s\n" "yes" >&6; }

printf "%s\n" "#define USE_SCHANNEL 1" >>confdefs.h

+
    USE_SCHANNEL=1
+

    ssl_msg="Schannel"
    test schannel != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
    SCHANNEL_ENABLED=1
@@ -25858,6 +26324,7 @@ printf "%s\n" "#define USE_SCHANNEL 1" >>confdefs.h
printf "%s\n" "#define USE_WINDOWS_SSPI 1" >>confdefs.h

    USE_WINDOWS_SSPI=1
+

    curl_sspi_msg="enabled"
  else
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -25880,6 +26347,8 @@ printf "%s\n" "yes" >&6; }

printf "%s\n" "#define USE_SECTRANSP 1" >>confdefs.h

+
    USE_SECTRANSP=1
+

    ssl_msg="Secure Transport"
    test secure-transport != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
    SECURETRANSPORT_ENABLED=1
@@ -25939,7 +26408,6 @@ printf "%s\n" "yes" >&6; }
      check_for_ca_bundle=1
      with_ca_fallback=yes
      LIBS="-lamisslstubs -lamisslauto $LIBS"
-
      CURL_NETWORK_AND_TIME_LIBS="-lamisslstubs -lamisslauto $CURL_NETWORK_AND_TIME_LIBS"

printf "%s\n" "#define USE_AMISSL 1" >>confdefs.h

@@ -26248,6 +26716,7 @@ printf "%s\n" "found" >&6; }
  fi
         $PKGCONFIG --cflags-only-I openssl 2>/dev/null`

+

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&5
printf "%s\n" "$as_me: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&6;}
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&5
@@ -26562,6 +27031,53 @@ printf "%s\n" "#define USE_OPENSSL 1" >>confdefs.h
fi

done
+

+
      if test $ac_cv_header_openssl_x509_h = no; then
+
                                ac_fn_c_check_header_compile "$LINENO" "x509.h" "ac_cv_header_x509_h" "$ac_includes_default"
+
if test "x$ac_cv_header_x509_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_X509_H 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_header_compile "$LINENO" "rsa.h" "ac_cv_header_rsa_h" "$ac_includes_default"
+
if test "x$ac_cv_header_rsa_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_RSA_H 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_header_compile "$LINENO" "crypto.h" "ac_cv_header_crypto_h" "$ac_includes_default"
+
if test "x$ac_cv_header_crypto_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_CRYPTO_H 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_header_compile "$LINENO" "pem.h" "ac_cv_header_pem_h" "$ac_includes_default"
+
if test "x$ac_cv_header_pem_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_PEM_H 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_header_compile "$LINENO" "ssl.h" "ac_cv_header_ssl_h" "$ac_includes_default"
+
if test "x$ac_cv_header_ssl_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SSL_H 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_header_compile "$LINENO" "err.h" "ac_cv_header_err_h" "$ac_includes_default"
+
if test "x$ac_cv_header_err_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_ERR_H 1" >>confdefs.h
+

+
fi
+

+

+
        if test $ac_cv_header_x509_h = yes &&
+
           test $ac_cv_header_crypto_h = yes &&
+
           test $ac_cv_header_ssl_h = yes; then
+
                    ssl_msg="OpenSSL"
+
          OPENSSL_ENABLED=1
+
        fi
+
      fi
    fi

    if test X"$OPENSSL_ENABLED" != X"1"; then
@@ -26671,6 +27187,9 @@ then :

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
+

+
printf "%s\n" "#define HAVE_LIBRESSL 1" >>confdefs.h
+

      ssl_msg="LibreSSL"

else $as_nop
@@ -26793,6 +27312,7 @@ printf "%s\n" "#define HAVE_OPENSSL_SRP 1" >>confdefs.h

    HAVE_OPENSSL_SRP=1

+

else $as_nop

    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -27099,6 +27619,8 @@ then :

printf "%s\n" "#define USE_GNUTLS 1" >>confdefs.h

+
        USE_GNUTLS=1
+

        GNUTLS_ENABLED=1
        USE_GNUTLS="yes"
        ssl_msg="GnuTLS"
@@ -27272,6 +27794,7 @@ printf "%s\n" "#define HAVE_GNUTLS_SRP 1" >>confdefs.h

      HAVE_GNUTLS_SRP=1

+

fi

fi
@@ -27334,6 +27857,8 @@ then :

printf "%s\n" "#define USE_MBEDTLS 1" >>confdefs.h

+
        USE_MBEDTLS=1
+

        MBEDTLS_ENABLED=1
        USE_MBEDTLS="yes"
        ssl_msg="mbedTLS"
@@ -27400,6 +27925,8 @@ then :

printf "%s\n" "#define USE_MBEDTLS 1" >>confdefs.h

+
        USE_MBEDTLS=1
+

        MBEDTLS_ENABLED=1
        USE_MBEDTLS="yes"
        ssl_msg="mbedTLS"
@@ -27693,6 +28220,8 @@ printf "%s\n" "yes" >&6; }

printf "%s\n" "#define USE_WOLFSSL 1" >>confdefs.h

+
        USE_WOLFSSL=1
+

        WOLFSSL_ENABLED=1
        USE_WOLFSSL="yes"
        ssl_msg="wolfSSL"
@@ -27728,32 +28257,27 @@ printf %s "checking size of long long... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
        #include <sys/types.h>
+
#include <sys/types.h>


int main(void)
{
-

-
        switch(0) {
-
          case 0:
-
          case (sizeof(long long) == $typesize):;
-
        }
+
switch(0) {
+
      case 0:
+
      case (sizeof(long long) == $typesize):;
+
    }

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :

-
      r=$typesize
-

+
        r=$typesize
else $as_nop

-
      r=0
-

+
        r=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        if test $r -gt 0; then
@@ -27903,6 +28427,8 @@ then :

printf "%s\n" "#define USE_BEARSSL 1" >>confdefs.h

+
        USE_BEARSSL=1
+

        BEARSSL_ENABLED=1
        USE_BEARSSL="yes"
        ssl_msg="BearSSL"
@@ -27969,6 +28495,8 @@ then :

printf "%s\n" "#define USE_BEARSSL 1" >>confdefs.h

+
        USE_BEARSSL=1
+

        BEARSSL_ENABLED=1
        USE_BEARSSL="yes"
        ssl_msg="BearSSL"
@@ -28104,6 +28632,8 @@ then :

printf "%s\n" "#define USE_RUSTLS 1" >>confdefs.h

+
          USE_RUSTLS=1
+

          RUSTLS_ENABLED=1
          USE_RUSTLS="yes"
          ssl_msg="rustls"
@@ -28286,6 +28816,7 @@ printf "%s\n" "found" >&6; }
  fi
         $PKGCONFIG --cflags-only-I rustls 2>/dev/null`

+

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&5
printf "%s\n" "$as_me: pkg-config: SSL_LIBS: \"$SSL_LIBS\"" >&6;}
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: pkg-config: SSL_LDFLAGS: \"$SSL_LDFLAGS\"" >&5
@@ -28301,6 +28832,8 @@ printf "%s\n" "$as_me: pkg-config: SSL_CPPFLAGS: \"$SSL_CPPFLAGS\"" >&6;}

printf "%s\n" "#define USE_RUSTLS 1" >>confdefs.h

+
      USE_RUSTLS=1
+

      USE_RUSTLS="yes"
      RUSTLS_ENABLED=1
      test rustls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
@@ -28347,7 +28880,7 @@ printf "%s\n" "$as_me: RUSTLS_ENABLED: $RUSTLS_ENABLED" >&6;}
fi


-
if test "x$USE_WIN32_CRYPTO" = "x1" -o "x$SCHANNEL_ENABLED" = "x1"; then
+
if test "x$USE_WIN32_CRYPTO" = "x1" -o "x$USE_SCHANNEL" = "x1"; then
  LIBS="-ladvapi32 -lcrypt32 $LIBS"
fi

@@ -28362,6 +28895,7 @@ Use --with-openssl, --with-gnutls, --with-wolfssl, --with-mbedtls, --with-schann
    ;;
  x1)
    # one SSL backend is enabled
+

    SSL_ENABLED="1"
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: built with one SSL backend" >&5
printf "%s\n" "$as_me: built with one SSL backend" >&6;}
@@ -28376,7 +28910,9 @@ Since these are conflicting parameters, verify which is the desired one and drop
    ;;
  *)
    # more than one SSL backend is enabled
+

    SSL_ENABLED="1"
+

    CURL_WITH_MULTI_SSL="1"

printf "%s\n" "#define CURL_WITH_MULTI_SSL 1" >>confdefs.h
@@ -28882,10 +29418,12 @@ if test "x$ac_cv_header_libpsl_h" = xyes
then :
  printf "%s\n" "#define HAVE_LIBPSL_H 1" >>confdefs.h
 curl_psl_msg="enabled"
+
        LIBPSL_ENABLED=1

printf "%s\n" "#define USE_LIBPSL 1" >>confdefs.h

        USE_LIBPSL=1
+

        LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libpsl"

fi
@@ -28901,7 +29439,7 @@ else $as_nop
fi


-
  if test "$USE_LIBPSL" != "1"; then
+
  if test "$LIBPSL_ENABLED" != "1"; then
    as_fn_error $? "libpsl libs and/or directories were not found where specified!" "$LINENO" 5
  fi
fi
@@ -29270,20 +29808,22 @@ fi
if test "x$ac_cv_header_libssh2_h" = xyes
then :
  curl_ssh_msg="enabled (libssh2)"
+
    LIBSSH2_ENABLED=1

printf "%s\n" "#define USE_LIBSSH2 1" >>confdefs.h

    USE_LIBSSH2=1

+

fi


  if test X"$OPT_LIBSSH2" != Xoff &&
-
     test "$USE_LIBSSH2" != "1"; then
+
     test "$LIBSSH2_ENABLED" != "1"; then
    as_fn_error $? "libssh2 libs and/or directories were not found where specified!" "$LINENO" 5
  fi

-
  if test "$USE_LIBSSH2" = "1"; then
+
  if test "$LIBSSH2_ENABLED" = "1"; then
    if test -n "$DIR_SSH2"; then

      if test "x$cross_compiling" != "xyes"; then
@@ -29521,20 +30061,22 @@ fi
if test "x$ac_cv_header_libssh_libssh_h" = xyes
then :
  curl_ssh_msg="enabled (libssh)"
+
    LIBSSH_ENABLED=1

printf "%s\n" "#define USE_LIBSSH 1" >>confdefs.h

    USE_LIBSSH=1

+

fi


  if test X"$OPT_LIBSSH" != Xoff &&
-
     test "$USE_LIBSSH" != "1"; then
+
     test "$LIBSSH_ENABLED" != "1"; then
    as_fn_error $? "libssh libs and/or directories were not found where specified!" "$LINENO" 5
  fi

-
  if test "$USE_LIBSSH" = "1"; then
+
  if test "$LIBSSH_ENABLED" = "1"; then
    if test "$curl_cv_native_windows" = "yes"; then
            LIBS="-liphlpapi $LIBS"
    fi
@@ -29619,11 +30161,13 @@ if test "x$ac_cv_header_wolfssh_ssh_h" = xyes
then :
  printf "%s\n" "#define HAVE_WOLFSSH_SSH_H 1" >>confdefs.h
 curl_ssh_msg="enabled (wolfSSH)"
+
    WOLFSSH_ENABLED=1

printf "%s\n" "#define USE_WOLFSSH 1" >>confdefs.h

    USE_WOLFSSH=1

+

fi

done
@@ -29860,10 +30404,12 @@ if test "x$ac_cv_header_librtmp_rtmp_h" = xyes
then :
  printf "%s\n" "#define HAVE_LIBRTMP_RTMP_H 1" >>confdefs.h
 curl_rtmp_msg="enabled (librtmp)"
+
        LIBRTMP_ENABLED=1

printf "%s\n" "#define USE_LIBRTMP 1" >>confdefs.h

        USE_LIBRTMP=1
+

        LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE librtmp"

fi
@@ -29880,7 +30426,7 @@ fi


  if test X"$OPT_LIBRTMP" != Xoff &&
-
     test "$USE_LIBRTMP" != "1"; then
+
     test "$LIBRTMP_ENABLED" != "1"; then
    as_fn_error $? "librtmp libs and/or directories were not found where specified!" "$LINENO" 5
  fi
fi
@@ -29960,36 +30506,29 @@ fi

want_winuni="no"
if test "$curl_cv_native_windows" = "yes"; then
-
  if test "$curl_cv_winuwp" = 'yes'; then
-
    want_winuni="yes"
-
  else
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Windows Unicode (Windows native builds only)" >&5
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Windows Unicode (Windows native builds only)" >&5
printf %s "checking whether to enable Windows Unicode (Windows native builds only)... " >&6; }
-
    # Check whether --enable-windows-unicode was given.
+
  # Check whether --enable-windows-unicode was given.
if test ${enable_windows_unicode+y}
then :
  enableval=$enable_windows_unicode;  case "$enableval" in
-
      yes)
-
        want_winuni="yes"
-
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
    yes)
+
      CPPFLAGS="${CPPFLAGS} -DUNICODE -D_UNICODE"
+
      want_winuni="yes"
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
        ;;
-
      *)
-
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
      ;;
+
    *)
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
        ;;
-
      esac
+
      ;;
+
    esac
else $as_nop
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }

fi

-
  fi
-

-
  if test "$want_winuni" = "yes"; then
-
    CPPFLAGS="${CPPFLAGS} -DUNICODE -D_UNICODE"
-
  fi
fi

 if test "$want_winuni" = "yes"; then
@@ -30100,6 +30639,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
printf "%s\n" "#define USE_WIN32_IDN 1" >>confdefs.h

      IDN_ENABLED=1
+

      curl_idn_msg="enabled (Windows-native)"
    else
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for IDN support: IDN disabled" >&5
@@ -30179,7 +30719,9 @@ then :
printf "%s\n" "#define USE_APPLE_IDN 1" >>confdefs.h

            USE_APPLE_IDN=1
+

            IDN_ENABLED=1
+

            LIBS="-licucore -liconv $LIBS"
            tst_links_appleidn='yes'

@@ -30648,6 +31190,7 @@ printf "%s\n" "#define HAVE_LIBIDN2 1" >>confdefs.h


    IDN_ENABLED=1
+

    curl_idn_msg="enabled (libidn2)"
    if test -n "$IDN_DIR" -a "x$cross_compiling" != "xyes"; then
      CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$IDN_DIR"
@@ -30670,8 +31213,8 @@ fi

OPT_H2="yes"

-
if test "x$disable_http" = "xyes"; then
-
  # without HTTP nghttp2 is no use
+
if test "x$disable_http" = "xyes" -o X"$want_hyper" != Xno; then
+
  # without HTTP or with Hyper, nghttp2 is no use
  OPT_H2="no"
fi

@@ -30935,10 +31478,12 @@ if test "x$ac_cv_header_nghttp2_nghttp2_h" = xyes
then :
  printf "%s\n" "#define HAVE_NGHTTP2_NGHTTP2_H 1" >>confdefs.h
 curl_h2_msg="enabled (nghttp2)"
+
        NGHTTP2_ENABLED=1

printf "%s\n" "#define USE_NGHTTP2 1" >>confdefs.h

        USE_NGHTTP2=1
+

        LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libnghttp2"

fi
@@ -31220,10 +31765,12 @@ do :
if test "x$ac_cv_header_ngtcp2_ngtcp2_h" = xyes
then :
  printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_H 1" >>confdefs.h
+
 NGTCP2_ENABLED=1

printf "%s\n" "#define USE_NGTCP2 1" >>confdefs.h

          USE_NGTCP2=1
+

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_TCP2"
          export CURL_LIBRARY_PATH
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_TCP2 to CURL_LIBRARY_PATH" >&5
@@ -31250,7 +31797,7 @@ fi
  fi
fi

-
if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" != "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" != "x1"; then
    CLEANLDFLAGS="$LDFLAGS"
  CLEANLDFLAGSPC="$LDFLAGSPC"
  CLEANCPPFLAGS="$CPPFLAGS"
@@ -31475,7 +32022,12 @@ do :
if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes
then :
  printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1" >>confdefs.h
-
 USE_NGTCP2=1
+
 NGTCP2_ENABLED=1
+

+
printf "%s\n" "#define USE_NGTCP2_CRYPTO_QUICTLS 1" >>confdefs.h
+

+
          USE_NGTCP2_CRYPTO_QUICTLS=1
+

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_QUICTLS"
          export CURL_LIBRARY_PATH
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_QUICTLS to CURL_LIBRARY_PATH" >&5
@@ -31502,7 +32054,7 @@ fi
  fi
fi

-
if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" = "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" = "x1"; then
    CLEANLDFLAGS="$LDFLAGS"
  CLEANLDFLAGSPC="$LDFLAGSPC"
  CLEANCPPFLAGS="$CPPFLAGS"
@@ -31727,7 +32279,12 @@ do :
if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes
then :
  printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1" >>confdefs.h
-
 USE_NGTCP2=1
+
 NGTCP2_ENABLED=1
+

+
printf "%s\n" "#define USE_NGTCP2_CRYPTO_BORINGSSL 1" >>confdefs.h
+

+
          USE_NGTCP2_CRYPTO_BORINGSSL=1
+

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_BORINGSSL"
          export CURL_LIBRARY_PATH
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_BORINGSSL to CURL_LIBRARY_PATH" >&5
@@ -31754,7 +32311,7 @@ fi
  fi
fi

-
if test "x$USE_NGTCP2" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then
    CLEANLDFLAGS="$LDFLAGS"
  CLEANLDFLAGSPC="$LDFLAGSPC"
  CLEANCPPFLAGS="$CPPFLAGS"
@@ -31979,7 +32536,12 @@ do :
if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes
then :
  printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1" >>confdefs.h
-
 USE_NGTCP2=1
+
 NGTCP2_ENABLED=1
+

+
printf "%s\n" "#define USE_NGTCP2_CRYPTO_GNUTLS 1" >>confdefs.h
+

+
          USE_NGTCP2_CRYPTO_GNUTLS=1
+

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_GNUTLS"
          export CURL_LIBRARY_PATH
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_GNUTLS to CURL_LIBRARY_PATH" >&5
@@ -32006,7 +32568,7 @@ fi
  fi
fi

-
if test "x$USE_NGTCP2" = "x1" -a "x$WOLFSSL_ENABLED" = "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$WOLFSSL_ENABLED" = "x1"; then
    CLEANLDFLAGS="$LDFLAGS"
  CLEANLDFLAGSPC="$LDFLAGSPC"
  CLEANCPPFLAGS="$CPPFLAGS"
@@ -32231,7 +32793,12 @@ do :
if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes
then :
  printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1" >>confdefs.h
-
 USE_NGTCP2=1
+
 NGTCP2_ENABLED=1
+

+
printf "%s\n" "#define USE_NGTCP2_CRYPTO_WOLFSSL 1" >>confdefs.h
+

+
          USE_NGTCP2_CRYPTO_WOLFSSL=1
+

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_WOLFSSL"
          export CURL_LIBRARY_PATH
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_WOLFSSL to CURL_LIBRARY_PATH" >&5
@@ -32285,7 +32852,7 @@ esac
curl_openssl_quic_msg="no      (--with-openssl-quic)"
if test "x$want_openssl_quic" = "xyes"; then

-
  if test "$USE_NGTCP2" = 1; then
+
  if test "$NGTCP2_ENABLED" = 1; then
    as_fn_error $? "--with-openssl-quic and --with-ngtcp2 are mutually exclusive" "$LINENO" 5
  fi
  if test "$have_openssl_quic" != 1; then
@@ -32295,6 +32862,7 @@ if test "x$want_openssl_quic" = "xyes"; then
printf "%s\n" "#define USE_OPENSSL_QUIC 1" >>confdefs.h

  USE_OPENSSL_QUIC=1
+

fi


@@ -32563,6 +33131,7 @@ then :
printf "%s\n" "#define USE_NGHTTP3 1" >>confdefs.h

          USE_NGHTTP3=1
+

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3"
          export CURL_LIBRARY_PATH
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH" >&5
@@ -32590,8 +33159,12 @@ fi
fi


-
if test "x$USE_NGTCP2" = "x1" -a "x$USE_NGHTTP3" = "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$USE_NGHTTP3" = "x1"; then
+

+
printf "%s\n" "#define USE_NGTCP2_H3 1" >>confdefs.h
+

  USE_NGTCP2_H3=1
+

  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: HTTP3 support is experimental" >&5
printf "%s\n" "$as_me: HTTP3 support is experimental" >&6;}
  curl_h3_msg="enabled (ngtcp2 + nghttp3)"
@@ -32600,7 +33173,11 @@ fi

if test "x$USE_OPENSSL_QUIC" = "x1" -a "x$USE_NGHTTP3" = "x1"; then
  experimental="$experimental HTTP3"
+

+
printf "%s\n" "#define USE_OPENSSL_H3 1" >>confdefs.h
+

  USE_OPENSSL_H3=1
+

  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: HTTP3 support is experimental" >&5
printf "%s\n" "$as_me: HTTP3 support is experimental" >&6;}
  curl_h3_msg="enabled (openssl + nghttp3)"
@@ -32878,10 +33455,12 @@ then :
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: HTTP3 support is experimental" >&5
printf "%s\n" "$as_me: HTTP3 support is experimental" >&6;}
          curl_h3_msg="enabled (quiche)"
+
          QUICHE_ENABLED=1

printf "%s\n" "#define USE_QUICHE 1" >>confdefs.h

          USE_QUICHE=1
+

          ac_fn_c_check_func "$LINENO" "quiche_conn_set_qlog_fd" "ac_cv_func_quiche_conn_set_qlog_fd"
if test "x$ac_cv_func_quiche_conn_set_qlog_fd" = xyes
then :
@@ -32953,7 +33532,7 @@ if test X"$want_msh3" != Xno; then
  if test "$NGHTTP3_ENABLED" = 1; then
    as_fn_error $? "--with-msh3 and --with-ngtcp2 are mutually exclusive" "$LINENO" 5
  fi
-
  if test "$USE_QUICHE" = 1; then
+
  if test "$QUICHE_ENABLED" = 1; then
    as_fn_error $? "--with-msh3 and --with-quiche are mutually exclusive" "$LINENO" 5
  fi

@@ -33017,10 +33596,12 @@ if test "x$ac_cv_header_msh3_h" = xyes
then :
  printf "%s\n" "#define HAVE_MSH3_H 1" >>confdefs.h
 curl_h3_msg="enabled (msh3)"
+
        MSH3_ENABLED=1

printf "%s\n" "#define USE_MSH3 1" >>confdefs.h

        USE_MSH3=1
+

        CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_MSH3"
        export CURL_LIBRARY_PATH
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_MSH3 to CURL_LIBRARY_PATH" >&5
@@ -33296,10 +33877,12 @@ do :
if test "x$ac_cv_header_uv_h" = xyes
then :
  printf "%s\n" "#define HAVE_UV_H 1" >>confdefs.h
+
 LIBUV_ENABLED=1

printf "%s\n" "#define USE_LIBUV 1" >>confdefs.h

          USE_LIBUV=1
+

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_LIBUV"
          export CURL_LIBRARY_PATH
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Added $DIR_LIBUV to CURL_LIBRARY_PATH" >&5
@@ -33528,7 +34111,6 @@ fi


ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33561,7 +34143,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33594,7 +34175,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33627,7 +34207,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33660,7 +34239,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33693,7 +34271,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33725,8 +34302,39 @@ then :
  printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h

fi
+
ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "
+
#ifdef HAVE_SYS_TYPES_H
+
#include <sys/types.h>
+
#endif
+
#ifdef HAVE_SYS_TIME_H
+
#include <sys/time.h>
+
#endif
+
#ifdef HAVE_SYS_SELECT_H
+
#include <sys/select.h>
+
#elif defined(HAVE_UNISTD_H)
+
#include <unistd.h>
+
#endif
+
#ifdef HAVE_SYS_SOCKET_H
+
#include <sys/socket.h>
+
#endif
+
#ifdef HAVE_NETINET_IN_H
+
#include <netinet/in.h>
+
#endif
+
#ifdef HAVE_NETINET_IN6_H
+
#include <netinet/in6.h>  /* is this really required to detect other headers? */
+
#endif
+
#ifdef HAVE_SYS_UN_H
+
#include <sys/un.h>  /* is this really required to detect other headers? */
+
#endif
+

+

+
"
+
if test "x$ac_cv_header_stdlib_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h
+

+
fi
ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33759,7 +34367,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33792,7 +34399,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33825,7 +34431,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in6.h" "ac_cv_header_netinet_in6_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33858,7 +34463,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33891,7 +34495,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "linux/tcp.h" "ac_cv_header_linux_tcp_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33924,7 +34527,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "netinet/tcp.h" "ac_cv_header_netinet_tcp_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33957,7 +34559,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "netinet/udp.h" "ac_cv_header_netinet_udp_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -33990,7 +34591,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34023,7 +34623,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34056,7 +34655,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34089,7 +34687,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34122,7 +34719,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "termios.h" "ac_cv_header_termios_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34155,7 +34751,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "termio.h" "ac_cv_header_termio_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34188,7 +34783,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34221,7 +34815,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "io.h" "ac_cv_header_io_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34254,7 +34847,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34287,7 +34879,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "utime.h" "ac_cv_header_utime_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34320,7 +34911,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/utime.h" "ac_cv_header_sys_utime_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34353,7 +34943,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34386,7 +34975,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "poll.h" "ac_cv_header_poll_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34419,7 +35007,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34452,7 +35039,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "libgen.h" "ac_cv_header_libgen_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34485,7 +35071,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "locale.h" "ac_cv_header_locale_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34518,7 +35103,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34551,7 +35135,6 @@ then :

fi
ac_fn_c_check_header_compile "$LINENO" "sys/filio.h" "ac_cv_header_sys_filio_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34583,8 +35166,39 @@ then :
  printf "%s\n" "#define HAVE_SYS_FILIO_H 1" >>confdefs.h

fi
+
ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "
+
#ifdef HAVE_SYS_TYPES_H
+
#include <sys/types.h>
+
#endif
+
#ifdef HAVE_SYS_TIME_H
+
#include <sys/time.h>
+
#endif
+
#ifdef HAVE_SYS_SELECT_H
+
#include <sys/select.h>
+
#elif defined(HAVE_UNISTD_H)
+
#include <unistd.h>
+
#endif
+
#ifdef HAVE_SYS_SOCKET_H
+
#include <sys/socket.h>
+
#endif
+
#ifdef HAVE_NETINET_IN_H
+
#include <netinet/in.h>
+
#endif
+
#ifdef HAVE_NETINET_IN6_H
+
#include <netinet/in6.h>  /* is this really required to detect other headers? */
+
#endif
+
#ifdef HAVE_SYS_UN_H
+
#include <sys/un.h>  /* is this really required to detect other headers? */
+
#endif
+

+

+
"
+
if test "x$ac_cv_header_sys_wait_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
+

+
fi
ac_fn_c_check_header_compile "$LINENO" "sys/eventfd.h" "ac_cv_header_sys_eventfd_h" "
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -34616,6 +35230,38 @@ then :
  printf "%s\n" "#define HAVE_SYS_EVENTFD_H 1" >>confdefs.h

fi
+
ac_fn_c_check_header_compile "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "
+
#ifdef HAVE_SYS_TYPES_H
+
#include <sys/types.h>
+
#endif
+
#ifdef HAVE_SYS_TIME_H
+
#include <sys/time.h>
+
#endif
+
#ifdef HAVE_SYS_SELECT_H
+
#include <sys/select.h>
+
#elif defined(HAVE_UNISTD_H)
+
#include <unistd.h>
+
#endif
+
#ifdef HAVE_SYS_SOCKET_H
+
#include <sys/socket.h>
+
#endif
+
#ifdef HAVE_NETINET_IN_H
+
#include <netinet/in.h>
+
#endif
+
#ifdef HAVE_NETINET_IN6_H
+
#include <netinet/in6.h>  /* is this really required to detect other headers? */
+
#endif
+
#ifdef HAVE_SYS_UN_H
+
#include <sys/un.h>  /* is this really required to detect other headers? */
+
#endif
+

+

+
"
+
if test "x$ac_cv_header_setjmp_h" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SETJMP_H 1" >>confdefs.h
+

+
fi



@@ -34890,32 +35536,27 @@ printf %s "checking size of size_t... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
        #include <sys/types.h>
+
#include <sys/types.h>


int main(void)
{
-

-
        switch(0) {
-
          case 0:
-
          case (sizeof(size_t) == $typesize):;
-
        }
+
switch(0) {
+
      case 0:
+
      case (sizeof(size_t) == $typesize):;
+
    }

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :

-
      r=$typesize
-

+
        r=$typesize
else $as_nop

-
      r=0
-

+
        r=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        if test $r -gt 0; then
@@ -34944,32 +35585,27 @@ printf %s "checking size of long... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
        #include <sys/types.h>
+
#include <sys/types.h>


int main(void)
{
-

-
        switch(0) {
-
          case 0:
-
          case (sizeof(long) == $typesize):;
-
        }
+
switch(0) {
+
      case 0:
+
      case (sizeof(long) == $typesize):;
+
    }

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :

-
      r=$typesize
-

+
        r=$typesize
else $as_nop

-
      r=0
-

+
        r=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        if test $r -gt 0; then
@@ -34998,32 +35634,27 @@ printf %s "checking size of int... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
        #include <sys/types.h>
+
#include <sys/types.h>


int main(void)
{
-

-
        switch(0) {
-
          case 0:
-
          case (sizeof(int) == $typesize):;
-
        }
+
switch(0) {
+
      case 0:
+
      case (sizeof(int) == $typesize):;
+
    }

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :

-
      r=$typesize
-

+
        r=$typesize
else $as_nop

-
      r=0
-

+
        r=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        if test $r -gt 0; then
@@ -35052,32 +35683,27 @@ printf %s "checking size of time_t... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
        #include <sys/types.h>
+
#include <sys/types.h>


int main(void)
{
-

-
        switch(0) {
-
          case 0:
-
          case (sizeof(time_t) == $typesize):;
-
        }
+
switch(0) {
+
      case 0:
+
      case (sizeof(time_t) == $typesize):;
+
    }

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :

-
      r=$typesize
-

+
        r=$typesize
else $as_nop

-
      r=0
-

+
        r=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        if test $r -gt 0; then
@@ -35106,32 +35732,27 @@ printf %s "checking size of off_t... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
        #include <sys/types.h>
+
#include <sys/types.h>


int main(void)
{
-

-
        switch(0) {
-
          case 0:
-
          case (sizeof(off_t) == $typesize):;
-
        }
+
switch(0) {
+
      case 0:
+
      case (sizeof(off_t) == $typesize):;
+
    }

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :

-
      r=$typesize
-

+
        r=$typesize
else $as_nop

-
      r=0
-

+
        r=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        if test $r -gt 0; then
@@ -35163,34 +35784,29 @@ printf %s "checking size of curl_off_t... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
        #include <sys/types.h>
+
#include <sys/types.h>

#include <curl/system.h>


int main(void)
{
-

-
        switch(0) {
-
          case 0:
-
          case (sizeof(curl_off_t) == $typesize):;
-
        }
+
switch(0) {
+
      case 0:
+
      case (sizeof(curl_off_t) == $typesize):;
+
    }

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :

-
      r=$typesize
-

+
        r=$typesize
else $as_nop

-
      r=0
-

+
        r=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        if test $r -gt 0; then
@@ -35219,34 +35835,29 @@ printf %s "checking size of curl_socket_t... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-

-
        #include <sys/types.h>
+
#include <sys/types.h>

#include <curl/curl.h>


int main(void)
{
-

-
        switch(0) {
-
          case 0:
-
          case (sizeof(curl_socket_t) == $typesize):;
-
        }
+
switch(0) {
+
      case 0:
+
      case (sizeof(curl_socket_t) == $typesize):;
+
    }

 ;
 return 0;
}
-

_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :

-
      r=$typesize
-

+
        r=$typesize
else $as_nop

-
      r=0
-

+
        r=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        if test $r -gt 0; then
@@ -35325,7 +35936,7 @@ ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" "
if test "x$ac_cv_type_sa_family_t" = xyes
then :

-
printf "%s\n" "#define HAVE_SA_FAMILY_T 1" >>confdefs.h
+
printf "%s\n" "#define CURL_SA_FAMILY_T sa_family_t" >>confdefs.h

else $as_nop

@@ -35345,7 +35956,11 @@ else $as_nop
if test "x$ac_cv_type_ADDRESS_FAMILY" = xyes
then :

-
printf "%s\n" "#define HAVE_ADDRESS_FAMILY 1" >>confdefs.h
+
printf "%s\n" "#define CURL_SA_FAMILY_T ADDRESS_FAMILY" >>confdefs.h
+

+
else $as_nop
+

+
printf "%s\n" "#define CURL_SA_FAMILY_T unsigned short" >>confdefs.h

fi

@@ -35373,32 +35988,26 @@ printf "%s\n" "#define HAVE_SUSECONDS_T 1" >>confdefs.h
fi


-
case $host_os in
-
  amigaos*|msdos*)
-

-
printf "%s\n" "#define HAVE_TIME_T_UNSIGNED 1" >>confdefs.h
-

-
    ;;
-
  *)
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if time_t is unsigned" >&5
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if time_t is unsigned" >&5
printf %s "checking if time_t is unsigned... " >&6; }

  case $host in
    *-apple-*)
      if test "$cross_compiling" = yes
then :
-
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }

else $as_nop
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-
      #include <time.h>
-
      int main(void) {
-
        time_t t = -1;
-
        return t < 0;
-
      }
+
  #include <time.h>
+
  #include <limits.h>
+
  int main(void) {
+
    time_t t = -1;
+
    return (t < 0);
+
  }

_ACEOF
if ac_fn_c_try_run "$LINENO"
@@ -35427,18 +36036,19 @@ fi
      export LD_LIBRARY_PATH
      if test "$cross_compiling" = yes
then :
-
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }

else $as_nop
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-
      #include <time.h>
-
      int main(void) {
-
        time_t t = -1;
-
        return t < 0;
-
      }
+
  #include <time.h>
+
  #include <limits.h>
+
  int main(void) {
+
    time_t t = -1;
+
    return (t < 0);
+
  }

_ACEOF
if ac_fn_c_try_run "$LINENO"
@@ -35463,8 +36073,6 @@ fi
      ;;
  esac

-
    ;;
-
esac


  ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" "
@@ -36456,6 +37064,7 @@ fi

      #
  tst_links_closesocket_camel="unknown"
+
  tst_proto_closesocket_camel="unknown"
  tst_compi_closesocket_camel="unknown"
  tst_allow_closesocket_camel="unknown"
  #
@@ -36497,6 +37106,35 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
    conftest$ac_exeext conftest.$ac_ext
  #
  if test "$tst_links_closesocket_camel" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is prototyped" >&5
+
printf %s "checking if CloseSocket is prototyped... " >&6; }
+
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+
      $curl_includes_bsdsocket
+
      $curl_includes_sys_socket
+

+
_ACEOF
+
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+
  $EGREP "CloseSocket" >/dev/null 2>&1
+
then :
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_proto_closesocket_camel="yes"
+

+
else $as_nop
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_proto_closesocket_camel="no"
+

+
fi
+
rm -rf conftest*
+

+
  fi
+
  #
+
  if test "$tst_proto_closesocket_camel" = "yes"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is compilable" >&5
printf %s "checking if CloseSocket is compilable... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -36551,6 +37189,7 @@ printf "%s\n" "no" >&6; }
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket might be used" >&5
printf %s "checking if CloseSocket might be used... " >&6; }
  if test "$tst_links_closesocket_camel" = "yes" &&
+
     test "$tst_proto_closesocket_camel" = "yes" &&
     test "$tst_compi_closesocket_camel" = "yes" &&
     test "$tst_allow_closesocket_camel" = "yes"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -37826,6 +38465,152 @@ printf "%s\n" "#define HAVE_GETADDRINFO_THREADSAFE 1" >>confdefs.h
  fi


+
      #
+
  tst_links_gethostbyname="unknown"
+
  tst_proto_gethostbyname="unknown"
+
  tst_compi_gethostbyname="unknown"
+
  tst_allow_gethostbyname="unknown"
+
  #
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname can be linked" >&5
+
printf %s "checking if gethostbyname can be linked... " >&6; }
+
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+
      $curl_includes_winsock2
+
      $curl_includes_bsdsocket
+
      $curl_includes_netdb
+

+
int main(void)
+
{
+

+
      if(0 != gethostbyname(0))
+
        return 1;
+

+
 ;
+
 return 0;
+
}
+

+
_ACEOF
+
if ac_fn_c_try_link "$LINENO"
+
then :
+

+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
    tst_links_gethostbyname="yes"
+

+
else $as_nop
+

+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
    tst_links_gethostbyname="no"
+

+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam \
+
    conftest$ac_exeext conftest.$ac_ext
+
  #
+
  if test "$tst_links_gethostbyname" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is prototyped" >&5
+
printf %s "checking if gethostbyname is prototyped... " >&6; }
+
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+
      $curl_includes_winsock2
+
      $curl_includes_bsdsocket
+
      $curl_includes_netdb
+

+
_ACEOF
+
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+
  $EGREP "gethostbyname" >/dev/null 2>&1
+
then :
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_proto_gethostbyname="yes"
+

+
else $as_nop
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_proto_gethostbyname="no"
+

+
fi
+
rm -rf conftest*
+

+
  fi
+
  #
+
  if test "$tst_proto_gethostbyname" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is compilable" >&5
+
printf %s "checking if gethostbyname is compilable... " >&6; }
+
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+
        $curl_includes_winsock2
+
        $curl_includes_bsdsocket
+
        $curl_includes_netdb
+

+
int main(void)
+
{
+

+
        if(0 != gethostbyname(0))
+
          return 1;
+

+
 ;
+
 return 0;
+
}
+

+
_ACEOF
+
if ac_fn_c_try_compile "$LINENO"
+
then :
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_compi_gethostbyname="yes"
+

+
else $as_nop
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_compi_gethostbyname="no"
+

+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
  fi
+
  #
+
  if test "$tst_compi_gethostbyname" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname usage allowed" >&5
+
printf %s "checking if gethostbyname usage allowed... " >&6; }
+
    if test "x$curl_disallow_gethostbyname" != "xyes"; then
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_allow_gethostbyname="yes"
+
    else
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_allow_gethostbyname="no"
+
    fi
+
  fi
+
  #
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname might be used" >&5
+
printf %s "checking if gethostbyname might be used... " >&6; }
+
  if test "$tst_links_gethostbyname" = "yes" &&
+
     test "$tst_proto_gethostbyname" = "yes" &&
+
     test "$tst_compi_gethostbyname" = "yes" &&
+
     test "$tst_allow_gethostbyname" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+

+
printf "%s\n" "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h
+

+
    curl_cv_func_gethostbyname="yes"
+
  else
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
    curl_cv_func_gethostbyname="no"
+
  fi
+

+

    #
  tst_links_gethostbyname_r="unknown"
  tst_proto_gethostbyname_r="unknown"
@@ -40120,6 +40905,9 @@ printf %s "checking if ioctl might be used... " >&6; }
     test "$tst_allow_ioctl" = "yes"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
+

+
printf "%s\n" "#define HAVE_IOCTL 1" >>confdefs.h
+

    curl_cv_func_ioctl="yes"

  #
@@ -40490,6 +41278,7 @@ printf "%s\n" "no" >&6; }

    #
  tst_links_ioctlsocket_camel="unknown"
+
  tst_proto_ioctlsocket_camel="unknown"
  tst_compi_ioctlsocket_camel="unknown"
  tst_allow_ioctlsocket_camel="unknown"
  #
@@ -40529,6 +41318,34 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
    conftest$ac_exeext conftest.$ac_ext
  #
  if test "$tst_links_ioctlsocket_camel" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is prototyped" >&5
+
printf %s "checking if IoctlSocket is prototyped... " >&6; }
+
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+
      $curl_includes_bsdsocket
+

+
_ACEOF
+
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+
  $EGREP "IoctlSocket" >/dev/null 2>&1
+
then :
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_proto_ioctlsocket_camel="yes"
+

+
else $as_nop
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_proto_ioctlsocket_camel="no"
+

+
fi
+
rm -rf conftest*
+

+
  fi
+
  #
+
  if test "$tst_proto_ioctlsocket_camel" = "yes"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is compilable" >&5
printf %s "checking if IoctlSocket is compilable... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -40582,6 +41399,7 @@ printf "%s\n" "no" >&6; }
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket might be used" >&5
printf %s "checking if IoctlSocket might be used... " >&6; }
  if test "$tst_links_ioctlsocket_camel" = "yes" &&
+
     test "$tst_proto_ioctlsocket_camel" = "yes" &&
     test "$tst_compi_ioctlsocket_camel" = "yes" &&
     test "$tst_allow_ioctlsocket_camel" = "yes"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -41834,6 +42652,306 @@ printf "%s\n" "no" >&6; }


    #
+
  tst_links_strcasecmp="unknown"
+
  tst_proto_strcasecmp="unknown"
+
  tst_compi_strcasecmp="unknown"
+
  tst_allow_strcasecmp="unknown"
+
  #
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp can be linked" >&5
+
printf %s "checking if strcasecmp can be linked... " >&6; }
+
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+
#define strcasecmp innocuous_strcasecmp
+
#ifdef __STDC__
+
# include <limits.h>
+
#else
+
# include <assert.h>
+
#endif
+
#undef strcasecmp
+
#ifdef __cplusplus
+
extern "C"
+
#endif
+
char strcasecmp ();
+
#if defined __stub_strcasecmp || defined __stub___strcasecmp
+
#error force compilation error
+
#endif
+

+
int main(void)
+
{
+
return strcasecmp ();
+
 ;
+
 return 0;
+
}
+

+
_ACEOF
+
if ac_fn_c_try_link "$LINENO"
+
then :
+

+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
    tst_links_strcasecmp="yes"
+

+
else $as_nop
+

+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
    tst_links_strcasecmp="no"
+

+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam \
+
    conftest$ac_exeext conftest.$ac_ext
+
  #
+
  if test "$tst_links_strcasecmp" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is prototyped" >&5
+
printf %s "checking if strcasecmp is prototyped... " >&6; }
+
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+
      $curl_includes_string
+

+
_ACEOF
+
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+
  $EGREP "strcasecmp" >/dev/null 2>&1
+
then :
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_proto_strcasecmp="yes"
+

+
else $as_nop
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_proto_strcasecmp="no"
+

+
fi
+
rm -rf conftest*
+

+
  fi
+
  #
+
  if test "$tst_proto_strcasecmp" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is compilable" >&5
+
printf %s "checking if strcasecmp is compilable... " >&6; }
+
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+
        $curl_includes_string
+

+
int main(void)
+
{
+

+
        if(0 != strcasecmp(0, 0))
+
          return 1;
+

+
 ;
+
 return 0;
+
}
+

+
_ACEOF
+
if ac_fn_c_try_compile "$LINENO"
+
then :
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_compi_strcasecmp="yes"
+

+
else $as_nop
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_compi_strcasecmp="no"
+

+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
  fi
+
  #
+
  if test "$tst_compi_strcasecmp" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp usage allowed" >&5
+
printf %s "checking if strcasecmp usage allowed... " >&6; }
+
    if test "x$curl_disallow_strcasecmp" != "xyes"; then
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_allow_strcasecmp="yes"
+
    else
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_allow_strcasecmp="no"
+
    fi
+
  fi
+
  #
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp might be used" >&5
+
printf %s "checking if strcasecmp might be used... " >&6; }
+
  if test "$tst_links_strcasecmp" = "yes" &&
+
     test "$tst_proto_strcasecmp" = "yes" &&
+
     test "$tst_compi_strcasecmp" = "yes" &&
+
     test "$tst_allow_strcasecmp" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+

+
printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h
+

+
    curl_cv_func_strcasecmp="yes"
+
  else
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
    curl_cv_func_strcasecmp="no"
+
  fi
+

+

+
    #
+
  tst_links_strcmpi="unknown"
+
  tst_proto_strcmpi="unknown"
+
  tst_compi_strcmpi="unknown"
+
  tst_allow_strcmpi="unknown"
+
  #
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi can be linked" >&5
+
printf %s "checking if strcmpi can be linked... " >&6; }
+
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+
#define strcmpi innocuous_strcmpi
+
#ifdef __STDC__
+
# include <limits.h>
+
#else
+
# include <assert.h>
+
#endif
+
#undef strcmpi
+
#ifdef __cplusplus
+
extern "C"
+
#endif
+
char strcmpi ();
+
#if defined __stub_strcmpi || defined __stub___strcmpi
+
#error force compilation error
+
#endif
+

+
int main(void)
+
{
+
return strcmpi ();
+
 ;
+
 return 0;
+
}
+

+
_ACEOF
+
if ac_fn_c_try_link "$LINENO"
+
then :
+

+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
    tst_links_strcmpi="yes"
+

+
else $as_nop
+

+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
    tst_links_strcmpi="no"
+

+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam \
+
    conftest$ac_exeext conftest.$ac_ext
+
  #
+
  if test "$tst_links_strcmpi" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi is prototyped" >&5
+
printf %s "checking if strcmpi is prototyped... " >&6; }
+
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+
      $curl_includes_string
+

+
_ACEOF
+
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+
  $EGREP "strcmpi" >/dev/null 2>&1
+
then :
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_proto_strcmpi="yes"
+

+
else $as_nop
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_proto_strcmpi="no"
+

+
fi
+
rm -rf conftest*
+

+
  fi
+
  #
+
  if test "$tst_proto_strcmpi" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi is compilable" >&5
+
printf %s "checking if strcmpi is compilable... " >&6; }
+
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
/* end confdefs.h.  */
+

+

+
        $curl_includes_string
+

+
int main(void)
+
{
+

+
        if(0 != strcmpi(0, 0))
+
          return 1;
+

+
 ;
+
 return 0;
+
}
+

+
_ACEOF
+
if ac_fn_c_try_compile "$LINENO"
+
then :
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_compi_strcmpi="yes"
+

+
else $as_nop
+

+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_compi_strcmpi="no"
+

+
fi
+
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
  fi
+
  #
+
  if test "$tst_compi_strcmpi" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi usage allowed" >&5
+
printf %s "checking if strcmpi usage allowed... " >&6; }
+
    if test "x$curl_disallow_strcmpi" != "xyes"; then
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
      tst_allow_strcmpi="yes"
+
    else
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      tst_allow_strcmpi="no"
+
    fi
+
  fi
+
  #
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi might be used" >&5
+
printf %s "checking if strcmpi might be used... " >&6; }
+
  if test "$tst_links_strcmpi" = "yes" &&
+
     test "$tst_proto_strcmpi" = "yes" &&
+
     test "$tst_compi_strcmpi" = "yes" &&
+
     test "$tst_allow_strcmpi" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+

+
printf "%s\n" "#define HAVE_STRCMPI 1" >>confdefs.h
+

+
    curl_cv_func_strcmpi="yes"
+
  else
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
    curl_cv_func_strcmpi="no"
+
  fi
+

+

+
    #
  tst_links_strdup="unknown"
  tst_proto_strdup="unknown"
  tst_compi_strdup="unknown"
@@ -42513,481 +43631,35 @@ printf "%s\n" "$as_me: WARNING: cannot determine strerror_r() style: edit lib/cu


    #
-
  tst_links_strtok_r="unknown"
-
  tst_proto_strtok_r="unknown"
-
  tst_compi_strtok_r="unknown"
-
  tst_allow_strtok_r="unknown"
-
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r can be linked" >&5
-
printf %s "checking if strtok_r can be linked... " >&6; }
-
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-
/* end confdefs.h.  */
-

-

-
#define strtok_r innocuous_strtok_r
-
#ifdef __STDC__
-
# include <limits.h>
-
#else
-
# include <assert.h>
-
#endif
-
#undef strtok_r
-
#ifdef __cplusplus
-
extern "C"
-
#endif
-
char strtok_r ();
-
#if defined __stub_strtok_r || defined __stub___strtok_r
-
#error force compilation error
-
#endif
-

-
int main(void)
-
{
-
return strtok_r ();
-
 ;
-
 return 0;
-
}
-

-
_ACEOF
-
if ac_fn_c_try_link "$LINENO"
-
then :
-

-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
    tst_links_strtok_r="yes"
-

-
else $as_nop
-

-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
    tst_links_strtok_r="no"
-

-
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.beam \
-
    conftest$ac_exeext conftest.$ac_ext
-
  #
-
  if test "$tst_links_strtok_r" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r is prototyped" >&5
-
printf %s "checking if strtok_r is prototyped... " >&6; }
-
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-
/* end confdefs.h.  */
-

-
      $curl_includes_string
-

-
_ACEOF
-
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-
  $EGREP "strtok_r" >/dev/null 2>&1
-
then :
-

-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
      tst_proto_strtok_r="yes"
-

-
else $as_nop
-

-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
      tst_proto_strtok_r="no"
-

-
fi
-
rm -rf conftest*
-

-
  fi
-
  #
-
  if test "$tst_proto_strtok_r" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r is compilable" >&5
-
printf %s "checking if strtok_r is compilable... " >&6; }
-
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-
/* end confdefs.h.  */
-

-

-
        $curl_includes_string
-

-
int main(void)
-
{
-

-
        if(0 != strtok_r(0, 0, 0))
-
          return 1;
-

-
 ;
-
 return 0;
-
}
-

-
_ACEOF
-
if ac_fn_c_try_compile "$LINENO"
-
then :
-

-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
      tst_compi_strtok_r="yes"
-

-
else $as_nop
-

-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
      tst_compi_strtok_r="no"
-

-
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
  fi
-
  #
-
  if test "$tst_compi_strtok_r" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r usage allowed" >&5
-
printf %s "checking if strtok_r usage allowed... " >&6; }
-
    if test "x$curl_disallow_strtok_r" != "xyes"; then
-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
      tst_allow_strtok_r="yes"
-
    else
-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
      tst_allow_strtok_r="no"
-
    fi
-
  fi
-
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r might be used" >&5
-
printf %s "checking if strtok_r might be used... " >&6; }
-
  if test "$tst_links_strtok_r" = "yes" &&
-
     test "$tst_proto_strtok_r" = "yes" &&
-
     test "$tst_compi_strtok_r" = "yes" &&
-
     test "$tst_allow_strtok_r" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-

-
printf "%s\n" "#define HAVE_STRTOK_R 1" >>confdefs.h
-

-
    curl_cv_func_strtok_r="yes"
-
  else
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
    curl_cv_func_strtok_r="no"
-
  fi
-

-

-
    #
-
  tst_links_strtoll="unknown"
-
  tst_proto_strtoll="unknown"
-
  tst_compi_strtoll="unknown"
-
  tst_allow_strtoll="unknown"
-
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll can be linked" >&5
-
printf %s "checking if strtoll can be linked... " >&6; }
-
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-
/* end confdefs.h.  */
-

-

-
#define strtoll innocuous_strtoll
-
#ifdef __STDC__
-
# include <limits.h>
-
#else
-
# include <assert.h>
-
#endif
-
#undef strtoll
-
#ifdef __cplusplus
-
extern "C"
-
#endif
-
char strtoll ();
-
#if defined __stub_strtoll || defined __stub___strtoll
-
#error force compilation error
-
#endif
-

-
int main(void)
-
{
-
return strtoll ();
-
 ;
-
 return 0;
-
}
-

-
_ACEOF
-
if ac_fn_c_try_link "$LINENO"
-
then :
-

-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
    tst_links_strtoll="yes"
-

-
else $as_nop
-

-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
    tst_links_strtoll="no"
-

-
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.beam \
-
    conftest$ac_exeext conftest.$ac_ext
-
  #
-
  if test "$tst_links_strtoll" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll is prototyped" >&5
-
printf %s "checking if strtoll is prototyped... " >&6; }
-
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-
/* end confdefs.h.  */
-

-
      $curl_includes_stdlib
-

-
_ACEOF
-
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-
  $EGREP "strtoll" >/dev/null 2>&1
-
then :
-

-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
      tst_proto_strtoll="yes"
-

-
else $as_nop
-

-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
      tst_proto_strtoll="no"
-

-
fi
-
rm -rf conftest*
-

-
  fi
-
  #
-
  if test "$tst_proto_strtoll" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll is compilable" >&5
-
printf %s "checking if strtoll is compilable... " >&6; }
-
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-
/* end confdefs.h.  */
-

-

-
        $curl_includes_stdlib
-

-
int main(void)
-
{
-

-
        if(0 != strtoll(0, 0, 0))
-
          return 1;
-

-
 ;
-
 return 0;
-
}
-

-
_ACEOF
-
if ac_fn_c_try_compile "$LINENO"
-
then :
-

-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
      tst_compi_strtoll="yes"
-

-
else $as_nop
-

-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
      tst_compi_strtoll="no"
-

-
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
  fi
-
  #
-
  if test "$tst_compi_strtoll" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll usage allowed" >&5
-
printf %s "checking if strtoll usage allowed... " >&6; }
-
    if test "x$curl_disallow_strtoll" != "xyes"; then
-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-
      tst_allow_strtoll="yes"
-
    else
-
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
      tst_allow_strtoll="no"
-
    fi
-
  fi
-
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll might be used" >&5
-
printf %s "checking if strtoll might be used... " >&6; }
-
  if test "$tst_links_strtoll" = "yes" &&
-
     test "$tst_proto_strtoll" = "yes" &&
-
     test "$tst_compi_strtoll" = "yes" &&
-
     test "$tst_allow_strtoll" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-
printf "%s\n" "yes" >&6; }
-

-
printf "%s\n" "#define HAVE_STRTOLL 1" >>confdefs.h
-

-
    curl_cv_func_strtoll="yes"
-
  else
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-
printf "%s\n" "no" >&6; }
-
    curl_cv_func_strtoll="no"
-
  fi
-

-

-
case $host in
-
  *msdosdjgpp)
-
    ac_cv_func_pipe=no
-
    skipcheck_pipe=yes
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: skip check for pipe on msdosdjgpp" >&5
-
printf "%s\n" "$as_me: skip check for pipe on msdosdjgpp" >&6;}
-
    ;;
-
esac
-

-
ac_fn_c_check_func "$LINENO" "eventfd" "ac_cv_func_eventfd"
-
if test "x$ac_cv_func_eventfd" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_EVENTFD 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "fnmatch" "ac_cv_func_fnmatch"
-
if test "x$ac_cv_func_fnmatch" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_FNMATCH 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "geteuid" "ac_cv_func_geteuid"
-
if test "x$ac_cv_func_geteuid" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_GETEUID 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "getpass_r" "ac_cv_func_getpass_r"
-
if test "x$ac_cv_func_getpass_r" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_GETPASS_R 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "getppid" "ac_cv_func_getppid"
-
if test "x$ac_cv_func_getppid" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_GETPPID 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "getpwuid" "ac_cv_func_getpwuid"
-
if test "x$ac_cv_func_getpwuid" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_GETPWUID 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "getpwuid_r" "ac_cv_func_getpwuid_r"
-
if test "x$ac_cv_func_getpwuid_r" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_GETPWUID_R 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit"
-
if test "x$ac_cv_func_getrlimit" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_GETRLIMIT 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
-
if test "x$ac_cv_func_gettimeofday" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex"
-
if test "x$ac_cv_func_if_nametoindex" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "mach_absolute_time" "ac_cv_func_mach_absolute_time"
-
if test "x$ac_cv_func_mach_absolute_time" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_MACH_ABSOLUTE_TIME 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "pipe" "ac_cv_func_pipe"
-
if test "x$ac_cv_func_pipe" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll"
-
if test "x$ac_cv_func_poll" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "sendmsg" "ac_cv_func_sendmsg"
-
if test "x$ac_cv_func_sendmsg" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_SENDMSG 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "sendmmsg" "ac_cv_func_sendmmsg"
-
if test "x$ac_cv_func_sendmmsg" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_SENDMMSG 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale"
-
if test "x$ac_cv_func_setlocale" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_SETLOCALE 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "setmode" "ac_cv_func_setmode"
-
if test "x$ac_cv_func_setmode" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_SETMODE 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit"
-
if test "x$ac_cv_func_setrlimit" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_SETRLIMIT 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
-
if test "x$ac_cv_func_snprintf" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "utime" "ac_cv_func_utime"
-
if test "x$ac_cv_func_utime" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_UTIME 1" >>confdefs.h
-

-
fi
-
ac_fn_c_check_func "$LINENO" "utimes" "ac_cv_func_utimes"
-
if test "x$ac_cv_func_utimes" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_UTIMES 1" >>confdefs.h
-

-
fi
-

-

-
if test "$curl_cv_native_windows" != 'yes'; then
-
  ac_fn_c_check_func "$LINENO" "sched_yield" "ac_cv_func_sched_yield"
-
if test "x$ac_cv_func_sched_yield" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h
-

-
fi
-

-

-
    #
-
  tst_links_strcasecmp="unknown"
-
  tst_proto_strcasecmp="unknown"
-
  tst_compi_strcasecmp="unknown"
-
  tst_allow_strcasecmp="unknown"
+
  tst_links_stricmp="unknown"
+
  tst_proto_stricmp="unknown"
+
  tst_compi_stricmp="unknown"
+
  tst_allow_stricmp="unknown"
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp can be linked" >&5
-
printf %s "checking if strcasecmp can be linked... " >&6; }
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp can be linked" >&5
+
printf %s "checking if stricmp can be linked... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


-
#define strcasecmp innocuous_strcasecmp
+
#define stricmp innocuous_stricmp
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
-
#undef strcasecmp
+
#undef stricmp
#ifdef __cplusplus
extern "C"
#endif
-
char strcasecmp ();
-
#if defined __stub_strcasecmp || defined __stub___strcasecmp
+
char stricmp ();
+
#if defined __stub_stricmp || defined __stub___stricmp
#error force compilation error
#endif

int main(void)
{
-
return strcasecmp ();
+
return stricmp ();
 ;
 return 0;
}
@@ -42998,21 +43670,21 @@ then :

    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
    tst_links_strcasecmp="yes"
+
    tst_links_stricmp="yes"

else $as_nop

    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
    tst_links_strcasecmp="no"
+
    tst_links_stricmp="no"

fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
    conftest$ac_exeext conftest.$ac_ext
  #
-
  if test "$tst_links_strcasecmp" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is prototyped" >&5
-
printf %s "checking if strcasecmp is prototyped... " >&6; }
+
  if test "$tst_links_stricmp" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp is prototyped" >&5
+
printf %s "checking if stricmp is prototyped... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

@@ -43020,27 +43692,27 @@ printf %s "checking if strcasecmp is prototyped... " >&6; }

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-
  $EGREP "strcasecmp" >/dev/null 2>&1
+
  $EGREP "stricmp" >/dev/null 2>&1
then :

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_proto_strcasecmp="yes"
+
      tst_proto_stricmp="yes"

else $as_nop

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_proto_strcasecmp="no"
+
      tst_proto_stricmp="no"

fi
rm -rf conftest*

  fi
  #
-
  if test "$tst_proto_strcasecmp" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is compilable" >&5
-
printf %s "checking if strcasecmp is compilable... " >&6; }
+
  if test "$tst_proto_stricmp" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp is compilable" >&5
+
printf %s "checking if stricmp is compilable... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

@@ -43050,7 +43722,7 @@ printf %s "checking if strcasecmp is compilable... " >&6; }
int main(void)
{

-
        if(0 != strcasecmp(0, 0))
+
        if(0 != stricmp(0, 0))
          return 1;

 ;
@@ -43063,81 +43735,81 @@ then :

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_compi_strcasecmp="yes"
+
      tst_compi_stricmp="yes"

else $as_nop

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_compi_strcasecmp="no"
+
      tst_compi_stricmp="no"

fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
  fi
  #
-
  if test "$tst_compi_strcasecmp" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp usage allowed" >&5
-
printf %s "checking if strcasecmp usage allowed... " >&6; }
-
    if test "x$curl_disallow_strcasecmp" != "xyes"; then
+
  if test "$tst_compi_stricmp" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp usage allowed" >&5
+
printf %s "checking if stricmp usage allowed... " >&6; }
+
    if test "x$curl_disallow_stricmp" != "xyes"; then
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_allow_strcasecmp="yes"
+
      tst_allow_stricmp="yes"
    else
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_allow_strcasecmp="no"
+
      tst_allow_stricmp="no"
    fi
  fi
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp might be used" >&5
-
printf %s "checking if strcasecmp might be used... " >&6; }
-
  if test "$tst_links_strcasecmp" = "yes" &&
-
     test "$tst_proto_strcasecmp" = "yes" &&
-
     test "$tst_compi_strcasecmp" = "yes" &&
-
     test "$tst_allow_strcasecmp" = "yes"; then
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp might be used" >&5
+
printf %s "checking if stricmp might be used... " >&6; }
+
  if test "$tst_links_stricmp" = "yes" &&
+
     test "$tst_proto_stricmp" = "yes" &&
+
     test "$tst_compi_stricmp" = "yes" &&
+
     test "$tst_allow_stricmp" = "yes"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }

-
printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h
+
printf "%s\n" "#define HAVE_STRICMP 1" >>confdefs.h

-
    curl_cv_func_strcasecmp="yes"
+
    curl_cv_func_stricmp="yes"
  else
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
    curl_cv_func_strcasecmp="no"
+
    curl_cv_func_stricmp="no"
  fi


    #
-
  tst_links_strcmpi="unknown"
-
  tst_proto_strcmpi="unknown"
-
  tst_compi_strcmpi="unknown"
-
  tst_allow_strcmpi="unknown"
+
  tst_links_strtok_r="unknown"
+
  tst_proto_strtok_r="unknown"
+
  tst_compi_strtok_r="unknown"
+
  tst_allow_strtok_r="unknown"
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi can be linked" >&5
-
printf %s "checking if strcmpi can be linked... " >&6; }
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r can be linked" >&5
+
printf %s "checking if strtok_r can be linked... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


-
#define strcmpi innocuous_strcmpi
+
#define strtok_r innocuous_strtok_r
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
-
#undef strcmpi
+
#undef strtok_r
#ifdef __cplusplus
extern "C"
#endif
-
char strcmpi ();
-
#if defined __stub_strcmpi || defined __stub___strcmpi
+
char strtok_r ();
+
#if defined __stub_strtok_r || defined __stub___strtok_r
#error force compilation error
#endif

int main(void)
{
-
return strcmpi ();
+
return strtok_r ();
 ;
 return 0;
}
@@ -43148,21 +43820,21 @@ then :

    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
    tst_links_strcmpi="yes"
+
    tst_links_strtok_r="yes"

else $as_nop

    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
    tst_links_strcmpi="no"
+
    tst_links_strtok_r="no"

fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
    conftest$ac_exeext conftest.$ac_ext
  #
-
  if test "$tst_links_strcmpi" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi is prototyped" >&5
-
printf %s "checking if strcmpi is prototyped... " >&6; }
+
  if test "$tst_links_strtok_r" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r is prototyped" >&5
+
printf %s "checking if strtok_r is prototyped... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

@@ -43170,27 +43842,27 @@ printf %s "checking if strcmpi is prototyped... " >&6; }

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-
  $EGREP "strcmpi" >/dev/null 2>&1
+
  $EGREP "strtok_r" >/dev/null 2>&1
then :

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_proto_strcmpi="yes"
+
      tst_proto_strtok_r="yes"

else $as_nop

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_proto_strcmpi="no"
+
      tst_proto_strtok_r="no"

fi
rm -rf conftest*

  fi
  #
-
  if test "$tst_proto_strcmpi" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi is compilable" >&5
-
printf %s "checking if strcmpi is compilable... " >&6; }
+
  if test "$tst_proto_strtok_r" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r is compilable" >&5
+
printf %s "checking if strtok_r is compilable... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

@@ -43200,7 +43872,7 @@ printf %s "checking if strcmpi is compilable... " >&6; }
int main(void)
{

-
        if(0 != strcmpi(0, 0))
+
        if(0 != strtok_r(0, 0, 0))
          return 1;

 ;
@@ -43213,81 +43885,81 @@ then :

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_compi_strcmpi="yes"
+
      tst_compi_strtok_r="yes"

else $as_nop

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_compi_strcmpi="no"
+
      tst_compi_strtok_r="no"

fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
  fi
  #
-
  if test "$tst_compi_strcmpi" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi usage allowed" >&5
-
printf %s "checking if strcmpi usage allowed... " >&6; }
-
    if test "x$curl_disallow_strcmpi" != "xyes"; then
+
  if test "$tst_compi_strtok_r" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r usage allowed" >&5
+
printf %s "checking if strtok_r usage allowed... " >&6; }
+
    if test "x$curl_disallow_strtok_r" != "xyes"; then
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_allow_strcmpi="yes"
+
      tst_allow_strtok_r="yes"
    else
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_allow_strcmpi="no"
+
      tst_allow_strtok_r="no"
    fi
  fi
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi might be used" >&5
-
printf %s "checking if strcmpi might be used... " >&6; }
-
  if test "$tst_links_strcmpi" = "yes" &&
-
     test "$tst_proto_strcmpi" = "yes" &&
-
     test "$tst_compi_strcmpi" = "yes" &&
-
     test "$tst_allow_strcmpi" = "yes"; then
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtok_r might be used" >&5
+
printf %s "checking if strtok_r might be used... " >&6; }
+
  if test "$tst_links_strtok_r" = "yes" &&
+
     test "$tst_proto_strtok_r" = "yes" &&
+
     test "$tst_compi_strtok_r" = "yes" &&
+
     test "$tst_allow_strtok_r" = "yes"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }

-
printf "%s\n" "#define HAVE_STRCMPI 1" >>confdefs.h
+
printf "%s\n" "#define HAVE_STRTOK_R 1" >>confdefs.h

-
    curl_cv_func_strcmpi="yes"
+
    curl_cv_func_strtok_r="yes"
  else
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
    curl_cv_func_strcmpi="no"
+
    curl_cv_func_strtok_r="no"
  fi


    #
-
  tst_links_stricmp="unknown"
-
  tst_proto_stricmp="unknown"
-
  tst_compi_stricmp="unknown"
-
  tst_allow_stricmp="unknown"
+
  tst_links_strtoll="unknown"
+
  tst_proto_strtoll="unknown"
+
  tst_compi_strtoll="unknown"
+
  tst_allow_strtoll="unknown"
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp can be linked" >&5
-
printf %s "checking if stricmp can be linked... " >&6; }
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll can be linked" >&5
+
printf %s "checking if strtoll can be linked... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


-
#define stricmp innocuous_stricmp
+
#define strtoll innocuous_strtoll
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
-
#undef stricmp
+
#undef strtoll
#ifdef __cplusplus
extern "C"
#endif
-
char stricmp ();
-
#if defined __stub_stricmp || defined __stub___stricmp
+
char strtoll ();
+
#if defined __stub_strtoll || defined __stub___strtoll
#error force compilation error
#endif

int main(void)
{
-
return stricmp ();
+
return strtoll ();
 ;
 return 0;
}
@@ -43298,59 +43970,59 @@ then :

    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
    tst_links_stricmp="yes"
+
    tst_links_strtoll="yes"

else $as_nop

    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
    tst_links_stricmp="no"
+
    tst_links_strtoll="no"

fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
    conftest$ac_exeext conftest.$ac_ext
  #
-
  if test "$tst_links_stricmp" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp is prototyped" >&5
-
printf %s "checking if stricmp is prototyped... " >&6; }
+
  if test "$tst_links_strtoll" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll is prototyped" >&5
+
printf %s "checking if strtoll is prototyped... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

-
      $curl_includes_string
+
      $curl_includes_stdlib

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-
  $EGREP "stricmp" >/dev/null 2>&1
+
  $EGREP "strtoll" >/dev/null 2>&1
then :

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_proto_stricmp="yes"
+
      tst_proto_strtoll="yes"

else $as_nop

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_proto_stricmp="no"
+
      tst_proto_strtoll="no"

fi
rm -rf conftest*

  fi
  #
-
  if test "$tst_proto_stricmp" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp is compilable" >&5
-
printf %s "checking if stricmp is compilable... " >&6; }
+
  if test "$tst_proto_strtoll" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll is compilable" >&5
+
printf %s "checking if strtoll is compilable... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


-
        $curl_includes_string
+
        $curl_includes_stdlib

int main(void)
{

-
        if(0 != stricmp(0, 0))
+
        if(0 != strtoll(0, 0, 0))
          return 1;

 ;
@@ -43363,82 +44035,61 @@ then :

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_compi_stricmp="yes"
+
      tst_compi_strtoll="yes"

else $as_nop

      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_compi_stricmp="no"
+
      tst_compi_strtoll="no"

fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
  fi
  #
-
  if test "$tst_compi_stricmp" = "yes"; then
-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp usage allowed" >&5
-
printf %s "checking if stricmp usage allowed... " >&6; }
-
    if test "x$curl_disallow_stricmp" != "xyes"; then
+
  if test "$tst_compi_strtoll" = "yes"; then
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll usage allowed" >&5
+
printf %s "checking if strtoll usage allowed... " >&6; }
+
    if test "x$curl_disallow_strtoll" != "xyes"; then
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-
      tst_allow_stricmp="yes"
+
      tst_allow_strtoll="yes"
    else
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
      tst_allow_stricmp="no"
+
      tst_allow_strtoll="no"
    fi
  fi
  #
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp might be used" >&5
-
printf %s "checking if stricmp might be used... " >&6; }
-
  if test "$tst_links_stricmp" = "yes" &&
-
     test "$tst_proto_stricmp" = "yes" &&
-
     test "$tst_compi_stricmp" = "yes" &&
-
     test "$tst_allow_stricmp" = "yes"; then
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strtoll might be used" >&5
+
printf %s "checking if strtoll might be used... " >&6; }
+
  if test "$tst_links_strtoll" = "yes" &&
+
     test "$tst_proto_strtoll" = "yes" &&
+
     test "$tst_compi_strtoll" = "yes" &&
+
     test "$tst_allow_strtoll" = "yes"; then
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }

-
printf "%s\n" "#define HAVE_STRICMP 1" >>confdefs.h
+
printf "%s\n" "#define HAVE_STRTOLL 1" >>confdefs.h

-
    curl_cv_func_stricmp="yes"
+
    curl_cv_func_strtoll="yes"
  else
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
-
    curl_cv_func_stricmp="no"
+
    curl_cv_func_strtoll="no"
  fi

-
fi
-

-
if test "$curl_cv_native_windows" = 'yes' -o "$curl_cv_cygwin" = 'yes'; then
-
  ac_fn_c_check_func "$LINENO" "_setmode" "ac_cv_func__setmode"
-
if test "x$ac_cv_func__setmode" = xyes
-
then :
-
  printf "%s\n" "#define HAVE__SETMODE 1" >>confdefs.h
-

-
fi
-

-
fi
-

-
if test -z "$ssl_backends"; then
-
  ac_fn_c_check_func "$LINENO" "arc4random" "ac_cv_func_arc4random"
-
if test "x$ac_cv_func_arc4random" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_ARC4RANDOM 1" >>confdefs.h
-

-
fi
-

-
fi
-

-
if test "$curl_cv_native_windows" != 'yes'; then
-
  ac_fn_c_check_func "$LINENO" "fseeko" "ac_cv_func_fseeko"
-
if test "x$ac_cv_func_fseeko" = xyes
-
then :
-
  printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h
-

-
fi

+
case $host in
+
  *msdosdjgpp)
+
    ac_cv_func_pipe=no
+
    skipcheck_pipe=yes
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: skip check for pipe on msdosdjgpp" >&5
+
printf "%s\n" "$as_me: skip check for pipe on msdosdjgpp" >&6;}
+
    ;;
+
esac

-
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
if test ${ac_cv_c_undeclared_builtin_options+y}
then :
@@ -43516,7 +44167,190 @@ See \`config.log' for more details" "$LINENO" 5; } ;; #(
    ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
esac

-
ac_fn_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "#include <stdio.h>
+
ac_fn_check_decl "$LINENO" "getpwuid_r" "ac_cv_have_decl_getpwuid_r" "#include <pwd.h>
+
          #include <sys/types.h>
+
" "$ac_c_undeclared_builtin_options" "CFLAGS"
+
if test "x$ac_cv_have_decl_getpwuid_r" = xyes
+
then :
+
  ac_have_decl=1
+
else $as_nop
+
  ac_have_decl=0
+
fi
+
printf "%s\n" "#define HAVE_DECL_GETPWUID_R $ac_have_decl" >>confdefs.h
+
if test $ac_have_decl = 1
+
then :
+

+
else $as_nop
+

+
printf "%s\n" "#define HAVE_DECL_GETPWUID_R_MISSING 1" >>confdefs.h
+

+
fi
+

+

+
ac_fn_c_check_func "$LINENO" "eventfd" "ac_cv_func_eventfd"
+
if test "x$ac_cv_func_eventfd" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_EVENTFD 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "fnmatch" "ac_cv_func_fnmatch"
+
if test "x$ac_cv_func_fnmatch" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_FNMATCH 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "geteuid" "ac_cv_func_geteuid"
+
if test "x$ac_cv_func_geteuid" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_GETEUID 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "getpass_r" "ac_cv_func_getpass_r"
+
if test "x$ac_cv_func_getpass_r" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_GETPASS_R 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "getppid" "ac_cv_func_getppid"
+
if test "x$ac_cv_func_getppid" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_GETPPID 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "getpwuid" "ac_cv_func_getpwuid"
+
if test "x$ac_cv_func_getpwuid" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_GETPWUID 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "getpwuid_r" "ac_cv_func_getpwuid_r"
+
if test "x$ac_cv_func_getpwuid_r" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_GETPWUID_R 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit"
+
if test "x$ac_cv_func_getrlimit" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_GETRLIMIT 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
+
if test "x$ac_cv_func_gettimeofday" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex"
+
if test "x$ac_cv_func_if_nametoindex" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "mach_absolute_time" "ac_cv_func_mach_absolute_time"
+
if test "x$ac_cv_func_mach_absolute_time" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_MACH_ABSOLUTE_TIME 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "pipe" "ac_cv_func_pipe"
+
if test "x$ac_cv_func_pipe" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll"
+
if test "x$ac_cv_func_poll" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "sched_yield" "ac_cv_func_sched_yield"
+
if test "x$ac_cv_func_sched_yield" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "sendmsg" "ac_cv_func_sendmsg"
+
if test "x$ac_cv_func_sendmsg" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SENDMSG 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "sendmmsg" "ac_cv_func_sendmmsg"
+
if test "x$ac_cv_func_sendmmsg" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SENDMMSG 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale"
+
if test "x$ac_cv_func_setlocale" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SETLOCALE 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "setmode" "ac_cv_func_setmode"
+
if test "x$ac_cv_func_setmode" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SETMODE 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit"
+
if test "x$ac_cv_func_setrlimit" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SETRLIMIT 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
+
if test "x$ac_cv_func_snprintf" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "utime" "ac_cv_func_utime"
+
if test "x$ac_cv_func_utime" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_UTIME 1" >>confdefs.h
+

+
fi
+
ac_fn_c_check_func "$LINENO" "utimes" "ac_cv_func_utimes"
+
if test "x$ac_cv_func_utimes" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_UTIMES 1" >>confdefs.h
+

+
fi
+

+

+
if test "$curl_cv_native_windows" = 'yes' -o "$curl_cv_cygwin" = 'yes'; then
+
  ac_fn_c_check_func "$LINENO" "_setmode" "ac_cv_func__setmode"
+
if test "x$ac_cv_func__setmode" = xyes
+
then :
+
  printf "%s\n" "#define HAVE__SETMODE 1" >>confdefs.h
+

+
fi
+

+
fi
+

+
if test -z "$ssl_backends"; then
+
  ac_fn_c_check_func "$LINENO" "arc4random" "ac_cv_func_arc4random"
+
if test "x$ac_cv_func_arc4random" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_ARC4RANDOM 1" >>confdefs.h
+

+
fi
+

+
fi
+

+
if test "$curl_cv_native_windows" != 'yes'; then
+
  ac_fn_c_check_func "$LINENO" "fseeko" "ac_cv_func_fseeko"
+
if test "x$ac_cv_func_fseeko" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h
+

+
fi
+

+

+
        ac_fn_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "#include <stdio.h>
" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_fseeko" = xyes
then :
@@ -44020,13 +44854,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \

printf "%s\n" "#define USE_ARES 1" >>confdefs.h

+

+
printf "%s\n" "#define CARES_NO_DEPRECATED 1" >>confdefs.h
+

      USE_ARES=1
+

      LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libcares"
      curl_res_msg="c-ares"
    fi
  fi


+
if test "x$want_ares" != xyes; then
+

  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable the threaded resolver" >&5
printf %s "checking whether to enable the threaded resolver... " >&6; }
  OPT_THRES="default"
@@ -44038,31 +44878,17 @@ fi

  case "$OPT_THRES" in
    no)
-
            want_threaded_resolver="no"
-
      ;;
-
    yes)
-
            want_threaded_resolver="yes"
+
            want_thres="no"
      ;;
    *)
-
            case $host_os in
-
        msdos* | amiga*)
-
          want_threaded_resolver="no"
-
          ;;
-
        *)
-
          if test "$want_ares" = "yes"; then
-
            want_threaded_resolver="no"
-
          else
-
            want_threaded_resolver="yes"
-
          fi
-
          ;;
-
      esac
+
            want_thres="yes"
      ;;
  esac
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_threaded_resolver" >&5
-
printf "%s\n" "$want_threaded_resolver" >&6; }
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_thres" >&5
+
printf "%s\n" "$want_thres" >&6; }


-
if test "$ipv6" = yes; then
+
  if test "$ipv6" = yes; then

{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to link macOS CoreFoundation, CoreServices, and SystemConfiguration frameworks" >&5
printf %s "checking whether to link macOS CoreFoundation, CoreServices, and SystemConfiguration frameworks... " >&6; }
@@ -44116,21 +44942,70 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "no" >&6; }
esac

+
  fi
fi

-
if test "$want_threaded_resolver" = "yes" && test "$dontwant_rt" = "yes"; then
-
  as_fn_error $? "options --enable-pthreads and --disable-rt are mutually exclusive" "$LINENO" 5
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use POSIX threads for threaded resolver" >&5
+
printf %s "checking whether to use POSIX threads for threaded resolver... " >&6; }
+
# Check whether --enable-pthreads was given.
+
if test ${enable_pthreads+y}
+
then :
+
  enableval=$enable_pthreads;  case "$enableval" in
+
  no)
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
    want_pthreads=no
+
    ;;
+
  *)
+
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
printf "%s\n" "yes" >&6; }
+
    want_pthreads=yes
+
    ;;
+
  esac
+
else $as_nop
+

+
    default_pthreads=1
+
    if test "$curl_cv_native_windows" = "yes"; then
+
      default_pthreads=0
+
    else
+
      case $host_os in
+
        msdos*)
+
          default_pthreads=0
+
          ;;
+
      esac
+
    fi
+
    if test "$default_pthreads" = '0'; then
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
printf "%s\n" "no" >&6; }
+
      want_pthreads=no
+
    else
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: auto" >&5
+
printf "%s\n" "auto" >&6; }
+
      want_pthreads=auto
+
    fi
+

+

fi

-
if test "$want_threaded_resolver" = "yes" && test "$curl_cv_native_windows" = "yes"; then
-
  USE_THREADS_WIN32=1

-
printf "%s\n" "#define USE_THREADS_WIN32 1" >>confdefs.h
+
if test "$want_pthreads" != "no"; then
+
  if test "$want_pthreads" = "yes" && test "$dontwant_rt" = "yes"; then
+
    as_fn_error $? "options --enable-pthreads and --disable-rt are mutually exclusive" "$LINENO" 5
+
  fi
+
  if test "$dontwant_rt" != "no"; then
+
        if test "$want_pthreads" = "yes"; then
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --enable-pthreads Ignored since librt is disabled." >&5
+
printf "%s\n" "$as_me: WARNING: --enable-pthreads Ignored since librt is disabled." >&2;}
+
    fi
+
    want_pthreads=no
+
  fi
+
fi

-
  curl_res_msg="Win32 threaded"
+
if test "$want_pthreads" != "no" && test "$want_thres" != "yes"; then
+
  want_pthreads=no
fi

-
if test "$want_threaded_resolver" = "yes" && test "$USE_THREADS_WIN32" != "1"; then
+
if test "$want_pthreads" != "no"; then
  ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
if test "x$ac_cv_header_pthread_h" = xyes
then :
@@ -44232,8 +45107,19 @@ fi

fi

-
if test "$want_threaded_resolver" != "no" -a "x$USE_THREADS_POSIX" != "x1" -a "x$USE_THREADS_WIN32" != "x1"; then
-
  as_fn_error $? "Threaded resolver enabled but no thread library found" "$LINENO" 5
+
if test "$want_thres" = "yes" && test "x$USE_THREADS_POSIX" != "x1"; then
+
  if test "$want_pthreads" = "yes"; then
+
    as_fn_error $? "--enable-pthreads but pthreads was not found" "$LINENO" 5
+
  fi
+
    if test "$curl_cv_native_windows" = "yes"; then
+
    USE_THREADS_WIN32=1
+

+
printf "%s\n" "#define USE_THREADS_WIN32 1" >>confdefs.h
+

+
    curl_res_msg="Win32 threaded"
+
  else
+
    as_fn_error $? "Threaded resolver enabled but no thread library found" "$LINENO" 5
+
  fi
fi

ac_fn_c_check_header_compile "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default"
@@ -44338,6 +45224,7 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define USE_WINDOWS_SSPI 1" >>confdefs.h

      USE_WINDOWS_SSPI=1
+

      curl_sspi_msg="enabled"
    else
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -44382,6 +45269,7 @@ printf "%s\n" "no" >&6; }

printf "%s\n" "#define CURL_DISABLE_BASIC_AUTH 1" >>confdefs.h

+
    CURL_DISABLE_BASIC_AUTH=1
    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -44407,6 +45295,7 @@ printf "%s\n" "no" >&6; }

printf "%s\n" "#define CURL_DISABLE_BEARER_AUTH 1" >>confdefs.h

+
    CURL_DISABLE_BEARER_AUTH=1
    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -44432,6 +45321,7 @@ printf "%s\n" "no" >&6; }

printf "%s\n" "#define CURL_DISABLE_DIGEST_AUTH 1" >>confdefs.h

+
    CURL_DISABLE_DIGEST_AUTH=1
    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -44509,6 +45399,7 @@ printf "%s\n" "no" >&6; }

printf "%s\n" "#define CURL_DISABLE_AWS 1" >>confdefs.h

+
    CURL_DISABLE_AWS=1
    ;;
  *)
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -44626,6 +45517,7 @@ then :
printf "%s\n" "#define USE_UNIX_SOCKETS 1" >>confdefs.h

      USE_UNIX_SOCKETS=1
+

      curl_unix_sockets_msg="enabled"

else $as_nop
@@ -45066,6 +45958,15 @@ printf "%s\n" "#define CURL_DISABLE_HSTS 1" >>confdefs.h
fi


+
if test "x$want_httpsrr" != "xno"; then
+
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: HTTPSRR support is available" >&5
+
printf "%s\n" "HTTPSRR support is available" >&6; }
+

+
printf "%s\n" "#define USE_HTTPSRR 1" >>confdefs.h
+

+
  experimental="$experimental HTTPSRR"
+
fi
+

if test "x$want_ech" != "xno"; then
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ECH support is available" >&5
printf %s "checking whether ECH support is available... " >&6; }
@@ -45075,6 +45976,20 @@ printf %s "checking whether ECH support is available... " >&6; }

    if test "x$OPENSSL_ENABLED" = "x1"; then

+
  for ac_func in SSL_ech_set1_echconfig
+
do :
+
  ac_fn_c_check_func "$LINENO" "SSL_ech_set1_echconfig" "ac_cv_func_SSL_ech_set1_echconfig"
+
if test "x$ac_cv_func_SSL_ech_set1_echconfig" = xyes
+
then :
+
  printf "%s\n" "#define HAVE_SSL_ECH_SET1_ECHCONFIG 1" >>confdefs.h
+
 ECH_SUPPORT="ECH support available via OpenSSL with SSL_ech_set1_echconfig"
+
      ECH_ENABLED=1
+
fi
+

+
done
+
  fi
+
    if test "x$OPENSSL_ENABLED" = "x1"; then
+

  for ac_func in SSL_set1_ech_config_list
do :
  ac_fn_c_check_func "$LINENO" "SSL_set1_ech_config_list" "ac_cv_func_SSL_set1_ech_config_list"
@@ -45109,23 +46024,11 @@ printf "%s\n" "#define USE_ECH 1" >>confdefs.h
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ECH_SUPPORT" >&5
printf "%s\n" "$ECH_SUPPORT" >&6; }
    experimental="$experimental ECH"
-
        want_httpsrr="yes"
  else
    as_fn_error $? "--enable-ech ignored: No ECH support found" "$LINENO" 5
  fi
fi

-
if test "x$want_httpsrr" != "xno"; then
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: HTTPSRR support is enabled" >&5
-
printf "%s\n" "HTTPSRR support is enabled" >&6; }
-

-
printf "%s\n" "#define USE_HTTPSRR 1" >>confdefs.h
-

-
  experimental="$experimental HTTPSRR"
-
  curl_httpsrr_msg="enabled (--disable-httpsrr)"
-
fi
-

-

if test "x$OPENSSL_ENABLED" = "x1"; then
  ac_fn_c_check_func "$LINENO" "SSL_set0_wbio" "ac_cv_func_SSL_set0_wbio"
if test "x$ac_cv_func_SSL_set0_wbio" = xyes
@@ -45150,6 +46053,7 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "#define CURL_DISABLE_WEBSOCKETS 1" >>confdefs.h

      CURL_DISABLE_WEBSOCKETS=1
+

      ;;
    *)
      if test ${ac_cv_sizeof_curl_off_t} -gt 4; then
@@ -45164,6 +46068,7 @@ printf "%s\n" "$as_me: WARNING: WebSockets disabled due to lack of >32 bit curl_
printf "%s\n" "#define CURL_DISABLE_WEBSOCKETS 1" >>confdefs.h

        CURL_DISABLE_WEBSOCKETS=1
+

      fi
      ;;
    esac
@@ -45180,26 +46085,7 @@ printf "%s\n" "$as_me: WARNING: WebSockets disabled because HTTP is disabled" >&
printf "%s\n" "#define CURL_DISABLE_WEBSOCKETS 1" >>confdefs.h

  CURL_DISABLE_WEBSOCKETS=1
-
fi
-

-
if test "x$want_ssls_export" != "xno"; then
-
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether SSL session export support is available" >&5
-
printf %s "checking whether SSL session export support is available... " >&6; }
-

-
    SSLS_EXPORT_ENABLED=0
-
  SSLS_EXPORT_SUPPORT=''
-

-
  if test "x$SSL_ENABLED" != "x1"; then
-
    as_fn_error $? "--enable-ssls-export ignored: No SSL support" "$LINENO" 5
-
  else
-
    SSLS_EXPORT_ENABLED=1
-

-
printf "%s\n" "#define USE_SSLS_EXPORT 1" >>confdefs.h

-
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"SSL session im-/export enabled\"" >&5
-
printf "%s\n" "\"SSL session im-/export enabled\"" >&6; }
-
    experimental="$experimental SSLS-EXPORT"
-
  fi
fi


@@ -45254,6 +46140,7 @@ LIBCURL_PC_LIBS_PRIVATE="$LIBS$PTHREAD"



+

BLANK_AT_MAKETIME=


@@ -45314,9 +46201,6 @@ if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1" \
                            -o "x$USE_THREADS_WIN32" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
fi
-
if test "x$USE_ARES" = "x1" -a "$want_threaded_resolver" = "yes"; then
-
  SUPPORT_FEATURES="$SUPPORT_FEATURES asyn-rr"
-
fi
if test "x$IDN_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES IDN"
fi
@@ -45428,14 +46312,6 @@ if test "x$OPENSSL_ENABLED" = "x1" -o -n "$SSL_ENABLED"; then
  fi
fi

-
if test "x$want_httpsrr" != "xno"; then
-
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTPSRR"
-
fi
-

-
if test "x$SSLS_EXPORT_ENABLED" = "x1"; then
-
  SUPPORT_FEATURES="$SUPPORT_FEATURES SSLS-EXPORT"
-
fi
-

if test ${ac_cv_sizeof_curl_off_t} -gt 4; then
  if test ${ac_cv_sizeof_off_t} -gt 4 -o \
     "$curl_win32_file_api" = "win32_large_files"; then
@@ -45606,6 +46482,7 @@ squeeze LIBS

squeeze LIBCURL_PC_LDFLAGS_PRIVATE
squeeze LIBCURL_PC_LIBS_PRIVATE
+
squeeze CURL_NETWORK_LIBS
squeeze CURL_NETWORK_AND_TIME_LIBS

squeeze SUPPORT_FEATURES
@@ -45959,10 +46836,6 @@ if test -z "${DOING_NATIVE_WINDOWS_TRUE}" && test -z "${DOING_NATIVE_WINDOWS_FAL
  as_fn_error $? "conditional \"DOING_NATIVE_WINDOWS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-
if test -z "${CURL_WERROR_TRUE}" && test -z "${CURL_WERROR_FALSE}"; then
-
  as_fn_error $? "conditional \"CURL_WERROR\" was never defined.
-
Usually this means the macro was only invoked conditionally." "$LINENO" 5
-
fi
if test -z "${BUILD_UNITTESTS_TRUE}" && test -z "${BUILD_UNITTESTS_FALSE}"; then
  as_fn_error $? "conditional \"BUILD_UNITTESTS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -48482,8 +49355,6 @@ SUPPORT_PROTOCOLS_LOWER=`echo "$SUPPORT_PROTOCOLS" | tr A-Z a-z`
  HTTP2:            ${curl_h2_msg}
  HTTP3:            ${curl_h3_msg}
  ECH:              ${curl_ech_msg}
-
  HTTPS RR:         ${curl_httpsrr_msg}
-
  SSLS-EXPORT:      ${curl_ssls_export_msg}
  Protocols:        ${SUPPORT_PROTOCOLS_LOWER}
  Features:         ${SUPPORT_FEATURES}
" >&5
@@ -48536,8 +49407,6 @@ printf "%s\n" "$as_me: Configured to build curl/libcurl:
  HTTP2:            ${curl_h2_msg}
  HTTP3:            ${curl_h3_msg}
  ECH:              ${curl_ech_msg}
-
  HTTPS RR:         ${curl_httpsrr_msg}
-
  SSLS-EXPORT:      ${curl_ssls_export_msg}
  Protocols:        ${SUPPORT_PROTOCOLS_LOWER}
  Features:         ${SUPPORT_FEATURES}
" >&6;}
@@ -48563,36 +49432,23 @@ fi
  case $host in
    *-apple-*) curl_pflags="${curl_pflags} APPLE";;
  esac
-
  case $host in
-
    *-*-*bsd*|*-*-aix*|*-*-hpux*|*-*-interix*|*-*-irix*|*-*-linux*|*-*-solaris*|*-*-sunos*|*-apple-*|*-*-cygwin*|*-*-msys*)
-
      curl_pflags="${curl_pflags} UNIX";;
-
  esac
-
  case $host in
-
    *-*-*bsd*)
-
      curl_pflags="${curl_pflags} BSD";;
-
  esac
-
  case $host in
-
    *-*-android*)
-
      curl_pflags="${curl_pflags} ANDROID"
-
      ANDROID_PLATFORM_LEVEL=`echo "$host_os" | $SED -ne 's/.*android\([0-9]*\).*/\1/p'`
-
      if test -n "${ANDROID_PLATFORM_LEVEL}"; then
-
        curl_pflags="${curl_pflags}-${ANDROID_PLATFORM_LEVEL}"
-
      fi
-
      ;;
-
  esac
  if test "$curl_cv_native_windows" = 'yes'; then
    curl_pflags="${curl_pflags} WIN32"
-
  fi
-
  if test "$curl_cv_winuwp" = 'yes'; then
-
    curl_pflags="${curl_pflags} UWP"
+
  else
+
    case $host in
+
      *-*-*bsd*|*-*-aix*|*-*-hpux*|*-*-interix*|*-*-irix*|*-*-linux*|*-*-solaris*|*-*-sunos*|*-apple-*|*-*-cygwin*|*-*-msys*)
+
        curl_pflags="${curl_pflags} UNIX";;
+
    esac
+
    case $host in
+
      *-*-*bsd*)
+
        curl_pflags="${curl_pflags} BSD";;
+
    esac
  fi
  if test "$curl_cv_cygwin" = 'yes'; then
    curl_pflags="${curl_pflags} CYGWIN"
  fi
  case $host_os in
    msys*) curl_pflags="${curl_pflags} MSYS";;
-
    msdos*) curl_pflags="${curl_pflags} DOS";;
-
    amiga*) curl_pflags="${curl_pflags} AMIGA";;
  esac
  if test "x$compiler_id" = 'xGNU_C'; then
    curl_pflags="${curl_pflags} GCC"
modified external/curl/configure.ac
@@ -54,7 +54,6 @@ CURL_CHECK_OPTION_ARES
CURL_CHECK_OPTION_RT
CURL_CHECK_OPTION_HTTPSRR
CURL_CHECK_OPTION_ECH
-
CURL_CHECK_OPTION_SSLS_EXPORT

XC_CHECK_PATH_SEPARATOR

@@ -140,6 +139,14 @@ dnl we extract the numerical version for curl-config only
VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\([0-9A-Fa-f]*\).*/\1/p' ${srcdir}/include/curl/curlver.h`
AC_SUBST(VERSIONNUM)

+
dnl Solaris pkgadd support definitions
+
PKGADD_PKG="HAXXcurl"
+
PKGADD_NAME="curl - a client that groks URLs"
+
PKGADD_VENDOR="curl.se"
+
AC_SUBST(PKGADD_PKG)
+
AC_SUBST(PKGADD_NAME)
+
AC_SUBST(PKGADD_VENDOR)
+

dnl
dnl initialize all the info variables
    curl_ssl_msg="no      (--with-{openssl,gnutls,mbedtls,wolfssl,schannel,secure-transport,amissl,bearssl,rustls} )"
@@ -324,16 +331,17 @@ AS_HELP_STRING([--with-test-vsftpd=PATH],[where to find vsftpd for testing]),
)
AC_SUBST(VSFTPD)

-
dnl we'd like a httpd as test server
+
dnl we'd like a httpd+apachectl as test server
dnl
HTTPD_ENABLED="maybe"
AC_ARG_WITH(test-httpd, [AS_HELP_STRING([--with-test-httpd=PATH],
                         [where to find httpd/apache2 for testing])],
  [request_httpd=$withval], [request_httpd=check])
if test x"$request_httpd" = "xcheck" -o x"$request_httpd" = "xyes"; then
-
  if test -x "/usr/sbin/apache2"; then
+
  if test -x "/usr/sbin/apache2" -a -x "/usr/sbin/apache2ctl"; then
    # common location on distros (debian/ubuntu)
    HTTPD="/usr/sbin/apache2"
+
    APACHECTL="/usr/sbin/apache2ctl"
    AC_PATH_PROG([APXS], [apxs])
    if test "x$APXS" = "x"; then
      AC_MSG_NOTICE([apache2-dev not installed, httpd tests disabled])
@@ -344,8 +352,9 @@ if test x"$request_httpd" = "xcheck" -o x"$request_httpd" = "xyes"; then
    if test "x$HTTPD" = "x"; then
      AC_PATH_PROG([HTTPD], [apache2])
    fi
+
    AC_PATH_PROG([APACHECTL], [apachectl])
    AC_PATH_PROG([APXS], [apxs])
-
    if test "x$HTTPD" = "x"; then
+
    if test "x$HTTPD" = "x" -o "x$APACHECTL" = "x"; then
      AC_MSG_NOTICE([httpd/apache2 not in PATH, http tests disabled])
      HTTPD_ENABLED="no"
    fi
@@ -356,10 +365,14 @@ if test x"$request_httpd" = "xcheck" -o x"$request_httpd" = "xyes"; then
  fi
elif test x"$request_httpd" != "xno"; then
  HTTPD="${request_httpd}/bin/httpd"
+
  APACHECTL="${request_httpd}/bin/apachectl"
  APXS="${request_httpd}/bin/apxs"
  if test ! -x "${HTTPD}"; then
    AC_MSG_NOTICE([httpd not found as ${HTTPD}, http tests disabled])
    HTTPD_ENABLED="no"
+
  elif test ! -x "${APACHECTL}"; then
+
    AC_MSG_NOTICE([apachectl not found as ${APACHECTL}, http tests disabled])
+
    HTTPD_ENABLED="no"
  elif test ! -x "${APXS}"; then
    AC_MSG_NOTICE([apxs not found as ${APXS}, http tests disabled])
    HTTPD_ENABLED="no"
@@ -369,9 +382,11 @@ elif test x"$request_httpd" != "xno"; then
fi
if test x"$HTTPD_ENABLED" = "xno"; then
  HTTPD=""
+
  APACHECTL=""
  APXS=""
fi
AC_SUBST(HTTPD)
+
AC_SUBST(APACHECTL)
AC_SUBST(APXS)

dnl the nghttpx we might use in httpd testing
@@ -492,14 +507,6 @@ dnl **********************************************************************

CURL_CHECK_COMPILER
CURL_CHECK_NATIVE_WINDOWS
-

-
curl_cv_winuwp='no'
-
if test "$curl_cv_native_windows" = "yes"; then
-
  case "$CPPFLAGS" in
-
    *-DWINSTORECOMPAT*) curl_cv_winuwp='yes';;
-
  esac
-
fi
-

CURL_SET_COMPILER_BASIC_OPTS
CURL_SET_COMPILER_DEBUG_OPTS
CURL_SET_COMPILER_OPTIMIZE_OPTS
@@ -531,7 +538,6 @@ if test X"$want_werror" = Xyes; then
  fi
fi
AC_SUBST(CURL_CFLAG_EXTRAS)
-
AM_CONDITIONAL(CURL_WERROR, test X"$want_werror" = Xyes)

CURL_CHECK_COMPILER_HALT_ON_ERROR
CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
@@ -671,15 +677,15 @@ AS_HELP_STRING([--disable-http],[Disable HTTP support]),
    AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP])
    disable_http="yes"
    AC_MSG_WARN([disable HTTP disables FTP over proxy, IPFS and RTSP])
-
    CURL_DISABLE_HTTP=1
+
    AC_SUBST(CURL_DISABLE_HTTP, [1])
    AC_DEFINE(CURL_DISABLE_IPFS, 1, [to disable IPFS])
-
    CURL_DISABLE_IPFS=1
+
    AC_SUBST(CURL_DISABLE_IPFS, [1])
    AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
-
    CURL_DISABLE_RTSP=1
+
    AC_SUBST(CURL_DISABLE_RTSP, [1])
    dnl toggle off alt-svc too when HTTP is disabled
    AC_DEFINE(CURL_DISABLE_ALTSVC, 1, [disable alt-svc])
    AC_DEFINE(CURL_DISABLE_HSTS, 1, [disable HSTS])
-
    curl_h1_msg="no      (--enable-http)"
+
    curl_h1_msg="no      (--enable-http, --with-hyper)"
    curl_altsvc_msg="no";
    curl_hsts_msg="no      (--enable-hsts)";
    enable_altsvc="no"
@@ -699,7 +705,7 @@ AS_HELP_STRING([--disable-ftp],[Disable FTP support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_FTP, 1, [to disable FTP])
-
    CURL_DISABLE_FTP=1
+
    AC_SUBST(CURL_DISABLE_FTP, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -715,7 +721,7 @@ AS_HELP_STRING([--disable-file],[Disable FILE support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_FILE, 1, [to disable FILE])
-
    CURL_DISABLE_FILE=1
+
    AC_SUBST(CURL_DISABLE_FILE, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -731,7 +737,7 @@ AS_HELP_STRING([--disable-ipfs],[Disable IPFS support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_IPFS, 1, [to disable IPFS])
-
    CURL_DISABLE_IPFS=1
+
    AC_SUBST(CURL_DISABLE_IPFS, [1])
    ;;
  *)
    if test x$CURL_DISABLE_HTTP = x1; then
@@ -757,7 +763,7 @@ AS_HELP_STRING([--disable-ldap],[Disable LDAP support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
-
    CURL_DISABLE_LDAP=1
+
    AC_SUBST(CURL_DISABLE_LDAP, [1])
    ;;
  yes)
    ldap_askedfor="yes"
@@ -777,40 +783,138 @@ AS_HELP_STRING([--disable-ldaps],[Disable LDAPS support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
-
    CURL_DISABLE_LDAPS=1
+
    AC_SUBST(CURL_DISABLE_LDAPS, [1])
    ;;
  *)
    if test "x$CURL_DISABLE_LDAP" = "x1"; then
      AC_MSG_RESULT(LDAP needs to be enabled to support LDAPS)
      AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
-
      CURL_DISABLE_LDAPS=1
+
      AC_SUBST(CURL_DISABLE_LDAPS, [1])
    else
      AC_MSG_RESULT(yes)
      AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
-
      HAVE_LDAP_SSL=1
+
      AC_SUBST(HAVE_LDAP_SSL, [1])
    fi
    ;;
  esac ],[
    if test "x$CURL_DISABLE_LDAP" = "x1"; then
      AC_MSG_RESULT(no)
      AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
-
      CURL_DISABLE_LDAPS=1
+
      AC_SUBST(CURL_DISABLE_LDAPS, [1])
    else
      AC_MSG_RESULT(yes)
      AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
-
      HAVE_LDAP_SSL=1
+
      AC_SUBST(HAVE_LDAP_SSL, [1])
    fi ]
)

-
AC_MSG_CHECKING([whether to support rtsp])
-
AC_ARG_ENABLE(rtsp,
+
dnl **********************************************************************
+
dnl Check for Hyper
+
dnl **********************************************************************
+

+
OPT_HYPER="no"
+

+
AC_ARG_WITH(hyper,
+
AS_HELP_STRING([--with-hyper=PATH],[Enable hyper usage])
+
AS_HELP_STRING([--without-hyper],[Disable hyper usage]),
+
  [OPT_HYPER=$withval])
+
case "$OPT_HYPER" in
+
  no)
+
    dnl --without-hyper option used
+
    want_hyper="no"
+
    ;;
+
  yes)
+
    dnl --with-hyper option used without path
+
    want_hyper="default"
+
    want_hyper_path=""
+
    ;;
+
  *)
+
    dnl --with-hyper option used with path
+
    want_hyper="yes"
+
    want_hyper_path="$withval"
+
    ;;
+
esac
+

+
if test X"$want_hyper" != Xno; then
+
  if test "x$disable_http" = "xyes"; then
+
    AC_MSG_ERROR([--with-hyper is not compatible with --disable-http])
+
  fi
+

+
  dnl backup the pre-hyper variables
+
  CLEANLDFLAGS="$LDFLAGS"
+
  CLEANCPPFLAGS="$CPPFLAGS"
+
  CLEANLIBS="$LIBS"
+

+
  CURL_CHECK_PKGCONFIG(hyper, $want_hyper_path)
+

+
  if test "$PKGCONFIG" != "no"; then
+
    LIB_HYPER=`CURL_EXPORT_PCDIR([$want_hyper_path])
+
      $PKGCONFIG --libs-only-l hyper`
+
    CPP_HYPER=`CURL_EXPORT_PCDIR([$want_hyper_path]) dnl
+
      $PKGCONFIG --cflags-only-I hyper`
+
    LD_HYPER=`CURL_EXPORT_PCDIR([$want_hyper_path])
+
      $PKGCONFIG --libs-only-L hyper`
+
  else
+
    dnl no hyper pkg-config found
+
    LIB_HYPER="-lhyper -ldl -lpthread -lm"
+
    if test X"$want_hyper" != Xdefault; then
+
      CPP_HYPER=-I"$want_hyper_path/capi/include"
+
      LD_HYPER="-L$want_hyper_path/target/release -L$want_hyper_path/target/debug"
+
    fi
+
  fi
+
  if test -n "$LIB_HYPER"; then
+
    AC_MSG_NOTICE([-l is $LIB_HYPER])
+
    AC_MSG_NOTICE([-I is $CPP_HYPER])
+
    AC_MSG_NOTICE([-L is $LD_HYPER])
+

+
    LDFLAGS="$LDFLAGS $LD_HYPER"
+
    CPPFLAGS="$CPPFLAGS $CPP_HYPER"
+
    LIBS="$LIB_HYPER $LIBS"
+

+
    if test "x$cross_compiling" != "xyes"; then
+
      dnl remove -L, separate with colon if more than one
+
      DIR_HYPER=`echo $LD_HYPER | $SED -e 's/^-L//' -e 's/ -L/:/g'`
+
    fi
+

+
    AC_CHECK_LIB(hyper, hyper_io_new,
+
      [
+
        AC_CHECK_HEADERS(hyper.h,
+
          experimental="$experimental Hyper"
+
          AC_MSG_NOTICE([Hyper support is experimental])
+
          curl_h1_msg="enabled (Hyper)"
+
          HYPER_ENABLED=1
+
          AC_DEFINE(USE_HYPER, 1, [if hyper is in use])
+
          AC_SUBST(USE_HYPER, [1])
+
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_HYPER"
+
          export CURL_LIBRARY_PATH
+
          AC_MSG_NOTICE([Added $DIR_HYPER to CURL_LIBRARY_PATH])
+
          LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE hyper"
+
        )
+
      ],
+
      for d in `echo $DIR_HYPER | $SED -e 's/:/ /'`; do
+
        if test -f "$d/libhyper.a"; then
+
          AC_MSG_ERROR([hyper was found in $d but was probably built with wrong flags. See docs/HYPER.md.])
+
        fi
+
      done
+
      AC_MSG_ERROR([--with-hyper but hyper was not found. See docs/HYPER.md.])
+
    )
+
  fi
+
fi
+

+
if test X"$want_hyper" != Xno; then
+
  AC_MSG_NOTICE([Disable RTSP support with hyper])
+
  AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
+
  AC_SUBST(CURL_DISABLE_RTSP, [1])
+
else
+
  AC_MSG_CHECKING([whether to support rtsp])
+
  AC_ARG_ENABLE(rtsp,
AS_HELP_STRING([--enable-rtsp],[Enable RTSP support])
AS_HELP_STRING([--disable-rtsp],[Disable RTSP support]),
  [ case "$enableval" in
-
      no)
+
    no)
      AC_MSG_RESULT(no)
      AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP])
-
      CURL_DISABLE_RTSP=1
+
      AC_SUBST(CURL_DISABLE_RTSP, [1])
      ;;
    *)
      if test x$CURL_DISABLE_HTTP = x1; then
@@ -827,7 +931,8 @@ AS_HELP_STRING([--disable-rtsp],[Disable RTSP support]),
      else
        AC_MSG_RESULT(no)
      fi
-
)
+
  )
+
fi

AC_MSG_CHECKING([whether to support proxies])
AC_ARG_ENABLE(proxy,
@@ -837,7 +942,7 @@ AS_HELP_STRING([--disable-proxy],[Disable proxy support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_PROXY, 1, [to disable proxies])
-
    CURL_DISABLE_PROXY=1
+
    AC_SUBST(CURL_DISABLE_PROXY, [1])
    https_proxy="no"
    ;;
  *)
@@ -855,7 +960,7 @@ AS_HELP_STRING([--disable-dict],[Disable DICT support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_DICT, 1, [to disable DICT])
-
    CURL_DISABLE_DICT=1
+
    AC_SUBST(CURL_DISABLE_DICT, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -872,7 +977,7 @@ AS_HELP_STRING([--disable-telnet],[Disable TELNET support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_TELNET, 1, [to disable TELNET])
-
    CURL_DISABLE_TELNET=1
+
    AC_SUBST(CURL_DISABLE_TELNET, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -881,11 +986,6 @@ AS_HELP_STRING([--disable-telnet],[Disable TELNET support]),
    AC_MSG_RESULT(yes)
)

-
if test "$curl_cv_winuwp" = 'yes'; then
-
  AC_DEFINE(CURL_DISABLE_TELNET, 1, [to disable TELNET])
-
  CURL_DISABLE_TELNET=1
-
fi
-

AC_MSG_CHECKING([whether to support tftp])
AC_ARG_ENABLE(tftp,
AS_HELP_STRING([--enable-tftp],[Enable TFTP support])
@@ -894,7 +994,7 @@ AS_HELP_STRING([--disable-tftp],[Disable TFTP support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_TFTP, 1, [to disable TFTP])
-
    CURL_DISABLE_TFTP=1
+
    AC_SUBST(CURL_DISABLE_TFTP, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -911,7 +1011,7 @@ AS_HELP_STRING([--disable-pop3],[Disable POP3 support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_POP3, 1, [to disable POP3])
-
    CURL_DISABLE_POP3=1
+
    AC_SUBST(CURL_DISABLE_POP3, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -928,7 +1028,7 @@ AS_HELP_STRING([--disable-imap],[Disable IMAP support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_IMAP, 1, [to disable IMAP])
-
    CURL_DISABLE_IMAP=1
+
    AC_SUBST(CURL_DISABLE_IMAP, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -945,7 +1045,7 @@ AS_HELP_STRING([--disable-smb],[Disable SMB/CIFS support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_SMB, 1, [to disable SMB/CIFS])
-
    CURL_DISABLE_SMB=1
+
    AC_SUBST(CURL_DISABLE_SMB, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -962,7 +1062,7 @@ AS_HELP_STRING([--disable-smtp],[Disable SMTP support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_SMTP, 1, [to disable SMTP])
-
    CURL_DISABLE_SMTP=1
+
    AC_SUBST(CURL_DISABLE_SMTP, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -979,7 +1079,7 @@ AS_HELP_STRING([--disable-gopher],[Disable Gopher support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_GOPHER, 1, [to disable Gopher])
-
    CURL_DISABLE_GOPHER=1
+
    AC_SUBST(CURL_DISABLE_GOPHER, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -996,7 +1096,7 @@ AS_HELP_STRING([--disable-mqtt],[Disable MQTT support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_MQTT, 1, [to disable MQTT])
-
    CURL_DISABLE_MQTT=1
+
    AC_SUBST(CURL_DISABLE_MQTT, [1])
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -1122,19 +1222,12 @@ fi

if test "$HAVE_GETHOSTBYNAME" != "1"; then
  dnl gethostbyname in the watt lib?
-
  clean_CPPFLAGS=$CPPFLAGS
-
  clean_LDFLAGS=$LDFLAGS
-
  CPPFLAGS="-I${WATT_ROOT}/inc"
-
  LDFLAGS="-L${WATT_ROOT}/lib"
  AC_CHECK_LIB(watt, gethostbyname,
    [
      HAVE_GETHOSTBYNAME="1"
+
      CPPFLAGS="-I${WATT_ROOT}/inc"
+
      LDFLAGS="-L${WATT_ROOT}/lib"
      LIBS="-lwatt $LIBS"
-
      AC_DEFINE(USE_WATT32, 1, [if Watt-32 is in use])
-
    ],
-
    [
-
      CPPFLAGS=$clean_CPPFLAGS
-
      LDFLAGS=$clean_LDFLAGS
    ]
  )
fi
@@ -1159,9 +1252,7 @@ if test "$HAVE_GETHOSTBYNAME" != "1"; then
  ])
fi

-
# In UWP mode gethostbyname gets detected via the core libs, but some
-
# code (in6addr_any) still need ws2_32, so let us detect and add it.
-
if test "$HAVE_GETHOSTBYNAME" != "1" -o "$curl_cv_winuwp" = "yes"; then
+
if test "$HAVE_GETHOSTBYNAME" != "1"; then
  dnl This is for Winsock systems
  if test "$curl_cv_native_windows" = "yes"; then
    winsock_LIB="-lws2_32"
@@ -1248,6 +1339,7 @@ if test "$HAVE_GETHOSTBYNAME" != "1" -o "${with_amissl+set}" = set; then
    HAVE_GETHOSTBYNAME="1"
    HAVE_PROTO_BSDSOCKET_H="1"
    AC_DEFINE(HAVE_PROTO_BSDSOCKET_H, 1, [if Amiga bsdsocket.library is in use])
+
    AC_SUBST(HAVE_PROTO_BSDSOCKET_H, [1])
  ],[
    AC_MSG_RESULT([no])
  ])
@@ -1265,6 +1357,8 @@ fi

CURL_CHECK_LIBS_CONNECT

+
CURL_NETWORK_LIBS=$LIBS
+

dnl **********************************************************************
dnl In case that function clock_gettime with monotonic timer is available,
dnl check for additional required libraries.
@@ -1465,6 +1559,7 @@ if test X"$OPT_BROTLI" != Xno; then
    curl_brotli_msg="enabled (libbrotlidec)"
    HAVE_BROTLI=1
    AC_DEFINE(HAVE_BROTLI, 1, [if BROTLI is in use])
+
    AC_SUBST(HAVE_BROTLI, [1])
  )

  if test X"$OPT_BROTLI" != Xoff &&
@@ -1554,6 +1649,7 @@ if test X"$OPT_ZSTD" != Xno; then
    curl_zstd_msg="enabled (libzstd)"
    HAVE_ZSTD=1
    AC_DEFINE(HAVE_ZSTD, 1, [if libzstd is in use])
+
    AC_SUBST(HAVE_ZSTD, [1])
  )

  if test X"$OPT_ZSTD" != Xoff &&
@@ -1605,7 +1701,7 @@ if test x$CURL_DISABLE_LDAP != x1; then
  CURL_CHECK_HEADER_LDAP_SSL

  if test -z "$LDAPLIBNAME"; then
-
    if test "$curl_cv_native_windows" = "yes" -a "$curl_cv_winuwp" != "yes"; then
+
    if test "$curl_cv_native_windows" = "yes"; then
      dnl Windows uses a single and unique LDAP library name
      LDAPLIBNAME="wldap32"
      LBERLIBNAME="no"
@@ -1619,11 +1715,9 @@ if test x$CURL_DISABLE_LDAP != x1; then
      fi
      AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled])
      AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
-
      CURL_DISABLE_LDAP=1
+
      AC_SUBST(CURL_DISABLE_LDAP, [1])
      AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
-
      CURL_DISABLE_LDAPS=1
-
      ]
-
    )
+
      AC_SUBST(CURL_DISABLE_LDAPS, [1])])
  else
    dnl Try to find the right ldap libraries for this system
    CURL_CHECK_LIBS_LDAP
@@ -1634,9 +1728,9 @@ if test x$CURL_DISABLE_LDAP != x1; then
        fi
        AC_MSG_WARN([Cannot find libraries for LDAP support: LDAP disabled])
        AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
-
        CURL_DISABLE_LDAP=1
+
        AC_SUBST(CURL_DISABLE_LDAP, [1])
        AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
-
        CURL_DISABLE_LDAPS=1
+
        AC_SUBST(CURL_DISABLE_LDAPS, [1])
        ;;
    esac
  fi
@@ -1651,11 +1745,9 @@ if test x$CURL_DISABLE_LDAP != x1; then
      AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [
        AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled])
        AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP])
-
        CURL_DISABLE_LDAP=1
+
        AC_SUBST(CURL_DISABLE_LDAP, [1])
        AC_DEFINE(CURL_DISABLE_LDAPS, 1, [to disable LDAPS])
-
        CURL_DISABLE_LDAPS=1
-
        ]
-
      )
+
        AC_SUBST(CURL_DISABLE_LDAPS, [1])])
    fi
  fi
fi
@@ -1671,7 +1763,7 @@ if test x$CURL_DISABLE_LDAP != x1; then
    if test "x$ac_cv_func_ldap_init_fd" = "xyes"; then
      curl_ldap_msg="enabled (OpenLDAP)"
      AC_DEFINE(USE_OPENLDAP, 1, [Use OpenLDAP-specific code])
-
      USE_OPENLDAP=1
+
      AC_SUBST(USE_OPENLDAP, [1])
    else
      curl_ldap_msg="enabled (ancient OpenLDAP)"
    fi
@@ -1701,62 +1793,61 @@ AS_HELP_STRING([--disable-ipv6],[Disable IPv6 support]),
    ;;
  esac ],

-
  AC_COMPILE_IFELSE([
-
    AC_LANG_SOURCE([[
-
      /* are AF_INET6 and sockaddr_in6 available? */
-
      #include <sys/types.h>
-
      #ifdef _WIN32
-
      #include <winsock2.h>
-
      #include <ws2tcpip.h>
-
      #else
-
      #include <sys/socket.h>
-
      #include <netinet/in.h>
-
      #ifdef __TANDEM
-
      #include <netinet/in6.h>
-
      #endif
-
      #endif
-

-
      int main(void)
-
      {
-
        struct sockaddr_in6 s;
-
        (void)s;
-
        return socket(AF_INET6, SOCK_STREAM, 0) < 0;
-
      }
-
    ]])
+
  AC_RUN_IFELSE([AC_LANG_SOURCE([[
+
    /* are AF_INET6 and sockaddr_in6 available? */
+
    #include <sys/types.h>
+
    #ifdef _WIN32
+
    #include <winsock2.h>
+
    #include <ws2tcpip.h>
+
    #else
+
    #include <sys/socket.h>
+
    #include <netinet/in.h>
+
    #if defined (__TANDEM)
+
    # include <netinet/in6.h>
+
    #endif
+
    #endif
+

+
    int main(void)
+
    {
+
      struct sockaddr_in6 s;
+
      (void)s;
+
      return socket(AF_INET6, SOCK_STREAM, 0) < 0;
+
    }
+
  ]])
  ],
-
    AC_MSG_RESULT(yes)
-
    ipv6=yes,
-
    AC_MSG_RESULT(no)
-
    ipv6=no
-
  )
-
)
+
  AC_MSG_RESULT(yes)
+
  ipv6=yes,
+
  AC_MSG_RESULT(no)
+
  ipv6=no,
+
  AC_MSG_RESULT(yes)
+
  ipv6=yes
+
))

if test "$ipv6" = yes; then
  curl_ipv6_msg="enabled"
  AC_DEFINE(USE_IPV6, 1, [Define if you want to enable IPv6 support])
  IPV6_ENABLED=1
+
  AC_SUBST(IPV6_ENABLED)

  AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
-
  AC_COMPILE_IFELSE([
-
    AC_LANG_PROGRAM([[
-
      #include <sys/types.h>
-
      #ifdef _WIN32
-
      #include <winsock2.h>
-
      #include <ws2tcpip.h>
-
      #else
-
      #include <netinet/in.h>
-
      #ifdef __TANDEM
-
      #include <netinet/in6.h>
-
      #endif
-
      #endif
-
    ]], [[
-
      struct sockaddr_in6 s;
-
      s.sin6_scope_id = 0;
-
    ]])
-
  ],[
+
  AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[
+
    #include <sys/types.h>
+
    #ifdef _WIN32
+
    #include <winsock2.h>
+
    #include <ws2tcpip.h>
+
    #else
+
    #include <netinet/in.h>
+
    #if defined (__TANDEM)
+
    # include <netinet/in6.h>
+
    #endif
+
    #endif
+
  ]], [[
+
    struct sockaddr_in6 s;
+
    s.sin6_scope_id = 0;
+
  ]])], [
    AC_MSG_RESULT([yes])
    AC_DEFINE(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID, 1, [Define to 1 if struct sockaddr_in6 has the sin6_scope_id member])
-
  ],[
+
  ], [
    AC_MSG_RESULT([no])
  ])
fi
@@ -2042,6 +2133,7 @@ case "$DEFAULT_SSL_BACKEND" in
    ;;
  *)
    dnl --with-default-ssl-backend option used with name
+
    AC_SUBST(DEFAULT_SSL_BACKEND)
    dnl needs to be validated below
    VALID_DEFAULT_SSL_BACKEND=no
    ;;
@@ -2057,8 +2149,8 @@ CURL_WITH_WOLFSSL
CURL_WITH_BEARSSL
CURL_WITH_RUSTLS

-
dnl link required libraries for USE_WIN32_CRYPTO or SCHANNEL_ENABLED
-
if test "x$USE_WIN32_CRYPTO" = "x1" -o "x$SCHANNEL_ENABLED" = "x1"; then
+
dnl link required libraries for USE_WIN32_CRYPTO or USE_SCHANNEL
+
if test "x$USE_WIN32_CRYPTO" = "x1" -o "x$USE_SCHANNEL" = "x1"; then
  LIBS="-ladvapi32 -lcrypt32 $LIBS"
fi

@@ -2074,6 +2166,7 @@ Use --with-openssl, --with-gnutls, --with-wolfssl, --with-mbedtls, --with-schann
    ;;
  x1)
    # one SSL backend is enabled
+
    AC_SUBST(SSL_ENABLED)
    SSL_ENABLED="1"
    AC_MSG_NOTICE([built with one SSL backend])
    ;;
@@ -2087,7 +2180,9 @@ Since these are conflicting parameters, verify which is the desired one and drop
    ;;
  *)
    # more than one SSL backend is enabled
+
    AC_SUBST(SSL_ENABLED)
    SSL_ENABLED="1"
+
    AC_SUBST(CURL_WITH_MULTI_SSL)
    CURL_WITH_MULTI_SSL="1"
    AC_DEFINE(CURL_WITH_MULTI_SSL, 1, [built with multiple SSL backends])
    AC_MSG_NOTICE([built with multiple SSL backends])
@@ -2218,8 +2313,9 @@ if test X"$OPT_LIBPSL" != Xno; then
    [
      AC_CHECK_HEADERS(libpsl.h,
        curl_psl_msg="enabled"
+
        LIBPSL_ENABLED=1
        AC_DEFINE(USE_LIBPSL, 1, [if libpsl is in use])
-
        USE_LIBPSL=1
+
        AC_SUBST(USE_LIBPSL, [1])
        LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libpsl"
      )
    ],
@@ -2230,7 +2326,7 @@ if test X"$OPT_LIBPSL" != Xno; then
      LIBS=$CLEANLIBS
  )

-
  if test "$USE_LIBPSL" != "1"; then
+
  if test "$LIBPSL_ENABLED" != "1"; then
    AC_MSG_ERROR([libpsl libs and/or directories were not found where specified!])
  fi
fi
@@ -2334,16 +2430,17 @@ if test X"$OPT_LIBSSH2" != Xno; then

  AC_CHECK_HEADER(libssh2.h,
    curl_ssh_msg="enabled (libssh2)"
+
    LIBSSH2_ENABLED=1
    AC_DEFINE(USE_LIBSSH2, 1, [if libssh2 is in use])
-
    USE_LIBSSH2=1
+
    AC_SUBST(USE_LIBSSH2, [1])
  )

  if test X"$OPT_LIBSSH2" != Xoff &&
-
     test "$USE_LIBSSH2" != "1"; then
+
     test "$LIBSSH2_ENABLED" != "1"; then
    AC_MSG_ERROR([libssh2 libs and/or directories were not found where specified!])
  fi

-
  if test "$USE_LIBSSH2" = "1"; then
+
  if test "$LIBSSH2_ENABLED" = "1"; then
    if test -n "$DIR_SSH2"; then
      dnl when the libssh2 shared libs were found in a path that the run-time
      dnl linker doesn't search through, we need to add it to CURL_LIBRARY_PATH
@@ -2410,16 +2507,17 @@ elif test X"$OPT_LIBSSH" != Xno; then

  AC_CHECK_HEADER(libssh/libssh.h,
    curl_ssh_msg="enabled (libssh)"
+
    LIBSSH_ENABLED=1
    AC_DEFINE(USE_LIBSSH, 1, [if libssh is in use])
-
    USE_LIBSSH=1
+
    AC_SUBST(USE_LIBSSH, [1])
  )

  if test X"$OPT_LIBSSH" != Xoff &&
-
     test "$USE_LIBSSH" != "1"; then
+
     test "$LIBSSH_ENABLED" != "1"; then
    AC_MSG_ERROR([libssh libs and/or directories were not found where specified!])
  fi

-
  if test "$USE_LIBSSH" = "1"; then
+
  if test "$LIBSSH_ENABLED" = "1"; then
    if test "$curl_cv_native_windows" = "yes"; then
      dnl for if_nametoindex
      LIBS="-liphlpapi $LIBS"
@@ -2462,8 +2560,9 @@ elif test X"$OPT_WOLFSSH" != Xno; then

  AC_CHECK_HEADERS(wolfssh/ssh.h,
    curl_ssh_msg="enabled (wolfSSH)"
+
    WOLFSSH_ENABLED=1
    AC_DEFINE(USE_WOLFSSH, 1, [if wolfSSH is in use])
-
    USE_WOLFSSH=1
+
    AC_SUBST(USE_WOLFSSH, [1])
  )
fi

@@ -2530,8 +2629,9 @@ if test X"$OPT_LIBRTMP" != Xno; then
    [
      AC_CHECK_HEADERS(librtmp/rtmp.h,
        curl_rtmp_msg="enabled (librtmp)"
+
        LIBRTMP_ENABLED=1
        AC_DEFINE(USE_LIBRTMP, 1, [if librtmp is in use])
-
        USE_LIBRTMP=1
+
        AC_SUBST(USE_LIBRTMP, [1])
        LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE librtmp"
      )
    ],
@@ -2543,7 +2643,7 @@ if test X"$OPT_LIBRTMP" != Xno; then
  )

  if test X"$OPT_LIBRTMP" != Xoff &&
-
     test "$USE_LIBRTMP" != "1"; then
+
     test "$LIBRTMP_ENABLED" != "1"; then
    AC_MSG_ERROR([librtmp libs and/or directories were not found where specified!])
  fi
fi
@@ -2610,29 +2710,22 @@ dnl ----------------------------

want_winuni="no"
if test "$curl_cv_native_windows" = "yes"; then
-
  if test "$curl_cv_winuwp" = 'yes'; then
-
    want_winuni="yes"
-
  else
-
    AC_MSG_CHECKING([whether to enable Windows Unicode (Windows native builds only)])
-
    AC_ARG_ENABLE(windows-unicode,
+
  AC_MSG_CHECKING([whether to enable Windows Unicode (Windows native builds only)])
+
  AC_ARG_ENABLE(windows-unicode,
AS_HELP_STRING([--enable-windows-unicode],[Enable Windows Unicode])
AS_HELP_STRING([--disable-windows-unicode],[Disable Windows Unicode (default)]),
-
    [ case "$enableval" in
-
      yes)
-
        want_winuni="yes"
-
        AC_MSG_RESULT([yes])
-
        ;;
-
      *)
-
        AC_MSG_RESULT([no])
-
        ;;
-
      esac ],
-
        AC_MSG_RESULT([no])
-
    )
-
  fi
-

-
  if test "$want_winuni" = "yes"; then
-
    CPPFLAGS="${CPPFLAGS} -DUNICODE -D_UNICODE"
-
  fi
+
  [ case "$enableval" in
+
    yes)
+
      CPPFLAGS="${CPPFLAGS} -DUNICODE -D_UNICODE"
+
      want_winuni="yes"
+
      AC_MSG_RESULT([yes])
+
      ;;
+
    *)
+
      AC_MSG_RESULT([no])
+
      ;;
+
    esac ],
+
      AC_MSG_RESULT([no])
+
  )
fi

AM_CONDITIONAL([USE_UNICODE], [test "$want_winuni" = "yes"])
@@ -2715,7 +2808,7 @@ AS_HELP_STRING([--without-winidn], [disable Windows native IDN]),
    #
    if test "$tst_links_winidn" = "yes"; then
      AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).])
-
      IDN_ENABLED=1
+
      AC_SUBST([IDN_ENABLED], [1])
      curl_idn_msg="enabled (Windows-native)"
    else
      AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
@@ -2749,8 +2842,8 @@ AS_HELP_STRING([--without-apple-idn],[Disable AppleIDN]),
          AC_CHECK_HEADERS(unicode/uidna.h,
            curl_idn_msg="enabled (AppleIDN)"
            AC_DEFINE(USE_APPLE_IDN, 1, [if AppleIDN])
-
            USE_APPLE_IDN=1
-
            IDN_ENABLED=1
+
            AC_SUBST(USE_APPLE_IDN, [1])
+
            AC_SUBST([IDN_ENABLED], [1])
            LIBS="-licucore -liconv $LIBS"
            tst_links_appleidn='yes'
          )
@@ -2882,7 +2975,7 @@ if test "$want_idn" = "yes"; then
    AC_DEFINE(HAVE_LIBIDN2, 1, [Define to 1 if you have the `idn2' library (-lidn2).])
    dnl different versions of libidn have different setups of these:

-
    IDN_ENABLED=1
+
    AC_SUBST([IDN_ENABLED], [1])
    curl_idn_msg="enabled (libidn2)"
    if test -n "$IDN_DIR" -a "x$cross_compiling" != "xyes"; then
      CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$IDN_DIR"
@@ -2906,8 +2999,8 @@ dnl **********************************************************************

OPT_H2="yes"

-
if test "x$disable_http" = "xyes"; then
-
  # without HTTP nghttp2 is no use
+
if test "x$disable_http" = "xyes" -o X"$want_hyper" != Xno; then
+
  # without HTTP or with Hyper, nghttp2 is no use
  OPT_H2="no"
fi

@@ -2981,8 +3074,9 @@ if test X"$want_nghttp2" != Xno; then
    [
      AC_CHECK_HEADERS(nghttp2/nghttp2.h,
        curl_h2_msg="enabled (nghttp2)"
+
        NGHTTP2_ENABLED=1
        AC_DEFINE(USE_NGHTTP2, 1, [if nghttp2 is in use])
-
        USE_NGHTTP2=1
+
        AC_SUBST(USE_NGHTTP2, [1])
        LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libnghttp2"
      )

@@ -3069,8 +3163,9 @@ if test X"$want_tcp2" != Xno; then
    AC_CHECK_LIB(ngtcp2, ngtcp2_conn_client_new_versioned,
      [
        AC_CHECK_HEADERS(ngtcp2/ngtcp2.h,
+
          NGTCP2_ENABLED=1
          AC_DEFINE(USE_NGTCP2, 1, [if ngtcp2 is in use])
-
          USE_NGTCP2=1
+
          AC_SUBST(USE_NGTCP2, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_TCP2"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_TCP2 to CURL_LIBRARY_PATH])
@@ -3094,7 +3189,7 @@ if test X"$want_tcp2" != Xno; then
  fi
fi

-
if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" != "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" != "x1"; then
  dnl backup the pre-ngtcp2_crypto_quictls variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANLDFLAGSPC="$LDFLAGSPC"
@@ -3127,7 +3222,9 @@ if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BOR
    AC_CHECK_LIB(ngtcp2_crypto_quictls, ngtcp2_crypto_recv_client_initial_cb,
      [
        AC_CHECK_HEADERS(ngtcp2/ngtcp2_crypto.h,
-
          USE_NGTCP2=1
+
          NGTCP2_ENABLED=1
+
          AC_DEFINE(USE_NGTCP2_CRYPTO_QUICTLS, 1, [if ngtcp2_crypto_quictls is in use])
+
          AC_SUBST(USE_NGTCP2_CRYPTO_QUICTLS, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_QUICTLS"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_NGTCP2_CRYPTO_QUICTLS to CURL_LIBRARY_PATH])
@@ -3151,7 +3248,7 @@ if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BOR
  fi
fi

-
if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" = "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" = "x1"; then
  dnl backup the pre-ngtcp2_crypto_boringssl variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANLDFLAGSPC="$LDFLAGSPC"
@@ -3184,7 +3281,9 @@ if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BOR
    AC_CHECK_LIB(ngtcp2_crypto_boringssl, ngtcp2_crypto_recv_client_initial_cb,
      [
        AC_CHECK_HEADERS(ngtcp2/ngtcp2_crypto.h,
-
          USE_NGTCP2=1
+
          NGTCP2_ENABLED=1
+
          AC_DEFINE(USE_NGTCP2_CRYPTO_BORINGSSL, 1, [if ngtcp2_crypto_boringssl is in use])
+
          AC_SUBST(USE_NGTCP2_CRYPTO_BORINGSSL, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_BORINGSSL"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_NGTCP2_CRYPTO_BORINGSSL to CURL_LIBRARY_PATH])
@@ -3208,7 +3307,7 @@ if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BOR
  fi
fi

-
if test "x$USE_NGTCP2" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then
  dnl backup the pre-ngtcp2_crypto_gnutls variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANLDFLAGSPC="$LDFLAGSPC"
@@ -3241,7 +3340,9 @@ if test "x$USE_NGTCP2" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then
    AC_CHECK_LIB(ngtcp2_crypto_gnutls, ngtcp2_crypto_recv_client_initial_cb,
      [
        AC_CHECK_HEADERS(ngtcp2/ngtcp2_crypto.h,
-
          USE_NGTCP2=1
+
          NGTCP2_ENABLED=1
+
          AC_DEFINE(USE_NGTCP2_CRYPTO_GNUTLS, 1, [if ngtcp2_crypto_gnutls is in use])
+
          AC_SUBST(USE_NGTCP2_CRYPTO_GNUTLS, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_GNUTLS"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_NGTCP2_CRYPTO_GNUTLS to CURL_LIBRARY_PATH])
@@ -3265,7 +3366,7 @@ if test "x$USE_NGTCP2" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then
  fi
fi

-
if test "x$USE_NGTCP2" = "x1" -a "x$WOLFSSL_ENABLED" = "x1"; then
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$WOLFSSL_ENABLED" = "x1"; then
  dnl backup the pre-ngtcp2_crypto_wolfssl variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANLDFLAGSPC="$LDFLAGSPC"
@@ -3298,7 +3399,9 @@ if test "x$USE_NGTCP2" = "x1" -a "x$WOLFSSL_ENABLED" = "x1"; then
    AC_CHECK_LIB(ngtcp2_crypto_wolfssl, ngtcp2_crypto_recv_client_initial_cb,
      [
        AC_CHECK_HEADERS(ngtcp2/ngtcp2_crypto.h,
-
          USE_NGTCP2=1
+
          NGTCP2_ENABLED=1
+
          AC_DEFINE(USE_NGTCP2_CRYPTO_WOLFSSL, 1, [if ngtcp2_crypto_wolfssl is in use])
+
          AC_SUBST(USE_NGTCP2_CRYPTO_WOLFSSL, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_WOLFSSL"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_NGTCP2_CRYPTO_WOLFSSL to CURL_LIBRARY_PATH])
@@ -3351,14 +3454,14 @@ esac
curl_openssl_quic_msg="no      (--with-openssl-quic)"
if test "x$want_openssl_quic" = "xyes"; then

-
  if test "$USE_NGTCP2" = 1; then
+
  if test "$NGTCP2_ENABLED" = 1; then
    AC_MSG_ERROR([--with-openssl-quic and --with-ngtcp2 are mutually exclusive])
  fi
  if test "$have_openssl_quic" != 1; then
    AC_MSG_ERROR([--with-openssl-quic requires quic support and OpenSSL >= 3.3.0])
  fi
  AC_DEFINE(USE_OPENSSL_QUIC, 1, [if openssl QUIC is in use])
-
  USE_OPENSSL_QUIC=1
+
  AC_SUBST(USE_OPENSSL_QUIC, [1])
fi

dnl **********************************************************************
@@ -3435,7 +3538,7 @@ if test X"$want_nghttp3" != Xno; then
      [
        AC_CHECK_HEADERS(nghttp3/nghttp3.h,
          AC_DEFINE(USE_NGHTTP3, 1, [if nghttp3 is in use])
-
          USE_NGHTTP3=1
+
          AC_SUBST(USE_NGHTTP3, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH])
@@ -3463,8 +3566,9 @@ dnl **********************************************************************
dnl Check for ngtcp2 and nghttp3 (HTTP/3 with ngtcp2 + nghttp3)
dnl **********************************************************************

-
if test "x$USE_NGTCP2" = "x1" -a "x$USE_NGHTTP3" = "x1"; then
-
  USE_NGTCP2_H3=1
+
if test "x$NGTCP2_ENABLED" = "x1" -a "x$USE_NGHTTP3" = "x1"; then
+
  AC_DEFINE(USE_NGTCP2_H3, 1, [if ngtcp2 + nghttp3 is in use])
+
  AC_SUBST(USE_NGTCP2_H3, [1])
  AC_MSG_NOTICE([HTTP3 support is experimental])
  curl_h3_msg="enabled (ngtcp2 + nghttp3)"
fi
@@ -3475,7 +3579,8 @@ dnl **********************************************************************

if test "x$USE_OPENSSL_QUIC" = "x1" -a "x$USE_NGHTTP3" = "x1"; then
  experimental="$experimental HTTP3"
-
  USE_OPENSSL_H3=1
+
  AC_DEFINE(USE_OPENSSL_H3, 1, [if openssl quic + nghttp3 is in use])
+
  AC_SUBST(USE_OPENSSL_H3, [1])
  AC_MSG_NOTICE([HTTP3 support is experimental])
  curl_h3_msg="enabled (openssl + nghttp3)"
fi
@@ -3557,8 +3662,9 @@ if test X"$want_quiche" != Xno; then
          experimental="$experimental HTTP3"
          AC_MSG_NOTICE([HTTP3 support is experimental])
          curl_h3_msg="enabled (quiche)"
+
          QUICHE_ENABLED=1
          AC_DEFINE(USE_QUICHE, 1, [if quiche is in use])
-
          USE_QUICHE=1
+
          AC_SUBST(USE_QUICHE, [1])
          AC_CHECK_FUNCS([quiche_conn_set_qlog_fd])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_QUICHE"
          export CURL_LIBRARY_PATH
@@ -3631,7 +3737,7 @@ if test X"$want_msh3" != Xno; then
  if test "$NGHTTP3_ENABLED" = 1; then
    AC_MSG_ERROR([--with-msh3 and --with-ngtcp2 are mutually exclusive])
  fi
-
  if test "$USE_QUICHE" = 1; then
+
  if test "$QUICHE_ENABLED" = 1; then
    AC_MSG_ERROR([--with-msh3 and --with-quiche are mutually exclusive])
  fi

@@ -3655,8 +3761,9 @@ if test X"$want_msh3" != Xno; then
    [
      AC_CHECK_HEADERS(msh3.h,
        curl_h3_msg="enabled (msh3)"
+
        MSH3_ENABLED=1
        AC_DEFINE(USE_MSH3, 1, [if msh3 is in use])
-
        USE_MSH3=1
+
        AC_SUBST(USE_MSH3, [1])
        CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_MSH3"
        export CURL_LIBRARY_PATH
        AC_MSG_NOTICE([Added $DIR_MSH3 to CURL_LIBRARY_PATH])
@@ -3738,8 +3845,9 @@ if test X"$want_libuv" != Xno; then
    AC_CHECK_LIB(uv, uv_default_loop,
      [
        AC_CHECK_HEADERS(uv.h,
+
          LIBUV_ENABLED=1
          AC_DEFINE(USE_LIBUV, 1, [if libuv is in use])
-
          USE_LIBUV=1
+
          AC_SUBST(USE_LIBUV, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_LIBUV"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_LIBUV to CURL_LIBRARY_PATH])
@@ -3830,6 +3938,7 @@ AC_CHECK_HEADERS(
  sys/socket.h \
  sys/ioctl.h \
  unistd.h \
+
  stdlib.h \
  arpa/inet.h \
  net/if.h \
  netinet/in.h \
@@ -3856,14 +3965,15 @@ AC_CHECK_HEADERS(
  locale.h \
  stdbool.h \
  sys/filio.h \
-
  sys/eventfd.h,
+
  sys/wait.h \
+
  sys/eventfd.h \
+
  setjmp.h,
dnl to do if not found
[],
dnl to do if found
[],
dnl default includes
[
-
#include <stdlib.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -3943,12 +4053,12 @@ AC_CHECK_TYPE([bool],[

# check for sa_family_t
AC_CHECK_TYPE(sa_family_t,
-
  AC_DEFINE(HAVE_SA_FAMILY_T, 1, [Define to 1 if symbol `sa_family_t' exists]),
+
  AC_DEFINE(CURL_SA_FAMILY_T, sa_family_t, [IP address type in sockaddr]),
  [
  # The Windows name?
  AC_CHECK_TYPE(ADDRESS_FAMILY,
-
    AC_DEFINE(HAVE_ADDRESS_FAMILY, 1, [Define to 1 if symbol `ADDRESS_FAMILY' exists]),
-
    [],
+
    AC_DEFINE(CURL_SA_FAMILY_T, ADDRESS_FAMILY, [IP address type in sockaddr]),
+
    AC_DEFINE(CURL_SA_FAMILY_T, unsigned short, [IP address type in sockaddr]),
    [
#ifdef _WIN32
#ifndef WIN32_LEAN_AND_MEAN
@@ -3980,30 +4090,24 @@ AC_CHECK_TYPE([suseconds_t],[
#endif
])

-
case $host_os in
-
  amigaos*|msdos*)
-
    AC_DEFINE(HAVE_TIME_T_UNSIGNED, 1, [Define this if time_t is unsigned])
-
    ;;
-
  *)
-
    AC_MSG_CHECKING([if time_t is unsigned])
-
    CURL_RUN_IFELSE(
-
      [
-
      #include <time.h>
-
      int main(void) {
-
        time_t t = -1;
-
        return t < 0;
-
      }
-
      ],[
-
      AC_MSG_RESULT([yes])
-
      AC_DEFINE(HAVE_TIME_T_UNSIGNED, 1, [Define this if time_t is unsigned])
-
    ],[
-
      AC_MSG_RESULT([no])
-
    ],[
-
      dnl cross-compiling, most systems are signed
-
      AC_MSG_RESULT([no])
-
    ])
-
    ;;
-
esac
+
AC_MSG_CHECKING([if time_t is unsigned])
+
CURL_RUN_IFELSE(
+
  [
+
  #include <time.h>
+
  #include <limits.h>
+
  int main(void) {
+
    time_t t = -1;
+
    return (t < 0);
+
  }
+
  ],[
+
  AC_MSG_RESULT([yes])
+
  AC_DEFINE(HAVE_TIME_T_UNSIGNED, 1, [Define this if time_t is unsigned])
+
],[
+
  AC_MSG_RESULT([no])
+
],[
+
  dnl cross-compiling, most systems are unsigned
+
  AC_MSG_RESULT([no])
+
])

TYPE_IN_ADDR_T

@@ -4024,6 +4128,7 @@ CURL_CHECK_FUNC_FREEADDRINFO
CURL_CHECK_FUNC_FSETXATTR
CURL_CHECK_FUNC_FTRUNCATE
CURL_CHECK_FUNC_GETADDRINFO
+
CURL_CHECK_FUNC_GETHOSTBYNAME
CURL_CHECK_FUNC_GETHOSTBYNAME_R
CURL_CHECK_FUNC_GETHOSTNAME
CURL_CHECK_FUNC_GETPEERNAME
@@ -4042,8 +4147,11 @@ CURL_CHECK_FUNC_SIGNAL
CURL_CHECK_FUNC_SIGSETJMP
CURL_CHECK_FUNC_SOCKET
CURL_CHECK_FUNC_SOCKETPAIR
+
CURL_CHECK_FUNC_STRCASECMP
+
CURL_CHECK_FUNC_STRCMPI
CURL_CHECK_FUNC_STRDUP
CURL_CHECK_FUNC_STRERROR_R
+
CURL_CHECK_FUNC_STRICMP
CURL_CHECK_FUNC_STRTOK_R
CURL_CHECK_FUNC_STRTOLL

@@ -4055,6 +4163,10 @@ case $host in
    ;;
esac

+
AC_CHECK_DECLS([getpwuid_r], [], [AC_DEFINE(HAVE_DECL_GETPWUID_R_MISSING, 1, "Set if getpwuid_r() declaration is missing")],
+
        [[#include <pwd.h>
+
          #include <sys/types.h>]])
+

AC_CHECK_FUNCS([\
  eventfd \
  fnmatch \
@@ -4069,6 +4181,7 @@ AC_CHECK_FUNCS([\
  mach_absolute_time \
  pipe \
  poll \
+
  sched_yield \
  sendmsg \
  sendmmsg \
  setlocale \
@@ -4079,13 +4192,6 @@ AC_CHECK_FUNCS([\
  utimes \
])

-
if test "$curl_cv_native_windows" != 'yes'; then
-
  AC_CHECK_FUNCS([sched_yield])
-
  CURL_CHECK_FUNC_STRCASECMP
-
  CURL_CHECK_FUNC_STRCMPI
-
  CURL_CHECK_FUNC_STRICMP
-
fi
-

if test "$curl_cv_native_windows" = 'yes' -o "$curl_cv_cygwin" = 'yes'; then
  AC_CHECK_FUNCS([_setmode])
fi
@@ -4134,26 +4240,74 @@ dnl set variable for use in automakefile(s)
AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)

CURL_CHECK_LIB_ARES
-
CURL_CHECK_OPTION_THREADED_RESOLVER

-
if test "$ipv6" = yes; then
-
  CURL_DARWIN_SYSTEMCONFIGURATION
+
if test "x$want_ares" != xyes; then
+
  CURL_CHECK_OPTION_THREADED_RESOLVER
+

+
  if test "$ipv6" = yes; then
+
    CURL_DARWIN_SYSTEMCONFIGURATION
+
  fi
fi

+
dnl ************************************************************
+
dnl disable POSIX threads
+
dnl
+
AC_MSG_CHECKING([whether to use POSIX threads for threaded resolver])
+
AC_ARG_ENABLE(pthreads,
+
AS_HELP_STRING([--enable-pthreads],
+
  [Enable POSIX threads (default for threaded resolver)])
+
AS_HELP_STRING([--disable-pthreads],[Disable POSIX threads]),
+
[ case "$enableval" in
+
  no)
+
    AC_MSG_RESULT(no)
+
    want_pthreads=no
+
    ;;
+
  *)
+
    AC_MSG_RESULT(yes)
+
    want_pthreads=yes
+
    ;;
+
  esac ], [
+
    default_pthreads=1
+
    if test "$curl_cv_native_windows" = "yes"; then
+
      default_pthreads=0
+
    else
+
      case $host_os in
+
        msdos*)
+
          default_pthreads=0
+
          ;;
+
      esac
+
    fi
+
    if test "$default_pthreads" = '0'; then
+
      AC_MSG_RESULT(no)
+
      want_pthreads=no
+
    else
+
      AC_MSG_RESULT(auto)
+
      want_pthreads=auto
+
    fi
+
  ]
+
)
+

dnl turn off pthreads if rt is disabled
-
if test "$want_threaded_resolver" = "yes" && test "$dontwant_rt" = "yes"; then
-
  AC_MSG_ERROR([options --enable-pthreads and --disable-rt are mutually exclusive])
+
if test "$want_pthreads" != "no"; then
+
  if test "$want_pthreads" = "yes" && test "$dontwant_rt" = "yes"; then
+
    AC_MSG_ERROR([options --enable-pthreads and --disable-rt are mutually exclusive])
+
  fi
+
  if test "$dontwant_rt" != "no"; then
+
    dnl if --enable-pthreads was explicit then warn it's being ignored
+
    if test "$want_pthreads" = "yes"; then
+
      AC_MSG_WARN([--enable-pthreads Ignored since librt is disabled.])
+
    fi
+
    want_pthreads=no
+
  fi
fi

-
dnl Windows threaded resolver check
-
if test "$want_threaded_resolver" = "yes" && test "$curl_cv_native_windows" = "yes"; then
-
  USE_THREADS_WIN32=1
-
  AC_DEFINE(USE_THREADS_WIN32, 1, [if you want Win32 threaded DNS lookup])
-
  curl_res_msg="Win32 threaded"
+
dnl turn off pthreads if no threaded resolver
+
if test "$want_pthreads" != "no" && test "$want_thres" != "yes"; then
+
  want_pthreads=no
fi

dnl detect pthreads
-
if test "$want_threaded_resolver" = "yes" && test "$USE_THREADS_WIN32" != "1"; then
+
if test "$want_pthreads" != "no"; then
  AC_CHECK_HEADER(pthread.h,
    [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
      save_CFLAGS="$CFLAGS"
@@ -4214,9 +4368,19 @@ if test "$want_threaded_resolver" = "yes" && test "$USE_THREADS_WIN32" != "1"; t
  ])
fi

-
dnl Did we find a threading option?
-
if test "$want_threaded_resolver" != "no" -a "x$USE_THREADS_POSIX" != "x1" -a "x$USE_THREADS_WIN32" != "x1"; then
-
  AC_MSG_ERROR([Threaded resolver enabled but no thread library found])
+
dnl threaded resolver check
+
if test "$want_thres" = "yes" && test "x$USE_THREADS_POSIX" != "x1"; then
+
  if test "$want_pthreads" = "yes"; then
+
    AC_MSG_ERROR([--enable-pthreads but pthreads was not found])
+
  fi
+
  dnl If native Windows fallback on Win32 threads since no POSIX threads
+
  if test "$curl_cv_native_windows" = "yes"; then
+
    USE_THREADS_WIN32=1
+
    AC_DEFINE(USE_THREADS_WIN32, 1, [if you want Win32 threaded DNS lookup])
+
    curl_res_msg="Win32 threaded"
+
  else
+
    AC_MSG_ERROR([Threaded resolver enabled but no thread library found])
+
  fi
fi

AC_CHECK_HEADER(dirent.h,
@@ -4259,7 +4423,7 @@ AS_HELP_STRING([--disable-sspi],[Disable SSPI]),
    if test "$curl_cv_native_windows" = "yes"; then
      AC_MSG_RESULT(yes)
      AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
-
      USE_WINDOWS_SSPI=1
+
      AC_SUBST(USE_WINDOWS_SSPI, [1])
      curl_sspi_msg="enabled"
    else
      AC_MSG_RESULT(no)
@@ -4294,6 +4458,7 @@ AS_HELP_STRING([--disable-basic-auth],[Disable basic authentication]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_BASIC_AUTH, 1, [to disable basic authentication])
+
    CURL_DISABLE_BASIC_AUTH=1
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -4313,6 +4478,7 @@ AS_HELP_STRING([--disable-bearer-auth],[Disable bearer authentication]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_BEARER_AUTH, 1, [to disable bearer authentication])
+
    CURL_DISABLE_BEARER_AUTH=1
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -4332,6 +4498,7 @@ AS_HELP_STRING([--disable-digest-auth],[Disable digest authentication]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_DIGEST_AUTH, 1, [to disable digest authentication])
+
    CURL_DISABLE_DIGEST_AUTH=1
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -4391,6 +4558,7 @@ AS_HELP_STRING([--disable-aws],[Disable AWS sig support]),
  no)
    AC_MSG_RESULT(no)
    AC_DEFINE(CURL_DISABLE_AWS, 1, [to disable AWS sig support])
+
    CURL_DISABLE_AWS=1
    ;;
  *)
    AC_MSG_RESULT(yes)
@@ -4475,7 +4643,7 @@ if test "x$want_unix_sockets" != "xno"; then
  else
    AC_CHECK_MEMBER([struct sockaddr_un.sun_path], [
      AC_DEFINE(USE_UNIX_SOCKETS, 1, [Use Unix domain sockets])
-
      USE_UNIX_SOCKETS=1
+
      AC_SUBST(USE_UNIX_SOCKETS, [1])
      curl_unix_sockets_msg="enabled"
    ], [
      if test "x$want_unix_sockets" = "xyes"; then
@@ -4816,6 +4984,15 @@ fi


dnl *************************************************************
+
dnl check whether HTTPSRR support if desired
+
dnl
+
if test "x$want_httpsrr" != "xno"; then
+
  AC_MSG_RESULT([HTTPSRR support is available])
+
  AC_DEFINE(USE_HTTPSRR, 1, [enable HTTPS RR support])
+
  experimental="$experimental HTTPSRR"
+
fi
+

+
dnl *************************************************************
dnl check whether ECH support, if desired, is actually available
dnl
if test "x$want_ech" != "xno"; then
@@ -4825,7 +5002,13 @@ if test "x$want_ech" != "xno"; then
  ECH_ENABLED=0
  ECH_SUPPORT=''

-
  dnl check for OpenSSL equivalent
+
  dnl check for OpenSSL
+
  if test "x$OPENSSL_ENABLED" = "x1"; then
+
    AC_CHECK_FUNCS(SSL_ech_set1_echconfig,
+
      ECH_SUPPORT="ECH support available via OpenSSL with SSL_ech_set1_echconfig"
+
      ECH_ENABLED=1)
+
  fi
+
  dnl check for BoringSSL equivalent
  if test "x$OPENSSL_ENABLED" = "x1"; then
    AC_CHECK_FUNCS(SSL_set1_ech_config_list,
      ECH_SUPPORT="ECH support available via BoringSSL with SSL_set1_ech_config_list"
@@ -4842,25 +5025,12 @@ if test "x$want_ech" != "xno"; then
    AC_DEFINE(USE_ECH, 1, [if ECH support is available])
    AC_MSG_RESULT($ECH_SUPPORT)
    experimental="$experimental ECH"
-
    dnl ECH wants HTTPSRR
-
    want_httpsrr="yes"
  else
    AC_MSG_ERROR([--enable-ech ignored: No ECH support found])
  fi
fi

dnl *************************************************************
-
dnl check whether HTTPSRR support if desired
-
dnl
-
if test "x$want_httpsrr" != "xno"; then
-
  AC_MSG_RESULT([HTTPSRR support is enabled])
-
  AC_DEFINE(USE_HTTPSRR, 1, [enable HTTPS RR support])
-
  experimental="$experimental HTTPSRR"
-
  curl_httpsrr_msg="enabled (--disable-httpsrr)"
-
fi
-

-

-
dnl *************************************************************
dnl check whether OpenSSL (lookalikes) have SSL_set0_wbio
dnl
if test "x$OPENSSL_ENABLED" = "x1"; then
@@ -4879,7 +5049,7 @@ if test "x$CURL_DISABLE_HTTP" != "x1"; then
    no)
      AC_MSG_RESULT(no)
      AC_DEFINE(CURL_DISABLE_WEBSOCKETS, [1], [disable WebSockets])
-
      CURL_DISABLE_WEBSOCKETS=1
+
      AC_SUBST(CURL_DISABLE_WEBSOCKETS, [1])
      ;;
    *)
      if test ${ac_cv_sizeof_curl_off_t} -gt 4; then
@@ -4889,7 +5059,7 @@ if test "x$CURL_DISABLE_HTTP" != "x1"; then
        AC_MSG_RESULT(no)
        AC_MSG_WARN([WebSockets disabled due to lack of >32 bit curl_off_t])
        AC_DEFINE(CURL_DISABLE_WEBSOCKETS, [1], [disable WebSockets])
-
        CURL_DISABLE_WEBSOCKETS=1
+
        AC_SUBST(CURL_DISABLE_WEBSOCKETS, [1])
      fi
      ;;
    esac ],
@@ -4898,27 +5068,7 @@ if test "x$CURL_DISABLE_HTTP" != "x1"; then
else
  AC_MSG_WARN([WebSockets disabled because HTTP is disabled])
  AC_DEFINE(CURL_DISABLE_WEBSOCKETS, [1], [disable WebSockets])
-
  CURL_DISABLE_WEBSOCKETS=1
-
fi
-

-
dnl *************************************************************
-
dnl check whether experimental SSL Session Im-/Export is enabled
-
dnl
-
if test "x$want_ssls_export" != "xno"; then
-
  AC_MSG_CHECKING([whether SSL session export support is available])
-

-
  dnl assume NOT and look for sufficient condition
-
  SSLS_EXPORT_ENABLED=0
-
  SSLS_EXPORT_SUPPORT=''
-

-
  if test "x$SSL_ENABLED" != "x1"; then
-
    AC_MSG_ERROR([--enable-ssls-export ignored: No SSL support])
-
  else
-
    SSLS_EXPORT_ENABLED=1
-
    AC_DEFINE(USE_SSLS_EXPORT, 1, [if SSL session export support is available])
-
    AC_MSG_RESULT("SSL session im-/export enabled")
-
    experimental="$experimental SSLS-EXPORT"
-
  fi
+
  AC_SUBST(CURL_DISABLE_WEBSOCKETS, [1])
fi

dnl ************************************************************
@@ -4951,6 +5101,7 @@ LIBCURL_PC_LIBS_PRIVATE="$LIBS$PTHREAD"

AC_SUBST(LIBCURL_PC_LDFLAGS_PRIVATE)
AC_SUBST(LIBCURL_PC_LIBS_PRIVATE)
+
AC_SUBST(CURL_NETWORK_LIBS)
AC_SUBST(CURL_NETWORK_AND_TIME_LIBS)

dnl BLANK_AT_MAKETIME may be used in our Makefile.am files to blank
@@ -5017,9 +5168,6 @@ if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1" \
                            -o "x$USE_THREADS_WIN32" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
fi
-
if test "x$USE_ARES" = "x1" -a "$want_threaded_resolver" = "yes"; then
-
  SUPPORT_FEATURES="$SUPPORT_FEATURES asyn-rr"
-
fi
if test "x$IDN_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES IDN"
fi
@@ -5126,14 +5274,6 @@ if test "x$OPENSSL_ENABLED" = "x1" -o -n "$SSL_ENABLED"; then
  fi
fi

-
if test "x$want_httpsrr" != "xno"; then
-
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTPSRR"
-
fi
-

-
if test "x$SSLS_EXPORT_ENABLED" = "x1"; then
-
  SUPPORT_FEATURES="$SUPPORT_FEATURES SSLS-EXPORT"
-
fi
-

if test ${ac_cv_sizeof_curl_off_t} -gt 4; then
  if test ${ac_cv_sizeof_off_t} -gt 4 -o \
     "$curl_win32_file_api" = "win32_large_files"; then
@@ -5299,6 +5439,7 @@ squeeze LIBS

squeeze LIBCURL_PC_LDFLAGS_PRIVATE
squeeze LIBCURL_PC_LIBS_PRIVATE
+
squeeze CURL_NETWORK_LIBS
squeeze CURL_NETWORK_AND_TIME_LIBS

squeeze SUPPORT_FEATURES
@@ -5399,8 +5540,6 @@ AC_MSG_NOTICE([Configured to build curl/libcurl:
  HTTP2:            ${curl_h2_msg}
  HTTP3:            ${curl_h3_msg}
  ECH:              ${curl_ech_msg}
-
  HTTPS RR:         ${curl_httpsrr_msg}
-
  SSLS-EXPORT:      ${curl_ssls_export_msg}
  Protocols:        ${SUPPORT_PROTOCOLS_LOWER}
  Features:         ${SUPPORT_FEATURES}
])
modified external/curl/curl-config.in
@@ -31,6 +31,7 @@ prefix='@prefix@'
exec_prefix="@exec_prefix@"
# shellcheck disable=SC2034
includedir="@includedir@"
+
cppflag_curl_staticlib='@LIBCURL_PC_CFLAGS@'

usage()
{
@@ -141,23 +142,28 @@ while test "$#" -gt 0; do
    ;;

  --cflags)
+
    if test "X$cppflag_curl_staticlib" = 'X-DCURL_STATICLIB'; then
+
      CPPFLAG_CURL_STATICLIB='-DCURL_STATICLIB '
+
    else
+
      CPPFLAG_CURL_STATICLIB=''
+
    fi
    if test "X@includedir@" = 'X/usr/include'; then
-
      echo '@LIBCURL_PC_CFLAGS@'
+
      echo "${CPPFLAG_CURL_STATICLIB}"
    else
-
      echo "@LIBCURL_PC_CFLAGS@ -I@includedir@"
+
      echo "${CPPFLAG_CURL_STATICLIB}-I@includedir@"
    fi
    ;;

  --libs)
    if test "X@libdir@" != 'X/usr/lib' -a "X@libdir@" != 'X/usr/lib64'; then
-
      curllibdir="-L@libdir@ "
+
      CURLLIBDIR="-L@libdir@ "
    else
-
      curllibdir=''
+
      CURLLIBDIR=''
    fi
    if test 'X@ENABLE_SHARED@' = 'Xno'; then
-
      echo "${curllibdir}-lcurl @LIBCURL_PC_LIBS_PRIVATE@"
+
      echo "${CURLLIBDIR}-lcurl @LIBCURL_PC_LIBS_PRIVATE@"
    else
-
      echo "${curllibdir}-lcurl"
+
      echo "${CURLLIBDIR}-lcurl"
    fi
    ;;

modified external/curl/docs/BUGS.md
@@ -8,7 +8,7 @@ SPDX-License-Identifier: curl

## There are still bugs

-
 curl and libcurl keep being developed. Adding features and changing code
+
 Curl and libcurl keep being developed. Adding features and changing code
 means that bugs sneak in, no matter how hard we try to keep them out.

 Of course there are lots of bugs left. Not to mention misfeatures.
@@ -25,8 +25,8 @@ SPDX-License-Identifier: curl

 Please read the rest of this document below first before doing that.

-
 If you feel you need to ask around first, find a suitable [mailing
-
 list](https://curl.se/mail/) and post your questions there.
+
 If you feel you need to ask around first, find a suitable [mailing list](
+
 https://curl.se/mail/) and post your questions there.

## Security bugs

modified external/curl/docs/DEPRECATE.md
@@ -23,26 +23,35 @@ and use TLS 1.3, or else it is not good enough.
As of May 2024, the libraries that need to get fixed to remain supported after
May 2025 are: BearSSL and Secure Transport.

-
## msh3 support
+
## Hyper

-
The msh3 backed for QUIC and HTTP/3 was introduced in April 2022 but has never
-
been made to work properly. It has seen no visible traction or developer
-
activity from the msh3 main author (or anyone else seemingly interested) in
-
two years. As a non-functional backend, it only adds friction and "weight" to
-
the development and maintenance.
+
Hyper is an alternative HTTP backend for curl. It uses the hyper library and
+
could in theory be used for HTTP/1, HTTP/2 and even HTTP/3 in the future with
+
curl.

-
Meanwhile, we have a fully working backend in the ngtcp2 one and we have two
-
fully working backends in OpenSSL-QUIC and quiche well on their way of ending
-
their experimental status in a future.
+
The original plan and goal was that we would add this HTTP alternative (using
+
a memory-safe library) and that users could eventually build and use libcurl
+
exactly as previously but with parts of the core being more memory-safe.

-
We remove msh3 support from the curl source tree in July 2025.
+
The hyper implementation ran into some snags and 10-15 tests and HTTP/2
+
support have remained disabled with hyper. For these reasons, hyper support
+
has remained tagged EXPERIMENTAL.

-
## winbuild build system
+
It is undoubtedly hard work to fix these remaining problems, as they typically
+
require both rust and C knowledge in addition to deep HTTP familiarity. There
+
does not seem to be that many persons interested or available for this
+
challenge. Meanwhile, there is little if any demand for hyper from existing
+
(lib)curl users.

-
curl drops support for the winbuild build method after September 2025.
+
Finally: having support for hyper in curl has a significant cost: we need to
+
maintain and develop a lot of functionality and tests twice to make sure
+
libcurl works identically using either HTTP backend.

-
We recommend migrating to CMake. See the migration guide in
-
`docs/INSTALL-CMAKE.md`.
+
The only way to keep hyper support in curl is to give it a good polish by
+
someone with time, skill and energy to spend on this task.
+

+
Unless a significant overhaul has proven to be in progress, hyper support is
+
removed from curl in January 2025.

## Past removals

@@ -56,4 +65,3 @@ We recommend migrating to CMake. See the migration guide in
 - MinGW v1
 - NTLM_WB
 - space-separated `NOPROXY` patterns
-
 - hyper
modified external/curl/docs/ECH.md
@@ -59,7 +59,7 @@ not be the best solution.

## Using ECH and DoH

-
curl supports using DoH for A/AAAA lookups so it was relatively easy to add
+
Curl supports using DoH for A/AAAA lookups so it was relatively easy to add
retrieval of HTTPS RRs in that situation. To use ECH and DoH together:

```bash
@@ -153,7 +153,7 @@ For now, this only works for the OpenSSL and BoringSSL/AWS-LC builds.

## Default settings

-
curl has various ways to configure default settings, e.g. in ``$HOME/.curlrc``,
+
Curl has various ways to configure default settings, e.g. in ``$HOME/.curlrc``,
so one can set the DoH URL and enable ECH that way:

```bash
modified external/curl/docs/EXPERIMENTAL.md
@@ -34,6 +34,14 @@ Experimental support in curl means:

## Experimental features right now

+
### The Hyper HTTP backend
+

+
Graduation requirements:
+

+
- HTTP/1 and HTTP/2 support, including multiplexing
+

+
(Hyper is marked for deprecation. It cannot graduate.)
+

###  HTTP/3 support (non-ngtcp2 backends)

Graduation requirements:
@@ -63,28 +71,3 @@ Graduation requirements:

- it has been given time to mature, so no earlier than April 2025 (twelve
  months after being added here)
-

-
## SSL session import/export
-

-
Import/Export of SSL sessions tickets in libcurl and curl command line
-
option '--ssl-session <filename>' for faster TLS handshakes and use
-
of TLSv1.3/QUIC Early Data (0-RTT).
-

-
Graduation requirements:
-

-
- the implementation is considered safe
-

-
- feedback from users saying that session export works for their use cases
-

-
## HTTPS RR
-

-
HTTPS records support is a requirement for ECH but is provided as a
-
stand-alone feature that is itself considered EXPERIMENTAL.
-

-
Graduation requirements:
-

-
- HTTPS records work for DoH, c-ares and the threaded resolver
-

-
- HTTPS records can control ALPN and port number, at least
-

-
- There are options to control HTTPS use
modified external/curl/docs/HISTORY.md
@@ -74,7 +74,7 @@ November: configure script and reported successful compiles on several
major operating systems. The never-quite-understood -F option was added and
curl could now simulate quite a lot of a browser. TELNET support was added.

-
curl 5 was released in December 1998 and introduced the first ever curl man
+
Curl 5 was released in December 1998 and introduced the first ever curl man
page. People started making Linux RPM packages out of it.

1999
@@ -187,7 +187,7 @@ June: curl 7.12.0 introduced IDN support. 10 official web mirrors.
This release bumped the major SONAME to 3 due to the removal of the
`curl_formparse()` function

-
August: curl and libcurl 7.12.1
+
August: Curl and libcurl 7.12.1

    Public curl release number:                82
    Releases counted from the beginning:      109
@@ -342,7 +342,7 @@ April: added the cyassl backend (later renamed to wolfSSL)

 July: OSS-Fuzz started fuzzing libcurl

-
 September: Added MultiSSL support
+
 September: Added Multi-SSL support

 The website serves 3100 GB/month

@@ -377,7 +377,7 @@ April: added the cyassl backend (later renamed to wolfSSL)
 curl and libcurl are installed in an estimated 5 *billion* instances
 world-wide.

-
 October 31: curl and libcurl 7.62.0
+
 October 31: Curl and libcurl 7.62.0

    Public curl releases:         177
    Command line options:         219
modified external/curl/docs/HTTP-COOKIES.md
@@ -103,69 +103,69 @@ SPDX-License-Identifier: curl

  Command line options:

-
  [`-b, --cookie`](https://curl.se/docs/manpage.html#-b)
+
  `-b, --cookie`

  tell curl a file to read cookies from and start the cookie engine, or if it
  is not a file it passes on the given string. `-b name=var` works and so does
  `-b cookiefile`.

-
  [`-j, --junk-session-cookies`](https://curl.se/docs/manpage.html#-j)
+
  `-j, --junk-session-cookies`

  when used in combination with -b, it skips all "session cookies" on load so
  as to appear to start a new cookie session.

-
  [`-c, --cookie-jar`](https://curl.se/docs/manpage.html#-c)
+
  `-c, --cookie-jar`

  tell curl to start the cookie engine and write cookies to the given file
  after the request(s)

## Cookies with libcurl

-
libcurl offers several ways to enable and interface the cookie engine. These
-
options are the ones provided by the native API. libcurl bindings may offer
-
access to them using other means.
+
  libcurl offers several ways to enable and interface the cookie engine. These
+
  options are the ones provided by the native API. libcurl bindings may offer
+
  access to them using other means.

-
[`CURLOPT_COOKIE`](https://curl.se/libcurl/c/CURLOPT_COOKIE.html)
+
  `CURLOPT_COOKIE`

-
Is used when you want to specify the exact contents of a cookie header to
-
send to the server.
+
  Is used when you want to specify the exact contents of a cookie header to
+
  send to the server.

-
[`CURLOPT_COOKIEFILE`](https://curl.se/libcurl/c/CURLOPT_COOKIEFILE.html)
+
  `CURLOPT_COOKIEFILE`

-
Tell libcurl to activate the cookie engine, and to read the initial set of
-
cookies from the given file. Read-only.
+
  Tell libcurl to activate the cookie engine, and to read the initial set of
+
  cookies from the given file. Read-only.

-
[`CURLOPT_COOKIEJAR`](https://curl.se/libcurl/c/CURLOPT_COOKIEJAR.html)
+
  `CURLOPT_COOKIEJAR`

-
Tell libcurl to activate the cookie engine, and when the easy handle is
-
closed save all known cookies to the given cookie jar file. Write-only.
+
  Tell libcurl to activate the cookie engine, and when the easy handle is
+
  closed save all known cookies to the given cookie jar file. Write-only.

-
[`CURLOPT_COOKIELIST`](https://curl.se/libcurl/c/CURLOPT_COOKIELIST.html)
+
  `CURLOPT_COOKIELIST`

-
Provide detailed information about a single cookie to add to the internal
-
storage of cookies. Pass in the cookie as an HTTP header with all the
-
details set, or pass in a line from a Netscape cookie file. This option can
-
also be used to flush the cookies etc.
+
  Provide detailed information about a single cookie to add to the internal
+
  storage of cookies. Pass in the cookie as an HTTP header with all the
+
  details set, or pass in a line from a Netscape cookie file. This option can
+
  also be used to flush the cookies etc.

-
[`CURLOPT_COOKIESESSION`](https://curl.se/libcurl/c/CURLOPT_COOKIESESSION.html)
+
  `CURLOPT_COOKIESESSION`

-
Tell libcurl to ignore all cookies it is about to load that are session
-
cookies.
+
  Tell libcurl to ignore all cookies it is about to load that are session
+
  cookies.

-
[`CURLINFO_COOKIELIST`](https://curl.se/libcurl/c/CURLINFO_COOKIELIST.html)
+
  `CURLINFO_COOKIELIST`

-
Extract cookie information from the internal cookie storage as a linked
-
list.
+
  Extract cookie information from the internal cookie storage as a linked
+
  list.

## Cookies with JavaScript

-
These days a lot of the web is built up by JavaScript. The web browser loads
-
complete programs that render the page you see. These JavaScript programs
-
can also set and access cookies.
+
  These days a lot of the web is built up by JavaScript. The web browser loads
+
  complete programs that render the page you see. These JavaScript programs
+
  can also set and access cookies.

-
Since curl and libcurl are plain HTTP clients without any knowledge of or
-
capability to handle JavaScript, such cookies are not detected or used.
+
  Since curl and libcurl are plain HTTP clients without any knowledge of or
+
  capability to handle JavaScript, such cookies are not detected or used.

-
Often, if you want to mimic what a browser does on such websites, you can
-
record web browser HTTP traffic when using such a site and then repeat the
-
cookie operations using curl or libcurl.
+
  Often, if you want to mimic what a browser does on such websites, you can
+
  record web browser HTTP traffic when using such a site and then repeat the
+
  cookie operations using curl or libcurl.
modified external/curl/docs/HTTP3.md
@@ -303,6 +303,10 @@ prompt](../winbuild/README.md#open-a-command-prompt)):
     % cd curl/winbuild
     % nmake /f Makefile.vc mode=dll WITH_MSH3=dll MSH3_PATH="C:/Program Files/msh3" MACHINE=x64

+
**Note** - If you encounter a build error with `tool_hugehelp.c` being
+
missing, rename `tool_hugehelp.c.cvs` in the same directory to
+
`tool_hugehelp.c` and then run `nmake` again.
+

Run in the `C:/Program Files/msh3/lib` directory, copy `curl.exe` to that
directory, or copy `msquic.dll` and `msh3.dll` from that directory to the
`curl.exe` directory. For example:
deleted external/curl/docs/HTTPSRR.md
@@ -1,100 +0,0 @@
-
<!--
-
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-

-
SPDX-License-Identifier: curl
-
-->
-

-
# HTTPS RR
-

-
[RFC 9460](https://www.rfc-editor.org/rfc/rfc9460.html) documents the HTTPS
-
DNS Resource Record.
-

-
curl features **experimental** support for HTTPS RR.
-

-
- The ALPN list from the retrieved HTTPS record is parsed
-
- The ECH field is stored (when DoH is used)
-
- The port number from the HTTPS RR is not used
-
- The target name is not used
-
- The IP addresses from the HTTPS RR are not used
-
- It only supports a single HTTPS RR per hostname
-
- consider cases without A/AAAA records but *with* HTTPS RR
-
- consider service profiles where the RR provides different addresses for TCP
-
  vs QUIC etc
-

-
`HTTPSRR` is listed as a feature in the `curl -V` output if curl contains
-
HTTPS RR support. If c-ares is not included in the build, the HTTPS RR support
-
is limited to DoH.
-

-
`asyn-rr` is listed as a feature in the `curl -V` output if c-ares is used for
-
additional resolves in addition to a "normal" resolve done with the threaded
-
resolver.
-

-
The data extracted from the HTTPS RR is stored in the in-memory DNS cache to
-
be reused on subsequent uses of the same hostnames.
-

-
## limitations
-

-
We have decided to work on the HTTPS RR support by following what seems to be
-
(widely) used, and simply wait with implementing the details of the record
-
that do not seem to be deployed. HTTPS RR is a DNS field with many odd corners
-
and complexities and we might as well avoid them if no one seems to want them.
-

-
## build
-

-
    ./configure --enable-httpsrr
-

-
or
-

-
    cmake -DUSE_HTTPSRR=ON
-

-
## ALPN
-

-
The list of ALPN IDs is parsed but may not be completely respected because of
-
what the HTTP version preference is set to, which is a problem we are working
-
on. Also, getting an `HTTP/1.1` ALPN in the HTTPS RR field for an HTTP://
-
transfer should imply switching to HTTPS, HSTS style. Which curl currently
-
does not.
-

-
## DoH
-

-
When HTTPS RR is enabled in the curl build, The DoH code asks for an HTTPS
-
record in addition to the A and AAAA records, and if an HTTPS RR answer is
-
returned, curl parses it and stores the retrieved information.
-

-
## Non-DoH
-

-
If DoH is not used for name resolving in an HTTPS RR enabled build, we must
-
provide the ability using the regular resolver backends. We use the c-ares DNS
-
library for the HTTPS RR lookup. Version 1.28.0 or later.
-

-
### c-ares
-

-
If curl is built to use the c-ares library for name resolves, an HTTPS RR
-
enabled build makes a request for the HTTPS RR in addition to the regular
-
lookup.
-

-
### Threaded resolver
-

-
When built to use the threaded resolver, which is the default, an HTTPS RR
-
build still needs a c-ares installation provided so that a separate request
-
for the HTTPS record can be done in parallel to the regular getaddrinfo()
-
call.
-

-
This is done by specifying both c-ares and threaded resolver to configure:
-

-
    ./configure --enable-ares=... --enable-threaded-resolver
-

-
or to cmake:
-

-
    cmake -DENABLE_ARES=ON -DENABLE_THREADED_RESOLVER=ON
-

-
Because the HTTPS record is handled separately from the A/AAAA record
-
retrieval, by a separate library, there is a small risk for discrepancies.
-

-
When building curl using the threaded resolver with HTTPS RR support (using
-
c-ares), the `curl -V` output looks exactly like a c-ares resolver build.
-

-
## HTTPS RR Options
-

-
Because curl is a low level transfer tool for which users sometimes want
-
detailed control, we need to offer options to control HTTPS RR use.
deleted external/curl/docs/INFRASTRUCTURE.md
@@ -1,193 +0,0 @@
-
<!--
-
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-

-
SPDX-License-Identifier: curl
-
-->
-

-
# Infrastructure in the curl project
-

-
Overview of infrastructure we maintain, host and run in the project for the
-
project.
-

-
## git repository
-

-
Since 2010, the main curl git repository has been hosted by GitHub, available
-
at https://github.com/curl/curl.
-

-
We also use the issue tracker, pull requests and discussions on GitHub.
-

-
curl has an "enterprise account" on GitHub and is an "organization" on the
-
site.
-

-
We accept sponsorship via GitHub Sponsors.
-

-
## CI services
-

-
For every pull request and git push to the master repository, a number of
-
build and testing jobs are run on a set of different CI services. The exact
-
services vary over time. GitHub Actions and AppVeyor are the primary ones
-
these days.
-

-
## Test Clutch
-

-
A [Test Clutch](https://github.com/dfandrich/testclutch) instance generates
-
regular reports on curl CI test results at https://testclutch.curl.se/ as well
-
as writing comments on curl pull requests whose tests have failed. The jobs
-
are hosted on a Virtuozzo Application Platform PaaS instance and is managed by
-
Dan Fandrich. The configuration code is is available and managed at
-
https://github.com/dfandrich/testclutch-curl-web
-

-
## Autobuilds
-

-
The curl autobuild system is a set of scripts that build and test curl and
-
send all output logs back to the autobuild server. The results are
-
continuously collected and visualized on the curl website at
-
<https://curl.se/dev/builds.html>.
-

-
The autobuild system and server is maintained by Daniel Stenberg.
-

-
## OSS-Fuzz
-

-
Google runs the [OSS-Fuzz](https://google.github.io/oss-fuzz/) project which
-
also runs fuzzing on curl code, non-stop, in their infrastructure and they
-
send us emails in the rare instances they actually find something.
-

-
OSS-Fuzz notifies those that are members in the "curl team". Any curl
-
maintainer who wants to is welcome to participate. It requires a Google
-
account.
-

-
## Coverity
-

-
We regularly run our code through the [Coverity static code
-
analyzer](https://scan.coverity.com/) thanks to them offering this service to
-
us for free.
-

-
## CodeSonar
-

-
[CodeSonar](https://codesecure.com/our-products/codesonar/) analyzes the curl
-
source code daily and emails Daniel Stenberg whenever it finds suspected
-
problems in the source code. I hope and expect that we can invite other
-
maintainers to access these reports soon.
-

-
## Domain names
-

-
The project runs services and website using a few different curl related
-
domain names, including `curl.se` and `curl.dev`. Daniel Stenberg owns these
-
domain names.
-

-
Until a few years ago, the curl website was present at `curl.haxx.se`. The
-
`haxx.se` domain is owned by Haxx AB, administrated by Daniel Stenberg. The
-
curl.haxx.se name is meant to keep working and be redirecting to curl.se for
-
the foreseeable future.
-

-
## Websites
-

-
The main curl website at `curl.se` is maintained by curl maintainers and the
-
content is available and managed at https://github.com/curl/curl-www. The site
-
updates from git and runs make every 20 minutes. Any change pushed to git can
-
thus take up to 20 minutes until it takes effect on the origin server.
-

-
The content on `curl.dev` is available and managed at
-
https://github.com/curl/curl.dev/
-

-
The content on `everything-curl.dev` is available and managed at
-
https://github.com/curl/everything-curl/
-

-
The machine hosting the website contents for these three sites is owned by
-
Haxx AB and is primarily managed by Daniel Stenberg (co-owner of the Haxx
-
company). The machine is physically located in Sweden.
-

-
curl release tarballs are hosted on https://curl.se/download.html. They are
-
uploaded there at release-time by the release manager.
-

-
curl-for-win downloads are hosted on https://curl.se/windows and are uploaded
-
to the server by Viktor Szakats.
-

-
curl-for-QNX downloads are hosted on <https://curl.se/qnx> and are uploaded to
-
the server by Daniel Stenberg.
-

-
Daily release tarball-like snapshots are generated automatically and are
-
provided for download at <https://curl.se/snapshots/>.
-

-
CA certificate bundles are extracted from the Firefox source code, hosted by
-
Mozilla and converted to PEM file format and is offered for download. The
-
conversion checks for updates daily. The bundle is provided for download at
-
<https://curl.se/docs/caextract.html>.
-

-
There is an automated "download check bot" that runs twice daily to scan for
-
available curl downloads to populate the curl download page appropriately with
-
the correct updated information. The bot uses URLs and patterns for all
-
download packages and is maintained in a database, maintained by Daniel
-
Stenberg and Dan Fandrich.
-

-
The TLS certificate for the origin curl web server is automatically updated
-
from Let's Encrypt.
-

-
## CDN
-

-
Fastly runs the Content Delivery Network (CDN) that fronts all the curl
-
websites. The CDN caches content that it gets from the origin server.
-
Recently, roughly 99.99% of web requests are satisfied by the CDN without
-
having to reach the origin.
-

-
The CDN caches different content at different lengths depending on the
-
content-type. The caching thus adds to the time for a change to have an effect
-
on the site from the moment it gets pushed to the git repository.
-

-
Using this setup, we provide four IPv4 addresses and eight IPv6 addresses for
-
anycast access to the site. Should be snappy from virtually everywhere across
-
the globe.
-

-
The CDN servers support HTTP/1, HTTP/2 and HTTP/3. They set HSTS for a year.
-
The `HTTP://` version of the site redirects to `HTTPS://`.
-

-
Fastly manages the TLS certificates from Let's Encrypt for the servers they
-
run on the behalf of curl.
-

-
## Containers
-

-
The curl project offer container builds of curl. The source repository for
-
them is located at <https://github.com/curl/curl-container>.
-

-
Container images are hosted at <https://quay.io/repository/curl/curl> and
-
<https://hub.docker.com/r/curlimages/curl>
-

-
## DNS
-

-
The primary domain name, `curl.se` is managed by Kirei and is offered over
-
fault-tolerant anycast servers. High availability and fast access for
-
everyone.
-

-
The actual physical DNS files and origin bind instance is managed by Daniel
-
Stenberg.
-

-
## Mailing lists
-

-
The curl related mailing lists are hosted by Haxx AB on `lists.haxx.se` and
-
are maintained by Daniel Stenberg. This includes the mailman2 and Postfix
-
instances used for this.
-

-
## Email
-

-
We use a few rare additional curl related email aliases in the curl domains.
-
They go through the mail server `mail.haxx.se` maintained by Daniel Stenberg
-

-
## Bug-bounty
-

-
We run a [bug-bounty](https://curl.se/docs/bugbounty.html) on HackerOne. The
-
setup runs entirely at https://hackerone.com/curl.
-

-
The money part for the bug bounty is sponsored by the [Internet Bug
-
Bounty](https://hackerone.com/ibb).
-

-
## Open Collective
-

-
We use [Open Collective](https://opencollective.com/curl) as our "fiscal
-
host". All money sent to and received by the curl project is managed by Open
-
Collective.
-

-
## Merchandise
-

-
We have stickers, coffee mugs and coasters. They are managed by Daniel who
-
sits on the inventory. The best way to get your hands on curl merchandise is
-
to attend events where Daniel is physically.
modified external/curl/docs/INSTALL-CMAKE.md
@@ -149,8 +149,6 @@ assumes that CMake generates `Makefile`:
- `BUILD_STATIC_CURL`:                      Build curl executable with static libcurl. Default: `OFF`
- `BUILD_STATIC_LIBS`:                      Build static libraries. Default: `OFF`
- `BUILD_TESTING`:                          Build tests. Default: `ON`
-
- `CURL_CLANG_TIDY`:                        Run the build through `clang-tidy`. Default: `OFF`
-
- `CURL_CLANG_TIDYFLAGS`:                   Custom options to pass to `clang-tidy`. Default: (empty)
- `CURL_DEFAULT_SSL_BACKEND`:               Override default TLS backend in MultiSSL builds.
                                            Accepted values in order of default priority:
                                            `wolfssl`, `gnutls`, `mbedtls`, `openssl`, `secure-transport`, `schannel`, `bearssl`, `rustls`
@@ -164,7 +162,7 @@ assumes that CMake generates `Makefile`:
- `CURL_TARGET_WINDOWS_VERSION`:            Minimum target Windows version as hex string.
- `CURL_TEST_BUNDLES`:                      Bundle `libtest` and `unittest` tests into single binaries. Default: `OFF`
- `CURL_WERROR`:                            Turn compiler warnings into errors. Default: `OFF`
-
- `ENABLE_CURLDEBUG`:                       Enable TrackMemory debug feature. Default: =`ENABLE_DEBUG`
+
- `ENABLE_CURLDEBUG`:                       Enable TrackMemory debug feature: Default: =`ENABLE_DEBUG`
- `ENABLE_CURL_MANUAL`:                     Build the man page for curl and enable its `-M`/`--manual` option. Default: `ON`
- `ENABLE_DEBUG`:                           Enable curl debug features (for developing curl itself). Default: `OFF`
- `IMPORT_LIB_SUFFIX`:                      Import library suffix. Default: `_imp`
@@ -184,14 +182,13 @@ assumes that CMake generates `Makefile`:

- `CURL_ENABLE_SSL`:                        Enable SSL support. Default: `ON`
- `CURL_WINDOWS_SSPI`:                      Enable SSPI on Windows. Default: =`CURL_USE_SCHANNEL`
-
- `ENABLE_IPV6`:                            Enable IPv6 support. Default: `ON` if target supports IPv6.
-
- `ENABLE_THREADED_RESOLVER`:               Enable threaded DNS lookup. Default: `ON` if c-ares is not enabled and target supports threading.
+
- `ENABLE_IPV6`:                            Enable IPv6 support. Default: `ON`
+
- `ENABLE_THREADED_RESOLVER`:               Enable threaded DNS lookup. Default: `ON` if c-ares is not enabled
- `ENABLE_UNICODE`:                         Use the Unicode version of the Windows API functions. Default: `OFF`
- `ENABLE_UNIX_SOCKETS`:                    Enable Unix domain sockets support. Default: `ON`
- `USE_ECH`:                                Enable ECH support. Default: `OFF`
- `USE_HTTPSRR`:                            Enable HTTPS RR support. Default: `OFF`
- `USE_OPENSSL_QUIC`:                       Use OpenSSL and nghttp3 libraries for HTTP/3 support. Default: `OFF`
-
- `USE_SSLS_EXPORT`:                        Enable experimental SSL session import/export. Default: `OFF`

## Disabling features

@@ -206,7 +203,7 @@ assumes that CMake generates `Makefile`:
- `CURL_DISABLE_DIGEST_AUTH`:               Disable Digest authentication. Default: `OFF`
- `CURL_DISABLE_DOH`:                       Disable DNS-over-HTTPS. Default: `OFF`
- `CURL_DISABLE_FILE`:                      Disable FILE. Default: `OFF`
-
- `CURL_DISABLE_FORM_API`:                  Disable **form-api**. Default: =`CURL_DISABLE_MIME`
+
- `CURL_DISABLE_FORM_API`:                  Disable **form-api**: Default: =`CURL_DISABLE_MIME`
- `CURL_DISABLE_FTP`:                       Disable FTP. Default: `OFF`
- `CURL_DISABLE_GETOPTIONS`:                Disable `curl_easy_options` API for existing options to `curl_easy_setopt`. Default: `OFF`
- `CURL_DISABLE_GOPHER`:                    Disable Gopher. Default: `OFF`
@@ -252,7 +249,6 @@ assumes that CMake generates `Makefile`:

## CMake options

-
- `CMAKE_BUILD_TYPE`:                       (see CMake)
- `CMAKE_DEBUG_POSTFIX`:                    Default: `-d`
- `CMAKE_IMPORT_LIBRARY_SUFFIX`             (see CMake)
- `CMAKE_INSTALL_BINDIR`                    (see CMake)
@@ -269,7 +265,7 @@ Details via CMake

## Dependencies

-
- `CURL_BROTLI`:                            Use brotli (`ON`, `OFF` or `AUTO`). Default: `AUTO`
+
- `CURL_BROTLI`:                            Use brotli. Default: `OFF`
- `CURL_USE_BEARSSL`:                       Enable BearSSL for SSL/TLS. Default: `OFF`
- `CURL_USE_GNUTLS`:                        Enable GnuTLS for SSL/TLS. Default: `OFF`
- `CURL_USE_GSASL`:                         Use libgsasl. Default: `OFF`
@@ -280,14 +276,14 @@ Details via CMake
- `CURL_USE_LIBUV`:                         Use libuv for event-based tests. Default: `OFF`
- `CURL_USE_MBEDTLS`:                       Enable mbedTLS for SSL/TLS. Default: `OFF`
- `CURL_USE_OPENSSL`:                       Enable OpenSSL for SSL/TLS. Default: `ON` if no other TLS backend was enabled.
-
- `CURL_USE_PKGCONFIG`:                     Enable `pkg-config` to detect dependencies. Default: `ON` for Unix (except Android, Apple devices), vcpkg, MinGW if not cross-compiling.
+
- `CURL_USE_PKGCONFIG`:                     Enable `pkg-config` to detect dependencies. Default: `ON` for Unix, vcpkg, MinGW if not cross-compiling.
- `CURL_USE_RUSTLS`:                        Enable Rustls for SSL/TLS. Default: `OFF`
- `CURL_USE_SCHANNEL`:                      Enable Windows native SSL/TLS (Schannel). Default: `OFF`
- `CURL_USE_SECTRANSP`:                     Enable Apple OS native SSL/TLS (Secure Transport). Default: `OFF`
- `CURL_USE_WOLFSSH`:                       Use wolfSSH. Default: `OFF`
- `CURL_USE_WOLFSSL`:                       Enable wolfSSL for SSL/TLS. Default: `OFF`
- `CURL_ZLIB`:                              Use zlib (`ON`, `OFF` or `AUTO`). Default: `AUTO`
-
- `CURL_ZSTD`:                              Use zstd (`ON`, `OFF` or `AUTO`). Default: `AUTO`
+
- `CURL_ZSTD`:                              Use zstd. Default: `OFF`
- `ENABLE_ARES`:                            Enable c-ares support. Default: `OFF`
- `USE_APPLE_IDN`:                          Use Apple built-in IDN support. Default: `OFF`
- `USE_LIBIDN2`:                            Use libidn2 for IDN support. Default: `ON`
@@ -302,17 +298,12 @@ Details via CMake
## Dependency options (via CMake)

- `OPENSSL_ROOT_DIR`:                       Set this variable to the root installation of OpenSSL (and forks).
-
- `OPENSSL_USE_STATIC_LIBS`:                Look for static OpenSSL libraries.
- `ZLIB_INCLUDE_DIR`:                       The zlib include directory.
- `ZLIB_LIBRARY`:                           Path to `zlib` library.

## Dependency options

-
- `CLANG_TIDY`:                             `clang-tidy` tool used with `CURL_CLANG_TIDY=ON`. Default: `clang-tidy`
- `PERL_EXECUTABLE`                         Perl binary used throughout the build and tests.
-
- `AMISSL_INCLUDE_DIR`:                     The AmiSSL include directory.
-
- `AMISSL_STUBS_LIBRARY`:                   Path to `amisslstubs` library.
-
- `AMISSL_AUTO_LIBRARY`:                    Path to `amisslauto` library.
- `BEARSSL_INCLUDE_DIR`:                    The BearSSL include directory.
- `BEARSSL_LIBRARY`:                        Path to `bearssl` library.
- `BROTLI_INCLUDE_DIR`:                     The brotli include directory.
@@ -320,7 +311,6 @@ Details via CMake
- `BROTLIDEC_LIBRARY`:                      Path to `brotlidec` library.
- `CARES_INCLUDE_DIR`:                      The c-ares include directory.
- `CARES_LIBRARY`:                          Path to `cares` library.
-
- `DL_LIBRARY`:                             Path to `dl` library. (for Rustls)
- `GSS_ROOT_DIR`:                           Set this variable to the root installation of GSS. (also supported as environment)
- `LDAP_LIBRARY`:                           Name or full path to `ldap` library. Default: `ldap`
- `LDAP_LBER_LIBRARY`:                      Name or full path to `lber` library. Default: `lber`
@@ -331,21 +321,18 @@ Details via CMake
- `LIBIDN2_LIBRARY`:                        Path to `libidn2` library.
- `LIBPSL_INCLUDE_DIR`:                     The libpsl include directory.
- `LIBPSL_LIBRARY`:                         Path to `libpsl` library.
-
- `LIBRTMP_INCLUDE_DIR`:                    The librtmp include directory.
-
- `LIBRTMP_LIBRARY`:                        Path to `librtmp` library.
- `LIBSSH_INCLUDE_DIR`:                     The libssh include directory.
- `LIBSSH_LIBRARY`:                         Path to `libssh` library.
- `LIBSSH2_INCLUDE_DIR`:                    The libssh2 include directory.
- `LIBSSH2_LIBRARY`:                        Path to `libssh2` library.
- `LIBUV_INCLUDE_DIR`:                      The libuv include directory.
- `LIBUV_LIBRARY`:                          Path to `libuv` library.
-
- `MATH_LIBRARY`:                           Path to `m` library. (for Rustls, wolfSSL)
+
- `MSH3_INCLUDE_DIR`:                       The msh3 include directory.
+
- `MSH3_LIBRARY`:                           Path to `msh3` library.
- `MBEDTLS_INCLUDE_DIR`:                    The mbedTLS include directory.
- `MBEDTLS_LIBRARY`:                        Path to `mbedtls` library.
- `MBEDX509_LIBRARY`:                       Path to `mbedx509` library.
- `MBEDCRYPTO_LIBRARY`:                     Path to `mbedcrypto` library.
-
- `MSH3_INCLUDE_DIR`:                       The msh3 include directory.
-
- `MSH3_LIBRARY`:                           Path to `msh3` library.
- `NGHTTP2_INCLUDE_DIR`:                    The nghttp2 include directory.
- `NGHTTP2_LIBRARY`:                        Path to `nghttp2` library.
- `NGHTTP3_INCLUDE_DIR`:                    The nghttp3 include directory.
@@ -354,12 +341,10 @@ Details via CMake
- `NGTCP2_LIBRARY`:                         Path to `ngtcp2` library.
- `NETTLE_INCLUDE_DIR`:                     The nettle include directory.
- `NETTLE_LIBRARY`:                         Path to `nettle` library.
-
- `PTHREAD_LIBRARY`:                        Path to `pthread` library. (for Rustls)
- `QUICHE_INCLUDE_DIR`:                     The quiche include directory.
- `QUICHE_LIBRARY`:                         Path to `quiche` library.
- `RUSTLS_INCLUDE_DIR`:                     The Rustls include directory.
- `RUSTLS_LIBRARY`:                         Path to `rustls` library.
-
- `WATT_ROOT`:                              Set this variable to the root installation of Watt-32.
- `WOLFSSH_INCLUDE_DIR`:                    The wolfSSH include directory.
- `WOLFSSH_LIBRARY`:                        Path to `wolfssh` library.
- `WOLFSSL_INCLUDE_DIR`:                    The wolfSSL include directory.
@@ -369,101 +354,10 @@ Details via CMake

## Test tools

+
- `APACHECTL`:                              Default: `apache2ctl`
- `APXS`:                                   Default: `apxs`
- `CADDY`:                                  Default: `caddy`
- `HTTPD_NGHTTPX`:                          Default: `nghttpx`
- `HTTPD`:                                  Default: `apache2`
- `TEST_NGHTTPX`:                           Default: `nghttpx`
- `VSFTPD`:                                 Default: `vsftps`
-

-
# Migrating from Visual Studio IDE Project Files
-

-
We recommend CMake to build curl with MSVC.
-

-
The project build files reside in project/Windows/VC\* for VS2010, VS2010 and
-
VS2013 respectively.
-

-
These CMake Visual Studio generators require CMake v3.24 or older. You can
-
download them from <https://cmake.org/files/v3.24/>.
-

-
You can also use `-G "NMake Makefiles"`, which is supported by all CMake
-
versions.
-

-
Configuration element             | Equivalent CMake options
-
:-------------------------------- | :--------------------------------
-
`VC10`                            | `-G "Visual Studio 10 2010"`
-
`VC11`                            | `-G "Visual Studio 11 2012"`
-
`VC12`                            | `-G "Visual Studio 12 2013"`
-
`x64`                             | `-A x64`
-
`Win32`                           | `-A Win32`
-
`DLL`                             | `BUILD_SHARED_LIBS=ON`, `BUILD_STATIC_LIBS=OFF`, (default)
-
`LIB`                             | `BUILD_SHARED_LIBS=OFF`, `BUILD_STATIC_LIBS=ON`
-
`Debug`                           | `CMAKE_BUILD_TYPE=Debug`
-
`Release`                         | `CMAKE_BUILD_TYPE=Release`
-
`DLL Windows SSPI`                | `CURL_USE_SCHANNEL=ON` (with SSPI enabled by default)
-
`DLL OpenSSL`                     | `CURL_USE_OPENSSL=ON`, optional: `OPENSSL_ROOT_DIR`, `OPENSSL_USE_STATIC_LIBS=ON`
-
`DLL libssh2`                     | `CURL_USE_LIBSSH2=ON`, optional: `LIBSSH2_INCLUDE_DIR`, `LIBSSH2_LIBRARY`
-
`DLL WinIDN`                      | `USE_WIN32_IDN=ON`
-

-
For example these commands:
-

-
    > cd projects
-
    > ./generate.bat VC12
-
    > msbuild "-property:Configuration=DLL Debug - DLL Windows SSPI - DLL WinIDN" Windows/VC12/curl-all.sln
-

-
translate to:
-

-
    > cmake . -G "Visual Studio 12 2013" -A x64 -DCMAKE_BUILD_TYPE=Debug -DCURL_USE_SCHANNEL=ON -DUSE_WIN32_IDN=ON -DCURL_USE_LIBPSL=OFF
-

-
# Migrating from winbuild builds
-

-
We recommend CMake to build curl with MSVC. The winbuild build method is
-
deprecated and may be dropped in a future release.
-

-
In CMake you can customize the path of dependencies by passing the absolute
-
header path and the full path of the library via `*_INCLUDE_DIR` and
-
`*_LIBRARY` options (see the complete list in the option listing above).
-
The full path to the library can point to a static library or an import
-
library, which defines if the dependency is linked as a dll or statically.
-
For OpenSSL this works
-
[differently](https://cmake.org/cmake/help/latest/module/FindOpenSSL.html):
-
You can pass the root directory of the OpenSSL installation via
-
`OPENSSL_ROOT_DIR`, then pass `OPENSSL_USE_STATIC_LIBS=ON` to select static
-
libs.
-

-
winbuild options                  | Equivalent CMake options
-
:-------------------------------- | :--------------------------------
-
`DEBUG`                           | `CMAKE_BUILD_TYPE=Debug`
-
`GEN_PDB`                         | `CMAKE_EXE_LINKER_FLAGS=/Fd<path>`, `CMAKE_SHARED_LINKER_FLAGS=/Fd<path>`
-
`LIB_NAME_DLL`, `LIB_NAME_STATIC` | `IMPORT_LIB_SUFFIX`, `LIBCURL_OUTPUT_NAME`, `STATIC_LIB_SUFFIX`
-
`VC`                              | see CMake `-G` [options](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html)
-
`MACHINE`: `x64`, `x86`           | `-A x64`, `-A Win32`
-
`MODE`: `dll`, `static`           | `BUILD_SHARED_LIBS=ON/OFF`, `BUILD_STATIC_LIBS=ON/OFF`, `BUILD_STATIC_CURL=ON/OFF` (default: dll)
-
`RTLIBCFG`: `static`              | `CURL_STATIC_CRT=ON`
-
`ENABLE_IDN`                      | `USE_WIN32_IDN=ON`
-
`ENABLE_IPV6`                     | `ENABLE_IPV6=ON`
-
`ENABLE_MSH3`                     | `USE_MSH3=ON`
-
`ENABLE_NGHTTP2`                  | `USE_NGHTTP2=ON`
-
`ENABLE_OPENSSL_AUTO_LOAD_CONFIG` | `CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG=OFF` (default)
-
`ENABLE_SCHANNEL`                 | `CURL_USE_SCHANNEL=ON`
-
`ENABLE_SSPI`                     | `CURL_WINDOWS_SSPI=ON` (default with Schannel)
-
`ENABLE_UNICODE`                  | `ENABLE_UNICODE=ON`
-
`WITH_PREFIX`                     | `CMAKE_INSTALL_PREFIX=<path>`
-
`WITH_DEVEL`                      | see individual `*_INCLUDE_DIR` and `*_LIBRARY` options and `OPENSSL_ROOT_DIR`
-
`WITH_CARES`, `CARES_PATH`        | `ENABLE_ARES=ON`, optional: `CARES_INCLUDE_DIR`, `CARES_LIBRARY`
-
`WITH_MBEDTLS`, `MBEDTLS_PATH`    | `CURL_USE_MBEDTLS=ON`, optional: `MBEDTLS_INCLUDE_DIR`, `MBEDTLS_LIBRARY`, `MBEDX509_LIBRARY`, `MBEDCRYPTO_LIBRARY`
-
`WITH_MSH3`, `MSH_PATH`           | `USE_MSH3=ON`, optional: `MSH3_INCLUDE_DIR`, `MSH3_LIBRARY`
-
`WITH_NGHTTP2`, `NGHTTP2_PATH`    | `USE_NGHTTP2=ON`, optional: `NGHTTP2_INCLUDE_DIR`, `NGHTTP2_LIBRARY`
-
`WITH_SSH`, `SSH_PATH`            | `CURL_USE_LIBSSH=ON`, optional: `LIBSSH_INCLUDE_DIR`, `LIBSSH_LIBRARY`
-
`WITH_SSH2`, `SSH2_PATH`          | `CURL_USE_LIBSSH2=ON`, optional: `LIBSSH2_INCLUDE_DIR`, `LIBSSH2_LIBRARY`
-
`WITH_SSL`, `SSL_PATH`            | `CURL_USE_OPENSSL=ON`, optional: `OPENSSL_ROOT_DIR`, `OPENSSL_USE_STATIC_LIBS=ON`
-
`WITH_WOLFSSL`, `WOLFSSL_PATH`    | `CURL_USE_WOLFSSL=ON`, optional: `WOLFSSL_INCLUDE_DIR`, `WOLFSSL_LIBRARY`
-
`WITH_ZLIB`, `ZLIB_PATH`          | `CURL_ZLIB=ON`, optional: `ZLIB_INCLUDE_DIR`, `ZLIB_LIBRARY`
-

-
For example this command-line:
-

-
    > nmake -f Makefile.vc VC=17 MACHINE=x64 DEBUG=ON mode=dll SSL_PATH=C:\OpenSSL WITH_SSL=dll ENABLE_UNICODE=ON
-

-
translates to:
-

-
    > cmake . -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DOPENSSL_ROOT_DIR=C:\OpenSSL -DCURL_USE_OPENSSL=ON -DENABLE_UNICODE=ON -DCURL_USE_LIBPSL=OFF
modified external/curl/docs/INSTALL.md
@@ -180,11 +180,6 @@ library check.

Building for Windows XP is required as a minimum.

-
You can build curl with:
-

-
- Microsoft Visual Studio 2008 v9.0 or later (`_MSC_VER >= 1500`)
-
- MinGW-w64
-

## Building Windows DLLs and C runtime (CRT) linkage issues

 As a general rule, building a DLL with static CRT linkage is highly
@@ -216,34 +211,17 @@ Run `make`

## MS-DOS

-
You can use either autotools or cmake:
-

-
    ./configure \
-
      CC=/path/to/djgpp/bin/i586-pc-msdosdjgpp-gcc \
-
      AR=/path/to/djgpp/bin/i586-pc-msdosdjgpp-ar \
-
      RANLIB=/path/to/djgpp/bin/i586-pc-msdosdjgpp-ranlib \
-
      WATT_ROOT=/path/to/djgpp/net/watt \
-
      --host=i586-pc-msdosdjgpp \
-
      --with-openssl=/path/to/djgpp \
-
      --with-zlib=/path/to/djgpp \
-
      --without-libpsl \
-
      --disable-shared
-

-
    cmake . \
-
      -DCMAKE_SYSTEM_NAME=DOS \
-
      -DCMAKE_C_COMPILER_TARGET=i586-pc-msdosdjgpp \
-
      -DCMAKE_C_COMPILER=/path/to/djgpp/bin/i586-pc-msdosdjgpp-gcc \
-
      -DWATT_ROOT=/path/to/djgpp/net/watt \
-
      -DOPENSSL_INCLUDE_DIR=/path/to/djgpp/include \
-
      -DOPENSSL_SSL_LIBRARY=/path/to/djgpp/lib/libssl.a \
-
      -DOPENSSL_CRYPTO_LIBRARY=/path/to/djgpp/lib/libcrypto.a \
-
      -DZLIB_INCLUDE_DIR=/path/to/djgpp/include \
-
      -DZLIB_LIBRARY=/path/to/djgpp/lib/libz.a \
-
      -DCURL_USE_LIBPSL=OFF
+
Requires DJGPP in the search path and pointing to the Watt-32 stack via
+
`WATT_PATH=c:/djgpp/net/watt`.
+

+
Run `make -f Makefile.dist djgpp` in the root curl dir.
+

+
For build configuration options, please see the mingw-w64 section.

Notes:

-
 - Requires DJGPP 2.04 or upper.
+
 - DJGPP 2.04 beta has a `sscanf()` bug so the URL parsing is not done
+
   properly. Use DJGPP 2.03 until they fix it.

 - Compile Watt-32 (and OpenSSL) with the same version of DJGPP. Otherwise
   things go wrong because things like FS-extensions and `errno` values have
@@ -251,31 +229,9 @@ Notes:

## AmigaOS

-
You can use either autotools or cmake:
-

-
    ./configure \
-
      CC=/opt/amiga/bin/m68k-amigaos-gcc \
-
      AR=/opt/amiga/bin/m68k-amigaos-ar \
-
      RANLIB=/opt/amiga/bin/m68k-amigaos-ranlib \
-
      --host=m68k-amigaos \
-
      --with-amissl \
-
      CFLAGS='-O0 -msoft-float -mcrt=clib2' \
-
      CPPFLAGS=-I/path/to/AmiSSL/Developer/include \
-
      LDFLAGS=-L/path/to/AmiSSL/Developer/lib/AmigaOS3 \
-
      LIBS='-lnet -lm -latomic' \
-
      --without-libpsl \
-
      --disable-shared
-

-
    cmake . \
-
      -DAMIGA=1 \
-
      -DCMAKE_SYSTEM_NAME=Generic \
-
      -DCMAKE_C_COMPILER_TARGET=m68k-unknown-amigaos \
-
      -DCMAKE_C_COMPILER=/opt/amiga/bin/m68k-amigaos-gcc \
-
      -DCMAKE_C_FLAGS='-O0 -msoft-float -mcrt=clib2' \
-
      -DAMISSL_INCLUDE_DIR=/path/to/AmiSSL/Developer/include \
-
      -DAMISSL_STUBS_LIBRARY=/path/to/AmiSSL/Developer/lib/AmigaOS3/libamisslstubs.a \
-
      -DAMISSL_AUTO_LIBRARY=/path/to/AmiSSL/Developer/lib/AmigaOS3/libamisslauto.a \
-
      -DCURL_USE_LIBPSL=OFF
+
Run `make -f Makefile.dist amiga` in the root curl dir.
+

+
For build configuration options, please see the mingw-w64 section.

## Disabling Specific Protocols in Windows builds

@@ -304,7 +260,7 @@ necessary to make the definition of the preprocessor symbol `USE_LWIPSOCK`
visible to libcurl and curl compilation processes. To set this definition you
have the following alternatives:

-
 - Modify `lib/config-win32.h`
+
 - Modify `lib/config-win32.h` and `src/config-win32.h`
 - Modify `winbuild/Makefile.vc`
 - Modify the "Preprocessor Definitions" in the libcurl project

@@ -367,15 +323,6 @@ make -j8
make install
```

-
With CMake:
-

-
```bash
-
cmake . \
-
  -DCMAKE_OSX_ARCHITECTURES=x86_64 \
-
  -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 \
-
  -DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)"
-
```
-

The above command lines build curl for macOS platform with `x86_64`
architecture and `10.8` as deployment target.

@@ -392,15 +339,6 @@ make -j8
make install
```

-
With CMake (3.16 or upper recommended):
-

-
```bash
-
cmake . \
-
  -DCMAKE_SYSTEM_NAME=iOS \
-
  -DCMAKE_OSX_ARCHITECTURES=arm64 \
-
  -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0
-
```
-

Another example for watchOS simulator for macs with Apple Silicon:

```bash
@@ -419,26 +357,14 @@ In all above, the built libraries and executables can be found in the

# Android

-
When building curl for Android you can you CMake or curl's `configure` script.
-

-
Before you can build curl for Android, you need to install the Android NDK
-
first. This can be done using the SDK Manager that is part of Android Studio.
-
Once you have installed the Android NDK, you need to figure out where it has
-
been installed and then set up some environment variables before launching
-
the build.
-

-
Examples to compile for `aarch64` and API level 29:
-

-
with CMake, where `ANDROID_NDK_HOME` points into your NDK:
-

-
    cmake . \
-
      -DANDROID_ABI=arm64-v8a \
-
      -DANDROID_PLATFORM=android-29 \
-
      -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake" \
-
      -DCURL_ENABLE_SSL=OFF \
-
      -DCURL_USE_LIBPSL=OFF
-

-
with `configure`, on macOS:
+
When building curl for Android it is recommended to use a Linux/macOS
+
environment since using curl's `configure` script is the easiest way to build
+
curl for Android. Before you can build curl for Android, you need to install
+
the Android NDK first. This can be done using the SDK Manager that is part of
+
Android Studio. Once you have installed the Android NDK, you need to figure
+
out where it has been installed and then set up some environment variables
+
before launching `configure`. On macOS, those variables could look like this
+
to compile for `aarch64` and API level 29:

```bash
export ANDROID_NDK_HOME=~/Library/Android/sdk/ndk/25.1.8937393 # Point into your NDK.
@@ -446,8 +372,8 @@ export HOST_TAG=darwin-x86_64 # Same tag for Apple Silicon. Other OS values here
export TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$HOST_TAG
export AR=$TOOLCHAIN/bin/llvm-ar
export AS=$TOOLCHAIN/bin/llvm-as
-
export CC=$TOOLCHAIN/bin/aarch64-linux-android29-clang
-
export CXX=$TOOLCHAIN/bin/aarch64-linux-android29-clang++
+
export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang
+
export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++
export LD=$TOOLCHAIN/bin/ld
export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
export STRIP=$TOOLCHAIN/bin/llvm-strip
@@ -646,22 +572,20 @@ This is a probably incomplete list of known CPU architectures and operating
systems that curl has been compiled for. If you know a system curl compiles
and runs on, that is not listed, please let us know.

-
## 104 Operating Systems
-

-
    AIX, AmigaOS, Android, ArcoOS, Aros, Atari FreeMiNT, BeOS, Blackberry
-
    10, Blackberry Tablet OS, Cell OS, CheriBSD, Chrome OS, Cisco IOS,
-
    DG/UX, DR DOS, Dragonfly BSD, eCOS, FreeBSD, FreeDOS, FreeRTOS, Fuchsia,
-
    Garmin OS, Genode, Haiku, HardenedBSD, HP-UX, Hurd, IBM I, illumos,
-
    Integrity, iOS, ipadOS, IRIX, Linux, Lua RTOS, Mac OS 9, macOS, Maemo,
-
    Mbed, Meego, Micrium, MINIX, Minoca, Moblin, MorphOS, MPE/iX, MS-DOS,
-
    NCR MP-RAS, NetBSD, Netware, NextStep, Nintendo 3DS Nintendo Switch,
-
    NonStop OS, NuttX, OpenBSD, OpenStep, Orbis OS, OS/2, OS21, Plan 9,
-
    PlayStation Portable, QNX, Qubes OS, ReactOS, Redox, RISC OS, ROS,
-
    RTEMS, Sailfish OS, SCO Unix, Serenity, SINIX-Z, SkyOS, software,
-
    Solaris, Sortix, SunOS, Syllable OS, Symbian, Tizen, TPF, Tru64, tvOS,
-
    ucLinux, Ultrix, UNICOS, UnixWare, VMS, vxWorks, watchOS, Wear OS,
-
    WebOS, Wii system Wii U, Windows CE, Windows, Xbox System, Xenix, z/OS,
-
    z/TPF, z/VM, z/VSE, Zephyr
+
## 101 Operating Systems
+

+
    AIX, AmigaOS, Android, ArcoOS, Aros, Atari FreeMiNT, BeOS, Blackberry 10,
+
    Blackberry Tablet OS, Cell OS, CheriBSD, Chrome OS, Cisco IOS, DG/UX,
+
    Dragonfly BSD, DR DOS, eCOS, FreeBSD, FreeDOS, FreeRTOS, Fuchsia, Garmin OS,
+
    Genode, Haiku, HardenedBSD, HP-UX, Hurd, illumos, Integrity, iOS, ipadOS, IRIX,
+
    Linux, Lua RTOS, Mac OS 9, macOS, Mbed, Meego, Micrium, MINIX, Moblin, MorphOS,
+
    MPE/iX, MS-DOS, NCR MP-RAS, NetBSD, Netware, NextStep, Nintendo Switch,
+
    NonStop OS, NuttX, OpenBSD, OpenStep, Orbis OS, OS/2, OS/400, OS21, Plan 9,
+
    PlayStation Portable, QNX, Qubes OS, ReactOS, Redox, RISC OS, ROS, RTEMS,
+
    Sailfish OS, SCO Unix, Serenity, SINIX-Z, SkyOS, Solaris, Sortix, SunOS,
+
    Syllable OS, Symbian, Tizen, TPF, Tru64, tvOS, ucLinux, Ultrix, UNICOS,
+
    UnixWare, VMS, vxWorks, watchOS, Wear OS, WebOS, Wii system software, Wii U,
+
    Windows, Windows CE, Xbox System, Xenix, Zephyr, z/OS, z/TPF, z/VM, z/VSE

## 28 CPU Architectures

modified external/curl/docs/INTERNALS.md
@@ -26,11 +26,11 @@ versions of libs and build tools.

 - OpenSSL      0.9.7
 - GnuTLS       3.1.10
-
 - zlib         1.2.0.4
+
 - zlib         1.1.4
 - libssh2      1.0
 - c-ares       1.16.0
 - libidn2      2.0.0
-
 - wolfSSL      3.4.6
+
 - wolfSSL      2.0.0
 - OpenLDAP     2.0
 - MIT Kerberos 1.2.4
 - Heimdal      ?
modified external/curl/docs/KNOWN_BUGS
@@ -21,7 +21,6 @@ problems may have been fixed or changed somewhat since this was written.
 2.7 Client cert (MTLS) issues with Schannel
 2.11 Schannel TLS 1.2 handshake bug in old Windows versions
 2.13 CURLOPT_CERTINFO results in CURLE_OUT_OF_MEMORY with Schannel
-
 2.14 mbedTLS and CURLE_AGAIN handling

 3. Email protocols
 3.1 IMAP SEARCH ALL truncated response
@@ -160,10 +159,6 @@ problems may have been fixed or changed somewhat since this was written.

 https://github.com/curl/curl/issues/8741

-
2.14 mbedTLS and CURLE_AGAIN handling
-

-
 https://github.com/curl/curl/issues/15801
-

3. Email protocols

3.1 IMAP SEARCH ALL truncated response
modified external/curl/docs/MANUAL.md
@@ -115,7 +115,7 @@ matching public key file must be specified using the `--pubkey` option.

### HTTP

-
curl also supports user and password in HTTP URLs, thus you can pick a file
+
Curl also supports user and password in HTTP URLs, thus you can pick a file
like:

    curl http://name:passwd@http.server.example/full/path/to/file
@@ -170,7 +170,7 @@ curl uses HTTP/1.0 instead of HTTP/1.1 for any `CONNECT` attempts.

curl also supports SOCKS4 and SOCKS5 proxies with `--socks4` and `--socks5`.

-
See also the environment variables curl supports that offer further proxy
+
See also the environment variables Curl supports that offer further proxy
control.

Most FTP proxy servers are set up to appear as a normal FTP server from the
@@ -199,7 +199,7 @@ should be read from STDIN.
## Ranges

HTTP 1.1 introduced byte-ranges. Using this, a client can request to get only
-
one or more sub-parts of a specified document. curl supports this with the
+
one or more sub-parts of a specified document. Curl supports this with the
`-r` flag.

Get the first 100 bytes of a document:
@@ -210,7 +210,7 @@ Get the last 500 bytes of a document:

    curl -r -500 http://www.example.com/

-
curl also supports simple ranges for FTP files as well. Then you can only
+
Curl also supports simple ranges for FTP files as well. Then you can only
specify start and stop position.

Get the first 100 bytes of a document using FTP:
@@ -238,7 +238,7 @@ Upload a local file to get appended to the remote file:

    curl -T localfile -a ftp://ftp.example.com/remotefile

-
curl also supports ftp upload through a proxy, but only if the proxy is
+
Curl also supports ftp upload through a proxy, but only if the proxy is
configured to allow that kind of tunneling. If it does, you can run curl in a
fashion similar to:

@@ -264,7 +264,7 @@ For other ways to do HTTP data upload, see the POST section below.

If curl fails where it is not supposed to, if the servers do not let you in,
if you cannot understand the responses: use the `-v` flag to get verbose
-
fetching. curl outputs lots of info and what it sends and receives in order to
+
fetching. Curl outputs lots of info and what it sends and receives in order to
let the user see all client-server interaction (but it does not show you the
actual data).

@@ -286,7 +286,7 @@ info on a single file for HTTP and FTP. The HTTP information is a lot more
extensive.

For HTTP, you can get the header information (the same as `-I` would show)
-
shown before the data by using `-i`/`--include`. curl understands the
+
shown before the data by using `-i`/`--include`. Curl understands the
`-D`/`--dump-header` option when getting files from both FTP and HTTP, and it
then stores the headers in the specified file.

@@ -407,7 +407,7 @@ contain certain data.
## User Agent

An HTTP request has the option to include information about the browser that
-
generated the request. curl allows it to be specified on the command line. It
+
generated the request. Curl allows it to be specified on the command line. It
is especially useful to fool or trick stupid servers or CGI scripts that only
accept certain browsers.

@@ -456,7 +456,7 @@ Example, get a page that wants my name passed in a cookie:

    curl -b "name=Daniel" www.example.com

-
curl also has the ability to use previously received cookies in following
+
Curl also has the ability to use previously received cookies in following
sessions. If you get cookies from a server and store them in a file in a
manner similar to:

@@ -482,7 +482,7 @@ non-existing file to trigger the cookie awareness like:
    curl -L -b empty.txt www.example.com

The file to read cookies from must be formatted using plain HTTP headers OR as
-
Netscape's cookie file. curl determines what kind it is based on the file
+
Netscape's cookie file. Curl determines what kind it is based on the file
contents. In the above command, curl parses the header and store the cookies
received from www.example.com. curl sends the stored cookies which match the
request to the server as it follows the location. The file `empty.txt` may be
@@ -523,7 +523,7 @@ much explanation!

## Speed Limit

-
curl allows the user to set the transfer speed conditions that must be met to
+
Curl allows the user to set the transfer speed conditions that must be met to
let the transfer keep going. By using the switch `-y` and `-Y` you can make
curl abort transfers if the transfer speed is below the specified lowest limit
for a specified time.
@@ -562,7 +562,7 @@ stalls during periods.

## Config File

-
curl automatically tries to read the `.curlrc` file (or `_curlrc` file on
+
Curl automatically tries to read the `.curlrc` file (or `_curlrc` file on
Microsoft Windows systems) from the user's home directory on startup.

The config file could be made up with normal command line switches, but you
@@ -822,7 +822,7 @@ with current logon credentials (SSPI/SPNEGO).

## Environment Variables

-
curl reads and understands the following proxy related environment variables:
+
Curl reads and understands the following environment variables:

    http_proxy, HTTPS_PROXY, FTP_PROXY

@@ -855,7 +855,7 @@ this is a big security risk if someone else gets hold of your passwords,
therefore most Unix programs do not read this file unless it is only readable
by yourself (curl does not care though).

-
curl supports `.netrc` files if told to (using the `-n`/`--netrc` and
+
Curl supports `.netrc` files if told to (using the `-n`/`--netrc` and
`--netrc-optional` options). This is not restricted to just FTP, so curl can
use it for all protocols where authentication is used.

@@ -876,7 +876,7 @@ ending newline:

## Kerberos FTP Transfer

-
curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need the
+
Curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need the
kerberos package installed and used at curl build time for it to be available.

First, get the krb-ticket the normal way, like with the `kinit`/`kauth` tool.
@@ -889,7 +889,7 @@ ask for one and you already entered the real password to `kinit`/`kauth`.

## TELNET

-
The curl telnet support is basic and easy to use. curl passes all data passed
+
The curl telnet support is basic and easy to use. Curl passes all data passed
to it on stdin to the remote server. Connect to a remote telnet server using a
command line similar to:

modified external/curl/docs/Makefile.am
@@ -50,13 +50,12 @@ INTERNALDOCS = \
 internals/CONNECTION-FILTERS.md                \
 internals/DYNBUF.md                            \
 internals/HASH.md                              \
+
 internals/HYPER.md                             \
 internals/LLIST.md                             \
 internals/MQTT.md                              \
 internals/NEW-PROTOCOL.md                      \
 internals/README.md                            \
 internals/SPLAY.md                             \
-
 internals/STRPARSE.md                          \
-
 internals/TLS-SESSIONS.md                      \
 internals/WEBSOCKET.md

EXTRA_DIST =                                    \
@@ -87,8 +86,6 @@ EXTRA_DIST = \
 HSTS.md                                        \
 HTTP-COOKIES.md                                \
 HTTP3.md                                       \
-
 HTTPSRR.md                                     \
-
 INFRASTRUCTURE.md                              \
 INSTALL                                        \
 INSTALL-CMAKE.md                               \
 INSTALL.md                                     \
modified external/curl/docs/Makefile.in
@@ -260,6 +260,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -284,10 +285,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -306,14 +328,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -350,6 +380,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -357,10 +390,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -440,13 +509,12 @@ INTERNALDOCS = \
 internals/CONNECTION-FILTERS.md                \
 internals/DYNBUF.md                            \
 internals/HASH.md                              \
+
 internals/HYPER.md                             \
 internals/LLIST.md                             \
 internals/MQTT.md                              \
 internals/NEW-PROTOCOL.md                      \
 internals/README.md                            \
 internals/SPLAY.md                             \
-
 internals/STRPARSE.md                          \
-
 internals/TLS-SESSIONS.md                      \
 internals/WEBSOCKET.md

EXTRA_DIST = \
@@ -477,8 +545,6 @@ EXTRA_DIST = \
 HSTS.md                                        \
 HTTP-COOKIES.md                                \
 HTTP3.md                                       \
-
 HTTPSRR.md                                     \
-
 INFRASTRUCTURE.md                              \
 INSTALL                                        \
 INSTALL-CMAKE.md                               \
 INSTALL.md                                     \
modified external/curl/docs/RELEASE-PROCEDURE.md
@@ -56,10 +56,6 @@ inform
- send an email to curl-users, curl-announce and curl-library. Insert the
  RELEASE-NOTES into the mail.

-
- if there are any advisories associated with the release, send each markdown
-
  file to the above lists as well as to `oss-security@lists.openwall.com`
-
  (unless the problem is unique to the non-open operating systems)
-

celebrate
---------

@@ -111,6 +107,7 @@ Coming dates

Based on the description above, here are some planned future release dates:

+
- December 11, 2024
- February 5, 2025
- April 2, 2025
- May 28, 2025
modified external/curl/docs/RELEASE-TOOLS.md
@@ -1,4 +1,4 @@
-
# Release tools used for curl 8.12.0
+
# Release tools used for curl 8.11.1

The following tools and their Debian package version numbers were used to
produce this release tarball.
@@ -8,11 +8,11 @@ produce this release tarball.
- libtool: 2.4.7-7~deb12u1
- make: 4.3-4.1
- perl: 5.36.0-7+deb12u1
-
- git: 1:2.39.5-0+deb12u2
+
- git: 1:2.39.5-0+deb12u1

# Reproduce the tarball

-
- Clone the repo and checkout the tag/commit: curl-8_12_0
+
- Clone the repo and checkout the tag/commit: curl-8_11_1
- Install the same set of tools + versions as listed above

## Do a standard build
@@ -23,6 +23,6 @@ produce this release tarball.

## Generate the tarball with the same timestamp

-
- export SOURCE_DATE_EPOCH=1738742705
+
- export SOURCE_DATE_EPOCH=1733900892
- ./scripts/maketgz [version]

modified external/curl/docs/RUSTLS.md
@@ -6,7 +6,7 @@ SPDX-License-Identifier: curl

# Rustls

-
[Rustls is a TLS backend written in Rust](https://docs.rs/rustls/). curl can
+
[Rustls is a TLS backend written in Rust](https://docs.rs/rustls/). Curl can
be built to use it as an alternative to OpenSSL or other TLS backends. We use
the [rustls-ffi C bindings](https://github.com/rustls/rustls-ffi/). This
version of curl depends on version v0.14.0 of rustls-ffi.
modified external/curl/docs/THANKS
@@ -13,7 +13,6 @@
3eka on github
5533asdg on github
8U61ife on github
-
9cel
a1346054 on github
Aaro Koskinen
Aaron Oneal
@@ -273,7 +272,6 @@ Arve Knudsen
Arvid Norberg
arvids-kokins-bidstack on github
asavah on github
-
Asger Hautop Drewsen
Ashish Shukla
Ashwin Metpalli
Ask Bjørn Hansen
@@ -305,7 +303,6 @@ Balakrishnan Balasubramanian
Balazs Kovacsics
balikalina on Github
Balint Szilakszi
-
baranyaib90 on github
Barry Abrahamson
Barry Pollard
Bart Whiteley
@@ -329,7 +326,6 @@ Ben Noordhuis
Ben Van Hof
Ben Voris
Ben Winslow
-
Ben Zanin
Benau on github
Benbuck Nason
Benjamin Gerard
@@ -396,7 +392,6 @@ Brad Fitzpatrick
Brad Forschinger
Brad Harder
Brad Hards
-
Brad House
Brad King
Brad Spencer
Bradford Bruce
@@ -451,7 +446,6 @@ Byrial Jensen
Cajus Pollmeier
Caleb Raitto
Calvin Buckley
-
Calvin Ruocco
calvin2021y on github
Cameron Blomquist
Cameron Cawley
@@ -538,7 +532,6 @@ Christophe Demory
Christophe Dervieux
Christophe Legry
Christopher Conroy
-
Christopher Dannemiller
Christopher Degawa
Christopher Head
Christopher Palow
@@ -670,7 +663,6 @@ Daniel Woelfel
Daphne Luong
Dario Nieuwenhuis
Dario Weißer
-
Darren Banfi
Darryl House
Darshan Mody
Darío Hereñú
@@ -752,7 +744,6 @@ Dennis Clarke
Dennis Felsing
dependabot[bot]
Derek Higgins
-
Derek Huang
Derzsi Dániel
Desmond O. Chang
destman on github
@@ -818,7 +809,6 @@ Dominik Thalhammer
Dominique Leuenberger
Don J Olmstead
Dongliang Mu
-
Donguk Kim
Dorian Craps
Doron Behar
Doug Kaufman
@@ -842,7 +832,6 @@ Dustin Howett
Dusty Mabe
Duy Phan Thanh
Dwarakanath Yadavalli
-
dwickr
Dylam De La Torre
Dylan Anthony
Dylan Ellicott
@@ -1047,7 +1036,6 @@ Gaelan Steele
galen11 on github
Gambit Communications
Ganesh Kamath
-
Ganesh Viswanathan
gaoxingwang on github
Garrett Holmstrom
Garrett Squire
@@ -1192,7 +1180,6 @@ Henrik Storner
henrikjehgmti on github
Henry Ludemann
Henry Roeland
-
Hermes Zhang
Herve Amblard
HexTheDragon
hgdagon on github
@@ -1233,7 +1220,6 @@ Ian Spence
Ian Turner
Ian Wilkes
iAroc on github
-
IcedCoffeee on github
iconoclasthero
icy17 on github
Ignacio Vazquez-Abrams
@@ -1440,7 +1426,6 @@ Jimmy Gaussen
Jiri Dvorak
Jiri Hruska
Jiri Jaburek
-
Jiri Stary
Jishan Shaikh
Jiwoo Park
Jiří Bok
@@ -1672,7 +1657,6 @@ Kevin Reed
Kevin Roth
Kevin Ryan
Kevin Smith
-
Kevin Sun
Kevin Ushey
Kim Minjoong
Kim Rinnewitz
@@ -1710,7 +1694,6 @@ Kristian Köhntopp
Kristian Mide
Kristiyan Tsaklev
Kristoffer Gleditsch
-
Kuan-Wei Chiu
Kunal Chandarana
Kunal Ekawde
Kurt Fankhauser
@@ -1769,7 +1752,6 @@ Lenaic Lefever
Lenny Rachitsky
Leo Neat
Leon Breedt
-
Leon Timmermans
Leon Winter
Leonardo Rosati
Leonardo Taccari
@@ -1866,7 +1848,6 @@ Mamoru Tasaka
Mamta Upadhyay
Mandy Wu
Manfred Schwarb
-
Manuel Einfalt
Manuel Massing
Manuj Bhatia
Marc Aldorasi
@@ -1950,7 +1931,6 @@ Martin Galvan
Martin Gartner
Martin Hager
Martin Halle
-
Martin Harrigan
Martin Hedenfalk
Martin Howarth
Martin Jansen
@@ -2013,7 +1993,6 @@ Matthias Naegler
Matthieu Baerts
Mattias Fornander
Matus Uzak
-
mauke
Maurice Barnum
Mauricio Scheffer
Mauro Iorio
@@ -2081,7 +2060,6 @@ Michael O'Farrell
Michael Olbrich
Michael Osipov
Michael Schmid
-
Michael Schuster
Michael Smith
Michael Stapelberg
Michael Steuer
@@ -2129,7 +2107,6 @@ Mike Revi
Mike Tzou
Mikhail Kuznetsov
Miklos Nemeth
-
Milon Renatus
Miloš Ljumović
Mingliang Zhu
Mingtao Yang
@@ -2146,7 +2123,6 @@ Mohammad AlSaleh
Mohammad Hasbini
Mohammadreza Hendiani
Mohammed Naser
-
Mohammed Sadiq
Mohun Biswas
momala454 on github
Momoka Yamamoto
@@ -2170,7 +2146,6 @@ musvaage on github
Muz Dima
Myk Taylor
n0name321 on github
-
na-trium-144 on github
Nach M. S.
Nagai H
Nao Yonashiro
@@ -2194,8 +2169,6 @@ Nehal J Wani
neheb on github
Neil Bowers
Neil Dunbar
-
Neil Horman
-
Neil Johari
Neil Kolban
Neil Spring
nekopsykose on github
@@ -2234,7 +2207,6 @@ Nicolas Morey-Chaisemartin
Nicolas Noben
Nicolas Sterchele
Nicolás Ojeda Bär
-
Nicolás San Martín
Niels Martignène
Niels van Tongeren
Nikita Schmidt
@@ -2478,7 +2450,6 @@ Priyanka Shah
ProceduralMan on github
promptfuzz_ on hackerone
Pronyushkin Petr
-
prpr19xx on Github
Przemysław Tomaszewski
pszemus on github
pszlazak on github
@@ -2486,7 +2457,6 @@ puckipedia on github
Puneet Pawaia
Pēteris Caune
qiandu2006 on github
-
Qriist on github
Quagmire
Quanah Gibson-Mount
Quentin Balland
@@ -2518,7 +2488,6 @@ ralfjunker on github
Ralph Beckmann
Ralph Langendam
Ralph Mitchell
-
Ralph Sennhauser
Ram Krushna Mishra
Ramiro Garcia
rampageX on github
@@ -2955,8 +2924,6 @@ Tadej Vengust
Tae Hyoung Ahn
Taiyu Len
Tal Regev
-
Tamir Duberstein
-
Tamás Bálint Misius
Taneli Vähäkangas
Tanguy Fautre
Taras Kushnir
@@ -3269,7 +3236,6 @@ Yehoshua Hershberg
ygthien on github
Yi Huang
Yifei Kong
-
Yihang Zhou
Yiming Jing
Yingwei Liu
yiyuaner on github
modified external/curl/docs/TODO
@@ -158,6 +158,7 @@
 18.13 Acknowledge Ratelimit headers
 18.14 --dry-run
 18.15 --retry should resume
+
 18.16 send only part of --data
 18.17 consider filename from the redirected URL with -O ?
 18.18 retry on network is unreachable
 18.19 expand ~/ in config files
@@ -182,7 +183,6 @@
 20.2 nicer lacking perl message
 20.3 more protocols supported
 20.4 more platforms supported
-
 20.5 write an SMB test server to replace impacket
 20.6 Use the RFC 6265 test suite
 20.8 Run web-platform-tests URL tests

@@ -1125,6 +1125,15 @@

 See https://github.com/curl/curl/issues/1084

+
18.16 send only part of --data
+

+
 When the user only wants to send a small piece of the data provided with
+
 --data or --data-binary, like when that data is a huge file, consider a way
+
 to specify that curl should only send a piece of that. One suggested syntax
+
 would be: "--data-binary @largefile.zip!1073741823-2147483647".
+

+
 See https://github.com/curl/curl/issues/1200
+

18.17 consider filename from the redirected URL with -O ?

 When a user gives a URL and uses -O, and curl follows a redirect to a new
@@ -1319,13 +1328,6 @@
 Make the test suite work on more platforms. OpenBSD and macOS. Remove
 fork()s and it should become even more portable.

-
20.5 write an SMB test server to replace impacket
-

-
 This would allow us to run SMB tests on more platforms and do better and more
-
 covering tests.
-

-
 See https://github.com/curl/curl/issues/15697
-

20.6 Use the RFC 6265 test suite

 A test suite made for HTTP cookies (RFC 6265) by Adam Barth is available at
modified external/curl/docs/TheArtOfHttpScripting.md
@@ -4,7 +4,7 @@ Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
-->

-
# The Art Of Scripting HTTP Requests Using curl
+
# The Art Of Scripting HTTP Requests Using Curl

## Background

@@ -15,12 +15,12 @@ SPDX-License-Identifier: curl
 extract information from the web, to fake users, to post or upload data to
 web servers are all important tasks today.

-
 curl is a command line tool for doing all sorts of URL manipulations and
+
 Curl is a command line tool for doing all sorts of URL manipulations and
 transfers, but this particular document focuses on how to use it when doing
 HTTP requests for fun and profit. This documents assumes that you know how to
 invoke `curl --help` or `curl --manual` to get basic information about it.

-
 curl is not written to do everything for you. It makes the requests, it gets
+
 Curl is not written to do everything for you. It makes the requests, it gets
 the data, it sends data and it retrieves the information. You probably need
 to glue everything together using some kind of script language or repeated
 manual invokes.
@@ -161,7 +161,7 @@ SPDX-License-Identifier: curl
    curl https://curl.se

 you get a webpage returned in your terminal window. The entire HTML document
-
 this URL identifies.
+
 that that URL holds.

 All HTTP replies contain a set of response headers that are normally hidden,
 use curl's [`--include`](https://curl.se/docs/manpage.html#-i) (`-i`)
@@ -475,7 +475,7 @@ SPDX-License-Identifier: curl
 new page keeping newly generated output. The header that tells the browser to
 redirect is `Location:`.

-
 curl does not follow `Location:` headers by default, but simply displays such
+
 Curl does not follow `Location:` headers by default, but simply displays such
 pages in the same manner it displays all HTTP replies. It does however
 feature an option that makes it attempt to follow the `Location:` pointers.

@@ -485,7 +485,7 @@ SPDX-License-Identifier: curl

 If you use curl to POST to a site that immediately redirects you to another
 page, you can safely use [`--location`](https://curl.se/docs/manpage.html#-L)
-
 (`-L`) and `--data`/`--form` together. curl only uses POST in the first
+
 (`-L`) and `--data`/`--form` together. Curl only uses POST in the first
 request, and then revert to GET in the following operations.

## Other redirects
@@ -532,7 +532,7 @@ SPDX-License-Identifier: curl
 [`--cookie-jar`](https://curl.se/docs/manpage.html#-c) option described
 below is a better way to store cookies.)

-
 curl has a full blown cookie parsing engine built-in that comes in use if you
+
 Curl has a full blown cookie parsing engine built-in that comes in use if you
 want to reconnect to a server and use cookies that were stored from a
 previous connection (or hand-crafted manually to fool the server into
 believing you had a previous connection). To use previously stored cookies,
@@ -540,7 +540,7 @@ SPDX-License-Identifier: curl

    curl --cookie stored_cookies_in_file http://www.example.com

-
 curl's "cookie engine" gets enabled when you use the
+
 Curl's "cookie engine" gets enabled when you use the
 [`--cookie`](https://curl.se/docs/manpage.html#-b) option. If you only
 want curl to understand received cookies, use `--cookie` with a file that
 does not exist. Example, if you want to let curl understand cookies from a
@@ -549,7 +549,7 @@ SPDX-License-Identifier: curl

    curl --cookie nada --location http://www.example.com

-
 curl has the ability to read and write cookie files that use the same file
+
 Curl has the ability to read and write cookie files that use the same file
 format that Netscape and Mozilla once used. It is a convenient way to share
 cookies between scripts or invokes. The `--cookie` (`-b`) switch
 automatically detects if a given file is such a cookie file and parses it,
@@ -571,7 +571,7 @@ SPDX-License-Identifier: curl
 SSL (or TLS as the current version of the standard is called) offers a set of
 advanced features to do secure transfers over HTTP.

-
 curl supports encrypted fetches when built to use a TLS library and it can be
+
 Curl supports encrypted fetches when built to use a TLS library and it can be
 built to use one out of a fairly large set of libraries - `curl -V` shows
 which one your curl was built to use (if any). To get a page from an HTTPS
 server, simply run curl like:
@@ -581,7 +581,7 @@ SPDX-License-Identifier: curl
## Certificates

 In the HTTPS world, you use certificates to validate that you are the one you
-
 claim to be, as an addition to normal passwords. curl supports client- side
+
 claim to be, as an addition to normal passwords. Curl supports client- side
 certificates. All certificates are locked with a passphrase, which you need
 to enter before the certificate can be used by curl. The passphrase can be
 specified on the command line or if not, entered interactively when curl
modified external/curl/docs/VERSIONS.md
@@ -7,7 +7,7 @@ SPDX-License-Identifier: curl
Version Numbers and Releases
============================

-
 The command line tool curl and the library libcurl are individually
+
 Curl is not only curl. Curl is also libcurl. They are actually individually
 versioned, but they usually follow each other closely.

 The version numbering is always built up using the same system:
modified external/curl/docs/VULN-DISCLOSURE-POLICY.md
@@ -153,15 +153,6 @@ levels depending how serious we consider the problem to be. We use **Low**,
**Medium**, **High** and **Critical**. We refrain from using numerical scoring
of vulnerabilities.

-
We do not support CVSS as a method to grade security vulnerabilities, so we do
-
not set them for CVE records published by the curl project. We believe CVSS is
-
a broken system that often does not properly evaluate to suitable severity
-
levels that reflect all dimensions and factors involved. Other organizations
-
however set and provide CVSS scores for curl vulnerabilities. You need to
-
decide for yourself if you believe they know enough about the subjects
-
involved to make reasonable assessments. Deciding between four different
-
severity levels is hard enough for us.
-

When deciding severity level on a particular issue, we take all the factors
into account: attack vector, attack complexity, required privileges, necessary
build configuration, protocols involved, platform specifics and also what
@@ -322,18 +313,3 @@ that being the end of the world.

There need to be more and special circumstances to treat such problems as
security issues.
-

-
## Legacy dependencies
-

-
Problems that can be triggered only by the use of a *legacy dependency* are
-
not considered security problems.
-

-
A *legacy dependency* is here defined as:
-

-
- the legacy version was released over ten years ago AND
-

-
- the legacy version is no longer in use by any existing still supported
-
  operating system or distribution AND
-

-
- there are modern versions of equivalent or better functionality offered and
-
  in common use
modified external/curl/docs/cmdline-opts/CMakeLists.txt
@@ -22,7 +22,7 @@
#
###########################################################################
# Get 'DPAGES' variable
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

add_custom_command(OUTPUT "${CURL_MANPAGE}" "${CURL_ASCIIPAGE}"
modified external/curl/docs/cmdline-opts/Makefile.in
@@ -228,6 +228,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -252,10 +253,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -274,14 +296,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -318,6 +348,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -325,10 +358,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -637,7 +706,6 @@ DPAGES = \
  ssl-no-revoke.md \
  ssl-reqd.md \
  ssl-revoke-best-effort.md \
-
  ssl-sessions.md \
  ssl.md \
  sslv2.md \
  sslv3.md \
modified external/curl/docs/cmdline-opts/Makefile.inc
@@ -269,7 +269,6 @@ DPAGES = \
  ssl-no-revoke.md \
  ssl-reqd.md \
  ssl-revoke-best-effort.md \
-
  ssl-sessions.md \
  ssl.md \
  sslv2.md \
  sslv3.md \
modified external/curl/docs/cmdline-opts/_ENVIRONMENT.md
@@ -50,7 +50,7 @@ addresses starting with "192.168".

## `APPDATA` <dir>
On Windows, this variable is used when trying to find the home directory. If
-
the primary home variables are all unset.
+
the primary home variable are all unset.

## `COLUMNS` <terminal width>
If set, the specified number of characters is used as the terminal width when
modified external/curl/docs/cmdline-opts/_EXITCODES.md
@@ -33,14 +33,14 @@ FTP accept failed. While waiting for the server to connect back when an active
FTP session is used, an error code was sent over the control connection or
similar.
## 11
-
FTP weird PASS reply. curl could not parse the reply sent to the PASS request.
+
FTP weird PASS reply. Curl could not parse the reply sent to the PASS request.
## 12
During an active FTP session while waiting for the server to connect back to
curl, the timeout expired.
## 13
-
FTP weird PASV reply, curl could not parse the reply sent to the PASV request.
+
FTP weird PASV reply, Curl could not parse the reply sent to the PASV request.
## 14
-
FTP weird 227 format. curl could not parse the 227-line the server sent.
+
FTP weird 227 format. Curl could not parse the 227-line the server sent.
## 15
FTP cannot use host. Could not resolve the host IP we got in the 227-line.
## 16
@@ -61,7 +61,7 @@ HTTP page not retrieved. The requested URL was not found or returned another
error with the HTTP error code being 400 or above. This return code only
appears if --fail is used.
## 23
-
Write error. curl could not write data to a local filesystem or similar.
+
Write error. Curl could not write data to a local filesystem or similar.
## 25
Failed starting the upload. For FTP, the server typically denied the STOR
command.
modified external/curl/docs/cmdline-opts/_OPTIONS.md
@@ -24,10 +24,6 @@ When --next is used, it resets the parser state and you start again with a
clean option state, except for the options that are global. Global options
retain their values and meaning even after --next.

-
The first argument that is exactly two dashes (`--`), marks the end of
-
options; any argument after the end of options is interpreted as a URL
-
argument even if it starts with a dash.
-

The following options are global: `%GLOBALS`.

# ALL OPTIONS
modified external/curl/docs/cmdline-opts/cert-type.md
@@ -4,7 +4,7 @@ SPDX-License-Identifier: curl
Long: cert-type
Protocols: TLS
Arg: <type>
-
Help: Certificate type (DER/PEM/ENG/PROV/P12)
+
Help: Certificate type (DER/PEM/ENG/P12)
Category: tls
Added: 7.9.3
Multi: single
@@ -18,9 +18,9 @@ Example:

# `--cert-type`

-
Set type of the provided client certificate. PEM, DER, ENG, PROV and P12 are
+
Set type of the provided client certificate. PEM, DER, ENG and P12 are
recognized types.

The default type depends on the TLS backend and is usually PEM, however for
-
Secure Transport and Schannel it is P12. If --cert is a pkcs11: URI then ENG
-
or PROV is the default type (depending on OpenSSL version).
+
Secure Transport and Schannel it is P12. If --cert is a pkcs11: URI then ENG is
+
the default type.
modified external/curl/docs/cmdline-opts/cert.md
@@ -32,12 +32,12 @@ In the \<certificate\> portion of the argument, you must escape the character
you must escape the double quote character as \" so that it is not recognized
as an escape character.

-
If curl is built against OpenSSL library, and the engine pkcs11 or pkcs11
-
provider is available, then a PKCS#11 URI (RFC 7512) can be used to specify a
-
certificate located in a PKCS#11 device. A string beginning with `pkcs11:` is
-
interpreted as a PKCS#11 URI. If a PKCS#11 URI is provided, then the --engine
-
option is set as `pkcs11` if none was provided and the --cert-type option is
-
set as `ENG` or `PROV` if none was provided (depending on OpenSSL version).
+
If curl is built against OpenSSL library, and the engine pkcs11 is available,
+
then a PKCS#11 URI (RFC 7512) can be used to specify a certificate located in
+
a PKCS#11 device. A string beginning with `pkcs11:` is interpreted as a
+
PKCS#11 URI. If a PKCS#11 URI is provided, then the --engine option is set as
+
`pkcs11` if none was provided and the --cert-type option is set as `ENG` if
+
none was provided.

If curl is built against GnuTLS library, a PKCS#11 URI can be used to specify
a certificate located in a PKCS#11 device. A string beginning with `pkcs11:`
modified external/curl/docs/cmdline-opts/cookie-jar.md
@@ -20,7 +20,7 @@ Example:
# `--cookie-jar`

Specify to which file you want curl to write all cookies after a completed
-
operation. curl writes all cookies from its in-memory cookie storage to the
+
operation. Curl writes all cookies from its in-memory cookie storage to the
given file at the end of operations. Even if no cookies are known, a file is
created so that it removes any formerly existing cookies from the file. The
file uses the Netscape cookie file format. If you set the filename to a single
modified external/curl/docs/cmdline-opts/disable-eprt.md
@@ -17,7 +17,7 @@ Example:
# `--disable-eprt`

Disable the use of the EPRT and LPRT commands when doing active FTP transfers.
-
curl normally first attempts to use EPRT before using PORT, but with this
+
Curl normally first attempts to use EPRT before using PORT, but with this
option, it uses PORT right away. EPRT is an extension to the original FTP
protocol, and does not work on all servers, but enables more functionality in
a better way than the traditional PORT command.
modified external/curl/docs/cmdline-opts/disable-epsv.md
@@ -16,7 +16,7 @@ Example:

# `--disable-epsv`

-
Disable the use of the EPSV command when doing passive FTP transfers. curl
+
Disable the use of the EPSV command when doing passive FTP transfers. Curl
normally first attempts to use EPSV before PASV, but with this option, it does
not try EPSV.

modified external/curl/docs/cmdline-opts/etag-compare.md
@@ -21,10 +21,7 @@ Make a conditional HTTP request for the specific ETag read from the given file
by sending a custom If-None-Match header using the stored ETag.

For correct results, make sure that the specified file contains only a single
-
line with the desired ETag. A non-existing or empty file is treated as an
-
empty ETag.
+
line with the desired ETag. An empty file is parsed as an empty ETag.

Use the option --etag-save to first save the ETag from a response, and then
use this option to compare against the saved ETag in a subsequent request.
-

-
Use this option with a single URL only.
modified external/curl/docs/cmdline-opts/etag-save.md
@@ -17,9 +17,6 @@ Example:
# `--etag-save`

Save an HTTP ETag to the specified file. An ETag is a caching related header,
-
usually returned in a response. Use this option with a single URL only.
+
usually returned in a response.

If no ETag is sent by the server, an empty file is created.
-

-
Starting in curl 8.12.0, using the --create-dirs option can also create
-
missing directory components for the path provided in --etag-save.
modified external/curl/docs/cmdline-opts/hostpubsha256.md
@@ -17,7 +17,7 @@ Example:
# `--hostpubsha256`

Pass a string containing a Base64-encoded SHA256 hash of the remote host's
-
public key. curl refuses the connection with the host unless the hashes match.
+
public key. Curl refuses the connection with the host unless the hashes match.

This feature requires libcurl to be built with libssh2 and does not work with
other SSH backends.
modified external/curl/docs/cmdline-opts/ignore-content-length.md
@@ -15,9 +15,11 @@ Example:

# `--ignore-content-length`

-
For HTTP, ignore the Content-Length header. This is particularly useful for
-
servers running Apache 1.x, which reports incorrect Content-Length for files
-
larger than 2 gigabytes.
+
For HTTP, Ignore the Content-Length header. This is particularly useful for
+
servers running Apache 1.x, which reports incorrect Content-Length for
+
files larger than 2 gigabytes.

For FTP, this makes curl skip the SIZE command to figure out the size before
downloading a file (added in 7.46.0).
+

+
This option does not work for HTTP if libcurl was built to use hyper.
modified external/curl/docs/cmdline-opts/key.md
@@ -21,12 +21,12 @@ Private key filename. Allows you to provide your private key in this separate
file. For SSH, if not specified, curl tries the following candidates in order:
`~/.ssh/id_rsa`, `~/.ssh/id_dsa`, `./id_rsa`, `./id_dsa`.

-
If curl is built against OpenSSL library, and the engine pkcs11 or pkcs11
-
provider is available, then a PKCS#11 URI (RFC 7512) can be used to specify a
-
private key located in a PKCS#11 device. A string beginning with `pkcs11:` is
-
interpreted as a PKCS#11 URI. If a PKCS#11 URI is provided, then the --engine
-
option is set as `pkcs11` if none was provided and the --key-type option is
-
set as `ENG` or `PROV` if none was provided (depending on OpenSSL version).
+
If curl is built against OpenSSL library, and the engine pkcs11 is available,
+
then a PKCS#11 URI (RFC 7512) can be used to specify a private key located in
+
a PKCS#11 device. A string beginning with `pkcs11:` is interpreted as a
+
PKCS#11 URI. If a PKCS#11 URI is provided, then the --engine option is set as
+
`pkcs11` if none was provided and the --key-type option is set as `ENG` if
+
none was provided.

If curl is built against Secure Transport or Schannel then this option is
ignored for TLS protocols (HTTPS, etc). Those backends expect the private key
modified external/curl/docs/cmdline-opts/location.md
@@ -19,13 +19,13 @@ Example:

If the server reports that the requested page has moved to a different
location (indicated with a Location: header and a 3XX response code), this
-
option makes curl redo the request to the new place. If used together with
+
option makes curl redo the request on the new place. If used together with
--show-headers or --head, headers from all requested pages are shown.

-
When authentication is used, or when sending a cookie with `-H Cookie:`, curl
-
only sends its credentials to the initial host. If a redirect takes curl to a
-
different host, it does not get the credentials passed on. See
-
--location-trusted on how to change this.
+
When authentication is used, or send cookie with `-H Cookie:`, curl only sends
+
its credentials to the initial host. If a redirect takes curl to a different
+
host, it does not get the credentials pass on. See --location-trusted on how
+
to change this.

Limit the amount of redirects to follow by using the --max-redirs option.

modified external/curl/docs/cmdline-opts/netrc.md
@@ -21,7 +21,7 @@ Example:
Make curl scan the *.netrc* file in the user's home directory for login name
and password. This is typically used for FTP on Unix. If used with HTTP, curl
enables user authentication. See *netrc(5)* and *ftp(1)* for details on the
-
file format. curl does not complain if that file does not have the right
+
file format. Curl does not complain if that file does not have the right
permissions (it should be neither world- nor group-readable). The environment
variable "HOME" is used to find the home directory.

modified external/curl/docs/cmdline-opts/proxy-cert-type.md
@@ -17,10 +17,10 @@ Example:
# `--proxy-cert-type`

Set type of the provided client certificate when using HTTPS proxy. PEM, DER,
-
ENG, PROV and P12 are recognized types.
+
ENG and P12 are recognized types.

The default type depends on the TLS backend and is usually PEM, however for
Secure Transport and Schannel it is P12. If --proxy-cert is a pkcs11: URI then
-
ENG or PROV is the default type (depending on OpenSSL version).
+
ENG is the default type.

Equivalent to --cert-type but used in HTTPS proxy context.
modified external/curl/docs/cmdline-opts/silent.md
@@ -17,7 +17,7 @@ Example:

# `--silent`

-
Silent or quiet mode. Do not show progress meter or error messages. Makes curl
+
Silent or quiet mode. Do not show progress meter or error messages. Makes Curl
mute. It still outputs the data you ask for, potentially even to the
terminal/stdout unless you redirect it.

deleted external/curl/docs/cmdline-opts/ssl-sessions.md
@@ -1,35 +0,0 @@
-
---
-
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-
SPDX-License-Identifier: curl
-
Long: ssl-sessions
-
Arg: <filename>
-
Protocols: TLS
-
Help: Load/save SSL session tickets from/to this file
-
Added: 8.12.0
-
Category: tls
-
Multi: single
-
See-also:
-
  - tls-earlydata
-
Example:
-
  - --ssl-sessions sessions.txt $URL
-
---
-

-
# `--ssl-sessions`
-

-
Use the given file to load SSL session tickets into curl's cache before
-
starting any transfers. At the end of a successful curl run, the cached
-
SSL sessions tickets are save to the file, replacing any previous content.
-

-
The file does not have to exist, but curl reports an error if it is
-
unable to create it. Unused loaded tickets are saved again, unless they
-
get replaced or purged from the cache for space reasons.
-

-
Using a session file allows `--tls-earlydata` to send the first request
-
in "0-RTT" mode, should an SSL session with the feature be found. Note that
-
a server may not support early data. Also note that early data does
-
not provide forward secrecy, e.g. is not as secure.
-

-
The SSL session tickets are stored as base64 encoded text, each ticket on
-
its own line. The hostnames are cryptographically salted and hashed. While
-
this prevents someone to easily see the hosts you contacted, they could still
-
check if a specific hostname matches one of the values.
modified external/curl/docs/cmdline-opts/tls-earlydata.md
@@ -10,7 +10,6 @@ Multi: boolean
See-also:
  - tlsv1.3
  - tls-max
-
  - ssl-sessions
Example:
  - --tls-earlydata $URL
---
modified external/curl/docs/cmdline-opts/variable.md
@@ -36,27 +36,6 @@ the environment variable is not set, use --variable %name=content or
--variable %name@content. Note that on some systems - but not all -
environment variables are case insensitive.

-
Added in curl 8.12.0: you can get a byte range from the source by appending
-
`[start-end]` to the variable name, where *start* and *end* are byte offsets
-
to include from the contents. For example, asking for offset "2-10" means
-
offset two to offset ten, inclusive, resulting in 9 bytes in total. `2-2`
-
means a single byte at offset 2. Not providing a second number implies to the
-
end of data. The start offset cannot be larger than the end offset. Asking for
-
a range that is outside of the file size makes the variable contents empty.
-
For example, getting the first one hundred bytes from a given file:
-

-
    curl --variable "fraction[0-99]@filename"
-

-
Given a byte range that has no data results in an empty string. Asking for a
-
range that is larger than the content makes curl use the piece of the data
-
that exists.
-

-
To assign a variable using contents from another variable, use
-
--expand-variable. Like for example assigning a new variable using contents
-
from two other:
-

-
    curl --expand-variable "user={{firstname}} {{lastname}}"
-

When expanding variables, curl supports a set of functions that can make the
variable contents more convenient to use. You apply a function to a variable
expansion by adding a colon and then list the desired functions in a
@@ -69,27 +48,11 @@ Available functions:
## trim
removes all leading and trailing white space.

-
Example:
-

-
    curl --expand-url https.//example.com/{{url:trim}}
-

## json
outputs the content using JSON string quoting rules.

-
Example:
-

-
    curl --expand-data {{data:json}} https://example.com
-

## url
shows the content URL (percent) encoded.

-
Example:
-

-
    curl --expand-url https://example.com/{{path:url}}
-

## b64
expands the variable base64 encoded
-

-
Example:
-

-
    curl --expand-url https://example.com/{{var:b64}}
modified external/curl/docs/cmdline-opts/version.md
@@ -21,16 +21,6 @@ Displays information about curl and the libcurl version it uses.
The first line includes the full version of curl, libcurl and other 3rd party
libraries linked with the executable.

-
This line may contain one or more TLS libraries. curl can be built to support
-
more than one TLS library which then makes curl - at start-up - select which
-
particular backend to use for this invocation.
-

-
If curl supports more than one TLS library like this, the ones that are *not*
-
selected by default are listed within parentheses. Thus, if you do not specify
-
which backend to use (with the `CURL_SSL_BACKEND` environment variable) the
-
one listed without parentheses is used. Such builds also has `MultiSSL` set as
-
a feature.
-

The second line (starts with `Release-Date:`) shows the release date.

The third line (starts with `Protocols:`) shows all protocols that libcurl
@@ -115,9 +105,6 @@ SPNEGO authentication is supported.
SSL versions of various protocols are supported, such as HTTPS, FTPS, POP3S
and so on.

-
## `SSLS-EXPORT`
-
This build supports TLS session export/import, like with the --ssl-sessions.
-

## `SSPI`
SSPI is supported.

modified external/curl/docs/cmdline-opts/write-out.md
@@ -230,12 +230,6 @@ The time, in seconds, it took from the start until the file transfer was just
about to begin. This includes all pre-transfer commands and negotiations that
are specific to the particular protocol(s) involved.

-
## `time_queue`
-
The time, in seconds, the transfer was queued during its run. This adds
-
the queue time for each redirect step that may have happened. Transfers
-
may be queued for significant amounts of time when connection or parallel
-
limits are in place. (Added in 8.12.0)
-

## `time_redirect`
The time, in seconds, it took for all redirection steps including name lookup,
connect, pretransfer and transfer before the final transaction was
modified external/curl/docs/curl-config.md
@@ -66,7 +66,7 @@ link your application with libcurl.

## --prefix

-
This is the prefix used when libcurl was installed. libcurl is then installed
+
This is the prefix used when libcurl was installed. Libcurl is then installed
in $prefix/lib and its header files are installed in $prefix/include and so
on. The prefix is set with "configure --prefix".

modified external/curl/docs/examples/.checksrc
@@ -1,2 +1,3 @@
disable TYPEDEFSTRUCT
+
disable SNPRINTF
disable BANNEDFUNC
modified external/curl/docs/examples/CMakeLists.txt
@@ -25,7 +25,7 @@
add_custom_target(curl-examples)

# Get 'check_PROGRAMS' variable
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

foreach(_target IN LISTS check_PROGRAMS)
@@ -33,7 +33,7 @@ foreach(_target IN LISTS check_PROGRAMS)
  add_executable(${_target_name} EXCLUDE_FROM_ALL "${_target}.c")
  add_dependencies(curl-examples ${_target_name})
  target_link_libraries(${_target_name} ${LIB_SELECTED} ${CURL_LIBS})
-
  target_compile_definitions(${_target_name} PRIVATE "CURL_NO_OLDIES" "$<$<BOOL:MSVC>:_CRT_SECURE_NO_DEPRECATE>")
+
  target_compile_definitions(${_target_name} PRIVATE "CURL_NO_OLDIES")
  if(LIB_SELECTED STREQUAL LIB_STATIC AND WIN32)
    set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_STATICLIB")
  endif()
modified external/curl/docs/examples/Makefile.am
@@ -24,7 +24,7 @@

AUTOMAKE_OPTIONS = foreign nostdinc

-
EXTRA_DIST = README.md Makefile.example CMakeLists.txt \
+
EXTRA_DIST = README.md Makefile.example Makefile.mk CMakeLists.txt \
  $(COMPLICATED_EXAMPLES) .checksrc

# Specify our include paths here, and do it relative to $(top_srcdir) and
modified external/curl/docs/examples/Makefile.in
@@ -137,8 +137,8 @@ build_triplet = @build@
host_triplet = @host@
@USE_CPPFLAG_CURL_STATICLIB_TRUE@am__append_1 = -DCURL_STATICLIB
check_PROGRAMS = 10-at-a-time$(EXEEXT) address-scope$(EXEEXT) \
-
	altsvc$(EXEEXT) anyauthput$(EXEEXT) block_ip$(EXEEXT) \
-
	certinfo$(EXEEXT) chkspeed$(EXEEXT) connect-to$(EXEEXT) \
+
	altsvc$(EXEEXT) anyauthput$(EXEEXT) certinfo$(EXEEXT) \
+
	chkspeed$(EXEEXT) connect-to$(EXEEXT) \
	cookie_interface$(EXEEXT) debug$(EXEEXT) \
	default-scheme$(EXEEXT) externalsocket$(EXEEXT) \
	fileupload$(EXEEXT) ftp-wildcard$(EXEEXT) ftpget$(EXEEXT) \
@@ -232,10 +232,6 @@ anyauthput_SOURCES = anyauthput.c
anyauthput_OBJECTS = anyauthput.$(OBJEXT)
anyauthput_LDADD = $(LDADD)
anyauthput_DEPENDENCIES = $(LIBDIR)/libcurl.la
-
block_ip_SOURCES = block_ip.c
-
block_ip_OBJECTS = block_ip.$(OBJEXT)
-
block_ip_LDADD = $(LDADD)
-
block_ip_DEPENDENCIES = $(LIBDIR)/libcurl.la
certinfo_SOURCES = certinfo.c
certinfo_OBJECTS = certinfo.$(OBJEXT)
certinfo_LDADD = $(LDADD)
@@ -677,20 +673,19 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/10-at-a-time.Po \
	./$(DEPDIR)/address-scope.Po ./$(DEPDIR)/altsvc.Po \
-
	./$(DEPDIR)/anyauthput.Po ./$(DEPDIR)/block_ip.Po \
-
	./$(DEPDIR)/certinfo.Po ./$(DEPDIR)/chkspeed.Po \
-
	./$(DEPDIR)/connect-to.Po ./$(DEPDIR)/cookie_interface.Po \
-
	./$(DEPDIR)/debug.Po ./$(DEPDIR)/default-scheme.Po \
-
	./$(DEPDIR)/externalsocket.Po ./$(DEPDIR)/fileupload.Po \
-
	./$(DEPDIR)/ftp-wildcard.Po ./$(DEPDIR)/ftpget.Po \
-
	./$(DEPDIR)/ftpgetinfo.Po ./$(DEPDIR)/ftpgetresp.Po \
-
	./$(DEPDIR)/ftpsget.Po ./$(DEPDIR)/ftpupload.Po \
-
	./$(DEPDIR)/ftpuploadfrommem.Po ./$(DEPDIR)/ftpuploadresume.Po \
-
	./$(DEPDIR)/getinfo.Po ./$(DEPDIR)/getinmemory.Po \
-
	./$(DEPDIR)/getredirect.Po ./$(DEPDIR)/getreferrer.Po \
-
	./$(DEPDIR)/headerapi.Po ./$(DEPDIR)/hsts-preload.Po \
-
	./$(DEPDIR)/http-options.Po ./$(DEPDIR)/http-post.Po \
-
	./$(DEPDIR)/http2-download.Po \
+
	./$(DEPDIR)/anyauthput.Po ./$(DEPDIR)/certinfo.Po \
+
	./$(DEPDIR)/chkspeed.Po ./$(DEPDIR)/connect-to.Po \
+
	./$(DEPDIR)/cookie_interface.Po ./$(DEPDIR)/debug.Po \
+
	./$(DEPDIR)/default-scheme.Po ./$(DEPDIR)/externalsocket.Po \
+
	./$(DEPDIR)/fileupload.Po ./$(DEPDIR)/ftp-wildcard.Po \
+
	./$(DEPDIR)/ftpget.Po ./$(DEPDIR)/ftpgetinfo.Po \
+
	./$(DEPDIR)/ftpgetresp.Po ./$(DEPDIR)/ftpsget.Po \
+
	./$(DEPDIR)/ftpupload.Po ./$(DEPDIR)/ftpuploadfrommem.Po \
+
	./$(DEPDIR)/ftpuploadresume.Po ./$(DEPDIR)/getinfo.Po \
+
	./$(DEPDIR)/getinmemory.Po ./$(DEPDIR)/getredirect.Po \
+
	./$(DEPDIR)/getreferrer.Po ./$(DEPDIR)/headerapi.Po \
+
	./$(DEPDIR)/hsts-preload.Po ./$(DEPDIR)/http-options.Po \
+
	./$(DEPDIR)/http-post.Po ./$(DEPDIR)/http2-download.Po \
	./$(DEPDIR)/http2-pushinmemory.Po \
	./$(DEPDIR)/http2-serverpush.Po ./$(DEPDIR)/http2-upload.Po \
	./$(DEPDIR)/http3-present.Po ./$(DEPDIR)/http3.Po \
@@ -753,24 +748,24 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD    " $@;
am__v_CCLD_1 = 
SOURCES = 10-at-a-time.c address-scope.c altsvc.c anyauthput.c \
-
	block_ip.c certinfo.c chkspeed.c connect-to.c \
-
	cookie_interface.c debug.c default-scheme.c externalsocket.c \
-
	fileupload.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
-
	ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c \
-
	getinfo.c getinmemory.c getredirect.c getreferrer.c \
-
	headerapi.c hsts-preload.c http-options.c http-post.c \
-
	http2-download.c http2-pushinmemory.c http2-serverpush.c \
-
	http2-upload.c http3.c http3-present.c httpcustomheader.c \
-
	httpput.c httpput-postfields.c https.c imap-append.c \
-
	imap-authzid.c imap-copy.c imap-create.c imap-delete.c \
-
	imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
-
	imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
-
	imap-tls.c interface.c ipv6.c keepalive.c localport.c \
-
	maxconnects.c multi-app.c multi-debugcallback.c multi-double.c \
-
	multi-formadd.c multi-legacy.c multi-post.c multi-single.c \
-
	netrc.c parseurl.c persistent.c pop3-authzid.c pop3-dele.c \
-
	pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c \
-
	pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
+
	certinfo.c chkspeed.c connect-to.c cookie_interface.c debug.c \
+
	default-scheme.c externalsocket.c fileupload.c ftp-wildcard.c \
+
	ftpget.c ftpgetinfo.c ftpgetresp.c ftpsget.c ftpupload.c \
+
	ftpuploadfrommem.c ftpuploadresume.c getinfo.c getinmemory.c \
+
	getredirect.c getreferrer.c headerapi.c hsts-preload.c \
+
	http-options.c http-post.c http2-download.c \
+
	http2-pushinmemory.c http2-serverpush.c http2-upload.c http3.c \
+
	http3-present.c httpcustomheader.c httpput.c \
+
	httpput-postfields.c https.c imap-append.c imap-authzid.c \
+
	imap-copy.c imap-create.c imap-delete.c imap-examine.c \
+
	imap-fetch.c imap-list.c imap-lsub.c imap-multi.c imap-noop.c \
+
	imap-search.c imap-ssl.c imap-store.c imap-tls.c interface.c \
+
	ipv6.c keepalive.c localport.c maxconnects.c multi-app.c \
+
	multi-debugcallback.c multi-double.c multi-formadd.c \
+
	multi-legacy.c multi-post.c multi-single.c netrc.c parseurl.c \
+
	persistent.c pop3-authzid.c pop3-dele.c pop3-list.c \
+
	pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c \
+
	pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
	postinmemory.c postit2.c postit2-formadd.c progressfunc.c \
	protofeats.c range.c resolve.c rtsp-options.c sendrecv.c \
	sepheaders.c sftpget.c sftpuploadresume.c \
@@ -779,24 +774,24 @@ SOURCES = 10-at-a-time.c address-scope.c altsvc.c anyauthput.c \
	smtp-multi.c smtp-ssl.c smtp-tls.c smtp-vrfy.c sslbackend.c \
	unixsocket.c url2file.c urlapi.c websocket.c websocket-cb.c
DIST_SOURCES = 10-at-a-time.c address-scope.c altsvc.c anyauthput.c \
-
	block_ip.c certinfo.c chkspeed.c connect-to.c \
-
	cookie_interface.c debug.c default-scheme.c externalsocket.c \
-
	fileupload.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
-
	ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c \
-
	getinfo.c getinmemory.c getredirect.c getreferrer.c \
-
	headerapi.c hsts-preload.c http-options.c http-post.c \
-
	http2-download.c http2-pushinmemory.c http2-serverpush.c \
-
	http2-upload.c http3.c http3-present.c httpcustomheader.c \
-
	httpput.c httpput-postfields.c https.c imap-append.c \
-
	imap-authzid.c imap-copy.c imap-create.c imap-delete.c \
-
	imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
-
	imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
-
	imap-tls.c interface.c ipv6.c keepalive.c localport.c \
-
	maxconnects.c multi-app.c multi-debugcallback.c multi-double.c \
-
	multi-formadd.c multi-legacy.c multi-post.c multi-single.c \
-
	netrc.c parseurl.c persistent.c pop3-authzid.c pop3-dele.c \
-
	pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c \
-
	pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
+
	certinfo.c chkspeed.c connect-to.c cookie_interface.c debug.c \
+
	default-scheme.c externalsocket.c fileupload.c ftp-wildcard.c \
+
	ftpget.c ftpgetinfo.c ftpgetresp.c ftpsget.c ftpupload.c \
+
	ftpuploadfrommem.c ftpuploadresume.c getinfo.c getinmemory.c \
+
	getredirect.c getreferrer.c headerapi.c hsts-preload.c \
+
	http-options.c http-post.c http2-download.c \
+
	http2-pushinmemory.c http2-serverpush.c http2-upload.c http3.c \
+
	http3-present.c httpcustomheader.c httpput.c \
+
	httpput-postfields.c https.c imap-append.c imap-authzid.c \
+
	imap-copy.c imap-create.c imap-delete.c imap-examine.c \
+
	imap-fetch.c imap-list.c imap-lsub.c imap-multi.c imap-noop.c \
+
	imap-search.c imap-ssl.c imap-store.c imap-tls.c interface.c \
+
	ipv6.c keepalive.c localport.c maxconnects.c multi-app.c \
+
	multi-debugcallback.c multi-double.c multi-formadd.c \
+
	multi-legacy.c multi-post.c multi-single.c netrc.c parseurl.c \
+
	persistent.c pop3-authzid.c pop3-dele.c pop3-list.c \
+
	pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c \
+
	pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
	postinmemory.c postit2.c postit2-formadd.c progressfunc.c \
	protofeats.c range.c resolve.c rtsp-options.c sendrecv.c \
	sepheaders.c sftpget.c sftpuploadresume.c \
@@ -832,6 +827,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -858,10 +854,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -880,14 +897,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -926,6 +951,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -933,10 +961,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -997,7 +1061,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign nostdinc
-
EXTRA_DIST = README.md Makefile.example CMakeLists.txt \
+
EXTRA_DIST = README.md Makefile.example Makefile.mk CMakeLists.txt \
  $(COMPLICATED_EXAMPLES) .checksrc


@@ -1102,10 +1166,6 @@ anyauthput$(EXEEXT): $(anyauthput_OBJECTS) $(anyauthput_DEPENDENCIES) $(EXTRA_an
	@rm -f anyauthput$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(anyauthput_OBJECTS) $(anyauthput_LDADD) $(LIBS)

-
block_ip$(EXEEXT): $(block_ip_OBJECTS) $(block_ip_DEPENDENCIES) $(EXTRA_block_ip_DEPENDENCIES) 
-
	@rm -f block_ip$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(block_ip_OBJECTS) $(block_ip_LDADD) $(LIBS)
-

certinfo$(EXEEXT): $(certinfo_OBJECTS) $(certinfo_DEPENDENCIES) $(EXTRA_certinfo_DEPENDENCIES) 
	@rm -f certinfo$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(certinfo_OBJECTS) $(certinfo_LDADD) $(LIBS)
@@ -1540,7 +1600,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/address-scope.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/altsvc.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anyauthput.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_ip.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/certinfo.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chkspeed.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect-to.Po@am__quote@ # am--include-marker
@@ -1813,7 +1872,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/address-scope.Po
	-rm -f ./$(DEPDIR)/altsvc.Po
	-rm -f ./$(DEPDIR)/anyauthput.Po
-
	-rm -f ./$(DEPDIR)/block_ip.Po
	-rm -f ./$(DEPDIR)/certinfo.Po
	-rm -f ./$(DEPDIR)/chkspeed.Po
	-rm -f ./$(DEPDIR)/connect-to.Po
@@ -1969,7 +2027,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/address-scope.Po
	-rm -f ./$(DEPDIR)/altsvc.Po
	-rm -f ./$(DEPDIR)/anyauthput.Po
-
	-rm -f ./$(DEPDIR)/block_ip.Po
	-rm -f ./$(DEPDIR)/certinfo.Po
	-rm -f ./$(DEPDIR)/chkspeed.Po
	-rm -f ./$(DEPDIR)/connect-to.Po
modified external/curl/docs/examples/Makefile.inc
@@ -28,7 +28,6 @@ check_PROGRAMS = \
  address-scope \
  altsvc \
  anyauthput \
-
  block_ip \
  certinfo \
  chkspeed \
  connect-to \
@@ -82,7 +81,7 @@ check_PROGRAMS = \
  ipv6 \
  keepalive \
  localport \
-
  maxconnects \
+
  maxconnects  \
  multi-app \
  multi-debugcallback \
  multi-double \
added external/curl/docs/examples/Makefile.mk
@@ -0,0 +1,52 @@
+
#***************************************************************************
+
#                                  _   _ ____  _
+
#  Project                     ___| | | |  _ \| |
+
#                             / __| | | | |_) | |
+
#                            | (__| |_| |  _ <| |___
+
#                             \___|\___/|_| \_\_____|
+
#
+
# Copyright (C) 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.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.
+
#
+
# SPDX-License-Identifier: curl
+
#
+
#***************************************************************************
+

+
# Build libcurl via lib/Makefile.mk first.
+

+
PROOT := ../..
+

+
### Common
+

+
include $(PROOT)/lib/Makefile.mk
+

+
### Local
+

+
CPPFLAGS += -DCURL_NO_OLDIES
+
LDFLAGS  += -L$(PROOT)/lib
+
LIBS     := -lcurl $(LIBS)
+

+
### Sources and targets
+

+
# Provides check_PROGRAMS
+
include Makefile.inc
+

+
TARGETS := $(patsubst %,%$(BIN_EXT),$(strip $(check_PROGRAMS)))
+
TOCLEAN := $(TARGETS)
+

+
### Rules
+

+
%$(BIN_EXT): %.c $(PROOT)/lib/libcurl.a
+
	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LIBS)
+

+
all: $(TARGETS)
modified external/curl/docs/examples/address-scope.c
@@ -28,14 +28,14 @@
#include <stdio.h>
#include <curl/curl.h>

-
#if !defined(_WIN32) && !defined(MSDOS) && !defined(__AMIGA__)
+
#ifndef _WIN32
#include <net/if.h>
#endif

int main(void)
{
-
#if !defined(_WIN32) && !defined(MSDOS) && !defined(__AMIGA__)
-
  /* Windows/MS-DOS users need to find how to use if_nametoindex() */
+
#ifndef _WIN32
+
  /* Windows users need to find how to use if_nametoindex() */
  CURL *curl;
  CURLcode res;

modified external/curl/docs/examples/anyauthput.c
@@ -34,11 +34,9 @@
#include <curl/curl.h>

#ifdef _WIN32
-
#undef stat
-
#define stat _stat
-
#undef fstat
-
#define fstat _fstat
-
#define fileno _fileno
+
#  define FILENO(fp) _fileno(fp)
+
#else
+
#  define FILENO(fp) fileno(fp)
#endif

#if LIBCURL_VERSION_NUM < 0x070c03
@@ -100,10 +98,7 @@ int main(int argc, char **argv)

  /* get the file size of the local file */
  fp = fopen(file, "rb");
-
  if(!fp)
-
    return 2;
-

-
  fstat(fileno(fp), &file_info);
+
  fstat(FILENO(fp), &file_info);

  /* In Windows, this inits the Winsock stuff */
  curl_global_init(CURL_GLOBAL_ALL);
deleted external/curl/docs/examples/block_ip.c
@@ -1,350 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
/* <DESC>
-
 * Show how CURLOPT_OPENSOCKETFUNCTION can be used to block IP addresses.
-
 * </DESC>
-
 */
-
/* This is an advanced example that defines a whitelist or a blacklist to
-
 * filter IP addresses.
-
 */
-

-
#ifdef __AMIGA__
-
#include <stdio.h>
-
int main(void) { printf("AmigaOS is not supported.\n"); return 1; }
-
#else
-

-
#ifdef _WIN32
-
#ifndef _CRT_SECURE_NO_WARNINGS
-
#define _CRT_SECURE_NO_WARNINGS
-
#endif
-
#ifndef _CRT_NONSTDC_NO_DEPRECATE
-
#define _CRT_NONSTDC_NO_DEPRECATE
-
#endif
-
#ifndef _WIN32_WINNT
-
#define _WIN32_WINNT 0x0600
-
#endif
-
#include <winsock2.h>
-
#include <ws2tcpip.h>
-
#include <windows.h>
-
#else
-
#include <sys/types.h>
-
#include <sys/socket.h>
-
#include <netinet/in.h>
-
#include <arpa/inet.h>
-
#endif
-

-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <string.h>
-

-
#include <curl/curl.h>
-

-
#ifndef TRUE
-
#define TRUE 1
-
#endif
-

-
#ifndef FALSE
-
#define FALSE 0
-
#endif
-

-
struct ip {
-
  /* The user-provided IP address or network (use CIDR) to filter */
-
  char *str;
-
  /* IP address family AF_INET (IPv4) or AF_INET6 (IPv6) */
-
  int family;
-
  /* IP in network byte format */
-
  union netaddr {
-
    struct in_addr ipv4;
-
#ifdef AF_INET6
-
    struct in6_addr ipv6;
-
#endif
-
  } netaddr;
-
  /* IP bits to match against.
-
   * This is equal to the CIDR notation or max bits if no CIDR.
-
   * For example if ip->str is 127.0.0.0/8 then ip->maskbits is 8.
-
   */
-
  int maskbits;
-
  struct ip *next;
-
};
-

-
enum connection_filter_t {
-
  CONNECTION_FILTER_BLACKLIST,
-
  CONNECTION_FILTER_WHITELIST
-
};
-

-
struct connection_filter {
-
  struct ip *list;
-
  enum connection_filter_t type;
-
  int verbose;
-
#ifdef AF_INET6
-
  /* If the address being filtered is an IPv4-mapped IPv6 address then it is
-
   * checked against IPv4 list entries as well, unless ipv6_v6only is set TRUE.
-
   */
-
  int ipv6_v6only;
-
#endif
-
};
-

-
static struct ip *ip_list_append(struct ip *list, const char *data)
-
{
-
  struct ip *ip, *last;
-
  char *cidr;
-

-
  ip = (struct ip *)calloc(1, sizeof(*ip));
-
  if(!ip)
-
    return NULL;
-

-
  if(strchr(data, ':')) {
-
#ifdef AF_INET6
-
    ip->family = AF_INET6;
-
#else
-
    free(ip);
-
    return NULL;
-
#endif
-
  }
-
  else
-
    ip->family = AF_INET;
-

-
  ip->str = strdup(data);
-
  if(!ip->str) {
-
    free(ip);
-
    return NULL;
-
  }
-

-
  /* determine the number of bits that this IP will match against */
-
  cidr = strchr(ip->str, '/');
-
  if(cidr) {
-
    ip->maskbits = atoi(cidr + 1);
-
    if(ip->maskbits <= 0 ||
-
#ifdef AF_INET6
-
       (ip->family == AF_INET6 && ip->maskbits > 128) ||
-
#endif
-
       (ip->family == AF_INET && ip->maskbits > 32)) {
-
      free(ip->str);
-
      free(ip);
-
      return NULL;
-
    }
-
    /* ignore the CIDR notation when converting ip->str to ip->netaddr */
-
    *cidr = '\0';
-
  }
-
  else if(ip->family == AF_INET)
-
    ip->maskbits = 32;
-
#ifdef AF_INET6
-
  else if(ip->family == AF_INET6)
-
    ip->maskbits = 128;
-
#endif
-

-
  if(1 != inet_pton(ip->family, ip->str, &ip->netaddr)) {
-
    free(ip->str);
-
    free(ip);
-
    return NULL;
-
  }
-

-
  if(cidr)
-
    *cidr = '/';
-

-
  if(!list)
-
    return ip;
-
  for(last = list; last->next; last = last->next)
-
    ;
-
  last->next = ip;
-
  return list;
-
}
-

-
static void ip_list_free_all(struct ip *list)
-
{
-
  struct ip *next;
-
  while(list) {
-
    next = list->next;
-
    free(list->str);
-
    free(list);
-
    list = next;
-
  }
-
}
-

-
static void free_connection_filter(struct connection_filter *filter)
-
{
-
  if(filter) {
-
    ip_list_free_all(filter->list);
-
    free(filter);
-
  }
-
}
-

-
static int ip_match(struct ip *ip, void *netaddr)
-
{
-
  int bytes, tailbits;
-
  const unsigned char *x, *y;
-

-
  x = (unsigned char *)&ip->netaddr;
-
  y = (unsigned char *)netaddr;
-

-
  for(bytes = ip->maskbits / 8; bytes; --bytes) {
-
    if(*x++ != *y++)
-
      return FALSE;
-
  }
-

-
  tailbits = ip->maskbits % 8;
-
  if(tailbits) {
-
    unsigned char tailmask = (unsigned char)((0xFF << (8 - tailbits)) & 0xFF);
-
    if((*x & tailmask) != (*y & tailmask))
-
      return FALSE;
-
  }
-

-
  return TRUE;
-
}
-

-
#ifdef AF_INET6
-
static int is_ipv4_mapped_ipv6_address(int family, void *netaddr)
-
{
-
  if(family == AF_INET6) {
-
    int i;
-
    unsigned char *x = (unsigned char *)netaddr;
-
    for(i = 0; i < 12; ++i) {
-
      if(x[i])
-
        break;
-
    }
-
    /* support formats ::x.x.x.x (deprecated) and ::ffff:x.x.x.x */
-
    if((i == 12 && (x[i] || x[i + 1] || x[i + 2] || x[i + 3])) ||
-
       (i == 10 && (x[i] == 0xFF && x[i + 1] == 0xFF)))
-
      return TRUE;
-
  }
-

-
  return FALSE;
-
}
-
#endif /* AF_INET6 */
-

-
static curl_socket_t opensocket(void *clientp,
-
                                curlsocktype purpose,
-
                                struct curl_sockaddr *address)
-
{
-
  /* filter the address */
-
  if(purpose == CURLSOCKTYPE_IPCXN) {
-
    void *cinaddr = NULL;
-

-
    if(address->family == AF_INET)
-
      cinaddr = &((struct sockaddr_in *)(void *)&address->addr)->sin_addr;
-
#ifdef AF_INET6
-
    else if(address->family == AF_INET6)
-
      cinaddr = &((struct sockaddr_in6 *)(void *)&address->addr)->sin6_addr;
-
#endif
-

-
    if(cinaddr) {
-
      struct ip *ip;
-
      struct connection_filter *filter = (struct connection_filter *)clientp;
-
#ifdef AF_INET6
-
      int mapped = !filter->ipv6_v6only &&
-
        is_ipv4_mapped_ipv6_address(address->family, cinaddr);
-
#endif
-

-
      for(ip = filter->list; ip; ip = ip->next) {
-
        if(ip->family == address->family && ip_match(ip, cinaddr))
-
          break;
-
#ifdef AF_INET6
-
        if(mapped && ip->family == AF_INET && address->family == AF_INET6 &&
-
           ip_match(ip, (unsigned char *)cinaddr + 12))
-
          break;
-
#endif
-
      }
-

-
      if(ip && filter->type == CONNECTION_FILTER_BLACKLIST) {
-
        if(filter->verbose) {
-
          char buf[128] = {0};
-
          inet_ntop(address->family, cinaddr, buf, sizeof(buf));
-
          fprintf(stderr, "* Rejecting IP %s due to blacklist entry %s.\n",
-
                  buf, ip->str);
-
        }
-
        return CURL_SOCKET_BAD;
-
      }
-
      else if(!ip && filter->type == CONNECTION_FILTER_WHITELIST) {
-
        if(filter->verbose) {
-
          char buf[128] = {0};
-
          inet_ntop(address->family, cinaddr, buf, sizeof(buf));
-
          fprintf(stderr,
-
            "* Rejecting IP %s due to missing whitelist entry.\n", buf);
-
        }
-
        return CURL_SOCKET_BAD;
-
      }
-
    }
-
  }
-

-
  return socket(address->family, address->socktype, address->protocol);
-
}
-

-
int main(void)
-
{
-
  CURL *curl;
-
  CURLcode res;
-
  struct connection_filter *filter;
-

-
  filter = (struct connection_filter *)calloc(1, sizeof(*filter));
-
  if(!filter)
-
    exit(1);
-

-
  if(curl_global_init(CURL_GLOBAL_DEFAULT))
-
    exit(1);
-

-
  curl = curl_easy_init();
-
  if(!curl)
-
    exit(1);
-

-
  /* Set the target URL */
-
  curl_easy_setopt(curl, CURLOPT_URL, "http://localhost");
-

-
  /* Define an IP connection filter.
-
   * If an address has CIDR notation then it matches the network.
-
   * For example 74.6.143.25/24 matches 74.6.143.0 - 74.6.143.255.
-
   */
-
  filter->type = CONNECTION_FILTER_BLACKLIST;
-
  filter->list = ip_list_append(filter->list, "98.137.11.164");
-
  filter->list = ip_list_append(filter->list, "127.0.0.0/8");
-
#ifdef AF_INET6
-
  filter->list = ip_list_append(filter->list, "::1");
-
#endif
-

-
  /* Set the socket function which does the filtering */
-
  curl_easy_setopt(curl, CURLOPT_OPENSOCKETFUNCTION, opensocket);
-
  curl_easy_setopt(curl, CURLOPT_OPENSOCKETDATA, filter);
-

-
  /* Verbose mode */
-
  filter->verbose = TRUE;
-
  curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
-

-
  /* Perform the request */
-
  res = curl_easy_perform(curl);
-

-
  /* Check for errors */
-
  if(res != CURLE_OK) {
-
    fprintf(stderr, "curl_easy_perform() failed: %s\n",
-
            curl_easy_strerror(res));
-
  }
-

-
  /* Clean up */
-
  curl_easy_cleanup(curl);
-
  free_connection_filter(filter);
-

-
  /* Clean up libcurl */
-
  curl_global_cleanup();
-

-
  return 0;
-
}
-
#endif
modified external/curl/docs/examples/cacertinmem.c
@@ -31,14 +31,10 @@
#include <curl/curl.h>
#include <stdio.h>

-
#if defined(__GNUC__) || defined(__clang__)
-
#pragma GCC diagnostic ignored "-Woverlength-strings"
-
#endif
-

static size_t writefunction(void *ptr, size_t size, size_t nmemb, void *stream)
{
  fwrite(ptr, size, nmemb, (FILE *)stream);
-
  return nmemb * size;
+
  return (nmemb*size);
}

static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm)
@@ -182,5 +178,5 @@ int main(void)

  curl_easy_cleanup(ch);
  curl_global_cleanup();
-
  return (int)rv;
+
  return rv;
}
modified external/curl/docs/examples/crawler.c
@@ -30,6 +30,14 @@
 * </DESC>
 */

+
/* Parameters */
+
int max_con = 200;
+
int max_total = 20000;
+
int max_requests = 500;
+
int max_link_per_page = 5;
+
int follow_relative_links = 0;
+
char *start_page = "https://www.reuters.com";
+

#include <libxml/HTMLparser.h>
#include <libxml/xpath.h>
#include <libxml/uri.h>
@@ -39,18 +47,9 @@
#include <math.h>
#include <signal.h>

-
/* Parameters */
-
static int max_con = 200;
-
static int max_total = 20000;
-
static int max_requests = 500;
-
static size_t max_link_per_page = 5;
-
static int follow_relative_links = 0;
-
static const char *start_page = "https://www.reuters.com";
-

-
static int pending_interrupt = 0;
-
static void sighandler(int dummy)
+
int pending_interrupt = 0;
+
void sighandler(int dummy)
{
-
  (void)dummy;
  pending_interrupt = 1;
}

@@ -60,7 +59,7 @@ typedef struct {
  size_t size;
} memory;

-
static size_t grow_buffer(void *contents, size_t sz, size_t nmemb, void *ctx)
+
size_t grow_buffer(void *contents, size_t sz, size_t nmemb, void *ctx)
{
  size_t realsize = sz * nmemb;
  memory *mem = (memory*) ctx;
@@ -76,17 +75,16 @@ static size_t grow_buffer(void *contents, size_t sz, size_t nmemb, void *ctx)
  return realsize;
}

-
static CURL *make_handle(const char *url)
+
CURL *make_handle(char *url)
{
  CURL *handle = curl_easy_init();
-
  memory *mem;

  /* Important: use HTTP2 over HTTPS */
  curl_easy_setopt(handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);
  curl_easy_setopt(handle, CURLOPT_URL, url);

  /* buffer body */
-
  mem = malloc(sizeof(memory));
+
  memory *mem = malloc(sizeof(memory));
  mem->size = 0;
  mem->buf = malloc(1);
  curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, grow_buffer);
@@ -119,43 +117,37 @@ static CURL *make_handle(const char *url)
}

/* HREF finder implemented in libxml2 but could be any HTML parser */
-
static size_t follow_links(CURLM *multi_handle, memory *mem, const char *url)
+
size_t follow_links(CURLM *multi_handle, memory *mem, char *url)
{
  int opts = HTML_PARSE_NOBLANKS | HTML_PARSE_NOERROR | \
             HTML_PARSE_NOWARNING | HTML_PARSE_NONET;
-
  htmlDocPtr doc = htmlReadMemory(mem->buf, (int)mem->size, url, NULL, opts);
-
  size_t count;
-
  int i;
-
  xmlChar *xpath;
-
  xmlNodeSetPtr nodeset;
-
  xmlXPathContextPtr context;
-
  xmlXPathObjectPtr result;
+
  htmlDocPtr doc = htmlReadMemory(mem->buf, mem->size, url, NULL, opts);
  if(!doc)
    return 0;
-
  xpath = (xmlChar*) "//a/@href";
-
  context = xmlXPathNewContext(doc);
-
  result = xmlXPathEvalExpression(xpath, context);
+
  xmlChar *xpath = (xmlChar*) "//a/@href";
+
  xmlXPathContextPtr context = xmlXPathNewContext(doc);
+
  xmlXPathObjectPtr result = xmlXPathEvalExpression(xpath, context);
  xmlXPathFreeContext(context);
  if(!result)
    return 0;
-
  nodeset = result->nodesetval;
+
  xmlNodeSetPtr nodeset = result->nodesetval;
  if(xmlXPathNodeSetIsEmpty(nodeset)) {
    xmlXPathFreeObject(result);
    return 0;
  }
-
  count = 0;
+
  size_t count = 0;
+
  int i;
  for(i = 0; i < nodeset->nodeNr; i++) {
    double r = rand();
-
    int x = (int)(r * nodeset->nodeNr / RAND_MAX);
+
    int x = r * nodeset->nodeNr / RAND_MAX;
    const xmlNode *node = nodeset->nodeTab[x]->xmlChildrenNode;
    xmlChar *href = xmlNodeListGetString(doc, node, 1);
-
    char *link;
    if(follow_relative_links) {
      xmlChar *orig = href;
      href = xmlBuildURI(href, (xmlChar *) url);
      xmlFree(orig);
    }
-
    link = (char *) href;
+
    char *link = (char *) href;
    if(!link || strlen(link) < 20)
      continue;
    if(!strncmp(link, "http://", 7) || !strncmp(link, "https://", 8)) {
@@ -169,23 +161,17 @@ static size_t follow_links(CURLM *multi_handle, memory *mem, const char *url)
  return count;
}

-
static int is_html(char *ctype)
+
int is_html(char *ctype)
{
  return ctype != NULL && strlen(ctype) > 10 && strstr(ctype, "text/html");
}

int main(void)
{
-
  CURLM *multi_handle;
-
  int msgs_left;
-
  int pending;
-
  int complete;
-
  int still_running;
-

  signal(SIGINT, sighandler);
-
  LIBXML_TEST_VERSION
+
  LIBXML_TEST_VERSION;
  curl_global_init(CURL_GLOBAL_DEFAULT);
-
  multi_handle = curl_multi_init();
+
  CURLM *multi_handle = curl_multi_init();
  curl_multi_setopt(multi_handle, CURLMOPT_MAX_TOTAL_CONNECTIONS, max_con);
  curl_multi_setopt(multi_handle, CURLMOPT_MAX_HOST_CONNECTIONS, 6L);

@@ -197,18 +183,17 @@ int main(void)
  /* sets html start page */
  curl_multi_add_handle(multi_handle, make_handle(start_page));

-
  pending = 0;
-
  complete = 0;
-
  still_running = 1;
+
  int msgs_left;
+
  int pending = 0;
+
  int complete = 0;
+
  int still_running = 1;
  while(still_running && !pending_interrupt) {
    int numfds;
-
    CURLMsg *m;
-

    curl_multi_wait(multi_handle, NULL, 0, 1000, &numfds);
    curl_multi_perform(multi_handle, &still_running);

    /* See how the transfers went */
-
    m = NULL;
+
    CURLMsg *m = NULL;
    while((m = curl_multi_info_read(multi_handle, &msgs_left))) {
      if(m->msg == CURLMSG_DONE) {
        CURL *handle = m->easy_handle;
modified external/curl/docs/examples/ephiperfifo.c
@@ -354,13 +354,13 @@ static int prog_cb(void *p, double dltotal, double dlnow, double ult,


/* Create a new easy handle, and add it to the global curl_multi */
-
static void new_conn(const char *url, GlobalInfo *g)
+
static void new_conn(char *url, GlobalInfo *g)
{
  ConnInfo *conn;
  CURLMcode rc;

  conn = (ConnInfo*)calloc(1, sizeof(ConnInfo));
-
  conn->error[0] = '\0';
+
  conn->error[0]='\0';

  conn->easy = curl_easy_init();
  if(!conn->easy) {
modified external/curl/docs/examples/evhiperfifo.c
@@ -75,6 +75,8 @@ callback.
#include <sys/stat.h>
#include <errno.h>

+
#define DPRINT(x...) printf(x)
+

#define MSG_OUT stdout /* Send info to stdout, change to stderr if you want */


@@ -117,8 +119,7 @@ static void timer_cb(EV_P_ struct ev_timer *w, int revents);
/* Update the event timer after curl_multi library calls */
static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
{
-
  (void)multi;
-
  printf("%s %li\n", __PRETTY_FUNCTION__, timeout_ms);
+
  DPRINT("%s %li\n", __PRETTY_FUNCTION__,  timeout_ms);
  ev_timer_stop(g->loop, &g->timer_event);
  if(timeout_ms >= 0) {
    /* -1 means delete, other values are timeout times in milliseconds */
@@ -200,15 +201,12 @@ static void check_multi_info(GlobalInfo *g)
/* Called by libevent when we get action on a multi socket */
static void event_cb(EV_P_ struct ev_io *w, int revents)
{
-
  GlobalInfo *g;
+
  DPRINT("%s  w %p revents %i\n", __PRETTY_FUNCTION__, w, revents);
+
  GlobalInfo *g = (GlobalInfo*) w->data;
  CURLMcode rc;
-
  int action;
-

-
  printf("%s  w %p revents %i\n", __PRETTY_FUNCTION__, (void *)w, revents);
-
  g = (GlobalInfo*) w->data;

-
  action = ((revents & EV_READ) ? CURL_POLL_IN : 0) |
-
           ((revents & EV_WRITE) ? CURL_POLL_OUT : 0);
+
  int action = ((revents & EV_READ) ? CURL_POLL_IN : 0) |
+
    ((revents & EV_WRITE) ? CURL_POLL_OUT : 0);
  rc = curl_multi_socket_action(g->multi, w->fd, action, &g->still_running);
  mcode_or_die("event_cb: curl_multi_socket_action", rc);
  check_multi_info(g);
@@ -221,12 +219,10 @@ static void event_cb(EV_P_ struct ev_io *w, int revents)
/* Called by libevent when our timeout expires */
static void timer_cb(EV_P_ struct ev_timer *w, int revents)
{
-
  GlobalInfo *g;
-
  CURLMcode rc;
-

-
  printf("%s  w %p revents %i\n", __PRETTY_FUNCTION__, (void *)w, revents);
+
  DPRINT("%s  w %p revents %i\n", __PRETTY_FUNCTION__, w, revents);

-
  g = (GlobalInfo *)w->data;
+
  GlobalInfo *g = (GlobalInfo *)w->data;
+
  CURLMcode rc;

  rc = curl_multi_socket_action(g->multi, CURL_SOCKET_TIMEOUT, 0,
                                &g->still_running);
@@ -251,11 +247,11 @@ static void remsock(SockInfo *f, GlobalInfo *g)
static void setsock(SockInfo *f, curl_socket_t s, CURL *e, int act,
                    GlobalInfo *g)
{
+
  printf("%s  \n", __PRETTY_FUNCTION__);
+

  int kind = ((act & CURL_POLL_IN) ? EV_READ : 0) |
             ((act & CURL_POLL_OUT) ? EV_WRITE : 0);

-
  printf("%s  \n", __PRETTY_FUNCTION__);
-

  f->sockfd = s;
  f->action = act;
  f->easy = e;
@@ -282,13 +278,13 @@ static void addsock(curl_socket_t s, CURL *easy, int action, GlobalInfo *g)
/* CURLMOPT_SOCKETFUNCTION */
static int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp)
{
+
  DPRINT("%s e %p s %i what %i cbp %p sockp %p\n",
+
         __PRETTY_FUNCTION__, e, s, what, cbp, sockp);
+

  GlobalInfo *g = (GlobalInfo*) cbp;
  SockInfo *fdp = (SockInfo*) sockp;
  const char *whatstr[]={ "none", "IN", "OUT", "INOUT", "REMOVE"};

-
  printf("%s e %p s %i what %i cbp %p sockp %p\n",
-
         __PRETTY_FUNCTION__, e, s, what, cbp, sockp);
-

  fprintf(MSG_OUT,
          "socket callback: s=%d e=%p what=%s ", s, e, whatstr[what]);
  if(what == CURL_POLL_REMOVE) {
@@ -321,22 +317,22 @@ static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *data)
  return realsize;
}

-
/* CURLOPT_XFERINFOFUNCTION */
-
static int xferinfo_cb(void *p, curl_off_t dltotal, curl_off_t dlnow,
-
                       curl_off_t ult, curl_off_t uln)
+

+
/* CURLOPT_PROGRESSFUNCTION */
+
static int prog_cb(void *p, double dltotal, double dlnow, double ult,
+
                   double uln)
{
  ConnInfo *conn = (ConnInfo *)p;
  (void)ult;
  (void)uln;

-
  fprintf(MSG_OUT, "Progress: %s (%" CURL_FORMAT_CURL_OFF_T
-
          "/%" CURL_FORMAT_CURL_OFF_T ")\n", conn->url, dlnow, dltotal);
+
  fprintf(MSG_OUT, "Progress: %s (%g/%g)\n", conn->url, dlnow, dltotal);
  return 0;
}


/* Create a new easy handle, and add it to the global curl_multi */
-
static void new_conn(const char *url, GlobalInfo *g)
+
static void new_conn(char *url, GlobalInfo *g)
{
  ConnInfo *conn;
  CURLMcode rc;
@@ -358,7 +354,7 @@ static void new_conn(const char *url, GlobalInfo *g)
  curl_easy_setopt(conn->easy, CURLOPT_ERRORBUFFER, conn->error);
  curl_easy_setopt(conn->easy, CURLOPT_PRIVATE, conn);
  curl_easy_setopt(conn->easy, CURLOPT_NOPROGRESS, 0L);
-
  curl_easy_setopt(conn->easy, CURLOPT_XFERINFOFUNCTION, xferinfo_cb);
+
  curl_easy_setopt(conn->easy, CURLOPT_PROGRESSFUNCTION, prog_cb);
  curl_easy_setopt(conn->easy, CURLOPT_PROGRESSDATA, conn);
  curl_easy_setopt(conn->easy, CURLOPT_LOW_SPEED_TIME, 3L);
  curl_easy_setopt(conn->easy, CURLOPT_LOW_SPEED_LIMIT, 10L);
@@ -380,8 +376,6 @@ static void fifo_cb(EV_P_ struct ev_io *w, int revents)
  int n = 0;
  GlobalInfo *g = (GlobalInfo *)w->data;

-
  (void)revents;
-

  do {
    s[0]='\0';
    rv = fscanf(g->input, "%1023s%n", s, &n);
@@ -424,7 +418,7 @@ static int init_fifo(GlobalInfo *g)
  fprintf(MSG_OUT, "Now, pipe some URL's into > %s\n", fifo);
  ev_io_init(&g->fifo_event, fifo_cb, sockfd, EV_READ);
  ev_io_start(g->loop, &g->fifo_event);
-
  return 0;
+
  return (0);
}

int main(int argc, char **argv)
modified external/curl/docs/examples/fileupload.c
@@ -30,14 +30,6 @@
#include <sys/stat.h>
#include <fcntl.h>

-
#ifdef _WIN32
-
#undef stat
-
#define stat _stat
-
#undef fstat
-
#define fstat _fstat
-
#define fileno _fileno
-
#endif
-

int main(void)
{
  CURL *curl;
@@ -51,10 +43,8 @@ int main(void)
    return 1; /* cannot continue */

  /* to get the file size */
-
  if(fstat(fileno(fd), &file_info) != 0) {
-
    fclose(fd);
+
  if(fstat(fileno(fd), &file_info) != 0)
    return 1; /* cannot continue */
-
  }

  curl = curl_easy_init();
  if(curl) {
modified external/curl/docs/examples/ftpgetresp.c
@@ -49,15 +49,9 @@ int main(void)

  /* local filename to store the file as */
  ftpfile = fopen(FTPBODY, "wb"); /* b is binary, needed on Windows */
-
  if(!ftpfile)
-
    return 1;

  /* local filename to store the FTP server's response lines in */
  respfile = fopen(FTPHEADERS, "wb"); /* b is binary, needed on Windows */
-
  if(!respfile) {
-
    fclose(ftpfile);
-
    return 1;
-
  }

  curl = curl_easy_init();
  if(curl) {
modified external/curl/docs/examples/ftpupload.c
@@ -31,8 +31,6 @@
#include <errno.h>
#ifdef _WIN32
#include <io.h>
-
#undef stat
-
#define stat _stat
#else
#include <unistd.h>
#endif
@@ -91,8 +89,6 @@ int main(void)

  /* get a FILE * of the same file */
  hd_src = fopen(LOCAL_FILE, "rb");
-
  if(!hd_src)
-
    return 2;

  /* In Windows, this inits the Winsock stuff */
  curl_global_init(CURL_GLOBAL_ALL);
modified external/curl/docs/examples/ghiper.c
@@ -118,16 +118,18 @@ static void mcode_or_die(const char *where, CURLMcode code)
/* Check for completed transfers, and remove their easy handles */
static void check_multi_info(GlobalInfo *g)
{
+
  char *eff_url;
  CURLMsg *msg;
  int msgs_left;
+
  ConnInfo *conn;
+
  CURL *easy;
+
  CURLcode res;

  MSG_OUT("REMAINING: %d\n", g->still_running);
  while((msg = curl_multi_info_read(g->multi, &msgs_left))) {
    if(msg->msg == CURLMSG_DONE) {
-
      CURL *easy = msg->easy_handle;
-
      CURLcode res = msg->data.result;
-
      char *eff_url;
-
      ConnInfo *conn;
+
      easy = msg->easy_handle;
+
      res = msg->data.result;
      curl_easy_getinfo(easy, CURLINFO_PRIVATE, &conn);
      curl_easy_getinfo(easy, CURLINFO_EFFECTIVE_URL, &eff_url);
      MSG_OUT("DONE: %s => (%d) %s\n", eff_url, res, conn->error);
@@ -279,27 +281,23 @@ static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *data)
  return realsize;
}

-
/* CURLOPT_XFERINFOFUNCTION */
-
static int xferinfo_cb(void *p, curl_off_t dltotal, curl_off_t dlnow,
-
                       curl_off_t ult, curl_off_t uln)
+
/* CURLOPT_PROGRESSFUNCTION */
+
static int prog_cb(void *p, double dltotal, double dlnow, double ult,
+
                   double uln)
{
  ConnInfo *conn = (ConnInfo *)p;
-
  (void)ult;
-
  (void)uln;
-

-
  fprintf(MSG_OUT, "Progress: %s (%" CURL_FORMAT_CURL_OFF_T
-
          "/%" CURL_FORMAT_CURL_OFF_T ")\n", conn->url, dlnow, dltotal);
+
  MSG_OUT("Progress: %s (%g/%g)\n", conn->url, dlnow, dltotal);
  return 0;
}

/* Create a new easy handle, and add it to the global curl_multi */
-
static void new_conn(const char *url, GlobalInfo *g)
+
static void new_conn(char *url, GlobalInfo *g)
{
  ConnInfo *conn;
  CURLMcode rc;

  conn = g_malloc0(sizeof(ConnInfo));
-
  conn->error[0] = '\0';
+
  conn->error[0]='\0';
  conn->easy = curl_easy_init();
  if(!conn->easy) {
    MSG_OUT("curl_easy_init() failed, exiting!\n");
@@ -314,7 +312,7 @@ static void new_conn(const char *url, GlobalInfo *g)
  curl_easy_setopt(conn->easy, CURLOPT_ERRORBUFFER, conn->error);
  curl_easy_setopt(conn->easy, CURLOPT_PRIVATE, conn);
  curl_easy_setopt(conn->easy, CURLOPT_NOPROGRESS, SHOW_PROGRESS ? 0L : 1L);
-
  curl_easy_setopt(conn->easy, CURLOPT_XFERINFOFUNCTION, xferinfo_cb);
+
  curl_easy_setopt(conn->easy, CURLOPT_PROGRESSFUNCTION, prog_cb);
  curl_easy_setopt(conn->easy, CURLOPT_PROGRESSDATA, conn);
  curl_easy_setopt(conn->easy, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(conn->easy, CURLOPT_CONNECTTIMEOUT, 30L);
@@ -388,7 +386,7 @@ int init_fifo(void)
  const char *fifo = "hiper.fifo";
  int socket;

-
  if(lstat(fifo, &st) == 0) {
+
  if(lstat (fifo, &st) == 0) {
    if((st.st_mode & S_IFMT) == S_IFREG) {
      errno = EEXIST;
      perror("lstat");
@@ -413,12 +411,13 @@ int init_fifo(void)
  return socket;
}

-
int main(void)
+
int main(int argc, char **argv)
{
-
  GlobalInfo *g = g_malloc0(sizeof(GlobalInfo));
+
  GlobalInfo *g;
  GMainLoop*gmain;
  int fd;
  GIOChannel* ch;
+
  g = g_malloc0(sizeof(GlobalInfo));

  fd = init_fifo();
  ch = g_io_channel_unix_new(fd);
modified external/curl/docs/examples/hiperfifo.c
@@ -259,7 +259,7 @@ static void setsock(SockInfo *f, curl_socket_t s, CURL *e, int act,
  if(event_initialized(&f->ev)) {
    event_del(&f->ev);
  }
-
  event_assign(&f->ev, g->evbase, f->sockfd, (short)kind, event_cb, g);
+
  event_assign(&f->ev, g->evbase, f->sockfd, kind, event_cb, g);
  event_add(&f->ev, NULL);
}

@@ -315,27 +315,26 @@ static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *data)


/* CURLOPT_PROGRESSFUNCTION */
-
static int xferinfo_cb(void *p, curl_off_t dltotal, curl_off_t dlnow,
-
                       curl_off_t ult, curl_off_t uln)
+
static int prog_cb(void *p, double dltotal, double dlnow, double ult,
+
                   double uln)
{
  ConnInfo *conn = (ConnInfo *)p;
  (void)ult;
  (void)uln;

-
  fprintf(MSG_OUT, "Progress: %s (%" CURL_FORMAT_CURL_OFF_T
-
          "/%" CURL_FORMAT_CURL_OFF_T ")\n", conn->url, dlnow, dltotal);
+
  fprintf(MSG_OUT, "Progress: %s (%g/%g)\n", conn->url, dlnow, dltotal);
  return 0;
}


/* Create a new easy handle, and add it to the global curl_multi */
-
static void new_conn(const char *url, GlobalInfo *g)
+
static void new_conn(char *url, GlobalInfo *g)
{
  ConnInfo *conn;
  CURLMcode rc;

  conn = calloc(1, sizeof(ConnInfo));
-
  conn->error[0] = '\0';
+
  conn->error[0]='\0';

  conn->easy = curl_easy_init();
  if(!conn->easy) {
@@ -351,7 +350,7 @@ static void new_conn(const char *url, GlobalInfo *g)
  curl_easy_setopt(conn->easy, CURLOPT_ERRORBUFFER, conn->error);
  curl_easy_setopt(conn->easy, CURLOPT_PRIVATE, conn);
  curl_easy_setopt(conn->easy, CURLOPT_NOPROGRESS, 0L);
-
  curl_easy_setopt(conn->easy, CURLOPT_XFERINFOFUNCTION, xferinfo_cb);
+
  curl_easy_setopt(conn->easy, CURLOPT_PROGRESSFUNCTION, prog_cb);
  curl_easy_setopt(conn->easy, CURLOPT_PROGRESSDATA, conn);
  curl_easy_setopt(conn->easy, CURLOPT_FOLLOWLOCATION, 1L);
  fprintf(MSG_OUT,
@@ -422,7 +421,7 @@ static int init_fifo(GlobalInfo *g)
  event_assign(&g->fifo_event, g->evbase, sockfd, EV_READ|EV_PERSIST,
               fifo_cb, g);
  event_add(&g->fifo_event, NULL);
-
  return 0;
+
  return (0);
}

static void clean_fifo(GlobalInfo *g)
modified external/curl/docs/examples/htmltitle.cpp
@@ -43,7 +43,7 @@
//  Case-insensitive string comparison
//

-
#ifdef _WIN32
+
#ifdef _MSC_VER
#define COMPARE(a, b) (!_stricmp((a), (b)))
#else
#define COMPARE(a, b) (!strcasecmp((a), (b)))
@@ -71,8 +71,8 @@ static std::string buffer;
//  libcurl write callback function
//

-
static size_t writer(char *data, size_t size, size_t nmemb,
-
                     std::string *writerData)
+
static int writer(char *data, size_t size, size_t nmemb,
+
                  std::string *writerData)
{
  if(writerData == NULL)
    return 0;
@@ -86,7 +86,7 @@ static size_t writer(char *data, size_t size, size_t nmemb,
//  libcurl connection initialization
//

-
static bool init(CURL *&conn, const char *url)
+
static bool init(CURL *&conn, char *url)
{
  CURLcode code;

@@ -140,7 +140,7 @@ static void StartElement(void *voidContext,
{
  Context *context = static_cast<Context *>(voidContext);

-
  if(COMPARE(reinterpret_cast<const char *>(name), "TITLE")) {
+
  if(COMPARE(reinterpret_cast<char *>(name), "TITLE")) {
    context->title = "";
    context->addTitle = true;
  }
@@ -156,7 +156,7 @@ static void EndElement(void *voidContext,
{
  Context *context = static_cast<Context *>(voidContext);

-
  if(COMPARE(reinterpret_cast<const char *>(name), "TITLE"))
+
  if(COMPARE(reinterpret_cast<char *>(name), "TITLE"))
    context->addTitle = false;
}

@@ -169,8 +169,7 @@ static void handleCharacters(Context *context,
                             int length)
{
  if(context->addTitle)
-
    context->title.append(reinterpret_cast<const char *>(chars),
-
                          (unsigned long)length);
+
    context->title.append(reinterpret_cast<char *>(chars), length);
}

//
@@ -231,11 +230,6 @@ static htmlSAXHandler saxHandler =
  NULL,
  NULL,
  cdata,
-
  NULL,
-
  0,
-
  0,
-
  0,
-
  0,
  NULL
};

@@ -252,7 +246,7 @@ static void parseHtml(const std::string &html,
  ctxt = htmlCreatePushParserCtxt(&saxHandler, &context, "", 0, "",
                                  XML_CHAR_ENCODING_NONE);

-
  htmlParseChunk(ctxt, html.c_str(), (int)html.size(), 0);
+
  htmlParseChunk(ctxt, html.c_str(), html.size(), 0);
  htmlParseChunk(ctxt, "", 0, 1);

  htmlFreeParserCtxt(ctxt);
modified external/curl/docs/examples/http2-upload.c
@@ -38,11 +38,6 @@
#include <unistd.h>
#endif

-
#ifdef _WIN32
-
#undef stat
-
#define stat _stat
-
#endif
-

/* curl stuff */
#include <curl/curl.h>
#include <curl/mprintf.h>
modified external/curl/docs/examples/httpput-postfields.c
@@ -27,6 +27,7 @@
 */
#include <stdio.h>
#include <fcntl.h>
+
#include <sys/stat.h>
#include <curl/curl.h>

static const char olivertwist[]=
modified external/curl/docs/examples/httpput.c
@@ -30,11 +30,6 @@
#include <sys/stat.h>
#include <curl/curl.h>

-
#ifdef _WIN32
-
#undef stat
-
#define stat _stat
-
#endif
-

/*
 * This example shows an HTTP PUT operation. PUTs a file given as a command
 * line argument to the URL also given on the command line.
@@ -86,8 +81,6 @@ int main(int argc, char **argv)
     fdopen() from the previous descriptor, but hey this is just
     an example! */
  hd_src = fopen(file, "rb");
-
  if(!hd_src)
-
    return 2;

  /* In Windows, this inits the Winsock stuff */
  curl_global_init(CURL_GLOBAL_ALL);
modified external/curl/docs/examples/multi-app.c
@@ -52,7 +52,7 @@ int main(void)
  CURLMsg *msg; /* for picking up messages with the transfer status */
  int msgs_left; /* how many messages are left */

-
  /* Allocate one curl handle per transfer */
+
  /* Allocate one CURL handle per transfer */
  for(i = 0; i < HANDLECOUNT; i++)
    handles[i] = curl_easy_init();

modified external/curl/docs/examples/multi-event.c
@@ -32,9 +32,9 @@
#include <event2/event.h>
#include <curl/curl.h>

-
static struct event_base *base;
-
static CURLM *curl_handle;
-
static struct event *timeout;
+
struct event_base *base;
+
CURLM *curl_handle;
+
struct event *timeout;

typedef struct curl_context_s {
  struct event *event;
@@ -127,8 +127,6 @@ static void curl_perform(int fd, short event, void *arg)
  int flags = 0;
  curl_context_t *context;

-
  (void)fd;
-

  if(event & EV_READ)
    flags |= CURL_CSELECT_IN;
  if(event & EV_WRITE)
@@ -145,9 +143,6 @@ static void curl_perform(int fd, short event, void *arg)
static void on_timeout(evutil_socket_t fd, short events, void *arg)
{
  int running_handles;
-
  (void)fd;
-
  (void)events;
-
  (void)arg;
  curl_multi_socket_action(curl_handle, CURL_SOCKET_TIMEOUT, 0,
                           &running_handles);
  check_multi_info();
@@ -155,15 +150,13 @@ static void on_timeout(evutil_socket_t fd, short events, void *arg)

static int start_timeout(CURLM *multi, long timeout_ms, void *userp)
{
-
  (void)multi;
-
  (void)userp;
  if(timeout_ms < 0) {
    evtimer_del(timeout);
  }
  else {
-
    struct timeval tv;
    if(timeout_ms == 0)
      timeout_ms = 1; /* 0 means call socket_action asap */
+
    struct timeval tv;
    tv.tv_sec = timeout_ms / 1000;
    tv.tv_usec = (timeout_ms % 1000) * 1000;
    evtimer_del(timeout);
@@ -173,14 +166,11 @@ static int start_timeout(CURLM *multi, long timeout_ms, void *userp)
}

static int handle_socket(CURL *easy, curl_socket_t s, int action, void *userp,
-
                         void *socketp)
+
                  void *socketp)
{
  curl_context_t *curl_context;
  int events = 0;

-
  (void)easy;
-
  (void)userp;
-

  switch(action) {
  case CURL_POLL_IN:
  case CURL_POLL_OUT:
@@ -198,8 +188,8 @@ static int handle_socket(CURL *easy, curl_socket_t s, int action, void *userp,
    events |= EV_PERSIST;

    event_del(curl_context->event);
-
    event_assign(curl_context->event, base, curl_context->sockfd,
-
      (short)events, curl_perform, curl_context);
+
    event_assign(curl_context->event, base, curl_context->sockfd, events,
+
      curl_perform, curl_context);
    event_add(curl_context->event, NULL);

    break;
modified external/curl/docs/examples/multi-legacy.c
@@ -58,7 +58,7 @@ int main(void)
  CURLMsg *msg; /* for picking up messages with the transfer status */
  int msgs_left; /* how many messages are left */

-
  /* Allocate one curl handle per transfer */
+
  /* Allocate one CURL handle per transfer */
  for(i = 0; i < HANDLECOUNT; i++)
    handles[i] = curl_easy_init();

@@ -100,19 +100,11 @@ int main(void)

    curl_multi_timeout(multi_handle, &curl_timeo);
    if(curl_timeo >= 0) {
-
#if defined(MSDOS) || defined(__AMIGA__)
-
      timeout.tv_sec = (time_t)(curl_timeo / 1000);
-
#else
      timeout.tv_sec = curl_timeo / 1000;
-
#endif
      if(timeout.tv_sec > 1)
        timeout.tv_sec = 1;
      else
-
#if defined(MSDOS) || defined(__AMIGA__)
-
        timeout.tv_usec = (time_t)(curl_timeo % 1000) * 1000;
-
#else
        timeout.tv_usec = (int)(curl_timeo % 1000) * 1000;
-
#endif
    }

    /* get file descriptors from the transfers */
@@ -135,8 +127,7 @@ int main(void)
      rc = 0;
#else
      /* Portable sleep for platforms other than Windows. */
-
      struct timeval wait = {0};
-
      wait.tv_usec = 100 * 1000; /* 100ms */
+
      struct timeval wait = { 0, 100 * 1000 }; /* 100ms */
      rc = select(0, NULL, NULL, NULL, &wait);
#endif
    }
@@ -183,7 +174,7 @@ int main(void)

  curl_multi_cleanup(multi_handle);

-
  /* Free the curl handles */
+
  /* Free the CURL handles */
  for(i = 0; i < HANDLECOUNT; i++)
    curl_easy_cleanup(handles[i]);

modified external/curl/docs/examples/multi-uv.c
@@ -177,7 +177,7 @@ static int cb_timeout(CURLM *multi, long timeout_ms,
    if(timeout_ms == 0)
      timeout_ms = 1; /* 0 means call curl_multi_socket_action asap but NOT
                         within the callback itself */
-
    uv_timer_start(&uv->timeout, on_uv_timeout, (uint64_t)timeout_ms,
+
    uv_timer_start(&uv->timeout, on_uv_timeout, timeout_ms,
                   0); /* do not repeat */
  }
  return 0;
modified external/curl/docs/examples/multithread.c
@@ -41,7 +41,7 @@
  https://curl.se/libcurl/c/threadsafe.html

*/
-
static const char * const urls[NUMT]= {
+
const char * const urls[NUMT]= {
  "https://curl.se/",
  "ftp://example.com/",
  "https://example.net/",
@@ -67,7 +67,7 @@ static void *pull_one_url(void *url)
   void * (*start_func)(void *), void *arg);
*/

-
int main(void)
+
int main(int argc, char **argv)
{
  pthread_t tid[NUMT];
  int i;
modified external/curl/docs/examples/sendrecv.c
@@ -30,19 +30,6 @@
#include <string.h>
#include <curl/curl.h>

-
/* Avoid warning in FD_SET() with pre-2020 Cygwin/MSYS releases:
-
 * warning: conversion to 'long unsigned int' from 'curl_socket_t' {aka 'int'}
-
 * may change the sign of the result [-Wsign-conversion]
-
 */
-
#ifdef __GNUC__
-
#pragma GCC diagnostic ignored "-Wsign-conversion"
-
#ifdef __DJGPP__
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
-
#elif defined(_MSC_VER)
-
#pragma warning(disable:4127)  /* conditional expression is constant */
-
#endif
-

/* Auxiliary function that waits on the socket. */
static int wait_on_socket(curl_socket_t sockfd, int for_recv, long timeout_ms)
{
@@ -50,18 +37,24 @@ static int wait_on_socket(curl_socket_t sockfd, int for_recv, long timeout_ms)
  fd_set infd, outfd, errfd;
  int res;

-
#if defined(MSDOS) || defined(__AMIGA__)
-
  tv.tv_sec = (time_t)(timeout_ms / 1000);
-
  tv.tv_usec = (time_t)(timeout_ms % 1000) * 1000;
-
#else
  tv.tv_sec = timeout_ms / 1000;
  tv.tv_usec = (int)(timeout_ms % 1000) * 1000;
-
#endif

  FD_ZERO(&infd);
  FD_ZERO(&outfd);
  FD_ZERO(&errfd);

+
/* Avoid this warning with pre-2020 Cygwin/MSYS releases:
+
 * warning: conversion to 'long unsigned int' from 'curl_socket_t' {aka 'int'}
+
 * may change the sign of the result [-Wsign-conversion]
+
 */
+
#if defined(__GNUC__)
+
#pragma GCC diagnostic push
+
#pragma GCC diagnostic ignored "-Wsign-conversion"
+
#elif defined(_MSC_VER)
+
#pragma warning(push)
+
#pragma warning(disable:4127)  /* conditional expression is constant */
+
#endif
  FD_SET(sockfd, &errfd); /* always check for error */

  if(for_recv) {
@@ -70,6 +63,11 @@ static int wait_on_socket(curl_socket_t sockfd, int for_recv, long timeout_ms)
  else {
    FD_SET(sockfd, &outfd);
  }
+
#if defined(__GNUC__)
+
#pragma GCC diagnostic pop
+
#elif defined(_MSC_VER)
+
#pragma warning(pop)
+
#endif

  /* select() returns the number of signalled sockets or -1 */
  res = select((int)sockfd + 1, &infd, &outfd, &errfd, &tv);
modified external/curl/docs/examples/sessioninfo.c
@@ -47,8 +47,7 @@ static size_t wrfu(void *ptr, size_t size, size_t nmemb, void *stream)
  (void)stream;
  (void)ptr;

-
  res = CURL_IGNORE_DEPRECATION(
-
    curl_easy_getinfo(curl, CURLINFO_TLS_SESSION, &info));
+
  res = curl_easy_getinfo(curl, CURLINFO_TLS_SESSION, &info);

  if(!res) {
    switch(info->backend) {
modified external/curl/docs/examples/simplessl.c
@@ -74,8 +74,6 @@ int main(void)
#endif

  headerfile = fopen(pHeaderFile, "wb");
-
  if(!headerfile)
-
    return 1;

  curl_global_init(CURL_GLOBAL_DEFAULT);

@@ -148,7 +146,5 @@ int main(void)

  curl_global_cleanup();

-
  fclose(headerfile);
-

  return 0;
}
modified external/curl/docs/examples/synctime.c
@@ -27,11 +27,23 @@
 */
/* This example code only builds as-is on Windows.
 *
+
 * While Unix/Linux user, you do not need this software.
+
 * You can achieve the same result as synctime using curl, awk and date.
+
 * Set proxy as according to your network, but beware of proxy Cache-Control.
+
 *
+
 * To set your system clock, root access is required.
+
 * # date -s "`curl -sI https://nist.time.gov/timezone.cgi?UTC/s/0 \
+
 *        | awk -F': ' '/Date: / {print $2}'`"
+
 *
+
 * To view remote webserver date and time.
+
 * $ curl -sI https://nist.time.gov/timezone.cgi?UTC/s/0 \
+
 *        | awk -F': ' '/Date: / {print $2}'
+
 *
 * Synchronising your computer clock via Internet time server usually relies
 * on DAYTIME, TIME, or NTP protocols. These protocols provide good accurate
-
 * time synchronization but it does not work well through a firewall/proxy.
-
 * Some adjustment has to be made to the firewall/proxy for these protocols to
-
 * work properly.
+
 * time synchronization but it does not work well through a
+
 * firewall/proxy. Some adjustment has to be made to the firewall/proxy for
+
 * these protocols to work properly.
 *
 * There is an indirect method. Since most webserver provide server time in
 * their HTTP header, therefore you could synchronise your computer clock
@@ -52,6 +64,12 @@
 * 6. Webserver data should not be cached by the proxy server. Some
 *    webserver provide Cache-Control to prevent caching.
 *
+
 * References:
+
 * https://web.archive.org/web/20100228012139/ \
+
 *    tf.nist.gov/timefreq/service/its.htm
+
 * https://web.archive.org/web/20100409024302/ \
+
 *    tf.nist.gov/timefreq/service/firewall.htm
+
 *
 * Usage:
 * This software synchronises your computer clock only when you issue
 * it with --synctime. By default, it only display the webserver's clock.
@@ -77,8 +95,6 @@

#ifdef _WIN32
#include <windows.h>
-
#else
-
#error "This example requires Windows."
#endif


@@ -94,38 +110,36 @@ typedef struct
  char timeserver[MAX_STRING1];
} conf_t;

-
static const char DefaultTimeServer[3][MAX_STRING1] =
+
const char DefaultTimeServer[3][MAX_STRING1] =
{
  "https://nist.time.gov/",
  "https://www.google.com/"
};

-
static const char *DayStr[] = {
-
  "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
-
static const char *MthStr[] = {
-
  "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-
  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
+
const char *DayStr[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
+
const char *MthStr[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
+
                        "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};

-
static int ShowAllHeader;
-
static int AutoSyncTime;
-
static SYSTEMTIME SYSTime;
-
static SYSTEMTIME LOCALTime;
+
int  ShowAllHeader;
+
int  AutoSyncTime;
+
SYSTEMTIME SYSTime;
+
SYSTEMTIME LOCALTime;

#define HTTP_COMMAND_HEAD       0
#define HTTP_COMMAND_GET        1


-
static size_t SyncTime_CURL_WriteOutput(void *ptr, size_t size, size_t nmemb,
-
                                        void *stream)
+
size_t SyncTime_CURL_WriteOutput(void *ptr, size_t size, size_t nmemb,
+
                                 void *stream)
{
  fwrite(ptr, size, nmemb, stream);
-
  return nmemb * size;
+
  return (nmemb*size);
}

-
static size_t SyncTime_CURL_WriteHeader(void *ptr, size_t size, size_t nmemb,
-
                                        void *stream)
+
size_t SyncTime_CURL_WriteHeader(void *ptr, size_t size, size_t nmemb,
+
                                 void *stream)
{
-
  char TmpStr1[26], TmpStr2[26];
+
  char  TmpStr1[26], TmpStr2[26];

  (void)stream;

@@ -153,7 +167,7 @@ static size_t SyncTime_CURL_WriteHeader(void *ptr, size_t size, size_t nmemb,
          SYSTime.wMilliseconds = 500;    /* adjust to midpoint, 0.5 sec */
          for(i = 0; i < 12; i++) {
            if(strcmp(MthStr[i], TmpStr2) == 0) {
-
              SYSTime.wMonth = (WORD)(i + 1);
+
              SYSTime.wMonth = i + 1;
              break;
            }
          }
@@ -171,11 +185,11 @@ static size_t SyncTime_CURL_WriteHeader(void *ptr, size_t size, size_t nmemb,
            " Server Date is no longer valid.\n");
    AutoSyncTime = 0;
  }
-
  return nmemb * size;
+
  return (nmemb*size);
}

-
static void SyncTime_CURL_Init(CURL *curl, const char *proxy_port,
-
                               const char *proxy_user_password)
+
void SyncTime_CURL_Init(CURL *curl, char *proxy_port,
+
                        char *proxy_user_password)
{
  if(strlen(proxy_port) > 0)
    curl_easy_setopt(curl, CURLOPT_PROXY, proxy_port);
@@ -183,13 +197,15 @@ static void SyncTime_CURL_Init(CURL *curl, const char *proxy_port,
  if(strlen(proxy_user_password) > 0)
    curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, proxy_user_password);

+
#ifdef SYNCTIME_UA
  curl_easy_setopt(curl, CURLOPT_USERAGENT, SYNCTIME_UA);
+
#endif
  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, SyncTime_CURL_WriteOutput);
  curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, SyncTime_CURL_WriteHeader);
}

-
static CURLcode SyncTime_CURL_Fetch(CURL *curl, const char *URL_Str,
-
                                    const char *OutFileName, int HttpGetBody)
+
int SyncTime_CURL_Fetch(CURL *curl, char *URL_Str, char *OutFileName,
+
                        int HttpGetBody)
{
  FILE *outfile;
  CURLcode res;
@@ -209,11 +225,11 @@ static CURLcode SyncTime_CURL_Fetch(CURL *curl, const char *URL_Str,
  return res;  /* (CURLE_OK) */
}

-
static void showUsage(void)
+
void showUsage(void)
{
-
  fprintf(stderr, "synctime: Synchronising computer clock with time server"
+
  fprintf(stderr, "SYNCTIME: Synchronising computer clock with time server"
          " using HTTP protocol.\n");
-
  fprintf(stderr, "Usage   : synctime [Option]\n");
+
  fprintf(stderr, "Usage   : SYNCTIME [Option]\n");
  fprintf(stderr, "Options :\n");
  fprintf(stderr, " --server=WEBSERVER        Use this time server instead"
          " of default.\n");
@@ -229,7 +245,7 @@ static void showUsage(void)
  return;
}

-
static int conf_init(conf_t *conf)
+
int conf_init(conf_t *conf)
{
  int i;

@@ -307,9 +323,9 @@ int main(int argc, char *argv[])
    tzonediffWord  = (int)(tzonediffFloat/3600.0);

    if((double)(tzonediffWord * 3600) == tzonediffFloat)
-
      snprintf(tzoneBuf, sizeof(tzoneBuf), "%+03d'00'", tzonediffWord);
+
      snprintf(tzoneBuf, 15, "%+03d'00'", tzonediffWord);
    else
-
      snprintf(tzoneBuf, sizeof(tzoneBuf), "%+03d'30'", tzonediffWord);
+
      snprintf(tzoneBuf, 15, "%+03d'30'", tzonediffWord);

    /* Get current system time and local time */
    GetSystemTime(&SYSTime);
modified external/curl/docs/examples/threaded-ssl.c
@@ -45,7 +45,7 @@
#define NUMT 4

/* List of URLs to fetch.*/
-
static const char * const urls[]= {
+
const char * const urls[]= {
  "https://www.example.com/",
  "https://www2.example.com/",
  "https://www3.example.com/",
modified external/curl/docs/examples/usercertinmem.c
@@ -31,24 +31,16 @@
 * must be used in real circumstances when a secure connection is required.
 */

-
#ifndef OPENSSL_SUPPRESS_DEPRECATED
-
#define OPENSSL_SUPPRESS_DEPRECATED
-
#endif
-

#include <openssl/ssl.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <curl/curl.h>
#include <stdio.h>

-
#if defined(__GNUC__) || defined(__clang__)
-
#pragma GCC diagnostic ignored "-Woverlength-strings"
-
#endif
-

static size_t writefunction(void *ptr, size_t size, size_t nmemb, void *stream)
{
  fwrite(ptr, size, nmemb, stream);
-
  return nmemb * size;
+
  return (nmemb*size);
}

static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm)
@@ -231,5 +223,5 @@ int main(void)

  curl_easy_cleanup(ch);
  curl_global_cleanup();
-
  return (int)rv;
+
  return rv;
}
modified external/curl/docs/examples/xmlstream.c
@@ -59,9 +59,6 @@ static void startElement(void *userData, const XML_Char *name,
  state->tags++;
  state->depth++;

-
  (void)name;
-
  (void)atts;
-

  /* Get a clean slate for reading in character data. */
  free(state->characters.memory);
  state->characters.memory = NULL;
@@ -73,7 +70,7 @@ static void characterDataHandler(void *userData, const XML_Char *s, int len)
  struct ParserStruct *state = (struct ParserStruct *) userData;
  struct MemoryStruct *mem = &state->characters;

-
  char *ptr = realloc(mem->memory, mem->size + (unsigned long)len + 1);
+
  char *ptr = realloc(mem->memory, mem->size + len + 1);
  if(!ptr) {
    /* Out of memory. */
    fprintf(stderr, "Not enough memory (realloc returned NULL).\n");
@@ -83,7 +80,7 @@ static void characterDataHandler(void *userData, const XML_Char *s, int len)

  mem->memory = ptr;
  memcpy(&(mem->memory[mem->size]), s, len);
-
  mem->size += (unsigned long)len;
+
  mem->size += len;
  mem->memory[mem->size] = 0;
}

@@ -103,8 +100,8 @@ static size_t parseStreamCallback(void *contents, size_t length, size_t nmemb,
  struct ParserStruct *state = (struct ParserStruct *) XML_GetUserData(parser);

  /* Only parse if we are not already in a failure state. */
-
  if(state->ok && XML_Parse(parser, contents, (int)real_size, 0) == 0) {
-
    enum XML_Error error_code = XML_GetErrorCode(parser);
+
  if(state->ok && XML_Parse(parser, contents, real_size, 0) == 0) {
+
    int error_code = XML_GetErrorCode(parser);
    fprintf(stderr, "Parsing response buffer of length %lu failed"
            " with error code %d (%s).\n",
            real_size, error_code, XML_ErrorString(error_code));
@@ -150,7 +147,7 @@ int main(void)
  else if(state.ok) {
    /* Expat requires one final call to finalize parsing. */
    if(XML_Parse(parser, NULL, 0, 1) == 0) {
-
      enum XML_Error error_code = XML_GetErrorCode(parser);
+
      int error_code = XML_GetErrorCode(parser);
      fprintf(stderr, "Finalizing parsing failed with error code %d (%s).\n",
              error_code, XML_ErrorString(error_code));
    }
modified external/curl/docs/internals/BUFQ.md
@@ -11,8 +11,8 @@ to and read from. It manages read and write positions and has a maximum size.

## read/write

-
Its basic read/write functions have a similar signature and return code
-
handling as many internal curl read and write ones.
+
Its basic read/write functions have a similar signature and return code handling
+
as many internal Curl read and write ones.


```
@@ -84,8 +84,9 @@ It is possible to undo writes by calling:
CURLcode Curl_bufq_unwrite(struct bufq *q, size_t len);
```

-
This removes `len` bytes from the end of the bufq again. When removing more
-
bytes than are present, CURLE_AGAIN is returned and bufq is cleared.
+
This will remove `len` bytes from the end of the bufq again. When removing
+
more bytes than are present, CURLE_AGAIN is returned and the bufq will be
+
empty.

## lifetime

modified external/curl/docs/internals/DYNBUF.md
@@ -132,14 +132,3 @@ CURLcode Curl_dyn_setlen(struct dynbuf *s, size_t len);
Sets the new shorter length of the buffer in number of bytes. Keeps the
leftmost set number of bytes, discards the rest. To instead keep the tail part
of the buffer, see `Curl_dyn_tail()`.
-

-
## `Curl_dyn_take`
-

-
```c
-
char *Curl_dyn_take(struct dynbuf *s, size_t *plen);
-
```
-

-
Transfers ownership of the internal buffer to the caller. The dynbuf
-
resets to its initial state. The returned pointer may be `NULL` if the
-
dynbuf never allocated memory. The returned length is the amount of
-
data written to the buffer. The actual allocated memory might be larger.
added external/curl/docs/internals/HYPER.md
@@ -0,0 +1,78 @@
+
<!--
+
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+

+
SPDX-License-Identifier: curl
+
-->
+

+
# Hyper
+

+
Hyper is a separate HTTP library written in Rust. curl can be told to use this
+
library as a backend to deal with HTTP.
+

+
## EXPERIMENTAL
+

+
Hyper support in curl is considered **EXPERIMENTAL** until further notice. It
+
needs to be explicitly enabled at build-time.
+

+
Further development and tweaking of the Hyper backend support in curl happens
+
in the master branch using pull-requests, just like ordinary changes.
+

+
## Hyper version
+

+
The C API for Hyper is brand new and is still under development.
+

+
## Build curl with hyper
+

+
Using Rust 1.64.0 or later, build hyper and enable its C API like this:
+

+
     % git clone https://github.com/hyperium/hyper
+
     % cd hyper
+
     % RUSTFLAGS="--cfg hyper_unstable_ffi" cargo rustc --features client,http1,http2,ffi --crate-type cdylib
+

+
Also, `--release` can be added for a release (optimized) build.
+

+
Build curl to use hyper's C API:
+

+
     % git clone https://github.com/curl/curl
+
     % cd curl
+
     % autoreconf -fi
+
     % ./configure LDFLAGS="-Wl,-rpath,<hyper-dir>/target/debug -Wl,-rpath,<hyper-dir>/target/release" --with-openssl --with-hyper=<hyper-dir>
+
     % make
+

+
# Using Hyper internally
+

+
Hyper is a low level HTTP transport library. curl itself provides all HTTP
+
headers and Hyper provides all received headers back to curl.
+

+
Therefore, most of the "header logic" in curl as in responding to and acting
+
on specific input and output headers are done the same way in curl code.
+

+
The API in Hyper delivers received HTTP headers as (cleaned up) name=value
+
pairs, making it impossible for curl to know the exact byte representation
+
over the wire with Hyper.
+

+
## Limitations
+

+
The hyper backend does not support
+

+
- `CURLOPT_IGNORE_CONTENT_LENGTH`
+
- `--raw` and disabling `CURLOPT_HTTP_TRANSFER_DECODING`
+
- RTSP
+
- hyper is much stricter about what HTTP header contents it allows
+
- leading whitespace in first HTTP/1 response header
+
- HTTP/0.9
+
- HTTP/2 upgrade using HTTP:// URLs. Aka 'h2c'
+
- HTTP/2 in general. Hyper has support for HTTP/2 but the curl side
+
  needs changes so that a `hyper_clientconn` can last for the duration
+
  of a connection. Probably this means turning the Hyper HTTP/2 backend
+
  into a connection filter.
+

+
## Remaining issues
+

+
This backend is still not feature complete with the native backend. Areas that
+
still need attention and verification include:
+

+
- multiplexed HTTP/2
+
- h2 Upgrade:
+
- receiving HTTP/1 trailers
+
- sending HTTP/1 trailers
modified external/curl/docs/internals/LLIST.md
@@ -64,12 +64,7 @@ See also `Curl_llist_insert_next`.

## Remove a node

-
Remove a node again from a list by calling `Curl_llist_remove()`. This
-
destroys the node's `elem` (e.g. calling a registered free function).
-

-
To remove a node without destroying its `elem`, use `Curl_node_take_elem()`
-
which returns the `elem` pointer and removes the node from the list. The
-
caller then owns this pointer and has to take care of it.
+
Remove a node again from a list by calling `Curl_llist_remove()`.

## Iterate

modified external/curl/docs/internals/MQTT.md
@@ -23,8 +23,7 @@ Example subscribe:

    curl mqtt://host.home/bedroom/temp

-
This sends an MQTT SUBSCRIBE packet for the topic `bedroom/temp` and listen in
-
for incoming PUBLISH packets.
+
This will send an MQTT SUBSCRIBE packet for the topic `bedroom/temp` and listen in for incoming PUBLISH packets.

### Publishing

@@ -36,8 +35,7 @@ Example publish:

    curl -d 75 mqtt://host.home/bedroom/dimmer

-
This sends an MQTT PUBLISH packet to the topic `bedroom/dimmer` with the
-
payload `75`.
+
This will send an MQTT PUBLISH packet to the topic `bedroom/dimmer` with the payload `75`.

## What does curl deliver as a response to a subscribe

deleted external/curl/docs/internals/STRPARSE.md
@@ -1,109 +0,0 @@
-
<!--
-
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-

-
SPDX-License-Identifier: curl
-
-->
-

-
# String parsing with `strparse`
-

-
The functions take input via a pointer to a pointer, which allows the
-
functions to advance the pointer on success which then by extension allows
-
"chaining" of functions like this example that gets a word, a space and then a
-
second word:
-

-
~~~c
-
if(Curl_str_word(&line, &word1, MAX) ||
-
   Curl_str_singlespace(&line) ||
-
   Curl_str_word(&line, &word2, MAX))
-
  fprintf(stderr, "ERROR\n");
-
~~~
-

-
## Strings
-

-
The functions that return string information does so by populating a
-
`struct Curl_str`:
-

-
~~~c
-
struct Curl_str {
-
  char *str;
-
  size_t len;
-
};
-
~~~
-

-
## `Curl_str_word`
-

-
~~~c
-
int Curl_str_word(char **linep, struct Curl_str *out, const size_t max);
-
~~~
-

-
Get a sequence of bytes until the first space or the end of the string. Return
-
non-zero on error. There is no way to include a space in the word, no sort of
-
escaping. The word must be at least one byte, otherwise it is considered an
-
error.
-

-
`max` is the longest accepted word, or it returns error.
-

-
On a successful return, `linep` is updated to point to the byte immediately
-
following the parsed word.
-

-
## `Curl_str_until`
-

-
~~~c
-
int Curl_str_until(char **linep, struct Curl_str *out, const size_t max,
-
                   char delim);
-
~~~
-

-
Like `Curl_str_word` but instead of parsing to space, it parses to a given
-
custom delimiter non-zero byte `delim`.
-

-
`max` is the longest accepted word, or it returns error.
-

-
The parsed word must be at least one byte, otherwise it is considered an
-
error.
-

-
## `Curl_str_quotedword`
-

-
~~~c
-
int Curl_str_quotedword(char **linep, struct Curl_str *out, const size_t max);
-
~~~
-

-
Get a "quoted" word. This means everything that is provided within a leading
-
and an ending double character. No escaping possible.
-

-
`max` is the longest accepted word, or it returns error.
-

-
The parsed word must be at least one byte, otherwise it is considered an
-
error.
-

-
## `Curl_str_single`
-

-
~~~c
-
int Curl_str_single(char **linep, char byte);
-
~~~
-

-
Advance over a single character provided in `byte`. Return non-zero on error.
-

-
## `Curl_str_singlespace`
-

-
~~~c
-
int Curl_str_singlespace(char **linep);
-
~~~
-

-
Advance over a single ASCII space. Return non-zero on error.
-

-
## `Curl_str_number`
-

-
~~~c
-
int Curl_str_number(char **linep, size_t *nump, size_t max);
-
~~~
-

-
Get an unsigned decimal number. Leading zeroes are just swallowed. Return
-
non-zero on error.
-

-
## `Curl_str_newline`
-

-
~~~c
-
int Curl_str_newline(char **linep);
-
~~~
-

-
Check for a single CR or LF. Return non-zero on error */
deleted external/curl/docs/internals/TLS-SESSIONS.md
@@ -1,163 +0,0 @@
-
<!--
-
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-

-
SPDX-License-Identifier: curl
-
-->
-

-
# TLS Sessions and Tickets
-

-
The TLS protocol offers methods of "resuming" a previous "session". A
-
TLS "session" is a negotiated security context across a connection
-
(which may be via TCP or UDP or other transports.)
-

-
By "resuming", the TLS protocol means that the security context from
-
before can be fully or partially resurrected when the TLS client presents
-
the proper crypto stuff to the server. This saves on the amount of
-
TLS packets that need to be sent back and forth, reducing amount
-
of data and even latency. In the case of QUIC, resumption may send
-
application data without having seen any reply from the server, hence
-
this is named 0-RTT data.
-

-
The exact mechanism of session tickets in TLSv1.2 (and earlier) and
-
TLSv1.3 differs. TLSv1.2 tickets have several weaknesses (that can
-
be exploited by attackers) which TLSv1.3 then fixed. See
-
[Session Tickets in the real world](https://words.filippo.io/we-need-to-talk-about-session-tickets/)
-
for an insight into this topic.
-

-
These difference between TLS protocol versions are reflected in curl's
-
handling of session tickets. More below.
-

-
## curl's `ssl_peer_key`
-

-
In order to find a ticket from a previous TLS session, curl
-
needs a name for TLS sessions that uniquely identifies the peer
-
it talks to.
-

-
This name has to reflect also the various TLS parameters that can
-
be configured in curl for a connection. We do not want to use
-
a ticket from an different configuration. Example: when setting
-
the maximum TLS version to 1.2, we do not want to reuse a ticket
-
we got from a TLSv1.3 session, although we are talking to the
-
same host.
-

-
Internally, we call this name a `ssl_peer_key`. It is a printable
-
string that carries hostname and port and any non-default TLS
-
parameters involved in the connection.
-

-
Examples:
-
- `curl.se:443:CA-/etc/ssl/cert.pem:IMPL-GnuTLS/3.8.7` is a peer key for
-
   a connection to `curl.se:443` using `/etc/ssl/cert.pem` as CA
-
   trust anchors and GnuTLS/3.8.7 as TLS backend.
-
- `curl.se:443:TLSVER-6-6:CA-/etc/ssl/cert.pem:IMPL-GnuTLS/3.8.7` is the
-
   same as the previous, except it is configured to use TLSv1.2 as
-
   min and max versions.
-

-
Different configurations produce different keys which is just what
-
curl needs when handling SSL session tickets.
-

-
One important thing: peer keys do not contain confidential information. If you
-
configure a client certificate or SRP authentication with username/password,
-
these are not part of the peer key.
-

-
However, peer keys carry the hostnames you use curl for. They *do*
-
leak the privacy of your communication. We recommend to *not* persist
-
peer keys for this reason.
-

-
**Caveat**: The key may contain filenames or paths. It does not reflect the
-
*contents* in the filesystem. If you change `/etc/ssl/cert.pem` and reuse a
-
previous ticket, curl might trust a server which no longer has a root
-
certificate in the file.
-

-

-
## Session Cache Access
-

-
#### Lookups
-

-
When a new connection is being established, each SSL connection filter creates
-
its own peer_key and calls into the cache. The cache then looks for a ticket
-
with exactly this peer_key. Peer keys between proxy SSL filters and SSL
-
filters talking through a tunnel differ, as they talk to different peers.
-

-
If the connection filter wants to use a client certificate or SRP
-
authentication, the cache checks those as well. If the cache peer carries
-
client cert or SRP auth, the connection filter must have those with the same
-
values (and vice versa).
-

-
On a match, the connection filter gets the session ticket and feeds that to
-
the TLS implementation which, on accepting it, tries to resume it for a
-
shorter handshake. In addition, the filter gets the ALPN used before and the
-
amount of 0-RTT data that the server announced to be willing to accept. The
-
filter can then decide if it wants to attempt 0-RTT or not. (The ALPN is
-
needed to know if the server speaks the protocol you want to send in 0-RTT. It
-
makes no sense to send HTTP/2 requests to a server that only knows HTTP/1.1.)
-

-
#### Updates
-

-
When a new TLS session ticket is received by a filter, it adds it to the
-
cache using its peer_key and SSL configuration. The cache looks for
-
a matching entry and, should it find one, adds the ticket for this
-
peer.
-

-
### Put, Take and Return
-

-
when a filter accesses the session cache, it *takes*
-
a ticket from the cache, meaning a returned ticket is removed. The filter
-
then configures its TLS backend and *returns* the ticket to the cache.
-

-
The cache needs to treat tickets from TLSv1.2 and 1.3 differently. 1.2 tickets
-
should be reused, but 1.3 tickets SHOULD NOT (RFC 8446). The session cache
-
simply drops 1.3 tickets when they are returned after use, but keeps a 1.2
-
ticket.
-

-
When a ticket is *put* into the cache, there is also a difference. There
-
can be several 1.3 tickets at the same time, but only a single 1.2 ticket.
-
TLSv1.2 tickets replace any other. 1.3 tickets accumulate up to a max
-
amount.
-

-
By having a "put/take/return" we reflect the 1.3 use case nicely. Two
-
concurrent connections do not reuse the same ticket.
-

-
## Session Ticket Persistence
-

-
#### Privacy and Security
-

-
As mentioned above, ssl peer keys are not intended for storage in a file
-
system. They clearly show which hosts the user talked to. This maybe "just"
-
privacy relevant, but has security implications as an attacker might find
-
worthy targets among your peer keys.
-

-
Also, we do not recommend to persist TLSv1.2 tickets.
-

-
### Salted Hashes
-

-
The TLS session cache offers an alternative to storing peer keys:
-
it provides a salted SHA256 hash of the peer key for import and export.
-

-
#### Export
-

-
The salt is generated randomly for each peer key on export. The SHA256 makes
-
sure that the peer key cannot be reversed and that a slightly different key
-
still produces a different result.
-

-
This means an attacker cannot just "grep" a session file for a particular
-
entry, e.g. if they want to know if you accessed a specific host. They *can*
-
however compute the SHA256 hashes for all salts in the file and find a
-
specific entry. They *cannot* find a hostname they do not know. They would
-
have to brute force by guessing.
-

-
#### Import
-

-
When session tickets are imported from a file, curl only gets the salted
-
hashes. The imported tickets belong to an *unknown* peer key.
-

-
When a connection filter tries to *take* a session ticket, it passes its peer
-
key. This peer key initially does not match any tickets in the cache. The
-
cache then checks all entries with unknown peer keys if the passed key matches
-
their salted hash. If it does, the peer key is recovered and remembered at the
-
cache entry.
-

-
This is a performance penalty in the order of "unknown" peer keys which
-
diminishes over time when keys are rediscovered. Note that this also works for
-
putting a new ticket into the cache: when no present entry matches, a new one
-
with peer key is created. This peer key then no longer bears the cost of hash
-
computes.
modified external/curl/docs/internals/WEBSOCKET.md
@@ -99,6 +99,7 @@ Ideas:

- Verify the Sec-WebSocket-Accept response. It requires a sha-1 function.
- Verify Sec-WebSocket-Extensions and Sec-WebSocket-Protocol in the response
+
- Make WebSocket work with hyper
- Consider a `curl_ws_poll()`
- Make sure WebSocket code paths are fuzzed
- Add client-side PING interval
modified external/curl/docs/libcurl/CMakeLists.txt
@@ -22,10 +22,10 @@
#
###########################################################################
# Get 'man_MANS' variable
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

-
function(curl_add_manual_pages _listname)
+
function(add_manual_pages _listname)
  # Maximum number of files per command to stay within shell/OS limits
  if(CMAKE_HOST_UNIX)
    set(_files_per_batch 10000)
@@ -33,8 +33,8 @@ function(curl_add_manual_pages _listname)
    set(_files_per_batch 200)
  endif()
  set(_file_count 0)
-
  set(_rofffiles "")
-
  set(_mdfiles "")
+
  unset(_rofffiles)
+
  unset(_mdfiles)
  set(_eol "_EOL_")
  foreach(_file IN LISTS ${_listname} _eol)
    math(EXPR _file_count "${_file_count} + 1")
@@ -46,8 +46,8 @@ function(curl_add_manual_pages _listname)
        VERBATIM
      )
      set(_file_count 0)
-
      set(_rofffiles "")
-
      set(_mdfiles "")
+
      unset(_rofffiles)
+
      unset(_mdfiles)
    endif()

    list(APPEND _rofffiles "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
@@ -59,8 +59,6 @@ function(curl_add_manual_pages _listname)
    endif()
    list(APPEND _mdfiles "${_mdfile}")
  endforeach()
-
  unset(_rofffiles)
-
  unset(_mdfiles)
endfunction()

add_custom_command(OUTPUT "libcurl-symbols.md"
@@ -74,15 +72,14 @@ add_custom_command(OUTPUT "libcurl-symbols.md"
  VERBATIM
)

-
curl_add_manual_pages(man_MANS)
+
add_manual_pages(man_MANS)
add_custom_target(curl-man ALL DEPENDS ${man_MANS})
if(NOT CURL_DISABLE_INSTALL)
-
  set(_src "")
+
  unset(_src)
  foreach(_f IN LISTS man_MANS)
    list(APPEND _src "${CMAKE_CURRENT_BINARY_DIR}/${_f}")
  endforeach()
  install(FILES ${_src} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
-
  unset(_src)
endif()

add_subdirectory(opts)
modified external/curl/docs/libcurl/Makefile.in
@@ -290,6 +290,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -314,10 +315,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -336,14 +358,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -380,6 +410,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -387,10 +420,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -469,8 +538,6 @@ SUBDIRS = opts
@BUILD_DOCS_TRUE@ curl_easy_reset.3 \
@BUILD_DOCS_TRUE@ curl_easy_send.3 \
@BUILD_DOCS_TRUE@ curl_easy_setopt.3 \
-
@BUILD_DOCS_TRUE@ curl_easy_ssls_export.3 \
-
@BUILD_DOCS_TRUE@ curl_easy_ssls_import.3 \
@BUILD_DOCS_TRUE@ curl_easy_strerror.3 \
@BUILD_DOCS_TRUE@ curl_easy_unescape.3 \
@BUILD_DOCS_TRUE@ curl_easy_upkeep.3 \
@@ -484,8 +551,8 @@ SUBDIRS = opts
@BUILD_DOCS_TRUE@ curl_global_cleanup.3 \
@BUILD_DOCS_TRUE@ curl_global_init.3 \
@BUILD_DOCS_TRUE@ curl_global_init_mem.3 \
-
@BUILD_DOCS_TRUE@ curl_global_sslset.3 \
@BUILD_DOCS_TRUE@ curl_global_trace.3 \
+
@BUILD_DOCS_TRUE@ curl_global_sslset.3 \
@BUILD_DOCS_TRUE@ curl_mime_addpart.3 \
@BUILD_DOCS_TRUE@ curl_mime_data.3 \
@BUILD_DOCS_TRUE@ curl_mime_data_cb.3 \
@@ -515,11 +582,11 @@ SUBDIRS = opts
@BUILD_DOCS_TRUE@ curl_multi_socket_all.3 \
@BUILD_DOCS_TRUE@ curl_multi_strerror.3 \
@BUILD_DOCS_TRUE@ curl_multi_timeout.3 \
+
@BUILD_DOCS_TRUE@ curl_multi_wakeup.3 \
@BUILD_DOCS_TRUE@ curl_multi_wait.3 \
@BUILD_DOCS_TRUE@ curl_multi_waitfds.3 \
-
@BUILD_DOCS_TRUE@ curl_multi_wakeup.3 \
-
@BUILD_DOCS_TRUE@ curl_pushheader_byname.3 \
@BUILD_DOCS_TRUE@ curl_pushheader_bynum.3 \
+
@BUILD_DOCS_TRUE@ curl_pushheader_byname.3 \
@BUILD_DOCS_TRUE@ curl_share_cleanup.3 \
@BUILD_DOCS_TRUE@ curl_share_init.3 \
@BUILD_DOCS_TRUE@ curl_share_setopt.3 \
@@ -541,8 +608,8 @@ SUBDIRS = opts
@BUILD_DOCS_TRUE@ curl_ws_recv.3 \
@BUILD_DOCS_TRUE@ curl_ws_send.3 \
@BUILD_DOCS_TRUE@ libcurl-easy.3 \
-
@BUILD_DOCS_TRUE@ libcurl-env-dbg.3 \
@BUILD_DOCS_TRUE@ libcurl-env.3 \
+
@BUILD_DOCS_TRUE@ libcurl-env-dbg.3 \
@BUILD_DOCS_TRUE@ libcurl-errors.3 \
@BUILD_DOCS_TRUE@ libcurl-multi.3 \
@BUILD_DOCS_TRUE@ libcurl-security.3 \
modified external/curl/docs/libcurl/Makefile.inc
@@ -41,8 +41,6 @@ man_MANS = \
 curl_easy_reset.3 \
 curl_easy_send.3 \
 curl_easy_setopt.3 \
-
 curl_easy_ssls_export.3 \
-
 curl_easy_ssls_import.3 \
 curl_easy_strerror.3 \
 curl_easy_unescape.3 \
 curl_easy_upkeep.3 \
@@ -56,8 +54,8 @@ man_MANS = \
 curl_global_cleanup.3 \
 curl_global_init.3 \
 curl_global_init_mem.3 \
-
 curl_global_sslset.3 \
 curl_global_trace.3 \
+
 curl_global_sslset.3 \
 curl_mime_addpart.3 \
 curl_mime_data.3 \
 curl_mime_data_cb.3 \
@@ -87,11 +85,11 @@ man_MANS = \
 curl_multi_socket_all.3 \
 curl_multi_strerror.3 \
 curl_multi_timeout.3 \
+
 curl_multi_wakeup.3 \
 curl_multi_wait.3 \
 curl_multi_waitfds.3 \
-
 curl_multi_wakeup.3 \
-
 curl_pushheader_byname.3 \
 curl_pushheader_bynum.3 \
+
 curl_pushheader_byname.3 \
 curl_share_cleanup.3 \
 curl_share_init.3 \
 curl_share_setopt.3 \
@@ -113,8 +111,8 @@ man_MANS = \
 curl_ws_recv.3 \
 curl_ws_send.3 \
 libcurl-easy.3 \
-
 libcurl-env-dbg.3 \
 libcurl-env.3 \
+
 libcurl-env-dbg.3 \
 libcurl-errors.3 \
 libcurl-multi.3 \
 libcurl-security.3 \
modified external/curl/docs/libcurl/curl_easy_getinfo.md
@@ -146,10 +146,6 @@ Number of bytes of all headers received. See CURLINFO_HEADER_SIZE(3)

Available HTTP authentication methods. See CURLINFO_HTTPAUTH_AVAIL(3)

-
## CURLINFO_HTTPAUTH_USED
-

-
Used HTTP authentication method. See CURLINFO_HTTPAUTH_USED(3)
-

## CURLINFO_HTTP_CONNECTCODE

Last proxy CONNECT response code. See CURLINFO_HTTP_CONNECTCODE(3)
@@ -229,10 +225,6 @@ CURLINFO_PROTOCOL(3)

Available HTTP proxy authentication methods. See CURLINFO_PROXYAUTH_AVAIL(3)

-
## CURLINFO_PROXYAUTH_USED
-

-
Used HTTP proxy authentication methods. See CURLINFO_PROXYAUTH_USED(3)
-

## CURLINFO_PROXY_ERROR

Detailed proxy error. See CURLINFO_PROXY_ERROR(3)
@@ -437,9 +429,5 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
If the operation was successful, CURLE_OK is returned. Otherwise an
+
appropriate error code is returned.
modified external/curl/docs/libcurl/curl_easy_header.md
@@ -160,6 +160,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLHcode indicating success or error. CURLHE_OK (0)
-
means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
This function returns a CURLHcode indicating success or error.
modified external/curl/docs/libcurl/curl_easy_init.md
@@ -30,8 +30,8 @@ CURL *curl_easy_init();

# DESCRIPTION

-
This function allocates and returns an easy handle. Such a handle is used as
-
input to other functions in the easy interface. This call must have a
+
This function allocates and returns a CURL easy handle. Such a handle is used
+
as input to other functions in the easy interface. This call must have a
corresponding call to curl_easy_cleanup(3) when the operation is complete.

The easy handle is used to hold and control a single network transfer. It is
modified external/curl/docs/libcurl/curl_easy_pause.md
@@ -138,9 +138,6 @@ might end up having to cache 64 MB of data.

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK (zero) means that the option was set properly, and a non-zero return
+
code means something wrong occurred after the new state was set. See the
+
libcurl-errors(3) man page for the full list with descriptions.
modified external/curl/docs/libcurl/curl_easy_perform.md
@@ -80,9 +80,7 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK (0) means everything was OK, non-zero means an error occurred as
+
*\<curl/curl.h\>* defines - see libcurl-errors(3). If CURLOPT_ERRORBUFFER(3)
+
was set with curl_easy_setopt(3) there is an error message stored in the error
+
buffer when non-zero is returned.
modified external/curl/docs/libcurl/curl_easy_recv.md
@@ -102,5 +102,5 @@ system facilities to wait until data can be read, and retry.

Reading exactly 0 bytes indicates a closed connection.

-
If there is no socket available to use from the previous transfer, this
-
function returns **CURLE_UNSUPPORTED_PROTOCOL**.
+
If there is no socket available to use from the previous transfer, this function
+
returns **CURLE_UNSUPPORTED_PROTOCOL**.
modified external/curl/docs/libcurl/curl_easy_reset.md
@@ -28,7 +28,7 @@ void curl_easy_reset(CURL *handle);

# DESCRIPTION

-
Re-initializes all options previously set on a specified curl handle to the
+
Re-initializes all options previously set on a specified CURL handle to the
default values. This puts back the handle to the same state as it was in when
it was just created with curl_easy_init(3).

modified external/curl/docs/libcurl/curl_easy_send.md
@@ -94,5 +94,5 @@ On failure, returns the appropriate error code.
This function may return **CURLE_AGAIN**. In this case, use your operating
system facilities to wait until the socket is writable, and retry.

-
If there is no socket available to use from the previous transfer, this
-
function returns **CURLE_UNSUPPORTED_PROTOCOL**.
+
If there is no socket available to use from the previous transfer, this function
+
returns **CURLE_UNSUPPORTED_PROTOCOL**.
modified external/curl/docs/libcurl/curl_easy_setopt.md
@@ -1348,12 +1348,9 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
*CURLE_OK* (zero) means that the option was set properly, non-zero means an
+
error occurred as *\<curl/curl.h\>* defines. See the libcurl-errors(3) man
+
page for the full list with descriptions.

Strings passed on to libcurl must be shorter than 8000000 bytes, otherwise
curl_easy_setopt(3) returns **CURLE_BAD_FUNCTION_ARGUMENT** (added in 7.65.0).
deleted external/curl/docs/libcurl/curl_easy_ssls_export.md
@@ -1,172 +0,0 @@
-
---
-
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-
SPDX-License-Identifier: curl
-
Title: curl_easy_ssls_export
-
Section: 3
-
Source: libcurl
-
See-also:
-
  - CURLOPT_SHARE (3)
-
  - curl_share_setopt (3)
-
  - curl_easy_ssls_import (3)
-
Protocol:
-
  - TLS
-
TLS-backend:
-
  - GnuTLS
-
  - OpenSSL
-
  - BearSSL
-
  - wolfSSL
-
  - mbedTLS
-
Added-in: 8.12.0
-
---
-

-
# NAME
-

-
curl_easy_ssls_export - export SSL sessions
-

-
# SYNOPSIS
-

-
~~~c
-
#include <curl/curl.h>
-

-
typedef CURLcode curl_ssls_export_function(CURL *handle,
-
                                           void *userptr,
-
                                           const char *session_key,
-
                                           const unsigned char *shmac,
-
                                           size_t shmac_len,
-
                                           const unsigned char *sdata,
-
                                           size_t sdata_len,
-
                                           curl_off_t valid_until,
-
                                           int ietf_tls_id,
-
                                           const char *alpn,
-
                                           size_t earlydata_max);
-

-
CURLcode curl_easy_ssls_export(CURL *handle,
-
                               curl_ssls_export_function *export_fn,
-
                               void *userptr);
-
~~~
-

-
# DESCRIPTION
-

-
This function iterates over all SSL session tickets that belong to the
-
easy handle and invokes the **export_fn** callback on each of them, as
-
long as the callback returns **CURLE_OK**.
-

-
The callback may then store this information and use curl_easy_ssls_import(3)
-
in another libcurl instance to add SSL session tickets again. Reuse of
-
SSL session tickets may result in faster handshakes and some connections
-
might be able to send request data in the initial packets (0-RTT).
-

-
From all the parameters passed to the **export_fn** only two need to be
-
persisted: either **session_key** or **shamc** and always **sdata**. All
-
other parameters are informative, e.g. allow the callback to act only
-
on specific session tickets.
-

-
Note that SSL sessions that involve a client certificate or SRP
-
username/password are not exported.
-

-
# Export Function Parameter
-

-
## Session Key
-

-
This is a printable, 0-terminated string that starts with **hostname:port**
-
the session ticket is originating from and also contains all relevant
-
SSL parameters used in the connection. The key also carries the name
-
and version number of the TLS backend used.
-

-
It is recommended to only persist **session_key** when it can be protected
-
from outside access. Since the hostname appears in plain text, it would
-
allow any third party to see how curl has been used for.
-

-
## Salted Hash
-

-
A binary blob of **shmac_len** bytes that contains a random salt and
-
a cryptographic hash of the salt and **session_key**. The salt is generated
-
for every session individually. Storing **shmac** is recommended when
-
placing session tickets in a file, for example.
-

-
A third party may brute-force known hostnames, but cannot just "grep" for
-
them.
-

-
## Session Data
-

-
A binary blob of **sdata_len** bytes, **sdata** contains all relevant
-
SSL session ticket information for a later import - apart from **session_key**
-
and **shmac**.
-

-
## valid_until
-

-
Seconds since EPOCH (1970-01-01) until the session ticket is considered
-
valid.
-

-
## TLS Version
-

-
The IETF assigned number for the TLS version the session ticket originates
-
from. This is **0x0304** for TLSv1.3, **0x0303** for 1.2, etc. Session
-
tickets from version 1.3 have better security properties, so an export
-
might store only those.
-

-
## ALPN
-

-
The ALPN protocol that had been negotiated with the host. This may be
-
**NULL** if negotiation gave no result or had not been attempted.
-

-
## Early Data
-

-
The maximum amount of bytes the server supports to receive in early data
-
(0-RTT). This is 0 unless the server explicitly indicates support.
-

-
# %PROTOCOLS%
-

-
# EXAMPLE
-

-
~~~c
-
CURLcode my_export_cb(CURL *handle,
-
                      void *userptr,
-
                      const char *session_key,
-
                      const unsigned char *shmac,
-
                      size_t shmac_len,
-
                      const unsigned char *sdata,
-
                      size_t sdata_len,
-
                      curl_off_t valid_until,
-
                      int ietf_tls_id,
-
                      const char *alpn,
-
                      size_t earlydata_max)
-
{
-
  /* persist sdata */
-
  return CURLE_OK;
-
}
-

-
int main(void)
-
{
-
  CURLSHcode sh;
-
  CURLSH *share = curl_share_init();
-
  CURLcode rc;
-
  CURL *curl;
-

-
  sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION);
-
  if(sh)
-
    printf("Error: %s\n", curl_share_strerror(sh));
-

-
  curl = curl_easy_init();
-
  if(curl) {
-
    curl_easy_setopt(curl, CURLOPT_SHARE, share);
-

-
    rc = curl_easy_ssls_export(curl, my_export_cb, NULL);
-

-
    /* always cleanup */
-
    curl_easy_cleanup(curl);
-
  }
-
  curl_share_cleanup(share);
-
}
-
~~~
-

-
# %AVAILABILITY%
-

-
# RETURN VALUE
-

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
deleted external/curl/docs/libcurl/curl_easy_ssls_import.md
@@ -1,90 +0,0 @@
-
---
-
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-
SPDX-License-Identifier: curl
-
Title: curl_easy_ssls_import
-
Section: 3
-
Source: libcurl
-
See-also:
-
  - CURLOPT_SHARE (3)
-
  - curl_share_setopt (3)
-
  - curl_easy_ssls_export (3)
-
Protocol:
-
  - TLS
-
TLS-backend:
-
  - GnuTLS
-
  - OpenSSL
-
  - BearSSL
-
  - wolfSSL
-
  - mbedTLS
-
Added-in: 8.12.0
-
---
-

-
# NAME
-

-
curl_easy_ssls_export - export SSL sessions
-

-
# SYNOPSIS
-

-
~~~c
-
#include <curl/curl.h>
-

-
CURLcode curl_easy_ssls_import(CURL *handle,
-
                               const char *session_key,
-
                               const unsigned char *shmac, size_t shmac_len,
-
                               const unsigned char *sdata, size_t sdata_len);
-
~~~
-

-
# DESCRIPTION
-

-
This function imports a previously exported SSL session ticket. **sdata** and
-
**sdata_len** must always be provided. If **session_key** is **NULL**, then
-
**shmac** and **shmac_len** must be given as received during the export.
-
See curl_easy_ssls_export(3) for a description of those.
-

-
Import of session tickets from other curl versions may fail due to changes
-
in the handling of **shmac** or **sdata**. A session ticket which has
-
already expired is silently discarded.
-

-
# %PROTOCOLS%
-

-
# EXAMPLE
-

-
~~~c
-
int main(void)
-
{
-
  CURLSHcode sh;
-
  CURLSH *share = curl_share_init();
-
  CURLcode rc;
-
  CURL *curl;
-

-
  sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION);
-
  if(sh)
-
    printf("Error: %s\n", curl_share_strerror(sh));
-

-
  curl = curl_easy_init();
-
  if(curl) {
-
    unsigned char *shmac, *sdata;
-
    size_t hlen, slen;
-

-
    curl_easy_setopt(curl, CURLOPT_SHARE, share);
-

-
    /* read shmac and sdata from storage */
-
    rc = curl_easy_ssls_import(curl, NULL, shmac, hlen, sdata, slen);
-

-
    /* always cleanup */
-
    curl_easy_cleanup(curl);
-
  }
-
  curl_share_cleanup(share);
-
}
-
~~~
-

-
# %AVAILABILITY%
-

-
# RETURN VALUE
-

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
modified external/curl/docs/libcurl/curl_easy_upkeep.md
@@ -79,9 +79,6 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
+
On success, returns **CURLE_OK**.

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
On failure, returns the appropriate error code.
modified external/curl/docs/libcurl/curl_global_init_mem.md
@@ -94,9 +94,5 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK (0) means everything was OK, non-zero means an error occurred as
+
*\<curl/curl.h\>* defines - see libcurl-errors(3).
modified external/curl/docs/libcurl/curl_global_trace.md
@@ -105,10 +105,6 @@ Tracing of DNS-over-HTTP operations to resolve hostnames.

Traces reading of upload data from the application in order to send it to the server.

-
## `ssls`
-

-
Tracing of SSL Session handling, e.g. caching/import/export.
-

## `smtp`

Tracing of SMTP operations when this protocol is enabled in your build.
modified external/curl/docs/libcurl/curl_mime_data.md
@@ -78,9 +78,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK or a CURL error code upon failure.
modified external/curl/docs/libcurl/curl_mime_data_cb.md
@@ -170,9 +170,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK or a CURL error code upon failure.
modified external/curl/docs/libcurl/curl_mime_encoder.md
@@ -102,9 +102,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK or a CURL error code upon failure.
modified external/curl/docs/libcurl/curl_mime_filedata.md
@@ -87,13 +87,7 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
-

-
CURLE_READ_ERROR is only an indication that the file is not yet readable: it
-
can be safely ignored at this time, but the file must be made readable before
-
the pertaining easy handle is performed.
+
CURLE_OK or a CURL error code upon failure. CURLE_READ_ERROR is only an
+
indication that the file is not yet readable: it can be safely ignored at
+
this time, but the file must be made readable before the pertaining
+
easy handle is performed.
modified external/curl/docs/libcurl/curl_mime_filename.md
@@ -81,9 +81,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK or a CURL error code upon failure.
modified external/curl/docs/libcurl/curl_mime_headers.md
@@ -80,9 +80,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK or a CURL error code upon failure.
modified external/curl/docs/libcurl/curl_mime_name.md
@@ -69,9 +69,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK or a CURL error code upon failure.
modified external/curl/docs/libcurl/curl_mime_subparts.md
@@ -85,9 +85,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK or a CURL error code upon failure.
modified external/curl/docs/libcurl/curl_mime_type.md
@@ -88,9 +88,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
+
CURLE_OK or a CURL error code upon failure.
modified external/curl/docs/libcurl/curl_multi_add_handle.md
@@ -88,7 +88,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code.
modified external/curl/docs/libcurl/curl_multi_assign.md
@@ -81,7 +81,4 @@ do not have to find the struct associated with this socket by ourselves.

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
The standard CURLMcode for multi interface error codes.
modified external/curl/docs/libcurl/curl_multi_cleanup.md
@@ -70,7 +70,5 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code. On success,
+
CURLM_OK is returned.
modified external/curl/docs/libcurl/curl_multi_fdset.md
@@ -119,7 +119,5 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
**CURLMcode** type, general libcurl multi interface error code. See
+
libcurl-errors(3)
modified external/curl/docs/libcurl/curl_multi_info_read.md
@@ -100,6 +100,6 @@ int main(void)

# RETURN VALUE

-
A pointer to a filled-in struct, or NULL if it failed or ran out of structs.
-
It also writes the number of messages left in the queue (after this read) in
-
the integer the second argument points to.
+
A pointer to a filled-in struct, or NULL if it failed or ran out of
+
structs. It also writes the number of messages left in the queue (after this
+
read) in the integer the second argument points to.
modified external/curl/docs/libcurl/curl_multi_perform.md
@@ -95,15 +95,12 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code.

This function returns errors regarding the whole multi stack. Problems on
individual transfers may have occurred even when this function returns
-
*CURLM_OK*. Use curl_multi_info_read(3) to figure out how individual transfers
-
did.
+
*CURLM_OK*. Use curl_multi_info_read(3) to figure out how individual
+
transfers did.

# TYPICAL USAGE

modified external/curl/docs/libcurl/curl_multi_poll.md
@@ -141,7 +141,5 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code. See
+
libcurl-errors(3)
modified external/curl/docs/libcurl/curl_multi_remove_handle.md
@@ -73,7 +73,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code.
modified external/curl/docs/libcurl/curl_multi_setopt.md
@@ -124,10 +124,6 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
-

-
Note that it returns a CURLM_UNKNOWN_OPTION if you try setting an option that
-
this version of libcurl does not know of.
+
The standard CURLMcode for multi interface error codes. Note that it returns a
+
CURLM_UNKNOWN_OPTION if you try setting an option that this version of libcurl
+
does not know of.
modified external/curl/docs/libcurl/curl_multi_socket.md
@@ -79,10 +79,7 @@ curl_multi_socket(3) is deprecated, use curl_multi_socket_action(3) instead.

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code.

The return code is for the whole multi stack. Problems still might have
occurred on individual transfers even when one of these functions return OK.
modified external/curl/docs/libcurl/curl_multi_socket_action.md
@@ -119,7 +119,5 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code. See
+
libcurl-errors(3)
modified external/curl/docs/libcurl/curl_multi_socket_all.md
@@ -59,10 +59,7 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code.

The return code is for the whole multi stack. Problems still might have
occurred on individual transfers even when one of these functions return OK.
modified external/curl/docs/libcurl/curl_multi_timeout.md
@@ -89,7 +89,4 @@ loop - until all transfers are complete.

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
The standard CURLMcode for multi interface error codes.
modified external/curl/docs/libcurl/curl_multi_wait.md
@@ -120,7 +120,5 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code. See
+
libcurl-errors(3)
modified external/curl/docs/libcurl/curl_multi_waitfds.md
@@ -45,13 +45,12 @@ If a number of descriptors used by the multi_handle is greater than the
*size* parameter then libcurl returns CURLM_OUT_OF_MEMORY error.

If the *fd_count* argument is not a null pointer, it points to a variable
-
that on return specifies the number of descriptors used by the multi_handle to
+
that on returns specifies the number of descriptors used by the multi_handle to
be checked for being ready to read or write.

The client code can pass *size* equal to zero just to get the number of the
descriptors and allocate appropriate storage for them to be used in a
-
subsequent function call. In this case, *fd_count* receives a number greater
-
than or equal to the number of descriptors.
+
subsequent function call.

# %PROTOCOLS%

@@ -83,11 +82,14 @@ int main(void)
    if(!fd_count)
      continue; /* no descriptors yet */

-
    /* allocate storage for our descriptors */
-
    ufds = malloc(fd_count * sizeof(struct curl_waitfd));
+
    /* Allocate storage for our descriptors.
+
    * Note that a better approach can be used to minimize allocations and
+
    * deallocations, if needed, like pre-allocated or grow-only array.
+
    */
+
    ufds = (struct curl_waitfd*)malloc(fd_count * sizeof(struct curl_waitfd));

    /* get wait descriptors from the transfers and put them into array. */
-
    mc = curl_multi_waitfds(multi, ufds, fd_count, &fd_count);
+
    mc = curl_multi_waitfds(multi, ufds, fd_count, NULL);

    if(mc != CURLM_OK) {
      fprintf(stderr, "curl_multi_waitfds() failed, code %d.\n", mc);
@@ -106,7 +108,5 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
**CURLMcode** type, general libcurl multi interface error code. See
+
libcurl-errors(3)
modified external/curl/docs/libcurl/curl_multi_wakeup.md
@@ -91,7 +91,4 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
CURLMcode type, general libcurl multi interface error code.
modified external/curl/docs/libcurl/curl_url_dup.md
@@ -56,4 +56,4 @@ int main(void)

# RETURN VALUE

-
Returns a pointer to a new `CURLU` handle or NULL if out of memory.
+
Returns a new handle or NULL if out of memory.
modified external/curl/docs/libcurl/curl_url_get.md
@@ -243,6 +243,7 @@ int main(void)
# RETURN VALUE

Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
-
fine. See the libcurl-errors(3) man page for the full list with descriptions.
+
fine. See the libcurl-errors(3) man page for the full list with
+
descriptions.

If this function returns an error, no URL part is returned.
modified external/curl/docs/libcurl/curl_url_set.md
@@ -13,7 +13,7 @@ See-also:
  - curl_url_strerror (3)
Protocol:
  - All
-
Added-in: 7.62.0
+
Added-in: 7.78.0
---

# NAME
modified external/curl/docs/libcurl/curl_version_info.md
@@ -151,13 +151,13 @@ entry.

# FEATURES

-
## `alt-svc`
+
## alt-svc

*features* mask bit: CURL_VERSION_ALTSVC

HTTP Alt-Svc parsing and the associated options (Added in 7.64.1)

-
## `AsynchDNS`
+
## AsynchDNS

*features* mask bit: CURL_VERSION_ASYNCHDNS

@@ -165,40 +165,32 @@ libcurl was built with support for asynchronous name lookups, which allows
more exact timeouts (even on Windows) and less blocking when using the multi
interface. (added in 7.10.7)

-
## `brotli`
+
## brotli

*features* mask bit: CURL_VERSION_BROTLI

supports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0)

-
## `asyn-rr`
-

-
*features* mask bit: non-existent
-

-
libcurl was built to use c-ares for EXPERIMENTAL HTTPS resource record
-
resolves, but uses the threaded resolver for "normal" resolves (Added in
-
8.12.0)
-

-
## `Debug`
+
## Debug

*features* mask bit: CURL_VERSION_DEBUG

libcurl was built with debug capabilities (added in 7.10.6)

-
## `ECH`
+
## ECH

*features* mask bit: non-existent

libcurl was built with ECH support (experimental, added in 8.8.0)

-
## `gsasl`
+
## gsasl

*features* mask bit: CURL_VERSION_GSASL

libcurl was built with libgsasl and thus with some extra SCRAM-SHA
authentication methods. (added in 7.76.0)

-
## `GSS-API`
+
## GSS-API

*features* mask bit: CURL_VERSION_GSSAPI

@@ -207,73 +199,66 @@ functions for Kerberos and SPNEGO authentication. It also allows libcurl
to use the current user credentials without the app having to pass them on.
(Added in 7.38.0)

-
## `HSTS`
+
## HSTS

*features* mask bit: CURL_VERSION_HSTS

libcurl was built with support for HSTS (HTTP Strict Transport Security)
(Added in 7.74.0)

-
## `HTTP2`
+
## HTTP2

*features* mask bit: CURL_VERSION_HTTP2

libcurl was built with support for HTTP2.
(Added in 7.33.0)

-
## `HTTP3`
+
## HTTP3

*features* mask bit: CURL_VERSION_HTTP3

HTTP/3 and QUIC support are built-in (Added in 7.66.0)

-
## `HTTPS-proxy`
+
## HTTPS-proxy

*features* mask bit: CURL_VERSION_HTTPS_PROXY

libcurl was built with support for HTTPS-proxy.
(Added in 7.52.0)

-
## `HTTPSRR`
-

-
*features* mask bit: non-existent
-

-
libcurl was built with EXPERIMENTAL support for HTTPS resource records (Added
-
in 8.12.0)
-

-
## `IDN`
+
## IDN

*features* mask bit: CURL_VERSION_IDN

libcurl was built with support for IDNA, domain names with international
letters. (Added in 7.12.0)

-
## `IPv6`
+
## IPv6

*features* mask bit: CURL_VERSION_IPV6

supports IPv6

-
## `Kerberos`
+
## Kerberos

*features* mask bit: CURL_VERSION_KERBEROS5

supports Kerberos V5 authentication for FTP, IMAP, LDAP, POP3, SMTP and
SOCKSv5 proxy. (Added in 7.40.0)

-
## `Largefile`
+
## Largefile

*features* mask bit: CURL_VERSION_LARGEFILE

libcurl was built with support for large files. (Added in 7.11.1)

-
## `libz`
+
## libz

*features* mask bit: CURL_VERSION_LIBZ

supports HTTP deflate using libz (Added in 7.10)

-
## `MultiSSL`
+
## MultiSSL

*features* mask bit: CURL_VERSION_MULTI_SSL

@@ -281,20 +266,20 @@ libcurl was built with multiple SSL backends. For details, see
curl_global_sslset(3).
(Added in 7.56.0)

-
## `NTLM`
+
## NTLM

*features* mask bit: CURL_VERSION_NTLM

supports HTTP NTLM (added in 7.10.6)

-
## `NTLM_WB`
+
## NTLM_WB

*features* mask bit: CURL_VERSION_NTLM_WB

libcurl was built with support for NTLM delegation to a winbind helper.
(Added in 7.22.0) This feature was removed from curl in 8.8.0.

-
## `PSL`
+
## PSL

*features* mask bit: CURL_VERSION_PSL

@@ -302,27 +287,20 @@ libcurl was built with support for Mozilla's Public Suffix List. This makes
libcurl ignore cookies with a domain that is on the list.
(Added in 7.47.0)

-
## `SPNEGO`
+
## SPNEGO

*features* mask bit: CURL_VERSION_SPNEGO

libcurl was built with support for SPNEGO authentication (Simple and Protected
GSS-API Negotiation Mechanism, defined in RFC 2478.) (added in 7.10.8)

-
## `SSL`
+
## SSL

*features* mask bit: CURL_VERSION_SSL

supports SSL (HTTPS/FTPS) (Added in 7.10)

-
## `SSLS-EXPORT`
-

-
*features* mask bit: non-existent
-

-
libcurl was built with SSL session import/export support
-
(experimental, added in 8.12.0)
-

-
## `SSPI`
+
## SSPI

*features* mask bit: CURL_VERSION_SSPI

@@ -331,42 +309,42 @@ makes libcurl use Windows-provided functions for Kerberos, NTLM, SPNEGO and
Digest authentication. It also allows libcurl to use the current user
credentials without the app having to pass them on. (Added in 7.13.2)

-
## `threadsafe`
+
## threadsafe

*features* mask bit: CURL_VERSION_THREADSAFE

libcurl was built with thread-safety support (Atomic or SRWLOCK) to protect
curl initialization. (Added in 7.84.0) See libcurl-thread(3)

-
## `TLS-SRP`
+
## TLS-SRP

*features* mask bit: CURL_VERSION_TLSAUTH_SRP

libcurl was built with support for TLS-SRP (in one or more of the built-in TLS
backends). (Added in 7.21.4)

-
## `TrackMemory`
+
## TrackMemory

*features* mask bit: CURL_VERSION_CURLDEBUG

libcurl was built with memory tracking debug capabilities. This is mainly of
interest for libcurl hackers. (added in 7.19.6)

-
## `Unicode`
+
## Unicode

*features* mask bit: CURL_VERSION_UNICODE

libcurl was built with Unicode support on Windows. This makes non-ASCII
characters work in filenames and options passed to libcurl. (Added in 7.72.0)

-
## `UnixSockets`
+
## UnixSockets

*features* mask bit: CURL_VERSION_UNIX_SOCKETS

libcurl was built with support for Unix domain sockets.
(Added in 7.40.0)

-
## `zstd`
+
## zstd

*features* mask bit: CURL_VERSION_ZSTD

modified external/curl/docs/libcurl/curl_ws_meta.md
@@ -29,6 +29,8 @@ const struct curl_ws_frame *curl_ws_meta(CURL *curl);

# DESCRIPTION

+
This function call is EXPERIMENTAL.
+

When the write callback (CURLOPT_WRITEFUNCTION(3)) is invoked on
received WebSocket traffic, curl_ws_meta(3) can be called from within
the callback to provide additional information about the current frame.
@@ -49,7 +51,6 @@ struct curl_ws_frame {
  int flags;
  curl_off_t offset;
  curl_off_t bytesleft;
-
  size_t len;
};
~~~

@@ -64,65 +65,38 @@ See the list below.

## `offset`

-
When this chunk is a continuation of frame data already delivered, this is
-
the offset into the final frame data where this piece belongs to.
+
When this frame is a continuation of fragment data already delivered, this is
+
the offset into the final fragment where this piece belongs.

## `bytesleft`

If this is not a complete fragment, the *bytesleft* field informs about how
many additional bytes are expected to arrive before this fragment is complete.

-
## `len`
-

-
The length of the current data chunk.
-

# FLAGS

-
The *message type* flags (CURLWS_TEXT/BINARY/CLOSE/PING/PONG) are mutually
-
exclusive.
-

## CURLWS_TEXT

-
This is a message with text data. Note that this makes a difference to WebSocket
+
The buffer contains text data. Note that this makes a difference to WebSocket
but libcurl itself does not make any verification of the content or
precautions that you actually receive valid UTF-8 content.

## CURLWS_BINARY

-
This is a message with binary data.
-

-
## CURLWS_CLOSE
-

-
This is a close message. No more data follows.
-

-
It may contain a 2-byte unsigned integer in network byte order that indicates
-
the close reason and may additionally contain up to 123 bytes of further
-
textual payload for a total of at most 125 bytes. libcurl does not verify that
-
the textual description is valid UTF-8.
-

-
## CURLWS_PING
-

-
This is a ping message. It may contain up to 125 bytes of payload text.
-
libcurl does not verify that the payload is valid UTF-8.
-

-
Upon receiving a ping message, libcurl automatically responds with a pong
-
message unless the **CURLWS_RAW_MODE** bit of CURLOPT_WS_OPTIONS(3) is set.
+
This is binary data.

-
## CURLWS_PONG
+
## CURLWS_CONT

-
This is a pong message. It may contain up to 125 bytes of payload text.
-
libcurl does not verify that the payload is valid UTF-8.
+
This is not the final fragment of the message, it implies that there is
+
another fragment coming as part of the same message.

-
## CURLWS_CONT
+
## CURLWS_CLOSE

-
Can only occur in conjunction with CURLWS_TEXT or CURLWS_BINARY.
+
This transfer is now closed.

-
This is not the final fragment of the message, it implies that there is
-
another fragment coming as part of the same message. The application must
-
reassemble the fragments to receive the complete message.
+
## CURLWS_PING

-
Only a single fragmented message can be transmitted at a time, but it may
-
be interrupted by CURLWS_CLOSE, CURLWS_PING or CURLWS_PONG frames.
+
This as an incoming ping message, that expects a pong response.

# %PROTOCOLS%

modified external/curl/docs/libcurl/curl_ws_recv.md
@@ -30,31 +30,21 @@ CURLcode curl_ws_recv(CURL *curl, void *buffer, size_t buflen,

# DESCRIPTION

-
Retrieves as much as possible of a received WebSocket frame into the
-
*buffer*, but not more than *buflen* bytes. *recv* is set to the
+
This function call is EXPERIMENTAL.
+

+
Retrieves as much as possible of a received WebSocket data fragment into the
+
**buffer**, but not more than **buflen** bytes. *recv* is set to the
number of bytes actually stored.

+
If there is more fragment data to deliver than what fits in the provided
+
*buffer*, libcurl returns a full buffer and the application needs to call this
+
function again to continue draining the buffer.
+

If the function call is successful, the *meta* pointer gets set to point to a
*const struct curl_ws_frame* that contains information about the received
data. That struct must not be freed and its contents must not be relied upon
-
anymore once another WebSocket function is called. See curl_ws_meta(3) for more
-
details on that struct.
-

-
The application must check `meta->bytesleft` to determine whether the complete
-
frame has been received. If more payload is pending, the application must call
-
this function again with an updated *buffer* and *buflen* to resume receiving.
-
This may for example happen when the data does not fit into the provided buffer
-
or when not all frame data has been delivered over the network yet.
-

-
If the application wants to read the metadata without consuming any payload,
-
it may call this function with a *buflen* of zero. Setting *buffer* to a NULL
-
pointer is permitted in this case. Note that frames without payload are consumed
-
by this action.
-

-
If the received message consists of multiple fragments, the *CURLWS_CONT* bit
-
is set in all frames except the final one. The application is responsible for
-
reassembling fragmented messages. See curl_ws_meta(3) for more details on
-
*CURLWS_CONT*.
+
anymore once another WebSocket function is called. See the curl_ws_meta(3) for
+
details on that struct.a

# %PROTOCOLS%

@@ -63,40 +53,15 @@ reassembling fragmented messages. See curl_ws_meta(3) for more details on
~~~c
int main(void)
{
+
  size_t rlen;
+
  const struct curl_ws_frame *meta;
  char buffer[256];
-
  size_t offset = 0;
-
  CURLcode res = CURLE_OK;
  CURL *curl = curl_easy_init();
-

-
  curl_easy_setopt(curl, CURLOPT_URL, "wss://example.com/");
-
  curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 2L);
-
  /* start HTTPS connection and upgrade to WSS, then return control */
-
  curl_easy_perform(curl);
-

-
  /* Note: This example neglects fragmented messages. (CURLWS_CONT bit)
-
           A real application must handle them appropriately. */
-

-
  while(!res) {
-
    size_t recv;
-
    const struct curl_ws_frame *meta;
-
    res = curl_ws_recv(curl, buffer + offset, sizeof(buffer) - offset, &recv,
-
                       &meta);
-
    offset += recv;
-

-
    if(res == CURLE_OK) {
-
      if(meta->bytesleft == 0)
-
        break; /* finished receiving */
-
      if(meta->bytesleft > sizeof(buffer) - offset)
-
        res = CURLE_TOO_LARGE;
-
    }
-

-
    if(res == CURLE_AGAIN)
-
      /* in real application: wait for socket here, e.g. using select() */
-
      res = CURLE_OK;
+
  if(curl) {
+
    CURLcode res = curl_ws_recv(curl, buffer, sizeof(buffer), &rlen, &meta);
+
    if(res)
+
      printf("error: %s\n", curl_easy_strerror(res));
  }
-

-
  curl_easy_cleanup(curl);
-
  return (int)res;
}
~~~

@@ -104,20 +69,10 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
-

-
Returns **CURLE_GOT_NOTHING** if the associated connection is closed.
+
Returns **CURLE_OK** if everything is okay, and a non-zero number for
+
errors. Returns **CURLE_GOT_NOTHING** if the associated connection is
+
closed.

Instead of blocking, the function returns **CURLE_AGAIN**. The correct
behavior is then to wait for the socket to signal readability before calling
this function again.
-

-
Any other non-zero return value indicates an error. See the libcurl-errors(3)
-
man page for the full list with descriptions.
-

-
Returns **CURLE_GOT_NOTHING** if the associated connection is closed.
modified external/curl/docs/libcurl/curl_ws_send.md
@@ -31,30 +31,27 @@ CURLcode curl_ws_send(CURL *curl, const void *buffer, size_t buflen,

# DESCRIPTION

-
Send the specific message chunk over an established WebSocket
-
connection. *buffer* must point to a valid memory location containing
-
(at least) *buflen* bytes of payload memory.
+
This function call is EXPERIMENTAL.

-
*sent* is set to the number of payload bytes actually sent. If the return value
-
is **CURLE_OK** but *sent* is less than the given *buflen*, libcurl was unable
-
to consume the complete payload in a single call. In this case the application
-
must call this function again until all payload is processed. *buffer* and
-
*buflen* must be updated on every following invocation to only point to the
-
remaining piece of the payload.
+
Send the specific message fragment over an established WebSocket
+
connection. The *buffer* holds the data to send and it is *buflen*
+
number of payload bytes in that memory area.

-
*fragsize* should always be set to zero unless a (huge) frame shall be sent
-
using multiple calls with partial content per call explicitly. In that
-
case you must set the *CURLWS_OFFSET* bit and set the *fragsize* as documented
-
in the section on *CURLWS_OFFSET* below.
+
*sent* is returned as the number of payload bytes actually sent.

-
*flags* must contain at least one flag indicating the type of the message.
-
To send a fragmented message consisting of multiple frames, additionally set
-
the *CURLWS_CONT* bit in all frames except the final one.
+
To send a (huge) fragment using multiple calls with partial content per
+
invoke, set the *CURLWS_OFFSET* bit and the *fragsize* argument as the
+
total expected size for the first part, then set the *CURLWS_OFFSET* with
+
a zero *fragsize* for the following parts.

-
For more details on the supported flags see below and in curl_ws_meta(3).
+
If not sending a partial fragment or if this is raw mode, *fragsize*
+
should be set to zero.

-
If *CURLWS_RAW_MODE* is enabled in CURLOPT_WS_OPTIONS(3), the
-
*flags* argument should be set to 0.
+
If **CURLWS_RAW_MODE** is enabled in CURLOPT_WS_OPTIONS(3), the
+
**flags** argument should be set to 0.
+

+
To send a message consisting of multiple frames, set the *CURLWS_CONT* bit
+
in all frames except the final one.

Warning: while it is possible to invoke this function from a callback,
such a call is blocking in this situation, e.g. only returns after all data
@@ -62,15 +59,39 @@ has been sent or an error is encountered.

# FLAGS

-
Supports all flags documented in curl_ws_meta(3) and additionally the following
-
flags.
+
## CURLWS_TEXT
+

+
The buffer contains text data. Note that this makes a difference to WebSocket
+
but libcurl itself does not make any verification of the content or
+
precautions that you actually send valid UTF-8 content.
+

+
## CURLWS_BINARY
+

+
This is binary data.
+

+
## CURLWS_CONT
+

+
This is not the final fragment of the message, which implies that there is
+
another fragment coming as part of the same message where this bit is not set.
+

+
## CURLWS_CLOSE
+

+
Close this transfer.
+

+
## CURLWS_PING
+

+
This is a ping.
+

+
## CURLWS_PONG
+

+
This is a pong.

## CURLWS_OFFSET

-
The provided data is only a partial frame and there is more coming in a
+
The provided data is only a partial fragment and there is more coming in a
following call to *curl_ws_send()*. When sending only a piece of the
-
frame like this, the *fragsize* must be provided with the total
-
expected frame size in the first call and must be zero in all subsequent
+
fragment like this, the *fragsize* must be provided with the total
+
expected fragment size in the first call and it needs to be zero in subsequent
calls.

# %PROTOCOLS%
@@ -80,34 +101,18 @@ calls.
~~~c
#include <string.h> /* for strlen */

+
const char *send_payload = "magic";
+

int main(void)
{
-
  const char *buffer = "PAYLOAD";
-
  size_t offset = 0;
-
  CURLcode res = CURLE_OK;
+
  size_t sent;
+
  CURLcode res;
  CURL *curl = curl_easy_init();
-

  curl_easy_setopt(curl, CURLOPT_URL, "wss://example.com/");
  curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 2L);
-
  /* start HTTPS connection and upgrade to WSS, then return control */
  curl_easy_perform(curl);
-

-
  while(!res) {
-
    size_t sent;
-
    res = curl_ws_send(curl, buffer + offset, strlen(buffer) - offset, &sent,
-
                       0, CURLWS_TEXT);
-
    offset += sent;
-

-
    if(res == CURLE_OK) {
-
      if(offset == strlen(buffer))
-
        break; /* finished sending */
-
    }
-

-
    if(res == CURLE_AGAIN)
-
      /* in real application: wait for socket here, e.g. using select() */
-
      res = CURLE_OK;
-
  }
-

+
  res = curl_ws_send(curl, send_payload, strlen(send_payload), &sent, 0,
+
                     CURLWS_PING);
  curl_easy_cleanup(curl);
  return (int)res;
}
@@ -117,16 +122,6 @@ int main(void)

# RETURN VALUE

-
This function returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with curl_easy_setopt(3)
-
there can be an error message stored in the error buffer when non-zero is
-
returned.
-

-
Instead of blocking, the function returns **CURLE_AGAIN**. The correct
-
behavior is then to wait for the socket to signal readability before calling
-
this function again.
-

-
Any other non-zero return value indicates an error. See the libcurl-errors(3)
-
man page for the full list with descriptions.
+
*CURLE_OK* (zero) means that the data was sent properly, non-zero means an
+
error occurred as *\<curl/curl.h\>* defines. See the libcurl-errors(3) man
+
page for the full list with descriptions.
modified external/curl/docs/libcurl/libcurl-env-dbg.md
@@ -130,11 +130,6 @@ greater. There is a number of debug levels, refer to *openldap.c* comments.
Used to influence the buffer chunk size used for WebSocket encoding and
decoding.

-
## CURL_WS_CHUNK_EAGAIN
-

-
Used to simulate blocking sends after this chunk size for WebSocket
-
connections.
-

## CURL_FORBID_REUSE

Used to set the CURLOPT_FORBID_REUSE flag on each transfer initiated
modified external/curl/docs/libcurl/libcurl-symbols.md
@@ -1340,9 +1340,6 @@ Introduced in 7.50.0.
## CURLINFO_HTTPAUTH_AVAIL
Introduced in 7.10.8.

-
## CURLINFO_HTTPAUTH_USED
-
Introduced in 8.12.0.
-

## CURLINFO_LASTONE
Introduced in 7.4.1.

@@ -1409,9 +1406,6 @@ Introduced in 7.52.0.
## CURLINFO_PROXYAUTH_AVAIL
Introduced in 7.10.8.

-
## CURLINFO_PROXYAUTH_USED
-
Introduced in 8.12.0.
-

## CURLINFO_PTR
Introduced in 7.54.1.

modified external/curl/docs/libcurl/libcurl-ws.md
@@ -47,48 +47,44 @@ WebSocket" request header field. When the upgrade is accepted by the server,
it responds with a 101 Switching and then the client can speak WebSocket with
the server. The communication can happen in both directions at the same time.

-
# EXTENSIONS
-

-
The WebSocket protocol allows the client to request and negotiate *extensions*
-
can add additional features and restrictions to the protocol.
-

-
libcurl does not support the use of extensions and always sets up a connection
-
without them.
-

# MESSAGES

WebSocket communication is message based. That means that both ends send and
receive entire messages, not streams like TCP. A WebSocket message is sent
-
over the wire in one or more frames. A message which is split into several
-
frames is referred to as a *fragmented* message and the individual frames are
-
called *fragments*. Each frame (or fragment) in a message can have a size of
-
up to 2^63 bytes and declares the frame size in the header. The total size of
-
a message that is fragmented into multiple frames is not limited by the
-
protocol and the number of fragments is not known until the final fragment is
-
received.
-

-
Transmission of a frame must not be interrupted by any other data transfers and
-
transmission of the different fragments of a message must not be interrupted by
-
other user data frames. Control frames - PING, PONG and CLOSE - may be
-
transmitted in between any other two frames, even in between two fragments of
-
the same user data message. The control frames themselves on the other hand
-
must never be fragmented and are limited to a size of 125 bytes.
-

-
libcurl delivers WebSocket data as chunks of frames. It might deliver a whole
-
frame as a single chunk, but it might also deliver it in several pieces
-
depending on size and network patterns. See the individual API documentations
-
for further information.
+
over the wire in one or more frames. Each frame in a message can have a size
+
up to 2^63 bytes.
+

+
libcurl delivers WebSocket data as frame fragments. It might send a whole
+
frame, but it might also deliver them in pieces depending on size and network
+
patterns. It makes sure to provide the API user about the exact specifics
+
about the fragment: type, offset, size and how much data there is pending to
+
arrive for the same frame.
+

+
A message has an unknown size until the last frame header for the message has
+
been received since only frames have set sizes.
+

+
# Raw mode
+

+
libcurl can be told to speak WebSocket in "raw mode" by setting the
+
**CURLWS_RAW_MODE** bit to the CURLOPT_WS_OPTIONS(3) option.
+

+
Raw WebSocket means that libcurl passes on the data from the network without
+
parsing it leaving that entirely to the application. This mode assumes that
+
the user of this knows WebSocket and can parse and figure out the data all by
+
itself.
+

+
This mode is intended for applications that already have a WebSocket
+
parser/engine that want to switch over to use libcurl for enabling WebSocket,
+
and keep parts of the existing software architecture.

# PING

WebSocket is designed to allow long-lived sessions and in order to keep the
connections alive, both ends can send PING messages for the other end to
-
respond with a PONG. Both ends may also send unsolicited PONG messages as
-
unidirectional heartbeat.
+
respond with a PONG.

-
libcurl automatically responds to server PING messages with a PONG that echoes
-
the payload of the PING message. libcurl does neither send any PING messages
-
nor any unsolicited PONG messages automatically.
+
libcurl automatically responds to server PING messages with a PONG. It does
+
not send any PING messages automatically.

# MODELS

@@ -96,40 +92,35 @@ Because of the many different ways WebSocket can be used, which is much more
flexible than limited to plain downloads or uploads, libcurl offers two
different API models to use it:

-
1. CURLOPT_WRITEFUNCTION model:
-
Using a write callback with CURLOPT_WRITEFUNCTION(3) much like other
+
1. Using a write callback with CURLOPT_WRITEFUNCTION(3) much like other
downloads for when the traffic is download oriented.

-
2. CURLOPT_CONNECT_ONLY model:
-
Using curl_ws_recv(3) and curl_ws_send(3) functions.
+
2. Using CURLOPT_CONNECT_ONLY(3) and use the WebSocket recv/send
+
functions.

-
## CURLOPT_WRITEFUNCTION MODEL
+
# Callback model

-
CURLOPT_CONNECT_ONLY(3) must be unset or **0L** for this model to take effect.
+
When a write callback is set and a WebSocket transfer is performed, the
+
callback is called to deliver all WebSocket data that arrives.

-
curl_easy_perform(3) establishes and sets up the WebSocket communication and
-
then blocks for the whole duration of the connection. libcurl calls the
-
callback configured in CURLOPT_WRITEFUNCTION(3), whenever an incoming chunk
-
of WebSocket data is received. The callback is handed a pointer to the payload
-
data as an argument and can call curl_ws_meta(3) to get relevant metadata.
+
The callback can then call curl_ws_meta(3) to learn about the details of
+
the incoming data fragment.

-
## CURLOPT_CONNECT_ONLY MODEL
+
# CONNECT_ONLY model

-
CURLOPT_CONNECT_ONLY(3) must be **2L** for this model to take effect.
+
By setting CURLOPT_CONNECT_ONLY(3) to **2L**, the transfer only
+
establishes and setups the WebSocket communication and then returns control
+
back to the application.

-
curl_easy_perform(3) only establishes and sets up the WebSocket communication
-
and then returns control back to the application. The application can then use
-
curl_ws_recv(3) and curl_ws_send(3) to exchange WebSocket messages with the
-
server.
+
Once such a setup has been successfully performed, the application can proceed
+
and use curl_ws_recv(3) and curl_ws_send(3) freely to exchange
+
WebSocket messages with the server.

-
# RAW MODE
+
# EXPERIMENTAL

-
libcurl can be told to speak WebSocket in "raw mode" by setting the
-
**CURLWS_RAW_MODE** bit of the CURLOPT_WS_OPTIONS(3) option.
+
The WebSocket API was introduced as experimental in 7.86.0 and is still
+
experimental today.

-
Raw WebSocket means that libcurl passes on the data from the network without
-
parsing it, leaving that entirely to the application.
-

-
This mode is intended for applications that already have a WebSocket
-
parser/engine and want to switch over to use libcurl for enabling WebSocket,
-
and keep parts of the existing software architecture.
+
It is only built-in if explicitly opted in at build time. We discourage use of
+
the WebSocket API in production because of its experimental state. We might
+
change API, ABI and behavior before this "goes live".
modified external/curl/docs/libcurl/opts/CMakeLists.txt
@@ -22,14 +22,14 @@
#
###########################################################################
# Get 'man_MANS' variable
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

-
curl_add_manual_pages(man_MANS)
+
add_manual_pages(man_MANS)
add_custom_target(curl-opts-man DEPENDS ${man_MANS})
add_dependencies(curl-man curl-opts-man)
if(NOT CURL_DISABLE_INSTALL)
-
  set(_src "")
+
  unset(_src)
  foreach(_f IN LISTS man_MANS)
    list(APPEND _src "${CMAKE_CURRENT_BINARY_DIR}/${_f}")
  endforeach()
modified external/curl/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.md
@@ -78,7 +78,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CAINFO.md
@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CAPATH.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CERTINFO.md
@@ -103,7 +103,4 @@ Transport support added in 7.79.0. mbedTLS support added in 8.9.0.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.md
@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONNECT_TIME.md
@@ -63,7 +63,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONN_ID.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.md
@@ -70,7 +70,4 @@ Deprecated since 7.55.0.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.md
@@ -63,7 +63,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.md
@@ -69,7 +69,4 @@ Deprecated since 7.55.0.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.md
@@ -62,7 +62,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.md
@@ -35,7 +35,7 @@ protocol used does not support this.

The **ct** pointer is set to NULL or pointing to private memory. You MUST
NOT free it - it gets freed when you call curl_easy_cleanup(3) on the
-
corresponding curl handle.
+
corresponding CURL handle.

The modern way to get this header from a response is to instead use the
curl_easy_header(3) function.
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_COOKIELIST.md
@@ -78,7 +78,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_EARLYDATA_SENT_T.md
@@ -72,7 +72,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_EFFECTIVE_METHOD.md
@@ -37,7 +37,7 @@ the same method the first request would use.

The **methodp** pointer is NULL or points to private memory. You MUST NOT
free - it gets freed when you call curl_easy_cleanup(3) on the
-
corresponding curl handle.
+
corresponding CURL handle.

# %PROTOCOLS%

@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.md
@@ -33,8 +33,8 @@ In cases when you have asked libcurl to follow redirects, it may not be the same
value you set with CURLOPT_URL(3).

The **urlp** pointer is NULL or points to private memory. You MUST NOT free
-
- it gets freed when you call curl_easy_cleanup(3) on the corresponding curl
-
handle.
+
- it gets freed when you call curl_easy_cleanup(3) on the corresponding
+
CURL handle.

# %PROTOCOLS%

@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_FILETIME.md
@@ -73,7 +73,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_FILETIME_T.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.md
@@ -32,8 +32,8 @@ logging on to the remote FTP server. This stores a NULL as pointer if
something is wrong.

The **path** pointer is NULL or points to private memory. You MUST NOT free
-
- it gets freed when you call curl_easy_cleanup(3) on the corresponding curl
-
handle.
+
- it gets freed when you call curl_easy_cleanup(3) on the corresponding
+
CURL handle.

# %PROTOCOLS%

@@ -70,7 +70,4 @@ Works for SFTP since 7.21.4

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_HEADER_SIZE.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
deleted external/curl/docs/libcurl/opts/CURLINFO_HTTPAUTH_USED.md
@@ -1,79 +0,0 @@
-
---
-
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-
SPDX-License-Identifier: curl
-
Title: CURLINFO_HTTPAUTH_USED
-
Section: 3
-
Source: libcurl
-
See-also:
-
  - CURLINFO_PROXYAUTH_USED (3)
-
  - CURLINFO_HTTPAUTH_AVAIL (3)
-
  - CURLOPT_HTTPAUTH (3)
-
Protocol:
-
  - HTTP
-
Added-in: 8.12.0
-
---
-

-
# NAME
-

-
CURLINFO_HTTPAUTH_USED - get used HTTP authentication method
-

-
# SYNOPSIS
-

-
~~~c
-
#include <curl/curl.h>
-

-
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTPAUTH_USED, long *authp);
-
~~~
-

-
# DESCRIPTION
-

-
Pass a pointer to a long to receive a bitmask indicating the authentication
-
method that was used in the previous HTTP request. The meaning of the possible
-
bits is explained in the CURLOPT_HTTPAUTH(3) option for curl_easy_setopt(3).
-

-
The returned value has zero or one bit set.
-

-
# %PROTOCOLS%
-

-
# EXAMPLE
-

-
~~~c
-
int main(void)
-
{
-
  CURL *curl = curl_easy_init();
-
  if(curl) {
-
    CURLcode res;
-
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
-
    curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC | CURLAUTH_DIGEST);
-
    curl_easy_setopt(curl, CURLOPT_USERNAME, "shrek");
-
    curl_easy_setopt(curl, CURLOPT_PASSWORD, "swamp");
-

-
    res = curl_easy_perform(curl);
-

-
    if(!res) {
-
      long auth;
-
      res = curl_easy_getinfo(curl, CURLINFO_HTTPAUTH_USED, &auth);
-
      if(!res) {
-
        if(!auth)
-
          printf("No auth used\n");
-
        else {
-
          if(auth == CURLAUTH_DIGEST)
-
            printf("Used Digest authentication\n");
-
          else
-
            printf("Used Basic authentication\n");
-
        }
-
      }
-
    }
-
    curl_easy_cleanup(curl);
-
  }
-
}
-
~~~
-

-
# %AVAILABILITY%
-

-
# RETURN VALUE
-

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
modified external/curl/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_HTTP_VERSION.md
@@ -57,7 +57,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_LASTSOCKET.md
@@ -78,7 +78,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_LOCAL_IP.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_LOCAL_PORT.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.md
@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.md
@@ -65,7 +65,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_OS_ERRNO.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_POSTTRANSFER_TIME_T.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_PRIMARY_IP.md
@@ -35,9 +35,9 @@ string holding the IP address of the most recent connection done with this
get a pointer to a memory area that is reused at next request so you need to
copy the string if you want to keep the information.

-
The **ip** pointer is NULL or points to private memory. You MUST NOT free - it
-
gets freed when you call curl_easy_cleanup(3) on the corresponding curl
-
handle.
+
The **ip** pointer is NULL or points to private memory. You MUST NOT free -
+
it gets freed when you call curl_easy_cleanup(3) on the corresponding
+
CURL handle.

# %PROTOCOLS%

@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.md
@@ -63,7 +63,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_PRIVATE.md
@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_PROTOCOL.md
@@ -73,7 +73,4 @@ Deprecated since 7.85.0.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.md
@@ -72,7 +72,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
deleted external/curl/docs/libcurl/opts/CURLINFO_PROXYAUTH_USED.md
@@ -1,82 +0,0 @@
-
---
-
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-
SPDX-License-Identifier: curl
-
Title: CURLINFO_PROXYAUTH_USED
-
Section: 3
-
Source: libcurl
-
See-also:
-
  - CURLINFO_HTTPAUTH_USED (3)
-
  - CURLINFO_PROXYAUTH_AVAIL (3)
-
  - CURLOPT_HTTPAUTH (3)
-
Protocol:
-
  - HTTP
-
Added-in: 8.12.0
-
---
-

-
# NAME
-

-
CURLINFO_PROXYAUTH_USED - get used HTTP proxy authentication method
-

-
# SYNOPSIS
-

-
~~~c
-
#include <curl/curl.h>
-

-
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROXYAUTH_USED, long *authp);
-
~~~
-

-
# DESCRIPTION
-

-
Pass a pointer to a long to receive a bitmask indicating the authentication
-
method that was used in the previous request done over an HTTP proxy. The
-
meaning of the possible bits is explained in the CURLOPT_HTTPAUTH(3) option
-
for curl_easy_setopt(3).
-

-
The returned value has zero or one bit set.
-

-
# %PROTOCOLS%
-

-
# EXAMPLE
-

-
~~~c
-
int main(void)
-
{
-
  CURL *curl = curl_easy_init();
-
  if(curl) {
-
    CURLcode res;
-
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
-
    curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy.example.com");
-
    curl_easy_setopt(curl, CURLOPT_PROXYAUTH,
-
                     CURLAUTH_BASIC | CURLAUTH_DIGEST);
-
    curl_easy_setopt(curl, CURLOPT_PROXYUSERNAME, "shrek");
-
    curl_easy_setopt(curl, CURLOPT_PROXYPASSWORD, "swamp");
-

-
    res = curl_easy_perform(curl);
-

-
    if(!res) {
-
      long auth;
-
      res = curl_easy_getinfo(curl, CURLINFO_PROXYAUTH_USED, &auth);
-
      if(!res) {
-
        if(!auth)
-
          printf("No auth used\n");
-
        else {
-
          if(auth == CURLAUTH_DIGEST)
-
            printf("Used Digest proxy authentication\n");
-
          else
-
            printf("Used Basic proxy authentication\n");
-
        }
-
      }
-
    }
-
    curl_easy_cleanup(curl);
-
  }
-
}
-
~~~
-

-
# %AVAILABILITY%
-

-
# RETURN VALUE
-

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
modified external/curl/docs/libcurl/opts/CURLINFO_PROXY_ERROR.md
@@ -101,7 +101,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_QUEUE_TIME_T.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.md
@@ -58,7 +58,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_REDIRECT_URL.md
@@ -65,7 +65,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_REFERER.md
@@ -32,8 +32,8 @@ Pass in a pointer to a char pointer and get the referrer header used in the
most recent request.

The **hdrp** pointer is NULL or points to private memory you MUST NOT free -
-
it gets freed when you call curl_easy_cleanup(3) on the corresponding curl
-
handle.
+
it gets freed when you call curl_easy_cleanup(3) on the corresponding
+
CURL handle.

# %PROTOCOLS%

@@ -63,7 +63,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.md
@@ -59,7 +59,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.md
@@ -68,7 +68,4 @@ responses added in 7.25.0, for OpenLDAP in 7.81.0.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_RETRY_AFTER.md
@@ -36,11 +36,6 @@ While the HTTP header might contain a fixed date string, the
CURLINFO_RETRY_AFTER(3) always returns the number of seconds to wait -
or zero if there was no header or the header could not be parsed.

-
This option used to return a negative wait time if the server provided a date
-
in the past. Since 8.12.0, a negative wait time is returned as zero. In any
-
case we recommend checking that the wait time is within an acceptable range for
-
your circumstance.
-

# DEFAULT

Zero if there was no header.
@@ -72,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.md
@@ -57,7 +57,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.md
@@ -57,7 +57,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.md
@@ -33,9 +33,9 @@ most recent RTSP Session ID.
Applications wishing to resume an RTSP session on another connection should
retrieve this info before closing the active connection.

-
The **id** pointer is NULL or points to private memory. You MUST NOT free - it
-
gets freed when you call curl_easy_cleanup(3) on the corresponding curl
-
handle.
+
The **id** pointer is NULL or points to private memory. You MUST NOT free -
+
it gets freed when you call curl_easy_cleanup(3) on the corresponding
+
CURL handle.

# %PROTOCOLS%

@@ -62,7 +62,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SCHEME.md
@@ -35,7 +35,7 @@ this CURL **handle**.

The **scheme** pointer is NULL or points to private memory. You MUST NOT
free - it gets freed when you call curl_easy_cleanup(3) on the corresponding
-
curl handle.
+
CURL handle.

The returned scheme might be upper or lowercase. Do comparisons case
insensitively.
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.md
@@ -73,7 +73,4 @@ Deprecated since 7.55.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.md
@@ -69,7 +69,4 @@ Deprecated since 7.55.0.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.md
@@ -62,7 +62,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.md
@@ -69,7 +69,4 @@ Deprecated since 7.55.0.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.md
@@ -63,7 +63,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.md
@@ -67,7 +67,4 @@ Deprecated since 7.55.0.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SSL_ENGINES.md
@@ -63,7 +63,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.md
@@ -73,7 +73,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_TLS_SESSION.md
@@ -77,7 +77,4 @@ Deprecated since 7.48.0

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.md
@@ -178,7 +178,4 @@ This option is exactly the same as that option except in the case of OpenSSL.

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_TOTAL_TIME.md
@@ -65,7 +65,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_USED_PROXY.md
@@ -65,7 +65,4 @@ int main(int argc, char *argv[])

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLINFO_XFER_ID.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_getinfo(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.md
@@ -57,7 +57,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.md
@@ -56,7 +56,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_MAX_CONCURRENT_STREAMS.md
@@ -55,7 +55,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.md
@@ -60,7 +60,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_PIPELINING.md
@@ -79,7 +79,4 @@ Before that, default was **CURLPIPE_NOTHING**.

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.md
@@ -62,7 +62,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_PUSHDATA.md
@@ -83,7 +83,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.md
@@ -77,7 +77,7 @@ introduced in later libcurl versions.
## CURL_PUSH_OK (0)

The application has accepted the stream and it can now start receiving data,
-
the ownership of the curl handle has been taken over by the application.
+
the ownership of the CURL handle has been taken over by the application.

## CURL_PUSH_DENY (1)

@@ -144,7 +144,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_TIMERDATA.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.md
@@ -103,7 +103,4 @@ int main(void)

# RETURN VALUE

-
curl_multi_setopt(3) returns a CURLMcode indicating success or error.
-

-
CURLM_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.md
@@ -57,7 +57,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.md
@@ -114,7 +114,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.md
@@ -58,8 +58,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
Returns CURLE_BAD_FUNCTION_ARGUMENT if set to a negative value.
modified external/curl/docs/libcurl/opts/CURLOPT_ALTSVC.md
@@ -41,12 +41,6 @@ option.
Using this option multiple times makes the last set string override the
previous ones. Set it to NULL to disable its use again.

-
# SECURITY CONCERNS
-

-
libcurl cannot fully protect against attacks where an attacker has write
-
access to the same directory where it is directed to save files. This is
-
particularly sensitive if you save files using elevated privileges.
-

# DEFAULT

NULL. The alt-svc cache is not read nor written to file.
@@ -119,7 +113,4 @@ Integer priority value (not currently used)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.md
@@ -95,7 +95,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_APPEND.md
@@ -62,7 +62,4 @@ This option was known as CURLOPT_FTPAPPEND up to 7.16.4

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_AUTOREFERER.md
@@ -73,7 +73,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_AWS_SIGV4.md
@@ -123,7 +123,4 @@ the special value "UNSIGNED-PAYLOAD".

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_BUFFERSIZE.md
@@ -80,7 +80,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CAINFO.md
@@ -89,7 +89,5 @@ Schannel support added in libcurl 7.60.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_CAINFO_BLOB.md
@@ -89,7 +89,5 @@ Transport and Schannel backends.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_CA_CACHE_TIMEOUT.md
@@ -86,7 +86,4 @@ This option is supported by OpenSSL and its forks (since 7.87.0), Schannel

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_CERTINFO.md
@@ -94,7 +94,4 @@ mbedTLS support added in 8.9.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.md
@@ -148,7 +148,4 @@ int main()

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CHUNK_DATA.md
@@ -98,7 +98,4 @@ int main()

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.md
@@ -78,7 +78,4 @@ int main()

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.md
@@ -82,7 +82,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.md
@@ -83,7 +83,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK. Returns CURLE_BAD_FUNCTION_ARGUMENT if set to a negative
+
value or a value that when converted to milliseconds is too large.
modified external/curl/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.md
@@ -84,7 +84,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.md
@@ -83,7 +83,4 @@ WS and WSS support added in 7.86.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CONNECT_TO.md
@@ -113,7 +113,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.md
@@ -114,7 +114,4 @@ built.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.md
@@ -107,7 +107,4 @@ built.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.md
@@ -110,7 +110,4 @@ built.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_COOKIE.md
@@ -89,7 +89,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_COOKIEFILE.md
@@ -55,7 +55,7 @@ If you use this option multiple times, you add more files to read cookies
from. Setting this option to NULL disables the cookie engine and clears the
list of files to read cookies from.

-
# SECURITY CONCERNS
+
# SECURITY

This document previously mentioned how specifying a non-existing file can also
enable the cookie engine. While true, we strongly advise against using that
@@ -97,7 +97,4 @@ online here: https://curl.se/docs/http-cookies.html

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_COOKIEJAR.md
@@ -52,12 +52,6 @@ option.
Using this option multiple times makes the last set string override the
previous ones. Set it to NULL to disable its use again.

-
# SECURITY CONCERNS
-

-
libcurl cannot fully protect against attacks where an attacker has write
-
access to the same directory where it is directed to save files. This is
-
particularly sensitive if you save files using elevated privileges.
-

# DEFAULT

NULL
@@ -89,7 +83,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_COOKIELIST.md
@@ -81,7 +81,7 @@ NULL

int main(void)
{
-
  const char *my_cookie =
+
  char *my_cookie =
    "example.com"    /* Hostname */
    SEP "FALSE"      /* Include subdomains */
    SEP "/"          /* Path */
@@ -135,7 +135,5 @@ online here: https://curl.se/docs/http-cookies.html

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_COOKIESESSION.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.md
@@ -78,7 +78,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_CRLF.md
@@ -58,7 +58,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_CRLFILE.md
@@ -85,7 +85,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_CURLU.md
@@ -75,7 +75,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.md
@@ -130,7 +130,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_DEBUGDATA.md
@@ -82,7 +82,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.md
@@ -214,7 +214,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_DIRLISTONLY.md
@@ -85,7 +85,4 @@ since 7.21.5.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.md
@@ -61,10 +61,7 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.

curl_easy_perform(3) returns CURLE_LOGIN_DENIED if this option is
enabled and a URL containing a username is specified.
modified external/curl/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.md
@@ -85,7 +85,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.md
@@ -70,7 +70,5 @@ supports this operation. The c-ares backend is the only such one.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not,
+
or CURLE_NOT_BUILT_IN if support was disabled at compile-time.
modified external/curl/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.md
@@ -69,7 +69,6 @@ supports this operation. The c-ares backend is the only such one.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not,
+
CURLE_NOT_BUILT_IN if support was disabled at compile-time, or
+
CURLE_BAD_FUNCTION_ARGUMENT when given a bad address.
modified external/curl/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.md
@@ -69,7 +69,6 @@ supports this operation. The c-ares backend is the only such one.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not,
+
CURLE_NOT_BUILT_IN if support was disabled at compile-time, or
+
CURLE_BAD_FUNCTION_ARGUMENT when given a bad address.
modified external/curl/docs/libcurl/opts/CURLOPT_DNS_SERVERS.md
@@ -74,7 +74,7 @@ supports this operation. The c-ares backend is the only such one.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not,
+
CURLE_NOT_BUILT_IN if support was disabled at compile-time,
+
CURLE_BAD_FUNCTION_ARGUMENT when given an invalid server list, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.md
@@ -68,7 +68,4 @@ Deprecated since 7.11.1. Functionality removed in 7.62.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYHOST.md
@@ -42,9 +42,9 @@ When CURLOPT_DOH_SSL_VERIFYHOST(3) is 2, the SSL certificate provided by
the DoH server must indicate that the server name is the same as the server
name to which you meant to connect to, or the connection fails.

-
curl considers the DoH server the intended one when the Common Name field or a
+
Curl considers the DoH server the intended one when the Common Name field or a
Subject Alternate Name field in the certificate matches the hostname in the
-
DoH URL to which you told curl to connect.
+
DoH URL to which you told Curl to connect.

When the *verify* value is set to 1L it is treated the same as 2L. However
for consistency with the other *VERIFYHOST* options we suggest use 2 and
@@ -86,7 +86,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYPEER.md
@@ -44,7 +44,7 @@ This option is the DoH equivalent of CURLOPT_SSL_VERIFYPEER(3) and
only affects requests to the DoH server.

When negotiating a TLS or SSL connection, the server sends a certificate
-
indicating its identity. curl verifies whether the certificate is authentic,
+
indicating its identity. Curl verifies whether the certificate is authentic,
i.e. that you can trust that the server is who the certificate says it is.
This trust is based on a chain of digital signatures, rooted in certification
authority (CA) certificates you supply. curl uses a default bundle of CA
@@ -98,7 +98,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_DOH_SSL_VERIFYSTATUS.md
@@ -73,7 +73,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if OCSP stapling is supported by the SSL backend, otherwise
+
returns CURLE_NOT_BUILT_IN.
modified external/curl/docs/libcurl/opts/CURLOPT_DOH_URL.md
@@ -90,11 +90,9 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
+
Returns CURLE_OK on success or CURLE_OUT_OF_MEMORY if there was insufficient
+
heap space.

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
-

-
Note that curl_easy_setopt(3) does immediately parse the given string so when
-
given a bad DoH URL, libcurl might not detect the problem until it later tries
-
to resolve a name with it.
+
Note that curl_easy_setopt(3) does immediately parse the given string so
+
when given a bad DoH URL, libcurl might not detect the problem until it later
+
tries to resolve a name with it.
modified external/curl/docs/libcurl/opts/CURLOPT_ECH.md
@@ -104,7 +104,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK on success or CURLE_OUT_OF_MEMORY if there was insufficient
+
heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_EGDSOCKET.md
@@ -41,7 +41,4 @@ This option was deprecated in 7.84.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_ERRORBUFFER.md
@@ -100,7 +100,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.md
@@ -60,7 +60,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FAILONERROR.md
@@ -70,7 +70,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FILETIME.md
@@ -72,7 +72,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.md
@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.md
@@ -84,7 +84,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.md
@@ -99,7 +99,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FORBID_REUSE.md
@@ -65,7 +65,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.md
@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_FTPPORT.md
@@ -93,7 +93,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.md
@@ -72,7 +72,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.md
@@ -65,7 +65,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.md
@@ -65,7 +65,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.md
@@ -82,7 +82,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if the
+
create value is not.
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.md
@@ -82,7 +82,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if FTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.md
@@ -62,7 +62,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.md
@@ -60,7 +60,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HAPROXY_CLIENT_IP.md
@@ -65,7 +65,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HEADER.md
@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_HEADERDATA.md
@@ -85,7 +85,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.md
@@ -131,7 +131,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_HEADEROPT.md
@@ -77,7 +77,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HSTS.md
@@ -61,12 +61,6 @@ currently no length or size limit.

NULL, no filename

-
# SECURITY CONCERNS
-

-
libcurl cannot fully protect against attacks where an attacker has write
-
access to the same directory where it is directed to save files. This is
-
particularly sensitive if you save files using elevated privileges.
-

# %PROTOCOLS%

# EXAMPLE
@@ -86,7 +80,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HSTS_CTRL.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTP09_ALLOWED.md
@@ -64,7 +64,4 @@ responses.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.md
@@ -77,7 +77,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTPAUTH.md
@@ -161,7 +161,6 @@ CURLAUTH_AWS_SIGV4 was added in 7.74.0

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_NOT_BUILT_IN if the bitmask specified no supported authentication
+
methods.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTPGET.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTPHEADER.md
@@ -184,7 +184,4 @@ Use for MIME mail added in 7.56.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTPPOST.md
@@ -100,7 +100,4 @@ Deprecated in 7.56.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.md
@@ -29,7 +29,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP_CONTENT_DECODING,
# DESCRIPTION

Pass a long to tell libcurl how to act on content decoding. If set to zero,
-
content decoding is disabled. If set to 1 it is enabled. libcurl has no
+
content decoding is disabled. If set to 1 it is enabled. Libcurl has no
default content decoding but requires you to use
CURLOPT_ACCEPT_ENCODING(3) for that.

@@ -58,7 +58,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.md
@@ -31,6 +31,11 @@ Pass a long to tell libcurl how to act on transfer decoding. If set to zero,
transfer decoding is disabled, if set to 1 it is enabled (default). libcurl
does chunked transfer decoding by default unless this option is set to zero.

+
# NOTES
+

+
This option does not work with the hyper backend as that always has transfer
+
decoding enabled.
+

# DEFAULT

1
@@ -56,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_HTTP_VERSION.md
@@ -119,7 +119,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.md
@@ -69,11 +69,13 @@ int main(void)

Support for FTP added in 7.46.0.

+
# NOTES
+

+
This option is not working for HTTP when libcurl is built to use the hyper
+
backend.
+

# %AVAILABILITY%

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_INFILESIZE.md
@@ -85,7 +85,4 @@ SMTP support added in 7.23.0

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.md
@@ -81,7 +81,4 @@ SMTP support added in 7.23.0

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_INTERFACE.md
@@ -89,7 +89,5 @@ The `ifhost!` syntax was added in 8.9.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK on success or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.md
@@ -35,7 +35,7 @@ shown above.

This callback function gets called by libcurl as soon as it has received
interleaved RTP data. This function gets called for each $ block and therefore
-
contains exactly one upper-layer protocol unit (e.g. one RTP packet). curl
+
contains exactly one upper-layer protocol unit (e.g. one RTP packet). Curl
writes the interleaved header as well as the included data for each call. The
first byte is always an ASCII dollar sign. The dollar sign is followed by a
one byte channel identifier and then a 2 byte integer length in network byte
@@ -98,7 +98,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_IOCTLDATA.md
@@ -72,7 +72,4 @@ Deprecated since 7.18.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.md
@@ -103,7 +103,4 @@ Deprecated since 7.18.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_IPRESOLVE.md
@@ -79,7 +79,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_ISSUERCERT.md
@@ -78,7 +78,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_ISSUERCERT_BLOB.md
@@ -89,7 +89,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.md
@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_KEYPASSWD.md
@@ -75,7 +75,5 @@ CURLOPT_SSLCERTPASSWD up to 7.9.2.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_KRBLEVEL.md
@@ -68,7 +68,5 @@ This option was known as CURLOPT_KRB4LEVEL up to 7.16.3

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_LOCALPORT.md
@@ -60,7 +60,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.md
@@ -63,7 +63,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.md
@@ -81,7 +81,5 @@ Support for OpenLDAP added in 7.82.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.md
@@ -63,7 +63,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_MAIL_AUTH.md
@@ -74,7 +74,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_MAIL_FROM.md
@@ -67,7 +67,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_MAIL_RCPT.md
@@ -81,7 +81,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_MAIL_RCPT_ALLOWFAILS.md
@@ -80,7 +80,4 @@ two letter L) before 8.2.0

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_MAXAGE_CONN.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_MAXCONNECTS.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_MAXFILESIZE.md
@@ -67,7 +67,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the size passed is valid or CURLE_BAD_FUNCTION_ARGUMENT if
+
not.
modified external/curl/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.md
@@ -69,7 +69,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_BAD_FUNCTION_ARGUMENT if the size passed is invalid.
modified external/curl/docs/libcurl/opts/CURLOPT_MAXLIFETIME_CONN.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_MAXREDIRS.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_MIME_OPTIONS.md
@@ -95,7 +95,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_NETRC.md
@@ -139,7 +139,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_NETRC_FILE.md
@@ -64,7 +64,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.md
@@ -62,7 +62,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.md
@@ -58,7 +58,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_NOBODY.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_NOPROGRESS.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_NOPROXY.md
@@ -88,7 +88,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_NOSIGNAL.md
@@ -72,7 +72,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.md
@@ -88,7 +88,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.md
@@ -60,21 +60,14 @@ is allowed to modify the address or refuse to connect completely. The callback
function should return the newly created socket or *CURL_SOCKET_BAD* in
case no connection could be established or another error was detected. Any
additional *setsockopt(2)* calls can of course be done on the socket at
-
the user's discretion.
-

-
If *CURL_SOCKET_BAD* is returned by the callback then libcurl treats it as a
-
failed connection and tries to open a socket to connect to a different IP
-
address associated with the transfer. If there are no more addresses to try
-
then libcurl fails the transfer with error code *CURLE_COULDNT_CONNECT*.
-

-
You can get the IP address that curl is opening the socket for by casting
-
*address-\>addr* to `sockaddr_in` if *address-\>family* is `AF_INET`, or to
-
`sockaddr_in6` if *address-\>family* is `AF_INET6`. For an example of how that
-
data can be compared against refer to *docs/examples/block_ip.c*.
+
the user's discretion. A *CURL_SOCKET_BAD* return value from the callback
+
function signals an unrecoverable error to libcurl and it returns
+
*CURLE_COULDNT_CONNECT* from the function that triggered this callback.
+
This return code can be used for IP address block listing.

If you want to pass in a socket with an already established connection, pass
-
the socket back with this callback and then use CURLOPT_SOCKOPTFUNCTION(3) to
-
signal that it already is connected.
+
the socket back with this callback and then use
+
CURLOPT_SOCKOPTFUNCTION(3) to signal that it already is connected.

# DEFAULT

@@ -135,7 +128,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PASSWORD.md
@@ -69,7 +69,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PATH_AS_IS.md
@@ -41,9 +41,6 @@ order to try out server implementations.

By default libcurl normalizes such sequences before using the path.

-
This is a request for the *first* request libcurl issues. When following
-
redirects, it may no longer apply.
-

The corresponding flag for the curl_url_set(3) function is called
**CURLU_PATH_AS_IS**.

@@ -74,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.md
@@ -149,7 +149,5 @@ Other SSL backends not supported.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PIPEWAIT.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PORT.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_POST.md
@@ -98,7 +98,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_POSTFIELDS.md
@@ -124,7 +124,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_POSTQUOTE.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_POSTREDIR.md
@@ -81,7 +81,4 @@ This option was known as CURLOPT_POST301 up to 7.19.0 as it only supported the

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PREQUOTE.md
@@ -78,7 +78,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PREREQDATA.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PREREQFUNCTION.md
@@ -122,7 +122,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PRE_PROXY.md
@@ -82,7 +82,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if proxies are supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PRIVATE.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PROGRESSDATA.md
@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.md
@@ -126,7 +126,4 @@ Deprecated since 7.32.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_PROTOCOLS.md
@@ -104,7 +104,4 @@ Deprecated since 7.85.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY.md
@@ -90,6 +90,9 @@ proxy. Such tunneling is activated with CURLOPT_HTTPPROXYTUNNEL(3).
Setting the proxy string to "" (an empty string) explicitly disables the use
of a proxy, even if there is an environment variable set for it.

+
A proxy host string can also include protocol scheme (http://) and embedded
+
user + password.
+

Unix domain sockets are supported for socks proxies since 7.84.0. Set
localhost for the host part. e.g. socks5h://localhost/path/to/socket.sock

@@ -103,14 +106,6 @@ Doing FTP over an HTTP proxy without CURLOPT_HTTPPROXYTUNNEL(3) set makes
libcurl do HTTP with an FTP URL over the proxy. For such transfers, common FTP
specific options do not work, for example CURLOPT_USE_SSL(3).

-
# Authentication
-

-
The proxy can also be specified with its associated credentials like for
-
ordinary URLs in the style: `scheme://username:password@hostname`
-

-
Alternatively, set them using CURLOPT_PROXYUSERNAME(3) and
-
CURLOPT_PROXYPASSWORD(3).
-

# Environment variables

libcurl respects the proxy environment variables named **http_proxy**,
@@ -158,7 +153,5 @@ error.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if proxies are supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXYAUTH.md
@@ -71,7 +71,6 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_NOT_BUILT_IN if the bitmask specified no supported authentication
+
methods.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXYHEADER.md
@@ -80,7 +80,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.md
@@ -68,7 +68,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXYPORT.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_PROXYTYPE.md
@@ -97,7 +97,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.md
@@ -68,7 +68,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.md
@@ -69,7 +69,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if proxies are supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.md
@@ -96,7 +96,5 @@ https://curl.se/docs/ssl-compared.html

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_CAINFO_BLOB.md
@@ -89,7 +89,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.md
@@ -85,7 +85,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT.md
@@ -82,7 +82,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_ISSUERCERT_BLOB.md
@@ -92,7 +92,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.md
@@ -73,7 +73,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.md
@@ -131,7 +131,5 @@ Other SSL backends not supported.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.md
@@ -63,7 +63,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.md
@@ -84,7 +84,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.md
@@ -78,7 +78,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT_BLOB.md
@@ -83,7 +83,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.md
@@ -78,7 +78,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.md
@@ -34,8 +34,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLKEYTYPE, char *type);
This option is for connecting to an HTTPS proxy, not an HTTPS server.

Pass a pointer to a null-terminated string as parameter. The string should be
-
the format of your private key. Supported formats are "PEM", "DER", "ENG" and
-
"PROV" (the latter added in curl 8.12.0).
+
the format of your private key. Supported formats are "PEM", "DER" and "ENG".

The application does not have to keep the string around after setting this
option.
@@ -69,7 +68,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY_BLOB.md
@@ -83,7 +83,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.md
@@ -128,7 +128,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.md
@@ -102,7 +102,4 @@ Since curl 8.10.0 returns CURLE_NOT_BUILT_IN when not supported.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if supported, CURLE_NOT_BUILT_IN otherwise.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.md
@@ -117,7 +117,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.md
@@ -41,7 +41,7 @@ When CURLOPT_PROXY_SSL_VERIFYHOST(3) is 2, the proxy certificate must
indicate that the server is the proxy to which you meant to connect to, or the
connection fails.

-
curl considers the proxy the intended one when the Common Name field or a
+
Curl considers the proxy the intended one when the Common Name field or a
Subject Alternate Name field in the certificate matches the hostname in the
proxy string which you told curl to use.

@@ -88,7 +88,6 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
+
Returns CURLE_OK if TLS is supported, and CURLE_UNKNOWN_OPTION if not.

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
If 1 is set as argument, *CURLE_BAD_FUNCTION_ARGUMENT* is returned.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.md
@@ -39,7 +39,7 @@ This is the proxy version of CURLOPT_SSL_VERIFYPEER(3) that is used for
ordinary HTTPS servers.

When negotiating a TLS or SSL connection, the server sends a certificate
-
indicating its identity. curl verifies whether the certificate is authentic,
+
indicating its identity. Curl verifies whether the certificate is authentic,
i.e. that you can trust that the server is who the certificate says it is.
This trust is based on a chain of digital signatures, rooted in certification
authority (CA) certificates you supply. curl uses a default bundle of CA
@@ -90,7 +90,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.md
@@ -95,7 +95,4 @@ by using the CURLOPT_PROXY_SSL_CIPHER_LIST(3) option.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if supported, CURLE_NOT_BUILT_IN otherwise.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.md
@@ -72,7 +72,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.md
@@ -79,7 +79,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.md
@@ -72,7 +72,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.md
@@ -64,7 +64,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if the
+
enabled value is not supported.
modified external/curl/docs/libcurl/opts/CURLOPT_PUT.md
@@ -89,7 +89,4 @@ Deprecated since 7.12.1.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_QUICK_EXIT.md
@@ -58,7 +58,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_QUOTE.md
@@ -166,7 +166,4 @@ SFTP support added in 7.16.3. *-prefix for SFTP added in 7.24.0

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_RANDOM_FILE.md
@@ -41,7 +41,4 @@ Deprecated since 7.84.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_RANGE.md
@@ -88,7 +88,5 @@ FILE since 7.18.0, RTSP since 7.20.0

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK on success or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.md
@@ -114,7 +114,4 @@ Deprecated since 7.85.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_REFERER.md
@@ -65,7 +65,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP support is enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_RESOLVE.md
@@ -47,7 +47,7 @@ numerical IP addresses. If you specify multiple IP addresses they need to be
separated by comma. If libcurl is built to support IPv6, each of the ADDRESS
entries can of course be either IPv4 or IPv6 style addressing.

-
Specify the host as a single asterisk (`*`) to match all names. This wildcard
+
Specify the host as a single ampersand (`*`) to match all names. This wildcard
is resolved last so any resolve with a specific host and port number is given
priority.

@@ -121,7 +121,4 @@ Support for adding non-permanent entries by using the "+" prefix was added in

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.md
@@ -84,7 +84,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_RESUME_FROM.md
@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.md
@@ -75,7 +75,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.md
@@ -58,7 +58,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.md
@@ -135,7 +135,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.md
@@ -57,7 +57,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.md
@@ -66,7 +66,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.md
@@ -70,7 +70,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.md
@@ -63,7 +63,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SASL_AUTHZID.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SASL_IR.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SEEKDATA.md
@@ -10,9 +10,7 @@ See-also:
  - CURLOPT_SEEKFUNCTION (3)
  - CURLOPT_STDERR (3)
Protocol:
-
  - FTP
-
  - HTTP
-
  - SFTP
+
  - All
Added-in: 7.18.0
---

modified external/curl/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.md
@@ -10,9 +10,7 @@ See-also:
  - CURLOPT_SEEKDATA (3)
  - CURLOPT_STDERR (3)
Protocol:
-
  - FTP
-
  - HTTP
-
  - SFTP
+
  - All
Added-in: 7.18.0
---

@@ -100,7 +98,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SERVER_RESPONSE_TIMEOUT.md
@@ -71,7 +71,6 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if supported, and CURLE_UNKNOWN_OPTION if not. Returns
+
CURLE_BAD_FUNCTION_ARGUMENT if set to a negative value or a value that when
+
converted to milliseconds is too large.
modified external/curl/docs/libcurl/opts/CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.md
@@ -73,7 +73,6 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if supported, and CURLE_UNKNOWN_OPTION if not. Returns
+
CURLE_BAD_FUNCTION_ARGUMENT if set to a negative value or a value that when
+
converted to milliseconds is too large.
modified external/curl/docs/libcurl/opts/CURLOPT_SERVICE_NAME.md
@@ -68,7 +68,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SHARE.md
@@ -84,7 +84,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.md
@@ -127,7 +127,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.md
@@ -64,7 +64,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_NOT_BUILT_IN if the bitmask contains unsupported flags.
modified external/curl/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.md
@@ -59,7 +59,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.md
@@ -67,7 +67,5 @@ Deprecated since 7.49.0

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.md
@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.md
@@ -60,7 +60,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_HOSTKEYDATA.md
@@ -74,7 +74,4 @@ Works only with the libssh2 backend.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_HOSTKEYFUNCTION.md
@@ -99,7 +99,4 @@ Work only with the libssh2 backend.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.md
@@ -70,7 +70,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.md
@@ -70,7 +70,5 @@ Requires the libssh2 backend.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.md
@@ -72,7 +72,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.md
@@ -65,11 +65,11 @@ It gets called when the known_host matching has been done, to allow the
application to act and decide for libcurl how to proceed. The callback is only
called if CURLOPT_SSH_KNOWNHOSTS(3) is also set.

-
This callback function gets passed the curl handle, the key from the
-
known_hosts file *knownkey*, the key from the remote site *foundkey*, info
-
from libcurl on the matching status and a custom pointer (set with
-
CURLOPT_SSH_KEYDATA(3)). It MUST return one of the following return codes to
-
tell libcurl how to act:
+
This callback function gets passed the CURL handle, the key from the
+
known_hosts file *knownkey*, the key from the remote site *foundkey*,
+
info from libcurl on the matching status and a custom pointer (set with
+
CURLOPT_SSH_KEYDATA(3)). It MUST return one of the following return
+
codes to tell libcurl how to act:

## CURLKHSTAT_FINE_REPLACE

@@ -149,7 +149,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.md
@@ -67,7 +67,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.md
@@ -72,7 +72,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.md
@@ -71,7 +71,5 @@ The "" trick was added in 7.26.0

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSLCERT.md
@@ -92,7 +92,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.md
@@ -76,7 +76,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSLCERT_BLOB.md
@@ -83,7 +83,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSLKEY.md
@@ -74,7 +74,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.md
@@ -32,18 +32,12 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLKEYTYPE, char *type);
# DESCRIPTION

Pass a pointer to a null-terminated string as parameter. The string should be
-
the format of your private key. Supported formats are "PEM", "DER", "ENG" and
-
"PROV".
+
the format of your private key. Supported formats are "PEM", "DER" and "ENG".

The format "ENG" enables you to load the private key from a crypto engine. In
this case CURLOPT_SSLKEY(3) is used as an identifier passed to the engine. You
-
have to set the crypto engine with CURLOPT_SSLENGINE(3).
-

-
The format "PROV" enables you to load the private key from a crypto provider
-
(Added in 8.12.0). In this case CURLOPT_SSLKEY(3) is used as an identifier
-
passed to the provider.
-

-
The "DER" format does not work with OpenSSL.
+
have to set the crypto engine with CURLOPT_SSLENGINE(3). "DER" format key file
+
currently does not work because of a bug in OpenSSL.

The application does not have to keep the string around after setting this
option.
@@ -80,7 +74,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSLKEY_BLOB.md
@@ -85,7 +85,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_SSLVERSION.md
@@ -154,7 +154,4 @@ Rustls support added in 8.10.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.md
@@ -103,7 +103,4 @@ Since curl 8.10.0 returns CURLE_NOT_BUILT_IN when not supported.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if supported, CURLE_NOT_BUILT_IN otherwise.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_EC_CURVES.md
@@ -66,7 +66,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.md
@@ -58,7 +58,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.md
@@ -64,7 +64,4 @@ Deprecated since 7.86.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.md
@@ -58,7 +58,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if false start is supported by the SSL backend, otherwise
+
returns CURLE_NOT_BUILT_IN.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.md
@@ -123,7 +123,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.md
@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.md
@@ -118,7 +118,4 @@ From 7.66.0: libcurl treats 1 and 2 to this option the same.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TLS is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.md
@@ -38,7 +38,7 @@ This option determines whether curl verifies the authenticity of the peer's
certificate. A value of 1 means curl verifies; 0 (zero) means it does not.

When negotiating a TLS or SSL connection, the server sends a certificate
-
indicating its identity. curl verifies whether the certificate is authentic,
+
indicating its identity. Curl verifies whether the certificate is authentic,
i.e. that you can trust that the server is who the certificate says it is.
This trust is based on a chain of digital signatures, rooted in certification
authority (CA) certificates you supply. curl uses a default bundle of CA
@@ -96,7 +96,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.md
@@ -65,7 +65,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if OCSP stapling is supported by the SSL backend, otherwise
+
returns CURLE_NOT_BUILT_IN.
modified external/curl/docs/libcurl/opts/CURLOPT_STDERR.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.md
@@ -73,7 +73,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.md
@@ -29,7 +29,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_DEPENDS_E,

# DESCRIPTION

-
Pass a `CURL` pointer in *dephandle* to identify the stream within the same
+
Pass a CURL pointer in *dephandle* to identify the stream within the same
connection that this stream is depending upon exclusively. That means it
depends on it and sets the Exclusive bit.

@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.md
@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.md
@@ -62,7 +62,5 @@ This option is only supported on Linux and macOS 10.11 or later.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if fast open is supported by the operating system, otherwise
+
returns CURLE_NOT_BUILT_IN.
modified external/curl/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TCP_KEEPCNT.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.md
@@ -70,7 +70,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.md
@@ -69,7 +69,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TCP_NODELAY.md
@@ -71,7 +71,4 @@ The default was changed to 1 from 0 in 7.50.2.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if TELNET is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.md
@@ -59,7 +59,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.md
@@ -74,7 +74,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TIMECONDITION.md
@@ -68,7 +68,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_TIMEOUT.md
@@ -85,7 +85,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK. Returns CURLE_BAD_FUNCTION_ARGUMENT if set to a negative
+
value or a value that when converted to milliseconds is too large.
modified external/curl/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.md
@@ -60,7 +60,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_TIMEVALUE.md
@@ -65,7 +65,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.md
@@ -95,7 +95,4 @@ by using the CURLOPT_SSL_CIPHER_LIST(3) option.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if supported, CURLE_NOT_BUILT_IN otherwise.
modified external/curl/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.md
@@ -71,7 +71,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.md
@@ -75,7 +75,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.md
@@ -70,7 +70,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_TRAILERDATA.md
@@ -55,7 +55,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_TRAILERFUNCTION.md
@@ -107,7 +107,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.md
@@ -61,7 +61,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if FTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.md
@@ -64,7 +64,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.md
@@ -85,7 +85,4 @@ you can use the proc filesystem to bypass the limitation:

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.md
@@ -81,7 +81,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.md
@@ -78,7 +78,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_UPLOAD.md
@@ -93,7 +93,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.md
@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_URL.md
@@ -139,10 +139,9 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
+
Returns CURLE_OK on success or CURLE_OUT_OF_MEMORY if there was insufficient
+
heap space.

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
-

-
Note that curl_easy_setopt(3) does not parse the given string so given a bad
-
URL, it is not detected until curl_easy_perform(3) or similar is called.
+
Note that curl_easy_setopt(3) does not parse the given string so given a
+
bad URL, it is not detected until curl_easy_perform(3) or similar is
+
called.
modified external/curl/docs/libcurl/opts/CURLOPT_USERAGENT.md
@@ -64,7 +64,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if HTTP is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_USERNAME.md
@@ -86,7 +86,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_USERPWD.md
@@ -95,7 +95,5 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK on success or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/CURLOPT_USE_SSL.md
@@ -89,7 +89,4 @@ OpenLDAP backend only.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_VERBOSE.md
@@ -67,7 +67,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.md
@@ -107,7 +107,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_WS_OPTIONS.md
@@ -71,7 +71,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
modified external/curl/docs/libcurl/opts/CURLOPT_XFERINFODATA.md
@@ -76,7 +76,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK
modified external/curl/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.md
@@ -120,7 +120,4 @@ int main(void)

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK.
modified external/curl/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.md
@@ -73,7 +73,5 @@ Support for OpenLDAP added in 7.82.0.

# RETURN VALUE

-
curl_easy_setopt(3) returns a CURLcode indicating success or error.
-

-
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
-
libcurl-errors(3).
+
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
+
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
modified external/curl/docs/libcurl/opts/Makefile.in
@@ -228,6 +228,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -252,10 +253,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -274,14 +296,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -318,6 +348,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -325,10 +358,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -416,7 +485,6 @@ AUTOMAKE_OPTIONS = foreign no-dependencies
@BUILD_DOCS_TRUE@  CURLINFO_HTTP_CONNECTCODE.3                   \
@BUILD_DOCS_TRUE@  CURLINFO_HTTP_VERSION.3                       \
@BUILD_DOCS_TRUE@  CURLINFO_HTTPAUTH_AVAIL.3                     \
-
@BUILD_DOCS_TRUE@  CURLINFO_HTTPAUTH_USED.3                      \
@BUILD_DOCS_TRUE@  CURLINFO_LASTSOCKET.3                         \
@BUILD_DOCS_TRUE@  CURLINFO_LOCAL_IP.3                           \
@BUILD_DOCS_TRUE@  CURLINFO_LOCAL_PORT.3                         \
@@ -434,7 +502,6 @@ AUTOMAKE_OPTIONS = foreign no-dependencies
@BUILD_DOCS_TRUE@  CURLINFO_PROXY_ERROR.3                        \
@BUILD_DOCS_TRUE@  CURLINFO_PROXY_SSL_VERIFYRESULT.3             \
@BUILD_DOCS_TRUE@  CURLINFO_PROXYAUTH_AVAIL.3                    \
-
@BUILD_DOCS_TRUE@  CURLINFO_PROXYAUTH_USED.3                     \
@BUILD_DOCS_TRUE@  CURLINFO_QUEUE_TIME_T.3                       \
@BUILD_DOCS_TRUE@  CURLINFO_REDIRECT_COUNT.3                     \
@BUILD_DOCS_TRUE@  CURLINFO_REDIRECT_TIME.3                      \
modified external/curl/docs/libcurl/opts/Makefile.inc
@@ -50,7 +50,6 @@ man_MANS = \
  CURLINFO_HTTP_CONNECTCODE.3                   \
  CURLINFO_HTTP_VERSION.3                       \
  CURLINFO_HTTPAUTH_AVAIL.3                     \
-
  CURLINFO_HTTPAUTH_USED.3                      \
  CURLINFO_LASTSOCKET.3                         \
  CURLINFO_LOCAL_IP.3                           \
  CURLINFO_LOCAL_PORT.3                         \
@@ -68,7 +67,6 @@ man_MANS = \
  CURLINFO_PROXY_ERROR.3                        \
  CURLINFO_PROXY_SSL_VERIFYRESULT.3             \
  CURLINFO_PROXYAUTH_AVAIL.3                    \
-
  CURLINFO_PROXYAUTH_USED.3                     \
  CURLINFO_QUEUE_TIME_T.3                       \
  CURLINFO_REDIRECT_COUNT.3                     \
  CURLINFO_REDIRECT_TIME.3                      \
modified external/curl/docs/libcurl/symbols-in-versions
@@ -449,7 +449,6 @@ CURLINFO_HTTP_CODE 7.4.1 7.10.8
CURLINFO_HTTP_CONNECTCODE       7.10.7
CURLINFO_HTTP_VERSION           7.50.0
CURLINFO_HTTPAUTH_AVAIL         7.10.8
-
CURLINFO_HTTPAUTH_USED          8.12.0
CURLINFO_LASTONE                7.4.1
CURLINFO_LASTSOCKET             7.15.2        7.45.0
CURLINFO_LOCAL_IP               7.21.0
@@ -472,7 +471,6 @@ CURLINFO_PROTOCOL 7.52.0 7.85.0
CURLINFO_PROXY_ERROR            7.73.0
CURLINFO_PROXY_SSL_VERIFYRESULT 7.52.0
CURLINFO_PROXYAUTH_AVAIL        7.10.8
-
CURLINFO_PROXYAUTH_USED         8.12.0
CURLINFO_PTR                    7.54.1
CURLINFO_QUEUE_TIME_T           8.6.0
CURLINFO_REDIRECT_COUNT         7.9.7
@@ -1152,8 +1150,8 @@ CURLWS_RAW_MODE 7.86.0
CURLWS_TEXT                     7.86.0
LIBCURL_COPYRIGHT               7.18.0
LIBCURL_TIMESTAMP               7.16.2
-
LIBCURL_VERSION                 7.1.1
+
LIBCURL_VERSION                 7.11.0
LIBCURL_VERSION_MAJOR           7.11.0
LIBCURL_VERSION_MINOR           7.11.0
-
LIBCURL_VERSION_NUM             7.1.1
+
LIBCURL_VERSION_NUM             7.11.0
LIBCURL_VERSION_PATCH           7.11.0
modified external/curl/docs/options-in-versions
@@ -235,7 +235,6 @@
--ssl-no-revoke                      7.44.0
--ssl-reqd                           7.20.0
--ssl-revoke-best-effort             7.70.0
-
--ssl-sessions                       8.12.0
--sslv2 (-2)                         5.9
--sslv3 (-3)                         5.9
--stderr                             6.2
modified external/curl/include/Makefile.in
@@ -206,6 +206,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -230,10 +231,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -252,14 +274,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -296,6 +326,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -303,10 +336,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/include/curl/Makefile.in
@@ -193,6 +193,7 @@ pkgincludedir = $(includedir)/curl
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -217,10 +218,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -239,14 +261,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -283,6 +313,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -290,10 +323,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/include/curl/curl.h
@@ -1959,10 +1959,10 @@ typedef enum {
  /* Set stream weight, 1 - 256 (default is 16) */
  CURLOPT(CURLOPT_STREAM_WEIGHT, CURLOPTTYPE_LONG, 239),

-
  /* Set stream dependency on another curl handle */
+
  /* Set stream dependency on another CURL handle */
  CURLOPT(CURLOPT_STREAM_DEPENDS, CURLOPTTYPE_OBJECTPOINT, 240),

-
  /* Set E-xclusive stream dependency on another curl handle */
+
  /* Set E-xclusive stream dependency on another CURL handle */
  CURLOPT(CURLOPT_STREAM_DEPENDS_E, CURLOPTTYPE_OBJECTPOINT, 241),

  /* Do not send any tftp option requests to the server */
@@ -2959,9 +2959,7 @@ typedef enum {
  CURLINFO_USED_PROXY       = CURLINFO_LONG + 66,
  CURLINFO_POSTTRANSFER_TIME_T = CURLINFO_OFF_T + 67,
  CURLINFO_EARLYDATA_SENT_T = CURLINFO_OFF_T + 68,
-
  CURLINFO_HTTPAUTH_USED    = CURLINFO_LONG + 69,
-
  CURLINFO_PROXYAUTH_USED   = CURLINFO_LONG + 70,
-
  CURLINFO_LASTONE          = 70
+
  CURLINFO_LASTONE          = 68
} CURLINFO;

/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
@@ -3232,50 +3230,6 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
#define CURLPAUSE_ALL       (CURLPAUSE_RECV|CURLPAUSE_SEND)
#define CURLPAUSE_CONT      (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT)

-
/*
-
 * NAME curl_easy_ssls_import()
-
 *
-
 * DESCRIPTION
-
 *
-
 * The curl_easy_ssls_import function adds a previously exported SSL session
-
 * to the SSL session cache of the easy handle (or the underlying share).
-
 */
-
CURL_EXTERN CURLcode curl_easy_ssls_import(CURL *handle,
-
                                           const char *session_key,
-
                                           const unsigned char *shmac,
-
                                           size_t shmac_len,
-
                                           const unsigned char *sdata,
-
                                           size_t sdata_len);
-

-
/* This is the curl_ssls_export_cb callback prototype. It
-
 * is passed to curl_easy_ssls_export() to extract SSL sessions/tickets. */
-
typedef CURLcode curl_ssls_export_cb(CURL *handle,
-
                                     void *userptr,
-
                                     const char *session_key,
-
                                     const unsigned char *shmac,
-
                                     size_t shmac_len,
-
                                     const unsigned char *sdata,
-
                                     size_t sdata_len,
-
                                     curl_off_t valid_until,
-
                                     int ietf_tls_id,
-
                                     const char *alpn,
-
                                     size_t earlydata_max);
-

-
/*
-
 * NAME curl_easy_ssls_export()
-
 *
-
 * DESCRIPTION
-
 *
-
 * The curl_easy_ssls_export function iterates over all SSL sessions stored
-
 * in the easy handle (or underlying share) and invokes the passed
-
 * callback.
-
 *
-
 */
-
CURL_EXTERN CURLcode curl_easy_ssls_export(CURL *handle,
-
                                           curl_ssls_export_cb *export_fn,
-
                                           void *userptr);
-

-

#ifdef  __cplusplus
} /* end of extern "C" */
#endif
modified external/curl/include/curl/curlver.h
@@ -32,13 +32,13 @@

/* This is the version number of the libcurl package from which this header
   file origins: */
-
#define LIBCURL_VERSION "8.12.0"
+
#define LIBCURL_VERSION "8.11.1"

/* The numeric version number is also available "in parts" by using these
   defines: */
#define LIBCURL_VERSION_MAJOR 8
-
#define LIBCURL_VERSION_MINOR 12
-
#define LIBCURL_VERSION_PATCH 0
+
#define LIBCURL_VERSION_MINOR 11
+
#define LIBCURL_VERSION_PATCH 1

/* This is the numeric version of the libcurl version number, meant for easier
   parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will
@@ -59,7 +59,7 @@
   CURL_VERSION_BITS() macro since curl's own configure script greps for it
   and needs it to contain the full number.
*/
-
#define LIBCURL_VERSION_NUM 0x080c00
+
#define LIBCURL_VERSION_NUM 0x080b01

/*
 * This is the date and time when the full source package was created. The
@@ -70,7 +70,7 @@
 *
 * "2007-11-23"
 */
-
#define LIBCURL_TIMESTAMP "2025-02-05"
+
#define LIBCURL_TIMESTAMP "2024-12-11"

#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z))
#define CURL_AT_LEAST_VERSION(x,y,z) \
modified external/curl/include/curl/easy.h
@@ -78,7 +78,7 @@ CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl);
 *
 * DESCRIPTION
 *
-
 * Re-initializes a curl handle to the default values. This puts back the
+
 * Re-initializes a CURL handle to the default values. This puts back the
 * handle to the same state as it was in when it was just created.
 *
 * It does keep: live connections, the Session ID cache, the DNS cache and the
modified external/curl/include/curl/system.h
@@ -52,24 +52,62 @@
 *
 */

-
#if defined(__DJGPP__)
-
#  define CURL_TYPEOF_CURL_OFF_T     long long
-
#  define CURL_FORMAT_CURL_OFF_T     "lld"
-
#  define CURL_FORMAT_CURL_OFF_TU    "llu"
-
#  define CURL_SUFFIX_CURL_OFF_T     LL
-
#  define CURL_SUFFIX_CURL_OFF_TU    ULL
+
#if defined(__DJGPP__) || defined(__GO32__)
+
#  if defined(__DJGPP__) && (__DJGPP__ > 1)
+
#    define CURL_TYPEOF_CURL_OFF_T     long long
+
#    define CURL_FORMAT_CURL_OFF_T     "lld"
+
#    define CURL_FORMAT_CURL_OFF_TU    "llu"
+
#    define CURL_SUFFIX_CURL_OFF_T     LL
+
#    define CURL_SUFFIX_CURL_OFF_TU    ULL
+
#  else
+
#    define CURL_TYPEOF_CURL_OFF_T     long
+
#    define CURL_FORMAT_CURL_OFF_T     "ld"
+
#    define CURL_FORMAT_CURL_OFF_TU    "lu"
+
#    define CURL_SUFFIX_CURL_OFF_T     L
+
#    define CURL_SUFFIX_CURL_OFF_TU    UL
+
#  endif
+
#  define CURL_TYPEOF_CURL_SOCKLEN_T int
+

+
#elif defined(__SALFORDC__)
+
#  define CURL_TYPEOF_CURL_OFF_T     long
+
#  define CURL_FORMAT_CURL_OFF_T     "ld"
+
#  define CURL_FORMAT_CURL_OFF_TU    "lu"
+
#  define CURL_SUFFIX_CURL_OFF_T     L
+
#  define CURL_SUFFIX_CURL_OFF_TU    UL
#  define CURL_TYPEOF_CURL_SOCKLEN_T int

#elif defined(__BORLANDC__)
-
#  define CURL_TYPEOF_CURL_OFF_T     __int64
-
#  define CURL_FORMAT_CURL_OFF_T     "I64d"
-
#  define CURL_FORMAT_CURL_OFF_TU    "I64u"
-
#  define CURL_SUFFIX_CURL_OFF_T     i64
-
#  define CURL_SUFFIX_CURL_OFF_TU    ui64
+
#  if (__BORLANDC__ < 0x520)
+
#    define CURL_TYPEOF_CURL_OFF_T     long
+
#    define CURL_FORMAT_CURL_OFF_T     "ld"
+
#    define CURL_FORMAT_CURL_OFF_TU    "lu"
+
#    define CURL_SUFFIX_CURL_OFF_T     L
+
#    define CURL_SUFFIX_CURL_OFF_TU    UL
+
#  else
+
#    define CURL_TYPEOF_CURL_OFF_T     __int64
+
#    define CURL_FORMAT_CURL_OFF_T     "I64d"
+
#    define CURL_FORMAT_CURL_OFF_TU    "I64u"
+
#    define CURL_SUFFIX_CURL_OFF_T     i64
+
#    define CURL_SUFFIX_CURL_OFF_TU    ui64
+
#  endif
+
#  define CURL_TYPEOF_CURL_SOCKLEN_T int
+

+
#elif defined(__TURBOC__)
+
#  define CURL_TYPEOF_CURL_OFF_T     long
+
#  define CURL_FORMAT_CURL_OFF_T     "ld"
+
#  define CURL_FORMAT_CURL_OFF_TU    "lu"
+
#  define CURL_SUFFIX_CURL_OFF_T     L
+
#  define CURL_SUFFIX_CURL_OFF_TU    UL
#  define CURL_TYPEOF_CURL_SOCKLEN_T int

#elif defined(__POCC__)
-
#  if defined(_MSC_VER)
+
#  if (__POCC__ < 280)
+
#    define CURL_TYPEOF_CURL_OFF_T     long
+
#    define CURL_FORMAT_CURL_OFF_T     "ld"
+
#    define CURL_FORMAT_CURL_OFF_TU    "lu"
+
#    define CURL_SUFFIX_CURL_OFF_T     L
+
#    define CURL_SUFFIX_CURL_OFF_TU    UL
+
#  elif defined(_MSC_VER)
#    define CURL_TYPEOF_CURL_OFF_T     __int64
#    define CURL_FORMAT_CURL_OFF_T     "I64d"
#    define CURL_FORMAT_CURL_OFF_TU    "I64u"
@@ -121,21 +159,15 @@
#  define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int

#elif defined(__TANDEM)
-
#  if !defined(__LP64)
-
#    define CURL_TYPEOF_CURL_OFF_T     long long
-
#    define CURL_FORMAT_CURL_OFF_T     "lld"
-
#    define CURL_FORMAT_CURL_OFF_TU    "llu"
-
#    define CURL_SUFFIX_CURL_OFF_T     LL
-
#    define CURL_SUFFIX_CURL_OFF_TU    ULL
-
#    define CURL_TYPEOF_CURL_SOCKLEN_T int
-
#  else
-
#    define CURL_TYPEOF_CURL_OFF_T     long
-
#    define CURL_FORMAT_CURL_OFF_T     "ld"
-
#    define CURL_FORMAT_CURL_OFF_TU    "lu"
-
#    define CURL_SUFFIX_CURL_OFF_T     L
-
#    define CURL_SUFFIX_CURL_OFF_TU    UL
-
#    define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
-
#  endif
+
# if ! defined(__LP64)
+
   /* Required for 32-bit NonStop builds only. */
+
#  define CURL_TYPEOF_CURL_OFF_T     long long
+
#  define CURL_FORMAT_CURL_OFF_T     "lld"
+
#  define CURL_FORMAT_CURL_OFF_TU    "llu"
+
#  define CURL_SUFFIX_CURL_OFF_T     LL
+
#  define CURL_SUFFIX_CURL_OFF_TU    ULL
+
#  define CURL_TYPEOF_CURL_SOCKLEN_T int
+
# endif

#elif defined(_WIN32_WCE)
#  define CURL_TYPEOF_CURL_OFF_T     __int64
@@ -188,7 +220,13 @@
#    define CURL_FORMAT_CURL_OFF_TU    "llu"
#    define CURL_SUFFIX_CURL_OFF_T     LL
#    define CURL_SUFFIX_CURL_OFF_TU    ULL
-
#  else /* _LP64 and default */
+
#  elif defined(_LP64)
+
#    define CURL_TYPEOF_CURL_OFF_T     long
+
#    define CURL_FORMAT_CURL_OFF_T     "ld"
+
#    define CURL_FORMAT_CURL_OFF_TU    "lu"
+
#    define CURL_SUFFIX_CURL_OFF_T     L
+
#    define CURL_SUFFIX_CURL_OFF_TU    UL
+
#  else
#    define CURL_TYPEOF_CURL_OFF_T     long
#    define CURL_FORMAT_CURL_OFF_T     "ld"
#    define CURL_FORMAT_CURL_OFF_TU    "lu"
@@ -201,13 +239,22 @@

#elif defined(__370__)
#  if defined(__IBMC__) || defined(__IBMCPP__)
+
#    if defined(_ILP32)
+
#    elif defined(_LP64)
+
#    endif
#    if defined(_LONG_LONG)
#      define CURL_TYPEOF_CURL_OFF_T     long long
#      define CURL_FORMAT_CURL_OFF_T     "lld"
#      define CURL_FORMAT_CURL_OFF_TU    "llu"
#      define CURL_SUFFIX_CURL_OFF_T     LL
#      define CURL_SUFFIX_CURL_OFF_TU    ULL
-
#    else /* _LP64 and default */
+
#    elif defined(_LP64)
+
#      define CURL_TYPEOF_CURL_OFF_T     long
+
#      define CURL_FORMAT_CURL_OFF_T     "ld"
+
#      define CURL_FORMAT_CURL_OFF_TU    "lu"
+
#      define CURL_SUFFIX_CURL_OFF_T     L
+
#      define CURL_SUFFIX_CURL_OFF_TU    UL
+
#    else
#      define CURL_TYPEOF_CURL_OFF_T     long
#      define CURL_FORMAT_CURL_OFF_T     "ld"
#      define CURL_FORMAT_CURL_OFF_TU    "lu"
@@ -302,15 +349,24 @@
#elif defined(_MSC_VER)
#  if (_MSC_VER >= 1800)
#    include <inttypes.h>
+
#    define CURL_TYPEOF_CURL_OFF_T     __int64
#    define CURL_FORMAT_CURL_OFF_T     PRId64
#    define CURL_FORMAT_CURL_OFF_TU    PRIu64
-
#  else
+
#    define CURL_SUFFIX_CURL_OFF_T     i64
+
#    define CURL_SUFFIX_CURL_OFF_TU    ui64
+
#  elif (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
+
#    define CURL_TYPEOF_CURL_OFF_T     __int64
#    define CURL_FORMAT_CURL_OFF_T     "I64d"
#    define CURL_FORMAT_CURL_OFF_TU    "I64u"
+
#    define CURL_SUFFIX_CURL_OFF_T     i64
+
#    define CURL_SUFFIX_CURL_OFF_TU    ui64
+
#  else
+
#    define CURL_TYPEOF_CURL_OFF_T     long
+
#    define CURL_FORMAT_CURL_OFF_T     "ld"
+
#    define CURL_FORMAT_CURL_OFF_TU    "lu"
+
#    define CURL_SUFFIX_CURL_OFF_T     L
+
#    define CURL_SUFFIX_CURL_OFF_TU    UL
#  endif
-
#  define CURL_TYPEOF_CURL_OFF_T     __int64
-
#  define CURL_SUFFIX_CURL_OFF_T     i64
-
#  define CURL_SUFFIX_CURL_OFF_TU    ui64
#  define CURL_TYPEOF_CURL_SOCKLEN_T int

/* ===================================== */
@@ -347,12 +403,12 @@

#else
/* generic "safe guess" on old 32-bit style */
-
#  define CURL_TYPEOF_CURL_OFF_T     long
-
#  define CURL_FORMAT_CURL_OFF_T     "ld"
-
#  define CURL_FORMAT_CURL_OFF_TU    "lu"
-
#  define CURL_SUFFIX_CURL_OFF_T     L
-
#  define CURL_SUFFIX_CURL_OFF_TU    UL
-
#  define CURL_TYPEOF_CURL_SOCKLEN_T int
+
# define CURL_TYPEOF_CURL_OFF_T     long
+
# define CURL_FORMAT_CURL_OFF_T     "ld"
+
# define CURL_FORMAT_CURL_OFF_TU    "lu"
+
# define CURL_SUFFIX_CURL_OFF_T     L
+
# define CURL_SUFFIX_CURL_OFF_TU    UL
+
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#endif

#ifdef _AIX
@@ -406,7 +462,7 @@

#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
  defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
-
  defined(__POCC__) || defined(__HIGHC__) || \
+
  defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
  defined(__ILEC400__)
  /* This compiler is believed to have an ISO compatible preprocessor */
#define CURL_ISOCPP
modified external/curl/lib/.checksrc
@@ -1,5 +1,2 @@
-
banfunc strerror
-
banfunc strncpy
-
banfunc sscanf
-
banfunc snprintf
-
banfunc vsnprint
+
enable STRERROR
+
enable STRNCPY
modified external/curl/lib/CMakeLists.txt
@@ -28,7 +28,7 @@ add_definitions("-DBUILDING_LIBCURL")
configure_file("curl_config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/curl_config.h")

# Get 'CSOURCES', 'HHEADERS' variables
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

# DllMain is added later for DLL builds only.
@@ -105,7 +105,9 @@ if(SHARE_LIB_OBJECT)
    set_property(TARGET ${LIB_OBJECT} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS")
  endif()
  if(CURL_HAS_LTO)
-
    set_target_properties(${LIB_OBJECT} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
+
    set_target_properties(${LIB_OBJECT} PROPERTIES
+
      INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE
+
      INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE)
  endif()

  target_include_directories(${LIB_OBJECT} INTERFACE
@@ -136,7 +138,9 @@ if(BUILD_STATIC_LIBS)
    set_property(TARGET ${LIB_STATIC} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS")
  endif()
  if(CURL_HAS_LTO)
-
    set_target_properties(${LIB_STATIC} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
+
    set_target_properties(${LIB_STATIC} PROPERTIES
+
      INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE
+
      INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE)
  endif()

  target_include_directories(${LIB_STATIC} INTERFACE
@@ -173,7 +177,9 @@ if(BUILD_SHARED_LIBS)
    set_property(TARGET ${LIB_SHARED} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS")
  endif()
  if(CURL_HAS_LTO)
-
    set_target_properties(${LIB_SHARED} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
+
    set_target_properties(${LIB_SHARED} PROPERTIES
+
      INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE
+
      INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE)
  endif()

  target_include_directories(${LIB_SHARED} INTERFACE
@@ -202,7 +208,7 @@ if(BUILD_SHARED_LIBS)

  if(CURL_LIBCURL_SOVERSION OR CURL_LIBCURL_VERSIONED_SYMBOLS)
    # Get 'VERSIONCHANGE', 'VERSIONADD', 'VERSIONDEL', 'VERSIONINFO' variables
-
    curl_transform_makefile_inc("Makefile.soname" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.soname.cmake")
+
    transform_makefile_inc("Makefile.soname" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.soname.cmake")
    include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.soname.cmake")

    math(EXPR _cmakesoname "${VERSIONCHANGE} - ${VERSIONDEL}")
modified external/curl/lib/Makefile.am
@@ -28,9 +28,11 @@ CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
CHECKSRC_DIST = .checksrc vauth/.checksrc vquic/.checksrc vssh/.checksrc \
 vtls/.checksrc

-
EXTRA_DIST = config-mac.h config-os400.h config-plan9.h config-riscos.h \
-
 config-win32.h curl_config.h.in libcurl.rc libcurl.def                 \
-
 $(CMAKE_DIST) Makefile.soname optiontable.pl $(CHECKSRC_DIST)
+
EXTRA_DIST = Makefile.mk config-win32.h config-win32ce.h config-plan9.h \
+
 config-riscos.h config-mac.h curl_config.h.in config-dos.h libcurl.rc  \
+
 config-amigaos.h config-win32ce.h config-os400.h setup-os400.h         \
+
 $(CMAKE_DIST) setup-win32.h Makefile.soname optiontable.pl libcurl.def \
+
 $(CHECKSRC_DIST)

lib_LTLIBRARIES = libcurl.la

@@ -143,10 +145,9 @@ CS_1 =
CS_ = $(CS_0)

checksrc:
-
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir)         \
-
	  -W$(srcdir)/libcurl_unity.c -W$(srcdir)/curl_config.h $(srcdir)/*.[ch] \
-
	  $(srcdir)/vauth/*.[ch] $(srcdir)/vtls/*.[ch] $(srcdir)/vquic/*.[ch]    \
-
	  $(srcdir)/vssh/*.[ch])
+
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir)    \
+
	-W$(srcdir)/curl_config.h $(srcdir)/*.[ch] $(srcdir)/vauth/*.[ch]   \
+
	$(srcdir)/vtls/*.[ch] $(srcdir)/vquic/*.[ch] $(srcdir)/vssh/*.[ch])

if DEBUGBUILD
# for debug builds, we scan the sources on all regular make invokes
@@ -154,15 +155,12 @@ all-local: checksrc
endif

# disable the tests that are mostly causing false positives
-
TIDYFLAGS := -checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling -quiet
-
if CURL_WERROR
-
TIDYFLAGS += --warnings-as-errors=*
-
endif
+
TIDYFLAGS=-checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-valist.Uninitialized,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference -quiet

-
TIDY := clang-tidy
+
TIDY:=clang-tidy

tidy:
-
	$(TIDY) $(CSOURCES) $(TIDYFLAGS) $(CURL_CLANG_TIDYFLAGS) -- $(AM_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H
+
	$(TIDY) $(CSOURCES) $(TIDYFLAGS) -- $(AM_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H

optiontable:
	perl optiontable.pl < $(top_srcdir)/include/curl/curl.h > easyoptions.c
modified external/curl/lib/Makefile.in
@@ -149,7 +149,6 @@ host_triplet = @host@
@HAVE_WINDRES_TRUE@@USE_CPPFLAG_CURL_STATICLIB_FALSE@am__append_8 = $(LIB_RCFILES)
@DOING_CURL_SYMBOL_HIDING_TRUE@am__append_9 = -DCURL_HIDDEN_SYMBOLS
@DOING_CURL_SYMBOL_HIDING_TRUE@am__append_10 = $(CFLAG_CURL_SYMBOL_HIDING)
-
@CURL_WERROR_TRUE@am__append_11 = --warnings-as-errors=*
subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-amissl.m4 \
@@ -215,7 +214,7 @@ am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
libcurl_la_LIBADD =
am__libcurl_la_SOURCES_DIST = altsvc.c amigaos.c asyn-ares.c \
-
	asyn-thread.c base64.c bufq.c bufref.c cf-h1-proxy.c \
+
	asyn-thread.c base64.c bufq.c bufref.c c-hyper.c cf-h1-proxy.c \
	cf-h2-proxy.c cf-haproxy.c cf-https-connect.c cf-socket.c \
	cfilters.c conncache.c connect.c content_encoding.c cookie.c \
	curl_addrinfo.c curl_des.c curl_endian.c curl_fnmatch.c \
@@ -228,17 +227,17 @@ am__libcurl_la_SOURCES_DIST = altsvc.c amigaos.c asyn-ares.c \
	getenv.c getinfo.c gopher.c hash.c headers.c hmac.c hostasyn.c \
	hostip.c hostip4.c hostip6.c hostsyn.c hsts.c http.c http1.c \
	http2.c http_aws_sigv4.c http_chunks.c http_digest.c \
-
	http_negotiate.c http_ntlm.c http_proxy.c httpsrr.c idn.c \
-
	if2ip.c imap.c inet_ntop.c inet_pton.c krb5.c ldap.c llist.c \
-
	macos.c md4.c md5.c memdebug.c mime.c mprintf.c mqtt.c multi.c \
-
	netrc.c nonblock.c noproxy.c openldap.c parsedate.c pingpong.c \
-
	pop3.c progress.c psl.c rand.c rename.c request.c rtsp.c \
-
	select.c sendf.c setopt.c sha256.c share.c slist.c smb.c \
-
	smtp.c socketpair.c socks.c socks_gssapi.c socks_sspi.c \
-
	speedcheck.c splay.c strcase.c strdup.c strerror.c strparse.c \
-
	strtok.c strtoofft.c system_win32.c telnet.c tftp.c timediff.c \
-
	timeval.c transfer.c url.c urlapi.c version.c version_win32.c \
-
	warnless.c ws.c vauth/cleartext.c vauth/cram.c vauth/digest.c \
+
	http_negotiate.c http_ntlm.c http_proxy.c idn.c if2ip.c imap.c \
+
	inet_ntop.c inet_pton.c krb5.c ldap.c llist.c macos.c md4.c \
+
	md5.c memdebug.c mime.c mprintf.c mqtt.c multi.c netrc.c \
+
	nonblock.c noproxy.c openldap.c parsedate.c pingpong.c pop3.c \
+
	progress.c psl.c rand.c rename.c request.c rtsp.c select.c \
+
	sendf.c setopt.c sha256.c share.c slist.c smb.c smtp.c \
+
	socketpair.c socks.c socks_gssapi.c socks_sspi.c speedcheck.c \
+
	splay.c strcase.c strdup.c strerror.c strtok.c strtoofft.c \
+
	system_win32.c telnet.c tftp.c timediff.c timeval.c transfer.c \
+
	url.c urlapi.c version.c version_win32.c warnless.c ws.c \
+
	vauth/cleartext.c vauth/cram.c vauth/digest.c \
	vauth/digest_sspi.c vauth/gsasl.c vauth/krb5_gssapi.c \
	vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c \
	vauth/oauth2.c vauth/spnego_gssapi.c vauth/spnego_sspi.c \
@@ -246,12 +245,11 @@ am__libcurl_la_SOURCES_DIST = altsvc.c amigaos.c asyn-ares.c \
	vtls/hostcheck.c vtls/keylog.c vtls/mbedtls.c \
	vtls/mbedtls_threadlock.c vtls/openssl.c vtls/rustls.c \
	vtls/schannel.c vtls/schannel_verify.c vtls/sectransp.c \
-
	vtls/vtls.c vtls/vtls_scache.c vtls/vtls_spack.c \
-
	vtls/wolfssl.c vtls/x509asn1.c vquic/curl_msh3.c \
+
	vtls/vtls.c vtls/wolfssl.c vtls/x509asn1.c vquic/curl_msh3.c \
	vquic/curl_ngtcp2.c vquic/curl_osslq.c vquic/curl_quiche.c \
	vquic/vquic.c vquic/vquic-tls.c vssh/libssh.c vssh/libssh2.c \
	vssh/curl_path.c vssh/wolfssh.c altsvc.h amigaos.h \
-
	arpa_telnet.h asyn.h bufq.h bufref.h cf-h1-proxy.h \
+
	arpa_telnet.h asyn.h bufq.h bufref.h c-hyper.h cf-h1-proxy.h \
	cf-h2-proxy.h cf-haproxy.h cf-https-connect.h cf-socket.h \
	cfilters.h conncache.h connect.h content_encoding.h cookie.h \
	curl_addrinfo.h curl_base64.h curl_ctype.h curl_des.h \
@@ -266,48 +264,47 @@ am__libcurl_la_SOURCES_DIST = altsvc.c amigaos.c asyn-ares.c \
	fopen.h formdata.h ftp.h ftplistparser.h functypes.h getinfo.h \
	gopher.h hash.h headers.h hostip.h hsts.h http.h http1.h \
	http2.h http_aws_sigv4.h http_chunks.h http_digest.h \
-
	http_negotiate.h http_ntlm.h http_proxy.h httpsrr.h idn.h \
-
	if2ip.h imap.h inet_ntop.h inet_pton.h llist.h macos.h \
-
	memdebug.h mime.h mqtt.h multihandle.h multiif.h netrc.h \
-
	nonblock.h noproxy.h parsedate.h pingpong.h pop3.h progress.h \
-
	psl.h rand.h rename.h request.h rtsp.h select.h sendf.h \
-
	setopt.h setup-os400.h setup-vms.h setup-win32.h share.h \
+
	http_negotiate.h http_ntlm.h http_proxy.h idn.h if2ip.h imap.h \
+
	inet_ntop.h inet_pton.h llist.h macos.h memdebug.h mime.h \
+
	mqtt.h multihandle.h multiif.h netrc.h nonblock.h noproxy.h \
+
	parsedate.h pingpong.h pop3.h progress.h psl.h rand.h rename.h \
+
	request.h rtsp.h select.h sendf.h setopt.h setup-vms.h share.h \
	sigpipe.h slist.h smb.h smtp.h sockaddr.h socketpair.h socks.h \
-
	speedcheck.h splay.h strcase.h strdup.h strerror.h strparse.h \
-
	strtok.h strtoofft.h system_win32.h telnet.h tftp.h timediff.h \
+
	speedcheck.h splay.h strcase.h strdup.h strerror.h strtok.h \
+
	strtoofft.h system_win32.h telnet.h tftp.h timediff.h \
	timeval.h transfer.h url.h urlapi-int.h urldata.h \
	version_win32.h warnless.h ws.h vauth/digest.h vauth/ntlm.h \
	vauth/vauth.h vtls/bearssl.h vtls/cipher_suite.h vtls/gtls.h \
	vtls/hostcheck.h vtls/keylog.h vtls/mbedtls.h \
	vtls/mbedtls_threadlock.h vtls/openssl.h vtls/rustls.h \
	vtls/schannel.h vtls/schannel_int.h vtls/sectransp.h \
-
	vtls/vtls.h vtls/vtls_int.h vtls/vtls_scache.h \
-
	vtls/vtls_spack.h vtls/wolfssl.h vtls/x509asn1.h \
+
	vtls/vtls.h vtls/vtls_int.h vtls/wolfssl.h vtls/x509asn1.h \
	vquic/curl_msh3.h vquic/curl_ngtcp2.h vquic/curl_osslq.h \
	vquic/curl_quiche.h vquic/vquic.h vquic/vquic_int.h \
	vquic/vquic-tls.h vssh/curl_path.h vssh/ssh.h libcurl.rc
am__objects_1 = libcurl_la-altsvc.lo libcurl_la-amigaos.lo \
	libcurl_la-asyn-ares.lo libcurl_la-asyn-thread.lo \
	libcurl_la-base64.lo libcurl_la-bufq.lo libcurl_la-bufref.lo \
-
	libcurl_la-cf-h1-proxy.lo libcurl_la-cf-h2-proxy.lo \
-
	libcurl_la-cf-haproxy.lo libcurl_la-cf-https-connect.lo \
-
	libcurl_la-cf-socket.lo libcurl_la-cfilters.lo \
-
	libcurl_la-conncache.lo libcurl_la-connect.lo \
-
	libcurl_la-content_encoding.lo libcurl_la-cookie.lo \
-
	libcurl_la-curl_addrinfo.lo libcurl_la-curl_des.lo \
-
	libcurl_la-curl_endian.lo libcurl_la-curl_fnmatch.lo \
-
	libcurl_la-curl_get_line.lo libcurl_la-curl_gethostname.lo \
-
	libcurl_la-curl_gssapi.lo libcurl_la-curl_memrchr.lo \
-
	libcurl_la-curl_multibyte.lo libcurl_la-curl_ntlm_core.lo \
-
	libcurl_la-curl_range.lo libcurl_la-curl_rtmp.lo \
-
	libcurl_la-curl_sasl.lo libcurl_la-curl_sha512_256.lo \
-
	libcurl_la-curl_sspi.lo libcurl_la-curl_threads.lo \
-
	libcurl_la-curl_trc.lo libcurl_la-cw-out.lo libcurl_la-dict.lo \
-
	libcurl_la-dllmain.lo libcurl_la-doh.lo libcurl_la-dynbuf.lo \
-
	libcurl_la-dynhds.lo libcurl_la-easy.lo \
-
	libcurl_la-easygetopt.lo libcurl_la-easyoptions.lo \
-
	libcurl_la-escape.lo libcurl_la-file.lo libcurl_la-fileinfo.lo \
-
	libcurl_la-fopen.lo libcurl_la-formdata.lo libcurl_la-ftp.lo \
+
	libcurl_la-c-hyper.lo libcurl_la-cf-h1-proxy.lo \
+
	libcurl_la-cf-h2-proxy.lo libcurl_la-cf-haproxy.lo \
+
	libcurl_la-cf-https-connect.lo libcurl_la-cf-socket.lo \
+
	libcurl_la-cfilters.lo libcurl_la-conncache.lo \
+
	libcurl_la-connect.lo libcurl_la-content_encoding.lo \
+
	libcurl_la-cookie.lo libcurl_la-curl_addrinfo.lo \
+
	libcurl_la-curl_des.lo libcurl_la-curl_endian.lo \
+
	libcurl_la-curl_fnmatch.lo libcurl_la-curl_get_line.lo \
+
	libcurl_la-curl_gethostname.lo libcurl_la-curl_gssapi.lo \
+
	libcurl_la-curl_memrchr.lo libcurl_la-curl_multibyte.lo \
+
	libcurl_la-curl_ntlm_core.lo libcurl_la-curl_range.lo \
+
	libcurl_la-curl_rtmp.lo libcurl_la-curl_sasl.lo \
+
	libcurl_la-curl_sha512_256.lo libcurl_la-curl_sspi.lo \
+
	libcurl_la-curl_threads.lo libcurl_la-curl_trc.lo \
+
	libcurl_la-cw-out.lo libcurl_la-dict.lo libcurl_la-dllmain.lo \
+
	libcurl_la-doh.lo libcurl_la-dynbuf.lo libcurl_la-dynhds.lo \
+
	libcurl_la-easy.lo libcurl_la-easygetopt.lo \
+
	libcurl_la-easyoptions.lo libcurl_la-escape.lo \
+
	libcurl_la-file.lo libcurl_la-fileinfo.lo libcurl_la-fopen.lo \
+
	libcurl_la-formdata.lo libcurl_la-ftp.lo \
	libcurl_la-ftplistparser.lo libcurl_la-getenv.lo \
	libcurl_la-getinfo.lo libcurl_la-gopher.lo libcurl_la-hash.lo \
	libcurl_la-headers.lo libcurl_la-hmac.lo \
@@ -318,11 +315,11 @@ am__objects_1 = libcurl_la-altsvc.lo libcurl_la-amigaos.lo \
	libcurl_la-http_aws_sigv4.lo libcurl_la-http_chunks.lo \
	libcurl_la-http_digest.lo libcurl_la-http_negotiate.lo \
	libcurl_la-http_ntlm.lo libcurl_la-http_proxy.lo \
-
	libcurl_la-httpsrr.lo libcurl_la-idn.lo libcurl_la-if2ip.lo \
-
	libcurl_la-imap.lo libcurl_la-inet_ntop.lo \
-
	libcurl_la-inet_pton.lo libcurl_la-krb5.lo libcurl_la-ldap.lo \
-
	libcurl_la-llist.lo libcurl_la-macos.lo libcurl_la-md4.lo \
-
	libcurl_la-md5.lo libcurl_la-memdebug.lo libcurl_la-mime.lo \
+
	libcurl_la-idn.lo libcurl_la-if2ip.lo libcurl_la-imap.lo \
+
	libcurl_la-inet_ntop.lo libcurl_la-inet_pton.lo \
+
	libcurl_la-krb5.lo libcurl_la-ldap.lo libcurl_la-llist.lo \
+
	libcurl_la-macos.lo libcurl_la-md4.lo libcurl_la-md5.lo \
+
	libcurl_la-memdebug.lo libcurl_la-mime.lo \
	libcurl_la-mprintf.lo libcurl_la-mqtt.lo libcurl_la-multi.lo \
	libcurl_la-netrc.lo libcurl_la-nonblock.lo \
	libcurl_la-noproxy.lo libcurl_la-openldap.lo \
@@ -336,10 +333,9 @@ am__objects_1 = libcurl_la-altsvc.lo libcurl_la-amigaos.lo \
	libcurl_la-socks_gssapi.lo libcurl_la-socks_sspi.lo \
	libcurl_la-speedcheck.lo libcurl_la-splay.lo \
	libcurl_la-strcase.lo libcurl_la-strdup.lo \
-
	libcurl_la-strerror.lo libcurl_la-strparse.lo \
-
	libcurl_la-strtok.lo libcurl_la-strtoofft.lo \
-
	libcurl_la-system_win32.lo libcurl_la-telnet.lo \
-
	libcurl_la-tftp.lo libcurl_la-timediff.lo \
+
	libcurl_la-strerror.lo libcurl_la-strtok.lo \
+
	libcurl_la-strtoofft.lo libcurl_la-system_win32.lo \
+
	libcurl_la-telnet.lo libcurl_la-tftp.lo libcurl_la-timediff.lo \
	libcurl_la-timeval.lo libcurl_la-transfer.lo libcurl_la-url.lo \
	libcurl_la-urlapi.lo libcurl_la-version.lo \
	libcurl_la-version_win32.lo libcurl_la-warnless.lo \
@@ -360,7 +356,6 @@ am__objects_3 = vtls/libcurl_la-bearssl.lo \
	vtls/libcurl_la-openssl.lo vtls/libcurl_la-rustls.lo \
	vtls/libcurl_la-schannel.lo vtls/libcurl_la-schannel_verify.lo \
	vtls/libcurl_la-sectransp.lo vtls/libcurl_la-vtls.lo \
-
	vtls/libcurl_la-vtls_scache.lo vtls/libcurl_la-vtls_spack.lo \
	vtls/libcurl_la-wolfssl.lo vtls/libcurl_la-x509asn1.lo
am__objects_4 = vquic/libcurl_la-curl_msh3.lo \
	vquic/libcurl_la-curl_ngtcp2.lo vquic/libcurl_la-curl_osslq.lo \
@@ -398,7 +393,7 @@ libcurl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(CFLAGS) $(libcurl_la_LDFLAGS) $(LDFLAGS) -o $@
libcurlu_la_LIBADD =
am__libcurlu_la_SOURCES_DIST = altsvc.c amigaos.c asyn-ares.c \
-
	asyn-thread.c base64.c bufq.c bufref.c cf-h1-proxy.c \
+
	asyn-thread.c base64.c bufq.c bufref.c c-hyper.c cf-h1-proxy.c \
	cf-h2-proxy.c cf-haproxy.c cf-https-connect.c cf-socket.c \
	cfilters.c conncache.c connect.c content_encoding.c cookie.c \
	curl_addrinfo.c curl_des.c curl_endian.c curl_fnmatch.c \
@@ -411,17 +406,17 @@ am__libcurlu_la_SOURCES_DIST = altsvc.c amigaos.c asyn-ares.c \
	getenv.c getinfo.c gopher.c hash.c headers.c hmac.c hostasyn.c \
	hostip.c hostip4.c hostip6.c hostsyn.c hsts.c http.c http1.c \
	http2.c http_aws_sigv4.c http_chunks.c http_digest.c \
-
	http_negotiate.c http_ntlm.c http_proxy.c httpsrr.c idn.c \
-
	if2ip.c imap.c inet_ntop.c inet_pton.c krb5.c ldap.c llist.c \
-
	macos.c md4.c md5.c memdebug.c mime.c mprintf.c mqtt.c multi.c \
-
	netrc.c nonblock.c noproxy.c openldap.c parsedate.c pingpong.c \
-
	pop3.c progress.c psl.c rand.c rename.c request.c rtsp.c \
-
	select.c sendf.c setopt.c sha256.c share.c slist.c smb.c \
-
	smtp.c socketpair.c socks.c socks_gssapi.c socks_sspi.c \
-
	speedcheck.c splay.c strcase.c strdup.c strerror.c strparse.c \
-
	strtok.c strtoofft.c system_win32.c telnet.c tftp.c timediff.c \
-
	timeval.c transfer.c url.c urlapi.c version.c version_win32.c \
-
	warnless.c ws.c vauth/cleartext.c vauth/cram.c vauth/digest.c \
+
	http_negotiate.c http_ntlm.c http_proxy.c idn.c if2ip.c imap.c \
+
	inet_ntop.c inet_pton.c krb5.c ldap.c llist.c macos.c md4.c \
+
	md5.c memdebug.c mime.c mprintf.c mqtt.c multi.c netrc.c \
+
	nonblock.c noproxy.c openldap.c parsedate.c pingpong.c pop3.c \
+
	progress.c psl.c rand.c rename.c request.c rtsp.c select.c \
+
	sendf.c setopt.c sha256.c share.c slist.c smb.c smtp.c \
+
	socketpair.c socks.c socks_gssapi.c socks_sspi.c speedcheck.c \
+
	splay.c strcase.c strdup.c strerror.c strtok.c strtoofft.c \
+
	system_win32.c telnet.c tftp.c timediff.c timeval.c transfer.c \
+
	url.c urlapi.c version.c version_win32.c warnless.c ws.c \
+
	vauth/cleartext.c vauth/cram.c vauth/digest.c \
	vauth/digest_sspi.c vauth/gsasl.c vauth/krb5_gssapi.c \
	vauth/krb5_sspi.c vauth/ntlm.c vauth/ntlm_sspi.c \
	vauth/oauth2.c vauth/spnego_gssapi.c vauth/spnego_sspi.c \
@@ -429,12 +424,11 @@ am__libcurlu_la_SOURCES_DIST = altsvc.c amigaos.c asyn-ares.c \
	vtls/hostcheck.c vtls/keylog.c vtls/mbedtls.c \
	vtls/mbedtls_threadlock.c vtls/openssl.c vtls/rustls.c \
	vtls/schannel.c vtls/schannel_verify.c vtls/sectransp.c \
-
	vtls/vtls.c vtls/vtls_scache.c vtls/vtls_spack.c \
-
	vtls/wolfssl.c vtls/x509asn1.c vquic/curl_msh3.c \
+
	vtls/vtls.c vtls/wolfssl.c vtls/x509asn1.c vquic/curl_msh3.c \
	vquic/curl_ngtcp2.c vquic/curl_osslq.c vquic/curl_quiche.c \
	vquic/vquic.c vquic/vquic-tls.c vssh/libssh.c vssh/libssh2.c \
	vssh/curl_path.c vssh/wolfssh.c altsvc.h amigaos.h \
-
	arpa_telnet.h asyn.h bufq.h bufref.h cf-h1-proxy.h \
+
	arpa_telnet.h asyn.h bufq.h bufref.h c-hyper.h cf-h1-proxy.h \
	cf-h2-proxy.h cf-haproxy.h cf-https-connect.h cf-socket.h \
	cfilters.h conncache.h connect.h content_encoding.h cookie.h \
	curl_addrinfo.h curl_base64.h curl_ctype.h curl_des.h \
@@ -449,45 +443,43 @@ am__libcurlu_la_SOURCES_DIST = altsvc.c amigaos.c asyn-ares.c \
	fopen.h formdata.h ftp.h ftplistparser.h functypes.h getinfo.h \
	gopher.h hash.h headers.h hostip.h hsts.h http.h http1.h \
	http2.h http_aws_sigv4.h http_chunks.h http_digest.h \
-
	http_negotiate.h http_ntlm.h http_proxy.h httpsrr.h idn.h \
-
	if2ip.h imap.h inet_ntop.h inet_pton.h llist.h macos.h \
-
	memdebug.h mime.h mqtt.h multihandle.h multiif.h netrc.h \
-
	nonblock.h noproxy.h parsedate.h pingpong.h pop3.h progress.h \
-
	psl.h rand.h rename.h request.h rtsp.h select.h sendf.h \
-
	setopt.h setup-os400.h setup-vms.h setup-win32.h share.h \
+
	http_negotiate.h http_ntlm.h http_proxy.h idn.h if2ip.h imap.h \
+
	inet_ntop.h inet_pton.h llist.h macos.h memdebug.h mime.h \
+
	mqtt.h multihandle.h multiif.h netrc.h nonblock.h noproxy.h \
+
	parsedate.h pingpong.h pop3.h progress.h psl.h rand.h rename.h \
+
	request.h rtsp.h select.h sendf.h setopt.h setup-vms.h share.h \
	sigpipe.h slist.h smb.h smtp.h sockaddr.h socketpair.h socks.h \
-
	speedcheck.h splay.h strcase.h strdup.h strerror.h strparse.h \
-
	strtok.h strtoofft.h system_win32.h telnet.h tftp.h timediff.h \
+
	speedcheck.h splay.h strcase.h strdup.h strerror.h strtok.h \
+
	strtoofft.h system_win32.h telnet.h tftp.h timediff.h \
	timeval.h transfer.h url.h urlapi-int.h urldata.h \
	version_win32.h warnless.h ws.h vauth/digest.h vauth/ntlm.h \
	vauth/vauth.h vtls/bearssl.h vtls/cipher_suite.h vtls/gtls.h \
	vtls/hostcheck.h vtls/keylog.h vtls/mbedtls.h \
	vtls/mbedtls_threadlock.h vtls/openssl.h vtls/rustls.h \
	vtls/schannel.h vtls/schannel_int.h vtls/sectransp.h \
-
	vtls/vtls.h vtls/vtls_int.h vtls/vtls_scache.h \
-
	vtls/vtls_spack.h vtls/wolfssl.h vtls/x509asn1.h \
+
	vtls/vtls.h vtls/vtls_int.h vtls/wolfssl.h vtls/x509asn1.h \
	vquic/curl_msh3.h vquic/curl_ngtcp2.h vquic/curl_osslq.h \
	vquic/curl_quiche.h vquic/vquic.h vquic/vquic_int.h \
	vquic/vquic-tls.h vssh/curl_path.h vssh/ssh.h
am__objects_13 = libcurlu_la-altsvc.lo libcurlu_la-amigaos.lo \
	libcurlu_la-asyn-ares.lo libcurlu_la-asyn-thread.lo \
	libcurlu_la-base64.lo libcurlu_la-bufq.lo \
-
	libcurlu_la-bufref.lo libcurlu_la-cf-h1-proxy.lo \
-
	libcurlu_la-cf-h2-proxy.lo libcurlu_la-cf-haproxy.lo \
-
	libcurlu_la-cf-https-connect.lo libcurlu_la-cf-socket.lo \
-
	libcurlu_la-cfilters.lo libcurlu_la-conncache.lo \
-
	libcurlu_la-connect.lo libcurlu_la-content_encoding.lo \
-
	libcurlu_la-cookie.lo libcurlu_la-curl_addrinfo.lo \
-
	libcurlu_la-curl_des.lo libcurlu_la-curl_endian.lo \
-
	libcurlu_la-curl_fnmatch.lo libcurlu_la-curl_get_line.lo \
-
	libcurlu_la-curl_gethostname.lo libcurlu_la-curl_gssapi.lo \
-
	libcurlu_la-curl_memrchr.lo libcurlu_la-curl_multibyte.lo \
-
	libcurlu_la-curl_ntlm_core.lo libcurlu_la-curl_range.lo \
-
	libcurlu_la-curl_rtmp.lo libcurlu_la-curl_sasl.lo \
-
	libcurlu_la-curl_sha512_256.lo libcurlu_la-curl_sspi.lo \
-
	libcurlu_la-curl_threads.lo libcurlu_la-curl_trc.lo \
-
	libcurlu_la-cw-out.lo libcurlu_la-dict.lo \
-
	libcurlu_la-dllmain.lo libcurlu_la-doh.lo \
+
	libcurlu_la-bufref.lo libcurlu_la-c-hyper.lo \
+
	libcurlu_la-cf-h1-proxy.lo libcurlu_la-cf-h2-proxy.lo \
+
	libcurlu_la-cf-haproxy.lo libcurlu_la-cf-https-connect.lo \
+
	libcurlu_la-cf-socket.lo libcurlu_la-cfilters.lo \
+
	libcurlu_la-conncache.lo libcurlu_la-connect.lo \
+
	libcurlu_la-content_encoding.lo libcurlu_la-cookie.lo \
+
	libcurlu_la-curl_addrinfo.lo libcurlu_la-curl_des.lo \
+
	libcurlu_la-curl_endian.lo libcurlu_la-curl_fnmatch.lo \
+
	libcurlu_la-curl_get_line.lo libcurlu_la-curl_gethostname.lo \
+
	libcurlu_la-curl_gssapi.lo libcurlu_la-curl_memrchr.lo \
+
	libcurlu_la-curl_multibyte.lo libcurlu_la-curl_ntlm_core.lo \
+
	libcurlu_la-curl_range.lo libcurlu_la-curl_rtmp.lo \
+
	libcurlu_la-curl_sasl.lo libcurlu_la-curl_sha512_256.lo \
+
	libcurlu_la-curl_sspi.lo libcurlu_la-curl_threads.lo \
+
	libcurlu_la-curl_trc.lo libcurlu_la-cw-out.lo \
+
	libcurlu_la-dict.lo libcurlu_la-dllmain.lo libcurlu_la-doh.lo \
	libcurlu_la-dynbuf.lo libcurlu_la-dynhds.lo \
	libcurlu_la-easy.lo libcurlu_la-easygetopt.lo \
	libcurlu_la-easyoptions.lo libcurlu_la-escape.lo \
@@ -504,12 +496,12 @@ am__objects_13 = libcurlu_la-altsvc.lo libcurlu_la-amigaos.lo \
	libcurlu_la-http_aws_sigv4.lo libcurlu_la-http_chunks.lo \
	libcurlu_la-http_digest.lo libcurlu_la-http_negotiate.lo \
	libcurlu_la-http_ntlm.lo libcurlu_la-http_proxy.lo \
-
	libcurlu_la-httpsrr.lo libcurlu_la-idn.lo libcurlu_la-if2ip.lo \
-
	libcurlu_la-imap.lo libcurlu_la-inet_ntop.lo \
-
	libcurlu_la-inet_pton.lo libcurlu_la-krb5.lo \
-
	libcurlu_la-ldap.lo libcurlu_la-llist.lo libcurlu_la-macos.lo \
-
	libcurlu_la-md4.lo libcurlu_la-md5.lo libcurlu_la-memdebug.lo \
-
	libcurlu_la-mime.lo libcurlu_la-mprintf.lo libcurlu_la-mqtt.lo \
+
	libcurlu_la-idn.lo libcurlu_la-if2ip.lo libcurlu_la-imap.lo \
+
	libcurlu_la-inet_ntop.lo libcurlu_la-inet_pton.lo \
+
	libcurlu_la-krb5.lo libcurlu_la-ldap.lo libcurlu_la-llist.lo \
+
	libcurlu_la-macos.lo libcurlu_la-md4.lo libcurlu_la-md5.lo \
+
	libcurlu_la-memdebug.lo libcurlu_la-mime.lo \
+
	libcurlu_la-mprintf.lo libcurlu_la-mqtt.lo \
	libcurlu_la-multi.lo libcurlu_la-netrc.lo \
	libcurlu_la-nonblock.lo libcurlu_la-noproxy.lo \
	libcurlu_la-openldap.lo libcurlu_la-parsedate.lo \
@@ -524,14 +516,13 @@ am__objects_13 = libcurlu_la-altsvc.lo libcurlu_la-amigaos.lo \
	libcurlu_la-socks_sspi.lo libcurlu_la-speedcheck.lo \
	libcurlu_la-splay.lo libcurlu_la-strcase.lo \
	libcurlu_la-strdup.lo libcurlu_la-strerror.lo \
-
	libcurlu_la-strparse.lo libcurlu_la-strtok.lo \
-
	libcurlu_la-strtoofft.lo libcurlu_la-system_win32.lo \
-
	libcurlu_la-telnet.lo libcurlu_la-tftp.lo \
-
	libcurlu_la-timediff.lo libcurlu_la-timeval.lo \
-
	libcurlu_la-transfer.lo libcurlu_la-url.lo \
-
	libcurlu_la-urlapi.lo libcurlu_la-version.lo \
-
	libcurlu_la-version_win32.lo libcurlu_la-warnless.lo \
-
	libcurlu_la-ws.lo
+
	libcurlu_la-strtok.lo libcurlu_la-strtoofft.lo \
+
	libcurlu_la-system_win32.lo libcurlu_la-telnet.lo \
+
	libcurlu_la-tftp.lo libcurlu_la-timediff.lo \
+
	libcurlu_la-timeval.lo libcurlu_la-transfer.lo \
+
	libcurlu_la-url.lo libcurlu_la-urlapi.lo \
+
	libcurlu_la-version.lo libcurlu_la-version_win32.lo \
+
	libcurlu_la-warnless.lo libcurlu_la-ws.lo
am__objects_14 = vauth/libcurlu_la-cleartext.lo \
	vauth/libcurlu_la-cram.lo vauth/libcurlu_la-digest.lo \
	vauth/libcurlu_la-digest_sspi.lo vauth/libcurlu_la-gsasl.lo \
@@ -549,7 +540,6 @@ am__objects_15 = vtls/libcurlu_la-bearssl.lo \
	vtls/libcurlu_la-schannel.lo \
	vtls/libcurlu_la-schannel_verify.lo \
	vtls/libcurlu_la-sectransp.lo vtls/libcurlu_la-vtls.lo \
-
	vtls/libcurlu_la-vtls_scache.lo vtls/libcurlu_la-vtls_spack.lo \
	vtls/libcurlu_la-wolfssl.lo vtls/libcurlu_la-x509asn1.lo
am__objects_16 = vquic/libcurlu_la-curl_msh3.lo \
	vquic/libcurlu_la-curl_ngtcp2.lo \
@@ -600,6 +590,7 @@ am__depfiles_remade = ./$(DEPDIR)/libcurl_la-altsvc.Plo \
	./$(DEPDIR)/libcurl_la-base64.Plo \
	./$(DEPDIR)/libcurl_la-bufq.Plo \
	./$(DEPDIR)/libcurl_la-bufref.Plo \
+
	./$(DEPDIR)/libcurl_la-c-hyper.Plo \
	./$(DEPDIR)/libcurl_la-cf-h1-proxy.Plo \
	./$(DEPDIR)/libcurl_la-cf-h2-proxy.Plo \
	./$(DEPDIR)/libcurl_la-cf-haproxy.Plo \
@@ -664,7 +655,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcurl_la-altsvc.Plo \
	./$(DEPDIR)/libcurl_la-http_negotiate.Plo \
	./$(DEPDIR)/libcurl_la-http_ntlm.Plo \
	./$(DEPDIR)/libcurl_la-http_proxy.Plo \
-
	./$(DEPDIR)/libcurl_la-httpsrr.Plo \
	./$(DEPDIR)/libcurl_la-idn.Plo \
	./$(DEPDIR)/libcurl_la-if2ip.Plo \
	./$(DEPDIR)/libcurl_la-imap.Plo \
@@ -709,7 +699,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcurl_la-altsvc.Plo \
	./$(DEPDIR)/libcurl_la-strcase.Plo \
	./$(DEPDIR)/libcurl_la-strdup.Plo \
	./$(DEPDIR)/libcurl_la-strerror.Plo \
-
	./$(DEPDIR)/libcurl_la-strparse.Plo \
	./$(DEPDIR)/libcurl_la-strtok.Plo \
	./$(DEPDIR)/libcurl_la-strtoofft.Plo \
	./$(DEPDIR)/libcurl_la-system_win32.Plo \
@@ -731,6 +720,7 @@ am__depfiles_remade = ./$(DEPDIR)/libcurl_la-altsvc.Plo \
	./$(DEPDIR)/libcurlu_la-base64.Plo \
	./$(DEPDIR)/libcurlu_la-bufq.Plo \
	./$(DEPDIR)/libcurlu_la-bufref.Plo \
+
	./$(DEPDIR)/libcurlu_la-c-hyper.Plo \
	./$(DEPDIR)/libcurlu_la-cf-h1-proxy.Plo \
	./$(DEPDIR)/libcurlu_la-cf-h2-proxy.Plo \
	./$(DEPDIR)/libcurlu_la-cf-haproxy.Plo \
@@ -795,7 +785,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcurl_la-altsvc.Plo \
	./$(DEPDIR)/libcurlu_la-http_negotiate.Plo \
	./$(DEPDIR)/libcurlu_la-http_ntlm.Plo \
	./$(DEPDIR)/libcurlu_la-http_proxy.Plo \
-
	./$(DEPDIR)/libcurlu_la-httpsrr.Plo \
	./$(DEPDIR)/libcurlu_la-idn.Plo \
	./$(DEPDIR)/libcurlu_la-if2ip.Plo \
	./$(DEPDIR)/libcurlu_la-imap.Plo \
@@ -843,7 +832,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcurl_la-altsvc.Plo \
	./$(DEPDIR)/libcurlu_la-strcase.Plo \
	./$(DEPDIR)/libcurlu_la-strdup.Plo \
	./$(DEPDIR)/libcurlu_la-strerror.Plo \
-
	./$(DEPDIR)/libcurlu_la-strparse.Plo \
	./$(DEPDIR)/libcurlu_la-strtok.Plo \
	./$(DEPDIR)/libcurlu_la-strtoofft.Plo \
	./$(DEPDIR)/libcurlu_la-system_win32.Plo \
@@ -917,8 +905,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcurl_la-altsvc.Plo \
	vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo \
	vtls/$(DEPDIR)/libcurl_la-sectransp.Plo \
	vtls/$(DEPDIR)/libcurl_la-vtls.Plo \
-
	vtls/$(DEPDIR)/libcurl_la-vtls_scache.Plo \
-
	vtls/$(DEPDIR)/libcurl_la-vtls_spack.Plo \
	vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo \
	vtls/$(DEPDIR)/libcurl_la-x509asn1.Plo \
	vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo \
@@ -934,8 +920,6 @@ am__depfiles_remade = ./$(DEPDIR)/libcurl_la-altsvc.Plo \
	vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo \
	vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo \
	vtls/$(DEPDIR)/libcurlu_la-vtls.Plo \
-
	vtls/$(DEPDIR)/libcurlu_la-vtls_scache.Plo \
-
	vtls/$(DEPDIR)/libcurlu_la-vtls_spack.Plo \
	vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo \
	vtls/$(DEPDIR)/libcurlu_la-x509asn1.Plo
am__mv = mv -f
@@ -991,6 +975,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -1017,10 +1002,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -1039,14 +1045,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -1085,6 +1099,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -1092,10 +1109,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -1184,9 +1237,11 @@ CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
CHECKSRC_DIST = .checksrc vauth/.checksrc vquic/.checksrc vssh/.checksrc \
 vtls/.checksrc

-
EXTRA_DIST = config-mac.h config-os400.h config-plan9.h config-riscos.h \
-
 config-win32.h curl_config.h.in libcurl.rc libcurl.def                 \
-
 $(CMAKE_DIST) Makefile.soname optiontable.pl $(CHECKSRC_DIST)
+
EXTRA_DIST = Makefile.mk config-win32.h config-win32ce.h config-plan9.h \
+
 config-riscos.h config-mac.h curl_config.h.in config-dos.h libcurl.rc  \
+
 config-amigaos.h config-win32ce.h config-os400.h setup-os400.h         \
+
 $(CMAKE_DIST) setup-win32.h Makefile.soname optiontable.pl libcurl.def \
+
 $(CHECKSRC_DIST)

lib_LTLIBRARIES = libcurl.la
@BUILD_UNITTESTS_FALSE@noinst_LTLIBRARIES = 
@@ -1246,8 +1301,6 @@ LIB_VTLS_CFILES = \
  vtls/schannel_verify.c    \
  vtls/sectransp.c          \
  vtls/vtls.c               \
-
  vtls/vtls_scache.c        \
-
  vtls/vtls_spack.c         \
  vtls/wolfssl.c            \
  vtls/x509asn1.c

@@ -1266,8 +1319,6 @@ LIB_VTLS_HFILES = \
  vtls/sectransp.h          \
  vtls/vtls.h               \
  vtls/vtls_int.h           \
-
  vtls/vtls_scache.h        \
-
  vtls/vtls_spack.h         \
  vtls/wolfssl.h            \
  vtls/x509asn1.h

@@ -1306,6 +1357,7 @@ LIB_CFILES = \
  base64.c           \
  bufq.c             \
  bufref.c           \
+
  c-hyper.c          \
  cf-h1-proxy.c      \
  cf-h2-proxy.c      \
  cf-haproxy.c       \
@@ -1370,7 +1422,6 @@ LIB_CFILES = \
  http_negotiate.c   \
  http_ntlm.c        \
  http_proxy.c       \
-
  httpsrr.c          \
  idn.c              \
  if2ip.c            \
  imap.c             \
@@ -1417,7 +1468,6 @@ LIB_CFILES = \
  strcase.c          \
  strdup.c           \
  strerror.c         \
-
  strparse.c         \
  strtok.c           \
  strtoofft.c        \
  system_win32.c     \
@@ -1440,6 +1490,7 @@ LIB_HFILES = \
  asyn.h             \
  bufq.h             \
  bufref.h           \
+
  c-hyper.h          \
  cf-h1-proxy.h      \
  cf-h2-proxy.h      \
  cf-haproxy.h       \
@@ -1511,7 +1562,6 @@ LIB_HFILES = \
  http_negotiate.h   \
  http_ntlm.h        \
  http_proxy.h       \
-
  httpsrr.h          \
  idn.h              \
  if2ip.h            \
  imap.h             \
@@ -1539,9 +1589,7 @@ LIB_HFILES = \
  select.h           \
  sendf.h            \
  setopt.h           \
-
  setup-os400.h      \
  setup-vms.h        \
-
  setup-win32.h      \
  share.h            \
  sigpipe.h          \
  slist.h            \
@@ -1555,7 +1603,6 @@ LIB_HFILES = \
  strcase.h          \
  strdup.h           \
  strerror.h         \
-
  strparse.h         \
  strtok.h           \
  strtoofft.h        \
  system_win32.h     \
@@ -1609,8 +1656,7 @@ CS_1 =
CS_ = $(CS_0)

# disable the tests that are mostly causing false positives
-
TIDYFLAGS := -checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling \
-
	-quiet $(am__append_11)
+
TIDYFLAGS = -checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-valist.Uninitialized,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference -quiet
TIDY := clang-tidy
all: curl_config.h
	$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -1774,10 +1820,6 @@ vtls/libcurl_la-sectransp.lo: vtls/$(am__dirstamp) \
	vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurl_la-vtls.lo: vtls/$(am__dirstamp) \
	vtls/$(DEPDIR)/$(am__dirstamp)
-
vtls/libcurl_la-vtls_scache.lo: vtls/$(am__dirstamp) \
-
	vtls/$(DEPDIR)/$(am__dirstamp)
-
vtls/libcurl_la-vtls_spack.lo: vtls/$(am__dirstamp) \
-
	vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurl_la-wolfssl.lo: vtls/$(am__dirstamp) \
	vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurl_la-x509asn1.lo: vtls/$(am__dirstamp) \
@@ -1869,10 +1911,6 @@ vtls/libcurlu_la-sectransp.lo: vtls/$(am__dirstamp) \
	vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurlu_la-vtls.lo: vtls/$(am__dirstamp) \
	vtls/$(DEPDIR)/$(am__dirstamp)
-
vtls/libcurlu_la-vtls_scache.lo: vtls/$(am__dirstamp) \
-
	vtls/$(DEPDIR)/$(am__dirstamp)
-
vtls/libcurlu_la-vtls_spack.lo: vtls/$(am__dirstamp) \
-
	vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurlu_la-wolfssl.lo: vtls/$(am__dirstamp) \
	vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurlu_la-x509asn1.lo: vtls/$(am__dirstamp) \
@@ -1922,6 +1960,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-base64.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-bufq.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-bufref.Plo@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-c-hyper.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-cf-h1-proxy.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-cf-h2-proxy.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-cf-haproxy.Plo@am__quote@ # am--include-marker
@@ -1986,7 +2025,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-http_negotiate.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-http_ntlm.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-http_proxy.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-httpsrr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-idn.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-if2ip.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-imap.Plo@am__quote@ # am--include-marker
@@ -2034,7 +2072,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-strcase.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-strdup.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-strerror.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-strparse.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-strtok.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-strtoofft.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurl_la-system_win32.Plo@am__quote@ # am--include-marker
@@ -2056,6 +2093,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-base64.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-bufq.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-bufref.Plo@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-c-hyper.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-cf-h1-proxy.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-cf-h2-proxy.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-cf-haproxy.Plo@am__quote@ # am--include-marker
@@ -2120,7 +2158,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-http_negotiate.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-http_ntlm.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-http_proxy.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-httpsrr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-idn.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-if2ip.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-imap.Plo@am__quote@ # am--include-marker
@@ -2168,7 +2205,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-strcase.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-strdup.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-strerror.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-strparse.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-strtok.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-strtoofft.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurlu_la-system_win32.Plo@am__quote@ # am--include-marker
@@ -2242,8 +2278,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-sectransp.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-vtls.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-vtls_scache.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-vtls_spack.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-x509asn1.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo@am__quote@ # am--include-marker
@@ -2259,8 +2293,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-vtls.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-vtls_scache.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-vtls_spack.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-x509asn1.Plo@am__quote@ # am--include-marker

@@ -2343,6 +2375,13 @@ libcurl_la-bufref.lo: bufref.c
@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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-bufref.lo `test -f 'bufref.c' || echo '$(srcdir)/'`bufref.c

+
libcurl_la-c-hyper.lo: c-hyper.c
+
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-c-hyper.lo -MD -MP -MF $(DEPDIR)/libcurl_la-c-hyper.Tpo -c -o libcurl_la-c-hyper.lo `test -f 'c-hyper.c' || echo '$(srcdir)/'`c-hyper.c
+
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-c-hyper.Tpo $(DEPDIR)/libcurl_la-c-hyper.Plo
+
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='c-hyper.c' object='libcurl_la-c-hyper.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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-c-hyper.lo `test -f 'c-hyper.c' || echo '$(srcdir)/'`c-hyper.c
+

libcurl_la-cf-h1-proxy.lo: cf-h1-proxy.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-cf-h1-proxy.lo -MD -MP -MF $(DEPDIR)/libcurl_la-cf-h1-proxy.Tpo -c -o libcurl_la-cf-h1-proxy.lo `test -f 'cf-h1-proxy.c' || echo '$(srcdir)/'`cf-h1-proxy.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-cf-h1-proxy.Tpo $(DEPDIR)/libcurl_la-cf-h1-proxy.Plo
@@ -2791,13 +2830,6 @@ libcurl_la-http_proxy.lo: http_proxy.c
@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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-http_proxy.lo `test -f 'http_proxy.c' || echo '$(srcdir)/'`http_proxy.c

-
libcurl_la-httpsrr.lo: httpsrr.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-httpsrr.lo -MD -MP -MF $(DEPDIR)/libcurl_la-httpsrr.Tpo -c -o libcurl_la-httpsrr.lo `test -f 'httpsrr.c' || echo '$(srcdir)/'`httpsrr.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-httpsrr.Tpo $(DEPDIR)/libcurl_la-httpsrr.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='httpsrr.c' object='libcurl_la-httpsrr.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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-httpsrr.lo `test -f 'httpsrr.c' || echo '$(srcdir)/'`httpsrr.c
-

libcurl_la-idn.lo: idn.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-idn.lo -MD -MP -MF $(DEPDIR)/libcurl_la-idn.Tpo -c -o libcurl_la-idn.lo `test -f 'idn.c' || echo '$(srcdir)/'`idn.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-idn.Tpo $(DEPDIR)/libcurl_la-idn.Plo
@@ -3120,13 +3152,6 @@ libcurl_la-strerror.lo: strerror.c
@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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-strerror.lo `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c

-
libcurl_la-strparse.lo: strparse.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-strparse.lo -MD -MP -MF $(DEPDIR)/libcurl_la-strparse.Tpo -c -o libcurl_la-strparse.lo `test -f 'strparse.c' || echo '$(srcdir)/'`strparse.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-strparse.Tpo $(DEPDIR)/libcurl_la-strparse.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='strparse.c' object='libcurl_la-strparse.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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o libcurl_la-strparse.lo `test -f 'strparse.c' || echo '$(srcdir)/'`strparse.c
-

libcurl_la-strtok.lo: strtok.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT libcurl_la-strtok.lo -MD -MP -MF $(DEPDIR)/libcurl_la-strtok.Tpo -c -o libcurl_la-strtok.lo `test -f 'strtok.c' || echo '$(srcdir)/'`strtok.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurl_la-strtok.Tpo $(DEPDIR)/libcurl_la-strtok.Plo
@@ -3407,20 +3432,6 @@ vtls/libcurl_la-vtls.lo: vtls/vtls.c
@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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-vtls.lo `test -f 'vtls/vtls.c' || echo '$(srcdir)/'`vtls/vtls.c

-
vtls/libcurl_la-vtls_scache.lo: vtls/vtls_scache.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-vtls_scache.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-vtls_scache.Tpo -c -o vtls/libcurl_la-vtls_scache.lo `test -f 'vtls/vtls_scache.c' || echo '$(srcdir)/'`vtls/vtls_scache.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-vtls_scache.Tpo vtls/$(DEPDIR)/libcurl_la-vtls_scache.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vtls/vtls_scache.c' object='vtls/libcurl_la-vtls_scache.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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-vtls_scache.lo `test -f 'vtls/vtls_scache.c' || echo '$(srcdir)/'`vtls/vtls_scache.c
-

-
vtls/libcurl_la-vtls_spack.lo: vtls/vtls_spack.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-vtls_spack.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-vtls_spack.Tpo -c -o vtls/libcurl_la-vtls_spack.lo `test -f 'vtls/vtls_spack.c' || echo '$(srcdir)/'`vtls/vtls_spack.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-vtls_spack.Tpo vtls/$(DEPDIR)/libcurl_la-vtls_spack.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vtls/vtls_spack.c' object='vtls/libcurl_la-vtls_spack.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) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-vtls_spack.lo `test -f 'vtls/vtls_spack.c' || echo '$(srcdir)/'`vtls/vtls_spack.c
-

vtls/libcurl_la-wolfssl.lo: vtls/wolfssl.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-wolfssl.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-wolfssl.Tpo -c -o vtls/libcurl_la-wolfssl.lo `test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'`vtls/wolfssl.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-wolfssl.Tpo vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo
@@ -3561,6 +3572,13 @@ libcurlu_la-bufref.lo: bufref.c
@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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-bufref.lo `test -f 'bufref.c' || echo '$(srcdir)/'`bufref.c

+
libcurlu_la-c-hyper.lo: c-hyper.c
+
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-c-hyper.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-c-hyper.Tpo -c -o libcurlu_la-c-hyper.lo `test -f 'c-hyper.c' || echo '$(srcdir)/'`c-hyper.c
+
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-c-hyper.Tpo $(DEPDIR)/libcurlu_la-c-hyper.Plo
+
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='c-hyper.c' object='libcurlu_la-c-hyper.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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-c-hyper.lo `test -f 'c-hyper.c' || echo '$(srcdir)/'`c-hyper.c
+

libcurlu_la-cf-h1-proxy.lo: cf-h1-proxy.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-cf-h1-proxy.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-cf-h1-proxy.Tpo -c -o libcurlu_la-cf-h1-proxy.lo `test -f 'cf-h1-proxy.c' || echo '$(srcdir)/'`cf-h1-proxy.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-cf-h1-proxy.Tpo $(DEPDIR)/libcurlu_la-cf-h1-proxy.Plo
@@ -4009,13 +4027,6 @@ libcurlu_la-http_proxy.lo: http_proxy.c
@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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-http_proxy.lo `test -f 'http_proxy.c' || echo '$(srcdir)/'`http_proxy.c

-
libcurlu_la-httpsrr.lo: httpsrr.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-httpsrr.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-httpsrr.Tpo -c -o libcurlu_la-httpsrr.lo `test -f 'httpsrr.c' || echo '$(srcdir)/'`httpsrr.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-httpsrr.Tpo $(DEPDIR)/libcurlu_la-httpsrr.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='httpsrr.c' object='libcurlu_la-httpsrr.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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-httpsrr.lo `test -f 'httpsrr.c' || echo '$(srcdir)/'`httpsrr.c
-

libcurlu_la-idn.lo: idn.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-idn.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-idn.Tpo -c -o libcurlu_la-idn.lo `test -f 'idn.c' || echo '$(srcdir)/'`idn.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-idn.Tpo $(DEPDIR)/libcurlu_la-idn.Plo
@@ -4338,13 +4349,6 @@ libcurlu_la-strerror.lo: strerror.c
@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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-strerror.lo `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c

-
libcurlu_la-strparse.lo: strparse.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-strparse.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-strparse.Tpo -c -o libcurlu_la-strparse.lo `test -f 'strparse.c' || echo '$(srcdir)/'`strparse.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-strparse.Tpo $(DEPDIR)/libcurlu_la-strparse.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='strparse.c' object='libcurlu_la-strparse.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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o libcurlu_la-strparse.lo `test -f 'strparse.c' || echo '$(srcdir)/'`strparse.c
-

libcurlu_la-strtok.lo: strtok.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT libcurlu_la-strtok.lo -MD -MP -MF $(DEPDIR)/libcurlu_la-strtok.Tpo -c -o libcurlu_la-strtok.lo `test -f 'strtok.c' || echo '$(srcdir)/'`strtok.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurlu_la-strtok.Tpo $(DEPDIR)/libcurlu_la-strtok.Plo
@@ -4625,20 +4629,6 @@ vtls/libcurlu_la-vtls.lo: vtls/vtls.c
@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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-vtls.lo `test -f 'vtls/vtls.c' || echo '$(srcdir)/'`vtls/vtls.c

-
vtls/libcurlu_la-vtls_scache.lo: vtls/vtls_scache.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-vtls_scache.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-vtls_scache.Tpo -c -o vtls/libcurlu_la-vtls_scache.lo `test -f 'vtls/vtls_scache.c' || echo '$(srcdir)/'`vtls/vtls_scache.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-vtls_scache.Tpo vtls/$(DEPDIR)/libcurlu_la-vtls_scache.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vtls/vtls_scache.c' object='vtls/libcurlu_la-vtls_scache.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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-vtls_scache.lo `test -f 'vtls/vtls_scache.c' || echo '$(srcdir)/'`vtls/vtls_scache.c
-

-
vtls/libcurlu_la-vtls_spack.lo: vtls/vtls_spack.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-vtls_spack.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-vtls_spack.Tpo -c -o vtls/libcurlu_la-vtls_spack.lo `test -f 'vtls/vtls_spack.c' || echo '$(srcdir)/'`vtls/vtls_spack.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-vtls_spack.Tpo vtls/$(DEPDIR)/libcurlu_la-vtls_spack.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vtls/vtls_spack.c' object='vtls/libcurlu_la-vtls_spack.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) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-vtls_spack.lo `test -f 'vtls/vtls_spack.c' || echo '$(srcdir)/'`vtls/vtls_spack.c
-

vtls/libcurlu_la-wolfssl.lo: vtls/wolfssl.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-wolfssl.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-wolfssl.Tpo -c -o vtls/libcurlu_la-wolfssl.lo `test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'`vtls/wolfssl.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-wolfssl.Tpo vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo
@@ -4884,6 +4874,7 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurl_la-base64.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-bufq.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-bufref.Plo
+
	-rm -f ./$(DEPDIR)/libcurl_la-c-hyper.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-cf-h1-proxy.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-cf-h2-proxy.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-cf-haproxy.Plo
@@ -4948,7 +4939,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurl_la-http_negotiate.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-http_ntlm.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-http_proxy.Plo
-
	-rm -f ./$(DEPDIR)/libcurl_la-httpsrr.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-idn.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-if2ip.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-imap.Plo
@@ -4996,7 +4986,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurl_la-strcase.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-strdup.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-strerror.Plo
-
	-rm -f ./$(DEPDIR)/libcurl_la-strparse.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-strtok.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-strtoofft.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-system_win32.Plo
@@ -5018,6 +5007,7 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurlu_la-base64.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-bufq.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-bufref.Plo
+
	-rm -f ./$(DEPDIR)/libcurlu_la-c-hyper.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-cf-h1-proxy.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-cf-h2-proxy.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-cf-haproxy.Plo
@@ -5082,7 +5072,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurlu_la-http_negotiate.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-http_ntlm.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-http_proxy.Plo
-
	-rm -f ./$(DEPDIR)/libcurlu_la-httpsrr.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-idn.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-if2ip.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-imap.Plo
@@ -5130,7 +5119,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurlu_la-strcase.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-strdup.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-strerror.Plo
-
	-rm -f ./$(DEPDIR)/libcurlu_la-strparse.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-strtok.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-strtoofft.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-system_win32.Plo
@@ -5204,8 +5192,6 @@ distclean: distclean-am
	-rm -f vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo
	-rm -f vtls/$(DEPDIR)/libcurl_la-sectransp.Plo
	-rm -f vtls/$(DEPDIR)/libcurl_la-vtls.Plo
-
	-rm -f vtls/$(DEPDIR)/libcurl_la-vtls_scache.Plo
-
	-rm -f vtls/$(DEPDIR)/libcurl_la-vtls_spack.Plo
	-rm -f vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo
	-rm -f vtls/$(DEPDIR)/libcurl_la-x509asn1.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo
@@ -5221,8 +5207,6 @@ distclean: distclean-am
	-rm -f vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-vtls.Plo
-
	-rm -f vtls/$(DEPDIR)/libcurlu_la-vtls_scache.Plo
-
	-rm -f vtls/$(DEPDIR)/libcurlu_la-vtls_spack.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-x509asn1.Plo
	-rm -f Makefile
@@ -5277,6 +5261,7 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurl_la-base64.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-bufq.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-bufref.Plo
+
	-rm -f ./$(DEPDIR)/libcurl_la-c-hyper.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-cf-h1-proxy.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-cf-h2-proxy.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-cf-haproxy.Plo
@@ -5341,7 +5326,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurl_la-http_negotiate.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-http_ntlm.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-http_proxy.Plo
-
	-rm -f ./$(DEPDIR)/libcurl_la-httpsrr.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-idn.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-if2ip.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-imap.Plo
@@ -5389,7 +5373,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurl_la-strcase.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-strdup.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-strerror.Plo
-
	-rm -f ./$(DEPDIR)/libcurl_la-strparse.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-strtok.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-strtoofft.Plo
	-rm -f ./$(DEPDIR)/libcurl_la-system_win32.Plo
@@ -5411,6 +5394,7 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurlu_la-base64.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-bufq.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-bufref.Plo
+
	-rm -f ./$(DEPDIR)/libcurlu_la-c-hyper.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-cf-h1-proxy.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-cf-h2-proxy.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-cf-haproxy.Plo
@@ -5475,7 +5459,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurlu_la-http_negotiate.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-http_ntlm.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-http_proxy.Plo
-
	-rm -f ./$(DEPDIR)/libcurlu_la-httpsrr.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-idn.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-if2ip.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-imap.Plo
@@ -5523,7 +5506,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurlu_la-strcase.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-strdup.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-strerror.Plo
-
	-rm -f ./$(DEPDIR)/libcurlu_la-strparse.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-strtok.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-strtoofft.Plo
	-rm -f ./$(DEPDIR)/libcurlu_la-system_win32.Plo
@@ -5597,8 +5579,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo
	-rm -f vtls/$(DEPDIR)/libcurl_la-sectransp.Plo
	-rm -f vtls/$(DEPDIR)/libcurl_la-vtls.Plo
-
	-rm -f vtls/$(DEPDIR)/libcurl_la-vtls_scache.Plo
-
	-rm -f vtls/$(DEPDIR)/libcurl_la-vtls_spack.Plo
	-rm -f vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo
	-rm -f vtls/$(DEPDIR)/libcurl_la-x509asn1.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo
@@ -5614,8 +5594,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-vtls.Plo
-
	-rm -f vtls/$(DEPDIR)/libcurlu_la-vtls_scache.Plo
-
	-rm -f vtls/$(DEPDIR)/libcurlu_la-vtls_spack.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo
	-rm -f vtls/$(DEPDIR)/libcurlu_la-x509asn1.Plo
	-rm -f Makefile
@@ -5673,16 +5651,15 @@ uninstall-am: uninstall-libLTLIBRARIES
@HAVE_WINDRES_TRUE@@USE_CPPFLAG_CURL_STATICLIB_FALSE@$(LIB_RCFILES): $(top_srcdir)/include/curl/curlver.h

checksrc:
-
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir)         \
-
	  -W$(srcdir)/libcurl_unity.c -W$(srcdir)/curl_config.h $(srcdir)/*.[ch] \
-
	  $(srcdir)/vauth/*.[ch] $(srcdir)/vtls/*.[ch] $(srcdir)/vquic/*.[ch]    \
-
	  $(srcdir)/vssh/*.[ch])
+
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir)    \
+
	-W$(srcdir)/curl_config.h $(srcdir)/*.[ch] $(srcdir)/vauth/*.[ch]   \
+
	$(srcdir)/vtls/*.[ch] $(srcdir)/vquic/*.[ch] $(srcdir)/vssh/*.[ch])

# for debug builds, we scan the sources on all regular make invokes
@DEBUGBUILD_TRUE@all-local: checksrc

tidy:
-
	$(TIDY) $(CSOURCES) $(TIDYFLAGS) $(CURL_CLANG_TIDYFLAGS) -- $(AM_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H
+
	$(TIDY) $(CSOURCES) $(TIDYFLAGS) -- $(AM_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H

optiontable:
	perl optiontable.pl < $(top_srcdir)/include/curl/curl.h > easyoptions.c
modified external/curl/lib/Makefile.inc
@@ -56,8 +56,6 @@ LIB_VTLS_CFILES = \
  vtls/schannel_verify.c    \
  vtls/sectransp.c          \
  vtls/vtls.c               \
-
  vtls/vtls_scache.c        \
-
  vtls/vtls_spack.c         \
  vtls/wolfssl.c            \
  vtls/x509asn1.c

@@ -76,8 +74,6 @@ LIB_VTLS_HFILES = \
  vtls/sectransp.h          \
  vtls/vtls.h               \
  vtls/vtls_int.h           \
-
  vtls/vtls_scache.h        \
-
  vtls/vtls_spack.h         \
  vtls/wolfssl.h            \
  vtls/x509asn1.h

@@ -116,6 +112,7 @@ LIB_CFILES = \
  base64.c           \
  bufq.c             \
  bufref.c           \
+
  c-hyper.c          \
  cf-h1-proxy.c      \
  cf-h2-proxy.c      \
  cf-haproxy.c       \
@@ -180,7 +177,6 @@ LIB_CFILES = \
  http_negotiate.c   \
  http_ntlm.c        \
  http_proxy.c       \
-
  httpsrr.c          \
  idn.c              \
  if2ip.c            \
  imap.c             \
@@ -227,7 +223,6 @@ LIB_CFILES = \
  strcase.c          \
  strdup.c           \
  strerror.c         \
-
  strparse.c         \
  strtok.c           \
  strtoofft.c        \
  system_win32.c     \
@@ -250,6 +245,7 @@ LIB_HFILES = \
  asyn.h             \
  bufq.h             \
  bufref.h           \
+
  c-hyper.h          \
  cf-h1-proxy.h      \
  cf-h2-proxy.h      \
  cf-haproxy.h       \
@@ -321,7 +317,6 @@ LIB_HFILES = \
  http_negotiate.h   \
  http_ntlm.h        \
  http_proxy.h       \
-
  httpsrr.h          \
  idn.h              \
  if2ip.h            \
  imap.h             \
@@ -349,9 +344,7 @@ LIB_HFILES = \
  select.h           \
  sendf.h            \
  setopt.h           \
-
  setup-os400.h      \
  setup-vms.h        \
-
  setup-win32.h      \
  share.h            \
  sigpipe.h          \
  slist.h            \
@@ -365,7 +358,6 @@ LIB_HFILES = \
  strcase.h          \
  strdup.h           \
  strerror.h         \
-
  strparse.h         \
  strtok.h           \
  strtoofft.h        \
  system_win32.h     \
added external/curl/lib/Makefile.mk
@@ -0,0 +1,340 @@
+
#***************************************************************************
+
#                                  _   _ ____  _
+
#  Project                     ___| | | |  _ \| |
+
#                             / __| | | | |_) | |
+
#                            | (__| |_| |  _ <| |___
+
#                             \___|\___/|_| \_\_____|
+
#
+
# Copyright (C) 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.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.
+
#
+
# SPDX-License-Identifier: curl
+
#
+
#***************************************************************************
+

+
# Makefile to build curl parts with GCC-like toolchains and optional features.
+
#
+
# Usage:   make -f Makefile.mk CFG=-feat1[-feat2][-feat3][...]
+
# Example: make -f Makefile.mk CFG=-zlib-ssl-libssh2-ipv6
+
#
+
# Look for ' ?=' to find accepted customization variables.
+

+
# This script is reused by 'src' and 'docs/examples' Makefile.mk scripts.
+

+
ifndef PROOT
+
  PROOT := ..
+
  LOCAL := 1
+
endif
+

+
### Common
+

+
CFLAGS ?=
+
CPPFLAGS ?=
+
LDFLAGS ?=
+
LIBS ?=
+

+
CROSSPREFIX ?=
+

+
ifeq ($(CC),cc)
+
  CC := gcc
+
endif
+
CC := $(CROSSPREFIX)$(CC)
+
AR := $(CROSSPREFIX)$(AR)
+

+
TRIPLET ?= $(shell $(CC) -dumpmachine)
+

+
BIN_EXT :=
+

+
ifneq ($(findstring msdos,$(TRIPLET)),)
+
  # Cross-tools: https://github.com/andrewwutw/build-djgpp
+
  MSDOS := 1
+
  BIN_EXT := .exe
+
else ifneq ($(findstring amigaos,$(TRIPLET)),)
+
  # Cross-tools: https://github.com/bebbo/amiga-gcc
+
  AMIGA := 1
+
endif
+

+
CPPFLAGS += -I. -I$(PROOT)/include
+

+
### Deprecated settings. For compatibility.
+

+
ifdef WATT_ROOT
+
  WATT_PATH := $(realpath $(WATT_ROOT))
+
endif
+

+
### Optional features
+

+
ifneq ($(findstring -debug,$(CFG)),)
+
  CFLAGS += -g
+
  CPPFLAGS += -DDEBUGBUILD
+
else
+
  CPPFLAGS += -DNDEBUG
+
endif
+
ifneq ($(findstring -trackmem,$(CFG)),)
+
  CPPFLAGS += -DCURLDEBUG
+
endif
+
ifneq ($(findstring -map,$(CFG)),)
+
  MAP := 1
+
endif
+

+
# CPPFLAGS below are only necessary when building libcurl via 'lib' (see
+
# comments below about exceptions). Always include them anyway to match
+
# behavior of other build systems.
+

+
ifneq ($(findstring -sync,$(CFG)),)
+
  CPPFLAGS += -DUSE_SYNC_DNS
+
else ifneq ($(findstring -ares,$(CFG)),)
+
  LIBCARES_PATH ?= $(PROOT)/../c-ares
+
  CPPFLAGS += -DUSE_ARES
+
  CPPFLAGS += -isystem "$(LIBCARES_PATH)/include"
+
  LDFLAGS += -L"$(LIBCARES_PATH)/lib"
+
  LIBS += -lcares
+
endif
+

+
ifneq ($(findstring -rtmp,$(CFG)),)
+
  LIBRTMP_PATH ?= $(PROOT)/../librtmp
+
  CPPFLAGS += -DUSE_LIBRTMP
+
  CPPFLAGS += -isystem "$(LIBRTMP_PATH)"
+
  LDFLAGS += -L"$(LIBRTMP_PATH)/librtmp"
+
  LIBS += -lrtmp
+
  ZLIB := 1
+
endif
+

+
ifneq ($(findstring -ssh2,$(CFG)),)
+
  LIBSSH2_PATH ?= $(PROOT)/../libssh2
+
  CPPFLAGS += -DUSE_LIBSSH2
+
  CPPFLAGS += -isystem "$(LIBSSH2_PATH)/include"
+
  LDFLAGS += -L"$(LIBSSH2_PATH)/lib"
+
  LIBS += -lssh2
+
else ifneq ($(findstring -libssh,$(CFG)),)
+
  LIBSSH_PATH ?= $(PROOT)/../libssh
+
  CPPFLAGS += -DUSE_LIBSSH
+
  CPPFLAGS += -isystem "$(LIBSSH_PATH)/include"
+
  LDFLAGS += -L"$(LIBSSH_PATH)/lib"
+
  LIBS += -lssh
+
else ifneq ($(findstring -wolfssh,$(CFG)),)
+
  WOLFSSH_PATH ?= $(PROOT)/../wolfssh
+
  CPPFLAGS += -DUSE_WOLFSSH
+
  CPPFLAGS += -isystem "$(WOLFSSH_PATH)/include"
+
  LDFLAGS += -L"$(WOLFSSH_PATH)/lib"
+
  LIBS += -lwolfssh
+
endif
+

+
ifneq ($(findstring -ssl,$(CFG)),)
+
  OPENSSL_PATH ?= $(PROOT)/../openssl
+
  CPPFLAGS += -DUSE_OPENSSL
+
  CPPFLAGS += -DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
+
  OPENSSL_INCLUDE ?= $(OPENSSL_PATH)/include
+
  OPENSSL_LIBPATH ?= $(OPENSSL_PATH)/lib
+
  CPPFLAGS += -isystem "$(OPENSSL_INCLUDE)"
+
  LDFLAGS += -L"$(OPENSSL_LIBPATH)"
+
  OPENSSL_LIBS ?= -lssl -lcrypto
+
  LIBS += $(OPENSSL_LIBS)
+

+
  ifneq ($(findstring -srp,$(CFG)),)
+
    ifneq ($(wildcard $(OPENSSL_INCLUDE)/openssl/srp.h),)
+
      # OpenSSL 1.0.1 and later.
+
      CPPFLAGS += -DHAVE_OPENSSL_SRP -DUSE_TLS_SRP
+
    endif
+
  endif
+
  SSLLIBS += 1
+
endif
+
ifneq ($(findstring -wolfssl,$(CFG)),)
+
  WOLFSSL_PATH ?= $(PROOT)/../wolfssl
+
  CPPFLAGS += -DUSE_WOLFSSL
+
  CPPFLAGS += -DSIZEOF_LONG_LONG=8
+
  CPPFLAGS += -isystem "$(WOLFSSL_PATH)/include"
+
  LDFLAGS += -L"$(WOLFSSL_PATH)/lib"
+
  LIBS += -lwolfssl
+
  SSLLIBS += 1
+
endif
+
ifneq ($(findstring -mbedtls,$(CFG)),)
+
  MBEDTLS_PATH ?= $(PROOT)/../mbedtls
+
  CPPFLAGS += -DUSE_MBEDTLS
+
  CPPFLAGS += -isystem "$(MBEDTLS_PATH)/include"
+
  LDFLAGS += -L"$(MBEDTLS_PATH)/lib"
+
  LIBS += -lmbedtls -lmbedx509 -lmbedcrypto
+
  SSLLIBS += 1
+
endif
+
ifneq ($(findstring -bearssl,$(CFG)),)
+
  BEARSSL_PATH ?= $(PROOT)/../bearssl
+
  CPPFLAGS += -DUSE_BEARSSL
+
  CPPFLAGS += -isystem "$(BEARSSL_PATH)/inc"
+
  LDFLAGS += -L"$(BEARSSL_PATH)/build"
+
  LIBS += -lbearssl
+
  SSLLIBS += 1
+
endif
+

+
ifneq ($(findstring -nghttp2,$(CFG)),)
+
  NGHTTP2_PATH ?= $(PROOT)/../nghttp2
+
  CPPFLAGS += -DUSE_NGHTTP2
+
  CPPFLAGS += -isystem "$(NGHTTP2_PATH)/include"
+
  LDFLAGS += -L"$(NGHTTP2_PATH)/lib"
+
  LIBS += -lnghttp2
+
endif
+

+
ifeq ($(findstring -nghttp3,$(CFG))$(findstring -ngtcp2,$(CFG)),-nghttp3-ngtcp2)
+
  NGHTTP3_PATH ?= $(PROOT)/../nghttp3
+
  CPPFLAGS += -DUSE_NGHTTP3
+
  CPPFLAGS += -isystem "$(NGHTTP3_PATH)/include"
+
  LDFLAGS += -L"$(NGHTTP3_PATH)/lib"
+
  LIBS += -lnghttp3
+

+
  NGTCP2_PATH ?= $(PROOT)/../ngtcp2
+
  CPPFLAGS += -DUSE_NGTCP2
+
  CPPFLAGS += -isystem "$(NGTCP2_PATH)/include"
+
  LDFLAGS += -L"$(NGTCP2_PATH)/lib"
+

+
  NGTCP2_LIBS ?=
+
  ifeq ($(NGTCP2_LIBS),)
+
    ifneq ($(findstring -ssl,$(CFG)),)
+
      ifneq ($(wildcard $(OPENSSL_INCLUDE)/openssl/aead.h),)
+
        NGTCP2_LIBS := -lngtcp2_crypto_boringssl
+
      else  # including libressl
+
        NGTCP2_LIBS := -lngtcp2_crypto_quictls
+
      endif
+
    else ifneq ($(findstring -wolfssl,$(CFG)),)
+
      NGTCP2_LIBS := -lngtcp2_crypto_wolfssl
+
    endif
+
  endif
+

+
  LIBS += -lngtcp2 $(NGTCP2_LIBS)
+
endif
+

+
ifneq ($(findstring -zlib,$(CFG))$(ZLIB),)
+
  ZLIB_PATH ?= $(PROOT)/../zlib
+
  # These CPPFLAGS are also required when compiling the curl tool via 'src'.
+
  CPPFLAGS += -DHAVE_LIBZ
+
  CPPFLAGS += -isystem "$(ZLIB_PATH)/include"
+
  LDFLAGS += -L"$(ZLIB_PATH)/lib"
+
  ZLIB_LIBS ?= -lz
+
  LIBS += $(ZLIB_LIBS)
+
  ZLIB := 1
+
endif
+
ifneq ($(findstring -zstd,$(CFG)),)
+
  ZSTD_PATH ?= $(PROOT)/../zstd
+
  CPPFLAGS += -DHAVE_ZSTD
+
  CPPFLAGS += -isystem "$(ZSTD_PATH)/include"
+
  LDFLAGS += -L"$(ZSTD_PATH)/lib"
+
  ZSTD_LIBS ?= -lzstd
+
  LIBS += $(ZSTD_LIBS)
+
endif
+
ifneq ($(findstring -brotli,$(CFG)),)
+
  BROTLI_PATH ?= $(PROOT)/../brotli
+
  CPPFLAGS += -DHAVE_BROTLI
+
  CPPFLAGS += -isystem "$(BROTLI_PATH)/include"
+
  LDFLAGS += -L"$(BROTLI_PATH)/lib"
+
  BROTLI_LIBS ?= -lbrotlidec -lbrotlicommon
+
  LIBS += $(BROTLI_LIBS)
+
endif
+
ifneq ($(findstring -gsasl,$(CFG)),)
+
  LIBGSASL_PATH ?= $(PROOT)/../gsasl
+
  CPPFLAGS += -DUSE_GSASL
+
  CPPFLAGS += -isystem "$(LIBGSASL_PATH)/include"
+
  LDFLAGS += -L"$(LIBGSASL_PATH)/lib"
+
  LIBS += -lgsasl
+
endif
+

+
ifneq ($(findstring -idn2,$(CFG)),)
+
  LIBIDN2_PATH ?= $(PROOT)/../libidn2
+
  CPPFLAGS += -DHAVE_LIBIDN2 -DHAVE_IDN2_H
+
  CPPFLAGS += -isystem "$(LIBIDN2_PATH)/include"
+
  LDFLAGS += -L"$(LIBIDN2_PATH)/lib"
+
  LIBS += -lidn2
+

+
ifneq ($(findstring -psl,$(CFG)),)
+
  LIBPSL_PATH ?= $(PROOT)/../libpsl
+
  CPPFLAGS += -DUSE_LIBPSL
+
  CPPFLAGS += -isystem "$(LIBPSL_PATH)/include"
+
  LDFLAGS += -L"$(LIBPSL_PATH)/lib"
+
  LIBS += -lpsl
+
endif
+
endif
+

+
ifneq ($(findstring -ipv6,$(CFG)),)
+
  CPPFLAGS += -DUSE_IPV6
+
endif
+

+
ifneq ($(findstring -watt,$(CFG))$(MSDOS),)
+
  WATT_PATH ?= $(PROOT)/../watt
+
  CPPFLAGS += -isystem "$(WATT_PATH)/inc"
+
  LDFLAGS += -L"$(WATT_PATH)/lib"
+
  LIBS += -lwatt
+
endif
+

+
ifneq ($(findstring 11,$(subst $(subst ,, ),,$(SSLLIBS))),)
+
  CPPFLAGS += -DCURL_WITH_MULTI_SSL
+
endif
+

+
### Common rules
+

+
OBJ_DIR := $(TRIPLET)
+

+
ifneq ($(findstring /sh,$(SHELL)),)
+
DEL   = rm -f $1
+
COPY  = -cp -afv $1 $2
+
MKDIR = mkdir -p $1
+
RMDIR = rm -fr $1
+
else
+
DEL   = -del 2>NUL /q /f $(subst /,\,$1)
+
COPY  = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+
MKDIR = -md 2>NUL $(subst /,\,$1)
+
RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
+
endif
+

+
all: $(TARGETS)
+

+
$(OBJ_DIR):
+
	-$(call MKDIR, $(OBJ_DIR))
+

+
$(OBJ_DIR)/%.o: %.c
+
	$(CC) -W -Wall $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+

+
clean:
+
	@$(call DEL, $(TOCLEAN))
+
	@$(RMDIR) $(OBJ_DIR)
+

+
distclean vclean: clean
+
	@$(call DEL, $(TARGETS) $(TOVCLEAN))
+

+
### Local
+

+
ifdef LOCAL
+

+
CPPFLAGS += -DBUILDING_LIBCURL
+

+
### Sources and targets
+

+
# Provides CSOURCES, HHEADERS
+
include Makefile.inc
+

+
vpath %.c vauth vquic vssh vtls
+

+
libcurl_a_LIBRARY := libcurl.a
+

+
TARGETS := $(libcurl_a_LIBRARY)
+

+
libcurl_a_OBJECTS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(strip $(CSOURCES))))
+
libcurl_a_DEPENDENCIES := $(strip $(CSOURCES) $(HHEADERS))
+

+
TOCLEAN :=
+
TOVCLEAN :=
+

+
### Rules
+

+
$(libcurl_a_LIBRARY): $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES)
+
	@$(call DEL, $@)
+
	$(AR) rcs $@ $(libcurl_a_OBJECTS)
+

+
all: $(OBJ_DIR) $(TARGETS)
+
endif
modified external/curl/lib/altsvc.c
@@ -40,8 +40,6 @@
#include "rename.h"
#include "strdup.h"
#include "inet_pton.h"
-
#include "strparse.h"
-
#include "connect.h"

/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -49,12 +47,28 @@
#include "memdebug.h"

#define MAX_ALTSVC_LINE 4095
-
#define MAX_ALTSVC_DATELEN 256
-
#define MAX_ALTSVC_HOSTLEN 2048
+
#define MAX_ALTSVC_DATELENSTR "64"
+
#define MAX_ALTSVC_DATELEN 64
+
#define MAX_ALTSVC_HOSTLENSTR "512"
+
#define MAX_ALTSVC_HOSTLEN 512
+
#define MAX_ALTSVC_ALPNLENSTR "10"
#define MAX_ALTSVC_ALPNLEN 10

#define H3VERSION "h3"

+
static enum alpnid alpn2alpnid(char *name)
+
{
+
  if(strcasecompare(name, "h1"))
+
    return ALPN_h1;
+
  if(strcasecompare(name, "h2"))
+
    return ALPN_h2;
+
  if(strcasecompare(name, H3VERSION))
+
    return ALPN_h3;
+
  if(strcasecompare(name, "http/1.1"))
+
    return ALPN_h1;
+
  return ALPN_none; /* unknown, probably rubbish input */
+
}
+

/* Given the ALPN ID, return the name */
const char *Curl_alpnid2str(enum alpnid id)
{
@@ -79,33 +93,33 @@ static void altsvc_free(struct altsvc *as)
}

static struct altsvc *altsvc_createid(const char *srchost,
-
                                      size_t hlen,
                                      const char *dsthost,
                                      size_t dlen, /* dsthost length */
                                      enum alpnid srcalpnid,
                                      enum alpnid dstalpnid,
-
                                      size_t srcport,
-
                                      size_t dstport)
+
                                      unsigned int srcport,
+
                                      unsigned int dstport)
{
  struct altsvc *as = calloc(1, sizeof(struct altsvc));
+
  size_t hlen;
  if(!as)
    return NULL;
+
  hlen = strlen(srchost);
  DEBUGASSERT(hlen);
  DEBUGASSERT(dlen);
-
  if(!hlen || !dlen)
+
  if(!hlen || !dlen) {
    /* bad input */
-
    goto error;
+
    free(as);
+
    return NULL;
+
  }
  if((hlen > 2) && srchost[0] == '[') {
    /* IPv6 address, strip off brackets */
    srchost++;
    hlen -= 2;
  }
-
  else if(srchost[hlen - 1] == '.') {
+
  else if(srchost[hlen - 1] == '.')
    /* strip off trailing dot */
    hlen--;
-
    if(!hlen)
-
      goto error;
-
  }
  if((dlen > 2) && dsthost[0] == '[') {
    /* IPv6 address, strip off brackets */
    dsthost++;
@@ -122,8 +136,8 @@ static struct altsvc *altsvc_createid(const char *srchost,

  as->src.alpnid = srcalpnid;
  as->dst.alpnid = dstalpnid;
-
  as->src.port = (unsigned short)srcport;
-
  as->dst.port = (unsigned short)dstport;
+
  as->src.port = curlx_ultous(srcport);
+
  as->dst.port = curlx_ultous(dstport);

  return as;
error:
@@ -131,19 +145,18 @@ error:
  return NULL;
}

-
static struct altsvc *altsvc_create(struct Curl_str *srchost,
-
                                    struct Curl_str *dsthost,
-
                                    struct Curl_str *srcalpn,
-
                                    struct Curl_str *dstalpn,
-
                                    size_t srcport,
-
                                    size_t dstport)
+
static struct altsvc *altsvc_create(char *srchost,
+
                                    char *dsthost,
+
                                    char *srcalpn,
+
                                    char *dstalpn,
+
                                    unsigned int srcport,
+
                                    unsigned int dstport)
{
-
  enum alpnid dstalpnid = Curl_alpn2alpnid(dstalpn->str, dstalpn->len);
-
  enum alpnid srcalpnid = Curl_alpn2alpnid(srcalpn->str, srcalpn->len);
+
  enum alpnid dstalpnid = alpn2alpnid(dstalpn);
+
  enum alpnid srcalpnid = alpn2alpnid(srcalpn);
  if(!srcalpnid || !dstalpnid)
    return NULL;
-
  return altsvc_createid(srchost->str, srchost->len,
-
                         dsthost->str, dsthost->len,
+
  return altsvc_createid(srchost, dsthost, strlen(dsthost),
                         srcalpnid, dstalpnid,
                         srcport, dstport);
}
@@ -154,50 +167,31 @@ static CURLcode altsvc_add(struct altsvcinfo *asi, char *line)
  /* Example line:
     h2 example.com 443 h3 shiny.example.com 8443 "20191231 10:00:00" 1
   */
-
  struct Curl_str srchost;
-
  struct Curl_str dsthost;
-
  struct Curl_str srcalpn;
-
  struct Curl_str dstalpn;
-
  struct Curl_str date;
-
  size_t srcport;
-
  size_t dstport;
-
  size_t persist;
-
  size_t prio;
-

-
  if(Curl_str_word(&line, &srcalpn, MAX_ALTSVC_ALPNLEN) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_word(&line, &srchost, MAX_ALTSVC_HOSTLEN) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_number(&line, &srcport, 65535) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_word(&line, &dstalpn, MAX_ALTSVC_ALPNLEN) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_word(&line, &dsthost, MAX_ALTSVC_HOSTLEN) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_number(&line, &dstport, 65535) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_quotedword(&line, &date, MAX_ALTSVC_DATELEN) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_number(&line, &persist, 1) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_number(&line, &prio, 0) ||
-
     Curl_str_newline(&line))
-
    ;
-
  else {
+
  char srchost[MAX_ALTSVC_HOSTLEN + 1];
+
  char dsthost[MAX_ALTSVC_HOSTLEN + 1];
+
  char srcalpn[MAX_ALTSVC_ALPNLEN + 1];
+
  char dstalpn[MAX_ALTSVC_ALPNLEN + 1];
+
  char date[MAX_ALTSVC_DATELEN + 1];
+
  unsigned int srcport;
+
  unsigned int dstport;
+
  unsigned int prio;
+
  unsigned int persist;
+
  int rc;
+

+
  rc = sscanf(line,
+
              "%" MAX_ALTSVC_ALPNLENSTR "s %" MAX_ALTSVC_HOSTLENSTR "s %u "
+
              "%" MAX_ALTSVC_ALPNLENSTR "s %" MAX_ALTSVC_HOSTLENSTR "s %u "
+
              "\"%" MAX_ALTSVC_DATELENSTR "[^\"]\" %u %u",
+
              srcalpn, srchost, &srcport,
+
              dstalpn, dsthost, &dstport,
+
              date, &persist, &prio);
+
  if(9 == rc) {
    struct altsvc *as;
-
    char dbuf[MAX_ALTSVC_DATELEN + 1];
-
    time_t expires;
-

-
    /* The date parser works on a null terminated string. The maximum length
-
       is upheld by Curl_str_quotedword(). */
-
    memcpy(dbuf, date.str, date.len);
-
    dbuf[date.len] = 0;
-
    expires = Curl_getdate_capped(dbuf);
-
    as = altsvc_create(&srchost, &dsthost, &srcalpn, &dstalpn, srcport,
-
                       dstport);
+
    time_t expires = Curl_getdate_capped(date);
+
    as = altsvc_create(srchost, dsthost, srcalpn, dstalpn, srcport, dstport);
    if(as) {
      as->expires = expires;
-
      as->prio = 0; /* not supported to just set zero */
+
      as->prio = prio;
      as->persist = persist ? 1 : 0;
      Curl_llist_append(&asi->list, as, &as->node);
    }
@@ -477,6 +471,8 @@ static time_t altsvc_debugtime(void *unused)
#define time(x) altsvc_debugtime(x)
#endif

+
#define ISNEWLINE(x) (((x) == '\n') || (x) == '\r')
+

/*
 * Curl_altsvc_parse() takes an incoming alt-svc response header and stores
 * the data correctly in the cache.
@@ -499,8 +495,6 @@ CURLcode Curl_altsvc_parse(struct Curl_easy *data,
  unsigned short dstport = srcport; /* the same by default */
  CURLcode result = getalnum(&p, alpnbuf, sizeof(alpnbuf));
  size_t entries = 0;
-
  size_t alpnlen = strlen(alpnbuf);
-
  size_t srchostlen = strlen(srchost);
#ifdef CURL_DISABLE_VERBOSE_STRINGS
  (void)data;
#endif
@@ -521,7 +515,7 @@ CURLcode Curl_altsvc_parse(struct Curl_easy *data,
  do {
    if(*p == '=') {
      /* [protocol]="[host][:port]" */
-
      enum alpnid dstalpnid = Curl_alpn2alpnid(alpnbuf, alpnlen);
+
      enum alpnid dstalpnid = alpn2alpnid(alpnbuf); /* the same by default */
      p++;
      if(*p == '\"') {
        const char *dsthost = "";
@@ -639,18 +633,13 @@ CURLcode Curl_altsvc_parse(struct Curl_easy *data,
               this is the first entry of the line. */
            altsvc_flush(asi, srcalpnid, srchost, srcport);

-
          as = altsvc_createid(srchost, srchostlen,
-
                               dsthost, dstlen,
+
          as = altsvc_createid(srchost, dsthost, dstlen,
                               srcalpnid, dstalpnid,
                               srcport, dstport);
          if(as) {
-
            time_t secs = time(NULL);
-
            /* The expires time also needs to take the Age: value (if any)
-
               into account. [See RFC 7838 section 3.1] */
-
            if(maxage > (TIME_T_MAX - secs))
-
              as->expires = TIME_T_MAX;
-
            else
-
              as->expires = maxage + secs;
+
            /* The expires time also needs to take the Age: value (if any) into
+
               account. [See RFC 7838 section 3.1] */
+
            as->expires = maxage + time(NULL);
            as->persist = persist;
            Curl_llist_append(&asi->list, as, &as->node);
            infof(data, "Added alt-svc: %s:%d over %s", dsthost, dstport,
modified external/curl/lib/altsvc.h
@@ -29,6 +29,13 @@
#include <curl/curl.h>
#include "llist.h"

+
enum alpnid {
+
  ALPN_none = 0,
+
  ALPN_h1 = CURLALTSVC_H1,
+
  ALPN_h2 = CURLALTSVC_H2,
+
  ALPN_h3 = CURLALTSVC_H3
+
};
+

struct althost {
  char *host;
  unsigned short port;
modified external/curl/lib/amigaos.c
@@ -196,11 +196,12 @@ int Curl_amiga_select(int nfds, fd_set *readfds, fd_set *writefds,
 */

struct Library *SocketBase = NULL;
+
extern int errno, h_errno;

#ifdef __libnix__
void __request(const char *msg);
#else
-
# define __request(msg)       Printf((const unsigned char *)(msg "\n\a"), 0)
+
# define __request(msg)       Printf(msg "\n\a")
#endif

void Curl_amiga_cleanup(void)
@@ -214,7 +215,7 @@ void Curl_amiga_cleanup(void)
CURLcode Curl_amiga_init(void)
{
  if(!SocketBase)
-
    SocketBase = OpenLibrary((const unsigned char *)"bsdsocket.library", 4);
+
    SocketBase = OpenLibrary("bsdsocket.library", 4);

  if(!SocketBase) {
    __request("No TCP/IP Stack running!");
modified external/curl/lib/asyn-ares.c
@@ -24,14 +24,14 @@

#include "curl_setup.h"

-
#ifdef USE_ARES
-

/***********************************************************************
 * Only for ares-enabled builds
 * And only for functions that fulfill the asynch resolver backend API
 * as defined in asyn.h, nothing else belongs in this file!
 **********************************************************************/

+
#ifdef CURLRES_ARES
+

#include <limits.h>
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
@@ -59,101 +59,15 @@
#include "select.h"
#include "progress.h"
#include "timediff.h"
-
#include "httpsrr.h"
-
#include "strdup.h"

+
#if defined(CURL_STATICLIB) && !defined(CARES_STATICLIB) &&   \
+
  defined(_WIN32)
+
#  define CARES_STATICLIB
+
#endif
#include <ares.h>
#include <ares_version.h> /* really old c-ares did not include this by
                             itself */

-
/*
-
 * Curl_ares_getsock() is called when the outside world (using
-
 * curl_multi_fdset()) wants to get our fd_set setup and we are talking with
-
 * ares. The caller must make sure that this function is only called when we
-
 * have a working ares channel.
-
 *
-
 * Returns: sockets-in-use-bitmap
-
 */
-

-
int Curl_ares_getsock(struct Curl_easy *data,
-
                      ares_channel channel,
-
                      curl_socket_t *socks)
-
{
-
  struct timeval maxtime = { CURL_TIMEOUT_RESOLVE, 0 };
-
  struct timeval timebuf;
-
  int max = ares_getsock(channel,
-
                         (ares_socket_t *)socks, MAX_SOCKSPEREASYHANDLE);
-
  struct timeval *timeout = ares_timeout(channel, &maxtime, &timebuf);
-
  timediff_t milli = curlx_tvtoms(timeout);
-
  Curl_expire(data, milli, EXPIRE_ASYNC_NAME);
-
  return max;
-
}
-

-
/*
-
 * Curl_ares_perform()
-
 *
-
 * 1) Ask ares what sockets it currently plays with, then
-
 * 2) wait for the timeout period to check for action on ares' sockets.
-
 * 3) tell ares to act on all the sockets marked as "with action"
-
 *
-
 * return number of sockets it worked on, or -1 on error
-
 */
-

-
int Curl_ares_perform(ares_channel channel,
-
                      timediff_t timeout_ms)
-
{
-
  int nfds;
-
  int bitmask;
-
  ares_socket_t socks[ARES_GETSOCK_MAXNUM];
-
  struct pollfd pfd[ARES_GETSOCK_MAXNUM];
-
  int i;
-
  int num = 0;
-

-
  bitmask = ares_getsock(channel, socks, ARES_GETSOCK_MAXNUM);
-

-
  for(i = 0; i < ARES_GETSOCK_MAXNUM; i++) {
-
    pfd[i].events = 0;
-
    pfd[i].revents = 0;
-
    if(ARES_GETSOCK_READABLE(bitmask, i)) {
-
      pfd[i].fd = socks[i];
-
      pfd[i].events |= POLLRDNORM|POLLIN;
-
    }
-
    if(ARES_GETSOCK_WRITABLE(bitmask, i)) {
-
      pfd[i].fd = socks[i];
-
      pfd[i].events |= POLLWRNORM|POLLOUT;
-
    }
-
    if(pfd[i].events)
-
      num++;
-
    else
-
      break;
-
  }
-

-
  if(num) {
-
    nfds = Curl_poll(pfd, (unsigned int)num, timeout_ms);
-
    if(nfds < 0)
-
      return -1;
-
  }
-
  else
-
    nfds = 0;
-

-
  if(!nfds)
-
    /* Call ares_process() unconditionally here, even if we simply timed out
-
       above, as otherwise the ares name resolve will not timeout! */
-
    ares_process_fd(channel, ARES_SOCKET_BAD, ARES_SOCKET_BAD);
-
  else {
-
    /* move through the descriptors and ask for processing on them */
-
    for(i = 0; i < num; i++)
-
      ares_process_fd(channel,
-
                      (pfd[i].revents & (POLLRDNORM|POLLIN)) ?
-
                      pfd[i].fd : ARES_SOCKET_BAD,
-
                      (pfd[i].revents & (POLLWRNORM|POLLOUT)) ?
-
                      pfd[i].fd : ARES_SOCKET_BAD);
-
  }
-
  return nfds;
-
}
-

-
#ifdef CURLRES_ARES
-

#if ARES_VERSION >= 0x010500
/* c-ares 1.5.0 or later, the callback proto is modified */
#define HAVE_CARES_CALLBACK_TIMEOUTS 1
@@ -179,19 +93,22 @@ int Curl_ares_perform(ares_channel channel,
#define HAVE_CARES_GETADDRINFO 1
#endif

-
#if ARES_VERSION >= 0x011c00
-
/* 1.28.0 and later have ares_query_dnsrec */
-
#define HAVE_ARES_QUERY_DNSREC 1
-
#ifdef USE_HTTPSRR
-
#define USE_HTTPSRR_ARES 1
-
#endif
-
#endif
-

/* The last 3 #include files should be in this order */
#include "curl_printf.h"
#include "curl_memory.h"
#include "memdebug.h"

+
struct thread_data {
+
  int num_pending; /* number of outstanding c-ares requests */
+
  struct Curl_addrinfo *temp_ai; /* intermediary result while fetching c-ares
+
                                    parts */
+
  int last_status;
+
#ifndef HAVE_CARES_GETADDRINFO
+
  struct curltime happy_eyeballs_dns_time; /* when this timer started, or 0 */
+
#endif
+
  char hostname[1];
+
};
+

/* How long we are willing to wait for additional parallel responses after
   obtaining a "definitive" one. For old c-ares without getaddrinfo.

@@ -363,13 +280,89 @@ static void destroy_async_data(struct Curl_async *async)

/*
 * Curl_resolver_getsock() is called when someone from the outside world
-
 * (using curl_multi_fdset()) wants to get our fd_set setup.
+
 * (using curl_multi_fdset()) wants to get our fd_set setup and we are talking
+
 * with ares. The caller must make sure that this function is only called when
+
 * we have a working ares channel.
+
 *
+
 * Returns: sockets-in-use-bitmap
+
 */
+

+
int Curl_resolver_getsock(struct Curl_easy *data,
+
                          curl_socket_t *socks)
+
{
+
  struct timeval maxtime = { CURL_TIMEOUT_RESOLVE, 0 };
+
  struct timeval timebuf;
+
  int max = ares_getsock((ares_channel)data->state.async.resolver,
+
                         (ares_socket_t *)socks, MAX_SOCKSPEREASYHANDLE);
+
  struct timeval *timeout =
+
    ares_timeout((ares_channel)data->state.async.resolver, &maxtime, &timebuf);
+
  timediff_t milli = curlx_tvtoms(timeout);
+
  Curl_expire(data, milli, EXPIRE_ASYNC_NAME);
+
  return max;
+
}
+

+
/*
+
 * waitperform()
+
 *
+
 * 1) Ask ares what sockets it currently plays with, then
+
 * 2) wait for the timeout period to check for action on ares' sockets.
+
 * 3) tell ares to act on all the sockets marked as "with action"
+
 *
+
 * return number of sockets it worked on, or -1 on error
 */

-
int Curl_resolver_getsock(struct Curl_easy *data, curl_socket_t *socks)
+
static int waitperform(struct Curl_easy *data, timediff_t timeout_ms)
{
-
  return Curl_ares_getsock(data, (ares_channel)data->state.async.resolver,
-
                           socks);
+
  int nfds;
+
  int bitmask;
+
  ares_socket_t socks[ARES_GETSOCK_MAXNUM];
+
  struct pollfd pfd[ARES_GETSOCK_MAXNUM];
+
  int i;
+
  int num = 0;
+

+
  bitmask = ares_getsock((ares_channel)data->state.async.resolver, socks,
+
                         ARES_GETSOCK_MAXNUM);
+

+
  for(i = 0; i < ARES_GETSOCK_MAXNUM; i++) {
+
    pfd[i].events = 0;
+
    pfd[i].revents = 0;
+
    if(ARES_GETSOCK_READABLE(bitmask, i)) {
+
      pfd[i].fd = socks[i];
+
      pfd[i].events |= POLLRDNORM|POLLIN;
+
    }
+
    if(ARES_GETSOCK_WRITABLE(bitmask, i)) {
+
      pfd[i].fd = socks[i];
+
      pfd[i].events |= POLLWRNORM|POLLOUT;
+
    }
+
    if(pfd[i].events)
+
      num++;
+
    else
+
      break;
+
  }
+

+
  if(num) {
+
    nfds = Curl_poll(pfd, (unsigned int)num, timeout_ms);
+
    if(nfds < 0)
+
      return -1;
+
  }
+
  else
+
    nfds = 0;
+

+
  if(!nfds)
+
    /* Call ares_process() unconditionally here, even if we simply timed out
+
       above, as otherwise the ares name resolve will not timeout! */
+
    ares_process_fd((ares_channel)data->state.async.resolver, ARES_SOCKET_BAD,
+
                    ARES_SOCKET_BAD);
+
  else {
+
    /* move through the descriptors and ask for processing on them */
+
    for(i = 0; i < num; i++)
+
      ares_process_fd((ares_channel)data->state.async.resolver,
+
                      (pfd[i].revents & (POLLRDNORM|POLLIN)) ?
+
                      pfd[i].fd : ARES_SOCKET_BAD,
+
                      (pfd[i].revents & (POLLWRNORM|POLLOUT)) ?
+
                      pfd[i].fd : ARES_SOCKET_BAD);
+
  }
+
  return nfds;
}

/*
@@ -388,7 +381,7 @@ CURLcode Curl_resolver_is_resolved(struct Curl_easy *data,
  DEBUGASSERT(dns);
  *dns = NULL;

-
  if(Curl_ares_perform((ares_channel)data->state.async.resolver, 0) < 0)
+
  if(waitperform(data, 0) < 0)
    return CURLE_UNRECOVERABLE_POLL;

#ifndef HAVE_CARES_GETADDRINFO
@@ -424,19 +417,8 @@ CURLcode Curl_resolver_is_resolved(struct Curl_easy *data,

    if(!data->state.async.dns)
      result = Curl_resolver_error(data);
-
    else {
+
    else
      *dns = data->state.async.dns;
-
#ifdef USE_HTTPSRR_ARES
-
      {
-
        struct Curl_https_rrinfo *lhrr =
-
          Curl_memdup(&res->hinfo, sizeof(struct Curl_https_rrinfo));
-
        if(!lhrr)
-
          result = CURLE_OUT_OF_MEMORY;
-
        else
-
          (*dns)->hinfo = lhrr;
-
      }
-
#endif
-
    }

    destroy_async_data(&data->state.async);
  }
@@ -499,8 +481,7 @@ CURLcode Curl_resolver_wait_resolv(struct Curl_easy *data,
    else
      timeout_ms = 1000;

-
    if(Curl_ares_perform((ares_channel)data->state.async.resolver,
-
                         timeout_ms) < 0)
+
    if(waitperform(data, timeout_ms) < 0)
      return CURLE_UNRECOVERABLE_POLL;
    result = Curl_resolver_is_resolved(data, entry);

@@ -764,7 +745,6 @@ static void addrinfo_cb(void *arg, int status, int timeouts,
}

#endif
-

/*
 * Curl_resolver_getaddrinfo() - when using ares
 *
@@ -847,16 +827,6 @@ struct Curl_addrinfo *Curl_resolver_getaddrinfo(struct Curl_easy *data,
                         query_completed_cb, data);
    }
#endif
-
#ifdef USE_HTTPSRR_ARES
-
    {
-
      res->num_pending++; /* one more */
-
      memset(&res->hinfo, 0, sizeof(struct Curl_https_rrinfo));
-
      ares_query_dnsrec((ares_channel)data->state.async.resolver,
-
                        hostname, ARES_CLASS_IN,
-
                        ARES_REC_TYPE_HTTPS,
-
                        Curl_dnsrec_done_cb, data, NULL);
-
    }
-
#endif
    *waitp = 1; /* expect asynchronous response */
  }
  return NULL; /* no struct yet */
@@ -868,26 +838,14 @@ CURLcode Curl_set_dns_servers(struct Curl_easy *data,
  CURLcode result = CURLE_NOT_BUILT_IN;
  int ares_result;

-
  /* If server is NULL, this purges all DNS servers from c-ares. Reset it to
-
   * default.
+
  /* If server is NULL or empty, this would purge all DNS servers
+
   * from ares library, which will cause any and all queries to fail.
+
   * So, just return OK if none are configured and do not actually make
+
   * any changes to c-ares. This lets c-ares use its defaults, which
+
   * it gets from the OS (for instance from /etc/resolv.conf on Linux).
   */
-
  if(!servers) {
-
    Curl_resolver_cleanup(data->state.async.resolver);
-
    result = Curl_resolver_init(data, &data->state.async.resolver);
-
    if(!result) {
-
      /* this now needs to restore the other options set to c-ares */
-
      if(data->set.str[STRING_DNS_INTERFACE])
-
        (void)Curl_set_dns_interface(data,
-
                                     data->set.str[STRING_DNS_INTERFACE]);
-
      if(data->set.str[STRING_DNS_LOCAL_IP4])
-
        (void)Curl_set_dns_local_ip4(data,
-
                                     data->set.str[STRING_DNS_LOCAL_IP4]);
-
      if(data->set.str[STRING_DNS_LOCAL_IP6])
-
        (void)Curl_set_dns_local_ip6(data,
-
                                     data->set.str[STRING_DNS_LOCAL_IP6]);
-
    }
-
    return result;
-
  }
+
  if(!(servers && servers[0]))
+
    return CURLE_OK;

#ifdef HAVE_CARES_SERVERS_CSV
#ifdef HAVE_CARES_PORTS_CSV
@@ -989,5 +947,3 @@ CURLcode Curl_set_dns_local_ip6(struct Curl_easy *data,
#endif
}
#endif /* CURLRES_ARES */
-

-
#endif /* USE_ARES */
modified external/curl/lib/asyn-thread.c
@@ -64,15 +64,6 @@
#include "inet_ntop.h"
#include "curl_threads.h"
#include "connect.h"
-
#include "strdup.h"
-

-
#ifdef USE_ARES
-
#include <ares.h>
-
#ifdef USE_HTTPSRR
-
#define USE_HTTPSRR_ARES 1 /* the combo */
-
#endif
-
#endif
-

/* The last 3 #include files should be in this order */
#include "curl_printf.h"
#include "curl_memory.h"
@@ -154,6 +145,32 @@ static bool init_resolve_thread(struct Curl_easy *data,
                                const struct addrinfo *hints);


+
/* Data for synchronization between resolver thread and its parent */
+
struct thread_sync_data {
+
  curl_mutex_t *mtx;
+
  int done;
+
  int port;
+
  char *hostname;        /* hostname to resolve, Curl_async.hostname
+
                            duplicate */
+
#ifndef CURL_DISABLE_SOCKETPAIR
+
  struct Curl_easy *data;
+
  curl_socket_t sock_pair[2]; /* eventfd/pipes/socket pair */
+
#endif
+
  int sock_error;
+
  struct Curl_addrinfo *res;
+
#ifdef HAVE_GETADDRINFO
+
  struct addrinfo hints;
+
#endif
+
  struct thread_data *td; /* for thread-self cleanup */
+
};
+

+
struct thread_data {
+
  curl_thread_t thread_hnd;
+
  unsigned int poll_interval;
+
  timediff_t interval_end;
+
  struct thread_sync_data tsd;
+
};
+

static struct thread_sync_data *conn_thread_sync_data(struct Curl_easy *data)
{
  return &(data->state.async.tdata->tsd);
@@ -178,12 +195,10 @@ void destroy_thread_sync_data(struct thread_sync_data *tsd)
   * close one end of the socket pair (may be done in resolver thread);
   * the other end (for reading) is always closed in the parent thread.
   */
-
#ifndef USE_EVENTFD
  if(tsd->sock_pair[1] != CURL_SOCKET_BAD) {
    wakeup_close(tsd->sock_pair[1]);
  }
#endif
-
#endif
  memset(tsd, 0, sizeof(*tsd));
}

@@ -203,7 +218,7 @@ int init_thread_sync_data(struct thread_data *td,
  /* Treat the request as done until the thread actually starts so any early
   * cleanup gets done properly.
   */
-
  tsd->done = TRUE;
+
  tsd->done = 1;
#ifdef HAVE_GETADDRINFO
  DEBUGASSERT(hints);
  tsd->hints = *hints;
@@ -326,7 +341,7 @@ CURL_STDCALL getaddrinfo_thread(void *arg)
      }
    }
#endif
-
    tsd->done = TRUE;
+
    tsd->done = 1;
    Curl_mutex_release(tsd->mtx);
  }

@@ -365,7 +380,7 @@ CURL_STDCALL gethostbyname_thread(void *arg)
    free(td);
  }
  else {
-
    tsd->done = TRUE;
+
    tsd->done = 1;
    Curl_mutex_release(tsd->mtx);
  }

@@ -381,22 +396,19 @@ static void destroy_async_data(struct Curl_async *async)
{
  if(async->tdata) {
    struct thread_data *td = async->tdata;
-
    bool done;
+
    int done;
#ifndef CURL_DISABLE_SOCKETPAIR
    curl_socket_t sock_rd = td->tsd.sock_pair[0];
    struct Curl_easy *data = td->tsd.data;
#endif

-
#ifdef USE_HTTPSRR_ARES
-
    ares_destroy(data->state.async.tdata->channel);
-
#endif
    /*
     * if the thread is still blocking in the resolve syscall, detach it and
     * let the thread do the cleanup...
     */
    Curl_mutex_acquire(td->tsd.mtx);
    done = td->tsd.done;
-
    td->tsd.done = TRUE;
+
    td->tsd.done = 1;
    Curl_mutex_release(td->tsd.mtx);

    if(!done) {
@@ -425,24 +437,6 @@ static void destroy_async_data(struct Curl_async *async)
  async->hostname = NULL;
}

-
#ifdef USE_HTTPSRR_ARES
-
static CURLcode resolve_httpsrr(struct Curl_easy *data,
-
                                struct Curl_async *asp)
-
{
-
  int status = ares_init_options(&asp->tdata->channel, NULL, 0);
-
  if(status != ARES_SUCCESS)
-
    return CURLE_FAILED_INIT;
-

-
  memset(&asp->tdata->hinfo, 0, sizeof(struct Curl_https_rrinfo));
-
  ares_query_dnsrec(asp->tdata->channel,
-
                    asp->hostname, ARES_CLASS_IN,
-
                    ARES_REC_TYPE_HTTPS,
-
                    Curl_dnsrec_done_cb, data, NULL);
-

-
  return CURLE_OK;
-
}
-
#endif
-

/*
 * init_resolve_thread() starts a new thread that performs the actual
 * resolve. This function returns before the resolve is done.
@@ -478,8 +472,8 @@ static bool init_resolve_thread(struct Curl_easy *data,
  if(!asp->hostname)
    goto err_exit;

-
  /* The thread will set this TRUE when complete. */
-
  td->tsd.done = FALSE;
+
  /* The thread will set this to 1 when complete. */
+
  td->tsd.done = 0;

#ifdef HAVE_GETADDRINFO
  td->thread_hnd = Curl_thread_create(getaddrinfo_thread, &td->tsd);
@@ -489,14 +483,11 @@ static bool init_resolve_thread(struct Curl_easy *data,

  if(td->thread_hnd == curl_thread_t_null) {
    /* The thread never started, so mark it as done here for proper cleanup. */
-
    td->tsd.done = TRUE;
+
    td->tsd.done = 1;
    err = errno;
    goto err_exit;
  }
-
#ifdef USE_HTTPSRR_ARES
-
  if(resolve_httpsrr(data, asp))
-
    goto err_exit;
-
#endif
+

  return TRUE;

err_exit:
@@ -594,7 +585,7 @@ CURLcode Curl_resolver_is_resolved(struct Curl_easy *data,
                                   struct Curl_dns_entry **entry)
{
  struct thread_data *td = data->state.async.tdata;
-
  bool done = FALSE;
+
  int done = 0;

  DEBUGASSERT(entry);
  *entry = NULL;
@@ -603,10 +594,6 @@ CURLcode Curl_resolver_is_resolved(struct Curl_easy *data,
    DEBUGASSERT(td);
    return CURLE_COULDNT_RESOLVE_HOST;
  }
-
#ifdef USE_HTTPSRR_ARES
-
  if(Curl_ares_perform(data->state.async.tdata->channel, 0) < 0)
-
    return CURLE_UNRECOVERABLE_POLL;
-
#endif

  Curl_mutex_acquire(td->tsd.mtx);
  done = td->tsd.done;
@@ -620,17 +607,6 @@ CURLcode Curl_resolver_is_resolved(struct Curl_easy *data,
      destroy_async_data(&data->state.async);
      return result;
    }
-
#ifdef USE_HTTPSRR_ARES
-
    {
-
      struct Curl_https_rrinfo *lhrr =
-
        Curl_memdup(&td->hinfo, sizeof(struct Curl_https_rrinfo));
-
      if(!lhrr) {
-
        destroy_async_data(&data->state.async);
-
        return CURLE_OUT_OF_MEMORY;
-
      }
-
      data->state.async.dns->hinfo = lhrr;
-
    }
-
#endif
    destroy_async_data(&data->state.async);
    *entry = data->state.async.dns;
  }
@@ -665,28 +641,18 @@ int Curl_resolver_getsock(struct Curl_easy *data, curl_socket_t *socks)
  timediff_t milli;
  timediff_t ms;
  struct resdata *reslv = (struct resdata *)data->state.async.resolver;
-
  int socketi = 0;
#ifndef CURL_DISABLE_SOCKETPAIR
  struct thread_data *td = data->state.async.tdata;
#else
  (void)socks;
#endif

-
#ifdef USE_HTTPSRR_ARES
-
  if(data->state.async.tdata) {
-
    ret_val = Curl_ares_getsock(data, data->state.async.tdata->channel, socks);
-
    for(socketi = 0; socketi < (MAX_SOCKSPEREASYHANDLE - 1); socketi++)
-
      if(!ARES_GETSOCK_READABLE(ret_val, socketi) &&
-
         !ARES_GETSOCK_WRITABLE(ret_val, socketi))
-
        break;
-
  }
-
#endif
#ifndef CURL_DISABLE_SOCKETPAIR
  if(td) {
    /* return read fd to client for polling the DNS resolution status */
-
    socks[socketi] = td->tsd.sock_pair[0];
+
    socks[0] = td->tsd.sock_pair[0];
    td->tsd.data = data;
-
    ret_val = GETSOCK_READSOCK(socketi);
+
    ret_val = GETSOCK_READSOCK(0);
  }
  else {
#endif
modified external/curl/lib/asyn.h
@@ -26,7 +26,6 @@

#include "curl_setup.h"
#include "curl_addrinfo.h"
-
#include "httpsrr.h"

struct addrinfo;
struct hostent;
@@ -34,69 +33,6 @@ struct Curl_easy;
struct connectdata;
struct Curl_dns_entry;

-
#ifdef CURLRES_THREADED
-
#include "curl_threads.h"
-

-
/* Data for synchronization between resolver thread and its parent */
-
struct thread_sync_data {
-
  curl_mutex_t *mtx;
-
  bool done;
-
  int port;
-
  char *hostname;        /* hostname to resolve, Curl_async.hostname
-
                            duplicate */
-
#ifndef CURL_DISABLE_SOCKETPAIR
-
  struct Curl_easy *data;
-
  curl_socket_t sock_pair[2]; /* eventfd/pipes/socket pair */
-
#endif
-
  int sock_error;
-
  struct Curl_addrinfo *res;
-
#ifdef HAVE_GETADDRINFO
-
  struct addrinfo hints;
-
#endif
-
  struct thread_data *td; /* for thread-self cleanup */
-
};
-

-
struct thread_data {
-
  curl_thread_t thread_hnd;
-
  unsigned int poll_interval;
-
  timediff_t interval_end;
-
  struct thread_sync_data tsd;
-
#if defined(USE_HTTPSRR) && defined(USE_ARES)
-
  struct Curl_https_rrinfo hinfo;
-
  ares_channel channel;
-
#endif
-
};
-

-
#elif defined(CURLRES_ARES) /* CURLRES_THREADED */
-

-
struct thread_data {
-
  int num_pending; /* number of outstanding c-ares requests */
-
  struct Curl_addrinfo *temp_ai; /* intermediary result while fetching c-ares
-
                                    parts */
-
  int last_status;
-
#ifndef HAVE_CARES_GETADDRINFO
-
  struct curltime happy_eyeballs_dns_time; /* when this timer started, or 0 */
-
#endif
-
#ifdef USE_HTTPSRR
-
  struct Curl_https_rrinfo hinfo;
-
#endif
-
  char hostname[1];
-
};
-

-
#endif /* CURLRES_ARES */
-

-
#ifdef USE_ARES
-
#include <ares.h>
-

-
/* for HTTPS RR purposes as well */
-
int Curl_ares_getsock(struct Curl_easy *data,
-
                      ares_channel channel,
-
                      curl_socket_t *socks);
-
int Curl_ares_perform(ares_channel channel,
-
                      timediff_t timeout_ms);
-
#endif
-

-

/*
 * This header defines all functions in the internal asynch resolver interface.
 * All asynch resolvers need to provide these functions.
modified external/curl/lib/bufq.c
@@ -45,6 +45,11 @@ static size_t chunk_len(const struct buf_chunk *chunk)
  return chunk->w_offset - chunk->r_offset;
}

+
static size_t chunk_space(const struct buf_chunk *chunk)
+
{
+
  return chunk->dlen - chunk->w_offset;
+
}
+

static void chunk_reset(struct buf_chunk *chunk)
{
  chunk->next = NULL;
@@ -282,6 +287,24 @@ size_t Curl_bufq_len(const struct bufq *q)
  return len;
}

+
size_t Curl_bufq_space(const struct bufq *q)
+
{
+
  size_t space = 0;
+
  if(q->tail)
+
    space += chunk_space(q->tail);
+
  if(q->spare) {
+
    struct buf_chunk *chunk = q->spare;
+
    while(chunk) {
+
      space += chunk->dlen;
+
      chunk = chunk->next;
+
    }
+
  }
+
  if(q->chunk_count < q->max_chunks) {
+
    space += (q->max_chunks - q->chunk_count) * q->chunk_size;
+
  }
+
  return space;
+
}
+

bool Curl_bufq_is_empty(const struct bufq *q)
{
  return !q->head || chunk_is_empty(q->head);
modified external/curl/lib/bufq.h
@@ -151,6 +151,14 @@ void Curl_bufq_free(struct bufq *q);
size_t Curl_bufq_len(const struct bufq *q);

/**
+
 * Return the total amount of free space in the queue.
+
 * The returned length is the number of bytes that can
+
 * be expected to be written successfully to the bufq,
+
 * providing no memory allocations fail.
+
 */
+
size_t Curl_bufq_space(const struct bufq *q);
+

+
/**
 * Returns TRUE iff there is no data in the buffer queue.
 */
bool Curl_bufq_is_empty(const struct bufq *q);
added external/curl/lib/c-hyper.c
@@ -0,0 +1,1254 @@
+
/***************************************************************************
+
 *                                  _   _ ____  _
+
 *  Project                     ___| | | |  _ \| |
+
 *                             / __| | | | |_) | |
+
 *                            | (__| |_| |  _ <| |___
+
 *                             \___|\___/|_| \_\_____|
+
 *
+
 * Copyright (C) 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.
+
 *
+
 * SPDX-License-Identifier: curl
+
 *
+
 ***************************************************************************/
+

+
/* Curl's integration with Hyper. This replaces certain functions in http.c,
+
 * based on configuration #defines. This implementation supports HTTP/1.1 but
+
 * not HTTP/2.
+
 */
+
#include "curl_setup.h"
+

+
#if !defined(CURL_DISABLE_HTTP) && defined(USE_HYPER)
+

+
#ifdef HAVE_NETINET_IN_H
+
#include <netinet/in.h>
+
#endif
+

+
#ifdef HAVE_NETDB_H
+
#include <netdb.h>
+
#endif
+
#ifdef HAVE_ARPA_INET_H
+
#include <arpa/inet.h>
+
#endif
+
#ifdef HAVE_NET_IF_H
+
#include <net/if.h>
+
#endif
+
#ifdef HAVE_SYS_IOCTL_H
+
#include <sys/ioctl.h>
+
#endif
+

+
#ifdef HAVE_SYS_PARAM_H
+
#include <sys/param.h>
+
#endif
+

+
#include <hyper.h>
+
#include "urldata.h"
+
#include "cfilters.h"
+
#include "sendf.h"
+
#include "headers.h"
+
#include "transfer.h"
+
#include "multiif.h"
+
#include "progress.h"
+
#include "content_encoding.h"
+
#include "ws.h"
+

+
/* The last 3 #include files should be in this order */
+
#include "curl_printf.h"
+
#include "curl_memory.h"
+
#include "memdebug.h"
+

+

+
static CURLcode cr_hyper_add(struct Curl_easy *data);
+

+
typedef enum {
+
    USERDATA_NOT_SET = 0, /* for tasks with no userdata set; must be zero */
+
    USERDATA_RESP_BODY
+
} userdata_t;
+

+
size_t Curl_hyper_recv(void *userp, hyper_context *ctx,
+
                       uint8_t *buf, size_t buflen)
+
{
+
  struct hyp_io_ctx *io_ctx = userp;
+
  struct Curl_easy *data = io_ctx->data;
+
  struct connectdata *conn = data->conn;
+
  CURLcode result;
+
  ssize_t nread;
+
  DEBUGASSERT(conn);
+
  (void)ctx;
+

+
  DEBUGF(infof(data, "Curl_hyper_recv(%zu)", buflen));
+
  result = Curl_conn_recv(data, io_ctx->sockindex,
+
                          (char *)buf, buflen, &nread);
+
  if(result == CURLE_AGAIN) {
+
    /* would block, register interest */
+
    DEBUGF(infof(data, "Curl_hyper_recv(%zu) -> EAGAIN", buflen));
+
    if(data->hyp.read_waker)
+
      hyper_waker_free(data->hyp.read_waker);
+
    data->hyp.read_waker = hyper_context_waker(ctx);
+
    if(!data->hyp.read_waker) {
+
      failf(data, "Couldn't make the read hyper_context_waker");
+
      return HYPER_IO_ERROR;
+
    }
+
    return HYPER_IO_PENDING;
+
  }
+
  else if(result) {
+
    failf(data, "Curl_read failed");
+
    return HYPER_IO_ERROR;
+
  }
+
  DEBUGF(infof(data, "Curl_hyper_recv(%zu) -> %zd", buflen, nread));
+
  return (size_t)nread;
+
}
+

+
size_t Curl_hyper_send(void *userp, hyper_context *ctx,
+
                       const uint8_t *buf, size_t buflen)
+
{
+
  struct hyp_io_ctx *io_ctx = userp;
+
  struct Curl_easy *data = io_ctx->data;
+
  CURLcode result;
+
  size_t nwrote;
+

+
  DEBUGF(infof(data, "Curl_hyper_send(%zu)", buflen));
+
  result = Curl_conn_send(data, io_ctx->sockindex,
+
                          (void *)buf, buflen, FALSE, &nwrote);
+
  if(result == CURLE_AGAIN) {
+
    DEBUGF(infof(data, "Curl_hyper_send(%zu) -> EAGAIN", buflen));
+
    /* would block, register interest */
+
    if(data->hyp.write_waker)
+
      hyper_waker_free(data->hyp.write_waker);
+
    data->hyp.write_waker = hyper_context_waker(ctx);
+
    if(!data->hyp.write_waker) {
+
      failf(data, "Couldn't make the write hyper_context_waker");
+
      return HYPER_IO_ERROR;
+
    }
+
    return HYPER_IO_PENDING;
+
  }
+
  else if(result) {
+
    failf(data, "Curl_write failed");
+
    return HYPER_IO_ERROR;
+
  }
+
  DEBUGF(infof(data, "Curl_hyper_send(%zu) -> %zd", buflen, nwrote));
+
  return (size_t)nwrote;
+
}
+

+
static int hyper_each_header(void *userdata,
+
                             const uint8_t *name,
+
                             size_t name_len,
+
                             const uint8_t *value,
+
                             size_t value_len)
+
{
+
  struct Curl_easy *data = (struct Curl_easy *)userdata;
+
  size_t len;
+
  char *headp;
+
  CURLcode result;
+
  int writetype;
+

+
  if(name_len + value_len + 2 > CURL_MAX_HTTP_HEADER) {
+
    failf(data, "Too long response header");
+
    data->state.hresult = CURLE_TOO_LARGE;
+
    return HYPER_ITER_BREAK;
+
  }
+

+
  Curl_dyn_reset(&data->state.headerb);
+
  if(name_len) {
+
    if(Curl_dyn_addf(&data->state.headerb, "%.*s: %.*s\r\n",
+
                     (int) name_len, name, (int) value_len, value))
+
      return HYPER_ITER_BREAK;
+
  }
+
  else {
+
    if(Curl_dyn_addn(&data->state.headerb, STRCONST("\r\n")))
+
      return HYPER_ITER_BREAK;
+
  }
+
  len = Curl_dyn_len(&data->state.headerb);
+
  headp = Curl_dyn_ptr(&data->state.headerb);
+

+
  result = Curl_http_header(data, headp, len);
+
  if(result) {
+
    data->state.hresult = result;
+
    return HYPER_ITER_BREAK;
+
  }
+

+
  Curl_debug(data, CURLINFO_HEADER_IN, headp, len);
+

+
  writetype = CLIENTWRITE_HEADER;
+
  if(data->state.hconnect)
+
    writetype |= CLIENTWRITE_CONNECT;
+
  if(data->req.httpcode/100 == 1)
+
    writetype |= CLIENTWRITE_1XX;
+
  result = Curl_client_write(data, writetype, headp, len);
+
  if(result) {
+
    data->state.hresult = CURLE_ABORTED_BY_CALLBACK;
+
    return HYPER_ITER_BREAK;
+
  }
+

+
  result = Curl_bump_headersize(data, len, FALSE);
+
  if(result) {
+
    data->state.hresult = result;
+
    return HYPER_ITER_BREAK;
+
  }
+
  return HYPER_ITER_CONTINUE;
+
}
+

+
static int hyper_body_chunk(void *userdata, const hyper_buf *chunk)
+
{
+
  char *buf = (char *)hyper_buf_bytes(chunk);
+
  size_t len = hyper_buf_len(chunk);
+
  struct Curl_easy *data = (struct Curl_easy *)userdata;
+
  struct SingleRequest *k = &data->req;
+
  CURLcode result = CURLE_OK;
+

+
  if(!k->bodywritten) {
+
#if defined(USE_NTLM)
+
    struct connectdata *conn = data->conn;
+
    if(conn->bits.close &&
+
       (((data->req.httpcode == 401) &&
+
         (conn->http_ntlm_state == NTLMSTATE_TYPE2)) ||
+
        ((data->req.httpcode == 407) &&
+
         (conn->proxy_ntlm_state == NTLMSTATE_TYPE2)))) {
+
      infof(data, "Connection closed while negotiating NTLM");
+
      data->state.authproblem = TRUE;
+
      Curl_safefree(data->req.newurl);
+
    }
+
#endif
+
    if(Curl_http_exp100_is_selected(data)) {
+
      if(data->req.httpcode < 400) {
+
        Curl_http_exp100_got100(data);
+
        if(data->hyp.send_body_waker) {
+
          hyper_waker_wake(data->hyp.send_body_waker);
+
          data->hyp.send_body_waker = NULL;
+
        }
+
      }
+
      else { /* >= 4xx */
+
        Curl_req_abort_sending(data);
+
      }
+
    }
+
    if(data->state.hconnect && (data->req.httpcode/100 != 2) &&
+
       data->state.authproxy.done) {
+
      data->req.done = TRUE;
+
      result = CURLE_OK;
+
    }
+
    else
+
      result = Curl_http_firstwrite(data);
+
    if(result || data->req.done) {
+
      infof(data, "Return early from hyper_body_chunk");
+
      data->state.hresult = result;
+
      return HYPER_ITER_BREAK;
+
    }
+
  }
+
  result = Curl_client_write(data, CLIENTWRITE_BODY, buf, len);
+

+
  if(result) {
+
    data->state.hresult = result;
+
    return HYPER_ITER_BREAK;
+
  }
+

+
  return HYPER_ITER_CONTINUE;
+
}
+

+
/*
+
 * Hyper does not consider the status line, the first line in an HTTP/1
+
 * response, to be a header. The libcurl API does. This function sends the
+
 * status line in the header callback. */
+
static CURLcode status_line(struct Curl_easy *data,
+
                            struct connectdata *conn,
+
                            uint16_t http_status,
+
                            int http_version,
+
                            const uint8_t *reason, size_t rlen)
+
{
+
  CURLcode result;
+
  size_t len;
+
  const char *vstr;
+
  int writetype;
+
  vstr = http_version == HYPER_HTTP_VERSION_1_1 ? "1.1" :
+
    (http_version == HYPER_HTTP_VERSION_2 ? "2" : "1.0");
+

+
  /* We need to set 'httpcodeq' for functions that check the response code in
+
     a single place. */
+
  data->req.httpcode = http_status;
+
  data->req.httpversion = http_version == HYPER_HTTP_VERSION_1_1 ? 11 :
+
                          (http_version == HYPER_HTTP_VERSION_2 ? 20 : 10);
+
  if(data->state.hconnect)
+
    /* CONNECT */
+
    data->info.httpproxycode = http_status;
+
  else {
+
    conn->httpversion = (unsigned char)data->req.httpversion;
+
    if(http_version == HYPER_HTTP_VERSION_1_0)
+
      data->state.httpwant = CURL_HTTP_VERSION_1_0;
+

+
    result = Curl_http_statusline(data, conn);
+
    if(result)
+
      return result;
+
  }
+

+
  Curl_dyn_reset(&data->state.headerb);
+

+
  result = Curl_dyn_addf(&data->state.headerb, "HTTP/%s %03d %.*s\r\n",
+
                         vstr,
+
                         (int)http_status,
+
                         (int)rlen, reason);
+
  if(result)
+
    return result;
+
  len = Curl_dyn_len(&data->state.headerb);
+
  Curl_debug(data, CURLINFO_HEADER_IN, Curl_dyn_ptr(&data->state.headerb),
+
             len);
+

+
  writetype = CLIENTWRITE_HEADER|CLIENTWRITE_STATUS;
+
  if(data->state.hconnect)
+
    writetype |= CLIENTWRITE_CONNECT;
+
  result = Curl_client_write(data, writetype,
+
                             Curl_dyn_ptr(&data->state.headerb), len);
+
  if(result)
+
    return result;
+

+
  result = Curl_bump_headersize(data, len, FALSE);
+
  return result;
+
}
+

+
/*
+
 * Hyper does not pass on the last empty response header. The libcurl API
+
 * does. This function sends an empty header in the header callback.
+
 */
+
static CURLcode empty_header(struct Curl_easy *data)
+
{
+
  CURLcode result = Curl_http_size(data);
+
  if(!result) {
+
    result = hyper_each_header(data, NULL, 0, NULL, 0) ?
+
      CURLE_WRITE_ERROR : CURLE_OK;
+
    if(result)
+
      failf(data, "hyperstream: could not pass blank header");
+
    /* Hyper does chunked decoding itself. If it was added during
+
     * response header processing, remove it again. */
+
    Curl_cwriter_remove_by_name(data, "chunked");
+
  }
+
  return result;
+
}
+

+
CURLcode Curl_hyper_stream(struct Curl_easy *data,
+
                           struct connectdata *conn,
+
                           int *didwhat,
+
                           int select_res)
+
{
+
  hyper_response *resp = NULL;
+
  uint16_t http_status;
+
  int http_version;
+
  hyper_headers *headers = NULL;
+
  hyper_body *resp_body = NULL;
+
  struct hyptransfer *h = &data->hyp;
+
  hyper_task *task;
+
  hyper_task *foreach;
+
  const uint8_t *reasonp;
+
  size_t reason_len;
+
  CURLcode result = CURLE_OK;
+
  struct SingleRequest *k = &data->req;
+
  (void)conn;
+

+
  if(data->hyp.send_body_waker) {
+
    /* If there is still something to upload, wake it to give it
+
     * another try. */
+
    hyper_waker_wake(data->hyp.send_body_waker);
+
    data->hyp.send_body_waker = NULL;
+
  }
+

+
  if(select_res & CURL_CSELECT_IN) {
+
    if(h->read_waker)
+
      hyper_waker_wake(h->read_waker);
+
    h->read_waker = NULL;
+
  }
+
  if(select_res & CURL_CSELECT_OUT) {
+
    if(h->write_waker)
+
      hyper_waker_wake(h->write_waker);
+
    h->write_waker = NULL;
+
  }
+

+
  while(1) {
+
    hyper_task_return_type t;
+
    task = hyper_executor_poll(h->exec);
+
    if(!task) {
+
      *didwhat = KEEP_RECV;
+
      break;
+
    }
+
    t = hyper_task_type(task);
+
    if(t == HYPER_TASK_ERROR) {
+
      hyper_error *hypererr = hyper_task_value(task);
+
      hyper_task_free(task);
+
      if(data->state.hresult) {
+
        /* override Hyper's view, might not even be an error */
+
        result = data->state.hresult;
+
        infof(data, "hyperstream is done (by early callback)");
+
      }
+
      else {
+
        uint8_t errbuf[256];
+
        size_t errlen = hyper_error_print(hypererr, errbuf, sizeof(errbuf));
+
        hyper_code code = hyper_error_code(hypererr);
+
        failf(data, "Hyper: [%d] %.*s", (int)code, (int)errlen, errbuf);
+
        switch(code) {
+
        case HYPERE_ABORTED_BY_CALLBACK:
+
          result = CURLE_OK;
+
          goto out;
+
        case HYPERE_UNEXPECTED_EOF:
+
          if(!data->req.bytecount)
+
            result = CURLE_GOT_NOTHING;
+
          else
+
            result = CURLE_RECV_ERROR;
+
          goto out;
+
        case HYPERE_INVALID_PEER_MESSAGE:
+
          /* bump headerbytecount to avoid the count remaining at zero and
+
             appearing to not having read anything from the peer at all */
+
          data->req.headerbytecount++;
+
          result = CURLE_UNSUPPORTED_PROTOCOL; /* maybe */
+
          goto out;
+
        default:
+
          result = CURLE_RECV_ERROR;
+
          goto out;
+
        }
+
      }
+
      data->req.done = TRUE;
+
      hyper_error_free(hypererr);
+
      break;
+
    }
+
    else if(t == HYPER_TASK_EMPTY) {
+
      void *userdata = hyper_task_userdata(task);
+
      hyper_task_free(task);
+
      if(userdata == (void *)USERDATA_RESP_BODY) {
+
        /* end of transfer */
+
        data->req.done = TRUE;
+
        infof(data, "hyperstream is done");
+
        if(!k->bodywritten) {
+
          /* hyper does not always call the body write callback */
+
          result = Curl_http_firstwrite(data);
+
        }
+
        break;
+
      }
+
      else {
+
        /* A background task for hyper; ignore */
+
        DEBUGF(infof(data, "hyper: some background task done"));
+
        continue;
+
      }
+
    }
+
    else if(t == HYPER_TASK_RESPONSE) {
+
      resp = hyper_task_value(task);
+
      hyper_task_free(task);
+

+
      *didwhat = KEEP_RECV;
+
      if(!resp) {
+
        failf(data, "hyperstream: could not get response");
+
        result = CURLE_RECV_ERROR;
+
        goto out;
+
      }
+

+
      http_status = hyper_response_status(resp);
+
      http_version = hyper_response_version(resp);
+
      reasonp = hyper_response_reason_phrase(resp);
+
      reason_len = hyper_response_reason_phrase_len(resp);
+

+
      if(http_status == 417 && Curl_http_exp100_is_selected(data)) {
+
        infof(data, "Got 417 while waiting for a 100");
+
        data->state.disableexpect = TRUE;
+
        data->req.newurl = strdup(data->state.url);
+
        Curl_req_abort_sending(data);
+
      }
+

+
      result = status_line(data, conn,
+
                           http_status, http_version, reasonp, reason_len);
+
      if(result)
+
        goto out;
+

+
      headers = hyper_response_headers(resp);
+
      if(!headers) {
+
        failf(data, "hyperstream: could not get response headers");
+
        result = CURLE_RECV_ERROR;
+
        goto out;
+
      }
+

+
      /* the headers are already received */
+
      hyper_headers_foreach(headers, hyper_each_header, data);
+
      if(data->state.hresult) {
+
        result = data->state.hresult;
+
        goto out;
+
      }
+

+
      result = empty_header(data);
+
      if(result)
+
        goto out;
+

+
      k->deductheadercount =
+
        (100 <= http_status && 199 >= http_status) ? k->headerbytecount : 0;
+
#ifndef CURL_DISABLE_WEBSOCKETS
+
      if(k->upgr101 == UPGR101_WS) {
+
        if(http_status == 101) {
+
          /* verify the response */
+
          result = Curl_ws_accept(data, NULL, 0);
+
          if(result)
+
            goto out;
+
        }
+
        else {
+
          failf(data, "Expected 101, got %u", k->httpcode);
+
          result = CURLE_HTTP_RETURNED_ERROR;
+
          goto out;
+
        }
+
      }
+
#endif
+

+
      /* Curl_http_auth_act() checks what authentication methods that are
+
       * available and decides which one (if any) to use. It will set 'newurl'
+
       * if an auth method was picked. */
+
      result = Curl_http_auth_act(data);
+
      if(result)
+
        goto out;
+

+
      resp_body = hyper_response_body(resp);
+
      if(!resp_body) {
+
        failf(data, "hyperstream: could not get response body");
+
        result = CURLE_RECV_ERROR;
+
        goto out;
+
      }
+
      foreach = hyper_body_foreach(resp_body, hyper_body_chunk, data);
+
      if(!foreach) {
+
        failf(data, "hyperstream: body foreach failed");
+
        result = CURLE_OUT_OF_MEMORY;
+
        goto out;
+
      }
+
      hyper_task_set_userdata(foreach, (void *)USERDATA_RESP_BODY);
+
      if(HYPERE_OK != hyper_executor_push(h->exec, foreach)) {
+
        failf(data, "Couldn't hyper_executor_push the body-foreach");
+
        result = CURLE_OUT_OF_MEMORY;
+
        goto out;
+
      }
+

+
      hyper_response_free(resp);
+
      resp = NULL;
+
    }
+
    else {
+
      DEBUGF(infof(data, "hyper: unhandled tasktype %x", t));
+
    }
+
  } /* while(1) */
+

+
  if(!result && Curl_xfer_needs_flush(data)) {
+
    DEBUGF(infof(data, "Curl_hyper_stream(), connection needs flush"));
+
    result = Curl_xfer_flush(data);
+
  }
+

+
out:
+
  DEBUGF(infof(data, "Curl_hyper_stream() -> %d", result));
+
  if(resp)
+
    hyper_response_free(resp);
+
  return result;
+
}
+

+
static CURLcode debug_request(struct Curl_easy *data,
+
                              const char *method,
+
                              const char *path)
+
{
+
  char *req = aprintf("%s %s HTTP/1.1\r\n", method, path);
+
  if(!req)
+
    return CURLE_OUT_OF_MEMORY;
+
  Curl_debug(data, CURLINFO_HEADER_OUT, req, strlen(req));
+
  free(req);
+
  return CURLE_OK;
+
}
+

+
/*
+
 * Given a full header line "name: value" (optional CRLF in the input, should
+
 * be in the output), add to Hyper and send to the debug callback.
+
 *
+
 * Supports multiple headers.
+
 */
+

+
CURLcode Curl_hyper_header(struct Curl_easy *data, hyper_headers *headers,
+
                           const char *line)
+
{
+
  const char *p;
+
  const char *n;
+
  size_t nlen;
+
  const char *v;
+
  size_t vlen;
+
  bool newline = TRUE;
+
  int numh = 0;
+

+
  if(!line)
+
    return CURLE_OK;
+
  n = line;
+
  do {
+
    size_t linelen = 0;
+

+
    p = strchr(n, ':');
+
    if(!p)
+
      /* this is fine if we already added at least one header */
+
      return numh ? CURLE_OK : CURLE_BAD_FUNCTION_ARGUMENT;
+
    nlen = p - n;
+
    p++; /* move past the colon */
+
    while(*p == ' ')
+
      p++;
+
    v = p;
+
    p = strchr(v, '\r');
+
    if(!p) {
+
      p = strchr(v, '\n');
+
      if(p)
+
        linelen = 1; /* LF only */
+
      else {
+
        p = strchr(v, '\0');
+
        newline = FALSE; /* no newline */
+
      }
+
    }
+
    else
+
      linelen = 2; /* CRLF ending */
+
    linelen += (p - n);
+
    vlen = p - v;
+

+
    if(HYPERE_OK != hyper_headers_add(headers, (uint8_t *)n, nlen,
+
                                      (uint8_t *)v, vlen)) {
+
      failf(data, "hyper refused to add header '%s'", line);
+
      return CURLE_OUT_OF_MEMORY;
+
    }
+
    if(data->set.verbose) {
+
      char *ptr = NULL;
+
      if(!newline) {
+
        ptr = aprintf("%.*s\r\n", (int)linelen, line);
+
        if(!ptr)
+
          return CURLE_OUT_OF_MEMORY;
+
        Curl_debug(data, CURLINFO_HEADER_OUT, ptr, linelen + 2);
+
        free(ptr);
+
      }
+
      else
+
        Curl_debug(data, CURLINFO_HEADER_OUT, (char *)n, linelen);
+
    }
+
    numh++;
+
    n += linelen;
+
  } while(newline);
+
  return CURLE_OK;
+
}
+

+
static CURLcode request_target(struct Curl_easy *data,
+
                               struct connectdata *conn,
+
                               const char *method,
+
                               hyper_request *req)
+
{
+
  CURLcode result;
+
  struct dynbuf r;
+

+
  Curl_dyn_init(&r, DYN_HTTP_REQUEST);
+

+
  result = Curl_http_target(data, conn, &r);
+
  if(result)
+
    return result;
+

+
  if(hyper_request_set_uri(req, (uint8_t *)Curl_dyn_uptr(&r),
+
                                       Curl_dyn_len(&r))) {
+
    failf(data, "error setting uri to hyper");
+
    result = CURLE_OUT_OF_MEMORY;
+
  }
+
  else
+
    result = debug_request(data, method, Curl_dyn_ptr(&r));
+

+
  Curl_dyn_free(&r);
+

+
  return result;
+
}
+

+
static int uploadstreamed(void *userdata, hyper_context *ctx,
+
                          hyper_buf **chunk)
+
{
+
  size_t fillcount;
+
  struct Curl_easy *data = (struct Curl_easy *)userdata;
+
  CURLcode result;
+
  char *xfer_ulbuf;
+
  size_t xfer_ulblen;
+
  bool eos;
+
  int rc = HYPER_POLL_ERROR;
+
  (void)ctx;
+

+
  result = Curl_multi_xfer_ulbuf_borrow(data, &xfer_ulbuf, &xfer_ulblen);
+
  if(result)
+
    goto out;
+

+
  result = Curl_client_read(data, xfer_ulbuf, xfer_ulblen, &fillcount, &eos);
+
  if(result)
+
    goto out;
+

+
  if(fillcount) {
+
    hyper_buf *copy = hyper_buf_copy((uint8_t *)xfer_ulbuf, fillcount);
+
    if(copy)
+
      *chunk = copy;
+
    else {
+
      result = CURLE_OUT_OF_MEMORY;
+
      goto out;
+
    }
+
    /* increasing the writebytecount here is a little premature but we
+
       do not know exactly when the body is sent */
+
    data->req.writebytecount += fillcount;
+
    if(eos)
+
      data->req.eos_read = TRUE;
+
    Curl_pgrsSetUploadCounter(data, data->req.writebytecount);
+
    rc = HYPER_POLL_READY;
+
  }
+
  else if(eos) {
+
    data->req.eos_read = TRUE;
+
    *chunk = NULL;
+
    rc = HYPER_POLL_READY;
+
  }
+
  else {
+
    /* paused, save a waker */
+
    if(data->hyp.send_body_waker)
+
      hyper_waker_free(data->hyp.send_body_waker);
+
    data->hyp.send_body_waker = hyper_context_waker(ctx);
+
    rc = HYPER_POLL_PENDING;
+
  }
+

+
  if(!data->req.upload_done && data->req.eos_read) {
+
    DEBUGF(infof(data, "hyper: uploadstreamed(), upload is done"));
+
    result = Curl_req_set_upload_done(data);
+
  }
+

+
out:
+
  Curl_multi_xfer_ulbuf_release(data, xfer_ulbuf);
+
  data->state.hresult = result;
+
  DEBUGF(infof(data, "hyper: uploadstreamed() -> %d", result));
+
  return rc;
+
}
+

+
/*
+
 * finalize_request() sets up last headers and optional body settings
+
 */
+
static CURLcode finalize_request(struct Curl_easy *data,
+
                                 hyper_headers *headers,
+
                                 hyper_request *hyperreq,
+
                                 Curl_HttpReq httpreq)
+
{
+
  CURLcode result = CURLE_OK;
+
  struct dynbuf req;
+
  if((httpreq == HTTPREQ_GET) || (httpreq == HTTPREQ_HEAD)) {
+
    Curl_pgrsSetUploadSize(data, 0); /* no request body */
+
  }
+
  else {
+
    hyper_body *body;
+
    Curl_dyn_init(&req, DYN_HTTP_REQUEST);
+
    result = Curl_http_req_complete(data, &req, httpreq);
+
    if(result)
+
      return result;
+

+
    /* if the "complete" above did produce more than the closing line,
+
       parse the added headers */
+
    if(Curl_dyn_len(&req) != 2 || strcmp(Curl_dyn_ptr(&req), "\r\n")) {
+
      result = Curl_hyper_header(data, headers, Curl_dyn_ptr(&req));
+
      if(result)
+
        return result;
+
    }
+

+
    Curl_dyn_free(&req);
+

+
    body = hyper_body_new();
+
    hyper_body_set_userdata(body, data);
+
    hyper_body_set_data_func(body, uploadstreamed);
+

+
    if(HYPERE_OK != hyper_request_set_body(hyperreq, body)) {
+
      /* fail */
+
      result = CURLE_OUT_OF_MEMORY;
+
    }
+
  }
+

+
  return cr_hyper_add(data);
+
}
+

+
static CURLcode cookies(struct Curl_easy *data,
+
                        struct connectdata *conn,
+
                        hyper_headers *headers)
+
{
+
  struct dynbuf req;
+
  CURLcode result;
+
  Curl_dyn_init(&req, DYN_HTTP_REQUEST);
+

+
  result = Curl_http_cookies(data, conn, &req);
+
  if(!result)
+
    result = Curl_hyper_header(data, headers, Curl_dyn_ptr(&req));
+
  Curl_dyn_free(&req);
+
  return result;
+
}
+

+
/* called on 1xx responses */
+
static void http1xx_cb(void *arg, struct hyper_response *resp)
+
{
+
  struct Curl_easy *data = (struct Curl_easy *)arg;
+
  hyper_headers *headers = NULL;
+
  CURLcode result = CURLE_OK;
+
  uint16_t http_status;
+
  int http_version;
+
  const uint8_t *reasonp;
+
  size_t reason_len;
+

+
  infof(data, "Got HTTP 1xx informational");
+

+
  http_status = hyper_response_status(resp);
+
  http_version = hyper_response_version(resp);
+
  reasonp = hyper_response_reason_phrase(resp);
+
  reason_len = hyper_response_reason_phrase_len(resp);
+

+
  result = status_line(data, data->conn,
+
                       http_status, http_version, reasonp, reason_len);
+
  if(!result) {
+
    headers = hyper_response_headers(resp);
+
    if(!headers) {
+
      failf(data, "hyperstream: could not get 1xx response headers");
+
      result = CURLE_RECV_ERROR;
+
    }
+
  }
+
  data->state.hresult = result;
+

+
  if(!result) {
+
    /* the headers are already received */
+
    hyper_headers_foreach(headers, hyper_each_header, data);
+
    /* this callback also sets data->state.hresult on error */
+

+
    if(empty_header(data))
+
      result = CURLE_OUT_OF_MEMORY;
+
  }
+

+
  if(data->state.hresult)
+
    infof(data, "ERROR in 1xx, bail out");
+
}
+

+
/*
+
 * Curl_http() gets called from the generic multi_do() function when an HTTP
+
 * request is to be performed. This creates and sends a properly constructed
+
 * HTTP request.
+
 */
+
CURLcode Curl_http(struct Curl_easy *data, bool *done)
+
{
+
  struct connectdata *conn = data->conn;
+
  struct hyptransfer *h = &data->hyp;
+
  hyper_io *io = NULL;
+
  hyper_clientconn_options *options = NULL;
+
  hyper_task *task = NULL; /* for the handshake */
+
  hyper_task *sendtask = NULL; /* for the send */
+
  hyper_clientconn *client = NULL;
+
  hyper_request *req = NULL;
+
  hyper_headers *headers = NULL;
+
  hyper_task *handshake = NULL;
+
  CURLcode result;
+
  const char *p_accept; /* Accept: string */
+
  const char *method;
+
  Curl_HttpReq httpreq;
+
  const char *te = NULL; /* transfer-encoding */
+
  hyper_code rc;
+

+
  /* Always consider the DO phase done after this function call, even if there
+
     may be parts of the request that is not yet sent, since we can deal with
+
     the rest of the request in the PERFORM phase. */
+
  *done = TRUE;
+
  result = Curl_client_start(data);
+
  if(result)
+
    goto out;
+

+
  /* Add collecting of headers written to client. For a new connection,
+
   * we might have done that already, but reuse
+
   * or multiplex needs it here as well. */
+
  result = Curl_headers_init(data);
+
  if(result)
+
    goto out;
+

+
  infof(data, "Time for the Hyper dance");
+
  memset(h, 0, sizeof(struct hyptransfer));
+

+
  result = Curl_http_host(data, conn);
+
  if(result)
+
    goto out;
+

+
  Curl_http_method(data, conn, &method, &httpreq);
+

+
  DEBUGASSERT(data->req.bytecount ==  0);
+

+
  /* setup the authentication headers */
+
  {
+
    char *pq = NULL;
+
    if(data->state.up.query) {
+
      pq = aprintf("%s?%s", data->state.up.path, data->state.up.query);
+
      if(!pq) {
+
        result = CURLE_OUT_OF_MEMORY;
+
        goto out;
+
      }
+
    }
+
    result = Curl_http_output_auth(data, conn, method, httpreq,
+
                                   (pq ? pq : data->state.up.path), FALSE);
+
    free(pq);
+
    if(result)
+
      goto out;
+
  }
+

+
  result = Curl_http_req_set_reader(data, httpreq, &te);
+
  if(result)
+
    goto out;
+

+
  result = Curl_http_range(data, httpreq);
+
  if(result)
+
    goto out;
+

+
  result = Curl_http_useragent(data);
+
  if(result)
+
    goto out;
+

+
  io = hyper_io_new();
+
  if(!io) {
+
    failf(data, "Couldn't create hyper IO");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+
  /* tell Hyper how to read/write network data */
+
  h->io_ctx.data = data;
+
  h->io_ctx.sockindex = FIRSTSOCKET;
+
  hyper_io_set_userdata(io, &h->io_ctx);
+
  hyper_io_set_read(io, Curl_hyper_recv);
+
  hyper_io_set_write(io, Curl_hyper_send);
+

+
  /* create an executor to poll futures */
+
  if(!h->exec) {
+
    h->exec = hyper_executor_new();
+
    if(!h->exec) {
+
      failf(data, "Couldn't create hyper executor");
+
      result = CURLE_OUT_OF_MEMORY;
+
      goto out;
+
    }
+
  }
+

+
  options = hyper_clientconn_options_new();
+
  if(!options) {
+
    failf(data, "Couldn't create hyper client options");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+
  if(conn->alpn == CURL_HTTP_VERSION_2) {
+
    failf(data, "ALPN protocol h2 not supported with Hyper");
+
    result = CURLE_UNSUPPORTED_PROTOCOL;
+
    goto out;
+
  }
+
  hyper_clientconn_options_set_preserve_header_case(options, 1);
+
  hyper_clientconn_options_set_preserve_header_order(options, 1);
+
  hyper_clientconn_options_http1_allow_multiline_headers(options, 1);
+

+
  hyper_clientconn_options_exec(options, h->exec);
+

+
  /* "Both the `io` and the `options` are consumed in this function call" */
+
  handshake = hyper_clientconn_handshake(io, options);
+
  if(!handshake) {
+
    failf(data, "Couldn't create hyper client handshake");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+
  io = NULL;
+
  options = NULL;
+

+
  if(HYPERE_OK != hyper_executor_push(h->exec, handshake)) {
+
    failf(data, "Couldn't hyper_executor_push the handshake");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+
  handshake = NULL; /* ownership passed on */
+

+
  task = hyper_executor_poll(h->exec);
+
  if(!task) {
+
    failf(data, "Couldn't hyper_executor_poll the handshake");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+

+
  client = hyper_task_value(task);
+
  hyper_task_free(task);
+

+
  req = hyper_request_new();
+
  if(!req) {
+
    failf(data, "Couldn't hyper_request_new");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+

+
  if(!Curl_use_http_1_1plus(data, conn)) {
+
    if(HYPERE_OK != hyper_request_set_version(req,
+
                                              HYPER_HTTP_VERSION_1_0)) {
+
      failf(data, "error setting HTTP version");
+
      result = CURLE_OUT_OF_MEMORY;
+
      goto out;
+
    }
+
  }
+

+
  if(hyper_request_set_method(req, (uint8_t *)method, strlen(method))) {
+
    failf(data, "error setting method");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+

+
  result = request_target(data, conn, method, req);
+
  if(result)
+
    goto out;
+

+
  headers = hyper_request_headers(req);
+
  if(!headers) {
+
    failf(data, "hyper_request_headers");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+

+
  rc = hyper_request_on_informational(req, http1xx_cb, data);
+
  if(rc) {
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+

+
  if(data->state.aptr.host) {
+
    result = Curl_hyper_header(data, headers, data->state.aptr.host);
+
    if(result)
+
      goto out;
+
  }
+

+
#ifndef CURL_DISABLE_PROXY
+
  if(data->state.aptr.proxyuserpwd) {
+
    result = Curl_hyper_header(data, headers, data->state.aptr.proxyuserpwd);
+
    if(result)
+
      goto out;
+
  }
+
#endif
+

+
  if(data->state.aptr.userpwd) {
+
    result = Curl_hyper_header(data, headers, data->state.aptr.userpwd);
+
    if(result)
+
      goto out;
+
  }
+

+
  if((data->state.use_range && data->state.aptr.rangeline)) {
+
    result = Curl_hyper_header(data, headers, data->state.aptr.rangeline);
+
    if(result)
+
      goto out;
+
  }
+

+
  if(data->set.str[STRING_USERAGENT] &&
+
     *data->set.str[STRING_USERAGENT] &&
+
     data->state.aptr.uagent) {
+
    result = Curl_hyper_header(data, headers, data->state.aptr.uagent);
+
    if(result)
+
      goto out;
+
  }
+

+
  p_accept = Curl_checkheaders(data,
+
                               STRCONST("Accept")) ? NULL : "Accept: */*\r\n";
+
  if(p_accept) {
+
    result = Curl_hyper_header(data, headers, p_accept);
+
    if(result)
+
      goto out;
+
  }
+
  if(te) {
+
    result = Curl_hyper_header(data, headers, te);
+
    if(result)
+
      goto out;
+
  }
+

+
#ifndef CURL_DISABLE_ALTSVC
+
  if(conn->bits.altused && !Curl_checkheaders(data, STRCONST("Alt-Used"))) {
+
    char *altused = aprintf("Alt-Used: %s:%d\r\n",
+
                            conn->conn_to_host.name, conn->conn_to_port);
+
    if(!altused) {
+
      result = CURLE_OUT_OF_MEMORY;
+
      goto out;
+
    }
+
    result = Curl_hyper_header(data, headers, altused);
+
    if(result)
+
      goto out;
+
    free(altused);
+
  }
+
#endif
+

+
#ifndef CURL_DISABLE_PROXY
+
  if(conn->bits.httpproxy && !conn->bits.tunnel_proxy &&
+
     !Curl_checkheaders(data, STRCONST("Proxy-Connection")) &&
+
     !Curl_checkProxyheaders(data, conn, STRCONST("Proxy-Connection"))) {
+
    result = Curl_hyper_header(data, headers, "Proxy-Connection: Keep-Alive");
+
    if(result)
+
      goto out;
+
  }
+
#endif
+

+
  Curl_safefree(data->state.aptr.ref);
+
  if(data->state.referer && !Curl_checkheaders(data, STRCONST("Referer"))) {
+
    data->state.aptr.ref = aprintf("Referer: %s\r\n", data->state.referer);
+
    if(!data->state.aptr.ref)
+
      result = CURLE_OUT_OF_MEMORY;
+
    else
+
      result = Curl_hyper_header(data, headers, data->state.aptr.ref);
+
    if(result)
+
      goto out;
+
  }
+

+
#ifdef HAVE_LIBZ
+
  /* we only consider transfer-encoding magic if libz support is built-in */
+
  result = Curl_transferencode(data);
+
  if(result)
+
    goto out;
+
  result = Curl_hyper_header(data, headers, data->state.aptr.te);
+
  if(result)
+
    goto out;
+
#endif
+

+
  if(!Curl_checkheaders(data, STRCONST("Accept-Encoding")) &&
+
     data->set.str[STRING_ENCODING]) {
+
    Curl_safefree(data->state.aptr.accept_encoding);
+
    data->state.aptr.accept_encoding =
+
      aprintf("Accept-Encoding: %s\r\n", data->set.str[STRING_ENCODING]);
+
    if(!data->state.aptr.accept_encoding)
+
      result = CURLE_OUT_OF_MEMORY;
+
    else
+
      result = Curl_hyper_header(data, headers,
+
                                 data->state.aptr.accept_encoding);
+
    if(result)
+
      goto out;
+
  }
+
  else
+
    Curl_safefree(data->state.aptr.accept_encoding);
+

+
  result = cookies(data, conn, headers);
+
  if(result)
+
    goto out;
+

+
  if(!result && conn->handler->protocol&(CURLPROTO_WS|CURLPROTO_WSS))
+
    result = Curl_ws_request(data, headers);
+

+
  result = Curl_add_timecondition(data, headers);
+
  if(result)
+
    goto out;
+

+
  result = Curl_add_custom_headers(data, FALSE, headers);
+
  if(result)
+
    goto out;
+

+
  result = finalize_request(data, headers, req, httpreq);
+
  if(result)
+
    goto out;
+

+
  Curl_debug(data, CURLINFO_HEADER_OUT, (char *)"\r\n", 2);
+

+
  if(data->req.upload_chunky && data->req.authneg) {
+
    data->req.upload_chunky = TRUE;
+
  }
+
  else {
+
    data->req.upload_chunky = FALSE;
+
  }
+
  sendtask = hyper_clientconn_send(client, req);
+
  if(!sendtask) {
+
    failf(data, "hyper_clientconn_send");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+
  req = NULL;
+

+
  if(HYPERE_OK != hyper_executor_push(h->exec, sendtask)) {
+
    failf(data, "Couldn't hyper_executor_push the send");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto out;
+
  }
+
  sendtask = NULL; /* ownership passed on */
+

+
  hyper_clientconn_free(client);
+
  client = NULL;
+

+
  if((httpreq == HTTPREQ_GET) || (httpreq == HTTPREQ_HEAD)) {
+
    /* HTTP GET/HEAD download */
+
    Curl_pgrsSetUploadSize(data, 0); /* nothing */
+
    result = Curl_req_set_upload_done(data);
+
    if(result)
+
      goto out;
+
  }
+

+
  Curl_xfer_setup1(data, CURL_XFER_SENDRECV, -1, TRUE);
+
  conn->datastream = Curl_hyper_stream;
+

+
  /* clear userpwd and proxyuserpwd to avoid reusing old credentials
+
   * from reused connections */
+
  Curl_safefree(data->state.aptr.userpwd);
+
#ifndef CURL_DISABLE_PROXY
+
  Curl_safefree(data->state.aptr.proxyuserpwd);
+
#endif
+

+
out:
+
  if(result) {
+
    if(io)
+
      hyper_io_free(io);
+
    if(options)
+
      hyper_clientconn_options_free(options);
+
    if(handshake)
+
      hyper_task_free(handshake);
+
    if(client)
+
      hyper_clientconn_free(client);
+
    if(req)
+
      hyper_request_free(req);
+
  }
+
  return result;
+
}
+

+
void Curl_hyper_done(struct Curl_easy *data)
+
{
+
  struct hyptransfer *h = &data->hyp;
+
  if(h->exec) {
+
    hyper_executor_free(h->exec);
+
    h->exec = NULL;
+
  }
+
  if(h->read_waker) {
+
    hyper_waker_free(h->read_waker);
+
    h->read_waker = NULL;
+
  }
+
  if(h->write_waker) {
+
    hyper_waker_free(h->write_waker);
+
    h->write_waker = NULL;
+
  }
+
  if(h->send_body_waker) {
+
    hyper_waker_free(h->send_body_waker);
+
    h->send_body_waker = NULL;
+
  }
+
}
+

+
static CURLcode cr_hyper_unpause(struct Curl_easy *data,
+
                                 struct Curl_creader *reader)
+
{
+
  (void)reader;
+
  if(data->hyp.send_body_waker) {
+
    hyper_waker_wake(data->hyp.send_body_waker);
+
    data->hyp.send_body_waker = NULL;
+
  }
+
  return CURLE_OK;
+
}
+

+
/* Hyper client reader, handling unpausing */
+
static const struct Curl_crtype cr_hyper_protocol = {
+
  "cr-hyper",
+
  Curl_creader_def_init,
+
  Curl_creader_def_read,
+
  Curl_creader_def_close,
+
  Curl_creader_def_needs_rewind,
+
  Curl_creader_def_total_length,
+
  Curl_creader_def_resume_from,
+
  Curl_creader_def_rewind,
+
  cr_hyper_unpause,
+
  Curl_creader_def_is_paused,
+
  Curl_creader_def_done,
+
  sizeof(struct Curl_creader)
+
};
+

+
static CURLcode cr_hyper_add(struct Curl_easy *data)
+
{
+
  struct Curl_creader *reader = NULL;
+
  CURLcode result;
+

+
  result = Curl_creader_create(&reader, data, &cr_hyper_protocol,
+
                               CURL_CR_PROTOCOL);
+
  if(!result)
+
    result = Curl_creader_add(data, reader);
+

+
  if(result && reader)
+
    Curl_creader_free(data, reader);
+
  return result;
+
}
+

+
#endif /* !defined(CURL_DISABLE_HTTP) && defined(USE_HYPER) */
added external/curl/lib/c-hyper.h
@@ -0,0 +1,63 @@
+
#ifndef HEADER_CURL_HYPER_H
+
#define HEADER_CURL_HYPER_H
+
/***************************************************************************
+
 *                                  _   _ ____  _
+
 *  Project                     ___| | | |  _ \| |
+
 *                             / __| | | | |_) | |
+
 *                            | (__| |_| |  _ <| |___
+
 *                             \___|\___/|_| \_\_____|
+
 *
+
 * Copyright (C) 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.
+
 *
+
 * SPDX-License-Identifier: curl
+
 *
+
 ***************************************************************************/
+
#include "curl_setup.h"
+

+
#if !defined(CURL_DISABLE_HTTP) && defined(USE_HYPER)
+

+
#include <hyper.h>
+

+
struct hyp_io_ctx {
+
  struct Curl_easy *data;
+
  int sockindex;
+
};
+

+
/* per-transfer data for the Hyper backend */
+
struct hyptransfer {
+
  hyper_waker *write_waker;
+
  hyper_waker *read_waker;
+
  const hyper_executor *exec;
+
  hyper_waker *send_body_waker;
+
  struct hyp_io_ctx io_ctx;
+
};
+

+
size_t Curl_hyper_recv(void *userp, hyper_context *ctx,
+
                       uint8_t *buf, size_t buflen);
+
size_t Curl_hyper_send(void *userp, hyper_context *ctx,
+
                       const uint8_t *buf, size_t buflen);
+
CURLcode Curl_hyper_stream(struct Curl_easy *data,
+
                           struct connectdata *conn,
+
                           int *didwhat,
+
                           int select_res);
+

+
CURLcode Curl_hyper_header(struct Curl_easy *data, hyper_headers *headers,
+
                           const char *line);
+
void Curl_hyper_done(struct Curl_easy *);
+

+
#else
+
#define Curl_hyper_done(x)
+

+
#endif /* !defined(CURL_DISABLE_HTTP) && defined(USE_HYPER) */
+
#endif /* HEADER_CURL_HYPER_H */
modified external/curl/lib/cf-h1-proxy.c
@@ -27,6 +27,9 @@
#if !defined(CURL_DISABLE_PROXY) && !defined(CURL_DISABLE_HTTP)

#include <curl/curl.h>
+
#ifdef USE_HYPER
+
#include <hyper.h>
+
#endif
#include "urldata.h"
#include "dynbuf.h"
#include "sendf.h"
@@ -181,6 +184,9 @@ static void h1_tunnel_go_state(struct Curl_cfilter *cf,
       make sure that it is not accidentally used for the document request
       after we have connected. So let's free and clear it here. */
    Curl_safefree(data->state.aptr.proxyuserpwd);
+
#ifdef USE_HYPER
+
    data->state.hconnect = FALSE;
+
#endif
    break;
  }
}
@@ -203,9 +209,10 @@ static void tunnel_free(struct Curl_cfilter *cf,

static bool tunnel_want_send(struct h1_tunnel_state *ts)
{
-
  return ts->tunnel_state == H1_TUNNEL_CONNECT;
+
  return (ts->tunnel_state == H1_TUNNEL_CONNECT);
}

+
#ifndef USE_HYPER
static CURLcode start_CONNECT(struct Curl_cfilter *cf,
                              struct Curl_easy *data,
                              struct h1_tunnel_state *ts)
@@ -522,6 +529,337 @@ static CURLcode recv_CONNECT_resp(struct Curl_cfilter *cf,
  return result;
}

+
#else /* USE_HYPER */
+

+
static CURLcode CONNECT_host(struct Curl_cfilter *cf,
+
                             struct Curl_easy *data,
+
                             char **pauthority,
+
                             char **phost_header)
+
{
+
  const char *hostname;
+
  int port;
+
  bool ipv6_ip;
+
  CURLcode result;
+
  char *authority; /* for CONNECT, the destination host + port */
+
  char *host_header = NULL; /* Host: authority */
+

+
  result = Curl_http_proxy_get_destination(cf, &hostname, &port, &ipv6_ip);
+
  if(result)
+
    return result;
+

+
  authority = aprintf("%s%s%s:%d", ipv6_ip ? "[":"", hostname,
+
                      ipv6_ip ? "]" : "", port);
+
  if(!authority)
+
    return CURLE_OUT_OF_MEMORY;
+

+
  /* If user is not overriding the Host header later */
+
  if(!Curl_checkProxyheaders(data, cf->conn, STRCONST("Host"))) {
+
    host_header = aprintf("Host: %s\r\n", authority);
+
    if(!host_header) {
+
      free(authority);
+
      return CURLE_OUT_OF_MEMORY;
+
    }
+
  }
+
  *pauthority = authority;
+
  *phost_header = host_header;
+
  return CURLE_OK;
+
}
+

+
/* The Hyper version of CONNECT */
+
static CURLcode start_CONNECT(struct Curl_cfilter *cf,
+
                              struct Curl_easy *data,
+
                              struct h1_tunnel_state *ts)
+
{
+
  struct connectdata *conn = cf->conn;
+
  struct hyptransfer *h = &data->hyp;
+
  curl_socket_t tunnelsocket = Curl_conn_cf_get_socket(cf, data);
+
  hyper_io *io = NULL;
+
  hyper_request *req = NULL;
+
  hyper_headers *headers = NULL;
+
  hyper_clientconn_options *options = NULL;
+
  hyper_task *handshake = NULL;
+
  hyper_task *task = NULL; /* for the handshake */
+
  hyper_clientconn *client = NULL;
+
  hyper_task *sendtask = NULL; /* for the send */
+
  char *authority = NULL; /* for CONNECT */
+
  char *host_header = NULL; /* Host: */
+
  CURLcode result = CURLE_OUT_OF_MEMORY;
+
  (void)ts;
+

+
  io = hyper_io_new();
+
  if(!io) {
+
    failf(data, "Couldn't create hyper IO");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  /* tell Hyper how to read/write network data */
+
  h->io_ctx.data = data;
+
  h->io_ctx.sockindex = cf->sockindex;
+
  hyper_io_set_userdata(io, &h->io_ctx);
+
  hyper_io_set_read(io, Curl_hyper_recv);
+
  hyper_io_set_write(io, Curl_hyper_send);
+
  conn->sockfd = tunnelsocket;
+

+
  data->state.hconnect = TRUE;
+

+
  /* create an executor to poll futures */
+
  if(!h->exec) {
+
    h->exec = hyper_executor_new();
+
    if(!h->exec) {
+
      failf(data, "Couldn't create hyper executor");
+
      result = CURLE_OUT_OF_MEMORY;
+
      goto error;
+
    }
+
  }
+

+
  options = hyper_clientconn_options_new();
+
  if(!options) {
+
    failf(data, "Couldn't create hyper client options");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  hyper_clientconn_options_set_preserve_header_case(options, 1);
+
  hyper_clientconn_options_set_preserve_header_order(options, 1);
+

+
  hyper_clientconn_options_exec(options, h->exec);
+

+
  /* "Both the `io` and the `options` are consumed in this function
+
     call" */
+
  handshake = hyper_clientconn_handshake(io, options);
+
  if(!handshake) {
+
    failf(data, "Couldn't create hyper client handshake");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  io = NULL;
+
  options = NULL;
+

+
  if(HYPERE_OK != hyper_executor_push(h->exec, handshake)) {
+
    failf(data, "Couldn't hyper_executor_push the handshake");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  handshake = NULL; /* ownership passed on */
+

+
  task = hyper_executor_poll(h->exec);
+
  if(!task) {
+
    failf(data, "Couldn't hyper_executor_poll the handshake");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+

+
  client = hyper_task_value(task);
+
  hyper_task_free(task);
+

+
  req = hyper_request_new();
+
  if(!req) {
+
    failf(data, "Couldn't hyper_request_new");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  if(hyper_request_set_method(req, (uint8_t *)"CONNECT",
+
                              strlen("CONNECT"))) {
+
    failf(data, "error setting method");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+

+
    /* This only happens if we have looped here due to authentication
+
       reasons, and we do not really use the newly cloned URL here
+
       then. Just free() it. */
+
  Curl_safefree(data->req.newurl);
+

+
  result = CONNECT_host(cf, data, &authority, &host_header);
+
  if(result)
+
    goto error;
+

+
  infof(data, "Establish HTTP proxy tunnel to %s", authority);
+

+
  if(hyper_request_set_uri(req, (uint8_t *)authority,
+
                           strlen(authority))) {
+
    failf(data, "error setting path");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  if(data->set.verbose) {
+
    char *se = aprintf("CONNECT %s HTTP/1.1\r\n", authority);
+
    if(!se) {
+
      result = CURLE_OUT_OF_MEMORY;
+
      goto error;
+
    }
+
    Curl_debug(data, CURLINFO_HEADER_OUT, se, strlen(se));
+
    free(se);
+
  }
+
  /* Setup the proxy-authorization header, if any */
+
  result = Curl_http_output_auth(data, conn, "CONNECT", HTTPREQ_GET,
+
                                 authority, TRUE);
+
  if(result)
+
    goto error;
+
  Curl_safefree(authority);
+

+
  /* default is 1.1 */
+
  if((conn->http_proxy.proxytype == CURLPROXY_HTTP_1_0) &&
+
     (HYPERE_OK != hyper_request_set_version(req,
+
                                             HYPER_HTTP_VERSION_1_0))) {
+
    failf(data, "error setting HTTP version");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+

+
  headers = hyper_request_headers(req);
+
  if(!headers) {
+
    failf(data, "hyper_request_headers");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  if(host_header) {
+
    result = Curl_hyper_header(data, headers, host_header);
+
    if(result)
+
      goto error;
+
    Curl_safefree(host_header);
+
  }
+

+
  if(data->state.aptr.proxyuserpwd) {
+
    result = Curl_hyper_header(data, headers,
+
                               data->state.aptr.proxyuserpwd);
+
    if(result)
+
      goto error;
+
  }
+

+
  if(!Curl_checkProxyheaders(data, conn, STRCONST("User-Agent")) &&
+
     data->set.str[STRING_USERAGENT] && *data->set.str[STRING_USERAGENT]) {
+
    struct dynbuf ua;
+
    Curl_dyn_init(&ua, DYN_HTTP_REQUEST);
+
    result = Curl_dyn_addf(&ua, "User-Agent: %s\r\n",
+
                           data->set.str[STRING_USERAGENT]);
+
    if(result)
+
      goto error;
+
    result = Curl_hyper_header(data, headers, Curl_dyn_ptr(&ua));
+
    if(result)
+
      goto error;
+
    Curl_dyn_free(&ua);
+
  }
+

+
  if(!Curl_checkProxyheaders(data, conn, STRCONST("Proxy-Connection"))) {
+
    result = Curl_hyper_header(data, headers,
+
                               "Proxy-Connection: Keep-Alive");
+
    if(result)
+
      goto error;
+
  }
+

+
  result = Curl_add_custom_headers(data, TRUE, headers);
+
  if(result)
+
    goto error;
+

+
  result = Curl_creader_set_null(data);
+
  if(result)
+
    goto error;
+

+
  sendtask = hyper_clientconn_send(client, req);
+
  if(!sendtask) {
+
    failf(data, "hyper_clientconn_send");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  req = NULL;
+

+
  if(HYPERE_OK != hyper_executor_push(h->exec, sendtask)) {
+
    failf(data, "Couldn't hyper_executor_push the send");
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto error;
+
  }
+
  sendtask = NULL; /* ownership passed on */
+

+
  hyper_clientconn_free(client);
+
  client = NULL;
+

+
error:
+
  free(host_header);
+
  free(authority);
+
  if(io)
+
    hyper_io_free(io);
+
  if(options)
+
    hyper_clientconn_options_free(options);
+
  if(handshake)
+
    hyper_task_free(handshake);
+
  if(client)
+
    hyper_clientconn_free(client);
+
  if(req)
+
    hyper_request_free(req);
+

+
  return result;
+
}
+

+
static CURLcode send_CONNECT(struct Curl_cfilter *cf,
+
                             struct Curl_easy *data,
+
                             struct h1_tunnel_state *ts,
+
                             bool *done)
+
{
+
  struct hyptransfer *h = &data->hyp;
+
  struct connectdata *conn = cf->conn;
+
  hyper_task *task = NULL;
+
  hyper_error *hypererr = NULL;
+
  CURLcode result = CURLE_OK;
+

+
  (void)ts;
+
  (void)conn;
+
  do {
+
    task = hyper_executor_poll(h->exec);
+
    if(task) {
+
      bool error = hyper_task_type(task) == HYPER_TASK_ERROR;
+
      if(error)
+
        hypererr = hyper_task_value(task);
+
      hyper_task_free(task);
+
      if(error) {
+
        /* this could probably use a better error code? */
+
        result = CURLE_OUT_OF_MEMORY;
+
        goto error;
+
      }
+
    }
+
  } while(task);
+
error:
+
  *done = (result == CURLE_OK);
+
  if(hypererr) {
+
    uint8_t errbuf[256];
+
    size_t errlen = hyper_error_print(hypererr, errbuf, sizeof(errbuf));
+
    failf(data, "Hyper: %.*s", (int)errlen, errbuf);
+
    hyper_error_free(hypererr);
+
  }
+
  return result;
+
}
+

+
static CURLcode recv_CONNECT_resp(struct Curl_cfilter *cf,
+
                                  struct Curl_easy *data,
+
                                  struct h1_tunnel_state *ts,
+
                                  bool *done)
+
{
+
  struct hyptransfer *h = &data->hyp;
+
  CURLcode result;
+
  int didwhat;
+

+
  (void)ts;
+
  result = Curl_hyper_stream(data, cf->conn, &didwhat,
+
                             CURL_CSELECT_IN | CURL_CSELECT_OUT);
+
  *done = data->req.done;
+
  if(result || !*done)
+
    return result;
+
  if(h->exec) {
+
    hyper_executor_free(h->exec);
+
    h->exec = NULL;
+
  }
+
  if(h->read_waker) {
+
    hyper_waker_free(h->read_waker);
+
    h->read_waker = NULL;
+
  }
+
  if(h->write_waker) {
+
    hyper_waker_free(h->write_waker);
+
    h->write_waker = NULL;
+
  }
+
  return result;
+
}
+

+
#endif /* USE_HYPER */
+

static CURLcode H1_CONNECT(struct Curl_cfilter *cf,
                           struct Curl_easy *data,
                           struct h1_tunnel_state *ts)
modified external/curl/lib/cf-h2-proxy.c
@@ -865,9 +865,7 @@ static int tunnel_recv_callback(nghttp2_session *session, uint8_t flags,
  if(nwritten < 0) {
    if(result != CURLE_AGAIN)
      return NGHTTP2_ERR_CALLBACK_FAILURE;
-
#ifdef DEBUGBUILD
    nwritten = 0;
-
#endif
  }
  DEBUGASSERT((size_t)nwritten == len);
  return 0;
modified external/curl/lib/cf-https-connect.c
@@ -24,14 +24,13 @@

#include "curl_setup.h"

-
#if !defined(CURL_DISABLE_HTTP)
+
#if !defined(CURL_DISABLE_HTTP) && !defined(USE_HYPER)

#include "urldata.h"
#include <curl/curl.h>
#include "curl_trc.h"
#include "cfilters.h"
#include "connect.h"
-
#include "hostip.h"
#include "multiif.h"
#include "cf-https-connect.h"
#include "http2.h"
@@ -43,10 +42,6 @@
#include "memdebug.h"


-
#ifndef ARRAYSIZE
-
#define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0]))
-
#endif
-

typedef enum {
  CF_HC_INIT,
  CF_HC_CONNECT,
@@ -60,7 +55,7 @@ struct cf_hc_baller {
  CURLcode result;
  struct curltime started;
  int reply_ms;
-
  enum alpnid alpn_id;
+
  BIT(enabled);
  BIT(shutdown);
};

@@ -78,7 +73,7 @@ static void cf_hc_baller_reset(struct cf_hc_baller *b,

static bool cf_hc_baller_is_active(struct cf_hc_baller *b)
{
-
  return b->cf && !b->result;
+
  return b->enabled && b->cf && !b->result;
}

static bool cf_hc_baller_has_started(struct cf_hc_baller *b)
@@ -89,7 +84,7 @@ static bool cf_hc_baller_has_started(struct cf_hc_baller *b)
static int cf_hc_baller_reply_ms(struct cf_hc_baller *b,
                                 struct Curl_easy *data)
{
-
  if(b->cf && (b->reply_ms < 0))
+
  if(b->reply_ms < 0)
    b->cf->cft->query(b->cf, data, CF_QUERY_CONNECT_REPLY_MS,
                      &b->reply_ms, NULL);
  return b->reply_ms;
@@ -121,53 +116,26 @@ struct cf_hc_ctx {
  const struct Curl_dns_entry *remotehost;
  struct curltime started;  /* when connect started */
  CURLcode result;          /* overall result */
-
  struct cf_hc_baller ballers[2];
-
  size_t baller_count;
+
  struct cf_hc_baller h3_baller;
+
  struct cf_hc_baller h21_baller;
  unsigned int soft_eyeballs_timeout_ms;
  unsigned int hard_eyeballs_timeout_ms;
};

-
static void cf_hc_baller_assign(struct cf_hc_baller *b,
-
                                enum alpnid alpn_id)
-
{
-
  b->alpn_id = alpn_id;
-
  switch(b->alpn_id) {
-
  case ALPN_h3:
-
    b->name = "h3";
-
    break;
-
  case ALPN_h2:
-
    b->name = "h2";
-
    break;
-
  case ALPN_h1:
-
    b->name = "h1";
-
    break;
-
  default:
-
    b->result = CURLE_FAILED_INIT;
-
    break;
-
  }
-
}
-

static void cf_hc_baller_init(struct cf_hc_baller *b,
                              struct Curl_cfilter *cf,
                              struct Curl_easy *data,
+
                              const char *name,
                              int transport)
{
  struct cf_hc_ctx *ctx = cf->ctx;
  struct Curl_cfilter *save = cf->next;

+
  b->name = name;
  cf->next = NULL;
  b->started = Curl_now();
-
  switch(b->alpn_id) {
-
  case ALPN_h3:
-
    transport = TRNSPRT_QUIC;
-
    break;
-
  default:
-
    break;
-
  }
-

-
  if(!b->result)
-
    b->result = Curl_cf_setup_insert_after(cf, data, ctx->remotehost,
-
                                           transport, CURL_CF_SSL_ENABLE);
+
  b->result = Curl_cf_setup_insert_after(cf, data, ctx->remotehost,
+
                                         transport, CURL_CF_SSL_ENABLE);
  b->cf = cf->next;
  cf->next = save;
}
@@ -189,11 +157,10 @@ static CURLcode cf_hc_baller_connect(struct cf_hc_baller *b,
static void cf_hc_reset(struct Curl_cfilter *cf, struct Curl_easy *data)
{
  struct cf_hc_ctx *ctx = cf->ctx;
-
  size_t i;

  if(ctx) {
-
    for(i = 0; i < ctx->baller_count; ++i)
-
      cf_hc_baller_reset(&ctx->ballers[i], data);
+
    cf_hc_baller_reset(&ctx->h3_baller, data);
+
    cf_hc_baller_reset(&ctx->h21_baller, data);
    ctx->state = CF_HC_INIT;
    ctx->result = CURLE_OK;
    ctx->hard_eyeballs_timeout_ms = data->set.happy_eyeballs_timeout;
@@ -208,12 +175,12 @@ static CURLcode baller_connected(struct Curl_cfilter *cf,
  struct cf_hc_ctx *ctx = cf->ctx;
  CURLcode result = CURLE_OK;
  int reply_ms;
-
  size_t i;

  DEBUGASSERT(winner->cf);
-
  for(i = 0; i < ctx->baller_count; ++i)
-
    if(winner != &ctx->ballers[i])
-
      cf_hc_baller_reset(&ctx->ballers[i], data);
+
  if(winner != &ctx->h3_baller)
+
    cf_hc_baller_reset(&ctx->h3_baller, data);
+
  if(winner != &ctx->h21_baller)
+
    cf_hc_baller_reset(&ctx->h21_baller, data);

  reply_ms = cf_hc_baller_reply_ms(winner, data);
  if(reply_ms >= 0)
@@ -251,40 +218,31 @@ static CURLcode baller_connected(struct Curl_cfilter *cf,
}


-
static bool time_to_start_next(struct Curl_cfilter *cf,
-
                               struct Curl_easy *data,
-
                               size_t idx, struct curltime now)
+
static bool time_to_start_h21(struct Curl_cfilter *cf,
+
                              struct Curl_easy *data,
+
                              struct curltime now)
{
  struct cf_hc_ctx *ctx = cf->ctx;
  timediff_t elapsed_ms;
-
  size_t i;

-
  if(idx >= ctx->baller_count)
+
  if(!ctx->h21_baller.enabled || cf_hc_baller_has_started(&ctx->h21_baller))
    return FALSE;
-
  if(cf_hc_baller_has_started(&ctx->ballers[idx]))
-
    return FALSE;
-
  for(i = 0; i < idx; i++) {
-
    if(!ctx->ballers[i].result)
-
      break;
-
  }
-
  if(i == idx) {
-
    CURL_TRC_CF(data, cf, "all previous ballers have failed, time to start "
-
                "baller %zu [%s]", idx, ctx->ballers[idx].name);
+

+
  if(!ctx->h3_baller.enabled || !cf_hc_baller_is_active(&ctx->h3_baller))
    return TRUE;
-
  }
+

  elapsed_ms = Curl_timediff(now, ctx->started);
  if(elapsed_ms >= ctx->hard_eyeballs_timeout_ms) {
-
    CURL_TRC_CF(data, cf, "hard timeout of %dms reached, starting %s",
-
                ctx->hard_eyeballs_timeout_ms, ctx->ballers[idx].name);
+
    CURL_TRC_CF(data, cf, "hard timeout of %dms reached, starting h21",
+
                ctx->hard_eyeballs_timeout_ms);
    return TRUE;
  }

-
  if((idx > 0) && (elapsed_ms >= ctx->soft_eyeballs_timeout_ms)) {
-
    if(cf_hc_baller_reply_ms(&ctx->ballers[idx - 1], data) < 0) {
-
      CURL_TRC_CF(data, cf, "soft timeout of %dms reached, %s has not "
-
                  "seen any data, starting %s",
-
                  ctx->soft_eyeballs_timeout_ms,
-
                  ctx->ballers[idx - 1].name, ctx->ballers[idx].name);
+
  if(elapsed_ms >= ctx->soft_eyeballs_timeout_ms) {
+
    if(cf_hc_baller_reply_ms(&ctx->h3_baller, data) < 0) {
+
      CURL_TRC_CF(data, cf, "soft timeout of %dms reached, h3 has not "
+
                  "seen any data, starting h21",
+
                  ctx->soft_eyeballs_timeout_ms);
      return TRUE;
    }
    /* set the effective hard timeout again */
@@ -301,7 +259,6 @@ static CURLcode cf_hc_connect(struct Curl_cfilter *cf,
  struct cf_hc_ctx *ctx = cf->ctx;
  struct curltime now;
  CURLcode result = CURLE_OK;
-
  size_t i, failed_ballers;

  (void)blocking;
  if(cf->connected) {
@@ -313,57 +270,51 @@ static CURLcode cf_hc_connect(struct Curl_cfilter *cf,
  now = Curl_now();
  switch(ctx->state) {
  case CF_HC_INIT:
+
    DEBUGASSERT(!ctx->h3_baller.cf);
+
    DEBUGASSERT(!ctx->h21_baller.cf);
    DEBUGASSERT(!cf->next);
-
    for(i = 0; i < ctx->baller_count; i++)
-
      DEBUGASSERT(!ctx->ballers[i].cf);
    CURL_TRC_CF(data, cf, "connect, init");
    ctx->started = now;
-
    cf_hc_baller_init(&ctx->ballers[0], cf, data, cf->conn->transport);
-
    if(ctx->baller_count > 1) {
-
      Curl_expire(data, ctx->soft_eyeballs_timeout_ms, EXPIRE_ALPN_EYEBALLS);
-
      CURL_TRC_CF(data, cf, "set expire for starting next baller in %ums",
-
                  ctx->soft_eyeballs_timeout_ms);
+
    if(ctx->h3_baller.enabled) {
+
      cf_hc_baller_init(&ctx->h3_baller, cf, data, "h3", TRNSPRT_QUIC);
+
      if(ctx->h21_baller.enabled)
+
        Curl_expire(data, ctx->soft_eyeballs_timeout_ms, EXPIRE_ALPN_EYEBALLS);
    }
+
    else if(ctx->h21_baller.enabled)
+
      cf_hc_baller_init(&ctx->h21_baller, cf, data, "h21",
+
                        cf->conn->transport);
    ctx->state = CF_HC_CONNECT;
    FALLTHROUGH();

  case CF_HC_CONNECT:
-
    if(cf_hc_baller_is_active(&ctx->ballers[0])) {
-
      result = cf_hc_baller_connect(&ctx->ballers[0], cf, data, done);
+
    if(cf_hc_baller_is_active(&ctx->h3_baller)) {
+
      result = cf_hc_baller_connect(&ctx->h3_baller, cf, data, done);
      if(!result && *done) {
-
        result = baller_connected(cf, data, &ctx->ballers[0]);
+
        result = baller_connected(cf, data, &ctx->h3_baller);
        goto out;
      }
    }

-
    if(time_to_start_next(cf, data, 1, now)) {
-
      cf_hc_baller_init(&ctx->ballers[1], cf, data, cf->conn->transport);
+
    if(time_to_start_h21(cf, data, now)) {
+
      cf_hc_baller_init(&ctx->h21_baller, cf, data, "h21",
+
                        cf->conn->transport);
    }

-
    if((ctx->baller_count > 1) && cf_hc_baller_is_active(&ctx->ballers[1])) {
-
      CURL_TRC_CF(data, cf, "connect, check %s", ctx->ballers[1].name);
-
      result = cf_hc_baller_connect(&ctx->ballers[1], cf, data, done);
+
    if(cf_hc_baller_is_active(&ctx->h21_baller)) {
+
      CURL_TRC_CF(data, cf, "connect, check h21");
+
      result = cf_hc_baller_connect(&ctx->h21_baller, cf, data, done);
      if(!result && *done) {
-
        result = baller_connected(cf, data, &ctx->ballers[1]);
+
        result = baller_connected(cf, data, &ctx->h21_baller);
        goto out;
      }
    }

-
    failed_ballers = 0;
-
    for(i = 0; i < ctx->baller_count; i++) {
-
      if(ctx->ballers[i].result)
-
        ++failed_ballers;
-
    }
-

-
    if(failed_ballers == ctx->baller_count) {
-
      /* all have failed. we give up */
+
    if((!ctx->h3_baller.enabled || ctx->h3_baller.result) &&
+
       (!ctx->h21_baller.enabled || ctx->h21_baller.result)) {
+
      /* both failed or disabled. we give up */
      CURL_TRC_CF(data, cf, "connect, all failed");
-
      for(i = 0; i < ctx->baller_count; i++) {
-
        if(ctx->ballers[i].result) {
-
          result = ctx->ballers[i].result;
-
          break;
-
        }
-
      }
+
      result = ctx->result = ctx->h3_baller.enabled ?
+
        ctx->h3_baller.result : ctx->h21_baller.result;
      ctx->state = CF_HC_FAILURE;
      goto out;
    }
@@ -393,6 +344,7 @@ static CURLcode cf_hc_shutdown(struct Curl_cfilter *cf,
                               struct Curl_easy *data, bool *done)
{
  struct cf_hc_ctx *ctx = cf->ctx;
+
  struct cf_hc_baller *ballers[2];
  size_t i;
  CURLcode result = CURLE_OK;

@@ -404,8 +356,10 @@ static CURLcode cf_hc_shutdown(struct Curl_cfilter *cf,

  /* shutdown all ballers that have not done so already. If one fails,
   * continue shutting down others until all are shutdown. */
-
  for(i = 0; i < ctx->baller_count; i++) {
-
    struct cf_hc_baller *b = &ctx->ballers[i];
+
  ballers[0] = &ctx->h3_baller;
+
  ballers[1] = &ctx->h21_baller;
+
  for(i = 0; i < sizeof(ballers)/sizeof(ballers[0]); i++) {
+
    struct cf_hc_baller *b = ballers[i];
    bool bdone = FALSE;
    if(!cf_hc_baller_is_active(b) || b->shutdown)
      continue;
@@ -415,14 +369,14 @@ static CURLcode cf_hc_shutdown(struct Curl_cfilter *cf,
  }

  *done = TRUE;
-
  for(i = 0; i < ctx->baller_count; i++) {
-
    if(!ctx->ballers[i].shutdown)
+
  for(i = 0; i < sizeof(ballers)/sizeof(ballers[0]); i++) {
+
    if(ballers[i] && !ballers[i]->shutdown)
      *done = FALSE;
  }
  if(*done) {
-
    for(i = 0; i < ctx->baller_count; i++) {
-
      if(ctx->ballers[i].result)
-
        result = ctx->ballers[i].result;
+
    for(i = 0; i < sizeof(ballers)/sizeof(ballers[0]); i++) {
+
      if(ballers[i] && ballers[i]->result)
+
        result = ballers[i]->result;
    }
  }
  CURL_TRC_CF(data, cf, "shutdown -> %d, done=%d", result, *done);
@@ -435,10 +389,13 @@ static void cf_hc_adjust_pollset(struct Curl_cfilter *cf,
{
  if(!cf->connected) {
    struct cf_hc_ctx *ctx = cf->ctx;
+
    struct cf_hc_baller *ballers[2];
    size_t i;

-
    for(i = 0; i < ctx->baller_count; i++) {
-
      struct cf_hc_baller *b = &ctx->ballers[i];
+
    ballers[0] = &ctx->h3_baller;
+
    ballers[1] = &ctx->h21_baller;
+
    for(i = 0; i < sizeof(ballers)/sizeof(ballers[0]); i++) {
+
      struct cf_hc_baller *b = ballers[i];
      if(!cf_hc_baller_is_active(b))
        continue;
      Curl_conn_cf_adjust_pollset(b->cf, data, ps);
@@ -451,16 +408,13 @@ static bool cf_hc_data_pending(struct Curl_cfilter *cf,
                               const struct Curl_easy *data)
{
  struct cf_hc_ctx *ctx = cf->ctx;
-
  size_t i;

  if(cf->connected)
    return cf->next->cft->has_data_pending(cf->next, data);

  CURL_TRC_CF((struct Curl_easy *)data, cf, "data_pending");
-
  for(i = 0; i < ctx->baller_count; i++)
-
    if(cf_hc_baller_data_pending(&ctx->ballers[i], data))
-
      return TRUE;
-
  return FALSE;
+
  return cf_hc_baller_data_pending(&ctx->h3_baller, data)
+
         || cf_hc_baller_data_pending(&ctx->h21_baller, data);
}

static struct curltime cf_get_max_baller_time(struct Curl_cfilter *cf,
@@ -468,17 +422,21 @@ static struct curltime cf_get_max_baller_time(struct Curl_cfilter *cf,
                                              int query)
{
  struct cf_hc_ctx *ctx = cf->ctx;
+
  struct Curl_cfilter *cfb;
  struct curltime t, tmax;
-
  size_t i;

  memset(&tmax, 0, sizeof(tmax));
-
  for(i = 0; i < ctx->baller_count; i++) {
-
    struct Curl_cfilter *cfb = ctx->ballers[i].cf;
-
    memset(&t, 0, sizeof(t));
-
    if(cfb && !cfb->cft->query(cfb, data, query, NULL, &t)) {
-
      if((t.tv_sec || t.tv_usec) && Curl_timediff_us(t, tmax) > 0)
-
        tmax = t;
-
    }
+
  memset(&t, 0, sizeof(t));
+
  cfb = ctx->h21_baller.enabled ? ctx->h21_baller.cf : NULL;
+
  if(cfb && !cfb->cft->query(cfb, data, query, NULL, &t)) {
+
    if((t.tv_sec || t.tv_usec) && Curl_timediff_us(t, tmax) > 0)
+
      tmax = t;
+
  }
+
  memset(&t, 0, sizeof(t));
+
  cfb = ctx->h3_baller.enabled ? ctx->h3_baller.cf : NULL;
+
  if(cfb && !cfb->cft->query(cfb, data, query, NULL, &t)) {
+
    if((t.tv_sec || t.tv_usec) && Curl_timediff_us(t, tmax) > 0)
+
      tmax = t;
  }
  return tmax;
}
@@ -488,7 +446,6 @@ static CURLcode cf_hc_query(struct Curl_cfilter *cf,
                            int query, int *pres1, void *pres2)
{
  struct cf_hc_ctx *ctx = cf->ctx;
-
  size_t i;

  if(!cf->connected) {
    switch(query) {
@@ -503,11 +460,11 @@ static CURLcode cf_hc_query(struct Curl_cfilter *cf,
      return CURLE_OK;
    }
    case CF_QUERY_NEED_FLUSH: {
-
      for(i = 0; i < ctx->baller_count; i++)
-
        if(cf_hc_baller_needs_flush(&ctx->ballers[i], data)) {
-
          *pres1 = TRUE;
-
          return CURLE_OK;
-
        }
+
      if(cf_hc_baller_needs_flush(&ctx->h3_baller, data)
+
         || cf_hc_baller_needs_flush(&ctx->h21_baller, data)) {
+
        *pres1 = TRUE;
+
        return CURLE_OK;
+
      }
      break;
    }
    default:
@@ -525,17 +482,14 @@ static CURLcode cf_hc_cntrl(struct Curl_cfilter *cf,
{
  struct cf_hc_ctx *ctx = cf->ctx;
  CURLcode result = CURLE_OK;
-
  size_t i;

  if(!cf->connected) {
-
    for(i = 0; i < ctx->baller_count; i++) {
-
      result = cf_hc_baller_cntrl(&ctx->ballers[i], data, event, arg1, arg2);
-
      if(result && (result != CURLE_AGAIN))
-
        goto out;
-
    }
-
    result = CURLE_OK;
+
    result = cf_hc_baller_cntrl(&ctx->h3_baller, data, event, arg1, arg2);
+
    if(!result || (result == CURLE_AGAIN))
+
      result = cf_hc_baller_cntrl(&ctx->h21_baller, data, event, arg1, arg2);
+
    if(result == CURLE_AGAIN)
+
      result = CURLE_OK;
  }
-
out:
  return result;
}

@@ -583,37 +537,23 @@ struct Curl_cftype Curl_cft_http_connect = {
static CURLcode cf_hc_create(struct Curl_cfilter **pcf,
                             struct Curl_easy *data,
                             const struct Curl_dns_entry *remotehost,
-
                             enum alpnid *alpnids, size_t alpn_count)
+
                             bool try_h3, bool try_h21)
{
  struct Curl_cfilter *cf = NULL;
  struct cf_hc_ctx *ctx;
  CURLcode result = CURLE_OK;
-
  size_t i;
-

-
  DEBUGASSERT(alpnids);
-
  DEBUGASSERT(alpn_count);
-
  DEBUGASSERT(alpn_count <= ARRAYSIZE(ctx->ballers));
-
  if(!alpn_count || (alpn_count > ARRAYSIZE(ctx->ballers))) {
-
    failf(data, "https-connect filter create with unsupported %zu ALPN ids",
-
          alpn_count);
-
    return CURLE_FAILED_INIT;
-
  }

+
  (void)data;
  ctx = calloc(1, sizeof(*ctx));
  if(!ctx) {
    result = CURLE_OUT_OF_MEMORY;
    goto out;
  }
  ctx->remotehost = remotehost;
-
  for(i = 0; i < alpn_count; ++i)
-
    cf_hc_baller_assign(&ctx->ballers[i], alpnids[i]);
-
  for(; i < ARRAYSIZE(ctx->ballers); ++i)
-
    ctx->ballers[i].alpn_id = ALPN_none;
-
  ctx->baller_count = alpn_count;
+
  ctx->h3_baller.enabled = try_h3;
+
  ctx->h21_baller.enabled = try_h21;

  result = Curl_cf_create(&cf, &Curl_cft_http_connect, ctx);
-
  CURL_TRC_CF(data, cf, "created with %zu ALPNs -> %d",
-
              ctx->baller_count, result);
  if(result)
    goto out;
  ctx = NULL;
@@ -629,13 +569,13 @@ static CURLcode cf_http_connect_add(struct Curl_easy *data,
                                    struct connectdata *conn,
                                    int sockindex,
                                    const struct Curl_dns_entry *remotehost,
-
                                    enum alpnid *alpn_ids, size_t alpn_count)
+
                                    bool try_h3, bool try_h21)
{
  struct Curl_cfilter *cf;
  CURLcode result = CURLE_OK;

  DEBUGASSERT(data);
-
  result = cf_hc_create(&cf, data, remotehost, alpn_ids, alpn_count);
+
  result = cf_hc_create(&cf, data, remotehost, try_h3, try_h21);
  if(result)
    goto out;
  Curl_conn_cf_add(data, conn, sockindex, cf);
@@ -648,88 +588,33 @@ CURLcode Curl_cf_https_setup(struct Curl_easy *data,
                             int sockindex,
                             const struct Curl_dns_entry *remotehost)
{
-
  enum alpnid alpn_ids[2];
-
  size_t alpn_count = 0;
+
  bool try_h3 = FALSE, try_h21 = TRUE; /* defaults, for now */
  CURLcode result = CURLE_OK;

  (void)sockindex;
  (void)remotehost;

-
  if(conn->bits.tls_enable_alpn) {
-
    switch(data->state.httpwant) {
-
    case CURL_HTTP_VERSION_NONE:
-
      /* No preferences by transfer setup. Choose best defaults */
-
#ifdef USE_HTTPSRR
-
      if(conn->dns_entry && conn->dns_entry->hinfo &&
-
         !conn->dns_entry->hinfo->no_def_alpn) {
-
        size_t i, j;
-
        for(i = 0; i < ARRAYSIZE(conn->dns_entry->hinfo->alpns) &&
-
                   alpn_count < ARRAYSIZE(alpn_ids); ++i) {
-
          bool present = FALSE;
-
          enum alpnid alpn = conn->dns_entry->hinfo->alpns[i];
-
          for(j = 0; j < alpn_count; ++j) {
-
            if(alpn == alpn_ids[j]) {
-
              present = TRUE;
-
              break;
-
            }
-
          }
-
          if(!present) {
-
            switch(alpn) {
-
            case ALPN_h3:
-
              if(Curl_conn_may_http3(data, conn))
-
                break;  /* not possible */
-
              FALLTHROUGH();
-
            case ALPN_h2:
-
            case ALPN_h1:
-
              alpn_ids[alpn_count++] = alpn;
-
              break;
-
            default: /* ignore */
-
              break;
-
            }
-
          }
-
        }
-
      }
-
#endif
-
      if(!alpn_count)
-
        alpn_ids[alpn_count++] = ALPN_h2;
-
      break;
-
    case CURL_HTTP_VERSION_3ONLY:
-
      result = Curl_conn_may_http3(data, conn);
-
      if(result) /* cannot do it */
-
        goto out;
-
      alpn_ids[alpn_count++] = ALPN_h3;
-
      break;
-
    case CURL_HTTP_VERSION_3:
-
      /* We assume that silently not even trying H3 is ok here */
-
      /* TODO: should we fail instead? */
-
      if(Curl_conn_may_http3(data, conn) == CURLE_OK)
-
        alpn_ids[alpn_count++] = ALPN_h3;
-
      alpn_ids[alpn_count++] = ALPN_h2;
-
      break;
-
    case CURL_HTTP_VERSION_2_0:
-
    case CURL_HTTP_VERSION_2TLS:
-
    case CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE:
-
      alpn_ids[alpn_count++] = ALPN_h2;
-
      break;
-
    case CURL_HTTP_VERSION_1_0:
-
    case CURL_HTTP_VERSION_1_1:
-
      alpn_ids[alpn_count++] = ALPN_h1;
-
      break;
-
    default:
-
      alpn_ids[alpn_count++] = ALPN_h2;
-
      break;
-
    }
-
  }
+
  if(!conn->bits.tls_enable_alpn)
+
    goto out;

-
  /* If we identified ALPNs to use, install our filter. Otherwise,
-
   * install nothing, so our call will use a default connect setup. */
-
  if(alpn_count) {
-
    result = cf_http_connect_add(data, conn, sockindex, remotehost,
-
                                 alpn_ids, alpn_count);
+
  if(data->state.httpwant == CURL_HTTP_VERSION_3ONLY) {
+
    result = Curl_conn_may_http3(data, conn);
+
    if(result) /* cannot do it */
+
      goto out;
+
    try_h3 = TRUE;
+
    try_h21 = FALSE;
+
  }
+
  else if(data->state.httpwant >= CURL_HTTP_VERSION_3) {
+
    /* We assume that silently not even trying H3 is ok here */
+
    /* TODO: should we fail instead? */
+
    try_h3 = (Curl_conn_may_http3(data, conn) == CURLE_OK);
+
    try_h21 = TRUE;
  }

+
  result = cf_http_connect_add(data, conn, sockindex, remotehost,
+
                               try_h3, try_h21);
out:
  return result;
}

-
#endif /* !defined(CURL_DISABLE_HTTP) */
+
#endif /* !defined(CURL_DISABLE_HTTP) && !defined(USE_HYPER) */
modified external/curl/lib/cf-https-connect.h
@@ -25,7 +25,7 @@
 ***************************************************************************/
#include "curl_setup.h"

-
#if !defined(CURL_DISABLE_HTTP)
+
#if !defined(CURL_DISABLE_HTTP) && !defined(USE_HYPER)

struct Curl_cfilter;
struct Curl_easy;
@@ -54,5 +54,5 @@ CURLcode Curl_cf_https_setup(struct Curl_easy *data,
                             const struct Curl_dns_entry *remotehost);


-
#endif /* !defined(CURL_DISABLE_HTTP) */
+
#endif /* !defined(CURL_DISABLE_HTTP) && !defined(USE_HYPER) */
#endif /* HEADER_CURL_CF_HTTP_H */
modified external/curl/lib/cf-socket.c
@@ -306,9 +306,9 @@ tcpkeepalive(struct Curl_easy *data,
 * Assign the address `ai` to the Curl_sockaddr_ex `dest` and
 * set the transport used.
 */
-
CURLcode Curl_sock_assign_addr(struct Curl_sockaddr_ex *dest,
-
                               const struct Curl_addrinfo *ai,
-
                               int transport)
+
void Curl_sock_assign_addr(struct Curl_sockaddr_ex *dest,
+
                           const struct Curl_addrinfo *ai,
+
                           int transport)
{
  /*
   * The Curl_sockaddr_ex structure is basically libcurl's external API
@@ -334,13 +334,9 @@ CURLcode Curl_sock_assign_addr(struct Curl_sockaddr_ex *dest,
  }
  dest->addrlen = (unsigned int)ai->ai_addrlen;

-
  if(dest->addrlen > sizeof(struct Curl_sockaddr_storage)) {
-
    DEBUGASSERT(0);
-
    return CURLE_TOO_LARGE;
-
  }
-

+
  if(dest->addrlen > sizeof(struct Curl_sockaddr_storage))
+
    dest->addrlen = sizeof(struct Curl_sockaddr_storage);
  memcpy(&dest->curl_sa_addr, ai->ai_addr, dest->addrlen);
-
  return CURLE_OK;
}

static CURLcode socket_open(struct Curl_easy *data,
@@ -399,16 +395,12 @@ CURLcode Curl_socket_open(struct Curl_easy *data,
                            curl_socket_t *sockfd)
{
  struct Curl_sockaddr_ex dummy;
-
  CURLcode result;

  if(!addr)
    /* if the caller does not want info back, use a local temp copy */
    addr = &dummy;

-
  result = Curl_sock_assign_addr(addr, ai, transport);
-
  if(result)
-
    return result;
-

+
  Curl_sock_assign_addr(addr, ai, transport);
  return socket_open(data, addr, sockfd);
}

@@ -967,20 +959,14 @@ struct cf_socket_ctx {
  BIT(active);
};

-
static CURLcode cf_socket_ctx_init(struct cf_socket_ctx *ctx,
-
                                   const struct Curl_addrinfo *ai,
-
                                   int transport)
+
static void cf_socket_ctx_init(struct cf_socket_ctx *ctx,
+
                               const struct Curl_addrinfo *ai,
+
                               int transport)
{
-
  CURLcode result;
-

  memset(ctx, 0, sizeof(*ctx));
  ctx->sock = CURL_SOCKET_BAD;
  ctx->transport = transport;
-

-
  result = Curl_sock_assign_addr(&ctx->addr, ai, transport);
-
  if(result)
-
    return result;
-

+
  Curl_sock_assign_addr(&ctx->addr, ai, transport);
#ifdef DEBUGBUILD
  {
    char *p = getenv("CURL_DBG_SOCK_WBLOCK");
@@ -1009,8 +995,6 @@ static CURLcode cf_socket_ctx_init(struct cf_socket_ctx *ctx,
    }
  }
#endif
-

-
  return result;
}

static void cf_socket_close(struct Curl_cfilter *cf, struct Curl_easy *data)
@@ -1298,7 +1282,7 @@ static int do_connect(struct Curl_cfilter *cf, struct Curl_easy *data,

    rc = connect(ctx->sock, &ctx->addr.curl_sa_addr, ctx->addr.addrlen);
#elif defined(MSG_FASTOPEN) /* old Linux */
-
    if(Curl_conn_is_ssl(cf->conn, cf->sockindex))
+
    if(cf->conn->given->flags & PROTOPT_SSL)
      rc = connect(ctx->sock, &ctx->addr.curl_sa_addr, ctx->addr.addrlen);
    else
      rc = 0; /* Do nothing */
@@ -1459,7 +1443,7 @@ static bool cf_socket_data_pending(struct Curl_cfilter *cf,

  (void)data;
  readable = SOCKET_READABLE(ctx->sock, 0);
-
  return readable > 0 && (readable & CURL_CSELECT_IN);
+
  return (readable > 0 && (readable & CURL_CSELECT_IN));
}

#ifdef USE_WINSOCK
@@ -1821,10 +1805,7 @@ CURLcode Curl_cf_tcp_create(struct Curl_cfilter **pcf,
    result = CURLE_OUT_OF_MEMORY;
    goto out;
  }
-

-
  result = cf_socket_ctx_init(ctx, ai, transport);
-
  if(result)
-
    goto out;
+
  cf_socket_ctx_init(ctx, ai, transport);

  result = Curl_cf_create(&cf, &Curl_cft_tcp, ctx);

@@ -1850,7 +1831,7 @@ static CURLcode cf_udp_setup_quic(struct Curl_cfilter *cf,
  /* QUIC needs a connected socket, nonblocking */
  DEBUGASSERT(ctx->sock != CURL_SOCKET_BAD);

-
  rc = connect(ctx->sock, &ctx->addr.curl_sa_addr,  /* NOLINT FIXME */
+
  rc = connect(ctx->sock, &ctx->addr.curl_sa_addr,
               (curl_socklen_t)ctx->addr.addrlen);
  if(-1 == rc) {
    return socket_connect_result(data, ctx->ip.remote_ip, SOCKERRNO);
@@ -1973,10 +1954,7 @@ CURLcode Curl_cf_udp_create(struct Curl_cfilter **pcf,
    result = CURLE_OUT_OF_MEMORY;
    goto out;
  }
-

-
  result = cf_socket_ctx_init(ctx, ai, transport);
-
  if(result)
-
    goto out;
+
  cf_socket_ctx_init(ctx, ai, transport);

  result = Curl_cf_create(&cf, &Curl_cft_udp, ctx);

@@ -2028,10 +2006,7 @@ CURLcode Curl_cf_unix_create(struct Curl_cfilter **pcf,
    result = CURLE_OUT_OF_MEMORY;
    goto out;
  }
-

-
  result = cf_socket_ctx_init(ctx, ai, transport);
-
  if(result)
-
    goto out;
+
  cf_socket_ctx_init(ctx, ai, transport);

  result = Curl_cf_create(&cf, &Curl_cft_unix, ctx);

modified external/curl/lib/cf-socket.h
@@ -95,9 +95,9 @@ void Curl_sndbuf_init(curl_socket_t sockfd);
 * Assign the address `ai` to the Curl_sockaddr_ex `dest` and
 * set the transport used.
 */
-
CURLcode Curl_sock_assign_addr(struct Curl_sockaddr_ex *dest,
-
                               const struct Curl_addrinfo *ai,
-
                               int transport);
+
void Curl_sock_assign_addr(struct Curl_sockaddr_ex *dest,
+
                           const struct Curl_addrinfo *ai,
+
                           int transport);

/**
 * Creates a cfilter that opens a TCP socket to the given address
modified external/curl/lib/cfilters.c
@@ -494,35 +494,13 @@ bool Curl_conn_is_multiplex(struct connectdata *conn, int sockindex)
  for(; cf; cf = cf->next) {
    if(cf->cft->flags & CF_TYPE_MULTIPLEX)
      return TRUE;
-
    if(cf->cft->flags & (CF_TYPE_IP_CONNECT|CF_TYPE_SSL))
+
    if(cf->cft->flags & CF_TYPE_IP_CONNECT
+
       || cf->cft->flags & CF_TYPE_SSL)
      return FALSE;
  }
  return FALSE;
}

-
unsigned char Curl_conn_http_version(struct Curl_easy *data)
-
{
-
  struct Curl_cfilter *cf;
-
  CURLcode result = CURLE_UNKNOWN_OPTION;
-
  unsigned char v = 0;
-

-
  cf = data->conn ? data->conn->cfilter[FIRSTSOCKET] : NULL;
-
  for(; cf; cf = cf->next) {
-
    if(cf->cft->flags & CF_TYPE_HTTP) {
-
      int value = 0;
-
      result = cf->cft->query(cf, data, CF_QUERY_HTTP_VERSION, &value, NULL);
-
      if(!result && ((value < 0) || (value > 255)))
-
        result = CURLE_FAILED_INIT;
-
      else
-
        v = (unsigned char)value;
-
      break;
-
    }
-
    if(cf->cft->flags & (CF_TYPE_IP_CONNECT|CF_TYPE_SSL))
-
      break;
-
  }
-
  return (unsigned char)(result ? 0 : v);
-
}
-

bool Curl_conn_data_pending(struct Curl_easy *data, int sockindex)
{
  struct Curl_cfilter *cf;
@@ -733,6 +711,18 @@ static CURLcode cf_cntrl_all(struct connectdata *conn,
  return result;
}

+
void Curl_conn_ev_data_attach(struct connectdata *conn,
+
                              struct Curl_easy *data)
+
{
+
  cf_cntrl_all(conn, data, TRUE, CF_CTRL_DATA_ATTACH, 0, NULL);
+
}
+

+
void Curl_conn_ev_data_detach(struct connectdata *conn,
+
                              struct Curl_easy *data)
+
{
+
  cf_cntrl_all(conn, data, TRUE, CF_CTRL_DATA_DETACH, 0, NULL);
+
}
+

CURLcode Curl_conn_ev_data_setup(struct Curl_easy *data)
{
  return cf_cntrl_all(data->conn, data, FALSE,
modified external/curl/lib/cfilters.h
@@ -132,6 +132,8 @@ typedef CURLcode Curl_cft_conn_keep_alive(struct Curl_cfilter *cf,
 *           to all filters in the chain. Overall result is always CURLE_OK.
 */
/*      data event                          arg1       arg2     return */
+
#define CF_CTRL_DATA_ATTACH           1  /* 0          NULL     ignored */
+
#define CF_CTRL_DATA_DETACH           2  /* 0          NULL     ignored */
#define CF_CTRL_DATA_SETUP            4  /* 0          NULL     first fail */
#define CF_CTRL_DATA_IDLE             5  /* 0          NULL     first fail */
#define CF_CTRL_DATA_PAUSE            6  /* on/off     NULL     first fail */
@@ -176,7 +178,6 @@ typedef CURLcode Curl_cft_cntrl(struct Curl_cfilter *cf,
#define CF_QUERY_STREAM_ERROR       6  /* error code - */
#define CF_QUERY_NEED_FLUSH         7  /* TRUE/FALSE - */
#define CF_QUERY_IP_INFO            8  /* TRUE/FALSE struct ip_quadruple */
-
#define CF_QUERY_HTTP_VERSION       9  /* number (10/11/20/30)   -  */

/**
 * Query the cfilter for properties. Filters ignorant of a query will
@@ -196,13 +197,11 @@ typedef CURLcode Curl_cft_query(struct Curl_cfilter *cf,
 * CF_TYPE_SSL:        provide SSL/TLS
 * CF_TYPE_MULTIPLEX:  provides multiplexing of easy handles
 * CF_TYPE_PROXY       provides proxying
-
 * CF_TYPE_HTTP        implement a version of the HTTP protocol
 */
#define CF_TYPE_IP_CONNECT  (1 << 0)
#define CF_TYPE_SSL         (1 << 1)
#define CF_TYPE_MULTIPLEX   (1 << 2)
#define CF_TYPE_PROXY       (1 << 3)
-
#define CF_TYPE_HTTP        (1 << 4)

/* A connection filter type, e.g. specific implementation. */
struct Curl_cftype {
@@ -396,12 +395,6 @@ bool Curl_conn_is_ssl(struct connectdata *conn, int sockindex);
bool Curl_conn_is_multiplex(struct connectdata *conn, int sockindex);

/**
-
 * Return the HTTP version used on the FIRSTSOCKET connection filters
-
 * or 0 if unknown. Value otherwise is 09, 10, 11, etc.
-
 */
-
unsigned char Curl_conn_http_version(struct Curl_easy *data);
-

-
/**
 * Close the filter chain at `sockindex` for connection `data->conn`.
  * Filters remain in place and may be connected again afterwards.
 */
@@ -484,6 +477,24 @@ ssize_t Curl_cf_send(struct Curl_easy *data, int sockindex,
                     const void *buf, size_t len, bool eos, CURLcode *code);

/**
+
 * The easy handle `data` is being attached to `conn`. This does
+
 * not mean that data will actually do a transfer. Attachment is
+
 * also used for temporary actions on the connection.
+
 */
+
void Curl_conn_ev_data_attach(struct connectdata *conn,
+
                              struct Curl_easy *data);
+

+
/**
+
 * The easy handle `data` is being detached (no longer served)
+
 * by connection `conn`. All filters are informed to release any resources
+
 * related to `data`.
+
 * Note: there may be several `data` attached to a connection at the same
+
 * time.
+
 */
+
void Curl_conn_ev_data_detach(struct connectdata *conn,
+
                              struct Curl_easy *data);
+

+
/**
 * Notify connection filters that they need to setup data for
 * a transfer.
 */
added external/curl/lib/config-amigaos.h
@@ -0,0 +1,129 @@
+
#ifndef HEADER_CURL_CONFIG_AMIGAOS_H
+
#define HEADER_CURL_CONFIG_AMIGAOS_H
+
/***************************************************************************
+
 *                                  _   _ ____  _
+
 *  Project                     ___| | | |  _ \| |
+
 *                             / __| | | | |_) | |
+
 *                            | (__| |_| |  _ <| |___
+
 *                             \___|\___/|_| \_\_____|
+
 *
+
 * Copyright (C) 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.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.
+
 *
+
 * SPDX-License-Identifier: curl
+
 *
+
 ***************************************************************************/
+

+
/* ================================================================ */
+
/*               Hand crafted config file for AmigaOS               */
+
/* ================================================================ */
+

+
#ifdef __AMIGA__ /* Any AmigaOS flavour */
+

+
#define HAVE_ARPA_INET_H 1
+
#define HAVE_CLOSESOCKET_CAMEL 1
+
#define HAVE_IOCTLSOCKET_CAMEL 1
+
#define HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1
+
#define HAVE_LONGLONG 1
+
#define HAVE_NETDB_H 1
+
#define HAVE_NETINET_IN_H 1
+
#define HAVE_NET_IF_H 1
+
#define HAVE_PWD_H 1
+
#define HAVE_SELECT 1
+
#define HAVE_SIGNAL 1
+
#define HAVE_SOCKET 1
+
#define HAVE_STRCASECMP 1
+
#define HAVE_STRDUP 1
+
#define HAVE_STRICMP 1
+
#define HAVE_STRINGS_H 1
+
#define HAVE_STRUCT_TIMEVAL 1
+
#define HAVE_SYS_PARAM_H 1
+
#define HAVE_SYS_SOCKET_H 1
+
#define HAVE_SYS_SOCKIO_H 1
+
#define HAVE_SYS_STAT_H 1
+
#define HAVE_SYS_TIME_H 1
+
#define HAVE_SYS_TYPES_H 1
+
#define HAVE_UNISTD_H 1
+
#define HAVE_UTIME 1
+
#define HAVE_UTIME_H 1
+
#define HAVE_WRITABLE_ARGV 1
+
#define HAVE_SYS_IOCTL_H 1
+

+
#define NEED_MALLOC_H 1
+

+
#define SIZEOF_INT 4
+
#define SIZEOF_SIZE_T 4
+

+
#ifndef SIZEOF_CURL_OFF_T
+
#define SIZEOF_CURL_OFF_T 8
+
#endif
+

+
#define USE_MANUAL 1
+
#define CURL_DISABLE_LDAP 1
+

+
#ifndef CURL_OS
+
#define CURL_OS "AmigaOS"
+
#endif
+

+
#define PACKAGE "curl"
+
#define PACKAGE_BUGREPORT "a suitable mailing list: https://curl.se/mail/"
+
#define PACKAGE_NAME "curl"
+
#define PACKAGE_STRING "curl -"
+
#define PACKAGE_TARNAME "curl"
+
#define PACKAGE_VERSION "-"
+

+
#if defined(USE_AMISSL)
+
#define CURL_CA_PATH "AmiSSL:Certs"
+
#elif defined(__MORPHOS__)
+
#define CURL_CA_BUNDLE "MOSSYS:Data/SSL/curl-ca-bundle.crt"
+
#else
+
#define CURL_CA_BUNDLE "s:curl-ca-bundle.crt"
+
#endif
+

+
#define STDC_HEADERS 1
+

+
#define in_addr_t int
+

+
#ifndef F_OK
+
#  define F_OK 0
+
#endif
+

+
#ifndef O_RDONLY
+
#  define O_RDONLY 0x0000
+
#endif
+

+
#ifndef LONG_MAX
+
#  define LONG_MAX 0x7fffffffL
+
#endif
+

+
#ifndef LONG_MIN
+
#  define LONG_MIN (-0x7fffffffL-1)
+
#endif
+

+
#define HAVE_RECV 1
+
#define RECV_TYPE_ARG1 long
+
#define RECV_TYPE_ARG2 char *
+
#define RECV_TYPE_ARG3 long
+
#define RECV_TYPE_ARG4 long
+
#define RECV_TYPE_RETV long
+

+
#define HAVE_SEND 1
+
#define SEND_TYPE_ARG1 int
+
#define SEND_QUAL_ARG2 const
+
#define SEND_TYPE_ARG2 char *
+
#define SEND_TYPE_ARG3 int
+
#define SEND_TYPE_ARG4 int
+
#define SEND_TYPE_RETV int
+

+
#endif /* __AMIGA__ */
+
#endif /* HEADER_CURL_CONFIG_AMIGAOS_H */
added external/curl/lib/config-dos.h
@@ -0,0 +1,138 @@
+
#ifndef HEADER_CURL_CONFIG_DOS_H
+
#define HEADER_CURL_CONFIG_DOS_H
+
/***************************************************************************
+
 *                                  _   _ ____  _
+
 *  Project                     ___| | | |  _ \| |
+
 *                             / __| | | | |_) | |
+
 *                            | (__| |_| |  _ <| |___
+
 *                             \___|\___/|_| \_\_____|
+
 *
+
 * Copyright (C) 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.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.
+
 *
+
 * SPDX-License-Identifier: curl
+
 *
+
 ***************************************************************************/
+

+

+
/* ================================================================ */
+
/*       lib/config-dos.h - Hand crafted config file for DOS        */
+
/* ================================================================ */
+

+
#ifndef CURL_OS
+
#if defined(DJGPP)
+
  #define CURL_OS  "MSDOS/djgpp"
+
#elif defined(__HIGHC__)
+
  #define CURL_OS  "MSDOS/HighC"
+
#else
+
  #define CURL_OS  "MSDOS/?"
+
#endif
+
#endif
+

+
#define PACKAGE  "curl"
+

+
#define USE_MANUAL 1
+

+
#define HAVE_ARPA_INET_H       1
+
#define HAVE_FCNTL_H           1
+
#define HAVE_FREEADDRINFO      1
+
#define HAVE_GETADDRINFO       1
+
#define HAVE_GETTIMEOFDAY      1
+
#define HAVE_IO_H              1
+
#define HAVE_IOCTL_FIONBIO     1
+
#define HAVE_IOCTLSOCKET       1
+
#define HAVE_IOCTLSOCKET_FIONBIO   1
+
#define HAVE_LOCALE_H          1
+
#define HAVE_LONGLONG          1
+
#define HAVE_NETDB_H           1
+
#define HAVE_NETINET_IN_H      1
+
#define HAVE_NETINET_TCP_H     1
+
#define HAVE_NET_IF_H          1
+
#define HAVE_RECV              1
+
#define HAVE_SELECT            1
+
#define HAVE_SEND              1
+
#define HAVE_SETLOCALE         1
+
#define HAVE_SETMODE           1
+
#define HAVE_SIGNAL            1
+
#define HAVE_SOCKET            1
+
#define HAVE_STRDUP            1
+
#define HAVE_STRICMP           1
+
#define HAVE_STRTOLL           1
+
#define HAVE_STRUCT_TIMEVAL    1
+
#define HAVE_SYS_IOCTL_H       1
+
#define HAVE_SYS_SOCKET_H      1
+
#define HAVE_SYS_STAT_H        1
+
#define HAVE_SYS_TYPES_H       1
+
#define HAVE_UNISTD_H          1
+

+
#define NEED_MALLOC_H          1
+

+
#define SIZEOF_INT             4
+
#define SIZEOF_LONG            4
+
#define SIZEOF_SIZE_T          4
+
#define SIZEOF_CURL_OFF_T      8
+
#define STDC_HEADERS           1
+

+
/* Qualifiers for send() and recv() */
+

+
#define SEND_TYPE_ARG1         int
+
#define SEND_QUAL_ARG2         const
+
#define SEND_TYPE_ARG2         void *
+
#define SEND_TYPE_ARG3         int
+
#define SEND_TYPE_ARG4         int
+
#define SEND_TYPE_RETV         int
+

+
#define RECV_TYPE_ARG1         int
+
#define RECV_TYPE_ARG2         void *
+
#define RECV_TYPE_ARG3         int
+
#define RECV_TYPE_ARG4         int
+
#define RECV_TYPE_RETV         int
+

+
#define BSD
+

+
/* CURLDEBUG definition enables memory tracking */
+
/* #define CURLDEBUG */
+

+
/* to disable LDAP */
+
#define CURL_DISABLE_LDAP        1
+

+
#define in_addr_t  u_long
+

+
#if defined(__HIGHC__) || \
+
    (defined(__GNUC__) && (__GNUC__ < 4))
+
  #define ssize_t  int
+
#endif
+

+
/* Target HAVE_x section */
+

+
#if defined(DJGPP)
+
  #define HAVE_BASENAME   1
+
  #define HAVE_STRCASECMP 1
+
  #define HAVE_SIGACTION  1
+
  #define HAVE_SIGSETJMP  1
+
  #define HAVE_SYS_TIME_H 1
+
  #define HAVE_TERMIOS_H  1
+

+
#elif defined(__HIGHC__)
+
  #define HAVE_SYS_TIME_H 1
+
  #define strerror(e) strerror_s_((e))
+
#endif
+

+
#ifdef MSDOS  /* Watt-32 */
+
  #define HAVE_CLOSE_S    1
+
#endif
+

+
#undef word
+
#undef byte
+

+
#endif /* HEADER_CURL_CONFIG_DOS_H */
modified external/curl/lib/config-mac.h
@@ -65,6 +65,10 @@

#define HAVE_SIGACTION          1

+
#ifdef MACOS_SSL_SUPPORT
+
#  define USE_OPENSSL           1
+
#endif
+

#define CURL_DISABLE_LDAP       1

#define HAVE_IOCTL_FIONBIO      1
@@ -93,4 +97,7 @@
#define SEND_TYPE_ARG4 int
#define SEND_TYPE_RETV ssize_t

+
#define HAVE_EXTRA_STRICMP_H 1
+
#define HAVE_EXTRA_STRDUP_H  1
+

#endif /* HEADER_CURL_CONFIG_MAC_H */
modified external/curl/lib/config-os400.h
@@ -30,6 +30,11 @@

#pragma enum(int)

+
#undef PACKAGE
+

+
/* Version number of this archive. */
+
#undef VERSION
+

/* Define cpu-machine-OS */
#ifndef CURL_OS
#define CURL_OS "OS/400"
@@ -105,6 +110,9 @@
/* Define if you have the GNU gssapi libraries */
#undef HAVE_GSSGNU

+
/* Define if you need the malloc.h header file even with stdlib.h  */
+
/* #define NEED_MALLOC_H 1 */
+

/* Define if you have the <netdb.h> header file. */
#define HAVE_NETDB_H

@@ -194,6 +202,9 @@
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H

+
/* Name of package */
+
#undef PACKAGE
+

/* The size of `int', as computed by sizeof. */
#define SIZEOF_INT              4

modified external/curl/lib/config-plan9.h
@@ -35,6 +35,13 @@
#ifndef CURL_OS
#define CURL_OS "plan9"
#endif
+
#define PACKAGE "curl"
+
#define PACKAGE_NAME "curl"
+
#define PACKAGE_BUGREPORT "a suitable mailing list: https://curl.se/mail/"
+
#define PACKAGE_STRING "curl -"
+
#define PACKAGE_TARNAME "curl"
+
#define PACKAGE_VERSION "-"
+
#define VERSION "0.0.0" /* TODO */

#define STDC_HEADERS 1

@@ -106,6 +113,7 @@
#define HAVE_SIGSETJMP 1
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
#define HAVE_SOCKET 1
+
#define HAVE_SSL_GET_SHUTDOWN 1
#define HAVE_STDBOOL_H 1
#define HAVE_STRCASECMP 1
#define HAVE_STRDUP 1
modified external/curl/lib/config-riscos.h
@@ -28,6 +28,12 @@
/*               Hand crafted config file for RISC OS               */
/* ================================================================ */

+
/* Name of this package! */
+
#undef PACKAGE
+

+
/* Version number of this archive. */
+
#undef VERSION
+

/* Define cpu-machine-OS */
#ifndef CURL_OS
#define CURL_OS "ARM-RISC OS"
@@ -99,6 +105,9 @@
/* Define if you have the <io.h> header file. */
#undef HAVE_IO_H

+
/* Define if you need the malloc.h header file even with stdlib.h  */
+
/* #define NEED_MALLOC_H 1 */
+

/* Define if you have the <netdb.h> header file. */
#define HAVE_NETDB_H

@@ -174,6 +183,9 @@
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H

+
/* Name of package */
+
#undef PACKAGE
+

/* The size of `int', as computed by sizeof. */
#define SIZEOF_INT 4

modified external/curl/lib/config-win32.h
@@ -42,9 +42,10 @@
#define HAVE_IO_H 1

/* Define if you have the <locale.h> header file. */
-
#ifndef UNDER_CE
#define HAVE_LOCALE_H 1
-
#endif
+

+
/* Define if you need <malloc.h> header even with <stdlib.h> header file. */
+
#define NEED_MALLOC_H 1

/* Define if you have the <netdb.h> header file. */
/* #define HAVE_NETDB_H 1 */
@@ -58,7 +59,7 @@
#endif

/* Define if you have the <sys/param.h> header file. */
-
#ifdef __MINGW32__
+
#if defined(__MINGW32__)
#define HAVE_SYS_PARAM_H 1
#endif

@@ -75,7 +76,7 @@
#define HAVE_SYS_STAT_H 1

/* Define if you have the <sys/time.h> header file. */
-
#ifdef __MINGW32__
+
#if defined(__MINGW32__)
#define HAVE_SYS_TIME_H 1
#endif

@@ -92,12 +93,12 @@
/* #define HAVE_TERMIOS_H 1 */

/* Define if you have the <unistd.h> header file. */
-
#ifdef __MINGW32__
+
#if defined(__MINGW32__)
#define HAVE_UNISTD_H 1
#endif

/* Define to 1 if you have the <libgen.h> header file. */
-
#ifdef __MINGW32__
+
#if defined(__MINGW32__)
#define HAVE_LIBGEN_H 1
#endif

@@ -121,7 +122,7 @@
#define HAVE_CLOSESOCKET 1

/* Define if you have the ftruncate function. */
-
#ifdef __MINGW32__
+
#if defined(__MINGW32__)
#define HAVE_FTRUNCATE 1
#endif

@@ -135,7 +136,7 @@
#define HAVE_GETHOSTNAME 1

/* Define if you have the gettimeofday function. */
-
#ifdef __MINGW32__
+
#if defined(__MINGW32__)
#define HAVE_GETTIMEOFDAY 1
#endif

@@ -148,7 +149,6 @@
/* Define if you have the select function. */
#define HAVE_SELECT 1

-
#ifndef UNDER_CE
/* Define if you have the setlocale function. */
#define HAVE_SETLOCALE 1

@@ -157,14 +157,21 @@

/* Define if you have the _setmode function. */
#define HAVE__SETMODE 1
-
#endif

/* Define if you have the socket function. */
#define HAVE_SOCKET 1

+
/* Define if you have the strcasecmp function. */
+
#if defined(__MINGW32__)
+
#define HAVE_STRCASECMP 1
+
#endif
+

/* Define if you have the strdup function. */
#define HAVE_STRDUP 1

+
/* Define if you have the stricmp function. */
+
#define HAVE_STRICMP 1
+

/* Define if you have the strtoll function. */
#if (defined(_MSC_VER) && (_MSC_VER >= 1800)) || defined(__MINGW32__)
#define HAVE_STRTOLL 1
@@ -217,8 +224,7 @@
#define HAVE_SNPRINTF 1
#endif

-
/* Vista */
-
#if (defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x600) && !defined(UNDER_CE)
+
#if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x600  /* Vista */
/* Define to 1 if you have a IPv6 capable working inet_ntop function. */
#define HAVE_INET_NTOP 1
/* Define to 1 if you have a IPv6 capable working inet_pton function. */
@@ -226,19 +232,17 @@
#endif

/* Define to 1 if you have the `basename' function. */
-
#ifdef __MINGW32__
+
#if defined(__MINGW32__)
#define HAVE_BASENAME 1
#endif

/* Define to 1 if you have the strtok_r function. */
-
#if defined(__MINGW32__) && !defined(__MINGW32CE__)
+
#if defined(__MINGW32__)
#define HAVE_STRTOK_R 1
#endif

/* Define to 1 if you have the signal function. */
-
#ifndef UNDER_CE
#define HAVE_SIGNAL 1
-
#endif

/* ---------------------------------------------------------------- */
/*                       TYPEDEF REPLACEMENTS                       */
@@ -249,7 +253,7 @@

/* Define if ssize_t is not an available 'typedefed' type. */
#ifndef _SSIZE_T_DEFINED
-
#  ifdef __MINGW32__
+
#  if defined(__MINGW32__)
#  elif defined(_WIN64)
#    define _SSIZE_T_DEFINED
#    define ssize_t __int64
@@ -273,7 +277,7 @@
#define SIZEOF_LONG 4

/* Define to the size of `size_t', as computed by sizeof. */
-
#ifdef _WIN64
+
#if defined(_WIN64)
#  define SIZEOF_SIZE_T 8
#else
#  define SIZEOF_SIZE_T 4
@@ -300,6 +304,12 @@
#define HAVE_LONGLONG 1
#endif

+
/* Define to avoid VS2005 complaining about portable C functions. */
+
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
+
#define _CRT_SECURE_NO_DEPRECATE 1
+
#define _CRT_NONSTDC_NO_DEPRECATE 1
+
#endif
+

/* mingw-w64 and visual studio >= 2005 (MSVCR80)
   all default to 64-bit time_t unless _USE_32BIT_TIME_T is defined */
#if (defined(_MSC_VER) && (_MSC_VER >= 1400)) || defined(__MINGW32__)
@@ -310,10 +320,8 @@
#  endif
#endif

-
#ifndef UNDER_CE
-

/* Define some minimum and default build targets for Visual Studio */
-
#ifdef _MSC_VER
+
#if defined(_MSC_VER)
   /* Officially, Microsoft's Windows SDK versions 6.X does not support Windows
      2000 as a supported build target. VS2008 default installations provides
      an embedded Windows SDK v6.0A along with the claim that Windows 2000 is a
@@ -324,7 +332,7 @@

   /* The minimum build target for VS2012 is Vista unless Update 1 is installed
      and the v110_xp toolset is chosen. */
-
#  ifdef _USING_V110_SDK71_
+
#  if defined(_USING_V110_SDK71_)
#    define VS2012_MIN_TARGET 0x0501
#  else
#    define VS2012_MIN_TARGET 0x0600
@@ -336,7 +344,7 @@

   /* VS2012 default build target is Windows Vista unless Update 1 is installed
      and the v110_xp toolset is chosen. */
-
#  ifdef _USING_V110_SDK71_
+
#  if defined(_USING_V110_SDK71_)
#    define VS2012_DEF_TARGET 0x0501
#  else
#    define VS2012_DEF_TARGET 0x0600
@@ -346,10 +354,10 @@
/* VS2008 default target settings and minimum build target check. */
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_MSC_VER <= 1600)
#  ifndef _WIN32_WINNT
-
#  define _WIN32_WINNT VS2008_DEF_TARGET
+
#    define _WIN32_WINNT VS2008_DEF_TARGET
#  endif
#  ifndef WINVER
-
#  define WINVER VS2008_DEF_TARGET
+
#    define WINVER VS2008_DEF_TARGET
#  endif
#  if (_WIN32_WINNT < VS2008_MIN_TARGET) || (WINVER < VS2008_MIN_TARGET)
#    error VS2008 does not support Windows build targets prior to Windows 2000
@@ -359,13 +367,13 @@
/* VS2012 default target settings and minimum build target check. */
#if defined(_MSC_VER) && (_MSC_VER >= 1700)
#  ifndef _WIN32_WINNT
-
#  define _WIN32_WINNT VS2012_DEF_TARGET
+
#    define _WIN32_WINNT VS2012_DEF_TARGET
#  endif
#  ifndef WINVER
-
#  define WINVER VS2012_DEF_TARGET
+
#    define WINVER VS2012_DEF_TARGET
#  endif
#  if (_WIN32_WINNT < VS2012_MIN_TARGET) || (WINVER < VS2012_MIN_TARGET)
-
#    ifdef _USING_V110_SDK71_
+
#    if defined(_USING_V110_SDK71_)
#      error VS2012 does not support Windows build targets prior to Windows XP
#    else
#      error VS2012 does not support Windows build targets prior to Windows \
@@ -374,14 +382,10 @@ Vista
#  endif
#endif

-
#endif /* UNDER_CE */
-

/* Windows XP is required for freeaddrinfo, getaddrinfo */
-
#ifndef UNDER_CE
#define HAVE_FREEADDRINFO           1
#define HAVE_GETADDRINFO            1
#define HAVE_GETADDRINFO_THREADSAFE 1
-
#endif

/* ---------------------------------------------------------------- */
/*                          STRUCT RELATED                          */
@@ -400,16 +404,26 @@ Vista
/*                        LARGE FILE SUPPORT                        */
/* ---------------------------------------------------------------- */

-
#ifndef UNDER_CE
+
#if defined(_MSC_VER) && !defined(_WIN32_WCE)
+
#  if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
+
#    define USE_WIN32_LARGE_FILES
+
#  else
+
#    define USE_WIN32_SMALL_FILES
+
#  endif
+
#endif

-
/* _fseeki64() requires VS2005 */
-
#if (defined(_MSC_VER) && (_MSC_VER >= 1400)) || defined(__MINGW32__)
+
#if defined(__MINGW32__) && !defined(USE_WIN32_LARGE_FILES)
#  define USE_WIN32_LARGE_FILES
+
#endif
+

+
#if !defined(USE_WIN32_LARGE_FILES) && !defined(USE_WIN32_SMALL_FILES)
+
#  define USE_WIN32_SMALL_FILES
+
#endif
+

/* Number of bits in a file offset, on hosts where this is settable. */
-
#  ifdef __MINGW32__
-
#    ifndef _FILE_OFFSET_BITS
-
#    define _FILE_OFFSET_BITS 64
-
#    endif
+
#if defined(USE_WIN32_LARGE_FILES) && defined(__MINGW32__)
+
#  ifndef _FILE_OFFSET_BITS
+
#  define _FILE_OFFSET_BITS 64
#  endif
#endif

@@ -421,8 +435,6 @@ Vista
#  define SIZEOF_OFF_T 4
#endif

-
#endif /* UNDER_CE */
-

/* ---------------------------------------------------------------- */
/*                       DNS RESOLVER SPECIALTY                     */
/* ---------------------------------------------------------------- */
@@ -448,28 +460,26 @@ Vista
/*                           LDAP SUPPORT                           */
/* ---------------------------------------------------------------- */

-
#ifdef CURL_HAS_NOVELL_LDAPSDK
+
#if defined(CURL_HAS_NOVELL_LDAPSDK)
#undef USE_WIN32_LDAP
#define HAVE_LDAP_SSL_H 1
#define HAVE_LDAP_URL_PARSE 1
#elif defined(CURL_HAS_OPENLDAP_LDAPSDK)
#undef USE_WIN32_LDAP
#define HAVE_LDAP_URL_PARSE 1
-
#elif !defined(CURL_WINDOWS_UWP) && !defined(UNDER_CE)
+
#else
#undef HAVE_LDAP_URL_PARSE
#define HAVE_LDAP_SSL 1
#define USE_WIN32_LDAP 1
#endif

/* Define to use the Windows crypto library. */
-
#ifndef CURL_WINDOWS_UWP
+
#if !defined(CURL_WINDOWS_UWP)
#define USE_WIN32_CRYPTO
#endif

/* Define to use Unix sockets. */
-
#ifndef UNDER_CE
#define USE_UNIX_SOCKETS
-
#endif

/* ---------------------------------------------------------------- */
/*                       ADDITIONAL DEFINITIONS                     */
@@ -477,53 +487,25 @@ Vista

/* Define cpu-machine-OS */
#ifndef CURL_OS
-
#  ifdef UNDER_CE
-
#    ifdef _M_ARM
-
#    define CURL_OS "arm-pc-win32ce"
-
#    else
-
#    define CURL_OS "i386-pc-win32ce"
-
#    endif
-
#  else /* !UNDER_CE */
-
#    if defined(_M_IX86) || defined(__i386__) /* x86 (MSVC or gcc) */
-
#    define CURL_OS "i386-pc-win32"
-
#    elif defined(_M_X64) || defined(__x86_64__) /* x86_64 (VS2005+ or gcc) */
-
#    define CURL_OS "x86_64-pc-win32"
-
#    elif defined(_M_IA64) || defined(__ia64__) /* Itanium */
-
#    define CURL_OS "ia64-pc-win32"
-
#    elif defined(_M_ARM_NT) || defined(__arm__) /* ARMv7-Thumb2 */
-
#    define CURL_OS "thumbv7a-pc-win32"
-
#    elif defined(_M_ARM64) || defined(__aarch64__) /* ARM64 (Windows 10) */
-
#    define CURL_OS "aarch64-pc-win32"
-
#    else
-
#    define CURL_OS "unknown-pc-win32"
-
#    endif
-
#  endif /* UNDER_CE */
-
#endif /* !CURL_OS */
-

-
/* ---------------------------------------------------------------- */
-
/*                            Windows CE                            */
-
/* ---------------------------------------------------------------- */
-

-
#ifdef UNDER_CE
-

-
#ifndef UNICODE
-
#define UNICODE
+
#if defined(_M_IX86) || defined(__i386__) /* x86 (MSVC or gcc) */
+
#define CURL_OS "i386-pc-win32"
+
#elif defined(_M_X64) || defined(__x86_64__) /* x86_64 (MSVC >=2005 or gcc) */
+
#define CURL_OS "x86_64-pc-win32"
+
#elif defined(_M_IA64) || defined(__ia64__) /* Itanium */
+
#define CURL_OS "ia64-pc-win32"
+
#elif defined(_M_ARM_NT) || defined(__arm__) /* ARMv7-Thumb2 (Windows RT) */
+
#define CURL_OS "thumbv7a-pc-win32"
+
#elif defined(_M_ARM64) || defined(__aarch64__) /* ARM64 (Windows 10) */
+
#define CURL_OS "aarch64-pc-win32"
+
#else
+
#define CURL_OS "unknown-pc-win32"
#endif
-

-
#ifndef _UNICODE
-
#define _UNICODE
#endif

-
#define CURL_DISABLE_FILE 1
-
#define CURL_DISABLE_TELNET 1
-
#define CURL_DISABLE_LDAP 1
-

-
#define ENOSPC 1
-
#define ENOMEM 2
-
#define EAGAIN 3
-

-
extern int stat(const char *path, struct stat *buffer);
+
/* Name of package */
+
#define PACKAGE "curl"

-
#endif /* UNDER_CE */
+
/* If you want to build curl with the built-in manual */
+
#define USE_MANUAL 1

#endif /* HEADER_CURL_CONFIG_WIN32_H */
added external/curl/lib/config-win32ce.h
@@ -0,0 +1,303 @@
+
#ifndef HEADER_CURL_CONFIG_WIN32CE_H
+
#define HEADER_CURL_CONFIG_WIN32CE_H
+
/***************************************************************************
+
 *                                  _   _ ____  _
+
 *  Project                     ___| | | |  _ \| |
+
 *                             / __| | | | |_) | |
+
 *                            | (__| |_| |  _ <| |___
+
 *                             \___|\___/|_| \_\_____|
+
 *
+
 * Copyright (C) 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.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.
+
 *
+
 * SPDX-License-Identifier: curl
+
 *
+
 ***************************************************************************/
+

+
/* ================================================================ */
+
/*  lib/config-win32ce.h - Hand crafted config file for Windows CE  */
+
/* ================================================================ */
+

+
/* ---------------------------------------------------------------- */
+
/*                          HEADER FILES                            */
+
/* ---------------------------------------------------------------- */
+

+
/* Define if you have the <arpa/inet.h> header file.  */
+
/* #define HAVE_ARPA_INET_H 1 */
+

+
/* Define if you have the <fcntl.h> header file.  */
+
#define HAVE_FCNTL_H 1
+

+
/* Define if you have the <io.h> header file.  */
+
#define HAVE_IO_H 1
+

+
/* Define if you need the malloc.h header file even with stdlib.h  */
+
#define NEED_MALLOC_H 1
+

+
/* Define if you have the <netdb.h> header file.  */
+
/* #define HAVE_NETDB_H 1 */
+

+
/* Define if you have the <netinet/in.h> header file.  */
+
/* #define HAVE_NETINET_IN_H 1 */
+

+
/* Define if you have the <sys/param.h> header file.  */
+
/* #define HAVE_SYS_PARAM_H 1 */
+

+
/* Define if you have the <sys/select.h> header file.  */
+
/* #define HAVE_SYS_SELECT_H 1 */
+

+
/* Define if you have the <sys/socket.h> header file.  */
+
/* #define HAVE_SYS_SOCKET_H 1 */
+

+
/* Define if you have the <sys/sockio.h> header file.  */
+
/* #define HAVE_SYS_SOCKIO_H 1 */
+

+
/* Define if you have the <sys/stat.h> header file.  */
+
#define HAVE_SYS_STAT_H 1
+

+
/* Define if you have the <sys/time.h> header file */
+
/* #define HAVE_SYS_TIME_H 1 */
+

+
/* Define if you have the <sys/types.h> header file.  */
+
/* #define HAVE_SYS_TYPES_H 1 */
+

+
/* Define if you have the <sys/utime.h> header file */
+
#define HAVE_SYS_UTIME_H 1
+

+
/* Define if you have the <termio.h> header file.  */
+
/* #define HAVE_TERMIO_H 1 */
+

+
/* Define if you have the <termios.h> header file.  */
+
/* #define HAVE_TERMIOS_H 1 */
+

+
/* Define if you have the <unistd.h> header file.  */
+
#if defined(__MINGW32__)
+
#define HAVE_UNISTD_H 1
+
#endif
+

+
/* ---------------------------------------------------------------- */
+
/*                        OTHER HEADER INFO                         */
+
/* ---------------------------------------------------------------- */
+

+
/* Define if you have the ANSI C header files.  */
+
#define STDC_HEADERS 1
+

+
/* ---------------------------------------------------------------- */
+
/*                             FUNCTIONS                            */
+
/* ---------------------------------------------------------------- */
+

+
/* Define if you have the closesocket function.  */
+
#define HAVE_CLOSESOCKET 1
+

+
/* Define if you have the gethostname function.  */
+
#define HAVE_GETHOSTNAME 1
+

+
/* Define if you have the gettimeofday function.  */
+
/*  #define HAVE_GETTIMEOFDAY 1 */
+

+
/* Define if you have the ioctlsocket function. */
+
#define HAVE_IOCTLSOCKET 1
+

+
/* Define if you have a working ioctlsocket FIONBIO function. */
+
#define HAVE_IOCTLSOCKET_FIONBIO 1
+

+
/* Define if you have the select function.  */
+
#define HAVE_SELECT 1
+

+
/* Define if you have the socket function.  */
+
#define HAVE_SOCKET 1
+

+
/* Define if you have the strcasecmp function.  */
+
/* #define HAVE_STRCASECMP 1 */
+

+
/* Define if you have the strdup function.  */
+
/* #define HAVE_STRDUP 1 */
+

+
/* Define if you have the stricmp function. */
+
/* #define HAVE_STRICMP 1 */
+

+
/* Define if you have the strtoll function.  */
+
#if defined(__MINGW32__)
+
#define HAVE_STRTOLL 1
+
#endif
+

+
/* Define if you have the utime function */
+
#define HAVE_UTIME 1
+

+
/* Define if you have the recv function. */
+
#define HAVE_RECV 1
+

+
/* Define to the type of arg 1 for recv. */
+
#define RECV_TYPE_ARG1 SOCKET
+

+
/* Define to the type of arg 2 for recv. */
+
#define RECV_TYPE_ARG2 char *
+

+
/* Define to the type of arg 3 for recv. */
+
#define RECV_TYPE_ARG3 int
+

+
/* Define to the type of arg 4 for recv. */
+
#define RECV_TYPE_ARG4 int
+

+
/* Define to the function return type for recv. */
+
#define RECV_TYPE_RETV int
+

+
/* Define if you have the send function. */
+
#define HAVE_SEND 1
+

+
/* Define to the type of arg 1 for send. */
+
#define SEND_TYPE_ARG1 SOCKET
+

+
/* Define to the type qualifier of arg 2 for send. */
+
#define SEND_QUAL_ARG2 const
+

+
/* Define to the type of arg 2 for send. */
+
#define SEND_TYPE_ARG2 char *
+

+
/* Define to the type of arg 3 for send. */
+
#define SEND_TYPE_ARG3 int
+

+
/* Define to the type of arg 4 for send. */
+
#define SEND_TYPE_ARG4 int
+

+
/* Define to the function return type for send. */
+
#define SEND_TYPE_RETV int
+

+
/* ---------------------------------------------------------------- */
+
/*                       TYPEDEF REPLACEMENTS                       */
+
/* ---------------------------------------------------------------- */
+

+
/* Define this if in_addr_t is not an available 'typedefed' type */
+
#define in_addr_t unsigned long
+

+
/* Define ssize_t if it is not an available 'typedefed' type */
+
#if defined(_WIN64)
+
#define ssize_t __int64
+
#else
+
#define ssize_t int
+
#endif
+

+
/* ---------------------------------------------------------------- */
+
/*                            TYPE SIZES                            */
+
/* ---------------------------------------------------------------- */
+

+
/* The size of `int', as computed by sizeof. */
+
#define SIZEOF_INT 4
+

+
/* The size of `long long', as computed by sizeof. */
+
/* #define SIZEOF_LONG_LONG 8 */
+

+
/* Define to the size of `long', as computed by sizeof. */
+
#define SIZEOF_LONG 4
+

+
/* The size of `size_t', as computed by sizeof. */
+
#if defined(_WIN64)
+
#  define SIZEOF_SIZE_T 8
+
#else
+
#  define SIZEOF_SIZE_T 4
+
#endif
+

+
/* ---------------------------------------------------------------- */
+
/*                          STRUCT RELATED                          */
+
/* ---------------------------------------------------------------- */
+

+
/* Define this if you have struct sockaddr_storage */
+
/* #define HAVE_STRUCT_SOCKADDR_STORAGE 1 */
+

+
/* Define this if you have struct timeval */
+
#define HAVE_STRUCT_TIMEVAL 1
+

+
/* Define this if struct sockaddr_in6 has the sin6_scope_id member */
+
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+

+
/* ---------------------------------------------------------------- */
+
/*                        COMPILER SPECIFIC                         */
+
/* ---------------------------------------------------------------- */
+

+
/* Undef keyword 'const' if it does not work.  */
+
/* #undef const */
+

+
/* Define to avoid VS2005 complaining about portable C functions */
+
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
+
#define _CRT_SECURE_NO_DEPRECATE 1
+
#define _CRT_NONSTDC_NO_DEPRECATE 1
+
#endif
+

+
/* VS2005 and later default size for time_t is 64-bit, unless */
+
/* _USE_32BIT_TIME_T has been defined to get a 32-bit time_t. */
+
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
+
#  ifndef _USE_32BIT_TIME_T
+
#    define SIZEOF_TIME_T 8
+
#  else
+
#    define SIZEOF_TIME_T 4
+
#  endif
+
#endif
+

+
/* ---------------------------------------------------------------- */
+
/*                        LARGE FILE SUPPORT                        */
+
/* ---------------------------------------------------------------- */
+

+
#if defined(_MSC_VER) && !defined(_WIN32_WCE)
+
#  if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
+
#    define USE_WIN32_LARGE_FILES
+
#  else
+
#    define USE_WIN32_SMALL_FILES
+
#  endif
+
#endif
+

+
#if !defined(USE_WIN32_LARGE_FILES) && !defined(USE_WIN32_SMALL_FILES)
+
#  define USE_WIN32_SMALL_FILES
+
#endif
+

+
/* ---------------------------------------------------------------- */
+
/*                           LDAP SUPPORT                           */
+
/* ---------------------------------------------------------------- */
+

+
#define USE_WIN32_LDAP 1
+
#undef HAVE_LDAP_URL_PARSE
+

+
/* ---------------------------------------------------------------- */
+
/*                       ADDITIONAL DEFINITIONS                     */
+
/* ---------------------------------------------------------------- */
+

+
/* Define cpu-machine-OS */
+
#ifndef CURL_OS
+
#define CURL_OS "i386-pc-win32ce"
+
#endif
+

+
/* Name of package */
+
#define PACKAGE "curl"
+

+
/* ---------------------------------------------------------------- */
+
/*                            Windows CE                            */
+
/* ---------------------------------------------------------------- */
+

+
#ifndef UNICODE
+
#  define UNICODE
+
#endif
+

+
#ifndef _UNICODE
+
#  define _UNICODE
+
#endif
+

+
#define CURL_DISABLE_FILE 1
+
#define CURL_DISABLE_TELNET 1
+
#define CURL_DISABLE_LDAP 1
+

+
#define ENOSPC 1
+
#define ENOMEM 2
+
#define EAGAIN 3
+

+
extern int stat(const char *path, struct stat *buffer);
+

+
#endif /* HEADER_CURL_CONFIG_WIN32CE_H */
modified external/curl/lib/conncache.c
@@ -100,8 +100,6 @@ static void cpool_shutdown_all(struct cpool *cpool,
                               struct Curl_easy *data, int timeout_ms);
static void cpool_close_and_destroy_all(struct cpool *cpool);
static struct connectdata *cpool_get_oldest_idle(struct cpool *cpool);
-
static size_t cpool_shutdown_dest_count(struct cpool *cpool,
-
                                        const char *destination);

static struct cpool_bundle *cpool_bundle_create(const char *dest,
                                                size_t dest_len)
@@ -287,7 +285,6 @@ int Curl_cpool_check_limits(struct Curl_easy *data,
  struct cpool_bundle *bundle;
  size_t dest_limit = 0;
  size_t total_limit = 0;
-
  size_t shutdowns;
  int result = CPOOL_LIMIT_OK;

  if(!cpool)
@@ -303,12 +300,8 @@ int Curl_cpool_check_limits(struct Curl_easy *data,

  CPOOL_LOCK(cpool);
  if(dest_limit) {
-
    size_t live;
-

    bundle = cpool_find_bundle(cpool, conn);
-
    live = bundle ? Curl_llist_count(&bundle->conns) : 0;
-
    shutdowns = cpool_shutdown_dest_count(cpool, conn->destination);
-
    while(!shutdowns && bundle && live >= dest_limit) {
+
    while(bundle && (Curl_llist_count(&bundle->conns) >= dest_limit)) {
      struct connectdata *oldest_idle = NULL;
      /* The bundle is full. Extract the oldest connection that may
       * be removed now, if there is one. */
@@ -324,18 +317,15 @@ int Curl_cpool_check_limits(struct Curl_easy *data,

      /* in case the bundle was destroyed in disconnect, look it up again */
      bundle = cpool_find_bundle(cpool, conn);
-
      live = bundle ? Curl_llist_count(&bundle->conns) : 0;
-
      shutdowns = cpool_shutdown_dest_count(cpool, conn->destination);
    }
-
    if((live + shutdowns) >= dest_limit) {
+
    if(bundle && (Curl_llist_count(&bundle->conns) >= dest_limit)) {
      result = CPOOL_LIMIT_DEST;
      goto out;
    }
  }

  if(total_limit) {
-
    shutdowns = Curl_llist_count(&cpool->shutdowns);
-
    while((cpool->num_conn + shutdowns) >= total_limit) {
+
    while(cpool->num_conn >= total_limit) {
      struct connectdata *oldest_idle = cpool_get_oldest_idle(cpool);
      if(!oldest_idle)
        break;
@@ -345,9 +335,8 @@ int Curl_cpool_check_limits(struct Curl_easy *data,
                   "limit of %zu",
                   oldest_idle->connection_id, cpool->num_conn, total_limit));
      Curl_cpool_disconnect(data, oldest_idle, FALSE);
-
      shutdowns = Curl_llist_count(&cpool->shutdowns);
    }
-
    if((cpool->num_conn + shutdowns) >= total_limit) {
+
    if(cpool->num_conn >= total_limit) {
      result = CPOOL_LIMIT_TOTAL;
      goto out;
    }
@@ -385,8 +374,7 @@ CURLcode Curl_cpool_add_conn(struct Curl_easy *data,
  cpool->num_conn++;
  DEBUGF(infof(data, "Added connection %" FMT_OFF_T ". "
               "The cache now contains %zu members",
-
               conn->connection_id,
-
               cpool->num_conn + Curl_llist_count(&cpool->shutdowns)));
+
               conn->connection_id, cpool->num_conn));
out:
  CPOOL_UNLOCK(cpool);

@@ -624,21 +612,6 @@ bool Curl_cpool_find(struct Curl_easy *data,
  return result;
}

-
/* How many connections to the given destination are in shutdown? */
-
static size_t cpool_shutdown_dest_count(struct cpool *cpool,
-
                                        const char *destination)
-
{
-
  size_t n = 0;
-
  struct Curl_llist_node *e = Curl_llist_head(&cpool->shutdowns);
-
  while(e) {
-
    struct connectdata *conn = Curl_node_elem(e);
-
    if(!strcmp(destination, conn->destination))
-
      ++n;
-
    e = Curl_node_next(e);
-
  }
-
  return n;
-
}
-

static void cpool_shutdown_discard_all(struct cpool *cpool)
{
  struct Curl_llist_node *e = Curl_llist_head(&cpool->shutdowns);
@@ -769,12 +742,12 @@ static void cpool_discard_conn(struct cpool *cpool,

  /* Add the connection to our shutdown list for non-blocking shutdown
   * during multi processing. */
-
  if(data->multi && data->multi->max_total_connections > 0 &&
-
     (data->multi->max_total_connections <=
-
      (long)(cpool->num_conn + Curl_llist_count(&cpool->shutdowns)))) {
+
  if(data->multi && data->multi->max_shutdown_connections > 0 &&
+
     (data->multi->max_shutdown_connections >=
+
      (long)Curl_llist_count(&cpool->shutdowns))) {
    DEBUGF(infof(data, "[CCACHE] discarding oldest shutdown connection "
-
                       "due to connection limit of %ld",
-
                       data->multi->max_total_connections));
+
                       "due to limit of %ld",
+
                       data->multi->max_shutdown_connections));
    cpool_shutdown_destroy_oldest(cpool);
  }

@@ -794,8 +767,8 @@ static void cpool_discard_conn(struct cpool *cpool,

  Curl_llist_append(&cpool->shutdowns, conn, &conn->cpool_node);
  DEBUGF(infof(data, "[CCACHE] added #%" FMT_OFF_T
-
               " to shutdowns, now %zu conns in shutdown",
-
               conn->connection_id, Curl_llist_count(&cpool->shutdowns)));
+
               " to shutdown list of length %zu", conn->connection_id,
+
               Curl_llist_count(&cpool->shutdowns)));
}

void Curl_cpool_disconnect(struct Curl_easy *data,
@@ -953,11 +926,10 @@ CURLcode Curl_cpool_add_pollfds(struct cpool *cpool,
  return result;
}

-
/* return information about the shutdown connections */
-
unsigned int Curl_cpool_add_waitfds(struct cpool *cpool,
-
                                    struct Curl_waitfds *cwfds)
+
CURLcode Curl_cpool_add_waitfds(struct cpool *cpool,
+
                                struct curl_waitfds *cwfds)
{
-
  unsigned int need = 0;
+
  CURLcode result = CURLE_OK;

  CPOOL_LOCK(cpool);
  if(Curl_llist_head(&cpool->shutdowns)) {
@@ -973,51 +945,14 @@ unsigned int Curl_cpool_add_waitfds(struct cpool *cpool,
      Curl_conn_adjust_pollset(cpool->idata, &ps);
      Curl_detach_connection(cpool->idata);

-
      need += Curl_waitfds_add_ps(cwfds, &ps);
-
    }
-
  }
-
  CPOOL_UNLOCK(cpool);
-
  return need;
-
}
-

-
/* return fd_set info about the shutdown connections */
-
void Curl_cpool_setfds(struct cpool *cpool,
-
                       fd_set *read_fd_set, fd_set *write_fd_set,
-
                       int *maxfd)
-
{
-
  CPOOL_LOCK(cpool);
-
  if(Curl_llist_head(&cpool->shutdowns)) {
-
    struct Curl_llist_node *e;
-

-
    for(e = Curl_llist_head(&cpool->shutdowns); e;
-
        e = Curl_node_next(e)) {
-
      struct easy_pollset ps;
-
      unsigned int i;
-
      struct connectdata *conn = Curl_node_elem(e);
-
      memset(&ps, 0, sizeof(ps));
-
      Curl_attach_connection(cpool->idata, conn);
-
      Curl_conn_adjust_pollset(cpool->idata, &ps);
-
      Curl_detach_connection(cpool->idata);
-

-
      for(i = 0; i < ps.num; i++) {
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
-
        if(ps.actions[i] & CURL_POLL_IN)
-
          FD_SET(ps.sockets[i], read_fd_set);
-
        if(ps.actions[i] & CURL_POLL_OUT)
-
          FD_SET(ps.sockets[i], write_fd_set);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
-
        if((ps.actions[i] & (CURL_POLL_OUT | CURL_POLL_IN)) &&
-
           ((int)ps.sockets[i] > *maxfd))
-
          *maxfd = (int)ps.sockets[i];
-
      }
+
      result = Curl_waitfds_add_ps(cwfds, &ps);
+
      if(result)
+
        goto out;
    }
  }
+
out:
  CPOOL_UNLOCK(cpool);
+
  return result;
}

static void cpool_perform(struct cpool *cpool)
@@ -1117,11 +1052,6 @@ static void cpool_close_and_destroy(struct cpool *cpool,
  Curl_detach_connection(data);

  Curl_conn_free(data, conn);
-

-
  if(cpool && cpool->multi) {
-
    DEBUGF(infof(data, "[CCACHE] trigger multi connchanged"));
-
    Curl_multi_connchanged(cpool->multi);
-
  }
}


modified external/curl/lib/conncache.h
@@ -31,7 +31,7 @@
struct connectdata;
struct Curl_easy;
struct curl_pollfds;
-
struct Curl_waitfds;
+
struct curl_waitfds;
struct Curl_multi;
struct Curl_share;

@@ -113,6 +113,8 @@ typedef bool Curl_cpool_done_match_cb(bool result, void *userdata);
 * @param dest_len    destination length, including terminating NUL
 * @param conn_cb     must be present, called for each connection in the
 *                    bundle until it returns TRUE
+
 * @param result_cb   if not NULL, is called at the end with the result
+
 *                    of the `conn_cb` or FALSE if never called.
 * @return combined result of last conn_db and result_cb or FALSE if no
                      connections were present.
 */
@@ -183,12 +185,8 @@ void Curl_cpool_do_locked(struct Curl_easy *data,
 */
CURLcode Curl_cpool_add_pollfds(struct cpool *connc,
                                struct curl_pollfds *cpfds);
-
unsigned int Curl_cpool_add_waitfds(struct cpool *connc,
-
                                    struct Curl_waitfds *cwfds);
-

-
void Curl_cpool_setfds(struct cpool *cpool,
-
                       fd_set *read_fd_set, fd_set *write_fd_set,
-
                       int *maxfd);
+
CURLcode Curl_cpool_add_waitfds(struct cpool *connc,
+
                                struct curl_waitfds *cwfds);

/**
 * Perform maintenance on connections in the pool. Specifically,
modified external/curl/lib/connect.c
@@ -78,7 +78,6 @@
#include "vquic/vquic.h" /* for quic cfilters */
#include "http_proxy.h"
#include "socks.h"
-
#include "strcase.h"

/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -89,27 +88,6 @@
#define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0]))
#endif

-
#if !defined(CURL_DISABLE_ALTSVC) || defined(USE_HTTPSRR)
-

-
enum alpnid Curl_alpn2alpnid(char *name, size_t len)
-
{
-
  if(len == 2) {
-
    if(strncasecompare(name, "h1", 2))
-
      return ALPN_h1;
-
    if(strncasecompare(name, "h2", 2))
-
      return ALPN_h2;
-
    if(strncasecompare(name, "h3", 2))
-
      return ALPN_h3;
-
  }
-
  else if(len == 8) {
-
    if(strncasecompare(name, "http/1.1", 8))
-
      return ALPN_h1;
-
  }
-
  return ALPN_none; /* unknown, probably rubbish input */
-
}
-

-
#endif
-

/*
 * Curl_timeleft() returns the amount of milliseconds left allowed for the
 * transfer/connection. If the value is 0, there is no timeout (ie there is
@@ -1507,7 +1485,7 @@ CURLcode Curl_conn_setup(struct Curl_easy *data,
  DEBUGASSERT(data);
  DEBUGASSERT(conn->handler);

-
#if !defined(CURL_DISABLE_HTTP)
+
#if !defined(CURL_DISABLE_HTTP) && !defined(USE_HYPER)
  if(!conn->cfilter[sockindex] &&
     conn->handler->protocol == CURLPROTO_HTTPS) {
    DEBUGASSERT(ssl_mode != CURL_CF_SSL_DISABLE);
@@ -1515,7 +1493,7 @@ CURLcode Curl_conn_setup(struct Curl_easy *data,
    if(result)
      goto out;
  }
-
#endif /* !defined(CURL_DISABLE_HTTP) */
+
#endif /* !defined(CURL_DISABLE_HTTP) && !defined(USE_HYPER) */

  /* Still no cfilter set, apply default. */
  if(!conn->cfilter[sockindex]) {
modified external/curl/lib/connect.h
@@ -32,8 +32,6 @@
struct Curl_dns_entry;
struct ip_quadruple;

-
enum alpnid Curl_alpn2alpnid(char *name, size_t len);
-

/* generic function that returns how much time there is left to run, according
   to the timeouts set */
timediff_t Curl_timeleft(struct Curl_easy *data,
modified external/curl/lib/content_encoding.c
@@ -65,15 +65,34 @@

/* allow no more than 5 "chained" compression steps */
#define MAX_ENCODE_STACK 5
-
#define DECOMPRESS_BUFFER_SIZE 16384 /* buffer size for decompressed data */
+

+
#define DSIZ CURL_MAX_WRITE_SIZE /* buffer size for decompressed data */
+


#ifdef HAVE_LIBZ

+
/* Comment this out if zlib is always going to be at least ver. 1.2.0.4
+
   (doing so will reduce code size slightly). */
+
#define OLD_ZLIB_SUPPORT 1
+

+
#define GZIP_MAGIC_0 0x1f
+
#define GZIP_MAGIC_1 0x8b
+

+
/* gzip flag byte */
+
#define ASCII_FLAG   0x01 /* bit 0 set: file probably ASCII text */
+
#define HEAD_CRC     0x02 /* bit 1 set: header CRC present */
+
#define EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
+
#define ORIG_NAME    0x08 /* bit 3 set: original filename present */
+
#define COMMENT      0x10 /* bit 4 set: file comment present */
+
#define RESERVED     0xE0 /* bits 5..7: reserved */
+

typedef enum {
  ZLIB_UNINIT,               /* uninitialized */
  ZLIB_INIT,                 /* initialized */
  ZLIB_INFLATING,            /* inflating started. */
  ZLIB_EXTERNAL_TRAILER,     /* reading external trailer */
+
  ZLIB_GZIP_HEADER,          /* reading gzip header */
+
  ZLIB_GZIP_INFLATING,       /* inflating gzip stream */
  ZLIB_INIT_GZIP             /* initialized in transparent gzip mode */
} zlibInitState;

@@ -81,7 +100,6 @@ typedef enum {
struct zlib_writer {
  struct Curl_cwriter super;
  zlibInitState zlib_init;   /* zlib init state */
-
  char buffer[DECOMPRESS_BUFFER_SIZE]; /* Put the decompressed data here. */
  uInt trailerlen;           /* Remaining trailer byte count. */
  z_stream z;                /* State structure for zlib. */
};
@@ -119,6 +137,9 @@ static CURLcode
exit_zlib(struct Curl_easy *data,
          z_stream *z, zlibInitState *zlib_init, CURLcode result)
{
+
  if(*zlib_init == ZLIB_GZIP_HEADER)
+
    Curl_safefree(z->next_in);
+

  if(*zlib_init != ZLIB_UNINIT) {
    if(inflateEnd(z) != Z_OK && result == CURLE_OK)
      result = process_zlib_error(data, z);
@@ -162,13 +183,21 @@ static CURLcode inflate_stream(struct Curl_easy *data,
  Bytef *orig_in = z->next_in;
  bool done = FALSE;
  CURLcode result = CURLE_OK;   /* Curl_client_write status */
+
  char *decomp;                 /* Put the decompressed data here. */

  /* Check state. */
  if(zp->zlib_init != ZLIB_INIT &&
     zp->zlib_init != ZLIB_INFLATING &&
-
     zp->zlib_init != ZLIB_INIT_GZIP)
+
     zp->zlib_init != ZLIB_INIT_GZIP &&
+
     zp->zlib_init != ZLIB_GZIP_INFLATING)
    return exit_zlib(data, z, &zp->zlib_init, CURLE_WRITE_ERROR);

+
  /* Dynamically allocate a buffer for decompression because it is uncommonly
+
     large to hold on the stack */
+
  decomp = malloc(DSIZ);
+
  if(!decomp)
+
    return exit_zlib(data, z, &zp->zlib_init, CURLE_OUT_OF_MEMORY);
+

  /* because the buffer size is fixed, iteratively decompress and transfer to
     the client via next_write function. */
  while(!done) {
@@ -176,8 +205,8 @@ static CURLcode inflate_stream(struct Curl_easy *data,
    done = TRUE;

    /* (re)set buffer for decompressed output for every iteration */
-
    z->next_out = (Bytef *) zp->buffer;
-
    z->avail_out = DECOMPRESS_BUFFER_SIZE;
+
    z->next_out = (Bytef *) decomp;
+
    z->avail_out = DSIZ;

#ifdef Z_BLOCK
    /* Z_BLOCK is only available in zlib ver. >= 1.2.0.5 */
@@ -188,11 +217,11 @@ static CURLcode inflate_stream(struct Curl_easy *data,
#endif

    /* Flush output data if some. */
-
    if(z->avail_out != DECOMPRESS_BUFFER_SIZE) {
+
    if(z->avail_out != DSIZ) {
      if(status == Z_OK || status == Z_STREAM_END) {
        zp->zlib_init = started;      /* Data started. */
-
        result = Curl_cwriter_write(data, writer->next, type, zp->buffer,
-
                                    DECOMPRESS_BUFFER_SIZE - z->avail_out);
+
        result = Curl_cwriter_write(data, writer->next, type, decomp,
+
                                     DSIZ - z->avail_out);
        if(result) {
          exit_zlib(data, z, &zp->zlib_init, result);
          break;
@@ -235,6 +264,7 @@ static CURLcode inflate_stream(struct Curl_easy *data,
      break;
    }
  }
+
  free(decomp);

  /* We are about to leave this call so the `nread' data bytes will not be seen
     again. If we are in a state that would wrongly allow restart in raw mode
@@ -248,7 +278,7 @@ static CURLcode inflate_stream(struct Curl_easy *data,

/* Deflate handler. */
static CURLcode deflate_do_init(struct Curl_easy *data,
-
                                struct Curl_cwriter *writer)
+
                                    struct Curl_cwriter *writer)
{
  struct zlib_writer *zp = (struct zlib_writer *) writer;
  z_stream *z = &zp->z;     /* zlib state structure */
@@ -264,8 +294,8 @@ static CURLcode deflate_do_init(struct Curl_easy *data,
}

static CURLcode deflate_do_write(struct Curl_easy *data,
-
                                 struct Curl_cwriter *writer, int type,
-
                                 const char *buf, size_t nbytes)
+
                                       struct Curl_cwriter *writer, int type,
+
                                       const char *buf, size_t nbytes)
{
  struct zlib_writer *zp = (struct zlib_writer *) writer;
  z_stream *z = &zp->z;     /* zlib state structure */
@@ -285,7 +315,7 @@ static CURLcode deflate_do_write(struct Curl_easy *data,
}

static void deflate_do_close(struct Curl_easy *data,
-
                             struct Curl_cwriter *writer)
+
                                 struct Curl_cwriter *writer)
{
  struct zlib_writer *zp = (struct zlib_writer *) writer;
  z_stream *z = &zp->z;     /* zlib state structure */
@@ -305,34 +335,124 @@ static const struct Curl_cwtype deflate_encoding = {

/* Gzip handler. */
static CURLcode gzip_do_init(struct Curl_easy *data,
-
                             struct Curl_cwriter *writer)
+
                                 struct Curl_cwriter *writer)
{
  struct zlib_writer *zp = (struct zlib_writer *) writer;
  z_stream *z = &zp->z;     /* zlib state structure */
-
  const char *v = zlibVersion();

  /* Initialize zlib */
  z->zalloc = (alloc_func) zalloc_cb;
  z->zfree = (free_func) zfree_cb;

-
  if(strcmp(v, "1.2.0.4") >= 0) {
-
    /* zlib version >= 1.2.0.4 supports transparent gzip decompressing */
+
  if(strcmp(zlibVersion(), "1.2.0.4") >= 0) {
+
    /* zlib ver. >= 1.2.0.4 supports transparent gzip decompressing */
    if(inflateInit2(z, MAX_WBITS + 32) != Z_OK) {
      return process_zlib_error(data, z);
    }
    zp->zlib_init = ZLIB_INIT_GZIP; /* Transparent gzip decompress state */
  }
  else {
-
    failf(data, "too old zlib version: %s", v);
-
    return CURLE_FAILED_INIT;
+
    /* we must parse the gzip header and trailer ourselves */
+
    if(inflateInit2(z, -MAX_WBITS) != Z_OK) {
+
      return process_zlib_error(data, z);
+
    }
+
    zp->trailerlen = 8; /* A CRC-32 and a 32-bit input size (RFC 1952, 2.2) */
+
    zp->zlib_init = ZLIB_INIT; /* Initial call state */
  }

  return CURLE_OK;
}

+
#ifdef OLD_ZLIB_SUPPORT
+
/* Skip over the gzip header */
+
typedef enum {
+
  GZIP_OK,
+
  GZIP_BAD,
+
  GZIP_UNDERFLOW
+
} gzip_status;
+

+
static gzip_status check_gzip_header(unsigned char const *data, ssize_t len,
+
                                     ssize_t *headerlen)
+
{
+
  int method, flags;
+
  const ssize_t totallen = len;
+

+
  /* The shortest header is 10 bytes */
+
  if(len < 10)
+
    return GZIP_UNDERFLOW;
+

+
  if((data[0] != GZIP_MAGIC_0) || (data[1] != GZIP_MAGIC_1))
+
    return GZIP_BAD;
+

+
  method = data[2];
+
  flags = data[3];
+

+
  if(method != Z_DEFLATED || (flags & RESERVED) != 0) {
+
    /* cannot handle this compression method or unknown flag */
+
    return GZIP_BAD;
+
  }
+

+
  /* Skip over time, xflags, OS code and all previous bytes */
+
  len -= 10;
+
  data += 10;
+

+
  if(flags & EXTRA_FIELD) {
+
    ssize_t extra_len;
+

+
    if(len < 2)
+
      return GZIP_UNDERFLOW;
+

+
    extra_len = (data[1] << 8) | data[0];
+

+
    if(len < (extra_len + 2))
+
      return GZIP_UNDERFLOW;
+

+
    len -= (extra_len + 2);
+
    data += (extra_len + 2);
+
  }
+

+
  if(flags & ORIG_NAME) {
+
    /* Skip over NUL-terminated filename */
+
    while(len && *data) {
+
      --len;
+
      ++data;
+
    }
+
    if(!len || *data)
+
      return GZIP_UNDERFLOW;
+

+
    /* Skip over the NUL */
+
    --len;
+
    ++data;
+
  }
+

+
  if(flags & COMMENT) {
+
    /* Skip over NUL-terminated comment */
+
    while(len && *data) {
+
      --len;
+
      ++data;
+
    }
+
    if(!len || *data)
+
      return GZIP_UNDERFLOW;
+

+
    /* Skip over the NUL */
+
    --len;
+
  }
+

+
  if(flags & HEAD_CRC) {
+
    if(len < 2)
+
      return GZIP_UNDERFLOW;
+

+
    len -= 2;
+
  }
+

+
  *headerlen = totallen - len;
+
  return GZIP_OK;
+
}
+
#endif
+

static CURLcode gzip_do_write(struct Curl_easy *data,
-
                              struct Curl_cwriter *writer, int type,
-
                              const char *buf, size_t nbytes)
+
                                    struct Curl_cwriter *writer, int type,
+
                                    const char *buf, size_t nbytes)
{
  struct zlib_writer *zp = (struct zlib_writer *) writer;
  z_stream *z = &zp->z;     /* zlib state structure */
@@ -348,8 +468,117 @@ static CURLcode gzip_do_write(struct Curl_easy *data,
    return inflate_stream(data, writer, type, ZLIB_INIT_GZIP);
  }

-
  /* We are running with an old version: return error. */
+
#ifndef OLD_ZLIB_SUPPORT
+
  /* Support for old zlib versions is compiled away and we are running with
+
     an old version, so return an error. */
  return exit_zlib(data, z, &zp->zlib_init, CURLE_WRITE_ERROR);
+

+
#else
+
  /* This next mess is to get around the potential case where there is not
+
   * enough data passed in to skip over the gzip header. If that happens, we
+
   * malloc a block and copy what we have then wait for the next call. If
+
   * there still is not enough (this is definitely a worst-case scenario), we
+
   * make the block bigger, copy the next part in and keep waiting.
+
   *
+
   * This is only required with zlib versions < 1.2.0.4 as newer versions
+
   * can handle the gzip header themselves.
+
   */
+

+
  switch(zp->zlib_init) {
+
  /* Skip over gzip header? */
+
  case ZLIB_INIT:
+
  {
+
    /* Initial call state */
+
    ssize_t hlen;
+

+
    switch(check_gzip_header((unsigned char *) buf, nbytes, &hlen)) {
+
    case GZIP_OK:
+
      z->next_in = (Bytef *) buf + hlen;
+
      z->avail_in = (uInt) (nbytes - hlen);
+
      zp->zlib_init = ZLIB_GZIP_INFLATING; /* Inflating stream state */
+
      break;
+

+
    case GZIP_UNDERFLOW:
+
      /* We need more data so we can find the end of the gzip header. it is
+
       * possible that the memory block we malloc here will never be freed if
+
       * the transfer abruptly aborts after this point. Since it is unlikely
+
       * that circumstances will be right for this code path to be followed in
+
       * the first place, and it is even more unlikely for a transfer to fail
+
       * immediately afterwards, it should seldom be a problem.
+
       */
+
      z->avail_in = (uInt) nbytes;
+
      z->next_in = malloc(z->avail_in);
+
      if(!z->next_in) {
+
        return exit_zlib(data, z, &zp->zlib_init, CURLE_OUT_OF_MEMORY);
+
      }
+
      memcpy(z->next_in, buf, z->avail_in);
+
      zp->zlib_init = ZLIB_GZIP_HEADER;  /* Need more gzip header data state */
+
      /* We do not have any data to inflate yet */
+
      return CURLE_OK;
+

+
    case GZIP_BAD:
+
    default:
+
      return exit_zlib(data, z, &zp->zlib_init, process_zlib_error(data, z));
+
    }
+

+
  }
+
  break;
+

+
  case ZLIB_GZIP_HEADER:
+
  {
+
    /* Need more gzip header data state */
+
    ssize_t hlen;
+
    z->avail_in += (uInt) nbytes;
+
    z->next_in = Curl_saferealloc(z->next_in, z->avail_in);
+
    if(!z->next_in) {
+
      return exit_zlib(data, z, &zp->zlib_init, CURLE_OUT_OF_MEMORY);
+
    }
+
    /* Append the new block of data to the previous one */
+
    memcpy(z->next_in + z->avail_in - nbytes, buf, nbytes);
+

+
    switch(check_gzip_header(z->next_in, (ssize_t)z->avail_in, &hlen)) {
+
    case GZIP_OK:
+
      /* This is the zlib stream data */
+
      free(z->next_in);
+
      /* Do not point into the malloced block since we just freed it */
+
      z->next_in = (Bytef *) buf + hlen + nbytes - z->avail_in;
+
      z->avail_in = z->avail_in - (uInt)hlen;
+
      zp->zlib_init = ZLIB_GZIP_INFLATING;   /* Inflating stream state */
+
      break;
+

+
    case GZIP_UNDERFLOW:
+
      /* We still do not have any data to inflate! */
+
      return CURLE_OK;
+

+
    case GZIP_BAD:
+
    default:
+
      return exit_zlib(data, z, &zp->zlib_init, process_zlib_error(data, z));
+
    }
+

+
  }
+
  break;
+

+
  case ZLIB_EXTERNAL_TRAILER:
+
    z->next_in = (Bytef *) buf;
+
    z->avail_in = (uInt) nbytes;
+
    return process_trailer(data, zp);
+

+
  case ZLIB_GZIP_INFLATING:
+
  default:
+
    /* Inflating stream state */
+
    z->next_in = (Bytef *) buf;
+
    z->avail_in = (uInt) nbytes;
+
    break;
+
  }
+

+
  if(z->avail_in == 0) {
+
    /* We do not have any data to inflate; wait until next time */
+
    return CURLE_OK;
+
  }
+

+
  /* We have parsed the header, now uncompress the data */
+
  return inflate_stream(data, writer, type, ZLIB_GZIP_INFLATING);
+
#endif
}

static void gzip_do_close(struct Curl_easy *data,
@@ -372,11 +601,11 @@ static const struct Curl_cwtype gzip_encoding = {

#endif /* HAVE_LIBZ */

+

#ifdef HAVE_BROTLI
/* Brotli writer. */
struct brotli_writer {
  struct Curl_cwriter super;
-
  char buffer[DECOMPRESS_BUFFER_SIZE];
  BrotliDecoderState *br;    /* State structure for brotli. */
};

@@ -419,7 +648,7 @@ static CURLcode brotli_map_error(BrotliDecoderErrorCode be)
}

static CURLcode brotli_do_init(struct Curl_easy *data,
-
                               struct Curl_cwriter *writer)
+
                                   struct Curl_cwriter *writer)
{
  struct brotli_writer *bp = (struct brotli_writer *) writer;
  (void) data;
@@ -429,11 +658,12 @@ static CURLcode brotli_do_init(struct Curl_easy *data,
}

static CURLcode brotli_do_write(struct Curl_easy *data,
-
                                struct Curl_cwriter *writer, int type,
-
                                const char *buf, size_t nbytes)
+
                                      struct Curl_cwriter *writer, int type,
+
                                      const char *buf, size_t nbytes)
{
  struct brotli_writer *bp = (struct brotli_writer *) writer;
  const uint8_t *src = (const uint8_t *) buf;
+
  char *decomp;
  uint8_t *dst;
  size_t dstleft;
  CURLcode result = CURLE_OK;
@@ -445,14 +675,18 @@ static CURLcode brotli_do_write(struct Curl_easy *data,
  if(!bp->br)
    return CURLE_WRITE_ERROR;  /* Stream already ended. */

+
  decomp = malloc(DSIZ);
+
  if(!decomp)
+
    return CURLE_OUT_OF_MEMORY;
+

  while((nbytes || r == BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT) &&
        result == CURLE_OK) {
-
    dst = (uint8_t *) bp->buffer;
-
    dstleft = DECOMPRESS_BUFFER_SIZE;
+
    dst = (uint8_t *) decomp;
+
    dstleft = DSIZ;
    r = BrotliDecoderDecompressStream(bp->br,
                                      &nbytes, &src, &dstleft, &dst, NULL);
    result = Curl_cwriter_write(data, writer->next, type,
-
                                bp->buffer, DECOMPRESS_BUFFER_SIZE - dstleft);
+
                                 decomp, DSIZ - dstleft);
    if(result)
      break;
    switch(r) {
@@ -470,6 +704,7 @@ static CURLcode brotli_do_write(struct Curl_easy *data,
      break;
    }
  }
+
  free(decomp);
  return result;
}

@@ -477,6 +712,7 @@ static void brotli_do_close(struct Curl_easy *data,
                                struct Curl_cwriter *writer)
{
  struct brotli_writer *bp = (struct brotli_writer *) writer;
+

  (void) data;

  if(bp->br) {
@@ -495,51 +731,30 @@ static const struct Curl_cwtype brotli_encoding = {
};
#endif

+

#ifdef HAVE_ZSTD
/* Zstd writer. */
struct zstd_writer {
  struct Curl_cwriter super;
  ZSTD_DStream *zds;    /* State structure for zstd. */
-
  char buffer[DECOMPRESS_BUFFER_SIZE];
+
  void *decomp;
};

-
#ifdef ZSTD_STATIC_LINKING_ONLY
-
static void *Curl_zstd_alloc(void *opaque, size_t size)
-
{
-
  (void)opaque;
-
  return Curl_cmalloc(size);
-
}
-

-
static void Curl_zstd_free(void *opaque, void *address)
-
{
-
  (void)opaque;
-
  Curl_cfree(address);
-
}
-
#endif
-

static CURLcode zstd_do_init(struct Curl_easy *data,
-
                             struct Curl_cwriter *writer)
+
                                 struct Curl_cwriter *writer)
{
  struct zstd_writer *zp = (struct zstd_writer *) writer;

  (void)data;

-
#ifdef ZSTD_STATIC_LINKING_ONLY
-
  zp->zds = ZSTD_createDStream_advanced((ZSTD_customMem) {
-
    .customAlloc = Curl_zstd_alloc,
-
    .customFree  = Curl_zstd_free,
-
    .opaque      = NULL
-
  });
-
#else
  zp->zds = ZSTD_createDStream();
-
#endif
-

+
  zp->decomp = NULL;
  return zp->zds ? CURLE_OK : CURLE_OUT_OF_MEMORY;
}

static CURLcode zstd_do_write(struct Curl_easy *data,
-
                              struct Curl_cwriter *writer, int type,
-
                              const char *buf, size_t nbytes)
+
                                    struct Curl_cwriter *writer, int type,
+
                                    const char *buf, size_t nbytes)
{
  CURLcode result = CURLE_OK;
  struct zstd_writer *zp = (struct zstd_writer *) writer;
@@ -550,14 +765,19 @@ static CURLcode zstd_do_write(struct Curl_easy *data,
  if(!(type & CLIENTWRITE_BODY) || !nbytes)
    return Curl_cwriter_write(data, writer->next, type, buf, nbytes);

+
  if(!zp->decomp) {
+
    zp->decomp = malloc(DSIZ);
+
    if(!zp->decomp)
+
      return CURLE_OUT_OF_MEMORY;
+
  }
  in.pos = 0;
  in.src = buf;
  in.size = nbytes;

  for(;;) {
    out.pos = 0;
-
    out.dst = zp->buffer;
-
    out.size = DECOMPRESS_BUFFER_SIZE;
+
    out.dst = zp->decomp;
+
    out.size = DSIZ;

    errorCode = ZSTD_decompressStream(zp->zds, &out, &in);
    if(ZSTD_isError(errorCode)) {
@@ -565,7 +785,7 @@ static CURLcode zstd_do_write(struct Curl_easy *data,
    }
    if(out.pos > 0) {
      result = Curl_cwriter_write(data, writer->next, type,
-
                                  zp->buffer, out.pos);
+
                                   zp->decomp, out.pos);
      if(result)
        break;
    }
@@ -580,8 +800,13 @@ static void zstd_do_close(struct Curl_easy *data,
                              struct Curl_cwriter *writer)
{
  struct zstd_writer *zp = (struct zstd_writer *) writer;
+

  (void)data;

+
  if(zp->decomp) {
+
    free(zp->decomp);
+
    zp->decomp = NULL;
+
  }
  if(zp->zds) {
    ZSTD_freeDStream(zp->zds);
    zp->zds = NULL;
@@ -598,6 +823,7 @@ static const struct Curl_cwtype zstd_encoding = {
};
#endif

+

/* Identity handler. */
static const struct Curl_cwtype identity_encoding = {
  "identity",
@@ -608,6 +834,7 @@ static const struct Curl_cwtype identity_encoding = {
  sizeof(struct Curl_cwriter)
};

+

/* supported general content decoders. */
static const struct Curl_cwtype * const general_unencoders[] = {
  &identity_encoding,
@@ -671,7 +898,7 @@ void Curl_all_content_encodings(char *buf, size_t blen)

/* Deferred error dummy writer. */
static CURLcode error_do_init(struct Curl_easy *data,
-
                              struct Curl_cwriter *writer)
+
                                  struct Curl_cwriter *writer)
{
  (void)data;
  (void)writer;
@@ -679,8 +906,8 @@ static CURLcode error_do_init(struct Curl_easy *data,
}

static CURLcode error_do_write(struct Curl_easy *data,
-
                               struct Curl_cwriter *writer, int type,
-
                               const char *buf, size_t nbytes)
+
                                     struct Curl_cwriter *writer, int type,
+
                                     const char *buf, size_t nbytes)
{
  (void) writer;
  (void) buf;
@@ -855,4 +1082,5 @@ void Curl_all_content_encodings(char *buf, size_t blen)
    strcpy(buf, CONTENT_ENCODING_DEFAULT);
}

+

#endif /* CURL_DISABLE_HTTP */
modified external/curl/lib/cookie.c
@@ -97,26 +97,6 @@ Example set of cookies:

static void strstore(char **str, const char *newstr, size_t len);

-
/* number of seconds in 400 days */
-
#define COOKIES_MAXAGE (400*24*3600)
-

-
/* Make sure cookies never expire further away in time than 400 days into the
-
   future. (from RFC6265bis draft-19)
-

-
   For the sake of easier testing, align the capped time to an even 60 second
-
   boundary.
-
*/
-
static void cap_expires(time_t now, struct Cookie *co)
-
{
-
  if((TIME_T_MAX - COOKIES_MAXAGE - 30) > now) {
-
    timediff_t cap = now + COOKIES_MAXAGE;
-
    if(co->expires > cap) {
-
      cap += 30;
-
      co->expires = (cap/60)*60;
-
    }
-
  }
-
}
-

static void freecookie(struct Cookie *co)
{
  free(co->domain);
@@ -458,7 +438,7 @@ static bool bad_domain(const char *domain, size_t len)
  fine. The prime reason for filtering out control bytes is that some HTTP
  servers return 400 for requests that contain such.
*/
-
static bool invalid_octets(const char *p)
+
static int invalid_octets(const char *p)
{
  /* Reject all bytes \x01 - \x1f (*except* \x09, TAB) + \x7f */
  static const char badoctets[] = {
@@ -469,7 +449,7 @@ static bool invalid_octets(const char *p)
  size_t len;
  /* scan for all the octets that are *not* in cookie-octet */
  len = strcspn(p, badoctets);
-
  return p[len] != '\0';
+
  return (p[len] != '\0');
}

#define CERR_OK            0
@@ -489,13 +469,6 @@ static bool invalid_octets(const char *p)
#define CERR_PSL           14 /* a public suffix */
#define CERR_LIVE_WINS     15

-
/* The maximum length we accept a date string for the 'expire' keyword. The
-
   standard date formats are within the 30 bytes range. This adds an extra
-
   margin just to make sure it realistically works with what is used out
-
   there.
-
*/
-
#define MAX_DATE_LENGTH 80
-

static int
parse_cookie_header(struct Curl_easy *data,
                    struct Cookie *co,
@@ -734,20 +707,16 @@ parse_cookie_header(struct Curl_easy *data,
            co->expires += now;
          break;
        }
-
        cap_expires(now, co);
      }
      else if((nlen == 7) && strncasecompare("expires", namep, 7)) {
-
        if(!co->expires && (vlen < MAX_DATE_LENGTH)) {
+
        if(!co->expires) {
          /*
           * Let max-age have priority.
           *
           * If the date cannot get parsed for whatever reason, the cookie
           * will be treated as a session cookie
           */
-
          char dbuf[MAX_DATE_LENGTH + 1];
-
          memcpy(dbuf, valuep, vlen);
-
          dbuf[vlen] = 0;
-
          co->expires = Curl_getdate_capped(dbuf);
+
          co->expires = Curl_getdate_capped(valuep);

          /*
           * Session cookies have expires set to 0 so if we get that back
@@ -758,7 +727,6 @@ parse_cookie_header(struct Curl_easy *data,
            co->expires = 1;
          else if(co->expires < 0)
            co->expires = 0;
-
          cap_expires(now, co);
        }
      }

@@ -837,9 +805,10 @@ parse_netscape(struct Cookie *co,
   * This line is NOT an HTTP header style line, we do offer support for
   * reading the odd netscape cookies-file format here
   */
-
  const char *ptr, *next;
+
  char *ptr;
+
  char *firstptr;
+
  char *tok_buf = NULL;
  int fields;
-
  size_t len;

  /*
   * In 2008, Internet Explorer introduced HTTP-only cookies to prevent XSS
@@ -856,22 +825,29 @@ parse_netscape(struct Cookie *co,
    /* do not even try the comments */
    return CERR_COMMENT;

+
  /* strip off the possible end-of-line characters */
+
  ptr = strchr(lineptr, '\r');
+
  if(ptr)
+
    *ptr = 0; /* clear it */
+
  ptr = strchr(lineptr, '\n');
+
  if(ptr)
+
    *ptr = 0; /* clear it */
+

+
  /* tokenize on TAB */
+
  firstptr = Curl_strtok_r((char *)lineptr, "\t", &tok_buf);
+

  /*
   * Now loop through the fields and init the struct we already have
   * allocated
   */
  fields = 0;
-
  for(next = lineptr; next; fields++) {
-
    ptr = next;
-
    len = strcspn(ptr, "\t\r\n");
-
    next = (ptr[len] == '\t' ? &ptr[len + 1] : NULL);
+
  for(ptr = firstptr; ptr;
+
      ptr = Curl_strtok_r(NULL, "\t", &tok_buf), fields++) {
    switch(fields) {
    case 0:
-
      if(ptr[0]=='.') { /* skip preceding dots */
+
      if(ptr[0]=='.') /* skip preceding dots */
        ptr++;
-
        len--;
-
      }
-
      co->domain = Curl_memdup0(ptr, len);
+
      co->domain = strdup(ptr);
      if(!co->domain)
        return CERR_OUT_OF_MEMORY;
      break;
@@ -881,13 +857,13 @@ parse_netscape(struct Cookie *co,
       * domain can access the variable. Set TRUE when the cookie says
       * .domain.com and to false when the domain is complete www.domain.com
       */
-
      co->tailmatch = !!strncasecompare(ptr, "TRUE", len);
+
      co->tailmatch = !!strcasecompare(ptr, "TRUE");
      break;
    case 2:
      /* The file format allows the path field to remain not filled in */
-
      if(strncmp("TRUE", ptr, len) && strncmp("FALSE", ptr, len)) {
+
      if(strcmp("TRUE", ptr) && strcmp("FALSE", ptr)) {
        /* only if the path does not look like a boolean option! */
-
        co->path = Curl_memdup0(ptr, len);
+
        co->path = strdup(ptr);
        if(!co->path)
          return CERR_OUT_OF_MEMORY;
        else {
@@ -908,7 +884,7 @@ parse_netscape(struct Cookie *co,
      FALLTHROUGH();
    case 3:
      co->secure = FALSE;
-
      if(strncasecompare(ptr, "TRUE", len)) {
+
      if(strcasecompare(ptr, "TRUE")) {
        if(secure || ci->running)
          co->secure = TRUE;
        else
@@ -916,19 +892,11 @@ parse_netscape(struct Cookie *co,
      }
      break;
    case 4:
-
      {
-
        char *endp;
-
        const char *p;
-
        /* make sure curlx_strtoofft won't read past the current field */
-
        for(p = ptr; p < &ptr[len] && ISDIGIT(*p); ++p)
-
          ;
-
        if(p == ptr || p != &ptr[len] ||
-
           curlx_strtoofft(ptr, &endp, 10, &co->expires) || endp != &ptr[len])
-
          return CERR_RANGE;
-
      }
+
      if(curlx_strtoofft(ptr, NULL, 10, &co->expires))
+
        return CERR_RANGE;
      break;
    case 5:
-
      co->name = Curl_memdup0(ptr, len);
+
      co->name = strdup(ptr);
      if(!co->name)
        return CERR_OUT_OF_MEMORY;
      else {
@@ -940,7 +908,7 @@ parse_netscape(struct Cookie *co,
      }
      break;
    case 6:
-
      co->value = Curl_memdup0(ptr, len);
+
      co->value = strdup(ptr);
      if(!co->value)
        return CERR_OUT_OF_MEMORY;
      break;
@@ -1335,14 +1303,14 @@ static int cookie_sort(const void *p1, const void *p2)
  l2 = c2->path ? strlen(c2->path) : 0;

  if(l1 != l2)
-
    return (l2 > l1) ? 1 : -1; /* avoid size_t <=> int conversions */
+
    return (l2 > l1) ? 1 : -1 ; /* avoid size_t <=> int conversions */

  /* 2 - compare cookie domain lengths */
  l1 = c1->domain ? strlen(c1->domain) : 0;
  l2 = c2->domain ? strlen(c2->domain) : 0;

  if(l1 != l2)
-
    return (l2 > l1) ? 1 : -1; /* avoid size_t <=> int conversions */
+
    return (l2 > l1) ? 1 : -1 ;  /* avoid size_t <=> int conversions */

  /* 3 - compare cookie name lengths */
  l1 = c1->name ? strlen(c1->name) : 0;
modified external/curl/lib/cookie.h
@@ -38,7 +38,7 @@ struct Cookie {
  char *spath;        /* sanitized cookie path */
  char *domain;       /* domain = <this> */
  curl_off_t expires; /* expires = <this> */
-
  unsigned int creationtime; /* time when the cookie was written */
+
  int creationtime;   /* time when the cookie was written */
  BIT(tailmatch);     /* tail-match the domain name */
  BIT(secure);        /* the 'secure' keyword was used */
  BIT(livecookie);    /* updated from a server, not a stored file */
@@ -60,10 +60,10 @@ struct CookieInfo {
  /* linked lists of cookies we know of */
  struct Curl_llist cookielist[COOKIE_HASH_SIZE];
  curl_off_t next_expiration; /* the next time at which expiration happens */
-
  unsigned int numcookies;  /* number of cookies in the "jar" */
-
  unsigned int lastct;      /* last creation-time used in the jar */
-
  BIT(running);    /* state info, for cookie adding information */
-
  BIT(newsession); /* new session, discard session cookies on load */
+
  int numcookies;  /* number of cookies in the "jar" */
+
  int lastct;      /* last creation-time used in the jar */
+
  bool running;    /* state info, for cookie adding information */
+
  bool newsession; /* new session, discard session cookies on load */
};

/* The maximum sizes we accept for cookies. RFC 6265 section 6.1 says
modified external/curl/lib/curl_addrinfo.c
@@ -318,7 +318,11 @@ Curl_he2ai(const struct hostent *he, int port)
      addr = (void *)ai->ai_addr; /* storage area for this info */

      memcpy(&addr->sin_addr, curr, sizeof(struct in_addr));
+
#ifdef __MINGW32__
+
      addr->sin_family = (short)(he->h_addrtype);
+
#else
      addr->sin_family = (CURL_SA_FAMILY_T)(he->h_addrtype);
+
#endif
      addr->sin_port = htons((unsigned short)port);
      break;

@@ -327,7 +331,11 @@ Curl_he2ai(const struct hostent *he, int port)
      addr6 = (void *)ai->ai_addr; /* storage area for this info */

      memcpy(&addr6->sin6_addr, curr, sizeof(struct in6_addr));
+
#ifdef __MINGW32__
+
      addr6->sin6_family = (short)(he->h_addrtype);
+
#else
      addr6->sin6_family = (CURL_SA_FAMILY_T)(he->h_addrtype);
+
#endif
      addr6->sin6_port = htons((unsigned short)port);
      break;
#endif
modified external/curl/lib/curl_config.h.cmake
@@ -565,6 +565,9 @@
/* Define to 1 if you have the <sys/filio.h> header file. */
#cmakedefine HAVE_SYS_FILIO_H 1

+
/* Define to 1 if you have the <sys/wait.h> header file. */
+
#cmakedefine HAVE_SYS_WAIT_H 1
+

/* Define to 1 if you have the <sys/ioctl.h> header file. */
#cmakedefine HAVE_SYS_IOCTL_H 1

@@ -622,8 +625,8 @@
/* Define this symbol if your OS supports changing the contents of argv */
#cmakedefine HAVE_WRITABLE_ARGV 1

-
/* Define this if time_t is unsigned */
-
#cmakedefine HAVE_TIME_T_UNSIGNED 1
+
/* Define to 1 if you need the malloc.h header file even with stdlib.h */
+
#cmakedefine NEED_MALLOC_H 1

/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */
#cmakedefine NEED_REENTRANT 1
@@ -631,6 +634,24 @@
/* cpu-machine-OS */
#cmakedefine CURL_OS ${CURL_OS}

+
/* Name of package */
+
#cmakedefine PACKAGE ${PACKAGE}
+

+
/* Define to the address where bug reports for this package should be sent. */
+
#cmakedefine PACKAGE_BUGREPORT ${PACKAGE_BUGREPORT}
+

+
/* Define to the full name of this package. */
+
#cmakedefine PACKAGE_NAME ${PACKAGE_NAME}
+

+
/* Define to the full name and version of this package. */
+
#cmakedefine PACKAGE_STRING ${PACKAGE_STRING}
+

+
/* Define to the one symbol short name of this package. */
+
#cmakedefine PACKAGE_TARNAME ${PACKAGE_TARNAME}
+

+
/* Define to the version of this package. */
+
#cmakedefine PACKAGE_VERSION ${PACKAGE_VERSION}
+

/*
 Note: SIZEOF_* variables are fetched with CMake through check_type_size().
 As per CMake documentation on CheckTypeSize, C preprocessor code is
@@ -682,9 +703,6 @@ ${SIZEOF_TIME_T_CODE}
/* if Secure Transport is enabled */
#cmakedefine USE_SECTRANSP 1

-
/* if SSL session export support is available */
-
#cmakedefine USE_SSLS_EXPORT 1
-

/* if mbedTLS is enabled */
#cmakedefine USE_MBEDTLS 1

@@ -724,9 +742,6 @@ ${SIZEOF_TIME_T_CODE}
/* if OpenSSL is in use */
#cmakedefine USE_OPENSSL 1

-
/* if AmiSSL is in use */
-
#cmakedefine USE_AMISSL 1
-

/* if librtmp/rtmpdump is in use */
#cmakedefine USE_LIBRTMP 1

@@ -776,12 +791,12 @@ ${SIZEOF_TIME_T_CODE}
/* to enable Windows SSL  */
#cmakedefine USE_SCHANNEL 1

-
/* if Watt-32 is in use */
-
#cmakedefine USE_WATT32 1
-

/* enable multiple SSL backends */
#cmakedefine CURL_WITH_MULTI_SSL 1

+
/* Version number of package */
+
#cmakedefine VERSION ${VERSION}
+

/* Number of bits in a file offset, on hosts where this is settable. */
#cmakedefine _FILE_OFFSET_BITS ${_FILE_OFFSET_BITS}

@@ -826,9 +841,3 @@ ${SIZEOF_TIME_T_CODE}

/* if ECH support is available */
#cmakedefine USE_ECH 1
-

-
/* Define to 1 if you have the wolfSSL_CTX_GenerateEchConfig function. */
-
#cmakedefine HAVE_WOLFSSL_CTX_GENERATEECHCONFIG
-

-
/* Define to 1 if you have the SSL_set1_ech_config_list function. */
-
#cmakedefine HAVE_SSL_SET1_ECH_CONFIG_LIST
modified external/curl/lib/curl_config.h.in
@@ -1,5 +1,8 @@
/* lib/curl_config.h.in.  Generated from configure.ac by autoheader.  */

+
/* Ignore c-ares deprecation warnings */
+
#undef CARES_NO_DEPRECATED
+

/* to enable curl debug memory tracking */
#undef CURLDEBUG

@@ -159,6 +162,9 @@
/* cpu-machine-OS */
#undef CURL_OS

+
/* IP address type in sockaddr */
+
#undef CURL_SA_FAMILY_T
+

/* built with multiple SSL backends */
#undef CURL_WITH_MULTI_SSL

@@ -168,9 +174,6 @@
/* Define to the type of arg 2 for gethostname. */
#undef GETHOSTNAME_TYPE_ARG2

-
/* Define to 1 if symbol `ADDRESS_FAMILY' exists */
-
#undef HAVE_ADDRESS_FAMILY
-

/* Define to 1 if you have the alarm function. */
#undef HAVE_ALARM

@@ -211,15 +214,28 @@
/* Define to 1 if you have the CloseSocket camel case function. */
#undef HAVE_CLOSESOCKET_CAMEL

+
/* Define to 1 if you have the <crypto.h> header file. */
+
#undef HAVE_CRYPTO_H
+

/* Define to 1 if you have the fseeko declaration */
#undef HAVE_DECL_FSEEKO

+
/* Define to 1 if you have the declaration of `getpwuid_r', and to 0 if you
+
   don't. */
+
#undef HAVE_DECL_GETPWUID_R
+

+
/* "Set if getpwuid_r() declaration is missing" */
+
#undef HAVE_DECL_GETPWUID_R_MISSING
+

/* if you have <dirent.h> */
#undef HAVE_DIRENT_H

/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

+
/* Define to 1 if you have the <err.h> header file. */
+
#undef HAVE_ERR_H
+

/* Define to 1 if you have the `eventfd' function. */
#undef HAVE_EVENTFD

@@ -262,6 +278,9 @@
/* Define to 1 if you have the `geteuid' function. */
#undef HAVE_GETEUID

+
/* Define to 1 if you have the gethostbyname function. */
+
#undef HAVE_GETHOSTBYNAME
+

/* Define to 1 if you have the gethostbyname_r function. */
#undef HAVE_GETHOSTBYNAME_R

@@ -328,6 +347,9 @@
/* if you have GNU GSS */
#undef HAVE_GSSGNU

+
/* Define to 1 if you have the <hyper.h> header file. */
+
#undef HAVE_HYPER_H
+

/* Define to 1 if you have the <idn2.h> header file. */
#undef HAVE_IDN2_H

@@ -346,6 +368,9 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

+
/* Define to 1 if you have the ioctl function. */
+
#undef HAVE_IOCTL
+

/* Define to 1 if you have the ioctlsocket function. */
#undef HAVE_IOCTLSOCKET

@@ -398,6 +423,9 @@
/* Define to 1 if you have the <libpsl.h> header file. */
#undef HAVE_LIBPSL_H

+
/* Define to 1 if using LibreSSL. */
+
#undef HAVE_LIBRESSL
+

/* Define to 1 if you have the <librtmp/rtmp.h> header file. */
#undef HAVE_LIBRTMP_RTMP_H

@@ -499,6 +527,9 @@
/* Define to 1 if you have the <openssl/x509.h> header file. */
#undef HAVE_OPENSSL_X509_H

+
/* Define to 1 if you have the <pem.h> header file. */
+
#undef HAVE_PEM_H
+

/* Define to 1 if you have the `pipe' function. */
#undef HAVE_PIPE

@@ -529,8 +560,8 @@
/* Define to 1 if you have the recv function. */
#undef HAVE_RECV

-
/* Define to 1 if symbol `sa_family_t' exists */
-
#undef HAVE_SA_FAMILY_T
+
/* Define to 1 if you have the <rsa.h> header file. */
+
#undef HAVE_RSA_H

/* Define to 1 if you have the `sched_yield' function. */
#undef HAVE_SCHED_YIELD
@@ -547,6 +578,9 @@
/* Define to 1 if you have the `sendmsg' function. */
#undef HAVE_SENDMSG

+
/* Define to 1 if you have the <setjmp.h> header file. */
+
#undef HAVE_SETJMP_H
+

/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE

@@ -580,6 +614,12 @@
/* Define to 1 if you have the socketpair function. */
#undef HAVE_SOCKETPAIR

+
/* Define to 1 if you have the `SSL_ech_set1_echconfig' function. */
+
#undef HAVE_SSL_ECH_SET1_ECHCONFIG
+

+
/* Define to 1 if you have the <ssl.h> header file. */
+
#undef HAVE_SSL_H
+

/* Define to 1 if you have the `SSL_set0_wbio' function. */
#undef HAVE_SSL_SET0_WBIO

@@ -686,6 +726,9 @@
/* Define to 1 if you have the <sys/utime.h> header file. */
#undef HAVE_SYS_UTIME_H

+
/* Define to 1 if you have the <sys/wait.h> header file. */
+
#undef HAVE_SYS_WAIT_H
+

/* Define to 1 if you have the <sys/xattr.h> header file. */
#undef HAVE_SYS_XATTR_H

@@ -740,6 +783,9 @@
/* Define this symbol if your OS supports changing the contents of argv */
#undef HAVE_WRITABLE_ARGV

+
/* Define to 1 if you have the <x509.h> header file. */
+
#undef HAVE_X509_H
+

/* if libzstd is in use */
#undef HAVE_ZSTD

@@ -835,6 +881,9 @@
/* enable HTTPS RR support */
#undef USE_HTTPSRR

+
/* if hyper is in use */
+
#undef USE_HYPER
+

/* Define if you want to enable IPv6 support */
#undef USE_IPV6

@@ -868,12 +917,30 @@
/* if ngtcp2 is in use */
#undef USE_NGTCP2

+
/* if ngtcp2_crypto_boringssl is in use */
+
#undef USE_NGTCP2_CRYPTO_BORINGSSL
+

+
/* if ngtcp2_crypto_gnutls is in use */
+
#undef USE_NGTCP2_CRYPTO_GNUTLS
+

+
/* if ngtcp2_crypto_quictls is in use */
+
#undef USE_NGTCP2_CRYPTO_QUICTLS
+

+
/* if ngtcp2_crypto_wolfssl is in use */
+
#undef USE_NGTCP2_CRYPTO_WOLFSSL
+

+
/* if ngtcp2 + nghttp3 is in use */
+
#undef USE_NGTCP2_H3
+

/* Use OpenLDAP-specific code */
#undef USE_OPENLDAP

/* if OpenSSL is in use */
#undef USE_OPENSSL

+
/* if openssl quic + nghttp3 is in use */
+
#undef USE_OPENSSL_H3
+

/* if openssl QUIC is in use */
#undef USE_OPENSSL_QUIC

@@ -889,9 +956,6 @@
/* enable Secure Transport */
#undef USE_SECTRANSP

-
/* if SSL session export support is available */
-
#undef USE_SSLS_EXPORT
-

/* if you want POSIX threaded DNS lookup */
#undef USE_THREADS_POSIX

@@ -904,9 +968,6 @@
/* Use Unix domain sockets */
#undef USE_UNIX_SOCKETS

-
/* if Watt-32 is in use */
-
#undef USE_WATT32
-

/* Define to 1 if you are building a Windows target with crypto API support.
   */
#undef USE_WIN32_CRYPTO
@@ -921,6 +982,10 @@
/* Use Windows LDAP implementation */
#undef USE_WIN32_LDAP

+
/* Define to 1 if you are building a Windows target without large file
+
   support. */
+
#undef USE_WIN32_SMALL_FILES
+

/* to enable SSPI support */
#undef USE_WINDOWS_SSPI

modified external/curl/lib/curl_ctype.h
@@ -46,6 +46,6 @@
#define ISURLPUNTCS(x) (((x) == '-') || ((x) == '.') || ((x) == '_') || \
                        ((x) == '~'))
#define ISUNRESERVED(x) (ISALNUM(x) || ISURLPUNTCS(x))
-
#define ISNEWLINE(x) (((x) == '\n') || (x) == '\r')
+


#endif /* HEADER_CURL_CTYPE_H */
modified external/curl/lib/curl_get_line.c
@@ -28,9 +28,7 @@
  !defined(CURL_DISABLE_HSTS) || !defined(CURL_DISABLE_NETRC)

#include "curl_get_line.h"
-
#ifdef BUILDING_LIBCURL
#include "curl_memory.h"
-
#endif
/* The last #include file should be: */
#include "memdebug.h"

modified external/curl/lib/curl_get_line.h
@@ -26,12 +26,6 @@

#include "dynbuf.h"

-
#ifndef BUILDING_LIBCURL
-
/* this renames functions so that the tool code can use the same code
-
   without getting symbol collisions */
-
#define Curl_get_line(a,b) curlx_get_line(a,b)
-
#endif
-

/* Curl_get_line() returns complete lines that end with a newline. */
int Curl_get_line(struct dynbuf *buf, FILE *input);

modified external/curl/lib/curl_gethostname.c
@@ -73,11 +73,7 @@ int Curl_gethostname(char * const name, GETHOSTNAME_TYPE_ARG2 namelen)
#else /* DEBUGBUILD */

  name[0] = '\0';
-
#ifdef __AMIGA__
-
  err = gethostname((unsigned char *)name, namelen);
-
#else
  err = gethostname(name, namelen);
-
#endif

#endif

modified external/curl/lib/curl_gssapi.c
@@ -40,11 +40,6 @@
#define CURL_ALIGN8
#endif

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
#endif
-

gss_OID_desc Curl_spnego_mech_oid CURL_ALIGN8 = {
  6, (char *)"\x2b\x06\x01\x05\x05\x02"
};
@@ -154,8 +149,4 @@ void Curl_gss_log_error(struct Curl_easy *data, const char *prefix,
#endif
}

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic pop
-
#endif
-

#endif /* HAVE_GSSAPI */
modified external/curl/lib/curl_hmac.h
@@ -24,9 +24,9 @@
 *
 ***************************************************************************/

-
#if (defined(USE_CURL_NTLM_CORE) && !defined(USE_WINDOWS_SSPI)) ||      \
-
  !defined(CURL_DISABLE_AWS) || !defined(CURL_DISABLE_DIGEST_AUTH) ||   \
-
  defined(USE_SSL)
+
#if (defined(USE_CURL_NTLM_CORE) && !defined(USE_WINDOWS_SSPI))         \
+
  || !defined(CURL_DISABLE_AWS) || !defined(CURL_DISABLE_DIGEST_AUTH)   \
+
  || defined(USE_LIBSSH2)

#include <curl/curl.h>

modified external/curl/lib/curl_multibyte.c
@@ -32,7 +32,7 @@

#include "curl_setup.h"

-
#ifdef _WIN32
+
#if defined(_WIN32)

#include "curl_multibyte.h"

@@ -84,170 +84,16 @@ char *curlx_convert_wchar_to_UTF8(const wchar_t *str_w)
  return str_utf8;
}

-
/* declare GetFullPathNameW for mingw-w64 UWP builds targeting old windows */
-
#if defined(CURL_WINDOWS_UWP) && defined(__MINGW32__) && \
-
  (_WIN32_WINNT < _WIN32_WINNT_WIN10)
-
WINBASEAPI DWORD WINAPI GetFullPathNameW(LPCWSTR, DWORD, LPWSTR, LPWSTR *);
-
#endif
-

-
/* Fix excessive paths (paths that exceed MAX_PATH length of 260).
-
 *
-
 * This is a helper function to fix paths that would exceed the MAX_PATH
-
 * limitation check done by Windows APIs. It does so by normalizing the passed
-
 * in filename or path 'in' to its full canonical path, and if that path is
-
 * longer than MAX_PATH then setting 'out' to "\\?\" prefix + that full path.
-
 *
-
 * For example 'in' filename255chars in current directory C:\foo\bar is
-
 * fixed as \\?\C:\foo\bar\filename255chars for 'out' which will tell Windows
-
 * it is ok to access that filename even though the actual full path is longer
-
 * than 260 chars.
-
 *
-
 * For non-Unicode builds this function may fail sometimes because only the
-
 * Unicode versions of some Windows API functions can access paths longer than
-
 * MAX_PATH, for example GetFullPathNameW which is used in this function. When
-
 * the full path is then converted from Unicode to multibyte that fails if any
-
 * directories in the path contain characters not in the current codepage.
-
 */
-
static bool fix_excessive_path(const TCHAR *in, TCHAR **out)
-
{
-
  size_t needed, count;
-
  const wchar_t *in_w;
-
  wchar_t *fbuf = NULL;
-

-
  /* MS documented "approximate" limit for the maximum path length */
-
  const size_t max_path_len = 32767;
-

-
#ifndef _UNICODE
-
  wchar_t *ibuf = NULL;
-
  char *obuf = NULL;
-
#endif
-

-
  *out = NULL;
-

-
  /* skip paths already normalized */
-
  if(!_tcsncmp(in, _T("\\\\?\\"), 4))
-
    goto cleanup;
-

-
#ifndef _UNICODE
-
  /* convert multibyte input to unicode */
-
  needed = mbstowcs(NULL, in, 0);
-
  if(needed == (size_t)-1 || needed >= max_path_len)
-
    goto cleanup;
-
  ++needed; /* for NUL */
-
  ibuf = malloc(needed * sizeof(wchar_t));
-
  if(!ibuf)
-
    goto cleanup;
-
  count = mbstowcs(ibuf, in, needed);
-
  if(count == (size_t)-1 || count >= needed)
-
    goto cleanup;
-
  in_w = ibuf;
-
#else
-
  in_w = in;
-
#endif
-

-
  /* GetFullPathNameW returns the normalized full path in unicode. It converts
-
     forward slashes to backslashes, processes .. to remove directory segments,
-
     etc. Unlike GetFullPathNameA it can process paths that exceed MAX_PATH. */
-
  needed = (size_t)GetFullPathNameW(in_w, 0, NULL, NULL);
-
  if(!needed || needed > max_path_len)
-
    goto cleanup;
-
  /* skip paths that are not excessive and do not need modification */
-
  if(needed <= MAX_PATH)
-
    goto cleanup;
-
  fbuf = malloc(needed * sizeof(wchar_t));
-
  if(!fbuf)
-
    goto cleanup;
-
  count = (size_t)GetFullPathNameW(in_w, (DWORD)needed, fbuf, NULL);
-
  if(!count || count >= needed)
-
    goto cleanup;
-

-
  /* prepend \\?\ or \\?\UNC\ to the excessively long path.
-
   *
-
   * c:\longpath            --->    \\?\c:\longpath
-
   * \\.\c:\longpath        --->    \\?\c:\longpath
-
   * \\?\c:\longpath        --->    \\?\c:\longpath  (unchanged)
-
   * \\server\c$\longpath   --->    \\?\UNC\server\c$\longpath
-
   *
-
   * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats
-
   */
-
  if(!wcsncmp(fbuf, L"\\\\?\\", 4))
-
    ; /* do nothing */
-
  else if(!wcsncmp(fbuf, L"\\\\.\\", 4))
-
    fbuf[2] = '?';
-
  else if(!wcsncmp(fbuf, L"\\\\.", 3) || !wcsncmp(fbuf, L"\\\\?", 3)) {
-
    /* Unexpected, not UNC. The formatting doc doesn't allow this AFAICT. */
-
    goto cleanup;
-
  }
-
  else {
-
    wchar_t *temp;
-

-
    if(!wcsncmp(fbuf, L"\\\\", 2)) {
-
      /* "\\?\UNC\" + full path without "\\" + null */
-
      needed = 8 + (count - 2) + 1;
-
      if(needed > max_path_len)
-
        goto cleanup;
-

-
      temp = malloc(needed * sizeof(wchar_t));
-
      if(!temp)
-
        goto cleanup;
-

-
      wcsncpy(temp, L"\\\\?\\UNC\\", 8);
-
      wcscpy(temp + 8, fbuf + 2);
-
    }
-
    else {
-
      /* "\\?\" + full path + null */
-
      needed = 4 + count + 1;
-
      if(needed > max_path_len)
-
        goto cleanup;
-

-
      temp = malloc(needed * sizeof(wchar_t));
-
      if(!temp)
-
        goto cleanup;
-

-
      wcsncpy(temp, L"\\\\?\\", 4);
-
      wcscpy(temp + 4, fbuf);
-
    }
-

-
    free(fbuf);
-
    fbuf = temp;
-
  }
-

-
#ifndef _UNICODE
-
  /* convert unicode full path to multibyte output */
-
  needed = wcstombs(NULL, fbuf, 0);
-
  if(needed == (size_t)-1 || needed >= max_path_len)
-
    goto cleanup;
-
  ++needed; /* for NUL */
-
  obuf = malloc(needed);
-
  if(!obuf)
-
    goto cleanup;
-
  count = wcstombs(obuf, fbuf, needed);
-
  if(count == (size_t)-1 || count >= needed)
-
    goto cleanup;
-
  *out = obuf;
-
  obuf = NULL;
-
#else
-
  *out = fbuf;
-
  fbuf = NULL;
-
#endif
+
#endif /* _WIN32 */

-
cleanup:
-
  free(fbuf);
-
#ifndef _UNICODE
-
  free(ibuf);
-
  free(obuf);
-
#endif
-
  return *out ? true : false;
-
}
+
#if defined(USE_WIN32_LARGE_FILES) || defined(USE_WIN32_SMALL_FILES)

int curlx_win32_open(const char *filename, int oflag, ...)
{
  int pmode = 0;
-
  int result = -1;
-
  TCHAR *fixed = NULL;
-
  const TCHAR *target = NULL;

#ifdef _UNICODE
+
  int result = -1;
  wchar_t *filename_w = curlx_convert_UTF8_to_wchar(filename);
#endif

@@ -259,95 +105,58 @@ int curlx_win32_open(const char *filename, int oflag, ...)

#ifdef _UNICODE
  if(filename_w) {
-
    if(fix_excessive_path(filename_w, &fixed))
-
      target = fixed;
-
    else
-
      target = filename_w;
-
    result = _wopen(target, oflag, pmode);
+
    result = _wopen(filename_w, oflag, pmode);
    curlx_unicodefree(filename_w);
  }
  else
    errno = EINVAL;
+
  return result;
#else
-
  if(fix_excessive_path(filename, &fixed))
-
    target = fixed;
-
  else
-
    target = filename;
-
  result = (_open)(target, oflag, pmode);
+
  return (_open)(filename, oflag, pmode);
#endif
-

-
  free(fixed);
-
  return result;
}

FILE *curlx_win32_fopen(const char *filename, const char *mode)
{
-
  FILE *result = NULL;
-
  TCHAR *fixed = NULL;
-
  const TCHAR *target = NULL;
-

#ifdef _UNICODE
+
  FILE *result = NULL;
  wchar_t *filename_w = curlx_convert_UTF8_to_wchar(filename);
  wchar_t *mode_w = curlx_convert_UTF8_to_wchar(mode);
-
  if(filename_w && mode_w) {
-
    if(fix_excessive_path(filename_w, &fixed))
-
      target = fixed;
-
    else
-
      target = filename_w;
-
    result = _wfopen(target, mode_w);
-
  }
+
  if(filename_w && mode_w)
+
    result = _wfopen(filename_w, mode_w);
  else
    errno = EINVAL;
  curlx_unicodefree(filename_w);
  curlx_unicodefree(mode_w);
+
  return result;
#else
-
  if(fix_excessive_path(filename, &fixed))
-
    target = fixed;
-
  else
-
    target = filename;
-
  result = (fopen)(target, mode);
+
  return (fopen)(filename, mode);
#endif
-

-
  free(fixed);
-
  return result;
}

int curlx_win32_stat(const char *path, struct_stat *buffer)
{
-
  int result = -1;
-
  TCHAR *fixed = NULL;
-
  const TCHAR *target = NULL;
-

#ifdef _UNICODE
+
  int result = -1;
  wchar_t *path_w = curlx_convert_UTF8_to_wchar(path);
  if(path_w) {
-
    if(fix_excessive_path(path_w, &fixed))
-
      target = fixed;
-
    else
-
      target = path_w;
-
#ifndef USE_WIN32_LARGE_FILES
-
    result = _wstat(target, buffer);
+
#if defined(USE_WIN32_SMALL_FILES)
+
    result = _wstat(path_w, buffer);
#else
-
    result = _wstati64(target, buffer);
+
    result = _wstati64(path_w, buffer);
#endif
    curlx_unicodefree(path_w);
  }
  else
    errno = EINVAL;
+
  return result;
#else
-
  if(fix_excessive_path(path, &fixed))
-
    target = fixed;
-
  else
-
    target = path;
-
#ifndef USE_WIN32_LARGE_FILES
-
  result = _stat(target, buffer);
+
#if defined(USE_WIN32_SMALL_FILES)
+
  return _stat(path, buffer);
#else
-
  result = _stati64(target, buffer);
+
  return _stati64(path, buffer);
#endif
#endif
-

-
  free(fixed);
-
  return result;
}

-
#endif /* _WIN32 */
+
#endif /* USE_WIN32_LARGE_FILES || USE_WIN32_SMALL_FILES */
modified external/curl/lib/curl_rtmp.c
@@ -85,7 +85,6 @@ const struct Curl_handler Curl_handler_rtmp = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_RTMP,                            /* defport */
  CURLPROTO_RTMP,                       /* protocol */
  CURLPROTO_RTMP,                       /* family */
@@ -110,7 +109,6 @@ const struct Curl_handler Curl_handler_rtmpt = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_RTMPT,                           /* defport */
  CURLPROTO_RTMPT,                      /* protocol */
  CURLPROTO_RTMPT,                      /* family */
@@ -135,7 +133,6 @@ const struct Curl_handler Curl_handler_rtmpe = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_RTMP,                            /* defport */
  CURLPROTO_RTMPE,                      /* protocol */
  CURLPROTO_RTMPE,                      /* family */
@@ -160,7 +157,6 @@ const struct Curl_handler Curl_handler_rtmpte = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_RTMPT,                           /* defport */
  CURLPROTO_RTMPTE,                     /* protocol */
  CURLPROTO_RTMPTE,                     /* family */
@@ -185,7 +181,6 @@ const struct Curl_handler Curl_handler_rtmps = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_RTMPS,                           /* defport */
  CURLPROTO_RTMPS,                      /* protocol */
  CURLPROTO_RTMP,                       /* family */
@@ -210,7 +205,6 @@ const struct Curl_handler Curl_handler_rtmpts = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_RTMPS,                           /* defport */
  CURLPROTO_RTMPTS,                     /* protocol */
  CURLPROTO_RTMPT,                      /* family */
modified external/curl/lib/curl_setup.h
@@ -31,6 +31,13 @@
/* Tell "curl/curl.h" not to include "curl/mprintf.h" */
#define CURL_SKIP_INCLUDE_MPRINTF

+
/* FIXME: Delete this once the warnings have been fixed. */
+
#if !defined(CURL_WARN_SIGN_CONVERSION)
+
#if defined(__GNUC__) || defined(__clang__)
+
#pragma GCC diagnostic ignored "-Wsign-conversion"
+
#endif
+
#endif
+

/* Set default _WIN32_WINNT */
#ifdef __MINGW32__
#include <_mingw.h>
@@ -78,17 +85,13 @@
#endif
#endif

+
/*
+
 * Disable Visual Studio warnings:
+
 * 4127 "conditional expression is constant"
+
 */
#ifdef _MSC_VER
-
/* Disable Visual Studio warnings: 4127 "conditional expression is constant" */
#pragma warning(disable:4127)
-
/* Avoid VS2005 and upper complaining about portable C functions. */
-
#ifndef _CRT_NONSTDC_NO_DEPRECATE
-
#define _CRT_NONSTDC_NO_DEPRECATE  /* for strdup(), write(), etc. */
-
#endif
-
#ifndef _CRT_SECURE_NO_DEPRECATE
-
#define _CRT_SECURE_NO_DEPRECATE  /* for fopen(), getenv(), etc. */
#endif
-
#endif /* _MSC_VER */

#ifdef _WIN32
/*
@@ -97,26 +100,26 @@
 * Make sure to define this macro before including any Windows headers.
 */
#  ifndef WIN32_LEAN_AND_MEAN
-
#  define WIN32_LEAN_AND_MEAN
+
#    define WIN32_LEAN_AND_MEAN
#  endif
#  ifndef NOGDI
-
#  define NOGDI
+
#    define NOGDI
#  endif
/* Detect Windows App environment which has a restricted access
 * to the Win32 APIs. */
-
#  if (defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0602)) || \
-
     defined(WINAPI_FAMILY)
-
#    include <winapifamily.h>
-
#    if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) &&  \
-
       !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
-
#      define CURL_WINDOWS_UWP
-
#    endif
+
# if (defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0602)) || \
+
  defined(WINAPI_FAMILY)
+
#  include <winapifamily.h>
+
#  if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) &&  \
+
     !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
#    define CURL_WINDOWS_UWP
#  endif
+
# endif
#endif

/* Compatibility */
-
#ifdef ENABLE_IPV6
-
#define USE_IPV6 1
+
#if defined(ENABLE_IPV6)
+
#  define USE_IPV6 1
#endif

/*
@@ -130,8 +133,12 @@

#else /* HAVE_CONFIG_H */

-
#ifdef _WIN32
-
#  include "config-win32.h"
+
#ifdef _WIN32_WCE
+
#  include "config-win32ce.h"
+
#else
+
#  ifdef _WIN32
+
#    include "config-win32.h"
+
#  endif
#endif

#ifdef macintosh
@@ -142,6 +149,10 @@
#  include "config-riscos.h"
#endif

+
#ifdef __AMIGA__
+
#  include "config-amigaos.h"
+
#endif
+

#ifdef __OS400__
#  include "config-os400.h"
#endif
@@ -150,6 +161,10 @@
#  include "config-plan9.h"
#endif

+
#ifdef MSDOS
+
#  include "config-dos.h"
+
#endif
+

#endif /* HAVE_CONFIG_H */

/* ================================================================ */
@@ -168,7 +183,7 @@

#ifdef NEED_THREAD_SAFE
#  ifndef _THREAD_SAFE
-
#  define _THREAD_SAFE
+
#    define _THREAD_SAFE
#  endif
#endif

@@ -180,14 +195,14 @@

#ifdef NEED_REENTRANT
#  ifndef _REENTRANT
-
#  define _REENTRANT
+
#    define _REENTRANT
#  endif
#endif

/* Solaris needs this to get a POSIX-conformant getpwuid_r */
#if defined(sun) || defined(__sun)
#  ifndef _POSIX_PTHREAD_SEMANTICS
-
#  define _POSIX_PTHREAD_SEMANTICS 1
+
#    define _POSIX_PTHREAD_SEMANTICS 1
#  endif
#endif

@@ -275,6 +290,14 @@
#  define CURL_DISABLE_HTTP_AUTH 1
#endif

+
/*
+
 * ECH requires HTTPSRR.
+
 */
+

+
#if defined(USE_ECH) && !defined(USE_HTTPSRR)
+
#  define USE_HTTPSRR
+
#endif
+

/* ================================================================ */
/* No system header file shall be included in this file before this */
/* point.                                                           */
@@ -370,23 +393,17 @@
#  endif
#endif

-
#ifdef USE_ARES
-
#  ifndef CARES_NO_DEPRECATED
-
#  define CARES_NO_DEPRECATED  /* for ares_getsock() */
-
#  endif
-
#  if defined(CURL_STATICLIB) && !defined(CARES_STATICLIB) && defined(_WIN32)
-
#    define CARES_STATICLIB  /* define it before including ares.h */
-
#  endif
-
#endif
-

#ifdef USE_LWIPSOCK
#  include <lwip/init.h>
#  include <lwip/sockets.h>
#  include <lwip/netdb.h>
#endif

-
#ifdef macintosh
+
#ifdef HAVE_EXTRA_STRICMP_H
#  include <extra/stricmp.h>
+
#endif
+

+
#ifdef HAVE_EXTRA_STRDUP_H
#  include <extra/strdup.h>
#endif

@@ -439,9 +456,9 @@
#include <assert.h>

#ifdef __TANDEM /* for ns*-tandem-nsk systems */
-
#  if ! defined __LP64
-
#    include <floss.h> /* FLOSS is only used for 32-bit builds. */
-
#  endif
+
# if ! defined __LP64
+
#  include <floss.h> /* FLOSS is only used for 32-bit builds. */
+
# endif
#endif

#ifndef STDC_HEADERS /* no standard C headers! */
@@ -477,19 +494,11 @@
   FILE *curlx_win32_fopen(const char *filename, const char *mode);
#endif

-
#ifdef __DJGPP__
-
/* Requires DJGPP 2.04 */
-
#  include <unistd.h>
-
#  undef  lseek
-
#  define lseek(fdes,offset,whence)  llseek(fdes, offset, whence)
-
#  define LSEEK_ERROR                (offset_t)-1
-
#endif
-

/*
 * Small file (<2Gb) support using Win32 functions.
 */

-
#if defined(_WIN32) && !defined(USE_WIN32_LARGE_FILES)
+
#ifdef USE_WIN32_SMALL_FILES
#  include <io.h>
#  include <sys/types.h>
#  include <sys/stat.h>
@@ -509,11 +518,11 @@
#endif

#ifndef struct_stat
-
#define struct_stat struct stat
+
#  define struct_stat struct stat
#endif

#ifndef LSEEK_ERROR
-
#define LSEEK_ERROR (off_t)-1
+
#  define LSEEK_ERROR (off_t)-1
#endif

#ifndef SIZEOF_TIME_T
@@ -584,8 +593,8 @@
#  endif
#  define CURL_UINT64_SUFFIX  CURL_SUFFIX_CURL_OFF_TU
#  define CURL_UINT64_C(val)  CURL_CONC_MACROS(val,CURL_UINT64_SUFFIX)
-
#  define FMT_PRId64  CURL_FORMAT_CURL_OFF_T
-
#  define FMT_PRIu64  CURL_FORMAT_CURL_OFF_TU
+
# define FMT_PRId64  CURL_FORMAT_CURL_OFF_T
+
# define FMT_PRIu64  CURL_FORMAT_CURL_OFF_TU
#endif

#define FMT_OFF_T CURL_FORMAT_CURL_OFF_T
@@ -684,9 +693,9 @@
/*
 * MSVC threads support requires a multi-threaded runtime library.
 * _beginthreadex() is not available in single-threaded ones.
-
 * Single-threaded option was last available in VS2005: _MSC_VER <= 1400
 */
-
#if defined(_MSC_VER) && !defined(_MT)  /* available in _MSC_VER <= 1400 */
+

+
#if defined(_MSC_VER) && !defined(_MT)
#  undef USE_THREADS_POSIX
#  undef USE_THREADS_WIN32
#endif
@@ -704,15 +713,15 @@
#  define CURLRES_IPV4
#endif

-
#if defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32)
-
#  define CURLRES_ASYNCH
-
#  define CURLRES_THREADED
-
#elif defined(USE_ARES)
+
#ifdef USE_ARES
#  define CURLRES_ASYNCH
#  define CURLRES_ARES
/* now undef the stock libc functions just to avoid them being used */
#  undef HAVE_GETADDRINFO
#  undef HAVE_FREEADDRINFO
+
#elif defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32)
+
#  define CURLRES_ASYNCH
+
#  define CURLRES_THREADED
#else
#  define CURLRES_SYNCH
#endif
@@ -729,23 +738,14 @@
#error "libidn2 cannot be enabled with WinIDN or AppleIDN, choose one."
#endif

+
#define LIBIDN_REQUIRED_VERSION "0.4.1"
+

#if defined(USE_GNUTLS) || defined(USE_OPENSSL) || defined(USE_MBEDTLS) || \
  defined(USE_WOLFSSL) || defined(USE_SCHANNEL) || defined(USE_SECTRANSP) || \
  defined(USE_BEARSSL) || defined(USE_RUSTLS)
#define USE_SSL    /* SSL support has been enabled */
#endif

-
#if defined(USE_OPENSSL) && defined(USE_WOLFSSL)
-
#  include <wolfssl/version.h>
-
#  if LIBWOLFSSL_VERSION_HEX >= 0x05007006
-
#    ifndef OPENSSL_COEXIST
-
#    define OPENSSL_COEXIST
-
#    endif
-
#  else
-
#    error "OpenSSL can only coexist with wolfSSL v5.7.6 or upper"
-
#  endif
-
#endif
-

#if defined(USE_WOLFSSL) && defined(USE_GNUTLS)
/* Avoid defining unprefixed wolfSSL SHA macros colliding with nettle ones */
#define NO_OLD_WC_NAMES
@@ -776,6 +776,10 @@
#  endif
#endif

+
#ifdef CURL_WANTS_CA_BUNDLE_ENV
+
#error "No longer supported. Set CURLOPT_CAINFO at runtime instead."
+
#endif
+

#if defined(USE_LIBSSH2) || defined(USE_LIBSSH) || defined(USE_WOLFSSH)
#define USE_SSH
#endif
@@ -808,7 +812,7 @@
#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__clang__) || \
  defined(__IAR_SYSTEMS_ICC__)
#  define CURL_NORETURN  __attribute__((__noreturn__))
-
#elif defined(_MSC_VER)
+
#elif defined(_MSC_VER) && (_MSC_VER >= 1200)
#  define CURL_NORETURN  __declspec(noreturn)
#else
#  define CURL_NORETURN
@@ -839,7 +843,7 @@
 */

#ifndef Curl_nop_stmt
-
#define Curl_nop_stmt do { } while(0)
+
#  define Curl_nop_stmt do { } while(0)
#endif

/*
@@ -878,14 +882,6 @@
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif

-
/* Since O_BINARY is used in bitmasks, setting it to zero makes it usable in
-
   source code but yet it does not ruin anything */
-
#ifdef O_BINARY
-
#define CURL_O_BINARY O_BINARY
-
#else
-
#define CURL_O_BINARY 0
-
#endif
-

/* In Windows the default file mode is text but an application can override it.
Therefore we specify it explicitly. https://github.com/curl/curl/pull/258
*/
@@ -915,8 +911,6 @@ endings either CRLF or LF so 't' is appropriate.
#    define CURL_SA_FAMILY_T sa_family_t
#  elif defined(HAVE_ADDRESS_FAMILY)
#    define CURL_SA_FAMILY_T ADDRESS_FAMILY
-
#  elif defined(__AMIGA__)
-
#    define CURL_SA_FAMILY_T unsigned char
#  else
/* use a sensible default */
#    define CURL_SA_FAMILY_T unsigned short
@@ -933,9 +927,8 @@ endings either CRLF or LF so 't' is appropriate.
   as their argument */
#define STRCONST(x) x,sizeof(x)-1

-
/* Some versions of the Android NDK is missing the declaration */
-
#if defined(HAVE_GETPWUID_R) && \
-
  defined(__ANDROID_API__) && (__ANDROID_API__ < 21)
+
/* Some versions of the Android SDK is missing the declaration */
+
#if defined(HAVE_GETPWUID_R) && defined(HAVE_DECL_GETPWUID_R_MISSING)
struct passwd;
int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf,
               size_t buflen, struct passwd **result);
@@ -947,7 +940,8 @@ int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf,
#define UNITTEST static
#endif

-
#ifdef USE_NGHTTP2
+
/* Hyper supports HTTP2 also, but Curl's integration with Hyper does not */
+
#if defined(USE_NGHTTP2)
#define USE_HTTP2
#endif

@@ -956,7 +950,7 @@ int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf,
    defined(USE_QUICHE) || defined(USE_MSH3)

#ifdef CURL_WITH_MULTI_SSL
-
#error "MultiSSL combined with QUIC is not supported"
+
#error "Multi-SSL combined with QUIC is not supported"
#endif

#define USE_HTTP3
@@ -976,7 +970,7 @@ int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf,
#    define UNIX_PATH_MAX 108
     /* !checksrc! disable TYPEDEFSTRUCT 1 */
     typedef struct sockaddr_un {
-
       CURL_SA_FAMILY_T sun_family;
+
       ADDRESS_FAMILY sun_family;
       char sun_path[UNIX_PATH_MAX];
     } SOCKADDR_UN, *PSOCKADDR_UN;
#    define WIN32_SOCKADDR_UN
@@ -989,26 +983,26 @@ int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf,
#define OPENSSL_SUPPRESS_DEPRECATED
#endif

-
#if defined(CURL_INLINE)
-
/* 'CURL_INLINE' defined, use as-is */
-
#elif defined(inline)
-
#  define CURL_INLINE inline /* 'inline' defined, assumed correct */
+
#if defined(inline)
+
  /* 'inline' is defined as macro and assumed to be correct */
+
  /* No need for 'inline' replacement */
#elif defined(__cplusplus)
-
/* The code is compiled with C++ compiler.
-
   C++ always supports 'inline'. */
-
#  define CURL_INLINE inline /* 'inline' keyword supported */
+
  /* The code is compiled with C++ compiler.
+
     C++ always supports 'inline'. */
+
  /* No need for 'inline' replacement */
#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901
-
/* C99 (and later) supports 'inline' keyword */
-
#  define CURL_INLINE inline /* 'inline' keyword supported */
+
  /* C99 (and later) supports 'inline' keyword */
+
  /* No need for 'inline' replacement */
#elif defined(__GNUC__) && __GNUC__ >= 3
-
/* GCC supports '__inline__' as an extension */
-
#  define CURL_INLINE __inline__
-
#elif defined(_MSC_VER)
-
#  define CURL_INLINE __inline
+
  /* GCC supports '__inline__' as an extension */
+
#  define inline __inline__
+
#elif defined(_MSC_VER) && _MSC_VER >= 1400
+
  /* MSC supports '__inline' from VS 2005 (or even earlier) */
+
#  define inline __inline
#else
-
/* Probably 'inline' is not supported by compiler.
-
   Define to the empty string to be on the safe side. */
-
#  define CURL_INLINE /* empty */
+
  /* Probably 'inline' is not supported by compiler.
+
     Define to the empty string to be on the safe side. */
+
#  define inline /* empty */
#endif

#endif /* HEADER_CURL_SETUP_H */
modified external/curl/lib/curl_setup_once.h
@@ -24,6 +24,7 @@
 *
 ***************************************************************************/

+

/*
 * Inclusion of common header files.
 */
@@ -39,6 +40,14 @@
#include <sys/types.h>
#endif

+
#ifdef NEED_MALLOC_H
+
#include <malloc.h>
+
#endif
+

+
#ifdef NEED_MEMORY_H
+
#include <memory.h>
+
#endif
+

#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
@@ -47,11 +56,8 @@
#include <sys/time.h>
#endif

-
#ifdef HAVE_IO_H
+
#ifdef _WIN32
#include <io.h>
-
#endif
-

-
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif

@@ -105,8 +111,8 @@

#ifndef HAVE_STRUCT_TIMEVAL
struct timeval {
-
  long tv_sec;
-
  long tv_usec;
+
 long tv_sec;
+
 long tv_usec;
};
#endif

@@ -189,7 +195,7 @@ struct timeval {
#  define sclose(x)  closesocket((x))
#elif defined(HAVE_CLOSESOCKET_CAMEL)
#  define sclose(x)  CloseSocket((x))
-
#elif defined(MSDOS)  /* Watt-32 */
+
#elif defined(HAVE_CLOSE_S)
#  define sclose(x)  close_s((x))
#elif defined(USE_LWIPSOCK)
#  define sclose(x)  lwip_close((x))
@@ -227,8 +233,8 @@ struct timeval {

#ifndef HAVE_BOOL_T
  typedef enum {
-
    bool_false = 0,
-
    bool_true  = 1
+
      bool_false = 0,
+
      bool_true  = 1
  } bool;

/*
@@ -391,7 +397,7 @@ typedef unsigned int bit;
#ifdef __VMS
#define argv_item_t  __char_ptr32
#elif defined(_UNICODE)
-
#define argv_item_t  wchar_t *
+
#define argv_item_t wchar_t *
#else
#define argv_item_t  char *
#endif
modified external/curl/lib/curl_sha256.h
@@ -26,7 +26,7 @@
 ***************************************************************************/

#if !defined(CURL_DISABLE_AWS) || !defined(CURL_DISABLE_DIGEST_AUTH) \
-
    || defined(USE_LIBSSH2) || defined(USE_SSL)
+
    || defined(USE_LIBSSH2)

#include <curl/curl.h>
#include "curl_hmac.h"
modified external/curl/lib/curl_sha512_256.c
@@ -283,26 +283,28 @@ Curl_sha512_256_finish(unsigned char *digest,
#ifdef __GNUC__
#  if defined(__has_attribute) && defined(__STDC_VERSION__)
#    if __has_attribute(always_inline) && __STDC_VERSION__ >= 199901
-
#      define CURL_FORCEINLINE CURL_INLINE __attribute__((always_inline))
+
#      define MHDX_INLINE inline __attribute__((always_inline))
#    endif
#  endif
#endif

-
#if !defined(CURL_FORCEINLINE) && \
+
#if !defined(MHDX_INLINE) && \
  defined(_MSC_VER) && !defined(__GNUC__) && !defined(__clang__)
-
#  define CURL_FORCEINLINE __forceinline
+
#  if _MSC_VER >= 1400
+
#    define MHDX_INLINE __forceinline
+
#  endif
#endif

-
#if !defined(CURL_FORCEINLINE)
-
   /* Assume that 'CURL_INLINE' keyword works or the
+
#if !defined(MHDX_INLINE)
+
   /* Assume that 'inline' keyword works or the
    * macro was already defined correctly. */
-
#  define CURL_FORCEINLINE CURL_INLINE
+
#  define MHDX_INLINE inline
#endif

/* Bits manipulation macros and functions.
   Can be moved to other headers to reuse. */

-
#define CURL_GET_64BIT_BE(ptr)                                  \
+
#define MHDX_GET_64BIT_BE(ptr)                                  \
  ( ((curl_uint64_t)(((const unsigned char*)(ptr))[0]) << 56) | \
    ((curl_uint64_t)(((const unsigned char*)(ptr))[1]) << 48) | \
    ((curl_uint64_t)(((const unsigned char*)(ptr))[2]) << 40) | \
@@ -312,7 +314,7 @@ Curl_sha512_256_finish(unsigned char *digest,
    ((curl_uint64_t)(((const unsigned char*)(ptr))[6]) << 8)  | \
    (curl_uint64_t)(((const unsigned char*)(ptr))[7]) )

-
#define CURL_PUT_64BIT_BE(ptr,val) do {                                 \
+
#define MHDX_PUT_64BIT_BE(ptr,val) do {                                 \
    ((unsigned char*)(ptr))[7]=(unsigned char)((curl_uint64_t)(val));   \
    ((unsigned char*)(ptr))[6]=(unsigned char)(((curl_uint64_t)(val)) >> 8); \
    ((unsigned char*)(ptr))[5]=(unsigned char)(((curl_uint64_t)(val)) >> 16); \
@@ -326,8 +328,8 @@ Curl_sha512_256_finish(unsigned char *digest,
/* Defined as a function. The macro version may duplicate the binary code
 * size as each argument is used twice, so if any calculation is used
 * as an argument, the calculation could be done twice. */
-
static CURL_FORCEINLINE curl_uint64_t
-
Curl_rotr64(curl_uint64_t value, unsigned int bits)
+
static MHDX_INLINE curl_uint64_t
+
MHDx_rotr64(curl_uint64_t value, unsigned int bits)
{
  bits %= 64;
  if(0 == bits)
@@ -386,7 +388,7 @@ Curl_rotr64(curl_uint64_t value, unsigned int bits)
/**
 * SHA-512/256 calculation context
 */
-
struct Curl_sha512_256ctx
+
struct mhdx_sha512_256ctx
{
  /**
   * Intermediate hash value. The variable is properly aligned. Smart
@@ -414,7 +416,7 @@ struct Curl_sha512_256ctx
/**
 * Context type used for SHA-512/256 calculations
 */
-
typedef struct Curl_sha512_256ctx Curl_sha512_256_ctx;
+
typedef struct mhdx_sha512_256ctx Curl_sha512_256_ctx;


/**
@@ -424,9 +426,9 @@ typedef struct Curl_sha512_256ctx Curl_sha512_256_ctx;
 * @return always CURLE_OK
 */
static CURLcode
-
Curl_sha512_256_init(void *context)
+
MHDx_sha512_256_init(void *context)
{
-
  struct Curl_sha512_256ctx *const ctx = (struct Curl_sha512_256ctx *)context;
+
  struct mhdx_sha512_256ctx *const ctx = (struct mhdx_sha512_256ctx *) context;

  /* Check whether the header and this file use the same numbers */
  DEBUGASSERT(CURL_SHA512_256_DIGEST_LENGTH == CURL_SHA512_256_DIGEST_SIZE);
@@ -460,7 +462,7 @@ Curl_sha512_256_init(void *context)
 * @param data  the data buffer with #CURL_SHA512_256_BLOCK_SIZE bytes block
 */
static void
-
Curl_sha512_256_transform(curl_uint64_t H[SHA512_256_HASH_SIZE_WORDS],
+
MHDx_sha512_256_transform(curl_uint64_t H[SHA512_256_HASH_SIZE_WORDS],
                          const void *data)
{
  /* Working variables,
@@ -486,13 +488,13 @@ Curl_sha512_256_transform(curl_uint64_t H[SHA512_256_HASH_SIZE_WORDS],
  /* Four 'Sigma' macro functions.
     See FIPS PUB 180-4 formulae 4.10, 4.11, 4.12, 4.13. */
#define SIG0(x)                                                         \
-
  ( Curl_rotr64((x), 28) ^ Curl_rotr64((x), 34) ^ Curl_rotr64((x), 39) )
+
  ( MHDx_rotr64((x), 28) ^ MHDx_rotr64((x), 34) ^ MHDx_rotr64((x), 39) )
#define SIG1(x)                                                         \
-
  ( Curl_rotr64((x), 14) ^ Curl_rotr64((x), 18) ^ Curl_rotr64((x), 41) )
+
  ( MHDx_rotr64((x), 14) ^ MHDx_rotr64((x), 18) ^ MHDx_rotr64((x), 41) )
#define sig0(x)                                                 \
-
  ( Curl_rotr64((x), 1) ^ Curl_rotr64((x), 8) ^ ((x) >> 7) )
+
  ( MHDx_rotr64((x), 1) ^ MHDx_rotr64((x), 8) ^ ((x) >> 7) )
#define sig1(x)                                                 \
-
  ( Curl_rotr64((x), 19) ^ Curl_rotr64((x), 61) ^ ((x) >> 6) )
+
  ( MHDx_rotr64((x), 19) ^ MHDx_rotr64((x), 61) ^ ((x) >> 6) )

  if(1) {
    unsigned int t;
@@ -575,7 +577,7 @@ Curl_sha512_256_transform(curl_uint64_t H[SHA512_256_HASH_SIZE_WORDS],
       Input data must be read in big-endian bytes order,
       see FIPS PUB 180-4 section 3.1.2. */
#define SHA512_GET_W_FROM_DATA(buf,t)                                   \
-
    CURL_GET_64BIT_BE(                                                  \
+
    MHDX_GET_64BIT_BE(                                                  \
      ((const unsigned char*) (buf)) + (t) * SHA512_256_BYTES_IN_WORD)

    /* During first 16 steps, before making any calculation on each step, the
@@ -626,12 +628,12 @@ Curl_sha512_256_transform(curl_uint64_t H[SHA512_256_HASH_SIZE_WORDS],
 * @return always CURLE_OK
 */
static CURLcode
-
Curl_sha512_256_update(void *context,
+
MHDx_sha512_256_update(void *context,
                       const unsigned char *data,
                       size_t length)
{
  unsigned int bytes_have; /**< Number of bytes in the context buffer */
-
  struct Curl_sha512_256ctx *const ctx = (struct Curl_sha512_256ctx *)context;
+
  struct mhdx_sha512_256ctx *const ctx = (struct mhdx_sha512_256ctx *)context;
  /* the void pointer here is required to mute Intel compiler warning */
  void *const ctx_buf = ctx->buffer;

@@ -659,7 +661,7 @@ Curl_sha512_256_update(void *context,
             bytes_left);
      data += bytes_left;
      length -= bytes_left;
-
      Curl_sha512_256_transform(ctx->H, ctx->buffer);
+
      MHDx_sha512_256_transform(ctx->H, ctx->buffer);
      bytes_have = 0;
    }
  }
@@ -667,7 +669,7 @@ Curl_sha512_256_update(void *context,
  while(CURL_SHA512_256_BLOCK_SIZE <= length) {
    /* Process any full blocks of new data directly,
       without copying to the buffer. */
-
    Curl_sha512_256_transform(ctx->H, data);
+
    MHDx_sha512_256_transform(ctx->H, data);
    data += CURL_SHA512_256_BLOCK_SIZE;
    length -= CURL_SHA512_256_BLOCK_SIZE;
  }
@@ -703,10 +705,10 @@ Curl_sha512_256_update(void *context,
 * @return always CURLE_OK
 */
static CURLcode
-
Curl_sha512_256_finish(unsigned char *digest,
+
MHDx_sha512_256_finish(unsigned char *digest,
                       void *context)
{
-
  struct Curl_sha512_256ctx *const ctx = (struct Curl_sha512_256ctx *)context;
+
  struct mhdx_sha512_256ctx *const ctx = (struct mhdx_sha512_256ctx *)context;
  curl_uint64_t num_bits;   /**< Number of processed bits */
  unsigned int bytes_have; /**< Number of bytes in the context buffer */
  /* the void pointer here is required to mute Intel compiler warning */
@@ -740,7 +742,7 @@ Curl_sha512_256_finish(unsigned char *digest,
      memset(((unsigned char *) ctx_buf) + bytes_have, 0,
             CURL_SHA512_256_BLOCK_SIZE - bytes_have);
    /* Process the full block. */
-
    Curl_sha512_256_transform(ctx->H, ctx->buffer);
+
    MHDx_sha512_256_transform(ctx->H, ctx->buffer);
    /* Start the new block. */
    bytes_have = 0;
  }
@@ -752,32 +754,37 @@ Curl_sha512_256_finish(unsigned char *digest,
     part of number of bits as big-endian values.
     See FIPS PUB 180-4 section 5.1.2. */
  /* Note: the target location is predefined and buffer is always aligned */
-
  CURL_PUT_64BIT_BE(((unsigned char *) ctx_buf)  \
+
  MHDX_PUT_64BIT_BE(((unsigned char *) ctx_buf)  \
                      + CURL_SHA512_256_BLOCK_SIZE    \
                      - SHA512_256_SIZE_OF_LEN_ADD,   \
                      ctx->count_bits_hi);
-
  CURL_PUT_64BIT_BE(((unsigned char *) ctx_buf)      \
+
  MHDX_PUT_64BIT_BE(((unsigned char *) ctx_buf)      \
                      + CURL_SHA512_256_BLOCK_SIZE        \
                      - SHA512_256_SIZE_OF_LEN_ADD        \
                      + SHA512_256_BYTES_IN_WORD,         \
                      num_bits);
  /* Process the full final block. */
-
  Curl_sha512_256_transform(ctx->H, ctx->buffer);
+
  MHDx_sha512_256_transform(ctx->H, ctx->buffer);

  /* Put in BE mode the leftmost part of the hash as the final digest.
     See FIPS PUB 180-4 section 6.7. */

-
  CURL_PUT_64BIT_BE((digest + 0 * SHA512_256_BYTES_IN_WORD), ctx->H[0]);
-
  CURL_PUT_64BIT_BE((digest + 1 * SHA512_256_BYTES_IN_WORD), ctx->H[1]);
-
  CURL_PUT_64BIT_BE((digest + 2 * SHA512_256_BYTES_IN_WORD), ctx->H[2]);
-
  CURL_PUT_64BIT_BE((digest + 3 * SHA512_256_BYTES_IN_WORD), ctx->H[3]);
+
  MHDX_PUT_64BIT_BE((digest + 0 * SHA512_256_BYTES_IN_WORD), ctx->H[0]);
+
  MHDX_PUT_64BIT_BE((digest + 1 * SHA512_256_BYTES_IN_WORD), ctx->H[1]);
+
  MHDX_PUT_64BIT_BE((digest + 2 * SHA512_256_BYTES_IN_WORD), ctx->H[2]);
+
  MHDX_PUT_64BIT_BE((digest + 3 * SHA512_256_BYTES_IN_WORD), ctx->H[3]);

  /* Erase potentially sensitive data. */
-
  memset(ctx, 0, sizeof(struct Curl_sha512_256ctx));
+
  memset(ctx, 0, sizeof(struct mhdx_sha512_256ctx));

  return CURLE_OK;
}

+
/* Map to the local implementation */
+
#define Curl_sha512_256_init    MHDx_sha512_256_init
+
#define Curl_sha512_256_update  MHDx_sha512_256_update
+
#define Curl_sha512_256_finish  MHDx_sha512_256_finish
+

#endif /* Local SHA-512/256 code */


modified external/curl/lib/curl_sspi.h
@@ -81,27 +81,27 @@ extern PSecurityFunctionTable Curl_pSecFn;
#endif

#ifndef SEC_I_SIGNATURE_NEEDED
-
#define SEC_I_SIGNATURE_NEEDED                ((HRESULT)0x0009035CL)
+
# define SEC_I_SIGNATURE_NEEDED               ((HRESULT)0x0009035CL)
#endif

#ifndef CRYPT_E_REVOKED
-
#define CRYPT_E_REVOKED                       ((HRESULT)0x80092010L)
+
# define CRYPT_E_REVOKED                      ((HRESULT)0x80092010L)
#endif

#ifndef CRYPT_E_NO_REVOCATION_DLL
-
#define CRYPT_E_NO_REVOCATION_DLL             ((HRESULT)0x80092011L)
+
# define CRYPT_E_NO_REVOCATION_DLL            ((HRESULT)0x80092011L)
#endif

#ifndef CRYPT_E_NO_REVOCATION_CHECK
-
#define CRYPT_E_NO_REVOCATION_CHECK           ((HRESULT)0x80092012L)
+
# define CRYPT_E_NO_REVOCATION_CHECK          ((HRESULT)0x80092012L)
#endif

#ifndef CRYPT_E_REVOCATION_OFFLINE
-
#define CRYPT_E_REVOCATION_OFFLINE            ((HRESULT)0x80092013L)
+
# define CRYPT_E_REVOCATION_OFFLINE           ((HRESULT)0x80092013L)
#endif

#ifndef CRYPT_E_NOT_IN_REVOCATION_DATABASE
-
#define CRYPT_E_NOT_IN_REVOCATION_DATABASE    ((HRESULT)0x80092014L)
+
# define CRYPT_E_NOT_IN_REVOCATION_DATABASE   ((HRESULT)0x80092014L)
#endif

#ifdef UNICODE
modified external/curl/lib/curl_trc.c
@@ -239,24 +239,6 @@ void Curl_trc_smtp(struct Curl_easy *data, const char *fmt, ...)
}
#endif /* !CURL_DISABLE_SMTP */

-
#ifdef USE_SSL
-
struct curl_trc_feat Curl_trc_feat_ssls = {
-
  "SSLS",
-
  CURL_LOG_LVL_NONE,
-
};
-

-
void Curl_trc_ssls(struct Curl_easy *data, const char *fmt, ...)
-
{
-
  DEBUGASSERT(!strchr(fmt, '\n'));
-
  if(Curl_trc_ft_is_verbose(data, &Curl_trc_feat_ssls)) {
-
    va_list ap;
-
    va_start(ap, fmt);
-
    trc_infof(data, &Curl_trc_feat_ssls, fmt, ap);
-
    va_end(ap);
-
  }
-
}
-
#endif /* USE_SSL */
-

#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(CURL_DISABLE_HTTP)
struct curl_trc_feat Curl_trc_feat_ws = {
  "WS",
@@ -297,9 +279,6 @@ static struct trc_feat_def trc_feats[] = {
#ifndef CURL_DISABLE_SMTP
  { &Curl_trc_feat_smtp,      TRC_CT_PROTOCOL },
#endif
-
#ifdef USE_SSL
-
  { &Curl_trc_feat_ssls,      TRC_CT_NETWORK },
-
#endif
#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(CURL_DISABLE_HTTP)
  { &Curl_trc_feat_ws,        TRC_CT_PROTOCOL },
#endif
@@ -340,7 +319,7 @@ static struct trc_cft_def trc_cfts[] = {
#ifdef USE_HTTP3
  { &Curl_cft_http3,          TRC_CT_PROTOCOL },
#endif
-
#if !defined(CURL_DISABLE_HTTP)
+
#if !defined(CURL_DISABLE_HTTP) && !defined(USE_HYPER)
  { &Curl_cft_http_connect,   TRC_CT_PROTOCOL },
#endif
};
@@ -448,53 +427,4 @@ CURLcode Curl_trc_init(void)
  return CURLE_OK;
}

-
void Curl_infof(struct Curl_easy *data, const char *fmt, ...)
-
{
-
  (void)data; (void)fmt;
-
}
-

-
void Curl_trc_cf_infof(struct Curl_easy *data,
-
                       struct Curl_cfilter *cf,
-
                       const char *fmt, ...)
-
{
-
  (void)data; (void)cf; (void)fmt;
-
}
-

-
struct curl_trc_feat;
-

-
void Curl_trc_write(struct Curl_easy *data, const char *fmt, ...)
-
{
-
  (void)data; (void)fmt;
-
}
-

-
void Curl_trc_read(struct Curl_easy *data, const char *fmt, ...)
-
{
-
  (void)data; (void)fmt;
-
}
-

-
#ifndef CURL_DISABLE_FTP
-
void Curl_trc_ftp(struct Curl_easy *data, const char *fmt, ...)
-
{
-
  (void)data; (void)fmt;
-
}
-
#endif
-
#ifndef CURL_DISABLE_SMTP
-
void Curl_trc_smtp(struct Curl_easy *data, const char *fmt, ...)
-
{
-
  (void)data; (void)fmt;
-
}
-
#endif
-
#if !defined(CURL_DISABLE_WEBSOCKETS) || !defined(CURL_DISABLE_HTTP)
-
void Curl_trc_ws(struct Curl_easy *data, const char *fmt, ...)
-
{
-
  (void)data; (void)fmt;
-
}
-
#endif
-

-
void Curl_trc_ssls(struct Curl_easy *data, const char *fmt, ...)
-
{
-
  (void)data;
-
  (void)fmt;
-
}
-

#endif /* !defined(CURL_DISABLE_VERBOSE_STRINGS) */
modified external/curl/lib/curl_trc.h
@@ -70,45 +70,7 @@ void Curl_failf(struct Curl_easy *data,
#define CURL_HAVE_C99
#endif

-
/**
-
 * Output an informational message when transfer's verbose logging is enabled.
-
 */
-
void Curl_infof(struct Curl_easy *data,
-
                const char *fmt, ...) CURL_PRINTF(2, 3);
-

-
/**
-
 * Output an informational message when both transfer's verbose logging
-
 * and connection filters verbose logging are enabled.
-
 */
-
void Curl_trc_cf_infof(struct Curl_easy *data, struct Curl_cfilter *cf,
-
                       const char *fmt, ...) CURL_PRINTF(3, 4);
-
void Curl_trc_write(struct Curl_easy *data,
-
                    const char *fmt, ...) CURL_PRINTF(2, 3);
-
void Curl_trc_read(struct Curl_easy *data,
-
                   const char *fmt, ...) CURL_PRINTF(2, 3);
-

-
#ifndef CURL_DISABLE_FTP
-
extern struct curl_trc_feat Curl_trc_feat_ftp;
-
void Curl_trc_ftp(struct Curl_easy *data,
-
                  const char *fmt, ...) CURL_PRINTF(2, 3);
-
#endif
-
#ifndef CURL_DISABLE_SMTP
-
extern struct curl_trc_feat Curl_trc_feat_smtp;
-
void Curl_trc_smtp(struct Curl_easy *data,
-
                   const char *fmt, ...) CURL_PRINTF(2, 3);
-
#endif
-
#ifdef USE_SSL
-
extern struct curl_trc_feat Curl_trc_feat_ssls;
-
void Curl_trc_ssls(struct Curl_easy *data,
-
                   const char *fmt, ...) CURL_PRINTF(2, 3);
-
#endif
-
#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(CURL_DISABLE_HTTP)
-
extern struct curl_trc_feat Curl_trc_feat_ws;
-
void Curl_trc_ws(struct Curl_easy *data,
-
                 const char *fmt, ...) CURL_PRINTF(2, 3);
-
#endif
-

-
#if defined(CURL_HAVE_C99) && !defined(CURL_DISABLE_VERBOSE_STRINGS)
+
#ifdef CURL_HAVE_C99
#define infof(data, ...) \
  do { if(Curl_trc_is_verbose(data)) \
         Curl_infof(data, __VA_ARGS__); } while(0)
@@ -132,11 +94,6 @@ void Curl_trc_ws(struct Curl_easy *data,
  do { if(Curl_trc_ft_is_verbose(data, &Curl_trc_feat_smtp)) \
         Curl_trc_smtp(data, __VA_ARGS__); } while(0)
#endif /* !CURL_DISABLE_SMTP */
-
#ifdef USE_SSL
-
#define CURL_TRC_SSLS(data, ...) \
-
  do { if(Curl_trc_ft_is_verbose(data, &Curl_trc_feat_ssls)) \
-
         Curl_trc_ssls(data, __VA_ARGS__); } while(0)
-
#endif /* USE_SSL */
#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(CURL_DISABLE_HTTP)
#define CURL_TRC_WS(data, ...)                             \
  do { if(Curl_trc_ft_is_verbose(data, &Curl_trc_feat_ws)) \
@@ -156,9 +113,6 @@ void Curl_trc_ws(struct Curl_easy *data,
#ifndef CURL_DISABLE_SMTP
#define CURL_TRC_SMTP  Curl_trc_smtp
#endif
-
#ifdef USE_SSL
-
#define CURL_TRC_SSLS  Curl_trc_ssls
-
#endif
#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(CURL_DISABLE_HTTP)
#define CURL_TRC_WS    Curl_trc_ws
#endif
@@ -186,6 +140,40 @@ extern struct curl_trc_feat Curl_trc_feat_write;
            (Curl_trc_is_verbose(data) && \
             (ft)->log_level >= CURL_LOG_LVL_INFO)

+
/**
+
 * Output an informational message when transfer's verbose logging is enabled.
+
 */
+
void Curl_infof(struct Curl_easy *data,
+
                const char *fmt, ...) CURL_PRINTF(2, 3);
+

+
/**
+
 * Output an informational message when both transfer's verbose logging
+
 * and connection filters verbose logging are enabled.
+
 */
+
void Curl_trc_cf_infof(struct Curl_easy *data, struct Curl_cfilter *cf,
+
                       const char *fmt, ...) CURL_PRINTF(3, 4);
+
void Curl_trc_write(struct Curl_easy *data,
+
                    const char *fmt, ...) CURL_PRINTF(2, 3);
+
void Curl_trc_read(struct Curl_easy *data,
+
                   const char *fmt, ...) CURL_PRINTF(2, 3);
+

+
#ifndef CURL_DISABLE_FTP
+
extern struct curl_trc_feat Curl_trc_feat_ftp;
+
void Curl_trc_ftp(struct Curl_easy *data,
+
                  const char *fmt, ...) CURL_PRINTF(2, 3);
+
#endif
+
#ifndef CURL_DISABLE_SMTP
+
extern struct curl_trc_feat Curl_trc_feat_smtp;
+
void Curl_trc_smtp(struct Curl_easy *data,
+
                   const char *fmt, ...) CURL_PRINTF(2, 3);
+
#endif
+
#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(CURL_DISABLE_HTTP)
+
extern struct curl_trc_feat Curl_trc_feat_ws;
+
void Curl_trc_ws(struct Curl_easy *data,
+
                 const char *fmt, ...) CURL_PRINTF(2, 3);
+
#endif
+

+

#else /* defined(CURL_DISABLE_VERBOSE_STRINGS) */
/* All informational messages are not compiled in for size savings */

@@ -193,6 +181,49 @@ extern struct curl_trc_feat Curl_trc_feat_write;
#define Curl_trc_cf_is_verbose(x,y)   (FALSE)
#define Curl_trc_ft_is_verbose(x,y)   (FALSE)

+
static void Curl_infof(struct Curl_easy *data, const char *fmt, ...)
+
{
+
  (void)data; (void)fmt;
+
}
+

+
static void Curl_trc_cf_infof(struct Curl_easy *data,
+
                              struct Curl_cfilter *cf,
+
                              const char *fmt, ...)
+
{
+
  (void)data; (void)cf; (void)fmt;
+
}
+

+
struct curl_trc_feat;
+

+
static void Curl_trc_write(struct Curl_easy *data, const char *fmt, ...)
+
{
+
  (void)data; (void)fmt;
+
}
+

+
static void Curl_trc_read(struct Curl_easy *data, const char *fmt, ...)
+
{
+
  (void)data; (void)fmt;
+
}
+

+
#ifndef CURL_DISABLE_FTP
+
static void Curl_trc_ftp(struct Curl_easy *data, const char *fmt, ...)
+
{
+
  (void)data; (void)fmt;
+
}
+
#endif
+
#ifndef CURL_DISABLE_SMTP
+
static void Curl_trc_smtp(struct Curl_easy *data, const char *fmt, ...)
+
{
+
  (void)data; (void)fmt;
+
}
+
#endif
+
#if !defined(CURL_DISABLE_WEBSOCKETS) || !defined(CURL_DISABLE_HTTP)
+
static void Curl_trc_ws(struct Curl_easy *data, const char *fmt, ...)
+
{
+
  (void)data; (void)fmt;
+
}
+
#endif
+

#endif /* !defined(CURL_DISABLE_VERBOSE_STRINGS) */

#endif /* HEADER_CURL_TRC_H */
modified external/curl/lib/dict.c
@@ -93,7 +93,6 @@ const struct Curl_handler Curl_handler_dict = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_DICT,                            /* defport */
  CURLPROTO_DICT,                       /* protocol */
  CURLPROTO_DICT,                       /* family */
modified external/curl/lib/doh.c
@@ -410,6 +410,12 @@ struct Curl_addrinfo *Curl_doh(struct Curl_easy *data,
  struct doh_probes *dohp;
  struct connectdata *conn = data->conn;
  size_t i;
+
#ifdef USE_HTTPSRR
+
  /* for now, this is only used when ECH is enabled */
+
# ifdef USE_ECH
+
  char *qname = NULL;
+
# endif
+
#endif
  *waitp = FALSE;
  (void)hostname;
  (void)port;
@@ -456,23 +462,34 @@ struct Curl_addrinfo *Curl_doh(struct Curl_easy *data,
#endif

#ifdef USE_HTTPSRR
-
  if(conn->handler->protocol & PROTO_FAMILY_HTTP) {
-
    /* Only use HTTPS RR for HTTP(S) transfers */
-
    char *qname = NULL;
-
    if(port != PORT_HTTPS) {
+
  /*
+
   * TODO: Figure out the conditions under which we want to make
+
   * a request for an HTTPS RR when we are not doing ECH. For now,
+
   * making this request breaks a bunch of DoH tests, e.g. test2100,
+
   * where the additional request does not match the pre-cooked data
+
   * files, so there is a bit of work attached to making the request
+
   * in a non-ECH use-case. For the present, we will only make the
+
   * request when ECH is enabled in the build and is being used for
+
   * the curl operation.
+
   */
+
# ifdef USE_ECH
+
  if(data->set.tls_ech & CURLECH_ENABLE
+
     || data->set.tls_ech & CURLECH_HARD) {
+
    if(port == 443)
+
      qname = strdup(hostname);
+
    else
      qname = aprintf("_%d._https.%s", port, hostname);
-
      if(!qname)
-
        goto error;
-
    }
+
    if(!qname)
+
      goto error;
    result = doh_run_probe(data, &dohp->probe[DOH_SLOT_HTTPS_RR],
-
                           DNS_TYPE_HTTPS,
-
                           qname ? qname : hostname, data->set.str[STRING_DOH],
+
                           DNS_TYPE_HTTPS, qname, data->set.str[STRING_DOH],
                           data->multi, dohp->req_hds);
-
    free(qname);
+
    Curl_safefree(qname);
    if(result)
      goto error;
    dohp->pending++;
  }
+
# endif
#endif
  *waitp = TRUE; /* this never returns synchronously */
  return NULL;
@@ -944,7 +961,11 @@ static CURLcode doh2ai(const struct dohentry *de, const char *hostname,
      addr = (void *)ai->ai_addr; /* storage area for this info */
      DEBUGASSERT(sizeof(struct in_addr) == sizeof(de->addr[i].ip.v4));
      memcpy(&addr->sin_addr, &de->addr[i].ip.v4, sizeof(struct in_addr));
-
      addr->sin_family = (CURL_SA_FAMILY_T)addrtype;
+
#ifdef __MINGW32__
+
      addr->sin_family = (short)addrtype;
+
#else
+
      addr->sin_family = addrtype;
+
#endif
      addr->sin_port = htons((unsigned short)port);
      break;

@@ -953,7 +974,11 @@ static CURLcode doh2ai(const struct dohentry *de, const char *hostname,
      addr6 = (void *)ai->ai_addr; /* storage area for this info */
      DEBUGASSERT(sizeof(struct in6_addr) == sizeof(de->addr[i].ip.v6));
      memcpy(&addr6->sin6_addr, &de->addr[i].ip.v6, sizeof(struct in6_addr));
-
      addr6->sin6_family = (CURL_SA_FAMILY_T)addrtype;
+
#ifdef __MINGW32__
+
      addr6->sin6_family = (short)addrtype;
+
#else
+
      addr6->sin6_family = addrtype;
+
#endif
      addr6->sin6_port = htons((unsigned short)port);
      break;
#endif
@@ -1064,6 +1089,62 @@ static CURLcode doh_decode_rdata_name(unsigned char **buf, size_t *remaining,
  return CURLE_OK;
}

+
static CURLcode doh_decode_rdata_alpn(unsigned char *rrval, size_t len,
+
                                      char **alpns)
+
{
+
  /*
+
   * spec here is as per draft-ietf-dnsop-svcb-https, section-7.1.1
+
   * encoding is catenated list of strings each preceded by a one
+
   * octet length
+
   * output is comma-sep list of the strings
+
   * implementations may or may not handle quoting of comma within
+
   * string values, so we might see a comma within the wire format
+
   * version of a string, in which case we will precede that by a
+
   * backslash - same goes for a backslash character, and of course
+
   * we need to use two backslashes in strings when we mean one;-)
+
   */
+
  int remaining = (int) len;
+
  char *oval;
+
  size_t i;
+
  unsigned char *cp = rrval;
+
  struct dynbuf dval;
+

+
  if(!alpns)
+
    return CURLE_OUT_OF_MEMORY;
+
  Curl_dyn_init(&dval, DYN_DOH_RESPONSE);
+
  remaining = (int)len;
+
  cp = rrval;
+
  while(remaining > 0) {
+
    size_t tlen = (size_t) *cp++;
+

+
    /* if not 1st time, add comma */
+
    if(remaining != (int)len && Curl_dyn_addn(&dval, ",", 1))
+
      goto err;
+
    remaining--;
+
    if(tlen > (size_t)remaining)
+
      goto err;
+
    /* add escape char if needed, clunky but easier to read */
+
    for(i = 0; i != tlen; i++) {
+
      if('\\' == *cp || ',' == *cp) {
+
        if(Curl_dyn_addn(&dval, "\\", 1))
+
          goto err;
+
      }
+
      if(Curl_dyn_addn(&dval, cp++, 1))
+
        goto err;
+
    }
+
    remaining -= (int)tlen;
+
  }
+
  /* this string is always null terminated */
+
  oval = Curl_dyn_ptr(&dval);
+
  if(!oval)
+
    goto err;
+
  *alpns = oval;
+
  return CURLE_OK;
+
err:
+
  Curl_dyn_free(&dval);
+
  return CURLE_BAD_CONTENT_ENCODING;
+
}
+

#ifdef DEBUGBUILD
static CURLcode doh_test_alpn_escapes(void)
{
@@ -1075,20 +1156,24 @@ static CURLcode doh_test_alpn_escapes(void)
    0x68, 0x32                                      /* value "h2" */
  };
  size_t example_len = sizeof(example);
-
  unsigned char aval[MAX_HTTPSRR_ALPNS] = { 0 };
-
  static const char expected[2] = { ALPN_h2, ALPN_none };
+
  char *aval = NULL;
+
  static const char *expected = "f\\\\oo\\,bar,h2";

-
  if(Curl_httpsrr_decode_alpn(example, example_len, aval) != CURLE_OK)
+
  if(doh_decode_rdata_alpn(example, example_len, &aval) != CURLE_OK)
    return CURLE_BAD_CONTENT_ENCODING;
-
  if(memcmp(aval, expected, sizeof(expected)))
+
  if(strlen(aval) != strlen(expected))
+
    return CURLE_BAD_CONTENT_ENCODING;
+
  if(memcmp(aval, expected, strlen(aval)))
    return CURLE_BAD_CONTENT_ENCODING;
  return CURLE_OK;
}
#endif

-
static CURLcode doh_resp_decode_httpsrr(unsigned char *cp, size_t len,
+
static CURLcode doh_resp_decode_httpsrr(unsigned char *rrval, size_t len,
                                        struct Curl_https_rrinfo **hrr)
{
+
  size_t remaining = len;
+
  unsigned char *cp = rrval;
  uint16_t pcode = 0, plen = 0;
  struct Curl_https_rrinfo *lhrr = NULL;
  char *dnsname = NULL;
@@ -1098,73 +1183,73 @@ static CURLcode doh_resp_decode_httpsrr(unsigned char *cp, size_t len,
  if(doh_test_alpn_escapes() != CURLE_OK)
    return CURLE_OUT_OF_MEMORY;
#endif
-
  if(len <= 2)
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
  lhrr = calloc(1, sizeof(struct Curl_https_rrinfo));
  if(!lhrr)
    return CURLE_OUT_OF_MEMORY;
-
  lhrr->priority = doh_get16bit(cp, 0);
+
  lhrr->val = Curl_memdup(rrval, len);
+
  if(!lhrr->val)
+
    goto err;
+
  lhrr->len = len;
+
  if(remaining <= 2)
+
    goto err;
+
  lhrr->priority = (uint16_t)((cp[0] << 8) + cp[1]);
  cp += 2;
-
  len -= 2;
-
  if(doh_decode_rdata_name(&cp, &len, &dnsname) != CURLE_OK)
+
  remaining -= (uint16_t)2;
+
  if(doh_decode_rdata_name(&cp, &remaining, &dnsname) != CURLE_OK)
    goto err;
  lhrr->target = dnsname;
-
  lhrr->port = -1; /* until set */
-
  while(len >= 4) {
-
    pcode = doh_get16bit(cp, 0);
-
    plen = doh_get16bit(cp, 2);
-
    cp += 4;
-
    len -= 4;
-
    switch(pcode) {
-
    case HTTPS_RR_CODE_ALPN:
-
      if(Curl_httpsrr_decode_alpn(cp, plen, lhrr->alpns) != CURLE_OK)
+
  while(remaining >= 4) {
+
    pcode = (uint16_t)((*cp << 8) + (*(cp + 1)));
+
    cp += 2;
+
    plen = (uint16_t)((*cp << 8) + (*(cp + 1)));
+
    cp += 2;
+
    remaining -= 4;
+
    if(pcode == HTTPS_RR_CODE_ALPN) {
+
      if(doh_decode_rdata_alpn(cp, plen, &lhrr->alpns) != CURLE_OK)
        goto err;
-
      break;
-
    case HTTPS_RR_CODE_NO_DEF_ALPN:
+
    }
+
    if(pcode == HTTPS_RR_CODE_NO_DEF_ALPN)
      lhrr->no_def_alpn = TRUE;
-
      break;
-
    case HTTPS_RR_CODE_IPV4:
+
    else if(pcode == HTTPS_RR_CODE_IPV4) {
      if(!plen)
        goto err;
      lhrr->ipv4hints = Curl_memdup(cp, plen);
      if(!lhrr->ipv4hints)
        goto err;
      lhrr->ipv4hints_len = (size_t)plen;
-
      break;
-
    case HTTPS_RR_CODE_ECH:
+
    }
+
    else if(pcode == HTTPS_RR_CODE_ECH) {
      if(!plen)
        goto err;
      lhrr->echconfiglist = Curl_memdup(cp, plen);
      if(!lhrr->echconfiglist)
        goto err;
      lhrr->echconfiglist_len = (size_t)plen;
-
      break;
-
    case HTTPS_RR_CODE_IPV6:
+
    }
+
    else if(pcode == HTTPS_RR_CODE_IPV6) {
      if(!plen)
        goto err;
      lhrr->ipv6hints = Curl_memdup(cp, plen);
      if(!lhrr->ipv6hints)
        goto err;
      lhrr->ipv6hints_len = (size_t)plen;
-
      break;
-
    case HTTPS_RR_CODE_PORT:
-
      lhrr->port = doh_get16bit(cp, 0);
-
      break;
-
    default:
-
      break;
    }
-
    if(plen > 0 && plen <= len) {
+
    if(plen > 0 && plen <= remaining) {
      cp += plen;
-
      len -= plen;
+
      remaining -= plen;
    }
  }
-
  DEBUGASSERT(!len);
+
  DEBUGASSERT(!remaining);
  *hrr = lhrr;
  return CURLE_OK;
err:
-
  Curl_safefree(lhrr->target);
-
  Curl_safefree(lhrr->echconfiglist);
-
  Curl_safefree(lhrr);
+
  if(lhrr) {
+
    Curl_safefree(lhrr->target);
+
    Curl_safefree(lhrr->echconfiglist);
+
    Curl_safefree(lhrr->val);
+
    Curl_safefree(lhrr->alpns);
+
    Curl_safefree(lhrr);
+
  }
  return CURLE_OUT_OF_MEMORY;
}

@@ -1175,9 +1260,8 @@ static void doh_print_httpsrr(struct Curl_easy *data,
  DEBUGASSERT(hrr);
  infof(data, "HTTPS RR: priority %d, target: %s",
        hrr->priority, hrr->target);
-
  if(hrr->alpns[0] != ALPN_none)
-
    infof(data, "HTTPS RR: alpns %u %u %u %u",
-
          hrr->alpns[0], hrr->alpns[1], hrr->alpns[2], hrr->alpns[3]);
+
  if(hrr->alpns)
+
    infof(data, "HTTPS RR: alpns %s", hrr->alpns);
  else
    infof(data, "HTTPS RR: no alpns");
  if(hrr->no_def_alpn)
modified external/curl/lib/doh.h
@@ -28,7 +28,6 @@
#include "curl_addrinfo.h"
#ifdef USE_HTTPSRR
# include <stdint.h>
-
# include "httpsrr.h"
#endif

#ifndef CURL_DISABLE_DOH
@@ -125,6 +124,19 @@ struct dohaddr {
#ifdef USE_HTTPSRR

/*
+
 * These are the code points for DNS wire format SvcParams as
+
 * per draft-ietf-dnsop-svcb-https
+
 * Not all are supported now, and even those that are may need
+
 * more work in future to fully support the spec.
+
 */
+
#define HTTPS_RR_CODE_ALPN            0x01
+
#define HTTPS_RR_CODE_NO_DEF_ALPN     0x02
+
#define HTTPS_RR_CODE_PORT            0x03
+
#define HTTPS_RR_CODE_IPV4            0x04
+
#define HTTPS_RR_CODE_ECH             0x05
+
#define HTTPS_RR_CODE_IPV6            0x06
+

+
/*
 * These may need escaping when found within an ALPN string
 * value.
 */
modified external/curl/lib/dynbuf.c
@@ -244,18 +244,6 @@ char *Curl_dyn_ptr(const struct dynbuf *s)
  return s->bufr;
}

-
char *Curl_dyn_take(struct dynbuf *s, size_t *plen)
-
{
-
  char *ptr = s->bufr;
-
  DEBUGASSERT(s);
-
  DEBUGASSERT(s->init == DYNINIT);
-
  *plen = s->leng;
-
  s->bufr = NULL;
-
  s->leng = 0;
-
  s->allc = 0;
-
  return ptr;
-
}
-

/*
 * Returns an unsigned pointer to the buffer.
 */
modified external/curl/lib/dynbuf.h
@@ -39,7 +39,6 @@
#define Curl_dyn_uptr(a) curlx_dyn_uptr(a)
#define Curl_dyn_len(a) curlx_dyn_len(a)
#define Curl_dyn_reset(a) curlx_dyn_reset(a)
-
#define Curl_dyn_take(a,b) curlx_dyn_take(a,b)
#define Curl_dyn_tail(a,b) curlx_dyn_tail(a,b)
#define Curl_dyn_setlen(a,b) curlx_dyn_setlen(a,b)
#define curlx_dynbuf dynbuf /* for the struct name */
@@ -76,10 +75,6 @@ size_t Curl_dyn_len(const struct dynbuf *s);
/* The implementation of this function exists in mprintf.c */
int Curl_dyn_vprintf(struct dynbuf *dyn, const char *format, va_list ap_save);

-
/* Take the buffer out of the dynbuf. Caller has ownership and
-
 * dynbuf resets to initial state. */
-
char *Curl_dyn_take(struct dynbuf *s, size_t *plen);
-

/* Dynamic buffer max sizes */
#define DYN_DOH_RESPONSE    3000
#define DYN_DOH_CNAME       256
modified external/curl/lib/easy.c
@@ -48,7 +48,6 @@
#include <curl/curl.h>
#include "transfer.h"
#include "vtls/vtls.h"
-
#include "vtls/vtls_scache.h"
#include "url.h"
#include "getinfo.h"
#include "hostip.h"
@@ -762,25 +761,12 @@ static CURLcode easy_perform(struct Curl_easy *data, bool events)
    return CURLE_FAILED_INIT;
  }

-
  /* if the handle has a connection still attached (it is/was a connect-only
-
     handle) then disconnect before performing */
-
  if(data->conn) {
-
    struct connectdata *c;
-
    curl_socket_t s;
-
    Curl_detach_connection(data);
-
    s = Curl_getconnectinfo(data, &c);
-
    if((s != CURL_SOCKET_BAD) && c) {
-
      Curl_cpool_disconnect(data, c, TRUE);
-
    }
-
    DEBUGASSERT(!data->conn);
-
  }
-

  if(data->multi_easy)
    multi = data->multi_easy;
  else {
-
    /* this multi handle will only ever have a single easy handle attached to
-
       it, so make it use minimal hash sizes */
-
    multi = Curl_multi_handle(1, 3, 7, 3);
+
    /* this multi handle will only ever have a single easy handled attached
+
       to it, so make it use minimal hashes */
+
    multi = Curl_multi_handle(1, 3, 7);
    if(!multi)
      return CURLE_OUT_OF_MEMORY;
  }
@@ -1350,41 +1336,3 @@ CURLcode curl_easy_upkeep(CURL *d)
  /* Use the common function to keep connections alive. */
  return Curl_cpool_upkeep(data);
}
-

-
CURLcode curl_easy_ssls_import(CURL *d, const char *session_key,
-
                               const unsigned char *shmac, size_t shmac_len,
-
                               const unsigned char *sdata, size_t sdata_len)
-
{
-
#ifdef USE_SSLS_EXPORT
-
  struct Curl_easy *data = d;
-
  if(!GOOD_EASY_HANDLE(data))
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
-
  return Curl_ssl_session_import(data, session_key,
-
                                 shmac, shmac_len, sdata, sdata_len);
-
#else
-
  (void)d;
-
  (void)session_key;
-
  (void)shmac;
-
  (void)shmac_len;
-
  (void)sdata;
-
  (void)sdata_len;
-
  return CURLE_NOT_BUILT_IN;
-
#endif
-
}
-

-
CURLcode curl_easy_ssls_export(CURL *d,
-
                               curl_ssls_export_cb *export_fn,
-
                               void *userptr)
-
{
-
#ifdef USE_SSLS_EXPORT
-
  struct Curl_easy *data = d;
-
  if(!GOOD_EASY_HANDLE(data))
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
-
  return Curl_ssl_session_export(data, export_fn, userptr);
-
#else
-
  (void)d;
-
  (void)export_fn;
-
  (void)userptr;
-
  return CURLE_NOT_BUILT_IN;
-
#endif
-
}
modified external/curl/lib/easy_lock.h
@@ -69,7 +69,7 @@

#endif

-
static CURL_INLINE void curl_simple_lock_lock(curl_simple_lock *lock)
+
static inline void curl_simple_lock_lock(curl_simple_lock *lock)
{
  for(;;) {
    if(!atomic_exchange_explicit(lock, true, memory_order_acquire))
@@ -81,8 +81,6 @@ static CURL_INLINE void curl_simple_lock_lock(curl_simple_lock *lock)
      __builtin_ia32_pause();
#elif defined(__aarch64__)
      __asm__ volatile("yield" ::: "memory");
-
#elif defined(_WIN32)
-
      Sleep(1);
#elif defined(HAVE_SCHED_YIELD)
      sched_yield();
#endif
@@ -90,7 +88,7 @@ static CURL_INLINE void curl_simple_lock_lock(curl_simple_lock *lock)
  }
}

-
static CURL_INLINE void curl_simple_lock_unlock(curl_simple_lock *lock)
+
static inline void curl_simple_lock_unlock(curl_simple_lock *lock)
{
  atomic_store_explicit(lock, false, memory_order_release);
}
modified external/curl/lib/easyoptions.c
@@ -377,6 +377,6 @@ struct curl_easyoption Curl_easyopts[] = {
 */
int Curl_easyopts_check(void)
{
-
  return (CURLOPT_LASTENTRY % 10000) != (326 + 1);
+
  return ((CURLOPT_LASTENTRY%10000) != (326 + 1));
}
#endif
modified external/curl/lib/file.c
@@ -78,12 +78,18 @@
#include "curl_memory.h"
#include "memdebug.h"

-
#if defined(_WIN32) || defined(MSDOS)
+
#if defined(_WIN32) || defined(MSDOS) || defined(__EMX__)
#define DOS_FILESYSTEM 1
#elif defined(__amigaos4__)
#define AMIGA_FILESYSTEM 1
#endif

+
#ifdef OPEN_NEEDS_ARG3
+
#  define open_readonly(p,f) open((p),(f),(0))
+
#else
+
#  define open_readonly(p,f) open((p),(f))
+
#endif
+

/*
 * Forward declarations.
 */
@@ -120,7 +126,6 @@ const struct Curl_handler Curl_handler_file = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  0,                                    /* defport */
  CURLPROTO_FILE,                       /* protocol */
  CURLPROTO_FILE,                       /* family */
@@ -204,7 +209,7 @@ static CURLcode file_connect(struct Curl_easy *data, bool *done)
      return CURLE_URL_MALFORMAT;
    }

-
  fd = open(actual_path, O_RDONLY|CURL_O_BINARY);
+
  fd = open_readonly(actual_path, O_RDONLY|O_BINARY);
  file->path = actual_path;
#else
  if(memchr(real_path, 0, real_path_len)) {
@@ -228,16 +233,16 @@ static CURLcode file_connect(struct Curl_easy *data, bool *done)
    extern int __unix_path_semantics;
    if(strchr(real_path + 1, ':')) {
      /* Amiga absolute path */
-
      fd = open(real_path + 1, O_RDONLY);
+
      fd = open_readonly(real_path + 1, O_RDONLY);
      file->path++;
    }
    else if(__unix_path_semantics) {
      /* -lunix fallback */
-
      fd = open(real_path, O_RDONLY);
+
      fd = open_readonly(real_path, O_RDONLY);
    }
  }
  #else
-
  fd = open(real_path, O_RDONLY);
+
  fd = open_readonly(real_path, O_RDONLY);
  file->path = real_path;
  #endif
#endif
@@ -313,18 +318,18 @@ static CURLcode file_upload(struct Curl_easy *data)
  if(!dir[1])
    return CURLE_FILE_COULDNT_READ_FILE; /* fix: better error code */

-
  mode = O_WRONLY|O_CREAT|CURL_O_BINARY;
+
#ifdef O_BINARY
+
#define MODE_DEFAULT O_WRONLY|O_CREAT|O_BINARY
+
#else
+
#define MODE_DEFAULT O_WRONLY|O_CREAT
+
#endif
+

  if(data->state.resume_from)
-
    mode |= O_APPEND;
+
    mode = MODE_DEFAULT|O_APPEND;
  else
-
    mode |= O_TRUNC;
+
    mode = MODE_DEFAULT|O_TRUNC;

-
#if (defined(ANDROID) || defined(__ANDROID__)) && \
-
    (defined(__i386__) || defined(__arm__))
-
  fd = open(file->path, mode, (mode_t)data->set.new_file_perms);
-
#else
  fd = open(file->path, mode, data->set.new_file_perms);
-
#endif
  if(fd < 0) {
    failf(data, "cannot open %s for writing", file->path);
    return CURLE_WRITE_ERROR;
@@ -548,13 +553,8 @@ static CURLcode file_do(struct Curl_easy *data, bool *done)

  if(data->state.resume_from) {
    if(!S_ISDIR(statbuf.st_mode)) {
-
#ifdef __AMIGA__
-
      if(data->state.resume_from !=
-
          lseek(fd, (off_t)data->state.resume_from, SEEK_SET))
-
#else
      if(data->state.resume_from !=
          lseek(fd, data->state.resume_from, SEEK_SET))
-
#endif
        return CURLE_BAD_DOWNLOAD_RESUME;
    }
    else {
modified external/curl/lib/fopen.c
@@ -53,7 +53,7 @@
#ifdef _WIN32
#define PATHSEP "\\"
#define IS_SEP(x) (((x) == '/') || ((x) == '\\'))
-
#elif defined(MSDOS) || defined(OS2)
+
#elif defined(MSDOS) || defined(__EMX__) || defined(OS2)
#define PATHSEP "\\"
#define IS_SEP(x) ((x) == '\\')
#else
modified external/curl/lib/ftp.c
@@ -250,7 +250,6 @@ const struct Curl_handler Curl_handler_ftp = {
  ZERO_NULL,                       /* write_resp_hd */
  ZERO_NULL,                       /* connection_check */
  ZERO_NULL,                       /* attach connection */
-
  ZERO_NULL,                       /* follow */
  PORT_FTP,                        /* defport */
  CURLPROTO_FTP,                   /* protocol */
  CURLPROTO_FTP,                   /* family */
@@ -283,7 +282,6 @@ const struct Curl_handler Curl_handler_ftps = {
  ZERO_NULL,                       /* write_resp_hd */
  ZERO_NULL,                       /* connection_check */
  ZERO_NULL,                       /* attach connection */
-
  ZERO_NULL,                       /* follow */
  PORT_FTPS,                       /* defport */
  CURLPROTO_FTPS,                  /* protocol */
  CURLPROTO_FTP,                   /* family */
@@ -2081,19 +2079,10 @@ static CURLcode ftp_state_mdtm_resp(struct Curl_easy *data,
      /* If we asked for a time of the file and we actually got one as well,
         we "emulate" an HTTP-style header in our output. */

-
#if defined(__GNUC__) && (defined(__DJGPP__) || defined(__AMIGA__))
-
#pragma GCC diagnostic push
-
/* 'time_t' is unsigned in MSDOS and AmigaOS. Silence:
-
   warning: comparison of unsigned expression in '>= 0' is always true */
-
#pragma GCC diagnostic ignored "-Wtype-limits"
-
#endif
      if(data->req.no_body &&
         ftpc->file &&
         data->set.get_filetime &&
         (data->info.filetime >= 0) ) {
-
#if defined(__GNUC__) && (defined(__DJGPP__) || defined(__AMIGA__))
-
#pragma GCC diagnostic pop
-
#endif
        char headerbuf[128];
        int headerbuflen;
        time_t filetime = data->info.filetime;
@@ -3165,7 +3154,7 @@ static CURLcode ftp_connect(struct Curl_easy *data,

  PINGPONG_SETUP(pp, ftp_statemachine, ftp_endofresp);

-
  if(Curl_conn_is_ssl(conn, FIRSTSOCKET)) {
+
  if(conn->handler->flags & PROTOPT_SSL) {
    /* BLOCKING */
    result = Curl_conn_connect(data, FIRSTSOCKET, TRUE, done);
    if(result)
@@ -4108,8 +4097,8 @@ static CURLcode ftp_disconnect(struct Curl_easy *data,
}

#ifdef _MSC_VER
-
#pragma warning(push)
-
#pragma warning(disable:4706) /* assignment within conditional expression */
+
/* warning C4706: assignment within conditional expression */
+
#pragma warning(disable:4706)
#endif

/***********************************************************************
@@ -4255,7 +4244,7 @@ CURLcode ftp_parse_url_path(struct Curl_easy *data)
      else
        n -= ftpc->file ? strlen(ftpc->file) : 0;

-
      if((strlen(oldPath) == n) && rawPath && !strncmp(rawPath, oldPath, n)) {
+
      if((strlen(oldPath) == n) && !strncmp(rawPath, oldPath, n)) {
        infof(data, "Request has same path as previous transfer");
        ftpc->cwddone = TRUE;
      }
@@ -4266,10 +4255,6 @@ CURLcode ftp_parse_url_path(struct Curl_easy *data)
  return CURLE_OK;
}

-
#ifdef _MSC_VER
-
#pragma warning(pop)
-
#endif
-

/* call this when the DO phase has completed */
static CURLcode ftp_dophase_done(struct Curl_easy *data, bool connected)
{
modified external/curl/lib/functypes.h
@@ -62,7 +62,6 @@

/* int send(int, const char *, int, int); */
#define SEND_TYPE_ARG1 int
-
#define SEND_QUAL_ARG2
#define SEND_TYPE_ARG2 char *
#define SEND_TYPE_ARG3 int
#define SEND_TYPE_RETV int
modified external/curl/lib/getinfo.c
@@ -69,8 +69,6 @@ CURLcode Curl_initinfo(struct Curl_easy *data)
  info->request_size = 0;
  info->proxyauthavail = 0;
  info->httpauthavail = 0;
-
  info->proxyauthpicked = 0;
-
  info->httpauthpicked = 0;
  info->numconnects = 0;

  free(info->contenttype);
@@ -240,10 +238,8 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
  case CURLINFO_FILETIME:
    if(data->info.filetime > LONG_MAX)
      *param_longp = LONG_MAX;
-
#if !defined(MSDOS) && !defined(__AMIGA__)
    else if(data->info.filetime < LONG_MIN)
      *param_longp = LONG_MIN;
-
#endif
    else
      *param_longp = (long)data->info.filetime;
    break;
@@ -274,14 +270,6 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
    lptr.to_long = param_longp;
    *lptr.to_ulong = data->info.proxyauthavail;
    break;
-
  case CURLINFO_HTTPAUTH_USED:
-
    lptr.to_long = param_longp;
-
    *lptr.to_ulong = data->info.httpauthpicked;
-
    break;
-
  case CURLINFO_PROXYAUTH_USED:
-
    lptr.to_long = param_longp;
-
    *lptr.to_ulong = data->info.proxyauthpicked;
-
    break;
  case CURLINFO_OS_ERRNO:
    *param_longp = data->state.os_errno;
    break;
@@ -389,7 +377,6 @@ static CURLcode getinfo_offt(struct Curl_easy *data, CURLINFO info,
    case CURLINFO_APPCONNECT_TIME_T:
    case CURLINFO_PRETRANSFER_TIME_T:
    case CURLINFO_POSTTRANSFER_TIME_T:
-
    case CURLINFO_QUEUE_TIME_T:
    case CURLINFO_STARTTRANSFER_TIME_T:
    case CURLINFO_REDIRECT_TIME_T:
    case CURLINFO_SPEED_DOWNLOAD_T:
modified external/curl/lib/gopher.c
@@ -79,7 +79,6 @@ const struct Curl_handler Curl_handler_gopher = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_GOPHER,                          /* defport */
  CURLPROTO_GOPHER,                     /* protocol */
  CURLPROTO_GOPHER,                     /* family */
@@ -105,7 +104,6 @@ const struct Curl_handler Curl_handler_gophers = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_GOPHER,                          /* defport */
  CURLPROTO_GOPHERS,                    /* protocol */
  CURLPROTO_GOPHER,                     /* family */
modified external/curl/lib/hash.c
@@ -42,8 +42,6 @@ hash_element_dtor(void *user, void *element)
{
  struct Curl_hash *h = (struct Curl_hash *) user;
  struct Curl_hash_element *e = (struct Curl_hash_element *) element;
-
  DEBUGASSERT(h);
-
  DEBUGASSERT(e);

  if(e->ptr) {
    if(e->dtor)
modified external/curl/lib/hmac.c
@@ -26,9 +26,8 @@

#include "curl_setup.h"

-
#if (defined(USE_CURL_NTLM_CORE) && !defined(USE_WINDOWS_SSPI)) ||      \
-
  !defined(CURL_DISABLE_AWS) || !defined(CURL_DISABLE_DIGEST_AUTH) ||   \
-
  defined(USE_SSL)
+
#if (defined(USE_CURL_NTLM_CORE) && !defined(USE_WINDOWS_SSPI))         \
+
  || !defined(CURL_DISABLE_AWS) || !defined(CURL_DISABLE_DIGEST_AUTH)

#include <curl/curl.h>

modified external/curl/lib/hostip.c
@@ -198,7 +198,7 @@ hostcache_entry_is_stale(void *datap, void *hc)
  if(dns->timestamp) {
    /* age in seconds */
    time_t age = prune->now - dns->timestamp;
-
    if(age >= (time_t)prune->max_age_sec)
+
    if(age >= prune->max_age_sec)
      return TRUE;
    if(age > prune->oldest)
      prune->oldest = age;
@@ -541,9 +541,7 @@ static struct Curl_addrinfo *get_localhost6(int port, const char *name)
  sa6.sin6_family = AF_INET6;
  sa6.sin6_port = htons(port16);
  sa6.sin6_flowinfo = 0;
-
#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
  sa6.sin6_scope_id = 0;
-
#endif

  (void)Curl_inet_pton(AF_INET6, "::1", ipv6);
  memcpy(&sa6.sin6_addr, ipv6, sizeof(ipv6));
@@ -632,7 +630,7 @@ bool Curl_ipv6works(struct Curl_easy *data)
      ipv6_works = 1;
      sclose(s);
    }
-
    return ipv6_works > 0;
+
    return (ipv6_works > 0);
  }
}
#endif /* USE_IPV6 */
@@ -1079,10 +1077,18 @@ static void hostcache_unlink_entry(void *entry)
    Curl_freeaddrinfo(dns->addr);
#ifdef USE_HTTPSRR
    if(dns->hinfo) {
-
      free(dns->hinfo->target);
-
      free(dns->hinfo->ipv4hints);
-
      free(dns->hinfo->echconfiglist);
-
      free(dns->hinfo->ipv6hints);
+
      if(dns->hinfo->target)
+
        free(dns->hinfo->target);
+
      if(dns->hinfo->alpns)
+
        free(dns->hinfo->alpns);
+
      if(dns->hinfo->ipv4hints)
+
        free(dns->hinfo->ipv4hints);
+
      if(dns->hinfo->echconfiglist)
+
        free(dns->hinfo->echconfiglist);
+
      if(dns->hinfo->ipv6hints)
+
        free(dns->hinfo->ipv6hints);
+
      if(dns->hinfo->val)
+
        free(dns->hinfo->val);
      free(dns->hinfo);
    }
#endif
modified external/curl/lib/hostip.h
@@ -29,7 +29,6 @@
#include "curl_addrinfo.h"
#include "timeval.h" /* for timediff_t */
#include "asyn.h"
-
#include "httpsrr.h"

#include <setjmp.h>

@@ -54,13 +53,6 @@ struct hostent;
struct Curl_easy;
struct connectdata;

-
enum alpnid {
-
  ALPN_none = 0,
-
  ALPN_h1 = CURLALTSVC_H1,
-
  ALPN_h2 = CURLALTSVC_H2,
-
  ALPN_h3 = CURLALTSVC_H3
-
};
-

/*
 * Curl_global_host_cache_init() initializes and sets up a global DNS cache.
 * Global DNS cache is general badness. Do not use. This will be removed in
@@ -70,6 +62,36 @@ enum alpnid {
 */
struct Curl_hash *Curl_global_host_cache_init(void);

+
#ifdef USE_HTTPSRR
+

+
#define CURL_MAXLEN_host_name 253
+

+
struct Curl_https_rrinfo {
+
  size_t len; /* raw encoded length */
+
  unsigned char *val; /* raw encoded octets */
+
  /*
+
   * fields from HTTPS RR, with the mandatory fields
+
   * first (priority, target), then the others in the
+
   * order of the keytag numbers defined at
+
   * https://datatracker.ietf.org/doc/html/rfc9460#section-14.3.2
+
   */
+
  uint16_t priority;
+
  char *target;
+
  char *alpns; /* keytag = 1 */
+
  bool no_def_alpn; /* keytag = 2 */
+
  /*
+
   * we do not support ports (keytag = 3) as we do not support
+
   * port-switching yet
+
   */
+
  unsigned char *ipv4hints; /* keytag = 4 */
+
  size_t ipv4hints_len;
+
  unsigned char *echconfiglist; /* keytag = 5 */
+
  size_t echconfiglist_len;
+
  unsigned char *ipv6hints; /* keytag = 6 */
+
  size_t ipv6hints_len;
+
};
+
#endif
+

struct Curl_dns_entry {
  struct Curl_addrinfo *addr;
#ifdef USE_HTTPSRR
modified external/curl/lib/hsts.c
@@ -41,7 +41,6 @@
#include "rename.h"
#include "share.h"
#include "strdup.h"
-
#include "strparse.h"

/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -49,8 +48,10 @@
#include "memdebug.h"

#define MAX_HSTS_LINE 4095
-
#define MAX_HSTS_HOSTLEN 2048
-
#define MAX_HSTS_DATELEN 256
+
#define MAX_HSTS_HOSTLEN 256
+
#define MAX_HSTS_HOSTLENSTR "256"
+
#define MAX_HSTS_DATELEN 64
+
#define MAX_HSTS_DATELENSTR "64"
#define UNLIMITED "unlimited"

#if defined(DEBUGBUILD) || defined(UNITTESTS)
@@ -108,13 +109,14 @@ void Curl_hsts_cleanup(struct hsts **hp)

static CURLcode hsts_create(struct hsts *h,
                            const char *hostname,
-
                            size_t hlen,
                            bool subdomains,
                            curl_off_t expires)
{
+
  size_t hlen;
  DEBUGASSERT(h);
  DEBUGASSERT(hostname);

+
  hlen = strlen(hostname);
  if(hlen && (hostname[hlen - 1] == '.'))
    /* strip off any trailing dot */
    --hlen;
@@ -148,7 +150,6 @@ CURLcode Curl_hsts_parse(struct hsts *h, const char *hostname,
  bool subdomains = FALSE;
  struct stsentry *sts;
  time_t now = time(NULL);
-
  size_t hlen = strlen(hostname);

  if(Curl_host_is_ipnum(hostname))
    /* "explicit IP address identification of all forms is excluded."
@@ -217,7 +218,7 @@ CURLcode Curl_hsts_parse(struct hsts *h, const char *hostname,

  if(!expires) {
    /* remove the entry if present verbatim (without subdomain match) */
-
    sts = Curl_hsts(h, hostname, hlen, FALSE);
+
    sts = Curl_hsts(h, hostname, FALSE);
    if(sts) {
      Curl_node_remove(&sts->node);
      hsts_free(sts);
@@ -232,14 +233,14 @@ CURLcode Curl_hsts_parse(struct hsts *h, const char *hostname,
    expires += now;

  /* check if it already exists */
-
  sts = Curl_hsts(h, hostname, hlen, FALSE);
+
  sts = Curl_hsts(h, hostname, FALSE);
  if(sts) {
    /* just update these fields */
    sts->expires = expires;
    sts->includeSubDomains = subdomains;
  }
  else
-
    return hsts_create(h, hostname, hlen, subdomains, expires);
+
    return hsts_create(h, hostname, subdomains, expires);

  return CURLE_OK;
}
@@ -251,11 +252,12 @@ CURLcode Curl_hsts_parse(struct hsts *h, const char *hostname,
 * attempted.
 */
struct stsentry *Curl_hsts(struct hsts *h, const char *hostname,
-
                           size_t hlen, bool subdomain)
+
                           bool subdomain)
{
  struct stsentry *bestsub = NULL;
  if(h) {
    time_t now = time(NULL);
+
    size_t hlen = strlen(hostname);
    struct Curl_llist_node *e;
    struct Curl_llist_node *n;
    size_t blen = 0;
@@ -422,40 +424,29 @@ static CURLcode hsts_add(struct hsts *h, char *line)
     example.com "20191231 10:00:00"
     .example.net "20191231 10:00:00"
   */
-
  struct Curl_str host;
-
  struct Curl_str date;
-

-
  if(Curl_str_word(&line, &host, MAX_HSTS_HOSTLEN) ||
-
     Curl_str_singlespace(&line) ||
-
     Curl_str_quotedword(&line, &date, MAX_HSTS_DATELEN) ||
-
     Curl_str_newline(&line))
-
    ;
-
  else {
+
  char host[MAX_HSTS_HOSTLEN + 1];
+
  char date[MAX_HSTS_DATELEN + 1];
+
  int rc;
+

+
  rc = sscanf(line,
+
              "%" MAX_HSTS_HOSTLENSTR "s \"%" MAX_HSTS_DATELENSTR "[^\"]\"",
+
              host, date);
+
  if(2 == rc) {
+
    time_t expires = strcmp(date, UNLIMITED) ? Curl_getdate_capped(date) :
+
      TIME_T_MAX;
    CURLcode result = CURLE_OK;
+
    char *p = host;
    bool subdomain = FALSE;
    struct stsentry *e;
-
    char dbuf[MAX_HSTS_DATELEN + 1];
-
    time_t expires;
-

-
    /* The date parser works on a null terminated string. The maximum length
-
       is upheld by Curl_str_quotedword(). */
-
    memcpy(dbuf, date.str, date.len);
-
    dbuf[date.len] = 0;
-

-
    expires = strcmp(dbuf, UNLIMITED) ? Curl_getdate_capped(dbuf) :
-
      TIME_T_MAX;
-

-
    if(host.str[0] == '.') {
-
      host.str++;
-
      host.len--;
+
    if(p[0] == '.') {
+
      p++;
      subdomain = TRUE;
    }
    /* only add it if not already present */
-
    e = Curl_hsts(h, host.str, host.len, subdomain);
+
    e = Curl_hsts(h, p, subdomain);
    if(!e)
-
      result = hsts_create(h, host.str, host.len, subdomain, expires);
-
    else if((strlen(e->host) == host.len) &&
-
            strncasecompare(host.str, e->host, host.len)) {
+
      result = hsts_create(h, p, subdomain, expires);
+
    else if(strcasecompare(p, e->host)) {
      /* the same hostname, use the largest expire time */
      if(expires > e->expires)
        e->expires = expires;
@@ -497,7 +488,7 @@ static CURLcode hsts_pull(struct Curl_easy *data, struct hsts *h)
          expires = Curl_getdate_capped(e.expire);
        else
          expires = TIME_T_MAX; /* the end of time */
-
        result = hsts_create(h, e.name, strlen(e.name),
+
        result = hsts_create(h, e.name,
                             /* bitfield to bool conversion: */
                             e.includeSubDomains ? TRUE : FALSE,
                             expires);
modified external/curl/lib/hsts.h
@@ -52,7 +52,7 @@ void Curl_hsts_cleanup(struct hsts **hp);
CURLcode Curl_hsts_parse(struct hsts *h, const char *hostname,
                         const char *sts);
struct stsentry *Curl_hsts(struct hsts *h, const char *hostname,
-
                           size_t hlen, bool subdomain);
+
                           bool subdomain);
CURLcode Curl_hsts_save(struct Curl_easy *data, struct hsts *h,
                        const char *file);
CURLcode Curl_hsts_loadfile(struct Curl_easy *data,
modified external/curl/lib/http.c
@@ -47,6 +47,10 @@
#include <sys/param.h>
#endif

+
#ifdef USE_HYPER
+
#include <hyper.h>
+
#endif
+

#include "urldata.h"
#include <curl/curl.h>
#include "transfer.h"
@@ -64,7 +68,6 @@
#include "http_negotiate.h"
#include "http_aws_sigv4.h"
#include "url.h"
-
#include "urlapi-int.h"
#include "share.h"
#include "hostip.h"
#include "dynhds.h"
@@ -85,6 +88,7 @@
#include "altsvc.h"
#include "hsts.h"
#include "ws.h"
+
#include "c-hyper.h"
#include "curl_ctype.h"

/* The last 3 #include files should be in this order */
@@ -100,30 +104,6 @@ static bool http_should_fail(struct Curl_easy *data, int httpcode);
static bool http_exp100_is_waiting(struct Curl_easy *data);
static CURLcode http_exp100_add_reader(struct Curl_easy *data);
static void http_exp100_send_anyway(struct Curl_easy *data);
-
static bool http_exp100_is_selected(struct Curl_easy *data);
-
static void http_exp100_got100(struct Curl_easy *data);
-
static CURLcode http_firstwrite(struct Curl_easy *data);
-
static CURLcode http_header(struct Curl_easy *data,
-
                            const char *hd, size_t hdlen);
-
static CURLcode http_host(struct Curl_easy *data, struct connectdata *conn);
-
static CURLcode http_range(struct Curl_easy *data,
-
                           Curl_HttpReq httpreq);
-
static CURLcode http_req_complete(struct Curl_easy *data,
-
                                  struct dynbuf *r, int httpversion,
-
                                  Curl_HttpReq httpreq);
-
static CURLcode http_req_set_reader(struct Curl_easy *data,
-
                                    Curl_HttpReq httpreq, int httpversion,
-
                                    const char **tep);
-
static CURLcode http_size(struct Curl_easy *data);
-
static CURLcode http_statusline(struct Curl_easy *data,
-
                                     struct connectdata *conn);
-
static CURLcode http_target(struct Curl_easy *data, struct connectdata *conn,
-
                            struct dynbuf *req);
-
static CURLcode http_useragent(struct Curl_easy *data);
-
#ifdef HAVE_LIBZ
-
static CURLcode http_transferencode(struct Curl_easy *data);
-
#endif
-


/*
 * HTTP handler interface.
@@ -146,7 +126,6 @@ const struct Curl_handler Curl_handler_http = {
  Curl_http_write_resp_hd,              /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  Curl_http_follow,                     /* follow */
  PORT_HTTP,                            /* defport */
  CURLPROTO_HTTP,                       /* protocol */
  CURLPROTO_HTTP,                       /* family */
@@ -176,7 +155,6 @@ const struct Curl_handler Curl_handler_https = {
  Curl_http_write_resp_hd,              /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  Curl_http_follow,                     /* follow */
  PORT_HTTPS,                           /* defport */
  CURLPROTO_HTTPS,                      /* protocol */
  CURLPROTO_HTTP,                       /* family */
@@ -532,10 +510,8 @@ CURLcode Curl_http_auth_act(struct Curl_easy *data)
    pickhost = pickoneauth(&data->state.authhost, authmask);
    if(!pickhost)
      data->state.authproblem = TRUE;
-
    else
-
      data->info.httpauthpicked = data->state.authhost.picked;
    if(data->state.authhost.picked == CURLAUTH_NTLM &&
-
       (data->req.httpversion_sent > 11)) {
+
       conn->httpversion > 11) {
      infof(data, "Forcing HTTP/1.1 for NTLM");
      connclose(conn, "Force HTTP/1.1 connection");
      data->state.httpwant = CURL_HTTP_VERSION_1_1;
@@ -549,9 +525,6 @@ CURLcode Curl_http_auth_act(struct Curl_easy *data)
                            authmask & ~CURLAUTH_BEARER);
    if(!pickproxy)
      data->state.authproblem = TRUE;
-
    else
-
      data->info.proxyauthpicked = data->state.authproxy.picked;
-

  }
#endif

@@ -858,12 +831,12 @@ CURLcode Curl_http_input_auth(struct Curl_easy *data, bool proxy,
  struct connectdata *conn = data->conn;
#ifdef USE_SPNEGO
  curlnegotiate *negstate = proxy ? &conn->proxy_negotiate_state :
-
    &conn->http_negotiate_state;
+
                                    &conn->http_negotiate_state;
#endif
-
#if defined(USE_SPNEGO) ||                      \
-
  defined(USE_NTLM) ||                          \
-
  !defined(CURL_DISABLE_DIGEST_AUTH) ||         \
-
  !defined(CURL_DISABLE_BASIC_AUTH) ||          \
+
#if defined(USE_SPNEGO) || \
+
  defined(USE_NTLM) || \
+
  !defined(CURL_DISABLE_DIGEST_AUTH) || \
+
  !defined(CURL_DISABLE_BASIC_AUTH) || \
  !defined(CURL_DISABLE_BEARER_AUTH)

  unsigned long *availp;
@@ -994,7 +967,7 @@ CURLcode Curl_http_input_auth(struct Curl_easy *data, bool proxy,
              authp->avail |= CURLAUTH_BEARER;
              if(authp->picked == CURLAUTH_BEARER) {
                /* We asked for Bearer authentication but got a 40X back
-
                   anyway, which basically means our token is not valid. */
+
                  anyway, which basically means our token is not valid. */
                authp->avail = CURLAUTH_NONE;
                infof(data, "Authentication problem. Ignoring this.");
                data->state.authproblem = TRUE;
@@ -1094,283 +1067,6 @@ static bool http_should_fail(struct Curl_easy *data, int httpcode)
  return data->state.authproblem;
}

-
CURLcode Curl_http_follow(struct Curl_easy *data, const char *newurl,
-
                          followtype type)
-
{
-
  bool disallowport = FALSE;
-
  bool reachedmax = FALSE;
-
  char *follow_url = NULL;
-
  CURLUcode uc;
-

-
  DEBUGASSERT(type != FOLLOW_NONE);
-

-
  if(type != FOLLOW_FAKE)
-
    data->state.requests++; /* count all real follows */
-
  if(type == FOLLOW_REDIR) {
-
    if((data->set.maxredirs != -1) &&
-
       (data->state.followlocation >= data->set.maxredirs)) {
-
      reachedmax = TRUE;
-
      type = FOLLOW_FAKE; /* switch to fake to store the would-be-redirected
-
                             to URL */
-
    }
-
    else {
-
      data->state.followlocation++; /* count redirect-followings, including
-
                                       auth reloads */
-

-
      if(data->set.http_auto_referer) {
-
        CURLU *u;
-
        char *referer = NULL;
-

-
        /* We are asked to automatically set the previous URL as the referer
-
           when we get the next URL. We pick the ->url field, which may or may
-
           not be 100% correct */
-

-
        if(data->state.referer_alloc) {
-
          Curl_safefree(data->state.referer);
-
          data->state.referer_alloc = FALSE;
-
        }
-

-
        /* Make a copy of the URL without credentials and fragment */
-
        u = curl_url();
-
        if(!u)
-
          return CURLE_OUT_OF_MEMORY;
-

-
        uc = curl_url_set(u, CURLUPART_URL, data->state.url, 0);
-
        if(!uc)
-
          uc = curl_url_set(u, CURLUPART_FRAGMENT, NULL, 0);
-
        if(!uc)
-
          uc = curl_url_set(u, CURLUPART_USER, NULL, 0);
-
        if(!uc)
-
          uc = curl_url_set(u, CURLUPART_PASSWORD, NULL, 0);
-
        if(!uc)
-
          uc = curl_url_get(u, CURLUPART_URL, &referer, 0);
-

-
        curl_url_cleanup(u);
-

-
        if(uc || !referer)
-
          return CURLE_OUT_OF_MEMORY;
-

-
        data->state.referer = referer;
-
        data->state.referer_alloc = TRUE; /* yes, free this later */
-
      }
-
    }
-
  }
-

-
  if((type != FOLLOW_RETRY) &&
-
     (data->req.httpcode != 401) && (data->req.httpcode != 407) &&
-
     Curl_is_absolute_url(newurl, NULL, 0, FALSE)) {
-
    /* If this is not redirect due to a 401 or 407 response and an absolute
-
       URL: do not allow a custom port number */
-
    disallowport = TRUE;
-
  }
-

-
  DEBUGASSERT(data->state.uh);
-
  uc = curl_url_set(data->state.uh, CURLUPART_URL, newurl, (unsigned int)
-
                    ((type == FOLLOW_FAKE) ? CURLU_NON_SUPPORT_SCHEME :
-
                     ((type == FOLLOW_REDIR) ? CURLU_URLENCODE : 0) |
-
                     CURLU_ALLOW_SPACE |
-
                     (data->set.path_as_is ? CURLU_PATH_AS_IS : 0)));
-
  if(uc) {
-
    if(type != FOLLOW_FAKE) {
-
      failf(data, "The redirect target URL could not be parsed: %s",
-
            curl_url_strerror(uc));
-
      return Curl_uc_to_curlcode(uc);
-
    }
-

-
    /* the URL could not be parsed for some reason, but since this is FAKE
-
       mode, just duplicate the field as-is */
-
    follow_url = strdup(newurl);
-
    if(!follow_url)
-
      return CURLE_OUT_OF_MEMORY;
-
  }
-
  else {
-
    uc = curl_url_get(data->state.uh, CURLUPART_URL, &follow_url, 0);
-
    if(uc)
-
      return Curl_uc_to_curlcode(uc);
-

-
    /* Clear auth if this redirects to a different port number or protocol,
-
       unless permitted */
-
    if(!data->set.allow_auth_to_other_hosts && (type != FOLLOW_FAKE)) {
-
      char *portnum;
-
      int port;
-
      bool clear = FALSE;
-

-
      if(data->set.use_port && data->state.allow_port)
-
        /* a custom port is used */
-
        port = (int)data->set.use_port;
-
      else {
-
        uc = curl_url_get(data->state.uh, CURLUPART_PORT, &portnum,
-
                          CURLU_DEFAULT_PORT);
-
        if(uc) {
-
          free(follow_url);
-
          return Curl_uc_to_curlcode(uc);
-
        }
-
        port = atoi(portnum);
-
        free(portnum);
-
      }
-
      if(port != data->info.conn_remote_port) {
-
        infof(data, "Clear auth, redirects to port from %u to %u",
-
              data->info.conn_remote_port, port);
-
        clear = TRUE;
-
      }
-
      else {
-
        char *scheme;
-
        const struct Curl_handler *p;
-
        uc = curl_url_get(data->state.uh, CURLUPART_SCHEME, &scheme, 0);
-
        if(uc) {
-
          free(follow_url);
-
          return Curl_uc_to_curlcode(uc);
-
        }
-

-
        p = Curl_get_scheme_handler(scheme);
-
        if(p && (p->protocol != data->info.conn_protocol)) {
-
          infof(data, "Clear auth, redirects scheme from %s to %s",
-
                data->info.conn_scheme, scheme);
-
          clear = TRUE;
-
        }
-
        free(scheme);
-
      }
-
      if(clear) {
-
        Curl_safefree(data->state.aptr.user);
-
        Curl_safefree(data->state.aptr.passwd);
-
      }
-
    }
-
  }
-
  DEBUGASSERT(follow_url);
-

-
  if(type == FOLLOW_FAKE) {
-
    /* we are only figuring out the new URL if we would have followed locations
-
       but now we are done so we can get out! */
-
    data->info.wouldredirect = follow_url;
-

-
    if(reachedmax) {
-
      failf(data, "Maximum (%ld) redirects followed", data->set.maxredirs);
-
      return CURLE_TOO_MANY_REDIRECTS;
-
    }
-
    return CURLE_OK;
-
  }
-

-
  if(disallowport)
-
    data->state.allow_port = FALSE;
-

-
  if(data->state.url_alloc)
-
    Curl_safefree(data->state.url);
-

-
  data->state.url = follow_url;
-
  data->state.url_alloc = TRUE;
-
  Curl_req_soft_reset(&data->req, data);
-
  infof(data, "Issue another request to this URL: '%s'", data->state.url);
-

-
  /*
-
   * We get here when the HTTP code is 300-399 (and 401). We need to perform
-
   * differently based on exactly what return code there was.
-
   *
-
   * News from 7.10.6: we can also get here on a 401 or 407, in case we act on
-
   * an HTTP (proxy-) authentication scheme other than Basic.
-
   */
-
  switch(data->info.httpcode) {
-
    /* 401 - Act on a WWW-Authenticate, we keep on moving and do the
-
       Authorization: XXXX header in the HTTP request code snippet */
-
    /* 407 - Act on a Proxy-Authenticate, we keep on moving and do the
-
       Proxy-Authorization: XXXX header in the HTTP request code snippet */
-
    /* 300 - Multiple Choices */
-
    /* 306 - Not used */
-
    /* 307 - Temporary Redirect */
-
  default:  /* for all above (and the unknown ones) */
-
    /* Some codes are explicitly mentioned since I have checked RFC2616 and
-
     * they seem to be OK to POST to.
-
     */
-
    break;
-
  case 301: /* Moved Permanently */
-
    /* (quote from RFC7231, section 6.4.2)
-
     *
-
     * Note: For historical reasons, a user agent MAY change the request
-
     * method from POST to GET for the subsequent request. If this
-
     * behavior is undesired, the 307 (Temporary Redirect) status code
-
     * can be used instead.
-
     *
-
     * ----
-
     *
-
     * Many webservers expect this, so these servers often answers to a POST
-
     * request with an error page. To be sure that libcurl gets the page that
-
     * most user agents would get, libcurl has to force GET.
-
     *
-
     * This behavior is forbidden by RFC1945 and the obsolete RFC2616, and
-
     * can be overridden with CURLOPT_POSTREDIR.
-
     */
-
    if((data->state.httpreq == HTTPREQ_POST
-
        || data->state.httpreq == HTTPREQ_POST_FORM
-
        || data->state.httpreq == HTTPREQ_POST_MIME)
-
       && !(data->set.keep_post & CURL_REDIR_POST_301)) {
-
      infof(data, "Switch from POST to GET");
-
      data->state.httpreq = HTTPREQ_GET;
-
      Curl_creader_set_rewind(data, FALSE);
-
    }
-
    break;
-
  case 302: /* Found */
-
    /* (quote from RFC7231, section 6.4.3)
-
     *
-
     * Note: For historical reasons, a user agent MAY change the request
-
     * method from POST to GET for the subsequent request. If this
-
     * behavior is undesired, the 307 (Temporary Redirect) status code
-
     * can be used instead.
-
     *
-
     * ----
-
     *
-
     * Many webservers expect this, so these servers often answers to a POST
-
     * request with an error page. To be sure that libcurl gets the page that
-
     * most user agents would get, libcurl has to force GET.
-
     *
-
     * This behavior is forbidden by RFC1945 and the obsolete RFC2616, and
-
     * can be overridden with CURLOPT_POSTREDIR.
-
     */
-
    if((data->state.httpreq == HTTPREQ_POST
-
        || data->state.httpreq == HTTPREQ_POST_FORM
-
        || data->state.httpreq == HTTPREQ_POST_MIME)
-
       && !(data->set.keep_post & CURL_REDIR_POST_302)) {
-
      infof(data, "Switch from POST to GET");
-
      data->state.httpreq = HTTPREQ_GET;
-
      Curl_creader_set_rewind(data, FALSE);
-
    }
-
    break;
-

-
  case 303: /* See Other */
-
    /* 'See Other' location is not the resource but a substitute for the
-
     * resource. In this case we switch the method to GET/HEAD, unless the
-
     * method is POST and the user specified to keep it as POST.
-
     * https://github.com/curl/curl/issues/5237#issuecomment-614641049
-
     */
-
    if(data->state.httpreq != HTTPREQ_GET &&
-
       ((data->state.httpreq != HTTPREQ_POST &&
-
         data->state.httpreq != HTTPREQ_POST_FORM &&
-
         data->state.httpreq != HTTPREQ_POST_MIME) ||
-
        !(data->set.keep_post & CURL_REDIR_POST_303))) {
-
      data->state.httpreq = HTTPREQ_GET;
-
      infof(data, "Switch to %s",
-
            data->req.no_body ? "HEAD" : "GET");
-
    }
-
    break;
-
  case 304: /* Not Modified */
-
    /* 304 means we did a conditional request and it was "Not modified".
-
     * We should not get any Location: header in this response!
-
     */
-
    break;
-
  case 305: /* Use Proxy */
-
    /* (quote from RFC2616, section 10.3.6):
-
     * "The requested resource MUST be accessed through the proxy given
-
     * by the Location field. The Location field gives the URI of the
-
     * proxy. The recipient is expected to repeat this single request
-
     * via the proxy. 305 responses MUST only be generated by origin
-
     * servers."
-
     */
-
    break;
-
  }
-
  Curl_pgrsTime(data, TIMER_REDIRECT);
-
  Curl_pgrsResetTransferSizes(data);
-

-
  return CURLE_OK;
-
}
-

/*
 * Curl_compareheader()
 *
@@ -1473,6 +1169,7 @@ CURLcode Curl_http_done(struct Curl_easy *data,
  data->state.authproxy.multipass = FALSE;

  Curl_dyn_reset(&data->state.headerb);
+
  Curl_hyper_done(data);

  if(status)
    return status;
@@ -1496,55 +1193,52 @@ CURLcode Curl_http_done(struct Curl_easy *data,
  return CURLE_OK;
}

-
/* Determine if we may use HTTP 1.1 for this request. */
-
static bool http_may_use_1_1(const struct Curl_easy *data)
+
/*
+
 * Determine if we should use HTTP 1.1 (OR BETTER) for this request. Reasons
+
 * to avoid it include:
+
 *
+
 * - if the user specifically requested HTTP 1.0
+
 * - if the server we are connected to only supports 1.0
+
 * - if any server previously contacted to handle this request only supports
+
 * 1.0.
+
 */
+
bool Curl_use_http_1_1plus(const struct Curl_easy *data,
+
                           const struct connectdata *conn)
{
-
  const struct connectdata *conn = data->conn;
-
  /* We have seen a previous response for *this* transfer with 1.0,
-
   * on another connection or the same one. */
-
  if(data->state.httpversion == 10)
-
    return FALSE;
-
  /* We have seen a previous response on *this* connection with 1.0. */
-
  if(conn->httpversion_seen == 10)
+
  if((data->state.httpversion == 10) || (conn->httpversion == 10))
    return FALSE;
-
  /* We want 1.0 and have seen no previous response on *this* connection
-
     with a higher version (maybe no response at all yet). */
  if((data->state.httpwant == CURL_HTTP_VERSION_1_0) &&
-
     (conn->httpversion_seen <= 10))
+
     (conn->httpversion <= 10))
    return FALSE;
-
  /* We want something newer than 1.0 or have no preferences. */
-
  return (data->state.httpwant == CURL_HTTP_VERSION_NONE) ||
-
         (data->state.httpwant >= CURL_HTTP_VERSION_1_1);
+
  return ((data->state.httpwant == CURL_HTTP_VERSION_NONE) ||
+
          (data->state.httpwant >= CURL_HTTP_VERSION_1_1));
}

-
static unsigned char http_request_version(struct Curl_easy *data)
+
#ifndef USE_HYPER
+
static const char *get_http_string(const struct Curl_easy *data,
+
                                   const struct connectdata *conn)
{
-
  unsigned char httpversion = Curl_conn_http_version(data);
-
  if(!httpversion) {
-
    /* No specific HTTP connection filter installed. */
-
    httpversion = http_may_use_1_1(data) ? 11 : 10;
-
  }
-
  return httpversion;
-
}
-

-
static const char *get_http_string(int httpversion)
-
{
-
  switch(httpversion) {
-
    case 30:
-
      return "3";
-
    case 20:
-
      return "2";
-
    case 11:
-
      return "1.1";
-
    default:
-
      return "1.0";
-
  }
+
  if(Curl_conn_is_http3(data, conn, FIRSTSOCKET))
+
    return "3";
+
  if(Curl_conn_is_http2(data, conn, FIRSTSOCKET))
+
    return "2";
+
  if(Curl_use_http_1_1plus(data, conn))
+
    return "1.1";
+

+
  return "1.0";
}
+
#endif

CURLcode Curl_add_custom_headers(struct Curl_easy *data,
-
                                 bool is_connect, int httpversion,
-
                                 struct dynbuf *req)
+
                                 bool is_connect,
+
#ifndef USE_HYPER
+
                                 struct dynbuf *req
+
#else
+
                                 void *req
+
#endif
+
  )
{
+
  struct connectdata *conn = data->conn;
  char *ptr;
  struct curl_slist *h[2];
  struct curl_slist *headers;
@@ -1557,7 +1251,7 @@ CURLcode Curl_add_custom_headers(struct Curl_easy *data,
  if(is_connect)
    proxy = HEADER_CONNECT;
  else
-
    proxy = data->conn->bits.httpproxy && !data->conn->bits.tunnel_proxy ?
+
    proxy = conn->bits.httpproxy && !conn->bits.tunnel_proxy ?
      HEADER_PROXY : HEADER_SERVER;

  switch(proxy) {
@@ -1609,7 +1303,9 @@ CURLcode Curl_add_custom_headers(struct Curl_easy *data,
              /* copy the source */
              semicolonp = strdup(headers->data);
              if(!semicolonp) {
+
#ifndef USE_HYPER
                Curl_dyn_free(req);
+
#endif
                return CURLE_OUT_OF_MEMORY;
              }
              /* put a colon where the semicolon is */
@@ -1657,7 +1353,7 @@ CURLcode Curl_add_custom_headers(struct Curl_easy *data,
                     Connection: */
                  checkprefix("Connection:", compare))
            ;
-
          else if((httpversion >= 20) &&
+
          else if((conn->httpversion >= 20) &&
                  checkprefix("Transfer-Encoding:", compare))
            /* HTTP/2 does not support chunked requests */
            ;
@@ -1668,7 +1364,11 @@ CURLcode Curl_add_custom_headers(struct Curl_easy *data,
                  !Curl_auth_allowed_to_host(data))
            ;
          else {
+
#ifdef USE_HYPER
+
            result = Curl_hyper_header(data, req, compare);
+
#else
            result = Curl_dyn_addf(req, "%s\r\n", compare);
+
#endif
          }
          if(semicolonp)
            free(semicolonp);
@@ -1685,7 +1385,12 @@ CURLcode Curl_add_custom_headers(struct Curl_easy *data,

#ifndef CURL_DISABLE_PARSEDATE
CURLcode Curl_add_timecondition(struct Curl_easy *data,
-
                                struct dynbuf *req)
+
#ifndef USE_HYPER
+
                                struct dynbuf *req
+
#else
+
                                void *req
+
#endif
+
  )
{
  const struct tm *tm;
  struct tm keeptime;
@@ -1748,7 +1453,12 @@ CURLcode Curl_add_timecondition(struct Curl_easy *data,
            tm->tm_min,
            tm->tm_sec);

+
#ifndef USE_HYPER
  result = Curl_dyn_add(req, datestr);
+
#else
+
  result = Curl_hyper_header(data, req, datestr);
+
#endif
+

  return result;
}
#else
@@ -1802,7 +1512,7 @@ void Curl_http_method(struct Curl_easy *data, struct connectdata *conn,
  *reqp = httpreq;
}

-
static CURLcode http_useragent(struct Curl_easy *data)
+
CURLcode Curl_http_useragent(struct Curl_easy *data)
{
  /* The User-Agent string might have been allocated in url.c already, because
     it might have been used in the proxy connect, but if we have got a header
@@ -1816,7 +1526,7 @@ static CURLcode http_useragent(struct Curl_easy *data)
}


-
static CURLcode http_host(struct Curl_easy *data, struct connectdata *conn)
+
CURLcode Curl_http_host(struct Curl_easy *data, struct connectdata *conn)
{
  const char *ptr;
  struct dynamically_allocated_data *aptr = &data->state.aptr;
@@ -1906,9 +1616,9 @@ static CURLcode http_host(struct Curl_easy *data, struct connectdata *conn)
/*
 * Append the request-target to the HTTP request
 */
-
static CURLcode http_target(struct Curl_easy *data,
-
                            struct connectdata *conn,
-
                            struct dynbuf *r)
+
CURLcode Curl_http_target(struct Curl_easy *data,
+
                          struct connectdata *conn,
+
                          struct dynbuf *r)
{
  CURLcode result = CURLE_OK;
  const char *path = data->state.up.path;
@@ -1974,7 +1684,7 @@ static CURLcode http_target(struct Curl_easy *data,
      data->set.str[STRING_TARGET] : url);
    free(url);
    if(result)
-
      return result;
+
      return (result);

    if(strcasecompare("ftp", data->state.up.scheme)) {
      if(data->set.proxy_transfer_mode) {
@@ -2188,9 +1898,9 @@ static CURLcode http_resume(struct Curl_easy *data, Curl_HttpReq httpreq)
  return CURLE_OK;
}

-
static CURLcode http_req_set_reader(struct Curl_easy *data,
-
                                    Curl_HttpReq httpreq, int httpversion,
-
                                    const char **tep)
+
CURLcode Curl_http_req_set_reader(struct Curl_easy *data,
+
                                  Curl_HttpReq httpreq,
+
                                  const char **tep)
{
  CURLcode result = CURLE_OK;
  const char *ptr;
@@ -2209,10 +1919,12 @@ static CURLcode http_req_set_reader(struct Curl_easy *data,
    data->req.upload_chunky =
      Curl_compareheader(ptr,
                         STRCONST("Transfer-Encoding:"), STRCONST("chunked"));
-
    if(data->req.upload_chunky && (httpversion >= 20)) {
-
      infof(data, "suppressing chunked transfer encoding on connection "
-
            "using HTTP version 2 or higher");
-
      data->req.upload_chunky = FALSE;
+
    if(data->req.upload_chunky &&
+
       Curl_use_http_1_1plus(data, data->conn) &&
+
       (data->conn->httpversion >= 20)) {
+
       infof(data, "suppressing chunked transfer encoding on connection "
+
             "using HTTP version 2 or higher");
+
       data->req.upload_chunky = FALSE;
    }
  }
  else {
@@ -2220,10 +1932,10 @@ static CURLcode http_req_set_reader(struct Curl_easy *data,

    if(req_clen < 0) {
      /* indeterminate request content length */
-
      if(httpversion > 10) {
+
      if(Curl_use_http_1_1plus(data, data->conn)) {
        /* On HTTP/1.1, enable chunked, on HTTP/2 and later we do not
         * need it */
-
        data->req.upload_chunky = (httpversion < 20);
+
        data->req.upload_chunky = (data->conn->httpversion < 20);
      }
      else {
        failf(data, "Chunky upload is not supported by HTTP 1.0");
@@ -2242,7 +1954,7 @@ static CURLcode http_req_set_reader(struct Curl_easy *data,
}

static CURLcode addexpect(struct Curl_easy *data, struct dynbuf *r,
-
                          int httpversion, bool *announced_exp100)
+
                          bool *announced_exp100)
{
  CURLcode result;
  char *ptr;
@@ -2261,7 +1973,9 @@ static CURLcode addexpect(struct Curl_easy *data, struct dynbuf *r,
    *announced_exp100 =
      Curl_compareheader(ptr, STRCONST("Expect:"), STRCONST("100-continue"));
  }
-
  else if(!data->state.disableexpect && (httpversion == 11)) {
+
  else if(!data->state.disableexpect &&
+
          Curl_use_http_1_1plus(data, data->conn) &&
+
          (data->conn->httpversion < 20)) {
    /* if not doing HTTP 1.0 or version 2, or disabled explicitly, we add an
       Expect: 100-continue to the headers which actually speeds up post
       operations (as there is one packet coming back from the web server) */
@@ -2276,20 +1990,21 @@ static CURLcode addexpect(struct Curl_easy *data, struct dynbuf *r,
  return CURLE_OK;
}

-
static CURLcode http_req_complete(struct Curl_easy *data,
-
                                  struct dynbuf *r, int httpversion,
-
                                  Curl_HttpReq httpreq)
+
CURLcode Curl_http_req_complete(struct Curl_easy *data,
+
                                struct dynbuf *r, Curl_HttpReq httpreq)
{
  CURLcode result = CURLE_OK;
  curl_off_t req_clen;
  bool announced_exp100 = FALSE;

  DEBUGASSERT(data->conn);
+
#ifndef USE_HYPER
  if(data->req.upload_chunky) {
    result = Curl_httpchunk_add_reader(data);
    if(result)
      return result;
  }
+
#endif

  /* Get the request body length that has been set up */
  req_clen = Curl_creader_total_length(data);
@@ -2338,7 +2053,7 @@ static CURLcode http_req_complete(struct Curl_easy *data,
          goto out;
      }
    }
-
    result = addexpect(data, r, httpversion, &announced_exp100);
+
    result = addexpect(data, r, &announced_exp100);
    if(result)
      goto out;
    break;
@@ -2364,9 +2079,9 @@ out:

#if !defined(CURL_DISABLE_COOKIES)

-
static CURLcode http_cookies(struct Curl_easy *data,
-
                             struct connectdata *conn,
-
                             struct dynbuf *r)
+
CURLcode Curl_http_cookies(struct Curl_easy *data,
+
                           struct connectdata *conn,
+
                           struct dynbuf *r)
{
  CURLcode result = CURLE_OK;
  char *addcookies = NULL;
@@ -2440,12 +2155,10 @@ static CURLcode http_cookies(struct Curl_easy *data,
  }
  return result;
}
-
#else
-
#define http_cookies(a,b,c) CURLE_OK
#endif

-
static CURLcode http_range(struct Curl_easy *data,
-
                           Curl_HttpReq httpreq)
+
CURLcode Curl_http_range(struct Curl_easy *data,
+
                         Curl_HttpReq httpreq)
{
  if(data->state.use_range) {
    /*
@@ -2501,7 +2214,7 @@ static CURLcode http_range(struct Curl_easy *data,
  return CURLE_OK;
}

-
static CURLcode http_firstwrite(struct Curl_easy *data)
+
CURLcode Curl_http_firstwrite(struct Curl_easy *data)
{
  struct connectdata *conn = data->conn;
  struct SingleRequest *k = &data->req;
@@ -2564,7 +2277,7 @@ static CURLcode http_firstwrite(struct Curl_easy *data)
}

#ifdef HAVE_LIBZ
-
static CURLcode http_transferencode(struct Curl_easy *data)
+
CURLcode Curl_transferencode(struct Curl_easy *data)
{
  if(!Curl_checkheaders(data, STRCONST("TE")) &&
     data->set.http_transfer_encoding) {
@@ -2596,6 +2309,7 @@ static CURLcode http_transferencode(struct Curl_easy *data)
}
#endif

+
#ifndef USE_HYPER
/*
 * Curl_http() gets called from the generic multi_do() function when an HTTP
 * request is to be performed. This creates and sends a properly constructed
@@ -2612,7 +2326,6 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
  struct dynbuf req;
  char *altused = NULL;
  const char *p_accept;      /* Accept: string */
-
  unsigned char httpversion;

  /* Always consider the DO phase done after this function call, even if there
     may be parts of the request that are not yet sent, since we can deal with
@@ -2621,29 +2334,29 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)

  switch(conn->alpn) {
  case CURL_HTTP_VERSION_3:
-
    DEBUGASSERT(Curl_conn_http_version(data) == 30);
+
    DEBUGASSERT(Curl_conn_is_http3(data, conn, FIRSTSOCKET));
    break;
  case CURL_HTTP_VERSION_2:
#ifndef CURL_DISABLE_PROXY
-
    if((Curl_conn_http_version(data) != 20) &&
+
    if(!Curl_conn_is_http2(data, conn, FIRSTSOCKET) &&
       conn->bits.proxy && !conn->bits.tunnel_proxy
      ) {
-
      result = Curl_http2_switch(data);
+
      result = Curl_http2_switch(data, conn, FIRSTSOCKET);
      if(result)
        goto fail;
    }
    else
#endif
-
      DEBUGASSERT(Curl_conn_http_version(data) == 20);
+
      DEBUGASSERT(Curl_conn_is_http2(data, conn, FIRSTSOCKET));
    break;
  case CURL_HTTP_VERSION_1_1:
    /* continue with HTTP/1.x when explicitly requested */
    break;
  default:
    /* Check if user wants to use HTTP/2 with clear TCP */
-
    if(Curl_http2_may_switch(data)) {
+
    if(Curl_http2_may_switch(data, conn, FIRSTSOCKET)) {
      DEBUGF(infof(data, "HTTP/2 over clean TCP"));
-
      result = Curl_http2_switch(data);
+
      result = Curl_http2_switch(data, conn, FIRSTSOCKET);
      if(result)
        goto fail;
    }
@@ -2657,11 +2370,11 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
  if(result)
    goto fail;

-
  result = http_host(data, conn);
+
  result = Curl_http_host(data, conn);
  if(result)
    goto fail;

-
  result = http_useragent(data);
+
  result = Curl_http_useragent(data);
  if(result)
    goto fail;

@@ -2702,25 +2415,24 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)

#ifdef HAVE_LIBZ
  /* we only consider transfer-encoding magic if libz support is built-in */
-
  result = http_transferencode(data);
+
  result = Curl_transferencode(data);
  if(result)
    goto fail;
#endif

-
  httpversion = http_request_version(data);
-
  httpstring = get_http_string(httpversion);
-

-
  result = http_req_set_reader(data, httpreq, httpversion, &te);
+
  result = Curl_http_req_set_reader(data, httpreq, &te);
  if(result)
    goto fail;

  p_accept = Curl_checkheaders(data,
                               STRCONST("Accept")) ? NULL : "Accept: */*\r\n";

-
  result = http_range(data, httpreq);
+
  result = Curl_http_range(data, httpreq);
  if(result)
    goto fail;

+
  httpstring = get_http_string(data, conn);
+

  /* initialize a dynamic send-buffer */
  Curl_dyn_init(&req, DYN_HTTP_REQUEST);

@@ -2732,7 +2444,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
  /* GET/HEAD/POST/PUT */
  result = Curl_dyn_addf(&req, "%s ", request);
  if(!result)
-
    result = http_target(data, conn, &req);
+
    result = Curl_http_target(data, conn, &req);
  if(result) {
    Curl_dyn_free(&req);
    goto fail;
@@ -2814,7 +2526,8 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
    goto fail;
  }

-
  if(!Curl_conn_is_ssl(conn, FIRSTSOCKET) && (httpversion < 20) &&
+
  if(!(conn->handler->flags&PROTOPT_SSL) &&
+
     conn->httpversion < 20 &&
     (data->state.httpwant == CURL_HTTP_VERSION_2)) {
    /* append HTTP2 upgrade magic stuff to the HTTP request if it is not done
       over SSL */
@@ -2825,7 +2538,7 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
    }
  }

-
  result = http_cookies(data, conn, &req);
+
  result = Curl_http_cookies(data, conn, &req);
#ifndef CURL_DISABLE_WEBSOCKETS
  if(!result && conn->handler->protocol&(CURLPROTO_WS|CURLPROTO_WSS))
    result = Curl_ws_request(data, &req);
@@ -2833,19 +2546,19 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
  if(!result)
    result = Curl_add_timecondition(data, &req);
  if(!result)
-
    result = Curl_add_custom_headers(data, FALSE, httpversion, &req);
+
    result = Curl_add_custom_headers(data, FALSE, &req);

  if(!result) {
    /* req_send takes ownership of the 'req' memory on success */
-
    result = http_req_complete(data, &req, httpversion, httpreq);
+
    result = Curl_http_req_complete(data, &req, httpreq);
    if(!result)
-
      result = Curl_req_send(data, &req, httpversion);
+
      result = Curl_req_send(data, &req);
  }
  Curl_dyn_free(&req);
  if(result)
    goto fail;

-
  if((httpversion >= 20) && data->req.upload_chunky)
+
  if((conn->httpversion >= 20) && data->req.upload_chunky)
    /* upload_chunky was set above to set up the request in a chunky fashion,
       but is disabled here again to avoid that the chunked encoded version is
       actually used when sending the request body over h2 */
@@ -2856,6 +2569,8 @@ fail:
  return result;
}

+
#endif /* USE_HYPER */
+

typedef enum {
  STATUS_UNKNOWN, /* not enough data to tell yet */
  STATUS_DONE, /* a status line was read */
@@ -2942,10 +2657,10 @@ checkprotoprefix(struct Curl_easy *data, struct connectdata *conn,
   Curl_compareheader(hd, STRCONST(n), STRCONST(v)))

/*
-
 * http_header() parses a single response header.
+
 * Curl_http_header() parses a single response header.
 */
-
static CURLcode http_header(struct Curl_easy *data,
-
                            const char *hd, size_t hdlen)
+
CURLcode Curl_http_header(struct Curl_easy *data,
+
                          const char *hd, size_t hdlen)
{
  struct connectdata *conn = data->conn;
  CURLcode result;
@@ -2957,7 +2672,7 @@ static CURLcode http_header(struct Curl_easy *data,
  case 'A':
#ifndef CURL_DISABLE_ALTSVC
    v = (data->asi &&
-
         (Curl_conn_is_ssl(data->conn, FIRSTSOCKET) ||
+
         ((data->conn->handler->flags & PROTOPT_SSL) ||
#ifdef DEBUGBUILD
          /* allow debug builds to circumvent the HTTPS restriction */
          getenv("CURL_ALTSVC_HTTP")
@@ -2967,8 +2682,8 @@ static CURLcode http_header(struct Curl_easy *data,
        )) ? HD_VAL(hd, hdlen, "Alt-Svc:") : NULL;
    if(v) {
      /* the ALPN of the current request */
-
      enum alpnid id = (k->httpversion == 30) ? ALPN_h3 :
-
                         (k->httpversion == 20) ? ALPN_h2 : ALPN_h1;
+
      enum alpnid id = (conn->httpversion == 30) ? ALPN_h3 :
+
                         (conn->httpversion == 20) ? ALPN_h2 : ALPN_h1;
      return Curl_altsvc_parse(data, data->asi, v, id, conn->host.name,
                               curlx_uitous((unsigned int)conn->remote_port));
    }
@@ -3040,7 +2755,7 @@ static CURLcode http_header(struct Curl_easy *data,
      streamclose(conn, "Connection: close used");
      return CURLE_OK;
    }
-
    if((k->httpversion == 10) &&
+
    if((conn->httpversion == 10) &&
       HD_IS_AND_SAYS(hd, hdlen, "Connection:", "keep-alive")) {
      /*
       * An HTTP/1.0 reply with the 'Connection: keep-alive' line
@@ -3130,7 +2845,7 @@ static CURLcode http_header(struct Curl_easy *data,
#ifndef CURL_DISABLE_PROXY
    v = HD_VAL(hd, hdlen, "Proxy-Connection:");
    if(v) {
-
      if((k->httpversion == 10) && conn->bits.httpproxy &&
+
      if((conn->httpversion == 10) && conn->bits.httpproxy &&
         HD_IS_AND_SAYS(hd, hdlen, "Proxy-Connection:", "keep-alive")) {
        /*
         * When an HTTP/1.0 reply comes when using a proxy, the
@@ -3141,7 +2856,7 @@ static CURLcode http_header(struct Curl_easy *data,
        connkeep(conn, "Proxy-Connection keep-alive"); /* do not close */
        infof(data, "HTTP/1.0 proxy connection set to keep alive");
      }
-
      else if((k->httpversion == 11) && conn->bits.httpproxy &&
+
      else if((conn->httpversion == 11) && conn->bits.httpproxy &&
              HD_IS_AND_SAYS(hd, hdlen, "Proxy-Connection:", "close")) {
        /*
         * We get an HTTP/1.1 response from a proxy and it says it will
@@ -3188,19 +2903,11 @@ static CURLcode http_header(struct Curl_easy *data,
      (void)curlx_strtoofft(v, NULL, 10, &retry_after);
      if(!retry_after) {
        time_t date = Curl_getdate_capped(v);
-
        time_t current = time(NULL);
-
        if((time_t)-1 != date && date > current) {
+
        if(-1 != date)
          /* convert date to number of seconds into the future */
-
          retry_after = date - current;
-
        }
+
          retry_after = date - time(NULL);
      }
-
      if(retry_after < 0)
-
        retry_after = 0;
-
      /* limit to 6 hours max. this is not documented so that it can be changed
-
         in the future if necessary. */
-
      if(retry_after > 21600)
-
        retry_after = 21600;
-
      data->info.retry_after = retry_after;
+
      data->info.retry_after = retry_after; /* store it */
      return CURLE_OK;
    }
    break;
@@ -3231,7 +2938,7 @@ static CURLcode http_header(struct Curl_easy *data,
#ifndef CURL_DISABLE_HSTS
    /* If enabled, the header is incoming and this is over HTTPS */
    v = (data->hsts &&
-
         (Curl_conn_is_ssl(conn, FIRSTSOCKET) ||
+
         ((conn->handler->flags & PROTOPT_SSL) ||
#ifdef DEBUGBUILD
           /* allow debug builds to circumvent the HTTPS restriction */
           getenv("CURL_HSTS_HTTP")
@@ -3315,8 +3022,8 @@ static CURLcode http_header(struct Curl_easy *data,
 * Called after the first HTTP response line (the status line) has been
 * received and parsed.
 */
-
static CURLcode http_statusline(struct Curl_easy *data,
-
                                struct connectdata *conn)
+
CURLcode Curl_http_statusline(struct Curl_easy *data,
+
                              struct connectdata *conn)
{
  struct SingleRequest *k = &data->req;

@@ -3330,11 +3037,11 @@ static CURLcode http_statusline(struct Curl_easy *data,
  case 30:
#endif
    /* no major version switch mid-connection */
-
    if(k->httpversion_sent &&
-
       (k->httpversion/10 != k->httpversion_sent/10)) {
+
    if(conn->httpversion &&
+
       (k->httpversion/10 != conn->httpversion/10)) {
      failf(data, "Version mismatch (from HTTP/%u to HTTP/%u)",
-
            k->httpversion_sent/10, k->httpversion/10);
-
      return CURLE_WEIRD_SERVER_REPLY;
+
            conn->httpversion/10, k->httpversion/10);
+
      return CURLE_UNSUPPORTED_PROTOCOL;
    }
    break;
  default:
@@ -3345,7 +3052,7 @@ static CURLcode http_statusline(struct Curl_easy *data,

  data->info.httpcode = k->httpcode;
  data->info.httpversion = k->httpversion;
-
  conn->httpversion_seen = (unsigned char)k->httpversion;
+
  conn->httpversion = (unsigned char)k->httpversion;

  if(!data->state.httpversion || data->state.httpversion > k->httpversion)
    /* store the lowest server version we encounter */
@@ -3409,7 +3116,7 @@ static CURLcode http_statusline(struct Curl_easy *data,
   figured out here after all headers have been received but before the final
   call to the user's header callback, so that a valid content length can be
   retrieved by the user in the final call. */
-
static CURLcode http_size(struct Curl_easy *data)
+
CURLcode Curl_http_size(struct Curl_easy *data)
{
  struct SingleRequest *k = &data->req;
  if(data->req.ignore_cl || k->chunk) {
@@ -3525,7 +3232,7 @@ static CURLcode http_on_response(struct Curl_easy *data,

  if(k->upgr101 == UPGR101_RECEIVED) {
    /* supposedly upgraded to http2 now */
-
    if(data->req.httpversion != 20)
+
    if(conn->httpversion != 20)
      infof(data, "Lying server, not serving HTTP/2");
  }

@@ -3557,11 +3264,12 @@ static CURLcode http_on_response(struct Curl_easy *data,
       * that tells us that the server is OK with this and ready
       * to receive the data.
       */
-
      http_exp100_got100(data);
+
      Curl_http_exp100_got100(data);
      break;
    case 101:
      /* Switching Protocols only allowed from HTTP/1.1 */
-
      if(k->httpversion_sent != 11) {
+

+
      if(conn->httpversion != 11) {
        /* invalid for other HTTP versions */
        failf(data, "unexpected 101 response code");
        result = CURLE_WEIRD_SERVER_REPLY;
@@ -3575,7 +3283,6 @@ static CURLcode http_on_response(struct Curl_easy *data,
        /* We expect more response from HTTP/2 later */
        k->header = TRUE;
        k->headerline = 0; /* restart the header line counter */
-
        k->httpversion_sent = 20; /* It's a HTTP/2 request now */
        /* Any remaining `buf` bytes are already HTTP/2 and passed to
         * be processed. */
        result = Curl_http2_upgrade(data, conn, FIRSTSOCKET, buf, blen);
@@ -3624,7 +3331,7 @@ static CURLcode http_on_response(struct Curl_easy *data,
  }

  if((k->size == -1) && !k->chunk && !conn->bits.close &&
-
     (k->httpversion == 11) &&
+
     (conn->httpversion == 11) &&
     !(conn->handler->protocol & CURLPROTO_RTSP) &&
     data->state.httpreq != HTTPREQ_HEAD) {
    /* On HTTP 1.1, when connection is not to get closed, but no
@@ -3716,7 +3423,7 @@ static CURLcode http_on_response(struct Curl_easy *data,
         * connection for closure after we have read the entire response.
         */
        if(!Curl_req_done_sending(data)) {
-
          if((k->httpcode == 417) && http_exp100_is_selected(data)) {
+
          if((k->httpcode == 417) && Curl_http_exp100_is_selected(data)) {
            /* 417 Expectation Failed - try again without the Expect
               header */
            if(!k->writebytecount && http_exp100_is_waiting(data)) {
@@ -3773,17 +3480,19 @@ static CURLcode http_on_response(struct Curl_easy *data,
     like to call http2_handle_stream_close to properly close a
     stream. In order to do this, we keep reading until we
     close the stream. */
-
  if((0 == k->maxdownload) && (k->httpversion_sent < 20))
+
  if(0 == k->maxdownload
+
     && !Curl_conn_is_http2(data, conn, FIRSTSOCKET)
+
     && !Curl_conn_is_http3(data, conn, FIRSTSOCKET))
    k->download_done = TRUE;

  /* final response without error, prepare to receive the body */
-
  result = http_firstwrite(data);
+
  result = Curl_http_firstwrite(data);

  if(!result)
    /* This is the last response that we get for the current request.
     * Check on the body size and determine if the response is complete.
     */
-
    result = http_size(data);
+
    result = Curl_http_size(data);

out:
  if(last_hd) {
@@ -3858,7 +3567,7 @@ static CURLcode http_rw_hd(struct Curl_easy *data,
          p++;
          if((p[0] == '.') && (p[1] == '0' || p[1] == '1')) {
            if(ISBLANK(p[2])) {
-
              k->httpversion = (unsigned char)(10 + (p[1] - '0'));
+
              k->httpversion = 10 + (p[1] - '0');
              p += 3;
              if(ISDIGIT(p[0]) && ISDIGIT(p[1]) && ISDIGIT(p[2])) {
                k->httpcode = (p[0] - '0') * 100 + (p[1] - '0') * 10 +
@@ -3878,7 +3587,7 @@ static CURLcode http_rw_hd(struct Curl_easy *data,
        case '3':
          if(!ISBLANK(p[1]))
            break;
-
          k->httpversion = (unsigned char)((*p - '0') * 10);
+
          k->httpversion = (*p - '0') * 10;
          p += 2;
          if(ISDIGIT(p[0]) && ISDIGIT(p[1]) && ISDIGIT(p[2])) {
            k->httpcode = (p[0] - '0') * 100 + (p[1] - '0') * 10 +
@@ -3936,7 +3645,7 @@ static CURLcode http_rw_hd(struct Curl_easy *data,
    }

    if(fine_statusline) {
-
      result = http_statusline(data, data->conn);
+
      result = Curl_http_statusline(data, data->conn);
      if(result)
        return result;
      writetype |= CLIENTWRITE_STATUS;
@@ -3951,7 +3660,7 @@ static CURLcode http_rw_hd(struct Curl_easy *data,
  if(result)
    return result;

-
  result = http_header(data, hd, hdlen);
+
  result = Curl_http_header(data, hd, hdlen);
  if(result)
    return result;

@@ -4008,11 +3717,10 @@ static CURLcode http_parse_headers(struct Curl_easy *data,
                           Curl_dyn_len(&data->state.headerb));

        if(st == STATUS_BAD) {
-
          /* this is not the beginning of a protocol first header line.
-
           * Cannot be 0.9 if version was detected or connection was reused. */
+
          /* this is not the beginning of a protocol first header line */
          k->header = FALSE;
          streamclose(conn, "bad HTTP: No end-of-message indicator");
-
          if((k->httpversion >= 10) || conn->bits.reuse) {
+
          if(conn->httpversion >= 10) {
            failf(data, "Invalid status line");
            return CURLE_WEIRD_SERVER_REPLY;
          }
@@ -4047,9 +3755,8 @@ static CURLcode http_parse_headers(struct Curl_easy *data,
                                       Curl_dyn_len(&data->state.headerb));
      if(st == STATUS_BAD) {
        streamclose(conn, "bad HTTP: No end-of-message indicator");
-
        /* this is not the beginning of a protocol first header line.
-
         * Cannot be 0.9 if version was detected or connection was reused. */
-
        if((k->httpversion >= 10) || conn->bits.reuse) {
+
        /* this is not the beginning of a protocol first header line */
+
        if(conn->httpversion >= 10) {
          failf(data, "Invalid status line");
          return CURLE_WEIRD_SERVER_REPLY;
        }
@@ -4408,9 +4115,7 @@ struct name_const {
  size_t namelen;
};

-
/* keep them sorted by length! */
static struct name_const H2_NON_FIELD[] = {
-
  { STRCONST("TE") },
  { STRCONST("Host") },
  { STRCONST("Upgrade") },
  { STRCONST("Connection") },
@@ -4455,7 +4160,7 @@ CURLcode Curl_http_req_to_h2(struct dynhds *h2_headers,
      infof(data, "set pseudo header %s to %s", HTTP_PSEUDO_SCHEME, scheme);
    }
    else {
-
      scheme = Curl_conn_is_ssl(data->conn, FIRSTSOCKET) ?
+
      scheme = (data->conn && data->conn->handler->flags & PROTOPT_SSL) ?
        "https" : "http";
    }
  }
@@ -4654,7 +4359,7 @@ static CURLcode http_exp100_add_reader(struct Curl_easy *data)
  return result;
}

-
static void http_exp100_got100(struct Curl_easy *data)
+
void Curl_http_exp100_got100(struct Curl_easy *data)
{
  struct Curl_creader *r = Curl_creader_get_by_type(data, &cr_exp100);
  if(r)
@@ -4666,7 +4371,7 @@ static bool http_exp100_is_waiting(struct Curl_easy *data)
  struct Curl_creader *r = Curl_creader_get_by_type(data, &cr_exp100);
  if(r) {
    struct cr_exp100_ctx *ctx = r->ctx;
-
    return ctx->state == EXP100_AWAITING_CONTINUE;
+
    return (ctx->state == EXP100_AWAITING_CONTINUE);
  }
  return FALSE;
}
@@ -4678,7 +4383,7 @@ static void http_exp100_send_anyway(struct Curl_easy *data)
    http_exp100_continue(data, r);
}

-
static bool http_exp100_is_selected(struct Curl_easy *data)
+
bool Curl_http_exp100_is_selected(struct Curl_easy *data)
{
  struct Curl_creader *r = Curl_creader_get_by_type(data, &cr_exp100);
  return !!r;
modified external/curl/lib/http.h
@@ -42,18 +42,6 @@ typedef enum {
  HTTPREQ_HEAD
} Curl_HttpReq;

-

-
/* When redirecting transfers. */
-
typedef enum {
-
  FOLLOW_NONE,  /* not used within the function, just a placeholder to
-
                   allow initing to this */
-
  FOLLOW_FAKE,  /* only records stuff, not actually following */
-
  FOLLOW_RETRY, /* set if this is a request retry as opposed to a real
-
                   redirect following */
-
  FOLLOW_REDIR /* a full true redirect */
-
} followtype;
-

-

#ifndef CURL_DISABLE_HTTP

#if defined(USE_HTTP3)
@@ -86,14 +74,50 @@ char *Curl_checkProxyheaders(struct Curl_easy *data,
                             const char *thisheader,
                             const size_t thislen);

-
CURLcode Curl_add_timecondition(struct Curl_easy *data, struct dynbuf *req);
-
CURLcode Curl_add_custom_headers(struct Curl_easy *data, bool is_connect,
-
                                 int httpversion, struct dynbuf *req);
-
CURLcode Curl_dynhds_add_custom(struct Curl_easy *data, bool is_connect,
-
                                struct dynhds *hds);
+
CURLcode Curl_add_timecondition(struct Curl_easy *data,
+
#ifndef USE_HYPER
+
                                struct dynbuf *req
+
#else
+
                                void *headers
+
#endif
+
  );
+
CURLcode Curl_add_custom_headers(struct Curl_easy *data,
+
                                 bool is_connect,
+
#ifndef USE_HYPER
+
                                 struct dynbuf *req
+
#else
+
                                 void *headers
+
#endif
+
  );

void Curl_http_method(struct Curl_easy *data, struct connectdata *conn,
                      const char **method, Curl_HttpReq *);
+
CURLcode Curl_http_useragent(struct Curl_easy *data);
+
CURLcode Curl_http_host(struct Curl_easy *data, struct connectdata *conn);
+
CURLcode Curl_http_target(struct Curl_easy *data, struct connectdata *conn,
+
                          struct dynbuf *req);
+
CURLcode Curl_http_statusline(struct Curl_easy *data,
+
                              struct connectdata *conn);
+
CURLcode Curl_http_header(struct Curl_easy *data,
+
                          const char *hd, size_t hdlen);
+
CURLcode Curl_transferencode(struct Curl_easy *data);
+
CURLcode Curl_http_req_set_reader(struct Curl_easy *data,
+
                                  Curl_HttpReq httpreq,
+
                                  const char **tep);
+
CURLcode Curl_http_req_complete(struct Curl_easy *data,
+
                                struct dynbuf *r, Curl_HttpReq httpreq);
+
bool Curl_use_http_1_1plus(const struct Curl_easy *data,
+
                           const struct connectdata *conn);
+
#ifndef CURL_DISABLE_COOKIES
+
CURLcode Curl_http_cookies(struct Curl_easy *data,
+
                           struct connectdata *conn,
+
                           struct dynbuf *r);
+
#else
+
#define Curl_http_cookies(a,b,c) CURLE_OK
+
#endif
+
CURLcode Curl_http_range(struct Curl_easy *data,
+
                         Curl_HttpReq httpreq);
+
CURLcode Curl_http_firstwrite(struct Curl_easy *data);

/* protocol-specific functions set up to be called by the main engine */
CURLcode Curl_http_setup_conn(struct Curl_easy *data,
@@ -115,10 +139,6 @@ CURLcode Curl_http_input_auth(struct Curl_easy *data, bool proxy,
                              const char *auth);
CURLcode Curl_http_auth_act(struct Curl_easy *data);

-
/* follow a redirect or not */
-
CURLcode Curl_http_follow(struct Curl_easy *data, const char *newurl,
-
                          followtype type);
-

/* If only the PICKNONE bit is set, there has been a round-trip and we
   selected to use no auth at all. Ie, we actively select no auth, as opposed
   to not having one selected. The other CURLAUTH_* defines are present in the
@@ -155,6 +175,8 @@ CURLcode Curl_http_follow(struct Curl_easy *data, const char *newurl,
   version. This count includes CONNECT response headers. */
#define MAX_HTTP_RESP_HEADER_SIZE (300*1024)

+
bool Curl_http_exp100_is_selected(struct Curl_easy *data);
+
void Curl_http_exp100_got100(struct Curl_easy *data);

#endif /* CURL_DISABLE_HTTP */

@@ -162,6 +184,8 @@ CURLcode Curl_http_follow(struct Curl_easy *data, const char *newurl,
 * HTTP unique setup
 ***************************************************************************/

+
CURLcode Curl_http_size(struct Curl_easy *data);
+

CURLcode Curl_http_write_resp_hds(struct Curl_easy *data,
                                  const char *buf, size_t blen,
                                  size_t *pconsumed);
modified external/curl/lib/http2.c
@@ -198,6 +198,7 @@ static CURLcode h2_progress_egress(struct Curl_cfilter *cf,
 * All about the H2 internals of a stream
 */
struct h2_stream_ctx {
+
  struct bufq recvbuf; /* response buffer */
  struct bufq sendbuf; /* request buffer */
  struct h1_req_parser h1; /* parsing the request */
  struct dynhds resp_trailers; /* response trailer fields */
@@ -239,6 +240,7 @@ static struct h2_stream_ctx *h2_stream_ctx_create(struct cf_h2_ctx *ctx)
                  H2_STREAM_SEND_CHUNKS, BUFQ_OPT_NONE);
  Curl_h1_req_parse_init(&stream->h1, H1_PARSE_DEFAULT_MAX_LINE_LEN);
  Curl_dynhds_init(&stream->resp_trailers, 0, DYN_HTTP_REQUEST);
+
  stream->resp_hds_len = 0;
  stream->bodystarted = FALSE;
  stream->status_code = -1;
  stream->closed = FALSE;
@@ -2055,10 +2057,23 @@ static ssize_t cf_h2_recv(struct Curl_cfilter *cf, struct Curl_easy *data,
  }

  if(nread > 0) {
+
    size_t data_consumed = (size_t)nread;
    /* Now that we transferred this to the upper layer, we report
     * the actual amount of DATA consumed to the H2 session, so
     * that it adjusts stream flow control */
-
    nghttp2_session_consume(ctx->h2, stream->id, (size_t)nread);
+
    if(stream->resp_hds_len >= data_consumed) {
+
      stream->resp_hds_len -= data_consumed;  /* no DATA */
+
    }
+
    else {
+
      if(stream->resp_hds_len) {
+
        data_consumed -= stream->resp_hds_len;
+
        stream->resp_hds_len = 0;
+
      }
+
      if(data_consumed) {
+
        nghttp2_session_consume(ctx->h2, stream->id, data_consumed);
+
      }
+
    }
+

    if(stream->closed) {
      CURL_TRC_CF(data, cf, "[%d] DRAIN closed stream", stream->id);
      drain_stream(cf, data, stream);
@@ -2322,7 +2337,7 @@ static ssize_t cf_h2_send(struct Curl_cfilter *cf, struct Curl_easy *data,
  if(should_close_session(ctx)) {
    /* nghttp2 thinks this session is done. If the stream has not been
     * closed, this is an error state for out transfer */
-
    if(stream && stream->closed) {
+
    if(stream->closed) {
      nwritten = http2_handle_stream_close(cf, data, stream, err);
    }
    else {
@@ -2481,7 +2496,9 @@ static CURLcode cf_h2_connect(struct Curl_cfilter *cf,
  /* Send out our SETTINGS and ACKs and such. If that blocks, we
   * have it buffered and  can count this filter as being connected */
  result = h2_progress_egress(cf, data);
-
  if(result && (result != CURLE_AGAIN))
+
  if(result == CURLE_AGAIN)
+
    result = CURLE_OK;
+
  else if(result)
    goto out;

  *done = TRUE;
@@ -2621,6 +2638,9 @@ static CURLcode cf_h2_cntrl(struct Curl_cfilter *cf,
  case CF_CTRL_FLUSH:
    result = cf_h2_flush(cf, data);
    break;
+
  case CF_CTRL_DATA_DETACH:
+
    http2_data_done(cf, data);
+
    break;
  case CF_CTRL_DATA_DONE:
    http2_data_done(cf, data);
    break;
@@ -2635,8 +2655,10 @@ static bool cf_h2_data_pending(struct Curl_cfilter *cf,
                               const struct Curl_easy *data)
{
  struct cf_h2_ctx *ctx = cf->ctx;
+
  struct h2_stream_ctx *stream = H2_STREAM_CTX(ctx, data);

-
  if(ctx && !Curl_bufq_is_empty(&ctx->inbufq))
+
  if(ctx && (!Curl_bufq_is_empty(&ctx->inbufq)
+
            || (stream && !Curl_bufq_is_empty(&stream->sendbuf))))
    return TRUE;
  return cf->next ? cf->next->cft->has_data_pending(cf->next, data) : FALSE;
}
@@ -2706,9 +2728,6 @@ static CURLcode cf_h2_query(struct Curl_cfilter *cf,
    }
    break;
  }
-
  case CF_QUERY_HTTP_VERSION:
-
    *pres1 = 20;
-
    return CURLE_OK;
  default:
    break;
  }
@@ -2719,7 +2738,7 @@ static CURLcode cf_h2_query(struct Curl_cfilter *cf,

struct Curl_cftype Curl_cft_nghttp2 = {
  "HTTP/2",
-
  CF_TYPE_MULTIPLEX | CF_TYPE_HTTP,
+
  CF_TYPE_MULTIPLEX,
  CURL_LOG_LVL_NONE,
  cf_h2_destroy,
  cf_h2_connect,
@@ -2793,12 +2812,35 @@ out:
  return result;
}

-
bool Curl_http2_may_switch(struct Curl_easy *data)
+
static bool cf_is_http2(struct Curl_cfilter *cf,
+
                        const struct Curl_easy *data)
+
{
+
  (void)data;
+
  for(; cf; cf = cf->next) {
+
    if(cf->cft == &Curl_cft_nghttp2)
+
      return TRUE;
+
    if(cf->cft->flags & CF_TYPE_IP_CONNECT)
+
      return FALSE;
+
  }
+
  return FALSE;
+
}
+

+
bool Curl_conn_is_http2(const struct Curl_easy *data,
+
                        const struct connectdata *conn,
+
                        int sockindex)
+
{
+
  return conn ? cf_is_http2(conn->cfilter[sockindex], data) : FALSE;
+
}
+

+
bool Curl_http2_may_switch(struct Curl_easy *data,
+
                           struct connectdata *conn,
+
                           int sockindex)
{
-
  if(Curl_conn_http_version(data) < 20 &&
+
  (void)sockindex;
+
  if(!Curl_conn_is_http2(data, conn, sockindex) &&
     data->state.httpwant == CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE) {
#ifndef CURL_DISABLE_PROXY
-
    if(data->conn->bits.httpproxy && !data->conn->bits.tunnel_proxy) {
+
    if(conn->bits.httpproxy && !conn->bits.tunnel_proxy) {
      /* We do not support HTTP/2 proxies yet. Also it is debatable
         whether or not this setting should apply to HTTP/2 proxies. */
      infof(data, "Ignoring HTTP/2 prior knowledge due to proxy");
@@ -2810,19 +2852,21 @@ bool Curl_http2_may_switch(struct Curl_easy *data)
  return FALSE;
}

-
CURLcode Curl_http2_switch(struct Curl_easy *data)
+
CURLcode Curl_http2_switch(struct Curl_easy *data,
+
                           struct connectdata *conn, int sockindex)
{
  struct Curl_cfilter *cf;
  CURLcode result;

-
  DEBUGASSERT(Curl_conn_http_version(data) < 20);
+
  DEBUGASSERT(!Curl_conn_is_http2(data, conn, sockindex));

-
  result = http2_cfilter_add(&cf, data, data->conn, FIRSTSOCKET, FALSE);
+
  result = http2_cfilter_add(&cf, data, conn, sockindex, FALSE);
  if(result)
    return result;
  CURL_TRC_CF(data, cf, "switching connection to HTTP/2");

-
  data->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
+
  conn->httpversion = 20; /* we know we are on HTTP/2 now */
+
  conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
  Curl_multi_connchanged(data->multi);

  if(cf->next) {
@@ -2837,13 +2881,14 @@ CURLcode Curl_http2_switch_at(struct Curl_cfilter *cf, struct Curl_easy *data)
  struct Curl_cfilter *cf_h2;
  CURLcode result;

-
  DEBUGASSERT(Curl_conn_http_version(data) < 20);
+
  DEBUGASSERT(!cf_is_http2(cf, data));

  result = http2_cfilter_insert_after(cf, data, FALSE);
  if(result)
    return result;

  cf_h2 = cf->next;
+
  cf->conn->httpversion = 20; /* we know we are on HTTP/2 now */
  cf->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
  Curl_multi_connchanged(data->multi);

@@ -2862,7 +2907,7 @@ CURLcode Curl_http2_upgrade(struct Curl_easy *data,
  struct cf_h2_ctx *ctx;
  CURLcode result;

-
  DEBUGASSERT(Curl_conn_http_version(data) <  20);
+
  DEBUGASSERT(!Curl_conn_is_http2(data, conn, sockindex));
  DEBUGASSERT(data->req.upgr101 == UPGR101_RECEIVED);

  result = http2_cfilter_add(&cf, data, conn, sockindex, TRUE);
@@ -2895,6 +2940,7 @@ CURLcode Curl_http2_upgrade(struct Curl_easy *data,
          " after upgrade: len=%zu", nread);
  }

+
  conn->httpversion = 20; /* we know we are on HTTP/2 now */
  conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
  Curl_multi_connchanged(data->multi);

@@ -2909,9 +2955,9 @@ CURLcode Curl_http2_upgrade(struct Curl_easy *data,
   CURLE_HTTP2_STREAM error! */
bool Curl_h2_http_1_1_error(struct Curl_easy *data)
{
-
  if(Curl_conn_http_version(data) == 20) {
+
  if(Curl_conn_is_http2(data, data->conn, FIRSTSOCKET)) {
    int err = Curl_conn_get_stream_error(data, data->conn, FIRSTSOCKET);
-
    return err == NGHTTP2_HTTP_1_1_REQUIRED;
+
    return (err == NGHTTP2_HTTP_1_1_REQUIRED);
  }
  return FALSE;
}
modified external/curl/lib/http2.h
@@ -44,9 +44,15 @@ CURLcode Curl_http2_request_upgrade(struct dynbuf *req,
/* returns true if the HTTP/2 stream error was HTTP_1_1_REQUIRED */
bool Curl_h2_http_1_1_error(struct Curl_easy *data);

-
bool Curl_http2_may_switch(struct Curl_easy *data);
+
bool Curl_conn_is_http2(const struct Curl_easy *data,
+
                        const struct connectdata *conn,
+
                        int sockindex);
+
bool Curl_http2_may_switch(struct Curl_easy *data,
+
                           struct connectdata *conn,
+
                           int sockindex);

-
CURLcode Curl_http2_switch(struct Curl_easy *data);
+
CURLcode Curl_http2_switch(struct Curl_easy *data,
+
                           struct connectdata *conn, int sockindex);

CURLcode Curl_http2_switch_at(struct Curl_cfilter *cf, struct Curl_easy *data);

@@ -63,10 +69,12 @@ extern struct Curl_cftype Curl_cft_nghttp2;

#else /* USE_NGHTTP2 */

-
#define Curl_http2_may_switch(a) FALSE
+
#define Curl_cf_is_http2(a,b) FALSE
+
#define Curl_conn_is_http2(a,b,c) FALSE
+
#define Curl_http2_may_switch(a,b,c) FALSE

#define Curl_http2_request_upgrade(x,y) CURLE_UNSUPPORTED_PROTOCOL
-
#define Curl_http2_switch(a)            CURLE_UNSUPPORTED_PROTOCOL
+
#define Curl_http2_switch(a,b,c)        CURLE_UNSUPPORTED_PROTOCOL
#define Curl_http2_upgrade(a,b,c,d,e)   CURLE_UNSUPPORTED_PROTOCOL
#define Curl_h2_http_1_1_error(x) 0
#endif
modified external/curl/lib/http_aws_sigv4.c
@@ -35,7 +35,6 @@
#include "parsedate.h"
#include "sendf.h"
#include "escape.h"
-
#include "strparse.h"

#include <time.h>

@@ -119,6 +118,8 @@ static void trim_headers(struct curl_slist *head)

/* maximum length for the aws sivg4 parts */
#define MAX_SIGV4_LEN 64
+
#define MAX_SIGV4_LEN_TXT "64"
+

#define DATE_HDR_KEY_LEN (MAX_SIGV4_LEN + sizeof("X--Date"))

/* string been x-PROVIDER-date:TIMESTAMP, I need +1 for ':' */
@@ -159,8 +160,7 @@ static int compare_header_names(const char *a, const char *b)
static CURLcode make_headers(struct Curl_easy *data,
                             const char *hostname,
                             char *timestamp,
-
                             const char *provider1,
-
                             size_t plen, /* length of provider1 */
+
                             char *provider1,
                             char **date_header,
                             char *content_sha256_header,
                             struct dynbuf *canonical_headers,
@@ -174,16 +174,16 @@ static CURLcode make_headers(struct Curl_easy *data,
  struct curl_slist *l;
  bool again = TRUE;

-
  msnprintf(date_hdr_key, DATE_HDR_KEY_LEN, "X-%.*s-Date",
-
            (int)plen, provider1);
-
  /* provider1 ucfirst */
-
  Curl_strntolower(&date_hdr_key[2], provider1, plen);
-
  date_hdr_key[2] = Curl_raw_toupper(provider1[0]);
+
  /* provider1 mid */
+
  Curl_strntolower(provider1, provider1, strlen(provider1));
+
  provider1[0] = Curl_raw_toupper(provider1[0]);
+

+
  msnprintf(date_hdr_key, DATE_HDR_KEY_LEN, "X-%s-Date", provider1);

-
  msnprintf(date_full_hdr, DATE_FULL_HDR_LEN,
-
            "x-%.*s-date:%s", (int)plen, provider1, timestamp);
  /* provider1 lowercase */
-
  Curl_strntolower(&date_full_hdr[2], provider1, plen);
+
  Curl_strntolower(provider1, provider1, 1); /* first byte only */
+
  msnprintf(date_full_hdr, DATE_FULL_HDR_LEN,
+
            "x-%s-date:%s", provider1, timestamp);

  if(!Curl_checkheaders(data, STRCONST("Host"))) {
    char *fullhost;
@@ -336,7 +336,6 @@ fail:
/* try to parse a payload hash from the content-sha256 header */
static char *parse_content_sha_hdr(struct Curl_easy *data,
                                   const char *provider1,
-
                                   size_t plen,
                                   size_t *value_len)
{
  char key[CONTENT_SHA256_KEY_LEN];
@@ -344,8 +343,7 @@ static char *parse_content_sha_hdr(struct Curl_easy *data,
  char *value;
  size_t len;

-
  key_len = msnprintf(key, sizeof(key), "x-%.*s-content-sha256",
-
                      (int)plen, provider1);
+
  key_len = msnprintf(key, sizeof(key), "x-%s-content-sha256", provider1);

  value = Curl_checkheaders(data, key, key_len);
  if(!value)
@@ -391,7 +389,6 @@ static CURLcode calc_payload_hash(struct Curl_easy *data,

static CURLcode calc_s3_payload_hash(struct Curl_easy *data,
                                     Curl_HttpReq httpreq, char *provider1,
-
                                     size_t plen,
                                     unsigned char *sha_hash,
                                     char *sha_hex, char *header)
{
@@ -418,7 +415,7 @@ static CURLcode calc_s3_payload_hash(struct Curl_easy *data,

  /* format the required content-sha256 header */
  msnprintf(header, CONTENT_SHA256_HDR_LEN,
-
            "x-%.*s-content-sha256: %s", (int)plen, provider1, sha_hex);
+
            "x-%s-content-sha256: %s", provider1, sha_hex);

  ret = CURLE_OK;
fail:
@@ -435,8 +432,6 @@ static int compare_func(const void *a, const void *b)
  const struct pair *aa = a;
  const struct pair *bb = b;
  /* If one element is empty, the other is always sorted higher */
-
  if(aa->len == 0 && bb->len == 0)
-
    return 0;
  if(aa->len == 0)
    return -1;
  if(bb->len == 0)
@@ -576,11 +571,12 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
  CURLcode result = CURLE_OUT_OF_MEMORY;
  struct connectdata *conn = data->conn;
  size_t len;
-
  char *line;
-
  struct Curl_str provider0;
-
  struct Curl_str provider1;
-
  struct Curl_str region = { NULL, 0};
-
  struct Curl_str service = { NULL, 0};
+
  const char *arg;
+
  char provider0[MAX_SIGV4_LEN + 1]="";
+
  char provider1[MAX_SIGV4_LEN + 1]="";
+
  char region[MAX_SIGV4_LEN + 1]="";
+
  char service[MAX_SIGV4_LEN + 1]="";
+
  bool sign_as_s3 = FALSE;
  const char *hostname = conn->host.name;
  time_t clock;
  struct tm tm;
@@ -629,31 +625,27 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
   * AWS is the default because most of non-amazon providers
   * are still using aws:amz as a prefix.
   */
-
  line = data->set.str[STRING_AWS_SIGV4] ?
-
    data->set.str[STRING_AWS_SIGV4] : (char *)"aws:amz";
+
  arg = data->set.str[STRING_AWS_SIGV4] ?
+
    data->set.str[STRING_AWS_SIGV4] : "aws:amz";

-
  /* provider0[:provider1[:region[:service]]]
+
  /* provider1[:provider2[:region[:service]]]

     No string can be longer than N bytes of non-whitespace
  */
-
  if(Curl_str_until(&line, &provider0, MAX_SIGV4_LEN, ':')) {
+
  (void)sscanf(arg, "%" MAX_SIGV4_LEN_TXT "[^:]"
+
               ":%" MAX_SIGV4_LEN_TXT "[^:]"
+
               ":%" MAX_SIGV4_LEN_TXT "[^:]"
+
               ":%" MAX_SIGV4_LEN_TXT "s",
+
               provider0, provider1, region, service);
+
  if(!provider0[0]) {
    failf(data, "first aws-sigv4 provider cannot be empty");
    result = CURLE_BAD_FUNCTION_ARGUMENT;
    goto fail;
  }
-
  if(Curl_str_single(&line, ':') ||
-
     Curl_str_until(&line, &provider1, MAX_SIGV4_LEN, ':')) {
-
    provider1.str = provider0.str;
-
    provider1.len = provider0.len;
-
  }
-
  else if(Curl_str_single(&line, ':') ||
-
          Curl_str_until(&line, &region, MAX_SIGV4_LEN, ':') ||
-
          Curl_str_single(&line, ':') ||
-
          Curl_str_until(&line, &service, MAX_SIGV4_LEN, ':')) {
-
    /* nothing to do */
-
  }
+
  else if(!provider1[0])
+
    strcpy(provider1, provider0);

-
  if(!service.len) {
+
  if(!service[0]) {
    char *hostdot = strchr(hostname, '.');
    if(!hostdot) {
      failf(data, "aws-sigv4: service missing in parameters and hostname");
@@ -666,13 +658,12 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
      result = CURLE_URL_MALFORMAT;
      goto fail;
    }
-
    service.str = (char *)hostname;
-
    service.len = len;
+
    memcpy(service, hostname, len);
+
    service[len] = '\0';

-
    infof(data, "aws_sigv4: picked service %.*s from host",
-
          (int)service.len, service.str);
+
    infof(data, "aws_sigv4: picked service %s from host", service);

-
    if(!region.len) {
+
    if(!region[0]) {
      const char *reg = hostdot + 1;
      const char *hostreg = strchr(reg, '.');
      if(!hostreg) {
@@ -686,29 +677,25 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
        result = CURLE_URL_MALFORMAT;
        goto fail;
      }
-
      region.str = (char *)reg;
-
      region.len = len;
-
      infof(data, "aws_sigv4: picked region %.*s from host",
-
            (int)region.len, region.str);
+
      memcpy(region, reg, len);
+
      region[len] = '\0';
+
      infof(data, "aws_sigv4: picked region %s from host", region);
    }
  }

  Curl_http_method(data, conn, &method, &httpreq);

-
  payload_hash = parse_content_sha_hdr(data, provider1.str, provider1.len,
-
                                       &payload_hash_len);
+
  /* AWS S3 requires a x-amz-content-sha256 header, and supports special
+
   * values like UNSIGNED-PAYLOAD */
+
  sign_as_s3 = (strcasecompare(provider0, "aws") &&
+
                strcasecompare(service, "s3"));

-
  if(!payload_hash) {
-
    /* AWS S3 requires a x-amz-content-sha256 header, and supports special
-
     * values like UNSIGNED-PAYLOAD */
-
    bool sign_as_s3 = ((provider0.len == 3) &&
-
                       strncasecompare(provider0.str, "aws", 3)) &&
-
      ((service.len == 2) && strncasecompare(service.str, "s3", 2));
+
  payload_hash = parse_content_sha_hdr(data, provider1, &payload_hash_len);

+
  if(!payload_hash) {
    if(sign_as_s3)
-
      result = calc_s3_payload_hash(data, httpreq,
-
                                    provider1.str, provider1.len,
-
                                    sha_hash, sha_hex, content_sha256_hdr);
+
      result = calc_s3_payload_hash(data, httpreq, provider1, sha_hash,
+
                                    sha_hex, content_sha256_hdr);
    else
      result = calc_payload_hash(data, sha_hash, sha_hex);
    if(result)
@@ -739,8 +726,7 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
    goto fail;
  }

-
  result = make_headers(data, hostname, timestamp,
-
                        provider1.str, provider1.len,
+
  result = make_headers(data, hostname, timestamp, provider1,
                        &date_header, content_sha256_hdr,
                        &canonical_headers, &signed_headers);
  if(result)
@@ -785,18 +771,14 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)

  DEBUGF(infof(data, "Canonical request: %s", canonical_request));

-
  request_type = aprintf("%.*s4_request", (int)provider0.len, provider0.str);
+
  /* provider 0 lowercase */
+
  Curl_strntolower(provider0, provider0, strlen(provider0));
+
  request_type = aprintf("%s4_request", provider0);
  if(!request_type)
    goto fail;

-
  /* provider0 is lowercased *after* aprintf() so that the buffer can be
-
     written to */
-
  Curl_strntolower(request_type, request_type, provider0.len);
-

-
  credential_scope = aprintf("%s/%.*s/%.*s/%s",
-
                             date, (int)region.len, region.str,
-
                             (int)service.len, service.str,
-
                             request_type);
+
  credential_scope = aprintf("%s/%s/%s/%s",
+
                             date, region, service, request_type);
  if(!credential_scope)
    goto fail;

@@ -806,41 +788,42 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)

  sha256_to_hex(sha_hex, sha_hash);

+
  /* provider 0 uppercase */
+
  Curl_strntoupper(provider0, provider0, strlen(provider0));
+

  /*
   * Google allows using RSA key instead of HMAC, so this code might change
   * in the future. For now we only support HMAC.
   */
-
  str_to_sign = aprintf("%.*s4-HMAC-SHA256\n" /* Algorithm */
+
  str_to_sign = aprintf("%s4-HMAC-SHA256\n" /* Algorithm */
                        "%s\n" /* RequestDateTime */
                        "%s\n" /* CredentialScope */
                        "%s",  /* HashedCanonicalRequest in hex */
-
                        (int)provider0.len, provider0.str,
+
                        provider0,
                        timestamp,
                        credential_scope,
                        sha_hex);
-
  if(!str_to_sign)
+
  if(!str_to_sign) {
    goto fail;
+
  }

-
  /* make provider0 part done uppercase */
-
  Curl_strntoupper(str_to_sign, provider0.str, provider0.len);
-

-
  secret = aprintf("%.*s4%s", (int)provider0.len, provider0.str,
+
  /* provider 0 uppercase */
+
  secret = aprintf("%s4%s", provider0,
                   data->state.aptr.passwd ?
                   data->state.aptr.passwd : "");
  if(!secret)
    goto fail;
-
  /* make provider0 part done uppercase */
-
  Curl_strntoupper(secret, provider0.str, provider0.len);

  HMAC_SHA256(secret, strlen(secret), date, strlen(date), sign0);
-
  HMAC_SHA256(sign0, sizeof(sign0), region.str, region.len, sign1);
-
  HMAC_SHA256(sign1, sizeof(sign1), service.str, service.len, sign0);
+
  HMAC_SHA256(sign0, sizeof(sign0), region, strlen(region), sign1);
+
  HMAC_SHA256(sign1, sizeof(sign1), service, strlen(service), sign0);
  HMAC_SHA256(sign0, sizeof(sign0), request_type, strlen(request_type), sign1);
  HMAC_SHA256(sign1, sizeof(sign1), str_to_sign, strlen(str_to_sign), sign0);

  sha256_to_hex(sha_hex, sign0);

-
  auth_headers = aprintf("Authorization: %.*s4-HMAC-SHA256 "
+
  /* provider 0 uppercase */
+
  auth_headers = aprintf("Authorization: %s4-HMAC-SHA256 "
                         "Credential=%s/%s, "
                         "SignedHeaders=%s, "
                         "Signature=%s\r\n"
@@ -851,7 +834,7 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
                          */
                         "%s"
                         "%s", /* optional sha256 header includes \r\n */
-
                         (int)provider0.len, provider0.str,
+
                         provider0,
                         user,
                         credential_scope,
                         Curl_dyn_ptr(&signed_headers),
@@ -861,9 +844,6 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
  if(!auth_headers) {
    goto fail;
  }
-
  /* provider 0 uppercase */
-
  Curl_strntoupper(&auth_headers[sizeof("Authorization: ") - 1],
-
                   provider0.str, provider0.len);

  Curl_safefree(data->state.aptr.userpwd);
  data->state.aptr.userpwd = auth_headers;
modified external/curl/lib/http_negotiate.c
@@ -27,7 +27,6 @@
#if !defined(CURL_DISABLE_HTTP) && defined(USE_SPNEGO)

#include "urldata.h"
-
#include "cfilters.h"
#include "sendf.h"
#include "http_negotiate.h"
#include "vauth/vauth.h"
@@ -110,7 +109,7 @@ CURLcode Curl_input_negotiate(struct Curl_easy *data, struct connectdata *conn,
#endif
  /* Check if the connection is using SSL and get the channel binding data */
#if defined(USE_SSL) && defined(HAVE_GSSAPI)
-
  if(Curl_conn_is_ssl(conn, FIRSTSOCKET)) {
+
  if(conn->handler->flags & PROTOPT_SSL) {
    Curl_dyn_init(&neg_ctx->channel_binding_data, SSL_CB_MAX_SIZE + 1);
    result = Curl_ssl_get_channel_binding(
      data, FIRSTSOCKET, &neg_ctx->channel_binding_data);
modified external/curl/lib/http_ntlm.c
@@ -252,12 +252,6 @@ CURLcode Curl_output_ntlm(struct Curl_easy *data, bool proxy)
    break;

  case NTLMSTATE_LAST:
-
    /* since this is a little artificial in that this is used without any
-
       outgoing auth headers being set, we need to set the bit by force */
-
    if(proxy)
-
      data->info.proxyauthpicked = CURLAUTH_NTLM;
-
    else
-
      data->info.httpauthpicked = CURLAUTH_NTLM;
    Curl_safefree(*allocuserpwd);
    authp->done = TRUE;
    break;
modified external/curl/lib/http_proxy.c
@@ -29,6 +29,9 @@
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_PROXY)

#include <curl/curl.h>
+
#ifdef USE_HYPER
+
#include <hyper.h>
+
#endif
#include "sendf.h"
#include "http.h"
#include "url.h"
@@ -56,7 +59,7 @@ static bool hd_name_eq(const char *n1, size_t n1len,
}

static CURLcode dynhds_add_custom(struct Curl_easy *data,
-
                                  bool is_connect, int httpversion,
+
                                  bool is_connect,
                                  struct dynhds *hds)
{
  struct connectdata *conn = data->conn;
@@ -169,9 +172,9 @@ static CURLcode dynhds_add_custom(struct Curl_easy *data,
                 Connection: */
              hd_name_eq(name, namelen, STRCONST("Connection:")))
        ;
-
      else if((httpversion >= 20) &&
+
      else if((conn->httpversion >= 20) &&
              hd_name_eq(name, namelen, STRCONST("Transfer-Encoding:")))
-
        /* HTTP/2 and HTTP/3 do not support chunked requests */
+
        /* HTTP/2 does not support chunked requests */
        ;
      else if((hd_name_eq(name, namelen, STRCONST("Authorization:")) ||
               hd_name_eq(name, namelen, STRCONST("Cookie:"))) &&
@@ -221,18 +224,11 @@ CURLcode Curl_http_proxy_get_destination(struct Curl_cfilter *cf,
  return CURLE_OK;
}

-
struct cf_proxy_ctx {
-
  /* the protocol specific sub-filter we install during connect */
-
  struct Curl_cfilter *cf_protocol;
-
  int httpversion; /* HTTP version used to CONNECT */
-
};
-

CURLcode Curl_http_proxy_create_CONNECT(struct httpreq **preq,
                                        struct Curl_cfilter *cf,
                                        struct Curl_easy *data,
                                        int http_version_major)
{
-
  struct cf_proxy_ctx *ctx = cf->ctx;
  const char *hostname = NULL;
  char *authority = NULL;
  int port;
@@ -293,7 +289,7 @@ CURLcode Curl_http_proxy_create_CONNECT(struct httpreq **preq,
      goto out;
  }

-
  result = dynhds_add_custom(data, TRUE, ctx->httpversion, &req->headers);
+
  result = dynhds_add_custom(data, TRUE, &req->headers);

out:
  if(result && req) {
@@ -305,6 +301,12 @@ out:
  return result;
}

+

+
struct cf_proxy_ctx {
+
  /* the protocol specific sub-filter we install during connect */
+
  struct Curl_cfilter *cf_protocol;
+
};
+

static CURLcode http_proxy_cf_connect(struct Curl_cfilter *cf,
                                      struct Curl_easy *data,
                                      bool blocking, bool *done)
@@ -326,7 +328,6 @@ connect_sub:
  *done = FALSE;
  if(!ctx->cf_protocol) {
    struct Curl_cfilter *cf_protocol = NULL;
-
    int httpversion = 0;
    int alpn = Curl_conn_cf_is_ssl(cf->next) ?
      cf->conn->proxy_alpn : CURL_HTTP_VERSION_1_1;

@@ -342,7 +343,6 @@ connect_sub:
      if(result)
        goto out;
      cf_protocol = cf->next;
-
      httpversion = (alpn == CURL_HTTP_VERSION_1_0) ? 10 : 11;
      break;
#ifdef USE_NGHTTP2
    case CURL_HTTP_VERSION_2:
@@ -352,7 +352,6 @@ connect_sub:
      if(result)
        goto out;
      cf_protocol = cf->next;
-
      httpversion = 20;
      break;
#endif
    default:
@@ -362,7 +361,6 @@ connect_sub:
    }

    ctx->cf_protocol = cf_protocol;
-
    ctx->httpversion = httpversion;
    /* after we installed the filter "below" us, we call connect
     * on out sub-chain again.
     */
deleted external/curl/lib/httpsrr.c
@@ -1,167 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-

-
#include "curl_setup.h"
-

-
#ifdef USE_HTTPSRR
-

-
#include "urldata.h"
-
#include "curl_addrinfo.h"
-
#include "httpsrr.h"
-
#include "connect.h"
-
#include "sendf.h"
-

-
/* The last 3 #include files should be in this order */
-
#include "curl_printf.h"
-
#include "curl_memory.h"
-
#include "memdebug.h"
-

-
CURLcode Curl_httpsrr_decode_alpn(const unsigned char *cp, size_t len,
-
                                  unsigned char *alpns)
-
{
-
  /*
-
   * spec here is as per RFC 9460, section-7.1.1
-
   * encoding is a concatenated list of strings each preceded by a one
-
   * octet length
-
   * output is comma-sep list of the strings
-
   * implementations may or may not handle quoting of comma within
-
   * string values, so we might see a comma within the wire format
-
   * version of a string, in which case we will precede that by a
-
   * backslash - same goes for a backslash character, and of course
-
   * we need to use two backslashes in strings when we mean one;-)
-
   */
-
  struct dynbuf dval;
-
  int idnum = 0;
-

-
  Curl_dyn_init(&dval, DYN_DOH_RESPONSE);
-
  while(len > 0) {
-
    size_t tlen = (size_t) *cp++;
-
    size_t i;
-
    enum alpnid id;
-
    len--;
-
    if(tlen > len)
-
      goto err;
-
    /* add escape char if needed, clunky but easier to read */
-
    for(i = 0; i != tlen; i++) {
-
      if('\\' == *cp || ',' == *cp) {
-
        if(Curl_dyn_addn(&dval, "\\", 1))
-
          goto err;
-
      }
-
      if(Curl_dyn_addn(&dval, cp++, 1))
-
        goto err;
-
    }
-
    len -= tlen;
-

-
    /* we only store ALPN ids we know about */
-
    id = Curl_alpn2alpnid(Curl_dyn_ptr(&dval), Curl_dyn_len(&dval));
-
    if(id != ALPN_none) {
-
      if(idnum == MAX_HTTPSRR_ALPNS)
-
        break;
-
      alpns[idnum++] = (unsigned char)id;
-
    }
-
    Curl_dyn_reset(&dval);
-
  }
-
  Curl_dyn_free(&dval);
-
  if(idnum < MAX_HTTPSRR_ALPNS)
-
    alpns[idnum] = ALPN_none; /* terminate the list */
-
  return CURLE_OK;
-
err:
-
  Curl_dyn_free(&dval);
-
  return CURLE_BAD_CONTENT_ENCODING;
-
}
-

-
#ifdef USE_ARES
-

-
static void httpsrr_opt(struct Curl_easy *data,
-
                        const ares_dns_rr_t *rr,
-
                        ares_dns_rr_key_t key, size_t idx)
-
{
-
  size_t len = 0;
-
  const unsigned char *val = NULL;
-
  unsigned short code;
-
  struct thread_data *res = data->state.async.tdata;
-
  struct Curl_https_rrinfo *hi = &res->hinfo;
-
  code  = ares_dns_rr_get_opt(rr, key, idx, &val, &len);
-

-
  switch(code) {
-
  case HTTPS_RR_CODE_ALPN: /* str_list */
-
    Curl_httpsrr_decode_alpn(val, len, hi->alpns);
-
    infof(data, "HTTPS RR ALPN: %u %u %u %u",
-
          hi->alpns[0], hi->alpns[1], hi->alpns[2], hi->alpns[3]);
-
    break;
-
  case HTTPS_RR_CODE_NO_DEF_ALPN:
-
    infof(data, "HTTPS RR no-def-alpn");
-
    break;
-
  case HTTPS_RR_CODE_IPV4: /* addr4 list */
-
    infof(data, "HTTPS RR IPv4");
-
    break;
-
  case HTTPS_RR_CODE_ECH:
-
    infof(data, "HTTPS RR ECH");
-
    break;
-
  case HTTPS_RR_CODE_IPV6: /* addr6 list */
-
    infof(data, "HTTPS RR IPv6");
-
    break;
-
  case HTTPS_RR_CODE_PORT:
-
    infof(data, "HTTPS RR port");
-
    break;
-
  default:
-
    infof(data, "HTTPS RR unknown code");
-
    break;
-
  }
-
}
-

-
void Curl_dnsrec_done_cb(void *arg, ares_status_t status,
-
                         size_t timeouts,
-
                         const ares_dns_record_t *dnsrec)
-
{
-
  struct Curl_easy *data = arg;
-
  size_t i;
-
#ifdef CURLRES_ARES
-
  struct thread_data *res = data->state.async.tdata;
-

-
  res->num_pending--;
-
#endif
-
  (void)timeouts;
-
  if((ARES_SUCCESS != status) || !dnsrec)
-
    return;
-

-
  for(i = 0; i < ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER); i++) {
-
    size_t opt;
-
    const ares_dns_rr_t *rr =
-
      ares_dns_record_rr_get_const(dnsrec, ARES_SECTION_ANSWER, i);
-
    if(ares_dns_rr_get_type(rr) != ARES_REC_TYPE_HTTPS)
-
      continue;
-
    /* When SvcPriority is 0, the SVCB record is in AliasMode. Otherwise, it
-
       is in ServiceMode */
-
    infof(data, "HTTPS RR priority: %u",
-
          ares_dns_rr_get_u16(rr, ARES_RR_HTTPS_PRIORITY));
-
    for(opt = 0; opt < ares_dns_rr_get_opt_cnt(rr, ARES_RR_HTTPS_PARAMS);
-
        opt++)
-
      httpsrr_opt(data, rr, ARES_RR_HTTPS_PARAMS, opt);
-
  }
-
}
-

-
#endif /* USE_ARES */
-

-
#endif /* USE_HTTPSRR */
deleted external/curl/lib/httpsrr.h
@@ -1,76 +0,0 @@
-
#ifndef HEADER_CURL_HTTPSRR_H
-
#define HEADER_CURL_HTTPSRR_H
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-

-
#include "curl_setup.h"
-

-
#ifdef USE_ARES
-
#include <ares.h>
-
#endif
-

-
#ifdef USE_HTTPSRR
-

-
#define CURL_MAXLEN_host_name 253
-
#define MAX_HTTPSRR_ALPNS 4
-

-
struct Curl_https_rrinfo {
-
  /*
-
   * Fields from HTTPS RR. The only mandatory fields are priority and target.
-
   * See https://datatracker.ietf.org/doc/html/rfc9460#section-14.3.2
-
   */
-
  char *target;
-
  unsigned char *ipv4hints; /* keytag = 4 */
-
  size_t ipv4hints_len;
-
  unsigned char *echconfiglist; /* keytag = 5 */
-
  size_t echconfiglist_len;
-
  unsigned char *ipv6hints; /* keytag = 6 */
-
  size_t ipv6hints_len;
-
  unsigned char alpns[MAX_HTTPSRR_ALPNS]; /* keytag = 1 */
-
  /* store parsed alpnid entries in the array, end with ALPN_none */
-
  int port; /* -1 means not set */
-
  uint16_t priority;
-
  bool no_def_alpn; /* keytag = 2 */
-
};
-
#endif
-

-
/*
-
 * Code points for DNS wire format SvcParams as per RFC 9460
-
 */
-
#define HTTPS_RR_CODE_ALPN            0x01
-
#define HTTPS_RR_CODE_NO_DEF_ALPN     0x02
-
#define HTTPS_RR_CODE_PORT            0x03
-
#define HTTPS_RR_CODE_IPV4            0x04
-
#define HTTPS_RR_CODE_ECH             0x05
-
#define HTTPS_RR_CODE_IPV6            0x06
-

-
CURLcode Curl_httpsrr_decode_alpn(const unsigned char *cp, size_t len,
-
                                  unsigned char *alpns);
-

-
#if defined(USE_ARES) && defined(USE_HTTPSRR)
-
void Curl_dnsrec_done_cb(void *arg, ares_status_t status,
-
                         size_t timeouts,
-
                         const ares_dns_record_t *dnsrec);
-
#endif
-
#endif /* HEADER_CURL_HTTPSRR_H */
modified external/curl/lib/imap.c
@@ -134,7 +134,6 @@ const struct Curl_handler Curl_handler_imap = {
  ZERO_NULL,                        /* write_resp_hd */
  ZERO_NULL,                        /* connection_check */
  ZERO_NULL,                        /* attach connection */
-
  ZERO_NULL,                        /* follow */
  PORT_IMAP,                        /* defport */
  CURLPROTO_IMAP,                   /* protocol */
  CURLPROTO_IMAP,                   /* family */
@@ -165,7 +164,6 @@ const struct Curl_handler Curl_handler_imaps = {
  ZERO_NULL,                        /* write_resp_hd */
  ZERO_NULL,                        /* connection_check */
  ZERO_NULL,                        /* attach connection */
-
  ZERO_NULL,                        /* follow */
  PORT_IMAPS,                       /* defport */
  CURLPROTO_IMAPS,                  /* protocol */
  CURLPROTO_IMAP,                   /* family */
@@ -1392,7 +1390,7 @@ static CURLcode imap_multi_statemach(struct Curl_easy *data, bool *done)
  struct connectdata *conn = data->conn;
  struct imap_conn *imapc = &conn->proto.imapc;

-
  if(Curl_conn_is_ssl(conn, FIRSTSOCKET) && !imapc->ssldone) {
+
  if((conn->handler->flags & PROTOPT_SSL) && !imapc->ssldone) {
    bool ssldone = FALSE;
    result = Curl_conn_connect(data, FIRSTSOCKET, FALSE, &ssldone);
    imapc->ssldone = ssldone;
modified external/curl/lib/inet_ntop.c
@@ -75,7 +75,7 @@ static char *inet_ntop4(const unsigned char *src, char *dst, size_t size)
  len = strlen(tmp);
  if(len == 0 || len >= size) {
    errno = ENOSPC;
-
    return NULL;
+
    return (NULL);
  }
  strcpy(dst, tmp);
  return dst;
@@ -154,7 +154,7 @@ static char *inet_ntop6(const unsigned char *src, char *dst, size_t size)
        (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) {
      if(!inet_ntop4(src + 12, tp, sizeof(tmp) - (tp - tmp))) {
        errno = ENOSPC;
-
        return NULL;
+
        return (NULL);
      }
      tp += strlen(tp);
      break;
@@ -172,7 +172,7 @@ static char *inet_ntop6(const unsigned char *src, char *dst, size_t size)
   */
  if((size_t)(tp - tmp) > size) {
    errno = ENOSPC;
-
    return NULL;
+
    return (NULL);
  }
  strcpy(dst, tmp);
  return dst;
modified external/curl/lib/inet_ntop.h
@@ -33,15 +33,8 @@ char *Curl_inet_ntop(int af, const void *addr, char *buf, size_t size);
#include <arpa/inet.h>
#endif
#ifdef _WIN32
-
#if defined(_MSC_VER) && (_MSC_VER <= 1900)
-
#define Curl_inet_ntop(af,addr,buf,size) inet_ntop(af, (void *)addr, buf, size)
-
#else
-
#define Curl_inet_ntop(af,addr,buf,size) inet_ntop(af, addr, buf, size)
-
#endif
-
#elif defined(__AMIGA__)
#define Curl_inet_ntop(af,addr,buf,size) \
-
        (char *)inet_ntop(af, (void *)addr, (unsigned char *)buf, \
-
                          (curl_socklen_t)(size))
+
        inet_ntop(af, addr, buf, size)
#else
#define Curl_inet_ntop(af,addr,buf,size) \
        inet_ntop(af, addr, buf, (curl_socklen_t)(size))
modified external/curl/lib/inet_pton.c
@@ -76,12 +76,12 @@ Curl_inet_pton(int af, const char *src, void *dst)
{
  switch(af) {
  case AF_INET:
-
    return inet_pton4(src, (unsigned char *)dst);
+
    return (inet_pton4(src, (unsigned char *)dst));
  case AF_INET6:
-
    return inet_pton6(src, (unsigned char *)dst);
+
    return (inet_pton6(src, (unsigned char *)dst));
  default:
    errno = EAFNOSUPPORT;
-
    return -1;
+
    return (-1);
  }
  /* NOTREACHED */
}
@@ -116,29 +116,29 @@ inet_pton4(const char *src, unsigned char *dst)
                         (unsigned int)(pch - digits);

      if(saw_digit && *tp == 0)
-
        return 0;
+
        return (0);
      if(val > 255)
-
        return 0;
+
        return (0);
      *tp = (unsigned char)val;
      if(!saw_digit) {
        if(++octets > 4)
-
          return 0;
+
          return (0);
        saw_digit = 1;
      }
    }
    else if(ch == '.' && saw_digit) {
      if(octets == 4)
-
        return 0;
+
        return (0);
      *++tp = 0;
      saw_digit = 0;
    }
    else
-
      return 0;
+
      return (0);
  }
  if(octets < 4)
-
    return 0;
+
    return (0);
  memcpy(dst, tmp, INADDRSZ);
-
  return 1;
+
  return (1);
}

/* int
@@ -170,7 +170,7 @@ inet_pton6(const char *src, unsigned char *dst)
  /* Leading :: requires some special handling. */
  if(*src == ':')
    if(*++src != ':')
-
      return 0;
+
      return (0);
  curtok = src;
  saw_xdigit = 0;
  val = 0;
@@ -185,19 +185,19 @@ inet_pton6(const char *src, unsigned char *dst)
      val <<= 4;
      val |= (pch - xdigits);
      if(++saw_xdigit > 4)
-
        return 0;
+
        return (0);
      continue;
    }
    if(ch == ':') {
      curtok = src;
      if(!saw_xdigit) {
        if(colonp)
-
          return 0;
+
          return (0);
        colonp = tp;
        continue;
      }
      if(tp + INT16SZ > endp)
-
        return 0;
+
        return (0);
      *tp++ = (unsigned char) ((val >> 8) & 0xff);
      *tp++ = (unsigned char) (val & 0xff);
      saw_xdigit = 0;
@@ -210,11 +210,11 @@ inet_pton6(const char *src, unsigned char *dst)
      saw_xdigit = 0;
      break;    /* '\0' was seen by inet_pton4(). */
    }
-
    return 0;
+
    return (0);
  }
  if(saw_xdigit) {
    if(tp + INT16SZ > endp)
-
      return 0;
+
      return (0);
    *tp++ = (unsigned char) ((val >> 8) & 0xff);
    *tp++ = (unsigned char) (val & 0xff);
  }
@@ -227,7 +227,7 @@ inet_pton6(const char *src, unsigned char *dst)
    ssize_t i;

    if(tp == endp)
-
      return 0;
+
      return (0);
    for(i = 1; i <= n; i++) {
      *(endp - i) = *(colonp + n - i);
      *(colonp + n - i) = 0;
@@ -235,9 +235,9 @@ inet_pton6(const char *src, unsigned char *dst)
    tp = endp;
  }
  if(tp != endp)
-
    return 0;
+
    return (0);
  memcpy(dst, tmp, IN6ADDRSZ);
-
  return 1;
+
  return (1);
}

#endif /* HAVE_INET_PTON */
modified external/curl/lib/inet_pton.h
@@ -32,11 +32,7 @@ int Curl_inet_pton(int, const char *, void *);
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif
-
#if defined(__AMIGA__)
-
#define Curl_inet_pton(x,y,z) inet_pton(x,(unsigned char *)y,z)
-
#else
#define Curl_inet_pton(x,y,z) inet_pton(x,y,z)
#endif
-
#endif

#endif /* HEADER_CURL_INET_PTON_H */
modified external/curl/lib/krb5.c
@@ -63,11 +63,6 @@
#include "curl_memory.h"
#include "memdebug.h"

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
#endif
-

static CURLcode ftpsend(struct Curl_easy *data, struct connectdata *conn,
                        const char *cmd)
{
@@ -929,8 +924,4 @@ Curl_sec_end(struct connectdata *conn)
  conn->mech = NULL;
}

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic pop
-
#endif
-

#endif /* HAVE_GSSAPI && !CURL_DISABLE_FTP */
modified external/curl/lib/ldap.c
@@ -26,11 +26,6 @@

#if !defined(CURL_DISABLE_LDAP) && !defined(USE_OPENLDAP)

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
#endif
-

/*
 * Notice that USE_OPENLDAP is only a source code selection switch. When
 * libcurl is built with USE_OPENLDAP defined the libcurl source code that
@@ -57,7 +52,7 @@
#ifdef USE_WIN32_LDAP           /* Use Windows LDAP implementation. */
# ifdef _MSC_VER
#  pragma warning(push)
-
#  pragma warning(disable:4201)
+
#  pragma warning(disable: 4201)
# endif
# include <subauth.h>  /* for [P]UNICODE_STRING */
# ifdef _MSC_VER
@@ -83,7 +78,6 @@

#include "urldata.h"
#include <curl/curl.h>
-
#include "cfilters.h"
#include "sendf.h"
#include "escape.h"
#include "progress.h"
@@ -154,7 +148,7 @@ static void _ldap_free_urldesc(LDAPURLDesc *ludp);
#define ldap_err2string ldap_err2stringA
#endif

-
#if defined(USE_WIN32_LDAP) && defined(_MSC_VER) && (_MSC_VER <= 1700)
+
#if defined(USE_WIN32_LDAP) && defined(_MSC_VER) && (_MSC_VER <= 1600)
/* Workaround for warning:
   'type cast' : conversion from 'int' to 'void *' of greater size */
#undef LDAP_OPT_ON
@@ -187,7 +181,6 @@ const struct Curl_handler Curl_handler_ldap = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_LDAP,                            /* defport */
  CURLPROTO_LDAP,                       /* protocol */
  CURLPROTO_LDAP,                       /* family */
@@ -217,7 +210,6 @@ const struct Curl_handler Curl_handler_ldaps = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_LDAPS,                           /* defport */
  CURLPROTO_LDAPS,                      /* protocol */
  CURLPROTO_LDAP,                       /* family */
@@ -354,7 +346,7 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done)
  }

  /* Get the URL scheme (either ldap or ldaps) */
-
  if(Curl_conn_is_ssl(conn, FIRSTSOCKET))
+
  if(conn->given->flags & PROTOPT_SSL)
    ldap_ssl = 1;
  infof(data, "LDAP local: trying to establish %s connection",
        ldap_ssl ? "encrypted" : "cleartext");
@@ -808,7 +800,7 @@ static int str2scope(const char *p)
    return LDAP_SCOPE_SUBTREE;
  if(strcasecompare(p, "subtree"))
    return LDAP_SCOPE_SUBTREE;
-
  return -1;
+
  return (-1);
}

/*
@@ -1090,7 +1082,7 @@ static int _ldap_url_parse(struct Curl_easy *data,
    ludp = NULL;
  }
  *ludpp = ludp;
-
  return rc;
+
  return (rc);
}

static void _ldap_free_urldesc(LDAPURLDesc *ludp)
@@ -1121,9 +1113,4 @@ static void _ldap_free_urldesc(LDAPURLDesc *ludp)
  free(ludp);
}
#endif  /* !HAVE_LDAP_URL_PARSE */
-

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic pop
-
#endif
-

#endif  /* !CURL_DISABLE_LDAP && !USE_OPENLDAP */
modified external/curl/lib/libcurl.def
@@ -15,8 +15,6 @@ curl_easy_recv
curl_easy_reset
curl_easy_send
curl_easy_setopt
-
curl_easy_ssls_export
-
curl_easy_ssls_import
curl_easy_strerror
curl_easy_unescape
curl_easy_upkeep
modified external/curl/lib/llist.c
@@ -134,38 +134,40 @@ Curl_llist_append(struct Curl_llist *list, const void *p,
  Curl_llist_insert_next(list, list->_tail, p, ne);
}

-
void *Curl_node_take_elem(struct Curl_llist_node *e)
+
/*
+
 * @unittest: 1300
+
 */
+
void
+
Curl_node_uremove(struct Curl_llist_node *e, void *user)
{
  void *ptr;
  struct Curl_llist *list;
  if(!e)
-
    return NULL;
+
    return;

  list = e->_list;
  DEBUGASSERT(list);
  DEBUGASSERT(list->_init == LLISTINIT);
  DEBUGASSERT(list->_size);
  DEBUGASSERT(e->_init == NODEINIT);
-
  if(list) {
-
    if(e == list->_head) {
-
      list->_head = e->_next;
+
  if(e == list->_head) {
+
    list->_head = e->_next;

-
      if(!list->_head)
-
        list->_tail = NULL;
-
      else
-
        e->_next->_prev = NULL;
-
    }
-
    else {
-
      if(e->_prev)
-
        e->_prev->_next = e->_next;
+
    if(!list->_head)
+
      list->_tail = NULL;
+
    else
+
      e->_next->_prev = NULL;
+
  }
+
  else {
+
    if(e->_prev)
+
      e->_prev->_next = e->_next;

-
      if(!e->_next)
-
        list->_tail = e->_prev;
-
      else
-
        e->_next->_prev = e->_prev;
-
    }
-
    --list->_size;
+
    if(!e->_next)
+
      list->_tail = e->_prev;
+
    else
+
      e->_next->_prev = e->_prev;
  }
+

  ptr = e->_ptr;

  e->_list = NULL;
@@ -176,27 +178,11 @@ void *Curl_node_take_elem(struct Curl_llist_node *e)
  e->_init = NODEREM; /* specific pattern on remove - not zero */
#endif

-
  return ptr;
-
}
+
  --list->_size;

-
/*
-
 * @unittest: 1300
-
 */
-
void
-
Curl_node_uremove(struct Curl_llist_node *e, void *user)
-
{
-
  struct Curl_llist *list;
-
  void *ptr;
-
  if(!e)
-
    return;
-

-
  list = e->_list;
-
  DEBUGASSERT(list);
-
  if(list) {
-
    ptr = Curl_node_take_elem(e);
-
    if(list->_dtor)
-
      list->_dtor(user, ptr);
-
  }
+
  /* call the dtor() last for when it actually frees the 'e' memory itself */
+
  if(list->_dtor)
+
    list->_dtor(user, ptr);
}

void Curl_node_remove(struct Curl_llist_node *e)
modified external/curl/lib/llist.h
@@ -75,10 +75,6 @@ size_t Curl_llist_count(struct Curl_llist *list);
/* Curl_node_elem() returns the custom data from a Curl_llist_node */
void *Curl_node_elem(struct Curl_llist_node *n);

-
/* Remove the node from the list and return the custom data
-
 * from a Curl_llist_node. Will NOT incoke a registered `dtor`. */
-
void *Curl_node_take_elem(struct Curl_llist_node *);
-

/* Curl_node_next() returns the next element in a list from a given
   Curl_llist_node */
struct Curl_llist_node *Curl_node_next(struct Curl_llist_node *n);
modified external/curl/lib/macos.c
@@ -37,7 +37,7 @@ CURLcode Curl_macos_init(void)
  /*
   * The automagic conversion from IPv4 literals to IPv6 literals only
   * works if the SCDynamicStoreCopyProxies system function gets called
-
   * first. As curl currently does not support system-wide HTTP proxies, we
+
   * first. As Curl currently does not support system-wide HTTP proxies, we
   * therefore do not use any value this function might return.
   *
   * This function is only available on macOS and is not needed for
modified external/curl/lib/memdebug.c
@@ -153,7 +153,7 @@ ALLOC_FUNC void *curl_dbg_malloc(size_t wantedsize,
                 source, line, wantedsize,
                 mem ? (void *)mem->mem : (void *)0);

-
  return mem ? mem->mem : NULL;
+
  return (mem ? mem->mem : NULL);
}

ALLOC_FUNC void *curl_dbg_calloc(size_t wanted_elements, size_t wanted_size,
@@ -181,7 +181,7 @@ ALLOC_FUNC void *curl_dbg_calloc(size_t wanted_elements, size_t wanted_size,
                 source, line, wanted_elements, wanted_size,
                 mem ? (void *)mem->mem : (void *)0);

-
  return mem ? mem->mem : NULL;
+
  return (mem ? mem->mem : NULL);
}

ALLOC_FUNC char *curl_dbg_strdup(const char *str,
modified external/curl/lib/mime.c
@@ -1561,14 +1561,6 @@ CURLcode Curl_mime_set_subparts(curl_mimepart *part,
      }
    }

-
    /* If subparts have already been used as a top-level MIMEPOST,
-
       they might not be positioned at start. Rewind them now, as
-
       a future check while rewinding the parent may cause this
-
       content to be skipped. */
-
    if(mime_subparts_seek(subparts, (curl_off_t) 0, SEEK_SET) !=
-
       CURL_SEEKFUNC_OK)
-
      return CURLE_SEND_FAIL_REWIND;
-

    subparts->parent = part;
    /* Subparts are processed internally: no read callback. */
    part->seekfunc = mime_subparts_seek;
@@ -2179,7 +2171,7 @@ static bool cr_mime_is_paused(struct Curl_easy *data,
{
  struct cr_mime_ctx *ctx = reader->ctx;
  (void)data;
-
  return ctx->part && ctx->part->lastreadstatus == CURL_READFUNC_PAUSE;
+
  return (ctx->part && ctx->part->lastreadstatus == CURL_READFUNC_PAUSE);
}

static const struct Curl_crtype cr_mime = {
modified external/curl/lib/mprintf.c
@@ -37,12 +37,14 @@
#ifdef HAVE_LONGLONG
#  define LONG_LONG_TYPE long long
#  define HAVE_LONG_LONG_TYPE
-
#elif defined(_MSC_VER)
-
#  define LONG_LONG_TYPE __int64
-
#  define HAVE_LONG_LONG_TYPE
#else
-
#  undef LONG_LONG_TYPE
-
#  undef HAVE_LONG_LONG_TYPE
+
#  if defined(_MSC_VER) && (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
+
#    define LONG_LONG_TYPE __int64
+
#    define HAVE_LONG_LONG_TYPE
+
#  else
+
#    undef LONG_LONG_TYPE
+
#    undef HAVE_LONG_LONG_TYPE
+
#  endif
#endif

/*
@@ -678,12 +680,12 @@ static int formatf(

  struct outsegment output[MAX_SEGMENTS];
  struct va_input input[MAX_PARAMETERS];
-
  char work[BUFFSIZE + 2];
+
  char work[BUFFSIZE];

  /* 'workend' points to the final buffer byte position, but with an extra
     byte as margin to avoid the (FALSE?) warning Coverity gives us
     otherwise */
-
  char *workend = &work[BUFFSIZE - 2];
+
  char *workend = &work[sizeof(work) - 2];

  /* Parse the format string */
  if(parsefmt(format, output, input, &ocount, &icount, ap_save))
@@ -966,8 +968,8 @@ number:

      if(width >= 0) {
        size_t dlen;
-
        if(width >= BUFFSIZE)
-
          width = BUFFSIZE - 1;
+
        if(width >= (int)sizeof(work))
+
          width = sizeof(work)-1;
        /* RECURSIVE USAGE */
        dlen = (size_t)curl_msnprintf(fptr, left, "%d", width);
        fptr += dlen;
@@ -976,19 +978,17 @@ number:
      if(prec >= 0) {
        /* for each digit in the integer part, we can have one less
           precision */
-
        int maxprec = BUFFSIZE - 1;
+
        size_t maxprec = sizeof(work) - 2;
        double val = iptr->val.dnum;
-
        if(prec > maxprec)
-
          prec = maxprec - 1;
        if(width > 0 && prec <= width)
-
          maxprec -= width;
+
          maxprec -= (size_t)width;
        while(val >= 10.0) {
          val /= 10;
          maxprec--;
        }

-
        if(prec > maxprec)
-
          prec = maxprec - 1;
+
        if(prec > (int)maxprec)
+
          prec = (int)maxprec-1;
        if(prec < 0)
          prec = 0;
        /* RECURSIVE USAGE */
@@ -1014,19 +1014,14 @@ number:
      /* NOTE NOTE NOTE!! Not all sprintf implementations return number of
         output characters */
#ifdef HAVE_SNPRINTF
-
      (snprintf)(work, BUFFSIZE, formatbuf, iptr->val.dnum); /* NOLINT */
-
#ifdef _WIN32
-
      /* Old versions of the Windows CRT do not terminate the snprintf output
-
         buffer if it reaches the max size so we do that here. */
-
      work[BUFFSIZE - 1] = 0;
-
#endif
+
      (snprintf)(work, sizeof(work), formatbuf, iptr->val.dnum);
#else
      (sprintf)(work, formatbuf, iptr->val.dnum);
#endif
#ifdef __clang__
#pragma clang diagnostic pop
#endif
-
      DEBUGASSERT(strlen(work) < BUFFSIZE);
+
      DEBUGASSERT(strlen(work) <= sizeof(work));
      for(fptr = work; *fptr; fptr++)
        OUTCHAR(*fptr);
      break;
modified external/curl/lib/mqtt.c
@@ -92,7 +92,6 @@ const struct Curl_handler Curl_handler_mqtt = {
  ZERO_NULL,                          /* write_resp_hd */
  ZERO_NULL,                          /* connection_check */
  ZERO_NULL,                          /* attach connection */
-
  ZERO_NULL,                          /* follow */
  PORT_MQTT,                          /* defport */
  CURLPROTO_MQTT,                     /* protocol */
  CURLPROTO_MQTT,                     /* family */
modified external/curl/lib/multi.c
@@ -46,7 +46,6 @@
#include "multihandle.h"
#include "sigpipe.h"
#include "vtls/vtls.h"
-
#include "vtls/vtls_scache.h"
#include "http_proxy.h"
#include "http2.h"
#include "socketpair.h"
@@ -60,7 +59,7 @@
/*
  CURL_SOCKET_HASH_TABLE_SIZE should be a prime number. Increasing it from 97
  to 911 takes on a 32-bit machine 4 x 804 = 3211 more bytes. Still, every
-
  curl handle takes 6K memory, therefore this 3K are not significant.
+
  CURL handle takes 45-50 K memory, therefore this 3K are not significant.
*/
#ifndef CURL_SOCKET_HASH_TABLE_SIZE
#define CURL_SOCKET_HASH_TABLE_SIZE 911
@@ -74,10 +73,6 @@
#define CURL_DNS_HASH_SIZE 71
#endif

-
#ifndef CURL_TLS_SESSION_SIZE
-
#define CURL_TLS_SESSION_SIZE 25
-
#endif
-

#define CURL_MULTI_HANDLE 0x000bab1e

#ifdef DEBUGBUILD
@@ -400,10 +395,9 @@ static void multi_addmsg(struct Curl_multi *multi, struct Curl_message *msg)
  Curl_llist_append(&multi->msglist, msg, &msg->list);
}

-
struct Curl_multi *Curl_multi_handle(size_t hashsize,  /* socket hash */
+
struct Curl_multi *Curl_multi_handle(size_t hashsize, /* socket hash */
                                     size_t chashsize, /* connection hash */
-
                                     size_t dnssize,   /* dns hash */
-
                                     size_t sesssize)  /* TLS session cache */
+
                                     size_t dnssize) /* dns hash */
{
  struct Curl_multi *multi = calloc(1, sizeof(struct Curl_multi));

@@ -420,10 +414,7 @@ struct Curl_multi *Curl_multi_handle(size_t hashsize, /* socket hash */
                 Curl_hash_str, Curl_str_key_compare, ph_freeentry);

  if(Curl_cpool_init(&multi->cpool, Curl_on_disconnect,
-
                     multi, NULL, chashsize))
-
    goto error;
-

-
  if(Curl_ssl_scache_create(sesssize, 2, &multi->ssl_scache))
+
                         multi, NULL, chashsize))
    goto error;

  Curl_llist_init(&multi->msglist, NULL);
@@ -456,7 +447,6 @@ error:
  Curl_hash_destroy(&multi->proto_hash);
  Curl_hash_destroy(&multi->hostcache);
  Curl_cpool_destroy(&multi->cpool);
-
  Curl_ssl_scache_destroy(multi->ssl_scache);
  free(multi);
  return NULL;
}
@@ -465,8 +455,7 @@ CURLM *curl_multi_init(void)
{
  return Curl_multi_handle(CURL_SOCKET_HASH_TABLE_SIZE,
                           CURL_CONNECTION_HASH_SIZE,
-
                           CURL_DNS_HASH_SIZE,
-
                           CURL_TLS_SESSION_SIZE);
+
                           CURL_DNS_HASH_SIZE);
}

#if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS)
@@ -798,7 +787,7 @@ CURLMcode curl_multi_remove_handle(CURLM *m, CURL *d)
    return CURLM_BAD_HANDLE;

  /* Verify that we got a somewhat good easy handle too */
-
  if(!GOOD_EASY_HANDLE(data))
+
  if(!GOOD_EASY_HANDLE(data) || !multi->num_easy)
    return CURLM_BAD_EASY_HANDLE;

  /* Prevent users from trying to remove same easy handle more than once */
@@ -809,11 +798,6 @@ CURLMcode curl_multi_remove_handle(CURLM *m, CURL *d)
  if(data->multi != multi)
    return CURLM_BAD_EASY_HANDLE;

-
  if(!multi->num_easy) {
-
    DEBUGASSERT(0);
-
    return CURLM_INTERNAL_ERROR;
-
  }
-

  if(multi->in_callback)
    return CURLM_RECURSIVE_API_CALL;

@@ -933,7 +917,7 @@ CURLMcode curl_multi_remove_handle(CURLM *m, CURL *d)
/* Return TRUE if the application asked for multiplexing */
bool Curl_multiplex_wanted(const struct Curl_multi *multi)
{
-
  return multi && multi->multiplexing;
+
  return (multi && (multi->multiplexing));
}

/*
@@ -946,6 +930,7 @@ void Curl_detach_connection(struct Curl_easy *data)
{
  struct connectdata *conn = data->conn;
  if(conn) {
+
    Curl_conn_ev_data_detach(conn, data);
    Curl_node_remove(&data->conn_queue);
  }
  data->conn = NULL;
@@ -966,6 +951,7 @@ void Curl_attach_connection(struct Curl_easy *data,
  Curl_llist_append(&conn->easyq, data, &data->conn_queue);
  if(conn->handler && conn->handler->attach)
    conn->handler->attach(data, conn);
+
  Curl_conn_ev_data_attach(conn, data);
}

static int connecting_getsock(struct Curl_easy *data, curl_socket_t *socks)
@@ -1166,7 +1152,6 @@ CURLMcode curl_multi_fdset(CURLM *m,
  int this_max_fd = -1;
  struct Curl_llist_node *e;
  struct Curl_multi *multi = m;
-
  unsigned int i;
  (void)exc_fd_set; /* not used */

  if(!GOOD_MULTI_HANDLE(multi))
@@ -1177,6 +1162,7 @@ CURLMcode curl_multi_fdset(CURLM *m,

  for(e = Curl_llist_head(&multi->process); e; e = Curl_node_next(e)) {
    struct Curl_easy *data = Curl_node_elem(e);
+
    unsigned int i;

    multi_getsock(data, &data->last_poll);

@@ -1184,24 +1170,15 @@ CURLMcode curl_multi_fdset(CURLM *m,
      if(!FDSET_SOCK(data->last_poll.sockets[i]))
        /* pretend it does not exist */
        continue;
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
      if(data->last_poll.actions[i] & CURL_POLL_IN)
        FD_SET(data->last_poll.sockets[i], read_fd_set);
      if(data->last_poll.actions[i] & CURL_POLL_OUT)
        FD_SET(data->last_poll.sockets[i], write_fd_set);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
      if((int)data->last_poll.sockets[i] > this_max_fd)
        this_max_fd = (int)data->last_poll.sockets[i];
    }
  }

-
  Curl_cpool_setfds(&multi->cpool, read_fd_set, write_fd_set, &this_max_fd);
-

  *max_fd = this_max_fd;

  return CURLM_OK;
@@ -1212,13 +1189,12 @@ CURLMcode curl_multi_waitfds(CURLM *m,
                             unsigned int size,
                             unsigned int *fd_count)
{
-
  struct Curl_waitfds cwfds;
+
  struct curl_waitfds cwfds;
  CURLMcode result = CURLM_OK;
  struct Curl_llist_node *e;
  struct Curl_multi *multi = m;
-
  unsigned int need = 0;

-
  if(!ufds && (size || !fd_count))
+
  if(!ufds)
    return CURLM_BAD_FUNCTION_ARGUMENT;

  if(!GOOD_MULTI_HANDLE(multi))
@@ -1231,17 +1207,20 @@ CURLMcode curl_multi_waitfds(CURLM *m,
  for(e = Curl_llist_head(&multi->process); e; e = Curl_node_next(e)) {
    struct Curl_easy *data = Curl_node_elem(e);
    multi_getsock(data, &data->last_poll);
-
    need += Curl_waitfds_add_ps(&cwfds, &data->last_poll);
+
    if(Curl_waitfds_add_ps(&cwfds, &data->last_poll)) {
+
      result = CURLM_OUT_OF_MEMORY;
+
      goto out;
+
    }
  }

-
  need += Curl_cpool_add_waitfds(&multi->cpool, &cwfds);
-

-
  if(need != cwfds.n && ufds) {
+
  if(Curl_cpool_add_waitfds(&multi->cpool, &cwfds)) {
    result = CURLM_OUT_OF_MEMORY;
+
    goto out;
  }

+
out:
  if(fd_count)
-
    *fd_count = need;
+
    *fd_count = cwfds.n;
  return result;
}

@@ -1855,13 +1834,289 @@ static void multi_posttransfer(struct Curl_easy *data)
 * This function DOES NOT FREE the given url.
 */
static CURLcode multi_follow(struct Curl_easy *data,
-
                             const struct Curl_handler *handler,
-
                             const char *newurl, /* the Location: string */
+
                             char *newurl,    /* the Location: string */
                             followtype type) /* see transfer.h */
{
-
  if(handler && handler->follow)
-
    return handler->follow(data, newurl, type);
+
#ifdef CURL_DISABLE_HTTP
+
  (void)data;
+
  (void)newurl;
+
  (void)type;
+
  /* Location: following will not happen when HTTP is disabled */
  return CURLE_TOO_MANY_REDIRECTS;
+
#else
+

+
  /* Location: redirect */
+
  bool disallowport = FALSE;
+
  bool reachedmax = FALSE;
+
  CURLUcode uc;
+

+
  DEBUGASSERT(type != FOLLOW_NONE);
+

+
  if(type != FOLLOW_FAKE)
+
    data->state.requests++; /* count all real follows */
+
  if(type == FOLLOW_REDIR) {
+
    if((data->set.maxredirs != -1) &&
+
       (data->state.followlocation >= data->set.maxredirs)) {
+
      reachedmax = TRUE;
+
      type = FOLLOW_FAKE; /* switch to fake to store the would-be-redirected
+
                             to URL */
+
    }
+
    else {
+
      data->state.followlocation++; /* count redirect-followings, including
+
                                       auth reloads */
+

+
      if(data->set.http_auto_referer) {
+
        CURLU *u;
+
        char *referer = NULL;
+

+
        /* We are asked to automatically set the previous URL as the referer
+
           when we get the next URL. We pick the ->url field, which may or may
+
           not be 100% correct */
+

+
        if(data->state.referer_alloc) {
+
          Curl_safefree(data->state.referer);
+
          data->state.referer_alloc = FALSE;
+
        }
+

+
        /* Make a copy of the URL without credentials and fragment */
+
        u = curl_url();
+
        if(!u)
+
          return CURLE_OUT_OF_MEMORY;
+

+
        uc = curl_url_set(u, CURLUPART_URL, data->state.url, 0);
+
        if(!uc)
+
          uc = curl_url_set(u, CURLUPART_FRAGMENT, NULL, 0);
+
        if(!uc)
+
          uc = curl_url_set(u, CURLUPART_USER, NULL, 0);
+
        if(!uc)
+
          uc = curl_url_set(u, CURLUPART_PASSWORD, NULL, 0);
+
        if(!uc)
+
          uc = curl_url_get(u, CURLUPART_URL, &referer, 0);
+

+
        curl_url_cleanup(u);
+

+
        if(uc || !referer)
+
          return CURLE_OUT_OF_MEMORY;
+

+
        data->state.referer = referer;
+
        data->state.referer_alloc = TRUE; /* yes, free this later */
+
      }
+
    }
+
  }
+

+
  if((type != FOLLOW_RETRY) &&
+
     (data->req.httpcode != 401) && (data->req.httpcode != 407) &&
+
     Curl_is_absolute_url(newurl, NULL, 0, FALSE)) {
+
    /* If this is not redirect due to a 401 or 407 response and an absolute
+
       URL: do not allow a custom port number */
+
    disallowport = TRUE;
+
  }
+

+
  DEBUGASSERT(data->state.uh);
+
  uc = curl_url_set(data->state.uh, CURLUPART_URL, newurl, (unsigned int)
+
                    ((type == FOLLOW_FAKE) ? CURLU_NON_SUPPORT_SCHEME :
+
                     ((type == FOLLOW_REDIR) ? CURLU_URLENCODE : 0) |
+
                     CURLU_ALLOW_SPACE |
+
                     (data->set.path_as_is ? CURLU_PATH_AS_IS : 0)));
+
  if(uc) {
+
    if(type != FOLLOW_FAKE) {
+
      failf(data, "The redirect target URL could not be parsed: %s",
+
            curl_url_strerror(uc));
+
      return Curl_uc_to_curlcode(uc);
+
    }
+

+
    /* the URL could not be parsed for some reason, but since this is FAKE
+
       mode, just duplicate the field as-is */
+
    newurl = strdup(newurl);
+
    if(!newurl)
+
      return CURLE_OUT_OF_MEMORY;
+
  }
+
  else {
+
    uc = curl_url_get(data->state.uh, CURLUPART_URL, &newurl, 0);
+
    if(uc)
+
      return Curl_uc_to_curlcode(uc);
+

+
    /* Clear auth if this redirects to a different port number or protocol,
+
       unless permitted */
+
    if(!data->set.allow_auth_to_other_hosts && (type != FOLLOW_FAKE)) {
+
      char *portnum;
+
      int port;
+
      bool clear = FALSE;
+

+
      if(data->set.use_port && data->state.allow_port)
+
        /* a custom port is used */
+
        port = (int)data->set.use_port;
+
      else {
+
        uc = curl_url_get(data->state.uh, CURLUPART_PORT, &portnum,
+
                          CURLU_DEFAULT_PORT);
+
        if(uc) {
+
          free(newurl);
+
          return Curl_uc_to_curlcode(uc);
+
        }
+
        port = atoi(portnum);
+
        free(portnum);
+
      }
+
      if(port != data->info.conn_remote_port) {
+
        infof(data, "Clear auth, redirects to port from %u to %u",
+
              data->info.conn_remote_port, port);
+
        clear = TRUE;
+
      }
+
      else {
+
        char *scheme;
+
        const struct Curl_handler *p;
+
        uc = curl_url_get(data->state.uh, CURLUPART_SCHEME, &scheme, 0);
+
        if(uc) {
+
          free(newurl);
+
          return Curl_uc_to_curlcode(uc);
+
        }
+

+
        p = Curl_get_scheme_handler(scheme);
+
        if(p && (p->protocol != data->info.conn_protocol)) {
+
          infof(data, "Clear auth, redirects scheme from %s to %s",
+
                data->info.conn_scheme, scheme);
+
          clear = TRUE;
+
        }
+
        free(scheme);
+
      }
+
      if(clear) {
+
        Curl_safefree(data->state.aptr.user);
+
        Curl_safefree(data->state.aptr.passwd);
+
      }
+
    }
+
  }
+

+
  if(type == FOLLOW_FAKE) {
+
    /* we are only figuring out the new URL if we would have followed locations
+
       but now we are done so we can get out! */
+
    data->info.wouldredirect = newurl;
+

+
    if(reachedmax) {
+
      failf(data, "Maximum (%ld) redirects followed", data->set.maxredirs);
+
      return CURLE_TOO_MANY_REDIRECTS;
+
    }
+
    return CURLE_OK;
+
  }
+

+
  if(disallowport)
+
    data->state.allow_port = FALSE;
+

+
  if(data->state.url_alloc)
+
    Curl_safefree(data->state.url);
+

+
  data->state.url = newurl;
+
  data->state.url_alloc = TRUE;
+
  Curl_req_soft_reset(&data->req, data);
+
  infof(data, "Issue another request to this URL: '%s'", data->state.url);
+

+
  /*
+
   * We get here when the HTTP code is 300-399 (and 401). We need to perform
+
   * differently based on exactly what return code there was.
+
   *
+
   * News from 7.10.6: we can also get here on a 401 or 407, in case we act on
+
   * an HTTP (proxy-) authentication scheme other than Basic.
+
   */
+
  switch(data->info.httpcode) {
+
    /* 401 - Act on a WWW-Authenticate, we keep on moving and do the
+
       Authorization: XXXX header in the HTTP request code snippet */
+
    /* 407 - Act on a Proxy-Authenticate, we keep on moving and do the
+
       Proxy-Authorization: XXXX header in the HTTP request code snippet */
+
    /* 300 - Multiple Choices */
+
    /* 306 - Not used */
+
    /* 307 - Temporary Redirect */
+
  default:  /* for all above (and the unknown ones) */
+
    /* Some codes are explicitly mentioned since I have checked RFC2616 and
+
     * they seem to be OK to POST to.
+
     */
+
    break;
+
  case 301: /* Moved Permanently */
+
    /* (quote from RFC7231, section 6.4.2)
+
     *
+
     * Note: For historical reasons, a user agent MAY change the request
+
     * method from POST to GET for the subsequent request. If this
+
     * behavior is undesired, the 307 (Temporary Redirect) status code
+
     * can be used instead.
+
     *
+
     * ----
+
     *
+
     * Many webservers expect this, so these servers often answers to a POST
+
     * request with an error page. To be sure that libcurl gets the page that
+
     * most user agents would get, libcurl has to force GET.
+
     *
+
     * This behavior is forbidden by RFC1945 and the obsolete RFC2616, and
+
     * can be overridden with CURLOPT_POSTREDIR.
+
     */
+
    if((data->state.httpreq == HTTPREQ_POST
+
        || data->state.httpreq == HTTPREQ_POST_FORM
+
        || data->state.httpreq == HTTPREQ_POST_MIME)
+
       && !(data->set.keep_post & CURL_REDIR_POST_301)) {
+
      infof(data, "Switch from POST to GET");
+
      data->state.httpreq = HTTPREQ_GET;
+
      Curl_creader_set_rewind(data, FALSE);
+
    }
+
    break;
+
  case 302: /* Found */
+
    /* (quote from RFC7231, section 6.4.3)
+
     *
+
     * Note: For historical reasons, a user agent MAY change the request
+
     * method from POST to GET for the subsequent request. If this
+
     * behavior is undesired, the 307 (Temporary Redirect) status code
+
     * can be used instead.
+
     *
+
     * ----
+
     *
+
     * Many webservers expect this, so these servers often answers to a POST
+
     * request with an error page. To be sure that libcurl gets the page that
+
     * most user agents would get, libcurl has to force GET.
+
     *
+
     * This behavior is forbidden by RFC1945 and the obsolete RFC2616, and
+
     * can be overridden with CURLOPT_POSTREDIR.
+
     */
+
    if((data->state.httpreq == HTTPREQ_POST
+
        || data->state.httpreq == HTTPREQ_POST_FORM
+
        || data->state.httpreq == HTTPREQ_POST_MIME)
+
       && !(data->set.keep_post & CURL_REDIR_POST_302)) {
+
      infof(data, "Switch from POST to GET");
+
      data->state.httpreq = HTTPREQ_GET;
+
      Curl_creader_set_rewind(data, FALSE);
+
    }
+
    break;
+

+
  case 303: /* See Other */
+
    /* 'See Other' location is not the resource but a substitute for the
+
     * resource. In this case we switch the method to GET/HEAD, unless the
+
     * method is POST and the user specified to keep it as POST.
+
     * https://github.com/curl/curl/issues/5237#issuecomment-614641049
+
     */
+
    if(data->state.httpreq != HTTPREQ_GET &&
+
       ((data->state.httpreq != HTTPREQ_POST &&
+
         data->state.httpreq != HTTPREQ_POST_FORM &&
+
         data->state.httpreq != HTTPREQ_POST_MIME) ||
+
        !(data->set.keep_post & CURL_REDIR_POST_303))) {
+
      data->state.httpreq = HTTPREQ_GET;
+
      infof(data, "Switch to %s",
+
            data->req.no_body ? "HEAD" : "GET");
+
    }
+
    break;
+
  case 304: /* Not Modified */
+
    /* 304 means we did a conditional request and it was "Not modified".
+
     * We should not get any Location: header in this response!
+
     */
+
    break;
+
  case 305: /* Use Proxy */
+
    /* (quote from RFC2616, section 10.3.6):
+
     * "The requested resource MUST be accessed through the proxy given
+
     * by the Location field. The Location field gives the URI of the
+
     * proxy. The recipient is expected to repeat this single request
+
     * via the proxy. 305 responses MUST only be generated by origin
+
     * servers."
+
     */
+
    break;
+
  }
+
  Curl_pgrsTime(data, TIMER_REDIRECT);
+
  Curl_pgrsResetTransferSizes(data);
+

+
  return CURLE_OK;
+
#endif /* CURL_DISABLE_HTTP */
}

static CURLMcode state_performing(struct Curl_easy *data,
@@ -1960,7 +2215,6 @@ static CURLMcode state_performing(struct Curl_easy *data,
    multi_done(data, result, TRUE);
  }
  else if(data->req.done && !Curl_cwriter_is_paused(data)) {
-
    const struct Curl_handler *handler = data->conn->handler;

    /* call this even if the readwrite function returned error */
    multi_posttransfer(data);
@@ -1981,7 +2235,7 @@ static CURLMcode state_performing(struct Curl_easy *data,
        follow = FOLLOW_RETRY;
      (void)multi_done(data, CURLE_OK, FALSE);
      /* multi_done() might return CURLE_GOT_NOTHING */
-
      result = multi_follow(data, handler, newurl, follow);
+
      result = multi_follow(data, newurl, follow);
      if(!result) {
        multistate(data, MSTATE_SETUP);
        rc = CURLM_CALL_MULTI_PERFORM;
@@ -1996,7 +2250,7 @@ static CURLMcode state_performing(struct Curl_easy *data,
        free(newurl);
        newurl = data->req.location;
        data->req.location = NULL;
-
        result = multi_follow(data, handler, newurl, FOLLOW_FAKE);
+
        result = multi_follow(data, newurl, FOLLOW_FAKE);
        if(result) {
          *stream_errorp = TRUE;
          result = multi_done(data, result, TRUE);
@@ -2048,7 +2302,7 @@ static CURLMcode state_do(struct Curl_easy *data,
    }
  }

-
  if(data->set.connect_only && !data->set.connect_only_ws) {
+
  if(data->set.connect_only == 1) {
    /* keep connection open for application to use the socket */
    connkeep(data->conn, "CONNECT_ONLY");
    multistate(data, MSTATE_DONE);
@@ -2105,7 +2359,6 @@ static CURLMcode state_do(struct Curl_easy *data,
       * unexpectedly died. If possible, send the connection back to the
       * CONNECT phase so we can try again.
       */
-
      const struct Curl_handler *handler = data->conn->handler;
      char *newurl = NULL;
      followtype follow = FOLLOW_NONE;
      CURLcode drc;
@@ -2125,7 +2378,7 @@ static CURLMcode state_do(struct Curl_easy *data,
      if(newurl) {
        if(!drc || (drc == CURLE_SEND_ERROR)) {
          follow = FOLLOW_RETRY;
-
          drc = multi_follow(data, handler, newurl, follow);
+
          drc = multi_follow(data, newurl, follow);
          if(!drc) {
            multistate(data, MSTATE_SETUP);
            rc = CURLM_CALL_MULTI_PERFORM;
@@ -2768,10 +3021,8 @@ CURLMcode curl_multi_perform(CURLM *m, int *running_handles)

  sigpipe_apply(multi->cpool.idata, &pipe_st);
  Curl_cpool_multi_perform(multi);
-
  sigpipe_restore(&pipe_st);

-
  if(multi_ischanged(m, TRUE))
-
    process_pending_handles(m);
+
  sigpipe_restore(&pipe_st);

  /*
   * Simply remove all expired timers from the splay since handles are dealt
@@ -2873,7 +3124,6 @@ CURLMcode curl_multi_cleanup(CURLM *m)
    Curl_hash_destroy(&multi->proto_hash);
    Curl_hash_destroy(&multi->hostcache);
    Curl_psl_destroy(&multi->psl);
-
    Curl_ssl_scache_destroy(multi->ssl_scache);

#ifdef USE_WINSOCK
    WSACloseEvent(multi->wsa_event);
@@ -3369,9 +3619,6 @@ out:
  }
  sigpipe_restore(&mrc.pipe_st);

-
  if(multi_ischanged(multi, TRUE))
-
    process_pending_handles(multi);
-

  if(running_handles)
    *running_handles = (int)multi->num_alive;

@@ -3429,6 +3676,9 @@ CURLMcode curl_multi_setopt(CURLM *m,
    break;
  case CURLMOPT_MAX_TOTAL_CONNECTIONS:
    multi->max_total_connections = va_arg(param, long);
+
    /* for now, let this also decide the max number of connections
+
     * in shutdown handling */
+
    multi->max_shutdown_connections = va_arg(param, long);
    break;
    /* options formerly used for pipelining */
  case CURLMOPT_MAX_PIPELINE_LENGTH:
@@ -3876,7 +4126,7 @@ void Curl_set_in_callback(struct Curl_easy *data, bool value)

bool Curl_is_in_callback(struct Curl_easy *data)
{
-
  return data && data->multi && data->multi->in_callback;
+
  return (data && data->multi && data->multi->in_callback);
}

unsigned int Curl_multi_max_concurrent_streams(struct Curl_multi *multi)
modified external/curl/lib/multihandle.h
@@ -106,8 +106,8 @@ struct Curl_multi {
  curl_push_callback push_cb;
  void *push_userp;

-
  struct Curl_hash hostcache; /* Hostname cache */
-
  struct Curl_ssl_scache *ssl_scache; /* TLS session pool */
+
  /* Hostname cache */
+
  struct Curl_hash hostcache;

#ifdef USE_LIBPSL
  /* PSL cache. */
@@ -148,6 +148,8 @@ struct Curl_multi {

  long max_total_connections; /* if >0, a fixed limit of the maximum number
                                 of connections in total */
+
  long max_shutdown_connections; /* if >0, a fixed limit of the maximum number
+
                                 of connections in shutdown handling */

  /* timer callback and user data pointer for the *socket() API */
  curl_multi_timer_callback timer_cb;
modified external/curl/lib/multiif.h
@@ -47,8 +47,7 @@ void Curl_multi_connchanged(struct Curl_multi *multi);
   socket, connection and dns hashes */
struct Curl_multi *Curl_multi_handle(size_t hashsize,
                                     size_t chashsize,
-
                                     size_t dnssize,
-
                                     size_t sesssize);
+
                                     size_t dnssize);

/* the write bits start at bit 16 for the *getsock() bitmap */
#define GETSOCK_WRITEBITSTART 16
modified external/curl/lib/netrc.c
@@ -26,9 +26,7 @@
#ifndef CURL_DISABLE_NETRC

#ifdef HAVE_PWD_H
-
#undef __NO_NET_API /* required for AmigaOS to declare getpwuid() */
#include <pwd.h>
-
#define __NO_NET_API
#endif

#include <curl/curl.h>
@@ -267,8 +265,7 @@ static int parsenetrc(struct store_netrc *store,
            retcode = NETRC_FAILED; /* allocation failed */
            goto out;
          }
-
          if(!specific_login || our_login)
-
            found |= FOUND_PASSWORD;
+
          found |= FOUND_PASSWORD;
          keyword = NONE;
        }
        else if(strcasecompare("login", tok))
@@ -277,10 +274,6 @@ static int parsenetrc(struct store_netrc *store,
          keyword = PASSWORD;
        else if(strcasecompare("machine", tok)) {
          /* a new machine here */
-
          if(found & FOUND_PASSWORD) {
-
            done = TRUE;
-
            break;
-
          }
          state = HOSTFOUND;
          keyword = NONE;
          found = 0;
@@ -316,16 +309,11 @@ static int parsenetrc(struct store_netrc *store,

out:
  Curl_dyn_free(&token);
-
  if(!retcode) {
-
    if(!password && our_login) {
-
      /* success without a password, set a blank one */
-
      password = strdup("");
-
      if(!password)
-
        retcode = 1; /* out of memory */
-
    }
-
    else if(!login && !password)
-
      /* a default with no credentials */
-
      retcode = NETRC_FILE_MISSING;
+
  if(!retcode && !password && our_login) {
+
    /* success without a password, set a blank one */
+
    password = strdup("");
+
    if(!password)
+
      retcode = 1; /* out of memory */
  }
  if(!retcode) {
    /* success */
@@ -402,7 +390,7 @@ int Curl_parsenetrc(struct store_netrc *store, const char *host,
    retcode = parsenetrc(store, host, loginp, passwordp, filealloc);
    free(filealloc);
#ifdef _WIN32
-
    if((retcode == NETRC_FILE_MISSING) || (retcode == NETRC_FAILED)) {
+
    if(retcode == NETRC_FILE_MISSING) {
      /* fallback to the old-style "_netrc" file */
      filealloc = aprintf("%s%s_netrc", home, DIR_CHAR);
      if(!filealloc) {
modified external/curl/lib/nonblock.c
@@ -63,12 +63,6 @@ int curlx_nonblock(curl_socket_t sockfd, /* operate on this */
    flags &= ~O_NONBLOCK;
  return sfcntl(sockfd, F_SETFL, flags);

-
#elif defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
-

-
  /* Amiga */
-
  long flags = nonblock ? 1L : 0L;
-
  return IoctlSocket(sockfd, FIONBIO, (char *)&flags);
-

#elif defined(HAVE_IOCTL_FIONBIO)

  /* older Unix versions */
@@ -81,6 +75,12 @@ int curlx_nonblock(curl_socket_t sockfd, /* operate on this */
  unsigned long flags = nonblock ? 1UL : 0UL;
  return ioctlsocket(sockfd, (long)FIONBIO, &flags);

+
#elif defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
+

+
  /* Amiga */
+
  long flags = nonblock ? 1L : 0L;
+
  return IoctlSocket(sockfd, FIONBIO, (char *)&flags);
+

#elif defined(HAVE_SETSOCKOPT_SO_NONBLOCK)

  /* Orbis OS */
modified external/curl/lib/noproxy.c
@@ -71,7 +71,7 @@ UNITTEST bool Curl_cidr4_match(const char *ipv4, /* 1.2.3.4 address */
      return FALSE;
    return TRUE;
  }
-
  return address == check;
+
  return (address == check);
}

UNITTEST bool Curl_cidr6_match(const char *ipv6,
modified external/curl/lib/openldap.c
@@ -134,7 +134,6 @@ const struct Curl_handler Curl_handler_ldap = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_LDAP,                            /* defport */
  CURLPROTO_LDAP,                       /* protocol */
  CURLPROTO_LDAP,                       /* family */
@@ -164,7 +163,6 @@ const struct Curl_handler Curl_handler_ldaps = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_LDAPS,                           /* defport */
  CURLPROTO_LDAPS,                      /* protocol */
  CURLPROTO_LDAP,                       /* family */
@@ -573,7 +571,7 @@ static CURLcode oldap_connect(struct Curl_easy *data, bool *done)
  ldap_set_option(li->ld, LDAP_OPT_REFERRALS, LDAP_OPT_OFF);

#ifdef USE_SSL
-
  if(Curl_conn_is_ssl(conn, FIRSTSOCKET))
+
  if(conn->handler->flags & PROTOPT_SSL)
    return oldap_ssl_connect(data, OLDAP_SSL);

  if(data->set.use_ssl) {
modified external/curl/lib/optiontable.pl
@@ -145,7 +145,7 @@ print <<FOOT
 */
int Curl_easyopts_check(void)
{
-
  return (CURLOPT_LASTENTRY % 10000) != ($lastnum + 1);
+
  return ((CURLOPT_LASTENTRY%10000) != ($lastnum + 1));
}
#endif
FOOT
modified external/curl/lib/parsedate.c
@@ -558,7 +558,7 @@ static int parsedate(const char *date, time_t *output)
  if(tzoff == -1)
    tzoff = 0;

-
  if((tzoff > 0) && (t > (time_t)(TIME_T_MAX - tzoff))) {
+
  if((tzoff > 0) && (t > TIME_T_MAX - tzoff)) {
    *output = TIME_T_MAX;
    return PARSEDATE_LATER; /* time_t overflow */
  }
@@ -586,7 +586,7 @@ time_t curl_getdate(const char *p, const time_t *now)
  (void)now; /* legacy argument from the past that we ignore */

  if(rc == PARSEDATE_OK) {
-
    if(parsed == (time_t)-1)
+
    if(parsed == -1)
      /* avoid returning -1 for a working scenario */
      parsed++;
    return parsed;
@@ -606,7 +606,7 @@ time_t Curl_getdate_capped(const char *p)

  switch(rc) {
  case PARSEDATE_OK:
-
    if(parsed == (time_t)-1)
+
    if(parsed == -1)
      /* avoid returning -1 for a working scenario */
      parsed++;
    return parsed;
modified external/curl/lib/pingpong.c
@@ -448,7 +448,7 @@ CURLcode Curl_pp_disconnect(struct pingpong *pp)

bool Curl_pp_moredata(struct pingpong *pp)
{
-
  return !pp->sendleft && Curl_dyn_len(&pp->recvbuf) > pp->nfinal;
+
  return (!pp->sendleft && Curl_dyn_len(&pp->recvbuf) > pp->nfinal);
}

#endif
modified external/curl/lib/pop3.c
@@ -138,7 +138,6 @@ const struct Curl_handler Curl_handler_pop3 = {
  ZERO_NULL,                        /* write_resp_hd */
  ZERO_NULL,                        /* connection_check */
  ZERO_NULL,                        /* attach connection */
-
  ZERO_NULL,                        /* follow */
  PORT_POP3,                        /* defport */
  CURLPROTO_POP3,                   /* protocol */
  CURLPROTO_POP3,                   /* family */
@@ -169,7 +168,6 @@ const struct Curl_handler Curl_handler_pop3s = {
  ZERO_NULL,                        /* write_resp_hd */
  ZERO_NULL,                        /* connection_check */
  ZERO_NULL,                        /* attach connection */
-
  ZERO_NULL,                        /* follow */
  PORT_POP3S,                       /* defport */
  CURLPROTO_POP3S,                  /* protocol */
  CURLPROTO_POP3,                   /* family */
@@ -1112,9 +1110,6 @@ static CURLcode pop3_multi_statemach(struct Curl_easy *data, bool *done)
  struct connectdata *conn = data->conn;
  struct pop3_conn *pop3c = &conn->proto.pop3c;

-
  /* Issue #16166, STLS seems to stall and time out. Revert to previous
-
   * check, but it remains to find out why this is wrong. */
-
  /* if(Curl_conn_is_ssl(conn, FIRSTSOCKET) && !pop3c->ssldone) { */
  if((conn->handler->flags & PROTOPT_SSL) && !pop3c->ssldone) {
    bool ssldone = FALSE;
    result = Curl_conn_connect(data, FIRSTSOCKET, FALSE, &ssldone);
modified external/curl/lib/progress.c
@@ -170,8 +170,6 @@ void Curl_pgrsTimeWas(struct Curl_easy *data, timerid timer,
  case TIMER_STARTOP:
    /* This is set at the start of a transfer */
    data->progress.t_startop = timestamp;
-
    data->progress.t_startqueue = timestamp;
-
    data->progress.t_postqueue = 0;
    break;
  case TIMER_STARTSINGLE:
    /* This is set at the start of each single transfer */
@@ -179,9 +177,12 @@ void Curl_pgrsTimeWas(struct Curl_easy *data, timerid timer,
    data->progress.is_t_startransfer_set = FALSE;
    break;
  case TIMER_POSTQUEUE:
-
    /* Queue time is accumulative from all involved redirects */
-
    data->progress.t_postqueue +=
-
      Curl_timediff_us(timestamp, data->progress.t_startqueue);
+
    /* Set when the transfer starts (after potentially having been brought
+
       back from the waiting queue). It needs to count from t_startop and not
+
       t_startsingle since the latter is reset when a connection is brought
+
       back from the pending queue. */
+
    data->progress.t_postqueue =
+
      Curl_timediff_us(timestamp, data->progress.t_startop);
    break;
  case TIMER_STARTACCEPT:
    data->progress.t_acceptdata = timestamp;
@@ -219,7 +220,6 @@ void Curl_pgrsTimeWas(struct Curl_easy *data, timerid timer,
  case TIMER_REDIRECT:
    data->progress.t_redirect = Curl_timediff_us(timestamp,
                                                 data->progress.start);
-
    data->progress.t_startqueue = timestamp;
    break;
  }
  if(delta) {
@@ -312,7 +312,7 @@ timediff_t Curl_pgrsLimitWaitTime(struct pgrs_dir *d,
  if(actual < minimum) {
    /* if it downloaded the data faster than the limit, make it wait the
       difference */
-
    return minimum - actual;
+
    return (minimum - actual);
  }

  return 0;
modified external/curl/lib/request.c
@@ -66,8 +66,7 @@ CURLcode Curl_req_soft_reset(struct SingleRequest *req,
  req->headerbytecount = 0;
  req->allheadercount =  0;
  req->deductheadercount = 0;
-
  req->httpversion_sent = 0;
-
  req->httpversion = 0;
+

  result = Curl_client_start(data);
  if(result)
    return result;
@@ -163,6 +162,9 @@ void Curl_req_hard_reset(struct SingleRequest *req, struct Curl_easy *data)
  req->no_body = data->set.opt_no_body;
  req->authneg = FALSE;
  req->shutdown = FALSE;
+
#ifdef USE_HYPER
+
  req->bodywritten = FALSE;
+
#endif
}

void Curl_req_free(struct SingleRequest *req, struct Curl_easy *data)
@@ -259,7 +261,7 @@ static CURLcode req_send_buffer_flush(struct Curl_easy *data)
  return result;
}

-
static CURLcode req_set_upload_done(struct Curl_easy *data)
+
CURLcode Curl_req_set_upload_done(struct Curl_easy *data)
{
  DEBUGASSERT(!data->req.upload_done);
  data->req.upload_done = TRUE;
@@ -337,7 +339,7 @@ static CURLcode req_flush(struct Curl_easy *data)
      if(!done)
        return CURLE_AGAIN;
    }
-
    return req_set_upload_done(data);
+
    return Curl_req_set_upload_done(data);
  }
  return CURLE_OK;
}
@@ -358,6 +360,8 @@ static ssize_t add_from_client(void *reader_ctx,
  return (ssize_t)nread;
}

+
#ifndef USE_HYPER
+

static CURLcode req_send_buffer_add(struct Curl_easy *data,
                                    const char *buf, size_t blen,
                                    size_t hds_len)
@@ -374,8 +378,7 @@ static CURLcode req_send_buffer_add(struct Curl_easy *data,
  return CURLE_OK;
}

-
CURLcode Curl_req_send(struct Curl_easy *data, struct dynbuf *req,
-
                       unsigned char httpversion)
+
CURLcode Curl_req_send(struct Curl_easy *data, struct dynbuf *req)
{
  CURLcode result;
  const char *buf;
@@ -384,7 +387,6 @@ CURLcode Curl_req_send(struct Curl_easy *data, struct dynbuf *req,
  if(!data || !data->conn)
    return CURLE_FAILED_INIT;

-
  data->req.httpversion_sent = httpversion;
  buf = Curl_dyn_ptr(req);
  blen = Curl_dyn_len(req);
  if(!Curl_creader_total_length(data)) {
@@ -409,6 +411,7 @@ CURLcode Curl_req_send(struct Curl_easy *data, struct dynbuf *req,
  }
  return CURLE_OK;
}
+
#endif /* !USE_HYPER */

bool Curl_req_sendbuf_empty(struct Curl_easy *data)
{
@@ -461,7 +464,7 @@ CURLcode Curl_req_abort_sending(struct Curl_easy *data)
    data->req.upload_aborted = TRUE;
    /* no longer KEEP_SEND and KEEP_SEND_PAUSE */
    data->req.keepon &= ~KEEP_SENDBITS;
-
    return req_set_upload_done(data);
+
    return Curl_req_set_upload_done(data);
  }
  return CURLE_OK;
}
modified external/curl/lib/request.h
@@ -81,11 +81,10 @@ struct SingleRequest {
                                   first one */
  curl_off_t offset;            /* possible resume offset read from the
                                   Content-Range: header */
+
  int httpversion;              /* Version in response (09, 10, 11, etc.) */
  int httpcode;                 /* error code from the 'HTTP/1.? XXX' or
                                   'RTSP/1.? XXX' line */
  int keepon;
-
  unsigned char httpversion_sent; /* Version in request (09, 10, 11, etc.) */
-
  unsigned char httpversion;    /* Version in response (09, 10, 11, etc.) */
  enum upgrade101 upgr101;      /* 101 upgrade state */

  /* Client Writer stack, handles transfer- and content-encodings, protocol
@@ -153,6 +152,9 @@ struct SingleRequest {
  BIT(sendbuf_init); /* sendbuf is initialized */
  BIT(shutdown);     /* request end will shutdown connection */
  BIT(shutdown_err_ignore); /* errors in shutdown will not fail request */
+
#ifdef USE_HYPER
+
  BIT(bodywritten);
+
#endif
};

/**
@@ -194,17 +196,18 @@ void Curl_req_free(struct SingleRequest *req, struct Curl_easy *data);
 */
void Curl_req_hard_reset(struct SingleRequest *req, struct Curl_easy *data);

+
#ifndef USE_HYPER
/**
 * Send request headers. If not all could be sent
 * they will be buffered. Use `Curl_req_flush()` to make sure
 * bytes are really send.
 * @param data      the transfer making the request
 * @param buf       the complete header bytes, no body
-
 * @param httpversion version used in request (09, 10, 11, etc.)
 * @return CURLE_OK (on blocking with *pnwritten == 0) or error.
 */
-
CURLcode Curl_req_send(struct Curl_easy *data, struct dynbuf *buf,
-
                       unsigned char httpversion);
+
CURLcode Curl_req_send(struct Curl_easy *data, struct dynbuf *buf);
+

+
#endif /* !USE_HYPER */

/**
 * TRUE iff the request has sent all request headers and data.
modified external/curl/lib/rtsp.c
@@ -24,7 +24,7 @@

#include "curl_setup.h"

-
#if !defined(CURL_DISABLE_RTSP)
+
#if !defined(CURL_DISABLE_RTSP) && !defined(USE_HYPER)

#include "urldata.h"
#include <curl/curl.h>
@@ -117,7 +117,6 @@ const struct Curl_handler Curl_handler_rtsp = {
  ZERO_NULL,                            /* write_resp_hd */
  rtsp_conncheck,                       /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  Curl_http_follow,                     /* follow */
  PORT_RTSP,                            /* defport */
  CURLPROTO_RTSP,                       /* protocol */
  CURLPROTO_RTSP,                       /* family */
@@ -231,7 +230,6 @@ static CURLcode rtsp_do(struct Curl_easy *data, bool *done)
  Curl_RtspReq rtspreq = data->set.rtspreq;
  struct RTSP *rtsp = data->req.p.rtsp;
  struct dynbuf req_buffer;
-
  unsigned char httpversion = 11; /* RTSP is close to HTTP/1.1, sort of... */

  const char *p_request = NULL;
  const char *p_session_id = NULL;
@@ -501,7 +499,7 @@ static CURLcode rtsp_do(struct Curl_easy *data, bool *done)
      goto out;
  }

-
  result = Curl_add_custom_headers(data, FALSE, httpversion, &req_buffer);
+
  result = Curl_add_custom_headers(data, FALSE, &req_buffer);
  if(result)
    goto out;

@@ -587,7 +585,7 @@ static CURLcode rtsp_do(struct Curl_easy *data, bool *done)
  Curl_xfer_setup1(data, CURL_XFER_SENDRECV, -1, TRUE);

  /* issue the request */
-
  result = Curl_req_send(data, &req_buffer, httpversion);
+
  result = Curl_req_send(data, &req_buffer);
  if(result) {
    failf(data, "Failed sending RTSP request");
    goto out;
@@ -1045,4 +1043,4 @@ CURLcode rtsp_parse_transport(struct Curl_easy *data, const char *transport)
}


-
#endif /* CURL_DISABLE_RTSP */
+
#endif /* CURL_DISABLE_RTSP or using Hyper */
modified external/curl/lib/rtsp.h
@@ -23,6 +23,9 @@
 * SPDX-License-Identifier: curl
 *
 ***************************************************************************/
+
#ifdef USE_HYPER
+
#define CURL_DISABLE_RTSP 1
+
#endif

#ifndef CURL_DISABLE_RTSP

modified external/curl/lib/select.c
@@ -78,7 +78,7 @@ int Curl_wait_ms(timediff_t timeout_ms)
    return -1;
  }
#if defined(MSDOS)
-
  delay((unsigned int)timeout_ms);
+
  delay(timeout_ms);
#elif defined(_WIN32)
  /* prevent overflow, timeout_ms is typecast to ULONG/DWORD. */
#if TIMEDIFF_T_MAX >= ULONG_MAX
@@ -488,47 +488,43 @@ CURLcode Curl_pollfds_add_ps(struct curl_pollfds *cpfds,
  return CURLE_OK;
}

-
void Curl_waitfds_init(struct Curl_waitfds *cwfds,
+
void Curl_waitfds_init(struct curl_waitfds *cwfds,
                       struct curl_waitfd *static_wfds,
                       unsigned int static_count)
{
  DEBUGASSERT(cwfds);
-
  DEBUGASSERT(static_wfds || !static_count);
+
  DEBUGASSERT(static_wfds);
  memset(cwfds, 0, sizeof(*cwfds));
  cwfds->wfds = static_wfds;
  cwfds->count = static_count;
}

-
static unsigned int cwfds_add_sock(struct Curl_waitfds *cwfds,
-
                                   curl_socket_t sock, short events)
+
static CURLcode cwfds_add_sock(struct curl_waitfds *cwfds,
+
                               curl_socket_t sock, short events)
{
  int i;
-
  if(!cwfds->wfds) {
-
    DEBUGASSERT(!cwfds->count && !cwfds->n);
-
    return 1;
-
  }
+

  if(cwfds->n <= INT_MAX) {
    for(i = (int)cwfds->n - 1; i >= 0; --i) {
      if(sock == cwfds->wfds[i].fd) {
        cwfds->wfds[i].events |= events;
-
        return 0;
+
        return CURLE_OK;
      }
    }
  }
  /* not folded, add new entry */
-
  if(cwfds->n < cwfds->count) {
-
    cwfds->wfds[cwfds->n].fd = sock;
-
    cwfds->wfds[cwfds->n].events = events;
-
    ++cwfds->n;
-
  }
-
  return 1;
+
  if(cwfds->n >= cwfds->count)
+
    return CURLE_OUT_OF_MEMORY;
+
  cwfds->wfds[cwfds->n].fd = sock;
+
  cwfds->wfds[cwfds->n].events = events;
+
  ++cwfds->n;
+
  return CURLE_OK;
}

-
unsigned int Curl_waitfds_add_ps(struct Curl_waitfds *cwfds,
-
                                 struct easy_pollset *ps)
+
CURLcode Curl_waitfds_add_ps(struct curl_waitfds *cwfds,
+
                             struct easy_pollset *ps)
{
  size_t i;
-
  unsigned int need = 0;

  DEBUGASSERT(cwfds);
  DEBUGASSERT(ps);
@@ -538,8 +534,10 @@ unsigned int Curl_waitfds_add_ps(struct Curl_waitfds *cwfds,
      events |= CURL_WAIT_POLLIN;
    if(ps->actions[i] & CURL_POLL_OUT)
      events |= CURL_WAIT_POLLOUT;
-
    if(events)
-
      need += cwfds_add_sock(cwfds, ps->sockets[i], events);
+
    if(events) {
+
      if(cwfds_add_sock(cwfds, ps->sockets[i], events))
+
        return CURLE_OUT_OF_MEMORY;
+
    }
  }
-
  return need;
+
  return CURLE_OK;
}
modified external/curl/lib/select.h
@@ -130,17 +130,18 @@ CURLcode Curl_pollfds_add_ps(struct curl_pollfds *cpfds,
CURLcode Curl_pollfds_add_sock(struct curl_pollfds *cpfds,
                               curl_socket_t sock, short events);

-
struct Curl_waitfds {
+
struct curl_waitfds {
  struct curl_waitfd *wfds;
  unsigned int n;
  unsigned int count;
};

-
void Curl_waitfds_init(struct Curl_waitfds *cwfds,
+
void Curl_waitfds_init(struct curl_waitfds *cwfds,
                       struct curl_waitfd *static_wfds,
                       unsigned int static_count);

-
unsigned int Curl_waitfds_add_ps(struct Curl_waitfds *cwfds,
-
                                 struct easy_pollset *ps);
+
CURLcode Curl_waitfds_add_ps(struct curl_waitfds *cwfds,
+
                             struct easy_pollset *ps);
+


#endif /* HEADER_CURL_SELECT_H */
modified external/curl/lib/sendf.c
@@ -316,6 +316,9 @@ static CURLcode cw_download_write(struct Curl_easy *data,
  }
  /* Update stats, write and report progress */
  data->req.bytecount += nwrite;
+
#ifdef USE_HYPER
+
  data->req.bodywritten = TRUE;
+
#endif
  result = Curl_pgrsSetDownloadCounter(data, data->req.bytecount);
  if(result)
    return result;
@@ -494,6 +497,22 @@ struct Curl_cwriter *Curl_cwriter_get_by_type(struct Curl_easy *data,
  return NULL;
}

+
void Curl_cwriter_remove_by_name(struct Curl_easy *data,
+
                                 const char *name)
+
{
+
  struct Curl_cwriter **anchor = &data->req.writer_stack;
+

+
  while(*anchor) {
+
    if(!strcmp(name, (*anchor)->cwt->name)) {
+
      struct Curl_cwriter *w = (*anchor);
+
      *anchor = w->next;
+
      Curl_cwriter_free(data, w);
+
      continue;
+
    }
+
    anchor = &((*anchor)->next);
+
  }
+
}
+

bool Curl_cwriter_is_paused(struct Curl_easy *data)
{
  return Curl_cw_out_is_paused(data);
modified external/curl/lib/sendf.h
@@ -166,6 +166,9 @@ CURLcode Curl_cwriter_add(struct Curl_easy *data,
struct Curl_cwriter *Curl_cwriter_get_by_type(struct Curl_easy *data,
                                              const struct Curl_cwtype *cwt);

+
void Curl_cwriter_remove_by_name(struct Curl_easy *data,
+
                                 const char *name);
+

struct Curl_cwriter *Curl_cwriter_get_by_name(struct Curl_easy *data,
                                              const char *name);

modified external/curl/lib/setopt.c
@@ -644,7 +644,13 @@ static CURLcode setopt_long(struct Curl_easy *data, CURLoption option,
    break;

  case CURLOPT_HTTP09_ALLOWED:
+
#ifdef USE_HYPER
+
    /* Hyper does not support HTTP/0.9 */
+
    if(enabled)
+
      return CURLE_BAD_FUNCTION_ARGUMENT;
+
#else
    data->set.http09_allowed = enabled;
+
#endif
    break;
#endif /* ! CURL_DISABLE_HTTP */

@@ -917,7 +923,6 @@ static CURLcode setopt_long(struct Curl_easy *data, CURLoption option,
    break;
#endif

-
#ifdef HAVE_GSSAPI
  case CURLOPT_GSSAPI_DELEGATION:
    /*
     * GSS-API credential delegation bitmask
@@ -925,7 +930,6 @@ static CURLcode setopt_long(struct Curl_easy *data, CURLoption option,
    data->set.gssapi_delegation = (unsigned char)uarg&
      (CURLGSSAPI_DELEGATION_POLICY_FLAG|CURLGSSAPI_DELEGATION_FLAG);
    break;
-
#endif
  case CURLOPT_SSL_VERIFYPEER:
    /*
     * Enable peer SSL verifying.
@@ -987,7 +991,7 @@ static CURLcode setopt_long(struct Curl_easy *data, CURLoption option,
    /*
     * Enable TLS false start.
     */
-
    if(!Curl_ssl_false_start())
+
    if(!Curl_ssl_false_start(data))
      return CURLE_NOT_BUILT_IN;

    data->set.ssl.falsestart = enabled;
@@ -1106,8 +1110,7 @@ static CURLcode setopt_long(struct Curl_easy *data, CURLoption option,
     */
    if(arg > 2)
      return CURLE_BAD_FUNCTION_ARGUMENT;
-
    data->set.connect_only = !!arg;
-
    data->set.connect_only_ws = (arg == 2);
+
    data->set.connect_only = (unsigned char)arg;
    break;

  case CURLOPT_SSL_SESSIONID_CACHE:
@@ -1585,8 +1588,8 @@ static CURLcode setopt_pointers(struct Curl_easy *data, CURLoption option,
        data->hsts = NULL;
#endif
#ifdef USE_SSL
-
      if(data->share->ssl_scache == data->state.ssl_scache)
-
        data->state.ssl_scache = data->multi ? data->multi->ssl_scache : NULL;
+
      if(data->share->sslsession == data->state.session)
+
        data->state.session = NULL;
#endif
#ifdef USE_LIBPSL
      if(data->psl == &data->share->psl)
@@ -1629,8 +1632,10 @@ static CURLcode setopt_pointers(struct Curl_easy *data, CURLoption option,
      }
#endif
#ifdef USE_SSL
-
      if(data->share->ssl_scache)
-
        data->state.ssl_scache = data->share->ssl_scache;
+
      if(data->share->sslsession) {
+
        data->set.general_ssl.max_ssl_sessions = data->share->max_ssl_sessions;
+
        data->state.session = data->share->sslsession;
+
      }
#endif
#ifdef USE_LIBPSL
      if(data->share->specifier & (1 << CURL_LOCK_DATA_PSL))
@@ -2106,6 +2111,7 @@ static CURLcode setopt_cptr(struct Curl_easy *data, CURLoption option,
     * The URL to fetch.
     */
    if(data->state.url_alloc) {
+
      /* the already set URL is allocated, free it first! */
      Curl_safefree(data->state.url);
      data->state.url_alloc = FALSE;
    }
@@ -2193,13 +2199,6 @@ static CURLcode setopt_cptr(struct Curl_easy *data, CURLoption option,
    /*
     * pass CURLU to set URL
     */
-
    if(data->state.url_alloc) {
-
      Curl_safefree(data->state.url);
-
      data->state.url_alloc = FALSE;
-
    }
-
    else
-
      data->state.url = NULL;
-
    Curl_safefree(data->set.str[STRING_SET_URL]);
    data->set.uh = (CURLU *)ptr;
    break;
  case CURLOPT_SSLCERT:
modified external/curl/lib/setup-vms.h
@@ -370,7 +370,7 @@ static struct passwd *vms_getpwuid(uid_t uid)

#define USE_UPPERCASE_KRBAPI 1

-
/* AI_NUMERICHOST needed for IP V6 support in curl */
+
/* AI_NUMERICHOST needed for IP V6 support in Curl */
#ifdef HAVE_NETDB_H
#include <netdb.h>
#ifndef AI_NUMERICHOST
modified external/curl/lib/setup-win32.h
@@ -77,6 +77,17 @@
#  if defined(_UNICODE) && !defined(UNICODE)
#    error "_UNICODE is defined but UNICODE is not defined"
#  endif
+
/*
+
 * Do not include unneeded stuff in Windows headers to avoid compiler
+
 * warnings and macro clashes.
+
 * Make sure to define this macro before including any Windows headers.
+
 */
+
#  ifndef WIN32_LEAN_AND_MEAN
+
#    define WIN32_LEAN_AND_MEAN
+
#  endif
+
#  ifndef NOGDI
+
#    define NOGDI
+
#  endif
#  include <winsock2.h>
#  include <ws2tcpip.h>
#  include <windows.h>
modified external/curl/lib/sha256.c
@@ -26,7 +26,7 @@
#include "curl_setup.h"

#if !defined(CURL_DISABLE_AWS) || !defined(CURL_DISABLE_DIGEST_AUTH) \
-
  || defined(USE_LIBSSH2) || defined(USE_SSL)
+
    || defined(USE_LIBSSH2)

#include "warnless.h"
#include "curl_sha256.h"
modified external/curl/lib/share.c
@@ -30,7 +30,6 @@
#include "share.h"
#include "psl.h"
#include "vtls/vtls.h"
-
#include "vtls/vtls_scache.h"
#include "hsts.h"
#include "url.h"

@@ -109,13 +108,12 @@ curl_share_setopt(CURLSH *sh, CURLSHoption option, ...)

    case CURL_LOCK_DATA_SSL_SESSION:
#ifdef USE_SSL
-
      if(!share->ssl_scache) {
-
        /* There is no way (yet) for the application to configure the
-
         * session cache size, shared between many transfers. As for curl
-
         * itself, a high session count will impact startup time. Also, the
-
         * scache is not optimized for several hundreds of peers. So,
-
         * keep it at a reasonable level. */
-
        if(Curl_ssl_scache_create(25, 2, &share->ssl_scache))
+
      if(!share->sslsession) {
+
        share->max_ssl_sessions = 8;
+
        share->sslsession = calloc(share->max_ssl_sessions,
+
                                   sizeof(struct Curl_ssl_session));
+
        share->sessionage = 0;
+
        if(!share->sslsession)
          res = CURLSHE_NOMEM;
      }
#else
@@ -176,10 +174,7 @@ curl_share_setopt(CURLSH *sh, CURLSHoption option, ...)

    case CURL_LOCK_DATA_SSL_SESSION:
#ifdef USE_SSL
-
      if(share->ssl_scache) {
-
        Curl_ssl_scache_destroy(share->ssl_scache);
-
        share->ssl_scache = NULL;
-
      }
+
      Curl_safefree(share->sslsession);
#else
      res = CURLSHE_NOT_BUILT_IN;
#endif
@@ -250,9 +245,11 @@ curl_share_cleanup(CURLSH *sh)
#endif

#ifdef USE_SSL
-
  if(share->ssl_scache) {
-
    Curl_ssl_scache_destroy(share->ssl_scache);
-
    share->ssl_scache = NULL;
+
  if(share->sslsession) {
+
    size_t i;
+
    for(i = 0; i < share->max_ssl_sessions; i++)
+
      Curl_ssl_kill_session(&(share->sslsession[i]));
+
    free(share->sslsession);
  }
#endif

modified external/curl/lib/share.h
@@ -31,8 +31,6 @@
#include "urldata.h"
#include "conncache.h"

-
struct Curl_ssl_scache;
-

#define CURL_GOOD_SHARE 0x7e117a1e
#define GOOD_SHARE_HANDLE(x) ((x) && (x)->magic == CURL_GOOD_SHARE)

@@ -60,7 +58,9 @@ struct Curl_share {
  struct hsts *hsts;
#endif
#ifdef USE_SSL
-
  struct Curl_ssl_scache *ssl_scache;
+
  struct Curl_ssl_session *sslsession;
+
  size_t max_ssl_sessions;
+
  long sessionage;
#endif
};

@@ -68,9 +68,4 @@ CURLSHcode Curl_share_lock(struct Curl_easy *, curl_lock_data,
                           curl_lock_access);
CURLSHcode Curl_share_unlock(struct Curl_easy *, curl_lock_data);

-
/* convenience macro to check if this handle is using a shared SSL spool */
-
#define CURL_SHARE_ssl_scache(data) (data->share &&                      \
-
                                    (data->share->specifier &           \
-
                                     (1<<CURL_LOCK_DATA_SSL_SESSION)))
-

#endif /* HEADER_CURL_SHARE_H */
modified external/curl/lib/smb.c
@@ -273,7 +273,6 @@ const struct Curl_handler Curl_handler_smb = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_SMB,                             /* defport */
  CURLPROTO_SMB,                        /* protocol */
  CURLPROTO_SMB,                        /* family */
@@ -302,7 +301,6 @@ const struct Curl_handler Curl_handler_smbs = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_SMBS,                            /* defport */
  CURLPROTO_SMBS,                       /* protocol */
  CURLPROTO_SMB,                        /* family */
@@ -842,7 +840,7 @@ static CURLcode smb_connection_state(struct Curl_easy *data, bool *done)

  if(smbc->state == SMB_CONNECTING) {
#ifdef USE_SSL
-
    if(Curl_conn_is_ssl(conn, FIRSTSOCKET)) {
+
    if((conn->handler->flags & PROTOPT_SSL)) {
      bool ssl_done = FALSE;
      result = Curl_conn_connect(data, FIRSTSOCKET, FALSE, &ssl_done);
      if(result && result != CURLE_AGAIN)
@@ -917,7 +915,7 @@ static CURLcode smb_connection_state(struct Curl_easy *data, bool *done)
 */
static void get_posix_time(time_t *out, curl_off_t timestamp)
{
-
  timestamp -= CURL_OFF_T_C(116444736000000000);
+
  timestamp -= 116444736000000000;
  timestamp /= 10000000;
#if SIZEOF_TIME_T < SIZEOF_CURL_OFF_T
  if(timestamp > TIME_T_MAX)
modified external/curl/lib/smtp.c
@@ -135,7 +135,6 @@ const struct Curl_handler Curl_handler_smtp = {
  ZERO_NULL,                        /* write_resp_hd */
  ZERO_NULL,                        /* connection_check */
  ZERO_NULL,                        /* attach connection */
-
  ZERO_NULL,                        /* follow */
  PORT_SMTP,                        /* defport */
  CURLPROTO_SMTP,                   /* protocol */
  CURLPROTO_SMTP,                   /* family */
@@ -166,7 +165,6 @@ const struct Curl_handler Curl_handler_smtps = {
  ZERO_NULL,                        /* write_resp_hd */
  ZERO_NULL,                        /* connection_check */
  ZERO_NULL,                        /* attach connection */
-
  ZERO_NULL,                        /* follow */
  PORT_SMTPS,                       /* defport */
  CURLPROTO_SMTPS,                  /* protocol */
  CURLPROTO_SMTP,                   /* family */
@@ -1288,7 +1286,7 @@ static CURLcode smtp_multi_statemach(struct Curl_easy *data, bool *done)
  struct connectdata *conn = data->conn;
  struct smtp_conn *smtpc = &conn->proto.smtpc;

-
  if(Curl_conn_is_ssl(conn, FIRSTSOCKET) && !smtpc->ssldone) {
+
  if((conn->handler->flags & PROTOPT_SSL) && !smtpc->ssldone) {
    bool ssldone = FALSE;
    result = Curl_conn_connect(data, FIRSTSOCKET, FALSE, &ssldone);
    smtpc->ssldone = ssldone;
modified external/curl/lib/socketpair.c
@@ -53,7 +53,7 @@ int Curl_pipe(curl_socket_t socks[2], bool nonblocking)
    return -1;
#ifdef HAVE_FCNTL
  if(fcntl(socks[0], F_SETFD, FD_CLOEXEC) ||
-
     fcntl(socks[1], F_SETFD, FD_CLOEXEC)) {
+
     fcntl(socks[1], F_SETFD, FD_CLOEXEC) ) {
    close(socks[0]);
    close(socks[1]);
    socks[0] = socks[1] = CURL_SOCKET_BAD;
modified external/curl/lib/socks_gssapi.c
@@ -42,11 +42,6 @@
#include "curl_memory.h"
#include "memdebug.h"

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
#endif
-

#define MAX_GSS_LEN 1024

static gss_ctx_id_t gss_context = GSS_C_NO_CONTEXT;
@@ -542,8 +537,4 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf,
  return CURLE_OK;
}

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic pop
-
#endif
-

#endif /* HAVE_GSSAPI && !CURL_DISABLE_PROXY */
modified external/curl/lib/strcase.c
@@ -113,7 +113,7 @@ int curl_strequal(const char *first, const char *second)
    return casecompare(first, second);

  /* if both pointers are NULL then treat them as equal */
-
  return NULL == first && NULL == second;
+
  return (NULL == first && NULL == second);
}

static int ncasecompare(const char *first, const char *second, size_t max)
@@ -139,7 +139,7 @@ int curl_strnequal(const char *first, const char *second, size_t max)
    return ncasecompare(first, second, max);

  /* if both pointers are NULL then treat them as equal if max is non-zero */
-
  return NULL == first && NULL == second && max;
+
  return (NULL == first && NULL == second && max);
}
/* Copy an upper case version of the string from src to dest. The
 * strings may overlap. No more than n characters of the string are copied
modified external/curl/lib/strerror.c
@@ -808,7 +808,7 @@ get_winapi_error(int err, char *buf, size_t buflen)
      *p = '\0';
  }

-
  return *buf ? buf : NULL;
+
  return (*buf ? buf : NULL);
}
#endif /* _WIN32 || _WIN32_WCE */

@@ -891,7 +891,7 @@ const char *Curl_strerror(int err, char *buf, size_t buflen)
  }
#else
  {
-
    /* !checksrc! disable BANNEDFUNC 1 */
+
    /* !checksrc! disable STRERROR 1 */
    const char *msg = strerror(err);
    if(msg)
      msnprintf(buf, buflen, "%s", msg);
deleted external/curl/lib/strparse.c
@@ -1,136 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-

-
#include "strparse.h"
-

-
/* Get a word until the first DELIM or end of string. At least one byte long.
-
   return non-zero on error */
-
int Curl_str_until(char **linep, struct Curl_str *out,
-
                   const size_t max, char delim)
-
{
-
  char *s = *linep;
-
  size_t len = 0;
-
  DEBUGASSERT(linep && *linep && out && max && delim);
-

-
  out->str = NULL;
-
  out->len = 0;
-
  while(*s && (*s != delim)) {
-
    s++;
-
    if(++len > max) {
-
      return STRE_BIG;
-
    }
-
  }
-
  if(!len)
-
    return STRE_SHORT;
-
  out->str = *linep;
-
  out->len = len;
-
  *linep = s; /* point to the first byte after the word */
-
  return STRE_OK;
-
}
-

-
/* Get a word until the first space or end of string. At least one byte long.
-
   return non-zero on error */
-
int Curl_str_word(char **linep, struct Curl_str *out,
-
                  const size_t max)
-
{
-
  return Curl_str_until(linep, out, max, ' ');
-
}
-

-

-
/* Get a "quoted" word. No escaping possible.
-
   return non-zero on error */
-
int Curl_str_quotedword(char **linep, struct Curl_str *out,
-
                        const size_t max)
-
{
-
  char *s = *linep;
-
  size_t len = 0;
-
  DEBUGASSERT(linep && *linep && out && max);
-

-
  out->str = NULL;
-
  out->len = 0;
-
  if(*s != '\"')
-
    return STRE_BEGQUOTE;
-
  s++;
-
  while(*s && (*s != '\"')) {
-
    s++;
-
    if(++len > max)
-
      return STRE_BIG;
-
  }
-
  if(*s != '\"')
-
    return STRE_ENDQUOTE;
-
  out->str = (*linep) + 1;
-
  out->len = len;
-
  *linep = s + 1;
-
  return STRE_OK;
-
}
-

-
/* Advance over a single character.
-
   return non-zero on error */
-
int Curl_str_single(char **linep, char byte)
-
{
-
  DEBUGASSERT(linep && *linep);
-
  if(**linep != byte)
-
    return STRE_BYTE;
-
  (*linep)++; /* move over it */
-
  return STRE_OK;
-
}
-

-
/* Advance over a single space.
-
   return non-zero on error */
-
int Curl_str_singlespace(char **linep)
-
{
-
  return Curl_str_single(linep, ' ');
-
}
-

-
/* Get an unsigned number. Leading zeroes are accepted.
-
   return non-zero on error */
-
int Curl_str_number(char **linep, size_t *nump, size_t max)
-
{
-
  size_t num = 0;
-
  DEBUGASSERT(linep && *linep && nump);
-
  *nump = 0;
-
  while(ISDIGIT(**linep)) {
-
    int n = **linep - '0';
-
    if(num > ((SIZE_T_MAX - n) / 10))
-
      return STRE_OVERFLOW;
-
    num = num * 10 + n;
-
    if(num > max)
-
      return STRE_BIG; /** too big */
-
    (*linep)++;
-
  }
-
  *nump = num;
-
  return STRE_OK;
-
}
-

-
/* CR or LF
-
   return non-zero on error */
-
int Curl_str_newline(char **linep)
-
{
-
  DEBUGASSERT(linep && *linep);
-
  if(ISNEWLINE(**linep)) {
-
    (*linep)++;
-
    return STRE_OK; /* yessir */
-
  }
-
  return STRE_NEWLINE;
-
}
deleted external/curl/lib/strparse.h
@@ -1,71 +0,0 @@
-
#ifndef HEADER_CURL_STRPARSE_H
-
#define HEADER_CURL_STRPARSE_H
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "curl_setup.h"
-

-
#define STRE_OK       0
-
#define STRE_BIG      1
-
#define STRE_SHORT    2
-
#define STRE_BEGQUOTE 3
-
#define STRE_ENDQUOTE 4
-
#define STRE_BYTE     5
-
#define STRE_NEWLINE  6
-
#define STRE_OVERFLOW 7
-

-
struct Curl_str {
-
  char *str;
-
  size_t len;
-
};
-

-
/* Get a word until the first space
-
   return non-zero on error */
-
int Curl_str_word(char **linep, struct Curl_str *out, const size_t max);
-

-
/* Get a word until the first DELIM or end of string
-
   return non-zero on error */
-
int Curl_str_until(char **linep, struct Curl_str *out, const size_t max,
-
                   char delim);
-

-
/* Get a "quoted" word. No escaping possible.
-
   return non-zero on error */
-
int Curl_str_quotedword(char **linep, struct Curl_str *out, const size_t max);
-

-
/* Advance over a single character.
-
   return non-zero on error */
-
int Curl_str_single(char **linep, char byte);
-

-
/* Advance over a single space.
-
   return non-zero on error */
-
int Curl_str_singlespace(char **linep);
-

-
/* Get an unsigned number
-
   return non-zero on error */
-
int Curl_str_number(char **linep, size_t *nump, size_t max);
-

-
/* Check for CR or LF
-
   return non-zero on error */
-
int Curl_str_newline(char **linep);
-

-
#endif /* HEADER_CURL_STRPARSE_H */
modified external/curl/lib/strtoofft.c
@@ -39,7 +39,7 @@
#  ifdef HAVE_STRTOLL
#    define strtooff strtoll
#  else
-
#    if defined(_MSC_VER) && (_MSC_VER >= 1300)
+
#    if defined(_MSC_VER) && (_MSC_VER >= 1300) && (_INTEGRAL_MAX_BITS >= 64)
#      if defined(_SAL_VERSION)
         _Check_return_ _CRTIMP __int64 __cdecl _strtoi64(
             _In_z_ const char *_String,
modified external/curl/lib/telnet.c
@@ -190,7 +190,6 @@ const struct Curl_handler Curl_handler_telnet = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_TELNET,                          /* defport */
  CURLPROTO_TELNET,                     /* protocol */
  CURLPROTO_TELNET,                     /* family */
@@ -696,10 +695,7 @@ static void printsub(struct Curl_easy *data,
          infof(data, ", not IAC SE) ");
        }
      }
-
      if(length >= 2)
-
        length -= 2;
-
      else /* bad input */
-
        return;
+
      length -= 2;
    }
    if(length < 1) {
      infof(data, "(Empty suboption?)");
@@ -779,7 +775,8 @@ static void printsub(struct Curl_easy *data,

#ifdef _MSC_VER
#pragma warning(push)
-
#pragma warning(disable:4706) /* assignment within conditional expression */
+
/* warning C4706: assignment within conditional expression */
+
#pragma warning(disable:4706)
#endif
static bool str_is_nonascii(const char *str)
{
modified external/curl/lib/tftp.c
@@ -185,7 +185,6 @@ const struct Curl_handler Curl_handler_tftp = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_TFTP,                            /* defport */
  CURLPROTO_TFTP,                       /* protocol */
  CURLPROTO_TFTP,                       /* family */
@@ -525,7 +524,7 @@ static CURLcode tftp_send_first(struct tftp_state_data *state,
       not have a size_t argument, like older unixes that want an 'int' */
    senddata = sendto(state->sockfd, (void *)state->spacket.data,
                      (SEND_TYPE_ARG3)sbytes, 0,
-
                     (struct sockaddr *)&data->conn->remote_addr->curl_sa_addr,
+
                      &data->conn->remote_addr->curl_sa_addr,
                      (curl_socklen_t)data->conn->remote_addr->addrlen);
    if(senddata != (ssize_t)sbytes) {
      char buffer[STRERROR_LEN];
modified external/curl/lib/transfer.c
@@ -176,9 +176,9 @@ static bool xfer_recv_shutdown_started(struct Curl_easy *data)
  int sockindex;

  if(!data || !data->conn)
-
    return FALSE;
+
    return CURLE_FAILED_INIT;
  if(data->conn->sockfd == CURL_SOCKET_BAD)
-
    return FALSE;
+
    return CURLE_FAILED_INIT;
  sockindex = (data->conn->sockfd == data->conn->sock[SECONDARYSOCKET]);
  return Curl_shutdown_started(data, sockindex);
}
@@ -434,6 +434,15 @@ CURLcode Curl_sendrecv(struct Curl_easy *data, struct curltime *nowp)
    data->state.select_bits = 0;
  }

+
#ifdef USE_HYPER
+
  if(data->conn->datastream) {
+
    result = data->conn->datastream(data, data->conn, &didwhat,
+
                                    CURL_CSELECT_OUT|CURL_CSELECT_IN);
+
    if(result || data->req.done)
+
      goto out;
+
  }
+
  else {
+
#endif
  /* We go ahead and do a read if we have a readable socket or if the stream
     was rewound (in which case we have data in a buffer) */
  if(k->keepon & KEEP_RECV) {
@@ -448,6 +457,9 @@ CURLcode Curl_sendrecv(struct Curl_easy *data, struct curltime *nowp)
    if(result)
      goto out;
  }
+
#ifdef USE_HYPER
+
  }
+
#endif

  if(!didwhat) {
    /* Transfer wanted to send/recv, but nothing was possible. */
@@ -526,17 +538,22 @@ void Curl_init_CONNECT(struct Curl_easy *data)
 */
CURLcode Curl_pretransfer(struct Curl_easy *data)
{
-
  CURLcode result = CURLE_OK;
+
  CURLcode result;

-
  if(!data->set.str[STRING_SET_URL] && !data->set.uh) {
+
  if(!data->state.url && !data->set.uh) {
    /* we cannot do anything without URL */
    failf(data, "No URL set");
    return CURLE_URL_MALFORMAT;
  }

-
  /* CURLOPT_CURLU overrides CURLOPT_URL and the contents of the CURLU handle
-
     is allowed to be changed by the user between transfers */
-
  if(data->set.uh) {
+
  /* since the URL may have been redirected in a previous use of this handle */
+
  if(data->state.url_alloc) {
+
    /* the already set URL is allocated, free it first! */
+
    Curl_safefree(data->state.url);
+
    data->state.url_alloc = FALSE;
+
  }
+

+
  if(!data->state.url && data->set.uh) {
    CURLUcode uc;
    free(data->set.str[STRING_SET_URL]);
    uc = curl_url_get(data->set.uh,
@@ -547,14 +564,6 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
    }
  }

-
  /* since the URL may have been redirected in a previous use of this handle */
-
  if(data->state.url_alloc) {
-
    Curl_safefree(data->state.url);
-
    data->state.url_alloc = FALSE;
-
  }
-

-
  data->state.url = data->set.str[STRING_SET_URL];
-

  if(data->set.postfields && data->set.set_resume_from) {
    /* we cannot */
    failf(data, "cannot mix POSTFIELDS with RESUME_FROM");
@@ -566,12 +575,14 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
  data->state.list_only = data->set.list_only;
#endif
  data->state.httpreq = data->set.method;
+
  data->state.url = data->set.str[STRING_SET_URL];

-
#ifdef USE_SSL
-
  if(!data->state.ssl_scache)
-
    /* There was no ssl session cache set via a share, use the multi one */
-
    data->state.ssl_scache = data->multi->ssl_scache;
-
#endif
+
  /* Init the SSL session ID cache here. We do it here since we want to do it
+
     after the *_setopt() calls (that could specify the size of the cache) but
+
     before any transfer takes place. */
+
  result = Curl_ssl_initsessions(data, data->set.general_ssl.max_ssl_sessions);
+
  if(result)
+
    return result;

  data->state.requests = 0;
  data->state.followlocation = 0; /* reset the location-follow counter */
@@ -782,7 +793,7 @@ static void xfer_setup(
  DEBUGASSERT((writesockindex <= 1) && (writesockindex >= -1));
  DEBUGASSERT(!shutdown || (sockindex == -1) || (writesockindex == -1));

-
  if(Curl_conn_is_multiplex(conn, FIRSTSOCKET) || want_send) {
+
  if(conn->bits.multiplex || conn->httpversion >= 20 || want_send) {
    /* when multiplexing, the read/write sockets need to be the same! */
    conn->sockfd = sockindex == -1 ?
      ((writesockindex == -1 ? CURL_SOCKET_BAD : conn->sock[writesockindex])) :
@@ -973,9 +984,9 @@ bool Curl_xfer_is_blocked(struct Curl_easy *data)
  bool want_send = ((data)->req.keepon & KEEP_SEND);
  bool want_recv = ((data)->req.keepon & KEEP_RECV);
  if(!want_send)
-
    return want_recv && Curl_cwriter_is_paused(data);
+
    return (want_recv && Curl_cwriter_is_paused(data));
  else if(!want_recv)
-
    return want_send && Curl_creader_is_paused(data);
+
    return (want_send && Curl_creader_is_paused(data));
  else
    return Curl_creader_is_paused(data) && Curl_cwriter_is_paused(data);
}
modified external/curl/lib/transfer.h
@@ -33,6 +33,15 @@ void Curl_init_CONNECT(struct Curl_easy *data);

CURLcode Curl_pretransfer(struct Curl_easy *data);

+
typedef enum {
+
  FOLLOW_NONE,  /* not used within the function, just a placeholder to
+
                   allow initing to this */
+
  FOLLOW_FAKE,  /* only records stuff, not actually following */
+
  FOLLOW_RETRY, /* set if this is a request retry as opposed to a real
+
                   redirect following */
+
  FOLLOW_REDIR /* a full true redirect */
+
} followtype;
+

CURLcode Curl_sendrecv(struct Curl_easy *data, struct curltime *nowp);
int Curl_single_getsock(struct Curl_easy *data,
                        struct connectdata *conn, curl_socket_t *socks);
modified external/curl/lib/url.c
@@ -382,6 +382,8 @@ CURLcode Curl_init_userdefined(struct Curl_easy *data)
#endif
  set->dns_cache_timeout = 60; /* Timeout every 60 seconds by default */

+
  /* Set the default size of the SSL session ID cache */
+
  set->general_ssl.max_ssl_sessions = 5;
  /* Timeout every 24 hours by default */
  set->general_ssl.ca_cache_timeout = 24 * 60 * 60;

@@ -837,8 +839,8 @@ CURLcode Curl_conn_upkeep(struct Curl_easy *data,
static bool ssh_config_matches(struct connectdata *one,
                               struct connectdata *two)
{
-
  return Curl_safecmp(one->proto.sshc.rsa, two->proto.sshc.rsa) &&
-
         Curl_safecmp(one->proto.sshc.rsa_pub, two->proto.sshc.rsa_pub);
+
  return (Curl_safecmp(one->proto.sshc.rsa, two->proto.sshc.rsa) &&
+
          Curl_safecmp(one->proto.sshc.rsa_pub, two->proto.sshc.rsa_pub));
}
#else
#define ssh_config_matches(x,y) FALSE
@@ -956,12 +958,12 @@ static bool url_match_conn(struct connectdata *conn, void *userdata)
    return FALSE;
#endif

-
  if((!(needle->handler->flags&PROTOPT_SSL) !=
-
      !Curl_conn_is_ssl(conn, FIRSTSOCKET)) &&
-
     !(get_protocol_family(conn->handler) == needle->handler->protocol &&
-
       conn->bits.tls_upgraded))
-
    /* Deny `conn` if it is not fit for `needle`'s SSL needs,
-
     * UNLESS `conn` is the same protocol family and was upgraded to SSL. */
+
  if((needle->handler->flags&PROTOPT_SSL) !=
+
     (conn->handler->flags&PROTOPT_SSL))
+
    /* do not do mixed SSL and non-SSL connections */
+
    if(get_protocol_family(conn->handler) !=
+
       needle->handler->protocol || !conn->bits.tls_upgraded)
+
      /* except protocols that have been upgraded via TLS */
      return FALSE;

#ifndef CURL_DISABLE_PROXY
@@ -1002,7 +1004,7 @@ static bool url_match_conn(struct connectdata *conn, void *userdata)
  if(match->may_multiplex &&
     (data->state.httpwant == CURL_HTTP_VERSION_2_0) &&
     (needle->handler->protocol & CURLPROTO_HTTP) &&
-
     !conn->httpversion_seen) {
+
     !conn->httpversion) {
    if(data->set.pipewait) {
      infof(data, "Server upgrade does not support multiplex yet, wait");
      match->found = NULL;
@@ -1025,12 +1027,10 @@ static bool url_match_conn(struct connectdata *conn, void *userdata)
    }
  }

-
#ifdef HAVE_GSSAPI
  /* GSS delegation differences do not actually affect every connection
     and auth method, but this check takes precaution before efficiency */
  if(needle->gssapi_delegation != conn->gssapi_delegation)
    return FALSE;
-
#endif

  /* If looking for HTTP and the HTTP version we want is less
   * than the HTTP version of conn, continue looking.
@@ -1038,18 +1038,17 @@ static bool url_match_conn(struct connectdata *conn, void *userdata)
   * so we take any existing connection. */
  if((needle->handler->protocol & PROTO_FAMILY_HTTP) &&
     (data->state.httpwant != CURL_HTTP_VERSION_2TLS)) {
-
    unsigned char httpversion = Curl_conn_http_version(data);
-
    if((httpversion >= 20) &&
+
    if((conn->httpversion >= 20) &&
       (data->state.httpwant < CURL_HTTP_VERSION_2_0)) {
      DEBUGF(infof(data, "nor reusing conn #%" CURL_FORMAT_CURL_OFF_T
             " with httpversion=%d, we want a version less than h2",
-
             conn->connection_id, httpversion));
+
             conn->connection_id, conn->httpversion));
    }
-
    if((httpversion >= 30) &&
+
    if((conn->httpversion >= 30) &&
       (data->state.httpwant < CURL_HTTP_VERSION_3)) {
      DEBUGF(infof(data, "nor reusing conn #%" CURL_FORMAT_CURL_OFF_T
             " with httpversion=%d, we want a version less than h3",
-
             conn->connection_id, httpversion));
+
             conn->connection_id, conn->httpversion));
      return FALSE;
    }
  }
@@ -1391,9 +1390,8 @@ static struct connectdata *allocate_conn(struct Curl_easy *data)
  conn->fclosesocket = data->set.fclosesocket;
  conn->closesocket_client = data->set.closesocket_client;
  conn->lastused = conn->created;
-
#ifdef HAVE_GSSAPI
  conn->gssapi_delegation = data->set.gssapi_delegation;
-
#endif
+

  return conn;
error:

@@ -1829,7 +1827,7 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
  /* HSTS upgrade */
  if(data->hsts && strcasecompare("http", data->state.up.scheme)) {
    /* This MUST use the IDN decoded name */
-
    if(Curl_hsts(data->hsts, conn->host.name, strlen(conn->host.name), TRUE)) {
+
    if(Curl_hsts(data->hsts, conn->host.name, TRUE)) {
      char *url;
      Curl_safefree(data->state.up.scheme);
      uc = curl_url_set(uh, CURLUPART_SCHEME, "https", 0);
@@ -3139,14 +3137,14 @@ static CURLcode parse_connect_to_slist(struct Curl_easy *data,
        /* protocol version switch */
        switch(as->dst.alpnid) {
        case ALPN_h1:
-
          data->state.httpwant = CURL_HTTP_VERSION_1_1;
+
          conn->httpversion = 11;
          break;
        case ALPN_h2:
-
          data->state.httpwant = CURL_HTTP_VERSION_2_0;
+
          conn->httpversion = 20;
          break;
        case ALPN_h3:
          conn->transport = TRNSPRT_QUIC;
-
          data->state.httpwant = CURL_HTTP_VERSION_3;
+
          conn->httpversion = 30;
          break;
        default: /* should not be possible */
          break;
modified external/curl/lib/urlapi.c
@@ -86,9 +86,6 @@ struct Curl_URL {

#define DEFAULT_SCHEME "https"

-
static CURLUcode parseurl_and_replace(const char *url, CURLU *u,
-
                                      unsigned int flags);
-

static void free_urlhandle(struct Curl_URL *u)
{
  free(u->scheme);
@@ -247,47 +244,92 @@ size_t Curl_is_absolute_url(const char *url, char *buf, size_t buflen,

/*
 * Concatenate a relative URL to a base URL making it absolute.
+
 * URL-encodes any spaces.
+
 * The returned pointer must be freed by the caller unless NULL
+
 * (returns NULL on out of memory).
 *
 * Note that this function destroys the 'base' string.
 */
-
static CURLUcode redirect_url(char *base, const char *relurl,
-
                              CURLU *u, unsigned int flags)
+
static CURLcode concat_url(char *base, const char *relurl, char **newurl)
{
-
  struct dynbuf urlbuf;
+
  /***
+
   TRY to append this new path to the old URL
+
   to the right of the host part. Oh crap, this is doomed to cause
+
   problems in the future...
+
  */
+
  struct dynbuf newest;
+
  char *protsep;
+
  char *pathsep;
  bool host_changed = FALSE;
  const char *useurl = relurl;
  CURLcode result = CURLE_OK;
  CURLUcode uc;
+
  bool skip_slash = FALSE;
+
  *newurl = NULL;
+

  /* protsep points to the start of the hostname */
-
  char *protsep = strstr(base, "//");
-
  DEBUGASSERT(protsep);
+
  protsep = strstr(base, "//");
  if(!protsep)
    protsep = base;
  else
    protsep += 2; /* pass the slashes */

-
  if(('/' != relurl[0]) && ('#' != relurl[0])) {
-
    /* First we need to find out if there is a ?-letter in the original URL,
+
  if('/' != relurl[0]) {
+
    int level = 0;
+

+
    /* First we need to find out if there is a ?-letter in the URL,
       and cut it and the right-side of that off */
-
    char *pathsep = strchr(protsep, '?');
+
    pathsep = strchr(protsep, '?');
    if(pathsep)
      *pathsep = 0;
-
    else {
-
      /* if not, cut off the potential fragment */
-
      pathsep = strchr(protsep, '#');
+

+
    /* we have a relative path to append to the last slash if there is one
+
       available, or the new URL is just a query string (starts with a '?') or
+
       a fragment (starts with '#') we append the new one at the end of the
+
       current URL */
+
    if((useurl[0] != '?') && (useurl[0] != '#')) {
+
      pathsep = strrchr(protsep, '/');
      if(pathsep)
        *pathsep = 0;
-
    }

-
    /* if the redirect-to piece is not just a query, cut the path after the
-
       last slash */
-
    if(useurl[0] != '?') {
-
      pathsep = strrchr(protsep, '/');
+
      /* Check if there is any slash after the hostname, and if so, remember
+
         that position instead */
+
      pathsep = strchr(protsep, '/');
      if(pathsep)
-
        pathsep[1] = 0; /* leave the slash */
+
        protsep = pathsep + 1;
+
      else
+
        protsep = NULL;
+

+
      /* now deal with one "./" or any amount of "../" in the newurl
+
         and act accordingly */
+

+
      if((useurl[0] == '.') && (useurl[1] == '/'))
+
        useurl += 2; /* just skip the "./" */
+

+
      while((useurl[0] == '.') &&
+
            (useurl[1] == '.') &&
+
            (useurl[2] == '/')) {
+
        level++;
+
        useurl += 3; /* pass the "../" */
+
      }
+

+
      if(protsep) {
+
        while(level--) {
+
          /* cut off one more level from the right of the original URL */
+
          pathsep = strrchr(protsep, '/');
+
          if(pathsep)
+
            *pathsep = 0;
+
          else {
+
            *protsep = 0;
+
            break;
+
          }
+
        }
+
      }
    }
+
    else
+
      skip_slash = TRUE;
  }
-
  else if('/' == relurl[0]) {
+
  else {
    /* We got a new absolute path for this server */

    if(relurl[1] == '/') {
@@ -299,36 +341,54 @@ static CURLUcode redirect_url(char *base, const char *relurl,
      host_changed = TRUE;
    }
    else {
-
      /* cut the original URL at first slash */
-
      char *pathsep = strchr(protsep, '/');
-
      if(pathsep)
+
      /* cut off the original URL from the first slash, or deal with URLs
+
         without slash */
+
      pathsep = strchr(protsep, '/');
+
      if(pathsep) {
+
        /* When people use badly formatted URLs, such as
+
           "http://www.example.com?dir=/home/daniel" we must not use the first
+
           slash, if there is a ?-letter before it! */
+
        char *sep = strchr(protsep, '?');
+
        if(sep && (sep < pathsep))
+
          pathsep = sep;
        *pathsep = 0;
+
      }
+
      else {
+
        /* There was no slash. Now, since we might be operating on a badly
+
           formatted URL, such as "http://www.example.com?id=2380" which does
+
           not use a slash separator as it is supposed to, we need to check
+
           for a ?-letter as well! */
+
        pathsep = strchr(protsep, '?');
+
        if(pathsep)
+
          *pathsep = 0;
+
      }
    }
  }
-
  else {
-
    /* the relative piece starts with '#' */
-

-
    /* If there is a fragment in the original URL, cut it off */
-
    char *pathsep = strchr(protsep, '#');
-
    if(pathsep)
-
      *pathsep = 0;
-
  }

-
  Curl_dyn_init(&urlbuf, CURL_MAX_INPUT_LENGTH);
+
  Curl_dyn_init(&newest, CURL_MAX_INPUT_LENGTH);

  /* copy over the root URL part */
-
  result = Curl_dyn_add(&urlbuf, base);
+
  result = Curl_dyn_add(&newest, base);
  if(result)
-
    return cc2cu(result);
+
    return result;
+

+
  /* check if we need to append a slash */
+
  if(('/' == useurl[0]) || (protsep && !*protsep) || skip_slash)
+
    ;
+
  else {
+
    result = Curl_dyn_addn(&newest, "/", 1);
+
    if(result)
+
      return result;
+
  }

  /* then append the new piece on the right side */
-
  uc = urlencode_str(&urlbuf, useurl, strlen(useurl), !host_changed,
+
  uc = urlencode_str(&newest, useurl, strlen(useurl), !host_changed,
                     FALSE);
-
  if(!uc)
-
    uc = parseurl_and_replace(Curl_dyn_ptr(&urlbuf), u,
-
                              flags&~CURLU_PATH_AS_IS);
-
  Curl_dyn_free(&urlbuf);
-
  return uc;
+
  if(uc)
+
    return (uc == CURLUE_TOO_LARGE) ? CURLE_TOO_LARGE : CURLE_OUT_OF_MEMORY;
+

+
  *newurl = Curl_dyn_ptr(&newest);
+
  return CURLE_OK;
}

/* scan for byte values <= 31, 127 and sometimes space */
@@ -1796,24 +1856,34 @@ CURLUcode curl_url_set(CURLU *u, CURLUPart what,
     * If the existing contents is enough for a URL, allow a relative URL to
     * replace it.
     */
+
    CURLcode result;
    CURLUcode uc;
    char *oldurl;
+
    char *redired_url;

    if(!nalloc)
      /* a blank URL is not a valid URL */
      return CURLUE_MALFORMED_INPUT;

-
    /* if the new thing is absolute or the old one is not (we could not get an
-
     * absolute URL in 'oldurl'), then replace the existing with the new. */
+
    /* if the new thing is absolute or the old one is not
+
     * (we could not get an absolute URL in 'oldurl'),
+
     * then replace the existing with the new. */
    if(Curl_is_absolute_url(part, NULL, 0,
-
                            flags & (CURLU_GUESS_SCHEME|CURLU_DEFAULT_SCHEME))
+
                            flags & (CURLU_GUESS_SCHEME|
+
                                     CURLU_DEFAULT_SCHEME))
       || curl_url_get(u, CURLUPART_URL, &oldurl, flags)) {
      return parseurl_and_replace(part, u, flags);
    }

-
    /* apply the relative part to create a new URL */
-
    uc = redirect_url(oldurl, part, u, flags);
+
    /* apply the relative part to create a new URL
+
     * and replace the existing one with it. */
+
    result = concat_url(oldurl, part, &redired_url);
    free(oldurl);
+
    if(result)
+
      return cc2cu(result);
+

+
    uc = parseurl_and_replace(redired_url, u, flags);
+
    free(redired_url);
    return uc;
  }
  default:
modified external/curl/lib/urldata.h
@@ -105,7 +105,7 @@ typedef unsigned int curl_prot_t;
#define CURL_DEFAULT_USER "anonymous"
#define CURL_DEFAULT_PASSWORD "ftp@example.com"

-
#if !defined(_WIN32) && !defined(MSDOS)
+
#if !defined(_WIN32) && !defined(MSDOS) && !defined(__EMX__)
/* do FTP line-end CRLF => LF conversions on platforms that prefer LF-only. It
   also means: keep CRLF line endings on the CRLF platforms */
#define CURL_PREFER_LF_LINEENDS
@@ -180,6 +180,13 @@ typedef ssize_t (Curl_recv)(struct Curl_easy *data, /* transfer */
                            size_t len,               /* max amount to read */
                            CURLcode *err);           /* error to return */

+
#ifdef USE_HYPER
+
typedef CURLcode (*Curl_datastream)(struct Curl_easy *data,
+
                                    struct connectdata *conn,
+
                                    int *didwhat,
+
                                    int select_res);
+
#endif
+

#include "mime.h"
#include "imap.h"
#include "pop3.h"
@@ -193,6 +200,7 @@ typedef ssize_t (Curl_recv)(struct Curl_easy *data, /* transfer */
#include "mqtt.h"
#include "ftplistparser.h"
#include "multihandle.h"
+
#include "c-hyper.h"
#include "cf-socket.h"

#ifdef HAVE_GSSAPI
@@ -263,7 +271,21 @@ enum protection_level {

/* SSL backend-specific data; declared differently by each SSL backend */
struct ssl_backend_data;
-
struct Curl_ssl_scache_entry;
+

+
typedef enum {
+
  CURL_SSL_PEER_DNS,
+
  CURL_SSL_PEER_IPV4,
+
  CURL_SSL_PEER_IPV6
+
} ssl_peer_type;
+

+
struct ssl_peer {
+
  char *hostname;        /* hostname for verification */
+
  char *dispname;        /* display version of hostname */
+
  char *sni;             /* SNI version of hostname or NULL if not usable */
+
  ssl_peer_type type;    /* type of the peer information */
+
  int port;              /* port we are talking to */
+
  int transport;         /* one of TRNSPRT_* defines */
+
};

struct ssl_primary_config {
  char *CApath;          /* certificate dir (does not work on Windows) */
@@ -315,9 +337,28 @@ struct ssl_config_data {
};

struct ssl_general_config {
+
  size_t max_ssl_sessions; /* SSL session id cache size */
  int ca_cache_timeout;  /* Certificate store cache timeout (seconds) */
};

+
typedef void Curl_ssl_sessionid_dtor(void *sessionid, size_t idsize);
+

+
/* information stored about one single SSL session */
+
struct Curl_ssl_session {
+
  char *name;       /* hostname for which this ID was used */
+
  char *conn_to_host; /* hostname for the connection (may be NULL) */
+
  const char *scheme; /* protocol scheme used */
+
  char *alpn;         /* APLN TLS negotiated protocol string */
+
  void *sessionid;  /* as returned from the SSL layer */
+
  size_t idsize;    /* if known, otherwise 0 */
+
  Curl_ssl_sessionid_dtor *sessionid_free; /* free `sessionid` callback */
+
  long age;         /* just a number, the higher the more recent */
+
  int remote_port;  /* remote port */
+
  int conn_to_port; /* remote port for the connection (may be -1) */
+
  int transport;    /* TCP or QUIC */
+
  struct ssl_primary_config ssl_config; /* setup for this session */
+
};
+

#ifdef USE_WINDOWS_SSPI
#include "curl_sspi.h"
#endif
@@ -676,12 +717,6 @@ struct Curl_handler {
  /* attach() attaches this transfer to this connection */
  void (*attach)(struct Curl_easy *data, struct connectdata *conn);

-
  /* return CURLE_OK if a redirect to `newurl` should be followed,
-
     CURLE_TOO_MANY_REDIRECTS otherwise. May alter `data` to change
-
     the way the follow request is performed. */
-
  CURLcode (*follow)(struct Curl_easy *data, const char *newurl,
-
                     followtype type);
-

  int defport;            /* Default port. */
  curl_prot_t protocol;  /* See CURLPROTO_* - this needs to be the single
                            specific protocol bit */
@@ -927,7 +962,10 @@ struct connectdata {
#ifdef USE_UNIX_SOCKETS
  char *unix_domain_socket;
#endif
-

+
#ifdef USE_HYPER
+
  /* if set, an alternative data transfer function */
+
  Curl_datastream datastream;
+
#endif
  /* When this connection is created, store the conditions for the local end
     bind. This is stored before the actual bind and before any connection is
     made and will serve the purpose of being used for comparison reasons so
@@ -956,9 +994,7 @@ struct connectdata {
#endif
  unsigned char transport; /* one of the TRNSPRT_* defines */
  unsigned char ip_version; /* copied from the Curl_easy at creation time */
-
  /* HTTP version last responded with by the server.
-
   * 0 at start, then one of 09, 10, 11, etc. */
-
  unsigned char httpversion_seen;
+
  unsigned char httpversion; /* the HTTP version*10 reported by the server */
  unsigned char connect_only;
  unsigned char gssapi_delegation; /* inherited from set.gssapi_delegation */
};
@@ -990,8 +1026,6 @@ struct PureInfo {
  curl_off_t request_size; /* the amount of bytes sent in the request(s) */
  unsigned long proxyauthavail; /* what proxy auth types were announced */
  unsigned long httpauthavail;  /* what host auth types were announced */
-
  unsigned long proxyauthpicked; /* selected proxy auth type */
-
  unsigned long httpauthpicked;  /* selected host auth type */
  long numconnects; /* how many new connection did libcurl created */
  char *contenttype; /* the content type of the object */
  char *wouldredirect; /* URL this would have been redirected to if asked to */
@@ -1056,7 +1090,6 @@ struct Progress {
  struct curltime start;
  struct curltime t_startsingle;
  struct curltime t_startop;
-
  struct curltime t_startqueue;
  struct curltime t_acceptdata;

#define CURR_TIME (5 + 1) /* 6 entries for 5 seconds */
@@ -1199,7 +1232,8 @@ struct UrlState {
  curl_prot_t first_remote_protocol;

  int retrycount; /* number of retries on a new connection */
-
  struct Curl_ssl_scache *ssl_scache; /* TLS session pool */
+
  struct Curl_ssl_session *session; /* array of 'max_ssl_sessions' size */
+
  long sessionage;                  /* number of the most recent session */
  int os_errno;  /* filled in with errno whenever an error occurs */
  long followlocation; /* redirect counter */
  int requests; /* request counter: redirects + authentication retakes */
@@ -1220,10 +1254,6 @@ struct UrlState {
#if defined(USE_OPENSSL)
  /* void instead of ENGINE to avoid bleeding OpenSSL into this header */
  void *engine;
-
  /* this is just a flag -- we do not need to reference the provider in any
-
   * way as OpenSSL takes care of that */
-
  BIT(provider);
-
  BIT(provider_failed);
#endif /* USE_OPENSSL */
  struct curltime expiretime; /* set this with Curl_expire() only */
  struct Curl_tree timenode; /* for the splay stuff */
@@ -1279,6 +1309,10 @@ struct UrlState {
  struct curl_slist *cookielist; /* list of cookie files set by
                                    curl_easy_setopt(COOKIEFILE) calls */
#endif
+
#ifdef USE_HYPER
+
  bool hconnect;  /* set if a CONNECT request */
+
  CURLcode hresult; /* used to pass return codes back from hyper callbacks */
+
#endif

#ifndef CURL_DISABLE_VERBOSE_STRINGS
  struct curl_trc_feat *feat; /* opt. trace feature transfer is part of */
@@ -1536,15 +1570,23 @@ struct UserDefined {
  void *out;         /* CURLOPT_WRITEDATA */
  void *in_set;      /* CURLOPT_READDATA */
  void *writeheader; /* write the header to this if non-NULL */
+
  unsigned short use_port; /* which port to use (when not using default) */
  unsigned long httpauth;  /* kind of HTTP authentication to use (bitmask) */
  unsigned long proxyauth; /* kind of proxy authentication to use (bitmask) */
  long maxredirs;    /* maximum no. of http(s) redirects to follow, set to -1
                        for infinity */
+

  void *postfields;  /* if POST, set the fields' values here */
  curl_seek_callback seek_func;      /* function that seeks the input */
  curl_off_t postfieldsize; /* if POST, this might have a size to use instead
                               of strlen(), and then the data *may* be binary
                               (contain zero bytes) */
+
#ifndef CURL_DISABLE_BINDLOCAL
+
  unsigned short localport; /* local port number to bind to */
+
  unsigned short localportrange; /* number of additional port numbers to test
+
                                    in case the 'localport' one cannot be
+
                                    bind()ed */
+
#endif
  curl_write_callback fwrite_func;   /* function that stores the output */
  curl_write_callback fwrite_header; /* function that stores headers */
  curl_write_callback fwrite_rtp;    /* function that stores interleaved RTP */
@@ -1574,6 +1616,11 @@ struct UserDefined {
#endif
  void *progress_client; /* pointer to pass to the progress callback */
  void *ioctl_client;   /* pointer to pass to the ioctl callback */
+
  unsigned int timeout;        /* ms, 0 means no timeout */
+
  unsigned int connecttimeout; /* ms, 0 means default timeout */
+
  unsigned int happy_eyeballs_timeout; /* ms, 0 is a valid value */
+
  unsigned int server_response_timeout; /* ms, 0 means no timeout */
+
  unsigned int shutdowntimeout; /* ms, 0 means default timeout */
  long maxage_conn;     /* in seconds, max idle time to allow a connection that
                           is to be reused */
  long maxlifetime_conn; /* in seconds, max time since creation to allow a
@@ -1601,6 +1648,10 @@ struct UserDefined {
  struct curl_slist *connect_to; /* list of host:port mappings to override
                                    the hostname and port to connect to */
  time_t timevalue;       /* what time to compare with */
+
  unsigned char timecondition; /* kind of time comparison: curl_TimeCond */
+
  unsigned char method;   /* what kind of HTTP request: Curl_HttpReq */
+
  unsigned char httpwant; /* when non-zero, a specific HTTP version requested
+
                             to be used in the library's request(s) */
  struct ssl_config_data ssl;  /* user defined SSL stuff */
#ifndef CURL_DISABLE_PROXY
  struct ssl_config_data proxy_ssl;  /* user defined SSL stuff for proxy */
@@ -1620,17 +1671,24 @@ struct UserDefined {
#ifndef CURL_DISABLE_HTTP
  struct curl_slist *http200aliases; /* linked list of aliases for http200 */
#endif
+
  unsigned char ipver; /* the CURL_IPRESOLVE_* defines in the public header
+
                          file 0 - whatever, 1 - v2, 2 - v6 */
  curl_off_t max_filesize; /* Maximum file size to download */
#ifndef CURL_DISABLE_FTP
-
  unsigned int accepttimeout;   /* in milliseconds, 0 means no timeout */
  unsigned char ftp_filemethod; /* how to get to a file: curl_ftpfile  */
  unsigned char ftpsslauth; /* what AUTH XXX to try: curl_ftpauth */
  unsigned char ftp_ccc;   /* FTP CCC options: curl_ftpccc */
+
  unsigned int accepttimeout;   /* in milliseconds, 0 means no timeout */
#endif
#if !defined(CURL_DISABLE_FTP) || defined(USE_SSH)
  struct curl_slist *quote;     /* after connection is established */
  struct curl_slist *postquote; /* after the transfer */
  struct curl_slist *prequote; /* before the transfer, after type */
+
  /* Despite the name, ftp_create_missing_dirs is for FTP(S) and SFTP
+
     1 - create directories that do not exist
+
     2 - the same but also allow MKD to fail once
+
  */
+
  unsigned char ftp_create_missing_dirs;
#endif
#ifdef USE_LIBSSH2
  curl_sshhostkeycallback ssh_hostkeyfunc; /* hostkey check callback */
@@ -1642,6 +1700,9 @@ struct UserDefined {
  int ssh_auth_types;    /* allowed SSH auth types */
  unsigned int new_directory_perms; /* when creating remote dirs */
#endif
+
#ifndef CURL_DISABLE_NETRC
+
  unsigned char use_netrc;        /* enum CURL_NETRC_OPTION values  */
+
#endif
  unsigned int new_file_perms;      /* when creating remote files */
  char *str[STRING_LAST]; /* array of strings, pointing to allocated memory */
  struct curl_blob *blobs[BLOB_LAST];
@@ -1665,12 +1726,10 @@ struct UserDefined {
  void *fnmatch_data;
  void *wildcardptr;
#endif
+
 /* GSS-API credential delegation, see the documentation of
+
    CURLOPT_GSSAPI_DELEGATION */
+
  unsigned char gssapi_delegation;

-
  unsigned int timeout;        /* ms, 0 means no timeout */
-
  unsigned int connecttimeout; /* ms, 0 means default timeout */
-
  unsigned int happy_eyeballs_timeout; /* ms, 0 is a valid value */
-
  unsigned int server_response_timeout; /* ms, 0 means no timeout */
-
  unsigned int shutdowntimeout; /* ms, 0 means default timeout */
  int tcp_keepidle;     /* seconds in idle before sending keepalive probe */
  int tcp_keepintvl;    /* seconds between TCP keepalive probes */
  int tcp_keepcnt;      /* maximum number of keepalive probes */
@@ -1692,49 +1751,18 @@ struct UserDefined {
  void *trailer_data; /* pointer to pass to trailer data callback */
  curl_trailer_callback trailer_callback; /* trailing data callback */
#endif
-
#ifndef CURL_DISABLE_SMTP
-
  struct curl_slist *mail_rcpt; /* linked list of mail recipients */
-
#endif
-
  unsigned int maxconnects; /* Max idle connections in the connection cache */
-
  unsigned short use_port; /* which port to use (when not using default) */
-
#ifndef CURL_DISABLE_BINDLOCAL
-
  unsigned short localport; /* local port number to bind to */
-
  unsigned short localportrange; /* number of additional port numbers to test
-
                                    in case the 'localport' one cannot be
-
                                    bind()ed */
-
#endif
-
#ifndef CURL_DISABLE_NETRC
-
  unsigned char use_netrc;        /* enum CURL_NETRC_OPTION values  */
-
#endif
-
#if !defined(CURL_DISABLE_FTP) || defined(USE_SSH)
-
  /* Despite the name, ftp_create_missing_dirs is for FTP(S) and SFTP
-
     1 - create directories that do not exist
-
     2 - the same but also allow MKD to fail once
-
  */
-
  unsigned char ftp_create_missing_dirs;
-
#endif
-
  unsigned char use_ssl;   /* if AUTH TLS is to be attempted etc, for FTP or
-
                              IMAP or POP3 or others! (type: curl_usessl)*/
  char keep_post;     /* keep POSTs as POSTs after a 30x request; each
                         bit represents a request, from 301 to 303 */
-
  unsigned char timecondition; /* kind of time comparison: curl_TimeCond */
-
  unsigned char method;   /* what kind of HTTP request: Curl_HttpReq */
-
  unsigned char httpwant; /* when non-zero, a specific HTTP version requested
-
                             to be used in the library's request(s) */
-
  unsigned char ipver; /* the CURL_IPRESOLVE_* defines in the public header
-
                          file 0 - whatever, 1 - v2, 2 - v6 */
-
#ifdef HAVE_GSSAPI
-
  /* GSS-API credential delegation, see the documentation of
-
     CURLOPT_GSSAPI_DELEGATION */
-
  unsigned char gssapi_delegation;
-
#endif
-
  BIT(connect_only); /* make connection/request, then let application use the
-
                        socket */
-
  BIT(connect_only_ws); /* special websocket connect-only level */
#ifndef CURL_DISABLE_SMTP
+
  struct curl_slist *mail_rcpt; /* linked list of mail recipients */
  BIT(mail_rcpt_allowfails); /* allow RCPT TO command to fail for some
                                recipients */
#endif
+
  unsigned int maxconnects; /* Max idle connections in the connection cache */
+
  unsigned char use_ssl;   /* if AUTH TLS is to be attempted etc, for FTP or
+
                              IMAP or POP3 or others! (type: curl_usessl)*/
+
  unsigned char connect_only; /* make connection/request, then let
+
                                 application use the socket */
#ifndef CURL_DISABLE_MIME
  BIT(mime_formescape);
#endif
@@ -1928,6 +1956,9 @@ struct Curl_easy {
  struct PureInfo info;        /* stats, reports and info data */
  struct curl_tlssessioninfo tsi; /* Information about the TLS session, only
                                     valid after a client has asked for it */
+
#ifdef USE_HYPER
+
  struct hyptransfer hyp;
+
#endif
};

#define LIBCURL_NAME "libcurl"
modified external/curl/lib/vauth/.checksrc
@@ -1,3 +1,2 @@
-
banfunc strerror
-
banfunc strncpy
-
banfunc sscanf
+
enable STRERROR
+
enable STRNCPY
modified external/curl/lib/vauth/digest_sspi.c
@@ -69,7 +69,7 @@ bool Curl_auth_is_digest_supported(void)
    Curl_pSecFn->FreeContextBuffer(SecurityPackage);
  }

-
  return status == SEC_E_OK;
+
  return (status == SEC_E_OK);
}

/*
modified external/curl/lib/vauth/krb5_gssapi.c
@@ -42,11 +42,6 @@
#include "curl_memory.h"
#include "memdebug.h"

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
#endif
-

/*
 * Curl_auth_is_gssapi_supported()
 *
@@ -326,8 +321,4 @@ void Curl_auth_cleanup_gssapi(struct kerberos5data *krb5)
  }
}

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic pop
-
#endif
-

#endif /* HAVE_GSSAPI && USE_KERBEROS5 */
modified external/curl/lib/vauth/krb5_sspi.c
@@ -64,7 +64,7 @@ bool Curl_auth_is_gssapi_supported(void)
    Curl_pSecFn->FreeContextBuffer(SecurityPackage);
  }

-
  return status == SEC_E_OK;
+
  return (status == SEC_E_OK);
}

/*
modified external/curl/lib/vauth/ntlm_sspi.c
@@ -63,7 +63,7 @@ bool Curl_auth_is_ntlm_supported(void)
    Curl_pSecFn->FreeContextBuffer(SecurityPackage);
  }

-
  return status == SEC_E_OK;
+
  return (status == SEC_E_OK);
}

/*
modified external/curl/lib/vauth/spnego_gssapi.c
@@ -42,11 +42,6 @@
#include "curl_memory.h"
#include "memdebug.h"

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
#endif
-

/*
 * Curl_auth_is_spnego_supported()
 *
@@ -293,8 +288,4 @@ void Curl_auth_cleanup_spnego(struct negotiatedata *nego)
  nego->havemultiplerequests = FALSE;
}

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic pop
-
#endif
-

#endif /* HAVE_GSSAPI && USE_SPNEGO */
modified external/curl/lib/vauth/spnego_sspi.c
@@ -67,7 +67,7 @@ bool Curl_auth_is_spnego_supported(void)
  }


-
  return status == SEC_E_OK;
+
  return (status == SEC_E_OK);
}

/*
modified external/curl/lib/vauth/vauth.c
@@ -153,10 +153,10 @@ bool Curl_auth_user_contains_domain(const char *user)
bool Curl_auth_allowed_to_host(struct Curl_easy *data)
{
  struct connectdata *conn = data->conn;
-
  return !data->state.this_is_a_follow ||
-
         data->set.allow_auth_to_other_hosts ||
-
         (data->state.first_host &&
-
          strcasecompare(data->state.first_host, conn->host.name) &&
-
          (data->state.first_remote_port == conn->remote_port) &&
-
          (data->state.first_remote_protocol == conn->handler->protocol));
+
  return (!data->state.this_is_a_follow ||
+
          data->set.allow_auth_to_other_hosts ||
+
          (data->state.first_host &&
+
           strcasecompare(data->state.first_host, conn->host.name) &&
+
           (data->state.first_remote_port == conn->remote_port) &&
+
           (data->state.first_remote_protocol == conn->handler->protocol)));
}
modified external/curl/lib/version.c
@@ -38,6 +38,10 @@
#include "easy_lock.h"

#ifdef USE_ARES
+
#  if defined(CURL_STATICLIB) && !defined(CARES_STATICLIB) &&   \
+
  defined(_WIN32)
+
#    define CARES_STATICLIB
+
#  endif
#  include <ares.h>
#endif

@@ -206,6 +210,9 @@ char *curl_version(void)
#ifdef USE_LIBRTMP
  char rtmp_version[30];
#endif
+
#ifdef USE_HYPER
+
  char hyper_buf[30];
+
#endif
#ifdef USE_GSASL
  char gsasl_buf[30];
#endif
@@ -270,6 +277,10 @@ char *curl_version(void)
  Curl_rtmp_version(rtmp_version, sizeof(rtmp_version));
  src[i++] = rtmp_version;
#endif
+
#ifdef USE_HYPER
+
  msnprintf(hyper_buf, sizeof(hyper_buf), "Hyper/%s", hyper_version());
+
  src[i++] = hyper_buf;
+
#endif
#ifdef USE_GSASL
  msnprintf(gsasl_buf, sizeof(gsasl_buf), "libgsasl/%s",
            gsasl_check_version(NULL));
@@ -412,15 +423,10 @@ static const char * const supported_protocols[] = {
 * curl_global_init() and curl_global_cleanup() calls.
 */

-
#if defined(USE_LIBIDN2) || defined(USE_WIN32_IDN) || defined(USE_APPLE_IDN)
+
#if defined(USE_LIBIDN2)
static int idn_present(curl_version_info_data *info)
{
-
#if defined(USE_WIN32_IDN) || defined(USE_APPLE_IDN)
-
  (void)info;
-
  return TRUE;
-
#else
  return info->libidn != NULL;
-
#endif
}
#else
#define idn_present     NULL
@@ -462,9 +468,6 @@ static const struct feat features_table[] = {
#ifndef CURL_DISABLE_ALTSVC
  FEATURE("alt-svc",     NULL,                CURL_VERSION_ALTSVC),
#endif
-
#if defined(USE_ARES) && defined(CURLRES_THREADED) && defined(USE_HTTPSRR)
-
  FEATURE("asyn-rr", NULL,             0),
-
#endif
#ifdef CURLRES_ASYNCH
  FEATURE("AsynchDNS",   NULL,                CURL_VERSION_ASYNCHDNS),
#endif
@@ -476,10 +479,6 @@ static const struct feat features_table[] = {
#endif
#if defined(USE_SSL) && defined(USE_ECH)
  FEATURE("ECH",         ech_present,         0),
-

-
#ifndef USE_HTTPSRR
-
#error "ECH enabled but not HTTPSRR, must be a config error"
-
#endif
#endif
#ifdef USE_GSASL
  FEATURE("gsasl",       NULL,                CURL_VERSION_GSASL),
@@ -500,9 +499,6 @@ static const struct feat features_table[] = {
  !defined(CURL_DISABLE_HTTP)
  FEATURE("HTTPS-proxy", https_proxy_present, CURL_VERSION_HTTPS_PROXY),
#endif
-
#if defined(USE_HTTPSRR)
-
  FEATURE("HTTPSRR",     NULL,                0),
-
#endif
#if defined(USE_LIBIDN2) || defined(USE_WIN32_IDN) || defined(USE_APPLE_IDN)
  FEATURE("IDN",         idn_present,         CURL_VERSION_IDN),
#endif
@@ -534,9 +530,6 @@ static const struct feat features_table[] = {
#ifdef USE_SSL
  FEATURE("SSL",         NULL,                CURL_VERSION_SSL),
#endif
-
#if defined(USE_SSLS_EXPORT)
-
  FEATURE("SSLS-EXPORT", NULL,                0),
-
#endif
#ifdef USE_WINDOWS_SSPI
  FEATURE("SSPI",        NULL,                CURL_VERSION_SSPI),
#endif
@@ -683,6 +676,14 @@ curl_version_info_data *curl_version_info(CURLversion stamp)
  }
#endif

+
#ifdef USE_HYPER
+
  {
+
    static char hyper_buffer[30];
+
    msnprintf(hyper_buffer, sizeof(hyper_buffer), "Hyper/%s", hyper_version());
+
    version_info.hyper_version = hyper_buffer;
+
  }
+
#endif
+

#ifdef USE_GSASL
  {
    version_info.gsasl_version = gsasl_check_version(NULL);
modified external/curl/lib/vquic/.checksrc
@@ -1,3 +1,2 @@
-
banfunc strerror
-
banfunc strncpy
-
banfunc sscanf
+
enable STRERROR
+
enable STRNCPY
modified external/curl/lib/vquic/curl_msh3.c
@@ -132,23 +132,15 @@ struct cf_msh3_ctx {

static void h3_stream_hash_free(void *stream);

-
static CURLcode cf_msh3_ctx_init(struct cf_msh3_ctx *ctx,
-
                                 const struct Curl_addrinfo *ai)
+
static void cf_msh3_ctx_init(struct cf_msh3_ctx *ctx,
+
                             const struct Curl_addrinfo *ai)
{
-
  CURLcode result;
-

  DEBUGASSERT(!ctx->initialized);
  Curl_hash_offt_init(&ctx->streams, 63, h3_stream_hash_free);
-

-
  result = Curl_sock_assign_addr(&ctx->addr, ai, TRNSPRT_QUIC);
-
  if(result)
-
    return result;
-

+
  Curl_sock_assign_addr(&ctx->addr, ai, TRNSPRT_QUIC);
  ctx->sock[SP_LOCAL] = CURL_SOCKET_BAD;
  ctx->sock[SP_REMOTE] = CURL_SOCKET_BAD;
  ctx->initialized = TRUE;
-

-
  return result;
}

static void cf_msh3_ctx_free(struct cf_msh3_ctx *ctx)
@@ -918,6 +910,7 @@ static CURLcode cf_msh3_connect(struct Curl_cfilter *cf,
    if(ctx->handshake_succeeded) {
      CURL_TRC_CF(data, cf, "handshake succeeded");
      cf->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
+
      cf->conn->httpversion = 30;
      cf->connected = TRUE;
      cf->conn->alpn = CURL_HTTP_VERSION_3;
      *done = TRUE;
@@ -1024,9 +1017,6 @@ static CURLcode cf_msh3_query(struct Curl_cfilter *cf,
      *when = ctx->handshake_at;
    return CURLE_OK;
  }
-
  case CF_QUERY_HTTP_VERSION:
-
    *pres1 = 30;
-
    return CURLE_OK;
  default:
    break;
  }
@@ -1049,7 +1039,7 @@ static bool cf_msh3_conn_is_alive(struct Curl_cfilter *cf,

struct Curl_cftype Curl_cft_http3 = {
  "HTTP/3",
-
  CF_TYPE_IP_CONNECT | CF_TYPE_SSL | CF_TYPE_MULTIPLEX | CF_TYPE_HTTP,
+
  CF_TYPE_IP_CONNECT | CF_TYPE_SSL | CF_TYPE_MULTIPLEX,
  0,
  cf_msh3_destroy,
  cf_msh3_connect,
@@ -1097,10 +1087,7 @@ CURLcode Curl_cf_msh3_create(struct Curl_cfilter **pcf,
    result = CURLE_OUT_OF_MEMORY;
    goto out;
  }
-

-
  result = cf_msh3_ctx_init(ctx, ai);
-
  if(result)
-
    goto out;
+
  cf_msh3_ctx_init(ctx, ai);

  result = Curl_cf_create(&cf, &Curl_cft_http3, ctx);

modified external/curl/lib/vquic/curl_ngtcp2.c
@@ -66,7 +66,6 @@
#include "vquic-tls.h"
#include "vtls/keylog.h"
#include "vtls/vtls.h"
-
#include "vtls/vtls_scache.h"
#include "curl_ngtcp2.h"

#include "warnless.h"
@@ -138,16 +137,8 @@ struct cf_ngtcp2_ctx {
  uint64_t max_idle_ms;              /* max idle time for QUIC connection */
  uint64_t used_bidi_streams;        /* bidi streams we have opened */
  uint64_t max_bidi_streams;         /* max bidi streams we can open */
-
  size_t earlydata_max;              /* max amount of early data supported by
-
                                        server on session reuse */
-
  size_t earlydata_skip;            /* sending bytes to skip when earlydata
-
                                     * is accepted by peer */
-
  CURLcode tls_vrfy_result;          /* result of TLS peer verification */
  int qlogfd;
  BIT(initialized);
-
  BIT(tls_handshake_complete);       /* TLS handshake is done */
-
  BIT(use_earlydata);                /* Using 0RTT data */
-
  BIT(earlydata_accepted);           /* 0RTT was acceptd by server */
  BIT(shutdown_started);             /* queued shutdown packets */
};

@@ -175,8 +166,6 @@ static void cf_ngtcp2_ctx_init(struct cf_ngtcp2_ctx *ctx)
static void cf_ngtcp2_ctx_free(struct cf_ngtcp2_ctx *ctx)
{
  if(ctx && ctx->initialized) {
-
    Curl_vquic_tls_cleanup(&ctx->tls);
-
    vquic_ctx_free(&ctx->q);
    Curl_bufcp_free(&ctx->stream_bufcp);
    Curl_dyn_free(&ctx->scratch);
    Curl_hash_clean(&ctx->streams);
@@ -453,45 +442,12 @@ static void quic_settings(struct cf_ngtcp2_ctx *ctx,
  }
}

-
static CURLcode init_ngh3_conn(struct Curl_cfilter *cf,
-
                               struct Curl_easy *data);
+
static CURLcode init_ngh3_conn(struct Curl_cfilter *cf);

-
static int cf_ngtcp2_handshake_completed(ngtcp2_conn *tconn, void *user_data)
+
static int cb_handshake_completed(ngtcp2_conn *tconn, void *user_data)
{
-
  struct Curl_cfilter *cf = user_data;
-
  struct cf_ngtcp2_ctx *ctx = cf ? cf->ctx : NULL;
-
  struct Curl_easy *data;
-

+
  (void)user_data;
  (void)tconn;
-
  DEBUGASSERT(ctx);
-
  data = CF_DATA_CURRENT(cf);
-
  DEBUGASSERT(data);
-
  if(!ctx || !data)
-
    return NGHTTP3_ERR_CALLBACK_FAILURE;
-

-
  ctx->handshake_at = Curl_now();
-
  ctx->tls_handshake_complete = TRUE;
-
  cf->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
-

-
  ctx->tls_vrfy_result = Curl_vquic_tls_verify_peer(&ctx->tls, cf,
-
                                                    data, &ctx->peer);
-
  CURL_TRC_CF(data, cf, "handshake complete after %dms",
-
             (int)Curl_timediff(ctx->handshake_at, ctx->started_at));
-
  /* In case of earlydata, where we simulate being connected, update
-
   * the handshake time when we really did connect */
-
  if(ctx->use_earlydata)
-
    Curl_pgrsTimeWas(data, TIMER_APPCONNECT, ctx->handshake_at);
-
#ifdef USE_GNUTLS
-
  if(ctx->use_earlydata) {
-
    int flags = gnutls_session_get_flags(ctx->tls.gtls.session);
-
    ctx->earlydata_accepted = !!(flags & GNUTLS_SFLAGS_EARLY_DATA);
-
    CURL_TRC_CF(data, cf, "server did%s accept %zu bytes of early data",
-
                ctx->earlydata_accepted ? "" : " not", ctx->earlydata_skip);
-
    Curl_pgrsEarlyData(data, ctx->earlydata_accepted ?
-
                              (curl_off_t)ctx->earlydata_skip :
-
                             -(curl_off_t)ctx->earlydata_skip);
-
  }
-
#endif
  return 0;
}

@@ -761,19 +717,16 @@ static int cb_recv_rx_key(ngtcp2_conn *tconn, ngtcp2_encryption_level level,
                          void *user_data)
{
  struct Curl_cfilter *cf = user_data;
-
  struct cf_ngtcp2_ctx *ctx = cf ? cf->ctx : NULL;
-
  struct Curl_easy *data = CF_DATA_CURRENT(cf);
  (void)tconn;

-
  if(level != NGTCP2_ENCRYPTION_LEVEL_1RTT)
+
  if(level != NGTCP2_ENCRYPTION_LEVEL_1RTT) {
    return 0;
+
  }

-
  DEBUGASSERT(ctx);
-
  DEBUGASSERT(data);
-
  if(ctx && data && !ctx->h3conn) {
-
    if(init_ngh3_conn(cf, data))
-
      return NGTCP2_ERR_CALLBACK_FAILURE;
+
  if(init_ngh3_conn(cf) != CURLE_OK) {
+
    return NGTCP2_ERR_CALLBACK_FAILURE;
  }
+

  return 0;
}

@@ -786,7 +739,7 @@ static ngtcp2_callbacks ng_callbacks = {
  ngtcp2_crypto_client_initial_cb,
  NULL, /* recv_client_initial */
  ngtcp2_crypto_recv_crypto_data_cb,
-
  cf_ngtcp2_handshake_completed,
+
  cb_handshake_completed,
  NULL, /* recv_version_negotiation */
  ngtcp2_crypto_encrypt_cb,
  ngtcp2_crypto_decrypt_cb,
@@ -1175,15 +1128,14 @@ static nghttp3_callbacks ngh3_callbacks = {
  NULL /* recv_settings */
};

-
static CURLcode init_ngh3_conn(struct Curl_cfilter *cf,
-
                               struct Curl_easy *data)
+
static CURLcode init_ngh3_conn(struct Curl_cfilter *cf)
{
  struct cf_ngtcp2_ctx *ctx = cf->ctx;
-
  int64_t ctrl_stream_id, qpack_enc_stream_id, qpack_dec_stream_id;
+
  CURLcode result;
  int rc;
+
  int64_t ctrl_stream_id, qpack_enc_stream_id, qpack_dec_stream_id;

  if(ngtcp2_conn_get_streams_uni_left(ctx->qconn) < 3) {
-
    failf(data, "QUIC connection lacks 3 uni streams to run HTTP/3");
    return CURLE_QUIC_CONNECT_ERROR;
  }

@@ -1195,47 +1147,45 @@ static CURLcode init_ngh3_conn(struct Curl_cfilter *cf,
                               nghttp3_mem_default(),
                               cf);
  if(rc) {
-
    failf(data, "error creating nghttp3 connection instance");
-
    return CURLE_OUT_OF_MEMORY;
+
    result = CURLE_OUT_OF_MEMORY;
+
    goto fail;
  }

  rc = ngtcp2_conn_open_uni_stream(ctx->qconn, &ctrl_stream_id, NULL);
  if(rc) {
-
    failf(data, "error creating HTTP/3 control stream: %s",
-
          ngtcp2_strerror(rc));
-
    return CURLE_QUIC_CONNECT_ERROR;
+
    result = CURLE_QUIC_CONNECT_ERROR;
+
    goto fail;
  }

  rc = nghttp3_conn_bind_control_stream(ctx->h3conn, ctrl_stream_id);
  if(rc) {
-
    failf(data, "error binding HTTP/3 control stream: %s",
-
          ngtcp2_strerror(rc));
-
    return CURLE_QUIC_CONNECT_ERROR;
+
    result = CURLE_QUIC_CONNECT_ERROR;
+
    goto fail;
  }

  rc = ngtcp2_conn_open_uni_stream(ctx->qconn, &qpack_enc_stream_id, NULL);
  if(rc) {
-
    failf(data, "error creating HTTP/3 qpack encoding stream: %s",
-
          ngtcp2_strerror(rc));
-
    return CURLE_QUIC_CONNECT_ERROR;
+
    result = CURLE_QUIC_CONNECT_ERROR;
+
    goto fail;
  }

  rc = ngtcp2_conn_open_uni_stream(ctx->qconn, &qpack_dec_stream_id, NULL);
  if(rc) {
-
    failf(data, "error creating HTTP/3 qpack decoding stream: %s",
-
          ngtcp2_strerror(rc));
-
    return CURLE_QUIC_CONNECT_ERROR;
+
    result = CURLE_QUIC_CONNECT_ERROR;
+
    goto fail;
  }

  rc = nghttp3_conn_bind_qpack_streams(ctx->h3conn, qpack_enc_stream_id,
                                       qpack_dec_stream_id);
  if(rc) {
-
    failf(data, "error binding HTTP/3 qpack streams: %s",
-
          ngtcp2_strerror(rc));
-
    return CURLE_QUIC_CONNECT_ERROR;
+
    result = CURLE_QUIC_CONNECT_ERROR;
+
    goto fail;
  }

  return CURLE_OK;
+
fail:
+

+
  return result;
}

static ssize_t recv_closed_stream(struct Curl_cfilter *cf,
@@ -1286,10 +1236,6 @@ static ssize_t cf_ngtcp2_recv(struct Curl_cfilter *cf, struct Curl_easy *data,
  DEBUGASSERT(ctx->h3conn);
  *err = CURLE_OK;

-
  /* handshake verification failed in callback, do not recv anything */
-
  if(ctx->tls_vrfy_result)
-
    return ctx->tls_vrfy_result;
-

  pktx_init(&pktx, cf, data);

  if(!stream || ctx->shutdown_started) {
@@ -1575,7 +1521,7 @@ static ssize_t cf_ngtcp2_send(struct Curl_cfilter *cf, struct Curl_easy *data,
{
  struct cf_ngtcp2_ctx *ctx = cf->ctx;
  struct h3_stream_ctx *stream = H3_STREAM_CTX(ctx, data);
-
  ssize_t sent = -1;
+
  ssize_t sent = 0;
  struct cf_call_data save;
  struct pkt_io_ctx pktx;
  CURLcode result;
@@ -1587,20 +1533,18 @@ static ssize_t cf_ngtcp2_send(struct Curl_cfilter *cf, struct Curl_easy *data,
  pktx_init(&pktx, cf, data);
  *err = CURLE_OK;

-
  /* handshake verification failed in callback, do not send anything */
-
  if(ctx->tls_vrfy_result)
-
    return ctx->tls_vrfy_result;
-

  (void)eos; /* TODO: use for stream EOF and block handling */
  result = cf_progress_ingress(cf, data, &pktx);
  if(result) {
    *err = result;
+
    sent = -1;
  }

  if(!stream || stream->id < 0) {
    if(ctx->shutdown_started) {
      CURL_TRC_CF(data, cf, "cannot open stream on closed connection");
      *err = CURLE_SEND_ERROR;
+
      sent = -1;
      goto out;
    }
    sent = h3_stream_open(cf, data, buf, len, err);
@@ -1614,6 +1558,7 @@ static ssize_t cf_ngtcp2_send(struct Curl_cfilter *cf, struct Curl_easy *data,
    CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] xfer write failed", stream->id);
    cf_ngtcp2_stream_close(cf, data, stream);
    *err = stream->xfer_result;
+
    sent = -1;
    goto out;
  }
  else if(stream->closed) {
@@ -1638,6 +1583,7 @@ static ssize_t cf_ngtcp2_send(struct Curl_cfilter *cf, struct Curl_easy *data,
  else if(ctx->shutdown_started) {
    CURL_TRC_CF(data, cf, "cannot send on closed connection");
    *err = CURLE_SEND_ERROR;
+
    sent = -1;
    goto out;
  }
  else {
@@ -1652,9 +1598,6 @@ static ssize_t cf_ngtcp2_send(struct Curl_cfilter *cf, struct Curl_easy *data,
    (void)nghttp3_conn_resume_stream(ctx->h3conn, stream->id);
  }

-
  if(sent > 0 && !ctx->tls_handshake_complete && ctx->use_earlydata)
-
    ctx->earlydata_skip += sent;
-

  result = cf_progress_egress(cf, data, &pktx);
  if(result) {
    *err = result;
@@ -1673,6 +1616,17 @@ out:
  return sent;
}

+
static CURLcode qng_verify_peer(struct Curl_cfilter *cf,
+
                                struct Curl_easy *data)
+
{
+
  struct cf_ngtcp2_ctx *ctx = cf->ctx;
+

+
  cf->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
+
  cf->conn->httpversion = 30;
+

+
  return Curl_vquic_tls_verify_peer(&ctx->tls, cf, data, &ctx->peer);
+
}
+

static CURLcode recv_pkt(const unsigned char *pkt, size_t pktlen,
                         struct sockaddr_storage *remote_addr,
                         socklen_t remote_addrlen, int ecn,
@@ -1742,7 +1696,7 @@ static ssize_t read_pkt_to_send(void *userp,
  uint32_t flags;
  int64_t stream_id;
  int fin;
-
  ssize_t nwritten = 0, n;
+
  ssize_t nwritten, n;
  veccnt = 0;
  stream_id = -1;
  fin = 0;
@@ -1754,6 +1708,7 @@ static ssize_t read_pkt_to_send(void *userp,
   * When ngtcp2 is happy (because it has no other frame that would fit
   * or it has nothing more to send), it returns the total length
   * of the assembled packet. This may be 0 if there was nothing to send. */
+
  nwritten = 0;
  *err = CURLE_OK;
  for(;;) {

@@ -1991,6 +1946,9 @@ static CURLcode cf_ngtcp2_data_event(struct Curl_cfilter *cf,
  case CF_CTRL_DATA_PAUSE:
    result = h3_data_pause(cf, data, (arg1 != 0));
    break;
+
  case CF_CTRL_DATA_DETACH:
+
    h3_data_done(cf, data);
+
    break;
  case CF_CTRL_DATA_DONE:
    h3_data_done(cf, data);
    break;
@@ -2173,8 +2131,7 @@ static int quic_ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
  ctx = cf ? cf->ctx : NULL;
  data = cf ? CF_DATA_CURRENT(cf) : NULL;
  if(cf && data && ctx) {
-
    Curl_ossl_add_session(cf, data, ctx->peer.scache_key, ssl_sessionid,
-
                          SSL_version(ssl), "h3");
+
    Curl_ossl_add_session(cf, data, &ctx->peer, ssl_sessionid);
    return 1;
  }
  return 0;
@@ -2182,24 +2139,6 @@ static int quic_ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
#endif /* USE_OPENSSL */

#ifdef USE_GNUTLS
-

-
static const char *gtls_hs_msg_name(int mtype)
-
{
-
  switch(mtype) {
-
    case 1: return "ClientHello";
-
    case 2: return "ServerHello";
-
    case 4: return "SessionTicket";
-
    case 8: return "EncryptedExtensions";
-
    case 11: return "Certificate";
-
    case 13: return "CertificateRequest";
-
    case 15: return "CertificateVerify";
-
    case 20: return "Finished";
-
    case 24: return "KeyUpdate";
-
    case 254: return "MessageHash";
-
  }
-
  return "Unknown";
-
}
-

static int quic_gtls_handshake_cb(gnutls_session_t session, unsigned int htype,
                                  unsigned when, unsigned int incoming,
                                  const gnutls_datum_t *msg)
@@ -2213,28 +2152,13 @@ static int quic_gtls_handshake_cb(gnutls_session_t session, unsigned int htype,
  if(when && cf && ctx) { /* after message has been processed */
    struct Curl_easy *data = CF_DATA_CURRENT(cf);
    DEBUGASSERT(data);
-
    if(!data)
-
      return 0;
-
    CURL_TRC_CF(data, cf, "SSL message: %s %s [%d]",
-
                incoming ? "<-" : "->", gtls_hs_msg_name(htype), htype);
+
    if(data) {
+
      CURL_TRC_CF(data, cf, "handshake: %s message type %d",
+
                  incoming ? "incoming" : "outgoing", htype);
+
    }
    switch(htype) {
    case GNUTLS_HANDSHAKE_NEW_SESSION_TICKET: {
-
      ngtcp2_ssize tplen;
-
      uint8_t tpbuf[256];
-
      unsigned char *quic_tp = NULL;
-
      size_t quic_tp_len = 0;
-

-
      tplen = ngtcp2_conn_encode_0rtt_transport_params(ctx->qconn, tpbuf,
-
                                                       sizeof(tpbuf));
-
      if(tplen < 0)
-
        CURL_TRC_CF(data, cf, "error encoding 0RTT transport data: %s",
-
                    ngtcp2_strerror((int)tplen));
-
      else {
-
        quic_tp = (unsigned char *)tpbuf;
-
        quic_tp_len = (size_t)tplen;
-
      }
-
      (void)Curl_gtls_cache_session(cf, data, ctx->peer.scache_key,
-
                                    session, 0, "h3", quic_tp, quic_tp_len);
+
      (void)Curl_gtls_update_session_id(cf, data, session, &ctx->peer, "h3");
      break;
    }
    default:
@@ -2257,17 +2181,16 @@ static int wssl_quic_new_session_cb(WOLFSSL *ssl, WOLFSSL_SESSION *session)
    struct Curl_easy *data = CF_DATA_CURRENT(cf);
    DEBUGASSERT(data);
    if(data && ctx) {
-
      (void)Curl_wssl_cache_session(cf, data, ctx->peer.scache_key,
-
                                    session, wolfSSL_version(ssl), "h3");
+
      (void)wssl_cache_session(cf, data, &ctx->peer, session);
    }
  }
  return 0;
}
#endif /* USE_WOLFSSL */

-
static CURLcode cf_ngtcp2_tls_ctx_setup(struct Curl_cfilter *cf,
-
                                        struct Curl_easy *data,
-
                                        void *user_data)
+
static CURLcode tls_ctx_setup(struct Curl_cfilter *cf,
+
                              struct Curl_easy *data,
+
                              void *user_data)
{
  struct curl_tls_ctx *ctx = user_data;
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
@@ -2320,53 +2243,6 @@ static CURLcode cf_ngtcp2_tls_ctx_setup(struct Curl_cfilter *cf,
  return CURLE_OK;
}

-
static CURLcode cf_ngtcp2_on_session_reuse(struct Curl_cfilter *cf,
-
                                           struct Curl_easy *data,
-
                                           struct Curl_ssl_session *scs,
-
                                           bool *do_early_data)
-
{
-
  struct cf_ngtcp2_ctx *ctx = cf->ctx;
-
  CURLcode result = CURLE_OK;
-

-
  *do_early_data = FALSE;
-
#ifdef USE_GNUTLS
-
  ctx->earlydata_max =
-
    gnutls_record_get_max_early_data_size(ctx->tls.gtls.session);
-
  if((!ctx->earlydata_max)) {
-
    CURL_TRC_CF(data, cf, "SSL session does not allow earlydata");
-
  }
-
  else if(strcmp("h3", scs->alpn)) {
-
    CURL_TRC_CF(data, cf, "SSL session from different ALPN, no early data");
-
  }
-
  else if(!scs->quic_tp || !scs->quic_tp_len) {
-
    CURL_TRC_CF(data, cf, "no 0RTT transport parameters, no early data, ");
-
  }
-
  else {
-
    int rv;
-
    rv = ngtcp2_conn_decode_and_set_0rtt_transport_params(
-
      ctx->qconn, (uint8_t *)scs->quic_tp, scs->quic_tp_len);
-
    if(rv)
-
      CURL_TRC_CF(data, cf, "no early data, failed to set 0RTT transport "
-
                  "parameters: %s", ngtcp2_strerror(rv));
-
    else {
-
      infof(data, "SSL session allows %zu bytes of early data, "
-
            "reusing ALPN '%s'", ctx->earlydata_max, scs->alpn);
-
      result = init_ngh3_conn(cf, data);
-
      if(!result) {
-
        ctx->use_earlydata = TRUE;
-
        cf->connected = TRUE;
-
        *do_early_data = TRUE;
-
      }
-
    }
-
  }
-
#else /* USE_GNUTLS */
-
  (void)data;
-
  (void)ctx;
-
  (void)scs;
-
#endif
-
  return result;
-
}
-

/*
 * Might be called twice for happy eyeballs.
 */
@@ -2382,6 +2258,21 @@ static CURLcode cf_connect_start(struct Curl_cfilter *cf,
  int qfd;

  DEBUGASSERT(ctx->initialized);
+
  result = Curl_ssl_peer_init(&ctx->peer, cf, TRNSPRT_QUIC);
+
  if(result)
+
    return result;
+

+
#define H3_ALPN "\x2h3\x5h3-29"
+
  result = Curl_vquic_tls_init(&ctx->tls, cf, data, &ctx->peer,
+
                               H3_ALPN, sizeof(H3_ALPN) - 1,
+
                               tls_ctx_setup, &ctx->tls, &ctx->conn_ref);
+
  if(result)
+
    return result;
+

+
#ifdef USE_OPENSSL
+
  SSL_set_quic_use_legacy_codepoint(ctx->tls.ossl.ssl, 0);
+
#endif
+

  ctx->dcid.datalen = NGTCP2_MAX_CIDLEN;
  result = Curl_rand(data, ctx->dcid.data, NGTCP2_MAX_CIDLEN);
  if(result)
@@ -2423,17 +2314,7 @@ static CURLcode cf_connect_start(struct Curl_cfilter *cf,
  if(rc)
    return CURLE_QUIC_CONNECT_ERROR;

-
#define H3_ALPN "\x2h3\x5h3-29"
-
  result = Curl_vquic_tls_init(&ctx->tls, cf, data, &ctx->peer,
-
                               H3_ALPN, sizeof(H3_ALPN) - 1,
-
                               cf_ngtcp2_tls_ctx_setup, &ctx->tls,
-
                               &ctx->conn_ref,
-
                               cf_ngtcp2_on_session_reuse);
-
  if(result)
-
    return result;
-

#ifdef USE_OPENSSL
-
  SSL_set_quic_use_legacy_codepoint(ctx->tls.ossl.ssl, 0);
  ngtcp2_conn_set_tls_native_handle(ctx->qconn, ctx->tls.ossl.ssl);
#elif defined(USE_GNUTLS)
  ngtcp2_conn_set_tls_native_handle(ctx->qconn, ctx->tls.gtls.session);
@@ -2484,11 +2365,6 @@ static CURLcode cf_ngtcp2_connect(struct Curl_cfilter *cf,
    result = cf_connect_start(cf, data, &pktx);
    if(result)
      goto out;
-
    if(cf->connected) {
-
      cf->conn->alpn = CURL_HTTP_VERSION_3;
-
      *done = TRUE;
-
      goto out;
-
    }
    result = cf_progress_egress(cf, data, &pktx);
    /* we do not expect to be able to recv anything yet */
    goto out;
@@ -2503,7 +2379,10 @@ static CURLcode cf_ngtcp2_connect(struct Curl_cfilter *cf,
    goto out;

  if(ngtcp2_conn_get_handshake_completed(ctx->qconn)) {
-
    result = ctx->tls_vrfy_result;
+
    ctx->handshake_at = now;
+
    CURL_TRC_CF(data, cf, "handshake complete after %dms",
+
               (int)Curl_timediff(now, ctx->started_at));
+
    result = qng_verify_peer(cf, data);
    if(!result) {
      CURL_TRC_CF(data, cf, "peer verified");
      cf->connected = TRUE;
@@ -2595,9 +2474,6 @@ static CURLcode cf_ngtcp2_query(struct Curl_cfilter *cf,
      *when = ctx->handshake_at;
    return CURLE_OK;
  }
-
  case CF_QUERY_HTTP_VERSION:
-
    *pres1 = 30;
-
    return CURLE_OK;
  default:
    break;
  }
@@ -2660,7 +2536,7 @@ out:

struct Curl_cftype Curl_cft_http3 = {
  "HTTP/3",
-
  CF_TYPE_IP_CONNECT | CF_TYPE_SSL | CF_TYPE_MULTIPLEX | CF_TYPE_HTTP,
+
  CF_TYPE_IP_CONNECT | CF_TYPE_SSL | CF_TYPE_MULTIPLEX,
  0,
  cf_ngtcp2_destroy,
  cf_ngtcp2_connect,
modified external/curl/lib/vquic/curl_osslq.c
@@ -292,9 +292,6 @@ struct cf_osslq_ctx {
  struct Curl_hash streams;          /* hash `data->mid` to `h3_stream_ctx` */
  size_t max_stream_window;          /* max flow window for one stream */
  uint64_t max_idle_ms;              /* max idle time for QUIC connection */
-
  SSL_POLL_ITEM *poll_items;         /* Array for polling on writable state */
-
  struct Curl_easy **curl_items;     /* Array of easy objs */
-
  size_t item_count;                 /* count of elements in poll/curl_items */
  BIT(initialized);
  BIT(got_first_byte);               /* if first byte was received */
  BIT(x509_store_setup);             /* if x509 store has been set up */
@@ -311,9 +308,6 @@ static void cf_osslq_ctx_init(struct cf_osslq_ctx *ctx)
  Curl_bufcp_init(&ctx->stream_bufcp, H3_STREAM_CHUNK_SIZE,
                  H3_STREAM_POOL_SPARES);
  Curl_hash_offt_init(&ctx->streams, 63, h3_stream_hash_free);
-
  ctx->poll_items = NULL;
-
  ctx->curl_items = NULL;
-
  ctx->item_count = 0;
  ctx->initialized = TRUE;
}

@@ -324,8 +318,6 @@ static void cf_osslq_ctx_free(struct cf_osslq_ctx *ctx)
    Curl_hash_clean(&ctx->streams);
    Curl_hash_destroy(&ctx->streams);
    Curl_ssl_peer_cleanup(&ctx->peer);
-
    free(ctx->poll_items);
-
    free(ctx->curl_items);
  }
  free(ctx);
}
@@ -570,6 +562,7 @@ static CURLcode cf_osslq_verify_peer(struct Curl_cfilter *cf,
  struct cf_osslq_ctx *ctx = cf->ctx;

  cf->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
+
  cf->conn->httpversion = 30;

  return Curl_vquic_tls_verify_peer(&ctx->tls, cf, data, &ctx->peer);
}
@@ -1169,11 +1162,14 @@ static CURLcode cf_osslq_ctx_start(struct Curl_cfilter *cf,
  BIO_ADDR *baddr = NULL;

  DEBUGASSERT(ctx->initialized);
+
  result = Curl_ssl_peer_init(&ctx->peer, cf, TRNSPRT_QUIC);
+
  if(result)
+
    goto out;

#define H3_ALPN "\x2h3"
  result = Curl_vquic_tls_init(&ctx->tls, cf, data, &ctx->peer,
                               H3_ALPN, sizeof(H3_ALPN) - 1,
-
                               NULL, NULL, NULL, NULL);
+
                               NULL, NULL, NULL);
  if(result)
    goto out;

@@ -1468,80 +1464,24 @@ static CURLcode cf_osslq_check_and_unblock(struct Curl_cfilter *cf,
{
  struct cf_osslq_ctx *ctx = cf->ctx;
  struct h3_stream_ctx *stream;
-
  size_t poll_count = 0;
-
  size_t result_count = 0;
-
  size_t idx_count = 0;
-
  CURLcode res = CURLE_OK;
-
  struct timeval timeout;
-
  void *tmpptr;

  if(ctx->h3.conn) {
    struct Curl_llist_node *e;
-

-
    res = CURLE_OUT_OF_MEMORY;
-

-
    if(ctx->item_count < Curl_llist_count(&data->multi->process)) {
-
      ctx->item_count = 0;
-
      tmpptr = realloc(ctx->poll_items,
-
                       Curl_llist_count(&data->multi->process) *
-
                       sizeof(SSL_POLL_ITEM));
-
      if(!tmpptr) {
-
        free(ctx->poll_items);
-
        ctx->poll_items = NULL;
-
        goto out;
-
      }
-
      ctx->poll_items = tmpptr;
-

-
      tmpptr = realloc(ctx->curl_items,
-
                       Curl_llist_count(&data->multi->process) *
-
                       sizeof(struct Curl_easy *));
-
      if(!tmpptr) {
-
        free(ctx->curl_items);
-
        ctx->curl_items = NULL;
-
        goto out;
-
      }
-
      ctx->curl_items = tmpptr;
-

-
      ctx->item_count = Curl_llist_count(&data->multi->process);
-
    }
-

    for(e = Curl_llist_head(&data->multi->process); e; e = Curl_node_next(e)) {
      struct Curl_easy *sdata = Curl_node_elem(e);
      if(sdata->conn == data->conn) {
        stream = H3_STREAM_CTX(ctx, sdata);
-
        if(stream && stream->s.ssl && stream->s.send_blocked) {
-
          ctx->poll_items[poll_count].desc =
-
            SSL_as_poll_descriptor(stream->s.ssl);
-
          ctx->poll_items[poll_count].events = SSL_POLL_EVENT_W;
-
          ctx->curl_items[poll_count] = sdata;
-
          poll_count++;
+
        if(stream && stream->s.ssl && stream->s.send_blocked &&
+
           !SSL_want_write(stream->s.ssl)) {
+
          nghttp3_conn_unblock_stream(ctx->h3.conn, stream->s.id);
+
          stream->s.send_blocked = FALSE;
+
          h3_drain_stream(cf, sdata);
+
          CURL_TRC_CF(sdata, cf, "unblocked");
        }
      }
    }
-

-
    memset(&timeout, 0, sizeof(struct timeval));
-
    res = CURLE_UNRECOVERABLE_POLL;
-
    if(!SSL_poll(ctx->poll_items, poll_count, sizeof(SSL_POLL_ITEM), &timeout,
-
                 0, &result_count))
-
        goto out;
-

-
    res = CURLE_OK;
-

-
    for(idx_count = 0; idx_count < poll_count && result_count > 0;
-
        idx_count++) {
-
      if(ctx->poll_items[idx_count].revents & SSL_POLL_EVENT_W) {
-
        stream = H3_STREAM_CTX(ctx, ctx->curl_items[idx_count]);
-
        nghttp3_conn_unblock_stream(ctx->h3.conn, stream->s.id);
-
        stream->s.send_blocked = FALSE;
-
        h3_drain_stream(cf, ctx->curl_items[idx_count]);
-
        CURL_TRC_CF(ctx->curl_items[idx_count], cf, "unblocked");
-
        result_count--;
-
      }
-
    }
  }
-

-
out:
-
  return res;
+
  return CURLE_OK;
}

static CURLcode h3_send_streams(struct Curl_cfilter *cf,
@@ -2199,6 +2139,9 @@ static CURLcode cf_osslq_data_event(struct Curl_cfilter *cf,
  case CF_CTRL_DATA_PAUSE:
    result = h3_data_pause(cf, data, (arg1 != 0));
    break;
+
  case CF_CTRL_DATA_DETACH:
+
    h3_data_done(cf, data);
+
    break;
  case CF_CTRL_DATA_DONE:
    h3_data_done(cf, data);
    break;
@@ -2358,9 +2301,6 @@ static CURLcode cf_osslq_query(struct Curl_cfilter *cf,
      *when = ctx->handshake_at;
    return CURLE_OK;
  }
-
  case CF_QUERY_HTTP_VERSION:
-
    *pres1 = 30;
-
    return CURLE_OK;
  default:
    break;
  }
@@ -2371,7 +2311,7 @@ static CURLcode cf_osslq_query(struct Curl_cfilter *cf,

struct Curl_cftype Curl_cft_http3 = {
  "HTTP/3",
-
  CF_TYPE_IP_CONNECT | CF_TYPE_SSL | CF_TYPE_MULTIPLEX | CF_TYPE_HTTP,
+
  CF_TYPE_IP_CONNECT | CF_TYPE_SSL | CF_TYPE_MULTIPLEX,
  0,
  cf_osslq_destroy,
  cf_osslq_connect,
modified external/curl/lib/vquic/curl_quiche.c
@@ -1228,6 +1228,9 @@ static CURLcode cf_quiche_data_event(struct Curl_cfilter *cf,
  case CF_CTRL_DATA_PAUSE:
    result = h3_data_pause(cf, data, (arg1 != 0));
    break;
+
  case CF_CTRL_DATA_DETACH:
+
    h3_data_done(cf, data);
+
    break;
  case CF_CTRL_DATA_DONE:
    h3_data_done(cf, data);
    break;
@@ -1275,6 +1278,10 @@ static CURLcode cf_quiche_ctx_open(struct Curl_cfilter *cf,
  if(result)
    return result;

+
  result = Curl_ssl_peer_init(&ctx->peer, cf, TRNSPRT_QUIC);
+
  if(result)
+
    return result;
+

  ctx->cfg = quiche_config_new(QUICHE_PROTOCOL_VERSION);
  if(!ctx->cfg) {
    failf(data, "cannot create quiche config");
@@ -1306,7 +1313,7 @@ static CURLcode cf_quiche_ctx_open(struct Curl_cfilter *cf,
  result = Curl_vquic_tls_init(&ctx->tls, cf, data, &ctx->peer,
                               QUICHE_H3_APPLICATION_PROTOCOL,
                               sizeof(QUICHE_H3_APPLICATION_PROTOCOL) - 1,
-
                               NULL, NULL, cf, NULL);
+
                               NULL, NULL, cf);
  if(result)
    return result;

@@ -1372,6 +1379,7 @@ static CURLcode cf_quiche_verify_peer(struct Curl_cfilter *cf,
  struct cf_quiche_ctx *ctx = cf->ctx;

  cf->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
+
  cf->conn->httpversion = 30;

  return Curl_vquic_tls_verify_peer(&ctx->tls, cf, data, &ctx->peer);
}
@@ -1565,9 +1573,6 @@ static CURLcode cf_quiche_query(struct Curl_cfilter *cf,
      *when = ctx->handshake_at;
    return CURLE_OK;
  }
-
  case CF_QUERY_HTTP_VERSION:
-
    *pres1 = 30;
-
    return CURLE_OK;
  default:
    break;
  }
@@ -1615,7 +1620,7 @@ static bool cf_quiche_conn_is_alive(struct Curl_cfilter *cf,

struct Curl_cftype Curl_cft_http3 = {
  "HTTP/3",
-
  CF_TYPE_IP_CONNECT | CF_TYPE_SSL | CF_TYPE_MULTIPLEX | CF_TYPE_HTTP,
+
  CF_TYPE_IP_CONNECT | CF_TYPE_SSL | CF_TYPE_MULTIPLEX,
  0,
  cf_quiche_destroy,
  cf_quiche_connect,
modified external/curl/lib/vquic/vquic-tls.c
@@ -50,7 +50,6 @@
#include "multiif.h"
#include "vtls/keylog.h"
#include "vtls/vtls.h"
-
#include "vtls/vtls_scache.h"
#include "vquic-tls.h"

/* The last 3 #include files should be in this order */
@@ -222,7 +221,7 @@ static CURLcode wssl_init_ssl(struct curl_tls_ctx *ctx,
  }

  if(ssl_config->primary.cache_session) {
-
    (void)Curl_wssl_setup_session(cf, data, &ctx->wssl, peer->scache_key);
+
    (void)wssl_setup_session(cf, data, &ctx->wssl, peer);
  }

  return CURLE_OK;
@@ -235,43 +234,25 @@ CURLcode Curl_vquic_tls_init(struct curl_tls_ctx *ctx,
                             struct ssl_peer *peer,
                             const char *alpn, size_t alpn_len,
                             Curl_vquic_tls_ctx_setup *cb_setup,
-
                             void *cb_user_data, void *ssl_user_data,
-
                             Curl_vquic_session_reuse_cb *session_reuse_cb)
+
                             void *cb_user_data, void *ssl_user_data)
{
-
  char tls_id[80];
  CURLcode result;

#ifdef USE_OPENSSL
-
  Curl_ossl_version(tls_id, sizeof(tls_id));
-
#elif defined(USE_GNUTLS)
-
  Curl_gtls_version(tls_id, sizeof(tls_id));
-
#elif defined(USE_WOLFSSL)
-
  Curl_wssl_version(tls_id, sizeof(tls_id));
-
#else
-
#error "no TLS lib in used, should not happen"
-
  return CURLE_FAILED_INIT;
-
#endif
-
  (void)session_reuse_cb;
-
  result = Curl_ssl_peer_init(peer, cf, tls_id, TRNSPRT_QUIC);
-
  if(result)
-
    return result;
-

-
#ifdef USE_OPENSSL
  (void)result;
-
  return Curl_ossl_ctx_init(&ctx->ossl, cf, data, peer,
+
  return Curl_ossl_ctx_init(&ctx->ossl, cf, data, peer, TRNSPRT_QUIC,
                            (const unsigned char *)alpn, alpn_len,
                            cb_setup, cb_user_data, NULL, ssl_user_data);
#elif defined(USE_GNUTLS)
+
  (void)result;
  return Curl_gtls_ctx_init(&ctx->gtls, cf, data, peer,
-
                            (const unsigned char *)alpn, alpn_len,
-
                            cb_setup, cb_user_data, ssl_user_data,
-
                            session_reuse_cb);
+
                            (const unsigned char *)alpn, alpn_len, NULL,
+
                            cb_setup, cb_user_data, ssl_user_data);
#elif defined(USE_WOLFSSL)
  result = wssl_init_ctx(ctx, cf, data, cb_setup, cb_user_data);
  if(result)
    return result;

-
  (void)session_reuse_cb;
  return wssl_init_ssl(ctx, cf, data, peer, alpn, alpn_len, ssl_user_data);
#else
#error "no TLS lib in used, should not happen"
@@ -365,9 +346,6 @@ CURLcode Curl_vquic_tls_verify_peer(struct curl_tls_ctx *ctx,

  }
#endif
-
  /* on error, remove any session we might have in the pool */
-
  if(result)
-
    Curl_ssl_scache_remove_all(cf, data, peer->scache_key);
  return result;
}

modified external/curl/lib/vquic/vquic-tls.h
@@ -26,7 +26,6 @@

#include "curl_setup.h"
#include "bufq.h"
-
#include "vtls/vtls.h"
#include "vtls/openssl.h"

#if defined(USE_HTTP3) && \
@@ -34,9 +33,6 @@

#include "vtls/wolfssl.h"

-
struct ssl_peer;
-
struct Curl_ssl_session;
-

struct curl_tls_ctx {
#ifdef USE_OPENSSL
  struct ossl_ctx ossl;
@@ -58,11 +54,6 @@ typedef CURLcode Curl_vquic_tls_ctx_setup(struct Curl_cfilter *cf,
                                          struct Curl_easy *data,
                                          void *cb_user_data);

-
typedef CURLcode Curl_vquic_session_reuse_cb(struct Curl_cfilter *cf,
-
                                             struct Curl_easy *data,
-
                                             struct Curl_ssl_session *scs,
-
                                             bool *do_early_data);
-

/**
 * Initialize the QUIC TLS instances based of the SSL configurations
 * for the connection filter, transfer and peer.
@@ -74,9 +65,8 @@ typedef CURLcode Curl_vquic_session_reuse_cb(struct Curl_cfilter *cf,
 *                    may be NULL
 * @param alpn_len    the overall number of bytes in `alpn`
 * @param cb_setup    optional callback for early TLS config
-
 * @param cb_user_data user_data param for callback
+
 ± @param cb_user_data user_data param for callback
 * @param ssl_user_data  optional pointer to set in TLS application context
-
 * @param session_reuse_cb callback to handle session reuse, signal early data
 */
CURLcode Curl_vquic_tls_init(struct curl_tls_ctx *ctx,
                             struct Curl_cfilter *cf,
@@ -85,8 +75,7 @@ CURLcode Curl_vquic_tls_init(struct curl_tls_ctx *ctx,
                             const char *alpn, size_t alpn_len,
                             Curl_vquic_tls_ctx_setup *cb_setup,
                             void *cb_user_data,
-
                             void *ssl_user_data,
-
                             Curl_vquic_session_reuse_cb *session_reuse_cb);
+
                             void *ssl_user_data);

/**
 * Cleanup all data that has been initialized.
modified external/curl/lib/vquic/vquic.c
@@ -53,6 +53,12 @@

#ifdef USE_HTTP3

+
#ifdef O_BINARY
+
#define QLOGMODE O_WRONLY|O_CREAT|O_BINARY
+
#else
+
#define QLOGMODE O_WRONLY|O_CREAT
+
#endif
+

#define NW_CHUNK_SIZE     (64 * 1024)
#define NW_SEND_CHUNKS    2

@@ -242,7 +248,6 @@ static CURLcode vquic_send_packets(struct Curl_cfilter *cf,
  /* simulate network blocking/partial writes */
  if(qctx->wblock_percent > 0) {
    unsigned char c;
-
    *psent = 0;
    Curl_rand(data, &c, 1);
    if(c >= ((100-qctx->wblock_percent)*256/100)) {
      CURL_TRC_CF(data, cf, "vquic_flush() simulate EWOULDBLOCK");
@@ -358,7 +363,7 @@ static CURLcode recvmmsg_packets(struct Curl_cfilter *cf,
  struct mmsghdr mmsg[MMSG_NUM];
  uint8_t msg_ctrl[MMSG_NUM * CMSG_SPACE(sizeof(int))];
  struct sockaddr_storage remote_addr[MMSG_NUM];
-
  size_t total_nread = 0, pkts = 0;
+
  size_t total_nread = 0, pkts;
  int mcount, i, n;
  char errstr[STRERROR_LEN];
  CURLcode result = CURLE_OK;
@@ -375,6 +380,7 @@ static CURLcode recvmmsg_packets(struct Curl_cfilter *cf,
    goto out;
  bufs = (uint8_t (*)[64*1024])sockbuf;

+
  pkts = 0;
  total_nread = 0;
  while(pkts < max_pkts) {
    n = (int)CURLMIN(MMSG_NUM, max_pkts);
@@ -651,7 +657,7 @@ CURLcode Curl_qlogdir(struct Curl_easy *data,
      result = Curl_dyn_add(&fname, ".sqlog");

    if(!result) {
-
      int qlogfd = open(Curl_dyn_ptr(&fname), O_WRONLY|O_CREAT|CURL_O_BINARY,
+
      int qlogfd = open(Curl_dyn_ptr(&fname), QLOGMODE,
                        data->set.new_file_perms);
      if(qlogfd != -1)
        *qlogfdp = qlogfd;
@@ -689,6 +695,24 @@ CURLcode Curl_cf_quic_create(struct Curl_cfilter **pcf,
#endif
}

+
bool Curl_conn_is_http3(const struct Curl_easy *data,
+
                        const struct connectdata *conn,
+
                        int sockindex)
+
{
+
#if defined(USE_NGTCP2) && defined(USE_NGHTTP3)
+
  return Curl_conn_is_ngtcp2(data, conn, sockindex);
+
#elif defined(USE_OPENSSL_QUIC) && defined(USE_NGHTTP3)
+
  return Curl_conn_is_osslq(data, conn, sockindex);
+
#elif defined(USE_QUICHE)
+
  return Curl_conn_is_quiche(data, conn, sockindex);
+
#elif defined(USE_MSH3)
+
  return Curl_conn_is_msh3(data, conn, sockindex);
+
#else
+
  return ((conn->handler->protocol & PROTO_FAMILY_HTTP) &&
+
          (conn->httpversion == 30));
+
#endif
+
}
+

CURLcode Curl_conn_may_http3(struct Curl_easy *data,
                             const struct connectdata *conn)
{
modified external/curl/lib/vquic/vquic.h
@@ -46,8 +46,16 @@ CURLcode Curl_cf_quic_create(struct Curl_cfilter **pcf,
                             const struct Curl_addrinfo *ai,
                             int transport);

+
bool Curl_conn_is_http3(const struct Curl_easy *data,
+
                        const struct connectdata *conn,
+
                        int sockindex);
+

extern struct Curl_cftype Curl_cft_http3;

+
#else /* USE_HTTP3 */
+

+
#define Curl_conn_is_http3(a,b,c)   FALSE
+

#endif /* !USE_HTTP3 */

CURLcode Curl_conn_may_http3(struct Curl_easy *data,
modified external/curl/lib/vssh/.checksrc
@@ -1,3 +1,2 @@
-
banfunc strerror
-
banfunc strncpy
-
banfunc sscanf
+
enable STRERROR
+
enable STRNCPY
modified external/curl/lib/vssh/libssh.c
@@ -161,7 +161,6 @@ const struct Curl_handler Curl_handler_scp = {
  ZERO_NULL,                    /* write_resp_hd */
  ZERO_NULL,                    /* connection_check */
  ZERO_NULL,                    /* attach connection */
-
  ZERO_NULL,                    /* follow */
  PORT_SSH,                     /* defport */
  CURLPROTO_SCP,                /* protocol */
  CURLPROTO_SCP,                /* family */
@@ -190,7 +189,6 @@ const struct Curl_handler Curl_handler_sftp = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_SSH,                             /* defport */
  CURLPROTO_SFTP,                       /* protocol */
  CURLPROTO_SFTP,                       /* family */
modified external/curl/lib/vssh/libssh2.c
@@ -139,7 +139,6 @@ const struct Curl_handler Curl_handler_scp = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ssh_attach,                           /* attach */
-
  ZERO_NULL,                            /* follow */
  PORT_SSH,                             /* defport */
  CURLPROTO_SCP,                        /* protocol */
  CURLPROTO_SCP,                        /* family */
@@ -170,7 +169,6 @@ const struct Curl_handler Curl_handler_sftp = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ssh_attach,                           /* attach */
-
  ZERO_NULL,                            /* follow */
  PORT_SSH,                             /* defport */
  CURLPROTO_SFTP,                       /* protocol */
  CURLPROTO_SFTP,                       /* family */
modified external/curl/lib/vssh/wolfssh.c
@@ -95,7 +95,6 @@ const struct Curl_handler Curl_handler_scp = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_SSH,                             /* defport */
  CURLPROTO_SCP,                        /* protocol */
  PROTOPT_DIRLOCK | PROTOPT_CLOSEACTION
@@ -126,7 +125,6 @@ const struct Curl_handler Curl_handler_sftp = {
  ZERO_NULL,                            /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  ZERO_NULL,                            /* follow */
  PORT_SSH,                             /* defport */
  CURLPROTO_SFTP,                       /* protocol */
  CURLPROTO_SFTP,                       /* family */
modified external/curl/lib/vtls/.checksrc
@@ -1,3 +1,2 @@
-
banfunc strerror
-
banfunc strncpy
-
banfunc sscanf
+
enable STRERROR
+
enable STRNCPY
modified external/curl/lib/vtls/bearssl.c
@@ -34,7 +34,6 @@
#include "inet_pton.h"
#include "vtls.h"
#include "vtls_int.h"
-
#include "vtls_scache.h"
#include "connect.h"
#include "select.h"
#include "multiif.h"
@@ -610,19 +609,20 @@ static CURLcode bearssl_connect_step1(struct Curl_cfilter *cf,
  br_ssl_engine_set_x509(&backend->ctx.eng, &backend->x509.vtable);

  if(ssl_config->primary.cache_session) {
-
    struct Curl_ssl_session *sc_session = NULL;
+
    void *sdata;
+
    size_t slen;
    const br_ssl_session_parameters *session;

-
    ret = Curl_ssl_scache_take(cf, data, connssl->peer.scache_key,
-
                               &sc_session);
-
    if(!ret && sc_session && sc_session->sdata && sc_session->sdata_len) {
-
      session = (br_ssl_session_parameters *)(void *)sc_session->sdata;
+
    CURL_TRC_CF(data, cf, "connect_step1, check session cache");
+
    Curl_ssl_sessionid_lock(data);
+
    if(!Curl_ssl_getsessionid(cf, data, &connssl->peer, &sdata, &slen, NULL) &&
+
       slen == sizeof(*session)) {
+
      session = sdata;
      br_ssl_engine_set_session_parameters(&backend->ctx.eng, session);
      session_set = 1;
      infof(data, "BearSSL: reusing session ID");
-
      /* single use of sessions */
-
      Curl_ssl_scache_return(cf, data, connssl->peer.scache_key, sc_session);
    }
+
    Curl_ssl_sessionid_unlock(data);
  }

  if(connssl->alpn) {
@@ -804,6 +804,12 @@ static CURLcode bearssl_connect_step2(struct Curl_cfilter *cf,
  return ret;
}

+
static void bearssl_session_free(void *sessionid, size_t idsize)
+
{
+
  (void)idsize;
+
  free(sessionid);
+
}
+

static CURLcode bearssl_connect_step3(struct Curl_cfilter *cf,
                                      struct Curl_easy *data)
{
@@ -826,22 +832,17 @@ static CURLcode bearssl_connect_step3(struct Curl_cfilter *cf,
  }

  if(ssl_config->primary.cache_session) {
-
    struct Curl_ssl_session *sc_session;
    br_ssl_session_parameters *session;

    session = malloc(sizeof(*session));
    if(!session)
      return CURLE_OUT_OF_MEMORY;
    br_ssl_engine_get_session_parameters(&backend->ctx.eng, session);
-
    ret = Curl_ssl_session_create((unsigned char *)session, sizeof(*session),
-
                                  (int)session->version,
-
                                  connssl->negotiated.alpn,
-
                                  0, 0, &sc_session);
-
    if(!ret) {
-
      ret = Curl_ssl_scache_put(cf, data, connssl->peer.scache_key,
-
                                sc_session);
-
      /* took ownership of `sc_session` */
-
    }
+
    Curl_ssl_sessionid_lock(data);
+
    ret = Curl_ssl_set_sessionid(cf, data, &connssl->peer, NULL,
+
                                 session, sizeof(*session),
+
                                 bearssl_session_free);
+
    Curl_ssl_sessionid_unlock(data);
    if(ret)
      return ret;
  }
@@ -1153,24 +1154,27 @@ const struct Curl_ssl Curl_ssl_bearssl = {

  sizeof(struct bearssl_ssl_backend_data),

-
  NULL,                            /* init */
-
  NULL,                            /* cleanup */
+
  Curl_none_init,                  /* init */
+
  Curl_none_cleanup,               /* cleanup */
  bearssl_version,                 /* version */
+
  Curl_none_check_cxn,             /* check_cxn */
  bearssl_shutdown,                /* shutdown */
  bearssl_data_pending,            /* data_pending */
  bearssl_random,                  /* random */
-
  NULL,                            /* cert_status_request */
+
  Curl_none_cert_status_request,   /* cert_status_request */
  bearssl_connect,                 /* connect */
  bearssl_connect_nonblocking,     /* connect_nonblocking */
  Curl_ssl_adjust_pollset,         /* adjust_pollset */
  bearssl_get_internals,           /* get_internals */
  bearssl_close,                   /* close_one */
-
  NULL,                            /* close_all */
-
  NULL,                            /* set_engine */
-
  NULL,                            /* set_engine_default */
-
  NULL,                            /* engines_list */
-
  NULL,                            /* false_start */
+
  Curl_none_close_all,             /* close_all */
+
  Curl_none_set_engine,            /* set_engine */
+
  Curl_none_set_engine_default,    /* set_engine_default */
+
  Curl_none_engines_list,          /* engines_list */
+
  Curl_none_false_start,           /* false_start */
  bearssl_sha256sum,               /* sha256sum */
+
  NULL,                            /* associate_connection */
+
  NULL,                            /* disassociate_connection */
  bearssl_recv,                    /* recv decrypted data */
  bearssl_send,                    /* send data to encrypt */
  NULL,                            /* get_channel_binding */
modified external/curl/lib/vtls/gtls.c
@@ -47,14 +47,12 @@
#include "gtls.h"
#include "vtls.h"
#include "vtls_int.h"
-
#include "vtls_scache.h"
#include "vauth/vauth.h"
#include "parsedate.h"
#include "connect.h" /* for the connect timeout */
#include "progress.h"
#include "select.h"
#include "strcase.h"
-
#include "strdup.h"
#include "warnless.h"
#include "x509asn1.h"
#include "multiif.h"
@@ -716,20 +714,21 @@ CURLcode Curl_gtls_client_trust_setup(struct Curl_cfilter *cf,
  return CURLE_OK;
}

-
CURLcode Curl_gtls_cache_session(struct Curl_cfilter *cf,
-
                                 struct Curl_easy *data,
-
                                 const char *ssl_peer_key,
-
                                 gnutls_session_t session,
-
                                 curl_off_t valid_until,
-
                                 const char *alpn,
-
                                 unsigned char *quic_tp,
-
                                 size_t quic_tp_len)
+
static void gtls_sessionid_free(void *sessionid, size_t idsize)
+
{
+
  (void)idsize;
+
  free(sessionid);
+
}
+

+
CURLcode Curl_gtls_update_session_id(struct Curl_cfilter *cf,
+
                                     struct Curl_easy *data,
+
                                     gnutls_session_t session,
+
                                     struct ssl_peer *peer,
+
                                     const char *alpn)
{
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
-
  struct Curl_ssl_session *sc_session;
-
  unsigned char *sdata, *qtp_clone = NULL;
-
  size_t sdata_len = 0;
-
  size_t earlydata_max = 0;
+
  void *connect_sessionid;
+
  size_t connect_idsize = 0;
  CURLcode result = CURLE_OK;

  if(!ssl_config->primary.cache_session)
@@ -741,68 +740,35 @@ CURLcode Curl_gtls_cache_session(struct Curl_cfilter *cf,
     detect that. */

  /* get the session ID data size */
-
  gnutls_session_get_data(session, NULL, &sdata_len);
-
  if(!sdata_len) /* gnutls does this for some version combinations */
+
  gnutls_session_get_data(session, NULL, &connect_idsize);
+
  if(!connect_idsize) /* gnutls does this for some version combinations */
    return CURLE_OK;

-
  sdata = malloc(sdata_len); /* get a buffer for it */
-
  if(!sdata)
+
  connect_sessionid = malloc(connect_idsize); /* get a buffer for it */
+
  if(!connect_sessionid)
    return CURLE_OUT_OF_MEMORY;

  /* extract session ID to the allocated buffer */
-
  gnutls_session_get_data(session, sdata, &sdata_len);
-
  earlydata_max = gnutls_record_get_max_early_data_size(session);
-

-
  CURL_TRC_CF(data, cf, "get session id (len=%zu, alpn=%s, earlymax=%zu) "
-
              "and store in cache", sdata_len, alpn ? alpn : "-",
-
              earlydata_max);
-
  if(quic_tp && quic_tp_len) {
-
    qtp_clone = Curl_memdup0((char *)quic_tp, quic_tp_len);
-
    if(!qtp_clone) {
-
      free(sdata);
-
      return CURLE_OUT_OF_MEMORY;
-
    }
-
  }
-

-
  result = Curl_ssl_session_create2(sdata, sdata_len,
-
                                    Curl_glts_get_ietf_proto(session),
-
                                    alpn, valid_until, earlydata_max,
-
                                    qtp_clone, quic_tp_len,
-
                                    &sc_session);
-
  /* call took ownership of `sdata` and `qtp_clone` */
-
  if(!result) {
-
    result = Curl_ssl_scache_put(cf, data, ssl_peer_key, sc_session);
-
    /* took ownership of `sc_session` */
-
  }
+
  gnutls_session_get_data(session, connect_sessionid, &connect_idsize);
+

+
  CURL_TRC_CF(data, cf, "get session id (len=%zu, alpn=%s) and store in cache",
+
              connect_idsize, alpn ? alpn : "-");
+
  Curl_ssl_sessionid_lock(data);
+
  /* store this session id, takes ownership */
+
  result = Curl_ssl_set_sessionid(cf, data, peer, alpn,
+
                                  connect_sessionid, connect_idsize,
+
                                  gtls_sessionid_free);
+
  Curl_ssl_sessionid_unlock(data);
  return result;
}

-
int Curl_glts_get_ietf_proto(gnutls_session_t session)
-
{
-
  switch(gnutls_protocol_get_version(session)) {
-
  case GNUTLS_SSL3:
-
    return CURL_IETF_PROTO_SSL3;
-
  case GNUTLS_TLS1_0:
-
    return CURL_IETF_PROTO_TLS1;
-
  case GNUTLS_TLS1_1:
-
    return CURL_IETF_PROTO_TLS1_1;
-
  case GNUTLS_TLS1_2:
-
    return CURL_IETF_PROTO_TLS1_2;
-
  case GNUTLS_TLS1_3:
-
    return CURL_IETF_PROTO_TLS1_3;
-
  default:
-
    return CURL_IETF_PROTO_UNKNOWN;
-
  }
-
}
-

static CURLcode cf_gtls_update_session_id(struct Curl_cfilter *cf,
                                          struct Curl_easy *data,
                                          gnutls_session_t session)
{
  struct ssl_connect_data *connssl = cf->ctx;
-
  return Curl_gtls_cache_session(cf, data, connssl->peer.scache_key,
-
                                 session, 0, connssl->negotiated.alpn,
-
                                 NULL, 0);
+
  return Curl_gtls_update_session_id(cf, data, session, &connssl->peer,
+
                                     connssl->alpn_negotiated);
}

static int gtls_handshake_cb(gnutls_session_t session, unsigned int htype,
@@ -834,7 +800,6 @@ static int gtls_handshake_cb(gnutls_session_t session, unsigned int htype,
static CURLcode gtls_client_init(struct Curl_cfilter *cf,
                                 struct Curl_easy *data,
                                 struct ssl_peer *peer,
-
                                 size_t earlydata_max,
                                 struct gtls_ctx *gtls)
{
  struct ssl_primary_config *config = Curl_ssl_cf_get_primary_config(cf);
@@ -888,14 +853,6 @@ static CURLcode gtls_client_init(struct Curl_cfilter *cf,

  /* Initialize TLS session as a client */
  init_flags = GNUTLS_CLIENT;
-
  if(peer->transport == TRNSPRT_QUIC && earlydata_max > 0)
-
    init_flags |= GNUTLS_ENABLE_EARLY_DATA | GNUTLS_NO_END_OF_EARLY_DATA;
-
  else if(earlydata_max > 0 && earlydata_max != 0xFFFFFFFFUL)
-
    /* See https://gitlab.com/gnutls/gnutls/-/issues/1619
-
     * We cannot differentiate between a session announcing no earldata
-
     * and one announcing 0xFFFFFFFFUL. On TCP+TLS, this is unlikely, but
-
     * on QUIC this is common. */
-
    init_flags |= GNUTLS_ENABLE_EARLY_DATA;

#if defined(GNUTLS_FORCE_CLIENT_CERT)
  init_flags |= GNUTLS_FORCE_CLIENT_CERT;
@@ -917,8 +874,6 @@ static CURLcode gtls_client_init(struct Curl_cfilter *cf,
    init_flags |= GNUTLS_NO_STATUS_REQUEST;
#endif

-
  CURL_TRC_CF(data, cf, "gnutls_init(flags=%x), earlydata=%zu",
-
              init_flags, earlydata_max);
  rc = gnutls_init(&gtls->session, init_flags);
  if(rc != GNUTLS_E_SUCCESS) {
    failf(data, "gnutls_init() failed: %d", rc);
@@ -1091,123 +1046,34 @@ static int keylog_callback(gnutls_session_t session, const char *label,
  return 0;
}

-
static CURLcode gtls_on_session_reuse(struct Curl_cfilter *cf,
-
                                      struct Curl_easy *data,
-
                                      struct Curl_ssl_session *scs,
-
                                      bool *do_early_data)
-
{
-
  struct ssl_connect_data *connssl = cf->ctx;
-
  struct gtls_ssl_backend_data *backend =
-
    (struct gtls_ssl_backend_data *)connssl->backend;
-
  CURLcode result = CURLE_OK;
-

-
  *do_early_data = FALSE;
-
  connssl->earlydata_max =
-
    gnutls_record_get_max_early_data_size(backend->gtls.session);
-
  if((!connssl->earlydata_max || connssl->earlydata_max == 0xFFFFFFFFUL)) {
-
    /* Seems to be GnuTLS way to signal no EarlyData in session */
-
    CURL_TRC_CF(data, cf, "SSL session does not allow earlydata");
-
  }
-
  else if(!Curl_alpn_contains_proto(connssl->alpn, scs->alpn)) {
-
    CURL_TRC_CF(data, cf, "SSL session has different ALPN, no early data");
-
  }
-
  else {
-
    infof(data, "SSL session allows %zu bytes of early data, "
-
          "reusing ALPN '%s'", connssl->earlydata_max, scs->alpn);
-
    connssl->earlydata_state = ssl_earlydata_use;
-
    connssl->state = ssl_connection_deferred;
-
    result = Curl_alpn_set_negotiated(cf, data, connssl,
-
                    (const unsigned char *)scs->alpn,
-
                    scs->alpn ? strlen(scs->alpn) : 0);
-
    *do_early_data = !result;
-
  }
-
  return result;
-
}
-

CURLcode Curl_gtls_ctx_init(struct gtls_ctx *gctx,
                            struct Curl_cfilter *cf,
                            struct Curl_easy *data,
                            struct ssl_peer *peer,
                            const unsigned char *alpn, size_t alpn_len,
+
                            struct ssl_connect_data *connssl,
                            Curl_gtls_ctx_setup_cb *cb_setup,
                            void *cb_user_data,
-
                            void *ssl_user_data,
-
                            Curl_gtls_init_session_reuse_cb *sess_reuse_cb)
+
                            void *ssl_user_data)
{
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
-
  struct Curl_ssl_session *scs = NULL;
  gnutls_datum_t gtls_alpns[5];
  size_t gtls_alpns_count = 0;
-
  bool gtls_session_setup = FALSE;
  CURLcode result;
-
  int rc;

  DEBUGASSERT(gctx);
-
  /* This might be a reconnect, so we check for a session ID in the cache
-
     to speed up things. We need to do this before constructing the gnutls
-
     session since we need to set flags depending on the kind of reuse. */
-
  if(conn_config->cache_session) {
-
    result = Curl_ssl_scache_take(cf, data, peer->scache_key, &scs);
-
    if(result)
-
      goto out;
-

-
    if(scs && scs->sdata && scs->sdata_len) {
-
      /* we got a cached session, use it! */
-

-
      result = gtls_client_init(cf, data, peer, scs->earlydata_max, gctx);
-
      if(result)
-
        goto out;
-
      gtls_session_setup = TRUE;

-
      rc = gnutls_session_set_data(gctx->session, scs->sdata, scs->sdata_len);
-
      if(rc < 0)
-
        infof(data, "SSL session not accepted by GnuTLS, continuing without");
-
      else {
-
        infof(data, "SSL reusing session with ALPN '%s'",
-
              scs->alpn ? scs->alpn : "-");
-
        if(ssl_config->earlydata &&
-
           !cf->conn->connect_only &&
-
           (gnutls_protocol_get_version(gctx->session) == GNUTLS_TLS1_3)) {
-
          bool do_early_data = FALSE;
-
          if(sess_reuse_cb) {
-
            result = sess_reuse_cb(cf, data, scs, &do_early_data);
-
            if(result)
-
              goto  out;
-
          }
-
          if(do_early_data) {
-
            /* We only try the ALPN protocol the session used before,
-
             * otherwise we might send early data for the wrong protocol */
-
            gtls_alpns[0].data = (unsigned char *)scs->alpn;
-
            gtls_alpns[0].size = (unsigned)strlen(scs->alpn);
-
            if(gnutls_alpn_set_protocols(gctx->session,
-
                                         gtls_alpns, 1,
-
                                         GNUTLS_ALPN_MANDATORY)) {
-
              failf(data, "failed setting ALPN");
-
              result = CURLE_SSL_CONNECT_ERROR;
-
              goto out;
-
            }
-
            /* don't set again below */
-
            gtls_alpns_count = 0;
-
            alpn = NULL;
-
          }
-
        }
-
      }
-
    }
-
  }
-

-
  if(!gtls_session_setup) {
-
    result = gtls_client_init(cf, data, peer, 0, gctx);
-
    if(result)
-
      goto out;
-
  }
+
  result = gtls_client_init(cf, data, peer, gctx);
+
  if(result)
+
    return result;

  gnutls_session_set_ptr(gctx->session, ssl_user_data);

  if(cb_setup) {
    result = cb_setup(cf, data, cb_user_data);
    if(result)
-
      goto out;
+
      return result;
  }

  /* Open the file if a TLS or QUIC backend has not done this before. */
@@ -1216,26 +1082,80 @@ CURLcode Curl_gtls_ctx_init(struct gtls_ctx *gctx,
    gnutls_session_set_keylog_function(gctx->session, keylog_callback);
  }

+
  /* This might be a reconnect, so we check for a session ID in the cache
+
     to speed up things */
+
  if(conn_config->cache_session) {
+
    void *ssl_sessionid;
+
    size_t ssl_idsize;
+
    char *session_alpn;
+
    Curl_ssl_sessionid_lock(data);
+
    if(!Curl_ssl_getsessionid(cf, data, peer,
+
                              &ssl_sessionid, &ssl_idsize, &session_alpn)) {
+
      /* we got a session id, use it! */
+
      int rc;
+

+
      rc = gnutls_session_set_data(gctx->session, ssl_sessionid, ssl_idsize);
+
      if(rc < 0)
+
        infof(data, "SSL failed to set session ID");
+
      else {
+
        infof(data, "SSL reusing session ID (size=%zu, alpn=%s)",
+
              ssl_idsize, session_alpn ? session_alpn : "-");
+
#ifdef DEBUGBUILD
+
        if((ssl_config->earlydata || !!getenv("CURL_USE_EARLYDATA")) &&
+
#else
+
        if(ssl_config->earlydata &&
+
#endif
+
           !cf->conn->connect_only && connssl &&
+
           (gnutls_protocol_get_version(gctx->session) == GNUTLS_TLS1_3) &&
+
           Curl_alpn_contains_proto(connssl->alpn, session_alpn)) {
+
          connssl->earlydata_max =
+
            gnutls_record_get_max_early_data_size(gctx->session);
+
          if((!connssl->earlydata_max ||
+
              connssl->earlydata_max == 0xFFFFFFFFUL)) {
+
            /* Seems to be GnuTLS way to signal no EarlyData in session */
+
            CURL_TRC_CF(data, cf, "TLS session does not allow earlydata");
+
          }
+
          else {
+
            CURL_TRC_CF(data, cf, "TLS session allows %zu earlydata bytes, "
+
                        "reusing ALPN '%s'",
+
                        connssl->earlydata_max, session_alpn);
+
            connssl->earlydata_state = ssl_earlydata_use;
+
            connssl->state = ssl_connection_deferred;
+
            result = Curl_alpn_set_negotiated(cf, data, connssl,
+
                            (const unsigned char *)session_alpn,
+
                            session_alpn ? strlen(session_alpn) : 0);
+
            if(result)
+
              return result;
+
            /* We only try the ALPN protocol the session used before,
+
             * otherwise we might send early data for the wrong protocol */
+
            gtls_alpns[0].data = (unsigned char *)session_alpn;
+
            gtls_alpns[0].size = (unsigned)strlen(session_alpn);
+
            gtls_alpns_count = 1;
+
          }
+
        }
+
      }
+
    }
+
    Curl_ssl_sessionid_unlock(data);
+
  }
+

  /* convert the ALPN string from our arguments to a list of strings that
   * gnutls wants and will convert internally back to this string for sending
   * to the server. nice. */
  if(!gtls_alpns_count && alpn && alpn_len) {
    size_t i, alen = alpn_len;
-
    unsigned char *salpn = (unsigned char *)alpn;
+
    unsigned char *s = (unsigned char *)alpn;
    unsigned char slen;
    for(i = 0; (i < ARRAYSIZE(gtls_alpns)) && alen; ++i) {
-
      slen = salpn[0];
+
      slen = s[0];
      if(slen >= alen)
        return CURLE_FAILED_INIT;
-
      gtls_alpns[i].data = salpn + 1;
+
      gtls_alpns[i].data = s + 1;
      gtls_alpns[i].size = slen;
-
      salpn += slen + 1;
+
      s += slen + 1;
      alen -= (size_t)slen + 1;
    }
-
    if(alen) { /* not all alpn chars used, wrong format or too many */
-
      result = CURLE_FAILED_INIT;
-
      goto out;
-
    }
+
    if(alen) /* not all alpn chars used, wrong format or too many */
+
        return CURLE_FAILED_INIT;
    gtls_alpns_count = i;
  }

@@ -1244,12 +1164,10 @@ CURLcode Curl_gtls_ctx_init(struct gtls_ctx *gctx,
                               gtls_alpns, (unsigned int)gtls_alpns_count,
                               GNUTLS_ALPN_MANDATORY)) {
    failf(data, "failed setting ALPN");
-
    result = CURLE_SSL_CONNECT_ERROR;
+
    return CURLE_SSL_CONNECT_ERROR;
  }

-
out:
-
  Curl_ssl_scache_return(cf, data, peer->scache_key, scs);
-
  return result;
+
  return CURLE_OK;
}

static CURLcode
@@ -1279,8 +1197,7 @@ gtls_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
  }

  result = Curl_gtls_ctx_init(&backend->gtls, cf, data, &connssl->peer,
-
                              proto.data, proto.len,
-
                              NULL, NULL, cf, gtls_on_session_reuse);
+
                              proto.data, proto.len, connssl, NULL, NULL, cf);
  if(result)
    return result;

@@ -1969,9 +1886,6 @@ gtls_connect_common(struct Curl_cfilter *cf,
      goto out;

    if(connssl->earlydata_state == ssl_earlydata_sent) {
-
      /* report the true time the handshake was done */
-
      connssl->handshake_done = Curl_now();
-
      Curl_pgrsTimeWas(data, TIMER_APPCONNECT, connssl->handshake_done);
      if(gnutls_session_get_flags(backend->gtls.session) &
         GNUTLS_SFLAGS_EARLY_DATA) {
        connssl->earlydata_state = ssl_earlydata_accepted;
@@ -2299,7 +2213,7 @@ out:
  return ret;
}

-
size_t Curl_gtls_version(char *buffer, size_t size)
+
static size_t gtls_version(char *buffer, size_t size)
{
  return msnprintf(buffer, size, "GnuTLS/%s", gnutls_check_version(NULL));
}
@@ -2354,7 +2268,8 @@ const struct Curl_ssl Curl_ssl_gnutls = {

  gtls_init,                     /* init */
  gtls_cleanup,                  /* cleanup */
-
  Curl_gtls_version,             /* version */
+
  gtls_version,                  /* version */
+
  Curl_none_check_cxn,           /* check_cxn */
  gtls_shutdown,                 /* shutdown */
  gtls_data_pending,             /* data_pending */
  gtls_random,                   /* random */
@@ -2364,12 +2279,14 @@ const struct Curl_ssl Curl_ssl_gnutls = {
  Curl_ssl_adjust_pollset,       /* adjust_pollset */
  gtls_get_internals,            /* get_internals */
  gtls_close,                    /* close_one */
-
  NULL,                          /* close_all */
-
  NULL,                          /* set_engine */
-
  NULL,                          /* set_engine_default */
-
  NULL,                          /* engines_list */
-
  NULL,                          /* false_start */
+
  Curl_none_close_all,           /* close_all */
+
  Curl_none_set_engine,          /* set_engine */
+
  Curl_none_set_engine_default,  /* set_engine_default */
+
  Curl_none_engines_list,        /* engines_list */
+
  Curl_none_false_start,         /* false_start */
  gtls_sha256sum,                /* sha256sum */
+
  NULL,                          /* associate_connection */
+
  NULL,                          /* disassociate_connection */
  gtls_recv,                     /* recv decrypted data */
  gtls_send,                     /* send data to encrypt */
  NULL,                          /* get_channel_binding */
modified external/curl/lib/vtls/gtls.h
@@ -46,9 +46,6 @@ struct ssl_primary_config;
struct ssl_config_data;
struct ssl_peer;
struct ssl_connect_data;
-
struct Curl_ssl_session;
-

-
int Curl_glts_get_ietf_proto(gnutls_session_t session);

struct gtls_shared_creds {
  gnutls_certificate_credentials_t creds;
@@ -73,26 +70,19 @@ struct gtls_ctx {
  BIT(sent_shutdown);
};

-
size_t Curl_gtls_version(char *buffer, size_t size);
-

typedef CURLcode Curl_gtls_ctx_setup_cb(struct Curl_cfilter *cf,
                                        struct Curl_easy *data,
                                        void *user_data);

-
typedef CURLcode Curl_gtls_init_session_reuse_cb(struct Curl_cfilter *cf,
-
                                                 struct Curl_easy *data,
-
                                                 struct Curl_ssl_session *scs,
-
                                                 bool *do_early_data);
-

CURLcode Curl_gtls_ctx_init(struct gtls_ctx *gctx,
                            struct Curl_cfilter *cf,
                            struct Curl_easy *data,
                            struct ssl_peer *peer,
                            const unsigned char *alpn, size_t alpn_len,
+
                            struct ssl_connect_data *connssl,
                            Curl_gtls_ctx_setup_cb *cb_setup,
                            void *cb_user_data,
-
                            void *ssl_user_data,
-
                            Curl_gtls_init_session_reuse_cb *sess_reuse_cb);
+
                            void *ssl_user_data);

CURLcode Curl_gtls_client_trust_setup(struct Curl_cfilter *cf,
                                      struct Curl_easy *data,
@@ -106,14 +96,11 @@ CURLcode Curl_gtls_verifyserver(struct Curl_easy *data,
                                const char *pinned_key);

/* Extract TLS session and place in cache, if configured. */
-
CURLcode Curl_gtls_cache_session(struct Curl_cfilter *cf,
-
                                 struct Curl_easy *data,
-
                                 const char *ssl_peer_key,
-
                                 gnutls_session_t session,
-
                                 curl_off_t valid_until,
-
                                 const char *alpn,
-
                                 unsigned char *quic_tp,
-
                                 size_t quic_tp_len);
+
CURLcode Curl_gtls_update_session_id(struct Curl_cfilter *cf,
+
                                     struct Curl_easy *data,
+
                                     gnutls_session_t session,
+
                                     struct ssl_peer *peer,
+
                                     const char *alpn);

extern const struct Curl_ssl Curl_ssl_gnutls;

modified external/curl/lib/vtls/mbedtls.c
@@ -64,7 +64,6 @@
#include "mbedtls.h"
#include "vtls.h"
#include "vtls_int.h"
-
#include "vtls_scache.h"
#include "x509asn1.h"
#include "parsedate.h"
#include "connect.h" /* for the connect timeout */
@@ -101,36 +100,29 @@ struct mbed_ssl_backend_data {
  const char *protocols[3];
#endif
  int *ciphersuites;
-
  size_t send_blocked_len;
  BIT(initialized); /* mbedtls_ssl_context is initialized */
  BIT(sent_shutdown);
-
  BIT(send_blocked);
};

/* apply threading? */
-
#if (defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H)) ||  \
-
  defined(_WIN32)
-
#define HAS_THREADING_SUPPORT
+
#if (defined(USE_THREADS_POSIX) && defined(HAVE_PTHREAD_H)) || \
+
    defined(_WIN32)
+
#define THREADING_SUPPORT
#endif

#ifndef MBEDTLS_ERROR_C
#define mbedtls_strerror(a,b,c) b[0] = 0
#endif

-
/* PSA can be used independently of TLS 1.3 */
-
#if defined(MBEDTLS_USE_PSA_CRYPTO) && MBEDTLS_VERSION_NUMBER >= 0x03060000
-
#define HAS_PSA_SUPPORT
-
#endif
-

#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && MBEDTLS_VERSION_NUMBER >= 0x03060000
-
#define HAS_TLS13_SUPPORT
+
#define TLS13_SUPPORT
#endif

-
#if defined(HAS_TLS13_SUPPORT) && defined(MBEDTLS_SSL_SESSION_TICKETS)
+
#if defined(TLS13_SUPPORT) && defined(MBEDTLS_SSL_SESSION_TICKETS)
#define HAS_SESSION_TICKETS
#endif

-
#ifdef HAS_THREADING_SUPPORT
+
#ifdef THREADING_SUPPORT
static mbedtls_entropy_context ts_entropy;

static int entropy_init_initialized = 0;
@@ -168,7 +160,7 @@ static int entropy_func_mutex(void *data, unsigned char *output, size_t len)
  return ret;
}

-
#endif /* HAS_THREADING_SUPPORT */
+
#endif /* THREADING_SUPPORT */

#ifdef MBEDTLS_DEBUG
static void mbed_debug(void *context, int level, const char *f_name,
@@ -298,7 +290,7 @@ mbed_set_ssl_version_min_max(struct Curl_easy *data,
    /* ver_min = MBEDTLS_SSL_VERSION_TLS1_2; */
    break;
  case CURL_SSLVERSION_TLSv1_3:
-
#ifdef HAS_TLS13_SUPPORT
+
#ifdef TLS13_SUPPORT
    ver_min = MBEDTLS_SSL_VERSION_TLS1_3;
    break;
#endif
@@ -312,7 +304,7 @@ mbed_set_ssl_version_min_max(struct Curl_easy *data,
  case CURL_SSLVERSION_MAX_DEFAULT:
  case CURL_SSLVERSION_MAX_NONE:
  case CURL_SSLVERSION_MAX_TLSv1_3:
-
#ifdef HAS_TLS13_SUPPORT
+
#ifdef TLS13_SUPPORT
    ver_max = MBEDTLS_SSL_VERSION_TLS1_3;
    break;
#endif
@@ -403,7 +395,7 @@ mbed_set_selected_ciphers(struct Curl_easy *data,
  if(!selected)
    return CURLE_OUT_OF_MEMORY;

-
#ifndef HAS_TLS13_SUPPORT
+
#ifndef TLS13_SUPPORT
  (void) ciphers13, (void) j;
#else
  if(!ciphers13) {
@@ -451,7 +443,7 @@ add_ciphers:
    selected[count++] = id;
  }

-
#ifdef HAS_TLS13_SUPPORT
+
#ifdef TLS13_SUPPORT
  if(ciphers == ciphers13 && ciphers12) {
    ciphers = ciphers12;
    goto add_ciphers;
@@ -593,7 +585,7 @@ mbed_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
    return CURLE_NOT_BUILT_IN;
  }

-
#ifdef HAS_THREADING_SUPPORT
+
#ifdef THREADING_SUPPORT
  mbedtls_ctr_drbg_init(&backend->ctr_drbg);

  ret = mbedtls_ctr_drbg_seed(&backend->ctr_drbg, entropy_func_mutex,
@@ -616,7 +608,7 @@ mbed_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
          -ret, errorbuf);
    return CURLE_FAILED_INIT;
  }
-
#endif /* HAS_THREADING_SUPPORT */
+
#endif /* THREADING_SUPPORT */

  /* Load the trusted CA */
  mbedtls_x509_crt_init(&backend->cacert);
@@ -810,7 +802,7 @@ mbed_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
    return CURLE_SSL_CONNECT_ERROR;
  }

-
#if defined(HAS_SESSION_TICKETS) && MBEDTLS_VERSION_NUMBER >= 0x03060100
+
#ifdef MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED
  /* New in mbedTLS 3.6.1, need to enable, default is now disabled */
  mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets(&backend->config,
    MBEDTLS_SSL_TLS1_3_SIGNAL_NEW_SESSION_TICKETS_ENABLED);
@@ -849,7 +841,7 @@ mbed_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
                      mbedtls_bio_cf_read,
                      NULL /*  rev_timeout() */);

-
#ifndef HAS_TLS13_SUPPORT
+
#ifndef TLS13_SUPPORT
  if(conn_config->cipher_list) {
    CURLcode result = mbed_set_selected_ciphers(data, backend,
                                                conn_config->cipher_list,
@@ -883,30 +875,29 @@ mbed_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)

  /* Check if there is a cached ID we can/should use here! */
  if(ssl_config->primary.cache_session) {
-
    struct Curl_ssl_session *sc_session = NULL;
-
    CURLcode result;
+
    void *sdata = NULL;
+
    size_t slen = 0;

-
    result = Curl_ssl_scache_take(cf, data, connssl->peer.scache_key,
-
                                  &sc_session);
-
    if(!result && sc_session && sc_session->sdata && sc_session->sdata_len) {
+
    Curl_ssl_sessionid_lock(data);
+
    if(!Curl_ssl_getsessionid(cf, data, &connssl->peer,
+
                              &sdata, &slen, NULL) && slen) {
      mbedtls_ssl_session session;

      mbedtls_ssl_session_init(&session);
-
      ret = mbedtls_ssl_session_load(&session, sc_session->sdata,
-
                                     sc_session->sdata_len);
+
      ret = mbedtls_ssl_session_load(&session, sdata, slen);
      if(ret) {
-
        failf(data, "SSL session error loading: -0x%x", -ret);
+
        failf(data, "error loading cached session: -0x%x", -ret);
      }
      else {
        ret = mbedtls_ssl_set_session(&backend->ssl, &session);
        if(ret)
-
          failf(data, "SSL session error setting: -0x%x", -ret);
+
          failf(data, "error setting session: -0x%x", -ret);
        else
          infof(data, "SSL reusing session ID");
      }
      mbedtls_ssl_session_free(&session);
    }
-
    Curl_ssl_scache_return(cf, data, connssl->peer.scache_key, sc_session);
+
    Curl_ssl_sessionid_unlock(data);
  }

  mbedtls_ssl_conf_ca_chain(&backend->config,
@@ -1124,6 +1115,12 @@ pinnedpubkey_error:
  return CURLE_OK;
}

+
static void mbedtls_session_free(void *session, size_t slen)
+
{
+
  (void)slen;
+
  free(session);
+
}
+

static CURLcode
mbed_new_session(struct Curl_cfilter *cf, struct Curl_easy *data)
{
@@ -1131,64 +1128,48 @@ mbed_new_session(struct Curl_cfilter *cf, struct Curl_easy *data)
  struct mbed_ssl_backend_data *backend =
    (struct mbed_ssl_backend_data *)connssl->backend;
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
-
  mbedtls_ssl_session session;
-
  bool msession_alloced = FALSE;
-
  struct Curl_ssl_session *sc_session = NULL;
-
  unsigned char *sdata = NULL;
-
  size_t slen = 0;
-
  int ietf_tls_id;
  CURLcode result = CURLE_OK;
-
  int ret;

  DEBUGASSERT(backend);
-
  if(!ssl_config->primary.cache_session)
-
    return CURLE_OK;
-

-
  mbedtls_ssl_session_init(&session);
-
  ret = mbedtls_ssl_get_session(&backend->ssl, &session);
-
  msession_alloced = (ret != MBEDTLS_ERR_SSL_ALLOC_FAILED);
-
  if(ret) {
-
    failf(data, "mbedtls_ssl_get_session returned -0x%x", -ret);
-
    result = CURLE_SSL_CONNECT_ERROR;
-
    goto out;
-
  }
-

-
  mbedtls_ssl_session_save(&session, NULL, 0, &slen);
-
  if(!slen) {
-
    failf(data, "failed to serialize session: length is 0");
-
    goto out;
-
  }
-

-
  sdata = malloc(slen);
-
  if(!sdata) {
-
    result = CURLE_OUT_OF_MEMORY;
-
    goto out;
-
  }
-

-
  ret = mbedtls_ssl_session_save(&session, sdata, slen, &slen);
-
  if(ret) {
-
    failf(data, "failed to serialize session: -0x%x", -ret);
-
    goto out;
-
  }
+
  if(ssl_config->primary.cache_session) {
+
    int ret;
+
    mbedtls_ssl_session session;
+
    unsigned char *sdata = NULL;
+
    size_t slen = 0;

-
#if MBEDTLS_VERSION_NUMBER >= 0x03020000
-
  ietf_tls_id = mbedtls_ssl_get_version_number(&backend->ssl);
-
#else
-
  ietf_tls_id = CURL_IETF_PROTO_UNKNOWN;
-
#endif
-
  result = Curl_ssl_session_create(sdata, slen,
-
                                   ietf_tls_id,
-
                                   connssl->negotiated.alpn, 0, 0,
-
                                   &sc_session);
-
  sdata = NULL;  /* call took ownership */
-
  if(!result)
-
    result = Curl_ssl_scache_put(cf, data, connssl->peer.scache_key,
-
                                 sc_session);
+
    mbedtls_ssl_session_init(&session);
+
    ret = mbedtls_ssl_get_session(&backend->ssl, &session);
+
    if(ret) {
+
      if(ret != MBEDTLS_ERR_SSL_ALLOC_FAILED)
+
        mbedtls_ssl_session_free(&session);
+
      failf(data, "mbedtls_ssl_get_session returned -0x%x", -ret);
+
      return CURLE_SSL_CONNECT_ERROR;
+
    }

-
out:
-
  if(msession_alloced)
+
    mbedtls_ssl_session_save(&session, NULL, 0, &slen);
+
    if(!slen) {
+
      failf(data, "failed to serialize session: length is 0");
+
    }
+
    else {
+
      sdata = malloc(slen);
+
      if(sdata) {
+
        ret = mbedtls_ssl_session_save(&session, sdata, slen, &slen);
+
        if(ret) {
+
          failf(data, "failed to serialize session: -0x%x", -ret);
+
        }
+
        else {
+
          Curl_ssl_sessionid_lock(data);
+
          result = Curl_ssl_set_sessionid(cf, data, &connssl->peer, NULL,
+
                                          sdata, slen, mbedtls_session_free);
+
          Curl_ssl_sessionid_unlock(data);
+
          if(!result)
+
            sdata = NULL;
+
        }
+
      }
+
    }
    mbedtls_ssl_session_free(&session);
-
  free(sdata);
+
    free(sdata);
+
  }
  return result;
}

@@ -1203,41 +1184,27 @@ static ssize_t mbed_send(struct Curl_cfilter *cf, struct Curl_easy *data,

  (void)data;
  DEBUGASSERT(backend);
-
  /* mbedtls is picky when a mbedtls_ssl_write) was previously blocked.
-
   * It requires to be called with the same amount of bytes again, or it
-
   * will lose bytes, e.g. reporting all was sent but they were not.
-
   * Remember the blocked length and use that when set. */
-
  if(backend->send_blocked) {
-
    DEBUGASSERT(backend->send_blocked_len <= len);
-
    CURL_TRC_CF(data, cf, "mbedtls_ssl_write(len=%zu) -> previously blocked "
-
                "on %zu bytes", len, backend->send_blocked_len);
-
    len = backend->send_blocked_len;
-
  }
-

  ret = mbedtls_ssl_write(&backend->ssl, (unsigned char *)mem, len);

  if(ret < 0) {
    CURL_TRC_CF(data, cf, "mbedtls_ssl_write(len=%zu) -> -0x%04X",
                len, -ret);
    *curlcode = ((ret == MBEDTLS_ERR_SSL_WANT_WRITE)
-
#ifdef HAS_TLS13_SUPPORT
+
#ifdef TLS13_SUPPORT
      || (ret == MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET)
#endif
      ) ? CURLE_AGAIN : CURLE_SEND_ERROR;
    ret = -1;
-
    if((*curlcode == CURLE_AGAIN) && !backend->send_blocked) {
-
      backend->send_blocked = TRUE;
-
      backend->send_blocked_len = len;
-
    }
-
  }
-
  else {
-
    CURL_TRC_CF(data, cf, "mbedtls_ssl_write(len=%zu) -> %d", len, ret);
-
    backend->send_blocked = FALSE;
  }

  return ret;
}

+
static void mbedtls_close_all(struct Curl_easy *data)
+
{
+
  (void)data;
+
}
+

static CURLcode mbedtls_shutdown(struct Curl_cfilter *cf,
                                 struct Curl_easy *data,
                                 bool send_shutdown, bool *done)
@@ -1293,7 +1260,7 @@ static CURLcode mbedtls_shutdown(struct Curl_cfilter *cf,
     * WANT_READ, but has not encountered an EAGAIN. */
    if(ret == MBEDTLS_ERR_SSL_WANT_READ)
      ret = mbedtls_ssl_read(&backend->ssl, buf, sizeof(buf));
-
#ifdef HAS_TLS13_SUPPORT
+
#ifdef TLS13_SUPPORT
    if(ret == MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET)
      continue;
#endif
@@ -1347,9 +1314,9 @@ static void mbedtls_close(struct Curl_cfilter *cf, struct Curl_easy *data)
    mbedtls_ssl_config_free(&backend->config);
    mbedtls_ssl_free(&backend->ssl);
    mbedtls_ctr_drbg_free(&backend->ctr_drbg);
-
#ifndef HAS_THREADING_SUPPORT
+
#ifndef THREADING_SUPPORT
    mbedtls_entropy_free(&backend->entropy);
-
#endif /* HAS_THREADING_SUPPORT */
+
#endif /* THREADING_SUPPORT */
    backend->initialized = FALSE;
  }
}
@@ -1591,29 +1558,29 @@ static int mbedtls_init(void)
{
  if(!Curl_mbedtlsthreadlock_thread_setup())
    return 0;
-
#ifdef HAS_THREADING_SUPPORT
+
#ifdef THREADING_SUPPORT
  entropy_init_mutex(&ts_entropy);
#endif
-
#ifdef HAS_PSA_SUPPORT
+
#ifdef TLS13_SUPPORT
  {
    int ret;
-
#ifdef HAS_THREADING_SUPPORT
+
#ifdef THREADING_SUPPORT
    Curl_mbedtlsthreadlock_lock_function(0);
#endif
    ret = psa_crypto_init();
-
#ifdef HAS_THREADING_SUPPORT
+
#ifdef THREADING_SUPPORT
    Curl_mbedtlsthreadlock_unlock_function(0);
#endif
    if(ret != PSA_SUCCESS)
      return 0;
  }
-
#endif /* HAS_PSA_SUPPORT */
+
#endif /* TLS13_SUPPORT */
  return 1;
}

static void mbedtls_cleanup(void)
{
-
#ifdef HAS_THREADING_SUPPORT
+
#ifdef THREADING_SUPPORT
  entropy_cleanup_mutex(&ts_entropy);
#endif
  (void)Curl_mbedtlsthreadlock_thread_cleanup();
@@ -1670,7 +1637,7 @@ const struct Curl_ssl Curl_ssl_mbedtls = {
  SSLSUPP_CERTINFO |
  SSLSUPP_PINNEDPUBKEY |
  SSLSUPP_SSL_CTX |
-
#ifdef HAS_TLS13_SUPPORT
+
#ifdef TLS13_SUPPORT
  SSLSUPP_TLS13_CIPHERSUITES |
#endif
  SSLSUPP_HTTPS_PROXY |
@@ -1681,21 +1648,24 @@ const struct Curl_ssl Curl_ssl_mbedtls = {
  mbedtls_init,                     /* init */
  mbedtls_cleanup,                  /* cleanup */
  mbedtls_version,                  /* version */
+
  Curl_none_check_cxn,              /* check_cxn */
  mbedtls_shutdown,                 /* shutdown */
  mbedtls_data_pending,             /* data_pending */
  mbedtls_random,                   /* random */
-
  NULL,                             /* cert_status_request */
+
  Curl_none_cert_status_request,    /* cert_status_request */
  mbedtls_connect,                  /* connect */
  mbedtls_connect_nonblocking,      /* connect_nonblocking */
  Curl_ssl_adjust_pollset,          /* adjust_pollset */
  mbedtls_get_internals,            /* get_internals */
  mbedtls_close,                    /* close_one */
-
  NULL,                             /* close_all */
-
  NULL,                             /* set_engine */
-
  NULL,                             /* set_engine_default */
-
  NULL,                             /* engines_list */
-
  NULL,                             /* false_start */
+
  mbedtls_close_all,                /* close_all */
+
  Curl_none_set_engine,             /* set_engine */
+
  Curl_none_set_engine_default,     /* set_engine_default */
+
  Curl_none_engines_list,           /* engines_list */
+
  Curl_none_false_start,            /* false_start */
  mbedtls_sha256sum,                /* sha256sum */
+
  NULL,                             /* associate_connection */
+
  NULL,                             /* disassociate_connection */
  mbed_recv,                        /* recv decrypted data */
  mbed_send,                        /* send data to encrypt */
  NULL,                             /* get_channel_binding */
modified external/curl/lib/vtls/openssl.c
@@ -56,7 +56,6 @@
#include "select.h"
#include "vtls.h"
#include "vtls_int.h"
-
#include "vtls_scache.h"
#include "vauth/vauth.h"
#include "keylog.h"
#include "strcase.h"
@@ -83,15 +82,16 @@
#include <openssl/tls1.h>
#include <openssl/evp.h>

-
#if defined(HAVE_SSL_SET1_ECH_CONFIG_LIST)
-
#define USE_ECH_OPENSSL
-
#endif
-

-
#ifdef USE_ECH_OPENSSL
+
#ifdef USE_ECH
# if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC)
#  include <openssl/ech.h>
# endif
-
#endif /* USE_ECH_OPENSSL */
+
# include "curl_base64.h"
+
# define ECH_ENABLED(__data__) \
+
    (__data__->set.tls_ech && \
+
     !(__data__->set.tls_ech & CURLECH_DISABLE)\
+
    )
+
#endif /* USE_ECH */

#if (OPENSSL_VERSION_NUMBER >= 0x0090808fL) && !defined(OPENSSL_NO_OCSP)
#include <openssl/ocsp.h>
@@ -103,13 +103,6 @@
#include <openssl/engine.h>
#endif

-
#if OPENSSL_VERSION_NUMBER >= 0x03000000fL && !defined(OPENSSL_NO_UI_CONSOLE)
-
#include <openssl/provider.h>
-
#include <openssl/store.h>
-
/* this is used in the following conditions to make them easier to read */
-
#define OPENSSL_HAS_PROVIDERS
-
#endif
-

#include "warnless.h"

/* The last #include files should be: */
@@ -131,7 +124,7 @@
#error "OPENSSL_VERSION_NUMBER not defined"
#endif

-
#if defined(USE_OPENSSL_ENGINE) || defined(OPENSSL_HAS_PROVIDERS)
+
#ifdef USE_OPENSSL_ENGINE
#include <openssl/ui.h>
#endif

@@ -179,6 +172,10 @@
#define HAVE_X509_GET0_SIGNATURE 1
#endif

+
#if (OPENSSL_VERSION_NUMBER >= 0x1000200fL) /* 1.0.2 or later */
+
#define HAVE_SSL_GET_SHUTDOWN 1
+
#endif
+

#if OPENSSL_VERSION_NUMBER >= 0x10002003L && \
  OPENSSL_VERSION_NUMBER <= 0x10002FFFL && \
  !defined(OPENSSL_NO_COMP)
@@ -203,6 +200,18 @@
#define FREE_PKEY_PARAM_BIGNUM(name)
#endif

+
/*
+
 * Whether SSL_CTX_set_keylog_callback is available.
+
 * OpenSSL: supported since 1.1.1 https://github.com/openssl/openssl/pull/2287
+
 * BoringSSL: supported since d28f59c27bac (committed 2015-11-19)
+
 * LibreSSL: not supported. 3.5.0+ has a stub function that does nothing.
+
 */
+
#if (OPENSSL_VERSION_NUMBER >= 0x10101000L && \
+
     !defined(LIBRESSL_VERSION_NUMBER)) || \
+
    defined(OPENSSL_IS_BORINGSSL)
+
#define HAVE_KEYLOG_CALLBACK
+
#endif
+

/* Whether SSL_CTX_set_ciphersuites is available.
 * OpenSSL: supported since 1.1.1 (commit a53b5be6a05)
 * BoringSSL: no
@@ -730,7 +739,7 @@ static long ossl_bio_cf_ctrl(BIO *bio, int cmd, long num, void *ptr)
#ifdef BIO_CTRL_EOF
  case BIO_CTRL_EOF:
    /* EOF has been reached on input? */
-
    return !cf->next || !cf->next->connected;
+
    return (!cf->next || !cf->next->connected);
#endif
  default:
    ret = 0;
@@ -951,6 +960,8 @@ static const char *SSL_ERROR_to_str(int err)
  }
}

+
static size_t ossl_version(char *buffer, size_t size);
+

/* Return error string for last OpenSSL error
 */
static char *ossl_strerror(unsigned long error, char *buf, size_t size)
@@ -959,7 +970,7 @@ static char *ossl_strerror(unsigned long error, char *buf, size_t size)
  DEBUGASSERT(size);
  *buf = '\0';

-
  len = Curl_ossl_version(buf, size);
+
  len = ossl_version(buf, size);
  DEBUGASSERT(len < (size - 2));
  if(len < (size - 2)) {
    buf += len;
@@ -1004,7 +1015,7 @@ static int passwd_callback(char *buf, int num, int encrypting,
 */
static bool rand_enough(void)
{
-
  return 0 != RAND_status();
+
  return (0 != RAND_status());
}

static CURLcode ossl_seed(struct Curl_easy *data)
@@ -1060,8 +1071,8 @@ static CURLcode ossl_seed(struct Curl_easy *data)
  }

  infof(data, "libcurl is now using a weak random seed");
-
  return rand_enough() ? CURLE_OK :
-
         CURLE_SSL_CONNECT_ERROR; /* confusing error code */
+
  return (rand_enough() ? CURLE_OK :
+
          CURLE_SSL_CONNECT_ERROR /* confusing error code */);
#endif
}

@@ -1071,9 +1082,6 @@ static CURLcode ossl_seed(struct Curl_easy *data)
#ifndef SSL_FILETYPE_PKCS12
#define SSL_FILETYPE_PKCS12 43
#endif
-
#ifndef SSL_FILETYPE_PROVIDER
-
#define SSL_FILETYPE_PROVIDER 44
-
#endif
static int ossl_do_file_type(const char *type)
{
  if(!type || !type[0])
@@ -1082,8 +1090,6 @@ static int ossl_do_file_type(const char *type)
    return SSL_FILETYPE_PEM;
  if(strcasecompare(type, "DER"))
    return SSL_FILETYPE_ASN1;
-
  if(strcasecompare(type, "PROV"))
-
    return SSL_FILETYPE_PROVIDER;
  if(strcasecompare(type, "ENG"))
    return SSL_FILETYPE_ENGINE;
  if(strcasecompare(type, "P12"))
@@ -1091,7 +1097,7 @@ static int ossl_do_file_type(const char *type)
  return -1;
}

-
#if defined(USE_OPENSSL_ENGINE) || defined(OPENSSL_HAS_PROVIDERS)
+
#ifdef USE_OPENSSL_ENGINE
/*
 * Supply default password to the engine user interface conversation.
 * The password is passed by OpenSSL engine from ENGINE_load_private_key()
@@ -1139,16 +1145,12 @@ static int ssl_ui_writer(UI *ui, UI_STRING *uis)
 */
static bool is_pkcs11_uri(const char *string)
{
-
  return string && strncasecompare(string, "pkcs11:", 7);
+
  return (string && strncasecompare(string, "pkcs11:", 7));
}

#endif

static CURLcode ossl_set_engine(struct Curl_easy *data, const char *engine);
-
#if !defined(USE_OPENSSL_ENGINE) && defined(OPENSSL_HAS_PROVIDERS)
-
static CURLcode ossl_set_provider(struct Curl_easy *data,
-
                                  const char *provider);
-
#endif

static int use_certificate_blob(SSL_CTX *ctx, const struct curl_blob *blob,
                                int type, const char *key_passwd)
@@ -1297,8 +1299,7 @@ int cert_stuff(struct Curl_easy *data,

  int file_type = ossl_do_file_type(cert_type);

-
  if(cert_file || cert_blob || (file_type == SSL_FILETYPE_ENGINE) ||
-
     (file_type == SSL_FILETYPE_PROVIDER)) {
+
  if(cert_file || cert_blob || (file_type == SSL_FILETYPE_ENGINE)) {
    SSL *ssl;
    X509 *x509;
    int cert_done = 0;
@@ -1409,79 +1410,8 @@ int cert_stuff(struct Curl_easy *data,
      }
    }
    break;
-
#elif defined(OPENSSL_HAS_PROVIDERS)
-
      /* fall through to compatible provider */
-
    case SSL_FILETYPE_PROVIDER:
-
    {
-
      /* Implicitly use pkcs11 provider if none was provided and the
-
       * cert_file is a PKCS#11 URI */
-
      if(!data->state.provider) {
-
        if(is_pkcs11_uri(cert_file)) {
-
          if(ossl_set_provider(data, "pkcs11") != CURLE_OK) {
-
            return 0;
-
          }
-
        }
-
      }
-

-
      if(data->state.provider) {
-
        /* Load the certificate from the provider */
-
        OSSL_STORE_CTX *store = NULL;
-
        OSSL_STORE_INFO *info = NULL;
-
        X509 *cert = NULL;
-
        store = OSSL_STORE_open(cert_file, NULL, NULL, NULL, NULL);
-
        if(!store) {
-
          failf(data, "Failed to open OpenSSL store: %s",
-
                ossl_strerror(ERR_get_error(), error_buffer,
-
                              sizeof(error_buffer)));
-
          return 0;
-
        }
-
        if(OSSL_STORE_expect(store, OSSL_STORE_INFO_CERT) != 1) {
-
          failf(data, "Failed to set store preference. Ignoring the error: %s",
-
                ossl_strerror(ERR_get_error(), error_buffer,
-
                              sizeof(error_buffer)));
-
        }
-

-
        for(info = OSSL_STORE_load(store);
-
            info != NULL;
-
            info = OSSL_STORE_load(store)) {
-
          int ossl_type = OSSL_STORE_INFO_get_type(info);
-

-
          if(ossl_type == OSSL_STORE_INFO_CERT) {
-
            cert = OSSL_STORE_INFO_get1_CERT(info);
-
          }
-
          else {
-
            failf(data, "Ignoring object not matching our type: %d",
-
                  ossl_type);
-
            OSSL_STORE_INFO_free(info);
-
            continue;
-
          }
-
          OSSL_STORE_INFO_free(info);
-
          break;
-
        }
-
        OSSL_STORE_close(store);
-
        if(!cert) {
-
          failf(data, "No cert found in the openssl store: %s",
-
                ossl_strerror(ERR_get_error(), error_buffer,
-
                              sizeof(error_buffer)));
-
          goto fail;
-
        }
-

-
        if(SSL_CTX_use_certificate(ctx, cert) != 1) {
-
          failf(data, "unable to set client certificate [%s]",
-
                ossl_strerror(ERR_get_error(), error_buffer,
-
                              sizeof(error_buffer)));
-
          return 0;
-
        }
-
        X509_free(cert); /* we do not need the handle any more... */
-
      }
-
      else {
-
        failf(data, "crypto provider not set, cannot load certificate");
-
        return 0;
-
      }
-
    }
-
    break;
#else
-
    failf(data, "file type ENG nor PROV for certificate not implemented");
+
    failf(data, "file type ENG for certificate not implemented");
    return 0;
#endif

@@ -1673,96 +1603,10 @@ fail:
      }
    }
    break;
-
#elif defined(OPENSSL_HAS_PROVIDERS)
-
      /* fall through to compatible provider */
-
    case SSL_FILETYPE_PROVIDER:
-
    {
-
      /* Implicitly use pkcs11 provider if none was provided and the
-
       * cert_file is a PKCS#11 URI */
-
      if(!data->state.provider) {
-
        if(is_pkcs11_uri(cert_file)) {
-
          if(ossl_set_provider(data, "pkcs11") != CURLE_OK) {
-
            return 0;
-
          }
-
        }
-
      }
-

-
      if(data->state.provider) {
-
        /* Load the private key from the provider */
-
        EVP_PKEY *priv_key = NULL;
-
        OSSL_STORE_CTX *store = NULL;
-
        OSSL_STORE_INFO *info = NULL;
-
        UI_METHOD *ui_method =
-
          UI_create_method((char *)"curl user interface");
-
        if(!ui_method) {
-
          failf(data, "unable do create " OSSL_PACKAGE
-
                " user-interface method");
-
          return 0;
-
        }
-
        UI_method_set_opener(ui_method, UI_method_get_opener(UI_OpenSSL()));
-
        UI_method_set_closer(ui_method, UI_method_get_closer(UI_OpenSSL()));
-
        UI_method_set_reader(ui_method, ssl_ui_reader);
-
        UI_method_set_writer(ui_method, ssl_ui_writer);
-

-
        store = OSSL_STORE_open(key_file, ui_method, NULL, NULL, NULL);
-
        if(!store) {
-
          failf(data, "Failed to open OpenSSL store: %s",
-
                ossl_strerror(ERR_get_error(), error_buffer,
-
                              sizeof(error_buffer)));
-
          return 0;
-
        }
-
        if(OSSL_STORE_expect(store, OSSL_STORE_INFO_PKEY) != 1) {
-
          failf(data, "Failed to set store preference. Ignoring the error: %s",
-
                ossl_strerror(ERR_get_error(), error_buffer,
-
                              sizeof(error_buffer)));
-
        }
-

-
        for(info = OSSL_STORE_load(store);
-
            info != NULL;
-
            info = OSSL_STORE_load(store)) {
-
          int ossl_type = OSSL_STORE_INFO_get_type(info);
-

-
          if(ossl_type == OSSL_STORE_INFO_PKEY) {
-
            priv_key = OSSL_STORE_INFO_get1_PKEY(info);
-
          }
-
          else {
-
            failf(data, "Ignoring object not matching our type: %d",
-
                  ossl_type);
-
            OSSL_STORE_INFO_free(info);
-
            continue;
-
          }
-
          OSSL_STORE_INFO_free(info);
-
          break;
-
        }
-
        OSSL_STORE_close(store);
-
        UI_destroy_method(ui_method);
-
        if(!priv_key) {
-
          failf(data, "No private key found in the openssl store: %s",
-
                ossl_strerror(ERR_get_error(), error_buffer,
-
                              sizeof(error_buffer)));
-
          goto fail;
-
        }
-

-
        if(SSL_CTX_use_PrivateKey(ctx, priv_key) != 1) {
-
          failf(data, "unable to set private key [%s]",
-
                ossl_strerror(ERR_get_error(), error_buffer,
-
                              sizeof(error_buffer)));
-
          EVP_PKEY_free(priv_key);
-
          return 0;
-
        }
-
        EVP_PKEY_free(priv_key); /* we do not need the handle any more... */
-
      }
-
      else {
-
        failf(data, "crypto provider not set, cannot load private key");
-
        return 0;
-
      }
-
    }
-
    break;
#else
-
    failf(data, "file type ENG nor PROV for private key not implemented");
+
    failf(data, "file type ENG for private key not supported");
    return 0;
#endif
-

    case SSL_FILETYPE_PKCS12:
      if(!cert_done) {
        failf(data, "file type P12 for private key not supported");
@@ -2030,40 +1874,6 @@ static struct curl_slist *ossl_engines_list(struct Curl_easy *data)
  return list;
}

-
#if !defined(USE_OPENSSL_ENGINE) && defined(OPENSSL_HAS_PROVIDERS)
-
/* Selects an OpenSSL crypto provider
-
 */
-
static CURLcode ossl_set_provider(struct Curl_easy *data, const char *provider)
-
{
-
  OSSL_PROVIDER *pkcs11_provider = NULL;
-
  char error_buffer[256];
-

-
  if(OSSL_PROVIDER_available(NULL, provider)) {
-
    /* already loaded through the configuration - no action needed */
-
    data->state.provider = TRUE;
-
    return CURLE_OK;
-
  }
-
  if(data->state.provider_failed) {
-
    return CURLE_SSL_ENGINE_NOTFOUND;
-
  }
-

-
  pkcs11_provider = OSSL_PROVIDER_try_load(NULL, provider, 1);
-
  if(!pkcs11_provider) {
-
    failf(data, "Failed to initialize provider: %s",
-
          ossl_strerror(ERR_get_error(), error_buffer,
-
                        sizeof(error_buffer)));
-
    /* Do not attempt to load it again */
-
    data->state.provider_failed = TRUE;
-
    /* FIXME not the right error but much less fuss than creating a new
-
     * public one */
-
    return CURLE_SSL_ENGINE_NOTFOUND;
-
  }
-
  data->state.provider = TRUE;
-
  return CURLE_OK;
-
}
-
#endif
-

-

static CURLcode ossl_shutdown(struct Curl_cfilter *cf,
                              struct Curl_easy *data,
                              bool send_shutdown, bool *done)
@@ -2203,6 +2013,13 @@ static void ossl_close(struct Curl_cfilter *cf, struct Curl_easy *data)
  }
}

+
static void ossl_session_free(void *sessionid, size_t idsize)
+
{
+
  /* free the ID */
+
  (void)idsize;
+
  free(sessionid);
+
}
+

/*
 * This function is called when the 'data' struct is going away. Close
 * down everything and free all resources!
@@ -3056,23 +2873,20 @@ ossl_set_ssl_version_min_max_legacy(ctx_option_t *ctx_options,

CURLcode Curl_ossl_add_session(struct Curl_cfilter *cf,
                               struct Curl_easy *data,
-
                               const char *ssl_peer_key,
-
                               SSL_SESSION *session,
-
                               int ietf_tls_id,
-
                               const char *alpn)
+
                               const struct ssl_peer *peer,
+
                               SSL_SESSION *session)
{
  const struct ssl_config_data *config;
-
  unsigned char *der_session_buf = NULL;
  CURLcode result = CURLE_OK;
+
  size_t der_session_size;
+
  unsigned char *der_session_buf;
+
  unsigned char *der_session_ptr;

  if(!cf || !data)
    goto out;

  config = Curl_ssl_cf_get_config(cf, data);
  if(config->primary.cache_session) {
-
    struct Curl_ssl_session *sc_session = NULL;
-
    size_t der_session_size;
-
    unsigned char *der_session_ptr;

    der_session_size = i2d_SSL_SESSION(session, NULL);
    if(der_session_size == 0) {
@@ -3089,23 +2903,17 @@ CURLcode Curl_ossl_add_session(struct Curl_cfilter *cf,
    der_session_size = i2d_SSL_SESSION(session, &der_session_ptr);
    if(der_session_size == 0) {
      result = CURLE_OUT_OF_MEMORY;
+
      free(der_session_buf);
      goto out;
    }

-
    result = Curl_ssl_session_create(der_session_buf, der_session_size,
-
                                     ietf_tls_id, alpn,
-
                                     (curl_off_t)time(NULL) +
-
                                     SSL_SESSION_get_timeout(session), 0,
-
                                     &sc_session);
-
    der_session_buf = NULL;  /* took ownership of sdata */
-
    if(!result) {
-
      result = Curl_ssl_scache_put(cf, data, ssl_peer_key, sc_session);
-
      /* took ownership of `sc_session` */
-
    }
+
    Curl_ssl_sessionid_lock(data);
+
    result = Curl_ssl_set_sessionid(cf, data, peer, NULL, der_session_buf,
+
                                    der_session_size, ossl_session_free);
+
    Curl_ssl_sessionid_unlock(data);
  }

out:
-
  free(der_session_buf);
  return result;
}

@@ -3114,13 +2922,14 @@ out:
 */
static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
{
-
  struct Curl_cfilter *cf = (struct Curl_cfilter*) SSL_get_app_data(ssl);
-
  if(cf) {
-
    struct Curl_easy *data = CF_DATA_CURRENT(cf);
-
    struct ssl_connect_data *connssl = cf->ctx;
-
    Curl_ossl_add_session(cf, data, connssl->peer.scache_key, ssl_sessionid,
-
                          SSL_version(ssl), connssl->negotiated.alpn);
-
  }
+
  struct Curl_cfilter *cf;
+
  struct Curl_easy *data;
+
  struct ssl_connect_data *connssl;
+

+
  cf = (struct Curl_cfilter*) SSL_get_app_data(ssl);
+
  connssl = cf ? cf->ctx : NULL;
+
  data = connssl ? CF_DATA_CURRENT(cf) : NULL;
+
  Curl_ossl_add_session(cf, data, &connssl->peer, ssl_sessionid);
  return 0;
}

@@ -3324,9 +3133,9 @@ static CURLcode import_windows_cert_store(struct Curl_easy *data,
}
#endif

-
static CURLcode ossl_populate_x509_store(struct Curl_cfilter *cf,
-
                                         struct Curl_easy *data,
-
                                         X509_STORE *store)
+
static CURLcode populate_x509_store(struct Curl_cfilter *cf,
+
                                    struct Curl_easy *data,
+
                                    X509_STORE *store)
{
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
@@ -3342,7 +3151,7 @@ static CURLcode ossl_populate_x509_store(struct Curl_cfilter *cf,
  bool imported_native_ca = FALSE;
  bool imported_ca_info_blob = FALSE;

-
  CURL_TRC_CF(data, cf, "ossl_populate_x509_store, path=%s, blob=%d",
+
  CURL_TRC_CF(data, cf, "populate_x509_store, path=%s, blob=%d",
              ssl_cafile ? ssl_cafile : "none", !!ca_info_blob);
  if(!store)
    return CURLE_OUT_OF_MEMORY;
@@ -3513,8 +3322,8 @@ static void oss_x509_share_free(void *key, size_t key_len, void *p)
}

static bool
-
ossl_cached_x509_store_expired(const struct Curl_easy *data,
-
                               const struct ossl_x509_share *mb)
+
cached_x509_store_expired(const struct Curl_easy *data,
+
                          const struct ossl_x509_share *mb)
{
  const struct ssl_general_config *cfg = &data->set.general_ssl;
  if(cfg->ca_cache_timeout < 0)
@@ -3529,8 +3338,8 @@ ossl_cached_x509_store_expired(const struct Curl_easy *data,
}

static bool
-
ossl_cached_x509_store_different(struct Curl_cfilter *cf,
-
                                 const struct ossl_x509_share *mb)
+
cached_x509_store_different(struct Curl_cfilter *cf,
+
                            const struct ossl_x509_share *mb)
{
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
  if(!mb->CAfile || !conn_config->CAfile)
@@ -3539,8 +3348,8 @@ ossl_cached_x509_store_different(struct Curl_cfilter *cf,
  return strcmp(mb->CAfile, conn_config->CAfile);
}

-
static X509_STORE *ossl_get_cached_x509_store(struct Curl_cfilter *cf,
-
                                              const struct Curl_easy *data)
+
static X509_STORE *get_cached_x509_store(struct Curl_cfilter *cf,
+
                                         const struct Curl_easy *data)
{
  struct Curl_multi *multi = data->multi;
  struct ossl_x509_share *share;
@@ -3551,17 +3360,17 @@ static X509_STORE *ossl_get_cached_x509_store(struct Curl_cfilter *cf,
                                 (void *)MPROTO_OSSL_X509_KEY,
                                 sizeof(MPROTO_OSSL_X509_KEY)-1) : NULL;
  if(share && share->store &&
-
     !ossl_cached_x509_store_expired(data, share) &&
-
     !ossl_cached_x509_store_different(cf, share)) {
+
     !cached_x509_store_expired(data, share) &&
+
     !cached_x509_store_different(cf, share)) {
    store = share->store;
  }

  return store;
}

-
static void ossl_set_cached_x509_store(struct Curl_cfilter *cf,
-
                                       const struct Curl_easy *data,
-
                                       X509_STORE *store)
+
static void set_cached_x509_store(struct Curl_cfilter *cf,
+
                                  const struct Curl_easy *data,
+
                                  X509_STORE *store)
{
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
  struct Curl_multi *multi = data->multi;
@@ -3629,16 +3438,16 @@ CURLcode Curl_ssl_setup_x509_store(struct Curl_cfilter *cf,
    !ssl_config->primary.CRLfile &&
    !ssl_config->native_ca_store;

-
  cached_store = ossl_get_cached_x509_store(cf, data);
+
  cached_store = get_cached_x509_store(cf, data);
  if(cached_store && cache_criteria_met && X509_STORE_up_ref(cached_store)) {
    SSL_CTX_set_cert_store(ssl_ctx, cached_store);
  }
  else {
    X509_STORE *store = SSL_CTX_get_cert_store(ssl_ctx);

-
    result = ossl_populate_x509_store(cf, data, store);
+
    result = populate_x509_store(cf, data, store);
    if(result == CURLE_OK && cache_criteria_met) {
-
      ossl_set_cached_x509_store(cf, data, store);
+
      set_cached_x509_store(cf, data, store);
    }
  }

@@ -3651,7 +3460,7 @@ CURLcode Curl_ssl_setup_x509_store(struct Curl_cfilter *cf,
{
  X509_STORE *store = SSL_CTX_get_cert_store(ssl_ctx);

-
  return ossl_populate_x509_store(cf, data, store);
+
  return populate_x509_store(cf, data, store);
}
#endif /* HAVE_SSL_X509_STORE_SHARE */

@@ -3659,6 +3468,7 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
                            struct Curl_cfilter *cf,
                            struct Curl_easy *data,
                            struct ssl_peer *peer,
+
                            int transport, /* TCP or QUIC */
                            const unsigned char *alpn, size_t alpn_len,
                            Curl_ossl_ctx_setup_cb *cb_setup,
                            void *cb_user_data,
@@ -3669,6 +3479,9 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
  const char *ciphers;
  SSL_METHOD_QUAL SSL_METHOD *req_method = NULL;
  ctx_option_t ctx_options = 0;
+
  SSL_SESSION *ssl_session = NULL;
+
  const unsigned char *der_sessionid = NULL;
+
  size_t der_sessionid_size = 0;
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
  const long int ssl_version_min = conn_config->version;
@@ -3685,7 +3498,7 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,

  ssl_config->certverifyresult = !X509_V_OK;

-
  switch(peer->transport) {
+
  switch(transport) {
  case TRNSPRT_TCP:
    /* check to see if we have been told to use an explicit SSL/TLS version */
    switch(ssl_version_min) {
@@ -3729,7 +3542,7 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
#endif
    break;
  default:
-
    failf(data, "unsupported transport %d in SSL init", peer->transport);
+
    failf(data, "unsupported transport %d in SSL init", transport);
    return CURLE_SSL_CONNECT_ERROR;
  }

@@ -4019,7 +3832,7 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
    }
  }

-
#ifdef USE_ECH_OPENSSL
+
#ifdef USE_ECH
  if(ECH_ENABLED(data)) {
    unsigned char *ech_config = NULL;
    size_t ech_config_len = 0;
@@ -4052,7 +3865,7 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
      }
      if(SSL_set1_ech_config_list(octx->ssl, ech_config,
                                  ech_config_len) != 1) {
-
        infof(data, "ECH: SSL_ECH_set1_ech_config_list failed");
+
        infof(data, "ECH: SSL_ECH_set1_echconfig failed");
        if(data->set.tls_ech & CURLECH_HARD) {
          free(ech_config);
          return CURLE_SSL_CONNECT_ERROR;
@@ -4067,9 +3880,8 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
        return CURLE_SSL_CONNECT_ERROR;
      }
      ech_config_len = strlen(data->set.str[STRING_ECH_CONFIG]);
-
      if(SSL_set1_ech_config_list(octx->ssl, ech_config,
-
                                  ech_config_len) != 1) {
-
        infof(data, "ECH: SSL_ECH_set1_ech_config_list failed");
+
      if(SSL_ech_set1_echconfig(octx->ssl, ech_config, ech_config_len) != 1) {
+
        infof(data, "ECH: SSL_ECH_set1_echconfig failed");
        if(data->set.tls_ech & CURLECH_HARD)
          return CURLE_SSL_CONNECT_ERROR;
      }
@@ -4097,11 +3909,19 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
          size_t elen = rinfo->echconfiglist_len;

          infof(data, "ECH: ECHConfig from DoH HTTPS RR");
+
# if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC)
+
          if(SSL_ech_set1_echconfig(octx->ssl, ecl, elen) != 1) {
+
            infof(data, "ECH: SSL_ECH_set1_echconfig failed");
+
            if(data->set.tls_ech & CURLECH_HARD)
+
              return CURLE_SSL_CONNECT_ERROR;
+
          }
+
# else
          if(SSL_set1_ech_config_list(octx->ssl, ecl, elen) != 1) {
-
            infof(data, "ECH: SSL_set1_ech_config_list failed");
+
            infof(data, "ECH: SSL_set1_ech_config_list failed (BoringSSL)");
            if(data->set.tls_ech & CURLECH_HARD)
              return CURLE_SSL_CONNECT_ERROR;
          }
+
# endif
          else {
            trying_ech_now = 1;
            infof(data, "ECH: imported ECHConfigList of length %zu", elen);
@@ -4124,7 +3944,7 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
    if(trying_ech_now && outername) {
      infof(data, "ECH: inner: '%s', outer: '%s'",
            peer->hostname ? peer->hostname : "NULL", outername);
-
      result = SSL_ech_set1_server_names(octx->ssl,
+
      result = SSL_ech_set_server_names(octx->ssl,
                                        peer->hostname, outername,
                                        0 /* do send outer */);
      if(result != 1) {
@@ -4139,42 +3959,38 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
      return CURLE_SSL_CONNECT_ERROR;
    }
  }
-
#endif  /* USE_ECH_OPENSSL */
+
#endif  /* USE_ECH */

#endif

  octx->reused_session = FALSE;
  if(ssl_config->primary.cache_session) {
-
    struct Curl_ssl_session *sc_session = NULL;
-

-
    result = Curl_ssl_scache_take(cf, data, peer->scache_key, &sc_session);
-
    if(!result && sc_session && sc_session->sdata && sc_session->sdata_len) {
-
      const unsigned char *der_sessionid = sc_session->sdata;
-
      size_t der_sessionid_size = sc_session->sdata_len;
-
      SSL_SESSION *ssl_session = NULL;
-

-
      /* If OpenSSL does not accept the session from the cache, this
-
       * is not an error. We just continue without it. */
+
    Curl_ssl_sessionid_lock(data);
+
    if(!Curl_ssl_getsessionid(cf, data, peer, (void **)&der_sessionid,
+
      &der_sessionid_size, NULL)) {
+
      /* we got a session id, use it! */
      ssl_session = d2i_SSL_SESSION(NULL, &der_sessionid,
-
                                    (long)der_sessionid_size);
+
        (long)der_sessionid_size);
      if(ssl_session) {
        if(!SSL_set_session(octx->ssl, ssl_session)) {
-
          infof(data, "SSL: SSL_set_session not accepted, "
-
                "continuing without: %s",
+
          Curl_ssl_sessionid_unlock(data);
+
          SSL_SESSION_free(ssl_session);
+
          failf(data, "SSL: SSL_set_session failed: %s",
                ossl_strerror(ERR_get_error(), error_buffer,
                              sizeof(error_buffer)));
-
        }
-
        else {
-
          infof(data, "SSL reusing session");
-
          octx->reused_session = TRUE;
+
          return CURLE_SSL_CONNECT_ERROR;
        }
        SSL_SESSION_free(ssl_session);
+
        /* Informational message */
+
        infof(data, "SSL reusing session ID");
+
        octx->reused_session = TRUE;
      }
      else {
-
        infof(data, "SSL session not accepted by OpenSSL, continuing without");
+
        Curl_ssl_sessionid_unlock(data);
+
        return CURLE_SSL_CONNECT_ERROR;
      }
    }
-
    Curl_ssl_scache_return(cf, data, peer->scache_key, sc_session);
+
    Curl_ssl_sessionid_unlock(data);
  }

  return CURLE_OK;
@@ -4202,7 +4018,7 @@ static CURLcode ossl_connect_step1(struct Curl_cfilter *cf,
  }
#endif

-
  result = Curl_ossl_ctx_init(octx, cf, data, &connssl->peer,
+
  result = Curl_ossl_ctx_init(octx, cf, data, &connssl->peer, TRNSPRT_TCP,
                              proto.data, proto.len, NULL, NULL,
                              ossl_new_session_cb, cf);
  if(result)
@@ -4239,7 +4055,7 @@ static CURLcode ossl_connect_step1(struct Curl_cfilter *cf,
  return CURLE_OK;
}

-
#ifdef USE_ECH_OPENSSL
+
#ifdef USE_ECH
/* If we have retry configs, then trace those out */
static void ossl_trace_ech_retry_configs(struct Curl_easy *data, SSL* ssl,
                                         int reason)
@@ -4263,34 +4079,35 @@ static void ossl_trace_ech_retry_configs(struct Curl_easy *data, SSL* ssl,
  if(!ECH_ENABLED(data))
    return;
# if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC)
-
  rv = SSL_ech_get1_retry_config(ssl, &rcs, &rcl);
+
  rv = SSL_ech_get_retry_config(ssl, &rcs, &rcl);
# else
  SSL_get0_ech_retry_configs(ssl, &rcs, &rcl);
  rv = (int)rcl;
# endif

  if(rv && rcs) {
+
# define HEXSTR_MAX 800
    char *b64str = NULL;
    size_t blen = 0;

-
    result = Curl_base64_encode((const char *)rcs, rcl, &b64str, &blen);
-
    if(!result && b64str) {
+
    result = Curl_base64_encode((const char *)rcs, rcl,
+
                                &b64str, &blen);
+
    if(!result && b64str)
      infof(data, "ECH: retry_configs %s", b64str);
-
      free(b64str);
-
#if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC)
-
      rv = SSL_ech_get1_status(ssl, &inner, &outer);
-
      infof(data, "ECH: retry_configs for %s from %s, %d %d",
-
            inner ? inner : "NULL", outer ? outer : "NULL", reason, rv);
-
#else
-
      rv = SSL_ech_accepted(ssl);
-
      servername_type = SSL_get_servername_type(ssl);
-
      inner = SSL_get_servername(ssl, servername_type);
-
      SSL_get0_ech_name_override(ssl, &outer, &out_name_len);
-
      /* TODO: get the inner from BoringSSL */
-
      infof(data, "ECH: retry_configs for %s from %s, %d %d",
-
            inner ? inner : "NULL", outer ? outer : "NULL", reason, rv);
-
#endif
-
    }
+
    free(b64str);
+
# if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC)
+
    rv = SSL_ech_get_status(ssl, &inner, &outer);
+
    infof(data, "ECH: retry_configs for %s from %s, %d %d",
+
          inner ? inner : "NULL", outer ? outer : "NULL", reason, rv);
+
# else
+
    rv = SSL_ech_accepted(ssl);
+
    servername_type = SSL_get_servername_type(ssl);
+
    inner = SSL_get_servername(ssl, servername_type);
+
    SSL_get0_ech_name_override(ssl, &outer, &out_name_len);
+
    /* TODO: get the inner from BoringSSL */
+
    infof(data, "ECH: retry_configs for %s from %s, %d %d",
+
          inner ? inner : "NULL", outer ? outer : "NULL", reason, rv);
+
# endif
  }
  else
    infof(data, "ECH: no retry_configs (rv = %d)", rv);
@@ -4413,7 +4230,7 @@ static CURLcode ossl_connect_step2(struct Curl_cfilter *cf,
              ossl_strerror(errdetail, error_buffer, sizeof(error_buffer)));
      }
#endif
-
#ifdef USE_ECH_OPENSSL
+
#ifdef USE_ECH
      else if((lib == ERR_LIB_SSL) &&
# if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC)
              (reason == SSL_R_ECH_REQUIRED)) {
@@ -4479,14 +4296,14 @@ static CURLcode ossl_connect_step2(struct Curl_cfilter *cf,
          negotiated_group_name ? negotiated_group_name : "[blank]",
          OBJ_nid2sn(psigtype_nid));

-
#ifdef USE_ECH_OPENSSL
+
#ifdef USE_ECH
# if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC)
    if(ECH_ENABLED(data)) {
      char *inner = NULL, *outer = NULL;
      const char *status = NULL;
      int rv;

-
      rv = SSL_ech_get1_status(octx->ssl, &inner, &outer);
+
      rv = SSL_ech_get_status(octx->ssl, &inner, &outer);
      switch(rv) {
      case SSL_ECH_STATUS_SUCCESS:
        status = "succeeded";
@@ -4539,7 +4356,7 @@ static CURLcode ossl_connect_step2(struct Curl_cfilter *cf,
      infof(data, "ECH: result: status is not attempted");
   }
# endif  /* !OPENSSL_IS_BORINGSSL && !OPENSSL_IS_AWSLC */
-
#endif  /* USE_ECH_OPENSSL */
+
#endif  /* USE_ECH */

#ifdef HAS_ALPN
    /* Sets data and len to negotiated protocol, len is 0 if no protocol was
@@ -4876,6 +4693,21 @@ CURLcode Curl_oss_check_peer_cert(struct Curl_cfilter *cf,
    /* do not do this after Session ID reuse */
    result = verifystatus(cf, data, octx);
    if(result) {
+
      /* when verifystatus failed, remove the session id from the cache again
+
         if present */
+
      if(!Curl_ssl_cf_is_proxy(cf)) {
+
        void *old_ssl_sessionid = NULL;
+
        bool incache;
+
        Curl_ssl_sessionid_lock(data);
+
        incache = !(Curl_ssl_getsessionid(cf, data, peer,
+
                                          &old_ssl_sessionid, NULL, NULL));
+
        if(incache) {
+
          infof(data, "Remove session ID again from cache");
+
          Curl_ssl_delsessionid(data, old_ssl_sessionid);
+
        }
+
        Curl_ssl_sessionid_unlock(data);
+
      }
+

      X509_free(octx->server_cert);
      octx->server_cert = NULL;
      return result;
@@ -4925,9 +4757,6 @@ static CURLcode ossl_connect_step3(struct Curl_cfilter *cf,
  result = Curl_oss_check_peer_cert(cf, data, octx, &connssl->peer);
  if(!result)
    connssl->connecting_state = ssl_connect_done;
-
  else
-
    /* on error, remove sessions we might have in the pool */
-
    Curl_ssl_scache_remove_all(cf, data, connssl->peer.scache_key);

  return result;
}
@@ -5343,7 +5172,7 @@ static CURLcode ossl_get_channel_binding(struct Curl_easy *data, int sockindex,
#endif
}

-
size_t Curl_ossl_version(char *buffer, size_t size)
+
static size_t ossl_version(char *buffer, size_t size)
{
#ifdef LIBRESSL_VERSION_NUMBER
#ifdef HAVE_OPENSSL_VERSION
@@ -5438,7 +5267,7 @@ static CURLcode ossl_random(struct Curl_easy *data,
  }
  /* RAND_bytes() returns 1 on success, 0 otherwise.  */
  rc = RAND_bytes(entropy, (ossl_valsize_t)curlx_uztosi(length));
-
  return rc == 1 ? CURLE_OK : CURLE_FAILED_INIT;
+
  return (rc == 1 ? CURLE_OK : CURLE_FAILED_INIT);
}

#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && !defined(OPENSSL_NO_SHA256)
@@ -5496,7 +5325,7 @@ const struct Curl_ssl Curl_ssl_openssl = {
#ifdef HAVE_SSL_CTX_SET_CIPHERSUITES
  SSLSUPP_TLS13_CIPHERSUITES |
#endif
-
#ifdef USE_ECH_OPENSSL
+
#ifdef USE_ECH
  SSLSUPP_ECH |
#endif
  SSLSUPP_CA_CACHE |
@@ -5507,7 +5336,8 @@ const struct Curl_ssl Curl_ssl_openssl = {

  ossl_init,                /* init */
  ossl_cleanup,             /* cleanup */
-
  Curl_ossl_version,        /* version */
+
  ossl_version,             /* version */
+
  Curl_none_check_cxn,      /* check_cxn */
  ossl_shutdown,            /* shutdown */
  ossl_data_pending,        /* data_pending */
  ossl_random,              /* random */
@@ -5521,12 +5351,14 @@ const struct Curl_ssl Curl_ssl_openssl = {
  ossl_set_engine,          /* set_engine */
  ossl_set_engine_default,  /* set_engine_default */
  ossl_engines_list,        /* engines_list */
-
  NULL,                     /* false_start */
+
  Curl_none_false_start,    /* false_start */
#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && !defined(OPENSSL_NO_SHA256)
  ossl_sha256sum,           /* sha256sum */
#else
  NULL,                     /* sha256sum */
#endif
+
  NULL,                     /* use of data in this connection */
+
  NULL,                     /* remote of data from this connection */
  ossl_recv,                /* recv decrypted data */
  ossl_send,                /* send data to encrypt */
  ossl_get_channel_binding  /* get_channel_binding */
modified external/curl/lib/vtls/openssl.h
@@ -31,27 +31,12 @@
 * This header should only be needed to get included by vtls.c, openssl.c
 * and ngtcp2.c
 */
-
#include <openssl/opensslv.h>
#include <openssl/ossl_typ.h>
#include <openssl/ssl.h>

#include "urldata.h"

-
/*
-
 * Whether SSL_CTX_set_keylog_callback is available.
-
 * OpenSSL: supported since 1.1.1 https://github.com/openssl/openssl/pull/2287
-
 * BoringSSL: supported since d28f59c27bac (committed 2015-11-19)
-
 * LibreSSL: not supported. 3.5.0+ has a stub function that does nothing.
-
 */
-
#if (OPENSSL_VERSION_NUMBER >= 0x10101000L && \
-
     !defined(LIBRESSL_VERSION_NUMBER)) || \
-
    defined(OPENSSL_IS_BORINGSSL)
-
#define HAVE_KEYLOG_CALLBACK
-
#endif
-

-
struct ssl_peer;
-

-
/* Struct to hold a curl OpenSSL instance */
+
/* Struct to hold a Curl OpenSSL instance */
struct ossl_ctx {
  /* these ones requires specific SSL-types */
  SSL_CTX* ssl_ctx;
@@ -68,8 +53,6 @@ struct ossl_ctx {
  BIT(reused_session);              /* session-ID was reused for this */
};

-
size_t Curl_ossl_version(char *buffer, size_t size);
-

typedef CURLcode Curl_ossl_ctx_setup_cb(struct Curl_cfilter *cf,
                                        struct Curl_easy *data,
                                        void *user_data);
@@ -80,6 +63,7 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
                            struct Curl_cfilter *cf,
                            struct Curl_easy *data,
                            struct ssl_peer *peer,
+
                            int transport, /* TCP or QUIC */
                            const unsigned char *alpn, size_t alpn_len,
                            Curl_ossl_ctx_setup_cb *cb_setup,
                            void *cb_user_data,
@@ -110,10 +94,8 @@ CURLcode Curl_ossl_ctx_configure(struct Curl_cfilter *cf,
 */
CURLcode Curl_ossl_add_session(struct Curl_cfilter *cf,
                               struct Curl_easy *data,
-
                               const char *ssl_peer_key,
-
                               SSL_SESSION *ssl_sessionid,
-
                               int ietf_tls_id,
-
                               const char *alpn);
+
                               const struct ssl_peer *peer,
+
                               SSL_SESSION *ssl_sessionid);

/*
 * Get the server cert, verify it and show it, etc., only call failf() if
modified external/curl/lib/vtls/rustls.c
@@ -1076,24 +1076,27 @@ const struct Curl_ssl Curl_ssl_rustls = {
  SSLSUPP_TLS13_CIPHERSUITES,
  sizeof(struct rustls_ssl_backend_data),

-
  NULL,                            /* init */
-
  NULL,                            /* cleanup */
+
  Curl_none_init,                  /* init */
+
  Curl_none_cleanup,               /* cleanup */
  cr_version,                      /* version */
+
  Curl_none_check_cxn,             /* check_cxn */
  cr_shutdown,                     /* shutdown */
  cr_data_pending,                 /* data_pending */
  cr_random,                       /* random */
-
  NULL,                            /* cert_status_request */
+
  Curl_none_cert_status_request,   /* cert_status_request */
  cr_connect_blocking,             /* connect */
  cr_connect_nonblocking,          /* connect_nonblocking */
  Curl_ssl_adjust_pollset,         /* adjust_pollset */
  cr_get_internals,                /* get_internals */
  cr_close,                        /* close_one */
-
  NULL,                            /* close_all */
-
  NULL,                            /* set_engine */
-
  NULL,                            /* set_engine_default */
-
  NULL,                            /* engines_list */
-
  NULL,                            /* false_start */
+
  Curl_none_close_all,             /* close_all */
+
  Curl_none_set_engine,            /* set_engine */
+
  Curl_none_set_engine_default,    /* set_engine_default */
+
  Curl_none_engines_list,          /* engines_list */
+
  Curl_none_false_start,           /* false_start */
  NULL,                            /* sha256sum */
+
  NULL,                            /* associate_connection */
+
  NULL,                            /* disassociate_connection */
  cr_recv,                         /* recv decrypted data */
  cr_send,                         /* send data to encrypt */
  NULL,                            /* get_channel_binding */
modified external/curl/lib/vtls/schannel.c
@@ -41,7 +41,6 @@
#include "schannel_int.h"
#include "vtls.h"
#include "vtls_int.h"
-
#include "vtls_scache.h"
#include "strcase.h"
#include "sendf.h"
#include "connect.h" /* for the connect timeout */
@@ -149,7 +148,7 @@
 */

#ifndef CALG_SHA_256
-
#define CALG_SHA_256 0x0000800c
+
#  define CALG_SHA_256 0x0000800c
#endif

#ifndef PKCS12_NO_PERSIST_KEY
@@ -955,9 +954,9 @@ schannel_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)

  /* check for an existing reusable credential handle */
  if(ssl_config->primary.cache_session) {
-
    Curl_ssl_scache_lock(data);
-
    if(Curl_ssl_scache_get_obj(cf, data, connssl->peer.scache_key,
-
                               (void **)&old_cred)) {
+
    Curl_ssl_sessionid_lock(data);
+
    if(!Curl_ssl_getsessionid(cf, data, &connssl->peer,
+
                              (void **)&old_cred, NULL, NULL)) {
      backend->cred = old_cred;
      DEBUGF(infof(data, "schannel: reusing existing credential handle"));

@@ -967,7 +966,7 @@ schannel_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
                   "schannel: incremented credential handle refcount = %d",
                   backend->cred->refcount));
    }
-
    Curl_ssl_scache_unlock(data);
+
    Curl_ssl_sessionid_unlock(data);
  }

  if(!backend->cred) {
@@ -1502,11 +1501,12 @@ add_cert_to_certinfo(const CERT_CONTEXT *ccert_context, bool reverse_order,
  return args->result == CURLE_OK;
}

-
static void schannel_session_free(void *sessionid)
+
static void schannel_session_free(void *sessionid, size_t idsize)
{
  /* this is expected to be called under sessionid lock */
  struct Curl_schannel_cred *cred = sessionid;

+
  (void)idsize;
  if(cred) {
    cred->refcount--;
    if(cred->refcount == 0) {
@@ -1599,12 +1599,14 @@ schannel_connect_step3(struct Curl_cfilter *cf, struct Curl_easy *data)

  /* save the current session data for possible reuse */
  if(ssl_config->primary.cache_session) {
-
    Curl_ssl_scache_lock(data);
+
    Curl_ssl_sessionid_lock(data);
    /* Up ref count since call takes ownership */
    backend->cred->refcount++;
-
    result = Curl_ssl_scache_add_obj(cf, data, connssl->peer.scache_key,
-
                                     backend->cred, schannel_session_free);
-
    Curl_ssl_scache_unlock(data);
+
    result = Curl_ssl_set_sessionid(cf, data, &connssl->peer, NULL,
+
                                    backend->cred,
+
                                    sizeof(struct Curl_schannel_cred),
+
                                    schannel_session_free);
+
    Curl_ssl_sessionid_unlock(data);
    if(result)
      return result;
  }
@@ -2273,11 +2275,11 @@ static bool schannel_data_pending(struct Curl_cfilter *cf,
  DEBUGASSERT(backend);

  if(backend->ctxt) /* SSL/TLS is in use */
-
    return backend->decdata_offset > 0 ||
-
           (backend->encdata_offset > 0 && !backend->encdata_is_incomplete) ||
-
           backend->recv_connection_closed ||
-
           backend->recv_sspi_close_notify ||
-
           backend->recv_unrecoverable_err;
+
    return (backend->decdata_offset > 0 ||
+
            (backend->encdata_offset > 0 && !backend->encdata_is_incomplete) ||
+
            backend->recv_connection_closed ||
+
            backend->recv_sspi_close_notify ||
+
            backend->recv_unrecoverable_err);
  else
    return FALSE;
}
@@ -2443,9 +2445,9 @@ static void schannel_close(struct Curl_cfilter *cf, struct Curl_easy *data)

  /* free SSPI Schannel API credential handle */
  if(backend->cred) {
-
    Curl_ssl_scache_lock(data);
-
    schannel_session_free(backend->cred);
-
    Curl_ssl_scache_unlock(data);
+
    Curl_ssl_sessionid_lock(data);
+
    schannel_session_free(backend->cred, 0);
+
    Curl_ssl_sessionid_unlock(data);
    backend->cred = NULL;
  }

@@ -2467,7 +2469,7 @@ static void schannel_close(struct Curl_cfilter *cf, struct Curl_easy *data)

static int schannel_init(void)
{
-
  return Curl_sspi_global_init() == CURLE_OK ? 1 : 0;
+
  return (Curl_sspi_global_init() == CURLE_OK ? 1 : 0);
}

static void schannel_cleanup(void)
@@ -2796,21 +2798,24 @@ const struct Curl_ssl Curl_ssl_schannel = {
  schannel_init,                     /* init */
  schannel_cleanup,                  /* cleanup */
  schannel_version,                  /* version */
+
  Curl_none_check_cxn,               /* check_cxn */
  schannel_shutdown,                 /* shutdown */
  schannel_data_pending,             /* data_pending */
  schannel_random,                   /* random */
-
  NULL,                              /* cert_status_request */
+
  Curl_none_cert_status_request,     /* cert_status_request */
  schannel_connect,                  /* connect */
  schannel_connect_nonblocking,      /* connect_nonblocking */
  Curl_ssl_adjust_pollset,           /* adjust_pollset */
  schannel_get_internals,            /* get_internals */
  schannel_close,                    /* close_one */
-
  NULL,                              /* close_all */
-
  NULL,                              /* set_engine */
-
  NULL,                              /* set_engine_default */
-
  NULL,                              /* engines_list */
-
  NULL,                              /* false_start */
+
  Curl_none_close_all,               /* close_all */
+
  Curl_none_set_engine,              /* set_engine */
+
  Curl_none_set_engine_default,      /* set_engine_default */
+
  Curl_none_engines_list,            /* engines_list */
+
  Curl_none_false_start,             /* false_start */
  schannel_sha256sum,                /* sha256sum */
+
  NULL,                              /* associate_connection */
+
  NULL,                              /* disassociate_connection */
  schannel_recv,                     /* recv decrypted data */
  schannel_send,                     /* send data to encrypt */
  NULL,                              /* get_channel_binding */
modified external/curl/lib/vtls/schannel.h
@@ -30,7 +30,7 @@

#ifdef _MSC_VER
#pragma warning(push)
-
#pragma warning(disable:4201)
+
#pragma warning(disable: 4201)
#endif
#include <subauth.h>
#ifdef _MSC_VER
modified external/curl/lib/vtls/sectransp.c
@@ -38,7 +38,6 @@
#include "multiif.h"
#include "strcase.h"
#include "x509asn1.h"
-
#include "vtls_scache.h"
#include "strerror.h"
#include "cipher_suite.h"

@@ -52,11 +51,6 @@
#pragma GCC diagnostic ignored "-Waddress"
#endif

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
#endif
-

#include <limits.h>

#include <Security/Security.h>
@@ -1021,7 +1015,7 @@ failed:
  return ret;
}

-
static void sectransp_session_free(void *sessionid)
+
static void sectransp_session_free(void *sessionid, size_t idsize)
{
  /* ST, as of iOS 5 and Mountain Lion, has no public method of deleting a
     cached session ID inside the Security framework. There is a private
@@ -1029,6 +1023,7 @@ static void sectransp_session_free(void *sessionid)
     got your application rejected from the App Store due to the use of a
     private API, so the best we can do is free up our own char array that we
     created way back in sectransp_connect_step1... */
+
  (void)idsize;
  Curl_safefree(sessionid);
}

@@ -1337,19 +1332,19 @@ static CURLcode sectransp_connect_step1(struct Curl_cfilter *cf,
    char *ssl_sessionid;
    size_t ssl_sessionid_len;

-
    Curl_ssl_scache_lock(data);
-
    if(Curl_ssl_scache_get_obj(cf, data, connssl->peer.scache_key,
-
                               (void **)&ssl_sessionid)) {
+
    Curl_ssl_sessionid_lock(data);
+
    if(!Curl_ssl_getsessionid(cf, data, &connssl->peer,
+
                              (void **)&ssl_sessionid, &ssl_sessionid_len,
+
                              NULL)) {
      /* we got a session id, use it! */
-
      err = SSLSetPeerID(backend->ssl_ctx, ssl_sessionid,
-
                         strlen(ssl_sessionid));
-
      Curl_ssl_scache_unlock(data);
+
      err = SSLSetPeerID(backend->ssl_ctx, ssl_sessionid, ssl_sessionid_len);
+
      Curl_ssl_sessionid_unlock(data);
      if(err != noErr) {
        failf(data, "SSL: SSLSetPeerID() failed: OSStatus %d", err);
        return CURLE_SSL_CONNECT_ERROR;
      }
-
      else
-
        infof(data, "SSL reusing session ID");
+
      /* Informational message */
+
      infof(data, "SSL reusing session ID");
    }
    /* If there is not one, then let's make one up! This has to be done prior
       to starting the handshake. */
@@ -1363,17 +1358,15 @@ static CURLcode sectransp_connect_step1(struct Curl_cfilter *cf,

      err = SSLSetPeerID(backend->ssl_ctx, ssl_sessionid, ssl_sessionid_len);
      if(err != noErr) {
-
        Curl_ssl_scache_unlock(data);
+
        Curl_ssl_sessionid_unlock(data);
        failf(data, "SSL: SSLSetPeerID() failed: OSStatus %d", err);
        return CURLE_SSL_CONNECT_ERROR;
      }

-
      /* This is all a bit weird, as we have not handshaked yet.
-
       * I hope this backend will go away soon. */
-
      result = Curl_ssl_scache_add_obj(cf, data, connssl->peer.scache_key,
-
                                      (void *)ssl_sessionid,
+
      result = Curl_ssl_set_sessionid(cf, data, &connssl->peer, NULL,
+
                                      ssl_sessionid, ssl_sessionid_len,
                                      sectransp_session_free);
-
      Curl_ssl_scache_unlock(data);
+
      Curl_ssl_sessionid_unlock(data);
      if(result)
        return result;
    }
@@ -1511,11 +1504,9 @@ static CURLcode append_cert_to_array(struct Curl_easy *data,
      case CURLE_OK:
        break;
      case CURLE_PEER_FAILED_VERIFICATION:
-
        CFRelease(cacert);
        return CURLE_SSL_CACERT_BADFILE;
      case CURLE_OUT_OF_MEMORY:
      default:
-
        CFRelease(cacert);
        return result;
    }
    free(certp);
@@ -2433,7 +2424,7 @@ static CURLcode sectransp_shutdown(struct Curl_cfilter *cf,
  struct st_ssl_backend_data *backend =
    (struct st_ssl_backend_data *)connssl->backend;
  CURLcode result = CURLE_OK;
-
  ssize_t nread = 0;
+
  ssize_t nread;
  char buf[1024];
  size_t i;

@@ -2751,33 +2742,32 @@ const struct Curl_ssl Curl_ssl_sectransp = {

  sizeof(struct st_ssl_backend_data),

-
  NULL,                               /* init */
-
  NULL,                               /* cleanup */
+
  Curl_none_init,                     /* init */
+
  Curl_none_cleanup,                  /* cleanup */
  sectransp_version,                  /* version */
+
  Curl_none_check_cxn,                /* check_cxn */
  sectransp_shutdown,                 /* shutdown */
  sectransp_data_pending,             /* data_pending */
  sectransp_random,                   /* random */
-
  NULL,                               /* cert_status_request */
+
  Curl_none_cert_status_request,      /* cert_status_request */
  sectransp_connect,                  /* connect */
  sectransp_connect_nonblocking,      /* connect_nonblocking */
  Curl_ssl_adjust_pollset,            /* adjust_pollset */
  sectransp_get_internals,            /* get_internals */
  sectransp_close,                    /* close_one */
-
  NULL,                               /* close_all */
-
  NULL,                               /* set_engine */
-
  NULL,                               /* set_engine_default */
-
  NULL,                               /* engines_list */
+
  Curl_none_close_all,                /* close_all */
+
  Curl_none_set_engine,               /* set_engine */
+
  Curl_none_set_engine_default,       /* set_engine_default */
+
  Curl_none_engines_list,             /* engines_list */
  sectransp_false_start,              /* false_start */
  sectransp_sha256sum,                /* sha256sum */
+
  NULL,                               /* associate_connection */
+
  NULL,                               /* disassociate_connection */
  sectransp_recv,                     /* recv decrypted data */
  sectransp_send,                     /* send data to encrypt */
  NULL,                               /* get_channel_binding */
};

-
#if defined(__GNUC__) && defined(__APPLE__)
-
#pragma GCC diagnostic pop
-
#endif
-

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
modified external/curl/lib/vtls/vtls.c
@@ -55,7 +55,6 @@

#include "vtls.h" /* generic SSL protos etc */
#include "vtls_int.h"
-
#include "vtls_scache.h"

#include "openssl.h"        /* OpenSSL versions */
#include "gtls.h"           /* GnuTLS versions */
@@ -75,7 +74,6 @@
#include "multiif.h"
#include "timeval.h"
#include "curl_md5.h"
-
#include "curl_sha256.h"
#include "warnless.h"
#include "curl_base64.h"
#include "curl_printf.h"
@@ -90,6 +88,11 @@
#include "memdebug.h"


+
/* convenience macro to check if this handle is using a shared SSL session */
+
#define SSLSESSION_SHARED(data) (data->share &&                        \
+
                                 (data->share->specifier &             \
+
                                  (1<<CURL_LOCK_DATA_SSL_SESSION)))
+

#define CLONE_STRING(var)                    \
  do {                                       \
    if(source->var) {                        \
@@ -423,9 +426,7 @@ int Curl_ssl_init(void)
    return 1;
  init_ssl = TRUE; /* never again */

-
  if(Curl_ssl->init)
-
    return Curl_ssl->init();
-
  return 1;
+
  return Curl_ssl->init();
}

static bool ssl_prefs_check(struct Curl_easy *data)
@@ -462,10 +463,9 @@ static struct ssl_connect_data *cf_ctx_new(struct Curl_easy *data,
  if(!ctx)
    return NULL;

-
  ctx->ssl_impl = Curl_ssl;
  ctx->alpn = alpn;
  Curl_bufq_init2(&ctx->earlydata, CURL_SSL_EARLY_MAX, 1, BUFQ_OPT_NO_SPARES);
-
  ctx->backend = calloc(1, ctx->ssl_impl->sizeof_ssl_backend_data);
+
  ctx->backend = calloc(1, Curl_ssl->sizeof_ssl_backend_data);
  if(!ctx->backend) {
    free(ctx);
    return NULL;
@@ -476,7 +476,7 @@ static struct ssl_connect_data *cf_ctx_new(struct Curl_easy *data,
static void cf_ctx_free(struct ssl_connect_data *ctx)
{
  if(ctx) {
-
    Curl_safefree(ctx->negotiated.alpn);
+
    Curl_safefree(ctx->alpn_negotiated);
    Curl_bufq_free(&ctx->earlydata);
    free(ctx->backend);
    free(ctx);
@@ -494,7 +494,7 @@ static CURLcode ssl_connect(struct Curl_cfilter *cf, struct Curl_easy *data)
  /* mark this is being ssl-enabled from here on. */
  connssl->state = ssl_connection_negotiating;

-
  result = connssl->ssl_impl->connect_blocking(cf, data);
+
  result = Curl_ssl->connect_blocking(cf, data);

  if(!result) {
    DEBUGASSERT(connssl->state == ssl_connection_complete);
@@ -507,13 +507,275 @@ static CURLcode
ssl_connect_nonblocking(struct Curl_cfilter *cf, struct Curl_easy *data,
                        bool *done)
{
-
  struct ssl_connect_data *connssl = cf->ctx;
-

  if(!ssl_prefs_check(data))
    return CURLE_SSL_CONNECT_ERROR;

  /* mark this is being ssl requested from here on. */
-
  return connssl->ssl_impl->connect_nonblocking(cf, data, done);
+
  return Curl_ssl->connect_nonblocking(cf, data, done);
+
}
+

+
/*
+
 * Lock shared SSL session data
+
 */
+
void Curl_ssl_sessionid_lock(struct Curl_easy *data)
+
{
+
  if(SSLSESSION_SHARED(data))
+
    Curl_share_lock(data, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_ACCESS_SINGLE);
+
}
+

+
/*
+
 * Unlock shared SSL session data
+
 */
+
void Curl_ssl_sessionid_unlock(struct Curl_easy *data)
+
{
+
  if(SSLSESSION_SHARED(data))
+
    Curl_share_unlock(data, CURL_LOCK_DATA_SSL_SESSION);
+
}
+

+
/*
+
 * Check if there is a session ID for the given connection in the cache, and if
+
 * there is one suitable, it is provided. Returns TRUE when no entry matched.
+
 */
+
bool Curl_ssl_getsessionid(struct Curl_cfilter *cf,
+
                           struct Curl_easy *data,
+
                           const struct ssl_peer *peer,
+
                           void **ssl_sessionid,
+
                           size_t *idsize, /* set 0 if unknown */
+
                           char **palpn)
+
{
+
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
+
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
+
  struct Curl_ssl_session *check;
+
  size_t i;
+
  long *general_age;
+
  bool no_match = TRUE;
+

+
  *ssl_sessionid = NULL;
+
  if(palpn)
+
    *palpn = NULL;
+
  if(!ssl_config)
+
    return TRUE;
+

+
  DEBUGASSERT(ssl_config->primary.cache_session);
+

+
  if(!ssl_config->primary.cache_session || !data->state.session)
+
    /* session ID reuse is disabled or the session cache has not been
+
       setup */
+
    return TRUE;
+

+
  /* Lock if shared */
+
  if(SSLSESSION_SHARED(data))
+
    general_age = &data->share->sessionage;
+
  else
+
    general_age = &data->state.sessionage;
+

+
  for(i = 0; i < data->set.general_ssl.max_ssl_sessions; i++) {
+
    check = &data->state.session[i];
+
    if(!check->sessionid)
+
      /* not session ID means blank entry */
+
      continue;
+
    if(strcasecompare(peer->hostname, check->name) &&
+
       ((!cf->conn->bits.conn_to_host && !check->conn_to_host) ||
+
        (cf->conn->bits.conn_to_host && check->conn_to_host &&
+
         strcasecompare(cf->conn->conn_to_host.name, check->conn_to_host))) &&
+
       ((!cf->conn->bits.conn_to_port && check->conn_to_port == -1) ||
+
        (cf->conn->bits.conn_to_port && check->conn_to_port != -1 &&
+
         cf->conn->conn_to_port == check->conn_to_port)) &&
+
       (peer->port == check->remote_port) &&
+
       (peer->transport == check->transport) &&
+
       strcasecompare(cf->conn->handler->scheme, check->scheme) &&
+
       match_ssl_primary_config(data, conn_config, &check->ssl_config)) {
+
      /* yes, we have a session ID! */
+
      (*general_age)++;          /* increase general age */
+
      check->age = *general_age; /* set this as used in this age */
+
      *ssl_sessionid = check->sessionid;
+
      if(idsize)
+
        *idsize = check->idsize;
+
      if(palpn)
+
        *palpn = check->alpn;
+
      no_match = FALSE;
+
      break;
+
    }
+
  }
+

+
  CURL_TRC_CF(data, cf, "%s cached session ID for %s://%s:%d",
+
              no_match ? "No" : "Found",
+
              cf->conn->handler->scheme, peer->hostname, peer->port);
+
  return no_match;
+
}
+

+
/*
+
 * Kill a single session ID entry in the cache.
+
 */
+
void Curl_ssl_kill_session(struct Curl_ssl_session *session)
+
{
+
  if(session->sessionid) {
+
    /* defensive check */
+

+
    /* free the ID the SSL-layer specific way */
+
    session->sessionid_free(session->sessionid, session->idsize);
+

+
    session->sessionid = NULL;
+
    session->sessionid_free = NULL;
+
    session->age = 0; /* fresh */
+

+
    free_primary_ssl_config(&session->ssl_config);
+

+
    Curl_safefree(session->name);
+
    Curl_safefree(session->conn_to_host);
+
    Curl_safefree(session->alpn);
+
  }
+
}
+

+
/*
+
 * Delete the given session ID from the cache.
+
 */
+
void Curl_ssl_delsessionid(struct Curl_easy *data, void *ssl_sessionid)
+
{
+
  size_t i;
+

+
  for(i = 0; i < data->set.general_ssl.max_ssl_sessions; i++) {
+
    struct Curl_ssl_session *check = &data->state.session[i];
+

+
    if(check->sessionid == ssl_sessionid) {
+
      Curl_ssl_kill_session(check);
+
      break;
+
    }
+
  }
+
}
+

+
CURLcode Curl_ssl_set_sessionid(struct Curl_cfilter *cf,
+
                                struct Curl_easy *data,
+
                                const struct ssl_peer *peer,
+
                                const char *alpn,
+
                                void *ssl_sessionid,
+
                                size_t idsize,
+
                                Curl_ssl_sessionid_dtor *sessionid_free_cb)
+
{
+
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
+
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
+
  size_t i;
+
  struct Curl_ssl_session *store;
+
  long oldest_age;
+
  char *clone_host = NULL;
+
  char *clone_conn_to_host = NULL;
+
  char *clone_alpn = NULL;
+
  int conn_to_port;
+
  long *general_age;
+
  void *old_sessionid;
+
  size_t old_size;
+
  CURLcode result = CURLE_OUT_OF_MEMORY;
+

+
  DEBUGASSERT(ssl_sessionid);
+
  DEBUGASSERT(sessionid_free_cb);
+

+
  if(!data->state.session) {
+
    sessionid_free_cb(ssl_sessionid, idsize);
+
    return CURLE_OK;
+
  }
+

+
  if(!Curl_ssl_getsessionid(cf, data, peer, &old_sessionid, &old_size, NULL)) {
+
    if((old_size == idsize) &&
+
       ((old_sessionid == ssl_sessionid) ||
+
        (idsize && !memcmp(old_sessionid, ssl_sessionid, idsize)))) {
+
      /* the very same */
+
      sessionid_free_cb(ssl_sessionid, idsize);
+
      return CURLE_OK;
+
    }
+
    Curl_ssl_delsessionid(data, old_sessionid);
+
  }
+

+
  store = &data->state.session[0];
+
  oldest_age = data->state.session[0].age; /* zero if unused */
+
  DEBUGASSERT(ssl_config->primary.cache_session);
+
  (void)ssl_config;
+

+
  clone_host = strdup(peer->hostname);
+
  if(!clone_host)
+
    goto out;
+

+
  if(cf->conn->bits.conn_to_host) {
+
    clone_conn_to_host = strdup(cf->conn->conn_to_host.name);
+
    if(!clone_conn_to_host)
+
      goto out;
+
  }
+

+
  clone_alpn = alpn ? strdup(alpn) : NULL;
+
  if(alpn && !clone_alpn)
+
    goto out;
+

+
  if(cf->conn->bits.conn_to_port)
+
    conn_to_port = cf->conn->conn_to_port;
+
  else
+
    conn_to_port = -1;
+

+
  /* Now we should add the session ID and the hostname to the cache, (remove
+
     the oldest if necessary) */
+

+
  /* If using shared SSL session, lock! */
+
  if(SSLSESSION_SHARED(data)) {
+
    general_age = &data->share->sessionage;
+
  }
+
  else {
+
    general_age = &data->state.sessionage;
+
  }
+

+
  /* find an empty slot for us, or find the oldest */
+
  for(i = 1; (i < data->set.general_ssl.max_ssl_sessions) &&
+
        data->state.session[i].sessionid; i++) {
+
    if(data->state.session[i].age < oldest_age) {
+
      oldest_age = data->state.session[i].age;
+
      store = &data->state.session[i];
+
    }
+
  }
+
  if(i == data->set.general_ssl.max_ssl_sessions)
+
    /* cache is full, we must "kill" the oldest entry! */
+
    Curl_ssl_kill_session(store);
+
  else
+
    store = &data->state.session[i]; /* use this slot */
+

+
  /* now init the session struct wisely */
+
  if(!clone_ssl_primary_config(conn_config, &store->ssl_config)) {
+
    free_primary_ssl_config(&store->ssl_config);
+
    store->sessionid = NULL; /* let caller free sessionid */
+
    goto out;
+
  }
+
  store->sessionid = ssl_sessionid;
+
  store->idsize = idsize;
+
  store->sessionid_free = sessionid_free_cb;
+
  store->age = *general_age;    /* set current age */
+
  /* free it if there is one already present */
+
  free(store->name);
+
  free(store->conn_to_host);
+
  store->name = clone_host;               /* clone hostname */
+
  clone_host = NULL;
+
  store->conn_to_host = clone_conn_to_host; /* clone connect to hostname */
+
  clone_conn_to_host = NULL;
+
  store->conn_to_port = conn_to_port; /* connect to port number */
+
  store->alpn = clone_alpn;
+
  clone_alpn = NULL;
+
  /* port number */
+
  store->remote_port = peer->port;
+
  store->scheme = cf->conn->handler->scheme;
+
  store->transport = peer->transport;
+

+
  result = CURLE_OK;
+

+
out:
+
  free(clone_host);
+
  free(clone_conn_to_host);
+
  free(clone_alpn);
+
  if(result) {
+
    failf(data, "Failed to add Session ID to cache for %s://%s:%d [%s]",
+
          store->scheme, store->name, store->remote_port,
+
          Curl_ssl_cf_is_proxy(cf) ? "PROXY" : "server");
+
    sessionid_free_cb(ssl_sessionid, idsize);
+
    return result;
+
  }
+
  CURL_TRC_CF(data, cf, "Added Session ID to cache for %s://%s:%d [%s]",
+
              store->scheme, store->name, store->remote_port,
+
              Curl_ssl_cf_is_proxy(cf) ? "PROXY" : "server");
+
  return CURLE_OK;
}

CURLcode Curl_ssl_get_channel_binding(struct Curl_easy *data, int sockindex,
@@ -526,8 +788,18 @@ CURLcode Curl_ssl_get_channel_binding(struct Curl_easy *data, int sockindex,

void Curl_ssl_close_all(struct Curl_easy *data)
{
-
  if(Curl_ssl->close_all)
-
    Curl_ssl->close_all(data);
+
  /* kill the session ID cache if not shared */
+
  if(data->state.session && !SSLSESSION_SHARED(data)) {
+
    size_t i;
+
    for(i = 0; i < data->set.general_ssl.max_ssl_sessions; i++)
+
      /* the single-killer function handles empty table slots */
+
      Curl_ssl_kill_session(&data->state.session[i]);
+

+
    /* free the cache data */
+
    Curl_safefree(data->state.session);
+
  }
+

+
  Curl_ssl->close_all(data);
}

void Curl_ssl_adjust_pollset(struct Curl_cfilter *cf, struct Curl_easy *data,
@@ -556,26 +828,43 @@ void Curl_ssl_adjust_pollset(struct Curl_cfilter *cf, struct Curl_easy *data,
 */
CURLcode Curl_ssl_set_engine(struct Curl_easy *data, const char *engine)
{
-
  if(Curl_ssl->set_engine)
-
    return Curl_ssl->set_engine(data, engine);
-
  return CURLE_NOT_BUILT_IN;
+
  return Curl_ssl->set_engine(data, engine);
}

/* Selects the default SSL crypto engine
 */
CURLcode Curl_ssl_set_engine_default(struct Curl_easy *data)
{
-
  if(Curl_ssl->set_engine_default)
-
    return Curl_ssl->set_engine_default(data);
-
  return CURLE_NOT_BUILT_IN;
+
  return Curl_ssl->set_engine_default(data);
}

/* Return list of OpenSSL crypto engine names. */
struct curl_slist *Curl_ssl_engines_list(struct Curl_easy *data)
{
-
  if(Curl_ssl->engines_list)
-
    return Curl_ssl->engines_list(data);
-
  return NULL;
+
  return Curl_ssl->engines_list(data);
+
}
+

+
/*
+
 * This sets up a session ID cache to the specified size. Make sure this code
+
 * is agnostic to what underlying SSL technology we use.
+
 */
+
CURLcode Curl_ssl_initsessions(struct Curl_easy *data, size_t amount)
+
{
+
  struct Curl_ssl_session *session;
+

+
  if(data->state.session)
+
    /* this is just a precaution to prevent multiple inits */
+
    return CURLE_OK;
+

+
  session = calloc(amount, sizeof(struct Curl_ssl_session));
+
  if(!session)
+
    return CURLE_OUT_OF_MEMORY;
+

+
  /* store the info in the SSL section */
+
  data->set.general_ssl.max_ssl_sessions = amount;
+
  data->state.session = session;
+
  data->state.sessionage = 1; /* this is brand new */
+
  return CURLE_OK;
}

static size_t multissl_version(char *buffer, size_t size);
@@ -661,7 +950,7 @@ CURLcode Curl_ssl_push_certinfo_len(struct Curl_easy *data,
  return result;
}

-
/* get length bytes of randomness */
+
/* get 32 bits of random */
CURLcode Curl_ssl_random(struct Curl_easy *data,
                         unsigned char *entropy,
                         size_t length)
@@ -896,18 +1185,96 @@ end:
 */
bool Curl_ssl_cert_status_request(void)
{
-
  if(Curl_ssl->cert_status_request)
-
    return Curl_ssl->cert_status_request();
-
  return FALSE;
+
  return Curl_ssl->cert_status_request();
}

/*
 * Check whether the SSL backend supports false start.
 */
-
bool Curl_ssl_false_start(void)
+
bool Curl_ssl_false_start(struct Curl_easy *data)
+
{
+
  (void)data;
+
  return Curl_ssl->false_start();
+
}
+

+
/*
+
 * Default implementations for unsupported functions.
+
 */
+

+
int Curl_none_init(void)
+
{
+
  return 1;
+
}
+

+
void Curl_none_cleanup(void)
+
{ }
+

+
CURLcode Curl_none_shutdown(struct Curl_cfilter *cf UNUSED_PARAM,
+
                            struct Curl_easy *data UNUSED_PARAM,
+
                            bool send_shutdown UNUSED_PARAM,
+
                            bool *done)
+
{
+
  (void)data;
+
  (void)cf;
+
  (void)send_shutdown;
+
  /* Every SSL backend should have a shutdown implementation. Until we
+
   * have implemented that, we put this fake in place. */
+
  *done = TRUE;
+
  return CURLE_OK;
+
}
+

+
int Curl_none_check_cxn(struct Curl_cfilter *cf, struct Curl_easy *data)
+
{
+
  (void)cf;
+
  (void)data;
+
  return -1;
+
}
+

+
void Curl_none_close_all(struct Curl_easy *data UNUSED_PARAM)
+
{
+
  (void)data;
+
}
+

+
void Curl_none_session_free(void *ptr UNUSED_PARAM)
+
{
+
  (void)ptr;
+
}
+

+
bool Curl_none_data_pending(struct Curl_cfilter *cf UNUSED_PARAM,
+
                            const struct Curl_easy *data UNUSED_PARAM)
+
{
+
  (void)cf;
+
  (void)data;
+
  return 0;
+
}
+

+
bool Curl_none_cert_status_request(void)
+
{
+
  return FALSE;
+
}
+

+
CURLcode Curl_none_set_engine(struct Curl_easy *data UNUSED_PARAM,
+
                              const char *engine UNUSED_PARAM)
+
{
+
  (void)data;
+
  (void)engine;
+
  return CURLE_NOT_BUILT_IN;
+
}
+

+
CURLcode Curl_none_set_engine_default(struct Curl_easy *data UNUSED_PARAM)
+
{
+
  (void)data;
+
  return CURLE_NOT_BUILT_IN;
+
}
+

+
struct curl_slist *Curl_none_engines_list(struct Curl_easy *data UNUSED_PARAM)
+
{
+
  (void)data;
+
  return (struct curl_slist *)NULL;
+
}
+

+
bool Curl_none_false_start(void)
{
-
  if(Curl_ssl->false_start)
-
    return Curl_ssl->false_start();
  return FALSE;
}

@@ -984,23 +1351,26 @@ static const struct Curl_ssl Curl_ssl_multi = {
  (size_t)-1, /* something insanely large to be on the safe side */

  multissl_init,                     /* init */
-
  NULL,                              /* cleanup */
+
  Curl_none_cleanup,                 /* cleanup */
  multissl_version,                  /* version */
-
  NULL,                              /* shutdown */
-
  NULL,                              /* data_pending */
+
  Curl_none_check_cxn,               /* check_cxn */
+
  Curl_none_shutdown,                /* shutdown */
+
  Curl_none_data_pending,            /* data_pending */
  NULL,                              /* random */
-
  NULL,                              /* cert_status_request */
+
  Curl_none_cert_status_request,     /* cert_status_request */
  multissl_connect,                  /* connect */
  multissl_connect_nonblocking,      /* connect_nonblocking */
-
  multissl_adjust_pollset,           /* adjust_pollset */
+
  multissl_adjust_pollset,          /* adjust_pollset */
  multissl_get_internals,            /* get_internals */
  multissl_close,                    /* close_one */
-
  NULL,                              /* close_all */
-
  NULL,                              /* set_engine */
-
  NULL,                              /* set_engine_default */
-
  NULL,                              /* engines_list */
-
  NULL,                              /* false_start */
+
  Curl_none_close_all,               /* close_all */
+
  Curl_none_set_engine,              /* set_engine */
+
  Curl_none_set_engine_default,      /* set_engine_default */
+
  Curl_none_engines_list,            /* engines_list */
+
  Curl_none_false_start,             /* false_start */
  NULL,                              /* sha256sum */
+
  NULL,                              /* associate_connection */
+
  NULL,                              /* disassociate_connection */
  multissl_recv_plain,               /* recv decrypted data */
  multissl_send_plain,               /* send data to encrypt */
  NULL,                              /* get_channel_binding */
@@ -1062,8 +1432,7 @@ void Curl_ssl_cleanup(void)
{
  if(init_ssl) {
    /* only cleanup if we did a previous init */
-
    if(Curl_ssl->cleanup)
-
      Curl_ssl->cleanup();
+
    Curl_ssl->cleanup();
#if defined(CURL_WITH_MULTI_SSL)
    Curl_ssl = &Curl_ssl_multi;
#endif
@@ -1113,8 +1482,8 @@ static size_t multissl_version(char *buffer, size_t size)

static int multissl_setup(const struct Curl_ssl *backend)
{
-
  int i;
-
  char *env;
+
  const char *env;
+
  char *env_tmp;

  if(Curl_ssl != &Curl_ssl_multi)
    return 1;
@@ -1127,31 +1496,25 @@ static int multissl_setup(const struct Curl_ssl *backend)
  if(!available_backends[0])
    return 1;

-
  env = curl_getenv("CURL_SSL_BACKEND");
+
  env = env_tmp = curl_getenv("CURL_SSL_BACKEND");
+
#ifdef CURL_DEFAULT_SSL_BACKEND
+
  if(!env)
+
    env = CURL_DEFAULT_SSL_BACKEND;
+
#endif
  if(env) {
+
    int i;
    for(i = 0; available_backends[i]; i++) {
      if(strcasecompare(env, available_backends[i]->info.name)) {
        Curl_ssl = available_backends[i];
-
        free(env);
+
        free(env_tmp);
        return 0;
      }
    }
  }

-
#ifdef CURL_DEFAULT_SSL_BACKEND
-
  for(i = 0; available_backends[i]; i++) {
-
    if(strcasecompare(CURL_DEFAULT_SSL_BACKEND,
-
                      available_backends[i]->info.name)) {
-
      Curl_ssl = available_backends[i];
-
      free(env);
-
      return 0;
-
    }
-
  }
-
#endif
-

  /* Fall back to first available backend */
  Curl_ssl = available_backends[0];
-
  free(env);
+
  free(env_tmp);
  return 0;
}

@@ -1202,12 +1565,11 @@ CURLsslset Curl_init_sslset_nolock(curl_sslbackend id, const char *name,

void Curl_ssl_peer_cleanup(struct ssl_peer *peer)
{
-
  Curl_safefree(peer->sni);
  if(peer->dispname != peer->hostname)
    free(peer->dispname);
-
  peer->dispname = NULL;
-
  Curl_safefree(peer->hostname);
-
  Curl_safefree(peer->scache_key);
+
  free(peer->sni);
+
  free(peer->hostname);
+
  peer->hostname = peer->sni = peer->dispname = NULL;
  peer->type = CURL_SSL_PEER_DNS;
}

@@ -1215,7 +1577,7 @@ static void cf_close(struct Curl_cfilter *cf, struct Curl_easy *data)
{
  struct ssl_connect_data *connssl = cf->ctx;
  if(connssl) {
-
    connssl->ssl_impl->close(cf, data);
+
    Curl_ssl->close(cf, data);
    connssl->state = ssl_connection_none;
    Curl_ssl_peer_cleanup(&connssl->peer);
  }
@@ -1241,9 +1603,7 @@ static ssl_peer_type get_peer_type(const char *hostname)
  return CURL_SSL_PEER_DNS;
}

-
CURLcode Curl_ssl_peer_init(struct ssl_peer *peer,
-
                            struct Curl_cfilter *cf,
-
                            const char *tls_id,
+
CURLcode Curl_ssl_peer_init(struct ssl_peer *peer, struct Curl_cfilter *cf,
                            int transport)
{
  const char *ehostname, *edispname;
@@ -1305,8 +1665,7 @@ CURLcode Curl_ssl_peer_init(struct ssl_peer *peer,
      peer->sni[len] = 0;
    }
  }
-

-
  result = Curl_ssl_peer_key_make(cf, peer, tls_id, &peer->scache_key);
+
  result = CURLE_OK;

out:
  if(result)
@@ -1369,9 +1728,7 @@ static CURLcode ssl_cf_connect(struct Curl_cfilter *cf,

  *done = FALSE;
  if(!connssl->peer.hostname) {
-
    char tls_id[80];
-
    connssl->ssl_impl->version(tls_id, sizeof(tls_id) - 1);
-
    result = Curl_ssl_peer_init(&connssl->peer, cf, tls_id, TRNSPRT_TCP);
+
    result = Curl_ssl_peer_init(&connssl->peer, cf, TRNSPRT_TCP);
    if(result)
      goto out;
  }
@@ -1386,8 +1743,7 @@ static CURLcode ssl_cf_connect(struct Curl_cfilter *cf,

  if(!result && *done) {
    cf->connected = TRUE;
-
    if(connssl->state == ssl_connection_complete)
-
      connssl->handshake_done = Curl_now();
+
    connssl->handshake_done = Curl_now();
    /* Connection can be deferred when sending early data */
    DEBUGASSERT(connssl->state == ssl_connection_complete ||
                connssl->state == ssl_connection_deferred);
@@ -1401,13 +1757,11 @@ out:
static bool ssl_cf_data_pending(struct Curl_cfilter *cf,
                                const struct Curl_easy *data)
{
-
  struct ssl_connect_data *connssl = cf->ctx;
  struct cf_call_data save;
  bool result;

  CF_DATA_SAVE(save, cf, data);
-
  if(connssl->ssl_impl->data_pending &&
-
     connssl->ssl_impl->data_pending(cf, data))
+
  if(Curl_ssl->data_pending(cf, data))
    result = TRUE;
  else
    result = cf->next->cft->has_data_pending(cf->next, data);
@@ -1419,7 +1773,6 @@ static ssize_t ssl_cf_send(struct Curl_cfilter *cf,
                           struct Curl_easy *data, const void *buf, size_t len,
                           bool eos, CURLcode *err)
{
-
  struct ssl_connect_data *connssl = cf->ctx;
  struct cf_call_data save;
  ssize_t nwritten = 0;

@@ -1428,7 +1781,7 @@ static ssize_t ssl_cf_send(struct Curl_cfilter *cf,
  *err = CURLE_OK;
  if(len > 0) {
    CF_DATA_SAVE(save, cf, data);
-
    nwritten = connssl->ssl_impl->send_plain(cf, data, buf, len, err);
+
    nwritten = Curl_ssl->send_plain(cf, data, buf, len, err);
    CF_DATA_RESTORE(cf, save);
  }
  return nwritten;
@@ -1438,13 +1791,12 @@ static ssize_t ssl_cf_recv(struct Curl_cfilter *cf,
                           struct Curl_easy *data, char *buf, size_t len,
                           CURLcode *err)
{
-
  struct ssl_connect_data *connssl = cf->ctx;
  struct cf_call_data save;
  ssize_t nread;

  CF_DATA_SAVE(save, cf, data);
  *err = CURLE_OK;
-
  nread = connssl->ssl_impl->recv_plain(cf, data, buf, len, err);
+
  nread = Curl_ssl->recv_plain(cf, data, buf, len, err);
  if(nread > 0) {
    DEBUGASSERT((size_t)nread <= len);
  }
@@ -1462,15 +1814,14 @@ static CURLcode ssl_cf_shutdown(struct Curl_cfilter *cf,
                                struct Curl_easy *data,
                                bool *done)
{
-
  struct ssl_connect_data *connssl = cf->ctx;
  CURLcode result = CURLE_OK;

  *done = TRUE;
-
  if(!cf->shutdown && Curl_ssl->shut_down) {
+
  if(!cf->shutdown) {
    struct cf_call_data save;

    CF_DATA_SAVE(save, cf, data);
-
    result = connssl->ssl_impl->shut_down(cf, data, TRUE, done);
+
    result = Curl_ssl->shut_down(cf, data, TRUE, done);
    CURL_TRC_CF(data, cf, "cf_shutdown -> %d, done=%d", result, *done);
    CF_DATA_RESTORE(cf, save);
    cf->shutdown = (result || *done);
@@ -1482,14 +1833,42 @@ static void ssl_cf_adjust_pollset(struct Curl_cfilter *cf,
                                  struct Curl_easy *data,
                                  struct easy_pollset *ps)
{
-
  struct ssl_connect_data *connssl = cf->ctx;
  struct cf_call_data save;

  CF_DATA_SAVE(save, cf, data);
-
  connssl->ssl_impl->adjust_pollset(cf, data, ps);
+
  Curl_ssl->adjust_pollset(cf, data, ps);
  CF_DATA_RESTORE(cf, save);
}

+
static CURLcode ssl_cf_cntrl(struct Curl_cfilter *cf,
+
                             struct Curl_easy *data,
+
                             int event, int arg1, void *arg2)
+
{
+
  struct cf_call_data save;
+

+
  (void)arg1;
+
  (void)arg2;
+
  switch(event) {
+
  case CF_CTRL_DATA_ATTACH:
+
    if(Curl_ssl->attach_data) {
+
      CF_DATA_SAVE(save, cf, data);
+
      Curl_ssl->attach_data(cf, data);
+
      CF_DATA_RESTORE(cf, save);
+
    }
+
    break;
+
  case CF_CTRL_DATA_DETACH:
+
    if(Curl_ssl->detach_data) {
+
      CF_DATA_SAVE(save, cf, data);
+
      Curl_ssl->detach_data(cf, data);
+
      CF_DATA_RESTORE(cf, save);
+
    }
+
    break;
+
  default:
+
    break;
+
  }
+
  return CURLE_OK;
+
}
+

static CURLcode ssl_cf_query(struct Curl_cfilter *cf,
                             struct Curl_easy *data,
                             int query, int *pres1, void *pres2)
@@ -1514,9 +1893,28 @@ static CURLcode ssl_cf_query(struct Curl_cfilter *cf,
static bool cf_ssl_is_alive(struct Curl_cfilter *cf, struct Curl_easy *data,
                            bool *input_pending)
{
+
  struct cf_call_data save;
+
  int result;
  /*
   * This function tries to determine connection status.
+
   *
+
   * Return codes:
+
   *     1 means the connection is still in place
+
   *     0 means the connection has been closed
+
   *    -1 means the connection status is unknown
   */
+
  CF_DATA_SAVE(save, cf, data);
+
  result = Curl_ssl->check_cxn(cf, data);
+
  CF_DATA_RESTORE(cf, save);
+
  if(result > 0) {
+
    *input_pending = TRUE;
+
    return TRUE;
+
  }
+
  if(result == 0) {
+
    *input_pending = FALSE;
+
    return FALSE;
+
  }
+
  /* ssl backend does not know */
  return cf->next ?
    cf->next->cft->is_alive(cf->next, data, input_pending) :
    FALSE; /* pessimistic in absence of data */
@@ -1535,7 +1933,7 @@ struct Curl_cftype Curl_cft_ssl = {
  ssl_cf_data_pending,
  ssl_cf_send,
  ssl_cf_recv,
-
  Curl_cf_def_cntrl,
+
  ssl_cf_cntrl,
  cf_ssl_is_alive,
  Curl_cf_def_conn_keep_alive,
  ssl_cf_query,
@@ -1556,7 +1954,7 @@ struct Curl_cftype Curl_cft_ssl_proxy = {
  ssl_cf_data_pending,
  ssl_cf_send,
  ssl_cf_recv,
-
  Curl_cf_def_cntrl,
+
  ssl_cf_cntrl,
  cf_ssl_is_alive,
  Curl_cf_def_conn_keep_alive,
  Curl_cf_def_query,
@@ -1692,10 +2090,9 @@ void *Curl_ssl_get_internals(struct Curl_easy *data, int sockindex,
    /* get first SSL filter in chain, if any is present */
    cf = get_ssl_filter(data->conn->cfilter[sockindex]);
    if(cf) {
-
      struct ssl_connect_data *connssl = cf->ctx;
      struct cf_call_data save;
      CF_DATA_SAVE(save, cf, data);
-
      result = connssl->ssl_impl->get_internals(cf->ctx, info);
+
      result = Curl_ssl->get_internals(cf->ctx, info);
      CF_DATA_RESTORE(cf, save);
    }
  }
@@ -1728,7 +2125,7 @@ static CURLcode vtls_shutdown_blocking(struct Curl_cfilter *cf,
      return CURLE_OPERATION_TIMEDOUT;
    }

-
    result = connssl->ssl_impl->shut_down(cf, data, send_shutdown, done);
+
    result = Curl_ssl->shut_down(cf, data, send_shutdown, done);
    if(result ||*done)
      goto out;

@@ -1880,28 +2277,28 @@ CURLcode Curl_alpn_set_negotiated(struct Curl_cfilter *cf,
#endif
    ;

-
  if(connssl->negotiated.alpn) {
+
  if(connssl->alpn_negotiated) {
    /* When we ask for a specific ALPN protocol, we need the confirmation
     * of it by the server, as we have installed protocol handler and
     * connection filter chain for exactly this protocol. */
    if(!proto_len) {
      failf(data, "ALPN: asked for '%s' from previous session, "
            "but server did not confirm it. Refusing to continue.",
-
            connssl->negotiated.alpn);
+
            connssl->alpn_negotiated);
      result = CURLE_SSL_CONNECT_ERROR;
      goto out;
    }
-
    else if((strlen(connssl->negotiated.alpn) != proto_len) ||
-
            memcmp(connssl->negotiated.alpn, proto, proto_len)) {
+
    else if((strlen(connssl->alpn_negotiated) != proto_len) ||
+
            memcmp(connssl->alpn_negotiated, proto, proto_len)) {
      failf(data, "ALPN: asked for '%s' from previous session, but server "
            "selected '%.*s'. Refusing to continue.",
-
            connssl->negotiated.alpn, (int)proto_len, proto);
+
            connssl->alpn_negotiated, (int)proto_len, proto);
      result = CURLE_SSL_CONNECT_ERROR;
      goto out;
    }
    /* ALPN is exactly what we asked for, done. */
    infof(data, "ALPN: server confirmed to use '%s'",
-
          connssl->negotiated.alpn);
+
          connssl->alpn_negotiated);
    goto out;
  }

@@ -1912,11 +2309,11 @@ CURLcode Curl_alpn_set_negotiated(struct Curl_cfilter *cf,
      result = CURLE_SSL_CONNECT_ERROR;
      goto out;
    }
-
    connssl->negotiated.alpn = malloc(proto_len + 1);
-
    if(!connssl->negotiated.alpn)
+
    connssl->alpn_negotiated = malloc(proto_len + 1);
+
    if(!connssl->alpn_negotiated)
      return CURLE_OUT_OF_MEMORY;
-
    memcpy(connssl->negotiated.alpn, proto, proto_len);
-
    connssl->negotiated.alpn[proto_len] = 0;
+
    memcpy(connssl->alpn_negotiated, proto, proto_len);
+
    connssl->alpn_negotiated[proto_len] = 0;
  }

  if(proto && proto_len) {
modified external/curl/lib/vtls/vtls.h
@@ -28,9 +28,7 @@
struct connectdata;
struct ssl_config_data;
struct ssl_primary_config;
-
struct Curl_cfilter;
-
struct Curl_easy;
-
struct dynbuf;
+
struct Curl_ssl_session;

#define SSLSUPP_CA_PATH      (1<<0) /* supports CAPATH */
#define SSLSUPP_CERTINFO     (1<<1) /* supports CURLOPT_CERTINFO */
@@ -43,14 +41,6 @@ struct dynbuf;
#define SSLSUPP_CA_CACHE     (1<<8)
#define SSLSUPP_CIPHER_LIST  (1<<9) /* supports TLS 1.0-1.2 ciphersuites */

-
#ifdef USE_ECH
-
# include "curl_base64.h"
-
# define ECH_ENABLED(__data__) \
-
    (__data__->set.tls_ech && \
-
     !(__data__->set.tls_ech & CURLECH_DISABLE)\
-
    )
-
#endif /* USE_ECH */
-

#define ALPN_ACCEPTED "ALPN: server accepted "

#define VTLS_INFOF_NO_ALPN            \
@@ -65,31 +55,9 @@ struct dynbuf;
#define VTLS_INFOF_ALPN_DEFERRED      \
  "ALPN: deferred handshake for early data using '%.*s'."

-
/* IETF defined version numbers used in TLS protocol negotiation */
-
#define CURL_IETF_PROTO_UNKNOWN       0x0
-
#define CURL_IETF_PROTO_SSL3          0x0300
-
#define CURL_IETF_PROTO_TLS1          0x0301
-
#define CURL_IETF_PROTO_TLS1_1        0x0302
-
#define CURL_IETF_PROTO_TLS1_2        0x0303
-
#define CURL_IETF_PROTO_TLS1_3        0x0304
-
#define CURL_IETF_PROTO_DTLS1         0xFEFF
-
#define CURL_IETF_PROTO_DTLS1_2       0xFEFD
-

-
typedef enum {
-
  CURL_SSL_PEER_DNS,
-
  CURL_SSL_PEER_IPV4,
-
  CURL_SSL_PEER_IPV6
-
} ssl_peer_type;
-

-
struct ssl_peer {
-
  char *hostname;        /* hostname for verification */
-
  char *dispname;        /* display version of hostname */
-
  char *sni;             /* SNI version of hostname or NULL if not usable */
-
  char *scache_key;      /* for lookups in session cache */
-
  ssl_peer_type type;    /* type of the peer information */
-
  int port;              /* port we are talking to */
-
  int transport;         /* one of TRNSPRT_* defines */
-
};
+
/* Curl_multi SSL backend-specific data; declared differently by each SSL
+
   backend */
+
struct Curl_cfilter;

CURLsslset Curl_init_sslset_nolock(curl_sslbackend id, const char *name,
                                   const curl_ssl_backend ***avail);
@@ -145,9 +113,7 @@ void Curl_ssl_conn_config_update(struct Curl_easy *data, bool for_proxy);
 * Init SSL peer information for filter. Can be called repeatedly.
 */
CURLcode Curl_ssl_peer_init(struct ssl_peer *peer,
-
                            struct Curl_cfilter *cf,
-
                            const char *tls_id,
-
                            int transport);
+
                            struct Curl_cfilter *cf, int transport);
/**
 * Free all allocated data and reset peer information.
 */
@@ -164,6 +130,8 @@ CURLcode Curl_ssl_set_engine(struct Curl_easy *data, const char *engine);
CURLcode Curl_ssl_set_engine_default(struct Curl_easy *data);
struct curl_slist *Curl_ssl_engines_list(struct Curl_easy *data);

+
/* init the SSL session ID cache */
+
CURLcode Curl_ssl_initsessions(struct Curl_easy *, size_t);
void Curl_ssl_version(char *buffer, size_t size);

/* Certificate information list handling. */
@@ -179,6 +147,33 @@ CURLcode Curl_ssl_push_certinfo(struct Curl_easy *data, int certnum,

/* Functions to be used by SSL library adaptation functions */

+
/* Lock session cache mutex.
+
 * Call this before calling other Curl_ssl_*session* functions
+
 * Caller should unlock this mutex as soon as possible, as it may block
+
 * other SSL connection from making progress.
+
 * The purpose of explicitly locking SSL session cache data is to allow
+
 * individual SSL engines to manage session lifetime in their specific way.
+
 */
+
void Curl_ssl_sessionid_lock(struct Curl_easy *data);
+

+
/* Unlock session cache mutex */
+
void Curl_ssl_sessionid_unlock(struct Curl_easy *data);
+

+
/* Kill a single session ID entry in the cache
+
 * Sessionid mutex must be locked (see Curl_ssl_sessionid_lock).
+
 * This will call engine-specific curlssl_session_free function, which must
+
 * take sessionid object ownership from sessionid cache
+
 * (e.g. decrement refcount).
+
 */
+
void Curl_ssl_kill_session(struct Curl_ssl_session *session);
+
/* delete a session from the cache
+
 * Sessionid mutex must be locked (see Curl_ssl_sessionid_lock).
+
 * This will call engine-specific curlssl_session_free function, which must
+
 * take sessionid object ownership from sessionid cache
+
 * (e.g. decrement refcount).
+
 */
+
void Curl_ssl_delsessionid(struct Curl_easy *data, void *ssl_sessionid);
+

/* get N random bytes into the buffer */
CURLcode Curl_ssl_random(struct Curl_easy *data, unsigned char *buffer,
                         size_t length);
@@ -189,7 +184,7 @@ CURLcode Curl_pin_peer_pubkey(struct Curl_easy *data,

bool Curl_ssl_cert_status_request(void);

-
bool Curl_ssl_false_start(void);
+
bool Curl_ssl_false_start(struct Curl_easy *data);

/* The maximum size of the SSL channel binding is 85 bytes, as defined in
 * RFC 5929, Section 4.1. The 'tls-server-end-point:' prefix is 21 bytes long,
@@ -270,10 +265,12 @@ extern struct Curl_cftype Curl_cft_ssl_proxy;
#define Curl_ssl_set_engine(x,y) CURLE_NOT_BUILT_IN
#define Curl_ssl_set_engine_default(x) CURLE_NOT_BUILT_IN
#define Curl_ssl_engines_list(x) NULL
+
#define Curl_ssl_initsessions(x,y) CURLE_OK
#define Curl_ssl_free_certinfo(x) Curl_nop_stmt
+
#define Curl_ssl_kill_session(x) Curl_nop_stmt
#define Curl_ssl_random(x,y,z) ((void)x, CURLE_NOT_BUILT_IN)
#define Curl_ssl_cert_status_request() FALSE
-
#define Curl_ssl_false_start() FALSE
+
#define Curl_ssl_false_start(a) FALSE
#define Curl_ssl_get_internals(a,b,c,d) NULL
#define Curl_ssl_supports(a,b) FALSE
#define Curl_ssl_cfilter_add(a,b,c) CURLE_NOT_BUILT_IN
modified external/curl/lib/vtls/vtls_int.h
@@ -26,11 +26,9 @@
#include "curl_setup.h"
#include "cfilters.h"
#include "urldata.h"
-
#include "vtls.h"

#ifdef USE_SSL

-
struct Curl_ssl;
struct ssl_connect_data;

/* see https://www.iana.org/assignments/tls-extensiontype-values/ */
@@ -105,15 +103,12 @@ typedef enum {

/* Information in each SSL cfilter context: cf->ctx */
struct ssl_connect_data {
-
  const struct Curl_ssl *ssl_impl;  /* TLS backend for this filter */
-
  struct ssl_peer peer;             /* peer the filter talks to */
+
  struct ssl_peer peer;
  const struct alpn_spec *alpn;     /* ALPN to use or NULL for none */
  void *backend;                    /* vtls backend specific props */
  struct cf_call_data call_data;    /* data handle used in current call */
  struct curltime handshake_done;   /* time when handshake finished */
-
  struct {
-
    char *alpn;                     /* ALPN value or NULL */
-
  } negotiated;
+
  char *alpn_negotiated;            /* negotiated ALPN value or NULL */
  struct bufq earlydata;            /* earlydata to be send to peer */
  size_t earlydata_max;             /* max earlydata allowed by peer */
  size_t earlydata_skip;            /* sending bytes to skip when earlydata
@@ -147,6 +142,7 @@ struct Curl_ssl {
  void (*cleanup)(void);

  size_t (*version)(char *buffer, size_t size);
+
  int (*check_cxn)(struct Curl_cfilter *cf, struct Curl_easy *data);
  CURLcode (*shut_down)(struct Curl_cfilter *cf, struct Curl_easy *data,
                        bool send_shutdown, bool *done);
  bool (*data_pending)(struct Curl_cfilter *cf,
@@ -178,6 +174,10 @@ struct Curl_ssl {
  bool (*false_start)(void);
  CURLcode (*sha256sum)(const unsigned char *input, size_t inputlen,
                    unsigned char *sha256sum, size_t sha256sumlen);
+

+
  bool (*attach_data)(struct Curl_cfilter *cf, struct Curl_easy *data);
+
  void (*detach_data)(struct Curl_cfilter *cf, struct Curl_easy *data);
+

  ssize_t (*recv_plain)(struct Curl_cfilter *cf, struct Curl_easy *data,
                        char *buf, size_t len, CURLcode *code);
  ssize_t (*send_plain)(struct Curl_cfilter *cf, struct Curl_easy *data,
@@ -190,14 +190,66 @@ struct Curl_ssl {

extern const struct Curl_ssl *Curl_ssl;

+

+
int Curl_none_init(void);
+
void Curl_none_cleanup(void);
+
CURLcode Curl_none_shutdown(struct Curl_cfilter *cf, struct Curl_easy *data,
+
                            bool send_shutdown, bool *done);
+
int Curl_none_check_cxn(struct Curl_cfilter *cf, struct Curl_easy *data);
+
void Curl_none_close_all(struct Curl_easy *data);
+
void Curl_none_session_free(void *ptr);
+
bool Curl_none_data_pending(struct Curl_cfilter *cf,
+
                            const struct Curl_easy *data);
+
bool Curl_none_cert_status_request(void);
+
CURLcode Curl_none_set_engine(struct Curl_easy *data, const char *engine);
+
CURLcode Curl_none_set_engine_default(struct Curl_easy *data);
+
struct curl_slist *Curl_none_engines_list(struct Curl_easy *data);
+
bool Curl_none_false_start(void);
void Curl_ssl_adjust_pollset(struct Curl_cfilter *cf, struct Curl_easy *data,
-
                             struct easy_pollset *ps);
+
                              struct easy_pollset *ps);

/**
 * Get the SSL filter below the given one or NULL if there is none.
 */
bool Curl_ssl_cf_is_proxy(struct Curl_cfilter *cf);

+
/* extract a session ID
+
 * Sessionid mutex must be locked (see Curl_ssl_sessionid_lock).
+
 * Caller must make sure that the ownership of returned sessionid object
+
 * is properly taken (e.g. its refcount is incremented
+
 * under sessionid mutex).
+
 * @param cf      the connection filter wanting to use it
+
 * @param data    the transfer involved
+
 * @param peer    the peer the filter wants to talk to
+
 * @param sessionid on return the TLS session
+
 * @param idsize  on return the size of the TLS session data
+
 * @param palpn   on return the ALPN string used by the session,
+
 *                set to NULL when not interested
+
 */
+
bool Curl_ssl_getsessionid(struct Curl_cfilter *cf,
+
                           struct Curl_easy *data,
+
                           const struct ssl_peer *peer,
+
                           void **ssl_sessionid,
+
                           size_t *idsize, /* set 0 if unknown */
+
                           char **palpn);
+

+
/* Set a TLS session ID for `peer`. Replaces an existing session ID if
+
 * not already the same.
+
 * Sessionid mutex must be locked (see Curl_ssl_sessionid_lock).
+
 * Call takes ownership of `ssl_sessionid`, using `sessionid_free_cb`
+
 * to deallocate it. Is called in all outcomes, either right away or
+
 * later when the session cache is cleaned up.
+
 * Caller must ensure that it has properly shared ownership of this sessionid
+
 * object with cache (e.g. incrementing refcount on success)
+
 */
+
CURLcode Curl_ssl_set_sessionid(struct Curl_cfilter *cf,
+
                                struct Curl_easy *data,
+
                                const struct ssl_peer *peer,
+
                                const char *alpn,
+
                                void *sessionid,
+
                                size_t sessionid_size,
+
                                Curl_ssl_sessionid_dtor *sessionid_free_cb);
+

#endif /* USE_SSL */

#endif /* HEADER_CURL_VTLS_INT_H */
deleted external/curl/lib/vtls/vtls_scache.c
@@ -1,1170 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-

-
#include "curl_setup.h"
-

-
#ifdef USE_SSL
-

-
#ifdef HAVE_SYS_TYPES_H
-
#include <sys/types.h>
-
#endif
-
#ifdef HAVE_SYS_STAT_H
-
#include <sys/stat.h>
-
#endif
-
#ifdef HAVE_FCNTL_H
-
#include <fcntl.h>
-
#endif
-

-
#include "urldata.h"
-
#include "cfilters.h"
-

-
#include "vtls.h" /* generic SSL protos etc */
-
#include "vtls_int.h"
-
#include "vtls_scache.h"
-
#include "vtls_spack.h"
-

-
#include "strcase.h"
-
#include "url.h"
-
#include "llist.h"
-
#include "share.h"
-
#include "curl_trc.h"
-
#include "curl_sha256.h"
-
#include "rand.h"
-
#include "warnless.h"
-
#include "curl_printf.h"
-
#include "strdup.h"
-

-
/* The last #include files should be: */
-
#include "curl_memory.h"
-
#include "memdebug.h"
-

-
/* a peer+tls-config we cache sessions for */
-
struct Curl_ssl_scache_peer {
-
  char *ssl_peer_key;      /* id for peer + relevant TLS configuration */
-
  char *clientcert;
-
  char *srp_username;
-
  char *srp_password;
-
  struct Curl_llist sessions;
-
  void *sobj;              /* object instance or NULL */
-
  Curl_ssl_scache_obj_dtor *sobj_free; /* free `sobj` callback */
-
  unsigned char key_salt[CURL_SHA256_DIGEST_LENGTH]; /* for entry export */
-
  unsigned char key_hmac[CURL_SHA256_DIGEST_LENGTH]; /* for entry export */
-
  size_t max_sessions;
-
  long age;                /* just a number, the higher the more recent */
-
  BIT(hmac_set);           /* if key_salt and key_hmac are present */
-
};
-

-
struct Curl_ssl_scache {
-
  struct Curl_ssl_scache_peer *peers;
-
  size_t peer_count;
-
  int default_lifetime_secs;
-
  long age;
-
};
-

-
static void cf_ssl_scache_clear_session(struct Curl_ssl_session *s)
-
{
-
  if(s->sdata) {
-
    free((void *)s->sdata);
-
    s->sdata = NULL;
-
  }
-
  s->sdata_len = 0;
-
  if(s->quic_tp) {
-
    free((void *)s->quic_tp);
-
    s->quic_tp = NULL;
-
  }
-
  s->quic_tp_len = 0;
-
  s->ietf_tls_id = 0;
-
  s->valid_until = 0;
-
  Curl_safefree(s->alpn);
-
}
-

-
static void cf_ssl_scache_sesssion_ldestroy(void *udata, void *s)
-
{
-
  (void)udata;
-
  cf_ssl_scache_clear_session(s);
-
  free(s);
-
}
-

-
CURLcode
-
Curl_ssl_session_create(unsigned char *sdata, size_t sdata_len,
-
                        int ietf_tls_id, const char *alpn,
-
                        curl_off_t valid_until, size_t earlydata_max,
-
                        struct Curl_ssl_session **psession)
-
{
-
  return Curl_ssl_session_create2(sdata, sdata_len, ietf_tls_id, alpn,
-
                                  valid_until, earlydata_max,
-
                                  NULL, 0, psession);
-
}
-

-
CURLcode
-
Curl_ssl_session_create2(unsigned char *sdata, size_t sdata_len,
-
                         int ietf_tls_id, const char *alpn,
-
                         curl_off_t valid_until, size_t earlydata_max,
-
                         unsigned char *quic_tp, size_t quic_tp_len,
-
                         struct Curl_ssl_session **psession)
-
{
-
  struct Curl_ssl_session *s;
-

-
  if(!sdata || !sdata_len) {
-
    free(sdata);
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
-
  }
-

-
  *psession = NULL;
-
  s = calloc(1, sizeof(*s));
-
  if(!s) {
-
    free(sdata);
-
    free(quic_tp);
-
    return CURLE_OUT_OF_MEMORY;
-
  }
-

-
  s->ietf_tls_id = ietf_tls_id;
-
  s->valid_until = valid_until;
-
  s->earlydata_max = earlydata_max;
-
  s->sdata = sdata;
-
  s->sdata_len = sdata_len;
-
  s->quic_tp = quic_tp;
-
  s->quic_tp_len = quic_tp_len;
-
  if(alpn) {
-
    s->alpn = strdup(alpn);
-
    if(!s->alpn) {
-
      cf_ssl_scache_sesssion_ldestroy(NULL, s);
-
      return CURLE_OUT_OF_MEMORY;
-
    }
-
  }
-
  *psession = s;
-
  return CURLE_OK;
-
}
-

-
void Curl_ssl_session_destroy(struct Curl_ssl_session *s)
-
{
-
  if(s) {
-
    /* if in the list, the list destructor takes care of it */
-
    if(Curl_node_llist(&s->list))
-
      Curl_node_remove(&s->list);
-
    else {
-
      cf_ssl_scache_sesssion_ldestroy(NULL, s);
-
    }
-
  }
-
}
-

-
static void cf_ssl_scache_clear_peer(struct Curl_ssl_scache_peer *peer)
-
{
-
  Curl_llist_destroy(&peer->sessions, NULL);
-
  if(peer->sobj) {
-
    DEBUGASSERT(peer->sobj_free);
-
    if(peer->sobj_free)
-
      peer->sobj_free(peer->sobj);
-
    peer->sobj = NULL;
-
  }
-
  peer->sobj_free = NULL;
-
  Curl_safefree(peer->clientcert);
-
#ifdef USE_TLS_SRP
-
  Curl_safefree(peer->srp_username);
-
  Curl_safefree(peer->srp_password);
-
#endif
-
  Curl_safefree(peer->ssl_peer_key);
-
  peer->age = 0;
-
  peer->hmac_set = FALSE;
-
}
-

-
static void cf_ssl_scache_peer_set_obj(struct Curl_ssl_scache_peer *peer,
-
                                       void *sobj,
-
                                       Curl_ssl_scache_obj_dtor *sobj_free)
-
{
-
  DEBUGASSERT(peer);
-
  if(peer->sobj_free) {
-
    peer->sobj_free(peer->sobj);
-
  }
-
  peer->sobj = sobj;
-
  peer->sobj_free = sobj_free;
-
}
-

-
static CURLcode
-
cf_ssl_scache_peer_init(struct Curl_ssl_scache_peer *peer,
-
                        const char *ssl_peer_key,
-
                        const char *clientcert,
-
                        const char *srp_username,
-
                        const char *srp_password,
-
                        const unsigned char *salt,
-
                        const unsigned char *hmac)
-
{
-
  CURLcode result = CURLE_OUT_OF_MEMORY;
-

-
  DEBUGASSERT(!peer->ssl_peer_key);
-
  if(ssl_peer_key) {
-
    peer->ssl_peer_key = strdup(ssl_peer_key);
-
    if(!peer->ssl_peer_key)
-
      goto out;
-
    peer->hmac_set = FALSE;
-
  }
-
  else if(salt && hmac) {
-
    memcpy(peer->key_salt, salt, sizeof(peer->key_salt));
-
    memcpy(peer->key_hmac, hmac, sizeof(peer->key_hmac));
-
    peer->hmac_set = TRUE;
-
  }
-
  else {
-
    result = CURLE_BAD_FUNCTION_ARGUMENT;
-
    goto out;
-
  }
-
  if(clientcert) {
-
    peer->clientcert = strdup(clientcert);
-
    if(!peer->clientcert)
-
      goto out;
-
  }
-
  if(srp_username) {
-
    peer->srp_username = strdup(srp_username);
-
    if(!peer->srp_username)
-
      goto out;
-
  }
-
  if(srp_password) {
-
    peer->srp_password = strdup(srp_password);
-
    if(!peer->srp_password)
-
      goto out;
-
  }
-
  result = CURLE_OK;
-
out:
-
  if(result)
-
    cf_ssl_scache_clear_peer(peer);
-
  return result;
-
}
-

-
static void cf_scache_session_remove(struct Curl_ssl_scache_peer *peer,
-
                                     struct Curl_ssl_session *s)
-
{
-
  (void)peer;
-
  DEBUGASSERT(Curl_node_llist(&s->list) == &peer->sessions);
-
  Curl_ssl_session_destroy(s);
-
}
-

-
static bool cf_scache_session_expired(struct Curl_ssl_session *s,
-
                                      curl_off_t now)
-
{
-
  return (s->valid_until > 0) && (s->valid_until < now);
-
}
-

-
static void cf_scache_peer_remove_expired(struct Curl_ssl_scache_peer *peer,
-
                                          curl_off_t now)
-
{
-
  struct Curl_llist_node *n = Curl_llist_head(&peer->sessions);
-
  while(n) {
-
    struct Curl_ssl_session *s = Curl_node_elem(n);
-
    n = Curl_node_next(n);
-
    if(cf_scache_session_expired(s, now))
-
      cf_scache_session_remove(peer, s);
-
  }
-
}
-

-
static void cf_scache_peer_remove_non13(struct Curl_ssl_scache_peer *peer)
-
{
-
  struct Curl_llist_node *n = Curl_llist_head(&peer->sessions);
-
  while(n) {
-
    struct Curl_ssl_session *s = Curl_node_elem(n);
-
    n = Curl_node_next(n);
-
    if(s->ietf_tls_id != CURL_IETF_PROTO_TLS1_3)
-
      cf_scache_session_remove(peer, s);
-
  }
-
}
-

-
CURLcode Curl_ssl_scache_create(size_t max_peers,
-
                                size_t max_sessions_per_peer,
-
                                struct Curl_ssl_scache **pscache)
-
{
-
  struct Curl_ssl_scache *scache;
-
  struct Curl_ssl_scache_peer *peers;
-
  size_t i;
-

-
  *pscache = NULL;
-
  peers = calloc(max_peers, sizeof(*peers));
-
  if(!peers)
-
    return CURLE_OUT_OF_MEMORY;
-

-
  scache = calloc(1, sizeof(*scache));
-
  if(!scache) {
-
    free(peers);
-
    return CURLE_OUT_OF_MEMORY;
-
  }
-

-
  scache->default_lifetime_secs = (24*60*60); /* 1 day */
-
  scache->peer_count = max_peers;
-
  scache->peers = peers;
-
  scache->age = 1;
-
  for(i = 0; i < scache->peer_count; ++i) {
-
    scache->peers[i].max_sessions = max_sessions_per_peer;
-
    Curl_llist_init(&scache->peers[i].sessions,
-
                    cf_ssl_scache_sesssion_ldestroy);
-
  }
-

-
  *pscache = scache;
-
  return CURLE_OK;
-
}
-

-
void Curl_ssl_scache_destroy(struct Curl_ssl_scache *scache)
-
{
-
  if(scache) {
-
    size_t i;
-
    for(i = 0; i < scache->peer_count; ++i) {
-
      cf_ssl_scache_clear_peer(&scache->peers[i]);
-
    }
-
    free(scache->peers);
-
    free(scache);
-
  }
-
}
-

-
/* Lock shared SSL session data */
-
void Curl_ssl_scache_lock(struct Curl_easy *data)
-
{
-
  if(CURL_SHARE_ssl_scache(data))
-
    Curl_share_lock(data, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_ACCESS_SINGLE);
-
}
-

-
/* Unlock shared SSL session data */
-
void Curl_ssl_scache_unlock(struct Curl_easy *data)
-
{
-
  if(CURL_SHARE_ssl_scache(data))
-
    Curl_share_unlock(data, CURL_LOCK_DATA_SSL_SESSION);
-
}
-

-
static CURLcode cf_ssl_peer_key_add_path(struct dynbuf *buf,
-
                                          const char *name,
-
                                          char *path)
-
{
-
  if(path && path[0]) {
-
    /* We try to add absolute paths, so that the session key can stay
-
     * valid when used in another process with different CWD. However,
-
     * when a path does not exist, this does not work. Then, we add
-
     * the path as is. */
-
#ifdef _WIN32
-
    char abspath[_MAX_PATH];
-
    if(_fullpath(abspath, path, _MAX_PATH))
-
      return Curl_dyn_addf(buf, ":%s-%s", name, abspath);
-
#else
-
    if(path[0] != '/') {
-
      char *abspath = realpath(path, NULL);
-
      if(abspath) {
-
        CURLcode r = Curl_dyn_addf(buf, ":%s-%s", name, abspath);
-
        (free)(abspath); /* allocated by libc, free without memdebug */
-
        return r;
-
      }
-
    }
-
#endif
-
    return Curl_dyn_addf(buf, ":%s-%s", name, path);
-
  }
-
  return CURLE_OK;
-
}
-

-
static CURLcode cf_ssl_peer_key_add_hash(struct dynbuf *buf,
-
                                          const char *name,
-
                                          struct curl_blob *blob)
-
{
-
  CURLcode r = CURLE_OK;
-
  if(blob && blob->len) {
-
    unsigned char hash[CURL_SHA256_DIGEST_LENGTH];
-
    size_t i;
-

-
    r = Curl_dyn_addf(buf, ":%s-", name);
-
    if(r)
-
      goto out;
-
    r = Curl_sha256it(hash, blob->data, blob->len);
-
    if(r)
-
      goto out;
-
    for(i = 0; i < CURL_SHA256_DIGEST_LENGTH; ++i) {
-
      r = Curl_dyn_addf(buf, "%02x", hash[i]);
-
      if(r)
-
        goto out;
-
    }
-
  }
-
out:
-
  return r;
-
}
-

-
CURLcode Curl_ssl_peer_key_make(struct Curl_cfilter *cf,
-
                                const struct ssl_peer *peer,
-
                                const char *tls_id,
-
                                char **ppeer_key)
-
{
-
  struct ssl_primary_config *ssl = Curl_ssl_cf_get_primary_config(cf);
-
  struct dynbuf buf;
-
  size_t key_len;
-
  CURLcode r;
-

-
  *ppeer_key = NULL;
-
  Curl_dyn_init(&buf, 10 * 1024);
-

-
  r = Curl_dyn_addf(&buf, "%s:%d", peer->hostname, peer->port);
-
  if(r)
-
    goto out;
-

-
  switch(peer->transport) {
-
  case TRNSPRT_TCP:
-
    break;
-
  case TRNSPRT_UDP:
-
    r = Curl_dyn_add(&buf, ":UDP");
-
    break;
-
  case TRNSPRT_QUIC:
-
    r = Curl_dyn_add(&buf, ":QUIC");
-
    break;
-
  case TRNSPRT_UNIX:
-
    r = Curl_dyn_add(&buf, ":UNIX");
-
    break;
-
  default:
-
    r = Curl_dyn_addf(&buf, ":TRNSPRT-%d", peer->transport);
-
    break;
-
  }
-
  if(r)
-
    goto out;
-

-
  if(!ssl->verifypeer) {
-
    r = Curl_dyn_add(&buf, ":NO-VRFY-PEER");
-
    if(r)
-
      goto out;
-
  }
-
  if(!ssl->verifyhost) {
-
    r = Curl_dyn_add(&buf, ":NO-VRFY-HOST");
-
    if(r)
-
      goto out;
-
  }
-
  if(ssl->verifystatus) {
-
    r = Curl_dyn_add(&buf, ":VRFY-STATUS");
-
    if(r)
-
      goto out;
-
  }
-
  if(!ssl->verifypeer || !ssl->verifyhost) {
-
    if(cf->conn->bits.conn_to_host) {
-
      r = Curl_dyn_addf(&buf, ":CHOST-%s", cf->conn->conn_to_host.name);
-
      if(r)
-
        goto out;
-
    }
-
    if(cf->conn->bits.conn_to_port) {
-
      r = Curl_dyn_addf(&buf, ":CPORT-%d", cf->conn->conn_to_port);
-
      if(r)
-
        goto out;
-
    }
-
  }
-

-
  if(ssl->version || ssl->version_max) {
-
    r = Curl_dyn_addf(&buf, ":TLSVER-%d-%d", ssl->version,
-
                      (ssl->version_max >> 16));
-
    if(r)
-
      goto out;
-
  }
-
  if(ssl->ssl_options) {
-
    r = Curl_dyn_addf(&buf, ":TLSOPT-%x", ssl->ssl_options);
-
    if(r)
-
      goto out;
-
  }
-
  if(ssl->cipher_list) {
-
    r = Curl_dyn_addf(&buf, ":CIPHER-%s", ssl->cipher_list);
-
    if(r)
-
      goto out;
-
  }
-
  if(ssl->cipher_list13) {
-
    r = Curl_dyn_addf(&buf, ":CIPHER13-%s", ssl->cipher_list13);
-
    if(r)
-
      goto out;
-
  }
-
  if(ssl->curves) {
-
    r = Curl_dyn_addf(&buf, ":CURVES-%s", ssl->curves);
-
    if(r)
-
      goto out;
-
  }
-
  if(ssl->verifypeer) {
-
    r = cf_ssl_peer_key_add_path(&buf, "CA", ssl->CAfile);
-
    if(r)
-
      goto out;
-
    r = cf_ssl_peer_key_add_path(&buf, "CApath", ssl->CApath);
-
    if(r)
-
      goto out;
-
    r = cf_ssl_peer_key_add_path(&buf, "CRL", ssl->CRLfile);
-
    if(r)
-
      goto out;
-
    r = cf_ssl_peer_key_add_path(&buf, "Issuer", ssl->issuercert);
-
    if(r)
-
      goto out;
-
    if(ssl->cert_blob) {
-
      r = cf_ssl_peer_key_add_hash(&buf, "CertBlob", ssl->cert_blob);
-
      if(r)
-
        goto out;
-
    }
-
    if(ssl->ca_info_blob) {
-
      r = cf_ssl_peer_key_add_hash(&buf, "CAInfoBlob", ssl->ca_info_blob);
-
      if(r)
-
        goto out;
-
    }
-
    if(ssl->issuercert_blob) {
-
      r = cf_ssl_peer_key_add_hash(&buf, "IssuerBlob", ssl->issuercert_blob);
-
      if(r)
-
        goto out;
-
    }
-
  }
-
  if(ssl->pinned_key && ssl->pinned_key[0]) {
-
    r = Curl_dyn_addf(&buf, ":Pinned-%s", ssl->pinned_key);
-
    if(r)
-
      goto out;
-
  }
-

-
  if(ssl->clientcert && ssl->clientcert[0]) {
-
    r = Curl_dyn_add(&buf, ":CCERT");
-
    if(r)
-
      goto out;
-
  }
-
#ifdef USE_TLS_SRP
-
  if(ssl->username || ssl->password) {
-
    r = Curl_dyn_add(&buf, ":SRP-AUTH");
-
    if(r)
-
      goto out;
-
  }
-
#endif
-

-
  if(!tls_id || !tls_id[0]) {
-
    r = CURLE_FAILED_INIT;
-
    goto out;
-
  }
-
  r = Curl_dyn_addf(&buf, ":IMPL-%s", tls_id);
-
  if(r)
-
    goto out;
-

-
  *ppeer_key = Curl_dyn_take(&buf, &key_len);
-
  /* we just added printable char, and dynbuf always 0 terminates,
-
   * no need to track length */
-

-

-
out:
-
  Curl_dyn_free(&buf);
-
  return r;
-
}
-

-
static bool cf_ssl_scache_match_auth(struct Curl_ssl_scache_peer *peer,
-
                                     struct ssl_primary_config *conn_config)
-
{
-
  if(!conn_config) {
-
    if(peer->clientcert)
-
      return FALSE;
-
#ifdef USE_TLS_SRP
-
    if(peer->srp_username || peer->srp_password)
-
      return FALSE;
-
#endif
-
    return TRUE;
-
  }
-
  else if(!Curl_safecmp(peer->clientcert, conn_config->clientcert))
-
    return FALSE;
-
#ifdef USE_TLS_SRP
-
   if(Curl_timestrcmp(peer->srp_username, conn_config->username) ||
-
      Curl_timestrcmp(peer->srp_password, conn_config->password))
-
     return FALSE;
-
#endif
-
  return TRUE;
-
}
-

-
static CURLcode
-
cf_ssl_find_peer_by_key(struct Curl_easy *data,
-
                        struct Curl_ssl_scache *scache,
-
                        const char *ssl_peer_key,
-
                        struct ssl_primary_config *conn_config,
-
                        struct Curl_ssl_scache_peer **ppeer)
-
{
-
  size_t i, peer_key_len = 0;
-
  CURLcode result = CURLE_OK;
-

-
  *ppeer = NULL;
-
  /* check for entries with known peer_key */
-
  for(i = 0; scache && i < scache->peer_count; i++) {
-
    if(scache->peers[i].ssl_peer_key &&
-
       strcasecompare(ssl_peer_key, scache->peers[i].ssl_peer_key) &&
-
       cf_ssl_scache_match_auth(&scache->peers[i], conn_config)) {
-
      /* yes, we have a cached session for this! */
-
      *ppeer = &scache->peers[i];
-
      goto out;
-
    }
-
  }
-
  /* check for entries with HMAC set but no known peer_key */
-
  for(i = 0; scache && i < scache->peer_count; i++) {
-
    if(!scache->peers[i].ssl_peer_key &&
-
       scache->peers[i].hmac_set &&
-
       cf_ssl_scache_match_auth(&scache->peers[i], conn_config)) {
-
      /* possible entry with unknown peer_key, check hmac */
-
      unsigned char my_hmac[CURL_SHA256_DIGEST_LENGTH];
-
      if(!peer_key_len) /* we are lazy */
-
        peer_key_len = strlen(ssl_peer_key);
-
      result = Curl_hmacit(&Curl_HMAC_SHA256,
-
                           scache->peers[i].key_salt,
-
                           sizeof(scache->peers[i].key_salt),
-
                           (const unsigned char *)ssl_peer_key,
-
                           peer_key_len,
-
                           my_hmac);
-
      if(result)
-
        goto out;
-
      if(!memcmp(scache->peers[i].key_hmac, my_hmac, sizeof(my_hmac))) {
-
        /* remember peer_key for future lookups */
-
        CURL_TRC_SSLS(data, "peer entry %zu key recovered: %s",
-
                      i, ssl_peer_key);
-
        scache->peers[i].ssl_peer_key = strdup(ssl_peer_key);
-
        if(!scache->peers[i].ssl_peer_key) {
-
          result = CURLE_OUT_OF_MEMORY;
-
          goto out;
-
        }
-
        *ppeer = &scache->peers[i];
-
        goto out;
-
      }
-
    }
-
  }
-
  CURL_TRC_SSLS(data, "peer not found for %s", ssl_peer_key);
-
out:
-
  return result;
-
}
-

-
static struct Curl_ssl_scache_peer *
-
cf_ssl_get_free_peer(struct Curl_ssl_scache *scache)
-
{
-
  struct Curl_ssl_scache_peer *peer = NULL;
-
  size_t i;
-

-
  /* find empty or oldest peer */
-
  for(i = 0; i < scache->peer_count; ++i) {
-
    /* free peer entry? */
-
    if(!scache->peers[i].ssl_peer_key && !scache->peers[i].hmac_set) {
-
      peer = &scache->peers[i];
-
      break;
-
    }
-
    /* peer without sessions and obj */
-
    if(!scache->peers[i].sobj &&
-
       !Curl_llist_count(&scache->peers[i].sessions)) {
-
      peer = &scache->peers[i];
-
      break;
-
    }
-
    /* remember "oldest" peer */
-
    if(!peer || (scache->peers[i].age < peer->age)) {
-
      peer = &scache->peers[i];
-
    }
-
  }
-
  DEBUGASSERT(peer);
-
  if(peer)
-
    cf_ssl_scache_clear_peer(peer);
-
  return peer;
-
}
-

-
static CURLcode
-
cf_ssl_add_peer(struct Curl_easy *data,
-
                struct Curl_ssl_scache *scache,
-
                const char *ssl_peer_key,
-
                struct ssl_primary_config *conn_config,
-
                struct Curl_ssl_scache_peer **ppeer)
-
{
-
  struct Curl_ssl_scache_peer *peer = NULL;
-
  CURLcode result = CURLE_OK;
-

-
  *ppeer = NULL;
-
  if(ssl_peer_key) {
-
    result = cf_ssl_find_peer_by_key(data, scache, ssl_peer_key, conn_config,
-
                                     &peer);
-
    if(result || !scache->peer_count)
-
      return result;
-
  }
-

-
  if(peer) {
-
    *ppeer = peer;
-
    return CURLE_OK;
-
  }
-

-
  peer = cf_ssl_get_free_peer(scache);
-
  if(peer) {
-
    const char *ccert = conn_config ? conn_config->clientcert : NULL;
-
    const char *username = NULL, *password = NULL;
-
#ifdef USE_TLS_SRP
-
    username = conn_config ? conn_config->username : NULL;
-
    password = conn_config ? conn_config->password : NULL;
-
#endif
-
    result = cf_ssl_scache_peer_init(peer, ssl_peer_key, ccert,
-
                                     username, password, NULL, NULL);
-
    if(result)
-
      goto out;
-
    /* all ready */
-
    *ppeer = peer;
-
    result = CURLE_OK;
-
  }
-

-
out:
-
  if(result) {
-
    cf_ssl_scache_clear_peer(peer);
-
  }
-
  return result;
-
}
-

-
static void cf_scache_peer_add_session(struct Curl_ssl_scache_peer *peer,
-
                                       struct Curl_ssl_session *s,
-
                                       curl_off_t now)
-
{
-
  /* A session not from TLSv1.3 replaces all other. */
-
  if(s->ietf_tls_id != CURL_IETF_PROTO_TLS1_3) {
-
    Curl_llist_destroy(&peer->sessions, NULL);
-
    Curl_llist_append(&peer->sessions, s, &s->list);
-
  }
-
  else {
-
    /* Expire existing, append, trim from head to obey max_sessions */
-
    cf_scache_peer_remove_expired(peer, now);
-
    cf_scache_peer_remove_non13(peer);
-
    Curl_llist_append(&peer->sessions, s, &s->list);
-
    while(Curl_llist_count(&peer->sessions) > peer->max_sessions) {
-
      Curl_node_remove(Curl_llist_head(&peer->sessions));
-
    }
-
  }
-
}
-

-
static CURLcode cf_scache_add_session(struct Curl_cfilter *cf,
-
                                      struct Curl_easy *data,
-
                                      struct Curl_ssl_scache *scache,
-
                                      const char *ssl_peer_key,
-
                                      struct Curl_ssl_session *s)
-
{
-
  struct Curl_ssl_scache_peer *peer = NULL;
-
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
-
  CURLcode result = CURLE_OUT_OF_MEMORY;
-
  curl_off_t now = (curl_off_t)time(NULL);
-
  curl_off_t max_lifetime;
-

-
  if(!scache || !scache->peer_count) {
-
    Curl_ssl_session_destroy(s);
-
    return CURLE_OK;
-
  }
-

-
  if(s->valid_until <= 0)
-
    s->valid_until = now + scache->default_lifetime_secs;
-

-
  max_lifetime = (s->ietf_tls_id == CURL_IETF_PROTO_TLS1_3) ?
-
                 CURL_SCACHE_MAX_13_LIFETIME_SEC :
-
                 CURL_SCACHE_MAX_12_LIFETIME_SEC;
-
  if(s->valid_until > (now + max_lifetime))
-
    s->valid_until = now + max_lifetime;
-

-
  if(cf_scache_session_expired(s, now)) {
-
    CURL_TRC_SSLS(data, "add, session already expired");
-
    Curl_ssl_session_destroy(s);
-
    return CURLE_OK;
-
  }
-

-
  result = cf_ssl_add_peer(data, scache, ssl_peer_key, conn_config, &peer);
-
  if(result || !peer) {
-
    CURL_TRC_SSLS(data, "unable to add scache peer: %d", result);
-
    Curl_ssl_session_destroy(s);
-
    goto out;
-
  }
-

-
  cf_scache_peer_add_session(peer, s, now);
-

-
out:
-
  if(result) {
-
    failf(data, "[SCACHE] failed to add session for %s, error=%d",
-
          ssl_peer_key, result);
-
  }
-
  else
-
    CURL_TRC_SSLS(data, "added session for %s [proto=0x%x, "
-
                  "valid_secs=%" FMT_OFF_T ", alpn=%s, earlydata=%zu, "
-
                  "quic_tp=%s], peer has %zu sessions now",
-
                  ssl_peer_key, s->ietf_tls_id, s->valid_until - now,
-
                  s->alpn, s->earlydata_max, s->quic_tp ? "yes" : "no",
-
                  peer ? Curl_llist_count(&peer->sessions) : 0);
-
  return result;
-
}
-

-
CURLcode Curl_ssl_scache_put(struct Curl_cfilter *cf,
-
                             struct Curl_easy *data,
-
                             const char *ssl_peer_key,
-
                             struct Curl_ssl_session *s)
-
{
-
  struct Curl_ssl_scache *scache = data->state.ssl_scache;
-
  struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data);
-
  CURLcode result;
-
  DEBUGASSERT(ssl_config);
-

-
  if(!scache || !ssl_config->primary.cache_session) {
-
    Curl_ssl_session_destroy(s);
-
    return CURLE_OK;
-
  }
-

-
  Curl_ssl_scache_lock(data);
-
  result = cf_scache_add_session(cf, data, scache, ssl_peer_key, s);
-
  Curl_ssl_scache_unlock(data);
-
  return result;
-
}
-

-
void Curl_ssl_scache_return(struct Curl_cfilter *cf,
-
                           struct Curl_easy *data,
-
                           const char *ssl_peer_key,
-
                           struct Curl_ssl_session *s)
-
{
-
  /* See RFC 8446 C.4:
-
   * "Clients SHOULD NOT reuse a ticket for multiple connections." */
-
  if(s && s->ietf_tls_id < 0x304)
-
    (void)Curl_ssl_scache_put(cf, data, ssl_peer_key, s);
-
  else
-
    Curl_ssl_session_destroy(s);
-
}
-

-
CURLcode Curl_ssl_scache_take(struct Curl_cfilter *cf,
-
                              struct Curl_easy *data,
-
                              const char *ssl_peer_key,
-
                              struct Curl_ssl_session **ps)
-
{
-
  struct Curl_ssl_scache *scache = data->state.ssl_scache;
-
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
-
  struct Curl_ssl_scache_peer *peer = NULL;
-
  struct Curl_llist_node *n;
-
  struct Curl_ssl_session *s = NULL;
-
  CURLcode result;
-

-
  *ps = NULL;
-
  if(!scache)
-
    return CURLE_OK;
-

-
  Curl_ssl_scache_lock(data);
-
  result = cf_ssl_find_peer_by_key(data, scache, ssl_peer_key, conn_config,
-
                                   &peer);
-
  if(!result && peer) {
-
    cf_scache_peer_remove_expired(peer, (curl_off_t)time(NULL));
-
    n = Curl_llist_head(&peer->sessions);
-
    if(n) {
-
      s = Curl_node_take_elem(n);
-
      (scache->age)++;            /* increase general age */
-
      peer->age = scache->age; /* set this as used in this age */
-
    }
-
  }
-
  Curl_ssl_scache_unlock(data);
-
  if(s) {
-
    *ps = s;
-
    CURL_TRC_SSLS(data, "took session for %s [proto=0x%x, "
-
                  "alpn=%s, earlydata=%zu, quic_tp=%s], %zu sessions remain",
-
                  ssl_peer_key, s->ietf_tls_id, s->alpn,
-
                  s->earlydata_max, s->quic_tp ? "yes" : "no",
-
                  Curl_llist_count(&peer->sessions));
-
  }
-
  else {
-
    CURL_TRC_SSLS(data, "no cached session for %s", ssl_peer_key);
-
  }
-
  return result;
-
}
-

-
CURLcode Curl_ssl_scache_add_obj(struct Curl_cfilter *cf,
-
                                 struct Curl_easy *data,
-
                                 const char *ssl_peer_key,
-
                                 void *sobj,
-
                                 Curl_ssl_scache_obj_dtor *sobj_free)
-
{
-
  struct Curl_ssl_scache *scache = data->state.ssl_scache;
-
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
-
  struct Curl_ssl_scache_peer *peer = NULL;
-
  CURLcode result;
-

-
  DEBUGASSERT(sobj);
-
  DEBUGASSERT(sobj_free);
-

-
  result = cf_ssl_add_peer(data, scache, ssl_peer_key, conn_config, &peer);
-
  if(result || !peer) {
-
    CURL_TRC_SSLS(data, "unable to add scache peer: %d", result);
-
    goto out;
-
  }
-

-
  cf_ssl_scache_peer_set_obj(peer, sobj, sobj_free);
-
  sobj = NULL;  /* peer took ownership */
-

-
out:
-
  if(sobj && sobj_free)
-
    sobj_free(sobj);
-
  return result;
-
}
-

-
bool Curl_ssl_scache_get_obj(struct Curl_cfilter *cf,
-
                             struct Curl_easy *data,
-
                             const char *ssl_peer_key,
-
                             void **sobj)
-
{
-
  struct Curl_ssl_scache *scache = data->state.ssl_scache;
-
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
-
  struct Curl_ssl_scache_peer *peer = NULL;
-
  CURLcode result;
-

-
  *sobj = NULL;
-
  if(!scache)
-
    return FALSE;
-

-
  result = cf_ssl_find_peer_by_key(data, scache, ssl_peer_key, conn_config,
-
                                   &peer);
-
  if(result)
-
    return FALSE;
-

-
  if(peer)
-
    *sobj = peer->sobj;
-

-
  CURL_TRC_SSLS(data, "%s cached session for '%s'",
-
                *sobj ? "Found" : "No", ssl_peer_key);
-
  return !!*sobj;
-
}
-

-
void Curl_ssl_scache_remove_all(struct Curl_cfilter *cf,
-
                                struct Curl_easy *data,
-
                                const char *ssl_peer_key)
-
{
-
  struct Curl_ssl_scache *scache = data->state.ssl_scache;
-
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
-
  struct Curl_ssl_scache_peer *peer = NULL;
-
  CURLcode result;
-

-
  (void)cf;
-
  if(!scache)
-
    return;
-

-
  Curl_ssl_scache_lock(data);
-
  result = cf_ssl_find_peer_by_key(data, scache, ssl_peer_key, conn_config,
-
                                   &peer);
-
  if(!result && peer)
-
    cf_ssl_scache_clear_peer(peer);
-
  Curl_ssl_scache_unlock(data);
-
}
-

-
#ifdef USE_SSLS_EXPORT
-

-
#define CURL_SSL_TICKET_MAX   (16*1024)
-

-
static CURLcode cf_ssl_scache_peer_set_hmac(struct Curl_ssl_scache_peer *peer)
-
{
-
  CURLcode result;
-

-
  DEBUGASSERT(peer);
-
  if(!peer->ssl_peer_key)
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
-

-
  result = Curl_rand(NULL, peer->key_salt, sizeof(peer->key_salt));
-
  if(result)
-
    return result;
-

-
  result = Curl_hmacit(&Curl_HMAC_SHA256,
-
                       peer->key_salt, sizeof(peer->key_salt),
-
                       (const unsigned char *)peer->ssl_peer_key,
-
                       strlen(peer->ssl_peer_key),
-
                       peer->key_hmac);
-
  if(!result)
-
    peer->hmac_set = TRUE;
-
  return result;
-
}
-

-
static CURLcode
-
cf_ssl_find_peer_by_hmac(struct Curl_ssl_scache *scache,
-
                         const unsigned char *salt,
-
                         const unsigned char *hmac,
-
                         struct Curl_ssl_scache_peer **ppeer)
-
{
-
  size_t i;
-
  CURLcode result = CURLE_OK;
-

-
  *ppeer = NULL;
-
  /* look for an entry that matches salt+hmac exactly or has a known
-
   * ssl_peer_key which salt+hmac's to the same. */
-
  for(i = 0; scache && i < scache->peer_count; i++) {
-
    struct Curl_ssl_scache_peer *peer = &scache->peers[i];
-
    if(!cf_ssl_scache_match_auth(peer, NULL))
-
      continue;
-
    if(scache->peers[i].hmac_set &&
-
       !memcmp(peer->key_salt, salt, sizeof(peer->key_salt)) &&
-
       !memcmp(peer->key_hmac, hmac, sizeof(peer->key_hmac))) {
-
      /* found exact match, return */
-
      *ppeer = peer;
-
      goto out;
-
    }
-
    else if(peer->ssl_peer_key) {
-
      unsigned char my_hmac[CURL_SHA256_DIGEST_LENGTH];
-
      /* compute hmac for the passed salt */
-
      result = Curl_hmacit(&Curl_HMAC_SHA256,
-
                           salt, sizeof(peer->key_salt),
-
                           (const unsigned char *)peer->ssl_peer_key,
-
                           strlen(peer->ssl_peer_key),
-
                           my_hmac);
-
      if(result)
-
        goto out;
-
      if(!memcmp(my_hmac, hmac, sizeof(my_hmac))) {
-
        /* cryptohash match, take over salt+hmac if no set and return */
-
        if(!peer->hmac_set) {
-
          memcpy(peer->key_salt, salt, sizeof(peer->key_salt));
-
          memcpy(peer->key_hmac, hmac, sizeof(peer->key_hmac));
-
          peer->hmac_set = TRUE;
-
        }
-
        *ppeer = peer;
-
        goto out;
-
      }
-
    }
-
  }
-
out:
-
  return result;
-
}
-

-
CURLcode Curl_ssl_session_import(struct Curl_easy *data,
-
                                 const char *ssl_peer_key,
-
                                 const unsigned char *shmac, size_t shmac_len,
-
                                 const unsigned char *sdata, size_t sdata_len)
-
{
-
  struct Curl_ssl_scache *scache = data->state.ssl_scache;
-
  struct Curl_ssl_scache_peer *peer = NULL;
-
  struct Curl_ssl_session *s = NULL;
-
  bool locked = FALSE;
-
  CURLcode r;
-

-
  if(!scache) {
-
    r = CURLE_BAD_FUNCTION_ARGUMENT;
-
    goto out;
-
  }
-
  if(!ssl_peer_key && (!shmac || !shmac_len)) {
-
    r = CURLE_BAD_FUNCTION_ARGUMENT;
-
    goto out;
-
  }
-

-
  r = Curl_ssl_session_unpack(data, sdata, sdata_len, &s);
-
  if(r)
-
    goto out;
-

-
  Curl_ssl_scache_lock(data);
-
  locked = TRUE;
-

-
  if(ssl_peer_key) {
-
    r = cf_ssl_add_peer(data, scache, ssl_peer_key, NULL, &peer);
-
    if(r)
-
      goto out;
-
  }
-
  else if(shmac_len != (sizeof(peer->key_salt) + sizeof(peer->key_hmac))) {
-
    /* Either salt+hmac was garbled by caller or is from a curl version
-
     * that does things differently */
-
    r = CURLE_BAD_FUNCTION_ARGUMENT;
-
    goto out;
-
  }
-
  else {
-
    const unsigned char *salt = shmac;
-
    const unsigned char *hmac = shmac + sizeof(peer->key_salt);
-

-
    r = cf_ssl_find_peer_by_hmac(scache, salt, hmac, &peer);
-
    if(r)
-
      goto out;
-
    if(!peer) {
-
      peer = cf_ssl_get_free_peer(scache);
-
      if(peer) {
-
        r = cf_ssl_scache_peer_init(peer, ssl_peer_key, NULL,
-
                                    NULL, NULL, salt, hmac);
-
        if(r)
-
          goto out;
-
      }
-
    }
-
  }
-

-
  if(peer) {
-
    cf_scache_peer_add_session(peer, s, time(NULL));
-
    s = NULL; /* peer is now owner */
-
    CURL_TRC_SSLS(data, "successfully imported ticket for peer %s, now "
-
                  "with %zu tickets",
-
                  peer->ssl_peer_key ? peer->ssl_peer_key : "without key",
-
                  Curl_llist_count(&peer->sessions));
-
  }
-

-
out:
-
  if(locked)
-
    Curl_ssl_scache_unlock(data);
-
  Curl_ssl_session_destroy(s);
-
  return r;
-
}
-

-
CURLcode Curl_ssl_session_export(struct Curl_easy *data,
-
                                 curl_ssls_export_cb *export_fn,
-
                                 void *userptr)
-
{
-
  struct Curl_ssl_scache *scache = data->state.ssl_scache;
-
  struct Curl_ssl_scache_peer *peer;
-
  struct dynbuf sbuf, hbuf;
-
  struct Curl_llist_node *n;
-
  size_t i, npeers = 0, ntickets = 0;
-
  curl_off_t now = time(NULL);
-
  CURLcode r = CURLE_OK;
-

-
  if(!export_fn)
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
-
  if(!scache)
-
    return CURLE_OK;
-

-
  Curl_ssl_scache_lock(data);
-

-
  Curl_dyn_init(&hbuf, (CURL_SHA256_DIGEST_LENGTH * 2) + 1);
-
  Curl_dyn_init(&sbuf, CURL_SSL_TICKET_MAX);
-

-
  for(i = 0; scache && i < scache->peer_count; i++) {
-
    peer = &scache->peers[i];
-
    if(!peer->ssl_peer_key && !peer->hmac_set)
-
      continue;  /* skip free entry */
-
    if(peer->clientcert || peer->srp_username || peer->srp_password)
-
      continue;  /* not exporting those */
-

-
    Curl_dyn_reset(&hbuf);
-
    cf_scache_peer_remove_expired(peer, now);
-
    n = Curl_llist_head(&peer->sessions);
-
    if(n)
-
      ++npeers;
-
    while(n) {
-
      struct Curl_ssl_session *s = Curl_node_elem(n);
-
      if(!peer->hmac_set) {
-
        r = cf_ssl_scache_peer_set_hmac(peer);
-
        if(r)
-
          goto out;
-
      }
-
      if(!Curl_dyn_len(&hbuf)) {
-
        r = Curl_dyn_addn(&hbuf, peer->key_salt, sizeof(peer->key_salt));
-
        if(r)
-
          goto out;
-
        r = Curl_dyn_addn(&hbuf, peer->key_hmac, sizeof(peer->key_hmac));
-
        if(r)
-
          goto out;
-
      }
-
      Curl_dyn_reset(&sbuf);
-
      r = Curl_ssl_session_pack(data, s, &sbuf);
-
      if(r)
-
        goto out;
-

-
      r = export_fn(data, userptr, peer->ssl_peer_key,
-
                    Curl_dyn_uptr(&hbuf), Curl_dyn_len(&hbuf),
-
                    Curl_dyn_uptr(&sbuf), Curl_dyn_len(&sbuf),
-
                    s->valid_until, s->ietf_tls_id,
-
                    s->alpn, s->earlydata_max);
-
      if(r)
-
        goto out;
-
      ++ntickets;
-
      n = Curl_node_next(n);
-
    }
-

-
  }
-
  r = CURLE_OK;
-
  CURL_TRC_SSLS(data, "exported %zu session tickets for %zu peers",
-
                ntickets, npeers);
-

-
out:
-
  Curl_ssl_scache_unlock(data);
-
  Curl_dyn_free(&hbuf);
-
  Curl_dyn_free(&sbuf);
-
  return r;
-
}
-

-
#endif /* USE_SSLS_EXPORT */
-

-
#endif /* USE_SSL */
deleted external/curl/lib/vtls/vtls_scache.h
@@ -1,218 +0,0 @@
-
#ifndef HEADER_CURL_VTLS_SCACHE_H
-
#define HEADER_CURL_VTLS_SCACHE_H
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "curl_setup.h"
-
#include "cfilters.h"
-
#include "urldata.h"
-

-
#ifdef USE_SSL
-

-
struct Curl_cfilter;
-
struct Curl_easy;
-
struct Curl_ssl_scache;
-
struct Curl_ssl_session;
-
struct ssl_peer;
-

-
/* RFC 8446 (TLSv1.3) restrict lifetime to one week max, for
-
 * other, less secure versions, we restrict it to a day */
-
#define CURL_SCACHE_MAX_13_LIFETIME_SEC    (60*60*24*7)
-
#define CURL_SCACHE_MAX_12_LIFETIME_SEC    (60*60*24)
-

-
/* Create a session cache for up to max_peers endpoints with a total
-
 * of up to max_sessions SSL sessions per peer */
-
CURLcode Curl_ssl_scache_create(size_t max_peers,
-
                                size_t max_sessions_per_peer,
-
                                struct Curl_ssl_scache **pscache);
-

-
void Curl_ssl_scache_destroy(struct Curl_ssl_scache *scache);
-

-
/* Create a key from peer and TLS configuration information that is
-
 * unique for how the connection filter wants to establish a TLS
-
 * connection to the peer.
-
 * If the filter is a TLS proxy filter, it will use the proxy relevant
-
 * information.
-
 * @param cf      the connection filter wanting to use it
-
 * @param peer    the peer the filter wants to talk to
-
 * @param tls_id  identifier of TLS implementation for sessions. Should
-
 *                include full version if session data from other versions
-
 *                is to be avoided.
-
 * @param ppeer_key on successful return, the key generated
-
 */
-
CURLcode Curl_ssl_peer_key_make(struct Curl_cfilter *cf,
-
                                const struct ssl_peer *peer,
-
                                const char *tls_id,
-
                                char **ppeer_key);
-

-
/* Lock session cache mutex.
-
 * Call this before calling other Curl_ssl_*session* functions
-
 * Caller should unlock this mutex as soon as possible, as it may block
-
 * other SSL connection from making progress.
-
 * The purpose of explicitly locking SSL session cache data is to allow
-
 * individual SSL engines to manage session lifetime in their specific way.
-
 */
-
void Curl_ssl_scache_lock(struct Curl_easy *data);
-

-
/* Unlock session cache mutex */
-
void Curl_ssl_scache_unlock(struct Curl_easy *data);
-

-
/* Get TLS session object from the cache for the ssl_peer_ey.
-
 * scache mutex must be locked (see Curl_ssl_scache_lock).
-
 * Caller must make sure that the ownership of returned session object
-
 * is properly taken (e.g. its refcount is incremented
-
 * under scache mutex).
-
 * @param cf      the connection filter wanting to use it
-
 * @param data    the transfer involved
-
 * @param ssl_peer_key the key for lookup
-
 * @param sobj    on return, the object for the peer key or NULL
-
 */
-
bool Curl_ssl_scache_get_obj(struct Curl_cfilter *cf,
-
                             struct Curl_easy *data,
-
                             const char *ssl_peer_key,
-
                             void **sobj);
-

-
typedef void Curl_ssl_scache_obj_dtor(void *sobj);
-

-
/* Add a TLS session related object to the cache.
-
 * Replaces an existing object with the same peer_key.
-
 * scache mutex must be locked (see Curl_ssl_scache_lock).
-
 * Call takes ownership of `sobj`, using `sobj_dtor_cb`
-
 * to deallocate it. Is called in all outcomes, either right away or
-
 * later when the session cache is cleaned up.
-
 * Caller must ensure that it has properly shared ownership of `sobj`
-
 * with cache (e.g. incrementing refcount on success)
-
 * @param cf      the connection filter wanting to use it
-
 * @param data    the transfer involved
-
 * @param ssl_peer_key the key for lookup
-
 * @param sobj    the TLS session object
-
 * @param sobj_free_cb callback to free the session objectt
-
 */
-
CURLcode Curl_ssl_scache_add_obj(struct Curl_cfilter *cf,
-
                                 struct Curl_easy *data,
-
                                 const char *ssl_peer_key,
-
                                 void *sobj,
-
                                 Curl_ssl_scache_obj_dtor *sobj_dtor_cb);
-

-
/* All about a SSL session ticket */
-
struct Curl_ssl_session {
-
  const unsigned char *sdata;  /* session ticket data, plain bytes */
-
  size_t sdata_len;            /* number of bytes in sdata */
-
  curl_off_t valid_until;      /* seconds since EPOCH until ticket expires */
-
  int ietf_tls_id;             /* TLS protocol identifier negotiated */
-
  char *alpn;                  /* APLN TLS negotiated protocol string */
-
  size_t earlydata_max;        /* max 0-RTT data supported by peer */
-
  const unsigned char *quic_tp; /* Optional QUIC transport param bytes */
-
  size_t quic_tp_len;          /* number of bytes in quic_tp */
-
  struct Curl_llist_node list; /*  internal storage handling */
-
};
-

-
/* Create a `session` instance. Does NOT need locking.
-
 * Takes ownership of `sdata` and `sobj` regardless of return code.
-
 * @param sdata     bytes of SSL session data or NULL (sobj then required)
-
 * @param sdata_len amount of session data bytes
-
 * @param ietf_tls_id  IETF protocol version, e.g. 0x304 for TLSv1.3
-
 * @param alpn      ALPN protocol selected or NULL
-
 * @param valid_until seconds since EPOCH when session expires, pass 0
-
 *                  in case this is not known.
-
 * @param psession on return the scached session instance created
-
 */
-
CURLcode
-
Curl_ssl_session_create(unsigned char *sdata, size_t sdata_len,
-
                        int ietf_tls_id, const char *alpn,
-
                        curl_off_t valid_until,
-
                        size_t earlydata_max,
-
                        struct Curl_ssl_session **psession);
-

-
/* Variation of session creation with quic transport parameter bytes,
-
 * Takes ownership of `quic_tp` regardless of return code. */
-
CURLcode
-
Curl_ssl_session_create2(unsigned char *sdata, size_t sdata_len,
-
                         int ietf_tls_id, const char *alpn,
-
                         curl_off_t valid_until,
-
                         size_t earlydata_max,
-
                         unsigned char *quic_tp, size_t quic_tp_len,
-
                         struct Curl_ssl_session **psession);
-

-
/* Destroy a `session` instance. Can be called with NULL.
-
 * Does NOT need locking. */
-
void Curl_ssl_session_destroy(struct Curl_ssl_session *s);
-

-
/* Put the scache session into the cache. Does NOT need locking.
-
 * Call takes ownership of `s` in all outcomes.
-
 * @param cf      the connection filter wanting to use it
-
 * @param data    the transfer involved
-
 * @param ssl_peer_key the key for lookup
-
 * @param s       the scache session object
-
 */
-
CURLcode Curl_ssl_scache_put(struct Curl_cfilter *cf,
-
                             struct Curl_easy *data,
-
                             const char *ssl_peer_key,
-
                             struct Curl_ssl_session *s);
-

-
/* Take a matching scache session from the cache. Does NOT need locking.
-
 * @param cf      the connection filter wanting to use it
-
 * @param data    the transfer involved
-
 * @param ssl_peer_key the key for lookup
-
 * @param s       on return, the scache session object or NULL
-
 */
-
CURLcode Curl_ssl_scache_take(struct Curl_cfilter *cf,
-
                              struct Curl_easy *data,
-
                              const char *ssl_peer_key,
-
                              struct Curl_ssl_session **ps);
-

-
/* Return a taken scache session to the cache. Does NOT need locking.
-
 * Depending on TLS version and other criteria, it may cache it again
-
 * or destroy it. Maybe called with a NULL session.
-
 */
-
void Curl_ssl_scache_return(struct Curl_cfilter *cf,
-
                            struct Curl_easy *data,
-
                            const char *ssl_peer_key,
-
                            struct Curl_ssl_session *s);
-

-
/* Remove all sessions and obj for the peer_key. Does NOT need locking. */
-
void Curl_ssl_scache_remove_all(struct Curl_cfilter *cf,
-
                                struct Curl_easy *data,
-
                                const char *ssl_peer_key);
-

-
#ifdef USE_SSLS_EXPORT
-

-
CURLcode Curl_ssl_session_import(struct Curl_easy *data,
-
                                 const char *ssl_peer_key,
-
                                 const unsigned char *shmac, size_t shmac_len,
-
                                 const unsigned char *sdata, size_t sdata_len);
-

-
CURLcode Curl_ssl_session_export(struct Curl_easy *data,
-
                                 curl_ssls_export_cb *export_fn,
-
                                 void *userptr);
-

-
#endif /* USE_SSLS_EXPORT */
-

-
#else /* USE_SSL */
-

-
#define Curl_ssl_scache_create(x,y,z) ((void)x, CURLE_OK)
-
#define Curl_ssl_scache_destroy(x) do {} while(0)
-

-
#endif /* USE_SSL (else) */
-

-
#endif /* HEADER_CURL_VTLS_SCACHE_H */
deleted external/curl/lib/vtls/vtls_spack.c
@@ -1,345 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-

-
#include "curl_setup.h"
-

-
#ifdef USE_SSLS_EXPORT
-

-
#include "urldata.h"
-
#include "curl_trc.h"
-
#include "vtls_scache.h"
-
#include "vtls_spack.h"
-
#include "strdup.h"
-

-
/* The last #include files should be: */
-
#include "curl_memory.h"
-
#include "memdebug.h"
-

-
#ifdef _MSC_VER
-
#if _MSC_VER >= 1600
-
#include <stdint.h>
-
#else
-
typedef unsigned char uint8_t;
-
typedef unsigned __int16 uint16_t;
-
typedef unsigned __int32 uint32_t;
-
typedef unsigned __int64 uint64_t;
-
#endif
-
#endif /* _MSC_VER */
-

-
#ifndef UINT16_MAX
-
#define UINT16_MAX    0xffff
-
#endif
-
#ifndef UINT32_MAX
-
#define UINT32_MAX    0xffffffff
-
#endif
-

-
#define CURL_SPACK_VERSION       0x01
-
#define CURL_SPACK_IETF_ID       0x02
-
#define CURL_SPACK_VALID_UNTIL   0x03
-
#define CURL_SPACK_TICKET        0x04
-
#define CURL_SPACK_ALPN          0x05
-
#define CURL_SPACK_EARLYDATA     0x06
-
#define CURL_SPACK_QUICTP        0x07
-

-
static CURLcode spack_enc8(struct dynbuf *buf, uint8_t b)
-
{
-
  return Curl_dyn_addn(buf, &b, 1);
-
}
-

-
static CURLcode
-
spack_dec8(uint8_t *val, const uint8_t **src, const uint8_t *end)
-
{
-
  if(end - *src < 1)
-
    return CURLE_READ_ERROR;
-
  *val = **src;
-
  *src += 1;
-
  return CURLE_OK;
-
}
-

-
static CURLcode spack_enc16(struct dynbuf *buf, uint16_t val)
-
{
-
  uint8_t nval[2];
-
  nval[0] = (uint8_t)(val >> 8);
-
  nval[1] = (uint8_t)val;
-
  return Curl_dyn_addn(buf, nval, sizeof(nval));
-
}
-

-
static CURLcode
-
spack_dec16(uint16_t *val, const uint8_t **src, const uint8_t *end)
-
{
-
  if(end - *src < 2)
-
    return CURLE_READ_ERROR;
-
  *val = (uint16_t)((*src)[0] << 8 | (*src)[1]);
-
  *src += 2;
-
  return CURLE_OK;
-
}
-

-
static CURLcode spack_enc32(struct dynbuf *buf, uint32_t val)
-
{
-
  uint8_t nval[4];
-
  nval[0] = (uint8_t)(val >> 24);
-
  nval[1] = (uint8_t)(val >> 16);
-
  nval[2] = (uint8_t)(val >> 8);
-
  nval[3] = (uint8_t)val;
-
  return Curl_dyn_addn(buf, nval, sizeof(nval));
-
}
-

-
static CURLcode
-
spack_dec32(uint32_t *val, const uint8_t **src, const uint8_t *end)
-
{
-
  if(end - *src < 4)
-
    return CURLE_READ_ERROR;
-
  *val = (uint32_t)(*src)[0] << 24 | (uint32_t)(*src)[1] << 16 |
-
         (uint32_t)(*src)[2] << 8 | (*src)[3];
-
  *src += 4;
-
  return CURLE_OK;
-
}
-

-
static CURLcode spack_enc64(struct dynbuf *buf, uint64_t val)
-
{
-
  uint8_t nval[8];
-
  nval[0] = (uint8_t)(val >> 56);
-
  nval[1] = (uint8_t)(val >> 48);
-
  nval[2] = (uint8_t)(val >> 40);
-
  nval[3] = (uint8_t)(val >> 32);                  \
-
  nval[4] = (uint8_t)(val >> 24);
-
  nval[5] = (uint8_t)(val >> 16);
-
  nval[6] = (uint8_t)(val >> 8);
-
  nval[7] = (uint8_t)val;
-
  return Curl_dyn_addn(buf, nval, sizeof(nval));
-
}
-

-
static CURLcode
-
spack_dec64(uint64_t *val, const uint8_t **src, const uint8_t *end)
-
{
-
  if(end - *src < 8)
-
    return CURLE_READ_ERROR;
-
  *val = (uint64_t)(*src)[0] << 56 | (uint64_t)(*src)[1] << 48 |
-
         (uint64_t)(*src)[2] << 40 | (uint64_t)(*src)[3] << 32 |
-
         (uint64_t)(*src)[4] << 24 | (uint64_t)(*src)[5] << 16 |
-
         (uint64_t)(*src)[6] << 8 | (*src)[7];
-
  *src += 8;
-
  return CURLE_OK;
-
}
-

-
static CURLcode spack_encstr16(struct dynbuf *buf, const char *s)
-
{
-
  size_t slen = strlen(s);
-
  CURLcode r;
-
  if(slen > UINT16_MAX)
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
-
  r = spack_enc16(buf, (uint16_t)slen);
-
  if(!r) {
-
    r = Curl_dyn_addn(buf, s, slen);
-
  }
-
  return r;
-
}
-

-
static CURLcode
-
spack_decstr16(char **val, const uint8_t **src, const uint8_t *end)
-
{
-
  uint16_t slen;
-
  CURLcode r;
-

-
  *val = NULL;
-
  r = spack_dec16(&slen, src, end);
-
  if(r)
-
    return r;
-
  if(end - *src < slen)
-
    return CURLE_READ_ERROR;
-
  *val = Curl_memdup0((const char *)(*src), slen);
-
  *src += slen;
-
  return *val ? CURLE_OK : CURLE_OUT_OF_MEMORY;
-
}
-

-
static CURLcode spack_encdata16(struct dynbuf *buf,
-
                                const uint8_t *data, size_t data_len)
-
{
-
  CURLcode r;
-
  if(data_len > UINT16_MAX)
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
-
  r = spack_enc16(buf, (uint16_t)data_len);
-
  if(!r) {
-
    r = Curl_dyn_addn(buf, data, data_len);
-
  }
-
  return r;
-
}
-

-
static CURLcode
-
spack_decdata16(uint8_t **val, size_t *val_len,
-
                const uint8_t **src, const uint8_t *end)
-
{
-
  uint16_t data_len;
-
  CURLcode r;
-

-
  *val = NULL;
-
  r = spack_dec16(&data_len, src, end);
-
  if(r)
-
    return r;
-
  if(end - *src < data_len)
-
    return CURLE_READ_ERROR;
-
  *val = Curl_memdup0((const char *)(*src), data_len);
-
  *val_len = data_len;
-
  *src += data_len;
-
  return *val ? CURLE_OK : CURLE_OUT_OF_MEMORY;
-
}
-

-
CURLcode Curl_ssl_session_pack(struct Curl_easy *data,
-
                               struct Curl_ssl_session *s,
-
                               struct dynbuf *buf)
-
{
-
  CURLcode r;
-
  DEBUGASSERT(s->sdata);
-
  DEBUGASSERT(s->sdata_len);
-

-
  if(s->valid_until < 0)
-
    return CURLE_BAD_FUNCTION_ARGUMENT;
-

-
  r = spack_enc8(buf, CURL_SPACK_VERSION);
-
  if(!r)
-
    r = spack_enc8(buf, CURL_SPACK_TICKET);
-
  if(!r)
-
    r = spack_encdata16(buf, s->sdata, s->sdata_len);
-
  if(!r)
-
    r = spack_enc8(buf, CURL_SPACK_IETF_ID);
-
  if(!r)
-
    r = spack_enc16(buf, (uint16_t)s->ietf_tls_id);
-
  if(!r)
-
    r = spack_enc8(buf, CURL_SPACK_VALID_UNTIL);
-
  if(!r)
-
    r = spack_enc64(buf, (uint64_t)s->valid_until);
-
  if(!r && s->alpn) {
-
    r = spack_enc8(buf, CURL_SPACK_ALPN);
-
    if(!r)
-
      r = spack_encstr16(buf, s->alpn);
-
  }
-
  if(!r && s->earlydata_max) {
-
    if(s->earlydata_max > UINT32_MAX)
-
      r = CURLE_BAD_FUNCTION_ARGUMENT;
-
    if(!r)
-
      r = spack_enc8(buf, CURL_SPACK_EARLYDATA);
-
    if(!r)
-
      r = spack_enc32(buf, (uint32_t)s->earlydata_max);
-
  }
-
  if(!r && s->quic_tp && s->quic_tp_len) {
-
    r = spack_enc8(buf, CURL_SPACK_QUICTP);
-
    if(!r)
-
      r = spack_encdata16(buf, s->quic_tp, s->quic_tp_len);
-
  }
-

-
  if(r)
-
    CURL_TRC_SSLS(data, "error packing data: %d", r);
-
  return r;
-
}
-

-
CURLcode Curl_ssl_session_unpack(struct Curl_easy *data,
-
                                 const unsigned char *buf, size_t buflen,
-
                                 struct Curl_ssl_session **ps)
-
{
-
  struct Curl_ssl_session *s = NULL;
-
  const unsigned char *end = buf + buflen;
-
  uint8_t val8, *pval8;
-
  uint16_t val16;
-
  uint32_t val32;
-
  uint64_t val64;
-
  CURLcode r;
-

-
  DEBUGASSERT(buf);
-
  DEBUGASSERT(buflen);
-
  *ps = NULL;
-

-
  r = spack_dec8(&val8, &buf, end);
-
  if(r)
-
    goto out;
-
  if(val8 != CURL_SPACK_VERSION) {
-
    r = CURLE_READ_ERROR;
-
    goto out;
-
  }
-

-
  s = calloc(1, sizeof(*s));
-
  if(!s) {
-
    r = CURLE_OUT_OF_MEMORY;
-
    goto out;
-
  }
-

-
  while(buf < end) {
-
    r = spack_dec8(&val8, &buf, end);
-
    if(r)
-
      goto out;
-

-
    switch(val8) {
-
    case CURL_SPACK_ALPN:
-
      r = spack_decstr16(&s->alpn, &buf, end);
-
      if(r)
-
        goto out;
-
      break;
-
    case CURL_SPACK_EARLYDATA:
-
      r = spack_dec32(&val32, &buf, end);
-
      if(r)
-
        goto out;
-
      s->earlydata_max = val32;
-
      break;
-
    case CURL_SPACK_IETF_ID:
-
      r = spack_dec16(&val16, &buf, end);
-
      if(r)
-
        goto out;
-
      s->ietf_tls_id = val16;
-
      break;
-
    case CURL_SPACK_QUICTP: {
-
      r = spack_decdata16(&pval8, &s->quic_tp_len, &buf, end);
-
      if(r)
-
        goto out;
-
      s->quic_tp = pval8;
-
      break;
-
    }
-
    case CURL_SPACK_TICKET: {
-
      r = spack_decdata16(&pval8, &s->sdata_len, &buf, end);
-
      if(r)
-
        goto out;
-
      s->sdata = pval8;
-
      break;
-
    }
-
    case CURL_SPACK_VALID_UNTIL:
-
      r = spack_dec64(&val64, &buf, end);
-
      if(r)
-
        goto out;
-
      s->valid_until = (curl_off_t)val64;
-
      break;
-
    default:  /* unknown tag */
-
      r = CURLE_READ_ERROR;
-
      goto out;
-
    }
-
  }
-

-
out:
-
  if(r) {
-
    CURL_TRC_SSLS(data, "error unpacking data: %d", r);
-
    Curl_ssl_session_destroy(s);
-
  }
-
  else
-
    *ps = s;
-
  return r;
-
}
-

-
#endif /* USE_SSLS_EXPORT */
deleted external/curl/lib/vtls/vtls_spack.h
@@ -1,43 +0,0 @@
-
#ifndef HEADER_CURL_VTLS_SPACK_H
-
#define HEADER_CURL_VTLS_SPACK_H
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "curl_setup.h"
-

-
#ifdef USE_SSLS_EXPORT
-

-
struct dynbuf;
-
struct Curl_ssl_session;
-

-
CURLcode Curl_ssl_session_pack(struct Curl_easy *data,
-
                               struct Curl_ssl_session *s,
-
                               struct dynbuf *buf);
-

-
CURLcode Curl_ssl_session_unpack(struct Curl_easy *data,
-
                                 const unsigned char *buf, size_t buflen,
-
                                 struct Curl_ssl_session **ps);
-

-
#endif /* USE_SSLS_EXPORT */
-

-
#endif /* HEADER_CURL_VTLS_SPACK_H */
modified external/curl/lib/vtls/wolfssl.c
@@ -60,7 +60,6 @@
#include "inet_pton.h"
#include "vtls.h"
#include "vtls_int.h"
-
#include "vtls_scache.h"
#include "keylog.h"
#include "parsedate.h"
#include "connect.h" /* for the connect timeout */
@@ -70,6 +69,7 @@
#include "curl_printf.h"
#include "multiif.h"

+
#include <wolfssl/openssl/ssl.h>
#include <wolfssl/ssl.h>
#include <wolfssl/error-ssl.h>
#include "wolfssl.h"
@@ -78,9 +78,13 @@
#include "curl_memory.h"
#include "memdebug.h"

-
#ifdef HAVE_WOLFSSL_CTX_GENERATEECHCONFIG
-
#define USE_ECH_WOLFSSL
-
#endif
+
#ifdef USE_ECH
+
# include "curl_base64.h"
+
# define ECH_ENABLED(__data__) \
+
    (__data__->set.tls_ech && \
+
     !(__data__->set.tls_ech & CURLECH_DISABLE)\
+
    )
+
#endif /* USE_ECH */

/* KEEP_PEER_CERT is a product of the presence of build time symbol
   OPENSSL_EXTRA without NO_CERTS, depending on the version. KEEP_PEER_CERT is
@@ -295,7 +299,7 @@ static long wolfssl_bio_cf_ctrl(WOLFSSL_BIO *bio, int cmd, long num, void *ptr)
#ifdef WOLFSSL_BIO_CTRL_EOF
  case WOLFSSL_BIO_CTRL_EOF:
    /* EOF has been reached on input? */
-
    return !cf->next || !cf->next->connected;
+
    return (!cf->next || !cf->next->connected);
#endif
  default:
    ret = 0;
@@ -396,54 +400,57 @@ static void wolfssl_bio_cf_free_methods(void)

#endif /* !USE_BIO_CHAIN */

-
CURLcode Curl_wssl_cache_session(struct Curl_cfilter *cf,
-
                                 struct Curl_easy *data,
-
                                 const char *ssl_peer_key,
-
                                 WOLFSSL_SESSION *session,
-
                                 int ietf_tls_id,
-
                                 const char *alpn)
+
static void wolfssl_session_free(void *sdata, size_t slen)
+
{
+
  (void)slen;
+
  free(sdata);
+
}
+

+
CURLcode wssl_cache_session(struct Curl_cfilter *cf,
+
                            struct Curl_easy *data,
+
                            struct ssl_peer *peer,
+
                            WOLFSSL_SESSION *session)
{
  CURLcode result = CURLE_OK;
-
  struct Curl_ssl_session *sc_session = NULL;
  unsigned char *sdata = NULL;
-
  unsigned int sdata_len;
+
  unsigned int slen;

  if(!session)
    goto out;

-
  sdata_len = wolfSSL_i2d_SSL_SESSION(session, NULL);
-
  if(sdata_len <= 0) {
-
    CURL_TRC_CF(data, cf, "fail to assess session length: %u", sdata_len);
+
  slen = wolfSSL_i2d_SSL_SESSION(session, NULL);
+
  if(slen <= 0) {
+
    CURL_TRC_CF(data, cf, "fail to assess session length: %u", slen);
    result = CURLE_FAILED_INIT;
    goto out;
  }
-
  sdata = calloc(1, sdata_len);
+
  sdata = calloc(1, slen);
  if(!sdata) {
-
    failf(data, "unable to allocate session buffer of %u bytes", sdata_len);
+
    failf(data, "unable to allocate session buffer of %u bytes", slen);
    result = CURLE_OUT_OF_MEMORY;
    goto out;
  }
-
  sdata_len = wolfSSL_i2d_SSL_SESSION(session, &sdata);
-
  if(sdata_len <= 0) {
-
    CURL_TRC_CF(data, cf, "fail to serialize session: %u", sdata_len);
+
  slen = wolfSSL_i2d_SSL_SESSION(session, &sdata);
+
  if(slen <= 0) {
+
    CURL_TRC_CF(data, cf, "fail to serialize session: %u", slen);
    result = CURLE_FAILED_INIT;
    goto out;
  }

-
  result = Curl_ssl_session_create(sdata, sdata_len,
-
                                   ietf_tls_id, alpn,
-
                                   (curl_off_t)time(NULL) +
-
                                   wolfSSL_SESSION_get_timeout(session), 0,
-
                                   &sc_session);
-
  sdata = NULL;  /* took ownership of sdata */
-
  if(!result) {
-
    result = Curl_ssl_scache_put(cf, data, ssl_peer_key, sc_session);
-
    /* took ownership of `sc_session` */
+
  Curl_ssl_sessionid_lock(data);
+
  result = Curl_ssl_set_sessionid(cf, data, peer, NULL,
+
                                  sdata, slen, wolfssl_session_free);
+
  Curl_ssl_sessionid_unlock(data);
+
  if(result)
+
    failf(data, "failed to add new ssl session to cache (%d)", result);
+
  else {
+
    CURL_TRC_CF(data, cf, "added new session to cache");
+
    sdata = NULL;
  }

out:
  free(sdata);
-
  return result;
+
  return 0;
}

static int wssl_vtls_new_session_cb(WOLFSSL *ssl, WOLFSSL_SESSION *session)
@@ -458,35 +465,32 @@ static int wssl_vtls_new_session_cb(WOLFSSL *ssl, WOLFSSL_SESSION *session)
    DEBUGASSERT(connssl);
    DEBUGASSERT(data);
    if(connssl && data) {
-
      (void)Curl_wssl_cache_session(cf, data, connssl->peer.scache_key,
-
                                    session, wolfSSL_version(ssl),
-
                                    connssl->negotiated.alpn);
+
      (void)wssl_cache_session(cf, data, &connssl->peer, session);
    }
  }
  return 0;
}

-
CURLcode Curl_wssl_setup_session(struct Curl_cfilter *cf,
-
                                 struct Curl_easy *data,
-
                                 struct wolfssl_ctx *wss,
-
                                 const char *ssl_peer_key)
+
CURLcode wssl_setup_session(struct Curl_cfilter *cf,
+
                            struct Curl_easy *data,
+
                            struct wolfssl_ctx *wss,
+
                            struct ssl_peer *peer)
{
-
  struct Curl_ssl_session *sc_session = NULL;
-
  CURLcode result;
+
  void *psdata;
+
  const unsigned char *sdata = NULL;
+
  size_t slen = 0;
+
  CURLcode result = CURLE_OK;

-
  result = Curl_ssl_scache_take(cf, data, ssl_peer_key, &sc_session);
-
  if(!result && sc_session && sc_session->sdata && sc_session->sdata_len) {
+
  Curl_ssl_sessionid_lock(data);
+
  if(!Curl_ssl_getsessionid(cf, data, peer, &psdata, &slen, NULL)) {
    WOLFSSL_SESSION *session;
-
    /* wolfSSL changes the passed pointer for whatever reasons, yikes */
-
    const unsigned char *sdata = sc_session->sdata;
-
    session = wolfSSL_d2i_SSL_SESSION(NULL, &sdata,
-
                                      (long)sc_session->sdata_len);
+
    sdata = psdata;
+
    session = wolfSSL_d2i_SSL_SESSION(NULL, &sdata, (long)slen);
    if(session) {
      int ret = wolfSSL_set_session(wss->handle, session);
      if(ret != WOLFSSL_SUCCESS) {
-
        Curl_ssl_session_destroy(sc_session);
-
        sc_session = NULL;
-
        infof(data, "cached session not accepted (%d), "
+
        Curl_ssl_delsessionid(data, psdata);
+
        infof(data, "previous session not accepted (%d), "
              "removing from cache", ret);
      }
      else
@@ -497,14 +501,14 @@ CURLcode Curl_wssl_setup_session(struct Curl_cfilter *cf,
      failf(data, "could not decode previous session");
    }
  }
-
  Curl_ssl_scache_return(cf, data, ssl_peer_key, sc_session);
+
  Curl_ssl_sessionid_unlock(data);
  return result;
}

-
static CURLcode wssl_populate_x509_store(struct Curl_cfilter *cf,
-
                                         struct Curl_easy *data,
-
                                         WOLFSSL_X509_STORE *store,
-
                                         struct wolfssl_ctx *wssl)
+
static CURLcode populate_x509_store(struct Curl_cfilter *cf,
+
                                    struct Curl_easy *data,
+
                                    WOLFSSL_X509_STORE *store,
+
                                    struct wolfssl_ctx *wssl)
{
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
  const struct curl_blob *ca_info_blob = conn_config->ca_info_blob;
@@ -552,7 +556,7 @@ static CURLcode wssl_populate_x509_store(struct Curl_cfilter *cf,
#ifndef NO_FILESYSTEM
  /* load trusted cacert from file if not blob */

-
  CURL_TRC_CF(data, cf, "wssl_populate_x509_store, path=%s, blob=%d",
+
  CURL_TRC_CF(data, cf, "populate_x509_store, path=%s, blob=%d",
              ssl_cafile ? ssl_cafile : "none", !!ca_info_blob);
  if(!store)
    return CURLE_OUT_OF_MEMORY;
@@ -616,8 +620,8 @@ static void wssl_x509_share_free(void *key, size_t key_len, void *p)
}

static bool
-
wssl_cached_x509_store_expired(const struct Curl_easy *data,
-
                               const struct wssl_x509_share *mb)
+
cached_x509_store_expired(const struct Curl_easy *data,
+
                          const struct wssl_x509_share *mb)
{
  const struct ssl_general_config *cfg = &data->set.general_ssl;
  struct curltime now = Curl_now();
@@ -631,8 +635,8 @@ wssl_cached_x509_store_expired(const struct Curl_easy *data,
}

static bool
-
wssl_cached_x509_store_different(struct Curl_cfilter *cf,
-
                                 const struct wssl_x509_share *mb)
+
cached_x509_store_different(struct Curl_cfilter *cf,
+
                            const struct wssl_x509_share *mb)
{
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
  if(!mb->CAfile || !conn_config->CAfile)
@@ -641,8 +645,8 @@ wssl_cached_x509_store_different(struct Curl_cfilter *cf,
  return strcmp(mb->CAfile, conn_config->CAfile);
}

-
static WOLFSSL_X509_STORE *wssl_get_cached_x509_store(struct Curl_cfilter *cf,
-
                                                  const struct Curl_easy *data)
+
static WOLFSSL_X509_STORE *get_cached_x509_store(struct Curl_cfilter *cf,
+
                                                 const struct Curl_easy *data)
{
  struct Curl_multi *multi = data->multi;
  struct wssl_x509_share *share;
@@ -653,17 +657,17 @@ static WOLFSSL_X509_STORE *wssl_get_cached_x509_store(struct Curl_cfilter *cf,
                                 (void *)MPROTO_WSSL_X509_KEY,
                                 sizeof(MPROTO_WSSL_X509_KEY)-1) : NULL;
  if(share && share->store &&
-
     !wssl_cached_x509_store_expired(data, share) &&
-
     !wssl_cached_x509_store_different(cf, share)) {
+
     !cached_x509_store_expired(data, share) &&
+
     !cached_x509_store_different(cf, share)) {
    store = share->store;
  }

  return store;
}

-
static void wssl_set_cached_x509_store(struct Curl_cfilter *cf,
-
                                       const struct Curl_easy *data,
-
                                       WOLFSSL_X509_STORE *store)
+
static void set_cached_x509_store(struct Curl_cfilter *cf,
+
                                  const struct Curl_easy *data,
+
                                  WOLFSSL_X509_STORE *store)
{
  struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf);
  struct Curl_multi *multi = data->multi;
@@ -731,8 +735,7 @@ CURLcode Curl_wssl_setup_x509_store(struct Curl_cfilter *cf,
    !ssl_config->primary.CRLfile &&
    !ssl_config->native_ca_store;

-
  cached_store = cache_criteria_met ? wssl_get_cached_x509_store(cf, data)
-
                                    : NULL;
+
  cached_store = cache_criteria_met ? get_cached_x509_store(cf, data) : NULL;
  if(cached_store && wolfSSL_CTX_get_cert_store(wssl->ctx) == cached_store) {
    /* The cached store is already in use, do nothing. */
  }
@@ -749,15 +752,15 @@ CURLcode Curl_wssl_setup_x509_store(struct Curl_cfilter *cf,
    }
    wolfSSL_CTX_set_cert_store(wssl->ctx, store);

-
    result = wssl_populate_x509_store(cf, data, store, wssl);
+
    result = populate_x509_store(cf, data, store, wssl);
    if(!result) {
-
      wssl_set_cached_x509_store(cf, data, store);
+
      set_cached_x509_store(cf, data, store);
    }
  }
  else {
   /* We never share the CTX's store, use it. */
   WOLFSSL_X509_STORE *store = wolfSSL_CTX_get_cert_store(wssl->ctx);
-
   result = wssl_populate_x509_store(cf, data, store, wssl);
+
   result = populate_x509_store(cf, data, store, wssl);
  }

  return result;
@@ -1189,13 +1192,13 @@ wolfssl_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
  /* Check if there is a cached ID we can/should use here! */
  if(ssl_config->primary.cache_session) {
    /* Set session from cache if there is one */
-
    (void)Curl_wssl_setup_session(cf, data, backend, connssl->peer.scache_key);
+
    (void)wssl_setup_session(cf, data, backend, &connssl->peer);
    /* Register to get notified when a new session is received */
    wolfSSL_set_app_data(backend->handle, cf);
    wolfSSL_CTX_sess_set_new_cb(backend->ctx, wssl_vtls_new_session_cb);
  }

-
#ifdef USE_ECH_WOLFSSL
+
#ifdef USE_ECH
  if(ECH_ENABLED(data)) {
    int trying_ech_now = 0;

@@ -1262,14 +1265,14 @@ wolfssl_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data)
      }
    }

-
    if(trying_ech_now && wolfSSL_set_min_proto_version(backend->handle,
-
                                                       TLS1_3_VERSION) != 1) {
+
    if(trying_ech_now
+
       && SSL_set_min_proto_version(backend->handle, TLS1_3_VERSION) != 1) {
      infof(data, "ECH: cannot force TLSv1.3 [ERROR]");
      return CURLE_SSL_CONNECT_ERROR;
    }

  }
-
#endif  /* USE_ECH_WOLFSSL */
+
#endif  /* USE_ECH */

#ifdef USE_BIO_CHAIN
  {
@@ -1438,7 +1441,7 @@ wolfssl_connect_step2(struct Curl_cfilter *cf, struct Curl_easy *data)
      failf(data, "server verification failed: certificate not valid yet.");
      return CURLE_PEER_FAILED_VERIFICATION;
    }
-
#ifdef USE_ECH_WOLFSSL
+
#ifdef USE_ECH
    else if(-1 == detail) {
      /* try access a retry_config ECHConfigList for tracing */
      byte echConfigs[1000];
@@ -1793,7 +1796,7 @@ static ssize_t wolfssl_recv(struct Curl_cfilter *cf,
}


-
size_t Curl_wssl_version(char *buffer, size_t size)
+
static size_t wolfssl_version(char *buffer, size_t size)
{
#if LIBWOLFSSL_VERSION_HEX >= 0x03006000
  return msnprintf(buffer, size, "wolfSSL/%s", wolfSSL_lib_version());
@@ -2017,7 +2020,7 @@ const struct Curl_ssl Curl_ssl_wolfssl = {
#endif
  SSLSUPP_CA_PATH |
  SSLSUPP_CAINFO_BLOB |
-
#ifdef USE_ECH_WOLFSSL
+
#ifdef USE_ECH
  SSLSUPP_ECH |
#endif
  SSLSUPP_SSL_CTX |
@@ -2031,22 +2034,25 @@ const struct Curl_ssl Curl_ssl_wolfssl = {

  wolfssl_init,                    /* init */
  wolfssl_cleanup,                 /* cleanup */
-
  Curl_wssl_version,               /* version */
+
  wolfssl_version,                 /* version */
+
  Curl_none_check_cxn,             /* check_cxn */
  wolfssl_shutdown,                /* shutdown */
  wolfssl_data_pending,            /* data_pending */
  wolfssl_random,                  /* random */
-
  NULL,                            /* cert_status_request */
+
  Curl_none_cert_status_request,   /* cert_status_request */
  wolfssl_connect,                 /* connect */
  wolfssl_connect_nonblocking,     /* connect_nonblocking */
  Curl_ssl_adjust_pollset,         /* adjust_pollset */
  wolfssl_get_internals,           /* get_internals */
  wolfssl_close,                   /* close_one */
-
  NULL,                            /* close_all */
-
  NULL,                            /* set_engine */
-
  NULL,                            /* set_engine_default */
-
  NULL,                            /* engines_list */
-
  NULL,                            /* false_start */
+
  Curl_none_close_all,             /* close_all */
+
  Curl_none_set_engine,            /* set_engine */
+
  Curl_none_set_engine_default,    /* set_engine_default */
+
  Curl_none_engines_list,          /* engines_list */
+
  Curl_none_false_start,           /* false_start */
  wolfssl_sha256sum,               /* sha256sum */
+
  NULL,                            /* associate_connection */
+
  NULL,                            /* disassociate_connection */
  wolfssl_recv,                    /* recv decrypted data */
  wolfssl_send,                    /* send data to encrypt */
  NULL,                            /* get_channel_binding */
modified external/curl/lib/vtls/wolfssl.h
@@ -47,23 +47,19 @@ struct wolfssl_ctx {
  BIT(shutting_down);      /* TLS is being shut down */
};

-
size_t Curl_wssl_version(char *buffer, size_t size);
-

CURLcode Curl_wssl_setup_x509_store(struct Curl_cfilter *cf,
                                    struct Curl_easy *data,
                                    struct wolfssl_ctx *wssl);

-
CURLcode Curl_wssl_setup_session(struct Curl_cfilter *cf,
-
                                 struct Curl_easy *data,
-
                                 struct wolfssl_ctx *wss,
-
                                 const char *ssl_peer_key);
+
CURLcode wssl_setup_session(struct Curl_cfilter *cf,
+
                            struct Curl_easy *data,
+
                            struct wolfssl_ctx *wss,
+
                            struct ssl_peer *peer);

-
CURLcode Curl_wssl_cache_session(struct Curl_cfilter *cf,
-
                                 struct Curl_easy *data,
-
                                 const char *ssl_peer_key,
-
                                 WOLFSSL_SESSION *session,
-
                                 int ietf_tls_id,
-
                                 const char *alpn);
+
CURLcode wssl_cache_session(struct Curl_cfilter *cf,
+
                            struct Curl_easy *data,
+
                            struct ssl_peer *peer,
+
                            WOLFSSL_SESSION *session);


#endif /* USE_WOLFSSL */
modified external/curl/lib/vtls/x509asn1.c
@@ -178,11 +178,8 @@ static const char *getASN1Element(struct Curl_asn1Element *elem,
                                  const char *beg, const char *end)
  WARN_UNUSED_RESULT;

-
#define CURL_ASN1_MAX_RECURSIONS    16
-

-
static const char *getASN1Element_(struct Curl_asn1Element *elem,
-
                                   const char *beg, const char *end,
-
                                   size_t lvl)
+
static const char *getASN1Element(struct Curl_asn1Element *elem,
+
                                  const char *beg, const char *end)
{
  unsigned char b;
  size_t len;
@@ -193,8 +190,7 @@ static const char *getASN1Element_(struct Curl_asn1Element *elem,
     Returns a pointer in source string after the parsed element, or NULL
     if an error occurs. */
  if(!beg || !end || beg >= end || !*beg ||
-
     ((size_t)(end - beg) > CURL_ASN1_MAX) ||
-
     lvl >=  CURL_ASN1_MAX_RECURSIONS)
+
     (size_t)(end - beg) > CURL_ASN1_MAX)
    return NULL;

  /* Process header byte. */
@@ -220,7 +216,7 @@ static const char *getASN1Element_(struct Curl_asn1Element *elem,
      return NULL;
    elem->beg = beg;
    while(beg < end && *beg) {
-
      beg = getASN1Element_(&lelem, beg, end, lvl + 1);
+
      beg = getASN1Element(&lelem, beg, end);
      if(!beg)
        return NULL;
    }
@@ -247,12 +243,6 @@ static const char *getASN1Element_(struct Curl_asn1Element *elem,
  return elem->end;
}

-
static const char *getASN1Element(struct Curl_asn1Element *elem,
-
                                  const char *beg, const char *end)
-
{
-
  return getASN1Element_(elem, beg, end, 0);
-
}
-

#ifdef WANT_EXTRACT_CERTINFO

/*
@@ -269,17 +259,6 @@ static const struct Curl_OID *searchOID(const char *oid)
  return NULL;
}

-
#ifdef UNITTESTS
-
/* used by unit1657.c */
-
CURLcode Curl_x509_getASN1Element(struct Curl_asn1Element *elem,
-
                                  const char *beg, const char *end)
-
{
-
  if(getASN1Element(elem, beg, end))
-
    return CURLE_OK;
-
  return CURLE_BAD_FUNCTION_ARGUMENT;
-
}
-
#endif
-

/*
 * Convert an ASN.1 Boolean value into its string representation.
 *
modified external/curl/lib/vtls/x509asn1.h
@@ -85,9 +85,6 @@ CURLcode Curl_verifyhost(struct Curl_cfilter *cf, struct Curl_easy *data,
/* used by unit1656.c */
CURLcode Curl_x509_GTime2str(struct dynbuf *store,
                             const char *beg, const char *end);
-
/* used by unit1657.c */
-
CURLcode Curl_x509_getASN1Element(struct Curl_asn1Element *elem,
-
                                  const char *beg, const char *end);
#endif
#endif

modified external/curl/lib/warnless.c
@@ -101,6 +101,28 @@ unsigned char curlx_ultouc(unsigned long ulnum)
}

/*
+
** unsigned size_t to signed curl_off_t
+
*/
+

+
curl_off_t curlx_uztoso(size_t uznum)
+
{
+
#ifdef __INTEL_COMPILER
+
#  pragma warning(push)
+
#  pragma warning(disable:810) /* conversion may lose significant bits */
+
#elif defined(_MSC_VER)
+
#  pragma warning(push)
+
#  pragma warning(disable:4310) /* cast truncates constant value */
+
#endif
+

+
  DEBUGASSERT(uznum <= (size_t) CURL_MASK_SCOFFT);
+
  return (curl_off_t)(uznum & (size_t) CURL_MASK_SCOFFT);
+

+
#if defined(__INTEL_COMPILER) || defined(_MSC_VER)
+
#  pragma warning(pop)
+
#endif
+
}
+

+
/*
** unsigned size_t to signed int
*/

@@ -126,8 +148,8 @@ int curlx_uztosi(size_t uznum)
unsigned long curlx_uztoul(size_t uznum)
{
#ifdef __INTEL_COMPILER
-
#  pragma warning(push)
-
#  pragma warning(disable:810) /* conversion may lose significant bits */
+
# pragma warning(push)
+
# pragma warning(disable:810) /* conversion may lose significant bits */
#endif

#if ULONG_MAX < SIZE_T_MAX
@@ -136,7 +158,7 @@ unsigned long curlx_uztoul(size_t uznum)
  return (unsigned long)(uznum & (size_t) CURL_MASK_ULONG);

#ifdef __INTEL_COMPILER
-
#  pragma warning(pop)
+
# pragma warning(pop)
#endif
}

@@ -147,8 +169,8 @@ unsigned long curlx_uztoul(size_t uznum)
unsigned int curlx_uztoui(size_t uznum)
{
#ifdef __INTEL_COMPILER
-
#  pragma warning(push)
-
#  pragma warning(disable:810) /* conversion may lose significant bits */
+
# pragma warning(push)
+
# pragma warning(disable:810) /* conversion may lose significant bits */
#endif

#if UINT_MAX < SIZE_T_MAX
@@ -157,7 +179,7 @@ unsigned int curlx_uztoui(size_t uznum)
  return (unsigned int)(uznum & (size_t) CURL_MASK_UINT);

#ifdef __INTEL_COMPILER
-
#  pragma warning(pop)
+
# pragma warning(pop)
#endif
}

modified external/curl/lib/warnless.h
@@ -39,6 +39,8 @@ unsigned char curlx_ultouc(unsigned long ulnum);

int curlx_uztosi(size_t uznum);

+
curl_off_t curlx_uztoso(size_t uznum);
+

unsigned long curlx_uztoul(size_t uznum);

unsigned int curlx_uztoui(size_t uznum);
modified external/curl/lib/ws.c
@@ -47,10 +47,6 @@


#define WSBIT_FIN 0x80
-
#define WSBIT_RSV1 0x40
-
#define WSBIT_RSV2 0x20
-
#define WSBIT_RSV3 0x10
-
#define WSBIT_RSV_MASK (WSBIT_RSV1 | WSBIT_RSV2 | WSBIT_RSV3)
#define WSBIT_OPCODE_CONT  0
#define WSBIT_OPCODE_TEXT  (1)
#define WSBIT_OPCODE_BIN   (2)
@@ -112,13 +108,6 @@ static unsigned char ws_frame_flags2op(int flags)
  return 0;
}

-
/* No extensions are supported. If any of the RSV bits are set, we must fail */
-
static bool ws_frame_rsv_supported(int flags)
-
{
-
  unsigned char reserved_bits = flags & WSBIT_RSV_MASK;
-
  return reserved_bits == 0;
-
}
-

static void ws_dec_info(struct ws_decoder *dec, struct Curl_easy *data,
                        const char *msg)
{
@@ -186,17 +175,9 @@ static CURLcode ws_dec_read_head(struct ws_decoder *dec,
      dec->head[0] = *inbuf;
      Curl_bufq_skip(inraw, 1);

-
      if(!ws_frame_rsv_supported(dec->head[0])) {
-
        failf(data, "WS: unknown reserved bit in frame header: %x",
-
              dec->head[0] & WSBIT_RSV_MASK);
-
        ws_dec_reset(dec);
-
        return CURLE_RECV_ERROR;
-
      }
-

      dec->frame_flags = ws_frame_op2flags(dec->head[0]);
      if(!dec->frame_flags) {
-
        failf(data, "WS: unknown opcode: %x",
-
              dec->head[0] & WSBIT_OPCODE_MASK);
+
        failf(data, "WS: unknown opcode: %x", dec->head[0]);
        ws_dec_reset(dec);
        return CURLE_RECV_ERROR;
      }
@@ -695,7 +676,7 @@ struct wsfield {
  const char *val;
};

-
CURLcode Curl_ws_request(struct Curl_easy *data, struct dynbuf *req)
+
CURLcode Curl_ws_request(struct Curl_easy *data, REQTYPE *req)
{
  unsigned int i;
  CURLcode result = CURLE_OK;
@@ -748,8 +729,16 @@ CURLcode Curl_ws_request(struct Curl_easy *data, struct dynbuf *req)
  free(randstr);
  for(i = 0; !result && (i < sizeof(heads)/sizeof(heads[0])); i++) {
    if(!Curl_checkheaders(data, STRCONST(heads[i].name))) {
+
#ifdef USE_HYPER
+
      char field[128];
+
      msnprintf(field, sizeof(field), "%s %s", heads[i].name,
+
                heads[i].val);
+
      result = Curl_hyper_header(data, req, field);
+
#else
+
      (void)data;
      result = Curl_dyn_addf(req, "%s %s\r\n", heads[i].name,
                             heads[i].val);
+
#endif
    }
  }
  k->upgr101 = UPGR101_WS;
@@ -1028,28 +1017,8 @@ static CURLcode ws_flush(struct Curl_easy *data, struct websocket *ws,
    CURLcode result;
    const unsigned char *out;
    size_t outlen, n;
-
#ifdef DEBUGBUILD
-
    /* Simulate a blocking send after this chunk has been sent */
-
    bool eagain_next = FALSE;
-
    size_t chunk_egain = 0;
-
    char *p = getenv("CURL_WS_CHUNK_EAGAIN");
-
    if(p) {
-
      long l = strtol(p, NULL, 10);
-
      if(l > 0 && l <= (1*1024*1024)) {
-
        chunk_egain = (size_t)l;
-
      }
-
    }
-
#endif

    while(Curl_bufq_peek(&ws->sendbuf, &out, &outlen)) {
-
#ifdef DEBUGBUILD
-
      if(eagain_next)
-
        return CURLE_AGAIN;
-
      if(chunk_egain && (outlen > chunk_egain)) {
-
        outlen = chunk_egain;
-
        eagain_next = TRUE;
-
      }
-
#endif
      if(blocking) {
        result = ws_send_raw_blocking(data, ws, (char *)out, outlen);
        n = result ? 0 : outlen;
@@ -1158,15 +1127,15 @@ static CURLcode ws_send_raw(struct Curl_easy *data, const void *buffer,
  return result;
}

-
CURL_EXTERN CURLcode curl_ws_send(CURL *d, const void *buffer_arg,
+
CURL_EXTERN CURLcode curl_ws_send(CURL *d, const void *buffer,
                                  size_t buflen, size_t *sent,
                                  curl_off_t fragsize,
                                  unsigned int flags)
{
  struct websocket *ws;
-
  const unsigned char *buffer = buffer_arg;
  ssize_t n;
-
  CURLcode result = CURLE_OK;
+
  size_t space, payload_added;
+
  CURLcode result;
  struct Curl_easy *data = d;

  CURL_TRC_WS(data, "curl_ws_send(len=%zu, fragsize=%" FMT_OFF_T
@@ -1190,13 +1159,13 @@ CURL_EXTERN CURLcode curl_ws_send(CURL *d, const void *buffer_arg,
  }
  ws = data->conn->proto.ws;

+
  /* try flushing any content still waiting to be sent. */
+
  result = ws_flush(data, ws, FALSE);
+
  if(result)
+
    goto out;
+

  if(data->set.ws_raw_mode) {
    /* In raw mode, we write directly to the connection */
-
    /* try flushing any content still waiting to be sent. */
-
    result = ws_flush(data, ws, FALSE);
-
    if(result)
-
      goto out;
-

    if(fragsize || flags) {
      failf(data, "ws_send, raw mode: fragsize and flags cannot be non-zero");
      return CURLE_BAD_FUNCTION_ARGUMENT;
@@ -1206,87 +1175,87 @@ CURL_EXTERN CURLcode curl_ws_send(CURL *d, const void *buffer_arg,
  }

  /* Not RAW mode, buf we do the frame encoding */
+
  space = Curl_bufq_space(&ws->sendbuf);
+
  CURL_TRC_WS(data, "curl_ws_send(len=%zu), sendbuf=%zu space_left=%zu",
+
              buflen, Curl_bufq_len(&ws->sendbuf), space);
+
  if(space < 14) {
+
    result = CURLE_AGAIN;
+
    goto out;
+
  }

-
  if(ws->enc.payload_remain || !Curl_bufq_is_empty(&ws->sendbuf)) {
-
    /* a frame is ongoing with payload buffered or more payload
-
     * that needs to be encoded into the buffer */
-
    if(buflen < ws->sendbuf_payload) {
-
      /* We have been called with LESS buffer data than before. This
-
       * is not how it's supposed too work. */
-
      failf(data, "curl_ws_send() called with smaller 'buflen' than "
-
            "bytes already buffered in previous call, %zu vs %zu",
-
            buflen, ws->sendbuf_payload);
-
      result = CURLE_BAD_FUNCTION_ARGUMENT;
-
      goto out;
+
  if(flags & CURLWS_OFFSET) {
+
    if(fragsize) {
+
      /* a frame series 'fragsize' bytes big, this is the first */
+
      n = ws_enc_write_head(data, &ws->enc, flags, fragsize,
+
                            &ws->sendbuf, &result);
+
      if(n < 0)
+
        goto out;
    }
-
    if((curl_off_t)buflen >
-
       (ws->enc.payload_remain + (curl_off_t)ws->sendbuf_payload)) {
-
      /* too large buflen beyond payload length of frame */
-
      infof(data, "WS: unaligned frame size (sending %zu instead of %"
-
                  FMT_OFF_T ")",
-
            buflen, ws->enc.payload_remain + ws->sendbuf_payload);
-
      result = CURLE_BAD_FUNCTION_ARGUMENT;
-
      goto out;
+
    else {
+
      if((curl_off_t)buflen > ws->enc.payload_remain) {
+
        infof(data, "WS: unaligned frame size (sending %zu instead of %"
+
                    FMT_OFF_T ")",
+
              buflen, ws->enc.payload_remain);
+
      }
    }
  }
-
  else {
-
    /* starting a new frame, we want a clean sendbuf */
-
    curl_off_t payload_len = (flags & CURLWS_OFFSET) ?
-
                             fragsize : (curl_off_t)buflen;
-
    result = ws_flush(data, ws, Curl_is_in_callback(data));
-
    if(result)
-
      goto out;
-

-
    n = ws_enc_write_head(data, &ws->enc, flags, payload_len,
+
  else if(!ws->enc.payload_remain) {
+
    n = ws_enc_write_head(data, &ws->enc, flags, (curl_off_t)buflen,
                          &ws->sendbuf, &result);
    if(n < 0)
      goto out;
  }

-
  /* While there is either sendbuf to flush OR more payload to encode... */
-
  while(!Curl_bufq_is_empty(&ws->sendbuf) || (buflen > ws->sendbuf_payload)) {
-
    /* Try to add more payload to sendbuf */
-
    if(buflen > ws->sendbuf_payload) {
-
      size_t prev_len = Curl_bufq_len(&ws->sendbuf);
-
      n = ws_enc_write_payload(&ws->enc, data,
-
                               buffer + ws->sendbuf_payload,
-
                               buflen - ws->sendbuf_payload,
-
                               &ws->sendbuf, &result);
-
      if(n < 0 && (result != CURLE_AGAIN))
-
        goto out;
-
      ws->sendbuf_payload += Curl_bufq_len(&ws->sendbuf) - prev_len;
-
    }
+
  n = ws_enc_write_payload(&ws->enc, data,
+
                           buffer, buflen, &ws->sendbuf, &result);
+
  if(n < 0)
+
    goto out;
+
  payload_added = (size_t)n;

+
  while(!result && (buflen || !Curl_bufq_is_empty(&ws->sendbuf))) {
    /* flush, blocking when in callback */
    result = ws_flush(data, ws, Curl_is_in_callback(data));
    if(!result) {
-
      *sent += ws->sendbuf_payload;
-
      buffer += ws->sendbuf_payload;
-
      buflen -= ws->sendbuf_payload;
-
      ws->sendbuf_payload = 0;
+
      DEBUGASSERT(payload_added <= buflen);
+
      /* all buffered data sent. Try sending the rest if there is any. */
+
      *sent += payload_added;
+
      buffer = (const char *)buffer + payload_added;
+
      buflen -= payload_added;
+
      payload_added = 0;
+
      if(buflen) {
+
        n = ws_enc_write_payload(&ws->enc, data,
+
                                 buffer, buflen, &ws->sendbuf, &result);
+
        if(n < 0)
+
          goto out;
+
        payload_added = Curl_bufq_len(&ws->sendbuf);
+
      }
    }
    else if(result == CURLE_AGAIN) {
-
      if(ws->sendbuf_payload > Curl_bufq_len(&ws->sendbuf)) {
-
        /* blocked, part of payload bytes remain, report length
-
         * that we managed to send. */
-
        size_t flushed = (ws->sendbuf_payload - Curl_bufq_len(&ws->sendbuf));
-
        *sent += flushed;
-
        ws->sendbuf_payload -= flushed;
+
      /* partially sent. how much of the call data has been part of it? what
+
      * should we report to out caller so it can retry/send the rest? */
+
      if(payload_added < buflen) {
+
        /* We did not add everything the caller wanted. Return just
+
         * the partial write to our buffer. */
+
        *sent = payload_added;
        result = CURLE_OK;
        goto out;
      }
-
      else {
-
        /* blocked before sending headers or 1st payload byte. We cannot report
-
         * OK on 0-length send (caller counts only payload) and EAGAIN */
-
        CURL_TRC_WS(data, "EAGAIN flushing sendbuf, payload_encoded: %zu/%zu",
-
                    ws->sendbuf_payload, buflen);
-
        DEBUGASSERT(*sent == 0);
-
        result = CURLE_AGAIN;
+
      else if(!buflen) {
+
        /* We have no payload to report a partial write. EAGAIN would make
+
         * the caller repeat this and add the frame again.
+
         * Flush blocking seems the only way out of this. */
+
        *sent = (size_t)n;
+
        result = ws_flush(data, ws, TRUE);
        goto out;
      }
+
      /* We added the complete data to our sendbuf. Report one byte less as
+
       * sent. This partial success should make the caller invoke us again
+
       * with the last byte. */
+
      *sent = payload_added - 1;
+
      result = Curl_bufq_unwrite(&ws->sendbuf, 1);
+
      if(!result)
+
        result = CURLE_AGAIN;
    }
-
    else
-
      goto out;  /* real error sending the data */
  }

out:
@@ -1353,7 +1322,6 @@ const struct Curl_handler Curl_handler_ws = {
  Curl_http_write_resp_hd,              /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  Curl_http_follow,                     /* follow */
  PORT_HTTP,                            /* defport */
  CURLPROTO_WS,                         /* protocol */
  CURLPROTO_HTTP,                       /* family */
@@ -1380,7 +1348,6 @@ const struct Curl_handler Curl_handler_wss = {
  Curl_http_write_resp_hd,              /* write_resp_hd */
  ZERO_NULL,                            /* connection_check */
  ZERO_NULL,                            /* attach connection */
-
  Curl_http_follow,                     /* follow */
  PORT_HTTPS,                           /* defport */
  CURLPROTO_WSS,                        /* protocol */
  CURLPROTO_HTTP,                       /* family */
modified external/curl/lib/ws.h
@@ -27,6 +27,12 @@

#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(CURL_DISABLE_HTTP)

+
#ifdef USE_HYPER
+
#define REQTYPE void
+
#else
+
#define REQTYPE struct dynbuf
+
#endif
+

/* a client-side WS frame decoder, parsing frame headers and
 * payload, keeping track of current position and stats */
enum ws_dec_state {
@@ -53,7 +59,7 @@ struct ws_encoder {
  unsigned int xori; /* xor index */
  unsigned char mask[4]; /* 32-bit mask for this connection */
  unsigned char firstbyte; /* first byte of frame we encode */
-
  BIT(contfragment); /* set TRUE if the previous fragment sent was not final */
+
  bool contfragment; /* set TRUE if the previous fragment sent was not final */
};

/* A websocket connection with en- and decoder that treat frames
@@ -65,10 +71,9 @@ struct websocket {
  struct bufq recvbuf;    /* raw data from the server */
  struct bufq sendbuf;    /* raw data to be sent to the server */
  struct curl_ws_frame frame;  /* the current WS FRAME received */
-
  size_t sendbuf_payload; /* number of payload bytes in sendbuf */
};

-
CURLcode Curl_ws_request(struct Curl_easy *data, struct dynbuf *req);
+
CURLcode Curl_ws_request(struct Curl_easy *data, REQTYPE *req);
CURLcode Curl_ws_accept(struct Curl_easy *data, const char *mem, size_t len);

extern const struct Curl_handler Curl_handler_ws;
modified external/curl/m4/curl-amissl.m4
@@ -50,7 +50,6 @@ if test "$HAVE_PROTO_BSDSOCKET_H" = "1"; then
      check_for_ca_bundle=1
      with_ca_fallback=yes
      LIBS="-lamisslstubs -lamisslauto $LIBS"
-
      CURL_NETWORK_AND_TIME_LIBS="-lamisslstubs -lamisslauto $CURL_NETWORK_AND_TIME_LIBS"
      AC_DEFINE(USE_AMISSL, 1, [if AmiSSL is in use])
      AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use])
      AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
modified external/curl/m4/curl-bearssl.m4
@@ -46,6 +46,7 @@ if test "x$OPT_BEARSSL" != xno; then
      dnl libbearssl found, set the variable
      [
        AC_DEFINE(USE_BEARSSL, 1, [if BearSSL is enabled])
+
        AC_SUBST(USE_BEARSSL, [1])
        BEARSSL_ENABLED=1
        USE_BEARSSL="yes"
        ssl_msg="BearSSL"
@@ -73,6 +74,7 @@ if test "x$OPT_BEARSSL" != xno; then
      AC_CHECK_LIB(bearssl, br_ssl_client_init_full,
        [
        AC_DEFINE(USE_BEARSSL, 1, [if BearSSL is enabled])
+
        AC_SUBST(USE_BEARSSL, [1])
        BEARSSL_ENABLED=1
        USE_BEARSSL="yes"
        ssl_msg="BearSSL"
modified external/curl/m4/curl-compilers.m4
@@ -797,7 +797,7 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
          CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [all extra])
          CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [pointer-arith write-strings])
          CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [shadow])
-
          CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [nested-externs])
+
          CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [inline nested-externs])
          CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [missing-declarations])
          CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [missing-prototypes])
          tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long"
@@ -843,7 +843,8 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
          #
          dnl Only clang 2.9 or later
          if test "$compiler_num" -ge "209"; then
-
            tmp_CFLAGS="$tmp_CFLAGS -Wno-sign-conversion"
+
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [sign-conversion])
+
            tmp_CFLAGS="$tmp_CFLAGS -Wno-error=sign-conversion"          # FIXME
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [shift-sign-overflow])
          # CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [padded])  # Not used because we cannot change public structs
          fi
@@ -942,7 +943,7 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
          #
          dnl Only gcc 2.7 or later
          if test "$compiler_num" -ge "207"; then
-
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [nested-externs])
+
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [inline nested-externs])
            dnl If not cross-compiling with a gcc older than 3.0
            if test "x$cross_compiling" != "xyes" ||
              test "$compiler_num" -ge "300"; then
@@ -1029,8 +1030,9 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [type-limits old-style-declaration])
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [missing-parameter-type empty-body])
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [clobbered ignored-qualifiers])
-
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [conversion])
-
            tmp_CFLAGS="$tmp_CFLAGS -Wno-sign-conversion"
+
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [conversion trampolines])
+
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [sign-conversion])
+
            tmp_CFLAGS="$tmp_CFLAGS -Wno-error=sign-conversion"          # FIXME
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [vla])
            dnl required for -Warray-bounds, included in -Wall
            tmp_CFLAGS="$tmp_CFLAGS -ftree-vrp"
@@ -1042,18 +1044,11 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
            if test "$curl_cv_native_windows" = "yes"; then
              tmp_CFLAGS="$tmp_CFLAGS -Wno-pedantic-ms-format"
            fi
-
            case $host_os in
-
              cygwin*)
-
                dnl Silence warning in 'lt_fatal' libtool function
-
                tmp_CFLAGS="$tmp_CFLAGS -Wno-suggest-attribute=noreturn"
-
                ;;
-
            esac
          fi
          #
          dnl Only gcc 4.6 or later
          if test "$compiler_num" -ge "406"; then
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [double-promotion])
-
            CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [trampolines])
          fi
          #
          dnl only gcc 4.8 or later
@@ -1111,23 +1106,6 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
            fi
          fi
        fi
-
        if test "$compiler_num" -lt "405"; then
-
          dnl Avoid false positives
-
          tmp_CFLAGS="$tmp_CFLAGS -Wno-shadow"
-
          tmp_CFLAGS="$tmp_CFLAGS -Wno-unreachable-code"
-
        fi
-
        if test "$compiler_num" -ge "402" -a "$compiler_num" -lt "406"; then
-
          dnl GCC <4.6 do not support #pragma to suppress warnings locally. Disable globally instead.
-
          tmp_CFLAGS="$tmp_CFLAGS -Wno-overlength-strings"
-
        fi
-
        if test "$compiler_num" -ge "400" -a "$compiler_num" -lt "407"; then
-
          dnl https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84685
-
          tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-field-initializers"
-
        fi
-
        if test "$compiler_num" -ge "403" -a "$compiler_num" -lt "408"; then
-
          dnl Avoid false positives
-
          tmp_CFLAGS="$tmp_CFLAGS -Wno-type-limits"
-
        fi
        ;;
        #
      HP_UX_C)
modified external/curl/m4/curl-confopts.m4
@@ -29,7 +29,7 @@ dnl CURL_CHECK_OPTION_THREADED_RESOLVER
dnl -------------------------------------------------
dnl Verify if configure has been invoked with option
dnl --enable-threaded-resolver or --disable-threaded-resolver, and
-
dnl set shell variable want_threaded_resolver as appropriate.
+
dnl set shell variable want_thres as appropriate.

AC_DEFUN([CURL_CHECK_OPTION_THREADED_RESOLVER], [
  AC_MSG_CHECKING([whether to enable the threaded resolver])
@@ -41,29 +41,14 @@ AS_HELP_STRING([--disable-threaded-resolver],[Disable threaded resolver]),
  case "$OPT_THRES" in
    no)
      dnl --disable-threaded-resolver option used
-
      want_threaded_resolver="no"
-
      ;;
-
    yes)
-
      dnl --enable-threaded-resolver option used
-
      want_threaded_resolver="yes"
+
      want_thres="no"
      ;;
    *)
      dnl configure option not specified
-
      case $host_os in
-
        msdos* | amiga*)
-
          want_threaded_resolver="no"
-
          ;;
-
        *)
-
          if test "$want_ares" = "yes"; then
-
            want_threaded_resolver="no"
-
          else
-
            want_threaded_resolver="yes"
-
          fi
-
          ;;
-
      esac
+
      want_thres="yes"
      ;;
  esac
-
  AC_MSG_RESULT([$want_threaded_resolver])
+
  AC_MSG_RESULT([$want_thres])
])

dnl CURL_CHECK_OPTION_ARES
@@ -285,6 +270,53 @@ AS_HELP_STRING([--disable-symbol-hiding],[Disable hiding of library internal sym
])


+
dnl CURL_CHECK_OPTION_THREADS
+
dnl -------------------------------------------------
+
dnl Verify if configure has been invoked with option
+
dnl --enable-threads or --disable-threads, and
+
dnl set shell variable want_threads as appropriate.
+

+
dnl AC_DEFUN([CURL_CHECK_OPTION_THREADS], [
+
dnl   AC_BEFORE([$0],[CURL_CHECK_LIB_THREADS])dnl
+
dnl   AC_MSG_CHECKING([whether to enable threads for DNS lookups])
+
dnl   OPT_THREADS="default"
+
dnl   AC_ARG_ENABLE(threads,
+
dnl AS_HELP_STRING([--enable-threads@<:@=PATH@:>@],[Enable threads for DNS lookups])
+
dnl AS_HELP_STRING([--disable-threads],[Disable threads for DNS lookups]),
+
dnl   OPT_THREADS=$enableval)
+
dnl   case "$OPT_THREADS" in
+
dnl     no)
+
dnl       dnl --disable-threads option used
+
dnl       want_threads="no"
+
dnl       AC_MSG_RESULT([no])
+
dnl       ;;
+
dnl     default)
+
dnl       dnl configure option not specified
+
dnl       want_threads="no"
+
dnl       AC_MSG_RESULT([(assumed) no])
+
dnl       ;;
+
dnl     *)
+
dnl       dnl --enable-threads option used
+
dnl       want_threads="yes"
+
dnl       want_threads_path="$enableval"
+
dnl       AC_MSG_RESULT([yes])
+
dnl       ;;
+
dnl   esac
+
dnl   #
+
dnl   if test "$want_ares" = "assume_yes"; then
+
dnl     if test "$want_threads" = "yes"; then
+
dnl       AC_MSG_CHECKING([whether to ignore c-ares enabling assumed setting])
+
dnl       AC_MSG_RESULT([yes])
+
dnl       want_ares="no"
+
dnl     else
+
dnl       want_ares="yes"
+
dnl     fi
+
dnl   fi
+
dnl   if test "$want_threads" = "yes" && test "$want_ares" = "yes"; then
+
dnl     AC_MSG_ERROR([options --enable-ares and --enable-threads are mutually exclusive, at most one may be enabled.])
+
dnl   fi
+
dnl ])
+

dnl CURL_CHECK_OPTION_RT
dnl -------------------------------------------------
dnl Verify if configure has been invoked with option
@@ -532,13 +564,77 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [
    if test "$want_ares" = "yes"; then
      dnl finally c-ares will be used
      AC_DEFINE(USE_ARES, 1, [Define to enable c-ares support])
-
      USE_ARES=1
+
      AC_DEFINE(CARES_NO_DEPRECATED, 1, [Ignore c-ares deprecation warnings])
+
      AC_SUBST([USE_ARES], [1])
      LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libcares"
      curl_res_msg="c-ares"
    fi
  fi
])

+
dnl CURL_CHECK_OPTION_NTLM_WB
+
dnl -------------------------------------------------
+
dnl Verify if configure has been invoked with option
+
dnl --enable-ntlm-wb or --disable-ntlm-wb, and set
+
dnl shell variable want_ntlm_wb and want_ntlm_wb_file
+
dnl as appropriate.
+

+
AC_DEFUN([CURL_CHECK_OPTION_NTLM_WB], [
+
  AC_BEFORE([$0],[CURL_CHECK_NTLM_WB])dnl
+
  OPT_NTLM_WB="default"
+
  AC_ARG_ENABLE(ntlm-wb,
+
AS_HELP_STRING([--enable-ntlm-wb@<:@=FILE@:>@],[Enable NTLM delegation to winbind's ntlm_auth helper, where FILE is ntlm_auth's absolute filename (default: /usr/bin/ntlm_auth)])
+
AS_HELP_STRING([--disable-ntlm-wb],[Disable NTLM delegation to winbind's ntlm_auth helper]),
+
  OPT_NTLM_WB=$enableval)
+
  want_ntlm_wb_file="/usr/bin/ntlm_auth"
+
  case "$OPT_NTLM_WB" in
+
    no)
+
      dnl --disable-ntlm-wb option used
+
      want_ntlm_wb="no"
+
      ;;
+
    default)
+
      dnl configure option not specified
+
      want_ntlm_wb="yes"
+
      ;;
+
    *)
+
      dnl --enable-ntlm-wb option used
+
      want_ntlm_wb="yes"
+
      if test -n "$enableval" && test "$enableval" != "yes"; then
+
        want_ntlm_wb_file="$enableval"
+
      fi
+
      ;;
+
  esac
+
])
+

+

+
dnl CURL_CHECK_NTLM_WB
+
dnl -------------------------------------------------
+
dnl Check if support for NTLM delegation to winbind's
+
dnl ntlm_auth helper will finally be enabled depending
+
dnl on given configure options and target platform.
+

+
AC_DEFUN([CURL_CHECK_NTLM_WB], [
+
  AC_REQUIRE([CURL_CHECK_OPTION_NTLM_WB])dnl
+
  AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl
+
  AC_MSG_CHECKING([whether to enable NTLM delegation to winbind's helper])
+
  if test "$curl_cv_native_windows" = "yes" ||
+
    test "x$SSL_ENABLED" = "x"; then
+
    want_ntlm_wb_file=""
+
    want_ntlm_wb="no"
+
  elif test "x$ac_cv_func_fork" != "xyes"; then
+
    dnl ntlm_wb requires fork
+
    want_ntlm_wb="no"
+
  fi
+
  AC_MSG_RESULT([$want_ntlm_wb])
+
  if test "$want_ntlm_wb" = "yes"; then
+
    AC_DEFINE(NTLM_WB_ENABLED, 1,
+
      [Define to enable NTLM delegation to winbind's ntlm_auth helper.])
+
    AC_DEFINE_UNQUOTED(NTLM_WB_FILE, "$want_ntlm_wb_file",
+
      [Define absolute filename for winbind's ntlm_auth helper.])
+
    NTLM_WB_ENABLED=1
+
  fi
+
])
+

dnl CURL_CHECK_OPTION_HTTPSRR
dnl -----------------------------------------------------
dnl Verify whether configure has been invoked with option
@@ -568,7 +664,7 @@ AS_HELP_STRING([--disable-httpsrr],[Disable HTTPSRR support]),
    *)
      dnl --enable-httpsrr option used
      want_httpsrr="yes"
-
      curl_httpsrr_msg="enabled"
+
      curl_httpsrr_msg="enabled (--disable-httpsrr)"
      AC_MSG_RESULT([yes])
      ;;
  esac
@@ -609,41 +705,3 @@ AS_HELP_STRING([--disable-ech],[Disable ECH support]),
  esac
])
])
-

-
dnl CURL_CHECK_OPTION_SSLS_EXPORT
-
dnl -----------------------------------------------------
-
dnl Verify whether configure has been invoked with option
-
dnl --enable-ssl-session-export or --disable-ssl-session-export, and set
-
dnl shell variable want_ech as appropriate.
-

-
AC_DEFUN([CURL_CHECK_OPTION_SSLS_EXPORT], [
-
  AC_MSG_CHECKING([whether to enable SSL session export support])
-
  OPT_SSLS_EXPORT="default"
-
  AC_ARG_ENABLE(ssls-export,
-
AS_HELP_STRING([--enable-ssls-export],
-
               [Enable SSL session export support])
-
AS_HELP_STRING([--disable-ssls-export],
-
               [Disable SSL session export support]),
-
  OPT_SSLS_EXPORT=$enableval)
-
  case "$OPT_SSLS_EXPORT" in
-
    no)
-
      dnl --disable-ssls-export option used
-
      want_ssls_export="no"
-
      curl_ssls_export_msg="no      (--enable-ssls-export)"
-
      AC_MSG_RESULT([no])
-
      ;;
-
    default)
-
      dnl configure option not specified
-
      want_ssls_export="no"
-
      curl_ssls_export_msg="no      (--enable-ssls-export)"
-
      AC_MSG_RESULT([no])
-
      ;;
-
    *)
-
      dnl --enable-ssls-export option used
-
      want_ssls_export="yes"
-
      curl_ssls_export_msg="enabled (--disable-ssls-export)"
-
      AC_MSG_RESULT([yes])
-
      ;;
-
  esac
-
])
-
])
modified external/curl/m4/curl-functions.m4
@@ -742,6 +742,7 @@ AC_DEFUN([CURL_CHECK_FUNC_CLOSESOCKET_CAMEL], [
  AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl
  #
  tst_links_closesocket_camel="unknown"
+
  tst_proto_closesocket_camel="unknown"
  tst_compi_closesocket_camel="unknown"
  tst_allow_closesocket_camel="unknown"
  #
@@ -763,6 +764,20 @@ AC_DEFUN([CURL_CHECK_FUNC_CLOSESOCKET_CAMEL], [
  ])
  #
  if test "$tst_links_closesocket_camel" = "yes"; then
+
    AC_MSG_CHECKING([if CloseSocket is prototyped])
+
    AC_EGREP_CPP([CloseSocket],[
+
      $curl_includes_bsdsocket
+
      $curl_includes_sys_socket
+
    ],[
+
      AC_MSG_RESULT([yes])
+
      tst_proto_closesocket_camel="yes"
+
    ],[
+
      AC_MSG_RESULT([no])
+
      tst_proto_closesocket_camel="no"
+
    ])
+
  fi
+
  #
+
  if test "$tst_proto_closesocket_camel" = "yes"; then
    AC_MSG_CHECKING([if CloseSocket is compilable])
    AC_COMPILE_IFELSE([
      AC_LANG_PROGRAM([[
@@ -794,6 +809,7 @@ AC_DEFUN([CURL_CHECK_FUNC_CLOSESOCKET_CAMEL], [
  #
  AC_MSG_CHECKING([if CloseSocket might be used])
  if test "$tst_links_closesocket_camel" = "yes" &&
+
     test "$tst_proto_closesocket_camel" = "yes" &&
     test "$tst_compi_closesocket_camel" = "yes" &&
     test "$tst_allow_closesocket_camel" = "yes"; then
    AC_MSG_RESULT([yes])
@@ -1482,6 +1498,103 @@ AC_DEFUN([CURL_CHECK_FUNC_GETADDRINFO], [
])


+
dnl CURL_CHECK_FUNC_GETHOSTBYNAME
+
dnl -------------------------------------------------
+
dnl Verify if gethostbyname is available, prototyped,
+
dnl and can be compiled. If all of these are true,
+
dnl and usage has not been previously disallowed with
+
dnl shell variable curl_disallow_gethostbyname, then
+
dnl HAVE_GETHOSTBYNAME will be defined.
+

+
AC_DEFUN([CURL_CHECK_FUNC_GETHOSTBYNAME], [
+
  AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl
+
  AC_REQUIRE([CURL_INCLUDES_NETDB])dnl
+
  #
+
  tst_links_gethostbyname="unknown"
+
  tst_proto_gethostbyname="unknown"
+
  tst_compi_gethostbyname="unknown"
+
  tst_allow_gethostbyname="unknown"
+
  #
+
  AC_MSG_CHECKING([if gethostbyname can be linked])
+
  AC_LINK_IFELSE([
+
    AC_LANG_PROGRAM([[
+
      $curl_includes_winsock2
+
      $curl_includes_bsdsocket
+
      $curl_includes_netdb
+
    ]],[[
+
      if(0 != gethostbyname(0))
+
        return 1;
+
    ]])
+
  ],[
+
    AC_MSG_RESULT([yes])
+
    tst_links_gethostbyname="yes"
+
  ],[
+
    AC_MSG_RESULT([no])
+
    tst_links_gethostbyname="no"
+
  ])
+
  #
+
  if test "$tst_links_gethostbyname" = "yes"; then
+
    AC_MSG_CHECKING([if gethostbyname is prototyped])
+
    AC_EGREP_CPP([gethostbyname],[
+
      $curl_includes_winsock2
+
      $curl_includes_bsdsocket
+
      $curl_includes_netdb
+
    ],[
+
      AC_MSG_RESULT([yes])
+
      tst_proto_gethostbyname="yes"
+
    ],[
+
      AC_MSG_RESULT([no])
+
      tst_proto_gethostbyname="no"
+
    ])
+
  fi
+
  #
+
  if test "$tst_proto_gethostbyname" = "yes"; then
+
    AC_MSG_CHECKING([if gethostbyname is compilable])
+
    AC_COMPILE_IFELSE([
+
      AC_LANG_PROGRAM([[
+
        $curl_includes_winsock2
+
        $curl_includes_bsdsocket
+
        $curl_includes_netdb
+
      ]],[[
+
        if(0 != gethostbyname(0))
+
          return 1;
+
      ]])
+
    ],[
+
      AC_MSG_RESULT([yes])
+
      tst_compi_gethostbyname="yes"
+
    ],[
+
      AC_MSG_RESULT([no])
+
      tst_compi_gethostbyname="no"
+
    ])
+
  fi
+
  #
+
  if test "$tst_compi_gethostbyname" = "yes"; then
+
    AC_MSG_CHECKING([if gethostbyname usage allowed])
+
    if test "x$curl_disallow_gethostbyname" != "xyes"; then
+
      AC_MSG_RESULT([yes])
+
      tst_allow_gethostbyname="yes"
+
    else
+
      AC_MSG_RESULT([no])
+
      tst_allow_gethostbyname="no"
+
    fi
+
  fi
+
  #
+
  AC_MSG_CHECKING([if gethostbyname might be used])
+
  if test "$tst_links_gethostbyname" = "yes" &&
+
     test "$tst_proto_gethostbyname" = "yes" &&
+
     test "$tst_compi_gethostbyname" = "yes" &&
+
     test "$tst_allow_gethostbyname" = "yes"; then
+
    AC_MSG_RESULT([yes])
+
    AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYNAME, 1,
+
      [Define to 1 if you have the gethostbyname function.])
+
    curl_cv_func_gethostbyname="yes"
+
  else
+
    AC_MSG_RESULT([no])
+
    curl_cv_func_gethostbyname="no"
+
  fi
+
])
+

+

dnl CURL_CHECK_FUNC_GETHOSTBYNAME_R
dnl -------------------------------------------------
dnl Verify if gethostbyname_r is available, prototyped,
@@ -2501,7 +2614,7 @@ dnl Verify if ioctl is available, prototyped, and
dnl can be compiled. If all of these are true, and
dnl usage has not been previously disallowed with
dnl shell variable curl_disallow_ioctl, then
-
dnl curl_cv_func_ioctl is set to "yes".
+
dnl HAVE_IOCTL will be defined.

AC_DEFUN([CURL_CHECK_FUNC_IOCTL], [
  AC_REQUIRE([CURL_INCLUDES_STROPTS])dnl
@@ -2570,6 +2683,8 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTL], [
     test "$tst_compi_ioctl" = "yes" &&
     test "$tst_allow_ioctl" = "yes"; then
    AC_MSG_RESULT([yes])
+
    AC_DEFINE_UNQUOTED(HAVE_IOCTL, 1,
+
      [Define to 1 if you have the ioctl function.])
    curl_cv_func_ioctl="yes"
    CURL_CHECK_FUNC_IOCTL_FIONBIO
    CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR
@@ -2852,6 +2967,7 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL], [
  AC_REQUIRE([CURL_INCLUDES_BSDSOCKET])dnl
  #
  tst_links_ioctlsocket_camel="unknown"
+
  tst_proto_ioctlsocket_camel="unknown"
  tst_compi_ioctlsocket_camel="unknown"
  tst_allow_ioctlsocket_camel="unknown"
  #
@@ -2871,6 +2987,19 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL], [
  ])
  #
  if test "$tst_links_ioctlsocket_camel" = "yes"; then
+
    AC_MSG_CHECKING([if IoctlSocket is prototyped])
+
    AC_EGREP_CPP([IoctlSocket],[
+
      $curl_includes_bsdsocket
+
    ],[
+
      AC_MSG_RESULT([yes])
+
      tst_proto_ioctlsocket_camel="yes"
+
    ],[
+
      AC_MSG_RESULT([no])
+
      tst_proto_ioctlsocket_camel="no"
+
    ])
+
  fi
+
  #
+
  if test "$tst_proto_ioctlsocket_camel" = "yes"; then
    AC_MSG_CHECKING([if IoctlSocket is compilable])
    AC_COMPILE_IFELSE([
      AC_LANG_PROGRAM([[
@@ -2901,6 +3030,7 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL], [
  #
  AC_MSG_CHECKING([if IoctlSocket might be used])
  if test "$tst_links_ioctlsocket_camel" = "yes" &&
+
     test "$tst_proto_ioctlsocket_camel" = "yes" &&
     test "$tst_compi_ioctlsocket_camel" = "yes" &&
     test "$tst_allow_ioctlsocket_camel" = "yes"; then
    AC_MSG_RESULT([yes])
@@ -4509,21 +4639,19 @@ AC_DEFUN([CURL_SIZEOF], [
  r=0
  dnl Check the sizes in a reasonable order
  for typesize in 8 4 2 16 1; do
-
    AC_COMPILE_IFELSE([
-
      AC_LANG_PROGRAM([[
-
        #include <sys/types.h>
-
        $2
-
      ]],[
-
        switch(0) {
-
          case 0:
-
          case (sizeof($1) == $typesize):;
-
        }
-
      ])
-
    ],[
-
      r=$typesize
-
    ],[
-
      r=0
-
    ])
+
    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+
#include <sys/types.h>
+
$2
+
]],
+
    [switch(0) {
+
      case 0:
+
      case (sizeof($1) == $typesize):;
+
    }
+
    ]) ],
+
      [
+
        r=$typesize],
+
      [
+
        r=0])
    dnl get out of the loop once matched
    if test $r -gt 0; then
      break;
modified external/curl/m4/curl-gnutls.m4
@@ -102,6 +102,7 @@ if test "x$OPT_GNUTLS" != xno; then
      AC_CHECK_LIB(gnutls, gnutls_x509_crt_get_dn2,
        [
        AC_DEFINE(USE_GNUTLS, 1, [if GnuTLS is enabled])
+
        AC_SUBST(USE_GNUTLS, [1])
        GNUTLS_ENABLED=1
        USE_GNUTLS="yes"
        ssl_msg="GnuTLS"
@@ -163,7 +164,7 @@ if test "$GNUTLS_ENABLED" = "1"; then
  AC_CHECK_LIB(gnutls, gnutls_srp_verifier,
    [
      AC_DEFINE(HAVE_GNUTLS_SRP, 1, [if you have the function gnutls_srp_verifier])
-
      HAVE_GNUTLS_SRP=1
+
      AC_SUBST(HAVE_GNUTLS_SRP, [1])
    ])
fi

modified external/curl/m4/curl-mbedtls.m4
@@ -46,6 +46,7 @@ if test "x$OPT_MBEDTLS" != xno; then
      dnl libmbedtls found, set the variable
      [
        AC_DEFINE(USE_MBEDTLS, 1, [if mbedTLS is enabled])
+
        AC_SUBST(USE_MBEDTLS, [1])
        MBEDTLS_ENABLED=1
        USE_MBEDTLS="yes"
        ssl_msg="mbedTLS"
@@ -73,6 +74,7 @@ if test "x$OPT_MBEDTLS" != xno; then
      AC_CHECK_LIB(mbedtls, mbedtls_ssl_init,
        [
        AC_DEFINE(USE_MBEDTLS, 1, [if mbedTLS is enabled])
+
        AC_SUBST(USE_MBEDTLS, [1])
        MBEDTLS_ENABLED=1
        USE_MBEDTLS="yes"
        ssl_msg="mbedTLS"
modified external/curl/m4/curl-openssl.m4
@@ -120,6 +120,7 @@ if test "x$OPT_OPENSSL" != xno; then
      SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
        $PKGCONFIG --cflags-only-I openssl 2>/dev/null`

+
      AC_SUBST(SSL_LIBS)
      AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
      AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
      AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
@@ -229,6 +230,21 @@ if test "x$OPT_OPENSSL" != xno; then
        test openssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
        OPENSSL_ENABLED=1
        AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use]))
+

+
      if test $ac_cv_header_openssl_x509_h = no; then
+
        dnl we don't use the "action" part of the AC_CHECK_HEADERS macro
+
        dnl since 'err.h' might in fact find a krb4 header with the same
+
        dnl name
+
        AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h)
+

+
        if test $ac_cv_header_x509_h = yes &&
+
           test $ac_cv_header_crypto_h = yes &&
+
           test $ac_cv_header_ssl_h = yes; then
+
          dnl three matches
+
          ssl_msg="OpenSSL"
+
          OPENSSL_ENABLED=1
+
        fi
+
      fi
    fi

    if test X"$OPENSSL_ENABLED" != X"1"; then
@@ -287,6 +303,8 @@ if test "x$OPT_OPENSSL" != xno; then
      ]])
    ],[
      AC_MSG_RESULT([yes])
+
      AC_DEFINE_UNQUOTED(HAVE_LIBRESSL, 1,
+
        [Define to 1 if using LibreSSL.])
      ssl_msg="LibreSSL"
    ],[
      AC_MSG_RESULT([no])
@@ -360,7 +378,7 @@ if test "$OPENSSL_ENABLED" = "1"; then
  ],[
    AC_MSG_RESULT([yes])
    AC_DEFINE(HAVE_OPENSSL_SRP, 1, [if you have the functions SSL_CTX_set_srp_username and SSL_CTX_set_srp_password])
-
    HAVE_OPENSSL_SRP=1
+
    AC_SUBST(HAVE_OPENSSL_SRP, [1])
  ],[
    AC_MSG_RESULT([no])
  ])
modified external/curl/m4/curl-rustls.m4
@@ -94,6 +94,7 @@ if test "x$OPT_RUSTLS" != xno; then
        AC_CHECK_LIB(rustls, rustls_connection_read,
          [
          AC_DEFINE(USE_RUSTLS, 1, [if Rustls is enabled])
+
          AC_SUBST(USE_RUSTLS, [1])
          RUSTLS_ENABLED=1
          USE_RUSTLS="yes"
          ssl_msg="rustls"
@@ -127,6 +128,7 @@ if test "x$OPT_RUSTLS" != xno; then
      SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$RUSTLS_PCDIR]) dnl
        $PKGCONFIG --cflags-only-I rustls 2>/dev/null`

+
      AC_SUBST(SSL_LIBS)
      AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
      AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
      AC_MSG_NOTICE([pkg-config: SSL_CPPFLAGS: "$SSL_CPPFLAGS"])
@@ -143,6 +145,7 @@ if test "x$OPT_RUSTLS" != xno; then
      link_pkgconfig=1
      ssl_msg="rustls"
      AC_DEFINE(USE_RUSTLS, 1, [if Rustls is enabled])
+
      AC_SUBST(USE_RUSTLS, [1])
      USE_RUSTLS="yes"
      RUSTLS_ENABLED=1
      test rustls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
modified external/curl/m4/curl-schannel.m4
@@ -30,12 +30,13 @@ if test "x$OPT_SCHANNEL" != xno; then
     test "x$curl_cv_native_windows" = "xyes"; then
    AC_MSG_RESULT(yes)
    AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support])
+
    AC_SUBST(USE_SCHANNEL, [1])
    ssl_msg="Schannel"
    test schannel != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
    SCHANNEL_ENABLED=1
    # --with-schannel implies --enable-sspi
    AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support])
-
    USE_WINDOWS_SSPI=1
+
    AC_SUBST(USE_WINDOWS_SSPI, [1])
    curl_sspi_msg="enabled"
  else
    AC_MSG_RESULT(no)
modified external/curl/m4/curl-sectransp.m4
@@ -29,6 +29,7 @@ if test "x$OPT_SECURETRANSPORT" != xno; then
     (test "x$cross_compiling" != "xno" || test -d "/System/Library/Frameworks/Security.framework"); then
    AC_MSG_RESULT(yes)
    AC_DEFINE(USE_SECTRANSP, 1, [enable Secure Transport])
+
    AC_SUBST(USE_SECTRANSP, [1])
    ssl_msg="Secure Transport"
    test secure-transport != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
    SECURETRANSPORT_ENABLED=1
modified external/curl/m4/curl-wolfssl.m4
@@ -105,6 +105,7 @@ if test "x$OPT_WOLFSSL" != xno; then
      ],[
        AC_MSG_RESULT(yes)
        AC_DEFINE(USE_WOLFSSL, 1, [if wolfSSL is enabled])
+
        AC_SUBST(USE_WOLFSSL, [1])
        WOLFSSL_ENABLED=1
        USE_WOLFSSL="yes"
        ssl_msg="wolfSSL"
modified external/curl/packages/Makefile.in
@@ -204,6 +204,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -228,10 +229,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -250,14 +272,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -294,6 +324,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -301,10 +334,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/packages/OS400/README.OS400
@@ -4,10 +4,10 @@ Implementation notes:
  This is a true OS/400 ILE implementation, not a PASE implementation (for
PASE, use AIX implementation).

-
  The biggest problem with OS/400 is EBCDIC. libcurl implements an internal
+
  The biggest problem with OS/400 is EBCDIC. Libcurl implements an internal
conversion mechanism, but it has been designed for computers that have a
single native character set. OS/400 default native character set varies
-
depending on the country for which it has been localized. Further, a job
+
depending on the country for which it has been localized. And more, a job
may dynamically alter its "native" character set.
  Several characters that do not have fixed code in EBCDIC variants are
used in libcurl strings. As a consequence, using the existing conversion
@@ -33,7 +33,7 @@ NOT converted, so text gathered this way is (probably !) ASCII.
  Another OS/400 problem comes from the fact that the last fixed argument of a
vararg procedure may not be of type char, unsigned char, short or unsigned
short. Enums that are internally implemented by the C compiler as one of these
-
types are also forbidden. libcurl uses enums as vararg procedure tagfields...
+
types are also forbidden. Libcurl uses enums as vararg procedure tagfields...
Happily, there is a pragma forcing enums to type "int". The original libcurl
header files are thus altered during build process to use this pragma, in
order to force libcurl enums of being type int (the pragma disposition in use
@@ -201,7 +201,7 @@ _ curl_pushheader_bynum_cssid() and curl_pushheader_byname_ccsid()
should be released with curl_free() after use, as opposite to the non-ccsid
versions of these procedures.
  Please note that HTTP2 is not (yet) implemented on OS/400, thus these
-
functions always return NULL.
+
functions will always return NULL.

_ curl_easy_option_by_name_ccsid() returns a pointer to an untranslated option
metadata structure. As each curl_easyoption structure holds the option name in
@@ -216,15 +216,15 @@ hout parameter is kept in libcurl's encoding and should not be altered.
_ curl_from_ccsid() and curl_to_ccsid() are string encoding conversion
functions between ASCII (latin1) and the given CCSID. The first parameter is
the source string, the second is the CCSID and the returned value is a pointer
-
to the dynamically allocated string. These functions do not impact on curl's
+
to the dynamically allocated string. These functions do not impact on Curl's
behavior and are only provided for user convenience. After use, returned values
must be released with curl_free().


-
  Standard compilation environment does support neither autotools nor make; in
-
fact, few common utilities are available. As a consequence, the config-os400.h
-
has been coded manually and the compilation scripts are a set of shell scripts
-
stored in subdirectory packages/OS400.
+
  Standard compilation environment does support neither autotools nor make;
+
in fact, very few common utilities are available. As a consequence, the
+
config-os400.h has been coded manually and the compilation scripts are
+
a set of shell scripts stored in subdirectory packages/OS400.

  The test environment is currently not supported on OS/400.

@@ -259,7 +259,7 @@ _ TFTP
Compiling on OS/400:

  These instructions targets people who knows about OS/400, compiling, IFS and
-
archive extraction. Do not ask questions about these subjects if you are not
+
archive extraction. Do not ask questions about these subjects if you're not
familiar with.

_ As a prerequisite, QADRT development environment must be installed.
@@ -286,20 +286,20 @@ _ Enter the command "sh makefile.sh > makelog 2>&1"
_ Examine the makelog file to check for compilation errors. CZM0383 warnings on
  C or system standard API come from QADRT inlining and can safely be ignored.

-
  Without configuration parameters override, this produces the following
+
  Without configuration parameters override, this will produce the following
OS/400 objects:
-
_ libcurl. All other objects are stored in this library.
+
_ Library CURL. All other objects will be stored in this library.
_ Modules for all libcurl units.
_ Binding directory CURL_A, to be used at calling program link time for
  statically binding the modules (specify BNDSRVPGM(QADRTTS QGLDCLNT QGLDBRDR)
  when creating a program using CURL_A).
_ Service program CURL.<soname>, where <soname> is extracted from the
-
  lib/Makefile.am VERSION variable. To be used at calling program runtime
+
  lib/Makefile.am VERSION variable. To be used at calling program run-time
  when this program has dynamically bound curl at link time.
_ Binding directory CURL. To be used to dynamically bind libcurl when linking a
  calling program.
-
- CLI tool bound program curl.
-
- CLI command curl.
+
- CLI tool bound program CURL.
+
- CLI command CURL.
_ Source file H. It contains all the include members needed to compile a C/C++
  module using libcurl, and an ILE/RPG /copy member for support in this
  language.
modified external/curl/packages/vms/Makefile.in
@@ -146,6 +146,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -170,10 +171,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -192,14 +214,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -236,6 +266,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -243,10 +276,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/packages/vms/generate_config_vms_h_curl.com
@@ -218,6 +218,15 @@ $! for compatibility.
$write cvh "/* Location of default ca path */"
$write cvh "#define curl_ca_path ""gnv$curl_ca_path"""
$!
+
$! NTLM_WB_ENABLED requires fork() but configure does not know this
+
$! We have to disable this in the configure command line.
+
$! config_h.com finds that configure defaults to it being enabled so
+
$! reports it.  So we need to turn it off here.
+
$!
+
$write cvh "#ifdef NTLM_WB_ENABLED"
+
$write cvh "#undef NTLM_WB_ENABLED"
+
$write cvh "#endif"
+
$!
$! The config_h.com finds a bunch of default disable commands in
$! configure and will incorrectly disable these options.  The config_h.com
$! is a generic procedure and it would break more things to try to fix it
modified external/curl/packages/vms/gnv_link_curl.com
@@ -396,7 +396,7 @@ $ if f$search("[.src]curl.exe") .eqs. ""
$   then
$       define/user gnv$libcurl 'gnv_libcurl_share'
$       link'ldebug'/exe=[.src]curl.exe/dsf=[.src]curl.dsf -
-
           [.src]curl-tool_main.o, -
+
           [.src]curl-tool_main.o, [.src]curl-tool_binmode.o, -
           [.src]curl-tool_bname.o, [.src]curl-tool_cb_dbg.o, -
           [.src]curl-tool_cb_hdr.o, [.src]curl-tool_cb_prg.o, -
           [.src]curl-tool_cb_rea.o, [.src]curl-tool_cb_see.o, -
modified external/curl/projects/README.md
@@ -10,14 +10,11 @@ Building via IDE Project Files
This document describes how to compile, build and install curl and libcurl
from sources using legacy versions of Visual Studio 2010 - 2013.

-
You need to generate the project files before using them. Please run "generate
-
-help" for usage details.
+
You will need to generate the project files before using them. Please run
+
"generate -help" for usage details.

To generate project files for recent versions of Visual Studio instead, use
-
cmake. Refer to INSTALL-CMAKE.md in the docs directory.
-

-
Another way to build curl using Visual Studio is without project files. Refer
-
to README in the winbuild directory.
+
cmake. Refer to INSTALL-CMAKE in the docs directory.

## Directory Structure

@@ -42,8 +39,8 @@ a library is being compiled against dynamic runtime libraries.
## Dependencies

The projects files also support build configurations that require third party
-
dependencies such as OpenSSL and libssh2. If you wish to support these, you
-
also need to download and compile those libraries as well.
+
dependencies such as OpenSSL, wolfSSL and libssh2. If you wish to support
+
these, you will also need to download and compile those libraries as well.

To support compilation of these libraries using different versions of
compilers, the following directory structure has been used for both the output
@@ -70,19 +67,20 @@ of curl and libcurl as well as these dependencies.
            |_VC <version>
              |_<configuration>

-
As OpenSSL does not support side-by-side compilation when using different
-
versions of Visual Studio, a helper batch file has been provided to assist
-
with this. Please run `build-openssl -help` for usage details.
+
As OpenSSL and wolfSSL don't support side-by-side compilation when using
+
different versions of Visual Studio, build helper batch files have been
+
provided to assist with this. Please run `build-openssl -help` and/or
+
`build-wolfssl -help` for usage details.

## Building with Visual C++

-
To build with VC++, you have to first install VC++ which is part of Visual
-
Studio.
+
To build with VC++, you will of course have to first install VC++ which is
+
part of Visual Studio.

Once you have VC++ installed you should launch the application and open one of
the solution or workspace files. The VC directory names are based on the
-
version of Visual C++ that you use. Each version of Visual Studio has a
-
default version of Visual C++. We offer these versions:
+
version of Visual C++ that you will be using. Each version of Visual Studio
+
has a default version of Visual C++. We offer these versions:

 - VC10      (Visual Studio 2010 Version 10.0)
 - VC11      (Visual Studio 2012 Version 11.0)
@@ -99,9 +97,9 @@ use `VC10\curl-all.sln` to build curl and libcurl.
## Running DLL based configurations

If you are a developer and plan to run the curl tool from Visual Studio with
-
any third-party libraries (such as OpenSSL or libssh2) then you need to add
-
the search path of these DLLs to the configuration's PATH environment. To do
-
that:
+
any third-party libraries (such as OpenSSL, wolfSSL or libssh2) then you will
+
need to add the search path of these DLLs to the configuration's PATH
+
environment. To do that:

 1. Open the 'curl-all.sln' or 'curl.sln' solutions
 2. Right-click on the 'curl' project and select Properties
@@ -121,9 +119,19 @@ DLL Debug - DLL OpenSSL (x64):
    PATH=..\..\..\..\..\openssl\build\Win64\VC10\DLL Debug;C:\Windows\System32;
    C:\Windows;C:\Windows\System32\Wbem

+
DLL Debug - DLL wolfSSL (Win32):
+

+
    PATH=..\..\..\..\..\wolfssl\build\Win32\VC10\DLL Debug;C:\Windows\System32;
+
    C:\Windows;C:\Windows\System32\Wbem
+

+
DLL Debug - DLL wolfSSL (x64):
+

+
    PATH=..\..\..\..\..\wolfssl\build\Win64\VC10\DLL Debug;C:\Windows\System32;
+
    C:\Windows;C:\Windows\System32\Wbem
+

If you are using a configuration that uses multiple third-party library DLLs
-
(such as DLL Debug - DLL OpenSSL - DLL libssh2) then 'Path to DLL' need to
-
contain the path to both of these.
+
(such as DLL Debug - DLL OpenSSL - DLL libssh2) then 'Path to DLL' will need
+
to contain the path to both of these.

## Notes

@@ -139,14 +147,14 @@ Should you wish to help out with some of the items on the TODO list, or find
bugs in the project files that need correcting, and would like to submit
updated files back then please note that, whilst the solution files can be
edited directly, the templates for the project files (which are stored in the
-
git repository) need to be modified rather than the generated project files
-
that Visual Studio uses.
+
git repository) will need to be modified rather than the generated project
+
files that Visual Studio uses.

## Legacy Windows and SSL

-
Some of the project configurations use Schannel (Windows SSPI), the native SSL
-
library that comes with the Windows OS. Schannel in Windows 8 and earlier is
-
not able to connect to servers that no longer support the legacy handshakes
-
and algorithms used by those versions. If you are using curl in one of those
-
earlier versions of Windows you should choose another SSL backend like
-
OpenSSL.
+
Some of the project configurations allow the use of Schannel, the native SSL
+
library in Windows which forms part of Windows SSPI. However, Schannel in
+
Windows <= XP is unable to connect to servers that no longer support the
+
legacy handshakes and algorithms used by those versions. If you will be using
+
curl in one of those earlier versions of Windows you should choose another SSL
+
backend such as OpenSSL.
added external/curl/projects/build-wolfssl.bat
@@ -0,0 +1,429 @@
+
@echo off
+
rem ***************************************************************************
+
rem *                                  _   _ ____  _
+
rem *  Project                     ___| | | |  _ \| |
+
rem *                             / __| | | | |_) | |
+
rem *                            | (__| |_| |  _ <| |___
+
rem *                             \___|\___/|_| \_\_____|
+
rem *
+
rem * Copyright (C) Steve Holme, <steve_holme@hotmail.com>.
+
rem * Copyright (C) Jay Satiro, <raysatiro@yahoo.com>.
+
rem *
+
rem * This software is licensed as described in the file COPYING, which
+
rem * you should have received as part of this distribution. The terms
+
rem * are also available at https://curl.se/docs/copyright.html.
+
rem *
+
rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+
rem * copies of the Software, and permit persons to whom the Software is
+
rem * furnished to do so, under the terms of the COPYING file.
+
rem *
+
rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+
rem * KIND, either express or implied.
+
rem *
+
rem * SPDX-License-Identifier: curl
+
rem *
+
rem ***************************************************************************
+

+
:begin
+
  rem Check we are running on a Windows NT derived OS
+
  if not "%OS%" == "Windows_NT" goto nodos
+

+
  rem Set our variables
+
  setlocal
+
  set SUCCESSFUL_BUILDS=
+
  set VC_VER=
+
  set BUILD_PLATFORM=
+
  set DEFAULT_START_DIR=..\..\wolfssl
+

+
  rem Calculate the program files directory
+
  if defined PROGRAMFILES (
+
    set "PF=%PROGRAMFILES%"
+
    set OS_PLATFORM=x86
+
  )
+
  if defined PROGRAMFILES(x86) (
+
    rem Visual Studio was x86-only prior to 14.3
+
    if /i "%~1" == "vc14.3" (
+
      set "PF=%PROGRAMFILES%"
+
    ) else (
+
      set "PF=%PROGRAMFILES(x86)%"
+
    )
+
    set OS_PLATFORM=x64
+
  )
+

+
  rem Ensure we have the required arguments
+
  if /i "%~1" == "" goto syntax
+

+
:parseArgs
+
  if "%~1" == "" goto prerequisites
+

+
  if /i "%~1" == "vc10" (
+
    set VC_VER=10.0
+
    set VC_DESC=VC10
+
    set VC_TOOLSET=v100
+
    set "VC_PATH=Microsoft Visual Studio 10.0\VC"
+
  ) else if /i "%~1" == "vc11" (
+
    set VC_VER=11.0
+
    set VC_DESC=VC11
+
    set VC_TOOLSET=v110
+
    set "VC_PATH=Microsoft Visual Studio 11.0\VC"
+
  ) else if /i "%~1" == "vc12" (
+
    set VC_VER=12.0
+
    set VC_DESC=VC12
+
    set VC_TOOLSET=v120
+
    set "VC_PATH=Microsoft Visual Studio 12.0\VC"
+
  ) else if /i "%~1" == "vc14" (
+
    set VC_VER=14.0
+
    set VC_DESC=VC14
+
    set VC_TOOLSET=v140
+
    set "VC_PATH=Microsoft Visual Studio 14.0\VC"
+
  ) else if /i "%~1" == "vc14.1" (
+
    set VC_VER=14.1
+
    set VC_DESC=VC14.10
+
    set VC_TOOLSET=v141
+

+
    rem Determine the VC14.1 path based on the installed edition in descending
+
    rem order (Enterprise, then Professional and finally Community)
+
    if exist "%PF%\Microsoft Visual Studio\2017\Enterprise\VC" (
+
      set "VC_PATH=Microsoft Visual Studio\2017\Enterprise\VC"
+
    ) else if exist "%PF%\Microsoft Visual Studio\2017\Professional\VC" (
+
      set "VC_PATH=Microsoft Visual Studio\2017\Professional\VC"
+
    ) else (
+
      set "VC_PATH=Microsoft Visual Studio\2017\Community\VC"
+
    )
+
  ) else if /i "%~1" == "vc14.2" (
+
    set VC_VER=14.2
+
    set VC_DESC=VC14.20
+
    set VC_TOOLSET=v142
+

+
    rem Determine the VC14.2 path based on the installed edition in descending
+
    rem order (Enterprise, then Professional and finally Community)
+
    if exist "%PF%\Microsoft Visual Studio\2019\Enterprise\VC" (
+
      set "VC_PATH=Microsoft Visual Studio\2019\Enterprise\VC"
+
    ) else if exist "%PF%\Microsoft Visual Studio\2019\Professional\VC" (
+
      set "VC_PATH=Microsoft Visual Studio\2019\Professional\VC"
+
    ) else (
+
      set "VC_PATH=Microsoft Visual Studio\2019\Community\VC"
+
    )
+
  ) else if /i "%~1" == "vc14.3" (
+
    set VC_VER=14.3
+
    set VC_DESC=VC14.30
+
    set VC_TOOLSET=v143
+

+
    rem Determine the VC14.3 path based on the installed edition in descending
+
    rem order (Enterprise, then Professional and finally Community)
+
    if exist "%PF%\Microsoft Visual Studio\2022\Enterprise\VC" (
+
      set "VC_PATH=Microsoft Visual Studio\2022\Enterprise\VC"
+
    ) else if exist "%PF%\Microsoft Visual Studio\2022\Professional\VC" (
+
      set "VC_PATH=Microsoft Visual Studio\2022\Professional\VC"
+
    ) else (
+
      set "VC_PATH=Microsoft Visual Studio\2022\Community\VC"
+
    )
+
  ) else if /i "%~1" == "x86" (
+
    set BUILD_PLATFORM=x86
+
  ) else if /i "%~1" == "x64" (
+
    set BUILD_PLATFORM=x64
+
  ) else if /i "%~1" == "debug" (
+
    set BUILD_CONFIG=debug
+
  ) else if /i "%~1" == "release" (
+
    set BUILD_CONFIG=release
+
  ) else if /i "%~1" == "-?" (
+
    goto syntax
+
  ) else if /i "%~1" == "-h" (
+
    goto syntax
+
  ) else if /i "%~1" == "-help" (
+
    goto syntax
+
  ) else (
+
    if not defined START_DIR (
+
      set START_DIR=%~1
+
    ) else (
+
      goto unknown
+
    )
+
  )
+

+
  shift & goto parseArgs
+

+
:prerequisites
+
  rem Compiler is a required parameter
+
  if not defined VC_VER goto syntax
+

+
  rem Default the start directory if one isn't specified
+
  if not defined START_DIR set "START_DIR=%DEFAULT_START_DIR%"
+

+
  rem Check we have a program files directory
+
  if not defined PF goto nopf
+

+
  rem Check we have Visual Studio installed
+
  if not exist "%PF%\%VC_PATH%" goto novc
+

+
  rem Check the start directory exists
+
  if not exist "%START_DIR%" goto nowolfssl
+

+
:configure
+
  if "%BUILD_PLATFORM%" == "" set BUILD_PLATFORM=%OS_PLATFORM%
+

+
  if "%BUILD_PLATFORM%" == "x86" (
+
    set VCVARS_PLATFORM=x86
+
  ) else if "%BUILD_PLATFORM%" == "x64" (
+
    if "%VC_VER%" == "10.0" set VCVARS_PLATFORM=%BUILD_PLATFORM%
+
    if "%VC_VER%" == "11.0" set VCVARS_PLATFORM=amd64
+
    if "%VC_VER%" == "12.0" set VCVARS_PLATFORM=amd64
+
    if "%VC_VER%" == "14.0" set VCVARS_PLATFORM=amd64
+
    if "%VC_VER%" == "14.1" set VCVARS_PLATFORM=amd64
+
    if "%VC_VER%" == "14.2" set VCVARS_PLATFORM=amd64
+
    if "%VC_VER%" == "14.3" set VCVARS_PLATFORM=amd64
+
  )
+

+
:start
+
  echo.
+
  set SAVED_PATH=%CD%
+

+
  if "%VC_VER%" == "14.1" (
+
    call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
+
  ) else if "%VC_VER%" == "14.2" (
+
    call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
+
  ) else if "%VC_VER%" == "14.3" (
+
    call "%PF%\%VC_PATH%\Auxiliary\Build\vcvarsall" %VCVARS_PLATFORM%
+
  ) else (
+
    call "%PF%\%VC_PATH%\vcvarsall" %VCVARS_PLATFORM%
+
  )
+

+
  echo.
+
  cd /d %SAVED_PATH%
+
  if defined START_DIR cd /d %START_DIR%
+
  goto %BUILD_PLATFORM%
+

+
:x64
+
  rem Calculate our output directory
+
  set OUTDIR=build\Win64\%VC_DESC%
+
  if not exist %OUTDIR% md %OUTDIR%
+

+
  if "%BUILD_CONFIG%" == "release" goto x64release
+

+
:x64debug
+
  rem Perform 64-bit Debug Build
+

+
  call :build Debug x64
+
  if errorlevel 1 goto error
+

+
  call :build "DLL Debug" x64
+
  if errorlevel 1 goto error
+

+
  if "%BUILD_CONFIG%" == "debug" goto success
+

+
:x64release
+
  rem Perform 64-bit Release Build
+

+
  call :build Release x64
+
  if errorlevel 1 goto error
+

+
  call :build "DLL Release" x64
+
  if errorlevel 1 goto error
+

+
  goto success
+

+
:x86
+
  rem Calculate our output directory
+
  set OUTDIR=build\Win32\%VC_DESC%
+
  if not exist %OUTDIR% md %OUTDIR%
+

+
  if "%BUILD_CONFIG%" == "release" goto x86release
+

+
:x86debug
+
  rem Perform 32-bit Debug Build
+

+
  call :build Debug Win32
+
  if errorlevel 1 goto error
+

+
  call :build "DLL Debug" Win32
+
  if errorlevel 1 goto error
+

+
  if "%BUILD_CONFIG%" == "debug" goto success
+

+
:x86release
+
  rem Perform 32-bit Release Build
+

+
  call :build Release Win32
+
  if errorlevel 1 goto error
+

+
  call :build "DLL Release" Win32
+
  if errorlevel 1 goto error
+

+
  goto success
+

+
:build
+
  rem This function builds wolfSSL.
+
  rem Usage: CALL :build <configuration> <platform>
+
  rem The current directory must be the wolfSSL directory.
+
  rem VS Configuration: Debug, Release, DLL Debug or DLL Release.
+
  rem VS Platform: Win32 or x64.
+
  rem Returns: 1 on fail, 0 on success.
+
  rem An informational message should be shown before any return.
+
  setlocal
+
  set MSBUILD_CONFIG=%~1
+
  set MSBUILD_PLATFORM=%~2
+

+
  if not exist wolfssl64.sln (
+
    echo.
+
    echo Error: build: wolfssl64.sln not found in "%CD%"
+
    exit /b 1
+
  )
+

+
  rem OUTDIR isn't a full path, only relative. MSBUILD_OUTDIR must be full and
+
  rem not have trailing backslashes, which are handled later.
+
  if "%MSBUILD_CONFIG%" == "Debug" (
+
    set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Debug"
+
  ) else if "%MSBUILD_CONFIG%" == "Release" (
+
    set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\LIB Release"
+
  ) else if "%MSBUILD_CONFIG%" == "DLL Debug" (
+
    set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Debug"
+
  ) else if "%MSBUILD_CONFIG%" == "DLL Release" (
+
    set "MSBUILD_OUTDIR=%CD%\%OUTDIR%\DLL Release"
+
  ) else (
+
    echo.
+
    echo Error: build: Configuration not recognized.
+
    exit /b 1
+
  )
+

+
  if not "%MSBUILD_PLATFORM%" == "Win32" if not "%MSBUILD_PLATFORM%" == "x64" (
+
    echo.
+
    echo Error: build: Platform not recognized.
+
    exit /b 1
+
  )
+

+
  copy /v /y "%~dp0\wolfssl_options.h" .\cyassl\options.h
+
  if %ERRORLEVEL% neq 0 (
+
    echo.
+
    echo Error: build: Couldn't replace .\cyassl\options.h
+
    exit /b 1
+
  )
+

+
  copy /v /y "%~dp0\wolfssl_options.h" .\wolfssl\options.h
+
  if %ERRORLEVEL% neq 0 (
+
    echo.
+
    echo Error: build: Couldn't replace .\wolfssl\options.h
+
    exit /b 1
+
  )
+

+
  rem Extra trailing \ in Dirs because otherwise it thinks a quote is escaped
+
  msbuild wolfssl64.sln ^
+
    -p:CustomAfterMicrosoftCommonTargets="%~dp0\wolfssl_override.props" ^
+
    -p:Configuration="%MSBUILD_CONFIG%" ^
+
    -p:Platform="%MSBUILD_PLATFORM%" ^
+
    -p:PlatformToolset="%VC_TOOLSET%" ^
+
    -p:OutDir="%MSBUILD_OUTDIR%\\" ^
+
    -p:IntDir="%MSBUILD_OUTDIR%\obj\\"
+

+
  if %ERRORLEVEL% neq 0 (
+
    echo.
+
    echo Error: Failed building wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
+
    exit /b 1
+
  )
+

+
  rem For tests to run properly the wolfSSL directory must remain the current.
+
  set "PATH=%MSBUILD_OUTDIR%;%PATH%"
+
  "%MSBUILD_OUTDIR%\testsuite.exe"
+

+
  if %ERRORLEVEL% neq 0 (
+
    echo.
+
    echo Error: Failed testing wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
+
    exit /b 1
+
  )
+

+
  echo.
+
  echo Success: Built and tested wolfSSL %MSBUILD_CONFIG%^|%MSBUILD_PLATFORM%.
+
  echo.
+
  echo.
+
  rem This is necessary to export our local variables back to the caller.
+
  endlocal & set SUCCESSFUL_BUILDS="%MSBUILD_CONFIG%|%MSBUILD_PLATFORM%" ^
+
    %SUCCESSFUL_BUILDS%
+
  exit /b 0
+

+
:syntax
+
  rem Display the help
+
  echo.
+
  echo Usage: build-wolfssl ^<compiler^> [platform] [configuration] [directory]
+
  echo.
+
  echo.
+
  echo Compiler:
+
  echo.
+
  echo vc10      - Use Visual Studio 2010
+
  echo vc11      - Use Visual Studio 2012
+
  echo vc12      - Use Visual Studio 2013
+
  echo vc14      - Use Visual Studio 2015
+
  echo vc14.1    - Use Visual Studio 2017
+
  echo vc14.2    - Use Visual Studio 2019
+
  echo vc14.3    - Use Visual Studio 2022
+
  echo.
+
  echo.
+
  echo Platform:
+
  echo.
+
  echo x86       - Perform a 32-bit build
+
  echo x64       - Perform a 64-bit build
+
  echo.
+
  echo If this parameter is unset the OS platform is used ^(%OS_PLATFORM%^).
+
  echo.
+
  echo.
+
  echo Configuration:
+
  echo.
+
  echo debug     - Perform a debug build
+
  echo release   - Perform a release build
+
  echo.
+
  echo If this parameter is unset both configurations are built.
+
  echo.
+
  echo.
+
  echo Other:
+
  echo.
+
  echo directory - Specifies the wolfSSL source directory
+
  echo.
+
  echo If this parameter is unset the directory used is "%DEFAULT_START_DIR%".
+
  echo.
+
  goto error
+

+
:unknown
+
  echo.
+
  echo Error: Unknown argument '%1'
+
  goto error
+

+
:nodos
+
  echo.
+
  echo Error: Only a Windows NT based Operating System is supported
+
  goto error
+

+
:nopf
+
  echo.
+
  echo Error: Cannot obtain the directory for Program Files
+
  goto error
+

+
:novc
+
  echo.
+
  echo Error: %VC_DESC% is not installed
+
  goto error
+

+
:nox64
+
  echo.
+
  echo Error: %VC_DESC% does not support 64-bit builds
+
  goto error
+

+
:nowolfssl
+
  echo.
+
  echo Error: Cannot locate wolfSSL source directory, expected "%START_DIR%"
+
  goto error
+

+
:error
+
  if "%OS%" == "Windows_NT" endlocal
+
  exit /B 1
+

+
:success
+
  if defined SUCCESSFUL_BUILDS (
+
    echo.
+
    echo.
+
    echo Build complete.
+
    echo.
+
    echo The following configurations were built and tested successfully:
+
    echo.
+
    echo %SUCCESSFUL_BUILDS%
+
    echo.
+
  )
+
  cd /d %SAVED_PATH%
+
  endlocal
+
  exit /B 0
modified external/curl/projects/checksrc.bat
@@ -175,7 +175,7 @@ rem ***************************************************************************
  if "%CHECK_EXAMPLES%" == "TRUE" (
    rem Check the docs\examples directory
    if exist %SRC_DIR%\docs\examples (
-
      for /f "delims=" %%i in ('dir "%SRC_DIR%\docs\examples\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\scripts\checksrc.pl" "-D%SRC_DIR%\docs\examples" "%%i"
+
      for /f "delims=" %%i in ('dir "%SRC_DIR%\docs\examples\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\scripts\checksrc.pl" "-D%SRC_DIR%\docs\examples" -ASNPRINTF "%%i"
    )
  )

modified external/curl/projects/generate.bat
@@ -71,6 +71,15 @@ rem ***************************************************************************
  shift & goto parseArgs

:start
+
  if exist ..\buildconf.bat (
+
    if "%MODE%" == "GENERATE" (
+
      call ..\buildconf
+
    ) else if "%VERSION%" == "PRE" (
+
      call ..\buildconf -clean
+
    ) else if "%VERSION%" == "ALL" (
+
      call ..\buildconf -clean
+
    )
+
  )
  if "%VERSION%" == "PRE" goto success
  if "%VERSION%" == "VC10" goto vc10
  if "%VERSION%" == "VC11" goto vc11
@@ -155,7 +164,6 @@ rem
      call :element %1 lib "timediff.c" %3
      call :element %1 lib "nonblock.c" %3
      call :element %1 lib "warnless.c" %3
-
      call :element %1 lib "curl_get_line.c" %3
      call :element %1 lib "curl_multibyte.c" %3
      call :element %1 lib "version_win32.c" %3
      call :element %1 lib "dynbuf.c" %3
@@ -168,7 +176,6 @@ rem
      call :element %1 lib "nonblock.h" %3
      call :element %1 lib "warnless.h" %3
      call :element %1 lib "curl_ctype.h" %3
-
      call :element %1 lib "curl_get_line.h" %3
      call :element %1 lib "curl_multibyte.h" %3
      call :element %1 lib "version_win32.h" %3
      call :element %1 lib "dynbuf.h" %3
@@ -304,7 +311,7 @@ rem
  echo Only legacy Visual Studio project files can be generated.
  echo.
  echo To generate recent versions of Visual Studio project files use cmake.
-
  echo Refer to INSTALL-CMAKE.md in the docs directory.
+
  echo Refer to INSTALL-CMAKE in the docs directory.
  echo.
  echo -clean    - Removes the project files
  goto error
added external/curl/projects/wolfssl_options.h
@@ -0,0 +1,308 @@
+
/***************************************************************************
+
 *                                  _   _ ____  _
+
 *  Project                     ___| | | |  _ \| |
+
 *                             / __| | | | |_) | |
+
 *                            | (__| |_| |  _ <| |___
+
 *                             \___|\___/|_| \_\_____|
+
 *
+
 * Copyright (C) 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.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.
+
 *
+
 * SPDX-License-Identifier: curl
+
 *
+
 ***************************************************************************/
+
/*
+
By default wolfSSL has a very conservative configuration that can result in
+
connections to servers failing due to certificate or algorithm problems.
+
To remedy this issue for libcurl I've generated this options file that
+
build-wolfssl will copy to the wolfSSL include directories and will result in
+
maximum compatibility.
+

+
These are the configure options that were used to build wolfSSL v5.1.1 in
+
MinGW and generate the options in this file:
+

+
C_EXTRA_FLAGS="\
+
  -Wno-attributes \
+
  -Wno-unused-but-set-variable \
+
  -DFP_MAX_BITS=16384 \
+
  -DHAVE_SECRET_CALLBACK \
+
  -DTFM_TIMING_RESISTANT \
+
  -DUSE_WOLF_STRTOK \
+
  -DWOLFSSL_DES_ECB \
+
  -DWOLFSSL_STATIC_DH \
+
  -DWOLFSSL_STATIC_RSA \
+
  " \
+
./configure --prefix=/usr/local \
+
  --disable-jobserver \
+
  --enable-aesgcm \
+
  --enable-alpn \
+
  --enable-altcertchains \
+
  --enable-certgen \
+
  --enable-des3 \
+
  --enable-dh \
+
  --enable-dsa \
+
  --enable-ecc \
+
  --enable-eccshamir \
+
  --enable-fastmath \
+
  --enable-opensslextra \
+
  --enable-ripemd \
+
  --enable-sessioncerts \
+
  --enable-sha512 \
+
  --enable-sni \
+
  --enable-tlsv10 \
+
  --enable-supportedcurves \
+
  --enable-tls13 \
+
  --enable-testcert \
+
  > config.out 2>&1
+

+
Two generated options HAVE_THREAD_LS and _POSIX_THREADS were removed since they
+
are inapplicable for our Visual Studio build. Currently thread local storage is
+
only used by the Fixed Point cache ECC which we're not enabling. However even
+
if we later may decide to enable the cache it will fallback on mutexes when
+
thread local storage is not available. wolfSSL is using __declspec(thread) to
+
create the thread local storage and that could be a problem for LoadLibrary.
+

+
Regarding the options that were added via C_EXTRA_FLAGS:
+

+
FP_MAX_BITS=16384
+
https://www.wolfssl.com/documentation/manuals/wolfssl/chapter02.html
+
"Since root.crt uses a 4096-bit RSA key, you'll need to increase the fastmath
+
buffer size.  You can do this using the define:
+
FP_MAX_BITS and setting it to 8192."
+

+
HAVE_SECRET_CALLBACK
+
Build wolfSSL with wolfSSL_set_tls13_secret_cb which allows saving TLS 1.3
+
secrets to SSLKEYLOGFILE.
+

+
TFM_TIMING_RESISTANT
+
https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-2-building-wolfssl.html
+
From section 2.4.5 Increasing Performance, USE_FAST_MATH:
+
"Because the stack memory usage can be larger when using fastmath, we recommend
+
defining TFM_TIMING_RESISTANT as well when using this option."
+

+
USE_WOLF_STRTOK
+
Build wolfSSL to always use its internal strtok instead of C runtime strtok.
+

+
WOLFSSL_DES_ECB
+
Build wolfSSL with wolfSSL_DES_ecb_encrypt which is needed by libcurl for NTLM.
+

+
WOLFSSL_STATIC_DH:    Allow TLS_ECDH_ ciphers
+
WOLFSSL_STATIC_RSA:   Allow TLS_RSA_ ciphers
+
https://github.com/wolfSSL/wolfssl/blob/v3.6.6/README.md#note-1
+
Static key cipher suites are deprecated and disabled by default since v3.6.6.
+
*/
+

+
/* wolfssl options.h
+
 * generated from configure options
+
 *
+
 * Copyright (C) 2006-2022 wolfSSL Inc.
+
 *
+
 * This file is part of wolfSSL. (formerly known as CyaSSL)
+
 *
+
 */
+

+
#ifndef WOLFSSL_OPTIONS_H
+
#define WOLFSSL_OPTIONS_H
+

+

+
#ifdef __cplusplus
+
extern "C" {
+
#endif
+

+
#undef  FP_MAX_BITS
+
#define FP_MAX_BITS 16384
+

+
#undef  HAVE_SECRET_CALLBACK
+
#define HAVE_SECRET_CALLBACK
+

+
#undef  TFM_TIMING_RESISTANT
+
#define TFM_TIMING_RESISTANT
+

+
#undef  USE_WOLF_STRTOK
+
#define USE_WOLF_STRTOK
+

+
#undef  WOLFSSL_DES_ECB
+
#define WOLFSSL_DES_ECB
+

+
#undef  WOLFSSL_STATIC_DH
+
#define WOLFSSL_STATIC_DH
+

+
#undef  WOLFSSL_STATIC_RSA
+
#define WOLFSSL_STATIC_RSA
+

+
#undef  TFM_TIMING_RESISTANT
+
#define TFM_TIMING_RESISTANT
+

+
#undef  ECC_TIMING_RESISTANT
+
#define ECC_TIMING_RESISTANT
+

+
#undef  WC_RSA_BLINDING
+
#define WC_RSA_BLINDING
+

+
#undef  WOLFSSL_USE_ALIGN
+
#define WOLFSSL_USE_ALIGN
+

+
#undef  WOLFSSL_RIPEMD
+
#define WOLFSSL_RIPEMD
+

+
#undef  WOLFSSL_SHA512
+
#define WOLFSSL_SHA512
+

+
#undef  WOLFSSL_SHA384
+
#define WOLFSSL_SHA384
+

+
#undef  SESSION_CERTS
+
#define SESSION_CERTS
+

+
#undef  HAVE_HKDF
+
#define HAVE_HKDF
+

+
#undef  HAVE_ECC
+
#define HAVE_ECC
+

+
#undef  TFM_ECC256
+
#define TFM_ECC256
+

+
#undef  ECC_SHAMIR
+
#define ECC_SHAMIR
+

+
#undef  WOLFSSL_ALLOW_TLSV10
+
#define WOLFSSL_ALLOW_TLSV10
+

+
#undef  WC_RSA_PSS
+
#define WC_RSA_PSS
+

+
#undef  NO_HC128
+
#define NO_HC128
+

+
#undef  NO_RABBIT
+
#define NO_RABBIT
+

+
#undef  HAVE_POLY1305
+
#define HAVE_POLY1305
+

+
#undef  HAVE_ONE_TIME_AUTH
+
#define HAVE_ONE_TIME_AUTH
+

+
#undef  HAVE_CHACHA
+
#define HAVE_CHACHA
+

+
#undef  HAVE_HASHDRBG
+
#define HAVE_HASHDRBG
+

+
#undef  HAVE_TLS_EXTENSIONS
+
#define HAVE_TLS_EXTENSIONS
+

+
#undef  HAVE_SNI
+
#define HAVE_SNI
+

+
#undef  HAVE_TLS_EXTENSIONS
+
#define HAVE_TLS_EXTENSIONS
+

+
#undef  HAVE_ALPN
+
#define HAVE_ALPN
+

+
#undef  HAVE_TLS_EXTENSIONS
+
#define HAVE_TLS_EXTENSIONS
+

+
#undef  HAVE_SUPPORTED_CURVES
+
#define HAVE_SUPPORTED_CURVES
+

+
#undef  HAVE_FFDHE_2048
+
#define HAVE_FFDHE_2048
+

+
#undef  HAVE_SUPPORTED_CURVES
+
#define HAVE_SUPPORTED_CURVES
+

+
#undef  WOLFSSL_TLS13
+
#define WOLFSSL_TLS13
+

+
#undef  HAVE_TLS_EXTENSIONS
+
#define HAVE_TLS_EXTENSIONS
+

+
#undef  HAVE_EXTENDED_MASTER
+
#define HAVE_EXTENDED_MASTER
+

+
#undef  WOLFSSL_ALT_CERT_CHAINS
+
#define WOLFSSL_ALT_CERT_CHAINS
+

+
#undef  WOLFSSL_TEST_CERT
+
#define WOLFSSL_TEST_CERT
+

+
#undef  NO_RC4
+
#define NO_RC4
+

+
#undef  HAVE_ENCRYPT_THEN_MAC
+
#define HAVE_ENCRYPT_THEN_MAC
+

+
#undef  NO_PSK
+
#define NO_PSK
+

+
#undef  NO_MD4
+
#define NO_MD4
+

+
#undef  WOLFSSL_ENCRYPTED_KEYS
+
#define WOLFSSL_ENCRYPTED_KEYS
+

+
#undef  USE_FAST_MATH
+
#define USE_FAST_MATH
+

+
#undef  WC_NO_ASYNC_THREADING
+
#define WC_NO_ASYNC_THREADING
+

+
#undef  HAVE_DH_DEFAULT_PARAMS
+
#define HAVE_DH_DEFAULT_PARAMS
+

+
#undef  WOLFSSL_CERT_GEN
+
#define WOLFSSL_CERT_GEN
+

+
#undef  OPENSSL_EXTRA
+
#define OPENSSL_EXTRA
+

+
#undef  WOLFSSL_ALWAYS_VERIFY_CB
+
#define WOLFSSL_ALWAYS_VERIFY_CB
+

+
#undef  WOLFSSL_VERIFY_CB_ALL_CERTS
+
#define WOLFSSL_VERIFY_CB_ALL_CERTS
+

+
#undef  WOLFSSL_EXTRA_ALERTS
+
#define WOLFSSL_EXTRA_ALERTS
+

+
#undef  HAVE_EXT_CACHE
+
#define HAVE_EXT_CACHE
+

+
#undef  WOLFSSL_FORCE_CACHE_ON_TICKET
+
#define WOLFSSL_FORCE_CACHE_ON_TICKET
+

+
#undef  WOLFSSL_AKID_NAME
+
#define WOLFSSL_AKID_NAME
+

+
#undef  HAVE_CTS
+
#define HAVE_CTS
+

+
#undef  GCM_TABLE_4BIT
+
#define GCM_TABLE_4BIT
+

+
#undef  HAVE_AESGCM
+
#define HAVE_AESGCM
+

+
#undef  HAVE_WC_INTROSPECTION
+
#define HAVE_WC_INTROSPECTION
+

+

+
#ifdef __cplusplus
+
} /* end of extern "C" */
+
#endif
+

+

+
#endif /* WOLFSSL_OPTIONS_H */
added external/curl/projects/wolfssl_override.props
@@ -0,0 +1,40 @@
+
<?xml version="1.0" encoding="utf-8"?>
+
<!--
+
We use this file to override some properties of the wolfSSL project files.
+

+
In build-wolfssl when we call msbuild to build wolfSSL we pass in this props
+
file by using the CustomAfterMicrosoftCommonTargets property.
+
-->
+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
  <ItemDefinitionGroup>
+
    <ClCompile>
+
      <PreprocessorDefinitions>%(PreprocessorDefinitions);</PreprocessorDefinitions>
+
      <!--
+
      Our options file wolfssl_options.h is copied by build-wolfssl to
+
      $(SolutionDir)\wolfssl\options.h. It includes all the options we need
+
      to build wolfSSL for compatibility. See wolfssl_options.h for more info.
+
      -->
+
      <ForcedIncludeFiles>$(SolutionDir)\wolfssl\options.h;%(ForcedIncludeFiles);</ForcedIncludeFiles>
+
      <!--
+
      Do not use the Unicode character set since their MinGW config does not.
+
      Do not use their IDE\WIN\user_settings.h since we have wolfssl_options.h.
+
      -->
+
      <UndefinePreprocessorDefinitions>_UNICODE;UNICODE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(UndefinePreprocessorDefinitions);</UndefinePreprocessorDefinitions>
+
    </ClCompile>
+
    <ResourceCompile>
+
      <UndefinePreprocessorDefinitions>_UNICODE;UNICODE;%(UndefinePreprocessorDefinitions);</UndefinePreprocessorDefinitions>
+
    </ResourceCompile>
+
  </ItemDefinitionGroup>
+
  <!--
+
  The project GUID for wolfssl.vcxproj is 73973223-5EE8-41CA-8E88-1D60E89A237B.
+
  Since we have are using certain options like fast math (TFM) in our options
+
  file we must compile the corresponding units in wolfssl.vcxproj. If the user
+
  disables such an option the unit can still be compiled it just won't be used.
+
  -->
+
  <ItemGroup Condition="'$(ProjectGuid)'=='{73973223-5EE8-41CA-8E88-1D60E89A237B}'">
+
    <ClCompile Include="wolfcrypt\src\chacha.c" />
+
    <ClCompile Include="wolfcrypt\src\chacha20_poly1305.c" />
+
    <ClCompile Include="wolfcrypt\src\poly1305.c" />
+
    <ClCompile Include="wolfcrypt\src\tfm.c" />
+
  </ItemGroup>
+
</Project>
modified external/curl/scripts/Makefile.am
@@ -24,7 +24,7 @@

EXTRA_DIST = coverage.sh completion.pl firefox-db2pem.sh checksrc.pl    \
 mk-ca-bundle.pl mk-unity.pl schemetable.c cd2nroff nroff2cd cdall cd2cd managen \
-
 dmaketgz maketgz release-tools.sh verify-release cmakelint.sh mdlinkcheck
+
 dmaketgz maketgz release-tools.sh verify-release cmakelint.sh

ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
modified external/curl/scripts/Makefile.in
@@ -170,6 +170,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -194,10 +195,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -216,14 +238,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -260,6 +290,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -267,10 +300,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -332,7 +401,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = coverage.sh completion.pl firefox-db2pem.sh checksrc.pl    \
 mk-ca-bundle.pl mk-unity.pl schemetable.c cd2nroff nroff2cd cdall cd2cd managen \
-
 dmaketgz maketgz release-tools.sh verify-release cmakelint.sh mdlinkcheck
+
 dmaketgz maketgz release-tools.sh verify-release cmakelint.sh

@USE_ZSH_COMPLETION_TRUE@ZSH_COMPLETION_FUNCTION_FILENAME = _curl
@USE_FISH_COMPLETION_TRUE@FISH_COMPLETION_FUNCTION_FILENAME = curl.fish
modified external/curl/scripts/cd2nroff
@@ -134,9 +134,6 @@ sub outtls {
    if($t[0] eq "All") {
        push @o, "\nAll TLS backends support this option.";
    }
-
    elsif($t[0] eq "none") {
-
        push @o, "\nNo TLS backend supports this option.";
-
    }
    else {
        push @o, "\nThis option works only with the following TLS backends:\n";
        my @s = sort @t;
@@ -195,7 +192,6 @@ my %knowntls = (
    'Secure Transport' => 1,
    'wolfSSL' => 1,
    'All' => 1,
-
    'none' => 1,
    );

sub single {
@@ -419,12 +415,7 @@ sub single {
        # *italics*
        $d =~ s/\*(\S.*?)\*/\\fI$1\\fP/g;

-
        my $back = $d;
-

-
        # remove all backticked pieces
-
        $back =~ s/\`(.*?)\`//g;
-

-
        if($back =~ /[^\\][\<\>]/) {
+
        if($d =~ /[^\\][\<\>]/) {
            print STDERR "$f:$line:1:ERROR: un-escaped < or > used\n";
            $errors++;
        }
modified external/curl/scripts/checksrc.pl
@@ -47,34 +47,10 @@ my %ignore_set;
my %ignore_used;
my @ignore_line;

-
my %banfunc = (
-
    "gmtime" => 1,
-
    "localtime" => 1,
-
    "gets" => 1,
-
    "strtok" => 1,
-
    "sprintf" => 1,
-
    "vsprintf" => 1,
-
    "strcat" => 1,
-
    "strncat" => 1,
-
    "_mbscat" => 1,
-
    "_mbsncat" => 1,
-
    "_tcscat" => 1,
-
    "_tcsncat" => 1,
-
    "_wcscat" => 1,
-
    "_wcsncat" => 1,
-
    "LoadLibrary" => 1,
-
    "LoadLibraryA" => 1,
-
    "LoadLibraryW" => 1,
-
    "LoadLibraryEx" => 1,
-
    "LoadLibraryExA" => 1,
-
    "LoadLibraryExW" => 1,
-
    "_waccess" => 1,
-
    "_access" => 1,
-
    "access" => 1,
-
    );
-

my %warnings_extended = (
    'COPYRIGHTYEAR'    => 'copyright year incorrect',
+
    'STRERROR',        => 'strerror() detected',
+
    'STRNCPY',         => 'strncpy() detected',
    'STDERR',          => 'stderr detected',
    );

@@ -116,6 +92,7 @@ my %warnings = (
    'RETURNNOSPACE'         => 'return without space',
    'SEMINOSPACE'           => 'semicolon without following space',
    'SIZEOFNOPAREN'         => 'use of sizeof without parentheses',
+
    'SNPRINTF'              => 'use of snprintf',
    'SPACEAFTERPAREN'       => 'space after open parenthesis',
    'SPACEBEFORECLOSE'      => 'space before a close parenthesis',
    'SPACEBEFORECOMMA'      => 'space before a comma',
@@ -166,14 +143,14 @@ sub readlocalfile {
        if (/^\s*(#.*)/) {
            next;
        }
-
        elsif (/^enable ([A-Z]+)$/) {
+
        elsif (/^\s*enable ([A-Z]+)$/) {
            if(!defined($warnings_extended{$1})) {
                print STDERR "invalid warning specified in .checksrc: \"$1\"\n";
                next;
            }
            $warnings{$1} = $warnings_extended{$1};
        }
-
        elsif (/^disable ([A-Z]+)$/) {
+
        elsif (/^\s*disable ([A-Z]+)$/) {
            if(!defined($warnings{$1})) {
                print STDERR "invalid warning specified in .checksrc: \"$1\"\n";
                next;
@@ -181,14 +158,8 @@ sub readlocalfile {
            # Accept-list
            push @alist, $1;
        }
-
        elsif (/^banfunc ([^ ]*)/) {
-
            $banfunc{$1} = $1;
-
        }
-
        elsif (/^allowfunc ([^ ]*)/) {
-
            undef $banfunc{$1};
-
        }
        else {
-
            die "Invalid format in $dir/.checksrc on line $i: $_\n";
+
            die "Invalid format in $dir/.checksrc on line $i\n";
        }
    }
    close($rcfile);
@@ -251,38 +222,27 @@ $file = shift @ARGV;

while(defined $file) {

-
    if($file =~ /^-D(.*)/) {
+
    if($file =~ /-D(.*)/) {
        $dir = $1;
        $file = shift @ARGV;
        next;
    }
-
    elsif($file =~ /^-W(.*)/) {
+
    elsif($file =~ /-W(.*)/) {
        $wlist .= " $1 ";
        $file = shift @ARGV;
        next;
    }
-
    elsif($file =~ /^-b(.*)/) {
-
        $banfunc{$1} = $1;
-
        print STDERR "ban use of \"$1\"\n";
-
        $file = shift @ARGV;
-
        next;
-
    }
-
    elsif($file =~ /^-a(.*)/) {
-
        undef $banfunc{$1};
-
        $file = shift @ARGV;
-
        next;
-
    }
-
    elsif($file =~ /^-A(.+)/) {
+
    elsif($file =~ /-A(.+)/) {
        push @alist, $1;
        $file = shift @ARGV;
        next;
    }
-
    elsif($file =~ /^-i([1-9])/) {
+
    elsif($file =~ /-i([1-9])/) {
        $indent = $1 + 0;
        $file = shift @ARGV;
        next;
    }
-
    elsif($file =~ /^-m([0-9]+)/) {
+
    elsif($file =~ /-m([0-9]+)/) {
        $max_column = $1 + 0;
        $file = shift @ARGV;
        next;
@@ -299,8 +259,6 @@ if(!$file) {
    print "checksrc.pl [option] <file1> [file2] ...\n";
    print " Options:\n";
    print "  -A[rule]  Accept this violation, can be used multiple times\n";
-
    print "  -a[func]  Allow use of this function\n";
-
    print "  -b[func]  Ban use of this function\n";
    print "  -D[DIR]   Directory to prepend file names\n";
    print "  -h        Show help output\n";
    print "  -W[file]  Skip the given file - ignore all its flaws\n";
@@ -318,11 +276,6 @@ if(!$file) {
        }
    }
    print " [*] = disabled by default\n";
-

-
    print "\nDetects and bans use of these functions:\n";
-
    for my $f (sort keys %banfunc) {
-
        printf (" %-18s\n", $f);
-
    }
    exit;
}

@@ -760,7 +713,7 @@ sub scanfile {
        }

        # check for "return(" without space
-
        if($l =~ /^(.*\W)return\(/) {
+
        if($l =~ /^(.*)return\(/) {
            if($1 =~ / *\#/) {
                # this is a #if, treat it differently
            }
@@ -770,12 +723,6 @@ sub scanfile {
            }
        }

-
        # check for "return" with parentheses around just a value/name
-
        if($l =~ /^(.*\W)return \(\w*\);/) {
-
            checkwarn("RETURNPAREN", $line, length($1)+7, $file, $l,
-
                      "return with paren");
-
        }
-

        # check for "sizeof" without parenthesis
        if(($l =~ /^(.*)sizeof *([ (])/) && ($2 ne "(")) {
            if($1 =~ / *\#/) {
@@ -853,23 +800,44 @@ sub scanfile {
        }

        # scan for use of banned functions
-
        my $bl = $l;
-
      again:
-
        if(($l =~ /^(.*?\W)(\w+)(\s*\()/x) && $banfunc{$2}) {
-
            my $bad = $2;
-
            my $prefix = $1;
-
            my $suff = $3;
+
        if($l =~ /^(.*\W)
+
                   (gmtime|localtime|
+
                    gets|
+
                    strtok|
+
                    v?sprintf|
+
                    (str|_mbs|_tcs|_wcs)n?cat|
+
                    LoadLibrary(Ex)?(A|W)?|
+
                    _?w?access)
+
                   \s*\(
+
                 /x) {
            checkwarn("BANNEDFUNC",
-
                      $line, length($prefix), $file, $ol,
-
                      "use of $bad is banned");
-
            my $replace = 'x' x (length($bad) + 1);
-
            $prefix =~ s/\*/\\*/;
-
            $suff =~ s/\(/\\(/;
-
            $l =~ s/$prefix$bad$suff/$prefix$replace/;
-
            goto again;
-
      }
-
        $l = $bl; # restore to pre-bannedfunc content
-

+
                      $line, length($1), $file, $ol,
+
                      "use of $2 is banned");
+
        }
+
        if($warnings{"STRERROR"}) {
+
            # scan for use of banned strerror. This is not a BANNEDFUNC to
+
            # allow for individual enable/disable of this warning.
+
            if($l =~ /^(.*\W)(strerror)\s*\(/x) {
+
                if($1 !~ /^ *\#/) {
+
                    # skip preprocessor lines
+
                    checkwarn("STRERROR",
+
                              $line, length($1), $file, $ol,
+
                              "use of $2 is banned");
+
                }
+
            }
+
        }
+
        if($warnings{"STRNCPY"}) {
+
            # scan for use of banned strncpy. This is not a BANNEDFUNC to
+
            # allow for individual enable/disable of this warning.
+
            if($l =~ /^(.*\W)(strncpy)\s*\(/x) {
+
                if($1 !~ /^ *\#/) {
+
                    # skip preprocessor lines
+
                    checkwarn("STRNCPY",
+
                              $line, length($1), $file, $ol,
+
                              "use of $2 is banned");
+
                }
+
            }
+
        }
        if($warnings{"STDERR"}) {
            # scan for use of banned stderr. This is not a BANNEDFUNC to
            # allow for individual enable/disable of this warning.
@@ -882,6 +850,12 @@ sub scanfile {
                }
            }
        }
+
        # scan for use of snprintf for curl-internals reasons
+
        if($l =~ /^(.*\W)(v?snprintf)\s*\(/x) {
+
            checkwarn("SNPRINTF",
+
                      $line, length($1), $file, $ol,
+
                      "use of $2 is banned");
+
        }

        # scan for use of non-binary fopen without the macro
        if($l =~ /^(.*\W)fopen\s*\([^,]*, *\"([^"]*)/) {
modified external/curl/scripts/completion.pl
@@ -43,9 +43,6 @@ my @opts = parse_main_opts('--help all', $regex);

if ($shell eq 'fish') {
    print "# curl fish completion\n\n";
-
    print "# Complete file paths after @\n";
-
    print q(complete -c curl -n 'string match -qr "^@" -- (commandline -ct)' -k -xa "(printf '%s\n' -- @(__fish_complete_suffix --complete=(commandline -ct | string replace -r '^@' '') ''))");
-
    print "\n\n";
    print qq{$_ \n} foreach (@opts);
} elsif ($shell eq 'zsh') {
    my $opts_str;
modified external/curl/scripts/maketgz
@@ -68,9 +68,10 @@ fi

#
# As a precaution, remove all *.dist files that may be lying around, to reduce
-
# the risk of old leftovers getting shipped.
+
# the risk of old leftovers getting shipped. The root 'Makefile.dist' is the
+
# exception.
echo "removing all old *.dist files"
-
find . -name "*.dist" -exec rm {} \;
+
find . -name "*.dist" -a ! -name Makefile.dist -exec rm {} \;

numeric="$(printf "%02x%02x%02x\n" "$major" "$minor" "$patch")"

deleted external/curl/scripts/mdlinkcheck
@@ -1,165 +0,0 @@
-
#!/usr/bin/env perl
-
#***************************************************************************
-
#                                  _   _ ____  _
-
#  Project                     ___| | | |  _ \| |
-
#                             / __| | | | |_) | |
-
#                            | (__| |_| |  _ <| |___
-
#                             \___|\___/|_| \_\_____|
-
#
-
# Copyright (C) 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.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.
-
#
-
# SPDX-License-Identifier: curl
-
#
-
###########################################################################
-

-
my %whitelist = (
-
    'https://curl.se/' => 1,
-
    'https://curl.se/changes.html' => 1,
-
    'https://curl.se/dev/advisory.html' => 1,
-
    'https://curl.se/dev/builds.html' => 1,
-
    'https://curl.se/dev/code-style.html' => 1,
-
    'https://curl.se/dev/contribute.html' => 1,
-
    'https://curl.se/dev/internals.html' => 1,
-
    'https://curl.se/dev/secprocess.html' => 1,
-
    'https://curl.se/dev/sourceactivity.html' => 1,
-
    'https://curl.se/docs/' => 1,
-
    'https://curl.se/docs/bugbounty.html' => 1,
-
    'https://curl.se/docs/caextract.html' => 1,
-
    'https://curl.se/docs/copyright.html' => 1,
-
    'https://curl.se/docs/install.html' => 1,
-
    'https://curl.se/docs/knownbugs.html' => 1,
-
    'https://curl.se/docs/manpage.html' => 1,
-
    'https://curl.se/docs/security.html' => 1,
-
    'https://curl.se/docs/sslcerts.html' => 1,
-
    'https://curl.se/docs/thanks.html' => 1,
-
    'https://curl.se/docs/todo.html' => 1,
-
    'https://curl.se/docs/vulnerabilities.html' => 1,
-
    'https://curl.se/libcurl/' => 1,
-
    'https://curl.se/libcurl/c/CURLOPT_SSLVERSION.html' => 1,
-
    'https://curl.se/libcurl/c/CURLOPT_SSL_CIPHER_LIST.html' => 1,
-
    'https://curl.se/libcurl/c/CURLOPT_TLS13_CIPHERS.html' => 1,
-
    'https://curl.se/libcurl/c/libcurl.html' => 1,
-
    'https://curl.se/logo/curl-logo.svg' => 1,
-
    'https://curl.se/mail/' => 1,
-
    'https://curl.se/mail/etiquette.html' => 1,
-
    'https://curl.se/mail/list.cgi?list=curl-distros' => 1,
-
    'https://curl.se/mail/list.cgi?list=curl-library' => 1,
-
    'https://curl.se/rfc/cookie_spec.html' => 1,
-
    'https://curl.se/rfc/rfc2255.txt' => 1,
-
    'https://curl.se/sponsors.html' => 1,
-
    'https://curl.se/support.html' => 1,
-

-
    'https://github.com/curl/curl' => 1,
-
    'https://github.com/curl/curl-fuzzer' => 1,
-
    'https://github.com/curl/curl-www' => 1,
-
    'https://github.com/curl/curl/discussions' => 1,
-
    'https://github.com/curl/curl/issues' => 1,
-
    'https://github.com/curl/curl/labels/help%20wanted' => 1,
-
    'https://github.com/curl/curl/pulls' => 1,
-

-
    );
-

-
# list all .md files in the repo
-
my @files=`git ls-files '**.md'`;
-

-
sub storelink {
-
    my ($f, $line, $link) = @_;
-
    my $o = $link;
-

-
    if($link =~ /^\#/) {
-
        # ignore local-only links
-
        return;
-
    }
-
    # cut off any anchor
-
    $link =~ s:\#.*\z::;
-

-
    if($link =~ /^(https|http):/) {
-
        $url{$link} .= "$f:$line ";
-
        return;
-
    }
-

-
    # a file link
-
    my $dir = $f;
-
    $dir =~ s:([^/]*\z)::;
-

-
    while($link =~ s:^\.\.\/::) {
-
        $dir =~ s:([^/]*)\/\z::;
-
    }
-

-
    $flink{"./$dir$link"} .= "$f:$line ";
-
}
-

-
sub findlinks {
-
    my ($f) = @_;
-
    my $line = 1;
-
    open(F, "<:crlf", "$f") ||
-
        return;
-

-
    while(<F>) {
-
        if(/\]\(([^)]*)/) {
-
            my $link = $1;
-
            #print "$f:$line $link\n";
-
            storelink($f, $line, $link);
-
        }
-
        $line++;
-
    }
-
    close(F);
-
}
-

-
sub checkurl {
-
    my ($url) = @_;
-

-
    if($whitelist{$url}) {
-
        #print "$url is whitelisted\n";
-
        return 0;
-
    }
-

-
    print "check $url\n";
-
    my $curlcmd="curl -ILfsm10 --retry 2 --retry-delay 5 -A \"Mozilla/curl.se link-probe\"";
-
    my @content = `$curlcmd \"$url\"`;
-
    if(!$content[0]) {
-
        print STDERR "FAIL\n";
-
        return 1; # fail
-
    }
-
    return 0; # ok
-
}
-

-
for my $f (@files) {
-
    chomp $f;
-
    findlinks($f);
-
}
-

-
my $error;
-

-
for my $u (sort keys %url) {
-
    my $r = checkurl($u);
-

-
    if($r) {
-
        for my $f (split(/ /, $url{$l})) {
-
            printf "%s ERROR links to missing URL %s\n", $f, $u;
-
            $error++;
-
        }
-
    }
-
}
-

-
for my $l (sort keys %flink) {
-
    if(! -r $l) {
-
        for my $f (split(/ /, $flink{$l})) {
-
            printf "%s ERROR links to missing file %s\n", $f, $l;
-
            $error++;
-
        }
-
    }
-
}
-

-
exit 1 if ($error);
modified external/curl/src/.checksrc
@@ -1,3 +1,2 @@
enable STDERR
-
banfunc strncpy
-
banfunc sscanf
+
enable STRNCPY
modified external/curl/src/CMakeLists.txt
@@ -24,12 +24,8 @@
set(EXE_NAME curl)
add_definitions("-DBUILDING_CURL")

-
set(_curl_cfiles_gen "")
-
set(_curl_hfiles_gen "")
-
set(_curl_definitions "")
-

if(ENABLE_CURL_MANUAL AND HAVE_MANUAL_TOOLS)
-
  list(APPEND _curl_definitions "USE_MANUAL")
+
  add_definitions("-DUSE_MANUAL")
  add_custom_command(
    OUTPUT "tool_hugehelp.c"
    COMMAND ${CMAKE_COMMAND} -E echo "#include \"tool_setup.h\"" > "tool_hugehelp.c"
@@ -44,13 +40,22 @@ if(ENABLE_CURL_MANUAL AND HAVE_MANUAL_TOOLS)
      "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h"
      "${CURL_ASCIIPAGE}"
    VERBATIM)
-
  list(APPEND _curl_cfiles_gen "tool_hugehelp.c")
-
  list(APPEND _curl_hfiles_gen "tool_hugehelp.h")
+
else()
+
  add_custom_command(
+
    OUTPUT "tool_hugehelp.c"
+
    COMMAND ${CMAKE_COMMAND} -E echo "#include \"tool_hugehelp.h\"" > "tool_hugehelp.c"
+
    DEPENDS
+
      "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h"
+
    VERBATIM)
endif()

+
# Get 'CURL_CFILES', 'CURLX_CFILES', 'CURL_HFILES', 'CURLTOOL_LIBCURL_CFILES' variables
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+

if(CURL_CA_EMBED_SET)
  if(PERL_FOUND)
-
    list(APPEND _curl_definitions "CURL_CA_EMBED")
+
    add_definitions("-DCURL_CA_EMBED")
    add_custom_command(
      OUTPUT "tool_ca_embed.c"
      COMMAND "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/mk-file-embed.pl" --var curl_ca_embed
@@ -59,16 +64,12 @@ if(CURL_CA_EMBED_SET)
        "${CMAKE_CURRENT_SOURCE_DIR}/mk-file-embed.pl"
        "${CURL_CA_EMBED}"
      VERBATIM)
-
    list(APPEND _curl_cfiles_gen "tool_ca_embed.c")
+
    list(APPEND CURL_CFILES "tool_ca_embed.c")
  else()
    message(WARNING "Perl not found. Will not embed the CA bundle.")
  endif()
endif()

-
# Get 'CURL_CFILES', 'CURLX_CFILES', 'CURL_HFILES', 'CURLTOOL_LIBCURL_CFILES' variables
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
-
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
-

if(WIN32)
  list(APPEND CURL_CFILES "curl.rc")
endif()
@@ -85,9 +86,8 @@ endif()

add_executable(
  ${EXE_NAME}
-
  ${CURL_CFILES} ${_curl_cfiles_gen} ${CURLX_CFILES} ${CURL_HFILES} ${_curl_hfiles_gen}
+
  ${CURL_CFILES} ${CURLX_CFILES} ${CURL_HFILES}
)
-
target_compile_definitions(${EXE_NAME} PRIVATE ${_curl_definitions})

add_executable(
  ${PROJECT_NAME}::${EXE_NAME}
@@ -104,7 +104,9 @@ target_compile_definitions(curltool PUBLIC "UNITTESTS" "CURL_STATICLIB")
target_link_libraries(curltool PRIVATE ${CURL_LIBS})

if(CURL_HAS_LTO)
-
  set_target_properties(${EXE_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
+
  set_target_properties(${EXE_NAME} PROPERTIES
+
    INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE
+
    INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE)
endif()

if(ENABLE_UNICODE AND MINGW)
@@ -112,8 +114,8 @@ if(ENABLE_UNICODE AND MINGW)
endif()

source_group("curlX source files" FILES ${CURLX_CFILES})
-
source_group("curl source files" FILES ${CURL_CFILES} ${_curl_cfiles_gen})
-
source_group("curl header files" FILES ${CURL_HFILES} ${_curl_hfiles_gen})
+
source_group("curl source files" FILES ${CURL_CFILES})
+
source_group("curl header files" FILES ${CURL_HFILES})

include_directories(
  "${PROJECT_BINARY_DIR}/lib"  # for "curl_config.h"
modified external/curl/src/Makefile.am
@@ -27,7 +27,7 @@ AUTOMAKE_OPTIONS = foreign nostdinc
.DELETE_ON_ERROR:

EXTRA_DIST = mk-file-embed.pl mkhelp.pl \
-
 curl.rc Makefile.inc CMakeLists.txt .checksrc
+
 Makefile.mk curl.rc Makefile.inc CMakeLists.txt .checksrc

# 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
@@ -60,8 +60,6 @@ endif

include Makefile.inc

-
curl_cfiles_gen =
-
curl_hfiles_gen =
CLEANFILES =

if USE_UNITY
@@ -76,15 +74,15 @@ curl_CURLX = $(CURLTOOL_LIBCURL_CFILES)
else
curl_CURLX = $(CURLX_CFILES)
endif
-
curltool_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CURL_CFILES) $(curl_cfiles_gen) $(curl_CURLX)
-
	@PERL@ $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CURL_CFILES) $(curl_cfiles_gen) $(curl_CURLX) --exclude $(curl_EXCLUDE) > curltool_unity.c
+
curltool_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CURL_CFILES) $(curl_CURLX)
+
	@PERL@  $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CURL_CFILES) $(curl_CURLX) --exclude $(curl_EXCLUDE) > curltool_unity.c

nodist_curl_SOURCES = curltool_unity.c
curl_SOURCES = $(curl_EXCLUDE)
CLEANFILES += curltool_unity.c
else
# CURL_FILES comes from Makefile.inc
-
curl_SOURCES = $(CURL_FILES) $(curl_cfiles_gen) $(curl_hfiles_gen)
+
curl_SOURCES = $(CURL_FILES)
endif
if HAVE_WINDRES
curl_SOURCES += $(CURL_RCFILES)
@@ -129,11 +127,9 @@ HUGEIT_0 = @echo " HUGE " $@;
HUGEIT_1 =
HUGEIT_ = $(HUGEIT_0)

-
curl_CPPFLAGS = $(AM_CPPFLAGS)
-

if USE_MANUAL
# Here are the stuff to create a built-in manual
-
curl_CPPFLAGS += -DUSE_MANUAL
+
AM_CPPFLAGS += -DUSE_MANUAL

$(ASCIIPAGE):
	cd $(top_builddir)/docs && $(MAKE)
@@ -161,15 +157,13 @@ $(HUGE):
	echo '#include "tool_hugehelp.h"' >> $(HUGE)
endif

-
curl_cfiles_gen += $(HUGE)
-
curl_hfiles_gen += tool_hugehelp.h
CLEANFILES += $(HUGE)

CA_EMBED_CSOURCE = tool_ca_embed.c
-
curl_cfiles_gen += $(CA_EMBED_CSOURCE)
+
CURL_CFILES += $(CA_EMBED_CSOURCE)
CLEANFILES += $(CA_EMBED_CSOURCE)
if CURL_CA_EMBED_SET
-
curl_CPPFLAGS += -DCURL_CA_EMBED
+
AM_CPPFLAGS += -DCURL_CA_EMBED
MK_FILE_EMBED = $(top_srcdir)/src/mk-file-embed.pl
$(CA_EMBED_CSOURCE): $(MK_FILE_EMBED) $(CURL_CA_EMBED)
	$(PERL) $(MK_FILE_EMBED) --var curl_ca_embed < $(CURL_CA_EMBED) > $(CA_EMBED_CSOURCE)
@@ -188,8 +182,6 @@ checksrc:
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) \
	  -W$(srcdir)/$(HUGE) \
	  -W$(srcdir)/$(CA_EMBED_CSOURCE) \
-
	  -W$(srcdir)/curltool_unity.c \
-
	  -W$(srcdir)/libcurltool_unity.c \
	  $(srcdir)/*.[ch])

if DEBUGBUILD
@@ -198,15 +190,12 @@ all-local: checksrc
endif

# disable the tests that are mostly causing false positives
-
TIDYFLAGS := -checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling -quiet
-
if CURL_WERROR
-
TIDYFLAGS += --warnings-as-errors=*
-
endif
+
TIDYFLAGS=-checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-valist.Uninitialized,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference

-
TIDY := clang-tidy
+
TIDY:=clang-tidy

-
tidy: $(HUGE) $(CA_EMBED_CSOURCE)
-
	$(TIDY) $(CURL_CFILES) $(curl_cfiles_gen) $(TIDYFLAGS) $(CURL_CLANG_TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CPPFLAGS) -DHAVE_CONFIG_H
+
tidy:
+
	$(TIDY) $(CURL_CFILES) $(TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H

listhelp:
	(cd $(top_srcdir)/docs/cmdline-opts && make listhelp)
modified external/curl/src/Makefile.in
@@ -133,7 +133,6 @@ bin_PROGRAMS = curl$(EXEEXT)
# Here are the stuff to create a built-in manual
@USE_MANUAL_TRUE@am__append_7 = -DUSE_MANUAL
@CURL_CA_EMBED_SET_TRUE@am__append_8 = -DCURL_CA_EMBED
-
@CURL_WERROR_TRUE@am__append_9 = --warnings-as-errors=*
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-amissl.m4 \
@@ -172,18 +171,18 @@ am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
LTLIBRARIES = $(noinst_LTLIBRARIES)
libcurltool_la_LIBADD =
-
am__libcurltool_la_SOURCES_DIST = slist_wc.c terminal.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_soc.c tool_cb_wrt.c tool_cfgable.c \
-
	tool_dirhie.c tool_doswin.c tool_easysrc.c tool_filetime.c \
-
	tool_findfile.c tool_formparse.c tool_getparam.c \
-
	tool_getpass.c tool_help.c tool_helpers.c tool_ipfs.c \
-
	tool_libinfo.c tool_listhelp.c tool_main.c tool_msgs.c \
-
	tool_operate.c tool_operhlp.c tool_paramhlp.c tool_parsecfg.c \
-
	tool_progress.c tool_setopt.c tool_sleep.c tool_ssls.c \
-
	tool_stderr.c tool_strdup.c tool_urlglob.c tool_util.c \
-
	tool_vms.c tool_writeout.c tool_writeout_json.c tool_xattr.c \
-
	var.c ../lib/base64.c ../lib/curl_get_line.c \
+
am__libcurltool_la_SOURCES_DIST = slist_wc.c terminal.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_soc.c tool_cb_wrt.c \
+
	tool_cfgable.c tool_dirhie.c tool_doswin.c tool_easysrc.c \
+
	tool_filetime.c tool_findfile.c tool_formparse.c \
+
	tool_getparam.c tool_getpass.c tool_help.c tool_helpers.c \
+
	tool_hugehelp.c tool_ipfs.c tool_libinfo.c tool_listhelp.c \
+
	tool_main.c tool_msgs.c tool_operate.c tool_operhlp.c \
+
	tool_paramhlp.c tool_parsecfg.c tool_progress.c tool_setopt.c \
+
	tool_sleep.c tool_stderr.c tool_strdup.c tool_urlglob.c \
+
	tool_util.c tool_vms.c tool_writeout.c tool_writeout_json.c \
+
	tool_xattr.c var.c tool_ca_embed.c ../lib/base64.c \
	../lib/curl_multibyte.c ../lib/dynbuf.c ../lib/nonblock.c \
	../lib/strtoofft.c ../lib/timediff.c ../lib/version_win32.c \
	../lib/warnless.c slist_wc.h terminal.h tool_binmode.h \
@@ -192,39 +191,41 @@ am__libcurltool_la_SOURCES_DIST = slist_wc.c terminal.c tool_bname.c \
	tool_cfgable.h tool_dirhie.h tool_doswin.h tool_easysrc.h \
	tool_filetime.h tool_findfile.h tool_formparse.h \
	tool_getparam.h tool_getpass.h tool_help.h tool_helpers.h \
-
	tool_ipfs.h tool_libinfo.h tool_main.h tool_msgs.h \
-
	tool_operate.h tool_operhlp.h tool_paramhlp.h tool_parsecfg.h \
-
	tool_progress.h tool_sdecls.h tool_setopt.h tool_setup.h \
-
	tool_sleep.h tool_ssls.h tool_stderr.h tool_strdup.h \
+
	tool_hugehelp.h tool_ipfs.h tool_libinfo.h tool_main.h \
+
	tool_msgs.h tool_operate.h tool_operhlp.h tool_paramhlp.h \
+
	tool_parsecfg.h tool_progress.h tool_sdecls.h tool_setopt.h \
+
	tool_setup.h tool_sleep.h tool_stderr.h tool_strdup.h \
	tool_urlglob.h tool_util.h tool_version.h tool_vms.h \
	tool_writeout.h tool_writeout_json.h tool_xattr.h var.h
-
am__objects_1 = libcurltool_la-slist_wc.lo libcurltool_la-terminal.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_soc.lo libcurltool_la-tool_cb_wrt.lo \
-
	libcurltool_la-tool_cfgable.lo libcurltool_la-tool_dirhie.lo \
-
	libcurltool_la-tool_doswin.lo libcurltool_la-tool_easysrc.lo \
-
	libcurltool_la-tool_filetime.lo \
+
am__objects_1 = libcurltool_la-tool_ca_embed.lo
+
am__objects_2 = libcurltool_la-slist_wc.lo libcurltool_la-terminal.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_soc.lo \
+
	libcurltool_la-tool_cb_wrt.lo libcurltool_la-tool_cfgable.lo \
+
	libcurltool_la-tool_dirhie.lo libcurltool_la-tool_doswin.lo \
+
	libcurltool_la-tool_easysrc.lo libcurltool_la-tool_filetime.lo \
	libcurltool_la-tool_findfile.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_ipfs.lo libcurltool_la-tool_libinfo.lo \
-
	libcurltool_la-tool_listhelp.lo libcurltool_la-tool_main.lo \
-
	libcurltool_la-tool_msgs.lo libcurltool_la-tool_operate.lo \
-
	libcurltool_la-tool_operhlp.lo libcurltool_la-tool_paramhlp.lo \
+
	libcurltool_la-tool_hugehelp.lo libcurltool_la-tool_ipfs.lo \
+
	libcurltool_la-tool_libinfo.lo libcurltool_la-tool_listhelp.lo \
+
	libcurltool_la-tool_main.lo libcurltool_la-tool_msgs.lo \
+
	libcurltool_la-tool_operate.lo libcurltool_la-tool_operhlp.lo \
+
	libcurltool_la-tool_paramhlp.lo \
	libcurltool_la-tool_parsecfg.lo \
	libcurltool_la-tool_progress.lo libcurltool_la-tool_setopt.lo \
-
	libcurltool_la-tool_sleep.lo libcurltool_la-tool_ssls.lo \
-
	libcurltool_la-tool_stderr.lo libcurltool_la-tool_strdup.lo \
-
	libcurltool_la-tool_urlglob.lo libcurltool_la-tool_util.lo \
-
	libcurltool_la-tool_vms.lo libcurltool_la-tool_writeout.lo \
+
	libcurltool_la-tool_sleep.lo libcurltool_la-tool_stderr.lo \
+
	libcurltool_la-tool_strdup.lo libcurltool_la-tool_urlglob.lo \
+
	libcurltool_la-tool_util.lo libcurltool_la-tool_vms.lo \
+
	libcurltool_la-tool_writeout.lo \
	libcurltool_la-tool_writeout_json.lo \
-
	libcurltool_la-tool_xattr.lo libcurltool_la-var.lo
+
	libcurltool_la-tool_xattr.lo libcurltool_la-var.lo \
+
	$(am__objects_1)
am__dirstamp = $(am__leading_dot)dirstamp
-
am__objects_2 = ../lib/libcurltool_la-base64.lo \
-
	../lib/libcurltool_la-curl_get_line.lo \
+
am__objects_3 = ../lib/libcurltool_la-base64.lo \
	../lib/libcurltool_la-curl_multibyte.lo \
	../lib/libcurltool_la-dynbuf.lo \
	../lib/libcurltool_la-nonblock.lo \
@@ -232,14 +233,14 @@ am__objects_2 = ../lib/libcurltool_la-base64.lo \
	../lib/libcurltool_la-timediff.lo \
	../lib/libcurltool_la-version_win32.lo \
	../lib/libcurltool_la-warnless.lo
-
am__objects_3 =
-
am__objects_4 = $(am__objects_1) $(am__objects_2) $(am__objects_3)
-
@DEBUGBUILD_TRUE@@USE_UNITY_TRUE@am__objects_5 = ../lib/libcurltool_la-curl_multibyte.lo
-
@USE_UNITY_TRUE@am__objects_6 = $(am__objects_5)
+
am__objects_4 =
+
am__objects_5 = $(am__objects_2) $(am__objects_3) $(am__objects_4)
+
@DEBUGBUILD_TRUE@@USE_UNITY_TRUE@am__objects_6 = ../lib/libcurltool_la-curl_multibyte.lo
+
@USE_UNITY_TRUE@am__objects_7 = $(am__objects_6)
@BUILD_UNITTESTS_TRUE@@USE_UNITY_FALSE@am_libcurltool_la_OBJECTS =  \
-
@BUILD_UNITTESTS_TRUE@@USE_UNITY_FALSE@	$(am__objects_4)
+
@BUILD_UNITTESTS_TRUE@@USE_UNITY_FALSE@	$(am__objects_5)
@BUILD_UNITTESTS_TRUE@@USE_UNITY_TRUE@am_libcurltool_la_OBJECTS =  \
-
@BUILD_UNITTESTS_TRUE@@USE_UNITY_TRUE@	$(am__objects_6)
+
@BUILD_UNITTESTS_TRUE@@USE_UNITY_TRUE@	$(am__objects_7)
@BUILD_UNITTESTS_TRUE@@USE_UNITY_TRUE@nodist_libcurltool_la_OBJECTS = libcurltool_la-libcurltool_unity.lo
libcurltool_la_OBJECTS = $(am_libcurltool_la_OBJECTS) \
	$(nodist_libcurltool_la_OBJECTS)
@@ -252,18 +253,18 @@ libcurltool_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
	$(libcurltool_la_CFLAGS) $(CFLAGS) $(libcurltool_la_LDFLAGS) \
	$(LDFLAGS) -o $@
@BUILD_UNITTESTS_TRUE@am_libcurltool_la_rpath =
-
am__curl_SOURCES_DIST = slist_wc.c terminal.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_soc.c tool_cb_wrt.c tool_cfgable.c \
-
	tool_dirhie.c tool_doswin.c tool_easysrc.c tool_filetime.c \
-
	tool_findfile.c tool_formparse.c tool_getparam.c \
-
	tool_getpass.c tool_help.c tool_helpers.c tool_ipfs.c \
-
	tool_libinfo.c tool_listhelp.c tool_main.c tool_msgs.c \
-
	tool_operate.c tool_operhlp.c tool_paramhlp.c tool_parsecfg.c \
-
	tool_progress.c tool_setopt.c tool_sleep.c tool_ssls.c \
-
	tool_stderr.c tool_strdup.c tool_urlglob.c tool_util.c \
-
	tool_vms.c tool_writeout.c tool_writeout_json.c tool_xattr.c \
-
	var.c ../lib/base64.c ../lib/curl_get_line.c \
+
am__curl_SOURCES_DIST = slist_wc.c terminal.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_soc.c tool_cb_wrt.c \
+
	tool_cfgable.c tool_dirhie.c tool_doswin.c tool_easysrc.c \
+
	tool_filetime.c tool_findfile.c tool_formparse.c \
+
	tool_getparam.c tool_getpass.c tool_help.c tool_helpers.c \
+
	tool_hugehelp.c tool_ipfs.c tool_libinfo.c tool_listhelp.c \
+
	tool_main.c tool_msgs.c tool_operate.c tool_operhlp.c \
+
	tool_paramhlp.c tool_parsecfg.c tool_progress.c tool_setopt.c \
+
	tool_sleep.c tool_stderr.c tool_strdup.c tool_urlglob.c \
+
	tool_util.c tool_vms.c tool_writeout.c tool_writeout_json.c \
+
	tool_xattr.c var.c tool_ca_embed.c ../lib/base64.c \
	../lib/curl_multibyte.c ../lib/dynbuf.c ../lib/nonblock.c \
	../lib/strtoofft.c ../lib/timediff.c ../lib/version_win32.c \
	../lib/warnless.c slist_wc.h terminal.h tool_binmode.h \
@@ -272,54 +273,48 @@ am__curl_SOURCES_DIST = slist_wc.c terminal.c tool_bname.c \
	tool_cfgable.h tool_dirhie.h tool_doswin.h tool_easysrc.h \
	tool_filetime.h tool_findfile.h tool_formparse.h \
	tool_getparam.h tool_getpass.h tool_help.h tool_helpers.h \
-
	tool_ipfs.h tool_libinfo.h tool_main.h tool_msgs.h \
-
	tool_operate.h tool_operhlp.h tool_paramhlp.h tool_parsecfg.h \
-
	tool_progress.h tool_sdecls.h tool_setopt.h tool_setup.h \
-
	tool_sleep.h tool_ssls.h tool_stderr.h tool_strdup.h \
+
	tool_hugehelp.h tool_ipfs.h tool_libinfo.h tool_main.h \
+
	tool_msgs.h tool_operate.h tool_operhlp.h tool_paramhlp.h \
+
	tool_parsecfg.h tool_progress.h tool_sdecls.h tool_setopt.h \
+
	tool_setup.h tool_sleep.h tool_stderr.h tool_strdup.h \
	tool_urlglob.h tool_util.h tool_version.h tool_vms.h \
	tool_writeout.h tool_writeout_json.h tool_xattr.h var.h \
-
	tool_hugehelp.c tool_ca_embed.c tool_hugehelp.h curl.rc
-
am__objects_7 = curl-slist_wc.$(OBJEXT) curl-terminal.$(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_soc.$(OBJEXT) curl-tool_cb_wrt.$(OBJEXT) \
-
	curl-tool_cfgable.$(OBJEXT) curl-tool_dirhie.$(OBJEXT) \
-
	curl-tool_doswin.$(OBJEXT) curl-tool_easysrc.$(OBJEXT) \
-
	curl-tool_filetime.$(OBJEXT) curl-tool_findfile.$(OBJEXT) \
-
	curl-tool_formparse.$(OBJEXT) curl-tool_getparam.$(OBJEXT) \
-
	curl-tool_getpass.$(OBJEXT) curl-tool_help.$(OBJEXT) \
-
	curl-tool_helpers.$(OBJEXT) curl-tool_ipfs.$(OBJEXT) \
-
	curl-tool_libinfo.$(OBJEXT) curl-tool_listhelp.$(OBJEXT) \
-
	curl-tool_main.$(OBJEXT) curl-tool_msgs.$(OBJEXT) \
-
	curl-tool_operate.$(OBJEXT) curl-tool_operhlp.$(OBJEXT) \
-
	curl-tool_paramhlp.$(OBJEXT) curl-tool_parsecfg.$(OBJEXT) \
-
	curl-tool_progress.$(OBJEXT) curl-tool_setopt.$(OBJEXT) \
-
	curl-tool_sleep.$(OBJEXT) curl-tool_ssls.$(OBJEXT) \
-
	curl-tool_stderr.$(OBJEXT) curl-tool_strdup.$(OBJEXT) \
-
	curl-tool_urlglob.$(OBJEXT) curl-tool_util.$(OBJEXT) \
-
	curl-tool_vms.$(OBJEXT) curl-tool_writeout.$(OBJEXT) \
-
	curl-tool_writeout_json.$(OBJEXT) curl-tool_xattr.$(OBJEXT) \
-
	curl-var.$(OBJEXT)
-
am__objects_8 = ../lib/curl-base64.$(OBJEXT) \
-
	../lib/curl-curl_get_line.$(OBJEXT) \
-
	../lib/curl-curl_multibyte.$(OBJEXT) \
-
	../lib/curl-dynbuf.$(OBJEXT) ../lib/curl-nonblock.$(OBJEXT) \
-
	../lib/curl-strtoofft.$(OBJEXT) ../lib/curl-timediff.$(OBJEXT) \
-
	../lib/curl-version_win32.$(OBJEXT) \
-
	../lib/curl-warnless.$(OBJEXT)
-
am__objects_9 = $(am__objects_7) $(am__objects_8) $(am__objects_3)
-
am__objects_10 = curl-tool_hugehelp.$(OBJEXT)
-
am__objects_11 = curl-tool_ca_embed.$(OBJEXT)
-
am__objects_12 = $(am__objects_10) $(am__objects_11)
-
am__objects_13 = curl.$(OBJEXT)
-
@HAVE_WINDRES_TRUE@am__objects_14 = $(am__objects_13)
-
@DEBUGBUILD_TRUE@@USE_UNITY_TRUE@am__objects_15 = ../lib/curl-curl_multibyte.$(OBJEXT)
-
@USE_UNITY_TRUE@am__objects_16 = $(am__objects_15)
-
@USE_UNITY_FALSE@am_curl_OBJECTS = $(am__objects_9) $(am__objects_12) \
-
@USE_UNITY_FALSE@	$(am__objects_3) $(am__objects_14)
-
@USE_UNITY_TRUE@am_curl_OBJECTS = $(am__objects_16) $(am__objects_14)
-
@USE_UNITY_TRUE@nodist_curl_OBJECTS = curl-curltool_unity.$(OBJEXT)
+
	curl.rc
+
am__objects_8 = tool_ca_embed.$(OBJEXT)
+
am__objects_9 = slist_wc.$(OBJEXT) terminal.$(OBJEXT) \
+
	tool_binmode.$(OBJEXT) tool_bname.$(OBJEXT) \
+
	tool_cb_dbg.$(OBJEXT) tool_cb_hdr.$(OBJEXT) \
+
	tool_cb_prg.$(OBJEXT) tool_cb_rea.$(OBJEXT) \
+
	tool_cb_see.$(OBJEXT) tool_cb_soc.$(OBJEXT) \
+
	tool_cb_wrt.$(OBJEXT) tool_cfgable.$(OBJEXT) \
+
	tool_dirhie.$(OBJEXT) tool_doswin.$(OBJEXT) \
+
	tool_easysrc.$(OBJEXT) tool_filetime.$(OBJEXT) \
+
	tool_findfile.$(OBJEXT) tool_formparse.$(OBJEXT) \
+
	tool_getparam.$(OBJEXT) tool_getpass.$(OBJEXT) \
+
	tool_help.$(OBJEXT) tool_helpers.$(OBJEXT) \
+
	tool_hugehelp.$(OBJEXT) tool_ipfs.$(OBJEXT) \
+
	tool_libinfo.$(OBJEXT) tool_listhelp.$(OBJEXT) \
+
	tool_main.$(OBJEXT) tool_msgs.$(OBJEXT) tool_operate.$(OBJEXT) \
+
	tool_operhlp.$(OBJEXT) tool_paramhlp.$(OBJEXT) \
+
	tool_parsecfg.$(OBJEXT) tool_progress.$(OBJEXT) \
+
	tool_setopt.$(OBJEXT) tool_sleep.$(OBJEXT) \
+
	tool_stderr.$(OBJEXT) tool_strdup.$(OBJEXT) \
+
	tool_urlglob.$(OBJEXT) tool_util.$(OBJEXT) tool_vms.$(OBJEXT) \
+
	tool_writeout.$(OBJEXT) tool_writeout_json.$(OBJEXT) \
+
	tool_xattr.$(OBJEXT) var.$(OBJEXT) $(am__objects_8)
+
am__objects_10 = ../lib/base64.$(OBJEXT) \
+
	../lib/curl_multibyte.$(OBJEXT) ../lib/dynbuf.$(OBJEXT) \
+
	../lib/nonblock.$(OBJEXT) ../lib/strtoofft.$(OBJEXT) \
+
	../lib/timediff.$(OBJEXT) ../lib/version_win32.$(OBJEXT) \
+
	../lib/warnless.$(OBJEXT)
+
am__objects_11 = $(am__objects_9) $(am__objects_10) $(am__objects_4)
+
am__objects_12 = curl.$(OBJEXT)
+
@HAVE_WINDRES_TRUE@am__objects_13 = $(am__objects_12)
+
@DEBUGBUILD_TRUE@@USE_UNITY_TRUE@am__objects_14 = ../lib/curl_multibyte.$(OBJEXT)
+
@USE_UNITY_TRUE@am__objects_15 = $(am__objects_14)
+
@USE_UNITY_FALSE@am_curl_OBJECTS = $(am__objects_11) $(am__objects_13)
+
@USE_UNITY_TRUE@am_curl_OBJECTS = $(am__objects_15) $(am__objects_13)
+
@USE_UNITY_TRUE@nodist_curl_OBJECTS = curltool_unity.$(OBJEXT)
curl_OBJECTS = $(am_curl_OBJECTS) $(nodist_curl_OBJECTS)
curl_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
curl_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -340,17 +335,9 @@ am__v_at_1 =
DEFAULT_INCLUDES = 
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
-
am__depfiles_remade = ../lib/$(DEPDIR)/curl-base64.Po \
-
	../lib/$(DEPDIR)/curl-curl_get_line.Po \
-
	../lib/$(DEPDIR)/curl-curl_multibyte.Po \
-
	../lib/$(DEPDIR)/curl-dynbuf.Po \
-
	../lib/$(DEPDIR)/curl-nonblock.Po \
-
	../lib/$(DEPDIR)/curl-strtoofft.Po \
-
	../lib/$(DEPDIR)/curl-timediff.Po \
-
	../lib/$(DEPDIR)/curl-version_win32.Po \
-
	../lib/$(DEPDIR)/curl-warnless.Po \
+
am__depfiles_remade = ../lib/$(DEPDIR)/base64.Po \
+
	../lib/$(DEPDIR)/curl_multibyte.Po ../lib/$(DEPDIR)/dynbuf.Po \
	../lib/$(DEPDIR)/libcurltool_la-base64.Plo \
-
	../lib/$(DEPDIR)/libcurltool_la-curl_get_line.Plo \
	../lib/$(DEPDIR)/libcurltool_la-curl_multibyte.Plo \
	../lib/$(DEPDIR)/libcurltool_la-dynbuf.Plo \
	../lib/$(DEPDIR)/libcurltool_la-nonblock.Plo \
@@ -358,47 +345,15 @@ am__depfiles_remade = ../lib/$(DEPDIR)/curl-base64.Po \
	../lib/$(DEPDIR)/libcurltool_la-timediff.Plo \
	../lib/$(DEPDIR)/libcurltool_la-version_win32.Plo \
	../lib/$(DEPDIR)/libcurltool_la-warnless.Plo \
-
	./$(DEPDIR)/curl-curltool_unity.Po \
-
	./$(DEPDIR)/curl-slist_wc.Po ./$(DEPDIR)/curl-terminal.Po \
-
	./$(DEPDIR)/curl-tool_bname.Po \
-
	./$(DEPDIR)/curl-tool_ca_embed.Po \
-
	./$(DEPDIR)/curl-tool_cb_dbg.Po \
-
	./$(DEPDIR)/curl-tool_cb_hdr.Po \
-
	./$(DEPDIR)/curl-tool_cb_prg.Po \
-
	./$(DEPDIR)/curl-tool_cb_rea.Po \
-
	./$(DEPDIR)/curl-tool_cb_see.Po \
-
	./$(DEPDIR)/curl-tool_cb_soc.Po \
-
	./$(DEPDIR)/curl-tool_cb_wrt.Po \
-
	./$(DEPDIR)/curl-tool_cfgable.Po \
-
	./$(DEPDIR)/curl-tool_dirhie.Po \
-
	./$(DEPDIR)/curl-tool_doswin.Po \
-
	./$(DEPDIR)/curl-tool_easysrc.Po \
-
	./$(DEPDIR)/curl-tool_filetime.Po \
-
	./$(DEPDIR)/curl-tool_findfile.Po \
-
	./$(DEPDIR)/curl-tool_formparse.Po \
-
	./$(DEPDIR)/curl-tool_getparam.Po \
-
	./$(DEPDIR)/curl-tool_getpass.Po ./$(DEPDIR)/curl-tool_help.Po \
-
	./$(DEPDIR)/curl-tool_helpers.Po \
-
	./$(DEPDIR)/curl-tool_hugehelp.Po \
-
	./$(DEPDIR)/curl-tool_ipfs.Po ./$(DEPDIR)/curl-tool_libinfo.Po \
-
	./$(DEPDIR)/curl-tool_listhelp.Po \
-
	./$(DEPDIR)/curl-tool_main.Po ./$(DEPDIR)/curl-tool_msgs.Po \
-
	./$(DEPDIR)/curl-tool_operate.Po \
-
	./$(DEPDIR)/curl-tool_operhlp.Po \
-
	./$(DEPDIR)/curl-tool_paramhlp.Po \
-
	./$(DEPDIR)/curl-tool_parsecfg.Po \
-
	./$(DEPDIR)/curl-tool_progress.Po \
-
	./$(DEPDIR)/curl-tool_setopt.Po ./$(DEPDIR)/curl-tool_sleep.Po \
-
	./$(DEPDIR)/curl-tool_ssls.Po ./$(DEPDIR)/curl-tool_stderr.Po \
-
	./$(DEPDIR)/curl-tool_strdup.Po \
-
	./$(DEPDIR)/curl-tool_urlglob.Po ./$(DEPDIR)/curl-tool_util.Po \
-
	./$(DEPDIR)/curl-tool_vms.Po ./$(DEPDIR)/curl-tool_writeout.Po \
-
	./$(DEPDIR)/curl-tool_writeout_json.Po \
-
	./$(DEPDIR)/curl-tool_xattr.Po ./$(DEPDIR)/curl-var.Po \
+
	../lib/$(DEPDIR)/nonblock.Po ../lib/$(DEPDIR)/strtoofft.Po \
+
	../lib/$(DEPDIR)/timediff.Po ../lib/$(DEPDIR)/version_win32.Po \
+
	../lib/$(DEPDIR)/warnless.Po ./$(DEPDIR)/curltool_unity.Po \
	./$(DEPDIR)/libcurltool_la-libcurltool_unity.Plo \
	./$(DEPDIR)/libcurltool_la-slist_wc.Plo \
	./$(DEPDIR)/libcurltool_la-terminal.Plo \
+
	./$(DEPDIR)/libcurltool_la-tool_binmode.Plo \
	./$(DEPDIR)/libcurltool_la-tool_bname.Plo \
+
	./$(DEPDIR)/libcurltool_la-tool_ca_embed.Plo \
	./$(DEPDIR)/libcurltool_la-tool_cb_dbg.Plo \
	./$(DEPDIR)/libcurltool_la-tool_cb_hdr.Plo \
	./$(DEPDIR)/libcurltool_la-tool_cb_prg.Plo \
@@ -417,6 +372,7 @@ am__depfiles_remade = ../lib/$(DEPDIR)/curl-base64.Po \
	./$(DEPDIR)/libcurltool_la-tool_getpass.Plo \
	./$(DEPDIR)/libcurltool_la-tool_help.Plo \
	./$(DEPDIR)/libcurltool_la-tool_helpers.Plo \
+
	./$(DEPDIR)/libcurltool_la-tool_hugehelp.Plo \
	./$(DEPDIR)/libcurltool_la-tool_ipfs.Plo \
	./$(DEPDIR)/libcurltool_la-tool_libinfo.Plo \
	./$(DEPDIR)/libcurltool_la-tool_listhelp.Plo \
@@ -429,7 +385,6 @@ am__depfiles_remade = ../lib/$(DEPDIR)/curl-base64.Po \
	./$(DEPDIR)/libcurltool_la-tool_progress.Plo \
	./$(DEPDIR)/libcurltool_la-tool_setopt.Plo \
	./$(DEPDIR)/libcurltool_la-tool_sleep.Plo \
-
	./$(DEPDIR)/libcurltool_la-tool_ssls.Plo \
	./$(DEPDIR)/libcurltool_la-tool_stderr.Plo \
	./$(DEPDIR)/libcurltool_la-tool_strdup.Plo \
	./$(DEPDIR)/libcurltool_la-tool_urlglob.Plo \
@@ -438,7 +393,29 @@ am__depfiles_remade = ../lib/$(DEPDIR)/curl-base64.Po \
	./$(DEPDIR)/libcurltool_la-tool_writeout.Plo \
	./$(DEPDIR)/libcurltool_la-tool_writeout_json.Plo \
	./$(DEPDIR)/libcurltool_la-tool_xattr.Plo \
-
	./$(DEPDIR)/libcurltool_la-var.Plo
+
	./$(DEPDIR)/libcurltool_la-var.Plo ./$(DEPDIR)/slist_wc.Po \
+
	./$(DEPDIR)/terminal.Po ./$(DEPDIR)/tool_binmode.Po \
+
	./$(DEPDIR)/tool_bname.Po ./$(DEPDIR)/tool_ca_embed.Po \
+
	./$(DEPDIR)/tool_cb_dbg.Po ./$(DEPDIR)/tool_cb_hdr.Po \
+
	./$(DEPDIR)/tool_cb_prg.Po ./$(DEPDIR)/tool_cb_rea.Po \
+
	./$(DEPDIR)/tool_cb_see.Po ./$(DEPDIR)/tool_cb_soc.Po \
+
	./$(DEPDIR)/tool_cb_wrt.Po ./$(DEPDIR)/tool_cfgable.Po \
+
	./$(DEPDIR)/tool_dirhie.Po ./$(DEPDIR)/tool_doswin.Po \
+
	./$(DEPDIR)/tool_easysrc.Po ./$(DEPDIR)/tool_filetime.Po \
+
	./$(DEPDIR)/tool_findfile.Po ./$(DEPDIR)/tool_formparse.Po \
+
	./$(DEPDIR)/tool_getparam.Po ./$(DEPDIR)/tool_getpass.Po \
+
	./$(DEPDIR)/tool_help.Po ./$(DEPDIR)/tool_helpers.Po \
+
	./$(DEPDIR)/tool_hugehelp.Po ./$(DEPDIR)/tool_ipfs.Po \
+
	./$(DEPDIR)/tool_libinfo.Po ./$(DEPDIR)/tool_listhelp.Po \
+
	./$(DEPDIR)/tool_main.Po ./$(DEPDIR)/tool_msgs.Po \
+
	./$(DEPDIR)/tool_operate.Po ./$(DEPDIR)/tool_operhlp.Po \
+
	./$(DEPDIR)/tool_paramhlp.Po ./$(DEPDIR)/tool_parsecfg.Po \
+
	./$(DEPDIR)/tool_progress.Po ./$(DEPDIR)/tool_setopt.Po \
+
	./$(DEPDIR)/tool_sleep.Po ./$(DEPDIR)/tool_stderr.Po \
+
	./$(DEPDIR)/tool_strdup.Po ./$(DEPDIR)/tool_urlglob.Po \
+
	./$(DEPDIR)/tool_util.Po ./$(DEPDIR)/tool_vms.Po \
+
	./$(DEPDIR)/tool_writeout.Po ./$(DEPDIR)/tool_writeout_json.Po \
+
	./$(DEPDIR)/tool_xattr.Po ./$(DEPDIR)/var.Po
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -490,6 +467,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -516,10 +494,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -538,14 +537,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -584,6 +591,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -591,10 +601,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -680,7 +726,7 @@ top_srcdir = @top_srcdir@
###########################################################################
AUTOMAKE_OPTIONS = foreign nostdinc
EXTRA_DIST = mk-file-embed.pl mkhelp.pl \
-
 curl.rc Makefile.inc CMakeLists.txt .checksrc
+
 Makefile.mk curl.rc Makefile.inc CMakeLists.txt .checksrc


# Specify our include paths here, and do it relative to $(top_srcdir) and
@@ -695,21 +741,20 @@ EXTRA_DIST = mk-file-embed.pl mkhelp.pl \
# $(top_srcdir)/src is for curl's src/tool_setup.h and "curl-private" files
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/lib \
	-I$(top_builddir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/src \
-
	$(am__append_1) -DBUILDING_CURL
+
	$(am__append_1) -DBUILDING_CURL $(am__append_7) \
+
	$(am__append_8)
AM_LDFLAGS = $(am__append_2)

# libcurl sources to include in curltool lib we use for test binaries
CURLTOOL_LIBCURL_CFILES = \
  ../lib/base64.c \
-
  ../lib/dynbuf.c \
-
  ../lib/curl_get_line.c
+
  ../lib/dynbuf.c


# libcurl has sources that provide functions named curlx_* that are not part of
# the official API, but we reuse the code here to avoid duplication.
CURLX_CFILES = \
  ../lib/base64.c \
-
  ../lib/curl_get_line.c \
  ../lib/curl_multibyte.c \
  ../lib/dynbuf.c \
  ../lib/nonblock.c \
@@ -720,7 +765,6 @@ CURLX_CFILES = \

CURLX_HFILES = \
  ../lib/curl_ctype.h \
-
  ../lib/curl_get_line.h \
  ../lib/curl_multibyte.h \
  ../lib/curl_setup.h \
  ../lib/dynbuf.h \
@@ -730,51 +774,18 @@ CURLX_HFILES = \
  ../lib/version_win32.h \
  ../lib/warnless.h

-
CURL_CFILES = \
-
  slist_wc.c \
-
  terminal.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_soc.c \
-
  tool_cb_wrt.c \
-
  tool_cfgable.c \
-
  tool_dirhie.c \
-
  tool_doswin.c \
-
  tool_easysrc.c \
-
  tool_filetime.c \
-
  tool_findfile.c \
-
  tool_formparse.c \
-
  tool_getparam.c \
-
  tool_getpass.c \
-
  tool_help.c \
-
  tool_helpers.c \
-
  tool_ipfs.c \
-
  tool_libinfo.c \
-
  tool_listhelp.c \
-
  tool_main.c \
-
  tool_msgs.c \
-
  tool_operate.c \
-
  tool_operhlp.c \
-
  tool_paramhlp.c \
-
  tool_parsecfg.c \
-
  tool_progress.c \
-
  tool_setopt.c \
-
  tool_sleep.c \
-
  tool_ssls.c \
-
  tool_stderr.c \
-
  tool_strdup.c \
-
  tool_urlglob.c \
-
  tool_util.c \
-
  tool_vms.c \
-
  tool_writeout.c \
-
  tool_writeout_json.c \
-
  tool_xattr.c \
-
  var.c
-

+
CURL_CFILES = slist_wc.c terminal.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_soc.c tool_cb_wrt.c tool_cfgable.c \
+
	tool_dirhie.c tool_doswin.c tool_easysrc.c tool_filetime.c \
+
	tool_findfile.c tool_formparse.c tool_getparam.c \
+
	tool_getpass.c tool_help.c tool_helpers.c tool_hugehelp.c \
+
	tool_ipfs.c tool_libinfo.c tool_listhelp.c tool_main.c \
+
	tool_msgs.c tool_operate.c tool_operhlp.c tool_paramhlp.c \
+
	tool_parsecfg.c tool_progress.c tool_setopt.c tool_sleep.c \
+
	tool_stderr.c tool_strdup.c tool_urlglob.c tool_util.c \
+
	tool_vms.c tool_writeout.c tool_writeout_json.c tool_xattr.c \
+
	var.c $(CA_EMBED_CSOURCE)
CURL_HFILES = \
  slist_wc.h \
  terminal.h \
@@ -798,6 +809,7 @@ CURL_HFILES = \
  tool_getpass.h \
  tool_help.h \
  tool_helpers.h \
+
  tool_hugehelp.h \
  tool_ipfs.h \
  tool_libinfo.h \
  tool_main.h \
@@ -811,7 +823,6 @@ CURL_HFILES = \
  tool_setopt.h \
  tool_setup.h \
  tool_sleep.h \
-
  tool_ssls.h \
  tool_stderr.h \
  tool_strdup.h \
  tool_urlglob.h \
@@ -827,8 +838,6 @@ CURL_RCFILES = curl.rc

# curl_SOURCES is special and gets assigned in src/Makefile.am
CURL_FILES = $(CURL_CFILES) $(CURLX_CFILES) $(CURL_HFILES)
-
curl_cfiles_gen = $(HUGE) $(CA_EMBED_CSOURCE)
-
curl_hfiles_gen = tool_hugehelp.h
CLEANFILES = $(am__append_4) $(am__append_6) $(HUGE) \
	$(CA_EMBED_CSOURCE)
@USE_UNITY_TRUE@curl_EXCLUDE = $(am__append_3)
@@ -836,8 +845,7 @@ CLEANFILES = $(am__append_4) $(am__append_6) $(HUGE) \
@USE_CPPFLAG_CURL_STATICLIB_TRUE@@USE_UNITY_TRUE@curl_CURLX = $(CURLTOOL_LIBCURL_CFILES)
@USE_UNITY_TRUE@nodist_curl_SOURCES = curltool_unity.c
# CURL_FILES comes from Makefile.inc
-
@USE_UNITY_FALSE@curl_SOURCES = $(CURL_FILES) $(curl_cfiles_gen) \
-
@USE_UNITY_FALSE@	$(curl_hfiles_gen) $(am__append_5)
+
@USE_UNITY_FALSE@curl_SOURCES = $(CURL_FILES) $(am__append_5)
@USE_UNITY_TRUE@curl_SOURCES = $(curl_EXCLUDE) $(am__append_5)
curl_LDFLAGS = $(AM_LDFLAGS) $(CURL_LDFLAGS_BIN)
curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBCURL_PC_LIBS_PRIVATE@
@@ -859,7 +867,6 @@ HUGECMD = $(HUGEIT_$(V))
HUGEIT_0 = @echo "  HUGE    " $@;
HUGEIT_1 = 
HUGEIT_ = $(HUGEIT_0)
-
curl_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_7) $(am__append_8)
CA_EMBED_CSOURCE = tool_ca_embed.c
@CURL_CA_EMBED_SET_TRUE@MK_FILE_EMBED = $(top_srcdir)/src/mk-file-embed.pl
CHECKSRC = $(CS_$(V))
@@ -868,8 +875,7 @@ CS_1 =
CS_ = $(CS_0)

# disable the tests that are mostly causing false positives
-
TIDYFLAGS := -checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling \
-
	-quiet $(am__append_9)
+
TIDYFLAGS = -checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-valist.Uninitialized,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference
TIDY := clang-tidy
all: all-am

@@ -973,8 +979,6 @@ clean-noinstLTLIBRARIES:
	@: > ../lib/$(DEPDIR)/$(am__dirstamp)
../lib/libcurltool_la-base64.lo: ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/libcurltool_la-curl_get_line.lo: ../lib/$(am__dirstamp) \
-
	../lib/$(DEPDIR)/$(am__dirstamp)
../lib/libcurltool_la-curl_multibyte.lo: ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
../lib/libcurltool_la-dynbuf.lo: ../lib/$(am__dirstamp) \
@@ -992,23 +996,21 @@ clean-noinstLTLIBRARIES:

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)
-
../lib/curl-base64.$(OBJEXT): ../lib/$(am__dirstamp) \
-
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/curl-curl_get_line.$(OBJEXT): ../lib/$(am__dirstamp) \
+
../lib/base64.$(OBJEXT): ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/curl-curl_multibyte.$(OBJEXT): ../lib/$(am__dirstamp) \
+
../lib/curl_multibyte.$(OBJEXT): ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/curl-dynbuf.$(OBJEXT): ../lib/$(am__dirstamp) \
+
../lib/dynbuf.$(OBJEXT): ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/curl-nonblock.$(OBJEXT): ../lib/$(am__dirstamp) \
+
../lib/nonblock.$(OBJEXT): ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/curl-strtoofft.$(OBJEXT): ../lib/$(am__dirstamp) \
+
../lib/strtoofft.$(OBJEXT): ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/curl-timediff.$(OBJEXT): ../lib/$(am__dirstamp) \
+
../lib/timediff.$(OBJEXT): ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/curl-version_win32.$(OBJEXT): ../lib/$(am__dirstamp) \
+
../lib/version_win32.$(OBJEXT): ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)
-
../lib/curl-warnless.$(OBJEXT): ../lib/$(am__dirstamp) \
+
../lib/warnless.$(OBJEXT): ../lib/$(am__dirstamp) \
	../lib/$(DEPDIR)/$(am__dirstamp)

curl$(EXEEXT): $(curl_OBJECTS) $(curl_DEPENDENCIES) $(EXTRA_curl_DEPENDENCIES) 
@@ -1023,17 +1025,10 @@ mostlyclean-compile:
distclean-compile:
	-rm -f *.tab.c

-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-curl_get_line.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-curl_multibyte.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-dynbuf.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-nonblock.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-strtoofft.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-timediff.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-version_win32.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-warnless.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/base64.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl_multibyte.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-base64.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-curl_get_line.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-curl_multibyte.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-dynbuf.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-nonblock.Plo@am__quote@ # am--include-marker
@@ -1041,56 +1036,18 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-timediff.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-version_win32.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-warnless.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-curltool_unity.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-slist_wc.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-terminal.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_bname.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_ca_embed.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_dbg.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_hdr.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_prg.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_rea.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_see.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_soc.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_wrt.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cfgable.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_dirhie.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_doswin.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_easysrc.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_filetime.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_findfile.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_formparse.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_getparam.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_getpass.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_help.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_helpers.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_hugehelp.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_ipfs.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_libinfo.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_listhelp.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_main.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_msgs.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_operate.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_operhlp.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_paramhlp.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_parsecfg.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_progress.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_setopt.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_sleep.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_ssls.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_stderr.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_strdup.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_urlglob.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_util.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_vms.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_writeout.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_writeout_json.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_xattr.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-var.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/nonblock.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/strtoofft.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/timediff.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/version_win32.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/warnless.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curltool_unity.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-libcurltool_unity.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-slist_wc.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-terminal.Plo@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_binmode.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_bname.Plo@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_ca_embed.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_dbg.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_hdr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_prg.Plo@am__quote@ # am--include-marker
@@ -1109,6 +1066,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_getpass.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_help.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_helpers.Plo@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_hugehelp.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_ipfs.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_libinfo.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_listhelp.Plo@am__quote@ # am--include-marker
@@ -1121,7 +1079,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_progress.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_setopt.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_sleep.Plo@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_ssls.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_stderr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_strdup.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_urlglob.Plo@am__quote@ # am--include-marker
@@ -1131,6 +1088,51 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_writeout_json.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_xattr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-var.Plo@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slist_wc.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terminal.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_binmode.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_bname.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_ca_embed.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_cb_dbg.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_cb_hdr.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_cb_prg.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_cb_rea.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_cb_see.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_cb_soc.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_cb_wrt.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_cfgable.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_dirhie.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_doswin.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_easysrc.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_filetime.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_findfile.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_formparse.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_getparam.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_getpass.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_help.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_helpers.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_hugehelp.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_ipfs.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_libinfo.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_listhelp.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_main.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_msgs.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_operate.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_operhlp.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_paramhlp.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_parsecfg.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_progress.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_setopt.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_sleep.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_stderr.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_strdup.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_urlglob.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_util.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_vms.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_writeout.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_writeout_json.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tool_xattr.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/var.Po@am__quote@ # am--include-marker

$(am__depfiles_remade):
	@$(MKDIR_P) $(@D)
@@ -1176,6 +1178,13 @@ libcurltool_la-terminal.lo: terminal.c
@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-terminal.lo `test -f 'terminal.c' || echo '$(srcdir)/'`terminal.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
@@ -1309,6 +1318,13 @@ libcurltool_la-tool_helpers.lo: tool_helpers.c
@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_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_ipfs.lo: tool_ipfs.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_ipfs.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_ipfs.Tpo -c -o libcurltool_la-tool_ipfs.lo `test -f 'tool_ipfs.c' || echo '$(srcdir)/'`tool_ipfs.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_ipfs.Tpo $(DEPDIR)/libcurltool_la-tool_ipfs.Plo
@@ -1393,13 +1409,6 @@ libcurltool_la-tool_sleep.lo: tool_sleep.c
@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_ssls.lo: tool_ssls.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_ssls.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_ssls.Tpo -c -o libcurltool_la-tool_ssls.lo `test -f 'tool_ssls.c' || echo '$(srcdir)/'`tool_ssls.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_ssls.Tpo $(DEPDIR)/libcurltool_la-tool_ssls.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_ssls.c' object='libcurltool_la-tool_ssls.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_ssls.lo `test -f 'tool_ssls.c' || echo '$(srcdir)/'`tool_ssls.c
-

libcurltool_la-tool_stderr.lo: tool_stderr.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_stderr.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_stderr.Tpo -c -o libcurltool_la-tool_stderr.lo `test -f 'tool_stderr.c' || echo '$(srcdir)/'`tool_stderr.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_stderr.Tpo $(DEPDIR)/libcurltool_la-tool_stderr.Plo
@@ -1463,6 +1472,13 @@ libcurltool_la-var.lo: var.c
@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-var.lo `test -f 'var.c' || echo '$(srcdir)/'`var.c

+
libcurltool_la-tool_ca_embed.lo: tool_ca_embed.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_ca_embed.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_ca_embed.Tpo -c -o libcurltool_la-tool_ca_embed.lo `test -f 'tool_ca_embed.c' || echo '$(srcdir)/'`tool_ca_embed.c
+
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_ca_embed.Tpo $(DEPDIR)/libcurltool_la-tool_ca_embed.Plo
+
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_ca_embed.c' object='libcurltool_la-tool_ca_embed.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_ca_embed.lo `test -f 'tool_ca_embed.c' || echo '$(srcdir)/'`tool_ca_embed.c
+

../lib/libcurltool_la-base64.lo: ../lib/base64.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-base64.lo -MD -MP -MF ../lib/$(DEPDIR)/libcurltool_la-base64.Tpo -c -o ../lib/libcurltool_la-base64.lo `test -f '../lib/base64.c' || echo '$(srcdir)/'`../lib/base64.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/libcurltool_la-base64.Tpo ../lib/$(DEPDIR)/libcurltool_la-base64.Plo
@@ -1470,13 +1486,6 @@ libcurltool_la-var.lo: var.c
@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-base64.lo `test -f '../lib/base64.c' || echo '$(srcdir)/'`../lib/base64.c

-
../lib/libcurltool_la-curl_get_line.lo: ../lib/curl_get_line.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-curl_get_line.lo -MD -MP -MF ../lib/$(DEPDIR)/libcurltool_la-curl_get_line.Tpo -c -o ../lib/libcurltool_la-curl_get_line.lo `test -f '../lib/curl_get_line.c' || echo '$(srcdir)/'`../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/libcurltool_la-curl_get_line.Tpo ../lib/$(DEPDIR)/libcurltool_la-curl_get_line.Plo
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/curl_get_line.c' object='../lib/libcurltool_la-curl_get_line.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-curl_get_line.lo `test -f '../lib/curl_get_line.c' || echo '$(srcdir)/'`../lib/curl_get_line.c
-

../lib/libcurltool_la-curl_multibyte.lo: ../lib/curl_multibyte.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-curl_multibyte.lo -MD -MP -MF ../lib/$(DEPDIR)/libcurltool_la-curl_multibyte.Tpo -c -o ../lib/libcurltool_la-curl_multibyte.lo `test -f '../lib/curl_multibyte.c' || echo '$(srcdir)/'`../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/libcurltool_la-curl_multibyte.Tpo ../lib/$(DEPDIR)/libcurltool_la-curl_multibyte.Plo
@@ -1533,776 +1542,6 @@ libcurltool_la-libcurltool_unity.lo: libcurltool_unity.c
@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-libcurltool_unity.lo `test -f 'libcurltool_unity.c' || echo '$(srcdir)/'`libcurltool_unity.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-terminal.o: terminal.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-terminal.o -MD -MP -MF $(DEPDIR)/curl-terminal.Tpo -c -o curl-terminal.o `test -f 'terminal.c' || echo '$(srcdir)/'`terminal.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-terminal.Tpo $(DEPDIR)/curl-terminal.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='terminal.c' object='curl-terminal.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-terminal.o `test -f 'terminal.c' || echo '$(srcdir)/'`terminal.c
-

-
curl-terminal.obj: terminal.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-terminal.obj -MD -MP -MF $(DEPDIR)/curl-terminal.Tpo -c -o curl-terminal.obj `if test -f 'terminal.c'; then $(CYGPATH_W) 'terminal.c'; else $(CYGPATH_W) '$(srcdir)/terminal.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-terminal.Tpo $(DEPDIR)/curl-terminal.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='terminal.c' object='curl-terminal.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-terminal.obj `if test -f 'terminal.c'; then $(CYGPATH_W) 'terminal.c'; else $(CYGPATH_W) '$(srcdir)/terminal.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_soc.o: tool_cb_soc.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_soc.o -MD -MP -MF $(DEPDIR)/curl-tool_cb_soc.Tpo -c -o curl-tool_cb_soc.o `test -f 'tool_cb_soc.c' || echo '$(srcdir)/'`tool_cb_soc.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_soc.Tpo $(DEPDIR)/curl-tool_cb_soc.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_soc.c' object='curl-tool_cb_soc.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_soc.o `test -f 'tool_cb_soc.c' || echo '$(srcdir)/'`tool_cb_soc.c
-

-
curl-tool_cb_soc.obj: tool_cb_soc.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_soc.obj -MD -MP -MF $(DEPDIR)/curl-tool_cb_soc.Tpo -c -o curl-tool_cb_soc.obj `if test -f 'tool_cb_soc.c'; then $(CYGPATH_W) 'tool_cb_soc.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_soc.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_soc.Tpo $(DEPDIR)/curl-tool_cb_soc.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_soc.c' object='curl-tool_cb_soc.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_soc.obj `if test -f 'tool_cb_soc.c'; then $(CYGPATH_W) 'tool_cb_soc.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_soc.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_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_filetime.o: tool_filetime.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_filetime.o -MD -MP -MF $(DEPDIR)/curl-tool_filetime.Tpo -c -o curl-tool_filetime.o `test -f 'tool_filetime.c' || echo '$(srcdir)/'`tool_filetime.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_filetime.Tpo $(DEPDIR)/curl-tool_filetime.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_filetime.c' object='curl-tool_filetime.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_filetime.o `test -f 'tool_filetime.c' || echo '$(srcdir)/'`tool_filetime.c
-

-
curl-tool_filetime.obj: tool_filetime.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_filetime.obj -MD -MP -MF $(DEPDIR)/curl-tool_filetime.Tpo -c -o curl-tool_filetime.obj `if test -f 'tool_filetime.c'; then $(CYGPATH_W) 'tool_filetime.c'; else $(CYGPATH_W) '$(srcdir)/tool_filetime.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_filetime.Tpo $(DEPDIR)/curl-tool_filetime.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_filetime.c' object='curl-tool_filetime.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_filetime.obj `if test -f 'tool_filetime.c'; then $(CYGPATH_W) 'tool_filetime.c'; else $(CYGPATH_W) '$(srcdir)/tool_filetime.c'; fi`
-

-
curl-tool_findfile.o: tool_findfile.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_findfile.o -MD -MP -MF $(DEPDIR)/curl-tool_findfile.Tpo -c -o curl-tool_findfile.o `test -f 'tool_findfile.c' || echo '$(srcdir)/'`tool_findfile.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_findfile.Tpo $(DEPDIR)/curl-tool_findfile.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_findfile.c' object='curl-tool_findfile.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_findfile.o `test -f 'tool_findfile.c' || echo '$(srcdir)/'`tool_findfile.c
-

-
curl-tool_findfile.obj: tool_findfile.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_findfile.obj -MD -MP -MF $(DEPDIR)/curl-tool_findfile.Tpo -c -o curl-tool_findfile.obj `if test -f 'tool_findfile.c'; then $(CYGPATH_W) 'tool_findfile.c'; else $(CYGPATH_W) '$(srcdir)/tool_findfile.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_findfile.Tpo $(DEPDIR)/curl-tool_findfile.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_findfile.c' object='curl-tool_findfile.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_findfile.obj `if test -f 'tool_findfile.c'; then $(CYGPATH_W) 'tool_findfile.c'; else $(CYGPATH_W) '$(srcdir)/tool_findfile.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_ipfs.o: tool_ipfs.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_ipfs.o -MD -MP -MF $(DEPDIR)/curl-tool_ipfs.Tpo -c -o curl-tool_ipfs.o `test -f 'tool_ipfs.c' || echo '$(srcdir)/'`tool_ipfs.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_ipfs.Tpo $(DEPDIR)/curl-tool_ipfs.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_ipfs.c' object='curl-tool_ipfs.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_ipfs.o `test -f 'tool_ipfs.c' || echo '$(srcdir)/'`tool_ipfs.c
-

-
curl-tool_ipfs.obj: tool_ipfs.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_ipfs.obj -MD -MP -MF $(DEPDIR)/curl-tool_ipfs.Tpo -c -o curl-tool_ipfs.obj `if test -f 'tool_ipfs.c'; then $(CYGPATH_W) 'tool_ipfs.c'; else $(CYGPATH_W) '$(srcdir)/tool_ipfs.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_ipfs.Tpo $(DEPDIR)/curl-tool_ipfs.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_ipfs.c' object='curl-tool_ipfs.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_ipfs.obj `if test -f 'tool_ipfs.c'; then $(CYGPATH_W) 'tool_ipfs.c'; else $(CYGPATH_W) '$(srcdir)/tool_ipfs.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_listhelp.o: tool_listhelp.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_listhelp.o -MD -MP -MF $(DEPDIR)/curl-tool_listhelp.Tpo -c -o curl-tool_listhelp.o `test -f 'tool_listhelp.c' || echo '$(srcdir)/'`tool_listhelp.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_listhelp.Tpo $(DEPDIR)/curl-tool_listhelp.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_listhelp.c' object='curl-tool_listhelp.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_listhelp.o `test -f 'tool_listhelp.c' || echo '$(srcdir)/'`tool_listhelp.c
-

-
curl-tool_listhelp.obj: tool_listhelp.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_listhelp.obj -MD -MP -MF $(DEPDIR)/curl-tool_listhelp.Tpo -c -o curl-tool_listhelp.obj `if test -f 'tool_listhelp.c'; then $(CYGPATH_W) 'tool_listhelp.c'; else $(CYGPATH_W) '$(srcdir)/tool_listhelp.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_listhelp.Tpo $(DEPDIR)/curl-tool_listhelp.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_listhelp.c' object='curl-tool_listhelp.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_listhelp.obj `if test -f 'tool_listhelp.c'; then $(CYGPATH_W) 'tool_listhelp.c'; else $(CYGPATH_W) '$(srcdir)/tool_listhelp.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_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_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_progress.o: tool_progress.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_progress.o -MD -MP -MF $(DEPDIR)/curl-tool_progress.Tpo -c -o curl-tool_progress.o `test -f 'tool_progress.c' || echo '$(srcdir)/'`tool_progress.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_progress.Tpo $(DEPDIR)/curl-tool_progress.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_progress.c' object='curl-tool_progress.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_progress.o `test -f 'tool_progress.c' || echo '$(srcdir)/'`tool_progress.c
-

-
curl-tool_progress.obj: tool_progress.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_progress.obj -MD -MP -MF $(DEPDIR)/curl-tool_progress.Tpo -c -o curl-tool_progress.obj `if test -f 'tool_progress.c'; then $(CYGPATH_W) 'tool_progress.c'; else $(CYGPATH_W) '$(srcdir)/tool_progress.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_progress.Tpo $(DEPDIR)/curl-tool_progress.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_progress.c' object='curl-tool_progress.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_progress.obj `if test -f 'tool_progress.c'; then $(CYGPATH_W) 'tool_progress.c'; else $(CYGPATH_W) '$(srcdir)/tool_progress.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_ssls.o: tool_ssls.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_ssls.o -MD -MP -MF $(DEPDIR)/curl-tool_ssls.Tpo -c -o curl-tool_ssls.o `test -f 'tool_ssls.c' || echo '$(srcdir)/'`tool_ssls.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_ssls.Tpo $(DEPDIR)/curl-tool_ssls.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_ssls.c' object='curl-tool_ssls.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_ssls.o `test -f 'tool_ssls.c' || echo '$(srcdir)/'`tool_ssls.c
-

-
curl-tool_ssls.obj: tool_ssls.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_ssls.obj -MD -MP -MF $(DEPDIR)/curl-tool_ssls.Tpo -c -o curl-tool_ssls.obj `if test -f 'tool_ssls.c'; then $(CYGPATH_W) 'tool_ssls.c'; else $(CYGPATH_W) '$(srcdir)/tool_ssls.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_ssls.Tpo $(DEPDIR)/curl-tool_ssls.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_ssls.c' object='curl-tool_ssls.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_ssls.obj `if test -f 'tool_ssls.c'; then $(CYGPATH_W) 'tool_ssls.c'; else $(CYGPATH_W) '$(srcdir)/tool_ssls.c'; fi`
-

-
curl-tool_stderr.o: tool_stderr.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_stderr.o -MD -MP -MF $(DEPDIR)/curl-tool_stderr.Tpo -c -o curl-tool_stderr.o `test -f 'tool_stderr.c' || echo '$(srcdir)/'`tool_stderr.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_stderr.Tpo $(DEPDIR)/curl-tool_stderr.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_stderr.c' object='curl-tool_stderr.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_stderr.o `test -f 'tool_stderr.c' || echo '$(srcdir)/'`tool_stderr.c
-

-
curl-tool_stderr.obj: tool_stderr.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_stderr.obj -MD -MP -MF $(DEPDIR)/curl-tool_stderr.Tpo -c -o curl-tool_stderr.obj `if test -f 'tool_stderr.c'; then $(CYGPATH_W) 'tool_stderr.c'; else $(CYGPATH_W) '$(srcdir)/tool_stderr.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_stderr.Tpo $(DEPDIR)/curl-tool_stderr.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_stderr.c' object='curl-tool_stderr.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_stderr.obj `if test -f 'tool_stderr.c'; then $(CYGPATH_W) 'tool_stderr.c'; else $(CYGPATH_W) '$(srcdir)/tool_stderr.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_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_writeout_json.o: tool_writeout_json.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_writeout_json.o -MD -MP -MF $(DEPDIR)/curl-tool_writeout_json.Tpo -c -o curl-tool_writeout_json.o `test -f 'tool_writeout_json.c' || echo '$(srcdir)/'`tool_writeout_json.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_writeout_json.Tpo $(DEPDIR)/curl-tool_writeout_json.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_writeout_json.c' object='curl-tool_writeout_json.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_json.o `test -f 'tool_writeout_json.c' || echo '$(srcdir)/'`tool_writeout_json.c
-

-
curl-tool_writeout_json.obj: tool_writeout_json.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_writeout_json.obj -MD -MP -MF $(DEPDIR)/curl-tool_writeout_json.Tpo -c -o curl-tool_writeout_json.obj `if test -f 'tool_writeout_json.c'; then $(CYGPATH_W) 'tool_writeout_json.c'; else $(CYGPATH_W) '$(srcdir)/tool_writeout_json.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_writeout_json.Tpo $(DEPDIR)/curl-tool_writeout_json.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_writeout_json.c' object='curl-tool_writeout_json.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_json.obj `if test -f 'tool_writeout_json.c'; then $(CYGPATH_W) 'tool_writeout_json.c'; else $(CYGPATH_W) '$(srcdir)/tool_writeout_json.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`
-

-
curl-var.o: var.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-var.o -MD -MP -MF $(DEPDIR)/curl-var.Tpo -c -o curl-var.o `test -f 'var.c' || echo '$(srcdir)/'`var.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-var.Tpo $(DEPDIR)/curl-var.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='var.c' object='curl-var.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-var.o `test -f 'var.c' || echo '$(srcdir)/'`var.c
-

-
curl-var.obj: var.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-var.obj -MD -MP -MF $(DEPDIR)/curl-var.Tpo -c -o curl-var.obj `if test -f 'var.c'; then $(CYGPATH_W) 'var.c'; else $(CYGPATH_W) '$(srcdir)/var.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-var.Tpo $(DEPDIR)/curl-var.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='var.c' object='curl-var.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-var.obj `if test -f 'var.c'; then $(CYGPATH_W) 'var.c'; else $(CYGPATH_W) '$(srcdir)/var.c'; fi`
-

-
../lib/curl-base64.o: ../lib/base64.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-base64.o -MD -MP -MF ../lib/$(DEPDIR)/curl-base64.Tpo -c -o ../lib/curl-base64.o `test -f '../lib/base64.c' || echo '$(srcdir)/'`../lib/base64.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-base64.Tpo ../lib/$(DEPDIR)/curl-base64.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/base64.c' object='../lib/curl-base64.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-base64.o `test -f '../lib/base64.c' || echo '$(srcdir)/'`../lib/base64.c
-

-
../lib/curl-base64.obj: ../lib/base64.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-base64.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-base64.Tpo -c -o ../lib/curl-base64.obj `if test -f '../lib/base64.c'; then $(CYGPATH_W) '../lib/base64.c'; else $(CYGPATH_W) '$(srcdir)/../lib/base64.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-base64.Tpo ../lib/$(DEPDIR)/curl-base64.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/base64.c' object='../lib/curl-base64.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-base64.obj `if test -f '../lib/base64.c'; then $(CYGPATH_W) '../lib/base64.c'; else $(CYGPATH_W) '$(srcdir)/../lib/base64.c'; fi`
-

-
../lib/curl-curl_get_line.o: ../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-curl_get_line.o -MD -MP -MF ../lib/$(DEPDIR)/curl-curl_get_line.Tpo -c -o ../lib/curl-curl_get_line.o `test -f '../lib/curl_get_line.c' || echo '$(srcdir)/'`../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-curl_get_line.Tpo ../lib/$(DEPDIR)/curl-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/curl_get_line.c' object='../lib/curl-curl_get_line.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-curl_get_line.o `test -f '../lib/curl_get_line.c' || echo '$(srcdir)/'`../lib/curl_get_line.c
-

-
../lib/curl-curl_get_line.obj: ../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-curl_get_line.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-curl_get_line.Tpo -c -o ../lib/curl-curl_get_line.obj `if test -f '../lib/curl_get_line.c'; then $(CYGPATH_W) '../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-curl_get_line.Tpo ../lib/$(DEPDIR)/curl-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/curl_get_line.c' object='../lib/curl-curl_get_line.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-curl_get_line.obj `if test -f '../lib/curl_get_line.c'; then $(CYGPATH_W) '../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../lib/curl_get_line.c'; fi`
-

-
../lib/curl-curl_multibyte.o: ../lib/curl_multibyte.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-curl_multibyte.o -MD -MP -MF ../lib/$(DEPDIR)/curl-curl_multibyte.Tpo -c -o ../lib/curl-curl_multibyte.o `test -f '../lib/curl_multibyte.c' || echo '$(srcdir)/'`../lib/curl_multibyte.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-curl_multibyte.Tpo ../lib/$(DEPDIR)/curl-curl_multibyte.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/curl_multibyte.c' object='../lib/curl-curl_multibyte.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-curl_multibyte.o `test -f '../lib/curl_multibyte.c' || echo '$(srcdir)/'`../lib/curl_multibyte.c
-

-
../lib/curl-curl_multibyte.obj: ../lib/curl_multibyte.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-curl_multibyte.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-curl_multibyte.Tpo -c -o ../lib/curl-curl_multibyte.obj `if test -f '../lib/curl_multibyte.c'; then $(CYGPATH_W) '../lib/curl_multibyte.c'; else $(CYGPATH_W) '$(srcdir)/../lib/curl_multibyte.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-curl_multibyte.Tpo ../lib/$(DEPDIR)/curl-curl_multibyte.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/curl_multibyte.c' object='../lib/curl-curl_multibyte.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-curl_multibyte.obj `if test -f '../lib/curl_multibyte.c'; then $(CYGPATH_W) '../lib/curl_multibyte.c'; else $(CYGPATH_W) '$(srcdir)/../lib/curl_multibyte.c'; fi`
-

-
../lib/curl-dynbuf.o: ../lib/dynbuf.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-dynbuf.o -MD -MP -MF ../lib/$(DEPDIR)/curl-dynbuf.Tpo -c -o ../lib/curl-dynbuf.o `test -f '../lib/dynbuf.c' || echo '$(srcdir)/'`../lib/dynbuf.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-dynbuf.Tpo ../lib/$(DEPDIR)/curl-dynbuf.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/dynbuf.c' object='../lib/curl-dynbuf.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-dynbuf.o `test -f '../lib/dynbuf.c' || echo '$(srcdir)/'`../lib/dynbuf.c
-

-
../lib/curl-dynbuf.obj: ../lib/dynbuf.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-dynbuf.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-dynbuf.Tpo -c -o ../lib/curl-dynbuf.obj `if test -f '../lib/dynbuf.c'; then $(CYGPATH_W) '../lib/dynbuf.c'; else $(CYGPATH_W) '$(srcdir)/../lib/dynbuf.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-dynbuf.Tpo ../lib/$(DEPDIR)/curl-dynbuf.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/dynbuf.c' object='../lib/curl-dynbuf.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-dynbuf.obj `if test -f '../lib/dynbuf.c'; then $(CYGPATH_W) '../lib/dynbuf.c'; else $(CYGPATH_W) '$(srcdir)/../lib/dynbuf.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-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-timediff.o: ../lib/timediff.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-timediff.o -MD -MP -MF ../lib/$(DEPDIR)/curl-timediff.Tpo -c -o ../lib/curl-timediff.o `test -f '../lib/timediff.c' || echo '$(srcdir)/'`../lib/timediff.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-timediff.Tpo ../lib/$(DEPDIR)/curl-timediff.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/timediff.c' object='../lib/curl-timediff.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-timediff.o `test -f '../lib/timediff.c' || echo '$(srcdir)/'`../lib/timediff.c
-

-
../lib/curl-timediff.obj: ../lib/timediff.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-timediff.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-timediff.Tpo -c -o ../lib/curl-timediff.obj `if test -f '../lib/timediff.c'; then $(CYGPATH_W) '../lib/timediff.c'; else $(CYGPATH_W) '$(srcdir)/../lib/timediff.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-timediff.Tpo ../lib/$(DEPDIR)/curl-timediff.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/timediff.c' object='../lib/curl-timediff.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-timediff.obj `if test -f '../lib/timediff.c'; then $(CYGPATH_W) '../lib/timediff.c'; else $(CYGPATH_W) '$(srcdir)/../lib/timediff.c'; fi`
-

-
../lib/curl-version_win32.o: ../lib/version_win32.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-version_win32.o -MD -MP -MF ../lib/$(DEPDIR)/curl-version_win32.Tpo -c -o ../lib/curl-version_win32.o `test -f '../lib/version_win32.c' || echo '$(srcdir)/'`../lib/version_win32.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-version_win32.Tpo ../lib/$(DEPDIR)/curl-version_win32.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/version_win32.c' object='../lib/curl-version_win32.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-version_win32.o `test -f '../lib/version_win32.c' || echo '$(srcdir)/'`../lib/version_win32.c
-

-
../lib/curl-version_win32.obj: ../lib/version_win32.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-version_win32.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-version_win32.Tpo -c -o ../lib/curl-version_win32.obj `if test -f '../lib/version_win32.c'; then $(CYGPATH_W) '../lib/version_win32.c'; else $(CYGPATH_W) '$(srcdir)/../lib/version_win32.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-version_win32.Tpo ../lib/$(DEPDIR)/curl-version_win32.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/version_win32.c' object='../lib/curl-version_win32.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-version_win32.obj `if test -f '../lib/version_win32.c'; then $(CYGPATH_W) '../lib/version_win32.c'; else $(CYGPATH_W) '$(srcdir)/../lib/version_win32.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`
-

-
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_ca_embed.o: tool_ca_embed.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_ca_embed.o -MD -MP -MF $(DEPDIR)/curl-tool_ca_embed.Tpo -c -o curl-tool_ca_embed.o `test -f 'tool_ca_embed.c' || echo '$(srcdir)/'`tool_ca_embed.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_ca_embed.Tpo $(DEPDIR)/curl-tool_ca_embed.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_ca_embed.c' object='curl-tool_ca_embed.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_ca_embed.o `test -f 'tool_ca_embed.c' || echo '$(srcdir)/'`tool_ca_embed.c
-

-
curl-tool_ca_embed.obj: tool_ca_embed.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_ca_embed.obj -MD -MP -MF $(DEPDIR)/curl-tool_ca_embed.Tpo -c -o curl-tool_ca_embed.obj `if test -f 'tool_ca_embed.c'; then $(CYGPATH_W) 'tool_ca_embed.c'; else $(CYGPATH_W) '$(srcdir)/tool_ca_embed.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_ca_embed.Tpo $(DEPDIR)/curl-tool_ca_embed.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_ca_embed.c' object='curl-tool_ca_embed.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_ca_embed.obj `if test -f 'tool_ca_embed.c'; then $(CYGPATH_W) 'tool_ca_embed.c'; else $(CYGPATH_W) '$(srcdir)/tool_ca_embed.c'; fi`
-

-
curl-curltool_unity.o: curltool_unity.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-curltool_unity.o -MD -MP -MF $(DEPDIR)/curl-curltool_unity.Tpo -c -o curl-curltool_unity.o `test -f 'curltool_unity.c' || echo '$(srcdir)/'`curltool_unity.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-curltool_unity.Tpo $(DEPDIR)/curl-curltool_unity.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='curltool_unity.c' object='curl-curltool_unity.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-curltool_unity.o `test -f 'curltool_unity.c' || echo '$(srcdir)/'`curltool_unity.c
-

-
curl-curltool_unity.obj: curltool_unity.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-curltool_unity.obj -MD -MP -MF $(DEPDIR)/curl-curltool_unity.Tpo -c -o curl-curltool_unity.obj `if test -f 'curltool_unity.c'; then $(CYGPATH_W) 'curltool_unity.c'; else $(CYGPATH_W) '$(srcdir)/curltool_unity.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-curltool_unity.Tpo $(DEPDIR)/curl-curltool_unity.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='curltool_unity.c' object='curl-curltool_unity.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-curltool_unity.obj `if test -f 'curltool_unity.c'; then $(CYGPATH_W) 'curltool_unity.c'; else $(CYGPATH_W) '$(srcdir)/curltool_unity.c'; fi`
-

mostlyclean-libtool:
	-rm -f *.lo

@@ -2444,17 +1683,10 @@ clean-am: clean-binPROGRAMS clean-generic clean-libtool \
	clean-noinstLTLIBRARIES mostlyclean-am

distclean: distclean-am
-
		-rm -f ../lib/$(DEPDIR)/curl-base64.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-curl_get_line.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-curl_multibyte.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-dynbuf.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-nonblock.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-strtoofft.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-timediff.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-version_win32.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-warnless.Po
+
		-rm -f ../lib/$(DEPDIR)/base64.Po
+
	-rm -f ../lib/$(DEPDIR)/curl_multibyte.Po
+
	-rm -f ../lib/$(DEPDIR)/dynbuf.Po
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-base64.Plo
-
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-curl_get_line.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-curl_multibyte.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-dynbuf.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-nonblock.Plo
@@ -2462,56 +1694,18 @@ distclean: distclean-am
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-timediff.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-version_win32.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-warnless.Plo
-
	-rm -f ./$(DEPDIR)/curl-curltool_unity.Po
-
	-rm -f ./$(DEPDIR)/curl-slist_wc.Po
-
	-rm -f ./$(DEPDIR)/curl-terminal.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_bname.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_ca_embed.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_dbg.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_hdr.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_prg.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_rea.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_see.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_soc.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_wrt.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cfgable.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_dirhie.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_doswin.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_easysrc.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_filetime.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_findfile.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_formparse.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_getparam.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_getpass.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_help.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_helpers.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_hugehelp.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_ipfs.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_libinfo.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_listhelp.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_main.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_msgs.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_operate.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_operhlp.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_paramhlp.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_parsecfg.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_progress.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_setopt.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_sleep.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_ssls.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_stderr.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_strdup.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_urlglob.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_util.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_vms.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_writeout.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_writeout_json.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_xattr.Po
-
	-rm -f ./$(DEPDIR)/curl-var.Po
+
	-rm -f ../lib/$(DEPDIR)/nonblock.Po
+
	-rm -f ../lib/$(DEPDIR)/strtoofft.Po
+
	-rm -f ../lib/$(DEPDIR)/timediff.Po
+
	-rm -f ../lib/$(DEPDIR)/version_win32.Po
+
	-rm -f ../lib/$(DEPDIR)/warnless.Po
+
	-rm -f ./$(DEPDIR)/curltool_unity.Po
	-rm -f ./$(DEPDIR)/libcurltool_la-libcurltool_unity.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-slist_wc.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-terminal.Plo
+
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_binmode.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_bname.Plo
+
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_ca_embed.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_cb_dbg.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_cb_hdr.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_cb_prg.Plo
@@ -2530,6 +1724,7 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_getpass.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_help.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_helpers.Plo
+
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_hugehelp.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_ipfs.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_libinfo.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_listhelp.Plo
@@ -2542,7 +1737,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_progress.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_setopt.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_sleep.Plo
-
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_ssls.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_stderr.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_strdup.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_urlglob.Plo
@@ -2552,6 +1746,51 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_writeout_json.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_xattr.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-var.Plo
+
	-rm -f ./$(DEPDIR)/slist_wc.Po
+
	-rm -f ./$(DEPDIR)/terminal.Po
+
	-rm -f ./$(DEPDIR)/tool_binmode.Po
+
	-rm -f ./$(DEPDIR)/tool_bname.Po
+
	-rm -f ./$(DEPDIR)/tool_ca_embed.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_dbg.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_hdr.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_prg.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_rea.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_see.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_soc.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_wrt.Po
+
	-rm -f ./$(DEPDIR)/tool_cfgable.Po
+
	-rm -f ./$(DEPDIR)/tool_dirhie.Po
+
	-rm -f ./$(DEPDIR)/tool_doswin.Po
+
	-rm -f ./$(DEPDIR)/tool_easysrc.Po
+
	-rm -f ./$(DEPDIR)/tool_filetime.Po
+
	-rm -f ./$(DEPDIR)/tool_findfile.Po
+
	-rm -f ./$(DEPDIR)/tool_formparse.Po
+
	-rm -f ./$(DEPDIR)/tool_getparam.Po
+
	-rm -f ./$(DEPDIR)/tool_getpass.Po
+
	-rm -f ./$(DEPDIR)/tool_help.Po
+
	-rm -f ./$(DEPDIR)/tool_helpers.Po
+
	-rm -f ./$(DEPDIR)/tool_hugehelp.Po
+
	-rm -f ./$(DEPDIR)/tool_ipfs.Po
+
	-rm -f ./$(DEPDIR)/tool_libinfo.Po
+
	-rm -f ./$(DEPDIR)/tool_listhelp.Po
+
	-rm -f ./$(DEPDIR)/tool_main.Po
+
	-rm -f ./$(DEPDIR)/tool_msgs.Po
+
	-rm -f ./$(DEPDIR)/tool_operate.Po
+
	-rm -f ./$(DEPDIR)/tool_operhlp.Po
+
	-rm -f ./$(DEPDIR)/tool_paramhlp.Po
+
	-rm -f ./$(DEPDIR)/tool_parsecfg.Po
+
	-rm -f ./$(DEPDIR)/tool_progress.Po
+
	-rm -f ./$(DEPDIR)/tool_setopt.Po
+
	-rm -f ./$(DEPDIR)/tool_sleep.Po
+
	-rm -f ./$(DEPDIR)/tool_stderr.Po
+
	-rm -f ./$(DEPDIR)/tool_strdup.Po
+
	-rm -f ./$(DEPDIR)/tool_urlglob.Po
+
	-rm -f ./$(DEPDIR)/tool_util.Po
+
	-rm -f ./$(DEPDIR)/tool_vms.Po
+
	-rm -f ./$(DEPDIR)/tool_writeout.Po
+
	-rm -f ./$(DEPDIR)/tool_writeout_json.Po
+
	-rm -f ./$(DEPDIR)/tool_xattr.Po
+
	-rm -f ./$(DEPDIR)/var.Po
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-tags
@@ -2597,17 +1836,10 @@ install-ps-am:
installcheck-am:

maintainer-clean: maintainer-clean-am
-
		-rm -f ../lib/$(DEPDIR)/curl-base64.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-curl_get_line.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-curl_multibyte.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-dynbuf.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-nonblock.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-strtoofft.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-timediff.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-version_win32.Po
-
	-rm -f ../lib/$(DEPDIR)/curl-warnless.Po
+
		-rm -f ../lib/$(DEPDIR)/base64.Po
+
	-rm -f ../lib/$(DEPDIR)/curl_multibyte.Po
+
	-rm -f ../lib/$(DEPDIR)/dynbuf.Po
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-base64.Plo
-
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-curl_get_line.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-curl_multibyte.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-dynbuf.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-nonblock.Plo
@@ -2615,56 +1847,18 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-timediff.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-version_win32.Plo
	-rm -f ../lib/$(DEPDIR)/libcurltool_la-warnless.Plo
-
	-rm -f ./$(DEPDIR)/curl-curltool_unity.Po
-
	-rm -f ./$(DEPDIR)/curl-slist_wc.Po
-
	-rm -f ./$(DEPDIR)/curl-terminal.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_bname.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_ca_embed.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_dbg.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_hdr.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_prg.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_rea.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_see.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_soc.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cb_wrt.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_cfgable.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_dirhie.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_doswin.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_easysrc.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_filetime.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_findfile.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_formparse.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_getparam.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_getpass.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_help.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_helpers.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_hugehelp.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_ipfs.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_libinfo.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_listhelp.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_main.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_msgs.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_operate.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_operhlp.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_paramhlp.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_parsecfg.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_progress.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_setopt.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_sleep.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_ssls.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_stderr.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_strdup.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_urlglob.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_util.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_vms.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_writeout.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_writeout_json.Po
-
	-rm -f ./$(DEPDIR)/curl-tool_xattr.Po
-
	-rm -f ./$(DEPDIR)/curl-var.Po
+
	-rm -f ../lib/$(DEPDIR)/nonblock.Po
+
	-rm -f ../lib/$(DEPDIR)/strtoofft.Po
+
	-rm -f ../lib/$(DEPDIR)/timediff.Po
+
	-rm -f ../lib/$(DEPDIR)/version_win32.Po
+
	-rm -f ../lib/$(DEPDIR)/warnless.Po
+
	-rm -f ./$(DEPDIR)/curltool_unity.Po
	-rm -f ./$(DEPDIR)/libcurltool_la-libcurltool_unity.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-slist_wc.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-terminal.Plo
+
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_binmode.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_bname.Plo
+
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_ca_embed.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_cb_dbg.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_cb_hdr.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_cb_prg.Plo
@@ -2683,6 +1877,7 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_getpass.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_help.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_helpers.Plo
+
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_hugehelp.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_ipfs.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_libinfo.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_listhelp.Plo
@@ -2695,7 +1890,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_progress.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_setopt.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_sleep.Plo
-
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_ssls.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_stderr.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_strdup.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_urlglob.Plo
@@ -2705,6 +1899,51 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_writeout_json.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-tool_xattr.Plo
	-rm -f ./$(DEPDIR)/libcurltool_la-var.Plo
+
	-rm -f ./$(DEPDIR)/slist_wc.Po
+
	-rm -f ./$(DEPDIR)/terminal.Po
+
	-rm -f ./$(DEPDIR)/tool_binmode.Po
+
	-rm -f ./$(DEPDIR)/tool_bname.Po
+
	-rm -f ./$(DEPDIR)/tool_ca_embed.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_dbg.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_hdr.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_prg.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_rea.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_see.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_soc.Po
+
	-rm -f ./$(DEPDIR)/tool_cb_wrt.Po
+
	-rm -f ./$(DEPDIR)/tool_cfgable.Po
+
	-rm -f ./$(DEPDIR)/tool_dirhie.Po
+
	-rm -f ./$(DEPDIR)/tool_doswin.Po
+
	-rm -f ./$(DEPDIR)/tool_easysrc.Po
+
	-rm -f ./$(DEPDIR)/tool_filetime.Po
+
	-rm -f ./$(DEPDIR)/tool_findfile.Po
+
	-rm -f ./$(DEPDIR)/tool_formparse.Po
+
	-rm -f ./$(DEPDIR)/tool_getparam.Po
+
	-rm -f ./$(DEPDIR)/tool_getpass.Po
+
	-rm -f ./$(DEPDIR)/tool_help.Po
+
	-rm -f ./$(DEPDIR)/tool_helpers.Po
+
	-rm -f ./$(DEPDIR)/tool_hugehelp.Po
+
	-rm -f ./$(DEPDIR)/tool_ipfs.Po
+
	-rm -f ./$(DEPDIR)/tool_libinfo.Po
+
	-rm -f ./$(DEPDIR)/tool_listhelp.Po
+
	-rm -f ./$(DEPDIR)/tool_main.Po
+
	-rm -f ./$(DEPDIR)/tool_msgs.Po
+
	-rm -f ./$(DEPDIR)/tool_operate.Po
+
	-rm -f ./$(DEPDIR)/tool_operhlp.Po
+
	-rm -f ./$(DEPDIR)/tool_paramhlp.Po
+
	-rm -f ./$(DEPDIR)/tool_parsecfg.Po
+
	-rm -f ./$(DEPDIR)/tool_progress.Po
+
	-rm -f ./$(DEPDIR)/tool_setopt.Po
+
	-rm -f ./$(DEPDIR)/tool_sleep.Po
+
	-rm -f ./$(DEPDIR)/tool_stderr.Po
+
	-rm -f ./$(DEPDIR)/tool_strdup.Po
+
	-rm -f ./$(DEPDIR)/tool_urlglob.Po
+
	-rm -f ./$(DEPDIR)/tool_util.Po
+
	-rm -f ./$(DEPDIR)/tool_vms.Po
+
	-rm -f ./$(DEPDIR)/tool_writeout.Po
+
	-rm -f ./$(DEPDIR)/tool_writeout_json.Po
+
	-rm -f ./$(DEPDIR)/tool_xattr.Po
+
	-rm -f ./$(DEPDIR)/var.Po
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

@@ -2745,8 +1984,8 @@ uninstall-am: uninstall-binPROGRAMS

# remove targets if the command fails
.DELETE_ON_ERROR:
-
@USE_UNITY_TRUE@curltool_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CURL_CFILES) $(curl_cfiles_gen) $(curl_CURLX)
-
@USE_UNITY_TRUE@	@PERL@ $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CURL_CFILES) $(curl_cfiles_gen) $(curl_CURLX) --exclude $(curl_EXCLUDE) > curltool_unity.c
+
@USE_UNITY_TRUE@curltool_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CURL_CFILES) $(curl_CURLX)
+
@USE_UNITY_TRUE@	@PERL@  $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CURL_CFILES) $(curl_CURLX) --exclude $(curl_EXCLUDE) > curltool_unity.c
@HAVE_WINDRES_TRUE@$(CURL_RCFILES): tool_version.h
@BUILD_UNITTESTS_TRUE@@USE_UNITY_TRUE@libcurltool_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CURL_CFILES) $(CURLTOOL_LIBCURL_CFILES)
@BUILD_UNITTESTS_TRUE@@USE_UNITY_TRUE@	@PERL@ $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CURL_CFILES) $(CURLTOOL_LIBCURL_CFILES) --exclude $(curl_EXCLUDE) > libcurltool_unity.c
@@ -2781,15 +2020,13 @@ checksrc:
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) \
	  -W$(srcdir)/$(HUGE) \
	  -W$(srcdir)/$(CA_EMBED_CSOURCE) \
-
	  -W$(srcdir)/curltool_unity.c \
-
	  -W$(srcdir)/libcurltool_unity.c \
	  $(srcdir)/*.[ch])

# for debug builds, we scan the sources on all regular make invokes
@DEBUGBUILD_TRUE@all-local: checksrc

-
tidy: $(HUGE) $(CA_EMBED_CSOURCE)
-
	$(TIDY) $(CURL_CFILES) $(curl_cfiles_gen) $(TIDYFLAGS) $(CURL_CLANG_TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CPPFLAGS) -DHAVE_CONFIG_H
+
tidy:
+
	$(TIDY) $(CURL_CFILES) $(TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H

listhelp:
	(cd $(top_srcdir)/docs/cmdline-opts && make listhelp)
modified external/curl/src/Makefile.inc
@@ -32,14 +32,12 @@
# libcurl sources to include in curltool lib we use for test binaries
CURLTOOL_LIBCURL_CFILES = \
  ../lib/base64.c \
-
  ../lib/dynbuf.c \
-
  ../lib/curl_get_line.c
+
  ../lib/dynbuf.c

# libcurl has sources that provide functions named curlx_* that are not part of
# the official API, but we reuse the code here to avoid duplication.
CURLX_CFILES = \
  ../lib/base64.c \
-
  ../lib/curl_get_line.c \
  ../lib/curl_multibyte.c \
  ../lib/dynbuf.c \
  ../lib/nonblock.c \
@@ -50,7 +48,6 @@ CURLX_CFILES = \

CURLX_HFILES = \
  ../lib/curl_ctype.h \
-
  ../lib/curl_get_line.h \
  ../lib/curl_multibyte.h \
  ../lib/curl_setup.h \
  ../lib/dynbuf.h \
@@ -63,6 +60,7 @@ CURLX_HFILES = \
CURL_CFILES = \
  slist_wc.c \
  terminal.c \
+
  tool_binmode.c \
  tool_bname.c \
  tool_cb_dbg.c \
  tool_cb_hdr.c \
@@ -82,6 +80,7 @@ CURL_CFILES = \
  tool_getpass.c \
  tool_help.c \
  tool_helpers.c \
+
  tool_hugehelp.c \
  tool_ipfs.c \
  tool_libinfo.c \
  tool_listhelp.c \
@@ -94,7 +93,6 @@ CURL_CFILES = \
  tool_progress.c \
  tool_setopt.c \
  tool_sleep.c \
-
  tool_ssls.c \
  tool_stderr.c \
  tool_strdup.c \
  tool_urlglob.c \
@@ -128,6 +126,7 @@ CURL_HFILES = \
  tool_getpass.h \
  tool_help.h \
  tool_helpers.h \
+
  tool_hugehelp.h \
  tool_ipfs.h \
  tool_libinfo.h \
  tool_main.h \
@@ -141,7 +140,6 @@ CURL_HFILES = \
  tool_setopt.h \
  tool_setup.h \
  tool_sleep.h \
-
  tool_ssls.h \
  tool_stderr.h \
  tool_strdup.h \
  tool_urlglob.h \
added external/curl/src/Makefile.mk
@@ -0,0 +1,95 @@
+
#***************************************************************************
+
#                                  _   _ ____  _
+
#  Project                     ___| | | |  _ \| |
+
#                             / __| | | | |_) | |
+
#                            | (__| |_| |  _ <| |___
+
#                             \___|\___/|_| \_\_____|
+
#
+
# Copyright (C) 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.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.
+
#
+
# SPDX-License-Identifier: curl
+
#
+
#***************************************************************************
+

+
# See usage in lib/Makefile.mk
+

+
PROOT := ..
+

+
### Common
+

+
include $(PROOT)/lib/Makefile.mk
+

+
### Local
+

+
CPPFLAGS += -I$(PROOT)/lib
+
LDFLAGS  += -L$(PROOT)/lib
+
LIBS     := -lcurl $(LIBS)
+

+
### Sources and targets
+

+
# Provides CURL_CFILES, CURLX_CFILES
+
include Makefile.inc
+

+
TARGETS := curl$(BIN_EXT)
+

+
CURL_CFILES += $(notdir $(CURLX_CFILES))
+

+
ifneq ($(CURL_CA_EMBED),)
+
CPPFLAGS += -DCURL_CA_EMBED
+
CURL_CFILES += tool_ca_embed.c
+
endif
+

+
curl_OBJECTS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(strip $(CURL_CFILES)))
+
ifdef MAP
+
CURL_MAP := curl.map
+
LDFLAGS += -Wl,-Map,$(CURL_MAP)
+
TOVCLEAN := $(CURL_MAP)
+
endif
+
vpath %.c $(PROOT)/lib
+

+
TOCLEAN := $(curl_OBJECTS)
+

+
### Rules
+

+
PERL ?= perl
+

+
ifneq ($(wildcard tool_hugehelp.c.cvs),)
+
TOCLEAN += tool_hugehelp.c
+
# Load DPAGES
+
include $(PROOT)/docs/cmdline-opts/Makefile.inc
+
$(PROOT)/docs/cmdline-opts/curl.txt: $(addprefix $(PROOT)/docs/cmdline-opts/,$(DPAGES)) $(PROOT)/scripts/managen
+
	cd $(PROOT)/docs/cmdline-opts && $(PERL) ../../scripts/managen ascii $(DPAGES) > curl.txt
+
# Necessary for the generated tools_hugehelp.c
+
CPPFLAGS += -DUSE_MANUAL
+
ifdef ZLIB
+
_MKHELPOPT += -c
+
endif
+
tool_hugehelp.c: $(PROOT)/docs/cmdline-opts/curl.txt mkhelp.pl
+
	$(PERL) mkhelp.pl $(_MKHELPOPT) < $< > $@
+
else
+
tool_hugehelp.c:
+
	@echo Creating $@
+
	@$(call COPY, $@.cvs, $@)
+
endif
+

+
ifneq ($(CURL_CA_EMBED),)
+
TOCLEAN += tool_ca_embed.c
+
tool_ca_embed.c: mk-file-embed.pl
+
	$(PERL) mk-file-embed.pl --var curl_ca_embed < $(CURL_CA_EMBED) > $@
+
endif
+

+
$(TARGETS): $(curl_OBJECTS) $(PROOT)/lib/libcurl.a
+
	$(CC) $(LDFLAGS) -o $@ $(curl_OBJECTS) $(LIBS)
+

+
all: $(OBJ_DIR) $(TARGETS)
modified external/curl/src/mkhelp.pl
@@ -43,8 +43,8 @@ print <<HEAD
/*
 * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
 */
-
#include "tool_hugehelp.h"
#ifdef USE_MANUAL
+
#include "tool_hugehelp.h"
#include "tool_help.h"

HEAD
added external/curl/src/tool_binmode.c
@@ -0,0 +1,55 @@
+
/***************************************************************************
+
 *                                  _   _ ____  _
+
 *  Project                     ___| | | |  _ \| |
+
 *                             / __| | | | |_) | |
+
 *                            | (__| |_| |  _ <| |___
+
 *                             \___|\___/|_| \_\_____|
+
 *
+
 * Copyright (C) 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.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.
+
 *
+
 * SPDX-License-Identifier: curl
+
 *
+
 ***************************************************************************/
+
#include "tool_setup.h"
+

+
#if defined(HAVE_SETMODE) || defined(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);
+
#  elif defined(HAVE__SETMODE)
+
  (void)_setmode(fileno(stream), O_BINARY);
+
#  else
+
  (void)setmode(fileno(stream), O_BINARY);
+
#  endif
+
#else
+
  (void)stream;
+
#endif
+
}
+

+
#endif /* HAVE_SETMODE || HAVE__SETMODE */
modified external/curl/src/tool_binmode.h
@@ -25,15 +25,14 @@
 ***************************************************************************/
#include "tool_setup.h"

-
#if (defined(HAVE_SETMODE) || defined(HAVE__SETMODE)) && defined(O_BINARY)
-
/* Requires io.h and/or fcntl.h when available */
-
#ifdef HAVE__SETMODE
-
#  define CURL_SET_BINMODE(stream)  (void)_setmode(fileno(stream), O_BINARY)
-
#else
-
#  define CURL_SET_BINMODE(stream)  (void)setmode(fileno(stream), O_BINARY)
-
#endif
+
#if defined(HAVE_SETMODE) || defined(HAVE__SETMODE)
+

+
void set_binmode(FILE *stream);
+

#else
-
#  define CURL_SET_BINMODE(stream)  (void)stream; Curl_nop_stmt
-
#endif
+

+
#define set_binmode(x) Curl_nop_stmt
+

+
#endif /* HAVE_SETMODE || HAVE__SETMODE */

#endif /* HEADER_CURL_TOOL_BINMODE_H */
modified external/curl/src/tool_cb_hdr.c
@@ -392,6 +392,26 @@ static char *parse_filename(const char *ptr, size_t len)
  }
#endif /* _WIN32 || MSDOS */

+
  /* in case we built debug enabled, we allow an environment variable
+
   * named CURL_TESTDIR to prefix the given filename to put it into a
+
   * specific directory
+
   */
+
#ifdef DEBUGBUILD
+
  {
+
    char *tdir = curl_getenv("CURL_TESTDIR");
+
    if(tdir) {
+
      char buffer[512]; /* suitably large */
+
      msnprintf(buffer, sizeof(buffer), "%s/%s", tdir, copy);
+
      Curl_safefree(copy);
+
      copy = strdup(buffer); /* clone the buffer, we do not 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;
}

modified external/curl/src/tool_cb_rea.c
@@ -74,14 +74,7 @@ size_t tool_read_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
      timeout.tv_usec = (int)((wait%1000)*1000);

      FD_ZERO(&bits);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
      FD_SET(per->infd, &bits);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
      if(!select(per->infd + 1, &bits, NULL, NULL, &timeout))
        return 0; /* timeout */
    }
modified external/curl/src/tool_cb_see.c
@@ -49,7 +49,7 @@ int tool_seek_cb(void *userdata, curl_off_t offset, int whence)
{
  struct per_transfer *per = userdata;

-
#if (SIZEOF_CURL_OFF_T > SIZEOF_OFF_T) && !defined(USE_WIN32_LARGE_FILES)
+
#if(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
@@ -80,11 +80,7 @@ int tool_seek_cb(void *userdata, curl_off_t offset, int whence)
  }
#endif

-
#ifdef __AMIGA__
-
  if(LSEEK_ERROR == lseek(per->infd, (off_t)offset, whence))
-
#else
  if(LSEEK_ERROR == lseek(per->infd, offset, whence))
-
#endif
    /* could not rewind, the reason is in errno but errno is just not portable
       enough and we do not actually care that much why we failed. We will let
       libcurl know that it may try other means if it wants to. */
modified external/curl/src/tool_cb_wrt.c
@@ -39,6 +39,9 @@

#include "memdebug.h" /* keep this as LAST include */

+
#ifndef O_BINARY
+
#define O_BINARY 0
+
#endif
#ifdef _WIN32
#define OPENMODE S_IREAD | S_IWRITE
#else
@@ -66,7 +69,7 @@ bool tool_create_output_file(struct OutStruct *outs,
  else {
    int fd;
    do {
-
      fd = open(fname, O_CREAT | O_WRONLY | O_EXCL | CURL_O_BINARY, OPENMODE);
+
      fd = open(fname, O_CREAT | O_WRONLY | O_EXCL | O_BINARY, OPENMODE);
      /* Keep retrying in the hope that it is not interrupted sometime */
    } while(fd == -1 && errno == EINTR);
    if(config->file_clobber_mode == CLOBBER_NEVER && fd == -1) {
@@ -93,8 +96,7 @@ bool tool_create_output_file(struct OutStruct *outs,
        msnprintf(newname + len + 1, 12, "%d", next_num);
        next_num++;
        do {
-
          fd = open(newname, O_CREAT | O_WRONLY | O_EXCL | CURL_O_BINARY,
-
                             OPENMODE);
+
          fd = open(newname, O_CREAT | O_WRONLY | O_EXCL | O_BINARY, OPENMODE);
          /* Keep retrying in the hope that it is not interrupted sometime */
        } while(fd == -1 && errno == EINTR);
      }
modified external/curl/src/tool_cfgable.h
@@ -130,7 +130,6 @@ struct OperationConfig {
  struct getout *url_get;   /* point to the node to fill in URL */
  struct getout *url_out;   /* point to the node to fill in outfile */
  struct getout *url_ul;    /* point to the node to fill in upload */
-
  size_t num_urls;          /* number of URLs added to the list */
#ifndef CURL_DISABLE_IPFS
  char *ipfs_gateway;
#endif /* !CURL_DISABLE_IPFS */
@@ -330,7 +329,6 @@ struct GlobalConfig {
  bool styled_output;             /* enable fancy output style detection */
  long ms_per_transfer;           /* start next transfer after (at least) this
                                     many milliseconds */
-
  char *ssl_sessions;             /* file to load/save SSL session tickets */
#ifdef DEBUGBUILD
  bool test_duphandle;
  bool test_event_based;
modified external/curl/src/tool_doswin.c
@@ -45,16 +45,8 @@
#ifdef _WIN32
#  undef  PATH_MAX
#  define PATH_MAX MAX_PATH
-

-
#  define _use_lfn(f) (1)  /* long filenames always available */
-
#elif !defined(__DJGPP__) || (__DJGPP__ < 2)  /* DJGPP 2.0 has _use_lfn() */
-
#  define _use_lfn(f) (0)  /* long filenames never available */
-
#elif defined(__DJGPP__)
-
#  include <fcntl.h>       /* _use_lfn(f) prototype */
#endif

-
#ifdef MSDOS
-

#ifndef S_ISCHR
#  ifdef S_IFCHR
#    define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
@@ -63,6 +55,15 @@
#  endif
#endif

+
#ifdef _WIN32
+
#  define _use_lfn(f) (1)   /* long filenames always available */
+
#elif !defined(__DJGPP__) || (__DJGPP__ < 2)  /* DJGPP 2.0 has _use_lfn() */
+
#  define _use_lfn(f) (0)  /* long filenames never available */
+
#elif defined(__DJGPP__)
+
#  include <fcntl.h>                /* _use_lfn(f) prototype */
+
#endif
+

+
#ifdef MSDOS
/* only used by msdosify() */
static SANITIZEcode truncate_dryrun(const char *path,
                                    const size_t truncate_pos);
@@ -241,8 +242,7 @@ 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
*/
-
static SANITIZEcode truncate_dryrun(const char *path,
-
                                    const size_t truncate_pos)
+
SANITIZEcode truncate_dryrun(const char *path, const size_t truncate_pos)
{
  size_t len;

@@ -291,8 +291,8 @@ sanitize_file_name.
Success: (SANITIZE_ERR_OK) *sanitized points to a sanitized copy of file_name.
Failure: (!= SANITIZE_ERR_OK) *sanitized is NULL.
*/
-
static SANITIZEcode msdosify(char **const sanitized, const char *file_name,
-
                             int flags)
+
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 */
@@ -418,7 +418,7 @@ static SANITIZEcode msdosify(char **const sanitized, const char *file_name,
  }

  *sanitized = strdup(dos_name);
-
  return *sanitized ? SANITIZE_ERR_OK : SANITIZE_ERR_OUT_OF_MEMORY;
+
  return (*sanitized ? SANITIZE_ERR_OK : SANITIZE_ERR_OUT_OF_MEMORY);
}
#endif /* MSDOS */

@@ -547,10 +547,11 @@ static SANITIZEcode rename_if_reserved_dos(char **const sanitized,
#endif

  *sanitized = strdup(fname);
-
  return *sanitized ? SANITIZE_ERR_OK : SANITIZE_ERR_OUT_OF_MEMORY;
+
  return (*sanitized ? SANITIZE_ERR_OK : SANITIZE_ERR_OUT_OF_MEMORY);
}

-
#ifdef __DJGPP__
+
#if defined(MSDOS) && (defined(__DJGPP__) || defined(__GO32__))
+

/*
 * Disable program default argument globbing. We do it on our own.
 */
@@ -559,7 +560,8 @@ char **__crt0_glob_function(char *arg)
  (void)arg;
  return (char **)0;
}
-
#endif
+

+
#endif /* MSDOS && (__DJGPP__ || __GO32__) */

#ifdef _WIN32

modified external/curl/src/tool_doswin.h
@@ -40,10 +40,20 @@ typedef enum {

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__))

-
#ifdef __DJGPP__
char **__crt0_glob_function(char *arg);
-
#endif
+

+
#endif /* MSDOS && (__DJGPP__ || __GO32__) */

#ifdef _WIN32

modified external/curl/src/tool_findfile.c
@@ -24,9 +24,8 @@
#include "tool_setup.h"

#ifdef HAVE_PWD_H
-
#undef __NO_NET_API /* required for AmigaOS to declare getpwuid() */
-
#include <pwd.h>
-
#define __NO_NET_API
+
#  undef __NO_NET_API /* required for building for AmigaOS */
+
#  include <pwd.h>
#endif

#ifdef HAVE_SYS_STAT_H
modified external/curl/src/tool_formparse.c
@@ -75,31 +75,6 @@ static struct tool_mime *tool_mime_new_data(struct tool_mime *parent,
  return m;
}

-
/*
-
** unsigned size_t to signed curl_off_t
-
*/
-

-
#define CURL_MASK_UCOFFT  ((unsigned CURL_TYPEOF_CURL_OFF_T)~0)
-
#define CURL_MASK_SCOFFT  (CURL_MASK_UCOFFT >> 1)
-

-
static curl_off_t uztoso(size_t uznum)
-
{
-
#ifdef __INTEL_COMPILER
-
#  pragma warning(push)
-
#  pragma warning(disable:810) /* conversion may lose significant bits */
-
#elif defined(_MSC_VER)
-
#  pragma warning(push)
-
#  pragma warning(disable:4310) /* cast truncates constant value */
-
#endif
-

-
  DEBUGASSERT(uznum <= (size_t) CURL_MASK_SCOFFT);
-
  return (curl_off_t)(uznum & (size_t) CURL_MASK_SCOFFT);
-

-
#if defined(__INTEL_COMPILER) || defined(_MSC_VER)
-
#  pragma warning(pop)
-
#endif
-
}
-

static struct tool_mime *tool_mime_new_filedata(struct tool_mime *parent,
                                                const char *filename,
                                                bool isremotefile,
@@ -131,7 +106,7 @@ static struct tool_mime *tool_mime_new_filedata(struct tool_mime *parent,
    curl_off_t origin;
    struct_stat sbuf;

-
    CURL_SET_BINMODE(stdin);
+
    set_binmode(stdin);
    origin = ftell(stdin);
    /* If stdin is a regular file, do not buffer data but read it
       when needed. */
@@ -162,7 +137,7 @@ static struct tool_mime *tool_mime_new_filedata(struct tool_mime *parent,
        }
        break;
      }
-
      size = uztoso(stdinsize);
+
      size = curlx_uztoso(stdinsize);
      origin = 0;
    }
    m = tool_mime_new(parent, TOOLMIME_STDIN);
@@ -211,7 +186,7 @@ size_t tool_mime_stdin_read(char *buffer,
    if(sip->curpos >= sip->size)
      return 0;  /* At eof. */
    bytesleft = sip->size - sip->curpos;
-
    if(uztoso(nitems) > bytesleft)
+
    if(curlx_uztoso(nitems) > bytesleft)
      nitems = curlx_sotouz(bytesleft);
  }
  if(nitems) {
@@ -231,7 +206,7 @@ size_t tool_mime_stdin_read(char *buffer,
        return CURL_READFUNC_ABORT;
      }
    }
-
    sip->curpos += uztoso(nitems);
+
    sip->curpos += curlx_uztoso(nitems);
  }
  return nitems;
}
@@ -520,15 +495,14 @@ static int get_param_part(struct OperationConfig *config, char endchar,
      ;

    if(!endct && checkprefix("type=", p)) {
-
      size_t tlen;
      for(p += 5; ISSPACE(*p); p++)
        ;
      /* set type pointer */
      type = p;

      /* find end of content-type */
-
      tlen = strcspn(p, "()<>@,;:\\\"[]?=\r\n ");
-
      p += tlen;
+
      while(*p && (ISALPHA(*p) || (*p == '/') || (*p == '-')))
+
        p++;
      endct = p;
      sep = *p;
    }
modified external/curl/src/tool_getparam.c
@@ -45,6 +45,10 @@

#include "memdebug.h" /* keep this as LAST include */

+
#ifdef MSDOS
+
#  define USE_WATT32
+
#endif
+

#define ALLOW_BLANK TRUE
#define DENY_BLANK FALSE

@@ -300,7 +304,6 @@ static const struct LongShort aliases[]= {
  {"ssl-no-revoke",              ARG_BOOL, ' ', C_SSL_NO_REVOKE},
  {"ssl-reqd",                   ARG_BOOL, ' ', C_SSL_REQD},
  {"ssl-revoke-best-effort",     ARG_BOOL, ' ', C_SSL_REVOKE_BEST_EFFORT},
-
  {"ssl-sessions",               ARG_FILE, ' ', C_SSL_SESSIONS},
  {"sslv2",                      ARG_NONE, '2', C_SSLV2},
  {"sslv3",                      ARG_NONE, '3', C_SSLV3},
  {"stderr",                     ARG_FILE, ' ', C_STDERR},
@@ -601,7 +604,7 @@ static ParameterError data_urlencode(struct GlobalConfig *global,
    /* a '@' letter, it means that a filename or - (stdin) follows */
    if(!strcmp("-", p)) {
      file = stdin;
-
      CURL_SET_BINMODE(stdin);
+
      set_binmode(stdin);
    }
    else {
      file = fopen(p, "rb");
@@ -867,7 +870,7 @@ static ParameterError set_data(cmdline_t cmd,
    if(!strcmp("-", nextarg)) {
      file = stdin;
      if(cmd == C_DATA_BINARY) /* forced data-binary */
-
        CURL_SET_BINMODE(stdin);
+
        set_binmode(stdin);
    }
    else {
      file = fopen(nextarg, "rb");
@@ -1016,8 +1019,7 @@ const struct LongShort *findlongopt(const char *opt)
                 sizeof(aliases[0]), findarg);
}

-
static ParameterError parse_url(struct GlobalConfig *global,
-
                                struct OperationConfig *config,
+
static ParameterError parse_url(struct OperationConfig *config,
                                const char *nextarg)
{
  ParameterError err = PARAM_OK;
@@ -1048,11 +1050,6 @@ static ParameterError parse_url(struct GlobalConfig *global,
    /* fill in the URL */
    err = getstr(&url->url, nextarg, DENY_BLANK);
    url->flags |= GETOUT_URL;
-
    if(!err && (++config->num_urls > 1) && (config->etag_save_file ||
-
                                            config->etag_compare_file)) {
-
      errorf(global, "The etag options only work on a single URL");
-
      return PARAM_BAD_USE;
-
    }
  }
  return err;
}
@@ -1144,7 +1141,7 @@ static ParameterError parse_ech(struct GlobalConfig *global,
      char *tmpcfg = NULL;
      FILE *file;

-
      nextarg += 5;        /* skip over 'ecl:@' */
+
      nextarg++;        /* skip over '@' */
      if(!strcmp("-", nextarg)) {
        file = stdin;
      }
@@ -1164,9 +1161,9 @@ static ParameterError parse_ech(struct GlobalConfig *global,
      if(err)
        return err;
      config->ech_config = aprintf("ecl:%s",tmpcfg);
-
      free(tmpcfg);
      if(!config->ech_config)
        return PARAM_NO_MEM;
+
      free(tmpcfg);
    } /* file done */
  }
  else {
@@ -1914,7 +1911,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
      config->xattr = toggle;
      break;
    case C_URL: /* --url */
-
      err = parse_url(global, config, nextarg);
+
      err = parse_url(config, nextarg);
      break;
    case C_FTP_SSL: /* --ftp-ssl */
    case C_SSL: /* --ssl */
@@ -2406,10 +2403,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
      }
      break;
    case C_HOSTPUBSHA256: /* --hostpubsha256 */
-
      if(!feature_libssh2)
-
        err = PARAM_LIBCURL_DOESNT_SUPPORT;
-
      else
-
        err = getstr(&config->hostpubsha256, nextarg, DENY_BLANK);
+
      err = getstr(&config->hostpubsha256, nextarg, DENY_BLANK);
      break;
    case C_CRLFILE: /* --crlfile */
      err = getstr(&config->crlfile, nextarg, DENY_BLANK);
@@ -2472,12 +2466,6 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
      if(feature_ssl)
        config->ssl_revoke_best_effort = TRUE;
      break;
-
    case C_SSL_SESSIONS: /* --ssl-sessions */
-
      if(feature_ssls_export)
-
        err = getstr(&global->ssl_sessions, nextarg, DENY_BLANK);
-
      else
-
        err = PARAM_LIBCURL_DOESNT_SUPPORT;
-
      break;
    case C_TCP_FASTOPEN: /* --tcp-fastopen */
      config->tcp_fastopen = TRUE;
      break;
@@ -2561,20 +2549,10 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
        config->socks5_auth &= ~CURLAUTH_GSSAPI;
      break;
    case C_ETAG_SAVE: /* --etag-save */
-
      if(config->num_urls > 1) {
-
        errorf(global, "The etag options only work on a single URL");
-
        err = PARAM_BAD_USE;
-
      }
-
      else
-
        err = getstr(&config->etag_save_file, nextarg, DENY_BLANK);
+
      err = getstr(&config->etag_save_file, nextarg, DENY_BLANK);
      break;
    case C_ETAG_COMPARE: /* --etag-compare */
-
      if(config->num_urls > 1) {
-
        errorf(global, "The etag options only work on a single URL");
-
        err = PARAM_BAD_USE;
-
      }
-
      else
-
        err = getstr(&config->etag_compare_file, nextarg, DENY_BLANK);
+
      err = getstr(&config->etag_compare_file, nextarg, DENY_BLANK);
      break;
    case C_CURVES: /* --curves */
      err = getstr(&config->ssl_ec_curves, nextarg, DENY_BLANK);
modified external/curl/src/tool_getparam.h
@@ -259,7 +259,6 @@ typedef enum {
  C_SSL_NO_REVOKE,
  C_SSL_REQD,
  C_SSL_REVOKE_BEST_EFFORT,
-
  C_SSL_SESSIONS,
  C_SSLV2,
  C_SSLV3,
  C_STDERR,
@@ -349,7 +348,6 @@ typedef enum {
  PARAM_READ_ERROR,
  PARAM_EXPAND_ERROR, /* --expand problem */
  PARAM_BLANK_STRING,
-
  PARAM_VAR_SYNTAX, /* --variable syntax error */
  PARAM_LAST
} ParameterError;

modified external/curl/src/tool_help.c
@@ -36,6 +36,10 @@

#include "memdebug.h" /* keep this as LAST include */

+
#ifdef MSDOS
+
#  define USE_WATT32
+
#endif
+

#ifndef ARRAYSIZE
#define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0]))
#endif
@@ -284,13 +288,11 @@ void tool_help(char *category)
        msnprintf(cmdbuf, sizeof(cmdbuf), "\n    --no-%s", a->lname);
      else
        msnprintf(cmdbuf, sizeof(cmdbuf), "\n    %s", category);
-
#ifdef USE_MANUAL
      if(a->cmd == C_XATTR)
        /* this is the last option, which then ends when FILES starts */
        showhelp("\nALL OPTIONS\n", cmdbuf, "\nFILES");
      else
        showhelp("\nALL OPTIONS\n", cmdbuf, "\n    -");
-
#endif
    }
#else
    fprintf(tool_stderr, "Cannot comply. "
modified external/curl/src/tool_helpers.c
@@ -75,8 +75,6 @@ const char *param2text(ParameterError error)
    return "variable expansion failure";
  case PARAM_BLANK_STRING:
    return "blank argument where content is expected";
-
  case PARAM_VAR_SYNTAX:
-
    return "syntax error in --variable argument";
  default:
    return "unknown error";
  }
modified external/curl/src/tool_hugehelp.c
@@ -3,8 +3,8 @@
/*
 * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
 */
-
#include "tool_hugehelp.h"
#ifdef USE_MANUAL
+
#include "tool_hugehelp.h"
#include "tool_help.h"

static const char * const curlman[] = {
@@ -181,7 +181,7 @@ static const char * const curlman[] = {
  "    is your friend.  You can also  disable the  progress meter completely  with",
  "    the --silent option.",
  "\nVERSION",
-
  "\n    This man page describes  curl 8.12.0. If you  use a later version,  chances",
+
  "\n    This man page describes  curl 8.11.1. If you  use a later version,  chances",
  "    are this  man page  does  not fully  document  it. If  you use  an  earlier",
  "    version, this document  tries to  include version  information about  which",
  "    specific version that introduced changes.",
@@ -207,9 +207,6 @@ static const char * const curlman[] = {
  "\n    When --next is used, it resets the parser state and you start again  with a",
  "    clean option state, except for the options that are global.  Global options",
  "    retain their values and meaning even after --next.",
-
  "\n    The first argument  that is  exactly two  dashes (\"--\"), marks  the end  of",
-
  "    options; any argument  after the  end of  options is interpreted  as a  URL",
-
  "    argument even if it starts with a dash.",
  "\n    The   following    options    are    global:    --fail-early,    --libcurl,",
  "    --parallel-immediate, --parallel-max,  --parallel, --progress-bar,  --rate,",
  "    --show-error,  --stderr,  --styled-output,  --trace-ascii,  --trace-config,",
@@ -360,14 +357,13 @@ static const char * const curlman[] = {
  "\t    character \":\" as \"\\:\" so that it is not recognized as  the password",
  "\t    delimiter. Similarly, you  must escape the  double quote  character",
  "\t    as \\\" so that it is not recognized as an escape character.",
-
  "\n\t    If curl is built against OpenSSL library, and the engine  pkcs11 or",
-
  "\t    pkcs11 provider is available, then a PKCS#11 URI (RFC 7512)  can be",
-
  "\t    used to  specify  a certificate  located  in a  PKCS#11  device.  A",
-
  "\t    string beginning with  \"pkcs11:\" is interpreted  as a PKCS#11  URI.",
-
  "\t    If a PKCS#11 URI  is provided, then the  --engine option is set  as",
-
  "\t    \"pkcs11\" if none was provided and the --cert-type option is  set as",
-
  "\t    \"ENG\"  or  \"PROV\"  if  none  was  provided  (depending  on  OpenSSL",
-
  "\t    version).",
+
  "\n\t    If curl is built against OpenSSL library, and the engine  pkcs11 is",
+
  "\t    available, then a PKCS#11 URI (RFC  7512) can be used to specify  a",
+
  "\t    certificate located in  a PKCS#11 device.  A string beginning  with",
+
  "\t    \"pkcs11:\" is  interpreted as a  PKCS#11 URI.  If a  PKCS#11 URI  is",
+
  "\t    provided, then the --engine option  is set as \"pkcs11\" if none  was",
+
  "\t    provided and the  --cert-type option is  set as  \"ENG\" if none  was",
+
  "\t    provided.",
  "\n\t    If curl is built against GnuTLS library, a PKCS#11 URI can  be used",
  "\t    to specify  a certificate  located in  a PKCS#11  device. A  string",
  "\t    beginning with \"pkcs11:\" is interpreted as a PKCS#11 URI.",
@@ -406,13 +402,12 @@ static const char * const curlman[] = {
  "\t     curl --cert-status https://example.com",
  "\n\t    See also --pinnedpubkey.",
  "\n    --cert-type <type>",
-
  "\t    (TLS) Set type of the  provided client certificate. PEM, DER,  ENG,",
-
  "\t    PROV and P12 are recognized types.",
+
  "\t    (TLS) Set type of  the provided client  certificate. PEM, DER,  ENG",
+
  "\t    and P12 are recognized types.",
  "\n\t    The default type  depends on the  TLS backend  and is usually  PEM,",
  "\t    however for Secure Transport and  Schannel it is P12. If --cert  is",
-
  "\t    a pkcs11: URI then  ENG or PROV is  the default type (depending  on",
-
  "\t    OpenSSL version).  If --cert-type  is provided  several times,  the",
-
  "\t    last set value is used.",
+
  "\t    a pkcs11:  URI then  ENG is  the default  type.  If --cert-type  is",
+
  "\t    provided several times, the last set value is used.",
  "\n\t    Example:",
  "\t     curl --cert-type PEM --cert file https://example.com",
  "\n\t    See also --cert, --key and --key-type.",
@@ -612,7 +607,7 @@ static const char * const curlman[] = {
  "\n\t    See also --cookie-jar and --junk-session-cookies.",
  "\n    -c, --cookie-jar <filename>",
  "\t    (HTTP) Specify to  which file you  want curl  to write all  cookies",
-
  "\t    after a  completed  operation. curl  writes  all cookies  from  its",
+
  "\t    after a  completed  operation. Curl  writes  all cookies  from  its",
  "\t    in-memory  cookie  storage  to  the  given  file  at  the   end  of",
  "\t    operations. Even  if no cookies  are known,  a file  is created  so",
  "\t    that it removes any  formerly existing cookies  from the file.  The",
@@ -822,7 +817,7 @@ static const char * const curlman[] = {
  "\n\t    See also --config.",
  "\n    --disable-eprt",
  "\t    (FTP) Disable  the use of  the EPRT  and LPRT  commands when  doing",
-
  "\t    active FTP  transfers. curl  normally first  attempts to  use  EPRT",
+
  "\t    active FTP  transfers. Curl  normally first  attempts to  use  EPRT",
  "\t    before using PORT, but with  this option, it uses PORT right  away.",
  "\t    EPRT is an  extension to the  original FTP  protocol, and does  not",
  "\t    work on all  servers, but  enables more functionality  in a  better",
@@ -840,7 +835,7 @@ static const char * const curlman[] = {
  "\n\t    See also --disable-epsv and --ftp-port.",
  "\n    --disable-epsv",
  "\t    (FTP) Disable the use  of the EPSV  command when doing passive  FTP",
-
  "\t    transfers. curl normally  first attempts to  use EPSV before  PASV,",
+
  "\t    transfers. Curl normally  first attempts to  use EPSV before  PASV,",
  "\t    but with this option, it does not try EPSV.",
  "\n\t    --epsv can be used  to explicitly enable  EPSV again and  --no-epsv",
  "\t    is an alias for --disable-epsv.",
@@ -1028,25 +1023,20 @@ static const char * const curlman[] = {
  "\t    from the given file by sending a custom If-None-Match header  using",
  "\t    the stored ETag.",
  "\n\t    For correct results,  make sure  that the  specified file  contains",
-
  "\t    only a single line with  the desired ETag. A non-existing or  empty",
-
  "\t    file is treated as an empty ETag.",
+
  "\t    only a single line with the  desired ETag. An empty file is  parsed",
+
  "\t    as an empty ETag.",
  "\n\t    Use the option --etag-save to first save the ETag from  a response,",
  "\t    and then use  this option to  compare against the  saved ETag in  a",
-
  "\t    subsequent request.",
-
  "\n\t    Use this  option  with a  single  URL only.  If  --etag-compare  is",
-
  "\t    provided several times, the last set value is used.",
+
  "\t    subsequent request. If  --etag-compare is  provided several  times,",
+
  "\t    the last set value is used.",
  "\n\t    Example:",
  "\t     curl --etag-compare etag.txt https://example.com",
  "\n\t    Added in 7.68.0. See also --etag-save and --time-cond.",
  "\n    --etag-save <file>",
  "\t    (HTTP) Save  an HTTP  ETag  to the  specified file.  An ETag  is  a",
-
  "\t    caching related header,  usually returned in  a response. Use  this",
-
  "\t    option with a single URL only.",
-
  "\n\t    If no ETag is sent by the server, an empty file is created.",
-
  "\n\t    Starting in curl  8.12.0, using the  --create-dirs option can  also",
-
  "\t    create missing  directory  components  for  the  path  provided  in",
-
  "\t    --etag-save. If  --etag-save is  provided several  times, the  last",
-
  "\t    set value is used.",
+
  "\t    caching related header, usually returned in a response.",
+
  "\n\t    If no ETag  is sent  by the server,  an empty file  is created.  If",
+
  "\t    --etag-save is provided several times, the last set value is used.",
  "\n\t    Example:",
  "\t     curl --etag-save storetag.txt https://example.com",
  "\n\t    Added in 7.68.0. See also --etag-compare.",
@@ -1561,7 +1551,7 @@ static const char * const curlman[] = {
  "\n\t    See also --hostpubsha256.",
  "\n    --hostpubsha256 <sha256>",
  "\t    (SFTP SCP) Pass  a string containing  a Base64-encoded SHA256  hash",
-
  "\t    of the remote host's public  key. curl refuses the connection  with",
+
  "\t    of the remote host's public  key. Curl refuses the connection  with",
  "\t    the host unless the hashes match.",
  "\n\t    This feature requires  libcurl to  be built with  libssh2 and  does",
  "\t    not work with  other SSH backends.  If --hostpubsha256 is  provided",
@@ -1687,13 +1677,14 @@ static const char * const curlman[] = {
  "\t    --http2, --http2-prior-knowledge and --http3. Added in 7.88.0.  See",
  "\t    also --http1.1, --http2 and --http3.",
  "\n    --ignore-content-length",
-
  "\t    (FTP HTTP)  For HTTP,  ignore the  Content-Length header.  This  is",
+
  "\t    (FTP HTTP)  For HTTP,  Ignore the  Content-Length header.  This  is",
  "\t    particularly useful for servers  running Apache 1.x, which  reports",
  "\t    incorrect Content-Length for files larger than 2 gigabytes.",
  "\n\t    For FTP, this makes  curl skip the SIZE  command to figure out  the",
-
  "\t    size before downloading  a file. Providing  --ignore-content-length",
-
  "\t    multiple  times  has  no  extra  effect.  Disable  it  again   with",
-
  "\t    --no-ignore-content-length.",
+
  "\t    size before downloading a file.",
+
  "\n\t    This option does  not work  for HTTP  if libcurl was  built to  use",
+
  "\t    hyper. Providing  --ignore-content-length  multiple  times  has  no",
+
  "\t    extra effect. Disable it again with --no-ignore-content-length.",
  "\n\t    Example:",
  "\t     curl --ignore-content-length https://example.com",
  "\n\t    See also --ftp-skip-pasv-ip.",
@@ -1879,14 +1870,13 @@ static const char * const curlman[] = {
  "\t    key in this separate  file. For SSH,  if not specified, curl  tries",
  "\t    the    following    candidates    in    order:     \"~/.ssh/id_rsa\",",
  "\t    \"~/.ssh/id_dsa\", \"./id_rsa\", \"./id_dsa\".",
-
  "\n\t    If curl is built against OpenSSL library, and the engine  pkcs11 or",
-
  "\t    pkcs11 provider is available, then a PKCS#11 URI (RFC 7512)  can be",
-
  "\t    used to  specify  a private  key located  in  a PKCS#11  device.  A",
-
  "\t    string beginning with  \"pkcs11:\" is interpreted  as a PKCS#11  URI.",
-
  "\t    If a PKCS#11 URI  is provided, then the  --engine option is set  as",
-
  "\t    \"pkcs11\" if none was provided  and the --key-type option is set  as",
-
  "\t    \"ENG\"  or  \"PROV\"  if  none  was  provided  (depending  on  OpenSSL",
-
  "\t    version).",
+
  "\n\t    If curl is built against OpenSSL library, and the engine  pkcs11 is",
+
  "\t    available, then a PKCS#11 URI (RFC  7512) can be used to specify  a",
+
  "\t    private key located in  a PKCS#11 device.  A string beginning  with",
+
  "\t    \"pkcs11:\" is  interpreted as a  PKCS#11 URI.  If a  PKCS#11 URI  is",
+
  "\t    provided, then the --engine option  is set as \"pkcs11\" if none  was",
+
  "\t    provided and  the --key-type option  is set  as \"ENG\"  if none  was",
+
  "\t    provided.",
  "\n\t    If curl is  built against  Secure Transport or  Schannel then  this",
  "\t    option is ignored  for TLS protocols  (HTTPS, etc). Those  backends",
  "\t    expect the private  key to be  already present  in the keychain  or",
@@ -1984,14 +1974,13 @@ static const char * const curlman[] = {
  "\n    -L, --location",
  "\t    (HTTP) If the server reports  that the requested page has moved  to",
  "\t    a different location (indicated with  a Location: header and a  3XX",
-
  "\t    response code), this option makes curl redo the request to  the new",
+
  "\t    response code), this option makes curl redo the request on  the new",
  "\t    place. If  used together  with  --show-headers or  --head,  headers",
  "\t    from all requested pages are shown.",
-
  "\n\t    When authentication  is used,  or when  sending a  cookie with  \"-H",
-
  "\t    Cookie:\", curl only sends its  credentials to the initial host.  If",
-
  "\t    a redirect takes  curl to  a different  host, it does  not get  the",
-
  "\t    credentials passed  on. See  --location-trusted  on how  to  change",
-
  "\t    this.",
+
  "\n\t    When authentication  is used,  or send  cookie with  \"-H  Cookie:\",",
+
  "\t    curl only sends its credentials to the initial host. If  a redirect",
+
  "\t    takes curl to  a different host,  it does  not get the  credentials",
+
  "\t    pass on. See --location-trusted on how to change this.",
  "\n\t    Limit the amount of redirects  to follow by using the  --max-redirs",
  "\t    option.",
  "\n\t    When curl  follows a  redirect and  if the  request is  a POST,  it",
@@ -2179,7 +2168,7 @@ static const char * const curlman[] = {
  "\t    Make curl scan  the .netrc file  in the  user's home directory  for",
  "\t    login name and password.  This is typically  used for FTP on  Unix.",
  "\t    If used with HTTP, curl  enables user authentication. See  netrc(5)",
-
  "\t    and ftp(1) for details on  the file format. curl does not  complain",
+
  "\t    and ftp(1) for details on  the file format. Curl does not  complain",
  "\t    if that  file does not  have the  right permissions  (it should  be",
  "\t    neither  world-  nor  group-readable).  The  environment   variable",
  "\t    \"HOME\" is used to find the home directory.",
@@ -2744,11 +2733,10 @@ static const char * const curlman[] = {
  "\n\t    See also --proxy, --proxy-key and --proxy-cert-type.",
  "\n    --proxy-cert-type <type>",
  "\t    Set type  of  the  provided client  certificate  when  using  HTTPS",
-
  "\t    proxy. PEM, DER, ENG, PROV and P12 are recognized types.",
+
  "\t    proxy. PEM, DER, ENG and P12 are recognized types.",
  "\n\t    The default type  depends on the  TLS backend  and is usually  PEM,",
  "\t    however  for  Secure   Transport  and  Schannel   it  is  P12.   If",
-
  "\t    --proxy-cert is a pkcs11: URI then ENG or PROV is the  default type",
-
  "\t    (depending on OpenSSL version).",
+
  "\t    --proxy-cert is a pkcs11: URI then ENG is the default type.",
  "\n\t    Equivalent to  --cert-type  but used  in  HTTPS proxy  context.  If",
  "\t    --proxy-cert-type is provided several times, the last set value  is",
  "\t    used.",
@@ -3515,7 +3503,7 @@ static const char * const curlman[] = {
  "\n\t    See also --verbose and --dump-header.",
  "\n    -s, --silent",
  "\t    Silent  or  quiet  mode.  Do  not  show  progress  meter  or  error",
-
  "\t    messages. Makes curl mute. It  still outputs the data you ask  for,",
+
  "\t    messages. Makes Curl mute. It  still outputs the data you ask  for,",
  "\t    potentially even to the terminal/stdout unless you redirect it.",
  "\n\t    Use --show-error in  addition to  this option  to disable  progress",
  "\t    meter but still  show error messages.  Providing --silent  multiple",
@@ -3746,29 +3734,6 @@ static const char * const curlman[] = {
  "\n\t    Example:",
  "\t     curl --ssl-revoke-best-effort https://example.com",
  "\n\t    Added in 7.70.0. See also --crlfile and --insecure.",
-
  "\n    --ssl-sessions <filename>",
-
  "\t    (TLS) Use the given  file to load  SSL session tickets into  curl's",
-
  "\t    cache before starting  any transfers.  At the end  of a  successful",
-
  "\t    curl run, the  cached SSL sessions  tickets are  save to the  file,",
-
  "\t    replacing any previous content.",
-
  "\n\t    The file does not  have to exist, but curl  reports an error if  it",
-
  "\t    is unable  to create  it. Unused  loaded tickets  are saved  again,",
-
  "\t    unless they  get  replaced  or  purged from  the  cache  for  space",
-
  "\t    reasons.",
-
  "\n\t    Using a session  file allows  \"--tls-earlydata\" to  send the  first",
-
  "\t    request in \"0-RTT\" mode, should an SSL session with the  feature be",
-
  "\t    found. Note that  a server may  not support  early data. Also  note",
-
  "\t    that early data does  not provide forward  secrecy, e.g. is not  as",
-
  "\t    secure.",
-
  "\n\t    The SSL session  tickets are  stored as base64  encoded text,  each",
-
  "\t    ticket on its own line. The hostnames are cryptographically  salted",
-
  "\t    and hashed. While  this prevents  someone to easily  see the  hosts",
-
  "\t    you contacted,  they  could  still check  if  a  specific  hostname",
-
  "\t    matches one of  the values. If  --ssl-sessions is provided  several",
-
  "\t    times, the last set value is used.",
-
  "\n\t    Example:",
-
  "\t     curl --ssl-sessions sessions.txt https://example.com",
-
  "\n\t    Added in 8.12.0. See also --tls-earlydata.",
  "\n    -2, --sslv2",
  "\t    (SSL) This option previously  asked curl to  use SSLv2, but is  now",
  "\t    ignored (added  in 7.77.0).  SSLv2  is widely  considered  insecure",
@@ -3914,7 +3879,7 @@ static const char * const curlman[] = {
  "\t    effect. Disable it again with --no-tls-earlydata.",
  "\n\t    Example:",
  "\t     curl --tls-earlydata https://example.com",
-
  "\n\t    Added in 8.11.0. See also --tlsv1.3, --tls-max and --ssl-sessions.",
+
  "\n\t    Added in 8.11.0. See also --tlsv1.3 and --tls-max.",
  "\n    --tls-max <VERSION>",
  "\t    (TLS) VERSION defines  maximum supported TLS  version. The  minimum",
  "\t    acceptable version is set by tlsv1.0, tlsv1.1, tlsv1.2 or tlsv1.3.",
@@ -4230,7 +4195,7 @@ static const char * const curlman[] = {
  "\t    header completely from the request.  If you prefer a blank  header,",
  "\t    you can set it to a single space (\" \").",
  "\n\t    By  default,   curl   uses  curl/VERSION,   such   as   User-Agent:",
-
  "\t    curl/8.12.0. If --user-agent  is provided several  times, the  last",
+
  "\t    curl/8.11.1. If --user-agent  is provided several  times, the  last",
  "\t    set value is used.",
  "\n\t    Example:",
  "\t     curl -A \"Agent 007\" https://example.com",
@@ -4256,24 +4221,6 @@ static const char * const curlman[] = {
  "\t    use --variable  %name=content  or  --variable  %name@content.  Note",
  "\t    that on  some systems -  but not  all -  environment variables  are",
  "\t    case insensitive.",
-
  "\n\t    Added in curl 8.12.0: you can  get a byte range from the source  by",
-
  "\t    appending \"[start-end]\" to the variable  name, where start and  end",
-
  "\t    are byte offsets to include from the contents. For example,  asking",
-
  "\t    for offset  \"2-10\"  means  offset two  to  offset  ten,  inclusive,",
-
  "\t    resulting in 9 bytes in total. \"2-2\" means a single byte  at offset",
-
  "\t    2. Not providing a  second number implies to  the end of data.  The",
-
  "\t    start offset cannot  be larger than  the end  offset. Asking for  a",
-
  "\t    range that is outside of the file size makes the  variable contents",
-
  "\t    empty. For  example, getting  the first  one hundred  bytes from  a",
-
  "\t    given file:",
-
  "\n\t\tcurl --variable \"fraction[0-99]@filename\"",
-
  "\n\t    Given a byte  range that has  no data results  in an empty  string.",
-
  "\t    Asking for a range that is  larger than the content makes curl  use",
-
  "\t    the piece of the data that exists.",
-
  "\n\t    To assign  a variable  using contents  from another  variable,  use",
-
  "\t    --expand-variable. Like for example assigning a new variable  using",
-
  "\t    contents from two other:",
-
  "\n\t\tcurl --expand-variable \"user={{firstname}} {{lastname}}\"",
  "\n\t    When expanding variables,  curl supports  a set  of functions  that",
  "\t    can make the variable contents more convenient to use. You  apply a",
  "\t    function to a variable  expansion by adding  a colon and then  list",
@@ -4283,20 +4230,12 @@ static const char * const curlman[] = {
  "\n\t    Available functions:",
  "\n\t    trim",
  "\n\t\tremoves all leading and trailing white space.",
-
  "\n\t\tExample:",
-
  "\n\t\t    curl --expand-url https.//example.com/{{url:trim}}",
  "\n\t    json",
  "\n\t\toutputs the content using JSON string quoting rules.",
-
  "\n\t\tExample:",
-
  "\n\t\t    curl --expand-data {{data:json}} https://example.com",
  "\n\t    url",
  "\n\t\tshows the content URL (percent) encoded.",
-
  "\n\t\tExample:",
-
  "\n\t\t    curl --expand-url https://example.com/{{path:url}}",
  "\n\t    b64",
  "\n\t\texpands the variable base64 encoded",
-
  "\n\t\tExample:",
-
  "\n\t\t    curl --expand-url https://example.com/{{var:b64}}",
  "\n\t    --variable can be used several times in a command line",
  "\n\t    Example:",
  "\t     curl --variable name=smith --expand-url \"https:\\",
@@ -4344,16 +4283,6 @@ static const char * const curlman[] = {
  "\t    Displays information about curl and the libcurl version it uses.",
  "\n\t    The first  line includes  the  full version  of curl,  libcurl  and",
  "\t    other 3rd party libraries linked with the executable.",
-
  "\n\t    This line may contain one or more TLS libraries. curl can  be built",
-
  "\t    to support more  than one TLS  library which then  makes curl -  at",
-
  "\t    start-up  -  select  which  particular  backend  to  use  for  this",
-
  "\t    invocation.",
-
  "\n\t    If curl  supports more than  one TLS  library like  this, the  ones",
-
  "\t    that are not  selected by  default are  listed within  parentheses.",
-
  "\t    Thus, if  you  do  not  specify  which backend  to  use  (with  the",
-
  "\t    \"CURL_SSL_BACKEND\" environment  variable)  the one  listed  without",
-
  "\t    parentheses is  used. Such  builds  also has  \"MultiSSL\" set  as  a",
-
  "\t    feature.",
  "\n\t    The second  line (starts  with \"Release-Date:\")  shows the  release",
  "\t    date.",
  "\n\t    The third line (starts with \"Protocols:\") shows all protocols  that",
@@ -4417,9 +4346,6 @@ static const char * const curlman[] = {
  "\n\t    SSL",
  "\n\t\tSSL versions  of  various  protocols  are  supported,  such  as",
  "\t\tHTTPS, FTPS, POP3S and so on.",
-
  "\n\t    SSLS-EXPORT",
-
  "\n\t\tThis build supports  TLS session export/import,  like with  the",
-
  "\t\t--ssl-sessions.",
  "\n\t    SSPI",
  "\n\t\tSSPI is supported.",
  "\n\t    TLS-SRP",
@@ -4619,12 +4545,6 @@ static const char * const curlman[] = {
  "\t\ttransfer  was   just  about   to  begin.   This  includes   all",
  "\t\tpre-transfer commands  and negotiations  that are  specific  to",
  "\t\tthe particular protocol(s) involved.",
-
  "\n\t    time_queue",
-
  "\n\t\tThe time, in seconds, the  transfer was queued during its  run.",
-
  "\t\tThis adds the queue time  for each redirect step that may  have",
-
  "\t\thappened. Transfers may  be queued for  significant amounts  of",
-
  "\t\ttime when connection  or parallel limits  are in place.  (Added",
-
  "\t\tin 8.12.0)",
  "\n\t    time_redirect",
  "\n\t\tThe time,  in  seconds,  it  took  for  all  redirection  steps",
  "\t\tincluding  name  lookup,  connect,  pretransfer  and   transfer",
@@ -4762,7 +4682,7 @@ static const char * const curlman[] = {
  "\t\"192.168.0.0/16\" would match all addresses starting with \"192.168\".",
  "\n    APPDATA <dir>",
  "\n\tOn Windows,  this  variable  is  used  when trying  to  find  the  home",
-
  "\tdirectory. If the primary home variables are all unset.",
+
  "\tdirectory. If the primary home variable are all unset.",
  "\n    COLUMNS <terminal width>",
  "\n\tIf set,  the specified number  of characters  is used  as the  terminal",
  "\twidth when  the alternative  progress-bar is  shown. If  not set,  curl",
@@ -4866,16 +4786,16 @@ static const char * const curlman[] = {
  "\tan active FTP session is used, an error code was sent over  the control",
  "\tconnection or similar.",
  "\n    11",
-
  "\n\tFTP weird PASS reply. curl could  not parse the reply sent to the  PASS",
+
  "\n\tFTP weird PASS reply. Curl could  not parse the reply sent to the  PASS",
  "\trequest.",
  "\n    12",
  "\n\tDuring an active FTP  session while waiting  for the server to  connect",
  "\tback to curl, the timeout expired.",
  "\n    13",
-
  "\n\tFTP weird PASV reply, curl could  not parse the reply sent to the  PASV",
+
  "\n\tFTP weird PASV reply, Curl could  not parse the reply sent to the  PASV",
  "\trequest.",
  "\n    14",
-
  "\n\tFTP weird  227 format. curl  could not  parse the  227-line the  server",
+
  "\n\tFTP weird  227 format. Curl  could not  parse the  227-line the  server",
  "\tsent.",
  "\n    15",
  "\n\tFTP cannot  use host.  Could not  resolve the  host IP  we  got in  the",
@@ -4898,7 +4818,7 @@ static const char * const curlman[] = {
  "\tanother error with the HTTP error code being 400 or above.  This return",
  "\tcode only appears if --fail is used.",
  "\n    23",
-
  "\n\tWrite error.  curl  could  not write  data  to a  local  filesystem  or",
+
  "\n\tWrite error.  Curl  could  not write  data  to a  local  filesystem  or",
  "\tsimilar.",
  "\n    25",
  "\n\tFailed starting the upload.  For FTP, the  server typically denied  the",
@@ -5080,6394 +5000,6275 @@ void showhelp(const char *trigger, const char *arg, const char *endarg)
/*
 * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
 */
-
#include "tool_hugehelp.h"
#ifdef USE_MANUAL
+
#include "tool_hugehelp.h"
#include "tool_help.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 263546
-
     to 76522 bytes. You can disable the use of compressed help
+
     Thanks to this operation, the size of this data shrank from 259053
+
     to 75084 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, 0xec, 0xfd,
  0x7b, 0x7b, 0x1b, 0xd7, 0xb1, 0x2f, 0x08, 0xff, 0x2d, 0x7f, 0x8a, 0x1e,
-
  0x64, 0xf6, 0x21, 0xb9, 0x03, 0x80, 0x37, 0x49, 0x96, 0x69, 0xd9, 0x63,
-
  0x5a, 0xa2, 0x2c, 0xee, 0x48, 0x22, 0x23, 0x52, 0x76, 0xb2, 0x63, 0x3f,
-
  0x7e, 0x1a, 0x40, 0x83, 0x6c, 0x0b, 0x40, 0x23, 0xdd, 0x0d, 0x52, 0x4c,
-
  0x4e, 0xde, 0xcf, 0xfe, 0xd6, 0x7d, 0xd5, 0x6a, 0x34, 0x48, 0x48, 0xa6,
-
  0x72, 0x66, 0xce, 0x4c, 0x2e, 0x14, 0x09, 0x74, 0xaf, 0x6b, 0xad, 0x5a,
-
  0x75, 0xfd, 0x55, 0x92, 0xe8, 0x7f, 0x7e, 0xa5, 0xff, 0xff, 0x0a, 0xff,
-
  0x81, 0x7f, 0xbf, 0x90, 0xcf, 0x7e, 0xfd, 0xf5, 0x7f, 0x26, 0xfc, 0x5f,
-
  0xf8, 0xee, 0x67, 0xf8, 0x97, 0xbf, 0xd8, 0x4e, 0xc2, 0x17, 0xff, 0xf3,
-
  0xd7, 0xad, 0x44, 0xbf, 0xf8, 0x9f, 0xc9, 0x26, 0x7d, 0xf1, 0xab, 0xbc,
-
  0xf1, 0x14, 0x7f, 0xff, 0x55, 0x5a, 0xfb, 0x19, 0x5b, 0xc3, 0x1f, 0xdb,
-
  0xf8, 0xfd, 0xcf, 0xbf, 0xe2, 0xaf, 0xf0, 0xc9, 0x17, 0x6f, 0x0e, 0x5f,
-
  0x1f, 0x7d, 0x41, 0x8f, 0x0c, 0x17, 0xe5, 0x24, 0xe9, 0x25, 0x75, 0x99,
-
  0xce, 0xaa, 0x71, 0x56, 0x26, 0x69, 0xf2, 0xee, 0xed, 0xab, 0x2f, 0xbe,
-
  0x38, 0xfb, 0xeb, 0x9b, 0x93, 0xd3, 0xb3, 0xe3, 0x33, 0xf7, 0xd0, 0xdf,
-
  0x8a, 0x79, 0x9d, 0x17, 0xb3, 0x0a, 0x46, 0x02, 0x8f, 0x54, 0xbf, 0x7c,
-
  0xf1, 0xc5, 0xf3, 0xa3, 0xb3, 0x67, 0x6f, 0x8f, 0x4f, 0xcf, 0x8f, 0x4f,
-
  0xde, 0xb8, 0xe7, 0xf2, 0x0a, 0x1a, 0xa9, 0x8b, 0x62, 0x92, 0x24, 0xe3,
-
  0xa2, 0xb4, 0x96, 0xcb, 0x7c, 0x76, 0x91, 0x8c, 0xd2, 0x3a, 0x85, 0x8f,
-
  0xcb, 0x62, 0x9a, 0xe0, 0x57, 0x05, 0x3c, 0x99, 0x54, 0x59, 0x79, 0x05,
-
  0x1d, 0x2f, 0x2a, 0x7c, 0x00, 0x5b, 0xee, 0x27, 0xc9, 0x71, 0x4d, 0xed,
-
  0x55, 0x8b, 0xf9, 0xbc, 0x28, 0xeb, 0x2a, 0xa9, 0x2f, 0xb3, 0x2a, 0x4b,
-
  0xe6, 0x65, 0x51, 0x17, 0xc3, 0x62, 0x52, 0x1d, 0x24, 0xc9, 0xf3, 0xe3,
-
  0x67, 0xe7, 0xdd, 0xe4, 0xc5, 0xf1, 0xab, 0xa3, 0x6e, 0x92, 0xbc, 0x38,
-
  0x3f, 0xed, 0xe2, 0x8f, 0x33, 0xf8, 0xfd, 0x87, 0x93, 0xd3, 0x97, 0x47,
-
  0x6f, 0xbb, 0xf2, 0x2f, 0x7e, 0xf2, 0xf2, 0x1c, 0xbe, 0xa6, 0xf6, 0xf0,
-
  0x37, 0xf8, 0xe4, 0xf8, 0xf5, 0x21, 0x3c, 0x4f, 0xff, 0xc0, 0x5f, 0xaf,
-
  0x9e, 0xd3, 0x5f, 0xf8, 0x0f, 0xfc, 0xf5, 0xfa, 0xcf, 0xe7, 0xd0, 0x6e,
-
  0x72, 0x7a, 0x72, 0xba, 0xdf, 0xa5, 0x9f, 0xd8, 0xc2, 0xdb, 0xf3, 0xd7,
-
  0xf0, 0x08, 0xfe, 0xe4, 0xbf, 0xce, 0xa4, 0xbd, 0xb3, 0x67, 0xf0, 0xf1,
-
  0x19, 0xf5, 0x7e, 0xf6, 0xfa, 0x7b, 0xfa, 0x71, 0x86, 0x3f, 0xf9, 0x03,
-
  0xea, 0xeb, 0xfc, 0xe8, 0xd5, 0x9b, 0x23, 0x68, 0xf1, 0x9c, 0x9e, 0xfa,
-
  0xe9, 0x2c, 0x49, 0x67, 0x23, 0xf8, 0xe7, 0xac, 0xef, 0x56, 0x0c, 0x97,
-
  0x2c, 0x99, 0x17, 0xd7, 0x59, 0x99, 0x8d, 0x92, 0x64, 0x70, 0x93, 0x24,
-
  0x93, 0x7c, 0xc0, 0xdf, 0xe0, 0x0a, 0x26, 0xe9, 0x04, 0x7e, 0xd3, 0x75,
-
  0xec, 0x95, 0xd9, 0x24, 0xad, 0xf1, 0xc1, 0x71, 0x96, 0xd6, 0x8b, 0x32,
-
  0xc3, 0xf5, 0x4a, 0xce, 0xb2, 0x8c, 0xda, 0x93, 0x17, 0x37, 0xf7, 0xb7,
-
  0xe8, 0xd5, 0x51, 0x56, 0xa7, 0xf9, 0xa4, 0x82, 0xce, 0x68, 0x57, 0xf1,
-
  0x89, 0xf3, 0xcb, 0x0c, 0x57, 0x39, 0xa9, 0x6e, 0x66, 0x75, 0xfa, 0x81,
-
  0xbb, 0x96, 0x75, 0xed, 0x8d, 0xb2, 0x79, 0x36, 0x1b, 0x65, 0xb3, 0xba,
-
  0x9f, 0xfc, 0xb5, 0x58, 0x24, 0xe3, 0x1c, 0xc6, 0x0a, 0x5b, 0xc4, 0xad,
-
  0x40, 0x97, 0xa3, 0xac, 0x1a, 0x96, 0x39, 0x91, 0x01, 0x0c, 0x7a, 0x46,
-
  0xed, 0xbd, 0x7d, 0xf1, 0x2c, 0xd9, 0xff, 0xea, 0xc9, 0x63, 0x99, 0xd0,
-
  0xf1, 0x38, 0xb9, 0x81, 0x57, 0xa1, 0xc9, 0xab, 0x7c, 0x94, 0x25, 0x4c,
-
  0x4f, 0xc9, 0x75, 0x5e, 0x5f, 0x16, 0x8b, 0x1a, 0xff, 0x9c, 0x64, 0xe9,
-
  0x08, 0x77, 0xda, 0x7a, 0x3d, 0xd8, 0xde, 0x4e, 0xaa, 0xe1, 0x65, 0x36,
-
  0xcd, 0xba, 0xb2, 0x1c, 0x17, 0x8b, 0xac, 0xaa, 0xb2, 0x8a, 0xda, 0xbb,
-
  0xbe, 0x4c, 0x6b, 0x7b, 0x94, 0x9a, 0xbe, 0x4e, 0x71, 0x7c, 0xc7, 0x35,
-
  0x12, 0x05, 0x0c, 0x63, 0x94, 0x8d, 0xd3, 0xc5, 0x04, 0x69, 0xa4, 0xa0,
-
  0xfd, 0x4d, 0x06, 0xd0, 0x4f, 0x5a, 0x55, 0x8b, 0x69, 0x56, 0x25, 0x05,
-
  0x3c, 0x53, 0xc2, 0x0c, 0x07, 0x69, 0x95, 0x8d, 0xa8, 0x3d, 0x18, 0x79,
-
  0x31, 0xae, 0xb3, 0x59, 0x6f, 0x01, 0x9f, 0x24, 0x97, 0x45, 0x55, 0xcf,
-
  0xd2, 0x29, 0x92, 0x56, 0x36, 0xce, 0x3f, 0xe0, 0x5a, 0xbe, 0xc0, 0x15,
-
  0xcf, 0x3e, 0xa4, 0xd3, 0xf9, 0x04, 0x06, 0x84, 0x8b, 0xa8, 0x0f, 0x55,
-
  0x49, 0x55, 0xa7, 0x65, 0x4d, 0x83, 0xc7, 0x09, 0x51, 0x7b, 0x9d, 0x71,
-
  0x3d, 0xef, 0x77, 0x78, 0xe0, 0xda, 0xab, 0x8e, 0x12, 0x49, 0x52, 0x96,
-
  0x05, 0x97, 0x73, 0x98, 0xce, 0x92, 0x6a, 0x9e, 0x0d, 0xf3, 0xf1, 0x0d,
-
  0x50, 0x01, 0xec, 0x72, 0x3a, 0x2d, 0x16, 0xf0, 0x54, 0x31, 0x26, 0xb2,
-
  0xc7, 0xa1, 0xc1, 0x70, 0x81, 0x26, 0x8a, 0xe9, 0x14, 0xa9, 0x64, 0x92,
-
  0xcf, 0xb2, 0x3e, 0xee, 0x17, 0x3c, 0x5e, 0x66, 0xb8, 0xdf, 0x35, 0x2c,
-
  0x13, 0x4f, 0x23, 0x9f, 0xc1, 0x52, 0x56, 0xd9, 0xdf, 0x17, 0xb0, 0x59,
-
  0x79, 0x3a, 0x49, 0xe0, 0x85, 0x19, 0x1c, 0x22, 0xfc, 0x1c, 0xdb, 0xe0,
-
  0x6e, 0x72, 0xa4, 0x92, 0xa2, 0x1c, 0xe1, 0xe9, 0x9a, 0x4d, 0x60, 0x4d,
-
  0x69, 0x64, 0x30, 0xf1, 0x24, 0xe9, 0xf5, 0xe6, 0x69, 0x09, 0x74, 0x95,
-
  0x4d, 0xfa, 0xad, 0xe3, 0x8b, 0x06, 0x91, 0xe8, 0xc9, 0xc7, 0x0f, 0x78,
-
  0xac, 0x53, 0x58, 0xac, 0x11, 0xff, 0x8d, 0x43, 0x81, 0xd9, 0x70, 0x3f,
-
  0x30, 0x09, 0x6a, 0x0f, 0x07, 0x11, 0xcd, 0xc3, 0x91, 0x7b, 0x5a, 0xd7,
-
  0xd9, 0x74, 0xce, 0x3b, 0x56, 0x66, 0x38, 0x9c, 0x61, 0x01, 0xa3, 0x1f,
-
  0x72, 0x1f, 0xb0, 0xe3, 0xb0, 0xad, 0xa3, 0x02, 0x97, 0x79, 0x0a, 0x1b,
-
  0x9b, 0xc3, 0x3e, 0x18, 0xf1, 0x57, 0xdd, 0xa4, 0x2a, 0xb0, 0xf5, 0x94,
-
  0x19, 0xc4, 0x45, 0x56, 0xd3, 0x7e, 0x4c, 0x71, 0x04, 0x63, 0xa0, 0xd1,
-
  0x8a, 0x99, 0x0b, 0x2f, 0x02, 0x6e, 0xac, 0x70, 0x97, 0x11, 0xbc, 0x35,
-
  0x2b, 0x6a, 0x9a, 0xbc, 0xb5, 0x2a, 0xdd, 0x42, 0x9f, 0x30, 0x4c, 0x66,
-
  0x38, 0x59, 0xbd, 0x98, 0x27, 0x97, 0xf0, 0x67, 0x75, 0x99, 0xbe, 0x47,
-
  0x72, 0x38, 0xbf, 0x84, 0x13, 0x92, 0x4f, 0x91, 0x9e, 0xa1, 0x71, 0x5c,
-
  0x9f, 0x6c, 0xd4, 0x4f, 0x9e, 0xd9, 0x80, 0x65, 0x06, 0xb4, 0x78, 0xc5,
-
  0x6c, 0x72, 0x93, 0x0c, 0xe0, 0x8f, 0x51, 0x31, 0xe3, 0xe3, 0x88, 0xe4,
-
  0x43, 0xeb, 0xe5, 0x76, 0x84, 0x8f, 0x74, 0x82, 0xec, 0x6e, 0xd2, 0xd8,
-
  0x6d, 0x5c, 0xcc, 0xab, 0x62, 0x98, 0xf2, 0x01, 0xc3, 0x4f, 0xa1, 0x59,
-
  0x1c, 0x36, 0xb4, 0x4a, 0xed, 0xcd, 0xb3, 0x12, 0x5e, 0x9f, 0x42, 0x2b,
-
  0x83, 0xac, 0xbe, 0xce, 0x60, 0xa1, 0xaa, 0x0c, 0x37, 0xb2, 0xce, 0x78,
-
  0x69, 0xcb, 0xc5, 0xac, 0x92, 0xa5, 0x3e, 0x95, 0x13, 0x08, 0xe3, 0x3a,
-
  0x3e, 0xbd, 0x7a, 0x9c, 0xfc, 0xa3, 0xa0, 0xf6, 0x47, 0x4a, 0x22, 0x7a,
-
  0x2c, 0xb1, 0x9f, 0x04, 0xce, 0x75, 0x3a, 0x87, 0x56, 0xa1, 0xfd, 0x21,
-
  0x50, 0x54, 0x7a, 0x01, 0x0b, 0x97, 0x5f, 0xcc, 0x80, 0xb3, 0xbc, 0xca,
-
  0xdf, 0x67, 0x42, 0x71, 0x5f, 0x7c, 0xf1, 0xa0, 0x73, 0x59, 0xd7, 0x73,
-
  0x38, 0xb0, 0x7f, 0x1b, 0x67, 0x4f, 0x76, 0x0e, 0x0e, 0xf6, 0xff, 0x63,
-
  0xef, 0x51, 0x56, 0x5f, 0xee, 0xfc, 0xb2, 0xdd, 0xe1, 0x4e, 0x8f, 0x60,
-
  0xad, 0x6f, 0xea, 0x4b, 0xdc, 0x12, 0xe1, 0x00, 0x23, 0x25, 0xeb, 0x78,
-
  0x9e, 0xb8, 0x83, 0xc8, 0x7b, 0x70, 0x72, 0x69, 0xe3, 0x3b, 0xa6, 0x36,
-
  0x3e, 0xad, 0x65, 0x92, 0xc3, 0xfe, 0xa4, 0xe5, 0x05, 0x1c, 0xac, 0x59,
-
  0xdd, 0x8d, 0xcf, 0x19, 0xdd, 0x34, 0x38, 0x0f, 0x7c, 0xb7, 0x2e, 0x81,
-
  0x1d, 0xc2, 0x67, 0x78, 0xf8, 0xe1, 0xe2, 0x18, 0x5e, 0xc2, 0x3a, 0xfc,
-
  0xf0, 0xea, 0xe4, 0xfb, 0xef, 0x8f, 0xdf, 0xfc, 0xd0, 0x7e, 0x06, 0x03,
-
  0x21, 0xf0, 0x16, 0x41, 0x67, 0xb0, 0x96, 0x48, 0x0e, 0x7a, 0x22, 0x91,
-
  0x15, 0x5f, 0x97, 0x39, 0x91, 0xd8, 0x24, 0xaf, 0xf0, 0x2b, 0x5c, 0x32,
-
  0xe1, 0x7c, 0x83, 0x32, 0x1d, 0x22, 0x8f, 0x29, 0x13, 0xa0, 0xce, 0x0b,
-
  0xf8, 0x8d, 0xbf, 0xa3, 0xcf, 0xdf, 0x67, 0x35, 0x10, 0xcf, 0x4f, 0x30,
-
  0x6d, 0x64, 0xde, 0x35, 0x12, 0x51, 0xe7, 0x62, 0x52, 0x0c, 0x06, 0xd0,
-
  0x54, 0xa7, 0xb9, 0x43, 0xd4, 0x36, 0x6f, 0x46, 0x7d, 0x59, 0x66, 0x59,
-
  0x32, 0xca, 0xc7, 0x40, 0xec, 0x30, 0xe1, 0x84, 0xf9, 0xce, 0x04, 0x36,
-
  0x81, 0x1a, 0x39, 0x70, 0x7b, 0x50, 0xe5, 0x75, 0xd6, 0xff, 0x27, 0xec,
-
  0x6a, 0xb7, 0xbe, 0x2e, 0xba, 0xf4, 0xe2, 0xbf, 0xfa, 0xb0, 0x92, 0xb2,
-
  0x15, 0xcf, 0x0b, 0xe1, 0x0f, 0x34, 0xc6, 0x31, 0x5c, 0x22, 0x73, 0xa0,
-
  0x6b, 0x58, 0xb7, 0x32, 0x1f, 0xe2, 0xa9, 0xc8, 0x33, 0x9a, 0x1f, 0x5f,
-
  0xbb, 0x7f, 0xfb, 0x05, 0x57, 0x2d, 0x9f, 0x51, 0xfb, 0x63, 0x6a, 0x1e,
-
  0xf9, 0x9a, 0xb0, 0x41, 0x6c, 0x75, 0x1b, 0x4f, 0xd7, 0xdf, 0x76, 0x7b,
-
  0xbb, 0x3b, 0x3b, 0xbf, 0xf4, 0xeb, 0x0f, 0xb5, 0xf4, 0xf2, 0x13, 0x0e,
-
  0x5a, 0x59, 0xfa, 0x3f, 0xb2, 0xb2, 0xc8, 0xaa, 0xbb, 0xda, 0xd8, 0xd9,
-
  0x59, 0xd5, 0x0a, 0xf0, 0x85, 0x12, 0xef, 0xfa, 0xb2, 0x58, 0x5c, 0x5c,
-
  0x12, 0xd1, 0xd0, 0xa0, 0x81, 0xd4, 0xef, 0x6a, 0x33, 0xed, 0xfd, 0xc3,
-
  0xb7, 0xf7, 0x26, 0xab, 0xf0, 0x86, 0x0c, 0xf3, 0x47, 0xfe, 0x49, 0xe7,
-
  0x48, 0x24, 0x8a, 0x6c, 0xd4, 0xa5, 0x7b, 0xe2, 0x46, 0x48, 0x82, 0xf8,
-
  0x42, 0x95, 0x01, 0xf5, 0x02, 0x2f, 0x85, 0x25, 0x05, 0xc2, 0xcc, 0x3e,
-
  0xc0, 0xe3, 0x75, 0x41, 0xed, 0x65, 0xe9, 0xf0, 0x92, 0xef, 0x12, 0xbf,
-
  0x01, 0x7e, 0x14, 0x69, 0x39, 0xbc, 0xcc, 0xaf, 0x60, 0x81, 0xbe, 0xfa,
-
  0xea, 0x71, 0x0f, 0x7e, 0x7c, 0xf5, 0xcb, 0xf6, 0x55, 0x31, 0x81, 0xf5,
-
  0x7a, 0xf8, 0xcb, 0x36, 0x12, 0xd5, 0x3f, 0xd3, 0xee, 0xa0, 0x3b, 0xfc,
-
  0x57, 0xff, 0xb2, 0x9e, 0x4e, 0x3a, 0x2b, 0xae, 0x04, 0xb8, 0x5e, 0xb2,
-
  0x39, 0x32, 0x04, 0xb8, 0x14, 0x80, 0x65, 0x91, 0xf0, 0x04, 0x6b, 0x20,
-
  0xc4, 0x85, 0xdc, 0x12, 0xd8, 0x5d, 0x82, 0x83, 0xbc, 0x49, 0xde, 0xc0,
-
  0x82, 0xc1, 0x66, 0x0e, 0x88, 0xe5, 0x96, 0x7c, 0xf5, 0xd3, 0xfa, 0xad,
-
  0x1a, 0x60, 0xd8, 0xbe, 0x83, 0x5d, 0x5b, 0xfb, 0xd5, 0x4f, 0xc2, 0x82,
-
  0x1e, 0xec, 0x45, 0x5b, 0x84, 0x5c, 0xd9, 0x88, 0x05, 0x86, 0xf6, 0xcf,
-
  0x7f, 0xb9, 0xf5, 0x25, 0x9e, 0x8d, 0xbc, 0xeb, 0x3d, 0x32, 0x38, 0xe4,
-
  0xc0, 0xcd, 0x43, 0x0d, 0xec, 0x00, 0x78, 0x7e, 0x17, 0x57, 0x9c, 0x39,
-
  0x59, 0x59, 0x0c, 0xd2, 0x01, 0xf0, 0xcb, 0xcb, 0xf4, 0x2a, 0xc3, 0xb9,
-
  0xcd, 0x17, 0x74, 0xa3, 0x27, 0xe3, 0x05, 0x4a, 0x3b, 0xca, 0x9d, 0x72,
-
  0xbc, 0x0a, 0x16, 0x03, 0x38, 0xa3, 0x7f, 0x5f, 0x14, 0x75, 0x46, 0x77,
-
  0x46, 0x7a, 0x55, 0x00, 0x1b, 0xa3, 0xab, 0xb2, 0xba, 0xcc, 0x26, 0x13,
-
  0xe6, 0xb4, 0xd8, 0x69, 0x8e, 0x0b, 0x07, 0x27, 0xc7, 0xae, 0x68, 0x60,
-
  0x07, 0xfd, 0x84, 0x79, 0x38, 0xd0, 0x12, 0x5c, 0x1d, 0x17, 0x05, 0x2e,
-
  0x25, 0x2e, 0x2d, 0x6d, 0x27, 0xac, 0xf6, 0x25, 0xb0, 0xcf, 0x21, 0x11,
-
  0x1e, 0xb3, 0x10, 0xb9, 0x60, 0x69, 0x57, 0xd2, 0x49, 0x97, 0xcf, 0x1e,
-
  0xbe, 0x20, 0x6b, 0x94, 0x6c, 0xfc, 0x8f, 0x8d, 0x6e, 0xb2, 0xf1, 0x7f,
-
  0x6d, 0x10, 0xd7, 0xd9, 0xf8, 0xcf, 0x0d, 0x39, 0xcd, 0x67, 0xd0, 0x1f,
-
  0x52, 0xc9, 0x78, 0x9c, 0xe8, 0x41, 0xe7, 0x21, 0xf4, 0x7a, 0xf8, 0x37,
-
  0x7c, 0x0e, 0x0f, 0xfe, 0x78, 0xf8, 0xf6, 0xf8, 0xf0, 0xfb, 0x57, 0x47,
-
  0x5e, 0xae, 0x36, 0x21, 0x37, 0x5a, 0xb0, 0xab, 0xb4, 0xcc, 0x61, 0x7d,
-
  0x70, 0xb4, 0x9b, 0xe9, 0x08, 0xf9, 0x28, 0x2c, 0xc5, 0x93, 0xfe, 0x7e,
-
  0x7f, 0x67, 0xab, 0x0f, 0xd2, 0x5e, 0xed, 0x1f, 0x30, 0x61, 0xa4, 0xd7,
-
  0xd3, 0x4f, 0x89, 0x71, 0x7c, 0x03, 0x17, 0x5c, 0x8d, 0x5c, 0x04, 0x46,
-
  0xdf, 0xf8, 0xea, 0x3b, 0xdc, 0xe5, 0x64, 0x13, 0xf6, 0x0d, 0x4e, 0x46,
-
  0x07, 0xff, 0xe8, 0x10, 0x31, 0xe2, 0xed, 0x55, 0xd5, 0x23, 0xe1, 0x70,
-
  0xf9, 0x18, 0x6f, 0x44, 0x96, 0xd3, 0xe5, 0xbe, 0x1a, 0xa5, 0xd5, 0x65,
-
  0xb2, 0xd9, 0xdb, 0xda, 0x92, 0x69, 0xff, 0xa8, 0xad, 0x4a, 0x5f, 0x95,
-
  0x36, 0x93, 0x7d, 0x98, 0xc3, 0x64, 0x78, 0xdc, 0xcc, 0xd1, 0x91, 0xbb,
-
  0x42, 0xd7, 0xb4, 0xd6, 0x4c, 0x49, 0x9d, 0x7f, 0xfe, 0x13, 0x07, 0xf3,
-
  0xaf, 0x7f, 0x75, 0xb0, 0x2f, 0x13, 0x1c, 0xe4, 0x71, 0x12, 0xcc, 0x90,
-
  0xc9, 0x8b, 0x70, 0x36, 0x92, 0xfb, 0xaa, 0xd3, 0xeb, 0x71, 0xe3, 0xbd,
-
  0x8e, 0xdc, 0xcf, 0x78, 0x30, 0x2a, 0xb9, 0x65, 0x64, 0x14, 0xb0, 0x11,
-
  0xd6, 0x9e, 0xcd, 0xbc, 0x83, 0x4d, 0x76, 0x60, 0x44, 0xc0, 0xff, 0x88,
-
  0x07, 0xf0, 0x55, 0x3c, 0x98, 0xa4, 0xb3, 0xf7, 0x38, 0x59, 0xa2, 0x29,
-
  0xea, 0x76, 0x84, 0x74, 0x82, 0x1c, 0x23, 0xfb, 0x80, 0xbc, 0x39, 0x45,
-
  0xfa, 0xa1, 0xf6, 0xb4, 0x2d, 0x90, 0x40, 0xa9, 0x95, 0x04, 0x27, 0x01,
-
  0xc3, 0x87, 0x53, 0x39, 0x80, 0x7b, 0x7b, 0x6a, 0x22, 0x18, 0x2c, 0x23,
-
  0xd3, 0x21, 0x30, 0x59, 0x9e, 0x00, 0xfd, 0x05, 0xf7, 0x93, 0x5e, 0xbb,
-
  0x7c, 0x89, 0xc0, 0x5d, 0x51, 0x4d, 0x60, 0x51, 0x85, 0xd2, 0x3a, 0x3f,
-
  0x43, 0x73, 0x4e, 0x68, 0x4c, 0x87, 0x43, 0x14, 0xdc, 0x90, 0x2e, 0x78,
-
  0xd2, 0xc0, 0x8d, 0x66, 0x57, 0x79, 0x59, 0xcc, 0xf0, 0x42, 0x74, 0x54,
-
  0x80, 0x77, 0xd5, 0x38, 0x2f, 0x61, 0xb0, 0x20, 0xad, 0x14, 0x2c, 0xa6,
-
  0xc2, 0x38, 0xa6, 0x7d, 0x6a, 0x47, 0xa4, 0x9b, 0x09, 0x08, 0x2d, 0xb8,
-
  0x9d, 0x59, 0xce, 0xd4, 0x5f, 0xc2, 0x09, 0xce, 0xcb, 0x8c, 0x07, 0xdc,
-
  0xd6, 0x2e, 0xb1, 0x9d, 0x41, 0x46, 0x64, 0x80, 0xab, 0x85, 0x0c, 0x13,
-
  0x77, 0x58, 0xcf, 0xb0, 0x5c, 0x60, 0x22, 0x84, 0xc3, 0x6b, 0x93, 0x05,
-
  0x49, 0x31, 0xf0, 0x0c, 0x70, 0xd4, 0x9c, 0xee, 0x78, 0xbe, 0xe4, 0x27,
-
  0x70, 0xb8, 0x46, 0x37, 0xd8, 0x50, 0x3f, 0x39, 0x9d, 0xa4, 0xf0, 0x08,
-
  0x6e, 0xa4, 0xf6, 0x43, 0xed, 0xfd, 0x87, 0x6c, 0xcf, 0xd4, 0x94, 0xbe,
-
  0x30, 0x0e, 0xbc, 0x47, 0x81, 0x02, 0x64, 0x07, 0x89, 0x79, 0xc3, 0xd6,
-
  0xd4, 0x7c, 0xe9, 0x92, 0x08, 0x53, 0x96, 0x28, 0x2d, 0x8c, 0x9d, 0x74,
-
  0xd8, 0x3a, 0x21, 0x15, 0x3a, 0xfc, 0x78, 0x92, 0xf3, 0x62, 0xe5, 0x64,
-
  0xb0, 0xc5, 0x9c, 0xdb, 0x93, 0x57, 0xe1, 0x95, 0x2e, 0x5d, 0x18, 0x6e,
-
  0xfc, 0x3c, 0x76, 0x3d, 0x70, 0x1d, 0x5c, 0xaa, 0xa5, 0x6f, 0xbf, 0xd3,
-
  0x6f, 0x65, 0x7b, 0x8f, 0x84, 0xe9, 0x26, 0x3f, 0x64, 0xcc, 0xfa, 0xde,
-
  0x9d, 0x1d, 0xbd, 0x5d, 0x35, 0xea, 0x19, 0xec, 0x03, 0xed, 0x12, 0x70,
-
  0x46, 0x50, 0x4b, 0x40, 0x1f, 0xc3, 0x91, 0xf1, 0x1b, 0x39, 0xab, 0x4a,
-
  0x32, 0x36, 0xbc, 0x01, 0x5c, 0xd7, 0x1b, 0xff, 0x81, 0x0f, 0x6d, 0xe0,
-
  0x67, 0x72, 0x6a, 0x90, 0xe9, 0x7c, 0x93, 0x10, 0xeb, 0xaf, 0x9a, 0xd7,
-
  0xd8, 0x3c, 0xdf, 0xfe, 0xe7, 0x3f, 0xf1, 0x85, 0x7f, 0xfd, 0x6b, 0x1b,
-
  0x8e, 0xea, 0x65, 0x31, 0xf2, 0xfc, 0x9f, 0x1b, 0x40, 0xca, 0x32, 0xba,
-
  0x53, 0x9d, 0xcd, 0xb8, 0x58, 0x2a, 0xb4, 0x32, 0x06, 0x4e, 0x3e, 0x13,
-
  0x99, 0x9e, 0xa4, 0x3d, 0xba, 0x67, 0xa7, 0xa9, 0x88, 0x93, 0xd1, 0xe6,
-
  0x86, 0x63, 0x3b, 0x2d, 0x4a, 0xfe, 0xf3, 0x2a, 0x9b, 0xe5, 0xb8, 0x02,
-
  0x30, 0x6d, 0x5c, 0x6b, 0x52, 0xf8, 0xb8, 0x09, 0x38, 0x56, 0xd3, 0xa0,
-
  0x45, 0xaa, 0xe4, 0x0e, 0x1a, 0x42, 0x3e, 0x21, 0x9e, 0x7b, 0x09, 0x72,
-
  0x11, 0xb0, 0x6f, 0x90, 0xcd, 0xe4, 0xa4, 0x75, 0xf0, 0x8d, 0x4e, 0x97,
-
  0xce, 0x1e, 0xb5, 0x00, 0x9a, 0xa8, 0xde, 0x36, 0x81, 0x5f, 0xa4, 0x38,
-
  0xf4, 0xe4, 0xbf, 0xce, 0x4e, 0xde, 0x50, 0x7b, 0x74, 0xdd, 0x8c, 0xec,
-
  0x10, 0x73, 0x43, 0xbf, 0x55, 0xc5, 0x0c, 0x1b, 0xc2, 0xdb, 0x09, 0x2e,
-
  0xbe, 0x62, 0x94, 0x89, 0xa6, 0xe1, 0x9f, 0x4a, 0x3a, 0xb0, 0x20, 0x44,
-
  0x01, 0xa4, 0x76, 0x3e, 0x7e, 0x28, 0xb4, 0x48, 0x8f, 0xe7, 0x22, 0xe7,
-
  0x75, 0x06, 0x8f, 0x1f, 0x22, 0xf7, 0x02, 0xce, 0x3a, 0x9f, 0xc3, 0x2d,
-
  0xe8, 0xd6, 0x0a, 0x99, 0xad, 0xad, 0x0c, 0xad, 0x78, 0x05, 0x5f, 0x40,
-
  0xaf, 0x70, 0x0d, 0xd0, 0x89, 0xe6, 0xab, 0xa3, 0x98, 0x14, 0x41, 0xfa,
-
  0x1f, 0xd1, 0x39, 0x65, 0x02, 0x29, 0xf3, 0x8b, 0x4b, 0x94, 0x74, 0x90,
-
  0x98, 0x8b, 0xb1, 0x7c, 0x18, 0xd8, 0x56, 0xe0, 0xd8, 0x3a, 0x79, 0x6a,
-
  0xef, 0xb2, 0x98, 0xd0, 0x82, 0xce, 0xf0, 0xfa, 0x1d, 0xdc, 0xd0, 0x55,
-
  0x8b, 0xbb, 0xa6, 0x92, 0x13, 0x8f, 0x7f, 0xc4, 0x37, 0xbd, 0xf1, 0xf6,
-
  0x61, 0x8a, 0xe7, 0x80, 0x8e, 0x5e, 0x4c, 0xd4, 0x07, 0x24, 0xab, 0x34,
-
  0x39, 0x32, 0xcc, 0x8c, 0xee, 0x1d, 0x3d, 0xcd, 0xff, 0xe7, 0xcb, 0x93,
-
  0xd7, 0x47, 0xdb, 0xfd, 0x2a, 0x1b, 0x96, 0xf0, 0x34, 0xd1, 0x78, 0x1a,
-
  0xc6, 0xca, 0xf3, 0x94, 0x73, 0x0f, 0xfc, 0x13, 0xd6, 0xeb, 0x35, 0x90,
-
  0x0f, 0xd2, 0x1a, 0xb1, 0xac, 0xb4, 0x4e, 0x7c, 0x0f, 0xc4, 0x6a, 0x70,
-
  0xab, 0xa7, 0xaa, 0x99, 0x8a, 0x36, 0xd3, 0x93, 0xb1, 0x8b, 0x3d, 0x81,
-
  0x94, 0xa6, 0x19, 0xf1, 0xf4, 0xd3, 0x93, 0xb3, 0x73, 0xb2, 0x49, 0x35,
-
  0xce, 0xcc, 0x7f, 0xe0, 0xb8, 0xdc, 0x89, 0xb1, 0x2f, 0x60, 0x14, 0xdf,
-
  0xfd, 0xf3, 0x9f, 0xf8, 0x2d, 0x9c, 0x0f, 0x19, 0xb7, 0x7b, 0x8e, 0xcc,
-
  0x5b, 0x70, 0x1f, 0xc0, 0x63, 0x07, 0x38, 0x92, 0x03, 0xa0, 0x04, 0xb8,
-
  0xdc, 0xbe, 0x78, 0xd0, 0x76, 0xd6, 0x78, 0xbd, 0x9e, 0xb5, 0x5f, 0xfa,
-
  0xc6, 0xef, 0x2b, 0x22, 0x0a, 0x34, 0x0d, 0x25, 0xb1, 0x18, 0x00, 0xeb,
-
  0x7d, 0xf2, 0xee, 0xfc, 0xf4, 0xdd, 0xb9, 0xd9, 0x5d, 0x70, 0x9b, 0x6a,
-
  0xd8, 0x46, 0x16, 0x6d, 0xae, 0xf3, 0x4a, 0x0d, 0x2a, 0xa8, 0xc2, 0x90,
-
  0x04, 0x89, 0xd2, 0x64, 0x36, 0xcc, 0x40, 0x50, 0x1d, 0xb1, 0x29, 0x0e,
-
  0x16, 0x1c, 0x6e, 0x7b, 0x38, 0x0f, 0x74, 0xbe, 0xe8, 0x70, 0x0c, 0x54,
-
  0xdd, 0x03, 0xa2, 0x5e, 0x0c, 0x91, 0xb4, 0xe0, 0x21, 0xfc, 0x0b, 0x4e,
-
  0x1c, 0xa8, 0xd4, 0x57, 0xb2, 0xf2, 0xf4, 0xba, 0xec, 0xd8, 0x04, 0x54,
-
  0xd6, 0x09, 0xed, 0x6c, 0x57, 0x2e, 0x76, 0xea, 0xaa, 0xd7, 0xe3, 0x83,
-
  0xa6, 0x9a, 0x5c, 0xaf, 0x57, 0x66, 0x53, 0x38, 0x55, 0x3d, 0xba, 0x61,
-
  0xc5, 0xa6, 0xd0, 0xa7, 0xa1, 0xab, 0xe1, 0x30, 0xb9, 0x80, 0xb1, 0xcd,
-
  0x82, 0x62, 0xc6, 0x6a, 0x18, 0xb2, 0x3e, 0xb5, 0x4f, 0xae, 0x32, 0x30,
-
  0xf0, 0xf1, 0xae, 0xf2, 0x69, 0x3e, 0x49, 0x4b, 0x38, 0x50, 0x33, 0xd0,
-
  0xd3, 0x2b, 0xa7, 0xe2, 0xa9, 0x09, 0x83, 0x44, 0x39, 0x16, 0x7b, 0xf0,
-
  0xc4, 0xe0, 0x84, 0xb4, 0xbd, 0xa9, 0x37, 0x52, 0x90, 0x00, 0xc0, 0x3a,
-
  0x03, 0x1c, 0x31, 0x20, 0x72, 0x3c, 0xcf, 0xb6, 0xb0, 0x70, 0xc6, 0x81,
-
  0xfe, 0xe1, 0xb2, 0x85, 0xee, 0x3b, 0x89, 0x9a, 0x6d, 0x84, 0x0c, 0x6b,
-
  0x91, 0x47, 0x54, 0x30, 0x97, 0xe5, 0x07, 0x7a, 0xe3, 0xf5, 0xa0, 0xb5,
-
  0x16, 0x01, 0x83, 0xcf, 0x15, 0x2e, 0x19, 0x59, 0xeb, 0xf8, 0xf7, 0xae,
-
  0x9a, 0x6b, 0x90, 0x04, 0x26, 0xf9, 0x30, 0xaf, 0x61, 0x42, 0x69, 0xf5,
-
  0x5e, 0x48, 0x18, 0xc6, 0x4d, 0x3c, 0x04, 0xa8, 0x21, 0x1f, 0xd2, 0xe1,
-
  0x6f, 0x33, 0xd6, 0xc0, 0x64, 0x4e, 0xdf, 0x9e, 0x9c, 0x9f, 0x3c, 0x3b,
-
  0x79, 0xd5, 0x2a, 0x6d, 0x26, 0xa4, 0x0b, 0x16, 0x0b, 0x67, 0xff, 0xab,
-
  0x58, 0x20, 0x42, 0xde, 0x88, 0x64, 0x86, 0x5c, 0x2e, 0x01, 0x69, 0x6d,
-
  0x8a, 0xf6, 0x56, 0xb6, 0xd0, 0x55, 0x2c, 0x4d, 0xf0, 0xbc, 0x50, 0xaf,
-
  0xc9, 0x87, 0x0b, 0x58, 0x6f, 0xb8, 0x8e, 0x73, 0xa0, 0xbb, 0x69, 0x7a,
-
  0xc3, 0x97, 0x10, 0xf7, 0x41, 0x6b, 0x8a, 0xc6, 0x4b, 0x59, 0x57, 0x34,
-
  0xd9, 0xc2, 0x39, 0x7b, 0x85, 0x6b, 0x83, 0x72, 0xc4, 0xa4, 0x28, 0xde,
-
  0x2f, 0xe6, 0xc9, 0x75, 0x51, 0x8e, 0x54, 0x20, 0x2c, 0x66, 0x34, 0x05,
-
  0x98, 0x17, 0xce, 0x21, 0x45, 0x25, 0x55, 0x5e, 0x46, 0x4b, 0x2f, 0xbc,
-
  0xfc, 0x16, 0xa9, 0x10, 0x77, 0x10, 0xd7, 0xd4, 0x11, 0x1e, 0x0c, 0x2c,
-
  0x6c, 0x9b, 0x1f, 0x03, 0xcb, 0x4f, 0x44, 0x93, 0xf8, 0x1c, 0x1a, 0x1b,
-
  0xd1, 0x14, 0xfa, 0x80, 0x49, 0x71, 0x72, 0xc3, 0x7a, 0x20, 0x71, 0x85,
-
  0x72, 0x31, 0x9b, 0xd1, 0x83, 0xc0, 0x58, 0x5f, 0xe7, 0xc3, 0xb2, 0xa8,
-
  0x8a, 0x71, 0x0d, 0xba, 0xe9, 0x6c, 0x54, 0x5c, 0x57, 0x89, 0x8c, 0x10,
-
  0xb7, 0x7a, 0x06, 0x82, 0xde, 0x15, 0x12, 0xe7, 0x9b, 0x67, 0x5f, 0x3c,
-
  0x00, 0xfe, 0x5d, 0x16, 0xa8, 0x1f, 0xc2, 0x3c, 0xde, 0xdb, 0x68, 0xcf,
-
  0x4f, 0x37, 0xcf, 0xb6, 0x60, 0xbc, 0x8d, 0x35, 0xc7, 0xb7, 0x5f, 0x10,
-
  0x07, 0x3c, 0x57, 0x82, 0x3e, 0x55, 0xdb, 0xa6, 0x48, 0x32, 0xa0, 0xc8,
-
  0x15, 0x7c, 0x7f, 0xd6, 0xd7, 0x59, 0xfa, 0x5e, 0x8c, 0x53, 0x0f, 0x26,
-
  0xa8, 0xf7, 0xa1, 0x49, 0x01, 0x1f, 0xc2, 0x05, 0x10, 0x8b, 0x2a, 0x8f,
-
  0xea, 0xfc, 0x95, 0x1a, 0x94, 0xd9, 0xec, 0xcd, 0x9d, 0xbf, 0xcd, 0x80,
-
  0x09, 0xc1, 0x7b, 0xb2, 0x42, 0x5f, 0x98, 0x0d, 0xbc, 0x6d, 0x6c, 0x64,
-
  0x3b, 0xa5, 0x21, 0x04, 0xc2, 0xf0, 0x76, 0x3f, 0xe2, 0x4d, 0x72, 0x64,
-
  0x95, 0x57, 0x80, 0x92, 0x94, 0xbe, 0xff, 0xe2, 0x01, 0xbd, 0x8a, 0xc3,
-
  0x43, 0xa9, 0x7d, 0xa7, 0xff, 0x55, 0x37, 0xd9, 0xed, 0xef, 0xe0, 0x8f,
-
  0xdd, 0x6e, 0xb2, 0x47, 0x2f, 0xef, 0x27, 0x6c, 0x5a, 0xe6, 0x3d, 0x16,
-
  0x72, 0xb1, 0x23, 0x49, 0xe6, 0x9b, 0xcb, 0x0c, 0x46, 0x54, 0x94, 0x25,
-
  0x4a, 0xa8, 0x2b, 0xe8, 0x99, 0xf8, 0xdc, 0xeb, 0x43, 0x19, 0xfe, 0x3b,
-
  0xdb, 0x0f, 0x20, 0x3c, 0x10, 0x87, 0xca, 0xa6, 0x61, 0x59, 0x45, 0x13,
-
  0x1c, 0x2a, 0x6c, 0xe1, 0x6c, 0x52, 0xa4, 0x28, 0x3d, 0xe3, 0xc3, 0x15,
-
  0x5b, 0xe1, 0x80, 0x0a, 0xfb, 0x5f, 0x3c, 0xb8, 0x6b, 0x49, 0xd1, 0x33,
-
  0xe0, 0x56, 0x8c, 0x9b, 0x03, 0x1a, 0xc5, 0xa1, 0x16, 0xa0, 0x8b, 0x33,
-
  0x1d, 0x73, 0x93, 0xd0, 0x62, 0x97, 0x57, 0xd1, 0x35, 0x18, 0x9a, 0x42,
-
  0xef, 0xc2, 0xd2, 0xca, 0xe3, 0x87, 0x89, 0xad, 0xdf, 0x7e, 0x3f, 0x79,
-
  0x2e, 0x83, 0x65, 0x62, 0x44, 0xf3, 0x25, 0x3d, 0x02, 0xb2, 0x3a, 0xe8,
-
  0xb0, 0x78, 0xfd, 0x0d, 0xd0, 0x0c, 0x0f, 0x8c, 0xfa, 0x01, 0x5f, 0x98,
-
  0x75, 0x31, 0xcf, 0x87, 0x28, 0xf8, 0x20, 0x61, 0x2d, 0xe6, 0xf2, 0xea,
-
  0xf6, 0xbc, 0xa8, 0x48, 0x0b, 0xd0, 0xf7, 0xe6, 0xa0, 0x47, 0xe7, 0xa0,
-
  0xbd, 0x91, 0x6d, 0x91, 0x5f, 0xea, 0xcb, 0x90, 0x1e, 0x50, 0x2f, 0x30,
-
  0x4e, 0x93, 0x71, 0xd5, 0x4e, 0x92, 0x6c, 0xde, 0x64, 0xb5, 0x2a, 0x7b,
-
  0xe8, 0x0f, 0xe1, 0x95, 0xf0, 0x43, 0x14, 0x7d, 0x7f, 0x5e, 0xcc, 0xf7,
-
  0xcd, 0x9b, 0x33, 0xcd, 0x80, 0xbc, 0xcd, 0x3c, 0x0b, 0xdf, 0xe2, 0xaa,
-
  0x07, 0xea, 0xd5, 0xa5, 0xf9, 0xe2, 0x41, 0x73, 0xb1, 0xd1, 0xc9, 0xc2,
-
  0x5d, 0xa0, 0xa3, 0x02, 0x8e, 0x3b, 0xf0, 0x6f, 0xb8, 0x2d, 0x5e, 0xc3,
-
  0x21, 0x4e, 0x2f, 0xa8, 0x2d, 0x3b, 0x30, 0xa4, 0x19, 0xe6, 0x53, 0xa0,
-
  0x4b, 0x60, 0x8f, 0x09, 0xd9, 0xf3, 0xf1, 0x3e, 0xc3, 0x01, 0x90, 0xf6,
-
  0x95, 0xa5, 0x53, 0x78, 0xe1, 0x8b, 0x07, 0x20, 0x0f, 0xe4, 0x29, 0x5b,
-
  0x53, 0xc3, 0xfe, 0x09, 0x39, 0xe4, 0xb5, 0xf5, 0x7b, 0x76, 0xba, 0xb4,
-
  0x33, 0xf8, 0x21, 0xd2, 0xb2, 0x3d, 0xaf, 0x54, 0x78, 0xf6, 0x6c, 0xf9,
-
  0xe1, 0xb3, 0xb3, 0x97, 0xb6, 0x89, 0x7b, 0xc0, 0x2f, 0xe7, 0xc1, 0x6a,
-
  0xad, 0x6f, 0x01, 0x5b, 0x58, 0x7e, 0x0d, 0x3e, 0x4c, 0x36, 0x47, 0x65,
-
  0x0a, 0xbc, 0xe6, 0xd1, 0x16, 0x99, 0x8e, 0x79, 0xcf, 0xa3, 0xf6, 0xb4,
-
  0x85, 0xd7, 0xdf, 0xb7, 0x9d, 0x5d, 0xf8, 0xd8, 0x1e, 0xdd, 0x25, 0x3a,
-
  0x64, 0x2a, 0xa0, 0x49, 0xeb, 0xd8, 0xad, 0x09, 0x3d, 0xff, 0xef, 0x94,
-
  0x52, 0x82, 0x8c, 0x86, 0xf4, 0x34, 0xe3, 0x67, 0xe2, 0x9d, 0x44, 0x91,
-
  0x89, 0x1e, 0x45, 0x4d, 0xcb, 0xed, 0x25, 0xde, 0x71, 0x0f, 0x96, 0xe9,
-
  0x9c, 0xbd, 0x5e, 0xd0, 0xc7, 0x0b, 0xf4, 0x59, 0xd0, 0x7b, 0x78, 0x95,
-
  0x4c, 0x66, 0x20, 0xe6, 0xd1, 0xb5, 0x42, 0x9e, 0x94, 0x8a, 0x3a, 0x23,
-
  0xa3, 0x4d, 0x3a, 0x24, 0x96, 0x5a, 0x21, 0xaf, 0x46, 0xfa, 0xe4, 0x1b,
-
  0x1a, 0xaf, 0x52, 0xec, 0xb8, 0x82, 0x3e, 0xc8, 0x60, 0x5c, 0xd3, 0x29,
-
  0x27, 0x57, 0x09, 0x59, 0x29, 0x68, 0x82, 0x7c, 0xab, 0x56, 0xec, 0x2a,
-
  0x22, 0x71, 0x9c, 0x47, 0x4e, 0x6f, 0x86, 0x1d, 0x3e, 0x77, 0xab, 0x2f,
-
  0x67, 0x18, 0x3f, 0x0a, 0x7b, 0x4b, 0x8d, 0xf1, 0xc2, 0xe9, 0x8e, 0xfd,
-
  0x74, 0xc6, 0x4b, 0xf5, 0x53, 0x36, 0x38, 0x2b, 0xd0, 0xa8, 0xeb, 0xf6,
-
  0x07, 0xb9, 0xde, 0xf6, 0x6e, 0x1f, 0x9d, 0x79, 0xa8, 0xb2, 0x4e, 0x72,
-
  0x15, 0x99, 0x51, 0xc6, 0xc7, 0xbb, 0x20, 0x3c, 0x76, 0xc6, 0x97, 0xf1,
-
  0x0f, 0x6f, 0x8f, 0xe0, 0xd9, 0xd7, 0x47, 0xe7, 0x47, 0x6f, 0xdd, 0x8d,
-
  0x3c, 0x2b, 0xca, 0x29, 0x5c, 0x92, 0x37, 0xc0, 0x51, 0xaa, 0xf9, 0x24,
-
  0xbd, 0x41, 0x3d, 0x04, 0x58, 0xd8, 0x45, 0x49, 0x12, 0x00, 0xd9, 0x4b,
-
  0x92, 0xd1, 0x82, 0x14, 0x8c, 0x02, 0x24, 0x5a, 0xe6, 0xc1, 0x5d, 0x58,
-
  0x36, 0xba, 0xfd, 0x55, 0xda, 0xa2, 0xf6, 0x82, 0x43, 0xc9, 0xbc, 0xae,
-
  0x22, 0xe9, 0x75, 0x9d, 0x04, 0x45, 0x3e, 0x0c, 0x11, 0x31, 0x81, 0x43,
-
  0x4c, 0x49, 0x84, 0xa0, 0x53, 0x36, 0xc9, 0xc6, 0xa0, 0xda, 0x26, 0xb0,
-
  0x67, 0x7d, 0xf3, 0x15, 0x2e, 0x0d, 0x45, 0x47, 0x49, 0x9c, 0xd7, 0x5a,
-
  0x25, 0x1f, 0x04, 0x4a, 0x0d, 0xac, 0x3b, 0xa0, 0xec, 0x0d, 0x1b, 0x00,
-
  0x84, 0x35, 0x22, 0x03, 0x5c, 0x26, 0xfe, 0xdc, 0x31, 0x79, 0xd9, 0x92,
-
  0xcd, 0xf7, 0xdd, 0xe4, 0x75, 0x37, 0xf9, 0xa1, 0x9b, 0x9c, 0x77, 0x93,
-
  0xd3, 0x2d, 0xf6, 0x6f, 0xed, 0xee, 0xec, 0x3d, 0x64, 0x4f, 0x1d, 0x7b,
-
  0xe1, 0xd4, 0xe0, 0xb6, 0xfb, 0x1e, 0x8f, 0x3a, 0x7f, 0x8b, 0x8d, 0x43,
-
  0x83, 0xbb, 0xaf, 0x55, 0x21, 0xdf, 0xdd, 0x79, 0xf8, 0xe4, 0xd1, 0x97,
-
  0x8f, 0xe5, 0x1b, 0x2f, 0xc0, 0x85, 0x71, 0xc2, 0x63, 0x2a, 0xed, 0xf2,
-
  0xa0, 0x41, 0xa6, 0xc9, 0x67, 0x29, 0xea, 0x39, 0xaa, 0xec, 0x93, 0x5f,
-
  0x29, 0x67, 0xdf, 0x25, 0xdb, 0x31, 0xb9, 0x19, 0x15, 0xb8, 0xd0, 0x7f,
-
  0x84, 0x1e, 0x1e, 0xdd, 0x00, 0xbe, 0xb4, 0x90, 0x3e, 0xd1, 0x09, 0x31,
-
  0x20, 0xdf, 0x26, 0xca, 0x65, 0x24, 0x96, 0x58, 0x6f, 0xd4, 0x9d, 0xf6,
-
  0xd6, 0x35, 0x3b, 0x02, 0x0c, 0x8d, 0xa5, 0x7c, 0x1a, 0x4d, 0x73, 0x81,
-
  0xd1, 0xd6, 0x14, 0x04, 0x4d, 0xb2, 0x17, 0x15, 0x0b, 0xb8, 0x2e, 0xe1,
-
  0x6b, 0x78, 0x08, 0x04, 0x26, 0x7e, 0xcd, 0xc9, 0xd6, 0x53, 0xb6, 0x2d,
-
  0x59, 0x43, 0xd2, 0x0e, 0x0c, 0x10, 0xfe, 0x9c, 0x03, 0xb5, 0x64, 0x34,
-
  0xa2, 0xd8, 0x43, 0x4b, 0x0e, 0xca, 0x34, 0x69, 0xbe, 0x45, 0xf7, 0x22,
-
  0x5d, 0xe8, 0xa4, 0x1c, 0xc1, 0x5f, 0xa0, 0x62, 0xb0, 0xa1, 0x08, 0x88,
-
  0xa5, 0x22, 0x03, 0x2e, 0x09, 0xd7, 0x66, 0x1c, 0x07, 0x12, 0xa3, 0xab,
-
  0x50, 0xd4, 0x0b, 0xe9, 0x50, 0x75, 0xec, 0x42, 0x74, 0x3e, 0xd5, 0x0c,
-
  0xc8, 0x62, 0x1b, 0xde, 0x49, 0x36, 0xbf, 0xdd, 0xea, 0x2e, 0x69, 0x0a,
-
  0x22, 0xc6, 0xeb, 0xc1, 0xa5, 0x0d, 0x54, 0xc1, 0x8e, 0xf5, 0x65, 0x68,
-
  0x17, 0xcf, 0xae, 0xb0, 0x39, 0x5c, 0x33, 0x3a, 0x7a, 0x61, 0x7f, 0x82,
-
  0x20, 0x38, 0x87, 0x25, 0x64, 0xdf, 0xf3, 0xec, 0x46, 0x06, 0xec, 0x16,
-
  0x45, 0x89, 0x42, 0x77, 0xa9, 0xe9, 0xc6, 0xce, 0x38, 0x28, 0x22, 0x6c,
-
  0xd2, 0x00, 0xc4, 0x5d, 0x55, 0x87, 0x8a, 0xb1, 0x4c, 0xfa, 0x82, 0xa4,
-
  0x60, 0x5a, 0xc1, 0x2e, 0x39, 0x57, 0xe5, 0xf1, 0x1e, 0x3c, 0xad, 0x94,
-
  0x0a, 0xed, 0xc1, 0xf2, 0x82, 0x40, 0x46, 0x47, 0x42, 0xad, 0xff, 0x64,
-
  0x95, 0x56, 0x8a, 0x68, 0x10, 0x04, 0xef, 0x08, 0x08, 0x43, 0x70, 0x0a,
-
  0x50, 0x56, 0x75, 0x96, 0x5e, 0xd6, 0xaf, 0x2a, 0x58, 0x58, 0x3c, 0xef,
-
  0x24, 0x21, 0xa1, 0x79, 0xf9, 0xe8, 0xed, 0x99, 0x05, 0x63, 0xd0, 0xb2,
-
  0x81, 0x18, 0x05, 0x72, 0xfa, 0x45, 0x26, 0xae, 0xfb, 0x01, 0x1e, 0x4d,
-
  0x3a, 0x1e, 0x4f, 0xfa, 0xbb, 0x7b, 0xa0, 0x44, 0xea, 0x44, 0xc9, 0x9e,
-
  0x05, 0x9a, 0x5c, 0x8a, 0x3d, 0xca, 0x55, 0xd2, 0x25, 0xeb, 0x38, 0xda,
-
  0xf7, 0x99, 0xb9, 0x94, 0xec, 0x83, 0x4a, 0x42, 0xa3, 0x4e, 0x4b, 0x42,
-
  0xb3, 0xfd, 0x0d, 0x7e, 0x30, 0x24, 0x4f, 0x5d, 0x42, 0x96, 0x77, 0x68,
-
  0x3c, 0xb8, 0x9c, 0x91, 0xd7, 0x67, 0xa0, 0x9b, 0xe5, 0x19, 0x2f, 0x89,
-
  0xf5, 0xc2, 0x07, 0xd4, 0x5e, 0xac, 0xc9, 0x35, 0x85, 0xa7, 0x27, 0x9f,
-
  0x0d, 0x27, 0x8b, 0x51, 0x66, 0x57, 0x1b, 0x7c, 0x80, 0xde, 0x4f, 0xde,
-
  0x60, 0x39, 0x74, 0x20, 0xf5, 0x0c, 0x2f, 0x83, 0xc5, 0x7e, 0x0c, 0x82,
-
  0x90, 0x3e, 0xce, 0xcc, 0x78, 0x56, 0x97, 0xc5, 0x68, 0x31, 0x44, 0x2d,
-
  0xe9, 0x92, 0x3c, 0x29, 0x0d, 0x8f, 0x7c, 0x3a, 0xb9, 0x46, 0x2e, 0x31,
-
  0x81, 0xa1, 0xcd, 0xb8, 0x35, 0x5a, 0x5c, 0x5c, 0x89, 0xaa, 0xe6, 0xb5,
-
  0xd2, 0x06, 0x73, 0xb2, 0xb2, 0x8a, 0x9a, 0xa0, 0x57, 0x89, 0xaa, 0xf6,
-
  0xf8, 0x47, 0xbf, 0xca, 0xb6, 0x71, 0x8c, 0x21, 0xd2, 0x42, 0x35, 0x9a,
-
  0x30, 0x07, 0x36, 0xc9, 0xe8, 0x32, 0xca, 0x3a, 0xb2, 0x7f, 0x82, 0x06,
-
  0x02, 0x27, 0xa4, 0xb8, 0x36, 0x1d, 0x5a, 0xc6, 0x21, 0x2a, 0xf9, 0x10,
-
  0xc6, 0x48, 0xb3, 0x3f, 0x58, 0xea, 0x16, 0xd6, 0xaf, 0xda, 0x86, 0x16,
-
  0xb1, 0x3d, 0xf2, 0x32, 0x7d, 0xf1, 0xc5, 0x09, 0x45, 0xe6, 0x88, 0xf2,
-
  0x77, 0x22, 0xc2, 0x36, 0x5d, 0xbc, 0xa2, 0x6b, 0x90, 0x47, 0x18, 0xcf,
-
  0x7b, 0x7d, 0x5d, 0x90, 0x61, 0x9f, 0x78, 0xeb, 0x6b, 0xf2, 0xe6, 0x8f,
-
  0xbd, 0x29, 0xbe, 0x0a, 0x96, 0xe2, 0x44, 0x6c, 0xbf, 0xe9, 0x68, 0x94,
-
  0x93, 0x8e, 0x36, 0x51, 0xa3, 0x2f, 0x79, 0xcc, 0x84, 0xe9, 0x4d, 0x79,
-
  0xef, 0xcd, 0x07, 0x5c, 0x93, 0x37, 0xcd, 0xce, 0xa4, 0x8c, 0xc2, 0xdb,
-
  0xc1, 0x47, 0x64, 0x02, 0x67, 0x83, 0x31, 0x9c, 0x3a, 0x74, 0xf0, 0x8e,
-
  0xc4, 0xf6, 0x6c, 0xde, 0x5d, 0xb4, 0xeb, 0x88, 0xcb, 0xb7, 0x1f, 0x96,
-
  0x18, 0xd6, 0x0b, 0xda, 0xea, 0xb0, 0x7f, 0xa2, 0x87, 0xed, 0x74, 0x90,
-
  0x8b, 0x4d, 0x13, 0x3d, 0x9e, 0x32, 0x07, 0x60, 0x33, 0xa3, 0xc4, 0x7b,
-
  0x72, 0xba, 0xa4, 0xb0, 0xa2, 0xc7, 0x63, 0xa1, 0xd1, 0x21, 0x4d, 0xc9,
-
  0x1d, 0xc3, 0x93, 0xc8, 0x92, 0xa8, 0xee, 0xf6, 0xbc, 0x56, 0xce, 0x5f,
-
  0xf1, 0xbc, 0xbb, 0xb0, 0x6f, 0xf8, 0xec, 0xc5, 0x25, 0x39, 0xf5, 0xe9,
-
  0xe1, 0xdc, 0xbc, 0x05, 0xc0, 0xe3, 0x40, 0x95, 0xc9, 0xc8, 0x56, 0x26,
-
  0xb6, 0xba, 0xa2, 0xec, 0x0b, 0x69, 0x4c, 0x0a, 0xdc, 0x65, 0x76, 0x6f,
-
  0xd1, 0xb8, 0x69, 0xd8, 0xc4, 0x3f, 0x24, 0x4e, 0xca, 0x87, 0xa2, 0x48,
-
  0x7b, 0xb4, 0x0b, 0x95, 0x75, 0xe5, 0xc6, 0x15, 0x0d, 0x4b, 0x85, 0x3d,
-
  0x5a, 0x1b, 0xa5, 0x3d, 0xdd, 0x4c, 0x36, 0x9d, 0xc1, 0x95, 0x86, 0x7b,
-
  0x41, 0xbc, 0x9c, 0xc3, 0x51, 0x1a, 0x5b, 0x6a, 0xae, 0x9c, 0xb0, 0x3e,
-
  0x64, 0x5c, 0x03, 0x35, 0x30, 0x23, 0x0b, 0x0b, 0xef, 0x37, 0x39, 0x47,
-
  0xf9, 0xc6, 0x6a, 0xf1, 0x96, 0x99, 0x8b, 0xd5, 0xdc, 0x9c, 0x14, 0xcc,
-
  0x24, 0x02, 0x81, 0x8e, 0xa8, 0x77, 0x02, 0xbb, 0xc3, 0x7e, 0xfc, 0xde,
-
  0x55, 0x82, 0x8c, 0x1c, 0xd8, 0x0e, 0x6e, 0x76, 0xef, 0xe4, 0xd5, 0x95,
-
  0xb2, 0xe4, 0x19, 0xe8, 0x13, 0x33, 0xf4, 0xd0, 0x76, 0xb9, 0x91, 0x41,
-
  0x51, 0xc0, 0xa9, 0x0d, 0xd3, 0x22, 0x21, 0x22, 0x9b, 0x21, 0x23, 0x55,
-
  0x57, 0x11, 0x5c, 0x2c, 0xec, 0x4b, 0xc2, 0x96, 0x6f, 0xd0, 0x2e, 0x9d,
-
  0x5e, 0xa4, 0xe2, 0xdc, 0x12, 0x9e, 0x1b, 0x1e, 0x9d, 0x15, 0xf2, 0x34,
-
  0x6d, 0x10, 0xc5, 0x27, 0x74, 0x1d, 0xff, 0x62, 0xa7, 0x4e, 0x30, 0x5d,
-
  0x89, 0xa7, 0x08, 0xed, 0x07, 0xe2, 0x0d, 0x41, 0x27, 0x4f, 0xb0, 0xf0,
-
  0x42, 0x73, 0x1d, 0x68, 0xe9, 0x65, 0x71, 0x8d, 0xaa, 0x7b, 0x97, 0xfd,
-
  0x42, 0x79, 0x25, 0xce, 0x7e, 0xd4, 0x5a, 0x41, 0x3f, 0x83, 0x75, 0xa4,
-
  0xa8, 0x11, 0xfa, 0x90, 0x8c, 0x96, 0x78, 0xfc, 0x1d, 0x8b, 0x97, 0xbe,
-
  0x6c, 0x0b, 0xc7, 0xde, 0x52, 0x45, 0x46, 0x79, 0x18, 0x38, 0xee, 0x44,
-
  0x5e, 0xd1, 0x36, 0x75, 0x59, 0x48, 0xae, 0xd4, 0x21, 0x46, 0xc6, 0xab,
-
  0x12, 0x0f, 0x5c, 0xcd, 0x27, 0x09, 0xe7, 0xc3, 0xc7, 0x8f, 0x96, 0x42,
-
  0xcd, 0x0e, 0x2c, 0x38, 0xb9, 0xf5, 0xe4, 0x57, 0xba, 0xb0, 0x91, 0xc3,
-
  0x6c, 0x5e, 0x9b, 0x37, 0x3a, 0xa2, 0x21, 0x5c, 0x71, 0x74, 0x6e, 0xc2,
-
  0xb5, 0x99, 0x24, 0x3f, 0xd0, 0x2f, 0xfa, 0x80, 0x90, 0x6b, 0x9d, 0xb2,
-
  0x3b, 0x2c, 0x2f, 0x95, 0xa6, 0x70, 0x0c, 0xa8, 0x53, 0x90, 0x66, 0x8a,
-
  0xc6, 0x3e, 0x50, 0x7c, 0xb2, 0x52, 0x66, 0xe1, 0x8e, 0x35, 0xfb, 0xb2,
-
  0x34, 0xf2, 0x23, 0x44, 0x8c, 0x20, 0x65, 0x0d, 0x71, 0xdd, 0x90, 0x69,
-
  0x09, 0xd7, 0x4a, 0x36, 0x3b, 0xbd, 0x5e, 0x67, 0x0b, 0x0f, 0x34, 0xca,
-
  0xdd, 0x34, 0xd0, 0x0c, 0x17, 0x53, 0x9c, 0x80, 0x32, 0xa6, 0xaf, 0x89,
-
  0xce, 0x43, 0x93, 0xdc, 0xb3, 0xf8, 0xbe, 0xe8, 0x36, 0xb7, 0xe9, 0x61,
-
  0xd0, 0x0f, 0xea, 0x25, 0xb0, 0xa9, 0x64, 0x5d, 0x67, 0xef, 0x00, 0x5a,
-
  0x8e, 0xf8, 0x2a, 0x94, 0x26, 0x68, 0x02, 0x20, 0x36, 0xa2, 0xe9, 0x91,
-
  0x35, 0x1a, 0x31, 0xe2, 0xe0, 0xb8, 0xdc, 0x64, 0xf0, 0x2c, 0x4f, 0x26,
-
  0xc2, 0xd7, 0x43, 0x2f, 0x72, 0xab, 0x62, 0x20, 0x13, 0x2d, 0xde, 0x01,
-
  0x3b, 0x71, 0xd1, 0xbb, 0xd3, 0xc3, 0xab, 0xf2, 0xa6, 0xcb, 0x1f, 0x48,
-
  0x54, 0x5f, 0x57, 0x9c, 0xbc, 0x1a, 0xba, 0xd5, 0xb3, 0xe3, 0xd8, 0xf5,
-
  0x9f, 0x4e, 0xd3, 0x0f, 0x5d, 0xff, 0x58, 0xb7, 0x21, 0x90, 0xd0, 0x97,
-
  0x28, 0xaf, 0x6b, 0x7b, 0x48, 0x72, 0x3d, 0x32, 0xe2, 0xd3, 0x57, 0xa0,
-
  0x59, 0xc1, 0x1f, 0xf2, 0xeb, 0x0d, 0x9c, 0x10, 0x91, 0xce, 0xe8, 0x93,
-
  0x1a, 0x83, 0x5e, 0x7a, 0x69, 0x35, 0xcc, 0x73, 0xf7, 0x37, 0xc8, 0xf9,
-
  0xe3, 0xfc, 0x42, 0xdb, 0xe3, 0xcf, 0xf2, 0x11, 0xb2, 0x5c, 0xf9, 0x03,
-
  0xd5, 0x0b, 0xfb, 0x8b, 0xcf, 0x79, 0x0f, 0x5d, 0xa6, 0x45, 0x85, 0xac,
-
  0xea, 0xf0, 0xd5, 0xab, 0x24, 0xba, 0xad, 0x7a, 0xbd, 0x74, 0x50, 0xe1,
-
  0xb3, 0x75, 0x6f, 0x31, 0xcb, 0x3f, 0xf4, 0x2a, 0x56, 0xbe, 0x9e, 0xce,
-
  0xd3, 0xfa, 0xf2, 0xdb, 0x2f, 0x1e, 0xe0, 0x23, 0x9b, 0x28, 0xa4, 0x6e,
-
  0x69, 0x24, 0x96, 0x45, 0x8d, 0xe0, 0x8d, 0x2e, 0xaf, 0xc2, 0x7e, 0xc1,
-
  0xbb, 0xc0, 0xe7, 0xa6, 0x48, 0x84, 0xdc, 0x44, 0xd7, 0x64, 0x37, 0xa4,
-
  0x0d, 0x6a, 0x28, 0xd8, 0xf5, 0x80, 0xa5, 0xd5, 0xa8, 0xb9, 0xf5, 0x93,
-
  0x37, 0x45, 0x9d, 0x1d, 0xd0, 0xdf, 0x78, 0x0a, 0xe8, 0x4c, 0x0a, 0x59,
-
  0xe1, 0x08, 0xd8, 0x95, 0x81, 0x3a, 0x80, 0xf4, 0xc4, 0x0d, 0xc9, 0x20,
-
  0x9b, 0xde, 0xea, 0xef, 0x3a, 0xdd, 0xe4, 0x92, 0x99, 0x00, 0xf7, 0xc2,
-
  0xb3, 0x08, 0x44, 0x04, 0xad, 0x93, 0x7c, 0x0f, 0xdc, 0x98, 0x1b, 0xe2,
-
  0x90, 0x08, 0xe2, 0x15, 0x62, 0xd3, 0xb2, 0x28, 0x05, 0xba, 0x57, 0x57,
-
  0xac, 0x8e, 0x84, 0x72, 0xd2, 0x8d, 0x2b, 0x23, 0x92, 0x88, 0x16, 0x5c,
-
  0xfd, 0xaa, 0x2b, 0x72, 0x4d, 0x45, 0x5e, 0x42, 0xf5, 0x6e, 0x32, 0xd7,
-
  0x80, 0x3d, 0x78, 0xe0, 0xbd, 0x37, 0xfc, 0x97, 0x04, 0x07, 0xb7, 0xf7,
-
  0xc6, 0xff, 0xd0, 0x72, 0xb4, 0x78, 0x37, 0xa4, 0xbd, 0xb3, 0x2c, 0x63,
-
  0x09, 0xb7, 0xe7, 0xdf, 0xed, 0xdb, 0x26, 0x4f, 0xea, 0x5e, 0x75, 0x35,
-
  0x4c, 0x9e, 0xa2, 0x86, 0x80, 0xdc, 0xd4, 0xef, 0xed, 0xd9, 0x56, 0x72,
-
  0x34, 0x0b, 0x52, 0xb1, 0x3e, 0xcb, 0x0c, 0x8d, 0xdd, 0x06, 0x14, 0x2f,
-
  0x22, 0xaf, 0x62, 0x04, 0x6d, 0x2e, 0x36, 0x0c, 0x14, 0x52, 0xa8, 0x21,
-
  0xf2, 0xde, 0x93, 0xf9, 0x41, 0xde, 0x86, 0xab, 0x68, 0x28, 0x2f, 0x75,
-
  0x85, 0xa7, 0xb0, 0xad, 0x9e, 0x56, 0x21, 0x39, 0x24, 0x8e, 0x80, 0x47,
-
  0x5d, 0xa5, 0x6e, 0x59, 0x49, 0xd5, 0x73, 0x79, 0x11, 0xb9, 0x11, 0x58,
-
  0x3b, 0x74, 0x1f, 0x8c, 0x4c, 0xd3, 0xb3, 0xa1, 0x30, 0x67, 0x65, 0xbe,
-
  0x70, 0x89, 0xfa, 0xdc, 0x00, 0xee, 0x68, 0x6e, 0x68, 0x5a, 0x8c, 0x28,
-
  0x0c, 0x50, 0x57, 0xfc, 0xcc, 0xa2, 0x7f, 0x3a, 0x9d, 0x24, 0xb4, 0xb0,
-
  0x89, 0xb1, 0x54, 0x18, 0xd3, 0x33, 0xbb, 0xa8, 0x2f, 0xb7, 0x78, 0x4e,
-
  0x14, 0xf6, 0xa2, 0xc6, 0x3d, 0xe8, 0xd9, 0xfc, 0x9f, 0xdc, 0x30, 0xba,
-
  0xc6, 0x68, 0xc3, 0x7e, 0x5b, 0x54, 0x35, 0xc5, 0x30, 0xca, 0xd2, 0xc9,
-
  0x68, 0x67, 0xc0, 0x76, 0xa7, 0x45, 0x79, 0xa3, 0x3d, 0xd3, 0xfa, 0xc1,
-
  0x1c, 0x84, 0xdd, 0x0b, 0x25, 0x34, 0x69, 0x86, 0x5a, 0x64, 0xf3, 0x48,
-
  0xf0, 0xe4, 0xb1, 0xc5, 0x6f, 0x32, 0x91, 0xb5, 0x91, 0xa9, 0x57, 0x64,
-
  0x4a, 0x0f, 0x54, 0xc6, 0x01, 0x87, 0xd2, 0x2c, 0xc9, 0x32, 0x3c, 0xe8,
-
  0xbe, 0xdb, 0x79, 0x75, 0x39, 0xc9, 0x49, 0x6c, 0xf6, 0xcf, 0x71, 0xae,
-
  0xde, 0x1c, 0x7c, 0x3b, 0xa1, 0x4a, 0xab, 0xf0, 0x7f, 0x0c, 0x5d, 0xba,
-
  0x85, 0x30, 0x0f, 0xd5, 0x97, 0xf6, 0x65, 0xff, 0xf1, 0xc3, 0xfe, 0x6e,
-
  0xdf, 0x53, 0x2a, 0xf0, 0xc9, 0x62, 0x72, 0xa5, 0x5c, 0x4a, 0x82, 0x44,
-
  0x7b, 0x75, 0x11, 0xc8, 0x76, 0x76, 0x93, 0x2e, 0x40, 0x11, 0xf3, 0x7c,
-
  0xe8, 0x45, 0x7e, 0x81, 0x5e, 0x49, 0x12, 0x1a, 0x17, 0x18, 0x99, 0x5c,
-
  0xe7, 0x12, 0xc7, 0xc9, 0x6e, 0x74, 0xfc, 0xb4, 0x40, 0xd5, 0x05, 0x1d,
-
  0x9a, 0xc0, 0xd7, 0xc9, 0xd6, 0x24, 0x62, 0x85, 0x52, 0x06, 0x9d, 0xcc,
-
  0x21, 0x35, 0x33, 0xcb, 0x44, 0xb3, 0x44, 0x2f, 0x45, 0x82, 0xa1, 0x7e,
-
  0x70, 0x39, 0xa7, 0xf9, 0x94, 0xc8, 0x5b, 0xec, 0x7e, 0x1a, 0x9c, 0x5a,
-
  0x71, 0xc0, 0x29, 0xe8, 0x26, 0xdc, 0x10, 0xdf, 0x9c, 0x1c, 0x41, 0x8b,
-
  0xa4, 0x2c, 0xba, 0xbb, 0x04, 0x94, 0x5e, 0x66, 0xc3, 0xf7, 0x41, 0xbd,
-
  0x50, 0x5d, 0xb8, 0x77, 0x09, 0x9c, 0x86, 0xe2, 0x6b, 0xe1, 0xf3, 0x45,
-
  0xc5, 0x0d, 0xcd, 0x8b, 0xaa, 0xca, 0x31, 0x46, 0x2b, 0x9f, 0x81, 0x06,
-
  0xa5, 0xd6, 0xbf, 0x0f, 0x70, 0x16, 0x94, 0x53, 0x26, 0xc0, 0x74, 0x67,
-
  0x23, 0xe0, 0xea, 0xf9, 0x5c, 0x46, 0x13, 0xa8, 0x89, 0xa5, 0xc6, 0x07,
-
  0xea, 0x4c, 0x14, 0x7d, 0xb9, 0x12, 0x93, 0x70, 0x1a, 0xf4, 0xb5, 0xd6,
-
  0xf5, 0xea, 0x8a, 0x2e, 0x66, 0x01, 0x27, 0xd4, 0xd0, 0xa8, 0xd0, 0x98,
-
  0xaa, 0x41, 0x5a, 0xe5, 0x43, 0xbc, 0x51, 0x46, 0x39, 0xe8, 0x74, 0x35,
-
  0xfe, 0x36, 0xab, 0x27, 0xd3, 0xae, 0xec, 0xda, 0x2c, 0xbb, 0x28, 0x6a,
-
  0xbc, 0x19, 0x95, 0xda, 0xd9, 0x5b, 0x60, 0x7b, 0xa7, 0x76, 0xee, 0x48,
-
  0x42, 0x17, 0xfb, 0x0f, 0xf6, 0x22, 0x66, 0x40, 0x89, 0x26, 0x26, 0x5b,
-
  0x63, 0x57, 0x78, 0x6a, 0x8e, 0xa2, 0x29, 0x1c, 0x6c, 0x54, 0x1e, 0x4c,
-
  0x2d, 0x62, 0x81, 0x9d, 0xf5, 0x15, 0x76, 0x2f, 0xd7, 0xd7, 0xb9, 0xdc,
-
  0x74, 0x1c, 0xa8, 0xce, 0x3e, 0xc2, 0x09, 0x06, 0x35, 0xc8, 0x7e, 0xe3,
-
  0x31, 0x45, 0xf5, 0x46, 0xc3, 0x6c, 0xca, 0x0c, 0xe4, 0x83, 0x11, 0x6b,
-
  0x4e, 0xe4, 0x66, 0x22, 0x2b, 0x8b, 0xdc, 0x0e, 0x69, 0x89, 0xd6, 0x20,
-
  0xf2, 0x53, 0x05, 0x13, 0xbf, 0xec, 0x37, 0x8e, 0x91, 0x87, 0x48, 0xef,
-
  0x89, 0x51, 0x24, 0xd8, 0x42, 0xc6, 0x92, 0x03, 0x20, 0x0b, 0x41, 0x1c,
-
  0x0b, 0xb8, 0x1e, 0x46, 0x00, 0xc9, 0x6a, 0x2e, 0x98, 0xa5, 0x72, 0x44,
-
  0x6a, 0xbc, 0x50, 0x21, 0x06, 0x9b, 0x0e, 0x24, 0xf2, 0x33, 0x6e, 0x08,
-
  0x9d, 0x97, 0x44, 0x0b, 0xd9, 0x78, 0x0c, 0x07, 0xe4, 0x8e, 0x2b, 0x44,
-
  0x5a, 0xe3, 0xae, 0x60, 0x8f, 0x0f, 0xe6, 0xd7, 0xa3, 0xf5, 0x2e, 0x0e,
-
  0xb8, 0xd2, 0x3e, 0xdc, 0x68, 0x03, 0x5d, 0xdd, 0x7a, 0xd9, 0x67, 0xde,
-
  0x7d, 0x3d, 0x99, 0x29, 0x7e, 0x9d, 0xce, 0xd1, 0xd3, 0x24, 0x87, 0x13,
-
  0x8d, 0x44, 0x68, 0x61, 0xdf, 0xd2, 0x00, 0xc6, 0x4c, 0x23, 0xd6, 0x65,
-
  0x99, 0xba, 0x49, 0xc4, 0x05, 0x91, 0x8b, 0x56, 0xe2, 0x37, 0xf2, 0x0d,
-
  0xa9, 0x95, 0x08, 0x2e, 0x6d, 0xb8, 0xfb, 0x38, 0x88, 0xc1, 0x51, 0x35,
-
  0x5a, 0x7a, 0x35, 0x50, 0x58, 0x2d, 0x1f, 0xee, 0xfc, 0xd2, 0x0b, 0x4a,
-
  0xc1, 0x3e, 0xb0, 0xac, 0xab, 0x26, 0xc4, 0x21, 0xeb, 0xb7, 0x2c, 0x79,
-
  0x58, 0x6c, 0x03, 0x7c, 0x31, 0x9e, 0xa4, 0x17, 0x24, 0x8d, 0x5e, 0xcc,
-
  0x0a, 0x49, 0x0f, 0x51, 0x69, 0x03, 0xae, 0x09, 0x72, 0x1e, 0xb0, 0xb9,
-
  0x1b, 0x84, 0x60, 0xb6, 0x97, 0xe0, 0x18, 0x4e, 0x60, 0xe4, 0x67, 0x67,
-
  0x2f, 0xb7, 0xfa, 0xf1, 0x96, 0xd2, 0x84, 0x82, 0x53, 0x5c, 0xa6, 0x46,
-
  0xfb, 0x8a, 0xd7, 0x54, 0x73, 0x47, 0x93, 0xe7, 0x62, 0x96, 0xca, 0x55,
-
  0x59, 0x10, 0x72, 0x01, 0xd5, 0x86, 0xdb, 0xba, 0x7d, 0xd3, 0x79, 0x85,
-
  0x7b, 0xb4, 0x5a, 0xec, 0xaa, 0xb5, 0x31, 0x8c, 0x97, 0xc2, 0x4e, 0x97,
-
  0x37, 0x9e, 0x02, 0x5f, 0x03, 0x17, 0x86, 0xc5, 0x5d, 0x80, 0xe4, 0xe9,
-
  0xa4, 0x87, 0xeb, 0xaa, 0x57, 0xe5, 0x17, 0x57, 0x0f, 0x41, 0xa2, 0x62,
-
  0xb1, 0xa7, 0xdc, 0xfd, 0xdb, 0xc1, 0xbc, 0xbc, 0x1a, 0x95, 0x7b, 0x7f,
-
  0x3b, 0x28, 0xb3, 0x8b, 0xbf, 0x1d, 0x54, 0xe5, 0xd5, 0x2f, 0xbf, 0xfc,
-
  0x12, 0x4b, 0x8c, 0x70, 0x00, 0x92, 0xc3, 0x9f, 0xce, 0x92, 0x1f, 0x1f,
-
  0x52, 0x8c, 0x3b, 0xe5, 0xd0, 0x34, 0x79, 0x90, 0xc4, 0xf0, 0xe9, 0xad,
-
  0xaf, 0xd3, 0x14, 0x7b, 0x38, 0x75, 0xe5, 0xf4, 0x08, 0x8a, 0x43, 0xd7,
-
  0x18, 0x20, 0xd3, 0x53, 0x88, 0xd6, 0x06, 0x37, 0x2a, 0xbd, 0x5c, 0x14,
-
  0x40, 0x1f, 0x97, 0x53, 0x6e, 0x88, 0xce, 0x31, 0xed, 0x39, 0x99, 0xf5,
-
  0x17, 0xf5, 0x05, 0x71, 0xeb, 0xc6, 0x28, 0x84, 0x27, 0xfb, 0xde, 0x61,
-
  0x56, 0xa4, 0xce, 0x6a, 0xdf, 0x64, 0x6a, 0xd0, 0xbe, 0x99, 0x6c, 0x82,
-
  0x18, 0x94, 0x82, 0x6c, 0x03, 0x62, 0x7f, 0x3a, 0x07, 0x4e, 0x4a, 0x9a,
-
  0x46, 0xca, 0x0d, 0x51, 0x20, 0x0e, 0xde, 0x72, 0x8b, 0x72, 0x48, 0x06,
-
  0x41, 0xd0, 0x4d, 0x24, 0x9b, 0x61, 0x93, 0x3b, 0xe8, 0x61, 0xc0, 0xcc,
-
  0x96, 0x8c, 0x53, 0x2e, 0x8a, 0x0b, 0x1f, 0x93, 0x29, 0x0d, 0x4d, 0xf3,
-
  0xba, 0xd6, 0x88, 0x5f, 0x51, 0xba, 0xa8, 0x7b, 0x3f, 0x64, 0xa2, 0x4f,
-
  0xe2, 0x85, 0x7e, 0xc1, 0xc8, 0xb4, 0xe2, 0x97, 0x4c, 0xc7, 0xcd, 0xb2,
-
  0x4e, 0x62, 0x11, 0x51, 0x72, 0x15, 0xa9, 0x25, 0x09, 0xc3, 0x1c, 0x51,
-
  0x3c, 0x9b, 0x14, 0x0b, 0xa0, 0xe4, 0x4d, 0x69, 0x3b, 0x1a, 0xaf, 0x68,
-
  0xea, 0xd2, 0xeb, 0x6d, 0x43, 0x36, 0xdd, 0x8f, 0x07, 0x9d, 0x88, 0x70,
-
  0x6d, 0x74, 0x15, 0x89, 0xd4, 0x26, 0x4e, 0xbb, 0x63, 0xf3, 0x3b, 0x64,
-
  0x6a, 0xeb, 0xa4, 0x03, 0xbf, 0x1e, 0xa4, 0xd3, 0x7f, 0x1c, 0x2c, 0x2a,
-
  0x50, 0xfa, 0xaa, 0xba, 0xb7, 0x77, 0x90, 0x55, 0x1d, 0xe5, 0x94, 0x9d,
-
  0xf7, 0xd9, 0xcd, 0x01, 0x07, 0x1a, 0x75, 0x92, 0x9f, 0xbf, 0x78, 0x00,
-
  0x8d, 0xac, 0x25, 0xd5, 0x7c, 0xf9, 0x08, 0xad, 0xbb, 0xee, 0x34, 0x79,
-
  0xae, 0x49, 0xec, 0x5e, 0x8f, 0x11, 0x7d, 0xb1, 0x74, 0x42, 0xc8, 0x05,
-
  0x90, 0x7c, 0xcf, 0x2f, 0xc5, 0x64, 0xa9, 0x99, 0x0a, 0x44, 0x15, 0xc4,
-
  0xdf, 0x30, 0x43, 0x4a, 0xe2, 0xac, 0xe5, 0x6e, 0x63, 0x99, 0x27, 0x67,
-
  0x1b, 0x84, 0x06, 0x54, 0xb2, 0x9f, 0xbf, 0x21, 0x72, 0x2e, 0xc8, 0xf7,
-
  0x45, 0x1b, 0x80, 0x31, 0x2f, 0xc0, 0x8f, 0x39, 0xf8, 0x85, 0x1b, 0x32,
-
  0xeb, 0x4b, 0xce, 0x0e, 0x16, 0xe2, 0xb4, 0xa5, 0x64, 0x96, 0xa1, 0xaa,
-
  0x75, 0x95, 0x17, 0x8b, 0x6a, 0x72, 0x23, 0x41, 0x87, 0x62, 0x98, 0x61,
-
  0x82, 0x22, 0x1b, 0x48, 0x22, 0x34, 0x1f, 0x52, 0x2a, 0x9a, 0xb3, 0x91,
-
  0xb1, 0x02, 0x2d, 0x2d, 0xd0, 0x90, 0x85, 0xe2, 0xba, 0xca, 0x12, 0x4e,
-
  0xbc, 0x20, 0x47, 0x27, 0x2f, 0x98, 0xc9, 0x16, 0x5b, 0x6b, 0xdc, 0xa9,
-
  0x9e, 0xff, 0xf2, 0x16, 0x34, 0x2e, 0x54, 0xd2, 0x0f, 0x66, 0x85, 0xea,
-
  0x2b, 0x6b, 0x5e, 0xa8, 0x0b, 0x22, 0xeb, 0x83, 0x79, 0x5a, 0x55, 0x18,
-
  0x3f, 0x63, 0x8d, 0x7f, 0xc4, 0x8d, 0x4a, 0x2f, 0x18, 0x15, 0x0c, 0xd3,
-
  0x1e, 0x87, 0xb5, 0x08, 0x25, 0x9c, 0xbf, 0x3a, 0x63, 0x42, 0xc0, 0x0d,
-
  0x7c, 0x76, 0x08, 0x67, 0x95, 0x22, 0x33, 0xed, 0xa4, 0x4b, 0x0c, 0x8c,
-
  0x08, 0x19, 0xe8, 0xd8, 0xb9, 0x81, 0xdb, 0x70, 0x4a, 0x7b, 0x04, 0x5b,
-
  0x04, 0x2a, 0x4d, 0x50, 0x0e, 0xe6, 0x19, 0xae, 0xc4, 0xf7, 0xce, 0xd9,
-
  0x46, 0x93, 0x08, 0x4e, 0x2e, 0x58, 0x2a, 0x64, 0xa1, 0xd6, 0x4d, 0x38,
-
  0x72, 0x78, 0x55, 0x9b, 0xdc, 0x75, 0x31, 0x61, 0x45, 0x83, 0x62, 0xa5,
-
  0x34, 0xfc, 0xc2, 0x05, 0xf0, 0xa8, 0x26, 0xef, 0x28, 0xac, 0x16, 0xff,
-
  0xf2, 0x18, 0x53, 0x75, 0xc2, 0x88, 0x9a, 0xc3, 0xde, 0x80, 0x37, 0xae,
-
  0x67, 0x70, 0x7e, 0x61, 0x74, 0x81, 0x77, 0x85, 0x76, 0xd8, 0x9f, 0x4b,
-
  0x3a, 0x0c, 0x0f, 0x7d, 0x16, 0xe2, 0x82, 0xa8, 0x6b, 0x8c, 0x68, 0x21,
-
  0x6b, 0x28, 0x11, 0x2b, 0x5f, 0xbf, 0xaf, 0x44, 0x62, 0xbc, 0x2e, 0x26,
-
  0x63, 0xf8, 0x6b, 0x29, 0x8e, 0x9f, 0x4c, 0xef, 0x3f, 0xcc, 0x16, 0x18,
-
  0x76, 0xe1, 0xbf, 0x7b, 0x44, 0x31, 0xfe, 0x24, 0xaf, 0xb0, 0x20, 0xa2,
-
  0x4c, 0x50, 0xbb, 0x44, 0x3f, 0x84, 0xef, 0xef, 0x0c, 0x3d, 0x1b, 0x33,
-
  0x34, 0xf4, 0xb0, 0xc8, 0xc0, 0x79, 0xa1, 0x09, 0x27, 0xae, 0x4d, 0x28,
-
  0x0b, 0x50, 0xa3, 0x1f, 0x6c, 0x09, 0x24, 0x5b, 0x8d, 0x56, 0xde, 0xed,
-
  0xa7, 0x6e, 0x41, 0x4c, 0xb8, 0x46, 0x1c, 0xf7, 0x23, 0x3b, 0x58, 0x73,
-
  0xb7, 0xb3, 0xc8, 0xd0, 0xeb, 0x1a, 0x1c, 0xef, 0x49, 0x9f, 0xdc, 0x59,
-
  0x9e, 0xcc, 0x41, 0xef, 0xcd, 0x4a, 0xb6, 0x5a, 0x0d, 0x53, 0x34, 0x54,
-
  0x90, 0xba, 0xb0, 0x98, 0xce, 0xb1, 0xe5, 0x6c, 0x3a, 0x90, 0x75, 0xd1,
-
  0x63, 0x8d, 0x59, 0x01, 0xa8, 0x7c, 0xb9, 0x23, 0x81, 0xef, 0xb3, 0x71,
-
  0xe2, 0xdb, 0xb6, 0x63, 0xe1, 0xb2, 0x2c, 0xf1, 0x49, 0x54, 0x66, 0xd0,
-
  0xca, 0x4a, 0x24, 0x1a, 0xce, 0x81, 0x3b, 0x02, 0xe4, 0x08, 0x17, 0x1d,
-
  0x0d, 0x9e, 0x41, 0x0d, 0x02, 0x05, 0x1b, 0x5c, 0x1d, 0xe3, 0x0a, 0xb0,
-
  0x03, 0xae, 0x31, 0xca, 0x40, 0xcc, 0xfc, 0x27, 0x9b, 0xd5, 0x16, 0xeb,
-
  0x0e, 0xdc, 0xd0, 0x80, 0x34, 0xfb, 0xd3, 0xa3, 0xd7, 0x09, 0xbb, 0xc6,
-
  0x50, 0x82, 0x94, 0x78, 0x02, 0x0d, 0xaa, 0x8c, 0x68, 0x25, 0x84, 0xb7,
-
  0xf3, 0x18, 0xc6, 0xca, 0xd7, 0x90, 0x74, 0xc8, 0x0b, 0xde, 0xe0, 0xd0,
-
  0xf5, 0xcd, 0x9c, 0x75, 0x56, 0x8b, 0xb0, 0x01, 0x2d, 0x9b, 0x4c, 0x59,
-
  0x18, 0x05, 0x2a, 0x6d, 0x61, 0x53, 0xba, 0x99, 0x9c, 0x88, 0x08, 0x6a,
-
  0xd5, 0xc5, 0x2c, 0xff, 0x87, 0x50, 0x57, 0x6b, 0x4c, 0x3b, 0x72, 0xb0,
-
  0x51, 0xb2, 0xf1, 0xec, 0xdd, 0xdb, 0x57, 0xbf, 0x3e, 0x3b, 0xfc, 0xf5,
-
  0xfb, 0x77, 0x6f, 0x9e, 0xbf, 0x3a, 0xda, 0xa0, 0x4c, 0x10, 0xd6, 0x1a,
-
  0x49, 0xbc, 0x41, 0xc6, 0x2e, 0x01, 0x62, 0x14, 0xa0, 0x44, 0x19, 0x13,
-
  0x28, 0x42, 0x8a, 0x06, 0x17, 0x88, 0x5f, 0x54, 0x6a, 0x71, 0xab, 0x53,
-
  0x24, 0xa9, 0x08, 0x0f, 0x68, 0xa4, 0x62, 0x0b, 0x2e, 0xfd, 0xca, 0x12,
-
  0x06, 0x2c, 0x34, 0xad, 0x2b, 0xac, 0x0f, 0x9a, 0x4a, 0x34, 0x95, 0x44,
-
  0x66, 0xae, 0xf7, 0x4c, 0x25, 0xf9, 0x04, 0x0f, 0xa2, 0xe4, 0x0f, 0x99,
-
  0xea, 0xa6, 0x9c, 0xc8, 0x2d, 0xd5, 0x18, 0xbc, 0x8e, 0x9f, 0x50, 0x60,
-
  0x98, 0x44, 0x9c, 0x42, 0xd7, 0xda, 0x5f, 0x25, 0x2b, 0xcf, 0xf3, 0xe7,
-
  0x86, 0x36, 0xf0, 0x7d, 0x24, 0x4b, 0x19, 0xcb, 0xb0, 0xac, 0x37, 0xba,
-
  0x9a, 0xa5, 0xa1, 0x39, 0xbd, 0x94, 0x97, 0x62, 0x51, 0x67, 0x29, 0xab,
-
  0x29, 0xfd, 0xec, 0x43, 0xe6, 0x6e, 0x27, 0x4d, 0x3e, 0x79, 0xb6, 0x28,
-
  0xe9, 0xb2, 0xfb, 0x09, 0x18, 0x17, 0xc9, 0x58, 0xcf, 0x03, 0xbf, 0xa4,
-
  0xac, 0x4a, 0x8a, 0x60, 0xb8, 0x41, 0xb3, 0x34, 0xa5, 0xed, 0xa6, 0xec,
-
  0x8c, 0x42, 0x1f, 0x35, 0x37, 0x74, 0x7a, 0x78, 0xfe, 0x32, 0xda, 0xd1,
-
  0x27, 0xfd, 0x5d, 0x8c, 0x84, 0x92, 0x28, 0x64, 0x9c, 0x10, 0x45, 0xf1,
-
  0x91, 0x65, 0x37, 0x5c, 0xbc, 0xce, 0x97, 0x2d, 0x5e, 0xce, 0x2a, 0xc3,
-
  0xdc, 0x38, 0x25, 0xd6, 0xcb, 0x14, 0x2e, 0x6c, 0xb4, 0x2d, 0x93, 0x62,
-
  0x0c, 0x3f, 0x25, 0x0d, 0x4b, 0x1b, 0xa0, 0x16, 0x50, 0x36, 0x05, 0xd1,
-
  0x70, 0x58, 0xeb, 0xdb, 0xfa, 0xb9, 0xd9, 0x4a, 0x30, 0x08, 0x40, 0x2e,
-
  0x70, 0x60, 0xdd, 0xb6, 0x28, 0xb6, 0x2f, 0xf9, 0x09, 0x27, 0xda, 0x4f,
-
  0xd3, 0x21, 0xfc, 0x46, 0xac, 0x6e, 0x8b, 0xf4, 0xea, 0xf8, 0x4c, 0x30,
-
  0x67, 0x02, 0xe1, 0xed, 0x8c, 0xcd, 0x2e, 0x1c, 0x95, 0x89, 0xb6, 0x95,
-
  0xae, 0x63, 0x94, 0xb5, 0xa7, 0x0b, 0x12, 0x09, 0x43, 0x74, 0xdc, 0x98,
-
  0xc3, 0xfc, 0x87, 0xef, 0xaf, 0xd3, 0x72, 0xc4, 0x56, 0x43, 0x18, 0xd5,
-
  0x20, 0x9f, 0xe4, 0xb5, 0xba, 0xeb, 0x59, 0xec, 0xa4, 0x69, 0xe2, 0x2d,
-
  0x90, 0xcd, 0x2e, 0xf2, 0x19, 0x4a, 0x8e, 0x78, 0x6d, 0xe5, 0x91, 0xf5,
-
  0x57, 0x12, 0x6d, 0x4c, 0x7b, 0x74, 0xb6, 0x14, 0xb3, 0x0d, 0x53, 0xf2,
-
  0x09, 0x67, 0xbe, 0x33, 0xcd, 0x11, 0xc5, 0x8b, 0x75, 0xc1, 0xf1, 0x0d,
-
  0xda, 0x61, 0x16, 0x84, 0xf9, 0x62, 0xe6, 0x15, 0x47, 0xa1, 0x84, 0x1b,
-
  0xfa, 0x53, 0x76, 0x03, 0x27, 0x07, 0xe9, 0x25, 0xe6, 0x54, 0xc4, 0xaa,
-
  0xba, 0xe2, 0x58, 0xe7, 0x98, 0xfa, 0xcb, 0x4c, 0x02, 0x21, 0x48, 0x01,
-
  0x55, 0x79, 0x49, 0xed, 0xe7, 0xfc, 0xae, 0xda, 0xd0, 0xf1, 0x6d, 0xd8,
-
  0x12, 0xcf, 0x0f, 0xa9, 0x1b, 0xdb, 0x1a, 0x3d, 0xaf, 0xb2, 0x29, 0x0d,
-
  0xa3, 0x51, 0xbc, 0xb2, 0xf6, 0x6c, 0xee, 0xee, 0xdb, 0x2f, 0x65, 0x45,
-
  0x4b, 0x89, 0x56, 0x08, 0x57, 0xe7, 0x97, 0xfd, 0xc7, 0x3b, 0x74, 0x77,
-
  0xde, 0xde, 0xaa, 0xed, 0x97, 0x50, 0x77, 0xb4, 0x67, 0xec, 0x01, 0x6e,
-
  0xee, 0xd6, 0xd7, 0xa6, 0xec, 0x33, 0x53, 0xf2, 0x56, 0x23, 0x8c, 0x83,
-
  0x51, 0xf3, 0xa5, 0xdd, 0xd1, 0x1b, 0x89, 0x4a, 0x4c, 0xe4, 0x56, 0x2a,
-
  0x0b, 0xb4, 0x35, 0x45, 0xfb, 0x03, 0x4b, 0x41, 0xcb, 0x6d, 0xec, 0x38,
-
  0xb0, 0x62, 0x9d, 0xf6, 0x16, 0xdb, 0x82, 0xec, 0x26, 0x8a, 0xb4, 0x11,
-
  0xb5, 0x93, 0x7a, 0x45, 0x84, 0x35, 0x11, 0xa4, 0x11, 0xe5, 0x57, 0x6b,
-
  0xeb, 0x23, 0xd2, 0xc5, 0xb3, 0x43, 0x52, 0xd7, 0xef, 0xb0, 0x9e, 0x46,
-
  0x97, 0x6c, 0xfb, 0xcd, 0xca, 0x8a, 0x46, 0xcb, 0x9d, 0x4a, 0x1c, 0xf8,
-
  0x29, 0x1c, 0xd9, 0x3b, 0xae, 0x54, 0x4f, 0x41, 0x8e, 0xed, 0x01, 0xb5,
-
  0x36, 0x89, 0xb5, 0xcf, 0x0d, 0xbd, 0xd6, 0x1b, 0x14, 0x7b, 0x30, 0xdf,
-
  0xb5, 0x57, 0x1c, 0x43, 0xb6, 0x0c, 0xed, 0x32, 0xa7, 0xd0, 0x6c, 0x76,
-
  0x0e, 0x3a, 0x70, 0xa3, 0x6e, 0x66, 0xfd, 0x0b, 0x69, 0xa8, 0x83, 0x0d,
-
  0xec, 0x1e, 0xe0, 0xcf, 0x3d, 0xfa, 0xb9, 0xdf, 0xd9, 0x5a, 0xba, 0x86,
-
  0x2b, 0xb6, 0xdf, 0x2d, 0xdd, 0xbf, 0x5d, 0x27, 0x53, 0xe4, 0xe3, 0x80,
-
  0xef, 0xd1, 0x60, 0x38, 0x2a, 0x21, 0xf2, 0xe9, 0x0a, 0xd3, 0xe3, 0x56,
-
  0xc9, 0x01, 0xe4, 0x9c, 0x06, 0x30, 0x09, 0x8c, 0x62, 0xcf, 0x46, 0xce,
-
  0x59, 0x35, 0xfc, 0xb5, 0x04, 0x6e, 0x5a, 0x01, 0x6f, 0x5c, 0xd4, 0x4c,
-
  0xba, 0x48, 0xe5, 0x24, 0xed, 0xd1, 0xec, 0xa4, 0x87, 0xbe, 0x98, 0x3e,
-
  0x55, 0xca, 0x91, 0x0d, 0x20, 0xbb, 0x7b, 0x8a, 0x2e, 0x49, 0x7d, 0xb0,
-
  0x67, 0x00, 0x24, 0x34, 0x66, 0xe4, 0x0a, 0xe4, 0x52, 0xc0, 0x63, 0xd0,
-
  0x73, 0x00, 0x0d, 0x6a, 0xbc, 0x04, 0xe6, 0xc0, 0xc9, 0x5a, 0x20, 0xf0,
-
  0xe5, 0x43, 0x34, 0x6b, 0xa2, 0x4f, 0xf6, 0x92, 0x93, 0xa9, 0x55, 0x6c,
-
  0x24, 0x9a, 0xb2, 0xcc, 0xca, 0xf0, 0x49, 0xb0, 0x87, 0x89, 0xfc, 0x53,
-
  0x31, 0x84, 0x43, 0x53, 0xf8, 0x69, 0xb8, 0x2a, 0xfc, 0x91, 0x46, 0x3e,
-
  0x18, 0x69, 0x97, 0x89, 0x4c, 0x4d, 0x73, 0x10, 0xcd, 0x66, 0x46, 0x7a,
-
  0x7d, 0x63, 0xfe, 0x14, 0x65, 0xd2, 0x38, 0x49, 0xbf, 0x53, 0xa3, 0x97,
-
  0x96, 0xb7, 0xc9, 0xd2, 0xb5, 0x1d, 0xb6, 0x74, 0xcd, 0x63, 0xc4, 0xb2,
-
  0xea, 0x7a, 0xc7, 0xe8, 0x08, 0x1f, 0x64, 0xe1, 0xd4, 0x2d, 0xd7, 0xdf,
-
  0x4c, 0x1d, 0xfc, 0x65, 0xe9, 0x6c, 0x2d, 0xc9, 0xab, 0x64, 0x88, 0x8e,
-
  0x0f, 0x19, 0x49, 0x25, 0x6c, 0x41, 0x09, 0x81, 0xdb, 0x4e, 0x5c, 0x15,
-
  0x87, 0xa6, 0x80, 0xe8, 0x50, 0x92, 0xc3, 0x19, 0xc7, 0x0f, 0xd9, 0x35,
-
  0x4e, 0xc4, 0x42, 0x21, 0x9c, 0x21, 0x0c, 0xbf, 0x9f, 0x38, 0xb9, 0xd7,
-
  0x77, 0xa8, 0x06, 0x70, 0x3a, 0x40, 0x7f, 0x7a, 0x76, 0xf6, 0x87, 0xdd,
-
  0x3d, 0x39, 0x44, 0x44, 0x32, 0x4c, 0x45, 0xab, 0x6e, 0x66, 0x0c, 0x4c,
-
  0xb4, 0x43, 0x17, 0x1e, 0x67, 0x28, 0x12, 0x1a, 0x0c, 0xb3, 0xee, 0xc6,
-
  0x65, 0x8a, 0x0c, 0x53, 0x57, 0x49, 0x0e, 0xa9, 0x86, 0x24, 0xe9, 0xe2,
-
  0x68, 0x14, 0x52, 0xf2, 0xf7, 0x05, 0xa2, 0x24, 0xc8, 0x9d, 0xa1, 0xe0,
-
  0x2c, 0x16, 0x27, 0xc8, 0x96, 0x5a, 0x27, 0x1c, 0x7a, 0xb9, 0x59, 0x11,
-
  0x2a, 0xd2, 0x16, 0xc5, 0x40, 0xec, 0x83, 0x7c, 0xab, 0xe6, 0x57, 0xb4,
-
  0xf4, 0xef, 0x11, 0xe3, 0xc5, 0x6c, 0xcd, 0x78, 0xba, 0x79, 0x7f, 0xe2,
-
  0x0d, 0x82, 0xb3, 0x82, 0xbf, 0xcc, 0xd8, 0x52, 0x4c, 0xe4, 0xa3, 0x74,
-
  0xc0, 0xb7, 0x7b, 0xaf, 0x87, 0x0d, 0xd9, 0x85, 0xa4, 0x21, 0x37, 0x94,
-
  0x87, 0x03, 0xf7, 0x92, 0xa2, 0xfb, 0x4c, 0x82, 0x0f, 0x90, 0x67, 0xe5,
-
  0xa9, 0xe8, 0xdb, 0x84, 0xb2, 0x87, 0x39, 0xd6, 0x84, 0x41, 0x18, 0x0c,
-
  0x7d, 0x03, 0xad, 0x31, 0xb4, 0x6b, 0x8c, 0x17, 0xe2, 0x04, 0x32, 0x73,
-
  0x50, 0x27, 0xc0, 0x4e, 0x51, 0x36, 0xed, 0xfc, 0x0c, 0xff, 0x92, 0x36,
-
  0xc1, 0x11, 0xd1, 0xb2, 0xcc, 0xa6, 0x17, 0x50, 0x28, 0x97, 0x78, 0xd4,
-
  0xfd, 0x76, 0x8c, 0xb2, 0x49, 0x3e, 0xcd, 0xc9, 0xd3, 0x7d, 0xa6, 0xc9,
-
  0x5c, 0xdc, 0x71, 0xd4, 0x33, 0x5f, 0x9d, 0x0e, 0x19, 0xc0, 0x0d, 0x41,
-
  0x44, 0xc4, 0x2a, 0xf9, 0xf9, 0xee, 0x11, 0x18, 0xf6, 0x89, 0x73, 0xb1,
-
  0x07, 0xa6, 0x13, 0x4b, 0x8b, 0x0d, 0xde, 0x8d, 0x58, 0x4b, 0x65, 0x5a,
-
  0x8a, 0x2f, 0x8f, 0xb5, 0x9c, 0x0b, 0xc6, 0x3a, 0x78, 0x3f, 0xac, 0x76,
-
  0x77, 0x4d, 0x26, 0x97, 0x3f, 0xcd, 0x70, 0x8c, 0xe6, 0xe2, 0xab, 0x14,
-
  0xa6, 0x36, 0x40, 0x27, 0x34, 0xc9, 0x72, 0xa9, 0x1c, 0x80, 0xdd, 0xe4,
-
  0xdd, 0xdb, 0xe3, 0x64, 0x13, 0x31, 0x95, 0xbe, 0x7c, 0xb4, 0xbb, 0xb7,
-
  0x95, 0xc8, 0x35, 0xe6, 0xfc, 0xa3, 0x94, 0xb5, 0xa6, 0x08, 0x26, 0x31,
-
  0x7d, 0x91, 0x91, 0xbd, 0x56, 0xb3, 0x49, 0x62, 0x6d, 0xc2, 0xa2, 0xa2,
-
  0x29, 0x14, 0x48, 0xe6, 0x50, 0x08, 0x83, 0x0d, 0xaf, 0x83, 0x0c, 0xc6,
-
  0x3b, 0x33, 0xa0, 0x02, 0xb8, 0xf8, 0x68, 0xa4, 0xb0, 0x71, 0xad, 0xe1,
-
  0x2f, 0xd6, 0x1c, 0x8c, 0xb1, 0x6f, 0x6b, 0x14, 0x0f, 0xdd, 0x33, 0xd6,
-
  0xae, 0x73, 0x7c, 0xf5, 0x7a, 0xb2, 0x38, 0x11, 0x07, 0xc7, 0x86, 0xf5,
-
  0xce, 0xa5, 0xae, 0x3b, 0x78, 0x92, 0x67, 0xe8, 0xcc, 0xbc, 0x4e, 0x1d,
-
  0x87, 0xd6, 0x05, 0x66, 0x62, 0xef, 0x81, 0x4a, 0x1a, 0x09, 0xc7, 0xa4,
-
  0x22, 0x6a, 0x43, 0x47, 0x6f, 0x7e, 0xe8, 0x30, 0x57, 0xea, 0x9c, 0xbe,
-
  0x3d, 0xf9, 0x91, 0x90, 0x05, 0x12, 0x6e, 0x93, 0x1a, 0x75, 0xc6, 0xa5,
-
  0xcd, 0x90, 0x94, 0x44, 0x49, 0x31, 0xb2, 0xb1, 0x26, 0xd6, 0x62, 0xc4,
-
  0xd5, 0xd6, 0x9d, 0xe4, 0x20, 0x16, 0x9c, 0x40, 0x0d, 0xd1, 0x82, 0x88,
-
  0x83, 0xdb, 0x39, 0x43, 0xd1, 0x81, 0x7b, 0xc7, 0xfe, 0x91, 0x76, 0xb6,
-
  0xbc, 0x7d, 0x87, 0xba, 0x73, 0xaa, 0x4d, 0x45, 0xdb, 0xb7, 0x72, 0xf7,
-
  0xa2, 0xcd, 0xa3, 0xbd, 0xfb, 0x1c, 0x5a, 0xd2, 0x92, 0x0a, 0x12, 0xec,
-
  0xfb, 0xb4, 0x06, 0x86, 0x39, 0x30, 0xd0, 0x58, 0x3a, 0x36, 0xcc, 0x23,
-
  0x97, 0xd1, 0x6b, 0xc6, 0xbd, 0xbd, 0xad, 0xbc, 0x91, 0x38, 0x9a, 0x61,
-
  0x2a, 0xb0, 0x2e, 0x83, 0xbb, 0x4b, 0xd6, 0xf1, 0xf7, 0xa2, 0xc4, 0x74,
-
  0x25, 0x8e, 0x55, 0xd9, 0x91, 0xaa, 0xf9, 0x3a, 0xef, 0x3d, 0xcd, 0x01,
-
  0x8e, 0x06, 0x88, 0x73, 0x77, 0xdd, 0x84, 0x60, 0x68, 0x8c, 0x8d, 0xb7,
-
  0xcd, 0x62, 0xab, 0x09, 0xdf, 0x80, 0x66, 0xfe, 0x1c, 0x8a, 0x7e, 0xed,
-
  0xed, 0x90, 0x70, 0xb9, 0xa7, 0x84, 0x52, 0x97, 0x0d, 0xb3, 0x51, 0x66,
-
  0x48, 0x0f, 0x42, 0x97, 0xfd, 0xed, 0x8e, 0x84, 0x06, 0x51, 0x28, 0x20,
-
  0xc3, 0x65, 0x19, 0x9a, 0x09, 0x06, 0x50, 0x2d, 0x28, 0xc2, 0x4f, 0x02,
-
  0xc8, 0x66, 0xf9, 0xf0, 0x3d, 0x2e, 0xd0, 0x2a, 0xbd, 0xe9, 0xd9, 0xf2,
-
  0x05, 0xe1, 0x44, 0x52, 0x77, 0xd3, 0x0f, 0x6e, 0xd4, 0xee, 0xa1, 0x26,
-
  0x66, 0x0c, 0xaf, 0xe5, 0x00, 0xe9, 0xa2, 0x41, 0x80, 0x62, 0xfa, 0x4b,
-
  0x36, 0x5f, 0x49, 0x62, 0xd0, 0xe9, 0x8b, 0xbf, 0x84, 0x0b, 0x52, 0x95,
-
  0xa8, 0xaf, 0x83, 0x69, 0x9e, 0xb7, 0x96, 0x01, 0x1b, 0x82, 0x8d, 0x3e,
-
  0x35, 0xe5, 0x87, 0x42, 0x11, 0xb6, 0x24, 0xdc, 0x3d, 0x20, 0xed, 0x24,
-
  0x9d, 0xa7, 0xf4, 0x00, 0x37, 0x34, 0x11, 0xc4, 0xab, 0x6f, 0x7f, 0xe6,
-
  0x4f, 0x89, 0x30, 0xe0, 0x8f, 0xfa, 0x72, 0x31, 0x1d, 0xc0, 0xfe, 0xcc,
-
  0xea, 0x6f, 0x3b, 0xec, 0x1f, 0xa7, 0xf4, 0x95, 0xa5, 0x51, 0x23, 0x34,
-
  0x95, 0x5d, 0x9c, 0xc4, 0xde, 0x44, 0xe3, 0x6d, 0x90, 0x54, 0xc5, 0x9f,
-
  0x50, 0x1f, 0x5d, 0xfe, 0x9d, 0xae, 0x76, 0x5e, 0x15, 0x89, 0xb2, 0xe5,
-
  0xcd, 0x12, 0xf3, 0x09, 0x48, 0x4e, 0xe5, 0xcf, 0xaf, 0xff, 0xfa, 0xf3,
-
  0x57, 0xfb, 0x0f, 0xd3, 0x2f, 0xd3, 0xe1, 0xe3, 0xf1, 0x93, 0xf4, 0xd1,
-
  0xe8, 0xd1, 0x97, 0x5f, 0xed, 0x3d, 0x79, 0x94, 0x7e, 0xf9, 0x70, 0x9c,
-
  0x3e, 0xde, 0xcd, 0x76, 0xbf, 0x1a, 0xef, 0xed, 0x8f, 0x46, 0xe3, 0xec,
-
  0xc9, 0xe8, 0xcb, 0xb4, 0xd3, 0x57, 0xd3, 0xb1, 0x8e, 0x5c, 0x3c, 0x81,
-
  0xec, 0xe4, 0x80, 0x75, 0x39, 0x7b, 0x79, 0xd8, 0xdb, 0x4d, 0x2e, 0xb3,
-
  0x0f, 0x76, 0x3a, 0x58, 0xcf, 0x0e, 0xab, 0x59, 0x65, 0x6e, 0x46, 0xb1,
-
  0x12, 0x24, 0x60, 0x7e, 0x20, 0x79, 0x85, 0x60, 0x42, 0x59, 0x68, 0x5d,
-
  0xc3, 0x4a, 0x22, 0x0a, 0x6d, 0xb3, 0x44, 0x48, 0x75, 0x13, 0x92, 0xa9,
-
  0xbf, 0x42, 0x31, 0xf5, 0x75, 0x8a, 0xd9, 0x59, 0xba, 0x1a, 0xf2, 0xd0,
-
  0x19, 0x7b, 0xce, 0xe4, 0x43, 0xf9, 0xab, 0xea, 0x2e, 0x35, 0xf4, 0x43,
-
  0x59, 0x2c, 0xe6, 0xa7, 0xc5, 0x24, 0x1f, 0xde, 0x74, 0x0d, 0xd2, 0xd2,
-
  0x37, 0xeb, 0x1e, 0xb0, 0xef, 0x4d, 0xca, 0xf1, 0x0f, 0x1e, 0x31, 0xb7,
-
  0xca, 0xab, 0x4c, 0xe2, 0xdb, 0x44, 0x6f, 0xa8, 0x96, 0x9d, 0x6f, 0x2a,
-
  0xa5, 0x87, 0xb3, 0xfe, 0x49, 0xb2, 0x3a, 0xb6, 0x8f, 0x3f, 0xe8, 0x58,
-
  0xb3, 0xd8, 0x04, 0xff, 0xa7, 0xbf, 0xd6, 0x93, 0xd7, 0xf5, 0x1e, 0xea,
-
  0xca, 0xdb, 0x2c, 0xa8, 0xc3, 0x6f, 0xf4, 0x69, 0xd0, 0x77, 0xf1, 0x39,
-
  0x8c, 0x21, 0xd4, 0x98, 0x1a, 0x16, 0xc9, 0x7f, 0x64, 0x15, 0x56, 0xc0,
-
  0x23, 0xf0, 0x5b, 0x8b, 0x56, 0xd7, 0xec, 0xb5, 0x68, 0xeb, 0x0d, 0xa8,
-
  0x2b, 0x4c, 0xfb, 0x99, 0xfb, 0xfe, 0x8c, 0x9b, 0x78, 0x2b, 0x81, 0x3e,
-
  0x9b, 0xe9, 0xfb, 0xb4, 0x9f, 0x9c, 0x3c, 0x3b, 0x3b, 0xc5, 0xc6, 0xe7,
-
  0x08, 0x8b, 0xb1, 0x45, 0xb6, 0xd3, 0xec, 0x03, 0x48, 0x8f, 0x15, 0xe7,
-
  0x8a, 0xb4, 0xc5, 0x80, 0xe1, 0xe2, 0x69, 0x00, 0xb5, 0x46, 0xae, 0xe8,
-
  0x78, 0x24, 0x9d, 0x2e, 0x25, 0x9c, 0xa7, 0x74, 0x92, 0x8f, 0x22, 0x9d,
-
  0x19, 0xb8, 0x0a, 0x30, 0xc2, 0xd1, 0x56, 0x88, 0x28, 0xea, 0x26, 0x02,
-
  0xc6, 0xe2, 0xa2, 0x8c, 0x90, 0x2e, 0x2f, 0xd0, 0x9f, 0x56, 0x25, 0x0e,
-
  0xbf, 0x41, 0x7a, 0x58, 0xa6, 0x78, 0xf4, 0x2b, 0xa0, 0x12, 0x0c, 0xef,
-
  0x13, 0xb2, 0x14, 0x73, 0xf9, 0x59, 0xe1, 0xda, 0xc3, 0x20, 0xe4, 0x09,
-
  0x43, 0x07, 0x28, 0xb2, 0x41, 0xb8, 0x94, 0xd8, 0x52, 0xa0, 0x8e, 0xbe,
-
  0x28, 0x0a, 0x86, 0x0c, 0x44, 0x9a, 0x23, 0x4e, 0xaf, 0x0b, 0x47, 0xd7,
-
  0x80, 0x6c, 0x72, 0x9d, 0x64, 0x28, 0xf6, 0x8a, 0x3c, 0x45, 0x23, 0x55,
-
  0xd1, 0x2f, 0x90, 0xb1, 0xdc, 0xfe, 0x62, 0x94, 0xae, 0xa2, 0x20, 0x9a,
-
  0x78, 0xff, 0x1d, 0xaa, 0x41, 0x08, 0xa5, 0x59, 0xe1, 0xfa, 0xbb, 0xd5,
-
  0x7b, 0x12, 0x9a, 0xbc, 0x9b, 0xc8, 0xb5, 0xef, 0xf5, 0xfc, 0x82, 0x20,
-
  0x4e, 0x64, 0xa3, 0xf9, 0x62, 0x80, 0x97, 0x61, 0x44, 0xc1, 0x24, 0x71,
-
  0x3d, 0xc5, 0x9f, 0x91, 0x66, 0x89, 0x38, 0x54, 0x2c, 0x8c, 0x8d, 0x2d,
-
  0x75, 0x89, 0x8f, 0xeb, 0xb2, 0x7e, 0xd9, 0x47, 0x7d, 0xad, 0x9b, 0x3c,
-
  0x47, 0x6c, 0xd6, 0x04, 0x84, 0x34, 0xd9, 0x26, 0x94, 0xd1, 0x88, 0xd6,
-
  0x4e, 0x41, 0xfb, 0x43, 0xd6, 0xe5, 0xe4, 0x73, 0x6c, 0x3a, 0x8a, 0x7e,
-
  0x50, 0x55, 0x9f, 0xfa, 0x94, 0x94, 0xf2, 0x80, 0x9b, 0xe9, 0xf6, 0x41,
-
  0x92, 0x34, 0x82, 0x7f, 0x99, 0x3a, 0x97, 0xe8, 0x5a, 0x89, 0xc5, 0x25,
-
  0x03, 0x23, 0x4b, 0x34, 0x26, 0xd0, 0x30, 0xd5, 0x07, 0xb3, 0x23, 0xf1,
-
  0x6f, 0x18, 0x59, 0x83, 0x2d, 0x89, 0x86, 0x21, 0x92, 0xfd, 0x01, 0x09,
-
  0x7a, 0x2c, 0x04, 0xc1, 0xc4, 0x48, 0x35, 0xc5, 0x59, 0xa9, 0xed, 0x34,
-
  0x1a, 0x75, 0x2c, 0x73, 0x72, 0x43, 0x4a, 0x55, 0x26, 0x72, 0x26, 0xa1,
-
  0x3b, 0x5e, 0xfa, 0xcf, 0xcc, 0x0a, 0xb9, 0x13, 0xd4, 0xa7, 0x65, 0x8e,
-
  0x1f, 0xc7, 0x08, 0xef, 0xe2, 0x81, 0xf9, 0x9c, 0x50, 0x58, 0x9f, 0x62,
-
  0x92, 0x43, 0x4c, 0x3f, 0x22, 0xa6, 0x54, 0x72, 0x0b, 0xf2, 0x93, 0x70,
-
  0x2e, 0x73, 0x81, 0x7a, 0x43, 0x61, 0x21, 0x57, 0xfc, 0x48, 0x83, 0xdc,
-
  0xe4, 0xc8, 0x5a, 0x89, 0x42, 0x53, 0x67, 0x7c, 0xc5, 0xde, 0xa1, 0xdd,
-
  0xfe, 0x5e, 0xb2, 0x49, 0xc8, 0x03, 0x98, 0xb8, 0x2d, 0x76, 0x3b, 0x4e,
-
  0xaf, 0x40, 0x49, 0x53, 0xc7, 0x22, 0x5d, 0x38, 0x47, 0x9a, 0xca, 0xe4,
-
  0xc2, 0xdb, 0xe4, 0xc1, 0x7e, 0x42, 0x88, 0x13, 0x98, 0x76, 0x89, 0x1d,
-
  0xfb, 0x01, 0xda, 0x85, 0x9c, 0x70, 0xc8, 0x81, 0x92, 0xc5, 0xbb, 0xb7,
-
  0xaf, 0x0e, 0x64, 0x9d, 0x5a, 0x93, 0xb4, 0xaa, 0x6a, 0xa2, 0x4b, 0x42,
-
  0x89, 0x5a, 0x89, 0x1a, 0x79, 0x65, 0x68, 0x44, 0x37, 0x9f, 0x27, 0x90,
-
  0x5b, 0xbb, 0x38, 0x7a, 0xf6, 0xfc, 0xe5, 0x51, 0x0f, 0x7e, 0x9e, 0x1d,
-
  0xf6, 0x0e, 0x8f, 0xce, 0x76, 0xf7, 0x9e, 0xf4, 0x7e, 0x78, 0xf6, 0xba,
-
  0x07, 0xc2, 0xc9, 0xde, 0xa3, 0xc7, 0x07, 0x1c, 0x65, 0xc2, 0xcf, 0xbc,
-
  0x6d, 0x7b, 0x62, 0x3d, 0xca, 0xa8, 0x27, 0xd5, 0xee, 0xbe, 0x76, 0xd9,
-
  0xb5, 0xb0, 0x03, 0x1d, 0x83, 0xc4, 0x75, 0x2d, 0x80, 0xf5, 0x57, 0x81,
-
  0x54, 0x8a, 0x29, 0x49, 0xa7, 0x3a, 0x6f, 0x09, 0x48, 0xd1, 0x8b, 0x4d,
-
  0xe2, 0xb2, 0xf9, 0x89, 0x70, 0x0b, 0xc8, 0xd5, 0x48, 0x99, 0xd9, 0xe3,
-
  0x46, 0xbc, 0x55, 0xe5, 0x5c, 0x58, 0x9a, 0x2f, 0xcf, 0x1a, 0x7b, 0xec,
-
  0xac, 0x43, 0xec, 0x15, 0x6e, 0xd9, 0x63, 0x0a, 0xe9, 0x72, 0xbe, 0xd5,
-
  0xae, 0x24, 0x24, 0x4b, 0xa4, 0x2c, 0x94, 0x8b, 0x35, 0xa0, 0x5b, 0x83,
-
  0x8f, 0x28, 0x24, 0x9c, 0x61, 0x6a, 0xe5, 0xfe, 0xbb, 0xa1, 0xa7, 0x45,
-
  0xb2, 0x74, 0x8a, 0x59, 0xc7, 0x0c, 0xd2, 0x28, 0x1b, 0x12, 0x97, 0x4f,
-
  0x69, 0x8e, 0xec, 0xd7, 0xa0, 0x90, 0x18, 0x7e, 0x7f, 0xca, 0x90, 0x4e,
-
  0x18, 0x3b, 0x97, 0x96, 0xa6, 0x98, 0xa0, 0x9c, 0x9f, 0xde, 0x58, 0xe0,
-
  0x57, 0x03, 0x0a, 0x69, 0xb3, 0xaa, 0xf3, 0xc9, 0x64, 0xcb, 0x2d, 0xd8,
-
  0xd7, 0x0a, 0x11, 0x91, 0xe3, 0x65, 0xa8, 0x59, 0x0b, 0x12, 0xa2, 0xae,
-
  0x78, 0x68, 0x74, 0xdf, 0x86, 0xc5, 0x08, 0x14, 0x75, 0x3c, 0x4e, 0x96,
-
  0x64, 0x05, 0x89, 0xa7, 0x34, 0x51, 0xa1, 0x21, 0x2b, 0x50, 0x8e, 0xc4,
-
  0x62, 0x66, 0xb2, 0xa8, 0x5c, 0x74, 0x33, 0x45, 0xb9, 0x11, 0x4f, 0xb1,
-
  0xe0, 0x86, 0x09, 0x84, 0x9b, 0x7a, 0x6f, 0x28, 0xa8, 0x4e, 0x42, 0x97,
-
  0xbb, 0x9c, 0xf9, 0x3b, 0x13, 0x34, 0xe3, 0xaf, 0xc3, 0x0d, 0xaf, 0x1d,
-
  0x52, 0x30, 0x6e, 0x21, 0xbf, 0x90, 0xba, 0x82, 0x86, 0x24, 0xfa, 0x8a,
-
  0x43, 0x73, 0xdd, 0x84, 0xdc, 0x15, 0x6d, 0x56, 0xe1, 0x40, 0x55, 0x2d,
-
  0xe1, 0x39, 0x20, 0x71, 0xac, 0xbe, 0x9e, 0x25, 0xa3, 0xec, 0x81, 0xa5,
-
  0x0f, 0xf2, 0x25, 0xbd, 0xb4, 0x7e, 0x2b, 0x4e, 0x64, 0xe8, 0x78, 0x3d,
-
  0x76, 0x6b, 0xcf, 0xf7, 0x2a, 0xcb, 0x30, 0x6a, 0x7e, 0xac, 0x1a, 0xe3,
-
  0x33, 0x8d, 0x7d, 0xe5, 0x3c, 0x8a, 0x8a, 0x5d, 0xb6, 0x75, 0x0f, 0xf6,
-
  0x1f, 0xc1, 0x25, 0x6c, 0x4d, 0x28, 0xe5, 0x8d, 0xbd, 0xdf, 0xb4, 0xea,
-
  0xb6, 0xec, 0x1a, 0xe8, 0x5b, 0x27, 0x6e, 0xf1, 0x1b, 0x5b, 0x1d, 0xad,
-
  0xbc, 0x2c, 0x7d, 0xc1, 0x41, 0xb0, 0xb7, 0xad, 0x33, 0x8e, 0x73, 0x49,
-
  0x22, 0x12, 0x81, 0x48, 0x16, 0x7b, 0x69, 0xb5, 0x8d, 0xe9, 0x2f, 0x89,
-
  0x44, 0xcd, 0x55, 0x59, 0x6b, 0xc5, 0x69, 0x08, 0xd5, 0x3a, 0x91, 0xa8,
-
  0xd1, 0x6e, 0xd2, 0x4c, 0xfe, 0xd4, 0xe5, 0xa0, 0xd4, 0x71, 0x7e, 0x11,
-
  0x05, 0x88, 0x84, 0x74, 0x0e, 0x4a, 0x79, 0xb5, 0x50, 0x10, 0x3c, 0x5c,
-
  0x02, 0x5e, 0x2c, 0xd6, 0x54, 0x8e, 0x2d, 0x17, 0xbf, 0x92, 0x24, 0x38,
-
  0x70, 0x86, 0xc3, 0x03, 0x9f, 0x62, 0x86, 0x51, 0x47, 0x8b, 0x99, 0xa1,
-
  0x36, 0x87, 0x56, 0x91, 0x01, 0xd1, 0xf1, 0x43, 0xe0, 0xde, 0xb1, 0xf0,
-
  0x19, 0xc2, 0x09, 0x8b, 0xaf, 0x8e, 0x16, 0xf8, 0x65, 0x5d, 0xa0, 0x13,
-
  0x07, 0xef, 0xc3, 0x39, 0x7a, 0x0e, 0xa1, 0x53, 0xad, 0xf3, 0xc1, 0x94,
-
  0x50, 0xb8, 0x38, 0x04, 0x86, 0xe6, 0xf1, 0x8a, 0x37, 0xa7, 0xd4, 0x04,
-
  0x17, 0x1b, 0xa8, 0x2c, 0x04, 0xc5, 0x47, 0x79, 0xaa, 0x5d, 0x76, 0xb6,
-
  0x11, 0xbe, 0x14, 0x59, 0x4a, 0x19, 0x92, 0x46, 0x31, 0xa6, 0x0b, 0xa5,
-
  0x10, 0x87, 0xfc, 0x59, 0x09, 0x56, 0x9f, 0x98, 0xed, 0x05, 0x59, 0x9b,
-
  0xf1, 0xc1, 0x72, 0x43, 0x4a, 0xa7, 0x0d, 0x08, 0xde, 0x09, 0x82, 0x94,
-
  0x31, 0x53, 0x40, 0x3e, 0xcb, 0x09, 0x1c, 0x5d, 0x0d, 0xc5, 0x9a, 0x2d,
-
  0x28, 0xb8, 0xe5, 0x63, 0x0c, 0xa2, 0xee, 0x1a, 0x7a, 0xd7, 0x84, 0xe2,
-
  0x0f, 0x28, 0xe5, 0x96, 0x46, 0xd7, 0x30, 0x6c, 0x9b, 0x47, 0x51, 0x78,
-
  0x5e, 0x15, 0x12, 0x7a, 0xab, 0x10, 0xb3, 0xef, 0xad, 0x92, 0xba, 0x70,
-
  0x8e, 0x37, 0xd0, 0x15, 0x55, 0xba, 0x7c, 0x6b, 0xba, 0xcb, 0xcb, 0x4c,
-
  0xed, 0xbc, 0x48, 0xfc, 0x3c, 0x12, 0x4c, 0xa1, 0x15, 0xdc, 0x9e, 0x86,
-
  0x61, 0x5b, 0x53, 0x7e, 0x5d, 0x77, 0x9a, 0xfa, 0x6b, 0xdb, 0x17, 0xe9,
-
  0x77, 0x59, 0xf8, 0x3c, 0xb8, 0xdb, 0xc2, 0xde, 0x10, 0xe0, 0x42, 0x94,
-
  0xbc, 0x28, 0x6b, 0xb1, 0x79, 0xb0, 0x65, 0x36, 0x6c, 0xb7, 0x61, 0xf0,
-
  0xc5, 0x37, 0x5b, 0x0c, 0xb7, 0x16, 0x5c, 0x38, 0xce, 0xe0, 0x04, 0xfc,
-
  0x7d, 0x52, 0xd0, 0x1a, 0x09, 0x80, 0xaf, 0x2c, 0x3f, 0x37, 0x24, 0x30,
-
  0xbe, 0x9b, 0x1d, 0xca, 0x14, 0xa6, 0x1b, 0x05, 0xbd, 0xab, 0x3f, 0x45,
-
  0x8f, 0xea, 0x53, 0x4c, 0x58, 0xc1, 0xd8, 0xc1, 0xa6, 0x7a, 0x15, 0x89,
-
  0x3c, 0xb8, 0xb3, 0x19, 0xd4, 0x0f, 0x92, 0xe4, 0xe7, 0x9f, 0xbb, 0xc9,
-
  0xcf, 0x1d, 0xf8, 0x3f, 0x7a, 0x08, 0x7f, 0x06, 0xa2, 0xfb, 0xb9, 0xe4,
-
  0x2d, 0xff, 0xf9, 0x8a, 0x6c, 0xa8, 0x06, 0xb9, 0xaa, 0xce, 0x55, 0xb4,
-
  0xd7, 0x71, 0x76, 0x8b, 0xfa, 0x8e, 0x18, 0x4b, 0xd9, 0xfb, 0x10, 0xe3,
-
  0x05, 0xe5, 0x14, 0x9b, 0x59, 0x31, 0xeb, 0x31, 0x76, 0x2c, 0xac, 0xd8,
-
  0x62, 0x3a, 0xe3, 0xc0, 0x6a, 0x21, 0x4a, 0x3e, 0x20, 0xc4, 0x4e, 0x37,
-
  0xfe, 0xb0, 0x11, 0x36, 0xd1, 0xd4, 0x53, 0xb8, 0xb2, 0xf5, 0x99, 0x28,
-
  0xbb, 0x9d, 0x23, 0x0b, 0x4c, 0xf4, 0x38, 0x41, 0x6d, 0x54, 0x70, 0x45,
-
  0x8a, 0x60, 0x40, 0x27, 0x80, 0x95, 0xf9, 0xe5, 0x4d, 0x85, 0xf2, 0x8b,
-
  0x1d, 0xc7, 0x64, 0xe9, 0x5c, 0x38, 0xa3, 0x3f, 0x07, 0x50, 0x0a, 0xce,
-
  0x7c, 0xa5, 0xa9, 0x2b, 0xec, 0x51, 0x60, 0xd2, 0x63, 0x8f, 0x2e, 0x3b,
-
  0x71, 0x77, 0x77, 0x92, 0x69, 0x76, 0x91, 0x0a, 0x9c, 0xcb, 0x26, 0xa5,
-
  0xbd, 0x70, 0x43, 0x14, 0x6a, 0xb7, 0xd5, 0x4c, 0x60, 0x8b, 0x73, 0xf1,
-
  0xea, 0x22, 0xf0, 0x47, 0x64, 0xea, 0xd3, 0x7c, 0x06, 0x5a, 0x68, 0xa7,
-
  0xd7, 0xa1, 0xaf, 0x42, 0xae, 0x1a, 0x31, 0xc6, 0x98, 0x89, 0xb8, 0x7c,
-
  0x16, 0xed, 0x23, 0x24, 0x45, 0x08, 0x22, 0xc0, 0x80, 0xd9, 0x6a, 0x80,
-
  0xce, 0x46, 0x50, 0xa1, 0xa0, 0x28, 0xe8, 0xe4, 0x25, 0x7d, 0x1b, 0x13,
-
  0x69, 0x96, 0x6c, 0xef, 0x48, 0xbe, 0xc1, 0x9b, 0xde, 0xeb, 0x71, 0xa4,
-
  0x25, 0x2d, 0x2e, 0xcb, 0x87, 0x1c, 0x91, 0x73, 0x83, 0x60, 0x24, 0xf3,
-
  0x49, 0x00, 0x82, 0x0f, 0x83, 0xc5, 0x3e, 0x29, 0xc6, 0x94, 0x83, 0x47,
-
  0xb9, 0x5c, 0xc3, 0x59, 0x41, 0xfe, 0xc3, 0x21, 0x05, 0xf5, 0x60, 0x00,
-
  0x98, 0x82, 0x99, 0x70, 0x0a, 0x09, 0x43, 0xb8, 0x3f, 0x68, 0x40, 0xb0,
-
  0x46, 0xfa, 0x01, 0xe2, 0x72, 0x3f, 0xf8, 0x03, 0x8c, 0xa8, 0xa7, 0x37,
-
  0x58, 0x22, 0x56, 0xaa, 0x1e, 0x7d, 0x51, 0x9b, 0x74, 0x24, 0x94, 0x12,
-
  0xda, 0x73, 0xb7, 0x58, 0x07, 0x3e, 0x15, 0x0c, 0x16, 0xf8, 0x02, 0x3b,
-
  0x40, 0x3e, 0x23, 0xf8, 0xe3, 0xf0, 0x02, 0x5c, 0xdf, 0xbd, 0xf4, 0x02,
-
  0x65, 0x45, 0xf8, 0x1a, 0x24, 0x34, 0x50, 0x2f, 0xf0, 0xaf, 0x6d, 0x50,
-
  0x9a, 0x64, 0x00, 0xb8, 0x06, 0x54, 0x72, 0xc2, 0xdc, 0xbb, 0x38, 0xe1,
-
  0xba, 0x28, 0x5a, 0xfb, 0x5b, 0x06, 0xa0, 0xc0, 0x6e, 0x7a, 0x27, 0xf0,
-
  0x83, 0xec, 0xb6, 0xf0, 0xba, 0x4c, 0x18, 0xe6, 0x3b, 0x2b, 0x08, 0xdf,
-
  0x09, 0x04, 0xb3, 0xc9, 0x24, 0x02, 0x73, 0xef, 0x84, 0xa9, 0x73, 0x42,
-
  0x76, 0xd6, 0x5c, 0x01, 0x89, 0x84, 0xb5, 0xe0, 0x58, 0xf2, 0x75, 0xa8,
-
  0x75, 0x08, 0x16, 0x7e, 0x53, 0xa0, 0x13, 0x31, 0x72, 0x5b, 0xa5, 0x06,
-
  0x56, 0x8d, 0xb6, 0x38, 0xf7, 0x4d, 0xc2, 0x78, 0x35, 0x2c, 0x5c, 0x74,
-
  0xf3, 0xe8, 0x26, 0xb1, 0x40, 0xc2, 0x9c, 0x3d, 0xd1, 0x74, 0x03, 0x23,
-
  0x2e, 0x12, 0xde, 0x3d, 0xd7, 0x9c, 0x73, 0x2f, 0x2f, 0x98, 0x31, 0x80,
-
  0xf3, 0x47, 0xcf, 0x7d, 0x44, 0x8f, 0x3e, 0x22, 0xd9, 0x42, 0x15, 0xf7,
-
  0x9f, 0x09, 0x08, 0x85, 0x1d, 0x56, 0xe3, 0x6f, 0xc2, 0x8e, 0x26, 0x54,
-
  0x55, 0x40, 0xd1, 0x02, 0x48, 0xe6, 0x52, 0x7d, 0x72, 0x77, 0x2b, 0xe9,
-
  0xfc, 0x9f, 0x14, 0x2f, 0xc9, 0xc0, 0xa9, 0xb8, 0x02, 0xe5, 0xb0, 0x23,
-
  0xdf, 0xee, 0xe1, 0xb7, 0x7f, 0x79, 0xfe, 0xc3, 0xaf, 0xcf, 0x4e, 0xde,
-
  0xbc, 0x38, 0xfe, 0x81, 0x9f, 0x91, 0x47, 0x92, 0x4d, 0x9f, 0x1b, 0x80,
-
  0xd1, 0xc7, 0xf2, 0xd2, 0x3e, 0xbe, 0xd4, 0xd6, 0xda, 0xc3, 0x2d, 0x8d,
-
  0x65, 0x3a, 0x48, 0x3a, 0x84, 0x21, 0x7c, 0xfa, 0xf6, 0x04, 0x51, 0x18,
-
  0xff, 0xe3, 0xe7, 0xc6, 0x93, 0x8f, 0xa2, 0x27, 0x0f, 0x4f, 0x4f, 0x9f,
-
  0x1f, 0x9e, 0x1f, 0x2e, 0x3d, 0xf5, 0x78, 0x75, 0x7b, 0x87, 0x21, 0x9a,
-
  0x2f, 0x79, 0x0e, 0x44, 0xd1, 0x7c, 0xf5, 0xcb, 0x2d, 0xe0, 0x00, 0xb3,
-
  0x9e, 0xbd, 0x8e, 0x56, 0x81, 0x8b, 0xac, 0x9e, 0x5f, 0x2f, 0x72, 0xe2,
-
  0x5e, 0x54, 0xa7, 0x06, 0xd7, 0xf2, 0xb2, 0xf0, 0x21, 0x92, 0xf2, 0xf6,
-
  0x93, 0x2d, 0xe0, 0xa1, 0x16, 0x98, 0x25, 0x66, 0xc9, 0x9c, 0x82, 0x50,
-
  0x48, 0x49, 0x01, 0xbe, 0x27, 0xfd, 0xd9, 0x56, 0x85, 0x1c, 0x12, 0xbe,
-
  0x63, 0x94, 0x56, 0x18, 0x42, 0x67, 0x84, 0xd8, 0x33, 0x57, 0x19, 0x9f,
-
  0x73, 0x47, 0x52, 0xc5, 0x2c, 0x5b, 0x11, 0xab, 0xc9, 0x4c, 0xd9, 0xc2,
-
  0xaf, 0xb3, 0x0f, 0xd9, 0x70, 0x51, 0x2b, 0x1a, 0x35, 0x6d, 0xf8, 0x28,
-
  0xb0, 0xfb, 0x10, 0xe9, 0x86, 0x62, 0x82, 0xb2, 0x54, 0x51, 0x39, 0x8d,
-
  0x84, 0x90, 0xfd, 0xab, 0xd1, 0x1f, 0xee, 0x3c, 0x9b, 0x81, 0x19, 0x26,
-
  0x7f, 0xe5, 0x4f, 0xba, 0x1a, 0xba, 0xa7, 0x9c, 0x8e, 0xea, 0x87, 0xa0,
-
  0x96, 0x75, 0x42, 0x91, 0x9f, 0x62, 0x73, 0xaa, 0xa2, 0x90, 0x76, 0xe9,
-
  0x45, 0x62, 0x3f, 0x60, 0x6e, 0xd2, 0x18, 0x99, 0x46, 0xfb, 0x81, 0xfa,
-
  0xbd, 0x73, 0xb3, 0x2d, 0x71, 0x57, 0xa5, 0x4e, 0xb1, 0x4e, 0xdd, 0x95,
-
  0xbe, 0xeb, 0xaf, 0xad, 0xb5, 0x03, 0xd0, 0xe4, 0x98, 0x3b, 0x55, 0x48,
-
  0xf2, 0x75, 0x61, 0x18, 0x98, 0x8d, 0xfb, 0x94, 0x51, 0xc8, 0x2a, 0x11,
-
  0xd0, 0x5f, 0xa7, 0x1f, 0xf2, 0xe9, 0x62, 0xca, 0x78, 0x67, 0x08, 0x0b,
-
  0xc0, 0xdf, 0x8a, 0x39, 0x1a, 0x6f, 0x0b, 0x8e, 0x8a, 0xc2, 0x21, 0x6d,
-
  0x54, 0xde, 0xea, 0x44, 0x59, 0xde, 0x70, 0x71, 0xf5, 0x7d, 0x7a, 0x00,
-
  0x63, 0x77, 0x4c, 0xf3, 0x00, 0x3f, 0x6f, 0x46, 0xaa, 0x39, 0x68, 0x33,
-
  0x99, 0xe2, 0x8a, 0x31, 0xea, 0x9c, 0xd5, 0x9b, 0x91, 0x2a, 0x22, 0x76,
-
  0x95, 0xb0, 0x58, 0x0b, 0x7b, 0x9a, 0x17, 0x23, 0xbe, 0x3e, 0x38, 0xdd,
-
  0x0d, 0xf8, 0x18, 0x7b, 0xc4, 0x29, 0x82, 0x81, 0x00, 0xcf, 0xdb, 0xd2,
-
  0x13, 0x10, 0xe4, 0x14, 0x0b, 0xea, 0x80, 0xde, 0x9e, 0x4f, 0x0d, 0xbe,
-
  0xa5, 0xaf, 0x46, 0x53, 0xf7, 0xa1, 0xe0, 0xe2, 0xf2, 0x95, 0xdf, 0x48,
-
  0xad, 0xd2, 0x08, 0x1a, 0x10, 0xc2, 0x10, 0x98, 0xab, 0xbf, 0x45, 0x37,
-
  0xb7, 0xbe, 0x6e, 0xd2, 0x2e, 0x2c, 0x32, 0xdf, 0x8d, 0x1c, 0x71, 0x88,
-
  0x6e, 0x9c, 0xc8, 0x63, 0xee, 0x41, 0x31, 0xd8, 0x70, 0x31, 0x50, 0x13,
-
  0x8d, 0x5e, 0x24, 0x01, 0x0a, 0xc7, 0x19, 0x77, 0xdd, 0xda, 0xd1, 0xd2,
-
  0x31, 0xcb, 0x04, 0xd2, 0xc4, 0xa0, 0x89, 0x6c, 0x14, 0x52, 0xf2, 0x5d,
-
  0x96, 0xd7, 0xf3, 0x37, 0x67, 0x89, 0xe0, 0x6f, 0x8a, 0xda, 0x84, 0x17,
-
  0xb7, 0xa8, 0xaf, 0xf8, 0xce, 0x39, 0x56, 0xe8, 0x62, 0xd3, 0x30, 0x89,
-
  0xf6, 0xc9, 0x9f, 0xdf, 0x1d, 0x3f, 0x4b, 0x5c, 0x85, 0x1f, 0x85, 0xe0,
-
  0xc0, 0x0c, 0xea, 0x7e, 0x12, 0x45, 0x8a, 0x35, 0x08, 0xe9, 0xe3, 0x42,
-
  0xc6, 0xe2, 0x8b, 0x21, 0x26, 0xfb, 0x6a, 0x99, 0xee, 0xa3, 0x9e, 0xf6,
-
  0x76, 0x5a, 0x49, 0xff, 0xd6, 0x77, 0xf6, 0xfb, 0xbb, 0x0f, 0xd7, 0x3b,
-
  0x30, 0xd3, 0xf4, 0x03, 0xbd, 0xb5, 0x7c, 0x62, 0x8a, 0xe4, 0xe9, 0xcb,
-
  0x93, 0xb3, 0xf3, 0xdd, 0x83, 0xd3, 0x93, 0xb7, 0xf0, 0x13, 0x7f, 0xdf,
-
  0xa3, 0xdf, 0xf7, 0xe4, 0xf0, 0xbc, 0xe0, 0x48, 0x76, 0x4b, 0x28, 0x47,
-
  0x63, 0x16, 0xc5, 0xc0, 0x8e, 0xc5, 0xfb, 0x9e, 0x24, 0x1d, 0xd7, 0x42,
-
  0x07, 0x14, 0x8f, 0x1c, 0xfd, 0x8d, 0xd2, 0x43, 0x88, 0x4c, 0xea, 0xb8,
-
  0xb6, 0x3b, 0x1a, 0x5b, 0xdb, 0x88, 0xc0, 0xd7, 0xe3, 0x65, 0x61, 0x2f,
-
  0xd0, 0x65, 0xca, 0x08, 0xa6, 0xc1, 0xe2, 0xad, 0x79, 0xe8, 0x81, 0x78,
-
  0xa8, 0x7a, 0x9c, 0x00, 0x93, 0xbd, 0x39, 0x39, 0x4f, 0x52, 0x32, 0x22,
-
  0x24, 0x72, 0x3f, 0x70, 0x25, 0xaf, 0x6d, 0x76, 0xfb, 0x70, 0x01, 0x15,
-
  0x27, 0x8f, 0x2b, 0x58, 0x01, 0xcd, 0x07, 0x68, 0x66, 0x9b, 0xd2, 0x76,
-
  0xd0, 0xcb, 0x05, 0x2b, 0xf8, 0xe6, 0xb8, 0x1b, 0x79, 0xa7, 0xbc, 0x73,
-
  0x69, 0x2b, 0x44, 0xe0, 0x2b, 0x50, 0x8e, 0x0b, 0x51, 0x0f, 0x00, 0xcb,
-
  0x4a, 0x08, 0xbc, 0x4a, 0x1d, 0x22, 0xd7, 0x8e, 0xac, 0x95, 0x82, 0x51,
-
  0x61, 0x6d, 0xac, 0x1b, 0xf1, 0x0e, 0x03, 0x6d, 0x29, 0x56, 0x0e, 0x2a,
-
  0x27, 0x38, 0x7e, 0x09, 0xb8, 0xbb, 0xd1, 0x14, 0x7d, 0x98, 0x08, 0xcf,
-
  0xa3, 0xaf, 0xcb, 0xda, 0x91, 0x63, 0xd0, 0x91, 0xe5, 0x65, 0xcb, 0x0c,
-
  0x03, 0xcd, 0x85, 0x0e, 0xac, 0x07, 0xcd, 0xd8, 0xe3, 0x6e, 0x16, 0x95,
-
  0x22, 0x0f, 0xd0, 0x1e, 0x63, 0x62, 0x54, 0x99, 0x5f, 0x10, 0x5a, 0xa2,
-
  0x15, 0x4b, 0xa3, 0xb8, 0x09, 0xd7, 0xb1, 0xe6, 0xe2, 0x84, 0x27, 0x82,
-
  0x3a, 0x58, 0x2f, 0x25, 0x94, 0x50, 0xbc, 0x75, 0xa9, 0xda, 0x0e, 0x8f,
-
  0xa2, 0x9b, 0x10, 0x9f, 0x34, 0x9b, 0xbe, 0xf2, 0xa8, 0x69, 0x5a, 0x0b,
-
  0x1e, 0x1b, 0x47, 0x8b, 0x58, 0xfe, 0xb6, 0x91, 0x20, 0x62, 0x81, 0x59,
-
  0x6d, 0x00, 0x9a, 0x1d, 0x85, 0x99, 0x48, 0x43, 0x5c, 0xee, 0x08, 0xb9,
-
  0x97, 0xe5, 0xf6, 0x75, 0x76, 0xf7, 0xbe, 0xec, 0xef, 0xc0, 0x7f, 0x77,
-
  0x3b, 0x16, 0x34, 0x22, 0x45, 0x67, 0x68, 0x79, 0x25, 0x2c, 0x45, 0x5f,
-
  0x90, 0xfd, 0xd2, 0x13, 0x55, 0x94, 0x54, 0xbe, 0x29, 0xba, 0xc4, 0x1c,
-
  0x04, 0xa2, 0x63, 0xf1, 0x3e, 0xc1, 0x34, 0x1c, 0xc7, 0x24, 0xac, 0x51,
-
  0x38, 0x0d, 0x36, 0xa2, 0x38, 0x48, 0x0f, 0xe5, 0x5f, 0xb7, 0xcc, 0xa4,
-
  0x38, 0x34, 0x4f, 0x7f, 0xe1, 0x1b, 0x3f, 0x38, 0xb0, 0x96, 0x0e, 0x92,
-
  0x76, 0xc8, 0xf9, 0xb5, 0x07, 0xce, 0x10, 0x5b, 0xa1, 0xf4, 0x1d, 0x27,
-
  0x60, 0x58, 0xfb, 0x9a, 0x6d, 0xf2, 0xd1, 0xc3, 0x5d, 0x1a, 0x63, 0xfb,
-
  0x10, 0xa3, 0x77, 0xbc, 0xe1, 0xe5, 0xf7, 0xc0, 0x83, 0xac, 0x58, 0xb5,
-
  0x87, 0x0f, 0xf7, 0x0f, 0xf4, 0x6f, 0xe0, 0x27, 0x07, 0x4f, 0xe0, 0x83,
-
  0x3b, 0x53, 0x6d, 0x57, 0xe2, 0x85, 0xb0, 0x87, 0x40, 0x99, 0xeb, 0xb3,
-
  0x6e, 0x9c, 0xbc, 0x9e, 0x3c, 0x2d, 0xc6, 0x63, 0xb8, 0x25, 0xbe, 0x35,
-
  0xbf, 0xc2, 0x02, 0x0f, 0x94, 0x65, 0xb2, 0x3a, 0x98, 0x56, 0x8b, 0x35,
-
  0x62, 0xe1, 0x80, 0x10, 0x4e, 0x13, 0x7e, 0x5b, 0x14, 0x0d, 0x97, 0xe2,
-
  0xc4, 0x9f, 0x9b, 0xcb, 0x91, 0x30, 0xb2, 0x94, 0xc1, 0x91, 0xe3, 0xcb,
-
  0x95, 0x74, 0xa0, 0x0b, 0xaf, 0x7a, 0x9f, 0xcf, 0xe7, 0xa4, 0x34, 0x51,
-
  0xbd, 0xa9, 0x18, 0x4c, 0x02, 0x9b, 0x08, 0xd1, 0x65, 0x16, 0x98, 0x40,
-
  0xf9, 0xe2, 0x2c, 0x23, 0x0f, 0xb2, 0x71, 0x51, 0x6a, 0x81, 0x17, 0x0f,
-
  0x36, 0x6b, 0x44, 0xcd, 0x9e, 0x4f, 0x44, 0xdf, 0x49, 0x99, 0x2d, 0x1f,
-
  0x8f, 0x79, 0x07, 0xc9, 0xc8, 0x24, 0xf8, 0x1a, 0x7c, 0x75, 0x06, 0x10,
-
  0x83, 0x60, 0x09, 0x3d, 0x3b, 0xfe, 0xef, 0xa3, 0x28, 0x40, 0x57, 0xd3,
-
  0xe9, 0x49, 0x57, 0x0e, 0x79, 0xb7, 0x49, 0xa7, 0xf7, 0x2c, 0xe9, 0x75,
-
  0xb4, 0x48, 0x01, 0x96, 0x2c, 0xb0, 0x00, 0xf6, 0xd8, 0xc3, 0x43, 0x5a,
-
  0x82, 0x60, 0x46, 0x82, 0x40, 0xb1, 0x7d, 0x09, 0x52, 0x9e, 0x0e, 0x96,
-
  0x01, 0x07, 0xe3, 0x9c, 0xff, 0x50, 0x62, 0xd2, 0x92, 0xca, 0x78, 0x27,
-
  0x58, 0xad, 0xde, 0xce, 0x67, 0xa8, 0x5c, 0x33, 0xf0, 0x8d, 0x35, 0x34,
-
  0x66, 0x18, 0x18, 0x06, 0x23, 0x5d, 0xc4, 0xb9, 0xa4, 0x6d, 0x55, 0xee,
-
  0x70, 0x76, 0xd3, 0x45, 0x2d, 0x4e, 0xea, 0xec, 0xc3, 0x70, 0x02, 0x92,
-
  0x12, 0xd0, 0x92, 0xd8, 0xb6, 0x09, 0x02, 0xe1, 0x80, 0xe4, 0x52, 0x31,
-
  0x47, 0xa6, 0x21, 0x71, 0xd3, 0x39, 0xbc, 0xa6, 0x92, 0x64, 0x26, 0x36,
-
  0x9e, 0x36, 0xdc, 0x02, 0x36, 0x94, 0x63, 0x65, 0xaa, 0xac, 0xb4, 0x70,
-
  0x61, 0xcc, 0xdf, 0xbe, 0xca, 0x7a, 0xa0, 0x5c, 0x71, 0xf9, 0x9c, 0x80,
-
  0x4c, 0x16, 0x0a, 0x0f, 0x26, 0x51, 0xec, 0x62, 0x9c, 0xe3, 0xec, 0x61,
-
  0x19, 0xd4, 0x8d, 0xe9, 0x88, 0xbd, 0xcd, 0x6b, 0xfd, 0x69, 0xd9, 0xf3,
-
  0x0d, 0x91, 0x09, 0xb6, 0xfc, 0x4e, 0x11, 0xe9, 0x59, 0xf2, 0x70, 0x67,
-
  0x67, 0xcd, 0x13, 0x8c, 0xcb, 0xac, 0x47, 0x76, 0xc0, 0x47, 0xb6, 0x78,
-
  0x9f, 0x67, 0xc9, 0x53, 0x74, 0x1e, 0xfd, 0xcf, 0x36, 0x74, 0xaa, 0xad,
-
  0x24, 0x96, 0x56, 0xd8, 0x77, 0x41, 0x98, 0x74, 0xd5, 0x04, 0xa5, 0x5e,
-
  0xdc, 0x4f, 0x2b, 0xce, 0x98, 0x48, 0x7b, 0x0a, 0xa3, 0x2d, 0xc4, 0xa2,
-
  0x45, 0x5f, 0x6c, 0xb2, 0x74, 0x77, 0x1d, 0x50, 0x48, 0x74, 0x74, 0x90,
-
  0x0d, 0x50, 0x18, 0xdf, 0x37, 0xbc, 0x29, 0xce, 0xd1, 0x97, 0x93, 0x23,
-
  0x4a, 0xab, 0x04, 0x07, 0x71, 0x77, 0xc2, 0x8b, 0x90, 0x92, 0x35, 0xdc,
-
  0x05, 0x96, 0x96, 0x70, 0x5a, 0xb1, 0x41, 0x97, 0x3e, 0x6f, 0x65, 0x41,
-
  0xec, 0xda, 0x52, 0x2b, 0xab, 0x36, 0x9e, 0x26, 0x9d, 0xb3, 0xac, 0xee,
-
  0x71, 0xcb, 0x07, 0x9d, 0x24, 0x94, 0x27, 0x15, 0x0f, 0x9b, 0x24, 0xb2,
-
  0x0d, 0x4c, 0x09, 0x96, 0xe0, 0x7c, 0xb9, 0x41, 0xb1, 0xe4, 0xf0, 0xee,
-
  0x37, 0x3f, 0x1e, 0xbe, 0x7a, 0x77, 0xb4, 0xfb, 0x35, 0x88, 0x66, 0xf0,
-
  0xe7, 0x1e, 0xff, 0xb9, 0x87, 0x30, 0x89, 0x3f, 0x71, 0xde, 0x01, 0xb3,
-
  0x3a, 0x2e, 0x0b, 0x5c, 0x4b, 0x70, 0xa8, 0x02, 0x05, 0x69, 0xc2, 0x08,
-
  0x0e, 0x00, 0xf5, 0x78, 0x36, 0x20, 0xce, 0x8b, 0xf9, 0x62, 0xc2, 0xd1,
-
  0x7d, 0xa8, 0x85, 0xd9, 0x4a, 0xf3, 0xdc, 0x35, 0x69, 0x81, 0xd3, 0x47,
-
  0xb4, 0xe0, 0x8d, 0x86, 0x2c, 0x69, 0x6d, 0x8d, 0x9c, 0x93, 0x61, 0x02,
-
  0x10, 0x87, 0xca, 0x17, 0x9b, 0x95, 0xe4, 0x60, 0x99, 0xa7, 0x4a, 0x81,
-
  0x90, 0x9d, 0x4f, 0x97, 0xc0, 0x97, 0x46, 0x0b, 0xb6, 0x7a, 0xc6, 0xe8,
-
  0x02, 0x5d, 0x35, 0xef, 0x90, 0xbb, 0x9a, 0xef, 0xda, 0xca, 0x43, 0x1c,
-
  0xb3, 0xfb, 0x41, 0x84, 0x39, 0x1c, 0x02, 0x97, 0xcd, 0x21, 0x6e, 0xe1,
-
  0xb6, 0x90, 0x28, 0x82, 0x5c, 0x30, 0x66, 0x27, 0x00, 0x32, 0x39, 0xa6,
-
  0xc0, 0x66, 0x58, 0xdb, 0x6f, 0x3a, 0x49, 0x75, 0x33, 0x1d, 0x14, 0x13,
-
  0xe7, 0x95, 0x35, 0x23, 0x46, 0x08, 0xdf, 0x17, 0xac, 0x19, 0x95, 0xb7,
-
  0x15, 0xd9, 0xcc, 0xd9, 0x9e, 0xcd, 0x80, 0x6b, 0x3e, 0x2b, 0x0f, 0xb1,
-
  0x50, 0x13, 0x02, 0x8d, 0x0c, 0x8c, 0xbd, 0x57, 0x0e, 0xf3, 0x41, 0x75,
-
  0x51, 0x3c, 0x52, 0x04, 0xe7, 0x9e, 0x9a, 0x09, 0x5f, 0xf7, 0x44, 0x62,
-
  0xc0, 0x25, 0xe4, 0xd1, 0x63, 0xed, 0x60, 0xd4, 0x8f, 0x65, 0x64, 0xcc,
-
  0xe0, 0x90, 0x32, 0x2c, 0xbd, 0x6e, 0x35, 0xbf, 0x41, 0x72, 0xec, 0x20,
-
  0x23, 0xed, 0xed, 0x26, 0x31, 0xb8, 0x26, 0xd2, 0xdf, 0x5c, 0xee, 0x7f,
-
  0x88, 0x9e, 0x2c, 0xa6, 0x03, 0xb9, 0x7e, 0x02, 0x1d, 0x50, 0x30, 0xfa,
-
  0xc4, 0x8a, 0xac, 0xda, 0xf9, 0x45, 0xee, 0x87, 0x8e, 0xcb, 0xe0, 0x93,
-
  0xe4, 0x42, 0x21, 0x1e, 0xfd, 0xad, 0x8a, 0x7c, 0x60, 0x6c, 0x77, 0x5c,
-
  0xf2, 0x0c, 0xc8, 0x0a, 0x0a, 0x32, 0x0b, 0x33, 0x64, 0x36, 0x7f, 0x23,
-
  0x4c, 0x25, 0xa2, 0x54, 0x8a, 0xdf, 0x3b, 0x1d, 0x55, 0x51, 0xe5, 0x98,
-
  0xaa, 0x09, 0xe7, 0x14, 0xdc, 0x4a, 0xc1, 0xb0, 0x9e, 0x33, 0x68, 0xbe,
-
  0x57, 0x12, 0xa0, 0x59, 0xcc, 0x60, 0x93, 0x88, 0xa7, 0x70, 0x76, 0xe9,
-
  0x9e, 0x90, 0xa5, 0xa7, 0xcb, 0x4a, 0xcf, 0xcc, 0x1d, 0xbb, 0x63, 0xb5,
-
  0x9a, 0x55, 0xc9, 0x90, 0x7d, 0xf0, 0xb7, 0x89, 0xe6, 0x8e, 0x63, 0xf2,
-
  0x4d, 0xe1, 0x06, 0xc9, 0x71, 0xba, 0xe9, 0xc8, 0x5e, 0x92, 0xe9, 0x18,
-
  0x6f, 0x40, 0x73, 0x97, 0xee, 0x0f, 0xf1, 0x2f, 0x8b, 0xa8, 0xd8, 0x0c,
-
  0xec, 0x05, 0x95, 0x93, 0x9b, 0x49, 0xb6, 0x65, 0xf2, 0x79, 0xf2, 0x26,
-
  0xab, 0xc9, 0xf7, 0xb3, 0xfd, 0xba, 0xf8, 0x47, 0x3e, 0x99, 0xa4, 0xda,
-
  0xbe, 0x4b, 0x4f, 0x92, 0xfc, 0xf7, 0xe6, 0x20, 0x83, 0x2a, 0x62, 0x77,
-
  0x16, 0xaf, 0x48, 0x65, 0x17, 0x29, 0xfb, 0x50, 0x67, 0x54, 0x9a, 0x27,
-
  0x79, 0x53, 0xe8, 0xd0, 0xd5, 0x11, 0x9b, 0x91, 0xe9, 0xbf, 0xce, 0x66,
-
  0xac, 0xcc, 0xa4, 0x92, 0xbf, 0x46, 0xd5, 0xbb, 0x24, 0xfc, 0xd6, 0x28,
-
  0x55, 0xd5, 0x27, 0xeb, 0xa7, 0xf7, 0x9b, 0x46, 0x6c, 0x18, 0x4a, 0xf7,
-
  0x03, 0x07, 0x30, 0xae, 0xcf, 0xbb, 0xb9, 0x4b, 0xa4, 0x39, 0xaf, 0x2d,
-
  0x17, 0x70, 0x10, 0x20, 0x73, 0x75, 0x76, 0x08, 0xa4, 0x65, 0x94, 0xa2,
-
  0x1c, 0xee, 0x18, 0x8b, 0xd7, 0x26, 0x6c, 0x49, 0x42, 0x2b, 0x63, 0x61,
-
  0x8c, 0x71, 0x30, 0x41, 0xbb, 0xa2, 0xb2, 0x0e, 0xa8, 0x59, 0xb1, 0x8d,
-
  0x48, 0x44, 0x97, 0x74, 0x34, 0x92, 0xf0, 0x17, 0x02, 0x02, 0xc0, 0x9c,
-
  0x0a, 0x7d, 0x07, 0x03, 0x06, 0xc2, 0x00, 0x49, 0x7e, 0xd9, 0x64, 0x7c,
-
  0x39, 0x5e, 0x0e, 0x01, 0xea, 0x96, 0x15, 0xab, 0x16, 0x03, 0x7e, 0xaf,
-
  0xa2, 0x0d, 0x64, 0xfb, 0x23, 0xd6, 0xfa, 0x3c, 0xb0, 0xe9, 0xea, 0x76,
-
  0x36, 0x36, 0x0d, 0xa3, 0x8a, 0x2b, 0xae, 0xcf, 0xcd, 0x41, 0xf8, 0xac,
-
  0x76, 0x0c, 0x0a, 0xd8, 0xb8, 0x98, 0xaa, 0xb4, 0xe8, 0x88, 0xb3, 0xd8,
-
  0xb3, 0x93, 0x4c, 0x8c, 0x2e, 0xf3, 0x11, 0x27, 0xc2, 0xe8, 0xf3, 0xe8,
-
  0xf3, 0x0b, 0xd0, 0x42, 0xec, 0x1a, 0xaa, 0x0a, 0x65, 0x1b, 0xdc, 0x43,
-
  0xa0, 0x0d, 0x0f, 0x0b, 0x11, 0xb6, 0x31, 0x32, 0xee, 0x46, 0xc2, 0x9c,
-
  0x08, 0x77, 0xd1, 0xee, 0xc6, 0x39, 0x14, 0x44, 0x7b, 0xa7, 0x68, 0x4d,
-
  0x38, 0xc5, 0x2a, 0x2c, 0xc3, 0xe4, 0x8c, 0x4a, 0x21, 0x24, 0xaf, 0xf2,
-
  0xaa, 0xde, 0xd2, 0xc0, 0x24, 0xf6, 0x60, 0x8c, 0xb2, 0x1a, 0x6f, 0x89,
-
  0x60, 0xcf, 0x1a, 0xe5, 0xb0, 0x56, 0xe5, 0xa8, 0x0a, 0x93, 0x37, 0xf0,
-
  0xdd, 0x66, 0x59, 0x69, 0xd2, 0x5a, 0xb9, 0xca, 0x82, 0x52, 0x49, 0xe5,
-
  0xec, 0x1b, 0x72, 0x0c, 0x25, 0xd5, 0x9c, 0x2d, 0x9d, 0xac, 0xa3, 0x53,
-
  0xc6, 0xa9, 0x9e, 0xf3, 0x68, 0xfc, 0x2c, 0x05, 0xe2, 0x24, 0x9c, 0x1f,
-
  0x9b, 0xa6, 0x12, 0x8d, 0xda, 0x62, 0x37, 0x92, 0x54, 0xb3, 0xdf, 0x49,
-
  0x5e, 0xa9, 0x8b, 0x39, 0x45, 0xa3, 0x53, 0xad, 0x55, 0xe5, 0x23, 0xd1,
-
  0xd2, 0x7e, 0xba, 0x7a, 0xd7, 0x10, 0x0a, 0x07, 0x08, 0xa1, 0x79, 0x97,
-
  0x54, 0x38, 0x90, 0x51, 0xac, 0x8c, 0x70, 0x5c, 0xf9, 0x70, 0x6f, 0xf8,
-
  0x71, 0xaf, 0x52, 0x41, 0xc8, 0xff, 0x4a, 0x67, 0xeb, 0x06, 0x52, 0x06,
-
  0x3a, 0x63, 0x45, 0xf2, 0xb7, 0xc5, 0xec, 0x7d, 0x4f, 0x0a, 0xa2, 0xf4,
-
  0x02, 0x0b, 0xa6, 0xa5, 0x1b, 0x76, 0xe3, 0x37, 0x9e, 0xb6, 0x8b, 0xa8,
-
  0xe6, 0x9b, 0x2d, 0xf4, 0x0a, 0xa5, 0xb1, 0x5b, 0x8e, 0x8b, 0x5c, 0xbe,
-
  0x56, 0xb8, 0x82, 0x74, 0xfe, 0x98, 0xfb, 0x11, 0x20, 0xaa, 0xc7, 0x43,
-
  0x4d, 0x02, 0xb0, 0xa0, 0xd4, 0xdc, 0xb2, 0xfa, 0x72, 0xf8, 0x7a, 0x7c,
-
  0x40, 0x51, 0x24, 0xd3, 0x4b, 0xbd, 0xc7, 0xf0, 0xa3, 0x4e, 0x16, 0x06,
-
  0xde, 0x49, 0xe8, 0xf7, 0x56, 0xba, 0x50, 0xc4, 0x3f, 0x39, 0xd3, 0x1a,
-
  0x1e, 0x6e, 0x50, 0xce, 0xc2, 0x46, 0xb5, 0x06, 0x4a, 0x1f, 0xcb, 0x8d,
-
  0x73, 0x34, 0xe8, 0xac, 0x08, 0x1d, 0xe3, 0xb9, 0x78, 0x3f, 0x2b, 0xae,
-
  0xa9, 0x64, 0xa2, 0x73, 0xbe, 0x89, 0x9c, 0x03, 0xc7, 0xde, 0x5b, 0xfc,
-
  0xea, 0x84, 0x75, 0xa0, 0x8a, 0x31, 0xd0, 0xd9, 0x3b, 0x02, 0xd7, 0x82,
-
  0x21, 0xc7, 0xc6, 0x13, 0xd2, 0x7b, 0x6e, 0x09, 0xcb, 0xc5, 0x74, 0x44,
-
  0x63, 0x6d, 0x43, 0xc7, 0xce, 0x15, 0x9b, 0x45, 0xb8, 0x3e, 0xc9, 0xb6,
-
  0xfe, 0x5e, 0x37, 0xef, 0x74, 0x2c, 0x31, 0x74, 0xd1, 0x63, 0xde, 0x75,
-
  0x97, 0x74, 0xd5, 0xbc, 0x8e, 0xa4, 0x7a, 0xdf, 0x1d, 0x97, 0x5e, 0x83,
-
  0x8d, 0x45, 0x86, 0x55, 0xaa, 0x85, 0x2c, 0x75, 0xe9, 0xe0, 0xf2, 0x8b,
-
  0x6e, 0x7c, 0x09, 0xc8, 0x4e, 0x1d, 0xc2, 0x5b, 0xb8, 0xfa, 0x38, 0xa4,
-
  0x69, 0xe5, 0xc5, 0x17, 0x5d, 0x7a, 0xc9, 0xf7, 0xc8, 0x60, 0x55, 0xb9,
-
  0xf4, 0x70, 0xf0, 0xc6, 0x50, 0x3d, 0x84, 0xcc, 0x6a, 0x75, 0xf9, 0x76,
-
  0xd1, 0x85, 0x6f, 0x23, 0x92, 0x2b, 0x1b, 0x58, 0x34, 0xe5, 0xc8, 0xf0,
-
  0x2f, 0x1c, 0x9b, 0x63, 0xbd, 0x58, 0x1b, 0xf1, 0x02, 0x6c, 0xe8, 0x48,
-
  0xa3, 0x24, 0x1b, 0x72, 0x9e, 0xbc, 0x84, 0xeb, 0x29, 0xaa, 0x32, 0x72,
-
  0x54, 0x25, 0x32, 0xa9, 0x50, 0xc7, 0x9b, 0xc4, 0x1b, 0x78, 0x7d, 0x59,
-
  0x4c, 0x22, 0x2f, 0x60, 0xa3, 0x56, 0x09, 0x57, 0xd1, 0xc0, 0x42, 0x66,
-
  0x14, 0xfb, 0x43, 0x94, 0xcd, 0xb1, 0x91, 0x2c, 0xf0, 0x91, 0x7e, 0x8e,
-
  0x00, 0xed, 0x25, 0xba, 0xe0, 0xe2, 0xa4, 0x7e, 0x41, 0xd2, 0x66, 0x28,
-
  0xe3, 0x14, 0x8e, 0x76, 0xc9, 0x85, 0xec, 0xa4, 0x06, 0x8e, 0x56, 0x3b,
-
  0x97, 0xcb, 0x9a, 0xe9, 0x94, 0x49, 0xe0, 0x2a, 0x47, 0x84, 0x57, 0x25,
-
  0xe4, 0x2c, 0x1b, 0xf1, 0x45, 0x49, 0x1c, 0xe2, 0x82, 0x12, 0x34, 0xb9,
-
  0xcc, 0x86, 0x48, 0xd6, 0x86, 0x08, 0x8b, 0x11, 0x32, 0x97, 0x18, 0x78,
-
  0x52, 0xe5, 0xf5, 0x42, 0x98, 0x41, 0xec, 0x3c, 0xf1, 0xe4, 0x76, 0x7b,
-
  0xec, 0xba, 0x8b, 0x5b, 0xff, 0x78, 0xe7, 0xc9, 0x90, 0x45, 0xb0, 0x1e,
-
  0x45, 0x37, 0xac, 0x72, 0x1a, 0xde, 0xfa, 0x02, 0xb0, 0x6a, 0x24, 0xe5,
-
  0x1e, 0x8c, 0xa4, 0xfa, 0x28, 0x5e, 0xbd, 0x06, 0x9f, 0xee, 0x31, 0x41,
-
  0xf4, 0x40, 0xf3, 0xab, 0x5c, 0xe4, 0x82, 0x29, 0x68, 0x20, 0xf9, 0xff,
-
  0x26, 0x46, 0x00, 0xa7, 0xa0, 0x68, 0x39, 0x9c, 0x10, 0x8f, 0x22, 0x85,
-
  0xec, 0xa8, 0x31, 0x07, 0x63, 0x36, 0xcb, 0x10, 0x16, 0x22, 0x2d, 0x6f,
-
  0xc4, 0x0f, 0xe7, 0x81, 0x24, 0x2e, 0x73, 0x58, 0xe7, 0x72, 0x78, 0x79,
-
  0x43, 0x66, 0x6f, 0x34, 0xa9, 0x67, 0xa3, 0x7e, 0x6c, 0xb4, 0x90, 0x33,
-
  0xc2, 0xad, 0xca, 0x56, 0x68, 0x0b, 0xc4, 0xf2, 0x50, 0x6d, 0x84, 0xe7,
-
  0x70, 0xdf, 0x62, 0xfd, 0x49, 0xc7, 0x17, 0x37, 0x44, 0xea, 0x96, 0xf1,
-
  0x1c, 0x4e, 0x08, 0xc1, 0x44, 0xcc, 0x40, 0x35, 0xb4, 0xc7, 0x22, 0x87,
-
  0x73, 0x1b, 0xb8, 0x34, 0x7d, 0x8d, 0x2e, 0xce, 0x1a, 0x0d, 0x49, 0x37,
-
  0xa6, 0xfd, 0x10, 0x93, 0x9d, 0x15, 0x51, 0xd6, 0x25, 0x17, 0x7d, 0x6e,
-
  0x8e, 0xdd, 0x62, 0x9b, 0x65, 0x0a, 0x21, 0xc0, 0x59, 0x70, 0x57, 0x67,
-
  0x45, 0x34, 0x55, 0xf2, 0xad, 0x0b, 0x06, 0xab, 0xec, 0xf7, 0x33, 0x39,
-
  0xcb, 0xd1, 0x8a, 0xe0, 0x73, 0xd3, 0x74, 0xa4, 0x60, 0x08, 0x53, 0x2a,
-
  0x01, 0xbc, 0xf3, 0xe5, 0xa3, 0x1d, 0x4a, 0x02, 0x78, 0x47, 0x18, 0xe7,
-
  0xa8, 0xba, 0x78, 0x88, 0x0b, 0x4e, 0x47, 0x0c, 0xea, 0x53, 0xa1, 0x6b,
-
  0x6e, 0xf8, 0x89, 0x71, 0x1f, 0xec, 0xde, 0x54, 0xd1, 0x14, 0x8d, 0xa3,
-
  0xa4, 0x07, 0x61, 0x28, 0x6f, 0x97, 0x94, 0xd1, 0x1b, 0x3d, 0x65, 0xe3,
-
  0x7a, 0xee, 0x29, 0xac, 0xdf, 0xc8, 0x3d, 0x0a, 0xdf, 0xac, 0x8a, 0xb4,
-
  0xfd, 0xd8, 0xd4, 0x23, 0xd7, 0xd7, 0xed, 0x96, 0x76, 0xd7, 0xb5, 0x51,
-
  0x8b, 0x01, 0x63, 0x6c, 0xaf, 0x9f, 0x5e, 0xd2, 0x98, 0xa1, 0x1c, 0x39,
-
  0x47, 0x3a, 0x8d, 0x83, 0x86, 0x2d, 0xf7, 0x68, 0x57, 0x9e, 0xe2, 0x4f,
-
  0x15, 0x87, 0x08, 0x27, 0x17, 0xe3, 0xa1, 0x31, 0xe0, 0x44, 0xb0, 0x80,
-
  0x4d, 0xc2, 0x65, 0xa7, 0x12, 0xfa, 0x19, 0x78, 0x57, 0xd8, 0xa4, 0xab,
-
  0x05, 0x42, 0x65, 0x23, 0x54, 0xa5, 0xb6, 0x14, 0x83, 0x80, 0x29, 0xe4,
-
  0xca, 0xa7, 0x46, 0x18, 0x10, 0x28, 0x5d, 0x33, 0xaf, 0xa5, 0x5c, 0x65,
-
  0x2e, 0x4e, 0xa8, 0x52, 0x34, 0x49, 0x63, 0x1b, 0x38, 0xc6, 0x0d, 0xf9,
-
  0xc2, 0x42, 0x75, 0x39, 0xbc, 0xb7, 0x16, 0x2a, 0xa1, 0xd0, 0x03, 0xaa,
-
  0x9e, 0xe0, 0xf0, 0x86, 0xc3, 0x59, 0xd1, 0x60, 0xa3, 0x9d, 0xc7, 0x0f,
-
  0x1f, 0x46, 0xd7, 0xa7, 0xc7, 0xd4, 0x52, 0x47, 0xf7, 0x8c, 0xe6, 0x30,
-
  0xac, 0x91, 0x71, 0xab, 0x73, 0x80, 0xbd, 0x62, 0x66, 0x25, 0xea, 0x27,
-
  0x31, 0x1f, 0x6f, 0x2e, 0xeb, 0x6d, 0x89, 0x48, 0x6d, 0xbc, 0xdc, 0x6c,
-
  0xf8, 0x6b, 0x64, 0xa7, 0x34, 0xfb, 0xda, 0xf9, 0xf2, 0xcb, 0x2f, 0x93,
-
  0xde, 0x39, 0x13, 0x0e, 0xcb, 0x35, 0xcb, 0xd1, 0xda, 0xb3, 0xec, 0x7a,
-
  0x0d, 0xf4, 0xd3, 0xe6, 0x49, 0x09, 0x64, 0x33, 0x19, 0x7b, 0xa8, 0xe8,
-
  0xd7, 0x52, 0x53, 0xe2, 0x0a, 0xb3, 0xa0, 0x58, 0xf2, 0x18, 0xab, 0x37,
-
  0x12, 0x94, 0xb0, 0x32, 0x27, 0x81, 0xb5, 0xcc, 0xea, 0x45, 0x39, 0x4b,
-
  0xe6, 0x93, 0x45, 0xe5, 0x1f, 0x32, 0x08, 0x36, 0xf6, 0x6e, 0xd0, 0x2d,
-
  0x9d, 0x8d, 0x17, 0x13, 0xc9, 0x33, 0x7e, 0xfd, 0xe3, 0x59, 0xb2, 0x79,
-
  0x72, 0xb6, 0xbd, 0xff, 0x15, 0x61, 0x54, 0x35, 0xce, 0xea, 0x64, 0x7c,
-
  0x4f, 0xe0, 0x8a, 0xd0, 0xd2, 0x5d, 0xeb, 0x0c, 0x7d, 0xc1, 0xb2, 0xb2,
-
  0x64, 0xba, 0x46, 0xf8, 0x3b, 0x6c, 0x1d, 0x57, 0xfc, 0x88, 0x96, 0x0d,
-
  0xdf, 0x5e, 0xc6, 0x46, 0x94, 0x69, 0x65, 0x49, 0x50, 0xce, 0x85, 0x91,
-
  0x51, 0x7e, 0x99, 0x01, 0xbc, 0x48, 0xed, 0xa7, 0x38, 0x91, 0x55, 0x9d,
-
  0x62, 0x57, 0x6a, 0x9e, 0x43, 0xf5, 0x98, 0xc5, 0x16, 0xb4, 0xfd, 0x19,
-
  0x6c, 0x02, 0xa2, 0x3e, 0xc5, 0x99, 0xdd, 0xa6, 0x11, 0xfb, 0xc8, 0x16,
-
  0x17, 0x3c, 0x22, 0x19, 0xa4, 0x96, 0x59, 0x27, 0xe3, 0xff, 0x9c, 0x79,
-
  0x75, 0xd2, 0x45, 0x99, 0xfd, 0x86, 0xea, 0xfc, 0xc7, 0x20, 0x6a, 0x51,
-
  0x0a, 0x9e, 0xe4, 0x47, 0x11, 0xa8, 0x50, 0x58, 0x77, 0x4a, 0x97, 0x6a,
-
  0xcb, 0xa4, 0xcb, 0xea, 0x00, 0xa8, 0x2f, 0x4f, 0xd5, 0x05, 0xcb, 0xbb,
-
  0x52, 0x3c, 0x12, 0x63, 0x19, 0xac, 0xbe, 0xa6, 0xc5, 0x52, 0x4c, 0xcd,
-
  0x1e, 0x9e, 0x0e, 0x51, 0x4c, 0x26, 0xa3, 0x4e, 0x91, 0x20, 0x02, 0xc9,
-
  0x93, 0x87, 0x7b, 0x7b, 0xdd, 0xe4, 0x11, 0x56, 0x47, 0x30, 0x6c, 0xad,
-
  0x90, 0x57, 0xb5, 0x04, 0xb0, 0x15, 0x90, 0xc9, 0xd9, 0xeb, 0x21, 0x01,
-
  0x67, 0x53, 0x05, 0x17, 0x39, 0xe8, 0x48, 0x28, 0x45, 0xe7, 0x2f, 0x7b,
-
  0x8f, 0x1e, 0xed, 0x7e, 0x75, 0x70, 0xda, 0x7b, 0xb4, 0xb7, 0xdb, 0xd9,
-
  0x12, 0x39, 0x3c, 0xc4, 0xa8, 0x87, 0x04, 0x4b, 0x0d, 0xea, 0x4e, 0xf2,
-
  0x11, 0xdb, 0xd4, 0xc9, 0x4b, 0xa6, 0x96, 0x6d, 0x4b, 0xc6, 0xed, 0x54,
-
  0xbf, 0x72, 0xbe, 0xa9, 0x45, 0x3e, 0x54, 0xbf, 0xb2, 0xe3, 0xa2, 0x23,
-
  0x62, 0x24, 0x21, 0x64, 0x39, 0x13, 0xa6, 0xad, 0xa4, 0x30, 0x69, 0x20,
-
  0x44, 0x6b, 0xed, 0xa3, 0x70, 0xb0, 0x68, 0x6e, 0x5a, 0x91, 0x88, 0x19,
-
  0xe0, 0xe6, 0xd1, 0xb3, 0x2d, 0xde, 0x82, 0x28, 0x12, 0x49, 0x91, 0xc0,
-
  0x79, 0xa4, 0x5d, 0xa9, 0xe7, 0x61, 0x37, 0xcb, 0xac, 0x98, 0x91, 0x95,
-
  0x19, 0x43, 0x23, 0x50, 0x31, 0xa7, 0xa7, 0xb6, 0xc5, 0xfd, 0xa2, 0x49,
-
  0x8e, 0xde, 0x57, 0xb4, 0x5c, 0xbe, 0x63, 0x19, 0x12, 0x4b, 0x26, 0x49,
-
  0xd9, 0x8f, 0x6c, 0x87, 0xa2, 0x8a, 0xed, 0x31, 0xd0, 0x09, 0x9e, 0x1a,
-
  0x43, 0xca, 0xe2, 0xd3, 0xc1, 0xaf, 0xb5, 0x46, 0x3c, 0x2d, 0x79, 0xee,
-
  0x3e, 0x0d, 0x6d, 0x8e, 0x7b, 0x60, 0x42, 0x58, 0x13, 0xd0, 0x7a, 0xbf,
-
  0xc1, 0xd2, 0x35, 0x87, 0x52, 0xce, 0xc6, 0xa8, 0xab, 0x75, 0xd3, 0xc8,
-
  0x69, 0xe7, 0x0d, 0x21, 0x54, 0xe3, 0x18, 0xcf, 0xc8, 0x4c, 0x2c, 0xee,
-
  0x41, 0x3d, 0x96, 0x32, 0xf6, 0x08, 0x14, 0x82, 0xe5, 0x2e, 0x35, 0xac,
-
  0xc4, 0x7b, 0xd8, 0xbc, 0x23, 0xac, 0x1b, 0xd9, 0x00, 0xaf, 0xd3, 0x1b,
-
  0x61, 0x3c, 0xc9, 0xa0, 0x04, 0x32, 0xc2, 0xea, 0xa8, 0x05, 0x25, 0xb3,
-
  0x12, 0xa4, 0x0f, 0xdf, 0xfa, 0xc8, 0xbf, 0x81, 0x11, 0x4c, 0x42, 0x2d,
-
  0x0c, 0xbc, 0x87, 0x5f, 0x9e, 0xbf, 0x7e, 0x25, 0x55, 0xea, 0x18, 0x85,
-
  0x04, 0xb3, 0x8b, 0xc4, 0x1d, 0x50, 0x2d, 0x06, 0xd3, 0x1c, 0x37, 0xac,
-
  0xae, 0x2d, 0x31, 0x4b, 0xef, 0xf2, 0xa6, 0x6e, 0xeb, 0x5c, 0x85, 0x49,
-
  0x28, 0x42, 0x21, 0x7f, 0x6b, 0x8a, 0x56, 0x80, 0x0e, 0x48, 0xcc, 0xd9,
-
  0x40, 0x29, 0xba, 0x4b, 0x60, 0x9a, 0xdb, 0x1f, 0x7a, 0xd7, 0xd7, 0xd7,
-
  0x3d, 0x1c, 0x18, 0x06, 0xc4, 0x0b, 0x68, 0x4a, 0x1f, 0x6e, 0x44, 0x8a,
-
  0xd9, 0xe1, 0xb0, 0x7e, 0xfc, 0x36, 0x1c, 0x24, 0xec, 0xb4, 0x57, 0xa6,
-
  0xd7, 0x5a, 0xc4, 0x90, 0xca, 0x98, 0xb8, 0x62, 0x69, 0x5c, 0x14, 0x26,
-
  0xa8, 0xb8, 0x02, 0x6e, 0x97, 0x8a, 0xed, 0x52, 0x1d, 0xc2, 0x96, 0x17,
-
  0x99, 0xd6, 0xa1, 0xce, 0x59, 0xf2, 0x9d, 0xaf, 0x7c, 0x04, 0x82, 0x33,
-
  0x96, 0xb4, 0x16, 0xdf, 0xe5, 0xa2, 0x44, 0xe1, 0x0c, 0xfd, 0x3b, 0x84,
-
  0x69, 0x6a, 0x1e, 0x72, 0xb1, 0x71, 0x5a, 0x99, 0x27, 0x67, 0x98, 0xa0,
-
  0xa1, 0xf2, 0x1b, 0xc1, 0x32, 0x81, 0xe2, 0xf8, 0xbb, 0xb7, 0xaf, 0x04,
-
  0x20, 0xc6, 0x31, 0x7d, 0x26, 0x67, 0x4a, 0xe9, 0xa0, 0x8d, 0x02, 0x7a,
-
  0x99, 0x70, 0xf9, 0x34, 0xbc, 0x8b, 0xb0, 0x59, 0x69, 0xd1, 0x16, 0xca,
-
  0x1d, 0x4d, 0xa9, 0xa1, 0xc8, 0x3a, 0xa5, 0x2b, 0x2a, 0x46, 0xb2, 0x66,
-
  0xc8, 0xb2, 0xa0, 0x32, 0x77, 0x9a, 0xbf, 0xee, 0xed, 0xca, 0x21, 0x62,
-
  0x56, 0xc4, 0x2a, 0xde, 0xdb, 0x79, 0x9e, 0x11, 0x62, 0x7f, 0x20, 0x60,
-
  0xb2, 0x02, 0x4f, 0xb3, 0xf2, 0x42, 0x13, 0x6e, 0xc4, 0x79, 0xaa, 0x2c,
-
  0x98, 0x1b, 0xfa, 0x1f, 0x3d, 0xf6, 0x0f, 0x12, 0xaf, 0x5d, 0x10, 0xc8,
-
  0x3a, 0xd3, 0xc4, 0x06, 0xd6, 0x44, 0x24, 0x4b, 0xe5, 0x28, 0x9d, 0xc1,
-
  0x04, 0x13, 0x2a, 0x92, 0x58, 0xbd, 0x07, 0x82, 0xfd, 0x66, 0x52, 0x2c,
-
  0xaa, 0x9b, 0x8d, 0x44, 0xea, 0xcf, 0x72, 0x43, 0x5c, 0x81, 0xaf, 0xa6,
-
  0x90, 0x15, 0xdc, 0x8b, 0xe1, 0x25, 0x68, 0xbf, 0x92, 0xcc, 0x42, 0x68,
-
  0xb7, 0x94, 0xd6, 0xb3, 0xe1, 0x5a, 0xfc, 0x1f, 0xbe, 0xb1, 0x86, 0xf7,
-
  0x43, 0x0a, 0xd1, 0xd5, 0xe6, 0x43, 0x0e, 0xc8, 0xf2, 0x92, 0x81, 0xf3,
-
  0x9d, 0x70, 0xb4, 0x92, 0x82, 0xbd, 0x9c, 0x1b, 0xc9, 0x01, 0xd3, 0xa9,
-
  0xc3, 0x92, 0x0c, 0x52, 0xd6, 0x16, 0x5a, 0xac, 0x48, 0x3b, 0xe4, 0x10,
-
  0x5a, 0x2b, 0x79, 0xab, 0x5c, 0x9d, 0xfd, 0x09, 0x41, 0x8e, 0xd6, 0x77,
-
  0x12, 0xf5, 0xbd, 0x9d, 0x4a, 0xf9, 0x74, 0xff, 0x55, 0xea, 0xa1, 0x7b,
-
  0x93, 0x8d, 0x71, 0x51, 0x0c, 0xd2, 0x72, 0x23, 0x5a, 0x21, 0x2c, 0x9f,
-
  0x83, 0x23, 0x24, 0xaf, 0xb0, 0x88, 0x65, 0xd4, 0xc2, 0x77, 0xfc, 0x74,
-
  0x5f, 0xab, 0xf6, 0x31, 0xeb, 0xc1, 0x6b, 0x7a, 0x32, 0x0a, 0xfe, 0x56,
-
  0xec, 0x47, 0xe1, 0x05, 0xb8, 0x70, 0x86, 0xe4, 0x49, 0x21, 0xb4, 0x64,
-
  0x53, 0x02, 0x85, 0x8d, 0x04, 0xf1, 0x17, 0xa9, 0xa4, 0x92, 0x94, 0x15,
-
  0x8c, 0x63, 0x93, 0x94, 0x1d, 0xf3, 0x4f, 0xa3, 0x97, 0x10, 0x63, 0x7d,
-
  0x28, 0x20, 0x45, 0x97, 0x5e, 0x9c, 0x4a, 0xb4, 0x24, 0x8d, 0x93, 0x66,
-
  0xfe, 0x00, 0x2d, 0xd2, 0xb3, 0xe2, 0x8c, 0xba, 0x23, 0x80, 0xe7, 0x5f,
-
  0xa3, 0x38, 0x3d, 0x5e, 0x03, 0xad, 0x1c, 0x3b, 0xf1, 0xe2, 0xcc, 0x61,
-
  0xf1, 0x67, 0x27, 0xc5, 0xcc, 0xaa, 0x32, 0x0b, 0xb7, 0xb2, 0xcb, 0x54,
-
  0x63, 0xef, 0xec, 0x0a, 0x2a, 0x66, 0x49, 0x94, 0xca, 0x28, 0x11, 0x08,
-
  0xcc, 0x07, 0x43, 0x6d, 0xd1, 0x21, 0x4b, 0xef, 0x5d, 0xa9, 0xf7, 0xea,
-
  0xb0, 0x91, 0xa7, 0xd8, 0x54, 0xc6, 0xa9, 0xa9, 0xc7, 0x02, 0xcd, 0x33,
-
  0xb7, 0xda, 0x2e, 0x41, 0x4b, 0x9b, 0xab, 0x08, 0x1b, 0x08, 0x33, 0x8a,
-
  0xae, 0x00, 0x39, 0x89, 0x82, 0xe6, 0x88, 0x11, 0xea, 0x4e, 0xde, 0x97,
-
  0x17, 0x63, 0x94, 0x74, 0xe8, 0xf4, 0xe0, 0x5f, 0x77, 0xbb, 0x33, 0xe2,
-
  0xa7, 0xf1, 0xcf, 0xba, 0x28, 0x26, 0xdf, 0x0c, 0xa7, 0x23, 0xec, 0x68,
-
  0x9d, 0xf7, 0xbf, 0xb3, 0x23, 0xb4, 0xfa, 0x1a, 0x3e, 0x5f, 0x42, 0x40,
-
  0x0e, 0x31, 0x4b, 0x2e, 0x68, 0xc9, 0x8c, 0xcd, 0x56, 0xc7, 0xf4, 0x92,
-
  0x0e, 0x99, 0x77, 0xa7, 0xb9, 0x9a, 0x30, 0x0a, 0x61, 0x28, 0x16, 0xd7,
-
  0x88, 0x3f, 0x77, 0xc3, 0xdd, 0x62, 0xec, 0x35, 0x6e, 0x48, 0xe9, 0xce,
-
  0x64, 0x63, 0xfa, 0x80, 0xd4, 0x94, 0x65, 0x09, 0x60, 0x09, 0x67, 0x98,
-
  0x8b, 0xa4, 0x51, 0xf9, 0xdf, 0x3c, 0x15, 0x8c, 0x6e, 0x6e, 0xa2, 0x1f,
-
  0x37, 0x15, 0x6a, 0x4f, 0xdd, 0x47, 0x04, 0xa2, 0x6b, 0xf8, 0xbb, 0xf5,
-
  0x8d, 0x20, 0xd1, 0xba, 0xb8, 0x13, 0x27, 0x25, 0x90, 0x9a, 0x77, 0x90,
-
  0x5b, 0x0e, 0xb9, 0xec, 0x5a, 0xd6, 0xe3, 0x94, 0xae, 0x69, 0xa2, 0x5c,
-
  0x77, 0xe2, 0x7c, 0x1e, 0x27, 0x6d, 0x66, 0x48, 0x7d, 0x57, 0x10, 0x5a,
-
  0xbb, 0x53, 0xae, 0x81, 0x25, 0x55, 0x05, 0x2e, 0xc6, 0x67, 0xe3, 0xea,
-
  0xa0, 0x2b, 0x7c, 0xd7, 0xeb, 0xf8, 0x40, 0x91, 0x65, 0x1e, 0xaf, 0xec,
-
  0xfa, 0x39, 0x9f, 0xd3, 0x8a, 0xee, 0x25, 0x2f, 0x6c, 0x25, 0x96, 0x81,
-
  0x87, 0x18, 0xb3, 0x33, 0xa9, 0xb0, 0xae, 0x35, 0x76, 0x91, 0x6f, 0x58,
-
  0x91, 0x53, 0xb1, 0x90, 0x1b, 0x4f, 0x0d, 0xf4, 0x66, 0x9c, 0x57, 0x18,
-
  0x2f, 0xdd, 0xbb, 0x28, 0xb5, 0x21, 0xd3, 0x62, 0xdf, 0x02, 0xf3, 0x9d,
-
  0xca, 0x4a, 0xd1, 0xb2, 0x9f, 0x9d, 0xf2, 0x0a, 0x64, 0x7d, 0x5e, 0x11,
-
  0x2b, 0xd7, 0x9e, 0x63, 0xf4, 0x67, 0x2f, 0x96, 0x89, 0xef, 0x3e, 0x48,
-
  0x72, 0x2a, 0xc8, 0x99, 0x62, 0x74, 0xb7, 0xc4, 0xa6, 0xa5, 0xb7, 0xd5,
-
  0x8d, 0x1e, 0x64, 0x08, 0xaf, 0x21, 0xbb, 0xe0, 0x1f, 0x18, 0xf3, 0x20,
-
  0xaf, 0x4b, 0x92, 0x8d, 0x54, 0x46, 0xe2, 0x17, 0x54, 0x73, 0xd1, 0x51,
-
  0x70, 0x50, 0xa4, 0xfa, 0xb0, 0x02, 0x8c, 0x6f, 0x18, 0x7e, 0xa2, 0x80,
-
  0xed, 0x6c, 0x6e, 0xca, 0x10, 0x86, 0x08, 0x7a, 0x9a, 0x1e, 0xf0, 0x47,
-
  0xbd, 0x97, 0xfc, 0x6f, 0xe7, 0x99, 0xbc, 0x75, 0x0e, 0x6f, 0x1d, 0x2c,
-
  0x4f, 0xcd, 0xbf, 0xda, 0xf9, 0xb8, 0xb2, 0x85, 0xec, 0xe1, 0xc0, 0xf0,
-
  0x93, 0x90, 0x3d, 0x6c, 0x89, 0xbb, 0xd6, 0x13, 0x3a, 0x16, 0x79, 0x8e,
-
  0x9c, 0xe9, 0xa2, 0xf9, 0x5d, 0xc8, 0xed, 0x95, 0x1b, 0x34, 0x8e, 0x92,
-
  0xa6, 0x3c, 0xb9, 0xa0, 0xc8, 0xdf, 0xcd, 0x10, 0xa4, 0xe9, 0x75, 0x38,
-
  0x71, 0x93, 0x2b, 0xc4, 0x66, 0x19, 0xe3, 0x0c, 0xb7, 0x1f, 0x78, 0x3d,
-
  0x10, 0x93, 0x1b, 0x49, 0xd4, 0x95, 0x7d, 0x5e, 0xd4, 0x49, 0x88, 0xfe,
-
  0xe1, 0x2d, 0xff, 0x48, 0x11, 0xdd, 0x8f, 0x21, 0x4a, 0x97, 0x5f, 0x0e,
-
  0xfe, 0xfc, 0xc8, 0x6b, 0x31, 0xb4, 0xdb, 0xb9, 0xcc, 0x60, 0x4b, 0xef,
-
  0xbe, 0xda, 0xdc, 0x1b, 0xdf, 0xa5, 0x35, 0xfe, 0xaf, 0xb3, 0xfe, 0xc2,
-
  0xc6, 0x4b, 0x1a, 0xae, 0xa0, 0x5b, 0x17, 0xb6, 0x1b, 0x38, 0x8d, 0xca,
-
  0x14, 0x9c, 0xef, 0xa4, 0x2b, 0xac, 0x8a, 0x80, 0x39, 0x48, 0xd4, 0xfe,
-
  0x8e, 0xdc, 0xc7, 0x4a, 0xd6, 0x13, 0x79, 0xcf, 0xb3, 0x12, 0xcf, 0x74,
-
  0x15, 0x74, 0x13, 0xac, 0x9c, 0x19, 0x5c, 0x08, 0x48, 0x82, 0xcf, 0x7e,
-
  0x38, 0x26, 0x68, 0x0a, 0xb8, 0xc2, 0x66, 0xb5, 0xe8, 0x09, 0x3c, 0x40,
-
  0xd4, 0x0b, 0xcb, 0x50, 0x5b, 0x80, 0x62, 0xb9, 0x83, 0x76, 0x10, 0x3c,
-
  0xce, 0x16, 0x9c, 0xc8, 0x28, 0x91, 0x21, 0xc7, 0x8b, 0xe4, 0xab, 0xd4,
-
  0xf0, 0x64, 0xcc, 0xb6, 0x24, 0xae, 0xbe, 0xf3, 0xd0, 0x95, 0x02, 0x6e,
-
  0x22, 0xa0, 0x9e, 0x58, 0x84, 0x58, 0xb6, 0x43, 0x8b, 0x29, 0x6e, 0x04,
-
  0x6b, 0x1a, 0xce, 0x72, 0x1e, 0x8e, 0x64, 0x75, 0x33, 0xab, 0xd3, 0x0f,
-
  0x59, 0xa5, 0xf9, 0xad, 0x1a, 0x9f, 0xf9, 0xc5, 0x83, 0x07, 0x4e, 0x25,
-
  0xf3, 0xc0, 0x36, 0xac, 0x2d, 0x8b, 0xce, 0x4b, 0x75, 0xc2, 0xfb, 0xc9,
-
  0x7f, 0x29, 0xea, 0x25, 0x30, 0x69, 0x36, 0xb7, 0xa2, 0x8b, 0xff, 0xc1,
-
  0x12, 0x28, 0x4e, 0xd0, 0x41, 0xb5, 0xe8, 0x0a, 0xb9, 0xfc, 0x31, 0x7a,
-
  0x12, 0x66, 0xdc, 0xf9, 0x4e, 0x83, 0x28, 0x51, 0x3d, 0x42, 0xe1, 0xf3,
-
  0x81, 0x18, 0x1e, 0xdf, 0x8b, 0x62, 0xce, 0xa3, 0x95, 0x9c, 0x14, 0x37,
-
  0x1f, 0xde, 0xe3, 0x61, 0x8a, 0x0a, 0xfc, 0x20, 0x83, 0xa9, 0xe9, 0x36,
-
  0x7d, 0xb3, 0x7a, 0x3e, 0x36, 0x28, 0x5a, 0x68, 0x9a, 0x10, 0xdf, 0x3d,
-
  0xb6, 0xba, 0x01, 0x96, 0x00, 0x47, 0x08, 0x2d, 0x48, 0x84, 0xa7, 0x84,
-
  0xe4, 0x48, 0xc8, 0x95, 0x01, 0x83, 0x08, 0xd1, 0xb2, 0x2d, 0x89, 0x24,
-
  0xc2, 0xbb, 0xd7, 0x92, 0x36, 0xad, 0x31, 0x00, 0x72, 0xe4, 0x46, 0x45,
-
  0x08, 0x81, 0x54, 0x1e, 0x10, 0x57, 0xa2, 0xc7, 0x11, 0x21, 0xf0, 0x03,
-
  0x10, 0x43, 0xcd, 0x3b, 0x3c, 0xc8, 0x9c, 0xf2, 0x3c, 0x52, 0x27, 0x9b,
-
  0x0e, 0xc4, 0x38, 0x1a, 0x8e, 0x82, 0x8a, 0x52, 0x0a, 0x03, 0x72, 0xc9,
-
  0x31, 0x51, 0xcc, 0x87, 0x2b, 0x61, 0xc8, 0x9b, 0xa3, 0x57, 0xf1, 0x56,
-
  0xb7, 0x39, 0x8f, 0xb4, 0x56, 0xd6, 0xad, 0x14, 0x91, 0xb3, 0x0b, 0x45,
-
  0xcd, 0x83, 0x68, 0xd0, 0xe9, 0x4b, 0xdd, 0x4f, 0x92, 0x23, 0xa0, 0x85,
-
  0x75, 0x24, 0x09, 0xb7, 0x88, 0xff, 0x8e, 0xf1, 0xfb, 0xe1, 0x87, 0xca,
-
  0x83, 0x3c, 0xf8, 0x73, 0x4b, 0x7c, 0xc2, 0xb5, 0x87, 0x16, 0xb8, 0x56,
-
  0xb1, 0x7a, 0x72, 0x18, 0x95, 0x83, 0x41, 0x4d, 0x09, 0x98, 0x43, 0x2f,
-
  0x35, 0xca, 0xeb, 0x90, 0xb4, 0x86, 0x49, 0x2d, 0x45, 0xc7, 0x29, 0x2c,
-
  0x96, 0x76, 0xf2, 0x9b, 0x20, 0x28, 0xb0, 0xb7, 0x45, 0xd1, 0xae, 0x1c,
-
  0xa6, 0xb9, 0x4b, 0xba, 0xe2, 0xa2, 0xeb, 0xbc, 0xe7, 0x78, 0x2a, 0xee,
-
  0xda, 0xf5, 0x25, 0xa6, 0x79, 0x5f, 0xaa, 0x51, 0xb3, 0x5d, 0x9a, 0xcb,
-
  0x15, 0x66, 0xa6, 0xad, 0x75, 0x15, 0x84, 0x17, 0xbf, 0xe1, 0x7f, 0x89,
-
  0xd1, 0x7e, 0xec, 0xbb, 0x46, 0x17, 0x1f, 0xfd, 0x26, 0xbd, 0x45, 0x61,
-
  0x17, 0x6b, 0x5f, 0x43, 0x5e, 0xc4, 0x8f, 0x74, 0x9d, 0x6c, 0x92, 0x5d,
-
  0xf0, 0x35, 0xfc, 0xf4, 0xd5, 0xd1, 0x8f, 0x47, 0xaf, 0xf4, 0x4a, 0xfa,
-
  0xe1, 0xec, 0x6c, 0xfb, 0x7d, 0x56, 0x0e, 0xb2, 0xb2, 0xa8, 0xd8, 0x2b,
-
  0x40, 0x5f, 0x93, 0xb0, 0x1e, 0x8a, 0x51, 0xb8, 0xc0, 0x3f, 0x69, 0x49,
-
  0x93, 0x6a, 0x35, 0x05, 0x0f, 0x46, 0x64, 0x08, 0x7c, 0x25, 0x3a, 0x22,
-
  0xc9, 0x00, 0x9f, 0x86, 0x0c, 0x46, 0x04, 0xd4, 0xc6, 0x53, 0xf1, 0x9c,
-
  0xed, 0x08, 0x9c, 0x34, 0x8d, 0x24, 0x1f, 0x86, 0xa6, 0x8f, 0xce, 0x09,
-
  0x01, 0x96, 0x1e, 0x96, 0xce, 0x08, 0xb1, 0x08, 0xa7, 0x46, 0xab, 0x21,
-
  0xee, 0xfb, 0x93, 0x3f, 0xf5, 0x0e, 0xcf, 0x7a, 0xcf, 0x8f, 0x5e, 0x1d,
-
  0xfd, 0x70, 0x78, 0x7e, 0x64, 0x85, 0x4f, 0x49, 0xce, 0xe4, 0x53, 0x01,
-
  0x2d, 0xfc, 0x49, 0xe6, 0x66, 0xe5, 0x1d, 0xeb, 0x9c, 0xcb, 0xba, 0x5b,
-
  0xb9, 0x9a, 0x14, 0x19, 0x74, 0xcd, 0x59, 0x4f, 0x40, 0x96, 0x93, 0xa9,
-
  0xf4, 0xaf, 0xa3, 0x49, 0x27, 0xd7, 0xe9, 0x4d, 0x45, 0x6c, 0x71, 0x86,
-
  0xa9, 0xdf, 0xb9, 0xe1, 0x0b, 0xf1, 0x1c, 0x1c, 0xaa, 0x98, 0x5b, 0x1e,
-
  0x27, 0x7d, 0x46, 0xab, 0xbf, 0xbe, 0x3b, 0xf4, 0xee, 0xc8, 0x96, 0x26,
-
  0xb1, 0x87, 0x5e, 0x3a, 0xb8, 0xda, 0x6b, 0x4a, 0x2f, 0x5a, 0x2b, 0x42,
-
  0x48, 0xa7, 0xaa, 0x26, 0x81, 0x6a, 0xa8, 0x96, 0x61, 0x24, 0xbc, 0x18,
-
  0x32, 0x18, 0xe7, 0x92, 0x3c, 0xa7, 0x27, 0x92, 0x46, 0x16, 0x83, 0x85,
-
  0x8d, 0xc4, 0x1f, 0x8b, 0xf4, 0x3b, 0xbc, 0xcc, 0x30, 0x85, 0x0d, 0xbd,
-
  0x19, 0x95, 0xe6, 0xb7, 0xc4, 0xc8, 0xfe, 0x5c, 0xb5, 0x91, 0xa3, 0xa0,
-
  0xb0, 0x58, 0x32, 0x6e, 0x27, 0x45, 0x32, 0x25, 0x84, 0x67, 0xd5, 0x0f,
-
  0xc9, 0x5c, 0x1a, 0xbf, 0x1f, 0xc7, 0xee, 0xbb, 0x78, 0x92, 0x19, 0x15,
-
  0x37, 0xd3, 0xe2, 0x98, 0x51, 0xdd, 0x29, 0xf3, 0x43, 0xe0, 0x57, 0x96,
-
  0xa7, 0x6a, 0x83, 0x68, 0x04, 0x47, 0xf0, 0x5a, 0xdc, 0x53, 0x5c, 0x84,
-
  0x55, 0x21, 0xfe, 0x98, 0x82, 0x8d, 0x32, 0x82, 0x4f, 0xb3, 0xba, 0xb4,
-
  0x18, 0x5d, 0xa4, 0x22, 0xb6, 0x14, 0xaf, 0x8c, 0x8d, 0x25, 0xa1, 0x1c,
-
  0x76, 0xc3, 0xaf, 0x5b, 0x06, 0x60, 0x46, 0x19, 0x0f, 0x93, 0x8d, 0x94,
-
  0x5b, 0x56, 0xd2, 0xf9, 0x7b, 0x37, 0x20, 0x2d, 0xd8, 0x41, 0x30, 0x20,
-
  0xac, 0x80, 0x88, 0xe4, 0xbc, 0x78, 0xad, 0xd6, 0xba, 0x6e, 0x80, 0xc2,
-
  0x28, 0x2d, 0x9f, 0x27, 0x20, 0xaf, 0x84, 0xa2, 0xdc, 0x29, 0xc5, 0xd0,
-
  0x31, 0xa8, 0x0a, 0x19, 0x89, 0x04, 0xfe, 0x5f, 0x1e, 0xc6, 0x02, 0x90,
-
  0x02, 0xbe, 0x69, 0x28, 0xaa, 0x91, 0xe3, 0xcb, 0xc3, 0xb9, 0x48, 0x0d,
-
  0x31, 0x72, 0xa4, 0x46, 0x65, 0x0d, 0x0d, 0x21, 0xe6, 0x3e, 0xfc, 0xee,
-
  0x01, 0x87, 0x62, 0x35, 0x11, 0xfc, 0x7d, 0xdd, 0xf0, 0x32, 0x1c, 0xbd,
-
  0x3b, 0xb6, 0xd4, 0x72, 0x2f, 0x9b, 0x97, 0x75, 0x88, 0x55, 0xd8, 0x0a,
-
  0xb0, 0x78, 0x12, 0x62, 0x62, 0x89, 0x18, 0x47, 0xa7, 0x6f, 0xcf, 0x59,
-
  0x2e, 0x7a, 0x45, 0xbf, 0xc9, 0x16, 0x88, 0x63, 0x8a, 0x2b, 0xc3, 0xab,
-
  0xcf, 0x97, 0xea, 0x2b, 0x52, 0x8c, 0x91, 0x25, 0xb9, 0xa8, 0x49, 0x75,
-
  0xa6, 0x85, 0x04, 0x65, 0x6f, 0x91, 0xad, 0x4e, 0xe7, 0x75, 0x70, 0x2c,
-
  0x53, 0x47, 0x6a, 0x1c, 0xa3, 0x7c, 0x50, 0x96, 0xf5, 0x31, 0xef, 0x5c,
-
  0xca, 0x72, 0x86, 0xe4, 0x2b, 0x0d, 0x65, 0xcb, 0x6b, 0x0e, 0xe3, 0xc2,
-
  0x87, 0x92, 0x52, 0x80, 0x2d, 0x81, 0x25, 0x0b, 0x17, 0xa0, 0xb1, 0x6b,
-
  0x92, 0x8b, 0xc2, 0x55, 0x07, 0x75, 0x4a, 0x73, 0xd1, 0x69, 0xc4, 0x1a,
-
  0x78, 0xd3, 0x95, 0x34, 0x89, 0xcc, 0x17, 0x4a, 0x23, 0x58, 0x00, 0x0e,
-
  0xc3, 0x51, 0xd3, 0x85, 0x14, 0x5d, 0x13, 0x88, 0xeb, 0x8a, 0xfd, 0x30,
-
  0x9a, 0x84, 0x97, 0x72, 0xd0, 0x3a, 0x5b, 0x8c, 0x06, 0x64, 0xa7, 0x92,
-
  0x86, 0x52, 0xa9, 0x6b, 0x24, 0xd9, 0xa1, 0x7a, 0x63, 0xf0, 0x0c, 0x64,
-
  0x6d, 0x83, 0xec, 0x83, 0xbb, 0x14, 0xeb, 0xbe, 0x94, 0x6e, 0x6c, 0xb9,
-
  0x66, 0xdc, 0xb9, 0x4c, 0x54, 0x50, 0x3f, 0x39, 0x19, 0x13, 0x88, 0x28,
-
  0x6c, 0x31, 0x2f, 0x01, 0x5b, 0x27, 0xc5, 0x38, 0xe9, 0xc8, 0xa0, 0x11,
-
  0x8c, 0xaa, 0x59, 0x7a, 0x15, 0x21, 0x81, 0xb8, 0x42, 0x51, 0xc7, 0xa7,
-
  0x57, 0x8f, 0xe3, 0xa8, 0x24, 0xc3, 0xb3, 0x64, 0x58, 0x04, 0x35, 0xb2,
-
  0xeb, 0xb2, 0x87, 0x88, 0x42, 0xe4, 0xf4, 0xda, 0x0d, 0x53, 0x1a, 0x36,
-
  0x48, 0xcf, 0x71, 0xe8, 0x28, 0x9b, 0xd7, 0xc5, 0x67, 0x29, 0x84, 0xa4,
-
  0x05, 0xfe, 0x82, 0xfd, 0x49, 0xb3, 0x38, 0xe4, 0xb2, 0x00, 0x82, 0x18,
-
  0x52, 0x65, 0x06, 0x64, 0x84, 0xf8, 0x06, 0x05, 0xfa, 0x28, 0x48, 0x17,
-
  0xad, 0x95, 0x24, 0xfb, 0x4a, 0xd0, 0x0e, 0x05, 0xc0, 0x16, 0x84, 0xd6,
-
  0x3c, 0x74, 0x08, 0x90, 0x72, 0xee, 0xe8, 0x89, 0xb4, 0xba, 0x6a, 0xd4,
-
  0xae, 0xf7, 0x4b, 0x95, 0xb4, 0x55, 0xb0, 0xff, 0x24, 0x1e, 0xbf, 0xbc,
-
  0xfc, 0x2b, 0x2e, 0x6e, 0xdf, 0xfb, 0x3a, 0xf1, 0x35, 0xe1, 0x85, 0xea,
-
  0x4a, 0xf8, 0xaf, 0x4e, 0xbd, 0x85, 0x09, 0x54, 0x57, 0x6d, 0x4c, 0x40,
-
  0x79, 0x80, 0x2a, 0xa5, 0x47, 0xa7, 0x67, 0x3f, 0xda, 0xc9, 0xe7, 0x83,
-
  0xcf, 0x19, 0x3b, 0xba, 0xf0, 0x78, 0x84, 0x1a, 0xd9, 0x6d, 0x72, 0xf0,
-
  0xed, 0xdc, 0xcb, 0xc1, 0x5f, 0x3a, 0xf7, 0xd4, 0xb6, 0x9c, 0xf8, 0xe4,
-
  0xf4, 0xf0, 0xec, 0x47, 0xc1, 0x90, 0xb0, 0x13, 0xdf, 0x3c, 0xf0, 0xe6,
-
  0x9c, 0xa9, 0x81, 0xb0, 0xf0, 0x6d, 0x7f, 0x5c, 0x60, 0xce, 0x6b, 0x1d,
-
  0x17, 0xe8, 0x73, 0xf9, 0xb8, 0xe8, 0x62, 0xdc, 0x76, 0x5c, 0x80, 0x3c,
-
  0x56, 0x1d, 0x17, 0x7c, 0x09, 0xcf, 0x08, 0x01, 0x1d, 0xc4, 0x07, 0xc5,
-
  0x2e, 0x00, 0x3d, 0x28, 0x3c, 0x86, 0x90, 0x93, 0x7e, 0xe7, 0x49, 0x81,
-
  0x01, 0x73, 0x0a, 0x9e, 0x1c, 0x14, 0x93, 0x89, 0xe2, 0x93, 0xa2, 0x66,
-
  0xf3, 0x55, 0x27, 0x45, 0xcf, 0x96, 0x04, 0x9b, 0x92, 0x51, 0xd7, 0x0e,
-
  0x0b, 0xef, 0xb9, 0xa3, 0x97, 0x16, 0xd0, 0xd5, 0x88, 0xbc, 0x56, 0x81,
-
  0xd0, 0x37, 0x31, 0x57, 0xef, 0x06, 0x5d, 0x6d, 0x5b, 0xe0, 0xbb, 0x0e,
-
  0x04, 0x0c, 0xe0, 0xe3, 0x0e, 0x84, 0x05, 0x42, 0xb5, 0x1e, 0x08, 0x14,
-
  0xd8, 0x7b, 0x2a, 0xee, 0x81, 0xe4, 0xdb, 0xb3, 0xe0, 0xfa, 0xa3, 0x0f,
-
  0xb9, 0xd0, 0xa2, 0x24, 0xb6, 0x83, 0x92, 0xa1, 0x3e, 0x47, 0x46, 0x0b,
-
  0x14, 0x1b, 0x90, 0x40, 0x1e, 0x69, 0x23, 0xbc, 0x7e, 0x03, 0xcc, 0x56,
-
  0x13, 0x5c, 0x14, 0xb4, 0xee, 0x2d, 0x38, 0x8c, 0xef, 0x5a, 0x53, 0xed,
-
  0xf0, 0x7d, 0xca, 0xed, 0xca, 0xe8, 0x44, 0x59, 0x99, 0xa2, 0x3a, 0x29,
-
  0x11, 0x4b, 0x61, 0x4a, 0x98, 0x9a, 0x6a, 0x0c, 0x94, 0x8b, 0xad, 0xc9,
-
  0x9f, 0xda, 0xc6, 0xde, 0xce, 0xab, 0xcc, 0x07, 0x23, 0x1c, 0x6b, 0x3d,
-
  0x5e, 0xd5, 0xd6, 0xfe, 0xdd, 0xdb, 0xd4, 0x3a, 0xaa, 0xb5, 0xe2, 0x73,
-
  0x1e, 0xef, 0x36, 0xe2, 0x73, 0xe8, 0x76, 0x0e, 0xdb, 0x35, 0xab, 0x7a,
-
  0x56, 0x89, 0x3b, 0x79, 0x6a, 0xbf, 0xaa, 0xe2, 0xfa, 0xfc, 0xcd, 0x19,
-
  0x47, 0xe8, 0x84, 0x24, 0x6c, 0x04, 0x77, 0xb2, 0x74, 0xeb, 0xfa, 0xb2,
-
  0x2c, 0x16, 0x17, 0x97, 0x0e, 0x86, 0xc1, 0x9a, 0x68, 0xcb, 0x42, 0xe6,
-
  0xec, 0x5b, 0xc6, 0xb6, 0xc8, 0x4a, 0xb2, 0x5c, 0xd5, 0x05, 0x57, 0x79,
-
  0xd6, 0x31, 0x24, 0x9b, 0xac, 0x33, 0xba, 0xd0, 0x14, 0xc6, 0x0a, 0x92,
-
  0x93, 0x0c, 0x03, 0x12, 0x0b, 0x8c, 0x15, 0x56, 0xb4, 0x8a, 0x46, 0x56,
-
  0x68, 0x87, 0xca, 0xdf, 0x84, 0x26, 0x39, 0x47, 0x77, 0x53, 0x10, 0x93,
-
  0xa3, 0xbc, 0xca, 0x2d, 0x09, 0xae, 0x8a, 0x17, 0xe2, 0xce, 0x18, 0x2b,
-
  0x52, 0x20, 0xad, 0xf4, 0xeb, 0xc7, 0xc4, 0x58, 0xc5, 0x1d, 0x65, 0xf5,
-
  0xe5, 0x6d, 0x60, 0x08, 0xcd, 0xc7, 0x05, 0x1c, 0xb4, 0x52, 0x9c, 0xd2,
-
  0x41, 0xa3, 0x90, 0x25, 0x86, 0x2c, 0x6b, 0xf5, 0x8c, 0x61, 0x2f, 0x2d,
-
  0x2d, 0xab, 0xcf, 0x9f, 0x62, 0x6c, 0x71, 0x7e, 0xf5, 0xb0, 0x87, 0x2b,
-
  0xa0, 0x96, 0x0c, 0xfe, 0xec, 0x31, 0x7d, 0x16, 0x13, 0x87, 0x3d, 0xf9,
-
  0x54, 0x56, 0x2c, 0x22, 0x8d, 0xef, 0x73, 0x06, 0x3e, 0x48, 0x43, 0x98,
-
  0xe3, 0xf1, 0xa9, 0xe5, 0xac, 0xd2, 0xc9, 0x9c, 0xa6, 0xef, 0x45, 0xe6,
-
  0x79, 0x98, 0x44, 0xc4, 0x23, 0xd7, 0x93, 0xd6, 0x82, 0x53, 0xe0, 0x30,
-
  0xa3, 0x2d, 0x91, 0x2a, 0xeb, 0x4c, 0xd3, 0x9c, 0xf0, 0x36, 0xe1, 0x96,
-
  0x85, 0x02, 0x34, 0x3a, 0x3a, 0x0a, 0x31, 0xc2, 0xed, 0x37, 0x58, 0x55,
-
  0xee, 0xd5, 0xde, 0x62, 0x2c, 0x8c, 0x78, 0x5e, 0x3e, 0x11, 0xe6, 0x5e,
-
  0x61, 0xfd, 0xe3, 0x6e, 0x76, 0x77, 0xfa, 0xbb, 0xfd, 0xbd, 0xfe, 0xfe,
-
  0xdd, 0xbb, 0x6d, 0xaf, 0xdc, 0xdb, 0x6e, 0x1b, 0xfd, 0xac, 0xb1, 0xdb,
-
  0x8f, 0xef, 0x6b, 0xb7, 0x1f, 0xff, 0x2f, 0xd9, 0xed, 0xc7, 0xab, 0x76,
-
  0xfb, 0xf1, 0xbf, 0x67, 0xb7, 0xa5, 0x9b, 0xbd, 0x74, 0xe7, 0xe1, 0xc1,
-
  0xc3, 0xec, 0xe1, 0xde, 0xc1, 0xc1, 0xa3, 0xc7, 0xbb, 0xeb, 0xec, 0xf9,
-
  0xe3, 0x7f, 0xcb, 0x9e, 0x3f, 0x5c, 0xde, 0x73, 0x51, 0xc2, 0x6c, 0xc7,
-
  0xb3, 0xaa, 0xc1, 0xfc, 0x79, 0xb3, 0xb4, 0x56, 0x07, 0x6e, 0x9a, 0xbe,
-
  0xc2, 0x36, 0x67, 0x49, 0x9b, 0x8a, 0xb2, 0x20, 0x24, 0xbb, 0x26, 0x4a,
-
  0x86, 0xe0, 0x6d, 0xd4, 0x76, 0x02, 0xe1, 0xc0, 0x64, 0xc3, 0x66, 0x36,
-
  0x8a, 0x01, 0xb3, 0xa8, 0xac, 0x73, 0x3c, 0x0d, 0x38, 0x56, 0x15, 0xe3,
-
  0xa7, 0x71, 0x8c, 0x8a, 0x43, 0x23, 0xc7, 0x36, 0xe8, 0x22, 0xea, 0x06,
-
  0xab, 0x7b, 0xf0, 0xd8, 0x1f, 0x9f, 0xc6, 0x49, 0xf5, 0xa1, 0xb7, 0xe0,
-
  0x86, 0x23, 0x98, 0xed, 0x7e, 0xe2, 0xa8, 0x47, 0xa7, 0x7b, 0x8f, 0xc4,
-
  0x53, 0xb5, 0x50, 0x8f, 0x76, 0xb3, 0xfb, 0xd5, 0x5e, 0x7f, 0xf7, 0xf1,
-
  0x13, 0xc4, 0xe2, 0xea, 0x86, 0xdf, 0xf7, 0xd6, 0x30, 0x6c, 0xfb, 0x46,
-
  0x76, 0x04, 0xcd, 0xeb, 0xd1, 0xdd, 0x1c, 0x47, 0xdf, 0x31, 0xda, 0x5b,
-
  0x45, 0x7c, 0xf7, 0x4d, 0x7d, 0xc5, 0xe5, 0x72, 0x25, 0xae, 0x33, 0x32,
-
  0x11, 0x56, 0x8d, 0x42, 0x49, 0xa8, 0xc3, 0x58, 0x5e, 0xec, 0xf3, 0xe2,
-
  0x25, 0x11, 0x67, 0x0f, 0xed, 0x97, 0x3d, 0x2a, 0x7c, 0x6b, 0xb8, 0xd7,
-
  0x54, 0xc2, 0x2b, 0x57, 0xd7, 0x20, 0xbf, 0xac, 0x34, 0x89, 0xef, 0xc9,
-
  0x5c, 0x37, 0xe2, 0x92, 0x56, 0x9f, 0xbb, 0x90, 0x97, 0x97, 0x7f, 0x96,
-
  0x2a, 0x79, 0xe1, 0xb0, 0x96, 0xcb, 0x79, 0x69, 0x3d, 0x2f, 0x39, 0x8b,
-
  0x14, 0xa2, 0x6f, 0xe5, 0xbc, 0x42, 0x35, 0x2f, 0x4d, 0xb2, 0xb3, 0xaa,
-
  0x2b, 0x56, 0xca, 0x2b, 0xb8, 0x8b, 0xfe, 0xb7, 0x2a, 0xe4, 0x15, 0x09,
-
  0xec, 0x31, 0x01, 0xb5, 0x15, 0x09, 0xf9, 0x04, 0x8b, 0x42, 0xdc, 0xe8,
-
  0x1d, 0x5c, 0xbf, 0x31, 0x02, 0xfe, 0xc4, 0x4b, 0xe7, 0xf0, 0xb7, 0x62,
-
  0x69, 0xdf, 0x89, 0x5e, 0xe7, 0xe3, 0xea, 0x1f, 0x37, 0xe4, 0x76, 0x6c,
-
  0x77, 0xa9, 0x6e, 0xbb, 0xff, 0x90, 0x9b, 0xf8, 0xfe, 0xc6, 0xf8, 0x6d,
-
  0x17, 0xd3, 0x95, 0x39, 0xb3, 0x3f, 0xc0, 0xdf, 0xf2, 0x89, 0x66, 0x87,
-
  0xab, 0x02, 0x6f, 0x44, 0x04, 0xa8, 0x12, 0x3b, 0xef, 0xad, 0xb9, 0x93,
-
  0xc5, 0x7b, 0x21, 0xe6, 0x05, 0x8f, 0xc8, 0x26, 0x79, 0x6c, 0x84, 0x97,
-
  0xdc, 0x6f, 0x49, 0x64, 0xad, 0xb3, 0xc9, 0xa4, 0x0a, 0x90, 0x06, 0x04,
-
  0x71, 0xd7, 0x42, 0x3e, 0x70, 0x94, 0xb2, 0xb9, 0x24, 0x8a, 0x50, 0x4c,
-
  0x9b, 0x32, 0x65, 0x2b, 0x1e, 0x41, 0xf0, 0xc7, 0x2e, 0xdc, 0xe2, 0xa7,
-
  0xc3, 0xb7, 0x6f, 0x8e, 0xdf, 0xfc, 0x70, 0xe0, 0x22, 0xe9, 0xbd, 0x65,
-
  0x5e, 0xe7, 0x88, 0x74, 0x45, 0x33, 0x0c, 0x18, 0x7e, 0x1c, 0x94, 0x6b,
-
  0xe1, 0x16, 0x84, 0x14, 0xb8, 0xe0, 0x03, 0x1a, 0x56, 0x78, 0x09, 0xce,
-
  0x97, 0x0e, 0x2f, 0x70, 0x48, 0x38, 0x96, 0xe8, 0xa7, 0xaf, 0x23, 0xb7,
-
  0x8e, 0x30, 0x3a, 0xb6, 0xd9, 0x87, 0x4f, 0x07, 0x8b, 0xda, 0x15, 0x09,
-
  0xe6, 0xa0, 0x5b, 0x1a, 0x4c, 0x93, 0x7f, 0x25, 0x02, 0xe2, 0xec, 0xdd,
-
  0x21, 0xad, 0x1b, 0xbc, 0xd2, 0x52, 0x70, 0x9b, 0xa9, 0x40, 0xcd, 0x04,
-
  0xbe, 0xf4, 0xa9, 0x11, 0x7b, 0x73, 0xce, 0xab, 0x29, 0xdd, 0xe6, 0x75,
-
  0x1f, 0x64, 0xce, 0x0e, 0x25, 0x23, 0x75, 0x8d, 0x3a, 0x95, 0x2b, 0x3d,
-
  0x74, 0xc1, 0x31, 0xa7, 0x61, 0x49, 0x23, 0x0f, 0x4a, 0xbc, 0xde, 0xd1,
-
  0xb9, 0xc0, 0xd1, 0x3d, 0x7d, 0xf7, 0xf6, 0x55, 0x54, 0x02, 0x26, 0x14,
-
  0x35, 0x4b, 0xe2, 0x0d, 0xc0, 0x1d, 0x29, 0x5e, 0x6e, 0x25, 0xce, 0xc9,
-
  0xc8, 0x46, 0x1c, 0x0e, 0x01, 0x27, 0x28, 0x49, 0x2d, 0x54, 0x27, 0xe0,
-
  0x9b, 0x71, 0xea, 0x67, 0x28, 0x5a, 0x60, 0xc1, 0x83, 0xa4, 0x76, 0xca,
-
  0xbb, 0x18, 0xe6, 0x98, 0xa1, 0xc9, 0x29, 0xaf, 0xa6, 0xfd, 0x10, 0x8a,
-
  0x8d, 0x26, 0x0b, 0xad, 0xd6, 0x41, 0xe3, 0xb0, 0xfa, 0x0d, 0x88, 0x99,
-
  0x8e, 0xac, 0xd0, 0xa0, 0xff, 0x88, 0x9f, 0x1b, 0x4c, 0x05, 0x52, 0x12,
-
  0xfc, 0x51, 0x3a, 0xb2, 0x66, 0x88, 0x2f, 0xd2, 0x89, 0x1d, 0xf4, 0x21,
-
  0x5d, 0x7a, 0x01, 0x6e, 0x88, 0x07, 0xc5, 0xd8, 0xcc, 0x15, 0xe7, 0xa0,
-
  0x0a, 0xb8, 0x3d, 0x7b, 0x03, 0xb1, 0x4f, 0xd8, 0x8c, 0x97, 0x5c, 0x8d,
-
  0xcf, 0x67, 0xdb, 0x45, 0x95, 0x2f, 0x1b, 0x47, 0x97, 0xeb, 0xd2, 0xfb,
-
  0xfa, 0x5b, 0xb0, 0x36, 0x97, 0x19, 0x02, 0x90, 0x8c, 0x24, 0x82, 0x2d,
-
  0x04, 0xbe, 0xa3, 0x89, 0xa7, 0x2c, 0x30, 0xf5, 0xc6, 0x57, 0xda, 0xba,
-
  0xca, 0xd3, 0x26, 0x95, 0x89, 0xec, 0xd0, 0xce, 0x8f, 0xbf, 0xbf, 0x09,
-
  0x7c, 0x0e, 0xe7, 0x88, 0x42, 0xca, 0x8d, 0xda, 0x92, 0x48, 0x15, 0x91,
-
  0x3a, 0x33, 0x08, 0x05, 0x8e, 0xe9, 0xff, 0x88, 0xa2, 0x3b, 0x67, 0x68,
-
  0x6a, 0x86, 0x9e, 0x50, 0xd3, 0xc4, 0xb8, 0x21, 0x1c, 0x48, 0x5d, 0xdc,
-
  0x26, 0x1c, 0x86, 0x93, 0x58, 0x37, 0x33, 0xc4, 0x50, 0x1a, 0x1b, 0x6f,
-
  0x89, 0x40, 0xf9, 0x14, 0x23, 0x52, 0xe0, 0x47, 0xad, 0x96, 0x30, 0x72,
-
  0xa7, 0x55, 0x6c, 0x65, 0x31, 0x23, 0x98, 0xd0, 0x31, 0x59, 0x3e, 0x23,
-
  0x10, 0x31, 0x04, 0xcf, 0xb1, 0x64, 0x68, 0x71, 0xea, 0x11, 0xba, 0xae,
-
  0xc8, 0x05, 0xee, 0xca, 0x78, 0xf2, 0xa8, 0xbf, 0xb3, 0x25, 0xd6, 0x0c,
-
  0xa1, 0xff, 0x3b, 0xc0, 0xb1, 0x3f, 0xc2, 0x8a, 0x51, 0xb5, 0xb0, 0x83,
-
  0x55, 0xe7, 0xff, 0x6e, 0x41, 0xf5, 0x96, 0x97, 0xc3, 0xca, 0x31, 0x1b,
-
  0x71, 0xdf, 0x11, 0x24, 0x2c, 0x4a, 0xc4, 0x20, 0x0d, 0xf7, 0x77, 0xd7,
-
  0xb4, 0x7f, 0xed, 0xad, 0x75, 0x8f, 0x2e, 0xa6, 0xf3, 0xde, 0x30, 0xed,
-
  0x65, 0xa0, 0x5a, 0x8c, 0x7c, 0x02, 0xe7, 0x4f, 0x5c, 0xe1, 0x05, 0x17,
-
  0xeb, 0x19, 0xd6, 0xa8, 0x59, 0xcc, 0x46, 0x30, 0x46, 0x7a, 0x6c, 0x24,
-
  0x82, 0x8b, 0xdd, 0x6c, 0x40, 0x9f, 0xb3, 0x51, 0x4a, 0x7e, 0x75, 0x4a,
-
  0x84, 0xf7, 0x65, 0xb8, 0xe1, 0xda, 0xa8, 0x9b, 0x28, 0x54, 0x5c, 0xf7,
-
  0x9c, 0x30, 0x4a, 0x58, 0xba, 0x96, 0x3a, 0x3f, 0x81, 0x81, 0x40, 0x97,
-
  0xd2, 0xa3, 0x75, 0xe9, 0x4f, 0xa4, 0x24, 0xf0, 0x63, 0xec, 0x17, 0x92,
-
  0x4c, 0xd3, 0xdb, 0xe2, 0xe7, 0x74, 0x5f, 0x1e, 0x75, 0xdf, 0xe6, 0x1d,
-
  0xf7, 0x45, 0xb4, 0xa4, 0x11, 0xe3, 0x47, 0xbe, 0xff, 0xa4, 0x4f, 0x1a,
-
  0x4a, 0x33, 0xd7, 0x00, 0x5e, 0xc0, 0xe8, 0x02, 0x2c, 0xe3, 0x60, 0x39,
-
  0xb7, 0x7c, 0x01, 0x70, 0xca, 0x6d, 0x37, 0x66, 0xfc, 0xee, 0xf1, 0xf0,
-
  0x91, 0xcb, 0xd3, 0xd5, 0x8f, 0x7c, 0xb6, 0xee, 0xf3, 0xae, 0x8e, 0x4e,
-
  0x40, 0x1c, 0x5b, 0x51, 0x9a, 0x12, 0x72, 0xe3, 0xb8, 0xed, 0x37, 0x28,
-
  0x4e, 0xf3, 0x6f, 0x06, 0x8c, 0x3c, 0xcb, 0x95, 0x89, 0x6b, 0x4b, 0x71,
-
  0x36, 0xc5, 0x31, 0xe1, 0x20, 0x45, 0x15, 0x0a, 0x4d, 0x94, 0xb6, 0x0c,
-
  0x17, 0xe6, 0x26, 0xce, 0xcd, 0x11, 0x81, 0x8a, 0x18, 0x53, 0xe0, 0x16,
-
  0x15, 0x3f, 0x0a, 0xeb, 0xf6, 0x70, 0x1a, 0x23, 0xc7, 0x27, 0x6f, 0xc6,
-
  0x30, 0x45, 0x5b, 0x74, 0x77, 0x51, 0xca, 0x90, 0xf9, 0xe7, 0x56, 0x41,
-
  0x14, 0x9d, 0x61, 0x6e, 0x00, 0xd2, 0x8d, 0x11, 0x34, 0x6f, 0x50, 0x37,
-
  0x64, 0x77, 0x77, 0xfe, 0xa3, 0xe3, 0x7a, 0xc0, 0x48, 0xd8, 0x21, 0x43,
-
  0xd9, 0x5d, 0x20, 0xce, 0xba, 0x7a, 0x2c, 0x6d, 0x30, 0x82, 0x3e, 0x45,
-
  0x91, 0x98, 0x4c, 0xa7, 0xdc, 0x69, 0x56, 0x5a, 0x62, 0x42, 0x00, 0x5d,
-
  0xc1, 0x6e, 0x19, 0x47, 0x43, 0x81, 0x87, 0x95, 0x9b, 0x06, 0x55, 0x44,
-
  0xf2, 0xa9, 0x18, 0xd7, 0x4f, 0x33, 0xc8, 0xd5, 0xcd, 0x8d, 0x43, 0xef,
-
  0xc8, 0x1a, 0x77, 0xa4, 0x72, 0xda, 0x82, 0x9f, 0xa6, 0xca, 0x8f, 0x5c,
-
  0xcf, 0xeb, 0xd6, 0xd9, 0xee, 0xe2, 0x6c, 0xc3, 0x2d, 0xde, 0x80, 0xcb,
-
  0x90, 0x7d, 0xa1, 0x38, 0x73, 0x24, 0x56, 0x0f, 0xd2, 0x02, 0xcb, 0x5d,
-
  0x55, 0x82, 0xec, 0x63, 0x40, 0x2f, 0x18, 0x01, 0x5c, 0xcc, 0xa8, 0x54,
-
  0x9c, 0xc3, 0xe1, 0x27, 0xe0, 0x15, 0x17, 0x9b, 0xa4, 0x70, 0x81, 0x11,
-
  0x45, 0xea, 0x30, 0x5f, 0xa6, 0x57, 0xd8, 0x6a, 0xd0, 0x6a, 0x0c, 0xef,
-
  0x12, 0x2b, 0xd5, 0xcf, 0x32, 0xe6, 0xda, 0x40, 0x39, 0x01, 0x7c, 0x2b,
-
  0xd9, 0xcc, 0xfb, 0x40, 0x21, 0x7a, 0x4b, 0x04, 0xec, 0x03, 0x7c, 0x1c,
-
  0x03, 0x4e, 0x3e, 0x60, 0x12, 0x73, 0x0a, 0x8b, 0xbe, 0xd5, 0x15, 0xfb,
-
  0x48, 0xc5, 0xe9, 0xe0, 0x42, 0xc3, 0x06, 0xfa, 0xd4, 0x4d, 0xa2, 0xaa,
-
  0x71, 0x9a, 0xfc, 0xc6, 0x85, 0xb5, 0x38, 0xc5, 0x8b, 0xaf, 0x1a, 0x77,
-
  0x92, 0x3e, 0xe3, 0x75, 0xe3, 0x7a, 0x21, 0xa0, 0xa0, 0xb5, 0x40, 0x85,
-
  0xa2, 0xd7, 0x5a, 0xa1, 0x89, 0x93, 0x5e, 0x41, 0x04, 0xb2, 0xec, 0xec,
-
  0x12, 0xf0, 0x2d, 0xbd, 0x21, 0x40, 0x76, 0x4b, 0x9e, 0x72, 0x04, 0x88,
-
  0x67, 0x13, 0x51, 0xb5, 0x5c, 0x86, 0xae, 0xc6, 0x1c, 0xbe, 0xa3, 0x67,
-
  0x2f, 0x93, 0xcd, 0xa3, 0xd9, 0xb0, 0xbc, 0x99, 0xe3, 0xf2, 0x3d, 0xe3,
-
  0xb2, 0xcb, 0x2f, 0x31, 0x42, 0x7e, 0xcb, 0x67, 0xe2, 0x71, 0x45, 0x10,
-
  0x0b, 0xfc, 0x43, 0x3a, 0xd1, 0x4e, 0xc4, 0xfb, 0xaa, 0x31, 0xd8, 0x63,
-
  0x18, 0x56, 0x14, 0xd9, 0xc7, 0xde, 0x5f, 0xec, 0x89, 0xed, 0x6a, 0x82,
-
  0x1f, 0xa5, 0xb6, 0x36, 0x79, 0xed, 0x02, 0x08, 0x94, 0xdf, 0x23, 0x27,
-
  0x4e, 0x9a, 0xfc, 0xf0, 0xf6, 0xe8, 0xf0, 0xec, 0x88, 0x06, 0x68, 0xd6,
-
  0x8a, 0x2f, 0xd4, 0xe1, 0xbc, 0xa0, 0x27, 0x0f, 0x43, 0xd3, 0x5c, 0x95,
-
  0x47, 0x80, 0x82, 0x90, 0x24, 0x24, 0x6b, 0xd8, 0xc3, 0x62, 0xe1, 0x13,
-
  0xfc, 0xa8, 0xc6, 0x79, 0x3c, 0x90, 0xc1, 0x61, 0x94, 0xd0, 0xe6, 0xb9,
-
  0x84, 0x55, 0x9b, 0x06, 0x3a, 0xe6, 0xf8, 0xa0, 0xe8, 0x35, 0x7b, 0x41,
-
  0x34, 0xa6, 0x07, 0x6c, 0x4c, 0xd0, 0x6a, 0x48, 0x97, 0x70, 0xab, 0x36,
-
  0x47, 0x46, 0x75, 0xb0, 0x74, 0x00, 0x5a, 0x26, 0x82, 0x86, 0xa5, 0xc3,
-
  0xed, 0xd3, 0x73, 0x6c, 0x6d, 0xc0, 0xb0, 0x13, 0x8c, 0x1d, 0xa7, 0xab,
-
  0x4c, 0x2a, 0x12, 0xef, 0xb3, 0xd2, 0xc6, 0x57, 0x4f, 0xb0, 0x7d, 0x31,
-
  0x0b, 0x20, 0x25, 0x0d, 0x8f, 0xed, 0x3c, 0xe8, 0x63, 0xe8, 0x3a, 0x7a,
-
  0x00, 0x6d, 0x3e, 0xa3, 0x1d, 0x22, 0x10, 0x8c, 0x5b, 0xca, 0x38, 0x66,
-
  0xc3, 0xc9, 0xc1, 0xd3, 0xc1, 0xe3, 0x87, 0xb0, 0xc7, 0xdf, 0xd2, 0xe0,
-
  0x93, 0x01, 0x6c, 0xc5, 0xe3, 0x87, 0x89, 0xc6, 0xe7, 0xc6, 0x2d, 0x45,
-
  0x95, 0x2e, 0x90, 0x10, 0x70, 0x67, 0x35, 0x54, 0x73, 0x76, 0xf0, 0x94,
-
  0x2f, 0x28, 0x6a, 0xc7, 0x6a, 0xb9, 0x71, 0x16, 0x75, 0xc1, 0x81, 0x7c,
-
  0xbd, 0xd2, 0x92, 0x23, 0x3b, 0x73, 0x42, 0xb3, 0xfc, 0x15, 0x1f, 0xec,
-
  0x24, 0x92, 0x22, 0x4d, 0x5a, 0x4a, 0xcb, 0x14, 0x36, 0x69, 0x85, 0x02,
-
  0xa8, 0x03, 0x5f, 0xf7, 0x66, 0x89, 0xc1, 0xc5, 0x12, 0x43, 0x0e, 0xb0,
-
  0xf9, 0xd7, 0x05, 0x9e, 0x60, 0x6c, 0x01, 0x56, 0x6c, 0x42, 0xbc, 0x81,
-
  0x3c, 0xb9, 0x88, 0x3b, 0x81, 0x83, 0x61, 0xb7, 0x2e, 0xd6, 0xc2, 0x3a,
-
  0xfa, 0x15, 0x1e, 0xfa, 0xf5, 0xed, 0xd1, 0x9f, 0xdf, 0x1d, 0xbf, 0x3d,
-
  0x7a, 0x9e, 0x6c, 0xee, 0xee, 0xec, 0x6e, 0x45, 0xe1, 0x9a, 0x19, 0x07,
-
  0x86, 0x7e, 0x44, 0xf1, 0x96, 0xb5, 0xec, 0xf0, 0xd8, 0x2c, 0x52, 0xf2,
-
  0x3a, 0xe2, 0xe1, 0x93, 0xfe, 0x93, 0x16, 0xe9, 0x90, 0x3d, 0xb2, 0x72,
-
  0xec, 0x2f, 0x38, 0x16, 0xbb, 0x05, 0x52, 0xe5, 0x79, 0x86, 0xb9, 0x00,
-
  0x8c, 0x2b, 0xc7, 0x97, 0xc3, 0x66, 0x6a, 0xf2, 0x0d, 0x48, 0xe3, 0x0f,
-
  0xa9, 0xce, 0xf5, 0x69, 0x99, 0x17, 0x9a, 0x78, 0xc2, 0xc0, 0x86, 0x44,
-
  0x91, 0x4a, 0xd7, 0x23, 0xba, 0xdb, 0x39, 0x96, 0xa1, 0xd0, 0xda, 0x69,
-
  0xe3, 0x60, 0xeb, 0x27, 0xd1, 0x00, 0x36, 0x2f, 0xd4, 0x83, 0x1a, 0xeb,
-
  0xd6, 0xb4, 0x55, 0xfa, 0xa3, 0xeb, 0xc5, 0x90, 0xa2, 0x29, 0xe0, 0x04,
-
  0x75, 0xad, 0xf9, 0x4d, 0xf2, 0x43, 0x8a, 0x37, 0x20, 0x51, 0x76, 0x9a,
-
  0x4d, 0xa1, 0xab, 0xaa, 0xc0, 0x08, 0x5d, 0x0f, 0x98, 0xc8, 0x9f, 0x18,
-
  0x0d, 0x72, 0xf0, 0x26, 0x5f, 0x9d, 0x09, 0xdc, 0x3c, 0x23, 0x8c, 0xad,
-
  0x17, 0x44, 0x3f, 0x2a, 0xd2, 0x7e, 0xf6, 0xca, 0x9d, 0x6b, 0x86, 0x27,
-
  0xb5, 0xf0, 0x11, 0x5d, 0xb6, 0xcf, 0xb1, 0xc1, 0xda, 0xf6, 0x36, 0x0f,
-
  0x6a, 0x9b, 0x2a, 0x75, 0xae, 0x0b, 0x28, 0x0f, 0x2f, 0xf4, 0x04, 0xd3,
-
  0x50, 0x86, 0xca, 0x33, 0x7a, 0xea, 0x05, 0x40, 0x86, 0xcc, 0x39, 0xcb,
-
  0x26, 0x56, 0xa2, 0x26, 0x9c, 0x07, 0xe2, 0xe9, 0x45, 0x62, 0x4b, 0x11,
-
  0x2c, 0x05, 0x74, 0xcb, 0x4b, 0x2d, 0xf2, 0x65, 0x50, 0xcc, 0x77, 0x1c,
-
  0x11, 0xa2, 0x6f, 0x91, 0x1b, 0x84, 0xde, 0x9d, 0x97, 0x39, 0x65, 0xd0,
-
  0xe8, 0x67, 0x54, 0x16, 0x02, 0xf6, 0x7f, 0x44, 0xe5, 0x80, 0x14, 0xbb,
-
  0x57, 0x51, 0xad, 0xf8, 0xfd, 0x2a, 0xca, 0x09, 0x60, 0xbf, 0xf6, 0x64,
-
  0x02, 0x04, 0x48, 0x25, 0x60, 0x14, 0xd6, 0x0d, 0xc3, 0x93, 0xb7, 0x62,
-
  0x5c, 0x2a, 0x79, 0xdd, 0x30, 0xbb, 0xfd, 0xb9, 0x0f, 0x71, 0x12, 0xe6,
-
  0xfd, 0xd0, 0xd1, 0x7e, 0x36, 0xaf, 0x99, 0xd2, 0xd3, 0x04, 0x74, 0xe4,
-
  0x72, 0xcd, 0x30, 0xcc, 0xdb, 0x2a, 0x95, 0x67, 0x75, 0x7a, 0xd1, 0x93,
-
  0x52, 0x36, 0xf1, 0x99, 0xe5, 0xc0, 0xea, 0xd7, 0x68, 0xef, 0xa0, 0x04,
-
  0x2a, 0x8b, 0x17, 0xe4, 0x10, 0x6b, 0x85, 0x18, 0xd1, 0x3a, 0x41, 0xe6,
-
  0xe0, 0x3c, 0x3a, 0x4f, 0x2f, 0x7c, 0x3d, 0xcc, 0x46, 0xfd, 0x0f, 0x2e,
-
  0xbb, 0x71, 0x63, 0x11, 0xd6, 0xd0, 0xf6, 0x02, 0x04, 0x94, 0x29, 0x2c,
-
  0x60, 0xef, 0x0d, 0xac, 0x7f, 0xef, 0x35, 0xe5, 0x25, 0x29, 0xec, 0xbd,
-
  0x03, 0x2d, 0x63, 0x07, 0x05, 0x61, 0xb7, 0x63, 0x1f, 0xba, 0x4e, 0x58,
-
  0xcc, 0x49, 0x33, 0xd9, 0x39, 0x51, 0x04, 0x13, 0x9f, 0x08, 0xeb, 0xa6,
-
  0x22, 0xfb, 0x97, 0xb3, 0xeb, 0x07, 0x94, 0x61, 0x8a, 0xa8, 0xd5, 0x2a,
-
  0xb2, 0x0e, 0x67, 0x3c, 0x8d, 0xea, 0x8b, 0x86, 0x88, 0xed, 0x51, 0x56,
-
  0xe5, 0xd6, 0x73, 0x72, 0x48, 0x35, 0x53, 0x0d, 0x5b, 0x95, 0x8a, 0xed,
-
  0xa2, 0xbe, 0xe1, 0x80, 0x54, 0x1b, 0xe5, 0x50, 0x55, 0x21, 0xf1, 0x23,
-
  0x7f, 0x27, 0x90, 0x1e, 0xc2, 0x0d, 0x65, 0x33, 0x50, 0xba, 0xe2, 0x6a,
-
  0x80, 0x18, 0xb4, 0xc6, 0x7f, 0x21, 0x5f, 0xc2, 0x65, 0x55, 0xf4, 0x06,
-
  0x73, 0x67, 0x04, 0x74, 0xe5, 0x5a, 0x74, 0x83, 0x18, 0xa3, 0x00, 0xcf,
-
  0x8b, 0xee, 0x2e, 0xe9, 0xa6, 0x95, 0x2e, 0x05, 0x09, 0xf9, 0xd4, 0x28,
-
  0x55, 0x0d, 0x30, 0xc8, 0x6b, 0xae, 0x15, 0x58, 0xeb, 0xfe, 0xc6, 0x63,
-
  0xf5, 0xe6, 0x62, 0x55, 0xbe, 0x55, 0xbf, 0xe1, 0x32, 0xa2, 0x64, 0x92,
-
  0x95, 0xb3, 0xe0, 0x49, 0xcb, 0xcc, 0xe4, 0xf7, 0xce, 0xdd, 0x7c, 0x2f,
-
  0xf8, 0xc7, 0x1d, 0x08, 0x55, 0xde, 0xd4, 0xd1, 0xbc, 0xcc, 0xc2, 0xfa,
-
  0xf3, 0x59, 0xc1, 0xa1, 0x61, 0x14, 0xf3, 0x28, 0x3e, 0x2e, 0xf4, 0x44,
-
  0xcb, 0x59, 0x39, 0x63, 0xb0, 0x89, 0x99, 0x9c, 0x10, 0x3e, 0x08, 0x4b,
-
  0xaa, 0xae, 0x95, 0xb3, 0x9d, 0xc9, 0x13, 0x24, 0xcf, 0x69, 0x7a, 0xf6,
-
  0xf0, 0x12, 0x09, 0x4a, 0x45, 0x05, 0x3e, 0x05, 0x04, 0x73, 0xc2, 0x01,
-
  0xf3, 0x9c, 0xb6, 0x2d, 0xa9, 0xbd, 0x81, 0x0e, 0x84, 0x5b, 0xd6, 0xcd,
-
  0xf0, 0x21, 0xd9, 0x23, 0xd9, 0x22, 0xdb, 0xa1, 0x20, 0x55, 0x80, 0xa2,
-
  0xcd, 0x34, 0x50, 0x71, 0xae, 0xb6, 0xe4, 0x48, 0x2b, 0x4a, 0x50, 0xa4,
-
  0x47, 0x3b, 0xf4, 0xe1, 0x5b, 0xf5, 0xc2, 0xbd, 0xff, 0xb5, 0x7a, 0xa1,
-
  0x6d, 0x51, 0xdf, 0xd3, 0x21, 0xed, 0x59, 0x04, 0xe1, 0x7a, 0xbf, 0x51,
-
  0x4a, 0xa1, 0x13, 0x62, 0x51, 0xf7, 0x40, 0x87, 0x42, 0xd3, 0x81, 0xf4,
-
  0x28, 0x75, 0x6d, 0x77, 0x67, 0x67, 0x55, 0x49, 0x48, 0xe3, 0xd8, 0x71,
-
  0x65, 0xc8, 0xb8, 0x34, 0x64, 0xa8, 0x0c, 0x69, 0x08, 0x32, 0xd7, 0x69,
-
  0x5e, 0x47, 0xc5, 0x64, 0xb1, 0x0f, 0x2d, 0x7f, 0xe3, 0xec, 0x09, 0xd7,
-
  0x01, 0x6d, 0x32, 0xa3, 0x4a, 0x91, 0xe4, 0x75, 0x3d, 0xa2, 0x61, 0x55,
-
  0x07, 0xf1, 0x6b, 0x22, 0xae, 0x89, 0x96, 0x3b, 0xe3, 0x9a, 0x26, 0xca,
-
  0x52, 0x22, 0xa7, 0x9b, 0x99, 0xf6, 0xa8, 0xfe, 0x30, 0xeb, 0xe8, 0x74,
-
  0xe4, 0x5a, 0xa2, 0xe1, 0xac, 0x40, 0xa4, 0x55, 0x73, 0x0c, 0x25, 0x22,
-
  0x1d, 0x16, 0x26, 0xa1, 0xb5, 0x57, 0xdc, 0x26, 0x17, 0x65, 0x73, 0xf9,
-
  0x60, 0x5a, 0x90, 0x92, 0xcb, 0xcd, 0x87, 0x23, 0x44, 0xc6, 0x45, 0xb5,
-
  0x33, 0x45, 0xe0, 0x2f, 0x51, 0x57, 0x5a, 0xd5, 0x4d, 0xbc, 0x7c, 0x8e,
-
  0x02, 0xa5, 0x34, 0x64, 0x22, 0x65, 0x27, 0x3b, 0xfd, 0x8e, 0xb3, 0xf2,
-
  0xb4, 0x56, 0x9f, 0x24, 0x31, 0x84, 0xf8, 0x1e, 0x81, 0xde, 0xc6, 0x85,
-
  0x27, 0xb5, 0xbc, 0x2b, 0x97, 0x9e, 0x34, 0xa4, 0x03, 0x2d, 0x6e, 0x29,
-
  0x15, 0x28, 0x5d, 0x09, 0xca, 0xc4, 0xf8, 0xee, 0x12, 0xa1, 0x10, 0xe1,
-
  0x7f, 0x26, 0x79, 0x64, 0xa9, 0xb3, 0xbd, 0xfe, 0x23, 0x43, 0x65, 0x5c,
-
  0x37, 0x4d, 0xc4, 0x97, 0x80, 0x54, 0x82, 0x1f, 0xa3, 0xd9, 0x11, 0x15,
-
  0xd6, 0x88, 0xba, 0x5f, 0xa0, 0x06, 0xeb, 0x02, 0x62, 0x29, 0x23, 0x71,
-
  0x6f, 0x8f, 0x18, 0xb6, 0x22, 0x7d, 0xd8, 0x96, 0x0e, 0x0a, 0xac, 0xaf,
-
  0x22, 0xd6, 0x34, 0xad, 0xe0, 0x83, 0x72, 0x1f, 0x51, 0x3b, 0x71, 0xe9,
-
  0x60, 0x22, 0x12, 0xde, 0x8a, 0xcb, 0xab, 0x12, 0x8e, 0x34, 0x83, 0x7d,
-
  0x90, 0xce, 0x4d, 0x95, 0x98, 0x0c, 0x87, 0xe7, 0x82, 0x78, 0x56, 0x40,
-
  0x0d, 0x99, 0x69, 0x56, 0x17, 0xa7, 0x50, 0xf3, 0x71, 0xd1, 0xdb, 0x40,
-
  0xbd, 0xc5, 0xac, 0xcc, 0x73, 0x46, 0x5e, 0x7e, 0xc5, 0x98, 0xf4, 0xa3,
-
  0x62, 0xc8, 0x95, 0x6d, 0x0c, 0xed, 0xd7, 0xd0, 0x39, 0x74, 0x0a, 0x63,
-
  0xca, 0x30, 0xa3, 0xf8, 0x0c, 0xda, 0x7f, 0x58, 0x38, 0x09, 0xfb, 0xe4,
-
  0x2a, 0x13, 0xac, 0x93, 0x2b, 0xf2, 0x83, 0x82, 0xfa, 0x5d, 0xde, 0xb0,
-
  0xe7, 0x16, 0x13, 0x44, 0xb6, 0x34, 0x17, 0xfe, 0xe1, 0x87, 0x0f, 0x32,
-
  0xf7, 0x70, 0xb4, 0x09, 0x71, 0xa5, 0x81, 0x57, 0xce, 0x79, 0xac, 0xfe,
-
  0xf8, 0x61, 0x0d, 0x1d, 0xe2, 0xc3, 0xb4, 0xf7, 0x24, 0x8b, 0xf0, 0xda,
-
  0xd6, 0x56, 0x42, 0xc3, 0x92, 0x3d, 0x0d, 0xb7, 0x4c, 0xa6, 0x22, 0xd2,
-
  0x34, 0xed, 0x19, 0x6c, 0x97, 0xc0, 0x7f, 0x47, 0xce, 0x77, 0x6a, 0x35,
-
  0x4a, 0x6e, 0x27, 0x9b, 0x65, 0x63, 0x37, 0xf4, 0x1c, 0x8f, 0x38, 0xaf,
-
  0x33, 0x07, 0x29, 0x92, 0x3c, 0x6c, 0xb8, 0xb0, 0xde, 0x0f, 0x5d, 0x30,
-
  0xf0, 0x37, 0x57, 0xc4, 0xe0, 0xf2, 0x85, 0x1c, 0x41, 0xcd, 0x10, 0x3c,
-
  0xbc, 0x18, 0xb4, 0x6a, 0xc4, 0xb5, 0xa3, 0x6c, 0x76, 0xba, 0x70, 0x33,
-
  0x43, 0x27, 0x86, 0x96, 0x7b, 0x48, 0x5b, 0x3d, 0xda, 0x8c, 0x25, 0x7c,
-
  0x28, 0xca, 0x68, 0xcb, 0xea, 0xcb, 0x62, 0x64, 0x26, 0x1d, 0xde, 0x67,
-
  0xb8, 0x0f, 0xc6, 0xda, 0x15, 0x99, 0x53, 0xc5, 0xdd, 0x57, 0x0c, 0x81,
-
  0x42, 0xd8, 0x47, 0x49, 0x25, 0xdc, 0x2c, 0x13, 0xb5, 0x57, 0x2d, 0x28,
-
  0xef, 0x85, 0x92, 0xff, 0xe3, 0xdd, 0xc1, 0x03, 0x5c, 0x4d, 0x38, 0x10,
-
  0x80, 0x22, 0x88, 0xb1, 0x8e, 0xb7, 0xc0, 0x5a, 0x10, 0x7c, 0x11, 0x92,
-
  0x9b, 0x10, 0x78, 0x94, 0xdd, 0xa8, 0x95, 0xc5, 0x27, 0x28, 0xef, 0x6d,
-
  0x36, 0x68, 0xfa, 0xe1, 0xce, 0x2e, 0x0d, 0xef, 0xe1, 0xce, 0x97, 0x5b,
-
  0x6d, 0x21, 0xf7, 0x64, 0x2f, 0x6a, 0x0f, 0x12, 0x69, 0xf8, 0x40, 0x96,
-
  0x9d, 0x20, 0x4d, 0xcf, 0x39, 0xb6, 0x75, 0x3b, 0x2f, 0xa1, 0xde, 0xee,
-
  0xc8, 0x23, 0x5c, 0xab, 0xdc, 0x5c, 0xbc, 0x63, 0x92, 0x79, 0x17, 0x84,
-
  0x8d, 0xa5, 0x2d, 0x95, 0xd0, 0x7c, 0xfc, 0x90, 0x09, 0x53, 0xef, 0xdc,
-
  0xf0, 0x91, 0xe8, 0x1a, 0x38, 0x42, 0x7c, 0x1a, 0x4b, 0x18, 0x07, 0x9c,
-
  0x63, 0x14, 0xd4, 0xb9, 0xdc, 0x09, 0x6a, 0xff, 0xea, 0x5e, 0x26, 0x7a,
-
  0xeb, 0xb7, 0x55, 0x7a, 0x57, 0x73, 0xc1, 0xa8, 0x68, 0xb3, 0x55, 0x37,
-
  0x4c, 0x64, 0x92, 0x70, 0x68, 0xe9, 0x0b, 0x2e, 0x8b, 0x85, 0xd5, 0x65,
-
  0x42, 0xde, 0xcb, 0x40, 0x72, 0xd4, 0x1c, 0x7e, 0x90, 0xf3, 0xba, 0x74,
-
  0x95, 0x0e, 0x30, 0x76, 0x28, 0xeb, 0x47, 0xae, 0x5f, 0x6b, 0x88, 0xb1,
-
  0x32, 0x2b, 0x35, 0x47, 0x49, 0x60, 0x14, 0xea, 0x09, 0x04, 0xc5, 0x87,
-
  0x51, 0x2b, 0x68, 0x10, 0x57, 0x64, 0x00, 0x8b, 0xbe, 0x62, 0xb4, 0x4c,
-
  0xf8, 0x6a, 0xc3, 0xea, 0xe4, 0x10, 0xd1, 0xd2, 0x0a, 0x94, 0x53, 0xd2,
-
  0x96, 0xa9, 0xe4, 0x5b, 0xe0, 0xcf, 0x02, 0x54, 0x40, 0x8c, 0xa0, 0x9f,
-
  0x1c, 0x11, 0x62, 0x8b, 0x9c, 0x57, 0x0f, 0xf0, 0xd6, 0xb9, 0xcc, 0x41,
-
  0x28, 0x9a, 0x75, 0x48, 0x3d, 0x0c, 0x9a, 0x88, 0x3b, 0x14, 0x21, 0xc5,
-
  0xc7, 0xd4, 0x92, 0x50, 0x2e, 0x2b, 0x06, 0x99, 0x6f, 0x32, 0x20, 0x57,
-
  0x7d, 0xa0, 0xb0, 0x92, 0xf5, 0x01, 0x45, 0x27, 0x04, 0xe7, 0x20, 0x1b,
-
  0x23, 0x2e, 0xdd, 0x8d, 0x0a, 0x83, 0x5a, 0x50, 0x5c, 0x3a, 0xc5, 0x60,
-
  0x7c, 0xfa, 0x93, 0xd6, 0xc7, 0x6a, 0x51, 0xca, 0xad, 0xc0, 0xb5, 0x15,
-
  0x67, 0xc6, 0x51, 0x9c, 0xa1, 0x53, 0xb9, 0xc5, 0x75, 0x7a, 0x43, 0xc8,
-
  0xed, 0xbe, 0x4a, 0xa6, 0x2d, 0xc7, 0x85, 0x50, 0xe9, 0x62, 0x66, 0x24,
-
  0x85, 0xeb, 0x01, 0x8c, 0x1d, 0x77, 0x1d, 0xdb, 0xb2, 0x84, 0x8c, 0xe5,
-
  0x73, 0x61, 0x19, 0x4a, 0x18, 0x2d, 0x76, 0xa3, 0x24, 0xac, 0x69, 0xe5,
-
  0x64, 0x72, 0xac, 0x1c, 0xa9, 0xa1, 0x7a, 0x18, 0xae, 0x58, 0xac, 0xfd,
-
  0xa6, 0x66, 0x30, 0xbe, 0xaf, 0x36, 0x34, 0xa3, 0x5a, 0xa2, 0xb5, 0xe4,
-
  0xa2, 0x40, 0x6f, 0x3f, 0x4b, 0xf0, 0x02, 0x71, 0xcf, 0x73, 0xad, 0xaf,
-
  0x0b, 0x7f, 0x5f, 0xc0, 0x02, 0x5e, 0x72, 0x54, 0x04, 0xf1, 0xc4, 0xcc,
-
  0x18, 0x4a, 0xe0, 0x92, 0x17, 0x93, 0x62, 0x80, 0x92, 0x0f, 0x11, 0x97,
-
  0x14, 0xfd, 0x2a, 0x29, 0x62, 0x2a, 0x88, 0x6b, 0x29, 0x41, 0xe8, 0xc3,
-
  0x12, 0xb0, 0x37, 0x66, 0x45, 0x44, 0x80, 0x6f, 0xc9, 0x16, 0xc1, 0xd2,
-
  0x8b, 0x06, 0x59, 0xb3, 0xc2, 0x10, 0x9e, 0x17, 0x0b, 0x34, 0xc2, 0xcd,
-
  0x94, 0xd6, 0x23, 0x8f, 0x70, 0x38, 0xfe, 0x49, 0x1b, 0x17, 0xfc, 0xf8,
-
  0x84, 0x96, 0x88, 0xc5, 0xdc, 0xc1, 0x09, 0xa5, 0xe3, 0x36, 0x1f, 0x8c,
-
  0x7e, 0x06, 0x0b, 0xae, 0xae, 0xfe, 0x16, 0xc8, 0x79, 0xe5, 0x55, 0x4b,
-
  0xfc, 0x30, 0xe2, 0x6e, 0xf6, 0x71, 0x24, 0x66, 0xbd, 0x65, 0x64, 0xf0,
-
  0xf8, 0xcc, 0x28, 0xb2, 0x21, 0x33, 0x8c, 0x6b, 0xbe, 0xd1, 0x42, 0x01,
-
  0xc7, 0xe5, 0x1b, 0x1a, 0x37, 0x06, 0x45, 0x26, 0x78, 0x5f, 0x84, 0x25,
-
  0xcc, 0x1e, 0x69, 0x93, 0x93, 0x4c, 0x69, 0x96, 0x3e, 0xe8, 0x00, 0x5a,
-
  0x35, 0x19, 0x95, 0x95, 0xa8, 0x92, 0x97, 0xc8, 0x4a, 0x1c, 0xa5, 0xe5,
-
  0x0f, 0x37, 0x61, 0xd1, 0xea, 0xf7, 0x89, 0x97, 0x95, 0x64, 0x6a, 0x4b,
-
  0x02, 0x93, 0xc9, 0x4b, 0x26, 0x2a, 0x91, 0xa4, 0x14, 0x63, 0xd5, 0x2a,
-
  0xb4, 0x72, 0xa8, 0x78, 0x82, 0x9c, 0x57, 0x64, 0x4a, 0x3c, 0x8d, 0x6c,
-
  0xa1, 0x49, 0x6b, 0x03, 0xa4, 0x41, 0x9f, 0x0f, 0xb5, 0x4f, 0xf0, 0x9c,
-
  0xb4, 0x90, 0x2a, 0xf8, 0x44, 0xd4, 0xab, 0xc9, 0x7e, 0x35, 0xa6, 0x29,
-
  0x51, 0x6e, 0x9c, 0xc3, 0x01, 0x90, 0x0d, 0xd4, 0x8a, 0x81, 0x86, 0xf7,
-
  0xc2, 0x27, 0x68, 0x5c, 0x94, 0xce, 0x28, 0x46, 0x80, 0xab, 0x79, 0x09,
-
  0x33, 0xc7, 0x90, 0x0a, 0x42, 0x56, 0xd5, 0x1c, 0x46, 0x94, 0xc8, 0x2b,
-
  0x76, 0x8b, 0x7a, 0xd0, 0x9c, 0x55, 0x97, 0xbd, 0xbb, 0x14, 0x57, 0x04,
-
  0x40, 0x34, 0xa3, 0xe6, 0xee, 0xcc, 0xaf, 0x5b, 0x22, 0xbe, 0xbb, 0xe8,
-
  0x3e, 0x0c, 0x61, 0x6d, 0x59, 0x20, 0x08, 0x03, 0x4d, 0x40, 0x01, 0x6e,
-
  0xb3, 0xef, 0xf4, 0x6d, 0x0d, 0xa0, 0xbb, 0xf3, 0xc0, 0x34, 0x45, 0x81,
-
  0x49, 0x95, 0xf5, 0x08, 0x12, 0xd0, 0x1b, 0xbd, 0xd1, 0xee, 0x42, 0x5f,
-
  0x09, 0x5a, 0xa0, 0xa2, 0x94, 0xe3, 0x5a, 0x93, 0xdb, 0x0c, 0x8b, 0x3c,
-
  0x56, 0x97, 0xb0, 0x7f, 0x7d, 0x90, 0x1e, 0xc2, 0x73, 0xce, 0xe8, 0x43,
-
  0xf9, 0x90, 0x72, 0x9a, 0x52, 0x7e, 0x89, 0x61, 0xb3, 0xf9, 0xd1, 0x2a,
-
  0x09, 0xb6, 0x52, 0x57, 0x8b, 0x5d, 0x41, 0xed, 0x1c, 0xb7, 0xa4, 0x18,
-
  0xb3, 0x1b, 0xed, 0xdd, 0x38, 0xf8, 0x8b, 0x7c, 0x96, 0x57, 0x97, 0x18,
-
  0xd2, 0x82, 0x89, 0x9e, 0x17, 0x59, 0x57, 0xc0, 0x5d, 0x85, 0x2c, 0x40,
-
  0x05, 0x86, 0x0b, 0x0d, 0xf9, 0x24, 0xdc, 0x30, 0xaa, 0x38, 0xc0, 0x09,
-
  0x11, 0xe4, 0x2e, 0x7e, 0x84, 0x0a, 0x8b, 0x87, 0xa9, 0xf8, 0x5d, 0x68,
-
  0x26, 0x9e, 0x57, 0x2e, 0x72, 0xb9, 0x25, 0x74, 0xd9, 0xea, 0x79, 0x9e,
-
  0xb9, 0x18, 0xcd, 0x73, 0x82, 0x0c, 0xc7, 0xd0, 0xe7, 0x4d, 0xdc, 0xd0,
-
  0x93, 0x33, 0xd8, 0x24, 0xd2, 0xb4, 0x12, 0xb4, 0x83, 0x95, 0x8c, 0x7f,
-
  0x3b, 0x4d, 0x87, 0xf0, 0xc5, 0xee, 0x4e, 0xff, 0x2b, 0xfb, 0x02, 0x34,
-
  0x6c, 0x09, 0x74, 0x5e, 0xca, 0x4e, 0x8c, 0xb7, 0x6c, 0x8d, 0x30, 0x50,
-
  0xa5, 0x68, 0x9f, 0x00, 0xbb, 0x82, 0x89, 0x5b, 0xb3, 0x77, 0x51, 0x73,
-
  0xe8, 0x7f, 0x2d, 0x4d, 0xb8, 0x1e, 0xce, 0xe1, 0x25, 0xb4, 0x5e, 0x50,
-
  0x26, 0x2e, 0x11, 0xde, 0x8b, 0xae, 0x00, 0x91, 0xb2, 0xc7, 0x45, 0xf1,
-
  0xb0, 0xa2, 0xd0, 0x1b, 0x2c, 0xf7, 0x90, 0x1c, 0xbf, 0x3e, 0x44, 0xfd,
-
  0x58, 0xcc, 0xf1, 0xf4, 0xb9, 0x05, 0xde, 0x8c, 0x53, 0x90, 0x18, 0x40,
-
  0xe6, 0xc8, 0xa6, 0x54, 0x63, 0x56, 0x6a, 0x1a, 0x4c, 0xb2, 0x51, 0x4f,
-
  0xed, 0x66, 0xd4, 0x03, 0x49, 0xed, 0xc4, 0x70, 0x3c, 0xea, 0x37, 0x83,
-
  0x7a, 0x8b, 0xf4, 0x27, 0xa0, 0xde, 0x31, 0xaa, 0xf7, 0x32, 0x9c, 0x37,
-
  0xa1, 0x90, 0x2b, 0x8d, 0xc6, 0xc0, 0xdd, 0x1e, 0x2c, 0xd1, 0xc2, 0x73,
-
  0x61, 0x89, 0xb6, 0x09, 0xfb, 0x11, 0xdf, 0x58, 0x81, 0xe3, 0xbf, 0xb7,
-
  0xff, 0xe4, 0x89, 0x37, 0xfa, 0xd3, 0xac, 0x59, 0x74, 0xc0, 0xb9, 0x27,
-
  0xbe, 0x80, 0x89, 0x15, 0xca, 0x9d, 0x62, 0xa9, 0x60, 0x4e, 0xa2, 0xb4,
-
  0x9e, 0x70, 0xbc, 0x2a, 0xf3, 0xc8, 0x99, 0x20, 0x33, 0x2d, 0x12, 0xe1,
-
  0x34, 0x8f, 0x25, 0x0c, 0xc5, 0x58, 0x60, 0xbc, 0x57, 0x29, 0x23, 0x2e,
-
  0x40, 0x87, 0x5c, 0x60, 0x25, 0xab, 0x87, 0x84, 0xbe, 0xcd, 0x99, 0xfd,
-
  0x34, 0xc7, 0x0d, 0xd9, 0xa4, 0x0d, 0x07, 0x2a, 0xc7, 0x52, 0x48, 0x2a,
-
  0xa1, 0x22, 0x58, 0x4c, 0x32, 0xff, 0x10, 0xd7, 0x44, 0x65, 0x63, 0xed,
-
  0x2c, 0xf9, 0x8e, 0x42, 0x84, 0x18, 0xd1, 0x9b, 0xe0, 0x5d, 0x2f, 0x14,
-
  0x11, 0xc6, 0xa3, 0x9e, 0x51, 0xa3, 0xbe, 0x7a, 0xe4, 0x2d, 0x8d, 0xb2,
-
  0x01, 0x9a, 0x70, 0xd7, 0xb8, 0xa1, 0xa7, 0x52, 0xf0, 0x38, 0x07, 0x92,
-
  0x87, 0xa3, 0x3a, 0xc4, 0x38, 0xf5, 0xfa, 0x1a, 0x33, 0x1b, 0xbe, 0xa3,
-
  0x05, 0x7d, 0xaa, 0xe5, 0xb5, 0x04, 0xca, 0xef, 0x3b, 0xb9, 0x81, 0x14,
-
  0x37, 0xda, 0x46, 0x04, 0xda, 0x08, 0x08, 0x52, 0x01, 0xbe, 0x8d, 0xd1,
-
  0xb4, 0xd3, 0xf0, 0x24, 0xaf, 0x1b, 0x09, 0xa0, 0x92, 0xdd, 0x0f, 0x8d,
-
  0x6b, 0x63, 0x64, 0xd4, 0x50, 0x9f, 0x09, 0xba, 0xdc, 0xb1, 0x6f, 0x9d,
-
  0xb2, 0x9f, 0x6d, 0x25, 0x6e, 0x26, 0x74, 0xe4, 0xa0, 0x1d, 0x84, 0x9f,
-
  0x96, 0xd9, 0xfb, 0x8a, 0x6b, 0x6f, 0xb9, 0x98, 0x1b, 0x2f, 0x51, 0x00,
-
  0x43, 0xf3, 0x81, 0xc7, 0xa9, 0xb9, 0xa0, 0xd4, 0x62, 0xa7, 0x1e, 0x0c,
-
  0x0e, 0x0f, 0x6b, 0x42, 0xb7, 0x32, 0x85, 0x5f, 0x14, 0x19, 0x0f, 0x82,
-
  0x0d, 0x0a, 0xbc, 0x4c, 0x30, 0x15, 0xb4, 0x52, 0x50, 0xb5, 0x76, 0xb3,
-
  0x41, 0x72, 0x87, 0x11, 0x40, 0x52, 0x37, 0x36, 0x2f, 0x48, 0x62, 0xd4,
-
  0x60, 0x41, 0xab, 0x2f, 0xf1, 0x7d, 0x5a, 0x55, 0x50, 0x40, 0x4a, 0x06,
-
  0x37, 0x89, 0x05, 0x4a, 0xaa, 0x09, 0x51, 0xd4, 0x2b, 0xb2, 0xa5, 0x56,
-
  0xf9, 0x3f, 0x32, 0x89, 0xc6, 0x20, 0x63, 0x6e, 0x6a, 0x51, 0x1c, 0x28,
-
  0x87, 0x21, 0x43, 0x4c, 0x9e, 0x03, 0x35, 0xcc, 0xc4, 0x26, 0x89, 0xd4,
-
  0xa2, 0xfa, 0x5a, 0x84, 0x03, 0x2e, 0x10, 0xe0, 0x64, 0x7d, 0x28, 0xb3,
-
  0x8b, 0x05, 0xa2, 0x3e, 0x0a, 0x06, 0x1c, 0x15, 0xe1, 0xe4, 0xbd, 0xd4,
-
  0xa7, 0xe6, 0xf9, 0xdc, 0x01, 0x51, 0x8b, 0x1e, 0xb2, 0x15, 0xe4, 0x79,
-
  0xe0, 0x0e, 0xbf, 0xb1, 0x0b, 0xb8, 0xd0, 0xf9, 0xd1, 0x00, 0x54, 0xbc,
-
  0x77, 0x4a, 0x19, 0xfe, 0x4c, 0xbd, 0xf2, 0x45, 0xb6, 0x7f, 0x29, 0x12,
-
  0xf4, 0x75, 0x12, 0x85, 0x60, 0xd3, 0xed, 0x43, 0x33, 0x96, 0xe0, 0x5f,
-
  0xaa, 0x8b, 0x68, 0x68, 0x2d, 0xc1, 0x5b, 0x6b, 0xfa, 0x14, 0xdf, 0x9c,
-
  0x5d, 0x2e, 0x24, 0xaa, 0x08, 0xe5, 0xec, 0xe2, 0x80, 0x09, 0x11, 0xda,
-
  0x3b, 0x86, 0x3f, 0x33, 0x9b, 0xa4, 0xe1, 0x71, 0x7d, 0x13, 0x0b, 0x90,
-
  0xbb, 0x21, 0x9e, 0xd2, 0xe4, 0xef, 0x5c, 0xb7, 0x1c, 0xce, 0x68, 0x3e,
-
  0xd5, 0x8a, 0x8f, 0x0d, 0xc9, 0xb5, 0x2b, 0x37, 0xf9, 0x06, 0x30, 0x23,
-
  0x5c, 0xc7, 0x8d, 0xb8, 0x96, 0x31, 0x9d, 0x49, 0xd5, 0x24, 0x89, 0xe9,
-
  0xf6, 0x98, 0x96, 0x43, 0x69, 0xcb, 0x50, 0x3b, 0x29, 0xc1, 0x1b, 0xb1,
-
  0x4c, 0x81, 0x23, 0xfd, 0x36, 0xbf, 0x48, 0xe2, 0x86, 0xa8, 0xcc, 0x2f,
-
  0xc6, 0x3a, 0x3d, 0xe0, 0xcb, 0xe6, 0x45, 0x22, 0x1d, 0x7e, 0xf3, 0x5d,
-
  0xf4, 0x56, 0xcb, 0xbd, 0xb3, 0x2d, 0x65, 0x7d, 0x86, 0x17, 0x79, 0xeb,
-
  0xf4, 0x38, 0x4a, 0xde, 0x90, 0xa7, 0xaa, 0xcb, 0x02, 0xb9, 0x07, 0xae,
-
  0x3e, 0x1e, 0x72, 0xac, 0x0c, 0x1f, 0xce, 0x60, 0xa5, 0x0a, 0xa3, 0x8f,
-
  0xe8, 0x8e, 0x86, 0xc5, 0xe5, 0x43, 0x8b, 0xcb, 0x19, 0xfe, 0x81, 0x6d,
-
  0x61, 0x4b, 0xdf, 0xec, 0xb6, 0x46, 0x23, 0x6f, 0xaf, 0x1e, 0x0f, 0xb2,
-
  0xe9, 0x1b, 0x46, 0xb5, 0x71, 0x1c, 0x40, 0x63, 0xf0, 0x24, 0x0c, 0x9d,
-
  0x42, 0xb6, 0xe8, 0xca, 0xd6, 0x38, 0x50, 0x2e, 0xd3, 0xec, 0x5e, 0x61,
-
  0xe8, 0x9c, 0x56, 0xf6, 0x92, 0x1b, 0x3f, 0x65, 0x7b, 0x3c, 0xae, 0x66,
-
  0x34, 0x95, 0x0e, 0xba, 0x76, 0x6e, 0xbe, 0x79, 0x7a, 0xb9, 0xb8, 0xa0,
-
  0xe2, 0xa9, 0xe8, 0xe1, 0xe9, 0xdc, 0x36, 0x0f, 0x8d, 0x8a, 0x17, 0x43,
-
  0x63, 0x2e, 0xac, 0x42, 0x5d, 0x1e, 0x64, 0x38, 0x88, 0xae, 0x43, 0x0b,
-
  0x8d, 0x18, 0xc4, 0xf5, 0xba, 0x3a, 0x88, 0x47, 0xfc, 0x4d, 0xa7, 0xcb,
-
  0x0b, 0x20, 0xf0, 0xcf, 0x0a, 0xd2, 0x5a, 0x17, 0xf1, 0x28, 0xaf, 0xb3,
-
  0xc1, 0x37, 0xdf, 0xa1, 0xe5, 0xe2, 0x43, 0xff, 0xb2, 0x9e, 0x4e, 0xbe,
-
  0xa6, 0x77, 0x71, 0x05, 0xb6, 0xf1, 0xcf, 0x4e, 0xb2, 0x2c, 0x82, 0xc0,
-
  0x81, 0xf6, 0x0d, 0xb8, 0xaa, 0x07, 0xee, 0xe5, 0x71, 0x51, 0xb4, 0xbd,
-
  0x1b, 0xcf, 0xd1, 0x21, 0x9e, 0x28, 0x6c, 0x3d, 0x15, 0xf8, 0xa3, 0x00,
-
  0x2c, 0xde, 0x33, 0x8a, 0xaa, 0x8a, 0x6e, 0x07, 0x77, 0x4b, 0x52, 0x60,
-
  0x00, 0xdb, 0x93, 0x95, 0x03, 0x7f, 0xd3, 0xe5, 0xda, 0x01, 0x78, 0xa3,
-
  0xc7, 0x13, 0x65, 0x72, 0xb7, 0xaa, 0x5a, 0x5f, 0xdb, 0x1b, 0xf8, 0x03,
-
  0x0e, 0x08, 0x5c, 0x45, 0x6d, 0x23, 0x46, 0x2f, 0x89, 0x3e, 0xba, 0x4d,
-
  0x7e, 0x44, 0x8d, 0x03, 0x80, 0x9b, 0xbb, 0xbb, 0xc1, 0x51, 0x6c, 0x1b,
-
  0x5f, 0x6f, 0x88, 0x8a, 0x69, 0x18, 0x09, 0xc9, 0xdf, 0x17, 0x45, 0xed,
-
  0x0b, 0x04, 0x8d, 0x8a, 0x05, 0xa2, 0x7b, 0xd0, 0xc7, 0x5c, 0x31, 0xa2,
-
  0x6d, 0x7c, 0x3f, 0x77, 0x68, 0x84, 0x5d, 0xfc, 0xeb, 0xe7, 0x4e, 0x18,
-
  0xe4, 0xcf, 0xb4, 0xce, 0x5f, 0xe7, 0xb3, 0xaf, 0x71, 0xa0, 0x3f, 0x77,
-
  0x3a, 0x12, 0xbf, 0x7f, 0x5b, 0x22, 0x50, 0xbc, 0x51, 0x1b, 0xdc, 0x81,
-
  0x6b, 0xdf, 0x35, 0x1f, 0xb5, 0xde, 0xd9, 0x58, 0xa3, 0x71, 0x87, 0x96,
-
  0x4a, 0x89, 0x15, 0xcd, 0x55, 0x42, 0xfe, 0x13, 0x96, 0xa0, 0x31, 0xfd,
-
  0xae, 0xab, 0xb3, 0xee, 0xbf, 0xc0, 0xc5, 0x44, 0x11, 0xbd, 0x9a, 0xa4,
-
  0xd5, 0x25, 0xeb, 0x64, 0xf9, 0xac, 0x51, 0x0b, 0x5e, 0xf3, 0x79, 0x32,
-
  0x2a, 0x38, 0xeb, 0x16, 0xd8, 0x5e, 0x54, 0x3e, 0xfc, 0x67, 0x68, 0x92,
-
  0x23, 0x7c, 0x09, 0xc8, 0x8b, 0x4e, 0x15, 0x4a, 0x55, 0x8a, 0x6b, 0x51,
-
  0x17, 0x7c, 0x93, 0x11, 0x75, 0x49, 0xc5, 0x03, 0x76, 0xa3, 0x35, 0x62,
-
  0x3d, 0xaa, 0x6c, 0x9a, 0x53, 0xde, 0x32, 0x0c, 0x7c, 0x92, 0x91, 0x60,
-
  0xb7, 0x8d, 0x4c, 0x93, 0x20, 0x6f, 0xaa, 0x79, 0x8a, 0x3a, 0x34, 0x2a,
-
  0x19, 0xfc, 0x95, 0xcc, 0x88, 0x67, 0x1f, 0x13, 0xe1, 0x06, 0xb6, 0x52,
-
  0x56, 0xdf, 0x74, 0xe0, 0x22, 0xff, 0x1a, 0xad, 0x1c, 0xd9, 0xec, 0xeb,
-
  0x64, 0x30, 0x59, 0xc0, 0x56, 0x84, 0xa3, 0xf3, 0xa1, 0x37, 0xbd, 0x81,
-
  0x31, 0xda, 0x26, 0xac, 0xde, 0x03, 0x3d, 0x4d, 0xe9, 0x68, 0xa4, 0x71,
-
  0x31, 0x1a, 0x08, 0x2f, 0xbc, 0x8e, 0x0f, 0x91, 0x3b, 0x27, 0xf2, 0xbd,
-
  0x1c, 0x93, 0x98, 0x5f, 0x91, 0xb0, 0xfe, 0xcd, 0xc9, 0x9f, 0xbe, 0xd6,
-
  0x87, 0x7e, 0xee, 0xfc, 0xa5, 0xc7, 0x9f, 0x12, 0xc4, 0xf9, 0x41, 0x72,
-
  0xf2, 0x27, 0xa4, 0xbc, 0x3b, 0x59, 0xc2, 0x72, 0x4b, 0xdf, 0xf1, 0x2f,
-
  0x44, 0x75, 0x49, 0x9b, 0x82, 0x9e, 0xd9, 0xc8, 0x92, 0xe4, 0x7d, 0x76,
-
  0x43, 0x68, 0x81, 0x14, 0x45, 0x85, 0x51, 0xd4, 0xc0, 0xb6, 0xa6, 0x85,
-
  0x05, 0xe7, 0x50, 0xf9, 0x18, 0x96, 0x66, 0x06, 0x58, 0xd9, 0x82, 0xcc,
-
  0x85, 0xca, 0xc2, 0xa9, 0x70, 0xeb, 0xdf, 0x65, 0xe3, 0x69, 0xab, 0x6f,
-
  0xa4, 0xf6, 0x48, 0x33, 0x47, 0x00, 0x45, 0x8a, 0x58, 0x22, 0x4e, 0x8e,
-
  0x42, 0x54, 0x4e, 0x28, 0x2f, 0xc2, 0xbf, 0x55, 0x1a, 0xbb, 0xc0, 0x32,
-
  0xf2, 0xc6, 0x1f, 0x36, 0x34, 0x56, 0x7e, 0x3a, 0xa5, 0x3b, 0x81, 0xdc,
-
  0x58, 0x5c, 0x50, 0xea, 0x6b, 0x6f, 0x30, 0x14, 0xaf, 0xb6, 0x80, 0x3d,
-
  0x8d, 0x8b, 0x89, 0x54, 0x0d, 0x03, 0xba, 0x01, 0x15, 0x98, 0x9a, 0x54,
-
  0x69, 0x9a, 0xae, 0x4b, 0x9c, 0xb9, 0xd4, 0x35, 0xd1, 0x3e, 0x63, 0x71,
-
  0x3e, 0x9f, 0x71, 0xe9, 0x59, 0x1f, 0x73, 0x94, 0x32, 0x15, 0x7e, 0x1d,
-
  0x52, 0x67, 0x14, 0xba, 0xbf, 0xa7, 0x36, 0xaf, 0x90, 0xd6, 0xd7, 0xa4,
-
  0x5c, 0x8a, 0xe2, 0x97, 0x6a, 0x29, 0xfd, 0xe4, 0x65, 0xc6, 0xf1, 0x37,
-
  0x14, 0xcd, 0x21, 0x49, 0x43, 0x24, 0x07, 0x6b, 0x8c, 0x55, 0x28, 0xf1,
-
  0xa9, 0xf7, 0x21, 0x91, 0xf8, 0x1f, 0x44, 0xbf, 0xc7, 0xb3, 0xa4, 0x48,
-
  0xd3, 0x38, 0x1f, 0x59, 0x75, 0x50, 0x94, 0x1f, 0xfc, 0x45, 0x62, 0xc5,
-
  0x7b, 0xbb, 0x07, 0xac, 0x71, 0x11, 0x70, 0x29, 0x7f, 0xa6, 0x4d, 0x78,
-
  0xa0, 0xec, 0x10, 0xf6, 0xce, 0xcb, 0x16, 0xb5, 0xb1, 0x67, 0x6d, 0xe0,
-
  0x29, 0x51, 0x0f, 0xb7, 0x35, 0x26, 0x5e, 0x3d, 0xcd, 0x91, 0x56, 0x9b,
-
  0x48, 0xd0, 0xea, 0xa6, 0xe4, 0xac, 0x62, 0x7d, 0x4e, 0x3c, 0xda, 0x02,
-
  0x75, 0xcd, 0xc8, 0xbf, 0x35, 0x61, 0x1b, 0x08, 0x55, 0x29, 0xa2, 0xbe,
-
  0x61, 0x76, 0xf7, 0xf8, 0x92, 0x52, 0x5c, 0xfc, 0x62, 0x8a, 0x89, 0x1f,
-
  0xa3, 0x03, 0x71, 0x1d, 0x12, 0x40, 0x31, 0x81, 0x13, 0x8b, 0x14, 0x26,
-
  0x72, 0x7a, 0x28, 0x36, 0x63, 0x85, 0xbd, 0xc9, 0x47, 0x20, 0xc8, 0x1b,
-
  0x5d, 0x6b, 0x1c, 0xd8, 0x10, 0xf1, 0x23, 0x31, 0xe9, 0x30, 0xc9, 0x6d,
-
  0x6e, 0xa8, 0xa6, 0x8a, 0x4d, 0xa7, 0xec, 0x18, 0x66, 0x7b, 0x41, 0x8a,
-
  0x90, 0xcb, 0x4e, 0x67, 0x3d, 0x30, 0xdf, 0x70, 0xa0, 0x3b, 0x07, 0x79,
-
  0xae, 0x2a, 0x0f, 0xd5, 0x2d, 0x88, 0x41, 0xce, 0x6d, 0x08, 0xa9, 0x5b,
-
  0x2b, 0x69, 0x84, 0x35, 0x8a, 0x80, 0x1e, 0x91, 0x26, 0x1b, 0xdf, 0x6c,
-
  0x6d, 0x84, 0x22, 0x9a, 0x4d, 0x79, 0x2c, 0x86, 0x3d, 0x57, 0xdf, 0x86,
-
  0xa5, 0xe0, 0x93, 0x46, 0x3e, 0xc5, 0xb8, 0x93, 0x8c, 0x36, 0x83, 0x7d,
-
  0xb8, 0x55, 0xa0, 0x78, 0x2e, 0x1a, 0x96, 0xcf, 0x88, 0xd0, 0x19, 0x87,
-
  0x9b, 0x69, 0xca, 0x1b, 0x41, 0xb9, 0xb4, 0x62, 0x75, 0xe0, 0x65, 0x37,
-
  0x3a, 0x3e, 0x68, 0xe0, 0x15, 0xf3, 0xcc, 0x71, 0xad, 0xaa, 0x67, 0x15,
-
  0x24, 0xc2, 0x86, 0xb8, 0xb6, 0xf1, 0xcd, 0x26, 0xf3, 0xe0, 0x60, 0x62,
-
  0x70, 0xdd, 0x84, 0x1b, 0x91, 0x9f, 0x75, 0x9d, 0x09, 0x0d, 0x35, 0x9f,
-
  0x48, 0x9e, 0xa2, 0x51, 0xf2, 0x5b, 0x32, 0x33, 0xcb, 0x23, 0x4f, 0xb7,
-
  0xe9, 0xa3, 0x86, 0x88, 0xd5, 0x7c, 0x11, 0x56, 0x94, 0xfe, 0xfd, 0x0e,
-
  0x9f, 0x50, 0xc1, 0x71, 0x23, 0xe9, 0xf7, 0x41, 0x65, 0xac, 0xa6, 0x4d,
-
  0x1c, 0x31, 0x45, 0x60, 0xa3, 0xdb, 0xcb, 0xca, 0x34, 0x68, 0x0c, 0xbc,
-
  0x84, 0x40, 0x99, 0xdf, 0x48, 0x4c, 0x2b, 0xfc, 0x75, 0xf9, 0x0d, 0x46,
-
  0x81, 0x1c, 0x6a, 0x84, 0xaa, 0x46, 0xb0, 0x32, 0xe8, 0x3e, 0xb3, 0x05,
-
  0x31, 0x5d, 0xe0, 0x72, 0x3e, 0x19, 0xe4, 0x12, 0x45, 0xcf, 0x45, 0x94,
-
  0x28, 0xf2, 0x2c, 0x9b, 0x54, 0x52, 0xd3, 0x0b, 0xef, 0x20, 0xb1, 0x25,
-
  0xba, 0x72, 0x41, 0x68, 0xe2, 0x67, 0xfb, 0x9a, 0x09, 0xae, 0x32, 0x96,
-
  0xde, 0x91, 0x74, 0x94, 0x84, 0xb0, 0xb5, 0x2f, 0xb1, 0x0b, 0x43, 0x84,
-
  0x57, 0x2f, 0xaa, 0x94, 0x92, 0x4c, 0x9e, 0xf4, 0xf0, 0x6b, 0x3b, 0x42,
-
  0x55, 0x88, 0x29, 0x8c, 0x7d, 0xa8, 0x5d, 0x95, 0x3b, 0x7a, 0x14, 0xfa,
-
  0x1b, 0xa6, 0x46, 0x3c, 0x55, 0x92, 0x04, 0xa4, 0x17, 0x5e, 0x88, 0x4a,
-
  0x4d, 0x4f, 0xc1, 0x88, 0x14, 0x30, 0x4d, 0xa2, 0x79, 0x78, 0xf0, 0x5f,
-
  0x94, 0x05, 0x40, 0xa6, 0x26, 0x0e, 0xce, 0x77, 0x04, 0x48, 0x28, 0x17,
-
  0x35, 0xa1, 0xd7, 0x7d, 0xf9, 0xd8, 0x0d, 0xb4, 0x5d, 0x2d, 0x6c, 0x70,
-
  0x22, 0x9d, 0x4c, 0x73, 0xe8, 0x42, 0xd0, 0x42, 0x41, 0x61, 0x22, 0xa9,
-
  0xce, 0xc4, 0x6c, 0x2a, 0x2d, 0x14, 0xed, 0xe9, 0xf3, 0x6b, 0xdd, 0xf4,
-
  0x66, 0x0f, 0x4d, 0xfa, 0x73, 0x22, 0xb2, 0xbe, 0xc2, 0x5d, 0x31, 0x0d,
-
  0xae, 0x24, 0x41, 0xb4, 0x4c, 0x8e, 0x17, 0x25, 0xb1, 0x61, 0xf9, 0x96,
-
  0xef, 0x31, 0xc5, 0xac, 0x15, 0x49, 0xee, 0xf5, 0xe1, 0x9b, 0x77, 0x87,
-
  0xaf, 0xfa, 0x6a, 0xa7, 0x54, 0x9a, 0xbd, 0x9f, 0xca, 0x22, 0xd4, 0x64,
-
  0x54, 0x1c, 0x4a, 0x3e, 0x52, 0xe9, 0x3f, 0x1d, 0x21, 0x07, 0xed, 0xdc,
-
  0x99, 0x44, 0xff, 0xb1, 0xc5, 0x9f, 0xb8, 0x12, 0xc6, 0xdd, 0xc5, 0x9f,
-
  0x1a, 0x50, 0xe7, 0x6a, 0xae, 0xed, 0x49, 0x3e, 0xb2, 0x38, 0x14, 0xf0,
-
  0x13, 0x96, 0x6f, 0x83, 0x47, 0x21, 0x7c, 0xe6, 0x8d, 0xb9, 0xf9, 0x34,
-
  0x9d, 0xd3, 0x9e, 0x6c, 0x25, 0xa7, 0x88, 0xa7, 0x8f, 0xa3, 0xa5, 0xf4,
-
  0x79, 0xbc, 0xb4, 0x03, 0x8d, 0x85, 0x5a, 0x7e, 0x22, 0x5b, 0x90, 0x35,
-
  0x32, 0x0a, 0x12, 0x0b, 0xf2, 0x33, 0x77, 0xc3, 0x1f, 0x9a, 0x0d, 0x86,
-
  0x34, 0x31, 0x4d, 0x4b, 0x0c, 0xb5, 0x39, 0xe2, 0xc2, 0xc9, 0x6e, 0x90,
-
  0x6b, 0x86, 0x4f, 0xba, 0xa2, 0xc9, 0x1f, 0x03, 0x13, 0xee, 0x3b, 0x62,
-
  0xdd, 0x06, 0xa6, 0xf6, 0xb3, 0xed, 0xfb, 0x86, 0x53, 0x78, 0x70, 0xf1,
-
  0x3b, 0xb8, 0xe9, 0x1b, 0x1f, 0x03, 0x10, 0xf2, 0xa4, 0x09, 0xec, 0x27,
-
  0xf5, 0x1f, 0xdd, 0x3c, 0x65, 0xcb, 0xd8, 0xd0, 0xce, 0x7f, 0xac, 0xb2,
-
  0xb3, 0x27, 0x67, 0xa6, 0x7d, 0xeb, 0xeb, 0x5a, 0x7d, 0xc9, 0x0a, 0x4e,
-
  0xe8, 0x22, 0x70, 0x4b, 0x66, 0x67, 0x0f, 0x2a, 0xf1, 0x28, 0x89, 0xcb,
-
  0xc5, 0x2a, 0xea, 0x05, 0x88, 0x91, 0xb8, 0xb6, 0x14, 0x4b, 0xfd, 0x4a,
-
  0x54, 0x90, 0xe4, 0x3b, 0xe1, 0x77, 0x4f, 0x15, 0xdc, 0x43, 0xb9, 0x51,
-
  0x57, 0xe3, 0xbf, 0x13, 0xd1, 0x39, 0x3a, 0x06, 0xf0, 0xa7, 0x56, 0x59,
-
  0x1e, 0x08, 0x65, 0xb6, 0xa2, 0xc7, 0x23, 0x2a, 0x87, 0x33, 0xcd, 0xd2,
-
  0x19, 0xef, 0xbb, 0xc5, 0x10, 0xb3, 0x45, 0x12, 0xcd, 0xc9, 0x62, 0x1d,
-
  0xf6, 0xb3, 0x24, 0x8d, 0x4a, 0xc2, 0x99, 0x18, 0x7a, 0xf4, 0x46, 0xf1,
-
  0xf1, 0xd1, 0x00, 0x99, 0x93, 0x1b, 0xc8, 0xc5, 0xdc, 0xf3, 0x48, 0x78,
-
  0x04, 0x2c, 0xff, 0x0f, 0x87, 0x54, 0x07, 0x97, 0x8e, 0x1e, 0x7c, 0x7b,
-
  0x71, 0x21, 0xa0, 0xea, 0xc9, 0x77, 0xaa, 0x7b, 0x24, 0x4f, 0x93, 0x71,
-
  0x96, 0xd6, 0x14, 0x10, 0x51, 0x8c, 0xb5, 0xeb, 0x7e, 0x63, 0x9f, 0x3c,
-
  0xa3, 0x69, 0xd0, 0xa3, 0x2b, 0x9b, 0xf5, 0x51, 0x9c, 0x46, 0x9b, 0x56,
-
  0x1b, 0x48, 0x9d, 0xae, 0x09, 0x57, 0x1f, 0x13, 0x53, 0x3d, 0xef, 0xe1,
-
  0xcd, 0x83, 0x71, 0x22, 0x51, 0xa5, 0x1d, 0xce, 0x91, 0x16, 0x87, 0x37,
-
  0xa5, 0xed, 0x6a, 0x5c, 0x60, 0x5a, 0xbd, 0x67, 0x2b, 0x54, 0x47, 0x5f,
-
  0x4c, 0xb8, 0xf7, 0x74, 0x5c, 0xf3, 0x3d, 0xcf, 0x58, 0x96, 0xe1, 0xbe,
-
  0x30, 0x08, 0x76, 0x72, 0x64, 0x11, 0x2c, 0x91, 0x1e, 0x4e, 0x41, 0x80,
-
  0x6d, 0x18, 0x3e, 0x8b, 0xf1, 0x78, 0x09, 0xb4, 0xe9, 0xf0, 0xd9, 0xb3,
-
  0x80, 0xfd, 0xcc, 0x69, 0x66, 0x7e, 0xf0, 0xf7, 0x97, 0x9f, 0xda, 0x5c,
-
  0x6b, 0xd7, 0x49, 0x67, 0x5a, 0xf6, 0xcb, 0x62, 0x50, 0xd4, 0x9d, 0x75,
-
  0xab, 0x78, 0x97, 0xf1, 0x4a, 0x07, 0xa1, 0xae, 0x57, 0x17, 0x8c, 0xa8,
-
  0xff, 0x54, 0xe6, 0x14, 0x2d, 0x3c, 0x1a, 0x7e, 0x7c, 0x70, 0x1c, 0xac,
-
  0x44, 0x48, 0xf0, 0x78, 0x77, 0x76, 0xf4, 0x96, 0x17, 0xf6, 0xf4, 0xf0,
-
  0xec, 0xcc, 0x81, 0x8d, 0x4b, 0x30, 0x90, 0x4e, 0x93, 0xc3, 0xa0, 0xc4,
-
  0xb9, 0xc4, 0xcb, 0x66, 0xc1, 0xc7, 0x92, 0xdc, 0x45, 0x6c, 0x16, 0x4f,
-
  0xcc, 0xf9, 0x62, 0x0a, 0xd7, 0x31, 0x68, 0x82, 0x23, 0x0c, 0xa4, 0x59,
-
  0xe1, 0xf1, 0x14, 0x0a, 0x20, 0x30, 0x91, 0x17, 0x08, 0xac, 0xa2, 0x6e,
-
  0x09, 0x71, 0x02, 0x3b, 0x18, 0x11, 0x0d, 0xab, 0x4f, 0x3a, 0x67, 0xc7,
-
  0xe7, 0x47, 0xb2, 0x83, 0xef, 0xce, 0x5f, 0x76, 0x14, 0x34, 0xa8, 0x51,
-
  0xe0, 0xac, 0x20, 0x61, 0x0b, 0x28, 0x3a, 0xb3, 0x08, 0x47, 0x2b, 0x2a,
-
  0x20, 0x1e, 0x80, 0x56, 0xb8, 0x12, 0x4b, 0xe1, 0x58, 0xb5, 0xbc, 0xf1,
-
  0x55, 0xd0, 0x56, 0x16, 0xeb, 0xd3, 0x23, 0x8a, 0x57, 0xf5, 0xd9, 0x79,
-
  0xf7, 0x68, 0xbf, 0x6c, 0x21, 0x91, 0x96, 0xb3, 0xe8, 0x88, 0x8b, 0xaf,
-
  0xdf, 0x25, 0x9a, 0x71, 0x19, 0x09, 0x81, 0x42, 0x92, 0xb3, 0xe8, 0x7c,
-
  0xe2, 0x27, 0xe8, 0x66, 0xc4, 0x7f, 0xdf, 0xbd, 0x7d, 0xb5, 0x6d, 0xc9,
-
  0x69, 0x0c, 0xfc, 0x9e, 0x4a, 0x0e, 0x82, 0x48, 0xd0, 0xca, 0x73, 0x28,
-
  0x74, 0xd5, 0x1c, 0xe0, 0x94, 0x22, 0x64, 0xd1, 0x60, 0xea, 0x22, 0x10,
-
  0xc6, 0x28, 0xe8, 0x17, 0x0a, 0xa1, 0x4c, 0x9c, 0x2e, 0x44, 0x99, 0xe4,
-
  0x21, 0x3c, 0xcb, 0xca, 0xff, 0x44, 0x80, 0xd4, 0x12, 0x4e, 0xa8, 0xd7,
-
  0x79, 0x04, 0x6f, 0xcd, 0xf3, 0x13, 0x06, 0x2f, 0x49, 0x15, 0x9a, 0x53,
-
  0x91, 0x53, 0xbc, 0x7c, 0xec, 0x29, 0x8f, 0x97, 0x64, 0xc9, 0x5b, 0xae,
-
  0xd9, 0x97, 0x1f, 0x57, 0x4a, 0xa0, 0xd1, 0xea, 0xdd, 0xdb, 0xee, 0x87,
-
  0xa0, 0x21, 0xe4, 0xcb, 0x2c, 0xa1, 0xcc, 0xa6, 0x20, 0xef, 0x92, 0x4d,
-
  0x72, 0x9b, 0x4c, 0x17, 0xcb, 0x11, 0xe5, 0x51, 0xa7, 0x61, 0xd7, 0x25,
-
  0x4a, 0xf7, 0x29, 0xff, 0x1b, 0xf1, 0x86, 0x67, 0x8c, 0xb1, 0x23, 0x46,
-
  0x79, 0x79, 0x90, 0x86, 0xa6, 0xc5, 0xc7, 0x24, 0x75, 0xb8, 0xa4, 0x48,
-
  0x4b, 0xb5, 0x60, 0x53, 0x52, 0x82, 0xb8, 0xd0, 0xa1, 0x9d, 0xcd, 0xb3,
-
  0x2d, 0x73, 0x46, 0xa0, 0xe5, 0x43, 0xda, 0x51, 0x7d, 0xda, 0x83, 0x70,
-
  0xba, 0xc2, 0x5b, 0x41, 0xa5, 0xd6, 0x08, 0x75, 0xa3, 0x7e, 0x33, 0x4f,
-
  0xd0, 0x86, 0x0c, 0xaf, 0x47, 0x92, 0xd1, 0x6e, 0x4e, 0xcb, 0x67, 0x3f,
-
  0x3d, 0x0f, 0x59, 0x93, 0x74, 0x81, 0xd0, 0xf8, 0x88, 0x34, 0x4d, 0xc1,
-
  0x0e, 0xf5, 0x9d, 0x18, 0x08, 0xe7, 0xc1, 0x0b, 0x2a, 0x3c, 0x91, 0xcd,
-
  0x93, 0xcb, 0x1c, 0x5e, 0x2d, 0x87, 0x97, 0x0c, 0x00, 0x88, 0x51, 0xb5,
-
  0x20, 0x0d, 0x60, 0xb6, 0xe3, 0xec, 0xc6, 0x38, 0x60, 0xdf, 0xa2, 0x95,
-
  0x30, 0x5f, 0x1f, 0x5d, 0xf1, 0xd0, 0xc2, 0xee, 0x97, 0xfb, 0x4f, 0x92,
-
  0x2a, 0xbd, 0xa9, 0xd8, 0xba, 0xea, 0x6a, 0x5f, 0x52, 0xa5, 0x48, 0x91,
-
  0xb6, 0xd5, 0x58, 0x62, 0x00, 0x2d, 0x83, 0x85, 0xd5, 0xe2, 0xaa, 0xd0,
-
  0x7c, 0x41, 0x86, 0x5f, 0x41, 0x10, 0xb7, 0x8a, 0x3c, 0x61, 0x9a, 0x40,
-
  0x6d, 0x38, 0x41, 0x06, 0xd5, 0xeb, 0xbb, 0x08, 0xf1, 0xb3, 0xe3, 0xff,
-
  0x3e, 0xea, 0x26, 0x6f, 0x8f, 0xce, 0xdf, 0x76, 0x93, 0xb3, 0xf3, 0x93,
-
  0xb7, 0xe8, 0x85, 0x67, 0xf1, 0x08, 0xe7, 0x59, 0x49, 0x17, 0xe4, 0x37,
-
  0xa4, 0xa5, 0x88, 0xc3, 0x1a, 0x43, 0x08, 0xa0, 0xfa, 0xe2, 0xaa, 0xac,
-
  0x39, 0x5d, 0x36, 0x43, 0x91, 0xc1, 0x03, 0x98, 0x58, 0xdb, 0x40, 0x79,
-
  0x07, 0xc2, 0x60, 0x71, 0x47, 0x71, 0xb4, 0xc1, 0xe5, 0x4e, 0xfd, 0xd7,
-
  0xb0, 0xfb, 0xc0, 0x01, 0x43, 0x46, 0x93, 0x65, 0xeb, 0x69, 0xf8, 0x2e,
-
  0x95, 0xfe, 0x78, 0x10, 0xdc, 0x7e, 0x1d, 0x45, 0xae, 0x07, 0xbe, 0xbe,
-
  0xc9, 0x75, 0x93, 0x75, 0x17, 0x95, 0x0c, 0x12, 0x0a, 0x9e, 0xdb, 0xb2,
-
  0x88, 0x52, 0x1a, 0x6c, 0x55, 0x4c, 0x33, 0xa2, 0x5f, 0x32, 0xad, 0x2a,
-
  0x7f, 0xa1, 0x88, 0x7e, 0xae, 0xad, 0xc7, 0x8a, 0x7d, 0x87, 0x56, 0xb8,
-
  0x13, 0x85, 0x88, 0x45, 0x0b, 0x96, 0xcd, 0x80, 0x02, 0xa9, 0xee, 0x77,
-
  0x47, 0xfb, 0xeb, 0x44, 0x99, 0xe8, 0xee, 0x2c, 0xdd, 0x67, 0xe1, 0xa0,
-
  0xaa, 0x85, 0x25, 0x48, 0x37, 0x36, 0xef, 0x65, 0x76, 0x00, 0x0b, 0xbb,
-
  0x8b, 0x3f, 0xf6, 0xb6, 0x83, 0x1d, 0xb3, 0xa5, 0x05, 0x9a, 0xf4, 0xa7,
-
  0xbf, 0x6e, 0x9b, 0x7d, 0x77, 0x13, 0x4b, 0xec, 0x08, 0xd3, 0x94, 0x7b,
-
  0x92, 0x78, 0x17, 0x98, 0x11, 0xd6, 0x7b, 0xf0, 0x1c, 0x88, 0xa4, 0xef,
-
  0xa8, 0x9c, 0x84, 0xe5, 0xd6, 0xb2, 0x20, 0x17, 0x72, 0xc7, 0x91, 0x7d,
-
  0xcb, 0x83, 0x0d, 0xa7, 0x30, 0x31, 0x8e, 0x89, 0x9d, 0x37, 0x25, 0x59,
-
  0x01, 0xa2, 0x58, 0x2c, 0xdd, 0x22, 0xb1, 0x0c, 0x6d, 0xb1, 0x06, 0x28,
-
  0x8c, 0x10, 0x3a, 0x42, 0x4a, 0x49, 0x1f, 0x79, 0x41, 0x48, 0x8d, 0xa1,
-
  0x8e, 0xc5, 0xdc, 0x5b, 0x16, 0xdf, 0x66, 0x94, 0xb8, 0x44, 0xba, 0x6e,
-
  0x92, 0xcd, 0x28, 0x0e, 0x66, 0x14, 0xa6, 0x82, 0xc5, 0xab, 0x26, 0x1c,
-
  0x18, 0x86, 0x77, 0xe3, 0xa8, 0xe0, 0x70, 0x41, 0x1c, 0x0f, 0xd5, 0x00,
-
  0x40, 0x5f, 0x8e, 0x03, 0x7e, 0xd2, 0xfb, 0x4c, 0x1a, 0x12, 0x23, 0x39,
-
  0xa7, 0xf7, 0xba, 0x21, 0xd0, 0x5d, 0xa3, 0x23, 0x38, 0xf5, 0xab, 0xc6,
-
  0x1c, 0xac, 0xb6, 0x42, 0x61, 0x28, 0xfe, 0x54, 0xa1, 0x96, 0x84, 0xaa,
-
  0x03, 0x5a, 0x0c, 0x46, 0x0e, 0xa3, 0x34, 0x84, 0x45, 0x20, 0x92, 0xc5,
-
  0x6c, 0x82, 0xf1, 0xec, 0x0d, 0xc0, 0x7f, 0x15, 0x5e, 0xe2, 0x08, 0x61,
-
  0xd9, 0xc8, 0xfb, 0xa9, 0xbd, 0x63, 0x65, 0x40, 0xee, 0xbc, 0x29, 0xa9,
-
  0xcf, 0x8f, 0xad, 0xc9, 0xa1, 0xe4, 0x77, 0xda, 0xf5, 0x2b, 0xd9, 0x04,
-
  0xae, 0x26, 0x62, 0x94, 0x4d, 0xa5, 0xb4, 0x13, 0x0e, 0xdb, 0x32, 0x16,
-
  0x2e, 0x30, 0x71, 0xc0, 0xca, 0xb6, 0x91, 0xb0, 0x33, 0x74, 0x45, 0x83,
-
  0x98, 0x59, 0x50, 0xf9, 0x2d, 0x97, 0x86, 0xe2, 0xa4, 0x61, 0x9a, 0x21,
-
  0xb4, 0x1b, 0x07, 0xd6, 0xfa, 0xa8, 0x56, 0xbc, 0x5c, 0xa5, 0x3e, 0xc4,
-
  0x94, 0x73, 0x91, 0x5c, 0xb8, 0x2d, 0xa5, 0x4e, 0xa8, 0x38, 0x1e, 0xd7,
-
  0x35, 0x93, 0x4e, 0xc8, 0xd2, 0xa1, 0x1e, 0x32, 0x96, 0x9b, 0x51, 0xe2,
-
  0x6e, 0xc0, 0x4b, 0x29, 0x88, 0x31, 0x27, 0xfd, 0x97, 0xb5, 0x46, 0x25,
-
  0xc5, 0xa7, 0x8e, 0x34, 0xb1, 0x46, 0x37, 0xc0, 0xbf, 0x16, 0xf3, 0x70,
-
  0xd3, 0x3b, 0x0c, 0x6f, 0x6d, 0x4b, 0x23, 0x08, 0xfc, 0xa0, 0xea, 0xa2,
-
  0x1f, 0x56, 0xd7, 0x5f, 0x91, 0x85, 0x25, 0x56, 0x8d, 0xf5, 0x7e, 0x37,
-
  0x00, 0x60, 0xbc, 0x4c, 0x18, 0xbb, 0x16, 0x91, 0xee, 0xb1, 0x6f, 0x81,
-
  0xab, 0x90, 0xe8, 0x10, 0x7b, 0x10, 0x26, 0xe8, 0xc6, 0x11, 0x57, 0xde,
-
  0x78, 0x80, 0xeb, 0xb9, 0xf9, 0x6e, 0x96, 0x7f, 0x20, 0xb3, 0xab, 0xc2,
-
  0xc2, 0x84, 0xe7, 0xad, 0x17, 0xc5, 0x4b, 0x46, 0xb4, 0x75, 0xdf, 0x1b,
-
  0x65, 0x70, 0x60, 0x41, 0xed, 0xf8, 0x25, 0x8f, 0xe7, 0x68, 0x6d, 0x4c,
-
  0x6f, 0xfa, 0xf8, 0x59, 0x7f, 0x54, 0x4c, 0xc9, 0x86, 0x1e, 0xb7, 0x32,
-
  0xa5, 0x9c, 0x66, 0x65, 0x8b, 0xbd, 0x2f, 0xa4, 0x7c, 0x25, 0xef, 0xfb,
-
  0x3c, 0x87, 0x7d, 0x0b, 0x41, 0xcc, 0xc7, 0xa7, 0x61, 0x97, 0xc4, 0x13,
-
  0x5d, 0x69, 0x59, 0xc6, 0x80, 0x08, 0x2a, 0x97, 0xa5, 0xe2, 0x22, 0x26,
-
  0x31, 0x67, 0x8c, 0x25, 0x0f, 0x82, 0x2e, 0x44, 0x87, 0x1e, 0x2b, 0x2a,
-
  0xc3, 0xcb, 0x22, 0x1f, 0x66, 0x28, 0x02, 0xb5, 0x15, 0x9c, 0xa1, 0x4a,
-
  0x48, 0x56, 0xfc, 0xdd, 0x6a, 0xf2, 0xf8, 0x47, 0x55, 0xcc, 0xe6, 0x02,
-
  0x92, 0xfc, 0xa6, 0x9c, 0x90, 0x23, 0x5f, 0xa4, 0x6a, 0xc9, 0xd0, 0x46,
-
  0x6d, 0xb3, 0xe3, 0x5c, 0x23, 0x3b, 0x1e, 0x34, 0x8a, 0x21, 0x59, 0xf5,
-
  0x22, 0x61, 0x99, 0xf8, 0xca, 0x1f, 0xff, 0x88, 0xcc, 0xe0, 0x41, 0x23,
-
  0x92, 0x44, 0x6a, 0x3e, 0x27, 0x9d, 0x83, 0xbf, 0x91, 0xbb, 0xe8, 0x97,
-
  0xde, 0xdf, 0xe0, 0xef, 0x5f, 0x3a, 0xc1, 0xc8, 0x2d, 0x15, 0xa9, 0x0c,
-
  0xcb, 0xe2, 0x81, 0x2c, 0x6b, 0x97, 0x4e, 0x09, 0x28, 0x8b, 0x3e, 0x08,
-
  0xe5, 0xfc, 0xd9, 0x29, 0x13, 0x31, 0xc2, 0x96, 0x70, 0x30, 0xe4, 0xa2,
-
  0x22, 0x21, 0x8e, 0x85, 0xe1, 0x14, 0xdd, 0xe6, 0x0f, 0x08, 0x4a, 0x53,
-
  0x36, 0x36, 0xf5, 0xcf, 0x77, 0x43, 0xdc, 0xcc, 0xb5, 0xe8, 0x9d, 0x29,
-
  0x48, 0x96, 0x17, 0x68, 0x37, 0x66, 0xf0, 0x71, 0x8c, 0xbf, 0x46, 0x01,
-
  0x85, 0x65, 0x56, 0xfe, 0x8c, 0x21, 0x86, 0xd0, 0x13, 0x77, 0x0d, 0xc3,
-
  0xe1, 0xb8, 0x1c, 0x76, 0x44, 0x64, 0x01, 0xfa, 0x25, 0x9f, 0x0d, 0x09,
-
  0x90, 0x49, 0x25, 0xba, 0x32, 0xaf, 0xde, 0xe3, 0xa4, 0x24, 0x5d, 0x46,
-
  0xa2, 0xc4, 0x08, 0xc9, 0xa5, 0x20, 0xc3, 0xfb, 0x0d, 0xe3, 0x03, 0x66,
-
  0x01, 0xa7, 0x63, 0x49, 0x72, 0x31, 0x88, 0xe5, 0x95, 0x82, 0x8b, 0xcb,
-
  0x73, 0xfa, 0x24, 0xc9, 0xe5, 0x34, 0xe9, 0x31, 0x73, 0x5e, 0x85, 0xb3,
-
  0x75, 0xca, 0xa7, 0xfb, 0x8e, 0x67, 0x3c, 0x96, 0xf9, 0xd2, 0xa3, 0xad,
-
  0x5a, 0x2f, 0x5d, 0x0b, 0x82, 0x02, 0x1a, 0xd7, 0x79, 0x72, 0x72, 0x47,
-
  0x99, 0x45, 0xe5, 0xd7, 0x38, 0x68, 0x2a, 0x4d, 0x4e, 0x41, 0x9a, 0x76,
-
  0xe4, 0x2b, 0xb1, 0x75, 0x78, 0x23, 0x26, 0x8c, 0x93, 0x82, 0xd7, 0x27,
-
  0x4a, 0x9c, 0x08, 0xf4, 0x4d, 0x09, 0x7e, 0x56, 0x79, 0xc9, 0xca, 0x92,
-
  0xe1, 0xf9, 0xc7, 0xbb, 0x7e, 0x54, 0x42, 0x4f, 0x18, 0xf6, 0x28, 0x28,
-
  0x51, 0x6a, 0x32, 0xa1, 0x1c, 0x47, 0x43, 0x7d, 0xb4, 0xbe, 0x2c, 0x9b,
-
  0x21, 0x08, 0xc9, 0x13, 0x76, 0x1b, 0x56, 0x5c, 0xd2, 0x1c, 0x29, 0x84,
-
  0x7e, 0x59, 0xcc, 0x35, 0xc5, 0xe7, 0x7a, 0x86, 0x66, 0x60, 0x31, 0x55,
-
  0xf2, 0x28, 0xe9, 0xe6, 0x58, 0xae, 0x52, 0xa3, 0x93, 0x6e, 0xcd, 0x68,
-
  0x08, 0x01, 0xe0, 0xcd, 0x4c, 0x46, 0x73, 0xb8, 0xb6, 0xde, 0xd2, 0xd0,
-
  0xde, 0x1a, 0xb7, 0x34, 0xf6, 0xba, 0xce, 0x2d, 0x1d, 0xc4, 0x9a, 0x50,
-
  0x24, 0x28, 0x0d, 0x17, 0x36, 0x7d, 0x80, 0x30, 0xd0, 0xf4, 0x69, 0x4f,
-
  0xc3, 0xf4, 0xa5, 0x72, 0x96, 0x80, 0x8b, 0x29, 0xf8, 0x07, 0x03, 0xaf,
-
  0x3a, 0x36, 0xea, 0x2c, 0x42, 0x86, 0x75, 0xae, 0x39, 0xf9, 0x86, 0xe7,
-
  0xcc, 0x59, 0xa1, 0x64, 0x3a, 0x40, 0x6b, 0x7b, 0xa5, 0x6b, 0x6a, 0x7b,
-
  0xe4, 0xb2, 0xff, 0x95, 0xdf, 0x2a, 0x8b, 0x0d, 0x31, 0xdb, 0x9e, 0x11,
-
  0x1f, 0x2b, 0xfb, 0x93, 0xec, 0x3f, 0x32, 0x9a, 0x04, 0x56, 0xef, 0x2f,
-
  0x2f, 0x06, 0x5c, 0x66, 0x36, 0x6f, 0x67, 0xac, 0x32, 0xf1, 0x57, 0xf9,
-
  0xbc, 0x6b, 0xbd, 0x3d, 0x0d, 0x44, 0x91, 0xe2, 0x07, 0x96, 0xef, 0xa8,
-
  0x10, 0x53, 0x0c, 0x11, 0x4e, 0x08, 0x53, 0x2d, 0xaf, 0xc6, 0x25, 0xb2,
-
  0xf2, 0xb1, 0x54, 0xfe, 0xe3, 0x22, 0x71, 0x25, 0xcb, 0x8d, 0x86, 0x29,
-
  0x1b, 0x42, 0x89, 0x83, 0xcc, 0xd8, 0x5f, 0x36, 0xa7, 0xf8, 0xed, 0x5a,
-
  0x59, 0xbb, 0xed, 0xa3, 0xf3, 0xc7, 0x1a, 0x0d, 0xdf, 0x4d, 0x82, 0xd1,
-
  0x30, 0xd6, 0x26, 0xc5, 0x25, 0xda, 0xab, 0x26, 0xbd, 0xe1, 0x70, 0xd8,
-
  0x54, 0x57, 0x9e, 0x3d, 0x7b, 0x96, 0x6c, 0x3e, 0xa3, 0x0a, 0xa8, 0xcf,
-
  0x84, 0x4e, 0x9e, 0x5d, 0x62, 0x70, 0xe2, 0x04, 0xd8, 0xca, 0xe5, 0x02,
-
  0x08, 0x04, 0xcf, 0x29, 0xed, 0xe1, 0xd9, 0xd9, 0xab, 0x6d, 0x4a, 0x6d,
-
  0x99, 0xa4, 0x37, 0x8a, 0xf6, 0x24, 0xa6, 0xed, 0x86, 0x4d, 0xb6, 0x2f,
-
  0xd1, 0x43, 0x44, 0x96, 0xb5, 0xba, 0xa9, 0xf8, 0x8a, 0xb5, 0x1b, 0x9f,
-
  0xa2, 0x0b, 0xa1, 0x1f, 0xab, 0xf2, 0x3b, 0x5d, 0xcc, 0x5c, 0xc2, 0x33,
-
  0x2a, 0x34, 0xb3, 0x4c, 0xe1, 0x04, 0x45, 0xec, 0x94, 0x44, 0xae, 0x37,
-
  0x87, 0xe7, 0x98, 0xf1, 0x52, 0x5b, 0xfe, 0x23, 0x19, 0x5f, 0x42, 0xec,
-
  0x86, 0xab, 0x22, 0x99, 0x06, 0x99, 0x22, 0x73, 0x12, 0x30, 0x2b, 0x67,
-
  0x64, 0x02, 0x65, 0xc1, 0xb1, 0x35, 0x9b, 0x2a, 0x2c, 0xdb, 0x8a, 0xdc,
-
  0xc1, 0x95, 0x6a, 0x01, 0x6f, 0x7b, 0x54, 0x20, 0x50, 0xf7, 0x9e, 0x1b,
-
  0x5c, 0x63, 0xdb, 0xa5, 0xe7, 0xf1, 0xca, 0xd8, 0x54, 0xb7, 0xe5, 0xf0,
-
  0xb0, 0x63, 0x3c, 0xf2, 0x6a, 0x8f, 0xb9, 0xe9, 0x32, 0x11, 0xd0, 0x17,
-
  0x20, 0xd7, 0x92, 0xb4, 0xbe, 0x2d, 0x2b, 0xf0, 0x6d, 0x7c, 0xa3, 0xd4,
-
  0xc2, 0x77, 0x90, 0x40, 0x58, 0x9e, 0xe7, 0x5a, 0xf0, 0x91, 0x76, 0x1b,
-
  0x72, 0x55, 0x59, 0xa1, 0xf0, 0x81, 0xdc, 0x15, 0x50, 0x0f, 0xd2, 0x0e,
-
  0x8b, 0x05, 0x7a, 0xe4, 0x18, 0x24, 0xc4, 0xb4, 0x62, 0x57, 0xde, 0xb8,
-
  0x80, 0x75, 0x6b, 0x2d, 0x9f, 0x59, 0x66, 0x98, 0x07, 0xab, 0x71, 0xc2,
-
  0xd2, 0xaa, 0x03, 0xa5, 0x32, 0x04, 0x6b, 0x1c, 0xa0, 0xd3, 0x40, 0x4c,
-
  0xcd, 0x51, 0xe3, 0x67, 0xfc, 0x3e, 0xc1, 0x4d, 0xd0, 0x68, 0x04, 0x39,
-
  0x45, 0x3a, 0x0a, 0x0d, 0x87, 0x96, 0x6f, 0x23, 0x0d, 0x5e, 0xcc, 0xb5,
-
  0x32, 0xec, 0xef, 0x4e, 0xb4, 0x5b, 0xde, 0xbc, 0xf5, 0xa8, 0x84, 0x07,
-
  0x21, 0x93, 0xff, 0x04, 0xfa, 0x89, 0x29, 0xb3, 0x31, 0x47, 0x3e, 0xb1,
-
  0x9e, 0x3c, 0xde, 0xaa, 0x4c, 0x60, 0x3c, 0xc1, 0x9c, 0xa2, 0x74, 0xf4,
-
  0x26, 0xc5, 0x45, 0x4e, 0xe6, 0x6d, 0x2e, 0xad, 0x1c, 0x05, 0xbc, 0xc8,
-
  0xf5, 0x7e, 0xc8, 0x47, 0x59, 0x61, 0xcf, 0x23, 0xc0, 0x03, 0x26, 0x19,
-
  0xc2, 0xe7, 0x32, 0x3c, 0x51, 0xb2, 0x9f, 0x38, 0xa8, 0x0f, 0x13, 0x38,
-
  0x60, 0x71, 0xf3, 0x21, 0xa8, 0x8b, 0xc3, 0x9b, 0x3e, 0x25, 0xf7, 0xeb,
-
  0x95, 0x66, 0x01, 0x28, 0xf9, 0x38, 0x76, 0xaa, 0xb8, 0x2a, 0x6b, 0x12,
-
  0x89, 0x26, 0xcb, 0xc1, 0x73, 0x59, 0xb6, 0x0e, 0xb8, 0x45, 0xb8, 0xaf,
-
  0xb2, 0x78, 0x8d, 0x66, 0xd7, 0xdc, 0x67, 0x19, 0xc3, 0x1a, 0xfe, 0x13,
-
  0x57, 0x6b, 0xfb, 0x07, 0x34, 0x15, 0x58, 0xb6, 0x8f, 0x24, 0x07, 0xb3,
-
  0xb7, 0xcb, 0x12, 0x5b, 0x5a, 0x6a, 0x48, 0x50, 0xb1, 0x5a, 0x8e, 0xc0,
-
  0x09, 0x79, 0xd7, 0x11, 0x20, 0x84, 0x86, 0x4a, 0x50, 0x49, 0x78, 0x09,
-
  0x4a, 0x22, 0x54, 0x9c, 0x66, 0xb5, 0xf9, 0xba, 0x70, 0xf6, 0x29, 0x8e,
-
  0x1f, 0xa3, 0x84, 0x0b, 0xa9, 0x76, 0x02, 0x32, 0xab, 0x22, 0xd1, 0x99,
-
  0xbe, 0xa5, 0x66, 0x75, 0x4a, 0x42, 0xd3, 0x6f, 0x25, 0x08, 0x09, 0x1d,
-
  0xd7, 0xd7, 0x39, 0xc2, 0xfd, 0xb0, 0x55, 0x3f, 0xe0, 0xea, 0xe0, 0x3d,
-
  0x41, 0x6b, 0xe6, 0x50, 0x7e, 0x83, 0x8a, 0xc0, 0x14, 0x54, 0x58, 0xd9,
-
  0x44, 0x4a, 0x8b, 0x81, 0x96, 0x4b, 0x05, 0x9e, 0x77, 0x6a, 0x86, 0x8d,
-
  0xb5, 0xa5, 0xfa, 0x37, 0x87, 0x93, 0x88, 0x8a, 0xc1, 0x59, 0x72, 0x12,
-
  0xa7, 0x1c, 0xd2, 0x63, 0xe4, 0x78, 0xbb, 0x62, 0x4c, 0xda, 0xab, 0xc6,
-
  0x86, 0xbe, 0x3c, 0x3a, 0x7c, 0x1e, 0xe0, 0x94, 0x3c, 0xc9, 0xa1, 0xa9,
-
  0xf9, 0x5e, 0x6c, 0x51, 0x17, 0x4b, 0x02, 0x6e, 0xd3, 0x3c, 0x8b, 0x5d,
-
  0xdd, 0x09, 0x28, 0x8c, 0x0f, 0xf5, 0x46, 0x49, 0xa7, 0x2e, 0x8a, 0x89,
-
  0x06, 0xf0, 0xc0, 0x9f, 0xe9, 0x45, 0xf6, 0x4d, 0x31, 0x19, 0x75, 0xd6,
-
  0x6c, 0xe0, 0xb8, 0xd9, 0xc6, 0x5a, 0x3e, 0x79, 0x03, 0xa3, 0x41, 0x88,
-
  0x7c, 0x45, 0xb3, 0x23, 0xf2, 0xbb, 0x20, 0xb2, 0x9e, 0x14, 0x83, 0x62,
-
  0x2c, 0x52, 0xdc, 0x19, 0xd7, 0x29, 0x45, 0x1f, 0xb9, 0x62, 0x41, 0x13,
-
  0xa6, 0xc0, 0x80, 0x44, 0x3a, 0xcd, 0x71, 0x95, 0xc0, 0x63, 0xb2, 0x5b,
-
  0x56, 0x94, 0x43, 0xe2, 0x80, 0x27, 0xb8, 0xa1, 0x9b, 0x46, 0x25, 0x04,
-
  0x87, 0x11, 0x61, 0x41, 0xb4, 0xa8, 0x5d, 0x52, 0x65, 0xe6, 0x2a, 0xf9,
-
  0xe7, 0xbf, 0xfe, 0xf6, 0x4b, 0xb0, 0xc2, 0x5f, 0x52, 0x4a, 0xae, 0x4b,
-
  0xa4, 0x84, 0x1b, 0x26, 0x9b, 0x8c, 0xd9, 0xe8, 0x43, 0xda, 0x04, 0x42,
-
  0x4f, 0xf7, 0x5d, 0xa8, 0x3e, 0xfb, 0x2e, 0xb4, 0x35, 0x8c, 0xf0, 0x23,
-
  0xde, 0xc4, 0x1e, 0x04, 0x09, 0x7c, 0xce, 0x2e, 0x40, 0xb5, 0xd5, 0x5a,
-
  0xa1, 0x14, 0xda, 0x8c, 0x1c, 0x12, 0xde, 0xbc, 0x71, 0x46, 0x29, 0x0d,
-
  0x30, 0x8c, 0xd2, 0x2e, 0x85, 0xf0, 0x8e, 0xe5, 0x52, 0x16, 0xcd, 0xad,
-
  0x41, 0x71, 0xbc, 0x8c, 0xab, 0xb4, 0xab, 0x38, 0x5d, 0xfc, 0xce, 0xe4,
-
  0x5a, 0x69, 0xed, 0x56, 0x9e, 0x86, 0xc8, 0xe5, 0x2d, 0x49, 0x37, 0xff,
-
  0xfc, 0xdb, 0x2f, 0xff, 0x82, 0xff, 0x74, 0x56, 0x15, 0x22, 0x8f, 0x15,
-
  0x63, 0xbb, 0xa9, 0x2e, 0xe1, 0xa0, 0xdd, 0xf4, 0xb2, 0x9b, 0x6c, 0x00,
-
  0x5c, 0xab, 0x52, 0x14, 0xaa, 0xde, 0xb4, 0x4a, 0x9e, 0x4e, 0xd5, 0x28,
-
  0xfa, 0x12, 0x9f, 0x49, 0x8e, 0xe4, 0x19, 0xad, 0xb8, 0x9b, 0x4e, 0x2e,
-
  0x8a, 0x12, 0x46, 0x3e, 0x15, 0x27, 0x70, 0xec, 0x81, 0x35, 0x23, 0x60,
-
  0x42, 0x39, 0x83, 0x6a, 0x81, 0xbb, 0x7a, 0x28, 0x29, 0xab, 0xbe, 0xf4,
-
  0x5e, 0xa6, 0x72, 0xc4, 0x68, 0x91, 0x4e, 0x50, 0x43, 0x46, 0xab, 0x18,
-
  0xda, 0xd4, 0xd0, 0x18, 0x71, 0x91, 0x73, 0xfa, 0xbe, 0xbc, 0x11, 0x82,
-
  0xd0, 0x25, 0xb5, 0x58, 0xd9, 0x5d, 0xe0, 0xb4, 0x62, 0x60, 0xa1, 0x80,
-
  0xb1, 0x7c, 0x02, 0xaa, 0x34, 0x23, 0xc0, 0xf5, 0xad, 0x72, 0x30, 0xb5,
-
  0x15, 0x1b, 0x45, 0x81, 0x66, 0xc5, 0x72, 0x22, 0x23, 0x67, 0xce, 0x63,
-
  0x09, 0x1b, 0x48, 0x6b, 0xb0, 0x34, 0x5d, 0x36, 0xc7, 0xa6, 0x5e, 0xd7,
-
  0x8b, 0x80, 0x69, 0x88, 0x93, 0x4d, 0xd3, 0x51, 0x96, 0xf8, 0x2a, 0x72,
-
  0xae, 0xa8, 0xa4, 0x04, 0x17, 0xa5, 0x18, 0xe0, 0x94, 0x4d, 0x54, 0xb8,
-
  0x76, 0x50, 0x2c, 0x0e, 0xfb, 0x9a, 0x93, 0x66, 0xe1, 0xe0, 0x62, 0x31,
-
  0x62, 0xca, 0x61, 0x17, 0xd4, 0xee, 0x62, 0x96, 0x45, 0x00, 0xd0, 0x1e,
-
  0xb0, 0x8d, 0x6d, 0x58, 0xa8, 0x35, 0x88, 0xba, 0x4b, 0x65, 0xc4, 0xa9,
-
  0xf2, 0xad, 0xe2, 0x87, 0xe3, 0x06, 0x52, 0xa8, 0x27, 0xc5, 0xc7, 0xd3,
-
  0xe6, 0xda, 0xee, 0x8a, 0x53, 0xe3, 0xc5, 0xb3, 0xe4, 0xf1, 0xa3, 0x47,
-
  0x8f, 0xd8, 0xc7, 0xd9, 0x39, 0xa6, 0x9e, 0xde, 0x1e, 0x3d, 0x3b, 0x79,
-
  0xfd, 0xfa, 0xe8, 0xcd, 0xf3, 0xa3, 0xe7, 0x86, 0xf8, 0xa0, 0x43, 0xb5,
-
  0xcd, 0x27, 0x54, 0xb8, 0x74, 0xa8, 0x46, 0xe7, 0xdd, 0x47, 0x3b, 0xbd,
-
  0xbd, 0x47, 0x3b, 0x09, 0xd0, 0x53, 0xca, 0xc9, 0xc7, 0x38, 0xa9, 0x74,
-
  0x82, 0x38, 0x0d, 0xc9, 0xe5, 0x62, 0x9a, 0x12, 0xc2, 0x37, 0x1a, 0x3d,
-
  0x2a, 0x43, 0xe8, 0x9c, 0x65, 0x35, 0x95, 0x7d, 0x4f, 0x28, 0x4f, 0xaf,
-
  0xa3, 0xf9, 0x0b, 0x5c, 0x5d, 0x2e, 0x04, 0x17, 0x88, 0x42, 0x42, 0xf4,
-
  0xb6, 0xb7, 0x83, 0x5d, 0x80, 0x10, 0x93, 0x23, 0x7e, 0xca, 0x87, 0x84,
-
  0x75, 0xb1, 0x12, 0x8b, 0xe2, 0x84, 0x37, 0xa2, 0xea, 0x82, 0xb4, 0x3d,
-
  0xfb, 0x08, 0x68, 0x36, 0xad, 0x2c, 0xe0, 0x63, 0xf5, 0x61, 0xf8, 0x7c,
-
  0x90, 0xb6, 0xab, 0xfb, 0x7c, 0xb4, 0xb3, 0xb3, 0x1e, 0xa7, 0x9f, 0xa6,
-
  0x1f, 0xe8, 0x3d, 0xc5, 0xb8, 0x6d, 0x47, 0x94, 0xc3, 0x9e, 0xb8, 0xbe,
-
  0x05, 0x79, 0x08, 0x40, 0x21, 0x7e, 0x9a, 0xcf, 0x1b, 0x10, 0x9e, 0xa8,
-
  0xba, 0x58, 0xe8, 0xcd, 0xf1, 0x29, 0xd2, 0xea, 0xcb, 0xc3, 0x53, 0x7c,
-
  0x2b, 0x39, 0x7d, 0x7b, 0xf2, 0x97, 0xbf, 0x86, 0x9c, 0xfa, 0xab, 0x5d,
-
  0x4b, 0xa0, 0x60, 0x3e, 0xac, 0xa5, 0x15, 0x40, 0x7a, 0x9d, 0x49, 0xa2,
-
  0xb8, 0x58, 0x2f, 0x1a, 0x56, 0x0b, 0xf4, 0xbe, 0x53, 0xa9, 0xba, 0x50,
-
  0xeb, 0x33, 0x3e, 0x22, 0x88, 0x37, 0x2c, 0x39, 0x51, 0x06, 0x70, 0x36,
-
  0x92, 0x4c, 0x5c, 0x90, 0x43, 0xf3, 0x2c, 0x54, 0xe2, 0x21, 0x1b, 0x3d,
-
  0xd0, 0xc2, 0x43, 0xba, 0x23, 0x2e, 0xb8, 0xea, 0xe2, 0x4c, 0x21, 0xa8,
-
  0x31, 0xff, 0xee, 0x6f, 0x3b, 0xfd, 0xfe, 0xde, 0xa3, 0x47, 0xbf, 0xa0,
-
  0x2d, 0x55, 0x61, 0xb2, 0xa4, 0xaa, 0x85, 0xa1, 0x66, 0x2a, 0x3c, 0x61,
-
  0x89, 0x10, 0xdd, 0x18, 0x2c, 0xc6, 0x22, 0x8b, 0xab, 0xf6, 0x38, 0xb8,
-
  0xb1, 0xae, 0x08, 0xa4, 0x71, 0x44, 0xbc, 0x42, 0xb2, 0x5c, 0x42, 0x6e,
-
  0x0c, 0xc9, 0x57, 0x98, 0x72, 0x22, 0x41, 0x8b, 0xff, 0xc8, 0xca, 0x42,
-
  0x8b, 0x50, 0x10, 0xd4, 0x3c, 0x26, 0x1c, 0xd4, 0x5a, 0xc2, 0x0e, 0x94,
-
  0xa5, 0x19, 0x1b, 0xa9, 0xad, 0x46, 0xa5, 0x8e, 0x08, 0xee, 0x20, 0x29,
-
  0x2a, 0xc5, 0xc5, 0x80, 0x30, 0x20, 0x21, 0xa4, 0x38, 0x23, 0x43, 0x5f,
-
  0x54, 0x01, 0x86, 0xb6, 0x18, 0xd6, 0x18, 0xfa, 0x27, 0xad, 0xf4, 0x5b,
-
  0xf8, 0x9b, 0x2e, 0xe9, 0xf2, 0x9a, 0xca, 0x8a, 0xd2, 0x30, 0x1e, 0x22,
-
  0x63, 0xfd, 0x90, 0x1a, 0xe4, 0xe3, 0x28, 0xbf, 0x30, 0x23, 0xd9, 0x26,
-
  0x88, 0xfb, 0x18, 0xa7, 0x55, 0x8a, 0x99, 0x9b, 0x1c, 0xf0, 0x04, 0x4d,
-
  0x43, 0x7c, 0x04, 0x57, 0x88, 0x33, 0xca, 0x6c, 0x5d, 0x38, 0xc0, 0x00,
-
  0x57, 0xa4, 0xeb, 0x85, 0x5f, 0x4a, 0x10, 0x21, 0x20, 0x4b, 0xe2, 0x01,
-
  0x58, 0x8e, 0x02, 0x56, 0x54, 0x52, 0xcc, 0xa8, 0x89, 0x84, 0xa1, 0xaf,
-
  0x86, 0x12, 0x70, 0xc2, 0xd5, 0xa6, 0xc4, 0x9b, 0x5e, 0x22, 0x47, 0x33,
-
  0x84, 0x04, 0x6c, 0x84, 0x94, 0x42, 0xd9, 0x6c, 0x0a, 0x21, 0x2a, 0xa8,
-
  0x5a, 0x0f, 0x17, 0x5b, 0xe7, 0x0d, 0x50, 0x2e, 0x5b, 0x17, 0x6e, 0x9d,
-
  0x42, 0xca, 0x0a, 0xcc, 0x97, 0xee, 0xfe, 0x01, 0x2a, 0xb4, 0xb4, 0x4c,
-
  0xba, 0xd7, 0xb0, 0x5a, 0xbb, 0x7b, 0x86, 0xba, 0x70, 0xa2, 0xd2, 0x73,
-
  0x97, 0xf6, 0x43, 0x2b, 0x2e, 0x49, 0x32, 0x09, 0x0f, 0x47, 0x73, 0x14,
-
  0xd8, 0x43, 0x63, 0xe7, 0x88, 0x63, 0x33, 0x32, 0x8b, 0x16, 0x0c, 0xc9,
-
  0x25, 0xc7, 0xb5, 0x4e, 0xb1, 0xf2, 0x67, 0xd4, 0xce, 0x59, 0x3e, 0x56,
-
  0x5d, 0x23, 0xaf, 0xcd, 0x8b, 0xec, 0xca, 0xd6, 0x87, 0x52, 0xf3, 0x22,
-
  0x71, 0x71, 0x86, 0xfe, 0x78, 0x92, 0x5e, 0x44, 0x7c, 0x2d, 0x3e, 0xf9,
-
  0x8d, 0x08, 0xb6, 0xfb, 0x0c, 0x60, 0x5b, 0xea, 0xeb, 0xff, 0x3c, 0x3e,
-
  0x5d, 0x06, 0xd2, 0xdf, 0x5b, 0x2e, 0x33, 0xfe, 0xe1, 0x66, 0x89, 0x53,
-
  0xe9, 0x2a, 0x34, 0x98, 0x14, 0xa5, 0x0b, 0xdc, 0xc9, 0x97, 0x34, 0x04,
-
  0xd7, 0xb3, 0xa4, 0x28, 0xf3, 0xcc, 0x6c, 0xb5, 0xe6, 0x33, 0x63, 0xd5,
-
  0x05, 0x73, 0xd9, 0x0a, 0xaa, 0x7a, 0x96, 0x52, 0x82, 0x05, 0x5d, 0x56,
-
  0x82, 0x20, 0x8e, 0xb5, 0x2f, 0xd1, 0x33, 0x6c, 0x68, 0xce, 0x1f, 0xf2,
-
  0x06, 0x12, 0x63, 0xe4, 0x83, 0xa5, 0xca, 0x02, 0x2d, 0xfe, 0xd2, 0x55,
-
  0x85, 0xbd, 0xe6, 0x25, 0x9c, 0xbc, 0x32, 0x9f, 0xdc, 0xd8, 0x95, 0x4d,
-
  0x86, 0x67, 0xcd, 0xf6, 0xa2, 0x40, 0x1c, 0x57, 0x4d, 0xbd, 0x08, 0xd0,
-
  0xd5, 0xa0, 0x9f, 0xe7, 0x43, 0x4d, 0x60, 0x65, 0x58, 0xd2, 0x4a, 0xd5,
-
  0x53, 0x29, 0x13, 0xd3, 0x88, 0x7a, 0x6b, 0x5f, 0xe4, 0xfb, 0xad, 0x17,
-
  0xd8, 0xec, 0x63, 0x3d, 0xd2, 0x09, 0x15, 0x93, 0xd6, 0xc2, 0x0f, 0xde,
-
  0xb9, 0x8d, 0x96, 0x8e, 0xbb, 0xa2, 0x74, 0x36, 0x8a, 0x35, 0x25, 0x2f,
-
  0x8e, 0x5f, 0x1d, 0x6d, 0xc1, 0x6d, 0x94, 0xa1, 0xe2, 0x53, 0x87, 0x7c,
-
  0x4d, 0xad, 0xac, 0x88, 0x0f, 0x5a, 0xa9, 0x5b, 0x09, 0xc7, 0xf6, 0xf1,
-
  0xa2, 0x62, 0xf1, 0x25, 0x5d, 0xd4, 0xa0, 0x0b, 0x98, 0x86, 0x78, 0x67,
-
  0x50, 0x75, 0xd3, 0xbc, 0x22, 0x0d, 0xfc, 0x52, 0xda, 0xa4, 0x2c, 0x70,
-
  0x4d, 0x17, 0x66, 0xc8, 0xae, 0xbe, 0xab, 0x6f, 0x54, 0x58, 0x04, 0x26,
-
  0x32, 0x5c, 0x1c, 0x29, 0xa3, 0x1a, 0x72, 0x04, 0x58, 0x5e, 0x01, 0xbf,
-
  0xb8, 0xa9, 0x14, 0xc4, 0x4f, 0x15, 0x5d, 0xc3, 0xc4, 0xe0, 0x63, 0x3b,
-
  0x2d, 0x46, 0xae, 0xe4, 0x1e, 0x89, 0x07, 0x4b, 0x25, 0x23, 0x35, 0xbb,
-
  0xe3, 0x3e, 0x34, 0xe6, 0x4b, 0x87, 0x0a, 0xda, 0xba, 0xbd, 0xc7, 0xeb,
-
  0x09, 0x33, 0xb0, 0x6c, 0xb8, 0x65, 0xb0, 0xec, 0x83, 0xa2, 0x32, 0x28,
-
  0xf2, 0x12, 0x18, 0x64, 0x2f, 0xad, 0x86, 0x79, 0xae, 0x1b, 0xfb, 0x52,
-
  0x37, 0x16, 0xe3, 0x9d, 0xf9, 0xdf, 0xed, 0xef, 0x9a, 0xa8, 0xe4, 0x0c,
-
  0x8d, 0x83, 0x89, 0x0b, 0x5b, 0x30, 0x28, 0x9c, 0x89, 0xbc, 0x41, 0x27,
-
  0x16, 0x04, 0x82, 0x11, 0xc1, 0x3a, 0xe4, 0x33, 0xce, 0xba, 0xe3, 0x5b,
-
  0x9f, 0xf0, 0xc1, 0x7e, 0xb2, 0x48, 0x0e, 0xda, 0x11, 0x51, 0x04, 0xd4,
-
  0xfc, 0xa2, 0x67, 0xd0, 0xb8, 0xb2, 0x94, 0xf2, 0x10, 0x63, 0x85, 0x42,
-
  0x89, 0xe8, 0x63, 0x3e, 0x73, 0xb6, 0xf2, 0x72, 0x10, 0xb4, 0x47, 0x23,
-
  0x34, 0x3c, 0x9f, 0xd7, 0xc7, 0xaf, 0x8f, 0x04, 0x17, 0x00, 0x21, 0xab,
-
  0x30, 0x93, 0x8a, 0x8b, 0x7b, 0x28, 0x9c, 0x17, 0xe5, 0x20, 0x28, 0xc2,
-
  0xa0, 0x39, 0xe9, 0x84, 0x79, 0x64, 0x62, 0x33, 0x71, 0x8e, 0x70, 0x2a,
-
  0x09, 0x40, 0x27, 0x9e, 0x9a, 0xf6, 0x08, 0x72, 0xbc, 0xa9, 0x70, 0x4f,
-
  0xaa, 0x68, 0xcc, 0x2b, 0x42, 0x99, 0x13, 0x75, 0x62, 0xfc, 0x93, 0x06,
-
  0xa1, 0x00, 0x83, 0x13, 0x60, 0x7f, 0xa0, 0xb5, 0x1c, 0xd7, 0x89, 0xb3,
-
  0x05, 0xa6, 0xec, 0x39, 0x82, 0x5b, 0x58, 0x1c, 0x09, 0xd1, 0x04, 0x6c,
-
  0xc2, 0xe8, 0xc5, 0xa7, 0x14, 0x08, 0x73, 0xa3, 0xa3, 0x54, 0x23, 0xb7,
-
  0x31, 0x9e, 0x88, 0xcc, 0xed, 0x10, 0x5e, 0x5e, 0xae, 0x66, 0x05, 0x5e,
-
  0x83, 0x37, 0xc5, 0x22, 0xaa, 0xe5, 0x8e, 0x59, 0xe2, 0xa8, 0x89, 0xf9,
-
  0x44, 0x71, 0x7e, 0x9a, 0x78, 0x96, 0xf9, 0xda, 0x38, 0xe0, 0x3b, 0xad,
-
  0x34, 0xe8, 0xb4, 0x25, 0x62, 0xac, 0x98, 0x69, 0x28, 0xce, 0xb5, 0x85,
-
  0xbb, 0x76, 0x05, 0x7a, 0xe3, 0x03, 0x3f, 0x83, 0xe6, 0x6d, 0xbc, 0x0a,
-
  0x43, 0x12, 0xaf, 0x4b, 0xf1, 0x72, 0x00, 0x3b, 0xd8, 0xad, 0x6f, 0x37,
-
  0x76, 0xbf, 0xa0, 0x7d, 0x04, 0x36, 0x87, 0x42, 0x40, 0x18, 0xe9, 0x1a,
-
  0xa4, 0x88, 0xe1, 0xfb, 0x5c, 0x9d, 0x42, 0x55, 0xbd, 0x18, 0xd3, 0x08,
-
  0x53, 0x73, 0x37, 0xca, 0x88, 0x34, 0x2a, 0x12, 0x17, 0x5e, 0x4a, 0x4e,
-
  0x5a, 0x70, 0x2e, 0xc9, 0x04, 0x2a, 0x47, 0xc4, 0x53, 0x9b, 0xdc, 0xb8,
-
  0x51, 0x57, 0x66, 0x6b, 0x41, 0x08, 0x19, 0xdc, 0x68, 0x84, 0x39, 0xcb,
-
  0x48, 0xd6, 0x21, 0x27, 0xf3, 0xb5, 0x82, 0xa4, 0x07, 0x44, 0xcf, 0x51,
-
  0x41, 0x5e, 0xa9, 0xb7, 0xd9, 0xb4, 0xa0, 0xca, 0x00, 0x6e, 0xd5, 0x64,
-
  0x29, 0x30, 0xa8, 0x43, 0xb4, 0xf4, 0x54, 0x07, 0xc1, 0xf1, 0xbe, 0x71,
-
  0x3d, 0x5e, 0x49, 0xd2, 0x15, 0x80, 0x57, 0x0e, 0xd1, 0x40, 0x8c, 0x63,
-
  0x43, 0x84, 0x21, 0xe9, 0xaf, 0x4b, 0xd8, 0xe4, 0xb3, 0x03, 0x38, 0xe1,
-
  0x49, 0xe7, 0x65, 0x51, 0xd5, 0x07, 0x1d, 0x86, 0xb2, 0x0f, 0xdb, 0x9f,
-
  0x49, 0xc2, 0x8f, 0x6e, 0xbd, 0x0e, 0x84, 0xed, 0x83, 0xc0, 0x8b, 0x24,
-
  0x64, 0x81, 0x23, 0xea, 0x6a, 0xbb, 0x01, 0x03, 0x9a, 0x85, 0x96, 0x1a,
-
  0x6e, 0xe6, 0xff, 0x1a, 0x30, 0x82, 0x60, 0xe7, 0x60, 0x61, 0x71, 0x18,
-
  0xc6, 0x5f, 0x7a, 0xcf, 0xa8, 0xa7, 0xde, 0x4b, 0x6a, 0xe7, 0xeb, 0x8e,
-
  0x54, 0xbb, 0xd1, 0x9c, 0xb8, 0xe6, 0x03, 0x07, 0x16, 0x30, 0x4a, 0x5b,
-
  0xc8, 0x66, 0x61, 0x2a, 0xc7, 0x41, 0xe4, 0xc9, 0x31, 0xd4, 0x32, 0x26,
-
  0x82, 0xa4, 0x1f, 0x8d, 0xb6, 0x55, 0xd0, 0xd5, 0x5a, 0x04, 0x96, 0x9b,
-
  0x61, 0xa2, 0x06, 0xca, 0xdf, 0xd0, 0x65, 0xaf, 0x18, 0xf7, 0x28, 0x83,
-
  0x18, 0x24, 0x85, 0xf7, 0x28, 0x5c, 0x53, 0x64, 0x8a, 0x50, 0x02, 0x41,
-
  0xdb, 0xd1, 0x99, 0x1c, 0x8d, 0xc4, 0x2c, 0x53, 0x29, 0x02, 0x52, 0x54,
-
  0xbf, 0x54, 0x57, 0x44, 0x76, 0xe5, 0xc0, 0xaa, 0x74, 0xe1, 0x8b, 0xb3,
-
  0xec, 0x9a, 0x33, 0x40, 0x91, 0x31, 0x69, 0xe6, 0xbd, 0xc1, 0x4d, 0x86,
-
  0x42, 0x95, 0x5a, 0x9c, 0x7b, 0xca, 0xae, 0x76, 0x8e, 0x58, 0x58, 0xcc,
-
  0xd9, 0x98, 0x03, 0xc3, 0x12, 0x93, 0x32, 0x79, 0xbe, 0xa8, 0x35, 0x4d,
-
  0xc8, 0x02, 0xe6, 0x0e, 0xdc, 0x76, 0xaa, 0x34, 0x4f, 0x82, 0x34, 0x4e,
-
  0xe3, 0x82, 0x82, 0x3a, 0x03, 0xe5, 0x10, 0x8b, 0x00, 0xa6, 0xce, 0x29,
-
  0xe6, 0x25, 0xab, 0x13, 0x09, 0x01, 0x4b, 0x5f, 0x2c, 0x30, 0xba, 0x97,
-
  0x44, 0x7b, 0x05, 0x52, 0x12, 0x8e, 0x4e, 0x25, 0x7b, 0xeb, 0x8c, 0xe1,
-
  0x00, 0xe8, 0x02, 0x31, 0x17, 0xfa, 0x52, 0x0e, 0xeb, 0x79, 0x33, 0x18,
-
  0x94, 0x2a, 0xdc, 0x52, 0xa8, 0x91, 0x46, 0xad, 0x03, 0xdb, 0xff, 0x2e,
-
  0xa0, 0x75, 0x54, 0xf5, 0x0d, 0x42, 0x2b, 0x04, 0xb0, 0xa2, 0x99, 0x29,
-
  0x5a, 0x21, 0xf9, 0x3f, 0x44, 0xa2, 0xd3, 0x46, 0x89, 0x46, 0x4a, 0xa0,
-
  0x45, 0x52, 0xff, 0x82, 0x33, 0x1a, 0xbe, 0xeb, 0xf9, 0x30, 0x40, 0x75,
-
  0xd9, 0xa5, 0x23, 0xbf, 0x43, 0x9c, 0x06, 0x60, 0x58, 0x5e, 0x16, 0xf4,
-
  0x39, 0xc1, 0xc0, 0x20, 0x17, 0x2f, 0x04, 0x17, 0x3e, 0x62, 0x8f, 0x81,
-
  0xc8, 0xdd, 0x83, 0x89, 0x4f, 0x13, 0xd0, 0x80, 0x26, 0x79, 0x4d, 0xaa,
-
  0x1d, 0x55, 0xc2, 0x16, 0x83, 0x3e, 0xea, 0xb7, 0x02, 0x37, 0x21, 0xb0,
-
  0x89, 0x74, 0x56, 0xc8, 0x5e, 0xa4, 0x39, 0x64, 0x74, 0x53, 0x70, 0x16,
-
  0xaf, 0xf0, 0x8d, 0x03, 0x0d, 0x13, 0x27, 0x55, 0xb6, 0xf3, 0x02, 0x86,
-
  0x73, 0xd0, 0x81, 0x2b, 0xa4, 0x73, 0x5e, 0xc0, 0xbf, 0x72, 0x08, 0x9e,
-
  0xc3, 0x49, 0x3a, 0xe0, 0x6a, 0x8a, 0x9d, 0x33, 0x86, 0xc2, 0xc2, 0x3f,
-
  0xa7, 0x05, 0x8a, 0xde, 0xf5, 0x25, 0x43, 0x55, 0x30, 0xa4, 0x92, 0x58,
-
  0x5d, 0xf9, 0xd6, 0x54, 0x4a, 0x8f, 0xcb, 0x1d, 0xf8, 0x5b, 0x83, 0x91,
-
  0x6c, 0xb5, 0x3e, 0x67, 0xb8, 0xc2, 0x99, 0x15, 0xc4, 0x5c, 0xa0, 0x22,
-
  0xfe, 0x34, 0x0b, 0xd9, 0xe2, 0x1a, 0xb6, 0xa8, 0x98, 0x80, 0x1f, 0x6e,
-
  0xa2, 0xc0, 0x59, 0x1c, 0x1c, 0x55, 0x13, 0xe9, 0x2c, 0xa5, 0x72, 0x1f,
-
  0x24, 0x8c, 0x95, 0x95, 0x8d, 0x3a, 0x81, 0xc7, 0x90, 0xf7, 0x87, 0x98,
-
  0x62, 0xa3, 0x69, 0x75, 0xb5, 0x68, 0x16, 0xb7, 0xfe, 0x8d, 0x39, 0xf2,
-
  0x5d, 0x75, 0x0d, 0x71, 0x4e, 0x85, 0x32, 0x30, 0xf6, 0x7d, 0x38, 0xa4,
-
  0x23, 0xe9, 0xce, 0xb2, 0xd6, 0x97, 0x6a, 0x97, 0xeb, 0x1c, 0x91, 0xa7,
-
  0x4b, 0xa4, 0xbd, 0xc3, 0x6a, 0xc5, 0x90, 0xb0, 0x8c, 0x28, 0x96, 0x5c,
-
  0x50, 0x7e, 0x58, 0x95, 0xe2, 0x20, 0x48, 0x7d, 0x05, 0x89, 0x3e, 0x28,
-
  0x33, 0x0e, 0x3a, 0xd2, 0x5a, 0xcc, 0x06, 0xac, 0xd0, 0x4d, 0x18, 0x77,
-
  0x48, 0x26, 0x5c, 0x63, 0x55, 0xb1, 0x58, 0xbc, 0xc7, 0xb4, 0x6a, 0xa7,
-
  0x3f, 0xe1, 0xe9, 0x99, 0x10, 0xed, 0x16, 0x91, 0xa8, 0xcb, 0xc5, 0x36,
-
  0x2b, 0x29, 0x81, 0x2e, 0x75, 0x1b, 0xc8, 0xb8, 0xab, 0x6c, 0x24, 0xe5,
-
  0xe3, 0x51, 0xc0, 0x8d, 0x90, 0xd3, 0xb5, 0x52, 0xa0, 0x60, 0x85, 0x20,
-
  0xff, 0x15, 0x16, 0x1c, 0x24, 0x4d, 0xde, 0x84, 0xf3, 0x40, 0x3c, 0xac,
-
  0xac, 0x85, 0x11, 0x0d, 0x53, 0xae, 0xc9, 0x2e, 0xa0, 0xcc, 0xf2, 0x9d,
-
  0x03, 0x6c, 0x08, 0x93, 0xed, 0x07, 0xd1, 0x51, 0xd5, 0xf7, 0x4f, 0xcd,
-
  0xd7, 0x6e, 0xb8, 0x85, 0xe8, 0xb2, 0x78, 0x81, 0xd6, 0xdc, 0xde, 0x1b,
-
  0xe0, 0x17, 0x07, 0xc9, 0x7f, 0x15, 0xd9, 0xdd, 0x6e, 0x1e, 0x78, 0xeb,
-
  0x1d, 0xa8, 0x1a, 0xbd, 0xc3, 0x0b, 0x62, 0xc5, 0x37, 0x59, 0xd5, 0x9b,
-
  0xd3, 0xf9, 0xde, 0xde, 0xdb, 0xd9, 0xd9, 0x59, 0xeb, 0x7d, 0xbe, 0x29,
-
  0xd7, 0x78, 0xf2, 0x3b, 0x95, 0xaf, 0x6e, 0x2f, 0xd0, 0xd2, 0x48, 0x39,
-
  0xec, 0xa5, 0x17, 0x99, 0xe5, 0x93, 0x71, 0x66, 0xac, 0xa5, 0x94, 0x5d,
-
  0xb2, 0x24, 0x3e, 0x99, 0x27, 0x4f, 0x05, 0x01, 0xef, 0x5b, 0x85, 0x27,
-
  0xc7, 0x6b, 0x03, 0xbf, 0x31, 0xad, 0x83, 0xff, 0x74, 0x3e, 0x6f, 0xc3,
-
  0xcc, 0x13, 0x9c, 0x75, 0xa9, 0xab, 0xc2, 0x14, 0xad, 0x26, 0x89, 0x26,
-
  0x22, 0x07, 0x97, 0xee, 0x71, 0x89, 0x45, 0xde, 0x9c, 0xa1, 0x10, 0xe8,
-
  0xa6, 0x27, 0x89, 0x18, 0x8b, 0xec, 0x11, 0xb1, 0x58, 0x41, 0xfd, 0x06,
-
  0x2e, 0x19, 0x6b, 0x71, 0xc4, 0xa6, 0xb5, 0xb9, 0xca, 0x9b, 0xd3, 0xad,
-
  0x0f, 0xba, 0x1d, 0xb2, 0x9c, 0xe8, 0x97, 0xa0, 0x2c, 0x13, 0x54, 0xf7,
-
  0x2f, 0x0a, 0xf1, 0xdc, 0xc6, 0x34, 0x12, 0x98, 0x58, 0x80, 0xbf, 0x4f,
-
  0xc3, 0x0b, 0x2d, 0xc3, 0x05, 0xba, 0xbe, 0x16, 0xd7, 0x71, 0x5b, 0x43,
-
  0x55, 0x88, 0x87, 0x89, 0x53, 0x9a, 0xac, 0xd1, 0x50, 0xe7, 0x37, 0xf4,
-
  0x93, 0x74, 0xa0, 0x3d, 0x16, 0x56, 0xb8, 0x58, 0x1c, 0xfc, 0x29, 0x2b,
-
  0x6a, 0x75, 0xdc, 0xa4, 0x7d, 0xb7, 0xb4, 0x1d, 0x7d, 0xbf, 0xc3, 0x0b,
-
  0x6b, 0x9e, 0x15, 0x4d, 0xba, 0x73, 0x4b, 0x4b, 0x7c, 0xc6, 0x15, 0x85,
-
  0xc3, 0xdd, 0xd5, 0xe3, 0x48, 0x8d, 0xe4, 0x99, 0x6f, 0x9a, 0x41, 0x32,
-
  0x83, 0xdd, 0x49, 0x37, 0x3f, 0x42, 0x47, 0xa4, 0x85, 0xd6, 0xe2, 0x62,
-
  0xab, 0x0b, 0x72, 0x74, 0x9d, 0xcb, 0x47, 0xf6, 0x25, 0x17, 0x71, 0x0f,
-
  0x16, 0x53, 0x31, 0x02, 0xe2, 0x1a, 0x50, 0x23, 0x82, 0xe1, 0xb2, 0xbb,
-
  0x2f, 0x94, 0x3b, 0x23, 0x0f, 0x22, 0x01, 0xed, 0xea, 0xf2, 0x4e, 0xf0,
+
  0xe4, 0xec, 0x43, 0x72, 0x07, 0x00, 0x6f, 0x92, 0x2c, 0x33, 0xb2, 0xc7,
+
  0x34, 0x45, 0x59, 0xdc, 0x91, 0x44, 0x46, 0xa4, 0xe2, 0x64, 0xc7, 0x7e,
+
  0xf4, 0x34, 0x80, 0x06, 0xd9, 0x16, 0x80, 0x46, 0xba, 0x1b, 0xa4, 0x98,
+
  0x9c, 0xbc, 0x9f, 0xfd, 0xad, 0xfb, 0xaa, 0xd5, 0x68, 0x90, 0x90, 0x2c,
+
  0x65, 0x66, 0xce, 0x4c, 0x2e, 0x14, 0x09, 0x74, 0xaf, 0x6b, 0xad, 0x5a,
+
  0x75, 0xfd, 0x55, 0x92, 0xe8, 0x7f, 0xde, 0xd1, 0xff, 0xdf, 0xc1, 0x7f,
+
  0xe0, 0xdf, 0xaf, 0xe4, 0xb3, 0x77, 0xef, 0xfe, 0x57, 0xc2, 0xff, 0x85,
+
  0xef, 0x7e, 0x86, 0x7f, 0xf9, 0x8b, 0xed, 0x24, 0x7c, 0xf1, 0xbf, 0xde,
+
  0x6d, 0x25, 0xfa, 0xc5, 0xff, 0x4a, 0x36, 0xe9, 0x8b, 0x77, 0xf2, 0xc6,
+
  0x53, 0xfc, 0xfd, 0x9d, 0xb4, 0xf6, 0x33, 0xb6, 0x86, 0x3f, 0xb6, 0xf1,
+
  0xfb, 0x9f, 0xdf, 0xe1, 0xaf, 0xf0, 0xc9, 0x57, 0xaf, 0x0f, 0x5f, 0x1d,
+
  0x7f, 0x45, 0x8f, 0x0c, 0x17, 0xe5, 0x24, 0xe9, 0x25, 0x75, 0x99, 0xce,
+
  0xaa, 0x71, 0x56, 0x26, 0x69, 0xf2, 0xf6, 0xcd, 0xcb, 0xaf, 0xbe, 0x3a,
+
  0xff, 0xeb, 0xeb, 0xd3, 0xb3, 0xf3, 0x93, 0x73, 0xf7, 0xd0, 0xdf, 0x8a,
+
  0x79, 0x9d, 0x17, 0xb3, 0x0a, 0x46, 0x02, 0x8f, 0x54, 0xbf, 0x7c, 0xf5,
+
  0xd5, 0xb3, 0xe3, 0xf3, 0xa3, 0x37, 0x27, 0x67, 0x17, 0x27, 0xa7, 0xaf,
+
  0xdd, 0x73, 0x79, 0x05, 0x8d, 0xd4, 0x45, 0x31, 0x49, 0x92, 0x71, 0x51,
+
  0x5a, 0xcb, 0x65, 0x3e, 0xbb, 0x4c, 0x46, 0x69, 0x9d, 0xc2, 0xc7, 0x65,
+
  0x31, 0x4d, 0xf0, 0xab, 0x02, 0x9e, 0x4c, 0xaa, 0xac, 0xbc, 0x86, 0x8e,
+
  0x17, 0x15, 0x3e, 0x80, 0x2d, 0xf7, 0x93, 0xe4, 0xa4, 0xa6, 0xf6, 0xaa,
+
  0xc5, 0x7c, 0x5e, 0x94, 0x75, 0x95, 0xd4, 0x57, 0x59, 0x95, 0x25, 0xf3,
+
  0xb2, 0xa8, 0x8b, 0x61, 0x31, 0xa9, 0x0e, 0x92, 0xe4, 0xd9, 0xc9, 0xd1,
+
  0x45, 0x37, 0x79, 0x7e, 0xf2, 0xf2, 0xb8, 0x9b, 0x24, 0xcf, 0x2f, 0xce,
+
  0xba, 0xf8, 0xe3, 0x1c, 0x7e, 0xff, 0xf1, 0xf4, 0xec, 0xc5, 0xf1, 0x9b,
+
  0xae, 0xfc, 0x8b, 0x9f, 0xbc, 0xb8, 0x80, 0xaf, 0xa9, 0x3d, 0xfc, 0x0d,
+
  0x3e, 0x39, 0x79, 0x75, 0x08, 0xcf, 0xd3, 0x3f, 0xf0, 0xd7, 0xcb, 0x67,
+
  0xf4, 0x17, 0xfe, 0x03, 0x7f, 0xbd, 0xfa, 0xd3, 0x05, 0xb4, 0x9b, 0x9c,
+
  0x9d, 0x9e, 0xed, 0x77, 0xe9, 0x27, 0xb6, 0xf0, 0xe6, 0xe2, 0x15, 0x3c,
+
  0x82, 0x3f, 0xf9, 0xaf, 0x73, 0x69, 0xef, 0xfc, 0x08, 0x3e, 0x3e, 0xa7,
+
  0xde, 0xcf, 0x5f, 0xfd, 0x40, 0x3f, 0xce, 0xf1, 0x27, 0x7f, 0x40, 0x7d,
+
  0x5d, 0x1c, 0xbf, 0x7c, 0x7d, 0x0c, 0x2d, 0x5e, 0xd0, 0x53, 0x3f, 0x9d,
+
  0x27, 0xe9, 0x6c, 0x04, 0xff, 0x9c, 0xf7, 0xdd, 0x8a, 0xe1, 0x92, 0x25,
+
  0xf3, 0xe2, 0x26, 0x2b, 0xb3, 0x51, 0x92, 0x0c, 0x6e, 0x93, 0x64, 0x92,
+
  0x0f, 0xf8, 0x1b, 0x5c, 0xc1, 0x24, 0x9d, 0xc0, 0x6f, 0xba, 0x8e, 0xbd,
+
  0x32, 0x9b, 0xa4, 0x35, 0x3e, 0x38, 0xce, 0xd2, 0x7a, 0x51, 0x66, 0xb8,
+
  0x5e, 0xc9, 0x79, 0x96, 0x51, 0x7b, 0xf2, 0xe2, 0xe6, 0xfe, 0x16, 0xbd,
+
  0x3a, 0xca, 0xea, 0x34, 0x9f, 0x54, 0xd0, 0x19, 0xed, 0x2a, 0x3e, 0x71,
+
  0x71, 0x95, 0xe1, 0x2a, 0x27, 0xd5, 0xed, 0xac, 0x4e, 0x3f, 0x70, 0xd7,
+
  0xb2, 0xae, 0xbd, 0x51, 0x36, 0xcf, 0x66, 0xa3, 0x6c, 0x56, 0xf7, 0x93,
+
  0xbf, 0x16, 0x8b, 0x64, 0x9c, 0xc3, 0x58, 0x61, 0x8b, 0xb8, 0x15, 0xe8,
+
  0x72, 0x94, 0x55, 0xc3, 0x32, 0x27, 0x32, 0x80, 0x41, 0xcf, 0xa8, 0xbd,
+
  0x37, 0xcf, 0x8f, 0x92, 0xfd, 0x6f, 0x9e, 0x3c, 0x96, 0x09, 0x9d, 0x8c,
+
  0x93, 0x5b, 0x78, 0x15, 0x9a, 0xbc, 0xce, 0x47, 0x59, 0xc2, 0xf4, 0x94,
+
  0xdc, 0xe4, 0xf5, 0x55, 0xb1, 0xa8, 0xf1, 0xcf, 0x49, 0x96, 0x8e, 0x70,
+
  0xa7, 0xad, 0xd7, 0x83, 0xed, 0xed, 0xa4, 0x1a, 0x5e, 0x65, 0xd3, 0xac,
+
  0x2b, 0xcb, 0x71, 0xb9, 0xc8, 0xaa, 0x2a, 0xab, 0xa8, 0xbd, 0x9b, 0xab,
+
  0xb4, 0xb6, 0x47, 0xa9, 0xe9, 0x9b, 0x14, 0xc7, 0x77, 0x52, 0x23, 0x51,
+
  0xc0, 0x30, 0x46, 0xd9, 0x38, 0x5d, 0x4c, 0x90, 0x46, 0x0a, 0xda, 0xdf,
+
  0x64, 0x00, 0xfd, 0xa4, 0x55, 0xb5, 0x98, 0x66, 0x55, 0x52, 0xc0, 0x33,
+
  0x25, 0xcc, 0x70, 0x90, 0x56, 0xd9, 0x88, 0xda, 0x83, 0x91, 0x17, 0xe3,
+
  0x3a, 0x9b, 0xf5, 0x16, 0xf0, 0x49, 0x72, 0x55, 0x54, 0xf5, 0x2c, 0x9d,
+
  0x22, 0x69, 0x65, 0xe3, 0xfc, 0x03, 0xae, 0xe5, 0x73, 0x5c, 0xf1, 0xec,
+
  0x43, 0x3a, 0x9d, 0x4f, 0x60, 0x40, 0xb8, 0x88, 0xfa, 0x50, 0x95, 0x54,
+
  0x75, 0x5a, 0xd6, 0x34, 0x78, 0x9c, 0x10, 0xb5, 0xd7, 0x19, 0xd7, 0xf3,
+
  0x7e, 0x87, 0x07, 0xae, 0xbd, 0xea, 0x28, 0x91, 0x24, 0x65, 0x59, 0x70,
+
  0x39, 0x87, 0xe9, 0x2c, 0xa9, 0xe6, 0xd9, 0x30, 0x1f, 0xdf, 0x02, 0x15,
+
  0xc0, 0x2e, 0xa7, 0xd3, 0x62, 0x01, 0x4f, 0x15, 0x63, 0x22, 0x7b, 0x1c,
+
  0x1a, 0x0c, 0x17, 0x68, 0xa2, 0x98, 0x4e, 0x91, 0x4a, 0x26, 0xf9, 0x2c,
+
  0xeb, 0xe3, 0x7e, 0xc1, 0xe3, 0x65, 0x86, 0xfb, 0x5d, 0xc3, 0x32, 0xf1,
+
  0x34, 0xf2, 0x19, 0x2c, 0x65, 0x95, 0xfd, 0x7d, 0x01, 0x9b, 0x95, 0xa7,
+
  0x93, 0x04, 0x5e, 0x98, 0xc1, 0x21, 0xc2, 0xcf, 0xb1, 0x0d, 0xee, 0x26,
+
  0x47, 0x2a, 0x29, 0xca, 0x11, 0x9e, 0xae, 0xd9, 0x04, 0xd6, 0x94, 0x46,
+
  0x06, 0x13, 0x4f, 0x92, 0x5e, 0x6f, 0x9e, 0x96, 0x40, 0x57, 0xd9, 0xa4,
+
  0xdf, 0x3a, 0xbe, 0x68, 0x10, 0x89, 0x9e, 0x7c, 0xfc, 0x80, 0xc7, 0x3a,
+
  0x85, 0xc5, 0x1a, 0xf1, 0xdf, 0x38, 0x14, 0x98, 0x0d, 0xf7, 0x03, 0x93,
+
  0xa0, 0xf6, 0x70, 0x10, 0xd1, 0x3c, 0x1c, 0xb9, 0xa7, 0x75, 0x9d, 0x4d,
+
  0xe7, 0xbc, 0x63, 0x65, 0x86, 0xc3, 0x19, 0x16, 0x30, 0xfa, 0x21, 0xf7,
+
  0x01, 0x3b, 0x0e, 0xdb, 0x3a, 0x2a, 0x70, 0x99, 0xa7, 0xb0, 0xb1, 0x39,
+
  0xec, 0x83, 0x11, 0x7f, 0xd5, 0x4d, 0xaa, 0x02, 0x5b, 0x4f, 0x99, 0x41,
+
  0x5c, 0x66, 0x35, 0xed, 0xc7, 0x14, 0x47, 0x30, 0x06, 0x1a, 0xad, 0x98,
+
  0xb9, 0xf0, 0x22, 0xe0, 0xc6, 0x0a, 0x77, 0x19, 0xc1, 0x5b, 0xb3, 0xa2,
+
  0xa6, 0xc9, 0x5b, 0xab, 0xd2, 0x2d, 0xf4, 0x09, 0xc3, 0x64, 0x86, 0x93,
+
  0xd5, 0x8b, 0x79, 0x72, 0x05, 0x7f, 0x56, 0x57, 0xe9, 0x7b, 0x24, 0x87,
+
  0x8b, 0x2b, 0x38, 0x21, 0xf9, 0x14, 0xe9, 0x19, 0x1a, 0xc7, 0xf5, 0xc9,
+
  0x46, 0xfd, 0xe4, 0xc8, 0x06, 0x2c, 0x33, 0xa0, 0xc5, 0x2b, 0x66, 0x93,
+
  0xdb, 0x64, 0x00, 0x7f, 0x8c, 0x8a, 0x19, 0x1f, 0x47, 0x24, 0x1f, 0x5a,
+
  0x2f, 0xb7, 0x23, 0x7c, 0xa4, 0x13, 0x64, 0x77, 0x93, 0xc6, 0x6e, 0xe3,
+
  0x62, 0x5e, 0x17, 0xc3, 0x94, 0x0f, 0x18, 0x7e, 0x0a, 0xcd, 0xe2, 0xb0,
+
  0xa1, 0x55, 0x6a, 0x6f, 0x9e, 0x95, 0xf0, 0xfa, 0x14, 0x5a, 0x19, 0x64,
+
  0xf5, 0x4d, 0x06, 0x0b, 0x55, 0x65, 0xb8, 0x91, 0x75, 0xc6, 0x4b, 0x5b,
+
  0x2e, 0x66, 0x95, 0x2c, 0xf5, 0x99, 0x9c, 0x40, 0x18, 0xd7, 0xc9, 0xd9,
+
  0xf5, 0xe3, 0xe4, 0x1f, 0x05, 0xb5, 0x3f, 0x52, 0x12, 0xd1, 0x63, 0x89,
+
  0xfd, 0x24, 0x70, 0xae, 0xd3, 0x39, 0xb4, 0x0a, 0xed, 0x0f, 0x81, 0xa2,
+
  0xd2, 0x4b, 0x58, 0xb8, 0xfc, 0x72, 0x06, 0x9c, 0xe5, 0x65, 0xfe, 0x3e,
+
  0x13, 0x8a, 0xfb, 0xea, 0xab, 0x07, 0x9d, 0xab, 0xba, 0x9e, 0xc3, 0x81,
+
  0xfd, 0xdb, 0x38, 0x7b, 0xb2, 0x73, 0x70, 0xb0, 0xff, 0x1f, 0x7b, 0x8f,
+
  0xb2, 0xfa, 0x6a, 0xe7, 0x97, 0xed, 0x0e, 0x77, 0x7a, 0x0c, 0x6b, 0x7d,
+
  0x5b, 0x5f, 0xe1, 0x96, 0x08, 0x07, 0x18, 0x29, 0x59, 0xc7, 0xf3, 0xc4,
+
  0x1d, 0x44, 0xde, 0x83, 0x93, 0x4b, 0x1b, 0xdf, 0x31, 0xb5, 0xf1, 0x69,
+
  0x2d, 0x93, 0x1c, 0xf6, 0x27, 0x2d, 0x2f, 0xe1, 0x60, 0xcd, 0xea, 0x6e,
+
  0x7c, 0xce, 0xe8, 0xa6, 0xc1, 0x79, 0xe0, 0xbb, 0x75, 0x09, 0xec, 0x10,
+
  0x3e, 0xc3, 0xc3, 0x0f, 0x17, 0xc7, 0xf0, 0x0a, 0xd6, 0xe1, 0xc7, 0x97,
+
  0xa7, 0x3f, 0xfc, 0x70, 0xf2, 0xfa, 0xc7, 0xf6, 0x33, 0x18, 0x08, 0x81,
+
  0xb7, 0x08, 0x3a, 0x83, 0xb5, 0x44, 0x72, 0xd0, 0x13, 0x89, 0xac, 0xf8,
+
  0xa6, 0xcc, 0x89, 0xc4, 0x26, 0x79, 0x85, 0x5f, 0xe1, 0x92, 0x09, 0xe7,
+
  0x1b, 0x94, 0xe9, 0x10, 0x79, 0x4c, 0x99, 0x00, 0x75, 0x5e, 0xc2, 0x6f,
+
  0xfc, 0x1d, 0x7d, 0xfe, 0x3e, 0xab, 0x81, 0x78, 0x7e, 0x82, 0x69, 0x23,
+
  0xf3, 0xae, 0x91, 0x88, 0x3a, 0x97, 0x93, 0x62, 0x30, 0x80, 0xa6, 0x3a,
+
  0xcd, 0x1d, 0xa2, 0xb6, 0x79, 0x33, 0xea, 0xab, 0x32, 0xcb, 0x92, 0x51,
+
  0x3e, 0x06, 0x62, 0x87, 0x09, 0x27, 0xcc, 0x77, 0x26, 0xb0, 0x09, 0xd4,
+
  0xc8, 0x81, 0xdb, 0x83, 0x2a, 0xaf, 0xb3, 0xfe, 0x3f, 0x61, 0x57, 0xbb,
+
  0xf5, 0x4d, 0xd1, 0xa5, 0x17, 0xff, 0xd5, 0x87, 0x95, 0x94, 0xad, 0x78,
+
  0x56, 0x08, 0x7f, 0xa0, 0x31, 0x8e, 0xe1, 0x12, 0x99, 0x03, 0x5d, 0xc3,
+
  0xba, 0x95, 0xf9, 0x10, 0x4f, 0x45, 0x9e, 0xd1, 0xfc, 0xf8, 0xda, 0xfd,
+
  0xdb, 0x2f, 0xb8, 0x6a, 0xf9, 0x8c, 0xda, 0x1f, 0x53, 0xf3, 0xc8, 0xd7,
+
  0x84, 0x0d, 0x62, 0xab, 0xdb, 0x78, 0xba, 0xfe, 0xb6, 0xdb, 0xdb, 0xdd,
+
  0xd9, 0xf9, 0xa5, 0x5f, 0x7f, 0xa8, 0xa5, 0x97, 0x9f, 0x70, 0xd0, 0xca,
+
  0xd2, 0xff, 0x91, 0x95, 0x45, 0x56, 0xdd, 0xd7, 0xc6, 0xce, 0xce, 0xaa,
+
  0x56, 0x80, 0x2f, 0x94, 0x78, 0xd7, 0x97, 0xc5, 0xe2, 0xf2, 0x8a, 0x88,
+
  0x86, 0x06, 0x0d, 0xa4, 0x7e, 0x5f, 0x9b, 0x69, 0xef, 0x1f, 0xbe, 0xbd,
+
  0xd7, 0x59, 0x85, 0x37, 0x64, 0x98, 0x3f, 0xf2, 0x4f, 0x3a, 0x47, 0x22,
+
  0x51, 0x64, 0xa3, 0x2e, 0xdd, 0x13, 0xb7, 0x42, 0x12, 0xc4, 0x17, 0xaa,
+
  0x0c, 0xa8, 0x17, 0x78, 0x29, 0x2c, 0x29, 0x10, 0x66, 0xf6, 0x01, 0x1e,
+
  0xaf, 0x0b, 0x6a, 0x2f, 0x4b, 0x87, 0x57, 0x7c, 0x97, 0xf8, 0x0d, 0xf0,
+
  0xa3, 0x48, 0xcb, 0xe1, 0x55, 0x7e, 0x0d, 0x0b, 0xf4, 0xcd, 0x37, 0x8f,
+
  0x7b, 0xf0, 0xe3, 0x9b, 0x5f, 0xb6, 0xaf, 0x8b, 0x09, 0xac, 0xd7, 0xc3,
+
  0x5f, 0xb6, 0x91, 0xa8, 0xfe, 0x99, 0x76, 0x07, 0xdd, 0xe1, 0xbf, 0xfa,
+
  0x57, 0xf5, 0x74, 0xd2, 0x59, 0x71, 0x25, 0xc0, 0xf5, 0x92, 0xcd, 0x91,
+
  0x21, 0xc0, 0xa5, 0x00, 0x2c, 0x8b, 0x84, 0x27, 0x58, 0x03, 0x21, 0x2e,
+
  0xe4, 0x96, 0xc0, 0xee, 0x12, 0x1c, 0xe4, 0x6d, 0xf2, 0x1a, 0x16, 0x0c,
+
  0x36, 0x73, 0x40, 0x2c, 0xb7, 0xe4, 0xab, 0x9f, 0xd6, 0x6f, 0xd5, 0x00,
+
  0xc3, 0xf6, 0x1d, 0xec, 0xda, 0xda, 0xaf, 0x7e, 0x12, 0x16, 0xf4, 0x60,
+
  0x2f, 0xda, 0x22, 0xe4, 0xca, 0x46, 0x2c, 0x30, 0xb4, 0x7f, 0xfe, 0xcb,
+
  0xad, 0x2f, 0xf1, 0x6c, 0xe4, 0x5d, 0xef, 0x91, 0xc1, 0x21, 0x07, 0x6e,
+
  0x1e, 0x6a, 0x60, 0x07, 0xc0, 0xf3, 0xbb, 0xb8, 0xe2, 0xcc, 0xc9, 0xca,
+
  0x62, 0x90, 0x0e, 0x80, 0x5f, 0x5e, 0xa5, 0xd7, 0x19, 0xce, 0x6d, 0xbe,
+
  0xa0, 0x1b, 0x3d, 0x19, 0x2f, 0x50, 0xda, 0x51, 0xee, 0x94, 0xe3, 0x55,
+
  0xb0, 0x18, 0xc0, 0x19, 0xfd, 0xfb, 0xa2, 0xa8, 0x33, 0xba, 0x33, 0xd2,
+
  0xeb, 0x02, 0xd8, 0x18, 0x5d, 0x95, 0xd5, 0x55, 0x36, 0x99, 0x30, 0xa7,
+
  0xc5, 0x4e, 0x73, 0x5c, 0x38, 0x38, 0x39, 0x76, 0x45, 0x03, 0x3b, 0xe8,
+
  0x27, 0xcc, 0xc3, 0x81, 0x96, 0xe0, 0xea, 0xb8, 0x2c, 0x70, 0x29, 0x71,
+
  0x69, 0x69, 0x3b, 0x61, 0xb5, 0xaf, 0x80, 0x7d, 0x0e, 0x89, 0xf0, 0x98,
+
  0x85, 0xc8, 0x05, 0x4b, 0xbb, 0x92, 0x4e, 0xba, 0x7c, 0xf6, 0xf0, 0x05,
+
  0x59, 0xa3, 0x64, 0xe3, 0x7f, 0x6e, 0x74, 0x93, 0x8d, 0xff, 0x73, 0x83,
+
  0xb8, 0xce, 0xc6, 0x7f, 0x6e, 0xc8, 0x69, 0x3e, 0x87, 0xfe, 0x90, 0x4a,
+
  0xc6, 0xe3, 0x44, 0x0f, 0x3a, 0x0f, 0xa1, 0xd7, 0xc3, 0xbf, 0xe1, 0x73,
+
  0x78, 0xf0, 0xcf, 0x87, 0x6f, 0x4e, 0x0e, 0x7f, 0x78, 0x79, 0xec, 0xe5,
+
  0x6a, 0x13, 0x72, 0xa3, 0x05, 0xbb, 0x4e, 0xcb, 0x1c, 0xd6, 0x07, 0x47,
+
  0xbb, 0x99, 0x8e, 0x90, 0x8f, 0xc2, 0x52, 0x3c, 0xe9, 0xef, 0xf7, 0x77,
+
  0xb6, 0xfa, 0x20, 0xed, 0xd5, 0xfe, 0x01, 0x13, 0x46, 0x7a, 0x3d, 0xfd,
+
  0x94, 0x18, 0xc7, 0xb7, 0x70, 0xc1, 0xd5, 0xc8, 0x45, 0x60, 0xf4, 0x8d,
+
  0xaf, 0xbe, 0xc7, 0x5d, 0x4e, 0x36, 0x61, 0xdf, 0xe0, 0x64, 0x74, 0xf0,
+
  0x8f, 0x0e, 0x11, 0x23, 0xde, 0x5e, 0x55, 0x3d, 0x12, 0x0e, 0x97, 0x8f,
+
  0xf1, 0x46, 0x64, 0x39, 0x5d, 0xee, 0xab, 0x51, 0x5a, 0x5d, 0x25, 0x9b,
+
  0xbd, 0xad, 0x2d, 0x99, 0xf6, 0x9f, 0xb5, 0x55, 0xe9, 0xab, 0xd2, 0x66,
+
  0xb2, 0x0f, 0x73, 0x98, 0x0c, 0x8f, 0x9b, 0x39, 0x3a, 0x72, 0x57, 0xe8,
+
  0x9a, 0xd6, 0x9a, 0x29, 0xa9, 0xf3, 0xcf, 0x7f, 0xe2, 0x60, 0xfe, 0xf5,
+
  0xaf, 0x0e, 0xf6, 0x65, 0x82, 0x83, 0x3c, 0x4e, 0x82, 0x19, 0x32, 0x79,
+
  0x11, 0xce, 0x46, 0x72, 0x5f, 0x75, 0x7a, 0x3d, 0x6e, 0xbc, 0xd7, 0x91,
+
  0xfb, 0x19, 0x0f, 0x46, 0x25, 0xb7, 0x8c, 0x8c, 0x02, 0x36, 0xc2, 0xda,
+
  0xb3, 0x99, 0x77, 0xb0, 0xc9, 0x0e, 0x8c, 0x08, 0xf8, 0x1f, 0xf1, 0x00,
+
  0xbe, 0x8a, 0x07, 0x93, 0x74, 0xf6, 0x1e, 0x27, 0x4b, 0x34, 0x45, 0xdd,
+
  0x8e, 0x90, 0x4e, 0x90, 0x63, 0x64, 0x1f, 0x90, 0x37, 0xa7, 0x48, 0x3f,
+
  0xd4, 0x9e, 0xb6, 0x05, 0x12, 0x28, 0xb5, 0x92, 0xe0, 0x24, 0x60, 0xf8,
+
  0x70, 0x2a, 0x07, 0x70, 0x6f, 0x4f, 0x4d, 0x04, 0x83, 0x65, 0x64, 0x3a,
+
  0x04, 0x26, 0xcb, 0x13, 0xa0, 0xbf, 0xe0, 0x7e, 0xd2, 0x6b, 0x97, 0x2f,
+
  0x11, 0xb8, 0x2b, 0xaa, 0x09, 0x2c, 0xaa, 0x50, 0x5a, 0xe7, 0x67, 0x68,
+
  0xce, 0x09, 0x8d, 0xe9, 0x70, 0x88, 0x82, 0x1b, 0xd2, 0x05, 0x4f, 0x1a,
+
  0xb8, 0xd1, 0xec, 0x3a, 0x2f, 0x8b, 0x19, 0x5e, 0x88, 0x8e, 0x0a, 0xf0,
+
  0xae, 0x1a, 0xe7, 0x25, 0x0c, 0x16, 0xa4, 0x95, 0x82, 0xc5, 0x54, 0x18,
+
  0xc7, 0xb4, 0x4f, 0xed, 0x88, 0x74, 0x33, 0x01, 0xa1, 0x05, 0xb7, 0x33,
+
  0xcb, 0x99, 0xfa, 0x4b, 0x38, 0xc1, 0x79, 0x99, 0xf1, 0x80, 0xdb, 0xda,
+
  0x25, 0xb6, 0x33, 0xc8, 0x88, 0x0c, 0x70, 0xb5, 0x90, 0x61, 0xe2, 0x0e,
+
  0xeb, 0x19, 0x96, 0x0b, 0x4c, 0x84, 0x70, 0x78, 0x6d, 0xb2, 0x20, 0x29,
+
  0x06, 0x9e, 0x01, 0x8e, 0x9a, 0xd3, 0x1d, 0xcf, 0x97, 0xfc, 0x04, 0x0e,
+
  0xd7, 0xe8, 0x16, 0x1b, 0xea, 0x27, 0x67, 0x93, 0x14, 0x1e, 0xc1, 0x8d,
+
  0xd4, 0x7e, 0xa8, 0xbd, 0xff, 0x90, 0xed, 0x99, 0x9a, 0xd2, 0x17, 0xc6,
+
  0x81, 0xf7, 0x28, 0x50, 0x80, 0xec, 0x20, 0x31, 0x6f, 0xd8, 0x9a, 0x9a,
+
  0x2f, 0x5d, 0x12, 0x61, 0xca, 0x12, 0xa5, 0x85, 0xb1, 0x93, 0x0e, 0x5b,
+
  0x27, 0xa4, 0x42, 0x87, 0x1f, 0x4f, 0x72, 0x51, 0xac, 0x9c, 0x0c, 0xb6,
+
  0x98, 0x73, 0x7b, 0xf2, 0x2a, 0xbc, 0xd2, 0xa5, 0x0b, 0xc3, 0x8d, 0x9f,
+
  0xc7, 0xae, 0x07, 0xae, 0x83, 0x4b, 0xb5, 0xf4, 0xed, 0xf7, 0xfa, 0xad,
+
  0x6c, 0xef, 0xb1, 0x30, 0xdd, 0xe4, 0xc7, 0x8c, 0x59, 0xdf, 0xdb, 0xf3,
+
  0xe3, 0x37, 0xab, 0x46, 0x3d, 0x83, 0x7d, 0xa0, 0x5d, 0x02, 0xce, 0x08,
+
  0x6a, 0x09, 0xe8, 0x63, 0x38, 0x32, 0x7e, 0x23, 0x67, 0x55, 0x49, 0xc6,
+
  0x86, 0x37, 0x80, 0xeb, 0x7a, 0xe3, 0x3f, 0xf0, 0xa1, 0x0d, 0xfc, 0x4c,
+
  0x4e, 0x0d, 0x32, 0x9d, 0x6f, 0x13, 0x62, 0xfd, 0x55, 0xf3, 0x1a, 0x9b,
+
  0xe7, 0xdb, 0xff, 0xfc, 0x27, 0xbe, 0xf0, 0xaf, 0x7f, 0x6d, 0xc3, 0x51,
+
  0xbd, 0x2a, 0x46, 0x9e, 0xff, 0x73, 0x03, 0x48, 0x59, 0x46, 0x77, 0xaa,
+
  0xb3, 0x19, 0x17, 0x4b, 0x85, 0x56, 0xc6, 0xc0, 0xc9, 0x67, 0x22, 0xd3,
+
  0x93, 0xb4, 0x47, 0xf7, 0xec, 0x34, 0x15, 0x71, 0x32, 0xda, 0xdc, 0x70,
+
  0x6c, 0xa7, 0x45, 0xc9, 0x7f, 0x5e, 0x67, 0xb3, 0x1c, 0x57, 0x00, 0xa6,
+
  0x8d, 0x6b, 0x4d, 0x0a, 0x1f, 0x37, 0x01, 0xc7, 0x6a, 0x1a, 0xb4, 0x48,
+
  0x95, 0xdc, 0x41, 0x43, 0xc8, 0x27, 0xc4, 0x73, 0xaf, 0x40, 0x2e, 0x02,
+
  0xf6, 0x0d, 0xb2, 0x99, 0x9c, 0xb4, 0x0e, 0xbe, 0xd1, 0xe9, 0xd2, 0xd9,
+
  0xa3, 0x16, 0x40, 0x13, 0xd5, 0xdb, 0x26, 0xf0, 0x8b, 0x14, 0x87, 0x9e,
+
  0xfc, 0xd7, 0xf9, 0xe9, 0x6b, 0x6a, 0x8f, 0xae, 0x9b, 0x91, 0x1d, 0x62,
+
  0x6e, 0xe8, 0xd7, 0xaa, 0x98, 0x61, 0x43, 0x78, 0x3b, 0xc1, 0xc5, 0x57,
+
  0x8c, 0x32, 0xd1, 0x34, 0xfc, 0x53, 0x49, 0x07, 0x16, 0x84, 0x28, 0x80,
+
  0xd4, 0xce, 0xc7, 0x0f, 0x85, 0x16, 0xe9, 0xf1, 0x5c, 0xe4, 0xbc, 0xce,
+
  0xe0, 0xf1, 0x43, 0xe4, 0x5e, 0xc0, 0x59, 0xe7, 0x73, 0xb8, 0x05, 0xdd,
+
  0x5a, 0x21, 0xb3, 0xb5, 0x95, 0xa1, 0x15, 0xaf, 0xe0, 0x0b, 0xe8, 0x15,
+
  0xae, 0x01, 0x3a, 0xd1, 0x7c, 0x75, 0x14, 0x93, 0x22, 0x48, 0xff, 0x23,
+
  0x3a, 0xa7, 0x4c, 0x20, 0x65, 0x7e, 0x79, 0x85, 0x92, 0x0e, 0x12, 0x73,
+
  0x31, 0x96, 0x0f, 0x03, 0xdb, 0x0a, 0x1c, 0x5b, 0x27, 0x4f, 0xed, 0x5d,
+
  0x15, 0x13, 0x5a, 0xd0, 0x19, 0x5e, 0xbf, 0x83, 0x5b, 0xba, 0x6a, 0x71,
+
  0xd7, 0x54, 0x72, 0xe2, 0xf1, 0x8f, 0xf8, 0xa6, 0x37, 0xde, 0x3e, 0x4c,
+
  0xf1, 0x1c, 0xd0, 0xd1, 0x8b, 0x89, 0xfa, 0x80, 0x64, 0x95, 0x26, 0x47,
+
  0x86, 0x99, 0xd1, 0xbd, 0xa3, 0xa7, 0xf9, 0x7f, 0xbc, 0x38, 0x7d, 0x75,
+
  0xbc, 0xdd, 0xaf, 0xb2, 0x61, 0x09, 0x4f, 0x13, 0x8d, 0xa7, 0x61, 0xac,
+
  0x3c, 0x4f, 0x39, 0xf7, 0xc0, 0x3f, 0x61, 0xbd, 0x5e, 0x01, 0xf9, 0x20,
+
  0xad, 0x11, 0xcb, 0x4a, 0xeb, 0xc4, 0xf7, 0x40, 0xac, 0x06, 0xb7, 0x7a,
+
  0xaa, 0x9a, 0xa9, 0x68, 0x33, 0x3d, 0x19, 0xbb, 0xd8, 0x13, 0x48, 0x69,
+
  0x9a, 0x11, 0x4f, 0x3f, 0x3b, 0x3d, 0xbf, 0x20, 0x9b, 0x54, 0xe3, 0xcc,
+
  0xfc, 0x07, 0x8e, 0xcb, 0x9d, 0x18, 0xfb, 0x02, 0x46, 0xf1, 0xfd, 0x3f,
+
  0xff, 0x89, 0xdf, 0xc2, 0xf9, 0x90, 0x71, 0xbb, 0xe7, 0xc8, 0xbc, 0x05,
+
  0xf7, 0x01, 0x3c, 0x76, 0x80, 0x23, 0x39, 0x00, 0x4a, 0x80, 0xcb, 0xed,
+
  0xab, 0x07, 0x6d, 0x67, 0x8d, 0xd7, 0xeb, 0xa8, 0xfd, 0xd2, 0x37, 0x7e,
+
  0x5f, 0x11, 0x51, 0xa0, 0x69, 0x28, 0x89, 0xc5, 0x00, 0x58, 0xef, 0xd3,
+
  0xb7, 0x17, 0x67, 0x6f, 0x2f, 0xcc, 0xee, 0x82, 0xdb, 0x54, 0xc3, 0x36,
+
  0xb2, 0x68, 0x73, 0x93, 0x57, 0x6a, 0x50, 0x41, 0x15, 0x86, 0x24, 0x48,
+
  0x94, 0x26, 0xb3, 0x61, 0x06, 0x82, 0xea, 0x88, 0x4d, 0x71, 0xb0, 0xe0,
+
  0x70, 0xdb, 0xc3, 0x79, 0xa0, 0xf3, 0x45, 0x87, 0x63, 0xa0, 0xea, 0x1e,
+
  0x10, 0xf5, 0x62, 0x88, 0xa4, 0x05, 0x0f, 0xe1, 0x5f, 0x70, 0xe2, 0x40,
+
  0xa5, 0xbe, 0x96, 0x95, 0xa7, 0xd7, 0x65, 0xc7, 0x26, 0xa0, 0xb2, 0x4e,
+
  0x68, 0x67, 0xbb, 0x72, 0xb1, 0x53, 0x57, 0xbd, 0x1e, 0x1f, 0x34, 0xd5,
+
  0xe4, 0x7a, 0xbd, 0x32, 0x9b, 0xc2, 0xa9, 0xea, 0xd1, 0x0d, 0x2b, 0x36,
+
  0x85, 0x3e, 0x0d, 0x5d, 0x0d, 0x87, 0xc9, 0x25, 0x8c, 0x6d, 0x16, 0x14,
+
  0x33, 0x56, 0xc3, 0x90, 0xf5, 0xa9, 0x7d, 0x72, 0x95, 0x81, 0x81, 0x8f,
+
  0x77, 0x95, 0x4f, 0xf3, 0x49, 0x5a, 0xc2, 0x81, 0x9a, 0x81, 0x9e, 0x5e,
+
  0x39, 0x15, 0x4f, 0x4d, 0x18, 0x24, 0xca, 0xb1, 0xd8, 0x83, 0x27, 0x06,
+
  0x27, 0xa4, 0xed, 0x4d, 0xbd, 0x91, 0x82, 0x04, 0x00, 0xd6, 0x19, 0xe0,
+
  0x88, 0x01, 0x91, 0xe3, 0x79, 0xb6, 0x85, 0x85, 0x33, 0x0e, 0xf4, 0x0f,
+
  0x97, 0x2d, 0x74, 0xdf, 0x49, 0xd4, 0x6c, 0x23, 0x64, 0x58, 0x8b, 0x3c,
+
  0xa2, 0x82, 0xb9, 0x2c, 0x3f, 0xd0, 0x1b, 0xaf, 0x07, 0xad, 0xb5, 0x08,
+
  0x18, 0x7c, 0xae, 0x70, 0xc9, 0xc8, 0x5a, 0xc7, 0xbf, 0x77, 0xd5, 0x5c,
+
  0x83, 0x24, 0x30, 0xc9, 0x87, 0x79, 0x0d, 0x13, 0x4a, 0xab, 0xf7, 0x42,
+
  0xc2, 0x30, 0x6e, 0xe2, 0x21, 0x40, 0x0d, 0xf9, 0x90, 0x0e, 0x7f, 0x9b,
+
  0xb1, 0x06, 0x26, 0x73, 0xf6, 0xe6, 0xf4, 0xe2, 0xf4, 0xe8, 0xf4, 0x65,
+
  0xab, 0xb4, 0x99, 0x90, 0x2e, 0x58, 0x2c, 0x9c, 0xfd, 0xaf, 0x62, 0x81,
+
  0x08, 0x79, 0x23, 0x92, 0x19, 0x72, 0xb9, 0x04, 0xa4, 0xb5, 0x29, 0xda,
+
  0x5b, 0xd9, 0x42, 0x57, 0xb1, 0x34, 0xc1, 0xf3, 0x42, 0xbd, 0x26, 0x1f,
+
  0x2e, 0x60, 0xbd, 0xe1, 0x3a, 0xce, 0x81, 0xee, 0xa6, 0xe9, 0x2d, 0x5f,
+
  0x42, 0xdc, 0x07, 0xad, 0x29, 0x1a, 0x2f, 0x65, 0x5d, 0xd1, 0x64, 0x0b,
+
  0xe7, 0xec, 0x25, 0xae, 0x0d, 0xca, 0x11, 0x93, 0xa2, 0x78, 0xbf, 0x98,
+
  0x27, 0x37, 0x45, 0x39, 0x52, 0x81, 0xb0, 0x98, 0xd1, 0x14, 0x60, 0x5e,
+
  0x38, 0x87, 0x14, 0x95, 0x54, 0x79, 0x19, 0x2d, 0xbd, 0xf0, 0xf2, 0x1b,
+
  0xa4, 0x42, 0xdc, 0x41, 0x5c, 0x53, 0x47, 0x78, 0x30, 0xb0, 0xb0, 0x6d,
+
  0x7e, 0x0c, 0x2c, 0x3f, 0x11, 0x4d, 0xe2, 0x73, 0x68, 0x6c, 0x44, 0x53,
+
  0xe8, 0x03, 0x26, 0xc5, 0xc9, 0x2d, 0xeb, 0x81, 0xc4, 0x15, 0xca, 0xc5,
+
  0x6c, 0x46, 0x0f, 0x02, 0x63, 0x7d, 0x95, 0x0f, 0xcb, 0xa2, 0x2a, 0xc6,
+
  0x35, 0xe8, 0xa6, 0xb3, 0x51, 0x71, 0x53, 0x25, 0x32, 0x42, 0xdc, 0xea,
+
  0x19, 0x08, 0x7a, 0xd7, 0x48, 0x9c, 0xaf, 0x8f, 0xbe, 0x7a, 0x00, 0xfc,
+
  0xbb, 0x2c, 0x50, 0x3f, 0x84, 0x79, 0xbc, 0xb7, 0xd1, 0x5e, 0x9c, 0x6d,
+
  0x9e, 0x6f, 0xc1, 0x78, 0x1b, 0x6b, 0x8e, 0x6f, 0x3f, 0x27, 0x0e, 0x78,
+
  0xa1, 0x04, 0x7d, 0xa6, 0xb6, 0x4d, 0x91, 0x64, 0x40, 0x91, 0x2b, 0xf8,
+
  0xfe, 0xac, 0x6f, 0xb2, 0xf4, 0xbd, 0x18, 0xa7, 0x1e, 0x4c, 0x50, 0xef,
+
  0x43, 0x93, 0x02, 0x3e, 0x84, 0x0b, 0x20, 0x16, 0x55, 0x1e, 0xd5, 0xc5,
+
  0x4b, 0x35, 0x28, 0xb3, 0xd9, 0x9b, 0x3b, 0x7f, 0x93, 0x01, 0x13, 0x82,
+
  0xf7, 0x64, 0x85, 0xbe, 0x32, 0x1b, 0x78, 0xdb, 0xd8, 0xc8, 0x76, 0x4a,
+
  0x43, 0x08, 0x84, 0xe1, 0xed, 0x7e, 0xc4, 0x9b, 0xe4, 0xc8, 0x2a, 0xaf,
+
  0x00, 0x25, 0x29, 0x7d, 0xff, 0xd5, 0x03, 0x7a, 0x15, 0x87, 0x87, 0x52,
+
  0xfb, 0x4e, 0xff, 0x9b, 0x6e, 0xb2, 0xdb, 0xdf, 0xc1, 0x1f, 0xbb, 0xdd,
+
  0x64, 0x8f, 0x5e, 0xde, 0x4f, 0xd8, 0xb4, 0xcc, 0x7b, 0x2c, 0xe4, 0x62,
+
  0x47, 0x92, 0xcc, 0x37, 0x57, 0x19, 0x8c, 0xa8, 0x28, 0x4b, 0x94, 0x50,
+
  0x57, 0xd0, 0x33, 0xf1, 0xb9, 0x57, 0x87, 0x32, 0xfc, 0xb7, 0xb6, 0x1f,
+
  0x40, 0x78, 0x20, 0x0e, 0x95, 0x4d, 0xc3, 0xb2, 0x8a, 0x26, 0x38, 0x54,
+
  0xd8, 0xc2, 0xd9, 0xa4, 0x48, 0x51, 0x7a, 0xc6, 0x87, 0x2b, 0xb6, 0xc2,
+
  0x01, 0x15, 0xf6, 0xbf, 0x7a, 0x70, 0xdf, 0x92, 0xa2, 0x67, 0xc0, 0xad,
+
  0x18, 0x37, 0x07, 0x34, 0x8a, 0x43, 0x2d, 0x40, 0x17, 0x67, 0x3a, 0xe6,
+
  0x26, 0xa1, 0xc5, 0x2e, 0xaf, 0xa2, 0x6b, 0x30, 0x34, 0x85, 0xde, 0x85,
+
  0xa5, 0x95, 0xc7, 0x0f, 0x13, 0x5b, 0xbf, 0xfd, 0x7e, 0xf2, 0x4c, 0x06,
+
  0xcb, 0xc4, 0x88, 0xe6, 0x4b, 0x7a, 0x04, 0x64, 0x75, 0xd0, 0x61, 0xf1,
+
  0xfa, 0x1b, 0xa0, 0x19, 0x1e, 0x18, 0xf5, 0x03, 0xbe, 0x30, 0xeb, 0x62,
+
  0x9e, 0x0f, 0x51, 0xf0, 0x41, 0xc2, 0x5a, 0xcc, 0xe5, 0xd5, 0xed, 0x79,
+
  0x51, 0x91, 0x16, 0xa0, 0xef, 0xcd, 0x41, 0x8f, 0xce, 0x41, 0x7b, 0x23,
+
  0xdb, 0x22, 0xbf, 0xd4, 0x97, 0x21, 0x3d, 0xa0, 0x5e, 0x60, 0x9c, 0x26,
+
  0xe3, 0xaa, 0x9d, 0x24, 0xd9, 0xbc, 0xcd, 0x6a, 0x55, 0xf6, 0xd0, 0x1f,
+
  0xc2, 0x2b, 0xe1, 0x87, 0x28, 0xfa, 0xfe, 0xbc, 0x98, 0xef, 0x9b, 0x37,
+
  0x67, 0x9a, 0x01, 0x79, 0x9b, 0x79, 0x16, 0xbe, 0xc5, 0x55, 0x0f, 0xd4,
+
  0xab, 0x4b, 0xf3, 0xd5, 0x83, 0xe6, 0x62, 0xa3, 0x93, 0x85, 0xbb, 0x40,
+
  0x47, 0x05, 0x1c, 0x77, 0xe0, 0xdf, 0x70, 0x5b, 0xbc, 0x82, 0x43, 0x9c,
+
  0x5e, 0x52, 0x5b, 0x76, 0x60, 0x48, 0x33, 0xcc, 0xa7, 0x40, 0x97, 0xc0,
+
  0x1e, 0x13, 0xb2, 0xe7, 0xe3, 0x7d, 0x86, 0x03, 0x20, 0xed, 0x2b, 0x4b,
+
  0xa7, 0xf0, 0xc2, 0x57, 0x0f, 0x40, 0x1e, 0xc8, 0x53, 0xb6, 0xa6, 0x86,
+
  0xfd, 0x13, 0x72, 0xc8, 0x6b, 0xeb, 0xf7, 0xfc, 0x6c, 0x69, 0x67, 0xf0,
+
  0x43, 0xa4, 0x65, 0x7b, 0x5e, 0xa9, 0xf0, 0xfc, 0x68, 0xf9, 0xe1, 0xf3,
+
  0xf3, 0x17, 0xb6, 0x89, 0x7b, 0xc0, 0x2f, 0xe7, 0xc1, 0x6a, 0xad, 0x6f,
+
  0x01, 0x5b, 0x58, 0x7e, 0x0d, 0x3e, 0x4c, 0x36, 0x47, 0x65, 0x0a, 0xbc,
+
  0xe6, 0xd1, 0x16, 0x99, 0x8e, 0x79, 0xcf, 0xa3, 0xf6, 0xb4, 0x85, 0x57,
+
  0x3f, 0xb4, 0x9d, 0x5d, 0xf8, 0xd8, 0x1e, 0xdd, 0x25, 0x3a, 0x64, 0x2a,
+
  0xa0, 0x49, 0xeb, 0xd8, 0xad, 0x09, 0x3d, 0xff, 0x6f, 0x95, 0x52, 0x82,
+
  0x8c, 0x86, 0xf4, 0x34, 0xe3, 0x67, 0xe2, 0x9d, 0x44, 0x91, 0x89, 0x1e,
+
  0x45, 0x4d, 0xcb, 0xed, 0x25, 0xde, 0x71, 0x0f, 0x96, 0xe9, 0x9c, 0xbd,
+
  0x5e, 0xd0, 0xc7, 0x73, 0xf4, 0x59, 0xd0, 0x7b, 0x78, 0x95, 0x4c, 0x66,
+
  0x20, 0xe6, 0xd1, 0xb5, 0x42, 0x9e, 0x94, 0x8a, 0x3a, 0x23, 0xa3, 0x4d,
+
  0x3a, 0x24, 0x96, 0x5a, 0x21, 0xaf, 0x46, 0xfa, 0xe4, 0x1b, 0x1a, 0xaf,
+
  0x52, 0xec, 0xb8, 0x82, 0x3e, 0xc8, 0x60, 0x5c, 0xd3, 0x29, 0x27, 0x57,
+
  0x09, 0x59, 0x29, 0x68, 0x82, 0x7c, 0xab, 0x56, 0xec, 0x2a, 0x22, 0x71,
+
  0x9c, 0x47, 0x4e, 0x6f, 0x86, 0x1d, 0xbe, 0x70, 0xab, 0x2f, 0x67, 0x18,
+
  0x3f, 0x0a, 0x7b, 0x4b, 0x8d, 0xf1, 0xc2, 0xe9, 0x8e, 0xfd, 0x74, 0xce,
+
  0x4b, 0xf5, 0x53, 0x36, 0x38, 0x2f, 0xd0, 0xa8, 0xeb, 0xf6, 0x07, 0xb9,
+
  0xde, 0xf6, 0x6e, 0x1f, 0x9d, 0x79, 0xa8, 0xb2, 0x4e, 0x72, 0x15, 0x99,
+
  0x51, 0xc6, 0xc7, 0xbb, 0x20, 0x3c, 0x76, 0xce, 0x97, 0xf1, 0x8f, 0x6f,
+
  0x8e, 0xe1, 0xd9, 0x57, 0xc7, 0x17, 0xc7, 0x6f, 0xdc, 0x8d, 0x3c, 0x2b,
+
  0xca, 0x29, 0x5c, 0x92, 0xb7, 0xc0, 0x51, 0xaa, 0xf9, 0x24, 0xbd, 0x45,
+
  0x3d, 0x04, 0x58, 0xd8, 0x65, 0x49, 0x12, 0x00, 0xd9, 0x4b, 0x92, 0xd1,
+
  0x82, 0x14, 0x8c, 0x02, 0x24, 0x5a, 0xe6, 0xc1, 0x5d, 0x58, 0x36, 0xba,
+
  0xfd, 0x55, 0xda, 0xa2, 0xf6, 0x82, 0x43, 0xc9, 0xbc, 0xae, 0x22, 0xe9,
+
  0x75, 0x9d, 0x04, 0x45, 0x3e, 0x0c, 0x11, 0x31, 0x81, 0x43, 0x4c, 0x49,
+
  0x84, 0xa0, 0x53, 0x36, 0xc9, 0xc6, 0xa0, 0xda, 0x26, 0xb0, 0x67, 0x7d,
+
  0xf3, 0x15, 0x2e, 0x0d, 0x45, 0x47, 0x49, 0x9c, 0xd7, 0x5a, 0x25, 0x1f,
+
  0x04, 0x4a, 0x0d, 0xac, 0x3b, 0xa0, 0xec, 0x0d, 0x1b, 0x00, 0x84, 0x35,
+
  0x22, 0x03, 0x5c, 0x26, 0xfe, 0xdc, 0x31, 0x79, 0xd9, 0x92, 0xcd, 0xf7,
+
  0xdd, 0xe4, 0x55, 0x37, 0xf9, 0xb1, 0x9b, 0x5c, 0x74, 0x93, 0xb3, 0x2d,
+
  0xf6, 0x6f, 0xed, 0xee, 0xec, 0x3d, 0x64, 0x4f, 0x1d, 0x7b, 0xe1, 0xd4,
+
  0xe0, 0xb6, 0xfb, 0x1e, 0x8f, 0x3a, 0x7f, 0x8b, 0x8d, 0x43, 0x83, 0xbb,
+
  0xaf, 0x54, 0x21, 0xdf, 0xdd, 0x79, 0xf8, 0xe4, 0xd1, 0xd7, 0x8f, 0xe5,
+
  0x1b, 0x2f, 0xc0, 0x85, 0x71, 0xc2, 0x63, 0x2a, 0xed, 0xf2, 0xa0, 0x41,
+
  0xa6, 0xc9, 0x67, 0x29, 0xea, 0x39, 0xaa, 0xec, 0x93, 0x5f, 0x29, 0x67,
+
  0xdf, 0x25, 0xdb, 0x31, 0xb9, 0x19, 0x15, 0xb8, 0xd0, 0x7f, 0x84, 0x1e,
+
  0x1e, 0xdd, 0x00, 0xbe, 0xb4, 0x90, 0x3e, 0xd1, 0x09, 0x31, 0x20, 0xdf,
+
  0x26, 0xca, 0x65, 0x24, 0x96, 0x58, 0x6f, 0xd4, 0x9d, 0xf6, 0xd6, 0x35,
+
  0x3b, 0x02, 0x0c, 0x8d, 0xa5, 0x7c, 0x1a, 0x4d, 0x73, 0x81, 0xd1, 0xd6,
+
  0x14, 0x04, 0x4d, 0xb2, 0x17, 0x15, 0x0b, 0xb8, 0x2e, 0xe1, 0x6b, 0x78,
+
  0x08, 0x04, 0x26, 0x7e, 0xcd, 0xc9, 0xd6, 0x53, 0xb6, 0x2d, 0x59, 0x43,
+
  0xd2, 0x0e, 0x0c, 0x10, 0xfe, 0x9c, 0x03, 0xb5, 0x64, 0x34, 0xa2, 0xd8,
+
  0x43, 0x4b, 0x0e, 0xca, 0x34, 0x69, 0xbe, 0x45, 0xf7, 0x22, 0x5d, 0xe8,
+
  0xa4, 0x1c, 0xc1, 0x5f, 0xa0, 0x62, 0xb0, 0xa1, 0x08, 0x88, 0xa5, 0x22,
+
  0x03, 0x2e, 0x09, 0xd7, 0x66, 0x1c, 0x07, 0x12, 0xa3, 0xab, 0x50, 0xd4,
+
  0x0b, 0xe9, 0x50, 0x75, 0xec, 0x42, 0x74, 0x3e, 0xd5, 0x0c, 0xc8, 0x62,
+
  0x1b, 0xde, 0x49, 0x36, 0xbf, 0xdb, 0xea, 0x2e, 0x69, 0x0a, 0x22, 0xc6,
+
  0xeb, 0xc1, 0xa5, 0x0d, 0x54, 0xc1, 0x8e, 0xf5, 0x65, 0x68, 0x17, 0xcf,
+
  0xae, 0xb0, 0x39, 0x5c, 0x33, 0x3a, 0x7a, 0x61, 0x7f, 0x82, 0x20, 0x38,
+
  0x87, 0x25, 0x64, 0xdf, 0xf3, 0xec, 0x56, 0x06, 0xec, 0x16, 0x45, 0x89,
+
  0x42, 0x77, 0xa9, 0xe9, 0xc6, 0xce, 0x38, 0x28, 0x22, 0x6c, 0xd2, 0x00,
+
  0xc4, 0x5d, 0x55, 0x87, 0x8a, 0xb1, 0x4c, 0xfa, 0x92, 0xa4, 0x60, 0x5a,
+
  0xc1, 0x2e, 0x39, 0x57, 0xe5, 0xf1, 0x1e, 0x3c, 0xad, 0x94, 0x0a, 0xed,
+
  0xc1, 0xf2, 0x82, 0x40, 0x46, 0x47, 0x42, 0xad, 0xff, 0x64, 0x95, 0x56,
+
  0x8a, 0x68, 0x10, 0x04, 0xef, 0x08, 0x08, 0x43, 0x70, 0x0a, 0x50, 0x56,
+
  0x75, 0x96, 0x5e, 0xd6, 0xaf, 0x2a, 0x58, 0x58, 0x3c, 0xef, 0x24, 0x21,
+
  0xa1, 0x79, 0xf9, 0xf8, 0xcd, 0xb9, 0x05, 0x63, 0xd0, 0xb2, 0x81, 0x18,
+
  0x05, 0x72, 0xfa, 0x65, 0x26, 0xae, 0xfb, 0x01, 0x1e, 0x4d, 0x3a, 0x1e,
+
  0x4f, 0xfa, 0xbb, 0x20, 0x9f, 0xf5, 0x75, 0xa2, 0x64, 0xcf, 0x02, 0x4d,
+
  0x2e, 0xc5, 0x1e, 0xe5, 0x2a, 0xe9, 0x92, 0x75, 0x1c, 0xed, 0xfb, 0xcc,
+
  0x5c, 0x4a, 0xf6, 0x41, 0x25, 0xa1, 0x51, 0xa7, 0x25, 0xa1, 0xd9, 0xfe,
+
  0x16, 0x3f, 0x18, 0x92, 0xa7, 0x2e, 0x21, 0xcb, 0x3b, 0x34, 0x1e, 0x5c,
+
  0xce, 0xc8, 0xeb, 0x33, 0xd0, 0xcd, 0xf2, 0x8c, 0x97, 0xc4, 0x7a, 0xe1,
+
  0x03, 0x6a, 0x2f, 0xd6, 0xe4, 0x9a, 0xc2, 0xd3, 0x93, 0xcf, 0x86, 0x93,
+
  0xc5, 0x28, 0xb3, 0xab, 0x0d, 0x3e, 0x40, 0xef, 0x27, 0x6f, 0xb0, 0x1c,
+
  0x3a, 0x90, 0x7a, 0x86, 0x57, 0xc1, 0x62, 0x3f, 0x06, 0x41, 0x48, 0x1f,
+
  0x67, 0x66, 0x3c, 0xab, 0xcb, 0x62, 0xb4, 0x18, 0xa2, 0x96, 0x74, 0x45,
+
  0x9e, 0x94, 0x86, 0x47, 0x3e, 0x9d, 0xdc, 0x20, 0x97, 0x98, 0xc0, 0xd0,
+
  0x66, 0xdc, 0x1a, 0x2d, 0x2e, 0xae, 0x44, 0x55, 0xf3, 0x5a, 0x69, 0x83,
+
  0x39, 0x59, 0x59, 0x45, 0x4d, 0xd0, 0xab, 0x44, 0x55, 0x7b, 0xfc, 0xa3,
+
  0x5f, 0x65, 0xdb, 0x38, 0xc6, 0x10, 0x69, 0xa1, 0x1a, 0x4d, 0x98, 0x03,
+
  0x9b, 0x64, 0x74, 0x19, 0x65, 0x1d, 0xd9, 0x3f, 0x41, 0x03, 0x81, 0x13,
+
  0x52, 0xdc, 0x98, 0x0e, 0x2d, 0xe3, 0x10, 0x95, 0x7c, 0x08, 0x63, 0xa4,
+
  0xd9, 0x1f, 0x2c, 0x75, 0x0b, 0xeb, 0x57, 0x6d, 0x43, 0x8b, 0xd8, 0x1e,
+
  0x79, 0x99, 0xbe, 0xfa, 0xea, 0x94, 0x22, 0x73, 0x44, 0xf9, 0x3b, 0x15,
+
  0x61, 0x9b, 0x2e, 0x5e, 0xd1, 0x35, 0xc8, 0x23, 0x8c, 0xe7, 0xbd, 0xbe,
+
  0x29, 0xc8, 0xb0, 0x4f, 0xbc, 0xf5, 0x15, 0x79, 0xf3, 0xc7, 0xde, 0x14,
+
  0x5f, 0x05, 0x4b, 0x71, 0x22, 0xb6, 0xdf, 0x74, 0x34, 0xca, 0x49, 0x47,
+
  0x9b, 0xa8, 0xd1, 0x97, 0x3c, 0x66, 0xc2, 0xf4, 0xa6, 0xbc, 0xf7, 0xe6,
+
  0x03, 0xae, 0xc9, 0x9b, 0x66, 0x67, 0x52, 0x46, 0xe1, 0xed, 0xe0, 0x23,
+
  0x32, 0x81, 0xb3, 0xc1, 0x18, 0x4e, 0x1d, 0x3a, 0x78, 0x47, 0x62, 0x7b,
+
  0x36, 0xef, 0x2e, 0xda, 0x75, 0xc4, 0xe5, 0xdb, 0x0f, 0x4b, 0x0c, 0xeb,
+
  0x05, 0x6d, 0x75, 0xd8, 0x3f, 0xd1, 0xc3, 0x76, 0x3a, 0xc8, 0xc5, 0xa6,
+
  0x89, 0x1e, 0x4f, 0x99, 0x03, 0xb0, 0x99, 0x51, 0xe2, 0x3d, 0x39, 0x5d,
+
  0x52, 0x58, 0xd1, 0xe3, 0xb1, 0xd0, 0xe8, 0x90, 0xa6, 0xe4, 0x8e, 0xe1,
+
  0x49, 0x64, 0x49, 0x54, 0x77, 0x7b, 0x5e, 0x2b, 0xe7, 0xaf, 0x78, 0xde,
+
  0x5d, 0xd8, 0x37, 0x7c, 0xf6, 0xf2, 0x8a, 0x9c, 0xfa, 0xf4, 0x70, 0x6e,
+
  0xde, 0x02, 0xe0, 0x71, 0xa0, 0xca, 0x64, 0x64, 0x2b, 0x13, 0x5b, 0x5d,
+
  0x51, 0xf6, 0x85, 0x34, 0x26, 0x05, 0xee, 0x32, 0xbb, 0xb7, 0x68, 0xdc,
+
  0x34, 0x6c, 0xe2, 0x1f, 0x12, 0x27, 0xe5, 0x43, 0x51, 0xa4, 0x3d, 0xda,
+
  0x85, 0xca, 0xba, 0x72, 0xe3, 0x8a, 0x86, 0xa5, 0xc2, 0x1e, 0xad, 0x8d,
+
  0xd2, 0x9e, 0x6e, 0x26, 0x9b, 0xce, 0xe0, 0x4a, 0xc3, 0xbd, 0x20, 0x5e,
+
  0xce, 0xe1, 0x28, 0x8d, 0x2d, 0x35, 0x57, 0x4e, 0x58, 0x1f, 0x32, 0xae,
+
  0x81, 0x1a, 0x98, 0x91, 0x85, 0x85, 0xf7, 0x9b, 0x9c, 0xa3, 0x7c, 0x63,
+
  0xb5, 0x78, 0xcb, 0xcc, 0xc5, 0x6a, 0x6e, 0x4e, 0x0a, 0x66, 0x12, 0x81,
+
  0x40, 0x47, 0xd4, 0x3b, 0x85, 0xdd, 0x61, 0x3f, 0x7e, 0xef, 0x3a, 0x41,
+
  0x46, 0x0e, 0x6c, 0x07, 0x37, 0xbb, 0x77, 0xfa, 0xf2, 0x5a, 0x59, 0xf2,
+
  0x0c, 0xf4, 0x89, 0x19, 0x7a, 0x68, 0xbb, 0xdc, 0xc8, 0xa0, 0x28, 0xe0,
+
  0xd4, 0x86, 0x69, 0x91, 0x10, 0x91, 0xcd, 0x90, 0x91, 0xaa, 0xab, 0x08,
+
  0x2e, 0x16, 0xf6, 0x25, 0x61, 0xcb, 0xb7, 0x68, 0x97, 0x4e, 0x2f, 0x53,
+
  0x71, 0x6e, 0x09, 0xcf, 0x0d, 0x8f, 0xce, 0x0a, 0x79, 0x9a, 0x36, 0x88,
+
  0xe2, 0x13, 0xba, 0x8e, 0x7f, 0xb1, 0x53, 0x27, 0x98, 0xae, 0xc4, 0x53,
+
  0x84, 0xf6, 0x03, 0xf1, 0x86, 0xa0, 0x93, 0x27, 0x58, 0x78, 0xa1, 0xb9,
+
  0x0e, 0xb4, 0xf4, 0xa2, 0xb8, 0x41, 0xd5, 0xbd, 0xcb, 0x7e, 0xa1, 0xbc,
+
  0x12, 0x67, 0x3f, 0x6a, 0xad, 0xa0, 0x9f, 0xc1, 0x3a, 0x52, 0xd4, 0x08,
+
  0x7d, 0x48, 0x46, 0x4b, 0x3c, 0xfe, 0x8e, 0xc5, 0x4b, 0x5f, 0xb6, 0x85,
+
  0x63, 0x6f, 0xa9, 0x22, 0xa3, 0x3c, 0x0c, 0x1c, 0x77, 0x22, 0xaf, 0x68,
+
  0x9b, 0xba, 0x2c, 0x24, 0x57, 0xea, 0x10, 0x23, 0xe3, 0x55, 0x89, 0x07,
+
  0xae, 0xe6, 0x93, 0x84, 0xf3, 0xe1, 0xe3, 0x47, 0x4b, 0xa1, 0x66, 0x07,
+
  0x16, 0x9c, 0xdc, 0x7a, 0xf2, 0x2b, 0x5d, 0xd8, 0xc8, 0x61, 0x36, 0xaf,
+
  0xcd, 0x1b, 0x1d, 0xd1, 0x10, 0xae, 0x38, 0x3a, 0x37, 0xe1, 0xda, 0x4c,
+
  0x92, 0x1f, 0xe9, 0x17, 0x7d, 0x40, 0xc8, 0xb5, 0x4e, 0xd9, 0x1d, 0x96,
+
  0x97, 0x4a, 0x53, 0x38, 0x06, 0xd4, 0x29, 0x48, 0x33, 0x45, 0x63, 0x1f,
+
  0x28, 0x3e, 0x59, 0x29, 0xb3, 0x70, 0xc7, 0x1a, 0xc9, 0x7f, 0x32, 0x11,
+
  0x56, 0x18, 0x28, 0x45, 0x2e, 0x22, 0x8c, 0xfd, 0xa1, 0xfe, 0x0e, 0xd8,
+
  0xef, 0x89, 0x0e, 0x91, 0x1e, 0xde, 0x2e, 0xb7, 0x5d, 0xfe, 0x40, 0x02,
+
  0xe1, 0xba, 0xe2, 0x17, 0xd5, 0x68, 0xa7, 0x9e, 0x51, 0x70, 0xd7, 0x7f,
+
  0x3a, 0x4d, 0x3f, 0x74, 0xfd, 0x63, 0xdd, 0xc6, 0x1d, 0x4e, 0x5f, 0xa2,
+
  0x88, 0xab, 0xed, 0xe1, 0x2e, 0xf5, 0xc8, 0xee, 0x4d, 0x5f, 0x81, 0x32,
+
  0x02, 0x7f, 0xc8, 0xaf, 0xb7, 0x40, 0x54, 0x22, 0xd0, 0xd0, 0x27, 0x35,
+
  0xc6, 0x89, 0xf4, 0xd2, 0x6a, 0x98, 0xe7, 0xee, 0x6f, 0x10, 0x8d, 0xc7,
+
  0xf9, 0xa5, 0xb6, 0xc7, 0x9f, 0xe5, 0x23, 0xe4, 0x52, 0xf2, 0x07, 0x4a,
+
  0xe4, 0xf6, 0x17, 0x1f, 0x8d, 0x1e, 0x7a, 0x19, 0x8b, 0x0a, 0x4f, 0xf7,
+
  0xe1, 0xcb, 0x97, 0x49, 0xc4, 0xe0, 0x7b, 0xbd, 0x74, 0x50, 0xe1, 0xb3,
+
  0x75, 0x6f, 0x31, 0xcb, 0x3f, 0xf4, 0x2a, 0xd6, 0x57, 0x9e, 0xce, 0xd3,
+
  0xfa, 0xea, 0xbb, 0xaf, 0x1e, 0xe0, 0x23, 0x9b, 0x28, 0xd7, 0x6d, 0x69,
+
  0xf0, 0x92, 0x05, 0x5a, 0xe0, 0x25, 0x28, 0xaf, 0x26, 0xc9, 0x5b, 0x78,
+
  0x17, 0x58, 0xc3, 0x14, 0xf7, 0x8d, 0x9b, 0xe8, 0x9a, 0xb8, 0x83, 0x3e,
+
  0x55, 0x6a, 0x28, 0x98, 0xc2, 0x80, 0x0b, 0xd4, 0xa8, 0xec, 0xf4, 0x93,
+
  0xd7, 0x45, 0x9d, 0x1d, 0xd0, 0xdf, 0x48, 0x38, 0x44, 0xc6, 0x62, 0xf0,
+
  0xc2, 0x11, 0xb0, 0xf5, 0x1f, 0xc5, 0x66, 0xe9, 0x89, 0x1b, 0x92, 0x41,
+
  0x36, 0x1d, 0xbc, 0xdf, 0x77, 0xba, 0xc9, 0x15, 0x9f, 0x1b, 0xee, 0x85,
+
  0x67, 0x61, 0x71, 0x40, 0xd8, 0x3a, 0x89, 0xc4, 0xc0, 0xc0, 0xb8, 0x21,
+
  0x8e, 0x22, 0xa0, 0xe3, 0x25, 0x66, 0x20, 0x73, 0xec, 0xd3, 0x55, 0xb4,
+
  0x62, 0x75, 0x24, 0xfa, 0x91, 0x2e, 0x29, 0x19, 0x91, 0x04, 0x81, 0xe0,
+
  0xea, 0x57, 0x5d, 0x11, 0x05, 0x2a, 0x72, 0xac, 0xa9, 0x43, 0x90, 0x0f,
+
  0x1a, 0xec, 0xc1, 0x03, 0xef, 0xf0, 0xe0, 0xbf, 0x24, 0x9e, 0xb6, 0xbd,
+
  0x37, 0xfe, 0x87, 0x96, 0xa3, 0xc5, 0x21, 0x20, 0xed, 0x9d, 0x67, 0x19,
+
  0x0b, 0x85, 0x3d, 0xff, 0x6e, 0xdf, 0x36, 0x79, 0x52, 0xf7, 0xaa, 0xeb,
+
  0x61, 0xf2, 0x14, 0x85, 0x6a, 0x64, 0x40, 0x7e, 0x6f, 0xcf, 0xb7, 0x92,
+
  0xe3, 0x59, 0x10, 0x24, 0xf5, 0x59, 0xe6, 0x01, 0x6c, 0x69, 0xa7, 0x10,
+
  0x0b, 0x79, 0x15, 0x83, 0x4e, 0x73, 0x51, 0xfb, 0xf1, 0x5e, 0xa7, 0x86,
+
  0xc8, 0xe1, 0x4d, 0x1a, 0xbb, 0xbc, 0x0d, 0xdc, 0x7b, 0x28, 0x2f, 0x75,
+
  0x25, 0x70, 0x8b, 0xcd, 0xdb, 0xb4, 0x0a, 0xc9, 0x21, 0x1d, 0x5f, 0xbc,
+
  0x29, 0x55, 0x50, 0x95, 0x95, 0x54, 0xd5, 0x90, 0x17, 0x91, 0x1b, 0x81,
+
  0xb5, 0x43, 0x8b, 0xfb, 0xc8, 0x94, 0x23, 0x1b, 0x0a, 0x33, 0x23, 0xd0,
+
  0xc0, 0x80, 0x7d, 0x5d, 0xa1, 0x0a, 0x34, 0x80, 0x6b, 0x8d, 0x1b, 0x9a,
+
  0x16, 0x23, 0x8a, 0x9c, 0xd3, 0x15, 0x3f, 0xb7, 0x80, 0x99, 0x4e, 0x27,
+
  0x09, 0x2d, 0x6c, 0x62, 0xf8, 0x11, 0x86, 0xc1, 0xcc, 0x2e, 0xeb, 0xab,
+
  0x2d, 0x9e, 0x13, 0x45, 0x8a, 0xa8, 0x3d, 0x0c, 0x7a, 0x36, 0x97, 0x21,
+
  0x37, 0x8c, 0xde, 0x24, 0xda, 0xb0, 0x5f, 0x17, 0x55, 0x4d, 0x61, 0x7f,
+
  0xb2, 0x74, 0x32, 0xda, 0x19, 0x70, 0xaa, 0x69, 0x51, 0xde, 0x6a, 0xcf,
+
  0xb4, 0x7e, 0x30, 0x07, 0xe1, 0x90, 0x42, 0x09, 0x4d, 0x9a, 0xa1, 0x16,
+
  0xd9, 0xa2, 0x10, 0x9c, 0x5f, 0x6c, 0x24, 0x9b, 0x4c, 0x64, 0x6d, 0x64,
+
  0xea, 0x15, 0x59, 0x9f, 0x03, 0x95, 0x71, 0x8c, 0x9e, 0x34, 0x4b, 0xd7,
+
  0x3f, 0x0f, 0xba, 0xef, 0x76, 0x5e, 0xbd, 0x34, 0x72, 0x12, 0x9b, 0xfd,
+
  0x73, 0x68, 0xa8, 0xb7, 0xa0, 0xde, 0x4d, 0xa8, 0xd2, 0x2a, 0xfc, 0x1f,
+
  0xa3, 0x7d, 0xee, 0x20, 0xcc, 0x43, 0x75, 0x3f, 0x7d, 0xdd, 0x7f, 0xfc,
+
  0x10, 0x55, 0x07, 0x47, 0xa9, 0xc0, 0x27, 0x8b, 0xc9, 0xb5, 0x72, 0x29,
+
  0x89, 0xab, 0xec, 0xd5, 0x45, 0x20, 0xdb, 0xd9, 0x6d, 0xba, 0x00, 0xdd,
+
  0xc5, 0xf3, 0xa1, 0xe7, 0xf9, 0x25, 0x3a, 0xf2, 0x48, 0xce, 0x5a, 0x60,
+
  0x30, 0x6f, 0x9d, 0x4b, 0xe8, 0x23, 0x7b, 0x9e, 0xf1, 0xd3, 0x02, 0xa5,
+
  0x7d, 0xf4, 0x01, 0x02, 0x5f, 0x27, 0xf3, 0x8c, 0xdc, 0xc4, 0x4a, 0x19,
+
  0x74, 0x32, 0x87, 0xd4, 0xcc, 0x2c, 0x13, 0x65, 0x0c, 0x0d, 0xfb, 0x09,
+
  0x46, 0xc7, 0xc1, 0x7d, 0x96, 0xe6, 0x53, 0x22, 0x6f, 0x31, 0x95, 0x69,
+
  0x3c, 0x67, 0xc5, 0x31, 0x9a, 0x20, 0xce, 0x73, 0x43, 0x1c, 0x38, 0xc1,
+
  0x41, 0xa7, 0x48, 0xca, 0xa2, 0xee, 0x4a, 0x0c, 0xe6, 0x55, 0x36, 0x7c,
+
  0x1f, 0x24, 0x72, 0x55, 0x1f, 0x7b, 0x57, 0xc0, 0x69, 0x28, 0x24, 0x15,
+
  0x3e, 0x5f, 0x54, 0xdc, 0xd0, 0xbc, 0xa8, 0xaa, 0x1c, 0xc3, 0x9a, 0xf2,
+
  0x19, 0x28, 0x1d, 0x6a, 0x30, 0xfb, 0x00, 0x67, 0x41, 0x39, 0x65, 0x02,
+
  0x4c, 0x77, 0x36, 0x02, 0xae, 0x9e, 0xcf, 0x65, 0x34, 0x81, 0x9a, 0x58,
+
  0xd0, 0x7a, 0xa0, 0xfe, 0x37, 0x51, 0x31, 0x2b, 0xb1, 0xa2, 0xa6, 0x41,
+
  0xc5, 0x69, 0x5d, 0xaf, 0xae, 0xa8, 0x2f, 0x16, 0xa3, 0x41, 0x0d, 0x8d,
+
  0x0a, 0x0d, 0x43, 0x1a, 0xa4, 0x55, 0x3e, 0xc4, 0x1b, 0x65, 0x94, 0x83,
+
  0x1a, 0x54, 0xe3, 0x6f, 0xb3, 0x7a, 0x32, 0xed, 0xca, 0xae, 0xcd, 0xb2,
+
  0xcb, 0xa2, 0xc6, 0x9b, 0x51, 0xa9, 0x9d, 0x0d, 0xec, 0xb6, 0x77, 0x6a,
+
  0x1a, 0x8e, 0x84, 0x5a, 0x31, 0x99, 0x60, 0x2f, 0x62, 0x39, 0x93, 0x00,
+
  0x5c, 0x32, 0xcf, 0x75, 0x85, 0xa7, 0xe6, 0x28, 0xcd, 0xc1, 0xc1, 0x46,
+
  0x79, 0xdb, 0x34, 0x09, 0x96, 0x71, 0x59, 0xc4, 0x67, 0x8f, 0x6c, 0x7d,
+
  0x93, 0xcb, 0x4d, 0xc7, 0xb1, 0xdd, 0xec, 0x56, 0x9b, 0x60, 0x1c, 0x80,
+
  0xec, 0x37, 0x1e, 0x53, 0xd4, 0x08, 0x34, 0x32, 0xa5, 0xcc, 0x40, 0x3e,
+
  0x18, 0xb1, 0xb2, 0x41, 0x9e, 0x19, 0x32, 0x4c, 0xc8, 0xed, 0x90, 0x96,
+
  0x68, 0x40, 0x21, 0xd7, 0x4e, 0xb0, 0x8a, 0xcb, 0x7e, 0xe3, 0x18, 0x79,
+
  0x88, 0xf4, 0x9e, 0xd8, 0x11, 0x82, 0xf9, 0x60, 0x2c, 0x61, 0xf3, 0xb2,
+
  0x10, 0xc4, 0xb1, 0x80, 0xeb, 0x61, 0xd0, 0x8c, 0xac, 0xe6, 0x82, 0x59,
+
  0x2a, 0x07, 0x71, 0xc6, 0x0b, 0x15, 0xc2, 0x96, 0xe9, 0x40, 0x22, 0x3f,
+
  0xe3, 0x86, 0xd0, 0xdf, 0x47, 0xb4, 0x90, 0x8d, 0xc7, 0x70, 0x40, 0xee,
+
  0xb9, 0x42, 0xa4, 0x35, 0xee, 0x0a, 0xf6, 0xf8, 0x60, 0x7e, 0x33, 0x5a,
+
  0xef, 0xe2, 0x80, 0x2b, 0xed, 0xc3, 0xad, 0x36, 0xd0, 0xd5, 0xad, 0x97,
+
  0x7d, 0xe6, 0xdd, 0xd7, 0x93, 0x99, 0xe2, 0xd7, 0xe9, 0x1c, 0x9d, 0x33,
+
  0x72, 0x38, 0xd1, 0xae, 0x82, 0x46, 0xe9, 0x2d, 0x8d, 0xf9, 0xcb, 0x34,
+
  0xc8, 0x5b, 0x96, 0xa9, 0x9b, 0x44, 0x5c, 0x10, 0xb9, 0x68, 0x25, 0xae,
+
  0x16, 0xdf, 0x90, 0x1a, 0x56, 0xe0, 0xd2, 0x86, 0xbb, 0x8f, 0xfd, 0xfe,
+
  0x8e, 0xaa, 0xd1, 0x38, 0xaa, 0xb1, 0xb5, 0x6a, 0x2c, 0x70, 0xe7, 0x97,
+
  0x5e, 0x50, 0x0a, 0xf6, 0xb1, 0x58, 0x5d, 0xb5, 0xba, 0x0d, 0x59, 0x25,
+
  0x64, 0xc9, 0xc3, 0xc2, 0x01, 0xe0, 0x8b, 0xf1, 0x24, 0xbd, 0xc4, 0x07,
+
  0xf2, 0xcb, 0x59, 0x21, 0x19, 0x15, 0x2a, 0x6d, 0xc0, 0x35, 0x41, 0xf6,
+
  0x76, 0xb6, 0x10, 0x57, 0xc9, 0x26, 0x9b, 0x18, 0x70, 0x0c, 0xa7, 0x30,
+
  0xf2, 0xf3, 0xf3, 0x17, 0x5b, 0xfd, 0x78, 0x4b, 0x69, 0x42, 0xc1, 0x8f,
+
  0x2c, 0x53, 0xa3, 0x7d, 0xc5, 0x6b, 0xaa, 0xb9, 0xa3, 0xc9, 0x33, 0xb1,
+
  0xe4, 0xe4, 0x2a, 0x5f, 0x0b, 0xb9, 0x80, 0x36, 0xc0, 0x6d, 0xdd, 0xbd,
+
  0xe9, 0xbc, 0xc2, 0x3d, 0x5a, 0x2d, 0xf6, 0x6e, 0xda, 0x18, 0xc6, 0x4b,
+
  0x91, 0x9a, 0xcb, 0x1b, 0x4f, 0xb1, 0xa2, 0x81, 0x0b, 0xc3, 0xe2, 0x2e,
+
  0x40, 0xf2, 0x74, 0xd2, 0xc3, 0x4d, 0xd5, 0xab, 0xf2, 0xcb, 0xeb, 0x87,
+
  0x20, 0x51, 0xb1, 0xd8, 0x53, 0xee, 0xfe, 0xed, 0x60, 0x5e, 0x5e, 0x8f,
+
  0xca, 0xbd, 0xbf, 0x1d, 0x94, 0xd9, 0xe5, 0xdf, 0x0e, 0xaa, 0xf2, 0xfa,
+
  0x97, 0x5f, 0x7e, 0x89, 0x25, 0x46, 0x38, 0x00, 0xc9, 0xe1, 0x4f, 0xe7,
+
  0xc9, 0x9f, 0x1f, 0x52, 0x58, 0x38, 0xa5, 0x9d, 0x34, 0x79, 0x90, 0x84,
+
  0xbd, 0xe9, 0xad, 0xaf, 0xd3, 0x14, 0x13, 0x32, 0x75, 0x15, 0xe4, 0x37,
+
  0x0e, 0xdd, 0xd6, 0xb0, 0x19, 0x0d, 0x06, 0x67, 0x5a, 0x1b, 0xdc, 0xaa,
+
  0xf4, 0x72, 0x59, 0x00, 0x7d, 0x5c, 0x4d, 0xb9, 0x21, 0x3a, 0xc7, 0xb4,
+
  0xe7, 0x64, 0x09, 0x5f, 0xd4, 0x97, 0xc4, 0xad, 0x1b, 0xa3, 0x10, 0x9e,
+
  0xec, 0x7b, 0x87, 0x59, 0x91, 0x06, 0xa8, 0x7d, 0x93, 0x76, 0xae, 0x7d,
+
  0x33, 0xd9, 0x04, 0x31, 0x28, 0x05, 0xd9, 0x06, 0xc4, 0xfe, 0x74, 0x0e,
+
  0x9c, 0x94, 0x34, 0x8d, 0x94, 0x1b, 0xa2, 0xd8, 0x15, 0xbc, 0xe5, 0x16,
+
  0xe5, 0x90, 0x6c, 0x68, 0xa0, 0x9b, 0x48, 0x02, 0xc0, 0x26, 0x77, 0xd0,
+
  0xc3, 0x18, 0x93, 0x2d, 0x19, 0xa7, 0x5c, 0x14, 0x97, 0x3e, 0x8c, 0x51,
+
  0x1a, 0x9a, 0xe6, 0x75, 0xad, 0x41, 0xb2, 0xf8, 0x18, 0x6c, 0x2d, 0x75,
+
  0xef, 0x87, 0x4c, 0xf4, 0x49, 0xbc, 0xd0, 0x2f, 0x18, 0x59, 0x23, 0xfc,
+
  0x92, 0xe9, 0xb8, 0x59, 0xd6, 0x49, 0x2c, 0x88, 0x48, 0xae, 0x22, 0x35,
+
  0xbe, 0x60, 0x64, 0x20, 0x8a, 0x67, 0x93, 0x62, 0x01, 0x94, 0xbc, 0x29,
+
  0x6d, 0x47, 0xe3, 0x15, 0xe5, 0x56, 0x7a, 0xbd, 0x6b, 0xc8, 0x1a, 0x2a,
+
  0x28, 0x83, 0x4e, 0x44, 0xb8, 0x36, 0xba, 0x8a, 0x44, 0x6a, 0x13, 0xa7,
+
  0xdd, 0xb1, 0xf9, 0x0d, 0x32, 0xb5, 0x75, 0xd2, 0x81, 0x5f, 0x0f, 0xd2,
+
  0xe9, 0x3f, 0x0e, 0x16, 0x15, 0x28, 0x7d, 0x55, 0xdd, 0xdb, 0x3b, 0xc8,
+
  0xaa, 0x8e, 0x72, 0xca, 0xce, 0xfb, 0xec, 0xf6, 0x80, 0x63, 0x73, 0x3a,
+
  0xc9, 0xcf, 0x5f, 0x3d, 0x80, 0x46, 0xd6, 0x92, 0x6a, 0xbe, 0x7e, 0xd4,
+
  0xdf, 0x89, 0xa4, 0x1a, 0xcf, 0x35, 0x89, 0xdd, 0xeb, 0x31, 0xa2, 0x2f,
+
  0x96, 0x4e, 0x08, 0x59, 0xcd, 0x93, 0x1f, 0xf8, 0xa5, 0x98, 0x2c, 0x35,
+
  0xb8, 0x9f, 0xa8, 0x82, 0xf8, 0x1b, 0x26, 0x15, 0x49, 0x68, 0xb2, 0xdc,
+
  0x6d, 0x2c, 0xf3, 0xe4, 0xac, 0xb6, 0x6b, 0x0c, 0x22, 0xbb, 0xc6, 0x1b,
+
  0x22, 0xe7, 0x82, 0xdc, 0x45, 0xb4, 0x01, 0x18, 0x26, 0x02, 0xfc, 0x98,
+
  0xe3, 0x45, 0xb8, 0x21, 0x33, 0x58, 0xe4, 0xec, 0x93, 0x20, 0x4e, 0x5b,
+
  0x4a, 0x32, 0x16, 0xaa, 0x5a, 0xd7, 0x79, 0xb1, 0xa8, 0x26, 0xb7, 0x12,
+
  0xa7, 0x27, 0xb6, 0x0c, 0x26, 0x28, 0x32, 0x1b, 0x24, 0x42, 0xf3, 0x21,
+
  0x0b, 0xa1, 0x39, 0x1b, 0x19, 0x2b, 0xd0, 0xd2, 0x02, 0x6d, 0x3f, 0x28,
+
  0xae, 0xab, 0x2c, 0xe1, 0xc4, 0x0b, 0xf2, 0x0d, 0xf2, 0x82, 0x99, 0x6c,
+
  0xb1, 0xb5, 0xc6, 0x9d, 0xea, 0xf9, 0x2f, 0x6f, 0x41, 0xe3, 0x42, 0x25,
+
  0xfd, 0x60, 0x56, 0xa8, 0xbe, 0xb2, 0xe6, 0x85, 0xba, 0x20, 0xb2, 0x3e,
+
  0x98, 0xa7, 0x55, 0x85, 0x21, 0x27, 0xd6, 0xf8, 0x47, 0xdc, 0xa8, 0xf4,
+
  0x82, 0x51, 0xc1, 0x30, 0xed, 0x71, 0x24, 0x88, 0x50, 0xc2, 0xc5, 0xcb,
+
  0x73, 0x26, 0x04, 0xdc, 0xc0, 0xa3, 0x43, 0x38, 0xab, 0x14, 0xcc, 0x68,
+
  0x27, 0x5d, 0xc2, 0x46, 0x44, 0xc8, 0x40, 0x5f, 0xc8, 0x2d, 0xdc, 0x86,
+
  0x53, 0xda, 0x23, 0xd8, 0x22, 0x50, 0x69, 0x82, 0x72, 0x30, 0xcf, 0x70,
+
  0x25, 0x7e, 0x70, 0xfe, 0x29, 0x9a, 0x44, 0xf0, 0x0b, 0xc1, 0x52, 0x21,
+
  0x0b, 0xb5, 0x6e, 0xc2, 0x91, 0xc3, 0xab, 0xda, 0xe4, 0xae, 0xcb, 0x09,
+
  0x2b, 0x1a, 0x14, 0x5e, 0xa4, 0x11, 0x0b, 0x2e, 0xe6, 0x45, 0x35, 0x79,
+
  0x47, 0x61, 0xb5, 0xb8, 0x64, 0xc7, 0x98, 0xdd, 0x12, 0x46, 0xd4, 0x1c,
+
  0xf6, 0x06, 0xbc, 0x71, 0x33, 0x83, 0xf3, 0x0b, 0xa3, 0x0b, 0xbc, 0x2b,
+
  0xb4, 0xc3, 0x2e, 0x50, 0xd2, 0x61, 0x78, 0xe8, 0xb3, 0x10, 0x4a, 0x43,
+
  0x5d, 0x63, 0x10, 0x08, 0x19, 0x10, 0x89, 0x58, 0xf9, 0xfa, 0x7d, 0x29,
+
  0x12, 0xe3, 0x4d, 0x31, 0x19, 0xc3, 0x5f, 0x4b, 0xa1, 0xef, 0x64, 0xad,
+
  0xfe, 0x71, 0xb6, 0xc0, 0x48, 0x05, 0xff, 0xdd, 0x23, 0x0a, 0x8b, 0x27,
+
  0x79, 0x85, 0x05, 0x11, 0x65, 0x82, 0xda, 0x25, 0x9a, 0xee, 0x7d, 0x7f,
+
  0xe7, 0xe8, 0x0c, 0x98, 0xa1, 0xa1, 0x87, 0x45, 0x06, 0x4e, 0xa5, 0x4c,
+
  0x38, 0xd7, 0x6b, 0x42, 0x89, 0x73, 0x1a, 0x30, 0x60, 0x4b, 0x20, 0x09,
+
  0x5e, 0xb4, 0xf2, 0x6e, 0x3f, 0x75, 0x0b, 0x62, 0xc2, 0x35, 0xe2, 0xf8,
+
  0x3c, 0xb2, 0x83, 0x35, 0x77, 0x37, 0x8b, 0x0c, 0xbd, 0xae, 0xc1, 0xf1,
+
  0x9e, 0xf4, 0xf7, 0x90, 0xe1, 0x79, 0x32, 0x07, 0xbd, 0x37, 0x2b, 0xd9,
+
  0x6a, 0x35, 0x4c, 0xd1, 0x50, 0x41, 0xea, 0xc2, 0x62, 0x3a, 0xc7, 0x96,
+
  0xb3, 0xe9, 0x40, 0xd6, 0x45, 0x8f, 0x35, 0x06, 0xd2, 0xa3, 0xf2, 0xe5,
+
  0x8e, 0x04, 0xbe, 0xcf, 0xc6, 0x89, 0xef, 0xda, 0x8e, 0x85, 0x4b, 0x4c,
+
  0xc4, 0x27, 0x51, 0x99, 0x41, 0xc3, 0x24, 0x91, 0x68, 0x38, 0x07, 0xee,
+
  0x08, 0x90, 0xef, 0x58, 0x74, 0x34, 0x78, 0x06, 0x35, 0x08, 0x14, 0x6c,
+
  0x70, 0x75, 0x8c, 0x2b, 0xc0, 0x0e, 0xb8, 0xc6, 0x28, 0x69, 0x2f, 0xf3,
+
  0x9f, 0x6c, 0x56, 0x5b, 0xac, 0x3b, 0x70, 0x43, 0x03, 0xd2, 0xec, 0xcf,
+
  0x8e, 0x5f, 0x25, 0xec, 0x4d, 0x42, 0x09, 0x52, 0x5c, 0xf0, 0x1a, 0x87,
+
  0x18, 0xd1, 0x4a, 0x88, 0x08, 0xe7, 0x31, 0x8c, 0x95, 0xaf, 0x21, 0xe9,
+
  0x90, 0xe3, 0xb8, 0xc1, 0xa1, 0xeb, 0xdb, 0x39, 0xeb, 0xac, 0x16, 0x94,
+
  0x02, 0x5a, 0x36, 0x99, 0xb2, 0x30, 0x70, 0x52, 0xda, 0xc2, 0xa6, 0x74,
+
  0x33, 0x39, 0x77, 0x0f, 0xd4, 0xaa, 0xcb, 0x59, 0xfe, 0x0f, 0xa1, 0xae,
+
  0xd6, 0x30, 0x70, 0xe4, 0x60, 0xa3, 0x64, 0xe3, 0xe8, 0xed, 0x9b, 0x97,
+
  0xef, 0x8e, 0x0e, 0xdf, 0xfd, 0xf0, 0xf6, 0xf5, 0xb3, 0x97, 0xc7, 0x1b,
+
  0x94, 0x3c, 0xc1, 0x5a, 0x23, 0x89, 0x37, 0xc8, 0xd8, 0x25, 0xa6, 0x8a,
+
  0x62, 0x7a, 0x28, 0xc9, 0x00, 0x45, 0x48, 0xd1, 0xe0, 0x02, 0xf1, 0x8b,
+
  0x4a, 0x2d, 0x9e, 0x68, 0x0a, 0xbe, 0x14, 0xe1, 0x01, 0x8d, 0x54, 0x1c,
+
  0x12, 0x4d, 0xbf, 0xb2, 0x84, 0x01, 0x0b, 0x4d, 0xeb, 0x0a, 0xeb, 0x83,
+
  0xa6, 0x12, 0xcd, 0xbe, 0x90, 0x99, 0xeb, 0x3d, 0x53, 0x49, 0x08, 0xfe,
+
  0x83, 0x28, 0x5f, 0x42, 0xa6, 0xba, 0x29, 0x27, 0x72, 0x4b, 0x35, 0x06,
+
  0xaf, 0xe3, 0x27, 0x14, 0x4b, 0x25, 0x41, 0x9a, 0xd0, 0xb5, 0xf6, 0x57,
+
  0xc9, 0xca, 0xf3, 0xfc, 0xb9, 0xa1, 0x0d, 0x7c, 0x1f, 0xc9, 0x52, 0xc6,
+
  0x32, 0x2c, 0xeb, 0x8d, 0xae, 0x26, 0x36, 0x68, 0x1a, 0x2c, 0xa5, 0x72,
+
  0x58, 0xa0, 0x56, 0xca, 0x6a, 0x4a, 0x3f, 0xfb, 0x90, 0xb9, 0xdb, 0x49,
+
  0xf3, 0x35, 0x8e, 0x16, 0x25, 0x5d, 0x76, 0x3f, 0x01, 0xe3, 0x22, 0x19,
+
  0xeb, 0x59, 0xe0, 0x97, 0x94, 0x88, 0x48, 0x4e, 0xff, 0x5b, 0x34, 0x4b,
+
  0x53, 0xa6, 0x6b, 0xca, 0xfe, 0x1b, 0x74, 0xeb, 0x72, 0x43, 0x67, 0x87,
+
  0x17, 0x2f, 0xa2, 0x1d, 0x25, 0x1f, 0xeb, 0x4e, 0x22, 0x81, 0xbb, 0x38,
+
  0x21, 0x0a, 0x7c, 0x23, 0xcb, 0x6e, 0xb8, 0x78, 0x9d, 0xfb, 0x57, 0x1c,
+
  0x83, 0x55, 0x86, 0xe9, 0x64, 0x4a, 0xac, 0x57, 0x29, 0x5c, 0xd8, 0x68,
+
  0x5b, 0x26, 0xc5, 0x18, 0x7e, 0x4a, 0xe6, 0x92, 0x36, 0x40, 0x2d, 0xa0,
+
  0x6c, 0x0a, 0xa2, 0xe1, 0xb0, 0xd6, 0xb7, 0xf5, 0x73, 0xb3, 0x95, 0xa0,
+
  0xdf, 0x5c, 0x2e, 0x70, 0x60, 0xdd, 0xb6, 0x28, 0xb6, 0x2f, 0xf9, 0x29,
+
  0xe7, 0xa6, 0x4f, 0xd3, 0x21, 0xfc, 0x46, 0xac, 0x6e, 0x8b, 0xf4, 0xea,
+
  0xf8, 0x4c, 0x30, 0x67, 0x02, 0xe1, 0xed, 0x9c, 0xcd, 0x2e, 0x1c, 0xc8,
+
  0x88, 0xb6, 0x95, 0xae, 0x63, 0x94, 0xb5, 0xa7, 0x0b, 0x12, 0x09, 0x43,
+
  0x40, 0xd9, 0x98, 0x23, 0xe3, 0x87, 0xef, 0x6f, 0xd2, 0x72, 0xc4, 0x56,
+
  0x43, 0x18, 0xd5, 0x20, 0x9f, 0xe4, 0xb5, 0x7a, 0xb8, 0x59, 0xec, 0xa4,
+
  0x69, 0xe2, 0x2d, 0x90, 0xcd, 0x2e, 0xf3, 0x19, 0x4a, 0x8e, 0x78, 0x6d,
+
  0xe5, 0x91, 0xf5, 0x57, 0x72, 0x53, 0x4c, 0x7b, 0x74, 0xb6, 0x14, 0xb3,
+
  0x0d, 0x53, 0xbe, 0x06, 0x27, 0x8b, 0x33, 0xcd, 0x11, 0xc5, 0x8b, 0x75,
+
  0xc1, 0xf1, 0x0d, 0xda, 0x61, 0x16, 0x84, 0xf9, 0x62, 0xe6, 0x15, 0x47,
+
  0xa1, 0x84, 0x1b, 0xfa, 0x63, 0x76, 0x0b, 0x27, 0x07, 0xe9, 0x25, 0xe6,
+
  0x54, 0xc4, 0xaa, 0xba, 0xe2, 0x8b, 0xe6, 0x30, 0xf4, 0xab, 0x4c, 0x62,
+
  0x07, 0x48, 0x01, 0x55, 0x79, 0x49, 0xed, 0xe7, 0xfc, 0xae, 0xda, 0xd0,
+
  0xf1, 0x6d, 0xd8, 0x12, 0xcf, 0x0f, 0xa9, 0x1b, 0xdb, 0x1a, 0x3d, 0xaf,
+
  0xb2, 0x29, 0x0d, 0xa3, 0x51, 0xbc, 0xb2, 0xf6, 0x6c, 0xee, 0xee, 0xdb,
+
  0xaf, 0x65, 0x45, 0x4b, 0x71, 0xf0, 0x87, 0xab, 0xf3, 0xeb, 0xfe, 0xe3,
+
  0x1d, 0xba, 0x3b, 0xef, 0x6e, 0xd5, 0xf6, 0x4b, 0xa8, 0x3b, 0xda, 0x33,
+
  0x76, 0x9a, 0x36, 0x77, 0xeb, 0x0f, 0xa6, 0xec, 0x33, 0x53, 0xf2, 0x56,
+
  0x23, 0x0c, 0x1d, 0x51, 0xf3, 0xa5, 0xdd, 0xd1, 0x1b, 0x89, 0x4a, 0x4c,
+
  0xe4, 0x7d, 0x2e, 0x0b, 0xb4, 0x35, 0x45, 0xfb, 0x03, 0x4b, 0x41, 0xcb,
+
  0x6d, 0xec, 0x38, 0xb0, 0x62, 0x9d, 0xf6, 0x16, 0xdb, 0x82, 0xec, 0x26,
+
  0x8a, 0xb4, 0x11, 0xb5, 0x93, 0x7a, 0x45, 0x84, 0x35, 0x11, 0xa4, 0x11,
+
  0xe5, 0x57, 0x6b, 0xeb, 0x23, 0xd2, 0xc5, 0xd1, 0x21, 0xa9, 0xeb, 0xf7,
+
  0x58, 0x4f, 0xa3, 0x4b, 0xb6, 0xfd, 0x66, 0x65, 0x45, 0xa3, 0xe5, 0x4e,
+
  0x25, 0x0e, 0xfc, 0x14, 0x8e, 0xec, 0x3d, 0x57, 0xaa, 0xa7, 0x20, 0xc7,
+
  0xf6, 0x80, 0x5a, 0x9b, 0xc4, 0xda, 0xe7, 0x86, 0x5e, 0xe9, 0x0d, 0x8a,
+
  0x3d, 0x98, 0xbb, 0xd7, 0x2b, 0x8e, 0x21, 0xc1, 0x84, 0x76, 0x99, 0xb3,
+
  0x4e, 0x36, 0x3b, 0x07, 0x1d, 0xb8, 0x51, 0x37, 0xb3, 0xfe, 0xa5, 0x34,
+
  0xd4, 0xc1, 0x06, 0x76, 0x0f, 0xf0, 0xe7, 0x1e, 0xfd, 0xdc, 0xef, 0x6c,
+
  0x2d, 0x5d, 0xc3, 0x15, 0xdb, 0xef, 0x96, 0xee, 0xdf, 0xae, 0x93, 0x29,
+
  0xf2, 0x71, 0x80, 0xc4, 0x68, 0x30, 0x1c, 0x95, 0x10, 0xf9, 0x74, 0x85,
+
  0xe9, 0x71, 0xab, 0xe4, 0x00, 0x72, 0x4e, 0x03, 0x98, 0x04, 0x06, 0x7e,
+
  0x67, 0x23, 0xe7, 0xac, 0x1a, 0xbe, 0x2b, 0x81, 0x9b, 0x56, 0xc0, 0x1b,
+
  0x17, 0x35, 0x93, 0x2e, 0x52, 0x39, 0x49, 0x7b, 0x34, 0x3b, 0xe9, 0xa1,
+
  0x2f, 0xa6, 0x4f, 0x95, 0x72, 0x64, 0x03, 0xc8, 0xee, 0x9e, 0xa2, 0x4b,
+
  0x52, 0x1f, 0xec, 0x19, 0x66, 0x07, 0x8d, 0x19, 0xb9, 0x02, 0xb9, 0x14,
+
  0xf0, 0x18, 0xf4, 0x1c, 0xa6, 0x81, 0x1a, 0x2f, 0x81, 0x39, 0x70, 0x7e,
+
  0x13, 0x08, 0x7c, 0xf9, 0x10, 0xcd, 0x9a, 0x18, 0xc9, 0x74, 0xc5, 0xf9,
+
  0xc7, 0x2a, 0x36, 0x12, 0x4d, 0x59, 0x32, 0x62, 0xf8, 0x24, 0xd8, 0xc3,
+
  0x44, 0xfe, 0xa9, 0x18, 0xf5, 0xa0, 0x29, 0xfc, 0x34, 0x5c, 0x15, 0xfe,
+
  0x48, 0x23, 0x1f, 0x8c, 0xb4, 0xcb, 0x44, 0xa6, 0xa6, 0x69, 0x7b, 0x66,
+
  0x33, 0x23, 0xbd, 0xbe, 0x31, 0x7f, 0x0a, 0xcc, 0x68, 0x9c, 0xa4, 0xdf,
+
  0xa8, 0xd1, 0x4b, 0xcb, 0xdb, 0x64, 0xe9, 0xda, 0x0e, 0x5b, 0xba, 0xe6,
+
  0x31, 0x62, 0x59, 0x75, 0xbd, 0x63, 0x74, 0x8c, 0x0f, 0xb2, 0x70, 0xea,
+
  0x96, 0xeb, 0x6f, 0xa6, 0x0e, 0xfe, 0xb2, 0x74, 0xb6, 0x96, 0xe4, 0x55,
+
  0x32, 0x44, 0xc7, 0x87, 0x8c, 0xa4, 0x12, 0xb6, 0xa0, 0x84, 0x58, 0x67,
+
  0x27, 0xae, 0x8a, 0x43, 0x53, 0x70, 0x67, 0x28, 0x2f, 0xe0, 0x9c, 0x43,
+
  0x6e, 0xec, 0x1a, 0x27, 0x62, 0xa1, 0xa8, 0xc7, 0x10, 0xb9, 0xde, 0x4f,
+
  0x9c, 0xdc, 0xeb, 0x3b, 0x54, 0x03, 0x38, 0x1d, 0xa0, 0x3f, 0x1e, 0x9d,
+
  0xff, 0x6e, 0x77, 0x4f, 0x0e, 0x11, 0x91, 0x0c, 0x53, 0xd1, 0xaa, 0x9b,
+
  0x19, 0x63, 0xf9, 0xec, 0xd0, 0x85, 0xc7, 0x19, 0xbd, 0x83, 0x06, 0xc3,
+
  0xac, 0xbb, 0x71, 0x99, 0x22, 0xc3, 0xd4, 0x55, 0x92, 0x43, 0xaa, 0x51,
+
  0x3c, 0xba, 0x38, 0x1a, 0xb8, 0x93, 0xfc, 0x7d, 0x81, 0xc0, 0x02, 0x72,
+
  0x67, 0x28, 0x9e, 0x89, 0x85, 0xd6, 0xb1, 0xa5, 0xd6, 0x09, 0x87, 0x5e,
+
  0x6e, 0x56, 0x50, 0x87, 0xb4, 0x45, 0x31, 0x10, 0xfb, 0x20, 0xdf, 0xaa,
+
  0xf9, 0x35, 0x2d, 0xfd, 0x7b, 0x84, 0x45, 0x31, 0x5b, 0x33, 0x9e, 0x6e,
+
  0xde, 0x9f, 0x78, 0x83, 0xe0, 0xac, 0xe0, 0x2f, 0x33, 0xb6, 0x14, 0x13,
+
  0xf9, 0x28, 0x1d, 0xf0, 0xed, 0xde, 0xeb, 0x61, 0x43, 0x76, 0x21, 0x69,
+
  0x94, 0x0a, 0xa5, 0xae, 0xc0, 0xbd, 0xa4, 0x80, 0x38, 0x93, 0xe0, 0x03,
+
  0xe4, 0x59, 0x79, 0x2a, 0xfa, 0x2e, 0xa1, 0x84, 0x5b, 0x0e, 0xcf, 0x60,
+
  0xdc, 0x02, 0x03, 0xac, 0x40, 0x6b, 0x0c, 0xed, 0x1a, 0x43, 0x6c, 0x38,
+
  0x81, 0xcc, 0x1c, 0xd4, 0x09, 0xb0, 0x53, 0x94, 0x4d, 0x3b, 0x3f, 0xc3,
+
  0xbf, 0xa4, 0x4d, 0x70, 0x10, 0xb1, 0x2c, 0xb3, 0xe9, 0x05, 0x14, 0xfd,
+
  0x24, 0x1e, 0x75, 0xbf, 0x1d, 0xa3, 0x6c, 0x92, 0x4f, 0x73, 0xf2, 0x74,
+
  0x9f, 0x6b, 0xfe, 0x13, 0x77, 0x1c, 0xf5, 0xcc, 0x57, 0xa7, 0x4b, 0xa6,
+
  0x77, 0x43, 0x10, 0x11, 0xb1, 0x4a, 0x7e, 0xbe, 0x7f, 0x04, 0x06, 0x17,
+
  0xe2, 0x5c, 0xec, 0x81, 0xe9, 0xc4, 0xd2, 0x62, 0x83, 0x77, 0x23, 0x3c,
+
  0x51, 0x99, 0x96, 0xe2, 0xcb, 0x63, 0x2d, 0xe7, 0x92, 0xe1, 0x01, 0xde,
+
  0x0f, 0xab, 0xdd, 0x5d, 0x33, 0x39, 0xa6, 0xd7, 0x29, 0xcc, 0x63, 0x80,
+
  0x1e, 0x67, 0x12, 0xdc, 0x52, 0xa1, 0xf6, 0xdd, 0xe4, 0xed, 0x9b, 0x93,
+
  0x64, 0x13, 0x31, 0x87, 0x92, 0xaf, 0x1f, 0xed, 0xee, 0x6d, 0xe9, 0x9d,
+
  0x65, 0xd1, 0xff, 0x8a, 0xed, 0x91, 0x2e, 0x1f, 0x1e, 0xe4, 0x32, 0x35,
+
  0x8b, 0x3d, 0xae, 0xc1, 0x51, 0x86, 0x36, 0x4f, 0xa0, 0x8d, 0x43, 0x35,
+
  0xae, 0x0e, 0x32, 0x18, 0xd3, 0x2c, 0xc0, 0xfc, 0xc8, 0x0d, 0x47, 0x23,
+
  0x84, 0x1d, 0x42, 0x3a, 0x27, 0x03, 0x09, 0x08, 0x78, 0x16, 0x92, 0xe6,
+
  0xc7, 0xc7, 0x46, 0xd1, 0xf8, 0xb3, 0x60, 0x4d, 0x55, 0x1e, 0xda, 0x0d,
+
  0x3e, 0xae, 0x5e, 0x4f, 0x96, 0xc1, 0x09, 0xcc, 0xa4, 0xc3, 0x55, 0xda,
+
  0x6d, 0x07, 0x8f, 0xeb, 0x8c, 0xbc, 0xc3, 0x37, 0x69, 0xa3, 0x21, 0x5b,
+
  0x4b, 0x21, 0xec, 0x1e, 0xa8, 0x9f, 0x91, 0x20, 0x2c, 0x4d, 0x25, 0x9d,
+
  0xe3, 0xd7, 0x3f, 0xde, 0xd5, 0xd0, 0xbd, 0xbb, 0x28, 0x86, 0x97, 0xb0,
+
  0x89, 0xd1, 0x0c, 0xc5, 0x2f, 0xed, 0x7c, 0x98, 0xd1, 0x7e, 0xc4, 0xe7,
+
  0xb2, 0x7d, 0x2f, 0x6c, 0x33, 0x0e, 0xd5, 0xd2, 0xad, 0x4a, 0x90, 0xee,
+
  0x08, 0x87, 0x56, 0xf9, 0xbd, 0x58, 0xda, 0x0a, 0xbf, 0x13, 0x5f, 0x44,
+
  0xb9, 0x59, 0xd2, 0x1c, 0x82, 0x59, 0x9e, 0xd6, 0xc0, 0xb2, 0xeb, 0x07,
+
  0x1a, 0x35, 0xc6, 0xf6, 0x74, 0x64, 0x0e, 0x2d, 0x74, 0xb9, 0xad, 0x2c,
+
  0x8d, 0x18, 0x91, 0xa1, 0x07, 0xb0, 0x0a, 0x82, 0x7c, 0x94, 0x8c, 0xda,
+
  0xef, 0x45, 0xf7, 0xe8, 0x4a, 0xc4, 0xa6, 0x72, 0x11, 0xd5, 0xce, 0x75,
+
  0xde, 0x7b, 0x9a, 0xed, 0x1a, 0x0d, 0x10, 0xe7, 0xee, 0xba, 0x09, 0x61,
+
  0xbf, 0x18, 0x05, 0x6e, 0x9b, 0xc5, 0xc6, 0x0e, 0xbe, 0xb8, 0xcc, 0x6a,
+
  0x39, 0x14, 0xb5, 0xd8, 0x9b, 0x0f, 0xe1, 0x4e, 0x4e, 0x09, 0x8f, 0x2d,
+
  0x1b, 0x66, 0xa3, 0xcc, 0x30, 0x0d, 0xe4, 0xa4, 0xf4, 0xb7, 0x3b, 0x12,
+
  0xd1, 0x43, 0x41, 0x6f, 0x0c, 0x0c, 0x65, 0xb8, 0x1d, 0x18, 0xf7, 0xb4,
+
  0xa0, 0x58, 0x36, 0xc9, 0x77, 0x9b, 0xe5, 0xc3, 0xf7, 0xb8, 0x40, 0xab,
+
  0xd4, 0x9d, 0xa3, 0x65, 0xbe, 0xee, 0x24, 0x49, 0x77, 0x41, 0x0f, 0x6e,
+
  0xd5, 0x5c, 0xa1, 0x96, 0x61, 0x0c, 0x24, 0xe5, 0x50, 0xe0, 0xa2, 0x41,
+
  0x80, 0x62, 0xb1, 0x4b, 0x36, 0x5f, 0x4a, 0x0a, 0xcc, 0xd9, 0xf3, 0xbf,
+
  0x84, 0x7b, 0x4d, 0x75, 0x9f, 0x3f, 0x04, 0x8b, 0x3a, 0x6f, 0x2d, 0x43,
+
  0x13, 0x04, 0xd3, 0x7a, 0x6a, 0x3a, 0x0b, 0x45, 0x10, 0x6c, 0x49, 0x60,
+
  0x77, 0xc0, 0x94, 0x49, 0x3a, 0x4f, 0xe9, 0x01, 0x6e, 0x68, 0x22, 0xd8,
+
  0x4e, 0xdf, 0xfd, 0xcc, 0x9f, 0x12, 0x61, 0xc0, 0x1f, 0xf5, 0xd5, 0x62,
+
  0x3a, 0x80, 0xfd, 0x99, 0xd5, 0xdf, 0x75, 0xd8, 0xad, 0x4d, 0x89, 0x1a,
+
  0x4b, 0xa3, 0x46, 0x10, 0x26, 0xbb, 0xef, 0xe8, 0xba, 0x12, 0x45, 0xb5,
+
  0x41, 0x52, 0x15, 0x7f, 0x42, 0x7d, 0x74, 0xf9, 0x77, 0xba, 0x91, 0x79,
+
  0x55, 0x24, 0x9e, 0x94, 0x37, 0x4b, 0xac, 0x1e, 0x20, 0xf0, 0x94, 0x3f,
+
  0xbf, 0xfa, 0xeb, 0xcf, 0xdf, 0xec, 0x3f, 0x4c, 0xbf, 0x4e, 0x87, 0x8f,
+
  0xc7, 0x4f, 0xd2, 0x47, 0xa3, 0x47, 0x5f, 0x7f, 0xb3, 0xf7, 0xe4, 0x51,
+
  0xfa, 0xf5, 0xc3, 0x71, 0xfa, 0x78, 0x37, 0xdb, 0xfd, 0x66, 0xbc, 0xb7,
+
  0x3f, 0x1a, 0x8d, 0xb3, 0x27, 0xa3, 0xaf, 0xd3, 0x4e, 0x5f, 0x2d, 0xbe,
+
  0x3a, 0x72, 0x71, 0xe0, 0xb1, 0x6f, 0x02, 0xd6, 0xe5, 0xfc, 0xc5, 0x61,
+
  0x6f, 0x37, 0xb9, 0xca, 0x3e, 0xd8, 0xe9, 0x60, 0xf5, 0x38, 0xac, 0x66,
+
  0x95, 0xb9, 0x19, 0xc5, 0xba, 0x8b, 0xc0, 0xd6, 0x81, 0xc0, 0x14, 0x62,
+
  0x00, 0x65, 0xa1, 0x75, 0x0d, 0x2b, 0x09, 0x04, 0xb4, 0xcd, 0x12, 0xd9,
+
  0xd2, 0x4d, 0x48, 0xa6, 0xfe, 0x12, 0xa5, 0xcb, 0x57, 0x29, 0xe6, 0x21,
+
  0xe9, 0x6a, 0xc8, 0x43, 0xe7, 0xec, 0xf0, 0x92, 0x0f, 0xe5, 0xaf, 0xaa,
+
  0xbb, 0xd4, 0xd0, 0x8f, 0x65, 0xb1, 0x98, 0x9f, 0x15, 0x93, 0x7c, 0x78,
+
  0xdb, 0x35, 0xf0, 0x46, 0xdf, 0xac, 0x7b, 0xc0, 0xbe, 0x37, 0xe1, 0xc4,
+
  0x3f, 0x78, 0xcc, 0xdc, 0x2a, 0xaf, 0x32, 0x09, 0x4b, 0x13, 0x71, 0xbf,
+
  0x5a, 0xf6, 0x99, 0xa9, 0x70, 0x1d, 0xce, 0xfa, 0x27, 0x89, 0xd8, 0xd8,
+
  0x3e, 0xfe, 0xa0, 0x63, 0xcd, 0xd2, 0x0e, 0xfc, 0x9f, 0xfe, 0x5a, 0x4f,
+
  0xcc, 0xd6, 0x2b, 0xa5, 0x2b, 0x6f, 0xb3, 0x7c, 0x0d, 0xbf, 0xd1, 0xa7,
+
  0x41, 0x4d, 0xc5, 0xe7, 0x30, 0xf4, 0x4f, 0x43, 0x61, 0x58, 0x92, 0xfe,
+
  0x33, 0x6b, 0x9e, 0x02, 0x93, 0x80, 0xdf, 0x5a, 0x5c, 0xb6, 0xe6, 0x69,
+
  0x45, 0x5b, 0x6f, 0x90, 0x54, 0x61, 0xda, 0x47, 0xee, 0xfb, 0x73, 0x6e,
+
  0xe2, 0x8d, 0xc4, 0xe7, 0x6c, 0xa6, 0xef, 0xd3, 0x7e, 0x72, 0x7a, 0x74,
+
  0x7e, 0x86, 0x8d, 0xcf, 0x11, 0x00, 0x62, 0x8b, 0x4c, 0x9e, 0xd9, 0x07,
+
  0x10, 0xfa, 0x2a, 0xce, 0x8a, 0x68, 0x0b, 0xdd, 0xc2, 0xc5, 0xd3, 0x50,
+
  0x61, 0x0d, 0x38, 0xd1, 0xf1, 0x48, 0xe2, 0x58, 0x4a, 0x88, 0x46, 0xe9,
+
  0x24, 0x1f, 0x45, 0xaa, 0x2e, 0x70, 0x15, 0x60, 0x84, 0xa3, 0xad, 0x10,
+
  0x08, 0xd4, 0x4d, 0x04, 0x76, 0xc4, 0x05, 0x07, 0x21, 0x5d, 0x5e, 0xa2,
+
  0x1b, 0xac, 0x4a, 0x1c, 0x52, 0x81, 0xf4, 0xb0, 0x4c, 0xf1, 0xe8, 0x0e,
+
  0x40, 0xdd, 0x15, 0xde, 0x27, 0x0c, 0x25, 0xe6, 0xf2, 0xb3, 0xc2, 0xb5,
+
  0x87, 0xe1, 0xb6, 0x13, 0x4e, 0x92, 0xd7, 0x1c, 0xfe, 0x70, 0x29, 0xb1,
+
  0x82, 0xaf, 0xfe, 0xb9, 0x28, 0x78, 0x85, 0xec, 0x3a, 0x9a, 0x0d, 0x4d,
+
  0xaf, 0x0b, 0x47, 0xd7, 0xd0, 0x63, 0xf2, 0x78, 0x64, 0x28, 0xad, 0x8a,
+
  0xf7, 0x88, 0x46, 0xaa, 0x12, 0x5b, 0x20, 0x63, 0xb9, 0xfd, 0xc5, 0x96,
+
  0x5c, 0x45, 0xb1, 0x2f, 0xf1, 0xfe, 0xbb, 0xfc, 0xfd, 0x10, 0x01, 0xb3,
+
  0xc2, 0x63, 0x77, 0xa7, 0xd3, 0x23, 0x34, 0x79, 0x3f, 0x91, 0x6b, 0xdf,
+
  0xeb, 0xb9, 0xf3, 0x40, 0x9c, 0xc8, 0x46, 0xf3, 0xc5, 0x00, 0x2f, 0xc3,
+
  0x88, 0x82, 0x49, 0x78, 0x7a, 0x8a, 0x3f, 0x23, 0x85, 0x10, 0x11, 0x97,
+
  0x58, 0xae, 0x1a, 0xab, 0x75, 0x4f, 0x8e, 0x6b, 0x8b, 0xda, 0xd1, 0x47,
+
  0x3d, 0xab, 0x9b, 0x3c, 0x43, 0x18, 0xd2, 0x04, 0x84, 0x2e, 0x91, 0x69,
+
  0x81, 0xcc, 0xce, 0x40, 0x5f, 0x43, 0xae, 0xe5, 0x24, 0x6a, 0x6c, 0x35,
+
  0x8a, 0x57, 0x50, 0xe5, 0x9c, 0xba, 0x93, 0xbc, 0xe9, 0x00, 0x0e, 0xe9,
+
  0xb6, 0x40, 0x32, 0x11, 0x82, 0x47, 0x98, 0xba, 0x95, 0x78, 0x58, 0x89,
+
  0x9e, 0x25, 0x93, 0x20, 0x0b, 0x33, 0x26, 0xcb, 0x30, 0xc1, 0x07, 0x43,
+
  0x21, 0xb1, 0x6e, 0x18, 0x59, 0x83, 0x23, 0xc9, 0xa8, 0x45, 0x34, 0x3f,
+
  0x48, 0x48, 0xc8, 0x63, 0x01, 0x08, 0xe6, 0x64, 0x66, 0x4e, 0xb3, 0x25,
+
  0x10, 0x37, 0x48, 0x42, 0x1b, 0xbc, 0x94, 0x4b, 0x72, 0xef, 0x67, 0xb3,
+
  0x1d, 0x58, 0x17, 0xa8, 0xd4, 0xca, 0xb0, 0x3f, 0x8e, 0xad, 0xdd, 0xc7,
+
  0xd1, 0xf2, 0x39, 0xa1, 0x87, 0x3e, 0xc5, 0xe0, 0xfc, 0x98, 0x1a, 0x44,
+
  0xe8, 0xa8, 0xe4, 0x4e, 0xe3, 0x27, 0xe1, 0x94, 0xe5, 0x02, 0x51, 0x86,
+
  0x57, 0x7f, 0xae, 0xb8, 0x87, 0x06, 0x15, 0xc9, 0xe1, 0xad, 0x12, 0x0a,
+
  0xa6, 0x1e, 0xf1, 0x8a, 0x5d, 0x34, 0xbb, 0xfd, 0xbd, 0x64, 0x93, 0x32,
+
  0xe6, 0x31, 0xe1, 0x58, 0x8c, 0x67, 0x9c, 0x16, 0x80, 0x24, 0xa7, 0x63,
+
  0x91, 0x2e, 0x9c, 0x37, 0x4b, 0x25, 0x6c, 0xe1, 0x54, 0xf2, 0x60, 0x3f,
+
  0x21, 0xa4, 0x04, 0x4c, 0x17, 0xc4, 0x8e, 0xfd, 0x00, 0xed, 0x7a, 0x4d,
+
  0xd8, 0xef, 0xaf, 0x1b, 0xf4, 0xf6, 0xcd, 0xcb, 0x03, 0x59, 0xa7, 0xd6,
+
  0xe4, 0xa2, 0xaa, 0x9a, 0xe8, 0x92, 0x50, 0x82, 0x51, 0xa2, 0x96, 0x56,
+
  0x19, 0x1a, 0x51, 0xc4, 0x97, 0x89, 0xa6, 0xd6, 0x2e, 0x8e, 0x8f, 0x9e,
+
  0xbd, 0x38, 0xee, 0xc1, 0xcf, 0xf3, 0xc3, 0xde, 0xe1, 0xf1, 0xf9, 0xee,
+
  0xde, 0x93, 0xde, 0x8f, 0x47, 0xaf, 0x7a, 0x20, 0x6a, 0xec, 0x3d, 0x7a,
+
  0x7c, 0xc0, 0xa1, 0x1e, 0xfc, 0xcc, 0x9b, 0xb6, 0x27, 0xd6, 0xa3, 0x8c,
+
  0x7a, 0x52, 0xed, 0xee, 0x6b, 0x97, 0x5d, 0xf3, 0xfd, 0xeb, 0x18, 0x24,
+
  0xb8, 0x6a, 0x01, 0x8c, 0xbc, 0x0a, 0xa4, 0x52, 0x4c, 0x49, 0xd6, 0xd4,
+
  0x79, 0x4b, 0x54, 0x88, 0x5e, 0x53, 0x12, 0x1c, 0xcd, 0x4f, 0x04, 0x9e,
+
  0x2e, 0x17, 0x1d, 0x65, 0x14, 0x8f, 0x1b, 0x41, 0x4f, 0x95, 0xf3, 0x23,
+
  0x69, 0x9e, 0x37, 0xab, 0xcd, 0xb1, 0xc7, 0x0c, 0x31, 0x43, 0xb8, 0x65,
+
  0x8f, 0x85, 0xa3, 0xcb, 0xf9, 0x46, 0xbb, 0x92, 0xb8, 0x28, 0x91, 0x99,
+
  0x50, 0xca, 0xd5, 0xa8, 0x6a, 0x8d, 0x00, 0xa2, 0xb8, 0x6c, 0x86, 0x57,
+
  0x95, 0xdb, 0xec, 0x96, 0x9e, 0x16, 0x39, 0xd1, 0xa9, 0x59, 0x1d, 0xb3,
+
  0x0a, 0xa3, 0xa4, 0x47, 0x3c, 0x3b, 0xa5, 0x39, 0xb2, 0x73, 0x81, 0xe2,
+
  0x52, 0xf8, 0xfd, 0x29, 0x43, 0x11, 0x61, 0x00, 0x5b, 0x5a, 0x9a, 0x9a,
+
  0x81, 0x52, 0x7b, 0x7a, 0x6b, 0xd1, 0x57, 0x0d, 0x08, 0x9f, 0xcd, 0xaa,
+
  0xce, 0x27, 0x93, 0x2d, 0xb7, 0x60, 0x7f, 0x50, 0x68, 0x83, 0x1c, 0xaf,
+
  0x36, 0x4d, 0x1d, 0x90, 0x38, 0x71, 0xc5, 0xf1, 0xa2, 0xdb, 0x33, 0x2c,
+
  0x46, 0xa4, 0xcd, 0x2e, 0xdd, 0xfc, 0x12, 0xd4, 0x68, 0x17, 0x7f, 0xe3,
+
  0xe6, 0xa7, 0x44, 0x85, 0xc5, 0xcc, 0x24, 0x4b, 0xb9, 0xb6, 0x66, 0x8a,
+
  0xce, 0x22, 0xee, 0x5a, 0xc1, 0xbb, 0x12, 0xe8, 0x31, 0x75, 0xa1, 0x50,
+
  0x64, 0x9b, 0xc4, 0x0f, 0x77, 0x39, 0x63, 0x75, 0x26, 0x28, 0xbc, 0x7f,
+
  0x08, 0xf7, 0xb5, 0x76, 0x48, 0x11, 0xb1, 0x85, 0xfc, 0x42, 0xca, 0x07,
+
  0x5a, 0x73, 0xe8, 0x2b, 0x8e, 0x8f, 0x75, 0x13, 0x72, 0x17, 0xae, 0x99,
+
  0x66, 0x03, 0x55, 0xb5, 0xc4, 0xc8, 0x80, 0xfc, 0xb0, 0xfa, 0xb2, 0x95,
+
  0x4c, 0xa8, 0x07, 0x96, 0xf6, 0xc6, 0x57, 0xee, 0xd2, 0xfa, 0xad, 0x38,
+
  0x91, 0xa1, 0xe3, 0xf5, 0xd8, 0xad, 0x3d, 0xdf, 0xab, 0xaa, 0xab, 0x96,
+
  0x73, 0x83, 0x1f, 0xab, 0xfe, 0x77, 0xa4, 0x01, 0xa8, 0x9c, 0xcc, 0x50,
+
  0xb1, 0xdf, 0xb4, 0xee, 0xc1, 0xfe, 0x23, 0x28, 0x82, 0xad, 0x09, 0xa5,
+
  0x6a, 0xb1, 0x0b, 0x9a, 0x56, 0xdd, 0x96, 0x5d, 0xa3, 0x6d, 0xeb, 0xc4,
+
  0x2d, 0x7e, 0x63, 0xab, 0xa3, 0x95, 0x97, 0xa5, 0x2f, 0x38, 0x12, 0xf5,
+
  0xae, 0x75, 0xc6, 0x71, 0x2e, 0xc9, 0x37, 0x22, 0xde, 0xc8, 0x62, 0x2f,
+
  0xad, 0xb6, 0x31, 0xfd, 0x25, 0x01, 0xa7, 0xb9, 0x2a, 0x6b, 0xad, 0x38,
+
  0x0d, 0xa1, 0x5a, 0x27, 0x1c, 0x34, 0xda, 0x4d, 0x9a, 0xc9, 0x1f, 0xbb,
+
  0x1c, 0x19, 0x3a, 0xce, 0x2f, 0xa3, 0x28, 0x8d, 0x90, 0x53, 0x41, 0xa9,
+
  0x9a, 0x16, 0x8f, 0x81, 0x87, 0x4b, 0x40, 0x77, 0xc5, 0xa4, 0xc9, 0x01,
+
  0xde, 0xe2, 0xdc, 0x91, 0x2c, 0x03, 0x4e, 0x33, 0xe0, 0x29, 0x86, 0xc7,
+
  0x30, 0xce, 0xdd, 0xc2, 0x42, 0xad, 0x55, 0x64, 0x40, 0x74, 0xfc, 0x10,
+
  0x70, 0x76, 0x2c, 0x7c, 0x86, 0xf0, 0xad, 0xe2, 0xab, 0xa3, 0x05, 0x36,
+
  0x58, 0x17, 0xe8, 0xd4, 0xc1, 0xd2, 0x70, 0x6e, 0x99, 0x43, 0x96, 0x54,
+
  0x13, 0x79, 0x30, 0x0c, 0x14, 0x2e, 0x18, 0x80, 0x21, 0x65, 0xbc, 0x1a,
+
  0xcd, 0x79, 0x2d, 0xc1, 0xcf, 0x05, 0x0a, 0x08, 0x41, 0xc8, 0x51, 0x7e,
+
  0x65, 0x97, 0x3d, 0x5e, 0x84, 0x8b, 0x44, 0xe6, 0x4a, 0x86, 0x52, 0x51,
+
  0x6c, 0xe4, 0x42, 0x29, 0xc4, 0x21, 0x56, 0x56, 0x82, 0x31, 0x27, 0xb6,
+
  0x73, 0x41, 0x84, 0x66, 0x5c, 0xab, 0xdc, 0x10, 0xbe, 0x69, 0x03, 0x82,
+
  0x8b, 0x80, 0xa0, 0x50, 0x4c, 0xb1, 0xcf, 0x67, 0x39, 0x81, 0x7a, 0xab,
+
  0xb5, 0x56, 0x72, 0x73, 0x85, 0x61, 0x21, 0x77, 0xae, 0x8a, 0xae, 0xa1,
+
  0x4e, 0x4d, 0x28, 0x08, 0x80, 0x52, 0x45, 0x69, 0x74, 0x0d, 0xeb, 0x72,
+
  0x15, 0x99, 0x48, 0x09, 0x1c, 0x59, 0x13, 0x51, 0xab, 0x10, 0x38, 0xef,
+
  0xcd, 0x85, 0xba, 0x70, 0x8e, 0x37, 0xd0, 0x15, 0x55, 0xba, 0x3c, 0x61,
+
  0xba, 0xcb, 0x4b, 0xc1, 0xbd, 0x1e, 0x20, 0x44, 0x9c, 0x8c, 0x04, 0x53,
+
  0x3f, 0x05, 0x6f, 0xa6, 0x61, 0x5d, 0xd6, 0x54, 0x55, 0xd7, 0x9d, 0xa6,
+
  0xac, 0xda, 0xf6, 0x45, 0xda, 0x5a, 0x16, 0x3e, 0x0f, 0x3e, 0xaf, 0xb0,
+
  0x37, 0x04, 0x14, 0xc0, 0x30, 0x22, 0x62, 0x49, 0x92, 0xb5, 0xd8, 0x3c,
+
  0xd8, 0xb2, 0xe0, 0x0e, 0xb7, 0x61, 0xf0, 0xc5, 0xb7, 0x5b, 0x0c, 0x13,
+
  0x16, 0xfc, 0x28, 0xce, 0x7c, 0x04, 0xfc, 0x7d, 0x52, 0xd0, 0x1a, 0x09,
+
  0xf0, 0xac, 0x2c, 0x3f, 0x37, 0x24, 0xf0, 0xb3, 0x9b, 0x1d, 0xca, 0x70,
+
  0xa5, 0x1b, 0x05, 0x5d, 0x9c, 0x3f, 0x45, 0x8f, 0xea, 0x53, 0x4c, 0x58,
+
  0xc1, 0x74, 0xc1, 0xf6, 0x72, 0x15, 0x89, 0x3c, 0x28, 0xb1, 0x19, 0xba,
+
  0x41, 0xbe, 0xfe, 0xf9, 0xe7, 0x6e, 0xf2, 0x73, 0x07, 0xfe, 0x8f, 0x6e,
+
  0xba, 0x9f, 0x81, 0xe8, 0x7e, 0x2e, 0x79, 0xcb, 0x7f, 0xbe, 0x26, 0x8b,
+
  0xa8, 0x41, 0x85, 0xaa, 0x40, 0x8d, 0xd6, 0x37, 0x4e, 0x31, 0x51, 0x07,
+
  0x0e, 0x63, 0x00, 0x7b, 0x47, 0x5e, 0xbc, 0xa0, 0x9c, 0xe7, 0x32, 0x2b,
+
  0x66, 0x3d, 0xc6, 0x3c, 0x85, 0x15, 0x5b, 0x4c, 0x67, 0x1c, 0xdd, 0x2c,
+
  0x44, 0xc9, 0x07, 0x84, 0xd8, 0xe9, 0xc6, 0xef, 0x36, 0xc2, 0x26, 0x9a,
+
  0xb2, 0x09, 0x57, 0xb6, 0x3e, 0x13, 0x65, 0x65, 0xb3, 0x7b, 0xdf, 0x44,
+
  0x8f, 0x53, 0xd4, 0x2d, 0x05, 0x0f, 0xa3, 0x70, 0xb6, 0x6d, 0x04, 0x06,
+
  0x99, 0x5f, 0xdd, 0x56, 0x28, 0xbf, 0xd8, 0x71, 0x4c, 0x96, 0xce, 0x05,
+
  0x1a, 0xe4, 0xa3, 0x28, 0x46, 0xc1, 0x47, 0xaf, 0x34, 0x7f, 0x84, 0x73,
+
  0xc8, 0x98, 0xf4, 0xd8, 0xad, 0xca, 0x9e, 0xd4, 0xdd, 0x9d, 0x64, 0x9a,
+
  0x5d, 0xa6, 0x02, 0x43, 0xb2, 0x49, 0xb9, 0x27, 0xdc, 0x10, 0xc5, 0xbb,
+
  0x6d, 0x35, 0xb3, 0xc8, 0xe2, 0x84, 0xb8, 0xba, 0x08, 0xfc, 0x11, 0x99,
+
  0xfa, 0x34, 0x9f, 0x81, 0x4e, 0xd9, 0xe9, 0x75, 0xe8, 0xab, 0x90, 0x30,
+
  0x46, 0x8c, 0x31, 0x66, 0x22, 0x2e, 0xa9, 0x44, 0xfb, 0x08, 0x99, 0x09,
+
  0x92, 0xc9, 0x3e, 0x60, 0xb6, 0x1a, 0x20, 0x9f, 0x11, 0x0c, 0x27, 0x28,
+
  0x0a, 0x3a, 0x79, 0x49, 0x3b, 0xc6, 0x6c, 0x96, 0x25, 0x4b, 0x3a, 0x92,
+
  0x6f, 0x70, 0x69, 0xf7, 0x7a, 0x1c, 0xee, 0x48, 0x8b, 0xcb, 0xf2, 0x21,
+
  0x87, 0xc5, 0xdc, 0x22, 0x88, 0xc6, 0x7c, 0x12, 0x00, 0xcc, 0xc3, 0x60,
+
  0xb1, 0x4f, 0x0a, 0xf4, 0xe4, 0x08, 0x4e, 0x2e, 0x33, 0x70, 0x5e, 0x90,
+
  0x13, 0x6f, 0x48, 0x91, 0x35, 0x18, 0x85, 0xa5, 0x20, 0x1c, 0x9c, 0xc7,
+
  0xc1, 0xd0, 0xe3, 0x0f, 0x1a, 0xd0, 0xa1, 0x91, 0x7e, 0x80, 0x78, 0xd2,
+
  0x0f, 0x7e, 0x07, 0x23, 0xea, 0xe9, 0x0d, 0x96, 0x88, 0xcd, 0xa9, 0x47,
+
  0x5f, 0xd4, 0x26, 0x1d, 0x09, 0xa5, 0x84, 0xf6, 0xdc, 0x2d, 0xd6, 0x81,
+
  0x4f, 0x05, 0x3b, 0x04, 0xbe, 0xc0, 0x0e, 0x90, 0xcf, 0x08, 0x6e, 0x36,
+
  0xbc, 0x00, 0xd7, 0x77, 0x2f, 0xbd, 0x44, 0x59, 0x11, 0xbe, 0x06, 0x09,
+
  0x0d, 0xd4, 0x0b, 0xfc, 0x6b, 0x1b, 0x94, 0x26, 0x19, 0x00, 0xae, 0x01,
+
  0x95, 0x4a, 0x30, 0x1f, 0x2b, 0x4e, 0xb8, 0x2e, 0x8a, 0xd6, 0xfe, 0x96,
+
  0x81, 0x13, 0xb0, 0x9b, 0xde, 0x29, 0xfc, 0x20, 0x2b, 0x2c, 0xbc, 0x2e,
+
  0x13, 0x86, 0xf9, 0xce, 0x0a, 0xc2, 0x25, 0x02, 0xc1, 0x6c, 0x32, 0x89,
+
  0x40, 0xc8, 0x3b, 0x61, 0xea, 0x33, 0xca, 0x6e, 0xc9, 0x9a, 0x2b, 0x20,
+
  0xe1, 0xa8, 0x16, 0xa1, 0x4a, 0x9e, 0x0b, 0xb5, 0xf5, 0xc0, 0xc2, 0x6f,
+
  0x0a, 0xe4, 0x1f, 0x86, 0x4f, 0xab, 0xd4, 0xc0, 0xaa, 0xd1, 0x16, 0x27,
+
  0xa0, 0x49, 0x2c, 0xad, 0xc6, 0x66, 0x8b, 0xd6, 0x1d, 0xdd, 0x24, 0x16,
+
  0xcd, 0x97, 0xb3, 0x3b, 0x98, 0x6e, 0x60, 0xc4, 0xf3, 0xc1, 0xbb, 0xe7,
+
  0x86, 0x73, 0xc5, 0xe5, 0x05, 0x53, 0xcb, 0x39, 0x89, 0xf3, 0xc2, 0x87,
+
  0xd5, 0xe8, 0x23, 0x92, 0xb2, 0x53, 0x71, 0xff, 0x99, 0x80, 0x27, 0xd8,
+
  0x61, 0x35, 0xfe, 0x26, 0xec, 0x68, 0x42, 0x68, 0xf8, 0x9a, 0xe5, 0x4e,
+
  0x32, 0x97, 0xea, 0x93, 0xbb, 0x5b, 0x49, 0xe7, 0x7f, 0x50, 0xd0, 0x22,
+
  0x03, 0x7e, 0xe2, 0x0a, 0x94, 0xc3, 0x8e, 0x7c, 0xbb, 0x87, 0xdf, 0xfe,
+
  0xe5, 0xd9, 0x8f, 0xef, 0x8e, 0x4e, 0x5f, 0x3f, 0x3f, 0xf9, 0x91, 0x9f,
+
  0x91, 0x47, 0x92, 0x4d, 0x1f, 0xa0, 0x8f, 0x21, 0xc0, 0xf2, 0xd2, 0x3e,
+
  0xbe, 0xd4, 0xd6, 0xda, 0xc3, 0x2d, 0x0d, 0x28, 0x3a, 0x48, 0x3a, 0x84,
+
  0x7d, 0x7b, 0xf6, 0xe6, 0x14, 0xd1, 0x03, 0xff, 0xe3, 0xe7, 0xc6, 0x93,
+
  0x8f, 0xa2, 0x27, 0x0f, 0xcf, 0xce, 0x9e, 0x1d, 0x5e, 0x1c, 0x2e, 0x3d,
+
  0xf5, 0x78, 0x75, 0x7b, 0x87, 0x21, 0xa4, 0x2e, 0x79, 0x06, 0x44, 0xd1,
+
  0x7c, 0xf5, 0xeb, 0x2d, 0xe0, 0x00, 0xb3, 0x9e, 0xbd, 0x8e, 0x56, 0x81,
+
  0xcb, 0xac, 0x9e, 0xdf, 0x2c, 0x72, 0xe2, 0x5e, 0x54, 0x5f, 0x05, 0xd7,
+
  0xf2, 0xaa, 0xf0, 0x71, 0x8a, 0xf2, 0xf6, 0x93, 0x2d, 0xe0, 0xa1, 0x16,
+
  0x1d, 0x25, 0x46, 0xc6, 0x9c, 0x22, 0x41, 0x48, 0x49, 0x01, 0xbe, 0x27,
+
  0xfd, 0xd9, 0x56, 0x85, 0x44, 0x0e, 0xbe, 0x63, 0x94, 0x56, 0x18, 0xfa,
+
  0x65, 0x84, 0x98, 0x29, 0xd7, 0x19, 0x9f, 0x73, 0x47, 0x52, 0xc5, 0x2c,
+
  0x5b, 0x11, 0x30, 0xc9, 0x4c, 0xd9, 0x62, 0xa0, 0xb3, 0x0f, 0xd9, 0x70,
+
  0x51, 0x2b, 0x8a, 0x32, 0x6d, 0xf8, 0x28, 0xb0, 0xfb, 0x10, 0x6e, 0x86,
+
  0x62, 0x82, 0xb2, 0x54, 0x51, 0x39, 0x8d, 0x84, 0x90, 0xfd, 0xab, 0x09,
+
  0x1f, 0xee, 0x3c, 0x9b, 0x81, 0x99, 0x19, 0xdf, 0xf1, 0x27, 0x5d, 0x8d,
+
  0x9f, 0x53, 0x4e, 0x47, 0x75, 0x2f, 0x50, 0xcb, 0x3a, 0xa5, 0xf0, 0x4b,
+
  0x01, 0x44, 0xa8, 0xa2, 0xb8, 0x72, 0xe9, 0x45, 0x02, 0x30, 0x60, 0x6e,
+
  0xd2, 0x18, 0x19, 0x3a, 0xfb, 0x81, 0xfa, 0xbd, 0xab, 0xb2, 0x2d, 0x7b,
+
  0x56, 0xa5, 0x4e, 0x31, 0xbb, 0xdf, 0x97, 0x43, 0xeb, 0xaf, 0xad, 0xb5,
+
  0xa3, 0xc0, 0xe4, 0x98, 0x3b, 0x55, 0x48, 0x92, 0x66, 0x61, 0x18, 0x98,
+
  0x12, 0xfb, 0x94, 0xd1, 0xb3, 0x2a, 0x11, 0xd0, 0x5f, 0xa5, 0x1f, 0xf2,
+
  0xe9, 0x62, 0xca, 0x38, 0x5d, 0x98, 0x9b, 0xcf, 0xdf, 0x8a, 0x71, 0x19,
+
  0x6f, 0x0b, 0x0e, 0x4d, 0xc2, 0x21, 0x6d, 0x54, 0xde, 0xea, 0x44, 0xa9,
+
  0xd6, 0x70, 0x71, 0xf5, 0x7d, 0x8c, 0x3e, 0x63, 0x4e, 0x4c, 0xf3, 0x00,
+
  0x9b, 0x6e, 0x46, 0xaa, 0x39, 0x68, 0x33, 0x99, 0xe2, 0x61, 0x31, 0x5a,
+
  0x9a, 0xd5, 0x49, 0x91, 0xea, 0x17, 0x76, 0x95, 0xb0, 0x58, 0x0b, 0x7b,
+
  0x9a, 0x17, 0x23, 0xbe, 0x3e, 0x38, 0xe7, 0x0c, 0xf8, 0x18, 0x3b, 0x9a,
+
  0x29, 0x8c, 0x80, 0x80, 0xba, 0xdb, 0x72, 0x04, 0x10, 0x9c, 0x13, 0x0b,
+
  0xc1, 0x80, 0xde, 0x9e, 0x4f, 0x0d, 0x76, 0xa4, 0xaf, 0x76, 0x50, 0xf7,
+
  0xa1, 0xe0, 0xb9, 0xf2, 0x95, 0xdf, 0x30, 0x28, 0x6a, 0x18, 0x0b, 0x08,
+
  0x61, 0x08, 0x28, 0xd5, 0xdf, 0xa2, 0x9b, 0x5b, 0x5f, 0x37, 0x69, 0x17,
+
  0x16, 0x99, 0xef, 0x46, 0x0e, 0xfb, 0x43, 0xa7, 0x8c, 0x45, 0x63, 0x92,
+
  0x93, 0x90, 0xd8, 0x24, 0x67, 0xa0, 0xb3, 0xe1, 0x62, 0xa0, 0x26, 0x1a,
+
  0xbd, 0x48, 0x02, 0x84, 0x8b, 0xb3, 0xd7, 0xba, 0xb5, 0xa3, 0xa5, 0x63,
+
  0x96, 0x09, 0xa4, 0x89, 0x29, 0x6f, 0xd9, 0x28, 0xe4, 0xc5, 0xbb, 0x54,
+
  0xab, 0x67, 0xaf, 0xcf, 0x13, 0xc1, 0x8d, 0x0c, 0xc6, 0x61, 0x55, 0x5f,
+
  0xf1, 0x9d, 0x0b, 0xac, 0x2c, 0xc5, 0xd6, 0x5e, 0x12, 0xed, 0x93, 0x3f,
+
  0xbd, 0x3d, 0x39, 0x4a, 0x5c, 0x65, 0x1a, 0xc5, 0xc1, 0xc0, 0x34, 0xe6,
+
  0x7e, 0x12, 0x85, 0x6b, 0x35, 0x08, 0xe9, 0xe3, 0xe2, 0xb6, 0xe2, 0x8b,
+
  0x21, 0x26, 0xfb, 0x6a, 0x99, 0xee, 0xa3, 0x9e, 0xf6, 0x76, 0x5a, 0x49,
+
  0xff, 0xce, 0x77, 0xf6, 0xfb, 0xbb, 0x0f, 0xd7, 0x3b, 0x30, 0xd3, 0xf4,
+
  0x03, 0xbd, 0xb5, 0x7c, 0x62, 0x8a, 0xe4, 0xe9, 0x8b, 0xd3, 0xf3, 0x8b,
+
  0xdd, 0x83, 0xb3, 0xd3, 0x37, 0xf0, 0x13, 0x7f, 0xdf, 0xa3, 0xdf, 0xf7,
+
  0xe4, 0xf0, 0x3c, 0xe7, 0x70, 0x72, 0xcb, 0xea, 0x46, 0x63, 0x16, 0x05,
+
  0xa2, 0x8e, 0xc5, 0x97, 0x9e, 0x24, 0x1d, 0xd7, 0x42, 0x07, 0x14, 0x8f,
+
  0x1c, 0xbd, 0x87, 0xd2, 0x43, 0x08, 0x0f, 0xea, 0xb8, 0xb6, 0x3b, 0x1a,
+
  0xe0, 0xda, 0x08, 0x83, 0xd7, 0xe3, 0x65, 0x31, 0x29, 0xd0, 0x65, 0xca,
+
  0xc8, 0x9b, 0xc1, 0xa7, 0xa5, 0xc9, 0xe0, 0x81, 0x78, 0xa8, 0xea, 0x99,
+
  0x00, 0x6a, 0xbd, 0x3e, 0xbd, 0x48, 0x52, 0x32, 0x22, 0x24, 0x72, 0x3f,
+
  0x70, 0x05, 0xaa, 0x6d, 0x76, 0xe2, 0x70, 0xe1, 0x0f, 0x27, 0x8f, 0x2b,
+
  0x62, 0x00, 0xcd, 0x07, 0x68, 0x66, 0x9b, 0x72, 0x67, 0xd0, 0x67, 0x05,
+
  0x2b, 0xf8, 0xfa, 0xa4, 0x1b, 0xf9, 0x9a, 0xbc, 0xab, 0x68, 0x2b, 0x84,
+
  0xc1, 0x2b, 0xc0, 0x8b, 0x8b, 0x13, 0x0f, 0xc0, 0xc0, 0x4a, 0x08, 0xbc,
+
  0x4a, 0x1d, 0x22, 0xd7, 0x8e, 0xac, 0x95, 0x82, 0x28, 0x61, 0x4d, 0xa7,
+
  0x5b, 0xf1, 0xf5, 0x02, 0x6d, 0x29, 0xc6, 0x0b, 0x2a, 0x27, 0x38, 0x7e,
+
  0x89, 0x7a, 0xbb, 0xd5, 0x3c, 0x79, 0x98, 0x08, 0xcf, 0xa3, 0xaf, 0xcb,
+
  0xda, 0x91, 0x63, 0xd0, 0x91, 0xe5, 0x65, 0xcb, 0x0c, 0x03, 0xa4, 0x85,
+
  0x0e, 0xac, 0x07, 0x4d, 0x9b, 0xe3, 0x6e, 0x16, 0x95, 0xa6, 0xff, 0xd3,
+
  0x1e, 0x63, 0x76, 0x52, 0x99, 0x5f, 0x12, 0xca, 0x9f, 0x15, 0xf9, 0xa2,
+
  0x28, 0x08, 0xd7, 0xb1, 0x26, 0xc4, 0x84, 0x27, 0x82, 0x3a, 0x58, 0x2f,
+
  0x65, 0x75, 0x50, 0xd0, 0x73, 0xa9, 0xda, 0x0e, 0x8f, 0xa2, 0x9b, 0x10,
+
  0x9f, 0x34, 0x9b, 0xbe, 0xf2, 0xa8, 0x69, 0x5a, 0x0b, 0x8e, 0x18, 0xc7,
+
  0x7e, 0x58, 0x12, 0xb5, 0x91, 0x20, 0x62, 0x58, 0x19, 0xa6, 0x3d, 0xcd,
+
  0x8e, 0x82, 0x46, 0xa4, 0x21, 0x2e, 0xd3, 0x83, 0xdc, 0xcb, 0x12, 0xec,
+
  0x3a, 0xbb, 0x7b, 0x5f, 0xf7, 0x77, 0xe0, 0xbf, 0xb0, 0xe4, 0x1a, 0x02,
+
  0x22, 0xc5, 0x52, 0x68, 0x79, 0x25, 0xc8, 0x44, 0x5f, 0x90, 0xfd, 0xd2,
+
  0x13, 0x55, 0x94, 0x54, 0x76, 0x28, 0xba, 0xc4, 0x1c, 0x74, 0x9f, 0x63,
+
  0xf1, 0x3e, 0xcb, 0x33, 0x1c, 0xc7, 0x24, 0xac, 0x51, 0x38, 0x0d, 0x36,
+
  0xa2, 0x38, 0x52, 0x0e, 0xe5, 0x5f, 0xb7, 0xcc, 0xa4, 0x38, 0x34, 0x4f,
+
  0x7f, 0xe1, 0x1b, 0x3f, 0x38, 0xb0, 0x96, 0x0e, 0x92, 0x76, 0xa8, 0xf4,
+
  0xb5, 0x07, 0xce, 0xd0, 0x50, 0xa1, 0x64, 0x1b, 0x67, 0x41, 0x58, 0xfb,
+
  0x9a, 0xf2, 0xf1, 0xd1, 0xc3, 0x5d, 0x1a, 0x63, 0xfb, 0x10, 0xa3, 0x77,
+
  0xbc, 0xe1, 0xe5, 0xb7, 0x60, 0x74, 0xac, 0x58, 0xb5, 0x87, 0x0f, 0xf7,
+
  0x0f, 0xf4, 0x6f, 0xe0, 0x27, 0x07, 0x4f, 0xe0, 0x83, 0x7b, 0xf3, 0x5d,
+
  0x57, 0x82, 0x76, 0xb0, 0x87, 0x40, 0x99, 0xeb, 0x51, 0x37, 0xce, 0x20,
+
  0x4f, 0x9e, 0x16, 0xe3, 0x31, 0xdc, 0x12, 0xdf, 0x99, 0x5f, 0x61, 0x81,
+
  0x07, 0xca, 0xd2, 0x49, 0x1d, 0xbc, 0xa8, 0x45, 0x0e, 0xb1, 0x70, 0x40,
+
  0xc8, 0x9c, 0x09, 0xbf, 0x2d, 0x8a, 0x86, 0xcb, 0x33, 0xe2, 0xcf, 0xcd,
+
  0x99, 0x08, 0xe3, 0x1d, 0x1a, 0x83, 0x23, 0xc7, 0x97, 0x2b, 0x45, 0x40,
+
  0x17, 0x5e, 0xf5, 0x3e, 0x9f, 0xcf, 0x49, 0x69, 0xa2, 0x3a, 0x49, 0x31,
+
  0xa2, 0x03, 0x36, 0x11, 0x62, 0xc5, 0x2c, 0xcc, 0x80, 0x92, 0xb6, 0x59,
+
  0x46, 0x1e, 0x64, 0xe3, 0xa2, 0xd4, 0xc2, 0x24, 0x1e, 0x24, 0xd5, 0x88,
+
  0x9a, 0x7d, 0x9a, 0x08, 0x81, 0x93, 0x32, 0x5b, 0x3e, 0x19, 0xf3, 0x0e,
+
  0x92, 0x91, 0x49, 0x40, 0x2e, 0xf8, 0xea, 0x0c, 0x48, 0x02, 0xc1, 0x12,
+
  0x7a, 0x7e, 0xf2, 0xdf, 0xc7, 0x51, 0x94, 0xac, 0xe6, 0xb4, 0x93, 0xae,
+
  0x1c, 0x92, 0x5f, 0x93, 0x4e, 0xef, 0x28, 0xe9, 0x75, 0x14, 0x5c, 0x1f,
+
  0xa1, 0xf6, 0x2d, 0x8a, 0x3c, 0xf6, 0xf0, 0x90, 0x96, 0x20, 0x58, 0x87,
+
  0x20, 0x50, 0x6c, 0x5f, 0x81, 0x94, 0xa7, 0x83, 0x65, 0xa0, 0xbc, 0x38,
+
  0xf1, 0x3e, 0x94, 0x46, 0xb4, 0xcc, 0x2e, 0xde, 0x09, 0x56, 0xab, 0xb7,
+
  0xf3, 0x19, 0x2a, 0xd7, 0x8c, 0x3e, 0x63, 0x0d, 0x8d, 0x19, 0x8b, 0x85,
+
  0x41, 0x34, 0x17, 0x71, 0x42, 0x67, 0x5b, 0x75, 0x36, 0x9c, 0xdd, 0x74,
+
  0x51, 0x8b, 0xdf, 0x39, 0xfb, 0x30, 0x9c, 0x80, 0xa4, 0x04, 0xb4, 0x24,
+
  0xb6, 0x6d, 0xc2, 0x21, 0x38, 0x20, 0xb9, 0x54, 0xcc, 0x91, 0x69, 0xc8,
+
  0x9e, 0x74, 0x0e, 0xaf, 0xa9, 0x64, 0x7a, 0x89, 0x8d, 0xa7, 0x0d, 0x3c,
+
  0x80, 0x0d, 0xe5, 0x58, 0x51, 0x29, 0x2b, 0x2d, 0x66, 0x17, 0x93, 0xa8,
+
  0xaf, 0xb3, 0x1e, 0x28, 0x57, 0x5c, 0xf6, 0x25, 0xc0, 0x83, 0x85, 0x82,
+
  0x79, 0x49, 0x14, 0x89, 0x18, 0x27, 0x1a, 0x7b, 0x6c, 0x04, 0x75, 0x63,
+
  0x3a, 0x62, 0x6f, 0x0b, 0xc7, 0xf9, 0xb4, 0x14, 0xf6, 0x86, 0xc8, 0x04,
+
  0x5b, 0x7e, 0xaf, 0x88, 0x74, 0x94, 0x3c, 0xdc, 0xd9, 0x59, 0xf3, 0x04,
+
  0xe3, 0x32, 0xeb, 0x91, 0x1d, 0xf0, 0x91, 0x2d, 0xde, 0xe7, 0x59, 0xf2,
+
  0x14, 0x9d, 0x47, 0xff, 0xab, 0x0d, 0x22, 0x6a, 0x2b, 0x89, 0xa5, 0x15,
+
  0xf6, 0x5d, 0xa0, 0xc6, 0x96, 0x54, 0x13, 0x94, 0x7a, 0x71, 0x3f, 0xad,
+
  0xa8, 0x60, 0x22, 0xed, 0x29, 0xfc, 0xb3, 0x10, 0x8b, 0x16, 0x2b, 0xb1,
+
  0xc9, 0xd2, 0xdd, 0x75, 0x40, 0x71, 0xc9, 0xd1, 0x41, 0x36, 0x20, 0x5c,
+
  0x7c, 0xdf, 0x40, 0x9f, 0x38, 0x51, 0x5e, 0x4e, 0x8e, 0x28, 0xad, 0x12,
+
  0xea, 0xc3, 0xdd, 0x09, 0x2f, 0x42, 0x4a, 0xd6, 0xe0, 0x15, 0x58, 0x5a,
+
  0xc2, 0x17, 0xc5, 0x06, 0x5d, 0x0e, 0xbb, 0x95, 0xb3, 0xb0, 0x6b, 0x4b,
+
  0xad, 0xac, 0xda, 0x78, 0x9a, 0x74, 0xce, 0xb3, 0xba, 0xc7, 0x2d, 0x1f,
+
  0x74, 0x92, 0x50, 0x56, 0x53, 0x3c, 0x6c, 0x92, 0x4d, 0x36, 0x30, 0x25,
+
  0x58, 0x22, 0xe4, 0xe5, 0x06, 0xc5, 0x52, 0xb9, 0xbb, 0xdf, 0xfe, 0xf9,
+
  0xf0, 0xe5, 0xdb, 0xe3, 0xdd, 0x3f, 0x80, 0x68, 0x06, 0x7f, 0xee, 0xf1,
+
  0x9f, 0x7b, 0x08, 0xef, 0xf7, 0x13, 0x07, 0xff, 0x33, 0xab, 0xe3, 0x72,
+
  0xb6, 0xb5, 0x84, 0x7a, 0x2a, 0x5a, 0x8f, 0x66, 0x6d, 0xe0, 0x00, 0x50,
+
  0x8f, 0x67, 0x03, 0xe2, 0xbc, 0x98, 0x2f, 0x26, 0x1c, 0xab, 0x87, 0x5a,
+
  0x98, 0xad, 0x34, 0xcf, 0x5d, 0x33, 0x07, 0x38, 0x87, 0x43, 0x0b, 0xb5,
+
  0x68, 0x00, 0x92, 0xd6, 0x84, 0xc8, 0x39, 0x23, 0x25, 0xa0, 0x61, 0xa8,
+
  0x7c, 0xb1, 0x59, 0x49, 0x22, 0x94, 0x79, 0xaa, 0x14, 0xc0, 0xd7, 0xf9,
+
  0x74, 0x09, 0x01, 0x69, 0xb4, 0x60, 0xab, 0x67, 0x9c, 0xe2, 0xdf, 0x55,
+
  0xf3, 0x0e, 0xb9, 0xab, 0xf9, 0xae, 0xad, 0x3c, 0x34, 0x2f, 0xbb, 0x1f,
+
  0x44, 0x98, 0xc3, 0x21, 0x70, 0xb9, 0x17, 0xe2, 0x16, 0x6e, 0x0b, 0x89,
+
  0x22, 0xc8, 0x05, 0x63, 0x76, 0x02, 0x20, 0x13, 0x1c, 0x18, 0x5a, 0x6d,
+
  0x3b, 0xdf, 0x76, 0x92, 0xea, 0x76, 0x3a, 0x28, 0x26, 0xce, 0x2b, 0x6b,
+
  0x46, 0x8c, 0x10, 0x43, 0x2f, 0x80, 0x2f, 0x2a, 0x6f, 0x2b, 0xbc, 0x98,
+
  0xb3, 0x3d, 0x9b, 0x01, 0xd7, 0x7c, 0x56, 0x1e, 0xe7, 0xa0, 0x26, 0x18,
+
  0x18, 0x19, 0x18, 0x7b, 0xaf, 0x1c, 0xf0, 0x82, 0xea, 0xa2, 0x78, 0xa4,
+
  0x08, 0x86, 0x3c, 0x35, 0x13, 0xbe, 0xee, 0x89, 0x84, 0x67, 0x4b, 0x00,
+
  0xa3, 0x07, 0xbc, 0xc1, 0x40, 0x1e, 0x4b, 0x8b, 0x98, 0xc1, 0x21, 0x65,
+
  0x38, 0x75, 0xdd, 0x6a, 0x7e, 0x83, 0xe4, 0xd8, 0x41, 0x46, 0xda, 0xdb,
+
  0x6d, 0x62, 0x98, 0x49, 0xa4, 0xbf, 0xb9, 0x04, 0xfc, 0x10, 0x0b, 0x59,
+
  0x4c, 0x07, 0x72, 0xfd, 0x04, 0x3a, 0xa0, 0xf8, 0xee, 0x89, 0x15, 0x07,
+
  0xb5, 0xf3, 0x8b, 0xdc, 0x0f, 0x1d, 0x97, 0xc1, 0x27, 0xc9, 0x05, 0x2e,
+
  0x3c, 0x04, 0x5b, 0x15, 0xf9, 0xc0, 0xd8, 0xee, 0xb8, 0xe4, 0x19, 0x90,
+
  0x15, 0x14, 0x78, 0x14, 0x66, 0xc8, 0x6c, 0xfe, 0x4e, 0x36, 0x3b, 0xbd,
+
  0xce, 0x96, 0xf9, 0xbd, 0xd3, 0x51, 0x15, 0x55, 0x3c, 0xa9, 0x9a, 0x98,
+
  0x4a, 0xc1, 0xad, 0x14, 0x0c, 0xeb, 0x39, 0x83, 0xbd, 0x7b, 0x25, 0x01,
+
  0x9a, 0xc5, 0x34, 0x32, 0x09, 0x62, 0x0a, 0x67, 0x97, 0xee, 0x09, 0x59,
+
  0x7a, 0xba, 0xac, 0xf4, 0xcc, 0xdc, 0xb3, 0x3b, 0x56, 0x63, 0x58, 0x95,
+
  0x0c, 0xd9, 0x07, 0x7f, 0x9b, 0x68, 0x02, 0x37, 0x66, 0xc0, 0x14, 0x6e,
+
  0x90, 0x1c, 0x75, 0x9b, 0x8e, 0xec, 0x25, 0x99, 0x8e, 0xf1, 0x06, 0x34,
+
  0x77, 0xe9, 0xfe, 0x10, 0xff, 0xb2, 0x88, 0x8a, 0xcd, 0xc0, 0x5e, 0x50,
+
  0x39, 0xb9, 0x9d, 0x64, 0x5b, 0x26, 0x9f, 0x27, 0xaf, 0xb3, 0x9a, 0x7c,
+
  0x3f, 0xdb, 0xaf, 0x8a, 0x7f, 0xe4, 0x93, 0x49, 0xaa, 0xed, 0xbb, 0x1c,
+
  0x21, 0x49, 0x42, 0x6f, 0x0e, 0x32, 0xa8, 0x22, 0x76, 0x67, 0xf1, 0x8a,
+
  0x54, 0x76, 0x91, 0xb2, 0x0f, 0x75, 0x46, 0x25, 0x65, 0x92, 0xd7, 0x85,
+
  0x0e, 0x5d, 0x1d, 0xb1, 0x19, 0x99, 0xfe, 0xeb, 0x6c, 0xc6, 0xca, 0x4c,
+
  0x2a, 0x49, 0x64, 0x54, 0x75, 0x4a, 0x82, 0x69, 0x8d, 0x52, 0x55, 0x7d,
+
  0xb2, 0x7e, 0x7a, 0xbf, 0x6a, 0xc4, 0x86, 0xa1, 0x4b, 0x3f, 0x70, 0xc0,
+
  0xd8, 0xfa, 0xbc, 0x9b, 0xbb, 0xc4, 0x8d, 0xf3, 0xda, 0x72, 0xe1, 0x01,
+
  0x01, 0xe0, 0x56, 0x67, 0x87, 0xe0, 0x4a, 0x46, 0x79, 0xc2, 0xe1, 0x8e,
+
  0xb1, 0xe8, 0x6b, 0x02, 0x78, 0x24, 0xc8, 0x30, 0x16, 0xc6, 0x18, 0x8c,
+
  0x12, 0xb4, 0x2b, 0x2a, 0x47, 0x80, 0x9a, 0x15, 0xdb, 0x88, 0x44, 0x74,
+
  0x49, 0x47, 0x23, 0x09, 0x7f, 0xa1, 0x6c, 0x7c, 0x4c, 0x76, 0xd0, 0x77,
+
  0x30, 0x60, 0x20, 0x0c, 0x90, 0xe4, 0x97, 0x4d, 0x06, 0x79, 0xe3, 0xe5,
+
  0x10, 0x80, 0x69, 0x59, 0xb1, 0x6a, 0x31, 0xe0, 0xf7, 0x2a, 0xda, 0x40,
+
  0xb6, 0x3f, 0x62, 0x8d, 0xca, 0x03, 0x9b, 0xae, 0x6e, 0x67, 0x63, 0xd3,
+
  0x30, 0x46, 0xb8, 0xe2, 0xba, 0xd2, 0x1c, 0x52, 0xcf, 0x6a, 0xc7, 0xa0,
+
  0x80, 0x8d, 0x8b, 0xa9, 0x4a, 0x8b, 0x65, 0x38, 0x8b, 0x3d, 0x3b, 0xc9,
+
  0xc4, 0xe8, 0x32, 0x1f, 0x71, 0x35, 0x2f, 0x7d, 0x1e, 0x7d, 0x7e, 0x01,
+
  0xdf, 0x87, 0x5d, 0x43, 0x55, 0xa1, 0x6c, 0x83, 0x7b, 0x08, 0xb4, 0xe1,
+
  0xb1, 0x19, 0xc2, 0x36, 0x46, 0xc6, 0xdd, 0x48, 0x98, 0x13, 0xe1, 0x2e,
+
  0xda, 0xdd, 0x38, 0x23, 0x82, 0x68, 0xef, 0x0c, 0xad, 0x09, 0x67, 0x58,
+
  0x3d, 0x64, 0x98, 0x9c, 0x13, 0x84, 0x7f, 0xf2, 0x32, 0xaf, 0xea, 0x2d,
+
  0x0d, 0x4c, 0x62, 0x0f, 0xc6, 0x28, 0xab, 0xf1, 0x96, 0x08, 0xf6, 0xac,
+
  0x51, 0x0e, 0x6b, 0x55, 0x8e, 0xaa, 0x30, 0x79, 0x03, 0x8d, 0x6d, 0x96,
+
  0x43, 0x26, 0xad, 0x95, 0xab, 0x03, 0x28, 0x95, 0x54, 0xce, 0xbe, 0x21,
+
  0xc7, 0x50, 0xf2, 0xbd, 0xd9, 0xd2, 0xc9, 0x3a, 0x3a, 0xa5, 0x7d, 0xea,
+
  0x39, 0x8f, 0xc6, 0xcf, 0x52, 0x20, 0x4e, 0xc2, 0xf9, 0xb1, 0x69, 0x2a,
+
  0xd1, 0xa8, 0x2d, 0x76, 0x23, 0x49, 0x35, 0x05, 0x9d, 0xe4, 0x95, 0xba,
+
  0x98, 0x53, 0x6c, 0x39, 0xd5, 0x08, 0x55, 0x3e, 0x12, 0x2d, 0xed, 0xa7,
+
  0xab, 0x77, 0x0d, 0xa1, 0x70, 0x80, 0x38, 0x96, 0xf7, 0x49, 0x85, 0x03,
+
  0x19, 0xc5, 0xca, 0x08, 0xc7, 0x95, 0x0f, 0xf7, 0x86, 0x1f, 0xf7, 0x2a,
+
  0x15, 0x32, 0xfc, 0xaf, 0x74, 0xb6, 0x6e, 0x20, 0x65, 0xa0, 0x33, 0x56,
+
  0x24, 0x7f, 0x5d, 0xcc, 0xde, 0xf7, 0xa4, 0x90, 0x47, 0x2f, 0xb0, 0x60,
+
  0x5a, 0xba, 0x61, 0x37, 0x7e, 0xe3, 0x69, 0xbb, 0x88, 0x6a, 0xbe, 0xd9,
+
  0x42, 0xaf, 0x50, 0x1a, 0xbb, 0x65, 0xac, 0xc8, 0xe5, 0x6b, 0x05, 0x17,
+
  0x48, 0xe7, 0x8f, 0xb9, 0x1f, 0xa1, 0x92, 0x7a, 0x50, 0xd2, 0x24, 0xa0,
+
  0xfb, 0xf5, 0x31, 0xb6, 0x7f, 0x62, 0x85, 0xb9, 0xe8, 0xf5, 0xf8, 0x80,
+
  0xa2, 0x48, 0xa6, 0x97, 0x7a, 0x8f, 0x31, 0x40, 0x9d, 0x2c, 0x0c, 0xbc,
+
  0x93, 0x50, 0xdb, 0xad, 0xe4, 0x9e, 0x88, 0x7f, 0x72, 0xa6, 0x35, 0xd8,
+
  0x3b, 0xa1, 0x18, 0x5d, 0xcd, 0xf9, 0x0f, 0xb5, 0x3b, 0xfa, 0x58, 0x26,
+
  0x9b, 0xa3, 0x41, 0x67, 0x45, 0xe8, 0x18, 0xcf, 0xc5, 0xfb, 0x59, 0x71,
+
  0x43, 0xa5, 0xfe, 0x9c, 0xf3, 0x4d, 0xe4, 0x1c, 0x38, 0xf6, 0xde, 0xe2,
+
  0x57, 0x27, 0xac, 0x03, 0x55, 0x8c, 0xdd, 0xcd, 0xde, 0x11, 0xb8, 0x16,
+
  0x0c, 0xbe, 0x35, 0x9e, 0x90, 0xde, 0x73, 0x4b, 0x80, 0x2a, 0xa6, 0x23,
+
  0x1a, 0x6b, 0x1b, 0x3a, 0x76, 0xae, 0x00, 0x29, 0xc2, 0xf5, 0x49, 0xb6,
+
  0xf5, 0xf7, 0xba, 0x79, 0xa7, 0x63, 0x89, 0xa1, 0x8b, 0x1e, 0xf3, 0xae,
+
  0xbb, 0xa4, 0xab, 0xe6, 0x75, 0x24, 0x55, 0xe7, 0xee, 0xb9, 0xf4, 0x1a,
+
  0x6c, 0x2c, 0x32, 0xac, 0x52, 0x0d, 0x5f, 0xa9, 0xa7, 0x06, 0x97, 0x5f,
+
  0x74, 0xe3, 0x4b, 0x8c, 0x75, 0xea, 0x60, 0xd6, 0xc2, 0xd5, 0xc7, 0x21,
+
  0x4d, 0x2b, 0x2f, 0xbe, 0xe8, 0xd2, 0x4b, 0x7e, 0x40, 0x06, 0xab, 0xca,
+
  0xa5, 0x87, 0x31, 0x37, 0x86, 0xea, 0x71, 0x5c, 0x56, 0xab, 0xcb, 0x77,
+
  0x8b, 0x2e, 0x7c, 0x1b, 0x91, 0x5c, 0xd9, 0x00, 0x84, 0x29, 0x47, 0x06,
+
  0x42, 0xe1, 0xd8, 0x1c, 0xeb, 0xc5, 0xda, 0x88, 0x17, 0x60, 0x43, 0x47,
+
  0x1a, 0x25, 0xd9, 0x90, 0xf3, 0xe4, 0x25, 0x5c, 0x4f, 0x51, 0x95, 0x91,
+
  0xa3, 0x2a, 0x91, 0x49, 0x65, 0x35, 0xde, 0x24, 0xde, 0xc0, 0x9b, 0xab,
+
  0x62, 0x12, 0x79, 0x01, 0x1b, 0x35, 0x36, 0xb8, 0xfa, 0x03, 0x16, 0xe0,
+
  0xa2, 0xd8, 0x1f, 0xa2, 0x6c, 0x8e, 0x8d, 0x64, 0x81, 0x8f, 0xf4, 0x73,
+
  0x04, 0x16, 0x2f, 0xd1, 0x05, 0x17, 0x67, 0xd6, 0x0b, 0x9c, 0x35, 0xe3,
+
  0x09, 0xa7, 0x70, 0xb4, 0x4b, 0x4e, 0xbb, 0x94, 0xda, 0x2d, 0x5a, 0xa5,
+
  0x5b, 0x2e, 0x6b, 0xa6, 0x53, 0x26, 0x81, 0xeb, 0x1c, 0x61, 0x56, 0x95,
+
  0x90, 0xb3, 0x6c, 0xc4, 0x17, 0x25, 0x71, 0x88, 0x4b, 0xc2, 0x79, 0xe7,
+
  0xf2, 0x10, 0x22, 0x59, 0x1b, 0x2c, 0x2b, 0x46, 0xc8, 0x5c, 0x61, 0xe0,
+
  0x49, 0x95, 0xd7, 0x0b, 0x61, 0x06, 0xb1, 0xf3, 0xc4, 0x93, 0xdb, 0xdd,
+
  0x49, 0x39, 0x2e, 0x21, 0xe7, 0xe3, 0x9d, 0x27, 0x43, 0x16, 0xc1, 0x7a,
+
  0x14, 0xdd, 0xb0, 0xca, 0x69, 0x78, 0xe7, 0x0b, 0xc0, 0xaa, 0x91, 0x94,
+
  0x7b, 0x30, 0x92, 0xea, 0xa3, 0x78, 0xf5, 0x1a, 0x7c, 0xba, 0xc7, 0x04,
+
  0xd1, 0x03, 0xcd, 0xaf, 0x72, 0x91, 0x0b, 0xa6, 0xa0, 0x81, 0xe4, 0xff,
+
  0xab, 0x18, 0x01, 0x9c, 0x82, 0xa2, 0x65, 0x5c, 0x42, 0x3c, 0x8a, 0x14,
+
  0x60, 0xa3, 0xc6, 0x1c, 0x96, 0xd8, 0x2c, 0x43, 0x6c, 0x86, 0xb4, 0xbc,
+
  0x15, 0x3f, 0x9c, 0x47, 0x73, 0xb8, 0xca, 0x61, 0x9d, 0xcb, 0xe1, 0xd5,
+
  0x2d, 0x99, 0xbd, 0xd1, 0xa4, 0x9e, 0x8d, 0xfa, 0xb1, 0xd1, 0x42, 0xce,
+
  0x08, 0xb7, 0x2a, 0x5b, 0xa1, 0x2d, 0x10, 0xcb, 0x43, 0xb5, 0x11, 0x9e,
+
  0xc3, 0x7d, 0x8b, 0xf5, 0x27, 0x1d, 0x5f, 0xdc, 0x10, 0xa9, 0x5b, 0xc6,
+
  0x73, 0x18, 0x24, 0x03, 0xd3, 0x2a, 0x03, 0xd5, 0xd0, 0x1e, 0x8b, 0x1c,
+
  0xce, 0x6d, 0xe0, 0xd2, 0xf4, 0x35, 0xba, 0x38, 0x6b, 0x34, 0x24, 0xdd,
+
  0x98, 0xf6, 0x43, 0x4c, 0x76, 0x56, 0x44, 0x39, 0x94, 0x5c, 0xac, 0xb8,
+
  0x39, 0x76, 0x8b, 0x6d, 0x96, 0x29, 0x84, 0x00, 0x67, 0x01, 0x3f, 0x9d,
+
  0x15, 0xd1, 0x54, 0xc9, 0xb7, 0x2e, 0x40, 0xa8, 0xb2, 0xdf, 0x47, 0x72,
+
  0x96, 0xa3, 0x15, 0xc1, 0xe7, 0xa6, 0xe9, 0x48, 0x11, 0x09, 0xa6, 0x54,
+
  0xba, 0x76, 0xe7, 0xeb, 0x47, 0x3b, 0x94, 0x04, 0xf0, 0x96, 0x80, 0xc6,
+
  0x51, 0x75, 0xf1, 0x38, 0x13, 0x9c, 0x5c, 0x18, 0xd4, 0xa7, 0x42, 0xd7,
+
  0xdc, 0x40, 0x0c, 0xe3, 0x3e, 0xd8, 0xbd, 0xa9, 0xa2, 0x29, 0x1a, 0x47,
+
  0x49, 0x0f, 0xc2, 0x50, 0xde, 0x2e, 0x29, 0xa3, 0xb7, 0x7a, 0xca, 0xc6,
+
  0xf5, 0xdc, 0x53, 0x58, 0xbf, 0x91, 0x49, 0x14, 0xbe, 0x59, 0x15, 0x69,
+
  0xfb, 0xb1, 0x89, 0x44, 0xae, 0xaf, 0xbb, 0x2d, 0xed, 0xae, 0x6b, 0xa3,
+
  0x16, 0x43, 0xa7, 0xd8, 0x5e, 0x3f, 0xbd, 0xa4, 0x31, 0x43, 0x39, 0x72,
+
  0x8e, 0x74, 0x1a, 0x07, 0x0d, 0x5b, 0xee, 0xd1, 0xae, 0x3c, 0xc5, 0x9f,
+
  0x2a, 0x0e, 0x11, 0x58, 0x2d, 0xc6, 0x43, 0x63, 0xc0, 0x89, 0x00, 0xf2,
+
  0x9a, 0x84, 0xcb, 0x4e, 0x25, 0xf4, 0x33, 0xf0, 0xae, 0xb0, 0x49, 0x57,
+
  0x0b, 0x5b, 0xca, 0x46, 0xa8, 0x4a, 0x6d, 0x29, 0x06, 0x01, 0xd8, 0xc7,
+
  0x95, 0xfd, 0x8c, 0x80, 0x18, 0x50, 0xba, 0x66, 0x5e, 0x4b, 0x99, 0xc7,
+
  0x5c, 0x54, 0x4f, 0xa5, 0x68, 0x92, 0xc6, 0x36, 0x70, 0x8c, 0x1b, 0xf2,
+
  0x85, 0x85, 0xea, 0x72, 0x78, 0x6f, 0x2d, 0x54, 0x42, 0xa1, 0x07, 0x54,
+
  0xc2, 0xc0, 0x81, 0xfe, 0x86, 0xb3, 0xa2, 0xc1, 0x46, 0x3b, 0x8f, 0x1f,
+
  0x3e, 0x8c, 0xae, 0x4f, 0x0f, 0x6c, 0xa5, 0x8e, 0xee, 0x19, 0xcd, 0x61,
+
  0x58, 0x23, 0xe3, 0x56, 0xe7, 0x00, 0x7b, 0xc5, 0xcc, 0x4a, 0xd4, 0x4f,
+
  0x62, 0x3e, 0xde, 0x5c, 0xd6, 0xbb, 0x32, 0x2c, 0xdb, 0x78, 0xb9, 0xd9,
+
  0xf0, 0xd7, 0xc8, 0x4e, 0x69, 0xf6, 0xb5, 0xf3, 0xf5, 0xd7, 0x5f, 0x27,
+
  0xbd, 0x0b, 0x26, 0x1c, 0x96, 0x6b, 0x96, 0xa3, 0xb5, 0x67, 0xd9, 0xcd,
+
  0x1a, 0x10, 0xa4, 0xcd, 0x93, 0x12, 0xc8, 0x66, 0x32, 0xf6, 0x78, 0xcd,
+
  0xaf, 0xa4, 0xb0, 0xc3, 0x35, 0x66, 0x41, 0xb1, 0xe4, 0x31, 0x56, 0x6f,
+
  0x24, 0x28, 0x61, 0x65, 0x4e, 0x02, 0x6b, 0x99, 0xd5, 0x8b, 0x72, 0x96,
+
  0xcc, 0x27, 0x8b, 0xca, 0x3f, 0x64, 0x38, 0x68, 0xec, 0xdd, 0xa0, 0x5b,
+
  0x3a, 0x1b, 0x2f, 0x26, 0x92, 0x35, 0xfc, 0xea, 0xcf, 0xe7, 0xc9, 0xe6,
+
  0xe9, 0xf9, 0xf6, 0xfe, 0x37, 0x04, 0x14, 0xd5, 0x38, 0xab, 0x93, 0xf1,
+
  0x67, 0x42, 0x38, 0x84, 0x96, 0xee, 0x5b, 0x67, 0xe8, 0x0b, 0x96, 0x95,
+
  0x25, 0xd3, 0x35, 0xc2, 0xdf, 0x61, 0xeb, 0xb8, 0xec, 0x46, 0xb4, 0x6c,
+
  0xf8, 0xf6, 0x32, 0x40, 0xa1, 0x4c, 0x2b, 0x4b, 0x82, 0x72, 0x2e, 0x8c,
+
  0x8c, 0xf2, 0xcb, 0x0c, 0x65, 0x45, 0x6a, 0x16, 0xc5, 0x69, 0xa9, 0xea,
+
  0x14, 0xbb, 0x56, 0xf3, 0x1c, 0xaa, 0xc7, 0x2c, 0xb6, 0xa0, 0xed, 0xcf,
+
  0x40, 0x10, 0x10, 0x7a, 0x29, 0xce, 0xd3, 0x36, 0x8d, 0xd8, 0x47, 0xb6,
+
  0xb8, 0xe0, 0x11, 0xc9, 0x07, 0xb5, 0xbc, 0x3a, 0x19, 0xff, 0x97, 0x4c,
+
  0x18, 0x96, 0x2e, 0xca, 0xec, 0x57, 0x54, 0xe7, 0x3f, 0x06, 0xd6, 0x8a,
+
  0x52, 0xf0, 0x24, 0x3f, 0x8a, 0x90, 0x7d, 0xc2, 0xba, 0x53, 0xba, 0x54,
+
  0x5b, 0x26, 0x5d, 0x56, 0x07, 0x54, 0x7b, 0x79, 0x4a, 0x4a, 0xbe, 0x6b,
+
  0xd1, 0x43, 0x8c, 0x65, 0xb0, 0xba, 0x90, 0x16, 0x4b, 0x31, 0x35, 0x7b,
+
  0x78, 0x3a, 0x44, 0x31, 0x99, 0x8c, 0x3a, 0x45, 0x82, 0xc8, 0x20, 0x4f,
+
  0x1e, 0xee, 0xed, 0x75, 0x93, 0x47, 0x58, 0xa2, 0xc0, 0x00, 0xae, 0x42,
+
  0x5e, 0xd5, 0x12, 0xca, 0x55, 0x80, 0x07, 0x67, 0xaf, 0x87, 0x04, 0x9c,
+
  0x4d, 0xb5, 0x18, 0xc9, 0x41, 0x47, 0x42, 0x29, 0x3a, 0x7f, 0xd9, 0x7b,
+
  0xf4, 0x68, 0xf7, 0x9b, 0x83, 0xb3, 0xde, 0xa3, 0xbd, 0xdd, 0xce, 0x96,
+
  0xc8, 0xe1, 0x21, 0x46, 0x7d, 0x19, 0xbd, 0x24, 0xc9, 0x47, 0x6c, 0x53,
+
  0x27, 0x2f, 0x99, 0x5a, 0xb6, 0x2d, 0xb5, 0xb6, 0x53, 0xbd, 0xe3, 0xec,
+
  0x51, 0x8b, 0x7c, 0xa8, 0xde, 0xb1, 0xe3, 0xa2, 0x23, 0x62, 0x24, 0xc1,
+
  0x54, 0x39, 0x13, 0xa6, 0xad, 0xa4, 0x30, 0x69, 0x20, 0x44, 0x6b, 0xed,
+
  0xa3, 0xc0, 0xa8, 0x68, 0x6e, 0xe4, 0xa4, 0x99, 0x48, 0x72, 0x76, 0xb2,
+
  0x79, 0x7c, 0xb4, 0xc5, 0x5b, 0x10, 0x45, 0x22, 0x29, 0x1c, 0x37, 0x8f,
+
  0xb4, 0x2b, 0x45, 0x35, 0xec, 0x66, 0x99, 0x15, 0x33, 0xb2, 0x32, 0x63,
+
  0x68, 0x04, 0x2a, 0xe6, 0xf4, 0xd4, 0xb6, 0xb8, 0x5f, 0x34, 0xc9, 0xd1,
+
  0xfb, 0x8a, 0x96, 0x6b, 0x68, 0x2c, 0xe3, 0x52, 0xc9, 0x24, 0x29, 0xfb,
+
  0x91, 0xed, 0x50, 0x54, 0x69, 0x5c, 0xe7, 0x1a, 0x0c, 0x9c, 0x06, 0x57,
+
  0xc5, 0xa7, 0x83, 0x5f, 0x6b, 0x8d, 0x78, 0x5a, 0xf2, 0xdc, 0x7d, 0x1a,
+
  0xe4, 0x1b, 0xf7, 0xc0, 0x84, 0xb0, 0x26, 0xaa, 0xf4, 0x7e, 0x83, 0xa5,
+
  0x6b, 0x0e, 0xa5, 0x9c, 0x8d, 0x51, 0x57, 0xeb, 0x7d, 0x91, 0xd3, 0xce,
+
  0x1b, 0x42, 0xa8, 0x36, 0x2f, 0x9e, 0x91, 0x99, 0x58, 0xdc, 0x83, 0x7a,
+
  0x2c, 0xe5, 0xd7, 0x11, 0xf6, 0x03, 0xcb, 0x34, 0x6a, 0x58, 0x89, 0xf7,
+
  0xb0, 0x79, 0x47, 0x58, 0x37, 0xb2, 0x01, 0xde, 0xa4, 0xb7, 0xc2, 0x78,
+
  0x92, 0x41, 0x09, 0x64, 0x84, 0x55, 0x3d, 0x0b, 0x4a, 0x66, 0x25, 0xa8,
+
  0x1d, 0xbe, 0xf5, 0x91, 0x7f, 0x03, 0x23, 0x98, 0x84, 0x82, 0x14, 0x78,
+
  0x0f, 0xbf, 0xb8, 0x78, 0xf5, 0x52, 0xaa, 0xab, 0x31, 0xa6, 0x08, 0x66,
+
  0x17, 0x89, 0x3b, 0xa0, 0x5a, 0x0c, 0xa6, 0x39, 0x6e, 0x58, 0x5d, 0x5b,
+
  0x62, 0x96, 0xde, 0xe5, 0x4d, 0xdd, 0xd6, 0xb9, 0x0a, 0x93, 0x50, 0x09,
+
  0x42, 0xfe, 0xd6, 0x14, 0x2d, 0x57, 0x4b, 0xde, 0x9c, 0x0d, 0x94, 0xa2,
+
  0xbb, 0x84, 0x68, 0xb9, 0xfd, 0xa1, 0x77, 0x73, 0x73, 0xd3, 0xc3, 0x81,
+
  0x61, 0x40, 0xbc, 0x40, 0xa0, 0xf4, 0xe1, 0x46, 0xa4, 0x98, 0x1d, 0x0e,
+
  0xeb, 0xc7, 0x6f, 0xc3, 0x41, 0xc2, 0x4e, 0x7b, 0x65, 0x7a, 0xa3, 0xc5,
+
  0xf7, 0xa8, 0x96, 0x88, 0x2b, 0xf2, 0xc5, 0x95, 0x59, 0x5c, 0x19, 0x78,
+
  0x46, 0x98, 0x4b, 0xc5, 0x76, 0xa9, 0x0e, 0x61, 0xcb, 0x8b, 0x4c, 0xeb,
+
  0x50, 0x9f, 0x2b, 0xf9, 0xde, 0x97, 0x1f, 0x02, 0xc1, 0x19, 0x4b, 0x31,
+
  0x8b, 0xef, 0x72, 0x51, 0xa2, 0x70, 0x86, 0xfe, 0x1d, 0x02, 0x16, 0x35,
+
  0x0f, 0xb9, 0xd8, 0x38, 0xad, 0xd6, 0x92, 0x33, 0x4c, 0xd0, 0x50, 0xf9,
+
  0x8d, 0x60, 0x99, 0x40, 0x71, 0xfc, 0xed, 0x9b, 0x97, 0x02, 0xf7, 0xe2,
+
  0x98, 0x3e, 0x93, 0x33, 0xa5, 0x74, 0xd0, 0x46, 0x01, 0xbd, 0x4c, 0xb8,
+
  0xec, 0x17, 0xde, 0x45, 0xd8, 0xac, 0xb4, 0x68, 0x0b, 0xe5, 0x8e, 0xa6,
+
  0xd4, 0xfe, 0x63, 0x9d, 0x52, 0xed, 0x1e, 0x2a, 0x6b, 0x86, 0x2c, 0x0b,
+
  0x2a, 0xcf, 0xa6, 0x29, 0xe9, 0xde, 0xae, 0x1c, 0x22, 0x66, 0x45, 0xac,
+
  0xe2, 0xbd, 0x9d, 0xe7, 0x19, 0xc1, 0xe6, 0x07, 0x02, 0x26, 0x2b, 0xf0,
+
  0x34, 0x2b, 0x2f, 0x35, 0xe1, 0x46, 0x9c, 0xa7, 0xca, 0x82, 0xb9, 0xa1,
+
  0xff, 0xd9, 0x63, 0xff, 0x20, 0xf1, 0xda, 0x05, 0x21, 0x9d, 0x33, 0x4d,
+
  0x6c, 0x60, 0x2d, 0x3f, 0xb2, 0x54, 0x8e, 0xd2, 0x19, 0x4c, 0x30, 0xa1,
+
  0xe2, 0x7e, 0xd5, 0x7b, 0x20, 0xd8, 0x6f, 0x27, 0xc5, 0xa2, 0xba, 0xdd,
+
  0x48, 0xa4, 0x6e, 0x2a, 0x37, 0xc4, 0x95, 0xe3, 0x6a, 0x0a, 0x59, 0xc1,
+
  0xbd, 0x18, 0x5e, 0x81, 0xf6, 0x2b, 0xc9, 0x2c, 0x04, 0x39, 0x4b, 0x69,
+
  0x3d, 0x1b, 0xae, 0xc5, 0xff, 0xe9, 0x1b, 0x6b, 0x78, 0x3f, 0xa4, 0x80,
+
  0x5a, 0x6d, 0x3e, 0xe4, 0x00, 0xef, 0x2e, 0x19, 0x38, 0xdf, 0x0b, 0x47,
+
  0x2b, 0x29, 0xd8, 0xcb, 0xb9, 0x91, 0x1c, 0x3a, 0x9c, 0x3a, 0x2c, 0xc9,
+
  0x20, 0x65, 0x6d, 0xa1, 0xc5, 0x8a, 0xb4, 0x43, 0x0e, 0xa1, 0xb5, 0x52,
+
  0xad, 0xca, 0xd5, 0xd9, 0x9f, 0x10, 0xe4, 0x68, 0x7d, 0x27, 0x51, 0xdf,
+
  0xdb, 0x99, 0x94, 0xfd, 0xf6, 0x5f, 0xa5, 0x1e, 0x3f, 0x37, 0xd9, 0x18,
+
  0x17, 0xc5, 0x20, 0x2d, 0x37, 0xa2, 0x15, 0xc2, 0x1a, 0x36, 0x38, 0x42,
+
  0xf2, 0x0a, 0x8b, 0x58, 0x46, 0x2d, 0x7c, 0xcf, 0x4f, 0xf7, 0xb5, 0xda,
+
  0x1c, 0xb3, 0x1e, 0xbc, 0xa6, 0x27, 0xa3, 0xe0, 0x6f, 0xc5, 0x7e, 0x14,
+
  0x31, 0x80, 0xab, 0x57, 0x48, 0x9e, 0x14, 0xe2, 0x3b, 0x36, 0x25, 0x50,
+
  0xd8, 0x48, 0x10, 0x7f, 0x91, 0x4a, 0x2a, 0x49, 0x59, 0xc1, 0x38, 0x36,
+
  0x49, 0xd9, 0x31, 0xff, 0x34, 0x7a, 0x09, 0x31, 0xd6, 0x87, 0x02, 0x52,
+
  0x74, 0xe9, 0xc5, 0xa9, 0x44, 0x4b, 0xd2, 0x38, 0x69, 0xe6, 0x0f, 0xd0,
+
  0x4a, 0x39, 0x2b, 0xce, 0xa8, 0x3b, 0x02, 0x78, 0xfe, 0x35, 0x8a, 0xd3,
+
  0x43, 0x30, 0xd0, 0xca, 0xb1, 0x13, 0x2f, 0xce, 0x1c, 0x16, 0x7f, 0x76,
+
  0x52, 0xcc, 0xac, 0x9a, 0xb0, 0x70, 0x2b, 0xbb, 0x4c, 0x97, 0xf0, 0xb9,
+
  0x8a, 0x59, 0x12, 0xa5, 0x32, 0x4a, 0x04, 0x02, 0xf3, 0xc1, 0x50, 0x13,
+
  0x73, 0xc8, 0xd2, 0x7b, 0x57, 0xea, 0x94, 0x3a, 0x80, 0xe2, 0x29, 0x36,
+
  0x95, 0x71, 0x6a, 0xea, 0x89, 0x00, 0xed, 0xcc, 0xad, 0xc0, 0x4a, 0xd0,
+
  0xd2, 0xe6, 0x2a, 0xc2, 0x06, 0xc2, 0x8c, 0xa2, 0x2b, 0x40, 0x4e, 0xa2,
+
  0xa0, 0x39, 0x62, 0x84, 0xba, 0x93, 0x9f, 0xcb, 0x8b, 0x31, 0x4a, 0x3a,
+
  0x74, 0x7a, 0xf0, 0xaf, 0xfb, 0xdd, 0x19, 0xf1, 0xd3, 0xf8, 0x67, 0x5d,
+
  0x14, 0x93, 0x6f, 0x87, 0xd3, 0x11, 0x76, 0xb4, 0xce, 0xfb, 0xdf, 0xdb,
+
  0x11, 0x5a, 0x7d, 0x0d, 0x5f, 0x2c, 0xc1, 0x10, 0x87, 0x98, 0x25, 0x17,
+
  0xb4, 0x64, 0xc6, 0x66, 0xab, 0xbf, 0x79, 0x45, 0x87, 0xcc, 0xbb, 0xd3,
+
  0x5c, 0x61, 0x16, 0xc5, 0x11, 0x14, 0x8b, 0x6b, 0xc4, 0x9f, 0xbb, 0xe1,
+
  0x6e, 0x31, 0xf6, 0x1a, 0x37, 0xa4, 0x74, 0x67, 0xb2, 0x31, 0x7d, 0x40,
+
  0x6a, 0xca, 0xb2, 0x04, 0xb0, 0x04, 0xf6, 0xcb, 0x95, 0xca, 0xa8, 0x6c,
+
  0x6d, 0x9e, 0x0a, 0x50, 0x36, 0x37, 0xd1, 0x8f, 0x9b, 0x0a, 0x05, 0xa0,
+
  0x3e, 0x47, 0x04, 0xa2, 0x6b, 0xf8, 0xfb, 0xf5, 0x8d, 0x20, 0xd1, 0xba,
+
  0xb8, 0x13, 0x27, 0x75, 0x88, 0x9a, 0x77, 0x90, 0x5b, 0x0e, 0xb9, 0xec,
+
  0x5a, 0xd6, 0xe3, 0x8c, 0xae, 0x69, 0xa2, 0x5c, 0x77, 0xe2, 0x7c, 0x1e,
+
  0x27, 0x6d, 0x66, 0x48, 0x7d, 0x57, 0x24, 0x58, 0xbb, 0x53, 0xb0, 0x4c,
+
  0x7c, 0x55, 0xe0, 0x62, 0x7c, 0x31, 0xae, 0x0e, 0xba, 0xc2, 0xf7, 0xbd,
+
  0x8e, 0x0f, 0x14, 0x59, 0xe6, 0xf1, 0xca, 0xae, 0x9f, 0xf1, 0x39, 0xad,
+
  0xe8, 0x5e, 0xf2, 0xc2, 0x56, 0x62, 0x19, 0x78, 0x08, 0xf4, 0x3a, 0x93,
+
  0xca, 0xe0, 0x5a, 0x1b, 0x16, 0xf9, 0x86, 0x15, 0xe7, 0x14, 0x0b, 0xb9,
+
  0xf1, 0xd4, 0x40, 0x6f, 0xc6, 0x79, 0x85, 0xf1, 0xd2, 0xbd, 0x8b, 0x52,
+
  0x1b, 0x32, 0x2d, 0xf6, 0x2d, 0x30, 0xdf, 0xa9, 0xac, 0x84, 0x2a, 0xfb,
+
  0xd9, 0x29, 0xaf, 0x40, 0xd6, 0xe7, 0x25, 0xb1, 0x72, 0xed, 0x39, 0x86,
+
  0x60, 0xf6, 0x62, 0x99, 0xf8, 0xee, 0x83, 0x24, 0xa7, 0x82, 0x9c, 0x29,
+
  0x46, 0xf7, 0x4b, 0x6c, 0x5a, 0x32, 0x5a, 0xdd, 0xe8, 0x41, 0x86, 0xf0,
+
  0x1a, 0xb2, 0x0b, 0xfe, 0x81, 0x31, 0x0f, 0xf2, 0xba, 0x24, 0xd9, 0x48,
+
  0x65, 0x24, 0x7e, 0x41, 0x35, 0x17, 0x1d, 0x05, 0x07, 0x45, 0xaa, 0x0f,
+
  0x2b, 0x60, 0xe9, 0x86, 0xe1, 0x27, 0x8a, 0x9a, 0xce, 0xe6, 0xa6, 0x0c,
+
  0x41, 0x85, 0xa0, 0xa7, 0xe9, 0x01, 0x7f, 0xd4, 0x7b, 0xc1, 0xff, 0x76,
+
  0x8e, 0xe4, 0xad, 0x0b, 0x78, 0xeb, 0x60, 0x79, 0x6a, 0xfe, 0xd5, 0xce,
+
  0xc7, 0xd5, 0x0e, 0x64, 0x0f, 0x07, 0x86, 0x9f, 0x84, 0xec, 0x61, 0x4b,
+
  0xdc, 0xb5, 0x9e, 0xd0, 0xb1, 0xc8, 0x73, 0xe4, 0x4c, 0x17, 0xcd, 0xef,
+
  0x42, 0x6e, 0xaf, 0xdc, 0xa0, 0x71, 0x94, 0x34, 0xe5, 0xc9, 0x05, 0x45,
+
  0xfe, 0x66, 0x86, 0x20, 0x4d, 0xaf, 0xc3, 0x89, 0x9b, 0x5c, 0x21, 0x36,
+
  0xcb, 0x18, 0x67, 0xb8, 0xfb, 0xc0, 0xeb, 0x81, 0x98, 0xdc, 0x4a, 0xa2,
+
  0xae, 0xec, 0xf3, 0xa2, 0x4e, 0x42, 0xf4, 0x0f, 0x6f, 0xf9, 0x47, 0x8a,
+
  0xe8, 0x7e, 0x0c, 0x51, 0xba, 0xfc, 0x72, 0xf0, 0xe7, 0x47, 0x5e, 0x8b,
+
  0xa1, 0xdd, 0x0e, 0x56, 0xbe, 0x2f, 0xee, 0xbf, 0xda, 0xdc, 0x1b, 0xdf,
+
  0xa7, 0x35, 0xfe, 0xaf, 0xb3, 0xfe, 0xc2, 0xc6, 0x4b, 0x1a, 0xae, 0xa0,
+
  0x3b, 0x17, 0xb6, 0x1b, 0x38, 0x8d, 0xca, 0x14, 0x9c, 0xef, 0xa4, 0x2b,
+
  0xac, 0x8a, 0x80, 0x39, 0x48, 0xd4, 0xfe, 0x8e, 0xdc, 0xc7, 0x4a, 0xad,
+
  0x13, 0x79, 0xcf, 0xb3, 0x12, 0xcf, 0x74, 0x15, 0x74, 0x13, 0x2c, 0x5f,
+
  0x19, 0x5c, 0x08, 0x48, 0x82, 0x47, 0x3f, 0x9e, 0x10, 0x34, 0x05, 0x5c,
+
  0x61, 0xb3, 0x5a, 0xf4, 0x04, 0x1e, 0x20, 0xea, 0x85, 0x65, 0x00, 0xf8,
+
  0xa7, 0x58, 0xee, 0xa0, 0x1d, 0x04, 0x8f, 0xb3, 0x05, 0x27, 0x32, 0xe6,
+
  0x63, 0xc8, 0xf1, 0x22, 0xf9, 0x2a, 0x35, 0x3c, 0x19, 0xb3, 0x2d, 0x89,
+
  0xab, 0xef, 0x22, 0x74, 0xa5, 0xf0, 0x99, 0x08, 0x8f, 0x27, 0x16, 0x21,
+
  0x96, 0xed, 0xd0, 0x62, 0x8a, 0x1b, 0xc1, 0x9a, 0x86, 0xb3, 0x9c, 0x87,
+
  0x23, 0x59, 0xdd, 0xce, 0xea, 0xf4, 0x43, 0x56, 0x69, 0x7e, 0xab, 0xc6,
+
  0x67, 0x7e, 0xf5, 0xe0, 0x81, 0x53, 0xc9, 0x3c, 0xb0, 0x0d, 0x6b, 0xcb,
+
  0xa2, 0xf3, 0x52, 0x7d, 0xeb, 0x7e, 0xf2, 0x5f, 0x8a, 0x61, 0x09, 0x4c,
+
  0x9a, 0xcd, 0xad, 0xe8, 0xe2, 0x7f, 0xb0, 0x04, 0x8a, 0x13, 0x74, 0x50,
+
  0xad, 0x7c, 0x42, 0x2e, 0x7f, 0x8c, 0x9e, 0x84, 0x19, 0x77, 0xbe, 0xd7,
+
  0x20, 0x4a, 0x54, 0x8f, 0x50, 0xf8, 0x7c, 0x20, 0x86, 0xc7, 0xf7, 0xa2,
+
  0x98, 0xf3, 0x68, 0x25, 0x27, 0xc5, 0xcd, 0x87, 0xf7, 0x78, 0x98, 0xa2,
+
  0x02, 0x3f, 0xc8, 0x60, 0x6a, 0xba, 0x4d, 0xdf, 0xae, 0x9e, 0x8f, 0x0d,
+
  0x8a, 0x16, 0x9a, 0x26, 0xc4, 0x77, 0x8f, 0xad, 0x6e, 0x80, 0x25, 0xc0,
+
  0x11, 0x42, 0x0b, 0x12, 0xe1, 0x29, 0x21, 0x39, 0x12, 0x72, 0x65, 0xc0,
+
  0x20, 0x42, 0xb4, 0x6c, 0x4b, 0x22, 0x89, 0xf0, 0xfe, 0xb5, 0xa4, 0x4d,
+
  0x6b, 0x0c, 0x80, 0x1c, 0xb9, 0x51, 0x25, 0x40, 0x20, 0x95, 0x07, 0xc4,
+
  0x95, 0xe8, 0x71, 0xc4, 0xfb, 0xfb, 0x00, 0xc4, 0x50, 0x5b, 0x59, 0xf9,
+
  0xd0, 0xfa, 0x48, 0x9d, 0x6c, 0x3a, 0x10, 0xe3, 0x68, 0x38, 0x0a, 0xaa,
+
  0x0c, 0x29, 0x0c, 0xc8, 0x25, 0xc7, 0x44, 0x31, 0x1f, 0xae, 0x8e, 0x20,
+
  0x6f, 0x8e, 0x5e, 0xc5, 0x5b, 0xdd, 0xe6, 0x3c, 0xd2, 0x5a, 0x59, 0xb7,
+
  0x52, 0x44, 0xce, 0x2e, 0x14, 0x35, 0x0f, 0xa2, 0x41, 0xa7, 0x2f, 0xc5,
+
  0x37, 0x49, 0x8e, 0x80, 0x16, 0xd6, 0x91, 0x24, 0xdc, 0x22, 0xfe, 0x3b,
+
  0xc6, 0xef, 0x87, 0x1f, 0xca, 0xff, 0xf1, 0xe0, 0x2f, 0x2c, 0xf1, 0x09,
+
  0xd7, 0x1e, 0x5a, 0xe0, 0x82, 0xc1, 0xea, 0xc9, 0x61, 0x54, 0x0e, 0x86,
+
  0x28, 0x25, 0x60, 0x0e, 0xbd, 0xd4, 0x28, 0xaf, 0x43, 0xd2, 0x1a, 0x26,
+
  0xb5, 0x54, 0xfe, 0xa6, 0xb0, 0x58, 0xda, 0xc9, 0x6f, 0x83, 0xa0, 0xc0,
+
  0xde, 0x16, 0x45, 0xbb, 0x72, 0xc0, 0xe2, 0x2e, 0xe9, 0x0a, 0xc5, 0x65,
+
  0xdd, 0x73, 0x3c, 0x15, 0xf7, 0xed, 0xfa, 0x12, 0xd3, 0xfc, 0x5c, 0xaa,
+
  0x51, 0xb3, 0x5d, 0x9a, 0xcb, 0x35, 0x66, 0xa6, 0xad, 0x75, 0x15, 0x84,
+
  0x17, 0xbf, 0xe5, 0x7f, 0x89, 0xd1, 0x7e, 0xec, 0xbb, 0x46, 0x17, 0x1f,
+
  0xfd, 0x26, 0xbd, 0x45, 0x61, 0x17, 0x6b, 0x5f, 0x43, 0x5e, 0xc4, 0x8f,
+
  0x74, 0x9d, 0x6c, 0x92, 0x5d, 0xf2, 0x35, 0xfc, 0xf4, 0xe5, 0xf1, 0x9f,
+
  0x8f, 0x5f, 0xea, 0x95, 0xf4, 0xe3, 0xf9, 0xf9, 0xf6, 0xfb, 0xac, 0x1c,
+
  0x64, 0x65, 0x51, 0xb1, 0x57, 0x80, 0xbe, 0x26, 0x61, 0x3d, 0x54, 0x84,
+
  0x70, 0x81, 0x7f, 0xd2, 0x92, 0x26, 0xd5, 0x6a, 0x0a, 0x1e, 0x8c, 0xc8,
+
  0x10, 0xf8, 0x4a, 0x74, 0x44, 0x92, 0x01, 0x3e, 0x0d, 0x19, 0x8c, 0x88,
+
  0x7d, 0x8d, 0xa7, 0xe2, 0x19, 0xdb, 0x11, 0x38, 0x69, 0x1a, 0x49, 0x3e,
+
  0x0c, 0x4d, 0x1f, 0x9d, 0x13, 0x9e, 0x2b, 0x3d, 0x2c, 0x9d, 0x11, 0x62,
+
  0x11, 0x4e, 0x8d, 0x56, 0x43, 0xdc, 0xf7, 0xa7, 0x7f, 0xec, 0x1d, 0x9e,
+
  0xf7, 0x9e, 0x1d, 0xbf, 0x3c, 0xfe, 0xf1, 0xf0, 0xe2, 0xd8, 0xaa, 0x8f,
+
  0x92, 0x9c, 0xc9, 0xa7, 0x02, 0x5a, 0xf8, 0xa3, 0xcc, 0xcd, 0x6a, 0x2c,
+
  0xd6, 0x39, 0xd7, 0x56, 0xb7, 0x9a, 0x31, 0x29, 0x32, 0xe8, 0x9a, 0xb3,
+
  0x9e, 0x80, 0x2c, 0x27, 0x53, 0xe9, 0x5f, 0x47, 0x93, 0x4e, 0x6e, 0xd2,
+
  0xdb, 0x8a, 0xd8, 0xe2, 0x0c, 0x53, 0xbf, 0x73, 0xc3, 0x17, 0xe2, 0x39,
+
  0x38, 0x54, 0x31, 0xb7, 0x3c, 0x4e, 0xfa, 0x8c, 0x56, 0x7f, 0x7d, 0x77,
+
  0xe8, 0xfd, 0x91, 0x2d, 0x4d, 0x62, 0x0f, 0xbd, 0x74, 0x70, 0xb5, 0xd7,
+
  0x94, 0x5e, 0xb4, 0x60, 0x83, 0x90, 0x4e, 0x55, 0x4d, 0x02, 0xd5, 0x50,
+
  0x41, 0xc1, 0x48, 0x78, 0x31, 0x64, 0x30, 0xce, 0x25, 0x79, 0x46, 0x4f,
+
  0x24, 0x8d, 0x2c, 0x06, 0x0b, 0x1b, 0x89, 0x3f, 0x16, 0xe9, 0x77, 0x78,
+
  0x95, 0x61, 0x0a, 0x1b, 0x7a, 0x33, 0x2a, 0xcd, 0x6f, 0x89, 0xe1, 0xf5,
+
  0xb9, 0x74, 0x22, 0x47, 0x41, 0x61, 0xc5, 0x62, 0xdc, 0x4e, 0x8a, 0x64,
+
  0x4a, 0x08, 0xcf, 0xaa, 0x1f, 0x92, 0xb9, 0x34, 0x7e, 0x3f, 0x8e, 0xdd,
+
  0x77, 0xf1, 0x24, 0x33, 0xaa, 0x30, 0xa6, 0x15, 0x2a, 0xa3, 0xe2, 0x4f,
+
  0xe6, 0x87, 0xc0, 0xaf, 0x2c, 0x4f, 0xd5, 0x06, 0xd1, 0x08, 0x8e, 0xe0,
+
  0xb5, 0xf8, 0x4c, 0x71, 0x11, 0x56, 0x0a, 0xf8, 0x63, 0xaa, 0x26, 0xca,
+
  0x08, 0x3e, 0xcd, 0xea, 0xd2, 0x62, 0x74, 0x91, 0xb2, 0xd4, 0x52, 0x41,
+
  0x32, 0x36, 0x96, 0x84, 0x9a, 0xd4, 0x0d, 0xbf, 0x6e, 0x19, 0x80, 0x19,
+
  0x65, 0x3c, 0x4c, 0x36, 0x52, 0xf3, 0x58, 0x49, 0xe7, 0xef, 0xdd, 0x80,
+
  0xb4, 0x60, 0x07, 0xc1, 0x80, 0xb0, 0x02, 0x22, 0x92, 0xf3, 0xe2, 0xb5,
+
  0x5a, 0xeb, 0xba, 0x01, 0x0a, 0xa3, 0xb4, 0x7c, 0x9e, 0x80, 0xbc, 0x12,
+
  0x2a, 0x63, 0xa7, 0x14, 0x43, 0xc7, 0xa0, 0x2a, 0x64, 0x24, 0xaa, 0x25,
+
  0x54, 0x8f, 0x1f, 0xc6, 0x2a, 0x8c, 0x02, 0xbe, 0x69, 0x25, 0x0a, 0x23,
+
  0xc7, 0x97, 0x87, 0x73, 0x91, 0x42, 0x5e, 0xe4, 0x48, 0x8d, 0x6a, 0x0b,
+
  0x1a, 0x42, 0xcc, 0xe7, 0xf0, 0xbb, 0x07, 0x1c, 0x8a, 0xd5, 0x44, 0xf0,
+
  0xf7, 0x75, 0xc3, 0xcb, 0x70, 0xf4, 0xee, 0xd8, 0x52, 0xcb, 0xbd, 0x6c,
+
  0x5e, 0xd6, 0x21, 0x56, 0x61, 0x2b, 0xc0, 0xe2, 0x49, 0x88, 0x89, 0x25,
+
  0x62, 0x1c, 0x9f, 0xbd, 0xb9, 0x60, 0xb9, 0xe8, 0x25, 0xfd, 0x26, 0x5b,
+
  0x20, 0x8e, 0x29, 0x2e, 0xcf, 0xae, 0x3e, 0x5f, 0x2a, 0x72, 0x48, 0x31,
+
  0x46, 0x96, 0xe4, 0xa2, 0x61, 0xbd, 0x33, 0xad, 0xe6, 0x27, 0x7b, 0x8b,
+
  0x6c, 0x75, 0x3a, 0xaf, 0x83, 0x63, 0x99, 0x3a, 0x52, 0xe3, 0x18, 0xe5,
+
  0x83, 0xb2, 0xac, 0x8f, 0x79, 0xe7, 0x52, 0x1b, 0x33, 0x24, 0x5f, 0x69,
+
  0x28, 0x5b, 0x5e, 0x73, 0x18, 0x17, 0x3e, 0x94, 0x94, 0x02, 0x6c, 0x09,
+
  0x2c, 0x59, 0xb8, 0x00, 0x8d, 0x5d, 0x93, 0x5c, 0x14, 0x7c, 0x3a, 0xa8,
+
  0x53, 0x9a, 0x8b, 0x4e, 0x23, 0xd6, 0xc0, 0x9b, 0xae, 0xa4, 0x49, 0x64,
+
  0xbe, 0x5a, 0x19, 0xc1, 0x02, 0x70, 0x18, 0x8e, 0x9a, 0x2e, 0xa4, 0xf2,
+
  0x99, 0x00, 0x56, 0x57, 0xec, 0x87, 0xd1, 0x24, 0xbc, 0x94, 0x83, 0xd6,
+
  0xd9, 0x62, 0x34, 0x20, 0x3b, 0x95, 0x34, 0x94, 0x4a, 0x71, 0x21, 0xc9,
+
  0x0e, 0xd5, 0x1b, 0x83, 0x67, 0x20, 0x6b, 0x1b, 0x64, 0x1f, 0xdc, 0xa5,
+
  0x58, 0xf7, 0xa5, 0x74, 0x63, 0xcb, 0x35, 0xe3, 0xce, 0x65, 0xa2, 0x82,
+
  0xfa, 0xc9, 0xc9, 0x98, 0x40, 0x44, 0x61, 0x8b, 0x79, 0x09, 0xd8, 0x3a,
+
  0x29, 0xc6, 0x49, 0x47, 0x06, 0x8d, 0x60, 0x54, 0xcd, 0xd2, 0xab, 0x08,
+
  0x09, 0xc4, 0x55, 0x6b, 0x3a, 0x39, 0xbb, 0x7e, 0x1c, 0x47, 0x25, 0x19,
+
  0x9e, 0x25, 0xc3, 0x22, 0xa8, 0x91, 0x5d, 0x97, 0x3d, 0x44, 0x14, 0x22,
+
  0xa7, 0xd7, 0x6e, 0x98, 0xd2, 0xb0, 0x41, 0x7a, 0x8e, 0x43, 0x47, 0xd9,
+
  0xbc, 0x2e, 0x3e, 0x4b, 0x21, 0x24, 0xad, 0xb2, 0x17, 0xec, 0x4f, 0x9a,
+
  0xc5, 0x21, 0x97, 0x05, 0x10, 0xc4, 0x90, 0xea, 0x2c, 0x20, 0x23, 0xc4,
+
  0x37, 0x28, 0xd0, 0x47, 0x41, 0xba, 0x68, 0xad, 0x24, 0xd9, 0x57, 0x82,
+
  0x76, 0x28, 0x00, 0xb6, 0x20, 0x00, 0xe6, 0xa1, 0x43, 0x80, 0x94, 0x73,
+
  0x47, 0x4f, 0xa4, 0xd5, 0x75, 0xa3, 0x80, 0xbc, 0x5f, 0xaa, 0xa4, 0xad,
+
  0x8c, 0xfc, 0x27, 0xf1, 0xf8, 0xe5, 0xe5, 0x5f, 0x71, 0x71, 0xfb, 0xde,
+
  0xd7, 0x89, 0xaf, 0x09, 0x2f, 0x54, 0xd7, 0xc2, 0x7f, 0x75, 0xea, 0x2d,
+
  0x4c, 0xa0, 0xba, 0x6e, 0x63, 0x02, 0xca, 0x03, 0x54, 0x29, 0x3d, 0x3e,
+
  0x3b, 0xff, 0xb3, 0x9d, 0x7c, 0x3e, 0xf8, 0x9c, 0xb1, 0xa3, 0x0b, 0x8f,
+
  0x47, 0xa8, 0x91, 0xdd, 0x26, 0x07, 0xdf, 0xce, 0xbd, 0x1c, 0xfc, 0xa5,
+
  0x73, 0x4f, 0x6d, 0xcb, 0x89, 0x4f, 0xce, 0x0e, 0xcf, 0xff, 0x2c, 0x18,
+
  0x12, 0x76, 0xe2, 0x9b, 0x07, 0xde, 0x9c, 0x33, 0x35, 0x10, 0x16, 0xbe,
+
  0xed, 0x8f, 0x0b, 0xcc, 0x79, 0xad, 0xe3, 0x02, 0x7d, 0x2e, 0x1f, 0x17,
+
  0x5d, 0x8c, 0xbb, 0x8e, 0x0b, 0x90, 0xc7, 0xaa, 0xe3, 0x82, 0x2f, 0xe1,
+
  0x19, 0x21, 0xa0, 0x83, 0xf8, 0xa0, 0xd8, 0x05, 0xa0, 0x07, 0x85, 0xc7,
+
  0x10, 0x72, 0xd2, 0xef, 0x3d, 0x29, 0x30, 0x60, 0x4e, 0xc1, 0x93, 0x83,
+
  0x62, 0x32, 0x51, 0x7c, 0x52, 0xd4, 0x6c, 0xbe, 0xea, 0xa4, 0xe8, 0xd9,
+
  0x92, 0x60, 0x53, 0x32, 0xea, 0xda, 0x61, 0xe1, 0x3d, 0x77, 0xf4, 0xd2,
+
  0x02, 0xba, 0x1a, 0x91, 0xd7, 0x2a, 0x48, 0xf9, 0x26, 0xe6, 0xea, 0xfd,
+
  0xa0, 0xab, 0x6d, 0x0b, 0x7c, 0xdf, 0x81, 0x80, 0x01, 0x7c, 0xdc, 0x81,
+
  0xb0, 0x40, 0xa8, 0xd6, 0x03, 0x81, 0x02, 0x7b, 0x4f, 0xc5, 0x3d, 0x90,
+
  0x7c, 0x7b, 0x16, 0x5c, 0x7f, 0xfc, 0x21, 0x17, 0x5a, 0x94, 0xc4, 0x76,
+
  0x50, 0x32, 0xd4, 0xe7, 0xc8, 0x68, 0x81, 0x62, 0x03, 0x12, 0xc8, 0x23,
+
  0x6d, 0x84, 0xd7, 0x6f, 0x80, 0xd9, 0x6a, 0x82, 0x8b, 0x82, 0xd6, 0xbd,
+
  0x05, 0x87, 0xf1, 0x59, 0x49, 0x7a, 0x7c, 0x9f, 0x72, 0xbb, 0x32, 0x3a,
+
  0x51, 0x56, 0x40, 0xa8, 0x4e, 0x4a, 0xc4, 0x52, 0x98, 0x12, 0xa6, 0xa6,
+
  0x1a, 0x03, 0xe5, 0x62, 0x6b, 0xf2, 0xa7, 0xb6, 0xb1, 0xb7, 0xf3, 0x2a,
+
  0xf3, 0xc1, 0x08, 0xc7, 0x5a, 0x8f, 0x57, 0xb5, 0xb5, 0x7f, 0xff, 0x36,
+
  0xb5, 0x8e, 0x6a, 0xad, 0xf8, 0x9c, 0xc7, 0xbb, 0x8d, 0xf8, 0x1c, 0xba,
+
  0x9d, 0xc3, 0x76, 0xcd, 0xaa, 0x9e, 0x95, 0xc3, 0x4e, 0x9e, 0xda, 0xaf,
+
  0xaa, 0xb8, 0x3e, 0x7b, 0x7d, 0xce, 0x11, 0x3a, 0x21, 0x09, 0x1b, 0xc1,
+
  0x9d, 0x2c, 0xdd, 0xba, 0xbe, 0x2a, 0x8b, 0xc5, 0xe5, 0x95, 0x83, 0x61,
+
  0xb0, 0x26, 0xda, 0xb2, 0x90, 0x39, 0xfb, 0x96, 0xb1, 0x2d, 0xb2, 0x92,
+
  0x2c, 0x57, 0x75, 0xc1, 0xa5, 0x96, 0x75, 0x0c, 0xc9, 0x26, 0xeb, 0x8c,
+
  0x2e, 0x34, 0x85, 0xb1, 0x82, 0xe4, 0x24, 0xc3, 0x80, 0xc4, 0x02, 0x63,
+
  0xd5, 0x0d, 0xad, 0x3e, 0x91, 0x95, 0xcd, 0xa1, 0x62, 0x36, 0xa1, 0x49,
+
  0xce, 0xd1, 0xdd, 0x14, 0xc4, 0xe4, 0x28, 0xaf, 0x72, 0x4b, 0x82, 0xab,
+
  0xe2, 0x85, 0xb8, 0x37, 0xc6, 0x8a, 0x14, 0x48, 0xab, 0xbf, 0xfa, 0x31,
+
  0x31, 0x56, 0x71, 0x47, 0x59, 0x7d, 0x75, 0x17, 0x18, 0x42, 0xf3, 0x71,
+
  0x01, 0x07, 0xad, 0x14, 0xa7, 0x74, 0xd0, 0xa8, 0x26, 0x89, 0x21, 0xcb,
+
  0x5a, 0x0b, 0x63, 0xd8, 0x4b, 0x4b, 0xcb, 0xea, 0xf3, 0xa7, 0x18, 0x5b,
+
  0x9c, 0x5f, 0x3f, 0xec, 0xe1, 0x0a, 0xa8, 0x25, 0x83, 0x3f, 0x7b, 0x4c,
+
  0x9f, 0xc5, 0xc4, 0x61, 0x4f, 0x3e, 0x95, 0x15, 0x8b, 0x48, 0xe3, 0x87,
+
  0x9c, 0x81, 0x0f, 0xd2, 0x10, 0xe6, 0x78, 0x72, 0x66, 0x39, 0xab, 0x74,
+
  0x32, 0xa7, 0xe9, 0x7b, 0x91, 0x79, 0x1e, 0x26, 0x11, 0xf1, 0xc8, 0xf5,
+
  0xa4, 0x05, 0xd9, 0x14, 0x38, 0xcc, 0x68, 0x4b, 0xa4, 0xca, 0x3a, 0xd3,
+
  0x34, 0x27, 0xbc, 0x4d, 0xb8, 0x65, 0xa1, 0x00, 0x8d, 0x8e, 0x8e, 0x42,
+
  0x8c, 0x70, 0xfb, 0x0d, 0x56, 0x95, 0x7b, 0xb5, 0xb7, 0x18, 0x0b, 0x23,
+
  0x9e, 0x97, 0x4f, 0x84, 0xf9, 0xac, 0xb0, 0xfe, 0x71, 0x37, 0xbb, 0x3b,
+
  0xfd, 0xdd, 0xfe, 0x5e, 0x7f, 0xff, 0xfe, 0xdd, 0xb6, 0x57, 0x3e, 0xdb,
+
  0x6e, 0x1b, 0xfd, 0xac, 0xb1, 0xdb, 0x8f, 0x3f, 0xd7, 0x6e, 0x3f, 0xfe,
+
  0xbf, 0x64, 0xb7, 0x1f, 0xaf, 0xda, 0xed, 0xc7, 0xff, 0x9e, 0xdd, 0x96,
+
  0x6e, 0xf6, 0xd2, 0x9d, 0x87, 0x07, 0x0f, 0xb3, 0x87, 0x7b, 0x07, 0x07,
+
  0x8f, 0x1e, 0xef, 0xae, 0xb3, 0xe7, 0x8f, 0xff, 0x2d, 0x7b, 0xfe, 0x70,
+
  0x79, 0xcf, 0x45, 0x09, 0xb3, 0x1d, 0xcf, 0xaa, 0x06, 0xf3, 0xe7, 0xcd,
+
  0xd2, 0x5a, 0x1d, 0xb8, 0x69, 0xfa, 0x0a, 0xdb, 0x9c, 0x25, 0x6d, 0x2a,
+
  0xca, 0x82, 0x90, 0xec, 0x9a, 0x28, 0x19, 0x82, 0xb7, 0x51, 0xdb, 0x09,
+
  0x84, 0x03, 0x93, 0x0d, 0x9b, 0xd9, 0xa8, 0xc8, 0xcb, 0xa2, 0xb2, 0xce,
+
  0xf1, 0x2c, 0xe0, 0x58, 0x55, 0x8c, 0x9f, 0xc6, 0x31, 0x2a, 0x0e, 0x8d,
+
  0x1c, 0xdb, 0xa0, 0x8b, 0xa8, 0x1b, 0xac, 0xee, 0xc1, 0x63, 0x7f, 0x72,
+
  0x16, 0x27, 0xd5, 0x87, 0xde, 0x82, 0x1b, 0x8e, 0x60, 0xb6, 0xfb, 0x89,
+
  0xa3, 0x1e, 0x9d, 0xee, 0x67, 0x24, 0x9e, 0xaa, 0x85, 0x7a, 0xb4, 0x9b,
+
  0xdd, 0x6f, 0xf6, 0xfa, 0xbb, 0x8f, 0x9f, 0x20, 0x16, 0x57, 0x37, 0xfc,
+
  0xbe, 0xb7, 0x86, 0x61, 0xdb, 0x37, 0xb2, 0x23, 0x68, 0x5e, 0x8f, 0xee,
+
  0xe7, 0x38, 0xfa, 0x8e, 0xd1, 0xde, 0x2a, 0xe2, 0xfb, 0xdc, 0xd4, 0x57,
+
  0x5c, 0x2d, 0xd7, 0xd5, 0x3a, 0x27, 0x13, 0x61, 0xd5, 0x28, 0x7b, 0x84,
+
  0x3a, 0x8c, 0xe5, 0xc5, 0x3e, 0x2b, 0x5e, 0x10, 0x71, 0xf6, 0xd0, 0x7e,
+
  0xd9, 0xa3, 0xea, 0xb3, 0x86, 0x7b, 0x4d, 0x05, 0xb9, 0x72, 0x75, 0x0d,
+
  0xf2, 0xcb, 0x4a, 0x93, 0xf8, 0x9e, 0xcc, 0x75, 0x23, 0x2e, 0x50, 0xf5,
+
  0xa5, 0xcb, 0x72, 0x79, 0xf9, 0x67, 0xa9, 0x2e, 0x17, 0x0e, 0x6b, 0xb9,
+
  0x38, 0x97, 0x56, 0xe7, 0x92, 0xb3, 0x48, 0x21, 0xfa, 0x56, 0x9c, 0x2b,
+
  0xd4, 0xe6, 0xd2, 0x24, 0x3b, 0xab, 0xba, 0x62, 0x85, 0xb9, 0x82, 0xbb,
+
  0xe8, 0x7f, 0xab, 0xb2, 0x5c, 0x91, 0xc0, 0x1e, 0x13, 0x50, 0x5b, 0x91,
+
  0x90, 0x4f, 0xb0, 0x28, 0xc4, 0x8d, 0xde, 0xc3, 0xf5, 0x1b, 0x23, 0xe0,
+
  0x4f, 0xbc, 0x74, 0x0e, 0x7f, 0x2b, 0x96, 0xf6, 0xbd, 0xe8, 0x75, 0x3e,
+
  0xae, 0xfe, 0x71, 0x43, 0x6e, 0xc7, 0x76, 0x97, 0x8a, 0xa7, 0xfb, 0x0f,
+
  0xb9, 0x89, 0x1f, 0x6e, 0x8d, 0xdf, 0x76, 0x31, 0x5d, 0x99, 0x33, 0xfb,
+
  0x03, 0xfc, 0x2d, 0x9f, 0x68, 0x76, 0xb8, 0x2a, 0xf0, 0x46, 0x44, 0x80,
+
  0x2a, 0xb1, 0xf3, 0xde, 0x9a, 0x3b, 0x59, 0xbc, 0x17, 0x62, 0x5e, 0xf0,
+
  0x88, 0x6c, 0x92, 0xc7, 0x46, 0x78, 0xc9, 0xfd, 0x96, 0x44, 0xd6, 0x3a,
+
  0x9b, 0x4c, 0xaa, 0x00, 0x69, 0x40, 0x10, 0x77, 0x2d, 0xe4, 0x03, 0x47,
+
  0x29, 0x9b, 0x4b, 0xa2, 0x08, 0xc5, 0xb4, 0x29, 0x53, 0xb6, 0xe2, 0x11,
+
  0x04, 0x7f, 0xec, 0xc2, 0x2d, 0x7e, 0x3a, 0x7c, 0xf3, 0xfa, 0xe4, 0xf5,
+
  0x8f, 0x07, 0x2e, 0x92, 0xde, 0x5b, 0xe6, 0x75, 0x8e, 0x48, 0x57, 0x34,
+
  0xc3, 0x80, 0xe1, 0xc7, 0x41, 0xb9, 0x16, 0x6e, 0x41, 0x48, 0x81, 0x0b,
+
  0x3e, 0xa0, 0x61, 0x85, 0x97, 0xe0, 0x7c, 0xe9, 0xf0, 0x02, 0x87, 0x84,
+
  0x63, 0x89, 0x7e, 0xfa, 0x3a, 0x72, 0xeb, 0x08, 0xa3, 0x63, 0x9b, 0x7d,
+
  0xf8, 0x74, 0xb0, 0x08, 0xde, 0x0f, 0x01, 0x30, 0xe5, 0xc1, 0x34, 0xf9,
+
  0x57, 0x22, 0x20, 0xce, 0xde, 0x1d, 0xd2, 0xba, 0xc1, 0x2b, 0x2d, 0x05,
+
  0x77, 0x99, 0x0a, 0xd4, 0x4c, 0xe0, 0x0b, 0x99, 0x1a, 0xb1, 0x37, 0xe7,
+
  0xbc, 0x9a, 0xd2, 0x6d, 0x5e, 0x9f, 0x83, 0xcc, 0xd9, 0xa1, 0x64, 0xa4,
+
  0xae, 0x51, 0xa7, 0x72, 0xa5, 0x87, 0x2e, 0x38, 0xe6, 0x34, 0x2c, 0x69,
+
  0xe4, 0x41, 0x89, 0xd7, 0x3b, 0x3a, 0x17, 0x38, 0xba, 0xa7, 0x6f, 0xdf,
+
  0xbc, 0x8c, 0x4a, 0xc0, 0x84, 0xa2, 0x66, 0x49, 0xbc, 0x01, 0xb8, 0x23,
+
  0xc5, 0x8b, 0xad, 0xc4, 0x39, 0x19, 0xd9, 0x88, 0xc3, 0x21, 0xe0, 0x04,
+
  0x25, 0xa9, 0xb5, 0xe7, 0x04, 0x7c, 0x33, 0x4e, 0xfd, 0x0c, 0x45, 0x0b,
+
  0x2c, 0x78, 0x90, 0xd4, 0x4e, 0x79, 0x17, 0xc3, 0x1c, 0x33, 0x34, 0x39,
+
  0xe5, 0xd5, 0xb4, 0x1f, 0x42, 0xb1, 0xd1, 0x64, 0xa1, 0xd5, 0x3a, 0x68,
+
  0x1c, 0x56, 0xbf, 0x01, 0x31, 0xd3, 0x91, 0x15, 0x1a, 0xf4, 0x1f, 0xf1,
+
  0x73, 0x83, 0xa9, 0x40, 0x4a, 0x82, 0x3f, 0x4a, 0x47, 0xd6, 0x0c, 0xf1,
+
  0x45, 0x3a, 0xb1, 0x83, 0x3e, 0xa4, 0x4b, 0x2f, 0xc0, 0x0d, 0xf1, 0xa0,
+
  0x18, 0x9b, 0xb9, 0xe2, 0x1c, 0x54, 0x01, 0xb7, 0x67, 0x6f, 0x20, 0xf6,
+
  0x09, 0x9b, 0xf1, 0x82, 0x0b, 0xec, 0xf9, 0x6c, 0xbb, 0xa8, 0x8e, 0x65,
+
  0xe3, 0xe8, 0x72, 0x71, 0x78, 0x5f, 0x7f, 0x0b, 0xd6, 0xe6, 0x2a, 0x43,
+
  0x00, 0x92, 0x91, 0x44, 0xb0, 0x85, 0xc0, 0x77, 0x34, 0xf1, 0x94, 0x05,
+
  0xa6, 0xde, 0xf8, 0x4a, 0x5b, 0xd7, 0x79, 0xda, 0xa4, 0x32, 0x91, 0x1d,
+
  0xda, 0xf9, 0xf1, 0x0f, 0xb7, 0x81, 0xcf, 0xe1, 0x1c, 0x51, 0x48, 0xb9,
+
  0x55, 0x5b, 0x12, 0xa9, 0x22, 0x52, 0x67, 0x06, 0xa1, 0xc0, 0x31, 0xfd,
+
  0x1f, 0x51, 0x74, 0xe7, 0x0c, 0x4d, 0xcd, 0xd0, 0x13, 0x6a, 0x9a, 0x18,
+
  0x37, 0x84, 0x03, 0xa9, 0x72, 0xdb, 0x84, 0xc3, 0x70, 0x12, 0xeb, 0x66,
+
  0x86, 0x18, 0x4a, 0x63, 0xe3, 0x2d, 0x11, 0x28, 0x9f, 0x62, 0x44, 0x0a,
+
  0xfc, 0xa8, 0x55, 0x06, 0x46, 0xee, 0xb4, 0x8a, 0xad, 0x2c, 0x66, 0x04,
+
  0x13, 0x3a, 0x26, 0xcb, 0x67, 0x04, 0x22, 0x86, 0xe0, 0x39, 0x96, 0x0c,
+
  0x2d, 0x4e, 0x3d, 0x42, 0xd7, 0x15, 0xb9, 0xc0, 0x5d, 0x19, 0x4f, 0x1e,
+
  0xf5, 0x77, 0xb6, 0xc4, 0x9a, 0x21, 0xf4, 0x7f, 0x0f, 0x38, 0xf6, 0x47,
+
  0x58, 0x31, 0xaa, 0x16, 0x76, 0xb0, 0xea, 0xfc, 0xdf, 0x2f, 0xa8, 0xde,
+
  0xf1, 0x72, 0x58, 0x39, 0x66, 0x23, 0xee, 0x3b, 0x82, 0x84, 0x45, 0x89,
+
  0x18, 0xa4, 0xe1, 0xfe, 0xee, 0x9a, 0xf6, 0xaf, 0xbd, 0xb5, 0xee, 0xd1,
+
  0xc5, 0x74, 0xde, 0x1b, 0xa6, 0xbd, 0x0c, 0x54, 0x8b, 0x91, 0x4f, 0xe0,
+
  0xfc, 0x89, 0x2b, 0xbc, 0xe0, 0x62, 0x1d, 0x61, 0x8d, 0x9a, 0xc5, 0x6c,
+
  0x04, 0x63, 0xa4, 0xc7, 0x46, 0x22, 0xb8, 0xd8, 0xcd, 0x06, 0xf4, 0x39,
+
  0x1b, 0xa5, 0xe4, 0x57, 0xa7, 0x44, 0x78, 0x5f, 0x54, 0x1b, 0xae, 0x8d,
+
  0xba, 0x89, 0x42, 0x85, 0x25, 0xca, 0xa5, 0x9c, 0x09, 0x4b, 0xd7, 0x52,
+
  0xe7, 0x27, 0x30, 0x10, 0xe8, 0x52, 0x7a, 0xb4, 0x2e, 0xfd, 0x89, 0x94,
+
  0x04, 0x7e, 0x8c, 0xfd, 0x42, 0x92, 0x69, 0x7a, 0x5b, 0xfc, 0x9c, 0x3e,
+
  0x97, 0x47, 0xdd, 0xb7, 0x79, 0xcf, 0x7d, 0x11, 0x2d, 0x69, 0xc4, 0xf8,
+
  0x91, 0xef, 0x3f, 0xe9, 0x93, 0x86, 0xd2, 0xcc, 0x35, 0x80, 0x17, 0x30,
+
  0xba, 0x00, 0xcb, 0x38, 0x58, 0xce, 0x2d, 0x5f, 0x00, 0x9c, 0x72, 0xdb,
+
  0x8d, 0x19, 0xbf, 0x7b, 0x3c, 0x7c, 0xe4, 0xf2, 0x74, 0xf5, 0x23, 0x9f,
+
  0xad, 0xfb, 0xac, 0xab, 0xa3, 0x13, 0x10, 0xc7, 0x56, 0x94, 0xa6, 0x84,
+
  0xdc, 0x38, 0x6e, 0xfb, 0x0d, 0x8a, 0xd3, 0xfc, 0x9b, 0x01, 0x23, 0xcf,
+
  0x72, 0x65, 0xe2, 0xda, 0x52, 0x9c, 0x4d, 0x71, 0x42, 0x38, 0x48, 0x51,
+
  0x85, 0x42, 0x13, 0xa5, 0x2d, 0xc3, 0x85, 0xb9, 0x89, 0x73, 0x73, 0x44,
+
  0xa0, 0x22, 0xc6, 0x14, 0xb8, 0x45, 0xc5, 0x8f, 0xc2, 0xba, 0x3d, 0x9c,
+
  0xc6, 0xc8, 0xf1, 0xc9, 0x9b, 0x31, 0x4c, 0xd1, 0x16, 0xdd, 0x5d, 0x94,
+
  0x32, 0x64, 0xfe, 0xb9, 0x55, 0x10, 0x45, 0xe7, 0x98, 0x1b, 0x80, 0x74,
+
  0x63, 0x04, 0xcd, 0x1b, 0xd4, 0x0d, 0xd9, 0xdd, 0x9d, 0xff, 0xe8, 0xb8,
+
  0x1e, 0x30, 0x12, 0x76, 0xc8, 0x50, 0x76, 0x97, 0x88, 0xb3, 0xae, 0x1e,
+
  0x4b, 0x1b, 0x8c, 0xa0, 0x4f, 0x51, 0x24, 0x26, 0xd3, 0x29, 0x77, 0x9a,
+
  0x95, 0x96, 0x98, 0x10, 0x40, 0x57, 0xb0, 0x5b, 0xc6, 0xd1, 0x50, 0xe0,
+
  0x61, 0xe5, 0xa6, 0x41, 0x15, 0x91, 0x7c, 0x2a, 0xc6, 0xf5, 0xd3, 0x0c,
+
  0x72, 0x75, 0x73, 0xe3, 0xd0, 0x3b, 0xb2, 0xc6, 0x1d, 0xa9, 0x9c, 0xb6,
+
  0xe0, 0xa7, 0xa9, 0xf2, 0x23, 0xd7, 0xf3, 0xba, 0x73, 0xb6, 0xbb, 0x38,
+
  0xdb, 0x70, 0x8b, 0x37, 0xe0, 0x32, 0x64, 0x5f, 0x28, 0xce, 0x1c, 0x89,
+
  0xd5, 0x83, 0xb4, 0xc0, 0x72, 0x57, 0x95, 0x20, 0xfb, 0x18, 0xd0, 0x0b,
+
  0x46, 0x00, 0x17, 0x33, 0x2a, 0x15, 0xe7, 0x70, 0xf8, 0x09, 0x78, 0xc5,
+
  0xc5, 0x26, 0x29, 0x5c, 0x60, 0x44, 0x91, 0x3a, 0xcc, 0x17, 0xe9, 0x35,
+
  0xb6, 0x1a, 0xb4, 0x1a, 0xc3, 0xbb, 0xc4, 0xba, 0xf3, 0xb3, 0x8c, 0xb9,
+
  0x36, 0x50, 0x4e, 0x00, 0xdf, 0x4a, 0x36, 0xf3, 0x3e, 0x50, 0x88, 0xde,
+
  0x12, 0x01, 0xfb, 0x00, 0x1f, 0xc7, 0x80, 0x93, 0x0f, 0x98, 0xc4, 0x9c,
+
  0xc2, 0xa2, 0x6f, 0x75, 0xc5, 0x3e, 0x52, 0x71, 0x3a, 0xb8, 0xd0, 0xb0,
+
  0x81, 0x3e, 0x75, 0x93, 0xa8, 0x6a, 0x9c, 0x26, 0xbf, 0x71, 0x61, 0x2d,
+
  0x4e, 0xf1, 0xe2, 0xab, 0xc6, 0x9d, 0xa4, 0x2f, 0x78, 0xdd, 0xb8, 0x5e,
+
  0xb8, 0xb8, 0xfd, 0x3a, 0xa0, 0x42, 0xd1, 0x6b, 0xad, 0xd0, 0xc4, 0x49,
+
  0xaf, 0x20, 0x02, 0x59, 0x76, 0x76, 0x09, 0xf8, 0x96, 0xde, 0x10, 0x20,
+
  0xbb, 0x25, 0x4f, 0x39, 0x02, 0xc4, 0xb3, 0x89, 0xa8, 0x5a, 0x2e, 0x43,
+
  0x57, 0x63, 0x0e, 0xdf, 0xf1, 0xd1, 0x8b, 0x64, 0xf3, 0x78, 0x36, 0x2c,
+
  0x6f, 0xe7, 0xb8, 0x7c, 0x47, 0x5c, 0x44, 0xf9, 0x05, 0x46, 0xc8, 0x6f,
+
  0xf9, 0x4c, 0x3c, 0xae, 0x08, 0x62, 0x81, 0x7f, 0x48, 0x27, 0xda, 0x89,
+
  0x78, 0x5f, 0x35, 0x06, 0x7b, 0x0c, 0xc3, 0x8a, 0x22, 0xfb, 0xd8, 0xfb,
+
  0x8b, 0x3d, 0xb1, 0x5d, 0x4d, 0xf0, 0xa3, 0xd4, 0xd6, 0x26, 0xaf, 0x5d,
+
  0x02, 0x81, 0xf2, 0x7b, 0xe4, 0xc4, 0x49, 0x93, 0x1f, 0xdf, 0x1c, 0x1f,
+
  0x9e, 0x1f, 0xd3, 0x00, 0xcd, 0x5a, 0xf1, 0x95, 0x3a, 0x9c, 0x17, 0xf4,
+
  0xe4, 0x61, 0x68, 0x9a, 0xab, 0xf2, 0x08, 0x50, 0x10, 0x92, 0x84, 0x64,
+
  0x0d, 0x7b, 0x58, 0x2c, 0x7c, 0x82, 0x1f, 0xd5, 0x38, 0x8f, 0x07, 0x32,
+
  0x38, 0x8c, 0x12, 0xda, 0xbc, 0x90, 0xb0, 0x6a, 0xd3, 0x40, 0xc7, 0x1c,
+
  0x1f, 0x14, 0xbd, 0x66, 0x2f, 0x88, 0xc6, 0xf4, 0x80, 0x8d, 0x09, 0x5a,
+
  0x0d, 0xe9, 0x0a, 0x6e, 0xd5, 0xe6, 0xc8, 0xa8, 0x0e, 0x96, 0x0e, 0x40,
+
  0xcb, 0x44, 0xd0, 0xb0, 0x74, 0xb8, 0x7d, 0x7a, 0x8e, 0xad, 0x0d, 0x18,
+
  0x76, 0x82, 0xb1, 0xe3, 0x74, 0x95, 0x49, 0x45, 0xe2, 0x7d, 0x56, 0xda,
+
  0xf8, 0xea, 0x09, 0xb6, 0x2f, 0x66, 0x01, 0xa4, 0xa4, 0xe1, 0xb1, 0x9d,
+
  0x07, 0x7d, 0x0c, 0x5d, 0x47, 0x0f, 0xa0, 0xcd, 0x23, 0xda, 0x21, 0x02,
+
  0xc1, 0xb8, 0xa3, 0x8c, 0x63, 0x36, 0x9c, 0x1c, 0x3c, 0x1d, 0x3c, 0x7e,
+
  0x08, 0x7b, 0xfc, 0x1d, 0x0d, 0x3e, 0x19, 0xc0, 0x56, 0x3c, 0x7e, 0x98,
+
  0x68, 0x7c, 0x6e, 0xdc, 0x52, 0x54, 0xe9, 0x02, 0x09, 0x01, 0x77, 0x56,
+
  0x43, 0x35, 0x67, 0x07, 0x4f, 0xf9, 0x82, 0xa2, 0x76, 0xac, 0x96, 0x1b,
+
  0x67, 0x51, 0x17, 0x1c, 0xc8, 0xd7, 0x2b, 0x2d, 0x39, 0xb2, 0x33, 0x27,
+
  0x34, 0xcb, 0x77, 0xf8, 0x60, 0x27, 0x91, 0x14, 0x69, 0xd2, 0x52, 0x5a,
+
  0xa6, 0xb0, 0x49, 0x2b, 0x14, 0x40, 0x1d, 0xf8, 0xba, 0x37, 0x4b, 0x0c,
+
  0x2e, 0x96, 0x18, 0x72, 0x80, 0xcd, 0xbf, 0x2a, 0xf0, 0x04, 0x63, 0x0b,
+
  0xb0, 0x62, 0x13, 0xe2, 0x0d, 0xe4, 0xc9, 0x45, 0xdc, 0x09, 0x1c, 0x0c,
+
  0xbb, 0x75, 0xb1, 0x16, 0xd6, 0xf1, 0x3b, 0x78, 0xe8, 0xdd, 0x9b, 0xe3,
+
  0x3f, 0xbd, 0x3d, 0x79, 0x73, 0xfc, 0x2c, 0xd9, 0xdc, 0xdd, 0xd9, 0xdd,
+
  0x8a, 0xc2, 0x35, 0x33, 0x0e, 0x0c, 0xfd, 0xdc, 0x85, 0xb3, 0xb1, 0x59,
+
  0xa4, 0xe4, 0x75, 0xc4, 0xc3, 0x27, 0xfd, 0x27, 0x2d, 0xd2, 0x21, 0x7b,
+
  0x64, 0xe5, 0xd8, 0x5f, 0x72, 0x2c, 0x76, 0x0b, 0xa4, 0xca, 0xb3, 0x0c,
+
  0x73, 0x01, 0x18, 0x57, 0x8e, 0x2f, 0x87, 0xcd, 0xd4, 0xe4, 0x1b, 0x90,
+
  0xc6, 0x1f, 0x52, 0x9d, 0xeb, 0xb3, 0x32, 0x2f, 0x34, 0xf1, 0x84, 0x81,
+
  0x0d, 0x89, 0x22, 0x95, 0xae, 0x47, 0x74, 0xb7, 0x73, 0x2c, 0x43, 0xa1,
+
  0xb5, 0xd3, 0xc6, 0xc1, 0xd6, 0x4f, 0xa2, 0x01, 0x6c, 0x5e, 0xa8, 0x07,
+
  0x35, 0xd6, 0xad, 0x69, 0xab, 0xf4, 0x47, 0xd7, 0x8b, 0x21, 0x45, 0x53,
+
  0xc0, 0x09, 0xea, 0x5a, 0xf3, 0xdb, 0xe4, 0xc7, 0x14, 0x6f, 0x40, 0xa2,
+
  0xec, 0x34, 0x9b, 0x42, 0x57, 0x55, 0x81, 0x11, 0xba, 0x1e, 0x30, 0x91,
+
  0x3f, 0x31, 0x1a, 0xe4, 0xe0, 0x4d, 0xbe, 0x3a, 0x13, 0xb8, 0x79, 0x46,
+
  0x18, 0x5b, 0x2f, 0x88, 0x7e, 0x54, 0x77, 0xfd, 0xfc, 0xa5, 0x3b, 0xd7,
+
  0x0c, 0x4f, 0x6a, 0xe1, 0x23, 0xba, 0x6c, 0x5f, 0x62, 0x83, 0xb5, 0xed,
+
  0x6d, 0x1e, 0xd4, 0x36, 0x55, 0xea, 0x5c, 0x17, 0x50, 0x1e, 0x5e, 0xe8,
+
  0x09, 0xa6, 0xa1, 0x0c, 0x95, 0x67, 0xf4, 0xd4, 0x0b, 0x80, 0x0c, 0x99,
+
  0x73, 0x9e, 0x4d, 0xac, 0x44, 0x4d, 0x38, 0x0f, 0xc4, 0xd3, 0x8b, 0xc4,
+
  0x96, 0x22, 0x58, 0x0a, 0xe8, 0x96, 0x97, 0x5a, 0xe4, 0xcb, 0xa0, 0x98,
+
  0x6f, 0x39, 0x22, 0x44, 0xdf, 0x22, 0x37, 0x08, 0xbd, 0x3b, 0x2f, 0x73,
+
  0xca, 0xa0, 0xd1, 0xcf, 0xa8, 0x2c, 0x04, 0xec, 0xff, 0x88, 0xca, 0x01,
+
  0x29, 0x76, 0xaf, 0xa2, 0x5a, 0xf1, 0xfb, 0x55, 0x94, 0x13, 0xc0, 0x7e,
+
  0xed, 0xc9, 0x04, 0x08, 0x90, 0x4a, 0xc0, 0x28, 0xac, 0x1b, 0x86, 0x27,
+
  0x6f, 0xc5, 0xb8, 0x54, 0xf2, 0xba, 0x61, 0x76, 0xfb, 0x73, 0x1f, 0xe2,
+
  0x24, 0xcc, 0xfb, 0xa1, 0xa3, 0xfd, 0x62, 0x5e, 0x33, 0xa5, 0xa7, 0x09,
+
  0xe8, 0xc8, 0xe5, 0x9a, 0x61, 0x98, 0x77, 0x55, 0x2a, 0xcf, 0xea, 0xf4,
+
  0xb2, 0x27, 0xa5, 0x6c, 0xe2, 0x33, 0xcb, 0x81, 0xd5, 0xaf, 0xd0, 0xde,
+
  0x41, 0x09, 0x54, 0x16, 0x2f, 0xc8, 0x21, 0xd6, 0x0a, 0x31, 0xa2, 0x75,
+
  0x82, 0xcc, 0xc1, 0x79, 0x7c, 0x91, 0x5e, 0xfa, 0x7a, 0x98, 0x8d, 0xfa,
+
  0x1f, 0x5c, 0x76, 0xe3, 0xd6, 0x22, 0xac, 0xa1, 0xed, 0x05, 0x08, 0x28,
+
  0x53, 0x58, 0xc0, 0xde, 0x6b, 0x58, 0xff, 0xde, 0x2b, 0xca, 0x4b, 0x52,
+
  0xd8, 0x7b, 0x07, 0x5a, 0xc6, 0x0e, 0x0a, 0xc2, 0x6e, 0xc7, 0x3e, 0x74,
+
  0x9d, 0xb0, 0x98, 0x93, 0x66, 0xb2, 0x73, 0xa2, 0x08, 0x26, 0x3e, 0x11,
+
  0xd6, 0x4d, 0x45, 0xf6, 0x2f, 0x67, 0xd7, 0x0f, 0x28, 0xc3, 0x14, 0x51,
+
  0xab, 0x55, 0x64, 0x1d, 0xce, 0x78, 0x1a, 0xd5, 0x17, 0x0d, 0x19, 0xbf,
+
  0xa3, 0xac, 0xca, 0xad, 0xe7, 0xe4, 0xd0, 0xeb, 0x17, 0xbc, 0xd9, 0x69,
+
  0x69, 0x89, 0x94, 0x69, 0x15, 0x14, 0x10, 0x3f, 0xd2, 0xb7, 0x02, 0xe1,
+
  0x21, 0xdc, 0x4f, 0x16, 0x1f, 0xa5, 0x29, 0xae, 0xfe, 0x87, 0x41, 0x6a,
+
  0xfc, 0x17, 0xf2, 0x21, 0x5c, 0x46, 0x45, 0x6b, 0x30, 0xf7, 0x45, 0x40,
+
  0x53, 0xae, 0x45, 0x17, 0x88, 0x31, 0x09, 0xf0, 0x7c, 0xe8, 0x6e, 0x92,
+
  0x2e, 0x5a, 0xe9, 0xd4, 0x49, 0xa8, 0xa7, 0x46, 0xa9, 0x4a, 0x80, 0x41,
+
  0x5c, 0x73, 0x6d, 0xc0, 0x5a, 0xf7, 0x53, 0x9d, 0xc0, 0x11, 0x5d, 0x44,
+
  0xd0, 0x97, 0x8d, 0xe8, 0x8e, 0xb0, 0x37, 0x9f, 0x44, 0xce, 0xbe, 0x1b,
+
  0xfc, 0xe3, 0x1e, 0x7c, 0x29, 0x6f, 0xa8, 0x68, 0x5e, 0x45, 0x61, 0x35,
+
  0x99, 0xd2, 0x71, 0x7c, 0x18, 0x83, 0x3c, 0x8a, 0x89, 0x9d, 0x9e, 0x68,
+
  0xa1, 0xf4, 0x73, 0x86, 0x8a, 0x98, 0x09, 0x7d, 0x33, 0x19, 0x2f, 0x29,
+
  0xaa, 0x56, 0x8c, 0x76, 0x26, 0x4f, 0x90, 0x34, 0xa6, 0xc9, 0xd5, 0xc3,
+
  0x2b, 0x24, 0x69, 0xbd, 0xe8, 0x99, 0x86, 0x51, 0x47, 0xe2, 0x68, 0x77,
+
  0xce, 0xb9, 0xe6, 0xf1, 0x87, 0x3d, 0x75, 0x77, 0x3c, 0xa8, 0xbd, 0xd6,
+
  0x28, 0xa7, 0x4e, 0x4b, 0xce, 0xb2, 0xa2, 0xf6, 0xc4, 0x8a, 0xad, 0xc7,
+
  0x03, 0x8e, 0x6f, 0x13, 0x9b, 0xe7, 0x97, 0xb8, 0x4e, 0xac, 0x71, 0x3a,
+
  0x8c, 0x9f, 0x61, 0xcf, 0x64, 0xff, 0xc3, 0x36, 0x51, 0x92, 0xd6, 0xee,
+
  0xce, 0xce, 0xaa, 0xe2, 0x87, 0xc6, 0x9b, 0xe2, 0x1a, 0x88, 0x71, 0x11,
+
  0xc4, 0x50, 0x03, 0xd1, 0xb0, 0x52, 0x6e, 0xd2, 0xbc, 0x8e, 0xca, 0xa6,
+
  0x62, 0x1f, 0x5a, 0xe8, 0xc5, 0x69, 0xce, 0x37, 0x01, 0x57, 0x31, 0xa3,
+
  0x9a, 0x88, 0xe4, 0x5f, 0x3c, 0xa6, 0x61, 0x55, 0x07, 0xf1, 0x6b, 0x22,
+
  0x98, 0x88, 0x3e, 0x37, 0xe3, 0xea, 0x1d, 0x76, 0x98, 0xbc, 0x7b, 0xc9,
+
  0x8c, 0x58, 0x54, 0x69, 0x97, 0xb5, 0x51, 0x22, 0xcf, 0x96, 0xb8, 0x2f,
+
  0x2b, 0x85, 0x68, 0x75, 0x0b, 0x43, 0x31, 0x44, 0x87, 0xfa, 0x48, 0xb8,
+
  0xe4, 0x15, 0xb7, 0xc9, 0xe5, 0xc7, 0x5c, 0xe6, 0x93, 0x96, 0x5e, 0xe4,
+
  0xc2, 0xea, 0x81, 0xe0, 0xc8, 0x8c, 0xa6, 0x16, 0x95, 0x08, 0xe6, 0x24,
+
  0xea, 0x4a, 0xeb, 0x97, 0x89, 0x3f, 0xcb, 0xe9, 0xe0, 0x52, 0x04, 0x31,
+
  0x91, 0x02, 0x8b, 0x9d, 0x7e, 0xc7, 0xd9, 0x33, 0x5a, 0xeb, 0x2c, 0xd2,
+
  0x85, 0x4b, 0x04, 0x47, 0xf0, 0xae, 0x71, 0x89, 0x45, 0x2d, 0x64, 0xca,
+
  0x45, 0x16, 0x2d, 0xa7, 0x5f, 0xcb, 0x38, 0x4a, 0xad, 0x45, 0x57, 0x6c,
+
  0x31, 0xb1, 0xdb, 0x76, 0x89, 0x50, 0xe8, 0x38, 0x7e, 0xa1, 0x9b, 0x77,
+
  0xa9, 0xb3, 0xbd, 0xfe, 0x23, 0xc3, 0x1f, 0x5c, 0x37, 0x21, 0xc2, 0x17,
+
  0x3b, 0x54, 0x82, 0x1f, 0xa3, 0x81, 0x0d, 0x55, 0xb3, 0x88, 0xba, 0x9f,
+
  0xa3, 0xae, 0xe6, 0x42, 0x3f, 0x29, 0xf7, 0x6e, 0x6f, 0x8f, 0x98, 0x9b,
+
  0x62, 0x5a, 0xd8, 0x96, 0x0e, 0x0a, 0xac, 0x24, 0x22, 0x76, 0x23, 0xad,
+
  0x55, 0x83, 0x12, 0x0e, 0x51, 0x3b, 0x71, 0xb4, 0x60, 0x0c, 0x11, 0x46,
+
  0x84, 0xcb, 0xab, 0x77, 0xb9, 0x34, 0x83, 0x7d, 0x90, 0x76, 0x49, 0x35,
+
  0x87, 0x0c, 0x71, 0xe6, 0x92, 0x78, 0x4c, 0xc0, 0xc7, 0x98, 0x69, 0xfe,
+
  0x12, 0x27, 0x0b, 0xf3, 0x71, 0x51, 0xce, 0xa9, 0x7e, 0x51, 0x56, 0x5b,
+
  0x39, 0xf7, 0x2c, 0xbf, 0x66, 0xf4, 0xf5, 0x51, 0x31, 0xe4, 0x1a, 0x2e,
+
  0x86, 0x6b, 0x6b, 0x38, 0x14, 0x3a, 0x85, 0x31, 0xe5, 0x52, 0x51, 0x24,
+
  0x02, 0xed, 0x3f, 0x2c, 0x9c, 0x04, 0x38, 0x72, 0x3d, 0x05, 0xd6, 0x3e,
+
  0x15, 0xe3, 0x40, 0xe1, 0xeb, 0xae, 0x6e, 0xd9, 0x47, 0x89, 0xa9, 0x10,
+
  0x5b, 0x9a, 0xf5, 0xfd, 0xf0, 0xc3, 0x07, 0x99, 0x7b, 0x38, 0xda, 0x84,
+
  0x2d, 0xd2, 0x40, 0xe6, 0xe6, 0x8c, 0x4d, 0x7f, 0xfc, 0xb0, 0x5a, 0x0c,
+
  0x59, 0xa2, 0x68, 0xef, 0xe9, 0x16, 0xe6, 0xb5, 0xad, 0xad, 0x58, 0x84,
+
  0xa5, 0x35, 0x1a, 0x42, 0x97, 0x4c, 0x45, 0xe4, 0x46, 0xda, 0x33, 0xd8,
+
  0x2e, 0x01, 0xba, 0x8e, 0xdc, 0xcc, 0xd4, 0x6a, 0x94, 0xc6, 0x4d, 0xd6,
+
  0xb9, 0xc6, 0x6e, 0xe8, 0x39, 0x1e, 0x71, 0x06, 0x63, 0x0e, 0xf2, 0x12,
+
  0xf9, 0x92, 0x70, 0x61, 0xbd, 0xc7, 0xb5, 0x60, 0x88, 0x6b, 0xae, 0xfd,
+
  0xc0, 0x85, 0xfa, 0x38, 0x56, 0x98, 0xc1, 0x66, 0x78, 0x31, 0x68, 0xd5,
+
  0x88, 0x6b, 0x47, 0x79, 0xdb, 0x84, 0xa0, 0x95, 0x19, 0x0e, 0x2f, 0xb4,
+
  0xdc, 0x43, 0xda, 0xea, 0xd1, 0x66, 0x2c, 0x21, 0x21, 0x51, 0xee, 0x56,
+
  0x56, 0x5f, 0x15, 0x23, 0x33, 0x5e, 0xf0, 0x3e, 0xc3, 0x7d, 0x30, 0xd6,
+
  0xae, 0xc8, 0x70, 0x28, 0x8e, 0xad, 0x62, 0x08, 0x14, 0xc2, 0xde, 0x38,
+
  0x2a, 0x56, 0x66, 0x39, 0x97, 0xbd, 0x6a, 0x41, 0x19, 0x1e, 0x94, 0xe6,
+
  0x1e, 0xef, 0x0e, 0x1e, 0xe0, 0x6a, 0xc2, 0x2e, 0x6f, 0x8a, 0x95, 0xc5,
+
  0x8a, 0xd5, 0x02, 0xe0, 0x40, 0x40, 0x3d, 0x48, 0x6e, 0x42, 0xe0, 0x51,
+
  0x1e, 0x9f, 0xd6, 0xd0, 0x9e, 0xa0, 0xa4, 0xb3, 0xd9, 0xa0, 0xe9, 0x87,
+
  0x3b, 0xbb, 0x34, 0xbc, 0x87, 0x3b, 0x5f, 0x6f, 0xb5, 0x05, 0x97, 0x93,
+
  0x65, 0xa4, 0x3d, 0x1c, 0xa2, 0x61, 0xed, 0x5f, 0x36, 0xf7, 0x37, 0x7d,
+
  0xc4, 0xd8, 0xd6, 0xdd, 0xbc, 0x84, 0x7a, 0xbb, 0x27, 0x63, 0x6e, 0xad,
+
  0xc2, 0x6a, 0xf1, 0x8e, 0x49, 0x8e, 0x59, 0x30, 0xb7, 0x2e, 0x6d, 0xa9,
+
  0x04, 0xa1, 0xe3, 0x87, 0x4c, 0x98, 0x7a, 0xe7, 0x86, 0x8f, 0x44, 0xaa,
+
  0xc6, 0x11, 0xe2, 0xd3, 0x58, 0xac, 0x37, 0x20, 0xfa, 0xa2, 0x88, 0xca,
+
  0x85, 0x3d, 0x50, 0xcf, 0x55, 0x47, 0x2a, 0xd1, 0x5b, 0xbf, 0xad, 0xa6,
+
  0xb9, 0x2a, 0xc6, 0xa3, 0xa2, 0xcd, 0x2a, 0xdb, 0x30, 0x06, 0x49, 0x6a,
+
  0x9d, 0x05, 0xea, 0xbb, 0x7c, 0x0d, 0x56, 0x0c, 0x09, 0x63, 0x2e, 0x03,
+
  0x29, 0x4b, 0xb3, 0xd5, 0xdf, 0xbe, 0x79, 0xd9, 0xa5, 0xab, 0x74, 0x80,
+
  0x51, 0x32, 0x59, 0x3f, 0x72, 0x72, 0x5a, 0x43, 0x8c, 0x0a, 0x59, 0xa9,
+
  0xe1, 0x45, 0x42, 0x80, 0x50, 0x42, 0x26, 0xd0, 0x39, 0x8c, 0xcf, 0x40,
+
  0xd3, 0xaf, 0xe6, 0xc0, 0x5b, 0x9c, 0x11, 0xe3, 0x42, 0xc2, 0x57, 0x1b,
+
  0x56, 0x11, 0x86, 0x88, 0x96, 0x56, 0xa0, 0x9c, 0x92, 0x5e, 0x48, 0xc5,
+
  0xcd, 0x02, 0x7f, 0x96, 0x94, 0x7c, 0x62, 0x04, 0xfd, 0xe4, 0x98, 0xb0,
+
  0x49, 0xe4, 0xbc, 0x7a, 0x28, 0xb3, 0xce, 0x55, 0x0e, 0x42, 0xd1, 0xac,
+
  0x43, 0x8a, 0x50, 0x90, 0xc1, 0xdd, 0xa1, 0x08, 0xc9, 0x2c, 0xa6, 0x3c,
+
  0x84, 0xc2, 0x50, 0x31, 0x9c, 0x7a, 0x93, 0x01, 0x39, 0x9c, 0xfd, 0xc2,
+
  0x8a, 0xb3, 0x07, 0xbc, 0x98, 0x10, 0x86, 0x82, 0x6c, 0x8c, 0xb8, 0x74,
+
  0x37, 0x2a, 0x81, 0x69, 0xe1, 0x5f, 0xe9, 0x14, 0xc3, 0xce, 0xe9, 0x4f,
+
  0x5a, 0x1f, 0xab, 0xba, 0x28, 0xb7, 0x02, 0x57, 0x11, 0x9c, 0x19, 0x47,
+
  0x71, 0x26, 0x3d, 0xe5, 0x16, 0x37, 0xe9, 0x2d, 0x61, 0x94, 0xfb, 0x7a,
+
  0x90, 0xb6, 0x1c, 0x97, 0x42, 0xa5, 0x8b, 0x99, 0x91, 0x14, 0xae, 0x07,
+
  0x30, 0x76, 0xdc, 0x75, 0x6c, 0xcb, 0x52, 0x0f, 0x96, 0xcf, 0x85, 0xe5,
+
  0xe2, 0x60, 0x5c, 0xd4, 0xad, 0x92, 0xb0, 0x26, 0x50, 0x93, 0x71, 0xad,
+
  0x72, 0xa4, 0x86, 0x8a, 0x51, 0xb8, 0x62, 0xb1, 0xca, 0x99, 0x1a, 0x7c,
+
  0xf8, 0xbe, 0xda, 0xd0, 0xdc, 0x61, 0x89, 0x4b, 0x92, 0x8b, 0x02, 0xfd,
+
  0xda, 0xec, 0xc3, 0x10, 0x30, 0x77, 0x9e, 0x6b, 0x7d, 0x53, 0xf8, 0xfb,
+
  0x02, 0x16, 0xf0, 0x8a, 0xfd, 0xff, 0xc4, 0x13, 0x33, 0x63, 0x28, 0x81,
+
  0x4b, 0x5e, 0x4e, 0x8a, 0x01, 0x4a, 0x3e, 0x44, 0x5c, 0x52, 0xde, 0xaa,
+
  0xa4, 0xd8, 0xa0, 0x20, 0xae, 0xa5, 0x04, 0x16, 0x0f, 0x4b, 0xc0, 0x7e,
+
  0x87, 0x15, 0xbe, 0x6f, 0xdf, 0x92, 0x2d, 0x82, 0x25, 0xd2, 0x0c, 0xb2,
+
  0x66, 0x2d, 0x1d, 0x3c, 0x2f, 0x16, 0x52, 0x83, 0x9b, 0x29, 0xad, 0x47,
+
  0xbe, 0xcf, 0x70, 0xfc, 0x93, 0x36, 0x2e, 0xf8, 0xf1, 0xa9, 0x1b, 0x11,
+
  0x8b, 0xb9, 0x87, 0x13, 0x4a, 0xc7, 0x6d, 0xde, 0x06, 0xfd, 0x0c, 0x16,
+
  0x5c, 0x9d, 0xda, 0x2d, 0xe0, 0xea, 0xca, 0xab, 0x96, 0xf8, 0x61, 0xc4,
+
  0xdd, 0xec, 0xe3, 0x48, 0xcc, 0x7a, 0xc3, 0x18, 0xd8, 0xf1, 0x99, 0x51,
+
  0x0c, 0x3f, 0x66, 0x18, 0x37, 0x7c, 0xa3, 0x85, 0x52, 0x85, 0xcb, 0x37,
+
  0x34, 0x6e, 0x0c, 0x8a, 0x4c, 0xf0, 0xbe, 0x08, 0x4b, 0x98, 0x27, 0xd1,
+
  0x26, 0x27, 0x99, 0x82, 0x29, 0x7d, 0xd0, 0x01, 0xb4, 0xba, 0x29, 0x2a,
+
  0x2b, 0x51, 0xcd, 0x2a, 0x91, 0x95, 0x38, 0x1e, 0xc9, 0x1f, 0x6e, 0x42,
+
  0x5d, 0xd5, 0xef, 0x13, 0x2f, 0x2b, 0xc9, 0xd4, 0x96, 0x04, 0x26, 0x93,
+
  0x97, 0x4c, 0x54, 0x22, 0x49, 0x29, 0x46, 0x65, 0x55, 0x10, 0xe1, 0x50,
+
  0xdb, 0x03, 0x39, 0xaf, 0xc8, 0x94, 0x78, 0x1a, 0xd9, 0x36, 0x91, 0xd6,
+
  0x06, 0xbd, 0x82, 0xde, 0x0d, 0x6a, 0x9f, 0x80, 0x28, 0x69, 0x21, 0x55,
+
  0xf0, 0x89, 0xa8, 0x57, 0xd3, 0xda, 0x6a, 0x4c, 0xc8, 0xa1, 0x2c, 0x30,
+
  0x97, 0xf1, 0x2e, 0x1b, 0xa8, 0xb5, 0xf1, 0x0c, 0xd9, 0x84, 0x4f, 0xd0,
+
  0xb8, 0x28, 0x9d, 0xf9, 0x87, 0xa0, 0x45, 0xf3, 0x12, 0x66, 0x8e, 0xc1,
+
  0x03, 0x84, 0x21, 0xaa, 0xd9, 0x7a, 0x28, 0x91, 0x57, 0xec, 0x00, 0xf4,
+
  0xf0, 0x30, 0xab, 0x2e, 0x7b, 0x77, 0x29, 0xae, 0x70, 0xf5, 0x37, 0xe3,
+
  0xc3, 0xee, 0xcd, 0x24, 0x5b, 0x22, 0xbe, 0xfb, 0xe8, 0x3e, 0x0c, 0x61,
+
  0x6d, 0x59, 0x20, 0x08, 0x03, 0xcd, 0xd4, 0x79, 0x6e, 0xb3, 0xef, 0xf4,
+
  0x6d, 0x0d, 0x15, 0xbb, 0xf7, 0xc0, 0x34, 0x45, 0x81, 0x49, 0x95, 0xf5,
+
  0x08, 0xfc, 0xce, 0x9b, 0x77, 0xd1, 0x7a, 0x45, 0x5f, 0x09, 0x2e, 0x9e,
+
  0xe2, 0x71, 0xe3, 0x5a, 0x93, 0x83, 0xc8, 0x8a, 0xd1, 0xf7, 0x41, 0x7a,
+
  0x08, 0xcf, 0x39, 0x03, 0x09, 0x65, 0xfe, 0xc9, 0x69, 0x4a, 0xf9, 0x25,
+
  0x06, 0x88, 0xe6, 0x47, 0xab, 0x24, 0x58, 0x05, 0x5d, 0xd5, 0x71, 0x85,
+
  0x6f, 0x73, 0xdc, 0x92, 0xa2, 0xa9, 0x6e, 0xb5, 0x77, 0xe3, 0xe0, 0xcf,
+
  0xf3, 0x59, 0x5e, 0x5d, 0x61, 0xf0, 0x06, 0xa6, 0x34, 0x5e, 0x66, 0x5d,
+
  0x81, 0x31, 0x15, 0xb2, 0x00, 0x15, 0x18, 0x2e, 0x34, 0xe4, 0x93, 0x70,
+
  0xc3, 0xa8, 0xe2, 0x00, 0x27, 0x44, 0x30, 0xaa, 0xf8, 0x11, 0x2a, 0xa1,
+
  0x1d, 0xa6, 0xe2, 0x77, 0xa1, 0x99, 0x62, 0x5d, 0xb9, 0x18, 0xdd, 0x96,
+
  0x20, 0x5d, 0xab, 0x5c, 0x79, 0xee, 0xa2, 0x11, 0x2f, 0x08, 0x1c, 0x1b,
+
  0x83, 0x7c, 0x37, 0x71, 0x43, 0x4f, 0xcf, 0x61, 0x93, 0x48, 0xd3, 0x4a,
+
  0xd0, 0x66, 0x54, 0x32, 0xd2, 0xeb, 0x34, 0x1d, 0xc2, 0x17, 0xbb, 0x3b,
+
  0xfd, 0x6f, 0xec, 0x0b, 0xd0, 0xb0, 0x25, 0xa4, 0x77, 0x29, 0x0f, 0x2f,
+
  0xde, 0xb2, 0x35, 0x02, 0x1e, 0x95, 0xa2, 0x7d, 0xaa, 0xe7, 0x0a, 0x26,
+
  0x6e, 0xcd, 0xde, 0x47, 0xcd, 0xa1, 0xff, 0xb5, 0x34, 0xe1, 0x7a, 0x38,
+
  0x87, 0x97, 0xd0, 0x7a, 0x41, 0x39, 0xa7, 0x44, 0x78, 0xcf, 0xbb, 0x02,
+
  0xb9, 0xc9, 0xbe, 0x05, 0x45, 0x7e, 0x8a, 0x82, 0x4c, 0xb0, 0xb0, 0x41,
+
  0x72, 0xf2, 0xea, 0x10, 0xf5, 0x63, 0x31, 0x3c, 0xd3, 0xe7, 0x16, 0x62,
+
  0x32, 0x4e, 0x41, 0x62, 0x00, 0x99, 0x23, 0x9b, 0x52, 0x35, 0x55, 0x41,
+
  0xef, 0x9f, 0x64, 0xa3, 0x9e, 0x46, 0x0e, 0x50, 0x0f, 0x24, 0xb5, 0x13,
+
  0xc3, 0xf1, 0xf8, 0xd6, 0x0c, 0x5f, 0x2d, 0xd2, 0x9f, 0xc0, 0x57, 0xc7,
+
  0xf8, 0xd5, 0xcb, 0xc0, 0xd5, 0x84, 0xb7, 0xad, 0x34, 0x1a, 0x43, 0x54,
+
  0x7b, 0x58, 0x40, 0x0b, 0x44, 0x85, 0x25, 0xda, 0x26, 0x94, 0x43, 0x7c,
+
  0x63, 0x05, 0x62, 0xfd, 0xde, 0xfe, 0x93, 0x27, 0xde, 0xbc, 0x4d, 0xb3,
+
  0x66, 0xd1, 0x01, 0xe7, 0x9e, 0xf8, 0x52, 0x1d, 0x56, 0x12, 0x76, 0x8a,
+
  0x45, 0x71, 0x39, 0x5d, 0xd0, 0x7a, 0xc2, 0xf1, 0xaa, 0xcc, 0x23, 0x67,
+
  0x82, 0x4c, 0x9a, 0x48, 0x84, 0xd3, 0x3c, 0x96, 0x30, 0x14, 0x4d, 0x80,
+
  0x91, 0x4d, 0xa5, 0x60, 0xb6, 0x40, 0xfa, 0x71, 0x29, 0x91, 0xac, 0x1e,
+
  0x12, 0xce, 0x34, 0xe7, 0xb0, 0xd3, 0x1c, 0x37, 0x64, 0x93, 0x36, 0x1c,
+
  0x7c, 0x1a, 0x4b, 0x21, 0xa9, 0x04, 0x45, 0x60, 0xd9, 0xc4, 0xfc, 0x43,
+
  0x5c, 0xfd, 0x93, 0xe3, 0xb6, 0x66, 0xc9, 0xf7, 0x14, 0x0c, 0xc3, 0xd8,
+
  0xd5, 0x04, 0x64, 0x7a, 0xa9, 0xd8, 0x27, 0x1e, 0xdf, 0x8b, 0x1a, 0xf5,
+
  0x75, 0x12, 0xef, 0x68, 0x94, 0x8d, 0xb5, 0x84, 0x30, 0xc6, 0x0d, 0x3d,
+
  0x95, 0xd2, 0xbe, 0x39, 0x90, 0x3c, 0x1c, 0xd5, 0x21, 0x46, 0x64, 0xd7,
+
  0x37, 0x18, 0xc3, 0xff, 0x3d, 0x2d, 0xe8, 0x53, 0x2d, 0x24, 0x25, 0xa0,
+
  0x75, 0xdf, 0xcb, 0x0d, 0xa4, 0x08, 0xc9, 0x36, 0x22, 0xd0, 0x46, 0x40,
+
  0x90, 0x0a, 0x40, 0x65, 0x8c, 0x1b, 0x9d, 0x86, 0x27, 0x79, 0xdd, 0x48,
+
  0x00, 0x95, 0x3c, 0x76, 0x68, 0x5c, 0x1b, 0x23, 0xa3, 0x86, 0x06, 0xfc,
+
  0xa0, 0x73, 0x19, 0xfb, 0xd6, 0x29, 0xfb, 0xd9, 0x56, 0xe2, 0x50, 0x41,
+
  0x97, 0x05, 0xda, 0x41, 0xf8, 0x69, 0x99, 0xbd, 0xaf, 0x2d, 0xf6, 0x86,
+
  0xcb, 0x96, 0xf1, 0x12, 0x05, 0xd8, 0x2f, 0x1f, 0x62, 0x9b, 0x9a, 0xb3,
+
  0x45, 0x2d, 0x76, 0x1a, 0x8b, 0xc4, 0x81, 0x50, 0x4d, 0x90, 0x52, 0xa6,
+
  0xf0, 0xcb, 0x22, 0xe3, 0x41, 0xb0, 0x41, 0x81, 0x97, 0x09, 0xa6, 0x82,
+
  0x56, 0x0a, 0xaa, 0x4b, 0x6e, 0x36, 0x48, 0xee, 0x30, 0x82, 0x02, 0xea,
+
  0xc6, 0xe6, 0x05, 0x49, 0x01, 0x1a, 0x2c, 0x68, 0xf5, 0x25, 0x92, 0x4d,
+
  0xeb, 0xe7, 0x09, 0x1c, 0xc7, 0xe0, 0x36, 0xb1, 0x90, 0x40, 0x35, 0x21,
+
  0x8a, 0x7a, 0x45, 0xb6, 0xd4, 0x2a, 0xff, 0x47, 0x26, 0x71, 0x07, 0x64,
+
  0xcc, 0x4d, 0x2d, 0x5e, 0x01, 0xe5, 0x30, 0x64, 0x88, 0xc9, 0x33, 0xa0,
+
  0x86, 0x99, 0xd8, 0x24, 0x91, 0x5a, 0x54, 0x5f, 0x8b, 0x10, 0xaf, 0x05,
+
  0xec, 0x9a, 0xac, 0x0f, 0x65, 0x76, 0xb9, 0x40, 0x7c, 0x43, 0x41, 0x3b,
+
  0xa3, 0x72, 0x93, 0xbc, 0x97, 0xfa, 0xd4, 0x3c, 0x9f, 0x3b, 0xc8, 0x65,
+
  0xd1, 0x43, 0xb6, 0x82, 0x3c, 0x0f, 0xdc, 0xe1, 0x57, 0x76, 0x76, 0x16,
+
  0x3a, 0x3f, 0x1a, 0x80, 0x8a, 0xf7, 0x4e, 0x29, 0xc3, 0x9f, 0xa9, 0x57,
+
  0xbe, 0x28, 0xfa, 0x49, 0xca, 0xe1, 0xfc, 0x21, 0x89, 0x82, 0x8d, 0xe9,
+
  0xf6, 0xa1, 0x19, 0x4b, 0x98, 0x2b, 0x55, 0x00, 0x34, 0x5c, 0x92, 0xe0,
+
  0x97, 0x34, 0x7d, 0x8a, 0x6f, 0xce, 0x2e, 0x97, 0xcc, 0x54, 0x2c, 0x6e,
+
  0xf6, 0x1e, 0xc0, 0x84, 0x08, 0xd7, 0x1c, 0x03, 0x7d, 0x99, 0x4d, 0xd2,
+
  0xf0, 0xb8, 0x92, 0x87, 0x85, 0x82, 0xdd, 0x12, 0x4f, 0x69, 0xf2, 0x77,
+
  0xae, 0xd0, 0x0d, 0x67, 0x34, 0x9f, 0x6a, 0x6d, 0xc3, 0x86, 0xe4, 0xda,
+
  0x95, 0x9b, 0x7c, 0x03, 0x98, 0x11, 0xae, 0xe3, 0x46, 0x5c, 0xb5, 0x97,
+
  0xce, 0xa4, 0x6a, 0x92, 0xc4, 0x74, 0x7b, 0x4c, 0xcb, 0xa1, 0x88, 0x63,
+
  0xa8, 0x12, 0x94, 0xe0, 0x8d, 0x58, 0xa6, 0xc0, 0x91, 0x7e, 0x9d, 0x5f,
+
  0x26, 0x71, 0x43, 0x54, 0xd0, 0x16, 0xa3, 0x7a, 0x1e, 0xf0, 0x65, 0xf3,
+
  0x3c, 0x91, 0x0e, 0xbf, 0xfd, 0x3e, 0x7a, 0xab, 0xe5, 0xde, 0xd9, 0x96,
+
  0x02, 0x36, 0xc3, 0xcb, 0xbc, 0x75, 0x7a, 0x1c, 0x0f, 0x6e, 0x18, 0x4b,
+
  0xd5, 0x55, 0x81, 0xdc, 0x03, 0x57, 0x1f, 0x0f, 0x39, 0xd6, 0x40, 0x0f,
+
  0x67, 0xb0, 0x52, 0x85, 0xd1, 0xc7, 0x2e, 0x47, 0xc3, 0xe2, 0x42, 0x99,
+
  0xc5, 0xd5, 0x0c, 0xff, 0xc0, 0xb6, 0xb0, 0xa5, 0x6f, 0x77, 0x5b, 0xe3,
+
  0x6e, 0xb7, 0x57, 0x8f, 0x07, 0xd9, 0xf4, 0x2d, 0xbb, 0x88, 0x1c, 0x07,
+
  0xd0, 0x68, 0x33, 0x09, 0xb8, 0xa6, 0xe0, 0x24, 0xba, 0xb2, 0x35, 0xe2,
+
  0x91, 0x0b, 0x12, 0xbb, 0x57, 0x18, 0x24, 0xa6, 0x95, 0xbd, 0xe4, 0xc6,
+
  0x4f, 0xd9, 0x1e, 0x8f, 0xab, 0x19, 0x4d, 0xa5, 0x83, 0xae, 0x9d, 0xdb,
+
  0x6f, 0x9f, 0x5e, 0x2d, 0x2e, 0xa9, 0x4c, 0x28, 0x7a, 0x78, 0x3a, 0x77,
+
  0xcd, 0x43, 0xe3, 0xbf, 0xc5, 0xd0, 0x98, 0x0b, 0xab, 0x50, 0x97, 0x07,
+
  0x19, 0x0e, 0xa2, 0xeb, 0xd0, 0x82, 0x00, 0x06, 0x71, 0x65, 0xaa, 0x0e,
+
  0x22, 0xef, 0x7e, 0xdb, 0xe9, 0xf2, 0x02, 0x08, 0xd0, 0xb1, 0xc2, 0x91,
+
  0xd6, 0x45, 0x3c, 0xca, 0x9b, 0x6c, 0xf0, 0xed, 0xf7, 0x68, 0xb9, 0xf8,
+
  0xd0, 0xbf, 0xaa, 0xa7, 0x93, 0x3f, 0xd0, 0xbb, 0xb8, 0x02, 0xdb, 0xf8,
+
  0x67, 0x27, 0x59, 0x16, 0x41, 0xe0, 0x40, 0xfb, 0x06, 0x1c, 0xbe, 0xbf,
+
  0x7b, 0x79, 0x5c, 0x14, 0x6d, 0xef, 0xc6, 0x73, 0x74, 0xd8, 0x1e, 0x0a,
+
  0xd0, 0x4e, 0xa5, 0xec, 0x28, 0xd4, 0x88, 0xf7, 0x8c, 0xe2, 0x87, 0xa2,
+
  0xdb, 0xc1, 0xdd, 0x92, 0xe4, 0x02, 0x67, 0x7b, 0xb2, 0x72, 0xe0, 0x6f,
+
  0xbb, 0x8c, 0x92, 0x8f, 0x37, 0x7a, 0x3c, 0x51, 0x26, 0x77, 0xab, 0x1f,
+
  0xf5, 0x07, 0x7b, 0x03, 0x7f, 0xc0, 0x01, 0x81, 0xab, 0xa8, 0x6d, 0xc4,
+
  0xe8, 0x25, 0xd1, 0x47, 0xb7, 0x29, 0xd4, 0x45, 0x3d, 0xde, 0x70, 0x73,
+
  0x77, 0x37, 0x38, 0x5e, 0x6b, 0xe3, 0x0f, 0x1b, 0xa2, 0x62, 0x1a, 0x1a,
+
  0x40, 0xf2, 0xf7, 0x45, 0x51, 0xfb, 0x52, 0x38, 0xa3, 0x62, 0x81, 0x38,
+
  0x16, 0xf4, 0x31, 0xd7, 0x46, 0x68, 0x1b, 0xdf, 0xcf, 0x1d, 0x1a, 0x61,
+
  0x17, 0xff, 0xfa, 0xb9, 0x13, 0x06, 0xf9, 0x33, 0xad, 0xf3, 0x1f, 0xf2,
+
  0xd9, 0x1f, 0x70, 0xa0, 0x3f, 0x77, 0x3a, 0x12, 0xa9, 0x7e, 0x57, 0xca,
+
  0x4b, 0xbc, 0x51, 0x1b, 0xdc, 0x81, 0x6b, 0xdf, 0x35, 0x1f, 0xb5, 0xde,
+
  0xd9, 0x58, 0xa3, 0x71, 0x87, 0x0b, 0x4a, 0x29, 0x04, 0xcd, 0x55, 0x42,
+
  0xfe, 0x13, 0x96, 0xa0, 0x31, 0xfd, 0xae, 0xab, 0x28, 0xee, 0xbf, 0xc0,
+
  0xc5, 0x44, 0x11, 0xbd, 0x9a, 0xa4, 0xd5, 0x15, 0xeb, 0x64, 0xf9, 0xac,
+
  0x51, 0xf5, 0x5c, 0x33, 0x57, 0x32, 0x2a, 0xad, 0xea, 0x16, 0xd8, 0x5e,
+
  0x54, 0x3e, 0xfc, 0x27, 0x68, 0x92, 0x63, 0x59, 0x09, 0xb2, 0x8a, 0x4e,
+
  0x15, 0x4a, 0x55, 0x8a, 0xe0, 0x50, 0x17, 0x7c, 0x93, 0x11, 0x75, 0x09,
+
  0xb6, 0x3f, 0xbb, 0xd1, 0x1a, 0x51, 0x0d, 0x55, 0x36, 0xcd, 0x29, 0x43,
+
  0x17, 0x06, 0x3e, 0xc9, 0x48, 0xb0, 0xdb, 0x46, 0xa6, 0x49, 0xe0, 0x2e,
+
  0xd5, 0x3c, 0x45, 0x1d, 0x1a, 0x95, 0x0c, 0xfe, 0x4a, 0x66, 0xc4, 0xb3,
+
  0x8f, 0x89, 0x70, 0x03, 0x5b, 0x29, 0xab, 0x6f, 0x3b, 0x70, 0x91, 0xff,
+
  0x01, 0xad, 0x1c, 0xd9, 0xec, 0x0f, 0xc9, 0x60, 0xb2, 0x80, 0xad, 0x08,
+
  0x47, 0xe7, 0x43, 0x6f, 0x7a, 0x0b, 0x63, 0xb4, 0x4d, 0x58, 0xbd, 0x07,
+
  0x7a, 0x9a, 0xd2, 0xd1, 0x48, 0x23, 0x40, 0x34, 0xe4, 0x5b, 0x78, 0x1d,
+
  0x1f, 0x22, 0x77, 0x4e, 0xe4, 0x7b, 0x39, 0x26, 0x31, 0xbf, 0x22, 0x61,
+
  0xfd, 0xdb, 0xd3, 0x3f, 0xfe, 0x41, 0x1f, 0xfa, 0xb9, 0xf3, 0x97, 0x1e,
+
  0x7f, 0x4a, 0x60, 0xde, 0x07, 0xc9, 0xe9, 0x1f, 0x91, 0xf2, 0xee, 0x65,
+
  0x09, 0xcb, 0x2d, 0x7d, 0xcf, 0xbf, 0x10, 0xd5, 0x25, 0x6d, 0x0a, 0x7a,
+
  0x66, 0x23, 0x4b, 0x92, 0xf7, 0xd9, 0x2d, 0xe1, 0xe2, 0x51, 0xbc, 0x10,
+
  0xc6, 0x0b, 0x03, 0xdb, 0x9a, 0x16, 0x16, 0x86, 0x42, 0x85, 0x52, 0x58,
+
  0x9a, 0x19, 0x60, 0x0d, 0x07, 0x32, 0x17, 0x2a, 0x0b, 0xa7, 0x12, 0xa5,
+
  0x7f, 0x97, 0x8d, 0xa7, 0xad, 0xbe, 0x95, 0x2a, 0x1b, 0xcd, 0x68, 0x78,
+
  0x14, 0x29, 0x62, 0x89, 0x38, 0x39, 0xc6, 0xb0, 0x80, 0x50, 0x6e, 0x85,
+
  0xed, 0xa7, 0xfc, 0x5b, 0xa5, 0xd1, 0xdb, 0x2c, 0x23, 0x6f, 0xfc, 0x6e,
+
  0x43, 0xa3, 0xc2, 0xa7, 0x53, 0xba, 0x13, 0xc8, 0x8d, 0xc5, 0xa5, 0x93,
+
  0xfe, 0xe0, 0x0d, 0x86, 0xe2, 0xd5, 0x16, 0x58, 0xa3, 0x71, 0x31, 0x91,
+
  0xfa, 0x58, 0x40, 0x37, 0xa0, 0x02, 0x53, 0x93, 0x2a, 0x4d, 0xd3, 0x75,
+
  0x89, 0x33, 0x97, 0x0a, 0x1e, 0xda, 0x67, 0x2c, 0xce, 0xe7, 0x33, 0x2e,
+
  0xb2, 0xea, 0xa2, 0x6b, 0x08, 0x1b, 0x01, 0xa8, 0xf0, 0x0f, 0x21, 0x49,
+
  0x44, 0x41, 0xea, 0x7b, 0x6a, 0xf3, 0x0a, 0x09, 0x6c, 0x4d, 0xca, 0xa5,
+
  0x78, 0x75, 0xa9, 0x0b, 0xd2, 0x4f, 0x5e, 0x90, 0x65, 0x81, 0x8d, 0x4d,
+
  0x9a, 0x1e, 0x43, 0x72, 0xb0, 0x46, 0x13, 0x85, 0x62, 0x96, 0x7a, 0x1f,
+
  0x12, 0x89, 0xff, 0x4e, 0xf4, 0x7b, 0x3c, 0x4b, 0x8a, 0xa9, 0x8c, 0xf3,
+
  0x91, 0x55, 0x07, 0x45, 0xf9, 0xc1, 0x5f, 0x24, 0x2a, 0xba, 0xb7, 0x7b,
+
  0xc0, 0x1a, 0x17, 0x41, 0x74, 0xf2, 0x67, 0xda, 0x84, 0x87, 0x84, 0x0e,
+
  0x01, 0xde, 0xbc, 0x6c, 0x51, 0x1b, 0x7b, 0xd6, 0x06, 0x9e, 0x12, 0xf5,
+
  0x70, 0x5b, 0x63, 0xe2, 0xd5, 0xd3, 0x6c, 0x60, 0xb5, 0x89, 0x04, 0xad,
+
  0x6e, 0x4a, 0xce, 0x2a, 0xd6, 0xe7, 0xc4, 0xa3, 0x2d, 0xa0, 0xce, 0x8c,
+
  0x71, 0x5b, 0x53, 0x16, 0xbf, 0x05, 0x23, 0xf1, 0xa8, 0x0c, 0x9d, 0xba,
+
  0xc7, 0x97, 0x94, 0x22, 0xc0, 0x17, 0x53, 0x4c, 0x71, 0x18, 0x1d, 0x88,
+
  0xeb, 0x90, 0xa0, 0x78, 0x09, 0x86, 0x57, 0xa4, 0x30, 0x91, 0xd3, 0x43,
+
  0x59, 0x15, 0x2b, 0x61, 0x4d, 0x3e, 0x02, 0xc1, 0x98, 0xe8, 0x5a, 0xe3,
+
  0xc0, 0x86, 0x88, 0x1f, 0x89, 0x49, 0x87, 0x49, 0x6e, 0x73, 0x43, 0x35,
+
  0x55, 0x6c, 0x3a, 0x65, 0xc7, 0x30, 0xdb, 0x0b, 0x52, 0x04, 0x17, 0x76,
+
  0x3a, 0xeb, 0x81, 0xf9, 0x86, 0x03, 0xdd, 0x39, 0x70, 0x6f, 0x55, 0x79,
+
  0x08, 0xa1, 0x3f, 0x86, 0xf3, 0xb6, 0x21, 0xa4, 0x6e, 0xad, 0xa4, 0x11,
+
  0xd6, 0x28, 0x02, 0x4e, 0x42, 0x9a, 0x6c, 0x7c, 0xbb, 0xb5, 0x11, 0xca,
+
  0x45, 0x36, 0xe5, 0xb1, 0x18, 0xe0, 0x5b, 0x7d, 0x1b, 0x96, 0x6c, 0x4e,
+
  0x1a, 0xf9, 0x14, 0xe3, 0x4e, 0x32, 0xda, 0x0c, 0xf6, 0xe1, 0x56, 0x81,
+
  0xe2, 0xb9, 0x3c, 0x56, 0x3e, 0x23, 0x42, 0x67, 0xc4, 0x69, 0xa6, 0x29,
+
  0x6f, 0x04, 0xe5, 0x22, 0x82, 0xd5, 0x81, 0x97, 0xdd, 0xe8, 0xf8, 0xa0,
+
  0x81, 0x57, 0xcc, 0x33, 0x27, 0xb5, 0xaa, 0x9e, 0x55, 0x90, 0x08, 0x1b,
+
  0xe2, 0xda, 0xc6, 0xb7, 0x9b, 0xcc, 0x83, 0x83, 0x89, 0xc1, 0x75, 0x13,
+
  0x6e, 0x44, 0x7e, 0xd6, 0x75, 0x26, 0x34, 0xd4, 0x7c, 0x22, 0x79, 0x8a,
+
  0x46, 0xc9, 0xef, 0xc8, 0xcc, 0x2c, 0x8f, 0x3c, 0xdd, 0xa6, 0x8f, 0x1a,
+
  0x22, 0x56, 0xf3, 0x45, 0x58, 0x51, 0xfa, 0xf7, 0x7b, 0x7c, 0x42, 0x05,
+
  0xc7, 0x8d, 0xa4, 0xdf, 0x07, 0x95, 0xb1, 0x9a, 0x36, 0x11, 0xb3, 0x14,
+
  0x6b, 0x8c, 0x6e, 0x2f, 0x2b, 0x48, 0xa0, 0xd1, 0xde, 0x92, 0x04, 0x62,
+
  0x7e, 0x23, 0x31, 0xad, 0xf0, 0xd7, 0xe5, 0xb7, 0x18, 0x05, 0x72, 0xa8,
+
  0xb1, 0x98, 0x1a, 0xab, 0xc9, 0xf0, 0xf2, 0xcc, 0x16, 0xc4, 0x74, 0x81,
+
  0xcb, 0xf9, 0x64, 0x90, 0x4b, 0xbc, 0x38, 0x97, 0x0b, 0xa2, 0x28, 0xad,
+
  0x6c, 0x52, 0x49, 0xf5, 0x2a, 0xbc, 0x83, 0xc4, 0x96, 0xe8, 0x0a, 0xe3,
+
  0xa0, 0x89, 0x9f, 0xed, 0x6b, 0x26, 0xb8, 0xca, 0x58, 0x7a, 0xc7, 0xd2,
+
  0x51, 0x62, 0x21, 0x5e, 0xc9, 0xd7, 0xd8, 0x85, 0x61, 0x9f, 0xab, 0x17,
+
  0x55, 0x8a, 0x26, 0x26, 0x4f, 0x7a, 0xf8, 0xb5, 0x1d, 0xa1, 0x2a, 0xa4,
+
  0xae, 0xc5, 0x3e, 0xd4, 0xae, 0xca, 0x1d, 0x3d, 0x0a, 0x72, 0x0d, 0x53,
+
  0x23, 0x9e, 0x2a, 0xe1, 0xf0, 0xd2, 0x0b, 0x2f, 0x44, 0xa5, 0xa6, 0xa7,
+
  0x60, 0x44, 0x0a, 0xe8, 0x1d, 0xd1, 0x3c, 0x3c, 0xcc, 0x2d, 0xca, 0x02,
+
  0x20, 0x53, 0x13, 0x07, 0xe7, 0x3b, 0x02, 0x24, 0x94, 0xcb, 0x9a, 0x70,
+
  0xda, 0xbe, 0x7e, 0xec, 0x06, 0xda, 0xae, 0x16, 0x36, 0x38, 0x91, 0x4e,
+
  0xa6, 0x39, 0x74, 0x21, 0x68, 0xa1, 0xa0, 0x30, 0x91, 0x54, 0x67, 0x62,
+
  0x36, 0x95, 0x16, 0x8a, 0xf6, 0xf4, 0xf9, 0x07, 0xdd, 0xf4, 0x66, 0x0f,
+
  0x4d, 0xfa, 0x73, 0x22, 0xb2, 0xbe, 0xc2, 0x5d, 0x31, 0x0d, 0xae, 0x24,
+
  0x41, 0xb4, 0x4c, 0x8e, 0x17, 0x25, 0xb1, 0x61, 0xf9, 0x96, 0xef, 0x31,
+
  0x45, 0x67, 0x15, 0x49, 0xee, 0xd5, 0xe1, 0xeb, 0xb7, 0x87, 0x2f, 0xfb,
+
  0x6a, 0xa7, 0x54, 0x9a, 0xfd, 0x3c, 0x35, 0x34, 0xa8, 0xc9, 0xa8, 0x0c,
+
  0x92, 0x7c, 0xa4, 0xd2, 0x7f, 0x3a, 0x42, 0x0e, 0xda, 0xb9, 0x37, 0x5d,
+
  0xfc, 0x63, 0xcb, 0x1c, 0x71, 0xcd, 0x87, 0xfb, 0xcb, 0x1c, 0x35, 0x40,
+
  0xbd, 0xd5, 0x5c, 0xdb, 0x93, 0xcc, 0x5b, 0x71, 0x28, 0xe0, 0x27, 0x2c,
+
  0xdf, 0x06, 0x8f, 0x42, 0xf8, 0xcc, 0x1b, 0x73, 0xf3, 0x69, 0x3a, 0xa7,
+
  0x3d, 0xd9, 0x4a, 0xce, 0x10, 0x39, 0x1e, 0x47, 0x4b, 0x89, 0xe2, 0x78,
+
  0x69, 0x07, 0x1a, 0x0b, 0x55, 0xeb, 0x44, 0xb6, 0x20, 0x6b, 0x64, 0x14,
+
  0x24, 0x16, 0xe4, 0x67, 0xee, 0x86, 0x3f, 0x34, 0x1b, 0x0c, 0x69, 0x62,
+
  0x9a, 0x80, 0x17, 0xaa, 0x50, 0xc4, 0x25, 0x82, 0xdd, 0x20, 0xef, 0x0c,
+
  0x78, 0xfd, 0xf8, 0x52, 0xef, 0x2d, 0xfb, 0xac, 0x1d, 0xb1, 0x6e, 0x03,
+
  0x53, 0xfb, 0xd9, 0xf6, 0x7d, 0xc3, 0x29, 0x3c, 0xb8, 0xf8, 0x1d, 0xdc,
+
  0xf4, 0x8d, 0x8f, 0x81, 0xc2, 0x78, 0xd2, 0x84, 0xb0, 0x93, 0x4a, 0x87,
+
  0x6e, 0x9e, 0xb2, 0x65, 0x6c, 0x68, 0xe7, 0x3f, 0x56, 0xd9, 0xd9, 0x93,
+
  0x73, 0xd3, 0xbe, 0xf5, 0x75, 0xad, 0x33, 0x64, 0xa5, 0x15, 0x74, 0x11,
+
  0xb8, 0x25, 0xb3, 0xb3, 0x07, 0x95, 0x78, 0x94, 0xc4, 0x85, 0x51, 0x15,
+
  0xdf, 0x01, 0xc4, 0x48, 0x5c, 0x5b, 0x02, 0x72, 0x78, 0x29, 0x2a, 0x48,
+
  0xf2, 0xbd, 0xf0, 0xbb, 0xa7, 0x0a, 0x63, 0xa1, 0xdc, 0xa8, 0xab, 0x91,
+
  0xcf, 0x89, 0xe8, 0x1c, 0x1d, 0x83, 0xb2, 0x53, 0xab, 0x2c, 0x0f, 0x84,
+
  0x72, 0x38, 0xd1, 0xe3, 0x11, 0x15, 0x7e, 0x99, 0x66, 0xe9, 0x8c, 0xf7,
+
  0xfd, 0xad, 0xc5, 0x4d, 0x93, 0x45, 0x12, 0xcd, 0xc9, 0x62, 0x1d, 0xf6,
+
  0xb3, 0x24, 0x8d, 0x4a, 0xc2, 0x99, 0x18, 0x64, 0xf3, 0x56, 0x91, 0xe0,
+
  0xd1, 0x00, 0x99, 0x93, 0x1b, 0xc8, 0x45, 0x97, 0xf3, 0x48, 0x78, 0x04,
+
  0x2c, 0xff, 0x0f, 0x87, 0x54, 0xf1, 0x95, 0x8e, 0x1e, 0x7c, 0x7b, 0x79,
+
  0x29, 0xf0, 0xe1, 0xc9, 0xf7, 0xaa, 0x7b, 0x24, 0x4f, 0x93, 0x71, 0x96,
+
  0xd6, 0x14, 0x10, 0x51, 0x8c, 0xb5, 0xeb, 0x7e, 0x63, 0x9f, 0x3c, 0xa3,
+
  0x69, 0xd0, 0xa3, 0x2b, 0x10, 0xf5, 0x51, 0x9c, 0x46, 0x9b, 0x56, 0x1b,
+
  0x48, 0x9d, 0xae, 0x09, 0xcc, 0x1e, 0x13, 0x53, 0x3d, 0xef, 0xe1, 0xcd,
+
  0x83, 0x71, 0x22, 0x51, 0x4d, 0x19, 0xce, 0x06, 0x16, 0x87, 0x37, 0x25,
+
  0xa8, 0x6a, 0x5c, 0x60, 0x5a, 0xbd, 0x67, 0x2b, 0x54, 0x47, 0x5f, 0x4c,
+
  0xb8, 0xf7, 0x74, 0x5c, 0xf3, 0x3d, 0xcf, 0xa8, 0x8d, 0xe1, 0xbe, 0x30,
+
  0xb0, 0x71, 0x72, 0x64, 0x11, 0x00, 0x8f, 0x1e, 0x4e, 0xc1, 0x3a, 0x6d,
+
  0x18, 0x3e, 0x8b, 0xf1, 0x78, 0x09, 0x9e, 0xe8, 0xf0, 0xe8, 0x28, 0xa0,
+
  0x1c, 0x73, 0x42, 0x95, 0x1f, 0xfc, 0xe7, 0xcb, 0xc4, 0x6c, 0xae, 0xb5,
+
  0xeb, 0xa4, 0x33, 0x2d, 0xfb, 0x65, 0x31, 0x28, 0xea, 0xce, 0xba, 0xf5,
+
  0xaa, 0xcb, 0x78, 0xa5, 0x83, 0x50, 0xd7, 0xab, 0x0b, 0xc6, 0x8e, 0x7f,
+
  0x2a, 0x73, 0x8a, 0x16, 0x1e, 0x0d, 0x3f, 0x3e, 0x38, 0x0e, 0x56, 0x22,
+
  0x80, 0xcf, 0xbf, 0x3d, 0x3f, 0x7e, 0xc3, 0x0b, 0x7b, 0x76, 0x78, 0x7e,
+
  0xee, 0x60, 0xb5, 0x25, 0x18, 0x48, 0xa7, 0xc9, 0x61, 0x50, 0xe2, 0x5c,
+
  0xe2, 0x65, 0xb3, 0xe0, 0x63, 0x49, 0x63, 0x22, 0x36, 0x8b, 0x27, 0xe6,
+
  0x62, 0x31, 0x85, 0xeb, 0x18, 0x34, 0xc1, 0x11, 0x06, 0xd2, 0xac, 0xf0,
+
  0x78, 0x0a, 0x05, 0x10, 0x6c, 0xc6, 0x73, 0x84, 0x10, 0x51, 0xb7, 0x84,
+
  0x38, 0x81, 0x1d, 0x60, 0x86, 0x26, 0x16, 0x27, 0x9d, 0xf3, 0x93, 0x8b,
+
  0x63, 0xd9, 0xc1, 0xb7, 0x17, 0x2f, 0x3a, 0x0a, 0x8f, 0xd3, 0x28, 0xe5,
+
  0x55, 0x90, 0xb0, 0x05, 0x14, 0x9d, 0x59, 0x84, 0xa3, 0xc1, 0xe7, 0x8b,
+
  0x07, 0xa0, 0x15, 0x98, 0xc3, 0x12, 0x77, 0x56, 0x2d, 0x6f, 0x7c, 0x15,
+
  0xb4, 0x15, 0x80, 0xfa, 0xf4, 0x88, 0xe2, 0x55, 0x7d, 0x76, 0xde, 0x3e,
+
  0xda, 0x2f, 0x5b, 0x48, 0xa4, 0xe5, 0x2c, 0x3a, 0xe2, 0xe2, 0xeb, 0x77,
+
  0x89, 0x66, 0x5c, 0x4e, 0xb6, 0x2f, 0x10, 0x1f, 0x9d, 0x4f, 0xfc, 0x04,
+
  0xdd, 0x8c, 0xf8, 0xef, 0xdb, 0x37, 0x2f, 0xb7, 0x2d, 0x0d, 0x8b, 0x21,
+
  0xce, 0x53, 0xc9, 0xc2, 0x16, 0x09, 0x5a, 0x79, 0x0e, 0x85, 0xae, 0x9a,
+
  0x03, 0x3c, 0xfb, 0x20, 0xe9, 0x9d, 0x51, 0xc2, 0x82, 0x30, 0x46, 0xc1,
+
  0x79, 0x50, 0xb0, 0x60, 0xe2, 0x74, 0x21, 0xca, 0x24, 0x0f, 0xe1, 0x59,
+
  0x56, 0xe8, 0x26, 0x82, 0x5e, 0x96, 0x70, 0x42, 0xbd, 0xce, 0x23, 0x20,
+
  0x67, 0x9e, 0x9f, 0x30, 0x78, 0x49, 0x2b, 0xd7, 0xac, 0xf2, 0x9c, 0xe2,
+
  0xe5, 0x63, 0x4f, 0x79, 0xbc, 0x24, 0x4b, 0xde, 0x72, 0xcd, 0x33, 0xfc,
+
  0x38, 0xd0, 0xfc, 0x46, 0xab, 0xf7, 0x6f, 0xbb, 0x1f, 0xc2, 0xea, 0x12,
+
  0xf6, 0x65, 0x36, 0x05, 0x79, 0x97, 0x6c, 0x92, 0xdb, 0x64, 0xba, 0x58,
+
  0x8e, 0x28, 0x8f, 0x3a, 0x0d, 0xbb, 0x2e, 0x51, 0xba, 0x4f, 0xf9, 0xdf,
+
  0x88, 0x37, 0x1c, 0x31, 0x9a, 0x8c, 0x18, 0xe5, 0xe5, 0x41, 0x1a, 0x9a,
+
  0x96, 0xd9, 0x92, 0x24, 0xd9, 0x92, 0x22, 0x2d, 0xd5, 0x82, 0x4d, 0x49,
+
  0x09, 0xe2, 0x42, 0x87, 0x76, 0x36, 0xcf, 0xb7, 0xcc, 0x19, 0x81, 0x96,
+
  0x0f, 0x69, 0x47, 0xf5, 0x69, 0x0f, 0x37, 0xe9, 0x4a, 0x4c, 0x05, 0x95,
+
  0x5a, 0x23, 0xd4, 0x8d, 0xfa, 0xcd, 0x3c, 0x41, 0x1b, 0x32, 0xbc, 0x19,
+
  0x49, 0xee, 0xb6, 0x39, 0x2d, 0x8f, 0x7e, 0x7a, 0x16, 0xf2, 0x03, 0xe9,
+
  0x02, 0xa1, 0xf1, 0x11, 0x69, 0x9a, 0x82, 0x1d, 0x2a, 0x19, 0x31, 0xe4,
+
  0xcb, 0x83, 0xe7, 0x54, 0x62, 0x21, 0x9b, 0x27, 0x57, 0x39, 0xbc, 0x5a,
+
  0x0e, 0xaf, 0x18, 0xea, 0x0e, 0xa3, 0x6a, 0x41, 0x1a, 0xc0, 0xbc, 0xbe,
+
  0xd9, 0xad, 0x71, 0xc0, 0xbe, 0x45, 0x2b, 0x61, 0x66, 0x3a, 0xba, 0xe2,
+
  0xa1, 0x85, 0xdd, 0xaf, 0xf7, 0x9f, 0x24, 0x55, 0x7a, 0x5b, 0xb1, 0x75,
+
  0xd5, 0x55, 0x79, 0xa4, 0x9a, 0x88, 0x22, 0x6d, 0xab, 0xb1, 0xc4, 0xa0,
+
  0x48, 0x06, 0x0b, 0xab, 0x3a, 0x55, 0xa1, 0xf9, 0x82, 0x0c, 0xbf, 0x82,
+
  0x95, 0x6d, 0xb5, 0x67, 0xc2, 0x34, 0x81, 0xda, 0x70, 0x82, 0x0c, 0x1f,
+
  0xd7, 0x77, 0x11, 0xe2, 0xe7, 0x27, 0xff, 0x7d, 0xdc, 0x4d, 0xde, 0x1c,
+
  0x5f, 0xbc, 0xe9, 0x26, 0xe7, 0x17, 0xa7, 0x6f, 0xd0, 0x0b, 0xcf, 0xe2,
+
  0x11, 0xce, 0xb3, 0x92, 0x2e, 0xc8, 0x6f, 0x48, 0x4b, 0x11, 0x87, 0x35,
+
  0x86, 0x10, 0x40, 0xf5, 0xc5, 0x55, 0x59, 0x73, 0xba, 0x6c, 0x86, 0x22,
+
  0x83, 0x07, 0x30, 0xb1, 0xb6, 0x81, 0xf2, 0x0e, 0x84, 0xc1, 0xe2, 0x8e,
+
  0xe2, 0x68, 0x83, 0xcb, 0x9d, 0xfa, 0xaf, 0x61, 0xf7, 0x81, 0x03, 0x06,
+
  0x4c, 0x07, 0xcb, 0x53, 0xd3, 0xf0, 0x5d, 0x2a, 0x72, 0xf1, 0x20, 0xb8,
+
  0xfd, 0x3a, 0x8a, 0xd1, 0x0e, 0x7c, 0x7d, 0x93, 0x2b, 0x04, 0xeb, 0x2e,
+
  0x2a, 0x19, 0x24, 0x14, 0x3c, 0xb7, 0x65, 0x11, 0xa5, 0x34, 0xd8, 0xaa,
+
  0x98, 0x66, 0x44, 0xbf, 0x64, 0x5a, 0x55, 0xfe, 0x42, 0x11, 0xfd, 0x5c,
+
  0x45, 0x8e, 0x15, 0xfb, 0x0e, 0xad, 0x70, 0x27, 0x0a, 0x11, 0x8b, 0x16,
+
  0x2c, 0x9b, 0x01, 0x05, 0x52, 0x85, 0xeb, 0x8e, 0xf6, 0xd7, 0x89, 0x72,
+
  0xae, 0xdd, 0x59, 0xfa, 0x9c, 0x25, 0x72, 0xaa, 0x16, 0x96, 0x20, 0xdd,
+
  0xd8, 0xbc, 0x97, 0xd9, 0x01, 0x2c, 0xec, 0x2e, 0xfe, 0xd8, 0xdb, 0x0e,
+
  0x76, 0xcc, 0x96, 0x16, 0x68, 0xd2, 0x9f, 0xfe, 0xba, 0x6d, 0xf6, 0xfd,
+
  0x4d, 0x2c, 0xb1, 0x23, 0x4c, 0xc8, 0xed, 0x11, 0x2e, 0x9b, 0x67, 0x46,
+
  0x58, 0xd9, 0xc0, 0x73, 0x20, 0x92, 0xbe, 0xa3, 0xc2, 0x09, 0x96, 0x45,
+
  0xca, 0x82, 0x5c, 0xc8, 0x92, 0x46, 0xf6, 0x2d, 0x0f, 0x36, 0x9c, 0xc2,
+
  0xc4, 0x38, 0x26, 0x76, 0xde, 0x94, 0x64, 0x05, 0x72, 0x61, 0xb1, 0x74,
+
  0x8b, 0xc4, 0x32, 0xb4, 0xc5, 0x1a, 0xa0, 0x30, 0x42, 0x38, 0x00, 0x29,
+
  0x25, 0x7d, 0xe4, 0x05, 0x61, 0x12, 0x86, 0x8a, 0x0d, 0x73, 0x6f, 0x59,
+
  0x7c, 0x93, 0x51, 0xe2, 0x12, 0xe9, 0xba, 0x49, 0x36, 0xa3, 0x38, 0x98,
+
  0x51, 0x98, 0x0a, 0x96, 0x69, 0x9a, 0x70, 0x60, 0x18, 0xde, 0x8d, 0xa3,
+
  0x82, 0xc3, 0x05, 0x71, 0x3c, 0x84, 0x76, 0x8f, 0xbe, 0x1c, 0x07, 0x71,
+
  0xa4, 0xf7, 0x99, 0x34, 0x24, 0x46, 0x72, 0x4e, 0x64, 0x75, 0x43, 0xa0,
+
  0xbb, 0x46, 0x47, 0x70, 0xe6, 0x57, 0x8d, 0x39, 0x58, 0x6d, 0x25, 0xb1,
+
  0x50, 0xfc, 0xa9, 0x42, 0xd5, 0x04, 0x55, 0x07, 0xb4, 0xec, 0x89, 0x1c,
+
  0x46, 0x69, 0x08, 0xcb, 0x1d, 0x24, 0x8b, 0xd9, 0x04, 0xe3, 0xd9, 0x1b,
+
  0xd0, 0xf6, 0x2a, 0xbc, 0xc4, 0x11, 0xc2, 0xb2, 0x91, 0x9f, 0xa7, 0xca,
+
  0x8c, 0x15, 0xbc, 0xb8, 0xf7, 0xa6, 0xa4, 0x3e, 0x3f, 0xb6, 0xfa, 0x84,
+
  0x92, 0xdf, 0x59, 0xd7, 0xaf, 0x64, 0x13, 0xa2, 0x99, 0x88, 0x51, 0x36,
+
  0x95, 0xd2, 0x4e, 0x38, 0x6c, 0xcb, 0x58, 0xb8, 0x00, 0xa2, 0x01, 0x2b,
+
  0xdb, 0x46, 0xc2, 0xc6, 0x92, 0xf1, 0x28, 0x66, 0x16, 0x54, 0x68, 0xca,
+
  0xa5, 0xa1, 0x38, 0x69, 0x98, 0x66, 0x08, 0xed, 0xc6, 0x81, 0xb5, 0x3e,
+
  0xaa, 0x15, 0x2f, 0x57, 0xa9, 0x84, 0x30, 0xe5, 0x5c, 0x24, 0x17, 0x6e,
+
  0x4b, 0xa9, 0x13, 0x2a, 0x8e, 0xc7, 0x15, 0xbc, 0xa4, 0x13, 0xb2, 0x74,
+
  0xa8, 0x87, 0x8c, 0xe5, 0x66, 0x94, 0xb8, 0x1b, 0x40, 0x4a, 0x0a, 0xd7,
+
  0xcb, 0xe9, 0xed, 0x65, 0xad, 0x51, 0x49, 0xf1, 0xa9, 0x23, 0x4d, 0xac,
+
  0xd1, 0x0d, 0xf0, 0xaf, 0xc5, 0x3c, 0xdc, 0xf4, 0x0e, 0xad, 0x5a, 0xdb,
+
  0xd2, 0x08, 0x02, 0x3f, 0xa8, 0xba, 0xe8, 0x87, 0xd5, 0xf5, 0x57, 0x64,
+
  0x61, 0x89, 0x55, 0x63, 0xbd, 0xdf, 0x0d, 0xea, 0x16, 0x2f, 0x13, 0x46,
+
  0x69, 0x45, 0x4c, 0x77, 0xec, 0x5b, 0x80, 0x19, 0x24, 0x3a, 0xc4, 0x1e,
+
  0x84, 0x09, 0xba, 0x71, 0xc4, 0x35, 0x26, 0x1e, 0xe0, 0x7a, 0x6e, 0xbe,
+
  0x9d, 0xe5, 0x1f, 0xc8, 0xec, 0xaa, 0x00, 0x28, 0xe1, 0x79, 0xeb, 0x45,
+
  0x91, 0x81, 0x11, 0x57, 0xdc, 0xf7, 0x46, 0x19, 0x1c, 0x58, 0x3a, 0x3a,
+
  0x7e, 0xc9, 0x23, 0x17, 0x5a, 0x1b, 0xd3, 0xdb, 0x3e, 0x7e, 0xd6, 0x1f,
+
  0x15, 0x53, 0xb2, 0xa1, 0xc7, 0xad, 0x4c, 0x29, 0xff, 0x57, 0xd9, 0x62,
+
  0xef, 0x2b, 0x29, 0xd4, 0xc8, 0xfb, 0x3e, 0xcf, 0x61, 0xdf, 0x42, 0x10,
+
  0xf3, 0xc9, 0x59, 0xd8, 0x25, 0xf1, 0x44, 0x57, 0x5a, 0x80, 0x30, 0x60,
+
  0x5f, 0xca, 0x65, 0xa9, 0x08, 0x80, 0x49, 0xcc, 0x19, 0x63, 0xc9, 0x83,
+
  0x40, 0xfa, 0xd0, 0xa1, 0xc7, 0x8a, 0xca, 0xf0, 0xaa, 0xc8, 0x87, 0x19,
+
  0x8a, 0x40, 0x6d, 0xa5, 0x55, 0xa8, 0xe6, 0x8f, 0x95, 0x39, 0xb7, 0xea,
+
  0x33, 0xfe, 0x51, 0x15, 0xb3, 0xb9, 0x54, 0x22, 0xbf, 0x29, 0x27, 0xe4,
+
  0xd8, 0x97, 0x63, 0x5a, 0x32, 0xb4, 0x51, 0xdb, 0xec, 0x38, 0xd7, 0xc8,
+
  0x8e, 0x07, 0x8d, 0xb2, 0x3f, 0x56, 0xa7, 0x47, 0x58, 0x26, 0xbe, 0xf2,
+
  0xfb, 0xdf, 0x23, 0x33, 0x78, 0xd0, 0x88, 0x24, 0x91, 0xea, 0xc6, 0x49,
+
  0xe7, 0xe0, 0x6f, 0xe4, 0x2e, 0xfa, 0xa5, 0xf7, 0x37, 0xf8, 0xfb, 0x97,
+
  0x4e, 0x30, 0x72, 0x4b, 0xed, 0x25, 0x43, 0x6d, 0x78, 0x20, 0xcb, 0xda,
+
  0xa5, 0x53, 0x02, 0xca, 0xa2, 0x0f, 0x42, 0xb9, 0x38, 0x3a, 0x63, 0x22,
+
  0x46, 0x80, 0x0e, 0x0e, 0x86, 0x84, 0x89, 0xe1, 0x69, 0x65, 0x61, 0x38,
+
  0x45, 0xb7, 0xf9, 0x03, 0x02, 0x8d, 0x94, 0x8d, 0x4d, 0xfd, 0xf3, 0xdd,
+
  0x10, 0x37, 0x73, 0x23, 0x7a, 0x67, 0x0a, 0x92, 0xe5, 0x25, 0xda, 0x8d,
+
  0x19, 0x66, 0x1b, 0xe3, 0xaf, 0x51, 0x40, 0x61, 0x99, 0x95, 0x3f, 0x63,
+
  0x30, 0x1d, 0xf4, 0xc4, 0xdd, 0xc0, 0x70, 0x38, 0x2e, 0x87, 0x1d, 0x11,
+
  0x59, 0x00, 0x39, 0xc9, 0x67, 0x43, 0x82, 0x1e, 0x52, 0x89, 0xae, 0xcc,
+
  0xab, 0xf7, 0x38, 0x29, 0x49, 0x97, 0x91, 0x28, 0x31, 0xc2, 0x2c, 0x29,
+
  0xc8, 0xf0, 0x7e, 0xcb, 0x48, 0x78, 0x59, 0x40, 0xa4, 0x58, 0x92, 0x5c,
+
  0x0c, 0x4c, 0x78, 0xa5, 0xe0, 0xe2, 0xf2, 0x9c, 0x3e, 0x49, 0x72, 0x39,
+
  0x4b, 0x7a, 0xcc, 0x9c, 0x57, 0x21, 0x4a, 0x9d, 0xf1, 0xe9, 0xbe, 0xe7,
+
  0x19, 0x8f, 0xda, 0xbd, 0xf4, 0x68, 0xab, 0xd6, 0x4b, 0xd7, 0x82, 0xe0,
+
  0x5d, 0xc6, 0x15, 0x8d, 0x9c, 0xdc, 0x51, 0x66, 0x51, 0xa1, 0x31, 0x0e,
+
  0x9a, 0x4a, 0x93, 0x33, 0x90, 0xa6, 0x1d, 0xf9, 0x4a, 0x6c, 0x1d, 0xde,
+
  0x88, 0x09, 0x23, 0x82, 0xe0, 0xf5, 0x89, 0x12, 0x27, 0x42, 0x5a, 0x53,
+
  0x82, 0x9f, 0xd5, 0x18, 0xb2, 0x02, 0x5c, 0x78, 0xfe, 0xf1, 0xae, 0x1f,
+
  0x95, 0xd0, 0x13, 0x86, 0x3d, 0x0a, 0x1e, 0x92, 0x9a, 0x4c, 0x28, 0xc7,
+
  0xd1, 0xf0, 0x0d, 0xad, 0x2f, 0xcb, 0x66, 0x08, 0x42, 0xf2, 0x84, 0xdd,
+
  0x86, 0x15, 0x17, 0xef, 0x46, 0x0a, 0xa1, 0x5f, 0x16, 0x73, 0x4d, 0xf1,
+
  0xb9, 0x99, 0xa1, 0x19, 0x58, 0x4c, 0x95, 0x3c, 0x4a, 0xba, 0x39, 0x96,
+
  0xeb, 0xb1, 0xe8, 0xa4, 0x5b, 0x33, 0x1a, 0x42, 0x00, 0x78, 0x33, 0x93,
+
  0xd1, 0x1c, 0xae, 0xad, 0xb7, 0x34, 0xb4, 0xb7, 0xc6, 0x2d, 0x8d, 0xbd,
+
  0xae, 0x73, 0x4b, 0x07, 0xb1, 0x26, 0x94, 0xc3, 0x49, 0xc3, 0x85, 0x4d,
+
  0x1f, 0x20, 0xe0, 0x31, 0x7d, 0xda, 0xd3, 0x30, 0x7d, 0xa9, 0x11, 0x25,
+
  0x30, 0x5a, 0x0a, 0x7b, 0xc1, 0x10, 0xa3, 0x8e, 0x8d, 0x3a, 0x8b, 0x90,
+
  0xa1, 0x7a, 0x6b, 0x4e, 0xbe, 0x21, 0x17, 0x73, 0x56, 0x28, 0x99, 0x0e,
+
  0xd0, 0xda, 0x5e, 0xe9, 0x9a, 0xda, 0x1e, 0xb9, 0xec, 0x7f, 0xe5, 0xb7,
+
  0x95, 0xab, 0x3c, 0x1f, 0xdf, 0xf9, 0xc8, 0x88, 0x4f, 0x94, 0xfd, 0x49,
+
  0xf6, 0x1f, 0x19, 0x4d, 0x02, 0xab, 0xf7, 0x97, 0x17, 0x43, 0x0b, 0x33,
+
  0x9b, 0xb7, 0x33, 0x56, 0x99, 0xf8, 0xab, 0x7c, 0xde, 0xb5, 0xde, 0x9e,
+
  0x06, 0xa2, 0x98, 0xe8, 0x03, 0xcb, 0x77, 0x54, 0x30, 0x25, 0x06, 0xc3,
+
  0x26, 0x2c, 0xa5, 0x96, 0x57, 0xe3, 0x62, 0x50, 0xf9, 0x58, 0x6a, 0xdc,
+
  0x71, 0x39, 0xb4, 0x92, 0xe5, 0x46, 0x43, 0x4f, 0x0d, 0xa1, 0xc4, 0x41,
+
  0x66, 0xec, 0x2f, 0x9b, 0x53, 0xfc, 0x76, 0xad, 0xac, 0x52, 0xf6, 0xd1,
+
  0xf9, 0x63, 0x8d, 0x86, 0xef, 0x27, 0xc1, 0x68, 0x18, 0x6b, 0x93, 0xe2,
+
  0x12, 0xed, 0x55, 0x93, 0xde, 0x70, 0x38, 0x6c, 0xaa, 0x2b, 0x47, 0x47,
+
  0x47, 0xc9, 0xe6, 0x11, 0xd5, 0xfa, 0x3c, 0x12, 0x3a, 0x39, 0xba, 0xc2,
+
  0xe0, 0xc4, 0x09, 0xb0, 0x95, 0xab, 0x05, 0x10, 0x08, 0x9e, 0x53, 0xda,
+
  0xc3, 0xf3, 0xf3, 0x97, 0xdb, 0x94, 0xda, 0x32, 0x49, 0x6f, 0x15, 0xd7,
+
  0x48, 0x4c, 0xdb, 0x0d, 0x9b, 0x6c, 0x5f, 0xa2, 0x87, 0x88, 0x2c, 0x6b,
+
  0x75, 0x53, 0xf1, 0x15, 0x6b, 0x37, 0x3e, 0x45, 0x17, 0x42, 0x3f, 0x56,
+
  0xcf, 0x76, 0xba, 0x98, 0xb9, 0x84, 0x67, 0x54, 0x68, 0x66, 0x99, 0x02,
+
  0xe7, 0x89, 0xd8, 0x29, 0x89, 0x5c, 0xaf, 0x0f, 0x2f, 0x30, 0xe3, 0xa5,
+
  0xb6, 0xfc, 0x47, 0x32, 0xbe, 0x84, 0xd8, 0x0d, 0x57, 0x2f, 0x31, 0x0d,
+
  0x32, 0x45, 0xe6, 0x24, 0x60, 0x56, 0xce, 0x18, 0xdf, 0x86, 0x04, 0xc7,
+
  0xd6, 0x6c, 0xaa, 0xb0, 0x6c, 0x2b, 0x72, 0x07, 0x57, 0xaa, 0x05, 0xbc,
+
  0xed, 0x51, 0x29, 0x3c, 0xdd, 0x7b, 0x6e, 0x70, 0x8d, 0x6d, 0x97, 0x9e,
+
  0xc7, 0x2b, 0x63, 0x53, 0xdd, 0x96, 0xc3, 0xc3, 0x8e, 0xf1, 0xc8, 0xab,
+
  0x3d, 0xe6, 0xa6, 0xcb, 0x44, 0x40, 0x5f, 0x80, 0x5c, 0x4b, 0xd2, 0xfa,
+
  0xb6, 0xac, 0xc0, 0x77, 0xf1, 0x8d, 0x52, 0x0b, 0xdf, 0x41, 0x02, 0x61,
+
  0x79, 0x9e, 0xab, 0x9e, 0x47, 0xda, 0x6d, 0xc8, 0x55, 0x65, 0x85, 0xc2,
+
  0x07, 0x72, 0x57, 0x40, 0x3d, 0x48, 0x3b, 0x2c, 0x16, 0xe8, 0x91, 0x63,
+
  0x90, 0x10, 0xd3, 0x8a, 0x5d, 0x21, 0xdf, 0x02, 0xd6, 0xad, 0xb5, 0x50,
+
  0x64, 0x99, 0x61, 0x1e, 0xac, 0xc6, 0x09, 0x4b, 0xab, 0x0e, 0x7e, 0xc9,
+
  0xb0, 0x9a, 0x71, 0x80, 0x4e, 0x03, 0x31, 0x35, 0x47, 0x8d, 0x9f, 0xf1,
+
  0xfb, 0x04, 0x37, 0x41, 0xa3, 0x11, 0xe4, 0x14, 0xe9, 0x28, 0x34, 0x1c,
+
  0x5a, 0xbe, 0x8b, 0x34, 0x78, 0x31, 0xd7, 0xca, 0xb0, 0xbf, 0x3f, 0xd1,
+
  0x6e, 0x79, 0xf3, 0xd6, 0xa3, 0x12, 0x1e, 0x84, 0x4c, 0xfe, 0x13, 0xe8,
+
  0x27, 0xa6, 0xcc, 0xc6, 0x1c, 0xf9, 0xc4, 0x7a, 0xf2, 0x78, 0xa3, 0x32,
+
  0x81, 0xf1, 0x04, 0x73, 0x8a, 0xd2, 0xd1, 0x9b, 0x14, 0x97, 0x39, 0x99,
+
  0xb7, 0xb9, 0x88, 0x70, 0x14, 0xf0, 0x22, 0xd7, 0xfb, 0x21, 0x1f, 0x65,
+
  0x05, 0xf8, 0x8e, 0x00, 0x0f, 0x98, 0x64, 0x50, 0xd2, 0x30, 0x06, 0xc0,
+
  0xf6, 0x13, 0x07, 0xf5, 0x61, 0x02, 0x07, 0x2c, 0x6e, 0x3e, 0x04, 0x75,
+
  0x71, 0x78, 0xdb, 0xa7, 0xe4, 0x7e, 0xbd, 0xd2, 0x2c, 0x00, 0x25, 0x1f,
+
  0xc7, 0x4e, 0x15, 0x57, 0x4f, 0x4c, 0x22, 0xd1, 0x64, 0x39, 0x78, 0x2e,
+
  0xcb, 0xd6, 0x01, 0xb7, 0x08, 0x9f, 0xab, 0x00, 0x5c, 0xa3, 0xd9, 0x35,
+
  0xf7, 0x59, 0xc6, 0xb0, 0x86, 0xff, 0xc4, 0x55, 0x95, 0xfe, 0x11, 0x4d,
+
  0x05, 0x96, 0xed, 0x23, 0xc9, 0xc1, 0xec, 0xed, 0xb2, 0xc4, 0x96, 0x96,
+
  0x6a, 0x09, 0x54, 0x96, 0x95, 0x23, 0x70, 0x42, 0xde, 0x75, 0x04, 0x08,
+
  0xa1, 0xa1, 0x12, 0x54, 0xfc, 0x5c, 0x82, 0x92, 0x08, 0x15, 0xa7, 0x59,
+
  0x57, 0xbd, 0x2e, 0x9c, 0x7d, 0x8a, 0xe3, 0xc7, 0x28, 0xe1, 0x42, 0xea,
+
  0x7a, 0x80, 0xcc, 0xaa, 0x98, 0x6b, 0xa6, 0x6f, 0xa9, 0x59, 0x9d, 0x92,
+
  0xd0, 0xf4, 0x5b, 0x09, 0x42, 0x42, 0xc7, 0xf5, 0x4d, 0x8e, 0x70, 0x3f,
+
  0x6c, 0xd5, 0x0f, 0xb8, 0x3a, 0x78, 0x4f, 0xd0, 0x9a, 0x39, 0x3c, 0xdb,
+
  0xa0, 0x22, 0x30, 0x05, 0x15, 0x56, 0x20, 0x90, 0xd2, 0x62, 0xa0, 0xe5,
+
  0x52, 0x21, 0xd6, 0x9d, 0x9a, 0x61, 0x63, 0x6d, 0xa9, 0x73, 0xcd, 0xe1,
+
  0x24, 0xa2, 0x62, 0x70, 0x96, 0x9c, 0xc4, 0x29, 0x87, 0xf4, 0x18, 0x39,
+
  0xde, 0xae, 0xec, 0x90, 0xf6, 0xaa, 0xb1, 0xa1, 0x2f, 0x8e, 0x0f, 0x9f,
+
  0x05, 0x38, 0x25, 0x4f, 0x72, 0x68, 0x6a, 0xfe, 0x2c, 0xb6, 0xa8, 0xcb,
+
  0x25, 0x01, 0xb7, 0x69, 0x9e, 0xc5, 0xae, 0xee, 0x85, 0xce, 0xc5, 0x87,
+
  0x7a, 0xa3, 0xa4, 0x53, 0x17, 0xc5, 0x44, 0x03, 0x78, 0xe0, 0xcf, 0xf4,
+
  0x32, 0xfb, 0xb6, 0x98, 0x8c, 0x3a, 0x6b, 0x36, 0x70, 0xd2, 0x6c, 0x63,
+
  0x2d, 0x9f, 0xbc, 0x81, 0xd1, 0x20, 0x18, 0x3c, 0xaf, 0x95, 0x90, 0xf5,
+
  0x25, 0x91, 0xf5, 0xa4, 0x18, 0x14, 0x63, 0x91, 0xe2, 0xce, 0xb9, 0x22,
+
  0x27, 0xfa, 0xc8, 0x15, 0xf5, 0x98, 0x30, 0x05, 0x06, 0x24, 0xd2, 0x69,
+
  0x8e, 0xab, 0x04, 0x1e, 0x93, 0xdd, 0xb2, 0xa2, 0x1c, 0x12, 0x07, 0x3c,
+
  0xc1, 0x0d, 0xdd, 0x36, 0x30, 0xff, 0x1d, 0x46, 0x84, 0x05, 0xd1, 0xa2,
+
  0x76, 0x49, 0x35, 0x88, 0xab, 0xe4, 0x9f, 0xff, 0xfa, 0xdb, 0x2f, 0xc1,
+
  0x0a, 0x7f, 0x45, 0x29, 0xb9, 0x2e, 0x91, 0x12, 0x6e, 0x98, 0x6c, 0x32,
+
  0x66, 0xa3, 0x0f, 0x69, 0x13, 0x08, 0xb2, 0xdc, 0x77, 0xa1, 0xfa, 0xec,
+
  0xbb, 0xd0, 0xd6, 0x30, 0xc2, 0x8f, 0x78, 0x13, 0x7b, 0x10, 0x24, 0xf0,
+
  0x39, 0xbb, 0x04, 0xd5, 0x56, 0xab, 0x62, 0x52, 0x68, 0x33, 0x72, 0x48,
+
  0x78, 0xf3, 0xd6, 0x19, 0xa5, 0x34, 0xc0, 0x30, 0x4a, 0xbb, 0x14, 0xc2,
+
  0x3b, 0x91, 0x4b, 0x59, 0x34, 0xb7, 0x06, 0xc5, 0xf1, 0x32, 0xae, 0xd2,
+
  0xae, 0xe2, 0x74, 0xf1, 0x7b, 0x93, 0x6b, 0xa5, 0xb5, 0x3b, 0x79, 0x1a,
+
  0x62, 0x74, 0xb7, 0x24, 0xdd, 0xfc, 0xf3, 0x6f, 0xbf, 0xfc, 0x0b, 0xfe,
+
  0xd3, 0x59, 0x55, 0x72, 0x3b, 0x56, 0x8c, 0xed, 0xa6, 0xba, 0x82, 0x83,
+
  0x76, 0xdb, 0xcb, 0x6e, 0xb3, 0x01, 0x70, 0xad, 0x4a, 0x51, 0xa8, 0x7a,
+
  0xd3, 0x2a, 0x79, 0x3a, 0x55, 0xa3, 0xe8, 0x0b, 0x7c, 0x26, 0x39, 0x96,
+
  0x67, 0xb4, 0xb6, 0x6c, 0x3a, 0xb9, 0x2c, 0x4a, 0x18, 0xf9, 0x54, 0x9c,
+
  0xc0, 0xb1, 0x07, 0xd6, 0x8c, 0x80, 0x09, 0xe5, 0x0c, 0xaa, 0x05, 0xee,
+
  0xfa, 0xa1, 0xa4, 0xac, 0xfa, 0x22, 0x73, 0x99, 0xca, 0x11, 0xa3, 0x45,
+
  0x3a, 0x41, 0x0d, 0x19, 0xad, 0x62, 0x68, 0x53, 0x43, 0x63, 0xc4, 0x65,
+
  0xce, 0xe9, 0xfb, 0xf2, 0x46, 0x08, 0x42, 0x97, 0xd4, 0x62, 0x65, 0x77,
+
  0x81, 0xd3, 0x8a, 0x81, 0x85, 0x02, 0xc6, 0xf2, 0x09, 0xa8, 0xd2, 0x8c,
+
  0x00, 0xd7, 0xb7, 0x1a, 0xb9, 0xd4, 0x56, 0x6c, 0x14, 0x05, 0x9a, 0x15,
+
  0xcb, 0x89, 0x8c, 0x9c, 0x39, 0x8f, 0x25, 0x6c, 0x20, 0xad, 0xc1, 0xd2,
+
  0x74, 0xd9, 0x1c, 0x9b, 0x7a, 0x5d, 0x2f, 0x02, 0xa6, 0x21, 0x4e, 0x36,
+
  0x4d, 0x47, 0x59, 0xe2, 0xeb, 0xa5, 0xb9, 0xf2, 0x89, 0x12, 0x5c, 0x94,
+
  0x62, 0x80, 0x53, 0x36, 0x51, 0xe1, 0xda, 0x41, 0xb1, 0x38, 0x94, 0x67,
+
  0x4e, 0x9a, 0x85, 0x83, 0x8b, 0x65, 0x77, 0x29, 0x87, 0x5d, 0xf0, 0xa9,
+
  0x8b, 0x59, 0x16, 0x41, 0x1d, 0x7b, 0xc0, 0x36, 0xb6, 0x61, 0xa1, 0xd6,
+
  0x20, 0xea, 0x2e, 0x15, 0xcc, 0xa6, 0x1a, 0xaf, 0x8a, 0x94, 0x8d, 0x1b,
+
  0x48, 0xa1, 0x9e, 0x14, 0x1f, 0x4f, 0x9b, 0x6b, 0xbb, 0x2b, 0x4e, 0x8d,
+
  0xe7, 0x47, 0xc9, 0xe3, 0x47, 0x8f, 0x1e, 0xb1, 0x8f, 0xb3, 0x73, 0x42,
+
  0x3d, 0xbd, 0x39, 0x3e, 0x3a, 0x7d, 0xf5, 0xea, 0xf8, 0xf5, 0xb3, 0xe3,
+
  0x67, 0x86, 0xf8, 0xa0, 0x43, 0xb5, 0xcd, 0x27, 0x54, 0xb8, 0x74, 0xa8,
+
  0x46, 0xe7, 0xdd, 0x47, 0x3b, 0xbd, 0xbd, 0x47, 0x3b, 0x09, 0xd0, 0x53,
+
  0xca, 0xc9, 0xc7, 0x38, 0xa9, 0x74, 0x82, 0x38, 0x0d, 0xc9, 0xd5, 0x62,
+
  0x9a, 0x12, 0x96, 0x35, 0x1a, 0x3d, 0x2a, 0xc3, 0xa6, 0x9c, 0x65, 0x35,
+
  0x15, 0x38, 0x4f, 0x28, 0x4f, 0xaf, 0xa3, 0xf9, 0x0b, 0x5c, 0x47, 0x2d,
+
  0x04, 0x17, 0x88, 0x42, 0x42, 0xf4, 0xb6, 0xb7, 0x83, 0x5d, 0x80, 0x10,
+
  0x93, 0x23, 0x7e, 0xca, 0x87, 0x84, 0x75, 0xb1, 0x12, 0xcb, 0xbf, 0x84,
+
  0x37, 0xa2, 0x3a, 0x7a, 0xb4, 0x3d, 0xfb, 0x08, 0x68, 0x36, 0xad, 0x2c,
+
  0xe0, 0x63, 0xf5, 0x61, 0xf8, 0x72, 0xe0, 0xad, 0xab, 0xfb, 0x7c, 0xb4,
+
  0xb3, 0xb3, 0x1e, 0xa7, 0x9f, 0xa6, 0x1f, 0xe8, 0x3d, 0x45, 0x73, 0x6d,
+
  0x47, 0x94, 0xc3, 0x9e, 0xb8, 0x92, 0x03, 0x79, 0x08, 0x40, 0x21, 0x7e,
+
  0x9a, 0xcf, 0x1b, 0x70, 0x97, 0xa8, 0xba, 0x58, 0xe8, 0xcd, 0xc9, 0x19,
+
  0xd2, 0xea, 0x8b, 0xc3, 0x33, 0x7c, 0x2b, 0x39, 0x7b, 0x73, 0xfa, 0x97,
+
  0xbf, 0x86, 0x9c, 0xfa, 0xeb, 0x5d, 0x4b, 0xa0, 0x60, 0x3e, 0xac, 0x45,
+
  0x04, 0x40, 0x7a, 0x9d, 0x49, 0xa2, 0xb8, 0x58, 0x2f, 0x1a, 0x56, 0x0b,
+
  0xf4, 0xbe, 0x53, 0x51, 0xb6, 0x50, 0xd5, 0x32, 0x3e, 0x22, 0x88, 0xac,
+
  0x2b, 0x39, 0x51, 0x06, 0x70, 0x36, 0x92, 0x4c, 0x5c, 0x90, 0x43, 0xf3,
+
  0x2c, 0xd4, 0x9c, 0x21, 0x1b, 0x3d, 0xd0, 0xc2, 0x43, 0xba, 0x23, 0x2e,
+
  0xb9, 0xbe, 0xe0, 0x4c, 0xc1, 0x96, 0x31, 0xff, 0xee, 0x6f, 0x3b, 0xfd,
+
  0xfe, 0xde, 0xa3, 0x47, 0xbf, 0xa0, 0x2d, 0x55, 0x61, 0xb2, 0xa4, 0x7e,
+
  0x83, 0xd5, 0x0d, 0x50, 0x78, 0xc2, 0x12, 0xc1, 0xa8, 0x31, 0x58, 0x8c,
+
  0x45, 0x16, 0x57, 0xd7, 0x70, 0x70, 0x6b, 0x5d, 0x11, 0x48, 0xe3, 0x88,
+
  0x78, 0x85, 0x64, 0xb9, 0x84, 0xdc, 0x18, 0x92, 0xaf, 0x30, 0xe5, 0x44,
+
  0x82, 0x16, 0xff, 0x91, 0x95, 0x85, 0x96, 0x5b, 0x20, 0x50, 0x75, 0x4c,
+
  0x38, 0xa8, 0xb5, 0x58, 0x1b, 0x28, 0x4b, 0x33, 0x36, 0x52, 0x5b, 0x35,
+
  0x46, 0x1d, 0x11, 0xdc, 0x41, 0x52, 0x3e, 0x89, 0xcb, 0xde, 0x60, 0x40,
+
  0x42, 0x48, 0x71, 0x46, 0x86, 0xbe, 0xa0, 0x6c, 0x61, 0xbe, 0x3a, 0x8a,
+
  0x61, 0x8d, 0xa1, 0x7f, 0xd2, 0x4a, 0xbf, 0x85, 0xbf, 0xe9, 0x92, 0x2e,
+
  0xaf, 0xa9, 0xac, 0x28, 0x0d, 0xe3, 0x21, 0x32, 0xd6, 0x0f, 0xa9, 0x41,
+
  0x3e, 0x8e, 0xf2, 0x4b, 0x33, 0x92, 0x6d, 0x82, 0xb8, 0x8f, 0x71, 0x5a,
+
  0xa5, 0x98, 0xb9, 0xc9, 0x01, 0x4f, 0xd0, 0x34, 0xc4, 0x47, 0x70, 0x85,
+
  0x38, 0xa3, 0xcc, 0xd6, 0x85, 0x03, 0x0c, 0x70, 0x45, 0xba, 0x5e, 0xf8,
+
  0xa5, 0x04, 0x11, 0x02, 0xb2, 0x24, 0x1e, 0x80, 0x85, 0x17, 0x60, 0x45,
+
  0x25, 0xc5, 0x8c, 0x9a, 0x48, 0x18, 0xfa, 0x6a, 0x28, 0x01, 0x27, 0x5c,
+
  0x57, 0x49, 0xbc, 0xe9, 0x25, 0x72, 0x34, 0x43, 0x48, 0xc0, 0x46, 0x48,
+
  0x29, 0x94, 0xcd, 0xa6, 0x10, 0xa2, 0x82, 0xea, 0xd2, 0x70, 0x59, 0x71,
+
  0xde, 0x00, 0xe5, 0xb2, 0x75, 0xe1, 0xd6, 0x29, 0xa4, 0xac, 0xc0, 0x7c,
+
  0xe9, 0xee, 0x1f, 0xa0, 0x42, 0x4b, 0xcb, 0xa4, 0x7b, 0x0d, 0xab, 0xb5,
+
  0xbb, 0x67, 0xa8, 0x0b, 0xa7, 0x2a, 0x3d, 0x77, 0x69, 0x3f, 0xb4, 0xb6,
+
  0x90, 0x24, 0x93, 0xf0, 0x70, 0x34, 0x47, 0x81, 0x3d, 0x34, 0x76, 0x8e,
+
  0x38, 0x36, 0x23, 0xb3, 0x68, 0xc1, 0x90, 0x5c, 0x72, 0x52, 0xeb, 0x14,
+
  0x2b, 0x7f, 0x46, 0xed, 0x9c, 0xe5, 0x63, 0xd5, 0x35, 0xf2, 0xda, 0xbc,
+
  0xc8, 0xae, 0x40, 0x7b, 0x28, 0xaa, 0x2e, 0x12, 0x17, 0x67, 0xe8, 0x8f,
+
  0x27, 0xe9, 0x65, 0xc4, 0xd7, 0xe2, 0x93, 0xdf, 0x88, 0x60, 0xfb, 0x9c,
+
  0x01, 0x6c, 0x4b, 0x7d, 0xfd, 0x8f, 0x93, 0xb3, 0x65, 0xc8, 0xf8, 0xbd,
+
  0xe5, 0x82, 0xda, 0x1f, 0x6e, 0x97, 0x38, 0x95, 0xae, 0x42, 0x83, 0x49,
+
  0x51, 0xba, 0xc0, 0xbd, 0x7c, 0x49, 0x43, 0x70, 0x3d, 0x4b, 0x8a, 0x32,
+
  0xcf, 0xcc, 0x56, 0x6b, 0x3e, 0x33, 0x56, 0x5d, 0x30, 0x97, 0xad, 0xa0,
+
  0xfa, 0x5e, 0x29, 0x25, 0x58, 0xd0, 0x65, 0x25, 0x58, 0xd9, 0x58, 0xe5,
+
  0x11, 0x3d, 0xc3, 0x12, 0xf3, 0x0b, 0x23, 0xc8, 0x1b, 0x48, 0x8c, 0x91,
+
  0x0f, 0x96, 0x30, 0xf4, 0x5b, 0xfc, 0xa5, 0xab, 0x4a, 0x58, 0xcd, 0x4b,
+
  0x38, 0x79, 0x65, 0x3e, 0xb9, 0xb5, 0x2b, 0x9b, 0x0c, 0xcf, 0x9a, 0xed,
+
  0x45, 0x81, 0x38, 0xae, 0x6e, 0x78, 0x11, 0x40, 0x9b, 0x41, 0x3f, 0xcf,
+
  0x87, 0x9a, 0xc0, 0xca, 0xb0, 0xa4, 0x95, 0xaa, 0xa7, 0x52, 0x10, 0xa5,
+
  0x11, 0xf5, 0xd6, 0xbe, 0xc8, 0x9f, 0xb7, 0x32, 0x5e, 0xb3, 0x8f, 0xf5,
+
  0x48, 0x27, 0xd4, 0x06, 0x5a, 0x0b, 0x3f, 0x78, 0xe7, 0x2e, 0x5a, 0x3a,
+
  0xe9, 0x8a, 0xd2, 0xd9, 0x28, 0x4b, 0x94, 0x3c, 0x3f, 0x79, 0x79, 0xbc,
+
  0x05, 0xb7, 0x51, 0x86, 0x8a, 0x4f, 0x1d, 0xf2, 0x35, 0xb5, 0x86, 0x20,
+
  0x3e, 0x68, 0x45, 0x5d, 0x25, 0x1c, 0xdb, 0xc7, 0x8b, 0x8a, 0xc5, 0x97,
+
  0x74, 0x51, 0x83, 0x2e, 0x60, 0x1a, 0xe2, 0x9d, 0x41, 0xd5, 0x4d, 0xf3,
+
  0x8a, 0x34, 0xf0, 0x4b, 0x69, 0x93, 0xb2, 0xc0, 0x35, 0x5d, 0x98, 0x21,
+
  0xbb, 0xfa, 0xae, 0x92, 0x4f, 0x61, 0x11, 0x98, 0xc8, 0x70, 0x71, 0xa4,
+
  0x8c, 0x6a, 0xc8, 0x11, 0x60, 0x79, 0x05, 0xfc, 0xe2, 0xb6, 0x52, 0x10,
+
  0x3f, 0x55, 0x74, 0x0d, 0x13, 0x83, 0x8f, 0xed, 0xb4, 0x18, 0xb9, 0xe2,
+
  0x72, 0x24, 0x1e, 0x2c, 0x15, 0x47, 0xd4, 0xec, 0x8e, 0xcf, 0xa1, 0x31,
+
  0x5f, 0x39, 0x54, 0xd0, 0xd6, 0xed, 0x3d, 0x59, 0x4f, 0x98, 0x81, 0x65,
+
  0xc3, 0x2d, 0x83, 0x65, 0x1f, 0x14, 0x95, 0xc1, 0x76, 0x97, 0xc0, 0x20,
+
  0x7b, 0x69, 0x35, 0xcc, 0x73, 0xdd, 0xd8, 0x17, 0xba, 0xb1, 0x18, 0xef,
+
  0xcc, 0xff, 0x6e, 0x7f, 0xdf, 0x44, 0xf0, 0x66, 0x68, 0x1c, 0x4c, 0x5c,
+
  0xd8, 0x82, 0x41, 0xe1, 0x4c, 0xe4, 0x0d, 0x3a, 0xb1, 0x20, 0x10, 0x8c,
+
  0x08, 0xd6, 0x21, 0x9f, 0x71, 0xd6, 0x1d, 0xdf, 0xfa, 0x84, 0x0f, 0xf6,
+
  0x93, 0x45, 0x72, 0xd0, 0x8e, 0x88, 0x22, 0xa0, 0xe6, 0x17, 0x3d, 0x83,
+
  0xc6, 0x95, 0xa5, 0x68, 0x85, 0x18, 0x2b, 0x14, 0x4a, 0x44, 0x1f, 0xf3,
+
  0x99, 0xb3, 0x95, 0x97, 0x83, 0xa0, 0x3d, 0x1a, 0xa1, 0xe1, 0xf9, 0xbc,
+
  0x3a, 0x79, 0x75, 0x2c, 0xb8, 0x00, 0x08, 0x59, 0x85, 0x99, 0x54, 0x5c,
+
  0xc6, 0x42, 0xe1, 0xbc, 0x28, 0x07, 0x41, 0x11, 0x06, 0xcd, 0x49, 0x27,
+
  0xcc, 0x23, 0x13, 0x9b, 0x89, 0x73, 0x84, 0x13, 0xf8, 0x3d, 0x9d, 0x78,
+
  0x6a, 0xda, 0x23, 0xc8, 0xf1, 0xa6, 0xc2, 0x3d, 0xa9, 0xa2, 0x31, 0xaf,
+
  0x08, 0x65, 0x4e, 0xd4, 0x89, 0xf1, 0x4f, 0x1a, 0x84, 0x02, 0x0c, 0x4e,
+
  0x80, 0xfd, 0x81, 0xd6, 0x72, 0x52, 0x27, 0xce, 0x16, 0x98, 0xb2, 0xe7,
+
  0x08, 0x6e, 0x61, 0x71, 0x24, 0x44, 0x13, 0xb0, 0x09, 0xa3, 0x17, 0x9f,
+
  0x52, 0x20, 0xcc, 0x8d, 0x8e, 0x52, 0x8d, 0xdc, 0xc6, 0x78, 0x22, 0x32,
+
  0xb7, 0x43, 0x78, 0x79, 0xb9, 0xea, 0x0c, 0x78, 0x0d, 0xde, 0x16, 0x8b,
+
  0xa8, 0x6a, 0x39, 0x66, 0x89, 0xa3, 0x26, 0xe6, 0x13, 0xc5, 0xf9, 0x69,
+
  0xe2, 0x59, 0xe6, 0x6b, 0xe3, 0x80, 0xef, 0xb4, 0xd2, 0xa0, 0xd3, 0x96,
+
  0x88, 0xb1, 0x62, 0xa6, 0xa1, 0x38, 0x37, 0x16, 0xee, 0xda, 0x15, 0xe8,
+
  0x8d, 0x0f, 0xfc, 0x0c, 0x9a, 0xb7, 0xf1, 0x2a, 0x0c, 0x49, 0xbc, 0x2e,
+
  0xc5, 0xcb, 0x01, 0xec, 0x60, 0xb7, 0xbe, 0xdd, 0xd8, 0xfd, 0x82, 0xf6,
+
  0x11, 0xd8, 0x1c, 0x0a, 0x01, 0x61, 0xa4, 0x6b, 0x90, 0x22, 0x86, 0xef,
+
  0x73, 0x75, 0x0a, 0x55, 0xf5, 0x62, 0x4c, 0x23, 0x4c, 0xcd, 0xdd, 0x28,
+
  0x23, 0xd2, 0xa8, 0x48, 0x5c, 0x78, 0x29, 0xae, 0x68, 0xc1, 0xb9, 0x24,
+
  0x13, 0xa8, 0x1c, 0x11, 0x4f, 0x6d, 0x72, 0xeb, 0x46, 0x5d, 0x99, 0xad,
+
  0x05, 0x21, 0x64, 0x70, 0xa3, 0x11, 0xe6, 0x2c, 0x23, 0x59, 0x87, 0x9c,
+
  0xcc, 0x37, 0x0a, 0x92, 0x1e, 0x10, 0x3d, 0x47, 0x05, 0x79, 0xa5, 0xde,
+
  0x64, 0xd3, 0x82, 0x50, 0xf4, 0xdd, 0xaa, 0xc9, 0x52, 0x60, 0x50, 0x87,
+
  0x68, 0xe9, 0xa9, 0x0e, 0x82, 0xe3, 0x7d, 0xe3, 0xca, 0xb3, 0x92, 0xa4,
+
  0x2b, 0x00, 0xaf, 0x1c, 0xa2, 0x81, 0x18, 0xc7, 0x86, 0x08, 0x43, 0xd2,
+
  0x5f, 0x97, 0xb0, 0xc9, 0x67, 0x07, 0x70, 0xc2, 0x93, 0xce, 0x8b, 0xa2,
+
  0xaa, 0x0f, 0x3a, 0x5c, 0x7f, 0x20, 0x6c, 0x7f, 0x26, 0x09, 0x3f, 0xba,
+
  0xf5, 0x3a, 0x10, 0xb6, 0x0f, 0x02, 0x2f, 0x92, 0x90, 0x05, 0x8e, 0xa8,
+
  0xab, 0xed, 0x06, 0x0c, 0x68, 0x16, 0x5a, 0x54, 0xb7, 0x99, 0xff, 0x6b,
+
  0xc0, 0x08, 0x82, 0x9d, 0x83, 0x25, 0xb4, 0x61, 0x18, 0x7f, 0xe9, 0x1d,
+
  0x51, 0x4f, 0xbd, 0x17, 0xd4, 0xce, 0x1f, 0x3a, 0x52, 0xd7, 0x45, 0x73,
+
  0xe2, 0x9a, 0x0f, 0x1c, 0x58, 0xc0, 0x28, 0x6d, 0x21, 0x9b, 0x85, 0xa9,
+
  0xf0, 0x04, 0x91, 0x27, 0xc7, 0x50, 0xcb, 0x98, 0x08, 0x92, 0x7e, 0x34,
+
  0xda, 0x56, 0x41, 0x57, 0x61, 0xfe, 0x2d, 0x37, 0xc3, 0x44, 0x0d, 0x94,
+
  0xbf, 0xa1, 0xcb, 0x5e, 0x31, 0xee, 0x51, 0x06, 0x31, 0x48, 0x0a, 0xef,
+
  0x51, 0xb8, 0xa6, 0xc8, 0x14, 0xa1, 0x04, 0x82, 0xb6, 0xa3, 0x33, 0x39,
+
  0x1a, 0x89, 0x59, 0xa6, 0x52, 0x04, 0xa4, 0xa8, 0x52, 0xa7, 0xae, 0x88,
+
  0xec, 0xca, 0x81, 0xd5, 0xa3, 0xc2, 0x17, 0x67, 0xd9, 0x0d, 0x67, 0x80,
+
  0x22, 0x63, 0xd2, 0xcc, 0x7b, 0x83, 0x9b, 0x0c, 0xe5, 0x1d, 0xb4, 0x0c,
+
  0xf5, 0x94, 0x5d, 0xed, 0x1c, 0xb1, 0xb0, 0x98, 0xb3, 0x31, 0x07, 0x86,
+
  0x25, 0x26, 0x65, 0xf2, 0x7c, 0x51, 0x6b, 0x9a, 0x90, 0x05, 0xcc, 0x1d,
+
  0xb8, 0xed, 0x54, 0x69, 0x9e, 0x04, 0x69, 0x9c, 0xc6, 0x25, 0x05, 0x75,
+
  0x06, 0xca, 0x21, 0x16, 0x01, 0x4c, 0x9d, 0x53, 0xcc, 0x4b, 0x56, 0x27,
+
  0x12, 0x02, 0x96, 0xbe, 0x5c, 0x60, 0x74, 0x2f, 0x89, 0xf6, 0x0a, 0xa4,
+
  0x24, 0x1c, 0x9d, 0x8a, 0xd3, 0xd6, 0x19, 0xc3, 0x01, 0xd0, 0x05, 0x62,
+
  0x2e, 0xf4, 0xa5, 0x1c, 0xd6, 0x8b, 0x66, 0x30, 0x28, 0xd5, 0x72, 0xa5,
+
  0x50, 0x23, 0x8d, 0x5a, 0x07, 0xb6, 0xff, 0x7d, 0x40, 0xeb, 0xa8, 0xea,
+
  0x5b, 0x84, 0x56, 0x08, 0x60, 0x45, 0x33, 0x53, 0xb4, 0x42, 0xf2, 0x7f,
+
  0x88, 0x44, 0xa7, 0x8d, 0x12, 0x8d, 0x94, 0x40, 0x8b, 0xa4, 0x56, 0x04,
+
  0x67, 0x34, 0x7c, 0xdf, 0xf3, 0x61, 0x80, 0xea, 0xb2, 0x4b, 0x47, 0x7e,
+
  0x87, 0x38, 0x0d, 0xc0, 0xb0, 0xbc, 0x2c, 0xe8, 0x73, 0x82, 0x81, 0x41,
+
  0x2e, 0x5e, 0x08, 0x2e, 0x7c, 0xc4, 0x1e, 0x03, 0x91, 0xbb, 0x07, 0x13,
+
  0x9f, 0x26, 0xa0, 0x01, 0x4d, 0xf2, 0x9a, 0x54, 0x3b, 0xaa, 0xf9, 0x2c,
+
  0x06, 0x7d, 0xd4, 0x6f, 0x05, 0x6e, 0x42, 0x60, 0x13, 0xe9, 0xac, 0x90,
+
  0xbd, 0x48, 0x73, 0xc8, 0xe8, 0xa6, 0xe0, 0x2c, 0x5e, 0xe1, 0x1b, 0x07,
+
  0x1a, 0x26, 0x4e, 0xaa, 0x6c, 0xe7, 0x39, 0x0c, 0xe7, 0xa0, 0x03, 0x57,
+
  0x48, 0xe7, 0xa2, 0x80, 0x7f, 0xe5, 0x10, 0x3c, 0x83, 0x93, 0x74, 0xc0,
+
  0x75, 0x03, 0x3b, 0xe7, 0x0c, 0x85, 0x85, 0x7f, 0x4e, 0x0b, 0x14, 0xbd,
+
  0xeb, 0x2b, 0x86, 0xaa, 0x60, 0x48, 0x25, 0xb1, 0xba, 0xf2, 0xad, 0xa9,
+
  0x94, 0x1e, 0x97, 0x3b, 0xf0, 0xb7, 0x06, 0x23, 0xd9, 0x6a, 0x25, 0xca,
+
  0x70, 0x85, 0x33, 0x2b, 0x88, 0xb9, 0x40, 0x45, 0xfc, 0x69, 0x16, 0xb2,
+
  0xc5, 0x35, 0x6c, 0x51, 0x31, 0x01, 0x3f, 0xdc, 0x46, 0x81, 0xb3, 0x38,
+
  0x38, 0xdc, 0x6e, 0x98, 0x4b, 0x33, 0x95, 0xfb, 0x20, 0x61, 0xac, 0xac,
+
  0x6c, 0xd4, 0x09, 0x3c, 0x86, 0xbc, 0x3f, 0xc4, 0x14, 0x1b, 0x4d, 0xab,
+
  0xab, 0x45, 0xb3, 0xb8, 0xf5, 0x6f, 0xcc, 0x91, 0xef, 0xaa, 0x6b, 0x88,
+
  0x73, 0x2a, 0x94, 0x81, 0xb1, 0xef, 0xc3, 0x21, 0x1d, 0x49, 0x77, 0x96,
+
  0xb5, 0xbe, 0x54, 0xa5, 0x5b, 0xe7, 0x88, 0x3c, 0x5d, 0x22, 0xed, 0x1d,
+
  0x56, 0x2b, 0x86, 0x84, 0x65, 0x44, 0xb1, 0xe4, 0x82, 0xf2, 0xc3, 0xaa,
+
  0x14, 0x07, 0x41, 0xea, 0x2b, 0x48, 0xf4, 0x41, 0x99, 0x71, 0xd0, 0x91,
+
  0x56, 0x1d, 0x36, 0x60, 0x85, 0x6e, 0xc2, 0xb8, 0x43, 0x32, 0xe1, 0x1a,
+
  0xeb, 0x67, 0xc5, 0xe2, 0x3d, 0xa6, 0x55, 0x3b, 0xfd, 0x09, 0x4f, 0xcf,
+
  0x84, 0x68, 0xb7, 0x88, 0x44, 0x5d, 0x2e, 0x2b, 0x59, 0x49, 0xb1, 0x6f,
+
  0xa9, 0xdb, 0x40, 0xc6, 0x5d, 0x65, 0x23, 0x29, 0x1f, 0x8f, 0x02, 0x6e,
+
  0x84, 0x9c, 0xae, 0x95, 0x02, 0x05, 0x2b, 0x04, 0xf9, 0xaf, 0xb0, 0xb4,
+
  0x1e, 0x69, 0xf2, 0x26, 0x9c, 0x07, 0xe2, 0x61, 0x65, 0x2d, 0x8c, 0x68,
+
  0x98, 0x72, 0xf5, 0x71, 0x01, 0x65, 0x96, 0xef, 0x1c, 0x60, 0x43, 0x98,
+
  0x6c, 0x3f, 0x88, 0x8e, 0xaa, 0xbe, 0x7f, 0x6a, 0xbe, 0x76, 0xc3, 0x2d,
+
  0x44, 0x97, 0xc5, 0x73, 0xb4, 0xe6, 0xf6, 0x5e, 0x03, 0xbf, 0x38, 0x48,
+
  0xfe, 0xab, 0xc8, 0xee, 0x77, 0xf3, 0xc0, 0x5b, 0x6f, 0x41, 0xd5, 0xe8,
+
  0x1d, 0x5e, 0x12, 0x2b, 0xbe, 0xcd, 0xaa, 0xde, 0x9c, 0xce, 0xf7, 0xf6,
+
  0xde, 0xce, 0xce, 0xce, 0x5a, 0xef, 0xf3, 0x4d, 0xb9, 0xc6, 0x93, 0xdf,
+
  0xab, 0x7c, 0x75, 0x77, 0x81, 0x96, 0x46, 0xca, 0x61, 0x2f, 0xbd, 0xcc,
+
  0x2c, 0x9f, 0x8c, 0x33, 0x63, 0x2d, 0xa5, 0xec, 0x8a, 0x25, 0xf1, 0xc9,
+
  0x3c, 0x79, 0x2a, 0x08, 0x78, 0xdf, 0x29, 0x3c, 0x39, 0x5e, 0x1b, 0xf8,
+
  0x8d, 0x69, 0x1d, 0xfc, 0xa7, 0xf3, 0x79, 0x1b, 0x66, 0x9e, 0xe0, 0xac,
+
  0x4b, 0x5d, 0x15, 0xa6, 0x68, 0x35, 0x49, 0x34, 0x11, 0x39, 0xb8, 0x2c,
+
  0x8e, 0x4b, 0x2c, 0xf2, 0xe6, 0x0c, 0x85, 0x40, 0x37, 0x3d, 0x49, 0xc4,
+
  0x58, 0x64, 0x8f, 0x88, 0xc5, 0x0a, 0xea, 0x37, 0x70, 0xc9, 0x58, 0x8b,
+
  0x23, 0x36, 0xad, 0xcd, 0x55, 0xde, 0x9c, 0x6e, 0x7d, 0xd0, 0xed, 0x90,
+
  0xe5, 0x44, 0xbf, 0x04, 0x65, 0x99, 0xa0, 0xba, 0x7f, 0x59, 0x88, 0xe7,
+
  0x36, 0xa6, 0x91, 0xc0, 0xc4, 0x02, 0xfc, 0x7d, 0x1a, 0x5e, 0x68, 0x19,
+
  0x2e, 0xd0, 0xf5, 0x8d, 0xb8, 0x8e, 0xdb, 0x1a, 0xaa, 0x42, 0x3c, 0x4c,
+
  0x9c, 0xd2, 0x64, 0x8d, 0x86, 0x8a, 0xb6, 0xa1, 0x9f, 0xa4, 0x03, 0xed,
+
  0xb1, 0xb0, 0xc2, 0x65, 0xd1, 0xe0, 0x4f, 0x59, 0x51, 0xab, 0x58, 0x26,
+
  0xed, 0xbb, 0xa5, 0xed, 0xe8, 0xfb, 0x1d, 0x5e, 0x58, 0xf3, 0xac, 0x68,
+
  0xd2, 0x9d, 0x5b, 0x5a, 0xe2, 0x33, 0xae, 0xfc, 0x19, 0xee, 0xae, 0x1e,
+
  0x47, 0x6a, 0x24, 0xcf, 0x7c, 0xd3, 0x0c, 0x92, 0x19, 0xec, 0x4e, 0xba,
+
  0xf9, 0x11, 0x3a, 0x22, 0x2d, 0xf4, 0x07, 0x8e, 0x80, 0x4c, 0x56, 0x17,
+
  0xe4, 0xe8, 0x3a, 0x97, 0x8f, 0xec, 0x4b, 0x2e, 0xe2, 0x1e, 0x2c, 0xa6,
+
  0x62, 0x04, 0xa8, 0x60, 0xc7, 0xb1, 0xb7, 0x23, 0x82, 0xe1, 0xb2, 0xbb,
+
  0x2f, 0x14, 0xf6, 0x22, 0x0f, 0x22, 0x01, 0xed, 0xea, 0xf2, 0x4e, 0xf0,
  0xda, 0x0a, 0x4d, 0x20, 0x4c, 0x0b, 0xbe, 0x2d, 0x18, 0x10, 0x29, 0x3f,
  0xa0, 0x62, 0x3b, 0xca, 0x06, 0x4d, 0xf5, 0x3c, 0x65, 0x52, 0x67, 0x74,
  0x16, 0xc5, 0xef, 0x54, 0x5b, 0x0f, 0x77, 0x22, 0x02, 0xe8, 0xa4, 0x1f,
-
  0xc1, 0x46, 0xc1, 0x4b, 0xae, 0x54, 0x37, 0x57, 0x5d, 0x65, 0x60, 0x18,
+
  0xc1, 0x46, 0xc1, 0x4b, 0xae, 0x28, 0x35, 0xd7, 0x17, 0x65, 0x60, 0x18,
  0xb6, 0x4b, 0x2d, 0xef, 0x58, 0xe4, 0xab, 0x8f, 0xc8, 0x27, 0xd8, 0x96,
-
  0x50, 0xb6, 0x23, 0xe0, 0x48, 0x25, 0x38, 0x1c, 0x63, 0x55, 0xdc, 0xe1,
-
  0xe5, 0xa6, 0xd1, 0x18, 0xd5, 0x44, 0x9f, 0xf6, 0xac, 0x2e, 0x7a, 0xdb,
+
  0x50, 0xb6, 0x23, 0xe0, 0x48, 0x25, 0x38, 0x1c, 0x63, 0x55, 0xdc, 0xe3,
+
  0xe5, 0xa6, 0xd1, 0x18, 0xd5, 0x44, 0x9f, 0xf6, 0xac, 0x02, 0x78, 0xdb,
  0x97, 0xe3, 0x65, 0x3e, 0x22, 0x2a, 0x7d, 0xb0, 0xf2, 0xc1, 0x89, 0x9c,
  0x2f, 0x06, 0xd3, 0xd1, 0xa3, 0xe4, 0x29, 0xfc, 0x50, 0xbd, 0x9d, 0x32,
-
  0x4e, 0xcf, 0x9e, 0x61, 0x1a, 0x06, 0x21, 0x40, 0xa4, 0x26, 0x21, 0x8a,
-
  0x07, 0x99, 0xc8, 0x62, 0x7f, 0xaf, 0xcd, 0x56, 0x1d, 0xd5, 0xa7, 0xe4,
-
  0x97, 0x54, 0x32, 0x1e, 0xb0, 0x69, 0x6e, 0x77, 0xef, 0x49, 0x82, 0x96,
-
  0xde, 0xe4, 0xf5, 0xf3, 0x47, 0x22, 0x19, 0x55, 0x8b, 0xa9, 0xa9, 0x20,
-
  0x9c, 0x5d, 0xc9, 0x17, 0x94, 0x22, 0x86, 0x72, 0x75, 0x54, 0x44, 0xf1,
-
  0xea, 0x6a, 0x34, 0xe7, 0x38, 0x84, 0x73, 0x3a, 0x27, 0x58, 0x48, 0xa7,
-
  0xc6, 0xd7, 0x35, 0x91, 0xc6, 0xd9, 0x8c, 0xa4, 0x37, 0xf4, 0x10, 0xd6,
-
  0xc3, 0xcb, 0xbe, 0x44, 0x65, 0xbb, 0x75, 0xb8, 0x33, 0x2e, 0x5b, 0x9c,
-
  0x61, 0x9f, 0x62, 0x97, 0x0d, 0xbd, 0x64, 0x8f, 0x86, 0xbb, 0xc3, 0x87,
-
  0x5f, 0xed, 0xec, 0xed, 0x3c, 0x7e, 0xb8, 0x93, 0x3e, 0x4a, 0x07, 0x3b,
-
  0xe3, 0xbd, 0x9d, 0xfd, 0x87, 0x4f, 0x1e, 0x3d, 0x1c, 0xee, 0xef, 0xed,
-
  0xa6, 0x4f, 0x04, 0x57, 0xa2, 0x5a, 0x27, 0x60, 0x52, 0x9a, 0xad, 0x2e,
-
  0xd3, 0xbd, 0x47, 0x8f, 0x9b, 0x5b, 0xcb, 0x9f, 0xc2, 0xb5, 0x40, 0xff,
-
  0x2e, 0x6f, 0x30, 0xed, 0x2f, 0x9e, 0xc2, 0xe5, 0xfd, 0x4d, 0x93, 0xef,
-
  0x09, 0xa4, 0xa5, 0xa7, 0x9e, 0xf9, 0xb3, 0x97, 0x87, 0xd8, 0x16, 0xea,
-
  0xf6, 0x97, 0x91, 0x26, 0x23, 0x5b, 0xc6, 0x3b, 0xa6, 0x9b, 0x85, 0xbb,
-
  0xd5, 0x8f, 0x77, 0xab, 0xb1, 0x59, 0x0d, 0x97, 0x84, 0xdf, 0x31, 0xfa,
-
  0x9b, 0xcf, 0x3a, 0x6f, 0x54, 0x04, 0xf8, 0x2d, 0xa6, 0xc0, 0x50, 0x01,
-
  0x58, 0x5d, 0x93, 0x12, 0xab, 0xe3, 0xec, 0x35, 0xf8, 0x55, 0x55, 0x5d,
-
  0x72, 0x7d, 0xa6, 0x46, 0x96, 0x34, 0xb9, 0x38, 0xf9, 0x29, 0x16, 0x8a,
-
  0xce, 0xce, 0x5e, 0x2a, 0x9c, 0x77, 0xd5, 0x20, 0x0d, 0x59, 0xc7, 0xcf,
-
  0xe7, 0x83, 0x8c, 0xba, 0x79, 0xf3, 0xfc, 0xc7, 0xf7, 0xaf, 0xcf, 0xff,
-
  0xfc, 0xe1, 0xf5, 0x0f, 0x7f, 0xde, 0x3d, 0x79, 0x3e, 0x9a, 0xbe, 0xfe,
-
  0xed, 0xcf, 0xfb, 0xaf, 0x7f, 0x1b, 0xfe, 0xe3, 0xaf, 0xbf, 0x1d, 0xde,
-
  0x9c, 0x9c, 0xff, 0xf5, 0xd1, 0xeb, 0xe9, 0xdb, 0xf7, 0xaf, 0x7f, 0xfb,
-
  0x71, 0xfa, 0xe6, 0xf9, 0x9f, 0xbf, 0x11, 0xa8, 0x9d, 0xd5, 0xa4, 0xe2,
-
  0x21, 0x48, 0x9a, 0x86, 0xda, 0x40, 0x92, 0x81, 0x70, 0xd0, 0xae, 0xfd,
-
  0x54, 0xd5, 0xad, 0x46, 0xe9, 0xec, 0x23, 0x0a, 0x70, 0x4e, 0x5e, 0x9e,
-
  0x9d, 0x9f, 0x99, 0x93, 0xc5, 0x42, 0xe3, 0x94, 0x0f, 0x9a, 0xaa, 0x36,
-
  0x07, 0x19, 0xbd, 0xae, 0x04, 0xa5, 0x56, 0xa2, 0xcb, 0xec, 0x56, 0xa1,
-
  0x36, 0xa8, 0xe0, 0x60, 0x66, 0x68, 0x79, 0x96, 0x72, 0x23, 0xe1, 0x50,
-
  0xc9, 0x21, 0xcb, 0xc8, 0x29, 0x0b, 0x0a, 0x30, 0x31, 0x03, 0xc8, 0xd5,
-
  0x5e, 0x79, 0xc9, 0xb9, 0x99, 0xbc, 0xd2, 0xda, 0xf1, 0x45, 0x12, 0x8f,
-
  0x84, 0x4d, 0xa5, 0xf9, 0x18, 0x35, 0x5b, 0x83, 0xab, 0x30, 0xf4, 0x7b,
-
  0xba, 0xc1, 0x1c, 0x33, 0xd7, 0x32, 0x39, 0x24, 0x72, 0x4b, 0x4d, 0x5f,
-
  0x5c, 0x00, 0x58, 0x5f, 0x9a, 0x75, 0xea, 0xc2, 0xf3, 0xa8, 0xb2, 0x91,
-
  0x9c, 0x17, 0x4b, 0x4c, 0x52, 0xb1, 0xba, 0xe6, 0xf9, 0x06, 0x97, 0xa8,
-
  0x9b, 0x34, 0x1b, 0x2e, 0x17, 0xf3, 0x8b, 0x32, 0x1d, 0xc9, 0xd9, 0x70,
-
  0x45, 0x60, 0x0a, 0x57, 0x01, 0x8a, 0xd6, 0x1e, 0xcb, 0xd6, 0xa0, 0xbe,
-
  0x4b, 0x2d, 0xc8, 0xaa, 0x81, 0x50, 0x04, 0x22, 0xc6, 0xa5, 0x48, 0x6c,
-
  0xe8, 0xff, 0x00, 0xc2, 0x5c, 0x90, 0x91, 0x30, 0x1f, 0x73, 0x8c, 0x9f,
-
  0xa8, 0x19, 0x0a, 0xab, 0x9f, 0x8b, 0xa5, 0x5d, 0xba, 0xe5, 0x5b, 0x49,
-
  0xee, 0x51, 0x05, 0xdc, 0x77, 0xd5, 0x15, 0x2d, 0xd9, 0xa6, 0xd3, 0x09,
-
  0x60, 0x9c, 0xc9, 0x26, 0xfa, 0xf4, 0x12, 0xc1, 0xa6, 0xda, 0x72, 0x3e,
-
  0x52, 0x41, 0x28, 0xdf, 0xd6, 0x7a, 0x0f, 0x76, 0xcb, 0x87, 0x7c, 0x2b,
-
  0x02, 0xd7, 0x46, 0x1c, 0x7f, 0xa5, 0x22, 0x58, 0x18, 0x46, 0x9e, 0x8e,
-
  0x2e, 0xd3, 0xc8, 0x27, 0x13, 0xc1, 0xab, 0xc8, 0x39, 0xa3, 0xc6, 0x38,
-
  0x01, 0x23, 0x80, 0x5a, 0x73, 0x16, 0xd0, 0x24, 0xa4, 0xed, 0x09, 0x42,
-
  0xba, 0x44, 0x1b, 0xf1, 0xc1, 0x2c, 0xa4, 0x3c, 0xae, 0x95, 0xed, 0xe6,
-
  0xd1, 0xf6, 0x95, 0xf4, 0x7f, 0xa7, 0x36, 0xd2, 0x3c, 0xd7, 0xdc, 0x24,
-
  0x6c, 0xd7, 0xfa, 0xe5, 0x18, 0x31, 0x4d, 0xa0, 0xe9, 0x4e, 0xa9, 0x8b,
-
  0x70, 0x40, 0xa1, 0x8d, 0x9d, 0xfe, 0x57, 0x91, 0x47, 0xee, 0x90, 0x5c,
-
  0x9f, 0x86, 0x05, 0xad, 0x85, 0xfc, 0xb0, 0x54, 0x81, 0x95, 0xe8, 0xfc,
-
  0x22, 0x50, 0xd3, 0x36, 0x7e, 0x41, 0x50, 0x89, 0xa1, 0xfa, 0xa0, 0x85,
-
  0x80, 0x89, 0x9e, 0x27, 0x89, 0xa9, 0x5c, 0x0d, 0xc7, 0xa2, 0xca, 0x7c,
-
  0xc9, 0x4c, 0x09, 0x30, 0x0a, 0xc6, 0x03, 0x83, 0x3f, 0x75, 0x15, 0xe7,
-
  0xd4, 0xe2, 0x50, 0xe7, 0x28, 0xa7, 0xa2, 0x47, 0x26, 0x6d, 0x56, 0x6a,
-
  0xe1, 0x1c, 0x2a, 0x16, 0x89, 0xb8, 0x6c, 0x10, 0x9d, 0x03, 0x2c, 0x3e,
-
  0xc9, 0x61, 0x26, 0x20, 0x32, 0xc9, 0x29, 0x21, 0x1c, 0xc3, 0x94, 0xf5,
-
  0xe3, 0xa5, 0x09, 0x11, 0xe3, 0x90, 0xe8, 0x2a, 0x85, 0x88, 0xd5, 0x90,
-
  0x79, 0x57, 0xe9, 0x1b, 0x1d, 0x56, 0x8f, 0xfb, 0x3b, 0x5b, 0x2d, 0x81,
+
  0x4e, 0xcf, 0x8f, 0x30, 0x0d, 0x83, 0x10, 0x20, 0x52, 0x93, 0x10, 0xc5,
+
  0x83, 0x4c, 0x64, 0xb1, 0xbf, 0xd7, 0x66, 0xab, 0x8e, 0x2a, 0x31, 0xf2,
+
  0x4b, 0x2a, 0x19, 0x0f, 0xd8, 0x34, 0xb7, 0xbb, 0xf7, 0x24, 0x41, 0x4b,
+
  0x6f, 0xf2, 0xea, 0xd9, 0x23, 0x91, 0x8c, 0xaa, 0xc5, 0xd4, 0x54, 0x10,
+
  0xce, 0xae, 0xe4, 0x0b, 0x4a, 0x11, 0x43, 0xb9, 0x0e, 0x28, 0xa2, 0x78,
+
  0x75, 0x35, 0x9a, 0x73, 0x1c, 0xc2, 0x39, 0x9d, 0x13, 0x2c, 0xa4, 0x53,
+
  0xe3, 0xeb, 0x9a, 0x48, 0xe3, 0x6c, 0x46, 0xd2, 0x1b, 0x7a, 0x08, 0xeb,
+
  0xe1, 0x55, 0x5f, 0xa2, 0xb2, 0xdd, 0x3a, 0xdc, 0x1b, 0x97, 0x2d, 0xce,
+
  0xb0, 0x4f, 0xb1, 0xcb, 0x86, 0x5e, 0xb2, 0x47, 0xc3, 0xdd, 0xe1, 0xc3,
+
  0x6f, 0x76, 0xf6, 0x76, 0x1e, 0x3f, 0xdc, 0x49, 0x1f, 0xa5, 0x83, 0x9d,
+
  0xf1, 0xde, 0xce, 0xfe, 0xc3, 0x27, 0x8f, 0x1e, 0x0e, 0xf7, 0xf7, 0x76,
+
  0xd3, 0x27, 0x82, 0x2b, 0x51, 0xad, 0x13, 0x30, 0x29, 0xcd, 0x56, 0x57,
+
  0xe9, 0xde, 0xa3, 0xc7, 0xcd, 0xad, 0xe5, 0x4f, 0xe1, 0x5a, 0xa0, 0x7f,
+
  0x97, 0x37, 0x98, 0xf6, 0x17, 0x4f, 0xe1, 0xf2, 0xfe, 0xa6, 0xc9, 0x0f,
+
  0x04, 0xd2, 0xd2, 0x53, 0xcf, 0xfc, 0xf9, 0x8b, 0x43, 0x6c, 0x0b, 0x75,
+
  0xfb, 0xab, 0x48, 0x93, 0x91, 0x2d, 0xe3, 0x1d, 0xd3, 0xcd, 0xc2, 0xdd,
+
  0xea, 0x27, 0x47, 0x7e, 0xb7, 0x1a, 0x9b, 0xd5, 0x70, 0x49, 0xf8, 0x1d,
+
  0xa3, 0xbf, 0xf9, 0xac, 0xf3, 0x46, 0x45, 0x80, 0xdf, 0x62, 0x0a, 0x0c,
+
  0xb5, 0x6e, 0xd5, 0x35, 0x29, 0xb1, 0x3a, 0xce, 0x5e, 0x83, 0x5f, 0x55,
+
  0xd5, 0x15, 0xd7, 0x67, 0x6a, 0x64, 0x49, 0x93, 0x8b, 0x93, 0x9f, 0x62,
+
  0xa1, 0xe8, 0xfc, 0xfc, 0x85, 0xc2, 0x79, 0x57, 0x0d, 0xd2, 0x90, 0x75,
+
  0xfc, 0x72, 0x3e, 0xc8, 0xa8, 0x9b, 0xd7, 0xcf, 0xfe, 0xfc, 0xfe, 0xd5,
+
  0xc5, 0x9f, 0x3e, 0xbc, 0xfa, 0xf1, 0x4f, 0xbb, 0xa7, 0xcf, 0x46, 0xd3,
+
  0x57, 0xbf, 0xfe, 0x69, 0xff, 0xd5, 0xaf, 0xc3, 0x7f, 0xfc, 0xf5, 0xd7,
+
  0xc3, 0xdb, 0xd3, 0x8b, 0xbf, 0x3e, 0x7a, 0x35, 0x7d, 0xf3, 0xfe, 0xd5,
+
  0xaf, 0x7f, 0x9e, 0xbe, 0x7e, 0xf6, 0xa7, 0x6f, 0x05, 0x6a, 0x67, 0x35,
+
  0xa9, 0x78, 0x08, 0x92, 0xa6, 0xa1, 0x36, 0x90, 0x64, 0x20, 0x1c, 0xb4,
+
  0x6b, 0xb7, 0xd6, 0x92, 0x3f, 0xdf, 0x4a, 0x8e, 0x29, 0xc0, 0x39, 0x79,
+
  0x71, 0x7e, 0x71, 0x6e, 0x4e, 0x16, 0x0b, 0x8d, 0x53, 0x3e, 0x68, 0xaa,
+
  0xda, 0x1c, 0x64, 0xf4, 0xba, 0x12, 0x94, 0x5a, 0x89, 0x2e, 0xb3, 0x5b,
+
  0x85, 0xda, 0xa0, 0xe2, 0x7c, 0x99, 0xa1, 0xe5, 0x59, 0xca, 0x8d, 0x84,
+
  0x43, 0x25, 0x87, 0x2c, 0x23, 0xa7, 0x2c, 0x28, 0xc0, 0xc4, 0x0c, 0x20,
+
  0x57, 0x7b, 0xe5, 0x25, 0xe7, 0x66, 0xf2, 0x4a, 0xab, 0xa4, 0x17, 0x49,
+
  0x3c, 0x12, 0x36, 0x95, 0xe6, 0x63, 0xd4, 0x6c, 0x0d, 0xae, 0xc2, 0xd0,
+
  0xef, 0xe9, 0x06, 0x73, 0xcc, 0x5c, 0xcb, 0xe4, 0x90, 0xc8, 0x2d, 0xd5,
+
  0x6b, 0x71, 0x01, 0x60, 0x7d, 0x69, 0xd6, 0xa9, 0x0b, 0xcf, 0xa3, 0xca,
+
  0x46, 0x72, 0x5e, 0x2c, 0x31, 0x49, 0xc5, 0xea, 0x9a, 0xe7, 0x1b, 0x5c,
+
  0xa2, 0x6e, 0xd2, 0x6c, 0xb8, 0x5c, 0xcc, 0x2f, 0xcb, 0x74, 0x24, 0x67,
+
  0xc3, 0x15, 0x81, 0x29, 0x5c, 0x05, 0x28, 0x5a, 0x7b, 0x2c, 0x5b, 0x83,
+
  0xfa, 0x2e, 0xb5, 0x20, 0xab, 0x06, 0x42, 0x11, 0x88, 0x18, 0x57, 0x22,
+
  0xb1, 0xa1, 0xff, 0x03, 0x08, 0x73, 0x41, 0x46, 0xc2, 0x7c, 0xcc, 0x31,
+
  0x7e, 0xa2, 0x66, 0x28, 0xac, 0x7e, 0x2e, 0x96, 0x76, 0xe9, 0x96, 0x6f,
+
  0x25, 0xb9, 0x47, 0x15, 0x70, 0x3f, 0x2c, 0xc5, 0xb9, 0x25, 0xdb, 0x74,
+
  0x3a, 0x01, 0x8c, 0x33, 0xd9, 0x44, 0x9f, 0x5e, 0x22, 0xd8, 0x54, 0x5b,
+
  0xce, 0x47, 0x2a, 0x08, 0xe5, 0xdb, 0x5a, 0xef, 0xc1, 0x6e, 0xf9, 0x90,
+
  0x6f, 0x45, 0xe0, 0xda, 0x88, 0xe3, 0xaf, 0x54, 0x04, 0x0b, 0xc3, 0xc8,
+
  0xd3, 0xd1, 0x65, 0x1a, 0xf9, 0x64, 0x22, 0x78, 0x15, 0x39, 0x67, 0xd4,
+
  0x18, 0x27, 0x60, 0x04, 0x50, 0x6b, 0xce, 0x02, 0x9a, 0x84, 0xb4, 0x3d,
+
  0x41, 0x48, 0x97, 0x68, 0x23, 0x3e, 0x98, 0x85, 0x14, 0x82, 0xb5, 0x02,
+
  0xd5, 0x3c, 0xda, 0xbe, 0x92, 0xfe, 0x6f, 0xd4, 0x46, 0x9a, 0xe7, 0x9a,
+
  0x9b, 0x84, 0xed, 0x5a, 0xbf, 0x1c, 0x23, 0xa6, 0x09, 0x34, 0xdd, 0x29,
+
  0x75, 0x11, 0x0e, 0x28, 0xb4, 0xb1, 0xd3, 0xff, 0x26, 0xf2, 0xc8, 0x1d,
+
  0x92, 0xeb, 0xd3, 0xb0, 0xa0, 0xb5, 0x90, 0x1f, 0x96, 0x2a, 0x68, 0x16,
+
  0xb4, 0xc4, 0x07, 0xb6, 0xf1, 0x0b, 0x82, 0x4a, 0x0c, 0xd5, 0x07, 0x2d,
+
  0x04, 0x4c, 0xf4, 0x3c, 0x49, 0x4c, 0xe5, 0x6a, 0x38, 0x16, 0x55, 0xe6,
+
  0xaa, 0x58, 0x69, 0x80, 0x51, 0x30, 0x1e, 0x18, 0xfc, 0xa9, 0xab, 0x38,
+
  0xa7, 0x16, 0x87, 0x3a, 0x47, 0x39, 0x15, 0x3d, 0x32, 0x69, 0xb3, 0x52,
+
  0x0b, 0xe7, 0x50, 0xb1, 0x48, 0xc4, 0x65, 0x83, 0xe8, 0x1c, 0x60, 0xf1,
+
  0x49, 0x0e, 0x33, 0x01, 0x91, 0x49, 0x4e, 0x09, 0xe1, 0x18, 0x4a, 0x99,
+
  0xf9, 0xa5, 0x09, 0x11, 0xe3, 0x90, 0xe8, 0x2a, 0x85, 0x88, 0xd5, 0x90,
+
  0x79, 0x57, 0xd3, 0x1a, 0x1d, 0x56, 0x8f, 0xfb, 0x3b, 0x5b, 0x2d, 0x81,
  0xd1, 0xb2, 0xb4, 0x9f, 0x50, 0x7a, 0x64, 0x45, 0xcc, 0xbc, 0x34, 0x78,
-
  0x07, 0xef, 0x97, 0x5e, 0xd7, 0xf3, 0xb5, 0x35, 0x89, 0x03, 0xdf, 0xda,
+
  0x0f, 0xef, 0x97, 0x5e, 0xd7, 0xf3, 0xb5, 0x35, 0x89, 0x03, 0xdf, 0xda,
  0xed, 0xef, 0x76, 0xe5, 0xd7, 0x3d, 0xd1, 0x10, 0xf1, 0xf7, 0x7d, 0xa5,
  0x99, 0x9d, 0xae, 0x3d, 0xb8, 0x13, 0xd1, 0x0d, 0xe5, 0x7c, 0x33, 0x7c,
  0xb8, 0xd2, 0x4c, 0xb2, 0x8b, 0x95, 0x2f, 0x7c, 0x2c, 0xab, 0xa6, 0x6d,
  0xe7, 0xcc, 0xc8, 0xd4, 0xaa, 0xad, 0x56, 0x51, 0x54, 0x45, 0x11, 0x45,
  0xde, 0x53, 0x5e, 0x23, 0x1f, 0x45, 0xba, 0x5e, 0x11, 0x67, 0xae, 0x37,
-
  0x83, 0x73, 0x73, 0xdd, 0xb9, 0x5e, 0xd8, 0xda, 0xfd, 0x41, 0xad, 0xd9,
-
  0x1a, 0xea, 0x1f, 0x7b, 0x5d, 0x4f, 0x12, 0x7b, 0x08, 0x6d, 0x57, 0x94,
-
  0x3d, 0x14, 0xde, 0x81, 0xb4, 0x2e, 0xb4, 0xa6, 0x9e, 0xae, 0xb2, 0xc8,
-
  0x63, 0x92, 0x1b, 0x19, 0x36, 0x34, 0xc2, 0x6c, 0x93, 0x3e, 0xa2, 0x63,
-
  0x0c, 0x7f, 0xaf, 0xd8, 0x0e, 0xb7, 0x1b, 0xbb, 0xfd, 0x50, 0xae, 0x27,
-
  0x06, 0xb3, 0xe0, 0xe1, 0xcb, 0xcd, 0x24, 0x0a, 0xff, 0xdb, 0x57, 0x55,
-
  0x1c, 0x1e, 0x29, 0xfd, 0xac, 0x93, 0x03, 0xb2, 0xc6, 0xaa, 0xef, 0xde,
-
  0xfb, 0xaa, 0xef, 0xdc, 0xe7, 0xaa, 0x13, 0xed, 0x36, 0x57, 0x9d, 0x0f,
-
  0xa0, 0x6b, 0x78, 0x69, 0xcd, 0x89, 0x85, 0xec, 0x79, 0xb7, 0x20, 0xdd,
-
  0xb9, 0x5d, 0x0f, 0x49, 0x42, 0xcb, 0x30, 0x03, 0x85, 0x9a, 0x93, 0x32,
-
  0xe4, 0x1d, 0xbd, 0xd8, 0x1b, 0xa5, 0x76, 0x9c, 0xeb, 0x81, 0x9c, 0x74,
-
  0xd4, 0x4e, 0xc8, 0x0a, 0x6b, 0xf6, 0x64, 0x61, 0xec, 0xae, 0xab, 0x10,
-
  0xd0, 0x47, 0x22, 0x88, 0x5c, 0xd8, 0xea, 0x53, 0x64, 0xc3, 0xa6, 0x85,
-
  0x9e, 0xc8, 0x60, 0x42, 0xd1, 0xe3, 0x77, 0xfc, 0xfc, 0x81, 0x3d, 0x2a,
-
  0x11, 0x08, 0x4b, 0xd5, 0x00, 0x49, 0x30, 0x97, 0xd7, 0x09, 0x02, 0x4a,
-
  0x66, 0x9e, 0xd7, 0x2e, 0x3f, 0x46, 0x83, 0x80, 0x2b, 0xae, 0x77, 0x3f,
-
  0xc3, 0xe9, 0x4a, 0x74, 0x61, 0x7f, 0x0f, 0x55, 0x76, 0x49, 0xb6, 0x65,
-
  0x77, 0xda, 0x25, 0x96, 0x87, 0xb4, 0xe8, 0x48, 0x91, 0xd2, 0x47, 0x5a,
-
  0xda, 0xb9, 0x81, 0x0e, 0x8b, 0x79, 0xb9, 0xe2, 0xe3, 0x2d, 0xe5, 0x86,
-
  0x21, 0xbf, 0x09, 0xae, 0x86, 0x1e, 0x02, 0x69, 0x22, 0x78, 0xb4, 0xd0,
-
  0x1f, 0x3d, 0xa9, 0xae, 0xa0, 0xf3, 0xfe, 0x0a, 0x2e, 0xbe, 0x77, 0x2f,
-
  0xf4, 0xbe, 0x77, 0x0b, 0xb5, 0xeb, 0x13, 0x41, 0x0b, 0xa1, 0x19, 0xab,
-
  0x2a, 0x42, 0x59, 0x60, 0xa4, 0x87, 0x50, 0x3e, 0xba, 0x80, 0x06, 0x2b,
-
  0xa5, 0xb5, 0xd5, 0x16, 0xe6, 0x22, 0xb9, 0xed, 0x47, 0x46, 0xce, 0x4c,
-
  0x1b, 0xab, 0xc2, 0x13, 0x74, 0xfb, 0xb1, 0x89, 0x4f, 0x4d, 0x38, 0x33,
-
  0xbe, 0x31, 0xf9, 0x3a, 0xa0, 0xbb, 0xd1, 0xf5, 0x95, 0x4e, 0xe6, 0xb3,
-
  0xf8, 0xe8, 0x34, 0x1b, 0x8f, 0x8e, 0xd2, 0x71, 0x55, 0x2d, 0xd0, 0x2e,
-
  0x87, 0x22, 0x00, 0x1e, 0x88, 0xc8, 0xfa, 0x2d, 0xc4, 0x29, 0xa4, 0xc6,
-
  0x66, 0x60, 0x9c, 0x66, 0xe4, 0xa1, 0xa4, 0x6f, 0x91, 0xcb, 0x08, 0xfd,
-
  0xf6, 0x29, 0x3c, 0xcb, 0xad, 0x31, 0x75, 0x9f, 0x38, 0x96, 0x10, 0xc0,
-
  0x0e, 0x45, 0xe0, 0xd0, 0x9a, 0x90, 0xb4, 0xe0, 0x46, 0xda, 0x15, 0x42,
-
  0x54, 0xa3, 0xbb, 0x33, 0xbd, 0x4e, 0x25, 0xb4, 0xe4, 0xcc, 0xc5, 0xf1,
-
  0xb0, 0x78, 0x32, 0x2a, 0xf4, 0x71, 0x97, 0x08, 0x66, 0xd9, 0xc2, 0xd7,
-
  0xe9, 0x8d, 0xed, 0x83, 0xf1, 0x81, 0x51, 0xa8, 0xfa, 0xe3, 0xae, 0xd0,
-
  0x50, 0x64, 0x2a, 0x9c, 0x94, 0xa5, 0xe2, 0x55, 0x67, 0x24, 0xf6, 0x10,
-
  0xf2, 0xc1, 0x0e, 0x17, 0xbf, 0x74, 0xec, 0x33, 0x67, 0x07, 0x83, 0xb8,
-
  0x4f, 0x64, 0xbc, 0x21, 0x95, 0x24, 0x9b, 0xb9, 0x21, 0xfa, 0xaa, 0x5c,
-
  0x94, 0xdd, 0xe8, 0x62, 0xb1, 0x64, 0x44, 0x9b, 0x87, 0xaf, 0x4e, 0xdf,
-
  0x6c, 0x61, 0x76, 0x01, 0x15, 0x7c, 0x89, 0xca, 0x56, 0x84, 0xc4, 0x72,
-
  0x72, 0x25, 0x2a, 0x85, 0x9e, 0xd2, 0x4a, 0xd3, 0x93, 0xb8, 0xc2, 0x14,
-
  0xd4, 0x66, 0xdb, 0xc3, 0x68, 0xc8, 0xb4, 0x54, 0xd7, 0x04, 0xc4, 0x28,
-
  0x2d, 0xb7, 0x55, 0xc1, 0x5a, 0xc1, 0xcb, 0xef, 0x08, 0x73, 0x5a, 0x3b,
-
  0x19, 0xa9, 0xb5, 0xf9, 0x35, 0x8e, 0xf6, 0xd2, 0x88, 0xee, 0x3c, 0xea,
-
  0x4b, 0x6f, 0x18, 0x59, 0xae, 0x38, 0xf9, 0xe4, 0x1f, 0xf3, 0x49, 0x5a,
-
  0xd1, 0xe9, 0x6f, 0x9c, 0xfc, 0xdb, 0xee, 0x4a, 0x77, 0x54, 0x63, 0x71,
-
  0x62, 0xa7, 0x5d, 0xec, 0x6b, 0xca, 0x87, 0xad, 0x42, 0xa1, 0x3f, 0xf1,
-
  0xaa, 0x46, 0x68, 0x08, 0x3d, 0x0d, 0x74, 0x3f, 0x38, 0x92, 0xd8, 0x72,
-
  0x3f, 0xb3, 0xd4, 0x14, 0xc1, 0xf3, 0x19, 0xc3, 0x80, 0x09, 0xf9, 0xc4,
-
  0x2e, 0x22, 0xac, 0x59, 0x97, 0x6b, 0xcd, 0x64, 0xa1, 0xbe, 0x4a, 0x4a,
-
  0xbb, 0x6a, 0xab, 0xce, 0x04, 0x64, 0x91, 0xf5, 0xcc, 0xdb, 0x5d, 0xd5,
-
  0xc5, 0x82, 0x02, 0x3c, 0x10, 0xa3, 0xab, 0x6f, 0xc3, 0x41, 0xad, 0x90,
-
  0xbc, 0xdd, 0xc1, 0xdc, 0x3d, 0xd6, 0xbb, 0x9a, 0xb9, 0x16, 0xde, 0x56,
-
  0x56, 0x5b, 0xdb, 0x49, 0x44, 0x2d, 0xbe, 0x66, 0x8d, 0x07, 0xd1, 0x4a,
-
  0x63, 0x68, 0xa4, 0x20, 0x2d, 0xd6, 0xdd, 0xa2, 0xc9, 0xe1, 0xa4, 0xee,
-
  0x9d, 0x5d, 0x0d, 0xad, 0xbc, 0xb2, 0xc6, 0x2f, 0xf2, 0x75, 0xac, 0x49,
-
  0x2a, 0x32, 0x3c, 0x76, 0xd4, 0x51, 0xec, 0x06, 0xd2, 0x08, 0xcd, 0xa1,
-
  0x5a, 0xe0, 0x75, 0x57, 0x47, 0x7c, 0x8a, 0x01, 0xb9, 0x2c, 0x66, 0x34,
-
  0x7d, 0x5f, 0x69, 0x0b, 0xe2, 0x9d, 0x67, 0xbf, 0xc2, 0x25, 0x7b, 0x93,
-
  0xe3, 0x70, 0x45, 0xf6, 0x63, 0x54, 0xef, 0xc5, 0xc8, 0xa1, 0x96, 0x89,
-
  0xed, 0x7d, 0x2b, 0x3b, 0x8b, 0x3c, 0x58, 0x02, 0xb5, 0x39, 0x78, 0xda,
-
  0x12, 0x23, 0x22, 0xa3, 0x02, 0xc2, 0xdf, 0x37, 0xb7, 0x49, 0x2d, 0xf5,
-
  0x13, 0xe2, 0x94, 0xa3, 0x6c, 0x82, 0x65, 0x62, 0x81, 0x88, 0x64, 0xfb,
-
  0x8c, 0x2a, 0xc4, 0x4a, 0x21, 0x80, 0xb2, 0x94, 0xb5, 0x18, 0xb6, 0x4b,
-
  0x5d, 0x14, 0xcc, 0x52, 0x05, 0xfc, 0xa8, 0x20, 0x36, 0x39, 0xcc, 0x2c,
-
  0xce, 0x63, 0x26, 0x03, 0x70, 0x1b, 0x65, 0xaa, 0x03, 0xe7, 0x63, 0x18,
-
  0x69, 0x89, 0x59, 0xa2, 0x52, 0xd1, 0x47, 0x02, 0xbb, 0x94, 0x05, 0xd3,
-
  0x5e, 0x4a, 0xc4, 0xb3, 0xbf, 0x44, 0x1c, 0x8f, 0x0a, 0xc5, 0x7a, 0x33,
-
  0x25, 0xfb, 0x1e, 0x13, 0x12, 0xd1, 0x8a, 0xd6, 0xb1, 0x69, 0x14, 0x12,
-
  0x34, 0x8d, 0x38, 0x0d, 0xa3, 0x69, 0x41, 0x77, 0xa0, 0xe6, 0xee, 0x45,
-
  0xda, 0xd8, 0xbf, 0x93, 0x05, 0xed, 0x7f, 0x8a, 0xb4, 0xb1, 0xdf, 0x26,
-
  0x6d, 0xdc, 0x56, 0xbf, 0x7a, 0x59, 0xa9, 0x64, 0x29, 0x7d, 0x3d, 0x21,
-
  0xdd, 0x4b, 0x1b, 0x3d, 0x89, 0x77, 0x3c, 0x6c, 0x2a, 0xdf, 0x7d, 0x92,
-
  0xdd, 0x15, 0x6d, 0xd0, 0xcb, 0x22, 0x8e, 0x53, 0xed, 0xc5, 0x9c, 0xaa,
-
  0x17, 0x00, 0xdc, 0x55, 0xde, 0xd0, 0xd2, 0x67, 0x89, 0x59, 0x7f, 0xc3,
-
  0x81, 0xd0, 0x4b, 0x8e, 0xcf, 0x91, 0xf0, 0x2e, 0x66, 0x5d, 0xc1, 0xee,
-
  0x0c, 0x7b, 0x64, 0x84, 0x06, 0xcf, 0x47, 0xdc, 0xcb, 0xce, 0x45, 0xdf,
-
  0x18, 0x17, 0x92, 0xed, 0x8c, 0xa3, 0xd2, 0x1d, 0x18, 0x90, 0xd9, 0xe8,
-
  0x78, 0xee, 0xca, 0x83, 0xb8, 0x11, 0x56, 0xc8, 0x5e, 0x28, 0x4f, 0xea,
-
  0xc6, 0xd7, 0xbc, 0xa0, 0x0f, 0x57, 0x21, 0x90, 0x21, 0x2a, 0xda, 0xfd,
-
  0x79, 0xf8, 0x95, 0xcc, 0xc6, 0xb8, 0x15, 0x31, 0x2b, 0x03, 0x4c, 0x16,
-
  0xb8, 0x40, 0x61, 0x4c, 0x81, 0x33, 0x05, 0xa3, 0xda, 0x2d, 0xec, 0x29,
-
  0xba, 0xd7, 0x7c, 0xc0, 0x85, 0x94, 0x8d, 0x95, 0xba, 0x3e, 0x7f, 0x7e,
-
  0x77, 0xfc, 0x2c, 0xca, 0xb3, 0xd2, 0xec, 0x2f, 0x0b, 0x0c, 0x73, 0x29,
-
  0x57, 0x41, 0x17, 0xe1, 0xe8, 0x28, 0xbd, 0xa3, 0x30, 0x30, 0x89, 0xed,
-
  0xf6, 0xf1, 0x76, 0x51, 0x30, 0x89, 0x65, 0x4d, 0x14, 0xd7, 0x33, 0x45,
-
  0x96, 0xd6, 0x33, 0x14, 0x9f, 0xfa, 0xb6, 0x63, 0xbf, 0xd6, 0x99, 0x67,
-
  0x16, 0x72, 0x2f, 0x07, 0x9f, 0x9b, 0xba, 0xf3, 0xf4, 0xf3, 0x63, 0xb7,
-
  0xb0, 0x80, 0x65, 0xb9, 0xc3, 0x78, 0xc0, 0xdd, 0x2a, 0xfa, 0xad, 0x76,
-
  0x91, 0x15, 0xba, 0x46, 0xf7, 0x56, 0x36, 0x60, 0xe2, 0x88, 0x77, 0x41,
-
  0x3c, 0xb9, 0xed, 0xf4, 0xdf, 0x6a, 0xc5, 0xea, 0x71, 0x31, 0x9c, 0x9e,
-
  0x18, 0x7c, 0x7b, 0x6c, 0x80, 0x76, 0xf0, 0xb9, 0xcc, 0x15, 0xbc, 0x56,
-
  0xcd, 0x6f, 0x08, 0x16, 0x84, 0xbc, 0xf6, 0x8a, 0x6b, 0x2a, 0x58, 0x48,
-
  0x7e, 0x00, 0xb0, 0xd4, 0x2a, 0x60, 0xf9, 0x10, 0xaf, 0x98, 0x90, 0x02,
-
  0x40, 0x56, 0x62, 0xb5, 0x66, 0x96, 0x0b, 0x4e, 0x65, 0x38, 0x9c, 0x93,
-
  0x11, 0x7e, 0xb7, 0xff, 0xc1, 0x62, 0xd1, 0xca, 0x8c, 0x74, 0x0e, 0x0b,
-
  0x85, 0x13, 0xd4, 0xc0, 0x46, 0xc7, 0xd8, 0x1a, 0xdb, 0xa5, 0x29, 0x99,
-
  0xa6, 0xe4, 0xf8, 0x9b, 0x3d, 0x38, 0x56, 0x17, 0xe9, 0xe0, 0xa6, 0xce,
-
  0xa2, 0xf0, 0xe4, 0x17, 0xc6, 0x32, 0xa2, 0xf0, 0xa5, 0xf7, 0xf9, 0x9c,
-
  0x51, 0x4d, 0x8e, 0xff, 0xfb, 0x28, 0x38, 0xe8, 0x61, 0xdf, 0xc7, 0xf9,
-
  0x05, 0xba, 0xc6, 0x02, 0xa4, 0xa6, 0xc5, 0xa5, 0x0b, 0x9e, 0x92, 0x02,
-
  0x17, 0x89, 0xcb, 0x82, 0x63, 0xe1, 0x22, 0x79, 0xfd, 0x96, 0x55, 0xbe,
-
  0xdf, 0xd4, 0x84, 0xd6, 0x8e, 0x6e, 0x3f, 0x2d, 0xad, 0xaf, 0xac, 0x09,
-
  0x90, 0xbe, 0x0c, 0x5d, 0x43, 0x23, 0x79, 0xdf, 0x5d, 0xf2, 0xa3, 0x63,
-
  0x65, 0xe5, 0x24, 0xf8, 0x48, 0xbf, 0x0f, 0x86, 0xe4, 0x2e, 0x9a, 0x38,
-
  0x30, 0xe5, 0x9e, 0x81, 0x1f, 0x3c, 0x0b, 0x73, 0x71, 0xa6, 0x46, 0x4c,
-
  0x54, 0x10, 0x39, 0x67, 0x59, 0x0d, 0x4b, 0xc0, 0xf3, 0x5b, 0xb2, 0x13,
-
  0xde, 0x77, 0x46, 0x41, 0x8f, 0x55, 0x42, 0xf1, 0xa7, 0xfd, 0xe8, 0x94,
-
  0x06, 0x07, 0x8a, 0xb1, 0x52, 0xda, 0x7d, 0x51, 0x2f, 0xb9, 0x07, 0xcd,
-
  0x31, 0xa8, 0xea, 0x4c, 0xf0, 0xa9, 0x4c, 0xdc, 0x6a, 0x86, 0x00, 0xa3,
-
  0x03, 0xdc, 0x87, 0xb5, 0x89, 0x2a, 0xe9, 0xee, 0x19, 0x2b, 0xa6, 0x69,
-
  0x57, 0x9c, 0xab, 0x6c, 0x6b, 0xc6, 0x60, 0x58, 0xa2, 0xae, 0x07, 0x49,
-
  0x94, 0xa9, 0x46, 0x78, 0x4f, 0x1b, 0x95, 0x54, 0x93, 0x0e, 0xc8, 0xde,
-
  0x56, 0x32, 0x33, 0xaf, 0xb5, 0xf4, 0x54, 0xc6, 0xb1, 0x8d, 0xa9, 0xaf,
-
  0x31, 0xeb, 0x5e, 0xb0, 0xda, 0x78, 0x21, 0x64, 0x99, 0x0b, 0xcb, 0x4a,
-
  0x61, 0xf2, 0x9a, 0x6a, 0xf0, 0xd8, 0x4d, 0x1f, 0xfc, 0x6f, 0x34, 0xfc,
-
  0x70, 0xef, 0x2b, 0xd4, 0xa6, 0x5c, 0x73, 0xbe, 0x8b, 0x00, 0x60, 0x8f,
-
  0x65, 0x90, 0xb4, 0xa4, 0x51, 0xf2, 0xec, 0x70, 0x09, 0x98, 0x5c, 0xc2,
-
  0x37, 0x6b, 0x53, 0xf0, 0xf1, 0x3b, 0x5c, 0x77, 0x98, 0x93, 0x98, 0x56,
-
  0x78, 0x2d, 0xb9, 0xc2, 0x10, 0x3a, 0x3a, 0x8a, 0x45, 0xa9, 0x11, 0xe1,
-
  0x74, 0xf2, 0xa5, 0x9e, 0x89, 0x94, 0x30, 0x39, 0x30, 0xe2, 0xc5, 0xa5,
-
  0xec, 0x57, 0xd9, 0xf6, 0xa8, 0x18, 0x56, 0xdb, 0x55, 0x35, 0xc1, 0x96,
-
  0x2b, 0x2a, 0xa0, 0xe8, 0x4b, 0x0e, 0xbf, 0xd0, 0x92, 0xc3, 0x40, 0x99,
-
  0x4d, 0xf0, 0x8b, 0x25, 0x0e, 0xc1, 0xab, 0x42, 0x21, 0x27, 0xbf, 0xba,
-
  0x78, 0x3f, 0x4f, 0x33, 0x7d, 0xff, 0x35, 0xbb, 0x84, 0x18, 0x03, 0xd8,
-
  0x82, 0xdd, 0x69, 0x6e, 0xa1, 0xbe, 0x2e, 0x0a, 0x1f, 0x1a, 0x96, 0x71,
-
  0x49, 0xd9, 0xbd, 0x01, 0x33, 0x8d, 0x56, 0x85, 0x1f, 0xeb, 0xf4, 0xab,
-
  0xea, 0xb2, 0x43, 0x86, 0x98, 0x81, 0x3d, 0xd0, 0xb5, 0x12, 0xa3, 0x8d,
-
  0x6a, 0x78, 0xba, 0x71, 0xe6, 0x75, 0xca, 0x4b, 0x17, 0xf3, 0x51, 0x2d,
-
  0xc5, 0x60, 0xaa, 0xc4, 0x13, 0xa8, 0x96, 0xe7, 0x1e, 0x1d, 0x29, 0x3d,
-
  0xd3, 0x2b, 0x6c, 0x9e, 0x72, 0x18, 0x03, 0x65, 0x63, 0x31, 0xa2, 0x72,
-
  0x81, 0xcb, 0xa0, 0xee, 0xa9, 0x2a, 0x14, 0xb8, 0x8d, 0x30, 0x5b, 0xa4,
-
  0x86, 0x99, 0x78, 0x73, 0xe9, 0xb8, 0xa9, 0xe0, 0x15, 0x25, 0xb2, 0x68,
-
  0x3c, 0x82, 0xae, 0x21, 0x3f, 0xea, 0x1c, 0x8b, 0x8b, 0x01, 0x27, 0x5a,
-
  0xd6, 0x28, 0x25, 0x73, 0x40, 0x72, 0xe0, 0x45, 0x1c, 0x18, 0xc9, 0x79,
-
  0x0a, 0x02, 0x24, 0xbb, 0x50, 0xc4, 0x58, 0x82, 0x5a, 0xc3, 0xf8, 0x78,
-
  0xbd, 0x6b, 0x42, 0xa7, 0xe4, 0x04, 0x85, 0xad, 0xcb, 0x87, 0x84, 0x9a,
-
  0xab, 0x17, 0x57, 0xec, 0x14, 0x08, 0x7d, 0xdc, 0x47, 0xe2, 0x51, 0x73,
-
  0xa5, 0x57, 0xf0, 0x6e, 0xed, 0x73, 0x2d, 0x76, 0xcd, 0x81, 0xc6, 0xfa,
-
  0x0e, 0xf2, 0xe8, 0x61, 0x4a, 0x87, 0x4d, 0x32, 0xac, 0x53, 0x84, 0xd5,
-
  0x0e, 0x92, 0x81, 0x82, 0x92, 0x72, 0xed, 0x14, 0x89, 0x5a, 0x38, 0x65,
-
  0xcd, 0x91, 0x63, 0x5b, 0x0d, 0xa3, 0x3c, 0x94, 0x5d, 0x0e, 0xc8, 0x30,
-
  0xf6, 0x7e, 0x3f, 0xd4, 0x13, 0xc5, 0x72, 0xf1, 0x65, 0x03, 0x1c, 0x55,
-
  0xc2, 0xcc, 0x22, 0x80, 0x3b, 0x0a, 0x3e, 0x54, 0x0a, 0xb6, 0x44, 0x09,
-
  0xf5, 0x8c, 0x29, 0x11, 0xf8, 0x14, 0xd1, 0x7c, 0xd8, 0x35, 0x87, 0x2a,
-
  0xa1, 0xba, 0x47, 0x55, 0xcd, 0xa4, 0x38, 0x8a, 0xd4, 0x8e, 0x33, 0x7c,
-
  0xd6, 0xf1, 0xff, 0x21, 0x53, 0xfb, 0xe2, 0xc1, 0x83, 0x63, 0x1b, 0x4f,
-
  0xc2, 0x9d, 0x52, 0xaf, 0x8d, 0xd0, 0x3e, 0x8e, 0x96, 0x77, 0x78, 0x41,
-
  0xc4, 0x2b, 0x59, 0xd3, 0x78, 0x60, 0x71, 0x18, 0x36, 0x35, 0x8b, 0xac,
-
  0xe2, 0xe2, 0x7e, 0xb4, 0xbb, 0xa4, 0x8c, 0x24, 0x0f, 0x1f, 0xf5, 0x1d,
-
  0xf2, 0xaa, 0x1f, 0x46, 0x48, 0xab, 0x44, 0x1f, 0x80, 0x2e, 0x81, 0x8d,
-
  0x98, 0x1f, 0xb7, 0x1e, 0xbe, 0xfd, 0x3f, 0x9e, 0xe2, 0x27, 0x6d, 0x33,
-
  0xd0, 0x32, 0xea, 0xab, 0x97, 0x55, 0x2e, 0x45, 0x59, 0x15, 0x44, 0xe2,
-
  0x54, 0x31, 0x58, 0x05, 0xe0, 0x27, 0xfd, 0xaf, 0xfa, 0x3b, 0x94, 0x1e,
-
  0x0d, 0x8c, 0x9a, 0x54, 0xa8, 0x07, 0x4b, 0xf1, 0x8e, 0x6e, 0x4d, 0xdc,
-
  0x92, 0xc4, 0xe1, 0x8e, 0x61, 0x45, 0xb4, 0xf2, 0x95, 0x15, 0x3c, 0x64,
-
  0xb9, 0x98, 0x57, 0x05, 0x97, 0xc5, 0xa2, 0x31, 0x97, 0x40, 0x99, 0x02,
-
  0xc6, 0xaa, 0x62, 0x29, 0xc4, 0x34, 0xa4, 0x28, 0x62, 0x81, 0x83, 0xc1,
-
  0xff, 0x7e, 0xca, 0x67, 0x20, 0x9e, 0x11, 0xbb, 0x7b, 0x40, 0xd0, 0xa7,
-
  0x34, 0x5c, 0xbc, 0x43, 0x26, 0x57, 0x9e, 0x82, 0xf3, 0xb1, 0x0b, 0x36,
-
  0x89, 0x02, 0xd6, 0x1c, 0xf8, 0x18, 0x41, 0xf0, 0x3e, 0x7f, 0x73, 0xd6,
-
  0x43, 0xaf, 0x4e, 0x8f, 0xf5, 0x53, 0xf2, 0xcf, 0xe4, 0x18, 0xd6, 0x34,
-
  0x2a, 0x2e, 0x7b, 0x12, 0xe5, 0x52, 0x31, 0xd0, 0xce, 0x83, 0x93, 0x59,
-
  0xf2, 0x0a, 0xae, 0xe3, 0x0f, 0xb7, 0xe3, 0x73, 0x5b, 0xea, 0x18, 0x0c,
-
  0xe1, 0xc7, 0xb7, 0x2f, 0x40, 0x58, 0xfa, 0x31, 0x2f, 0x51, 0x85, 0x80,
-
  0x16, 0xde, 0x82, 0x98, 0xa1, 0x25, 0xa7, 0xe0, 0xb6, 0xba, 0x4e, 0x09,
-
  0xc7, 0x65, 0x0b, 0xa5, 0x27, 0x4c, 0x8d, 0xed, 0x5a, 0x20, 0x86, 0x56,
-
  0x81, 0x23, 0x43, 0x36, 0xa6, 0x16, 0x54, 0x02, 0x1b, 0x2c, 0x51, 0xa4,
-
  0x54, 0x28, 0x88, 0x9e, 0x7c, 0x76, 0x78, 0xfa, 0xeb, 0x9b, 0xa3, 0xf3,
-
  0x5f, 0xdf, 0x1e, 0xfe, 0x84, 0xfc, 0x70, 0x9e, 0x4a, 0x7d, 0x1f, 0xaa,
-
  0xf1, 0xc4, 0xf6, 0x69, 0x1c, 0x1d, 0x08, 0xe5, 0x09, 0x15, 0x5d, 0x7e,
-
  0x50, 0x16, 0x45, 0x1d, 0x21, 0xae, 0x86, 0x75, 0xbf, 0xb3, 0x7c, 0xd4,
-
  0xef, 0x40, 0x5c, 0x75, 0xdd, 0x10, 0xb2, 0xea, 0x9d, 0xb0, 0x42, 0xe1,
-
  0xf9, 0x0e, 0x1d, 0x13, 0xf4, 0x02, 0xc0, 0x7f, 0x77, 0x3b, 0x1f, 0xf5,
-
  0x2a, 0x70, 0x85, 0x6c, 0x36, 0xdf, 0xaf, 0x76, 0xd6, 0x45, 0x24, 0x9a,
-
  0x55, 0xe1, 0xf5, 0xc0, 0x3d, 0xe7, 0xbd, 0xba, 0xa8, 0x92, 0xa7, 0x71,
-
  0xc5, 0xa9, 0xc3, 0xc9, 0x84, 0xf0, 0x28, 0xe0, 0xe8, 0x61, 0x51, 0x47,
-
  0x0c, 0x04, 0x38, 0x93, 0x1c, 0xe7, 0xcd, 0xf3, 0x93, 0xb3, 0x2d, 0x96,
-
  0x67, 0x18, 0x37, 0x02, 0xcf, 0xc3, 0x79, 0x99, 0x22, 0x98, 0x59, 0xf2,
-
  0x6c, 0x42, 0x31, 0x85, 0x76, 0x5d, 0x22, 0x14, 0x82, 0x0f, 0xaf, 0x15,
-
  0x08, 0x14, 0x89, 0xe2, 0x60, 0xf9, 0x52, 0xbb, 0xb6, 0xe8, 0x9b, 0x14,
-
  0xb3, 0x12, 0x41, 0x4e, 0x19, 0xca, 0x56, 0x18, 0xd4, 0xc3, 0x6e, 0x70,
-
  0x51, 0xed, 0x3d, 0x7a, 0x44, 0x19, 0x49, 0xa1, 0x90, 0x85, 0x31, 0x51,
-
  0xe5, 0x9a, 0xcf, 0xce, 0x76, 0xba, 0xf0, 0x63, 0x17, 0x7f, 0x80, 0xb2,
-
  0x0a, 0x3f, 0xf7, 0xf1, 0xd7, 0x87, 0xf8, 0xe3, 0x11, 0xfd, 0xfd, 0x18,
-
  0x7f, 0xfd, 0x12, 0x7e, 0x3d, 0x7c, 0xb1, 0x0b, 0x8f, 0xc1, 0xcf, 0x3d,
-
  0xfa, 0xb9, 0x4f, 0x1f, 0xed, 0xa9, 0xc1, 0x1d, 0x7e, 0xa5, 0xcf, 0xf7,
-
  0xf6, 0xf1, 0xe7, 0xfe, 0x2e, 0x7d, 0xbb, 0x4f, 0x1f, 0xed, 0xd3, 0x47,
-
  0x0f, 0xf9, 0xa3, 0x87, 0xf4, 0xd1, 0x43, 0xf8, 0xe8, 0xe8, 0x05, 0x7c,
-
  0xf0, 0xe3, 0xc9, 0xf1, 0xb3, 0xa3, 0xde, 0xe1, 0xf3, 0xd7, 0xc7, 0xe7,
-
  0xd2, 0xd0, 0xd1, 0xb3, 0x73, 0x78, 0x12, 0x7e, 0xa2, 0x45, 0xed, 0xd9,
-
  0x51, 0x37, 0x79, 0x05, 0xff, 0x4f, 0x5e, 0x9d, 0xfc, 0xf4, 0xec, 0xe4,
-
  0xec, 0xbc, 0x8b, 0xbf, 0x3c, 0x3f, 0x7a, 0x75, 0xf8, 0x57, 0xf8, 0xec,
-
  0xfc, 0xe5, 0xdb, 0x93, 0x77, 0x3f, 0xbc, 0x3c, 0x7d, 0x07, 0x1f, 0x27,
-
  0x6f, 0x8f, 0x5e, 0x1d, 0x1f, 0x7e, 0x7f, 0xfc, 0xea, 0xf8, 0xfc, 0xaf,
-
  0xd2, 0xd0, 0xeb, 0xe3, 0x37, 0xf8, 0x8a, 0x10, 0x39, 0xef, 0xe0, 0x5d,
-
  0xc5, 0x10, 0x1a, 0xe5, 0xd1, 0xac, 0xce, 0xcb, 0xdd, 0xf1, 0x89, 0xd2,
-
  0x01, 0xac, 0xda, 0x3a, 0x61, 0x2a, 0xc4, 0x8a, 0x23, 0x2f, 0x44, 0x3d,
-
  0x9c, 0x83, 0xa4, 0x40, 0x26, 0x65, 0xb9, 0xc1, 0xaf, 0x26, 0xe9, 0x8c,
-
  0xad, 0x06, 0x70, 0x9e, 0x1d, 0x29, 0x8e, 0xab, 0xde, 0x05, 0x30, 0x70,
-
  0xf4, 0xb6, 0x3d, 0x05, 0xb1, 0x5d, 0xa9, 0xf1, 0xf8, 0xf4, 0x05, 0x90,
-
  0xdc, 0x59, 0x8c, 0x45, 0xae, 0x0f, 0x4a, 0x8c, 0x9e, 0x10, 0xe4, 0x0b,
-
  0x11, 0xca, 0x8e, 0x4f, 0xdf, 0x9c, 0x89, 0xfd, 0x0d, 0x13, 0x59, 0x23,
-
  0x90, 0x06, 0x93, 0x1f, 0x43, 0xa4, 0x4b, 0xa4, 0x63, 0x71, 0xc2, 0x56,
-
  0x40, 0xdf, 0xc3, 0x56, 0x7f, 0xfd, 0xe1, 0xf0, 0xfc, 0xe8, 0xa7, 0xc3,
-
  0xbf, 0x6a, 0x59, 0xcb, 0xab, 0xbc, 0x2c, 0x66, 0xec, 0xb8, 0xb8, 0x4a,
-
  0xcb, 0x5c, 0xf4, 0x5d, 0x12, 0xb9, 0x30, 0x7b, 0x06, 0xe9, 0x5a, 0xec,
-
  0x5d, 0x9d, 0xff, 0xdf, 0x76, 0x1f, 0x67, 0xb6, 0x2d, 0x03, 0xee, 0xf8,
-
  0xac, 0xf1, 0xcb, 0x62, 0xa2, 0x75, 0x2e, 0x6d, 0x42, 0xa8, 0xaf, 0x70,
-
  0xe8, 0xa0, 0xe3, 0x65, 0x28, 0x32, 0x20, 0xa3, 0xd3, 0xfa, 0xf0, 0x34,
-
  0x53, 0x5c, 0x54, 0xb1, 0x10, 0xe8, 0xcb, 0x1c, 0x6a, 0x60, 0x61, 0x22,
-
  0x69, 0x5c, 0x8e, 0x73, 0x31, 0x43, 0xbb, 0x3b, 0x01, 0x58, 0xc1, 0x26,
-
  0x52, 0x4b, 0xc8, 0x80, 0x0e, 0x9e, 0xec, 0x3c, 0xd9, 0xe9, 0xf4, 0x93,
-
  0x43, 0x2e, 0x1a, 0xa2, 0x32, 0x2e, 0x81, 0xbe, 0x51, 0xf8, 0xf6, 0xa4,
-
  0x28, 0xde, 0x37, 0x6b, 0x8c, 0xc7, 0xdb, 0xd5, 0xda, 0xa4, 0x96, 0x82,
-
  0xc4, 0x27, 0xe1, 0xcb, 0x41, 0x3a, 0xbe, 0x19, 0x64, 0xf9, 0x45, 0x7a,
-
  0x31, 0x7a, 0x34, 0x9b, 0xce, 0x66, 0x7b, 0xf9, 0x4d, 0xb5, 0x37, 0xde,
-
  0x0f, 0xec, 0x01, 0x65, 0x52, 0xce, 0x83, 0xa2, 0x1a, 0x30, 0x16, 0xfb,
-
  0x9d, 0xc8, 0xc6, 0x4a, 0x67, 0x95, 0x85, 0x7f, 0x30, 0x03, 0xd1, 0x01,
-
  0x0b, 0xd9, 0x2a, 0x8d, 0x62, 0xaf, 0xfd, 0x0b, 0xb8, 0x54, 0x16, 0x83,
-
  0x7e, 0x5e, 0x6c, 0x73, 0x5b, 0x3a, 0xe0, 0x1e, 0x6d, 0x72, 0x56, 0x6e,
-
  0xc7, 0x4b, 0x5c, 0x88, 0xab, 0xe4, 0xa2, 0x90, 0x60, 0x4f, 0x8d, 0x6f,
-
  0xd6, 0x79, 0xde, 0x58, 0x3e, 0x1c, 0xab, 0xf5, 0xe9, 0x75, 0xaa, 0x95,
-
  0xa4, 0x1d, 0x04, 0x9b, 0x84, 0xab, 0xa2, 0x65, 0x8d, 0x05, 0x77, 0x4e,
-
  0x19, 0xe1, 0x36, 0x54, 0x9e, 0x99, 0x32, 0x4a, 0x3a, 0x96, 0xd3, 0x25,
-
  0x7d, 0x11, 0x15, 0x28, 0x5a, 0x3f, 0x6e, 0x48, 0x27, 0xcb, 0x6a, 0x2b,
-
  0x36, 0x4b, 0x56, 0x57, 0xcc, 0x8a, 0xc6, 0x88, 0x0c, 0x4c, 0x92, 0x47,
-
  0x89, 0x24, 0x1e, 0x5f, 0xa5, 0xc5, 0xf1, 0x86, 0xb8, 0x6f, 0x5a, 0x1a,
-
  0x0f, 0xed, 0x25, 0x39, 0x29, 0x74, 0x83, 0xcc, 0xab, 0x07, 0x82, 0xfc,
-
  0xc4, 0x22, 0x8e, 0x26, 0x81, 0x0a, 0xda, 0xa0, 0x16, 0x96, 0x72, 0x70,
-
  0xa6, 0x2c, 0x30, 0x45, 0x41, 0x28, 0x5c, 0x44, 0x23, 0x45, 0x32, 0x84,
-
  0xb3, 0xc4, 0xde, 0xae, 0x42, 0x62, 0x41, 0x44, 0xea, 0xc1, 0xe1, 0x34,
-
  0xb2, 0x69, 0x0d, 0x3c, 0xf0, 0xaf, 0xfc, 0xfa, 0x8d, 0xe2, 0xc6, 0xd5,
-
  0x0c, 0xa2, 0x81, 0xe7, 0xe8, 0x9a, 0xe1, 0x18, 0x38, 0x09, 0x05, 0xd5,
-
  0x63, 0xa0, 0xce, 0x04, 0xeb, 0xa3, 0x5e, 0xa4, 0xc1, 0x34, 0x32, 0xd4,
-
  0x6c, 0x34, 0xd8, 0x8c, 0x8b, 0x22, 0x91, 0x3d, 0xeb, 0xd0, 0x9a, 0x63,
-
  0x2c, 0x79, 0xc7, 0x2d, 0xfa, 0x79, 0x08, 0xe7, 0xa1, 0x51, 0xd3, 0x52,
-
  0xab, 0x53, 0x81, 0xd4, 0xe2, 0x9b, 0xc8, 0x53, 0x87, 0xcb, 0xd0, 0x27,
-
  0xcb, 0x61, 0x45, 0x01, 0x57, 0xfc, 0x21, 0x28, 0xe8, 0x68, 0x27, 0x24,
-
  0xb8, 0x9b, 0x99, 0xec, 0x2e, 0x52, 0xc3, 0x95, 0xe6, 0xd3, 0x69, 0xd7,
-
  0x0d, 0x62, 0xc4, 0x17, 0x89, 0x0d, 0xf4, 0xeb, 0x6c, 0x78, 0xb9, 0x6d,
-
  0xd5, 0x0d, 0xb7, 0xf1, 0x01, 0x65, 0x0d, 0xdb, 0x7f, 0x90, 0xf6, 0x7a,
-
  0x57, 0x55, 0xcf, 0x5a, 0xf2, 0xf2, 0x8c, 0x3f, 0x72, 0x77, 0xd4, 0xc7,
-
  0xfb, 0x88, 0xda, 0x37, 0x4b, 0xfc, 0xbe, 0x71, 0xb0, 0x1b, 0x1c, 0x5f,
-
  0xcf, 0xf3, 0x32, 0xe7, 0x5f, 0x8a, 0x4f, 0xa4, 0xfc, 0x15, 0x62, 0xf9,
-
  0x70, 0xa2, 0x17, 0xa9, 0x41, 0x7b, 0x3e, 0x24, 0xc3, 0xdb, 0xfc, 0xea,
-
  0x61, 0x70, 0xce, 0x35, 0x41, 0xa8, 0xd8, 0xdb, 0xc2, 0xf9, 0x8f, 0x2c,
-
  0x06, 0x73, 0x79, 0x5f, 0x35, 0x17, 0x74, 0x83, 0xc7, 0x65, 0x59, 0x3d,
-
  0xc7, 0xd8, 0x68, 0x16, 0x3e, 0x1a, 0xf6, 0x4d, 0xe8, 0x72, 0x65, 0x84,
-
  0x67, 0x4b, 0xf0, 0xc1, 0x1d, 0xeb, 0x04, 0x8d, 0xdd, 0x11, 0x12, 0xd7,
-
  0xe2, 0x72, 0x6b, 0xda, 0xda, 0xa9, 0xa1, 0xc7, 0x6e, 0xdd, 0x9a, 0x01,
-
  0x82, 0x2d, 0x5e, 0xb1, 0xc7, 0xb2, 0x7e, 0x8f, 0xa3, 0xf5, 0x7b, 0x7c,
-
  0xaf, 0xeb, 0x87, 0x1b, 0xe2, 0xd2, 0x80, 0x4b, 0x55, 0x46, 0x4a, 0x3e,
-
  0xb2, 0x62, 0x29, 0x19, 0x49, 0x88, 0x3f, 0x2f, 0xb7, 0xb8, 0x56, 0x55,
-
  0x6d, 0x09, 0xc1, 0x6a, 0x03, 0x2b, 0xbf, 0xac, 0xbc, 0x86, 0xc6, 0x1b,
-
  0x86, 0x1b, 0xa3, 0x54, 0x76, 0xa6, 0x88, 0x40, 0x3a, 0xea, 0x08, 0x66,
-
  0x61, 0x04, 0x54, 0x68, 0xb9, 0x83, 0x73, 0xe0, 0x04, 0xa2, 0x12, 0xcc,
-
  0x17, 0xe5, 0xbc, 0xa8, 0x08, 0x6b, 0x6a, 0x9a, 0x0e, 0x4f, 0xce, 0xf8,
-
  0x2e, 0x26, 0xf3, 0x16, 0x2b, 0xe1, 0xa3, 0x82, 0x55, 0x9b, 0xb6, 0x98,
-
  0x31, 0x5c, 0xc7, 0xdf, 0xed, 0xcb, 0xa1, 0x46, 0xee, 0x89, 0x18, 0x1e,
-
  0x7e, 0x1c, 0x31, 0xf4, 0x7e, 0xab, 0xa0, 0xd5, 0xa8, 0xd6, 0x67, 0xc0,
-
  0x6a, 0x92, 0xa2, 0x35, 0x66, 0xee, 0xf8, 0xaf, 0xb3, 0x93, 0x37, 0x52,
-
  0x9b, 0x13, 0xa5, 0x89, 0x18, 0xa6, 0x56, 0x42, 0x3e, 0x82, 0x5f, 0x5e,
-
  0x71, 0xa4, 0xa5, 0x8f, 0x50, 0x36, 0x83, 0x82, 0x0c, 0x30, 0xcf, 0x6f,
-
  0xb8, 0x90, 0xa8, 0x8b, 0xb9, 0x4b, 0xe7, 0xe6, 0x6c, 0x75, 0xf8, 0xa7,
-
  0xcc, 0xa2, 0xa4, 0x41, 0xaa, 0x28, 0xf7, 0x20, 0x06, 0xde, 0xfd, 0x5b,
-
  0x5a, 0x5e, 0xfc, 0x42, 0x9f, 0x4a, 0x4e, 0x70, 0xc7, 0x8a, 0x7b, 0x83,
-
  0xea, 0x71, 0xe0, 0x23, 0x9c, 0xb6, 0x71, 0x10, 0x9d, 0xe8, 0x59, 0x0e,
-
  0x7e, 0x6f, 0x7b, 0xca, 0x4b, 0x15, 0x9c, 0xea, 0x10, 0xd9, 0xcb, 0xcd,
-
  0x18, 0x4c, 0xe8, 0x08, 0xc4, 0xbf, 0xb4, 0x62, 0x29, 0x5c, 0x8b, 0x94,
-
  0x48, 0x41, 0x4b, 0xa5, 0xf4, 0x66, 0xcf, 0xb3, 0x11, 0x02, 0x9f, 0x13,
-
  0x1f, 0x4f, 0x43, 0x4a, 0x4b, 0x18, 0x18, 0x33, 0x24, 0x98, 0x87, 0x92,
-
  0x6c, 0x9c, 0xe7, 0x98, 0x7c, 0xd7, 0xd5, 0x6c, 0xb7, 0x2a, 0xae, 0x5e,
-
  0x27, 0xbc, 0xc7, 0x92, 0x2d, 0xb8, 0xe2, 0xdf, 0xc8, 0x95, 0xe1, 0x42,
-
  0x03, 0x1f, 0xe5, 0x49, 0x5a, 0xee, 0x24, 0x27, 0x55, 0x6e, 0xf6, 0xb6,
-
  0x50, 0xde, 0xa4, 0xfe, 0xaf, 0x43, 0x7e, 0xad, 0x78, 0xc6, 0x5b, 0x1a,
-
  0x11, 0x38, 0x83, 0xe4, 0xb4, 0x10, 0xcb, 0x47, 0xf8, 0xc6, 0xac, 0xc0,
-
  0x58, 0x24, 0x98, 0x1b, 0xda, 0x18, 0x17, 0xc5, 0x20, 0x2d, 0x37, 0x14,
-
  0x0d, 0x85, 0x70, 0x2e, 0xb4, 0xde, 0x9e, 0x79, 0x0c, 0x89, 0x44, 0xbe,
-
  0xe3, 0x47, 0xc5, 0xe2, 0x5e, 0x34, 0x70, 0x85, 0x6d, 0x24, 0x8d, 0x81,
-
  0x74, 0x49, 0x86, 0xd7, 0x26, 0x7a, 0x2b, 0xf2, 0x41, 0x2c, 0x75, 0x83,
-
  0x6a, 0xcc, 0xb1, 0xef, 0xac, 0x20, 0x18, 0xbb, 0x99, 0x03, 0x9c, 0x89,
-
  0x52, 0x56, 0xbb, 0x0e, 0xf6, 0x6e, 0x34, 0xca, 0xd9, 0xd7, 0xcb, 0xbd,
-
  0xcf, 0x73, 0x84, 0x71, 0x23, 0x81, 0x13, 0xd8, 0x0e, 0x5a, 0xf8, 0x19,
-
  0x8c, 0x44, 0x62, 0x07, 0xac, 0xf6, 0x98, 0xb8, 0x2d, 0x02, 0xfa, 0x89,
-
  0x73, 0xa1, 0x9c, 0x3b, 0xe4, 0xaa, 0xc8, 0x1e, 0x5f, 0x21, 0x96, 0xa3,
-
  0x6a, 0xb4, 0x52, 0xd1, 0x6c, 0x94, 0xcd, 0xec, 0x94, 0x1b, 0x7a, 0xa3,
-
  0xdd, 0xca, 0x78, 0x3b, 0xea, 0x0a, 0xc8, 0x7b, 0xcb, 0xc9, 0x2f, 0x1f,
-
  0x99, 0x0f, 0xcf, 0xad, 0x6d, 0xfc, 0x33, 0xe9, 0x8c, 0x40, 0xc5, 0x7e,
-
  0xdf, 0x39, 0x48, 0x3a, 0x43, 0x8c, 0xd6, 0xeb, 0x24, 0xff, 0xda, 0xb8,
-
  0xdb, 0xd6, 0xd0, 0x7c, 0x79, 0xc3, 0x3e, 0xfb, 0xf8, 0x66, 0xbe, 0x43,
-
  0x78, 0xa4, 0x14, 0x0d, 0xe1, 0x6b, 0x3e, 0xdf, 0x6b, 0x95, 0x3c, 0x9e,
-
  0x26, 0xf8, 0x2d, 0xa6, 0xd3, 0x7c, 0x62, 0xdc, 0x39, 0xda, 0x84, 0xd7,
-
  0x29, 0xac, 0x1e, 0x87, 0xad, 0x3c, 0x21, 0xc0, 0xbc, 0x46, 0xcc, 0xb9,
-
  0x67, 0x62, 0x51, 0x43, 0xf4, 0x45, 0x99, 0x5e, 0x2b, 0x7f, 0xfe, 0x0d,
-
  0x2f, 0xeb, 0xdf, 0x16, 0xb3, 0xf7, 0x3d, 0xb8, 0xa1, 0x30, 0x4c, 0xa1,
-
  0x37, 0x04, 0x7d, 0xca, 0x80, 0x34, 0x3d, 0xb0, 0xb9, 0x66, 0x9f, 0x59,
-
  0xfa, 0x19, 0x1d, 0x18, 0x79, 0x5c, 0x93, 0x9c, 0x24, 0x08, 0xc3, 0xf2,
-
  0xe6, 0x1a, 0xe1, 0x3d, 0xac, 0xcb, 0x62, 0xdc, 0x44, 0x5e, 0x0d, 0x29,
-
  0x7a, 0x15, 0xd3, 0xc4, 0x3b, 0xd2, 0xb7, 0x36, 0xd6, 0x51, 0x35, 0x04,
-
  0x6f, 0x3a, 0xf6, 0xdb, 0x99, 0xf7, 0x4c, 0x6a, 0x91, 0xa4, 0x95, 0xe8,
-
  0xb0, 0xb3, 0xec, 0x1a, 0x29, 0x9f, 0xdf, 0x47, 0xab, 0x21, 0x72, 0x38,
-
  0xca, 0xd1, 0x03, 0x16, 0x9d, 0xa3, 0x3a, 0x3a, 0x28, 0x8b, 0xeb, 0x8a,
-
  0x5c, 0xe4, 0xd2, 0xa9, 0x9e, 0x96, 0x4a, 0x82, 0x62, 0x6d, 0x0a, 0x22,
-
  0x91, 0x30, 0x7e, 0x8d, 0xaa, 0x7b, 0xc3, 0x49, 0x41, 0x26, 0x46, 0xf2,
-
  0x50, 0xf7, 0xa3, 0x88, 0x0b, 0x5d, 0xd4, 0xb6, 0xf5, 0x5b, 0xab, 0xb6,
-
  0xc5, 0x9d, 0x25, 0x75, 0xda, 0x5a, 0xbe, 0xfd, 0xae, 0x6f, 0x1d, 0x4b,
-
  0x6f, 0xa0, 0x93, 0x5c, 0x1f, 0xdb, 0x81, 0x5f, 0x30, 0xe0, 0x58, 0xfc,
-
  0xa3, 0xf7, 0x5b, 0x1a, 0xaa, 0x05, 0xbf, 0xcf, 0xe0, 0xd0, 0x4c, 0xb0,
-
  0x10, 0xf1, 0x10, 0xab, 0x79, 0x0b, 0xca, 0xea, 0xb7, 0xda, 0x4e, 0x2d,
-
  0x35, 0xce, 0x3e, 0xe4, 0xd3, 0xc5, 0xd4, 0x41, 0x79, 0xd9, 0x6b, 0xa8,
-
  0x20, 0x0c, 0x60, 0x6c, 0x58, 0x63, 0x4b, 0xee, 0x19, 0x2e, 0x22, 0x8d,
-
  0xc6, 0x58, 0x8b, 0x43, 0x9c, 0x15, 0x21, 0x15, 0x4c, 0x23, 0x05, 0xca,
-
  0x62, 0x3e, 0x57, 0xc3, 0xc4, 0x12, 0x58, 0xa3, 0x83, 0x4c, 0x24, 0xbe,
-
  0x35, 0xb9, 0x89, 0xbd, 0xae, 0xf0, 0xc2, 0x6f, 0x12, 0x58, 0xa3, 0xeb,
-
  0x1c, 0x66, 0x82, 0x5b, 0xd5, 0x1a, 0x32, 0x24, 0x41, 0xf0, 0x62, 0x44,
-
  0x27, 0x72, 0xa0, 0x4f, 0xc9, 0x30, 0x8d, 0x31, 0xef, 0xff, 0xf9, 0xfd,
-
  0xd9, 0xf3, 0x6d, 0x12, 0xef, 0xf0, 0x2f, 0x31, 0x98, 0x73, 0x43, 0xdf,
-
  0x7e, 0x43, 0x36, 0xd4, 0xdd, 0xc7, 0x7b, 0x5f, 0x7d, 0xd5, 0x4d, 0xce,
-
  0x8a, 0x49, 0x5a, 0x42, 0x63, 0xbb, 0xbb, 0x7d, 0x50, 0x34, 0x68, 0x79,
-
  0xe1, 0xa2, 0x46, 0x63, 0xcd, 0xe1, 0xf1, 0x5f, 0xe0, 0x83, 0x97, 0xa7,
-
  0xbd, 0x77, 0x7f, 0xa1, 0x8f, 0xa7, 0xe4, 0xbb, 0x5d, 0x0e, 0x91, 0x5b,
-
  0x2a, 0xca, 0x43, 0x94, 0x12, 0xd6, 0xb5, 0x61, 0x37, 0x43, 0xdc, 0xfd,
-
  0x99, 0x03, 0x6a, 0xa0, 0xf3, 0x24, 0x4d, 0x19, 0x50, 0x32, 0x1e, 0xe7,
-
  0xaf, 0x34, 0xb5, 0x38, 0xde, 0xd9, 0x10, 0x81, 0xb2, 0xbe, 0x42, 0xb7,
-
  0x96, 0xe9, 0x2e, 0xee, 0x66, 0xff, 0xd3, 0xec, 0x77, 0xf1, 0xde, 0x85,
-
  0x0c, 0x01, 0xfb, 0xbc, 0x85, 0x5e, 0xe9, 0xc9, 0xa7, 0x82, 0xfd, 0xdd,
-
  0x20, 0x58, 0x4e, 0x4e, 0x4d, 0xe3, 0x20, 0x30, 0xf6, 0x04, 0xa0, 0xc0,
-
  0x50, 0x66, 0x54, 0xc9, 0x2f, 0x1f, 0x51, 0xa5, 0x4e, 0x09, 0x19, 0x90,
-
  0x7b, 0x97, 0x1b, 0x5a, 0xa2, 0x6f, 0xf1, 0x1c, 0x73, 0xc3, 0x6a, 0x2e,
-
  0x76, 0x39, 0xb1, 0xe1, 0x05, 0x79, 0xa3, 0x6f, 0xf0, 0xaf, 0x44, 0x74,
-
  0x01, 0xd6, 0x3a, 0xc0, 0xf2, 0x31, 0xf5, 0x89, 0xe3, 0x05, 0x25, 0xa4,
-
  0xea, 0x06, 0x04, 0x99, 0x69, 0x25, 0xf1, 0xee, 0x71, 0x29, 0xfb, 0x0e,
-
  0x9c, 0xb0, 0x5f, 0xff, 0x74, 0x74, 0x74, 0x7a, 0xfc, 0xfc, 0xd5, 0x91,
-
  0x80, 0x30, 0xd9, 0x47, 0x6f, 0xce, 0x7f, 0x7c, 0xd5, 0x41, 0x44, 0x9d,
-
  0xe1, 0xfb, 0x4c, 0x31, 0x28, 0xaa, 0x64, 0x13, 0x6d, 0x11, 0xd4, 0x0a,
-
  0x13, 0x38, 0x37, 0xe4, 0x69, 0x5c, 0x28, 0x1c, 0x08, 0x56, 0x08, 0xba,
-
  0xab, 0x20, 0xa8, 0x44, 0xcb, 0x4c, 0xcc, 0x4c, 0xcb, 0xfc, 0x05, 0x52,
-
  0xf3, 0x96, 0x4c, 0xed, 0x4f, 0x4d, 0x5a, 0x4d, 0x34, 0x09, 0x07, 0x99,
-
  0x41, 0xc2, 0x30, 0xef, 0xa4, 0x19, 0x65, 0x35, 0x15, 0xb1, 0x2c, 0x8b,
-
  0xf7, 0xe4, 0x90, 0xa9, 0x59, 0xc6, 0xb7, 0xa8, 0x3f, 0xda, 0x87, 0xb0,
-
  0x53, 0x0a, 0xe7, 0xeb, 0x60, 0xde, 0xa9, 0xc8, 0x37, 0x74, 0xb0, 0xb4,
-
  0xca, 0xb1, 0xe8, 0x34, 0xca, 0x86, 0x38, 0x8b, 0x25, 0xa6, 0xc2, 0x5c,
-
  0x9f, 0xf6, 0x01, 0x14, 0xb7, 0x11, 0xa3, 0x28, 0x0a, 0xda, 0x0d, 0x8b,
-
  0xd9, 0xd3, 0x29, 0xab, 0x95, 0x4f, 0xe4, 0xc2, 0x0c, 0x8b, 0xb4, 0x0d,
-
  0x6b, 0xb0, 0xd5, 0x4d, 0xbe, 0x4a, 0x36, 0x69, 0x11, 0xe9, 0x4f, 0x14,
-
  0x8f, 0x1f, 0x6d, 0xef, 0xee, 0x24, 0x9b, 0xb2, 0x80, 0x5b, 0x5d, 0x21,
-
  0x10, 0x8a, 0x6e, 0xa1, 0x71, 0x2b, 0x48, 0x0a, 0x89, 0x59, 0x58, 0xce,
-
  0xe9, 0x82, 0x23, 0x3f, 0x22, 0x0b, 0xb1, 0xe4, 0xa5, 0xca, 0x39, 0xee,
-
  0x44, 0x67, 0xa9, 0x23, 0x00, 0x89, 0x91, 0x72, 0x70, 0x4b, 0x51, 0xaf,
-
  0x3b, 0xf9, 0x47, 0xcc, 0x40, 0x34, 0xc4, 0xc7, 0x58, 0x63, 0xc4, 0x45,
-
  0x92, 0xe4, 0xf1, 0x0e, 0xdd, 0xae, 0x8a, 0xac, 0x0f, 0x0d, 0xe8, 0x3d,
-
  0xd9, 0x38, 0x82, 0xb7, 0x18, 0x89, 0x7e, 0xa7, 0x95, 0xa8, 0xd1, 0xd1,
-
  0xde, 0x9a, 0x68, 0xe9, 0x7e, 0x19, 0xba, 0x4b, 0x1c, 0x4a, 0x6d, 0x45,
-
  0x1f, 0xf4, 0x9a, 0xd0, 0x49, 0xdd, 0x24, 0x4f, 0xe1, 0xc7, 0xb7, 0x3e,
-
  0x46, 0xeb, 0xec, 0xe5, 0x16, 0x26, 0xaa, 0x5c, 0x61, 0x68, 0x0e, 0x3e,
-
  0xa0, 0x6a, 0x53, 0x5f, 0x2b, 0xf4, 0x08, 0xda, 0xa3, 0xcc, 0x9f, 0xf1,
-
  0x24, 0x31, 0x89, 0xe8, 0xca, 0xaa, 0xd3, 0xe3, 0x6b, 0x14, 0xdc, 0x42,
-
  0xae, 0x50, 0x09, 0x99, 0x97, 0xb8, 0x38, 0x0a, 0xb9, 0x39, 0x7b, 0xd9,
-
  0x25, 0x43, 0x3e, 0x5a, 0x49, 0xdc, 0xf6, 0xb0, 0x9f, 0xa0, 0x0e, 0x60,
-
  0xe8, 0xbc, 0x5b, 0x1e, 0xed, 0x8a, 0xa8, 0x6b, 0x94, 0x8f, 0x28, 0x5f,
-
  0x50, 0xb2, 0x82, 0x04, 0x59, 0xfc, 0x80, 0x96, 0x11, 0xfd, 0x02, 0x55,
-
  0x75, 0xb9, 0x9d, 0x8f, 0x7e, 0x2d, 0xab, 0xd4, 0x60, 0xdc, 0xc2, 0xa7,
-
  0x23, 0xfc, 0x34, 0xe9, 0xf4, 0xed, 0x09, 0xf9, 0x1d, 0x3f, 0x6f, 0x01,
-
  0x2c, 0xe0, 0xf0, 0x4f, 0x45, 0xf1, 0x3f, 0x81, 0x53, 0x74, 0x76, 0xf6,
-
  0x0a, 0x1d, 0xe4, 0x65, 0x8a, 0xd1, 0x37, 0xca, 0x22, 0xb3, 0xd9, 0x05,
-
  0x59, 0x9b, 0xe7, 0xef, 0x87, 0xd5, 0xee, 0xae, 0xa9, 0xb7, 0xf2, 0xa7,
-
  0xac, 0x15, 0x05, 0xf4, 0x9b, 0xef, 0xc0, 0xca, 0x2e, 0x9c, 0xfe, 0xe9,
-
  0xd9, 0xd9, 0x1f, 0xe0, 0xa9, 0x77, 0x6f, 0x8f, 0x93, 0x4d, 0x2c, 0x52,
-
  0xf0, 0xe5, 0xa3, 0xdd, 0xbd, 0x2d, 0x3d, 0x47, 0x4e, 0x06, 0xa0, 0x20,
-
  0xd4, 0xe0, 0x2b, 0x96, 0x35, 0xe7, 0xf5, 0x26, 0xe0, 0x32, 0x15, 0xad,
-
  0x43, 0x9b, 0xe2, 0x27, 0xe6, 0x62, 0x9d, 0x0e, 0x40, 0x26, 0xe0, 0x47,
-
  0xb3, 0x08, 0xdf, 0xe1, 0x91, 0x1e, 0x74, 0x70, 0x88, 0x56, 0x9a, 0x84,
-
  0x02, 0x6c, 0x2a, 0xdf, 0x1c, 0x8c, 0xb1, 0x6f, 0x6b, 0x14, 0x0f, 0xdd,
-
  0x1f, 0x0a, 0x99, 0x1b, 0xed, 0x5f, 0xaf, 0x27, 0x8b, 0x13, 0xe7, 0x61,
-
  0x99, 0x8e, 0x26, 0x5d, 0x77, 0x98, 0x20, 0x50, 0xf1, 0x4d, 0xbd, 0xcf,
-
  0x4d, 0x57, 0x98, 0xc8, 0xb5, 0x57, 0x93, 0xdf, 0x74, 0x45, 0x43, 0x47,
-
  0x6f, 0x7e, 0xe8, 0xb0, 0x93, 0xa8, 0x73, 0xfa, 0xf6, 0xe4, 0xc7, 0x0e,
-
  0x3b, 0x8b, 0xa8, 0x4d, 0x6a, 0xd4, 0xb5, 0xba, 0xc9, 0x0c, 0x91, 0x68,
-
  0x0a, 0x39, 0x81, 0x6c, 0x6c, 0x94, 0x36, 0xb1, 0xd5, 0x42, 0x0e, 0x0d,
-
  0x7a, 0x80, 0x23, 0x48, 0xf1, 0x37, 0x84, 0xb2, 0xc7, 0x75, 0xb4, 0xa1,
-
  0xf7, 0x33, 0xa9, 0x64, 0x67, 0x59, 0x65, 0xcb, 0x99, 0x02, 0x1c, 0x75,
-
  0x29, 0xb1, 0x80, 0x78, 0xee, 0x5c, 0x38, 0xe0, 0xa6, 0xe4, 0x8b, 0x66,
-
  0xf5, 0x70, 0x0b, 0x45, 0x43, 0x44, 0x0c, 0x36, 0x10, 0x15, 0x35, 0x28,
-
  0x92, 0x53, 0x80, 0x15, 0x6a, 0x47, 0x05, 0xec, 0x3d, 0xb1, 0xf2, 0xba,
-
  0x1a, 0x5a, 0xa7, 0xa1, 0x66, 0xf0, 0x08, 0x0c, 0x0d, 0x29, 0x44, 0x09,
-
  0x94, 0x37, 0x70, 0x4f, 0x6c, 0x13, 0x1e, 0xab, 0x86, 0xb1, 0x48, 0x43,
-
  0x9c, 0x5e, 0x5f, 0x60, 0xd7, 0xb1, 0x9b, 0xcf, 0x07, 0xda, 0x42, 0xf1,
-
  0x48, 0x3e, 0x3a, 0x90, 0x3b, 0x24, 0x73, 0xd3, 0x5a, 0x8c, 0xd0, 0x88,
-
  0x44, 0xa4, 0xff, 0xcc, 0x95, 0x4a, 0xb5, 0xef, 0x9e, 0xe2, 0x4f, 0xc7,
-
  0xf5, 0x08, 0xb8, 0xc0, 0x2d, 0xa3, 0x2c, 0x07, 0x3e, 0xd5, 0x0f, 0x98,
-
  0x1d, 0x86, 0x8f, 0x89, 0x4d, 0x08, 0xdf, 0xa3, 0x46, 0x1b, 0x42, 0xe6,
-
  0xdc, 0x71, 0x4f, 0x32, 0x8d, 0x3e, 0x3f, 0x7a, 0xdb, 0x4d, 0x4e, 0x8f,
-
  0x5e, 0x8b, 0xa0, 0x01, 0x64, 0xca, 0xa8, 0x86, 0x2a, 0x92, 0xf3, 0xd2,
-
  0xce, 0x62, 0x7f, 0x2a, 0x71, 0x44, 0x78, 0x89, 0x17, 0x3b, 0xad, 0xaa,
-
  0xc5, 0x94, 0x74, 0x43, 0xdb, 0x05, 0x9e, 0xca, 0x67, 0x04, 0xbd, 0xb7,
-
  0x3e, 0x60, 0xfc, 0x9f, 0xb2, 0x0f, 0x61, 0xdd, 0xcb, 0x41, 0xf2, 0x94,
-
  0x40, 0x96, 0xa3, 0x9a, 0x82, 0x82, 0x7c, 0xf3, 0xa7, 0xac, 0x04, 0xd1,
-
  0xa1, 0xa8, 0x92, 0x46, 0xd1, 0x37, 0x0b, 0xed, 0x93, 0xf4, 0x25, 0x6a,
-
  0xa0, 0x01, 0x76, 0x4b, 0x01, 0x65, 0x58, 0xf3, 0x21, 0x20, 0x70, 0x92,
-
  0x65, 0x48, 0x30, 0x91, 0x37, 0xa8, 0xde, 0xdc, 0x46, 0x37, 0xd9, 0x40,
-
  0x74, 0x55, 0xfc, 0x97, 0xca, 0x06, 0x8d, 0xd8, 0x71, 0xb7, 0xd1, 0x0d,
-
  0xe7, 0x60, 0x43, 0x36, 0x6d, 0x03, 0x44, 0x74, 0x69, 0x87, 0xac, 0x7e,
-
  0xe4, 0x03, 0x4f, 0xa5, 0xef, 0x00, 0xa6, 0x43, 0xe6, 0x7d, 0xe2, 0x2b,
-
  0x82, 0xb1, 0x55, 0xa9, 0x49, 0xcc, 0x1a, 0x0a, 0xc5, 0xe5, 0x45, 0x35,
-
  0x81, 0x45, 0x68, 0x95, 0x1b, 0xfc, 0x36, 0xd1, 0x3e, 0xe9, 0x81, 0xfa,
-
  0xb8, 0xcd, 0x82, 0xe6, 0xb9, 0xba, 0xde, 0x4a, 0xd4, 0x22, 0x7e, 0xa8,
-
  0x3d, 0xc3, 0xd2, 0x27, 0x58, 0x6a, 0xbc, 0x95, 0x6e, 0x8c, 0x4b, 0x70,
-
  0x36, 0x5b, 0x4c, 0x86, 0x15, 0xa8, 0x6c, 0x97, 0xa2, 0xfa, 0x72, 0x3d,
-
  0x6d, 0xf3, 0xa9, 0x03, 0x2e, 0x3f, 0xe4, 0xea, 0xd6, 0x5e, 0x98, 0x23,
-
  0xff, 0xc6, 0x0d, 0x5d, 0xde, 0x6c, 0xed, 0xe1, 0x52, 0x38, 0xce, 0x08,
-
  0xc7, 0xe7, 0x85, 0xf6, 0xc1, 0xb4, 0x6a, 0x69, 0xbc, 0xc7, 0x3e, 0xcc,
-
  0x67, 0x28, 0xff, 0x63, 0x34, 0x70, 0x42, 0x85, 0xe5, 0x42, 0x15, 0x14,
-
  0xcd, 0x54, 0xa2, 0x83, 0xcc, 0xdb, 0xc6, 0x6e, 0x57, 0xd3, 0x2d, 0x70,
-
  0x19, 0x60, 0x7d, 0x09, 0xbc, 0x79, 0x6c, 0x18, 0xd1, 0xa5, 0x0e, 0xa0,
-
  0x27, 0x48, 0x73, 0x1a, 0x20, 0x86, 0x6f, 0xaf, 0x28, 0x70, 0xa0, 0x30,
-
  0xe2, 0x56, 0xaa, 0x12, 0xa9, 0xc3, 0x7b, 0xb3, 0x83, 0x9b, 0x80, 0x4c,
-
  0xfa, 0xa1, 0xb4, 0x0a, 0x52, 0x57, 0x41, 0x52, 0x6c, 0xf6, 0xa1, 0x56,
-
  0x42, 0xf1, 0xd9, 0x27, 0x9f, 0x89, 0x58, 0xac, 0xee, 0x10, 0x95, 0x74,
-
  0xe8, 0x0f, 0xd7, 0x3b, 0xd2, 0x4d, 0xa8, 0x3b, 0xaa, 0x92, 0xd2, 0x23,
-
  0xe1, 0xee, 0x29, 0x4c, 0x31, 0x1b, 0x7d, 0x1b, 0x63, 0x1c, 0x79, 0x2b,
-
  0x8a, 0x85, 0x10, 0xd3, 0xe3, 0x66, 0x50, 0x37, 0x5b, 0x3a, 0xd9, 0xa9,
-
  0x79, 0x79, 0x42, 0x65, 0xad, 0x50, 0x11, 0x9a, 0x59, 0x01, 0x59, 0x12,
-
  0x2b, 0x0b, 0x5c, 0xb4, 0xfa, 0x05, 0x3c, 0x67, 0xaa, 0x2c, 0x91, 0x6b,
-
  0xa8, 0x28, 0xc7, 0xbb, 0xa5, 0x4a, 0x34, 0x5c, 0xcf, 0x65, 0x9e, 0xcf,
-
  0x25, 0x2e, 0x92, 0x47, 0xc0, 0x51, 0x18, 0x84, 0x08, 0x4b, 0x7b, 0x6f,
-
  0xa3, 0xe4, 0x03, 0xae, 0x31, 0x30, 0xf8, 0x9d, 0xf1, 0x1b, 0x2c, 0x73,
-
  0x39, 0x80, 0x26, 0xae, 0xf3, 0x51, 0x7d, 0x09, 0xac, 0x49, 0x70, 0xcf,
-
  0xf3, 0x9a, 0x52, 0x35, 0x35, 0xf7, 0x04, 0xfe, 0x6c, 0xd6, 0x25, 0x1c,
-
  0x64, 0xde, 0xbc, 0xcd, 0xc6, 0x46, 0x5a, 0x36, 0x2e, 0xaf, 0x95, 0xa5,
-
  0x88, 0xa5, 0xcd, 0x02, 0x1c, 0xe5, 0xac, 0x6c, 0xb3, 0x22, 0xd2, 0x35,
-
  0xc8, 0xbd, 0x14, 0x4e, 0xe6, 0x78, 0x9c, 0x7f, 0x08, 0xea, 0x84, 0xd6,
-
  0x13, 0xec, 0xcb, 0xf9, 0xc2, 0x23, 0xb1, 0xf1, 0x7e, 0x03, 0x85, 0x90,
-
  0x8d, 0x3f, 0x6d, 0xa0, 0x1f, 0x7f, 0x26, 0x65, 0x5b, 0x45, 0xaf, 0x04,
-
  0x21, 0xe8, 0x7d, 0x0e, 0xe4, 0x8a, 0xed, 0x03, 0xf7, 0xdb, 0x98, 0x6e,
-
  0x58, 0x6a, 0xf0, 0xc6, 0xeb, 0x0d, 0xcb, 0xb5, 0xa8, 0x61, 0x38, 0x92,
-
  0x39, 0x43, 0x99, 0x38, 0x78, 0x19, 0x6e, 0x5c, 0x50, 0xbb, 0xc9, 0xc6,
-
  0x0f, 0x1b, 0xc1, 0x16, 0xea, 0x33, 0x6c, 0x6c, 0x6a, 0x3c, 0x4a, 0x78,
-
  0x60, 0xf3, 0x3d, 0xf4, 0x01, 0xb7, 0xde, 0x0f, 0x18, 0x7a, 0x05, 0x97,
-
  0xd9, 0x16, 0xdb, 0x25, 0x77, 0x77, 0xf6, 0x1e, 0xc2, 0x12, 0x12, 0x6f,
-
  0xa4, 0x2c, 0x3e, 0x75, 0x8f, 0xee, 0xbe, 0x0f, 0x53, 0xc3, 0x87, 0xfa,
-
  0xc1, 0xfe, 0x8e, 0xc5, 0xb0, 0xfe, 0xd4, 0x4d, 0xf6, 0xa7, 0xb4, 0x7b,
-
  0xbb, 0x3f, 0xc4, 0xc5, 0xc1, 0x80, 0xa4, 0x68, 0x8b, 0x71, 0xfe, 0x58,
-
  0x6a, 0x74, 0xa8, 0x2e, 0x35, 0xe4, 0x4f, 0x78, 0x70, 0x2e, 0x4c, 0xa4,
-
  0xb1, 0x2d, 0x96, 0xa5, 0xd7, 0x2c, 0x6b, 0x50, 0x2b, 0xa7, 0x9c, 0x42,
-
  0x22, 0xc8, 0xbd, 0x5c, 0x0b, 0x10, 0x18, 0x25, 0x06, 0x13, 0x31, 0x8e,
-
  0x47, 0x8a, 0x89, 0xb3, 0x79, 0x41, 0x88, 0xf8, 0x66, 0x23, 0x55, 0x75,
-
  0xb1, 0xe1, 0xae, 0x62, 0x73, 0x76, 0xa8, 0xdf, 0x0d, 0x2c, 0x12, 0x3b,
-
  0xe4, 0x43, 0x13, 0xd0, 0x3e, 0xb5, 0x86, 0xa5, 0x28, 0xa4, 0x94, 0xb3,
-
  0x62, 0x28, 0x40, 0xc3, 0x6c, 0x44, 0xb8, 0xd6, 0x64, 0x52, 0xe3, 0xb0,
-
  0x96, 0x61, 0x99, 0xcf, 0xc9, 0x32, 0x2b, 0xf3, 0xee, 0xd9, 0xbc, 0x25,
-
  0xc7, 0x78, 0x02, 0x4a, 0x09, 0xea, 0x09, 0x01, 0xb3, 0x14, 0x55, 0x41,
-
  0xd5, 0xbc, 0xfd, 0x18, 0x78, 0xa1, 0x70, 0x9d, 0x08, 0xab, 0x4b, 0x78,
-
  0x8f, 0x1d, 0xe9, 0xfb, 0x13, 0xf1, 0xaa, 0x25, 0xee, 0x63, 0x9d, 0xec,
-
  0xc2, 0xae, 0xde, 0xed, 0xba, 0x88, 0x5f, 0xd8, 0xf9, 0xc8, 0x17, 0x5e,
-
  0xaf, 0xc7, 0xdd, 0xf0, 0xe9, 0x6e, 0x63, 0x9b, 0xe4, 0x6e, 0xa3, 0x4f,
-
  0xbc, 0xe6, 0x3c, 0xe9, 0x52, 0x27, 0x55, 0xed, 0x13, 0x68, 0x31, 0x8f,
-
  0xe4, 0xf4, 0xe4, 0x74, 0x3f, 0x91, 0x94, 0x12, 0xa9, 0xc5, 0xc2, 0xe9,
-
  0x40, 0x13, 0x09, 0x85, 0x46, 0x8f, 0x3e, 0x7d, 0xeb, 0x33, 0x38, 0x80,
-
  0xed, 0x0d, 0x03, 0xb3, 0x42, 0x65, 0x9b, 0x1d, 0xfe, 0x57, 0x79, 0x86,
-
  0xa9, 0xfa, 0xaf, 0xd3, 0x9b, 0x41, 0x16, 0x67, 0xd1, 0x29, 0xbf, 0xd3,
-
  0x60, 0x3a, 0xce, 0x5f, 0x45, 0x8e, 0x5a, 0x05, 0x92, 0x9e, 0xc2, 0x3d,
-
  0x03, 0x97, 0x58, 0x0f, 0xde, 0x94, 0x88, 0xf8, 0x80, 0xeb, 0x06, 0x14,
-
  0xac, 0x43, 0x71, 0xc9, 0x26, 0x0c, 0x1b, 0x46, 0xf4, 0xea, 0xab, 0x4d,
-
  0x86, 0x27, 0x70, 0x44, 0x2e, 0xd6, 0x1b, 0xc9, 0x3b, 0x75, 0x78, 0x1e,
-
  0x14, 0xd0, 0x56, 0x10, 0x52, 0xfc, 0x34, 0xd5, 0xe2, 0x2f, 0x2e, 0x3b,
-
  0x83, 0x58, 0x2d, 0xca, 0x00, 0xb1, 0x2d, 0x77, 0x98, 0x32, 0xf2, 0x28,
-
  0x8c, 0xe8, 0xcd, 0x2b, 0x2c, 0x9f, 0xea, 0xb2, 0xef, 0x06, 0x6c, 0xa5,
-
  0x34, 0x2f, 0xba, 0x77, 0xa0, 0xfb, 0x0a, 0x15, 0xaf, 0x8e, 0xcf, 0xce,
-
  0x95, 0xee, 0xd0, 0x82, 0x74, 0x90, 0x9c, 0x61, 0x2a, 0xcd, 0x0b, 0x87,
-
  0x9a, 0x36, 0x11, 0xa8, 0x9d, 0xc9, 0x8d, 0x24, 0x0b, 0xb2, 0x56, 0x94,
-
  0x97, 0xc1, 0x4e, 0x8f, 0x9d, 0xe0, 0x10, 0xbe, 0x76, 0xd5, 0x00, 0x46,
-
  0x85, 0x54, 0xb4, 0xe6, 0xca, 0x2a, 0xd5, 0x62, 0xd0, 0xd3, 0x05, 0xc9,
-
  0xc5, 0x48, 0x5a, 0xdd, 0x4c, 0x07, 0x05, 0x86, 0xd4, 0x81, 0xd0, 0xf0,
-
  0xbe, 0x8a, 0xb2, 0x63, 0x74, 0xe3, 0x71, 0x72, 0x67, 0xcd, 0x9d, 0x67,
-
  0xdb, 0x59, 0xc5, 0x75, 0x4a, 0x89, 0x0a, 0x38, 0x04, 0xc0, 0x48, 0x40,
-
  0xf4, 0x51, 0x58, 0xf5, 0x2e, 0x89, 0x9b, 0x58, 0x2d, 0x01, 0x05, 0x93,
-
  0xbe, 0xc1, 0x57, 0x65, 0x92, 0xdb, 0x10, 0x52, 0x2b, 0x05, 0x5a, 0xc0,
-
  0x93, 0xc4, 0xfa, 0x14, 0xd1, 0x18, 0xe2, 0x9a, 0x14, 0x21, 0x7c, 0xa2,
-
  0x62, 0x16, 0xea, 0x53, 0x67, 0x88, 0x9d, 0x12, 0x42, 0xa1, 0xda, 0x91,
-
  0xe2, 0xe5, 0x29, 0x33, 0x34, 0xf7, 0x5c, 0x45, 0xd9, 0x23, 0xc0, 0xbd,
-
  0x33, 0x02, 0xea, 0x27, 0xbf, 0x1c, 0x1e, 0x29, 0x4d, 0xcb, 0x6a, 0xae,
-
  0x14, 0x37, 0x84, 0x5b, 0xdf, 0x20, 0x19, 0xc3, 0x5d, 0xf4, 0x24, 0xf2,
-
  0xf6, 0xe8, 0xfc, 0x6d, 0x58, 0xb8, 0xe8, 0x40, 0x99, 0x38, 0xd6, 0x5c,
-
  0x40, 0x5d, 0x3f, 0x20, 0xa2, 0x8c, 0x93, 0x04, 0x6c, 0x90, 0x58, 0x1f,
-
  0x22, 0xbd, 0xc8, 0x7a, 0x98, 0x2f, 0x2e, 0x98, 0x94, 0x3e, 0xa5, 0x5b,
-
  0x48, 0x94, 0xaa, 0x8a, 0x23, 0x8f, 0xa7, 0x8c, 0xd1, 0x1c, 0xf1, 0x9b,
-
  0xa2, 0x64, 0xd4, 0x63, 0x0c, 0x56, 0x6e, 0xda, 0x38, 0x9d, 0x91, 0xf3,
-
  0x26, 0x23, 0x8f, 0x61, 0x44, 0x71, 0x14, 0xd0, 0x39, 0xc1, 0xb8, 0x44,
-
  0x3d, 0x56, 0x14, 0x2d, 0xa7, 0x26, 0x37, 0x5f, 0x28, 0x9c, 0x8f, 0x02,
-
  0x9f, 0x43, 0xc3, 0x90, 0x57, 0xaf, 0xad, 0xd5, 0xfb, 0x89, 0x7c, 0xec,
-
  0xcd, 0xf4, 0x04, 0x57, 0x9f, 0x04, 0x48, 0xf3, 0xdd, 0xf1, 0xf3, 0x57,
-
  0xe1, 0x80, 0xca, 0xea, 0x32, 0xb0, 0xbd, 0x25, 0xb3, 0x71, 0x24, 0x53,
-
  0xb8, 0xfb, 0x68, 0x37, 0x35, 0xc3, 0x6d, 0x31, 0xcb, 0xff, 0x8e, 0x57,
-
  0x05, 0x29, 0x61, 0xe3, 0x9c, 0x45, 0xc2, 0xcb, 0x20, 0x37, 0x55, 0x89,
-
  0x5f, 0x59, 0x2d, 0x2b, 0xe3, 0xc3, 0x23, 0x5b, 0xb2, 0xc7, 0x8d, 0x17,
-
  0xaf, 0x2a, 0xc7, 0xfd, 0x91, 0xce, 0x4b, 0x6b, 0xef, 0x2e, 0x39, 0x5a,
-
  0xbb, 0x5d, 0x56, 0xba, 0x60, 0xc7, 0x5a, 0x90, 0x85, 0xff, 0xbe, 0xc0,
-
  0xb0, 0xd2, 0xd6, 0x02, 0xc6, 0x54, 0x7b, 0x60, 0xd2, 0x23, 0xd5, 0xeb,
-
  0x29, 0xd5, 0xfe, 0x73, 0x0e, 0x9e, 0xd4, 0xc3, 0x02, 0x6a, 0x8c, 0x8a,
-
  0xba, 0x26, 0x4b, 0xad, 0x15, 0xb8, 0xf9, 0xe2, 0xed, 0xc9, 0xeb, 0xde,
-
  0xf9, 0xc9, 0x16, 0x1d, 0x67, 0x0e, 0x69, 0x4e, 0x02, 0x56, 0x8e, 0x56,
-
  0x64, 0xf4, 0xb1, 0xdd, 0x6c, 0xe6, 0x31, 0xaf, 0xc1, 0x66, 0xb5, 0xe5,
-
  0x4b, 0x11, 0xd3, 0xcb, 0xa1, 0x92, 0xa3, 0x86, 0x9b, 0xcd, 0x58, 0xf0,
-
  0x46, 0x42, 0xc4, 0x80, 0xa5, 0x61, 0x8a, 0xf7, 0x97, 0x26, 0x66, 0x4a,
-
  0x91, 0x83, 0xba, 0x0e, 0x01, 0xe1, 0x3c, 0x3a, 0x32, 0x5f, 0x16, 0x88,
-
  0xa3, 0x60, 0x2e, 0xa7, 0xba, 0x00, 0xe6, 0x9a, 0x96, 0x65, 0x71, 0x6d,
-
  0x02, 0x0e, 0xde, 0x05, 0x40, 0x24, 0xa1, 0x18, 0xa0, 0x77, 0x69, 0x40,
-
  0xb3, 0x58, 0x89, 0x05, 0xc8, 0x09, 0xfa, 0x67, 0x40, 0x61, 0x5f, 0xb9,
-
  0x41, 0x56, 0xaf, 0xd5, 0x24, 0x12, 0xd9, 0xe7, 0x9b, 0x61, 0xfb, 0x1f,
-
  0x63, 0xa1, 0x77, 0x1d, 0xa1, 0x34, 0xd2, 0xdb, 0xdf, 0x59, 0xb7, 0xa4,
-
  0x69, 0x28, 0x84, 0x4c, 0x43, 0x7e, 0xd5, 0x75, 0x05, 0x27, 0x62, 0x14,
-
  0x8e, 0xb1, 0x67, 0x21, 0x92, 0x03, 0xef, 0x82, 0xa5, 0x84, 0x72, 0x50,
-
  0xa3, 0xa1, 0x62, 0x04, 0x29, 0x1e, 0xfa, 0x2b, 0x7f, 0x5c, 0x53, 0xe0,
-
  0x18, 0x84, 0x1f, 0x35, 0xab, 0x13, 0xed, 0x22, 0xd9, 0x0c, 0x45, 0x32,
-
  0x15, 0x92, 0xe1, 0x95, 0x7c, 0x77, 0x60, 0x05, 0x06, 0xf9, 0x98, 0xef,
-
  0xff, 0xe5, 0x2f, 0x1a, 0x5a, 0x24, 0x57, 0x23, 0x2a, 0xd8, 0x5b, 0xdd,
-
  0x96, 0x0c, 0x51, 0xc9, 0xe7, 0x1a, 0x15, 0x7e, 0x68, 0x16, 0xf4, 0x36,
-
  0xcb, 0xa4, 0x7c, 0x96, 0x24, 0x62, 0x1f, 0x8f, 0xcd, 0x98, 0x0d, 0x3a,
-
  0x3d, 0xd5, 0xcd, 0x50, 0x76, 0x84, 0xd5, 0x02, 0x7a, 0x1a, 0xf6, 0xc3,
-
  0x85, 0xe3, 0xa5, 0xb0, 0xba, 0x7c, 0x28, 0x71, 0x5c, 0x02, 0x49, 0xdb,
-
  0x58, 0x05, 0xe6, 0x8b, 0xd8, 0xc6, 0x2c, 0x46, 0xf6, 0x89, 0x8d, 0x4a,
-
  0x2a, 0xa3, 0x72, 0x36, 0x01, 0x47, 0x4d, 0x68, 0x25, 0xc2, 0x54, 0x03,
-
  0x2a, 0xd4, 0x28, 0xde, 0x7b, 0x29, 0x39, 0x2f, 0xf4, 0x29, 0x16, 0x87,
-
  0x61, 0xd7, 0xd5, 0x8c, 0x0a, 0x50, 0x61, 0x14, 0x20, 0xf1, 0xab, 0x61,
-
  0x99, 0x89, 0x49, 0xa9, 0x52, 0xc3, 0x43, 0x3e, 0xcb, 0xf1, 0x6f, 0x8a,
-
  0x0b, 0x75, 0x64, 0x9a, 0x5a, 0xb9, 0x0e, 0x49, 0x4f, 0x0f, 0x30, 0x2b,
-
  0x7e, 0xc7, 0xa4, 0x5a, 0x48, 0x04, 0xd2, 0x41, 0x55, 0xe0, 0x03, 0xea,
-
  0xba, 0xeb, 0x52, 0x42, 0xed, 0x12, 0x0c, 0x24, 0x20, 0x4b, 0x4d, 0xa0,
-
  0xaa, 0x9e, 0x45, 0x52, 0xe3, 0xcd, 0x82, 0x00, 0x4a, 0x54, 0xc7, 0x9a,
-
  0x3c, 0x73, 0x7a, 0x55, 0x85, 0x0b, 0xe9, 0x15, 0x09, 0xbd, 0x14, 0xd4,
-
  0x35, 0x45, 0xd5, 0x11, 0x99, 0x88, 0xab, 0xa5, 0x82, 0x58, 0x08, 0xe4,
-
  0x89, 0x41, 0x97, 0x9e, 0x43, 0x48, 0x61, 0xcf, 0x12, 0x3d, 0xd8, 0x5a,
-
  0xec, 0x26, 0x84, 0xe0, 0xc8, 0xfb, 0x15, 0x67, 0x00, 0xc8, 0x42, 0xb0,
-
  0x43, 0x72, 0x1c, 0x47, 0xc0, 0x93, 0xcd, 0x93, 0xc2, 0x28, 0xd1, 0x53,
-
  0x14, 0x4a, 0x8c, 0x4a, 0xe0, 0x65, 0x54, 0xff, 0x24, 0xae, 0x50, 0xf3,
-
  0xc3, 0xd1, 0xb9, 0x89, 0xc5, 0x82, 0x96, 0x27, 0x14, 0x8c, 0x3e, 0x00,
-
  0x6e, 0x68, 0x7f, 0x67, 0x17, 0x74, 0xc9, 0x9d, 0x3d, 0x8a, 0xf9, 0x83,
-
  0x5f, 0xf6, 0xfb, 0x96, 0xed, 0x19, 0x9e, 0x26, 0x8b, 0x12, 0xba, 0x0d,
-
  0xd8, 0x4a, 0x45, 0xb4, 0xba, 0xff, 0xe1, 0x03, 0x7f, 0xd1, 0x75, 0xa1,
-
  0x80, 0x64, 0x64, 0x1f, 0x69, 0x49, 0x8e, 0x96, 0xa1, 0x69, 0xc0, 0xbd,
-
  0xc5, 0x03, 0xe1, 0x2d, 0xa8, 0x20, 0xd9, 0x22, 0x99, 0x11, 0xba, 0x8c,
-
  0x2f, 0x0f, 0x84, 0xd7, 0x70, 0x8d, 0xe5, 0xcb, 0xc4, 0x2b, 0xc6, 0x52,
-
  0x28, 0x6f, 0x5d, 0x14, 0x5f, 0xca, 0x3b, 0x83, 0xd3, 0xe6, 0xf2, 0x37,
-
  0x78, 0x7a, 0x77, 0x3e, 0x34, 0x4e, 0xef, 0xe0, 0x26, 0x1e, 0x05, 0x70,
-
  0x46, 0xe1, 0x04, 0xe6, 0x39, 0xd7, 0xf2, 0x25, 0x69, 0x7d, 0x40, 0x65,
-
  0x89, 0x80, 0x04, 0x71, 0x9d, 0x94, 0xbf, 0xf2, 0xdf, 0x8a, 0x22, 0xc2,
-
  0x7f, 0xed, 0x7b, 0x35, 0x5c, 0x01, 0x72, 0x88, 0xab, 0xca, 0x55, 0x6a,
-
  0x2b, 0x20, 0xb1, 0x7a, 0x5a, 0x5f, 0x40, 0x9f, 0x75, 0xc5, 0xe0, 0x5c,
-
  0xb1, 0x61, 0x32, 0x9a, 0x54, 0xd9, 0x44, 0x6b, 0xad, 0x93, 0x0d, 0x38,
-
  0xba, 0xee, 0x95, 0xa3, 0xb5, 0x5d, 0xf7, 0xa6, 0xcf, 0xaf, 0x9d, 0x6c,
-
  0x6d, 0x45, 0x7f, 0x6e, 0xe3, 0xfb, 0xaf, 0xd6, 0x54, 0x23, 0x25, 0x46,
-
  0x9b, 0x97, 0x29, 0x9d, 0xd4, 0xbd, 0xea, 0x6a, 0x18, 0x5d, 0xf1, 0xfe,
-
  0x5c, 0xae, 0xc0, 0x5e, 0x0a, 0x5c, 0x81, 0x34, 0x26, 0x3f, 0x61, 0x39,
-
  0x81, 0x8c, 0xcf, 0x63, 0x87, 0x53, 0x76, 0x09, 0xe3, 0x8f, 0xb8, 0x1c,
-
  0x33, 0x5b, 0x71, 0xac, 0x9a, 0x54, 0xc4, 0x2f, 0xe8, 0xc0, 0x49, 0xd1,
-
  0xb1, 0x0c, 0xbe, 0xa0, 0x3a, 0x49, 0x54, 0x19, 0xc4, 0xae, 0x0f, 0xfe,
-
  0x96, 0x11, 0x0c, 0xcc, 0x22, 0xa2, 0x3c, 0x0d, 0xeb, 0xff, 0x79, 0x4b,
-
  0x28, 0x85, 0xad, 0x17, 0x1a, 0xbf, 0xce, 0xba, 0x52, 0x5d, 0x16, 0xa3,
-
  0x05, 0x29, 0xb5, 0x09, 0xc3, 0x02, 0x60, 0x38, 0xf9, 0xa0, 0xe4, 0x22,
-
  0x71, 0x96, 0x02, 0x56, 0xe5, 0xb5, 0xe5, 0xae, 0x28, 0x9b, 0x11, 0xf7,
-
  0x72, 0x4a, 0x5f, 0xd2, 0x0c, 0xd8, 0xed, 0x42, 0x05, 0xe1, 0xcc, 0x86,
-
  0x1c, 0x8a, 0x28, 0x71, 0x34, 0x30, 0x82, 0x79, 0xb3, 0xa1, 0x79, 0x16,
-
  0xc6, 0x2e, 0x79, 0x29, 0x62, 0x62, 0x41, 0x73, 0x6e, 0x29, 0x31, 0xae,
-
  0xc0, 0xd8, 0x34, 0x62, 0xbf, 0xeb, 0xd0, 0x26, 0xab, 0xe1, 0x65, 0xa6,
-
  0xd1, 0x7a, 0xf0, 0xac, 0x13, 0x7e, 0x34, 0x9a, 0xa1, 0xcd, 0x04, 0x4c,
-
  0x3b, 0xaf, 0x90, 0x06, 0xba, 0x73, 0x73, 0xca, 0xd8, 0xa4, 0x55, 0xd5,
-
  0x50, 0x36, 0x3a, 0x18, 0xd9, 0x07, 0x8c, 0xa8, 0xce, 0xad, 0x72, 0x7b,
-
  0x14, 0xb8, 0xda, 0x4e, 0xe5, 0x81, 0x89, 0xaf, 0x0d, 0xf6, 0xbc, 0x0e,
-
  0xb5, 0x6b, 0xb3, 0x77, 0x59, 0x6b, 0x9a, 0xa3, 0xe8, 0x2d, 0x48, 0xc8,
-
  0x3f, 0xc0, 0x19, 0x5e, 0x17, 0xe5, 0x1a, 0xa1, 0xa7, 0xcb, 0x4d, 0xbc,
-
  0xc4, 0x70, 0x74, 0xba, 0x53, 0x35, 0x98, 0xf1, 0x9b, 0x74, 0x30, 0xec,
-
  0x48, 0x66, 0xdb, 0xda, 0x05, 0x9c, 0xdc, 0xb9, 0xba, 0xc8, 0x67, 0x3d,
-
  0xe5, 0x64, 0x4f, 0xe5, 0x17, 0x4b, 0x74, 0xc4, 0x6a, 0xa4, 0xaf, 0x9e,
-
  0xc3, 0x0f, 0x36, 0xd0, 0x70, 0xe9, 0xd4, 0xe0, 0xd7, 0x23, 0x4b, 0x16,
-
  0xb6, 0x10, 0x98, 0xa1, 0x02, 0x9f, 0x25, 0xa3, 0x45, 0x69, 0xd2, 0xaa,
-
  0xaa, 0x74, 0x91, 0x44, 0xd1, 0xe4, 0xd9, 0xf4, 0x5a, 0x4b, 0x6b, 0xea,
-
  0xb8, 0x77, 0xd4, 0x66, 0xea, 0x6e, 0x54, 0x0e, 0x89, 0xc8, 0x15, 0x8f,
-
  0x92, 0xea, 0x60, 0x3c, 0x84, 0x66, 0xb7, 0xc9, 0x61, 0x6d, 0xfe, 0x5d,
-
  0x12, 0x48, 0x70, 0x96, 0x5d, 0x9e, 0x61, 0xc8, 0x69, 0xa0, 0x02, 0xac,
-
  0x96, 0x40, 0xcf, 0xc3, 0xd2, 0x52, 0x3b, 0x6c, 0x7c, 0x5d, 0x52, 0xd9,
-
  0xd3, 0x01, 0x41, 0x1d, 0xd1, 0xb3, 0x51, 0x96, 0x01, 0xca, 0x70, 0x54,
-
  0x9f, 0x8f, 0x94, 0xe1, 0x04, 0x23, 0x15, 0x92, 0xbd, 0xfd, 0x27, 0x18,
-
  0x0b, 0x48, 0xbf, 0x3f, 0xda, 0xf9, 0x6a, 0x4f, 0x42, 0xa6, 0x38, 0x70,
-
  0xe3, 0xf8, 0xe8, 0xfc, 0x05, 0xac, 0x60, 0x09, 0xf7, 0x52, 0x23, 0x6d,
-
  0x0b, 0xce, 0x2c, 0x56, 0xbf, 0x7d, 0x0f, 0x5b, 0x98, 0x67, 0xf5, 0xb8,
-
  0x5f, 0x94, 0x17, 0x98, 0xcb, 0xb5, 0x8d, 0xd8, 0x2c, 0xdb, 0xf4, 0x42,
-
  0x2f, 0x4b, 0xcb, 0x4b, 0xd0, 0xd0, 0x31, 0xa5, 0xbe, 0x57, 0x4d, 0xeb,
-
  0x79, 0x6f, 0x67, 0xa7, 0x81, 0xf2, 0xba, 0x47, 0x10, 0x7a, 0xb4, 0xb9,
-
  0x86, 0x4d, 0xbb, 0xbc, 0x97, 0x49, 0xe7, 0xf0, 0xdd, 0xf9, 0xcb, 0x6f,
-
  0xfe, 0xf8, 0xea, 0xe4, 0x87, 0xe3, 0x37, 0x1d, 0xc9, 0xef, 0x0b, 0xb2,
-
  0x8f, 0x59, 0x62, 0x03, 0x8c, 0x09, 0xbb, 0xd5, 0x27, 0x78, 0x6a, 0x36,
-
  0xc9, 0xcc, 0x75, 0x76, 0x78, 0xf6, 0x6a, 0x2b, 0xe9, 0x50, 0x0b, 0xd4,
-
  0x5f, 0xc7, 0x34, 0x60, 0x39, 0x7b, 0x02, 0x02, 0xe0, 0xf5, 0xfe, 0xd1,
-
  0x15, 0x7a, 0xb1, 0xa9, 0x3d, 0x7c, 0x7f, 0x69, 0xfb, 0x9e, 0x89, 0xb8,
-
  0x2a, 0x3e, 0x4b, 0x19, 0x51, 0xfa, 0x9e, 0x42, 0xec, 0x92, 0x65, 0x3c,
-
  0x96, 0x2e, 0x85, 0x62, 0xe4, 0xb5, 0x8a, 0x41, 0x12, 0x77, 0xa3, 0x87,
-
  0x90, 0x0c, 0xd4, 0x41, 0x3e, 0x0c, 0x10, 0x09, 0x89, 0x4c, 0x85, 0x6a,
-
  0x36, 0x29, 0x10, 0x52, 0x30, 0xe1, 0xd1, 0x53, 0x26, 0x7e, 0xd1, 0x62,
-
  0x46, 0xa8, 0xbf, 0x02, 0xfe, 0x5f, 0xb9, 0x45, 0xe1, 0x85, 0xe8, 0x24,
-
  0x9b, 0x59, 0xff, 0xa2, 0xcf, 0xa1, 0x40, 0xb8, 0x00, 0x75, 0x18, 0x4c,
-
  0x35, 0x2b, 0x0a, 0xb4, 0x39, 0x6f, 0x35, 0x34, 0x34, 0x7f, 0x48, 0xef,
-
  0x4a, 0xac, 0xfe, 0x1d, 0x31, 0x54, 0x71, 0x47, 0x1b, 0xb4, 0xff, 0xff,
-
  0xb9, 0x91, 0xe4, 0xd3, 0x74, 0xfe, 0x51, 0x5c, 0x05, 0xcd, 0x16, 0x3d,
-
  0xdc, 0xb7, 0xe4, 0xa9, 0xe4, 0x4a, 0x59, 0xb5, 0x1f, 0xe2, 0x20, 0x67,
-
  0x21, 0x16, 0x47, 0x75, 0x72, 0x79, 0xce, 0x61, 0xa0, 0x05, 0x98, 0x87,
-
  0x10, 0xbb, 0x13, 0x70, 0x86, 0x1b, 0x1e, 0x6f, 0x01, 0xea, 0xd8, 0x64,
-
  0xeb, 0x48, 0x7d, 0xc3, 0x8a, 0x3c, 0x3a, 0x7e, 0x06, 0x53, 0xf4, 0x6c,
-
  0x8e, 0xcc, 0x38, 0x62, 0xbe, 0x68, 0xb9, 0xf9, 0x33, 0x91, 0x38, 0x11,
-
  0xad, 0x58, 0xba, 0x4b, 0xe5, 0x2a, 0xb4, 0x74, 0x23, 0x89, 0x1d, 0x08,
-
  0xd3, 0xfa, 0x7c, 0x71, 0x1c, 0xa1, 0x0f, 0x5c, 0xd1, 0xef, 0x7c, 0xb2,
-
  0x41, 0xef, 0x9c, 0xcb, 0x70, 0xe2, 0xa1, 0xbe, 0xb3, 0x12, 0x13, 0xb5,
-
  0x53, 0x0e, 0xe7, 0x21, 0x86, 0x0d, 0xfe, 0x46, 0x0d, 0x30, 0xde, 0x24,
-
  0xd2, 0x09, 0xef, 0xdc, 0x24, 0xb5, 0x9b, 0xe8, 0x32, 0x87, 0xb4, 0x54,
-
  0x29, 0x3b, 0xc7, 0xe3, 0x92, 0x33, 0x19, 0x00, 0x65, 0x91, 0xb6, 0xa9,
-
  0x4f, 0x76, 0x92, 0x84, 0x1e, 0x5b, 0xe1, 0x2f, 0xda, 0xd0, 0x2f, 0x7c,
-
  0x55, 0xd2, 0xf5, 0xd7, 0x8f, 0xfa, 0xf8, 0x0c, 0xeb, 0x87, 0xfb, 0x12,
-
  0xaf, 0x1f, 0x3d, 0x71, 0xfb, 0xfa, 0x05, 0x1a, 0x67, 0xe3, 0xac, 0xae,
-
  0x22, 0xe5, 0x18, 0x95, 0x8c, 0x02, 0x83, 0xf2, 0x15, 0x7c, 0x47, 0xa4,
-
  0x88, 0xb6, 0xb1, 0xe0, 0xd0, 0x00, 0xe2, 0x7b, 0x9b, 0xcd, 0x33, 0x5e,
-
  0x6f, 0x1f, 0x9d, 0x1e, 0x3b, 0xb6, 0x13, 0x27, 0xb2, 0xe2, 0x6f, 0x31,
-
  0x94, 0x12, 0x08, 0x88, 0xf9, 0x3c, 0xf7, 0xc5, 0x0c, 0xd9, 0xb0, 0x29,
-
  0xd6, 0x5e, 0x35, 0xb3, 0x07, 0xbc, 0x9b, 0x18, 0xca, 0x6d, 0xf3, 0xc7,
-
  0xb7, 0x2f, 0xfe, 0x6a, 0x9c, 0x7b, 0x4b, 0xc2, 0x41, 0x1b, 0x4d, 0xfb,
-
  0x30, 0x12, 0xe7, 0xb8, 0xd7, 0xda, 0xdb, 0x61, 0xb2, 0x78, 0x77, 0x86,
-
  0x99, 0xdb, 0x55, 0x30, 0x2a, 0x28, 0xcc, 0x7a, 0x13, 0x63, 0xd8, 0xb0,
-
  0xfe, 0x95, 0x58, 0xae, 0xf6, 0xfb, 0x8f, 0xc8, 0x04, 0x0d, 0xf7, 0xe4,
-
  0xa3, 0xfd, 0xbd, 0xdd, 0xad, 0x5b, 0x26, 0x90, 0x84, 0x35, 0x14, 0x97,
-
  0x05, 0xc8, 0x8c, 0x74, 0xab, 0x6e, 0x1e, 0xfd, 0xe5, 0xf4, 0xcd, 0xba,
-
  0x13, 0x88, 0xe2, 0x0e, 0x82, 0xb6, 0xae, 0x6d, 0x53, 0xcb, 0x2c, 0xff,
-
  0x52, 0x51, 0xe8, 0x10, 0x45, 0xf7, 0xa2, 0xcc, 0xf1, 0x82, 0xe9, 0x70,
-
  0x20, 0xdd, 0xab, 0x62, 0x36, 0x02, 0xc9, 0xed, 0x04, 0x71, 0x48, 0x32,
-
  0xbc, 0x3e, 0x3d, 0xc5, 0x98, 0xad, 0x58, 0x98, 0xdc, 0x72, 0xf4, 0xd1,
-
  0x47, 0xd6, 0xf6, 0x09, 0x4d, 0x47, 0x64, 0x3f, 0x43, 0xf4, 0xd4, 0x25,
-
  0x72, 0xbf, 0x85, 0xda, 0x7b, 0x24, 0x8e, 0x8f, 0xa5, 0x50, 0x7b, 0x83,
-
  0xd0, 0xdd, 0x97, 0x11, 0xa5, 0xd3, 0x5e, 0xa8, 0x2d, 0x48, 0xf2, 0xf5,
-
  0x0b, 0x97, 0xd6, 0x1c, 0xc8, 0xaf, 0xeb, 0x0a, 0x4f, 0x78, 0xc4, 0x3e,
-
  0x10, 0x9d, 0x50, 0x08, 0x21, 0xa1, 0x6b, 0x58, 0xcc, 0xd0, 0xeb, 0x14,
-
  0xe0, 0x85, 0x50, 0xa6, 0xca, 0xb4, 0x5c, 0x92, 0x95, 0x79, 0xd3, 0x26,
-
  0xc5, 0xf2, 0x29, 0x23, 0x7a, 0xfb, 0xec, 0xf4, 0x3c, 0x39, 0x3f, 0xf1,
-
  0x5e, 0x0d, 0x4e, 0xf1, 0x45, 0xfa, 0x6e, 0xe0, 0xd9, 0x66, 0x49, 0xe2,
-
  0xaa, 0xf2, 0xe0, 0x76, 0x5c, 0xa6, 0x57, 0x39, 0x21, 0x38, 0xf0, 0xfe,
-
  0xf0, 0x0e, 0x25, 0x16, 0x90, 0x9d, 0x70, 0x21, 0x1f, 0xcb, 0x2d, 0xd5,
-
  0xfb, 0xb9, 0x6d, 0x81, 0x9a, 0xe1, 0x30, 0x9c, 0x7c, 0x22, 0x38, 0x81,
-
  0x66, 0xfd, 0x93, 0x70, 0x46, 0x07, 0xb7, 0xcb, 0x5a, 0x66, 0x04, 0x50,
-
  0x2d, 0x65, 0xed, 0x24, 0xbe, 0x10, 0x78, 0x61, 0x3e, 0x6a, 0x39, 0xd1,
-
  0xc7, 0x63, 0x2e, 0xbf, 0xe9, 0x57, 0x46, 0x20, 0x7d, 0x65, 0x59, 0x70,
-
  0x5d, 0xd4, 0x02, 0x6c, 0xe2, 0x26, 0xc5, 0x83, 0x4c, 0xd2, 0x8b, 0x70,
-
  0x23, 0x36, 0xe3, 0x8a, 0x19, 0x3c, 0x5b, 0x76, 0x88, 0x80, 0x3e, 0x97,
-
  0x76, 0x89, 0x33, 0x5a, 0x04, 0x98, 0x2a, 0x04, 0x0a, 0x31, 0x36, 0x15,
-
  0xba, 0xe3, 0x73, 0xb2, 0xb1, 0x12, 0x5b, 0x36, 0x03, 0xa7, 0x30, 0x79,
-
  0x1b, 0x9a, 0xae, 0x58, 0x5b, 0x4a, 0x74, 0xeb, 0x0a, 0xdf, 0x4b, 0xb6,
-
  0xd5, 0x0a, 0xca, 0x5f, 0xe7, 0xa8, 0xf9, 0xb1, 0xf8, 0x13, 0x38, 0xca,
-
  0xaa, 0x3a, 0xba, 0x78, 0xa4, 0x80, 0xe2, 0xaa, 0x73, 0xe8, 0x2b, 0x2a,
-
  0x35, 0x73, 0x5d, 0xac, 0x55, 0x3d, 0x8d, 0xaf, 0xbb, 0x06, 0x5e, 0x20,
-
  0xd8, 0x3b, 0x0c, 0x64, 0x80, 0x13, 0xc5, 0x4a, 0xa3, 0x8c, 0x91, 0xbf,
-
  0x90, 0x4a, 0xbb, 0x2c, 0xbb, 0xde, 0x31, 0x1d, 0x6a, 0x6b, 0x55, 0xd0,
-
  0x52, 0xd7, 0x45, 0x3d, 0xf1, 0x4d, 0x88, 0xfa, 0x47, 0xe6, 0x98, 0xc3,
-
  0x07, 0x4a, 0x51, 0x24, 0x2f, 0xdd, 0x53, 0x8a, 0x68, 0xf9, 0xb6, 0x01,
-
  0x83, 0x0b, 0x63, 0xfc, 0xf3, 0xf9, 0xb9, 0xb1, 0x09, 0x8e, 0x0f, 0x4a,
-
  0xb9, 0x3a, 0x17, 0x95, 0x6f, 0xa3, 0xeb, 0x9d, 0xcc, 0x95, 0x46, 0x7c,
-
  0x9e, 0x8e, 0x34, 0x14, 0x8a, 0xba, 0x40, 0x5b, 0x7c, 0xc2, 0x71, 0x3e,
-
  0x2c, 0xe3, 0x11, 0x3c, 0x32, 0x05, 0xab, 0x15, 0x21, 0xf0, 0xc9, 0xa3,
-
  0xd0, 0x05, 0x74, 0x9b, 0x60, 0xf7, 0xce, 0x63, 0xc0, 0x5b, 0x3e, 0x07,
-
  0x32, 0x8c, 0xb8, 0xfa, 0x5d, 0x10, 0xf8, 0x29, 0xcb, 0x30, 0x28, 0x88,
-
  0x2d, 0x08, 0x75, 0x1f, 0x08, 0x48, 0x74, 0x94, 0x25, 0x8f, 0xcd, 0xbe,
-
  0x77, 0x66, 0xee, 0x9c, 0x10, 0xd2, 0xc5, 0xd2, 0x0c, 0x0c, 0x97, 0x26,
-
  0x1f, 0xe9, 0x09, 0x14, 0x3d, 0xa1, 0xef, 0x1e, 0xca, 0x8c, 0xc5, 0xe0,
-
  0x59, 0xaa, 0x6e, 0x2b, 0xd1, 0x91, 0x3e, 0x02, 0xa8, 0xeb, 0xe2, 0x98,
-
  0x34, 0x90, 0x09, 0x23, 0x99, 0x0c, 0x96, 0x44, 0xc3, 0x99, 0x5c, 0x3c,
-
  0x93, 0x0f, 0x68, 0xda, 0x98, 0x6e, 0x58, 0x2c, 0x93, 0x0b, 0x52, 0x0a,
-
  0xc1, 0x4c, 0x56, 0xb4, 0x0f, 0x16, 0x5a, 0x02, 0x9a, 0xa2, 0x78, 0xa6,
-
  0x10, 0xce, 0x74, 0x77, 0xe8, 0xd1, 0x9b, 0x93, 0xf3, 0xa3, 0x03, 0xcd,
-
  0xa4, 0x12, 0xb8, 0xbc, 0x87, 0xa8, 0x92, 0x5e, 0x5b, 0xe8, 0x3b, 0x6d,
-
  0x28, 0x3b, 0x7e, 0x5d, 0xad, 0x5a, 0xa9, 0xb8, 0x62, 0xc6, 0x36, 0xdd,
-
  0xed, 0xae, 0xa0, 0x68, 0xe3, 0x75, 0xcc, 0x01, 0x0a, 0x91, 0xa8, 0xd4,
-
  0x70, 0x0c, 0x9b, 0xd2, 0x19, 0x28, 0x8c, 0xe9, 0x47, 0xb7, 0x9c, 0xb4,
-
  0xc4, 0xc5, 0x5c, 0x54, 0x03, 0x4f, 0x27, 0x0c, 0x6d, 0x44, 0x22, 0x6f,
-
  0xb4, 0x53, 0x67, 0x48, 0x1a, 0x96, 0x13, 0xc0, 0x9c, 0x5d, 0xe6, 0x14,
-
  0x8d, 0xc4, 0x31, 0x51, 0x87, 0x0d, 0x3a, 0x0e, 0x86, 0x7a, 0xb2, 0xf3,
-
  0xa9, 0x26, 0xed, 0xa2, 0xa8, 0xd4, 0x94, 0xe1, 0x0a, 0x5c, 0x9a, 0x4e,
-
  0xe2, 0xce, 0xdf, 0xe7, 0x4b, 0xdc, 0x8b, 0xba, 0x59, 0x19, 0x7c, 0xb4,
-
  0xc4, 0x44, 0x42, 0x3c, 0x51, 0xc4, 0x30, 0xd8, 0xe5, 0x91, 0x3c, 0x05,
-
  0x62, 0x8c, 0x11, 0x22, 0x18, 0xe3, 0x4d, 0x0f, 0x8a, 0x25, 0x75, 0xd1,
-
  0x39, 0x57, 0x4b, 0x27, 0x5b, 0x54, 0xea, 0x42, 0x4d, 0xba, 0x7d, 0x91,
-
  0x06, 0x9b, 0x95, 0xe8, 0xad, 0x76, 0x67, 0x37, 0x91, 0xa2, 0x0f, 0xac,
-
  0x6c, 0xab, 0x47, 0x85, 0x2e, 0x23, 0xe7, 0x74, 0x40, 0x97, 0x2a, 0x01,
-
  0x3d, 0x35, 0x0c, 0xab, 0x5e, 0x66, 0xe9, 0x86, 0x53, 0x9a, 0x68, 0x1a,
-
  0x05, 0xb4, 0xfd, 0x68, 0xc7, 0x57, 0x93, 0x3f, 0xcb, 0xea, 0x96, 0xdc,
-
  0x05, 0x1c, 0x42, 0x6f, 0x97, 0x85, 0x73, 0x89, 0x7b, 0xc4, 0x00, 0x45,
-
  0x0e, 0xb0, 0xec, 0xbb, 0xdd, 0x94, 0xc5, 0xf9, 0x8c, 0x1a, 0xa6, 0xf5,
-
  0xb1, 0xef, 0x97, 0x6b, 0xbd, 0x0d, 0x0d, 0x16, 0x7f, 0x5a, 0xed, 0x69,
-
  0xd7, 0xe5, 0x47, 0xb5, 0x25, 0x58, 0x5a, 0x1c, 0x2b, 0x65, 0x7f, 0xcd,
-
  0x34, 0xea, 0x2f, 0x09, 0x30, 0x52, 0x74, 0x8b, 0x52, 0x6c, 0x6f, 0x5c,
-
  0x73, 0xb4, 0x0e, 0xc5, 0xcb, 0x4e, 0x79, 0xeb, 0xd4, 0x76, 0x33, 0x60,
-
  0xf0, 0xd0, 0xdf, 0x8a, 0x81, 0xe6, 0xa0, 0x63, 0x45, 0x23, 0x0a, 0x55,
-
  0x1c, 0x33, 0x52, 0xe7, 0x82, 0x52, 0xbf, 0xd1, 0xf8, 0x41, 0x6a, 0x11,
-
  0x74, 0x10, 0x59, 0x77, 0xc8, 0x4b, 0x4a, 0x21, 0x47, 0xc9, 0x45, 0x81,
-
  0xaf, 0x71, 0x9e, 0x77, 0x64, 0x9b, 0x26, 0x20, 0x8f, 0x2a, 0xd1, 0x92,
-
  0xd2, 0x8c, 0x14, 0xd8, 0x0c, 0x56, 0xcc, 0x38, 0x12, 0x1f, 0x83, 0x71,
-
  0x6e, 0x96, 0x23, 0x25, 0x93, 0x4d, 0x74, 0x6b, 0xc0, 0x57, 0x5b, 0xa1,
-
  0x4c, 0x92, 0x51, 0x77, 0x90, 0xf5, 0x99, 0x3f, 0x73, 0x92, 0x13, 0xda,
-
  0x25, 0xeb, 0x44, 0x56, 0x03, 0xbf, 0x6b, 0xf0, 0x8a, 0x4a, 0x02, 0x7f,
-
  0x46, 0x02, 0x56, 0x35, 0xd4, 0x5a, 0x0d, 0x8c, 0x57, 0x41, 0xbd, 0x85,
-
  0xfd, 0x80, 0xc9, 0x4f, 0xcc, 0x35, 0x49, 0xdf, 0x25, 0x71, 0xba, 0x73,
-
  0x16, 0xcf, 0x2f, 0x64, 0xbd, 0x0e, 0x3c, 0x52, 0xa9, 0x82, 0xd4, 0x8e,
-
  0x80, 0x11, 0x6f, 0xf6, 0xb7, 0xe8, 0xf2, 0x90, 0xf7, 0x94, 0x32, 0x29,
-
  0x57, 0x0d, 0x16, 0xb5, 0xa7, 0x11, 0xc0, 0x5c, 0x34, 0x1d, 0xe3, 0x28,
-
  0xac, 0x12, 0x95, 0xa0, 0x70, 0x8d, 0xf9, 0x6a, 0x31, 0xb4, 0x31, 0x45,
-
  0x27, 0xe5, 0x8b, 0x55, 0xdd, 0x2b, 0xd2, 0xa0, 0xc6, 0x76, 0xdb, 0x94,
-
  0xee, 0xb3, 0x26, 0x76, 0xd5, 0x72, 0x32, 0xa8, 0x93, 0xdd, 0x35, 0x42,
-
  0x25, 0xed, 0xe1, 0xbd, 0xfe, 0x57, 0x7b, 0xeb, 0xa6, 0xd7, 0x53, 0x40,
-
  0x06, 0xbd, 0x86, 0xa6, 0x62, 0x8d, 0x66, 0xf1, 0x7b, 0x16, 0xf8, 0x64,
-
  0x56, 0xa7, 0x48, 0xa2, 0xcb, 0x6e, 0x13, 0xc9, 0xc8, 0x62, 0x38, 0x10,
-
  0x0e, 0x5f, 0x5b, 0x82, 0x43, 0x7d, 0x2d, 0x6f, 0x07, 0xd8, 0x6f, 0x39,
-
  0x4a, 0xf6, 0x85, 0xda, 0xb6, 0xa3, 0x42, 0xa5, 0x79, 0xf0, 0x37, 0x97,
-
  0xc1, 0xfd, 0x04, 0xb7, 0x52, 0x45, 0x4c, 0x97, 0x2b, 0x97, 0x2a, 0x0e,
-
  0x31, 0x96, 0x87, 0x7d, 0xd2, 0xdf, 0xd9, 0x52, 0xeb, 0x8e, 0xb6, 0xfc,
-
  0x19, 0x8d, 0x3b, 0xda, 0x05, 0x5d, 0xd8, 0xeb, 0x61, 0x37, 0x03, 0x1d,
-
  0x4d, 0x26, 0x59, 0x48, 0xb2, 0x98, 0xce, 0xeb, 0xa1, 0x04, 0xf8, 0x72,
-
  0x1e, 0x4d, 0xa5, 0x41, 0x6b, 0x78, 0xcb, 0xbc, 0x26, 0x9d, 0x22, 0x85,
-
  0x5b, 0x1c, 0xd3, 0x92, 0x37, 0x5f, 0x9f, 0x9e, 0x23, 0xea, 0x3e, 0xae,
-
  0x46, 0x94, 0x72, 0x4c, 0x9f, 0xbb, 0x70, 0xf2, 0x19, 0xaa, 0x1d, 0xe8,
-
  0x59, 0x63, 0x46, 0x4f, 0xe6, 0x6c, 0x0b, 0xee, 0xc4, 0x47, 0x89, 0xdb,
-
  0x89, 0xab, 0xcb, 0xf4, 0x16, 0xc9, 0x7c, 0x86, 0xe5, 0x9d, 0xea, 0x5d,
-
  0x41, 0xc6, 0x68, 0x17, 0xcf, 0xa0, 0xe6, 0x68, 0xd4, 0x39, 0xeb, 0xcb,
-
  0x2a, 0x09, 0xe0, 0xa3, 0xec, 0x29, 0x60, 0xa7, 0xb8, 0xc6, 0x0f, 0x39,
-
  0x6b, 0x4a, 0x86, 0xd1, 0x93, 0xa9, 0x03, 0x49, 0x40, 0x8d, 0x36, 0x9b,
-
  0x01, 0x9f, 0x1c, 0xba, 0x30, 0x7c, 0x22, 0xc1, 0x7c, 0x8a, 0xbb, 0x85,
-
  0x0c, 0x62, 0x92, 0x2b, 0xa6, 0xad, 0x45, 0x2c, 0xf1, 0xd9, 0xb7, 0x21,
-
  0xf3, 0x28, 0xaa, 0x1c, 0x3f, 0x48, 0x67, 0x19, 0x11, 0xa0, 0xee, 0x19,
-
  0x2f, 0x0a, 0x26, 0xc4, 0x64, 0xb3, 0x6c, 0x9c, 0x13, 0x70, 0x74, 0xee,
-
  0x52, 0xb8, 0xaf, 0x29, 0x09, 0xaa, 0xd1, 0x14, 0x05, 0x00, 0x36, 0x8a,
-
  0x26, 0x71, 0x76, 0x85, 0x44, 0x88, 0x72, 0x0c, 0x6a, 0x57, 0xc4, 0x3b,
-
  0x24, 0xfd, 0x69, 0x31, 0xc0, 0xed, 0x6f, 0xb4, 0x8b, 0xfc, 0x89, 0x52,
-
  0x36, 0xc9, 0x9d, 0x2a, 0x7c, 0x89, 0xc3, 0x1e, 0x75, 0xcd, 0x7e, 0xca,
-
  0x5f, 0xe4, 0x22, 0xbc, 0x67, 0x93, 0x09, 0x97, 0x6e, 0x22, 0x6b, 0x05,
-
  0x56, 0x8c, 0x22, 0x2c, 0x1c, 0x0c, 0x12, 0x0b, 0x29, 0xe7, 0xa1, 0x46,
-
  0x84, 0x0d, 0x9a, 0xb0, 0xa2, 0xd1, 0xaa, 0xa2, 0xf0, 0xb3, 0xa7, 0x92,
-
  0xa1, 0xda, 0x5e, 0xd7, 0x2b, 0xaf, 0x7c, 0x2e, 0x3f, 0x87, 0xbf, 0x04,
-
  0x3c, 0x89, 0xc2, 0x50, 0x8e, 0x2b, 0x15, 0x20, 0xe9, 0x3a, 0xd3, 0xf0,
-
  0xf3, 0x12, 0x53, 0x21, 0x1f, 0xf5, 0x1f, 0xf7, 0x93, 0x13, 0xca, 0x37,
-
  0xc7, 0xe5, 0x75, 0x64, 0xc8, 0xf1, 0x8c, 0x1a, 0x0e, 0xd1, 0x05, 0x85,
-
  0x6f, 0x66, 0x70, 0x85, 0xbe, 0x60, 0x83, 0xa9, 0x30, 0x22, 0x00, 0x4b,
-
  0x19, 0x9d, 0x4d, 0xac, 0x7c, 0x43, 0xd9, 0xe9, 0xef, 0x9e, 0x47, 0xed,
-
  0xfa, 0xeb, 0x41, 0x9c, 0x32, 0x92, 0x61, 0x44, 0x8f, 0xb0, 0xf0, 0x45,
-
  0xe9, 0x64, 0x1c, 0xab, 0xaf, 0x9c, 0x84, 0xf6, 0x9f, 0x98, 0x01, 0x74,
-
  0xe6, 0x99, 0x71, 0x1c, 0x88, 0x96, 0x4e, 0x31, 0x2b, 0x83, 0x2a, 0x5e,
-
  0xc1, 0x81, 0xa8, 0x38, 0x43, 0x33, 0xe1, 0x9b, 0x9a, 0x1a, 0xf0, 0x10,
-
  0x79, 0xf1, 0x81, 0xbd, 0xdf, 0x9a, 0x1f, 0xd4, 0xf0, 0x1d, 0x0c, 0x07,
-
  0x1f, 0xf9, 0x74, 0x94, 0xd9, 0x31, 0x70, 0xba, 0x02, 0xf4, 0x32, 0x63,
-
  0x3e, 0x56, 0xab, 0x31, 0x92, 0x7a, 0x25, 0x9f, 0xef, 0x8d, 0x7e, 0x99,
-
  0x6c, 0x9e, 0x9d, 0xbe, 0x39, 0xfa, 0xe1, 0x64, 0x6b, 0x85, 0xc7, 0xd4,
-
  0x93, 0x98, 0x65, 0xa5, 0xa5, 0x9a, 0x5b, 0x2d, 0xf9, 0x68, 0xa4, 0x8a,
-
  0xfc, 0x70, 0x76, 0xd6, 0x3b, 0x3c, 0x3d, 0x4e, 0x28, 0x77, 0x1c, 0xfe,
-
  0xd5, 0xbd, 0xea, 0xfb, 0x22, 0x64, 0x7a, 0x41, 0x87, 0x60, 0x5d, 0xce,
-
  0xe7, 0x22, 0xe3, 0x8f, 0xfa, 0x07, 0xa5, 0xa5, 0x6d, 0x6a, 0x06, 0x9b,
-
  0xa3, 0x11, 0x46, 0xd6, 0xd8, 0x16, 0xcf, 0x1b, 0x0a, 0x49, 0x81, 0x52,
-
  0x34, 0xf3, 0x3d, 0x85, 0x9d, 0x7f, 0x4f, 0xf1, 0x4f, 0x14, 0xf4, 0xea,
-
  0x69, 0x15, 0x2d, 0x03, 0x08, 0x77, 0x91, 0xd6, 0x2c, 0xfa, 0x34, 0xfc,
-
  0x3c, 0x9c, 0xac, 0x06, 0xed, 0xcc, 0xb3, 0x12, 0xeb, 0x14, 0x9c, 0x59,
-
  0x00, 0xda, 0x46, 0x6f, 0x91, 0x1c, 0x6c, 0x04, 0x96, 0x9c, 0xcd, 0xa8,
-
  0xf2, 0x6b, 0x6a, 0xdc, 0x9d, 0xed, 0xcd, 0x64, 0x5c, 0x53, 0x6f, 0x1b,
-
  0x89, 0x8e, 0x9c, 0x22, 0xed, 0x06, 0xc2, 0x20, 0x40, 0x96, 0x54, 0xca,
-
  0xe8, 0x6b, 0x72, 0xcd, 0x36, 0xe0, 0x1b, 0x6d, 0x3b, 0x57, 0x45, 0xcf,
-
  0x7e, 0x2c, 0x84, 0x63, 0x68, 0x10, 0xa7, 0xb3, 0xde, 0x0d, 0x37, 0x48,
-
  0x2b, 0x04, 0xf1, 0x87, 0x97, 0xeb, 0x09, 0x89, 0xe3, 0xa0, 0xc2, 0x90,
-
  0x03, 0x49, 0x02, 0x8e, 0xa8, 0x78, 0x81, 0x35, 0xac, 0xa4, 0x38, 0xa3,
-
  0x37, 0x40, 0xf4, 0x18, 0xaa, 0x19, 0xe9, 0xbd, 0xd6, 0x3d, 0x1f, 0xa6,
-
  0x72, 0xbd, 0xf4, 0xe9, 0x7b, 0xc9, 0xe9, 0x8d, 0x8b, 0x6e, 0x70, 0xbd,
-
  0x0d, 0x97, 0x01, 0x61, 0x40, 0x88, 0xec, 0x43, 0x5e, 0x5a, 0x6c, 0x57,
-
  0x38, 0xba, 0x66, 0x90, 0x26, 0xc9, 0xc6, 0xe0, 0xdc, 0x3e, 0xb4, 0x15,
-
  0xe1, 0xd2, 0xbf, 0x9b, 0xe5, 0x1f, 0x42, 0x9e, 0x3c, 0x7d, 0x4d, 0x84,
-
  0xcc, 0x35, 0x94, 0x58, 0x36, 0xc9, 0xe4, 0xda, 0xa6, 0x3d, 0x6b, 0x7a,
-
  0x87, 0x29, 0x8e, 0x8f, 0xc6, 0xbd, 0xf9, 0x68, 0x2b, 0x58, 0x6b, 0xc6,
-
  0xf5, 0x7c, 0x73, 0x97, 0x2f, 0x72, 0xa9, 0x76, 0x62, 0x20, 0x6d, 0x34,
-
  0x3d, 0x4d, 0xbc, 0x08, 0x65, 0x92, 0x49, 0x8c, 0x25, 0xe4, 0x5c, 0xab,
-
  0xa5, 0x4e, 0xce, 0x5e, 0x34, 0x47, 0xd3, 0x2b, 0xe1, 0x29, 0x4a, 0x99,
-
  0xe3, 0x28, 0x3c, 0x92, 0x6a, 0x29, 0x92, 0xa8, 0xe2, 0x02, 0x60, 0xc9,
-
  0x66, 0x5e, 0x2f, 0x79, 0xab, 0x67, 0x82, 0x2d, 0x8f, 0x4e, 0xe4, 0xc9,
-
  0x88, 0x64, 0x66, 0xf8, 0xe3, 0xa2, 0x2c, 0x16, 0xf3, 0x1e, 0x26, 0xa0,
-
  0xe3, 0xfc, 0xb6, 0x04, 0xd8, 0x24, 0x06, 0x77, 0x36, 0x74, 0x67, 0xf1,
-
  0x39, 0xbc, 0x3c, 0x79, 0x7d, 0xd4, 0x31, 0x67, 0x29, 0x15, 0x5d, 0x92,
-
  0xb4, 0xff, 0x78, 0x83, 0x94, 0xec, 0x4e, 0x0c, 0xd9, 0x3f, 0x81, 0x5b,
-
  0x2e, 0xe4, 0x16, 0xe8, 0xf6, 0x36, 0xb6, 0x95, 0xc0, 0xe8, 0x08, 0x99,
-
  0x78, 0x74, 0x90, 0x08, 0x3d, 0x84, 0x45, 0xfd, 0x95, 0xfe, 0xee, 0x5a,
-
  0x84, 0x75, 0x88, 0x92, 0xa3, 0x1c, 0x02, 0x14, 0xde, 0x4f, 0xb8, 0xb2,
-
  0xa2, 0xd5, 0x43, 0xa3, 0x55, 0x8f, 0xa0, 0x92, 0xa4, 0x79, 0xda, 0x1a,
-
  0x6e, 0x30, 0xf1, 0xf1, 0xe3, 0x87, 0x09, 0xf0, 0x37, 0xb8, 0x1f, 0x48,
-
  0x16, 0xc8, 0x29, 0xdb, 0x4d, 0xb3, 0xde, 0xd0, 0x28, 0x80, 0xa1, 0x99,
-
  0xc4, 0xb7, 0x30, 0xbc, 0x39, 0x55, 0x8a, 0xad, 0x25, 0xac, 0xc8, 0xbb,
-
  0x18, 0xe0, 0x33, 0x24, 0x32, 0xb5, 0x3e, 0x4b, 0x46, 0x07, 0xc7, 0x99,
-
  0xb2, 0xef, 0x89, 0x6c, 0xb5, 0x4c, 0x6e, 0xc6, 0x2f, 0x36, 0xa6, 0x37,
-
  0x88, 0x6e, 0xbc, 0xe1, 0x44, 0x2b, 0x63, 0x1f, 0x1b, 0x1c, 0x04, 0xb6,
-
  0x21, 0xb0, 0xbf, 0x94, 0xc3, 0xa3, 0x95, 0xdc, 0xea, 0x82, 0xa0, 0x25,
-
  0x57, 0xf4, 0x02, 0xdf, 0xf0, 0x31, 0xe1, 0xd6, 0xe1, 0xcf, 0x10, 0x01,
-
  0x40, 0x6d, 0x7e, 0xb1, 0x1c, 0xa9, 0xcf, 0x33, 0x6b, 0xc3, 0x8a, 0x0d,
-
  0xf7, 0x5f, 0x33, 0x88, 0xc9, 0xec, 0x4a, 0x4d, 0xab, 0x37, 0x35, 0x76,
-
  0x17, 0x2b, 0xc2, 0xfe, 0xd6, 0xad, 0xb0, 0xde, 0x2c, 0x18, 0xdd, 0x5a,
-
  0x2f, 0x9a, 0x9a, 0xec, 0x31, 0x3b, 0xf1, 0x00, 0x75, 0xfc, 0x39, 0x37,
-
  0x85, 0xa6, 0x6c, 0x0f, 0xcf, 0x62, 0xaf, 0x74, 0x59, 0x81, 0x1a, 0xe7,
-
  0x17, 0xc2, 0xd8, 0xa2, 0x88, 0x03, 0xd7, 0xf4, 0x53, 0x25, 0xea, 0x26,
-
  0xcc, 0x93, 0xe3, 0x66, 0x16, 0x1c, 0x79, 0xa6, 0x95, 0xf7, 0x6a, 0xeb,
-
  0xad, 0x4b, 0xa3, 0xcf, 0x10, 0x79, 0x9b, 0x0e, 0x3b, 0xdc, 0x61, 0xae,
-
  0x3c, 0x9c, 0xde, 0x61, 0x0c, 0xd5, 0x09, 0x13, 0xdb, 0x4c, 0x07, 0x55,
-
  0x31, 0x59, 0xd4, 0xe4, 0xd8, 0xc4, 0x30, 0x02, 0x0c, 0xae, 0x0b, 0x08,
-
  0x18, 0x70, 0xf5, 0x0d, 0x38, 0x7c, 0x73, 0x70, 0xb3, 0x34, 0x55, 0x8e,
-
  0xe8, 0x33, 0x87, 0x8b, 0x5a, 0x81, 0xfc, 0x3a, 0x7d, 0x2e, 0x83, 0x9e,
-
  0xeb, 0x63, 0xad, 0x9d, 0x5e, 0x0b, 0x2b, 0x96, 0xc9, 0x2a, 0x02, 0x8b,
-
  0xe5, 0x25, 0x35, 0x4c, 0xc3, 0x4a, 0x22, 0xe5, 0x75, 0x2f, 0x1b, 0x1b,
-
  0xa8, 0x0b, 0xa3, 0xf1, 0x4a, 0x61, 0x73, 0xdc, 0xee, 0x0c, 0x16, 0x4b,
-
  0xce, 0x70, 0xc9, 0xbf, 0xa5, 0x6d, 0x16, 0x1e, 0x00, 0x6b, 0x90, 0x5e,
-
  0x44, 0x68, 0xaf, 0xe9, 0xc4, 0xea, 0xf2, 0xa2, 0x9d, 0x6f, 0x94, 0x32,
-
  0x8b, 0xab, 0x34, 0x18, 0x5b, 0x98, 0xcf, 0x3c, 0xa4, 0xad, 0xb7, 0x78,
-
  0xa2, 0x1a, 0x1b, 0xb8, 0x0a, 0xbb, 0xb9, 0x21, 0x8f, 0xae, 0x77, 0x20,
-
  0xc3, 0x11, 0x58, 0x63, 0xeb, 0x6c, 0x08, 0xeb, 0x1e, 0xd1, 0xd5, 0x27,
-
  0x34, 0x3e, 0xa0, 0x7d, 0x05, 0xb3, 0xf7, 0xb8, 0x05, 0x81, 0x5c, 0x74,
-
  0xc7, 0x0e, 0xba, 0x92, 0x7e, 0x1f, 0x44, 0x49, 0x5f, 0xe8, 0xd7, 0x21,
-
  0x00, 0x48, 0x78, 0x74, 0x14, 0xe2, 0x6d, 0x45, 0xd0, 0x10, 0xa0, 0xa3,
-
  0x18, 0x52, 0xf9, 0xf2, 0x28, 0x66, 0x4e, 0xb4, 0xd6, 0x34, 0x40, 0x27,
-
  0x31, 0x9f, 0x9f, 0xb9, 0x94, 0x7e, 0x6c, 0x44, 0x63, 0xb9, 0xbb, 0x6c,
-
  0x33, 0x73, 0x32, 0x3e, 0x67, 0x28, 0x26, 0x04, 0xb9, 0xbc, 0x14, 0x31,
-
  0xd8, 0x95, 0xa8, 0x6d, 0xf3, 0x9f, 0x98, 0x33, 0x3f, 0x71, 0xfa, 0xb7,
-
  0x99, 0xd6, 0x4a, 0xbe, 0x24, 0xd1, 0x0c, 0x00, 0xd2, 0x2c, 0x5c, 0x13,
-
  0x16, 0x42, 0x8e, 0xad, 0x60, 0xcf, 0xfd, 0x2f, 0xc2, 0x52, 0x7d, 0xa8,
-
  0xd9, 0x8e, 0x57, 0xb1, 0x47, 0x96, 0xcd, 0x60, 0x16, 0x0b, 0x88, 0xb3,
-
  0x26, 0x4d, 0x50, 0xe1, 0x0f, 0x8a, 0x19, 0x11, 0x8e, 0x94, 0x99, 0xc9,
-
  0x4b, 0x67, 0x16, 0xc1, 0x24, 0xc7, 0x05, 0x28, 0x9a, 0x04, 0xff, 0x76,
-
  0xa5, 0x15, 0x9c, 0x34, 0x07, 0xd4, 0xaa, 0x48, 0x79, 0x2b, 0x36, 0x99,
-
  0x05, 0xfc, 0xce, 0xe4, 0x12, 0x1d, 0x4d, 0xe2, 0x51, 0x92, 0xfc, 0x20,
-
  0xbd, 0x86, 0x01, 0x25, 0x96, 0xa2, 0x99, 0x78, 0xbf, 0x1f, 0xfd, 0x45,
-
  0xce, 0x3e, 0x3b, 0xbe, 0xf4, 0x57, 0x2f, 0xad, 0x86, 0x79, 0x2e, 0xa7,
-
  0x18, 0xbd, 0x9f, 0x18, 0x71, 0x18, 0x2e, 0x6c, 0x74, 0x4b, 0xd9, 0xaa,
-
  0x6a, 0x65, 0xa9, 0x51, 0xc1, 0x45, 0xdb, 0x25, 0xcd, 0x80, 0x73, 0x65,
-
  0x28, 0x16, 0x9f, 0xc2, 0x1c, 0x34, 0xbe, 0x28, 0x8a, 0x0d, 0x44, 0xc7,
-
  0x79, 0xa8, 0xef, 0x70, 0x7d, 0x7d, 0xbd, 0xdb, 0x8f, 0xa2, 0x79, 0x78,
-
  0xa1, 0x7b, 0x58, 0xf4, 0xb5, 0xaa, 0x89, 0x1d, 0xc0, 0x33, 0x7b, 0xfd,
-
  0xb6, 0x8a, 0xa5, 0xf4, 0xe4, 0x3d, 0x81, 0xd8, 0xb6, 0xc1, 0xc0, 0xae,
-
  0x33, 0x16, 0x7f, 0x84, 0x8f, 0x6f, 0x6b, 0xa5, 0xf9, 0x15, 0x1c, 0xbd,
-
  0xed, 0xd5, 0x76, 0xad, 0x15, 0xdc, 0xb4, 0xe8, 0xa5, 0x93, 0xb9, 0xcf,
-
  0x8d, 0x3a, 0xdb, 0x32, 0x26, 0x84, 0x24, 0x72, 0xf8, 0xea, 0xf4, 0x0d,
-
  0xc1, 0x27, 0x99, 0xdd, 0xaa, 0xcf, 0x9f, 0x61, 0x66, 0xec, 0x8c, 0x8d,
-
  0x81, 0xae, 0x70, 0x87, 0xc9, 0xbf, 0xea, 0x0a, 0x46, 0x1b, 0xa4, 0xd3,
-
  0x33, 0x29, 0x03, 0x36, 0xc0, 0x7b, 0xf1, 0xcd, 0x69, 0xba, 0x23, 0x36,
-
  0x8c, 0x40, 0x5a, 0xf0, 0x4f, 0x54, 0xe6, 0x25, 0x91, 0xe2, 0x86, 0x06,
-
  0xdc, 0x11, 0xbf, 0x26, 0x15, 0xb3, 0x89, 0xe4, 0x83, 0x62, 0x24, 0x9f,
-
  0x6a, 0xd5, 0x3a, 0x36, 0x3d, 0x58, 0x9c, 0x84, 0xd8, 0x2b, 0xc4, 0x5d,
-
  0x46, 0x4b, 0xa9, 0x81, 0xd2, 0x95, 0x4f, 0xed, 0x74, 0x10, 0x79, 0xb9,
-
  0x7a, 0x46, 0x11, 0x98, 0x05, 0x06, 0x25, 0xfc, 0x92, 0xc4, 0xbf, 0x51,
-
  0x31, 0x5c, 0xa0, 0xe0, 0xad, 0xf6, 0x76, 0x8d, 0x53, 0x56, 0xc2, 0xc2,
-
  0x45, 0xa6, 0x62, 0xcd, 0xac, 0xc1, 0xcb, 0x4c, 0x23, 0xb1, 0x8d, 0x77,
-
  0xe2, 0x3e, 0x42, 0xd0, 0xb1, 0x9d, 0x3b, 0x6e, 0x06, 0xe9, 0xec, 0xb6,
-
  0xea, 0xbd, 0xfa, 0xcc, 0x4a, 0x38, 0x9b, 0x65, 0x3c, 0x1b, 0xa0, 0x93,
-
  0x16, 0x28, 0x1b, 0xbc, 0xb5, 0xe6, 0xb3, 0x36, 0x00, 0xf8, 0x37, 0x5d,
-
  0xfe, 0x7a, 0xb0, 0x18, 0x5b, 0x69, 0xf6, 0xe7, 0xde, 0xcd, 0x9d, 0xf0,
-
  0x37, 0x0c, 0x22, 0xa6, 0x7e, 0xfa, 0x62, 0x51, 0xcf, 0x17, 0xb5, 0x1a,
-
  0x44, 0xd1, 0xf0, 0x3f, 0xd3, 0xdc, 0x69, 0x8e, 0xb6, 0xd5, 0x02, 0xb2,
-
  0x70, 0x83, 0x09, 0x0f, 0x77, 0xa1, 0xc7, 0x2e, 0x9b, 0x9e, 0x1b, 0x27,
-
  0x03, 0x1b, 0x37, 0xc9, 0x2d, 0x8a, 0x38, 0x67, 0x89, 0x2e, 0x84, 0x3e,
-
  0x27, 0x2e, 0x61, 0xfa, 0x8a, 0xe0, 0x25, 0xe8, 0x8d, 0xca, 0xa1, 0x93,
-
  0xa3, 0xe5, 0x68, 0x78, 0xb9, 0x98, 0xbd, 0x87, 0xfe, 0xb8, 0x2c, 0x88,
-
  0x24, 0x58, 0xe6, 0x9a, 0x89, 0x00, 0xab, 0x3c, 0xac, 0xad, 0xb6, 0x41,
-
  0x00, 0x5a, 0x4f, 0x41, 0x23, 0xba, 0x42, 0x29, 0xe2, 0x9d, 0xe6, 0x0f,
-
  0x39, 0xcb, 0xa0, 0xb9, 0xfd, 0x5d, 0xad, 0x16, 0x5b, 0x95, 0xcf, 0x40,
-
  0xa9, 0xdc, 0xb6, 0xa3, 0xd5, 0xb0, 0x05, 0x44, 0x64, 0x4b, 0x54, 0x2b,
-
  0x2f, 0xfc, 0xfe, 0xa2, 0x8c, 0xdc, 0xd0, 0x9d, 0x84, 0x2b, 0xfd, 0xad,
-
  0x5b, 0x90, 0xf1, 0x02, 0x03, 0x15, 0x7b, 0x03, 0x07, 0x4e, 0x0c, 0x6d,
-
  0x0c, 0xe1, 0x6e, 0x33, 0x34, 0x4d, 0xb1, 0x49, 0x2d, 0x43, 0x00, 0x07,
-
  0x6e, 0xd1, 0xeb, 0xf1, 0x7e, 0x77, 0x39, 0xa9, 0x1b, 0x2b, 0xd7, 0x48,
-
  0x42, 0x49, 0x8f, 0x22, 0xfc, 0x74, 0xf1, 0xe4, 0x2b, 0x29, 0xb8, 0x48,
-
  0xc1, 0x15, 0xf1, 0xa7, 0x3d, 0xba, 0xe8, 0x9d, 0x70, 0x21, 0xa6, 0x8a,
-
  0x84, 0xeb, 0xa2, 0x3b, 0xeb, 0x3e, 0x02, 0x2d, 0x91, 0xa3, 0x52, 0xe2,
-
  0x14, 0xc8, 0x2d, 0xc0, 0xa0, 0x73, 0x64, 0x0a, 0x27, 0xba, 0x97, 0xdc,
-
  0x70, 0xf6, 0xb8, 0x49, 0x62, 0xa9, 0x07, 0x0a, 0xbd, 0x20, 0xd9, 0x42,
-
  0x30, 0x6c, 0xd4, 0xe1, 0xc0, 0xc1, 0x95, 0xe3, 0x60, 0xd3, 0xa0, 0xc6,
-
  0x15, 0x42, 0x07, 0x13, 0x99, 0x90, 0x68, 0xba, 0x08, 0x07, 0x64, 0x11,
-
  0x14, 0x86, 0x51, 0xb9, 0xbb, 0xb3, 0x23, 0x59, 0x70, 0x1c, 0xa3, 0xa6,
-
  0x19, 0x94, 0x94, 0x3a, 0x47, 0x6f, 0x52, 0x36, 0x9f, 0x08, 0x80, 0xb7,
-
  0x10, 0xe7, 0x3a, 0xb4, 0xc9, 0x29, 0x7a, 0x97, 0x8b, 0x10, 0x97, 0x4e,
-
  0xeb, 0x29, 0xbb, 0x27, 0xca, 0x3a, 0xd9, 0xf0, 0x04, 0xe0, 0x43, 0xf1,
-
  0x2c, 0xe5, 0x09, 0x58, 0xbf, 0xae, 0x65, 0x0f, 0xd0, 0xbd, 0xd4, 0xd8,
-
  0x28, 0xb7, 0x87, 0xe4, 0xa5, 0x37, 0x05, 0x2b, 0x8a, 0xfd, 0xa3, 0x5b,
-
  0x93, 0xaa, 0xfe, 0xf6, 0x90, 0x31, 0x04, 0x5d, 0x56, 0x0b, 0xc0, 0x73,
-
  0xf8, 0x1f, 0xdf, 0x54, 0x2e, 0xed, 0xb6, 0x69, 0x47, 0x96, 0x51, 0x2d,
-
  0x9d, 0x20, 0x9b, 0xcf, 0xfa, 0xc6, 0xc1, 0x95, 0x87, 0x48, 0xfb, 0xb8,
-
  0xeb, 0x14, 0x69, 0x9f, 0x4a, 0xd9, 0x2c, 0x7c, 0x52, 0x4e, 0xfd, 0x1d,
-
  0x3e, 0x33, 0x5f, 0x17, 0x7d, 0xbf, 0x61, 0xcb, 0x96, 0xb6, 0xd4, 0x5f,
-
  0x69, 0x64, 0xef, 0xcf, 0x9e, 0x01, 0xa7, 0xb6, 0xf0, 0x7b, 0x71, 0xae,
-
  0x05, 0xbc, 0x59, 0x89, 0xc5, 0x27, 0x23, 0x9c, 0x62, 0x00, 0x7b, 0x58,
-
  0x6f, 0x67, 0xb7, 0x09, 0x89, 0x8d, 0x59, 0x70, 0xd7, 0x4d, 0x5d, 0x4c,
-
  0xc6, 0x67, 0xa1, 0x47, 0x07, 0x04, 0xcb, 0xd4, 0x68, 0xb4, 0x18, 0x50,
-
  0xa6, 0x93, 0x86, 0x31, 0x78, 0x69, 0x0d, 0xee, 0xd1, 0x5d, 0xe1, 0xb1,
-
  0xad, 0x6f, 0xa7, 0x80, 0x30, 0xee, 0x35, 0xe1, 0x06, 0x5b, 0xc0, 0xb4,
-
  0x23, 0x10, 0x5c, 0xbf, 0xc9, 0xb3, 0xa6, 0x4c, 0x49, 0xfd, 0xce, 0x50,
-
  0x9a, 0x96, 0x7b, 0xf8, 0xcd, 0xe9, 0x9b, 0x38, 0xd7, 0xbd, 0x81, 0x3d,
-
  0xcc, 0x2e, 0x64, 0x54, 0x39, 0xb8, 0x21, 0xa0, 0xb6, 0xc7, 0xe8, 0x43,
-
  0xfe, 0x22, 0x22, 0x1b, 0x3e, 0xf0, 0x6f, 0x30, 0x68, 0x9b, 0xaa, 0x76,
-
  0x3b, 0x29, 0x95, 0x3e, 0x45, 0x31, 0x45, 0xc5, 0xd4, 0xa8, 0xc0, 0x9c,
-
  0xf1, 0x82, 0x65, 0x41, 0x55, 0x12, 0x9d, 0x59, 0x50, 0x8d, 0x25, 0xd5,
-
  0x20, 0x73, 0xbe, 0x41, 0xf9, 0x8d, 0xfa, 0xf5, 0x59, 0x33, 0x2c, 0xa7,
-
  0x6a, 0x93, 0xb1, 0x94, 0x1a, 0x84, 0xd4, 0x20, 0xa3, 0xca, 0x67, 0xfa,
-
  0x90, 0x4b, 0x58, 0xbc, 0x53, 0x46, 0x6d, 0x32, 0x91, 0x99, 0x97, 0x1d,
-
  0x3f, 0xbd, 0x30, 0xf2, 0x1a, 0x92, 0xe3, 0xec, 0x6e, 0xc1, 0x71, 0xb6,
-
  0x52, 0x6e, 0x8c, 0x70, 0x10, 0xef, 0x16, 0x1c, 0x49, 0x02, 0x6d, 0x2b,
-
  0x1d, 0x04, 0xdf, 0xd9, 0xe5, 0x3e, 0xcd, 0xac, 0xe8, 0xf1, 0x89, 0xc5,
-
  0x50, 0x89, 0x4b, 0xb7, 0x18, 0x8b, 0xd8, 0xa8, 0x4f, 0x27, 0xf4, 0xb4,
-
  0x89, 0x7c, 0x52, 0x68, 0x1e, 0xed, 0x1d, 0x2c, 0x65, 0x96, 0x4d, 0x6e,
-
  0x02, 0xd7, 0x1d, 0x21, 0xab, 0xe3, 0xb7, 0xd7, 0x29, 0xd7, 0x80, 0x12,
-
  0x93, 0x84, 0x4b, 0xea, 0x43, 0xd9, 0xd3, 0x98, 0x15, 0x67, 0x15, 0xeb,
-
  0x34, 0xaa, 0x9c, 0x30, 0x10, 0x3d, 0xbe, 0xe1, 0x3d, 0xb3, 0xa0, 0x78,
-
  0x25, 0x9c, 0xec, 0xd6, 0x32, 0x71, 0x11, 0xe2, 0x5a, 0x0c, 0x56, 0xcd,
-
  0x15, 0x5d, 0x2b, 0x6e, 0xfa, 0x76, 0x83, 0x55, 0xdc, 0xe0, 0x9d, 0x94,
-
  0xd5, 0xe8, 0xbf, 0x57, 0x70, 0x11, 0xf2, 0xf5, 0x2e, 0xa3, 0xc7, 0x5f,
-
  0x36, 0x2e, 0x23, 0x31, 0x50, 0x28, 0xc6, 0x18, 0xed, 0x82, 0xa7, 0x1f,
-
  0x39, 0x4a, 0xf9, 0xc8, 0xc3, 0xd4, 0xea, 0x7c, 0x70, 0x50, 0x1b, 0x95,
-
  0x5e, 0x48, 0xc8, 0x09, 0xb4, 0x6e, 0xc6, 0xf1, 0x73, 0xd8, 0x03, 0xb4,
-
  0xd6, 0x5f, 0xf4, 0x93, 0xef, 0x5d, 0x92, 0x02, 0x48, 0x76, 0x5a, 0x4a,
-
  0x8f, 0x83, 0xb0, 0xd8, 0xef, 0x4e, 0x95, 0x86, 0x42, 0x76, 0x08, 0xbe,
-
  0x9a, 0x79, 0x00, 0x18, 0x0e, 0x95, 0xc5, 0x70, 0x26, 0xc6, 0x98, 0xbb,
-
  0x0c, 0xa9, 0xfa, 0xc4, 0x2d, 0x11, 0x95, 0xe2, 0x72, 0x01, 0x67, 0x04,
-
  0xb9, 0x57, 0x5a, 0xd7, 0xd9, 0x74, 0xce, 0x81, 0xc2, 0x98, 0xb0, 0x40,
-
  0x12, 0x51, 0x3c, 0x38, 0x36, 0xf5, 0x72, 0xe9, 0x81, 0x6c, 0x6a, 0x2e,
-
  0x0d, 0x90, 0x50, 0x04, 0x29, 0x1f, 0x1f, 0x27, 0xff, 0x08, 0x92, 0x55,
-
  0x2a, 0xa6, 0x1d, 0xf1, 0xea, 0x5c, 0xe7, 0x58, 0xbd, 0x45, 0xd3, 0x63,
-
  0xe5, 0x04, 0x3b, 0xcb, 0x76, 0x6d, 0x61, 0xc8, 0x42, 0xb8, 0x33, 0x46,
-
  0x06, 0x27, 0xeb, 0x96, 0xe4, 0x95, 0x57, 0x8b, 0x21, 0xa6, 0x24, 0x7c,
-
  0x1e, 0xe9, 0xaf, 0x17, 0x76, 0x4d, 0xa5, 0xbf, 0x20, 0xfc, 0xb9, 0x1d,
-
  0x4a, 0xc2, 0x1e, 0xb5, 0x93, 0x7a, 0x68, 0x66, 0xe5, 0xe5, 0x7b, 0xcb,
-
  0xdd, 0xdb, 0x42, 0xea, 0xd6, 0xe0, 0x9d, 0x54, 0x1e, 0xba, 0x5e, 0xeb,
-
  0xe2, 0x75, 0x85, 0xea, 0x75, 0xf4, 0xe4, 0xaa, 0x4d, 0x9e, 0xf2, 0x89,
-
  0xf9, 0x70, 0x43, 0x28, 0x49, 0xdf, 0x2a, 0x90, 0xca, 0x74, 0x9a, 0xf6,
-
  0xd4, 0xba, 0x3a, 0xe2, 0x2c, 0x24, 0x49, 0xc6, 0x67, 0x23, 0x24, 0xcb,
-
  0xed, 0x28, 0xb7, 0x0a, 0x4a, 0x11, 0xe2, 0x9c, 0x43, 0x2b, 0x0c, 0x18,
-
  0x0f, 0xd4, 0x6a, 0xa6, 0x17, 0xe7, 0x6f, 0x40, 0x41, 0x98, 0x6b, 0x19,
-
  0x20, 0x89, 0x50, 0x75, 0x9e, 0xbc, 0x72, 0x19, 0x6b, 0x9d, 0xff, 0xec,
-
  0x60, 0xf6, 0x4b, 0x09, 0x0a, 0x6e, 0x56, 0x76, 0x05, 0x51, 0xc0, 0x55,
-
  0xdf, 0xe4, 0xda, 0xc9, 0x3c, 0x0a, 0xa9, 0x6c, 0x62, 0x05, 0x2b, 0xa0,
-
  0x55, 0xaf, 0xe4, 0x66, 0x3c, 0x9c, 0x7e, 0x72, 0x44, 0x76, 0xda, 0x99,
-
  0x55, 0xf7, 0x51, 0xf4, 0x2d, 0x9e, 0x13, 0x95, 0x4c, 0xa2, 0xa6, 0x39,
-
  0x77, 0x4c, 0x3c, 0xa5, 0xa9, 0x25, 0x88, 0xc9, 0x44, 0x05, 0x71, 0xdb,
-
  0xe7, 0x09, 0x04, 0x60, 0x02, 0x85, 0x67, 0x0a, 0x75, 0xc9, 0x6b, 0xae,
-
  0x51, 0x1a, 0xc7, 0xcc, 0x77, 0x48, 0x38, 0xc6, 0xed, 0xe9, 0x44, 0x58,
-
  0x1a, 0x5c, 0x58, 0xd4, 0x7d, 0x0b, 0x53, 0x0b, 0x7f, 0x1d, 0x3c, 0xd9,
-
  0xe9, 0xc8, 0x5c, 0x3b, 0xd7, 0xd7, 0xd7, 0xfd, 0xe8, 0x31, 0xf2, 0x4d,
-
  0x58, 0xec, 0x00, 0x7d, 0x0f, 0x7f, 0x85, 0x47, 0xda, 0x42, 0x38, 0x1a,
-
  0x10, 0x1f, 0xde, 0xdf, 0xab, 0xde, 0x5e, 0x8d, 0x97, 0xd5, 0x53, 0x1a,
-
  0x26, 0xcd, 0x34, 0xb3, 0xd9, 0x99, 0x15, 0xbf, 0xd2, 0xaf, 0x1d, 0xb9,
-
  0xc3, 0x3a, 0x6f, 0x4e, 0x7e, 0x3d, 0x7d, 0x7b, 0xf2, 0x97, 0xbf, 0x76,
-
  0x38, 0x97, 0x58, 0xb9, 0x47, 0xce, 0x70, 0x81, 0xbe, 0x17, 0xb5, 0x37,
-
  0x4b, 0xd9, 0x60, 0xee, 0x83, 0xa3, 0x2a, 0x84, 0x82, 0xd4, 0x8c, 0x5b,
-
  0x89, 0x2b, 0x6d, 0x56, 0x48, 0xbf, 0xb4, 0x65, 0x78, 0x5c, 0x3b, 0x9d,
-
  0x00, 0x81, 0x21, 0xd3, 0x49, 0x42, 0x7c, 0xfc, 0xf1, 0xa9, 0xab, 0x99,
-
  0x18, 0x92, 0xeb, 0xea, 0xa2, 0xbd, 0xbe, 0x7b, 0x23, 0xf0, 0x34, 0x79,
-
  0x76, 0xfc, 0xfc, 0xad, 0x82, 0x93, 0xd4, 0x82, 0xc8, 0x94, 0x3a, 0x75,
-
  0x05, 0x05, 0xc8, 0x03, 0x9c, 0x95, 0xa9, 0xc4, 0xd5, 0x04, 0xab, 0xd0,
-
  0x91, 0xb7, 0x47, 0x42, 0xc8, 0x2d, 0xb1, 0x24, 0x18, 0x7f, 0x7c, 0xc9,
-
  0x10, 0x8d, 0xb3, 0x1b, 0x10, 0x02, 0x08, 0xe5, 0xf1, 0x8b, 0x2a, 0x1d,
-
  0x92, 0x22, 0x15, 0xfd, 0x2b, 0x9f, 0x45, 0xb1, 0x4d, 0xd3, 0x39, 0xd6,
-
  0x42, 0x41, 0xd1, 0xd4, 0x99, 0xbe, 0x93, 0xce, 0xee, 0x57, 0x7b, 0xfd,
-
  0xdd, 0xc7, 0x4f, 0xb0, 0x92, 0xfa, 0xf6, 0xee, 0xe3, 0x8e, 0x28, 0xe2,
-
  0x4c, 0x5a, 0x64, 0x2d, 0xb0, 0x15, 0xd1, 0xfa, 0x02, 0x3e, 0x87, 0x40,
-
  0x5f, 0xef, 0x68, 0x00, 0xac, 0x72, 0x87, 0xdb, 0x0a, 0xc7, 0x87, 0xa9,
-
  0x7d, 0x92, 0x47, 0x50, 0x7a, 0x20, 0xa2, 0x95, 0x69, 0x74, 0xd6, 0xb6,
-
  0xc7, 0x7c, 0x08, 0xa8, 0xe5, 0x18, 0x87, 0x12, 0xc5, 0x37, 0xa1, 0x6f,
-
  0xe8, 0xcd, 0xf9, 0xab, 0xd7, 0x4b, 0xc1, 0x1a, 0xc8, 0x7e, 0x5a, 0xbe,
-
  0x30, 0x94, 0x1b, 0xc3, 0x1d, 0x82, 0xc3, 0x91, 0x5f, 0xcc, 0xc4, 0x26,
-
  0xfd, 0x3a, 0x1f, 0x96, 0x45, 0x55, 0x8c, 0x43, 0x49, 0x16, 0x33, 0x26,
-
  0x1f, 0x1f, 0x83, 0xb2, 0x70, 0x9d, 0x0d, 0x34, 0x6c, 0xb0, 0x4f, 0x1e,
-
  0xd8, 0x3c, 0x40, 0x1e, 0x62, 0xe8, 0x50, 0x99, 0x67, 0x35, 0x15, 0x49,
-
  0x53, 0x44, 0x89, 0x2e, 0x46, 0xc9, 0xe2, 0xe3, 0x99, 0x54, 0x5c, 0x60,
-
  0xeb, 0x21, 0xf6, 0x35, 0x9c, 0xd0, 0x6d, 0x9d, 0xcc, 0xb3, 0x82, 0xee,
-
  0x12, 0xf3, 0x4e, 0xd8, 0x55, 0xeb, 0xa2, 0x66, 0x09, 0x9a, 0x57, 0xe3,
-
  0x4a, 0xf2, 0x12, 0x59, 0x21, 0xaa, 0x08, 0xe2, 0xca, 0x7a, 0x8f, 0x91,
-
  0x19, 0x48, 0x6b, 0x9a, 0x67, 0x28, 0xfb, 0xce, 0xb1, 0x21, 0x64, 0x70,
-
  0x18, 0xe0, 0xe9, 0x1f, 0x15, 0x25, 0x27, 0x2d, 0x10, 0x70, 0x8b, 0x44,
-
  0x8e, 0x64, 0xb3, 0x61, 0xb1, 0x28, 0x31, 0x7d, 0x1d, 0xc7, 0x73, 0xc3,
-
  0x95, 0x19, 0x2e, 0xd9, 0x8b, 0x2d, 0x6b, 0x44, 0x0b, 0x19, 0x24, 0x64,
-
  0x49, 0xb2, 0x92, 0x92, 0xd5, 0xb4, 0x52, 0xe1, 0x26, 0x5e, 0x02, 0xf7,
-
  0xe2, 0x15, 0x0f, 0x0e, 0x23, 0xb2, 0x3f, 0x69, 0xc4, 0xe5, 0xf3, 0xfc,
-
  0x82, 0xe1, 0xf6, 0x7c, 0xec, 0x3b, 0xa1, 0x50, 0x07, 0x91, 0x94, 0x7a,
-
  0x17, 0x71, 0xa1, 0x14, 0xee, 0x10, 0x77, 0xc2, 0x11, 0x81, 0x33, 0x6f,
-
  0x94, 0x94, 0xd8, 0x24, 0xa0, 0x97, 0x86, 0xde, 0x03, 0x9f, 0xfc, 0xee,
-
  0x0a, 0xa8, 0xd4, 0xc8, 0x5a, 0x98, 0x2b, 0x26, 0x3f, 0xe0, 0x1b, 0x1f,
-
  0x6b, 0x17, 0x3f, 0x5f, 0x8a, 0xb7, 0xf4, 0x3e, 0xf2, 0xb6, 0x9a, 0x7f,
-
  0x12, 0xb0, 0xe5, 0xc3, 0xbd, 0xe8, 0xaf, 0x11, 0x2d, 0x73, 0x14, 0x19,
-
  0x21, 0xa1, 0x5c, 0xfd, 0xa5, 0xc3, 0xc6, 0x8b, 0xe6, 0x4f, 0x5c, 0xef,
-
  0x7a, 0x10, 0x1d, 0xba, 0xe7, 0x19, 0x02, 0x21, 0x7b, 0x69, 0x2c, 0xf0,
-
  0xcc, 0x27, 0xfd, 0x27, 0x4e, 0xe7, 0x3e, 0x12, 0x45, 0x9a, 0xb6, 0x70,
-
  0x4a, 0x6e, 0x50, 0x91, 0x1b, 0xab, 0xfa, 0x66, 0x92, 0xd9, 0xca, 0xa0,
-
  0xa6, 0x23, 0x57, 0xdc, 0x65, 0x4a, 0x6c, 0xb6, 0x81, 0x9d, 0xd1, 0x20,
-
  0x2a, 0x06, 0x67, 0x0b, 0x1e, 0xe1, 0xec, 0x03, 0x08, 0x3c, 0xb5, 0xde,
-
  0x5f, 0x28, 0x23, 0xd3, 0x05, 0x4f, 0x9f, 0xe2, 0x79, 0xbb, 0xb6, 0x24,
-
  0x1e, 0x4c, 0x43, 0x88, 0x83, 0xed, 0x6c, 0x8e, 0xf7, 0x42, 0x16, 0xd8,
-
  0xce, 0x47, 0x50, 0x86, 0x8f, 0x47, 0xc1, 0x85, 0x88, 0x02, 0xeb, 0xfc,
-
  0x3e, 0x14, 0xb8, 0x02, 0x7b, 0xbd, 0x41, 0x06, 0x1a, 0x42, 0x99, 0x3c,
-
  0xad, 0x51, 0x30, 0x5f, 0xc6, 0xd2, 0x31, 0x28, 0x9d, 0x44, 0x93, 0x9e,
-
  0x1c, 0xee, 0xfb, 0xf7, 0xfc, 0xee, 0x39, 0xc9, 0xf4, 0x78, 0x9e, 0x4e,
-
  0x10, 0x85, 0x23, 0x49, 0xf6, 0xfa, 0x3b, 0xb7, 0x61, 0xe9, 0xb0, 0x4d,
-
  0x53, 0x5e, 0x96, 0xb7, 0x03, 0x67, 0x24, 0x1f, 0x46, 0xb0, 0x80, 0x37,
-
  0xec, 0x11, 0x16, 0xec, 0x24, 0x65, 0x3a, 0xc4, 0x51, 0x1a, 0xe7, 0xf0,
-
  0x23, 0xe8, 0xab, 0x5e, 0x89, 0xbd, 0x1e, 0xa9, 0xfc, 0xca, 0xc1, 0xa2,
-
  0xe8, 0xc9, 0x28, 0x7a, 0x38, 0x9a, 0x0c, 0xae, 0x5a, 0x88, 0xc3, 0x2c,
-
  0x35, 0xe6, 0x8e, 0xb8, 0xd1, 0x70, 0x48, 0xc5, 0x0c, 0x48, 0xfd, 0x21,
-
  0x48, 0x9c, 0xc7, 0x5f, 0x3e, 0xda, 0xe9, 0xbb, 0x4a, 0xe3, 0xf1, 0xca,
-
  0xde, 0x96, 0x61, 0x10, 0xdf, 0x7f, 0x7c, 0x01, 0x46, 0x5e, 0xc7, 0xdb,
-
  0xc9, 0x23, 0xee, 0xa8, 0x33, 0x7d, 0xf1, 0xeb, 0x57, 0xfd, 0xef, 0x1f,
-
  0x8d, 0x7b, 0x0f, 0xfb, 0xbb, 0xff, 0xf5, 0xf7, 0xd7, 0x9d, 0x4f, 0x08,
-
  0xc9, 0x14, 0x72, 0x19, 0x29, 0x13, 0xa5, 0x25, 0x2b, 0xba, 0xc1, 0xac,
-
  0xea, 0xcb, 0x3d, 0xfc, 0x54, 0x22, 0x78, 0x97, 0x7c, 0x21, 0x86, 0xfd,
-
  0x50, 0x5e, 0xd3, 0x83, 0xf2, 0x56, 0xf5, 0x08, 0x1e, 0xeb, 0x07, 0xdc,
-
  0xf4, 0x32, 0xf3, 0x99, 0x34, 0x18, 0x5c, 0x30, 0x90, 0x15, 0x1d, 0x67,
-
  0x78, 0x21, 0xd8, 0xc1, 0xd1, 0x6b, 0xa0, 0xea, 0xfa, 0x2b, 0x86, 0x01,
-
  0x56, 0xb1, 0x3f, 0x8d, 0xcd, 0xe0, 0x86, 0x6e, 0x3c, 0x3c, 0x53, 0xd2,
-
  0xf9, 0x43, 0x47, 0xc3, 0x0d, 0xf4, 0x8a, 0x4c, 0x4d, 0x90, 0xca, 0x67,
-
  0x2e, 0xe5, 0x56, 0xc0, 0x2b, 0xce, 0xcd, 0xbb, 0x65, 0x02, 0x66, 0x5e,
-
  0xc9, 0x4d, 0x50, 0x66, 0x84, 0x6d, 0x39, 0x52, 0xd6, 0x28, 0x25, 0xce,
-
  0x38, 0xf3, 0x41, 0xea, 0x2d, 0x85, 0xe0, 0x11, 0x18, 0x96, 0x87, 0x6c,
-
  0xa1, 0x49, 0x21, 0x93, 0x78, 0x85, 0x48, 0x6f, 0xf9, 0x2c, 0x84, 0x0a,
-
  0x74, 0x70, 0x8f, 0x60, 0x8b, 0xfe, 0x09, 0xb7, 0x64, 0x17, 0xc4, 0xba,
-
  0x7f, 0x79, 0x3f, 0x7c, 0x07, 0xcd, 0x0f, 0x1d, 0x1c, 0xe0, 0xaf, 0x7f,
-
  0xd8, 0xc5, 0xca, 0x98, 0x5a, 0x99, 0xb9, 0x20, 0x0b, 0xa6, 0x51, 0x53,
-
  0x90, 0xbc, 0xd1, 0xe6, 0xd3, 0xd2, 0x38, 0xa2, 0xac, 0x75, 0x51, 0xc1,
-
  0xf8, 0x57, 0x1f, 0x7f, 0xfe, 0x6d, 0xb7, 0xf7, 0xe8, 0x97, 0x20, 0x36,
-
  0x61, 0x27, 0x7f, 0xd8, 0xfd, 0xf5, 0x0f, 0x7b, 0x1d, 0x87, 0x72, 0xe5,
-
  0xc0, 0x7d, 0x5d, 0xa2, 0x59, 0x45, 0x49, 0x87, 0xaa, 0xa6, 0xa6, 0x71,
-
  0x9e, 0x2e, 0x6c, 0x34, 0xcc, 0xbb, 0x72, 0xba, 0x3a, 0x06, 0x8a, 0x34,
-
  0x15, 0x19, 0x2d, 0xb5, 0xac, 0x09, 0x40, 0x18, 0xda, 0xc9, 0xef, 0x45,
-
  0x95, 0x88, 0x97, 0xe3, 0x2b, 0x82, 0x68, 0x8f, 0xe3, 0x42, 0x6c, 0x7b,
-
  0x05, 0x1a, 0x0f, 0x33, 0x86, 0xa9, 0xa4, 0x69, 0x12, 0x05, 0x2a, 0x14,
-
  0xc9, 0x60, 0x90, 0xb8, 0xf8, 0x84, 0x2f, 0x42, 0x4c, 0x28, 0x76, 0xc6,
-
  0xb6, 0x03, 0x65, 0x16, 0x85, 0x45, 0x9a, 0xe8, 0xf7, 0x34, 0xb2, 0x10,
-
  0x3e, 0x4b, 0x4c, 0x00, 0xb4, 0x4b, 0x44, 0xbb, 0x6e, 0x14, 0xb7, 0x1e,
-
  0xe7, 0x25, 0xde, 0x88, 0xd0, 0x46, 0x5e, 0x05, 0x52, 0xe0, 0x4f, 0x2d,
-
  0x84, 0x08, 0x03, 0xcd, 0x50, 0xbc, 0x50, 0x24, 0xe5, 0x74, 0x50, 0x5c,
-
  0x05, 0xe9, 0xdc, 0x82, 0x3a, 0x68, 0x9a, 0x74, 0x40, 0x81, 0xb9, 0x69,
-
  0xbd, 0x13, 0x10, 0x30, 0x75, 0x9e, 0x7e, 0x86, 0x1e, 0x3f, 0x83, 0xe7,
-
  0x4f, 0x73, 0x6e, 0x9e, 0x74, 0x66, 0x86, 0xec, 0x1f, 0xeb, 0x51, 0x46,
-
  0xa5, 0xd5, 0x23, 0x28, 0xd4, 0x6d, 0xc6, 0xb8, 0x5a, 0x04, 0x28, 0xec,
-
  0xb0, 0xa8, 0x45, 0xac, 0xbd, 0x81, 0x53, 0xc2, 0xb1, 0xd0, 0x7d, 0xbd,
-
  0x05, 0x0c, 0x1d, 0x54, 0x9d, 0x2e, 0x55, 0xb2, 0xd1, 0xdb, 0xc0, 0xdc,
-
  0x2b, 0x55, 0xca, 0xb1, 0xc2, 0xf6, 0x16, 0xc7, 0xa1, 0x7a, 0x75, 0x26,
-
  0x30, 0x0d, 0x61, 0x0d, 0xca, 0x88, 0x59, 0x60, 0x21, 0x1d, 0x26, 0xc0,
-
  0x5a, 0x16, 0xa3, 0x3c, 0xab, 0xc2, 0xf6, 0x1b, 0xa8, 0x68, 0x68, 0x65,
-
  0x7b, 0x94, 0x5d, 0x6d, 0xcf, 0x16, 0x93, 0xc9, 0x41, 0xeb, 0x12, 0xf5,
-
  0xdc, 0x13, 0x1a, 0x5c, 0xcc, 0x06, 0x23, 0x09, 0xef, 0x5d, 0xf9, 0x1a,
-
  0xbc, 0xf1, 0xc5, 0x72, 0xc1, 0x93, 0x50, 0x66, 0x9c, 0xee, 0x1b, 0x0d,
-
  0x09, 0x9a, 0xe6, 0xb3, 0x45, 0x25, 0xd9, 0xbe, 0x64, 0x0e, 0x8a, 0x62,
-
  0x05, 0x0c, 0x64, 0x9b, 0x66, 0xcc, 0x05, 0x1c, 0x4c, 0xff, 0x54, 0x63,
-
  0x1f, 0x97, 0x65, 0x43, 0x53, 0xae, 0x56, 0x47, 0xd6, 0xd7, 0x19, 0xdd,
-
  0x0b, 0xf1, 0x63, 0x34, 0xe4, 0x50, 0x92, 0x84, 0x11, 0xd8, 0xd7, 0x86,
-
  0xdf, 0xc2, 0xf2, 0xb7, 0x7f, 0x9b, 0x67, 0x17, 0x38, 0x97, 0x9e, 0x09,
-
  0x8f, 0xd2, 0x26, 0x9a, 0x4f, 0x2c, 0xa2, 0x4d, 0xb1, 0x55, 0x65, 0x32,
-
  0x40, 0xb1, 0x7d, 0x52, 0x86, 0xb0, 0xc8, 0x09, 0xe6, 0xea, 0x20, 0xd0,
-
  0x0d, 0xd1, 0x71, 0x10, 0x7d, 0x70, 0x43, 0x3c, 0x1f, 0xa2, 0xb3, 0xb2,
-
  0x14, 0xa0, 0x74, 0x7b, 0x22, 0x63, 0xb1, 0x3a, 0x3f, 0xce, 0x3d, 0xf6,
-
  0xb1, 0x6c, 0xb2, 0xed, 0xd5, 0xb5, 0x99, 0xe0, 0x7a, 0xc3, 0xd3, 0xef,
-
  0xf6, 0xda, 0x82, 0xa0, 0xdc, 0xe1, 0x4b, 0x2c, 0x1c, 0x97, 0xff, 0xb3,
-
  0xe4, 0xa1, 0x5f, 0xe1, 0x9f, 0x4f, 0xe2, 0xb8, 0xe3, 0x65, 0x6f, 0x71,
-
  0x90, 0xe4, 0x68, 0x37, 0xf1, 0x4c, 0x27, 0x4f, 0xe1, 0x47, 0x4b, 0x81,
-
  0x1e, 0x9f, 0xfc, 0x10, 0xcc, 0x52, 0xe2, 0xd7, 0x8f, 0xc1, 0x90, 0xd0,
-
  0xd8, 0x3d, 0xea, 0x7a, 0x01, 0x37, 0x1a, 0x1c, 0x5e, 0x3d, 0xc1, 0xc7,
-
  0x5a, 0x66, 0x91, 0x94, 0x12, 0x4a, 0xde, 0xc8, 0x03, 0xa1, 0x5b, 0x15,
-
  0xef, 0xf0, 0xcc, 0xe1, 0xfc, 0x88, 0x54, 0x18, 0xa3, 0x94, 0x1f, 0x8d,
-
  0xd0, 0x11, 0xc5, 0xd3, 0x1a, 0x97, 0x89, 0x5a, 0xcc, 0x93, 0x05, 0x50,
-
  0xfb, 0xc4, 0xb1, 0x55, 0xa9, 0xa9, 0xe4, 0x2b, 0xde, 0x7b, 0x59, 0x30,
-
  0xa9, 0x11, 0x0f, 0xc1, 0x0f, 0xc3, 0x71, 0x72, 0x8a, 0x60, 0xe8, 0x36,
-
  0xc2, 0x13, 0x25, 0xd2, 0x80, 0x72, 0x2e, 0xac, 0x24, 0x4f, 0xcc, 0x35,
-
  0x59, 0x43, 0xd7, 0xc2, 0x2f, 0xa1, 0x58, 0x9b, 0xdb, 0x85, 0xcf, 0x16,
-
  0x08, 0xed, 0xfa, 0xe8, 0xd4, 0xd3, 0x39, 0x50, 0xed, 0xc9, 0x7a, 0x8e,
-
  0x89, 0x2f, 0x9b, 0x5e, 0x72, 0xbf, 0xa5, 0x91, 0xab, 0xbc, 0x85, 0xc0,
-
  0xfe, 0xbb, 0xeb, 0x62, 0xf8, 0x42, 0x06, 0x8e, 0xc0, 0x02, 0x09, 0xac,
-
  0x15, 0x57, 0x4a, 0x0f, 0x7e, 0x07, 0xec, 0x37, 0xc4, 0xfd, 0x55, 0x6a,
-
  0x7c, 0x32, 0x4b, 0x9a, 0xc1, 0x9c, 0x5c, 0x50, 0x6e, 0x23, 0xc8, 0xda,
-
  0x98, 0x82, 0x39, 0xc5, 0x92, 0x8a, 0x98, 0x8b, 0x71, 0xaa, 0xaf, 0x5a,
-
  0x3a, 0x39, 0xc3, 0xbc, 0xf2, 0x75, 0xcb, 0x78, 0x26, 0x0b, 0xfc, 0x7b,
-
  0x31, 0x37, 0xb7, 0x00, 0xa1, 0x66, 0xcd, 0x54, 0x28, 0x73, 0x43, 0x89,
-
  0x53, 0x40, 0x3d, 0x16, 0x35, 0xe5, 0x62, 0x72, 0x66, 0x62, 0x19, 0xea,
-
  0xd1, 0xce, 0xb0, 0x29, 0xf7, 0x3e, 0x95, 0xda, 0x81, 0xb7, 0x26, 0x0a,
-
  0xfc, 0x82, 0xe6, 0x2f, 0x34, 0xd0, 0x63, 0x6d, 0x77, 0x8a, 0x88, 0x95,
-
  0x78, 0x2a, 0x0c, 0x2e, 0xcd, 0xd5, 0x0f, 0x18, 0x1a, 0x18, 0xe7, 0xb3,
-
  0xbc, 0xb2, 0xa8, 0x5b, 0x84, 0xa6, 0x0c, 0x4b, 0x13, 0x1e, 0x13, 0x5a,
-
  0x5c, 0xe1, 0x24, 0xe4, 0xd4, 0xe7, 0x28, 0xd6, 0x97, 0x46, 0x4a, 0x1d,
-
  0x8f, 0x08, 0x18, 0x40, 0xd6, 0xd0, 0x35, 0xc8, 0x58, 0x92, 0x24, 0xbf,
-
  0x8e, 0x18, 0x72, 0xa7, 0x01, 0xe8, 0x61, 0xe6, 0xbc, 0x7a, 0xc1, 0x32,
-
  0x4b, 0xd0, 0x58, 0x6d, 0xf4, 0x3e, 0xea, 0xd5, 0xf3, 0xf3, 0x73, 0x07,
-
  0x10, 0x80, 0xbc, 0x8a, 0xd1, 0xc4, 0xc9, 0x6a, 0xe4, 0xf7, 0x21, 0x5a,
-
  0x49, 0xae, 0x52, 0x8e, 0xba, 0x4e, 0x14, 0x31, 0xa0, 0xab, 0x81, 0x99,
-
  0xe5, 0x9c, 0xe6, 0x5b, 0x87, 0xaa, 0xbd, 0x84, 0x59, 0xf1, 0xd9, 0xab,
-
  0xb2, 0x79, 0xf5, 0x3d, 0x6c, 0xce, 0x3d, 0x44, 0xc3, 0xa0, 0x87, 0x24,
-
  0xe4, 0x75, 0xdf, 0x72, 0xb8, 0xad, 0xd7, 0x5b, 0x2e, 0x9b, 0xdd, 0xd6,
-
  0x2f, 0x19, 0xb3, 0x49, 0xef, 0xa3, 0xe6, 0xe9, 0x47, 0xbf, 0xe4, 0x63,
-
  0x3d, 0xfe, 0x21, 0x57, 0xe5, 0x03, 0x47, 0x92, 0x39, 0xe8, 0xa4, 0x68,
-
  0x17, 0xfc, 0xdd, 0x63, 0x5f, 0xe4, 0xd3, 0x29, 0xc8, 0x5e, 0x1e, 0x21,
-
  0x65, 0xf9, 0x2b, 0x17, 0xd0, 0xc6, 0x64, 0xd9, 0x4e, 0xeb, 0x8d, 0xa4,
-
  0x88, 0xbc, 0x01, 0x8b, 0x6d, 0xd2, 0x12, 0xa7, 0x6b, 0x21, 0x87, 0x26,
-
  0xaf, 0x37, 0x5c, 0x02, 0x84, 0x65, 0xeb, 0x53, 0x8b, 0x23, 0x4e, 0x23,
-
  0xd2, 0x8a, 0x94, 0x1b, 0xa1, 0x33, 0x22, 0x26, 0x84, 0x34, 0x57, 0xa7,
-
  0x25, 0x43, 0xdb, 0x52, 0xd9, 0x58, 0x3c, 0xc1, 0x81, 0x3e, 0x0d, 0xe9,
-
  0x4e, 0x02, 0x3f, 0x28, 0x83, 0x5b, 0x48, 0xe0, 0x83, 0x41, 0x9b, 0x70,
-
  0x12, 0x3c, 0x95, 0x1d, 0x13, 0x08, 0x08, 0x17, 0x0e, 0x24, 0xab, 0xff,
-
  0xbd, 0x83, 0x61, 0x51, 0xff, 0xbe, 0xd7, 0xa4, 0xe0, 0x0c, 0x48, 0x48,
-
  0x28, 0x4f, 0x90, 0xc8, 0x1c, 0x87, 0x48, 0x85, 0x28, 0x41, 0xde, 0xd7,
-
  0x00, 0x0a, 0x2a, 0x0b, 0xa6, 0x43, 0xe0, 0x01, 0xbb, 0xf3, 0x44, 0x46,
-
  0x2d, 0xba, 0xc9, 0x68, 0xa5, 0xa3, 0xbc, 0x7f, 0x2c, 0xd0, 0x8e, 0xc1,
-
  0x31, 0xcb, 0x5e, 0x04, 0xa0, 0x7b, 0xbf, 0x7e, 0x98, 0x7c, 0x26, 0x3a,
-
  0x0c, 0x96, 0x9c, 0x9d, 0xf1, 0xc9, 0x28, 0xf3, 0xea, 0xbd, 0x60, 0x15,
-
  0x6a, 0xd1, 0x31, 0x99, 0xbf, 0x54, 0xc0, 0xb3, 0x1a, 0x6b, 0xc8, 0x0d,
-
  0x17, 0xf3, 0xff, 0x25, 0x27, 0x34, 0x90, 0xdd, 0x3d, 0xa1, 0xc4, 0xb7,
-
  0x92, 0xfa, 0x1a, 0x87, 0xd6, 0x0d, 0xa4, 0xf7, 0xdf, 0xb7, 0x9f, 0xe0,
-
  0x95, 0xf0, 0xd7, 0x2b, 0x4f, 0x30, 0x1c, 0xe0, 0x27, 0x8d, 0xfb, 0xbb,
-
  0x11, 0x52, 0xef, 0x8f, 0xee, 0xf2, 0xd9, 0xc4, 0xf3, 0xec, 0xf0, 0x8b,
-
  0xb8, 0x62, 0x46, 0xf5, 0x9e, 0xef, 0xe2, 0x51, 0x11, 0x4e, 0x8f, 0x3b,
-
  0x9f, 0xec, 0xce, 0x0a, 0x8d, 0x74, 0x5b, 0x92, 0xf5, 0xd1, 0xaf, 0x59,
-
  0x62, 0x35, 0x63, 0x8f, 0x18, 0x16, 0xaa, 0x4a, 0x04, 0x3a, 0xe5, 0x6e,
-
  0xda, 0x91, 0x18, 0x18, 0xd8, 0x85, 0x03, 0x18, 0xa0, 0x03, 0x60, 0xf5,
-
  0xc9, 0xfe, 0xce, 0x8e, 0x3a, 0xe9, 0x09, 0xd1, 0xaa, 0xaa, 0x1d, 0x12,
-
  0x01, 0x89, 0x4b, 0xff, 0x9e, 0x22, 0x9d, 0x31, 0x43, 0xbc, 0x47, 0x30,
-
  0x97, 0x55, 0x44, 0x84, 0xfd, 0x60, 0x74, 0xeb, 0x0a, 0x12, 0x5a, 0x59,
-
  0xf4, 0xd5, 0x53, 0xca, 0xe3, 0x15, 0x94, 0xe2, 0xc8, 0x02, 0x84, 0x8b,
-
  0xa7, 0xf3, 0xcb, 0x32, 0xad, 0xac, 0x3c, 0xf2, 0xd9, 0xd9, 0xcb, 0x84,
-
  0x62, 0x4f, 0x4e, 0xe1, 0x4b, 0xfe, 0xca, 0x55, 0x0e, 0x72, 0xb5, 0x8e,
-
  0x35, 0xed, 0x8f, 0x1a, 0xf9, 0x6c, 0xb0, 0x4f, 0xd4, 0x3a, 0x67, 0x97,
-
  0x4a, 0x4d, 0xe2, 0xf5, 0x41, 0x54, 0xf0, 0xe9, 0x96, 0xa4, 0x4b, 0xcc,
-
  0x7f, 0xec, 0xa5, 0x55, 0x4f, 0x45, 0xf3, 0xe7, 0x85, 0xe6, 0x43, 0xa3,
-
  0x5c, 0x07, 0x9d, 0xfd, 0x7d, 0x81, 0x90, 0x14, 0x5c, 0x23, 0x6d, 0xbb,
-
  0xdf, 0xdf, 0x26, 0x2b, 0xdb, 0x36, 0xfe, 0xab, 0xd9, 0xe4, 0xac, 0xda,
-
  0x90, 0x29, 0x07, 0x5b, 0xeb, 0x6b, 0x70, 0x09, 0x46, 0xfd, 0x4f, 0xa4,
-
  0xb2, 0x6d, 0xf5, 0xf7, 0x45, 0x5a, 0x11, 0x2a, 0x1a, 0x0a, 0x53, 0x19,
-
  0x12, 0x2f, 0xc7, 0x80, 0xc6, 0x76, 0x63, 0x8d, 0xff, 0x27, 0x4f, 0x4d,
-
  0x1c, 0x73, 0x17, 0xe3, 0xe6, 0xd6, 0x52, 0xe9, 0x94, 0x8a, 0x84, 0x20,
-
  0xc3, 0xd2, 0x9a, 0xa5, 0x78, 0xa0, 0x48, 0x18, 0x6e, 0x8b, 0xa3, 0x0a,
-
  0x93, 0x5d, 0xe1, 0x82, 0x58, 0xcd, 0x10, 0x99, 0x23, 0x46, 0x65, 0x0b,
-
  0x88, 0x2d, 0x6a, 0x83, 0x77, 0x6d, 0x9c, 0x75, 0xdc, 0x66, 0x89, 0x80,
-
  0x65, 0x85, 0xff, 0x65, 0xf5, 0x70, 0x9b, 0x3c, 0x19, 0xa3, 0xb6, 0xca,
-
  0x1a, 0x94, 0xab, 0xd6, 0x63, 0xcd, 0x2d, 0xec, 0x5e, 0x0e, 0xd7, 0xd5,
-
  0x68, 0xbe, 0x18, 0xe0, 0xee, 0x3e, 0xbd, 0xa4, 0x25, 0x8e, 0x4a, 0x7b,
-
  0xbf, 0x93, 0x52, 0x77, 0xe1, 0x80, 0x8b, 0x33, 0x31, 0x31, 0xea, 0xd9,
-
  0x84, 0x1d, 0xe1, 0x37, 0xb7, 0x70, 0x01, 0x09, 0x36, 0xd8, 0xc3, 0x74,
-
  0xcf, 0x33, 0xd4, 0x3c, 0x0c, 0x7f, 0x66, 0x40, 0x51, 0x29, 0x69, 0xad,
-
  0xde, 0x49, 0x6a, 0xa3, 0x11, 0xcf, 0x11, 0xb2, 0xc1, 0xb8, 0x37, 0x05,
-
  0x43, 0xb9, 0x41, 0x9a, 0xc1, 0xb2, 0xde, 0xc8, 0x64, 0xb0, 0xb0, 0x36,
-
  0xbb, 0x0f, 0x28, 0xd8, 0x83, 0xec, 0xa7, 0xe1, 0x22, 0x46, 0x3f, 0xec,
-
  0xe3, 0x87, 0xe4, 0x33, 0x65, 0xc6, 0x72, 0x99, 0xee, 0x3d, 0x7a, 0xac,
-
  0xe6, 0x53, 0x22, 0x25, 0x29, 0x12, 0x4a, 0x0e, 0xe5, 0x0d, 0xfe, 0x7e,
-
  0x7b, 0x7b, 0x43, 0x10, 0x67, 0x34, 0xc8, 0x06, 0xbf, 0xfb, 0x7a, 0x23,
-
  0xc2, 0xb8, 0x50, 0x8f, 0x9d, 0x22, 0x0e, 0x63, 0x74, 0x2a, 0x55, 0xae,
-
  0x3f, 0x7b, 0xe5, 0x45, 0x05, 0xd1, 0x3b, 0xc4, 0x57, 0x23, 0xc0, 0xf3,
-
  0xea, 0x83, 0xf6, 0x55, 0xda, 0xa5, 0xb0, 0x14, 0x35, 0x87, 0xa1, 0x07,
-
  0x8a, 0x5f, 0x8e, 0xe9, 0x52, 0xe6, 0xbc, 0xb5, 0xca, 0xf1, 0x44, 0x61,
-
  0x43, 0x4b, 0x95, 0x14, 0xfc, 0x0a, 0x5c, 0x5c, 0xd7, 0x24, 0xc9, 0xfa,
-
  0x84, 0x29, 0xe8, 0x90, 0x5f, 0x24, 0x45, 0x85, 0xc3, 0x0f, 0x98, 0x01,
-
  0x35, 0x56, 0x37, 0xf0, 0x61, 0x72, 0x3b, 0x84, 0x23, 0xa3, 0xb0, 0x0b,
-
  0x1e, 0xbc, 0xd0, 0x23, 0xba, 0x30, 0x90, 0x63, 0x28, 0x34, 0x84, 0x73,
-
  0xa1, 0x54, 0x68, 0x84, 0x7d, 0xe5, 0xd2, 0x9d, 0x37, 0x94, 0x11, 0xb3,
-
  0xe2, 0x82, 0x81, 0x25, 0xc8, 0x28, 0x6c, 0x43, 0x34, 0x1d, 0xf9, 0xc6,
-
  0x45, 0x48, 0x99, 0xcf, 0x99, 0x8c, 0xe7, 0xa1, 0xcc, 0x71, 0xa8, 0x12,
-
  0x21, 0xa1, 0xf9, 0xb5, 0x02, 0x48, 0x22, 0xdd, 0x51, 0xa8, 0x13, 0x61,
-
  0xd7, 0x32, 0x9a, 0x35, 0x6f, 0x68, 0x58, 0x52, 0x1d, 0x0e, 0xd0, 0xd4,
-
  0x36, 0xd2, 0x93, 0x5c, 0x87, 0x07, 0x6a, 0xcc, 0x84, 0x31, 0xe1, 0xae,
-
  0x92, 0x66, 0xfb, 0xc3, 0x6c, 0x01, 0x3b, 0x8d, 0x26, 0x9c, 0x62, 0x32,
-
  0x86, 0x4f, 0xe1, 0x37, 0x20, 0xb6, 0x11, 0xee, 0x7e, 0x17, 0xcf, 0xda,
-
  0x90, 0xca, 0x29, 0x9f, 0xe3, 0xe5, 0xcc, 0x05, 0x23, 0xa6, 0xe9, 0xf0,
-
  0xe4, 0x4c, 0x0b, 0xf2, 0xf6, 0xbf, 0xfc, 0xe3, 0x76, 0x7e, 0x72, 0x06,
-
  0xbf, 0xfd, 0xb1, 0x9b, 0x9c, 0x21, 0x9a, 0xf0, 0x2c, 0x53, 0x13, 0x28,
-
  0xd3, 0xde, 0x8a, 0xce, 0xbb, 0xda, 0xb3, 0x04, 0xf5, 0x2c, 0xf5, 0xfe,
-
  0x3b, 0x3b, 0x3f, 0xa1, 0x55, 0x23, 0xda, 0x45, 0x10, 0x1e, 0xa2, 0x52,
-
  0xc6, 0x3a, 0x55, 0xd1, 0xc0, 0xee, 0x26, 0xcf, 0x2c, 0x3e, 0x5f, 0x85,
-
  0xdb, 0xa8, 0x1b, 0xf8, 0xff, 0x3a, 0x76, 0xcc, 0xc6, 0x5b, 0x76, 0x9a,
-
  0x87, 0xd9, 0xee, 0xee, 0x93, 0xc1, 0xa3, 0xdd, 0x27, 0x5f, 0x7d, 0x39,
-
  0x7e, 0xf8, 0xf0, 0xd1, 0xde, 0x68, 0xb8, 0xf1, 0x31, 0x65, 0x52, 0xd0,
-
  0x9e, 0x09, 0x4d, 0x72, 0x6b, 0x81, 0x69, 0x72, 0x71, 0xa7, 0xc8, 0xd3,
-
  0xfe, 0x96, 0x4a, 0x89, 0xd6, 0x5c, 0xcc, 0xe3, 0xcb, 0xbd, 0xfd, 0xdd,
-
  0xed, 0xc7, 0xfd, 0x87, 0xfd, 0x3d, 0x15, 0x99, 0x18, 0x11, 0x8f, 0xf1,
-
  0x92, 0xeb, 0x84, 0xb3, 0x5e, 0x2d, 0x7f, 0x58, 0x23, 0x2e, 0xa4, 0x10,
-
  0x95, 0x2b, 0x4d, 0xc5, 0xd6, 0x8f, 0x90, 0xd9, 0x4b, 0xd5, 0xa9, 0x76,
-
  0x03, 0x2e, 0xa5, 0xc2, 0x83, 0x20, 0x8a, 0x2e, 0x74, 0xac, 0xae, 0x31,
-
  0x85, 0xb0, 0x26, 0xf0, 0xcb, 0x41, 0xfe, 0xf7, 0x45, 0x5e, 0x83, 0x68,
-
  0x28, 0x26, 0xca, 0x6c, 0x80, 0xcf, 0x94, 0xc5, 0x75, 0x25, 0x90, 0x5a,
-
  0x85, 0xaa, 0x86, 0x5c, 0x2e, 0x2d, 0x82, 0x6c, 0x52, 0x58, 0x20, 0x8f,
-
  0xd8, 0x4d, 0x55, 0x25, 0x73, 0xe2, 0xd4, 0xf8, 0x48, 0x85, 0xf5, 0x33,
-
  0x67, 0x43, 0xe4, 0x56, 0x2f, 0x41, 0x81, 0xb9, 0x42, 0x2f, 0x4e, 0x1a,
-
  0x97, 0xc1, 0xf0, 0x01, 0xa7, 0x92, 0xf2, 0x4b, 0x21, 0xae, 0x14, 0xcb,
-
  0x27, 0x1f, 0x70, 0xe2, 0x11, 0x47, 0x9b, 0x44, 0x38, 0x9f, 0x7c, 0x75,
-
  0x44, 0x30, 0x9a, 0x1c, 0x20, 0x98, 0xa5, 0xa8, 0xb9, 0x52, 0xe1, 0x72,
-
  0x0e, 0x5f, 0x94, 0xe5, 0x92, 0x80, 0x31, 0x87, 0x53, 0xd9, 0x16, 0x27,
-
  0x2a, 0x9b, 0xf8, 0x09, 0xc9, 0xfb, 0xab, 0xae, 0x72, 0x6e, 0xf0, 0x8e,
-
  0x7b, 0x5c, 0x7a, 0x75, 0x90, 0x9b, 0xbd, 0x51, 0xd2, 0x41, 0xce, 0xb8,
-
  0x6e, 0x98, 0x15, 0x57, 0x12, 0xeb, 0x86, 0x32, 0x62, 0x22, 0x95, 0x35,
-
  0x51, 0x39, 0xf5, 0xc9, 0x35, 0xc8, 0x74, 0xff, 0x73, 0x90, 0xe9, 0xde,
-
  0xff, 0x47, 0xa6, 0xf7, 0x46, 0xa6, 0x7b, 0xf7, 0x4d, 0xa6, 0x7b, 0xeb,
-
  0x90, 0xe9, 0xde, 0xef, 0x26, 0xd3, 0xdd, 0xb5, 0xc9, 0x74, 0x3f, 0x22,
-
  0xd3, 0x1f, 0xf3, 0x62, 0x42, 0xb6, 0x87, 0x88, 0x4c, 0x1f, 0xde, 0x33,
-
  0x99, 0x62, 0xed, 0xc2, 0x88, 0x48, 0x0f, 0x83, 0xb4, 0x66, 0xf0, 0x81,
-
  0x81, 0x20, 0x8c, 0x22, 0x02, 0x49, 0x78, 0x9a, 0x60, 0xaa, 0xdf, 0x8f,
-
  0x69, 0xe2, 0x73, 0x12, 0xc5, 0xfe, 0x7d, 0x13, 0xc5, 0xfe, 0x3a, 0x44,
-
  0xb1, 0x7f, 0x9f, 0xbc, 0x6b, 0x77, 0x25, 0x51, 0x94, 0x19, 0x87, 0x0f,
-
  0xfe, 0x4d, 0xe3, 0x33, 0xa1, 0xed, 0x5f, 0xc8, 0xbd, 0x78, 0x80, 0x42,
-
  0xc9, 0x2f, 0x01, 0x70, 0x84, 0x85, 0x6c, 0x53, 0x4f, 0xce, 0x4e, 0x9e,
-
  0xfd, 0xe9, 0x4c, 0x43, 0xa2, 0x0d, 0x60, 0x5c, 0x44, 0x55, 0x86, 0x78,
-
  0xa6, 0xd8, 0x67, 0x06, 0xa5, 0xd7, 0xf0, 0x25, 0xca, 0x64, 0xb3, 0x20,
-
  0x56, 0x4a, 0x3b, 0xd7, 0x33, 0x3e, 0x44, 0x9d, 0x5d, 0x00, 0x51, 0xc9,
-
  0x39, 0x16, 0x41, 0x20, 0x52, 0xef, 0xd4, 0xa7, 0x0f, 0xc5, 0xd6, 0x32,
-
  0x5e, 0xb3, 0x24, 0x3c, 0xbd, 0x59, 0x5f, 0x96, 0x04, 0x47, 0xc7, 0x8f,
-
  0x6f, 0x85, 0xd7, 0x75, 0x28, 0x32, 0x0c, 0xd7, 0x50, 0x3f, 0x79, 0x49,
-
  0x78, 0x8e, 0xb0, 0x1c, 0x89, 0xc6, 0xd7, 0x9a, 0x71, 0xc7, 0x3e, 0xd4,
-
  0x30, 0x99, 0xb6, 0xda, 0x25, 0xe2, 0x7c, 0x76, 0xab, 0xc8, 0xa6, 0xdf,
-
  0xfc, 0x83, 0xb9, 0x77, 0x34, 0x60, 0x24, 0x9d, 0x90, 0x87, 0x9c, 0xea,
-
  0x02, 0x72, 0xbb, 0xfa, 0x56, 0xc5, 0x1e, 0xeb, 0xaa, 0x18, 0xbe, 0xaf,
-
  0x1e, 0x42, 0x13, 0xc4, 0x8e, 0xf1, 0xf7, 0x14, 0xff, 0x10, 0xe9, 0x0f,
-
  0x3f, 0x78, 0x84, 0xed, 0x23, 0x6a, 0x2c, 0xfd, 0x71, 0x49, 0xbd, 0x11,
-
  0x0b, 0x95, 0xb2, 0xb6, 0x6e, 0xab, 0x86, 0xb2, 0x53, 0x86, 0x0c, 0xac,
-
  0x86, 0x69, 0x81, 0xe7, 0xc0, 0x3c, 0x9a, 0x50, 0xee, 0x2d, 0x4c, 0xc8,
-
  0x15, 0xce, 0x50, 0x56, 0x0f, 0x3d, 0x50, 0x5b, 0x0f, 0x1b, 0x0e, 0x4b,
-
  0x16, 0x84, 0x45, 0x25, 0xcc, 0xa5, 0x12, 0xac, 0xf3, 0x62, 0x8a, 0xfd,
-
  0x41, 0x48, 0x85, 0x17, 0x91, 0xea, 0xc6, 0x06, 0x4c, 0xd7, 0xaa, 0x5a,
-
  0x4c, 0x33, 0xad, 0x8b, 0xbe, 0xbb, 0xf3, 0xc4, 0xfc, 0x25, 0xef, 0x14,
-
  0xc4, 0xc8, 0x42, 0x07, 0x39, 0x89, 0x90, 0x21, 0x8d, 0x7d, 0xfc, 0x7a,
-
  0xdc, 0x8d, 0x6c, 0x15, 0x3a, 0xc7, 0xa4, 0xa1, 0xb7, 0xaf, 0x10, 0x47,
-
  0xb9, 0x10, 0x3d, 0x14, 0x27, 0xb6, 0x0c, 0x7b, 0xa3, 0x25, 0x11, 0x73,
-
  0x85, 0xb1, 0x01, 0x31, 0xdb, 0x52, 0x32, 0x34, 0x76, 0x5c, 0x02, 0x75,
-
  0xbf, 0x0b, 0x05, 0x66, 0xff, 0xe3, 0xe1, 0x0e, 0x91, 0x95, 0xbe, 0x8b,
-
  0xf1, 0x03, 0x93, 0x42, 0xcc, 0xb2, 0xff, 0xb1, 0x9f, 0x9a, 0x60, 0x2f,
-
  0xa7, 0xcd, 0x42, 0xe4, 0xee, 0xdb, 0xbf, 0x6a, 0xc7, 0xd9, 0xa8, 0x84,
-
  0xa9, 0x59, 0x03, 0xe5, 0x7b, 0x1f, 0x12, 0x89, 0x26, 0xc0, 0x7f, 0xec,
-
  0xe3, 0x8f, 0x90, 0xd4, 0xc3, 0xb9, 0xeb, 0xf5, 0xb8, 0x13, 0xe5, 0x25,
-
  0x7f, 0xe8, 0x36, 0xc0, 0x02, 0x9a, 0x58, 0x87, 0xea, 0xc2, 0x73, 0x10,
-
  0xdb, 0xc1, 0x59, 0x98, 0x56, 0x52, 0xa0, 0x8c, 0x06, 0x14, 0x3e, 0x4f,
-
  0xac, 0x21, 0x17, 0x8e, 0xe7, 0x21, 0x7f, 0xbb, 0x4b, 0xb5, 0x01, 0xd3,
-
  0x49, 0x37, 0x89, 0x72, 0xe5, 0x68, 0x97, 0xad, 0x45, 0x68, 0x10, 0xab,
-
  0xfd, 0x5d, 0x57, 0xb1, 0x57, 0x10, 0xdb, 0xdd, 0xf8, 0xc3, 0x86, 0xdb,
-
  0x6e, 0x34, 0x79, 0x95, 0x05, 0x55, 0xe0, 0x52, 0x8d, 0x7b, 0x58, 0x66,
-
  0x12, 0x5c, 0x89, 0x25, 0x9c, 0x29, 0x79, 0x67, 0x9e, 0x95, 0x43, 0x4c,
-
  0x02, 0xbb, 0xc8, 0xac, 0x3e, 0x5d, 0xf0, 0x2c, 0x48, 0x51, 0x05, 0x2a,
-
  0xa8, 0xd0, 0x27, 0xb8, 0x9e, 0xa6, 0x6b, 0x55, 0x7d, 0x2b, 0xa9, 0x54,
-
  0x5d, 0xc0, 0x57, 0x34, 0xfb, 0x8c, 0xb2, 0x83, 0xaa, 0x79, 0x3a, 0xc4,
-
  0x12, 0x7c, 0xf9, 0x1c, 0x21, 0xce, 0xbf, 0x29, 0xbe, 0xe9, 0x6d, 0x39,
-
  0x14, 0x0b, 0x2c, 0xa8, 0x5d, 0x09, 0xa8, 0x2b, 0x41, 0x2f, 0xc2, 0x51,
-
  0xbc, 0xe4, 0xb0, 0x61, 0x49, 0x35, 0xa2, 0xd4, 0x38, 0xc6, 0xc8, 0x20,
-
  0xb4, 0xe0, 0xa8, 0xb2, 0x01, 0x86, 0x4a, 0xb8, 0x3b, 0x2a, 0x25, 0x7a,
-
  0x83, 0x85, 0x18, 0x4f, 0x28, 0x34, 0x0a, 0xed, 0x37, 0x09, 0x26, 0x03,
-
  0x24, 0xd5, 0xcd, 0x74, 0x50, 0x30, 0x8e, 0x63, 0x5d, 0x7c, 0x36, 0x57,
-
  0x49, 0x9b, 0xaf, 0xa4, 0x41, 0x54, 0x2b, 0x53, 0xcd, 0x3e, 0xb2, 0xbe,
-
  0x68, 0x03, 0xd5, 0x62, 0xf5, 0x99, 0xfa, 0xc3, 0xed, 0x31, 0x0a, 0xee,
-
  0x68, 0x50, 0x00, 0xf7, 0x48, 0x62, 0x1c, 0xdc, 0x0d, 0x0b, 0xac, 0x35,
-
  0x79, 0x6a, 0x2c, 0xfe, 0x5b, 0x5f, 0xc5, 0x1a, 0xb6, 0x87, 0xea, 0xd7,
-
  0xeb, 0x97, 0x52, 0x12, 0x8f, 0xe1, 0x14, 0x39, 0x04, 0x4f, 0x29, 0x85,
-
  0x17, 0x45, 0x1f, 0x0b, 0x7c, 0x2d, 0x43, 0xf6, 0xc0, 0x69, 0x6a, 0xd9,
-
  0x58, 0x4c, 0xab, 0x84, 0x8c, 0xd9, 0xe5, 0xc0, 0x00, 0x8a, 0x41, 0x09,
-
  0x58, 0x61, 0x88, 0x74, 0x41, 0x48, 0x60, 0xf8, 0x1d, 0xa3, 0x78, 0x85,
-
  0x6c, 0x0d, 0xbe, 0x03, 0xac, 0x4a, 0x5a, 0xb2, 0x01, 0x23, 0xd9, 0xe8,
-
  0x06, 0x48, 0xb7, 0xc9, 0x8d, 0x5e, 0x6a, 0x1a, 0x8f, 0x4a, 0x55, 0x55,
-
  0x12, 0xad, 0xd0, 0xa9, 0x34, 0xc9, 0x25, 0x54, 0x60, 0xc8, 0x87, 0x57,
-
  0x69, 0x3e, 0xa1, 0x2d, 0xb0, 0x0f, 0xb1, 0x67, 0xb5, 0xbc, 0xfc, 0x11,
-
  0xc3, 0xbe, 0x4e, 0xa9, 0x14, 0xb0, 0xfa, 0x53, 0x43, 0xe1, 0x51, 0x62,
-
  0xc2, 0xe9, 0x68, 0x94, 0x0b, 0x50, 0x04, 0x97, 0x95, 0x70, 0x2b, 0xc0,
-
  0x48, 0x1e, 0x88, 0xe7, 0x48, 0x2d, 0xe0, 0x12, 0x6c, 0xfa, 0xfc, 0x48,
-
  0x73, 0xca, 0x20, 0x46, 0x72, 0x28, 0xec, 0x22, 0x8c, 0xd4, 0x22, 0xf2,
-
  0x31, 0xaa, 0xec, 0xc1, 0xf3, 0x6c, 0x76, 0xd3, 0x18, 0x41, 0x17, 0xc5,
-
  0xcf, 0xe2, 0x4a, 0xac, 0x85, 0x5a, 0x4f, 0x89, 0x2a, 0x52, 0x54, 0x12,
-
  0x26, 0x60, 0xc3, 0x81, 0x16, 0x14, 0x58, 0xc4, 0x06, 0xa3, 0xed, 0x7f,
-
  0xe3, 0x27, 0x29, 0x42, 0xe8, 0xd2, 0x5c, 0x37, 0xa9, 0x36, 0x95, 0x03,
-
  0x15, 0xe3, 0x4e, 0xda, 0x26, 0x49, 0xe5, 0xed, 0x49, 0xc0, 0xa9, 0x16,
-
  0x83, 0xdf, 0xa4, 0xfa, 0x34, 0x4a, 0xf1, 0xa5, 0xcc, 0x51, 0x64, 0x46,
-
  0xdc, 0x1e, 0x78, 0x82, 0x1d, 0x03, 0xc0, 0x2e, 0x1e, 0xc0, 0x4f, 0x8c,
-
  0x86, 0x0c, 0x91, 0xc3, 0x4d, 0xd2, 0xa0, 0x4e, 0x99, 0x4d, 0x59, 0xbc,
-
  0xeb, 0x81, 0xd1, 0x30, 0xb4, 0xd0, 0x1b, 0x63, 0xfa, 0x3c, 0x61, 0x0f,
-
  0xf8, 0x05, 0xb6, 0x65, 0xe8, 0x12, 0xe3, 0xb1, 0x44, 0x44, 0x7c, 0x1a,
-
  0x27, 0xaf, 0x87, 0x00, 0x03, 0xc3, 0xba, 0x74, 0x94, 0xba, 0x7f, 0xc4,
-
  0x7f, 0x78, 0x35, 0x14, 0x69, 0x82, 0x3e, 0x41, 0xda, 0xa4, 0x27, 0xfc,
-
  0x7b, 0xdf, 0xe0, 0x27, 0xfc, 0x22, 0x9f, 0xb5, 0x3b, 0xde, 0x7b, 0x37,
-
  0x63, 0x5e, 0x4a, 0x7c, 0x48, 0xd1, 0xf6, 0x1d, 0xe9, 0xcc, 0xa5, 0xec,
-
  0x73, 0xaa, 0xb9, 0xe8, 0x9a, 0x58, 0xc2, 0x92, 0x00, 0xb4, 0x00, 0x8c,
-
  0x3e, 0x9f, 0x73, 0xe8, 0x46, 0x95, 0x8e, 0x31, 0xbb, 0x12, 0xd1, 0x26,
-
  0x6f, 0x12, 0x36, 0xc1, 0x92, 0xea, 0xcd, 0x99, 0x15, 0x21, 0x97, 0x17,
-
  0xa4, 0xa0, 0x9a, 0x6b, 0x57, 0xa3, 0x9f, 0xf9, 0xc1, 0x08, 0xab, 0x98,
-
  0x95, 0xa8, 0x66, 0xbb, 0xd5, 0x31, 0x6e, 0x4f, 0xad, 0x71, 0x38, 0x00,
-
  0xb9, 0x49, 0xb4, 0xf4, 0xad, 0x15, 0x37, 0xc7, 0x0d, 0x57, 0xea, 0xe0,
-
  0x0e, 0x39, 0x21, 0x86, 0xd4, 0x2d, 0xad, 0xde, 0x4c, 0x70, 0x37, 0x51,
-
  0xad, 0xb5, 0x07, 0x11, 0x20, 0xba, 0x78, 0x01, 0x24, 0x2f, 0x21, 0x76,
-
  0xa4, 0x74, 0xe9, 0x7c, 0x59, 0x12, 0x42, 0xa5, 0x69, 0x8e, 0x0f, 0x04,
-
  0x3a, 0x42, 0xe2, 0xc6, 0x25, 0x96, 0x39, 0xad, 0x28, 0x22, 0x06, 0x88,
-
  0x64, 0x26, 0xf6, 0x73, 0x91, 0xb4, 0x74, 0x49, 0x69, 0x5c, 0x9c, 0xf8,
-
  0xfa, 0x00, 0x2f, 0x6a, 0x42, 0xbe, 0x97, 0x9b, 0x9a, 0x87, 0xe3, 0x64,
-
  0x46, 0xdd, 0xd7, 0xcf, 0x22, 0x00, 0x35, 0x08, 0xa6, 0x5b, 0x01, 0x15,
-
  0xae, 0x2d, 0xda, 0xd4, 0x05, 0x57, 0x6b, 0x09, 0x59, 0x27, 0xf0, 0x49,
-
  0x80, 0x3e, 0x71, 0x1c, 0x5d, 0x3f, 0x0d, 0x9c, 0xfd, 0xdb, 0xa0, 0x2a,
-
  0xd9, 0xd6, 0x8d, 0xc5, 0x5f, 0x62, 0xd3, 0x44, 0x29, 0x94, 0xe0, 0x8a,
-
  0xc9, 0x7a, 0xc3, 0x95, 0xbc, 0x0d, 0x7d, 0x97, 0xf0, 0x75, 0x16, 0x42,
-
  0xbc, 0x0a, 0x7d, 0x84, 0x9f, 0x38, 0x18, 0xfb, 0x88, 0x6b, 0x48, 0x35,
-
  0xbe, 0xc4, 0x0a, 0xc0, 0x49, 0xfe, 0x32, 0xf4, 0x72, 0xf4, 0xeb, 0xbb,
-
  0x37, 0x67, 0xef, 0x4e, 0x4f, 0x4f, 0xde, 0x9e, 0x1f, 0x3d, 0xc7, 0xe4,
-
  0xd4, 0xf3, 0x93, 0x67, 0x27, 0xaf, 0xda, 0x2e, 0xee, 0x00, 0x3d, 0x44,
-
  0x95, 0xf7, 0x9a, 0x27, 0xdb, 0xa9, 0x27, 0xc9, 0x26, 0xae, 0xe3, 0x96,
-
  0x8f, 0x03, 0xb3, 0xb0, 0x10, 0xef, 0xf2, 0xeb, 0xaa, 0x05, 0xe9, 0x62,
-
  0xc1, 0x59, 0xa8, 0x6e, 0xcc, 0x9c, 0xb6, 0xa7, 0xa1, 0xf2, 0xcd, 0x5c,
-
  0x62, 0x8a, 0x6b, 0xe1, 0x8c, 0x17, 0x3a, 0x0a, 0x02, 0x1f, 0x1d, 0xe4,
-
  0x67, 0xbf, 0xf2, 0x9f, 0xcf, 0x7b, 0x1b, 0x75, 0xc3, 0x7c, 0x67, 0x1c,
-
  0xc4, 0xe5, 0x5b, 0xa8, 0x27, 0xa2, 0x1b, 0xa2, 0xa4, 0x06, 0xd5, 0x30,
-
  0x75, 0xad, 0x90, 0x06, 0x48, 0x18, 0x88, 0x65, 0x01, 0x11, 0x05, 0x8a,
-
  0x99, 0xaf, 0x79, 0xe4, 0x04, 0x81, 0x51, 0x36, 0xcb, 0xf9, 0x2e, 0x76,
-
  0x69, 0x7e, 0xf8, 0x5e, 0x99, 0xb1, 0x1a, 0x26, 0x01, 0xda, 0xa3, 0x8c,
-
  0x0a, 0xb9, 0x45, 0x7b, 0x25, 0x01, 0x55, 0xfa, 0x8a, 0x54, 0xf3, 0xb9,
-
  0x8e, 0xa5, 0x01, 0x06, 0x60, 0x40, 0xb5, 0x82, 0x8a, 0x78, 0x2f, 0x2d,
-
  0x5d, 0x57, 0x86, 0x48, 0x2c, 0x99, 0x14, 0x6c, 0x5c, 0x02, 0x56, 0xf3,
-
  0xdd, 0xa8, 0x5d, 0x86, 0x43, 0xb4, 0x12, 0x76, 0x25, 0x08, 0x7b, 0x17,
-
  0xed, 0x64, 0x79, 0xa5, 0x1d, 0x4a, 0x04, 0x35, 0x43, 0xfd, 0x89, 0xe6,
-
  0xc6, 0x78, 0xe5, 0xd4, 0x67, 0x97, 0x70, 0xa7, 0x71, 0x08, 0x2f, 0x70,
-
  0x04, 0xd1, 0xc2, 0x89, 0xe5, 0xcb, 0x25, 0x33, 0x3f, 0x7e, 0xd4, 0xdf,
-
  0xdb, 0x8a, 0x92, 0x01, 0x30, 0x06, 0x14, 0xd6, 0xe1, 0x8f, 0xf8, 0xaf,
-
  0x5e, 0x30, 0xf8, 0xbb, 0xdb, 0x15, 0x0d, 0x1e, 0x71, 0x35, 0xab, 0x84,
-
  0x8d, 0x4a, 0xf9, 0xb4, 0xe4, 0xa2, 0x28, 0x44, 0xc2, 0xd5, 0xaa, 0x2e,
-
  0x31, 0x01, 0xf3, 0xd4, 0x3f, 0x5b, 0x90, 0xad, 0xef, 0xe4, 0x9b, 0xc6,
-
  0xda, 0xae, 0xc7, 0x04, 0x95, 0x68, 0x3f, 0x74, 0x4d, 0xe3, 0x5b, 0xcf,
-
  0x3e, 0xe4, 0xbc, 0xd7, 0xcb, 0x56, 0x14, 0xaf, 0x96, 0xeb, 0xd5, 0xb4,
-
  0x64, 0x40, 0x89, 0x2c, 0x28, 0x2c, 0x6b, 0x22, 0x0c, 0x51, 0xd1, 0x90,
-
  0x51, 0xc3, 0x7b, 0x45, 0xa9, 0x44, 0x23, 0x16, 0x85, 0xa4, 0x66, 0xf0,
-
  0x35, 0xbc, 0xb4, 0xa0, 0x17, 0xa2, 0x49, 0x35, 0x37, 0xbd, 0xd3, 0x74,
-
  0xd8, 0x15, 0x26, 0x16, 0x6f, 0x5e, 0x21, 0xf6, 0xdb, 0x30, 0xb0, 0x98,
-
  0x85, 0xc5, 0xa4, 0xe6, 0x15, 0x56, 0x16, 0xd6, 0x77, 0xfc, 0x5e, 0x21,
-
  0xd8, 0xbe, 0xc2, 0x2a, 0x60, 0xab, 0x88, 0x2a, 0x47, 0x67, 0x2b, 0x30,
-
  0xf7, 0xb1, 0xf5, 0xa8, 0x03, 0xa6, 0xea, 0x66, 0x94, 0xd0, 0x82, 0x4b,
-
  0x2e, 0x8e, 0x68, 0x89, 0x6a, 0xc1, 0x4f, 0x28, 0x53, 0xb0, 0x9f, 0x50,
-
  0x89, 0xf3, 0x30, 0x54, 0x7b, 0x61, 0x1b, 0xdd, 0xff, 0xdb, 0x75, 0xb1,
-
  0xcd, 0x1d, 0xf6, 0xf1, 0x9f, 0x2f, 0xbc, 0x21, 0x4e, 0x36, 0x45, 0xc5,
-
  0x0f, 0x2e, 0xc5, 0x42, 0x41, 0x1b, 0x96, 0xb0, 0x68, 0x64, 0xe3, 0x98,
-
  0xb8, 0x37, 0x6c, 0x51, 0xda, 0xa4, 0xb8, 0x6f, 0xbd, 0xff, 0x96, 0xb3,
-
  0xc1, 0x25, 0xd0, 0x5c, 0x6a, 0xbc, 0xd0, 0x04, 0x31, 0x4f, 0x31, 0xf6,
-
  0xab, 0x4a, 0x35, 0xd9, 0x45, 0x55, 0xa3, 0x90, 0xa4, 0x6e, 0xd3, 0xae,
-
  0x7a, 0x5b, 0x83, 0xb3, 0x15, 0x9b, 0x17, 0xb7, 0x6c, 0x0c, 0x4a, 0xf0,
-
  0xa5, 0xcb, 0xb0, 0x7d, 0x37, 0x83, 0x53, 0x59, 0x5c, 0xcc, 0x40, 0x91,
-
  0x1e, 0xc9, 0x88, 0xa2, 0x1b, 0x54, 0xcc, 0x50, 0xee, 0x44, 0xd3, 0x2d,
-
  0x2a, 0x48, 0x0d, 0x2c, 0x49, 0xc9, 0x7d, 0x3c, 0xa4, 0x52, 0xc5, 0x7c,
-
  0x97, 0x19, 0xaa, 0x3e, 0x57, 0x91, 0x1d, 0xb9, 0x9b, 0x9a, 0xaf, 0x71,
-
  0x49, 0x07, 0x60, 0x61, 0x4b, 0x48, 0x32, 0xb2, 0x5c, 0xfc, 0x1b, 0xad,
-
  0x66, 0xed, 0x88, 0x17, 0x21, 0xce, 0xb2, 0x1d, 0xf6, 0x82, 0xb1, 0xb6,
-
  0xb8, 0xa0, 0x5e, 0x84, 0x78, 0xc1, 0x60, 0x0c, 0xfd, 0x80, 0x6c, 0x91,
-
  0xd3, 0xd1, 0x6a, 0x6b, 0x05, 0xdf, 0xd7, 0x80, 0x0d, 0x06, 0xb4, 0x88,
-
  0x33, 0x1b, 0xb1, 0x79, 0x6b, 0x94, 0x80, 0x2c, 0xda, 0x30, 0x2c, 0x0e,
-
  0x31, 0x58, 0xc8, 0x92, 0x1a, 0x34, 0x6a, 0x9e, 0x6f, 0x35, 0x89, 0xd7,
-
  0x27, 0x61, 0x88, 0x73, 0xa2, 0x83, 0x99, 0x59, 0x16, 0x2b, 0x68, 0xc7,
-
  0xa4, 0x3e, 0x63, 0xd8, 0x3e, 0x15, 0x05, 0x12, 0x4f, 0x86, 0x18, 0x24,
-
  0xf0, 0x15, 0xa6, 0xd2, 0x28, 0x34, 0x1f, 0x1e, 0x20, 0xe8, 0x13, 0x25,
-
  0x90, 0xc6, 0x39, 0x77, 0xa3, 0x62, 0x1b, 0xa4, 0x82, 0x09, 0xa4, 0xaa,
-
  0xeb, 0xaa, 0x36, 0x21, 0xd7, 0x01, 0xab, 0x5a, 0xa9, 0x72, 0x1e, 0x49,
-
  0x1f, 0x24, 0x5c, 0x9e, 0x05, 0xd2, 0x79, 0xa2, 0xf6, 0x6a, 0xdb, 0x6d,
-
  0x8a, 0x7b, 0x47, 0xd4, 0x81, 0x90, 0xa9, 0x29, 0x6c, 0x98, 0xdf, 0xf0,
-
  0x7e, 0x8e, 0xff, 0x27, 0xda, 0x49, 0x57, 0x9a, 0x49, 0x7d, 0x60, 0x3e,
-
  0x0f, 0x8f, 0x98, 0x5c, 0x08, 0x6b, 0xf6, 0xa9, 0x31, 0x64, 0xe3, 0x26,
-
  0xed, 0xe4, 0x1a, 0x6d, 0x8a, 0x56, 0xfb, 0xdc, 0x59, 0x58, 0x5b, 0xc9,
-
  0xbc, 0x2b, 0x08, 0xdc, 0x9a, 0xfb, 0x67, 0x6c, 0x8d, 0xb9, 0x1a, 0x0b,
-
  0xb9, 0x70, 0x76, 0xb7, 0x5c, 0x08, 0x39, 0x85, 0x16, 0x23, 0xbb, 0x62,
-
  0xa0, 0x14, 0x58, 0xea, 0x3f, 0x86, 0x62, 0x2b, 0x3e, 0x64, 0x49, 0x88,
-
  0x5e, 0x2f, 0x6a, 0x09, 0x4d, 0xa2, 0x2a, 0x3b, 0x19, 0x89, 0x26, 0x53,
-
  0x2c, 0xaa, 0x93, 0x32, 0x93, 0x55, 0x8c, 0x02, 0x90, 0x2d, 0x7b, 0xc8,
-
  0x0d, 0xe4, 0xa8, 0x08, 0x22, 0x66, 0xe3, 0xfe, 0x78, 0x4e, 0xb1, 0xe8,
-
  0x54, 0xba, 0x85, 0x52, 0xd2, 0x95, 0xe6, 0xb9, 0x3f, 0x53, 0x2c, 0x23,
-
  0x42, 0x89, 0xaa, 0x5f, 0x8f, 0x8a, 0xc0, 0xf9, 0x0d, 0x9e, 0x8f, 0x1a,
-
  0xc4, 0x2d, 0x37, 0x74, 0x01, 0xbb, 0x2b, 0xd1, 0x0a, 0x40, 0x7b, 0xe8,
-
  0x83, 0xde, 0xd1, 0x64, 0xa0, 0x02, 0x10, 0xbe, 0xba, 0x84, 0xf5, 0x6e,
-
  0x5e, 0x43, 0xe2, 0xf9, 0x7e, 0xad, 0x65, 0xa2, 0x55, 0x35, 0xc1, 0x20,
-
  0xb9, 0x51, 0x14, 0xa0, 0xaf, 0x5f, 0x48, 0x40, 0x6e, 0xdf, 0xb4, 0xc4,
-
  0x55, 0x20, 0x2c, 0x4e, 0x44, 0x22, 0x19, 0x49, 0xe5, 0xff, 0x8f, 0x15,
-
  0x94, 0x90, 0xc4, 0x78, 0xbb, 0x63, 0x43, 0xf9, 0x7a, 0x06, 0x3f, 0xba,
-
  0x71, 0x23, 0x84, 0x02, 0x4a, 0x46, 0xf7, 0x32, 0x3f, 0x7c, 0x26, 0xb8,
-
  0x12, 0xc2, 0xd9, 0x16, 0x75, 0x81, 0x66, 0x6a, 0xa9, 0xc9, 0x33, 0xcf,
-
  0xa9, 0x1c, 0x57, 0x4a, 0xe7, 0x25, 0x17, 0xbc, 0x86, 0x25, 0xc0, 0x10,
-
  0xc3, 0x68, 0x71, 0x59, 0x6d, 0xb8, 0x13, 0x8b, 0x99, 0xc6, 0xb3, 0xd9,
-
  0x75, 0xcd, 0x31, 0x9e, 0x5e, 0xe8, 0xa1, 0xb3, 0xcb, 0x6c, 0x80, 0x2f,
-
  0x3a, 0xba, 0xe7, 0x42, 0xfe, 0x87, 0x88, 0x34, 0xdb, 0x96, 0xae, 0x9a,
-
  0x00, 0x3b, 0x9a, 0x8d, 0x7a, 0xc0, 0x18, 0xe6, 0x2d, 0x96, 0xd8, 0x30,
-
  0xa1, 0xf5, 0xa1, 0x12, 0xef, 0xde, 0x05, 0x6b, 0x53, 0xff, 0xa6, 0x43,
-
  0x16, 0x30, 0x23, 0x46, 0xe8, 0xba, 0xe0, 0xfd, 0xfa, 0x58, 0x67, 0x45,
-
  0x37, 0xde, 0x9c, 0x68, 0xbb, 0x62, 0x9c, 0x00, 0xff, 0x58, 0x90, 0x6b,
-
  0xf9, 0x66, 0xf9, 0x9e, 0xdf, 0x6d, 0x6c, 0x0c, 0x39, 0x93, 0xe3, 0x9d,
-
  0x70, 0x92, 0x13, 0xed, 0x45, 0xe4, 0x65, 0x7c, 0xc7, 0xf8, 0x6b, 0x3c,
-
  0x10, 0xb6, 0x81, 0xcf, 0x04, 0xff, 0xc9, 0x77, 0x23, 0x30, 0xef, 0x09,
-
  0xa7, 0xb4, 0xb1, 0x82, 0x2c, 0x42, 0x09, 0x3f, 0xd0, 0xb0, 0x70, 0xb6,
-
  0x23, 0xfa, 0x04, 0xc0, 0x6e, 0x6e, 0x0f, 0xc7, 0x90, 0x23, 0x7e, 0xe2,
-
  0x52, 0xb9, 0x1b, 0xbf, 0x3c, 0xbf, 0x17, 0xf2, 0xc3, 0xb7, 0xf5, 0x39,
-
  0x37, 0xb3, 0xad, 0xf0, 0x56, 0xeb, 0x76, 0x0e, 0xd3, 0x1e, 0x3b, 0x5b,
-
  0xdb, 0xc2, 0x6d, 0x9f, 0x1d, 0x0a, 0x3c, 0x62, 0xa8, 0x4f, 0x26, 0x9e,
-
  0x59, 0xb9, 0xe7, 0xd1, 0xdd, 0x7b, 0x03, 0xe2, 0xdb, 0x94, 0xc4, 0x7f,
-
  0x8e, 0xb9, 0x0d, 0x77, 0x82, 0x93, 0xa2, 0xfb, 0x71, 0xce, 0x0c, 0xf3,
-
  0x5c, 0x5a, 0xfd, 0x14, 0x7b, 0x91, 0x6e, 0x8c, 0x91, 0x91, 0x71, 0x5b,
-
  0x41, 0xd6, 0xc9, 0x09, 0x45, 0xe1, 0x77, 0x58, 0x32, 0x4b, 0x93, 0x3d,
-
  0xd9, 0x9a, 0x7a, 0xdd, 0x5a, 0xed, 0x8d, 0xe5, 0x40, 0x4c, 0xb5, 0x1e,
-
  0xa7, 0xc3, 0x28, 0x31, 0xbd, 0x31, 0xec, 0x8d, 0x8a, 0x8a, 0x72, 0x5c,
-
  0x79, 0xf0, 0xde, 0xa8, 0xbe, 0x29, 0x49, 0xe6, 0x44, 0x8a, 0xa2, 0x57,
-
  0x5b, 0xcd, 0x2a, 0xee, 0xda, 0x80, 0x78, 0x48, 0x46, 0xd6, 0x58, 0x49,
-
  0x71, 0x1a, 0x2d, 0xc9, 0xe2, 0x4f, 0xfa, 0xfb, 0x20, 0x8a, 0x93, 0xea,
-
  0x24, 0xc1, 0x94, 0xfe, 0xbb, 0x47, 0x54, 0xc0, 0x94, 0x2e, 0x4a, 0x5e,
-
  0x1f, 0xbd, 0x4a, 0xb4, 0x4b, 0x0f, 0x6c, 0x8a, 0xfd, 0x05, 0x5d, 0x80,
-
  0xe6, 0x3e, 0x06, 0xc5, 0x6e, 0xc1, 0xe2, 0x27, 0xfa, 0x09, 0x73, 0x15,
-
  0xf0, 0x5d, 0xe1, 0x29, 0x6c, 0x9b, 0x8d, 0xec, 0x66, 0xa6, 0xd6, 0x1d,
-
  0xb5, 0x5d, 0xe8, 0xb7, 0x31, 0xb5, 0x06, 0x99, 0xdc, 0x6f, 0xf5, 0xc3,
-
  0x46, 0x17, 0xeb, 0x9c, 0x20, 0x7b, 0x78, 0xbd, 0x8a, 0x88, 0x7b, 0x98,
-
  0x35, 0x11, 0xd5, 0xbf, 0x4d, 0x51, 0x92, 0xa5, 0x14, 0xb9, 0x61, 0x8a,
-
  0x7a, 0x20, 0x1e, 0x9d, 0xd1, 0x62, 0x3a, 0xc7, 0x96, 0x49, 0x96, 0x89,
-
  0x6e, 0xe0, 0x25, 0x84, 0x44, 0x1d, 0x05, 0xb6, 0x12, 0xa1, 0xa6, 0x2c,
-
  0xeb, 0xfa, 0x3e, 0x20, 0x9a, 0x0b, 0x29, 0x85, 0xf0, 0xf4, 0xe5, 0x53,
-
  0x72, 0x1e, 0x15, 0x82, 0xc7, 0x58, 0x30, 0x09, 0x47, 0x0f, 0x6b, 0x0e,
-
  0x3b, 0xe5, 0xda, 0xac, 0x18, 0xbb, 0xcc, 0x7d, 0xb2, 0x59, 0x6d, 0x25,
-
  0x54, 0xea, 0xd0, 0x22, 0x19, 0x24, 0x5c, 0x5d, 0x2a, 0xcb, 0x79, 0x3a,
-
  0x8f, 0xa5, 0x56, 0xc6, 0x6a, 0x0c, 0x35, 0x5f, 0xeb, 0x12, 0x0b, 0x26,
-
  0xaa, 0x4a, 0x2d, 0xea, 0x83, 0xcb, 0xf4, 0x0d, 0x07, 0x4b, 0x78, 0xb1,
-
  0xd6, 0xe8, 0xe4, 0x68, 0x13, 0x56, 0xbe, 0xae, 0xf2, 0xd4, 0x49, 0x4e,
-
  0xba, 0xb7, 0x7f, 0x5f, 0xe4, 0x20, 0x8b, 0x50, 0xa0, 0x35, 0x97, 0x54,
-
  0x92, 0xb5, 0x64, 0xd8, 0xc2, 0x80, 0x15, 0xc4, 0xab, 0x13, 0xfa, 0x86,
-
  0x43, 0x2d, 0x19, 0x3c, 0x31, 0x72, 0x97, 0xbc, 0x7e, 0x57, 0x16, 0x4f,
-
  0xa8, 0xf8, 0x2b, 0xa2, 0x50, 0x04, 0xae, 0xbc, 0x1e, 0xe5, 0x51, 0x47,
-
  0xcf, 0x0e, 0xb9, 0x04, 0x51, 0x8d, 0xc5, 0x56, 0x3e, 0x18, 0x15, 0x7e,
-
  0x24, 0xdf, 0x76, 0xad, 0x2a, 0x11, 0x7e, 0x24, 0x65, 0xc6, 0x78, 0x77,
-
  0xbe, 0xb1, 0x08, 0x2d, 0x80, 0x12, 0xc1, 0x2b, 0x6b, 0x93, 0x56, 0x59,
-
  0x0b, 0x12, 0x78, 0x63, 0x87, 0x2e, 0xf0, 0x17, 0x2b, 0x23, 0x9b, 0x22,
-
  0x7a, 0xf6, 0xb9, 0xf7, 0xe1, 0x06, 0xf0, 0xaa, 0x86, 0xd6, 0x7a, 0x8e,
-
  0x4b, 0xed, 0x8a, 0x81, 0xcb, 0xb6, 0x0a, 0x74, 0xa0, 0xe0, 0x67, 0xa3,
-
  0xfb, 0x98, 0x75, 0x9f, 0xcd, 0xce, 0x41, 0x07, 0x88, 0x79, 0x13, 0x4d,
-
  0x38, 0x82, 0x63, 0x89, 0x0d, 0xec, 0x1e, 0xe0, 0xcf, 0x3d, 0xfa, 0xb9,
-
  0x8f, 0xa8, 0x92, 0x8d, 0x13, 0x50, 0x71, 0xa5, 0xcf, 0x25, 0xd2, 0xef,
-
  0x7a, 0xd4, 0xbc, 0x71, 0xd2, 0x80, 0x8b, 0x66, 0xf6, 0x04, 0xef, 0x85,
-
  0x90, 0x77, 0x12, 0x23, 0xc2, 0x14, 0xa9, 0x55, 0x2e, 0x8f, 0x34, 0xc8,
-
  0x9c, 0xf0, 0x82, 0x55, 0x38, 0x0c, 0x23, 0x92, 0xa0, 0x0d, 0x7e, 0x2d,
-
  0x33, 0x0a, 0x0f, 0x48, 0x16, 0x35, 0x57, 0x31, 0x46, 0x13, 0xcb, 0xc4,
-
  0x2c, 0x79, 0xd2, 0x03, 0xd9, 0xdc, 0x7c, 0x44, 0x9d, 0xdf, 0x3e, 0x51,
-
  0xec, 0xd4, 0xc8, 0x6d, 0xb7, 0x0b, 0x28, 0x43, 0xd7, 0x8c, 0x0a, 0xa8,
-
  0x95, 0x1d, 0xb8, 0x44, 0x01, 0x6a, 0x33, 0xb2, 0xdb, 0xf0, 0x90, 0xcf,
-
  0x00, 0x25, 0x20, 0x35, 0x8a, 0x03, 0x01, 0xb6, 0x9c, 0x93, 0xd9, 0x66,
-
  0x72, 0xc3, 0xf9, 0xe5, 0x96, 0x07, 0xe8, 0x69, 0xdb, 0x90, 0xcb, 0x9d,
-
  0x6e, 0xad, 0xdf, 0x11, 0x5b, 0xb2, 0x0c, 0x19, 0x82, 0x0b, 0x6a, 0xf2,
-
  0x23, 0x6f, 0xc8, 0x71, 0xbe, 0x8f, 0xbc, 0x12, 0xef, 0x87, 0x97, 0xcd,
-
  0x12, 0x99, 0xac, 0x1d, 0x46, 0x35, 0x20, 0xb5, 0x1e, 0x71, 0x7a, 0xf4,
-
  0xdf, 0x71, 0xc4, 0xa9, 0xa3, 0x6d, 0x2b, 0x58, 0x20, 0xfb, 0xff, 0xe9,
-
  0xe7, 0x3c, 0x5e, 0xc4, 0xae, 0x97, 0xd7, 0xa4, 0x33, 0x41, 0xe6, 0xf2,
-
  0xe7, 0xbc, 0x79, 0xaa, 0xe9, 0xaa, 0xc1, 0x9f, 0x7f, 0x13, 0x41, 0xf1,
-
  0x97, 0xd5, 0x77, 0x0e, 0x95, 0xad, 0x4e, 0x96, 0xef, 0x9e, 0x55, 0x22,
-
  0xb9, 0x15, 0x0f, 0x8f, 0x6e, 0xa3, 0xc6, 0xb1, 0x62, 0xfa, 0x97, 0x43,
-
  0xf5, 0xa7, 0x67, 0x67, 0x7f, 0xd8, 0xdd, 0x93, 0x83, 0x45, 0xc7, 0xc9,
-
  0x41, 0x7e, 0x35, 0x6d, 0x93, 0x94, 0x1a, 0x15, 0xce, 0x61, 0x78, 0x9c,
-
  0xfc, 0x7f, 0x9c, 0x65, 0xcd, 0x78, 0x97, 0xec, 0x0b, 0x30, 0x0b, 0x9b,
-
  0x95, 0x96, 0x33, 0xc3, 0xcd, 0xb2, 0x31, 0x90, 0x51, 0x1b, 0xf0, 0x73,
-
  0x50, 0xd5, 0x4a, 0xe2, 0x51, 0x24, 0xb1, 0x45, 0x5e, 0x34, 0xc5, 0xd6,
-
  0xe9, 0x4b, 0xa5, 0x61, 0x5e, 0x53, 0xcc, 0xd2, 0xa8, 0x1b, 0x95, 0x14,
-
  0x5d, 0x36, 0x64, 0x7b, 0x20, 0x0f, 0xdb, 0x3b, 0xc2, 0x05, 0x26, 0xf7,
-
  0x17, 0x6e, 0x4f, 0xb8, 0xbc, 0x8c, 0xaf, 0x7a, 0x8b, 0x8b, 0x5d, 0x5f,
-
  0x41, 0x81, 0xef, 0xc9, 0x89, 0xab, 0x56, 0x42, 0xa9, 0xfe, 0xce, 0x42,
-
  0xf5, 0xae, 0x17, 0xa2, 0x80, 0x25, 0x22, 0xfe, 0x14, 0xf5, 0x22, 0x64,
-
  0x61, 0x86, 0xe6, 0x7b, 0xf5, 0xcd, 0x3c, 0x6b, 0xa1, 0x59, 0xfa, 0x3c,
-
  0x79, 0x8a, 0x3f, 0x7d, 0x19, 0x4c, 0xfc, 0x30, 0x54, 0x5c, 0xb2, 0xc9,
-
  0xb7, 0x51, 0x6e, 0x1c, 0x95, 0xbc, 0x1c, 0x9d, 0x0a, 0x84, 0xd5, 0xc5,
-
  0x3c, 0xbc, 0x6e, 0x72, 0xf4, 0xe6, 0x87, 0x6e, 0x72, 0xfa, 0xf6, 0xe4,
-
  0x47, 0x1a, 0xdd, 0x29, 0xd0, 0x27, 0xfb, 0xe7, 0xcc, 0xe2, 0x8d, 0xdd,
-
  0x56, 0x6d, 0xb9, 0xc9, 0x3c, 0x1e, 0x4e, 0xff, 0xb2, 0x5a, 0x20, 0x94,
-
  0x53, 0x27, 0xe9, 0x48, 0x2c, 0x4b, 0xd3, 0x92, 0x0b, 0x9e, 0x26, 0x76,
-
  0xab, 0x2e, 0xda, 0x6b, 0xc6, 0x66, 0x25, 0xba, 0xd3, 0x34, 0x28, 0x9f,
-
  0x07, 0x45, 0xc6, 0x6f, 0x95, 0xd7, 0x13, 0x23, 0x58, 0x1c, 0x62, 0x3f,
-
  0x69, 0x61, 0x75, 0x22, 0xcb, 0xa4, 0xc9, 0xfc, 0xfd, 0xb0, 0xda, 0xdd,
-
  0x3d, 0x48, 0xde, 0xbd, 0x3d, 0x66, 0xf1, 0x1d, 0xa6, 0x48, 0x87, 0x09,
-
  0x27, 0xa9, 0x55, 0x98, 0xfc, 0x24, 0x44, 0x8f, 0xe3, 0x99, 0x50, 0x02,
-
  0xdc, 0xcc, 0x3c, 0x10, 0x62, 0xa5, 0xdf, 0x6a, 0x91, 0xc2, 0x02, 0x11,
-
  0xf3, 0x7e, 0x05, 0x09, 0xc1, 0x89, 0x61, 0x77, 0x4b, 0x61, 0xf6, 0xfe,
-
  0xc7, 0x45, 0x2f, 0x7c, 0x3c, 0x8b, 0xb6, 0x8e, 0x90, 0xab, 0xac, 0x41,
-
  0xe5, 0x1f, 0xcf, 0xaa, 0xb3, 0xb2, 0x8e, 0x68, 0x9c, 0x19, 0x42, 0x34,
-
  0xdb, 0x7c, 0x7e, 0x89, 0x31, 0x5b, 0x4f, 0x1d, 0x3a, 0x3a, 0x2b, 0xd0,
-
  0x4e, 0xde, 0x92, 0x67, 0xd6, 0x14, 0xb8, 0x14, 0xd6, 0x49, 0x32, 0x51,
-
  0xe9, 0x65, 0xb2, 0x7d, 0x65, 0x95, 0x0a, 0xe8, 0xb9, 0xa2, 0x27, 0x59,
-
  0xde, 0x23, 0xee, 0x1d, 0x61, 0xdd, 0x36, 0x8f, 0x06, 0x1f, 0x1c, 0x4c,
-
  0x2b, 0x56, 0x74, 0xd7, 0x8a, 0x69, 0x7a, 0xb7, 0xbf, 0x97, 0x6c, 0xee,
-
  0xf6, 0x77, 0x81, 0x75, 0xee, 0x92, 0xd6, 0x79, 0xae, 0x91, 0x5b, 0x78,
-
  0x22, 0x65, 0xcc, 0x6a, 0xa8, 0xce, 0x4d, 0xa0, 0xd2, 0x18, 0x6d, 0xd8,
-
  0xb4, 0x7c, 0xa4, 0x8f, 0xf5, 0x93, 0xb7, 0x18, 0x78, 0xba, 0xc0, 0x80,
-
  0xa5, 0x68, 0xc4, 0x16, 0xa0, 0xe0, 0x50, 0x9f, 0x80, 0x2c, 0xde, 0xbd,
-
  0x7d, 0xa5, 0x11, 0x6e, 0xba, 0x1d, 0x64, 0x46, 0xaf, 0xb2, 0xed, 0x51,
-
  0x31, 0xac, 0xb6, 0xc9, 0xd2, 0x29, 0x4d, 0x5f, 0xd6, 0xd3, 0x09, 0x8b,
-
  0x12, 0x2d, 0xcb, 0x9e, 0x7c, 0x56, 0x27, 0xb1, 0xeb, 0xe8, 0xe8, 0xd9,
-
  0xf3, 0x97, 0x47, 0x3d, 0xf8, 0x79, 0x76, 0xd8, 0x3b, 0x3c, 0x3a, 0xdb,
-
  0xdd, 0x7b, 0xd2, 0xfb, 0xe1, 0xd9, 0xeb, 0xde, 0xd9, 0xcb, 0xc3, 0xbd,
-
  0x47, 0x8f, 0x0f, 0x98, 0xb2, 0xf8, 0x99, 0xb7, 0x6d, 0x4f, 0xdc, 0x03,
-
  0x31, 0xd6, 0x93, 0x6a, 0x77, 0x5f, 0xc7, 0xd3, 0x75, 0x64, 0xe5, 0x08,
-
  0xb4, 0x49, 0x9c, 0xe5, 0x24, 0xd4, 0x20, 0xfe, 0xd6, 0x5b, 0xb5, 0x32,
-
  0x87, 0x6f, 0x47, 0x0c, 0x2b, 0x4d, 0xdc, 0xdd, 0x4c, 0xfe, 0x1f, 0xd6,
-
  0x53, 0xd5, 0xd0, 0x96, 0x3c, 0x0b, 0xcc, 0x58, 0xbc, 0x91, 0xd9, 0x95,
-
  0x26, 0x5f, 0x24, 0xaf, 0x28, 0x16, 0x8f, 0xfd, 0x29, 0x01, 0xdb, 0x9c,
-
  0x13, 0xae, 0xe3, 0x14, 0x63, 0xf3, 0x54, 0x05, 0x7f, 0x0a, 0xa5, 0x44,
-
  0x8d, 0x48, 0x9c, 0x2d, 0xa1, 0x4d, 0x04, 0xad, 0x68, 0x11, 0x51, 0xd4,
-
  0x1e, 0xef, 0x85, 0x93, 0x56, 0x16, 0xd6, 0xb3, 0x69, 0xd3, 0x4d, 0x4c,
-
  0xa6, 0x0e, 0x3d, 0x75, 0xad, 0xc7, 0xae, 0x85, 0x85, 0x49, 0x03, 0xb7,
-
  0x89, 0x99, 0x66, 0x58, 0xff, 0x5d, 0x2c, 0x4c, 0x3a, 0x2a, 0xb3, 0xdf,
-
  0x28, 0x70, 0xe5, 0xf7, 0x69, 0x92, 0x61, 0xe6, 0xab, 0x49, 0x82, 0x0d,
-
  0x80, 0x0d, 0xdb, 0xed, 0x73, 0x85, 0x7a, 0x8e, 0xad, 0xa4, 0x9f, 0x62,
-
  0xbb, 0x35, 0xdc, 0xe8, 0x16, 0xdb, 0xad, 0x76, 0x23, 0x81, 0x0c, 0x2d,
-
  0xb6, 0xdb, 0x65, 0x93, 0xab, 0xb4, 0x76, 0x3f, 0x36, 0x57, 0x69, 0xec,
-
  0xdf, 0x6d, 0x74, 0x6d, 0x73, 0x79, 0x30, 0x08, 0x5b, 0xf2, 0x94, 0xff,
-
  0xdd, 0xfe, 0xce, 0x9d, 0x50, 0xc9, 0x3c, 0x3b, 0xa2, 0xc9, 0xc9, 0x73,
-
  0x18, 0x0b, 0x28, 0x55, 0x71, 0x85, 0xf7, 0x6b, 0x9c, 0x05, 0x6d, 0x92,
-
  0x26, 0xba, 0xf3, 0x3a, 0xab, 0x51, 0x26, 0xd5, 0x8d, 0x51, 0xb4, 0x57,
-
  0xcb, 0xaf, 0x89, 0x01, 0x0a, 0x32, 0xd7, 0x93, 0xc2, 0xc3, 0xe7, 0xbe,
-
  0x94, 0x85, 0x13, 0x74, 0x0b, 0x2b, 0x7d, 0xd4, 0xd3, 0x39, 0xd0, 0x31,
-
  0x13, 0x40, 0x54, 0x3d, 0x59, 0x46, 0x33, 0xc8, 0x1d, 0xf0, 0x08, 0x2a,
-
  0xc8, 0x2b, 0x81, 0xe3, 0x26, 0xcf, 0x4e, 0xde, 0xbc, 0x39, 0x7a, 0x76,
-
  0xde, 0xcc, 0x88, 0x33, 0x20, 0x77, 0x0f, 0xd4, 0x2d, 0xbd, 0x54, 0x62,
-
  0x27, 0x0a, 0x5a, 0xa9, 0x39, 0xc9, 0x29, 0x2a, 0x8c, 0x54, 0xcb, 0x99,
-
  0xa1, 0x14, 0xa7, 0x43, 0x84, 0x3c, 0x57, 0x1a, 0x63, 0x12, 0x13, 0x76,
-
  0x83, 0x14, 0xc1, 0x6e, 0xbf, 0x0a, 0x65, 0x34, 0x62, 0x47, 0x1c, 0xe7,
-
  0x2d, 0x5d, 0xe1, 0x30, 0xd2, 0xd1, 0x68, 0x5b, 0x00, 0x81, 0xad, 0x69,
-
  0x73, 0x36, 0x07, 0xf0, 0x7e, 0xd2, 0x59, 0x46, 0xbd, 0x62, 0xdc, 0xa3,
-
  0x0c, 0x89, 0x69, 0x5a, 0xbe, 0xc7, 0x74, 0x4e, 0x8f, 0x95, 0x8f, 0xb5,
-
  0x65, 0x48, 0x59, 0x81, 0x26, 0xa5, 0xc2, 0x22, 0xa7, 0x45, 0xa4, 0x5a,
-
  0x8a, 0x4b, 0xa2, 0x40, 0xa5, 0x77, 0xe6, 0x4b, 0xb3, 0xfa, 0xc0, 0x1c,
-
  0x85, 0xf8, 0xe2, 0x2c, 0xbb, 0xc6, 0x1e, 0x18, 0x75, 0x64, 0x88, 0xb5,
-
  0x3c, 0x31, 0x9f, 0x02, 0xe6, 0x57, 0x2f, 0xca, 0x99, 0xab, 0xb5, 0x70,
-
  0xc3, 0x0c, 0x0f, 0x8b, 0x44, 0x25, 0x54, 0xec, 0xa7, 0xc2, 0x5b, 0x59,
-
  0x90, 0xf0, 0x75, 0x09, 0x5e, 0xf2, 0x56, 0x37, 0x63, 0x8b, 0xe2, 0x42,
-
  0x69, 0x28, 0x35, 0x93, 0x9b, 0x52, 0x08, 0x8f, 0x19, 0x68, 0x9c, 0xdb,
-
  0x18, 0xa0, 0xfa, 0x30, 0xd0, 0xa3, 0xb2, 0x77, 0x30, 0x93, 0x41, 0x36,
-
  0x23, 0x6d, 0x06, 0x3a, 0x35, 0x0a, 0x6c, 0xd4, 0x98, 0xfd, 0x92, 0x52,
-
  0x7f, 0x17, 0x84, 0x03, 0x8d, 0xdd, 0x7c, 0x17, 0x6e, 0x27, 0xca, 0x19,
-
  0xb0, 0x00, 0xb2, 0xda, 0xbc, 0x7b, 0xb0, 0x28, 0xb8, 0x8c, 0xb2, 0x68,
-
  0x5a, 0xf7, 0x9a, 0x13, 0x55, 0xe4, 0x88, 0xe4, 0x33, 0x84, 0xd5, 0x23,
-
  0x13, 0x9d, 0x14, 0x3d, 0xfd, 0xae, 0x97, 0x38, 0x8f, 0xaf, 0x7a, 0xf7,
-
  0xd2, 0x91, 0x5b, 0xff, 0x8a, 0xfd, 0x1c, 0x55, 0x0d, 0x07, 0xaa, 0x6d,
-
  0xd0, 0xc1, 0xd5, 0xde, 0x08, 0x1a, 0x56, 0x33, 0x38, 0xe5, 0x27, 0x04,
-
  0xea, 0xd9, 0xa6, 0x18, 0xf9, 0xa6, 0xcd, 0xdc, 0x0e, 0x5b, 0x83, 0x1f,
-
  0xc4, 0x11, 0xc9, 0xb1, 0x16, 0xe8, 0x3d, 0x22, 0xeb, 0x96, 0x87, 0x6e,
-
  0x34, 0xdf, 0xf9, 0x4b, 0xef, 0x05, 0x66, 0x0e, 0xf6, 0xde, 0xc0, 0xda,
-
  0x1e, 0x24, 0xff, 0x55, 0x20, 0x2c, 0xea, 0x87, 0xc8, 0xc1, 0x7b, 0x0b,
-
  0xef, 0xbb, 0xa5, 0x5d, 0x0c, 0xae, 0xe8, 0x1d, 0x5e, 0x10, 0xd9, 0xc2,
-
  0xa9, 0x02, 0x05, 0xba, 0xba, 0xaf, 0xa6, 0x5f, 0xc2, 0xd9, 0x3d, 0x58,
-
  0x6e, 0xeb, 0x13, 0x2a, 0x81, 0x48, 0xbb, 0x58, 0xe1, 0x2d, 0xe2, 0xb4,
-
  0x6f, 0x9a, 0x95, 0xf2, 0xda, 0x64, 0x0d, 0x17, 0xa2, 0xc7, 0xae, 0x62,
-
  0x46, 0xf3, 0x50, 0xb9, 0x16, 0x43, 0xdf, 0xa9, 0x62, 0x2c, 0x35, 0xb1,
-
  0xab, 0xe0, 0xd2, 0xe2, 0xc6, 0x81, 0x47, 0x31, 0x66, 0x8d, 0xa4, 0x77,
-
  0xb6, 0x0f, 0xc2, 0xb9, 0x11, 0x4d, 0x2c, 0x22, 0xb2, 0xe0, 0x43, 0xe1,
-
  0x20, 0x73, 0x96, 0xcd, 0x90, 0x5d, 0xb3, 0x81, 0x04, 0xab, 0x76, 0x54,
-
  0x96, 0x5a, 0x41, 0xce, 0xca, 0xb6, 0xac, 0xdc, 0x30, 0xd1, 0x8f, 0x2a,
-
  0xaf, 0xb6, 0x3a, 0x2b, 0x37, 0x34, 0xb8, 0xce, 0x3d, 0xcb, 0x3d, 0xdb,
-
  0x6d, 0x7a, 0x5b, 0x91, 0x0b, 0xff, 0x82, 0xd5, 0xba, 0x58, 0x55, 0xcc,
-
  0xcf, 0x57, 0xbb, 0x90, 0xbd, 0xea, 0x2f, 0xf9, 0x79, 0x76, 0x9b, 0xe8,
-
  0x58, 0x2d, 0x34, 0xa0, 0xbe, 0x9c, 0xa6, 0x65, 0x5c, 0x3f, 0x5f, 0x57,
-
  0x55, 0x3b, 0xc2, 0xea, 0x27, 0x89, 0xbc, 0xe3, 0xb4, 0x31, 0x77, 0xc7,
-
  0xc0, 0xe0, 0x0d, 0xf0, 0x45, 0x72, 0xbc, 0xc4, 0x36, 0xe0, 0x91, 0x6a,
-
  0xe2, 0xac, 0x38, 0x62, 0x8a, 0x28, 0x3e, 0x23, 0x03, 0x91, 0xd4, 0xed,
-
  0x10, 0x3f, 0xce, 0xed, 0x8a, 0xe1, 0xb7, 0x7a, 0x8f, 0x69, 0x6f, 0xe1,
-
  0x52, 0xe2, 0xbe, 0xe4, 0xe6, 0xad, 0xea, 0x6c, 0xee, 0xf2, 0x6e, 0x25,
-
  0x2d, 0x91, 0x8c, 0xd5, 0xc2, 0xf3, 0x31, 0x22, 0x66, 0x78, 0x99, 0x0d,
-
  0xdf, 0xbb, 0x32, 0xcf, 0x3f, 0x31, 0x6c, 0x4d, 0x84, 0xdd, 0x28, 0xf6,
-
  0x36, 0xe1, 0x79, 0x14, 0xb4, 0x6f, 0x0e, 0x19, 0x6f, 0x93, 0xe9, 0xfa,
-
  0x5a, 0xa9, 0x32, 0xef, 0x2a, 0xdc, 0xd6, 0x1b, 0x15, 0xa9, 0x9e, 0xde,
-
  0xb0, 0x23, 0x79, 0xd1, 0x39, 0x65, 0x33, 0x53, 0xf9, 0xdb, 0xea, 0x40,
-
  0x54, 0x84, 0x80, 0xab, 0xe0, 0x9e, 0x37, 0xbb, 0x33, 0x09, 0x41, 0x1c,
-
  0x5f, 0x16, 0xaa, 0x45, 0x68, 0x19, 0x30, 0x0d, 0xff, 0x14, 0x04, 0xef,
-
  0x10, 0xa5, 0x24, 0x28, 0x88, 0xbe, 0x45, 0x3a, 0x73, 0x68, 0xcb, 0x4f,
-
  0x5c, 0x55, 0x9f, 0xb4, 0x61, 0xd2, 0xa6, 0x90, 0xce, 0xca, 0x80, 0x59,
-
  0x55, 0x01, 0x47, 0x03, 0x81, 0x78, 0x4c, 0x89, 0xe6, 0xf8, 0x06, 0x9d,
-
  0xd1, 0x2d, 0x84, 0xf0, 0xe6, 0xa0, 0x91, 0x0f, 0xa9, 0xb4, 0x44, 0x32,
-
  0x5e, 0x94, 0x8c, 0x57, 0x29, 0x0a, 0xf1, 0xc1, 0xed, 0xea, 0x2f, 0xb6,
-
  0xcc, 0xba, 0xaf, 0xee, 0xca, 0xe1, 0xdb, 0x37, 0xc7, 0x6f, 0x7e, 0x38,
-
  0xb0, 0xf5, 0xae, 0xdb, 0x88, 0xa2, 0x49, 0x47, 0xc5, 0x72, 0xc8, 0x57,
-
  0xc0, 0x31, 0x5a, 0x96, 0xb6, 0x8d, 0xfe, 0xef, 0x0b, 0x16, 0x35, 0x6a,
-
  0x75, 0x1d, 0xd6, 0x61, 0x23, 0xf8, 0x1d, 0x36, 0x4a, 0x11, 0xbe, 0x57,
-
  0x38, 0x6c, 0x09, 0x5f, 0x0c, 0x7e, 0x7c, 0x7b, 0x2b, 0xe8, 0x3b, 0x31,
-
  0x5e, 0x32, 0xa8, 0x98, 0x35, 0x98, 0x81, 0xaf, 0x22, 0x3b, 0x24, 0x5b,
-
  0x2a, 0x97, 0x88, 0x54, 0xe2, 0x49, 0x82, 0x3d, 0xc6, 0xb9, 0x76, 0x23,
-
  0x33, 0x32, 0x75, 0x1a, 0xa4, 0x6b, 0x4b, 0x84, 0x67, 0x8c, 0xbb, 0x76,
-
  0x3f, 0x68, 0x8b, 0x01, 0x2e, 0x9e, 0xdc, 0x67, 0xb6, 0x88, 0x60, 0x17,
-
  0x14, 0xe2, 0xfa, 0x3b, 0x76, 0x08, 0x1b, 0x61, 0xd3, 0xdd, 0x6a, 0x4d,
-
  0xd5, 0x1e, 0x89, 0xcc, 0xc6, 0xb2, 0x5b, 0x31, 0x6a, 0x21, 0xef, 0x8c,
-
  0x38, 0xd6, 0xc9, 0x72, 0xc9, 0x3b, 0x17, 0xad, 0x4a, 0x9c, 0x08, 0x13,
-
  0xbf, 0x8a, 0x91, 0x10, 0xfd, 0x84, 0xed, 0xc7, 0x6c, 0x4a, 0x66, 0x6b,
-
  0x2d, 0x1a, 0x5a, 0x39, 0xa6, 0xd6, 0x41, 0x50, 0xd1, 0x82, 0x5b, 0x51,
-
  0x3d, 0xe7, 0x82, 0x40, 0x03, 0x0a, 0x03, 0xee, 0x63, 0xd0, 0xf1, 0x4a,
-
  0x03, 0xab, 0x4d, 0x2c, 0x76, 0x15, 0xac, 0xed, 0xe6, 0xb6, 0xf7, 0x6f,
-
  0xb1, 0xaf, 0xde, 0x8b, 0x81, 0xd5, 0x3a, 0x42, 0x3c, 0xb2, 0xbb, 0xb7,
-
  0xff, 0xa3, 0x2d, 0x5a, 0x0d, 0x0f, 0x42, 0x63, 0xff, 0xcd, 0x5e, 0xd9,
-
  0x30, 0x56, 0x04, 0x69, 0x6d, 0xf3, 0xec, 0xf4, 0xcd, 0xd1, 0x0f, 0x27,
-
  0x5b, 0xeb, 0xda, 0x2d, 0xc2, 0x55, 0xcb, 0x31, 0x80, 0x3e, 0xe9, 0x21,
-
  0xaa, 0x7f, 0x95, 0x34, 0xac, 0x17, 0x12, 0x7a, 0xf6, 0x26, 0x1e, 0x91,
-
  0x75, 0xdf, 0x66, 0xcf, 0x68, 0x61, 0xae, 0xae, 0xf9, 0x7b, 0x0c, 0x0b,
-
  0x0c, 0xad, 0xde, 0xbf, 0x59, 0x43, 0xad, 0x19, 0xb7, 0x05, 0x08, 0x62,
-
  0xb8, 0x47, 0x3e, 0x6c, 0x14, 0x60, 0x0f, 0xc5, 0xa8, 0x9a, 0x51, 0x82,
-
  0x6d, 0xf5, 0xf5, 0x84, 0xa7, 0xb6, 0xd8, 0xfb, 0x6e, 0xb7, 0x34, 0x51,
-
  0x39, 0x23, 0xd2, 0xfc, 0x6c, 0xa3, 0xa8, 0xf9, 0x78, 0x3f, 0x78, 0x3b,
-
  0x56, 0x09, 0xc9, 0xf7, 0x52, 0xdb, 0xcd, 0x35, 0x75, 0xdb, 0x26, 0xac,
-
  0xa9, 0x0b, 0xad, 0xd8, 0x0b, 0x57, 0x9d, 0xed, 0x36, 0x63, 0x53, 0x0c,
-
  0x89, 0x4a, 0x1f, 0xb5, 0xc0, 0xc1, 0x3a, 0x10, 0xd8, 0x10, 0xda, 0x63,
-
  0x4e, 0x4f, 0xfa, 0x2c, 0x12, 0x7b, 0xd9, 0x23, 0xe7, 0xae, 0xb8, 0xd5,
-
  0x41, 0x3c, 0xd4, 0x9b, 0xbf, 0xba, 0x6e, 0x65, 0x6e, 0x4b, 0xdc, 0x6d,
-
  0x09, 0x76, 0xb6, 0xdd, 0xc1, 0xdf, 0xac, 0xa9, 0xf5, 0xf1, 0xdc, 0x2d,
-
  0x46, 0xa0, 0xbd, 0x6f, 0xe6, 0x76, 0x87, 0xdb, 0xe8, 0xdf, 0x82, 0x76,
-
  0xea, 0xa2, 0x9b, 0x63, 0xb8, 0xd3, 0x5b, 0xd0, 0x4e, 0x35, 0xd6, 0xf2,
-
  0xff, 0x43, 0x3b, 0xfd, 0xdf, 0x13, 0xed, 0xf4, 0x7b, 0x81, 0xa1, 0xa2,
-
  0x56, 0x41, 0x59, 0xde, 0xe9, 0xef, 0x34, 0x34, 0x89, 0x51, 0x3e, 0x0a,
-
  0xe9, 0x09, 0xc9, 0x68, 0x91, 0x69, 0xed, 0xce, 0xc1, 0xe2, 0xa2, 0x45,
-
  0x1a, 0x69, 0x42, 0x71, 0xae, 0x25, 0x74, 0xde, 0x5d, 0x07, 0xaf, 0xdd,
-
  0x8c, 0xf5, 0x89, 0x80, 0x9c, 0xcb, 0xef, 0xde, 0x17, 0x2c, 0x67, 0xd4,
-
  0xe8, 0x6a, 0x59, 0xc6, 0x5f, 0x92, 0xc9, 0x53, 0xfc, 0xe9, 0xc3, 0x20,
-
  0x2e, 0x39, 0x68, 0x32, 0x1f, 0x66, 0x5c, 0x88, 0x9a, 0xd8, 0x2f, 0x0b,
-
  0x17, 0x89, 0xaf, 0xfe, 0x21, 0xcc, 0xb3, 0x51, 0x6b, 0x31, 0x06, 0x0d,
-
  0x68, 0x76, 0xf6, 0x11, 0xa1, 0x52, 0x9f, 0x18, 0x56, 0x12, 0x75, 0xd7,
-
  0xa9, 0x2e, 0xcb, 0xc5, 0x00, 0x58, 0xc1, 0x4d, 0xe7, 0x93, 0xc4, 0x0e,
-
  0xdf, 0x58, 0xb7, 0x95, 0x97, 0xda, 0x35, 0xd8, 0x5c, 0xe2, 0x6a, 0xd2,
-
  0xa3, 0x30, 0x39, 0x2c, 0x96, 0xa8, 0x1e, 0x2e, 0x81, 0x00, 0x27, 0x4a,
-
  0x4e, 0x29, 0x69, 0x83, 0x3c, 0x0b, 0x9c, 0x72, 0x9c, 0x8c, 0x27, 0xe9,
-
  0xb5, 0x6a, 0xf2, 0xc0, 0x4b, 0x76, 0xe1, 0x28, 0x84, 0x0c, 0x4e, 0x01,
-
  0xc8, 0x90, 0x4b, 0xe5, 0xfb, 0xa3, 0xc3, 0xb3, 0xf3, 0x36, 0xc1, 0xd2,
-
  0x61, 0xb8, 0x99, 0x96, 0xa7, 0x51, 0x6f, 0x2e, 0x5c, 0xc8, 0xd4, 0x05,
-
  0xce, 0x79, 0x0a, 0x91, 0x25, 0x78, 0x91, 0xdd, 0x08, 0xcc, 0x9f, 0x96,
-
  0x9f, 0xc7, 0xe1, 0xf2, 0x68, 0xd1, 0xc1, 0x2d, 0x29, 0x94, 0x14, 0xe0,
-
  0x47, 0xe9, 0x29, 0x06, 0x2b, 0x98, 0x91, 0x03, 0x22, 0x1d, 0x70, 0x74,
-
  0x21, 0x74, 0x0e, 0x5a, 0xf8, 0x54, 0x74, 0xcf, 0xaa, 0xc0, 0x4a, 0x4e,
-
  0x13, 0xf6, 0x9c, 0x10, 0x23, 0xb4, 0x12, 0xc1, 0x69, 0xa3, 0x30, 0xa6,
-
  0x4b, 0x84, 0x44, 0x33, 0x26, 0x83, 0x1c, 0x54, 0x18, 0xd0, 0x22, 0xe0,
-
  0x66, 0xc8, 0xc8, 0x38, 0x62, 0x60, 0x27, 0xa4, 0x45, 0xb9, 0x19, 0x87,
-
  0x32, 0x16, 0x2a, 0x39, 0xb1, 0xf1, 0x12, 0x5a, 0x64, 0xd4, 0x15, 0x7c,
-
  0x59, 0xb3, 0x43, 0xfb, 0x4d, 0x7b, 0x86, 0x5f, 0xaa, 0x49, 0x51, 0x00,
-
  0x17, 0x13, 0x3b, 0x06, 0xbe, 0xa5, 0x7b, 0x25, 0x0a, 0x99, 0xe5, 0xc9,
-
  0xd1, 0x5b, 0xc2, 0x88, 0x27, 0xe9, 0x05, 0xbb, 0x6c, 0xaa, 0xf7, 0x2c,
-
  0x0d, 0x0a, 0xbf, 0x25, 0xe8, 0xf4, 0x15, 0x2e, 0xe2, 0x06, 0xb5, 0x24,
-
  0x91, 0xc1, 0xaf, 0x5d, 0xd1, 0x6e, 0x7a, 0x28, 0x57, 0x51, 0xde, 0x9d,
-
  0x91, 0xf1, 0x1f, 0x69, 0x3d, 0x69, 0x34, 0xbf, 0xd6, 0x91, 0x6c, 0x8c,
-
  0xe8, 0xd3, 0x34, 0xf5, 0x66, 0x2b, 0xb7, 0xb0, 0x37, 0x7c, 0x72, 0x51,
-
  0x17, 0x3d, 0x96, 0x13, 0x29, 0x6e, 0xa6, 0x69, 0x5a, 0x6d, 0x7b, 0x66,
-
  0x5d, 0x33, 0x2b, 0xdb, 0x3f, 0xa5, 0xb6, 0x90, 0x41, 0x04, 0x39, 0xa5,
-
  0x9c, 0x62, 0xdc, 0xf9, 0x33, 0x0d, 0xb0, 0xea, 0x27, 0x49, 0xb2, 0x52,
-
  0xea, 0x6f, 0x1d, 0xcc, 0x7a, 0x18, 0x96, 0xc2, 0x58, 0xd6, 0xda, 0xb5,
-
  0x46, 0x0f, 0x6b, 0x6f, 0x5d, 0x73, 0x64, 0x1f, 0x2d, 0x8d, 0xfa, 0xba,
-
  0x60, 0x5f, 0x36, 0xec, 0xe1, 0xad, 0x3d, 0xac, 0xde, 0xdb, 0x28, 0xec,
-
  0xe4, 0xd6, 0x30, 0xa7, 0xf8, 0xc9, 0xff, 0xdb, 0x04, 0x3b, 0x11, 0x97,
-
  0xdd, 0xed, 0xef, 0xc7, 0x01, 0x4e, 0x3a, 0x4c, 0xe9, 0xca, 0xe5, 0x4a,
-
  0xdc, 0x11, 0xe0, 0x84, 0x5c, 0x8d, 0x99, 0xe1, 0x7e, 0x1c, 0xe9, 0x24,
-
  0x76, 0xdd, 0x90, 0xb2, 0xf3, 0x49, 0x91, 0x4e, 0x2b, 0xc2, 0x4d, 0x69,
-
  0x25, 0x45, 0x4d, 0x5e, 0x2a, 0x00, 0xee, 0xf3, 0x8e, 0x60, 0x5c, 0xf0,
-
  0xdf, 0x00, 0x27, 0x4a, 0x0c, 0xd8, 0x43, 0x06, 0x18, 0x68, 0x3b, 0x56,
-
  0xaf, 0x10, 0xd0, 0xf8, 0xfd, 0xfe, 0xe3, 0x3e, 0xe5, 0x1d, 0xd3, 0xd3,
-
  0x6d, 0xa2, 0xa2, 0x48, 0x8a, 0x44, 0xe5, 0xfa, 0x16, 0xbe, 0x60, 0xad,
-
  0x35, 0x96, 0x44, 0xd6, 0x55, 0xfc, 0x48, 0x54, 0x84, 0x4d, 0x8a, 0x82,
-
  0xc9, 0x39, 0x15, 0x36, 0x2e, 0x58, 0x5e, 0x6d, 0x71, 0x5d, 0x0a, 0xc1,
-
  0xd2, 0xa2, 0x23, 0xc6, 0x94, 0xd6, 0xae, 0x2c, 0xb6, 0x68, 0x8b, 0xbf,
-
  0x43, 0xc8, 0x89, 0x7b, 0x84, 0xc9, 0xfe, 0x7a, 0x78, 0x74, 0xf6, 0xeb,
-
  0xee, 0xde, 0x93, 0x5f, 0x7f, 0x78, 0xf6, 0xfa, 0xd7, 0x10, 0xe3, 0xf5,
-
  0x91, 0xc7, 0x13, 0x11, 0x56, 0x76, 0xe3, 0xbc, 0xa4, 0xe6, 0x52, 0x50,
-
  0x16, 0x48, 0xdc, 0xfd, 0x5d, 0xb9, 0x1f, 0xf0, 0x34, 0xca, 0x88, 0xad,
-
  0x31, 0xb7, 0xb8, 0x4f, 0x4d, 0xf3, 0x0b, 0x3d, 0x48, 0x5b, 0xeb, 0xb5,
-
  0x74, 0x3e, 0x2f, 0xcc, 0x6b, 0x8d, 0xd1, 0x46, 0x00, 0xc2, 0xb0, 0x7e,
-
  0x9d, 0xb3, 0xb7, 0xa7, 0x9d, 0x2e, 0x5d, 0xbb, 0xd0, 0x72, 0x0f, 0xfe,
-
  0x4a, 0x36, 0x11, 0x29, 0xf9, 0xd1, 0xce, 0xa3, 0x87, 0x5b, 0xfd, 0x96,
-
  0x3c, 0x3a, 0x6e, 0xd0, 0x27, 0x17, 0x80, 0x98, 0x93, 0x95, 0x8c, 0xf5,
-
  0xe5, 0xca, 0xdb, 0x33, 0x71, 0xd3, 0xa0, 0xb4, 0x61, 0x19, 0xc4, 0xaa,
-
  0x2b, 0xdd, 0xcf, 0x3a, 0x8e, 0x5c, 0x8d, 0x6c, 0x0f, 0xab, 0xed, 0xaa,
-
  0xbe, 0x81, 0xb5, 0x62, 0xb1, 0x3f, 0xa9, 0xa2, 0xf7, 0x72, 0x5f, 0x38,
-
  0xb7, 0x7b, 0x89, 0xc8, 0x86, 0x46, 0x17, 0x0a, 0x72, 0xe0, 0x3e, 0x73,
-
  0x69, 0xf8, 0x8d, 0xe9, 0x5a, 0x40, 0xfd, 0x53, 0x06, 0x39, 0x70, 0x74,
-
  0x12, 0x40, 0x12, 0xb8, 0x0a, 0xa6, 0x0b, 0xfc, 0x6a, 0x21, 0x21, 0xcd,
-
  0xbe, 0x36, 0x6b, 0x45, 0xe4, 0x40, 0x5e, 0x9e, 0x72, 0xe4, 0x45, 0x89,
-
  0x89, 0x0e, 0x18, 0xad, 0xf7, 0x02, 0x2f, 0x6d, 0x11, 0xcd, 0x90, 0xf3,
-
  0x48, 0x6e, 0xc5, 0xea, 0x22, 0x99, 0x5f, 0xe9, 0x87, 0xf8, 0xff, 0x6a,
-
  0xba, 0x09, 0x89, 0x05, 0x9f, 0x48, 0x37, 0xd6, 0xc0, 0xbf, 0x81, 0x6e,
-
  0xac, 0xaf, 0xd8, 0xb0, 0x78, 0x4f, 0xa6, 0x2a, 0x59, 0xe1, 0x65, 0x5a,
-
  0xa1, 0x75, 0x6f, 0xaa, 0xae, 0xf8, 0xa1, 0x69, 0xac, 0x0b, 0xad, 0x28,
-
  0x15, 0x89, 0xcf, 0x46, 0x37, 0x5c, 0x37, 0x24, 0xa2, 0x1b, 0x09, 0x8a,
-
  0xd1, 0xd4, 0x7d, 0x97, 0x60, 0x26, 0xe6, 0xdf, 0x36, 0xe2, 0xe9, 0x27,
-
  0x9e, 0x46, 0x56, 0x50, 0x89, 0x2d, 0x12, 0x4d, 0x74, 0x35, 0xb9, 0xb8,
-
  0x6a, 0xb1, 0x44, 0x30, 0x81, 0x62, 0x58, 0x64, 0xf0, 0xbe, 0x35, 0x5d,
-
  0x84, 0xcf, 0xec, 0x5f, 0xd3, 0x6e, 0xaa, 0x29, 0x9d, 0x9e, 0xdf, 0xed,
-
  0x06, 0x5d, 0x83, 0x0f, 0x5c, 0xed, 0x06, 0x33, 0x3d, 0x06, 0x5e, 0x90,
-
  0xb8, 0xef, 0x94, 0x36, 0x58, 0x8b, 0x0f, 0x7c, 0x64, 0xbd, 0x09, 0xae,
-
  0x4d, 0x15, 0xec, 0xeb, 0x12, 0xa7, 0x8a, 0x19, 0x13, 0x37, 0x43, 0x52,
-
  0xc6, 0x65, 0x7e, 0x01, 0xf7, 0xd8, 0xea, 0xe3, 0x78, 0xb5, 0xcb, 0x07,
-
  0x51, 0x82, 0x5f, 0x56, 0x9d, 0xc3, 0x15, 0xb2, 0x3d, 0x37, 0x70, 0x3f,
-
  0x26, 0x7d, 0x6e, 0xeb, 0x77, 0xec, 0x81, 0xae, 0xf5, 0xbb, 0x6e, 0xec,
-
  0x19, 0x78, 0x1a, 0x5c, 0x03, 0xb0, 0x23, 0x2d, 0xae, 0x68, 0x3b, 0x59,
-
  0x31, 0x62, 0x0d, 0x0b, 0x7b, 0x21, 0xd2, 0xb2, 0x69, 0x0b, 0x32, 0x63,
-
  0x10, 0x95, 0x14, 0x63, 0xd0, 0xa6, 0x90, 0x3c, 0x9e, 0x9c, 0x9d, 0x9d,
-
  0x1e, 0xf7, 0x18, 0xb5, 0x4d, 0xd0, 0x0f, 0xac, 0x08, 0x39, 0xf9, 0x3b,
-
  0x31, 0xe2, 0x30, 0xcb, 0x31, 0x4e, 0x41, 0x2a, 0x9f, 0x99, 0x73, 0x09,
-
  0x7a, 0x6c, 0x73, 0xdd, 0x30, 0xb2, 0xbc, 0xc1, 0xf5, 0x60, 0x09, 0x33,
-
  0xc5, 0xde, 0x04, 0xea, 0x9f, 0xc0, 0x32, 0xbb, 0x8b, 0xde, 0x4f, 0x29,
-
  0xcc, 0x89, 0x61, 0x63, 0x49, 0x9c, 0xf7, 0x68, 0x34, 0x94, 0x0f, 0x1a,
-
  0x60, 0xe7, 0x1a, 0x50, 0x00, 0x0e, 0x16, 0xc7, 0xd9, 0x0f, 0x0e, 0x92,
-
  0x4e, 0xef, 0x5d, 0x72, 0xd0, 0xd1, 0x75, 0x38, 0x99, 0x49, 0x8e, 0x7f,
-
  0x85, 0xd4, 0x5b, 0x72, 0x06, 0x3a, 0xc9, 0x21, 0x0a, 0xc0, 0x78, 0x49,
-
  0xb0, 0x4f, 0xae, 0xf6, 0x5b, 0x88, 0x7e, 0xe4, 0x68, 0x44, 0x67, 0xec,
-
  0x95, 0x24, 0x4f, 0x52, 0x21, 0x30, 0xb0, 0x52, 0xdd, 0xf9, 0x0a, 0x6a,
-
  0x97, 0xcd, 0x18, 0xa4, 0x88, 0xc1, 0xe2, 0xa9, 0xb6, 0xc9, 0xb0, 0xcc,
-
  0x46, 0x0c, 0x79, 0x5a, 0xf9, 0x86, 0x8a, 0xaa, 0xca, 0x07, 0x20, 0x06,
-
  0x5d, 0x28, 0x12, 0x54, 0x85, 0xd1, 0x27, 0x03, 0xcd, 0x82, 0xa3, 0x95,
-
  0xaa, 0x34, 0x77, 0x8d, 0x21, 0x7c, 0x04, 0x62, 0xc1, 0x0c, 0x52, 0x14,
-
  0xea, 0xc9, 0xf5, 0xa4, 0xd0, 0x3f, 0x7d, 0x95, 0x63, 0x8b, 0x99, 0x44,
-
  0xe6, 0x4c, 0x0b, 0x5a, 0x42, 0x2d, 0x39, 0x00, 0xe7, 0x99, 0xb2, 0x29,
-
  0xcf, 0x30, 0x07, 0x14, 0xcd, 0xc4, 0x55, 0x1e, 0xd2, 0xf8, 0x09, 0xf8,
-
  0x3a, 0xe0, 0xf5, 0x97, 0x19, 0x42, 0xe0, 0x5e, 0x65, 0xba, 0x2f, 0xe2,
-
  0x27, 0x30, 0x68, 0x71, 0x84, 0xec, 0x9e, 0xe6, 0x58, 0xcf, 0x99, 0x76,
-
  0x71, 0x96, 0x59, 0xcd, 0x12, 0x55, 0xf6, 0xa8, 0xbb, 0x04, 0xcf, 0x28,
-
  0x07, 0x2c, 0xc6, 0x95, 0xe2, 0xbd, 0xa1, 0x52, 0xaf, 0xf2, 0xcf, 0x86,
-
  0x51, 0xa9, 0x7d, 0x10, 0x2b, 0x3d, 0x50, 0x5f, 0xcf, 0xdd, 0x61, 0x69,
-
  0x4b, 0xbe, 0x37, 0x24, 0xd6, 0x98, 0x6d, 0x22, 0x2b, 0x7b, 0xea, 0x50,
-
  0xfe, 0xbe, 0x5d, 0x9d, 0x2c, 0xcd, 0x8e, 0x4f, 0xb1, 0x2e, 0x72, 0x4d,
-
  0x07, 0x49, 0x79, 0x8b, 0x00, 0xce, 0x62, 0x3b, 0xa1, 0x0b, 0x2b, 0xc8,
-
  0x6b, 0x17, 0x55, 0x80, 0xfc, 0x99, 0x5e, 0x8b, 0xc1, 0xcc, 0x32, 0xb5,
-
  0x8a, 0x68, 0xe2, 0xfe, 0x90, 0x02, 0xcc, 0xea, 0x6b, 0x24, 0x2c, 0x31,
-
  0xf0, 0x6b, 0x29, 0x88, 0x06, 0x14, 0x98, 0x2f, 0xf7, 0x69, 0x22, 0xa5,
-
  0xc4, 0x7f, 0x13, 0xa4, 0x58, 0x0d, 0x84, 0x37, 0x97, 0x22, 0x13, 0xcc,
-
  0x52, 0x34, 0x7c, 0xdb, 0x80, 0xb9, 0x96, 0x82, 0x8c, 0x42, 0x0e, 0x88,
-
  0x02, 0x0c, 0x26, 0xb1, 0x79, 0xb5, 0x81, 0x55, 0x6f, 0xe9, 0x6b, 0xfa,
-
  0xec, 0xee, 0xaa, 0x8c, 0x00, 0x6c, 0xe6, 0x5e, 0x98, 0x3b, 0x36, 0xf4,
-
  0x89, 0x11, 0xa5, 0xdd, 0x65, 0x68, 0xa3, 0x2c, 0x62, 0xf7, 0xf3, 0x6e,
-
  0x1b, 0x1e, 0x19, 0xe3, 0x5f, 0x79, 0xec, 0xa1, 0xa0, 0xdb, 0x5b, 0xcb,
-
  0xde, 0x1c, 0xea, 0xc1, 0xa9, 0x7c, 0x43, 0xb8, 0x62, 0x30, 0x57, 0x4c,
-
  0xe4, 0x8e, 0xb7, 0xc0, 0x21, 0x48, 0x28, 0x76, 0x5a, 0x3a, 0x87, 0x0f,
-
  0x53, 0x01, 0xdf, 0x9c, 0xa6, 0xa3, 0xac, 0x19, 0x0b, 0xe1, 0x46, 0xd3,
-
  0x08, 0xcb, 0x67, 0x92, 0xb1, 0xa8, 0x4c, 0x0b, 0x9e, 0x53, 0x3f, 0x84,
-
  0x60, 0x41, 0x13, 0x17, 0xa1, 0x04, 0x69, 0xb5, 0xd1, 0x84, 0x82, 0x22,
-
  0x1a, 0x13, 0x41, 0x24, 0xab, 0x84, 0x4e, 0x13, 0xc2, 0x38, 0x7f, 0xa1,
-
  0xa9, 0x78, 0x6a, 0x02, 0xf5, 0x56, 0x18, 0x71, 0x73, 0xcc, 0x27, 0xd7,
-
  0x3a, 0x88, 0xc7, 0x99, 0x18, 0x22, 0x93, 0xc6, 0x6e, 0x8b, 0x89, 0x5e,
-
  0xc3, 0x46, 0x19, 0xaa, 0x4f, 0x72, 0x06, 0xa4, 0xcc, 0x7a, 0x12, 0x1e,
-
  0x16, 0x72, 0x46, 0xba, 0xd7, 0x2e, 0x34, 0x69, 0xbe, 0x67, 0x11, 0xda,
-
  0x2b, 0xad, 0x88, 0x8a, 0x20, 0x76, 0x6f, 0x01, 0xb6, 0xdc, 0xe0, 0x1a,
-
  0xa4, 0x2b, 0x3d, 0xdf, 0x47, 0x48, 0xb4, 0x78, 0xa0, 0x43, 0x3c, 0xdc,
-
  0xe6, 0x19, 0xa2, 0x96, 0x9d, 0x3d, 0x3b, 0xdd, 0x4a, 0x4e, 0x83, 0x07,
-
  0x54, 0x03, 0xe3, 0xfa, 0x84, 0x3c, 0xe8, 0x41, 0xee, 0x24, 0x9d, 0x4c,
-
  0x42, 0xe5, 0x96, 0xbd, 0xc6, 0x44, 0xcf, 0x96, 0xcc, 0x41, 0xc1, 0xf8,
-
  0x3e, 0x11, 0x23, 0xe2, 0x2e, 0x69, 0x0c, 0xfd, 0x25, 0x1e, 0x57, 0xef,
-
  0x32, 0x95, 0x48, 0x2f, 0x45, 0x9a, 0x6f, 0x8b, 0xe5, 0xc2, 0x2e, 0xa4,
-
  0x4a, 0x17, 0xb2, 0xed, 0x96, 0x58, 0x49, 0xfc, 0xfd, 0x22, 0x9b, 0xe1,
-
  0x25, 0x43, 0x86, 0x64, 0x63, 0xba, 0x42, 0xea, 0x54, 0xf1, 0xa5, 0xce,
-
  0x94, 0xe0, 0x51, 0xa7, 0x0b, 0x9d, 0xcb, 0xa0, 0x72, 0xc2, 0xcd, 0x95,
-
  0x93, 0x61, 0x91, 0xca, 0xae, 0x72, 0x0c, 0xdc, 0x76, 0x98, 0xc9, 0xa6,
-
  0x78, 0x12, 0x78, 0x0d, 0xce, 0x31, 0x46, 0x1c, 0x1f, 0xae, 0xaa, 0xcb,
-
  0x3d, 0xcc, 0xbf, 0xec, 0x3f, 0x09, 0xe2, 0xb0, 0x70, 0x5b, 0x94, 0x27,
-
  0x6a, 0x90, 0x9c, 0xc6, 0x9a, 0x30, 0x13, 0xb5, 0x62, 0x98, 0x11, 0x7c,
-
  0x8b, 0xde, 0xe9, 0x74, 0xfd, 0x9d, 0x45, 0x8b, 0xb9, 0x7d, 0xda, 0x33,
-
  0xf8, 0x3d, 0xa9, 0x56, 0x56, 0x27, 0x8e, 0x8a, 0x11, 0x87, 0xab, 0xf2,
-
  0xcf, 0xc8, 0x06, 0xff, 0xbe, 0xc0, 0xb5, 0x7c, 0x2a, 0x52, 0x80, 0x52,
-
  0x19, 0x11, 0xd9, 0x0b, 0x8c, 0xbe, 0x87, 0x97, 0x67, 0x84, 0xd1, 0x9e,
-
  0x96, 0x83, 0x1c, 0xd6, 0xb6, 0xbc, 0x09, 0xe9, 0x0d, 0x1a, 0xbf, 0xaa,
-
  0x6c, 0x84, 0xc0, 0xfd, 0xd0, 0xe3, 0x0f, 0xbf, 0xa8, 0xb0, 0x80, 0xce,
-
  0xad, 0x7e, 0xf2, 0x67, 0xea, 0x45, 0xde, 0x53, 0xdc, 0x58, 0x92, 0x23,
-
  0xbf, 0x3f, 0x7a, 0x71, 0xf2, 0xf6, 0xa8, 0x11, 0x19, 0xeb, 0x03, 0xac,
-
  0x65, 0x44, 0xbf, 0x61, 0x76, 0xab, 0x14, 0xd0, 0xe2, 0xec, 0x91, 0x1c,
-
  0x05, 0x37, 0x38, 0xfd, 0x3f, 0x3d, 0xb7, 0x01, 0x11, 0x28, 0xa3, 0x80,
-
  0x02, 0x5a, 0x6b, 0x5d, 0x1a, 0xe7, 0x40, 0x93, 0xa5, 0xd0, 0xfd, 0x84,
-
  0xb6, 0xaf, 0x82, 0xf8, 0x77, 0x12, 0x06, 0x45, 0xa9, 0x2e, 0x9c, 0x52,
-
  0x24, 0x1d, 0xa5, 0x88, 0x1f, 0x88, 0x42, 0x25, 0xd5, 0xdf, 0xb2, 0xf6,
-
  0x94, 0xac, 0x09, 0x6d, 0x91, 0x6a, 0x0b, 0x4b, 0x48, 0xd3, 0x08, 0xf1,
-
  0x44, 0x36, 0x7a, 0x16, 0x16, 0x41, 0xcb, 0x88, 0x17, 0xff, 0x56, 0x62,
-
  0xfd, 0x85, 0x35, 0xd0, 0x2c, 0x1c, 0xe9, 0x8c, 0x49, 0x14, 0xf9, 0x13,
-
  0xbb, 0xf8, 0x46, 0x8e, 0x3c, 0x50, 0x28, 0xa6, 0x93, 0xe2, 0xb0, 0xb5,
-
  0x92, 0xdf, 0x04, 0x40, 0x85, 0xa4, 0xc8, 0x10, 0x20, 0xeb, 0x03, 0x8c,
-
  0xa5, 0xb3, 0xcd, 0x6a, 0x6b, 0x69, 0xd0, 0x61, 0x17, 0x2d, 0x89, 0x74,
-
  0xe3, 0x8f, 0x1b, 0x16, 0xcd, 0xae, 0x52, 0xb3, 0x03, 0x2b, 0x65, 0xa3,
-
  0x50, 0xea, 0x6f, 0x14, 0x84, 0xdc, 0x10, 0x79, 0x9b, 0xe8, 0x5c, 0x1f,
-
  0xd6, 0x05, 0x68, 0xcb, 0x6c, 0x0b, 0xb1, 0x28, 0xba, 0x14, 0xfd, 0x15,
-
  0x10, 0xd9, 0x55, 0x5d, 0x60, 0xc1, 0x84, 0x5a, 0xca, 0x69, 0x8d, 0xd3,
-
  0x7c, 0x42, 0x81, 0xd1, 0xb6, 0x94, 0xb4, 0x62, 0x1a, 0x97, 0x9e, 0x64,
-
  0x16, 0x86, 0xa6, 0x75, 0x6c, 0x74, 0x86, 0xf8, 0x26, 0x1e, 0xb7, 0xb6,
-
  0xd9, 0xcb, 0xe4, 0xd1, 0x97, 0x0c, 0xbb, 0x90, 0x57, 0xef, 0x61, 0xdb,
-
  0xfe, 0x73, 0xab, 0xef, 0x4a, 0x9e, 0x5e, 0xe7, 0x15, 0x70, 0x2c, 0x69,
-
  0x53, 0xbc, 0xb5, 0x92, 0xd8, 0x95, 0xe8, 0xa0, 0x48, 0xb2, 0x2f, 0x66,
-
  0x56, 0x32, 0xc0, 0xe6, 0xd6, 0x75, 0xf8, 0x9b, 0x30, 0xce, 0x32, 0x0b,
-
  0xf8, 0xab, 0x24, 0x36, 0x0e, 0x38, 0x6a, 0xd5, 0xaf, 0xd7, 0x82, 0x6d,
-
  0xe1, 0xb8, 0x33, 0xd5, 0xcd, 0xac, 0x46, 0x6e, 0x26, 0x1c, 0x77, 0x58,
-
  0x94, 0x74, 0x8f, 0x33, 0x7d, 0xbb, 0xd3, 0x54, 0x71, 0x01, 0xbc, 0xe4,
-
  0xab, 0x47, 0x5f, 0xc9, 0xf6, 0xc0, 0x44, 0x67, 0xec, 0xa3, 0x61, 0x98,
-
  0x4b, 0x1a, 0x76, 0x45, 0x6e, 0x05, 0x1d, 0xa7, 0xb8, 0x6d, 0xb4, 0x11,
-
  0xdc, 0x47, 0x0c, 0xec, 0xc9, 0x08, 0xcb, 0x46, 0x59, 0xe5, 0x99, 0x7b,
-
  0xdb, 0x9c, 0x42, 0xf8, 0x19, 0x41, 0x1f, 0xa8, 0x7a, 0xaa, 0x82, 0x23,
-
  0x06, 0x6b, 0xce, 0x28, 0x8b, 0x10, 0xd7, 0xe3, 0x05, 0xa2, 0x9a, 0x8b,
-
  0x43, 0x04, 0xdd, 0xe1, 0xb0, 0xfc, 0x78, 0x93, 0x04, 0xee, 0xf0, 0xf7,
-
  0x98, 0x2b, 0x30, 0x67, 0x55, 0x8a, 0xd6, 0x78, 0x19, 0x3a, 0x60, 0x22,
-
  0xb0, 0x28, 0x3b, 0x49, 0x5e, 0xc8, 0x85, 0x57, 0x85, 0x82, 0x8c, 0x70,
-
  0x9c, 0xa8, 0x3d, 0x0a, 0x6a, 0x02, 0x4d, 0x97, 0xcb, 0xd9, 0xe0, 0x9b,
-
  0x02, 0xc9, 0x44, 0x85, 0x88, 0x2a, 0xd2, 0x91, 0x04, 0xf1, 0xd5, 0x41,
-
  0xbe, 0xca, 0x86, 0xbf, 0xb0, 0x9a, 0x7f, 0x12, 0xfe, 0xad, 0x0e, 0x29,
-
  0xc4, 0x50, 0x0f, 0xfe, 0x4c, 0x5a, 0x81, 0x78, 0xf4, 0xea, 0x46, 0x4a,
-
  0x91, 0xb7, 0xa3, 0xda, 0xc6, 0xb7, 0x29, 0xd7, 0xb4, 0xc8, 0xe4, 0x63,
-
  0x25, 0xba, 0x2a, 0xd3, 0x68, 0x21, 0x62, 0xfc, 0x29, 0x31, 0x19, 0xba,
-
  0x15, 0x94, 0x80, 0xf8, 0x24, 0xe3, 0x14, 0x41, 0xed, 0x7a, 0x30, 0xb8,
-
  0x09, 0x1f, 0x12, 0xfd, 0xcc, 0x46, 0x22, 0x46, 0x52, 0x47, 0xd9, 0x07,
-
  0x12, 0x8e, 0x7c, 0xcd, 0x0c, 0x1a, 0x2f, 0x05, 0x25, 0x41, 0x8b, 0x54,
-
  0xce, 0xa3, 0xce, 0x14, 0x84, 0x99, 0xaa, 0x64, 0x66, 0xca, 0x33, 0x70,
-
  0x7f, 0x7e, 0x05, 0x55, 0x17, 0x9f, 0xd8, 0xdc, 0x47, 0x5c, 0x32, 0xe4,
-
  0xa0, 0x73, 0xca, 0x5f, 0xe4, 0x1a, 0x06, 0x14, 0x52, 0xfb, 0xc0, 0x75,
-
  0x62, 0x55, 0x0d, 0x36, 0xbd, 0x27, 0x13, 0x81, 0xf3, 0x54, 0x76, 0xb8,
-
  0xbc, 0x28, 0xe7, 0xc9, 0x05, 0xc8, 0x8a, 0xf3, 0x68, 0x15, 0xf8, 0xf3,
-
  0x68, 0x15, 0x38, 0xe0, 0x97, 0x9e, 0x3c, 0x7e, 0x6e, 0x64, 0x49, 0x33,
-
  0xa5, 0xd9, 0x93, 0x43, 0x8a, 0x2b, 0x7b, 0xf8, 0xe9, 0x9b, 0x08, 0x6b,
-
  0xaf, 0x3a, 0x95, 0x4e, 0x96, 0x8b, 0xbf, 0xb2, 0x05, 0x93, 0x31, 0xf0,
-
  0xa7, 0xda, 0x0c, 0x91, 0xf1, 0x08, 0xde, 0x9c, 0xa6, 0x4c, 0xa5, 0x17,
-
  0x70, 0xba, 0xb5, 0x4d, 0x13, 0x85, 0x2e, 0xa7, 0xc5, 0x88, 0x91, 0x6f,
-
  0xe3, 0xd9, 0xe0, 0xc7, 0x3a, 0x1b, 0xa9, 0xcf, 0x53, 0x85, 0xf1, 0xd3,
-
  0x0b, 0x03, 0x0c, 0x5d, 0x53, 0xae, 0xe0, 0x0c, 0xf0, 0x0f, 0x38, 0xf1,
-
  0x11, 0xdb, 0xa1, 0xe7, 0xfc, 0x80, 0x66, 0x49, 0x31, 0xac, 0xdd, 0x78,
-
  0xe8, 0x01, 0xe6, 0x9b, 0x61, 0x48, 0x18, 0x76, 0x42, 0xea, 0x73, 0x3c,
-
  0x24, 0xfc, 0x78, 0x89, 0xcc, 0xe0, 0x43, 0x66, 0xb9, 0xed, 0x6b, 0xcb,
-
  0x4d, 0x3c, 0x78, 0xd0, 0x58, 0x5b, 0x6a, 0x3d, 0x5a, 0xd9, 0x41, 0xb0,
-
  0x7e, 0x35, 0xe8, 0x10, 0x3f, 0x72, 0x2d, 0xb4, 0x2e, 0xab, 0xb4, 0xa7,
-
  0x53, 0x98, 0x20, 0x8e, 0x3c, 0x26, 0xe0, 0xfc, 0x4a, 0x23, 0xe2, 0x82,
-
  0xf3, 0xbf, 0xfa, 0xd9, 0x4c, 0x66, 0xac, 0xe3, 0x54, 0x37, 0x53, 0x94,
-
  0xb4, 0x3c, 0xcb, 0x1b, 0x12, 0x46, 0x3e, 0x45, 0x44, 0x52, 0x65, 0x2f,
-
  0x10, 0xff, 0xf8, 0x11, 0xcb, 0x4c, 0x7a, 0xe0, 0x1a, 0x4c, 0xac, 0x10,
-
  0xe5, 0xbc, 0xc8, 0x67, 0x1a, 0x19, 0x44, 0x1c, 0xc5, 0x8d, 0xc0, 0x15,
-
  0x97, 0x64, 0xae, 0xf2, 0x1e, 0x2b, 0x10, 0xd8, 0x4d, 0xf7, 0x2b, 0xae,
-
  0x99, 0x0e, 0x4d, 0xbe, 0x0c, 0x97, 0xa8, 0x8c, 0x48, 0x93, 0x7c, 0x1c,
-
  0x24, 0x99, 0xac, 0x35, 0x7b, 0x56, 0x79, 0x68, 0x71, 0x9b, 0x81, 0x42,
-
  0xa5, 0xdf, 0x76, 0x16, 0x32, 0xbd, 0x8d, 0x85, 0x44, 0x95, 0x93, 0x3c,
-
  0x23, 0xd1, 0xbd, 0x5d, 0xde, 0xf0, 0xa4, 0x8d, 0x95, 0x78, 0x5e, 0x62,
-
  0xa9, 0xb4, 0x29, 0x26, 0x52, 0x3e, 0x60, 0x76, 0x02, 0xcd, 0x36, 0x78,
-
  0x89, 0xb1, 0x92, 0x56, 0x4e, 0x62, 0x8c, 0x44, 0x99, 0xd0, 0xc7, 0xf0,
-
  0x91, 0xf9, 0xf5, 0x48, 0x67, 0x0f, 0xbf, 0xda, 0xdc, 0xf5, 0xf6, 0x65,
-
  0x6c, 0xea, 0x41, 0x55, 0x4c, 0x16, 0x35, 0xe3, 0xd6, 0x71, 0x80, 0x9e,
-
  0x5d, 0xc2, 0x8b, 0xb2, 0xe4, 0xd2, 0x51, 0x2a, 0x40, 0xd9, 0xc2, 0xeb,
-
  0x5a, 0x97, 0x9c, 0x50, 0x24, 0x99, 0x60, 0x4c, 0x32, 0xda, 0xa5, 0x7c,
-
  0x17, 0x7a, 0xa5, 0x1b, 0xc7, 0x49, 0x5a, 0x1e, 0xec, 0x74, 0x89, 0x5b,
-
  0x49, 0x93, 0x7a, 0x22, 0x8c, 0x61, 0x8d, 0x32, 0x94, 0x97, 0x84, 0x1a,
-
  0x09, 0x45, 0x2e, 0xde, 0x1a, 0x1d, 0x84, 0x1d, 0x26, 0x1b, 0xea, 0x34,
-
  0x22, 0x07, 0xf8, 0x33, 0x8c, 0x8c, 0xcb, 0xe8, 0xd9, 0xce, 0x2e, 0x9d,
-
  0xd8, 0xe8, 0xe6, 0xb0, 0xf6, 0x22, 0xf2, 0x0e, 0xed, 0xe2, 0xc7, 0x6d,
-
  0x4d, 0x87, 0xb9, 0x62, 0x25, 0xae, 0x9b, 0xb8, 0x97, 0x26, 0x65, 0x6b,
-
  0x6f, 0x5d, 0x07, 0x19, 0x4b, 0x96, 0x32, 0xd4, 0x27, 0x6d, 0xf9, 0xf5,
-
  0x64, 0xdf, 0xc2, 0x08, 0x50, 0x79, 0x99, 0xd8, 0x99, 0x54, 0x85, 0x45,
-
  0xae, 0xb9, 0x28, 0x0f, 0xdb, 0xd2, 0xb0, 0xd3, 0x5b, 0x12, 0xb0, 0x1b,
-
  0x4a, 0x14, 0xb7, 0xd6, 0x79, 0x7e, 0xf4, 0xea, 0x88, 0x16, 0xa9, 0x93,
-
  0x2c, 0x6b, 0x51, 0xe3, 0xa2, 0x58, 0x56, 0xa4, 0xc4, 0x08, 0x63, 0xaa,
-
  0x3a, 0xce, 0xb5, 0x98, 0xf6, 0x96, 0x00, 0x5d, 0x9e, 0x63, 0xe5, 0x99,
-
  0x21, 0xc5, 0x4c, 0x6b, 0xc8, 0x44, 0x23, 0x7a, 0x44, 0xeb, 0x31, 0x44,
-
  0x05, 0x21, 0x1e, 0x12, 0xe6, 0x4f, 0x72, 0x5a, 0xe6, 0x56, 0x72, 0xb1,
-
  0x60, 0x1d, 0x34, 0x97, 0xca, 0x88, 0x97, 0x29, 0x97, 0xce, 0xb2, 0x60,
-
  0x3e, 0x16, 0xb4, 0xc6, 0x8d, 0xc0, 0x93, 0x62, 0x32, 0xb2, 0xe0, 0x3e,
-
  0xc3, 0x33, 0x50, 0x45, 0xf5, 0x8b, 0x65, 0xcf, 0x46, 0x38, 0x45, 0x58,
-
  0x52, 0xc7, 0x41, 0x09, 0xe2, 0xf1, 0xe1, 0x49, 0x72, 0xc4, 0x32, 0x9b,
-
  0x35, 0xc9, 0x3e, 0x6d, 0x35, 0x90, 0x43, 0xde, 0x3d, 0x7b, 0x18, 0x0c,
-
  0xe7, 0x5e, 0x5e, 0x14, 0x04, 0x39, 0x45, 0xe1, 0x8a, 0x03, 0xc3, 0xab,
-
  0xc8, 0x79, 0xeb, 0xd7, 0xb3, 0x15, 0x41, 0xbd, 0x1d, 0xe9, 0xe5, 0xe3,
-
  0xd3, 0x0d, 0x7c, 0x47, 0x18, 0x1c, 0x9b, 0x83, 0x0e, 0xb7, 0x96, 0xa9,
-
  0x26, 0xbb, 0x18, 0xf5, 0xc4, 0x60, 0x42, 0x43, 0x2e, 0xbb, 0xdc, 0x1a,
-
  0xf0, 0xbb, 0xa7, 0xf4, 0x8f, 0x07, 0x0c, 0x61, 0x31, 0x9c, 0xe4, 0xc6,
-
  0xe4, 0xc5, 0xf1, 0xab, 0xa3, 0x2d, 0xf4, 0x92, 0xb2, 0x2d, 0x9f, 0x7c,
-
  0x40, 0x83, 0x9b, 0x9a, 0x97, 0x09, 0xb9, 0xe5, 0x66, 0xde, 0x47, 0x53,
-
  0x8e, 0xa0, 0x50, 0x80, 0xa4, 0x2a, 0x42, 0x7d, 0x31, 0x24, 0xa7, 0xc7,
-
  0x16, 0x5b, 0x58, 0xd4, 0xb7, 0xb7, 0x4d, 0x28, 0x51, 0x5e, 0xf7, 0xb6,
-
  0xe0, 0x7a, 0x72, 0x37, 0x10, 0x46, 0x22, 0xf7, 0x2a, 0x52, 0xee, 0x5b,
-
  0x0e, 0x21, 0x95, 0x33, 0x14, 0x8e, 0x31, 0x1d, 0x9d, 0xa0, 0x9f, 0x5d,
-
  0xa7, 0x37, 0x26, 0xf3, 0xef, 0xf4, 0x1e, 0x7e, 0xf5, 0x15, 0x1e, 0xc7,
-
  0x60, 0x3a, 0x66, 0xbe, 0x82, 0x9a, 0xd9, 0xa3, 0x9d, 0x1d, 0x9a, 0x40,
-
  0x25, 0x0f, 0xc3, 0xdf, 0xbd, 0xaf, 0xda, 0x1e, 0xaf, 0x32, 0xd8, 0xee,
-
  0xd1, 0xd2, 0xf3, 0x3d, 0xf8, 0x60, 0xf9, 0x61, 0xda, 0xd3, 0xe6, 0xa3,
-
  0x5f, 0x61, 0xdb, 0xcb, 0xcf, 0xd2, 0x23, 0xbc, 0x2c, 0xc5, 0x78, 0x8c,
-
  0x84, 0x80, 0x0f, 0x6a, 0x45, 0xd1, 0xeb, 0xb4, 0x1c, 0xd9, 0x3c, 0x76,
-
  0xba, 0xbd, 0xdd, 0x55, 0x13, 0x21, 0x96, 0x81, 0xdd, 0xd2, 0x76, 0xe0,
-
  0x31, 0x03, 0x5d, 0x90, 0x61, 0x08, 0xe4, 0xfd, 0x5d, 0xe8, 0x7e, 0xf7,
-
  0xab, 0xaf, 0xba, 0x38, 0x8c, 0x47, 0x4b, 0x53, 0xbc, 0x2e, 0x42, 0x35,
-
  0x42, 0x7a, 0xd4, 0x6d, 0x6b, 0x05, 0x4d, 0x29, 0xa4, 0x01, 0xaa, 0x98,
-
  0xc9, 0x37, 0x49, 0xf2, 0xe6, 0xe4, 0xfc, 0x08, 0x25, 0x15, 0x31, 0xdd,
-
  0x56, 0x99, 0xd8, 0x24, 0x9c, 0xa6, 0x89, 0xa5, 0xab, 0x26, 0x37, 0xa6,
-
  0xa3, 0xb3, 0x39, 0x33, 0x2d, 0xeb, 0x60, 0x5d, 0xed, 0xe2, 0xfd, 0x66,
-
  0x05, 0x9c, 0xe4, 0x72, 0x24, 0x0c, 0xda, 0xaa, 0x47, 0x21, 0x99, 0xc8,
-
  0x9d, 0xb9, 0x0c, 0x46, 0x72, 0x9a, 0x96, 0x6c, 0x72, 0xa3, 0xd2, 0x6c,
-
  0x85, 0xaa, 0xb7, 0x38, 0x06, 0x32, 0x1a, 0x14, 0x08, 0xc1, 0x68, 0x16,
-
  0xb9, 0x80, 0xa8, 0xaf, 0x98, 0x8a, 0xfa, 0x51, 0x2e, 0x51, 0xcd, 0x24,
-
  0xb0, 0x0b, 0xeb, 0x47, 0x25, 0x95, 0x05, 0xd4, 0x07, 0x27, 0xc8, 0xa0,
-
  0x46, 0xf9, 0x05, 0x1a, 0x54, 0x7d, 0x3d, 0xda, 0x4d, 0xa0, 0x8b, 0x2d,
-
  0xb6, 0xfe, 0x70, 0xfc, 0x5e, 0xa8, 0xe5, 0xb8, 0x51, 0x01, 0xdf, 0xaf,
-
  0x37, 0x24, 0x7a, 0xea, 0xc1, 0x06, 0x2a, 0xff, 0x1b, 0xb0, 0x2d, 0xd9,
-
  0x64, 0x64, 0xf2, 0x33, 0x3f, 0xd3, 0xe3, 0xaf, 0xf8, 0xac, 0x90, 0x86,
-
  0xfc, 0x81, 0x2c, 0x6e, 0x29, 0x9a, 0x0a, 0x67, 0x3d, 0xea, 0x16, 0x87,
-
  0xa3, 0xfd, 0xb2, 0x41, 0x91, 0x53, 0x0a, 0x25, 0x58, 0x91, 0x5f, 0xee,
-
  0xfa, 0x85, 0xde, 0x68, 0xcc, 0x17, 0x5a, 0x58, 0xcc, 0x9c, 0x9b, 0x27,
-
  0x42, 0xeb, 0x8b, 0x5e, 0x03, 0x92, 0x1e, 0xe7, 0x17, 0x8b, 0xd2, 0x64,
-
  0xc7, 0x07, 0xaf, 0xd1, 0xce, 0xa1, 0x47, 0x53, 0x8d, 0x60, 0xa1, 0xb2,
-
  0x04, 0xc3, 0xd3, 0x46, 0x80, 0xe0, 0x52, 0xab, 0x6b, 0x44, 0x96, 0x51,
-
  0xa5, 0x08, 0x03, 0xdd, 0x51, 0x33, 0x2c, 0x72, 0xd5, 0x8b, 0x8c, 0xf0,
-
  0x77, 0x74, 0x02, 0xa2, 0x5d, 0xb3, 0xb7, 0xe6, 0x42, 0x15, 0x2a, 0xa2,
-
  0x88, 0x02, 0xeb, 0xe6, 0x0a, 0xcb, 0xa0, 0x61, 0x11, 0xf3, 0x61, 0x98,
-
  0x43, 0xfa, 0x55, 0xd9, 0xcd, 0x08, 0xd4, 0x83, 0x49, 0x91, 0x8e, 0x2a,
-
  0x8b, 0xdd, 0x35, 0x14, 0x07, 0x8e, 0xff, 0xe3, 0xa2, 0xc6, 0xbc, 0x2b,
-
  0x61, 0x03, 0x64, 0xed, 0x61, 0x57, 0x7d, 0x79, 0x55, 0x26, 0x54, 0x34,
-
  0x31, 0x04, 0xe8, 0x48, 0xe1, 0x29, 0xb8, 0xa6, 0x85, 0xd4, 0x00, 0xed,
-
  0x13, 0xc3, 0xc2, 0x1b, 0xaa, 0x01, 0xe8, 0x98, 0x7d, 0xa8, 0xe1, 0xcf,
-
  0x8c, 0xea, 0x9f, 0xd9, 0x35, 0x7e, 0x76, 0xfc, 0xdf, 0x47, 0xa1, 0x3c,
-
  0xa4, 0x13, 0xba, 0x39, 0x93, 0x3f, 0x32, 0x1d, 0xc3, 0x11, 0xa9, 0x05,
-
  0xfe, 0x11, 0x1a, 0x1b, 0x4e, 0x16, 0x15, 0x62, 0x90, 0xab, 0x5b, 0xe5,
-
  0x41, 0xaf, 0xa7, 0x06, 0xa3, 0x5e, 0x5a, 0x1f, 0xf0, 0xf2, 0x92, 0xa0,
-
  0xab, 0x48, 0x64, 0x61, 0xf0, 0x64, 0x79, 0x30, 0xfc, 0x35, 0x76, 0x6d,
-
  0xdb, 0x49, 0x09, 0xaa, 0x18, 0x19, 0x7b, 0x79, 0x29, 0x3f, 0x43, 0x41,
-
  0x48, 0x6e, 0x78, 0x6f, 0xaf, 0xf7, 0xf0, 0xe1, 0x9a, 0x20, 0x63, 0x61,
-
  0x7a, 0xe2, 0xfe, 0x4a, 0xe7, 0xb8, 0xc2, 0x4e, 0x52, 0x41, 0x83, 0xef,
-
  0x14, 0x76, 0x4e, 0x1d, 0x49, 0xf8, 0x49, 0x4b, 0x90, 0x03, 0x3c, 0x92,
-
  0x4f, 0x17, 0xd3, 0x60, 0x4f, 0x1c, 0xd3, 0x0b, 0xb3, 0xe1, 0x0d, 0xc7,
-
  0x14, 0x30, 0xec, 0xb1, 0x06, 0x14, 0xe0, 0xd2, 0xf5, 0xf0, 0x84, 0x71,
-
  0x43, 0xe1, 0x1a, 0x09, 0xd5, 0xa4, 0x91, 0x78, 0xc8, 0x4a, 0xc8, 0x97,
-
  0x77, 0xb2, 0x98, 0x01, 0x83, 0xd8, 0xc4, 0x5c, 0x08, 0x16, 0xdd, 0x88,
-
  0x83, 0x8c, 0x0c, 0xc5, 0x48, 0xc4, 0x54, 0x18, 0x1c, 0x82, 0xee, 0xfb,
-
  0x62, 0x8d, 0x71, 0xf6, 0x95, 0xb4, 0x4b, 0xb5, 0x0f, 0xd0, 0xaf, 0x6d,
-
  0x1d, 0xa6, 0x64, 0xa0, 0xd3, 0x86, 0xe0, 0x2f, 0x71, 0xed, 0x67, 0x6e,
-
  0xeb, 0x84, 0x31, 0xe8, 0x6e, 0xbd, 0x7b, 0xfb, 0x4a, 0x7c, 0xb1, 0xa9,
-
  0x33, 0xa4, 0x22, 0xa0, 0xfa, 0x24, 0x23, 0xed, 0x6e, 0x4c, 0x76, 0x42,
-
  0x86, 0x66, 0x0e, 0x06, 0x5a, 0x5a, 0x0a, 0x44, 0xc8, 0xa3, 0x04, 0x50,
-
  0x75, 0xa1, 0xa1, 0xea, 0x0f, 0x93, 0xac, 0xf3, 0x89, 0xe0, 0xf8, 0x47,
-
  0xa3, 0x23, 0x0f, 0x18, 0x0e, 0x9d, 0xe5, 0x25, 0xb5, 0x64, 0xe5, 0x8c,
-
  0x25, 0x2f, 0xdc, 0x96, 0x16, 0x82, 0xd6, 0x04, 0x73, 0x6a, 0x9a, 0x58,
-
  0x23, 0x4d, 0x3c, 0x1a, 0x57, 0x5e, 0x05, 0x4d, 0xfd, 0xe8, 0x41, 0xc9,
-
  0x26, 0x4d, 0x3a, 0x3b, 0x77, 0xf0, 0x64, 0x44, 0x0b, 0x9e, 0x6a, 0xa1,
-
  0xc1, 0xce, 0x9b, 0xed, 0x77, 0x1d, 0x89, 0xc8, 0x78, 0x23, 0xf6, 0x08,
-
  0xd3, 0xe1, 0x79, 0x5b, 0x43, 0x4a, 0xc9, 0x3b, 0x3e, 0x74, 0xa9, 0xdb,
-
  0x51, 0x0c, 0x97, 0x0d, 0x91, 0xff, 0xf8, 0x09, 0x23, 0x4f, 0x01, 0xfb,
-
  0x06, 0xa6, 0xb1, 0xc9, 0x32, 0xc0, 0x16, 0xac, 0xd2, 0xc6, 0x74, 0x43,
-
  0x24, 0x24, 0xb8, 0x74, 0x40, 0x83, 0x83, 0xcf, 0x36, 0x2e, 0x37, 0x92,
-
  0x4d, 0xd8, 0xe7, 0x92, 0x8b, 0x17, 0x25, 0x1b, 0x23, 0x78, 0x65, 0x7b,
-
  0x73, 0x94, 0x72, 0x4d, 0x29, 0x96, 0x50, 0xf6, 0x1e, 0x62, 0x16, 0xf7,
-
  0xa2, 0xa4, 0xb6, 0xb7, 0x3c, 0x22, 0xbf, 0xa1, 0xac, 0xea, 0x58, 0xba,
-
  0x52, 0x3c, 0x39, 0xe9, 0xe0, 0x9c, 0xdc, 0x44, 0xbb, 0x64, 0xe1, 0x36,
-
  0x1a, 0x0d, 0x35, 0x82, 0x44, 0xf1, 0x84, 0x8f, 0xb1, 0x0b, 0x47, 0x28,
-
  0x1a, 0xfa, 0x5a, 0xa3, 0x44, 0x6d, 0x95, 0x2d, 0x77, 0x77, 0x02, 0x4a,
-
  0x1a, 0xbe, 0xc4, 0x33, 0xe9, 0x5a, 0x86, 0x21, 0xe3, 0x20, 0xd7, 0x06,
-
  0x26, 0x66, 0x44, 0xaa, 0x3b, 0xc0, 0xe4, 0x91, 0x3c, 0x16, 0xd9, 0xa8,
-
  0x92, 0xdb, 0x21, 0x9b, 0xa4, 0x73, 0xd2, 0x6d, 0x72, 0x8c, 0x15, 0x10,
-
  0xff, 0x7d, 0x76, 0x95, 0x17, 0x8b, 0x2a, 0xae, 0xc0, 0x0e, 0x64, 0x66,
-
  0x64, 0x14, 0x27, 0x64, 0x8c, 0x17, 0x33, 0x49, 0x43, 0x94, 0x1a, 0xab,
-
  0xd3, 0x7c, 0x32, 0xc9, 0x45, 0x04, 0x23, 0xf4, 0x13, 0x50, 0x9b, 0x25,
-
  0x86, 0xfb, 0xd8, 0x58, 0xb5, 0x50, 0xb2, 0xc6, 0xc3, 0xe8, 0x81, 0xc7,
-
  0x06, 0x49, 0xbe, 0x9e, 0x8a, 0xb7, 0x01, 0x89, 0x02, 0x24, 0x9c, 0x1d,
-
  0x3e, 0xce, 0xdc, 0xaa, 0xc2, 0x3c, 0xcb, 0x75, 0x04, 0xe2, 0xb4, 0xea,
-
  0x1c, 0x8b, 0x19, 0xf4, 0x07, 0xe2, 0xee, 0xd0, 0x8d, 0x92, 0xfc, 0xed,
-
  0x18, 0xd0, 0x42, 0x11, 0x44, 0xae, 0x48, 0x93, 0x46, 0x40, 0xa9, 0x03,
-
  0x96, 0x9e, 0xe9, 0xca, 0xa5, 0x2b, 0xc2, 0x15, 0xbf, 0xa8, 0xbb, 0x3e,
-
  0x49, 0x6f, 0x40, 0xcc, 0xbd, 0xe0, 0xc2, 0x32, 0xa4, 0x80, 0x20, 0xf1,
-
  0x70, 0xf1, 0x32, 0xf6, 0x33, 0xd7, 0x0e, 0x41, 0xe7, 0x0c, 0x57, 0x8b,
-
  0x6c, 0xbc, 0x33, 0x8b, 0x7d, 0xe3, 0x08, 0xfa, 0xae, 0xab, 0xf3, 0xa6,
-
  0x50, 0x16, 0x8e, 0x91, 0x21, 0x55, 0x31, 0x41, 0x47, 0x30, 0x33, 0x65,
-
  0x6c, 0xd6, 0xe8, 0x27, 0xaf, 0x83, 0x77, 0x62, 0x54, 0x70, 0xed, 0x6e,
-
  0x46, 0xb2, 0x9b, 0x25, 0x8f, 0xc2, 0x44, 0x89, 0xca, 0x44, 0xaa, 0x7c,
-
  0x64, 0xdb, 0xcf, 0xf7, 0x67, 0xe7, 0xd1, 0xf6, 0xee, 0xa3, 0xaa, 0x43,
-
  0x62, 0xda, 0x84, 0x6a, 0xab, 0xe6, 0xec, 0xb6, 0xdf, 0x6f, 0xbc, 0x9f,
-
  0xc8, 0x59, 0xa8, 0x9c, 0xcb, 0xba, 0xb3, 0xbf, 0xfd, 0xf0, 0xb2, 0x83,
-
  0x5e, 0x52, 0xb5, 0x79, 0xcb, 0xa6, 0x7e, 0xae, 0xb2, 0xf7, 0x5a, 0xf5,
-
  0x9e, 0xc3, 0x31, 0x97, 0x78, 0xca, 0xca, 0xab, 0x70, 0xbd, 0x88, 0xff,
-
  0x6a, 0xe9, 0x46, 0x84, 0xf6, 0xf7, 0xb6, 0x5b, 0xeb, 0x81, 0x26, 0xfd,
-
  0x7e, 0xbf, 0xe5, 0xe9, 0xfd, 0xed, 0xcb, 0x8f, 0x78, 0x7a, 0xf7, 0xe1,
-
  0xf6, 0x74, 0xe5, 0xe3, 0x4b, 0x19, 0x3c, 0xa8, 0xaa, 0x47, 0x19, 0x3c,
-
  0xb4, 0x5f, 0xdc, 0x12, 0xdf, 0xbf, 0x44, 0xaa, 0x3d, 0xa2, 0x52, 0x77,
-
  0x09, 0x5f, 0x47, 0x20, 0x67, 0x3f, 0x49, 0xc4, 0xb5, 0x61, 0xa5, 0x5b,
-
  0x11, 0x72, 0x32, 0xe5, 0xb3, 0x03, 0x05, 0x51, 0xd6, 0x25, 0x04, 0x87,
-
  0x2a, 0xdc, 0xb1, 0x24, 0x3f, 0x76, 0xc8, 0xe5, 0x08, 0x01, 0x59, 0x3a,
-
  0xe6, 0x40, 0x79, 0xde, 0x04, 0x33, 0xc8, 0xb9, 0xcf, 0x7a, 0x32, 0x39,
-
  0x74, 0x85, 0x05, 0x1c, 0x74, 0x09, 0x73, 0x49, 0x63, 0x3d, 0xab, 0xe9,
-
  0xa4, 0x46, 0xbc, 0xd7, 0x2e, 0xde, 0x3a, 0xd7, 0xcd, 0x12, 0x5a, 0xf0,
-
  0xd1, 0xfd, 0xe5, 0xd0, 0x61, 0xfb, 0x77, 0x88, 0x3f, 0xd7, 0xeb, 0x89,
-
  0x3d, 0x75, 0xd9, 0xd3, 0xc9, 0xea, 0x22, 0x53, 0x8a, 0x6a, 0x99, 0x61,
-
  0xc0, 0x55, 0x99, 0x3c, 0x85, 0x9b, 0x3d, 0x46, 0xf0, 0xd4, 0xe4, 0x5e,
-
  0x7a, 0x02, 0x1f, 0xc1, 0x32, 0x72, 0xaa, 0x8f, 0xd0, 0x2a, 0xab, 0x8d,
-
  0x27, 0x24, 0xe9, 0x73, 0x0e, 0xc8, 0x20, 0x0b, 0xe5, 0xda, 0x42, 0xe0,
-
  0xbd, 0x21, 0x6e, 0x52, 0xca, 0x23, 0x3b, 0x38, 0xe1, 0x60, 0x66, 0x7d,
-
  0xb7, 0xb9, 0x56, 0x32, 0x4f, 0x6d, 0xcd, 0xa1, 0xb8, 0x24, 0x4b, 0xa1,
-
  0x2c, 0xab, 0x01, 0x03, 0xf8, 0x1a, 0xa3, 0x2d, 0x3a, 0x1d, 0x07, 0x12,
-
  0x15, 0xe6, 0x42, 0x23, 0xa5, 0x2f, 0xc4, 0x85, 0x6d, 0x98, 0x5e, 0x71,
-
  0x88, 0x86, 0x96, 0xc2, 0xb4, 0xab, 0x83, 0xdf, 0x64, 0x47, 0x6e, 0x8e,
-
  0x11, 0xbc, 0x1c, 0x2c, 0x82, 0xd7, 0xf7, 0x2b, 0x19, 0x90, 0x02, 0x5f,
-
  0xd1, 0x54, 0xd8, 0xc8, 0x23, 0x63, 0x69, 0xd6, 0xbe, 0x65, 0x3e, 0x3b,
-
  0x01, 0x69, 0x19, 0x08, 0x05, 0x9d, 0xaf, 0x5a, 0x1a, 0x52, 0xf4, 0x9c,
-
  0xb0, 0x46, 0xf0, 0xbc, 0xba, 0xeb, 0x6d, 0x12, 0xc6, 0x2d, 0x64, 0x4e,
-
  0xb7, 0x84, 0xe6, 0x87, 0x9b, 0x73, 0x2d, 0x01, 0x7a, 0x89, 0x5f, 0x48,
-
  0x0f, 0x1d, 0xa5, 0xa3, 0x31, 0x2c, 0x9a, 0x16, 0xca, 0xeb, 0xdc, 0x9d,
-
  0x9f, 0x7e, 0xeb, 0xfb, 0xb2, 0x34, 0xbd, 0x57, 0x1f, 0xd1, 0xce, 0xed,
-
  0xef, 0x2c, 0x51, 0x36, 0xba, 0x4d, 0x7a, 0x29, 0x82, 0x37, 0x0a, 0x3f,
-
  0x91, 0xbd, 0x11, 0x2a, 0xff, 0x2f, 0xa6, 0x72, 0x8c, 0xc0, 0x90, 0x6f,
-
  0x28, 0x3d, 0x3b, 0x22, 0xf5, 0x73, 0x8c, 0xfc, 0x35, 0x22, 0xa2, 0x47,
-
  0xc5, 0xf1, 0x60, 0x09, 0x7b, 0x0b, 0x0b, 0x8d, 0x24, 0x6d, 0xb5, 0xd7,
-
  0xc8, 0x15, 0x79, 0xc6, 0xdc, 0xa5, 0x07, 0x67, 0x19, 0x84, 0xe8, 0x9c,
-
  0x5e, 0x33, 0x38, 0x2e, 0x17, 0x2d, 0xa8, 0xf1, 0x37, 0x54, 0x1e, 0xde,
-
  0xe1, 0x75, 0x95, 0xba, 0x1a, 0xd8, 0x07, 0x10, 0xa1, 0xd6, 0x62, 0xd5,
-
  0xee, 0xc2, 0x65, 0x61, 0x2f, 0x39, 0xd8, 0x0b, 0x2e, 0xb2, 0xa3, 0x21,
-
  0x38, 0x42, 0x58, 0x58, 0xdf, 0x6f, 0x8e, 0x66, 0xd5, 0xb1, 0xf9, 0x8c,
-
  0xd5, 0xd4, 0xcd, 0xa3, 0x5a, 0x16, 0x7b, 0xcd, 0x9a, 0x58, 0xa5, 0x57,
-
  0xcc, 0xbf, 0xbd, 0x9f, 0x20, 0x8a, 0xae, 0x00, 0x36, 0xaa, 0x5f, 0x07,
-
  0x13, 0x79, 0x1c, 0xfb, 0xa9, 0x7c, 0x8c, 0x23, 0xd7, 0x7a, 0x5c, 0x2c,
-
  0xdd, 0x57, 0xc8, 0x0d, 0x20, 0x17, 0x21, 0xde, 0xd2, 0x4d, 0x90, 0x54,
-
  0x58, 0xf9, 0xc0, 0x00, 0x75, 0x70, 0x8a, 0x61, 0xff, 0xd2, 0x09, 0xe2,
-
  0x9f, 0xde, 0x70, 0xe5, 0xdb, 0x4a, 0x47, 0xe4, 0x5d, 0x08, 0x6e, 0xcc,
-
  0x6c, 0x5f, 0xa7, 0xb0, 0x0d, 0xac, 0x86, 0x79, 0x5d, 0xa2, 0xaa, 0x3d,
-
  0x0b, 0xb2, 0x3a, 0x5a, 0x8b, 0xb1, 0x3c, 0x70, 0x52, 0x0c, 0x61, 0xc6,
-
  0xb0, 0x0a, 0x3d, 0xe0, 0xf5, 0x13, 0xf4, 0x3c, 0x07, 0x6d, 0x0e, 0x1b,
-
  0xb1, 0x34, 0x6e, 0xa1, 0x98, 0x21, 0xc8, 0x07, 0x26, 0xf4, 0xab, 0x11,
-
  0x3b, 0xda, 0xbe, 0x20, 0x36, 0x58, 0xa4, 0x47, 0x98, 0x26, 0x07, 0xa1,
-
  0x3b, 0xbd, 0xcd, 0xd0, 0x46, 0x42, 0x32, 0xba, 0xdb, 0x24, 0x2e, 0x8f,
-
  0x86, 0x57, 0x89, 0xb3, 0x7a, 0x48, 0x45, 0xd7, 0xe4, 0x3f, 0x7a, 0x15,
-
  0x4b, 0xa4, 0xd0, 0xdd, 0xe6, 0x4d, 0x56, 0x6f, 0x05, 0x93, 0x4e, 0x1c,
-
  0xa5, 0xac, 0xbd, 0x77, 0x31, 0xd2, 0x2c, 0x8a, 0x2f, 0xa3, 0x4c, 0x7e,
-
  0x17, 0x17, 0x27, 0x42, 0x13, 0xdc, 0xd7, 0x1c, 0xdc, 0x0d, 0xa2, 0xcc,
-
  0x3c, 0x73, 0x40, 0x22, 0x1a, 0x69, 0x10, 0x09, 0x4f, 0x6a, 0xb7, 0xb1,
-
  0x1a, 0x6d, 0x81, 0xcc, 0xe9, 0xcf, 0x8e, 0xbe, 0xd6, 0x61, 0x13, 0x56,
-
  0xac, 0x10, 0x08, 0xd3, 0x47, 0xee, 0x1c, 0x5b, 0x5a, 0xec, 0xb5, 0xff,
-
  0xec, 0x50, 0xd7, 0x19, 0x22, 0x14, 0x6f, 0xda, 0x10, 0x2c, 0xef, 0x06,
-
  0x86, 0x38, 0xc9, 0x87, 0xb9, 0x42, 0xdb, 0x99, 0xa5, 0x0b, 0x9d, 0x82,
-
  0x5b, 0x4b, 0x29, 0xfc, 0x47, 0x1f, 0xb2, 0x72, 0x98, 0xa3, 0x65, 0xe3,
-
  0xb7, 0xc5, 0x08, 0x5e, 0xa3, 0x8b, 0x80, 0x2d, 0x1d, 0xe3, 0x06, 0x9c,
-
  0x49, 0x92, 0x49, 0x6c, 0x04, 0x9a, 0x4f, 0x1a, 0xc5, 0xed, 0xfa, 0xc9,
-
  0x61, 0x52, 0x16, 0x17, 0x0b, 0x57, 0x43, 0x0c, 0xa3, 0xd2, 0x39, 0x52,
-
  0x85, 0xe2, 0x0d, 0x75, 0x1d, 0x30, 0x5e, 0x22, 0x79, 0xfe, 0xea, 0x15,
-
  0x47, 0x9b, 0x84, 0x7c, 0x05, 0x76, 0xef, 0x10, 0x28, 0xb1, 0x06, 0xb4,
-
  0x27, 0x68, 0x78, 0xc2, 0x7b, 0x24, 0xba, 0xb8, 0xd0, 0x62, 0xa9, 0x59,
-
  0x11, 0x18, 0xaf, 0x81, 0x68, 0x09, 0x38, 0xd2, 0x52, 0xe1, 0xe1, 0x40,
-
  0x80, 0x87, 0xeb, 0xad, 0x18, 0xd7, 0xd7, 0xe9, 0x52, 0x39, 0xbc, 0x65,
-
  0x5e, 0xd8, 0x06, 0x97, 0x28, 0x56, 0x8a, 0x5b, 0x42, 0x41, 0x97, 0x64,
-
  0x95, 0xa5, 0x76, 0x6f, 0x15, 0x5d, 0x4e, 0xfe, 0xab, 0x8d, 0xbd, 0x6f,
-
  0x8b, 0x5b, 0x6b, 0xc9, 0x9b, 0x64, 0x4c, 0x59, 0xf9, 0xfa, 0x49, 0x37,
-
  0xfe, 0x5c, 0xf6, 0xa2, 0xc4, 0x64, 0x66, 0x89, 0x95, 0x25, 0x2c, 0x63,
-
  0xb1, 0xef, 0xbb, 0x80, 0x11, 0xc6, 0xf1, 0xf6, 0x01, 0xbe, 0xcc, 0x61,
-
  0x30, 0x5a, 0x22, 0xd3, 0x14, 0xf9, 0x4d, 0xb2, 0xd1, 0x06, 0x5f, 0x30,
-
  0xd9, 0x94, 0xc5, 0xce, 0xaa, 0xf1, 0x7c, 0xca, 0x2e, 0x1d, 0x2a, 0x86,
-
  0xd6, 0x77, 0x82, 0x49, 0x1a, 0x3c, 0xf6, 0xb8, 0xbf, 0xb5, 0x3e, 0x8f,
-
  0x5d, 0x0e, 0x65, 0xeb, 0x5b, 0x42, 0x0c, 0x06, 0x1d, 0x87, 0x5b, 0x82,
-
  0x3d, 0x99, 0xda, 0x48, 0x9a, 0xb8, 0xaa, 0x77, 0x8e, 0xe9, 0x91, 0x04,
-
  0x44, 0x48, 0xe1, 0xa4, 0xb9, 0x5d, 0xb2, 0x49, 0x33, 0x60, 0x93, 0x36,
-
  0xba, 0x0d, 0xfe, 0x49, 0x45, 0x36, 0x9d, 0x5d, 0x15, 0xf4, 0x0d, 0xdb,
-
  0x6c, 0x1a, 0x29, 0x2b, 0x21, 0x53, 0x9b, 0xcc, 0x5b, 0x2d, 0xac, 0xfe,
-
  0x3c, 0xac, 0x57, 0xe0, 0x78, 0x45, 0xc8, 0xb6, 0x83, 0x09, 0x48, 0x38,
-
  0x91, 0x21, 0x14, 0x05, 0x36, 0xe1, 0xb1, 0xd3, 0xe0, 0x52, 0xec, 0x22,
-
  0x73, 0x40, 0x54, 0x70, 0x50, 0xff, 0x31, 0xe6, 0xcc, 0xc1, 0x15, 0x35,
-
  0x2f, 0x02, 0x62, 0xf5, 0x8e, 0xcb, 0x3b, 0xdf, 0x99, 0xc1, 0xb4, 0xfb,
-
  0x2b, 0x88, 0x43, 0x20, 0x13, 0x2e, 0xf4, 0x08, 0x7f, 0x0c, 0x2f, 0x11,
-
  0xcb, 0xa3, 0x01, 0xab, 0x49, 0x12, 0x4a, 0xb0, 0x45, 0xb5, 0x1e, 0x25,
-
  0x41, 0x02, 0x70, 0x22, 0x20, 0x6e, 0xce, 0x68, 0x94, 0xab, 0x24, 0xe1,
-
  0x19, 0x4a, 0x3f, 0xba, 0x0e, 0x95, 0x6d, 0x50, 0xd7, 0x55, 0xe2, 0xef,
-
  0x08, 0x49, 0x7e, 0x48, 0x05, 0x2d, 0xb6, 0x31, 0xdb, 0x44, 0x39, 0x9d,
-
  0x5c, 0x6f, 0x7e, 0xde, 0x6d, 0x17, 0x87, 0x95, 0x00, 0xa7, 0x1d, 0xa7,
-
  0x70, 0xb7, 0x59, 0x12, 0x09, 0x07, 0x2c, 0x7d, 0xe6, 0x35, 0xdd, 0x42,
-
  0xff, 0xb1, 0xb7, 0x13, 0xf6, 0x59, 0x72, 0x7c, 0xb0, 0x09, 0x03, 0xc9,
-
  0x9a, 0xa7, 0x12, 0x48, 0x95, 0x68, 0x3d, 0xce, 0xa9, 0x38, 0x0f, 0x30,
-
  0x0c, 0x1a, 0x87, 0x8e, 0x71, 0x46, 0xe2, 0x6e, 0x51, 0xd6, 0x62, 0x5d,
-
  0x35, 0x62, 0x21, 0x89, 0x32, 0x3c, 0x89, 0xa5, 0x52, 0xa4, 0x4d, 0x98,
-
  0x53, 0xaa, 0x45, 0x3f, 0xcd, 0xee, 0xc0, 0x36, 0x49, 0xd8, 0x56, 0xbd,
-
  0x38, 0x43, 0x01, 0xce, 0x65, 0x10, 0x00, 0x31, 0x8a, 0x9a, 0x17, 0xc8,
-
  0x2e, 0x7d, 0x09, 0x60, 0xe4, 0x89, 0x8d, 0xcc, 0xbc, 0xa2, 0x89, 0x5b,
-
  0x20, 0x5a, 0x5f, 0x1a, 0x8e, 0x3b, 0xe7, 0x06, 0x1a, 0xcc, 0x2f, 0xaf,
-
  0x2c, 0x2e, 0x6d, 0x90, 0xe8, 0xd8, 0x07, 0xa5, 0xa7, 0x1b, 0x25, 0xba,
-
  0x65, 0xe3, 0x4a, 0x34, 0xa2, 0x10, 0xb1, 0x12, 0x1a, 0x91, 0x98, 0x08,
-
  0x36, 0x06, 0x34, 0xc4, 0x2c, 0x65, 0x48, 0x36, 0xea, 0x84, 0x27, 0x21,
-
  0x20, 0xfd, 0xa4, 0x88, 0xe1, 0xa8, 0xa6, 0x39, 0x47, 0x91, 0x23, 0x85,
-
  0x77, 0x28, 0x04, 0x45, 0xdd, 0x38, 0x1d, 0xe1, 0x74, 0x56, 0x5b, 0x9c,
-
  0x7c, 0x0b, 0x54, 0x5e, 0x29, 0x11, 0xbb, 0xbe, 0x50, 0x6b, 0x02, 0x12,
-
  0xed, 0x22, 0x55, 0x63, 0x58, 0x2c, 0x23, 0x07, 0x89, 0x13, 0xf4, 0xe4,
-
  0x62, 0x98, 0x87, 0x02, 0x88, 0x01, 0x8e, 0x8d, 0x04, 0x5a, 0xca, 0x2e,
-
  0xca, 0xa9, 0xa6, 0xc9, 0x30, 0x23, 0xdb, 0x0c, 0x8d, 0x3a, 0x78, 0x71,
-
  0x0c, 0x1c, 0x28, 0x32, 0x36, 0x2f, 0xc5, 0x2b, 0xdc, 0xae, 0xce, 0x9c,
-
  0xac, 0xbc, 0x55, 0xc2, 0x25, 0xb1, 0xd6, 0xa3, 0xb7, 0x7d, 0xbf, 0x77,
-
  0xeb, 0x0d, 0x85, 0xb0, 0x33, 0xdd, 0x88, 0x19, 0x9a, 0xa1, 0xa3, 0xe5,
-
  0x86, 0x4c, 0x9a, 0x2b, 0xda, 0x4b, 0x15, 0x97, 0xfd, 0x19, 0x73, 0xeb,
-
  0xa8, 0x12, 0xb4, 0x98, 0x2c, 0x29, 0x53, 0x0e, 0x94, 0x16, 0x36, 0xcf,
-
  0xf3, 0x09, 0x60, 0x63, 0xd4, 0x28, 0x4b, 0x15, 0x7a, 0xc0, 0xce, 0x5a,
-
  0x3e, 0x6e, 0x6c, 0x1a, 0x63, 0x5a, 0x10, 0x7b, 0xb2, 0xda, 0x03, 0xe8,
-
  0xd7, 0xe1, 0x73, 0x1f, 0x38, 0x64, 0x61, 0x86, 0x16, 0x87, 0x40, 0xcd,
-
  0x59, 0x7a, 0x56, 0x19, 0x1e, 0x77, 0x91, 0x43, 0xb4, 0x97, 0xa6, 0x41,
-
  0xec, 0x83, 0xb0, 0xa9, 0xe5, 0x8a, 0xb4, 0x43, 0x4a, 0x51, 0xbc, 0x78,
-
  0xd4, 0x3b, 0x3d, 0x04, 0x8d, 0x60, 0x4b, 0x9e, 0x17, 0x23, 0x98, 0x0b,
-
  0xb5, 0x09, 0x2e, 0xf1, 0x1a, 0xdd, 0x6f, 0x1d, 0xdf, 0x46, 0x17, 0x77,
-
  0xd8, 0x5e, 0x1a, 0x93, 0x6d, 0x89, 0x8c, 0x01, 0x5a, 0xd9, 0x95, 0x8c,
-
  0xf6, 0xf6, 0x6f, 0xf7, 0xd6, 0x92, 0x75, 0xde, 0x3a, 0x59, 0x07, 0xa7,
-
  0x29, 0x15, 0x49, 0x43, 0x7e, 0x95, 0x53, 0x05, 0xc8, 0xd7, 0x9a, 0x51,
-
  0xbe, 0x10, 0x67, 0x5a, 0xe1, 0xb2, 0xd4, 0xd0, 0x6b, 0x9b, 0xf4, 0xe2,
-
  0x76, 0x95, 0xd3, 0x4a, 0x38, 0xa3, 0x53, 0x3d, 0x9e, 0xb4, 0x67, 0x9c,
-
  0x38, 0x30, 0x0e, 0x19, 0x1e, 0xe9, 0x55, 0x9a, 0x4f, 0x78, 0x29, 0xcd,
-
  0x1d, 0x2f, 0x21, 0x8b, 0x1c, 0x4a, 0xc1, 0x12, 0xd3, 0x45, 0x66, 0x45,
-
  0x95, 0x2a, 0xe6, 0x66, 0x3a, 0x92, 0xd8, 0x64, 0xd6, 0x36, 0xb5, 0xcf,
-
  0xb2, 0xab, 0xd8, 0xd4, 0x5a, 0x3b, 0x4a, 0x86, 0x6c, 0xa0, 0xcb, 0x71,
-
  0x51, 0xac, 0x67, 0x82, 0xf0, 0x47, 0x8b, 0x8f, 0x3a, 0x36, 0x81, 0xae,
-
  0xc6, 0x51, 0x74, 0xc2, 0xaf, 0xb2, 0x5e, 0x31, 0xeb, 0xd1, 0x7d, 0xa3,
-
  0x55, 0xa8, 0xf0, 0x43, 0x95, 0x57, 0x79, 0xdd, 0x60, 0xa9, 0xed, 0x52,
-
  0x12, 0x55, 0x94, 0x8f, 0xa5, 0xbb, 0xb8, 0xd8, 0xe9, 0xe4, 0x1a, 0x22,
-
  0x2e, 0xaa, 0xae, 0x17, 0x14, 0x0a, 0xb5, 0x4d, 0x4e, 0x62, 0x0d, 0x32,
-
  0xb0, 0x18, 0xeb, 0xd0, 0xe2, 0x95, 0x61, 0x0a, 0x1b, 0xdf, 0x3d, 0xc1,
-
  0xfe, 0x30, 0xc9, 0x58, 0x20, 0x4b, 0x35, 0xb6, 0x46, 0x33, 0x68, 0x39,
-
  0x84, 0x31, 0x65, 0x8b, 0xb6, 0x0d, 0x70, 0xb4, 0x28, 0xbd, 0x77, 0xa2,
-
  0xa1, 0xe0, 0xeb, 0x18, 0xa4, 0x82, 0x0c, 0x0c, 0xfe, 0x62, 0x81, 0xc9,
-
  0xb7, 0x9c, 0xe4, 0xe4, 0x2f, 0xf9, 0x55, 0xda, 0x2e, 0x2d, 0x9d, 0x77,
-
  0xd9, 0x06, 0xe7, 0x1e, 0x0a, 0x59, 0xa4, 0xcc, 0x93, 0x9e, 0xa4, 0x68,
-
  0xad, 0x75, 0x01, 0x74, 0x47, 0x22, 0x4a, 0x44, 0x05, 0x8d, 0xd5, 0x8f,
-
  0x01, 0x8e, 0x1b, 0x5f, 0x26, 0xf7, 0xa7, 0x0f, 0xf9, 0x2e, 0xef, 0xa4,
-
  0x3c, 0x3f, 0x04, 0xa0, 0x3e, 0x59, 0xbc, 0xb5, 0x60, 0xb2, 0x9e, 0xec,
-
  0x37, 0x8c, 0xec, 0x98, 0x77, 0xa1, 0xa4, 0xf7, 0x97, 0x6e, 0x88, 0xc7,
-
  0x4b, 0x9e, 0x32, 0x5e, 0xc5, 0xb7, 0x4b, 0x37, 0x8c, 0xe0, 0x58, 0x88,
-
  0x6c, 0xce, 0x75, 0x99, 0x54, 0x56, 0x91, 0x8c, 0xcd, 0x68, 0x8b, 0x69,
-
  0xe0, 0x64, 0x1b, 0xaf, 0x12, 0xab, 0x36, 0x09, 0xf7, 0xf6, 0x00, 0x43,
-
  0xf9, 0xcd, 0x16, 0x8a, 0x57, 0xc9, 0x05, 0x05, 0x18, 0xe4, 0x4e, 0x1c,
-
  0x8a, 0x1c, 0xd8, 0x2a, 0x7e, 0xa0, 0x8c, 0x07, 0x84, 0x81, 0x17, 0x09,
-
  0xda, 0x60, 0x68, 0x13, 0xab, 0x74, 0x9c, 0x25, 0x17, 0x8b, 0xb4, 0x1c,
-
  0x51, 0x65, 0x27, 0x64, 0x53, 0x5c, 0xce, 0x07, 0x53, 0xe2, 0xa9, 0x40,
-
  0x1f, 0x79, 0x70, 0x82, 0x0d, 0x07, 0x49, 0xa5, 0x2c, 0x26, 0x51, 0xe6,
-
  0x82, 0x54, 0x0d, 0x3a, 0x3f, 0x3f, 0xa5, 0x78, 0x49, 0x6f, 0x6b, 0x1a,
-
  0xc2, 0x35, 0x04, 0xba, 0x86, 0x65, 0x8c, 0x86, 0x45, 0x08, 0xab, 0x10,
-
  0x43, 0x26, 0x62, 0xe8, 0x88, 0x99, 0xb4, 0xc9, 0x0a, 0x6e, 0x49, 0x17,
-
  0xe7, 0x11, 0xe0, 0xad, 0x35, 0xaa, 0x00, 0x21, 0x9a, 0x2c, 0x0b, 0x2d,
-
  0x34, 0xd2, 0x87, 0xe5, 0x09, 0x0b, 0x37, 0x12, 0x62, 0xde, 0x64, 0x69,
-
  0x53, 0xae, 0x7e, 0x4e, 0x56, 0xf9, 0xe1, 0xe8, 0x1c, 0x93, 0x6f, 0x1e,
-
  0xbc, 0xd5, 0xb2, 0x3f, 0x34, 0x04, 0x0e, 0xa3, 0x91, 0x0b, 0x99, 0xed,
-
  0x5e, 0x78, 0x49, 0x2b, 0xa6, 0x17, 0x71, 0x70, 0xb4, 0x89, 0xa4, 0x33,
-
  0x45, 0x4f, 0x7c, 0xf0, 0xe0, 0x19, 0xcc, 0xaa, 0x08, 0xaa, 0x09, 0x1c,
-
  0x74, 0x6f, 0xd3, 0xaf, 0xac, 0x70, 0x52, 0x72, 0xfa, 0xee, 0x9c, 0x5a,
-
  0xc0, 0x18, 0xd0, 0xf3, 0xa3, 0x2e, 0xf2, 0x1a, 0x0e, 0x99, 0x2e, 0xb3,
-
  0x09, 0x09, 0x7b, 0x75, 0x36, 0xbc, 0x9c, 0x15, 0xe8, 0x5f, 0xa4, 0x64,
-
  0x42, 0xbc, 0x11, 0x7e, 0xca, 0x06, 0xcf, 0x0f, 0x7f, 0xe4, 0x9a, 0x32,
-
  0x58, 0x23, 0xf4, 0xed, 0xc9, 0xe9, 0x8b, 0xe3, 0x37, 0xcf, 0xbb, 0xc9,
-
  0xb3, 0x93, 0xd3, 0xbf, 0x42, 0x13, 0xaf, 0x4f, 0x7e, 0xc4, 0xc0, 0x2e,
-
  0xce, 0x0b, 0xe0, 0xd2, 0x0a, 0x0f, 0xde, 0x20, 0x28, 0x2f, 0x5a, 0x37,
-
  0xc4, 0x46, 0xee, 0xbc, 0x6c, 0x81, 0x51, 0xf4, 0x31, 0x81, 0x33, 0xb1,
-
  0x50, 0x6b, 0x58, 0x0e, 0x68, 0xed, 0xe5, 0xd1, 0xe1, 0x73, 0x8c, 0xf2,
-
  0x3a, 0x3d, 0x39, 0xe3, 0xa1, 0xe2, 0x90, 0xc3, 0x4c, 0xc8, 0xb9, 0x2e,
-
  0xf6, 0x2b, 0x52, 0x67, 0x25, 0xda, 0x5c, 0x40, 0xbc, 0xe0, 0x10, 0x11,
-
  0xfa, 0x2d, 0x6e, 0x8c, 0x97, 0x33, 0xa5, 0xc7, 0x2a, 0x04, 0xd6, 0x98,
-
  0xce, 0xeb, 0x81, 0x26, 0x25, 0xca, 0x9a, 0x0b, 0x76, 0x31, 0x0c, 0x8f,
-
  0x21, 0x31, 0x1a, 0x91, 0xd0, 0x6a, 0xd1, 0x70, 0xba, 0x11, 0xb8, 0x6e,
-
  0x42, 0xae, 0x24, 0x7a, 0xee, 0x3a, 0x95, 0x30, 0x34, 0x60, 0x67, 0xa8,
-
  0xc2, 0x00, 0xc1, 0xbf, 0x20, 0x6f, 0x22, 0x9f, 0x7b, 0xa4, 0x9a, 0x71,
-
  0x24, 0x99, 0xd1, 0xdd, 0x9b, 0x5a, 0x21, 0x2f, 0x5c, 0x84, 0xc4, 0x3a,
-
  0x91, 0xaa, 0xd8, 0x7f, 0xe1, 0x8f, 0xa9, 0x43, 0x0c, 0x72, 0x47, 0x0b,
-
  0xe4, 0x02, 0x13, 0xaf, 0x33, 0x2e, 0xab, 0x46, 0xeb, 0x2b, 0x47, 0x9e,
-
  0x4b, 0x65, 0x5f, 0x12, 0x5d, 0xce, 0x2d, 0x56, 0xeb, 0x3c, 0xd0, 0x67,
-
  0x74, 0xa8, 0xc9, 0x77, 0xa2, 0xde, 0x1a, 0x25, 0x75, 0xcb, 0x07, 0x97,
-
  0xa8, 0x20, 0x8a, 0x8b, 0xd7, 0x7d, 0x50, 0xed, 0x29, 0x17, 0x09, 0x73,
-
  0xec, 0x66, 0xc7, 0x5a, 0x5f, 0x70, 0xfb, 0xb0, 0x15, 0x52, 0xf0, 0x42,
-
  0x1f, 0xc0, 0xe1, 0x9b, 0x49, 0xd4, 0x13, 0x96, 0x5a, 0xec, 0x31, 0xf3,
-
  0xad, 0x12, 0x0f, 0x29, 0xe7, 0xc2, 0x09, 0xcc, 0xca, 0x61, 0x6c, 0xe6,
-
  0x81, 0xcc, 0x20, 0x1d, 0x0e, 0x61, 0x83, 0x5c, 0x7a, 0x03, 0x91, 0xfc,
-
  0xfe, 0xce, 0x87, 0x10, 0xda, 0x86, 0x2a, 0x6d, 0x95, 0xf4, 0x38, 0xaf,
-
  0x82, 0xb1, 0x22, 0x94, 0x83, 0xbc, 0x58, 0xcd, 0x40, 0x7c, 0xc2, 0x99,
-
  0x71, 0x0f, 0xf3, 0x26, 0x02, 0xa1, 0xbe, 0x3a, 0x06, 0xd2, 0x94, 0xf0,
-
  0x93, 0x07, 0x8c, 0x87, 0xcb, 0x39, 0x15, 0xa4, 0xc0, 0xd3, 0x3a, 0x42,
-
  0x1b, 0xda, 0xd3, 0xe9, 0xc9, 0xe9, 0xfe, 0xaa, 0xae, 0xf0, 0x3b, 0x17,
-
  0xe2, 0xa5, 0xb6, 0x14, 0xc7, 0x52, 0xa4, 0x33, 0x4a, 0x29, 0x78, 0x7b,
-
  0x74, 0xfe, 0xd6, 0x2e, 0xe5, 0xd7, 0x87, 0x4b, 0x13, 0x90, 0x46, 0xf1,
-
  0x2b, 0x3f, 0x7e, 0x3f, 0x7c, 0x19, 0xbd, 0x45, 0x07, 0xbc, 0x5e, 0xbd,
-
  0x0c, 0xf8, 0xdd, 0x1d, 0x63, 0x7b, 0x79, 0xf4, 0xea, 0x54, 0xc6, 0xf6,
-
  0xe3, 0xdb, 0x17, 0x7f, 0x8d, 0x83, 0xc4, 0x94, 0x0d, 0xb7, 0x7a, 0xc7,
-
  0x3f, 0x39, 0xa0, 0xb9, 0xa1, 0x21, 0xfe, 0x85, 0xc3, 0xd9, 0xcf, 0x8f,
-
  0xee, 0xf6, 0x6d, 0xfd, 0x25, 0x79, 0xf3, 0x0a, 0x96, 0x72, 0x9d, 0xc4,
-
  0x61, 0x19, 0x7b, 0x8f, 0xa3, 0xf3, 0x9d, 0xd4, 0xe7, 0x3f, 0x4e, 0x9e,
-
  0xa2, 0x7d, 0x30, 0x76, 0xb3, 0x12, 0x6a, 0xd1, 0x8c, 0x19, 0x01, 0xb2,
-
  0xe7, 0x2b, 0x8d, 0xf0, 0x87, 0x27, 0xf0, 0xe9, 0x2d, 0xbf, 0x7c, 0xce,
-
  0xef, 0x80, 0xdf, 0x85, 0xc0, 0x2d, 0xcb, 0x21, 0x98, 0x05, 0x0f, 0x12,
-
  0x46, 0xb3, 0xd6, 0xf9, 0x10, 0x25, 0x2e, 0x0e, 0xdd, 0xc3, 0x34, 0x5d,
-
  0x3a, 0x32, 0xc8, 0x42, 0xd4, 0x26, 0x90, 0x57, 0x95, 0x22, 0x79, 0xc5,
-
  0x17, 0x80, 0x99, 0x05, 0x40, 0x24, 0xa4, 0x33, 0x43, 0x36, 0x90, 0x24,
-
  0x5c, 0xce, 0x14, 0xdb, 0xce, 0x12, 0x7e, 0xc3, 0x74, 0xcf, 0x8e, 0x53,
-
  0xd1, 0x36, 0x58, 0xe4, 0x43, 0x2d, 0x71, 0x8e, 0x6a, 0x4a, 0x39, 0xeb,
-
  0xf2, 0x25, 0xd1, 0x39, 0x39, 0x3d, 0x3f, 0x3e, 0x79, 0x73, 0x96, 0xfc,
-
  0x67, 0xe7, 0x36, 0x99, 0xc2, 0x44, 0x0a, 0x65, 0x3f, 0x64, 0x2b, 0x20,
-
  0x99, 0x82, 0x44, 0x0a, 0x4d, 0xf3, 0xf9, 0xfc, 0x32, 0x85, 0x17, 0x2a,
-
  0xcc, 0x3b, 0x1b, 0x6d, 0x6f, 0x2b, 0x96, 0xa3, 0xab, 0x92, 0xf1, 0x3b,
-
  0xc2, 0x1c, 0xe3, 0x8e, 0x3a, 0xff, 0xd9, 0x41, 0xea, 0xd4, 0x15, 0x5c,
-
  0x53, 0x49, 0x69, 0x64, 0x64, 0x60, 0x84, 0x13, 0xac, 0xe2, 0xd3, 0xbf,
-
  0xfd, 0xf1, 0x17, 0x84, 0x82, 0x21, 0x24, 0x98, 0x03, 0x90, 0x07, 0xca,
-
  0xbf, 0x75, 0xf1, 0xe7, 0x2f, 0xfd, 0x7e, 0xbf, 0x51, 0x75, 0xd7, 0xf8,
-
  0x05, 0x7e, 0x8f, 0x8e, 0x31, 0x09, 0xfe, 0x34, 0x5b, 0x00, 0xb6, 0xc3,
-
  0x98, 0x4f, 0xe8, 0xb4, 0x99, 0xa7, 0x79, 0x49, 0x76, 0x1f, 0xc3, 0x9e,
-
  0xc0, 0x9b, 0xbc, 0x6b, 0x31, 0x44, 0x7c, 0x85, 0x59, 0x96, 0xa5, 0x91,
-
  0xde, 0x66, 0xb5, 0xa5, 0xe0, 0x4f, 0x4e, 0x9e, 0x92, 0x3e, 0xc3, 0xbe,
-
  0x88, 0x0e, 0xc3, 0x0d, 0x04, 0xe1, 0x69, 0xa6, 0x72, 0x44, 0x22, 0x33,
-
  0x1c, 0xd9, 0x70, 0xc5, 0x44, 0x22, 0xeb, 0xad, 0x8e, 0x5b, 0x2a, 0xdf,
-
  0xcb, 0xfa, 0x63, 0x42, 0xa2, 0x05, 0x71, 0xec, 0xed, 0xac, 0x1e, 0x6e,
-
  0xe3, 0x7c, 0xaa, 0x24, 0x3a, 0x9c, 0x6e, 0x83, 0x0b, 0x1f, 0xe2, 0x18,
-
  0xe3, 0x04, 0x91, 0xea, 0xe2, 0x61, 0x43, 0xb4, 0x9e, 0xe6, 0x20, 0x8b,
-
  0xcc, 0x97, 0x66, 0x82, 0x09, 0x0d, 0xd9, 0x62, 0x1a, 0xdc, 0x8c, 0x96,
-
  0x03, 0x0b, 0xf7, 0xeb, 0x18, 0x55, 0x98, 0x63, 0x05, 0x29, 0xbb, 0xd1,
-
  0x9b, 0x3c, 0x26, 0x39, 0xcc, 0x42, 0x42, 0xfe, 0xac, 0x17, 0x6e, 0xb0,
-
  0xe9, 0xa8, 0x7b, 0xcf, 0xd6, 0x45, 0x47, 0x20, 0x9a, 0x3a, 0x75, 0x86,
-
  0x20, 0x66, 0x9a, 0xcc, 0xae, 0x8e, 0x05, 0x9c, 0x91, 0xcf, 0x47, 0x77,
-
  0x10, 0x57, 0x48, 0x92, 0xc8, 0x8a, 0xe8, 0x5d, 0x0b, 0xd8, 0x08, 0x98,
-
  0x5a, 0xd8, 0xb1, 0x92, 0x1c, 0x99, 0x73, 0xf1, 0xc1, 0xb0, 0x99, 0x36,
-
  0x6b, 0x81, 0x15, 0x42, 0xda, 0x09, 0x49, 0x61, 0xcb, 0x64, 0xd0, 0x47,
-
  0x0f, 0xd8, 0x64, 0x34, 0x4c, 0xcb, 0x51, 0x60, 0xfe, 0xb6, 0xe1, 0x7c,
-
  0xc4, 0x0a, 0x2e, 0x3e, 0x18, 0x48, 0x5d, 0xb3, 0x04, 0x42, 0x67, 0x31,
-
  0xc1, 0x46, 0xb7, 0x08, 0xe7, 0x3c, 0x78, 0x5d, 0x34, 0x44, 0x81, 0xca,
-
  0xba, 0xe1, 0x21, 0xa6, 0x0c, 0x32, 0xe7, 0x3f, 0xd5, 0x08, 0x3b, 0x8d,
-
  0xf8, 0xe8, 0xf5, 0xf2, 0xf9, 0xd5, 0xc3, 0x60, 0x40, 0xa7, 0xbf, 0x1f,
-
  0x2b, 0xbc, 0x4b, 0xed, 0x73, 0xf5, 0x17, 0x74, 0x15, 0x30, 0x97, 0x3a,
-
  0x3e, 0x6d, 0x56, 0x58, 0xfc, 0xfe, 0x46, 0x12, 0xf4, 0xf5, 0x0a, 0xe0,
-
  0x5d, 0x12, 0x53, 0xeb, 0xc6, 0x1f, 0x37, 0x5a, 0xce, 0x15, 0x27, 0xa2,
-
  0x71, 0x60, 0x5e, 0xa1, 0xdb, 0x19, 0xf0, 0x14, 0x36, 0xaa, 0x28, 0x24,
-
  0x14, 0x39, 0xe6, 0xe6, 0xae, 0xc4, 0x68, 0x6e, 0x2d, 0xc1, 0x88, 0x70,
-
  0xf0, 0x3b, 0x85, 0x46, 0x59, 0xc9, 0x06, 0x81, 0x73, 0x9b, 0x14, 0x98,
-
  0xfd, 0xb4, 0x98, 0x51, 0x16, 0x94, 0x05, 0xd6, 0xba, 0x58, 0x3c, 0x19,
-
  0xe5, 0xa4, 0x20, 0x9b, 0x35, 0x8a, 0x3e, 0x94, 0xce, 0x34, 0xd3, 0x0a,
-
  0xed, 0xe4, 0x33, 0xa9, 0x90, 0x43, 0xe6, 0xcb, 0xf0, 0xf3, 0xb4, 0x9e,
-
  0x1c, 0x47, 0x4d, 0x04, 0xed, 0x28, 0x89, 0xa8, 0xc3, 0x51, 0x12, 0xb9,
-
  0x7e, 0x8c, 0x03, 0x5c, 0xd3, 0x99, 0x2b, 0x34, 0x44, 0x54, 0xe7, 0x88,
-
  0xc6, 0x06, 0x50, 0x87, 0x08, 0x2b, 0x25, 0xc0, 0xf4, 0xc0, 0x5f, 0x0c,
-
  0x03, 0xa4, 0x39, 0x57, 0x95, 0x81, 0x88, 0xc5, 0xf4, 0xc2, 0x3e, 0x5c,
-
  0xad, 0x6c, 0xa9, 0x9f, 0x74, 0x35, 0xe6, 0x91, 0x03, 0xf6, 0x61, 0xe5,
-
  0xa9, 0xa8, 0xa6, 0x67, 0x02, 0x5d, 0x2b, 0x16, 0x2e, 0xc2, 0xb6, 0xa2,
-
  0xf5, 0xc0, 0x84, 0x82, 0xc8, 0x4d, 0x6c, 0x5b, 0xdc, 0xde, 0x63, 0xaa,
-
  0x86, 0x81, 0x53, 0x35, 0xc8, 0xc2, 0x6b, 0xa5, 0x7a, 0x0c, 0x6c, 0x75,
-
  0x29, 0x71, 0x8f, 0x31, 0xce, 0xae, 0xe5, 0x75, 0x4a, 0x0c, 0x01, 0xe2,
-
  0x50, 0x74, 0x87, 0xf0, 0x9a, 0xe4, 0x93, 0x3e, 0x42, 0xd3, 0x41, 0x38,
-
  0x23, 0x92, 0xd5, 0xea, 0xce, 0xc1, 0xef, 0xc9, 0x1f, 0xd4, 0x56, 0xdd,
-
  0xcd, 0x74, 0xf0, 0xf0, 0xe1, 0xfe, 0xc1, 0xee, 0x1e, 0x02, 0x7b, 0xef,
-
  0x80, 0xde, 0xba, 0x6e, 0xd0, 0xbe, 0x2e, 0x94, 0xc4, 0xec, 0x4f, 0xea,
-
  0x5e, 0x75, 0x35, 0x74, 0x97, 0x19, 0x12, 0xfa, 0x53, 0x58, 0xe7, 0x6f,
-
  0x4d, 0xa0, 0xd4, 0x08, 0x75, 0x2a, 0xfe, 0x23, 0x96, 0x1d, 0x20, 0xa7,
-
  0x90, 0x00, 0xe4, 0xd0, 0x96, 0x98, 0xb0, 0x08, 0x12, 0x88, 0x41, 0x3a,
-
  0x0c, 0xc9, 0x23, 0xc0, 0xa4, 0xe4, 0x75, 0x22, 0x00, 0x73, 0x95, 0x3a,
-
  0x46, 0x14, 0x13, 0x8a, 0xfc, 0x30, 0x6c, 0x2b, 0x52, 0xc0, 0x91, 0x0b,
-
  0xae, 0x60, 0x92, 0x2c, 0xe6, 0x7d, 0x43, 0x1c, 0x35, 0x63, 0x8a, 0xbe,
-
  0x07, 0xfd, 0xed, 0x24, 0x11, 0x50, 0x16, 0x07, 0xc4, 0x5a, 0x37, 0x62,
-
  0x03, 0x88, 0xea, 0x59, 0xcb, 0x91, 0x45, 0x90, 0x16, 0x9b, 0x9e, 0xce,
-
  0x8f, 0x2f, 0x04, 0x06, 0x41, 0x3c, 0xb0, 0xb8, 0x73, 0x20, 0xfa, 0x6e,
-
  0x00, 0x7e, 0x79, 0xf8, 0xe1, 0x83, 0xb1, 0xcb, 0xa0, 0xf4, 0x70, 0x31,
-
  0x1c, 0x11, 0x02, 0x1f, 0xee, 0x3c, 0xe9, 0x26, 0x0f, 0xf7, 0xbe, 0xea,
-
  0x62, 0x82, 0x59, 0x17, 0x33, 0xd6, 0xf6, 0xf0, 0xd7, 0x7d, 0x7c, 0xe8,
-
  0xd1, 0xce, 0xc3, 0xf0, 0xaa, 0xde, 0x7d, 0xa3, 0x2c, 0x0a, 0x5b, 0xd6,
-
  0x60, 0xf0, 0x74, 0x50, 0xb0, 0x1f, 0x9e, 0xf7, 0x07, 0xc6, 0x13, 0x2d,
-
  0x27, 0x67, 0x95, 0x71, 0x22, 0x00, 0x65, 0x95, 0x70, 0x94, 0x6f, 0xb8,
-
  0x15, 0x28, 0x36, 0x46, 0x7d, 0x1d, 0xf8, 0x4b, 0x7d, 0x09, 0xf4, 0x41,
-
  0xa9, 0x96, 0xb2, 0x42, 0x14, 0x0b, 0x5a, 0x2c, 0x28, 0x14, 0x94, 0xd5,
-
  0xe8, 0x9c, 0x41, 0x09, 0x83, 0x31, 0x99, 0x43, 0xc8, 0x73, 0x8c, 0x29,
-
  0x4f, 0xa9, 0xbc, 0xe6, 0x2e, 0xae, 0x39, 0x31, 0xb9, 0x4a, 0x74, 0x52,
-
  0x8e, 0xc1, 0x29, 0xb3, 0x29, 0x05, 0x54, 0x71, 0xc0, 0xb4, 0xc3, 0x9f,
-
  0xcb, 0x6c, 0xbd, 0x82, 0xcb, 0x4d, 0x47, 0xd0, 0x27, 0xce, 0x2c, 0xb6,
-
  0x84, 0x28, 0x98, 0x55, 0x6e, 0xdd, 0x91, 0x5a, 0xa8, 0x43, 0xd1, 0x07,
-
  0x60, 0x3e, 0x30, 0x5d, 0x42, 0x56, 0x4c, 0x06, 0xe9, 0xf0, 0x3d, 0x86,
-
  0x68, 0xa5, 0x93, 0x8b, 0xa2, 0x84, 0x7d, 0x9b, 0xb2, 0x1d, 0x2f, 0x48,
-
  0x6d, 0xd8, 0xde, 0x34, 0xfd, 0xc0, 0x56, 0x69, 0xbc, 0xbd, 0x29, 0x80,
-
  0xd6, 0x41, 0xa9, 0x15, 0xb5, 0x1c, 0x4e, 0x4b, 0xb3, 0x60, 0xb6, 0xc1,
-
  0xc3, 0xf3, 0xa2, 0x35, 0xe5, 0x69, 0xe4, 0x16, 0x28, 0x43, 0xd3, 0x78,
-
  0x4b, 0x1d, 0x1c, 0xe2, 0x9d, 0x70, 0xe0, 0x32, 0xbc, 0x24, 0x56, 0x13,
-
  0x65, 0x07, 0xda, 0x99, 0xeb, 0xd4, 0x60, 0x63, 0x33, 0x2d, 0x8e, 0x8d,
-
  0xb5, 0x3d, 0xd4, 0xf2, 0xcc, 0x7a, 0x84, 0x8f, 0xdf, 0xc7, 0x0d, 0x0f,
-
  0x39, 0xbb, 0xc8, 0xa1, 0x1e, 0x53, 0xd2, 0xae, 0xcb, 0x61, 0xa5, 0x67,
-
  0x3e, 0x47, 0x52, 0x10, 0x35, 0xfc, 0xe5, 0xba, 0x72, 0xb1, 0x5f, 0xe1,
-
  0x98, 0xa3, 0xa0, 0x5f, 0x87, 0x2d, 0xb2, 0x95, 0x1a, 0xec, 0xb1, 0x65,
-
  0xb4, 0x9b, 0x01, 0xef, 0x17, 0x53, 0x72, 0x23, 0x5c, 0x9c, 0x78, 0xa6,
-
  0x99, 0xa1, 0x7d, 0x8c, 0x7e, 0x2b, 0x84, 0xaf, 0xd6, 0xd1, 0xec, 0x54,
-
  0x93, 0x6c, 0x74, 0x91, 0x5d, 0xa6, 0xd3, 0x69, 0x56, 0x76, 0x88, 0xcc,
-
  0x34, 0xf8, 0xbf, 0x8f, 0x95, 0x60, 0xc8, 0xb4, 0x61, 0xce, 0xf1, 0x08,
-
  0xc9, 0x1c, 0xc3, 0x81, 0xf4, 0x1e, 0x4f, 0x36, 0xa5, 0x88, 0x08, 0x99,
-
  0x55, 0x68, 0xe5, 0x09, 0xdc, 0x0c, 0x57, 0xa6, 0x1c, 0x6e, 0x75, 0xd5,
-
  0x61, 0xcd, 0x16, 0x16, 0xe3, 0xf3, 0xc1, 0xc2, 0x82, 0x57, 0x94, 0xc5,
-
  0x90, 0xf1, 0xcd, 0x8c, 0xd7, 0xaa, 0xc2, 0xcd, 0xd0, 0xc5, 0x17, 0x0a,
-
  0x34, 0x25, 0xa3, 0x05, 0x86, 0x5a, 0x59, 0x55, 0x41, 0x4e, 0x7d, 0xf6,
-
  0xc3, 0x65, 0x99, 0x4b, 0x2f, 0x57, 0x22, 0x06, 0xc2, 0xb1, 0x43, 0x7d,
-
  0x8c, 0x2c, 0xdc, 0x7d, 0xf1, 0xfd, 0x73, 0x59, 0x6a, 0x1d, 0x11, 0x9c,
-
  0x3e, 0xd2, 0xda, 0xe0, 0x64, 0x5c, 0x02, 0x27, 0x98, 0x88, 0xe6, 0x47,
-
  0x49, 0x2d, 0x30, 0xba, 0x50, 0x2f, 0x86, 0xee, 0x23, 0x42, 0xb4, 0x49,
-
  0xaa, 0x61, 0x99, 0xcf, 0x09, 0x5b, 0x17, 0x31, 0x80, 0xb3, 0x46, 0x81,
-
  0x74, 0x5d, 0x13, 0x42, 0xf0, 0x59, 0x0a, 0x02, 0x23, 0x5b, 0x9b, 0x05,
-
  0x6e, 0x4d, 0x41, 0x55, 0xb5, 0x1c, 0xce, 0x65, 0xa4, 0x37, 0xe1, 0x66,
-
  0x68, 0x64, 0xb7, 0x38, 0xb8, 0x49, 0xfa, 0xfe, 0xc6, 0x09, 0x3c, 0x88,
-
  0x53, 0x35, 0xc1, 0x10, 0x12, 0x97, 0x56, 0x85, 0xaf, 0x5e, 0xb2, 0x5e,
-
  0x7c, 0x23, 0x2e, 0x58, 0xc9, 0x4c, 0xe9, 0x06, 0x61, 0xbb, 0x76, 0xa0,
-
  0xac, 0xf6, 0x22, 0x87, 0xe0, 0x35, 0xd7, 0xd0, 0x2d, 0xa1, 0x37, 0x15,
-
  0x76, 0x75, 0x05, 0xe9, 0x22, 0xb2, 0x0c, 0x12, 0xb9, 0xbf, 0x18, 0xaf,
-
  0x40, 0xbd, 0x0b, 0xac, 0xc3, 0xab, 0x9c, 0x23, 0x33, 0x6a, 0xe4, 0x55,
-
  0x07, 0xd8, 0x31, 0xca, 0xba, 0x84, 0x09, 0x49, 0x70, 0x49, 0x22, 0xf5,
-
  0x83, 0x14, 0x9a, 0x90, 0xfd, 0x4b, 0x2f, 0x81, 0x05, 0x51, 0x48, 0x8d,
-
  0x4c, 0x24, 0x98, 0x05, 0xea, 0x72, 0xc1, 0xc8, 0x4a, 0xd4, 0xab, 0x9b,
-
  0x8e, 0x94, 0xe8, 0xfa, 0x9f, 0xc9, 0x3c, 0x47, 0x78, 0x75, 0x98, 0xcb,
-
  0xb7, 0x86, 0x84, 0xc7, 0x0c, 0x9a, 0x6c, 0xb8, 0x0e, 0xe9, 0x0e, 0x01,
-
  0xb1, 0x93, 0x9f, 0x32, 0xb4, 0x09, 0x80, 0xe8, 0x89, 0xb1, 0xdc, 0x8b,
-
  0x8b, 0x0b, 0xb2, 0x1d, 0x39, 0xeb, 0x31, 0x4e, 0xa3, 0xca, 0xa4, 0xa2,
-
  0x18, 0x5a, 0x66, 0x75, 0xa0, 0x57, 0x79, 0xaa, 0x0d, 0x89, 0xcc, 0x97,
-
  0x13, 0x2a, 0xcc, 0x40, 0xa3, 0x46, 0x5d, 0xa0, 0x93, 0xc5, 0xfe, 0x71,
-
  0xaa, 0x11, 0xb5, 0x4f, 0x67, 0x87, 0x0f, 0x81, 0xd2, 0xbd, 0x1e, 0x83,
-
  0xb8, 0x5c, 0x59, 0x03, 0xb1, 0x2b, 0xd8, 0x28, 0x59, 0x08, 0xd1, 0x5b,
-
  0x9b, 0xe4, 0xb4, 0x86, 0xac, 0x3c, 0x53, 0xcb, 0xf1, 0xf2, 0x4d, 0x2d,
-
  0x9e, 0x58, 0xae, 0xff, 0xc6, 0x20, 0xa5, 0x7c, 0x6d, 0x53, 0x73, 0x5d,
-
  0x89, 0x02, 0xc9, 0x5c, 0x2a, 0x9d, 0x71, 0xef, 0x00, 0xd8, 0xc6, 0x34,
-
  0xa3, 0x24, 0x43, 0x5e, 0xc7, 0x80, 0xde, 0xc5, 0xb7, 0xc4, 0x43, 0xb8,
-
  0xe9, 0x41, 0x07, 0x80, 0x07, 0x17, 0x14, 0x8a, 0xcb, 0x17, 0xb2, 0x8e,
-
  0x08, 0xd3, 0xae, 0x31, 0xd4, 0x73, 0x81, 0x92, 0xb6, 0x2c, 0x86, 0xdc,
-
  0xd8, 0xea, 0x50, 0x26, 0xaf, 0xdf, 0x4c, 0xf9, 0x24, 0x87, 0xf9, 0x07,
-
  0xb6, 0xef, 0x44, 0xcc, 0x50, 0x6b, 0xde, 0x24, 0x1f, 0x2c, 0x00, 0x8e,
-
  0x71, 0x8d, 0x9c, 0xcf, 0xd1, 0xb0, 0xcf, 0xc6, 0x2b, 0xe0, 0xc8, 0x94,
-
  0x84, 0xa1, 0xb0, 0x16, 0x15, 0x1d, 0x2c, 0x67, 0xa3, 0xc2, 0x11, 0xa9,
-
  0x63, 0x63, 0x8a, 0xfa, 0x13, 0x08, 0x43, 0x6d, 0xd2, 0x4c, 0xc5, 0x9c,
-
  0x2f, 0xa5, 0x45, 0xb0, 0x08, 0x3c, 0x55, 0xa0, 0x4b, 0xbb, 0x05, 0x26,
-
  0x13, 0x77, 0x67, 0x86, 0xb1, 0x99, 0x2e, 0xc0, 0x34, 0xc1, 0x73, 0xe0,
-
  0x11, 0x01, 0x87, 0xa6, 0x3e, 0x71, 0x35, 0x1f, 0x7d, 0xf8, 0xb0, 0x95,
-
  0x88, 0xf0, 0xc1, 0xe4, 0x97, 0x05, 0xa3, 0x3a, 0xbb, 0xf0, 0x96, 0x60,
-
  0x64, 0x9b, 0xf7, 0xd2, 0x7d, 0x15, 0xfe, 0x69, 0xb6, 0xbb, 0xce, 0x0d,
-
  0xfb, 0xa8, 0x6d, 0x3c, 0xeb, 0xd5, 0xf5, 0x69, 0xd6, 0xb9, 0xd7, 0x0b,
-
  0xd2, 0x5f, 0xbe, 0x28, 0xf5, 0x83, 0xd2, 0xc2, 0x4e, 0x33, 0x12, 0xea,
-
  0xe3, 0x50, 0x3a, 0xf6, 0x31, 0xb3, 0xb7, 0x17, 0xe5, 0x46, 0xfa, 0xa2,
-
  0x72, 0x5a, 0x56, 0x72, 0x84, 0x58, 0xab, 0x6f, 0x8f, 0x5e, 0xbc, 0x3b,
-
  0x3b, 0x7a, 0x4e, 0x09, 0x92, 0x69, 0x93, 0x56, 0xf8, 0x04, 0xd6, 0x45,
-
  0x41, 0x87, 0x50, 0xc7, 0x71, 0xfb, 0x9d, 0xde, 0xf0, 0x2c, 0xd3, 0x0b,
-
  0xcb, 0x5b, 0xe4, 0x46, 0xbf, 0x02, 0x65, 0xf5, 0x63, 0x93, 0x81, 0x9a,
-
  0xcd, 0xae, 0xb1, 0x45, 0xd1, 0x28, 0x3e, 0x45, 0x30, 0x8a, 0x72, 0xb4,
-
  0x22, 0xea, 0xf0, 0x3b, 0xc5, 0xf2, 0xee, 0x53, 0x49, 0xd2, 0xfb, 0x36,
-
  0xc4, 0xa7, 0x68, 0x6c, 0xdb, 0x24, 0xcb, 0xe6, 0x72, 0xb7, 0xa5, 0x53,
-
  0x60, 0x27, 0x6c, 0x63, 0x63, 0xc3, 0x84, 0x6a, 0x4c, 0x14, 0x85, 0x24,
-
  0x57, 0x6b, 0x04, 0xa6, 0x68, 0x7c, 0x0c, 0xd7, 0x4d, 0xae, 0x28, 0x31,
-
  0x28, 0x34, 0x37, 0x72, 0x13, 0xd6, 0x4d, 0x3d, 0x73, 0x1e, 0x99, 0x59,
-
  0xae, 0x44, 0x91, 0xb5, 0xb9, 0x5f, 0x93, 0xb8, 0x1d, 0xd6, 0xb4, 0xb0,
-
  0x9f, 0xad, 0xa5, 0x54, 0xe2, 0x5c, 0xb2, 0xff, 0x5d, 0xf9, 0xba, 0x4c,
-
  0x80, 0x1d, 0xc7, 0xb6, 0x56, 0xa4, 0xf2, 0x50, 0xe4, 0x1d, 0x6d, 0x8f,
-
  0x53, 0xf9, 0xf0, 0x75, 0x5e, 0x24, 0xa4, 0xdb, 0x7f, 0x64, 0xa5, 0xe5,
-
  0x33, 0x07, 0xd5, 0x4f, 0x84, 0x3b, 0x07, 0x27, 0xad, 0xe3, 0xa5, 0x01,
-
  0x5b, 0xad, 0xf4, 0x48, 0xc5, 0xf8, 0x5c, 0xd5, 0x1c, 0x7c, 0x27, 0x8f,
-
  0x3e, 0x89, 0x72, 0x1a, 0x24, 0x62, 0x2a, 0x4c, 0x83, 0x4a, 0x38, 0x40,
-
  0x98, 0x56, 0x0f, 0xbf, 0x2e, 0x15, 0xa5, 0x83, 0x9c, 0x3b, 0x0d, 0xf4,
-
  0x4e, 0xd4, 0x16, 0xdd, 0xad, 0x26, 0x32, 0x59, 0x3f, 0x88, 0xe6, 0xe4,
-
  0x8e, 0x2a, 0x33, 0x0e, 0x6a, 0x4d, 0xc9, 0x74, 0x84, 0x6e, 0xd9, 0x4d,
-
  0xc4, 0xe0, 0x92, 0x81, 0x6c, 0xd1, 0xe7, 0x64, 0xb0, 0x92, 0x50, 0x52,
-
  0xe9, 0xd6, 0x05, 0x79, 0xa8, 0xaa, 0xa8, 0xbe, 0x67, 0x8e, 0xb2, 0x23,
-
  0xbd, 0x0b, 0x76, 0x01, 0xae, 0xc4, 0x7c, 0x68, 0xb7, 0xb0, 0xa4, 0xb2,
-
  0x70, 0x23, 0xc2, 0x7b, 0x4d, 0x4c, 0xe1, 0x46, 0x18, 0x28, 0x71, 0x8a,
-
  0xe9, 0xd6, 0xe2, 0x13, 0x09, 0x7e, 0x2e, 0xc2, 0xb4, 0x66, 0x98, 0x51,
-
  0x74, 0xab, 0xab, 0xf9, 0x01, 0xa8, 0xa6, 0x1b, 0xe2, 0x7a, 0x51, 0xde,
-
  0x20, 0xf8, 0x55, 0x1a, 0xb7, 0xa6, 0xd7, 0x33, 0x55, 0xf1, 0xd8, 0x98,
-
  0xa2, 0xe1, 0xe5, 0xbc, 0x18, 0x11, 0x02, 0xa8, 0xa4, 0xc5, 0x3a, 0x60,
-
  0x06, 0x85, 0x08, 0x86, 0x9e, 0x37, 0xaa, 0x00, 0x5e, 0x90, 0x63, 0xac,
-
  0x2e, 0x47, 0x6f, 0x9b, 0x0e, 0x24, 0xb9, 0x7f, 0x81, 0x05, 0x02, 0xd1,
-
  0x22, 0xcd, 0x86, 0xd8, 0x67, 0x12, 0xaf, 0xd4, 0x9e, 0xe6, 0x54, 0x61,
-
  0x4f, 0xa1, 0xb6, 0xe3, 0x9f, 0xd5, 0x2f, 0x12, 0xf5, 0xb4, 0xbf, 0x63,
-
  0xa4, 0xba, 0xbb, 0xf3, 0x29, 0xb4, 0x5a, 0xa5, 0x5c, 0x5f, 0xee, 0xf2,
-
  0x1f, 0xf9, 0x28, 0x79, 0xaa, 0x25, 0x75, 0x1d, 0x3c, 0xbe, 0xa2, 0xd1,
-
  0xc3, 0x23, 0xc0, 0x3c, 0xfe, 0x21, 0xe2, 0xa2, 0x3e, 0x08, 0x97, 0xbb,
-
  0xbc, 0x8c, 0x9a, 0x96, 0x04, 0x47, 0x25, 0x67, 0x87, 0x88, 0xe4, 0x74,
-
  0xfa, 0xea, 0xf0, 0xf8, 0x8d, 0xa5, 0x21, 0xba, 0x32, 0x14, 0x5d, 0x56,
-
  0xd3, 0xc2, 0xd5, 0xc6, 0xd5, 0x32, 0x39, 0xae, 0xa0, 0x51, 0xec, 0xca,
-
  0x7a, 0x12, 0x1f, 0x22, 0x7e, 0x3f, 0x84, 0xde, 0x48, 0x45, 0xf3, 0x78,
-
  0x63, 0x3d, 0x2d, 0xa5, 0x1d, 0x25, 0x5c, 0xc5, 0x35, 0x3d, 0x3d, 0x4c,
-
  0x7f, 0x84, 0xa9, 0x03, 0x77, 0x67, 0xae, 0xa8, 0x66, 0x89, 0x4c, 0x28,
-
  0xaa, 0x1b, 0x9c, 0x25, 0xd2, 0x71, 0x97, 0x6b, 0x9d, 0xa0, 0xc4, 0xe9,
-
  0x1a, 0xa3, 0x4c, 0x69, 0x03, 0x84, 0xb1, 0xe8, 0x20, 0x6e, 0x5e, 0x38,
-
  0x68, 0x54, 0xcf, 0x93, 0x8d, 0x6b, 0x02, 0x53, 0xaa, 0xb7, 0x6d, 0xa2,
-
  0xc0, 0x9f, 0x6a, 0x13, 0x27, 0x84, 0xc4, 0x0d, 0x0a, 0x4d, 0x19, 0x14,
-
  0x1f, 0xba, 0x2e, 0x78, 0xd1, 0x50, 0x17, 0x2d, 0xe0, 0xf4, 0x02, 0xb8,
-
  0x04, 0xa9, 0x16, 0x0a, 0x1e, 0x5a, 0x70, 0xb9, 0x67, 0xac, 0xe8, 0x8c,
-
  0x68, 0x62, 0x53, 0xb8, 0x46, 0xa0, 0x11, 0x81, 0xde, 0x13, 0xe4, 0x63,
-
  0xa2, 0x12, 0xf6, 0x45, 0x47, 0x84, 0xb0, 0x8e, 0x89, 0xe2, 0x93, 0xca,
-
  0xb3, 0x45, 0xbd, 0x50, 0x4f, 0xd3, 0x74, 0x85, 0xaf, 0xd9, 0x09, 0x4f,
-
  0x68, 0x48, 0x89, 0x53, 0xaa, 0x8b, 0x8b, 0x7c, 0xd6, 0x0b, 0xf1, 0x2a,
-
  0x8e, 0x96, 0x73, 0x99, 0xdd, 0xd1, 0x4c, 0xc2, 0x24, 0x15, 0x17, 0xda,
-
  0xc9, 0xad, 0x44, 0x7e, 0x4c, 0xa4, 0xcd, 0x92, 0x2c, 0x6d, 0xf0, 0xf1,
-
  0xd2, 0xee, 0x9a, 0x82, 0x67, 0x4b, 0x84, 0x66, 0x13, 0x3e, 0x5e, 0x1a,
-
  0x5c, 0x63, 0xa9, 0xf2, 0xf2, 0x96, 0x15, 0xf2, 0x55, 0x22, 0xdd, 0xba,
-
  0x86, 0xf5, 0xb8, 0xab, 0x8c, 0xb1, 0xd5, 0x31, 0x96, 0x6c, 0x35, 0xab,
-
  0x63, 0xdc, 0x97, 0x00, 0x85, 0xa5, 0xda, 0xc4, 0x9f, 0xa7, 0xf6, 0x47,
-
  0xd4, 0x0d, 0x56, 0x6a, 0x18, 0x6d, 0xcb, 0xc9, 0x5c, 0x8b, 0xa3, 0x59,
-
  0xf5, 0xc8, 0xa8, 0x84, 0x92, 0x6f, 0x54, 0x97, 0xe4, 0x8c, 0x4a, 0x41,
-
  0x5c, 0x16, 0xd7, 0x3e, 0x26, 0x95, 0xd4, 0xb4, 0x90, 0x8c, 0x0d, 0x0f,
-
  0x60, 0x44, 0x3c, 0x07, 0x2e, 0x39, 0x71, 0x05, 0x5f, 0x0b, 0x71, 0xa0,
-
  0x30, 0xdf, 0x8a, 0x90, 0x2c, 0x81, 0x13, 0xe8, 0xad, 0x45, 0xb0, 0xd2,
-
  0x9f, 0x1b, 0x53, 0xc1, 0xcb, 0xdd, 0x61, 0x26, 0xc9, 0xfd, 0x48, 0xdc,
-
  0xa1, 0xc1, 0x3b, 0x36, 0x2c, 0x74, 0xac, 0xcb, 0xb5, 0xe6, 0x56, 0x51,
-
  0xed, 0x84, 0x0b, 0x2a, 0xdd, 0x30, 0xcd, 0xea, 0x90, 0xb5, 0x9c, 0xdb,
-
  0xce, 0x48, 0x25, 0x07, 0x8f, 0x95, 0x27, 0xc0, 0xf3, 0xb8, 0x01, 0x2d,
-
  0x35, 0x24, 0x34, 0xf0, 0xcc, 0xac, 0x6b, 0xb1, 0x06, 0xed, 0xf3, 0xd7,
-
  0x39, 0x69, 0x5f, 0xf5, 0x61, 0x4a, 0xad, 0xd2, 0x08, 0x3e, 0x21, 0x38,
-
  0x4e, 0xe5, 0x19, 0x16, 0xc5, 0xfb, 0x1c, 0x29, 0x9a, 0x10, 0x4a, 0xc5,
-
  0x02, 0x1e, 0x83, 0xee, 0x75, 0xa5, 0x1b, 0x05, 0x0c, 0x61, 0x99, 0x86,
-
  0x82, 0xfb, 0x08, 0x9b, 0x88, 0xc1, 0xc7, 0xac, 0x74, 0x0b, 0x39, 0xb6,
-
  0x23, 0x88, 0xff, 0x8e, 0x0c, 0xa9, 0x43, 0x02, 0x9c, 0x84, 0x6a, 0x98,
-
  0x3d, 0x4e, 0x03, 0x30, 0x8b, 0x59, 0xab, 0x11, 0x95, 0xe9, 0x52, 0x84,
-
  0xab, 0xd8, 0x84, 0xcd, 0x61, 0xed, 0x92, 0x28, 0x17, 0xa2, 0xf2, 0x2a,
-
  0xcb, 0x06, 0xa9, 0x6a, 0x90, 0xd3, 0xa6, 0xdb, 0x62, 0x1b, 0x12, 0x99,
-
  0x90, 0xed, 0x98, 0xbd, 0xde, 0x68, 0x31, 0x9d, 0x2b, 0x6e, 0x81, 0x64,
-
  0x5b, 0x69, 0x80, 0xb5, 0x5b, 0x70, 0xb9, 0xd5, 0x03, 0xfc, 0x0a, 0xb7,
-
  0xe9, 0x9c, 0x8b, 0x57, 0x79, 0x76, 0x1d, 0xc9, 0x7e, 0xf2, 0xf6, 0x92,
-
  0x4b, 0x10, 0xc3, 0x5d, 0xd0, 0x6c, 0x18, 0xfb, 0x03, 0x09, 0xe7, 0x12,
-
  0x7b, 0x66, 0x7f, 0x9d, 0x58, 0x93, 0xb4, 0xd4, 0xfd, 0x1c, 0xc4, 0x0c,
-
  0xe6, 0x60, 0x3a, 0x26, 0xd2, 0x49, 0xf0, 0xfc, 0x91, 0xb9, 0x2e, 0x09,
-
  0x1a, 0x74, 0xc3, 0xce, 0xa5, 0x59, 0xd5, 0x6e, 0x29, 0xc5, 0xca, 0x53,
-
  0x66, 0xfc, 0x2a, 0x53, 0x75, 0x99, 0x29, 0x5e, 0xd1, 0xe0, 0x26, 0xaa,
-
  0x5c, 0xd0, 0xb2, 0x19, 0xf8, 0x9a, 0x20, 0x55, 0xf5, 0x7a, 0x4a, 0x5b,
-
  0x2a, 0xc9, 0x73, 0xca, 0x53, 0x5f, 0xdc, 0xe9, 0x8a, 0xba, 0x10, 0x52,
-
  0x73, 0xd4, 0x05, 0xa3, 0xe0, 0x3c, 0xe9, 0xa4, 0xe5, 0x88, 0xeb, 0x2c,
-
  0x5b, 0xce, 0x38, 0x2c, 0x88, 0xde, 0xe6, 0x6b, 0x86, 0x69, 0xfb, 0x16,
-
  0x6f, 0x3d, 0xe5, 0xf9, 0x7a, 0x47, 0x5a, 0x37, 0x90, 0x79, 0xaf, 0xa3,
-
  0x1f, 0x3d, 0xda, 0x55, 0xd7, 0x98, 0x84, 0xbc, 0xcc, 0x0c, 0x83, 0x2c,
-
  0xeb, 0x7f, 0x5f, 0xe4, 0x8c, 0x22, 0x34, 0x42, 0x7d, 0x4f, 0xed, 0xe8,
-
  0xcc, 0x6c, 0x13, 0x65, 0x15, 0x14, 0xa7, 0x2c, 0xf8, 0x95, 0x3e, 0x09,
-
  0x40, 0x98, 0x70, 0xd5, 0xf7, 0xa9, 0x21, 0xd3, 0x05, 0x02, 0x63, 0x1d,
-
  0x63, 0x23, 0x54, 0x6f, 0x8b, 0xe9, 0x3c, 0x50, 0xb9, 0x15, 0x1f, 0x47,
-
  0x46, 0xab, 0x65, 0x10, 0x8a, 0x9a, 0xbd, 0x53, 0x93, 0x1b, 0x8e, 0x63,
-
  0x90, 0x38, 0x0c, 0xe8, 0x14, 0x34, 0x93, 0x74, 0xb2, 0x5d, 0xd5, 0x23,
-
  0x14, 0xfc, 0x5d, 0x7a, 0x7c, 0xb0, 0xa4, 0x5a, 0xc8, 0xc4, 0x3b, 0x52,
-
  0x2a, 0x1c, 0x6f, 0xa4, 0x5c, 0x84, 0xd8, 0x7e, 0xe3, 0x08, 0x0f, 0x3e,
-
  0x30, 0x57, 0x99, 0xce, 0xd4, 0x4a, 0x2c, 0xc2, 0x6c, 0x51, 0xce, 0xe4,
-
  0x29, 0xf0, 0x72, 0x44, 0x17, 0x4f, 0xd5, 0x8f, 0xad, 0x64, 0xc2, 0x84,
-
  0x8d, 0x44, 0x9c, 0xb2, 0x71, 0x67, 0x8d, 0x9b, 0x25, 0x0a, 0xa1, 0xb6,
-
  0x6e, 0xa5, 0x8d, 0xea, 0xa3, 0x68, 0x83, 0x08, 0xa0, 0x06, 0x92, 0xd0,
-
  0xc4, 0xb0, 0x95, 0xd7, 0x40, 0xaf, 0x7a, 0x9f, 0xcf, 0x7b, 0xc4, 0x78,
-
  0x4c, 0x00, 0x63, 0x59, 0x9e, 0x73, 0x0e, 0xa3, 0xec, 0x66, 0xf5, 0xcc,
-
  0x91, 0xed, 0x24, 0xb5, 0x24, 0x1e, 0xd1, 0xa7, 0x05, 0x29, 0xad, 0x1b,
-
  0x38, 0x6e, 0x54, 0x69, 0x01, 0x3b, 0x9a, 0xc7, 0xb5, 0x63, 0xd8, 0x65,
-
  0xc8, 0x49, 0x16, 0xe4, 0xea, 0x53, 0x5d, 0x37, 0xf4, 0x29, 0x92, 0x5c,
-
  0x5a, 0xd9, 0x61, 0xa6, 0x2a, 0x5e, 0x96, 0x3e, 0x94, 0x60, 0x99, 0x85,
-
  0xae, 0xa5, 0x26, 0x72, 0x5a, 0x2e, 0x5e, 0x38, 0x02, 0x18, 0x97, 0x64,
-
  0xf5, 0xd0, 0xe9, 0xb9, 0x54, 0xb2, 0x03, 0xbb, 0xaa, 0xd4, 0x86, 0xad,
-
  0xd3, 0x0c, 0x49, 0x91, 0x3a, 0xcb, 0x7c, 0xe6, 0xd3, 0xa0, 0xa5, 0xbe,
-
  0x9c, 0x9e, 0x04, 0x36, 0x3c, 0x13, 0xa4, 0x32, 0x4e, 0xac, 0x6a, 0xd4,
-
  0x4f, 0x21, 0x21, 0x05, 0x1a, 0x6e, 0x24, 0x98, 0xb5, 0x2c, 0xf6, 0xfd,
-
  0x26, 0x22, 0x45, 0x1d, 0xdc, 0x21, 0x52, 0xf8, 0x47, 0x2d, 0x99, 0x90,
-
  0x97, 0x7e, 0x1b, 0x8e, 0x1a, 0x65, 0x8f, 0xdd, 0x69, 0x6b, 0x15, 0xcd,
-
  0x52, 0xb9, 0x2e, 0x13, 0xa3, 0xf8, 0x96, 0x13, 0x6b, 0xb5, 0xdb, 0x92,
-
  0xd4, 0xe9, 0x8a, 0x34, 0xcf, 0x0a, 0x85, 0xb8, 0x08, 0x64, 0x89, 0xe5,
-
  0xc3, 0x1e, 0xae, 0x2a, 0x21, 0xb7, 0x14, 0xb3, 0x75, 0x76, 0xf2, 0xec,
-
  0x4f, 0x67, 0x0f, 0x93, 0xa5, 0x0a, 0x72, 0xbf, 0xbf, 0x84, 0x1c, 0x07,
-
  0x17, 0x0a, 0x8c, 0x19, 0x0c, 0x8a, 0x72, 0xce, 0xb0, 0x46, 0x2f, 0x4a,
-
  0x04, 0xce, 0xf3, 0xed, 0xe3, 0x85, 0x2c, 0x86, 0x47, 0x8b, 0x53, 0x6a,
-
  0x54, 0x86, 0x86, 0x75, 0x15, 0xc6, 0xf0, 0xb4, 0xdc, 0x94, 0x95, 0xf2,
-
  0x12, 0xf8, 0x0e, 0xae, 0x58, 0x55, 0x50, 0xda, 0xfd, 0xbb, 0x59, 0xfe,
-
  0x01, 0x48, 0x1e, 0xef, 0x2d, 0x19, 0x02, 0xdb, 0x53, 0x68, 0xab, 0x28,
-
  0x46, 0x8b, 0x24, 0x58, 0xfc, 0x4d, 0xd8, 0x6b, 0xd6, 0xbf, 0xe8, 0x27,
-
  0x1d, 0x5e, 0x43, 0xd8, 0x3c, 0x7b, 0x70, 0x1b, 0x63, 0x7a, 0xb7, 0xeb,
-
  0x62, 0x9b, 0x9b, 0xe9, 0xe3, 0x3f, 0x9d, 0x36, 0x71, 0x07, 0x13, 0xbc,
-
  0x4b, 0xaa, 0xfd, 0x48, 0x21, 0x48, 0x76, 0x91, 0x2a, 0x68, 0x45, 0x28,
-
  0x84, 0xc7, 0xe2, 0xcc, 0x0d, 0x61, 0xca, 0x2a, 0x45, 0x0b, 0xfc, 0xa7,
-
  0x81, 0x7f, 0xae, 0x10, 0xd1, 0x11, 0x7b, 0x23, 0x2b, 0xc7, 0x93, 0x05,
-
  0xb6, 0xec, 0x9c, 0x5f, 0x11, 0xfa, 0x5b, 0x9a, 0x08, 0x29, 0xf8, 0xf2,
-
  0x79, 0xbe, 0x70, 0xb2, 0x44, 0x46, 0xe8, 0x73, 0x30, 0xdd, 0x10, 0xd7,
-
  0xc8, 0x11, 0x49, 0x01, 0xba, 0x5c, 0xeb, 0xd0, 0x45, 0xe9, 0xf3, 0x24,
-
  0x6f, 0x19, 0x6a, 0x0a, 0x51, 0x92, 0x16, 0x52, 0x13, 0xc5, 0x3f, 0x64,
-
  0x17, 0x9a, 0x29, 0x94, 0x6b, 0xd3, 0x05, 0x25, 0x46, 0xca, 0xd6, 0x6d,
-
  0xfb, 0x5a, 0xaf, 0xe8, 0x4d, 0x60, 0x27, 0x0f, 0x85, 0x9e, 0x29, 0x2c,
-
  0x25, 0x59, 0x19, 0x0d, 0x32, 0x8c, 0xe3, 0xc0, 0x84, 0x1a, 0xe2, 0xce,
-
  0x35, 0x3c, 0x25, 0x3c, 0xb6, 0xa9, 0xe5, 0xdf, 0xe8, 0xc1, 0xad, 0x60,
-
  0x2d, 0xb3, 0x54, 0x03, 0x24, 0x84, 0x68, 0x0c, 0xa2, 0x57, 0xf2, 0x1a,
-
  0xde, 0x86, 0xe3, 0xfd, 0x91, 0x20, 0x4f, 0x4d, 0x6e, 0xc2, 0x1d, 0x28,
-
  0xe5, 0x1f, 0x3c, 0xdc, 0xf9, 0xea, 0xf1, 0x7a, 0x57, 0x16, 0xbf, 0x99,
-
  0x2e, 0xd5, 0x0c, 0xe4, 0x3f, 0x7a, 0xda, 0x62, 0x83, 0x33, 0xa4, 0xb7,
-
  0xb2, 0x86, 0x25, 0xce, 0x90, 0xfe, 0x1e, 0xd6, 0xe0, 0x79, 0x83, 0x31,
-
  0x07, 0xe1, 0x0e, 0x6c, 0xc3, 0x07, 0xe9, 0xa6, 0x4a, 0x7c, 0xed, 0x3f,
-
  0xdd, 0x97, 0x36, 0xae, 0xf0, 0x59, 0x4f, 0x7b, 0xfa, 0x7f, 0xdf, 0xe3,
-
  0xee, 0x4f, 0xbb, 0x1c, 0x77, 0x8b, 0x27, 0x0d, 0xe7, 0x4f, 0xb7, 0x77,
-
  0xcd, 0xe3, 0x9e, 0xfe, 0x3b, 0xce, 0xbb, 0x76, 0x6d, 0xa1, 0xa2, 0x91,
-
  0x03, 0x7d, 0xbb, 0x71, 0xde, 0x66, 0x1a, 0xd3, 0xe2, 0x4f, 0xbd, 0x42,
-
  0x52, 0xa0, 0x83, 0xc1, 0x8e, 0x73, 0x80, 0x96, 0xe3, 0x51, 0x68, 0xe1,
-
  0x48, 0x29, 0x44, 0xea, 0x4f, 0xbe, 0x1d, 0x7d, 0x39, 0x3f, 0x7c, 0xfe,
-
  0xed, 0x7d, 0x56, 0x7b, 0x5b, 0x0f, 0xbf, 0x3b, 0x32, 0x9f, 0xd1, 0xa0,
-
  0x24, 0x3d, 0x7c, 0xf2, 0xf9, 0xff, 0xb8, 0xe3, 0xff, 0xe8, 0xb6, 0xda,
-
  0xb2, 0xe1, 0xf0, 0xd3, 0x2a, 0x3d, 0x92, 0x65, 0xed, 0x91, 0x7c, 0xdf,
-
  0x7a, 0x4d, 0xf3, 0xd9, 0x9a, 0xdc, 0xc4, 0x68, 0x29, 0x3e, 0xb8, 0x3e,
-
  0xaf, 0x9a, 0xe6, 0xec, 0x35, 0xaa, 0xce, 0x7e, 0x86, 0xf3, 0xfd, 0xe8,
-
  0x7f, 0x8f, 0xdb, 0xfc, 0xd1, 0x9a, 0xc7, 0xfb, 0xd1, 0xff, 0xdb, 0x4f,
-
  0xb7, 0xbf, 0xd7, 0xa3, 0x32, 0xf2, 0x2d, 0xbb, 0xec, 0xf2, 0x13, 0x11,
-
  0x6c, 0x49, 0x4c, 0x2f, 0x2f, 0xa8, 0x36, 0x3c, 0xbc, 0xfe, 0xea, 0xf9,
-
  0xe1, 0x69, 0xcc, 0x11, 0x1e, 0x7d, 0x3e, 0xe7, 0xae, 0xb4, 0xcf, 0x83,
-
  0x95, 0xe3, 0x7f, 0xf0, 0x25, 0xa2, 0x15, 0xaf, 0xcf, 0x13, 0xc2, 0xe1,
-
  0xf7, 0x2c, 0xe1, 0x61, 0xda, 0x60, 0x05, 0xbd, 0x41, 0x5a, 0x69, 0x4d,
-
  0x55, 0x64, 0x01, 0x5a, 0x46, 0x7d, 0xdb, 0x2a, 0xa8, 0x37, 0x5d, 0x5c,
-
  0x1c, 0x95, 0x2d, 0x65, 0x4f, 0x28, 0x92, 0x97, 0x82, 0xc3, 0x98, 0x5b,
-
  0x38, 0x09, 0xaf, 0x6f, 0x85, 0xb5, 0x6e, 0x6d, 0x0f, 0x91, 0xa5, 0x04,
-
  0x30, 0xd9, 0xc5, 0x49, 0xf6, 0x23, 0x13, 0x05, 0x8f, 0xf4, 0xa2, 0xaa,
-
  0xd2, 0x79, 0xce, 0x84, 0x01, 0x87, 0x1c, 0x4f, 0xc8, 0x0f, 0x67, 0x67,
-
  0xbd, 0xc3, 0xd3, 0xe3, 0x65, 0x3f, 0x1c, 0x3e, 0xd3, 0x1c, 0x11, 0x79,
-
  0x40, 0x63, 0x85, 0xd2, 0x2d, 0xc1, 0xc7, 0x81, 0xc2, 0xae, 0xb1, 0x7d,
-
  0xd2, 0xac, 0xed, 0xe6, 0xa7, 0x32, 0xf7, 0x47, 0xcd, 0x1d, 0xe3, 0x75,
-
  0x08, 0x0b, 0xa4, 0x8b, 0xd0, 0x58, 0x83, 0xf6, 0x7d, 0xf2, 0x4c, 0xdd,
-
  0x43, 0x8f, 0xaf, 0x68, 0xa4, 0x7d, 0x77, 0x92, 0xcd, 0x3c, 0x00, 0x8a,
-
  0x53, 0x38, 0x66, 0x08, 0xb4, 0x14, 0x88, 0x3f, 0xdb, 0x19, 0xc3, 0x08,
-
  0xdc, 0xea, 0x9b, 0x90, 0xb9, 0xbc, 0xf6, 0xe2, 0x53, 0xe5, 0x7d, 0x35,
-
  0x47, 0x42, 0x83, 0x72, 0x6e, 0xd9, 0x65, 0xb7, 0xc3, 0x6d, 0x1e, 0xb1,
-
  0x88, 0x80, 0x56, 0xf9, 0xc5, 0x1a, 0x16, 0x27, 0x6f, 0x31, 0x10, 0x03,
-
  0x72, 0xd3, 0xf0, 0xe4, 0x9b, 0x5d, 0x8b, 0x24, 0x64, 0x04, 0x9f, 0x8b,
-
  0x26, 0x7a, 0xb0, 0xd7, 0x62, 0x5e, 0xa8, 0x14, 0xe2, 0x4a, 0x2b, 0x9c,
-
  0xb8, 0x2d, 0x51, 0x07, 0x14, 0x7b, 0xac, 0x59, 0x58, 0xac, 0x33, 0x41,
-
  0x2e, 0xa2, 0x62, 0x7d, 0x81, 0xb5, 0x99, 0xb3, 0x0a, 0xcb, 0xac, 0x51,
-
  0x91, 0xce, 0xdd, 0xaf, 0x1e, 0x23, 0x9a, 0x41, 0x7a, 0x23, 0xbe, 0x8c,
-
  0x4a, 0xdf, 0x7c, 0xd8, 0xdf, 0xdf, 0x7e, 0xd8, 0x7f, 0xc8, 0x16, 0x16,
-
  0xcd, 0xa7, 0xb3, 0x80, 0x61, 0xe9, 0x43, 0x62, 0x69, 0x65, 0x48, 0x6f,
-
  0x8e, 0x9e, 0x25, 0x0c, 0xdb, 0x46, 0x35, 0xe5, 0x63, 0xa7, 0xb3, 0xe3,
-
  0xc9, 0x9e, 0x52, 0x85, 0x61, 0xb7, 0x4c, 0x5d, 0x6a, 0x86, 0x73, 0xd3,
-
  0x8b, 0x99, 0xf5, 0x88, 0x97, 0x2f, 0xa7, 0x9c, 0x47, 0xae, 0x11, 0x3f,
-
  0x6b, 0x9d, 0xb6, 0x5b, 0x9a, 0x88, 0x92, 0x6e, 0x5d, 0xec, 0x7b, 0x36,
-
  0x42, 0x35, 0x3b, 0xf9, 0x08, 0xca, 0xa2, 0x55, 0x58, 0x41, 0x5d, 0x0c,
-
  0x73, 0xf4, 0xfb, 0x69, 0x4c, 0x9d, 0xb0, 0x4d, 0x0f, 0xad, 0x16, 0x5b,
-
  0x91, 0xaf, 0x13, 0xf1, 0xd2, 0x5a, 0x01, 0x12, 0x96, 0x49, 0x5c, 0x51,
-
  0x65, 0x2c, 0x2e, 0x26, 0x41, 0xf1, 0x21, 0x43, 0x70, 0x38, 0x55, 0x67,
-
  0x6a, 0x6f, 0xfc, 0xf7, 0xd1, 0xac, 0x1f, 0xdd, 0xb8, 0xcd, 0x21, 0x7c,
-
  0xbe, 0xb8, 0x95, 0xf6, 0xfe, 0xc8, 0xd7, 0xfb, 0xd9, 0xd6, 0xd7, 0xee,
-
  0xeb, 0x5b, 0xa4, 0xf3, 0x65, 0xf1, 0x5c, 0x05, 0xa3, 0x4d, 0xca, 0xf7,
-
  0x0a, 0x88, 0xd9, 0xf4, 0xa1, 0xca, 0xeb, 0x81, 0xe8, 0xb5, 0x93, 0xad,
-
  0x7e, 0x24, 0xa8, 0x37, 0x24, 0xf5, 0xd5, 0xa2, 0x7a, 0xa2, 0xc1, 0xb3,
-
  0xff, 0x1e, 0x81, 0xfd, 0xf2, 0xff, 0x19, 0x0a, 0x79, 0xac, 0x8f, 0x37,
-
  0xd4, 0xf1, 0x47, 0x61, 0xd5, 0xbd, 0x01, 0xec, 0x16, 0xb9, 0xfd, 0xf2,
-
  0xff, 0xd5, 0x82, 0xfb, 0x6a, 0xbd, 0xbc, 0x4d, 0x31, 0x77, 0xe7, 0xe6,
-
  0x33, 0xcb, 0xe3, 0xa1, 0xa3, 0xdf, 0x27, 0x98, 0xb7, 0xcb, 0xe3, 0x7f,
-
  0x25, 0x1d, 0x7e, 0x9e, 0x65, 0x23, 0xae, 0xc0, 0x90, 0x3c, 0xa5, 0x3f,
-
  0x7c, 0xba, 0x64, 0xf0, 0x8f, 0x00, 0xc5, 0x61, 0x26, 0x59, 0xa8, 0xe3,
-
  0x23, 0xe9, 0xca, 0xf4, 0x0a, 0x48, 0x67, 0x33, 0xa9, 0x28, 0xe7, 0x8a,
-
  0x9b, 0x6c, 0x29, 0xf4, 0x03, 0x06, 0x59, 0x71, 0x50, 0x62, 0x80, 0xe8,
-
  0x94, 0x90, 0x4f, 0x3a, 0xec, 0x54, 0x85, 0x4b, 0x0b, 0x7b, 0x93, 0x0c,
-
  0xef, 0x83, 0x17, 0x03, 0x7e, 0xb9, 0x07, 0x98, 0xe1, 0x71, 0xf3, 0x73,
-
  0x02, 0x48, 0x87, 0x9c, 0x7e, 0x7f, 0x27, 0xb1, 0xc2, 0x20, 0x49, 0x24,
-
  0xde, 0x27, 0xbe, 0x56, 0xa2, 0x9f, 0xf5, 0x67, 0xad, 0x95, 0xe8, 0x3b,
-
  0xda, 0xdf, 0xd9, 0x89, 0x07, 0xbe, 0x6e, 0x40, 0x62, 0x78, 0xa5, 0xdb,
-
  0x56, 0x2d, 0xa3, 0x99, 0xa8, 0x76, 0xd3, 0x8d, 0xbb, 0x69, 0x84, 0xd7,
-
  0xc6, 0x1b, 0x8b, 0x15, 0x67, 0xa2, 0xad, 0xf5, 0x23, 0x0e, 0x5b, 0xaa,
-
  0x45, 0x70, 0x38, 0x80, 0xd1, 0xa2, 0x1b, 0xdc, 0x26, 0xf0, 0x66, 0x75,
-
  0x9b, 0x7e, 0x35, 0x34, 0xb6, 0xea, 0xce, 0x1e, 0x73, 0x4c, 0xa0, 0xbd,
-
  0xe2, 0x97, 0xb1, 0x1b, 0x81, 0x5a, 0x36, 0xf6, 0x67, 0x57, 0xfd, 0xca,
-
  0x56, 0x3f, 0x22, 0x5a, 0xd9, 0x36, 0x76, 0x29, 0x10, 0x1d, 0x95, 0x4f,
-
  0x39, 0x27, 0x2a, 0x2d, 0x90, 0x7e, 0xd8, 0x33, 0x8d, 0xb1, 0x71, 0x5b,
-
  0x24, 0x1b, 0x36, 0xd0, 0x4a, 0x52, 0x2e, 0x0e, 0x55, 0x51, 0xb5, 0x2e,
-
  0x63, 0x1d, 0x59, 0x3d, 0x94, 0x2b, 0x8c, 0x5c, 0x96, 0x04, 0x96, 0x83,
-
  0x99, 0xe4, 0xa5, 0xa0, 0x6f, 0x02, 0x33, 0x86, 0x59, 0x94, 0x37, 0xee,
-
  0xee, 0x73, 0x79, 0xca, 0x1a, 0x19, 0xab, 0xa8, 0x55, 0xca, 0x51, 0xa2,
-
  0xf5, 0xf8, 0x6c, 0xc2, 0xc5, 0xfd, 0x91, 0xa1, 0x44, 0x11, 0x13, 0xe5,
-
  0x05, 0x52, 0x0c, 0x92, 0x45, 0x25, 0x23, 0xde, 0xc4, 0xcc, 0x62, 0x42,
-
  0x11, 0x22, 0x7c, 0x22, 0x02, 0x02, 0x42, 0x93, 0x06, 0x70, 0xdb, 0x9f,
-
  0xd2, 0x12, 0x61, 0x01, 0x0e, 0x2c, 0x21, 0x4c, 0x23, 0x5e, 0x18, 0x7d,
-
  0x17, 0xe1, 0x6d, 0x32, 0x18, 0x78, 0x16, 0xe3, 0xe7, 0x1b, 0x2e, 0x87,
-
  0x20, 0x59, 0x61, 0x57, 0x08, 0x61, 0x12, 0x8a, 0xb4, 0x48, 0x9c, 0xd8,
-
  0x42, 0xf1, 0x7d, 0x93, 0xc5, 0xfc, 0xa2, 0x4c, 0x47, 0x0a, 0x4e, 0x40,
-
  0xda, 0x28, 0xb7, 0xec, 0x8a, 0xa8, 0x1a, 0xf1, 0x94, 0x37, 0x86, 0xd3,
-
  0x84, 0x85, 0x56, 0xb7, 0xcf, 0x5f, 0x9d, 0x05, 0x14, 0x8c, 0xf0, 0x3c,
-
  0x16, 0x01, 0x00, 0x06, 0x56, 0x53, 0x29, 0x26, 0xaa, 0x83, 0x22, 0xc5,
-
  0x5b, 0x35, 0x58, 0xfc, 0xec, 0xfc, 0xf0, 0xed, 0x39, 0xbe, 0x8c, 0xc1,
-
  0x82, 0xf8, 0x2f, 0x0c, 0x8a, 0x70, 0xab, 0x2c, 0x51, 0x18, 0x21, 0xc7,
-
  0x08, 0x94, 0x42, 0xab, 0x73, 0xa3, 0xa2, 0x83, 0xbb, 0x2d, 0x90, 0x6e,
-
  0xa9, 0xba, 0xac, 0x67, 0xbd, 0xa5, 0xe1, 0xaa, 0xcb, 0xdd, 0x02, 0x73,
-
  0xad, 0x8e, 0x80, 0x64, 0xf8, 0xcb, 0xd0, 0xfb, 0xb4, 0x75, 0x5a, 0x13,
-
  0x81, 0x11, 0x00, 0xeb, 0x39, 0xad, 0x99, 0xa1, 0xd7, 0x10, 0xdb, 0x74,
-
  0xeb, 0x28, 0xd5, 0xeb, 0x0d, 0xdb, 0x03, 0x84, 0xbb, 0xab, 0x6c, 0x52,
-
  0x85, 0x8a, 0x39, 0xa0, 0x32, 0x95, 0x37, 0x7c, 0xbe, 0x30, 0x7c, 0x20,
-
  0x82, 0x4b, 0x68, 0x64, 0xb0, 0x52, 0x8a, 0xa6, 0xc4, 0x57, 0xe1, 0xb6,
-
  0x27, 0x71, 0xe6, 0xef, 0x93, 0x5d, 0x2e, 0xd7, 0x7b, 0xcc, 0xfc, 0x97,
-
  0x52, 0xc6, 0x34, 0x1f, 0x4d, 0x2b, 0xa1, 0x49, 0x25, 0x66, 0x2c, 0xbd,
-
  0x4b, 0x2d, 0x60, 0xee, 0x43, 0xa6, 0x69, 0x67, 0x5a, 0x03, 0x58, 0x2b,
-
  0xd7, 0x67, 0x33, 0xe0, 0x3f, 0xa0, 0xd6, 0x4f, 0x46, 0xe9, 0x3c, 0xa4,
-
  0x76, 0x64, 0xa1, 0x78, 0x33, 0x67, 0x80, 0xd2, 0x21, 0xcf, 0x14, 0x85,
-
  0x34, 0x0d, 0x05, 0x27, 0x18, 0x5e, 0x8c, 0xf2, 0x33, 0x05, 0x7f, 0xc6,
-
  0xed, 0x78, 0xee, 0x95, 0x38, 0xaf, 0xcb, 0xba, 0xd5, 0x1f, 0x0e, 0xb3,
-
  0xf6, 0xd5, 0xc0, 0x58, 0x08, 0x0c, 0xe0, 0xcf, 0x10, 0x73, 0x09, 0x43,
-
  0x19, 0x66, 0x24, 0x04, 0xda, 0x7e, 0x08, 0xe4, 0x90, 0x3c, 0xcd, 0x62,
-
  0x05, 0xc8, 0x59, 0x1a, 0x8a, 0x86, 0xe1, 0x2d, 0x2a, 0x72, 0x21, 0xab,
-
  0xb2, 0xac, 0x58, 0xc9, 0xdc, 0x14, 0xac, 0xf7, 0xf1, 0x82, 0xca, 0x2b,
-
  0x28, 0x42, 0x48, 0x9b, 0x49, 0xa2, 0x9a, 0xb4, 0xc1, 0x58, 0xb6, 0xd8,
-
  0x21, 0xbc, 0xce, 0x28, 0x2a, 0x63, 0x53, 0x63, 0xac, 0xee, 0x40, 0xc2,
-
  0xc5, 0xce, 0xe6, 0xc5, 0x7c, 0xff, 0xee, 0xb8, 0x5c, 0x21, 0xbe, 0x2e,
-
  0x85, 0x86, 0x09, 0xb9, 0x33, 0x77, 0x19, 0xe6, 0xf3, 0xcb, 0xcc, 0x25,
-
  0x16, 0xe1, 0xa3, 0xa4, 0x6f, 0xf7, 0x06, 0x99, 0xd5, 0x28, 0xdc, 0x04,
-
  0x5a, 0xdf, 0xc2, 0xb0, 0xa8, 0x60, 0x47, 0x4d, 0x4b, 0xca, 0x4e, 0xa4,
-
  0xcd, 0x85, 0xe6, 0x30, 0x08, 0x7f, 0x3c, 0xc1, 0x1a, 0x4c, 0x02, 0x85,
-
  0x05, 0x6f, 0x00, 0xf5, 0x85, 0xa0, 0x43, 0x6e, 0x88, 0x77, 0x06, 0xd6,
-
  0xe3, 0xfb, 0xa3, 0xc3, 0xb3, 0xf3, 0xc0, 0xe8, 0x1d, 0x4d, 0x4b, 0x02,
-
  0xb3, 0xdc, 0x55, 0x78, 0xb4, 0x27, 0xe9, 0x0d, 0x96, 0xb0, 0x43, 0xda,
-
  0x31, 0xac, 0x6a, 0x1c, 0x03, 0x0f, 0xa1, 0xd2, 0xed, 0xc6, 0x43, 0xcd,
-
  0x2c, 0x80, 0xd2, 0x84, 0x28, 0xcc, 0x46, 0x73, 0x89, 0x2d, 0x6d, 0x59,
-
  0x44, 0x1b, 0x4c, 0x71, 0x14, 0xc6, 0x37, 0x19, 0x85, 0x88, 0xc7, 0xd8,
-
  0x50, 0xd1, 0x1a, 0x44, 0x1b, 0x83, 0x10, 0x5e, 0x6a, 0xa5, 0x49, 0xa2,
-
  0x51, 0xe2, 0x43, 0x38, 0x6b, 0x5c, 0x5a, 0xdb, 0x75, 0xda, 0x6f, 0xe9,
-
  0x6c, 0x96, 0x20, 0x76, 0x63, 0x49, 0x4f, 0x6a, 0xf9, 0xeb, 0xa5, 0x9c,
-
  0x68, 0xbf, 0x22, 0x13, 0x04, 0xa5, 0x9f, 0x89, 0x1b, 0x15, 0xdf, 0xd2,
-
  0xd5, 0x16, 0x84, 0xe0, 0x80, 0xa7, 0x18, 0xd2, 0xd3, 0xb9, 0xd0, 0x13,
-
  0x57, 0x68, 0x95, 0x00, 0x33, 0x8e, 0xb3, 0x1f, 0x22, 0x36, 0x0a, 0x9d,
-
  0xca, 0x25, 0x28, 0xe0, 0xd6, 0x6d, 0xbf, 0x67, 0x03, 0x48, 0xdc, 0xc5,
-
  0x9d, 0xa4, 0xed, 0x1f, 0x5e, 0xef, 0xee, 0x94, 0x88, 0xeb, 0xc6, 0xab,
-
  0x4c, 0xe7, 0x4a, 0xf6, 0x31, 0xa1, 0x2f, 0x6a, 0x0c, 0xb2, 0xc1, 0x44,
-
  0xb6, 0x1e, 0x88, 0x18, 0x11, 0xb5, 0x6f, 0x9e, 0xe1, 0x2e, 0xcf, 0xb2,
-
  0xc9, 0x56, 0x72, 0x18, 0x55, 0x01, 0x21, 0xb0, 0x44, 0x3e, 0x3e, 0x84,
-
  0x1c, 0x94, 0x70, 0x03, 0x30, 0x74, 0x68, 0x81, 0x91, 0x40, 0x33, 0x27,
-
  0x94, 0x37, 0x72, 0x4e, 0xae, 0xb9, 0xbc, 0xa0, 0x16, 0xd0, 0x14, 0xce,
-
  0xaa, 0xb6, 0x93, 0xb3, 0x50, 0x57, 0xd1, 0x67, 0x6d, 0xa0, 0x46, 0xa8,
-
  0x11, 0xac, 0xa8, 0xfa, 0xba, 0x9e, 0x98, 0xc9, 0x0a, 0x3f, 0xaf, 0x74,
-
  0x2c, 0x4d, 0x8b, 0xaa, 0xc6, 0xca, 0x12, 0xab, 0x3f, 0x8b, 0x86, 0x8a,
-
  0xec, 0x8f, 0x2a, 0x4e, 0x10, 0x02, 0x8f, 0x82, 0x65, 0x91, 0xf5, 0x30,
-
  0xbf, 0x4a, 0xb1, 0xa8, 0x2a, 0x28, 0xd9, 0x93, 0xd4, 0xa2, 0x54, 0x15,
-
  0xb9, 0x40, 0xeb, 0xd1, 0x34, 0x02, 0x45, 0x5b, 0x56, 0xf5, 0x9e, 0x02,
-
  0x46, 0x5b, 0x5a, 0x5e, 0x83, 0x86, 0x9a, 0x63, 0x59, 0x2f, 0x4d, 0xf6,
-
  0xcb, 0x46, 0xa6, 0x87, 0xa3, 0xac, 0xe5, 0x21, 0x04, 0x7a, 0xa2, 0x6c,
-
  0x51, 0x44, 0x3a, 0x5d, 0x41, 0x48, 0x36, 0xbf, 0x68, 0xfd, 0xf1, 0x15,
-
  0xd9, 0xa8, 0xe1, 0x65, 0x06, 0xda, 0x63, 0x3f, 0x30, 0x03, 0x07, 0x4e,
-
  0xd0, 0xe0, 0x08, 0xac, 0x8a, 0x9f, 0xbd, 0x72, 0x1c, 0x81, 0x44, 0x0d,
-
  0x57, 0x26, 0x09, 0xd3, 0xc4, 0x95, 0x17, 0x28, 0x50, 0xd3, 0xfb, 0x44,
-
  0x80, 0x2a, 0x88, 0x19, 0x30, 0x2f, 0x68, 0x6e, 0xa0, 0x4d, 0xe3, 0x7e,
-
  0x10, 0x99, 0xa3, 0x26, 0xef, 0xde, 0xb2, 0xd0, 0xfb, 0x7a, 0x18, 0x45,
-
  0xe5, 0xc4, 0x97, 0xbb, 0xb7, 0xbb, 0xae, 0x29, 0x20, 0x3b, 0x09, 0x59,
-
  0x44, 0xe4, 0xb7, 0x2c, 0x5d, 0xdd, 0x25, 0x88, 0x6a, 0x3d, 0x99, 0x25,
-
  0x61, 0x14, 0xc9, 0xd8, 0xe4, 0xd0, 0xd5, 0x82, 0xa8, 0x49, 0xa2, 0x11,
-
  0x60, 0x1d, 0x82, 0x20, 0x72, 0x58, 0x6f, 0x6d, 0x68, 0xb6, 0x0d, 0x69,
-
  0x28, 0x56, 0xf2, 0x0c, 0x77, 0xdb, 0xc0, 0x43, 0x58, 0xee, 0x36, 0xe0,
-
  0x50, 0x95, 0x49, 0xff, 0xfd, 0xb2, 0x22, 0xd2, 0x5d, 0x99, 0xfd, 0xc6,
-
  0x46, 0xf9, 0x3b, 0x65, 0x45, 0x9c, 0x9a, 0x56, 0x8a, 0xa2, 0x2b, 0x8d,
-
  0xc0, 0xa1, 0x56, 0x0b, 0xba, 0xa8, 0x7b, 0xe1, 0xba, 0x60, 0xc4, 0x31,
-
  0x02, 0x18, 0x8c, 0xad, 0x6c, 0x05, 0x70, 0x29, 0xc4, 0xb7, 0xac, 0xe0,
-
  0xd4, 0x4c, 0x85, 0x11, 0xe6, 0x54, 0x42, 0xb0, 0xca, 0x26, 0xe3, 0x90,
-
  0xef, 0x46, 0x78, 0x45, 0xd3, 0x69, 0x36, 0xb2, 0xe4, 0x1c, 0xfa, 0x14,
-
  0xbb, 0xd7, 0xb4, 0x16, 0x18, 0x46, 0x37, 0xe1, 0x14, 0x0c, 0x24, 0x02,
-
  0x74, 0x0f, 0x77, 0x19, 0xb9, 0xf5, 0xac, 0x1b, 0xb0, 0x61, 0xe1, 0x33,
-
  0xa4, 0x9f, 0x33, 0x3e, 0x68, 0xb8, 0x04, 0xa0, 0x01, 0x9c, 0x71, 0x2c,
-
  0x9b, 0x2b, 0xef, 0x3c, 0xb9, 0x26, 0x27, 0x0a, 0xe5, 0xe1, 0xd8, 0x3e,
-
  0x42, 0x0f, 0x5a, 0x27, 0x05, 0x36, 0xff, 0x12, 0xb3, 0x4a, 0x4d, 0xae,
-
  0x45, 0x61, 0x26, 0x2e, 0x92, 0xab, 0xfb, 0x46, 0xb9, 0x00, 0x26, 0xd7,
-
  0x3a, 0xc1, 0xd6, 0x69, 0x1a, 0x48, 0xec, 0xed, 0xee, 0x31, 0x55, 0x39,
-
  0xd6, 0x13, 0x48, 0xfd, 0x11, 0x5e, 0x91, 0x30, 0xa6, 0xbd, 0xdd, 0x79,
-
  0x86, 0xa9, 0xdb, 0x25, 0xfc, 0xd6, 0x56, 0xc1, 0xf4, 0xb6, 0xfb, 0x99,
-
  0xf9, 0x00, 0xdc, 0xe3, 0x55, 0x8d, 0xe8, 0xc3, 0xc5, 0xca, 0x1b, 0x3a,
-
  0x39, 0x26, 0x4d, 0xe5, 0x0e, 0xbe, 0xaa, 0xf9, 0xed, 0x68, 0x1a, 0x0e,
-
  0xb9, 0x52, 0x19, 0x59, 0x5c, 0x32, 0x71, 0x55, 0x4a, 0xdd, 0x96, 0xed,
-
  0x62, 0x3c, 0xe6, 0x2a, 0xee, 0xa3, 0x1c, 0x01, 0x50, 0x07, 0x0b, 0x71,
-
  0x28, 0xcd, 0x8b, 0x1c, 0xf1, 0xfb, 0xad, 0x4e, 0x8b, 0x25, 0x50, 0x58,
-
  0x5f, 0x09, 0xf7, 0x46, 0x65, 0xe0, 0xab, 0xba, 0x6a, 0xf3, 0x37, 0xdd,
-
  0x32, 0xb5, 0xfb, 0x97, 0xb9, 0x96, 0x7b, 0x5a, 0x67, 0xff, 0x9a, 0xef,
-
  0xac, 0x79, 0x71, 0xee, 0x34, 0x2e, 0x4e, 0xe1, 0xce, 0xb7, 0x6d, 0x72,
-
  0xc5, 0xf5, 0x89, 0xab, 0xe4, 0xa9, 0x06, 0x9b, 0x7f, 0xeb, 0x77, 0x59,
-
  0x5d, 0x24, 0x52, 0x11, 0x9d, 0x8b, 0xb5, 0x15, 0x54, 0xa0, 0x4d, 0xef,
-
  0x3f, 0x7a, 0x1f, 0xd6, 0x0b, 0xbd, 0x07, 0x88, 0x4c, 0x44, 0x9a, 0x00,
-
  0xe1, 0x2c, 0xaa, 0xf8, 0x04, 0x3b, 0xa2, 0xa9, 0x30, 0x86, 0xae, 0x4f,
-
  0x92, 0x94, 0xd9, 0xad, 0x60, 0x41, 0x0f, 0x6b, 0x01, 0x6f, 0x64, 0xec,
-
  0xe8, 0xd4, 0xc3, 0xb6, 0xf8, 0x98, 0xe6, 0xc5, 0x4c, 0x0c, 0x70, 0x43,
-
  0xce, 0x33, 0x77, 0x83, 0x40, 0x4e, 0x2e, 0xc3, 0x20, 0xe8, 0x1c, 0xca,
-
  0x58, 0x52, 0x34, 0x4d, 0x42, 0xd6, 0x09, 0x30, 0x2e, 0xe9, 0x90, 0x7c,
-
  0x03, 0xb3, 0x9b, 0xe0, 0xc8, 0x90, 0x62, 0xb9, 0x4b, 0xb5, 0x21, 0x03,
-
  0x70, 0xf9, 0xa5, 0x34, 0x48, 0x21, 0xea, 0xec, 0x72, 0x65, 0x2b, 0x0c,
-
  0xa7, 0x0a, 0x55, 0x51, 0x61, 0x25, 0x5f, 0xa0, 0x6a, 0x31, 0x0b, 0x45,
-
  0xb6, 0xca, 0x8c, 0xce, 0x07, 0x66, 0xd5, 0xbf, 0x9b, 0xb1, 0x9b, 0x41,
-
  0xf2, 0x06, 0x74, 0xf0, 0x34, 0x7a, 0xc9, 0xdd, 0x22, 0xd2, 0xea, 0xaa,
-
  0xd8, 0x47, 0x16, 0x42, 0xf6, 0xad, 0x10, 0x58, 0x32, 0xcf, 0x84, 0x60,
-
  0x59, 0xe1, 0x40, 0xcc, 0x17, 0xe5, 0x85, 0x56, 0x12, 0x73, 0x6b, 0x24,
-
  0xc7, 0xc5, 0x01, 0xfc, 0xc2, 0x10, 0x2a, 0xa7, 0xfb, 0xbc, 0x53, 0x3f,
-
  0x89, 0xec, 0x25, 0x4f, 0x5b, 0xfc, 0xbe, 0x49, 0xa7, 0xd7, 0xab, 0x27,
-
  0x55, 0x2f, 0x43, 0x40, 0x65, 0xcc, 0x9d, 0xe9, 0xd0, 0x51, 0xa5, 0x0a,
-
  0x7f, 0x01, 0xa1, 0x20, 0xca, 0xb4, 0x47, 0x6a, 0xec, 0xec, 0xf4, 0xe0,
-
  0x6a, 0xee, 0x90, 0x0b, 0xb8, 0xab, 0x8e, 0x6b, 0x58, 0x1e, 0x4f, 0x33,
-
  0x01, 0x8f, 0x4d, 0x4b, 0x27, 0x0e, 0x4c, 0x76, 0x07, 0xdd, 0xd2, 0xa7,
-
  0x65, 0x04, 0x9c, 0x1e, 0xd2, 0x44, 0xbd, 0x35, 0x28, 0xa1, 0x91, 0x49,
-
  0xf2, 0xda, 0x21, 0x05, 0xf9, 0xa3, 0x01, 0xc4, 0x25, 0x4a, 0x87, 0x07,
-
  0x5c, 0x40, 0x92, 0xc2, 0xc1, 0xc2, 0xda, 0x5c, 0x13, 0x9e, 0x2a, 0x1c,
-
  0x8e, 0x32, 0x1b, 0x82, 0x20, 0x47, 0xae, 0x32, 0xf5, 0xd9, 0x19, 0x86,
-
  0x90, 0x1e, 0x1d, 0xa3, 0x0d, 0x3f, 0x93, 0x06, 0xdd, 0xd5, 0x64, 0xb7,
-
  0xc1, 0xac, 0xec, 0xb4, 0xca, 0x1e, 0x3f, 0x4c, 0xac, 0x6a, 0x58, 0x0d,
-
  0x6c, 0xa4, 0xeb, 0x13, 0x3b, 0xf9, 0x3d, 0x54, 0x4d, 0x09, 0x0e, 0xf0,
-
  0x7a, 0xe6, 0xa0, 0x74, 0xd5, 0x33, 0xc2, 0xad, 0x92, 0x59, 0xaa, 0x00,
-
  0xa1, 0x63, 0x7e, 0x29, 0xaa, 0x10, 0x90, 0xc8, 0xc4, 0x4a, 0x52, 0x8a,
-
  0xd2, 0x7b, 0x89, 0x2a, 0xc1, 0x4f, 0x04, 0xaa, 0xc0, 0x22, 0xa8, 0xd5,
-
  0x3c, 0x21, 0xad, 0x1b, 0x11, 0x22, 0x90, 0x7e, 0xd3, 0x2a, 0xa7, 0x06,
-
  0x32, 0x07, 0x26, 0x5a, 0x85, 0x4a, 0x71, 0x54, 0x65, 0x95, 0xc3, 0x0a,
-
  0x84, 0xda, 0x44, 0x37, 0x61, 0x5b, 0x8d, 0x70, 0x58, 0xa4, 0xf1, 0x34,
-
  0x69, 0xc1, 0x09, 0x55, 0xfc, 0x86, 0x9a, 0x80, 0x07, 0xa9, 0xd4, 0x9a,
-
  0x48, 0x63, 0x64, 0xcf, 0x35, 0x20, 0xe9, 0x88, 0xff, 0xb4, 0xc1, 0x9f,
-
  0xdf, 0x8f, 0x61, 0xd8, 0xf7, 0xa2, 0xbf, 0xf4, 0xeb, 0x0f, 0x6b, 0x31,
-
  0xd5, 0x27, 0xfd, 0xdd, 0xbd, 0x06, 0x53, 0x8d, 0x0e, 0x83, 0xf2, 0xd2,
-
  0xbd, 0x2e, 0xf7, 0x74, 0xb5, 0x27, 0xdc, 0x13, 0xa8, 0x63, 0x2b, 0x12,
-
  0xa4, 0x7c, 0xae, 0x10, 0x28, 0x02, 0x06, 0xee, 0x2a, 0xf6, 0x58, 0x78,
-
  0xfe, 0x6a, 0x8f, 0x59, 0x0a, 0x87, 0x7d, 0x4b, 0x29, 0x70, 0x35, 0x02,
-
  0x6e, 0x46, 0xf0, 0xa5, 0x5f, 0xb2, 0xb8, 0x48, 0x2f, 0x11, 0x83, 0xb9,
-
  0x86, 0x75, 0x9b, 0xd0, 0x3e, 0x99, 0x99, 0xb9, 0x61, 0x63, 0x26, 0x38,
-
  0x10, 0x8a, 0x35, 0x79, 0xbc, 0xfb, 0xe5, 0xe3, 0xad, 0x66, 0xea, 0x18,
-
  0x0e, 0x3d, 0xb9, 0x23, 0x8a, 0xe7, 0x23, 0x82, 0xb5, 0xa8, 0xb9, 0xd5,
-
  0xeb, 0xab, 0x4f, 0x88, 0xe4, 0x29, 0xd8, 0x56, 0x93, 0x7c, 0xa0, 0xf1,
-
  0x4f, 0x83, 0x45, 0x3e, 0x21, 0xd4, 0x29, 0x3d, 0xe5, 0x64, 0xef, 0xf5,
-
  0xe2, 0x99, 0xf1, 0xd6, 0xe0, 0x5c, 0x0e, 0xde, 0x65, 0x8b, 0x98, 0xe2,
-
  0x8e, 0xf6, 0xbb, 0x09, 0x6f, 0xdc, 0xd5, 0x6e, 0xf8, 0x0d, 0xcb, 0x87,
-
  0xf8, 0x8c, 0x1f, 0xfe, 0x70, 0x2f, 0xda, 0x6b, 0x9c, 0x01, 0x3e, 0x28,
-
  0x35, 0x96, 0xe1, 0xaf, 0x3d, 0xdd, 0xf1, 0x7d, 0xdd, 0xf1, 0xfd, 0xdf,
-
  0xb1, 0xe3, 0xfb, 0x9f, 0xb2, 0xe3, 0xfb, 0x1f, 0xbd, 0xe3, 0x5f, 0x3e,
-
  0x7a, 0xfc, 0xa4, 0x6d, 0xc7, 0xf7, 0xef, 0x77, 0xc7, 0xf7, 0xef, 0xdc,
-
  0xf1, 0xfd, 0x7f, 0xd7, 0x8e, 0xef, 0x7d, 0x86, 0x1d, 0xd7, 0xf4, 0x45,
-
  0x92, 0x94, 0xbe, 0x55, 0xfc, 0x1d, 0xc9, 0x00, 0x45, 0x50, 0x34, 0x44,
-
  0x08, 0x14, 0x40, 0x5d, 0x79, 0x54, 0xa5, 0x0f, 0x97, 0xfc, 0x21, 0x95,
-
  0xa5, 0xc8, 0x9d, 0xe3, 0x0a, 0x74, 0x36, 0xab, 0x54, 0xa7, 0x09, 0xdc,
-
  0xec, 0xb0, 0xf5, 0x1b, 0xbd, 0x0d, 0x8d, 0x16, 0x51, 0x1f, 0x90, 0x02,
-
  0x11, 0x72, 0x37, 0xc5, 0xa2, 0xfe, 0xdc, 0x70, 0x03, 0x9c, 0xae, 0xc3,
-
  0x33, 0xba, 0x03, 0x15, 0xc4, 0x38, 0xf4, 0xc7, 0xa3, 0x82, 0x70, 0xfb,
-
  0x92, 0xc0, 0x7f, 0x3b, 0x7b, 0x5e, 0x99, 0x79, 0x6c, 0x59, 0xab, 0xba,
-
  0x61, 0x37, 0xa0, 0x60, 0x48, 0xc2, 0x5f, 0x04, 0x09, 0x62, 0xa5, 0x85,
-
  0x75, 0xae, 0x03, 0x2c, 0x23, 0x36, 0x86, 0x7b, 0x2f, 0xa1, 0x97, 0x2a,
-
  0xa9, 0x19, 0x51, 0x32, 0xb0, 0x2e, 0xc7, 0x4c, 0x44, 0xa8, 0x04, 0x8d,
-
  0xec, 0xe0, 0xbe, 0x84, 0xd5, 0xa2, 0xd8, 0xef, 0x7b, 0xa5, 0x5d, 0x02,
-
  0xd2, 0x64, 0xbc, 0xdd, 0x29, 0x55, 0xc6, 0xd5, 0x59, 0xd0, 0x73, 0x8a,
-
  0xcf, 0x68, 0x07, 0x03, 0x5d, 0xd7, 0xd2, 0xa8, 0x56, 0x92, 0x53, 0xfb,
-
  0xa2, 0x0d, 0xb2, 0x12, 0xa8, 0x2e, 0x91, 0x96, 0x44, 0x7a, 0x52, 0x99,
-
  0x45, 0xb3, 0x45, 0x0b, 0xad, 0x13, 0x43, 0xdb, 0xab, 0xb5, 0x93, 0x51,
-
  0xdb, 0x22, 0x44, 0xdd, 0x14, 0x2e, 0x71, 0xbe, 0x98, 0x73, 0x13, 0xd5,
-
  0xe7, 0x62, 0xb4, 0xff, 0x5c, 0x24, 0xd5, 0x02, 0x61, 0xd1, 0xdc, 0xa7,
-
  0xd6, 0x4a, 0x64, 0x9f, 0x62, 0xb2, 0xf4, 0x8d, 0xde, 0x45, 0x7b, 0xbe,
-
  0xff, 0xde, 0xf1, 0x7a, 0xea, 0xd6, 0xe3, 0x26, 0x9c, 0x1f, 0x95, 0x11,
-
  0x62, 0x42, 0x14, 0xb2, 0x0c, 0x94, 0x08, 0x5b, 0x48, 0x99, 0xce, 0xea,
-
  0x2c, 0x8f, 0x68, 0x89, 0xd0, 0x47, 0xc4, 0xce, 0x59, 0xa3, 0xb9, 0x65,
-
  0x12, 0x02, 0x88, 0x52, 0xf6, 0xf3, 0x20, 0xa6, 0xdf, 0xd1, 0xb3, 0xf3,
-
  0x65, 0x18, 0xad, 0x51, 0xe1, 0xbc, 0xfa, 0x32, 0x03, 0x8e, 0x0e, 0x0a,
-
  0xaf, 0xc4, 0x68, 0x19, 0xfd, 0xa5, 0x6d, 0x45, 0x00, 0xed, 0x5a, 0xca,
-
  0x01, 0x3b, 0x80, 0x4a, 0x59, 0x4b, 0x0f, 0x07, 0x91, 0x30, 0xda, 0x87,
-
  0x07, 0x24, 0x90, 0xf2, 0xb0, 0x69, 0x99, 0x05, 0x0c, 0x23, 0x7c, 0x20,
-
  0xc4, 0x83, 0x52, 0xc0, 0x95, 0xa1, 0x34, 0xcc, 0x62, 0xa0, 0x8e, 0xe3,
-
  0x3a, 0xae, 0x83, 0x87, 0x54, 0x3b, 0xca, 0x06, 0x8b, 0x0b, 0x65, 0xfb,
-
  0x95, 0x83, 0xcb, 0x17, 0xe3, 0x8b, 0x1e, 0x7a, 0x29, 0xa0, 0x89, 0x25,
-
  0x94, 0x25, 0xe1, 0x9a, 0x63, 0xd3, 0x2a, 0x74, 0x21, 0x81, 0xac, 0x3a,
-
  0x5c, 0x11, 0xb9, 0xbc, 0x62, 0x33, 0xd6, 0x56, 0xff, 0xef, 0xc4, 0x95,
-
  0x5c, 0xd5, 0xc3, 0x1d, 0x64, 0xb8, 0x6a, 0x5c, 0x8d, 0x15, 0xef, 0x7d,
-
  0x90, 0x1d, 0xfe, 0x88, 0xe8, 0x48, 0xb7, 0x89, 0x4d, 0x94, 0x15, 0x8f,
-
  0x98, 0xc3, 0xd4, 0x67, 0x64, 0x5b, 0x0f, 0xe7, 0xbd, 0x31, 0x70, 0xf4,
-
  0x62, 0xae, 0x15, 0xa9, 0x85, 0x7f, 0xea, 0x71, 0x3e, 0x7f, 0x76, 0x9a,
-
  0xbc, 0x20, 0x24, 0x28, 0xb4, 0x4b, 0x26, 0x9b, 0x28, 0x6e, 0x7c, 0xf9,
-
  0x70, 0x77, 0x9f, 0xb0, 0x04, 0xf5, 0x3b, 0xfa, 0x4a, 0x52, 0xda, 0xe1,
-
  0x43, 0x3b, 0xc7, 0x5c, 0x77, 0x57, 0x6b, 0xf7, 0x92, 0xb6, 0x49, 0x4a,
-
  0x1a, 0x50, 0x10, 0xa1, 0x97, 0x10, 0xc2, 0x21, 0x48, 0xda, 0x39, 0xc6,
-
  0x53, 0x5d, 0x09, 0x5a, 0x88, 0xb3, 0xd3, 0x8a, 0x98, 0x23, 0xa6, 0x05,
-
  0x51, 0x46, 0x91, 0x6d, 0x06, 0x2b, 0x5f, 0x72, 0xf8, 0xec, 0x4f, 0x5b,
-
  0x86, 0x0d, 0xab, 0xbe, 0x22, 0xaa, 0xbd, 0x21, 0x5e, 0x71, 0xd4, 0xe9,
-
  0x15, 0x3b, 0x38, 0xc4, 0xf6, 0x67, 0x23, 0x27, 0xbe, 0xc5, 0x36, 0x7a,
-
  0xbf, 0x26, 0x4d, 0x8a, 0x51, 0x23, 0xe3, 0xc7, 0x61, 0x2d, 0xf8, 0x16,
-
  0x6f, 0xa7, 0x90, 0xa8, 0xef, 0xb5, 0xf6, 0x7d, 0x0c, 0xff, 0x66, 0x3d,
-
  0x32, 0xbb, 0x44, 0xbb, 0x3a, 0x2b, 0x08, 0xe6, 0x50, 0xb8, 0x3c, 0xc2,
-
  0xf2, 0x6a, 0x39, 0x6c, 0xd8, 0xa1, 0x5f, 0xdf, 0x9c, 0x3c, 0x3f, 0x7a,
-
  0x75, 0xf8, 0xd7, 0x10, 0x99, 0x42, 0x29, 0xf4, 0xb4, 0x84, 0x58, 0x4c,
-
  0x19, 0xf4, 0xc7, 0x9b, 0x5f, 0xe1, 0x92, 0x87, 0x6f, 0x37, 0xf7, 0xb7,
-
  0x50, 0xd5, 0x9b, 0x69, 0x7d, 0xe6, 0x8b, 0x2c, 0xae, 0xc2, 0xc7, 0x58,
-
  0xf8, 0xae, 0x96, 0x9d, 0x87, 0x66, 0x97, 0xea, 0xcf, 0x81, 0x17, 0x0d,
-
  0x02, 0x76, 0x30, 0xee, 0xd1, 0x8d, 0xab, 0xd6, 0x66, 0x56, 0x6b, 0xc4,
-
  0x3d, 0xa6, 0x0b, 0x55, 0xe4, 0xc1, 0x9a, 0xf0, 0xb2, 0xc5, 0x30, 0x2d,
-
  0xdc, 0x90, 0x41, 0x6b, 0xf1, 0xab, 0xd9, 0xf2, 0xe6, 0xc9, 0xd4, 0xef,
-
  0x07, 0x27, 0xc3, 0x35, 0x78, 0xf7, 0xd6, 0x69, 0xcf, 0xeb, 0xc2, 0x24,
-
  0x0d, 0x16, 0xe3, 0x71, 0x00, 0x20, 0xa8, 0xf1, 0xe0, 0xd6, 0xd9, 0x64,
-
  0x96, 0xd5, 0x02, 0x7b, 0x96, 0x3c, 0x85, 0x7f, 0xbf, 0x01, 0x21, 0x4b,
-
  0x4b, 0x16, 0xa5, 0x95, 0x2e, 0x65, 0x15, 0x04, 0x14, 0x7c, 0xc1, 0xf8,
-
  0x70, 0x5f, 0xeb, 0x64, 0x64, 0x23, 0x7b, 0x12, 0x58, 0xf7, 0x81, 0xde,
-
  0xf7, 0xe7, 0x7f, 0x3d, 0x3d, 0xfa, 0xe6, 0x29, 0x0a, 0x20, 0xdf, 0x52,
-
  0xc1, 0x33, 0xad, 0xcf, 0x1d, 0x44, 0x92, 0x9b, 0xb9, 0x99, 0x41, 0xfe,
-
  0xf2, 0xfc, 0xf8, 0xec, 0xf4, 0xd5, 0xc9, 0xb3, 0x6f, 0x9e, 0xfe, 0x05,
-
  0x2d, 0xb5, 0x20, 0xb1, 0xde, 0xc4, 0x6f, 0xd9, 0xc7, 0x89, 0x16, 0xb9,
-
  0xd3, 0x57, 0xdf, 0x1c, 0xfd, 0xf4, 0xeb, 0xd1, 0x9b, 0x1f, 0xbf, 0x79,
-
  0x7a, 0x95, 0x96, 0x5d, 0x9a, 0x81, 0xbe, 0x87, 0x36, 0xb4, 0xd9, 0x55,
-
  0x5e, 0x16, 0x33, 0x8c, 0x05, 0x00, 0x11, 0xb2, 0xcc, 0x71, 0xf1, 0x43,
-
  0xa8, 0x6e, 0xbc, 0x04, 0x3e, 0x5e, 0xf7, 0x77, 0x14, 0xed, 0xa8, 0x65,
-
  0xea, 0x57, 0xf5, 0xee, 0xce, 0x8e, 0x2c, 0xda, 0x9d, 0x91, 0x1d, 0xc0,
-
  0x2c, 0xc6, 0xf9, 0x45, 0x38, 0x57, 0xe8, 0x14, 0x18, 0x4c, 0xde, 0x57,
-
  0xf9, 0x3f, 0xb2, 0xe4, 0x29, 0xc9, 0xbe, 0x66, 0x4c, 0x25, 0xf8, 0x2a,
-
  0xc5, 0x5c, 0x3b, 0xa7, 0x92, 0x14, 0xdf, 0xbf, 0xfa, 0xd3, 0xd9, 0xf1,
-
  0x7f, 0x1f, 0x29, 0xed, 0x6f, 0x52, 0x79, 0x68, 0x9c, 0xcb, 0xa3, 0xdd,
-
  0x3d, 0xbc, 0xcb, 0x26, 0x58, 0xf6, 0xaa, 0xdc, 0x8a, 0x44, 0x3d, 0x01,
-
  0xce, 0x1f, 0xc0, 0x72, 0xbe, 0x4f, 0xa8, 0x9f, 0x80, 0x5a, 0x62, 0x75,
-
  0x62, 0xac, 0x8a, 0xa7, 0xda, 0x57, 0x19, 0x91, 0x51, 0x78, 0xab, 0x48,
-
  0x0a, 0xa5, 0x43, 0x40, 0xe7, 0xf1, 0x58, 0x0a, 0xc1, 0xf7, 0x1e, 0x5a,
-
  0x1f, 0x07, 0x23, 0x51, 0x92, 0x6c, 0xdd, 0x62, 0x94, 0x57, 0x17, 0x69,
-
  0x1a, 0x4d, 0xbb, 0xb5, 0x8a, 0x9d, 0x28, 0x08, 0x31, 0x6e, 0xe0, 0xc7,
-
  0x47, 0x9a, 0x46, 0x1d, 0xed, 0xee, 0xec, 0x3d, 0x4c, 0xea, 0xf6, 0x02,
-
  0xd3, 0xcb, 0x3b, 0x45, 0xaf, 0xc2, 0x89, 0x6a, 0xc2, 0x05, 0x36, 0x3e,
-
  0x8f, 0x76, 0x4b, 0x22, 0x6e, 0x50, 0x80, 0x47, 0x63, 0x27, 0x2d, 0x92,
-
  0x1e, 0x19, 0xad, 0xda, 0x25, 0x1a, 0x6a, 0x3e, 0xc5, 0x49, 0x67, 0x55,
-
  0xa2, 0xd1, 0x2f, 0xce, 0x79, 0x43, 0x80, 0xde, 0xc9, 0x24, 0xbb, 0x20,
-
  0x77, 0x3e, 0x2f, 0x72, 0x65, 0x25, 0xe4, 0x24, 0x3b, 0x12, 0x64, 0xf1,
-
  0x59, 0x71, 0x4d, 0xc5, 0x10, 0xc4, 0x96, 0x4b, 0x21, 0x34, 0x06, 0xbd,
-
  0xab, 0xa1, 0x31, 0xd1, 0x28, 0x04, 0x5d, 0xbc, 0x6e, 0x81, 0x6d, 0x6e,
-
  0x2c, 0xd6, 0xff, 0xbf, 0xbd, 0x6f, 0x6d, 0x6a, 0xeb, 0xca, 0xb6, 0xfd,
-
  0x0c, 0xbf, 0x62, 0x97, 0xea, 0xba, 0x0c, 0xa7, 0x25, 0x19, 0xf0, 0xdb,
-
  0xd7, 0x49, 0x37, 0xc1, 0x24, 0xe1, 0xb4, 0x8d, 0x69, 0x84, 0x93, 0xf4,
-
  0x4d, 0xa7, 0xa8, 0x0d, 0xda, 0x80, 0xda, 0x42, 0xa2, 0xb5, 0x25, 0x63,
-
  0xe2, 0xca, 0xfd, 0xed, 0x77, 0x8d, 0x31, 0x1f, 0x6b, 0xad, 0x2d, 0x81,
-
  0x71, 0x62, 0x9f, 0xd3, 0x55, 0xf7, 0x7c, 0xe1, 0x21, 0xed, 0xbd, 0x9e,
-
  0x73, 0xcd, 0x35, 0x9f, 0x63, 0xfa, 0x22, 0xab, 0x71, 0xa1, 0xc1, 0x14,
-
  0xf3, 0x45, 0x28, 0x6e, 0x76, 0x59, 0xdd, 0x1a, 0x48, 0x6e, 0x7e, 0xcd,
-
  0x3f, 0xb6, 0xb7, 0xc9, 0x18, 0x74, 0x67, 0xd7, 0x9f, 0x6e, 0x74, 0xd7,
-
  0x1f, 0x3d, 0x41, 0xd1, 0x9c, 0x7b, 0xd7, 0xec, 0xaa, 0xce, 0xd1, 0xb6,
-
  0xf4, 0xd7, 0x76, 0x5a, 0x89, 0xba, 0x78, 0x8e, 0x3f, 0xbf, 0x9e, 0x03,
-
  0x92, 0xdb, 0x37, 0x31, 0xba, 0x54, 0x9f, 0x06, 0x15, 0x2d, 0x07, 0xd2,
-
  0x84, 0xd9, 0x5a, 0xd4, 0x18, 0x89, 0x18, 0xb2, 0x88, 0x70, 0xbd, 0x2a,
-
  0x52, 0xf8, 0x59, 0xaa, 0x42, 0xe1, 0x21, 0x22, 0x6d, 0xd2, 0xd8, 0x79,
-
  0x6d, 0x5b, 0x11, 0xd8, 0xd7, 0xf2, 0x3d, 0x04, 0x78, 0xf6, 0x40, 0x50,
-
  0xa9, 0x50, 0xad, 0x81, 0xf2, 0x1f, 0x2d, 0xca, 0xca, 0xd7, 0x4a, 0xaf,
-
  0xfc, 0x0a, 0x79, 0xab, 0xaf, 0x38, 0x6b, 0xc4, 0xac, 0x63, 0x69, 0x9f,
-
  0x13, 0xbf, 0x05, 0x5d, 0x1f, 0xa3, 0xe1, 0x55, 0x24, 0x61, 0x52, 0x23,
-
  0xb8, 0x76, 0x18, 0x57, 0xed, 0xc0, 0x11, 0x53, 0xba, 0x20, 0x68, 0xa0,
-
  0x4e, 0x40, 0x86, 0x92, 0xda, 0x7f, 0x19, 0x37, 0x39, 0x55, 0xa6, 0x25,
-
  0xd3, 0x50, 0x37, 0x1b, 0x07, 0xb2, 0x72, 0x8e, 0xf1, 0xaf, 0xba, 0xc3,
-
  0xa1, 0x9c, 0x26, 0xf8, 0x48, 0x6e, 0xe2, 0xc8, 0x45, 0x87, 0xd0, 0x1a,
-
  0xde, 0x35, 0xb1, 0x41, 0x44, 0x06, 0xad, 0xa9, 0xc7, 0x46, 0x93, 0x45,
-
  0xb0, 0xca, 0x3f, 0xd3, 0x14, 0x53, 0xb1, 0x07, 0x51, 0xc6, 0x80, 0xbc,
-
  0xb2, 0x25, 0x53, 0x74, 0xec, 0x3e, 0x0a, 0x36, 0xae, 0x74, 0x56, 0xbd,
-
  0xcc, 0xd8, 0x60, 0x1a, 0xb5, 0x26, 0x06, 0x05, 0xe5, 0x20, 0x7e, 0xb1,
-
  0xc6, 0xbb, 0x44, 0xa3, 0xc5, 0xcd, 0x36, 0xaf, 0x17, 0x3a, 0xba, 0x27,
-
  0xb1, 0xe9, 0xce, 0x16, 0x07, 0x11, 0x57, 0x3d, 0x6f, 0x08, 0x4a, 0x78,
-
  0x75, 0x19, 0xe1, 0x8a, 0x53, 0x9d, 0xd8, 0x1b, 0x4a, 0x20, 0x6a, 0x63,
-
  0x7d, 0x35, 0x46, 0xc3, 0x3a, 0xfa, 0x91, 0x54, 0x82, 0xe0, 0x56, 0x18,
-
  0x7a, 0x59, 0x19, 0xc4, 0x1a, 0x86, 0x15, 0xab, 0x58, 0x95, 0x10, 0xd2,
-
  0x49, 0x79, 0xac, 0x25, 0xdd, 0x26, 0x63, 0x44, 0x69, 0x72, 0xe7, 0xfa,
-
  0xe3, 0x46, 0x49, 0x04, 0xaf, 0x10, 0x29, 0xb4, 0xeb, 0xf0, 0xf1, 0x39,
-
  0x3b, 0xf7, 0xb3, 0xf3, 0x39, 0x8a, 0xd4, 0x34, 0xea, 0x90, 0xfe, 0x5a,
-
  0xb4, 0x7e, 0x0c, 0xad, 0xad, 0xad, 0x07, 0xb2, 0xb8, 0x28, 0x36, 0xd6,
-
  0x36, 0xd6, 0x8b, 0xf5, 0x8d, 0x67, 0xeb, 0x4f, 0x9e, 0xad, 0xad, 0x7d,
-
  0xbc, 0x32, 0x69, 0x78, 0xb9, 0xf3, 0x47, 0xde, 0xfe, 0x08, 0x7a, 0x54,
-
  0xc2, 0x58, 0x02, 0xc9, 0x9d, 0x76, 0x58, 0x11, 0xc5, 0x43, 0x35, 0x15,
-
  0x29, 0x2a, 0x2b, 0x97, 0x93, 0xb9, 0x02, 0x52, 0xb7, 0xa9, 0x6a, 0x49,
-
  0x8a, 0xd0, 0x5b, 0x68, 0x90, 0xc3, 0xbb, 0xf5, 0xee, 0x7d, 0x75, 0x46,
-
  0xf1, 0x32, 0x6e, 0x4b, 0x77, 0x1e, 0x96, 0x59, 0xdc, 0x5d, 0xdb, 0x3f,
-
  0x38, 0xb8, 0xeb, 0xc5, 0xed, 0x27, 0x95, 0x17, 0x43, 0x31, 0x9d, 0x9d,
-
  0x0a, 0xa9, 0xc7, 0x7c, 0x4a, 0x24, 0x45, 0xa9, 0x5c, 0xdb, 0x0a, 0x9f,
-
  0xf9, 0xe5, 0xe4, 0x05, 0xeb, 0xa6, 0x56, 0xc5, 0xe4, 0x3a, 0xbb, 0x8e,
-
  0xa8, 0xfb, 0x69, 0x11, 0x2b, 0x37, 0xc7, 0x62, 0xfc, 0xdf, 0x8d, 0x66,
-
  0x49, 0x6c, 0xcb, 0x4e, 0x52, 0x35, 0xc3, 0x4d, 0x53, 0x92, 0x31, 0x60,
-
  0x93, 0x54, 0x8b, 0x94, 0x04, 0x45, 0x85, 0x46, 0x2e, 0xe9, 0x86, 0x83,
-
  0xc6, 0x07, 0xf7, 0xd7, 0xc0, 0xeb, 0x59, 0x8e, 0xc6, 0xb3, 0xd1, 0xb1,
-
  0x70, 0x22, 0x4f, 0xac, 0xb5, 0x58, 0xcb, 0xa2, 0xa5, 0xce, 0x9a, 0x96,
-
  0x4c, 0x81, 0x11, 0x2c, 0xf4, 0xa0, 0x86, 0x21, 0xa2, 0xc2, 0x26, 0x2a,
-
  0x5c, 0x25, 0xca, 0x84, 0x2e, 0x4d, 0xe5, 0x00, 0x47, 0xee, 0x9d, 0x23,
-
  0x04, 0x5f, 0x82, 0xbc, 0xe8, 0x05, 0xa3, 0x93, 0xbd, 0xf0, 0x50, 0x3f,
-
  0x70, 0x50, 0x95, 0x27, 0xb3, 0xea, 0x5e, 0x25, 0x8e, 0x75, 0x1e, 0x24,
-
  0x54, 0x2b, 0xb0, 0xf0, 0xd4, 0x6c, 0x25, 0xe1, 0x21, 0xd9, 0x4c, 0x5b,
-
  0x07, 0x1b, 0x42, 0x3b, 0xad, 0xee, 0x85, 0x88, 0x41, 0xe3, 0xf2, 0x71,
-
  0x09, 0x12, 0x27, 0xa5, 0xad, 0x6a, 0x5b, 0xad, 0xc2, 0x44, 0x80, 0xcf,
-
  0x4a, 0xbd, 0x8e, 0xf5, 0xd6, 0x4f, 0x83, 0xe6, 0x6b, 0xdd, 0xea, 0x54,
-
  0x1d, 0xc6, 0x3a, 0x46, 0x65, 0xd8, 0xf2, 0xca, 0x01, 0x42, 0xd7, 0xb5,
-
  0xa9, 0x0d, 0x94, 0x4e, 0xd3, 0xc5, 0x50, 0xf6, 0x06, 0xe2, 0xd4, 0x78,
-
  0x78, 0xba, 0x02, 0xf5, 0xfa, 0x30, 0x23, 0xa3, 0x26, 0x02, 0x27, 0x69,
-
  0xdc, 0xf5, 0x54, 0x3c, 0xd2, 0x57, 0x74, 0xe8, 0x8f, 0x08, 0x56, 0x8f,
-
  0xb0, 0xa3, 0x89, 0x22, 0xea, 0xd0, 0xb9, 0xcf, 0x82, 0x46, 0x59, 0x67,
-
  0x9a, 0x9a, 0x96, 0x62, 0x6c, 0xaa, 0x30, 0xa1, 0x78, 0x53, 0xf6, 0xa1,
-
  0x94, 0x36, 0x04, 0xb8, 0xf5, 0x45, 0x8a, 0xb9, 0x28, 0x85, 0x4a, 0x26,
-
  0xd1, 0xff, 0xac, 0xfe, 0xcb, 0x5a, 0xf2, 0xb0, 0x67, 0x47, 0xe1, 0x90,
-
  0xb8, 0xbe, 0x8f, 0x26, 0xa5, 0xa8, 0xa3, 0x00, 0xb8, 0x53, 0x6a, 0x2b,
-
  0x2d, 0xe9, 0x0e, 0x3c, 0x57, 0x10, 0xf8, 0x14, 0x97, 0x3b, 0x88, 0x3d,
-
  0x67, 0x25, 0x2a, 0xe3, 0x0d, 0x46, 0x1a, 0xaf, 0xa7, 0x19, 0x9e, 0xb2,
-
  0x2d, 0xd6, 0xe3, 0x78, 0x22, 0xb0, 0xa8, 0x5e, 0x62, 0xe7, 0x64, 0x32,
-
  0x38, 0x05, 0xd2, 0x60, 0x38, 0x93, 0x9e, 0x38, 0x23, 0x66, 0x7c, 0x44,
-
  0x43, 0x07, 0xee, 0xa0, 0x5e, 0xec, 0xb2, 0x38, 0x1d, 0x23, 0x01, 0xac,
-
  0x5f, 0x95, 0x5e, 0x3a, 0x9a, 0x8b, 0x13, 0x4b, 0x4b, 0xb1, 0x01, 0x84,
-
  0x0b, 0xa4, 0xd8, 0x84, 0xa8, 0xe0, 0x3e, 0x3b, 0xae, 0xe4, 0x64, 0xc9,
-
  0x12, 0x2d, 0x64, 0x0a, 0x96, 0xd7, 0xc0, 0x05, 0x8a, 0xd5, 0xe1, 0x8f,
-
  0xd5, 0x81, 0x62, 0xfc, 0x4d, 0x8b, 0x67, 0x0e, 0x50, 0x07, 0xee, 0x78,
-
  0x40, 0xda, 0xd4, 0x61, 0xdf, 0x18, 0x20, 0x7d, 0xc6, 0x22, 0x59, 0x0b,
-
  0x3a, 0x56, 0xbb, 0xe8, 0x51, 0x10, 0x8a, 0xe5, 0x6e, 0x07, 0x28, 0x6e,
-
  0x7e, 0x9f, 0xe7, 0x26, 0xe0, 0x8c, 0x95, 0x5e, 0x6b, 0x02, 0xfe, 0x64,
-
  0x11, 0xb4, 0xe1, 0xab, 0xbd, 0x49, 0x00, 0xcd, 0x06, 0x70, 0x3b, 0xd7,
-
  0xf0, 0xfa, 0xbc, 0x6b, 0x18, 0xc7, 0xbe, 0xad, 0xcd, 0x9d, 0x97, 0xef,
-
  0xcd, 0x2f, 0x91, 0xf8, 0xa0, 0xb3, 0xdb, 0x03, 0x8f, 0x3c, 0xff, 0x61,
-
  0x7b, 0xbf, 0xb7, 0xf3, 0x7a, 0x37, 0x0b, 0xbc, 0xd1, 0xcf, 0x20, 0x70,
-
  0x04, 0xcd, 0x15, 0x32, 0xb9, 0xd6, 0x2e, 0x88, 0x01, 0x81, 0x64, 0x92,
-
  0x9e, 0x0d, 0xc1, 0xe2, 0xbb, 0x41, 0x45, 0xc7, 0x43, 0x7a, 0x24, 0x79,
-
  0x4e, 0xb8, 0x34, 0x06, 0x50, 0x3c, 0x88, 0xe5, 0x5b, 0x39, 0xd4, 0xb5,
-
  0xb6, 0xfe, 0xb1, 0x6e, 0x7f, 0x50, 0xf3, 0xd4, 0x79, 0x34, 0x80, 0xf4,
-
  0x73, 0x66, 0xd3, 0x1f, 0x5b, 0xdd, 0x1e, 0x48, 0x14, 0x0c, 0xe1, 0x6b,
-
  0x52, 0x46, 0x0c, 0xc0, 0xef, 0x26, 0xb7, 0x8e, 0x17, 0x9e, 0xfe, 0xdb,
-
  0x9b, 0x9d, 0xad, 0x8e, 0x44, 0xcb, 0x52, 0x32, 0xbf, 0x17, 0x64, 0xc2,
-
  0x18, 0x11, 0xb4, 0x9c, 0xd5, 0x7d, 0x84, 0x75, 0x80, 0x48, 0x2a, 0x17,
-
  0x52, 0x8a, 0x08, 0x6a, 0xbd, 0x94, 0x6e, 0x4b, 0x82, 0xf9, 0xed, 0x9d,
-
  0x30, 0xaf, 0xfc, 0x79, 0x61, 0xc7, 0x6b, 0xf1, 0xfb, 0xf5, 0x45, 0xdf,
-
  0xaf, 0xc7, 0xef, 0x37, 0x16, 0x7d, 0xbf, 0x11, 0xbf, 0xbf, 0xbf, 0xe8,
-
  0xfb, 0xfb, 0x59, 0x5d, 0x77, 0xdb, 0xdd, 0x2f, 0x5b, 0xd7, 0xdd, 0xbb,
-
  0xc1, 0xce, 0x7d, 0x4c, 0x02, 0x4a, 0x1e, 0xbe, 0x1f, 0xdd, 0x9f, 0x37,
-
  0x3a, 0x6d, 0xed, 0x8d, 0x6b, 0xdd, 0xb6, 0xd7, 0xf8, 0x6d, 0xbd, 0x9a,
-
  0x63, 0xee, 0x6b, 0x5d, 0x6b, 0x47, 0x5f, 0x6c, 0x3b, 0x19, 0x82, 0x9c,
-
  0x92, 0x48, 0x76, 0xfe, 0xce, 0xfa, 0x7d, 0xcb, 0x91, 0x29, 0x9e, 0x23,
-
  0xa0, 0x2f, 0x3b, 0x23, 0x3d, 0x15, 0xac, 0xcd, 0x07, 0x21, 0x4f, 0x86,
-
  0x81, 0xd0, 0x0d, 0xab, 0xdc, 0x54, 0xfd, 0x0d, 0x8d, 0xe8, 0x5e, 0x8b,
-
  0xcd, 0x72, 0x24, 0x0e, 0xc9, 0x1f, 0x41, 0xef, 0x3c, 0x49, 0xe8, 0x8b,
-
  0xd2, 0x88, 0xf5, 0xae, 0x8d, 0xd2, 0x46, 0xe3, 0xd0, 0x51, 0x61, 0xbb,
-
  0xac, 0x46, 0x84, 0x65, 0xf2, 0x04, 0xcd, 0xb2, 0xec, 0x83, 0x2c, 0xc6,
-
  0x23, 0x6b, 0x31, 0x1b, 0x97, 0x5b, 0x46, 0xed, 0x0a, 0x7f, 0xb3, 0xff,
-
  0xd2, 0x8c, 0x6f, 0xb6, 0x11, 0x14, 0x70, 0xea, 0xea, 0x5e, 0x50, 0x2c,
-
  0xea, 0x7b, 0x4c, 0x67, 0xd3, 0xc6, 0xcf, 0xa6, 0xe7, 0xc3, 0x6b, 0x90,
-
  0xae, 0xa2, 0x04, 0x57, 0xcc, 0x6f, 0x0d, 0x6f, 0x15, 0x58, 0xe1, 0x11,
-
  0xb3, 0x04, 0x42, 0x5f, 0x8f, 0xa8, 0xb1, 0x54, 0x70, 0xdb, 0xe1, 0x6a,
-
  0x1d, 0x9e, 0x84, 0x6f, 0xa9, 0xc5, 0x9e, 0x1f, 0x55, 0x7d, 0x8c, 0xfd,
-
  0x7e, 0xf7, 0x51, 0x77, 0x4d, 0x2c, 0x51, 0xd3, 0x08, 0x7b, 0xfd, 0x8d,
-
  0xc8, 0x17, 0xec, 0x45, 0x30, 0x56, 0x85, 0xe1, 0xda, 0x5b, 0x78, 0xc1,
-
  0x5b, 0x6b, 0x2c, 0x81, 0x2e, 0xa3, 0x4a, 0xb8, 0xb8, 0x66, 0xa5, 0xe2,
-
  0x0d, 0x93, 0x8b, 0x0c, 0x91, 0x34, 0xe6, 0x45, 0x45, 0xfb, 0xb3, 0x04,
-
  0x0c, 0xe5, 0x04, 0xf1, 0xc5, 0x32, 0xd3, 0xf3, 0x6e, 0xc2, 0x14, 0x0e,
-
  0x37, 0xb7, 0x7b, 0x87, 0xeb, 0x1b, 0x4f, 0x0e, 0xbf, 0xdb, 0x7a, 0x75,
-
  0xd8, 0xfb, 0x7e, 0x73, 0xe3, 0xe1, 0xa3, 0xdb, 0xdc, 0x10, 0xee, 0x23,
-
  0x8c, 0x77, 0x44, 0x9c, 0x5b, 0xdb, 0xc1, 0x02, 0x9a, 0xd3, 0x4a, 0x22,
-
  0x14, 0xc2, 0x80, 0xde, 0x55, 0xd9, 0x8d, 0x81, 0xdc, 0x12, 0x62, 0xbd,
-
  0x3e, 0xc7, 0xcf, 0xfc, 0x38, 0x54, 0x12, 0xd1, 0xdd, 0xcc, 0x3f, 0xa1,
-
  0xc5, 0xb6, 0xd8, 0x9a, 0x4d, 0x26, 0xac, 0xcf, 0xac, 0x76, 0x38, 0x91,
-
  0x81, 0xfc, 0x36, 0xc9, 0x60, 0x60, 0x48, 0x3d, 0xad, 0xde, 0xfe, 0x5e,
-
  0xab, 0xad, 0xc1, 0x83, 0xa1, 0xdd, 0x4e, 0xf8, 0xbf, 0x10, 0x0f, 0x4f,
-
  0xf1, 0x70, 0xed, 0xe1, 0x83, 0x55, 0x4f, 0xf0, 0x0d, 0xc3, 0x62, 0x1d,
-
  0x92, 0x66, 0x70, 0x45, 0x44, 0xa7, 0x9a, 0x64, 0x20, 0x1b, 0x84, 0xaa,
-
  0xc9, 0x67, 0xa3, 0x62, 0x65, 0x5b, 0xc1, 0x0c, 0xe6, 0xaa, 0x7d, 0xea,
-
  0x35, 0xc0, 0x53, 0xcd, 0x81, 0xe5, 0xd5, 0xca, 0x10, 0xc3, 0xad, 0xb5,
-
  0xba, 0x2d, 0xe4, 0x7b, 0x16, 0x6e, 0x87, 0x70, 0x9b, 0xbb, 0xdb, 0x6f,
-
  0x2e, 0xd4, 0x44, 0xa8, 0xd6, 0x26, 0xe6, 0x22, 0xb7, 0xf2, 0x12, 0x67,
-
  0x78, 0x76, 0x6c, 0xfc, 0xc0, 0x88, 0x32, 0xb4, 0xf0, 0xed, 0x6e, 0xe4,
-
  0xfd, 0xe9, 0xcc, 0xbe, 0x4c, 0x5c, 0x5b, 0xda, 0x09, 0xc6, 0x70, 0x2b,
-
  0xc5, 0x56, 0xb7, 0x2a, 0xa5, 0x28, 0xdf, 0xa5, 0xe7, 0x62, 0x58, 0x9a,
-
  0xa3, 0xa9, 0x22, 0x62, 0x45, 0x59, 0xec, 0x92, 0x41, 0xe8, 0xab, 0x8a,
-
  0x31, 0x97, 0xf1, 0x74, 0x5e, 0x05, 0xb1, 0xa0, 0xdf, 0x00, 0x2e, 0x35,
-
  0xb9, 0x2c, 0x19, 0x78, 0xd7, 0xd2, 0x40, 0xf4, 0x62, 0x89, 0xb4, 0x24,
-
  0x92, 0xca, 0xad, 0x40, 0xe5, 0x7c, 0x2b, 0x0a, 0xe1, 0xdf, 0x91, 0x2a,
-
  0xe3, 0xc0, 0xbf, 0x20, 0xab, 0xf0, 0x4e, 0x2e, 0x2e, 0xfb, 0xc9, 0x04,
-
  0xa4, 0x32, 0xcf, 0xef, 0xdc, 0x13, 0xbe, 0xfc, 0x7c, 0x2e, 0x1a, 0x9b,
-
  0xbb, 0x61, 0x10, 0x5e, 0x72, 0x32, 0xc9, 0xda, 0xe3, 0x76, 0x7c, 0xae,
-
  0xdd, 0x48, 0xb6, 0x23, 0x9e, 0x62, 0x32, 0xb0, 0x04, 0xaa, 0x62, 0xd1,
-
  0xee, 0xc4, 0x60, 0xe9, 0x08, 0xf8, 0x17, 0xb7, 0xc6, 0x4e, 0x87, 0x6d,
-
  0xf1, 0x97, 0x41, 0xfe, 0xfc, 0x4c, 0x9b, 0x62, 0x6d, 0xd8, 0xc6, 0x44,
-
  0x89, 0xa5, 0x19, 0x21, 0x0f, 0x91, 0x88, 0xd9, 0x8e, 0xa9, 0x48, 0x1e,
-
  0x66, 0xfc, 0x5e, 0x6e, 0x64, 0x4f, 0xa7, 0xb6, 0x72, 0xf6, 0xa5, 0xd4,
-
  0xa4, 0xb5, 0x20, 0x65, 0xc9, 0x2c, 0x15, 0xe7, 0x0b, 0x13, 0xa5, 0xa5,
-
  0xa0, 0x79, 0x22, 0xd9, 0x32, 0xaf, 0x35, 0xec, 0xf6, 0xd9, 0xe0, 0x14,
-
  0xd7, 0x68, 0x53, 0x73, 0xb2, 0x11, 0x2d, 0xae, 0xff, 0x92, 0xf9, 0x32,
-
  0x3f, 0xb6, 0x70, 0xef, 0xd6, 0x3f, 0x26, 0x0f, 0x86, 0x27, 0x3e, 0x47,
-
  0x10, 0xdf, 0x3c, 0x24, 0x50, 0x42, 0x91, 0x37, 0xcb, 0x87, 0xf3, 0x79,
-
  0xff, 0x37, 0x45, 0xed, 0xa9, 0xe4, 0x99, 0xee, 0xd9, 0xb7, 0x00, 0xc4,
-
  0xab, 0x3d, 0x1c, 0x93, 0x67, 0x68, 0xc1, 0x6a, 0x8b, 0xed, 0xff, 0x32,
-
  0x85, 0xd7, 0xf1, 0xeb, 0x84, 0x48, 0x0b, 0xb2, 0x89, 0xe9, 0xfe, 0x2d,
-
  0x7b, 0xcd, 0x4e, 0x84, 0x6a, 0x59, 0x92, 0x31, 0x05, 0x49, 0x76, 0xd6,
-
  0x48, 0x9a, 0x37, 0xd3, 0xb1, 0x95, 0xfe, 0x42, 0x10, 0x44, 0x71, 0x88,
-
  0x7b, 0xec, 0x30, 0x92, 0x86, 0x88, 0x10, 0x24, 0x8c, 0xe2, 0xa8, 0x3a,
-
  0x2b, 0xdf, 0xa1, 0x2c, 0x0a, 0x5f, 0x47, 0x4d, 0x81, 0x51, 0x1d, 0x44,
-
  0x55, 0xda, 0xc7, 0xf2, 0xe2, 0x63, 0x8d, 0xc4, 0xa7, 0xb0, 0x49, 0x93,
-
  0x12, 0x35, 0x3b, 0x25, 0x4c, 0xcd, 0xe4, 0x7a, 0x44, 0x46, 0xa4, 0x45,
-
  0x5e, 0x79, 0xd4, 0x4a, 0x57, 0x36, 0x33, 0x15, 0x73, 0xbe, 0x2c, 0xab,
-
  0x2e, 0xed, 0xe7, 0xa1, 0xbb, 0xee, 0xda, 0xad, 0x4f, 0x66, 0x53, 0x4b,
-
  0x00, 0xb9, 0x7c, 0xda, 0xfe, 0xae, 0xff, 0x5b, 0xed, 0xef, 0xfa, 0xbf,
-
  0xf5, 0xfe, 0xae, 0x7f, 0xa6, 0xfd, 0x5d, 0xff, 0xa4, 0xfd, 0x8d, 0x67,
-
  0x1e, 0x13, 0x69, 0xec, 0xf6, 0xc6, 0xa7, 0xed, 0xf6, 0xc6, 0xbf, 0xd5,
-
  0x6e, 0x6f, 0xfc, 0x5b, 0xef, 0xf6, 0xc6, 0x67, 0xda, 0xed, 0x8d, 0xcf,
-
  0xb7, 0xdb, 0xf7, 0x3f, 0x6d, 0xb7, 0xef, 0xff, 0xc1, 0xdd, 0xfe, 0x6f,
-
  0xb4, 0x76, 0xc5, 0x84, 0x27, 0x53, 0x9c, 0xbd, 0x6a, 0x65, 0x9a, 0x07,
-
  0x0c, 0xa7, 0x30, 0x1e, 0xd0, 0x9c, 0xde, 0x7a, 0x11, 0x16, 0x8a, 0x2d,
-
  0xec, 0xe7, 0xd9, 0xcd, 0xfb, 0x9f, 0xb2, 0x9b, 0x1b, 0xd7, 0xed, 0xe6,
-
  0xa4, 0xc3, 0x44, 0x28, 0x1f, 0x25, 0x17, 0x22, 0x3a, 0xe3, 0x4b, 0x71,
-
  0x4f, 0xc0, 0x9f, 0x0b, 0xc3, 0x9e, 0x2e, 0x4e, 0x67, 0x5b, 0xdf, 0x49,
-
  0xea, 0xbe, 0x29, 0xea, 0x46, 0xd8, 0x14, 0xcb, 0x0f, 0xd7, 0xb2, 0x9d,
-
  0x56, 0xdd, 0xd8, 0xca, 0x0b, 0x9b, 0x7f, 0x4a, 0xd3, 0xf3, 0x67, 0x23,
-
  0xeb, 0x40, 0x6b, 0x0e, 0xd3, 0xd8, 0xcc, 0x22, 0xb4, 0x66, 0xb8, 0x47,
-
  0x49, 0x77, 0x56, 0x38, 0x6e, 0xa4, 0xe6, 0x27, 0x83, 0xff, 0x4c, 0x85,
-
  0xf6, 0x92, 0x16, 0x3f, 0xb2, 0x05, 0x49, 0xd7, 0xb7, 0xcb, 0xca, 0xf7,
-
  0x55, 0x4c, 0xd6, 0xbe, 0x04, 0xbc, 0x68, 0x92, 0xba, 0xd0, 0x43, 0x32,
-
  0x23, 0x03, 0x00, 0x66, 0x28, 0x2f, 0x25, 0x0f, 0x14, 0x88, 0x13, 0x15,
-
  0x7c, 0x5b, 0x10, 0x99, 0x54, 0x2d, 0xd2, 0x7c, 0xcd, 0x3e, 0xe3, 0x8b,
-
  0x4f, 0xc7, 0x1e, 0x4c, 0xd4, 0x36, 0x4f, 0x3f, 0x48, 0x1c, 0x9f, 0x06,
-
  0x3a, 0x3f, 0x9e, 0x0c, 0xc2, 0x91, 0x78, 0x07, 0xbb, 0x1b, 0x32, 0xa7,
-
  0x93, 0x5a, 0xaf, 0x89, 0x43, 0x5d, 0xc3, 0x94, 0x89, 0x1c, 0x40, 0x18,
-
  0x4e, 0xad, 0x86, 0xd7, 0x69, 0xd1, 0x0d, 0xea, 0x79, 0x10, 0x60, 0x61,
-
  0x92, 0x73, 0xc9, 0x3a, 0xae, 0xf2, 0x96, 0x38, 0x03, 0x63, 0xf2, 0x83,
-
  0xe0, 0x78, 0xb6, 0xee, 0xb4, 0x62, 0xb2, 0x5e, 0xda, 0x80, 0xbf, 0x9f,
-
  0xbe, 0xee, 0x19, 0x1a, 0xf3, 0x07, 0x2f, 0xc6, 0x16, 0xcb, 0xf3, 0x58,
-
  0x0a, 0xee, 0x43, 0x19, 0x98, 0xc1, 0xbb, 0xc1, 0x74, 0x50, 0x89, 0x89,
-
  0x26, 0x48, 0xf5, 0x53, 0x51, 0x3f, 0xc3, 0xca, 0x9d, 0x9c, 0x18, 0xdc,
-
  0xb7, 0x60, 0x17, 0xd1, 0x01, 0x05, 0x6c, 0x4e, 0x84, 0xb8, 0x72, 0x39,
-
  0xc4, 0xdf, 0x9b, 0xac, 0x95, 0xa9, 0x71, 0xa8, 0x86, 0x37, 0xa9, 0xfa,
-
  0x52, 0x7a, 0xac, 0x8e, 0x66, 0x06, 0xa6, 0x23, 0x4e, 0x85, 0x42, 0x2d,
-
  0x33, 0x15, 0xc6, 0xb7, 0xa2, 0xbc, 0xa4, 0x39, 0x85, 0xf8, 0x33, 0x81,
-
  0x4d, 0x95, 0x28, 0x74, 0x3e, 0xd4, 0xe4, 0x6a, 0xd4, 0x79, 0x15, 0x3c,
-
  0x9a, 0x89, 0x27, 0x7b, 0x0e, 0xc7, 0xa7, 0xb5, 0x50, 0x1d, 0xeb, 0x0b,
-
  0xd6, 0xff, 0x25, 0xd9, 0x22, 0x4a, 0x4d, 0x5f, 0xac, 0x86, 0xac, 0xb4,
-
  0x1f, 0xa6, 0xf6, 0x91, 0x4c, 0x11, 0x51, 0x3d, 0xdc, 0x74, 0x20, 0x08,
-
  0x8a, 0x31, 0x7d, 0x28, 0xcd, 0x1f, 0x8a, 0x09, 0x44, 0x4e, 0x02, 0xb9,
-
  0x41, 0x0b, 0x5d, 0x76, 0xca, 0xfa, 0x78, 0x30, 0xc8, 0x9d, 0x3e, 0xf1,
-
  0xf3, 0xb6, 0xff, 0x2b, 0x91, 0x81, 0xed, 0xf8, 0xde, 0xa0, 0x5f, 0x47,
-
  0x1f, 0xb0, 0x7d, 0x98, 0x07, 0x13, 0xc4, 0x76, 0xfe, 0x7f, 0x3c, 0xa7,
-
  0x9e, 0x50, 0x9c, 0xe4, 0xcd, 0x64, 0x47, 0xf4, 0x40, 0x91, 0xf4, 0xea,
-
  0xc1, 0xf9, 0x60, 0x58, 0xb2, 0x30, 0x64, 0x8c, 0xfd, 0x87, 0x49, 0x31,
-
  0xa8, 0xe0, 0x70, 0xe6, 0x8e, 0x0d, 0x08, 0xfb, 0xac, 0x7a, 0x2f, 0x51,
-
  0x05, 0xb2, 0x24, 0x5e, 0xc7, 0x1e, 0xb1, 0xef, 0xca, 0xff, 0x37, 0x7b,
-
  0x5b, 0x3b, 0x3b, 0xf2, 0x90, 0xa5, 0xa8, 0x62, 0x61, 0x25, 0x2d, 0x41,
-
  0xeb, 0x6b, 0xd6, 0xe7, 0xa8, 0xeb, 0x68, 0x99, 0x49, 0x69, 0xd0, 0x8d,
-
  0x9c, 0xf5, 0x70, 0x34, 0x90, 0x4f, 0x5b, 0x4d, 0xc4, 0x33, 0x55, 0xca,
-
  0xf9, 0x98, 0x8d, 0xc2, 0xc8, 0x06, 0xa3, 0x40, 0xf7, 0x67, 0xb3, 0xf3,
-
  0x72, 0x54, 0xff, 0x0f, 0xa3, 0xf9, 0xfc, 0x39, 0x44, 0x6a, 0xe7, 0x4b,
-
  0xce, 0xcd, 0x8d, 0x40, 0xa7, 0x31, 0xc6, 0xe0, 0x77, 0x19, 0x95, 0x92,
-
  0x6e, 0x6e, 0xc9, 0x77, 0x92, 0x04, 0x9b, 0x79, 0x63, 0x87, 0x5b, 0x3b,
-
  0x78, 0x9e, 0xf3, 0xac, 0xa1, 0x79, 0x03, 0x47, 0x9e, 0xe6, 0xc6, 0x77,
-
  0x1a, 0x8c, 0x43, 0x38, 0x4e, 0xc3, 0x88, 0x0b, 0x83, 0xa1, 0x7c, 0x31,
-
  0xd3, 0xaa, 0x87, 0x0a, 0xb3, 0x23, 0x4c, 0xc4, 0x92, 0x70, 0x36, 0x15,
-
  0x18, 0xa7, 0x63, 0xb5, 0x5c, 0xfb, 0x85, 0x7b, 0xc0, 0x1c, 0x37, 0x27,
-
  0x48, 0x5e, 0x4c, 0x24, 0x97, 0xc0, 0x24, 0x71, 0x63, 0xc5, 0xf4, 0x35,
-
  0x0d, 0x57, 0x64, 0x4a, 0x52, 0xf9, 0x2e, 0x7c, 0x45, 0xa9, 0x07, 0x91,
-
  0x81, 0x61, 0x36, 0xbb, 0xa5, 0xe7, 0x46, 0x90, 0xa4, 0x80, 0x76, 0x4c,
-
  0x38, 0x0a, 0x25, 0x5a, 0x16, 0xe9, 0x33, 0xa7, 0x5a, 0x71, 0x37, 0xac,
-
  0xd4, 0x5d, 0x05, 0x04, 0xa9, 0x14, 0x38, 0x41, 0xb8, 0x5c, 0x4a, 0x6d,
-
  0x71, 0x44, 0x89, 0x9a, 0x96, 0x16, 0xda, 0x94, 0x39, 0xfa, 0x63, 0x02,
-
  0x9d, 0x1e, 0xc8, 0xc0, 0xbc, 0x77, 0xad, 0xc0, 0x92, 0x5b, 0x5c, 0xd0,
-
  0x16, 0x08, 0xa4, 0x15, 0x2b, 0x64, 0x95, 0xef, 0xc6, 0x83, 0xbe, 0x8a,
-
  0xc8, 0x09, 0xff, 0x96, 0xdc, 0xa7, 0xc8, 0xb9, 0xc1, 0x37, 0x4a, 0x56,
-
  0xae, 0x8c, 0xc1, 0x89, 0x9a, 0x50, 0x2f, 0xa1, 0x8e, 0x24, 0xf4, 0x43,
-
  0xbe, 0x80, 0x78, 0x47, 0x84, 0x3b, 0x7a, 0x82, 0x04, 0xe2, 0x21, 0x9a,
-
  0xa1, 0x8d, 0x5f, 0xec, 0xa0, 0x34, 0x89, 0x84, 0xd1, 0x38, 0x5e, 0x74,
-
  0x3e, 0x3f, 0x27, 0x52, 0x7f, 0xa0, 0xcc, 0xe0, 0x92, 0x3e, 0x1a, 0x3d,
-
  0x9f, 0x37, 0x1f, 0xd6, 0xaa, 0x8d, 0xa3, 0x71, 0x6f, 0xe3, 0x76, 0x71,
-
  0x14, 0xf7, 0x1b, 0x61, 0x14, 0x1f, 0x27, 0x76, 0xbf, 0x4d, 0xf7, 0x26,
-
  0x54, 0x93, 0xeb, 0x3c, 0xce, 0x91, 0x41, 0xac, 0xa9, 0xc3, 0x97, 0x5c,
-
  0x2f, 0xac, 0xd4, 0xa4, 0x16, 0xf8, 0x03, 0x64, 0x63, 0xea, 0x11, 0x50,
-
  0x2e, 0x68, 0x7d, 0x12, 0x76, 0x26, 0xc6, 0xd4, 0x6b, 0xfa, 0xc2, 0x17,
-
  0x17, 0x9a, 0x1a, 0xaa, 0x86, 0x51, 0xdc, 0xa2, 0xec, 0xec, 0xdf, 0xa3,
-
  0x68, 0x68, 0x7b, 0xb7, 0xe1, 0x70, 0xe8, 0x36, 0xe7, 0x76, 0x7a, 0xc2,
-
  0x6f, 0xb5, 0x95, 0x73, 0x60, 0x09, 0x0b, 0xb8, 0x5b, 0xbe, 0x95, 0x11,
-
  0x3b, 0xdd, 0xf7, 0xb2, 0x94, 0xe9, 0x22, 0x8d, 0x0f, 0x42, 0x8e, 0xed,
-
  0x98, 0x6e, 0x19, 0xd6, 0xd1, 0xef, 0xce, 0xb8, 0x5d, 0x09, 0x76, 0xfa,
-
  0x7f, 0xd5, 0xa6, 0xcd, 0xef, 0x99, 0x84, 0x84, 0x7f, 0x26, 0xed, 0x30,
-
  0x91, 0x10, 0x3f, 0xba, 0x6b, 0xec, 0xf8, 0x13, 0xb7, 0xed, 0x96, 0xdb,
-
  0x34, 0x1b, 0x0d, 0xde, 0x77, 0xb4, 0xcc, 0xe8, 0x73, 0x14, 0x0b, 0xf8,
-
  0x3a, 0x53, 0xde, 0xb7, 0xe4, 0x9c, 0x15, 0x56, 0x06, 0x52, 0xa3, 0x1a,
-
  0x92, 0x02, 0x05, 0x5e, 0xa1, 0xc0, 0x12, 0xd8, 0xc1, 0x9a, 0xa8, 0xc1,
-
  0xc7, 0xd4, 0x77, 0x95, 0x71, 0x54, 0x7b, 0x48, 0xbb, 0x5c, 0x78, 0xa5,
-
  0x37, 0xa3, 0x67, 0x22, 0x7a, 0xfa, 0x27, 0xdc, 0xe8, 0x69, 0x2f, 0xf2,
-
  0xab, 0x83, 0xe9, 0xdd, 0x6e, 0xc5, 0xca, 0xa3, 0x1a, 0x8b, 0x36, 0x4d,
-
  0x5b, 0xb1, 0x25, 0x3b, 0x80, 0x1e, 0x30, 0xbb, 0x00, 0xaa, 0x4f, 0x87,
-
  0x31, 0xc7, 0xa9, 0x38, 0xff, 0x86, 0x9f, 0x37, 0x02, 0xc3, 0x93, 0x82,
-
  0xc6, 0x9a, 0xb6, 0xa5, 0xe6, 0xa9, 0x37, 0xfb, 0x2f, 0x73, 0xbb, 0xd4,
-
  0xc4, 0x7c, 0xe5, 0x5a, 0xfe, 0x98, 0x51, 0xb3, 0x83, 0x66, 0xa0, 0x39,
-
  0xde, 0xd3, 0xe0, 0xf1, 0xf2, 0x42, 0x0e, 0x55, 0x22, 0xfd, 0xc4, 0xce,
-
  0x4c, 0xf8, 0x36, 0xe4, 0x25, 0xb5, 0xa3, 0x00, 0xd7, 0x2d, 0x0d, 0x23,
-
  0x8d, 0x45, 0x93, 0x99, 0x48, 0x58, 0xab, 0x81, 0xeb, 0xef, 0xe3, 0x99,
-
  0x04, 0xc4, 0x08, 0x1a, 0x1c, 0xce, 0xe7, 0x60, 0x88, 0xe3, 0x50, 0x0f,
-
  0x19, 0x83, 0x7f, 0x6f, 0xd5, 0x4d, 0x97, 0x94, 0xb8, 0x04, 0x2a, 0x61,
-
  0xac, 0x28, 0xd4, 0xcc, 0x98, 0x71, 0x83, 0x9c, 0x1a, 0x54, 0xcb, 0x69,
-
  0x52, 0x01, 0x19, 0x87, 0xc6, 0x55, 0x84, 0x70, 0x12, 0xc5, 0xa4, 0x13,
-
  0xe8, 0x6b, 0xf4, 0x56, 0x5d, 0x4f, 0x12, 0xf6, 0x19, 0x29, 0x20, 0xf6,
-
  0x60, 0x38, 0x0a, 0xc9, 0x5a, 0xa6, 0xda, 0xc6, 0xac, 0xae, 0xb2, 0xe8,
-
  0xde, 0x70, 0x52, 0xb4, 0x9e, 0x53, 0xac, 0xf5, 0x1c, 0x5f, 0x28, 0xad,
-
  0x10, 0x8b, 0xae, 0x91, 0xfc, 0xc3, 0x35, 0x4e, 0xd8, 0x8e, 0xe4, 0xd6,
-
  0xd4, 0x12, 0x92, 0x39, 0xd0, 0x08, 0x9f, 0x30, 0xf5, 0xea, 0x24, 0xd0,
-
  0x17, 0xa0, 0x86, 0x00, 0x6b, 0x35, 0xba, 0x4a, 0x57, 0x67, 0x22, 0x51,
-
  0xcd, 0xfa, 0xc9, 0x3f, 0x56, 0x93, 0xe4, 0x6b, 0xdd, 0xd3, 0x38, 0x06,
-
  0x8b, 0x5b, 0xb5, 0x0d, 0x6d, 0x74, 0x33, 0x11, 0xd0, 0x64, 0xed, 0x28,
-
  0x9e, 0x2c, 0x7e, 0x7e, 0x8e, 0x92, 0x20, 0x0c, 0x8b, 0x3e, 0x0e, 0x82,
-
  0x3b, 0xa0, 0x7d, 0x26, 0x69, 0xc1, 0xf2, 0xac, 0x23, 0xaa, 0x77, 0x2b,
-
  0x25, 0xeb, 0x61, 0x9e, 0x02, 0xfe, 0x2a, 0x8c, 0x4d, 0xea, 0x47, 0x60,
-
  0x9b, 0x83, 0x4e, 0x36, 0x18, 0x15, 0xd9, 0x51, 0x2e, 0xd3, 0xa4, 0x18,
-
  0xd1, 0x15, 0x37, 0x87, 0xcc, 0x3b, 0x99, 0x56, 0x08, 0x37, 0xc9, 0x5a,
-
  0x6f, 0x75, 0xd9, 0xb8, 0xb6, 0x2d, 0x88, 0xfa, 0xab, 0x02, 0xea, 0x64,
-
  0xb9, 0xe7, 0x91, 0x8c, 0xad, 0x17, 0x74, 0x83, 0x51, 0x79, 0xfc, 0x81,
-
  0x8f, 0x82, 0x39, 0x13, 0xcc, 0x86, 0x13, 0xbb, 0x1c, 0x0b, 0x0e, 0xb9,
-
  0x1c, 0x47, 0x03, 0x3c, 0x54, 0x32, 0x12, 0xa5, 0x04, 0x00, 0x2b, 0x5b,
-
  0xa4, 0xcd, 0x4f, 0xdb, 0x81, 0xe3, 0xb2, 0xa2, 0xaa, 0x74, 0x21, 0x48,
-
  0x5c, 0xd9, 0x91, 0x4b, 0x10, 0x01, 0xf3, 0xaa, 0x1e, 0x56, 0x60, 0x77,
-
  0x05, 0xe5, 0x35, 0x48, 0x0c, 0x24, 0x8b, 0xbd, 0x37, 0x07, 0xea, 0x71,
-
  0x5f, 0x1c, 0xc8, 0xf7, 0xf7, 0x66, 0x81, 0x51, 0x9a, 0x96, 0x73, 0x86,
-
  0x21, 0x30, 0xa1, 0xbc, 0xf4, 0x70, 0x16, 0xdd, 0x01, 0xa0, 0xf2, 0x98,
-
  0x39, 0x01, 0x80, 0x14, 0xb5, 0x8d, 0xa7, 0xf2, 0xb7, 0xff, 0x24, 0x6f,
-
  0x5d, 0x94, 0x83, 0x89, 0x2f, 0x26, 0xe1, 0xf7, 0x4a, 0x89, 0x06, 0x13,
-
  0x0e, 0x14, 0x6d, 0x1b, 0x58, 0x55, 0x4a, 0xf5, 0x5d, 0xe5, 0x8d, 0xea,
-
  0xea, 0xf7, 0xe0, 0x7e, 0x5e, 0x99, 0x47, 0x62, 0x72, 0x35, 0xea, 0xcf,
-
  0xfb, 0x34, 0xe1, 0xfe, 0x94, 0x0e, 0x90, 0x36, 0x3d, 0xd8, 0x12, 0xcf,
-
  0x25, 0xa7, 0x54, 0xf2, 0x99, 0xb4, 0xe7, 0x28, 0xd5, 0xe0, 0xd5, 0x5a,
-
  0x6b, 0xdd, 0x09, 0x49, 0x28, 0x51, 0x82, 0x01, 0x5d, 0x25, 0x31, 0x61,
-
  0xac, 0xb3, 0x82, 0x4f, 0x7d, 0x24, 0xc4, 0x6c, 0x48, 0xcc, 0xe2, 0x7a,
-
  0x5e, 0x12, 0x86, 0xc9, 0x83, 0x2d, 0x5d, 0xb2, 0x99, 0x31, 0xf1, 0xc7,
-
  0x5e, 0xc5, 0x54, 0xc7, 0x67, 0x92, 0xa0, 0xa1, 0x9b, 0x2e, 0x1a, 0x70,
-
  0x5a, 0x95, 0xc7, 0xe8, 0xe8, 0x48, 0x61, 0x74, 0x1e, 0xde, 0xdf, 0xd8,
-
  0x28, 0xc4, 0x5a, 0x22, 0xa5, 0xbb, 0x14, 0xbb, 0x00, 0x4d, 0x1b, 0x06,
-
  0x87, 0x2c, 0x4e, 0x04, 0xcc, 0x64, 0x7c, 0x9b, 0x9d, 0xc7, 0x34, 0xe1,
-
  0x3e, 0x5c, 0x8d, 0xc3, 0xe2, 0x68, 0xdc, 0xbf, 0x8a, 0x2d, 0x86, 0xed,
-
  0x9d, 0x80, 0x7f, 0x85, 0x43, 0xae, 0x38, 0x9e, 0x8c, 0x57, 0x40, 0x0f,
-
  0x0e, 0x73, 0x1d, 0x4b, 0xbd, 0x53, 0xda, 0x05, 0xac, 0x58, 0xf8, 0x6f,
-
  0xa2, 0x08, 0x63, 0x8c, 0xd1, 0x3f, 0x99, 0x4d, 0xc0, 0x42, 0x45, 0x8e,
-
  0x0f, 0xfc, 0x06, 0x69, 0x1f, 0x4d, 0xfa, 0xf2, 0x14, 0x8c, 0x3a, 0x5c,
-
  0x5d, 0x49, 0x06, 0x43, 0x3c, 0xf6, 0x58, 0x48, 0xe1, 0x0e, 0x08, 0xfb,
-
  0x47, 0x11, 0x08, 0x56, 0xc9, 0xc0, 0x1e, 0x88, 0x09, 0xc0, 0x70, 0x40,
-
  0xf3, 0xd0, 0x8d, 0xf0, 0xfd, 0x82, 0xcc, 0xdb, 0x9b, 0x83, 0x58, 0x0f,
-
  0xae, 0xcf, 0xcc, 0xc9, 0x1f, 0x6b, 0x0d, 0xce, 0x4f, 0x7f, 0x5e, 0xef,
-
  0xac, 0xaf, 0xad, 0xad, 0xfd, 0xd2, 0xbd, 0x18, 0x9d, 0xb6, 0x14, 0xe5,
-
  0x32, 0xfc, 0xec, 0x66, 0x99, 0xba, 0xf9, 0x3d, 0x9f, 0x4c, 0xbc, 0xf5,
-
  0x01, 0xbf, 0xd6, 0xdb, 0xf8, 0xb9, 0xf1, 0x5b, 0xeb, 0x16, 0x7d, 0xf2,
-
  0x35, 0xfd, 0xbd, 0x50, 0x9f, 0xb9, 0x9d, 0xbc, 0x70, 0x5a, 0x31, 0x7d,
-
  0x1b, 0x14, 0xd0, 0x66, 0x36, 0x91, 0xe1, 0x49, 0x43, 0xe4, 0x4a, 0x91,
-
  0xc4, 0x3a, 0xe8, 0xf7, 0x79, 0xf8, 0x61, 0x2a, 0xbc, 0xd7, 0x1f, 0xc2,
-
  0xd2, 0x93, 0xd2, 0x90, 0xde, 0x37, 0x9e, 0x88, 0xc5, 0x4c, 0x93, 0x7a,
-
  0x1b, 0xce, 0x2b, 0x33, 0xe0, 0x71, 0xb7, 0x88, 0x98, 0x24, 0xc0, 0x9a,
-
  0xc4, 0xd1, 0x13, 0xc0, 0xd6, 0x62, 0x25, 0x22, 0x6a, 0xb4, 0x30, 0x85,
-
  0x30, 0x83, 0x56, 0xd4, 0x87, 0x5a, 0x27, 0xfa, 0x49, 0xe8, 0x6d, 0xd5,
-
  0xd8, 0xc2, 0xe9, 0x0c, 0x4e, 0x85, 0xda, 0x62, 0xe4, 0x1c, 0xfb, 0xd5,
-
  0x6a, 0x4a, 0x00, 0xee, 0xae, 0xef, 0xfe, 0xca, 0xbc, 0x36, 0x96, 0x27,
-
  0x4e, 0x04, 0x06, 0x5c, 0x4d, 0xf4, 0x42, 0x3a, 0x52, 0x11, 0x91, 0x57,
-
  0x83, 0x01, 0xc6, 0xbd, 0xd8, 0xd9, 0x0a, 0x12, 0xd4, 0xb7, 0x07, 0x7b,
-
  0x0a, 0x02, 0xab, 0xe6, 0x4b, 0x20, 0xbe, 0xb6, 0x05, 0x47, 0x18, 0x68,
-
  0xbf, 0x38, 0xc7, 0xb0, 0x23, 0x14, 0x89, 0x1d, 0x41, 0x6f, 0x1b, 0x85,
-
  0x94, 0x70, 0xe8, 0x11, 0x63, 0xdb, 0xda, 0x10, 0xad, 0x53, 0x97, 0x03,
-
  0xa5, 0x6c, 0x39, 0xed, 0xb5, 0x54, 0x43, 0x82, 0xe5, 0x45, 0xe6, 0xc4,
-
  0xa9, 0x72, 0xc5, 0x5c, 0x59, 0xa6, 0x59, 0xa0, 0x22, 0xc8, 0x73, 0x1a,
-
  0x4c, 0x26, 0xd8, 0x89, 0x34, 0xce, 0x62, 0xb9, 0xa3, 0xe1, 0x4d, 0x18,
-
  0x17, 0x9b, 0x63, 0x58, 0x6d, 0x5f, 0x84, 0x7d, 0x29, 0xfa, 0x18, 0xf8,
-
  0xc2, 0x34, 0x29, 0x33, 0x63, 0x79, 0x85, 0x36, 0xe6, 0x36, 0xb1, 0xf9,
-
  0x18, 0x20, 0x3a, 0x1d, 0x77, 0xec, 0xdb, 0x04, 0x59, 0x21, 0x29, 0x10,
-
  0xe6, 0xc5, 0x2e, 0xc4, 0x32, 0xe3, 0x28, 0x19, 0x53, 0xc1, 0xfd, 0x13,
-
  0x30, 0x4d, 0x4b, 0x76, 0xe9, 0x27, 0x44, 0xa1, 0x40, 0x52, 0x59, 0xbe,
-
  0x66, 0xca, 0xe1, 0x3d, 0xd9, 0x51, 0x2c, 0xb8, 0x6d, 0xd5, 0x80, 0x9c,
-
  0xff, 0x9b, 0x45, 0x34, 0x07, 0x63, 0xf5, 0x54, 0x39, 0x11, 0xdb, 0xb2,
-
  0x54, 0x65, 0x1b, 0x06, 0x96, 0xc7, 0x6f, 0x01, 0xb2, 0x0c, 0xe1, 0x19,
-
  0xd9, 0x25, 0x00, 0xe4, 0xe6, 0xb7, 0x55, 0x5b, 0xef, 0xc1, 0x18, 0x44,
-
  0xc9, 0xf1, 0x8f, 0x98, 0xe4, 0x38, 0xe0, 0x04, 0x81, 0xca, 0x1b, 0xbe,
-
  0x21, 0xf0, 0x2c, 0xe0, 0x64, 0x2b, 0x64, 0x50, 0x96, 0x31, 0xda, 0x48,
-
  0x6f, 0x6f, 0x85, 0xcf, 0xcc, 0xc6, 0x07, 0xac, 0xfa, 0xa6, 0xb6, 0xf0,
-
  0x7a, 0xe4, 0x60, 0x49, 0x6d, 0x1c, 0x84, 0x70, 0xf0, 0xe5, 0x6c, 0x94,
-
  0xc4, 0x23, 0x05, 0xad, 0x38, 0x4d, 0x84, 0x65, 0x46, 0x51, 0x13, 0x2b,
-
  0x90, 0x62, 0x7a, 0x4c, 0x4c, 0xc0, 0xe0, 0xf3, 0xca, 0xcd, 0x55, 0x8c,
-
  0xc6, 0xe5, 0x75, 0x15, 0x16, 0xfb, 0xbc, 0x6b, 0xc7, 0x7d, 0x11, 0x86,
-
  0x41, 0x0a, 0x28, 0xf2, 0x49, 0x48, 0x06, 0x6c, 0xf1, 0x76, 0x08, 0x13,
-
  0x41, 0x23, 0xb5, 0x42, 0x14, 0x39, 0x92, 0x41, 0x68, 0xa2, 0x13, 0x18,
-
  0x54, 0xb8, 0xbf, 0x9e, 0x83, 0xc1, 0x98, 0xc6, 0x17, 0x16, 0x6b, 0x15,
-
  0xda, 0x3e, 0xb2, 0xe9, 0x06, 0xd5, 0x71, 0xa5, 0x29, 0xc9, 0x25, 0x8a,
-
  0xcf, 0x69, 0x3e, 0x91, 0x1c, 0xe5, 0x3f, 0xa9, 0x1e, 0x06, 0x11, 0xa4,
-
  0xed, 0xa5, 0xc7, 0x2a, 0x13, 0x38, 0x12, 0x35, 0xa3, 0x90, 0x6e, 0xa0,
-
  0xc7, 0x68, 0x0e, 0x4b, 0x7d, 0x35, 0x9a, 0x22, 0x96, 0xa1, 0x56, 0xb3,
-
  0x0d, 0x45, 0x71, 0xea, 0x28, 0xe5, 0x54, 0xcb, 0xb2, 0x9d, 0x18, 0x97,
-
  0x12, 0xd6, 0x89, 0xe1, 0xea, 0xfd, 0x27, 0xe6, 0xe7, 0x51, 0x15, 0xe1,
-
  0x65, 0x9e, 0xe5, 0x9c, 0xd1, 0x44, 0x14, 0xd5, 0x64, 0x0a, 0xbb, 0xf6,
-
  0xee, 0xfe, 0xe9, 0x6e, 0xb1, 0x72, 0x31, 0x9c, 0xd5, 0xab, 0x1a, 0x1f,
-
  0x3d, 0x61, 0x5a, 0x97, 0xb2, 0x53, 0x31, 0xaa, 0x7a, 0xec, 0x5a, 0xcc,
-
  0xd9, 0xad, 0x3b, 0x44, 0x77, 0x55, 0x7c, 0xcf, 0x14, 0x1e, 0x34, 0xce,
-
  0x4b, 0x4e, 0xa0, 0x9d, 0x3a, 0x89, 0xbd, 0x86, 0x11, 0x10, 0xd2, 0xa9,
-
  0xc9, 0x37, 0xbc, 0x0d, 0x40, 0xa4, 0xe7, 0x25, 0x2c, 0xfd, 0xe3, 0x51,
-
  0x43, 0x80, 0xc7, 0xda, 0x75, 0xb3, 0x8d, 0x31, 0x12, 0xbc, 0x0e, 0xf8,
-
  0x62, 0x5e, 0x56, 0xbc, 0x39, 0x91, 0x24, 0xb6, 0x8c, 0x1d, 0x04, 0xa8,
-
  0xc8, 0xc7, 0xf3, 0x49, 0xe2, 0x3b, 0x5f, 0xc9, 0x0a, 0x50, 0x5a, 0xd6,
-
  0xcb, 0xc4, 0xde, 0x0a, 0x47, 0xe2, 0xde, 0xc9, 0x78, 0x7c, 0x53, 0x6f,
-
  0x7f, 0xb9, 0xd5, 0xfd, 0x9f, 0xbc, 0xc4, 0x17, 0xa8, 0x0d, 0x7d, 0xc2,
-
  0x4b, 0xad, 0x3f, 0x71, 0x66, 0x77, 0x36, 0xd6, 0xc2, 0x70, 0x5a, 0xb7,
-
  0xc3, 0xf8, 0x7a, 0xd2, 0xac, 0x45, 0xd0, 0xa0, 0x37, 0x39, 0x3d, 0xa7,
-
  0x51, 0xf7, 0xff, 0x86, 0xba, 0x7f, 0xad, 0x46, 0x98, 0x04, 0x06, 0x5f,
-
  0x50, 0xef, 0x35, 0x31, 0x58, 0xfc, 0x4e, 0xd1, 0x60, 0x09, 0xbd, 0xa5,
-
  0x8b, 0xd0, 0x96, 0x42, 0xee, 0x3d, 0x49, 0xee, 0x0c, 0x3b, 0x2c, 0x82,
-
  0xb8, 0x69, 0x46, 0xd5, 0x88, 0xa5, 0x7c, 0xfb, 0x49, 0xc2, 0x44, 0xa9,
-
  0xfc, 0x50, 0x80, 0x6e, 0xa9, 0xe8, 0x93, 0xa2, 0x5b, 0xff, 0x1b, 0x11,
-
  0xbd, 0x5f, 0x6d, 0xb6, 0xba, 0xc5, 0x82, 0xf8, 0x4b, 0x62, 0xe4, 0x2b,
-
  0xda, 0x92, 0x39, 0xc4, 0x95, 0xcb, 0xab, 0x0d, 0x0c, 0xc2, 0x23, 0xd0,
-
  0x6a, 0x45, 0xa5, 0xc2, 0xc5, 0x13, 0x58, 0xe2, 0xfd, 0x8d, 0x42, 0x59,
-
  0x57, 0xbd, 0x20, 0x7e, 0xc8, 0x67, 0x7d, 0x1d, 0x7e, 0xc4, 0x62, 0xc4,
-
  0x73, 0x07, 0x30, 0x68, 0x5a, 0xc0, 0xbc, 0xbd, 0x1b, 0xcd, 0x38, 0xdf,
-
  0xcc, 0x23, 0x9d, 0xdf, 0xdb, 0xdf, 0xde, 0x7c, 0xf1, 0x6a, 0x7b, 0x71,
-
  0xb5, 0x82, 0x44, 0xe4, 0xf2, 0xd6, 0xb9, 0x73, 0x33, 0xdd, 0xb9, 0x49,
-
  0x90, 0xbe, 0xc2, 0xcf, 0x67, 0x16, 0xfe, 0xdb, 0x90, 0xc3, 0xec, 0xfa,
-
  0x8b, 0x61, 0xd8, 0xe2, 0x5f, 0x4c, 0xa2, 0xe4, 0xe5, 0x2a, 0xe0, 0x55,
-
  0xa9, 0x48, 0xe5, 0x69, 0x39, 0x91, 0x3c, 0x3a, 0xbb, 0x5b, 0xbc, 0xf6,
-
  0xba, 0x9a, 0xe0, 0xc8, 0xd3, 0xc9, 0xb1, 0x8e, 0x90, 0x7f, 0x2b, 0x1e,
-
  0x46, 0x39, 0xcc, 0x73, 0x5d, 0xe1, 0x04, 0xbd, 0x00, 0x10, 0x92, 0x0e,
-
  0x6a, 0x9a, 0x14, 0x05, 0x57, 0xbb, 0x4f, 0xe0, 0x51, 0xe7, 0x17, 0xd3,
-
  0x5a, 0x6b, 0x13, 0x26, 0xb1, 0xcc, 0xce, 0xa1, 0x7c, 0x06, 0xc4, 0x0d,
-
  0xd0, 0x07, 0x0c, 0xc2, 0xf8, 0x62, 0x18, 0x76, 0x44, 0xd2, 0x98, 0x62,
-
  0xb6, 0x6b, 0x10, 0x4c, 0xe8, 0x25, 0xa6, 0xf8, 0x67, 0x28, 0xbf, 0x70,
-
  0x92, 0x32, 0x33, 0xf8, 0xdc, 0x92, 0xd5, 0xdd, 0x58, 0xc0, 0x5b, 0x6b,
-
  0x28, 0x25, 0x50, 0x8a, 0x6c, 0x90, 0x31, 0x66, 0x3d, 0x4f, 0xf4, 0x90,
-
  0x3b, 0xc0, 0x97, 0x32, 0x1c, 0x81, 0xb6, 0x80, 0x0e, 0x27, 0x97, 0xb3,
-
  0x52, 0xa0, 0x89, 0x3b, 0x03, 0x81, 0xf0, 0xaf, 0xdb, 0x96, 0x07, 0xce,
-
  0xb5, 0x4c, 0xa4, 0x60, 0x73, 0xfe, 0x1b, 0xeb, 0x57, 0xdf, 0x33, 0x40,
-
  0x2b, 0x88, 0x96, 0x10, 0x64, 0x82, 0xa1, 0x80, 0x2e, 0x38, 0x34, 0x9e,
-
  0x21, 0x29, 0x56, 0x23, 0xda, 0x34, 0xc3, 0x74, 0x34, 0xdd, 0xb9, 0x48,
-
  0x7d, 0xa8, 0x69, 0x43, 0x32, 0xf5, 0x2b, 0xa0, 0x65, 0x88, 0x21, 0x89,
-
  0x99, 0xe8, 0xe1, 0x9c, 0x52, 0xda, 0x14, 0x72, 0xa9, 0x5d, 0x91, 0xa7,
-
  0x3a, 0x2b, 0xf3, 0x88, 0xde, 0x70, 0x22, 0x2d, 0x0b, 0xc2, 0x32, 0xf6,
-
  0xe0, 0xdd, 0x40, 0x16, 0x53, 0x36, 0xf0, 0x7c, 0x7c, 0x9e, 0x24, 0x77,
-
  0x1f, 0x0f, 0xab, 0x92, 0x30, 0x2e, 0xac, 0x7f, 0x10, 0xbd, 0xbf, 0x49,
-
  0xd2, 0xb0, 0x42, 0x6e, 0xb3, 0x88, 0x96, 0x89, 0x7e, 0x06, 0xf8, 0x93,
-
  0x62, 0x90, 0x52, 0x93, 0x50, 0x97, 0x3a, 0x09, 0x79, 0x54, 0x39, 0xa9,
-
  0x9a, 0x21, 0x8a, 0xdd, 0x09, 0x3b, 0xb8, 0x56, 0xb5, 0x13, 0x6d, 0x5b,
-
  0x44, 0xe6, 0xbf, 0x56, 0x93, 0xa3, 0x6a, 0x32, 0xae, 0x8b, 0x1f, 0x1e,
-
  0x16, 0x9e, 0x19, 0x6f, 0xf8, 0x93, 0xaa, 0x25, 0x58, 0x3e, 0x36, 0xd5,
-
  0x48, 0x19, 0x6c, 0x1a, 0xa6, 0x20, 0x46, 0x29, 0xc7, 0xac, 0x4c, 0xd4,
-
  0x04, 0xd3, 0xf4, 0x23, 0xbd, 0x87, 0x0f, 0x98, 0x7f, 0xed, 0x25, 0x44,
-
  0xb2, 0x4c, 0x72, 0x46, 0xa3, 0x1b, 0x92, 0x3c, 0x82, 0x3e, 0xc6, 0x47,
-
  0x74, 0x99, 0x97, 0xc9, 0x38, 0x0f, 0x08, 0xc3, 0x2d, 0x1e, 0xe5, 0x04,
-
  0x46, 0xac, 0xed, 0x1b, 0x33, 0xd2, 0xaa, 0x76, 0x48, 0xf7, 0x1f, 0x36,
-
  0x13, 0x2c, 0x62, 0x86, 0x3d, 0xec, 0x58, 0xa8, 0x6a, 0xb0, 0x68, 0x51,
-
  0x76, 0x0f, 0x5e, 0xbe, 0x6a, 0x37, 0x4f, 0x81, 0xdd, 0xe2, 0x89, 0xe9,
-
  0x56, 0x8f, 0x36, 0x15, 0x33, 0x9f, 0x4b, 0x9c, 0xac, 0xc5, 0x20, 0x4a,
-
  0xb0, 0x02, 0xd7, 0xa5, 0xed, 0xe5, 0xdb, 0xd4, 0x3a, 0xec, 0xf6, 0x35,
-
  0x37, 0xc1, 0xbb, 0x20, 0x00, 0xf2, 0x11, 0x84, 0x76, 0xda, 0x4e, 0x83,
-
  0x1a, 0x12, 0x0e, 0xb9, 0x16, 0xa5, 0x21, 0xff, 0x9c, 0x2f, 0x3c, 0x1c,
-
  0x3b, 0x92, 0x0d, 0xc0, 0xc9, 0xae, 0x06, 0x24, 0xeb, 0x17, 0x41, 0xf6,
-
  0xee, 0xbc, 0x44, 0x09, 0xbd, 0xe2, 0xe5, 0xf8, 0x34, 0x2c, 0xc5, 0x2e,
-
  0x67, 0x15, 0x9a, 0x7b, 0xb3, 0xb7, 0xab, 0x97, 0xdf, 0x1b, 0xa6, 0x86,
-
  0xed, 0x05, 0x01, 0xea, 0x78, 0x70, 0x01, 0x59, 0x0e, 0xcf, 0xac, 0x16,
-
  0x6a, 0xf6, 0xc0, 0x91, 0xe3, 0xbd, 0xa7, 0xfd, 0x87, 0xb9, 0x6c, 0xff,
-
  0xb4, 0xf9, 0x6a, 0xef, 0xe5, 0xf6, 0x3f, 0x24, 0xa7, 0x2c, 0x16, 0x3d,
-
  0x0a, 0xff, 0xfe, 0x25, 0xd5, 0xbb, 0x11, 0x0d, 0x08, 0x0f, 0x1f, 0xf4,
-
  0xbe, 0x06, 0x7b, 0x14, 0x83, 0xb4, 0x51, 0x4f, 0xaf, 0xb7, 0xb7, 0xd3,
-
  0x11, 0x4f, 0xb2, 0x82, 0xdb, 0x1c, 0x05, 0xfd, 0x20, 0x48, 0x04, 0x64,
-
  0x7c, 0xd5, 0x04, 0x23, 0x89, 0xc4, 0x20, 0x0d, 0xfd, 0xf0, 0xb0, 0x5d,
-
  0xec, 0x5a, 0x72, 0x68, 0x5b, 0x76, 0x8f, 0x8a, 0xce, 0x8b, 0xc1, 0x29,
-
  0x15, 0xf7, 0x46, 0x8e, 0xcd, 0xd4, 0x4d, 0x22, 0xdc, 0xd2, 0x69, 0x35,
-
  0x4c, 0xb1, 0x29, 0x18, 0xdf, 0x32, 0x14, 0x37, 0x49, 0xba, 0xfd, 0x29,
-
  0xe7, 0x95, 0xd3, 0x29, 0xe8, 0x08, 0x09, 0xfe, 0x99, 0x6b, 0x9b, 0xba,
-
  0x1d, 0x0a, 0xd5, 0x2f, 0xfb, 0xab, 0xdc, 0x55, 0x81, 0xf4, 0xdd, 0xcb,
-
  0xf5, 0x0c, 0x46, 0xdc, 0x59, 0xf1, 0xac, 0x65, 0xfe, 0x14, 0xae, 0xe4,
-
  0x17, 0xca, 0x81, 0xe2, 0x6a, 0x4f, 0x9e, 0x69, 0x18, 0xc9, 0x2d, 0x15,
-
  0x8f, 0x78, 0xcd, 0xe5, 0x9a, 0xc7, 0xa6, 0x5d, 0xc2, 0x9d, 0xf2, 0x14,
-
  0xb3, 0xcf, 0x72, 0xa0, 0xc4, 0xe1, 0xd4, 0x4b, 0xc8, 0x12, 0xb4, 0xd5,
-
  0xd9, 0xe4, 0x93, 0x2a, 0xa3, 0x7b, 0x28, 0x91, 0xb9, 0x35, 0x04, 0xba,
-
  0xd7, 0x42, 0x7c, 0x8d, 0xb6, 0x55, 0x7c, 0x3b, 0x1a, 0x96, 0xf0, 0x25,
-
  0x18, 0x4b, 0xd1, 0x36, 0xda, 0x28, 0xb0, 0x29, 0x15, 0xf6, 0x92, 0x4f,
-
  0xad, 0x78, 0x5d, 0xa2, 0xa1, 0xfe, 0x6b, 0x06, 0xbf, 0x02, 0x44, 0x76,
-
  0x03, 0x02, 0x53, 0x98, 0xd4, 0x54, 0x74, 0x8b, 0x15, 0x5d, 0xd1, 0x58,
-
  0xc7, 0x90, 0x54, 0x33, 0x56, 0x65, 0x99, 0xa0, 0xf6, 0x5d, 0x8e, 0x98,
-
  0xa5, 0x44, 0x8d, 0xdb, 0x8c, 0xe8, 0x78, 0xe1, 0x5e, 0xbf, 0x8a, 0x8a,
-
  0xcc, 0x74, 0x9c, 0x2f, 0xd9, 0x4a, 0xab, 0xb5, 0x2a, 0x50, 0x4f, 0x52,
-
  0x3d, 0xb1, 0x4e, 0x6c, 0x31, 0x3a, 0x3a, 0xc5, 0x00, 0x09, 0x5c, 0x86,
-
  0x34, 0x27, 0xea, 0x0e, 0x55, 0x90, 0xae, 0xf7, 0x76, 0xc1, 0x6a, 0x4b,
-
  0x81, 0xd4, 0xb8, 0x46, 0xf6, 0x6e, 0x3b, 0x29, 0x12, 0x80, 0x4a, 0xba,
-
  0x15, 0x51, 0x16, 0xa5, 0xec, 0xa8, 0x90, 0x24, 0xcb, 0x4c, 0x84, 0x41,
-
  0x14, 0xad, 0x55, 0xcf, 0x18, 0x8e, 0x78, 0x72, 0x6d, 0x23, 0x1b, 0x9e,
-
  0x67, 0x35, 0x6c, 0xde, 0x53, 0xb0, 0x83, 0xb6, 0xc3, 0xbc, 0x92, 0xf9,
-
  0x25, 0xbb, 0xfb, 0x2c, 0x9e, 0xa5, 0x7b, 0x06, 0xc9, 0xef, 0x94, 0xad,
-
  0xf3, 0x5e, 0x18, 0x6c, 0xf8, 0x59, 0x3c, 0x85, 0x9b, 0x45, 0x4b, 0x68,
-
  0x6c, 0x6d, 0xed, 0x71, 0xeb, 0x76, 0x14, 0xae, 0x2b, 0x9d, 0x20, 0xab,
-
  0xea, 0x47, 0xae, 0x62, 0x1b, 0xae, 0x61, 0xf1, 0xfc, 0xe7, 0x3b, 0xbf,
-
  0x50, 0x31, 0xc1, 0xfd, 0x7a, 0xef, 0x2f, 0x69, 0xe4, 0x1f, 0xa3, 0xf7,
-
  0x1d, 0x01, 0x51, 0x09, 0xb0, 0xc5, 0x87, 0xd5, 0xbe, 0xd3, 0x22, 0x1d,
-
  0xb5, 0x5c, 0x89, 0x6a, 0x15, 0x2b, 0x2a, 0x16, 0xd1, 0x6e, 0xd1, 0x8a,
-
  0x15, 0xec, 0x8e, 0xdc, 0xdb, 0x71, 0x22, 0xf3, 0x4f, 0xad, 0xee, 0x0a,
-
  0x9a, 0xd5, 0xea, 0xb4, 0x56, 0x57, 0x55, 0x0d, 0x8f, 0x40, 0xe4, 0x34,
-
  0xb3, 0x39, 0x96, 0x90, 0x86, 0x99, 0xc5, 0x90, 0x0a, 0xf5, 0xda, 0xd1,
-
  0x11, 0xa8, 0x09, 0x0c, 0xd4, 0xf0, 0xe1, 0xbd, 0x13, 0xe1, 0x27, 0xd0,
-
  0xda, 0xd4, 0x30, 0xef, 0x54, 0x01, 0x29, 0x81, 0xd3, 0x56, 0x6c, 0x76,
-
  0xfe, 0x4f, 0xf8, 0xb9, 0xd6, 0x79, 0x2a, 0x36, 0x24, 0xa6, 0xec, 0xd6,
-
  0xc7, 0xe3, 0x89, 0xc0, 0x1d, 0x65, 0x39, 0xc3, 0x66, 0xd0, 0x12, 0xcb,
-
  0x15, 0xb8, 0xed, 0x62, 0x03, 0xb6, 0xd4, 0xdb, 0xf5, 0xc1, 0xc5, 0xc0,
-
  0x1c, 0x11, 0xcb, 0x62, 0xcd, 0x76, 0x5f, 0x55, 0x11, 0x81, 0xa5, 0x82,
-
  0x0f, 0x50, 0x66, 0x15, 0xc5, 0x9d, 0x7a, 0xfa, 0x30, 0x76, 0x5c, 0x27,
-
  0x90, 0x7e, 0xe2, 0xb1, 0xbe, 0x4c, 0x85, 0x69, 0xb7, 0xb7, 0xd1, 0x23,
-
  0x16, 0x5b, 0xb7, 0x0b, 0x9e, 0xa7, 0xa9, 0x22, 0xd2, 0x8f, 0xc8, 0x50,
-
  0x92, 0xa0, 0x30, 0xaf, 0xa5, 0x7b, 0x42, 0x89, 0x26, 0x42, 0xc7, 0xba,
-
  0xa9, 0xbe, 0x25, 0x5a, 0xbc, 0xde, 0xfd, 0x50, 0xad, 0x4e, 0xa7, 0x7a,
-
  0x7f, 0x11, 0x5a, 0xe9, 0xb4, 0x32, 0xa0, 0xa1, 0xca, 0xdf, 0x10, 0x24,
-
  0xe9, 0xba, 0x68, 0x7d, 0xf8, 0x80, 0x8f, 0x7e, 0xfb, 0xad, 0x15, 0xe1,
-
  0x34, 0xb3, 0xa1, 0x42, 0x88, 0x67, 0x4d, 0x95, 0x05, 0x08, 0x9c, 0x56,
-
  0xdc, 0xc7, 0x1b, 0x96, 0xb3, 0xae, 0x4c, 0xf5, 0xf5, 0x85, 0x68, 0x91,
-
  0x2a, 0x19, 0x58, 0x8e, 0xa0, 0x3b, 0x4e, 0xe7, 0xdb, 0x2b, 0x14, 0x71,
-
  0x5a, 0xcb, 0x9e, 0x9b, 0x4d, 0xc7, 0x0a, 0xb3, 0x44, 0xa3, 0xa8, 0x9c,
-
  0x54, 0x83, 0xb7, 0xf2, 0xd7, 0x21, 0x98, 0x96, 0x62, 0xc5, 0xb5, 0x2c,
-
  0x89, 0x72, 0x08, 0x6f, 0xdf, 0xd5, 0x5c, 0x86, 0x6a, 0x32, 0xcb, 0x3b,
-
  0xb2, 0x26, 0xe7, 0x06, 0x5b, 0x55, 0xa5, 0x7b, 0x35, 0x84, 0x84, 0xc0,
-
  0xd3, 0xd4, 0x62, 0x48, 0x69, 0xf5, 0x7e, 0x60, 0x36, 0x22, 0x5b, 0x58,
-
  0x2d, 0xf0, 0xa3, 0x12, 0x17, 0x95, 0xee, 0xe4, 0xb2, 0x8e, 0x73, 0xf3,
-
  0x02, 0x32, 0x32, 0x24, 0x19, 0x0e, 0xee, 0x9e, 0xeb, 0x66, 0x69, 0x0c,
-
  0xe9, 0xc4, 0x8c, 0x65, 0x8b, 0x56, 0xcc, 0x5a, 0x0d, 0x8d, 0xb5, 0x63,
-
  0x4c, 0x4a, 0x32, 0x3d, 0x99, 0xdf, 0x57, 0x7e, 0x5a, 0x04, 0x21, 0xbb,
-
  0xf1, 0xf5, 0x5f, 0x62, 0x9c, 0xe7, 0x6e, 0x5e, 0x2a, 0x67, 0x3c, 0x92,
-
  0x42, 0x31, 0xae, 0x64, 0x75, 0x0a, 0x2e, 0x84, 0x4e, 0x65, 0x88, 0xff,
-
  0x17, 0xd3, 0x06, 0x74, 0x16, 0xe3, 0x36, 0xb9, 0x55, 0xbe, 0xdb, 0x34,
-
  0xab, 0x18, 0x74, 0x44, 0x60, 0xe3, 0xcf, 0xfc, 0x2a, 0x21, 0xce, 0x60,
-
  0x49, 0xa4, 0xd1, 0x62, 0x82, 0x02, 0xaf, 0xf1, 0x6e, 0xaa, 0x83, 0x4c,
-
  0x84, 0x58, 0x2d, 0x93, 0x84, 0xc4, 0x03, 0x8e, 0xe3, 0xdc, 0xfa, 0x99,
-
  0x66, 0xbc, 0x20, 0xdc, 0xf5, 0x7f, 0x69, 0xd9, 0x8d, 0x1f, 0x27, 0xab,
-
  0x12, 0x33, 0x19, 0x22, 0x1f, 0x14, 0x0d, 0xc7, 0xed, 0x90, 0x50, 0xb3,
-
  0xd8, 0xe1, 0xf8, 0xe4, 0x44, 0xb0, 0x88, 0xc7, 0xae, 0x7e, 0x78, 0xef,
-
  0x76, 0xb2, 0xc5, 0x3e, 0x13, 0xc5, 0xd4, 0xb2, 0x7e, 0xeb, 0x36, 0x41,
-
  0xd0, 0xa6, 0xb4, 0x11, 0x4e, 0xe3, 0x46, 0x67, 0x7d, 0xad, 0x55, 0x68,
-
  0x12, 0xaf, 0x7d, 0x3c, 0xbd, 0x1c, 0x0b, 0xbd, 0xdb, 0x63, 0xa1, 0x4d,
-
  0x0b, 0xd3, 0x45, 0x3c, 0xa8, 0x97, 0xa6, 0xaa, 0x61, 0x3b, 0x41, 0xfe,
-
  0xc9, 0xa8, 0x78, 0xaa, 0xb8, 0xab, 0x90, 0x4e, 0xc6, 0x53, 0xd4, 0x18,
-
  0x08, 0x6d, 0x6f, 0xb4, 0xb4, 0x65, 0xbf, 0x71, 0x39, 0x03, 0xc4, 0x28,
-
  0x48, 0xd3, 0xd2, 0xd0, 0x06, 0xab, 0x27, 0x65, 0x2e, 0x0a, 0xab, 0x70,
-
  0x3f, 0x9a, 0x9d, 0x1f, 0x69, 0xb9, 0x5d, 0x85, 0x78, 0x4c, 0xe3, 0x3f,
-
  0xa4, 0x8e, 0x12, 0x78, 0x9a, 0x95, 0x67, 0x16, 0x13, 0x26, 0x47, 0x1d,
-
  0xab, 0x20, 0x2a, 0x3a, 0x6d, 0x02, 0x96, 0xa8, 0x95, 0xbb, 0x4e, 0x48,
-
  0xe7, 0x9b, 0x5c, 0x1c, 0x51, 0xc8, 0x0c, 0x13, 0x8b, 0x9b, 0x6a, 0x18,
-
  0x89, 0x41, 0x85, 0xb1, 0x98, 0x08, 0x8b, 0x0f, 0x10, 0x3c, 0x5b, 0x31,
-
  0x28, 0x90, 0x69, 0xc4, 0x83, 0x99, 0xb1, 0x60, 0xca, 0x3f, 0xdd, 0x86,
-
  0xd6, 0xe0, 0x7a, 0x77, 0x02, 0x99, 0x06, 0x33, 0xeb, 0x59, 0xb8, 0x54,
-
  0x26, 0xe2, 0xb4, 0xc1, 0x52, 0xaa, 0x06, 0xdc, 0x8c, 0x58, 0x80, 0x91,
-
  0x78, 0x49, 0x0d, 0x86, 0xde, 0x6b, 0xeb, 0x04, 0x91, 0x12, 0x81, 0xf3,
-
  0xfe, 0x1c, 0x6e, 0xa8, 0xa7, 0xbf, 0xfc, 0xc5, 0x62, 0x18, 0x5a, 0x4a,
-
  0xcf, 0xdf, 0xf1, 0x75, 0x25, 0xd9, 0x74, 0x7a, 0x06, 0x56, 0x45, 0x3d,
-
  0x5c, 0x76, 0x54, 0x1d, 0x1c, 0x26, 0xbc, 0xa9, 0x48, 0xa9, 0xac, 0x33,
-
  0x59, 0xac, 0xb2, 0xb1, 0x4c, 0xd9, 0x32, 0x27, 0xd4, 0xa8, 0xcb, 0xa4,
-
  0x35, 0xe0, 0xeb, 0x2a, 0x9a, 0x8b, 0xdd, 0x30, 0xaf, 0x10, 0x99, 0xa5,
-
  0x72, 0xa9, 0xf7, 0x2c, 0x87, 0x17, 0xb5, 0xbb, 0x70, 0x71, 0x0e, 0x4e,
-
  0x47, 0xd9, 0x5d, 0xa5, 0x9a, 0x6a, 0x74, 0x1d, 0x71, 0xb5, 0xca, 0x91,
-
  0x9a, 0x30, 0xec, 0xb9, 0x76, 0xd2, 0xa3, 0xdf, 0x3c, 0x0e, 0xd3, 0x5c,
-
  0xbc, 0xb4, 0x3a, 0x8e, 0xba, 0x37, 0xda, 0x93, 0xd0, 0x20, 0x30, 0xf4,
-
  0x1a, 0xfd, 0x59, 0xa4, 0xa9, 0x76, 0x2a, 0xe7, 0x2e, 0x9c, 0x16, 0xf6,
-
  0x9a, 0x6e, 0x4c, 0xa3, 0xa7, 0xa2, 0x05, 0xe1, 0xef, 0xab, 0x0f, 0x1f,
-
  0xb8, 0xdb, 0x72, 0xad, 0x15, 0x1f, 0x3e, 0x40, 0xc8, 0xd3, 0x3b, 0x2e,
-
  0x55, 0xc2, 0xe5, 0x65, 0x0c, 0xc2, 0x59, 0x96, 0x19, 0x8c, 0x62, 0x98,
-
  0x43, 0x69, 0xee, 0xfa, 0xe2, 0x64, 0x36, 0x3a, 0x56, 0x04, 0xb5, 0x18,
-
  0xef, 0x0f, 0x36, 0xa5, 0x40, 0x69, 0xd5, 0x3c, 0x71, 0x4a, 0x48, 0x2f,
-
  0x1d, 0x42, 0xa3, 0x81, 0x0a, 0xe6, 0x08, 0x33, 0x62, 0xc0, 0x07, 0x78,
-
  0x16, 0xdc, 0x23, 0xca, 0x2e, 0xb4, 0x75, 0x91, 0xc1, 0xe2, 0x7a, 0x70,
-
  0x90, 0xb5, 0x02, 0xa1, 0x23, 0x96, 0x59, 0x3c, 0xb6, 0xa2, 0xe5, 0xe9,
-
  0x9d, 0x3e, 0x92, 0xd0, 0xec, 0xb8, 0xe1, 0xfd, 0xaa, 0x46, 0xf1, 0xce,
-
  0x64, 0xc8, 0x89, 0xfd, 0x3f, 0x89, 0xe8, 0x66, 0x40, 0xb7, 0xd3, 0x55,
-
  0x85, 0xdb, 0xa6, 0x74, 0xe0, 0x17, 0x11, 0x49, 0xaa, 0x93, 0x69, 0x67,
-
  0x3a, 0xee, 0x88, 0xc7, 0x81, 0x26, 0x95, 0x6e, 0xf1, 0x43, 0x63, 0x9e,
-
  0xc5, 0x59, 0x90, 0x8a, 0x30, 0xb0, 0x11, 0x3c, 0x9e, 0x0a, 0x0c, 0x1d,
-
  0xd7, 0x08, 0x2c, 0x15, 0x2c, 0xc2, 0x2a, 0x9e, 0x5d, 0xc6, 0xc5, 0x07,
-
  0x86, 0xa0, 0x1a, 0x9e, 0xed, 0x1a, 0xf5, 0xab, 0x21, 0x46, 0x8c, 0xdb,
-
  0x2c, 0xcc, 0x6f, 0x13, 0x0e, 0x0a, 0xe4, 0xeb, 0x25, 0x53, 0x66, 0x70,
-
  0x09, 0x0d, 0x35, 0xa4, 0x87, 0x4b, 0x62, 0x41, 0x67, 0x97, 0x67, 0x80,
-
  0x57, 0x52, 0x91, 0x24, 0xbc, 0xe0, 0xa2, 0x3c, 0x8b, 0x24, 0xb8, 0x3f,
-
  0x40, 0xa9, 0xc8, 0x9d, 0x64, 0xdd, 0xdc, 0x74, 0xfc, 0xe1, 0x43, 0xf8,
-
  0xe6, 0x19, 0x3a, 0xfd, 0xed, 0x37, 0x1d, 0xc1, 0x3f, 0xeb, 0xf1, 0x08,
-
  0x8d, 0x18, 0x0c, 0x6b, 0x7a, 0x0c, 0xe5, 0xc4, 0xfc, 0x67, 0xef, 0xf5,
-
  0xae, 0x69, 0x89, 0xd0, 0x09, 0xf1, 0x7b, 0x32, 0x1b, 0x12, 0xb9, 0xe7,
-
  0x63, 0x03, 0xe1, 0x11, 0xfd, 0xf0, 0x01, 0xbf, 0x9e, 0xa1, 0xa7, 0x40,
-
  0xc4, 0xd7, 0x6b, 0x18, 0x88, 0x35, 0x0b, 0xad, 0xc4, 0x0c, 0x16, 0x1b,
-
  0x07, 0x7c, 0x00, 0x2b, 0x17, 0x55, 0xb8, 0x26, 0x47, 0xd3, 0xd5, 0x22,
-
  0x71, 0x47, 0xdd, 0x76, 0x19, 0x9e, 0x35, 0x97, 0x01, 0xa1, 0x90, 0xcf,
-
  0xc2, 0xd7, 0xbe, 0x0c, 0x47, 0x8f, 0x1e, 0xa0, 0x0d, 0x79, 0xb1, 0x21,
-
  0x39, 0x69, 0x9d, 0x3b, 0xed, 0xf7, 0x8f, 0x74, 0x1b, 0x9a, 0x7c, 0x16,
-
  0x7a, 0xf2, 0x5e, 0x1b, 0xf2, 0xe9, 0x67, 0x40, 0x7a, 0xef, 0x64, 0x92,
-
  0xff, 0x57, 0xf5, 0xb9, 0x38, 0x1c, 0x92, 0x91, 0xb5, 0x64, 0x68, 0x52,
-
  0x5d, 0xa3, 0x39, 0xc0, 0x9c, 0xb7, 0xdc, 0x10, 0xc5, 0x9e, 0x1b, 0x36,
-
  0xde, 0xb5, 0x63, 0x68, 0xad, 0xbc, 0xfa, 0x2a, 0x72, 0x70, 0x0b, 0x67,
-
  0xee, 0xcf, 0x26, 0x0e, 0x82, 0xe5, 0x31, 0x97, 0x4c, 0xf2, 0x46, 0xe6,
-
  0x8d, 0x78, 0xff, 0x8f, 0x66, 0xa7, 0xa7, 0x96, 0xe8, 0x65, 0x72, 0x6e,
-
  0x25, 0xf4, 0x5f, 0x4e, 0xef, 0x22, 0x56, 0x8b, 0x89, 0x5f, 0x10, 0xe4,
-
  0xa8, 0x4f, 0x59, 0x81, 0xbf, 0x71, 0x9f, 0x79, 0x1e, 0x52, 0x56, 0xd5,
-
  0xcb, 0x70, 0x8a, 0x02, 0xa1, 0xfa, 0xa6, 0xc8, 0x15, 0xaa, 0xba, 0x2a,
-
  0x12, 0x29, 0x8d, 0xce, 0x57, 0x1c, 0x66, 0xe0, 0x97, 0xcf, 0x4d, 0xaa,
-
  0x49, 0x1f, 0x92, 0x9c, 0xd9, 0x34, 0x30, 0x22, 0x06, 0x73, 0x82, 0xd5,
-
  0x9c, 0x0d, 0xc2, 0x22, 0x8d, 0x24, 0x58, 0x6f, 0x72, 0x0e, 0xa5, 0x1c,
-
  0x12, 0xa2, 0xa6, 0xe4, 0x96, 0x3a, 0xa4, 0xc6, 0x88, 0xfe, 0x23, 0x1d,
-
  0x91, 0x65, 0x75, 0x84, 0x57, 0x91, 0xad, 0x16, 0xb5, 0x7c, 0x1d, 0x58,
-
  0xc3, 0x4e, 0x22, 0x61, 0x92, 0xcc, 0x81, 0x17, 0xeb, 0x8f, 0x85, 0x5d,
-
  0xb9, 0x99, 0x47, 0x4e, 0xf2, 0x5c, 0x1d, 0x94, 0x22, 0x71, 0x2b, 0x27,
-
  0x35, 0x6f, 0x3c, 0xcd, 0x8b, 0x0c, 0x1e, 0x08, 0x66, 0xa4, 0x9e, 0x86,
-
  0x91, 0x46, 0x8a, 0xc7, 0x3b, 0x2a, 0x1a, 0x42, 0xe0, 0x46, 0x78, 0xc0,
-
  0x8b, 0x81, 0x9b, 0x1a, 0x37, 0x47, 0xba, 0x62, 0x63, 0x8a, 0x08, 0xdc,
-
  0x66, 0xd8, 0x09, 0x0d, 0xa2, 0x50, 0xa7, 0x17, 0xa8, 0x1e, 0xd2, 0xce,
-
  0xea, 0xe1, 0x19, 0x1a, 0x0d, 0x6f, 0x75, 0x74, 0xbe, 0x1f, 0x5f, 0xa2,
-
  0xe1, 0x76, 0xf4, 0x27, 0x88, 0xaf, 0xa0, 0x9d, 0x58, 0x83, 0x63, 0x6a,
-
  0x05, 0x53, 0x59, 0x46, 0xe3, 0x98, 0xea, 0x88, 0x32, 0x91, 0x52, 0xc1,
-
  0x14, 0xa6, 0x67, 0x5d, 0x70, 0x6b, 0x28, 0x29, 0x92, 0xda, 0xea, 0xbc,
-
  0x7b, 0xd7, 0x12, 0x75, 0x59, 0x4d, 0x5e, 0xb2, 0x47, 0xdc, 0x6d, 0x7c,
-
  0x19, 0x48, 0xbd, 0x25, 0x37, 0x4c, 0xd0, 0xff, 0xc2, 0x25, 0x23, 0x37,
-
  0xa1, 0xc5, 0xb9, 0xf8, 0x48, 0xde, 0x19, 0x2c, 0x0c, 0xa3, 0x6a, 0xe0,
-
  0x43, 0xc7, 0x86, 0x81, 0x88, 0x64, 0x48, 0x00, 0x14, 0xf5, 0x7a, 0xc1,
-
  0x09, 0x2e, 0x99, 0xd1, 0x05, 0xd7, 0x36, 0x86, 0xfd, 0xa5, 0x87, 0x3f,
-
  0x62, 0x98, 0x6b, 0x3e, 0x0a, 0xa3, 0x0c, 0xf3, 0x62, 0xa7, 0xb4, 0x8f,
-
  0x4d, 0x2f, 0x07, 0xac, 0x1b, 0xc4, 0x82, 0x9f, 0x32, 0xb3, 0x76, 0xe1,
-
  0x68, 0xdb, 0x8a, 0xef, 0xbe, 0x92, 0x86, 0xd8, 0xaf, 0xa6, 0x51, 0x93,
-
  0xe6, 0xbc, 0xc5, 0xf0, 0xe3, 0x63, 0xe1, 0xbf, 0x55, 0x6e, 0x42, 0x71,
-
  0x59, 0x21, 0x67, 0x09, 0xb2, 0xa0, 0x66, 0x31, 0xe1, 0x01, 0x76, 0x2e,
-
  0x62, 0xb1, 0x59, 0x88, 0x2d, 0xe6, 0xa7, 0x8e, 0x8d, 0xe8, 0xc0, 0xed,
-
  0x9b, 0xd5, 0x44, 0x85, 0x12, 0x39, 0x2a, 0x50, 0xd4, 0xa4, 0xdf, 0x4c,
-
  0x21, 0xac, 0xe3, 0x98, 0xec, 0x5e, 0x58, 0xc9, 0x73, 0x02, 0x8a, 0x3b,
-
  0xab, 0xd1, 0x40, 0x90, 0x64, 0x57, 0xf9, 0xc8, 0x24, 0xfc, 0x47, 0x28,
-
  0x3d, 0xcb, 0xfa, 0x2a, 0x8a, 0xe6, 0xe8, 0xbc, 0x94, 0x6c, 0xbf, 0x4d,
-
  0x93, 0x49, 0xbb, 0xae, 0x93, 0x81, 0x72, 0x92, 0xcc, 0xa7, 0x95, 0x65,
-
  0x04, 0x4d, 0xd5, 0x59, 0x4f, 0xec, 0x48, 0xd2, 0xba, 0x3c, 0xc3, 0x31,
-
  0xcb, 0xea, 0x5a, 0x5a, 0xd0, 0xa9, 0x3d, 0x1a, 0x3b, 0x1a, 0x5d, 0xc5,
-
  0xac, 0x2f, 0x95, 0x7a, 0x9d, 0xc8, 0x85, 0x6a, 0xca, 0x93, 0xa9, 0x59,
-
  0xa9, 0xb2, 0x4a, 0x53, 0x4d, 0xb6, 0xc1, 0xc0, 0xf2, 0xfc, 0xac, 0x46,
-
  0xa8, 0x31, 0x1a, 0x5f, 0xed, 0x39, 0x8f, 0xb6, 0xd6, 0x60, 0xac, 0xb6,
-
  0xcb, 0xb0, 0x2c, 0xc5, 0xa8, 0x52, 0x81, 0x67, 0x41, 0x27, 0x79, 0x63,
-
  0xba, 0x0d, 0x0e, 0x8e, 0xff, 0x5a, 0x5c, 0x83, 0x1a, 0x63, 0x69, 0x19,
-
  0xaa, 0x8c, 0xb6, 0xc4, 0x16, 0xd1, 0x89, 0xda, 0x58, 0x01, 0x4f, 0x6d,
-
  0x4b, 0x63, 0xfe, 0x8f, 0xb3, 0xbd, 0x0a, 0xc3, 0x34, 0x6b, 0x55, 0x7d,
-
  0x26, 0x16, 0xf1, 0xea, 0x7f, 0x12, 0x50, 0xbf, 0x70, 0x11, 0x3b, 0x5b,
-
  0xce, 0x4f, 0xa8, 0xa8, 0x79, 0x53, 0xfe, 0x4f, 0x4c, 0xc3, 0xb9, 0x49,
-
  0x94, 0xd1, 0x3e, 0x3f, 0x3d, 0x11, 0x75, 0x01, 0xec, 0x96, 0xe7, 0x00,
-
  0x35, 0x92, 0xdd, 0xe7, 0xeb, 0xc6, 0x27, 0x97, 0x66, 0xdb, 0xab, 0x2e,
-
  0xb6, 0x1b, 0x79, 0x44, 0x59, 0x13, 0x22, 0x04, 0xfd, 0xa0, 0x42, 0x50,
-
  0x2c, 0xee, 0xf0, 0x42, 0x53, 0xb5, 0xd2, 0x34, 0x74, 0xad, 0x6e, 0x20,
-
  0xa4, 0xa8, 0x86, 0x4c, 0xc3, 0x18, 0x73, 0x20, 0x63, 0x86, 0x82, 0xd5,
-
  0x79, 0xad, 0x6e, 0x2a, 0xfd, 0xbc, 0x01, 0x1c, 0x75, 0x45, 0xab, 0x82,
-
  0x41, 0x55, 0xb1, 0x57, 0x0d, 0xbe, 0xa7, 0x1d, 0x31, 0x21, 0x23, 0x53,
-
  0x17, 0x55, 0xf7, 0x3e, 0x80, 0xe3, 0x82, 0x3c, 0x72, 0xa5, 0x40, 0x3b,
-
  0x38, 0x09, 0xa1, 0xdd, 0xb7, 0xd1, 0xc8, 0x8c, 0x00, 0xb3, 0xea, 0x78,
-
  0x36, 0x4d, 0x2b, 0x13, 0x71, 0xa9, 0xd9, 0x3d, 0xdc, 0xc0, 0x76, 0x30,
-
  0x58, 0xfe, 0x58, 0xf3, 0x3d, 0x81, 0xd9, 0xe2, 0x2d, 0x46, 0x3c, 0x6f,
-
  0xda, 0x53, 0x08, 0x9d, 0xe6, 0xf1, 0xf8, 0x86, 0x9f, 0x76, 0x6e, 0x05,
-
  0x43, 0xa4, 0x21, 0x22, 0xf8, 0x28, 0xf8, 0x8f, 0x06, 0xe1, 0x8a, 0x4a,
-
  0x98, 0x98, 0x03, 0x3a, 0xb0, 0x05, 0x25, 0xb6, 0x9b, 0xce, 0xec, 0xa2,
-
  0xc0, 0x87, 0xea, 0x80, 0xb4, 0xd8, 0x5d, 0xcc, 0x6f, 0x70, 0x3c, 0x83,
-
  0xdb, 0xdf, 0x70, 0x64, 0x62, 0x7e, 0x85, 0x79, 0xd2, 0xbd, 0x6c, 0xcc,
-
  0xe8, 0x5d, 0xa3, 0x7e, 0xd3, 0xce, 0x49, 0x03, 0x61, 0x45, 0x86, 0x2a,
-
  0xe6, 0xa0, 0xb9, 0xa1, 0x0e, 0x61, 0x13, 0x60, 0x7b, 0xea, 0x8a, 0x41,
-
  0x3d, 0x92, 0xc4, 0xec, 0x68, 0x5a, 0xa3, 0x0e, 0x52, 0x23, 0x9c, 0xbc,
-
  0x14, 0xd8, 0xa4, 0x12, 0xa5, 0x57, 0xd7, 0x7f, 0xc0, 0xb2, 0x21, 0x40,
-
  0x33, 0x3d, 0xab, 0x48, 0x04, 0xba, 0xfc, 0x33, 0x94, 0x38, 0x51, 0x0f,
-
  0x7e, 0x2c, 0xad, 0xe3, 0x68, 0xbd, 0x32, 0xf1, 0xf9, 0xb9, 0xae, 0x38,
-
  0x7c, 0xa2, 0x86, 0x3e, 0x6f, 0x05, 0x6d, 0xea, 0xb0, 0xd7, 0x7b, 0x79,
-
  0xf8, 0xcd, 0xe6, 0xd6, 0x5f, 0xb7, 0x77, 0x5f, 0xb4, 0x16, 0xdb, 0x78,
-
  0x57, 0x0b, 0x0f, 0xe6, 0xb3, 0xd1, 0x99, 0x77, 0xde, 0xaa, 0xa1, 0xf9,
-
  0x18, 0x3d, 0x06, 0xd9, 0x42, 0x36, 0xb0, 0xdd, 0x7d, 0x03, 0xd9, 0x27,
-
  0x8b, 0x68, 0xbd, 0x02, 0xe3, 0x08, 0xdd, 0xb6, 0xc4, 0x0a, 0x51, 0x26,
-
  0xb8, 0xf4, 0x92, 0x5c, 0x90, 0x52, 0xbb, 0xda, 0xf2, 0x84, 0xde, 0x56,
-
  0xb2, 0x60, 0xc6, 0xd6, 0x7e, 0x05, 0x34, 0xc2, 0xaa, 0xf3, 0x22, 0xe8,
-
  0xf7, 0xcf, 0x5a, 0xab, 0x19, 0xe2, 0xc1, 0x44, 0xbe, 0xf3, 0x40, 0x91,
-
  0xac, 0x51, 0x91, 0x2a, 0xb2, 0x26, 0xa5, 0xc5, 0x3d, 0x13, 0x51, 0xd0,
-
  0x9c, 0xb4, 0x86, 0x9b, 0x3b, 0x4a, 0x2e, 0x89, 0x05, 0xc0, 0x0e, 0xd5,
-
  0xa4, 0x52, 0x13, 0xbb, 0x53, 0x73, 0x76, 0x5a, 0xc7, 0xc8, 0x52, 0x58,
-
  0x38, 0xfc, 0x6f, 0x65, 0xb6, 0x49, 0x5f, 0xb1, 0xc4, 0xb8, 0xae, 0x44,
-
  0x7d, 0x6d, 0x57, 0x63, 0x56, 0x4c, 0x4b, 0x0d, 0x0a, 0xfa, 0x86, 0xf1,
-
  0x04, 0xb3, 0x2b, 0x94, 0xc3, 0x69, 0xa7, 0x7e, 0x77, 0xcc, 0xb2, 0x63,
-
  0x7a, 0xd8, 0xcc, 0xc3, 0xb0, 0x19, 0xbe, 0xea, 0xbd, 0x3b, 0x7e, 0x66,
-
  0x5a, 0x4e, 0xe2, 0x58, 0x74, 0xb1, 0xa3, 0xbe, 0x1a, 0x1d, 0x9f, 0xbd,
-
  0xd8, 0xed, 0xe1, 0x7d, 0x1e, 0x7c, 0x0e, 0x44, 0x7c, 0x9a, 0x25, 0xbf,
-
  0x0c, 0xf4, 0x02, 0x81, 0x59, 0x3c, 0x25, 0x61, 0x00, 0xe3, 0x21, 0xa0,
-
  0x7c, 0xf5, 0x4d, 0xfd, 0xb2, 0x90, 0xc2, 0x3b, 0x4b, 0xf6, 0xb5, 0xe9,
-
  0xb8, 0x02, 0x37, 0x25, 0x62, 0x84, 0x3a, 0x54, 0x24, 0xaa, 0xbb, 0x53,
-
  0x62, 0x2a, 0x56, 0xe8, 0x63, 0x7a, 0x06, 0xf1, 0x0b, 0x36, 0x1c, 0x6b,
-
  0x61, 0x12, 0x31, 0xa1, 0x4c, 0x6d, 0x0f, 0x7b, 0x34, 0x1c, 0x34, 0xa7,
-
  0x19, 0xeb, 0xdf, 0xca, 0xf7, 0x0e, 0xbc, 0x44, 0x31, 0x0a, 0xed, 0x68,
-
  0x66, 0x93, 0x35, 0xb3, 0x15, 0xee, 0xdb, 0xad, 0xf1, 0xe8, 0x9d, 0xdb,
-
  0xe3, 0x80, 0x58, 0x96, 0x21, 0xe9, 0x3a, 0xcf, 0x22, 0xef, 0xf0, 0x3c,
-
  0x33, 0xf5, 0xee, 0x48, 0xa0, 0x74, 0x2d, 0x4a, 0xc5, 0xd2, 0x0a, 0x19,
-
  0xc2, 0xf6, 0x37, 0x5b, 0x2f, 0x76, 0xb6, 0x56, 0xb5, 0x87, 0x17, 0x50,
-
  0x6d, 0x17, 0x2c, 0x67, 0x19, 0xf7, 0x59, 0xba, 0x93, 0xde, 0xf8, 0xb8,
-
  0x2a, 0x11, 0x22, 0xc7, 0xd6, 0x56, 0x65, 0x60, 0x89, 0xb6, 0x25, 0x5e,
-
  0x40, 0x6f, 0xcd, 0x4c, 0x14, 0x54, 0x86, 0x73, 0xe4, 0x05, 0x26, 0x0a,
-
  0x74, 0x35, 0x3d, 0x56, 0x2b, 0x32, 0x1a, 0xef, 0xf4, 0xa1, 0x5e, 0x41,
-
  0xeb, 0xc6, 0x00, 0x21, 0x8b, 0xf9, 0xd5, 0xbb, 0xf5, 0x3d, 0x2d, 0x1a,
-
  0x5b, 0xdf, 0xfb, 0x14, 0x49, 0x11, 0x2c, 0xb2, 0x6b, 0x0f, 0x9d, 0xd6,
-
  0x65, 0x3d, 0x94, 0xd1, 0x57, 0xba, 0x2e, 0x1d, 0xf0, 0xa9, 0xde, 0x26,
-
  0xb0, 0x83, 0xe7, 0xc2, 0x45, 0xe2, 0x05, 0xe5, 0x81, 0xca, 0x94, 0x8e,
-
  0xc7, 0xb0, 0xee, 0x68, 0x27, 0xbd, 0xad, 0xfd, 0xcd, 0x57, 0x81, 0x1a,
-
  0x68, 0x33, 0xf3, 0x35, 0xc0, 0xba, 0x27, 0xeb, 0x10, 0x3e, 0x66, 0xd7,
-
  0x36, 0x8e, 0xef, 0x7a, 0xbd, 0xce, 0xe6, 0xde, 0x0e, 0x46, 0xa2, 0x7f,
-
  0x12, 0x33, 0xc5, 0xd2, 0xa4, 0xec, 0xb1, 0xef, 0x7b, 0x07, 0x24, 0x5d,
-
  0xfc, 0xbe, 0x61, 0x56, 0x20, 0x02, 0x62, 0xe1, 0x13, 0xb1, 0x6c, 0xc3,
-
  0x9f, 0xf4, 0xe2, 0x56, 0x36, 0xd1, 0xf4, 0x85, 0xfb, 0xfe, 0xc2, 0xfd,
-
  0xdb, 0xbd, 0xd0, 0x13, 0x0f, 0x79, 0xbe, 0xf7, 0x8b, 0xd0, 0x44, 0xf9,
-
  0xb0, 0xd4, 0x3e, 0xf5, 0x7b, 0xe8, 0xc5, 0x6e, 0xfe, 0x9e, 0xdf, 0x47,
-
  0xe1, 0x9b, 0x70, 0xed, 0x69, 0x05, 0x2c, 0x35, 0x1f, 0x24, 0x61, 0x4c,
-
  0x31, 0xba, 0x62, 0xef, 0xdd, 0x23, 0x34, 0x61, 0x79, 0x79, 0x58, 0x6c,
-
  0x7c, 0x16, 0xfd, 0xc9, 0xf6, 0xa4, 0x47, 0x08, 0x85, 0xa7, 0xd3, 0x10,
-
  0xb7, 0xc6, 0xe6, 0x2e, 0x5a, 0xef, 0x97, 0x30, 0xe3, 0x6b, 0x69, 0xba,
-
  0x45, 0x83, 0x75, 0x24, 0x38, 0x48, 0x27, 0xb4, 0xf9, 0x8b, 0xd6, 0xda,
-
  0xd6, 0x14, 0x39, 0x75, 0x03, 0xa8, 0x07, 0x7d, 0x69, 0xe3, 0xbb, 0x6f,
-
  0xac, 0xe5, 0x40, 0x00, 0xbf, 0xa2, 0xd1, 0x4d, 0x3f, 0xd1, 0x28, 0xe1,
-
  0x91, 0x9c, 0xe6, 0x62, 0xe5, 0xdd, 0x20, 0x9c, 0xa1, 0xd3, 0x5f, 0x07,
-
  0x17, 0x6d, 0xde, 0xa9, 0xf0, 0x3c, 0xaf, 0x8a, 0xfe, 0x15, 0x81, 0xc2,
-
  0x42, 0x0b, 0xd2, 0x93, 0x1f, 0xfe, 0x85, 0xf3, 0xb0, 0x3b, 0xea, 0x9a,
-
  0x69, 0xb8, 0xec, 0x9b, 0xa1, 0xd3, 0x99, 0xe6, 0x71, 0xf0, 0xf2, 0x15,
-
  0xde, 0x63, 0x28, 0xd5, 0x2d, 0xd6, 0x0c, 0xcf, 0x1d, 0xfe, 0xf8, 0x8d,
-
  0xbf, 0xd2, 0xaf, 0x50, 0x44, 0xcf, 0xec, 0xe6, 0x61, 0x7b, 0x46, 0x47,
-
  0x83, 0x70, 0xb2, 0xcf, 0xaa, 0xe1, 0x85, 0xa2, 0x09, 0xc7, 0x26, 0xd4,
-
  0xb8, 0xa0, 0xcc, 0x3f, 0xb4, 0x80, 0x63, 0x23, 0x26, 0x64, 0x0d, 0xb4,
-
  0x12, 0x22, 0x83, 0xe1, 0xee, 0x49, 0xac, 0x0c, 0xb1, 0x27, 0x33, 0x0b,
-
  0xbf, 0x38, 0xa2, 0x33, 0x67, 0x67, 0x7b, 0x52, 0x44, 0xa6, 0x37, 0x0b,
-
  0xfa, 0xcf, 0xfb, 0xe2, 0x25, 0x63, 0x1c, 0x98, 0xc5, 0x17, 0x8d, 0x1f,
-
  0xa2, 0x38, 0x4a, 0x3a, 0xf0, 0x52, 0x4e, 0xef, 0x42, 0x4a, 0xb1, 0xc2,
-
  0x9f, 0x08, 0xb8, 0x2d, 0xab, 0x4c, 0xc3, 0x46, 0xab, 0xda, 0x7d, 0xf2,
-
  0xbd, 0xbd, 0xdd, 0xed, 0xef, 0x5e, 0x93, 0x65, 0xf3, 0xaf, 0xdb, 0x2c,
-
  0x96, 0xee, 0x09, 0x90, 0xca, 0x1d, 0xa7, 0x92, 0x5b, 0x0c, 0x69, 0x85,
-
  0x57, 0x4d, 0x72, 0x59, 0x4b, 0x88, 0xaf, 0x35, 0xd1, 0x8e, 0xc5, 0x95,
-
  0xf5, 0xe0, 0xf6, 0x98, 0x7e, 0xd5, 0x93, 0x6c, 0xab, 0x9e, 0x94, 0xcb,
-
  0x1d, 0x17, 0x51, 0xf8, 0x0b, 0xbd, 0xf4, 0x3a, 0xdb, 0x3f, 0xed, 0xbd,
-
  0xde, 0x3f, 0x70, 0x42, 0xa0, 0x40, 0x93, 0xf8, 0x52, 0x04, 0x58, 0x51,
-
  0x48, 0xb0, 0x7a, 0x8f, 0x0f, 0xef, 0x89, 0xd3, 0x9d, 0x72, 0xf7, 0xdb,
-
  0x04, 0x43, 0x3c, 0xb4, 0x30, 0x57, 0x21, 0x45, 0xbb, 0x11, 0x46, 0x86,
-
  0xdf, 0x0b, 0x27, 0xad, 0xf0, 0xeb, 0x7c, 0x66, 0x7f, 0xaf, 0x58, 0xe9,
-
  0xa1, 0x14, 0x4d, 0x55, 0xec, 0x4b, 0xbe, 0x37, 0xcb, 0xa1, 0x22, 0xb2,
-
  0x6e, 0x75, 0x9e, 0xfd, 0x26, 0x8d, 0x69, 0x3a, 0xc9, 0x52, 0x52, 0xe1,
-
  0xea, 0x00, 0x37, 0xc7, 0x2b, 0x5e, 0x18, 0x68, 0x9b, 0x57, 0x8d, 0x5d,
-
  0x20, 0x7e, 0xab, 0x2c, 0x1a, 0xd0, 0x9b, 0xd1, 0x00, 0x16, 0x70, 0x56,
-
  0x07, 0x91, 0x3f, 0x9d, 0x77, 0x85, 0x6e, 0x35, 0x1e, 0x31, 0x79, 0xf8,
-
  0x7d, 0x8f, 0xc0, 0x01, 0xb5, 0xbe, 0xf0, 0x5e, 0x71, 0x08, 0xea, 0x9c,
-
  0x25, 0xe7, 0xa2, 0xc7, 0xaf, 0xf5, 0xb4, 0x9f, 0x1f, 0xf8, 0x45, 0xe7,
-
  0x1d, 0x4f, 0xc9, 0x21, 0x4f, 0x20, 0x15, 0x95, 0x99, 0xf0, 0x8c, 0xeb,
-
  0x56, 0x2f, 0x9c, 0xc6, 0xb5, 0xca, 0x26, 0x15, 0xb7, 0x05, 0xc1, 0x4e,
-
  0xc3, 0x0b, 0x55, 0xfa, 0xce, 0xcb, 0xd1, 0xac, 0x8c, 0xf5, 0xa3, 0xdf,
-
  0x0d, 0xcb, 0x51, 0x60, 0xee, 0x83, 0x31, 0x0b, 0x04, 0x3d, 0xb7, 0xbf,
-
  0x2c, 0xa0, 0x6f, 0x13, 0xf9, 0x44, 0x88, 0x72, 0xfa, 0xe1, 0xe5, 0xe6,
-
  0x6e, 0xe1, 0xcf, 0x01, 0x4a, 0x95, 0x65, 0x6f, 0x68, 0xde, 0xdb, 0xd9,
-
  0xde, 0xde, 0x2e, 0x9e, 0xac, 0x6d, 0x74, 0xd7, 0xff, 0x96, 0x69, 0x5a,
-
  0x41, 0x41, 0x1f, 0xf6, 0xad, 0xa2, 0x4d, 0x98, 0xf7, 0x36, 0xc4, 0x24,
-
  0x94, 0xba, 0xa5, 0x9d, 0xb4, 0x1d, 0x13, 0xe6, 0xa5, 0x38, 0x80, 0x29,
-
  0x0e, 0xa5, 0x64, 0xf7, 0x5b, 0xf9, 0x0f, 0x81, 0x9d, 0x48, 0x04, 0x53,
-
  0xd6, 0xf4, 0x50, 0x2f, 0x2c, 0xcf, 0x7e, 0x1c, 0x35, 0x79, 0xcc, 0x1a,
-
  0x99, 0xcf, 0x63, 0x8d, 0x3f, 0xcb, 0x27, 0xf8, 0xc5, 0x60, 0xe6, 0xf3,
-
  0x6e, 0x1e, 0xdc, 0x0e, 0x8b, 0xe5, 0x69, 0xc3, 0x21, 0x31, 0xb8, 0xe8,
-
  0x4c, 0xc7, 0x5e, 0x4c, 0xe2, 0x12, 0xba, 0x38, 0x0d, 0x77, 0xc8, 0xe3,
-
  0x2b, 0x9e, 0x8b, 0xfa, 0xfd, 0x75, 0xf4, 0x4d, 0x58, 0xa0, 0x9e, 0x55,
-
  0xf0, 0xcd, 0x54, 0x74, 0x49, 0xf2, 0xd4, 0x8c, 0x11, 0xb5, 0xb0, 0x41,
-
  0x52, 0xf3, 0xd8, 0xc2, 0x86, 0x91, 0xb4, 0xab, 0x42, 0x3f, 0xde, 0x97,
-
  0xa8, 0x32, 0x0b, 0xd7, 0x24, 0xde, 0x79, 0xa2, 0x2f, 0x87, 0xbe, 0x62,
-
  0xee, 0x09, 0x82, 0x9c, 0x92, 0xb8, 0x2b, 0x1a, 0xa7, 0x35, 0x7c, 0x21,
-
  0x50, 0xb6, 0x7b, 0x72, 0xbb, 0x45, 0xda, 0xbc, 0x09, 0xd1, 0x89, 0x1d,
-
  0x27, 0xd1, 0xa5, 0x86, 0x61, 0xc6, 0xd8, 0x91, 0x96, 0x0c, 0xa0, 0xc5,
-
  0xd4, 0x4c, 0x0b, 0x42, 0x21, 0x88, 0x9d, 0xaa, 0x14, 0x0a, 0xd2, 0xa1,
-
  0x8d, 0xa6, 0xa1, 0xf3, 0xc9, 0x88, 0x5a, 0x31, 0x2a, 0x40, 0xc4, 0x4c,
-
  0x58, 0xe7, 0x60, 0xf7, 0x55, 0xac, 0x0a, 0x45, 0x84, 0x9b, 0x6f, 0x89,
-
  0xb1, 0x78, 0x31, 0x98, 0x92, 0x1b, 0x11, 0x5a, 0xeb, 0xb4, 0x72, 0x5a,
-
  0xb4, 0xe8, 0x1a, 0x95, 0xcb, 0x1a, 0x1e, 0x0c, 0x6b, 0xb2, 0xa4, 0x5f,
-
  0xe2, 0xa8, 0x9e, 0x0e, 0xa6, 0x33, 0x53, 0x9e, 0x5d, 0x9d, 0x15, 0x32,
-
  0xa3, 0x3e, 0x8f, 0x35, 0x4d, 0xd0, 0x72, 0x1c, 0x4b, 0xe3, 0x64, 0x30,
-
  0x15, 0x93, 0xb5, 0x22, 0x03, 0x1e, 0xd1, 0x99, 0x13, 0xa4, 0xe1, 0x4b,
-
  0xd4, 0x71, 0x33, 0x3b, 0x75, 0x1c, 0x0d, 0xfb, 0x4b, 0x17, 0xf7, 0xce,
-
  0x07, 0xfb, 0xf2, 0x90, 0xfe, 0x31, 0xab, 0xfb, 0xa7, 0xc3, 0x2c, 0x0b,
-
  0x75, 0xfd, 0x48, 0x43, 0x77, 0x38, 0xe5, 0x7f, 0x22, 0x60, 0x50, 0xe6,
-
  0x1d, 0xc6, 0x7a, 0xce, 0x66, 0xee, 0x74, 0x1d, 0x1e, 0xc1, 0x5f, 0x1d,
-
  0x55, 0x97, 0xd4, 0x12, 0x63, 0xce, 0xd3, 0x3f, 0xbc, 0x9e, 0x1e, 0x8c,
-
  0x82, 0xa1, 0xdf, 0x53, 0x26, 0x39, 0xa0, 0x88, 0x39, 0x37, 0xe5, 0x1f,
-
  0x13, 0x75, 0x2d, 0x4d, 0xcb, 0x23, 0x8d, 0x47, 0x95, 0xcf, 0x33, 0x0d,
-
  0x54, 0x3b, 0x60, 0xa1, 0x9c, 0x58, 0x76, 0x5c, 0x73, 0x62, 0x15, 0xb8,
-
  0x30, 0x34, 0x53, 0x4e, 0xfa, 0xd1, 0x61, 0x74, 0xa4, 0x48, 0x67, 0x9e,
-
  0x91, 0x15, 0xd4, 0x9c, 0xc0, 0x28, 0xd4, 0x2c, 0x74, 0xe7, 0x83, 0x20,
-
  0x16, 0xca, 0xf4, 0xef, 0xc8, 0x4b, 0x1f, 0x7e, 0xf3, 0xd4, 0x15, 0x4d,
-
  0x97, 0x95, 0x88, 0x64, 0x77, 0x3a, 0x59, 0xf5, 0x54, 0x00, 0x07, 0x8d,
-
  0xa5, 0xd2, 0xdf, 0x31, 0xed, 0x0c, 0x5e, 0xb4, 0x14, 0x33, 0x4f, 0x63,
-
  0x25, 0xee, 0xc8, 0xbb, 0xe2, 0x8a, 0xb4, 0x34, 0x18, 0xcd, 0x8d, 0x50,
-
  0x93, 0x17, 0x63, 0xb0, 0xd2, 0x20, 0x2c, 0x7b, 0x40, 0xdd, 0x47, 0x59,
-
  0x3c, 0xf0, 0x4a, 0x96, 0x53, 0x10, 0x3d, 0xea, 0x12, 0x78, 0xb0, 0x6a,
-
  0xc1, 0x98, 0xfa, 0x74, 0x12, 0x1f, 0xe2, 0x21, 0x5f, 0x81, 0x0f, 0x11,
-
  0xb6, 0xa0, 0xb4, 0x22, 0x84, 0x22, 0x46, 0x1a, 0x18, 0x02, 0x99, 0x6c,
-
  0xdb, 0xf4, 0x44, 0xf3, 0xde, 0xeb, 0x81, 0xd1, 0xde, 0xac, 0xea, 0x25,
-
  0x82, 0x2f, 0xb9, 0x65, 0xf0, 0xc1, 0x03, 0x86, 0x61, 0xa5, 0x4c, 0xd2,
-
  0xf1, 0x1e, 0x74, 0xd7, 0x56, 0x63, 0x4c, 0x27, 0x0d, 0x5a, 0x65, 0x34,
-
  0x0f, 0x4c, 0x21, 0x25, 0x4f, 0xd3, 0x04, 0xe0, 0xc2, 0x41, 0x75, 0x9c,
-
  0xd2, 0x22, 0x90, 0xe3, 0xb8, 0xed, 0xfe, 0x2d, 0xcd, 0xd1, 0xb0, 0x3d,
-
  0x93, 0x95, 0xd5, 0x9e, 0x3d, 0x64, 0x4d, 0x9c, 0xbc, 0xab, 0xd9, 0x8a,
-
  0x0f, 0xd2, 0x2c, 0x0d, 0xda, 0x19, 0x8d, 0x21, 0xd8, 0xb2, 0x59, 0x77,
-
  0x31, 0xe1, 0xd3, 0x2a, 0xce, 0x8e, 0x02, 0x0b, 0x9a, 0xc5, 0x62, 0x92,
-
  0x49, 0x54, 0xab, 0x51, 0xa1, 0xa5, 0xbd, 0x2a, 0x02, 0xe7, 0x2b, 0x37,
-
  0xb1, 0xd1, 0x3e, 0xe0, 0x14, 0x96, 0x35, 0x95, 0xd1, 0x67, 0x8a, 0xa5,
-
  0x12, 0x1d, 0x8d, 0x45, 0xe4, 0xfb, 0xe6, 0x6d, 0xec, 0x16, 0xb1, 0xb0,
-
  0xa1, 0x01, 0xc1, 0x48, 0xb4, 0x97, 0x63, 0x60, 0x1c, 0x4b, 0xd9, 0x60,
-
  0x0b, 0x9b, 0x51, 0xb8, 0xcd, 0x6c, 0x49, 0xd3, 0x95, 0xb7, 0xb8, 0x32,
-
  0x35, 0x65, 0x18, 0x23, 0xe7, 0x2d, 0x66, 0xa1, 0x7a, 0x71, 0x06, 0xe9,
-
  0x14, 0x04, 0xd6, 0xdc, 0xbe, 0xfb, 0xfa, 0x6b, 0xd9, 0x0d, 0x42, 0xaa,
-
  0x33, 0xf2, 0x2f, 0xc9, 0x72, 0x12, 0x50, 0x8f, 0xac, 0x68, 0x6e, 0x6e,
-
  0xf5, 0xd7, 0x81, 0x39, 0x84, 0x77, 0x10, 0xc1, 0x88, 0x32, 0xc6, 0x52,
-
  0x48, 0x3c, 0x0e, 0x16, 0x70, 0x29, 0xc0, 0x18, 0xee, 0x41, 0x83, 0xa2,
-
  0xad, 0x6b, 0xe8, 0xd9, 0x43, 0xe0, 0xa2, 0x61, 0x45, 0x1a, 0x60, 0x0b,
-
  0x09, 0x27, 0x94, 0x1d, 0x18, 0x3b, 0xca, 0x4c, 0xa3, 0xda, 0x4a, 0x0a,
-
  0x19, 0xce, 0x3c, 0xa1, 0x24, 0xbf, 0x5b, 0x80, 0x3a, 0xda, 0x8d, 0x4a,
-
  0xce, 0x6f, 0xfd, 0x3a, 0x22, 0x7b, 0x2b, 0x8b, 0x95, 0xfe, 0xe0, 0x84,
-
  0x91, 0xc4, 0x08, 0xf3, 0x48, 0x43, 0x68, 0x76, 0x5f, 0x1f, 0x6c, 0x3f,
-
  0x43, 0x7a, 0x9c, 0xa7, 0xae, 0x73, 0x81, 0x3b, 0xf5, 0xd5, 0xf9, 0x11,
-
  0xc0, 0x01, 0xe4, 0xd2, 0xc5, 0x78, 0xc2, 0xe5, 0xa7, 0x1f, 0x32, 0x94,
-
  0x82, 0x41, 0xbb, 0x0c, 0x7e, 0xb0, 0x24, 0xd3, 0x05, 0xe1, 0x9d, 0x5d,
-
  0xa0, 0x2b, 0x06, 0x8d, 0x0e, 0xd0, 0x13, 0xaa, 0x98, 0xd2, 0x75, 0x37,
-
  0x3e, 0x3e, 0x66, 0x5d, 0x29, 0x40, 0xb2, 0x87, 0xb5, 0xbc, 0x23, 0x71,
-
  0xe0, 0x4e, 0x32, 0x41, 0x3c, 0x60, 0xd2, 0x8d, 0xf8, 0x6c, 0xf4, 0x90,
-
  0x65, 0x1e, 0x36, 0x45, 0x82, 0x62, 0xad, 0xf3, 0x22, 0x5c, 0x3e, 0x25,
-
  0xca, 0xd0, 0x30, 0x0f, 0x6b, 0xae, 0x06, 0x94, 0xc7, 0x31, 0x4f, 0x33,
-
  0x97, 0xaf, 0x66, 0x3a, 0xc6, 0x2c, 0xad, 0x3b, 0x49, 0x19, 0x57, 0x6d,
-
  0xb2, 0x1f, 0xbd, 0x9e, 0xb3, 0x11, 0x4c, 0x02, 0x2c, 0x1d, 0x18, 0xc3,
-
  0xad, 0x20, 0x66, 0x5b, 0xa5, 0xdd, 0x85, 0xf7, 0x6f, 0x84, 0xb4, 0x0c,
-
  0x3c, 0xcf, 0x4c, 0x88, 0xc7, 0xf0, 0x98, 0x43, 0x14, 0x57, 0xce, 0xce,
-
  0x51, 0x85, 0xcf, 0xa4, 0x4c, 0x76, 0xc5, 0xdb, 0xc1, 0x7c, 0x3a, 0x5e,
-
  0xf5, 0xb2, 0xe8, 0xb9, 0xe2, 0x21, 0x25, 0xb8, 0x10, 0x34, 0xb1, 0x84,
-
  0x57, 0xb5, 0xd2, 0x54, 0x5b, 0x2b, 0x4c, 0xb5, 0x89, 0x45, 0x11, 0x66,
-
  0x52, 0x89, 0x1b, 0xa4, 0x50, 0xed, 0x86, 0xb8, 0xe8, 0x12, 0xa5, 0x1d,
-
  0x35, 0xec, 0xa5, 0xa5, 0x95, 0x34, 0x6b, 0x39, 0xa8, 0xb4, 0x66, 0x56,
-
  0x03, 0x0e, 0xe2, 0xe1, 0xa0, 0x6f, 0xa6, 0xa9, 0xc5, 0xb0, 0x88, 0x0a,
-
  0x89, 0xaa, 0xe9, 0xf5, 0x2a, 0x3e, 0xa4, 0xd2, 0x9b, 0xc4, 0x83, 0x2e,
-
  0xa5, 0xa0, 0xf8, 0x94, 0xbd, 0xc3, 0x6a, 0x86, 0x4b, 0xca, 0x64, 0xb2,
-
  0xf2, 0x7c, 0x0c, 0x73, 0xdb, 0x70, 0x98, 0x74, 0x53, 0xc7, 0x6d, 0x47,
-
  0x0b, 0x64, 0x3f, 0x49, 0x33, 0xc7, 0xe5, 0xf1, 0x59, 0xd8, 0xf1, 0x95,
-
  0x1c, 0x43, 0x30, 0x19, 0x3c, 0xae, 0x9a, 0x43, 0xe4, 0x32, 0xdb, 0x0c,
-
  0xb6, 0xe4, 0xb3, 0xce, 0x01, 0x0a, 0x5f, 0xa9, 0xc7, 0x57, 0xaf, 0x4a,
-
  0x80, 0xf8, 0x68, 0x0d, 0x86, 0xb6, 0x16, 0x02, 0x0b, 0x0b, 0x06, 0xd5,
-
  0x3f, 0x1c, 0x2f, 0xdb, 0x58, 0x9e, 0x9a, 0xf3, 0xfa, 0xd4, 0xda, 0x93,
-
  0x78, 0xee, 0x73, 0xe0, 0xf5, 0x9c, 0x66, 0x23, 0x79, 0xdc, 0x7d, 0xfc,
-
  0x30, 0x0e, 0x05, 0xa1, 0xe0, 0xa6, 0xdb, 0xe1, 0xb5, 0x30, 0xe5, 0x6a,
-
  0x42, 0x70, 0x02, 0x7c, 0x53, 0x50, 0xd7, 0xd3, 0xd1, 0xc4, 0x65, 0xbb,
-
  0xae, 0x31, 0xe3, 0xb1, 0x87, 0xe2, 0x08, 0x44, 0xe6, 0xa6, 0x36, 0x0b,
-
  0x03, 0xca, 0x79, 0x99, 0xa2, 0x95, 0x25, 0x68, 0x94, 0x85, 0xe6, 0x26,
-
  0x48, 0x9a, 0x76, 0x92, 0xac, 0xaa, 0xbe, 0xe3, 0x25, 0x85, 0x5d, 0x02,
-
  0xab, 0x1a, 0x98, 0x37, 0x57, 0xae, 0x16, 0xa6, 0x32, 0xd0, 0x6c, 0x22,
-
  0xf7, 0xe0, 0xb8, 0xb0, 0xda, 0xef, 0x45, 0x43, 0x13, 0x4f, 0xd1, 0x3b,
-
  0x34, 0x7c, 0xdc, 0x81, 0x3e, 0x2e, 0xac, 0x5a, 0xb8, 0xe6, 0x61, 0x88,
-
  0xc0, 0x32, 0x93, 0xf8, 0x24, 0xf0, 0x31, 0xd2, 0xc8, 0xf9, 0x91, 0xdd,
-
  0x01, 0x49, 0xda, 0x93, 0x36, 0x2b, 0x42, 0x44, 0x8a, 0x0d, 0x62, 0xfb,
-
  0x72, 0x32, 0xbd, 0x38, 0x0c, 0x1b, 0x37, 0xb9, 0x3a, 0x44, 0xe8, 0x99,
-
  0xad, 0x87, 0xa5, 0x5c, 0x16, 0x84, 0xe6, 0x93, 0x19, 0xc9, 0xe9, 0x45,
-
  0x76, 0x32, 0x34, 0x05, 0x89, 0x12, 0x19, 0x8e, 0xc5, 0xaa, 0x3b, 0x1e,
-
  0x25, 0xf5, 0x84, 0x97, 0x14, 0xf9, 0x0d, 0xf9, 0xf7, 0x79, 0x91, 0x07,
-
  0x19, 0xc6, 0xa1, 0x85, 0xf6, 0x6d, 0x4a, 0x08, 0xdf, 0xf8, 0xe8, 0x9f,
-
  0x90, 0x28, 0x34, 0x63, 0x35, 0x90, 0x31, 0x45, 0x35, 0xaf, 0x3a, 0xe0,
-
  0x32, 0x9b, 0xc7, 0x86, 0xab, 0xac, 0x86, 0x03, 0xec, 0x7b, 0xfe, 0x03,
-
  0xe4, 0x6d, 0x91, 0x91, 0x13, 0x9c, 0x08, 0x08, 0x4b, 0x93, 0xf2, 0x0a,
-
  0xf8, 0xb3, 0x0c, 0x14, 0xb2, 0xb8, 0x95, 0x52, 0xca, 0x83, 0x63, 0xef,
-
  0xcc, 0x76, 0xe6, 0x92, 0xa1, 0x90, 0x6f, 0x04, 0x1b, 0x89, 0x9e, 0x65,
-
  0xca, 0xf4, 0x60, 0x26, 0x4a, 0x60, 0xb2, 0xf2, 0xe1, 0xe0, 0xdf, 0x17,
-
  0x1a, 0xe3, 0xd2, 0x99, 0xbc, 0x46, 0x6b, 0x67, 0x82, 0x9f, 0x12, 0xba,
-
  0x0e, 0x82, 0x48, 0x35, 0x41, 0xdf, 0x6d, 0x77, 0x5d, 0x31, 0xfd, 0x85,
-
  0x59, 0xb4, 0x32, 0x1c, 0x5c, 0xb5, 0x65, 0x98, 0x14, 0x62, 0x8c, 0xde,
-
  0xa9, 0xff, 0xe1, 0x72, 0xc0, 0xd4, 0x9c, 0xed, 0xf7, 0x2c, 0xc0, 0xcc,
-
  0x78, 0xb4, 0x99, 0xd4, 0xfc, 0x05, 0xce, 0xb5, 0x0c, 0x5b, 0x78, 0x05,
-
  0x88, 0x11, 0x2b, 0x70, 0x3a, 0x19, 0xcf, 0x2e, 0xc8, 0xea, 0x92, 0xc0,
-
  0xec, 0x78, 0x69, 0xc8, 0x89, 0x41, 0x60, 0x86, 0x64, 0x97, 0x29, 0xd6,
-
  0x0b, 0xa7, 0x17, 0x5a, 0x88, 0x06, 0xe9, 0x28, 0xc0, 0x70, 0xa3, 0xb8,
-
  0x96, 0xdd, 0xa4, 0x6c, 0xe6, 0x61, 0x7a, 0x34, 0x93, 0xb3, 0x99, 0x6c,
-
  0x9e, 0xe0, 0x63, 0x89, 0xe8, 0x45, 0xe7, 0xc5, 0x09, 0x33, 0xfc, 0x3c,
-
  0x35, 0x5d, 0xd3, 0xc3, 0x96, 0x62, 0xba, 0xb4, 0x81, 0xbb, 0x85, 0x79,
-
  0x06, 0x0a, 0x5a, 0xa9, 0x63, 0xc1, 0x8e, 0x46, 0xd7, 0xe4, 0x66, 0xf3,
-
  0x8c, 0x81, 0x3d, 0x6a, 0xe5, 0xf5, 0x5a, 0xbb, 0xd3, 0x59, 0x90, 0xdd,
-
  0xc6, 0xb1, 0xad, 0x48, 0xa4, 0x75, 0x68, 0x81, 0xc6, 0xed, 0x55, 0x09,
-
  0x0c, 0x26, 0xb1, 0x6f, 0xbd, 0xde, 0xdd, 0xdd, 0xde, 0x3a, 0xf0, 0x04,
-
  0xbd, 0xb4, 0xe7, 0x68, 0x91, 0x91, 0x0d, 0x0f, 0x9f, 0xb9, 0x9b, 0xdb,
-
  0xfb, 0x75, 0x16, 0x33, 0xbc, 0xca, 0x2c, 0x0d, 0x37, 0xd0, 0x3e, 0x48,
-
  0x3f, 0xde, 0x78, 0x6f, 0x2b, 0xd4, 0xf3, 0xce, 0x58, 0xd9, 0x5a, 0x64,
-
  0x65, 0xb4, 0xa6, 0x1c, 0x0e, 0x2e, 0x6c, 0x10, 0x3b, 0x7b, 0x8c, 0xf5,
-
  0x61, 0x8d, 0x0d, 0x8b, 0x55, 0x53, 0x3c, 0xc5, 0x0c, 0x3d, 0x91, 0xac,
-
  0x43, 0x8e, 0x0f, 0x2b, 0x81, 0xb3, 0x96, 0x47, 0x7a, 0xc1, 0x74, 0x4c,
-
  0x8f, 0x57, 0x07, 0xd8, 0xce, 0xde, 0xbb, 0x07, 0xd8, 0x0a, 0xd8, 0xe6,
-
  0xbb, 0x59, 0xe7, 0xb8, 0x0c, 0xad, 0x7b, 0xe9, 0x8a, 0xd7, 0x63, 0x34,
-
  0x14, 0xa0, 0xc3, 0xbc, 0x3f, 0x0a, 0x83, 0xb1, 0x33, 0x6b, 0x4f, 0x2b,
-
  0xe5, 0xa5, 0xeb, 0xa9, 0x50, 0x7e, 0x72, 0x33, 0xea, 0xee, 0x65, 0x7a,
-
  0x9a, 0xf2, 0x08, 0x4b, 0x9f, 0x94, 0x75, 0x02, 0xf1, 0x72, 0xa5, 0x92,
-
  0xcb, 0x2c, 0x8c, 0xe7, 0xd0, 0x45, 0x86, 0x5d, 0x1f, 0x9c, 0x25, 0xc2,
-
  0x27, 0x92, 0x43, 0x1d, 0x63, 0x2a, 0x8d, 0x3a, 0xe9, 0x4e, 0xf7, 0x44,
-
  0xf3, 0x6e, 0x74, 0xe7, 0x25, 0x72, 0x84, 0x2c, 0xac, 0x8b, 0x11, 0x2e,
-
  0x47, 0xb8, 0x18, 0x91, 0xca, 0x11, 0x98, 0xa3, 0x4b, 0x12, 0xb1, 0x90,
-
  0xcc, 0x75, 0x62, 0x04, 0x07, 0x2f, 0xeb, 0xd5, 0x18, 0x3f, 0x42, 0xfa,
-
  0xed, 0x1b, 0xc1, 0xff, 0xd6, 0x55, 0xd2, 0xf5, 0x69, 0x9e, 0x19, 0xb4,
-
  0xa4, 0xbc, 0x22, 0x39, 0x32, 0x47, 0xc2, 0x78, 0x92, 0x03, 0x9b, 0x46,
-
  0x6d, 0xce, 0xaf, 0xba, 0xad, 0x38, 0x24, 0x1f, 0x64, 0xb4, 0x97, 0x5c,
-
  0x09, 0x24, 0x3a, 0x94, 0xac, 0xde, 0x29, 0x48, 0xa0, 0xab, 0xdd, 0x24,
-
  0xde, 0x89, 0xb2, 0xfa, 0xb4, 0x9c, 0xce, 0x34, 0x4a, 0x63, 0xa7, 0x47,
-
  0xa9, 0x19, 0x9c, 0x4a, 0x3b, 0x6b, 0x50, 0xf9, 0xfd, 0x7c, 0xfa, 0xd6,
-
  0x68, 0x63, 0xfe, 0xfe, 0xb1, 0x1e, 0x39, 0xf0, 0x6c, 0xd1, 0xf5, 0x22,
-
  0xd3, 0x6a, 0x1c, 0x5e, 0x69, 0x0d, 0x6c, 0x66, 0xae, 0x2d, 0x7e, 0x58,
-
  0xc4, 0x02, 0xed, 0x9a, 0x9e, 0xee, 0xc5, 0x7d, 0x5b, 0xb8, 0x49, 0xc3,
-
  0x25, 0xd9, 0x92, 0xa0, 0x01, 0xf8, 0x18, 0x42, 0x0b, 0x12, 0x59, 0xb0,
-
  0x92, 0x1b, 0xff, 0x6c, 0xec, 0x81, 0xd4, 0x21, 0xe2, 0xd8, 0x62, 0xa7,
-
  0xc0, 0x46, 0x89, 0x7a, 0x44, 0x22, 0x82, 0xbb, 0x7d, 0x64, 0x25, 0x54,
-
  0xa3, 0x2a, 0x24, 0xda, 0x07, 0xa9, 0xba, 0x24, 0xe2, 0xe6, 0xaf, 0xd5,
-
  0x64, 0xac, 0xea, 0xc7, 0xb5, 0x32, 0x0e, 0x39, 0xd9, 0x61, 0x5d, 0x0f,
-
  0xc1, 0xa6, 0x06, 0x27, 0x57, 0x87, 0x92, 0x09, 0xe3, 0x4c, 0x5a, 0xfe,
-
  0xd5, 0x38, 0x40, 0x52, 0xae, 0xb8, 0xf7, 0xe4, 0x45, 0x44, 0x32, 0x17,
-
  0xac, 0xbb, 0x7a, 0x51, 0xb1, 0xb4, 0x6c, 0x72, 0x3c, 0x42, 0x0b, 0x6c,
-
  0xd2, 0x0b, 0xdc, 0x1a, 0xab, 0x73, 0x31, 0xb0, 0x0b, 0x3b, 0xad, 0xf9,
-
  0x66, 0x18, 0x10, 0x18, 0x9f, 0x16, 0xc5, 0x6e, 0x29, 0x6a, 0x75, 0xdd,
-
  0x6c, 0xc0, 0xd4, 0x54, 0xc3, 0xf7, 0xfb, 0x9c, 0x73, 0x5d, 0xac, 0xdb,
-
  0x72, 0x78, 0x08, 0x6c, 0x5c, 0x18, 0x51, 0x47, 0xe4, 0xc5, 0x76, 0x82,
-
  0x2b, 0x57, 0xac, 0x75, 0xa5, 0x3e, 0x38, 0xc4, 0x22, 0x40, 0xf6, 0x25,
-
  0xd9, 0x30, 0x7d, 0x00, 0xc6, 0x9f, 0x33, 0x48, 0x09, 0xb0, 0x50, 0xad,
-
  0xdd, 0xd7, 0x7b, 0xfb, 0xaf, 0x7f, 0xfa, 0x7b, 0x0b, 0x02, 0x0e, 0x5c,
-
  0x95, 0x85, 0xe2, 0xe0, 0xf5, 0x55, 0x2b, 0x30, 0xfc, 0x3c, 0xd3, 0x3d,
-
  0xb3, 0x5d, 0x7e, 0x1c, 0x97, 0xdb, 0xc8, 0xf0, 0x50, 0x73, 0x04, 0x98,
-
  0xf5, 0x02, 0xc9, 0x21, 0xe5, 0x4f, 0x72, 0xf3, 0xf1, 0x90, 0x3a, 0x90,
-
  0x44, 0xa7, 0x33, 0x1c, 0x3b, 0x8a, 0xc1, 0xd8, 0xec, 0x14, 0xbc, 0x08,
-
  0x8d, 0xb0, 0x57, 0xc6, 0x56, 0x4a, 0x0b, 0x16, 0xfe, 0xf7, 0x1d, 0x7e,
-
  0x43, 0xc1, 0x33, 0x70, 0x47, 0x01, 0xcc, 0x0a, 0x7f, 0xc7, 0x3c, 0x16,
-
  0x46, 0x6d, 0xe8, 0xf8, 0x85, 0x92, 0x99, 0xa0, 0x50, 0xfa, 0x20, 0x8b,
-
  0x4b, 0x82, 0x93, 0xd0, 0xdc, 0x7a, 0x0a, 0x56, 0x1c, 0x11, 0x0c, 0x25,
-
  0x51, 0xd6, 0xa9, 0x75, 0x5f, 0xfe, 0x7d, 0xe6, 0x12, 0xc2, 0x9c, 0x58,
-
  0x9f, 0x13, 0xe0, 0xa3, 0x74, 0x45, 0x20, 0xfc, 0x25, 0x57, 0x93, 0x4a,
-
  0x83, 0xe1, 0x86, 0xb2, 0x0b, 0x2a, 0xbb, 0x1c, 0xae, 0xbd, 0x1d, 0xc2,
-
  0xb4, 0x71, 0x35, 0x7d, 0xf4, 0x36, 0xd2, 0x0e, 0xd3, 0xeb, 0x48, 0xbb,
-
  0xfc, 0xbd, 0xf7, 0x91, 0x31, 0xc3, 0xcf, 0x28, 0xde, 0x38, 0xf1, 0xae,
-
  0x90, 0xaf, 0x40, 0xed, 0x86, 0x63, 0x72, 0xc4, 0xf4, 0x60, 0x17, 0xa5,
-
  0x62, 0xf2, 0xbe, 0x00, 0x18, 0x7a, 0xdf, 0x04, 0x9b, 0x72, 0x0c, 0xc9,
-
  0x62, 0x05, 0xc9, 0xa2, 0x8a, 0xf2, 0xa4, 0xe9, 0xb3, 0xd1, 0xd3, 0xb8,
-
  0x6a, 0xe1, 0x5d, 0x76, 0xe6, 0xae, 0x13, 0x45, 0x90, 0xf8, 0x77, 0xd8,
-
  0x0f, 0x83, 0x00, 0x50, 0xa7, 0x75, 0xc5, 0x94, 0x47, 0xa8, 0x94, 0xb3,
-
  0x91, 0x70, 0x89, 0x24, 0xd7, 0x48, 0xb8, 0xac, 0xbd, 0xc1, 0xf3, 0xee,
-
  0xaa, 0x90, 0xea, 0x99, 0xc8, 0x25, 0xd4, 0xa5, 0x06, 0xca, 0xea, 0xbd,
-
  0x98, 0x0a, 0x87, 0xd5, 0xb1, 0x55, 0x98, 0xc0, 0x9e, 0xc5, 0x50, 0x48,
-
  0xa9, 0xae, 0xa5, 0x32, 0x6c, 0x3a, 0x2e, 0xf9, 0x6c, 0xe1, 0xa8, 0x7c,
-
  0x50, 0x96, 0x6e, 0xe7, 0x03, 0x5a, 0xd8, 0x92, 0x5d, 0x59, 0x37, 0x36,
-
  0x15, 0xa7, 0x97, 0x1a, 0xfc, 0x33, 0x21, 0x23, 0x6d, 0x53, 0xc0, 0x4d,
-
  0x6f, 0xdb, 0xa4, 0x03, 0x1c, 0x67, 0xcb, 0xc5, 0x96, 0x10, 0xf4, 0xf2,
-
  0x47, 0x97, 0x2b, 0xb0, 0xea, 0xfe, 0xdc, 0x3e, 0x96, 0xf0, 0x80, 0x9d,
-
  0xc6, 0xc5, 0x91, 0xc7, 0x12, 0xad, 0x36, 0xf0, 0xe9, 0x7a, 0x36, 0xd1,
-
  0x68, 0x5b, 0x83, 0x39, 0xa6, 0x13, 0x29, 0xb4, 0x60, 0x6f, 0x75, 0x8b,
-
  0x6f, 0x38, 0x17, 0xb8, 0xfa, 0x25, 0xf6, 0x2d, 0xef, 0x35, 0x5f, 0x07,
-
  0xeb, 0xd3, 0xa0, 0x8e, 0x9b, 0x5d, 0xde, 0xdc, 0xa7, 0xbc, 0x75, 0x43,
-
  0x8f, 0xd7, 0xdd, 0x69, 0x7a, 0xa5, 0x99, 0x8c, 0x8b, 0xeb, 0x4b, 0x6e,
-
  0xaf, 0xd4, 0x2a, 0x34, 0x7f, 0x75, 0xe9, 0xe9, 0x48, 0x6e, 0xaf, 0x6b,
-
  0x2f, 0x2f, 0x6c, 0xc6, 0xfc, 0xcd, 0x25, 0x6e, 0x07, 0x8c, 0xe2, 0x5b,
-
  0xd1, 0x4c, 0x09, 0x12, 0x30, 0x1e, 0xf0, 0xe0, 0x8c, 0x14, 0x74, 0x28,
-
  0xf5, 0xf6, 0xa5, 0x17, 0x7f, 0xea, 0xf2, 0xc0, 0xc1, 0x31, 0xa7, 0xc7,
-
  0x82, 0xeb, 0xfd, 0x51, 0x22, 0x11, 0x89, 0xef, 0xef, 0x33, 0xf7, 0xe9,
-
  0xd9, 0x2c, 0x12, 0xbe, 0x31, 0xb0, 0x32, 0x7d, 0x0e, 0x1e, 0x92, 0x38,
-
  0x60, 0xcc, 0x5a, 0x25, 0x2d, 0x84, 0xdb, 0x4c, 0x83, 0x3b, 0xd5, 0x1b,
-
  0x29, 0x9f, 0x18, 0x22, 0x8c, 0x54, 0x92, 0xba, 0x76, 0x32, 0xe0, 0x60,
-
  0x87, 0x41, 0xe3, 0x6d, 0xa8, 0x72, 0xfc, 0x9c, 0xf8, 0x52, 0x4a, 0x01,
-
  0xc8, 0x19, 0x65, 0xe6, 0xc8, 0x78, 0xfc, 0x36, 0xf3, 0xdc, 0x48, 0x96,
-
  0x34, 0xaa, 0x3e, 0x0d, 0x86, 0xc6, 0x82, 0xc2, 0xf6, 0xdf, 0xeb, 0xf5,
-
  0xbe, 0xbf, 0x57, 0x4d, 0x8f, 0xbd, 0x06, 0xe5, 0xbd, 0x88, 0x15, 0xa5,
-
  0x30, 0x71, 0x82, 0x26, 0xa7, 0xf7, 0x84, 0xc0, 0xe5, 0x3a, 0xbf, 0x74,
-
  0x67, 0x6a, 0x37, 0x1d, 0x67, 0x63, 0x90, 0x32, 0xc6, 0x82, 0x31, 0xf8,
-
  0x3a, 0x46, 0x1f, 0x62, 0x1c, 0x61, 0x36, 0x40, 0x29, 0x26, 0xba, 0xb5,
-
  0x17, 0x15, 0xae, 0x46, 0xd9, 0x01, 0x8e, 0x02, 0xb7, 0xbe, 0xaa, 0xa3,
-
  0x20, 0xbb, 0xc5, 0x83, 0x81, 0x68, 0x32, 0x0c, 0x5d, 0xcd, 0x2e, 0xf2,
-
  0xf1, 0x64, 0x6b, 0x46, 0x88, 0x18, 0x5f, 0xb1, 0x64, 0xc1, 0x92, 0xe1,
-
  0x64, 0x91, 0x90, 0x4c, 0x04, 0xbb, 0xb6, 0xcf, 0x8b, 0x30, 0x3a, 0xe3,
-
  0x48, 0x69, 0xaf, 0xde, 0x4f, 0x44, 0x0e, 0x68, 0xf4, 0x42, 0xb5, 0x9b,
-
  0xf9, 0xda, 0x83, 0xda, 0x93, 0xdb, 0x42, 0x0b, 0x1a, 0x5c, 0x47, 0x2b,
-
  0xf7, 0xf9, 0xe0, 0x78, 0x32, 0xd6, 0xa1, 0xe7, 0xd2, 0xd6, 0xfa, 0x5a,
-
  0x83, 0x62, 0x2e, 0x20, 0x8a, 0xcf, 0x8f, 0xe3, 0x77, 0xcc, 0x5e, 0xdc,
-
  0xca, 0x4b, 0x99, 0xf7, 0x01, 0x3a, 0xfa, 0x8c, 0x81, 0x46, 0x0c, 0x17,
-
  0x32, 0xb8, 0x8c, 0x53, 0x64, 0x5e, 0xf9, 0x09, 0xf1, 0x38, 0x42, 0xc9,
-
  0x27, 0x5a, 0x0a, 0x43, 0xea, 0x24, 0x59, 0x40, 0x34, 0x91, 0x7b, 0x1a,
-
  0x87, 0x96, 0x21, 0xf7, 0xb4, 0x66, 0xc3, 0xfa, 0xb3, 0xe8, 0x5a, 0x1e,
-
  0x25, 0xca, 0xba, 0x31, 0x38, 0xdc, 0x2e, 0x73, 0x98, 0x3f, 0x10, 0x06,
-
  0x3e, 0x7c, 0xd7, 0xd8, 0x8d, 0xc0, 0xb4, 0x66, 0xd5, 0xdc, 0xf4, 0x7d,
-
  0xf6, 0x99, 0x21, 0x99, 0xd3, 0xe2, 0x0b, 0x7d, 0x4b, 0x76, 0x24, 0xc0,
-
  0xc6, 0x64, 0x86, 0x82, 0xb4, 0x12, 0x48, 0xc4, 0x44, 0x21, 0xc5, 0x44,
-
  0x9d, 0xe9, 0xc6, 0x46, 0x3c, 0x7c, 0x97, 0x20, 0x03, 0xa3, 0xbc, 0x88,
-
  0xd1, 0x03, 0x14, 0x25, 0x19, 0x77, 0x05, 0x0f, 0x11, 0x2f, 0x38, 0x8f,
-
  0xa8, 0xd3, 0xe2, 0x02, 0xd6, 0x2f, 0xe3, 0xb9, 0x98, 0x91, 0x0e, 0xae,
-
  0x1a, 0x28, 0x40, 0xae, 0xcb, 0x5a, 0xed, 0x5e, 0xec, 0x8f, 0xc2, 0x6e,
-
  0x2a, 0x00, 0xe2, 0x28, 0x94, 0x13, 0x08, 0x38, 0xc3, 0xa0, 0x3c, 0x9e,
-
  0x0f, 0xd4, 0xfb, 0x59, 0x48, 0xc0, 0xc2, 0x71, 0xd5, 0x50, 0xfc, 0x05,
-
  0xdc, 0x22, 0xa3, 0x15, 0x1b, 0xf8, 0xfc, 0xb1, 0x5d, 0xcc, 0x5b, 0x34,
-
  0x45, 0x2c, 0x0a, 0xf6, 0x03, 0x89, 0xb8, 0xa8, 0x2e, 0x6a, 0xf6, 0xe1,
-
  0x28, 0xd3, 0x62, 0xa8, 0x95, 0x33, 0xd8, 0x76, 0x46, 0xd3, 0x26, 0x4a,
-
  0x4c, 0xa4, 0x27, 0x49, 0xf8, 0x72, 0x6a, 0x5d, 0x5a, 0x52, 0x24, 0x41,
-
  0x23, 0xbf, 0x51, 0x39, 0xd4, 0xaf, 0xd5, 0x89, 0x25, 0x14, 0xa8, 0x8a,
-
  0x35, 0xd2, 0xe3, 0xb2, 0x59, 0xb4, 0x1a, 0x59, 0xc8, 0x72, 0x4c, 0x35,
-
  0x29, 0x82, 0x17, 0x1b, 0x96, 0x91, 0x85, 0xae, 0xcc, 0x68, 0x99, 0xcc,
-
  0xa3, 0xce, 0x08, 0x88, 0x7d, 0x5c, 0x7b, 0x8e, 0xb2, 0xc5, 0x59, 0xc8,
-
  0xd4, 0xb2, 0x63, 0x34, 0xa1, 0x90, 0x6b, 0x47, 0xdc, 0xcc, 0x28, 0xdd,
-
  0xe6, 0x71, 0x69, 0x1e, 0x5f, 0x09, 0x18, 0x20, 0x62, 0x97, 0x30, 0x6f,
-
  0x8e, 0x9f, 0x7d, 0x88, 0x79, 0x06, 0xf9, 0x41, 0xe2, 0x2c, 0x0b, 0x62,
-
  0x2e, 0x4e, 0x86, 0x3a, 0x93, 0xe5, 0xca, 0xcf, 0xe6, 0x43, 0x21, 0x2c,
-
  0x97, 0xc8, 0x16, 0x1d, 0x0b, 0xb5, 0x48, 0xd0, 0x67, 0x1c, 0x0b, 0xac,
-
  0x80, 0x43, 0xc5, 0x03, 0xa6, 0xba, 0xdc, 0x81, 0x82, 0x25, 0x47, 0x5b,
-
  0x62, 0x45, 0x15, 0xf1, 0x7a, 0xe5, 0x1b, 0xcc, 0x2c, 0x97, 0xdc, 0x55,
-
  0x64, 0x37, 0x40, 0xe2, 0xe9, 0x2d, 0x9a, 0x0c, 0x54, 0x9c, 0xb7, 0x88,
-
  0x4c, 0x2e, 0x77, 0x54, 0x00, 0x53, 0xee, 0x0f, 0xb5, 0x66, 0xc0, 0x77,
-
  0xd6, 0x62, 0x04, 0x50, 0x95, 0xaa, 0x36, 0x06, 0xbe, 0x1c, 0xf1, 0x6d,
-
  0x45, 0xaf, 0xb1, 0xa6, 0x73, 0xe3, 0xf7, 0x5c, 0xf3, 0x9a, 0x9f, 0x6b,
-
  0xad, 0xeb, 0xbf, 0x7f, 0x6c, 0xc8, 0xb8, 0x17, 0xdd, 0x3a, 0x88, 0x3b,
-
  0xf2, 0x8f, 0x2d, 0x40, 0xa2, 0x28, 0x2e, 0xd0, 0x10, 0x17, 0xb7, 0xb7,
-
  0x23, 0xc8, 0x5a, 0xc9, 0xf3, 0x1a, 0xdd, 0x9a, 0x60, 0x65, 0x49, 0x60,
-
  0x85, 0xad, 0x9d, 0x29, 0x6b, 0x38, 0x00, 0x54, 0xf5, 0xda, 0xa6, 0x96,
-
  0xc9, 0x37, 0x77, 0xc1, 0x50, 0x1c, 0x80, 0x3e, 0x19, 0x87, 0x84, 0xc0,
-
  0x5e, 0x8e, 0x3e, 0xb2, 0x8b, 0xd1, 0x59, 0x43, 0x1f, 0xcd, 0x1f, 0x5a,
-
  0x12, 0x22, 0x35, 0x5b, 0x73, 0x39, 0x84, 0xf6, 0xef, 0x6a, 0xef, 0x24,
-
  0xa8, 0x01, 0xc4, 0x7c, 0xd5, 0x26, 0xed, 0xff, 0xcf, 0x44, 0x63, 0xbf,
-
  0x06, 0xb5, 0x3d, 0xfa, 0x56, 0xf1, 0x1f, 0xfc, 0xa2, 0x7f, 0x64, 0xc4,
-
  0xd5, 0xc7, 0x8f, 0x6d, 0xb4, 0xe8, 0x17, 0x2b, 0x60, 0x17, 0xab, 0x79,
-
  0x27, 0xde, 0x4b, 0xe6, 0x14, 0x9e, 0xef, 0x67, 0xf1, 0x61, 0xbe, 0xb9,
-
  0x93, 0x4f, 0xef, 0xa5, 0x79, 0xc8, 0x17, 0x9d, 0xf2, 0x66, 0x87, 0xd6,
-
  0x63, 0xd2, 0xa5, 0x0a, 0xc4, 0xb7, 0x5a, 0xc0, 0x5b, 0x1c, 0xfc, 0xcf,
-
  0xb3, 0x82, 0x8b, 0xb9, 0xc1, 0x67, 0x5f, 0xc1, 0x9b, 0xb9, 0xc4, 0x27,
-
  0xcc, 0x45, 0x58, 0x47, 0xda, 0x86, 0xdc, 0xf1, 0xc6, 0x38, 0x24, 0xbe,
-
  0xcd, 0xa8, 0x56, 0x29, 0x2f, 0x72, 0x0d, 0xca, 0x86, 0xa1, 0x59, 0xe3,
-
  0x1a, 0xc5, 0xef, 0xe5, 0x19, 0xd5, 0x35, 0x4c, 0xe3, 0x73, 0xaf, 0xdc,
-
  0x0d, 0xcc, 0x64, 0x31, 0x15, 0xfc, 0x3e, 0x32, 0x68, 0xf2, 0x98, 0x45,
-
  0x4c, 0xe6, 0x33, 0x93, 0xf8, 0xc7, 0xf9, 0xce, 0xf5, 0x54, 0x91, 0x71,
-
  0xa2, 0x1b, 0xa7, 0x16, 0xb6, 0x34, 0x95, 0x3e, 0x18, 0x3b, 0xf5, 0x3e,
-
  0x75, 0xd6, 0x88, 0xd2, 0x6f, 0x32, 0x54, 0xbb, 0x58, 0xeb, 0xf0, 0x11,
-
  0x32, 0xce, 0x37, 0x23, 0x96, 0x6a, 0xa2, 0x44, 0xcc, 0x0a, 0x1f, 0xc8,
-
  0xd8, 0xae, 0x92, 0x18, 0x34, 0x69, 0xcd, 0x43, 0x47, 0x54, 0xd5, 0x1f,
-
  0x4f, 0x06, 0x41, 0xc1, 0x29, 0xf4, 0xdd, 0x42, 0xea, 0x39, 0xe5, 0xd1,
-
  0x2d, 0x0d, 0x39, 0x67, 0x3e, 0x86, 0x62, 0x11, 0xcf, 0x15, 0xfb, 0x67,
-
  0xb4, 0x7b, 0xd1, 0xfc, 0xda, 0x08, 0x97, 0x60, 0xda, 0xfc, 0x92, 0x14,
-
  0xb2, 0x46, 0xbc, 0x84, 0x41, 0xf7, 0x8a, 0x45, 0xbc, 0x30, 0x33, 0xf9,
-
  0xb3, 0xa6, 0xdd, 0xeb, 0x7d, 0x98, 0x7c, 0x12, 0x62, 0x13, 0xcd, 0xb3,
-
  0x49, 0x80, 0x8d, 0xbb, 0x42, 0xa1, 0x81, 0x46, 0xb1, 0x1c, 0x76, 0xdf,
-
  0x6e, 0xd1, 0xa1, 0x93, 0x21, 0x1c, 0xce, 0x54, 0x05, 0xf4, 0x14, 0x12,
-
  0x73, 0x6e, 0x5d, 0x55, 0xd3, 0xc2, 0xed, 0x55, 0xb0, 0x23, 0x20, 0x26,
-
  0xf0, 0x20, 0x73, 0xd4, 0x0c, 0xfa, 0xe2, 0x35, 0xb7, 0xb8, 0x1c, 0x8d,
-
  0xc8, 0x11, 0x45, 0x22, 0xe6, 0x18, 0x25, 0x5e, 0xa5, 0x24, 0x3a, 0xa7,
-
  0x30, 0x14, 0x92, 0xa5, 0x5b, 0xc7, 0xe7, 0x30, 0x06, 0x3e, 0x9a, 0x78,
-
  0x6e, 0x2c, 0xbf, 0x9c, 0x15, 0x7c, 0xd7, 0xa8, 0xe4, 0x85, 0x05, 0xd2,
-
  0x16, 0x86, 0xc0, 0x5f, 0x16, 0x77, 0xef, 0x7c, 0xc8, 0xcc, 0xe1, 0xbf,
-
  0xfd, 0x63, 0x74, 0xf7, 0x76, 0x60, 0xac, 0x79, 0x3d, 0x59, 0x6c, 0x9e,
-
  0x27, 0x28, 0xbc, 0x2f, 0x83, 0xe6, 0x91, 0xc0, 0x84, 0xd5, 0x25, 0x6d,
-
  0x0f, 0xb1, 0x06, 0xb9, 0x44, 0x7c, 0xb7, 0x8b, 0x24, 0xaa, 0x9b, 0xf6,
-
  0x24, 0xe8, 0x4e, 0x8c, 0x9e, 0x39, 0xaf, 0xa6, 0xa5, 0x60, 0xe5, 0x58,
-
  0x3c, 0x37, 0x33, 0xfa, 0xb0, 0x02, 0x12, 0x5d, 0x83, 0x1e, 0x06, 0x81,
-
  0xb1, 0x32, 0x5e, 0x63, 0x8b, 0x81, 0x0f, 0x53, 0x14, 0x2a, 0x2a, 0x5a,
-
  0x68, 0xad, 0x25, 0x72, 0x19, 0x1b, 0x8c, 0xd6, 0x7a, 0x4d, 0x44, 0x66,
-
  0xc4, 0xe5, 0x78, 0xd2, 0x8a, 0x6d, 0xa8, 0x5d, 0xcd, 0x4b, 0xf8, 0xe8,
-
  0x7b, 0x6e, 0xe4, 0x6f, 0xbd, 0xef, 0x9f, 0x76, 0xe5, 0x0c, 0x75, 0xd1,
-
  0xba, 0xc6, 0xbd, 0xd9, 0xeb, 0x14, 0x0d, 0xdb, 0xa2, 0x5c, 0xc2, 0xa4,
-
  0xdc, 0xce, 0xab, 0x05, 0x85, 0xff, 0x10, 0x54, 0x75, 0xc3, 0x88, 0xce,
-
  0xa9, 0xe0, 0x84, 0x87, 0x5a, 0x49, 0xab, 0x1e, 0xb0, 0x57, 0x59, 0x44,
-
  0x91, 0x41, 0xdb, 0x47, 0xfc, 0x0c, 0xcf, 0x37, 0x6a, 0xac, 0x51, 0xb2,
-
  0x3c, 0x6d, 0x86, 0x24, 0x5d, 0x96, 0x93, 0x91, 0x20, 0xb4, 0xd0, 0x00,
-
  0x58, 0xcf, 0xc8, 0x4d, 0x12, 0xa4, 0x85, 0x7c, 0xd7, 0x9a, 0x68, 0x0b,
-
  0x0d, 0xb8, 0x85, 0x62, 0xae, 0xdc, 0x84, 0x28, 0xd9, 0x8a, 0xf7, 0x9a,
-
  0x20, 0x7b, 0x12, 0x74, 0x81, 0x0d, 0xdf, 0x9c, 0x8a, 0xc1, 0x47, 0x8a,
-
  0x8e, 0xd0, 0x00, 0x6c, 0xcc, 0xb7, 0x22, 0x41, 0x8d, 0x7e, 0x12, 0x3d,
-
  0x30, 0x3d, 0x32, 0xcd, 0x9a, 0xab, 0xdf, 0xee, 0xbc, 0xdc, 0xee, 0x09,
-
  0x75, 0xfe, 0xdf, 0x7b, 0x5d, 0xf4, 0x39, 0x39, 0x96, 0x7f, 0x5f, 0xe8,
-
  0x6d, 0x9b, 0x80, 0xda, 0x58, 0x95, 0x28, 0xfb, 0x28, 0x2b, 0x0f, 0xb5,
-
  0xbd, 0xfb, 0xc3, 0xce, 0xfe, 0xeb, 0xdd, 0x57, 0xdb, 0xbb, 0x07, 0xd2,
-
  0xc0, 0xc1, 0x35, 0xa8, 0xa2, 0x75, 0x04, 0x08, 0x8e, 0x2a, 0x84, 0x05,
-
  0x09, 0x29, 0x9c, 0x27, 0x2a, 0xda, 0x5f, 0x5c, 0xd8, 0xbf, 0x5d, 0x6f,
-
  0x4f, 0x9e, 0xe1, 0x23, 0x16, 0x78, 0xc2, 0x0d, 0xb8, 0x80, 0xe6, 0xdd,
-
  0x47, 0x88, 0x4f, 0x57, 0xbd, 0x4a, 0xb4, 0x24, 0x12, 0x19, 0x88, 0x01,
-
  0xbb, 0x88, 0x20, 0x22, 0xd6, 0x03, 0x76, 0x79, 0xba, 0xac, 0x85, 0x75,
-
  0xa4, 0xc0, 0xa5, 0x47, 0x9e, 0xf8, 0x20, 0xa4, 0xd3, 0xe5, 0x88, 0xdf,
-
  0x03, 0x13, 0xf0, 0xb5, 0x98, 0xb2, 0x82, 0xaf, 0x49, 0x97, 0x6d, 0xe8,
-
  0x53, 0x48, 0x22, 0xde, 0x3b, 0x42, 0x10, 0xcc, 0x76, 0x2b, 0x2c, 0xae,
-
  0x5e, 0x8d, 0xd5, 0xf2, 0xbc, 0x87, 0xa5, 0x79, 0x9c, 0x8d, 0x7c, 0xfe,
-
  0xb3, 0x99, 0xc2, 0xc2, 0x66, 0xff, 0xf2, 0x1c, 0x02, 0xdf, 0xd7, 0x3f,
-
  0x3f, 0x03, 0x49, 0xff, 0x12, 0xf6, 0xbb, 0x57, 0x29, 0x32, 0x9c, 0x3c,
-
  0x1b, 0x6b, 0x0f, 0x20, 0x9d, 0x14, 0x1b, 0xc3, 0xf2, 0x62, 0xd2, 0x26,
-
  0xfd, 0xdc, 0x87, 0x74, 0xfb, 0x7e, 0x86, 0x46, 0x7b, 0xda, 0xea, 0xcf,
-
  0x48, 0x62, 0xb6, 0xd6, 0x7e, 0xf9, 0x2c, 0xcd, 0xe7, 0x4d, 0x1a, 0x92,
-
  0x2a, 0x97, 0x32, 0x29, 0xae, 0xb6, 0xbc, 0x54, 0xc6, 0x7f, 0x93, 0xec,
-
  0x12, 0xcf, 0x05, 0xa4, 0x3a, 0x9a, 0x69, 0xa8, 0x92, 0x88, 0xc5, 0x12,
-
  0x83, 0x52, 0xe7, 0x8d, 0xe9, 0x86, 0xcb, 0x4b, 0xc8, 0x37, 0x6c, 0x4b,
-
  0xd1, 0x37, 0x56, 0x78, 0x6b, 0x6b, 0xd5, 0x37, 0xa4, 0x6a, 0xcb, 0x2c,
-
  0x37, 0x5f, 0xbe, 0xfc, 0xc3, 0x53, 0x1b, 0x88, 0x1c, 0xac, 0xaf, 0x77,
-
  0xdc, 0xfe, 0x29, 0xcf, 0x4a, 0x46, 0x99, 0x76, 0xb7, 0xfb, 0x5a, 0x7b,
-
  0x7b, 0xbe, 0x10, 0x4e, 0x31, 0xdc, 0xea, 0xe8, 0xb8, 0xbe, 0x27, 0x89,
-
  0xc5, 0xf5, 0xd7, 0xa1, 0xeb, 0xf4, 0x0b, 0x09, 0xbd, 0x53, 0x65, 0x5b,
-
  0x0a, 0x72, 0x10, 0x4c, 0x68, 0xec, 0xe5, 0x92, 0x99, 0xd2, 0x24, 0x19,
-
  0xcd, 0x60, 0xa2, 0x0a, 0xcc, 0x5d, 0x20, 0xcb, 0x17, 0x96, 0xa0, 0xc9,
-
  0xa0, 0x7e, 0x5b, 0xdc, 0xfd, 0x8f, 0xbb, 0x3c, 0x19, 0x62, 0x03, 0xb3,
-
  0x32, 0x79, 0xbc, 0xd4, 0xd9, 0x3b, 0x42, 0xf2, 0x60, 0x1b, 0x95, 0x84,
-
  0x84, 0x91, 0xba, 0xe3, 0x39, 0x0e, 0x6e, 0x8f, 0x06, 0x14, 0x60, 0x0b,
-
  0x0c, 0x9d, 0xb9, 0xcc, 0x4b, 0x6a, 0x08, 0x34, 0x86, 0xa6, 0x60, 0xa9,
-
  0x53, 0xd0, 0xc6, 0xdf, 0x8e, 0x50, 0xf5, 0x1e, 0x8b, 0x30, 0x98, 0xd6,
-
  0xd5, 0xf0, 0x04, 0x8c, 0x52, 0xec, 0x6a, 0xd7, 0x60, 0x20, 0x6b, 0xc5,
-
  0xbb, 0x5a, 0x81, 0x36, 0x5c, 0x0e, 0xd6, 0x73, 0x59, 0xb1, 0x46, 0x21,
-
  0x8d, 0xad, 0xcb, 0x4b, 0x73, 0xa1, 0xf2, 0x73, 0x07, 0x32, 0x30, 0x1c,
-
  0x26, 0x8f, 0x79, 0xc0, 0xbb, 0x6c, 0xcd, 0x57, 0x62, 0x56, 0x4c, 0x0b,
-
  0x40, 0x2a, 0xaf, 0x7e, 0x6f, 0xa5, 0xa8, 0x64, 0x7d, 0xe7, 0x4a, 0x44,
-
  0xe9, 0xb7, 0xf3, 0xef, 0x87, 0x1e, 0xbc, 0x76, 0x1b, 0x23, 0x61, 0x24,
-
  0xaf, 0x04, 0xb7, 0xae, 0x3c, 0x8c, 0xbd, 0x40, 0xc0, 0xfc, 0x67, 0x1e,
-
  0x09, 0x9c, 0xe9, 0x52, 0x88, 0xf5, 0x76, 0x83, 0x31, 0x22, 0x72, 0x42,
-
  0x97, 0x1d, 0xa9, 0x8a, 0x79, 0x1a, 0xa4, 0xd3, 0x8c, 0x97, 0xd1, 0x91,
-
  0xc3, 0xe3, 0x24, 0x92, 0x6a, 0x8c, 0x89, 0x90, 0x7b, 0x18, 0xc9, 0x00,
-
  0x4c, 0x82, 0xf7, 0x64, 0x62, 0x25, 0x5f, 0x46, 0xd9, 0x87, 0x26, 0x04,
-
  0x3b, 0xd7, 0x62, 0x48, 0x02, 0xa3, 0x1f, 0x8e, 0xc9, 0x48, 0x8f, 0x90,
-
  0x1e, 0x5b, 0x09, 0xd2, 0x6c, 0xda, 0xe8, 0x82, 0xa4, 0x3c, 0xe1, 0xbc,
-
  0x5b, 0x3b, 0x2f, 0xf6, 0x29, 0x22, 0xa8, 0x6c, 0x8d, 0xca, 0x09, 0xcc,
-
  0xf2, 0x60, 0x2d, 0x14, 0x14, 0x46, 0x0e, 0xf3, 0x8f, 0xa8, 0xc5, 0xb1,
-
  0x9e, 0xed, 0x54, 0x43, 0x21, 0x54, 0x17, 0x6e, 0x39, 0x4a, 0xd5, 0x51,
-
  0xa0, 0xce, 0x16, 0x63, 0xa4, 0x4d, 0x9f, 0xd4, 0x51, 0x2c, 0x2f, 0x39,
-
  0xe6, 0x0b, 0x8f, 0x89, 0x0a, 0xbd, 0xb0, 0x5e, 0x07, 0x92, 0xad, 0x99,
-
  0x3b, 0xab, 0x29, 0x3f, 0xf2, 0xfd, 0xe3, 0xee, 0x13, 0xc4, 0x93, 0xc0,
-
  0xdd, 0x42, 0x9c, 0x08, 0x0b, 0xe2, 0x59, 0x5e, 0x6a, 0xad, 0x3f, 0xdd,
-
  0xe8, 0xae, 0x3f, 0x42, 0xea, 0xf8, 0xda, 0xbd, 0xf5, 0x47, 0x2d, 0x0d,
-
  0x68, 0xe1, 0x49, 0x93, 0xf0, 0x49, 0x9f, 0x78, 0x8e, 0x6c, 0x68, 0x2f,
-
  0xb6, 0x8c, 0x9f, 0xed, 0xed, 0xbd, 0xd8, 0x3c, 0xd8, 0x2c, 0x9e, 0x07,
-
  0xda, 0x01, 0xf7, 0x48, 0x13, 0x38, 0x54, 0xbf, 0xca, 0xd0, 0xbf, 0xd5,
-
  0xe9, 0x49, 0x07, 0xc5, 0x74, 0x72, 0x25, 0xb2, 0x3b, 0xeb, 0x64, 0xbb,
-
  0xcd, 0xef, 0x6c, 0x0c, 0x21, 0xde, 0x4b, 0x61, 0x7b, 0xe1, 0xcd, 0x8b,
-
  0xc9, 0xe0, 0x1c, 0x60, 0x3c, 0xf8, 0xbe, 0x91, 0xcc, 0x87, 0x11, 0xcf,
-
  0x46, 0x91, 0xed, 0x6d, 0xbd, 0x7e, 0xf9, 0xe6, 0xd5, 0x6e, 0xaf, 0x78,
-
  0x2e, 0xb1, 0x4a, 0x81, 0x40, 0x2e, 0x07, 0x7d, 0x54, 0x7e, 0x5f, 0x5e,
-
  0x12, 0x26, 0xd5, 0x2e, 0x1a, 0xa9, 0x2f, 0x89, 0x56, 0xe8, 0xd0, 0x1f,
-
  0xe2, 0xc1, 0x95, 0x01, 0xdb, 0x15, 0x6c, 0x0d, 0x2e, 0x2f, 0xb1, 0xc5,
-
  0x04, 0xe3, 0xaf, 0xd4, 0x9a, 0xd1, 0x54, 0x8f, 0x03, 0x35, 0x9f, 0x62,
-
  0xfd, 0x3a, 0x47, 0xa5, 0xa6, 0xf6, 0x8b, 0x51, 0x61, 0xe7, 0x44, 0xc4,
-
  0x49, 0x19, 0x82, 0x24, 0xdb, 0x4b, 0xc8, 0x1c, 0xf4, 0xb4, 0xc1, 0x29,
-
  0x12, 0x24, 0x02, 0x8f, 0xc4, 0xe6, 0x0b, 0x79, 0x09, 0xa0, 0xd3, 0x65,
-
  0x79, 0x65, 0x89, 0xaf, 0x04, 0xf7, 0xd9, 0xda, 0x3c, 0xfc, 0xe6, 0xcd,
-
  0xee, 0x8b, 0x97, 0xdb, 0x56, 0x9a, 0x3d, 0xce, 0x4b, 0xd0, 0xe4, 0x0d,
-
  0x30, 0x5f, 0xd8, 0x50, 0x50, 0x82, 0xaa, 0x89, 0xea, 0x2c, 0x0e, 0x39,
-
  0xb2, 0x88, 0xe3, 0x81, 0xdb, 0x4a, 0x19, 0xf0, 0x3e, 0x6e, 0x19, 0x0f,
-
  0xbc, 0x6c, 0xb4, 0x98, 0xa0, 0x23, 0xa4, 0xa3, 0xfa, 0xfe, 0xf5, 0xab,
-
  0x6d, 0x27, 0x04, 0x1f, 0x4f, 0x9d, 0x44, 0x4e, 0x47, 0x2c, 0x54, 0x42,
-
  0x47, 0x9d, 0x55, 0xc7, 0x6f, 0xeb, 0x8c, 0x16, 0xb8, 0x0a, 0x0c, 0xfb,
-
  0x09, 0xf7, 0xdf, 0x22, 0x42, 0xf0, 0xc5, 0x1b, 0x08, 0x76, 0xdb, 0x60,
-
  0x34, 0x93, 0xc5, 0x63, 0x63, 0xc5, 0x4f, 0x2f, 0xbe, 0x3b, 0xdc, 0x7a,
-
  0xbd, 0xfb, 0xed, 0xce, 0x77, 0x1c, 0x4d, 0x32, 0xb8, 0x04, 0x0f, 0xa9,
-
  0x78, 0x9e, 0x4c, 0x40, 0xc7, 0xaa, 0xf9, 0x09, 0x39, 0x38, 0x49, 0x0e,
-
  0x09, 0x13, 0x01, 0x8e, 0x62, 0x7d, 0x68, 0x45, 0x09, 0x9d, 0x52, 0x48,
-
  0x5b, 0x5e, 0x72, 0xdc, 0x14, 0x7b, 0x51, 0xde, 0x6c, 0xa0, 0x60, 0x49,
-
  0x30, 0xac, 0xf6, 0xef, 0xc7, 0x24, 0xd9, 0x91, 0xe5, 0xa5, 0xb9, 0xfa,
-
  0x0b, 0x76, 0xb1, 0x2e, 0x4e, 0x8e, 0xf4, 0xdc, 0x48, 0xb9, 0x9e, 0xdc,
-
  0xfb, 0x19, 0x46, 0xa4, 0x70, 0x51, 0xc6, 0x39, 0xc4, 0x33, 0x68, 0x79,
-
  0x15, 0x52, 0xa2, 0x14, 0x0a, 0x8a, 0x15, 0x98, 0x28, 0xd5, 0x21, 0xa7,
-
  0x29, 0x7e, 0x56, 0x04, 0x20, 0x99, 0x5a, 0x4a, 0xe7, 0x09, 0x6c, 0x57,
-
  0x60, 0x13, 0x57, 0xf1, 0xea, 0x53, 0xd3, 0x1a, 0xb8, 0x28, 0x83, 0x20,
-
  0x1d, 0xb5, 0x4a, 0xb8, 0x79, 0x60, 0x54, 0x98, 0x44, 0x27, 0x99, 0xc3,
-
  0xea, 0x33, 0xcc, 0xb3, 0x9c, 0xd4, 0x35, 0x90, 0xcd, 0x4e, 0x47, 0xb3,
-
  0xe9, 0x10, 0x2c, 0xa4, 0x08, 0xc7, 0xb2, 0x3f, 0x25, 0x44, 0xe1, 0x38,
-
  0x70, 0x55, 0x7e, 0x3b, 0x99, 0xd5, 0xfc, 0xb2, 0x56, 0xf2, 0x84, 0x1a,
-
  0x81, 0x90, 0x60, 0x71, 0x1c, 0x0b, 0x46, 0xc3, 0xe5, 0x78, 0x78, 0x52,
-
  0x03, 0xd1, 0x86, 0x02, 0xeb, 0x22, 0xc2, 0x9c, 0x5a, 0x04, 0x91, 0x65,
-
  0x91, 0x91, 0xf0, 0x44, 0x72, 0x38, 0xe7, 0xe5, 0xaf, 0x74, 0xa7, 0x04,
-
  0x6a, 0x70, 0xb0, 0xe2, 0x49, 0xeb, 0x2e, 0x2f, 0x11, 0x28, 0x5c, 0x19,
-
  0x00, 0xfd, 0x97, 0xa2, 0xde, 0x9d, 0x58, 0x39, 0xd9, 0xb4, 0x02, 0x6d,
-
  0xa1, 0xaa, 0x50, 0x37, 0x3b, 0x2b, 0x7a, 0x51, 0x35, 0x88, 0x56, 0xc2,
-
  0x0a, 0x2f, 0xbc, 0xe2, 0x86, 0x1e, 0xb1, 0xbf, 0xbd, 0x7c, 0xfd, 0xdd,
-
  0x8b, 0x9d, 0x7d, 0xce, 0x43, 0x07, 0x26, 0xc5, 0x85, 0x1a, 0xf4, 0x9b,
-
  0x83, 0x1a, 0x29, 0x8e, 0x8d, 0x11, 0x64, 0xdb, 0x2b, 0xf7, 0xde, 0x4c,
-
  0x76, 0x5a, 0x5d, 0x45, 0x03, 0xdf, 0x63, 0x8f, 0xba, 0xe3, 0xda, 0x5d,
-
  0xe0, 0x72, 0xfd, 0x19, 0x90, 0x1c, 0xff, 0x45, 0xe8, 0x42, 0x95, 0xdd,
-
  0x00, 0xa4, 0xe5, 0x6f, 0xb4, 0x95, 0x8f, 0x51, 0xaf, 0x96, 0xcd, 0xc7,
-
  0xcf, 0x7e, 0xe1, 0xb0, 0x96, 0x55, 0x96, 0x75, 0x99, 0xe7, 0x77, 0x2d,
-
  0x2f, 0xad, 0x84, 0x36, 0xcf, 0xaa, 0xf7, 0xe1, 0x0e, 0x7b, 0x31, 0x06,
-
  0x2d, 0xc6, 0x58, 0xe8, 0x5a, 0x21, 0x66, 0xf4, 0x66, 0x3e, 0xc6, 0xa6,
-
  0x05, 0xd1, 0x96, 0x05, 0x5b, 0x20, 0x62, 0x84, 0xa5, 0xfe, 0xd1, 0x91,
-
  0x13, 0x96, 0x19, 0x16, 0x30, 0x3a, 0x9d, 0x1e, 0x5f, 0x6c, 0x50, 0x9e,
-
  0xff, 0xd7, 0x2c, 0x48, 0x8c, 0x55, 0xf1, 0xb7, 0x37, 0x3b, 0x5b, 0x29,
-
  0xd0, 0x0b, 0xd5, 0xde, 0xef, 0xb7, 0x5f, 0x02, 0x8c, 0xe4, 0x4d, 0x2d,
-
  0x89, 0x1f, 0x3f, 0xbc, 0xea, 0x35, 0x79, 0x14, 0x82, 0x60, 0x83, 0x0e,
-
  0x16, 0x58, 0xa4, 0x55, 0xb1, 0x7c, 0xb1, 0xf5, 0xb2, 0x20, 0xfe, 0xbd,
-
  0xc0, 0x60, 0x9c, 0x55, 0x43, 0x43, 0x91, 0x00, 0xe3, 0xd9, 0xda, 0xde,
-
  0x3f, 0x38, 0xb4, 0xcd, 0xfb, 0x38, 0xb7, 0xa6, 0x49, 0xf9, 0x0b, 0x72,
-
  0x6b, 0x1f, 0x12, 0xb4, 0xf5, 0xe2, 0x39, 0xba, 0xfb, 0xef, 0xbf, 0x42,
-
  0xc2, 0xa0, 0xfe, 0xba, 0xfd, 0xf7, 0x40, 0xe4, 0x32, 0x28, 0xcb, 0x1f,
-
  0xd3, 0x81, 0xb1, 0x68, 0xa4, 0xe8, 0xc5, 0x8d, 0xae, 0x9b, 0x34, 0x6b,
-
  0x2f, 0xb6, 0x8d, 0x2f, 0xa1, 0x62, 0x1c, 0x79, 0x6e, 0x10, 0xd2, 0x09,
-
  0xd5, 0xa9, 0x09, 0x50, 0xb8, 0x62, 0xd2, 0x3c, 0x3f, 0x89, 0x55, 0xd4,
-
  0x6c, 0x65, 0x3d, 0xd8, 0xca, 0x20, 0xd1, 0xb4, 0x81, 0xcd, 0xd2, 0xca,
-
  0xca, 0xbc, 0xdd, 0x72, 0x78, 0xf5, 0x6b, 0xe5, 0xb3, 0x51, 0x70, 0x51,
-
  0x36, 0x33, 0xa9, 0xd4, 0x69, 0xae, 0xf4, 0x61, 0xb2, 0x9d, 0xbc, 0xa3,
-
  0x42, 0xcf, 0x18, 0xe9, 0xb3, 0xb1, 0x88, 0xf9, 0x8f, 0xe1, 0xc8, 0xc0,
-
  0xc6, 0xfc, 0xd6, 0xc3, 0xc7, 0x04, 0xf8, 0x23, 0xa6, 0xb7, 0x65, 0x39,
-
  0xd8, 0xe9, 0x1d, 0x82, 0x5a, 0xb8, 0x9e, 0x36, 0xf1, 0x72, 0x70, 0x34,
-
  0xa9, 0xc0, 0x74, 0x57, 0xf0, 0xc8, 0x7a, 0x77, 0x23, 0x9c, 0xd9, 0xf7,
-
  0xab, 0xed, 0xe2, 0x9b, 0x31, 0xe2, 0x55, 0x92, 0x04, 0x4d, 0x9e, 0x03,
-
  0xf0, 0xc9, 0xf0, 0x99, 0x19, 0x27, 0x7a, 0xdb, 0xfb, 0x41, 0x15, 0x90,
-
  0x1d, 0xf8, 0xf2, 0x12, 0x1d, 0x85, 0x9b, 0xb6, 0x09, 0x76, 0xed, 0xd8,
-
  0x6e, 0x2e, 0xd3, 0x51, 0x6a, 0x22, 0x65, 0x8a, 0xc0, 0x34, 0x33, 0x55,
-
  0x82, 0xe7, 0xa4, 0xf5, 0xbf, 0x92, 0x51, 0xff, 0x63, 0xf3, 0x42, 0x12,
-
  0xba, 0xc0, 0x40, 0x5e, 0x94, 0xd3, 0xd2, 0xe4, 0xd4, 0x26, 0x8f, 0x4d,
-
  0x0e, 0x62, 0xe4, 0xc7, 0x69, 0x75, 0x9a, 0x46, 0x4c, 0x38, 0xb1, 0x91,
-
  0x20, 0x62, 0x58, 0x26, 0x83, 0x31, 0x7c, 0x2b, 0x11, 0x62, 0xac, 0x5e,
-
  0x19, 0xbd, 0xa5, 0x72, 0x8b, 0xf6, 0x1d, 0x7e, 0x1e, 0xbc, 0x0e, 0x42,
-
  0x69, 0xf8, 0x63, 0xfb, 0xdb, 0x9d, 0x9f, 0xcc, 0x42, 0x76, 0x10, 0x6d,
-
  0x3c, 0x0a, 0x27, 0x82, 0x58, 0x9f, 0x5c, 0xcb, 0xb0, 0xf2, 0x93, 0x89,
-
  0xb5, 0xc0, 0x0a, 0x28, 0x49, 0xd5, 0x5b, 0x81, 0x87, 0x5c, 0x56, 0x4c,
-
  0x40, 0xbf, 0x9a, 0xa5, 0x5d, 0x07, 0x4d, 0xd2, 0x65, 0xd8, 0xc9, 0x4c,
-
  0x07, 0xb4, 0x15, 0xcc, 0x65, 0xd8, 0xab, 0xc9, 0x41, 0x06, 0x14, 0x66,
-
  0xa7, 0xf9, 0x03, 0xfa, 0x81, 0x9b, 0x44, 0x97, 0xa5, 0x7c, 0x2a, 0x15,
-
  0x86, 0x04, 0x8d, 0x28, 0x08, 0x38, 0xed, 0xc4, 0x72, 0x01, 0xf1, 0x4f,
-
  0xf2, 0xee, 0x0b, 0xc6, 0xbb, 0x4b, 0x24, 0xb0, 0x29, 0x7b, 0x8e, 0x06,
-
  0xe9, 0xaf, 0xe7, 0xc3, 0xb6, 0x4a, 0x51, 0x2a, 0xe5, 0xd7, 0x7a, 0x00,
-
  0x50, 0x5c, 0x21, 0x51, 0x3b, 0xc3, 0x36, 0xbe, 0xb2, 0x32, 0xae, 0x0a,
-
  0x46, 0xcc, 0x84, 0xc5, 0xac, 0x33, 0x01, 0x33, 0xb0, 0x5d, 0x12, 0x13,
-
  0x8a, 0x39, 0xa7, 0x65, 0x35, 0xc9, 0xba, 0xd4, 0x90, 0x6f, 0xad, 0xd7,
-
  0x8d, 0xe6, 0xe7, 0xe7, 0xd2, 0xcb, 0x26, 0x03, 0xfc, 0xa3, 0xfa, 0x41,
-
  0xf3, 0x25, 0x18, 0x2e, 0x23, 0x9a, 0xf8, 0x18, 0x4e, 0x07, 0x79, 0x30,
-
  0x7d, 0xa9, 0xbc, 0xf5, 0x5b, 0x65, 0xf2, 0xda, 0xc3, 0xdb, 0xbe, 0xf5,
-
  0x30, 0x7d, 0xe9, 0xec, 0xd6, 0x6f, 0x75, 0x4c, 0x05, 0x5f, 0x5e, 0xde,
-
  0xfe, 0x69, 0xe7, 0x20, 0x68, 0x56, 0x2f, 0x12, 0xea, 0x9d, 0xe8, 0x51,
-
  0x0d, 0x32, 0xc7, 0x08, 0x7c, 0x0c, 0xf5, 0x77, 0x2c, 0xbf, 0xdf, 0x0a,
-
  0x4d, 0xc1, 0xd7, 0x51, 0x1b, 0x10, 0xee, 0x00, 0x41, 0x7d, 0x13, 0xf1,
-
  0x83, 0x88, 0x39, 0x5c, 0x72, 0x7b, 0x24, 0x79, 0x8d, 0x29, 0xcc, 0x66,
-
  0x6f, 0x62, 0xd8, 0x9b, 0x64, 0x71, 0x6a, 0x25, 0x00, 0x6d, 0x11, 0x11,
-
  0x48, 0x02, 0xef, 0x0e, 0x74, 0x17, 0x35, 0x95, 0x4a, 0x98, 0xdd, 0xd8,
-
  0xf2, 0xee, 0x0d, 0x84, 0x82, 0xd5, 0x10, 0x05, 0xee, 0x56, 0x93, 0x9c,
-
  0x6b, 0xcd, 0x80, 0xc7, 0x13, 0x6b, 0x10, 0x4f, 0x25, 0x1a, 0xd9, 0xd1,
-
  0x2e, 0x3c, 0x92, 0x29, 0x06, 0x6f, 0x66, 0x18, 0x0a, 0x2c, 0x6d, 0x7a,
-
  0x1c, 0x26, 0xd1, 0x77, 0x4e, 0x27, 0xc6, 0xa5, 0x04, 0x00, 0xc2, 0x4e,
-
  0xdb, 0x3a, 0xa4, 0x88, 0x51, 0x46, 0xdc, 0x24, 0x6b, 0xe7, 0xf0, 0x02,
-
  0x3a, 0xe6, 0xc0, 0xd5, 0x86, 0xef, 0xdd, 0x50, 0x1f, 0x04, 0x49, 0xc0,
-
  0x5f, 0x96, 0xb6, 0x01, 0x6b, 0xf8, 0x6d, 0x39, 0x18, 0xca, 0xe5, 0xa4,
-
  0x69, 0xc6, 0x83, 0x5f, 0x4d, 0x5a, 0x04, 0x88, 0x21, 0x4c, 0x2c, 0xe7,
-
  0xe5, 0x50, 0x3c, 0x65, 0x72, 0x00, 0xb4, 0x38, 0xfd, 0x65, 0x29, 0x9c,
-
  0x8e, 0x7b, 0x71, 0x6c, 0x5a, 0x33, 0xea, 0x63, 0x6c, 0x1a, 0xe6, 0x1c,
-
  0x51, 0x20, 0x2e, 0xf2, 0xfc, 0xa4, 0x18, 0x44, 0x66, 0x55, 0x47, 0xd3,
-
  0x02, 0x2e, 0x9e, 0xa4, 0x43, 0x47, 0xb0, 0x14, 0x51, 0x91, 0x9a, 0xa5,
-
  0x68, 0x8b, 0xa2, 0x69, 0xf5, 0x1e, 0xdc, 0x79, 0xc0, 0x8c, 0x11, 0xb1,
-
  0xad, 0xd1, 0x83, 0x22, 0xeb, 0x40, 0xef, 0x02, 0x4b, 0x8c, 0x09, 0x70,
-
  0x84, 0x72, 0x7b, 0x81, 0x9e, 0x1f, 0x03, 0x10, 0x57, 0x00, 0x78, 0xa5,
-
  0xba, 0xe3, 0xf8, 0xa8, 0x44, 0xbd, 0x62, 0xe2, 0x5e, 0x5b, 0x89, 0x1f,
-
  0x5f, 0x4e, 0x8b, 0x87, 0x95, 0x79, 0x05, 0xd2, 0x5f, 0xda, 0x72, 0xe3,
-
  0xa5, 0x22, 0x8d, 0xa6, 0x6c, 0x41, 0x8c, 0x41, 0xc2, 0x7a, 0x18, 0x08,
-
  0x71, 0xec, 0x4f, 0xb3, 0xf4, 0x5d, 0x6d, 0x51, 0xa3, 0x68, 0xed, 0xd1,
-
  0xc2, 0xd6, 0xf0, 0x5a, 0xda, 0x58, 0x1a, 0x88, 0x7c, 0x53, 0x6b, 0x8f,
-
  0xb3, 0x6d, 0x4c, 0xa2, 0x99, 0xd9, 0xa0, 0x3c, 0xf3, 0x24, 0x3c, 0xf3,
-
  0x63, 0x05, 0x68, 0x5b, 0xb5, 0x03, 0x4f, 0xaa, 0x8b, 0xa1, 0x0e, 0x5d,
-
  0x3f, 0x61, 0x28, 0xb0, 0x20, 0x90, 0x4b, 0xe1, 0x00, 0xeb, 0x31, 0xe8,
-
  0x82, 0xee, 0x7a, 0x78, 0x8a, 0xbe, 0x02, 0x43, 0x14, 0x73, 0x1c, 0x98,
-
  0xe1, 0x68, 0xe0, 0x84, 0xa1, 0x59, 0x9c, 0xf2, 0x19, 0xd2, 0xd1, 0x25,
-
  0xa1, 0xda, 0x3e, 0xb0, 0x97, 0x3c, 0x37, 0x3d, 0x09, 0xb1, 0xc5, 0x94,
-
  0x58, 0xe1, 0x0c, 0x8f, 0x47, 0x55, 0x81, 0xb8, 0x50, 0x52, 0x14, 0x01,
-
  0x6f, 0x4d, 0x10, 0xff, 0xda, 0x2d, 0x5e, 0x8d, 0x69, 0xda, 0x63, 0xf0,
-
  0xbc, 0x88, 0x52, 0x93, 0x81, 0x4e, 0xfe, 0x4c, 0x4a, 0x47, 0x41, 0x8a,
-
  0x8b, 0xcd, 0x90, 0xf8, 0x1c, 0x51, 0x84, 0x48, 0x29, 0x96, 0x8d, 0xed,
-
  0x29, 0xf1, 0x3c, 0x6b, 0x6b, 0xc9, 0xec, 0x90, 0xdd, 0xcd, 0x45, 0xed,
-
  0x16, 0x3f, 0x9e, 0x89, 0x34, 0x57, 0x0e, 0xa6, 0x76, 0x5d, 0x8b, 0x2f,
-
  0xc5, 0x4d, 0xea, 0xb6, 0xe8, 0x0c, 0xbe, 0x57, 0x6b, 0x2e, 0xac, 0x78,
-
  0x12, 0x7e, 0x20, 0xb9, 0xf7, 0x75, 0x9d, 0x20, 0x78, 0xb4, 0x63, 0x19,
-
  0x3d, 0x66, 0x2d, 0x31, 0x7a, 0x8d, 0x7c, 0xd3, 0x41, 0x83, 0x60, 0x9a,
-
  0x98, 0x8c, 0x03, 0xf5, 0x26, 0xfa, 0x4c, 0x2c, 0x54, 0x6d, 0x43, 0x5e,
-
  0xd7, 0x21, 0x5f, 0x72, 0x73, 0xf7, 0x36, 0x7b, 0x3d, 0xdb, 0xda, 0x64,
-
  0x17, 0xe3, 0x36, 0x6a, 0xc0, 0x26, 0x0b, 0xa7, 0x6b, 0x81, 0x26, 0x4e,
-
  0x05, 0x2f, 0x2e, 0x2f, 0xc5, 0xec, 0x1a, 0xb6, 0x0d, 0xfe, 0xf0, 0x42,
-
  0x42, 0x94, 0xf3, 0xc9, 0xf8, 0x6c, 0x2e, 0xb9, 0x32, 0xb6, 0x30, 0xbe,
-
  0x32, 0x71, 0x61, 0x6c, 0x65, 0xc4, 0x8a, 0xc0, 0xa5, 0x22, 0xee, 0xb8,
-
  0xf1, 0x5b, 0x5a, 0x4e, 0xdf, 0x5f, 0xe0, 0xf0, 0x5b, 0xaf, 0xf7, 0x9b,
-
  0x33, 0xfa, 0x41, 0x06, 0xdc, 0xfe, 0xe4, 0x19, 0xfd, 0x30, 0x37, 0xa3,
-
  0x07, 0x59, 0xdb, 0xc5, 0xc6, 0xc6, 0x63, 0xc5, 0x0f, 0xd3, 0xe5, 0x4a,
-
  0xa8, 0x3e, 0x69, 0x1d, 0xcf, 0x75, 0x98, 0x2f, 0x9b, 0x6c, 0x3b, 0x34,
-
  0x81, 0x91, 0x37, 0xfc, 0x50, 0x1b, 0xb6, 0xea, 0x70, 0x90, 0x21, 0xe4,
-
  0x3c, 0x17, 0xf1, 0xa0, 0xfb, 0x49, 0x57, 0x89, 0x36, 0x90, 0x21, 0x52,
-
  0xc5, 0x2f, 0x51, 0xa6, 0x7d, 0x3c, 0x8d, 0x6e, 0x66, 0xeb, 0xce, 0x1a,
-
  0x07, 0xbb, 0x50, 0xf4, 0x59, 0xcd, 0x48, 0xd9, 0x24, 0xf7, 0x1a, 0x56,
-
  0xe7, 0xc2, 0x13, 0x45, 0x97, 0x8c, 0xf2, 0x17, 0x31, 0x6b, 0x11, 0x83,
-
  0x73, 0x8e, 0x6d, 0x19, 0x96, 0x57, 0x8a, 0x5f, 0x42, 0xc5, 0xaa, 0x2e,
-
  0xc4, 0xc6, 0x1e, 0xce, 0xc4, 0x69, 0x35, 0x82, 0xf1, 0x5b, 0xa2, 0x25,
-
  0xcd, 0x3a, 0x4d, 0xb4, 0x76, 0xad, 0x85, 0x60, 0x01, 0x0c, 0xda, 0x5b,
-
  0x2d, 0xde, 0x56, 0x19, 0x65, 0x06, 0x1a, 0xd2, 0x70, 0xbc, 0x72, 0xd8,
-
  0x8f, 0x6d, 0x4d, 0x7c, 0x01, 0xa0, 0x7d, 0x49, 0xdd, 0xe9, 0x6e, 0xb2,
-
  0x2c, 0x76, 0x68, 0x2d, 0x84, 0x43, 0xd3, 0xcd, 0x51, 0x88, 0x40, 0x9e,
-
  0xd5, 0xf6, 0xc0, 0xc3, 0xf6, 0xc0, 0x32, 0xca, 0xa1, 0xa2, 0x41, 0xbd,
-
  0xa6, 0xaf, 0x34, 0x0b, 0xfa, 0x39, 0x11, 0x82, 0xcc, 0xf2, 0xb5, 0xac,
-
  0x81, 0xa7, 0x73, 0x03, 0xf2, 0x8c, 0xac, 0x7b, 0xc6, 0x9b, 0xb0, 0x33,
-
  0xb1, 0x28, 0x9e, 0xc6, 0xee, 0xef, 0x6f, 0x1f, 0xec, 0x33, 0x17, 0xc4,
-
  0x4e, 0xdf, 0x2a, 0x4e, 0xa5, 0x60, 0xef, 0x28, 0x93, 0xd0, 0x1b, 0xd5,
-
  0x8e, 0xa3, 0x94, 0x45, 0xf6, 0xdd, 0x92, 0x7f, 0xed, 0x15, 0xcb, 0x25,
-
  0x56, 0x06, 0x10, 0x53, 0x35, 0x52, 0x66, 0xb4, 0xb1, 0xa1, 0xbb, 0x1e,
-
  0xa6, 0x77, 0x5a, 0xe9, 0x45, 0xa1, 0xb0, 0x0c, 0x2a, 0x69, 0x44, 0xc8,
-
  0x17, 0x06, 0x43, 0xd8, 0x8d, 0x2c, 0x59, 0x8f, 0xe3, 0x2c, 0x69, 0xd9,
-
  0xae, 0x37, 0xe9, 0xd1, 0x6d, 0x6c, 0x6c, 0x3f, 0x61, 0x43, 0x47, 0x2c,
-
  0xa3, 0xf4, 0x60, 0x6d, 0x8d, 0x86, 0x88, 0xa3, 0xc0, 0x8c, 0x4c, 0xce,
-
  0x90, 0xa6, 0x30, 0x6d, 0x80, 0xbc, 0x70, 0xdd, 0x29, 0x57, 0xd5, 0x90,
-
  0x83, 0x3b, 0x1d, 0xac, 0x42, 0x82, 0xe3, 0xc8, 0x09, 0xe0, 0x20, 0xff,
-
  0x48, 0xa8, 0x15, 0x5d, 0x87, 0xec, 0x8c, 0x71, 0xa8, 0x82, 0xc4, 0xa2,
-
  0x85, 0x96, 0x32, 0x7b, 0x11, 0xed, 0x32, 0x1a, 0x42, 0x01, 0x6c, 0xd2,
-
  0x9c, 0xed, 0x6d, 0x3c, 0x8c, 0x77, 0x9e, 0x3b, 0x17, 0x58, 0x57, 0x5c,
-
  0xf3, 0xd6, 0xe8, 0xac, 0xa0, 0x5f, 0x35, 0xe3, 0xd4, 0x57, 0x17, 0x70,
-
  0xf5, 0x40, 0x74, 0xd0, 0x2b, 0x89, 0x94, 0xdc, 0x3b, 0x78, 0xbd, 0x6f,
-
  0x9b, 0x63, 0x1d, 0xe0, 0xcc, 0xed, 0x03, 0xb7, 0x50, 0xc7, 0xfe, 0x83,
-
  0x62, 0xc8, 0x4e, 0x14, 0xb9, 0xcd, 0x4e, 0x84, 0x3d, 0x0f, 0x62, 0x7f,
-
  0x2d, 0xa7, 0x46, 0x50, 0x52, 0xb1, 0xed, 0x8a, 0x97, 0x1a, 0x7a, 0xb4,
-
  0xf4, 0x62, 0x93, 0x6f, 0x72, 0xaa, 0x01, 0x65, 0xbf, 0x76, 0xa9, 0x51,
-
  0xf9, 0xa2, 0x5e, 0xaa, 0xae, 0x5b, 0xe1, 0x63, 0xc6, 0x4b, 0x84, 0x07,
-
  0x07, 0xe1, 0x7c, 0x48, 0xb6, 0x77, 0x29, 0x91, 0x5d, 0x2e, 0x4e, 0xd2,
-
  0xae, 0xa0, 0xd7, 0x87, 0x89, 0xb8, 0x2a, 0xce, 0xd9, 0xed, 0x06, 0xcc,
-
  0x5a, 0xbf, 0xdb, 0xd0, 0x07, 0x3f, 0x28, 0x1a, 0x04, 0xcd, 0xda, 0x99,
-
  0x50, 0xa0, 0x23, 0x72, 0x4c, 0x9d, 0x44, 0xb0, 0x4c, 0xed, 0x3d, 0x7d,
-
  0xad, 0x0d, 0xc5, 0x3d, 0x1c, 0x27, 0xad, 0xcd, 0x13, 0xd3, 0xc3, 0xf1,
-
  0x01, 0x99, 0xb8, 0x15, 0x7c, 0xd1, 0xd1, 0xac, 0xcf, 0x1d, 0x46, 0xf0,
-
  0xcc, 0xfd, 0xed, 0xde, 0x81, 0xea, 0x59, 0xf8, 0x73, 0x6e, 0x50, 0x02,
-
  0xb8, 0xac, 0x1f, 0x9a, 0xe5, 0x60, 0x79, 0x09, 0xdc, 0x07, 0x69, 0x08,
-
  0xb0, 0x0a, 0xa2, 0x51, 0x8f, 0xf3, 0xb2, 0xde, 0xee, 0xdb, 0x61, 0x12,
-
  0x54, 0x53, 0xdd, 0x54, 0x1e, 0x22, 0x7e, 0xd0, 0xd2, 0x36, 0x5b, 0x41,
-
  0x6c, 0x90, 0xd1, 0x28, 0x28, 0x2a, 0xdf, 0x7e, 0xe0, 0x47, 0x11, 0x3c,
-
  0x5b, 0x5f, 0xde, 0x11, 0x58, 0xed, 0x21, 0x3f, 0xec, 0xd8, 0xc6, 0x92,
-
  0xa5, 0xca, 0x3e, 0x1a, 0x36, 0x19, 0x9b, 0x78, 0xa8, 0x66, 0x6c, 0x93,
-
  0x14, 0x92, 0x11, 0xe0, 0x63, 0xcb, 0x89, 0xa3, 0x7c, 0x91, 0xd2, 0xc6,
-
  0x7d, 0x10, 0xe2, 0x37, 0x65, 0x3f, 0xe6, 0x8e, 0xca, 0x3c, 0x33, 0x06,
-
  0xaa, 0x4e, 0x0c, 0xca, 0x14, 0xe5, 0x64, 0x88, 0x60, 0xbb, 0x70, 0x78,
-
  0x27, 0x02, 0x06, 0xa5, 0xc9, 0xa3, 0xda, 0x1c, 0x99, 0x32, 0x6c, 0x33,
-
  0xc7, 0x89, 0xfc, 0x59, 0xf6, 0x95, 0xa1, 0x46, 0x31, 0x12, 0x96, 0x72,
-
  0x67, 0xa8, 0xdd, 0x62, 0x0f, 0x3e, 0x2b, 0x81, 0x26, 0xfe, 0xb3, 0xb6,
-
  0x04, 0xa2, 0x45, 0x68, 0x82, 0x43, 0x8d, 0x0d, 0xc2, 0xe9, 0x61, 0xb0,
-
  0x02, 0xff, 0x4c, 0xd4, 0xa0, 0x7c, 0x42, 0x4f, 0xed, 0xbd, 0x3a, 0x8c,
-
  0x15, 0x58, 0x6a, 0xe9, 0xb7, 0x0f, 0x48, 0x16, 0x56, 0x1b, 0xd2, 0xb9,
-
  0x19, 0x0e, 0x93, 0x56, 0x53, 0xee, 0x4b, 0x17, 0x5e, 0x3f, 0x32, 0xe3,
-
  0x7a, 0xd6, 0x0a, 0x78, 0xe7, 0xa6, 0xae, 0x00, 0x2a, 0xa4, 0x05, 0x3a,
-
  0x86, 0xfc, 0x11, 0x9a, 0xa1, 0x6b, 0xd5, 0xcd, 0x3b, 0x59, 0x8c, 0x23,
-
  0x97, 0x4c, 0x6b, 0x6d, 0x59, 0xe1, 0x39, 0x6d, 0x0f, 0xe4, 0xe3, 0xfb,
-
  0xed, 0x5c, 0x3d, 0x1b, 0x83, 0xa6, 0x7e, 0x0b, 0x78, 0x4c, 0x10, 0x04,
-
  0x19, 0x8b, 0x1a, 0x94, 0xde, 0xa9, 0x73, 0xf4, 0x07, 0x0f, 0xad, 0x95,
-
  0x13, 0x80, 0x3b, 0x7a, 0x33, 0xf1, 0x88, 0x87, 0xd3, 0x2d, 0xa5, 0xeb,
-
  0x06, 0xfe, 0x54, 0x26, 0xf8, 0x27, 0xdc, 0xf5, 0x01, 0x36, 0xf2, 0x60,
-
  0x0c, 0x3d, 0x07, 0xe1, 0x13, 0x0e, 0x54, 0xd0, 0x95, 0x20, 0xbe, 0xc4,
-
  0xcc, 0xe7, 0x5f, 0x19, 0x6a, 0xe1, 0xd9, 0xc0, 0x60, 0x2e, 0xcf, 0xcb,
-
  0xf7, 0x83, 0xf3, 0xd9, 0x79, 0xb8, 0x1e, 0x98, 0xff, 0x65, 0x4d, 0x3f,
-
  0xa1, 0xce, 0x29, 0x29, 0xf1, 0x56, 0xb1, 0x2d, 0xb2, 0xa1, 0xb1, 0xab,
-
  0x46, 0x96, 0x71, 0x1e, 0x18, 0x8d, 0x40, 0xb6, 0x50, 0xd0, 0xa6, 0x6e,
-
  0x55, 0x0a, 0xd8, 0x72, 0xb9, 0xbc, 0x24, 0xa2, 0x56, 0x84, 0xba, 0x8b,
-
  0x85, 0xf1, 0x28, 0xba, 0xe8, 0x93, 0xf2, 0x9d, 0x01, 0xfc, 0xcb, 0x25,
-
  0xf9, 0x4f, 0xca, 0x34, 0xa1, 0x17, 0xf0, 0xe1, 0xe5, 0x25, 0xc1, 0xba,
-
  0x22, 0x6e, 0x40, 0x8a, 0xb0, 0xfc, 0xe0, 0x29, 0xad, 0x10, 0xaa, 0xa2,
-
  0x22, 0x46, 0x11, 0x00, 0xc8, 0x59, 0x00, 0xd3, 0xc3, 0x0d, 0x8d, 0x09,
-
  0xd0, 0x6b, 0xc0, 0x8e, 0xb8, 0x48, 0x8d, 0x61, 0xfd, 0x80, 0x01, 0x7b,
-
  0xda, 0xd6, 0x10, 0x10, 0x9a, 0x24, 0xc8, 0x65, 0xa4, 0x94, 0x15, 0x95,
-
  0xc3, 0xec, 0x30, 0x3f, 0xbc, 0x6f, 0x87, 0x79, 0x72, 0x75, 0x41, 0xb3,
-
  0xee, 0x29, 0x84, 0xc3, 0x26, 0x15, 0x3e, 0x04, 0xdb, 0xd8, 0x92, 0xc3,
-
  0x01, 0xc9, 0x67, 0xfe, 0x8d, 0xb2, 0x4e, 0xbc, 0x5c, 0x7c, 0x25, 0xbd,
-
  0xd7, 0xb4, 0xc0, 0xb3, 0x19, 0x7e, 0x59, 0x95, 0x58, 0x1f, 0x7b, 0xa4,
-
  0x8f, 0xcd, 0x24, 0xff, 0x4e, 0x72, 0xbc, 0xae, 0x7b, 0x98, 0x72, 0x93,
-
  0x89, 0x8b, 0x76, 0xf3, 0xcb, 0x35, 0x9b, 0x24, 0x65, 0xdb, 0xd3, 0x4f,
-
  0x33, 0xdd, 0x14, 0x3c, 0x39, 0xee, 0x3d, 0x67, 0x30, 0xb8, 0x38, 0x73,
-
  0x92, 0x7e, 0x84, 0x3b, 0x65, 0x0f, 0xf9, 0xdd, 0x69, 0x7a, 0x77, 0xc4,
-
  0x1e, 0x4c, 0x40, 0xc7, 0xed, 0x6c, 0x08, 0x59, 0x6d, 0x6d, 0x66, 0x60,
-
  0x3f, 0xd6, 0x9c, 0x58, 0x3b, 0xc2, 0x74, 0xc6, 0xa7, 0xa3, 0xc1, 0xaf,
-
  0x55, 0x3f, 0x5e, 0x24, 0xac, 0xab, 0xc9, 0x7a, 0xc1, 0xf2, 0xe4, 0x7d,
-
  0xee, 0x3a, 0xc9, 0x37, 0xa9, 0x9c, 0x8c, 0xa0, 0x3a, 0x71, 0xad, 0xc9,
-
  0x53, 0x0f, 0x78, 0x8b, 0x9b, 0x94, 0x84, 0x9b, 0x01, 0x53, 0x90, 0x2a,
-
  0x82, 0x19, 0xdf, 0x79, 0x44, 0xfe, 0xac, 0x2b, 0xee, 0x65, 0x83, 0x95,
-
  0xe5, 0xd4, 0x84, 0xed, 0xb8, 0x14, 0xdf, 0x5e, 0xd9, 0xb8, 0xbc, 0x1f,
-
  0x3d, 0xba, 0xc6, 0x8a, 0xc2, 0xae, 0xb6, 0xb9, 0xd1, 0xf6, 0xe8, 0x63,
-
  0xa5, 0x43, 0x2b, 0x07, 0xd6, 0xf6, 0x54, 0x90, 0x76, 0xa2, 0xda, 0x39,
-
  0x4b, 0x13, 0x35, 0x94, 0xf4, 0xa7, 0x5c, 0x4a, 0xbb, 0x66, 0x96, 0x6a,
-
  0xd0, 0xaf, 0x8b, 0x81, 0x91, 0xf8, 0x23, 0x6c, 0xf2, 0xb7, 0x74, 0x90,
-
  0x45, 0x09, 0x70, 0x54, 0x1c, 0x64, 0xb0, 0x6f, 0x7c, 0xf0, 0x29, 0x77,
-
  0xcc, 0xb8, 0xb9, 0xeb, 0x11, 0x0b, 0x1f, 0x7e, 0xbc, 0x16, 0xa5, 0x9a,
-
  0x3e, 0xc2, 0xb0, 0x04, 0x96, 0x76, 0xf1, 0xb3, 0xd8, 0xbb, 0x9d, 0x21,
-
  0xea, 0x13, 0x0c, 0xe5, 0xeb, 0x26, 0x17, 0x7d, 0xbc, 0x91, 0xf0, 0x95,
-
  0x83, 0xf4, 0x9a, 0x2e, 0x76, 0x5e, 0xd8, 0x33, 0xf7, 0x6d, 0x1e, 0x56,
-
  0x34, 0x5e, 0xaa, 0x36, 0x17, 0x2b, 0x78, 0x61, 0xd5, 0x9e, 0xc2, 0xbe,
-
  0xee, 0x8e, 0x05, 0xb3, 0x9f, 0x89, 0x3b, 0xf9, 0xd7, 0x8f, 0x13, 0x8a,
-
  0x37, 0x81, 0xcd, 0xd0, 0x08, 0x94, 0xf2, 0x8a, 0x15, 0x58, 0xfe, 0xff,
-
  0x6c, 0x36, 0x09, 0x16, 0xb3, 0xab, 0xff, 0xec, 0x2d, 0x3c, 0xd1, 0x9d,
-
  0x72, 0xbb, 0x84, 0xbb, 0x52, 0x5d, 0xc9, 0x62, 0x28, 0x54, 0x66, 0x54,
-
  0xb0, 0x97, 0xb1, 0xc4, 0xe1, 0xa2, 0x99, 0x8d, 0xe2, 0xc9, 0x11, 0x19,
-
  0x5b, 0x51, 0xdf, 0xfa, 0x69, 0x95, 0xd3, 0x5e, 0xef, 0x7b, 0x53, 0xa7,
-
  0xcd, 0x56, 0xb3, 0x96, 0x51, 0x54, 0x7d, 0x36, 0x9b, 0xf2, 0x1a, 0xf7,
-
  0x29, 0x64, 0x20, 0x29, 0x7c, 0x63, 0x23, 0x3b, 0xb4, 0x14, 0x13, 0xb6,
-
  0xc2, 0xf0, 0x44, 0x85, 0xe1, 0x56, 0x8b, 0x1d, 0xfe, 0x72, 0x32, 0x16,
-
  0x03, 0x06, 0x54, 0x5e, 0x7d, 0x97, 0x77, 0x1b, 0x82, 0x8c, 0x27, 0x1a,
-
  0x00, 0x91, 0x91, 0xf7, 0x93, 0x07, 0xba, 0x12, 0x94, 0x1c, 0x83, 0x22,
-
  0x54, 0x2c, 0x54, 0x7c, 0x9e, 0xe0, 0xfc, 0xbc, 0x1a, 0xd4, 0x62, 0xcc,
-
  0x0f, 0xe4, 0xb2, 0x7f, 0xd0, 0xdb, 0x2b, 0xb6, 0x7a, 0xd5, 0xbf, 0x34,
-
  0x2c, 0xc6, 0x8e, 0xf8, 0x93, 0x47, 0x8b, 0x1e, 0xec, 0xa9, 0x3d, 0x61,
-
  0xc7, 0xb3, 0x05, 0xfc, 0xf9, 0xc7, 0x24, 0x1a, 0xb3, 0xe0, 0x89, 0x52,
-
  0x8e, 0xb1, 0xf0, 0xd0, 0x0f, 0xe3, 0xaa, 0x3f, 0x79, 0x62, 0x02, 0xe5,
-
  0xd9, 0x6c, 0xf4, 0xd6, 0xaf, 0x7c, 0x2d, 0x8c, 0x64, 0x5b, 0x60, 0x0f,
-
  0x3f, 0x15, 0x02, 0x4a, 0x4c, 0x2b, 0x1e, 0x72, 0xdb, 0x56, 0x5d, 0xcc,
-
  0xed, 0x35, 0x92, 0x34, 0x6d, 0x06, 0xb0, 0x35, 0xe5, 0xfd, 0x5a, 0xb9,
-
  0xe2, 0x6d, 0x75, 0x95, 0x82, 0xd5, 0x4a, 0x94, 0xe1, 0xc5, 0x60, 0x04,
-
  0xf5, 0x2e, 0x3e, 0x62, 0x2f, 0xf3, 0x8c, 0x8c, 0x04, 0x5f, 0x9f, 0x3b,
-
  0x99, 0x70, 0x4d, 0xc1, 0xe5, 0xb2, 0x27, 0xb1, 0xa3, 0x3d, 0xb8, 0x0a,
-
  0xce, 0x95, 0x76, 0x06, 0xe2, 0x2b, 0xb8, 0xd7, 0xd4, 0xeb, 0xf5, 0xf9,
-
  0xfb, 0x42, 0x73, 0x28, 0x76, 0xb3, 0x48, 0x2c, 0x11, 0x6f, 0x25, 0x2f,
-
  0x34, 0x42, 0x86, 0xab, 0x3c, 0xa4, 0x2f, 0x3f, 0x90, 0x97, 0x1b, 0x25,
-
  0x22, 0xbc, 0x1d, 0xd7, 0x57, 0x1b, 0xf7, 0xe0, 0xd3, 0x87, 0xb4, 0xf6,
-
  0xa6, 0xa6, 0x08, 0xb7, 0x44, 0xa4, 0xa6, 0x08, 0x04, 0x0f, 0xa8, 0x11,
-
  0xc2, 0x72, 0x4f, 0xdc, 0x04, 0x61, 0x36, 0x08, 0x89, 0x70, 0xb3, 0x50,
-
  0x15, 0x86, 0xb8, 0x5c, 0x6f, 0x84, 0xa0, 0x15, 0x42, 0xd2, 0x89, 0x32,
-
  0x23, 0x84, 0x94, 0xb1, 0xc8, 0xcd, 0x10, 0x4f, 0x41, 0x70, 0xf4, 0xd1,
-
  0xa7, 0x71, 0x01, 0x2e, 0x7e, 0x33, 0x7e, 0x41, 0x1a, 0xd1, 0x1c, 0x79,
-
  0xd6, 0x1a, 0x52, 0x08, 0xd8, 0x30, 0x1c, 0xc6, 0x9e, 0x68, 0x11, 0x37,
-
  0x35, 0x7a, 0x74, 0xc5, 0xe7, 0x3f, 0xf0, 0xf0, 0x5a, 0x71, 0x34, 0xf1,
-
  0x35, 0x0b, 0x49, 0x0e, 0x73, 0x6e, 0x2a, 0x21, 0x4f, 0x95, 0x2d, 0xc1,
-
  0x42, 0xec, 0x10, 0x18, 0xd9, 0x7a, 0x3e, 0xe1, 0x7a, 0x1e, 0x0f, 0x51,
-
  0x3b, 0xbd, 0xc3, 0xbd, 0x4a, 0x09, 0x64, 0x50, 0x47, 0x19, 0x98, 0x36,
-
  0x47, 0xcd, 0x38, 0x37, 0xef, 0x71, 0x02, 0x8d, 0x27, 0xcd, 0x91, 0xd5,
-
  0x8f, 0x87, 0xc4, 0x6c, 0xd6, 0xd2, 0x77, 0xbe, 0x95, 0x27, 0xe5, 0xd4,
-
  0x45, 0x59, 0xb3, 0x7e, 0xae, 0xb1, 0x7b, 0x07, 0xcb, 0xe7, 0x15, 0x28,
-
  0x25, 0x26, 0x4e, 0xc3, 0xf5, 0x67, 0x05, 0x78, 0x18, 0x83, 0x54, 0x0a,
-
  0xb8, 0x9b, 0x79, 0x46, 0x7f, 0xc2, 0xa1, 0x46, 0x84, 0x52, 0xb4, 0x25,
-
  0xd4, 0x56, 0x1e, 0x53, 0xfd, 0x2f, 0x2a, 0x57, 0x81, 0xac, 0xe8, 0x1b,
-
  0xb0, 0x32, 0x6c, 0xb5, 0xaa, 0x7b, 0x06, 0x60, 0xbd, 0xbc, 0x84, 0xc2,
-
  0x78, 0xf4, 0x09, 0x21, 0x42, 0x8a, 0x06, 0xbd, 0x11, 0x28, 0x40, 0xed,
-
  0x44, 0xa1, 0xcb, 0x6f, 0xde, 0x7c, 0xd7, 0x73, 0x5f, 0x24, 0xc4, 0xcd,
-
  0xea, 0x3d, 0x74, 0xe2, 0x4a, 0x4a, 0x86, 0x5e, 0x39, 0xa1, 0x88, 0xc0,
-
  0x21, 0x06, 0xc7, 0x7a, 0x76, 0x74, 0x0e, 0xa7, 0xde, 0x48, 0x12, 0x2a,
-
  0x3c, 0x5d, 0x24, 0x3c, 0x0b, 0x39, 0xf3, 0xae, 0xf8, 0x7b, 0x50, 0xe4,
-
  0x84, 0xd5, 0x4d, 0x10, 0x50, 0x39, 0x2a, 0xbe, 0x1b, 0x4c, 0xbf, 0x9f,
-
  0x1d, 0x3d, 0x73, 0x37, 0xde, 0x69, 0x68, 0x6f, 0x76, 0xc4, 0x2a, 0xd8,
-
  0x68, 0x55, 0x7e, 0xb0, 0xbd, 0x7a, 0x79, 0x79, 0xf3, 0xcd, 0xc1, 0xf7,
-
  0xaf, 0xf7, 0x75, 0x60, 0x2f, 0xca, 0x51, 0x58, 0xb8, 0xa2, 0x37, 0xad,
-
  0x46, 0x81, 0xf9, 0x9d, 0x1a, 0xad, 0x30, 0xde, 0x18, 0xc7, 0x6c, 0x3c,
-
  0x51, 0x24, 0x17, 0x62, 0x8a, 0x9e, 0x8d, 0x87, 0x31, 0x60, 0x95, 0x76,
-
  0x5f, 0xa4, 0x83, 0x8c, 0x25, 0x7a, 0x90, 0xed, 0x65, 0xc8, 0x99, 0x16,
-
  0x81, 0x5d, 0x1c, 0x7c, 0xbf, 0xb9, 0xfb, 0xd7, 0x9e, 0xf9, 0x89, 0x7f,
-
  0xfc, 0xf1, 0xc7, 0xdc, 0xeb, 0x48, 0x21, 0xbd, 0xae, 0x96, 0x97, 0x7b,
-
  0xdb, 0xdb, 0xc5, 0xe6, 0xcb, 0xde, 0x6b, 0xf9, 0xfa, 0x64, 0x7a, 0x51,
-
  0xac, 0xac, 0xaf, 0x06, 0x79, 0x17, 0x41, 0xb4, 0xe1, 0xaf, 0xe5, 0xe5,
-
  0xff, 0x07, 0x45, 0x43, 0x90, 0x4d, 0x7a, 0x05, 0x04, 0x00,
+
  0x83, 0x73, 0x73, 0xdd, 0xbb, 0x5e, 0xd8, 0xda, 0xe7, 0x83, 0x5a, 0xb3,
+
  0x35, 0xd4, 0x3f, 0xf6, 0xba, 0x9e, 0x24, 0xf6, 0x10, 0xda, 0xae, 0x28,
+
  0x7b, 0x28, 0xbc, 0x03, 0x69, 0x5d, 0x6a, 0x4d, 0x3d, 0x5d, 0x65, 0x91,
+
  0xc7, 0x24, 0x37, 0x32, 0x6c, 0x68, 0x84, 0xd9, 0x26, 0x7d, 0x44, 0xc7,
+
  0x18, 0xfe, 0x5e, 0xb1, 0x1d, 0x6e, 0x37, 0x76, 0xfb, 0xa1, 0x5c, 0x4f,
+
  0x0c, 0x66, 0xc1, 0xc3, 0x97, 0x9b, 0x49, 0x14, 0xfe, 0x37, 0x2f, 0xab,
+
  0x38, 0x3c, 0x52, 0xfa, 0x59, 0x27, 0x07, 0x64, 0x8d, 0x55, 0xdf, 0xfd,
+
  0xec, 0xab, 0xbe, 0xf3, 0x39, 0x57, 0x9d, 0x68, 0xb7, 0xb9, 0xea, 0x7c,
+
  0x00, 0x5d, 0xc3, 0x4b, 0x6b, 0x4e, 0x2c, 0x64, 0xcf, 0xbb, 0x05, 0xe9,
+
  0xce, 0xed, 0x7a, 0x48, 0x12, 0x5a, 0x86, 0x19, 0x28, 0xd4, 0x9c, 0x94,
+
  0x21, 0xef, 0xe8, 0xc5, 0xde, 0x28, 0xb5, 0xe3, 0x5c, 0x0f, 0xe4, 0xa4,
+
  0xa3, 0x76, 0x42, 0x56, 0x58, 0xb3, 0x27, 0x0b, 0x63, 0x77, 0x5d, 0x85,
+
  0x80, 0x3e, 0x12, 0x41, 0xe4, 0xc2, 0x56, 0x9f, 0x22, 0x1b, 0x36, 0x2d,
+
  0xf4, 0x44, 0x06, 0xb3, 0xa8, 0xb4, 0xf8, 0xce, 0x5b, 0x7e, 0xfe, 0xc0,
+
  0x1e, 0x95, 0x08, 0x84, 0xa5, 0x6a, 0x80, 0x24, 0x98, 0xcb, 0xeb, 0x04,
+
  0x01, 0x25, 0x33, 0xcf, 0x6b, 0x97, 0x1f, 0xa3, 0x41, 0xc0, 0x15, 0x57,
+
  0x76, 0x9f, 0xe1, 0x74, 0x25, 0xba, 0xb0, 0xbf, 0x87, 0x2a, 0xbb, 0x24,
+
  0xdb, 0xb2, 0x3b, 0xed, 0x0a, 0xcb, 0x43, 0x5a, 0x74, 0xa4, 0x48, 0xe9,
+
  0x23, 0x2d, 0x9a, 0xdc, 0x40, 0x87, 0xc5, 0xbc, 0x5c, 0xf1, 0xf1, 0x96,
+
  0x72, 0xc3, 0x90, 0xdf, 0x04, 0x57, 0x43, 0x0f, 0x81, 0x34, 0x11, 0x3c,
+
  0x5a, 0xe8, 0x8f, 0x9e, 0x54, 0xd7, 0xd0, 0x79, 0x7f, 0x05, 0x17, 0xdf,
+
  0xfb, 0x2c, 0xf4, 0xbe, 0x77, 0x07, 0xb5, 0xeb, 0x13, 0x41, 0x0b, 0xa1,
+
  0x19, 0xab, 0x2a, 0x42, 0x59, 0x60, 0xa4, 0x87, 0x50, 0x3e, 0xba, 0x80,
+
  0x06, 0x2b, 0xa5, 0xb5, 0xd5, 0x16, 0xe6, 0x22, 0xb9, 0xed, 0x47, 0x46,
+
  0xce, 0x4c, 0x1b, 0xab, 0xc2, 0x13, 0x74, 0xf7, 0xb1, 0x89, 0x4f, 0x4d,
+
  0x38, 0x33, 0xbe, 0x31, 0xf9, 0x3a, 0xa0, 0xbb, 0xd1, 0xf5, 0x95, 0x4e,
+
  0xe6, 0xb3, 0xf8, 0xe8, 0x34, 0x1b, 0x8f, 0x8e, 0xd2, 0x49, 0x55, 0x2d,
+
  0xd0, 0x2e, 0x87, 0x22, 0x00, 0x1e, 0x88, 0xc8, 0xfa, 0x2d, 0xc4, 0x29,
+
  0xa4, 0xc6, 0x66, 0x60, 0x9c, 0x66, 0xe4, 0xa1, 0xa4, 0x6f, 0x91, 0xcb,
+
  0x08, 0xfd, 0xf6, 0x29, 0x3c, 0xcb, 0xad, 0x31, 0x75, 0x9f, 0x38, 0x96,
+
  0x10, 0xc0, 0x0e, 0x45, 0xe0, 0xd0, 0x9a, 0x90, 0xb4, 0xe0, 0x46, 0xda,
+
  0x15, 0x42, 0x54, 0xa3, 0xbb, 0x33, 0xbd, 0x49, 0x25, 0xb4, 0xe4, 0xdc,
+
  0xc5, 0xf1, 0xb0, 0x78, 0x32, 0x2a, 0xf4, 0x71, 0x97, 0x08, 0x66, 0xd9,
+
  0xc2, 0x37, 0xe9, 0xad, 0xed, 0x83, 0xf1, 0x81, 0x51, 0xa8, 0xfa, 0xe3,
+
  0xae, 0xd0, 0x50, 0x64, 0x2a, 0x9c, 0x94, 0xa5, 0xe2, 0x55, 0xe7, 0x24,
+
  0xf6, 0x10, 0xf2, 0xc1, 0x0e, 0x17, 0xbf, 0x74, 0xec, 0x33, 0x67, 0x07,
+
  0x83, 0xb8, 0x4f, 0x64, 0xbc, 0x21, 0x95, 0x24, 0x9b, 0xb9, 0x21, 0xfa,
+
  0xaa, 0x5c, 0x94, 0xdd, 0xe8, 0x62, 0xb1, 0x64, 0x44, 0x9b, 0x87, 0x2f,
+
  0xcf, 0x5e, 0x6f, 0x61, 0x76, 0x01, 0x15, 0x7c, 0x89, 0xca, 0x56, 0x84,
+
  0xc4, 0x72, 0x72, 0x25, 0x2a, 0x85, 0x9e, 0xd1, 0x4a, 0xd3, 0x93, 0xb8,
+
  0xc2, 0x14, 0xd4, 0x66, 0xdb, 0xc3, 0x68, 0xc8, 0xb4, 0x54, 0x37, 0x04,
+
  0xc4, 0x28, 0x2d, 0xb7, 0x55, 0xc1, 0x5a, 0xc1, 0xcb, 0xef, 0x09, 0x73,
+
  0x5a, 0x3b, 0x19, 0xa9, 0xb5, 0xf9, 0x35, 0x8e, 0xf6, 0xd2, 0x88, 0xee,
+
  0x3d, 0xea, 0x4b, 0x6f, 0x18, 0x59, 0xae, 0x38, 0xf9, 0xe4, 0x1f, 0xf3,
+
  0x49, 0x5a, 0xd1, 0xe9, 0x6f, 0x9c, 0xfc, 0xbb, 0xee, 0x4a, 0x77, 0x54,
+
  0x63, 0x71, 0x62, 0xa7, 0x5d, 0xec, 0x6b, 0xca, 0x87, 0xad, 0x42, 0xa1,
+
  0x3f, 0xf1, 0xaa, 0x46, 0x68, 0x08, 0x3d, 0x0d, 0x74, 0x3f, 0x38, 0x92,
+
  0xd8, 0x72, 0x3f, 0xb3, 0xd4, 0x14, 0xc1, 0xf3, 0x19, 0xc3, 0x80, 0x09,
+
  0xf9, 0xc4, 0x2e, 0x22, 0xac, 0x59, 0x97, 0x6b, 0xcd, 0x64, 0xa1, 0xbe,
+
  0x4a, 0x4a, 0xbb, 0x6a, 0xab, 0xce, 0x04, 0x64, 0x91, 0xf5, 0xcc, 0xdb,
+
  0x5d, 0xd5, 0xc5, 0x82, 0x02, 0x3c, 0x10, 0xa3, 0xab, 0x6f, 0xc3, 0x41,
+
  0xad, 0x90, 0xbc, 0xdd, 0xc1, 0xdc, 0x3d, 0xd6, 0xbb, 0x9a, 0xb9, 0x16,
+
  0xde, 0x56, 0x56, 0x5b, 0xdb, 0x49, 0x44, 0x2d, 0xbe, 0x66, 0x8d, 0x07,
+
  0xd1, 0x4a, 0x63, 0x68, 0xa4, 0x20, 0x2d, 0xd6, 0xdd, 0xa2, 0xc9, 0xe1,
+
  0xa4, 0xee, 0x9d, 0x5f, 0x0f, 0xad, 0xbc, 0xb2, 0xc6, 0x2f, 0xf2, 0x75,
+
  0xac, 0x49, 0x2a, 0x32, 0x3c, 0x76, 0xd4, 0x51, 0xec, 0x06, 0xd2, 0x08,
+
  0xcd, 0xa1, 0x5a, 0xe0, 0x75, 0x57, 0x47, 0x7c, 0x8a, 0x01, 0xb9, 0x2c,
+
  0x66, 0x34, 0x7d, 0x5f, 0x69, 0x0b, 0xe2, 0x9d, 0x67, 0xbf, 0xc2, 0x15,
+
  0x7b, 0x93, 0xe3, 0x70, 0x45, 0xf6, 0x63, 0x54, 0xef, 0xc5, 0xc8, 0xa1,
+
  0x96, 0x89, 0xed, 0x7d, 0x2b, 0x3b, 0x8b, 0x3c, 0x58, 0x02, 0xb5, 0x39,
+
  0x78, 0xda, 0x12, 0x23, 0x22, 0xa3, 0x02, 0xc2, 0xdf, 0x37, 0xb7, 0x49,
+
  0x2d, 0xf5, 0x13, 0xe2, 0x94, 0xa3, 0x6c, 0x82, 0x65, 0x62, 0x81, 0x88,
+
  0x64, 0xfb, 0x8c, 0x2a, 0xc4, 0x4a, 0x21, 0x80, 0xb2, 0x94, 0xb5, 0x18,
+
  0xb6, 0x4b, 0x5d, 0x14, 0xcc, 0x52, 0x05, 0xfc, 0xa8, 0x20, 0x36, 0x39,
+
  0xcc, 0x2c, 0xce, 0x63, 0x26, 0x03, 0x70, 0x1b, 0x65, 0xaa, 0x03, 0xe7,
+
  0x63, 0x18, 0x69, 0x89, 0x59, 0xa2, 0x52, 0xd1, 0x47, 0x02, 0xbb, 0x94,
+
  0x05, 0xd3, 0x5e, 0x4a, 0xc4, 0xb3, 0xbf, 0x44, 0x1c, 0x8f, 0x0a, 0xc5,
+
  0x7a, 0x33, 0x25, 0xfb, 0x1e, 0x13, 0x12, 0xd1, 0x8a, 0xd6, 0xb1, 0x69,
+
  0x14, 0x12, 0x34, 0x8d, 0x38, 0x0d, 0xa3, 0x69, 0x41, 0x77, 0xa0, 0xe6,
+
  0x3e, 0x8b, 0xb4, 0xb1, 0x7f, 0x2f, 0x0b, 0xda, 0xff, 0x14, 0x69, 0x63,
+
  0xbf, 0x4d, 0xda, 0xb8, 0xab, 0x7e, 0xf5, 0xb2, 0x52, 0xc9, 0x52, 0xfa,
+
  0x7a, 0x42, 0xba, 0x97, 0x36, 0x7a, 0x12, 0xef, 0x78, 0xd8, 0x54, 0xbe,
+
  0xfb, 0x24, 0xbb, 0x2b, 0xda, 0xa0, 0x97, 0x45, 0x1c, 0xa7, 0xda, 0x8b,
+
  0x39, 0x55, 0x2f, 0x00, 0xb8, 0xab, 0xbc, 0xa1, 0xa5, 0xcf, 0x12, 0xb3,
+
  0xfe, 0x86, 0x03, 0xa1, 0x97, 0x1c, 0x9f, 0x23, 0xe1, 0x5d, 0xcc, 0xba,
+
  0x82, 0xdd, 0x19, 0xf6, 0xc8, 0x08, 0x0d, 0x9e, 0x8f, 0xb8, 0x97, 0x9d,
+
  0x8b, 0xbe, 0x31, 0x2e, 0x24, 0xdb, 0x19, 0x47, 0xa5, 0x3b, 0x30, 0x20,
+
  0xb3, 0xd1, 0xf1, 0xdc, 0x95, 0x07, 0x71, 0x23, 0xac, 0x90, 0x3d, 0x57,
+
  0x9e, 0xd4, 0x8d, 0xaf, 0x79, 0x41, 0x1f, 0xae, 0x42, 0x20, 0x43, 0x54,
+
  0xb4, 0xfb, 0xcb, 0xf0, 0x2b, 0x99, 0x8d, 0x71, 0x2b, 0x62, 0x56, 0x06,
+
  0x98, 0x2c, 0x70, 0x81, 0xc2, 0x98, 0x02, 0x67, 0x0a, 0x46, 0xb5, 0x3b,
+
  0xd8, 0x53, 0x74, 0xaf, 0xf9, 0x80, 0x0b, 0x29, 0x1b, 0x2b, 0x75, 0x7d,
+
  0xfe, 0xf4, 0xf6, 0xe4, 0x28, 0xca, 0xb3, 0xd2, 0xec, 0x2f, 0x0b, 0x0c,
+
  0x73, 0x29, 0x57, 0x41, 0x17, 0xe1, 0xe8, 0x28, 0xbd, 0xa3, 0x30, 0x30,
+
  0x89, 0xed, 0xf6, 0xf1, 0x76, 0x51, 0x30, 0x89, 0x65, 0x4d, 0x14, 0x37,
+
  0x33, 0x45, 0x96, 0xd6, 0x33, 0x14, 0x9f, 0xfa, 0xb6, 0x63, 0xbf, 0xd6,
+
  0x99, 0x67, 0x16, 0xf2, 0x59, 0x0e, 0x3e, 0x37, 0x75, 0xef, 0xe9, 0xe7,
+
  0xc7, 0xee, 0x60, 0x01, 0xcb, 0x72, 0x87, 0xf1, 0x80, 0xfb, 0x55, 0xf4,
+
  0x3b, 0xed, 0x22, 0x2b, 0x74, 0x8d, 0xee, 0x9d, 0x6c, 0xc0, 0xc4, 0x11,
+
  0xef, 0x82, 0x78, 0x72, 0xd7, 0xe9, 0xbf, 0xd3, 0x8a, 0xd5, 0xe3, 0x62,
+
  0x38, 0x3d, 0x31, 0xf8, 0xf6, 0xd8, 0x00, 0xed, 0xe0, 0x73, 0x99, 0x2b,
+
  0x78, 0xad, 0xfa, 0x84, 0xde, 0x10, 0x2c, 0x08, 0x79, 0xed, 0x25, 0xd7,
+
  0x54, 0xb0, 0x90, 0xfc, 0x00, 0x60, 0xa9, 0x55, 0xc0, 0xf2, 0x21, 0x5e,
+
  0x31, 0x21, 0x05, 0x80, 0xac, 0xc4, 0x6a, 0xcd, 0x2c, 0x17, 0x9c, 0xca,
+
  0x70, 0x38, 0x27, 0x23, 0xfc, 0x6e, 0xff, 0x83, 0xc5, 0xa2, 0x95, 0x19,
+
  0xe9, 0x1c, 0x16, 0x0a, 0x27, 0xa8, 0x81, 0x8d, 0x8e, 0xb1, 0x35, 0xb6,
+
  0x4b, 0x53, 0x32, 0x4d, 0xc9, 0xf1, 0x37, 0x7b, 0x70, 0xac, 0x2e, 0xd3,
+
  0xc1, 0x6d, 0x9d, 0x45, 0xe1, 0xc9, 0xcf, 0x8d, 0x65, 0x44, 0xe1, 0x4b,
+
  0xef, 0xf3, 0x39, 0xa3, 0x9a, 0x9c, 0xfc, 0xf7, 0x71, 0x70, 0xd0, 0xc3,
+
  0xbe, 0x8f, 0xf3, 0x4b, 0x74, 0x8d, 0x05, 0x48, 0x4d, 0x8b, 0x4b, 0x17,
+
  0x3c, 0x25, 0x05, 0x2e, 0x92, 0xb2, 0xba, 0xae, 0x74, 0xe5, 0x52, 0x19,
+
  0xf7, 0xe0, 0x24, 0x73, 0xfc, 0x0c, 0x4e, 0xb0, 0x52, 0xdc, 0x4d, 0x1a,
+
  0x51, 0x9c, 0x89, 0x16, 0x57, 0xb7, 0x73, 0x5c, 0xd8, 0x48, 0x09, 0x68,
+
  0xdd, 0xba, 0xd5, 0x4a, 0x40, 0x8b, 0x49, 0xf0, 0x2e, 0x1d, 0xa0, 0xb5,
+
  0xf5, 0xbb, 0xcf, 0x5d, 0xfb, 0x80, 0xd6, 0x83, 0x5a, 0x5f, 0x06, 0xc1,
+
  0x21, 0xfa, 0x7c, 0xdf, 0x5d, 0xf2, 0xc8, 0x63, 0x8d, 0xe6, 0x24, 0x78,
+
  0x5b, 0x7f, 0x08, 0x26, 0xe9, 0x2e, 0x1a, 0x4b, 0x30, 0x79, 0x9f, 0x21,
+
  0x24, 0x3c, 0x33, 0x74, 0x11, 0xab, 0x46, 0x96, 0x54, 0x5a, 0x39, 0x67,
+
  0xa9, 0x0f, 0x8b, 0xc9, 0xf3, 0x5b, 0xb2, 0xa7, 0xde, 0x0b, 0x47, 0xe1,
+
  0x93, 0x55, 0x42, 0x91, 0xac, 0xfd, 0xe8, 0xbc, 0x07, 0x57, 0x8c, 0x31,
+
  0x65, 0xa2, 0x23, 0x51, 0x54, 0xb9, 0x07, 0xcd, 0x56, 0xa8, 0xea, 0x4c,
+
  0x90, 0xae, 0x4c, 0x70, 0x6b, 0x06, 0x13, 0xa3, 0x2b, 0xdd, 0x07, 0xc8,
+
  0x89, 0x52, 0xea, 0x6e, 0x2c, 0x2b, 0xcb, 0x69, 0x97, 0xa5, 0xab, 0x91,
+
  0x6b, 0x66, 0x65, 0x58, 0xa2, 0xae, 0x87, 0x5b, 0x94, 0xa9, 0x46, 0xc8,
+
  0x51, 0x1b, 0x95, 0xd4, 0xa5, 0x0e, 0x18, 0xe1, 0x56, 0x7c, 0x33, 0xaf,
+
  0xb5, 0x88, 0x55, 0xc6, 0x51, 0x92, 0xa9, 0xaf, 0x56, 0xeb, 0x5e, 0xb0,
+
  0x2a, 0x7b, 0x21, 0xf8, 0x99, 0x4b, 0xd4, 0x4a, 0x89, 0xf3, 0x9a, 0xaa,
+
  0xf9, 0x98, 0xcc, 0x10, 0x3c, 0x79, 0x34, 0xfc, 0x20, 0x41, 0x28, 0x68,
+
  0xa7, 0x5c, 0x98, 0xbe, 0x8b, 0x00, 0x85, 0x8f, 0x05, 0x95, 0xb4, 0x38,
+
  0x52, 0x72, 0x74, 0xb8, 0x04, 0x71, 0x2e, 0x81, 0xa0, 0xb5, 0x99, 0x0a,
+
  0xf0, 0x3b, 0x5c, 0x77, 0x98, 0x93, 0x18, 0x69, 0x78, 0x2d, 0xb9, 0x56,
+
  0x11, 0xba, 0x4c, 0x8a, 0x45, 0xa9, 0xb1, 0xe5, 0xc4, 0x43, 0xa4, 0x32,
+
  0x8a, 0x14, 0x43, 0x39, 0x30, 0xe2, 0xc5, 0xa5, 0xec, 0x57, 0xd9, 0xf6,
+
  0xa8, 0x18, 0x56, 0xdb, 0x55, 0x35, 0xc1, 0x96, 0x2b, 0x2a, 0xc5, 0xe8,
+
  0x8b, 0x17, 0x3f, 0xd7, 0xe2, 0xc5, 0x40, 0x99, 0x4d, 0x18, 0x8d, 0x25,
+
  0x5e, 0xc3, 0xab, 0x42, 0xc1, 0x2b, 0xef, 0x5c, 0xe4, 0xa0, 0xa7, 0x99,
+
  0xbe, 0xff, 0x9a, 0x9d, 0x4b, 0x8c, 0x26, 0x6c, 0x61, 0xf3, 0x34, 0xb7,
+
  0x50, 0xa9, 0x17, 0xc5, 0x18, 0x0d, 0xf0, 0xb8, 0xa2, 0x3c, 0xe1, 0x80,
+
  0xbe, 0x46, 0xab, 0xc2, 0x8f, 0x75, 0xfa, 0x55, 0x75, 0xd5, 0x21, 0x93,
+
  0xce, 0xc0, 0x1e, 0xe8, 0x5a, 0xb1, 0xd2, 0x46, 0x5d, 0x3d, 0xdd, 0x38,
+
  0xf3, 0x5f, 0xe5, 0xa5, 0x8b, 0x1e, 0xa9, 0x96, 0xa2, 0x39, 0x55, 0x76,
+
  0x0a, 0x54, 0xcb, 0x73, 0x8f, 0x8e, 0x94, 0x9e, 0xe9, 0x15, 0xd6, 0x53,
+
  0x39, 0x8c, 0x81, 0xb2, 0xb1, 0xac, 0x51, 0xb9, 0xc0, 0x65, 0x50, 0x47,
+
  0x57, 0x15, 0x4a, 0xe5, 0x46, 0xe8, 0x2f, 0x52, 0x0d, 0x4d, 0xfc, 0xc2,
+
  0x74, 0xdc, 0x54, 0x84, 0x8b, 0x52, 0x62, 0x34, 0xb2, 0x41, 0xd7, 0x90,
+
  0x1f, 0x75, 0x2e, 0xca, 0xc5, 0x80, 0x53, 0x36, 0x6b, 0x94, 0xb7, 0x39,
+
  0xb4, 0x39, 0xf0, 0x22, 0x0e, 0xb1, 0xe4, 0x8c, 0x07, 0x81, 0xa4, 0x5d,
+
  0x28, 0xf6, 0x2c, 0x81, 0xb6, 0x61, 0xa4, 0xbd, 0xde, 0x5a, 0xa1, 0x53,
+
  0x72, 0xa7, 0xc2, 0xd6, 0xe5, 0x43, 0xc2, 0xdf, 0xd5, 0x2b, 0x30, 0x76,
+
  0x2f, 0x84, 0x3e, 0x3e, 0x47, 0x0a, 0x53, 0x73, 0xa5, 0x57, 0xf0, 0x6e,
+
  0xed, 0x73, 0x2d, 0x76, 0xcd, 0x21, 0xcb, 0xfa, 0x0e, 0xf2, 0xe8, 0x61,
+
  0x4a, 0x87, 0x4d, 0x72, 0xb5, 0x53, 0x04, 0xe8, 0x0e, 0x32, 0x86, 0xc2,
+
  0x9b, 0x72, 0x15, 0x16, 0x89, 0x7f, 0x38, 0x63, 0x1d, 0x94, 0xa3, 0x64,
+
  0x0d, 0xed, 0x3c, 0x14, 0x70, 0x0e, 0x18, 0x33, 0xf6, 0x7e, 0x3f, 0x54,
+
  0x26, 0xc5, 0xc2, 0xf3, 0x65, 0x03, 0x66, 0x55, 0x02, 0xd6, 0x22, 0xa8,
+
  0x3c, 0x0a, 0x63, 0x54, 0x0a, 0xb6, 0x94, 0x0b, 0xf5, 0xb1, 0x29, 0x11,
+
  0xf8, 0x64, 0xd3, 0x7c, 0xd8, 0x35, 0xd7, 0x2c, 0xe1, 0xc3, 0x47, 0xf5,
+
  0xd1, 0xa4, 0xcc, 0x8a, 0x54, 0xa1, 0x33, 0xa4, 0xd7, 0xf1, 0xff, 0x21,
+
  0x53, 0xfb, 0xea, 0xc1, 0x83, 0x13, 0x1b, 0x4f, 0xc2, 0x9d, 0x52, 0xaf,
+
  0x8d, 0x20, 0x41, 0x8e, 0xbb, 0x77, 0xc8, 0x43, 0xc4, 0x2b, 0x59, 0x67,
+
  0x79, 0x60, 0x11, 0x1d, 0x36, 0x35, 0x8b, 0xd1, 0xe2, 0x32, 0x81, 0xb4,
+
  0xbb, 0xa4, 0xd6, 0x24, 0x0f, 0x1f, 0xf5, 0x1d, 0x86, 0xab, 0x1f, 0x46,
+
  0x48, 0xd0, 0x44, 0x6f, 0x82, 0x2e, 0x81, 0x8d, 0x98, 0x1f, 0xb7, 0x1e,
+
  0xbe, 0xfb, 0x3f, 0x9e, 0xe2, 0x27, 0x6d, 0x33, 0xd0, 0x82, 0xec, 0xab,
+
  0x97, 0x55, 0x2e, 0x45, 0x59, 0x15, 0xc4, 0xf4, 0x54, 0x81, 0x5a, 0x05,
+
  0x9b, 0x27, 0xfd, 0x6f, 0xfa, 0x3b, 0x94, 0x68, 0x0d, 0x8c, 0x9a, 0x94,
+
  0xb1, 0x07, 0x4b, 0x91, 0x93, 0x6e, 0x4d, 0xdc, 0x92, 0xc4, 0x81, 0x93,
+
  0x61, 0x45, 0xb4, 0x86, 0x96, 0x95, 0x4e, 0x64, 0x09, 0x9b, 0x57, 0x05,
+
  0x97, 0xc5, 0xe2, 0x3a, 0x97, 0xe0, 0x9d, 0x02, 0x5a, 0xab, 0xa2, 0x32,
+
  0xc4, 0x34, 0xa4, 0x78, 0x64, 0x81, 0x83, 0xc1, 0xff, 0x7e, 0xca, 0x67,
+
  0x20, 0xe8, 0x11, 0xbb, 0x7b, 0x40, 0x20, 0xaa, 0x34, 0x5c, 0xbc, 0x43,
+
  0x26, 0xd7, 0x9e, 0x82, 0xf3, 0xb1, 0x0b, 0x5b, 0x89, 0x42, 0xdf, 0x1c,
+
  0x8c, 0x19, 0x81, 0xf9, 0x3e, 0x7b, 0x7d, 0xde, 0x43, 0xff, 0x50, 0x8f,
+
  0x35, 0x5d, 0xf2, 0xf4, 0xe4, 0x18, 0x20, 0x35, 0x2a, 0xae, 0x7a, 0x12,
+
  0x2f, 0x53, 0x31, 0x64, 0xcf, 0x83, 0xd3, 0x59, 0xf2, 0x12, 0xae, 0xe3,
+
  0x0f, 0x77, 0x23, 0x7d, 0x5b, 0x12, 0x1a, 0x0c, 0xe1, 0xcf, 0x6f, 0x9e,
+
  0x83, 0xb0, 0xf4, 0xe7, 0xbc, 0x44, 0x65, 0x04, 0x5a, 0x78, 0x03, 0x62,
+
  0x86, 0x16, 0xaf, 0x82, 0xdb, 0xea, 0x26, 0x25, 0x44, 0x98, 0x2d, 0x94,
+
  0x9e, 0x30, 0xc9, 0xb6, 0x6b, 0x21, 0x1d, 0x5a, 0x4f, 0x8e, 0x4c, 0xe2,
+
  0x98, 0xa4, 0x50, 0x09, 0x00, 0xb1, 0xc4, 0xa3, 0x52, 0xc9, 0x21, 0x7a,
+
  0xf2, 0xe8, 0xf0, 0xec, 0xdd, 0xeb, 0xe3, 0x8b, 0x77, 0x6f, 0x0e, 0x7f,
+
  0x42, 0x7e, 0x38, 0x4f, 0xa5, 0x52, 0x10, 0x55, 0x8b, 0x62, 0x4b, 0x37,
+
  0x8e, 0x0e, 0xc4, 0xfb, 0x84, 0xca, 0x37, 0x3f, 0x28, 0x8b, 0xa2, 0x8e,
+
  0xb0, 0x5b, 0xc3, 0xba, 0xdf, 0x5b, 0x88, 0xea, 0x37, 0x60, 0xb7, 0xba,
+
  0x6e, 0x08, 0xa3, 0xf5, 0x5e, 0x80, 0xa2, 0xf0, 0x7c, 0x87, 0x8e, 0x09,
+
  0xfa, 0x13, 0xe0, 0xbf, 0xbb, 0x9d, 0x8f, 0x7a, 0x15, 0xb8, 0x42, 0x36,
+
  0x9b, 0xef, 0x57, 0x3b, 0xeb, 0x62, 0x1b, 0xcd, 0xaa, 0xf0, 0x7a, 0xe0,
+
  0x9e, 0xf3, 0x5e, 0x5d, 0x54, 0xc9, 0xd3, 0xb8, 0x76, 0xd5, 0xe1, 0x64,
+
  0x42, 0xc8, 0x16, 0x70, 0xf4, 0xb0, 0x3c, 0x24, 0x86, 0x14, 0x9c, 0x4b,
+
  0xb6, 0xf4, 0xe6, 0xc5, 0xe9, 0xf9, 0x16, 0xcb, 0x33, 0x8c, 0x40, 0x81,
+
  0xe7, 0xe1, 0xa2, 0x4c, 0x11, 0x16, 0x2d, 0x39, 0x9a, 0x50, 0x74, 0xa2,
+
  0x5d, 0x97, 0x08, 0xaa, 0xe0, 0x03, 0x75, 0x05, 0x4c, 0x45, 0xe2, 0x41,
+
  0x58, 0xbe, 0xd4, 0xae, 0x2d, 0x8e, 0x27, 0xc5, 0xfc, 0x46, 0x90, 0x53,
+
  0x86, 0xb2, 0x15, 0x06, 0x1a, 0xb1, 0x1b, 0x9c, 0x5d, 0x7b, 0x8f, 0x1e,
+
  0x51, 0x6e, 0x53, 0x28, 0x89, 0x61, 0x4c, 0x54, 0xb9, 0xe6, 0xd1, 0xf9,
+
  0x4e, 0x17, 0x7e, 0xec, 0xe2, 0x0f, 0x50, 0x7b, 0xe1, 0xe7, 0x3e, 0xfe,
+
  0xfa, 0x10, 0x7f, 0x3c, 0xa2, 0xbf, 0x1f, 0xe3, 0xaf, 0x5f, 0xc3, 0xaf,
+
  0x87, 0xcf, 0x77, 0xe1, 0x31, 0xf8, 0xb9, 0x47, 0x3f, 0xf7, 0xe9, 0xa3,
+
  0x3d, 0x35, 0xdd, 0xc3, 0xaf, 0xf4, 0xf9, 0xde, 0x3e, 0xfe, 0xdc, 0xdf,
+
  0xa5, 0x6f, 0xf7, 0xe9, 0xa3, 0x7d, 0xfa, 0xe8, 0x21, 0x7f, 0xf4, 0x90,
+
  0x3e, 0x7a, 0x08, 0x1f, 0x1d, 0x3f, 0x87, 0x0f, 0xfe, 0x7c, 0x7a, 0x72,
+
  0x74, 0xdc, 0x3b, 0x7c, 0xf6, 0xea, 0xe4, 0x42, 0x1a, 0x3a, 0x3e, 0xba,
+
  0x80, 0x27, 0xe1, 0x27, 0xda, 0xe6, 0x8e, 0x8e, 0xbb, 0xc9, 0x4b, 0xf8,
+
  0x7f, 0xf2, 0xf2, 0xf4, 0xa7, 0xa3, 0xd3, 0xf3, 0x8b, 0x2e, 0xfe, 0xf2,
+
  0xec, 0xf8, 0xe5, 0xe1, 0x5f, 0xe1, 0xb3, 0x8b, 0x17, 0x6f, 0x4e, 0xdf,
+
  0xfe, 0xf8, 0xe2, 0xec, 0x2d, 0x7c, 0x9c, 0xbc, 0x39, 0x7e, 0x79, 0x72,
+
  0xf8, 0xc3, 0xc9, 0xcb, 0x93, 0x8b, 0xbf, 0x4a, 0x43, 0xaf, 0x4e, 0x5e,
+
  0xe3, 0x2b, 0x42, 0xe4, 0xbc, 0x83, 0xf7, 0x95, 0x55, 0x68, 0x14, 0x5a,
+
  0xb3, 0x8a, 0x31, 0xf7, 0x47, 0x3a, 0x4a, 0x07, 0xb0, 0x6a, 0xeb, 0x04,
+
  0xbc, 0x10, 0x2b, 0x8e, 0xfc, 0x19, 0xf5, 0x70, 0x0e, 0x92, 0x02, 0x19,
+
  0xa7, 0xe5, 0x06, 0xbf, 0x9e, 0xa4, 0x33, 0xb6, 0x3f, 0xc0, 0x79, 0x76,
+
  0xa4, 0x38, 0xae, 0x7a, 0x97, 0xc0, 0xc0, 0xd1, 0x6f, 0xf7, 0x14, 0xc4,
+
  0x76, 0xa5, 0xc6, 0x93, 0xb3, 0xe7, 0x40, 0x72, 0xe7, 0x31, 0xaa, 0xb9,
+
  0x3e, 0x28, 0xd1, 0x7e, 0x42, 0x90, 0xcf, 0x45, 0x28, 0x3b, 0x39, 0x7b,
+
  0x7d, 0x2e, 0x96, 0x3c, 0x4c, 0x89, 0x8d, 0xe0, 0x1e, 0x4c, 0x7e, 0x0c,
+
  0x31, 0x33, 0x91, 0x8e, 0xc5, 0xa9, 0x5f, 0x01, 0xc7, 0x0f, 0x5b, 0x7d,
+
  0xf7, 0xe3, 0xe1, 0xc5, 0xf1, 0x4f, 0x87, 0x7f, 0xd5, 0x02, 0x99, 0xd7,
+
  0x79, 0x59, 0xcc, 0xd8, 0x05, 0x72, 0x9d, 0x96, 0xb9, 0x04, 0x15, 0x91,
+
  0xc8, 0x85, 0x79, 0x38, 0x48, 0xd7, 0x62, 0x39, 0xeb, 0xfc, 0xff, 0xb6,
+
  0xfb, 0x38, 0xb3, 0x6d, 0x19, 0x70, 0xc7, 0xe7, 0x9f, 0x5f, 0x15, 0x13,
+
  0xad, 0x98, 0x69, 0x13, 0x42, 0x7d, 0x85, 0x83, 0x10, 0x1d, 0x2f, 0x43,
+
  0x91, 0x01, 0x19, 0x9d, 0x56, 0x9a, 0xa7, 0x99, 0xe2, 0xa2, 0x8a, 0xad,
+
  0x41, 0x5f, 0xe6, 0xa0, 0x05, 0x0b, 0x38, 0x49, 0xe3, 0xc2, 0x9e, 0x8b,
+
  0x19, 0x5a, 0xf0, 0x09, 0x0a, 0x0b, 0x36, 0x91, 0x5a, 0x42, 0x06, 0x74,
+
  0xf0, 0x64, 0xe7, 0xc9, 0x4e, 0xa7, 0x9f, 0x1c, 0x72, 0xf9, 0x11, 0x95,
+
  0x71, 0x09, 0x3e, 0x8e, 0x02, 0xc1, 0x27, 0x45, 0xf1, 0xbe, 0x59, 0xad,
+
  0x3c, 0xde, 0xae, 0xd6, 0x26, 0xb5, 0xa8, 0x24, 0x3e, 0x09, 0x5f, 0x0e,
+
  0xd2, 0xf1, 0xed, 0x20, 0xcb, 0x2f, 0xd3, 0xcb, 0xd1, 0xa3, 0xd9, 0x74,
+
  0x36, 0xdb, 0xcb, 0x6f, 0xab, 0xbd, 0xf1, 0x7e, 0x60, 0x0f, 0x28, 0x93,
+
  0x72, 0x46, 0x15, 0x55, 0x93, 0xb1, 0x28, 0xf2, 0x44, 0x36, 0x56, 0x3a,
+
  0xab, 0x2c, 0x90, 0x84, 0x19, 0x88, 0x0e, 0x58, 0xc8, 0x56, 0x69, 0x14,
+
  0x7b, 0xed, 0x5f, 0xc2, 0xa5, 0xb2, 0x18, 0xf4, 0xf3, 0x62, 0x9b, 0xdb,
+
  0xd2, 0x01, 0xf7, 0x68, 0x93, 0xb3, 0x72, 0x3b, 0x5e, 0xe2, 0x42, 0x9c,
+
  0x2e, 0x97, 0x85, 0x84, 0x8d, 0x6a, 0xa4, 0xb4, 0xce, 0xf3, 0xd6, 0x32,
+
  0xeb, 0x58, 0xad, 0x4f, 0x6f, 0x52, 0xad, 0x49, 0xed, 0xc0, 0xdc, 0x24,
+
  0xf0, 0x15, 0x6d, 0x74, 0x2c, 0xb8, 0x73, 0xf2, 0x09, 0xb7, 0xa1, 0xf2,
+
  0xcc, 0x94, 0xf1, 0xd6, 0xb1, 0x30, 0x2f, 0xe9, 0x8b, 0xa8, 0x40, 0xd1,
+
  0xfa, 0x71, 0x43, 0x3a, 0x59, 0x56, 0x5b, 0xb1, 0x59, 0xb2, 0xdf, 0x62,
+
  0x7e, 0x35, 0xc6, 0x76, 0x60, 0xba, 0x3d, 0x4a, 0x24, 0xf1, 0xf8, 0x2a,
+
  0x2d, 0xb3, 0x37, 0xc4, 0x7d, 0xd3, 0x22, 0x7b, 0x68, 0x2f, 0xc9, 0x49,
+
  0xa1, 0x1b, 0x64, 0x5e, 0x3d, 0x10, 0x0c, 0x29, 0x16, 0x71, 0x34, 0x9d,
+
  0x54, 0x70, 0x0b, 0xb5, 0x44, 0x95, 0x03, 0x46, 0x65, 0x81, 0x29, 0x0a,
+
  0x67, 0xe1, 0x72, 0x1c, 0x29, 0x92, 0x21, 0x9c, 0x25, 0xf6, 0x9b, 0x15,
+
  0x12, 0x55, 0x22, 0x52, 0x0f, 0x0e, 0xa7, 0x91, 0x97, 0x6b, 0x30, 0x84,
+
  0x7f, 0xe5, 0xd7, 0x6f, 0x15, 0x81, 0xae, 0x66, 0x38, 0x0e, 0x3c, 0x47,
+
  0x37, 0x0c, 0xec, 0xc0, 0xe9, 0x2c, 0xa8, 0x1e, 0x03, 0x75, 0x26, 0x58,
+
  0x69, 0xf5, 0x32, 0x0d, 0xa6, 0x91, 0xa1, 0xe6, 0xb5, 0xc1, 0x66, 0x5c,
+
  0x16, 0x89, 0xec, 0x59, 0x87, 0xd6, 0x1c, 0xa3, 0xd2, 0x3b, 0x6e, 0xd1,
+
  0x2f, 0x42, 0x60, 0x10, 0x8d, 0x9a, 0x96, 0x5a, 0xdd, 0x13, 0xa4, 0x16,
+
  0xdf, 0x46, 0x3e, 0x3f, 0x5c, 0x86, 0x3e, 0xd9, 0x20, 0x2b, 0x0a, 0xdd,
+
  0xe2, 0x0f, 0x41, 0x41, 0x47, 0x8b, 0x23, 0x01, 0xe7, 0xcc, 0x64, 0x77,
+
  0x91, 0x1a, 0xae, 0x35, 0x33, 0x4f, 0xbb, 0x6e, 0x10, 0x23, 0xbe, 0x48,
+
  0x6c, 0xa0, 0x5f, 0x67, 0xc3, 0xab, 0x6d, 0xab, 0x93, 0xb8, 0x8d, 0x0f,
+
  0x28, 0x6b, 0xd8, 0xfe, 0x9d, 0xb4, 0xd7, 0xbb, 0xae, 0x7a, 0xd6, 0x92,
+
  0x97, 0x67, 0xfc, 0x91, 0xbb, 0xa7, 0xd2, 0xde, 0x47, 0x54, 0xd1, 0x59,
+
  0xe2, 0xf7, 0x8d, 0x83, 0xdd, 0xe0, 0xf8, 0x7a, 0x9e, 0x97, 0x39, 0xff,
+
  0x52, 0xa4, 0x23, 0x65, 0xc2, 0x10, 0xcb, 0x87, 0x13, 0xbd, 0x48, 0x0d,
+
  0x24, 0xf4, 0x21, 0x19, 0xde, 0xe6, 0xd7, 0x0f, 0x83, 0x9b, 0xaf, 0x09,
+
  0x67, 0xc5, 0x7e, 0x1b, 0xce, 0xa4, 0x64, 0x31, 0x98, 0x0b, 0x05, 0xab,
+
  0xb9, 0xa0, 0x1b, 0x7c, 0x37, 0xcb, 0xea, 0x39, 0x46, 0x59, 0xb3, 0xf0,
+
  0xd1, 0x30, 0x6a, 0x42, 0x97, 0x2b, 0x63, 0x45, 0x5b, 0xc2, 0x18, 0xee,
+
  0x59, 0x27, 0x68, 0xec, 0x9e, 0xe0, 0xba, 0x16, 0xe7, 0x5d, 0xd3, 0x6a,
+
  0x4f, 0x0d, 0x3d, 0x76, 0xeb, 0xd6, 0x0c, 0x35, 0x6c, 0xf1, 0xaf, 0x3d,
+
  0x96, 0xf5, 0x7b, 0x1c, 0xad, 0xdf, 0xe3, 0xcf, 0xba, 0x7e, 0xb8, 0x21,
+
  0x2e, 0xa1, 0xb8, 0x54, 0x65, 0xa4, 0xe4, 0x23, 0x2b, 0x96, 0x92, 0x91,
+
  0x24, 0x0b, 0xf0, 0x72, 0x8b, 0x93, 0x56, 0xd5, 0x96, 0x10, 0xf6, 0x36,
+
  0xb0, 0x42, 0xce, 0xca, 0x6b, 0x68, 0xbc, 0x61, 0xb8, 0x31, 0xde, 0x65,
+
  0x67, 0x8a, 0x58, 0xa6, 0xa3, 0x8e, 0xa0, 0x1f, 0x46, 0x90, 0x87, 0x96,
+
  0x85, 0x38, 0x07, 0x4e, 0x20, 0x2a, 0xc1, 0x7c, 0x51, 0xce, 0x8b, 0x8a,
+
  0x50, 0xab, 0xa6, 0xe9, 0xf0, 0xf4, 0x9c, 0xef, 0x62, 0x32, 0x6f, 0xb1,
+
  0x12, 0x3e, 0x2a, 0x58, 0xb5, 0x69, 0x8b, 0x3e, 0xc3, 0x75, 0xfc, 0xcd,
+
  0x5e, 0x21, 0x6a, 0xe4, 0x33, 0x11, 0xc3, 0xc3, 0x8f, 0x23, 0x86, 0xde,
+
  0xaf, 0x15, 0xb4, 0x1a, 0x55, 0x0d, 0x0d, 0xa8, 0x4f, 0x52, 0xfe, 0xc6,
+
  0xcc, 0x1d, 0xff, 0x75, 0x7e, 0xfa, 0x5a, 0xaa, 0x7c, 0xa2, 0x34, 0x11,
+
  0x03, 0xde, 0x4a, 0xf0, 0x48, 0xf0, 0xf0, 0x2b, 0x22, 0xb5, 0xf4, 0x11,
+
  0x0a, 0x70, 0x50, 0xb8, 0x02, 0x66, 0x0c, 0x0e, 0x17, 0x12, 0xbf, 0x31,
+
  0x77, 0x89, 0xe1, 0x9c, 0xf7, 0x0e, 0xff, 0x94, 0x59, 0x94, 0x7e, 0x48,
+
  0xb5, 0xe9, 0x1e, 0xc4, 0x10, 0xbe, 0x7f, 0x4b, 0xcb, 0xcb, 0x5f, 0xe8,
+
  0x53, 0xc9, 0x2e, 0xee, 0x58, 0x99, 0x70, 0x50, 0x3d, 0x0e, 0x7c, 0xac,
+
  0xd4, 0x36, 0x0e, 0xa2, 0x13, 0x3d, 0xcb, 0x61, 0xf4, 0x6d, 0x4f, 0x79,
+
  0xa9, 0x82, 0x93, 0x26, 0x22, 0x7b, 0xb9, 0x19, 0x83, 0x09, 0x67, 0x81,
+
  0xf8, 0x97, 0xd6, 0x3e, 0x85, 0x6b, 0x91, 0x52, 0x32, 0x68, 0xa9, 0x94,
+
  0xde, 0xec, 0x79, 0x36, 0x42, 0xe0, 0x73, 0xe2, 0x2d, 0x6a, 0x48, 0x69,
+
  0x09, 0x43, 0x6c, 0x86, 0x54, 0xf5, 0x50, 0xdc, 0x8d, 0x33, 0x26, 0x93,
+
  0xef, 0xbb, 0x9a, 0x37, 0x57, 0xc5, 0x75, 0xf0, 0x84, 0xf7, 0x58, 0xda,
+
  0x06, 0xd7, 0x0e, 0x1c, 0xb9, 0x82, 0x5e, 0x68, 0xe0, 0xa3, 0x8c, 0x4b,
+
  0xcb, 0xc2, 0xe4, 0xf4, 0xcc, 0xcd, 0xde, 0x16, 0xca, 0x9b, 0xd4, 0xff,
+
  0x4d, 0xc8, 0xd4, 0x15, 0x1f, 0x7b, 0x4b, 0x23, 0x02, 0x8c, 0x90, 0x9c,
+
  0x15, 0x62, 0xf9, 0x08, 0xdf, 0x98, 0x15, 0x18, 0xcb, 0x0d, 0x73, 0x43,
+
  0x1b, 0xe3, 0xa2, 0x18, 0xa4, 0xe5, 0x86, 0xe2, 0xaa, 0x10, 0x62, 0x86,
+
  0x56, 0xee, 0x33, 0xdf, 0x23, 0x91, 0xc8, 0xf7, 0xfc, 0xa8, 0x58, 0xdc,
+
  0x8b, 0x06, 0x42, 0xb1, 0x8d, 0xa4, 0x31, 0x90, 0x2e, 0xc9, 0xf0, 0xda,
+
  0x44, 0x6f, 0x45, 0x66, 0x89, 0x25, 0x81, 0x50, 0xb5, 0x3a, 0xf6, 0xc2,
+
  0x15, 0x04, 0x88, 0x37, 0x73, 0xd0, 0x35, 0x51, 0xf2, 0x6b, 0xd7, 0x01,
+
  0xe8, 0x8d, 0x46, 0x39, 0x7b, 0x8d, 0xb9, 0xf7, 0x79, 0x8e, 0x80, 0x70,
+
  0x24, 0x70, 0x02, 0xdb, 0x41, 0x0b, 0x3f, 0xc3, 0x9a, 0x48, 0x14, 0x82,
+
  0x55, 0x31, 0x13, 0xb7, 0x45, 0xc0, 0x51, 0x71, 0x2e, 0x94, 0x0b, 0x87,
+
  0x81, 0x15, 0xd9, 0xe3, 0x2b, 0x44, 0x85, 0x54, 0x8d, 0x56, 0x6a, 0xa3,
+
  0x8d, 0xb2, 0x99, 0x9d, 0x72, 0xc3, 0x81, 0xb4, 0x5b, 0x19, 0x6f, 0x47,
+
  0x5d, 0x01, 0x79, 0x6f, 0x39, 0x8d, 0xe6, 0x23, 0x33, 0xeb, 0xb9, 0xb5,
+
  0x8d, 0x7f, 0x26, 0x9d, 0x11, 0xa8, 0xd8, 0xef, 0x3b, 0x07, 0x49, 0x67,
+
  0x88, 0x71, 0x7f, 0x9d, 0xe4, 0x5f, 0x1b, 0xf7, 0xdb, 0x1a, 0x9a, 0x2f,
+
  0x6f, 0xd8, 0x67, 0x1f, 0xdf, 0xcc, 0xf7, 0x08, 0xb4, 0x94, 0xa2, 0x21,
+
  0x7c, 0xcd, 0xe7, 0x7b, 0xad, 0x92, 0xc7, 0xd3, 0x04, 0xbf, 0xc5, 0xc4,
+
  0x9c, 0x4f, 0x8c, 0x60, 0x47, 0x9b, 0xf0, 0x3a, 0x25, 0xda, 0xe3, 0x00,
+
  0x98, 0x27, 0x04, 0xbd, 0xd7, 0x88, 0x5e, 0xf7, 0x4c, 0x2c, 0x6a, 0x88,
+
  0xbe, 0x28, 0xd3, 0x1b, 0xe5, 0xcf, 0xbf, 0xe2, 0x65, 0xfd, 0xeb, 0x62,
+
  0xf6, 0xbe, 0x07, 0x37, 0x14, 0x06, 0x3c, 0xf4, 0x86, 0xa0, 0x4f, 0x19,
+
  0x24, 0xa7, 0x87, 0x48, 0xd7, 0x3c, 0x36, 0x4b, 0x64, 0xa3, 0x03, 0x23,
+
  0x8f, 0x6b, 0xba, 0x94, 0x84, 0x73, 0x58, 0x06, 0x5e, 0x23, 0x50, 0x88,
+
  0x75, 0x59, 0x8c, 0xc0, 0xc8, 0xab, 0x21, 0xc5, 0xc1, 0x62, 0xc2, 0x79,
+
  0x47, 0xfa, 0xd6, 0xc6, 0x3a, 0xaa, 0x86, 0xe0, 0x4d, 0xc7, 0x7e, 0x3b,
+
  0xf3, 0x9e, 0x49, 0x55, 0x93, 0xb4, 0x12, 0x1d, 0x76, 0x96, 0xdd, 0x20,
+
  0xe5, 0xf3, 0xfb, 0x68, 0x35, 0x44, 0x0e, 0x47, 0xd9, 0x7e, 0xc0, 0xa2,
+
  0x73, 0x54, 0x47, 0x07, 0x65, 0x71, 0x53, 0x91, 0xb3, 0x5d, 0x3a, 0xd5,
+
  0xd3, 0x52, 0x49, 0x78, 0xad, 0x4d, 0x41, 0x24, 0x12, 0x46, 0xc2, 0x51,
+
  0x75, 0x6f, 0x38, 0x29, 0xc8, 0xc4, 0x48, 0xbe, 0xee, 0x7e, 0x14, 0xbb,
+
  0xa1, 0x8b, 0xda, 0xb6, 0x7e, 0x6b, 0x55, 0xc9, 0xb8, 0xb7, 0x38, 0x4f,
+
  0x5b, 0xcb, 0x77, 0xdf, 0xf5, 0xad, 0x63, 0xe9, 0x0d, 0x74, 0x92, 0xeb,
+
  0xa3, 0x44, 0xf0, 0x0b, 0x06, 0x41, 0x8b, 0x7f, 0xf4, 0x7e, 0x4d, 0x43,
+
  0xdd, 0xe1, 0xf7, 0x19, 0x1c, 0x9a, 0x09, 0x96, 0x34, 0x1e, 0x62, 0x5d,
+
  0x70, 0xc1, 0x6b, 0xfd, 0x4e, 0xdb, 0xa9, 0xa5, 0x5a, 0xda, 0x87, 0x7c,
+
  0xba, 0x98, 0x3a, 0x50, 0x30, 0x7b, 0x0d, 0x15, 0x84, 0x01, 0x8c, 0x0d,
+
  0xab, 0x75, 0xc9, 0x3d, 0xc3, 0xe5, 0xa8, 0xd1, 0x18, 0x6b, 0x11, 0x8d,
+
  0xb3, 0x22, 0x24, 0x95, 0x69, 0xcc, 0x41, 0x59, 0xcc, 0xe7, 0x6a, 0x98,
+
  0x58, 0x82, 0x7d, 0x74, 0xe0, 0x8b, 0xc4, 0xb7, 0x26, 0xb7, 0xb1, 0xd7,
+
  0x15, 0x5e, 0xf8, 0x55, 0x42, 0x74, 0x74, 0x9d, 0xc3, 0x4c, 0x70, 0xab,
+
  0x5a, 0x83, 0x8f, 0x24, 0x9c, 0x5e, 0x8c, 0xe8, 0x44, 0x0e, 0xf4, 0x29,
+
  0x19, 0xa6, 0x31, 0x7a, 0xfe, 0x3f, 0x7f, 0x38, 0x7f, 0xb6, 0x4d, 0xe2,
+
  0x1d, 0xfe, 0x25, 0x06, 0x73, 0x6e, 0xe8, 0xbb, 0x6f, 0xc9, 0x86, 0xba,
+
  0xfb, 0x78, 0xef, 0x9b, 0x6f, 0xba, 0xc9, 0x79, 0x31, 0x49, 0x4b, 0x68,
+
  0x6c, 0x77, 0xb7, 0x0f, 0x8a, 0x06, 0x2d, 0x2f, 0x5c, 0xd4, 0x68, 0xac,
+
  0x39, 0x3c, 0xf9, 0x0b, 0x7c, 0xf0, 0xe2, 0xac, 0xf7, 0xf6, 0x2f, 0xf4,
+
  0xf1, 0x94, 0x7c, 0xb7, 0xcb, 0xc1, 0x76, 0x4b, 0xe5, 0x7d, 0x88, 0x52,
+
  0xc2, 0xba, 0x36, 0xec, 0x66, 0x88, 0xe0, 0x3f, 0x73, 0x90, 0x0f, 0x74,
+
  0x9e, 0x34, 0x30, 0x43, 0x21, 0x97, 0xf1, 0x38, 0x7f, 0xa3, 0x49, 0xca,
+
  0xf1, 0xce, 0x86, 0x58, 0x96, 0xf5, 0x15, 0xba, 0xb5, 0x4c, 0x77, 0x71,
+
  0x37, 0xfb, 0x9f, 0x66, 0xbf, 0x8b, 0xf7, 0x2e, 0xe4, 0x1a, 0xd8, 0xe7,
+
  0x2d, 0xf4, 0x4a, 0x4f, 0x3e, 0x15, 0x14, 0xf1, 0x06, 0xc1, 0x72, 0x9a,
+
  0x6b, 0x1a, 0x87, 0x93, 0xb1, 0x27, 0x00, 0x05, 0x86, 0x32, 0xa3, 0x9a,
+
  0x80, 0xf9, 0x88, 0x6a, 0x7e, 0x4a, 0xc8, 0x80, 0xdc, 0xbb, 0xdc, 0xd0,
+
  0x12, 0x7d, 0x8b, 0xe7, 0x98, 0x1b, 0x56, 0x73, 0xb1, 0xcb, 0xae, 0x0d,
+
  0x2f, 0xc8, 0x1b, 0x7d, 0x03, 0x92, 0x25, 0xa2, 0x0b, 0x00, 0xd9, 0x01,
+
  0xe0, 0x8f, 0xa9, 0x4f, 0x1c, 0x2f, 0x28, 0x21, 0x55, 0xb7, 0x20, 0xc8,
+
  0x4c, 0x2b, 0x89, 0x9c, 0x97, 0xb2, 0xa8, 0xc2, 0x56, 0x3a, 0x70, 0xc2,
+
  0xde, 0xfd, 0xf1, 0xf8, 0xf8, 0xec, 0xe4, 0xd9, 0xcb, 0x63, 0x81, 0x73,
+
  0xb2, 0x8f, 0x5e, 0x5f, 0xfc, 0xf9, 0x65, 0x07, 0xb1, 0x79, 0x86, 0xef,
+
  0x33, 0x45, 0xb3, 0xa8, 0x92, 0x4d, 0xb4, 0x45, 0x50, 0x2b, 0x4c, 0xe0,
+
  0xdc, 0x90, 0xa7, 0x71, 0xa1, 0x70, 0x20, 0x58, 0x21, 0xe8, 0xae, 0xc2,
+
  0xa9, 0x12, 0x2d, 0x33, 0x31, 0x33, 0x2d, 0xf3, 0x17, 0x48, 0xcd, 0x5b,
+
  0x32, 0xb5, 0x3f, 0x36, 0x69, 0x35, 0xd1, 0x74, 0x1e, 0x64, 0x06, 0x09,
+
  0x03, 0xc6, 0x93, 0x66, 0x94, 0xd5, 0x54, 0x0e, 0xb3, 0x2c, 0xde, 0x93,
+
  0x43, 0xa6, 0x66, 0x19, 0xdf, 0xe2, 0x07, 0x69, 0x1f, 0xc2, 0x4e, 0x29,
+
  0x30, 0xb0, 0x03, 0x8c, 0xa7, 0x72, 0xe1, 0xd0, 0xc1, 0xd2, 0x2a, 0xc7,
+
  0xa2, 0xd3, 0x28, 0x1b, 0xe2, 0x2c, 0x96, 0x98, 0x0a, 0x73, 0x7d, 0xda,
+
  0x07, 0x50, 0xdc, 0x46, 0x8c, 0xc7, 0x28, 0xb8, 0x39, 0x2c, 0x66, 0x4f,
+
  0xa7, 0xac, 0x56, 0x3e, 0x91, 0x0b, 0x33, 0x2c, 0xd2, 0x36, 0xac, 0xc1,
+
  0x56, 0x37, 0xf9, 0x26, 0xd9, 0xa4, 0x45, 0xa4, 0x3f, 0x51, 0x3c, 0x7e,
+
  0xb4, 0xbd, 0xbb, 0x93, 0x6c, 0xca, 0x02, 0x6e, 0x75, 0x85, 0x40, 0x28,
+
  0xba, 0x85, 0xc6, 0xad, 0x70, 0x2b, 0x24, 0x66, 0x61, 0x61, 0xa8, 0x4b,
+
  0x8e, 0xfc, 0x88, 0x2c, 0xc4, 0x92, 0xe1, 0x2a, 0xe7, 0xb8, 0x13, 0x9d,
+
  0xa5, 0x8e, 0x40, 0x2d, 0x46, 0xca, 0xc1, 0x1d, 0xe5, 0xc1, 0xee, 0xe5,
+
  0x1f, 0x31, 0x03, 0xd1, 0x10, 0x1f, 0x63, 0x8d, 0x11, 0x17, 0x49, 0x92,
+
  0xc7, 0x3b, 0x74, 0xbb, 0x2a, 0x46, 0x3f, 0x34, 0xa0, 0xf7, 0x64, 0xe3,
+
  0x08, 0xde, 0x61, 0x24, 0xfa, 0x8d, 0x56, 0xa2, 0x46, 0x47, 0x7b, 0x6b,
+
  0xe2, 0xae, 0xfb, 0x65, 0xe8, 0x2e, 0x71, 0x28, 0xb5, 0x15, 0x7d, 0xd0,
+
  0x6b, 0x42, 0x27, 0x75, 0x9b, 0x3c, 0x85, 0x1f, 0xdf, 0xf9, 0x18, 0xad,
+
  0xf3, 0x17, 0x5b, 0x98, 0xf2, 0x72, 0x8d, 0xa1, 0x39, 0xf8, 0x80, 0xaa,
+
  0x4d, 0x7d, 0xad, 0xf5, 0x23, 0xb8, 0x91, 0x32, 0x7f, 0x46, 0xa6, 0xc4,
+
  0x74, 0xa4, 0x6b, 0xab, 0x73, 0x8f, 0xaf, 0x51, 0x70, 0x0b, 0xb9, 0x42,
+
  0x25, 0xf8, 0x5e, 0xd0, 0xe6, 0x28, 0xe4, 0xe6, 0xfc, 0x45, 0x97, 0x0c,
+
  0xf9, 0x68, 0x25, 0x71, 0xdb, 0xc3, 0x7e, 0x82, 0x3a, 0xc0, 0xaa, 0xf3,
+
  0x6e, 0x79, 0xdc, 0x2c, 0xa2, 0xae, 0x51, 0x3e, 0xa2, 0xcc, 0x43, 0xc9,
+
  0x2f, 0x12, 0x8c, 0xf2, 0x03, 0x5a, 0x46, 0xf4, 0x0b, 0x54, 0xd5, 0xd5,
+
  0x76, 0x3e, 0x7a, 0x57, 0x56, 0xa9, 0x01, 0xc2, 0x85, 0x4f, 0x47, 0xf8,
+
  0x69, 0xd2, 0xe9, 0xdb, 0x13, 0xf2, 0x3b, 0x7e, 0xde, 0x02, 0x7d, 0xc0,
+
  0x61, 0x7d, 0x5a, 0x0f, 0xe0, 0x14, 0x4e, 0xd1, 0xf9, 0xf9, 0x4b, 0x74,
+
  0x90, 0x97, 0x29, 0x46, 0xdf, 0x28, 0x8b, 0xcc, 0x66, 0x97, 0x64, 0x6d,
+
  0x9e, 0xbf, 0x1f, 0x56, 0xbb, 0xbb, 0xb6, 0xdf, 0xe6, 0x28, 0xb0, 0x6a,
+
  0x0d, 0x67, 0x7f, 0x3c, 0x3a, 0xff, 0x1d, 0x3c, 0xf1, 0xf6, 0xcd, 0x49,
+
  0xb2, 0x89, 0xb5, 0x0d, 0x92, 0xaf, 0x1f, 0xed, 0xee, 0x6d, 0x45, 0xba,
+
  0x49, 0xe4, 0x12, 0xd6, 0x1b, 0x2c, 0xec, 0x08, 0xa1, 0x9d, 0xf1, 0xad,
+
  0xe2, 0x1a, 0x64, 0x87, 0x30, 0x8a, 0xd8, 0x8a, 0x61, 0x12, 0xd0, 0xa6,
+
  0x5d, 0xa0, 0x77, 0x87, 0x47, 0x78, 0xd0, 0x11, 0xa0, 0x23, 0x29, 0x67,
+
  0x62, 0xa8, 0xf6, 0x6e, 0x7c, 0x7c, 0xa9, 0xc6, 0x9f, 0x2d, 0xdf, 0xa9,
+
  0x32, 0x33, 0x5c, 0x84, 0x5e, 0x4f, 0x96, 0xc1, 0x29, 0x0e, 0x78, 0x08,
+
  0xa0, 0x65, 0xe9, 0xb6, 0xc3, 0xbb, 0x8e, 0x2b, 0x75, 0x93, 0x36, 0x2f,
+
  0x67, 0xe2, 0x4c, 0xdc, 0x0e, 0x4c, 0xb3, 0x57, 0x93, 0x8b, 0x34, 0x6e,
+
  0x89, 0x9a, 0x3a, 0x7e, 0xfd, 0x63, 0x27, 0xb9, 0xa3, 0xa1, 0x96, 0x5d,
+
  0x6c, 0x6c, 0x23, 0x9c, 0x1c, 0x0a, 0x9b, 0x21, 0x98, 0x3d, 0x2e, 0xa4,
+
  0x0d, 0x34, 0x7c, 0x2e, 0xa5, 0xec, 0x2c, 0xad, 0x6c, 0x39, 0x55, 0x80,
+
  0x83, 0x25, 0x25, 0x84, 0x0f, 0x8f, 0x8b, 0x8b, 0xe2, 0xdb, 0x94, 0x84,
+
  0xd1, 0xac, 0x1e, 0x6e, 0xa1, 0x44, 0x87, 0x90, 0xc1, 0x86, 0xa2, 0xa2,
+
  0x76, 0x40, 0xb2, 0xe5, 0xb3, 0x1e, 0xcc, 0x1b, 0x4a, 0x3b, 0xca, 0x4e,
+
  0x0f, 0xab, 0xaf, 0xab, 0x11, 0x71, 0x1a, 0x21, 0x06, 0x8f, 0xc0, 0xd0,
+
  0x70, 0xbb, 0xd5, 0x6c, 0xc2, 0x3b, 0xb2, 0x27, 0x26, 0x05, 0x0f, 0x56,
+
  0xc3, 0x60, 0xa4, 0x21, 0xbc, 0xae, 0x2f, 0xb8, 0xeb, 0xd8, 0xcd, 0x97,
+
  0x43, 0x6d, 0xa1, 0x30, 0x22, 0x1f, 0xd4, 0xc7, 0x1d, 0x92, 0x95, 0x68,
+
  0x2d, 0xfe, 0x65, 0x1b, 0x2e, 0x42, 0x7b, 0xe6, 0x6a, 0xa5, 0xda, 0x77,
+
  0x4f, 0xf1, 0xa7, 0x63, 0x56, 0x84, 0x5c, 0xe0, 0x96, 0x51, 0x96, 0x03,
+
  0x9f, 0xea, 0x07, 0xd0, 0x0e, 0x03, 0xc8, 0xc4, 0x26, 0x84, 0x5d, 0x51,
+
  0xa3, 0x0d, 0xf2, 0xf3, 0x47, 0x8c, 0x2c, 0x9a, 0xcf, 0x8e, 0xdf, 0x74,
+
  0x93, 0xb3, 0xe3, 0x57, 0x22, 0x1f, 0x00, 0xd9, 0x31, 0xac, 0xa1, 0x4a,
+
  0xd2, 0xbc, 0xb4, 0xb3, 0xd8, 0x0d, 0x4a, 0x8c, 0x0c, 0x5e, 0xe2, 0xc5,
+
  0x4e, 0xab, 0x6a, 0x31, 0x25, 0x95, 0xce, 0x76, 0x81, 0xa7, 0xf2, 0x05,
+
  0x51, 0xef, 0xad, 0x0f, 0x18, 0xff, 0xa7, 0xec, 0x43, 0x58, 0xf7, 0x72,
+
  0x90, 0x3c, 0x25, 0x94, 0xe5, 0xa8, 0xa8, 0xa0, 0x40, 0xdf, 0xfc, 0x31,
+
  0x2b, 0xe1, 0xc6, 0x2f, 0xaa, 0xa4, 0x51, 0xf5, 0xcd, 0x22, 0xf2, 0x24,
+
  0x7f, 0x89, 0x1a, 0x68, 0xa0, 0xdd, 0x52, 0x1c, 0x98, 0x9c, 0x78, 0x07,
+
  0x8a, 0xa5, 0xa0, 0xc8, 0x1b, 0x54, 0x70, 0x6e, 0xa3, 0x9b, 0x6c, 0x20,
+
  0xbc, 0x2a, 0xfe, 0x4b, 0x75, 0x83, 0x46, 0xec, 0x6f, 0xdb, 0xe8, 0x86,
+
  0x73, 0xb0, 0x21, 0x9b, 0xb6, 0x01, 0x92, 0xb5, 0xb4, 0x43, 0xc6, 0x3a,
+
  0x72, 0x5d, 0xa7, 0xd2, 0x77, 0x40, 0xd3, 0x21, 0xab, 0x3c, 0x31, 0x0d,
+
  0x01, 0xd9, 0xaa, 0xd4, 0x92, 0x65, 0x0d, 0x85, 0xea, 0xf2, 0xa2, 0x51,
+
  0xc0, 0x22, 0xb4, 0x5e, 0xf7, 0x7e, 0x9b, 0x68, 0x9f, 0xf4, 0x40, 0x7d,
+
  0xdc, 0x66, 0x41, 0xf3, 0x5c, 0x5e, 0x6f, 0x25, 0x6c, 0x11, 0x3f, 0xd4,
+
  0x9e, 0x62, 0xe9, 0x33, 0x2c, 0x35, 0x4c, 0x4a, 0x37, 0xc6, 0x65, 0x38,
+
  0x9b, 0x09, 0x25, 0xc3, 0x12, 0x54, 0xb6, 0x4b, 0x51, 0x81, 0xb9, 0x9e,
+
  0xb6, 0xf9, 0xd4, 0x21, 0x97, 0x1f, 0x72, 0x79, 0x6b, 0x2f, 0x83, 0x91,
+
  0x5b, 0xe2, 0x96, 0xee, 0x5c, 0x36, 0xd2, 0x70, 0x2d, 0x1c, 0x67, 0x3b,
+
  0xe3, 0xf3, 0x42, 0xfb, 0x60, 0xca, 0xb0, 0x34, 0xde, 0x63, 0xd7, 0xe3,
+
  0x11, 0x8a, 0xed, 0x18, 0xc4, 0x9b, 0x50, 0x65, 0xb9, 0x50, 0x06, 0x45,
+
  0x53, 0x95, 0xe8, 0x20, 0xf3, 0xb6, 0xb1, 0xb7, 0xd4, 0x54, 0x02, 0x5c,
+
  0x06, 0x58, 0x5f, 0x42, 0x6f, 0x1e, 0x1b, 0x48, 0x74, 0xa9, 0x03, 0xe8,
+
  0x09, 0xd4, 0x9c, 0xc6, 0x75, 0xe1, 0xdb, 0x2b, 0x2a, 0x1c, 0x28, 0x8e,
+
  0xb8, 0xd5, 0xaa, 0x44, 0xea, 0xf0, 0x4e, 0xe8, 0x60, 0xdd, 0x27, 0x4b,
+
  0x7c, 0xa8, 0xad, 0x82, 0xd4, 0x55, 0x90, 0xf0, 0x99, 0x7d, 0xa8, 0x95,
+
  0x50, 0x7c, 0xfa, 0xc9, 0x17, 0x22, 0x16, 0x2b, 0x3c, 0x44, 0x35, 0x1d,
+
  0xfa, 0xc3, 0xf5, 0x8e, 0x74, 0x13, 0xeb, 0x8e, 0xca, 0xa4, 0xf4, 0x48,
+
  0x26, 0x7b, 0x0a, 0x53, 0xcc, 0x46, 0xdf, 0xc5, 0x20, 0x47, 0xde, 0xf8,
+
  0x61, 0x91, 0xbf, 0xf4, 0xb8, 0xd9, 0xc1, 0xcd, 0x04, 0x4e, 0xe6, 0x65,
+
  0x5e, 0x9e, 0x50, 0x5a, 0x2b, 0x94, 0x84, 0x66, 0x56, 0x40, 0x06, 0xc0,
+
  0xca, 0xe2, 0x0d, 0xad, 0x80, 0x01, 0xcf, 0x99, 0x4a, 0x4b, 0xe4, 0x1a,
+
  0xe1, 0xc9, 0x61, 0x6a, 0xa9, 0x12, 0x0d, 0x17, 0x74, 0x99, 0xe7, 0x73,
+
  0x09, 0x67, 0xe4, 0x11, 0x70, 0xf0, 0x04, 0x41, 0xc2, 0xd2, 0xde, 0xdb,
+
  0x28, 0xf9, 0x80, 0x6b, 0xe8, 0x0a, 0x7e, 0x67, 0xfc, 0x06, 0xeb, 0x5c,
+
  0x0e, 0xa0, 0x89, 0x9b, 0x7c, 0x54, 0x5f, 0x01, 0x6b, 0x12, 0xe0, 0xf3,
+
  0xbc, 0xa6, 0x5c, 0x4d, 0x4d, 0x3e, 0x81, 0x3f, 0x9b, 0x85, 0x09, 0x07,
+
  0x99, 0xb7, 0x4a, 0xb3, 0x8d, 0x90, 0x96, 0x8d, 0xeb, 0x6b, 0x65, 0x29,
+
  0x82, 0x69, 0xb3, 0x49, 0x93, 0x92, 0x56, 0xb6, 0x59, 0x7f, 0xe8, 0x1a,
+
  0xe6, 0x5e, 0x0a, 0x27, 0x73, 0x3c, 0xce, 0x3f, 0x04, 0xd1, 0x49, 0x0b,
+
  0x0a, 0xf6, 0xe5, 0x7c, 0xe1, 0x91, 0xd8, 0x78, 0xbf, 0x81, 0x42, 0xc8,
+
  0xc6, 0x1f, 0x37, 0xd0, 0xfd, 0x3e, 0x93, 0xba, 0xad, 0xa2, 0x0e, 0x82,
+
  0xd4, 0xf3, 0x3e, 0x07, 0x72, 0xc5, 0xf6, 0x81, 0xfb, 0x6d, 0x4c, 0x37,
+
  0x2c, 0x37, 0x78, 0xe3, 0xd5, 0x86, 0xa5, 0x48, 0xd4, 0x30, 0x1c, 0x49,
+
  0x9d, 0xa1, 0x54, 0x1c, 0xbc, 0x0c, 0x37, 0x2e, 0xa9, 0xdd, 0x64, 0xe3,
+
  0xc7, 0x8d, 0x60, 0xc2, 0xf4, 0x29, 0x36, 0x36, 0x35, 0x1e, 0x25, 0x3c,
+
  0xb0, 0xf9, 0x1e, 0xfa, 0x80, 0x5b, 0xef, 0x47, 0x8c, 0x98, 0x82, 0xcb,
+
  0x6c, 0x8b, 0xcd, 0x89, 0xbb, 0x3b, 0x7b, 0x0f, 0x61, 0x09, 0x89, 0x37,
+
  0x52, 0x1a, 0x9f, 0x7a, 0x35, 0x77, 0xdf, 0x87, 0xa9, 0xe1, 0x43, 0xfd,
+
  0x60, 0x36, 0xc7, 0x6a, 0x58, 0x7f, 0xec, 0x26, 0xfb, 0x53, 0xda, 0xbd,
+
  0xdd, 0x1f, 0xe3, 0xea, 0x60, 0x40, 0x52, 0xb4, 0xc5, 0x38, 0x7f, 0xac,
+
  0x35, 0x3a, 0x54, 0x4f, 0x18, 0xf2, 0x27, 0x3c, 0x38, 0x97, 0x26, 0xd2,
+
  0xd8, 0x16, 0xcb, 0xd2, 0x6b, 0x9a, 0x35, 0x68, 0x83, 0x53, 0xce, 0xfc,
+
  0x10, 0xe8, 0x5e, 0x2e, 0x06, 0x08, 0x8c, 0x12, 0x63, 0x80, 0x18, 0xc8,
+
  0x23, 0xc5, 0xcc, 0xd9, 0xbc, 0x20, 0x48, 0x7c, 0x33, 0x6d, 0xaa, 0x96,
+
  0xd7, 0xf0, 0x32, 0xb1, 0x15, 0x3a, 0x14, 0xf0, 0x06, 0x16, 0x89, 0x1d,
+
  0xf2, 0xa1, 0x09, 0x70, 0x9f, 0x5a, 0xc4, 0x52, 0xa4, 0x53, 0x4a, 0x35,
+
  0x31, 0x18, 0xa0, 0x61, 0x36, 0x22, 0x60, 0x6b, 0xb2, 0x84, 0x71, 0x34,
+
  0xca, 0xb0, 0xcc, 0xe7, 0x64, 0x50, 0x95, 0x79, 0xf7, 0x6c, 0xde, 0x92,
+
  0x64, 0x3c, 0x01, 0x5d, 0x02, 0x55, 0xd0, 0x00, 0x5a, 0x8a, 0x1a, 0x9c,
+
  0x2a, 0xcc, 0x7e, 0x0c, 0xbc, 0x50, 0xb8, 0x4e, 0x04, 0xd6, 0x25, 0xbc,
+
  0xc7, 0x8e, 0xf4, 0xe7, 0x13, 0xf1, 0xaa, 0x25, 0xee, 0x63, 0x9d, 0xec,
+
  0xc2, 0xae, 0xde, 0xef, 0x71, 0x88, 0x5f, 0xd8, 0xf9, 0xc8, 0x17, 0x5e,
+
  0xad, 0xc7, 0xdd, 0xf0, 0xe9, 0x6e, 0x63, 0x9b, 0xe4, 0x6e, 0xa3, 0x4f,
+
  0xbc, 0xc2, 0x3b, 0xe9, 0x52, 0x27, 0x55, 0xed, 0x33, 0x68, 0x31, 0xfd,
+
  0xe3, 0xec, 0xf4, 0x6c, 0x3f, 0x91, 0x4c, 0x10, 0x29, 0xc6, 0xc2, 0x59,
+
  0x3c, 0x13, 0x89, 0x60, 0x46, 0x47, 0x3c, 0x7d, 0xeb, 0x13, 0x2f, 0x80,
+
  0xed, 0x0d, 0x03, 0xb3, 0x42, 0x1d, 0x99, 0xfd, 0xf4, 0xd7, 0x79, 0x86,
+
  0xb9, 0xfa, 0xaf, 0xd2, 0xdb, 0x41, 0x16, 0xa7, 0xd1, 0x29, 0xbf, 0xd3,
+
  0x18, 0x38, 0x4e, 0x60, 0x45, 0x8e, 0x5a, 0x05, 0x92, 0x9e, 0xc2, 0x3d,
+
  0x03, 0x97, 0x58, 0x0f, 0xde, 0x94, 0x40, 0xf6, 0x00, 0xec, 0x06, 0x14,
+
  0xac, 0x43, 0x71, 0x39, 0x22, 0x8c, 0x1b, 0x46, 0xf4, 0xea, 0xcb, 0x4d,
+
  0x86, 0x27, 0x70, 0x44, 0x2e, 0x44, 0x1b, 0xc9, 0x3b, 0x75, 0x80, 0x1e,
+
  0x14, 0x87, 0x56, 0x10, 0x54, 0xfc, 0x34, 0xd5, 0xea, 0x2f, 0x2e, 0xa9,
+
  0x82, 0x58, 0x2d, 0xca, 0x00, 0xb1, 0x09, 0x76, 0x98, 0x32, 0xf4, 0x28,
+
  0x8c, 0xe8, 0xf5, 0x4b, 0xac, 0x9f, 0xea, 0xd2, 0xef, 0x06, 0x6c, 0x5c,
+
  0x34, 0xe7, 0xb7, 0xf7, 0x7b, 0xfb, 0x12, 0x15, 0x2f, 0x4f, 0xce, 0x2f,
+
  0x94, 0xee, 0xd0, 0xf0, 0x73, 0x90, 0x9c, 0x63, 0x06, 0xcc, 0x73, 0x07,
+
  0x9b, 0x36, 0x11, 0xac, 0x9d, 0xc9, 0xad, 0x64, 0x0b, 0xb2, 0x56, 0x94,
+
  0x97, 0xc1, 0xbc, 0x8e, 0x9d, 0xe0, 0x10, 0xfe, 0xe0, 0xca, 0x01, 0x8c,
+
  0x0a, 0x29, 0x69, 0xcd, 0xa5, 0x55, 0xaa, 0xc5, 0xa0, 0xa7, 0x0b, 0x92,
+
  0x8b, 0x6d, 0xb3, 0xba, 0x9d, 0x0e, 0x0a, 0x8c, 0x84, 0x03, 0xa1, 0xe1,
+
  0x7d, 0x15, 0x25, 0xb5, 0xe8, 0xc6, 0xe3, 0xe4, 0xce, 0x9b, 0x3b, 0xcf,
+
  0x26, 0xaf, 0x8a, 0x0b, 0x95, 0x12, 0x15, 0xb0, 0xe7, 0xde, 0x48, 0x40,
+
  0xa2, 0x9f, 0x60, 0xd5, 0xbb, 0x24, 0x6e, 0x62, 0xb9, 0x04, 0x14, 0x4c,
+
  0xfa, 0x86, 0x5f, 0x95, 0x49, 0x4a, 0x42, 0xc8, 0xad, 0x14, 0x6c, 0x01,
+
  0x4f, 0x12, 0xeb, 0x53, 0x44, 0x63, 0x88, 0x6b, 0x52, 0x84, 0xf0, 0x89,
+
  0x8a, 0x59, 0xa8, 0xcf, 0x78, 0x21, 0x76, 0x4a, 0x10, 0x85, 0x6a, 0xfe,
+
  0x89, 0x97, 0xa7, 0xcc, 0xd0, 0x4a, 0x73, 0x1d, 0x25, 0x7d, 0x00, 0xf7,
+
  0xce, 0x08, 0xa9, 0x9f, 0xdc, 0x69, 0x78, 0xa4, 0x34, 0x9b, 0xaa, 0xb9,
+
  0x52, 0xdc, 0x10, 0x6e, 0x7d, 0x83, 0x64, 0x0c, 0x78, 0xd1, 0x93, 0xc8,
+
  0x9b, 0xe3, 0x8b, 0x37, 0x61, 0xe1, 0xa2, 0x03, 0x65, 0xe2, 0x58, 0x73,
+
  0x01, 0x75, 0xfd, 0x80, 0x88, 0x32, 0x8e, 0xed, 0xb7, 0x41, 0x62, 0x81,
+
  0x88, 0xf4, 0x32, 0xeb, 0x61, 0xc2, 0xb8, 0x80, 0x52, 0xfa, 0x9c, 0x6e,
+
  0x21, 0x51, 0x2a, 0x2b, 0x8e, 0x3c, 0x9e, 0x52, 0x46, 0x73, 0x04, 0x70,
+
  0x8a, 0xb2, 0x51, 0x4f, 0x30, 0xc6, 0xb8, 0x69, 0x9a, 0x74, 0xb6, 0xc9,
+
  0x5b, 0x36, 0x7b, 0x44, 0x14, 0x47, 0x71, 0x98, 0x13, 0x0c, 0x27, 0xd4,
+
  0x63, 0x55, 0xd5, 0x9a, 0x06, 0x86, 0xa2, 0x84, 0xab, 0x14, 0xce, 0x47,
+
  0x81, 0xcf, 0xa1, 0x81, 0xc8, 0xab, 0xb3, 0xd5, 0x0a, 0xfe, 0x44, 0xae,
+
  0xf1, 0x66, 0x56, 0x81, 0x2b, 0x50, 0x02, 0xa4, 0xf9, 0xf6, 0xe4, 0xd9,
+
  0xcb, 0x70, 0x40, 0x65, 0x75, 0x19, 0xd9, 0xde, 0x72, 0xd0, 0x38, 0x00,
+
  0x29, 0xdc, 0x7d, 0xb4, 0x9b, 0x9a, 0x98, 0xb6, 0x98, 0xe5, 0x7f, 0xc7,
+
  0xab, 0x82, 0x94, 0xb0, 0x71, 0xce, 0x22, 0xe1, 0x55, 0x90, 0x9b, 0xaa,
+
  0xc4, 0xaf, 0xac, 0xd6, 0x95, 0xf1, 0x51, 0x8d, 0x2d, 0xe9, 0xe3, 0xc6,
+
  0x8b, 0x57, 0xd5, 0xe3, 0xfe, 0x48, 0x9f, 0xa3, 0xb5, 0x77, 0x9f, 0x1c,
+
  0xad, 0xdd, 0x2e, 0x2b, 0x5d, 0xb0, 0x63, 0x2d, 0xd0, 0xc2, 0x7f, 0x5f,
+
  0x60, 0x34, 0x68, 0x6b, 0x05, 0x63, 0x2a, 0x3e, 0x30, 0xe9, 0x91, 0xea,
+
  0xf5, 0x94, 0x8a, 0xff, 0x39, 0xbf, 0x4c, 0xea, 0x71, 0x01, 0x35, 0xb4,
+
  0x44, 0x3d, 0x8a, 0xa5, 0x16, 0x0b, 0xdc, 0x7c, 0xfe, 0xe6, 0xf4, 0x55,
+
  0xef, 0xe2, 0x74, 0x8b, 0x8e, 0x33, 0x47, 0x22, 0x27, 0x01, 0x2c, 0x47,
+
  0x4b, 0x32, 0xfa, 0x90, 0x6c, 0x36, 0xf3, 0x98, 0xb1, 0x7f, 0xb3, 0xda,
+
  0xf2, 0xb5, 0x88, 0xe9, 0xe5, 0x50, 0xca, 0x51, 0xa3, 0xc4, 0x66, 0x2c,
+
  0x78, 0x23, 0x21, 0x62, 0x9c, 0xd1, 0x30, 0xc5, 0xfb, 0x4b, 0xf3, 0x29,
+
  0xa5, 0xca, 0x41, 0x5d, 0x87, 0x38, 0x6e, 0x1e, 0x1d, 0x25, 0xd1, 0x17,
+
  0x08, 0xa4, 0x60, 0x9e, 0xa2, 0xba, 0x00, 0xe6, 0x9a, 0x96, 0x65, 0x71,
+
  0x63, 0x02, 0x0e, 0xde, 0x05, 0x40, 0x24, 0xa1, 0x1a, 0xa0, 0xf7, 0x44,
+
  0x40, 0xb3, 0x58, 0x8a, 0x05, 0xc8, 0x09, 0xfa, 0x67, 0x44, 0x61, 0x5f,
+
  0xba, 0x41, 0x56, 0xaf, 0xd5, 0x24, 0x12, 0x99, 0xd5, 0x9b, 0xd1, 0xf6,
+
  0x1f, 0x63, 0x58, 0x77, 0x1d, 0xa1, 0x34, 0xd2, 0xdb, 0xdf, 0x59, 0xb7,
+
  0xa6, 0x69, 0xa8, 0x84, 0x4c, 0x43, 0x7e, 0xd9, 0x75, 0x15, 0x27, 0x62,
+
  0x18, 0x8e, 0xb1, 0x67, 0x21, 0x92, 0x04, 0xef, 0x62, 0x9c, 0x84, 0x72,
+
  0x50, 0xa3, 0xa1, 0x6a, 0x04, 0x29, 0x1e, 0xfa, 0x6b, 0x7f, 0x5c, 0x53,
+
  0xe0, 0x18, 0x04, 0x20, 0x35, 0xab, 0x13, 0xed, 0x22, 0xd9, 0x0c, 0x55,
+
  0x32, 0x15, 0x93, 0xe1, 0xa5, 0x7c, 0x77, 0x60, 0x15, 0x06, 0xf9, 0x98,
+
  0xef, 0xff, 0xe5, 0x2f, 0x1a, 0x11, 0x24, 0x57, 0x23, 0x2a, 0xd8, 0x5b,
+
  0xdd, 0x96, 0xc4, 0x4e, 0x49, 0xc3, 0x1a, 0x15, 0x7e, 0x68, 0x16, 0xf2,
+
  0x33, 0xcb, 0xa4, 0x7e, 0x96, 0xe4, 0x4f, 0x9f, 0x48, 0xed, 0x47, 0x18,
+
  0x29, 0xe8, 0xf4, 0x54, 0x38, 0x43, 0xd9, 0x11, 0x96, 0x0b, 0xe8, 0x69,
+
  0xb4, 0x0e, 0x57, 0x8e, 0x97, 0xca, 0xea, 0xf2, 0xa1, 0x84, 0x5f, 0x09,
+
  0x26, 0x6d, 0x63, 0x15, 0x98, 0x2f, 0x62, 0x1b, 0xb3, 0x18, 0xda, 0x27,
+
  0x36, 0x2a, 0xa9, 0x8c, 0xca, 0x49, 0x00, 0xec, 0x6d, 0x17, 0x37, 0x3f,
+
  0x8f, 0xa3, 0xd3, 0x7b, 0x81, 0x51, 0xc5, 0xf8, 0x89, 0x95, 0x81, 0x61,
+
  0x3f, 0xd3, 0x8c, 0xea, 0x4e, 0x61, 0xc8, 0x1e, 0x72, 0xa9, 0x61, 0x99,
+
  0x89, 0x1d, 0xa9, 0x52, 0x6b, 0x43, 0x3e, 0xcb, 0xf1, 0x6f, 0x8a, 0xe1,
+
  0xe4, 0x99, 0xa6, 0x56, 0x9f, 0x43, 0xe8, 0x3d, 0xac, 0x18, 0x81, 0xfc,
+
  0xba, 0x5d, 0x92, 0x0a, 0x21, 0x11, 0x32, 0xc7, 0xa5, 0x7a, 0x64, 0x5d,
+
  0x67, 0x0a, 0xaa, 0x80, 0x89, 0x7d, 0x33, 0x36, 0xcd, 0x04, 0x2a, 0xea,
+
  0x69, 0xc0, 0x33, 0x5e, 0x24, 0x88, 0x41, 0x52, 0x88, 0xf7, 0x8c, 0x83,
+
  0x2b, 0x65, 0x5d, 0x5e, 0x92, 0x70, 0x4b, 0x31, 0x57, 0x53, 0x54, 0x11,
+
  0x91, 0x59, 0xb8, 0xa2, 0x29, 0x08, 0x7a, 0x40, 0x8e, 0x12, 0xf4, 0xb8,
+
  0x39, 0x28, 0x14, 0x76, 0xfc, 0xd0, 0x83, 0xad, 0x55, 0x6d, 0x42, 0x84,
+
  0x8c, 0xbc, 0x5f, 0x71, 0x80, 0x3e, 0x37, 0x2c, 0xfe, 0xc2, 0x71, 0x1c,
+
  0xa0, 0x4e, 0xb6, 0x4d, 0x8a, 0x72, 0xa4, 0xb9, 0x87, 0xbb, 0xa6, 0x6a,
+
  0x64, 0x5e, 0x2e, 0x95, 0xa2, 0xf9, 0xf1, 0xf8, 0xc2, 0xc4, 0x5f, 0x81,
+
  0xc5, 0x13, 0x4a, 0x0d, 0x86, 0xfc, 0xfd, 0x9d, 0x5d, 0xd0, 0x19, 0x77,
+
  0xf6, 0x28, 0x24, 0x0f, 0x7e, 0xd9, 0xef, 0x5b, 0x32, 0x66, 0x78, 0x9a,
+
  0x2c, 0x47, 0x88, 0xbc, 0xc0, 0xd6, 0x28, 0xa2, 0xc9, 0xfd, 0x0f, 0x1f,
+
  0xf8, 0x0b, 0x4f, 0x00, 0x64, 0x4c, 0x1f, 0x69, 0xed, 0x8d, 0x96, 0xa1,
+
  0x69, 0x3c, 0xbc, 0x85, 0xeb, 0xe0, 0x6d, 0xa7, 0x68, 0xd8, 0x22, 0x81,
+
  0x11, 0x8c, 0x8c, 0xaf, 0x03, 0x84, 0xd7, 0x6d, 0x8d, 0x75, 0xca, 0xc4,
+
  0x69, 0xc5, 0xd2, 0xa6, 0xec, 0x9a, 0x0f, 0xff, 0xe4, 0x9d, 0xc1, 0x69,
+
  0x73, 0x9d, 0x1b, 0x3c, 0xa5, 0x3b, 0x1f, 0x1a, 0xa7, 0x74, 0x70, 0x1b,
+
  0x8f, 0x02, 0x38, 0xa0, 0x9c, 0x78, 0x73, 0x6c, 0x6b, 0x9d, 0x92, 0xb4,
+
  0x3e, 0xa0, 0xfa, 0x43, 0x40, 0x77, 0xb8, 0x4e, 0xca, 0x47, 0xf9, 0x6f,
+
  0x85, 0x0b, 0xe1, 0xbf, 0xf6, 0xbd, 0xba, 0xad, 0x48, 0x38, 0xc4, 0x3d,
+
  0xe5, 0xca, 0xb4, 0x15, 0x90, 0x50, 0x3a, 0x2d, 0x24, 0xa0, 0xcf, 0xba,
+
  0xaa, 0x6f, 0xae, 0xaa, 0x30, 0x19, 0x47, 0xaa, 0x6c, 0xa2, 0x45, 0xd5,
+
  0xc9, 0xd6, 0x1b, 0x5d, 0xeb, 0xca, 0xb9, 0xda, 0xae, 0x75, 0xd3, 0xdb,
+
  0xd7, 0xce, 0x85, 0xb6, 0xea, 0x3e, 0x77, 0xf1, 0xf7, 0x97, 0x6b, 0xaa,
+
  0x8b, 0x12, 0x42, 0xcd, 0xcb, 0x94, 0x4e, 0xea, 0x5e, 0x75, 0x3d, 0x8c,
+
  0xae, 0x72, 0x7f, 0x1e, 0x57, 0x80, 0x2c, 0x05, 0x4e, 0x40, 0x9a, 0x91,
+
  0x9f, 0xb0, 0x9c, 0x40, 0x86, 0x08, 0xb1, 0xc3, 0x29, 0xbb, 0x84, 0xe1,
+
  0x41, 0x5c, 0x77, 0x99, 0xad, 0x35, 0x56, 0x36, 0x2a, 0xe2, 0x4a, 0x74,
+
  0xe0, 0xa4, 0xba, 0x58, 0x06, 0x5f, 0x50, 0x41, 0x24, 0x2a, 0x01, 0x62,
+
  0xd7, 0x04, 0x7f, 0xcb, 0x00, 0x03, 0x66, 0xf9, 0x50, 0x36, 0x86, 0x85,
+
  0xfe, 0xbc, 0xc5, 0x93, 0xa2, 0xca, 0x0b, 0x0d, 0x2f, 0x67, 0x9d, 0xa8,
+
  0x2e, 0x8b, 0xd1, 0x82, 0x94, 0xd7, 0x84, 0xb3, 0xf6, 0x31, 0xda, 0x7b,
+
  0x50, 0x72, 0x35, 0x38, 0xcb, 0xd0, 0xaa, 0xf2, 0xda, 0x52, 0x4b, 0x94,
+
  0xcd, 0x88, 0xf7, 0x37, 0xa5, 0x2f, 0x69, 0x06, 0xec, 0x5e, 0xa1, 0xca,
+
  0x6f, 0x66, 0x2b, 0x0e, 0xd5, 0x92, 0x38, 0x58, 0x17, 0x51, 0xbb, 0xd9,
+
  0xa0, 0x3c, 0x0b, 0x63, 0x97, 0xb4, 0x11, 0x31, 0xa5, 0xa0, 0xd9, 0xb6,
+
  0x94, 0x10, 0x54, 0x60, 0x6c, 0x1a, 0x50, 0xdf, 0x75, 0xb0, 0x92, 0xd5,
+
  0xf0, 0x2a, 0xd3, 0x60, 0x3a, 0x78, 0xd6, 0x09, 0x39, 0x1a, 0x6c, 0xd0,
+
  0x66, 0xea, 0xa5, 0x9d, 0x57, 0xc4, 0x01, 0xdd, 0x39, 0x62, 0xc4, 0x5c,
+
  0x58, 0x45, 0x23, 0xcd, 0xe8, 0x60, 0x64, 0x1f, 0x30, 0xe0, 0x39, 0xb7,
+
  0x12, 0xed, 0x51, 0x5c, 0x69, 0x3b, 0x95, 0x1b, 0xf3, 0x5e, 0x1f, 0xd5,
+
  0x79, 0x1d, 0x6a, 0xd7, 0x66, 0xef, 0xb3, 0xca, 0x34, 0x47, 0xd1, 0x5b,
+
  0x90, 0x30, 0x7f, 0x80, 0x33, 0xbc, 0x29, 0xca, 0x35, 0x22, 0x43, 0x97,
+
  0x9b, 0x78, 0x81, 0xd1, 0xe2, 0x74, 0x95, 0x6a, 0xac, 0xe1, 0xb7, 0xe9,
+
  0x60, 0xd8, 0x91, 0xc4, 0xb3, 0xb5, 0x2b, 0x35, 0xb9, 0x73, 0x75, 0x99,
+
  0xcf, 0x7a, 0xca, 0xc9, 0x9e, 0xca, 0x2f, 0x96, 0x87, 0x88, 0x65, 0x47,
+
  0x5f, 0x3e, 0x83, 0x1f, 0x6c, 0x88, 0xe1, 0x1a, 0xa9, 0xc1, 0x7f, 0x47,
+
  0x16, 0x2b, 0x6c, 0x21, 0x30, 0x43, 0x45, 0x38, 0x4b, 0x46, 0x8b, 0xd2,
+
  0xa4, 0x52, 0x55, 0xdd, 0x22, 0xc9, 0xa1, 0xc9, 0xb3, 0xe9, 0xb5, 0x96,
+
  0xd6, 0xd4, 0xe1, 0xee, 0xa8, 0xcd, 0xd4, 0xda, 0xa8, 0xee, 0x11, 0x91,
+
  0x2b, 0x1e, 0x25, 0xd5, 0xb5, 0x78, 0x08, 0xcd, 0x6e, 0x93, 0xc3, 0xda,
+
  0xfc, 0xb8, 0x24, 0x82, 0xe0, 0x2c, 0xbb, 0x3c, 0xc3, 0x90, 0x72, 0x40,
+
  0x95, 0x56, 0x2d, 0xbf, 0x9d, 0x87, 0xa5, 0x35, 0x75, 0xd8, 0xc8, 0xba,
+
  0xa4, 0x9a, 0xa7, 0x03, 0xc2, 0x34, 0xa2, 0x67, 0xa3, 0x24, 0x00, 0x94,
+
  0xd5, 0xa8, 0x10, 0x1f, 0x29, 0xbd, 0x09, 0xc5, 0x16, 0xec, 0xed, 0x3f,
+
  0xc1, 0x50, 0x3d, 0xfa, 0xfd, 0xd1, 0xce, 0x37, 0x7b, 0x49, 0x70, 0xb2,
+
  0x83, 0x10, 0x7e, 0x7c, 0xf1, 0x1c, 0x56, 0xb0, 0x84, 0x7b, 0xa9, 0x91,
+
  0x55, 0x05, 0x67, 0x16, 0xcb, 0xdc, 0xbe, 0x87, 0x2d, 0xcc, 0xb3, 0x7a,
+
  0xdc, 0x2f, 0xca, 0x4b, 0x4c, 0xb5, 0xda, 0x46, 0xe8, 0x94, 0x6d, 0x7a,
+
  0xa1, 0x97, 0xa5, 0xe5, 0x15, 0x68, 0xe2, 0x98, 0xf1, 0xde, 0xab, 0xa6,
+
  0xf5, 0xbc, 0xb7, 0xb3, 0xd3, 0x80, 0x73, 0xdd, 0x23, 0xac, 0x3c, 0xda,
+
  0x5c, 0x03, 0xa1, 0x5d, 0xde, 0xcb, 0xa4, 0x73, 0xf8, 0xf6, 0xe2, 0xc5,
+
  0xb7, 0xbf, 0x7f, 0x79, 0xfa, 0xe3, 0xc9, 0xeb, 0x8e, 0xa4, 0xdf, 0xe9,
+
  0x4a, 0xdb, 0x21, 0xee, 0x3a, 0x94, 0x11, 0x76, 0x9f, 0x4f, 0xf0, 0xd4,
+
  0x6c, 0x92, 0x39, 0xeb, 0xfc, 0xf0, 0xfc, 0xe5, 0x56, 0xd2, 0xa1, 0x16,
+
  0xa8, 0xbf, 0x8e, 0x69, 0xba, 0x72, 0xf6, 0x24, 0x47, 0xdf, 0xeb, 0xf7,
+
  0xa3, 0x6b, 0xf4, 0x56, 0x53, 0x7b, 0xf8, 0xfe, 0xd2, 0xf6, 0x1d, 0x89,
+
  0x58, 0x2a, 0xbe, 0xc9, 0x20, 0x07, 0x52, 0xc5, 0xa4, 0x65, 0xb8, 0x94,
+
  0x2e, 0xc5, 0x26, 0xe4, 0xb5, 0x8a, 0x41, 0x12, 0x16, 0xa3, 0x87, 0x90,
+
  0x0c, 0xd1, 0xc1, 0x10, 0x16, 0x10, 0x0c, 0x12, 0x99, 0x0a, 0x15, 0x67,
+
  0x52, 0x9c, 0xa2, 0x60, 0xaa, 0x63, 0xd4, 0x29, 0x15, 0xbf, 0x68, 0x31,
+
  0x23, 0x78, 0x5f, 0x41, 0xf9, 0xaf, 0xdc, 0xa2, 0xf0, 0x42, 0x74, 0x92,
+
  0xcd, 0xac, 0x7f, 0xd9, 0xe7, 0x48, 0x1d, 0x5c, 0x80, 0x3a, 0x0c, 0xa6,
+
  0x9a, 0x15, 0x05, 0xda, 0x96, 0xb7, 0x1a, 0x9a, 0x98, 0x3f, 0xa4, 0xf7,
+
  0xe5, 0x3d, 0xff, 0x86, 0x10, 0xa7, 0xb8, 0xa3, 0x0d, 0xda, 0xff, 0xff,
+
  0xdc, 0x48, 0xf2, 0x69, 0x3a, 0xff, 0x28, 0xae, 0x82, 0xe6, 0x89, 0x1e,
+
  0xee, 0x5b, 0xf2, 0x54, 0x52, 0x99, 0xac, 0xac, 0x0f, 0x71, 0x90, 0xf3,
+
  0x00, 0xab, 0xa0, 0xba, 0xb7, 0x3c, 0xe7, 0xc0, 0xce, 0x02, 0x0a, 0x43,
+
  0x88, 0xb9, 0x09, 0x80, 0xc2, 0x0d, 0xcf, 0xb6, 0xe0, 0x68, 0x6c, 0xb2,
+
  0x15, 0xa4, 0xbe, 0x65, 0x85, 0x1d, 0x1d, 0x3c, 0x83, 0x29, 0x7a, 0x30,
+
  0x47, 0x66, 0x04, 0x31, 0x9f, 0xb3, 0xdc, 0xfc, 0x99, 0x48, 0x9c, 0x08,
+
  0x4b, 0x2c, 0xdd, 0xa5, 0x72, 0x15, 0x5a, 0x36, 0x90, 0xc4, 0x08, 0x84,
+
  0x69, 0x7d, 0xb9, 0x78, 0x8d, 0xd0, 0x07, 0xae, 0xe8, 0xf7, 0x3e, 0x17,
+
  0xa0, 0x77, 0xc1, 0xf5, 0x36, 0xf1, 0x50, 0xdf, 0x5b, 0x72, 0x89, 0xda,
+
  0x29, 0x87, 0xf3, 0x10, 0x62, 0x06, 0x7f, 0xa3, 0xa6, 0x17, 0x6f, 0x12,
+
  0xe9, 0x7e, 0xf7, 0x6e, 0x92, 0xda, 0x47, 0x74, 0x99, 0x43, 0xd6, 0xa8,
+
  0xd4, 0x97, 0xe3, 0x71, 0xc9, 0x99, 0x0c, 0xc8, 0xb1, 0x48, 0xdb, 0xd4,
+
  0x27, 0x3b, 0x43, 0x42, 0x8f, 0xad, 0xe8, 0x14, 0x6d, 0xe0, 0x14, 0xbe,
+
  0xfc, 0xe8, 0xfa, 0xeb, 0x47, 0x7d, 0x7c, 0x81, 0xf5, 0xc3, 0x7d, 0x89,
+
  0xd7, 0x8f, 0x9e, 0xb8, 0x7b, 0xfd, 0x02, 0x8d, 0xb3, 0x11, 0x56, 0x57,
+
  0x91, 0x52, 0x80, 0x4a, 0x06, 0x69, 0x41, 0xf9, 0x0a, 0xbe, 0x23, 0x52,
+
  0x44, 0x1b, 0x58, 0x70, 0x5c, 0x00, 0xf1, 0xbd, 0xc9, 0xe6, 0x19, 0xaf,
+
  0xb7, 0x0f, 0x1e, 0x8f, 0x1d, 0xd8, 0x89, 0x13, 0x59, 0xf1, 0xb7, 0x18,
+
  0xe9, 0x08, 0x04, 0xc4, 0x7c, 0x9e, 0xfb, 0xaa, 0x85, 0x6c, 0xc0, 0x14,
+
  0xab, 0xae, 0x9a, 0xd3, 0x03, 0x1c, 0x4d, 0x8c, 0xb4, 0xb6, 0xf9, 0xe7,
+
  0x37, 0xcf, 0xff, 0x6a, 0x9c, 0x7b, 0x4b, 0xa2, 0x35, 0x1b, 0x4d, 0xfb,
+
  0x70, 0x11, 0xe7, 0xa0, 0xd7, 0x22, 0xdb, 0x61, 0xb2, 0x78, 0x77, 0x86,
+
  0x99, 0xdb, 0x55, 0x30, 0x2a, 0x28, 0x0a, 0x7a, 0x13, 0x5e, 0x40, 0xa3,
+
  0xfc, 0xb9, 0x58, 0xa8, 0xf6, 0xfb, 0x8f, 0xc8, 0xd4, 0x0c, 0xf7, 0xe4,
+
  0xa3, 0xfd, 0xbd, 0xdd, 0xad, 0x3b, 0x26, 0x90, 0x84, 0x35, 0x14, 0xd7,
+
  0x04, 0xc8, 0x8c, 0x74, 0xab, 0x6e, 0x1e, 0xff, 0xe5, 0xec, 0xf5, 0xba,
+
  0x13, 0x88, 0xe2, 0x0b, 0x82, 0xb6, 0xae, 0x6d, 0x53, 0xcb, 0x2c, 0xff,
+
  0x52, 0xf5, 0x67, 0xcb, 0x68, 0xea, 0x3c, 0x2f, 0x73, 0xbc, 0x60, 0x3a,
+
  0x34, 0xc3, 0xce, 0xcb, 0x62, 0x36, 0x02, 0xc9, 0xed, 0x14, 0x61, 0x42,
+
  0x32, 0xbc, 0x3e, 0x3d, 0xc5, 0x98, 0x4d, 0x58, 0x98, 0xdc, 0x72, 0x94,
+
  0xd1, 0x47, 0x16, 0xf1, 0x09, 0x4d, 0x47, 0x64, 0x3f, 0x43, 0x98, 0xd4,
+
  0x25, 0x72, 0xbf, 0x83, 0xda, 0x7b, 0x24, 0x8e, 0x8f, 0xa5, 0x22, 0x7b,
+
  0x83, 0xd0, 0xdd, 0x97, 0x11, 0xa5, 0xd3, 0x5e, 0x48, 0xc0, 0xba, 0xa6,
+
  0xd3, 0x17, 0x2e, 0xeb, 0x38, 0x90, 0x5f, 0xd7, 0x55, 0x98, 0xf0, 0x80,
+
  0x7a, 0x20, 0x3a, 0xa1, 0x10, 0x42, 0x42, 0xd7, 0xb0, 0x98, 0xa1, 0x77,
+
  0x29, 0xa0, 0xff, 0xa0, 0x4c, 0x95, 0x69, 0x5d, 0x24, 0xab, 0xe7, 0xa6,
+
  0x4d, 0x8a, 0x85, 0x53, 0x46, 0xf4, 0xe6, 0xe8, 0xec, 0x22, 0xb9, 0x38,
+
  0xf5, 0xde, 0x0b, 0xce, 0xc0, 0x45, 0xfa, 0x6e, 0x00, 0xd7, 0x66, 0x49,
+
  0xe2, 0xca, 0xef, 0xe0, 0x76, 0x5c, 0xa5, 0xd7, 0x39, 0x01, 0x2c, 0xf0,
+
  0xfe, 0xf0, 0x0e, 0x25, 0x16, 0x2f, 0x9d, 0x70, 0xc5, 0x1e, 0x4b, 0xfd,
+
  0xd4, 0xfb, 0xb9, 0x6d, 0x81, 0x9a, 0x61, 0x2f, 0x9c, 0x1b, 0x22, 0x30,
+
  0x7e, 0x66, 0xb3, 0x92, 0xb0, 0x45, 0x87, 0xab, 0xcb, 0x5a, 0x66, 0x84,
+
  0x44, 0x2d, 0xf5, 0xeb, 0x24, 0x8e, 0x10, 0x78, 0x61, 0x3e, 0x6a, 0x39,
+
  0xd1, 0x27, 0x63, 0xae, 0xb3, 0xe9, 0x57, 0x46, 0xb0, 0x7b, 0x65, 0x59,
+
  0x70, 0x5d, 0xd4, 0xd2, 0x6b, 0xe2, 0x26, 0xc5, 0x7d, 0x4c, 0xd2, 0xcb,
+
  0x70, 0x23, 0x36, 0xc3, 0x7e, 0x19, 0x25, 0x5b, 0x76, 0x88, 0x10, 0x3d,
+
  0x97, 0x76, 0x89, 0x13, 0x4e, 0x04, 0x37, 0x2a, 0x04, 0x04, 0x31, 0x74,
+
  0x14, 0xba, 0xdd, 0x73, 0xb2, 0xa5, 0x12, 0x5b, 0xb6, 0xa4, 0x5b, 0x61,
+
  0xf2, 0x36, 0x34, 0x5d, 0xb1, 0xb6, 0x8c, 0xe5, 0xd6, 0x15, 0xfe, 0x2c,
+
  0xc9, 0x50, 0x2b, 0x28, 0x7f, 0x9d, 0xa3, 0xe6, 0xc7, 0xe2, 0x4f, 0xe0,
+
  0x28, 0xab, 0xea, 0xe8, 0xe2, 0x91, 0x4a, 0x89, 0xab, 0xce, 0xa1, 0x2f,
+
  0x9d, 0xd4, 0x4c, 0x45, 0xb1, 0x56, 0xf5, 0x34, 0xbe, 0xea, 0x1a, 0xb6,
+
  0x80, 0x40, 0xe3, 0x30, 0xce, 0x00, 0x4e, 0x14, 0x4b, 0x8a, 0x32, 0x18,
+
  0xfe, 0x42, 0x4a, 0xea, 0xb2, 0xec, 0x7a, 0xcf, 0x74, 0xa8, 0xad, 0x55,
+
  0xc1, 0x49, 0x5d, 0x17, 0xdd, 0xc4, 0x37, 0x21, 0xea, 0x1f, 0x99, 0x63,
+
  0x0e, 0x1f, 0x28, 0x83, 0x90, 0xbc, 0x71, 0x4f, 0x29, 0x72, 0xe5, 0xbb,
+
  0x06, 0xde, 0x2d, 0x8c, 0xf1, 0x4f, 0x17, 0x17, 0xc6, 0x26, 0x38, 0x0e,
+
  0x28, 0xe5, 0x32, 0x5c, 0x54, 0xa7, 0x8d, 0xae, 0x77, 0x36, 0xd5, 0x2a,
+
  0xf1, 0x79, 0x3a, 0xd2, 0x90, 0x27, 0xea, 0x02, 0x6d, 0xee, 0x09, 0xc7,
+
  0xf3, 0xb0, 0x8c, 0x47, 0x38, 0xc8, 0x14, 0x94, 0x56, 0x84, 0x00, 0x27,
+
  0x0f, 0x12, 0x17, 0xc0, 0x67, 0x82, 0x7d, 0x3b, 0x8f, 0x91, 0x6d, 0xf9,
+
  0x1c, 0xc8, 0x30, 0xe2, 0x32, 0x77, 0x41, 0xe0, 0xa7, 0x24, 0xc0, 0xa0,
+
  0x20, 0xb6, 0x00, 0xc8, 0x7d, 0x20, 0x9c, 0xcf, 0x51, 0x96, 0x3c, 0x36,
+
  0xfb, 0xde, 0xb9, 0xb9, 0x6d, 0x42, 0xe8, 0x16, 0x4b, 0x33, 0x30, 0x5c,
+
  0x9a, 0x7c, 0xa4, 0x27, 0x50, 0x94, 0x84, 0xbe, 0x7b, 0x28, 0x33, 0x16,
+
  0x83, 0x67, 0xa9, 0xba, 0xad, 0x44, 0x41, 0xfa, 0x48, 0x9f, 0xae, 0x8b,
+
  0x57, 0xd2, 0x80, 0x25, 0x8c, 0x58, 0x32, 0xd4, 0x10, 0x0d, 0x5b, 0x72,
+
  0x71, 0x4b, 0x3e, 0x70, 0x69, 0x63, 0xba, 0x61, 0x31, 0x4b, 0x2e, 0x18,
+
  0x29, 0x04, 0x2d, 0x59, 0x75, 0x3e, 0x58, 0x68, 0x09, 0x5c, 0x8a, 0xe2,
+
  0x96, 0x42, 0xd8, 0xd2, 0xfd, 0x21, 0x46, 0xaf, 0x4f, 0x2f, 0x8e, 0x0f,
+
  0x34, 0xd1, 0x49, 0xd0, 0xec, 0x1e, 0xa2, 0x4a, 0x7a, 0xa3, 0xe1, 0xea,
+
  0xbc, 0xa1, 0xec, 0xe0, 0x75, 0x45, 0x69, 0xa5, 0xb4, 0x8a, 0x19, 0xdb,
+
  0x74, 0xb7, 0xbb, 0x02, 0x97, 0x8d, 0xd7, 0x31, 0x07, 0x22, 0x44, 0xa2,
+
  0x52, 0xc3, 0x01, 0x6c, 0x4a, 0x67, 0xa0, 0x30, 0xa6, 0x1f, 0xdd, 0x72,
+
  0xd2, 0x12, 0x17, 0x73, 0x51, 0x0d, 0x3c, 0x9d, 0x30, 0xf2, 0x10, 0x89,
+
  0xbc, 0xd1, 0x4e, 0x9d, 0x23, 0x69, 0xe0, 0xc3, 0x44, 0x07, 0xcc, 0xd9,
+
  0x65, 0x4e, 0xd1, 0x48, 0x1c, 0x13, 0x75, 0xd0, 0x9d, 0xe3, 0x60, 0xa8,
+
  0x27, 0x3b, 0x9f, 0x6a, 0xd2, 0x2e, 0x5a, 0x4a, 0x4d, 0x19, 0xae, 0x92,
+
  0xa5, 0xe9, 0x24, 0xee, 0xfc, 0x7d, 0xb9, 0xbc, 0xba, 0xa8, 0x9b, 0x95,
+
  0x41, 0x46, 0x4b, 0x4c, 0x24, 0xc4, 0x0d, 0x45, 0x0c, 0x83, 0x5d, 0x1e,
+
  0xc9, 0x53, 0x20, 0xc6, 0x18, 0xc0, 0x81, 0x21, 0xd8, 0xf4, 0xa0, 0x58,
+
  0xce, 0x15, 0x9d, 0x73, 0xb5, 0x74, 0xb2, 0x45, 0xa5, 0x2e, 0xd4, 0xa4,
+
  0xdb, 0x17, 0x69, 0xb0, 0x59, 0x72, 0xde, 0x8a, 0x74, 0x76, 0x13, 0xa9,
+
  0xee, 0xc0, 0xca, 0xb6, 0x7a, 0x54, 0xe8, 0x32, 0x72, 0x4e, 0x07, 0x74,
+
  0x9d, 0x12, 0x0e, 0x53, 0xc3, 0xb0, 0xea, 0x65, 0x96, 0x6e, 0x38, 0xa5,
+
  0x96, 0xf9, 0x00, 0x6d, 0x3f, 0xda, 0xf1, 0x65, 0xe3, 0x69, 0x0e, 0x4b,
+
  0x39, 0x0a, 0x38, 0x84, 0xde, 0x2e, 0x0b, 0xe7, 0x12, 0xdf, 0x88, 0x81,
+
  0x88, 0x1c, 0x48, 0xd9, 0x77, 0xbb, 0x29, 0x8b, 0xf3, 0x05, 0x35, 0x4c,
+
  0xeb, 0x63, 0xdf, 0x2f, 0xd7, 0x7a, 0x1b, 0x1a, 0x2c, 0xfe, 0xb4, 0xda,
+
  0xd3, 0xae, 0x4b, 0x5f, 0x6a, 0xcb, 0x7f, 0xb4, 0x78, 0x55, 0x4a, 0xce,
+
  0x9a, 0x69, 0x74, 0x5f, 0x12, 0x50, 0x9e, 0xe8, 0x16, 0xa5, 0x18, 0xde,
+
  0xb8, 0xb8, 0x68, 0x1d, 0xaa, 0x94, 0x9d, 0xf1, 0xd6, 0xa9, 0xed, 0x66,
+
  0xc0, 0xd8, 0x9e, 0xbf, 0x16, 0x03, 0x4d, 0x11, 0xc7, 0xd2, 0x45, 0x14,
+
  0x92, 0x38, 0x66, 0x20, 0xcd, 0x05, 0x65, 0x66, 0xa3, 0xf1, 0x83, 0xd4,
+
  0x22, 0xe8, 0x20, 0xb2, 0xee, 0x90, 0x37, 0x94, 0x42, 0x8b, 0x92, 0xcb,
+
  0x02, 0x5f, 0xe3, 0x34, 0xec, 0xc8, 0x36, 0x4d, 0x38, 0x1b, 0x55, 0xa2,
+
  0xb5, 0xa3, 0x19, 0xc8, 0xaf, 0x19, 0x94, 0x98, 0x71, 0xc4, 0x3d, 0x06,
+
  0xdd, 0xdc, 0x2e, 0x47, 0x44, 0x26, 0x9b, 0xe8, 0xd6, 0x80, 0xaf, 0xb6,
+
  0x42, 0x3d, 0x24, 0xa3, 0xee, 0x20, 0xeb, 0x33, 0x7f, 0xce, 0x4a, 0x2e,
+
  0x45, 0xc6, 0xc6, 0x6e, 0x5a, 0x0d, 0xfc, 0xae, 0xc1, 0x2b, 0x2a, 0x09,
+
  0xf0, 0x19, 0x09, 0x96, 0xd4, 0x50, 0x8b, 0x32, 0x30, 0x9c, 0x04, 0xf5,
+
  0x16, 0xf6, 0x03, 0x26, 0x3f, 0x31, 0xd7, 0x24, 0x7d, 0x97, 0xc4, 0xd9,
+
  0xc8, 0x59, 0x3c, 0xbf, 0x90, 0x94, 0x3a, 0xf0, 0x40, 0xa2, 0x8a, 0x21,
+
  0x3b, 0x02, 0x46, 0xbc, 0xd9, 0xdf, 0xa2, 0xcb, 0x43, 0xde, 0x53, 0xca,
+
  0xa4, 0x54, 0x32, 0x58, 0xd4, 0x9e, 0x46, 0xfa, 0x72, 0x75, 0x74, 0x8c,
+
  0x97, 0xb0, 0x92, 0x53, 0x02, 0x92, 0x35, 0xe6, 0xab, 0xc5, 0xc0, 0xc0,
+
  0x14, 0x3c, 0x94, 0x2f, 0x56, 0x75, 0xaf, 0x48, 0x83, 0x1a, 0xc3, 0x6d,
+
  0x53, 0xfa, 0x9c, 0xc5, 0xaf, 0xab, 0x96, 0x93, 0x41, 0x9d, 0xec, 0xae,
+
  0x11, 0x12, 0x69, 0x0f, 0xef, 0xf5, 0xbf, 0xd9, 0x5b, 0x37, 0xfb, 0x9d,
+
  0x02, 0x2f, 0xe8, 0x35, 0x34, 0x15, 0x6b, 0xd4, 0x8a, 0xdf, 0xb3, 0xc0,
+
  0x27, 0xb3, 0x3a, 0x45, 0x12, 0x5d, 0x76, 0x9b, 0x10, 0xa8, 0xbd, 0xa2,
+
  0x75, 0x70, 0x98, 0xda, 0x12, 0x5a, 0xe9, 0x2b, 0x79, 0x3b, 0xa0, 0x72,
+
  0xcb, 0x51, 0xb2, 0x2f, 0xd4, 0xb6, 0x1d, 0x55, 0x24, 0xcd, 0x83, 0xbf,
+
  0xb9, 0x0c, 0xee, 0x27, 0xb8, 0x95, 0x2a, 0x62, 0xba, 0x5c, 0xa2, 0x54,
+
  0x61, 0x82, 0xb1, 0x0e, 0xec, 0x93, 0xfe, 0xce, 0x96, 0x5a, 0x77, 0xb4,
+
  0xe5, 0x2f, 0x68, 0xdc, 0xd1, 0x2e, 0xe8, 0xc2, 0x5e, 0x0f, 0x5a, 0x19,
+
  0xe8, 0x68, 0x32, 0xc9, 0x42, 0x32, 0xc5, 0x74, 0x5e, 0x0f, 0x25, 0x90,
+
  0x97, 0xf3, 0x65, 0x2a, 0x0d, 0x4e, 0xc3, 0x5b, 0xe6, 0x15, 0xe9, 0x14,
+
  0x29, 0xdc, 0xe2, 0x98, 0x35, 0xbc, 0xf9, 0xea, 0xec, 0x02, 0x41, 0xf1,
+
  0x71, 0x35, 0xa2, 0x8c, 0x60, 0xfa, 0xdc, 0x85, 0x8d, 0xcf, 0x50, 0xed,
+
  0x40, 0xcf, 0x1a, 0x33, 0x7a, 0x32, 0x67, 0x5b, 0x10, 0x27, 0x3e, 0x4a,
+
  0xdc, 0x4e, 0x5c, 0x5d, 0xa6, 0xb7, 0x48, 0x62, 0x32, 0x2c, 0xef, 0x54,
+
  0xef, 0x0a, 0x32, 0x46, 0x87, 0x18, 0x06, 0x33, 0x47, 0xa3, 0xce, 0x59,
+
  0x5f, 0x55, 0x49, 0xc0, 0x06, 0x65, 0x4f, 0x01, 0x3b, 0xc5, 0x35, 0x4e,
+
  0xc8, 0x59, 0x53, 0x32, 0x8c, 0x92, 0x4c, 0x1d, 0x86, 0x01, 0x6a, 0xb4,
+
  0xd9, 0x0c, 0xf8, 0xe4, 0xd0, 0x85, 0xdb, 0x13, 0x09, 0xe6, 0x53, 0xdc,
+
  0x2d, 0x64, 0x10, 0x93, 0x5c, 0x21, 0x67, 0x2d, 0x32, 0x89, 0xcf, 0xbe,
+
  0x0d, 0x99, 0x47, 0x51, 0xe5, 0xf8, 0x41, 0x3a, 0xcb, 0x88, 0x00, 0x75,
+
  0xcf, 0x78, 0x51, 0x30, 0xf1, 0x25, 0x9b, 0x65, 0xe3, 0x9c, 0x70, 0x9d,
+
  0x73, 0x97, 0x61, 0x7d, 0x43, 0xc9, 0x4e, 0x8d, 0xa6, 0x28, 0xd0, 0xaf,
+
  0x51, 0x1d, 0x89, 0xb3, 0x28, 0x24, 0x12, 0x94, 0x63, 0x4d, 0xbb, 0x22,
+
  0xde, 0x21, 0xe9, 0x4f, 0x8b, 0x01, 0x6e, 0x7f, 0xa3, 0x5d, 0xe4, 0x4f,
+
  0x94, 0x68, 0x49, 0xee, 0x54, 0xe1, 0x4b, 0x1c, 0xde, 0xa8, 0x6b, 0xf6,
+
  0x53, 0xfe, 0x3c, 0x17, 0xe1, 0x3d, 0x9b, 0x4c, 0xb8, 0x46, 0x13, 0x59,
+
  0x2b, 0xb0, 0x34, 0x14, 0x41, 0xd5, 0x60, 0x30, 0x58, 0xc8, 0x08, 0x0f,
+
  0xb9, 0x99, 0x36, 0x68, 0x82, 0x72, 0x46, 0xab, 0x8a, 0xa2, 0xc3, 0xb2,
+
  0xaa, 0x8a, 0x98, 0xe3, 0x6d, 0x05, 0x71, 0xf2, 0xca, 0xa7, 0xda, 0x73,
+
  0xc0, 0x4b, 0x80, 0x7b, 0x28, 0x0c, 0x84, 0xb8, 0x52, 0x01, 0x92, 0xae,
+
  0x33, 0x0d, 0x33, 0x2f, 0x31, 0xe5, 0xf1, 0x51, 0xff, 0x71, 0x3f, 0x39,
+
  0xa5, 0x74, 0x70, 0x5c, 0x5e, 0x47, 0x86, 0x1c, 0xb7, 0xa8, 0xe1, 0x10,
+
  0x5d, 0x50, 0xf8, 0x66, 0x86, 0x26, 0xe8, 0xeb, 0x29, 0x98, 0x0a, 0x23,
+
  0x02, 0xb0, 0xd4, 0xcb, 0xd9, 0xc4, 0x12, 0x37, 0x94, 0x3c, 0xfe, 0xf6,
+
  0x59, 0xd4, 0xae, 0xbf, 0x1e, 0xc4, 0x29, 0x23, 0x99, 0x44, 0xf4, 0x08,
+
  0x0b, 0x5f, 0x94, 0x36, 0xc6, 0x31, 0xf9, 0xca, 0x49, 0x68, 0xff, 0x89,
+
  0x19, 0x40, 0x67, 0x9e, 0x19, 0xc7, 0x01, 0x67, 0xe9, 0x14, 0xb3, 0x2f,
+
  0xa8, 0xb4, 0x15, 0x1c, 0x88, 0x8a, 0x33, 0x31, 0x13, 0xbe, 0xa9, 0xa9,
+
  0x01, 0x8f, 0x60, 0x17, 0x1f, 0xd8, 0x7b, 0x0a, 0xf2, 0x25, 0x4b, 0x6a,
+
  0xbf, 0xab, 0x7b, 0x9c, 0xf8, 0xfd, 0x64, 0xd5, 0x1f, 0x1b, 0xbe, 0x87,
+
  0xe1, 0xe0, 0x23, 0x9f, 0x0e, 0x02, 0x3b, 0x06, 0x4e, 0x57, 0x80, 0x5e,
+
  0x66, 0xcc, 0xc7, 0x8a, 0x32, 0x46, 0x52, 0xaf, 0xe4, 0xed, 0xbd, 0xd6,
+
  0x2f, 0x93, 0xcd, 0xf3, 0xb3, 0xd7, 0xc7, 0x3f, 0x9e, 0x6e, 0xad, 0xf0,
+
  0x98, 0x7a, 0x12, 0xb3, 0xec, 0xb3, 0x54, 0x53, 0x9f, 0x25, 0xef, 0x8c,
+
  0x54, 0x91, 0x1f, 0xcf, 0xcf, 0x7b, 0x87, 0x67, 0x27, 0x09, 0xa5, 0x76,
+
  0xc3, 0xbf, 0xba, 0x57, 0x7d, 0x5f, 0x6d, 0x4c, 0x2f, 0xe8, 0x10, 0x94,
+
  0xcb, 0x79, 0x5b, 0x64, 0xfc, 0x51, 0xff, 0xa0, 0xb4, 0xb4, 0x4d, 0xcd,
+
  0x60, 0x73, 0x34, 0xc2, 0xc8, 0x1a, 0xdb, 0xe2, 0x79, 0x43, 0x21, 0x29,
+
  0x50, 0x8a, 0x26, 0xa6, 0xa7, 0xb0, 0xf3, 0xef, 0x29, 0xfe, 0x89, 0x82,
+
  0x5b, 0x3d, 0xad, 0xa2, 0x65, 0x00, 0xd1, 0x28, 0xd2, 0x9a, 0x45, 0x9f,
+
  0x86, 0x9f, 0x87, 0x93, 0xd2, 0xa0, 0x9d, 0x79, 0x56, 0x62, 0x19, 0x81,
+
  0x73, 0xd1, 0x79, 0xd3, 0x64, 0xa3, 0xb7, 0x48, 0x0e, 0x36, 0x02, 0x4b,
+
  0xce, 0x66, 0x54, 0xe2, 0x35, 0x35, 0xee, 0xce, 0xf6, 0x66, 0x32, 0xae,
+
  0xa9, 0xb7, 0x8d, 0x44, 0x47, 0x4e, 0x6b, 0x76, 0x03, 0x61, 0x8c, 0x1e,
+
  0x4b, 0x1e, 0x65, 0x70, 0x34, 0xb9, 0x66, 0x1b, 0xe8, 0x8a, 0xb6, 0x9d,
+
  0xab, 0xa2, 0x64, 0x3f, 0x16, 0x61, 0x31, 0x34, 0x88, 0xd3, 0x59, 0xef,
+
  0x86, 0x1b, 0xa4, 0x15, 0x62, 0xec, 0xc3, 0xcb, 0xf5, 0x84, 0xc4, 0x71,
+
  0x50, 0x61, 0xc8, 0x81, 0x24, 0x01, 0x47, 0x54, 0x5b, 0xc0, 0x1a, 0x56,
+
  0x52, 0x9c, 0xd1, 0x1b, 0x20, 0x7a, 0x0c, 0xd5, 0x8c, 0xf4, 0x5e, 0x0b,
+
  0x9c, 0x0f, 0x53, 0xb9, 0x5e, 0xfa, 0xf4, 0xbd, 0xe4, 0xee, 0xc6, 0x35,
+
  0x31, 0xb8, 0x1c, 0x86, 0xcb, 0x74, 0x30, 0x9c, 0x42, 0xf6, 0x21, 0x2f,
+
  0x2d, 0xb6, 0xab, 0x10, 0x5d, 0x33, 0x86, 0x92, 0x64, 0x5d, 0x70, 0x0e,
+
  0x1f, 0xda, 0x8a, 0x70, 0xe9, 0xdf, 0xce, 0xf2, 0x0f, 0xfd, 0x80, 0x31,
+
  0x53, 0xa9, 0x0d, 0x94, 0x8b, 0x25, 0xb1, 0x6c, 0x92, 0xc9, 0xb5, 0x4d,
+
  0x7b, 0xd6, 0xf4, 0x0e, 0x53, 0x66, 0x25, 0x8d, 0x7b, 0xf3, 0xd1, 0x56,
+
  0xb0, 0xd6, 0x8c, 0xeb, 0xf9, 0xe6, 0x2e, 0x5f, 0xe4, 0x52, 0x8c, 0xc4,
+
  0x02, 0x2a, 0x69, 0x7a, 0x9a, 0x60, 0x71, 0x64, 0xf5, 0x90, 0x49, 0x8c,
+
  0x25, 0x60, 0x5b, 0x2b, 0x9a, 0x4e, 0xce, 0x5e, 0x34, 0x47, 0xd3, 0x2b,
+
  0xe1, 0x29, 0x4a, 0x8d, 0xe3, 0x28, 0x3c, 0x92, 0x6a, 0x29, 0x92, 0xa8,
+
  0xe2, 0x4a, 0x5f, 0xc9, 0x66, 0x5e, 0x2f, 0x79, 0xab, 0x67, 0x02, 0xfd,
+
  0x8e, 0x4e, 0xe4, 0xc9, 0x88, 0x64, 0x66, 0xf8, 0xe3, 0xb2, 0x2c, 0x16,
+
  0xf3, 0x1e, 0x26, 0x9a, 0xe3, 0xfc, 0xb6, 0x04, 0x77, 0x24, 0xc6, 0x5e,
+
  0x36, 0xf0, 0x65, 0xf1, 0x39, 0xbc, 0x38, 0x7d, 0x75, 0xdc, 0x31, 0x67,
+
  0x29, 0x55, 0x57, 0x12, 0xdc, 0x83, 0x78, 0x83, 0x94, 0xec, 0x4e, 0x0d,
+
  0x78, 0x3f, 0x81, 0x5b, 0x2e, 0xe4, 0x10, 0xe8, 0xf6, 0x36, 0xb6, 0x95,
+
  0xb0, 0xe2, 0x08, 0x38, 0x78, 0x74, 0x90, 0x08, 0x3d, 0x84, 0x45, 0x7d,
+
  0x47, 0x7f, 0x77, 0x2d, 0x92, 0x3a, 0x44, 0xc9, 0x51, 0xae, 0x00, 0x0a,
+
  0xef, 0xa7, 0x5c, 0x42, 0xd1, 0x0a, 0x9f, 0xd1, 0xaa, 0x47, 0x48, 0x46,
+
  0xd2, 0x3c, 0x6d, 0x0d, 0x37, 0x98, 0xf8, 0x38, 0xf1, 0xc3, 0x04, 0xf8,
+
  0x1b, 0xdc, 0x0f, 0x24, 0x0b, 0xe4, 0x94, 0xd5, 0xa6, 0xd9, 0x6d, 0x68,
+
  0x14, 0x90, 0x98, 0x4c, 0x0e, 0x63, 0x4e, 0x95, 0x62, 0x6b, 0x09, 0x2b,
+
  0xf2, 0x2e, 0x06, 0xf8, 0x0c, 0x89, 0x4c, 0xad, 0xcf, 0x92, 0xb9, 0xc1,
+
  0xa1, 0xa5, 0xec, 0x7b, 0x22, 0x5b, 0x2d, 0x93, 0x9b, 0xf1, 0x8b, 0x8d,
+
  0xe9, 0x2d, 0x82, 0x0f, 0x6f, 0x38, 0xd1, 0xca, 0xd8, 0xc7, 0x06, 0x07,
+
  0x81, 0x6d, 0x08, 0x2a, 0x2f, 0xe5, 0xea, 0x68, 0xc9, 0xb6, 0xba, 0x20,
+
  0xe4, 0xc7, 0x15, 0xbd, 0xc0, 0x37, 0x7c, 0x4c, 0xb8, 0x75, 0xf8, 0x33,
+
  0x44, 0x00, 0x50, 0x9b, 0x5f, 0x2d, 0x47, 0xe4, 0xf3, 0xcc, 0xda, 0xa0,
+
  0x5c, 0xc3, 0xfd, 0xd7, 0x0c, 0x62, 0x32, 0xbb, 0x52, 0xd3, 0xea, 0x4d,
+
  0x8d, 0xdd, 0xc7, 0x8a, 0xb0, 0xbf, 0x75, 0x4b, 0xa9, 0x37, 0x2b, 0x43,
+
  0xb7, 0x16, 0x86, 0xa6, 0x26, 0x7b, 0xcc, 0x4e, 0x3c, 0x7e, 0x1c, 0x7f,
+
  0xce, 0x4d, 0xa1, 0x29, 0xdb, 0xa3, 0xa7, 0xd8, 0x2b, 0x5d, 0x56, 0xa0,
+
  0xc6, 0xf9, 0xa5, 0x30, 0xb6, 0x28, 0xe2, 0xc0, 0x35, 0xfd, 0x54, 0x89,
+
  0xba, 0x89, 0xc2, 0xe4, 0xb8, 0x99, 0x05, 0x47, 0x9e, 0x6b, 0x89, 0xbd,
+
  0xda, 0x7a, 0xeb, 0xd2, 0xe8, 0x33, 0x04, 0xc6, 0xa6, 0xc3, 0x0e, 0x77,
+
  0x98, 0xab, 0x03, 0xa7, 0x77, 0x18, 0x23, 0x69, 0xc2, 0xc4, 0x36, 0xd3,
+
  0x41, 0x55, 0x4c, 0x16, 0x35, 0x39, 0x36, 0x31, 0x8c, 0x00, 0x83, 0xeb,
+
  0xcc, 0x4d, 0x79, 0x02, 0x57, 0xdf, 0x80, 0xc3, 0x37, 0x07, 0xb7, 0x4b,
+
  0x53, 0xe5, 0x88, 0x3e, 0x73, 0xb8, 0xa8, 0x15, 0xc8, 0xaf, 0xd3, 0x97,
+
  0x32, 0xe8, 0xb9, 0x3e, 0xd6, 0xda, 0xe9, 0xb5, 0xa0, 0x5c, 0x99, 0xac,
+
  0x22, 0x2c, 0x57, 0x5e, 0x52, 0x83, 0x1c, 0xac, 0x24, 0x22, 0x5e, 0xf7,
+
  0xb2, 0xb1, 0x81, 0xba, 0x30, 0x1a, 0xaf, 0x14, 0x36, 0xc7, 0xed, 0xce,
+
  0x60, 0xb1, 0xe4, 0x0c, 0x97, 0x3c, 0x5b, 0xda, 0x66, 0xe1, 0x01, 0xb0,
+
  0x06, 0xe9, 0x65, 0x04, 0xc6, 0x9a, 0x4e, 0xac, 0x00, 0x2f, 0xda, 0xf9,
+
  0x46, 0x29, 0xb3, 0xb8, 0x4a, 0x83, 0xb1, 0x85, 0xf9, 0x84, 0xf2, 0x72,
+
  0x6d, 0x9e, 0xa8, 0xc6, 0x06, 0xae, 0x82, 0x56, 0x6e, 0xc8, 0xa3, 0xeb,
+
  0x1d, 0xc8, 0x70, 0x04, 0xd6, 0xd8, 0x3a, 0x1b, 0xc2, 0xba, 0x47, 0x74,
+
  0xf5, 0x09, 0x8d, 0x0f, 0x68, 0x5f, 0xb1, 0xe6, 0x3d, 0x3e, 0x41, 0x20,
+
  0x17, 0xdd, 0xb1, 0x83, 0xae, 0xa4, 0xd9, 0x07, 0x51, 0xd2, 0x57, 0xf4,
+
  0x75, 0x99, 0xfe, 0x12, 0x1e, 0x1d, 0x85, 0x78, 0x5b, 0x8d, 0x32, 0x04,
+
  0xe2, 0x28, 0x86, 0x54, 0xa7, 0x3c, 0x8a, 0x99, 0x13, 0xad, 0x35, 0x0d,
+
  0xc8, 0x46, 0xcc, 0xe7, 0x67, 0x2e, 0x75, 0x1f, 0x1b, 0xd1, 0x58, 0xee,
+
  0x2e, 0xdb, 0xcc, 0x9c, 0x8c, 0xcf, 0x99, 0x88, 0x09, 0x21, 0x22, 0x2f,
+
  0x45, 0x0c, 0x76, 0x25, 0x6a, 0xdb, 0xfc, 0x27, 0xe6, 0xcc, 0x4f, 0x9c,
+
  0xfe, 0x6d, 0xa6, 0xb5, 0x92, 0x2f, 0x49, 0x34, 0x03, 0x80, 0x34, 0x0b,
+
  0xd7, 0x84, 0x85, 0x90, 0x63, 0x2b, 0xd8, 0x73, 0xff, 0xab, 0xb0, 0x54,
+
  0x1f, 0x6a, 0xb6, 0xe3, 0x55, 0xec, 0x91, 0x65, 0x33, 0x98, 0xc5, 0x02,
+
  0xe2, 0xac, 0x49, 0x13, 0x54, 0x98, 0x83, 0x62, 0x46, 0x84, 0x23, 0x55,
+
  0x60, 0xf2, 0xd2, 0x99, 0x45, 0x30, 0x99, 0x71, 0x01, 0x8a, 0x26, 0xa1,
+
  0xb3, 0x5d, 0x6b, 0x81, 0x25, 0xcd, 0xf5, 0xb4, 0x22, 0x4f, 0xde, 0x8a,
+
  0x4d, 0x66, 0x01, 0xbf, 0x33, 0xb9, 0x44, 0x47, 0x93, 0x78, 0x94, 0x24,
+
  0x3f, 0x4a, 0xaf, 0x61, 0x40, 0x89, 0xa5, 0x62, 0x26, 0xde, 0xef, 0x47,
+
  0x7f, 0x91, 0xb3, 0xcf, 0x8e, 0x2f, 0xfd, 0xd5, 0x4b, 0xab, 0x61, 0x9e,
+
  0xcb, 0x29, 0x46, 0xef, 0x27, 0x46, 0x1c, 0x86, 0x0b, 0x1b, 0xdd, 0x52,
+
  0xb6, 0xaa, 0x5a, 0xf8, 0x69, 0x54, 0x70, 0x75, 0x76, 0x49, 0x33, 0xe0,
+
  0x9c, 0x18, 0x8a, 0xc5, 0xa7, 0x30, 0x07, 0x8d, 0x2f, 0x8a, 0x62, 0x03,
+
  0xd1, 0x71, 0x1e, 0xca, 0x2f, 0xdc, 0xdc, 0xdc, 0xec, 0xf6, 0xa3, 0x68,
+
  0x1e, 0x5e, 0xe8, 0x1e, 0x56, 0x77, 0xad, 0x6a, 0x62, 0x07, 0xf0, 0xcc,
+
  0x5e, 0xbf, 0xad, 0x34, 0x29, 0x3d, 0xf9, 0x99, 0x30, 0x66, 0xdb, 0x50,
+
  0x5a, 0xd7, 0x19, 0x8b, 0x3f, 0xc2, 0x27, 0x77, 0xb5, 0xd2, 0xfc, 0x0a,
+
  0x8e, 0xde, 0xf6, 0x6a, 0xbb, 0xd6, 0x0a, 0x6e, 0x5a, 0xf4, 0xd2, 0xc9,
+
  0xdc, 0xe7, 0x40, 0x9d, 0x6f, 0x19, 0x13, 0x42, 0x12, 0x39, 0x7c, 0x79,
+
  0xf6, 0x9a, 0x60, 0x92, 0xcc, 0x6e, 0xd5, 0xe7, 0xcf, 0x30, 0x03, 0x76,
+
  0xc6, 0xc6, 0x40, 0x57, 0x57, 0xc3, 0xe4, 0x5f, 0x5f, 0x58, 0xd3, 0xe9,
+
  0x99, 0x94, 0xe9, 0x1a, 0xd0, 0xb7, 0xf8, 0xe6, 0x34, 0xdd, 0x11, 0x1b,
+
  0x46, 0xf8, 0x2b, 0xf8, 0x27, 0xaa, 0xc2, 0x92, 0x48, 0xed, 0x41, 0x03,
+
  0xe8, 0x88, 0x5f, 0x93, 0xd2, 0xd8, 0x44, 0xf2, 0x41, 0x31, 0x92, 0x4f,
+
  0xb5, 0xa8, 0x1c, 0x9b, 0x1e, 0x2c, 0x4e, 0x42, 0xec, 0x15, 0xe2, 0x2e,
+
  0xa3, 0xa5, 0xd4, 0x40, 0xe9, 0xca, 0xa7, 0x70, 0x3a, 0x04, 0xbb, 0x5c,
+
  0x3d, 0xa3, 0x08, 0xc0, 0x82, 0x99, 0x3e, 0xcc, 0x2f, 0x49, 0xfc, 0x1b,
+
  0x15, 0xc3, 0x05, 0x0a, 0xde, 0x6a, 0x6f, 0xd7, 0x38, 0x65, 0x25, 0x2c,
+
  0x5c, 0x64, 0xaa, 0xca, 0xcc, 0x1a, 0xbc, 0xcc, 0x34, 0x12, 0xdb, 0x78,
+
  0x27, 0x3e, 0x47, 0x08, 0x3a, 0xb6, 0x73, 0xcf, 0xcd, 0x20, 0x9d, 0xdd,
+
  0x55, 0xa6, 0x57, 0x9f, 0x59, 0x09, 0x5b, 0xb3, 0x8c, 0x5b, 0x03, 0x74,
+
  0xd2, 0x02, 0x59, 0x83, 0xb7, 0xd6, 0x7c, 0xd6, 0x86, 0xcf, 0xfe, 0xba,
+
  0xcb, 0x5f, 0x0f, 0x16, 0x63, 0xab, 0xc1, 0xfe, 0xcc, 0xbb, 0xb9, 0x13,
+
  0xfe, 0x86, 0x18, 0x56, 0xa1, 0x7e, 0xfa, 0x62, 0x51, 0xcf, 0x17, 0xb5,
+
  0x1a, 0x44, 0xd1, 0xf0, 0x3f, 0xd3, 0x1c, 0x69, 0x8e, 0xb6, 0xd5, 0x4a,
+
  0xb1, 0x70, 0x83, 0x09, 0x0f, 0x77, 0xa1, 0xc7, 0x2e, 0x6b, 0x9e, 0x1b,
+
  0x27, 0x03, 0x1b, 0x37, 0xc9, 0x2d, 0x8a, 0x38, 0x67, 0x89, 0x2e, 0x04,
+
  0x0e, 0x27, 0x2e, 0x61, 0xfa, 0x8a, 0x60, 0x24, 0xe8, 0x8d, 0xca, 0x81,
+
  0x87, 0xa3, 0xe5, 0x68, 0x78, 0xb5, 0x98, 0xbd, 0x87, 0xfe, 0xb8, 0x6a,
+
  0x87, 0x24, 0x52, 0xe6, 0x9a, 0x89, 0x00, 0xab, 0x3c, 0xac, 0xad, 0xf4,
+
  0x40, 0xc0, 0x41, 0x4f, 0x41, 0x23, 0xba, 0x46, 0x29, 0xe2, 0xad, 0xe6,
+
  0x0f, 0x39, 0xcb, 0xa0, 0xb9, 0xfd, 0x5d, 0x29, 0x15, 0x5b, 0x95, 0x2f,
+
  0x40, 0xa9, 0xdc, 0xb6, 0xa3, 0xd5, 0xb0, 0x05, 0x44, 0x64, 0x4b, 0x54,
+
  0x2b, 0x2f, 0xfc, 0xf6, 0x9a, 0x89, 0xdc, 0xd0, 0xbd, 0x84, 0x2b, 0xfd,
+
  0xad, 0x5b, 0x2f, 0xf1, 0x12, 0x03, 0x15, 0x7b, 0x03, 0x87, 0x1d, 0x0c,
+
  0x6d, 0x0c, 0xe1, 0x6e, 0x33, 0xb0, 0x4b, 0xb1, 0x49, 0x2d, 0x23, 0xf4,
+
  0x06, 0x6e, 0xd1, 0xeb, 0xf1, 0x7e, 0x77, 0x39, 0x79, 0x1b, 0x0b, 0xcb,
+
  0x48, 0x42, 0x49, 0x8f, 0x22, 0xfc, 0x74, 0xf1, 0xe4, 0x2b, 0xa9, 0x87,
+
  0x48, 0xc1, 0x15, 0xf1, 0xa7, 0x3d, 0xba, 0xe8, 0x9d, 0x70, 0x21, 0xa6,
+
  0x8a, 0x84, 0x0b, 0xa0, 0x3b, 0xeb, 0x3e, 0x02, 0x2a, 0x91, 0xa3, 0x52,
+
  0xe2, 0x14, 0xc8, 0x2d, 0xc0, 0xe0, 0x72, 0x64, 0x0a, 0x27, 0xba, 0x97,
+
  0x1c, 0x70, 0xf6, 0xb8, 0x49, 0x02, 0xa9, 0xc7, 0xf1, 0xbc, 0x24, 0xd9,
+
  0x42, 0xb0, 0x6a, 0xd4, 0xe1, 0xc0, 0xc1, 0x95, 0xe3, 0x60, 0xd3, 0xa0,
+
  0xc6, 0x15, 0x2a, 0x07, 0x13, 0x99, 0x90, 0x68, 0xba, 0x08, 0xfb, 0x63,
+
  0x11, 0x14, 0x06, 0x21, 0xb9, 0xbb, 0xb3, 0x23, 0x59, 0x70, 0x1c, 0xa3,
+
  0xa6, 0x59, 0x93, 0x94, 0x3a, 0x47, 0x6f, 0x52, 0x36, 0x9f, 0x2f, 0xc6,
+
  0xdc, 0x4e, 0x9c, 0xeb, 0xd0, 0x26, 0xa7, 0xe8, 0x5d, 0x2d, 0x42, 0x5c,
+
  0x3a, 0xad, 0xa7, 0xec, 0x9e, 0x28, 0xeb, 0x64, 0xc3, 0x13, 0x20, 0x0f,
+
  0x85, 0x9b, 0x94, 0x27, 0x60, 0xfd, 0xba, 0x96, 0x3d, 0x40, 0xf7, 0x52,
+
  0x63, 0xa3, 0xdc, 0x1e, 0x92, 0x97, 0xde, 0x14, 0xac, 0x28, 0xf6, 0x8f,
+
  0x6e, 0x4d, 0x2a, 0xca, 0xdb, 0x43, 0xc6, 0x10, 0x74, 0x59, 0xad, 0xf4,
+
  0xce, 0xe1, 0x7f, 0x7c, 0x53, 0xb9, 0xf4, 0xda, 0xa6, 0x1d, 0x59, 0x46,
+
  0xb5, 0x74, 0x82, 0x6c, 0x3e, 0xeb, 0x1b, 0x07, 0x57, 0x1e, 0x22, 0xed,
+
  0xe3, 0xbe, 0x53, 0xa4, 0x7d, 0x2a, 0x65, 0xb3, 0xf0, 0x49, 0xb9, 0xf3,
+
  0xf7, 0xf8, 0xcc, 0x7c, 0x01, 0xf4, 0xfd, 0x86, 0x2d, 0x5b, 0xda, 0x52,
+
  0x7f, 0xa5, 0x91, 0xbd, 0x3f, 0x7b, 0x86, 0x6b, 0xda, 0xc2, 0xef, 0xc5,
+
  0xb9, 0x16, 0xe0, 0x60, 0x25, 0x16, 0x9f, 0x8c, 0x70, 0x0a, 0xd1, 0xeb,
+
  0x51, 0xb7, 0x9d, 0xdd, 0x26, 0x24, 0x36, 0x66, 0xc1, 0x5d, 0x37, 0x75,
+
  0x31, 0x19, 0x5f, 0x84, 0x1e, 0x1d, 0x4e, 0x2b, 0x53, 0xa3, 0xd1, 0x62,
+
  0x00, 0x81, 0x4e, 0x1a, 0xc6, 0xe0, 0xa5, 0x35, 0xf8, 0x8c, 0xee, 0x0a,
+
  0x0f, 0x3d, 0x7d, 0x37, 0x05, 0x84, 0x71, 0xaf, 0x09, 0x2b, 0xd8, 0x82,
+
  0x75, 0x1d, 0x61, 0xd4, 0xfa, 0x4d, 0x9e, 0x35, 0x65, 0x4a, 0xea, 0x77,
+
  0x86, 0xd2, 0xb4, 0xdc, 0xc3, 0xaf, 0xcf, 0x5e, 0xc7, 0x39, 0xed, 0x0d,
+
  0x68, 0x60, 0x76, 0x21, 0xa3, 0xca, 0xc1, 0x0d, 0x01, 0xb5, 0x3d, 0x46,
+
  0x1f, 0xf2, 0x57, 0x11, 0xd9, 0xf0, 0x81, 0x7f, 0x8d, 0x41, 0xdb, 0x54,
+
  0x54, 0xdb, 0x49, 0xa9, 0xf4, 0x29, 0x8a, 0x29, 0x2a, 0xa6, 0x46, 0xf5,
+
  0xdf, 0x8c, 0x17, 0x2c, 0x0b, 0xaa, 0x92, 0xe8, 0xcc, 0x82, 0x6a, 0x2c,
+
  0xa9, 0x06, 0x99, 0xf3, 0x35, 0xca, 0x6f, 0xd4, 0xaf, 0xcf, 0x9a, 0x61,
+
  0x39, 0x55, 0x9b, 0x8c, 0xa5, 0xd4, 0x20, 0xa4, 0x06, 0x19, 0x55, 0x3e,
+
  0xd3, 0x87, 0x5c, 0xc2, 0xe2, 0xbd, 0x32, 0x6a, 0x93, 0x89, 0xcc, 0xbc,
+
  0xec, 0xf8, 0xe9, 0x75, 0x8b, 0xd7, 0x90, 0x1c, 0x67, 0xf7, 0x0b, 0x8e,
+
  0xb3, 0x95, 0x72, 0x63, 0x84, 0x77, 0x78, 0xbf, 0xe0, 0x48, 0x12, 0x68,
+
  0x5b, 0x65, 0x1f, 0xf8, 0xce, 0x2e, 0xf7, 0x69, 0x66, 0x35, 0x89, 0x4f,
+
  0x2d, 0x86, 0x4a, 0x5c, 0xba, 0xc5, 0x58, 0xc4, 0x46, 0x7d, 0x3a, 0xa1,
+
  0xa7, 0x4d, 0xe4, 0x93, 0x3a, 0xf0, 0x68, 0xef, 0x60, 0x29, 0xb3, 0x6c,
+
  0x72, 0x13, 0xb8, 0xee, 0x08, 0xf8, 0x9c, 0x40, 0x78, 0x53, 0x2e, 0xd1,
+
  0x24, 0x26, 0x09, 0x97, 0xd4, 0x87, 0xb2, 0xa7, 0x31, 0x2b, 0xce, 0x2a,
+
  0xd6, 0x69, 0x54, 0x39, 0x61, 0x1d, 0x7a, 0x1c, 0xc3, 0xcf, 0xcc, 0x82,
+
  0xe2, 0x95, 0x70, 0xb2, 0x5b, 0xcb, 0xc4, 0x45, 0x88, 0x6b, 0x31, 0x58,
+
  0x35, 0x57, 0x74, 0xad, 0xb8, 0xe9, 0xbb, 0x0d, 0x56, 0x71, 0x83, 0xf7,
+
  0x52, 0x56, 0xa3, 0xff, 0x5e, 0xc1, 0x35, 0xc2, 0xd7, 0xbb, 0x8c, 0x1e,
+
  0x7f, 0xdd, 0xb8, 0x8c, 0xc4, 0x40, 0xa1, 0x58, 0x62, 0xb4, 0x0b, 0x9e,
+
  0x7e, 0xe4, 0x28, 0xe5, 0x23, 0x0f, 0x47, 0xab, 0xf3, 0xc1, 0x41, 0x6d,
+
  0x54, 0x7a, 0x21, 0x21, 0x27, 0xd0, 0xb2, 0x16, 0x27, 0xcf, 0x60, 0x0f,
+
  0xd0, 0x5a, 0x7f, 0xd9, 0x4f, 0x7e, 0x70, 0x49, 0x0a, 0x20, 0xd9, 0x69,
+
  0xa5, 0x3b, 0x0e, 0xc2, 0x62, 0xbf, 0x3b, 0x15, 0x02, 0x0a, 0xd9, 0x21,
+
  0xf8, 0x6a, 0xe6, 0x81, 0x5e, 0x38, 0x54, 0x16, 0xc3, 0x99, 0x18, 0x4b,
+
  0xee, 0x2a, 0xa4, 0xea, 0x13, 0xb7, 0x44, 0x24, 0x8a, 0xab, 0x05, 0x9c,
+
  0x11, 0xe4, 0x5e, 0x69, 0x5d, 0x67, 0xd3, 0x39, 0x07, 0x0a, 0x63, 0xc2,
+
  0x02, 0x49, 0x44, 0xf1, 0xe0, 0xd8, 0xd4, 0xcb, 0x95, 0x01, 0xb2, 0xa9,
+
  0xb9, 0x34, 0x40, 0x42, 0x11, 0x20, 0x7b, 0x7c, 0x9c, 0xfc, 0x23, 0x48,
+
  0x56, 0xa9, 0x98, 0x76, 0xc4, 0xab, 0x73, 0x93, 0x63, 0x71, 0x15, 0x4d,
+
  0x8f, 0x95, 0x13, 0xec, 0x2c, 0xdb, 0xb5, 0x85, 0x21, 0x0b, 0xe1, 0xce,
+
  0x18, 0xb8, 0x9b, 0xac, 0x5b, 0x92, 0x57, 0x5e, 0x2d, 0x86, 0x98, 0x92,
+
  0xf0, 0x65, 0xa4, 0xbf, 0x5e, 0xd8, 0x35, 0x95, 0xfe, 0x82, 0xf0, 0xe7,
+
  0x76, 0x28, 0x09, 0x7b, 0xd4, 0x4e, 0xea, 0xa1, 0x99, 0x95, 0x97, 0xef,
+
  0x1d, 0x77, 0x6f, 0x0b, 0xa9, 0x5b, 0x83, 0xf7, 0x52, 0x79, 0xe8, 0x7a,
+
  0xad, 0x8b, 0xd7, 0xd5, 0x91, 0xd7, 0xd1, 0x93, 0xab, 0x36, 0x79, 0xca,
+
  0x27, 0xe6, 0xc3, 0x2d, 0xa1, 0x21, 0x89, 0x13, 0xe3, 0x08, 0xad, 0x53,
+
  0x3d, 0xb5, 0xae, 0x8e, 0x38, 0x0b, 0x49, 0x92, 0xf1, 0xd9, 0x08, 0xc9,
+
  0x72, 0x3b, 0xca, 0xad, 0x82, 0x46, 0x94, 0x26, 0xd4, 0x0a, 0xe3, 0xb9,
+
  0x03, 0xb5, 0x9a, 0xe9, 0xc5, 0xf9, 0x1b, 0x50, 0x10, 0xe6, 0x52, 0x03,
+
  0x48, 0x22, 0x54, 0x3c, 0x27, 0xaf, 0x5c, 0xc6, 0x5a, 0xe7, 0x3f, 0x3b,
+
  0x98, 0xfd, 0x52, 0x82, 0x82, 0x9b, 0x95, 0x5d, 0x41, 0x14, 0x70, 0xc5,
+
  0x31, 0xb9, 0xb4, 0x31, 0x8f, 0x42, 0x0a, 0x8f, 0x58, 0x3d, 0x09, 0x68,
+
  0xd5, 0x2b, 0xb9, 0x19, 0x0f, 0xa7, 0x9f, 0x1c, 0x93, 0x9d, 0x76, 0x66,
+
  0xc5, 0x77, 0x14, 0x65, 0x8b, 0xe7, 0x44, 0x15, 0x8d, 0xa8, 0x69, 0xce,
+
  0x1d, 0x13, 0x4f, 0x69, 0x6a, 0x09, 0x62, 0x32, 0x51, 0x41, 0xd6, 0xf6,
+
  0x79, 0x02, 0x01, 0x98, 0x40, 0x61, 0x98, 0x42, 0xd9, 0xf0, 0x9a, 0x4b,
+
  0x88, 0xc6, 0x31, 0xf3, 0x1d, 0x12, 0x8e, 0x71, 0x7b, 0x3a, 0x11, 0x96,
+
  0x06, 0xd7, 0xfd, 0x74, 0xdf, 0xc2, 0xd4, 0xc2, 0x5f, 0x07, 0x4f, 0x76,
+
  0x3a, 0x32, 0xd7, 0xce, 0xcd, 0xcd, 0x4d, 0x3f, 0x7a, 0x8c, 0x7c, 0x13,
+
  0x16, 0x3b, 0x40, 0xdf, 0xc3, 0x5f, 0xe1, 0x91, 0xb6, 0x10, 0x8e, 0x06,
+
  0xc4, 0x87, 0xf7, 0xf7, 0xaa, 0xb7, 0x57, 0xe3, 0x65, 0xf5, 0x94, 0x86,
+
  0x49, 0x33, 0xcd, 0x6c, 0x76, 0x66, 0xc5, 0x3b, 0xfa, 0xb5, 0x23, 0x77,
+
  0x58, 0xe7, 0xf5, 0xe9, 0xbb, 0xb3, 0x37, 0xa7, 0x7f, 0xf9, 0x6b, 0x87,
+
  0x73, 0x89, 0x95, 0x7b, 0xe4, 0x0c, 0x0b, 0xe8, 0x7b, 0x51, 0x7b, 0xb3,
+
  0x54, 0xf5, 0xe5, 0x3e, 0x38, 0xaa, 0x42, 0x28, 0x48, 0xcd, 0xb8, 0x95,
+
  0xb8, 0xd2, 0x66, 0x85, 0xf4, 0x4b, 0x5b, 0x86, 0xc7, 0xb5, 0xd3, 0x09,
+
  0x10, 0x18, 0x32, 0x9d, 0x24, 0xc4, 0xc7, 0x9f, 0x9c, 0xb9, 0x92, 0x86,
+
  0x21, 0xb9, 0xae, 0x2e, 0xda, 0xcb, 0xaf, 0x37, 0x02, 0x4f, 0x93, 0xa3,
+
  0x93, 0x67, 0x6f, 0x14, 0x9c, 0xa4, 0x16, 0xe4, 0xa5, 0xd4, 0xa9, 0x2b,
+
  0x28, 0x40, 0x1e, 0xe0, 0xac, 0x4c, 0x25, 0xae, 0x26, 0x58, 0x24, 0x8e,
+
  0xbc, 0x3d, 0x12, 0x42, 0x6e, 0x89, 0x25, 0xc1, 0xf8, 0xe3, 0x2b, 0x7a,
+
  0x68, 0x9c, 0xdd, 0x80, 0x10, 0x40, 0x28, 0x8f, 0x5f, 0x54, 0xe9, 0x90,
+
  0x14, 0xa9, 0x28, 0x5f, 0xf9, 0x2c, 0x8a, 0x6d, 0x9a, 0xce, 0xb1, 0x54,
+
  0x09, 0x8a, 0xa6, 0xce, 0xf4, 0x9d, 0x74, 0x76, 0xbf, 0xd9, 0xeb, 0xef,
+
  0x3e, 0x7e, 0x82, 0x85, 0xce, 0xb7, 0x77, 0x1f, 0x77, 0x44, 0x11, 0x67,
+
  0xd2, 0x22, 0x6b, 0x81, 0xad, 0x88, 0xd8, 0xb5, 0xa2, 0x1c, 0x02, 0x7d,
+
  0xbd, 0xa3, 0x01, 0xb0, 0xca, 0x1d, 0xee, 0xaa, 0xeb, 0x1e, 0xa6, 0xf6,
+
  0x49, 0x1e, 0x41, 0xe9, 0x81, 0x88, 0x56, 0xa6, 0xd1, 0x59, 0xdb, 0x1e,
+
  0xf3, 0x21, 0xa0, 0x93, 0x63, 0x1c, 0x4a, 0x14, 0xdf, 0x84, 0xbe, 0xa1,
+
  0xd7, 0x17, 0x2f, 0x5f, 0x2d, 0x05, 0x6b, 0x20, 0xfb, 0x69, 0xf9, 0xc2,
+
  0x50, 0x6e, 0x0c, 0x77, 0x08, 0x0e, 0x47, 0x7e, 0x39, 0x13, 0x9b, 0xf4,
+
  0xab, 0x7c, 0x58, 0x16, 0x55, 0x31, 0x0e, 0x15, 0x53, 0xcc, 0x98, 0x7c,
+
  0x72, 0x02, 0xca, 0xc2, 0x4d, 0x36, 0xd0, 0xb0, 0xc1, 0x3e, 0x79, 0x60,
+
  0xf3, 0xca, 0x55, 0x6b, 0x80, 0x59, 0xe6, 0x59, 0x4d, 0x35, 0xcc, 0x14,
+
  0x51, 0xa2, 0x8b, 0x51, 0xb2, 0xf8, 0x78, 0x26, 0x65, 0x12, 0xd8, 0x7a,
+
  0x88, 0x7d, 0x0d, 0x27, 0x74, 0x5b, 0x27, 0xf3, 0xac, 0xa0, 0xbb, 0xc4,
+
  0xbc, 0x13, 0x76, 0xd5, 0xba, 0xa8, 0x59, 0x82, 0xe0, 0xd5, 0xb8, 0x92,
+
  0xbc, 0x44, 0x56, 0x88, 0x2a, 0x82, 0xb8, 0xb2, 0xde, 0x63, 0x64, 0x06,
+
  0xd2, 0x9a, 0xe6, 0x19, 0xca, 0xbe, 0x73, 0x6c, 0x08, 0x19, 0x1c, 0x06,
+
  0x78, 0xfa, 0x47, 0x45, 0xc9, 0x49, 0x0b, 0x04, 0xdc, 0x22, 0x91, 0x23,
+
  0xd9, 0x6c, 0x58, 0x2c, 0x4a, 0x4c, 0x5f, 0xc7, 0xf1, 0xdc, 0x72, 0x79,
+
  0x85, 0x2b, 0xf6, 0x62, 0xcb, 0x1a, 0xd1, 0x42, 0x06, 0x09, 0x59, 0x92,
+
  0xac, 0xa4, 0xa2, 0x34, 0xad, 0x54, 0xb8, 0x89, 0x97, 0x40, 0xbc, 0x78,
+
  0xc5, 0x83, 0xc3, 0x88, 0xec, 0x4f, 0x1a, 0x71, 0xf9, 0x2c, 0xbf, 0x64,
+
  0x58, 0x3d, 0x1f, 0xfb, 0x4e, 0x68, 0xd3, 0x41, 0x24, 0xa5, 0xde, 0x45,
+
  0x5c, 0x28, 0x85, 0x3b, 0xc4, 0x9d, 0x70, 0x44, 0xe0, 0xcc, 0x1b, 0x25,
+
  0x25, 0x36, 0x09, 0xe8, 0xa5, 0xa1, 0xf7, 0xc0, 0x27, 0xbf, 0xb9, 0x40,
+
  0x29, 0x35, 0xb2, 0x16, 0xe6, 0x8a, 0xc9, 0x0f, 0xf8, 0xc6, 0xc7, 0xda,
+
  0xc5, 0x2f, 0x96, 0xe2, 0x2d, 0xbd, 0x8f, 0xbc, 0xad, 0x24, 0x9f, 0x04,
+
  0x6c, 0xf9, 0x70, 0x2f, 0xfa, 0x6b, 0x44, 0xcb, 0x1c, 0x45, 0x46, 0x48,
+
  0x28, 0x57, 0x7f, 0xe9, 0xb0, 0xf1, 0xa2, 0xf9, 0x13, 0xd7, 0xbb, 0x19,
+
  0x44, 0x87, 0xee, 0x59, 0x86, 0x80, 0xc7, 0x5e, 0x1a, 0x0b, 0x3c, 0xf3,
+
  0x49, 0xff, 0x89, 0xd3, 0xb9, 0x8f, 0x45, 0x91, 0xa6, 0x2d, 0x9c, 0x92,
+
  0x1b, 0x54, 0xe4, 0xc6, 0xaa, 0xbe, 0x9d, 0x64, 0xb6, 0x32, 0xa8, 0xe9,
+
  0xc8, 0x15, 0x77, 0x95, 0x12, 0x9b, 0x6d, 0x60, 0x67, 0x34, 0x88, 0x8a,
+
  0x01, 0xd9, 0x82, 0x47, 0x38, 0xfb, 0x00, 0x02, 0x4f, 0xad, 0xf7, 0x17,
+
  0xca, 0xc8, 0x74, 0xc1, 0xd3, 0xa7, 0x78, 0xde, 0x6e, 0x2c, 0x89, 0x07,
+
  0xd3, 0x10, 0xe2, 0x60, 0x3b, 0x9b, 0xe3, 0x67, 0x21, 0x0b, 0x6c, 0xe7,
+
  0x23, 0x28, 0xc3, 0xc7, 0xa3, 0xe0, 0x42, 0x44, 0x81, 0x75, 0x7e, 0x1f,
+
  0x0a, 0x5c, 0x81, 0xbd, 0xde, 0x20, 0x03, 0x0d, 0xa1, 0x4c, 0x9e, 0xd6,
+
  0x28, 0x98, 0x2f, 0x63, 0xe9, 0x18, 0x94, 0x4e, 0xa2, 0x49, 0x4f, 0x0e,
+
  0xdf, 0xfd, 0x07, 0x7e, 0xf7, 0x82, 0x64, 0x7a, 0x3c, 0x4f, 0xa7, 0x88,
+
  0xc2, 0x91, 0x24, 0x7b, 0xfd, 0x9d, 0xbb, 0xb0, 0x74, 0xd8, 0xa6, 0x29,
+
  0x2f, 0xcb, 0xdb, 0x81, 0x33, 0x92, 0x0f, 0x23, 0x58, 0xc0, 0x1b, 0xf6,
+
  0x08, 0x0b, 0x76, 0x92, 0x72, 0x1c, 0xe2, 0x28, 0x8d, 0x73, 0xf8, 0x11,
+
  0xdc, 0x55, 0xaf, 0xc4, 0x5e, 0x8f, 0x54, 0x7e, 0xe5, 0x60, 0x51, 0xf4,
+
  0x64, 0x14, 0x3d, 0x1c, 0x4d, 0x06, 0x57, 0x2d, 0xc4, 0x61, 0x96, 0x1a,
+
  0x73, 0x47, 0xdc, 0x68, 0x38, 0xa4, 0xa2, 0x05, 0xa4, 0xfe, 0x10, 0x24,
+
  0xce, 0xe3, 0xaf, 0x1f, 0xed, 0xf4, 0x5d, 0x21, 0xf0, 0x78, 0x65, 0xef,
+
  0xca, 0x30, 0x88, 0xef, 0x3f, 0xbe, 0x00, 0x23, 0xaf, 0xe3, 0xdd, 0xe4,
+
  0x11, 0x77, 0xd4, 0x99, 0x3e, 0x7f, 0xf7, 0x4d, 0xff, 0x87, 0x47, 0xe3,
+
  0xde, 0xc3, 0xfe, 0xee, 0x7f, 0xfd, 0xfd, 0x55, 0xe7, 0x13, 0x42, 0x32,
+
  0x85, 0x5c, 0x46, 0xca, 0x44, 0x69, 0xc9, 0x8a, 0x6e, 0x30, 0xab, 0xfa,
+
  0xb2, 0x0e, 0x3f, 0x95, 0x08, 0xde, 0x25, 0x5f, 0x88, 0x61, 0x3f, 0x54,
+
  0xbf, 0xf4, 0xe0, 0xbb, 0x55, 0x3d, 0x82, 0xc7, 0xfa, 0x01, 0x1f, 0xbd,
+
  0xcc, 0x7c, 0x26, 0x0d, 0x06, 0x17, 0x0c, 0x64, 0x45, 0xc7, 0x19, 0x5e,
+
  0x08, 0x76, 0x70, 0xf4, 0x1a, 0xa8, 0xba, 0xfe, 0x8a, 0x61, 0x20, 0x55,
+
  0xec, 0x4f, 0x63, 0x33, 0xb8, 0xa1, 0x5b, 0x0f, 0xcf, 0x94, 0x74, 0x7e,
+
  0xd7, 0xd1, 0x70, 0x03, 0xbd, 0x22, 0x53, 0x13, 0xa4, 0xf2, 0x99, 0x4b,
+
  0xb9, 0x15, 0xf0, 0x8a, 0x0b, 0xf3, 0x6e, 0x99, 0x80, 0x99, 0x57, 0x72,
+
  0x13, 0x94, 0x19, 0x61, 0x58, 0x8e, 0x94, 0x35, 0x4a, 0x05, 0x32, 0xce,
+
  0x7c, 0x90, 0x52, 0x49, 0x21, 0x78, 0x04, 0x86, 0xe5, 0x21, 0x5b, 0x68,
+
  0x52, 0xc8, 0x24, 0x5e, 0x22, 0xd2, 0x5b, 0x3e, 0x0b, 0xa1, 0x02, 0x1d,
+
  0xdc, 0x23, 0xd8, 0xa2, 0x7f, 0xc2, 0x2d, 0xd9, 0x05, 0xb1, 0xee, 0x5f,
+
  0xde, 0x0f, 0xdf, 0x41, 0xf3, 0x43, 0x07, 0x07, 0xf8, 0xee, 0x77, 0xbb,
+
  0x58, 0xb8, 0x52, 0x0b, 0x27, 0x17, 0x64, 0xc1, 0x34, 0x6a, 0x0a, 0x92,
+
  0x37, 0xda, 0x7c, 0x5a, 0x1a, 0x47, 0x94, 0xb5, 0x2e, 0x2a, 0x18, 0xff,
+
  0xea, 0xe3, 0xcf, 0xbf, 0xed, 0xf6, 0x1e, 0xfd, 0x12, 0xc4, 0x26, 0xec,
+
  0xe4, 0x77, 0xbb, 0xef, 0x7e, 0xb7, 0xd7, 0x71, 0x28, 0x57, 0x0e, 0xc4,
+
  0xd7, 0x25, 0x9a, 0x55, 0x94, 0x74, 0xa8, 0x6a, 0x6a, 0x1a, 0xe7, 0xe9,
+
  0xc2, 0x46, 0xc3, 0xbc, 0x2b, 0xa7, 0xab, 0x63, 0xa0, 0x48, 0x53, 0x91,
+
  0xd1, 0x4a, 0xc8, 0x9a, 0x00, 0x84, 0xa1, 0x9d, 0xfc, 0x5e, 0x54, 0x28,
+
  0x78, 0x39, 0xbe, 0x22, 0x88, 0xf6, 0x38, 0x2e, 0xc4, 0xb0, 0x57, 0x40,
+
  0xf1, 0x30, 0x63, 0x98, 0x4a, 0x9a, 0x26, 0x51, 0xa0, 0x42, 0x91, 0x0c,
+
  0x06, 0x89, 0x8b, 0x4f, 0xf8, 0x2a, 0xc4, 0x84, 0x62, 0x67, 0x6c, 0x3b,
+
  0x50, 0x66, 0x51, 0x58, 0xa4, 0x89, 0x7e, 0x4f, 0x23, 0x0b, 0xe1, 0xb3,
+
  0xc4, 0x04, 0x40, 0xbb, 0x44, 0x54, 0xeb, 0x46, 0xed, 0xe9, 0x71, 0x5e,
+
  0xe2, 0x8d, 0x08, 0x6d, 0xe4, 0x55, 0x20, 0x05, 0xfe, 0xd4, 0x42, 0x88,
+
  0x30, 0xd0, 0x0c, 0xc5, 0x0b, 0x45, 0x4c, 0x4e, 0x07, 0xc5, 0x75, 0x90,
+
  0xce, 0x2d, 0xa8, 0x83, 0xa6, 0x49, 0x07, 0x14, 0x98, 0x9b, 0xd6, 0x35,
+
  0x01, 0x01, 0x53, 0xe7, 0xe9, 0x67, 0xe8, 0xf1, 0x33, 0x78, 0xfe, 0x34,
+
  0xe7, 0xe6, 0x49, 0x67, 0x66, 0xc8, 0xfe, 0xb1, 0x1e, 0x65, 0x54, 0x5a,
+
  0xdd, 0x81, 0x42, 0xdd, 0x66, 0x8c, 0xab, 0x45, 0xc0, 0xc1, 0x0e, 0x73,
+
  0x5a, 0xc4, 0xda, 0x5b, 0x38, 0x25, 0x1c, 0x0b, 0xdd, 0xd7, 0x5b, 0xc0,
+
  0xd0, 0x41, 0xd5, 0xe9, 0x52, 0x25, 0x1b, 0xbd, 0x0d, 0xcc, 0xbd, 0x52,
+
  0xa5, 0x1c, 0x0b, 0x60, 0x6f, 0x71, 0x1c, 0xaa, 0x57, 0x67, 0x02, 0xd3,
+
  0x10, 0xd6, 0xa0, 0x8c, 0x98, 0x05, 0x16, 0xd2, 0x61, 0x02, 0xac, 0x65,
+
  0x31, 0xca, 0xb3, 0x2a, 0x6c, 0xbf, 0x81, 0x8a, 0x86, 0x56, 0xb6, 0x47,
+
  0xd9, 0xf5, 0xf6, 0x6c, 0x31, 0x99, 0x1c, 0xb4, 0x2e, 0x51, 0xcf, 0x3d,
+
  0xa1, 0xc1, 0xc5, 0x6c, 0x30, 0x92, 0xf0, 0xde, 0x95, 0xaf, 0xc1, 0x1b,
+
  0x5f, 0x2d, 0x17, 0x36, 0x09, 0x55, 0xc0, 0xe9, 0xbe, 0xd1, 0x90, 0xa0,
+
  0x69, 0x3e, 0x5b, 0x54, 0x92, 0xed, 0x4b, 0xe6, 0xa0, 0x28, 0x56, 0xc0,
+
  0xc0, 0xb4, 0x69, 0xc6, 0x5c, 0xa8, 0xc1, 0xf4, 0x4f, 0x35, 0xf6, 0x71,
+
  0x2d, 0x35, 0x34, 0xe5, 0x6a, 0xf1, 0x62, 0x7d, 0x9d, 0xd1, 0xbd, 0x10,
+
  0x3f, 0x46, 0x43, 0x0e, 0x25, 0x49, 0x18, 0x01, 0x7c, 0x6d, 0xf8, 0x2d,
+
  0x2c, 0x7f, 0xfb, 0xd7, 0x79, 0x76, 0x89, 0x73, 0xe9, 0x99, 0xf0, 0x28,
+
  0x6d, 0xa2, 0xf9, 0xc4, 0x22, 0xda, 0x14, 0x5b, 0x55, 0x26, 0x03, 0x14,
+
  0xdb, 0x27, 0x65, 0x08, 0x8b, 0x99, 0x60, 0xae, 0x0e, 0x02, 0xdd, 0x10,
+
  0x1d, 0x07, 0xd1, 0x07, 0x37, 0xc4, 0xf3, 0x21, 0x3a, 0x2b, 0x4b, 0x01,
+
  0x4a, 0x77, 0x27, 0x32, 0x16, 0xab, 0xf3, 0xe3, 0xdc, 0x63, 0x1f, 0xcb,
+
  0x26, 0xdb, 0x5e, 0x5d, 0x9b, 0x09, 0xae, 0x37, 0x3c, 0xfd, 0x6e, 0xaf,
+
  0x2d, 0x08, 0xca, 0x1d, 0xbe, 0xc4, 0xc2, 0x71, 0xf9, 0x3f, 0x4b, 0x1e,
+
  0xfa, 0x15, 0xfe, 0xf9, 0x24, 0x8e, 0x3b, 0x5e, 0xf6, 0x16, 0x07, 0x49,
+
  0x8e, 0x76, 0x13, 0xcf, 0x74, 0xf2, 0x14, 0x7e, 0xb4, 0x14, 0xe2, 0xf1,
+
  0xc9, 0x0f, 0xc1, 0x2c, 0x25, 0x7e, 0xfd, 0x18, 0x0c, 0x09, 0x8d, 0xdd,
+
  0xa3, 0xae, 0x17, 0x70, 0xa3, 0xc1, 0xe1, 0xd5, 0x13, 0x7c, 0xac, 0x65,
+
  0x16, 0x49, 0x29, 0xa1, 0xb4, 0x8d, 0x3c, 0x10, 0xba, 0x55, 0xf1, 0x0e,
+
  0xcf, 0x1c, 0xce, 0x8f, 0x48, 0x85, 0x31, 0x4a, 0xf9, 0xd1, 0x08, 0x1d,
+
  0x51, 0x3c, 0xad, 0x71, 0x39, 0xa8, 0xc5, 0x3c, 0x59, 0x00, 0xb5, 0x4f,
+
  0x1c, 0x5b, 0x95, 0xda, 0x49, 0xbe, 0x20, 0xbd, 0x97, 0x05, 0x93, 0x1a,
+
  0xf1, 0x10, 0xfc, 0x30, 0x1c, 0x27, 0xa7, 0x08, 0x86, 0x6e, 0x23, 0x3c,
+
  0x51, 0x22, 0x0d, 0x28, 0xe7, 0xc2, 0x4a, 0xef, 0xc4, 0x5c, 0x93, 0x35,
+
  0x74, 0x2d, 0xf0, 0x12, 0x8a, 0xb2, 0xb9, 0x5d, 0xf8, 0x62, 0x81, 0xd0,
+
  0xae, 0x8f, 0x4e, 0x3d, 0x9d, 0x03, 0xd5, 0x9e, 0xae, 0xe7, 0x98, 0xf8,
+
  0xba, 0xe9, 0x25, 0xf7, 0x5b, 0x1a, 0xb9, 0xca, 0x5b, 0x08, 0xec, 0xbf,
+
  0xbb, 0x2e, 0x86, 0x2f, 0x64, 0xe0, 0x08, 0x2c, 0x90, 0xc0, 0x5a, 0x71,
+
  0x21, 0xf3, 0xe0, 0x77, 0xc0, 0x7e, 0x43, 0xdc, 0x5f, 0xa5, 0xc6, 0x27,
+
  0xb3, 0xa4, 0x19, 0xcc, 0xc9, 0x25, 0xe5, 0x36, 0x82, 0xac, 0x8d, 0x29,
+
  0x98, 0x53, 0x2c, 0x9d, 0x88, 0xb9, 0x18, 0x67, 0xfa, 0xaa, 0xa5, 0x93,
+
  0x33, 0xcc, 0x2b, 0x5f, 0xb7, 0x8c, 0x67, 0xb2, 0xc0, 0xbf, 0x17, 0x73,
+
  0x73, 0x0b, 0x10, 0x6a, 0xd6, 0x4c, 0x85, 0x32, 0x37, 0x94, 0x38, 0x05,
+
  0xd4, 0x63, 0x51, 0x53, 0x2e, 0x26, 0x67, 0x26, 0x96, 0xa1, 0x5c, 0xec,
+
  0x0c, 0x9b, 0x72, 0xef, 0x53, 0x49, 0x1d, 0x78, 0x6b, 0xa2, 0xc0, 0x2f,
+
  0x68, 0xfe, 0x42, 0x03, 0x3d, 0x96, 0x5e, 0xa7, 0x88, 0x58, 0x89, 0xa7,
+
  0xc2, 0xe0, 0xd2, 0x5c, 0xfd, 0x80, 0xa1, 0x81, 0x71, 0x3e, 0xcb, 0x2b,
+
  0x8b, 0xba, 0x45, 0x68, 0xca, 0xb0, 0x34, 0xe1, 0x31, 0xa1, 0xc5, 0x15,
+
  0x4e, 0x42, 0x4e, 0x7d, 0x8e, 0x62, 0x7d, 0x69, 0xa4, 0xd4, 0xf1, 0x88,
+
  0x80, 0x01, 0x64, 0x0d, 0x5d, 0x83, 0x8c, 0x25, 0x49, 0xf2, 0xeb, 0x88,
+
  0x21, 0x77, 0x1a, 0x80, 0x1e, 0x66, 0xce, 0xab, 0x17, 0x2c, 0xb3, 0x04,
+
  0x8d, 0xd5, 0x46, 0xef, 0xa3, 0x5e, 0x3d, 0x3f, 0xbf, 0x70, 0x00, 0x01,
+
  0xc8, 0xab, 0x18, 0x4d, 0x9c, 0xac, 0x46, 0x7e, 0x1f, 0xa2, 0x95, 0xe4,
+
  0x22, 0xe2, 0xa8, 0xeb, 0x44, 0x11, 0x03, 0xba, 0x1a, 0x98, 0x59, 0xce,
+
  0x69, 0xbe, 0x75, 0x28, 0xaa, 0x4b, 0x98, 0x15, 0x5f, 0xbc, 0xfa, 0x9a,
+
  0x57, 0xdf, 0xc3, 0xe6, 0x7c, 0x86, 0x68, 0x18, 0xf4, 0x90, 0x84, 0xbc,
+
  0xee, 0x3b, 0x0e, 0xb7, 0xf5, 0x7a, 0xc7, 0x65, 0xb3, 0xdb, 0xfa, 0x25,
+
  0x63, 0x36, 0xe9, 0x7d, 0xd4, 0x3c, 0xfd, 0xe8, 0x97, 0x7c, 0xac, 0xc7,
+
  0x3f, 0xe4, 0xaa, 0x7c, 0xe0, 0x48, 0x32, 0x07, 0x9d, 0x14, 0xed, 0x82,
+
  0xbf, 0x7b, 0xec, 0x8b, 0x7c, 0x3a, 0x05, 0xd9, 0xcb, 0x23, 0xa4, 0x2c,
+
  0x7f, 0xe5, 0x02, 0xda, 0x98, 0x2c, 0xdb, 0x69, 0xbd, 0x91, 0x14, 0x91,
+
  0x37, 0x60, 0xb1, 0x4d, 0x5a, 0xe2, 0x74, 0x2d, 0xe4, 0xd0, 0xe4, 0xf5,
+
  0x86, 0x4b, 0x80, 0xb0, 0x6c, 0x7d, 0x6a, 0x71, 0xc4, 0x69, 0x44, 0x5a,
+
  0x91, 0xb2, 0x22, 0x74, 0x46, 0xc4, 0x84, 0x90, 0xe6, 0xea, 0xb4, 0x64,
+
  0x68, 0xdb, 0x7c, 0x2c, 0x27, 0x38, 0xd0, 0xa7, 0x21, 0xdd, 0x49, 0xe0,
+
  0x07, 0x65, 0x70, 0x0b, 0x09, 0x7c, 0x30, 0x68, 0x13, 0x4e, 0x82, 0xa7,
+
  0xf2, 0x62, 0x02, 0x01, 0xe1, 0xc2, 0x81, 0x64, 0xf5, 0x7f, 0x70, 0x30,
+
  0x2c, 0xea, 0xdf, 0xf7, 0x9a, 0x14, 0x9c, 0x01, 0x09, 0x09, 0xe5, 0x09,
+
  0x12, 0x99, 0xe3, 0x10, 0xa9, 0xe0, 0x24, 0xc8, 0xfb, 0x1a, 0x40, 0x41,
+
  0xe5, 0xbf, 0x74, 0x08, 0x3c, 0x60, 0x77, 0x9e, 0xc8, 0xa8, 0x45, 0x37,
+
  0x19, 0xad, 0x74, 0x94, 0xf7, 0x8f, 0xf5, 0xd3, 0x31, 0x38, 0x66, 0xd9,
+
  0x8b, 0x00, 0x74, 0xef, 0xd7, 0x0f, 0x93, 0xcf, 0x44, 0x87, 0xc1, 0xd2,
+
  0xb2, 0x33, 0x3e, 0x19, 0x65, 0x5e, 0xbd, 0x17, 0xac, 0x42, 0x2d, 0x2e,
+
  0x26, 0xf3, 0x97, 0x4a, 0x77, 0x56, 0x4b, 0x0d, 0xb9, 0xe1, 0x62, 0xfe,
+
  0x7f, 0xc9, 0x09, 0x0d, 0x64, 0xf7, 0x99, 0x50, 0xe2, 0x5b, 0x49, 0x7d,
+
  0x8d, 0x43, 0xeb, 0x06, 0xd2, 0xfb, 0xef, 0xbb, 0x4f, 0xf0, 0x4a, 0xf8,
+
  0xeb, 0x95, 0x27, 0x18, 0x0e, 0xf0, 0x93, 0xc6, 0xfd, 0xdd, 0x08, 0xa9,
+
  0xf7, 0x47, 0x77, 0xf9, 0x6c, 0xe2, 0x79, 0x76, 0xf8, 0x45, 0x5c, 0x19,
+
  0xa3, 0x7a, 0xcf, 0x77, 0xf1, 0xa8, 0x08, 0xa7, 0xc7, 0x9d, 0x4f, 0x76,
+
  0x67, 0x85, 0x46, 0xba, 0x2d, 0xc9, 0xfa, 0xe8, 0xd7, 0x2c, 0xb1, 0x6a,
+
  0xb1, 0x47, 0x0c, 0x0b, 0x55, 0x25, 0x02, 0x9d, 0x72, 0x37, 0xed, 0x48,
+
  0x0c, 0x0c, 0xec, 0xc2, 0x01, 0x0c, 0xd0, 0x01, 0xb0, 0xfa, 0x64, 0x7f,
+
  0x67, 0x47, 0x9d, 0xf4, 0x84, 0x68, 0x55, 0xd5, 0x0e, 0x89, 0x80, 0xc4,
+
  0xa5, 0x7f, 0x4f, 0x31, 0xce, 0x98, 0x21, 0x7e, 0x46, 0x30, 0x97, 0x55,
+
  0x44, 0x84, 0xfd, 0x60, 0x74, 0xeb, 0x0a, 0x12, 0x5a, 0x59, 0xdc, 0xd5,
+
  0x53, 0xca, 0xe3, 0x15, 0x94, 0xe2, 0xc8, 0x02, 0x84, 0x8b, 0xa7, 0xf3,
+
  0xab, 0x32, 0xad, 0xac, 0x0c, 0xf2, 0xf9, 0xf9, 0x8b, 0x84, 0x62, 0x4f,
+
  0xce, 0xe0, 0x4b, 0xfe, 0xca, 0x55, 0x08, 0x72, 0x35, 0x8d, 0x35, 0xed,
+
  0x8f, 0x1a, 0xf9, 0x62, 0xb0, 0x4f, 0xd4, 0x3a, 0x67, 0x97, 0x4a, 0xed,
+
  0xe1, 0xf5, 0x41, 0x54, 0xf0, 0xe9, 0x96, 0xa4, 0x4b, 0xcc, 0x7f, 0xec,
+
  0xa5, 0x55, 0x4f, 0x45, 0xf3, 0x67, 0x85, 0xe6, 0x43, 0xa3, 0x5c, 0x07,
+
  0x9d, 0xfd, 0x7d, 0x81, 0x90, 0x14, 0x5c, 0x0b, 0x6d, 0xbb, 0xdf, 0xdf,
+
  0x26, 0x2b, 0xdb, 0x36, 0xfe, 0xab, 0xd9, 0xe4, 0xac, 0xda, 0x90, 0x29,
+
  0x07, 0x5b, 0xeb, 0x6b, 0x70, 0x09, 0x46, 0xfd, 0x4f, 0xa4, 0x82, 0x6d,
+
  0xf5, 0xf7, 0x45, 0x5a, 0x11, 0x2a, 0x1a, 0x0a, 0x53, 0x19, 0x12, 0x2f,
+
  0xc7, 0x80, 0xc6, 0x76, 0x63, 0x8d, 0xff, 0x27, 0x4f, 0x4d, 0x1c, 0x73,
+
  0x17, 0xe3, 0xe6, 0xd6, 0x52, 0xd1, 0x94, 0x8a, 0x84, 0x20, 0xc3, 0xd2,
+
  0xda, 0xa4, 0x78, 0xa0, 0x48, 0x18, 0x6e, 0x8b, 0xa3, 0x0a, 0x93, 0x5d,
+
  0xe1, 0x82, 0x58, 0xcd, 0x10, 0x99, 0x23, 0x46, 0x65, 0x0b, 0x88, 0x2d,
+
  0x6a, 0x83, 0xf7, 0x6d, 0x9c, 0x75, 0xdc, 0x66, 0x89, 0x80, 0x65, 0x85,
+
  0xff, 0x65, 0xf5, 0x70, 0x9b, 0x3c, 0x19, 0xa3, 0xb6, 0xca, 0x1a, 0x94,
+
  0xab, 0xd6, 0x63, 0xcd, 0x2d, 0xec, 0x5e, 0x0e, 0xd7, 0xd5, 0x68, 0xbe,
+
  0x18, 0xe0, 0xee, 0x3e, 0xbd, 0xa2, 0x25, 0x8e, 0x4a, 0x78, 0xbf, 0x95,
+
  0x92, 0x76, 0xe1, 0x80, 0x8b, 0x33, 0x31, 0x31, 0xea, 0xd9, 0x84, 0x1d,
+
  0xe1, 0x37, 0xb7, 0x70, 0x01, 0x09, 0x36, 0xd8, 0xc3, 0x74, 0xcf, 0x33,
+
  0xd4, 0x3c, 0x0c, 0x7f, 0x66, 0x40, 0x51, 0x29, 0x69, 0xad, 0xde, 0x49,
+
  0x6a, 0xa3, 0x11, 0xcf, 0x11, 0xb2, 0xc1, 0xb8, 0x37, 0x05, 0x43, 0xb9,
+
  0x45, 0x9a, 0xc1, 0xf2, 0xdd, 0xc8, 0x64, 0xb0, 0x80, 0x36, 0xbb, 0x0f,
+
  0x28, 0xd8, 0x83, 0xec, 0xa7, 0xe1, 0x22, 0x46, 0x3f, 0xec, 0xe3, 0x87,
+
  0xe4, 0x33, 0x65, 0xc6, 0x72, 0x95, 0xee, 0x3d, 0x7a, 0xac, 0xe6, 0x53,
+
  0x22, 0x25, 0x29, 0x06, 0x4a, 0x0e, 0xe5, 0x0d, 0xfe, 0x7e, 0x7b, 0x7b,
+
  0x43, 0x10, 0x67, 0x34, 0xc8, 0x06, 0xbf, 0xfb, 0xc3, 0x46, 0x84, 0x71,
+
  0xa1, 0x1e, 0x3b, 0x45, 0x1c, 0xc6, 0xe8, 0x54, 0xaa, 0x50, 0x7f, 0xfe,
+
  0xd2, 0x8b, 0x0a, 0xa2, 0x77, 0x88, 0xaf, 0x46, 0x80, 0xe7, 0xd5, 0x07,
+
  0xed, 0xab, 0xb1, 0x4b, 0x01, 0x29, 0x6a, 0x0e, 0x43, 0x0f, 0x14, 0xbf,
+
  0x1c, 0xd3, 0xa5, 0xcc, 0x79, 0x6b, 0x15, 0xe2, 0x89, 0xc2, 0x86, 0x96,
+
  0x2a, 0x29, 0xf8, 0x15, 0xb8, 0xb8, 0xae, 0x49, 0x92, 0xf5, 0xc7, 0x49,
+
  0x14, 0xc2, 0xaf, 0x29, 0x2a, 0x1c, 0x7e, 0xc0, 0x0c, 0xa8, 0xb1, 0xba,
+
  0x81, 0x0f, 0x93, 0xdb, 0x21, 0x1c, 0x19, 0x85, 0x5d, 0xf0, 0xe0, 0x85,
+
  0x1e, 0xd1, 0x85, 0x81, 0x1c, 0x43, 0xa1, 0x21, 0x9c, 0x0b, 0xa5, 0x42,
+
  0x23, 0xec, 0x2b, 0x97, 0xe8, 0xbc, 0xa5, 0x8c, 0x98, 0x15, 0x17, 0x0c,
+
  0x2c, 0x41, 0x46, 0x61, 0x1b, 0xa2, 0xe9, 0xc8, 0x37, 0x2e, 0x42, 0xca,
+
  0x7c, 0xce, 0x64, 0x3c, 0x0f, 0xe5, 0x8c, 0x43, 0x95, 0x08, 0x09, 0xcd,
+
  0xaf, 0x15, 0x40, 0x12, 0xe9, 0x8e, 0x42, 0x9d, 0x08, 0xbb, 0x96, 0xd1,
+
  0xac, 0x79, 0x43, 0xc3, 0x92, 0xea, 0x70, 0x80, 0xa6, 0xb6, 0x91, 0x9e,
+
  0xe4, 0x3a, 0x3c, 0x50, 0x63, 0x26, 0x8c, 0x09, 0x77, 0x95, 0x34, 0xdb,
+
  0x1f, 0x67, 0x0b, 0xd8, 0x69, 0x34, 0xe1, 0x14, 0x93, 0x31, 0x7c, 0x0a,
+
  0xbf, 0x01, 0xb1, 0x8d, 0x70, 0xf7, 0xbb, 0x78, 0xd6, 0x86, 0x54, 0x36,
+
  0xf9, 0x02, 0x2f, 0x67, 0x2e, 0x18, 0x31, 0x4d, 0x87, 0xa7, 0xe7, 0x5a,
+
  0x78, 0xb7, 0xff, 0xf5, 0xef, 0xb7, 0xf3, 0xd3, 0x73, 0xf8, 0xed, 0xf7,
+
  0xdd, 0xe4, 0x1c, 0xd1, 0x84, 0x67, 0x99, 0x9a, 0x40, 0x99, 0xf6, 0x56,
+
  0x74, 0xde, 0xd5, 0x9e, 0x25, 0xa8, 0x67, 0xa9, 0xf7, 0xdf, 0xd8, 0xf9,
+
  0x29, 0xad, 0x1a, 0xd1, 0x2e, 0x82, 0xf0, 0x10, 0x95, 0x32, 0xd6, 0xa9,
+
  0x8a, 0x06, 0x76, 0x37, 0x79, 0x66, 0xf1, 0xe5, 0x2a, 0xd9, 0x46, 0xdd,
+
  0xc0, 0xff, 0xd7, 0xb1, 0x63, 0x36, 0xde, 0xb2, 0xd3, 0x3c, 0xcc, 0x76,
+
  0x77, 0x9f, 0x0c, 0x1e, 0xed, 0x3e, 0xf9, 0xe6, 0xeb, 0xf1, 0xc3, 0x87,
+
  0x8f, 0xf6, 0x46, 0xc3, 0x8d, 0x8f, 0x29, 0x93, 0x82, 0xf6, 0x4c, 0x68,
+
  0x92, 0x5b, 0x0b, 0x4c, 0x93, 0x8b, 0x3b, 0x45, 0x9e, 0xf6, 0x37, 0x54,
+
  0x32, 0xb4, 0xe6, 0x62, 0x1e, 0x5f, 0xef, 0xed, 0xef, 0x6e, 0x3f, 0xee,
+
  0x3f, 0xec, 0xef, 0xa9, 0xc8, 0xc4, 0x88, 0x78, 0x8c, 0x97, 0x5c, 0x27,
+
  0x9c, 0xf5, 0x6a, 0xf9, 0xc3, 0x1a, 0x71, 0x21, 0x85, 0xa8, 0x5c, 0x69,
+
  0x2a, 0xb6, 0x7e, 0x84, 0xcc, 0x5e, 0xaa, 0x4e, 0xb5, 0x1b, 0x70, 0x29,
+
  0x15, 0x1e, 0x04, 0x51, 0x74, 0xa1, 0x63, 0x75, 0x8d, 0x29, 0x84, 0x35,
+
  0x81, 0x5f, 0x0e, 0xf2, 0xbf, 0x2f, 0xf2, 0x1a, 0x44, 0x43, 0x31, 0x51,
+
  0x66, 0x03, 0x7c, 0xa6, 0x2c, 0x6e, 0x2a, 0x81, 0xd4, 0x2a, 0x54, 0x35,
+
  0xe4, 0x12, 0x69, 0x11, 0x64, 0x93, 0xc2, 0x02, 0x79, 0xc4, 0x6e, 0xaa,
+
  0x1e, 0x99, 0x13, 0xa7, 0xc6, 0x47, 0x2a, 0xac, 0x93, 0x39, 0x1b, 0x22,
+
  0xb7, 0x7a, 0x01, 0x0a, 0xcc, 0x35, 0x7a, 0x71, 0xd2, 0xb8, 0x0c, 0x86,
+
  0x0f, 0x38, 0x95, 0x94, 0x5f, 0x0a, 0x71, 0xa5, 0x58, 0x3e, 0xf9, 0x80,
+
  0x13, 0x8f, 0x38, 0xda, 0x24, 0xc2, 0xf9, 0xe4, 0xab, 0x23, 0x82, 0xd1,
+
  0xe4, 0x00, 0xc1, 0x2c, 0x45, 0xcd, 0x95, 0x0a, 0x94, 0x73, 0xf8, 0xa2,
+
  0x2c, 0x97, 0x04, 0x8c, 0x39, 0x9c, 0xca, 0xb6, 0x38, 0x51, 0xd9, 0xc4,
+
  0x4f, 0x48, 0xde, 0x5f, 0x75, 0x95, 0x73, 0x83, 0xf7, 0xdc, 0xe3, 0xd2,
+
  0xab, 0x83, 0xdc, 0xec, 0x8d, 0x92, 0x0e, 0x72, 0xc6, 0x75, 0xc3, 0xac,
+
  0xb8, 0x92, 0x58, 0x37, 0x94, 0x11, 0x13, 0xa9, 0xac, 0x89, 0xca, 0xa9,
+
  0x4f, 0xae, 0x41, 0xa6, 0xfb, 0x5f, 0x82, 0x4c, 0xf7, 0xfe, 0x3f, 0x32,
+
  0xfd, 0x6c, 0x64, 0xba, 0xf7, 0xb9, 0xc9, 0x74, 0x6f, 0x1d, 0x32, 0xdd,
+
  0xfb, 0xcd, 0x64, 0xba, 0xbb, 0x36, 0x99, 0xee, 0x47, 0x64, 0xfa, 0xe7,
+
  0xbc, 0x98, 0x90, 0xed, 0x21, 0x22, 0xd3, 0x87, 0x9f, 0x99, 0x4c, 0xb1,
+
  0x76, 0x61, 0x44, 0xa4, 0x87, 0x41, 0x5a, 0x33, 0xf8, 0xc0, 0x40, 0x10,
+
  0x46, 0x11, 0x81, 0x24, 0x3c, 0x4d, 0x30, 0xd5, 0xef, 0xc7, 0x34, 0xf1,
+
  0x25, 0x89, 0x62, 0xff, 0x73, 0x13, 0xc5, 0xfe, 0x3a, 0x44, 0xb1, 0xff,
+
  0x39, 0x79, 0xd7, 0xee, 0x4a, 0xa2, 0x28, 0x33, 0x0e, 0x1f, 0xfc, 0x9b,
+
  0xc6, 0x67, 0x42, 0xdb, 0xbf, 0x90, 0x7b, 0xf1, 0x00, 0x85, 0x92, 0x5f,
+
  0x02, 0xe0, 0x08, 0x0b, 0xd9, 0xa6, 0x9e, 0x9c, 0x9f, 0x1e, 0xfd, 0xf1,
+
  0x5c, 0x43, 0xa2, 0x0d, 0x60, 0x5c, 0x44, 0x55, 0x86, 0x78, 0xa6, 0xd8,
+
  0x67, 0x06, 0xa5, 0xd7, 0xf0, 0x25, 0xca, 0x64, 0xb3, 0x20, 0x56, 0x4a,
+
  0x3b, 0xd7, 0x33, 0x3e, 0x44, 0x9d, 0x5d, 0x00, 0x51, 0xc9, 0x39, 0x16,
+
  0x41, 0x20, 0x52, 0xef, 0xd4, 0xa7, 0x0f, 0xc5, 0xd6, 0x32, 0x5e, 0xb3,
+
  0x24, 0x3c, 0xbd, 0x59, 0x5f, 0x95, 0x04, 0x47, 0xc7, 0x8f, 0x6f, 0x85,
+
  0xd7, 0x75, 0x28, 0x32, 0x0c, 0xd7, 0x50, 0x3f, 0x79, 0x41, 0x78, 0x8e,
+
  0xb0, 0x1c, 0x89, 0xc6, 0xd7, 0x9a, 0x71, 0xc7, 0x3e, 0xd4, 0x30, 0x99,
+
  0xb6, 0xda, 0x25, 0xe2, 0x7c, 0x76, 0xab, 0xc8, 0xa6, 0xdf, 0xfc, 0x83,
+
  0xb9, 0x77, 0x34, 0x60, 0x24, 0x9d, 0x90, 0x87, 0x9c, 0xea, 0x02, 0x72,
+
  0xbb, 0xfa, 0x56, 0xc5, 0x1e, 0xeb, 0xaa, 0x18, 0xbe, 0xaf, 0x1e, 0x42,
+
  0x13, 0xc4, 0x8e, 0xf1, 0xf7, 0x14, 0xff, 0x10, 0xe9, 0x0f, 0x3f, 0x78,
+
  0x84, 0xed, 0x23, 0x6a, 0x2c, 0xfd, 0x71, 0x45, 0xbd, 0x11, 0x0b, 0xe5,
+
  0x42, 0x96, 0x7e, 0xab, 0x86, 0xb2, 0x53, 0x86, 0x0c, 0xac, 0x86, 0x69,
+
  0x81, 0xe7, 0xc0, 0x3c, 0x9a, 0x50, 0xee, 0x2d, 0x4c, 0xc8, 0x15, 0xce,
+
  0x50, 0x56, 0x0f, 0x3d, 0x50, 0x5b, 0x0f, 0x1b, 0x0e, 0x4b, 0x16, 0x84,
+
  0x45, 0x25, 0xcc, 0xa5, 0xfa, 0xab, 0xf3, 0x62, 0x8a, 0xfd, 0x41, 0x48,
+
  0x85, 0x17, 0xb1, 0x9b, 0xe4, 0xae, 0x30, 0x14, 0x28, 0xd3, 0x8b, 0x69,
+
  0xa6, 0xf5, 0xcf, 0x77, 0x77, 0x9e, 0x98, 0xbf, 0xe4, 0xad, 0x82, 0x18,
+
  0x59, 0xe8, 0x20, 0x27, 0x11, 0x32, 0xa4, 0xb1, 0x8f, 0x5f, 0x8f, 0xbb,
+
  0x91, 0xad, 0x42, 0xe7, 0x98, 0x34, 0xf4, 0xe6, 0x25, 0xe2, 0x28, 0x17,
+
  0xa2, 0x87, 0xe2, 0xc4, 0x96, 0x61, 0x6f, 0xb4, 0x24, 0x62, 0xae, 0x30,
+
  0x36, 0x20, 0x66, 0x5b, 0x4a, 0x86, 0xc6, 0x8e, 0x4b, 0xa0, 0xee, 0xf7,
+
  0xa1, 0xc0, 0xec, 0x7f, 0x3c, 0xdc, 0x21, 0xb2, 0xd2, 0x77, 0x31, 0x7e,
+
  0x60, 0x52, 0x88, 0x59, 0xf6, 0x3f, 0xf6, 0x53, 0x13, 0xec, 0xe5, 0xb4,
+
  0x59, 0x88, 0xdc, 0xe7, 0xf6, 0xaf, 0xda, 0x71, 0x36, 0x2a, 0x61, 0x6a,
+
  0xd6, 0x40, 0xf9, 0xde, 0x87, 0x44, 0xa2, 0x09, 0xf0, 0x1f, 0xfb, 0xf8,
+
  0x23, 0x24, 0xf5, 0x70, 0xee, 0x7a, 0x3d, 0xee, 0x44, 0x79, 0xc9, 0xef,
+
  0xba, 0x0d, 0xb0, 0x80, 0x26, 0xd6, 0xa1, 0xba, 0xf0, 0x1c, 0xc4, 0x76,
+
  0x70, 0x16, 0xa6, 0x95, 0x14, 0x28, 0xa3, 0x01, 0x85, 0xcf, 0x13, 0x6b,
+
  0xc8, 0x85, 0xe3, 0x79, 0xc8, 0xdf, 0xee, 0x52, 0x6d, 0xc0, 0x74, 0xd2,
+
  0x4d, 0xa2, 0x5c, 0x39, 0xda, 0x65, 0x6b, 0x11, 0x1a, 0xc4, 0x6a, 0x7f,
+
  0x37, 0x55, 0xec, 0x15, 0xc4, 0x76, 0x37, 0x7e, 0xb7, 0xe1, 0xb6, 0x1b,
+
  0x4d, 0x5e, 0x65, 0x41, 0x15, 0xb8, 0x54, 0xe3, 0x1e, 0x96, 0x99, 0x04,
+
  0x57, 0x62, 0xa9, 0x66, 0x4a, 0xde, 0x99, 0x67, 0xe5, 0x10, 0x93, 0xc0,
+
  0x2e, 0x33, 0xab, 0x4f, 0x17, 0x3c, 0x0b, 0x52, 0x54, 0x81, 0x0a, 0x2a,
+
  0xf4, 0x09, 0xae, 0xa7, 0xe9, 0x5a, 0x55, 0xdf, 0x4a, 0x2a, 0x55, 0x17,
+
  0xf0, 0x15, 0xcd, 0x3e, 0xa3, 0xec, 0xa0, 0x6a, 0x9e, 0x0e, 0xb1, 0x04,
+
  0x5f, 0x3e, 0x47, 0x88, 0xf3, 0x6f, 0x8b, 0x6f, 0x7b, 0x5b, 0x0e, 0xc5,
+
  0x02, 0x0b, 0x67, 0x57, 0x02, 0xea, 0x4a, 0xd0, 0x8b, 0x70, 0x14, 0xaf,
+
  0x38, 0x6c, 0x58, 0x52, 0x8d, 0x28, 0x35, 0x8e, 0x31, 0x32, 0x08, 0x2d,
+
  0x38, 0xaa, 0x6c, 0x80, 0xa1, 0x12, 0xee, 0x8e, 0x4a, 0x89, 0xde, 0x60,
+
  0x21, 0xc6, 0x13, 0x0a, 0x8d, 0x42, 0xfb, 0x4d, 0x82, 0xc9, 0x00, 0x49,
+
  0x75, 0x3b, 0x1d, 0x14, 0x8c, 0xe3, 0x58, 0x17, 0x5f, 0xcc, 0x55, 0xd2,
+
  0xe6, 0x2b, 0x69, 0x10, 0xd5, 0xca, 0x54, 0xb3, 0x8f, 0xac, 0x2f, 0xda,
+
  0x40, 0xb5, 0x58, 0x7d, 0xa6, 0x7e, 0x77, 0x77, 0x8c, 0x82, 0x3b, 0x1a,
+
  0x14, 0xc0, 0x3d, 0x92, 0x18, 0x07, 0x77, 0xc3, 0x02, 0x6b, 0x4d, 0x9e,
+
  0x1a, 0x8b, 0xff, 0xce, 0x57, 0xb1, 0x86, 0xed, 0xa1, 0x3a, 0xf5, 0xfa,
+
  0xa5, 0x94, 0xc4, 0x63, 0x38, 0x45, 0x0e, 0xc1, 0x53, 0x4a, 0xe1, 0x45,
+
  0xd1, 0xc7, 0x02, 0x5f, 0xcb, 0x90, 0x3d, 0x70, 0x9a, 0x5a, 0x36, 0x16,
+
  0xd3, 0x2a, 0x21, 0x63, 0x76, 0x39, 0x30, 0x80, 0x62, 0x50, 0x02, 0x56,
+
  0x18, 0x22, 0x5d, 0x10, 0x12, 0x18, 0x7e, 0xc7, 0x28, 0x5e, 0x21, 0x5b,
+
  0x83, 0xef, 0x00, 0xab, 0x92, 0x96, 0x6c, 0xc0, 0x48, 0x36, 0xba, 0x01,
+
  0xd2, 0x6d, 0x72, 0xab, 0x97, 0x9a, 0xc6, 0xa3, 0x52, 0x55, 0x95, 0x44,
+
  0x2b, 0x74, 0x2a, 0x4d, 0x72, 0x09, 0x15, 0x18, 0xf2, 0xe1, 0x75, 0x9a,
+
  0x4f, 0x68, 0x0b, 0xec, 0x43, 0xec, 0x59, 0x2d, 0x2f, 0xbf, 0xc7, 0xb0,
+
  0xaf, 0x33, 0x2a, 0x05, 0xac, 0xfe, 0xd4, 0x50, 0x78, 0x94, 0x98, 0x70,
+
  0x3a, 0x1a, 0xe5, 0x02, 0x14, 0xc1, 0x65, 0x25, 0xdc, 0x0a, 0x30, 0x92,
+
  0x07, 0xe2, 0x39, 0x52, 0x0b, 0xb8, 0x04, 0x9b, 0x3e, 0x3f, 0xd2, 0x9c,
+
  0x32, 0x88, 0x91, 0x1c, 0x0a, 0xbb, 0x08, 0x23, 0xb5, 0x88, 0x7c, 0x8c,
+
  0x2a, 0x7b, 0xf0, 0x2c, 0x9b, 0xdd, 0x36, 0x46, 0xd0, 0x45, 0xf1, 0xb3,
+
  0xb8, 0x16, 0x6b, 0xa1, 0xd6, 0x53, 0xa2, 0x8a, 0x14, 0x95, 0x84, 0x09,
+
  0xd8, 0x70, 0xa0, 0x05, 0x05, 0x16, 0xb1, 0xc1, 0x68, 0xfb, 0xdf, 0xfa,
+
  0x49, 0x8a, 0x10, 0xba, 0x34, 0xd7, 0x4d, 0xaa, 0x4d, 0xe5, 0x40, 0xc5,
+
  0xb8, 0x93, 0xb6, 0x49, 0x52, 0x19, 0x7b, 0x12, 0x70, 0xaa, 0xc5, 0xe0,
+
  0x57, 0xa9, 0x3e, 0x8d, 0x52, 0x7c, 0x29, 0x73, 0x14, 0x99, 0x11, 0xb7,
+
  0x07, 0x9e, 0x60, 0xc7, 0x00, 0xb0, 0x8b, 0x07, 0xf0, 0x13, 0xa3, 0x21,
+
  0x43, 0xe4, 0x70, 0x93, 0x34, 0xa8, 0x53, 0x66, 0x53, 0x16, 0xef, 0x7a,
+
  0x60, 0x34, 0x0c, 0x2d, 0xf4, 0xc6, 0x98, 0x3e, 0x4f, 0xd8, 0x03, 0x7e,
+
  0x81, 0x6d, 0x19, 0xba, 0xc4, 0x78, 0x2c, 0x11, 0x11, 0x9f, 0xc6, 0xc9,
+
  0xeb, 0x21, 0xc0, 0xc0, 0xb0, 0x2e, 0x1d, 0xa5, 0xee, 0xef, 0xf1, 0x1f,
+
  0x5e, 0x0d, 0x45, 0x9a, 0xa0, 0x4f, 0x90, 0x36, 0xe9, 0x09, 0xff, 0xde,
+
  0xb7, 0xf8, 0x09, 0xbf, 0xc8, 0x67, 0xed, 0x9e, 0xf7, 0xde, 0xce, 0x98,
+
  0x97, 0x12, 0x1f, 0x52, 0xb4, 0x7d, 0x47, 0x3a, 0x73, 0x29, 0xfb, 0x9c,
+
  0x6a, 0x2e, 0xba, 0x26, 0x96, 0xb0, 0x24, 0x00, 0x2d, 0x00, 0xa3, 0xcf,
+
  0xe7, 0x1c, 0xba, 0x51, 0xa5, 0x63, 0xcc, 0xae, 0x44, 0xb4, 0xc9, 0xdb,
+
  0x84, 0x4d, 0xb0, 0xa4, 0x7a, 0x73, 0x66, 0x45, 0xc8, 0xe5, 0x05, 0x29,
+
  0xa8, 0xe6, 0xda, 0xd5, 0xe8, 0x67, 0x7e, 0x30, 0xc2, 0x2a, 0x66, 0x25,
+
  0xaa, 0xd9, 0x6e, 0x75, 0x8c, 0xdb, 0x53, 0x6b, 0x1c, 0x0e, 0x40, 0x6e,
+
  0x12, 0x2d, 0x7d, 0x6b, 0xc5, 0xcd, 0x71, 0xc3, 0x95, 0x3a, 0xb8, 0x43,
+
  0x4e, 0x88, 0x21, 0x75, 0x4b, 0xab, 0x37, 0x13, 0xdc, 0x4d, 0x54, 0x6b,
+
  0xed, 0x41, 0x04, 0x88, 0x2e, 0x5e, 0x00, 0xc9, 0x4b, 0x88, 0x1d, 0x29,
+
  0x5d, 0x3a, 0x5f, 0x96, 0x84, 0x50, 0x69, 0x9a, 0xe3, 0x03, 0x81, 0x8e,
+
  0x90, 0xb8, 0x71, 0x89, 0x65, 0x4e, 0x2b, 0x8a, 0x88, 0x01, 0x22, 0x99,
+
  0x89, 0xfd, 0x5c, 0x24, 0x2d, 0x5d, 0x52, 0x1a, 0x17, 0x27, 0xbe, 0x3e,
+
  0xc0, 0x8b, 0x9a, 0x90, 0xef, 0xe5, 0xa6, 0xe6, 0xe1, 0x38, 0x99, 0x51,
+
  0xf7, 0xf5, 0x8b, 0x08, 0x40, 0x0d, 0x82, 0xe9, 0x56, 0x40, 0x85, 0x6b,
+
  0x8b, 0x36, 0x75, 0xc1, 0xd5, 0x5a, 0x42, 0xd6, 0x09, 0x7c, 0x12, 0xa0,
+
  0x4f, 0x1c, 0x47, 0xd7, 0x4f, 0x03, 0x67, 0xff, 0x2e, 0xa8, 0x4a, 0xb6,
+
  0x75, 0x63, 0xf1, 0x97, 0xd8, 0x34, 0x51, 0x0a, 0x25, 0xb8, 0x62, 0xb2,
+
  0xde, 0x70, 0x25, 0x6f, 0x43, 0xdf, 0x25, 0x7c, 0x9d, 0x85, 0x10, 0xaf,
+
  0x42, 0x1f, 0xe1, 0x27, 0x0e, 0xc6, 0x3e, 0xe2, 0x1a, 0x52, 0x8d, 0x2f,
+
  0xb1, 0x02, 0x70, 0x92, 0xbf, 0x0c, 0xbd, 0x1c, 0xbf, 0x7b, 0xfb, 0xfa,
+
  0xfc, 0xed, 0xd9, 0xd9, 0xe9, 0x9b, 0x8b, 0xe3, 0x67, 0x98, 0x9c, 0x7a,
+
  0x71, 0x7a, 0x74, 0xfa, 0xb2, 0xed, 0xe2, 0x0e, 0xd0, 0x43, 0x54, 0x79,
+
  0xaf, 0x79, 0xb2, 0x9d, 0x7a, 0x92, 0x6c, 0xe2, 0x3a, 0x6e, 0xf9, 0x38,
+
  0x30, 0x0b, 0x0b, 0xf1, 0x2e, 0xbf, 0xae, 0x5a, 0x90, 0x2e, 0x17, 0x9c,
+
  0x85, 0xea, 0xc6, 0xcc, 0x69, 0x7b, 0x1a, 0x2a, 0xdf, 0xcc, 0x25, 0xa6,
+
  0xb8, 0x16, 0xce, 0x78, 0xa1, 0xa3, 0x20, 0xf0, 0xd1, 0x41, 0x7e, 0xf6,
+
  0x2b, 0xff, 0xe5, 0xbc, 0xb7, 0x51, 0x37, 0xcc, 0x77, 0xc6, 0x41, 0x5c,
+
  0xbe, 0x83, 0x7a, 0x22, 0xba, 0x21, 0x4a, 0x6a, 0x50, 0x0d, 0x53, 0xd7,
+
  0x0a, 0x69, 0x80, 0x84, 0x81, 0x58, 0x16, 0x10, 0x51, 0xa0, 0x98, 0xf9,
+
  0x9a, 0x47, 0x4e, 0x10, 0x18, 0x65, 0xb3, 0x9c, 0xef, 0x62, 0x97, 0xe6,
+
  0x87, 0xef, 0x95, 0x19, 0xab, 0x61, 0x12, 0xa0, 0x3d, 0xca, 0xa8, 0x90,
+
  0x5b, 0xb4, 0x57, 0x12, 0x50, 0xa5, 0xaf, 0x48, 0x35, 0x9f, 0x9b, 0x58,
+
  0x1a, 0x60, 0x00, 0x06, 0x54, 0x2b, 0xa8, 0x88, 0xf7, 0xd2, 0xd2, 0x75,
+
  0x65, 0x88, 0xc4, 0x92, 0x49, 0xc1, 0xc6, 0x25, 0x60, 0x35, 0xdf, 0x8d,
+
  0xda, 0x65, 0x38, 0x44, 0x2b, 0x61, 0x57, 0x82, 0xb0, 0x77, 0xd1, 0x4e,
+
  0x96, 0x57, 0xda, 0xa1, 0x44, 0x50, 0x33, 0xd4, 0x9f, 0x68, 0x6e, 0x8c,
+
  0x57, 0x4e, 0x7d, 0x76, 0x09, 0x77, 0x1a, 0x87, 0xf0, 0x1c, 0x47, 0x10,
+
  0x2d, 0x9c, 0x58, 0xbe, 0x5c, 0x32, 0xf3, 0xe3, 0x47, 0xfd, 0xbd, 0xad,
+
  0x28, 0x19, 0x00, 0x63, 0x40, 0x61, 0x1d, 0x7e, 0x8f, 0xff, 0xea, 0x05,
+
  0x83, 0xbf, 0xbb, 0x5d, 0xd1, 0xe0, 0x11, 0x57, 0xb3, 0x4a, 0xd8, 0xa8,
+
  0x94, 0x4f, 0x4b, 0x2e, 0x8b, 0x42, 0x24, 0x5c, 0xad, 0xea, 0x12, 0x13,
+
  0x30, 0x4f, 0xfd, 0x8b, 0x05, 0xd9, 0xfa, 0x4e, 0xbe, 0x6d, 0xac, 0xed,
+
  0x7a, 0x4c, 0x50, 0x89, 0xf6, 0x43, 0xd7, 0x34, 0xbe, 0xf5, 0xec, 0x43,
+
  0xce, 0x7b, 0xbd, 0x6c, 0x45, 0xf1, 0x6a, 0xb9, 0x5e, 0x4d, 0x4b, 0x06,
+
  0x94, 0xc8, 0x82, 0xc2, 0xb2, 0x26, 0xc2, 0x10, 0x15, 0x0d, 0x19, 0x35,
+
  0xbc, 0x57, 0x94, 0x4a, 0x34, 0x62, 0x51, 0x48, 0x6a, 0x06, 0x5f, 0xc3,
+
  0x4b, 0x0b, 0x7a, 0x21, 0x9a, 0x54, 0x73, 0xd3, 0x5b, 0x4d, 0x87, 0x5d,
+
  0x61, 0x62, 0xf1, 0xe6, 0x15, 0x62, 0xbf, 0x0d, 0x03, 0x8b, 0x59, 0x58,
+
  0x4c, 0x6a, 0x5e, 0x61, 0x65, 0x61, 0x7d, 0xc7, 0xef, 0x15, 0x82, 0xed,
+
  0x2b, 0xac, 0x02, 0xb6, 0x8a, 0xa8, 0x72, 0x74, 0xb6, 0x02, 0x73, 0x1f,
+
  0x5b, 0x8f, 0x3a, 0x60, 0xaa, 0x6e, 0x46, 0x09, 0x2d, 0xb8, 0xe4, 0xe2,
+
  0x88, 0x96, 0xa8, 0x16, 0xfc, 0x84, 0x32, 0x05, 0xfb, 0x09, 0x95, 0x38,
+
  0x0f, 0x43, 0xb5, 0x17, 0xb6, 0xd1, 0xfd, 0xbf, 0x5d, 0x17, 0xdb, 0xdc,
+
  0x61, 0x1f, 0xff, 0xf9, 0xca, 0x1b, 0xe2, 0x64, 0x53, 0x54, 0xfc, 0xe0,
+
  0x52, 0x2c, 0x14, 0xb4, 0x61, 0x09, 0x8b, 0x46, 0x36, 0x8e, 0x89, 0x7b,
+
  0xc3, 0x16, 0xa5, 0x4d, 0x8a, 0xfb, 0xd6, 0xfb, 0x6f, 0x39, 0x1b, 0x5c,
+
  0x02, 0xcd, 0xa5, 0xc6, 0x0b, 0x4d, 0x10, 0xf3, 0x14, 0x63, 0xbf, 0xaa,
+
  0x54, 0x93, 0x5d, 0x54, 0x35, 0x0a, 0x49, 0xea, 0x36, 0xed, 0xaa, 0xb7,
+
  0x35, 0x38, 0x5b, 0xb1, 0x79, 0x71, 0xcb, 0xc6, 0xa0, 0x04, 0x5f, 0xbb,
+
  0x0c, 0xdb, 0xb7, 0x33, 0x38, 0x95, 0xc5, 0xe5, 0x0c, 0x14, 0xe9, 0x91,
+
  0x8c, 0x28, 0xba, 0x41, 0xc5, 0x0c, 0xe5, 0x4e, 0x34, 0xdd, 0xa2, 0x82,
+
  0xd4, 0xc0, 0x92, 0x94, 0xdc, 0xc7, 0x43, 0x2a, 0x55, 0xcc, 0x77, 0x99,
+
  0xa1, 0xea, 0x73, 0x15, 0xd9, 0x91, 0xbb, 0xa9, 0xf9, 0x1a, 0x97, 0x74,
+
  0x00, 0x16, 0xb6, 0x84, 0x24, 0x23, 0xcb, 0xc5, 0xbf, 0xd1, 0x6a, 0xd6,
+
  0x8e, 0x78, 0x11, 0xe2, 0x2c, 0xdb, 0x61, 0x2f, 0x18, 0x6b, 0x8b, 0x0b,
+
  0xea, 0x45, 0x88, 0x17, 0x0c, 0xc6, 0xd0, 0x0f, 0xc8, 0x16, 0x39, 0x1d,
+
  0xad, 0xb6, 0x56, 0xf0, 0x7d, 0x0d, 0xd8, 0x60, 0x40, 0x8b, 0x38, 0xb3,
+
  0x11, 0x9b, 0xb7, 0x46, 0x09, 0xc8, 0xa2, 0x0d, 0xc3, 0xe2, 0x10, 0x83,
+
  0x85, 0x2c, 0xa9, 0x41, 0xa3, 0xe6, 0xf9, 0x56, 0x93, 0x78, 0x7d, 0x12,
+
  0x86, 0x38, 0x27, 0x3a, 0x98, 0x99, 0x65, 0xb1, 0x82, 0x76, 0x4c, 0xea,
+
  0x33, 0x86, 0xed, 0x53, 0x51, 0x20, 0xf1, 0x64, 0x88, 0x41, 0x02, 0x5f,
+
  0x61, 0x2a, 0x8d, 0x42, 0xf3, 0xe1, 0x01, 0x82, 0x3e, 0x51, 0x02, 0x69,
+
  0x9c, 0x73, 0x37, 0x2a, 0xb6, 0x41, 0x2a, 0x98, 0x40, 0xaa, 0xba, 0xae,
+
  0x6a, 0x13, 0x72, 0x1d, 0xb0, 0xaa, 0x95, 0x2a, 0xe7, 0x91, 0xf4, 0x41,
+
  0xc2, 0xe5, 0x59, 0x20, 0x9d, 0x27, 0x6a, 0xaf, 0xb6, 0xdd, 0xa6, 0xb8,
+
  0x77, 0x44, 0x1d, 0x08, 0x99, 0x9a, 0xc2, 0x86, 0xf9, 0x0d, 0xef, 0xe7,
+
  0xf8, 0x7f, 0xa2, 0x9d, 0x74, 0xa5, 0x99, 0xd4, 0x07, 0xe6, 0xf3, 0xf0,
+
  0x88, 0xc9, 0x85, 0xb0, 0x66, 0x9f, 0x1a, 0x43, 0x36, 0x6e, 0xd2, 0x4e,
+
  0x6e, 0xd0, 0xa6, 0x68, 0xb5, 0xcf, 0x9d, 0x85, 0xb5, 0x95, 0xcc, 0xbb,
+
  0x82, 0xc0, 0xad, 0xb9, 0x7f, 0xc6, 0xd6, 0x98, 0xab, 0xb1, 0x90, 0x0b,
+
  0x67, 0x77, 0xcb, 0x85, 0x90, 0x53, 0x68, 0x31, 0xb2, 0x2b, 0x06, 0x4a,
+
  0x81, 0xa5, 0xfe, 0x7d, 0x28, 0xb6, 0xe2, 0x43, 0x96, 0x84, 0xe8, 0xf5,
+
  0xa2, 0x96, 0xd0, 0x24, 0xaa, 0xb2, 0x93, 0x91, 0x68, 0x32, 0xc5, 0xa2,
+
  0x3a, 0x29, 0x33, 0x59, 0xc5, 0x28, 0x00, 0xd9, 0xb2, 0x87, 0xdc, 0x40,
+
  0x8e, 0x8a, 0x20, 0x62, 0x36, 0xee, 0x8f, 0x67, 0x14, 0x8b, 0x4e, 0xa5,
+
  0x5b, 0x28, 0x25, 0x5d, 0x69, 0x9e, 0xfb, 0x33, 0xc5, 0x32, 0x22, 0x94,
+
  0xa8, 0xfa, 0xf5, 0xa8, 0x08, 0x9c, 0xdf, 0xe0, 0xf9, 0xa8, 0x41, 0xdc,
+
  0x72, 0x43, 0x17, 0xb0, 0xbb, 0x12, 0xad, 0x00, 0xb4, 0x87, 0x3e, 0xe8,
+
  0x1d, 0x4d, 0x06, 0x2a, 0x00, 0xe1, 0xab, 0x4b, 0x58, 0xef, 0xe6, 0x35,
+
  0x24, 0x9e, 0xef, 0xd7, 0x5a, 0x26, 0x5a, 0x55, 0x13, 0x0c, 0x92, 0x1b,
+
  0x45, 0x01, 0xfa, 0xfa, 0x85, 0x04, 0xe4, 0xf6, 0x4d, 0x4b, 0x5c, 0x05,
+
  0xc2, 0xe2, 0x44, 0x24, 0x92, 0x91, 0x54, 0xfe, 0xff, 0x58, 0x41, 0x09,
+
  0x49, 0x8c, 0xb7, 0x3b, 0x36, 0x94, 0xaf, 0x67, 0xf0, 0xa3, 0x1b, 0x37,
+
  0x42, 0x28, 0xa0, 0x64, 0x74, 0x2f, 0xf3, 0xc3, 0x67, 0x82, 0x2b, 0x21,
+
  0x9c, 0x6d, 0x51, 0x17, 0x68, 0xa6, 0x96, 0x9a, 0x3c, 0xf3, 0x9c, 0xca,
+
  0x71, 0xa5, 0x74, 0x5e, 0x72, 0xc1, 0x6b, 0x58, 0x02, 0x0c, 0x31, 0x8c,
+
  0x16, 0x97, 0xd5, 0x86, 0x3b, 0xb1, 0x98, 0x69, 0x3c, 0x9b, 0x5d, 0xd7,
+
  0x1c, 0xe3, 0xe9, 0x85, 0x1e, 0x3a, 0xbb, 0xcc, 0x06, 0xf8, 0xa2, 0xa3,
+
  0x7b, 0x2e, 0xe4, 0x7f, 0x88, 0x48, 0xb3, 0x6d, 0xe9, 0xaa, 0x09, 0xb0,
+
  0xa3, 0xd9, 0xa8, 0x07, 0x8c, 0x61, 0xde, 0x62, 0x89, 0x0d, 0x13, 0x5a,
+
  0x1f, 0x2a, 0xf1, 0xfe, 0x5d, 0xb0, 0x36, 0xf5, 0x6f, 0x3a, 0x64, 0x01,
+
  0x33, 0x62, 0x84, 0xae, 0x0b, 0xde, 0xaf, 0x8f, 0x75, 0x56, 0x74, 0xe3,
+
  0xcd, 0x89, 0xb6, 0x2b, 0xc6, 0x09, 0xf0, 0x8f, 0x05, 0xb9, 0x96, 0x6f,
+
  0x96, 0x1f, 0xf8, 0xdd, 0xc6, 0xc6, 0x90, 0x33, 0x39, 0xde, 0x09, 0x27,
+
  0x39, 0xd1, 0x5e, 0x44, 0x5e, 0xc6, 0xb7, 0x8c, 0xbf, 0xc6, 0x03, 0x61,
+
  0x1b, 0xf8, 0x4c, 0xf0, 0x9f, 0x7c, 0x37, 0x02, 0xf3, 0x9e, 0x70, 0x4a,
+
  0x1b, 0x2b, 0xc8, 0x22, 0x94, 0xf0, 0x03, 0x0d, 0x0b, 0x67, 0x3b, 0xa2,
+
  0x4f, 0x00, 0xec, 0xe6, 0xf6, 0x70, 0x0c, 0x39, 0xe2, 0x27, 0x2e, 0x95,
+
  0xbb, 0xf1, 0xcb, 0xf3, 0x5b, 0x21, 0x3f, 0x7c, 0x5b, 0x5f, 0x72, 0x33,
+
  0xdb, 0x0a, 0x6f, 0xb5, 0x6e, 0xe7, 0x30, 0xed, 0xb1, 0xb3, 0xb5, 0x2d,
+
  0xdc, 0xf6, 0xe8, 0x50, 0xe0, 0x11, 0x43, 0x7d, 0x32, 0xf1, 0xcc, 0xca,
+
  0x3d, 0x8f, 0xee, 0xde, 0x5b, 0x10, 0xdf, 0xa6, 0x24, 0xfe, 0x73, 0xcc,
+
  0x6d, 0xb8, 0x13, 0x9c, 0x14, 0xdd, 0x8f, 0x73, 0x66, 0x98, 0xe7, 0xd2,
+
  0xea, 0xa7, 0xd8, 0x8b, 0x74, 0x63, 0x8c, 0x8c, 0x8c, 0xdb, 0x0a, 0xb2,
+
  0x4e, 0x4e, 0x28, 0x0a, 0xbf, 0xc3, 0x92, 0x59, 0x9a, 0xec, 0xc9, 0xd6,
+
  0xd4, 0x9b, 0xd6, 0x6a, 0x6f, 0x2c, 0x07, 0x62, 0xaa, 0xf5, 0x38, 0x1d,
+
  0x46, 0x89, 0xe9, 0x8d, 0x61, 0x6f, 0x54, 0x54, 0x94, 0xe3, 0xda, 0x83,
+
  0xf7, 0x46, 0xf5, 0x4d, 0x49, 0x32, 0x27, 0x52, 0x14, 0xbd, 0xda, 0x6a,
+
  0x56, 0x71, 0xd7, 0x06, 0xc4, 0x43, 0x32, 0xb2, 0xc6, 0x4a, 0x8a, 0xd3,
+
  0x68, 0x49, 0x16, 0x7f, 0xd2, 0xdf, 0x07, 0x51, 0x9c, 0x54, 0x27, 0x09,
+
  0xa6, 0xf4, 0xdf, 0x3d, 0xa2, 0x02, 0xa6, 0x74, 0x51, 0xf2, 0xfa, 0xe8,
+
  0x55, 0xa2, 0x5d, 0x7a, 0x60, 0x53, 0xec, 0x2f, 0xe8, 0x02, 0x34, 0xf7,
+
  0x31, 0x28, 0x76, 0x0b, 0x16, 0x3f, 0xd1, 0x4f, 0x98, 0xab, 0x80, 0xef,
+
  0x0a, 0x4f, 0x61, 0xdb, 0x6c, 0x64, 0x37, 0x33, 0xb5, 0xee, 0xa8, 0xed,
+
  0x42, 0xbf, 0x8d, 0xa9, 0x35, 0xc8, 0xe4, 0xf3, 0x56, 0x3f, 0x6c, 0x74,
+
  0xb1, 0xce, 0x09, 0xb2, 0x87, 0xd7, 0xab, 0x88, 0xb8, 0x87, 0x59, 0x13,
+
  0x51, 0xfd, 0xdb, 0x14, 0x25, 0x59, 0x4a, 0x91, 0x1b, 0xa6, 0xa8, 0x07,
+
  0xe2, 0xd1, 0x19, 0x2d, 0xa6, 0x73, 0x6c, 0x99, 0x64, 0x99, 0xe8, 0x06,
+
  0x5e, 0x42, 0x48, 0xd4, 0x51, 0x60, 0x2b, 0x11, 0x6a, 0xca, 0xb2, 0xae,
+
  0xef, 0x03, 0xa2, 0xb9, 0x90, 0x52, 0x08, 0x4f, 0x5f, 0x3e, 0x25, 0x17,
+
  0x51, 0x21, 0x78, 0x8c, 0x05, 0x93, 0x70, 0xf4, 0xb0, 0xe6, 0xb0, 0x53,
+
  0xae, 0xcd, 0x8a, 0xb1, 0xcb, 0xdc, 0x27, 0x9b, 0xd5, 0x56, 0x42, 0xa5,
+
  0x0e, 0x2d, 0x92, 0x41, 0xc2, 0xd5, 0xa5, 0xb2, 0x9c, 0xa7, 0xf3, 0x58,
+
  0x6a, 0x65, 0xac, 0xc6, 0x50, 0xf3, 0xb5, 0x2e, 0xb1, 0x60, 0xa2, 0xaa,
+
  0xd4, 0xa2, 0x3e, 0xb8, 0x4c, 0xdf, 0x70, 0xb0, 0x84, 0x17, 0x6b, 0x8d,
+
  0x4e, 0x8e, 0x36, 0x61, 0xe5, 0xeb, 0x3a, 0x4f, 0x9d, 0xe4, 0xa4, 0x7b,
+
  0xfb, 0xf7, 0x45, 0x0e, 0xb2, 0x08, 0x05, 0x5a, 0x73, 0x49, 0x25, 0x59,
+
  0x4b, 0x86, 0x2d, 0x0c, 0x58, 0x41, 0xbc, 0x3a, 0xa1, 0x6f, 0x38, 0xd4,
+
  0x92, 0xc1, 0x13, 0x23, 0x77, 0xc9, 0xeb, 0xf7, 0x65, 0xf1, 0x84, 0x8a,
+
  0xbf, 0x22, 0x0a, 0x45, 0xe0, 0xca, 0xeb, 0x51, 0x1e, 0x75, 0x74, 0x74,
+
  0xc8, 0x25, 0x88, 0x6a, 0x2c, 0xb6, 0xf2, 0xc1, 0xa8, 0xf0, 0x23, 0xf9,
+
  0xb6, 0x6b, 0x55, 0x89, 0xf0, 0x23, 0x29, 0x33, 0xc6, 0xbb, 0xf3, 0x8d,
+
  0x45, 0x68, 0x01, 0x94, 0x08, 0x5e, 0x59, 0x9b, 0xb4, 0xca, 0x5a, 0x90,
+
  0xc0, 0x1b, 0x3b, 0x74, 0x81, 0xbf, 0x5a, 0x19, 0xd9, 0x14, 0xd1, 0xb3,
+
  0xcf, 0xbd, 0x0f, 0x37, 0x80, 0x57, 0x35, 0xb4, 0xd6, 0x73, 0x5c, 0x6a,
+
  0x57, 0x0c, 0x5c, 0xb6, 0x55, 0xa0, 0x03, 0x05, 0x3f, 0x1b, 0xdd, 0xc7,
+
  0xac, 0xfb, 0x6c, 0x76, 0x0e, 0x3a, 0x40, 0xcc, 0x9b, 0x68, 0xc2, 0x11,
+
  0x1c, 0x4b, 0x6c, 0x60, 0xf7, 0x00, 0x7f, 0xee, 0xd1, 0xcf, 0x7d, 0x44,
+
  0x95, 0x6c, 0x9c, 0x80, 0x8a, 0x2b, 0x7d, 0x2e, 0x91, 0x7e, 0xd7, 0xa3,
+
  0xe6, 0x8d, 0x93, 0x06, 0x5c, 0x34, 0xb3, 0x27, 0x78, 0x2f, 0x84, 0xbc,
+
  0x93, 0x18, 0x11, 0xa6, 0x48, 0xad, 0x72, 0x79, 0xa4, 0x41, 0xe6, 0x84,
+
  0x17, 0xac, 0xc2, 0x61, 0x18, 0x91, 0x04, 0x6d, 0xf0, 0xae, 0xcc, 0x28,
+
  0x3c, 0x20, 0x59, 0xd4, 0x5c, 0xc5, 0x18, 0x4d, 0x2c, 0x13, 0xb3, 0xe4,
+
  0x49, 0x0f, 0x64, 0x73, 0xf3, 0x11, 0x75, 0x7e, 0xfb, 0x44, 0xb1, 0x53,
+
  0x23, 0xb7, 0xdd, 0x2e, 0xa0, 0x0c, 0xdd, 0x30, 0x2a, 0xa0, 0x56, 0x76,
+
  0xe0, 0x12, 0x05, 0xa8, 0xcd, 0xc8, 0x6e, 0xc3, 0x43, 0x3e, 0x03, 0x94,
+
  0x80, 0xd4, 0x28, 0x0e, 0x04, 0xd8, 0x72, 0x4e, 0x66, 0x9b, 0xc9, 0x2d,
+
  0xe7, 0x97, 0x5b, 0x1e, 0xa0, 0xa7, 0x6d, 0x43, 0x2e, 0x77, 0xba, 0xb5,
+
  0x7e, 0x47, 0x6c, 0xc9, 0x32, 0x64, 0x08, 0x2e, 0xa8, 0xc9, 0x8f, 0xbc,
+
  0x21, 0xc7, 0xf9, 0x3e, 0xf2, 0x4a, 0xbc, 0x1f, 0x5e, 0x36, 0x4b, 0x64,
+
  0xb2, 0x76, 0x18, 0xd5, 0x80, 0xd4, 0x7a, 0xc4, 0xe9, 0xd1, 0x7f, 0xc7,
+
  0x11, 0xa7, 0x8e, 0xb6, 0xad, 0x60, 0x81, 0xec, 0xff, 0xa7, 0x9f, 0xf3,
+
  0x78, 0x11, 0xbb, 0x5e, 0x5e, 0x93, 0xce, 0x04, 0x99, 0xcb, 0x9f, 0xf3,
+
  0xe6, 0xa9, 0xa6, 0xab, 0x06, 0x7f, 0xfe, 0x4d, 0x04, 0xc5, 0x5f, 0x56,
+
  0xdf, 0x39, 0x54, 0xb6, 0x3a, 0x59, 0xbe, 0x7b, 0x56, 0x89, 0xe4, 0x56,
+
  0x3c, 0x3c, 0xba, 0x8d, 0x1a, 0xc7, 0x8a, 0xe9, 0x5f, 0x0e, 0xd5, 0x1f,
+
  0x8f, 0xce, 0x7f, 0xb7, 0xbb, 0x27, 0x07, 0x8b, 0x8e, 0x93, 0x83, 0xfc,
+
  0x6a, 0xda, 0x26, 0x29, 0x35, 0x2a, 0x9c, 0xc3, 0xf0, 0x38, 0xf9, 0xff,
+
  0x38, 0xcb, 0x9a, 0xf1, 0x2e, 0xd9, 0x17, 0x60, 0x16, 0x36, 0x2b, 0x2d,
+
  0x67, 0x86, 0x9b, 0x65, 0x63, 0x20, 0xa3, 0x36, 0xe0, 0xe7, 0xa0, 0xaa,
+
  0x95, 0xc4, 0xa3, 0x48, 0x62, 0x8b, 0xbc, 0x68, 0x8a, 0xad, 0xd3, 0x97,
+
  0x4a, 0xc3, 0xbc, 0xa6, 0x98, 0xa5, 0x51, 0x37, 0x2a, 0x29, 0xba, 0x6c,
+
  0xc8, 0xf6, 0x40, 0x1e, 0xb6, 0x77, 0x84, 0x0b, 0x4c, 0xee, 0x2f, 0xdc,
+
  0x9e, 0x70, 0x79, 0x19, 0x5f, 0xf5, 0x16, 0x17, 0xbb, 0xbe, 0x82, 0x02,
+
  0xdf, 0x93, 0x13, 0x57, 0xad, 0x84, 0x52, 0xfd, 0x8d, 0x85, 0xea, 0x5d,
+
  0x2f, 0x44, 0x01, 0x4b, 0x44, 0xfc, 0x29, 0xea, 0x45, 0xc8, 0xc2, 0x0c,
+
  0xcd, 0xf7, 0xea, 0xdb, 0x79, 0xd6, 0x42, 0xb3, 0xf4, 0x79, 0xf2, 0x14,
+
  0x7f, 0xfa, 0x32, 0x98, 0xf8, 0x61, 0xa8, 0xb8, 0x64, 0x93, 0x6f, 0xa3,
+
  0xdc, 0x38, 0x2a, 0x79, 0x39, 0x3a, 0x15, 0x08, 0xab, 0x8b, 0x79, 0x78,
+
  0xdd, 0xe4, 0xf8, 0xf5, 0x8f, 0x34, 0xae, 0x33, 0xa0, 0x4c, 0xf6, 0xcc,
+
  0x99, 0xad, 0x1b, 0x3b, 0xac, 0xda, 0xb2, 0x92, 0x79, 0x24, 0x9c, 0xf8,
+
  0x65, 0x55, 0x40, 0x28, 0x9b, 0x4e, 0x12, 0x91, 0x58, 0x8a, 0xa6, 0xc5,
+
  0x16, 0x24, 0x4d, 0xec, 0x50, 0x9d, 0xb3, 0x37, 0x8c, 0xca, 0x4a, 0x14,
+
  0xa7, 0x09, 0x50, 0x3e, 0x03, 0x8a, 0xcc, 0xde, 0x2a, 0xa9, 0x27, 0x46,
+
  0xaa, 0x38, 0xc4, 0x7e, 0xd2, 0xc2, 0xe4, 0x44, 0x8a, 0x49, 0x93, 0xf9,
+
  0xfb, 0x61, 0xb5, 0xbb, 0x7b, 0x90, 0xbc, 0x7d, 0x73, 0xc2, 0x82, 0x3b,
+
  0x4e, 0xae, 0xa1, 0xda, 0xca, 0x92, 0x37, 0x45, 0xaa, 0x40, 0x91, 0xbc,
+
  0xf8, 0xe1, 0xba, 0x77, 0x32, 0xd5, 0xfd, 0x22, 0x95, 0xbd, 0xff, 0x71,
+
  0xa1, 0x08, 0x1f, 0xcf, 0x6f, 0xad, 0x23, 0x64, 0x11, 0x6b, 0x90, 0xec,
+
  0xc7, 0xf3, 0xdd, 0xac, 0xac, 0x23, 0x82, 0xe5, 0xd3, 0x1d, 0xcd, 0x36,
+
  0x9f, 0x5f, 0x61, 0x00, 0xd6, 0x53, 0x07, 0x75, 0xce, 0xda, 0xb0, 0x13,
+
  0x9e, 0xe4, 0x99, 0x35, 0xa5, 0x27, 0xc5, 0x68, 0x92, 0xb4, 0x52, 0x7a,
+
  0x99, 0x0c, 0x59, 0x59, 0xa5, 0xd2, 0x76, 0xae, 0x50, 0x48, 0x96, 0xc4,
+
  0x88, 0x7b, 0x47, 0xc0, 0xb5, 0x4d, 0x3a, 0xe7, 0x53, 0x80, 0x39, 0xc2,
+
  0x0a, 0xd5, 0x5a, 0x31, 0x99, 0xee, 0xf6, 0xf7, 0x92, 0xcd, 0xdd, 0xfe,
+
  0x2e, 0xf0, 0xc1, 0x5d, 0x52, 0x21, 0x2f, 0x34, 0x0c, 0x0b, 0x8f, 0x97,
+
  0x8c, 0x59, 0xad, 0xce, 0xb9, 0x49, 0x47, 0x1a, 0x70, 0x0d, 0x9b, 0x96,
+
  0x8f, 0xf4, 0xb1, 0x7e, 0xf2, 0x06, 0xa3, 0x48, 0x17, 0x18, 0x7d, 0x14,
+
  0x8d, 0xd8, 0xa2, 0x0d, 0x1c, 0x84, 0x13, 0x90, 0xc5, 0xdb, 0x37, 0x2f,
+
  0x35, 0x5c, 0x4d, 0xb7, 0x83, 0x6c, 0xe2, 0x55, 0xb6, 0x3d, 0x2a, 0x86,
+
  0xd5, 0x36, 0x99, 0x2d, 0xa5, 0xe9, 0xab, 0x7a, 0x3a, 0x61, 0xb9, 0xa0,
+
  0x65, 0xd9, 0x93, 0x2f, 0xea, 0xf1, 0x75, 0x1d, 0x1d, 0x1f, 0x3d, 0x7b,
+
  0x71, 0xdc, 0x83, 0x9f, 0xe7, 0x87, 0xbd, 0xc3, 0xe3, 0xf3, 0xdd, 0xbd,
+
  0x27, 0xbd, 0x1f, 0x8f, 0x5e, 0xf5, 0xce, 0x5f, 0x1c, 0xee, 0x3d, 0x7a,
+
  0x7c, 0xc0, 0x94, 0xc5, 0xcf, 0xbc, 0x69, 0x7b, 0xe2, 0x33, 0x10, 0x63,
+
  0x3d, 0xa9, 0x76, 0xf7, 0x75, 0x3c, 0x5d, 0x47, 0x56, 0x8e, 0x40, 0x9b,
+
  0xc4, 0x59, 0x4e, 0x42, 0x41, 0xe1, 0xef, 0xbc, 0x89, 0x2a, 0x73, 0x60,
+
  0x75, 0xc4, 0x83, 0xd2, 0xc4, 0x5d, 0xb4, 0xe4, 0xcc, 0x61, 0xa5, 0x53,
+
  0xad, 0x66, 0xc9, 0x51, 0xe0, 0xac, 0xe2, 0x5a, 0xcc, 0xae, 0x35, 0x93,
+
  0x22, 0x79, 0x49, 0x81, 0x75, 0xec, 0x1c, 0x09, 0x40, 0xe5, 0x9c, 0x3d,
+
  0x1d, 0xe7, 0x0b, 0x9b, 0xdb, 0x29, 0x38, 0x47, 0x28, 0xbf, 0x69, 0x44,
+
  0xb2, 0x69, 0x09, 0x6d, 0x22, 0x02, 0x45, 0x8b, 0xbc, 0xa1, 0xc6, 0x75,
+
  0x2f, 0x69, 0xb4, 0xb2, 0xb0, 0x9e, 0x4d, 0x9b, 0xae, 0x55, 0xb2, 0x5b,
+
  0xe8, 0xa9, 0x6b, 0x3d, 0x76, 0x2d, 0x2c, 0x4c, 0x1a, 0xb8, 0x4b, 0x66,
+
  0x34, 0x2b, 0xf9, 0x6f, 0x62, 0x61, 0xd2, 0x51, 0x99, 0xfd, 0x4a, 0x51,
+
  0x28, 0xbf, 0x4d, 0x2d, 0x0c, 0x33, 0x5f, 0x4d, 0x12, 0x6c, 0xcd, 0x6b,
+
  0x18, 0x62, 0x9f, 0x29, 0x6e, 0x73, 0x6c, 0xf2, 0xfc, 0x14, 0x43, 0xac,
+
  0x81, 0x40, 0xb7, 0x18, 0x62, 0xb5, 0x1b, 0x89, 0x4a, 0x68, 0x31, 0xc4,
+
  0x2e, 0xdb, 0x4f, 0xa5, 0xb5, 0xcf, 0x63, 0x40, 0x95, 0xc6, 0xfe, 0xdd,
+
  0x16, 0xd4, 0x36, 0xff, 0x05, 0x23, 0xaa, 0x25, 0x4f, 0xf9, 0xdf, 0xed,
+
  0xef, 0xdd, 0x09, 0x95, 0x34, 0xb2, 0x63, 0x9a, 0x9c, 0x3c, 0x87, 0x81,
+
  0x7d, 0x52, 0xe2, 0x56, 0x78, 0xbf, 0x06, 0x4d, 0xd0, 0x26, 0x69, 0xd6,
+
  0x3a, 0xaf, 0xb3, 0x5a, 0x58, 0x52, 0xdd, 0x18, 0x85, 0x6e, 0xb5, 0x64,
+
  0x99, 0x18, 0x6d, 0x20, 0x73, 0x3d, 0x29, 0xd6, 0x7b, 0xee, 0xeb, 0x52,
+
  0x38, 0xa9, 0xb5, 0xb0, 0x3a, 0x46, 0x3d, 0x9d, 0x03, 0x1d, 0x33, 0x41,
+
  0x37, 0xd5, 0x93, 0x65, 0x34, 0x83, 0xdc, 0x01, 0x8f, 0xa0, 0x22, 0xb6,
+
  0x12, 0xd2, 0x6d, 0x72, 0x74, 0xfa, 0xfa, 0xf5, 0xf1, 0xd1, 0x45, 0x33,
+
  0xbd, 0xcd, 0x50, 0xd9, 0x3d, 0xea, 0xb6, 0xf4, 0x52, 0x89, 0xd1, 0x27,
+
  0xa8, 0x98, 0xe6, 0xf1, 0xa6, 0x10, 0x2f, 0xd2, 0x13, 0x67, 0x06, 0x39,
+
  0x9c, 0x0e, 0x11, 0xbf, 0x5c, 0x69, 0x8c, 0x49, 0x4c, 0xd8, 0x0d, 0x52,
+
  0x04, 0xfb, 0xf0, 0x2a, 0x14, 0xbb, 0x88, 0x1d, 0x71, 0xd0, 0xb6, 0x74,
+
  0x85, 0xc3, 0x48, 0x47, 0xa3, 0x6d, 0x41, 0xf7, 0xb5, 0xa6, 0xcd, 0x73,
+
  0x1c, 0x90, 0xf8, 0x49, 0x01, 0x19, 0xf5, 0x8a, 0x71, 0x8f, 0xd2, 0x1d,
+
  0xa6, 0x69, 0xf9, 0x1e, 0x73, 0x33, 0x3d, 0xf0, 0x3d, 0x16, 0x8a, 0x21,
+
  0xcd, 0x03, 0x9a, 0x94, 0x72, 0x89, 0x9c, 0xe3, 0x90, 0x6a, 0x5d, 0x2d,
+
  0x09, 0xe9, 0x94, 0xde, 0x99, 0x2f, 0xcd, 0xea, 0x03, 0xf3, 0xfa, 0xe1,
+
  0x8b, 0xb3, 0xec, 0x06, 0x7b, 0x60, 0x08, 0x91, 0x21, 0x16, 0xe6, 0xc4,
+
  0xe4, 0x08, 0x98, 0x5f, 0xbd, 0x28, 0x67, 0xae, 0x70, 0xc2, 0x2d, 0x33,
+
  0x3c, 0xac, 0xf8, 0x94, 0x50, 0xe5, 0x9e, 0x0a, 0x6f, 0x65, 0x81, 0xb5,
+
  0xd7, 0x25, 0x78, 0xc1, 0x5b, 0xdd, 0x0c, 0x14, 0x8a, 0xab, 0x9e, 0xa1,
+
  0x20, 0x4c, 0x3e, 0x47, 0x21, 0x3c, 0x66, 0xa0, 0x71, 0xa2, 0x62, 0xc0,
+
  0xdd, 0xc3, 0xa8, 0x8d, 0xca, 0xde, 0xc1, 0xb4, 0x04, 0xd9, 0x8c, 0xb4,
+
  0x19, 0xb5, 0xd4, 0xa8, 0x96, 0x51, 0x63, 0x2a, 0x4b, 0x4a, 0xfd, 0x5d,
+
  0x12, 0xa8, 0x33, 0x76, 0xf3, 0x7d, 0xb8, 0x9d, 0x28, 0x01, 0xc0, 0xa2,
+
  0xc1, 0x6a, 0x73, 0xd5, 0xc1, 0xa2, 0xe0, 0x32, 0xca, 0xa2, 0x69, 0x11,
+
  0x6b, 0xce, 0x3a, 0x91, 0x23, 0x92, 0xcf, 0x10, 0x23, 0x8f, 0xec, 0x6d,
+
  0x52, 0xc1, 0xf4, 0xfb, 0x5e, 0xe2, 0xdc, 0xb7, 0xea, 0xaa, 0x4b, 0x47,
+
  0x6e, 0xfd, 0x2b, 0x76, 0x5a, 0x54, 0x35, 0x1c, 0xa8, 0xb6, 0x41, 0x07,
+
  0xbf, 0x79, 0x23, 0x02, 0x58, 0x6d, 0xda, 0x94, 0x6c, 0x10, 0xa8, 0x67,
+
  0x9b, 0x02, 0xde, 0x9b, 0x06, 0x70, 0x3b, 0x6c, 0x0d, 0x7e, 0x10, 0x87,
+
  0x17, 0xc7, 0x2a, 0x9d, 0x77, 0x6f, 0xac, 0x5b, 0xeb, 0xb9, 0xd1, 0x7c,
+
  0xe7, 0x2f, 0xbd, 0xe7, 0x98, 0x06, 0xd8, 0x7b, 0x0d, 0x6b, 0x7b, 0x90,
+
  0xfc, 0x57, 0x81, 0x18, 0xa7, 0x1f, 0x22, 0x6f, 0xed, 0x1d, 0xbc, 0xef,
+
  0x8e, 0x76, 0x31, 0x52, 0xa2, 0x77, 0x78, 0x49, 0x64, 0x0b, 0xa7, 0x0a,
+
  0xb4, 0xe1, 0xea, 0x73, 0x35, 0xfd, 0x02, 0xce, 0xee, 0xc1, 0x72, 0x5b,
+
  0x9f, 0x50, 0xd6, 0x43, 0xda, 0xc5, 0x72, 0x6d, 0x11, 0xa7, 0x7d, 0xdd,
+
  0x2c, 0x7b, 0xd7, 0x26, 0x6b, 0xb8, 0x78, 0x3b, 0xf6, 0xfb, 0x32, 0x34,
+
  0x87, 0xca, 0xb5, 0x18, 0xc7, 0x4e, 0xe5, 0x5f, 0xa9, 0x89, 0x5d, 0x45,
+
  0x8a, 0x16, 0x9f, 0x0c, 0x3c, 0x8a, 0x01, 0x68, 0x24, 0xbd, 0xb3, 0xb1,
+
  0x0f, 0xce, 0x8d, 0x04, 0x3f, 0x45, 0x44, 0x16, 0x1c, 0x22, 0x1c, 0x31,
+
  0xce, 0xb2, 0x19, 0xb2, 0x6b, 0xb6, 0x76, 0x60, 0x09, 0x8e, 0xca, 0xf2,
+
  0x24, 0xc8, 0xf3, 0xd8, 0x96, 0x62, 0x1b, 0x26, 0xfa, 0x51, 0xb5, 0xd2,
+
  0x56, 0xa7, 0xd8, 0x86, 0x06, 0xd7, 0xb9, 0x67, 0xb9, 0x67, 0xbb, 0x4d,
+
  0xef, 0xaa, 0x58, 0xe1, 0x5f, 0xb0, 0xc2, 0x15, 0xab, 0x2a, 0xf3, 0xf9,
+
  0xd2, 0x15, 0xb2, 0x57, 0xfd, 0x25, 0xa7, 0xcd, 0x6e, 0x13, 0xea, 0xaa,
+
  0x85, 0x06, 0xd4, 0x31, 0xd3, 0x34, 0x73, 0xeb, 0xe7, 0xeb, 0xaa, 0x6a,
+
  0xc7, 0x58, 0xca, 0x24, 0x91, 0x77, 0x9c, 0x36, 0xe6, 0xee, 0x18, 0x18,
+
  0xbc, 0xa1, 0xb7, 0x48, 0xc2, 0x96, 0xa8, 0xfb, 0x1e, 0x76, 0x26, 0x4e,
+
  0x71, 0x23, 0xa6, 0x88, 0xe2, 0x33, 0x32, 0x10, 0xc9, 0xc3, 0x0e, 0xc1,
+
  0xe0, 0xdc, 0xae, 0x58, 0x71, 0xab, 0xf7, 0x98, 0xc3, 0x16, 0x2e, 0x25,
+
  0xee, 0x4b, 0x6e, 0xde, 0xaa, 0xce, 0xe6, 0x2e, 0x89, 0x56, 0x72, 0x0c,
+
  0xc9, 0xf2, 0x2c, 0x3c, 0x1f, 0xc3, 0x5b, 0x86, 0x57, 0xd9, 0xf0, 0xbd,
+
  0xab, 0xd9, 0xfc, 0x13, 0x63, 0xd0, 0x44, 0x40, 0x8c, 0x62, 0x3c, 0x13,
+
  0x9e, 0x47, 0x11, 0xf8, 0xe6, 0x5d, 0xf1, 0x06, 0x96, 0xae, 0x2f, 0x7c,
+
  0x2a, 0xf3, 0xae, 0xc2, 0x6d, 0xbd, 0x51, 0x91, 0xea, 0xe9, 0xad, 0x34,
+
  0x92, 0xe4, 0x9c, 0x53, 0x6a, 0x32, 0xd5, 0xb2, 0xad, 0x0e, 0x44, 0x45,
+
  0x08, 0x20, 0x09, 0xee, 0x79, 0x33, 0x22, 0x93, 0x10, 0xc4, 0xc1, 0x62,
+
  0xa1, 0xf4, 0x83, 0xd6, 0xf4, 0xd2, 0x58, 0x4e, 0x81, 0xe3, 0x0e, 0x21,
+
  0x47, 0x02, 0x69, 0xe8, 0x5b, 0xa4, 0x33, 0x87, 0x86, 0xf9, 0xc4, 0x95,
+
  0xe8, 0x49, 0x1b, 0xf6, 0x69, 0x8a, 0xcf, 0xac, 0x0c, 0x65, 0x55, 0x15,
+
  0x70, 0x34, 0x10, 0x88, 0xfb, 0x93, 0x68, 0x8e, 0x6f, 0xd0, 0x19, 0xdd,
+
  0x42, 0x88, 0x55, 0x0e, 0x1a, 0xf9, 0x90, 0xea, 0x44, 0x24, 0xe3, 0x45,
+
  0xc9, 0xe0, 0x93, 0xa2, 0x10, 0x1f, 0xdc, 0xad, 0xfe, 0x62, 0xcb, 0xac,
+
  0xfb, 0xea, 0xae, 0x1c, 0xbe, 0x79, 0x7d, 0xf2, 0xfa, 0xc7, 0x03, 0x5b,
+
  0xef, 0xba, 0x8d, 0x28, 0x9a, 0x74, 0x54, 0x2c, 0xc7, 0x6f, 0x05, 0x50,
+
  0xa2, 0x65, 0x69, 0xdb, 0xe8, 0xff, 0x73, 0x61, 0x9c, 0x46, 0xad, 0xae,
+
  0xc3, 0x3a, 0x6c, 0x04, 0xbf, 0xc1, 0xe0, 0x28, 0xc2, 0xf7, 0x0a, 0xef,
+
  0x2b, 0x81, 0x85, 0xc1, 0x8f, 0xef, 0xee, 0x44, 0x70, 0x27, 0xc6, 0x4b,
+
  0x06, 0x15, 0x33, 0xed, 0x32, 0x8a, 0x55, 0x64, 0x54, 0x64, 0xb3, 0xe3,
+
  0x12, 0x91, 0x4a, 0x70, 0x48, 0xb0, 0xc7, 0x38, 0x3f, 0x6d, 0x64, 0x13,
+
  0xa6, 0x4e, 0x83, 0x74, 0x6d, 0x59, 0xed, 0x0c, 0x58, 0xd7, 0xee, 0xd4,
+
  0x6c, 0x31, 0xc0, 0xc5, 0x93, 0xfb, 0xc2, 0x16, 0x11, 0xec, 0x82, 0xe2,
+
  0x55, 0x7f, 0xc3, 0x0e, 0x61, 0x23, 0x6c, 0xba, 0x5b, 0xad, 0xa9, 0xda,
+
  0x23, 0x91, 0x0d, 0x58, 0x76, 0x2b, 0x86, 0x20, 0xe4, 0x9d, 0x11, 0x2f,
+
  0x39, 0x59, 0x2e, 0x79, 0xe7, 0xa2, 0x55, 0x89, 0xb3, 0x5a, 0xe2, 0x57,
+
  0x31, 0xac, 0xa1, 0x9f, 0xb0, 0x31, 0x98, 0xed, 0xc2, 0x6c, 0x80, 0x45,
+
  0xdb, 0x29, 0x07, 0xc8, 0x3a, 0x3c, 0x29, 0x5a, 0x70, 0xab, 0x90, 0xe7,
+
  0xfc, 0x09, 0x68, 0x40, 0x61, 0xf4, 0x7c, 0x8c, 0x20, 0x5e, 0x69, 0x60,
+
  0xb5, 0x89, 0xc5, 0x76, 0xff, 0xb5, 0x7d, 0xd6, 0xf6, 0xfe, 0x1d, 0xf6,
+
  0xd5, 0xcf, 0x62, 0x60, 0xb5, 0x8e, 0x10, 0x5c, 0xec, 0xfe, 0xed, 0xff,
+
  0x68, 0x8b, 0x56, 0xc3, 0x1d, 0xd0, 0xd8, 0x7f, 0xb3, 0x57, 0x36, 0x8c,
+
  0x15, 0x41, 0x5a, 0xdb, 0x3c, 0x3f, 0x7b, 0x7d, 0xfc, 0xe3, 0xe9, 0xd6,
+
  0xba, 0x76, 0x8b, 0x70, 0xd5, 0x72, 0x40, 0x9f, 0xcf, 0x60, 0x88, 0x8a,
+
  0x59, 0x25, 0x0d, 0xeb, 0x85, 0xc4, 0x91, 0xbd, 0x8e, 0x47, 0x64, 0xdd,
+
  0xb7, 0xd9, 0x33, 0x5a, 0x98, 0xab, 0x6b, 0xfe, 0x33, 0xc6, 0xf8, 0x85,
+
  0x56, 0x3f, 0xbf, 0x59, 0x43, 0xad, 0x19, 0x77, 0x45, 0xfb, 0x61, 0xec,
+
  0x46, 0x3e, 0x6c, 0x54, 0x53, 0x0f, 0x95, 0xa5, 0x9a, 0x21, 0x7f, 0x6d,
+
  0xc5, 0xf2, 0x84, 0xa7, 0xb6, 0xd8, 0xfb, 0xee, 0xb6, 0x34, 0x51, 0x6d,
+
  0x22, 0xd2, 0xfc, 0x6c, 0xa3, 0xa8, 0xf9, 0x78, 0x3f, 0x78, 0x3b, 0x56,
+
  0x09, 0xc9, 0x9f, 0xa5, 0x50, 0x9b, 0x6b, 0xea, 0xae, 0x4d, 0x58, 0x53,
+
  0x17, 0x5a, 0xb1, 0x17, 0xae, 0xd4, 0xda, 0x5d, 0xc6, 0xa6, 0x18, 0xdf,
+
  0x94, 0x3e, 0x6a, 0xc1, 0x76, 0x75, 0x88, 0xae, 0x21, 0x4e, 0xc7, 0x3c,
+
  0x98, 0xf4, 0x59, 0x24, 0xf6, 0xb2, 0x7b, 0xcd, 0x5d, 0x71, 0xab, 0x23,
+
  0x72, 0xa8, 0x37, 0x7f, 0x75, 0xdd, 0xc9, 0xdc, 0x96, 0xb8, 0xdb, 0x12,
+
  0x86, 0x6c, 0xbb, 0xb7, 0xbe, 0x59, 0x20, 0xeb, 0xe3, 0xb9, 0x5b, 0x0c,
+
  0x27, 0xfb, 0xb9, 0x99, 0xdb, 0x3d, 0x6e, 0xa3, 0x7f, 0x0b, 0x74, 0xa9,
+
  0x0b, 0x55, 0x8e, 0xb1, 0x4b, 0xef, 0x80, 0x2e, 0xd5, 0xc0, 0xc9, 0xff,
+
  0x0f, 0xba, 0xf4, 0x7f, 0x4f, 0xe8, 0xd2, 0x1f, 0x04, 0x53, 0x8a, 0x5a,
+
  0x05, 0x65, 0x79, 0xa7, 0xbf, 0xd3, 0xd0, 0x24, 0x46, 0xf9, 0x28, 0xe4,
+
  0x1a, 0x24, 0xa3, 0x45, 0xa6, 0x85, 0x38, 0x07, 0x8b, 0xcb, 0x16, 0x69,
+
  0xa4, 0x89, 0xab, 0xb9, 0x96, 0xd0, 0x79, 0x7f, 0x51, 0xbb, 0x76, 0x33,
+
  0xd6, 0x27, 0xa2, 0x6b, 0x2e, 0xbf, 0xfb, 0xb9, 0x30, 0x36, 0xa3, 0x46,
+
  0x57, 0xcb, 0x32, 0xfe, 0x92, 0x4c, 0x9e, 0xe2, 0x4f, 0x1f, 0xd3, 0x70,
+
  0xc5, 0x11, 0x90, 0xf9, 0x30, 0xe3, 0xaa, 0xd2, 0xc4, 0x7e, 0x59, 0xb8,
+
  0x48, 0x7c, 0x29, 0x0f, 0x61, 0x9e, 0x8d, 0xc2, 0x89, 0x31, 0x02, 0x40,
+
  0xb3, 0xb3, 0x8f, 0x88, 0x7b, 0xfa, 0xc4, 0x18, 0x91, 0xa8, 0xbb, 0x4e,
+
  0x75, 0x55, 0x2e, 0x06, 0xc0, 0x0a, 0x6e, 0x3b, 0x9f, 0x24, 0x76, 0xf8,
+
  0xc6, 0xba, 0xad, 0xbc, 0xd4, 0xae, 0xc1, 0xe6, 0x12, 0x57, 0x93, 0x1e,
+
  0xc5, 0xbc, 0x61, 0xe5, 0x43, 0xf5, 0x70, 0x09, 0x9e, 0x37, 0x51, 0x72,
+
  0x4a, 0x19, 0x18, 0xe4, 0x59, 0xe0, 0xfc, 0xe1, 0x64, 0x3c, 0x49, 0x6f,
+
  0x54, 0x93, 0x07, 0x5e, 0xb2, 0x0b, 0x47, 0x21, 0xa4, 0x63, 0x0a, 0xda,
+
  0x85, 0x5c, 0x2a, 0x3f, 0x1c, 0x1f, 0x9e, 0x5f, 0xb4, 0x09, 0x96, 0x0e,
+
  0x90, 0xcd, 0xb4, 0x3c, 0x0d, 0x61, 0x73, 0xb1, 0x3f, 0xa6, 0x2e, 0x70,
+
  0x02, 0x53, 0x08, 0x16, 0xc1, 0x8b, 0xec, 0x56, 0x30, 0xfb, 0xb4, 0x96,
+
  0x3c, 0x0e, 0x97, 0x47, 0x8b, 0x0e, 0x6e, 0xc9, 0x87, 0xa4, 0x68, 0x3d,
+
  0xca, 0x35, 0x31, 0x8c, 0xc0, 0x8c, 0x1c, 0x10, 0xe9, 0x80, 0x43, 0x05,
+
  0xa1, 0x73, 0xd0, 0xc2, 0xa7, 0xa2, 0x7b, 0x56, 0x05, 0x96, 0x65, 0x9a,
+
  0xb0, 0xe7, 0x84, 0x18, 0xa1, 0xd5, 0xfb, 0x4d, 0x1b, 0x55, 0x2e, 0x5d,
+
  0x56, 0x23, 0x9a, 0x31, 0x19, 0xb1, 0xa0, 0xc2, 0x18, 0x15, 0x41, 0x2a,
+
  0x43, 0x46, 0xc6, 0x11, 0x03, 0x3b, 0x21, 0xc7, 0xc9, 0xcd, 0x38, 0xd4,
+
  0xa4, 0x50, 0xc9, 0x89, 0x8d, 0x97, 0xd0, 0x22, 0x43, 0xa8, 0xe0, 0xcb,
+
  0x9a, 0xea, 0xd9, 0x6f, 0xda, 0x33, 0xfc, 0x52, 0x4d, 0x8a, 0x02, 0xb8,
+
  0x98, 0xd8, 0x31, 0xf0, 0x2d, 0xdd, 0x2b, 0x51, 0xc8, 0x2c, 0xe9, 0x8d,
+
  0xde, 0x12, 0x46, 0x3c, 0x49, 0x2f, 0xd9, 0x65, 0x53, 0xbd, 0x67, 0x69,
+
  0x50, 0xf8, 0x2d, 0xe1, 0xa0, 0xaf, 0x70, 0x11, 0x37, 0xa8, 0x25, 0x89,
+
  0x0c, 0x7e, 0xed, 0x8a, 0x76, 0xd3, 0x43, 0xb9, 0x8a, 0xf2, 0xee, 0x0d,
+
  0x73, 0xff, 0x48, 0xeb, 0x49, 0xa3, 0xf9, 0xb5, 0x8e, 0x64, 0x63, 0x44,
+
  0x9f, 0xa6, 0xa9, 0x37, 0x5b, 0xb9, 0x83, 0xbd, 0xe1, 0x93, 0x8b, 0xba,
+
  0xe8, 0xb1, 0x9c, 0x48, 0x71, 0x33, 0x4d, 0xd3, 0x6a, 0xdb, 0x33, 0xeb,
+
  0x9a, 0x59, 0xd9, 0xfe, 0x29, 0x85, 0x82, 0x0c, 0xef, 0xc7, 0x29, 0xe5,
+
  0x14, 0xb0, 0xce, 0x9f, 0x69, 0xcc, 0x54, 0x3f, 0x49, 0x92, 0x95, 0x52,
+
  0x7f, 0xeb, 0x60, 0xd6, 0x03, 0xa4, 0x14, 0xc6, 0xb2, 0xd6, 0xae, 0x35,
+
  0x7a, 0x58, 0x7b, 0xeb, 0x9a, 0x23, 0xfb, 0x68, 0x69, 0xd4, 0x17, 0xf9,
+
  0xfa, 0xba, 0x61, 0x0f, 0x6f, 0xed, 0x61, 0xf5, 0xde, 0x46, 0x61, 0x27,
+
  0x77, 0x86, 0x39, 0xc5, 0x4f, 0xfe, 0xdf, 0x26, 0xd8, 0x89, 0xb8, 0xec,
+
  0x6e, 0x7f, 0x3f, 0x0e, 0x70, 0xd2, 0x61, 0x4a, 0x57, 0x2e, 0xf1, 0xe1,
+
  0x9e, 0x00, 0x27, 0xe4, 0x6a, 0xcc, 0x0c, 0xf7, 0xe3, 0x48, 0x27, 0xb1,
+
  0xeb, 0x86, 0xfc, 0x9b, 0x4f, 0x8a, 0x74, 0x5a, 0x11, 0x3b, 0x4a, 0x2b,
+
  0x29, 0x6a, 0xf2, 0x52, 0x35, 0x6f, 0x9f, 0x44, 0x04, 0xe3, 0x82, 0xff,
+
  0x06, 0x6c, 0x50, 0x62, 0xc0, 0x3e, 0xff, 0xdf, 0x10, 0xd8, 0xb1, 0x14,
+
  0x85, 0x20, 0xc0, 0xef, 0xf7, 0x1f, 0xf7, 0x29, 0x89, 0x98, 0x9e, 0x6e,
+
  0x13, 0x15, 0x45, 0x52, 0x24, 0x2a, 0xd7, 0xb7, 0xf0, 0x05, 0x6b, 0xad,
+
  0xb1, 0x24, 0xb2, 0xae, 0xe2, 0x47, 0xa2, 0x8a, 0x6a, 0x52, 0xe1, 0x4b,
+
  0xce, 0xa9, 0xb0, 0x71, 0x01, 0xe6, 0x6a, 0x8b, 0xeb, 0x52, 0x3c, 0x95,
+
  0x16, 0x1d, 0x31, 0xa6, 0xb4, 0x76, 0x65, 0xb1, 0x45, 0x5b, 0xfc, 0x0d,
+
  0x42, 0x4e, 0xdc, 0x23, 0x4c, 0xf6, 0xdd, 0xe1, 0xf1, 0xf9, 0xbb, 0xdd,
+
  0xbd, 0x27, 0xef, 0x7e, 0x3c, 0x7a, 0xf5, 0x2e, 0xc4, 0x78, 0x7d, 0xe4,
+
  0xf1, 0x44, 0xb8, 0x94, 0xdd, 0x38, 0xc9, 0xa8, 0xb9, 0x14, 0x94, 0xd2,
+
  0x11, 0x77, 0x7f, 0x5f, 0x22, 0x07, 0x3c, 0x8d, 0x32, 0x62, 0x6b, 0x00,
+
  0x2d, 0xee, 0x53, 0xd3, 0xfc, 0x42, 0x0f, 0xd2, 0xd6, 0x7a, 0x2d, 0x9d,
+
  0xcf, 0x0b, 0xf3, 0x5a, 0x63, 0xb4, 0x11, 0x1a, 0x30, 0xac, 0x5f, 0xe7,
+
  0xfc, 0xcd, 0x59, 0xa7, 0x4b, 0xd7, 0x2e, 0xb4, 0xdc, 0x83, 0xbf, 0x92,
+
  0x4d, 0x84, 0x3d, 0x7e, 0xb4, 0xf3, 0xe8, 0xe1, 0x56, 0xbf, 0x25, 0x29,
+
  0x8e, 0x1b, 0xf4, 0x99, 0x02, 0x20, 0xe6, 0x64, 0x25, 0x03, 0x77, 0xb9,
+
  0x5a, 0xf5, 0x4c, 0xdc, 0x34, 0x28, 0x6d, 0x58, 0x06, 0xb1, 0xea, 0x4a,
+
  0xf7, 0xb3, 0x8e, 0x23, 0x57, 0x23, 0xdb, 0xc3, 0x6a, 0xbb, 0xaa, 0x6f,
+
  0x60, 0xad, 0xc0, 0xea, 0x4f, 0x2a, 0xcf, 0xbd, 0xdc, 0x17, 0xce, 0xed,
+
  0xb3, 0x84, 0x57, 0x43, 0xa3, 0x0b, 0x45, 0x2c, 0x70, 0x9f, 0xb9, 0x9c,
+
  0xfa, 0xc6, 0x74, 0x2d, 0x3a, 0xfe, 0x29, 0x23, 0x16, 0x38, 0x3a, 0x09,
+
  0x88, 0x07, 0x5c, 0xd2, 0xd2, 0x05, 0x7e, 0xb5, 0x90, 0x90, 0xa6, 0x52,
+
  0x9b, 0xb5, 0x22, 0x72, 0x20, 0x2f, 0x4f, 0x39, 0xf2, 0xa2, 0xc4, 0x44,
+
  0x07, 0x8c, 0xd6, 0x7b, 0x81, 0x97, 0xb6, 0x88, 0x66, 0xc8, 0x49, 0x21,
+
  0x77, 0x02, 0x6f, 0x91, 0xcc, 0xaf, 0xf4, 0x43, 0xfc, 0x7f, 0x35, 0xdd,
+
  0x84, 0x2c, 0x81, 0x4f, 0xa4, 0x1b, 0x6b, 0xe0, 0xdf, 0x40, 0x37, 0xd6,
+
  0x57, 0x6c, 0x58, 0xfc, 0x4c, 0xa6, 0x2a, 0x59, 0xe1, 0x65, 0x5a, 0xa1,
+
  0x75, 0x6f, 0xaa, 0xae, 0xf8, 0xa1, 0x69, 0xac, 0x0b, 0x2d, 0x0f, 0x15,
+
  0x89, 0xcf, 0x46, 0x37, 0x5c, 0x04, 0x24, 0xa2, 0x1b, 0x09, 0x8a, 0xd1,
+
  0x3c, 0x7c, 0x97, 0x2d, 0x26, 0xe6, 0xdf, 0x36, 0xe2, 0xe9, 0x27, 0x9e,
+
  0x46, 0x56, 0x50, 0x89, 0x2d, 0x12, 0x4d, 0x74, 0x35, 0xb9, 0xb8, 0xd2,
+
  0xaf, 0x44, 0x30, 0x81, 0x62, 0x58, 0x64, 0xf0, 0xbe, 0x35, 0x5d, 0x84,
+
  0x2f, 0xec, 0x5f, 0xd3, 0x6e, 0xaa, 0x29, 0x9d, 0x9e, 0xdf, 0xec, 0x06,
+
  0x5d, 0x83, 0x0f, 0x5c, 0xef, 0x06, 0x33, 0x3d, 0x06, 0x5e, 0x90, 0xb8,
+
  0xef, 0x94, 0x36, 0x58, 0x8b, 0x0f, 0x7c, 0x64, 0xbd, 0x09, 0xae, 0x4d,
+
  0x15, 0xec, 0xeb, 0x12, 0xa7, 0x0a, 0x00, 0x13, 0x37, 0x43, 0x52, 0xc6,
+
  0x55, 0x7e, 0x09, 0xf7, 0xd8, 0xea, 0xe3, 0x78, 0xbd, 0xcb, 0x07, 0x51,
+
  0x82, 0x5f, 0x56, 0x9d, 0xc3, 0x15, 0xb2, 0x3d, 0x37, 0xf0, 0x79, 0x4c,
+
  0xfa, 0xdc, 0xd6, 0x6f, 0xd8, 0x03, 0x5d, 0xeb, 0xb7, 0xdd, 0xd8, 0x33,
+
  0xf0, 0x34, 0xb8, 0x06, 0x60, 0x47, 0x5a, 0x5c, 0xd1, 0x76, 0xb2, 0x62,
+
  0xf8, 0x19, 0x16, 0xf6, 0x42, 0xa4, 0x65, 0xd3, 0x16, 0x64, 0xc6, 0x20,
+
  0xaa, 0x0f, 0xc6, 0x08, 0x4c, 0x21, 0x13, 0x3c, 0x39, 0x3f, 0x3f, 0x3b,
+
  0xe9, 0x31, 0x04, 0x9b, 0x40, 0x19, 0x58, 0x45, 0x71, 0xf2, 0x77, 0x62,
+
  0xc4, 0x61, 0x96, 0x63, 0x9c, 0x82, 0x94, 0x31, 0x33, 0xe7, 0x12, 0xf4,
+
  0xd8, 0xe6, 0xba, 0x61, 0x98, 0x78, 0xc3, 0xde, 0xc1, 0x7a, 0x64, 0x0a,
+
  0xa4, 0x09, 0xd4, 0x3f, 0x81, 0x65, 0x76, 0x17, 0xbd, 0x9f, 0x52, 0x98,
+
  0x13, 0x63, 0xc0, 0x92, 0x38, 0xef, 0xa1, 0x65, 0x28, 0xb9, 0x33, 0x60,
+
  0xc8, 0x35, 0xf2, 0xfa, 0x1d, 0xc6, 0x8d, 0xb3, 0x1f, 0x1c, 0x24, 0x9d,
+
  0xde, 0xdb, 0xe4, 0xa0, 0xa3, 0xeb, 0x70, 0x3a, 0x93, 0x84, 0xfd, 0x0a,
+
  0xa9, 0xb7, 0xe4, 0x74, 0x72, 0x92, 0x43, 0x14, 0x4d, 0xf1, 0x8a, 0x30,
+
  0x9c, 0x5c, 0x21, 0xb7, 0x10, 0xfd, 0xc8, 0xd1, 0x88, 0xce, 0xd8, 0x2b,
+
  0x19, 0x9b, 0xa4, 0x42, 0x60, 0x60, 0xa5, 0xba, 0xf3, 0x15, 0xa1, 0x2e,
+
  0x9b, 0x31, 0xe2, 0x10, 0x23, 0xbf, 0x53, 0xa1, 0x92, 0x61, 0x99, 0x8d,
+
  0x18, 0xbf, 0xb4, 0xf2, 0x0d, 0x15, 0x55, 0x95, 0x0f, 0x40, 0x0c, 0xba,
+
  0x54, 0x58, 0xa7, 0x0a, 0xa3, 0x4f, 0x06, 0x9a, 0xd2, 0x46, 0x2b, 0x55,
+
  0x69, 0x22, 0x1a, 0xe3, 0xf1, 0x08, 0x5e, 0x82, 0x19, 0xa4, 0x28, 0xd4,
+
  0x93, 0x8b, 0x43, 0xa1, 0x7f, 0xfa, 0x3a, 0xc7, 0x16, 0x33, 0x89, 0xcc,
+
  0x99, 0x16, 0xb4, 0x84, 0x5a, 0x3f, 0x00, 0xce, 0x33, 0xa5, 0x46, 0x9e,
+
  0x63, 0x42, 0x27, 0x9a, 0x89, 0xab, 0x3c, 0xe4, 0xe4, 0x13, 0x8a, 0x75,
+
  0x00, 0xdf, 0x2f, 0x33, 0xc4, 0xb3, 0xbd, 0xce, 0x74, 0x5f, 0xc4, 0x4f,
+
  0x60, 0x38, 0xe1, 0x88, 0xbf, 0x3d, 0xcd, 0xb1, 0x38, 0x33, 0xed, 0xe2,
+
  0x2c, 0xb3, 0x02, 0x24, 0xaa, 0xec, 0x51, 0x77, 0x09, 0x9e, 0x51, 0x0e,
+
  0x58, 0x8c, 0xcb, 0xbe, 0x7b, 0x43, 0xa5, 0x5e, 0xe5, 0x5f, 0x0c, 0x70,
+
  0x52, 0xfb, 0x20, 0x56, 0x7a, 0xa0, 0xbe, 0x9e, 0xfb, 0xc3, 0xd2, 0x96,
+
  0x7c, 0x6f, 0x48, 0xac, 0x31, 0xdb, 0x44, 0x56, 0xf6, 0xd4, 0x41, 0xf6,
+
  0x7d, 0xb7, 0x3a, 0xf3, 0x99, 0x1d, 0x9f, 0x62, 0x5d, 0xe4, 0x02, 0x0d,
+
  0x92, 0xbf, 0x16, 0xa1, 0x95, 0xc5, 0x76, 0x42, 0x17, 0x56, 0x90, 0xd7,
+
  0x2e, 0xaa, 0x00, 0xf9, 0x33, 0xbd, 0x16, 0x23, 0x93, 0x65, 0x6a, 0x15,
+
  0xd1, 0x2c, 0xfc, 0x21, 0x05, 0x98, 0xd5, 0x37, 0x48, 0x58, 0x62, 0xe0,
+
  0xd7, 0xba, 0x0e, 0x0d, 0x5c, 0x2f, 0x5f, 0xbb, 0xd3, 0x44, 0x4a, 0x89,
+
  0xff, 0x26, 0x7c, 0xb0, 0x1a, 0x08, 0x6f, 0x2e, 0x15, 0x23, 0x98, 0xa5,
+
  0x68, 0xf8, 0xb6, 0xa1, 0x6c, 0x2d, 0x05, 0x19, 0x85, 0x1c, 0x10, 0x45,
+
  0x0b, 0x4c, 0x62, 0xf3, 0x6a, 0x03, 0x78, 0xde, 0x52, 0xd3, 0xf4, 0xd9,
+
  0xdd, 0x55, 0x19, 0x01, 0xd8, 0xcc, 0x67, 0x61, 0xee, 0xd8, 0xd0, 0x27,
+
  0x46, 0x94, 0x76, 0x97, 0x71, 0x8a, 0xb2, 0x88, 0xdd, 0xcf, 0xbb, 0x6d,
+
  0xe0, 0x62, 0x0c, 0x66, 0xe5, 0x81, 0x84, 0x82, 0x6e, 0x6f, 0x2d, 0x7b,
+
  0x73, 0xa8, 0x47, 0x9a, 0xf2, 0x0d, 0xe1, 0x8a, 0xc1, 0x5c, 0x31, 0x2b,
+
  0x3b, 0xde, 0x02, 0x07, 0x07, 0xa1, 0x40, 0x68, 0xe9, 0x1c, 0x3e, 0x4c,
+
  0x05, 0x49, 0x73, 0x9a, 0x8e, 0xb2, 0x66, 0x2c, 0x84, 0x1b, 0x4d, 0x23,
+
  0x2c, 0x9f, 0x49, 0xc6, 0xa2, 0x32, 0x2d, 0x78, 0x4e, 0xfd, 0x10, 0x02,
+
  0xec, 0x4c, 0x5c, 0x84, 0xb2, 0x9d, 0xd5, 0x46, 0x13, 0xaa, 0x83, 0x68,
+
  0x4c, 0x04, 0x91, 0xac, 0x12, 0x3a, 0x4d, 0x08, 0xe3, 0xfc, 0x85, 0xa6,
+
  0xe2, 0xa9, 0x09, 0x6e, 0x5b, 0x61, 0xc4, 0xcd, 0x31, 0x9f, 0x5c, 0xb8,
+
  0x20, 0x1e, 0x67, 0x62, 0xf0, 0x4a, 0x1a, 0xbb, 0x2d, 0x26, 0x7a, 0x0d,
+
  0x1b, 0x65, 0xdc, 0x3d, 0xc9, 0x19, 0x90, 0x9a, 0xe9, 0x49, 0x78, 0x58,
+
  0xc8, 0x19, 0xe9, 0x5e, 0xbb, 0xd0, 0x0c, 0xf8, 0x9e, 0x45, 0x68, 0xaf,
+
  0xb4, 0x22, 0x2a, 0x1c, 0xd8, 0x67, 0x0b, 0xb0, 0xe5, 0x06, 0xd7, 0x20,
+
  0x5d, 0xe9, 0xf9, 0x73, 0x84, 0x44, 0x8b, 0x07, 0x3a, 0xc4, 0xc3, 0x6d,
+
  0x9e, 0x23, 0x04, 0xd9, 0xf9, 0xd1, 0xd9, 0x56, 0x72, 0x16, 0x3c, 0xa0,
+
  0x1a, 0x18, 0xd7, 0x27, 0x18, 0x41, 0x8f, 0x58, 0x27, 0xe9, 0x64, 0x12,
+
  0x2a, 0xb7, 0xec, 0x35, 0x26, 0x7a, 0xb6, 0x64, 0x0e, 0x0a, 0xc6, 0xf7,
+
  0x89, 0x18, 0x11, 0x77, 0x49, 0x63, 0x1c, 0x2f, 0xf1, 0xb8, 0x7a, 0x97,
+
  0xa9, 0x44, 0x7a, 0x29, 0x6c, 0x7c, 0x5b, 0x2c, 0x17, 0x76, 0x21, 0x25,
+
  0xb7, 0x90, 0x6d, 0xb7, 0xc4, 0x4a, 0xe2, 0xef, 0x97, 0xd9, 0x0c, 0x2f,
+
  0x19, 0x32, 0x24, 0x1b, 0xd3, 0x15, 0x52, 0xa7, 0xf2, 0x2d, 0x75, 0xa6,
+
  0x04, 0x8f, 0x3a, 0x5d, 0xe8, 0x5c, 0x06, 0x95, 0x13, 0x08, 0xae, 0x9c,
+
  0x0c, 0x8b, 0x54, 0x76, 0x65, 0x60, 0xe0, 0xb6, 0xc3, 0x4c, 0x36, 0x05,
+
  0x87, 0xc0, 0x6b, 0x70, 0x8e, 0x31, 0xe2, 0xf8, 0x70, 0x55, 0x5d, 0xed,
+
  0x61, 0xfe, 0x65, 0xff, 0x49, 0x10, 0x87, 0x85, 0xdb, 0xa2, 0x3c, 0x51,
+
  0x83, 0xe4, 0x34, 0xd6, 0x84, 0x99, 0xa8, 0x15, 0x03, 0x80, 0xe0, 0x5b,
+
  0xf4, 0x5e, 0xa7, 0xeb, 0x6f, 0xac, 0x40, 0xcc, 0xed, 0xd3, 0x9e, 0xc1,
+
  0xef, 0x49, 0xb5, 0xb2, 0xd4, 0x70, 0x54, 0x59, 0x38, 0x5c, 0x95, 0x7f,
+
  0x42, 0x36, 0xf8, 0xf7, 0x05, 0xae, 0xe5, 0x53, 0x91, 0x02, 0x94, 0xca,
+
  0x88, 0xc8, 0x9e, 0x63, 0xf4, 0x3d, 0xbc, 0x3c, 0x23, 0xc0, 0xf5, 0xb4,
+
  0x1c, 0xe4, 0xb0, 0xb6, 0xe5, 0x6d, 0x48, 0x6f, 0xd0, 0xf8, 0x55, 0x65,
+
  0x23, 0x84, 0xd4, 0x87, 0x1e, 0x7f, 0xf8, 0x45, 0x85, 0x05, 0x74, 0x6e,
+
  0xf5, 0x93, 0x3f, 0x51, 0x2f, 0xf2, 0x9e, 0x82, 0xc0, 0x92, 0x1c, 0xf9,
+
  0xc3, 0xf1, 0xf3, 0xd3, 0x37, 0xc7, 0x8d, 0xc8, 0x58, 0x1f, 0x60, 0x2d,
+
  0x23, 0xfa, 0x15, 0xb3, 0x5b, 0xa5, 0x1a, 0x16, 0x67, 0x8f, 0xe4, 0x28,
+
  0xb8, 0xc1, 0xe9, 0xff, 0xe9, 0x99, 0x0d, 0x88, 0x10, 0x16, 0x05, 0xe1,
+
  0xcf, 0x5a, 0xeb, 0xd2, 0x38, 0x07, 0x9a, 0x2c, 0x85, 0xee, 0x27, 0xb4,
+
  0x7d, 0x15, 0xc4, 0xbf, 0x93, 0x30, 0x28, 0x4a, 0x75, 0xe1, 0x94, 0x22,
+
  0xe9, 0x28, 0x45, 0x30, 0x40, 0x14, 0x2a, 0xa9, 0x98, 0x96, 0xb5, 0x17,
+
  0x8a, 0xdc, 0xe7, 0x1f, 0xb8, 0x50, 0xb0, 0x84, 0x34, 0x8d, 0x10, 0x1c,
+
  0x64, 0xa3, 0x67, 0x61, 0x11, 0xb4, 0x8c, 0x78, 0xf1, 0x6f, 0x25, 0xd6,
+
  0x5f, 0x58, 0x03, 0xcd, 0xc2, 0x91, 0xce, 0x98, 0x44, 0x91, 0x3f, 0xb1,
+
  0x8b, 0x6f, 0xe4, 0xc8, 0x03, 0x85, 0x62, 0x3a, 0x29, 0x0e, 0x28, 0x2b,
+
  0xf9, 0x55, 0xd0, 0x50, 0x48, 0x8a, 0x0c, 0x01, 0xb2, 0x3e, 0xc0, 0x58,
+
  0x3a, 0xdb, 0xac, 0xb6, 0x96, 0x06, 0x1d, 0x76, 0xd1, 0x92, 0x48, 0x37,
+
  0x7e, 0xbf, 0x61, 0xd1, 0xec, 0x2a, 0x35, 0x3b, 0xe4, 0x51, 0x36, 0x0a,
+
  0xa5, 0xfe, 0x46, 0x41, 0xfc, 0x0c, 0x91, 0xb7, 0x89, 0xce, 0xf5, 0x61,
+
  0x5d, 0x80, 0xb6, 0xcc, 0x36, 0x5f, 0xcf, 0x9e, 0x97, 0xa2, 0xbf, 0x02,
+
  0xef, 0xba, 0xaa, 0x0b, 0xac, 0x7e, 0x50, 0x4b, 0x6d, 0xac, 0x71, 0x9a,
+
  0x4f, 0x28, 0x30, 0xda, 0x96, 0x92, 0x56, 0x4c, 0xe3, 0xd2, 0x93, 0xcc,
+
  0xc2, 0xd0, 0xb4, 0x28, 0x8d, 0xce, 0x10, 0xdf, 0xc4, 0xe3, 0xd6, 0x36,
+
  0x7b, 0x99, 0x3c, 0xfa, 0x92, 0x61, 0x17, 0xf2, 0xea, 0x3d, 0x6c, 0xdb,
+
  0x7f, 0x6e, 0xf5, 0x5d, 0xfd, 0xd2, 0x9b, 0xbc, 0x02, 0x8e, 0x25, 0x6d,
+
  0x8a, 0xb7, 0x56, 0x12, 0xbb, 0x12, 0x1d, 0x14, 0x49, 0xf6, 0xc5, 0xcc,
+
  0xf0, 0xff, 0x6d, 0x6e, 0x5d, 0x07, 0xa6, 0x09, 0xe3, 0x2c, 0xb3, 0x00,
+
  0xa6, 0x4a, 0x62, 0xe3, 0x80, 0xa3, 0x56, 0xfd, 0x7a, 0x2d, 0xd8, 0x16,
+
  0x8e, 0x3b, 0x53, 0xdd, 0xce, 0x6a, 0xe4, 0x66, 0xc2, 0x71, 0x87, 0x45,
+
  0x49, 0xf7, 0x38, 0xd3, 0xb7, 0x3b, 0x4d, 0x15, 0x57, 0xb3, 0x4b, 0xbe,
+
  0x79, 0xf4, 0x8d, 0x6c, 0x0f, 0x4c, 0x74, 0xc6, 0x3e, 0x1a, 0xc6, 0xac,
+
  0xa4, 0x61, 0x57, 0xe4, 0x56, 0xd0, 0x71, 0x8a, 0xdb, 0x46, 0x1b, 0xc1,
+
  0x7d, 0xc4, 0xc0, 0x9e, 0x8c, 0x80, 0x69, 0x94, 0x55, 0x9e, 0xbb, 0xb7,
+
  0xcd, 0x29, 0x84, 0x9f, 0x11, 0x9a, 0x81, 0xaa, 0xa7, 0x2a, 0x38, 0x62,
+
  0xb0, 0xe6, 0x8c, 0xb2, 0x08, 0x71, 0x3d, 0x9e, 0x23, 0x44, 0xb9, 0x38,
+
  0x44, 0xd0, 0x1d, 0x0e, 0xcb, 0x8f, 0x37, 0x49, 0xe0, 0x0e, 0x7f, 0x8f,
+
  0xb9, 0x02, 0x73, 0x56, 0xa5, 0x68, 0x8d, 0x97, 0xa1, 0x03, 0x26, 0x02,
+
  0x8b, 0xb2, 0x93, 0xe4, 0xb9, 0x5c, 0x78, 0x55, 0xa8, 0xae, 0x08, 0xc7,
+
  0x89, 0xda, 0xa3, 0xa0, 0x26, 0xd0, 0x74, 0xb9, 0x36, 0x0d, 0xbe, 0x29,
+
  0xf8, 0x4a, 0x54, 0x55, 0xa8, 0x22, 0x1d, 0x49, 0xe0, 0x5b, 0x1d, 0x7e,
+
  0xab, 0x6c, 0xf8, 0x73, 0x2b, 0xe0, 0xa7, 0xb5, 0xec, 0xc5, 0x21, 0x85,
+
  0x80, 0xe8, 0xc1, 0x9f, 0x49, 0x2b, 0x10, 0x8f, 0x5e, 0xdd, 0x48, 0x29,
+
  0xf2, 0x76, 0x54, 0xdb, 0xf8, 0x36, 0xe5, 0x02, 0x15, 0x99, 0x7c, 0xac,
+
  0x44, 0x57, 0x65, 0x1a, 0x2d, 0x44, 0x8c, 0x3f, 0x25, 0x26, 0x43, 0xb7,
+
  0x82, 0x12, 0x10, 0x9f, 0x64, 0x9c, 0x22, 0xa8, 0x5d, 0x0f, 0x06, 0xb7,
+
  0xe1, 0x43, 0xa2, 0x9f, 0xd9, 0x48, 0xc4, 0x48, 0xea, 0x28, 0xfb, 0x40,
+
  0xc2, 0x91, 0x2f, 0x80, 0x41, 0xe3, 0xa5, 0xa0, 0x24, 0x68, 0x91, 0x6a,
+
  0x73, 0xd4, 0x99, 0x22, 0x2a, 0x53, 0xc9, 0xcb, 0x4c, 0x79, 0x06, 0xee,
+
  0xcf, 0x3b, 0x50, 0x75, 0xf1, 0x89, 0xcd, 0x7d, 0x04, 0x19, 0x43, 0x0e,
+
  0x3a, 0xa7, 0xfc, 0x45, 0x2e, 0x48, 0x40, 0x21, 0xb5, 0x0f, 0x5c, 0x27,
+
  0x56, 0xa2, 0x60, 0xd3, 0x7b, 0x32, 0x11, 0x05, 0x4f, 0x65, 0x87, 0xab,
+
  0xcb, 0x72, 0x9e, 0x5c, 0x82, 0xac, 0x38, 0x8f, 0x56, 0x81, 0x3f, 0x8f,
+
  0x56, 0x81, 0x03, 0x7e, 0xe9, 0xc9, 0x93, 0x67, 0x46, 0x96, 0x34, 0x53,
+
  0x9a, 0x3d, 0x39, 0xa4, 0xb8, 0x4c, 0x87, 0x9f, 0xbe, 0x89, 0xb0, 0xf6,
+
  0xaa, 0x53, 0xe9, 0x64, 0xb9, 0xf8, 0x2b, 0x5b, 0x30, 0x19, 0x03, 0x7f,
+
  0xaa, 0xcd, 0x10, 0x19, 0x8f, 0xe0, 0xcd, 0x69, 0xca, 0x54, 0x7a, 0x09,
+
  0xa7, 0x5b, 0xdb, 0x34, 0x51, 0xe8, 0x6a, 0x5a, 0x8c, 0x18, 0xc6, 0x36,
+
  0x9e, 0x0d, 0x7e, 0xac, 0xb3, 0x91, 0x62, 0x3b, 0x55, 0x18, 0x3f, 0xbd,
+
  0x30, 0xc0, 0xd0, 0x35, 0xe5, 0x0a, 0xce, 0x00, 0xff, 0x80, 0x13, 0x1f,
+
  0xb1, 0x1d, 0x7a, 0xce, 0x0f, 0x68, 0x96, 0x14, 0xc3, 0xda, 0x8d, 0x87,
+
  0x1e, 0x60, 0xbe, 0x19, 0x86, 0x84, 0x61, 0x27, 0xa4, 0x3e, 0xc7, 0x43,
+
  0xc2, 0x8f, 0x97, 0xc8, 0x0c, 0x3e, 0x64, 0x96, 0xdb, 0xbe, 0xb6, 0xdc,
+
  0xc4, 0x83, 0x07, 0x8d, 0xb5, 0xa5, 0xd6, 0xa3, 0x95, 0x1d, 0x04, 0xeb,
+
  0x57, 0x83, 0x0e, 0xf1, 0x23, 0xd7, 0x42, 0xeb, 0xb2, 0x4a, 0x7b, 0x3a,
+
  0x85, 0x09, 0x82, 0xc2, 0x63, 0x02, 0xce, 0x3b, 0x1a, 0x11, 0x57, 0x8f,
+
  0x7f, 0xe7, 0x67, 0x33, 0x99, 0xb1, 0x8e, 0x53, 0xdd, 0x4e, 0x51, 0xd2,
+
  0xf2, 0x2c, 0x6f, 0x48, 0x80, 0xf7, 0x14, 0x11, 0x49, 0x65, 0xba, 0x40,
+
  0xfc, 0xe3, 0x47, 0x2c, 0x33, 0xe9, 0x81, 0x6b, 0x30, 0xb1, 0xaa, 0x92,
+
  0xf3, 0x22, 0x9f, 0x69, 0x64, 0x10, 0x71, 0x14, 0x37, 0x02, 0x57, 0x29,
+
  0x92, 0xb9, 0xca, 0x7b, 0x2c, 0x27, 0x60, 0x37, 0xdd, 0x3b, 0x5c, 0x33,
+
  0x1d, 0x9a, 0x7c, 0x19, 0x2e, 0x51, 0x19, 0x91, 0x26, 0xf9, 0x38, 0x7c,
+
  0x31, 0x59, 0x6b, 0xf6, 0xac, 0xf2, 0xd0, 0xe2, 0x36, 0x03, 0x85, 0x4a,
+
  0xbf, 0xed, 0x2c, 0x64, 0x7a, 0x17, 0x0b, 0x89, 0xca, 0x20, 0x79, 0x46,
+
  0xa2, 0x7b, 0xbb, 0xbc, 0xe1, 0x49, 0x1b, 0x2b, 0xf1, 0xbc, 0xc4, 0x52,
+
  0x69, 0x53, 0x4c, 0xa4, 0x7c, 0xc0, 0xec, 0x04, 0x9a, 0x6d, 0xf0, 0x12,
+
  0x63, 0x25, 0xad, 0x9c, 0xc4, 0x18, 0x89, 0x32, 0xa1, 0x8f, 0xe1, 0x23,
+
  0xf3, 0x9b, 0x91, 0xce, 0x1e, 0x7e, 0xb5, 0xb9, 0xeb, 0xed, 0xcb, 0x40,
+
  0xd3, 0x83, 0xaa, 0x98, 0x2c, 0x6a, 0x06, 0xa1, 0xe3, 0x00, 0x3d, 0xbb,
+
  0x84, 0x17, 0x65, 0xc9, 0x75, 0xa0, 0x54, 0x80, 0xb2, 0x85, 0xd7, 0xb5,
+
  0x2e, 0x39, 0xa1, 0x48, 0x32, 0xc1, 0x98, 0x64, 0xb4, 0x4b, 0xf9, 0x2e,
+
  0xf4, 0x4a, 0x37, 0x8e, 0x93, 0xb4, 0x3c, 0x72, 0xe9, 0x12, 0xb7, 0x92,
+
  0x26, 0xf5, 0x44, 0x18, 0xc3, 0x1a, 0x65, 0x28, 0x2f, 0x09, 0x35, 0x12,
+
  0x24, 0x5c, 0xbc, 0x35, 0x3a, 0x08, 0x3b, 0x4c, 0x36, 0xd4, 0x69, 0x44,
+
  0x0e, 0xf0, 0x67, 0x18, 0x19, 0xd7, 0xc4, 0xb3, 0x9d, 0x5d, 0x3a, 0xb1,
+
  0xd1, 0xcd, 0x61, 0xed, 0x45, 0xe4, 0x1d, 0xda, 0xc5, 0x8f, 0xdb, 0x9a,
+
  0x0e, 0x73, 0xc5, 0xb2, 0x5a, 0xb7, 0x71, 0x2f, 0x4d, 0xca, 0xd6, 0xde,
+
  0xba, 0x0e, 0xff, 0x95, 0x2c, 0x65, 0xa8, 0x4f, 0xda, 0xf2, 0xeb, 0xc9,
+
  0xbe, 0x83, 0x11, 0xa0, 0xf2, 0x32, 0xb1, 0x33, 0xa9, 0x0a, 0x8b, 0x5c,
+
  0x73, 0x51, 0x1e, 0xb6, 0xa5, 0x61, 0xa7, 0x77, 0x24, 0x60, 0x37, 0x94,
+
  0x28, 0x6e, 0xad, 0xf3, 0xec, 0xf8, 0xe5, 0x31, 0x2d, 0x52, 0x27, 0x59,
+
  0xd6, 0xa2, 0xc6, 0x45, 0xb1, 0xac, 0x48, 0x89, 0x11, 0xc6, 0x54, 0x75,
+
  0x9c, 0x6b, 0x31, 0xed, 0x2d, 0x01, 0xba, 0x3c, 0xc3, 0x32, 0x32, 0x43,
+
  0x8a, 0x99, 0xd6, 0x90, 0x89, 0x46, 0xf4, 0x88, 0x16, 0x57, 0x88, 0xaa,
+
  0x3b, 0x3c, 0x24, 0xcc, 0x9f, 0xe4, 0xac, 0xcc, 0xad, 0x7e, 0x62, 0xc1,
+
  0x3a, 0x68, 0x2e, 0x65, 0x0e, 0xaf, 0x52, 0xae, 0x83, 0x65, 0xc1, 0x7c,
+
  0x2c, 0x68, 0x8d, 0x1b, 0x81, 0x27, 0xc5, 0x64, 0x64, 0xc1, 0x7d, 0x86,
+
  0x67, 0xa0, 0x8a, 0xea, 0x57, 0xcb, 0x9e, 0x8d, 0x70, 0x8a, 0xb0, 0x3e,
+
  0x8e, 0xc3, 0x05, 0xc4, 0xe3, 0xc3, 0x93, 0xe4, 0x88, 0x65, 0x36, 0x6b,
+
  0x92, 0x7d, 0xda, 0x0a, 0x1a, 0x87, 0xbc, 0x7b, 0xf6, 0x30, 0x18, 0x68,
+
  0xbd, 0xbc, 0x28, 0x70, 0x70, 0x0a, 0xac, 0x15, 0x07, 0x86, 0x57, 0x91,
+
  0xf3, 0xd6, 0xaf, 0x67, 0x2b, 0x1c, 0x7a, 0x3b, 0xd2, 0xcb, 0xc7, 0xa7,
+
  0x1b, 0xf8, 0x8e, 0x30, 0x38, 0x36, 0x07, 0x1d, 0x6e, 0x2d, 0x53, 0x4d,
+
  0x76, 0x39, 0xea, 0x89, 0xc1, 0x84, 0x86, 0x5c, 0x76, 0xb9, 0x35, 0xe0,
+
  0x77, 0x4f, 0xe9, 0x1f, 0x0f, 0x18, 0xc2, 0x62, 0x38, 0xc9, 0x8d, 0xc9,
+
  0xf3, 0x93, 0x97, 0xc7, 0x5b, 0xe8, 0x25, 0x65, 0x5b, 0x3e, 0xf9, 0x80,
+
  0x06, 0xb7, 0x35, 0x2f, 0x13, 0x72, 0xcb, 0xcd, 0xbc, 0x8f, 0xa6, 0x1c,
+
  0x41, 0xa1, 0x00, 0x49, 0x55, 0x84, 0xfa, 0x62, 0x48, 0x4e, 0x8f, 0x2d,
+
  0xb6, 0xb0, 0xa8, 0x6f, 0x6f, 0x9b, 0x50, 0xa2, 0xbc, 0xee, 0x6d, 0xc1,
+
  0xf5, 0xe4, 0x6e, 0x20, 0xc0, 0x43, 0xee, 0x55, 0xa4, 0xdc, 0x37, 0x1c,
+
  0x42, 0x2a, 0x67, 0x28, 0x1c, 0x63, 0x3a, 0x3a, 0x41, 0x3f, 0xbb, 0x49,
+
  0x6f, 0x4d, 0xe6, 0xdf, 0xe9, 0x3d, 0xfc, 0xe6, 0x1b, 0x3c, 0x8e, 0xc1,
+
  0x74, 0xcc, 0x7c, 0x05, 0x35, 0xb3, 0x47, 0x3b, 0x3b, 0x34, 0x81, 0x4a,
+
  0x1e, 0x86, 0xbf, 0x7b, 0xdf, 0xb4, 0x3d, 0x5e, 0x65, 0xb0, 0xdd, 0xa3,
+
  0xa5, 0xe7, 0x7b, 0xf0, 0xc1, 0xf2, 0xc3, 0xb4, 0xa7, 0xcd, 0x47, 0xbf,
+
  0xc1, 0xb6, 0x97, 0x9f, 0xa5, 0x47, 0x78, 0x59, 0x8a, 0xf1, 0x18, 0x09,
+
  0x01, 0x1f, 0xd4, 0xf2, 0xa0, 0x37, 0x69, 0x39, 0xb2, 0x79, 0xec, 0x74,
+
  0x7b, 0xbb, 0xab, 0x26, 0x42, 0x2c, 0x03, 0xbb, 0xa5, 0xed, 0xc0, 0x63,
+
  0x06, 0xba, 0x20, 0xc3, 0x10, 0xc8, 0xfb, 0xbb, 0xd0, 0xfd, 0xee, 0x37,
+
  0xdf, 0x74, 0x71, 0x18, 0x8f, 0x96, 0xa6, 0x78, 0x53, 0x84, 0xd2, 0x82,
+
  0xf4, 0xa8, 0xdb, 0xd6, 0x0a, 0x9a, 0x52, 0x48, 0x03, 0x54, 0x31, 0x93,
+
  0x6f, 0x93, 0xe4, 0xf5, 0xe9, 0xc5, 0x31, 0x4a, 0x2a, 0x62, 0xba, 0xad,
+
  0x32, 0xb1, 0x49, 0x38, 0x4d, 0x13, 0xeb, 0x50, 0x4d, 0x6e, 0x4d, 0x47,
+
  0x67, 0x73, 0x66, 0x5a, 0xd6, 0xc1, 0xba, 0xda, 0xc5, 0xfb, 0xcd, 0xaa,
+
  0x31, 0xc9, 0xe5, 0x48, 0x80, 0xb2, 0x55, 0x8f, 0x42, 0x32, 0x91, 0x3b,
+
  0x73, 0x4d, 0x8b, 0xe4, 0x2c, 0x2d, 0xd9, 0xe4, 0x46, 0x75, 0xd6, 0x0a,
+
  0x55, 0x6f, 0x71, 0x0c, 0x64, 0x34, 0x28, 0x10, 0x4f, 0xd1, 0x2c, 0x72,
+
  0x01, 0x1e, 0x5f, 0x01, 0x12, 0xf5, 0xa3, 0x5c, 0xa2, 0x9a, 0x49, 0x60,
+
  0x17, 0xd6, 0x8f, 0x4a, 0x2a, 0x0b, 0xa8, 0x0f, 0x4e, 0x91, 0x41, 0x8d,
+
  0xf2, 0x4b, 0x34, 0xa8, 0xfa, 0xe2, 0xb2, 0x9b, 0x40, 0x17, 0x5b, 0x6c,
+
  0xfd, 0xe1, 0xf8, 0xbd, 0x50, 0x98, 0x71, 0xa3, 0x02, 0xbe, 0x5f, 0x6f,
+
  0x48, 0xf4, 0xd4, 0x83, 0x0d, 0x54, 0xfe, 0x37, 0x60, 0x5b, 0xb2, 0xc9,
+
  0xc8, 0xe4, 0x67, 0x7e, 0xa6, 0xc7, 0x5f, 0xf1, 0x59, 0x21, 0x0d, 0xf9,
+
  0x03, 0x59, 0xdc, 0x52, 0x34, 0x15, 0xce, 0x7a, 0xd4, 0x2d, 0x0e, 0x47,
+
  0xfb, 0x65, 0x83, 0x22, 0xa7, 0x14, 0x4a, 0xb0, 0x22, 0xbf, 0xdc, 0xf5,
+
  0x0b, 0xbd, 0xd1, 0x98, 0x2f, 0xb4, 0xb0, 0x98, 0x39, 0x37, 0x0f, 0x43,
+
  0x09, 0x52, 0x02, 0xc7, 0x2c, 0x7e, 0x0d, 0x48, 0x7a, 0x9c, 0x5f, 0x2e,
+
  0x4a, 0x93, 0x1d, 0x1f, 0xbc, 0x42, 0x3b, 0x87, 0x1e, 0x4d, 0x35, 0x82,
+
  0x85, 0x32, 0x11, 0x8c, 0x35, 0x1b, 0xa1, 0x7b, 0x4b, 0xe1, 0xad, 0x11,
+
  0x59, 0x46, 0x95, 0x22, 0x0c, 0x74, 0x47, 0xcd, 0xb0, 0xc8, 0x55, 0x2f,
+
  0x33, 0xc2, 0xdf, 0xd1, 0x09, 0x88, 0x76, 0xcd, 0xde, 0x9a, 0x4b, 0x55,
+
  0xa8, 0x88, 0x22, 0x0a, 0x2c, 0x82, 0x2b, 0x2c, 0x83, 0x86, 0x45, 0xcc,
+
  0x87, 0x91, 0x0b, 0xe9, 0x57, 0x65, 0x37, 0x23, 0x50, 0x0f, 0x26, 0x45,
+
  0x3a, 0xaa, 0x2c, 0x76, 0xd7, 0x50, 0x1c, 0x38, 0xfe, 0x8f, 0x2b, 0x14,
+
  0xf3, 0xae, 0x84, 0x0d, 0x90, 0xb5, 0x87, 0x5d, 0xf5, 0xb5, 0x52, 0x99,
+
  0x50, 0xd1, 0xc4, 0x10, 0x70, 0x20, 0x85, 0xa7, 0xe0, 0x9a, 0x16, 0x52,
+
  0xd0, 0xb3, 0x4f, 0x0c, 0x0b, 0x6f, 0xa8, 0x06, 0x46, 0x63, 0xf6, 0xa1,
+
  0x86, 0x3f, 0x33, 0x2a, 0x66, 0x66, 0xd7, 0xf8, 0xf9, 0xc9, 0x7f, 0x1f,
+
  0x87, 0x5a, 0x8f, 0x4e, 0xe8, 0xe6, 0x4c, 0xfe, 0xc8, 0x74, 0x0c, 0x47,
+
  0xa4, 0x16, 0x44, 0x47, 0x68, 0x6c, 0x38, 0x59, 0x54, 0x08, 0x28, 0xae,
+
  0x6e, 0x95, 0x07, 0xbd, 0x9e, 0x1a, 0x8c, 0x7a, 0x69, 0x7d, 0xc0, 0xcb,
+
  0x4b, 0x82, 0xae, 0x22, 0x91, 0x85, 0xc1, 0x93, 0xe5, 0xc1, 0xf0, 0xd7,
+
  0xd8, 0xb5, 0x6d, 0x27, 0x25, 0xa8, 0x62, 0x64, 0xec, 0xe5, 0xa5, 0xfc,
+
  0x02, 0xd5, 0x1d, 0xb9, 0xe1, 0xbd, 0xbd, 0xde, 0xc3, 0x87, 0x6b, 0x82,
+
  0x8c, 0x85, 0xe9, 0x89, 0xfb, 0x2b, 0x9d, 0xe3, 0x0a, 0x3b, 0x49, 0x05,
+
  0x0d, 0xbe, 0x53, 0xd8, 0x39, 0x75, 0x24, 0xe1, 0x27, 0x2d, 0x41, 0x0e,
+
  0xf0, 0x48, 0x3e, 0x5d, 0x4c, 0x83, 0x3d, 0x71, 0x4c, 0x2f, 0xcc, 0x86,
+
  0xb7, 0x1c, 0x53, 0xc0, 0x18, 0xc6, 0x1a, 0x50, 0x80, 0x4b, 0xd7, 0xc3,
+
  0x13, 0xc6, 0x0d, 0x85, 0x6b, 0x24, 0x94, 0x86, 0x46, 0xe2, 0x21, 0x2b,
+
  0x21, 0x5f, 0xde, 0xc9, 0x62, 0x06, 0x0c, 0x62, 0x13, 0x73, 0x21, 0x58,
+
  0x74, 0x23, 0x0e, 0x32, 0x32, 0x14, 0x23, 0x11, 0x53, 0x61, 0x70, 0x88,
+
  0xa0, 0xef, 0x2b, 0x2f, 0xc6, 0xd9, 0x57, 0xd2, 0x2e, 0x15, 0x32, 0x40,
+
  0xbf, 0xb6, 0x75, 0x98, 0x92, 0x81, 0x4e, 0x1b, 0x82, 0xbf, 0xc4, 0xb5,
+
  0x9f, 0xb9, 0xad, 0x13, 0xc6, 0xa0, 0xbb, 0xf5, 0xf6, 0xcd, 0x4b, 0xf1,
+
  0xc5, 0xa6, 0xce, 0x90, 0x8a, 0xe8, 0xe8, 0x93, 0x8c, 0xb4, 0xbb, 0x31,
+
  0xd9, 0x09, 0x19, 0x67, 0x39, 0x18, 0x68, 0x69, 0x29, 0x10, 0x21, 0x8f,
+
  0x12, 0x40, 0xd5, 0x85, 0x86, 0xaa, 0x3f, 0x4c, 0xb2, 0xce, 0x27, 0x02,
+
  0xca, 0x1f, 0x8d, 0x8e, 0x3c, 0x60, 0x38, 0x74, 0x96, 0x97, 0xd4, 0x92,
+
  0x95, 0x33, 0x30, 0xbc, 0x70, 0x5b, 0x5a, 0x08, 0x5a, 0x13, 0xcc, 0xa9,
+
  0x69, 0x62, 0x8d, 0x34, 0xf1, 0x68, 0x5c, 0xad, 0x14, 0x34, 0xf5, 0xa3,
+
  0x07, 0x25, 0x9b, 0x34, 0xe9, 0xec, 0xc2, 0xc1, 0x93, 0x11, 0x2d, 0x78,
+
  0xaa, 0x85, 0x06, 0x3b, 0xaf, 0xb7, 0xdf, 0x76, 0x24, 0x22, 0xe3, 0xb5,
+
  0xd8, 0x23, 0x4c, 0x87, 0xe7, 0x6d, 0x0d, 0x29, 0x25, 0x6f, 0xf9, 0xd0,
+
  0xa5, 0x6e, 0x47, 0x31, 0x5c, 0x36, 0x44, 0xfe, 0xe3, 0x27, 0x8c, 0x3c,
+
  0x05, 0xec, 0x1b, 0x98, 0xc6, 0x26, 0xcb, 0x00, 0x5b, 0xb0, 0x4a, 0x1b,
+
  0xd3, 0x0d, 0x91, 0x90, 0xe0, 0xd2, 0x01, 0x0d, 0x0e, 0x3e, 0xdb, 0xb8,
+
  0xda, 0x48, 0x36, 0x61, 0x9f, 0x4b, 0xae, 0x44, 0x94, 0x6c, 0x8c, 0xe0,
+
  0x95, 0xed, 0xcd, 0x51, 0xca, 0x05, 0xa2, 0x58, 0x42, 0xd9, 0x7b, 0x88,
+
  0x59, 0xdc, 0x8b, 0x92, 0xda, 0xde, 0xf2, 0xf0, 0xfa, 0x86, 0xa0, 0xaa,
+
  0x63, 0xe9, 0x4a, 0x25, 0xe4, 0xa4, 0x83, 0x73, 0x72, 0x13, 0xed, 0x92,
+
  0x85, 0xdb, 0x68, 0x34, 0x14, 0xfc, 0x11, 0xc5, 0x13, 0x3e, 0xc6, 0x2e,
+
  0x1c, 0xa1, 0x68, 0xe8, 0x6b, 0x8d, 0x12, 0xb5, 0x95, 0xa9, 0xdc, 0xdd,
+
  0x09, 0x28, 0x69, 0xf8, 0x12, 0xcf, 0xa4, 0x6b, 0x19, 0x86, 0x0c, 0x6a,
+
  0x5c, 0x1b, 0x98, 0x98, 0x11, 0xa9, 0xee, 0x00, 0x93, 0x47, 0xf2, 0x58,
+
  0x64, 0xa3, 0x4a, 0x6e, 0x87, 0x6c, 0x92, 0xce, 0x49, 0xb7, 0xc9, 0x31,
+
  0x56, 0x40, 0xfc, 0xf7, 0xd9, 0x75, 0x5e, 0x2c, 0xaa, 0xb8, 0x9c, 0x3a,
+
  0x90, 0x99, 0x91, 0x51, 0x9c, 0x90, 0x31, 0x5e, 0xcc, 0x24, 0x0d, 0x51,
+
  0x0a, 0xa6, 0x4e, 0xf3, 0xc9, 0x24, 0x17, 0x11, 0x8c, 0xd0, 0x4f, 0x40,
+
  0x6d, 0x96, 0x18, 0xee, 0x13, 0x63, 0xd5, 0x42, 0xc9, 0x1a, 0x0f, 0xa3,
+
  0x07, 0x1e, 0x1b, 0x24, 0xf9, 0x7a, 0x2a, 0xde, 0x06, 0x24, 0x0a, 0x90,
+
  0x70, 0x76, 0xf8, 0x38, 0x73, 0xab, 0x8a, 0xd9, 0x2c, 0xd7, 0x11, 0x88,
+
  0xd3, 0xaa, 0x73, 0x2c, 0x66, 0xd0, 0x1f, 0x88, 0xbb, 0x43, 0x37, 0x4a,
+
  0xf2, 0xb7, 0x63, 0x40, 0x0b, 0x45, 0x10, 0xb9, 0x8a, 0x4b, 0x1a, 0x01,
+
  0xa5, 0x0e, 0x58, 0x7a, 0xa6, 0x2b, 0x97, 0xae, 0x08, 0x57, 0xfc, 0xa2,
+
  0xee, 0xfa, 0x24, 0xbd, 0x05, 0x31, 0xf7, 0x92, 0xab, 0xc4, 0x90, 0x02,
+
  0x82, 0xc4, 0xc3, 0x95, 0xc8, 0xd8, 0xcf, 0x5c, 0x3b, 0x04, 0x9d, 0x73,
+
  0x5c, 0x2d, 0xb2, 0xf1, 0xce, 0x2c, 0xf6, 0x8d, 0x23, 0xe8, 0xbb, 0xae,
+
  0x68, 0x9b, 0x42, 0x59, 0x38, 0x46, 0x86, 0x54, 0xc5, 0x04, 0x1d, 0xc1,
+
  0xcc, 0x94, 0xb1, 0x59, 0xa3, 0x9f, 0xbc, 0x0a, 0xde, 0x89, 0x51, 0xc1,
+
  0x85, 0xb8, 0x19, 0xc9, 0x6e, 0x96, 0x3c, 0x0a, 0x13, 0x25, 0x2a, 0x13,
+
  0xa9, 0xf2, 0x91, 0x6d, 0x3f, 0xdf, 0x9f, 0x9d, 0x47, 0xdb, 0xbb, 0x8f,
+
  0xaa, 0x0e, 0x89, 0x69, 0x13, 0x2a, 0x94, 0x9a, 0xb3, 0xdb, 0x7e, 0xbf,
+
  0xf1, 0x7e, 0x22, 0x67, 0xa1, 0x72, 0x2e, 0xeb, 0xce, 0xfe, 0xf6, 0xc3,
+
  0xab, 0x0e, 0x7a, 0x49, 0xd5, 0xe6, 0x2d, 0x9b, 0xfa, 0xa5, 0x6a, 0xd8,
+
  0x6b, 0x09, 0x7b, 0x0e, 0xc7, 0x5c, 0xe2, 0x29, 0x2b, 0xaf, 0xc2, 0xf5,
+
  0x22, 0xfe, 0xab, 0xa5, 0x1b, 0x11, 0xda, 0xdf, 0xdb, 0x6e, 0x2d, 0xee,
+
  0x99, 0xf4, 0xfb, 0xfd, 0x96, 0xa7, 0xf7, 0xb7, 0xaf, 0x3e, 0xe2, 0xe9,
+
  0xdd, 0x87, 0xdb, 0xd3, 0x95, 0x8f, 0x2f, 0x65, 0xf0, 0xa0, 0xaa, 0x1e,
+
  0x65, 0xf0, 0xd0, 0x7e, 0x71, 0x4b, 0x7c, 0xff, 0x12, 0xa9, 0xf6, 0x88,
+
  0x4a, 0xdd, 0x25, 0x7c, 0x13, 0x81, 0x9c, 0xfd, 0x24, 0x11, 0xd7, 0x06,
+
  0x7c, 0x6e, 0x15, 0xc5, 0xc9, 0x94, 0xcf, 0x0e, 0x14, 0x84, 0x4c, 0x97,
+
  0x10, 0x1c, 0x2a, 0x57, 0xc7, 0x92, 0xfc, 0xd8, 0xc1, 0x90, 0x23, 0x04,
+
  0x64, 0xe9, 0x98, 0x03, 0xe5, 0x79, 0x13, 0xcc, 0x20, 0xe7, 0x3e, 0xeb,
+
  0xc9, 0xe4, 0xd0, 0x15, 0x16, 0x70, 0xd0, 0x25, 0xcc, 0xf5, 0x89, 0xf5,
+
  0xac, 0xa6, 0x93, 0x1a, 0xf1, 0x5e, 0xbb, 0x78, 0xeb, 0xdc, 0x34, 0xeb,
+
  0x61, 0xc1, 0x47, 0x9f, 0x2f, 0x87, 0x0e, 0xdb, 0xbf, 0x47, 0xfc, 0xb9,
+
  0x59, 0x4f, 0xec, 0xa9, 0xcb, 0x9e, 0x4e, 0x56, 0x17, 0x99, 0x52, 0x54,
+
  0xcb, 0x0c, 0x03, 0xae, 0xca, 0xe4, 0x29, 0xdc, 0xec, 0x31, 0x82, 0xa7,
+
  0x26, 0xf7, 0xd2, 0x13, 0xf8, 0x08, 0xd6, 0x84, 0x53, 0x7d, 0x84, 0x56,
+
  0x59, 0x6d, 0x3c, 0x21, 0x49, 0x9f, 0x73, 0x40, 0x06, 0x59, 0xa8, 0xbd,
+
  0x16, 0x02, 0xef, 0x0d, 0x71, 0x93, 0x52, 0x1e, 0xd9, 0xc1, 0x09, 0x07,
+
  0x33, 0xeb, 0xbb, 0xcd, 0xb5, 0xfa, 0x77, 0x6a, 0x6b, 0x0e, 0x95, 0x22,
+
  0x59, 0x0a, 0x65, 0x59, 0x0d, 0x18, 0xc0, 0x1f, 0x30, 0xda, 0xa2, 0xd3,
+
  0x71, 0x20, 0x51, 0x61, 0x2e, 0x34, 0x52, 0xfa, 0x42, 0x5c, 0xd8, 0x86,
+
  0xe9, 0x15, 0x87, 0x68, 0x68, 0x5d, 0x4b, 0xbb, 0x3a, 0xf8, 0x4d, 0x76,
+
  0xe4, 0xe6, 0x18, 0xc1, 0xcb, 0xc1, 0x22, 0x78, 0x7d, 0xbf, 0x94, 0x01,
+
  0x29, 0xf0, 0x15, 0x4d, 0x85, 0x8d, 0x3c, 0x32, 0x96, 0x66, 0x21, 0x5b,
+
  0xe6, 0xb3, 0x13, 0x90, 0x96, 0x81, 0x50, 0xd0, 0xf9, 0xaa, 0x75, 0x1e,
+
  0x45, 0xcf, 0x09, 0x6b, 0x04, 0xcf, 0xab, 0xbb, 0xde, 0x26, 0x61, 0xdc,
+
  0x42, 0xe6, 0x74, 0x47, 0x68, 0x7e, 0xb8, 0x39, 0xd7, 0x12, 0xa0, 0x97,
+
  0xf8, 0x85, 0xf4, 0xd0, 0x51, 0x3a, 0x1a, 0xc3, 0xa2, 0x69, 0xd5, 0xbb,
+
  0xce, 0xfd, 0xf9, 0xe9, 0x77, 0xbe, 0x2f, 0x4b, 0xd3, 0x7b, 0xf9, 0x11,
+
  0xed, 0xdc, 0xfd, 0xce, 0x12, 0x65, 0xa3, 0xdb, 0xa4, 0x97, 0x22, 0x78,
+
  0xa3, 0xf0, 0x13, 0xd9, 0x1b, 0xa1, 0xf2, 0xff, 0x62, 0x2a, 0xc7, 0x08,
+
  0x0c, 0xf9, 0x86, 0xd2, 0xb3, 0x23, 0x52, 0xbf, 0xc0, 0xc8, 0x5f, 0x23,
+
  0x22, 0x7a, 0x54, 0x1c, 0x0f, 0x96, 0xb0, 0xb7, 0xb0, 0xd0, 0x48, 0xd2,
+
  0x56, 0x7b, 0x8d, 0x5c, 0x91, 0x23, 0xe6, 0x2e, 0x3d, 0x38, 0xcb, 0x20,
+
  0x44, 0xe7, 0xf4, 0x9a, 0xc1, 0x71, 0xb9, 0x68, 0x41, 0x8d, 0xbf, 0xa1,
+
  0x5a, 0xef, 0x0e, 0xaf, 0xab, 0xd4, 0xd5, 0xc0, 0x3e, 0x80, 0x08, 0xb5,
+
  0xb0, 0xaa, 0x76, 0x17, 0x2e, 0x0b, 0x7b, 0xc9, 0xc1, 0x5e, 0x70, 0xc5,
+
  0x1c, 0x0d, 0xc1, 0x11, 0xc2, 0xc2, 0x62, 0x7d, 0x73, 0x34, 0xab, 0x8e,
+
  0xcd, 0x67, 0xac, 0xa6, 0x6e, 0x1e, 0xd5, 0xb2, 0xd8, 0x6b, 0xd6, 0xc4,
+
  0x2a, 0xbd, 0x66, 0xfe, 0xed, 0xfd, 0x04, 0x51, 0x74, 0x05, 0xb0, 0x51,
+
  0xfd, 0x3a, 0x98, 0xc8, 0xe3, 0xd8, 0x4f, 0xe5, 0x63, 0x1c, 0xb9, 0xd6,
+
  0xe3, 0xca, 0xe7, 0xbe, 0xdc, 0x6d, 0x00, 0xb9, 0x08, 0xf1, 0x96, 0x6e,
+
  0x82, 0xa4, 0xc2, 0xca, 0x07, 0x06, 0xa8, 0x83, 0x53, 0x0c, 0xfb, 0x97,
+
  0x4e, 0x10, 0xff, 0xf4, 0x96, 0xcb, 0xd8, 0x56, 0x3a, 0x22, 0xef, 0x42,
+
  0x70, 0x63, 0x66, 0xfb, 0x3a, 0x85, 0x6d, 0x60, 0x69, 0xcb, 0x9b, 0x12,
+
  0x55, 0xed, 0x59, 0x90, 0xd5, 0xd1, 0x5a, 0x8c, 0xb5, 0x7e, 0x93, 0x62,
+
  0x08, 0x33, 0x86, 0x55, 0xe8, 0x01, 0xaf, 0x9f, 0xa0, 0xe7, 0x39, 0x68,
+
  0x73, 0xd8, 0x88, 0xa5, 0x71, 0x0b, 0xc5, 0x0c, 0x41, 0x3e, 0x30, 0xa1,
+
  0x5f, 0x8d, 0xd8, 0xd1, 0xf6, 0x05, 0xb1, 0xc1, 0x22, 0x3d, 0xc2, 0x34,
+
  0x39, 0x08, 0xdd, 0xe9, 0x6d, 0x86, 0x36, 0x12, 0x92, 0xd1, 0xdd, 0x26,
+
  0x71, 0xad, 0x33, 0xbc, 0x4a, 0x9c, 0xd5, 0x43, 0xca, 0xb3, 0x26, 0xff,
+
  0xd1, 0xab, 0x58, 0x22, 0x85, 0xee, 0x36, 0x6f, 0xb3, 0x7a, 0x2b, 0x98,
+
  0x74, 0xe2, 0x28, 0x65, 0xed, 0xbd, 0x8b, 0x91, 0x66, 0x51, 0x7c, 0x19,
+
  0x65, 0xf2, 0xbb, 0xb8, 0x38, 0x11, 0x9a, 0xe0, 0xbe, 0xe6, 0xe0, 0x6e,
+
  0x10, 0x65, 0xe6, 0x99, 0x03, 0x12, 0xd1, 0x48, 0x83, 0x48, 0x78, 0x52,
+
  0xbb, 0x8d, 0x15, 0x5c, 0x0b, 0x64, 0x4e, 0x7f, 0x76, 0xf4, 0xb5, 0x0e,
+
  0x9b, 0xb0, 0x62, 0x85, 0x40, 0x98, 0x3e, 0x72, 0xe7, 0xd8, 0xd2, 0x62,
+
  0xaf, 0xfd, 0x67, 0x87, 0xba, 0xce, 0x10, 0xa1, 0x78, 0xd3, 0x86, 0x60,
+
  0x79, 0x37, 0x30, 0xc4, 0x49, 0x3e, 0xcc, 0x15, 0xda, 0xce, 0x2c, 0x5d,
+
  0xe8, 0x14, 0xdc, 0x5a, 0x4a, 0xe1, 0x3f, 0xfe, 0x90, 0x95, 0xc3, 0x1c,
+
  0x2d, 0x1b, 0xbf, 0x2e, 0x46, 0xf0, 0x1a, 0x5d, 0x04, 0x6c, 0xe9, 0x18,
+
  0x37, 0xe0, 0x4c, 0x92, 0x4c, 0x62, 0x23, 0xd0, 0x7c, 0xd2, 0xa8, 0x54,
+
  0xd7, 0x4f, 0x0e, 0x93, 0xb2, 0xb8, 0x5c, 0xb8, 0x82, 0x60, 0x18, 0x95,
+
  0xce, 0x91, 0x2a, 0x14, 0x6f, 0xa8, 0xeb, 0x80, 0xf1, 0x12, 0xc9, 0xb3,
+
  0x97, 0x2f, 0x39, 0xda, 0x24, 0xe4, 0x2b, 0xb0, 0x7b, 0x87, 0x40, 0x89,
+
  0x35, 0xa0, 0x3d, 0x41, 0xc3, 0x13, 0xde, 0x23, 0xd1, 0xc5, 0x85, 0x16,
+
  0x4b, 0xcd, 0x8a, 0xc0, 0x78, 0x0d, 0x44, 0x4b, 0xc0, 0x91, 0x96, 0x0a,
+
  0x0f, 0x07, 0x02, 0x3c, 0x5c, 0x6f, 0xc5, 0xb8, 0xbe, 0x49, 0x97, 0x6a,
+
  0xdb, 0x2d, 0xf3, 0xc2, 0x36, 0xb8, 0x44, 0xb1, 0x52, 0xdc, 0x11, 0x0a,
+
  0xba, 0x24, 0xab, 0x2c, 0xb5, 0x7b, 0xa7, 0xe8, 0x72, 0xfa, 0x5f, 0x6d,
+
  0xec, 0x7d, 0x5b, 0xdc, 0x5a, 0x4b, 0xde, 0x24, 0x63, 0xca, 0xca, 0xd7,
+
  0x4f, 0xbb, 0xf1, 0xe7, 0xb2, 0x17, 0x25, 0x26, 0x33, 0x4b, 0xac, 0x2c,
+
  0x61, 0x19, 0x8b, 0x7d, 0xdf, 0x05, 0x8c, 0x30, 0x8e, 0xb7, 0x0f, 0xf0,
+
  0x65, 0x0e, 0x83, 0xd1, 0x12, 0x99, 0xa6, 0xc8, 0x6f, 0x92, 0x8d, 0x36,
+
  0xf8, 0x82, 0xc9, 0xa6, 0x2c, 0x76, 0x56, 0x8d, 0xe7, 0x53, 0x76, 0xe9,
+
  0x50, 0x31, 0xb4, 0x58, 0x13, 0x4c, 0xd2, 0xe0, 0xb1, 0xc7, 0xfd, 0xad,
+
  0xf5, 0x79, 0xec, 0x72, 0x28, 0x5b, 0xdf, 0x12, 0x62, 0x30, 0xe8, 0x38,
+
  0xdc, 0x12, 0xec, 0xc9, 0xd4, 0x46, 0xd2, 0xc4, 0x95, 0xb0, 0x73, 0x4c,
+
  0x8f, 0x24, 0x20, 0x42, 0x0a, 0x27, 0xcd, 0xed, 0x8a, 0x4d, 0x9a, 0x01,
+
  0x9b, 0xb4, 0xd1, 0x6d, 0xf0, 0x4f, 0x2a, 0xb2, 0xe9, 0xec, 0xba, 0xa0,
+
  0x6f, 0xd8, 0x66, 0xd3, 0x48, 0x59, 0x09, 0x99, 0xda, 0x64, 0xde, 0x6a,
+
  0x61, 0xf5, 0x17, 0x61, 0xbd, 0x02, 0xc7, 0x2b, 0x42, 0xb6, 0x1d, 0x4c,
+
  0x40, 0xc2, 0x89, 0x0c, 0xa1, 0x28, 0xb0, 0x09, 0x8f, 0x9d, 0x06, 0x97,
+
  0x62, 0x17, 0x99, 0x03, 0xa2, 0x82, 0x83, 0xfa, 0x8f, 0x31, 0x67, 0x0e,
+
  0xae, 0xa8, 0x79, 0x11, 0x10, 0xab, 0x77, 0x5c, 0xde, 0xf9, 0xce, 0x0c,
+
  0xa6, 0xdd, 0x5f, 0x41, 0x1c, 0x02, 0x99, 0x70, 0xd5, 0x46, 0xf8, 0x63,
+
  0x78, 0x85, 0x58, 0x1e, 0x0d, 0x58, 0x4d, 0x92, 0x50, 0x82, 0x2d, 0xaa,
+
  0xf5, 0x28, 0x09, 0x12, 0x80, 0x13, 0x01, 0x71, 0x73, 0x46, 0xa3, 0x5c,
+
  0x25, 0x09, 0xcf, 0x50, 0xfa, 0xd1, 0x75, 0xa8, 0x6c, 0x83, 0xba, 0xae,
+
  0x12, 0x7f, 0x47, 0x48, 0xf2, 0x43, 0x2a, 0x68, 0xb1, 0x8d, 0xd9, 0x26,
+
  0xca, 0xe9, 0xe4, 0x7a, 0xf3, 0xf3, 0x6e, 0xbb, 0x38, 0xac, 0x9e, 0x37,
+
  0xed, 0x38, 0x85, 0xbb, 0xcd, 0x92, 0x48, 0x38, 0x60, 0xe9, 0x33, 0xaf,
+
  0xe9, 0x16, 0xfa, 0x8f, 0xbd, 0x9d, 0xb0, 0xcf, 0x92, 0xe3, 0x83, 0x4d,
+
  0x18, 0x48, 0xd6, 0x3c, 0x95, 0x40, 0xaa, 0x44, 0x8b, 0x6b, 0x4e, 0xc5,
+
  0x79, 0x80, 0x61, 0xd0, 0x38, 0x74, 0x8c, 0x33, 0x12, 0x77, 0x8b, 0xb2,
+
  0x16, 0xeb, 0xaa, 0x11, 0x0b, 0x49, 0x94, 0xe1, 0x49, 0x2c, 0x95, 0x8a,
+
  0x6b, 0xc2, 0x9c, 0x52, 0xad, 0xe0, 0x69, 0x76, 0x07, 0xb6, 0x49, 0xc2,
+
  0xb6, 0xea, 0xc5, 0x19, 0xaa, 0x69, 0x2e, 0x83, 0x00, 0x88, 0x51, 0xd4,
+
  0xbc, 0x40, 0x76, 0xe9, 0x4b, 0x00, 0x23, 0x4f, 0x6c, 0x64, 0xe6, 0x15,
+
  0x4d, 0xdc, 0x02, 0xd1, 0xfa, 0xca, 0x70, 0xdc, 0x39, 0x37, 0xd0, 0x60,
+
  0x7e, 0x79, 0x65, 0x71, 0x69, 0x83, 0x44, 0xc7, 0x3e, 0x28, 0x3d, 0xdd,
+
  0x28, 0xd1, 0x2d, 0x1b, 0x57, 0xa2, 0x11, 0x85, 0x88, 0x95, 0xd0, 0x88,
+
  0xc4, 0x44, 0xb0, 0x31, 0xa0, 0x21, 0x66, 0x29, 0x43, 0xb2, 0x51, 0x27,
+
  0x3c, 0x09, 0x01, 0xe9, 0x27, 0x45, 0x0c, 0x47, 0x35, 0xcd, 0x39, 0x8a,
+
  0x1c, 0x29, 0xbc, 0x43, 0x21, 0x28, 0xea, 0xc6, 0xe9, 0x08, 0xa7, 0xb3,
+
  0x42, 0xe1, 0xe4, 0x5b, 0x40, 0x13, 0xcd, 0x56, 0x22, 0x76, 0x7d, 0xa1,
+
  0xd6, 0x04, 0x24, 0xda, 0x45, 0xaa, 0xc6, 0xb0, 0x58, 0x46, 0x0e, 0x12,
+
  0x27, 0xe8, 0xc9, 0xc5, 0x30, 0x0f, 0xd5, 0x0c, 0x03, 0x1c, 0x1b, 0x09,
+
  0xb4, 0x94, 0x5d, 0x94, 0x53, 0x4d, 0x93, 0x61, 0x46, 0xb6, 0x19, 0x1a,
+
  0x75, 0xf0, 0xe2, 0x18, 0x38, 0x50, 0x64, 0x6c, 0x5e, 0x8a, 0x57, 0xb8,
+
  0x5b, 0x9d, 0x39, 0x5d, 0x79, 0xab, 0x84, 0x4b, 0x62, 0xad, 0x47, 0xef,
+
  0xfa, 0x7e, 0xef, 0xce, 0x1b, 0x0a, 0x61, 0x67, 0xba, 0x11, 0x33, 0x34,
+
  0x43, 0x47, 0xcb, 0x0d, 0x99, 0x34, 0x57, 0xb4, 0x97, 0x2a, 0x2e, 0xfb,
+
  0x11, 0x73, 0xeb, 0xa8, 0xac, 0xb3, 0x98, 0x2c, 0x29, 0x53, 0x0e, 0x94,
+
  0x16, 0x36, 0xcf, 0xf3, 0x09, 0x60, 0x63, 0xd4, 0x28, 0x4b, 0x15, 0x7a,
+
  0xc0, 0xce, 0x5a, 0x3e, 0x6e, 0x6c, 0x1a, 0x63, 0x5a, 0x10, 0x7b, 0xb2,
+
  0xda, 0x03, 0xe8, 0xd7, 0xe1, 0x73, 0x1f, 0x38, 0x64, 0x61, 0x86, 0x16,
+
  0x87, 0x40, 0xcd, 0x59, 0x7a, 0x56, 0xe6, 0x1d, 0x77, 0x91, 0x43, 0xb4,
+
  0x97, 0xa6, 0x41, 0xec, 0x83, 0xb0, 0xa9, 0xe5, 0x8a, 0xb4, 0x43, 0x4a,
+
  0x51, 0xbc, 0x78, 0xd4, 0x3b, 0x3d, 0x04, 0x8d, 0x60, 0x4b, 0x9e, 0x17,
+
  0x23, 0x98, 0x0b, 0xb5, 0x09, 0x2e, 0xf1, 0x1a, 0x7d, 0xde, 0xa2, 0xbc,
+
  0x8d, 0x2e, 0xee, 0xb1, 0xbd, 0x34, 0x26, 0xdb, 0x12, 0x19, 0x03, 0xb4,
+
  0xb2, 0x2b, 0x19, 0xed, 0xed, 0xdf, 0xee, 0xad, 0x25, 0xeb, 0xbc, 0x71,
+
  0xb2, 0x0e, 0x4e, 0x53, 0xca, 0x8b, 0x86, 0xfc, 0x2a, 0xa7, 0x0a, 0x90,
+
  0xaf, 0x35, 0xa3, 0x7c, 0x21, 0xce, 0xb4, 0xc2, 0x65, 0xa9, 0xa1, 0xd7,
+
  0x36, 0xe9, 0xc5, 0xed, 0x2a, 0xa7, 0x95, 0x70, 0x46, 0xa7, 0x7a, 0x3c,
+
  0x69, 0xcf, 0x38, 0x71, 0x60, 0x1c, 0x32, 0x3c, 0xd2, 0xeb, 0x34, 0x9f,
+
  0xf0, 0x52, 0x9a, 0x3b, 0x5e, 0x42, 0x16, 0x39, 0x94, 0x82, 0x25, 0xa6,
+
  0xcb, 0xcc, 0x8a, 0x2a, 0x55, 0xcc, 0xcd, 0x74, 0x24, 0xb1, 0xc9, 0xac,
+
  0x6d, 0x6a, 0x5f, 0x64, 0x57, 0xb1, 0xa9, 0xb5, 0x76, 0x94, 0x0c, 0xd9,
+
  0x40, 0x97, 0xe3, 0xa2, 0x58, 0xcf, 0x04, 0xe1, 0x8f, 0x16, 0x1f, 0x75,
+
  0x6c, 0x02, 0x5d, 0x8d, 0xa3, 0xe8, 0x84, 0x5f, 0x67, 0xbd, 0x62, 0xd6,
+
  0xa3, 0xfb, 0x46, 0xab, 0x50, 0xe1, 0x87, 0x2a, 0xaf, 0xf2, 0xba, 0xc1,
+
  0x52, 0xdb, 0xa5, 0x24, 0xaa, 0x28, 0x1f, 0x4b, 0x77, 0x71, 0xb1, 0xd3,
+
  0xc9, 0x35, 0x44, 0x5c, 0x54, 0x5d, 0x2f, 0x28, 0x14, 0x6a, 0x9b, 0x9c,
+
  0xc4, 0x1a, 0x64, 0x60, 0x31, 0xd6, 0xa1, 0xc5, 0x2b, 0xc3, 0x14, 0x36,
+
  0xbe, 0x7b, 0x82, 0xfd, 0x61, 0x92, 0xb1, 0x40, 0x96, 0x6a, 0x6c, 0x8d,
+
  0x66, 0xd0, 0x72, 0x08, 0x63, 0xca, 0x16, 0x6d, 0x1b, 0xe0, 0x68, 0x51,
+
  0x7a, 0xef, 0x44, 0x43, 0xc1, 0xd7, 0x31, 0x48, 0x05, 0x19, 0x18, 0xfc,
+
  0xe5, 0x02, 0x93, 0x6f, 0x39, 0xc9, 0xc9, 0x5f, 0xf2, 0xab, 0xb4, 0x5d,
+
  0x5a, 0x3a, 0xef, 0xb2, 0x0d, 0xce, 0x3d, 0x14, 0xb2, 0x48, 0x99, 0x27,
+
  0x3d, 0x49, 0xd1, 0x5a, 0xeb, 0x02, 0xe8, 0x8e, 0x44, 0x94, 0x88, 0x0a,
+
  0x1a, 0xab, 0x1f, 0x03, 0x1c, 0x37, 0xbe, 0x4c, 0x3e, 0x9f, 0x3e, 0xe4,
+
  0xbb, 0xbc, 0x97, 0xf2, 0xfc, 0x10, 0x80, 0xfa, 0x64, 0xf1, 0xd6, 0x82,
+
  0xc9, 0x7a, 0xb2, 0xdf, 0x30, 0xb2, 0x63, 0xde, 0x85, 0x92, 0xde, 0x5f,
+
  0xba, 0x21, 0x1e, 0x2f, 0x79, 0xca, 0x78, 0x15, 0xdf, 0x2d, 0xdd, 0x30,
+
  0x82, 0x63, 0x21, 0xb2, 0x39, 0xd7, 0x65, 0x52, 0x59, 0x45, 0x32, 0x36,
+
  0xa3, 0x2d, 0xa6, 0x81, 0x93, 0x6d, 0xbc, 0x4a, 0xac, 0x80, 0x24, 0xdc,
+
  0xdb, 0x03, 0x0c, 0xe5, 0x37, 0x5b, 0x28, 0x5e, 0x25, 0x97, 0x14, 0x60,
+
  0x90, 0x3b, 0x71, 0x28, 0x72, 0x60, 0xab, 0xf8, 0x81, 0x32, 0x1e, 0x10,
+
  0x06, 0x5e, 0x24, 0x68, 0x83, 0xa1, 0x4d, 0xac, 0xd2, 0x71, 0x96, 0x5c,
+
  0x2e, 0xd2, 0x72, 0x44, 0x95, 0x9d, 0x90, 0x4d, 0x71, 0x39, 0x1f, 0x4c,
+
  0x89, 0xa7, 0x02, 0x7d, 0xe4, 0xc1, 0x09, 0x36, 0x1c, 0x24, 0x95, 0xb2,
+
  0x98, 0x44, 0x99, 0x0b, 0x52, 0x35, 0xe8, 0xe2, 0xe2, 0x8c, 0xe2, 0x25,
+
  0xbd, 0xad, 0x69, 0x08, 0xd7, 0x10, 0xe8, 0x1a, 0x96, 0x31, 0x1a, 0x16,
+
  0x21, 0xac, 0x42, 0x0c, 0x99, 0x88, 0xa1, 0x23, 0x66, 0xd2, 0x26, 0x2b,
+
  0xb8, 0x25, 0x5d, 0x5c, 0x44, 0x80, 0xb7, 0xd6, 0xa8, 0x02, 0x84, 0x68,
+
  0xb2, 0x2c, 0xb4, 0xd0, 0x48, 0x1f, 0x96, 0x27, 0x2c, 0xdc, 0x48, 0x88,
+
  0x79, 0x93, 0xa5, 0x4d, 0xb9, 0xfa, 0x39, 0x59, 0xe5, 0xc7, 0xe3, 0x0b,
+
  0x4c, 0xbe, 0x79, 0xf0, 0x46, 0xcb, 0xfe, 0xd0, 0x10, 0x38, 0x8c, 0x46,
+
  0x2e, 0x64, 0xb6, 0x7b, 0xe1, 0x25, 0xad, 0x98, 0x5e, 0xc4, 0xc1, 0xd1,
+
  0x26, 0x92, 0xce, 0x14, 0x3d, 0xf1, 0xc1, 0x83, 0x23, 0x98, 0x55, 0x11,
+
  0x54, 0x13, 0x38, 0xe8, 0xde, 0xa6, 0x5f, 0x59, 0xe1, 0xa4, 0xe4, 0xec,
+
  0xed, 0x05, 0xb5, 0x80, 0x31, 0xa0, 0x17, 0xc7, 0x5d, 0xe4, 0x35, 0x1c,
+
  0x32, 0x5d, 0x66, 0x13, 0x12, 0xf6, 0xea, 0x6c, 0x78, 0x35, 0x2b, 0xd0,
+
  0xbf, 0x48, 0xc9, 0x84, 0x78, 0x23, 0xfc, 0x94, 0x0d, 0x9e, 0x1d, 0xfe,
+
  0x99, 0x6b, 0xca, 0x60, 0xd9, 0xcf, 0x37, 0xa7, 0x67, 0xcf, 0x4f, 0x5e,
+
  0x3f, 0xeb, 0x26, 0x47, 0xa7, 0x67, 0x7f, 0x85, 0x26, 0x5e, 0x9d, 0xfe,
+
  0x19, 0x03, 0xbb, 0x38, 0x2f, 0x80, 0x4b, 0x2b, 0x3c, 0x78, 0x8d, 0xa0,
+
  0xbc, 0x68, 0xdd, 0x10, 0x1b, 0xb9, 0xf3, 0xb2, 0x05, 0x46, 0xd1, 0xc7,
+
  0x04, 0xce, 0xc4, 0x42, 0xad, 0x61, 0x39, 0xa0, 0xb5, 0x17, 0xc7, 0x87,
+
  0xcf, 0x30, 0xca, 0xeb, 0xec, 0xf4, 0x9c, 0x87, 0x8a, 0x43, 0x0e, 0x33,
+
  0x21, 0xe7, 0xba, 0xd8, 0xaf, 0x48, 0x9d, 0x95, 0x68, 0x73, 0x01, 0xf1,
+
  0x82, 0x43, 0x44, 0xe8, 0xb7, 0xb8, 0x31, 0x5e, 0xce, 0x94, 0x1e, 0xab,
+
  0x10, 0x58, 0x63, 0x3a, 0xaf, 0x07, 0x9a, 0x94, 0x28, 0x6b, 0x2e, 0xd8,
+
  0xc5, 0x30, 0x3c, 0x86, 0xc4, 0x68, 0x44, 0x42, 0xab, 0x45, 0xc3, 0xe9,
+
  0x46, 0xe0, 0xba, 0x09, 0xb9, 0x92, 0xe8, 0xb9, 0x9b, 0x54, 0xc2, 0xd0,
+
  0x80, 0x9d, 0xa1, 0x0a, 0x03, 0x04, 0xff, 0x9c, 0xbc, 0x89, 0x7c, 0xee,
+
  0x91, 0x6a, 0xc6, 0x91, 0x64, 0x46, 0x77, 0x6f, 0x6a, 0x85, 0xbc, 0x70,
+
  0x11, 0x12, 0xeb, 0x44, 0x4a, 0x5c, 0xff, 0x85, 0x3f, 0xa6, 0x0e, 0x31,
+
  0xc8, 0x1d, 0x2d, 0x90, 0x0b, 0x4c, 0xbc, 0xce, 0xb8, 0xac, 0x1a, 0xad,
+
  0xaf, 0x1c, 0x79, 0xae, 0x7b, 0x7d, 0x45, 0x74, 0x39, 0xb7, 0x58, 0xad,
+
  0x8b, 0x40, 0x9f, 0xd1, 0xa1, 0x26, 0xdf, 0x89, 0x7a, 0x6b, 0x94, 0xd4,
+
  0x2d, 0x1f, 0x5c, 0xa2, 0x82, 0x28, 0x2e, 0x5e, 0xf7, 0x41, 0xb5, 0xa7,
+
  0x5c, 0x24, 0xcc, 0xb1, 0x9b, 0x1d, 0x6b, 0x7d, 0xc1, 0xed, 0xc3, 0x56,
+
  0x48, 0xc1, 0x0b, 0x7d, 0x00, 0x87, 0x6f, 0x26, 0x51, 0x4f, 0x58, 0x6a,
+
  0xb1, 0xc7, 0xcc, 0xb7, 0x4a, 0x3c, 0xa4, 0x9c, 0x0b, 0x27, 0x30, 0x2b,
+
  0x87, 0xb1, 0x99, 0x07, 0x32, 0x83, 0x74, 0x38, 0x84, 0x0d, 0x72, 0xe9,
+
  0x0d, 0x44, 0xf2, 0xfb, 0x3b, 0x1f, 0x42, 0x68, 0x1b, 0xaa, 0xb4, 0x55,
+
  0xd2, 0xe3, 0xbc, 0x0a, 0xc6, 0x8a, 0x50, 0x0e, 0xf2, 0x7c, 0x35, 0x03,
+
  0xf1, 0x09, 0x67, 0xc6, 0x3d, 0xcc, 0x9b, 0x08, 0x84, 0xfa, 0xf2, 0x04,
+
  0x48, 0x53, 0xc2, 0x4f, 0x1e, 0x30, 0x1e, 0x2e, 0xe7, 0x54, 0x90, 0x02,
+
  0x4f, 0xeb, 0x08, 0x6d, 0x68, 0x4f, 0x67, 0xa7, 0x67, 0xfb, 0xab, 0xba,
+
  0xc2, 0xef, 0x5c, 0x88, 0x97, 0xda, 0x52, 0x1c, 0x4b, 0x91, 0xce, 0x28,
+
  0xa5, 0xe0, 0xcd, 0xf1, 0xc5, 0x1b, 0xbb, 0x94, 0x5f, 0x1d, 0x2e, 0x4d,
+
  0x40, 0x1a, 0xc5, 0xaf, 0xfc, 0xf8, 0xfd, 0xf0, 0x65, 0xf4, 0x16, 0x1d,
+
  0xf0, 0x6a, 0xf5, 0x32, 0xe0, 0x77, 0xf7, 0x8c, 0xed, 0xc5, 0xf1, 0xcb,
+
  0x33, 0x19, 0xdb, 0x9f, 0xdf, 0x3c, 0xff, 0x6b, 0x1c, 0x24, 0xa6, 0x6c,
+
  0xb8, 0xd5, 0x3b, 0xfe, 0xc9, 0x01, 0xcd, 0x0d, 0x0d, 0xf1, 0x2f, 0x1c,
+
  0xce, 0x7e, 0x71, 0x7c, 0xbf, 0x6f, 0xeb, 0x2f, 0xc9, 0xeb, 0x97, 0xb0,
+
  0x94, 0xeb, 0x24, 0x0e, 0xcb, 0xd8, 0x7b, 0x1c, 0x9d, 0xef, 0xa4, 0x3e,
+
  0xff, 0x71, 0xf2, 0x14, 0xed, 0x83, 0xb1, 0x9b, 0x95, 0x50, 0x8b, 0x66,
+
  0xcc, 0x08, 0x90, 0x3d, 0x5f, 0x6b, 0x84, 0x3f, 0x3c, 0x81, 0x4f, 0x6f,
+
  0xf9, 0xe5, 0x73, 0x7e, 0x07, 0xfc, 0x2e, 0x04, 0x6e, 0x59, 0x0e, 0xc1,
+
  0x2c, 0x78, 0x90, 0x30, 0x9a, 0xb5, 0xce, 0x87, 0x28, 0x71, 0x71, 0xe8,
+
  0x1e, 0xa6, 0xe9, 0xd2, 0x91, 0x41, 0x16, 0xa2, 0x36, 0x81, 0xbc, 0xaa,
+
  0x14, 0xc9, 0x2b, 0xbe, 0x00, 0xcc, 0x2c, 0x00, 0x22, 0x21, 0x9d, 0x19,
+
  0xb2, 0x81, 0x24, 0xe1, 0x72, 0xa6, 0xd8, 0x76, 0x96, 0xf0, 0x1b, 0xa6,
+
  0x7b, 0x76, 0x9c, 0x8a, 0xb6, 0xc1, 0x22, 0x1f, 0x6a, 0x89, 0x73, 0x54,
+
  0x53, 0xca, 0x59, 0x97, 0x2f, 0x89, 0xce, 0xe9, 0xd9, 0xc5, 0xc9, 0xe9,
+
  0xeb, 0xf3, 0xe4, 0x3f, 0x3b, 0x77, 0xc9, 0x14, 0x26, 0x52, 0x28, 0xfb,
+
  0x21, 0x5b, 0x01, 0xc9, 0x14, 0x24, 0x52, 0x68, 0x9a, 0xcf, 0x97, 0x97,
+
  0x29, 0xbc, 0x50, 0x61, 0xde, 0xd9, 0x68, 0x7b, 0x5b, 0xb1, 0x1c, 0x5d,
+
  0x95, 0x8c, 0xdf, 0x10, 0xe6, 0x18, 0x77, 0xd4, 0xf9, 0xcf, 0x0e, 0x52,
+
  0xa7, 0xae, 0xe0, 0x9a, 0x4a, 0x4a, 0x23, 0x23, 0x03, 0x23, 0x9c, 0x60,
+
  0x15, 0x9f, 0xfe, 0xed, 0xf7, 0xbf, 0x20, 0x14, 0x0c, 0x21, 0xc1, 0x1c,
+
  0x80, 0x3c, 0x50, 0xfe, 0xad, 0x8b, 0x3f, 0x7f, 0xe9, 0xf7, 0xfb, 0x8d,
+
  0xaa, 0xbb, 0xc6, 0x2f, 0xf0, 0x7b, 0x74, 0x8c, 0x49, 0xf0, 0xa7, 0xd9,
+
  0x02, 0xb0, 0x1d, 0xc6, 0x7c, 0x42, 0xa7, 0xcd, 0x3c, 0xcd, 0x4b, 0xb2,
+
  0xfb, 0x18, 0xf6, 0x04, 0xde, 0xe4, 0x5d, 0x8b, 0x21, 0xe2, 0x2b, 0xcc,
+
  0xb2, 0x2c, 0x8d, 0xf4, 0x36, 0xab, 0x2d, 0x05, 0x7f, 0x72, 0xf2, 0x94,
+
  0xf4, 0x19, 0xf6, 0x45, 0x74, 0x18, 0x6e, 0x20, 0x08, 0x4f, 0x33, 0x95,
+
  0x23, 0x12, 0x99, 0xe1, 0xc8, 0x86, 0x2b, 0x26, 0x12, 0x59, 0x6f, 0x75,
+
  0xdc, 0x52, 0xf9, 0x5e, 0xd6, 0x1f, 0x13, 0x12, 0x2d, 0x88, 0x63, 0x6f,
+
  0x67, 0xf5, 0x70, 0x1b, 0xe7, 0x53, 0x25, 0xd1, 0xe1, 0x74, 0x1b, 0x5c,
+
  0xf8, 0x10, 0xc7, 0x18, 0x27, 0x88, 0x54, 0x17, 0x0f, 0x1b, 0xa2, 0xf5,
+
  0x34, 0x07, 0x59, 0x64, 0xbe, 0x34, 0x13, 0x4c, 0x68, 0xc8, 0x16, 0xd3,
+
  0xe0, 0x66, 0xb4, 0x1c, 0x58, 0xb8, 0x5f, 0xc7, 0xa8, 0xc2, 0x9c, 0x28,
+
  0x48, 0xd9, 0xad, 0xde, 0xe4, 0x31, 0xc9, 0x61, 0x16, 0x12, 0xf2, 0x67,
+
  0xbd, 0x70, 0x83, 0x4d, 0x47, 0xdd, 0x7b, 0xb6, 0x2e, 0x3a, 0x02, 0xd1,
+
  0xd4, 0xa9, 0x33, 0x04, 0x31, 0xd3, 0x64, 0x76, 0x75, 0x2c, 0xe0, 0x8c,
+
  0x7c, 0x3e, 0xba, 0x83, 0xb8, 0x42, 0x92, 0x44, 0x56, 0x44, 0xef, 0x5a,
+
  0xc0, 0x46, 0xc0, 0xd4, 0xc2, 0x8e, 0x95, 0xe4, 0xc8, 0x9c, 0x8b, 0x0f,
+
  0x86, 0xcd, 0xb4, 0x59, 0x0b, 0xac, 0x10, 0xd2, 0x4e, 0x48, 0x0a, 0x5b,
+
  0x26, 0x83, 0x3e, 0x7a, 0xc0, 0x26, 0xa3, 0x61, 0x5a, 0x8e, 0x02, 0xf3,
+
  0xb7, 0x0d, 0xe7, 0x23, 0x56, 0x70, 0xf1, 0xc1, 0x40, 0xea, 0x9a, 0x25,
+
  0x10, 0x3a, 0x8b, 0x09, 0x36, 0xba, 0x45, 0x38, 0xe7, 0xc1, 0xeb, 0xa2,
+
  0x21, 0x0a, 0x54, 0xd6, 0x0d, 0x0f, 0x31, 0x65, 0x90, 0x39, 0xff, 0xa9,
+
  0x46, 0xd8, 0x69, 0xc4, 0x47, 0xaf, 0x97, 0xcf, 0xaf, 0x1f, 0x06, 0x03,
+
  0x3a, 0xfd, 0xfd, 0x58, 0xe1, 0x5d, 0x6a, 0x9f, 0xab, 0xbf, 0xa0, 0xab,
+
  0x80, 0xb9, 0xd4, 0xc9, 0x59, 0xb3, 0xc2, 0xe2, 0x0f, 0xb7, 0x92, 0xa0,
+
  0xaf, 0x57, 0x00, 0xef, 0x92, 0x98, 0x5a, 0x37, 0x7e, 0xbf, 0xd1, 0x72,
+
  0xae, 0x38, 0x11, 0x8d, 0x03, 0xf3, 0x0a, 0xdd, 0xce, 0x80, 0xa7, 0xb0,
+
  0x51, 0x45, 0x21, 0xa1, 0xc8, 0x31, 0x37, 0x77, 0x25, 0x46, 0x73, 0x6b,
+
  0x09, 0x46, 0x84, 0x83, 0xdf, 0x29, 0x34, 0xca, 0x4a, 0x36, 0x08, 0x9c,
+
  0xdb, 0xa4, 0xc0, 0xec, 0xa7, 0xc5, 0x8c, 0xb2, 0xa0, 0x2c, 0xb0, 0xd6,
+
  0xc5, 0xe2, 0xc9, 0x28, 0x27, 0x05, 0xd9, 0xac, 0x51, 0xf4, 0xa1, 0x74,
+
  0xa6, 0x99, 0x56, 0x68, 0x27, 0x9f, 0x49, 0x85, 0x1c, 0x32, 0x5f, 0x86,
+
  0x9f, 0xa7, 0xf5, 0xe4, 0x38, 0x6a, 0x22, 0x68, 0x47, 0x49, 0x44, 0x1d,
+
  0x8e, 0x92, 0xc8, 0xf5, 0x63, 0x1c, 0xe0, 0x86, 0xce, 0x5c, 0xa1, 0x21,
+
  0xa2, 0x3a, 0x47, 0x34, 0x36, 0x80, 0x3a, 0x44, 0x58, 0x29, 0x01, 0xa6,
+
  0x07, 0xfe, 0x62, 0x18, 0x20, 0xcd, 0xb9, 0xaa, 0x0c, 0x44, 0x2c, 0xa6,
+
  0x17, 0xf6, 0xe1, 0x6a, 0x65, 0x4b, 0xfd, 0xa4, 0xab, 0x31, 0x8f, 0x1c,
+
  0xb0, 0x0f, 0x2b, 0x4f, 0x45, 0x35, 0x3d, 0x13, 0xe8, 0x5a, 0xb1, 0x70,
+
  0x11, 0xb6, 0x15, 0xad, 0x07, 0x26, 0x14, 0x44, 0x6e, 0x62, 0xdb, 0xe2,
+
  0xf6, 0x1e, 0x53, 0x35, 0x0c, 0x9c, 0xaa, 0x41, 0x16, 0xde, 0x28, 0xd5,
+
  0x63, 0x60, 0xab, 0x4b, 0x89, 0x7b, 0x8c, 0x71, 0x76, 0x2d, 0xaf, 0x53,
+
  0x62, 0x08, 0x10, 0x87, 0xa2, 0x3b, 0x84, 0xd7, 0x24, 0x9f, 0xf4, 0x11,
+
  0x9a, 0x0e, 0xc2, 0x19, 0x91, 0xac, 0x56, 0x77, 0x0e, 0x7e, 0x4b, 0xfe,
+
  0xa0, 0xb6, 0xea, 0x6e, 0xa6, 0x83, 0x87, 0x0f, 0xf7, 0x0f, 0x76, 0xf7,
+
  0x10, 0xd8, 0x7b, 0x07, 0xf4, 0xd6, 0x75, 0x83, 0xf6, 0x75, 0xa1, 0x24,
+
  0x66, 0x7f, 0x52, 0xf7, 0xaa, 0xeb, 0xa1, 0xbb, 0xcc, 0x90, 0xd0, 0x9f,
+
  0xc2, 0x3a, 0x7f, 0x67, 0x02, 0xa5, 0x46, 0xa8, 0x53, 0xf1, 0x1f, 0xb1,
+
  0xec, 0x00, 0x39, 0x85, 0x04, 0x20, 0x87, 0xb6, 0xc4, 0x84, 0x45, 0x90,
+
  0x40, 0x0c, 0xd2, 0x61, 0x48, 0x1e, 0x01, 0x26, 0x25, 0xaf, 0x13, 0x01,
+
  0x98, 0xab, 0xd4, 0x31, 0xa2, 0x98, 0x50, 0xe4, 0x87, 0x61, 0x5b, 0x91,
+
  0x02, 0x8e, 0x5c, 0x72, 0x05, 0x93, 0x64, 0x31, 0xef, 0x1b, 0xe2, 0xa8,
+
  0x19, 0x53, 0xf4, 0x3d, 0xe8, 0x6f, 0x27, 0x89, 0x80, 0xb2, 0x38, 0x20,
+
  0xd6, 0xba, 0x11, 0x1b, 0x40, 0x54, 0xcf, 0x5a, 0x8e, 0x2c, 0x82, 0xb4,
+
  0xd8, 0xf4, 0x74, 0x7e, 0x7c, 0x21, 0x30, 0x08, 0xe2, 0x81, 0xc5, 0x9d,
+
  0x03, 0xd1, 0x77, 0x03, 0xf0, 0xcb, 0xc3, 0x0f, 0x1f, 0x8c, 0x5d, 0x06,
+
  0xa5, 0x87, 0x8b, 0xe1, 0x88, 0x10, 0xf8, 0x70, 0xe7, 0x49, 0x37, 0x79,
+
  0xb8, 0xf7, 0x4d, 0x17, 0x13, 0xcc, 0xba, 0x98, 0xb1, 0xb6, 0x87, 0xbf,
+
  0xee, 0xe3, 0x43, 0x8f, 0x76, 0x1e, 0x86, 0x57, 0xf5, 0xee, 0x1b, 0x65,
+
  0x51, 0xd8, 0xb2, 0x06, 0x83, 0xa7, 0x83, 0x82, 0xfd, 0xf0, 0xbc, 0x3f,
+
  0x30, 0x9e, 0x68, 0x39, 0x39, 0xab, 0x8c, 0x13, 0x01, 0x28, 0xab, 0x84,
+
  0xa3, 0x7c, 0xc3, 0xad, 0x40, 0xb1, 0x31, 0xea, 0xeb, 0xc0, 0x5f, 0xea,
+
  0x2b, 0xa0, 0x0f, 0x4a, 0xb5, 0x94, 0x15, 0xa2, 0x58, 0xd0, 0x62, 0x41,
+
  0xa1, 0xa0, 0xac, 0x46, 0xe7, 0x0c, 0x4a, 0x18, 0x8c, 0xc9, 0x1c, 0x42,
+
  0x9e, 0x63, 0x4c, 0x79, 0x4a, 0xe5, 0x35, 0x77, 0x71, 0xcd, 0x89, 0xc9,
+
  0x55, 0xa2, 0x93, 0x72, 0x0c, 0x4e, 0x99, 0x4d, 0x29, 0xa0, 0x8a, 0x03,
+
  0xa6, 0x1d, 0xfe, 0x5c, 0x66, 0xeb, 0x15, 0x5c, 0x6e, 0x3a, 0x82, 0x3e,
+
  0x71, 0x66, 0xb1, 0x25, 0x44, 0xc1, 0xac, 0x72, 0xeb, 0x8e, 0xd4, 0x42,
+
  0x1d, 0x8a, 0x3e, 0x00, 0xf3, 0x81, 0xe9, 0x12, 0xb2, 0x62, 0x32, 0x48,
+
  0x87, 0xef, 0x31, 0x44, 0x2b, 0x9d, 0x5c, 0x16, 0x25, 0xec, 0xdb, 0x94,
+
  0xed, 0x78, 0x41, 0x6a, 0xc3, 0xf6, 0xa6, 0xe9, 0x07, 0xb6, 0x4a, 0xe3,
+
  0xed, 0x4d, 0x01, 0xb4, 0x0e, 0x4a, 0xad, 0xa8, 0xe5, 0x70, 0x5a, 0x9a,
+
  0x05, 0xb3, 0x0d, 0x1e, 0x9e, 0x17, 0xad, 0x29, 0x4f, 0x23, 0xb7, 0x40,
+
  0x19, 0x9a, 0xc6, 0x1b, 0xea, 0xe0, 0x10, 0xef, 0x84, 0x03, 0x97, 0xe1,
+
  0x25, 0xb1, 0x9a, 0x28, 0x3b, 0xd0, 0xce, 0xdc, 0xa4, 0x06, 0x1b, 0x9b,
+
  0x69, 0x71, 0x6c, 0xac, 0xed, 0xa1, 0x96, 0x67, 0xd6, 0x23, 0x7c, 0xfc,
+
  0x3e, 0x6e, 0x78, 0xc8, 0xd9, 0x45, 0x0e, 0xf5, 0x98, 0x92, 0x76, 0x5d,
+
  0x0e, 0x2b, 0x3d, 0xf3, 0x25, 0x92, 0x82, 0xa8, 0xe1, 0xaf, 0xd7, 0x95,
+
  0x8b, 0xfd, 0x0a, 0xc7, 0x1c, 0x05, 0xfd, 0x3a, 0x6c, 0x91, 0xad, 0xd4,
+
  0x60, 0x8f, 0x2d, 0xa3, 0xdd, 0x0c, 0x78, 0xbf, 0x98, 0x92, 0x1b, 0xe1,
+
  0xe2, 0xc4, 0x33, 0xcd, 0x0c, 0xed, 0x63, 0xf4, 0x5b, 0x21, 0x7c, 0xb5,
+
  0x8e, 0x66, 0xa7, 0x9a, 0x64, 0xa3, 0xcb, 0xec, 0x2a, 0x9d, 0x4e, 0xb3,
+
  0xb2, 0x43, 0x64, 0xa6, 0xc1, 0xff, 0x7d, 0xac, 0x04, 0x43, 0xa6, 0x0d,
+
  0x73, 0x8e, 0x47, 0x48, 0xe6, 0x18, 0x0e, 0xa4, 0xf7, 0x78, 0xb2, 0x29,
+
  0x45, 0x44, 0xc8, 0xac, 0x42, 0x2b, 0x4f, 0xe0, 0x66, 0xb8, 0x32, 0xe5,
+
  0x70, 0xab, 0xab, 0x0e, 0x6b, 0xb6, 0xb0, 0x18, 0x9f, 0x0f, 0x16, 0x16,
+
  0xbc, 0xa2, 0x2c, 0x86, 0x8c, 0x6f, 0x66, 0xbc, 0x56, 0x15, 0x6e, 0x86,
+
  0x2e, 0xbe, 0x50, 0xa0, 0x29, 0x19, 0x2d, 0x30, 0xd4, 0xca, 0xaa, 0x0a,
+
  0x72, 0xea, 0xb3, 0x1f, 0x2e, 0xcb, 0x5c, 0x7a, 0xb9, 0x12, 0x31, 0x10,
+
  0x8e, 0x1d, 0xea, 0x63, 0x64, 0xe1, 0xee, 0x8b, 0xef, 0x9f, 0xcb, 0x52,
+
  0xeb, 0x88, 0xe0, 0xf4, 0x91, 0xd6, 0x06, 0x27, 0xe3, 0x0a, 0x38, 0xc1,
+
  0x44, 0x34, 0x3f, 0x4a, 0x6a, 0x81, 0xd1, 0x85, 0x7a, 0x31, 0x74, 0x1f,
+
  0x11, 0xa2, 0x4d, 0x52, 0x0d, 0xcb, 0x7c, 0x4e, 0xd8, 0xba, 0x88, 0x01,
+
  0x9c, 0x35, 0x0a, 0xa4, 0xeb, 0x9a, 0x10, 0x82, 0xcf, 0x52, 0x10, 0x18,
+
  0xd9, 0xda, 0x2c, 0x70, 0x6b, 0x0a, 0xaa, 0xaa, 0xe5, 0x70, 0x2e, 0x23,
+
  0xbd, 0x09, 0x37, 0x43, 0x23, 0xbb, 0xc5, 0xc1, 0x4d, 0xd2, 0xf7, 0xb7,
+
  0x4e, 0xe0, 0x41, 0x9c, 0xaa, 0x09, 0x86, 0x90, 0xb8, 0xb4, 0x2a, 0x7c,
+
  0xf5, 0x8a, 0xf5, 0xe2, 0x5b, 0x71, 0xc1, 0x4a, 0x66, 0x4a, 0x37, 0x08,
+
  0xdb, 0xb5, 0x03, 0x65, 0xb5, 0x17, 0x39, 0x04, 0xaf, 0xb9, 0x86, 0x6e,
+
  0x09, 0xbd, 0xa9, 0xb0, 0xab, 0x2b, 0x48, 0x17, 0x91, 0x65, 0x90, 0xc8,
+
  0xfd, 0xc5, 0x78, 0x05, 0xea, 0x5d, 0x60, 0x1d, 0x5e, 0xe5, 0x1c, 0x99,
+
  0x51, 0x23, 0xaf, 0x3a, 0xc0, 0x8e, 0x51, 0xd6, 0x25, 0x4c, 0x48, 0x82,
+
  0x4b, 0x12, 0xa9, 0x1f, 0xa4, 0xd0, 0x84, 0xec, 0x5f, 0x7a, 0x01, 0x2c,
+
  0x88, 0x42, 0x6a, 0x64, 0x22, 0xc1, 0x2c, 0x50, 0x97, 0x0b, 0x46, 0x56,
+
  0xa2, 0x5e, 0xdd, 0x74, 0xa4, 0x44, 0xd7, 0xff, 0x4a, 0xe6, 0x39, 0xc2,
+
  0xab, 0xc3, 0x5c, 0xbe, 0x33, 0x24, 0x3c, 0x66, 0xd0, 0x64, 0xc3, 0x75,
+
  0x48, 0x77, 0x08, 0x88, 0x9d, 0xfc, 0x94, 0xa1, 0x4d, 0x00, 0x44, 0x4f,
+
  0x8c, 0xe5, 0x5e, 0x5c, 0x5e, 0x92, 0xed, 0xc8, 0x59, 0x8f, 0x71, 0x1a,
+
  0x55, 0x26, 0x15, 0xc5, 0xd0, 0x32, 0xab, 0x03, 0xbd, 0xce, 0x53, 0x6d,
+
  0x48, 0x64, 0xbe, 0x9c, 0x50, 0x61, 0x06, 0x1a, 0x35, 0xea, 0x02, 0x9d,
+
  0x2c, 0xf6, 0x8f, 0x53, 0x8d, 0xa8, 0x7d, 0x3a, 0x3b, 0x7c, 0x08, 0x94,
+
  0xee, 0xf5, 0x18, 0xc4, 0xe5, 0xca, 0x1a, 0x88, 0x5d, 0xc1, 0x46, 0xc9,
+
  0x42, 0x88, 0xde, 0xda, 0x24, 0xa7, 0x35, 0x64, 0xe5, 0x99, 0x5a, 0x8e,
+
  0x97, 0x6f, 0x6a, 0xf1, 0xc4, 0x72, 0xfd, 0x37, 0x06, 0x29, 0xe5, 0x6b,
+
  0x9b, 0x9a, 0xeb, 0x4a, 0x14, 0x48, 0xe6, 0x52, 0xe9, 0x8c, 0x7b, 0x07,
+
  0xc0, 0x36, 0xa6, 0x19, 0x25, 0x19, 0xf2, 0x3a, 0x06, 0xf4, 0x2e, 0xbe,
+
  0x25, 0x1e, 0xc2, 0x4d, 0x0f, 0x3a, 0x00, 0x3c, 0xb8, 0xa0, 0x50, 0x5c,
+
  0xbe, 0x90, 0x75, 0x44, 0x98, 0x76, 0x8d, 0xa1, 0x9e, 0x0b, 0x94, 0xb4,
+
  0x65, 0x31, 0xe4, 0xc6, 0x56, 0x87, 0x32, 0x79, 0xfd, 0x66, 0xca, 0x27,
+
  0x39, 0xcc, 0x3f, 0xb0, 0x7d, 0x27, 0x62, 0x86, 0x5a, 0xf3, 0x26, 0xf9,
+
  0x60, 0x01, 0x70, 0x8c, 0x6b, 0xe4, 0x7c, 0x8e, 0x86, 0x7d, 0x36, 0x5e,
+
  0x01, 0x47, 0xa6, 0x24, 0x0c, 0x85, 0xb5, 0xa8, 0xe8, 0x60, 0x39, 0x1b,
+
  0x15, 0x8e, 0x48, 0x1d, 0x1b, 0x53, 0xd4, 0x9f, 0x40, 0x18, 0x6a, 0x93,
+
  0x66, 0x2a, 0xe6, 0x7c, 0x29, 0x2d, 0x82, 0x45, 0xe0, 0xa9, 0x02, 0x5d,
+
  0xda, 0x2d, 0x30, 0x99, 0xb8, 0x3b, 0x33, 0x8c, 0xcd, 0x74, 0x01, 0xa6,
+
  0x09, 0x9e, 0x03, 0x8f, 0x08, 0x38, 0x34, 0xf5, 0x89, 0xab, 0xf9, 0xe8,
+
  0xc3, 0x87, 0xad, 0x44, 0x84, 0x0f, 0x26, 0xbf, 0x2c, 0x18, 0xd5, 0xd9,
+
  0x85, 0xb7, 0x04, 0x23, 0xdb, 0xbc, 0x97, 0x3e, 0x57, 0xe1, 0x9f, 0x66,
+
  0xbb, 0xeb, 0xdc, 0xb0, 0x8f, 0xda, 0xc6, 0xb3, 0x5e, 0x5d, 0x9f, 0x66,
+
  0x9d, 0x7b, 0xbd, 0x20, 0xfd, 0xe5, 0x8b, 0x52, 0x3f, 0x28, 0x2d, 0xec,
+
  0x34, 0x23, 0xa1, 0x3e, 0x0e, 0xa5, 0x63, 0x1f, 0x33, 0x7b, 0x7b, 0x51,
+
  0x6e, 0xa4, 0x2f, 0x2a, 0xa7, 0x65, 0x25, 0xc7, 0x88, 0xb5, 0xfa, 0xe6,
+
  0xf8, 0xf9, 0xdb, 0xf3, 0xe3, 0x67, 0x94, 0x20, 0x99, 0x36, 0x69, 0x85,
+
  0x4f, 0x60, 0x5d, 0x14, 0x74, 0x08, 0x75, 0x1c, 0x77, 0xdf, 0xe9, 0x0d,
+
  0xcf, 0x32, 0xbd, 0xb0, 0xbc, 0x45, 0x6e, 0xf4, 0x2b, 0x50, 0x56, 0x3f,
+
  0x36, 0x19, 0xa8, 0xd9, 0xec, 0x1a, 0x5b, 0x14, 0x8d, 0xe2, 0x53, 0x04,
+
  0xa3, 0x28, 0x47, 0x2b, 0xa2, 0x0e, 0xbf, 0x53, 0x2c, 0xef, 0x3e, 0x95,
+
  0x24, 0xbd, 0xef, 0x42, 0x7c, 0x8a, 0xc6, 0xb6, 0x4d, 0xb2, 0x6c, 0x2e,
+
  0x77, 0x5b, 0x3a, 0x05, 0x76, 0xc2, 0x36, 0x36, 0x36, 0x4c, 0xa8, 0xc6,
+
  0x44, 0x51, 0x48, 0x72, 0xb5, 0x46, 0x60, 0x8a, 0xc6, 0xc7, 0x70, 0xdd,
+
  0xe4, 0x8a, 0x12, 0x83, 0x42, 0x73, 0x23, 0x37, 0x61, 0xdd, 0xd4, 0x33,
+
  0xe7, 0x91, 0x99, 0xe5, 0x4a, 0x14, 0x59, 0x9b, 0xfb, 0x35, 0x89, 0xdb,
+
  0x61, 0x4d, 0x0b, 0xfb, 0xd9, 0x5a, 0x4a, 0x25, 0xce, 0x25, 0xfb, 0xdf,
+
  0x95, 0xaf, 0xcb, 0x04, 0xd8, 0x71, 0x6c, 0x6b, 0x45, 0x2a, 0x0f, 0x45,
+
  0xde, 0xd1, 0xf6, 0x38, 0x95, 0x0f, 0x5f, 0xe7, 0x45, 0x42, 0xba, 0xfd,
+
  0x47, 0x56, 0x5a, 0x3e, 0x73, 0x50, 0xfd, 0x44, 0xb8, 0x73, 0x70, 0xd2,
+
  0x3a, 0x5e, 0x1a, 0xb0, 0xd5, 0x4a, 0x8f, 0x54, 0x8c, 0x2f, 0x55, 0xcd,
+
  0xc1, 0x77, 0xf2, 0xe8, 0x93, 0x28, 0xa7, 0x41, 0x22, 0xa6, 0xc2, 0x34,
+
  0xa8, 0x84, 0x03, 0x84, 0x69, 0xf5, 0xf0, 0xeb, 0x52, 0x51, 0x3a, 0xc8,
+
  0xb9, 0xd3, 0x40, 0xef, 0x44, 0x6d, 0xd1, 0xdd, 0x6a, 0x22, 0x93, 0xf5,
+
  0x83, 0x68, 0x4e, 0xee, 0xa8, 0x32, 0xe3, 0xa0, 0xd6, 0x94, 0x4c, 0x47,
+
  0xe8, 0x96, 0xdd, 0x44, 0x0c, 0x2e, 0x19, 0xc8, 0x16, 0x7d, 0x4e, 0x06,
+
  0x2b, 0x09, 0x25, 0x95, 0x6e, 0x5d, 0x90, 0x87, 0xaa, 0x8a, 0xea, 0x7b,
+
  0xe6, 0x28, 0x3b, 0xd2, 0xbb, 0x60, 0x17, 0xe0, 0x4a, 0xcc, 0x87, 0x76,
+
  0x0b, 0x4b, 0x2a, 0x0b, 0x37, 0x22, 0xbc, 0xd7, 0xc4, 0x14, 0x6e, 0x84,
+
  0x81, 0x12, 0xa7, 0x98, 0x6e, 0x2d, 0x3e, 0x91, 0xe0, 0xe7, 0x22, 0x4c,
+
  0x6b, 0x86, 0x19, 0x45, 0xb7, 0xba, 0x9a, 0x1f, 0x80, 0x6a, 0xba, 0x21,
+
  0xae, 0x17, 0xe5, 0x0d, 0x82, 0x5f, 0xa5, 0x71, 0x6b, 0x7a, 0x3d, 0x53,
+
  0x15, 0x8f, 0x8d, 0x29, 0x1a, 0x5e, 0xce, 0x8b, 0x11, 0x21, 0x80, 0x4a,
+
  0x5a, 0xac, 0x03, 0x66, 0x50, 0x88, 0x60, 0xe8, 0x79, 0xa3, 0x0a, 0xe0,
+
  0x05, 0x39, 0xc6, 0xea, 0x72, 0xf4, 0xb6, 0xe9, 0x40, 0x92, 0xfb, 0x17,
+
  0x58, 0x20, 0x10, 0x2d, 0xd2, 0x6c, 0x88, 0x7d, 0x26, 0xf1, 0x4a, 0xed,
+
  0x69, 0x4e, 0x15, 0xf6, 0x14, 0x6a, 0x3b, 0xfe, 0x45, 0xfd, 0x22, 0x51,
+
  0x4f, 0xfb, 0x3b, 0x46, 0xaa, 0xbb, 0x3b, 0x9f, 0x42, 0xab, 0x55, 0xca,
+
  0xf5, 0xe5, 0xae, 0xfe, 0x91, 0x8f, 0x92, 0xa7, 0x5a, 0x52, 0xd7, 0xc1,
+
  0xe3, 0x2b, 0x1a, 0x3d, 0x3c, 0x02, 0xcc, 0xe3, 0x1f, 0x22, 0x2e, 0xea,
+
  0x83, 0x70, 0xb9, 0xcb, 0xcb, 0xa8, 0x69, 0x49, 0x70, 0x54, 0x72, 0x7e,
+
  0x88, 0x48, 0x4e, 0x67, 0x2f, 0x0f, 0x4f, 0x5e, 0x5b, 0x1a, 0xa2, 0x2b,
+
  0x43, 0xd1, 0x65, 0x35, 0x2d, 0x5c, 0x6d, 0x5c, 0x2d, 0x93, 0xe3, 0x0a,
+
  0x1a, 0xc5, 0xae, 0xac, 0x27, 0xf1, 0x21, 0xe2, 0xf7, 0x43, 0xe8, 0x8d,
+
  0x54, 0x34, 0x8f, 0x37, 0xd6, 0xd3, 0x52, 0xda, 0x51, 0xc2, 0x55, 0x5c,
+
  0xd3, 0xd3, 0xc3, 0xf4, 0x47, 0x98, 0x3a, 0x70, 0x77, 0xe6, 0x8a, 0x6a,
+
  0x96, 0xc8, 0x84, 0xa2, 0xba, 0xc1, 0x59, 0x22, 0x1d, 0x77, 0xb9, 0xd6,
+
  0x09, 0x4a, 0x9c, 0xae, 0x31, 0xca, 0x94, 0x36, 0x40, 0x18, 0x8b, 0x0e,
+
  0xe2, 0xe6, 0x85, 0x83, 0x46, 0xf5, 0x3c, 0xd9, 0xb8, 0x26, 0x30, 0xa5,
+
  0x7a, 0xdb, 0x26, 0x0a, 0xfc, 0xa9, 0x36, 0x71, 0x42, 0x48, 0xdc, 0xa0,
+
  0xd0, 0x94, 0x41, 0xf1, 0xa1, 0xeb, 0x82, 0x17, 0x0d, 0x75, 0xd1, 0x02,
+
  0x4e, 0x2f, 0x81, 0x4b, 0x90, 0x6a, 0xa1, 0xe0, 0xa1, 0x05, 0x97, 0x7b,
+
  0xc6, 0x8a, 0xce, 0x88, 0x26, 0x36, 0x85, 0x6b, 0x04, 0x1a, 0x11, 0xe8,
+
  0x3d, 0x41, 0x3e, 0x26, 0x2a, 0x61, 0x5f, 0x74, 0x44, 0x08, 0xeb, 0x98,
+
  0x28, 0x3e, 0xa9, 0x3c, 0x5b, 0xd4, 0x0b, 0xf5, 0x34, 0x4d, 0x57, 0xf8,
+
  0x9a, 0x9d, 0xf0, 0x84, 0x86, 0x94, 0x38, 0xa5, 0xba, 0xb8, 0xcc, 0x67,
+
  0xbd, 0x10, 0xaf, 0xe2, 0x68, 0x39, 0x97, 0xd9, 0x1d, 0xcf, 0x24, 0x4c,
+
  0x52, 0x71, 0xa1, 0x9d, 0xdc, 0x4a, 0xe4, 0xc7, 0x44, 0xda, 0x2c, 0xc9,
+
  0xd2, 0x06, 0x1f, 0x2f, 0xed, 0xae, 0x29, 0x78, 0xb6, 0x44, 0x68, 0x36,
+
  0xe1, 0xe3, 0xa5, 0xc1, 0x35, 0x96, 0x2a, 0x2f, 0xef, 0x58, 0x21, 0x5f,
+
  0x25, 0xd2, 0xad, 0x6b, 0x58, 0x8f, 0xfb, 0xca, 0x18, 0x5b, 0x1d, 0x63,
+
  0xc9, 0x56, 0xb3, 0x3a, 0xc6, 0x7d, 0x09, 0x50, 0x58, 0xaa, 0x4d, 0xfc,
+
  0x65, 0x6a, 0x7f, 0x44, 0xdd, 0x60, 0xa5, 0x86, 0xd1, 0xb6, 0x9c, 0xcc,
+
  0xb5, 0x38, 0x9a, 0x55, 0x8f, 0x8c, 0x4a, 0x28, 0xf9, 0x46, 0x75, 0x49,
+
  0xce, 0xa9, 0x14, 0xc4, 0x55, 0x71, 0xe3, 0x63, 0x52, 0x49, 0x4d, 0x0b,
+
  0xc9, 0xd8, 0xf0, 0x00, 0x46, 0xc4, 0x73, 0xe0, 0x92, 0x13, 0x57, 0xf0,
+
  0xb5, 0x10, 0x07, 0x0a, 0xf3, 0xad, 0x08, 0xc9, 0x12, 0x38, 0x81, 0xde,
+
  0x5a, 0x04, 0x2b, 0xfd, 0xa5, 0x31, 0x15, 0xbc, 0xdc, 0x1d, 0x66, 0x92,
+
  0x7c, 0x1e, 0x89, 0x3b, 0x34, 0x78, 0xcf, 0x86, 0x85, 0x8e, 0x75, 0xb9,
+
  0xd6, 0xdc, 0x2a, 0xaa, 0x9d, 0x70, 0x49, 0xa5, 0x1b, 0xa6, 0x59, 0x1d,
+
  0xb2, 0x96, 0x73, 0xdb, 0x19, 0xa9, 0xe4, 0xe0, 0xb1, 0xf2, 0x04, 0x78,
+
  0x1e, 0x37, 0xa0, 0xa5, 0x86, 0x84, 0x06, 0x9e, 0x99, 0x75, 0x2d, 0xd6,
+
  0xa0, 0x7d, 0xfe, 0x3a, 0x27, 0xed, 0xab, 0x3e, 0x4c, 0xa9, 0x55, 0x1a,
+
  0xc1, 0x27, 0x04, 0xc7, 0xa9, 0x3c, 0xc3, 0xa2, 0x78, 0x9f, 0x23, 0x45,
+
  0x13, 0x42, 0xa9, 0x58, 0xc0, 0x63, 0xd0, 0xbd, 0xae, 0x74, 0xa3, 0x80,
+
  0x21, 0x2c, 0xd3, 0x50, 0x70, 0x1f, 0x61, 0x13, 0x31, 0xf8, 0x98, 0x95,
+
  0x6e, 0x21, 0xc7, 0x76, 0x04, 0xf1, 0xdf, 0x91, 0x21, 0x75, 0x48, 0x80,
+
  0x93, 0x50, 0x0d, 0xb3, 0xc7, 0x69, 0x00, 0x66, 0x31, 0x6b, 0x35, 0xa2,
+
  0x32, 0x5d, 0x8a, 0x70, 0x15, 0x9b, 0xb0, 0x39, 0xac, 0x5d, 0x12, 0xe5,
+
  0x42, 0x54, 0x5e, 0x65, 0xd9, 0x20, 0x55, 0x0d, 0x72, 0xda, 0x74, 0x5b,
+
  0x6c, 0x43, 0x22, 0x13, 0xb2, 0x1d, 0xb3, 0xd7, 0x1b, 0x2d, 0xa6, 0x73,
+
  0xc5, 0x2d, 0x90, 0x6c, 0x2b, 0x0d, 0xb0, 0x76, 0x0b, 0x2e, 0xb7, 0x7a,
+
  0x80, 0x5f, 0xe1, 0x36, 0x9d, 0x73, 0xf1, 0x3a, 0xcf, 0x6e, 0x22, 0xd9,
+
  0x4f, 0xde, 0x5e, 0x72, 0x09, 0x62, 0xb8, 0x0b, 0x9a, 0x0d, 0x63, 0x7f,
+
  0x20, 0xe1, 0x5c, 0x62, 0xcf, 0xec, 0xaf, 0x13, 0x6b, 0x92, 0x96, 0xba,
+
  0x9f, 0x83, 0x98, 0xc1, 0x1c, 0x4c, 0xc7, 0x44, 0x3a, 0x09, 0x9e, 0x3f,
+
  0x32, 0xd7, 0x25, 0x41, 0x83, 0x6e, 0xd8, 0xb9, 0x34, 0xab, 0xda, 0x2d,
+
  0xa5, 0x58, 0x79, 0xca, 0x8c, 0x5f, 0x65, 0xaa, 0x2e, 0x33, 0xc5, 0x2b,
+
  0x1a, 0xdc, 0x46, 0x95, 0x0b, 0x5a, 0x36, 0x03, 0x5f, 0x13, 0xa4, 0xaa,
+
  0x5e, 0x4f, 0x69, 0x4b, 0x25, 0x79, 0x4e, 0x79, 0xea, 0x8b, 0x3b, 0x5d,
+
  0x51, 0x17, 0x42, 0x6a, 0x8e, 0xba, 0x60, 0x14, 0x9c, 0x27, 0x9d, 0xb4,
+
  0x1c, 0x71, 0x9d, 0x65, 0xcb, 0x19, 0x87, 0x05, 0xd1, 0xdb, 0x7c, 0xcd,
+
  0x30, 0x6d, 0xdf, 0xe2, 0x9d, 0xa7, 0x3c, 0x5f, 0xef, 0x48, 0xeb, 0x06,
+
  0x32, 0xef, 0x75, 0xf4, 0xa3, 0x47, 0xbb, 0xea, 0x1a, 0x93, 0x90, 0x97,
+
  0x99, 0x61, 0x90, 0x65, 0xfd, 0xef, 0x8b, 0x9c, 0x51, 0x84, 0x46, 0xa8,
+
  0xef, 0xa9, 0x1d, 0x9d, 0x99, 0x6d, 0xa2, 0xac, 0x82, 0xe2, 0x94, 0x05,
+
  0xbf, 0xd2, 0x27, 0x01, 0x08, 0x13, 0xae, 0xfa, 0x92, 0x1a, 0x72, 0x84,
+
  0xe3, 0x9e, 0x2e, 0x10, 0x18, 0xeb, 0x04, 0x1b, 0xa1, 0x7a, 0x5b, 0x4c,
+
  0xe7, 0x81, 0xca, 0xad, 0xf8, 0x38, 0x32, 0x5a, 0x2d, 0x83, 0x50, 0xd4,
+
  0xec, 0x9d, 0x9a, 0xdc, 0x72, 0x1c, 0x83, 0xc4, 0x61, 0x40, 0xa7, 0xa0,
+
  0x99, 0xa4, 0x93, 0xed, 0xaa, 0x1e, 0xa1, 0xe0, 0xef, 0xd2, 0xe3, 0x83,
+
  0x25, 0xd5, 0x42, 0x26, 0xde, 0x92, 0x52, 0xe1, 0x78, 0x23, 0xe5, 0x22,
+
  0xc4, 0xf6, 0x1b, 0x47, 0x78, 0xf0, 0x81, 0xb9, 0xca, 0x74, 0xa6, 0x56,
+
  0x62, 0x11, 0x66, 0x8b, 0x72, 0x26, 0x4f, 0x81, 0x97, 0x23, 0xba, 0x78,
+
  0xaa, 0x7e, 0x6c, 0x25, 0x13, 0x26, 0x6c, 0x24, 0xe2, 0x94, 0x8d, 0x7b,
+
  0x6b, 0xdc, 0x2c, 0x51, 0x08, 0xb5, 0x75, 0x27, 0x6d, 0x54, 0x1f, 0x45,
+
  0x1b, 0x44, 0x00, 0x35, 0x90, 0x84, 0x26, 0x86, 0xad, 0xbc, 0x06, 0x7a,
+
  0xd5, 0xfb, 0x7c, 0xde, 0x23, 0xc6, 0x63, 0x02, 0x18, 0xcb, 0xf2, 0x9c,
+
  0x73, 0x18, 0x65, 0x37, 0xab, 0x67, 0x8e, 0x6c, 0x27, 0xa9, 0x25, 0xf1,
+
  0x88, 0x3e, 0x2d, 0x48, 0x69, 0xdd, 0xc0, 0x71, 0xa3, 0x4a, 0x0b, 0xd8,
+
  0xd1, 0x3c, 0xae, 0x1d, 0xc3, 0x2e, 0x43, 0x4e, 0xb2, 0x20, 0x57, 0x9f,
+
  0xea, 0xba, 0xa1, 0x4f, 0x91, 0xe4, 0xd2, 0xca, 0x0e, 0x33, 0x55, 0xf1,
+
  0xb2, 0xf4, 0xa1, 0x04, 0xcb, 0x2c, 0x74, 0x2d, 0x35, 0x91, 0xd3, 0x72,
+
  0xf1, 0xc2, 0x11, 0xc0, 0xb8, 0x24, 0xab, 0x87, 0x4e, 0xcf, 0xa5, 0x92,
+
  0x1d, 0xd8, 0x55, 0xa5, 0x36, 0x6c, 0x9d, 0x66, 0x48, 0x8a, 0xd4, 0x59,
+
  0xe6, 0x33, 0x9f, 0x06, 0x2d, 0xf5, 0xe5, 0xf4, 0x24, 0xb0, 0xe1, 0x99,
+
  0x20, 0x95, 0x71, 0x62, 0x55, 0xa3, 0x7e, 0x0a, 0x09, 0x29, 0xd0, 0x70,
+
  0x23, 0xc1, 0xac, 0x65, 0xb1, 0x3f, 0x6f, 0x22, 0x52, 0xd4, 0xc1, 0x3d,
+
  0x22, 0x85, 0x7f, 0xd4, 0x92, 0x09, 0x79, 0xe9, 0xb7, 0xe1, 0xa8, 0x51,
+
  0xf6, 0xd8, 0xbd, 0xb6, 0x56, 0xd1, 0x2c, 0x95, 0xeb, 0x32, 0x31, 0x8a,
+
  0x6f, 0x39, 0xb1, 0x56, 0xbb, 0x2d, 0x49, 0x9d, 0xae, 0x48, 0xf3, 0xac,
+
  0x50, 0x88, 0x8b, 0x40, 0x96, 0x58, 0x3e, 0xec, 0xe1, 0xaa, 0x12, 0x72,
+
  0x4b, 0x31, 0x5b, 0xe7, 0xa7, 0x47, 0x7f, 0x3c, 0x7f, 0x98, 0x2c, 0x55,
+
  0x90, 0xfb, 0xed, 0x25, 0xe4, 0x38, 0xb8, 0x50, 0x60, 0xcc, 0x60, 0x50,
+
  0x94, 0x73, 0x86, 0x35, 0x7a, 0x51, 0x22, 0x70, 0x9e, 0x6f, 0x1f, 0x2f,
+
  0x64, 0x31, 0x3c, 0x5a, 0x9c, 0x52, 0xa3, 0x32, 0x34, 0xac, 0xab, 0x30,
+
  0x86, 0xa7, 0xe5, 0xa6, 0xac, 0x94, 0x97, 0xc0, 0x77, 0x70, 0xc5, 0xaa,
+
  0x82, 0xd2, 0xee, 0xdf, 0xce, 0xf2, 0x0f, 0x40, 0xf2, 0x78, 0x6f, 0xc9,
+
  0x10, 0xd8, 0x9e, 0x42, 0x5b, 0x45, 0x31, 0x5a, 0x24, 0xc1, 0xe2, 0x6f,
+
  0xc2, 0x5e, 0xb3, 0xfe, 0x65, 0x3f, 0xe9, 0xf0, 0x1a, 0xc2, 0xe6, 0xd9,
+
  0x83, 0xdb, 0x18, 0xd3, 0xbb, 0x5d, 0x17, 0xdb, 0xdc, 0x4c, 0x1f, 0xff,
+
  0xe9, 0xb4, 0x89, 0x3b, 0x98, 0xe0, 0x5d, 0x52, 0xed, 0x47, 0x0a, 0x41,
+
  0xb2, 0x8b, 0x54, 0x41, 0x2b, 0x42, 0x21, 0x3c, 0x16, 0x67, 0x6e, 0x09,
+
  0x53, 0x56, 0x29, 0x5a, 0xe0, 0x3f, 0x0d, 0xfc, 0x73, 0x85, 0x88, 0x8e,
+
  0xd8, 0x1b, 0x59, 0x39, 0x9e, 0x2c, 0xb0, 0x65, 0xe7, 0xfc, 0x8a, 0xd0,
+
  0xdf, 0xd2, 0x44, 0x48, 0xc1, 0x97, 0xcf, 0xf3, 0x85, 0x93, 0x25, 0x32,
+
  0x42, 0x9f, 0x83, 0xe9, 0x86, 0xb8, 0x46, 0x8e, 0x48, 0x0a, 0xd0, 0xe5,
+
  0x5a, 0x87, 0x2e, 0x4a, 0x9f, 0x27, 0x79, 0xcb, 0x50, 0x53, 0x88, 0x92,
+
  0xb4, 0x90, 0x9a, 0x28, 0xfe, 0x21, 0xbb, 0xd0, 0x4c, 0xa1, 0x5c, 0x9b,
+
  0x2e, 0x28, 0x31, 0x52, 0xb6, 0x6e, 0xdb, 0xd7, 0x7a, 0x45, 0x6f, 0x02,
+
  0x3b, 0x79, 0x28, 0xf4, 0x4c, 0x61, 0x29, 0xc9, 0xca, 0x68, 0x90, 0x61,
+
  0x1c, 0x07, 0x26, 0xd4, 0x10, 0x77, 0xae, 0xe1, 0x29, 0xe1, 0xb1, 0x4d,
+
  0x2d, 0xff, 0x46, 0x0f, 0x6e, 0x05, 0x6b, 0x99, 0xa5, 0x1a, 0x20, 0x21,
+
  0x44, 0x63, 0x10, 0xbd, 0x92, 0xd7, 0xf0, 0x2e, 0x1c, 0xef, 0x8f, 0x04,
+
  0x79, 0x6a, 0x72, 0x13, 0xee, 0x40, 0x29, 0xff, 0xe0, 0xe1, 0xce, 0x37,
+
  0x8f, 0xd7, 0xbb, 0xb2, 0xf8, 0xcd, 0x74, 0xa9, 0x66, 0x20, 0xff, 0xd1,
+
  0xd3, 0x16, 0x1b, 0x9c, 0x21, 0xbd, 0x93, 0x35, 0x2c, 0x71, 0x86, 0xf4,
+
  0xb7, 0xb0, 0x06, 0xcf, 0x1b, 0x8c, 0x39, 0x08, 0x77, 0x60, 0x1b, 0x3e,
+
  0x48, 0x37, 0x55, 0xe2, 0x6b, 0xff, 0xe9, 0xbe, 0xb4, 0x71, 0x85, 0x2f,
+
  0x7a, 0xda, 0xd3, 0xff, 0xfb, 0x1e, 0x77, 0x7f, 0xda, 0xe5, 0xb8, 0x5b,
+
  0x3c, 0x69, 0x38, 0x7f, 0xba, 0xbd, 0x6b, 0x1e, 0xf7, 0xf4, 0xdf, 0x71,
+
  0xde, 0xb5, 0x6b, 0x0b, 0x15, 0x8d, 0x1c, 0xe8, 0xdb, 0x8d, 0xf3, 0x36,
+
  0xd3, 0x98, 0x16, 0x7f, 0xea, 0x15, 0x92, 0x02, 0x1d, 0x0c, 0x76, 0x9c,
+
  0x03, 0xb4, 0x1c, 0x8f, 0x42, 0x0b, 0x47, 0x4a, 0x21, 0x52, 0x7f, 0xf2,
+
  0xed, 0xe8, 0xcb, 0xf9, 0xe1, 0xf3, 0x6f, 0xef, 0xb3, 0xda, 0xdb, 0x7a,
+
  0xf8, 0xdd, 0x91, 0xf9, 0x82, 0x06, 0x25, 0xe9, 0xe1, 0x93, 0xcf, 0xff,
+
  0xc7, 0x1d, 0xff, 0x47, 0x77, 0xd5, 0x96, 0x0d, 0x87, 0x9f, 0x56, 0xe9,
+
  0x91, 0x2c, 0x6b, 0x8f, 0xe4, 0xfb, 0xd6, 0x6b, 0x9a, 0xcf, 0xd6, 0xe4,
+
  0x36, 0x46, 0x4b, 0xf1, 0xc1, 0xf5, 0x79, 0xd5, 0x34, 0x67, 0xaf, 0x51,
+
  0x75, 0xf6, 0x0b, 0x9c, 0xef, 0x47, 0xff, 0x7b, 0xdc, 0xe6, 0x8f, 0xd6,
+
  0x3c, 0xde, 0x8f, 0xfe, 0xdf, 0x7e, 0xba, 0xfd, 0xbd, 0x1e, 0x95, 0x91,
+
  0x6f, 0xd9, 0x65, 0x97, 0x9f, 0x88, 0x60, 0x4b, 0x62, 0x7a, 0x79, 0x4e,
+
  0xb5, 0xe1, 0xe1, 0xf5, 0x97, 0xcf, 0x0e, 0xcf, 0x62, 0x8e, 0xf0, 0xe8,
+
  0xcb, 0x39, 0x77, 0xa5, 0x7d, 0x1e, 0xac, 0x1c, 0xff, 0x83, 0xaf, 0x11,
+
  0xad, 0x78, 0x7d, 0x9e, 0x10, 0x0e, 0xbf, 0x67, 0x09, 0x0f, 0xd3, 0x06,
+
  0x2b, 0xe8, 0x0d, 0xd2, 0x4a, 0x6b, 0xaa, 0x22, 0x0b, 0xd0, 0x32, 0xea,
+
  0xdb, 0x56, 0x41, 0xbd, 0xe9, 0xe2, 0xe2, 0xa8, 0x6c, 0x29, 0x7b, 0x42,
+
  0x91, 0xbc, 0x14, 0x1c, 0xc6, 0xdc, 0xc2, 0x49, 0x78, 0x7d, 0x2b, 0xac,
+
  0x75, 0x67, 0x7b, 0x88, 0x2c, 0x25, 0x80, 0xc9, 0x2e, 0x4e, 0xb2, 0x1f,
+
  0x99, 0x28, 0x78, 0xa4, 0x97, 0x55, 0x95, 0xce, 0x73, 0x26, 0x0c, 0x38,
+
  0xe4, 0x78, 0x42, 0x7e, 0x3c, 0x3f, 0xef, 0x1d, 0x9e, 0x9d, 0x2c, 0xfb,
+
  0xe1, 0xf0, 0x99, 0xe6, 0x88, 0xc8, 0x03, 0x1a, 0x2b, 0x94, 0x6e, 0x09,
+
  0x3e, 0x0e, 0x14, 0x76, 0x8d, 0xed, 0x93, 0x66, 0x6d, 0x37, 0x3f, 0x95,
+
  0xb9, 0x3f, 0x6a, 0xee, 0x18, 0xaf, 0x43, 0x58, 0x20, 0x5d, 0x84, 0xc6,
+
  0x1a, 0xb4, 0xef, 0x93, 0x67, 0xea, 0x1e, 0x7a, 0x7c, 0x45, 0x23, 0xed,
+
  0xbb, 0x93, 0x6c, 0xe6, 0x01, 0x50, 0x9c, 0xc2, 0x31, 0x43, 0xa0, 0xa5,
+
  0x40, 0xfc, 0xd9, 0xce, 0x18, 0x46, 0xe0, 0x56, 0xdf, 0x84, 0xcc, 0xe5,
+
  0xb5, 0x17, 0x9f, 0x2a, 0xef, 0xab, 0x39, 0x12, 0x1a, 0x94, 0x73, 0xc7,
+
  0x2e, 0xbb, 0x1d, 0x6e, 0xf3, 0x88, 0x45, 0x04, 0xb4, 0xca, 0x2f, 0xd6,
+
  0xb0, 0x38, 0x79, 0x8b, 0x81, 0x18, 0x90, 0x9b, 0x86, 0x27, 0xdf, 0xec,
+
  0x5a, 0x24, 0x21, 0x23, 0xf8, 0x52, 0x34, 0xd1, 0x83, 0xbd, 0x16, 0xf3,
+
  0x42, 0xa5, 0x10, 0x57, 0x5a, 0xe1, 0xc4, 0x6d, 0x89, 0x3a, 0xa0, 0xd8,
+
  0x63, 0xcd, 0xc2, 0x62, 0x9d, 0x09, 0x72, 0x11, 0x15, 0xeb, 0x0b, 0xac,
+
  0xcd, 0x9c, 0x55, 0x58, 0x66, 0x8d, 0x8a, 0x74, 0xee, 0x7e, 0xf3, 0x18,
+
  0xd1, 0x0c, 0xd2, 0x5b, 0xf1, 0x65, 0x54, 0xfa, 0xe6, 0xc3, 0xfe, 0xfe,
+
  0xf6, 0xc3, 0xfe, 0x43, 0xb6, 0xb0, 0x68, 0x3e, 0x9d, 0x05, 0x0c, 0x4b,
+
  0x1f, 0x12, 0x4b, 0x2b, 0x43, 0x7a, 0x7d, 0x7c, 0x94, 0x30, 0x6c, 0x1b,
+
  0xd5, 0x94, 0x8f, 0x9d, 0xce, 0x8e, 0x27, 0x7b, 0x4a, 0x15, 0x86, 0xdd,
+
  0x32, 0x75, 0xa9, 0x19, 0xce, 0x4d, 0x2f, 0x66, 0xd6, 0x23, 0x5e, 0xbe,
+
  0x9c, 0x72, 0x1e, 0xb9, 0x46, 0xfc, 0xac, 0x75, 0xda, 0x6e, 0x69, 0x22,
+
  0x4a, 0xba, 0x73, 0xb1, 0x3f, 0xb3, 0x11, 0xaa, 0xd9, 0xc9, 0x47, 0x50,
+
  0x16, 0xad, 0xc2, 0x0a, 0xea, 0x62, 0x98, 0xa3, 0xdf, 0x4e, 0x63, 0xea,
+
  0x84, 0x6d, 0x7a, 0x68, 0xb5, 0xd8, 0x8a, 0x7c, 0x9d, 0x88, 0x97, 0xd6,
+
  0x0a, 0x90, 0xb0, 0x4c, 0xe2, 0x8a, 0x2a, 0x63, 0x71, 0x31, 0x09, 0x8a,
+
  0x0f, 0x19, 0x82, 0xc3, 0xa9, 0x3a, 0x53, 0x7b, 0xe3, 0xbf, 0x8f, 0x66,
+
  0xfd, 0xe8, 0xc6, 0x6d, 0x0e, 0xe1, 0xcb, 0xc5, 0xad, 0xb4, 0xf7, 0x47,
+
  0xbe, 0xde, 0x2f, 0xb6, 0xbe, 0x76, 0x5f, 0xdf, 0x21, 0x9d, 0x2f, 0x8b,
+
  0xe7, 0x2a, 0x18, 0x6d, 0x52, 0xbe, 0x57, 0x40, 0xcc, 0xa6, 0x0f, 0x55,
+
  0x5e, 0x0f, 0x44, 0xaf, 0x9d, 0x6c, 0xf5, 0x23, 0x41, 0xbd, 0x21, 0xa9,
+
  0xaf, 0x16, 0xd5, 0x13, 0x0d, 0x9e, 0xfd, 0xf7, 0x08, 0xec, 0x57, 0xff,
+
  0xcf, 0x50, 0xc8, 0x63, 0x7d, 0xbc, 0xa1, 0x8e, 0x3f, 0x0a, 0xab, 0xee,
+
  0x0d, 0x60, 0x77, 0xc8, 0xed, 0x57, 0xff, 0xaf, 0x16, 0xdc, 0x57, 0xeb,
+
  0xe5, 0x6d, 0x8a, 0xb9, 0x3b, 0x37, 0x5f, 0x58, 0x1e, 0x0f, 0x1d, 0xfd,
+
  0x36, 0xc1, 0xbc, 0x5d, 0x1e, 0xff, 0x2b, 0xe9, 0xf0, 0xf3, 0x2c, 0x1b,
+
  0x71, 0x05, 0x86, 0xe4, 0x29, 0xfd, 0xe1, 0xd3, 0x25, 0x83, 0x7f, 0x04,
+
  0x28, 0x0e, 0x33, 0xc9, 0x42, 0x1d, 0x1f, 0x49, 0x57, 0xa6, 0x57, 0x40,
+
  0x3a, 0x9b, 0x49, 0x45, 0x39, 0x57, 0xdc, 0x64, 0x4b, 0xa1, 0x1f, 0x30,
+
  0xc8, 0x8a, 0x83, 0x12, 0x03, 0x44, 0xa7, 0x84, 0x7c, 0xd2, 0x61, 0xa7,
+
  0x2a, 0x5c, 0x5a, 0xd8, 0x9b, 0x64, 0x78, 0x1f, 0xbc, 0x18, 0xf0, 0xcb,
+
  0x3d, 0xc0, 0x0c, 0x8f, 0x9b, 0x9f, 0x13, 0x40, 0x3a, 0xe4, 0xf4, 0xfb,
+
  0x3b, 0x89, 0x15, 0x06, 0x49, 0x22, 0xf1, 0x3e, 0xf1, 0xb5, 0x12, 0xfd,
+
  0xac, 0xbf, 0x68, 0xad, 0x44, 0xdf, 0xd1, 0xfe, 0xce, 0x4e, 0x3c, 0xf0,
+
  0x75, 0x03, 0x12, 0xc3, 0x2b, 0xdd, 0xb6, 0x6a, 0x19, 0xcd, 0x44, 0xb5,
+
  0xdb, 0x6e, 0xdc, 0x4d, 0x23, 0xbc, 0x36, 0xde, 0x58, 0xac, 0x38, 0x13,
+
  0x6d, 0xad, 0x1f, 0x71, 0xd8, 0x52, 0x2d, 0x82, 0xc3, 0x01, 0x8c, 0x16,
+
  0xdd, 0xe0, 0x36, 0x81, 0x37, 0xab, 0xdb, 0xf4, 0xab, 0xa1, 0xb1, 0x55,
+
  0x77, 0xf6, 0x84, 0x63, 0x02, 0xed, 0x15, 0xbf, 0x8c, 0xdd, 0x08, 0xd4,
+
  0xb2, 0xb1, 0x3f, 0xbb, 0xea, 0x57, 0xb6, 0xfa, 0x11, 0xd1, 0xca, 0xb6,
+
  0xb1, 0x4b, 0x81, 0xe8, 0xa8, 0x7c, 0xca, 0x39, 0x51, 0x69, 0x81, 0xf4,
+
  0xc3, 0x9e, 0x69, 0x8c, 0x8d, 0xdb, 0x22, 0xd9, 0xb0, 0x81, 0x56, 0x92,
+
  0x72, 0x71, 0xa8, 0x8a, 0xaa, 0x75, 0x19, 0xeb, 0xc8, 0xea, 0xa1, 0x5c,
+
  0x61, 0xe4, 0xb2, 0x24, 0xb0, 0x1c, 0xcc, 0x24, 0x2f, 0x05, 0x7d, 0x13,
+
  0x98, 0x31, 0xcc, 0xa2, 0xbc, 0x75, 0x77, 0x9f, 0xcb, 0x53, 0xd6, 0xc8,
+
  0x58, 0x45, 0xad, 0x52, 0x8e, 0x12, 0xad, 0xc7, 0x17, 0x13, 0x2e, 0x3e,
+
  0x1f, 0x19, 0x4a, 0x14, 0x31, 0x51, 0x5e, 0x20, 0xc5, 0x20, 0x59, 0x54,
+
  0x32, 0xe2, 0x4d, 0xcc, 0x2c, 0x26, 0x14, 0x21, 0xc2, 0x27, 0x22, 0x20,
+
  0x20, 0x34, 0x69, 0x00, 0xb7, 0xfd, 0x29, 0x2d, 0x11, 0x16, 0xe0, 0xc0,
+
  0x12, 0xc2, 0x34, 0xe2, 0x85, 0xd1, 0x77, 0x11, 0xde, 0x26, 0x83, 0x81,
+
  0x67, 0x31, 0x7e, 0xbe, 0xe1, 0x72, 0x08, 0x92, 0x15, 0x76, 0x85, 0x10,
+
  0x26, 0xa1, 0x48, 0x8b, 0xc4, 0x89, 0x2d, 0x14, 0xdf, 0x37, 0x59, 0xcc,
+
  0x2f, 0xcb, 0x74, 0xa4, 0xe0, 0x04, 0xa4, 0x8d, 0x72, 0xcb, 0xae, 0x88,
+
  0xaa, 0x11, 0x4f, 0x79, 0x6b, 0x38, 0x4d, 0x58, 0x68, 0x75, 0xfb, 0xe2,
+
  0xe5, 0x79, 0x40, 0xc1, 0x08, 0xcf, 0x63, 0x11, 0x00, 0x60, 0x60, 0x35,
+
  0x95, 0x62, 0xa2, 0x3a, 0x28, 0x52, 0xbc, 0x55, 0x83, 0xc5, 0xcf, 0x2f,
+
  0x0e, 0xdf, 0x5c, 0xe0, 0xcb, 0x18, 0x2c, 0x88, 0xff, 0xc2, 0xa0, 0x08,
+
  0xb7, 0xca, 0x12, 0x85, 0x11, 0x72, 0x8c, 0x40, 0x29, 0xb4, 0x3a, 0x37,
+
  0x2a, 0x3a, 0xb8, 0xdb, 0x02, 0xe9, 0x96, 0xaa, 0xcb, 0x7a, 0xd6, 0x5b,
+
  0x1a, 0xae, 0xba, 0xdc, 0x2d, 0x30, 0xd7, 0xea, 0x08, 0x48, 0x86, 0xbf,
+
  0x0c, 0xbd, 0x4f, 0x5b, 0xa7, 0x35, 0x11, 0x18, 0x01, 0xb0, 0x9e, 0xd3,
+
  0x9a, 0x19, 0x7a, 0x0d, 0xb1, 0x4d, 0xb7, 0x8e, 0x52, 0xbd, 0xde, 0xb0,
+
  0x3d, 0x40, 0xb8, 0xbb, 0xce, 0x26, 0x55, 0xa8, 0x98, 0x03, 0x2a, 0x53,
+
  0x79, 0xcb, 0xe7, 0x0b, 0xc3, 0x07, 0x22, 0xb8, 0x84, 0x46, 0x06, 0x2b,
+
  0xa5, 0x68, 0x4a, 0x7c, 0x15, 0x6e, 0x7b, 0x12, 0x67, 0xfe, 0x3e, 0xd9,
+
  0xe5, 0x72, 0xbd, 0x27, 0xcc, 0x7f, 0x29, 0x65, 0x4c, 0xf3, 0xd1, 0xb4,
+
  0x12, 0x9a, 0x54, 0x62, 0xc6, 0xd2, 0xbb, 0xd4, 0x02, 0xe6, 0x3e, 0x64,
+
  0x9a, 0x76, 0xa6, 0x35, 0x80, 0xb5, 0x72, 0x7d, 0x36, 0x03, 0xfe, 0x03,
+
  0x6a, 0xfd, 0x64, 0x94, 0xce, 0x43, 0x6a, 0x47, 0x16, 0x8a, 0x37, 0x73,
+
  0x06, 0x28, 0x1d, 0xf2, 0x4c, 0x51, 0x48, 0xd3, 0x50, 0x70, 0x82, 0xe1,
+
  0xc5, 0x28, 0x3f, 0x53, 0xf0, 0x67, 0xdc, 0x8e, 0xe7, 0x5e, 0x89, 0xf3,
+
  0xba, 0xac, 0x5b, 0xfd, 0xe1, 0x30, 0x6b, 0x5f, 0x0d, 0x8c, 0x85, 0xc0,
+
  0x00, 0xfe, 0x0c, 0x31, 0x97, 0x30, 0x94, 0x61, 0x46, 0x42, 0xa0, 0xed,
+
  0x87, 0x40, 0x0e, 0xc9, 0xd3, 0x2c, 0x56, 0x80, 0x9c, 0xa5, 0xa1, 0x68,
+
  0x18, 0xde, 0xa2, 0x22, 0x17, 0xb2, 0x2a, 0xcb, 0x8a, 0x95, 0xcc, 0x4d,
+
  0xc1, 0x7a, 0x1f, 0x2f, 0xa8, 0xbc, 0x82, 0x22, 0x84, 0xb4, 0x99, 0x24,
+
  0xaa, 0x49, 0x1b, 0x8c, 0x65, 0x8b, 0x1d, 0xc2, 0xeb, 0x8c, 0xa2, 0x32,
+
  0x36, 0x35, 0xc6, 0xea, 0x1e, 0x24, 0x5c, 0xec, 0x6c, 0x5e, 0xcc, 0xf7,
+
  0xef, 0x8f, 0xcb, 0x15, 0xe2, 0xeb, 0x52, 0x68, 0x98, 0x90, 0x3b, 0x73,
+
  0x97, 0x61, 0x3e, 0xbf, 0xca, 0x5c, 0x62, 0x11, 0x3e, 0x4a, 0xfa, 0x76,
+
  0x6f, 0x90, 0x59, 0x8d, 0xc2, 0x4d, 0xa0, 0xf5, 0x2d, 0x0c, 0x8b, 0x0a,
+
  0x76, 0xd4, 0xb4, 0xa4, 0xec, 0x44, 0xda, 0x5c, 0x68, 0x0e, 0x83, 0xf0,
+
  0xc7, 0x13, 0xac, 0xc1, 0x24, 0x50, 0x58, 0xf0, 0x06, 0x50, 0x5f, 0x08,
+
  0x3a, 0xe4, 0x86, 0x78, 0x67, 0x60, 0x3d, 0x7e, 0x38, 0x3e, 0x3c, 0xbf,
+
  0x08, 0x8c, 0xde, 0xd1, 0xb4, 0x24, 0x30, 0xcb, 0x5d, 0x85, 0x47, 0x7b,
+
  0x92, 0xde, 0x62, 0x09, 0x3b, 0xa4, 0x1d, 0xc3, 0xaa, 0xc6, 0x31, 0xf0,
+
  0x10, 0x2a, 0xdd, 0x6e, 0x3c, 0xd4, 0xcc, 0x02, 0x28, 0x4d, 0x88, 0xc2,
+
  0x6c, 0x34, 0x97, 0xd8, 0xd2, 0x96, 0x45, 0xb4, 0xc1, 0x14, 0x47, 0x61,
+
  0x7c, 0x93, 0x51, 0x88, 0x78, 0x8c, 0x0d, 0x15, 0xad, 0x41, 0xb4, 0x31,
+
  0x08, 0xe1, 0x95, 0x56, 0x9a, 0x24, 0x1a, 0x25, 0x3e, 0x84, 0xb3, 0xc6,
+
  0xa5, 0xb5, 0x5d, 0xa7, 0xfd, 0x96, 0xce, 0x66, 0x09, 0x62, 0x37, 0x96,
+
  0xf4, 0xa4, 0x96, 0xbf, 0x5e, 0xca, 0x89, 0xf6, 0x2b, 0x32, 0x41, 0x50,
+
  0xfa, 0x99, 0xb8, 0x51, 0xf1, 0x2d, 0x5d, 0x6d, 0x41, 0x08, 0x0e, 0x78,
+
  0x8a, 0x21, 0x3d, 0x9d, 0x0b, 0x3d, 0x71, 0x85, 0x56, 0x09, 0x30, 0xe3,
+
  0x38, 0xfb, 0x21, 0x62, 0xa3, 0xd0, 0xa9, 0x5c, 0x82, 0x02, 0x6e, 0xdd,
+
  0xf6, 0xcf, 0x6c, 0x00, 0x89, 0xbb, 0xb8, 0x97, 0xb4, 0xfd, 0xc3, 0xeb,
+
  0xdd, 0x9d, 0x12, 0x71, 0xdd, 0x78, 0x95, 0xe9, 0x5c, 0xc9, 0x3e, 0x26,
+
  0xf4, 0x45, 0x8d, 0x41, 0x36, 0x98, 0xc8, 0xd6, 0x03, 0x11, 0x23, 0xa2,
+
  0xf6, 0xcd, 0x73, 0xdc, 0xe5, 0x59, 0x36, 0xd9, 0x4a, 0x0e, 0xa3, 0x2a,
+
  0x20, 0x04, 0x96, 0xc8, 0xc7, 0x87, 0x90, 0x83, 0x12, 0x6e, 0x00, 0x86,
+
  0x0e, 0x2d, 0x30, 0x12, 0x68, 0xe6, 0x84, 0xf2, 0x46, 0xce, 0xc9, 0x0d,
+
  0x97, 0x17, 0xd4, 0x02, 0x9a, 0xc2, 0x59, 0xd5, 0x76, 0x72, 0x1e, 0xea,
+
  0x2a, 0xfa, 0xac, 0x0d, 0xd4, 0x08, 0x35, 0x82, 0x15, 0x55, 0x5f, 0xd7,
+
  0x13, 0x33, 0x59, 0xe1, 0xe7, 0x95, 0x8e, 0xa5, 0x69, 0x51, 0xd5, 0x58,
+
  0x59, 0x62, 0xf5, 0xe7, 0xd1, 0x50, 0x91, 0xfd, 0x51, 0xc5, 0x09, 0x42,
+
  0xe0, 0x51, 0xb0, 0x2c, 0xb2, 0x1e, 0xe6, 0xd7, 0x29, 0x16, 0x55, 0x05,
+
  0x25, 0x7b, 0x92, 0x5a, 0x94, 0xaa, 0x22, 0x17, 0x68, 0x3d, 0x9a, 0x46,
+
  0xa0, 0x68, 0xcb, 0xaa, 0x7e, 0xa6, 0x80, 0xd1, 0x96, 0x96, 0xd7, 0xa0,
+
  0xa1, 0xe6, 0x58, 0xd6, 0x4b, 0x93, 0xfd, 0xba, 0x91, 0xe9, 0xe1, 0x28,
+
  0x6b, 0x79, 0x08, 0x81, 0x9e, 0x28, 0x5b, 0x14, 0x91, 0x4e, 0x57, 0x10,
+
  0x92, 0xcd, 0x2f, 0x5a, 0x7f, 0x7c, 0x45, 0x36, 0x6a, 0x78, 0x95, 0x81,
+
  0xf6, 0xd8, 0x0f, 0xcc, 0xc0, 0x81, 0x13, 0x34, 0x38, 0x02, 0xab, 0xe2,
+
  0xe7, 0x2f, 0x1d, 0x47, 0x20, 0x51, 0xc3, 0x95, 0x49, 0xc2, 0x34, 0x71,
+
  0xe5, 0x05, 0x0a, 0xd4, 0xf4, 0x3e, 0x11, 0xa0, 0x0a, 0x62, 0x06, 0xcc,
+
  0x0b, 0x9a, 0x1b, 0x68, 0xd3, 0xf8, 0x3c, 0x88, 0xcc, 0x51, 0x93, 0xf7,
+
  0x6f, 0x59, 0xe8, 0x7d, 0x3d, 0x8c, 0xa2, 0x72, 0xe2, 0xcb, 0xdd, 0xdb,
+
  0x5d, 0xd7, 0x14, 0x90, 0x9d, 0x84, 0x2c, 0x22, 0xf2, 0x1b, 0x96, 0xae,
+
  0xee, 0x13, 0x44, 0xb5, 0x9e, 0xcc, 0x92, 0x30, 0x8a, 0x64, 0x6c, 0x72,
+
  0xe8, 0x6a, 0x41, 0xd4, 0x24, 0xd1, 0x08, 0xb0, 0x0e, 0x41, 0x10, 0x39,
+
  0xac, 0xb7, 0x36, 0x34, 0xdb, 0x86, 0x34, 0x14, 0x2b, 0x79, 0x86, 0xbb,
+
  0x6d, 0xe0, 0x21, 0x2c, 0x77, 0x1b, 0x70, 0xa8, 0xca, 0xa4, 0xff, 0x7e,
+
  0x59, 0x11, 0xe9, 0xae, 0xcc, 0x7e, 0x65, 0xa3, 0xfc, 0xbd, 0xb2, 0x22,
+
  0x4e, 0x4d, 0x2b, 0x45, 0xd1, 0x95, 0x46, 0xe0, 0x50, 0xab, 0x05, 0x5d,
+
  0xd4, 0xbd, 0x70, 0x5d, 0x30, 0xe2, 0x18, 0x01, 0x0c, 0xc6, 0x56, 0xb6,
+
  0x02, 0xb8, 0x14, 0xe2, 0x5b, 0x56, 0x70, 0x6a, 0xa6, 0xc2, 0x08, 0x73,
+
  0x2a, 0x21, 0x58, 0x65, 0x93, 0x71, 0xc8, 0x77, 0x23, 0xbc, 0xa2, 0xe9,
+
  0x34, 0x1b, 0x59, 0x72, 0x0e, 0x7d, 0x8a, 0xdd, 0x6b, 0x5a, 0x0b, 0x0c,
+
  0xa3, 0x9b, 0x70, 0x0a, 0x06, 0x12, 0x01, 0xba, 0x87, 0xbb, 0x8c, 0xdc,
+
  0x7a, 0xde, 0x0d, 0xd8, 0xb0, 0xf0, 0x19, 0xd2, 0xcf, 0x39, 0x1f, 0x34,
+
  0x5c, 0x02, 0xd0, 0x00, 0xce, 0x39, 0x96, 0xcd, 0x95, 0x77, 0x9e, 0xdc,
+
  0x90, 0x13, 0x85, 0xf2, 0x70, 0x6c, 0x1f, 0xa1, 0x07, 0xad, 0x93, 0x02,
+
  0x9b, 0x7f, 0x85, 0x59, 0xa5, 0x26, 0xd7, 0xa2, 0x30, 0x13, 0x17, 0xc9,
+
  0xd5, 0x7d, 0xa3, 0x5c, 0x00, 0x93, 0x6b, 0x9d, 0x60, 0xeb, 0x34, 0x0d,
+
  0x24, 0xf6, 0x76, 0xf7, 0x98, 0xaa, 0x1c, 0xeb, 0x09, 0xa4, 0xfe, 0x08,
+
  0xaf, 0x48, 0x18, 0xd3, 0xde, 0xee, 0x3d, 0xc3, 0xd4, 0xed, 0x12, 0x7e,
+
  0x6b, 0xab, 0x60, 0x7a, 0xd7, 0xfd, 0xcc, 0x7c, 0x00, 0xee, 0xf1, 0xaa,
+
  0x46, 0xf4, 0xe1, 0x62, 0xe5, 0x0d, 0x9d, 0x9c, 0x90, 0xa6, 0x72, 0x0f,
+
  0x5f, 0xd5, 0xfc, 0x76, 0x34, 0x0d, 0x87, 0x5c, 0xa9, 0x8c, 0x2c, 0x2e,
+
  0x99, 0xb8, 0x2a, 0xa5, 0x6e, 0xcb, 0x76, 0x31, 0x1e, 0x73, 0x15, 0xf7,
+
  0x51, 0x8e, 0x00, 0xa8, 0x83, 0x85, 0x38, 0x94, 0xe6, 0x45, 0x8e, 0xf8,
+
  0xfd, 0x56, 0xa7, 0xc5, 0x12, 0x28, 0xac, 0xaf, 0x84, 0x7b, 0xa3, 0x32,
+
  0xf0, 0x55, 0x5d, 0xb5, 0xf9, 0x9b, 0xee, 0x98, 0xda, 0xe7, 0x97, 0xb9,
+
  0x96, 0x7b, 0x5a, 0x67, 0xff, 0x9a, 0xef, 0xac, 0x79, 0x71, 0xee, 0x34,
+
  0x2e, 0x4e, 0xe1, 0xce, 0x2b, 0x36, 0x79, 0xaf, 0xcb, 0xfd, 0x5d, 0xef,
+
  0xc9, 0xbe, 0x02, 0x0f, 0xdb, 0x8a, 0x0e, 0xbf, 0x8f, 0x6f, 0x87, 0xcb,
+
  0xcb, 0x00, 0x09, 0xc5, 0x86, 0x00, 0xcf, 0x5f, 0xef, 0xb1, 0xe7, 0x91,
+
  0x43, 0x15, 0xa5, 0x7c, 0xad, 0x2a, 0xae, 0x9b, 0x11, 0xe4, 0xde, 0xd7,
+
  0xcc, 0xe2, 0xe8, 0x25, 0xe2, 0x89, 0x37, 0xf9, 0x28, 0xc3, 0x96, 0x9d,
+
  0x69, 0xa4, 0x61, 0x17, 0xa1, 0x14, 0x76, 0xf2, 0x8f, 0x3e, 0xde, 0xfd,
+
  0xfa, 0xf1, 0x56, 0x33, 0xdd, 0x01, 0x87, 0x9e, 0xdc, 0xe3, 0x79, 0xfe,
+
  0x88, 0x00, 0x03, 0x6a, 0x6e, 0xf5, 0x42, 0xeb, 0x13, 0xc2, 0x2d, 0x05,
+
  0x8f, 0x65, 0x92, 0x0f, 0xd4, 0x67, 0x3f, 0x58, 0xe4, 0x13, 0x42, 0x4a,
+
  0x51, 0x3b, 0x05, 0xd9, 0x28, 0x3c, 0x4b, 0xb1, 0x82, 0x55, 0xc1, 0x21,
+
  0x12, 0x3c, 0x22, 0xe6, 0xe5, 0xe7, 0x8e, 0xf6, 0xbb, 0xf8, 0x5b, 0x3d,
+
  0xa9, 0xae, 0x77, 0xc3, 0x6f, 0x08, 0x79, 0xef, 0xa3, 0xd4, 0xf9, 0xc3,
+
  0xbd, 0x68, 0xd3, 0x71, 0x06, 0xf8, 0xa0, 0xd4, 0x05, 0x85, 0xbf, 0xf6,
+
  0x74, 0xc7, 0xf7, 0x75, 0xc7, 0xf7, 0x7f, 0xc3, 0x8e, 0xef, 0x7f, 0xca,
+
  0x8e, 0xef, 0x7f, 0xf4, 0x8e, 0x7f, 0xfd, 0xe8, 0xf1, 0x93, 0xb6, 0x1d,
+
  0xdf, 0xff, 0xbc, 0x3b, 0xbe, 0x7f, 0xef, 0x8e, 0xef, 0xff, 0xbb, 0x76,
+
  0x7c, 0xef, 0x0b, 0xec, 0xb8, 0xa6, 0xdc, 0x3c, 0x45, 0x3e, 0xf0, 0x9d,
+
  0x62, 0x46, 0x48, 0xd6, 0x12, 0x02, 0xf9, 0x20, 0xaa, 0x95, 0x80, 0x40,
+
  0xca, 0xa3, 0x1a, 0xe3, 0xe5, 0x02, 0x96, 0xa5, 0x1a, 0x0a, 0x99, 0x20,
+
  0x5d, 0x51, 0xb9, 0x66, 0x65, 0xd5, 0x34, 0x99, 0x4f, 0x90, 0x11, 0x6e,
+
  0xf4, 0x36, 0xd4, 0xc3, 0xa9, 0x76, 0x4b, 0x05, 0xcf, 0xe2, 0x6e, 0x8a,
+
  0x45, 0xfd, 0x6f, 0x28, 0x3b, 0x6e, 0x93, 0xbf, 0x27, 0x93, 0xdd, 0xcc,
+
  0xcd, 0x1f, 0x9f, 0xc9, 0xce, 0xed, 0x4b, 0xd2, 0x69, 0xfd, 0xa1, 0xfe,
+
  0x94, 0x6c, 0x39, 0xcb, 0xb4, 0xd2, 0x0d, 0xbb, 0x85, 0x4b, 0x51, 0x92,
+
  0x54, 0xa2, 0x34, 0x76, 0x2b, 0x87, 0xa9, 0x73, 0x1d, 0x60, 0xe9, 0x9b,
+
  0x71, 0x31, 0xc3, 0x14, 0xb1, 0xdb, 0x09, 0xe1, 0x3a, 0x22, 0xce, 0x79,
+
  0xc9, 0x60, 0x90, 0xec, 0xe7, 0x8b, 0x32, 0x69, 0x1b, 0x19, 0x6d, 0x7d,
+
  0x09, 0x05, 0xc3, 0xab, 0xca, 0xf7, 0x4a, 0xbb, 0x04, 0xa4, 0xc9, 0x18,
+
  0x91, 0x53, 0xaa, 0xe6, 0xa8, 0xb3, 0xa0, 0xe7, 0x14, 0x53, 0xcc, 0x0e,
+
  0x06, 0xba, 0x5b, 0xa4, 0x51, 0xad, 0x7e, 0xa4, 0x3a, 0xb1, 0x0d, 0xb2,
+
  0x12, 0x78, 0x19, 0xb9, 0xfb, 0xa5, 0x58, 0xaa, 0xfa, 0xc6, 0x35, 0xc3,
+
  0xa9, 0xd0, 0xda, 0x06, 0xb4, 0xbd, 0x5a, 0xef, 0x13, 0x25, 0x04, 0x42,
+
  0x81, 0x04, 0x21, 0x56, 0x44, 0x7b, 0x6d, 0x68, 0x98, 0xce, 0xc5, 0xd0,
+
  0xf4, 0xa5, 0x48, 0xaa, 0x25, 0xed, 0xba, 0xb9, 0x4f, 0xad, 0xd5, 0x73,
+
  0x3e, 0x45, 0xcd, 0xf6, 0x8d, 0xde, 0x47, 0x7b, 0xbe, 0xff, 0xde, 0xc9,
+
  0x7a, 0x22, 0xc2, 0xe3, 0x26, 0x04, 0x15, 0x95, 0xbe, 0x60, 0x42, 0x14,
+
  0xb2, 0x0c, 0x94, 0x08, 0x5b, 0x48, 0xd9, 0x79, 0xea, 0xe0, 0x89, 0x68,
+
  0x89, 0x32, 0xe6, 0x45, 0x37, 0xaf, 0x51, 0x45, 0x98, 0x04, 0xa7, 0x77,
+
  0xca, 0xb6, 0x49, 0xc4, 0xa1, 0x3a, 0x3e, 0xba, 0x58, 0x86, 0x7e, 0x89,
+
  0x8a, 0x81, 0xcb, 0x0c, 0xd8, 0xa3, 0x1d, 0x5e, 0x89, 0x33, 0xbc, 0xfb,
+
  0x4b, 0xdb, 0x8a, 0xa0, 0xaf, 0xb5, 0x94, 0xb0, 0x74, 0xa0, 0x6a, 0xb2,
+
  0x96, 0x3e, 0x85, 0x39, 0xe1, 0x0c, 0x75, 0x9f, 0x44, 0x2b, 0x25, 0x0d,
+
  0xd3, 0x32, 0x0b, 0xb8, 0x1b, 0xf8, 0x40, 0x88, 0x61, 0xa2, 0x20, 0x01,
+
  0xcb, 0x2c, 0x9e, 0xc5, 0xc9, 0xe5, 0x27, 0x75, 0x5c, 0xbb, 0x09, 0xa9,
+
  0x76, 0x94, 0x0d, 0x16, 0x97, 0xca, 0xf6, 0x2b, 0x07, 0xf1, 0x2c, 0x0a,
+
  0x83, 0x1e, 0x7a, 0x29, 0xfa, 0x86, 0x65, 0x3f, 0x25, 0x49, 0x90, 0xe3,
+
  0x29, 0x2a, 0x34, 0x7b, 0x56, 0x70, 0xba, 0x57, 0x44, 0xdb, 0xad, 0xd8,
+
  0x8c, 0xb5, 0x45, 0xd6, 0x7b, 0xb1, 0xd0, 0x56, 0xf5, 0x70, 0x0f, 0x19,
+
  0xae, 0x1a, 0x57, 0x63, 0xc5, 0x7b, 0x1f, 0x64, 0x87, 0x3f, 0x22, 0xa2,
+
  0xc7, 0x6d, 0x62, 0x13, 0x19, 0xc0, 0xa3, 0x3c, 0x30, 0xf5, 0x19, 0xd9,
+
  0xd6, 0xc3, 0x79, 0x6f, 0x0c, 0x1c, 0xbd, 0x98, 0x6b, 0x15, 0x55, 0xe1,
+
  0x9f, 0x7a, 0x9c, 0x2f, 0x8e, 0xce, 0x92, 0xe7, 0x84, 0x5e, 0x82, 0xba,
+
  0x74, 0xb2, 0x89, 0xe2, 0xc6, 0xd7, 0x0f, 0x77, 0xf7, 0x09, 0xff, 0x4a,
+
  0xbf, 0xa3, 0xaf, 0x24, 0x0d, 0x13, 0x3e, 0xb4, 0x73, 0xcc, 0xb5, 0x22,
+
  0xb5, 0xde, 0x24, 0x45, 0xc6, 0x51, 0x42, 0x31, 0x50, 0x10, 0x65, 0xdc,
+
  0x13, 0x2a, 0x57, 0x5a, 0x82, 0xda, 0x5b, 0x52, 0xc4, 0x4c, 0xd3, 0xb6,
+
  0x20, 0x62, 0x8e, 0xab, 0x4d, 0x8e, 0xe9, 0xa2, 0xe9, 0xc4, 0x69, 0xa6,
+
  0xc9, 0xe1, 0xd1, 0x1f, 0xb7, 0x0c, 0xcf, 0x50, 0xed, 0x9b, 0x84, 0x17,
+
  0x2f, 0x9e, 0x1c, 0x2c, 0x95, 0xa3, 0x78, 0x97, 0x21, 0x1e, 0x35, 0x1b,
+
  0x39, 0xf1, 0x2d, 0xb6, 0x2b, 0xf9, 0x35, 0x69, 0x52, 0x4c, 0x5c, 0x79,
+
  0x7b, 0x5d, 0x4e, 0xe5, 0x5b, 0xbc, 0x9b, 0x42, 0xa2, 0xbe, 0xd7, 0xda,
+
  0xf7, 0x31, 0xfc, 0x9b, 0xf5, 0x08, 0x25, 0x34, 0xda, 0xd5, 0x59, 0x41,
+
  0xd0, 0x5c, 0xc2, 0xe5, 0x11, 0x4a, 0x52, 0x4b, 0xb8, 0xc2, 0x0e, 0xbd,
+
  0x7b, 0x7d, 0xfa, 0xec, 0xf8, 0xe5, 0xe1, 0x5f, 0x83, 0x37, 0x95, 0xd2,
+
  0x3e, 0x69, 0x09, 0xb1, 0x00, 0x68, 0x96, 0x56, 0xb7, 0xef, 0xe0, 0x92,
+
  0x87, 0x6f, 0x37, 0xf7, 0xb7, 0xd0, 0x1b, 0x36, 0xd3, 0x9a, 0xa2, 0x97,
+
  0x59, 0x5c, 0x39, 0x8a, 0xf1, 0x9b, 0x5d, 0xfd, 0x25, 0x0f, 0x27, 0x2c,
+
  0x15, 0x4b, 0x03, 0x2f, 0x1a, 0x04, 0xbc, 0x4b, 0xdc, 0xa3, 0x5b, 0x57,
+
  0x61, 0xc8, 0x2c, 0x2d, 0x88, 0xd5, 0x49, 0x17, 0xaa, 0xc8, 0x83, 0x35,
+
  0x61, 0xbc, 0x8a, 0x31, 0x45, 0xb8, 0x21, 0x03, 0x2d, 0xe2, 0x57, 0xb3,
+
  0xe5, 0xcd, 0x93, 0xa9, 0x7f, 0x9e, 0xdc, 0x6e, 0xd7, 0xe0, 0xfd, 0x5b,
+
  0xa7, 0x3d, 0xaf, 0x0b, 0xed, 0x31, 0x58, 0x8c, 0xc7, 0x21, 0x69, 0xb6,
+
  0xc6, 0x83, 0x5b, 0x67, 0x93, 0x59, 0x56, 0x0b, 0x54, 0x4f, 0xf2, 0x14,
+
  0xfe, 0xfd, 0x16, 0x84, 0x2c, 0x2d, 0xb3, 0x91, 0x56, 0xba, 0x94, 0x55,
+
  0x10, 0x50, 0xf0, 0x05, 0xe3, 0xc3, 0x7d, 0xc5, 0x76, 0xcf, 0x46, 0xf6,
+
  0x24, 0xb0, 0xee, 0x03, 0xbd, 0xef, 0x2f, 0xfe, 0x7a, 0x76, 0xfc, 0xed,
+
  0x53, 0x14, 0x40, 0xbe, 0xa3, 0x22, 0x3d, 0x5a, 0x53, 0x36, 0x88, 0x24,
+
  0xb7, 0x73, 0x33, 0x7d, 0xfe, 0xe5, 0xd9, 0xc9, 0xf9, 0xd9, 0xcb, 0xd3,
+
  0xa3, 0x6f, 0x9f, 0xfe, 0x05, 0xad, 0x0b, 0x20, 0xb1, 0xde, 0xc6, 0x6f,
+
  0xd9, 0xc7, 0x89, 0x16, 0x66, 0xd2, 0x57, 0x5f, 0x1f, 0xff, 0xf4, 0xee,
+
  0xf8, 0xf5, 0x9f, 0xbf, 0x7d, 0x7a, 0x9d, 0x96, 0x5d, 0x9a, 0x81, 0xbe,
+
  0x87, 0x90, 0x30, 0xb3, 0xeb, 0xbc, 0x2c, 0x66, 0xe8, 0xbf, 0x02, 0x11,
+
  0xb2, 0xcc, 0x71, 0xf1, 0x43, 0x78, 0x59, 0xbc, 0x04, 0x3e, 0xc6, 0xec,
+
  0x37, 0x00, 0xcd, 0xd7, 0x32, 0xf5, 0xeb, 0x7a, 0x77, 0x67, 0x47, 0x16,
+
  0xed, 0x5e, 0x6f, 0x24, 0x30, 0x8b, 0x71, 0x7e, 0x19, 0xce, 0x15, 0x1a,
+
  0xb2, 0x06, 0x93, 0xf7, 0x55, 0xfe, 0x8f, 0x2c, 0x79, 0x4a, 0xb2, 0xaf,
+
  0x96, 0xea, 0xb9, 0x20, 0xc8, 0x15, 0xc5, 0x09, 0xba, 0x20, 0x18, 0xf5,
+
  0x1f, 0x5e, 0xfe, 0xf1, 0xfc, 0xe4, 0xbf, 0x8f, 0x95, 0xf6, 0x37, 0xa9,
+
  0xa4, 0x29, 0xce, 0xe5, 0xd1, 0xee, 0x1e, 0xde, 0x65, 0x13, 0x2c, 0xd5,
+
  0x52, 0x6e, 0x45, 0xa2, 0x9e, 0x80, 0x3d, 0x0f, 0x60, 0x39, 0xdf, 0x27,
+
  0xd4, 0x4f, 0xc8, 0xb4, 0xb7, 0xda, 0x06, 0x56, 0x79, 0x4e, 0x2d, 0x79,
+
  0x8c, 0x22, 0x26, 0xbc, 0x55, 0x24, 0x85, 0xd2, 0xa1, 0xf6, 0xf2, 0x78,
+
  0x2c, 0xec, 0xf5, 0x07, 0x0f, 0x07, 0x8d, 0x83, 0x91, 0xc8, 0x1e, 0x06,
+
  0xd1, 0x65, 0x64, 0x42, 0x17, 0x1d, 0x15, 0x4d, 0xbb, 0xb5, 0xf2, 0x92,
+
  0x28, 0x08, 0x31, 0xd6, 0xd5, 0xc7, 0x47, 0x47, 0x45, 0x1d, 0xed, 0xee,
+
  0xec, 0x3d, 0x4c, 0xea, 0xf6, 0xa2, 0xa8, 0xcb, 0x3b, 0x45, 0xaf, 0xc2,
+
  0x89, 0x6a, 0x42, 0x5c, 0x35, 0x3e, 0x8f, 0x76, 0x4b, 0xbc, 0xc4, 0x28,
+
  0xc0, 0xa3, 0xb1, 0x97, 0x16, 0x49, 0x8f, 0x8c, 0x56, 0x9a, 0x11, 0x0d,
+
  0x35, 0x9f, 0xe2, 0xa4, 0xb3, 0x2a, 0x51, 0x8f, 0xad, 0x33, 0x38, 0x12,
+
  0x08, 0x6d, 0x32, 0xc9, 0x2e, 0xc9, 0x05, 0xc5, 0x8b, 0x5c, 0x59, 0xd9,
+
  0x23, 0xc9, 0xe8, 0x01, 0x59, 0x7c, 0x56, 0xdc, 0x10, 0x80, 0x37, 0xef,
+
  0x0d, 0x17, 0x65, 0x33, 0xb8, 0x48, 0x75, 0xe7, 0x46, 0xa3, 0x10, 0x44,
+
  0xdc, 0xba, 0x05, 0x6a, 0xb4, 0xb1, 0x58, 0xb6, 0xc8, 0x62, 0x5c, 0x68,
+
  0x30, 0xc5, 0x78, 0x11, 0x92, 0xbb, 0xcd, 0xac, 0x6b, 0x83, 0x1f, 0x2d,
+
  0xaf, 0xf9, 0x7d, 0x7b, 0xeb, 0xc6, 0x20, 0x3b, 0xbb, 0xfb, 0xcd, 0x5e,
+
  0x7f, 0xf7, 0xf1, 0x13, 0x2c, 0xf4, 0xb0, 0xbd, 0x62, 0x57, 0x65, 0x8e,
+
  0xba, 0xa5, 0xff, 0xe8, 0xfa, 0xea, 0xa9, 0xc9, 0x53, 0xfc, 0xf5, 0xbb,
+
  0x25, 0xf0, 0xa3, 0x37, 0x2a, 0x46, 0x73, 0x8d, 0x74, 0x51, 0xb4, 0x0c,
+
  0xfc, 0x0d, 0xa3, 0xed, 0x59, 0x8d, 0x61, 0x2f, 0xb7, 0x46, 0x31, 0xca,
+
  0x55, 0xe1, 0x21, 0x13, 0x49, 0x15, 0x82, 0x87, 0x08, 0x1d, 0x8e, 0xa0,
+
  0xee, 0x57, 0xb6, 0x15, 0xc0, 0x28, 0x35, 0x46, 0x99, 0xc1, 0x12, 0x2f,
+
  0x18, 0x49, 0x05, 0x11, 0xc6, 0x49, 0xfe, 0x23, 0xdb, 0xab, 0xf0, 0xb5,
+
  0xd4, 0xaa, 0x15, 0xa2, 0xbc, 0x35, 0x12, 0x6c, 0x20, 0xc2, 0x59, 0xa2,
+
  0x72, 0x14, 0x63, 0xbb, 0x05, 0x4d, 0x1f, 0x03, 0xbd, 0x96, 0x44, 0x65,
+
  0x90, 0x84, 0x89, 0x1a, 0x91, 0x6b, 0xc3, 0xb8, 0x2a, 0x4b, 0x76, 0x46,
+
  0x6c, 0x21, 0xe4, 0xff, 0x69, 0x04, 0x8c, 0xe1, 0xea, 0x55, 0x45, 0xdc,
+
  0xe4, 0x52, 0x98, 0x16, 0x4f, 0x43, 0x4c, 0xc3, 0x34, 0x90, 0xcd, 0x29,
+
  0x8e, 0x7f, 0x4b, 0xf8, 0x08, 0x97, 0x76, 0x36, 0x4c, 0x0f, 0x33, 0x71,
+
  0xc4, 0xa2, 0x03, 0xb4, 0x86, 0xef, 0xaa, 0xd8, 0xc0, 0x22, 0x83, 0xd4,
+
  0x81, 0xa2, 0x46, 0xdd, 0x22, 0x68, 0xb5, 0x8a, 0xda, 0xe3, 0x80, 0x51,
+
  0xfd, 0x73, 0x05, 0x9f, 0x89, 0x96, 0x4c, 0x10, 0x5d, 0x47, 0x58, 0x64,
+
  0x6c, 0xb3, 0xb7, 0x65, 0xa5, 0x71, 0xf2, 0x3a, 0x68, 0x4d, 0xe4, 0xc8,
+
  0x8e, 0x81, 0xa7, 0x42, 0x5d, 0x62, 0x8e, 0xa0, 0x08, 0x9b, 0x2d, 0xfb,
+
  0x4c, 0x1d, 0x6d, 0x73, 0x3c, 0xa5, 0xb1, 0xc5, 0x3c, 0x60, 0x01, 0xc7,
+
  0x0d, 0xa1, 0x12, 0x9e, 0xdd, 0x04, 0x88, 0x4d, 0xaf, 0x13, 0x5b, 0x43,
+
  0x0e, 0x56, 0x31, 0xd4, 0x04, 0xa2, 0x08, 0x2e, 0x43, 0xec, 0x60, 0xf4,
+
  0x72, 0xda, 0x0a, 0x45, 0xdc, 0x49, 0x41, 0xac, 0xa1, 0x50, 0x38, 0x11,
+
  0xab, 0x1c, 0x21, 0x8d, 0xd3, 0xa1, 0x94, 0x21, 0x2a, 0x0b, 0x8c, 0x2c,
+
  0xa2, 0x9d, 0x1b, 0x15, 0x0d, 0x18, 0x6f, 0xab, 0x6a, 0xc6, 0xb4, 0x6b,
+
  0x90, 0xc7, 0x31, 0x3b, 0xb7, 0xb3, 0xf3, 0x39, 0x0a, 0x2b, 0x34, 0x6a,
+
  0xe7, 0xfd, 0x23, 0xe9, 0xfc, 0x04, 0xad, 0xed, 0xec, 0x02, 0x59, 0xcc,
+
  0x93, 0xbd, 0x9d, 0xbd, 0xdd, 0x64, 0x77, 0xef, 0x60, 0xf7, 0xc9, 0xc1,
+
  0xce, 0xce, 0xfd, 0xd5, 0xf4, 0xe0, 0xe5, 0xde, 0x6f, 0x79, 0xfb, 0x1e,
+
  0xc4, 0x13, 0xc7, 0x58, 0x80, 0xe4, 0x2e, 0x7b, 0x84, 0xe2, 0x6f, 0xe1,
+
  0x45, 0x71, 0x0d, 0x68, 0x33, 0x20, 0xf6, 0x50, 0x41, 0xb9, 0xc5, 0xab,
+
  0xd5, 0x3b, 0x74, 0x44, 0x4b, 0x12, 0x54, 0xc9, 0x44, 0x1c, 0x73, 0xd7,
+
  0xbb, 0xfd, 0x7d, 0x52, 0x68, 0x6e, 0xf9, 0x32, 0xee, 0x72, 0x77, 0x16,
+
  0x4a, 0x94, 0x6c, 0xec, 0xbc, 0xb9, 0xb8, 0xd8, 0xb0, 0x82, 0xcc, 0x65,
+
  0x66, 0x00, 0xfe, 0xaa, 0xb3, 0x93, 0x42, 0x6a, 0x71, 0x4a, 0xec, 0xfd,
+
  0x4b, 0x85, 0x6b, 0x6b, 0xb1, 0x1e, 0xbb, 0x9c, 0xac, 0xc8, 0x52, 0xad,
+
  0xc8, 0xfb, 0xab, 0xec, 0x3a, 0xac, 0xee, 0xfb, 0xc2, 0x2b, 0x66, 0x8e,
+
  0xc5, 0xf1, 0xff, 0x38, 0x5b, 0x38, 0x7f, 0xec, 0x89, 0x43, 0x7a, 0x37,
+
  0xd3, 0x14, 0x47, 0xb9, 0xea, 0x24, 0xc5, 0x22, 0xc5, 0x8e, 0x7c, 0x68,
+
  0xe4, 0x06, 0xbb, 0x27, 0x8d, 0x0f, 0xb1, 0x62, 0x72, 0xab, 0xc1, 0x36,
+
  0x2b, 0x16, 0xb3, 0x21, 0x73, 0x22, 0x4b, 0x06, 0xd3, 0xf8, 0xa0, 0xa4,
+
  0x53, 0xf1, 0xc1, 0xee, 0xf0, 0x14, 0xc8, 0xeb, 0x8a, 0x8d, 0xe1, 0x10,
+
  0xb1, 0x2a, 0x1c, 0x56, 0x65, 0x71, 0xca, 0x84, 0x2c, 0x4d, 0x66, 0xa0,
+
  0x1c, 0x89, 0xbc, 0x2f, 0x25, 0xac, 0x03, 0x5a, 0x98, 0x15, 0x39, 0x75,
+
  0x7b, 0x61, 0xe1, 0x29, 0xc8, 0x41, 0x45, 0x9e, 0x8c, 0x2a, 0xd2, 0xa4,
+
  0x78, 0xac, 0x63, 0xc7, 0x76, 0x25, 0x60, 0x98, 0xb5, 0xda, 0x4a, 0xe0,
+
  0x21, 0xde, 0x4c, 0x5d, 0x07, 0x1d, 0x42, 0xd7, 0x57, 0xa4, 0xc1, 0x28,
+
  0x17, 0xe5, 0xf2, 0x61, 0x09, 0x78, 0x2c, 0xff, 0xff, 0xf6, 0xbe, 0xb5,
+
  0xa9, 0x8d, 0x24, 0xdb, 0xf6, 0x33, 0xfc, 0x8a, 0x0a, 0xc5, 0x75, 0x34,
+
  0x9c, 0x91, 0x64, 0x1e, 0x7e, 0x5f, 0x4f, 0xcf, 0x60, 0xa0, 0xbb, 0x39,
+
  0x63, 0x03, 0x83, 0xb0, 0xbb, 0xe7, 0xce, 0x4c, 0x10, 0x05, 0x14, 0xa0,
+
  0xb1, 0x90, 0x18, 0x95, 0x64, 0x4c, 0x77, 0xcc, 0xfd, 0xed, 0x37, 0xd7,
+
  0xda, 0x8f, 0xcc, 0x2c, 0x09, 0x8c, 0xbb, 0xed, 0x73, 0x26, 0xe2, 0x9e,
+
  0x2f, 0x36, 0x92, 0xaa, 0xf2, 0xb9, 0x73, 0xe7, 0x7e, 0xae, 0x2d, 0xe5,
+
  0x14, 0x74, 0x55, 0xdb, 0x6a, 0x15, 0x26, 0x6a, 0x71, 0x56, 0x9e, 0x70,
+
  0xa4, 0xb7, 0x7e, 0x1a, 0xe8, 0x59, 0xeb, 0x56, 0xa7, 0xea, 0x30, 0xd6,
+
  0x31, 0x2a, 0xc3, 0x96, 0x0b, 0x09, 0xe0, 0xa4, 0xae, 0x4d, 0xad, 0xaf,
+
  0x74, 0x9a, 0x2e, 0x86, 0xb2, 0x37, 0x10, 0xa7, 0xc6, 0x70, 0x12, 0xe1,
+
  0x55, 0xaf, 0x0f, 0x33, 0x32, 0x6a, 0xf2, 0x5a, 0x92, 0x7a, 0x58, 0x4f,
+
  0x08, 0xeb, 0x5f, 0xde, 0xc0, 0xee, 0xb2, 0x31, 0x24, 0xc0, 0x32, 0x5c,
+
  0xe5, 0x63, 0x45, 0x81, 0x60, 0x38, 0x26, 0x8b, 0x70, 0x64, 0x9d, 0x69,
+
  0x3a, 0x45, 0x8a, 0x0b, 0xa7, 0xc2, 0x84, 0x62, 0xa4, 0xd8, 0x97, 0x52,
+
  0x8e, 0x0b, 0x80, 0xac, 0x57, 0x29, 0x4e, 0x98, 0x80, 0xeb, 0x8f, 0x63,
+
  0xc5, 0x64, 0x84, 0xac, 0x96, 0x0c, 0xc2, 0x46, 0xf4, 0xcf, 0xf4, 0x38,
+
  0x1c, 0x12, 0xd7, 0xf7, 0xd1, 0xa4, 0x14, 0x22, 0x13, 0xd0, 0x61, 0x4a,
+
  0x6d, 0xa5, 0x25, 0x8a, 0x48, 0x59, 0x71, 0x9c, 0x3c, 0xc5, 0x92, 0x0d,
+
  0x62, 0xcf, 0x45, 0x89, 0x6a, 0x4e, 0xfd, 0xa1, 0xc6, 0x98, 0x68, 0x56,
+
  0x92, 0x6c, 0x8b, 0xf5, 0x38, 0x1a, 0x0b, 0x94, 0x9f, 0x97, 0x85, 0x38,
+
  0x1b, 0xf7, 0xcf, 0x81, 0x8e, 0x15, 0xce, 0xa4, 0x07, 0x7b, 0x8b, 0x19,
+
  0x1f, 0x11, 0x7c, 0x81, 0x3b, 0xdc, 0x28, 0xc8, 0x54, 0x71, 0x3e, 0x42,
+
  0xd2, 0xc2, 0x69, 0x55, 0x7a, 0xb9, 0x53, 0x2e, 0x4e, 0x2c, 0x87, 0xc2,
+
  0x06, 0x00, 0x1c, 0x9d, 0xe2, 0x69, 0xa1, 0xea, 0xf0, 0xf4, 0xa4, 0x92,
+
  0x93, 0x25, 0x4b, 0x34, 0x97, 0x29, 0x58, 0x2c, 0x2e, 0x17, 0x28, 0x56,
+
  0x34, 0x3e, 0x51, 0x07, 0x8a, 0xf1, 0x37, 0x2d, 0xf8, 0xd6, 0x47, 0xed,
+
  0xa2, 0x93, 0x7e, 0x6d, 0x05, 0xa0, 0xc3, 0x5b, 0x77, 0x06, 0xf5, 0x5d,
+
  0xb0, 0xb0, 0xcb, 0x9c, 0x8e, 0xd5, 0x2e, 0x7a, 0x8c, 0xe2, 0xf4, 0xbc,
+
  0xdb, 0x01, 0xe4, 0x98, 0xdf, 0xe7, 0xb9, 0x09, 0x38, 0x63, 0xa5, 0xb7,
+
  0x9a, 0x80, 0x3f, 0x5b, 0x04, 0x4d, 0x5b, 0xfd, 0x84, 0x00, 0x9a, 0x0d,
+
  0xe0, 0x1e, 0x06, 0xe0, 0x67, 0xdd, 0xd5, 0xa6, 0x01, 0x58, 0x1c, 0x4a,
+
  0xeb, 0x7a, 0x63, 0xa0, 0xc5, 0xcb, 0xf2, 0x63, 0x76, 0x5b, 0x84, 0xcf,
+
  0xc5, 0xcb, 0x77, 0xdb, 0x07, 0xbd, 0x9d, 0xbd, 0xdd, 0x6f, 0xd3, 0x1b,
+
  0x43, 0xbf, 0x83, 0x80, 0x11, 0x34, 0x55, 0xc8, 0xe0, 0x8a, 0xaf, 0x1d,
+
  0x83, 0x56, 0xc8, 0x14, 0x3d, 0x62, 0x97, 0x05, 0x22, 0x83, 0x4a, 0x8e,
+
  0x87, 0xf4, 0x08, 0xf2, 0x5c, 0x70, 0x29, 0x0c, 0x44, 0xb3, 0x1f, 0x4b,
+
  0x0c, 0x72, 0x68, 0x2b, 0x6d, 0xfd, 0x63, 0xd5, 0xfe, 0xa0, 0xa6, 0xa9,
+
  0xe3, 0x6e, 0x80, 0x3d, 0xe7, 0xcc, 0xe5, 0x74, 0x64, 0xb5, 0x25, 0x20,
+
  0x41, 0x30, 0xcc, 0xa4, 0x49, 0x09, 0x31, 0x48, 0xb4, 0x9b, 0xdc, 0x32,
+
  0x5e, 0x1c, 0xf5, 0xcf, 0x6f, 0x77, 0x36, 0x3b, 0x12, 0xd1, 0x45, 0x49,
+
  0xfc, 0x61, 0x90, 0x01, 0x3d, 0xdb, 0xc2, 0xfa, 0x36, 0xb8, 0xfd, 0xc5,
+
  0x85, 0x05, 0x66, 0xfb, 0x5f, 0x49, 0xb9, 0x0c, 0xa8, 0xf1, 0x52, 0x5e,
+
  0x28, 0x09, 0x38, 0xb5, 0x77, 0xc2, 0xbc, 0xf2, 0xe7, 0x85, 0xfd, 0xae,
+
  0xc4, 0xdf, 0x57, 0xe7, 0xfd, 0xbe, 0x1a, 0x7f, 0x5f, 0x9b, 0xf7, 0xfb,
+
  0x5a, 0xfc, 0x7d, 0x7d, 0xde, 0xef, 0xeb, 0x59, 0xed, 0x61, 0xdb, 0xdd,
+
  0xaf, 0x5b, 0x7b, 0xd8, 0xbb, 0xc1, 0xce, 0x7d, 0x4a, 0xe2, 0x49, 0x1e,
+
  0x5e, 0x8f, 0xee, 0xce, 0x3b, 0x9d, 0xb4, 0xf6, 0xc6, 0xad, 0x6e, 0xda,
+
  0x5b, 0xfc, 0xb4, 0x5e, 0x71, 0x2c, 0xf7, 0xad, 0xae, 0xb4, 0xa3, 0xef,
+
  0xb5, 0x9d, 0x0c, 0xc1, 0x0f, 0x88, 0x2e, 0xa3, 0xbf, 0xb3, 0xba, 0x6e,
+
  0x71, 0xdc, 0xc5, 0x4b, 0x04, 0x9d, 0x64, 0x67, 0x24, 0x56, 0x8c, 0x16,
+
  0x9f, 0x83, 0x3c, 0x19, 0x06, 0x42, 0xb7, 0xab, 0x57, 0x9d, 0x9e, 0x09,
+
  0x7c, 0x4b, 0x20, 0x85, 0x3d, 0x5b, 0x5c, 0x62, 0x9c, 0xd1, 0x3b, 0x4f,
+
  0x12, 0xfa, 0xa2, 0xf4, 0x61, 0xbd, 0x6b, 0xa3, 0xb4, 0xc9, 0x38, 0xbc,
+
  0x49, 0xd8, 0x2e, 0xc3, 0x31, 0xb7, 0x68, 0xf3, 0xa0, 0x49, 0x96, 0xa7,
+
  0x20, 0x8b, 0xd1, 0xd0, 0x5a, 0xcc, 0xc6, 0xe5, 0x96, 0x50, 0xbb, 0xb2,
+
  0xdf, 0x1e, 0xbc, 0x36, 0x63, 0x9b, 0x6d, 0x04, 0x05, 0x9a, 0xba, 0x7a,
+
  0x18, 0x14, 0x89, 0xfa, 0x21, 0x53, 0x2e, 0xb4, 0xf1, 0x8b, 0xc9, 0xe5,
+
  0xe0, 0x16, 0x34, 0x96, 0x28, 0xb1, 0x15, 0xb3, 0x5b, 0xc3, 0x5b, 0x04,
+
  0x56, 0x77, 0x44, 0x55, 0x82, 0xd0, 0x57, 0x23, 0xb2, 0x21, 0x15, 0xda,
+
  0x76, 0xb8, 0x4a, 0x07, 0x67, 0xe1, 0x57, 0x6a, 0xad, 0x97, 0xc7, 0xd5,
+
  0x29, 0xc6, 0xbe, 0xde, 0x7d, 0xd2, 0x5d, 0x11, 0xcb, 0xd3, 0x24, 0x42,
+
  0xb3, 0xbe, 0x12, 0x79, 0x82, 0xbd, 0x08, 0x0e, 0xa0, 0x30, 0x58, 0x7b,
+
  0x0b, 0x2f, 0x78, 0x6b, 0x8d, 0x25, 0xd0, 0x65, 0x54, 0x89, 0x16, 0xd7,
+
  0xaa, 0x54, 0x65, 0x60, 0x00, 0xbc, 0x57, 0xa2, 0xf6, 0xd8, 0xfd, 0x68,
+
  0x6f, 0x96, 0x6c, 0xa7, 0x9c, 0x20, 0xbe, 0x5a, 0xf6, 0x64, 0xde, 0x4d,
+
  0x98, 0xc2, 0xd1, 0xc6, 0x76, 0xef, 0x68, 0x75, 0xed, 0xd9, 0xd1, 0xf7,
+
  0x9b, 0x6f, 0x8e, 0x7a, 0x3f, 0x6c, 0xac, 0x3d, 0x7e, 0x72, 0x9f, 0x1b,
+
  0xc1, 0x7d, 0x82, 0xf1, 0x4e, 0x88, 0x73, 0x6b, 0x7b, 0x42, 0x6b, 0x73,
+
  0x5a, 0x49, 0x44, 0x42, 0x18, 0xd0, 0x87, 0xaa, 0x4e, 0x0f, 0x04, 0xe2,
+
  0x9f, 0x89, 0x47, 0xf8, 0x12, 0xff, 0xe6, 0xc7, 0xa1, 0x92, 0xa8, 0xc3,
+
  0x66, 0x8c, 0x34, 0x2d, 0xb4, 0xc0, 0x6e, 0x1d, 0xb3, 0x86, 0xa8, 0xda,
+
  0xdd, 0x44, 0xe6, 0xf1, 0xdb, 0x24, 0x83, 0x2a, 0x20, 0xf5, 0xb4, 0x7a,
+
  0x07, 0xfb, 0xad, 0xb6, 0xc6, 0x83, 0x85, 0x76, 0x3b, 0xe1, 0x73, 0x21,
+
  0x1e, 0x9d, 0xe2, 0xf1, 0xca, 0xe3, 0x47, 0xcb, 0x9e, 0x84, 0x16, 0x86,
+
  0x45, 0xac, 0xfc, 0x66, 0x30, 0x45, 0x44, 0x50, 0x19, 0x67, 0x89, 0xe0,
+
  0x84, 0x53, 0xc8, 0x67, 0xa3, 0x62, 0x64, 0x5b, 0x13, 0x6e, 0x67, 0x2a,
+
  0xd2, 0xe9, 0x35, 0xc0, 0x53, 0xcd, 0x81, 0xe5, 0x15, 0x75, 0x10, 0x67,
+
  0xa8, 0xf5, 0x64, 0x2d, 0x2c, 0x71, 0x1a, 0x6e, 0x87, 0x70, 0x7b, 0xbb,
+
  0x9b, 0x6f, 0x26, 0xb4, 0x44, 0xa8, 0xd6, 0x26, 0xe6, 0x22, 0xb6, 0xf2,
+
  0x12, 0x67, 0x78, 0x76, 0x6c, 0xfc, 0xc0, 0x88, 0xf2, 0x33, 0xf7, 0xed,
+
  0x6e, 0xe4, 0xfd, 0xe9, 0xcc, 0xbe, 0x4e, 0x52, 0x5e, 0xda, 0x09, 0xc6,
+
  0x70, 0x2f, 0x45, 0x56, 0xb7, 0x2a, 0xa5, 0x28, 0xdf, 0xa5, 0x97, 0x62,
+
  0x48, 0x9a, 0xa1, 0xa9, 0x22, 0xe2, 0x99, 0x58, 0xac, 0x92, 0xc1, 0x3c,
+
  0xab, 0x4a, 0x31, 0x13, 0x95, 0x7f, 0x59, 0x05, 0xb1, 0xe0, 0xb4, 0x01,
+
  0xae, 0x67, 0x72, 0x58, 0x32, 0xf0, 0xae, 0x85, 0x2a, 0xeb, 0xc5, 0x12,
+
  0x69, 0x49, 0x24, 0x95, 0x7b, 0x01, 0x1f, 0xf9, 0x56, 0x14, 0xc2, 0xbf,
+
  0x23, 0x55, 0xc6, 0x81, 0x7f, 0x45, 0x56, 0xe1, 0x9d, 0x5c, 0x5d, 0x9f,
+
  0x26, 0x13, 0x90, 0xea, 0x11, 0xbf, 0x72, 0x4f, 0xf8, 0x72, 0x8a, 0x57,
+
  0x91, 0xec, 0x86, 0xc1, 0xcc, 0xc8, 0xc9, 0x24, 0x6b, 0x8f, 0xdb, 0xf1,
+
  0xa5, 0x76, 0x23, 0xd9, 0x8e, 0x78, 0x8a, 0xc9, 0xc0, 0x92, 0x74, 0xea,
+
  0x79, 0xbb, 0xe3, 0x56, 0xc7, 0x04, 0x94, 0x2a, 0x6e, 0x8d, 0x9d, 0x0e,
+
  0xdb, 0xe2, 0xaf, 0x83, 0x4e, 0xf7, 0x85, 0x36, 0xc5, 0xda, 0xb0, 0x8d,
+
  0x89, 0x12, 0x4b, 0xba, 0x27, 0x90, 0x02, 0x21, 0x12, 0x31, 0x23, 0x27,
+
  0x15, 0xc9, 0xc3, 0x8c, 0x3f, 0xca, 0x8d, 0xec, 0x29, 0x7f, 0x56, 0x72,
+
  0xb9, 0x94, 0xba, 0x89, 0x96, 0x4d, 0x23, 0xd9, 0x4f, 0xe2, 0x6c, 0x61,
+
  0x32, 0x9f, 0x14, 0xdd, 0x4d, 0x24, 0x5b, 0xe6, 0x5e, 0x85, 0xdd, 0xbe,
+
  0xe8, 0x9f, 0xe3, 0x1a, 0x6d, 0x6a, 0x4a, 0x36, 0xa2, 0xf9, 0x35, 0x0a,
+
  0x32, 0xdf, 0xe5, 0xa7, 0x16, 0xee, 0xc3, 0xea, 0xa7, 0xe4, 0xc1, 0xf0,
+
  0xc4, 0x97, 0x08, 0xda, 0x9b, 0x85, 0xad, 0x48, 0x28, 0xf2, 0x6e, 0xf9,
+
  0x70, 0x36, 0x37, 0xf5, 0xae, 0x28, 0x3d, 0x95, 0x3c, 0xd3, 0x3d, 0xfb,
+
  0x0e, 0xa0, 0x4d, 0xb5, 0x87, 0x5f, 0xf2, 0x0c, 0xcd, 0x59, 0x6d, 0xb1,
+
  0xf5, 0x5f, 0xa7, 0x10, 0x10, 0x7e, 0x9d, 0x30, 0x1b, 0x58, 0x36, 0x31,
+
  0xdd, 0xbf, 0x45, 0xaf, 0x2b, 0x87, 0xd0, 0x2c, 0x4b, 0x84, 0xa3, 0x20,
+
  0xc9, 0xce, 0x1a, 0x89, 0x9d, 0x66, 0x2a, 0xb6, 0xf2, 0x34, 0x08, 0x7a,
+
  0x28, 0x8e, 0x70, 0x8f, 0x1d, 0x45, 0xd2, 0x10, 0x11, 0x82, 0x84, 0x51,
+
  0x1c, 0x57, 0x17, 0xe5, 0x07, 0x40, 0xf7, 0xf3, 0x75, 0xe0, 0x5e, 0x0f,
+
  0xeb, 0x20, 0xaa, 0xd2, 0x1e, 0x96, 0x17, 0xc8, 0x69, 0x04, 0xe7, 0x87,
+
  0x4d, 0x1a, 0x97, 0xa8, 0x2b, 0x27, 0x61, 0x69, 0x26, 0xd7, 0x23, 0x12,
+
  0x22, 0x2d, 0x44, 0xc8, 0xa3, 0x56, 0xba, 0xb2, 0x99, 0xa9, 0x98, 0xb3,
+
  0xa5, 0x03, 0x75, 0x69, 0xbf, 0x0c, 0xdd, 0x75, 0x57, 0xee, 0x7d, 0x32,
+
  0x9b, 0x5a, 0x02, 0xc8, 0xe5, 0xf3, 0xf6, 0x77, 0xf5, 0xdf, 0x6a, 0x7f,
+
  0x57, 0xff, 0xad, 0xf7, 0x77, 0xf5, 0x0b, 0xed, 0xef, 0xea, 0x67, 0xed,
+
  0xef, 0xed, 0x46, 0x13, 0x70, 0x84, 0xcf, 0xdb, 0xed, 0xb5, 0x7f, 0xab,
+
  0xdd, 0x5e, 0xfb, 0xb7, 0xde, 0xed, 0xb5, 0x2f, 0xb4, 0xdb, 0x6b, 0x5f,
+
  0x6e, 0xb7, 0xd7, 0x3f, 0x6f, 0xb7, 0xd7, 0x7f, 0xe3, 0x6e, 0xff, 0x37,
+
  0x5a, 0xbb, 0x62, 0xad, 0x04, 0x53, 0x9c, 0xbd, 0xb2, 0x5a, 0x9a, 0xab,
+
  0x06, 0x27, 0x30, 0x1e, 0xd0, 0xbc, 0xb3, 0x7a, 0x5e, 0xbe, 0xbe, 0x2d,
+
  0xec, 0x97, 0xd9, 0xcd, 0xf5, 0xcf, 0xd9, 0xcd, 0xb5, 0xdb, 0x76, 0x73,
+
  0xdc, 0xa9, 0x02, 0x8d, 0xc7, 0x51, 0x72, 0x21, 0xa2, 0xf3, 0xbd, 0x14,
+
  0x77, 0x04, 0xfc, 0xb7, 0x30, 0xec, 0xe9, 0xe2, 0x74, 0xb6, 0xf5, 0x9d,
+
  0xa4, 0x36, 0x91, 0x66, 0x86, 0x87, 0x4d, 0xb1, 0x1c, 0x46, 0x2d, 0x2d,
+
  0x67, 0x15, 0x38, 0xad, 0x04, 0xa6, 0xf9, 0xa3, 0x34, 0x85, 0x74, 0x3a,
+
  0xb4, 0x0e, 0xb4, 0x2e, 0x26, 0x8d, 0xcb, 0x2c, 0x94, 0x68, 0x86, 0x7a,
+
  0x2b, 0x44, 0xde, 0x6f, 0xa4, 0x8f, 0x26, 0x83, 0xff, 0x42, 0xc5, 0xa0,
+
  0x92, 0x16, 0x3f, 0xb1, 0x05, 0x49, 0xd7, 0xf7, 0xcb, 0x1c, 0xf5, 0x55,
+
  0x4c, 0xd6, 0xbe, 0x04, 0x04, 0x5e, 0x92, 0xaa, 0xd0, 0x43, 0xcd, 0x21,
+
  0x3a, 0xfc, 0xa7, 0x28, 0x81, 0x22, 0x0f, 0x14, 0x88, 0x0b, 0x15, 0x0c,
+
  0x46, 0x10, 0x99, 0x54, 0xd6, 0xe0, 0x94, 0xb9, 0x7e, 0x81, 0xf8, 0xcf,
+
  0x47, 0x1e, 0x3c, 0xd4, 0x36, 0xcf, 0x3e, 0x48, 0x1c, 0xdf, 0x06, 0x3a,
+
  0x67, 0xc5, 0x74, 0x08, 0x73, 0xfd, 0x21, 0xb2, 0xfb, 0x92, 0x7a, 0x84,
+
  0x89, 0x03, 0x5d, 0xc3, 0x92, 0xa5, 0xbc, 0x37, 0x78, 0x98, 0x56, 0x6c,
+
  0xea, 0xb4, 0xe8, 0xf6, 0xf4, 0xbc, 0x07, 0xb0, 0x30, 0xc4, 0x63, 0x6a,
+
  0xad, 0x41, 0x79, 0x4b, 0x9c, 0x7f, 0x31, 0xd9, 0x41, 0xb0, 0xe6, 0x5a,
+
  0x0f, 0x5a, 0x11, 0x43, 0x25, 0x6d, 0xc0, 0xdf, 0x4f, 0x5f, 0xf7, 0x8c,
+
  0x8c, 0xd9, 0x83, 0x17, 0x63, 0x89, 0xe5, 0x79, 0x2c, 0x85, 0x14, 0x6c,
+
  0x0f, 0xcc, 0xe0, 0x43, 0x7f, 0xc2, 0x5a, 0xd2, 0x58, 0x8c, 0x61, 0x35,
+
  0x11, 0xf5, 0x33, 0xac, 0xdc, 0xd9, 0x99, 0x41, 0xd2, 0x0a, 0xbe, 0x06,
+
  0x1d, 0x4e, 0xc0, 0x8f, 0x43, 0x48, 0x2b, 0x97, 0x43, 0xfc, 0xbb, 0xc9,
+
  0x5a, 0x99, 0x1a, 0x87, 0x8a, 0x4d, 0xe3, 0xea, 0x54, 0xca, 0xe3, 0xd4,
+
  0xd1, 0xcc, 0x50, 0x57, 0xe1, 0x6b, 0xad, 0xa7, 0x8e, 0xe6, 0x90, 0xc7,
+
  0x00, 0xe3, 0x5b, 0x51, 0x5e, 0xd3, 0x9c, 0x42, 0x8c, 0x84, 0xc0, 0xa6,
+
  0x4a, 0x14, 0xe3, 0x1d, 0x68, 0x02, 0x20, 0x6a, 0x11, 0x0a, 0x66, 0x02,
+
  0x76, 0x53, 0xef, 0x8a, 0xd1, 0xb9, 0x96, 0x00, 0x67, 0x0d, 0xac, 0xfa,
+
  0xbf, 0x24, 0x3b, 0x44, 0xa9, 0xe9, 0xab, 0xd5, 0x39, 0x94, 0xf6, 0xc3,
+
  0xd4, 0x3e, 0x91, 0x19, 0x22, 0xaa, 0x87, 0x9b, 0x0e, 0x04, 0xe5, 0x2b,
+
  0xa6, 0x0b, 0xa5, 0xf9, 0x42, 0x31, 0x61, 0xc8, 0x49, 0x20, 0x37, 0x68,
+
  0xa1, 0xcb, 0x4e, 0x59, 0x9f, 0xf4, 0xfb, 0xb9, 0x93, 0x27, 0x7e, 0xdf,
+
  0xf6, 0x8f, 0x12, 0x09, 0xd8, 0x8e, 0xef, 0xf5, 0x4f, 0xeb, 0xe8, 0xf3,
+
  0xb5, 0x2f, 0xf3, 0xe0, 0x81, 0xd8, 0xce, 0xff, 0x8f, 0xe7, 0x94, 0xce,
+
  0xe0, 0xe4, 0x9c, 0xce, 0x1c, 0xd1, 0x43, 0x45, 0x7b, 0xaa, 0xfb, 0x97,
+
  0xfd, 0x41, 0xc9, 0xe2, 0x65, 0x31, 0xd6, 0x1f, 0x26, 0xc5, 0xa0, 0x82,
+
  0xc3, 0x79, 0x3b, 0x32, 0xb0, 0xd6, 0x8b, 0xea, 0xa3, 0x44, 0x11, 0xc8,
+
  0x92, 0x78, 0xad, 0x65, 0xc4, 0xba, 0x2b, 0xff, 0xdf, 0xe8, 0x6d, 0xee,
+
  0xec, 0xc8, 0x43, 0x96, 0xd4, 0x8e, 0x85, 0x95, 0x34, 0x04, 0xad, 0x01,
+
  0x57, 0x5f, 0xa2, 0xf6, 0x98, 0x65, 0x22, 0xa5, 0x41, 0x36, 0x72, 0xd6,
+
  0xc3, 0xd1, 0x08, 0xba, 0x3f, 0x62, 0xd2, 0xe9, 0x99, 0x2a, 0xe5, 0x7c,
+
  0x4c, 0x87, 0x61, 0x64, 0xfd, 0x61, 0xa0, 0xfb, 0x8b, 0xe9, 0x65, 0x39,
+
  0xac, 0xff, 0x87, 0xd1, 0x7c, 0xf9, 0x9c, 0x21, 0xb5, 0xf3, 0x25, 0xe7,
+
  0xe6, 0x4e, 0x30, 0xbe, 0x18, 0x53, 0xf0, 0xab, 0x8c, 0x4a, 0x49, 0x37,
+
  0xf7, 0xe4, 0x3b, 0x49, 0x42, 0xcd, 0xac, 0xb1, 0xc3, 0xad, 0x1d, 0x3c,
+
  0xcf, 0x79, 0x96, 0xd0, 0xac, 0x81, 0x23, 0x4f, 0x6b, 0xe3, 0x3b, 0x0d,
+
  0xc6, 0x21, 0x1c, 0xa7, 0x61, 0xc4, 0x85, 0xc1, 0x50, 0x7e, 0x98, 0x6a,
+
  0x65, 0x2e, 0x85, 0x82, 0x10, 0x26, 0x62, 0x49, 0x37, 0x1b, 0x0a, 0xde,
+
  0xd0, 0xb1, 0x7a, 0x83, 0xa7, 0x85, 0x7b, 0xc0, 0x1c, 0xdb, 0x21, 0x48,
+
  0x5e, 0x15, 0x12, 0xc4, 0x25, 0x10, 0x49, 0xdc, 0x58, 0x31, 0x5d, 0x4d,
+
  0xc3, 0x13, 0xa5, 0xfa, 0xf4, 0x87, 0xf0, 0x13, 0xa5, 0x1e, 0x44, 0x02,
+
  0xa2, 0xc0, 0x75, 0xe9, 0xb9, 0x10, 0x24, 0x29, 0x20, 0x72, 0x32, 0x65,
+
  0x5a, 0x89, 0x96, 0x85, 0xa4, 0xcc, 0xa9, 0x56, 0x7c, 0x13, 0x56, 0xea,
+
  0x1b, 0x4d, 0x5a, 0xaf, 0xb4, 0xca, 0xac, 0x70, 0xb9, 0x94, 0xda, 0xe2,
+
  0x88, 0x12, 0x35, 0x2d, 0x2d, 0x06, 0x27, 0x73, 0xf4, 0xc7, 0x04, 0xde,
+
  0x37, 0x90, 0x81, 0x79, 0xef, 0x5a, 0x81, 0x25, 0xb7, 0xb8, 0xa0, 0x2d,
+
  0x10, 0x48, 0x2b, 0x56, 0x71, 0x29, 0x3f, 0x8c, 0xfa, 0xa7, 0x2a, 0x22,
+
  0x27, 0xfc, 0x5b, 0x72, 0x9d, 0x22, 0xe7, 0x06, 0xdf, 0x28, 0x59, 0x5d,
+
  0x2d, 0x06, 0x23, 0x56, 0x55, 0x12, 0xda, 0x48, 0x42, 0x3f, 0xe2, 0x0b,
+
  0x88, 0x6f, 0x44, 0x78, 0xa3, 0x27, 0x44, 0x20, 0xfe, 0xa1, 0x19, 0xca,
+
  0xf8, 0xd5, 0x0e, 0x4a, 0x93, 0x48, 0x18, 0x7d, 0xe3, 0x85, 0x91, 0xf3,
+
  0x73, 0x22, 0x18, 0xd9, 0x65, 0x06, 0xe9, 0xf1, 0xc9, 0x68, 0xf9, 0xbc,
+
  0xf9, 0xb0, 0x56, 0x6d, 0x1c, 0x8d, 0x87, 0x6b, 0xf7, 0x8b, 0x9b, 0x58,
+
  0x6f, 0x84, 0x4d, 0x7c, 0x9a, 0xd8, 0xfd, 0x36, 0xdd, 0x1f, 0x53, 0x4d,
+
  0xae, 0xf3, 0xb8, 0x46, 0x06, 0xad, 0xa6, 0x0e, 0x5f, 0x72, 0xbd, 0xb0,
+
  0x52, 0x63, 0x3a, 0x90, 0xb0, 0x50, 0x7e, 0x04, 0x94, 0x0b, 0x5a, 0x9f,
+
  0x84, 0x46, 0x88, 0x31, 0xf4, 0x9a, 0xae, 0xf0, 0xd5, 0x85, 0xa6, 0x86,
+
  0xaa, 0x61, 0x14, 0x37, 0x2f, 0x1b, 0xfb, 0xd7, 0x28, 0x1a, 0xda, 0xde,
+
  0x7d, 0x38, 0x1c, 0xba, 0xcd, 0xb9, 0x9d, 0x9e, 0xf0, 0x7b, 0x6d, 0xe5,
+
  0x5a, 0x33, 0x02, 0x66, 0x0e, 0x77, 0xcb, 0xb7, 0x32, 0xe2, 0xfb, 0xfa,
+
  0x5e, 0x96, 0x32, 0x5d, 0xa4, 0xed, 0x41, 0xc8, 0xb1, 0x1d, 0xd3, 0x2d,
+
  0xc3, 0x3a, 0xfa, 0xdd, 0x19, 0xb7, 0x2b, 0xc1, 0xf7, 0xfd, 0xaf, 0xda,
+
  0xb4, 0xd9, 0x3d, 0x93, 0x10, 0xf0, 0x2f, 0xa4, 0x1d, 0x26, 0x12, 0xe2,
+
  0x27, 0x77, 0x8d, 0x1d, 0x7f, 0xe6, 0xb6, 0xdd, 0x73, 0x9b, 0xa6, 0xc3,
+
  0xfe, 0xc7, 0x8e, 0x96, 0xc2, 0x7b, 0x09, 0x40, 0xeb, 0x6f, 0x33, 0xe5,
+
  0x7d, 0x53, 0xce, 0x59, 0x61, 0xa5, 0xca, 0x34, 0xaa, 0x21, 0x01, 0xd1,
+
  0x76, 0x14, 0x6d, 0x4b, 0x58, 0x07, 0x6b, 0xa2, 0x06, 0x1f, 0x53, 0xdd,
+
  0x55, 0xc6, 0x51, 0xed, 0x21, 0xed, 0x72, 0xee, 0x95, 0xde, 0x8c, 0x9e,
+
  0x89, 0x08, 0xbf, 0x9f, 0x71, 0xa3, 0xa7, 0xbd, 0xc8, 0x7f, 0x1d, 0x4c,
+
  0xef, 0x7e, 0x2b, 0x56, 0x1e, 0xd7, 0x58, 0xb4, 0x49, 0xda, 0x8a, 0x2d,
+
  0xd9, 0x21, 0xf4, 0x80, 0xe9, 0x15, 0x2a, 0x56, 0x76, 0x18, 0x63, 0x9c,
+
  0x8a, 0xf3, 0x6f, 0xf9, 0x7d, 0x23, 0x10, 0x3c, 0x29, 0xba, 0xa9, 0x69,
+
  0x5a, 0x6a, 0x9e, 0x7a, 0x7b, 0xf0, 0x3a, 0xb7, 0x4b, 0x8d, 0xcd, 0x57,
+
  0xae, 0x25, 0x3a, 0x19, 0x25, 0xdb, 0x6f, 0x06, 0x96, 0xe3, 0x3d, 0x0d,
+
  0x16, 0x2f, 0xaf, 0xe4, 0x50, 0x25, 0xd2, 0x4f, 0xec, 0xcc, 0x84, 0x6f,
+
  0xbc, 0x0d, 0xf9, 0x5b, 0xed, 0x28, 0xc0, 0x1e, 0x4a, 0xc3, 0x46, 0x63,
+
  0x61, 0x4f, 0x26, 0x0e, 0xd6, 0x6a, 0xe0, 0xfa, 0xcb, 0x68, 0x2a, 0x01,
+
  0x31, 0x82, 0x58, 0x84, 0xf3, 0xd9, 0x1f, 0xe0, 0x38, 0xd4, 0x03, 0xc6,
+
  0xdc, 0x3f, 0x5c, 0x76, 0xd3, 0x25, 0x25, 0x2e, 0x81, 0x46, 0x18, 0x29,
+
  0x52, 0x2a, 0x33, 0x64, 0xdc, 0x20, 0xa7, 0x06, 0xd5, 0x72, 0x92, 0x54,
+
  0xe9, 0xc4, 0xa1, 0x71, 0x15, 0x21, 0x9c, 0x44, 0x31, 0xe9, 0xa0, 0xaa,
+
  0xf4, 0x7b, 0x75, 0x3d, 0x49, 0x98, 0x67, 0xa4, 0x80, 0xd8, 0x83, 0xe1,
+
  0x26, 0x24, 0x6b, 0x99, 0x6a, 0x1b, 0xd3, 0xba, 0xca, 0xa2, 0x79, 0xc3,
+
  0x49, 0xd1, 0x9a, 0x23, 0xb1, 0x1e, 0x69, 0x7c, 0xa1, 0xb4, 0x62, 0x01,
+
  0xba, 0x46, 0xf2, 0x81, 0x6b, 0x9c, 0xb0, 0x1d, 0xc9, 0xa5, 0xa9, 0x25,
+
  0x04, 0xb3, 0xaf, 0x11, 0x3e, 0x61, 0xea, 0xd5, 0x59, 0xa0, 0xaf, 0x40,
+
  0xbe, 0x78, 0x13, 0x49, 0x18, 0xc9, 0xea, 0x8c, 0x25, 0x8a, 0x59, 0xbf,
+
  0xf9, 0xdb, 0x72, 0x92, 0x6c, 0xad, 0x7b, 0x1a, 0xc7, 0x60, 0x71, 0xaa,
+
  0xb6, 0xa1, 0x8d, 0x6e, 0xc6, 0x02, 0xec, 0xa9, 0x1d, 0xc5, 0x93, 0xc5,
+
  0xef, 0x2f, 0x01, 0x5b, 0xcf, 0x30, 0xe8, 0x93, 0x20, 0xb8, 0x07, 0xb2,
+
  0x8d, 0xe6, 0x4e, 0x03, 0xea, 0xf7, 0x8e, 0xa8, 0xde, 0x2d, 0x95, 0xac,
+
  0xd9, 0x76, 0x3e, 0xa8, 0x98, 0x3f, 0x21, 0x18, 0xe7, 0xd8, 0xe6, 0xa0,
+
  0x93, 0xf5, 0x87, 0x45, 0x76, 0x94, 0xcb, 0x34, 0x09, 0x46, 0x74, 0xc5,
+
  0x8d, 0x01, 0xf3, 0x4c, 0x26, 0x15, 0xc2, 0x4d, 0xb2, 0xd6, 0x5b, 0x5d,
+
  0x36, 0xae, 0x6d, 0x0b, 0xea, 0xf3, 0xb2, 0x40, 0x60, 0x5a, 0xae, 0x79,
+
  0x24, 0x63, 0xeb, 0x05, 0xdd, 0x60, 0x54, 0x1e, 0x7f, 0xe0, 0xa3, 0x60,
+
  0x8e, 0x04, 0xb3, 0xdf, 0xc4, 0x2e, 0xc7, 0xa2, 0x18, 0x2e, 0xc7, 0xd1,
+
  0x00, 0x0f, 0x95, 0x8c, 0x44, 0x29, 0x01, 0xbf, 0xca, 0x16, 0x69, 0xf3,
+
  0xd3, 0x76, 0xe0, 0xb8, 0xac, 0xa8, 0x2a, 0x5d, 0x49, 0x95, 0xd9, 0xec,
+
  0xc8, 0x25, 0xa8, 0x55, 0x39, 0xf2, 0xbc, 0x15, 0x81, 0x5c, 0x02, 0x04,
+
  0x3c, 0x89, 0x81, 0x64, 0xb1, 0xff, 0xf6, 0x50, 0x3d, 0xee, 0xf3, 0x03,
+
  0xf9, 0xfe, 0xd2, 0x2c, 0x82, 0x47, 0xd3, 0x72, 0xce, 0x30, 0x04, 0xca,
+
  0x8e, 0x97, 0x1e, 0xce, 0xa2, 0x3b, 0x00, 0x54, 0x1e, 0x33, 0x27, 0xc0,
+
  0x30, 0x2c, 0xf5, 0x36, 0x9e, 0xca, 0xdf, 0xfe, 0x9d, 0xbc, 0x75, 0x55,
+
  0xf6, 0xc7, 0xbe, 0x98, 0x84, 0x88, 0x2a, 0x25, 0x1a, 0x4c, 0x38, 0x50,
+
  0xb4, 0x6d, 0x60, 0x55, 0x29, 0xd5, 0x77, 0x95, 0x37, 0xaa, 0xab, 0xdf,
+
  0x83, 0xf9, 0x79, 0x65, 0x1e, 0x8b, 0xc9, 0xd5, 0xa8, 0x3f, 0xef, 0xd3,
+
  0x84, 0xfb, 0x73, 0xad, 0xdd, 0x0e, 0x0f, 0xb6, 0xc4, 0x73, 0xc9, 0x29,
+
  0x95, 0xfc, 0x25, 0xed, 0x39, 0x4a, 0x35, 0x78, 0xb5, 0xd6, 0x7a, 0x4c,
+
  0x42, 0x12, 0x4a, 0x94, 0x60, 0x40, 0x37, 0x49, 0x4c, 0x18, 0x6b, 0x01,
+
  0xe0, 0x5b, 0x1f, 0x09, 0x31, 0x1a, 0x12, 0xb3, 0xb8, 0x9e, 0x97, 0x84,
+
  0x61, 0xf2, 0x60, 0x4b, 0x97, 0x6c, 0x66, 0x84, 0x0d, 0x13, 0x98, 0x3c,
+
  0xa1, 0x85, 0x17, 0x92, 0x90, 0xa1, 0x9b, 0x2e, 0x1a, 0x70, 0x5a, 0x39,
+
  0xc2, 0xe8, 0xe8, 0x58, 0x61, 0x73, 0x1e, 0xaf, 0xaf, 0xad, 0x15, 0x62,
+
  0x2d, 0x91, 0xf2, 0x32, 0x8a, 0x55, 0x80, 0xa6, 0x0d, 0x73, 0x43, 0x16,
+
  0x27, 0x82, 0xba, 0x31, 0xbe, 0xcd, 0xce, 0x63, 0x9a, 0x60, 0x7f, 0x89,
+
  0x62, 0xea, 0xc7, 0xa3, 0xd3, 0x9b, 0xd8, 0x62, 0xd8, 0xde, 0x31, 0xf8,
+
  0x57, 0x38, 0xe4, 0x8a, 0x35, 0xc7, 0x78, 0x05, 0xf4, 0xe0, 0x50, 0xac,
+
  0xb1, 0x1c, 0x31, 0xa5, 0xdd, 0x13, 0x10, 0xfc, 0x10, 0xc4, 0x32, 0xe4,
+
  0x9f, 0x90, 0x24, 0xce, 0xa6, 0x63, 0x16, 0xbb, 0xa7, 0x1c, 0x1f, 0xf8,
+
  0x0d, 0xd2, 0x3c, 0x9a, 0xf4, 0xe5, 0x29, 0x17, 0x75, 0xb8, 0xba, 0x92,
+
  0x8c, 0x85, 0x78, 0xec, 0xb1, 0x90, 0xc2, 0x1d, 0x10, 0xe6, 0x0f, 0xa0,
+
  0x72, 0x22, 0xb9, 0x63, 0x0f, 0xc4, 0x04, 0x60, 0x58, 0x75, 0x79, 0xe8,
+
  0x46, 0xf8, 0x7d, 0x4e, 0xa6, 0xed, 0xdd, 0x41, 0xac, 0x87, 0xb7, 0x67,
+
  0xe2, 0xe4, 0x8f, 0xb5, 0xfa, 0x97, 0xe7, 0x7f, 0x5d, 0xed, 0xac, 0xae,
+
  0xac, 0xac, 0xfc, 0xbd, 0x7b, 0x35, 0x3c, 0x6f, 0x29, 0x12, 0x5b, 0xf8,
+
  0xb7, 0x9b, 0x65, 0xe6, 0xe6, 0xf7, 0x7c, 0x32, 0xf1, 0xd6, 0x2f, 0xf8,
+
  0x6f, 0xb5, 0x8d, 0x7f, 0xd7, 0xfe, 0xd5, 0xba, 0x47, 0x9f, 0x7c, 0x4d,
+
  0xff, 0x9f, 0xab, 0xcf, 0xdc, 0x4f, 0x5e, 0x38, 0xaf, 0x98, 0xae, 0x0d,
+
  0x0a, 0x68, 0x33, 0x7b, 0xc8, 0x30, 0x4f, 0x59, 0xd4, 0x5d, 0xa2, 0xd1,
+
  0x55, 0xde, 0x0a, 0xfd, 0xbe, 0x0c, 0xff, 0x98, 0x0a, 0xef, 0x35, 0x32,
+
  0xb0, 0xf4, 0xa4, 0x34, 0xa4, 0xf3, 0x8d, 0xc6, 0x62, 0x31, 0xd3, 0x24,
+
  0xde, 0x86, 0xf3, 0xca, 0x0c, 0x78, 0xdc, 0x2d, 0x22, 0x24, 0x09, 0xf8,
+
  0x1b, 0x51, 0xf7, 0x05, 0x54, 0xb0, 0x58, 0x8a, 0x08, 0x1a, 0x2d, 0x4c,
+
  0x21, 0xcc, 0xa0, 0x15, 0xf5, 0xa1, 0xd6, 0x99, 0x7e, 0x13, 0x7a, 0x5b,
+
  0x36, 0xb6, 0x70, 0x3e, 0x85, 0x53, 0xa1, 0xb6, 0x18, 0x39, 0xc7, 0x27,
+
  0x34, 0xdc, 0xf3, 0xe3, 0x92, 0x95, 0x3d, 0x46, 0xc3, 0x39, 0xf5, 0x5b,
+
  0x3c, 0x51, 0x22, 0x30, 0xe0, 0x6a, 0xac, 0x17, 0xd2, 0xb1, 0x8a, 0x88,
+
  0xbc, 0x1a, 0x98, 0xa7, 0x18, 0x5a, 0xdf, 0xda, 0xd9, 0x0c, 0x12, 0xd4,
+
  0x77, 0x87, 0xfb, 0x0a, 0x54, 0xa8, 0xe6, 0x4b, 0xa0, 0x12, 0xb6, 0x05,
+
  0xeb, 0x12, 0x88, 0x94, 0x38, 0xc7, 0xb0, 0x23, 0x14, 0x89, 0x1d, 0x41,
+
  0x6f, 0x1b, 0x85, 0x90, 0x70, 0xa8, 0x11, 0x63, 0xdb, 0xda, 0x10, 0xad,
+
  0x53, 0xd7, 0x7d, 0xa5, 0x6c, 0x39, 0xed, 0xb5, 0x54, 0xec, 0x80, 0xe5,
+
  0x45, 0xe6, 0xc4, 0xa9, 0x72, 0xc5, 0x5c, 0x59, 0xa6, 0x59, 0xa0, 0x22,
+
  0x10, 0x69, 0x1a, 0x4c, 0x26, 0x75, 0x50, 0x68, 0x9c, 0xc5, 0x72, 0x47,
+
  0xc3, 0x9b, 0x30, 0x2e, 0x36, 0xc7, 0xb0, 0x5a, 0x2d, 0x46, 0x2f, 0x85,
+
  0xc9, 0x02, 0x5f, 0x98, 0x24, 0xa5, 0x10, 0x2c, 0x8f, 0xd0, 0xc6, 0xdc,
+
  0x46, 0xe6, 0x92, 0x04, 0x88, 0x4e, 0x46, 0x1d, 0xfb, 0x35, 0x41, 0x52,
+
  0x48, 0x8a, 0xd8, 0x38, 0x20, 0xbb, 0x58, 0x66, 0x1c, 0x15, 0x63, 0x42,
+
  0x73, 0x0d, 0xa5, 0x8e, 0x98, 0xdc, 0x72, 0x9a, 0x10, 0x85, 0x02, 0x47,
+
  0x65, 0xf9, 0x99, 0x29, 0x87, 0xf7, 0xe4, 0x46, 0xb1, 0xe0, 0xb6, 0x55,
+
  0x03, 0x72, 0xfe, 0x6f, 0x16, 0xd1, 0x1c, 0x30, 0x30, 0x2f, 0xfc, 0x9d,
+
  0xa7, 0x26, 0xdb, 0x30, 0xb0, 0x3c, 0x7e, 0x0b, 0x90, 0x65, 0x08, 0xcf,
+
  0xc8, 0x2e, 0x01, 0xa0, 0x8b, 0xbe, 0xaf, 0xda, 0x7a, 0x0f, 0xc6, 0x20,
+
  0x4a, 0x8e, 0x7f, 0xc8, 0xa4, 0xc6, 0x3e, 0x27, 0x08, 0xe4, 0xc8, 0xf0,
+
  0x0b, 0xc1, 0x11, 0x01, 0x79, 0x58, 0x21, 0x63, 0xb2, 0x8c, 0xd1, 0x46,
+
  0x7a, 0x7b, 0x6b, 0x11, 0x88, 0x6c, 0x7c, 0xc0, 0x53, 0x6e, 0x6a, 0x0b,
+
  0x7b, 0x43, 0x07, 0x47, 0x6a, 0xe3, 0x20, 0x84, 0x83, 0x2f, 0x67, 0x03,
+
  0x09, 0x15, 0x42, 0xff, 0x4e, 0x13, 0x61, 0x99, 0x01, 0xbc, 0x6f, 0x20,
+
  0xfe, 0xa6, 0xc7, 0xc4, 0x04, 0x0c, 0x3e, 0xaf, 0xdc, 0x5c, 0xc5, 0x68,
+
  0x5c, 0x5e, 0x2c, 0x2f, 0xdf, 0xb5, 0xe3, 0x3e, 0x0f, 0xb3, 0x20, 0x05,
+
  0x10, 0xf9, 0x2c, 0xe4, 0x02, 0xb6, 0x78, 0x3f, 0x44, 0x89, 0xa0, 0x91,
+
  0x1a, 0x58, 0x7a, 0x8e, 0x5c, 0x10, 0x9a, 0xe8, 0x04, 0x06, 0x15, 0xee,
+
  0xaf, 0x97, 0x60, 0x30, 0xa6, 0xf1, 0x85, 0xc5, 0x5a, 0x86, 0xb6, 0x8f,
+
  0xec, 0xb9, 0x7e, 0x75, 0x52, 0x69, 0x0a, 0x72, 0x89, 0x02, 0x49, 0x9a,
+
  0x3f, 0x24, 0x47, 0xf9, 0x77, 0xaa, 0x87, 0x41, 0x04, 0x69, 0x7b, 0x79,
+
  0x9c, 0xca, 0x04, 0x8e, 0x44, 0xcd, 0x28, 0xa4, 0x1b, 0xe8, 0x31, 0x9a,
+
  0xc3, 0x52, 0xdf, 0x0c, 0x27, 0x88, 0x65, 0xa8, 0xd5, 0x6c, 0x43, 0x51,
+
  0x9c, 0x3a, 0x4a, 0x39, 0xd1, 0xd2, 0x41, 0x67, 0xc6, 0xa5, 0x84, 0x75,
+
  0x62, 0xb8, 0x7a, 0xff, 0x89, 0xf9, 0x79, 0x58, 0x45, 0x38, 0x99, 0x17,
+
  0x39, 0x67, 0x34, 0x11, 0x45, 0x35, 0x99, 0xc2, 0xae, 0xbd, 0x6f, 0x7e,
+
  0xf7, 0x4d, 0xb1, 0x74, 0x35, 0x98, 0xd6, 0xcb, 0x1a, 0x1f, 0x3d, 0x66,
+
  0x1a, 0x97, 0xb2, 0x53, 0x31, 0xaa, 0x7a, 0xec, 0x5a, 0xcc, 0xd1, 0xad,
+
  0x3b, 0x04, 0x71, 0x95, 0xde, 0x13, 0x90, 0xd7, 0x2a, 0x99, 0x97, 0x9c,
+
  0x40, 0x3b, 0x75, 0x12, 0x7b, 0x0d, 0x23, 0x20, 0xa4, 0x53, 0x93, 0x6f,
+
  0x78, 0x1b, 0x80, 0x48, 0x2f, 0x4b, 0x58, 0xfa, 0x47, 0xc3, 0x86, 0x00,
+
  0x8f, 0xb5, 0xeb, 0x66, 0x1b, 0x63, 0x24, 0x78, 0x1b, 0xd0, 0xc5, 0xac,
+
  0xac, 0x78, 0x77, 0x22, 0x49, 0x6c, 0x19, 0x3b, 0x08, 0x10, 0x91, 0x4f,
+
  0xe7, 0x93, 0xc4, 0x77, 0x7e, 0x2f, 0x2b, 0x40, 0x69, 0x59, 0x2f, 0x13,
+
  0x7b, 0x2b, 0x1c, 0x89, 0x87, 0x67, 0xa3, 0xd1, 0x5d, 0xbd, 0xfd, 0xf1,
+
  0x5e, 0xf7, 0x7f, 0xf2, 0x12, 0x5f, 0xa0, 0x36, 0xf4, 0x19, 0x2f, 0xb5,
+
  0x7e, 0xc7, 0x99, 0x3d, 0x58, 0x5b, 0x09, 0xc3, 0x69, 0xdd, 0x0f, 0xd3,
+
  0xeb, 0x59, 0x13, 0x2f, 0xbb, 0x41, 0x6f, 0x72, 0x7a, 0xce, 0xa3, 0xee,
+
  0xff, 0x8a, 0xba, 0x7f, 0xad, 0x46, 0x98, 0x04, 0xaa, 0x59, 0x90, 0x99,
+
  0x35, 0x11, 0x58, 0xfc, 0x4e, 0xd1, 0x60, 0x09, 0xbd, 0xa5, 0x8b, 0xd0,
+
  0x96, 0x42, 0xee, 0x3d, 0x49, 0xe6, 0x0c, 0x3b, 0x2c, 0x82, 0xb8, 0x69,
+
  0x46, 0xd5, 0x90, 0xe5, 0x26, 0x4f, 0x93, 0x84, 0x89, 0x52, 0xf9, 0x21,
+
  0x4f, 0x87, 0x28, 0xfa, 0xa4, 0xe8, 0xd6, 0xff, 0x46, 0x44, 0xef, 0xef,
+
  0x37, 0x5a, 0xdd, 0x62, 0x4e, 0xfc, 0x25, 0x71, 0x9c, 0x15, 0x5d, 0xc9,
+
  0x1c, 0xe2, 0xca, 0xe5, 0xd5, 0x06, 0x06, 0xe1, 0x71, 0x02, 0xfe, 0x40,
+
  0x95, 0x0a, 0x17, 0x4f, 0x60, 0x89, 0xeb, 0x6b, 0x85, 0xb2, 0xae, 0x7a,
+
  0x4e, 0xfc, 0x90, 0xcf, 0xfa, 0x36, 0xbc, 0x88, 0xf9, 0xa8, 0xbc, 0x0e,
+
  0x58, 0xd0, 0xb4, 0x80, 0x79, 0x7b, 0x77, 0x9a, 0x71, 0x5e, 0xcd, 0xa2,
+
  0xf1, 0x3e, 0x3c, 0xd8, 0xde, 0xd8, 0x7a, 0xb3, 0x3d, 0x1f, 0x51, 0x3b,
+
  0x11, 0xb9, 0xbc, 0x75, 0xee, 0xdc, 0x54, 0x77, 0x6e, 0x1c, 0xa4, 0xaf,
+
  0xf0, 0xef, 0x0b, 0x0b, 0xff, 0x6d, 0xc8, 0x61, 0x76, 0xfd, 0xc5, 0x30,
+
  0x6c, 0xf1, 0x2f, 0x26, 0x51, 0xf2, 0x72, 0x15, 0xf0, 0xaa, 0x54, 0x34,
+
  0xdd, 0x14, 0xf2, 0x3e, 0x8f, 0xce, 0xee, 0x16, 0x7b, 0x5e, 0xfb, 0x0d,
+
  0x1c, 0x79, 0x32, 0x3e, 0xd1, 0x11, 0xf2, 0x6f, 0xc5, 0xbf, 0x28, 0x07,
+
  0x79, 0x6e, 0x2b, 0x9c, 0xa0, 0x57, 0x00, 0x3e, 0xd2, 0x41, 0x4d, 0x92,
+
  0xc2, 0xb5, 0x6a, 0xf7, 0x09, 0x3c, 0xea, 0xf2, 0x6a, 0x52, 0x6b, 0xfd,
+
  0xac, 0x24, 0x96, 0xd9, 0x39, 0x94, 0xcf, 0x80, 0x38, 0x01, 0xfa, 0x40,
+
  0x6d, 0xc9, 0x1a, 0x83, 0xb0, 0x23, 0x92, 0xc6, 0x14, 0xb3, 0x5b, 0x83,
+
  0x60, 0x42, 0x2f, 0x31, 0xc5, 0x3f, 0x75, 0x43, 0xd2, 0x49, 0xca, 0x4c,
+
  0xe0, 0x4b, 0x4b, 0x4e, 0x77, 0x63, 0x01, 0x6f, 0xad, 0x81, 0xc0, 0xf4,
+
  0x17, 0xd9, 0x20, 0x63, 0xcc, 0x7a, 0x9e, 0xe8, 0x21, 0x77, 0x80, 0x2f,
+
  0x65, 0x38, 0x02, 0x6d, 0x29, 0x62, 0x92, 0x5c, 0xce, 0x4a, 0x81, 0x26,
+
  0xee, 0xf4, 0x05, 0x66, 0xba, 0x6e, 0x5b, 0xde, 0x37, 0xd7, 0x32, 0x91,
+
  0x82, 0xcd, 0xf9, 0x6f, 0xac, 0x5f, 0x7d, 0xcf, 0x00, 0xa9, 0x20, 0x3a,
+
  0x42, 0x90, 0x09, 0x06, 0x02, 0xb2, 0xe0, 0x50, 0x78, 0x86, 0x9c, 0x58,
+
  0x0d, 0x69, 0xd3, 0x0c, 0xd3, 0xd1, 0xf4, 0xe6, 0x22, 0xf5, 0xa1, 0xa6,
+
  0x0d, 0xc9, 0xd4, 0x6f, 0x80, 0x8e, 0x21, 0x86, 0x24, 0x66, 0x9e, 0x87,
+
  0x73, 0x4a, 0x69, 0x53, 0xc8, 0xa5, 0x76, 0x45, 0x9e, 0xea, 0xac, 0xcc,
+
  0x23, 0x7a, 0xc3, 0x59, 0xd7, 0x4f, 0x2a, 0xb6, 0x60, 0x0f, 0x3e, 0xf4,
+
  0x65, 0x31, 0x65, 0x03, 0x2f, 0x47, 0x97, 0x49, 0x32, 0xf7, 0xc9, 0xa0,
+
  0x2a, 0x09, 0xdb, 0x42, 0x8c, 0xee, 0xe8, 0xfd, 0x4d, 0x92, 0x84, 0xb5,
+
  0x9e, 0x29, 0x0b, 0xbd, 0x98, 0xe8, 0x67, 0x00, 0x3f, 0x29, 0xe6, 0x28,
+
  0x35, 0x09, 0x75, 0xa9, 0x93, 0x90, 0x87, 0x95, 0x93, 0xaa, 0x19, 0xa2,
+
  0xd8, 0x9d, 0xb0, 0x83, 0x5b, 0x55, 0x3b, 0xd1, 0xb6, 0x45, 0x64, 0xfe,
+
  0x53, 0x35, 0x3e, 0xae, 0xc6, 0xa3, 0xba, 0x78, 0xf7, 0xb8, 0xf0, 0x4c,
+
  0x78, 0xc3, 0x9b, 0x54, 0x2d, 0xc1, 0xf2, 0xaf, 0xa9, 0x46, 0xca, 0x60,
+
  0xd3, 0x30, 0x05, 0x31, 0x4a, 0x39, 0x46, 0x65, 0xa2, 0x26, 0x98, 0xa6,
+
  0x1f, 0xe9, 0x3d, 0x7c, 0xc1, 0x7c, 0x6b, 0x87, 0xb9, 0xcf, 0x32, 0xc7,
+
  0x19, 0x8d, 0x4e, 0x49, 0x8c, 0xd0, 0xef, 0x81, 0xd2, 0x8e, 0xe9, 0x32,
+
  0x2f, 0x93, 0x71, 0x1e, 0xf6, 0x69, 0xbf, 0xa5, 0x47, 0x39, 0x81, 0x0d,
+
  0x6b, 0xfb, 0xc6, 0x0c, 0xb5, 0xf2, 0x12, 0xd2, 0xfb, 0x07, 0xcd, 0x04,
+
  0x8b, 0x98, 0x51, 0x0f, 0x3b, 0x16, 0x90, 0xb7, 0xe7, 0x2d, 0xca, 0xee,
+
  0xe1, 0xeb, 0x37, 0xed, 0xe6, 0x29, 0xb0, 0x5b, 0x3c, 0x31, 0xdd, 0xea,
+
  0xd1, 0xa6, 0x62, 0xe6, 0x73, 0x89, 0x93, 0xb5, 0x18, 0x44, 0x09, 0x56,
+
  0xe0, 0xba, 0xb4, 0xbd, 0xc4, 0x90, 0x5a, 0x87, 0xdd, 0xbe, 0xe6, 0x26,
+
  0x78, 0x17, 0x04, 0x40, 0x3e, 0x35, 0xb7, 0x91, 0xb6, 0xd3, 0xa0, 0x86,
+
  0x84, 0x43, 0xae, 0x85, 0x13, 0xc8, 0x3f, 0x67, 0x8b, 0x63, 0xc6, 0x8e,
+
  0x64, 0x03, 0x70, 0xb2, 0xab, 0x3e, 0xc9, 0x7a, 0x2b, 0xc8, 0xde, 0x9d,
+
  0xd7, 0x28, 0xf3, 0x54, 0xbc, 0x1e, 0x9d, 0x87, 0xa5, 0xd8, 0xe5, 0xac,
+
  0x42, 0x73, 0x6f, 0xf7, 0x77, 0xf5, 0xf2, 0x7b, 0xcb, 0xd4, 0xb0, 0xfd,
+
  0x20, 0x40, 0x9d, 0xf4, 0xaf, 0x20, 0xcb, 0xe1, 0x99, 0xe5, 0x42, 0xcd,
+
  0x1e, 0x38, 0x72, 0xbc, 0xf7, 0xb4, 0xff, 0x30, 0x97, 0xed, 0x9f, 0x36,
+
  0xde, 0xec, 0xbf, 0xde, 0xfe, 0x9b, 0xe4, 0x94, 0xc5, 0xc2, 0x1c, 0xe1,
+
  0xe3, 0x1f, 0x53, 0xbd, 0x1b, 0xd1, 0x80, 0xf0, 0xf0, 0x41, 0xef, 0x6b,
+
  0xb0, 0x47, 0x31, 0x48, 0x1b, 0xf5, 0xf4, 0x7a, 0xfb, 0x3b, 0x1d, 0xab,
+
  0x0a, 0x4d, 0x1e, 0x71, 0x1c, 0xf4, 0x83, 0x20, 0x11, 0x90, 0xf1, 0x55,
+
  0x63, 0x8c, 0x24, 0x12, 0x83, 0x34, 0xf4, 0xee, 0x71, 0xbb, 0xd8, 0xb5,
+
  0xe4, 0xd0, 0xb6, 0xec, 0x1e, 0x15, 0x9d, 0xad, 0xfe, 0x39, 0x15, 0xf7,
+
  0x66, 0x65, 0x67, 0x37, 0x89, 0x70, 0x4b, 0x27, 0xd5, 0x20, 0xc5, 0xa2,
+
  0x60, 0x7c, 0xcb, 0x40, 0xdc, 0x24, 0xe9, 0xf6, 0xa7, 0x9c, 0x57, 0x4e,
+
  0xa7, 0xa0, 0x21, 0x24, 0x78, 0x67, 0xae, 0x6d, 0xea, 0x76, 0x68, 0xd9,
+
  0x4d, 0xd9, 0x5f, 0xe5, 0xae, 0x3c, 0x62, 0x49, 0x3c, 0xea, 0x0b, 0x18,
+
  0x71, 0xa7, 0xc5, 0x8b, 0x96, 0xf9, 0x53, 0xb8, 0x92, 0x5f, 0x29, 0x07,
+
  0x8a, 0xab, 0x3d, 0x7e, 0xa1, 0x61, 0x24, 0xf7, 0x54, 0x3c, 0xe2, 0x35,
+
  0x97, 0x6b, 0x1e, 0x1b, 0x76, 0x09, 0x77, 0xca, 0x73, 0xcc, 0x3e, 0xcb,
+
  0x81, 0x12, 0x87, 0x53, 0x2f, 0x21, 0x4b, 0xd0, 0x56, 0x67, 0x83, 0x4f,
+
  0xaa, 0x8c, 0xee, 0xa1, 0x44, 0xe6, 0xd6, 0x10, 0xa8, 0x5e, 0x0b, 0xf1,
+
  0x35, 0xda, 0x56, 0xf1, 0xed, 0x78, 0x50, 0xc2, 0x97, 0x60, 0x2c, 0x45,
+
  0xdb, 0x68, 0xa3, 0x08, 0x9c, 0x54, 0x81, 0x4a, 0xbe, 0xb5, 0x02, 0x4b,
+
  0x89, 0x86, 0xfa, 0xcf, 0x29, 0xfc, 0x0a, 0x10, 0xd9, 0x0d, 0xf8, 0x4b,
+
  0x61, 0x51, 0x53, 0xd1, 0x2d, 0x56, 0x1d, 0x44, 0x63, 0x1d, 0x43, 0x4e,
+
  0xcd, 0x58, 0x95, 0x65, 0x82, 0xda, 0x6f, 0x39, 0x42, 0x96, 0x12, 0x35,
+
  0x6e, 0x33, 0xa2, 0xe1, 0x85, 0x7b, 0xfd, 0x26, 0x2a, 0x32, 0x93, 0x51,
+
  0xbe, 0x64, 0x4b, 0xad, 0xd6, 0xb2, 0x40, 0x3b, 0x49, 0x85, 0xaf, 0x3a,
+
  0xb1, 0xc5, 0xe8, 0xe8, 0x14, 0xf3, 0x23, 0x70, 0x19, 0xd2, 0x9c, 0xa8,
+
  0x3b, 0x54, 0x41, 0xba, 0xde, 0xdb, 0x15, 0x2b, 0x82, 0x04, 0x52, 0xe3,
+
  0x1a, 0xd9, 0xbb, 0x6d, 0x47, 0x8f, 0x90, 0xc2, 0xb1, 0x15, 0x51, 0x15,
+
  0xa5, 0x34, 0x9e, 0x90, 0x64, 0x7d, 0x05, 0x57, 0xe2, 0x52, 0xab, 0x68,
+
  0x2d, 0x7b, 0xc6, 0x70, 0xc4, 0x8f, 0x6b, 0x1b, 0xd9, 0xf0, 0x3c, 0xab,
+
  0x61, 0xf3, 0xa1, 0x82, 0x1d, 0xb4, 0x1d, 0xd6, 0x95, 0xcc, 0x2f, 0xd9,
+
  0xdd, 0x17, 0xf1, 0x2c, 0x3d, 0x24, 0xce, 0xc2, 0x6a, 0x42, 0xd9, 0x3a,
+
  0xef, 0xb9, 0xc1, 0x86, 0x5f, 0xc4, 0x53, 0xb8, 0x51, 0xb4, 0x84, 0xc6,
+
  0x56, 0x56, 0x9e, 0xb6, 0xee, 0x47, 0xe1, 0xba, 0xd2, 0x09, 0x92, 0xaa,
+
  0x7e, 0xe5, 0x2a, 0xb6, 0xe1, 0x18, 0x16, 0x2f, 0xff, 0xfa, 0xe0, 0xef,
+
  0x54, 0x4c, 0x70, 0xbf, 0x3e, 0xfc, 0x63, 0x1a, 0xf9, 0xc7, 0xe8, 0x7d,
+
  0x47, 0x3c, 0x54, 0x02, 0x6c, 0xf1, 0x61, 0xb5, 0xef, 0xb4, 0x48, 0x47,
+
  0x2d, 0x57, 0xa2, 0x5a, 0xc5, 0x92, 0x8a, 0x45, 0xb4, 0x5b, 0xb4, 0x62,
+
  0x95, 0xa5, 0x63, 0xf7, 0x76, 0x9c, 0xc9, 0xfc, 0x53, 0xab, 0xbb, 0x82,
+
  0x64, 0xb5, 0x3a, 0xad, 0xe5, 0x65, 0x55, 0xc3, 0x23, 0xf0, 0x38, 0xcd,
+
  0x6c, 0x8e, 0x1d, 0xa4, 0x61, 0x66, 0x31, 0xa4, 0x42, 0xbd, 0x76, 0x74,
+
  0x04, 0x6a, 0x02, 0x03, 0x35, 0x7c, 0x78, 0xef, 0x44, 0xf8, 0x09, 0xb4,
+
  0x36, 0x31, 0x8c, 0x3b, 0x55, 0x40, 0x4a, 0xe0, 0xb2, 0x15, 0x1b, 0x9d,
+
  0xff, 0x13, 0xfe, 0x5d, 0xe9, 0x3c, 0x17, 0x1b, 0x12, 0x53, 0x76, 0xeb,
+
  0x93, 0xd1, 0x58, 0xe0, 0x8d, 0xb2, 0x9c, 0x61, 0x33, 0x68, 0x89, 0xe5,
+
  0x0a, 0xdc, 0x76, 0xbe, 0x01, 0x5b, 0x6a, 0x42, 0xfa, 0xe0, 0x62, 0x60,
+
  0x8e, 0x88, 0x65, 0xb1, 0xae, 0xb0, 0xaf, 0xaa, 0x88, 0xc0, 0x52, 0x65,
+
  0x02, 0xa8, 0xb2, 0x8a, 0xda, 0x4e, 0x3d, 0x7d, 0x10, 0x3b, 0xae, 0x13,
+
  0x08, 0x3f, 0xf1, 0x58, 0x5f, 0xa7, 0xc2, 0xb4, 0xdb, 0xdb, 0xe8, 0x11,
+
  0x8b, 0xad, 0xdb, 0x05, 0xef, 0x35, 0xe3, 0x4f, 0xd5, 0x9c, 0x23, 0x09,
+
  0x0a, 0xb3, 0x5a, 0xba, 0x27, 0x94, 0x68, 0x22, 0x74, 0xac, 0xed, 0xe7,
+
  0x5b, 0xa2, 0x05, 0x96, 0xdd, 0x0f, 0xd5, 0xea, 0x74, 0xaa, 0x8f, 0x57,
+
  0xa1, 0x95, 0x4e, 0x2b, 0x03, 0x16, 0xaa, 0xfc, 0x0d, 0x41, 0x8e, 0xae,
+
  0x8b, 0xd6, 0x2f, 0xbf, 0xe0, 0xab, 0x7f, 0xfd, 0xab, 0x15, 0xe1, 0x33,
+
  0xb3, 0xa1, 0x42, 0x88, 0x1f, 0x53, 0xf0, 0x9d, 0x45, 0xdc, 0x84, 0x61,
+
  0xc1, 0x4c, 0x39, 0x72, 0x7d, 0xf1, 0xac, 0x2b, 0x53, 0xdd, 0xbb, 0x12,
+
  0x2d, 0x52, 0x25, 0x03, 0xcb, 0x11, 0x74, 0xc7, 0xe9, 0x6c, 0x7b, 0x85,
+
  0x22, 0x4c, 0x6b, 0x69, 0x5e, 0xb3, 0xe9, 0xe8, 0x19, 0x4e, 0x8c, 0xa2,
+
  0x72, 0x52, 0x0d, 0xce, 0xca, 0x5f, 0x87, 0x60, 0x5a, 0x8a, 0x15, 0xd7,
+
  0xb2, 0x24, 0xca, 0x01, 0xbc, 0x7d, 0x37, 0x33, 0x19, 0xaa, 0xc9, 0x2c,
+
  0x1f, 0xc8, 0x9a, 0x5c, 0x1a, 0x4c, 0x55, 0x95, 0xee, 0xd5, 0x00, 0x12,
+
  0x02, 0x4f, 0x53, 0x8b, 0x21, 0xa5, 0xd5, 0xc7, 0xbe, 0xd9, 0x88, 0x6c,
+
  0x61, 0x8b, 0xa0, 0xad, 0x09, 0xd2, 0x9e, 0x2b, 0xdd, 0xc9, 0x65, 0x1d,
+
  0xe7, 0x66, 0x2a, 0x84, 0x0e, 0x49, 0x86, 0x83, 0xbb, 0xe7, 0xb6, 0x59,
+
  0x1a, 0x43, 0x3a, 0x33, 0x63, 0xd9, 0xbc, 0x15, 0xf3, 0x72, 0xe7, 0x95,
+
  0x09, 0xa7, 0x53, 0x66, 0x00, 0xc5, 0x27, 0x1e, 0xa4, 0xec, 0xc1, 0x10,
+
  0xb1, 0x1b, 0x3f, 0xff, 0x31, 0xc6, 0x79, 0xee, 0x7a, 0x16, 0xaa, 0x90,
+
  0xda, 0x50, 0x4a, 0x08, 0xba, 0x92, 0xd5, 0x29, 0xb8, 0x10, 0x3a, 0x95,
+
  0x01, 0x3e, 0xcf, 0xa7, 0x8d, 0x58, 0x90, 0xbc, 0x69, 0x95, 0xcf, 0x84,
+
  0x61, 0x21, 0x54, 0x1c, 0x45, 0x7f, 0xd5, 0x14, 0xb7, 0xe8, 0x6e, 0x2c,
+
  0xcd, 0x6d, 0x56, 0x9c, 0x4d, 0x87, 0x27, 0x8a, 0x5c, 0x14, 0xe3, 0x6e,
+
  0x41, 0xa8, 0x0a, 0x50, 0x94, 0xee, 0x9e, 0x9d, 0x40, 0x86, 0xd6, 0xd1,
+
  0x30, 0x3b, 0xec, 0xeb, 0x05, 0x09, 0x77, 0x3f, 0x1d, 0xaf, 0xf0, 0x9e,
+
  0xc3, 0x4c, 0xa9, 0xc2, 0xb0, 0xb6, 0x2e, 0xbc, 0x30, 0x2e, 0x12, 0x07,
+
  0x59, 0x2b, 0x00, 0x31, 0x62, 0x0a, 0xc5, 0x73, 0x22, 0xd2, 0x96, 0x9e,
+
  0xad, 0xa1, 0x84, 0x48, 0x46, 0x3b, 0x5d, 0xd0, 0x3a, 0x51, 0xe8, 0x29,
+
  0x19, 0x72, 0x62, 0x87, 0x4b, 0x22, 0x2b, 0x19, 0x58, 0x69, 0xd0, 0x80,
+
  0x45, 0x85, 0x5d, 0x2f, 0x1d, 0x80, 0x41, 0x58, 0x43, 0x75, 0x36, 0xe9,
+
  0x4c, 0x46, 0x1d, 0xb1, 0xfc, 0x51, 0xb5, 0xe9, 0x16, 0xef, 0x1a, 0xf3,
+
  0x2c, 0x2e, 0x02, 0x77, 0xc2, 0xc0, 0x86, 0xf0, 0x3c, 0x28, 0x20, 0x6b,
+
  0x5c, 0x23, 0x68, 0x90, 0xd8, 0x34, 0xb5, 0x4c, 0x0a, 0x3b, 0x91, 0xc5,
+
  0x07, 0x76, 0x97, 0x1a, 0x80, 0x8c, 0x9c, 0x6d, 0x8b, 0x36, 0x62, 0xe4,
+
  0xa6, 0xcd, 0xc2, 0xec, 0xa7, 0x41, 0x06, 0xc2, 0x3d, 0xb7, 0x60, 0x42,
+
  0x05, 0x88, 0x61, 0xa0, 0xae, 0x75, 0x2e, 0x89, 0x05, 0x7f, 0x5c, 0x5f,
+
  0x00, 0xe6, 0x44, 0x59, 0x83, 0xbc, 0xfb, 0x8f, 0x7a, 0x34, 0xc4, 0xbb,
+
  0x06, 0x5c, 0x38, 0x89, 0x0c, 0x53, 0xb5, 0xa3, 0xff, 0xec, 0xed, 0xed,
+
  0x9a, 0x9c, 0x05, 0xa9, 0x0a, 0xff, 0x8f, 0xa7, 0x83, 0xca, 0x65, 0x20,
+
  0x44, 0x59, 0x84, 0x16, 0x62, 0xec, 0xb6, 0xbd, 0x0f, 0xeb, 0xd7, 0x52,
+
  0x10, 0xe2, 0x4f, 0xc2, 0x87, 0xe5, 0xa2, 0x61, 0x88, 0x3d, 0x7e, 0xf2,
+
  0x08, 0x6f, 0xc9, 0xbc, 0x1b, 0xa7, 0x1d, 0x6a, 0xe8, 0x93, 0x47, 0xf6,
+
  0xc6, 0x7c, 0x76, 0xf8, 0x05, 0x80, 0x84, 0x3b, 0xd9, 0x45, 0xf3, 0xfb,
+
  0xfa, 0x52, 0xec, 0x5b, 0xca, 0xb0, 0xf1, 0x48, 0x4b, 0x24, 0x0a, 0x01,
+
  0x6f, 0xcf, 0x0d, 0x59, 0xce, 0xae, 0x3f, 0x1d, 0x34, 0x99, 0xcb, 0xd1,
+
  0x1f, 0xda, 0x31, 0x92, 0x4b, 0x5e, 0x7d, 0x43, 0x43, 0x0d, 0xc7, 0x64,
+
  0xd1, 0x73, 0x52, 0x8d, 0xbb, 0x11, 0xe2, 0xc3, 0x9c, 0x42, 0x04, 0x7a,
+
  0x8b, 0xb3, 0xe9, 0x78, 0x7a, 0x7e, 0x6e, 0x79, 0x05, 0xc6, 0x56, 0x2b,
+
  0xd9, 0xe6, 0x72, 0xf2, 0x0d, 0x42, 0x03, 0x98, 0x67, 0x00, 0xbe, 0xc1,
+
  0xeb, 0x5b, 0x5a, 0xbb, 0x18, 0x8d, 0x4e, 0x19, 0x56, 0x2c, 0x95, 0xa6,
+
  0x68, 0x6b, 0x8f, 0x22, 0xb4, 0x8a, 0x37, 0x92, 0xe5, 0xae, 0x92, 0x92,
+
  0x02, 0xdd, 0xd1, 0xc6, 0x71, 0xc3, 0x61, 0x06, 0xb6, 0xf0, 0x52, 0x9f,
+
  0xc9, 0x1e, 0x92, 0x14, 0xad, 0xd4, 0x0f, 0x17, 0x63, 0x87, 0x70, 0xa2,
+
  0x2e, 0xfa, 0x61, 0x91, 0x86, 0x12, 0x1b, 0x12, 0x34, 0xcc, 0x81, 0x30,
+
  0x24, 0xcd, 0x00, 0x2b, 0x75, 0x48, 0x8d, 0x11, 0xfd, 0x47, 0x3a, 0x22,
+
  0x0b, 0x22, 0x0e, 0xaf, 0x22, 0x39, 0x22, 0x0a, 0x95, 0x3a, 0xb0, 0x86,
+
  0x58, 0x2e, 0x51, 0x39, 0x4c, 0xb9, 0x14, 0x65, 0xc3, 0xbc, 0xfc, 0xae,
+
  0x55, 0x08, 0xd9, 0xcf, 0xc0, 0xec, 0x17, 0x89, 0x17, 0x23, 0x29, 0xa9,
+
  0xe0, 0x59, 0x05, 0xe4, 0x63, 0x00, 0xcc, 0x21, 0xf5, 0x34, 0x74, 0x02,
+
  0xa9, 0xa7, 0xe9, 0x20, 0x3c, 0x88, 0xb8, 0x18, 0xe2, 0x01, 0xaf, 0x8f,
+
  0x68, 0x52, 0xc3, 0x0c, 0xe9, 0x8a, 0x4a, 0x13, 0x01, 0x5e, 0x4d, 0x8f,
+
  0x08, 0x0d, 0x8e, 0x51, 0xe3, 0xd8, 0x6a, 0xf6, 0xb1, 0x7a, 0x73, 0xf4,
+
  0x06, 0x6a, 0xf0, 0xa5, 0x95, 0x69, 0xf8, 0x61, 0x74, 0x8d, 0x86, 0xdb,
+
  0xd1, 0x7c, 0x25, 0xa6, 0xa9, 0x76, 0x62, 0x7c, 0x88, 0x91, 0xbc, 0x8c,
+
  0x9c, 0x1e, 0x8e, 0x62, 0x66, 0xcd, 0x58, 0xeb, 0x55, 0xb3, 0x3c, 0x83,
+
  0x2d, 0xb8, 0x35, 0x74, 0x13, 0xb1, 0x19, 0x5b, 0x9d, 0x0f, 0x1f, 0x5a,
+
  0x22, 0x9d, 0xa9, 0x86, 0x25, 0x7b, 0xc4, 0xdd, 0xc6, 0x8f, 0x81, 0xd4,
+
  0x5b, 0xc2, 0x48, 0x83, 0xb8, 0x11, 0x78, 0xa9, 0x30, 0x7c, 0xaf, 0x30,
+
  0x6f, 0x23, 0xf9, 0x60, 0x28, 0x04, 0x74, 0xe2, 0xc2, 0x65, 0x83, 0x0d,
+
  0x03, 0x11, 0xc9, 0x90, 0x80, 0x57, 0xe7, 0x25, 0xd4, 0x12, 0x18, 0x1c,
+
  0xa3, 0x0b, 0xae, 0x6d, 0x8c, 0x32, 0x49, 0x0f, 0x7f, 0x84, 0xc8, 0xd5,
+
  0xf0, 0x67, 0x06, 0xb5, 0xc4, 0xf0, 0x2a, 0x9e, 0x1e, 0xa8, 0x63, 0x93,
+
  0xeb, 0x3e, 0xcb, 0x52, 0x54, 0xdd, 0xf3, 0x6e, 0x21, 0x33, 0x6b, 0x17,
+
  0x0e, 0xe6, 0xaa, 0xf0, 0xc1, 0x4b, 0x69, 0x44, 0xe7, 0x72, 0x1a, 0xa4,
+
  0x63, 0xbe, 0x02, 0x0c, 0x3f, 0x3e, 0x16, 0x3e, 0x2d, 0x73, 0x13, 0x8a,
+
  0xeb, 0x0a, 0x21, 0xf2, 0x50, 0x9c, 0x34, 0x68, 0x1e, 0x0f, 0xb0, 0x73,
+
  0x9a, 0xc5, 0x4a, 0x33, 0x48, 0x98, 0x8b, 0xb9, 0x8e, 0x8d, 0xe8, 0xc0,
+
  0xed, 0x17, 0x57, 0xdc, 0x36, 0x4e, 0xd5, 0xbb, 0x1d, 0x28, 0x6a, 0x7c,
+
  0xda, 0xcc, 0x58, 0xa9, 0xe3, 0x98, 0x8c, 0x19, 0x2f, 0xe5, 0x21, 0xa8,
+
  0xc5, 0x83, 0xe5, 0x28, 0x8f, 0x26, 0xc1, 0xfc, 0x3e, 0x32, 0xf1, 0x36,
+
  0x0b, 0xa5, 0x67, 0x49, 0x06, 0x45, 0xd1, 0x1c, 0x9d, 0xe5, 0x67, 0x96,
+
  0xa7, 0x6d, 0x4a, 0xe8, 0xed, 0xba, 0x4e, 0x06, 0xca, 0x49, 0x32, 0x7d,
+
  0x4b, 0x96, 0x11, 0x34, 0x55, 0x67, 0x3d, 0xb1, 0x23, 0xc9, 0x22, 0xf0,
+
  0x84, 0x9a, 0x2c, 0x89, 0x60, 0x61, 0x4e, 0xa7, 0xf6, 0x68, 0xec, 0x68,
+
  0x78, 0x13, 0x93, 0x0c, 0xd4, 0x3b, 0xe8, 0x44, 0x2e, 0x54, 0x53, 0x9e,
+
  0x4d, 0x4c, 0x29, 0xca, 0x0a, 0x99, 0x34, 0xd9, 0x06, 0xe3, 0x18, 0xf3,
+
  0xb3, 0x1a, 0x91, 0x6d, 0xa8, 0xeb, 0xdb, 0x73, 0x1e, 0xdc, 0xa7, 0xbe,
+
  0xff, 0xb6, 0x05, 0xe7, 0x37, 0x2a, 0xda, 0x7b, 0x48, 0x7b, 0x23, 0x12,
+
  0x38, 0x62, 0x2f, 0xef, 0x89, 0x25, 0x5a, 0x43, 0x7a, 0x2c, 0x21, 0x8a,
+
  0xc1, 0x3d, 0x56, 0xf5, 0xb7, 0x19, 0xcc, 0xef, 0x99, 0x14, 0x69, 0x88,
+
  0xe9, 0x49, 0xb6, 0x57, 0x5e, 0x84, 0xf5, 0xba, 0x5f, 0x5f, 0x88, 0x01,
+
  0xa6, 0xfa, 0x9f, 0x7c, 0xa7, 0xaf, 0x5c, 0x23, 0xc9, 0x96, 0xf3, 0x33,
+
  0x0a, 0xb6, 0xdd, 0x15, 0x6e, 0x1e, 0xa3, 0xbe, 0xef, 0x12, 0x65, 0xb4,
+
  0xcf, 0xcf, 0xcf, 0x7b, 0x9a, 0x83, 0xf2, 0xe2, 0x21, 0xe7, 0x8d, 0xdc,
+
  0xca, 0xd9, 0x52, 0x9a, 0xc9, 0xa5, 0xd9, 0xf6, 0xa2, 0x5e, 0xed, 0x46,
+
  0xd8, 0x7a, 0xd6, 0x84, 0x08, 0x41, 0xef, 0x54, 0x08, 0x8a, 0xd8, 0xe1,
+
  0x5b, 0x9a, 0x19, 0x90, 0x66, 0x3d, 0x2a, 0x78, 0xb6, 0x90, 0xa2, 0xea,
+
  0xcd, 0x06, 0x69, 0xe3, 0xb8, 0x99, 0x8c, 0x3c, 0xa8, 0x53, 0x85, 0x5f,
+
  0x61, 0x78, 0x79, 0x03, 0x78, 0x92, 0xbf, 0x16, 0x9d, 0x81, 0x44, 0x6e,
+
  0xaf, 0x1a, 0x5a, 0x44, 0x3b, 0x42, 0x90, 0x45, 0xa6, 0x2e, 0xf6, 0x91,
+
  0x75, 0xe0, 0x14, 0x05, 0x79, 0xe4, 0x46, 0x71, 0x1d, 0x70, 0x12, 0x42,
+
  0xbb, 0xef, 0xa3, 0x4d, 0x03, 0xf1, 0x0c, 0xd5, 0xc9, 0x74, 0x92, 0x16,
+
  0xbe, 0x38, 0x14, 0x90, 0x57, 0x00, 0x73, 0xcb, 0x28, 0x96, 0xb2, 0x90,
+
  0x86, 0xd6, 0x41, 0x05, 0x4c, 0xa2, 0xaa, 0xb3, 0x15, 0xb4, 0x8b, 0x17,
+
  0xad, 0xe5, 0x2c, 0xef, 0x71, 0x2c, 0xbf, 0xb9, 0xbb, 0x28, 0x6b, 0x54,
+
  0x98, 0x7d, 0xd6, 0xa4, 0xb4, 0xb8, 0x6f, 0x37, 0x07, 0x9a, 0x93, 0xd6,
+
  0xc0, 0x50, 0xe3, 0x85, 0x92, 0xe8, 0x1f, 0x36, 0xd7, 0x71, 0xa5, 0x8a,
+
  0xb6, 0x63, 0x02, 0x65, 0x8b, 0x38, 0x42, 0xac, 0xe2, 0xdc, 0xe1, 0x7f,
+
  0x27, 0x01, 0x95, 0x49, 0x5f, 0xce, 0x7b, 0x2c, 0xd8, 0xb2, 0xbe, 0xb5,
+
  0xab, 0x11, 0xeb, 0xa4, 0xa4, 0xea, 0x8c, 0xbe, 0x61, 0x5b, 0x65, 0x5a,
+
  0x4d, 0x39, 0x98, 0x74, 0xea, 0x0f, 0x27, 0x2c, 0x36, 0xa2, 0x90, 0x45,
+
  0x66, 0x67, 0xd8, 0x08, 0x3f, 0xf5, 0x3e, 0x9c, 0xbc, 0x30, 0xe1, 0x33,
+
  0x31, 0x2f, 0xfa, 0x6d, 0x50, 0xdf, 0x0c, 0x4f, 0x2e, 0xb6, 0x76, 0x7b,
+
  0x78, 0x9f, 0xa4, 0xcf, 0x81, 0x88, 0x65, 0xb3, 0xe4, 0x8f, 0x41, 0x51,
+
  0x86, 0x1c, 0x23, 0xf6, 0x92, 0x30, 0x00, 0xd4, 0x4b, 0xae, 0xbb, 0xfa,
+
  0xa6, 0xfe, 0x58, 0x08, 0xdc, 0xfe, 0x82, 0xfd, 0x6c, 0xaa, 0x87, 0x80,
+
  0x4e, 0x08, 0x77, 0x57, 0xb3, 0x8a, 0xc4, 0x76, 0x75, 0x4a, 0x4c, 0xc5,
+
  0xe0, 0xbd, 0x27, 0x17, 0xb8, 0x15, 0xa1, 0x41, 0x5a, 0x0b, 0xe3, 0x88,
+
  0x0c, 0x61, 0x8a, 0x50, 0xd8, 0xa3, 0x41, 0xbf, 0x39, 0xcd, 0x58, 0xf5,
+
  0x4e, 0x7e, 0x77, 0xf8, 0x05, 0xde, 0x6e, 0x68, 0x47, 0xe3, 0x9b, 0xad,
+
  0x99, 0xcd, 0xc0, 0x06, 0x37, 0x83, 0x66, 0x8d, 0x86, 0x38, 0x55, 0x96,
+
  0xf1, 0x4d, 0xf1, 0xf4, 0x1c, 0xf9, 0x89, 0xbc, 0xcc, 0xa3, 0xcd, 0xd5,
+
  0xc6, 0x23, 0xe1, 0x52, 0xb5, 0xc8, 0x7a, 0x0b, 0x4b, 0x2c, 0x4b, 0xbc,
+
  0xfd, 0x6a, 0x73, 0x6b, 0x67, 0x73, 0x59, 0x7b, 0xd8, 0x82, 0xc6, 0x31,
+
  0x67, 0x39, 0xcb, 0xb8, 0xcf, 0xd2, 0x9d, 0xf4, 0xc6, 0xc7, 0x55, 0xb6,
+
  0x13, 0xf1, 0xa2, 0x36, 0x6c, 0xe1, 0x05, 0x6a, 0xb6, 0xe4, 0x0b, 0xef,
+
  0x4d, 0x49, 0x0d, 0x92, 0xdc, 0x25, 0xb2, 0x03, 0x12, 0xbd, 0xa6, 0x9a,
+
  0x9c, 0x68, 0xe4, 0x05, 0x1a, 0xef, 0x9c, 0x42, 0xea, 0x85, 0x32, 0x84,
+
  0x01, 0xe2, 0x8a, 0x74, 0x8e, 0xb8, 0xf9, 0x03, 0x86, 0x15, 0xfe, 0xf3,
+
  0x29, 0x92, 0x22, 0x58, 0x5a, 0xcf, 0x1e, 0x3a, 0xaf, 0xcb, 0x7a, 0x20,
+
  0xa3, 0xaf, 0x74, 0x5d, 0x3a, 0xb0, 0x2b, 0xf6, 0x36, 0x80, 0x20, 0x38,
+
  0xa7, 0x78, 0xbd, 0xf1, 0x0d, 0x0f, 0x57, 0xa2, 0xd0, 0x32, 0x82, 0xa6,
+
  0xab, 0x9d, 0xf4, 0x36, 0x0f, 0x36, 0xde, 0x78, 0xe9, 0x6d, 0x5b, 0x03,
+
  0xac, 0x7b, 0xb2, 0x0e, 0xe1, 0x6b, 0x76, 0x6d, 0xe3, 0xf8, 0xbe, 0xd7,
+
  0xeb, 0x6c, 0xec, 0xef, 0x60, 0x24, 0xfa, 0x27, 0x33, 0xa7, 0x2d, 0x58,
+
  0xda, 0x1e, 0xfb, 0xa1, 0x77, 0x48, 0xd2, 0xc5, 0xff, 0x77, 0xcc, 0x0a,
+
  0x44, 0x40, 0x44, 0x5c, 0xe2, 0x96, 0xac, 0xf9, 0x93, 0x5e, 0xd2, 0xc2,
+
  0x26, 0x9a, 0xbe, 0xb0, 0xee, 0x2f, 0xac, 0xdf, 0xef, 0x85, 0x9e, 0xd8,
+
  0xc9, 0xf3, 0xbd, 0x9f, 0x87, 0x29, 0xc6, 0x87, 0xa5, 0xe2, 0x99, 0xcb,
+
  0x54, 0x5b, 0xbb, 0xf9, 0x7b, 0x6e, 0x4b, 0x0a, 0xbf, 0x14, 0x1d, 0xab,
+
  0x7b, 0xa1, 0x5a, 0x5d, 0xe2, 0xcc, 0x8c, 0x3e, 0x96, 0xfd, 0x0f, 0x4f,
+
  0xd0, 0x84, 0x45, 0xe7, 0x63, 0xb1, 0xf1, 0x5d, 0xb4, 0x2a, 0xdb, 0x93,
+
  0xee, 0x27, 0x0c, 0x4f, 0xa7, 0x8e, 0xee, 0xc6, 0xe6, 0xce, 0x5b, 0xef,
+
  0xd7, 0xa8, 0xe0, 0xa3, 0x05, 0x69, 0xe6, 0x0d, 0xd6, 0xf1, 0x60, 0x70,
+
  0x69, 0xb0, 0xdc, 0x8f, 0x28, 0x13, 0x6d, 0x0d, 0x94, 0x97, 0x0a, 0x40,
+
  0x66, 0x47, 0x5f, 0x58, 0xfb, 0xfe, 0x95, 0xb5, 0x1c, 0x08, 0xe0, 0x67,
+
  0x34, 0xba, 0xe1, 0x27, 0x1a, 0xc0, 0xdd, 0xc9, 0x69, 0x2e, 0x96, 0x3e,
+
  0xf4, 0xc3, 0x19, 0x3a, 0xff, 0xb9, 0x7f, 0xd5, 0xa6, 0x37, 0x06, 0xf6,
+
  0xe7, 0x65, 0x11, 0x8b, 0x23, 0x5c, 0x48, 0x68, 0x41, 0x7a, 0xf2, 0xc3,
+
  0x3f, 0x77, 0x1e, 0x6f, 0x20, 0x73, 0xf4, 0x7a, 0xaf, 0x6f, 0x99, 0x86,
+
  0x8b, 0x24, 0x19, 0x46, 0x8d, 0x09, 0x84, 0x87, 0xaf, 0xdf, 0xe0, 0x3d,
+
  0x3a, 0x54, 0xef, 0xb1, 0x66, 0x78, 0xee, 0xe8, 0xc7, 0x57, 0xfe, 0xca,
+
  0x69, 0x85, 0xd2, 0x39, 0x66, 0xb5, 0x0b, 0xdb, 0x33, 0x3c, 0xee, 0x87,
+
  0x93, 0x7d, 0x51, 0x0d, 0xae, 0x14, 0x53, 0x30, 0x36, 0xa1, 0x3a, 0x9f,
+
  0x32, 0xff, 0xd0, 0x02, 0x8e, 0x8d, 0x18, 0xb0, 0xd4, 0xdd, 0x2a, 0x44,
+
  0x06, 0x7b, 0xca, 0xb3, 0x88, 0x0f, 0xbd, 0x2f, 0x33, 0x0b, 0xff, 0x71,
+
  0x44, 0x17, 0xce, 0xce, 0xf6, 0x05, 0x3a, 0xbe, 0x37, 0x0d, 0x62, 0xe9,
+
  0xc7, 0xe2, 0x35, 0x3d, 0x1d, 0x8c, 0xe5, 0x8f, 0x3a, 0xa9, 0xc8, 0xf3,
+
  0x92, 0x14, 0xb4, 0x90, 0xd3, 0xbb, 0x90, 0x52, 0xac, 0xeb, 0x23, 0x72,
+
  0x47, 0xcb, 0xf0, 0xe8, 0xd9, 0x68, 0x55, 0xbb, 0x65, 0xbe, 0xb7, 0xbf,
+
  0xbb, 0xfd, 0xfd, 0x1e, 0x59, 0x36, 0xff, 0xba, 0xcf, 0x62, 0xe9, 0x9e,
+
  0x00, 0xaf, 0xd4, 0xd1, 0xaa, 0xb8, 0xc5, 0x30, 0x42, 0xf1, 0xaa, 0x49,
+
  0x2e, 0x6b, 0x09, 0xf4, 0xb1, 0x26, 0xda, 0xb1, 0xa4, 0xa2, 0x1e, 0xdc,
+
  0x5e, 0x5b, 0xcb, 0xc5, 0xb3, 0x42, 0xbc, 0x14, 0xc9, 0x1b, 0x15, 0x11,
+
  0x66, 0x1b, 0x6e, 0x75, 0xe9, 0xed, 0x16, 0xf6, 0xa2, 0xe8, 0xa8, 0x7c,
+
  0xe6, 0x60, 0xbf, 0x58, 0xea, 0xb1, 0x18, 0x71, 0x71, 0x20, 0xe9, 0x58,
+
  0xac, 0x4e, 0x06, 0xc7, 0xf7, 0xf2, 0x2c, 0x5f, 0x4c, 0x1a, 0xd3, 0x68,
+
  0xcf, 0x85, 0xa4, 0xe0, 0xc4, 0x21, 0x58, 0xfa, 0x1b, 0x72, 0x72, 0xb4,
+
  0xcd, 0x3b, 0xc0, 0x38, 0xbb, 0xb3, 0xfb, 0x79, 0x03, 0x7a, 0x3b, 0xec,
+
  0xc3, 0xd8, 0x47, 0xf0, 0x6e, 0xf9, 0xd3, 0x99, 0x4a, 0xe8, 0x56, 0xc3,
+
  0x05, 0x92, 0x87, 0x3f, 0xf6, 0x98, 0xd7, 0x57, 0xeb, 0x0b, 0x1f, 0x35,
+
  0x4d, 0xb0, 0xce, 0x79, 0x65, 0x2e, 0x13, 0xfc, 0x5c, 0x4f, 0x4e, 0xf3,
+
  0x93, 0x38, 0xef, 0x20, 0xe2, 0x29, 0x39, 0x7d, 0x09, 0xe2, 0x91, 0x9e,
+
  0x72, 0x1e, 0x3e, 0xdd, 0x83, 0xb9, 0xd3, 0xb8, 0x55, 0x38, 0xa7, 0xa0,
+
  0x3b, 0xc7, 0x17, 0x39, 0xb8, 0x52, 0x21, 0xf9, 0xb2, 0x1c, 0x4e, 0xcb,
+
  0x58, 0xce, 0xf1, 0xc3, 0xa0, 0x1c, 0x06, 0xae, 0xdb, 0x1f, 0x11, 0xaf,
+
  0xff, 0xa5, 0xfd, 0x65, 0xfe, 0xf6, 0x0d, 0x84, 0xfb, 0xc2, 0x09, 0xf9,
+
  0xee, 0xf5, 0xc6, 0x6e, 0xe1, 0xcf, 0x01, 0xe9, 0x8c, 0xa8, 0xf4, 0x34,
+
  0x87, 0xec, 0x6c, 0x6f, 0x6f, 0x17, 0xcf, 0x56, 0xd6, 0xba, 0xab, 0x7f,
+
  0xce, 0x14, 0xa0, 0xa0, 0xd0, 0x0c, 0x4e, 0x0d, 0x70, 0x3e, 0xcc, 0x7b,
+
  0x1b, 0xf2, 0x0b, 0x2a, 0xcf, 0xd1, 0xae, 0xd4, 0x8e, 0xf9, 0x6c, 0x82,
+
  0xdd, 0x8b, 0xb3, 0x21, 0x75, 0x39, 0x98, 0x7c, 0x67, 0xe8, 0xdc, 0x92,
+
  0x15, 0x9a, 0x48, 0x8c, 0x84, 0xdc, 0x2e, 0x02, 0x9f, 0x3c, 0xd7, 0x2c,
+
  0xa9, 0x38, 0x6a, 0x1e, 0xfe, 0x15, 0x72, 0x85, 0xa7, 0xea, 0x1e, 0xce,
+
  0x27, 0xf8, 0xd5, 0x50, 0x60, 0xf3, 0x6e, 0x1e, 0xdd, 0x2f, 0x55, 0xfa,
+
  0x79, 0xc3, 0x80, 0xdb, 0xbf, 0xea, 0x4c, 0x46, 0x8e, 0xf5, 0x7c, 0x0d,
+
  0xdd, 0x85, 0x86, 0x0e, 0x84, 0xd9, 0x17, 0x2f, 0x45, 0x5d, 0xf9, 0x36,
+
  0xda, 0x72, 0xcd, 0x8f, 0x6e, 0x05, 0xf5, 0x32, 0x95, 0x46, 0x72, 0x30,
+
  0x34, 0xa0, 0x53, 0x2d, 0x12, 0x10, 0xa1, 0xdc, 0xf5, 0xdf, 0x30, 0x2a,
+
  0x75, 0x55, 0x1a, 0xc7, 0xfb, 0xe2, 0xf4, 0xb5, 0x68, 0x0a, 0xc2, 0x91,
+
  0x86, 0xe6, 0x4d, 0xf1, 0x96, 0x2a, 0xd4, 0x1a, 0x1a, 0x0a, 0x1f, 0x64,
+
  0xe2, 0x16, 0xa5, 0x31, 0x6f, 0x38, 0xbd, 0x3c, 0x46, 0x08, 0xc3, 0x59,
+
  0x74, 0xf0, 0x74, 0x8b, 0xb4, 0x79, 0x93, 0x6e, 0x13, 0xbd, 0xb7, 0x8c,
+
  0x95, 0x32, 0x06, 0x61, 0xc6, 0xd8, 0x91, 0x96, 0x0c, 0xa0, 0xc5, 0xcc,
+
  0x09, 0x0b, 0x37, 0x20, 0xc6, 0x8c, 0xca, 0xfa, 0x9a, 0x43, 0xab, 0x8d,
+
  0xa6, 0x91, 0x6d, 0xc9, 0x88, 0x5a, 0x7f, 0xb4, 0xc4, 0x43, 0x41, 0x7a,
+
  0xa0, 0x35, 0x03, 0x76, 0x32, 0x4d, 0x25, 0x55, 0xc0, 0x96, 0xd9, 0x96,
+
  0xe8, 0x2a, 0x8f, 0xb1, 0x0e, 0xdc, 0x88, 0xd0, 0x5a, 0xa7, 0x95, 0xd3,
+
  0xa2, 0x39, 0xbf, 0xac, 0xc2, 0x72, 0x6e, 0xf1, 0xb5, 0x26, 0x4b, 0xda,
+
  0x71, 0x8f, 0xeb, 0x49, 0x7f, 0x32, 0x55, 0x04, 0xb7, 0x18, 0x93, 0x21,
+
  0x64, 0xc6, 0x68, 0x10, 0xac, 0x69, 0x92, 0xcc, 0xee, 0xa9, 0xae, 0x67,
+
  0xfd, 0x89, 0x98, 0xf8, 0x14, 0xb8, 0xe7, 0x98, 0xc6, 0xef, 0x20, 0xa6,
+
  0x5e, 0xa3, 0xac, 0x8a, 0xd9, 0xf5, 0xe2, 0x68, 0xd8, 0x5f, 0xba, 0xb8,
+
  0x0f, 0x7e, 0xb1, 0x1f, 0x8f, 0xe8, 0x4f, 0xb0, 0x32, 0x3c, 0x3a, 0xcc,
+
  0xb2, 0x50, 0x53, 0xb9, 0x34, 0xf4, 0x80, 0x53, 0xfe, 0x07, 0xfc, 0xf9,
+
  0x32, 0x6f, 0x16, 0xaa, 0x46, 0x33, 0x0f, 0xba, 0x9e, 0xbd, 0xe8, 0xaf,
+
  0x0e, 0xab, 0x6b, 0xaa, 0x6f, 0x31, 0x24, 0xf9, 0x6f, 0x5e, 0xde, 0x06,
+
  0x46, 0x94, 0xd0, 0xef, 0x39, 0x63, 0x10, 0x51, 0x53, 0x94, 0x9b, 0xf2,
+
  0xb7, 0xb1, 0x9a, 0xe2, 0x83, 0x3a, 0xab, 0xe1, 0x22, 0xf2, 0x7d, 0xa6,
+
  0x1a, 0x6a, 0x07, 0xc4, 0xb1, 0x8f, 0x55, 0x40, 0xad, 0xd6, 0xb9, 0xc0,
+
  0x03, 0x85, 0x66, 0xca, 0xf1, 0x69, 0x34, 0xb0, 0x1f, 0x2b, 0x10, 0x89,
+
  0x07, 0x4c, 0x07, 0xfd, 0x23, 0x30, 0x0a, 0x55, 0xa3, 0x1f, 0xfc, 0x22,
+
  0x80, 0x42, 0x32, 0xfd, 0x07, 0xf2, 0xd2, 0x2f, 0xff, 0xf2, 0xc8, 0x52,
+
  0xcd, 0x66, 0xc9, 0x6a, 0x7b, 0x17, 0x5e, 0xcc, 0x0c, 0x79, 0xfd, 0x23,
+
  0x29, 0xbc, 0x73, 0x42, 0xcf, 0xaa, 0xd7, 0x10, 0xc3, 0xcc, 0xd3, 0x7c,
+
  0xf6, 0x07, 0xf2, 0xae, 0xb8, 0x6e, 0x2c, 0x4a, 0x55, 0x43, 0x17, 0xd5,
+
  0x44, 0x40, 0x17, 0x69, 0xea, 0x23, 0xb5, 0x07, 0xd4, 0xdc, 0x9e, 0x85,
+
  0xeb, 0x2c, 0x65, 0x21, 0x7f, 0xd1, 0xd1, 0x26, 0xfe, 0xc8, 0x65, 0x8b,
+
  0x95, 0xb0, 0x8a, 0xcc, 0x31, 0xf3, 0xc7, 0x3d, 0xb2, 0x81, 0x0f, 0x31,
+
  0xab, 0xb0, 0xb4, 0x9a, 0x40, 0x22, 0xdf, 0x59, 0xae, 0x22, 0x99, 0x6c,
+
  0xdb, 0x14, 0x38, 0x73, 0xea, 0xe9, 0x81, 0xd1, 0xde, 0xac, 0x08, 0x15,
+
  0x62, 0x23, 0xb8, 0x65, 0xf0, 0x07, 0x22, 0x4b, 0x72, 0xa9, 0x4c, 0xa2,
+
  0xe5, 0x1f, 0x75, 0x57, 0x96, 0x63, 0xc8, 0x05, 0x03, 0xde, 0xca, 0xa8,
+
  0xb7, 0x4f, 0x20, 0xbe, 0x4e, 0xd2, 0xfc, 0x9c, 0xc2, 0x73, 0xde, 0x9d,
+
  0xd2, 0x22, 0xce, 0xd2, 0xa8, 0xed, 0xfe, 0x00, 0x0d, 0xa1, 0xb4, 0x3d,
+
  0x93, 0x95, 0xd5, 0x9e, 0x19, 0x07, 0xc0, 0xe3, 0x42, 0xa7, 0xd8, 0x72,
+
  0xb6, 0xe2, 0xfd, 0x34, 0x88, 0x92, 0x76, 0x19, 0x63, 0x08, 0xb6, 0x6c,
+
  0xd6, 0x5d, 0xcc, 0xc7, 0xb0, 0x02, 0x70, 0xc3, 0xc0, 0x82, 0xa6, 0xb1,
+
  0xb6, 0x53, 0x12, 0x74, 0x62, 0x54, 0x68, 0x59, 0x29, 0x0a, 0x90, 0xf5,
+
  0x46, 0x12, 0xe6, 0x71, 0x3a, 0xa0, 0xb8, 0x3b, 0x85, 0x65, 0x4d, 0x65,
+
  0xf4, 0x99, 0xa6, 0x3a, 0x47, 0xc7, 0x4c, 0x11, 0xf9, 0xbe, 0x79, 0x67,
+
  0xba, 0x45, 0xac, 0x33, 0x64, 0x79, 0xda, 0x52, 0xf9, 0xc7, 0x53, 0x54,
+
  0x4f, 0xa4, 0x8a, 0x9f, 0x79, 0xd3, 0x15, 0x0d, 0x2b, 0x5b, 0xd2, 0x74,
+
  0xe5, 0x2d, 0x92, 0x43, 0x6d, 0x0c, 0xc6, 0xc8, 0x79, 0x8b, 0x59, 0xec,
+
  0x5c, 0x9c, 0x41, 0x3a, 0x05, 0x41, 0x1d, 0xb5, 0xdf, 0xbe, 0xfd, 0x56,
+
  0x76, 0x83, 0x88, 0xa7, 0x4c, 0x4d, 0x4f, 0x82, 0x90, 0x25, 0xe7, 0x36,
+
  0xab, 0x61, 0x97, 0x5b, 0x49, 0x75, 0x60, 0x8e, 0xb0, 0x19, 0x44, 0x30,
+
  0x82, 0x80, 0xb0, 0x52, 0x01, 0x8f, 0x83, 0xc5, 0x43, 0x48, 0xde, 0xaa,
+
  0x7b, 0x1c, 0xa0, 0x01, 0x7b, 0x21, 0x70, 0x0d, 0xee, 0x05, 0x17, 0x0d,
+
  0x2b, 0xd2, 0xc8, 0x85, 0x4c, 0x38, 0xa1, 0xec, 0xc0, 0xc8, 0x93, 0xc0,
+
  0x1b, 0x60, 0xe8, 0x29, 0xa2, 0x27, 0xc3, 0x78, 0x93, 0xf4, 0x2b, 0xc9,
+
  0xa3, 0x6d, 0x37, 0x0a, 0x2b, 0xbe, 0xf7, 0xeb, 0x88, 0xec, 0xad, 0x2c,
+
  0x96, 0x4e, 0xfb, 0x67, 0x0c, 0xf4, 0x81, 0x2f, 0x3a, 0xf5, 0xac, 0xef,
+
  0xee, 0x1d, 0x6e, 0xbf, 0x40, 0xf4, 0xba, 0x67, 0x96, 0x71, 0x81, 0x3b,
+
  0xf5, 0xcd, 0xe5, 0x31, 0x72, 0xf7, 0xe4, 0xd2, 0xc5, 0x78, 0xc2, 0xe5,
+
  0xa7, 0x5f, 0x7a, 0xf9, 0x74, 0x71, 0x16, 0x5b, 0x0e, 0xc8, 0x9c, 0xe8,
+
  0x8b, 0x2e, 0xc0, 0x8f, 0x82, 0xaa, 0x85, 0xcc, 0x50, 0xd5, 0x18, 0xe9,
+
  0xea, 0x18, 0x9d, 0x9c, 0xb0, 0xec, 0x03, 0x10, 0x53, 0xc3, 0x5a, 0x3e,
+
  0x90, 0x30, 0x2d, 0x27, 0x99, 0x20, 0x1e, 0x30, 0x26, 0x56, 0x6c, 0xdc,
+
  0x7a, 0xc8, 0x32, 0x8f, 0x84, 0x02, 0x35, 0xb0, 0xf4, 0x68, 0x11, 0x2e,
+
  0x9f, 0x12, 0x28, 0xf1, 0x0c, 0x93, 0x9e, 0x29, 0xd1, 0xe0, 0x61, 0x46,
+
  0x93, 0xcc, 0x45, 0xa6, 0x89, 0x08, 0x31, 0x88, 0xfa, 0x41, 0x52, 0x55,
+
  0x4d, 0x9b, 0x3c, 0x8d, 0x5e, 0xa2, 0xe9, 0x10, 0xba, 0x3a, 0x2b, 0xfb,
+
  0xc4, 0x28, 0x0c, 0x88, 0xd9, 0x56, 0xf8, 0x6e, 0xee, 0xfd, 0x1b, 0x11,
+
  0xa7, 0x92, 0xda, 0xc5, 0x27, 0xf0, 0x30, 0x42, 0x14, 0x57, 0xce, 0xce,
+
  0x51, 0x85, 0xef, 0xa4, 0x6a, 0x65, 0xc5, 0xdb, 0xc1, 0x6c, 0xe0, 0x5e,
+
  0x84, 0x2a, 0x2d, 0x87, 0xcc, 0x0a, 0x19, 0x70, 0x32, 0x2f, 0xe0, 0x55,
+
  0x2d, 0x04, 0xd1, 0xd6, 0x02, 0x10, 0x6d, 0xa6, 0x8a, 0x96, 0x28, 0x8f,
+
  0x2e, 0x9c, 0x52, 0xb5, 0x1b, 0xc2, 0x96, 0x4a, 0x10, 0x55, 0x54, 0x7d,
+
  0x17, 0x16, 0x96, 0xd2, 0xa4, 0xa2, 0xa0, 0x6b, 0x9a, 0xbd, 0x0b, 0x30,
+
  0x45, 0x47, 0xfd, 0x53, 0xb3, 0x19, 0xcd, 0x47, 0x2d, 0x52, 0xc4, 0x32,
+
  0xcd, 0x7e, 0x53, 0xf1, 0x21, 0x95, 0xde, 0xb0, 0x1c, 0x30, 0xc9, 0x25,
+
  0x98, 0xb5, 0x94, 0xbd, 0xc3, 0x6a, 0x86, 0x4b, 0xca, 0x64, 0xb2, 0xf2,
+
  0x72, 0x04, 0x3b, 0xd8, 0x60, 0x90, 0x74, 0x53, 0xc7, 0x6d, 0x47, 0x0b,
+
  0x64, 0x3f, 0x49, 0x33, 0x27, 0xe5, 0xc9, 0x45, 0xd8, 0xf1, 0xa5, 0x1c,
+
  0xe2, 0x27, 0x19, 0x3c, 0xae, 0x9a, 0x23, 0xa4, 0x1a, 0xd9, 0x0c, 0x36,
+
  0xe5, 0xbb, 0xce, 0x21, 0xea, 0x52, 0xa8, 0x87, 0x4c, 0xaf, 0x4a, 0xe4,
+
  0xd8, 0x2b, 0x44, 0x72, 0x5b, 0xeb, 0x74, 0x84, 0x05, 0x83, 0x4e, 0x1e,
+
  0x8e, 0x97, 0x6d, 0x2c, 0x4f, 0xcd, 0x65, 0x7d, 0x6e, 0xed, 0x49, 0xb8,
+
  0xd5, 0x25, 0xd2, 0xe9, 0xcf, 0xb3, 0x91, 0x3c, 0xed, 0x3e, 0x7d, 0x1c,
+
  0x87, 0x82, 0x48, 0x2d, 0xd3, 0xed, 0xf0, 0x5a, 0x98, 0x72, 0x35, 0x66,
+
  0xee, 0x20, 0x7e, 0x29, 0xa8, 0xeb, 0xe9, 0x68, 0xe2, 0xb2, 0xdd, 0xd6,
+
  0x98, 0xf1, 0xd8, 0x23, 0x71, 0x9c, 0x20, 0xb1, 0x42, 0x9b, 0x85, 0x65,
+
  0xe3, 0xb2, 0x4c, 0xc1, 0x44, 0x12, 0xb0, 0xa8, 0x42, 0x43, 0x07, 0x25,
+
  0x8b, 0x2a, 0xc9, 0x25, 0x51, 0x5f, 0xdb, 0x82, 0xa2, 0x22, 0x80, 0x55,
+
  0xf5, 0xcd, 0xfb, 0x25, 0x57, 0x0b, 0x23, 0x0d, 0x69, 0xcf, 0x90, 0x7b,
+
  0x70, 0x54, 0x58, 0x29, 0xd6, 0xa4, 0xba, 0x43, 0x68, 0x21, 0x4f, 0xae,
+
  0xd5, 0xe8, 0x2e, 0xcf, 0xc3, 0xbd, 0xb2, 0xe2, 0x9d, 0x1a, 0x26, 0x29,
+
  0x02, 0xcb, 0x54, 0xe2, 0x39, 0xc0, 0xc7, 0x48, 0x23, 0x97, 0xc7, 0x76,
+
  0x07, 0x24, 0x51, 0xc9, 0xda, 0xac, 0x08, 0x11, 0x69, 0xea, 0xae, 0xed,
+
  0xcb, 0xd9, 0xe4, 0xea, 0x28, 0x6c, 0xdc, 0xf8, 0xe6, 0x08, 0x20, 0x39,
+
  0xb6, 0x1e, 0x96, 0x11, 0x51, 0x10, 0x39, 0x47, 0x66, 0x24, 0xa7, 0x17,
+
  0xc9, 0x43, 0xd0, 0x14, 0xc4, 0xab, 0x3e, 0x18, 0x89, 0xb9, 0x75, 0x34,
+
  0x4c, 0xca, 0xfb, 0x2d, 0x28, 0x30, 0x0b, 0xd2, 0xe3, 0x72, 0x0c, 0x66,
+
  0x19, 0xc6, 0x91, 0xc5, 0x0d, 0x6d, 0x48, 0x7c, 0xd0, 0xe8, 0xf8, 0x1f,
+
  0x90, 0x28, 0x34, 0xa1, 0x24, 0x90, 0x31, 0x45, 0x35, 0x07, 0x05, 0x76,
+
  0x99, 0xcd, 0x83, 0x9a, 0x55, 0x56, 0xc3, 0x01, 0xf6, 0x3d, 0x7f, 0x07,
+
  0x79, 0x5b, 0x64, 0xe4, 0x24, 0x8d, 0x13, 0xc2, 0xd2, 0xb8, 0xbc, 0x01,
+
  0x3c, 0x1c, 0x03, 0x2b, 0xcc, 0xcf, 0x5f, 0x4a, 0xb5, 0x4e, 0xec, 0x9d,
+
  0x19, 0xb5, 0x5c, 0x32, 0x14, 0xf2, 0x8d, 0xb9, 0xc0, 0xd1, 0x13, 0x47,
+
  0x99, 0x1e, 0xcc, 0x44, 0x09, 0x4c, 0x56, 0x3e, 0x1c, 0xfc, 0x75, 0xa1,
+
  0x31, 0x2e, 0x9d, 0xc9, 0x6b, 0x34, 0x43, 0x26, 0xe9, 0xcd, 0xa1, 0xeb,
+
  0x20, 0x88, 0x54, 0x63, 0xf4, 0xdd, 0x96, 0x20, 0x33, 0x2d, 0x27, 0x24,
+
  0x49, 0x2e, 0x32, 0x1c, 0x5c, 0xb5, 0x65, 0x98, 0x14, 0x62, 0x32, 0x3e,
+
  0xa8, 0x63, 0xe0, 0xba, 0xcf, 0xc8, 0xd9, 0xed, 0x8f, 0xac, 0x87, 0xc8,
+
  0xf8, 0x9d, 0xa9, 0x94, 0xe0, 0x03, 0x0c, 0xa5, 0x0c, 0x5b, 0x78, 0x05,
+
  0x88, 0x11, 0x2b, 0x70, 0x3e, 0x1e, 0x4d, 0xaf, 0xc8, 0xea, 0x92, 0x2c,
+
  0xaf, 0x78, 0x69, 0xc8, 0x89, 0x81, 0x23, 0x5b, 0x82, 0xbf, 0x35, 0x15,
+
  0x9b, 0xd3, 0x0b, 0x2d, 0x44, 0x4b, 0x71, 0x14, 0x60, 0xb8, 0x51, 0x5c,
+
  0xcb, 0x6e, 0x52, 0xd5, 0xea, 0x28, 0x3d, 0x9a, 0xc9, 0xd9, 0x4c, 0x36,
+
  0x4f, 0xe0, 0x2b, 0x44, 0xf4, 0xa2, 0x57, 0xe1, 0x8c, 0x01, 0xf8, 0x9e,
+
  0x39, 0xa6, 0xd1, 0xdb, 0x0b, 0x31, 0x9b, 0xc9, 0xb0, 0x57, 0xc2, 0x3c,
+
  0x03, 0x05, 0x2d, 0xd5, 0x11, 0x4f, 0xbb, 0xd1, 0x35, 0xb9, 0xd9, 0x2c,
+
  0x63, 0x60, 0x8f, 0x5a, 0x08, 0xb5, 0xd6, 0xee, 0x74, 0x16, 0x64, 0xb7,
+
  0x71, 0x6c, 0x4b, 0xa4, 0xa8, 0xa0, 0xa1, 0x2e, 0xd0, 0xea, 0xbc, 0x2c,
+
  0xf1, 0x82, 0x24, 0xf6, 0xcd, 0xbd, 0xdd, 0xdd, 0xed, 0xcd, 0x43, 0x8f,
+
  0x9f, 0x4f, 0x7b, 0x8e, 0x16, 0x19, 0xd9, 0xf0, 0xf0, 0x9d, 0xbb, 0x05,
+
  0xbd, 0x5f, 0x67, 0x31, 0x83, 0x9b, 0xcc, 0xd2, 0x70, 0x07, 0xed, 0x83,
+
  0xf4, 0xe3, 0x8d, 0xf7, 0xbe, 0x42, 0x79, 0xcd, 0x8c, 0x95, 0xad, 0x44,
+
  0x56, 0x46, 0x6b, 0xca, 0x51, 0xff, 0xca, 0x06, 0xb1, 0xb3, 0xcf, 0xd8,
+
  0x08, 0x42, 0x60, 0x5b, 0x6c, 0x8f, 0xc2, 0x1d, 0x65, 0xe0, 0x46, 0x64,
+
  0x1d, 0x72, 0x7c, 0x58, 0x98, 0x93, 0x50, 0xdb, 0xe9, 0x05, 0xd3, 0x31,
+
  0x3d, 0x5e, 0x3d, 0x53, 0x3b, 0xfb, 0x1f, 0x1e, 0x61, 0x2b, 0x60, 0x34,
+
  0xef, 0x66, 0x9d, 0xe3, 0x32, 0xb4, 0xee, 0xa5, 0x2b, 0x5e, 0x8f, 0xd1,
+
  0x50, 0x20, 0xd5, 0xa4, 0xd3, 0xfe, 0x28, 0x0c, 0xc6, 0xce, 0xac, 0x3d,
+
  0x2d, 0x64, 0x93, 0xae, 0xa7, 0x22, 0xed, 0xc8, 0xcd, 0xa8, 0xbb, 0x97,
+
  0xe9, 0x69, 0xca, 0x23, 0x2c, 0xbb, 0x41, 0xd6, 0x09, 0xc4, 0xcb, 0x95,
+
  0x4a, 0x2e, 0xb3, 0x30, 0x9e, 0x23, 0x17, 0x19, 0x76, 0x7d, 0x70, 0x96,
+
  0xa7, 0x96, 0x48, 0x0e, 0x75, 0x8c, 0x41, 0x33, 0xea, 0x24, 0xb4, 0xbe,
+
  0xe7, 0x81, 0x75, 0xa3, 0x9f, 0x2d, 0x91, 0x23, 0x64, 0x61, 0x5d, 0x8c,
+
  0x70, 0x39, 0xc2, 0xc5, 0x88, 0x54, 0x8e, 0xc0, 0x1c, 0x5d, 0x92, 0x88,
+
  0x38, 0xef, 0xb7, 0x89, 0x11, 0x1c, 0xbc, 0xac, 0x57, 0x63, 0xfc, 0x49,
+
  0x95, 0xda, 0x5a, 0xe0, 0x39, 0x75, 0x95, 0x74, 0x7d, 0x9a, 0x67, 0x06,
+
  0x2d, 0x29, 0xaf, 0x48, 0x8e, 0xcc, 0xb1, 0x30, 0x9e, 0xe4, 0xc0, 0xa6,
+
  0x51, 0x6e, 0xb3, 0xab, 0x1e, 0xcb, 0xd3, 0x2e, 0x2c, 0x21, 0xe1, 0xac,
+
  0xe4, 0x4a, 0x20, 0x5a, 0xba, 0x64, 0x71, 0x2d, 0x01, 0xea, 0x0a, 0xba,
+
  0x6b, 0x8c, 0x0f, 0xa1, 0xac, 0x3e, 0x29, 0x27, 0xd3, 0x5a, 0xfc, 0xc1,
+
  0x3b, 0x3d, 0x4a, 0xcd, 0xe0, 0x54, 0xda, 0x59, 0x83, 0xca, 0xd7, 0xf3,
+
  0xe9, 0x5b, 0xa3, 0x8d, 0xf9, 0xfb, 0xd7, 0x7a, 0xe4, 0xc0, 0xb3, 0x45,
+
  0xd7, 0x8b, 0x4c, 0xab, 0x71, 0x78, 0xa5, 0x35, 0x16, 0x3c, 0x6f, 0xb6,
+
  0x25, 0x55, 0xd0, 0x63, 0xbd, 0x54, 0xcd, 0x1e, 0xf3, 0xda, 0x7b, 0x2d,
+
  0xdc, 0xa4, 0xe1, 0x92, 0x6c, 0x49, 0x1c, 0x06, 0x8c, 0xff, 0xa1, 0x05,
+
  0x9e, 0xeb, 0x4c, 0x88, 0x7a, 0x1e, 0xc7, 0x1e, 0x48, 0x1d, 0x22, 0x8e,
+
  0x2d, 0x76, 0x8a, 0x3b, 0x90, 0xa8, 0x47, 0x24, 0x22, 0xf8, 0xc1, 0x87,
+
  0x56, 0xe1, 0x2c, 0xaa, 0x42, 0xa2, 0x7d, 0x90, 0xaa, 0xa5, 0x68, 0xf8,
+
  0xcf, 0xd5, 0x78, 0xa4, 0xea, 0xc7, 0xad, 0x32, 0x0e, 0x39, 0xd9, 0x51,
+
  0x5d, 0x0f, 0xc0, 0xa6, 0xfa, 0x67, 0x37, 0x61, 0xc6, 0xb5, 0x16, 0xda,
+
  0x3c, 0x94, 0xab, 0xb3, 0x66, 0x54, 0x3a, 0xe3, 0xa6, 0x48, 0xb9, 0xe2,
+
  0x77, 0x93, 0x17, 0x11, 0xf9, 0x59, 0xb0, 0x2c, 0xda, 0x55, 0xc5, 0xca,
+
  0x6f, 0xc9, 0xf1, 0x08, 0x2d, 0xb0, 0x49, 0xaf, 0x3f, 0x67, 0xac, 0xce,
+
  0xc5, 0xc0, 0x2e, 0xec, 0xb4, 0xe6, 0x34, 0x61, 0x00, 0x55, 0x7c, 0x5a,
+
  0x14, 0xbb, 0x85, 0xa8, 0xd5, 0x75, 0xb3, 0x01, 0x53, 0x53, 0x0d, 0xbf,
+
  0x1f, 0x70, 0xce, 0x75, 0xb1, 0x6a, 0xcb, 0x11, 0xcb, 0x39, 0xfb, 0xc2,
+
  0x88, 0x3a, 0x22, 0x2f, 0xb6, 0x13, 0xd8, 0x97, 0x62, 0xa5, 0x2b, 0xe5,
+
  0x3b, 0x21, 0x16, 0x01, 0x51, 0x27, 0xa6, 0x3f, 0x42, 0x11, 0xa8, 0xc6,
+
  0x97, 0x0c, 0xea, 0x00, 0x6a, 0x43, 0x6b, 0x77, 0x6f, 0xff, 0x60, 0xef,
+
  0xa7, 0xbf, 0xb4, 0x20, 0xe0, 0xc0, 0x87, 0x58, 0x28, 0x4c, 0xcd, 0xa9,
+
  0x6a, 0x05, 0x06, 0x6f, 0x63, 0xba, 0x67, 0xb6, 0xcb, 0x4f, 0xe3, 0x72,
+
  0x1b, 0x19, 0x1e, 0x69, 0x20, 0xb3, 0xd4, 0x90, 0x1e, 0x16, 0x19, 0x7f,
+
  0x92, 0x9b, 0x8f, 0x87, 0xd4, 0xf3, 0x3c, 0x3b, 0x1d, 0xf0, 0x4c, 0x4d,
+
  0x32, 0x1c, 0x99, 0x9d, 0x82, 0x17, 0xa1, 0x11, 0xf6, 0xd2, 0xc8, 0x2a,
+
  0x5d, 0xc0, 0xc2, 0xff, 0xb1, 0xc3, 0x5f, 0x28, 0x78, 0x06, 0xee, 0x28,
+
  0x78, 0x16, 0xe1, 0xef, 0x18, 0xde, 0xce, 0x70, 0x0a, 0x1d, 0xbf, 0x50,
+
  0x32, 0xa3, 0xa8, 0x4b, 0x1f, 0xa4, 0x16, 0x56, 0xa6, 0xb9, 0xf5, 0x1c,
+
  0xac, 0x38, 0x02, 0x0c, 0x49, 0x1e, 0x8b, 0x53, 0xeb, 0x81, 0x7c, 0x7c,
+
  0xe1, 0x12, 0xc2, 0x8c, 0x58, 0x9f, 0x13, 0xe0, 0x93, 0x74, 0x45, 0x20,
+
  0xfc, 0x25, 0x57, 0x93, 0x4a, 0x83, 0xe1, 0x86, 0xb2, 0x0b, 0x2a, 0xbb,
+
  0x1c, 0x6e, 0xbd, 0x1d, 0xc2, 0xb4, 0x71, 0x35, 0x7d, 0xf2, 0x36, 0xd2,
+
  0x0e, 0xd3, 0xeb, 0x48, 0xbb, 0xfc, 0xb5, 0xf7, 0x91, 0x31, 0xc3, 0x2f,
+
  0x28, 0xde, 0x38, 0xf1, 0x2e, 0x91, 0xaf, 0x40, 0xed, 0xf6, 0x7a, 0xf0,
+
  0x2d, 0x17, 0xa5, 0x62, 0x6e, 0x9d, 0xe0, 0x0b, 0x79, 0xdf, 0xc4, 0x82,
+
  0x70, 0x88, 0xa7, 0x62, 0x09, 0xb9, 0x1c, 0x0a, 0xc2, 0xa0, 0xd9, 0x2d,
+
  0xd1, 0x05, 0xb8, 0x6c, 0x49, 0x1f, 0x76, 0xe6, 0x6e, 0x13, 0x45, 0xea,
+
  0xfe, 0xcf, 0xd5, 0xd1, 0x69, 0x18, 0x04, 0x70, 0xb4, 0xac, 0xab, 0xc9,
+
  0x68, 0x82, 0x4c, 0xe8, 0xcb, 0x30, 0x0d, 0xe1, 0x12, 0x49, 0x0a, 0x82,
+
  0x70, 0x59, 0x7b, 0x83, 0xe7, 0xdd, 0x55, 0x21, 0xd5, 0x33, 0x43, 0x93,
+
  0xb6, 0xd4, 0x00, 0x41, 0x7b, 0x28, 0xe6, 0x22, 0xe3, 0x14, 0xb6, 0x0a,
+
  0x63, 0xd8, 0xb3, 0x18, 0x3a, 0x26, 0xc5, 0x2f, 0x54, 0x86, 0x4d, 0xc7,
+
  0x25, 0xdf, 0xcd, 0x1d, 0x95, 0x0f, 0x4a, 0x3b, 0x8a, 0x03, 0x9a, 0xdb,
+
  0x92, 0x5d, 0x59, 0x77, 0x36, 0x15, 0xa7, 0x97, 0x1a, 0xfc, 0x33, 0x21,
+
  0x23, 0x6d, 0x53, 0xb0, 0xc7, 0xee, 0xdb, 0xa4, 0xe3, 0x0f, 0x66, 0xcb,
+
  0xc5, 0x96, 0x10, 0x8d, 0xf2, 0x5b, 0x97, 0x2b, 0xb0, 0xea, 0xd3, 0x99,
+
  0x7d, 0x2c, 0xe1, 0x01, 0x3b, 0x8f, 0x8b, 0x23, 0x8f, 0x25, 0x5a, 0x6d,
+
  0xe0, 0xd3, 0xf5, 0x74, 0xac, 0xd1, 0x89, 0x86, 0x42, 0x48, 0x27, 0x52,
+
  0x68, 0xc1, 0xde, 0xea, 0x16, 0xaf, 0x38, 0x17, 0xf8, 0xe0, 0x25, 0x28,
+
  0x2d, 0xef, 0x35, 0x5f, 0x07, 0xeb, 0xd3, 0x90, 0x08, 0x9b, 0x5d, 0xde,
+
  0xdd, 0xa7, 0xbc, 0x75, 0x47, 0x8f, 0xb7, 0xdd, 0x69, 0x7a, 0xa5, 0x99,
+
  0x8c, 0x8b, 0xeb, 0x4b, 0x6e, 0xaf, 0xd4, 0x2a, 0x34, 0x7b, 0x75, 0xe9,
+
  0xe9, 0x48, 0x6e, 0xaf, 0x5b, 0x2f, 0x2f, 0x6c, 0xc6, 0xec, 0xcd, 0x25,
+
  0x6e, 0x07, 0x8c, 0xe2, 0x3b, 0xd1, 0x4c, 0x99, 0xc3, 0x37, 0xea, 0xf3,
+
  0xe0, 0x0c, 0x15, 0x13, 0x20, 0xf5, 0xf6, 0xa5, 0x17, 0x7f, 0xea, 0xf2,
+
  0xc0, 0xc1, 0x31, 0xa7, 0xc7, 0x9c, 0xeb, 0xfd, 0x49, 0x22, 0x11, 0x89,
+
  0xef, 0xef, 0x0b, 0xf7, 0xe9, 0xd1, 0xff, 0x12, 0x57, 0xd1, 0xb7, 0x2a,
+
  0x3a, 0x9e, 0xdb, 0x9b, 0x38, 0x60, 0xcc, 0x5a, 0x25, 0x2d, 0x84, 0xdb,
+
  0x2c, 0xc8, 0x7d, 0x90, 0x63, 0xd5, 0x1b, 0x29, 0xdf, 0x58, 0xc2, 0xb6,
+
  0x14, 0x7a, 0xb8, 0x75, 0x32, 0xe0, 0x60, 0x47, 0x41, 0xe3, 0x6d, 0xa8,
+
  0x72, 0xfc, 0x9e, 0xf0, 0x0f, 0x4a, 0x01, 0x48, 0x25, 0x63, 0xa4, 0xfd,
+
  0x68, 0xf4, 0x3e, 0xf3, 0xdc, 0x50, 0x00, 0x45, 0x86, 0xca, 0xa4, 0x3f,
+
  0x30, 0x16, 0x14, 0xb6, 0xff, 0x61, 0xaf, 0xf7, 0xc3, 0xc3, 0x6a, 0x72,
+
  0xe2, 0x25, 0xa2, 0x1e, 0x46, 0x28, 0x07, 0x45, 0x71, 0x11, 0xb0, 0x17,
+
  0xbd, 0x27, 0x04, 0xcd, 0xce, 0xf9, 0xa5, 0x3b, 0x53, 0xbb, 0xe9, 0x38,
+
  0x1b, 0x83, 0x94, 0x31, 0x16, 0x8c, 0x59, 0xd6, 0x31, 0xfa, 0x10, 0xe3,
+
  0x08, 0xb3, 0x01, 0x4a, 0xad, 0xaf, 0xcd, 0xfd, 0xa8, 0x70, 0x35, 0x50,
+
  0x81, 0x39, 0x0a, 0xdc, 0xfa, 0xaa, 0x8e, 0x82, 0xec, 0xe6, 0x0f, 0x06,
+
  0xa2, 0xc9, 0x20, 0x74, 0x35, 0xbd, 0xca, 0xc7, 0x93, 0xad, 0x19, 0x33,
+
  0xb8, 0x7d, 0xc5, 0x92, 0x05, 0x4b, 0x86, 0x93, 0x85, 0x28, 0x32, 0x71,
+
  0xe6, 0xd6, 0x3e, 0xaf, 0xc2, 0xe8, 0x8c, 0x23, 0xa5, 0xbd, 0x7a, 0x3f,
+
  0xde, 0x4d, 0xb3, 0x17, 0xaa, 0xdd, 0x60, 0x8a, 0x12, 0xc7, 0x23, 0xc9,
+
  0x40, 0xa1, 0x05, 0x8d, 0x7a, 0xa3, 0x95, 0xfb, 0xb2, 0x7f, 0x32, 0x1e,
+
  0xe9, 0xd0, 0x73, 0x69, 0x6b, 0x75, 0xa5, 0x41, 0x31, 0x57, 0x10, 0xc5,
+
  0x67, 0xc7, 0xf1, 0x2b, 0x66, 0x2f, 0x6e, 0xe5, 0x85, 0xcc, 0xfb, 0x00,
+
  0x1d, 0x7d, 0xca, 0x08, 0x20, 0xc6, 0xf1, 0x58, 0x36, 0xeb, 0x39, 0x32,
+
  0x55, 0xfc, 0x84, 0x78, 0x80, 0x9f, 0xe4, 0x5f, 0x2c, 0x84, 0x21, 0x75,
+
  0x92, 0xac, 0x09, 0x9a, 0xc8, 0x3d, 0xec, 0x5d, 0xab, 0x84, 0x7a, 0xb6,
+
  0x63, 0x56, 0x37, 0xf9, 0x44, 0x8f, 0x12, 0x65, 0x5d, 0x24, 0x2f, 0x9d,
+
  0x4c, 0x01, 0xd9, 0x62, 0x97, 0x39, 0xcc, 0x1f, 0x00, 0xcc, 0x1b, 0x7c,
+
  0x68, 0xec, 0x86, 0xc9, 0x74, 0xb3, 0xf4, 0x38, 0xff, 0xd0, 0x68, 0xae,
+
  0x48, 0x94, 0x58, 0xfb, 0x12, 0x4a, 0x50, 0x5d, 0xd5, 0xd4, 0x9a, 0x1d,
+
  0xdd, 0x50, 0x2c, 0x90, 0x42, 0x5c, 0x6d, 0x3f, 0x41, 0x6d, 0x66, 0x27,
+
  0xc7, 0x85, 0x92, 0xcc, 0x0f, 0xdf, 0x86, 0x85, 0x05, 0x45, 0xb0, 0xb1,
+
  0x75, 0x1d, 0x96, 0x03, 0xfd, 0x59, 0xbd, 0x33, 0xb2, 0xb4, 0xaa, 0x31,
+
  0x22, 0x4f, 0x26, 0x9b, 0x45, 0xab, 0x91, 0x03, 0x28, 0xf4, 0xa7, 0xd1,
+
  0xd1, 0xe4, 0xd8, 0x20, 0x34, 0x16, 0x58, 0x30, 0x6b, 0x5c, 0x32, 0x8f,
+
  0x3a, 0x5b, 0x19, 0xf6, 0x71, 0x2b, 0x81, 0x64, 0x8b, 0x33, 0xf7, 0xb4,
+
  0x66, 0xf4, 0x31, 0xa6, 0xf4, 0x66, 0xb4, 0x6b, 0xf6, 0x81, 0x6e, 0x93,
+
  0x0e, 0x9a, 0x74, 0x29, 0x9e, 0x70, 0x22, 0x45, 0x08, 0x57, 0xe2, 0xf8,
+
  0xd9, 0x87, 0xd8, 0x1d, 0x90, 0x28, 0x20, 0x5e, 0xa0, 0x20, 0xbf, 0x61,
+
  0xcb, 0xd5, 0x4b, 0x2a, 0x77, 0x59, 0x36, 0x1f, 0x4a, 0x17, 0xb9, 0xa8,
+
  0x31, 0x3b, 0x1b, 0x57, 0xb5, 0xe9, 0x0c, 0x8d, 0xc0, 0xde, 0x38, 0x7a,
+
  0x91, 0x72, 0x54, 0x49, 0x39, 0x54, 0x90, 0xbe, 0x68, 0x24, 0xab, 0xa8,
+
  0xfb, 0xdc, 0xae, 0x55, 0xb2, 0x72, 0x7d, 0x26, 0x92, 0xaa, 0x2c, 0x6a,
+
  0x40, 0x78, 0x93, 0x7b, 0x34, 0x19, 0x8e, 0x72, 0xde, 0x22, 0x52, 0x3a,
+
  0xdc, 0x02, 0x0f, 0x2c, 0x93, 0xdf, 0xd4, 0x9a, 0x01, 0xae, 0x58, 0x8b,
+
  0x11, 0xb8, 0x4b, 0xd0, 0xd4, 0x0d, 0xf4, 0x2f, 0xe2, 0xaa, 0x89, 0xc0,
+
  0x6e, 0x4d, 0xe7, 0x56, 0xdd, 0x99, 0xe6, 0x35, 0x51, 0xcf, 0x5a, 0xd7,
+
  0x8f, 0xbf, 0x6d, 0xc8, 0x60, 0xf8, 0x6e, 0xf6, 0x02, 0xf3, 0xff, 0x6d,
+
  0x0b, 0x90, 0x68, 0x40, 0x73, 0x54, 0x9f, 0xf9, 0xed, 0xed, 0x08, 0xa2,
+
  0x43, 0xf2, 0xbc, 0xc6, 0x53, 0x26, 0x18, 0x0d, 0x12, 0x31, 0x60, 0x6b,
+
  0x67, 0x5a, 0x08, 0x0e, 0x00, 0x75, 0x98, 0xb6, 0xe9, 0x1b, 0xf2, 0xcb,
+
  0x37, 0x60, 0x28, 0x0e, 0x7c, 0x9a, 0x8c, 0x43, 0x82, 0x2e, 0xaf, 0x87,
+
  0x9f, 0xd8, 0xc5, 0xe8, 0x85, 0xa0, 0xf3, 0xe1, 0x37, 0x2d, 0x09, 0x11,
+
  0x02, 0xad, 0xb9, 0x1c, 0xba, 0xf1, 0x57, 0xb5, 0x77, 0x16, 0xe4, 0x5b,
+
  0x62, 0x8d, 0x69, 0x93, 0xf6, 0xf9, 0x0b, 0xd1, 0xd8, 0xcf, 0x41, 0x1f,
+
  0x8d, 0x4e, 0x43, 0x7c, 0x82, 0xc3, 0xef, 0xb7, 0x8c, 0xb8, 0xfa, 0xf4,
+
  0xb1, 0x8d, 0xa6, 0xea, 0x62, 0x09, 0xec, 0x62, 0x39, 0xef, 0xc4, 0x7b,
+
  0xc9, 0xbc, 0x9d, 0xb3, 0xfd, 0xcc, 0x3f, 0xcc, 0x77, 0x77, 0xf2, 0xf9,
+
  0xbd, 0x34, 0x0f, 0xf9, 0xbc, 0x53, 0xde, 0xec, 0xd0, 0x7a, 0x4c, 0xba,
+
  0x54, 0x49, 0xef, 0x5e, 0x0b, 0x78, 0x8f, 0x83, 0xff, 0x65, 0x56, 0x70,
+
  0x3e, 0x37, 0xf8, 0xe2, 0x2b, 0x78, 0x37, 0x97, 0xf8, 0x8c, 0xb9, 0x08,
+
  0xeb, 0x48, 0xdb, 0x90, 0x3b, 0xde, 0x18, 0x87, 0x04, 0x6e, 0x19, 0xd5,
+
  0x2a, 0xe5, 0x45, 0xae, 0x41, 0xa1, 0x27, 0x34, 0x6b, 0x5c, 0xa3, 0xf8,
+
  0xb5, 0x3c, 0xa3, 0xba, 0x85, 0x69, 0x7c, 0xe9, 0x95, 0xbb, 0x83, 0x99,
+
  0xcc, 0xa7, 0x82, 0x5f, 0x47, 0x06, 0x4d, 0x1e, 0x33, 0x8f, 0xc9, 0x7c,
+
  0x61, 0x12, 0xff, 0x34, 0xdf, 0xb9, 0x9d, 0x2a, 0x32, 0x4e, 0x74, 0xe7,
+
  0xd4, 0xc2, 0x96, 0xa6, 0xd2, 0x07, 0x83, 0x82, 0x3e, 0xa6, 0x5e, 0x08,
+
  0xd1, 0x66, 0x4d, 0x86, 0x6a, 0x17, 0x2b, 0x1d, 0x3e, 0x42, 0xc6, 0xf9,
+
  0x76, 0xc8, 0x12, 0x01, 0x34, 0xd0, 0x12, 0x59, 0x1a, 0xa9, 0x9b, 0x55,
+
  0x12, 0x5c, 0x25, 0xad, 0x79, 0x4c, 0x84, 0xea, 0xb0, 0xa3, 0x71, 0x3f,
+
  0x48, 0xee, 0x85, 0xbe, 0x5b, 0x48, 0x1d, 0x81, 0x3c, 0x6c, 0xa3, 0x21,
+
  0xe7, 0xcc, 0x06, 0x07, 0xcc, 0xe3, 0xb9, 0x62, 0xd8, 0x8b, 0x06, 0x1d,
+
  0xda, 0x15, 0x1b, 0x71, 0x00, 0xcc, 0x9f, 0x5d, 0x90, 0x02, 0x8a, 0x08,
+
  0x04, 0x30, 0xc8, 0x38, 0x31, 0xf5, 0x16, 0x66, 0xff, 0x7d, 0xd1, 0x34,
+
  0xe8, 0x7c, 0x0c, 0x93, 0x4f, 0x62, 0x47, 0xa2, 0xdd, 0x31, 0x89, 0x1c,
+
  0x71, 0x1f, 0x1f, 0x54, 0xab, 0x28, 0x96, 0xc3, 0xa0, 0xd9, 0x2d, 0x3a,
+
  0xb4, 0x9e, 0x87, 0xc3, 0x99, 0xea, 0x36, 0x9e, 0xb4, 0x60, 0x5e, 0x9b,
+
  0x9b, 0x6a, 0x52, 0xb8, 0x21, 0x06, 0x0a, 0x32, 0x82, 0xdd, 0x0e, 0x33,
+
  0x0f, 0x44, 0xff, 0x54, 0xdc, 0xc1, 0x16, 0x70, 0xa2, 0xa1, 0x26, 0xa2,
+
  0x48, 0xc4, 0xac, 0x96, 0xc4, 0x5d, 0x92, 0x84, 0x9d, 0x14, 0x06, 0x47,
+
  0xb0, 0x70, 0xef, 0xc0, 0x13, 0x06, 0x77, 0x47, 0xdb, 0xc5, 0x9d, 0x65,
+
  0xff, 0xb2, 0x42, 0xa3, 0x1a, 0x6e, 0x3b, 0xb7, 0x30, 0xc7, 0xdc, 0xd8,
+
  0xee, 0xeb, 0xe2, 0x9b, 0x07, 0xbf, 0x64, 0x76, 0xde, 0x7f, 0xfd, 0x6d,
+
  0xf8, 0xcd, 0xfd, 0x40, 0xc0, 0xf2, 0x3a, 0x66, 0xd8, 0x3c, 0x8f, 0xbc,
+
  0xff, 0x58, 0x06, 0xcd, 0x23, 0x81, 0xc5, 0xa9, 0x4b, 0x2a, 0xd5, 0xb1,
+
  0xf6, 0xa5, 0x84, 0x32, 0xb7, 0x8b, 0x24, 0x5c, 0x99, 0x86, 0x12, 0xe8,
+
  0x4e, 0x0c, 0x0b, 0xb9, 0xac, 0x26, 0xa5, 0x80, 0x66, 0x58, 0xa0, 0x32,
+
  0x73, 0xc8, 0xb0, 0x02, 0x12, 0x36, 0x82, 0x1e, 0xfa, 0x81, 0xb1, 0x32,
+
  0x10, 0x61, 0x93, 0x1e, 0xfd, 0x09, 0x00, 0xf2, 0x8b, 0x16, 0x5a, 0x6b,
+
  0x89, 0x5c, 0xc6, 0x06, 0xa3, 0x19, 0x5a, 0xb1, 0xff, 0x19, 0x4a, 0x38,
+
  0x1a, 0xb7, 0x62, 0x1b, 0x6a, 0x30, 0x72, 0xe8, 0x78, 0x7d, 0xcf, 0xad,
+
  0xd7, 0xad, 0x8f, 0xa7, 0xe7, 0x5d, 0x39, 0x43, 0x5d, 0xb4, 0xae, 0x01,
+
  0x5d, 0xf6, 0x3a, 0x45, 0xc3, 0xb6, 0x28, 0x97, 0xb0, 0x95, 0xb6, 0x73,
+
  0x94, 0xfa, 0xf0, 0x09, 0xd1, 0x42, 0x77, 0x8c, 0xe8, 0x92, 0x0a, 0x4e,
+
  0x78, 0xa8, 0x95, 0xb4, 0xea, 0x91, 0x68, 0x95, 0x85, 0xca, 0x18, 0xa4,
+
  0x6a, 0x4c, 0xa4, 0xf7, 0x0c, 0x97, 0xc6, 0x1a, 0x25, 0xcb, 0xd3, 0x66,
+
  0xac, 0xcd, 0x75, 0x39, 0x1e, 0x0a, 0x54, 0x03, 0x2d, 0x5b, 0xf5, 0x94,
+
  0xdc, 0x24, 0x49, 0xb9, 0xce, 0x77, 0xad, 0x99, 0x76, 0xdd, 0xc8, 0xbb,
+
  0x2e, 0x66, 0x60, 0x8e, 0x45, 0xc9, 0x56, 0x9c, 0xb1, 0x04, 0x51, 0x8a,
+
  0xd9, 0xd7, 0x6c, 0xf8, 0xee, 0x1c, 0x03, 0x3e, 0x52, 0x74, 0x84, 0x06,
+
  0x60, 0x3c, 0xbd, 0x17, 0x09, 0x6a, 0x58, 0x8f, 0xe8, 0x81, 0xe9, 0x91,
+
  0x69, 0xd6, 0xfa, 0xfa, 0x6e, 0xe7, 0xf5, 0x76, 0x4f, 0xa8, 0xf3, 0xff,
+
  0x3e, 0xec, 0xa2, 0xcf, 0xf1, 0x89, 0x7c, 0xdc, 0xd2, 0xdb, 0x36, 0x41,
+
  0xb7, 0xb0, 0xea, 0x04, 0xf6, 0x55, 0x56, 0x96, 0x60, 0x7b, 0xf7, 0xdd,
+
  0xce, 0xc1, 0xde, 0xee, 0x9b, 0xed, 0xdd, 0x43, 0x69, 0xe0, 0xf0, 0x16,
+
  0x34, 0xab, 0x3a, 0x02, 0xd3, 0x45, 0x15, 0xc2, 0xa2, 0x5f, 0x14, 0x46,
+
  0x0a, 0x95, 0x54, 0xaf, 0xae, 0xec, 0x63, 0xd7, 0xdb, 0x93, 0x67, 0xf8,
+
  0x88, 0x45, 0x54, 0x70, 0x03, 0xae, 0xa0, 0x79, 0x9f, 0x22, 0x76, 0xa5,
+
  0xab, 0xee, 0x12, 0x9a, 0xc8, 0x08, 0x11, 0xc2, 0x48, 0x54, 0x84, 0xc6,
+
  0x30, 0xe9, 0x1b, 0xbb, 0x3c, 0x59, 0x54, 0x40, 0x77, 0x29, 0xac, 0xe4,
+
  0x21, 0x15, 0x3e, 0x08, 0xe9, 0x74, 0x31, 0x02, 0x79, 0xc0, 0xb6, 0x79,
+
  0x2b, 0x96, 0x19, 0x53, 0x5c, 0xc5, 0x17, 0x19, 0xfa, 0x14, 0x92, 0x88,
+
  0xf7, 0x8e, 0x10, 0x04, 0xf3, 0xab, 0x0a, 0x0b, 0x18, 0x57, 0x2b, 0xac,
+
  0x3c, 0xef, 0xf1, 0x56, 0x1e, 0x40, 0x22, 0xdf, 0xff, 0xd5, 0x6c, 0x3c,
+
  0x61, 0xb3, 0xff, 0xfe, 0x12, 0x02, 0xdf, 0xb7, 0x7f, 0x7d, 0x01, 0x92,
+
  0xfe, 0x7b, 0xd8, 0xef, 0x5e, 0xa5, 0x78, 0x4a, 0xf2, 0x6c, 0xc4, 0xbc,
+
  0x45, 0x02, 0x23, 0x36, 0x86, 0x65, 0x2d, 0xa4, 0x4d, 0x3a, 0x70, 0x8f,
+
  0xe8, 0xcf, 0xfc, 0x02, 0x8d, 0xf6, 0xb4, 0xd5, 0xbf, 0x22, 0x6d, 0xd6,
+
  0x5a, 0xfb, 0xfb, 0x17, 0x69, 0x3e, 0x6f, 0xb2, 0xad, 0x11, 0xdd, 0x5c,
+
  0xca, 0xa4, 0xa8, 0xc7, 0xe2, 0x42, 0x19, 0x3f, 0x26, 0x69, 0x13, 0x9e,
+
  0x87, 0x48, 0x75, 0x34, 0xd3, 0x50, 0x25, 0xc3, 0x88, 0xa5, 0x6d, 0xa4,
+
  0xbe, 0x08, 0x13, 0xdc, 0x16, 0x17, 0x90, 0xe1, 0xd6, 0x96, 0x62, 0x23,
+
  0xac, 0x2c, 0xd2, 0xd6, 0x6a, 0x23, 0x48, 0x0e, 0x96, 0x59, 0x6e, 0xbc,
+
  0x7e, 0xfd, 0x9b, 0xa7, 0xd6, 0x17, 0x39, 0x58, 0x5f, 0xef, 0xb8, 0x61,
+
  0x4f, 0x9e, 0x95, 0x54, 0x29, 0xed, 0x6e, 0x77, 0x4f, 0x7b, 0x7b, 0x39,
+
  0x17, 0x3e, 0x2c, 0xdc, 0xea, 0xe8, 0xb8, 0x7e, 0x28, 0xa9, 0xac, 0xf5,
+
  0xb7, 0xa1, 0xeb, 0xf4, 0x07, 0x89, 0x29, 0x53, 0x65, 0x5b, 0x80, 0xa0,
+
  0x89, 0x2a, 0x32, 0xf2, 0x32, 0x7d, 0xcc, 0xd5, 0x91, 0x1c, 0x5a, 0x30,
+
  0x51, 0x05, 0x84, 0x2c, 0x90, 0x57, 0x0a, 0x4b, 0xd0, 0xb8, 0x5f, 0xbf,
+
  0x2f, 0xbe, 0xf9, 0x8f, 0x6f, 0x78, 0x32, 0xc4, 0x06, 0x66, 0xe5, 0x59,
+
  0x78, 0xa9, 0xb3, 0x77, 0xc4, 0x9a, 0x21, 0x9c, 0x43, 0x22, 0xed, 0x87,
+
  0xea, 0x67, 0x96, 0xc2, 0xb1, 0xd8, 0x1e, 0xf5, 0x94, 0x63, 0x0b, 0x0c,
+
  0x15, 0xb0, 0xcc, 0xa1, 0x9c, 0xa5, 0x8e, 0x8c, 0xe6, 0x16, 0xa9, 0xb7,
+
  0xcb, 0xc6, 0xdf, 0x8e, 0x10, 0xa9, 0xee, 0x64, 0xef, 0x4f, 0xea, 0x6a,
+
  0x70, 0x06, 0x46, 0x29, 0x76, 0xb5, 0x5b, 0xb0, 0xf7, 0xb4, 0xd2, 0x4a,
+
  0xad, 0x20, 0xec, 0x2e, 0x07, 0xeb, 0xb9, 0xac, 0x58, 0x1b, 0x87, 0x2e,
+
  0xf3, 0xc5, 0x85, 0x99, 0x18, 0xf0, 0x99, 0x03, 0x19, 0x18, 0x0e, 0xb3,
+
  0xa2, 0x3c, 0x92, 0x5b, 0xb6, 0xe6, 0xf7, 0x62, 0x56, 0x4c, 0x0b, 0x0f,
+
  0x29, 0xaf, 0xfe, 0x68, 0x25, 0x10, 0x64, 0x7d, 0x67, 0x4a, 0x13, 0xe8,
+
  0xaf, 0xb3, 0xef, 0x87, 0x1e, 0xbc, 0x66, 0x08, 0x43, 0x3c, 0x24, 0x61,
+
  0x02, 0xb7, 0xae, 0x3c, 0x8c, 0xbd, 0x40, 0x24, 0xf8, 0x17, 0x1e, 0x09,
+
  0xbc, 0xc4, 0x52, 0x00, 0xec, 0x7e, 0x83, 0x31, 0x22, 0x72, 0x42, 0x97,
+
  0x1d, 0xa9, 0x8a, 0x59, 0x1a, 0xa4, 0x37, 0x88, 0x97, 0xd1, 0xb1, 0xe3,
+
  0x64, 0x24, 0x92, 0x6a, 0x74, 0xf6, 0xcb, 0x3d, 0x8c, 0x28, 0x77, 0xa6,
+
  0x5d, 0x7b, 0xfa, 0xaa, 0x92, 0x2f, 0xc3, 0xc7, 0x8f, 0xad, 0x32, 0xb9,
+
  0x05, 0x47, 0x04, 0x46, 0x3f, 0x18, 0x91, 0x91, 0x1e, 0x23, 0xef, 0xb3,
+
  0x92, 0x62, 0xc0, 0x69, 0xa3, 0x73, 0xb2, 0xcd, 0x84, 0xf3, 0x6e, 0xee,
+
  0x6c, 0x1d, 0x50, 0x44, 0x50, 0xd9, 0x1a, 0x88, 0xbd, 0x4c, 0x5f, 0x20,
+
  0x06, 0x37, 0x0a, 0xf2, 0x85, 0xf9, 0xc3, 0x2c, 0x2f, 0x7a, 0x42, 0xac,
+
  0xa3, 0x36, 0x51, 0x1f, 0xbf, 0xea, 0xc2, 0x2d, 0x87, 0xab, 0x39, 0x0e,
+
  0xd4, 0xd9, 0x62, 0xf0, 0xaf, 0xe9, 0x93, 0x3a, 0x8a, 0xc5, 0x05, 0xaf,
+
  0x90, 0xc4, 0x63, 0xa2, 0x42, 0x2f, 0xac, 0xd7, 0x81, 0x64, 0x6b, 0x26,
+
  0x85, 0x6a, 0x2e, 0x8b, 0xfc, 0xfe, 0xb4, 0xfb, 0x0c, 0x81, 0x12, 0xf0,
+
  0x23, 0x10, 0x99, 0xc0, 0xa2, 0x53, 0x16, 0x17, 0x5a, 0xab, 0xcf, 0xd7,
+
  0xba, 0xab, 0x4f, 0x90, 0xac, 0xbc, 0xf2, 0x70, 0xf5, 0x49, 0x4b, 0x23,
+
  0x35, 0x78, 0xd2, 0x24, 0x2e, 0xd0, 0x27, 0x9e, 0x43, 0x9c, 0xd9, 0x8b,
+
  0x2d, 0xe3, 0x67, 0xfb, 0xfb, 0x5b, 0x1b, 0x87, 0x1b, 0xc5, 0xcb, 0x40,
+
  0x3b, 0xe0, 0x1e, 0x69, 0x66, 0x82, 0xea, 0x57, 0x19, 0xea, 0xa4, 0x7a,
+
  0xf3, 0x18, 0x66, 0x32, 0x19, 0xdf, 0x88, 0xec, 0xce, 0xfa, 0x8c, 0x6e,
+
  0xf3, 0xbb, 0x18, 0x41, 0x88, 0xf7, 0x12, 0x8c, 0x5e, 0xf0, 0xe9, 0x6a,
+
  0xdc, 0xbf, 0x04, 0xda, 0x36, 0x7e, 0x8f, 0x8d, 0x42, 0x29, 0xc3, 0x80,
+
  0xa7, 0xc3, 0xc8, 0xf5, 0x36, 0xf7, 0x5e, 0xbf, 0x7d, 0xb3, 0xdb, 0x2b,
+
  0x5e, 0x4a, 0x0c, 0x4e, 0xa0, 0x8f, 0xeb, 0xfe, 0x29, 0x0a, 0x8e, 0x2e,
+
  0x2e, 0x08, 0x8f, 0x6a, 0x17, 0x8d, 0x94, 0x8e, 0x44, 0x29, 0x74, 0xac,
+
  0x09, 0xf1, 0x4c, 0xca, 0x78, 0xed, 0x06, 0xb6, 0x06, 0x17, 0x17, 0xd8,
+
  0x62, 0x82, 0xf5, 0x55, 0x6a, 0xa9, 0x42, 0x6a, 0xc7, 0x81, 0x98, 0xcf,
+
  0xb1, 0x7c, 0x9d, 0xe3, 0x52, 0x73, 0xc9, 0xc5, 0xa6, 0xb0, 0x73, 0x26,
+
  0xd2, 0xa4, 0x0c, 0x41, 0xb2, 0xbb, 0x25, 0x14, 0x0c, 0x6a, 0x1a, 0xaa,
+
  0x6b, 0xd3, 0xbb, 0x85, 0xbd, 0x17, 0xea, 0x12, 0x60, 0x97, 0x6b, 0x29,
+
  0x42, 0xcb, 0xa9, 0x85, 0x73, 0x73, 0xb4, 0xb9, 0x71, 0xf4, 0xea, 0xed,
+
  0xee, 0xd6, 0xeb, 0x6d, 0xab, 0x08, 0x1a, 0xe7, 0x25, 0x20, 0xa6, 0x86,
+
  0xd3, 0x2a, 0x5c, 0x28, 0xe8, 0x40, 0xd5, 0x58, 0x55, 0x16, 0xc7, 0xb8,
+
  0x98, 0xc7, 0xf0, 0xc0, 0x6c, 0xa5, 0xfa, 0xe4, 0x29, 0x2e, 0x19, 0x0f,
+
  0x28, 0x6c, 0xb4, 0x98, 0xa4, 0xe3, 0xa7, 0xa3, 0xfa, 0x61, 0xef, 0xcd,
+
  0xb6, 0xd3, 0x81, 0x8f, 0xa7, 0x4e, 0x22, 0x82, 0x23, 0x26, 0x22, 0x61,
+
  0xce, 0x2e, 0xaa, 0x93, 0xf7, 0x75, 0x46, 0x0a, 0x5c, 0x05, 0x86, 0xb3,
+
  0x84, 0xeb, 0x6f, 0x1e, 0x1d, 0xf8, 0xe2, 0xf5, 0x05, 0xc3, 0xa9, 0x3f,
+
  0x9c, 0xca, 0xe2, 0xb1, 0xb1, 0xe2, 0xa7, 0xad, 0xef, 0x8f, 0x36, 0xf7,
+
  0x76, 0xbf, 0xdb, 0xf9, 0x9e, 0xa3, 0x49, 0x06, 0xd7, 0xeb, 0xbd, 0x3e,
+
  0x7a, 0xb5, 0xb1, 0xf9, 0xa7, 0xed, 0xdd, 0xad, 0xe2, 0x65, 0x32, 0x01,
+
  0x1d, 0xab, 0xc6, 0xdd, 0xe7, 0x68, 0x18, 0x39, 0x06, 0x49, 0xcb, 0xd0,
+
  0x0a, 0x5a, 0xb1, 0x2c, 0xa1, 0xa2, 0x05, 0x4e, 0x28, 0xa3, 0x2d, 0x2e,
+
  0x38, 0x50, 0x87, 0xbd, 0x28, 0x6f, 0x5e, 0xaa, 0xa3, 0xca, 0x12, 0xba,
+
  0x18, 0xe4, 0xa9, 0xfd, 0xfb, 0x29, 0x49, 0x76, 0x64, 0x71, 0x61, 0x06,
+
  0xf6, 0xd7, 0xee, 0xd5, 0xf9, 0x49, 0x7f, 0x9e, 0xf3, 0x27, 0xb7, 0x93,
+
  0x7b, 0xf5, 0xc2, 0x88, 0xa4, 0x17, 0x2f, 0xad, 0xc6, 0xc5, 0xf6, 0x7c,
+
  0x01, 0xa9, 0x8c, 0x75, 0xda, 0x8d, 0xb8, 0xc6, 0xa5, 0xfa, 0xe3, 0x34,
+
  0x75, 0xcd, 0xb0, 0x67, 0x93, 0xa9, 0xa5, 0x74, 0x7e, 0x19, 0xb1, 0x20,
+
  0x03, 0x97, 0xb8, 0x89, 0x37, 0x9f, 0x5a, 0xd6, 0xc0, 0x44, 0x19, 0xdc,
+
  0x67, 0xc3, 0xd0, 0x20, 0xf5, 0xc0, 0xa7, 0x9a, 0xa5, 0xdb, 0x97, 0x5f,
+
  0x60, 0x9e, 0xe5, 0xb8, 0xae, 0x81, 0x70, 0x74, 0x3e, 0x9c, 0x4e, 0x06,
+
  0xe0, 0x20, 0x45, 0x38, 0x96, 0xa7, 0x13, 0x42, 0x95, 0x8d, 0x02, 0x53,
+
  0xe5, 0xaf, 0xe3, 0x69, 0xcd, 0x1f, 0x6b, 0x25, 0x4f, 0x68, 0x11, 0x08,
+
  0x75, 0x15, 0x87, 0x28, 0xd6, 0x3d, 0x48, 0x7a, 0xa3, 0xc1, 0x59, 0x0d,
+
  0x08, 0x15, 0xca, 0xab, 0xf3, 0x08, 0x73, 0x62, 0x91, 0x31, 0x96, 0x1d,
+
  0x45, 0xc2, 0x13, 0xc1, 0xe1, 0xb2, 0x4a, 0x4b, 0xc0, 0x5e, 0x7b, 0x25,
+
  0x38, 0xc2, 0x03, 0xd3, 0x91, 0xd6, 0x5d, 0x5c, 0x78, 0x0d, 0xd0, 0x19,
+
  0x65, 0x00, 0x74, 0x5f, 0x8a, 0x76, 0x77, 0x66, 0x55, 0xcc, 0xd2, 0xc2,
+
  0x67, 0x85, 0x6a, 0x42, 0xdd, 0xec, 0xac, 0xe8, 0x3d, 0xd5, 0x20, 0x5a,
+
  0x09, 0x97, 0xbb, 0x72, 0xa0, 0x67, 0x3d, 0x62, 0x7f, 0x7e, 0xbd, 0xf7,
+
  0xfd, 0xd6, 0xce, 0x01, 0xe7, 0x91, 0xd4, 0xa6, 0x9d, 0xa1, 0xdf, 0x1c,
+
  0x45, 0x47, 0x81, 0x53, 0x8c, 0x20, 0xdb, 0x5e, 0x30, 0xee, 0x6e, 0xb2,
+
  0x53, 0x50, 0x6f, 0x0d, 0xe8, 0x8e, 0x3d, 0xea, 0x8e, 0x6b, 0x77, 0x81,
+
  0xcb, 0x9d, 0x4e, 0x81, 0xe8, 0xf6, 0x4f, 0x42, 0x98, 0xa9, 0xe8, 0x06,
+
  0xe4, 0x26, 0x7f, 0xa3, 0xad, 0x7c, 0xcc, 0xab, 0x04, 0x0b, 0x84, 0xd1,
+
  0x69, 0xe1, 0xf0, 0x76, 0x55, 0x96, 0x4d, 0x98, 0xe7, 0x2d, 0x2d, 0x2e,
+
  0x2c, 0x85, 0x36, 0x2f, 0xaa, 0x8f, 0xe1, 0x0a, 0xdb, 0x1a, 0x81, 0x16,
+
  0x63, 0x8c, 0x6f, 0xad, 0x98, 0x26, 0x7a, 0x31, 0x9f, 0x60, 0xd3, 0x82,
+
  0x64, 0x4b, 0x9c, 0x70, 0x48, 0x18, 0x61, 0xa9, 0x7f, 0x74, 0x44, 0x80,
+
  0x45, 0xba, 0xbb, 0x87, 0xe7, 0x93, 0x93, 0xab, 0x35, 0x8a, 0xf3, 0xff,
+
  0x9c, 0x06, 0x81, 0xb1, 0x2a, 0xfe, 0xfc, 0x76, 0x67, 0x33, 0x45, 0x16,
+
  0xa1, 0xd6, 0xfb, 0xc3, 0xf6, 0x6b, 0xa0, 0x5f, 0xbc, 0xad, 0x25, 0xa1,
+
  0xe1, 0xdd, 0x9b, 0x5e, 0x93, 0x47, 0x21, 0xb8, 0x33, 0xa8, 0x60, 0x81,
+
  0x45, 0x5a, 0xf1, 0xa4, 0xad, 0xcd, 0xd7, 0x05, 0xeb, 0xab, 0x08, 0xbc,
+
  0xc3, 0x45, 0x35, 0x30, 0x74, 0x04, 0x30, 0x9e, 0xcd, 0xed, 0x83, 0xc3,
+
  0x23, 0xdb, 0xbc, 0x4f, 0x73, 0x6b, 0x5a, 0x94, 0xbf, 0x22, 0xb7, 0xf6,
+
  0x21, 0x41, 0x59, 0xb7, 0x5a, 0xdc, 0xff, 0xdd, 0x57, 0x48, 0x18, 0xd4,
+
  0x9f, 0xb6, 0xff, 0x12, 0x88, 0x5c, 0x06, 0x65, 0x79, 0x51, 0x3a, 0x30,
+
  0xd6, 0x2a, 0x12, 0xb5, 0xb8, 0xd1, 0x75, 0x93, 0x66, 0xed, 0xc5, 0xb6,
+
  0xf1, 0x25, 0xd6, 0x52, 0x46, 0x87, 0x41, 0x46, 0x27, 0x64, 0x9f, 0x26,
+
  0xf6, 0xe0, 0x8a, 0x49, 0xf3, 0xd7, 0x24, 0x06, 0x4f, 0xb3, 0x70, 0xf5,
+
  0x60, 0x2b, 0x83, 0x64, 0xe9, 0x78, 0x05, 0x9d, 0xa4, 0x91, 0x95, 0xf9,
+
  0xa8, 0xe5, 0xe0, 0xe6, 0xe7, 0xca, 0x67, 0xa3, 0x20, 0x83, 0x6c, 0x66,
+
  0x5c, 0xa9, 0xcf, 0x5c, 0xe9, 0xc3, 0x44, 0x3b, 0x79, 0x47, 0x65, 0x9e,
+
  0x11, 0xd2, 0x42, 0x63, 0xed, 0xcc, 0x1f, 0xc3, 0x91, 0x81, 0x89, 0xf9,
+
  0xbd, 0x87, 0x45, 0x09, 0xa0, 0x45, 0x4c, 0xdb, 0xca, 0x72, 0x8b, 0xd3,
+
  0x3b, 0x04, 0x25, 0xd8, 0x3c, 0x1d, 0xe0, 0x75, 0xff, 0x78, 0x5c, 0x81,
+
  0xe9, 0x2e, 0xe1, 0x91, 0xd5, 0xee, 0x5a, 0x38, 0xb3, 0x1f, 0x97, 0xdb,
+
  0xc5, 0xab, 0x11, 0x70, 0x10, 0x92, 0xc4, 0x43, 0x9e, 0x03, 0xf0, 0xc9,
+
  0xf0, 0x9d, 0xd9, 0x26, 0x7a, 0xdb, 0x07, 0x41, 0x13, 0x90, 0x1d, 0xf8,
+
  0xfa, 0x02, 0x1d, 0x85, 0x9b, 0xb6, 0xc9, 0x75, 0xed, 0xdb, 0x64, 0x3a,
+
  0x4a, 0x4d, 0xa4, 0x4c, 0x11, 0x98, 0xa6, 0xa6, 0x49, 0xf0, 0x9c, 0xb4,
+
  0xfe, 0x57, 0x32, 0xea, 0xbf, 0x6d, 0x5c, 0x49, 0xa2, 0x12, 0x18, 0xc8,
+
  0x56, 0x39, 0x29, 0x4d, 0x4c, 0x6d, 0xf2, 0xd8, 0xe4, 0x20, 0x46, 0x7e,
+
  0x9c, 0x82, 0xa2, 0x37, 0x62, 0x9d, 0x09, 0xc6, 0x03, 0x11, 0xc3, 0x22,
+
  0xf4, 0x8d, 0xe1, 0x4b, 0x9c, 0xcb, 0xa2, 0xfb, 0x9f, 0x95, 0xd1, 0x5b,
+
  0x8a, 0xb2, 0x28, 0xdf, 0xe1, 0xdf, 0xc3, 0xbd, 0x20, 0x94, 0x86, 0x3f,
+
  0xb6, 0xbf, 0xdb, 0xf9, 0xc9, 0x0c, 0x64, 0x87, 0xd1, 0xc4, 0xa3, 0x30,
+
  0x19, 0x40, 0xc8, 0xc8, 0x95, 0x0c, 0xab, 0x7a, 0x94, 0x18, 0x0b, 0x0c,
+
  0xb7, 0x5f, 0x8a, 0xad, 0x49, 0x15, 0x93, 0x45, 0x05, 0xa1, 0xf3, 0xab,
+
  0x59, 0xda, 0x75, 0x94, 0x1e, 0x5d, 0x86, 0x9d, 0xcc, 0x72, 0x40, 0x53,
+
  0xc1, 0x4c, 0xe6, 0xb8, 0x5a, 0x1c, 0x64, 0x40, 0x61, 0x76, 0x1a, 0x17,
+
  0xaf, 0x5f, 0xb8, 0x45, 0x74, 0x51, 0xaa, 0x76, 0x51, 0x5f, 0x48, 0x50,
+
  0x76, 0x82, 0x80, 0xd3, 0x4e, 0x0c, 0x17, 0x10, 0xff, 0x24, 0x9f, 0xbc,
+
  0x60, 0x1c, 0xb7, 0x44, 0xb8, 0x9a, 0xae, 0xe7, 0xf0, 0x83, 0xfe, 0x7a,
+
  0x3e, 0x6c, 0x2b, 0x50, 0x20, 0x69, 0x76, 0x4c, 0xae, 0xc2, 0x01, 0x00,
+
  0x96, 0x78, 0xa2, 0x75, 0x86, 0x6d, 0x7c, 0x63, 0xd5, 0xc3, 0x14, 0x94,
+
  0x94, 0x89, 0x78, 0x59, 0x67, 0x92, 0xa4, 0x6f, 0xbb, 0x24, 0x16, 0x14,
+
  0xf3, 0x4d, 0xcb, 0x6a, 0x92, 0x75, 0xa9, 0x1d, 0xdf, 0x5a, 0xaf, 0x1b,
+
  0xcd, 0xcf, 0xce, 0xa5, 0x97, 0x4d, 0x06, 0xb8, 0x3e, 0xf5, 0xa3, 0xe6,
+
  0x4b, 0xb0, 0x5b, 0x46, 0x54, 0xe1, 0x11, 0x7c, 0x0e, 0xf2, 0x60, 0xfa,
+
  0x52, 0x79, 0xef, 0xb7, 0xca, 0xe4, 0xb5, 0xc7, 0xf7, 0x7d, 0xeb, 0x71,
+
  0xfa, 0xd2, 0xc5, 0xbd, 0xdf, 0xea, 0x98, 0x06, 0xbe, 0xb8, 0xb8, 0xfd,
+
  0xd3, 0xce, 0x61, 0xd0, 0xac, 0xb6, 0x12, 0xea, 0x1d, 0xeb, 0x51, 0x0d,
+
  0x32, 0xc7, 0x10, 0x7c, 0x0c, 0x65, 0x3c, 0x2d, 0x6f, 0xdd, 0xea, 0x1b,
+
  0xc0, 0xd5, 0x51, 0x1b, 0x20, 0x66, 0x7f, 0x2c, 0xb5, 0xa9, 0xe1, 0x06,
+
  0x11, 0x6b, 0xb8, 0xe4, 0xac, 0x48, 0x52, 0x16, 0x53, 0x73, 0xcd, 0xdc,
+
  0xc4, 0x52, 0xee, 0x92, 0x9d, 0xa8, 0x88, 0xe0, 0xda, 0x22, 0x02, 0x90,
+
  0xfa, 0x5a, 0x0c, 0xb6, 0xd8, 0x50, 0x4b, 0xa9, 0xa0, 0xf5, 0x8e, 0x2c,
+
  0x9f, 0xdc, 0xc0, 0x15, 0x58, 0x84, 0x47, 0x60, 0x2f, 0x35, 0x79, 0xb7,
+
  0xd6, 0xcc, 0x6e, 0x3c, 0xb1, 0x02, 0xf1, 0x54, 0xa2, 0x6c, 0x1d, 0xc5,
+
  0xc1, 0x03, 0x99, 0x62, 0x50, 0x62, 0x86, 0x0d, 0xc0, 0x8a, 0x5a, 0x27,
+
  0x61, 0x12, 0xa7, 0xce, 0xe9, 0xc4, 0xb6, 0x94, 0x00, 0x1b, 0xd8, 0x69,
+
  0x5b, 0x85, 0x14, 0x31, 0xcc, 0x88, 0x9b, 0x64, 0xed, 0x1c, 0x1e, 0xa2,
+
  0xda, 0x69, 0x04, 0xb0, 0x35, 0x9c, 0xdf, 0x86, 0xfa, 0x20, 0x19, 0xf2,
+
  0xfe, 0xb2, 0xb4, 0x0d, 0x1c, 0xbd, 0xef, 0xca, 0xfe, 0x40, 0x2e, 0x27,
+
  0x4d, 0x9f, 0xed, 0xff, 0x6c, 0xd2, 0x22, 0x50, 0xf3, 0x60, 0x61, 0xb9,
+
  0x2c, 0x07, 0xe2, 0x28, 0x93, 0x03, 0xa0, 0x35, 0x51, 0xaf, 0x4b, 0xe1,
+
  0x74, 0x5a, 0x27, 0x5c, 0xdf, 0x01, 0xc4, 0xfd, 0x86, 0x17, 0x20, 0x1f,
+
  0x8d, 0x3d, 0x77, 0xdf, 0x5c, 0x91, 0x31, 0x86, 0xcc, 0x8a, 0x5d, 0xa5,
+
  0xf5, 0x0a, 0x3c, 0xf9, 0x84, 0x7e, 0x60, 0xa9, 0x19, 0x20, 0xa5, 0xb2,
+
  0xd0, 0x16, 0x45, 0xd3, 0xea, 0x23, 0xb8, 0x73, 0x9f, 0x99, 0x10, 0x56,
+
  0xc4, 0x18, 0xc9, 0x5c, 0x5c, 0x07, 0x3a, 0x17, 0x58, 0xd9, 0x42, 0x00,
+
  0x11, 0x94, 0xdb, 0x0b, 0x04, 0xf5, 0x08, 0xa5, 0xd4, 0xb0, 0x10, 0x6d,
+
  0x2d, 0x2a, 0x34, 0x3a, 0x2e, 0x51, 0x26, 0x8f, 0xf8, 0xb7, 0xe5, 0x50,
+
  0xd4, 0x64, 0x5f, 0x4e, 0x8b, 0xf3, 0x94, 0x79, 0x05, 0xd2, 0x5f, 0xd8,
+
  0x74, 0xdb, 0xa5, 0x42, 0x5b, 0xa6, 0x6c, 0x41, 0x6c, 0x41, 0xc2, 0x7a,
+
  0x18, 0x07, 0x71, 0xe2, 0x4f, 0xb3, 0xe2, 0x4a, 0x6d, 0xd1, 0x90, 0x68,
+
  0xed, 0xc9, 0xdc, 0xd6, 0xf0, 0x5a, 0xda, 0x58, 0x1a, 0x60, 0x7b, 0x57,
+
  0x6b, 0x4f, 0xb3, 0x6d, 0x4c, 0xa2, 0x74, 0xd9, 0xa0, 0x3c, 0xf3, 0x2c,
+
  0x3c, 0xf3, 0x63, 0x05, 0x2c, 0x55, 0x35, 0x03, 0x8f, 0xab, 0xab, 0x81,
+
  0x0e, 0x5d, 0xbf, 0x61, 0x88, 0xab, 0x20, 0x11, 0x0b, 0x80, 0xb8, 0xf5,
+
  0x18, 0x74, 0x41, 0xf7, 0x3c, 0x3c, 0x47, 0x5f, 0x81, 0x21, 0x8a, 0x35,
+
  0x0e, 0xcc, 0x70, 0xd8, 0x77, 0xc2, 0xd0, 0xec, 0x44, 0xf9, 0x0e, 0x69,
+
  0xd6, 0x92, 0x28, 0x6c, 0x5f, 0xd8, 0x4b, 0x9e, 0x73, 0x9d, 0x84, 0x8e,
+
  0x62, 0x4a, 0xd3, 0xf1, 0x49, 0x25, 0xb5, 0xa9, 0x5d, 0x55, 0x20, 0xde,
+
  0x91, 0x80, 0xa3, 0xe3, 0xad, 0x31, 0x32, 0xf6, 0xba, 0xc5, 0x9b, 0x11,
+
  0x2d, 0x7b, 0x0c, 0x0a, 0x17, 0x51, 0x6a, 0xdc, 0xd7, 0xc9, 0x13, 0x63,
+
  0x47, 0xa4, 0xb8, 0xd8, 0x0c, 0x89, 0xcf, 0x91, 0x32, 0x88, 0x00, 0x62,
+
  0x59, 0xc6, 0x9e, 0xea, 0xcd, 0xb3, 0xb6, 0x92, 0xcc, 0x0e, 0x59, 0xcb,
+
  0x5c, 0x54, 0x94, 0x8b, 0x16, 0x69, 0xae, 0xec, 0x4f, 0xec, 0xba, 0x16,
+
  0x57, 0x8a, 0x5b, 0xd4, 0x6d, 0xd1, 0x19, 0x54, 0xae, 0xc6, 0x5c, 0x18,
+
  0xf1, 0x24, 0xfa, 0x40, 0x72, 0xca, 0xeb, 0x3a, 0x41, 0xa6, 0x68, 0xc7,
+
  0xea, 0x2d, 0x52, 0x2b, 0x18, 0xae, 0x01, 0xf2, 0x4d, 0x07, 0xc3, 0xd1,
+
  0x52, 0xda, 0x8b, 0xa9, 0x27, 0x3a, 0xd6, 0x47, 0xb4, 0x21, 0xaf, 0xea,
+
  0x90, 0xaf, 0xb9, 0xb9, 0xfb, 0x1b, 0xbd, 0x9e, 0x6d, 0xed, 0x66, 0xdc,
+
  0xc5, 0xb8, 0x8d, 0x1a, 0xaf, 0xc9, 0x7a, 0x9d, 0x5a, 0x8f, 0x84, 0x53,
+
  0xc1, 0x8b, 0x8b, 0x0b, 0x31, 0x6b, 0x84, 0x6d, 0x83, 0x3f, 0x6c, 0x49,
+
  0x5d, 0x86, 0x7c, 0x32, 0x3e, 0x9b, 0x6b, 0xae, 0x8c, 0x2d, 0x8c, 0xaf,
+
  0x4c, 0x5c, 0x18, 0x5b, 0x19, 0xb1, 0x22, 0x70, 0xa9, 0x88, 0x3f, 0x6c,
+
  0xfc, 0x96, 0x86, 0xd3, 0x8f, 0x57, 0x38, 0xfc, 0xd6, 0xeb, 0x7a, 0x73,
+
  0x46, 0xef, 0x64, 0xc0, 0xed, 0xcf, 0x9e, 0xd1, 0xbb, 0x99, 0x19, 0x3d,
+
  0xca, 0xda, 0x2e, 0xd6, 0xd6, 0x9e, 0x2a, 0x2e, 0x96, 0x2e, 0x57, 0x42,
+
  0xf5, 0x49, 0xeb, 0x78, 0xae, 0xc3, 0x3c, 0xd0, 0x64, 0xdb, 0xa1, 0x09,
+
  0x0c, 0xbd, 0xe1, 0xc7, 0xda, 0xb0, 0xc2, 0x89, 0x50, 0x86, 0x90, 0xf3,
+
  0x5c, 0xc4, 0x83, 0xee, 0x27, 0x5d, 0x25, 0xda, 0x40, 0x86, 0x48, 0x81,
+
  0xbe, 0x46, 0x75, 0xd0, 0xd1, 0x24, 0x7a, 0x99, 0xad, 0x3b, 0x6b, 0x1c,
+
  0xec, 0x42, 0xe1, 0x4e, 0x35, 0xd3, 0x62, 0x83, 0xdc, 0x6b, 0x50, 0x5d,
+
  0x0a, 0x4f, 0x14, 0x5d, 0x32, 0xca, 0x5f, 0x04, 0x49, 0x45, 0x08, 0xce,
+
  0x25, 0xb6, 0x65, 0x50, 0xde, 0x28, 0x2e, 0x07, 0x15, 0xab, 0xba, 0x10,
+
  0x13, 0x7b, 0x38, 0x13, 0xe7, 0xd5, 0x10, 0xb6, 0x6f, 0x09, 0x96, 0x34,
+
  0xe3, 0x34, 0xcc, 0x4b, 0x6a, 0x38, 0xf6, 0xf8, 0x05, 0xed, 0xad, 0x16,
+
  0x67, 0xab, 0x8c, 0x32, 0x03, 0xc3, 0x68, 0xf8, 0x5d, 0x39, 0xec, 0xa7,
+
  0xb6, 0x26, 0xbe, 0x00, 0xd0, 0xbe, 0xa4, 0xdc, 0x61, 0x37, 0x59, 0x16,
+
  0x3b, 0xb4, 0x5e, 0x80, 0x58, 0xd2, 0xa8, 0x01, 0x48, 0x2e, 0xcf, 0x6a,
+
  0x7b, 0xe0, 0x61, 0xfb, 0x60, 0x19, 0xe5, 0x40, 0x51, 0x8e, 0xf6, 0xe8,
+
  0x2a, 0xcd, 0x62, 0x7e, 0xce, 0x84, 0x20, 0xb3, 0x3c, 0x24, 0x6b, 0xe0,
+
  0xf9, 0xcc, 0x80, 0x3c, 0xd3, 0xe8, 0xa1, 0xf1, 0xa6, 0x58, 0xaa, 0x55,
+
  0x9c, 0xcb, 0xfc, 0xe2, 0x60, 0xfb, 0xf0, 0x80, 0x39, 0x0e, 0x76, 0xfa,
+
  0x96, 0x71, 0x2a, 0x05, 0x53, 0x46, 0x99, 0x84, 0xde, 0xa8, 0x76, 0x1c,
+
  0xa5, 0x1a, 0x9f, 0xef, 0x96, 0x7c, 0xb4, 0x57, 0x2c, 0x47, 0x56, 0x19,
+
  0x40, 0x4c, 0x41, 0x48, 0x99, 0xd1, 0xda, 0x9a, 0xee, 0x7a, 0x98, 0xde,
+
  0x79, 0xa5, 0x17, 0x85, 0xc2, 0x0d, 0xa8, 0xa4, 0x11, 0xa1, 0x4c, 0x18,
+
  0x0b, 0x61, 0x37, 0xb2, 0x64, 0xf3, 0x8d, 0xb2, 0x64, 0x5c, 0xbb, 0xde,
+
  0xa4, 0x47, 0xb7, 0xb1, 0xb1, 0xfd, 0x84, 0x0d, 0x1d, 0xb3, 0x9c, 0xca,
+
  0xa3, 0x95, 0x15, 0x1a, 0x22, 0x8e, 0x03, 0x33, 0x32, 0x39, 0x43, 0x9a,
+
  0xc2, 0xb4, 0x01, 0x5e, 0xc2, 0x75, 0xa7, 0x5c, 0x55, 0x43, 0x0e, 0xee,
+
  0x74, 0xb0, 0x0a, 0x09, 0x3e, 0x21, 0x27, 0x80, 0x83, 0xfc, 0x23, 0x21,
+
  0x44, 0x74, 0x1d, 0xb2, 0x33, 0xc6, 0xa1, 0x0a, 0xc2, 0x88, 0x16, 0x5c,
+
  0xc9, 0xec, 0x45, 0xb4, 0xcb, 0x68, 0x04, 0x05, 0x30, 0x37, 0x73, 0xb6,
+
  0xb7, 0xf6, 0x38, 0xde, 0x79, 0xee, 0x5b, 0x60, 0x39, 0x4b, 0xcd, 0xc7,
+
  0xa2, 0xaf, 0x42, 0xcb, 0x57, 0x27, 0x9c, 0xfa, 0xe6, 0x0a, 0x9e, 0x1e,
+
  0x88, 0x0e, 0x7a, 0x25, 0x91, 0x92, 0x7b, 0x87, 0x7b, 0x07, 0xb6, 0x39,
+
  0xd6, 0x01, 0xce, 0xdc, 0x01, 0xf0, 0xf8, 0x74, 0xec, 0xef, 0x14, 0xb4,
+
  0x74, 0xac, 0x88, 0x64, 0x76, 0x22, 0xec, 0x79, 0x10, 0xfb, 0x9e, 0x9c,
+
  0x1a, 0x41, 0xff, 0xc4, 0xb6, 0x2b, 0x0e, 0x68, 0xe8, 0xd1, 0xd2, 0x66,
+
  0x4d, 0xbe, 0xc9, 0xa9, 0x06, 0x94, 0xbd, 0xe7, 0x52, 0xa3, 0xf2, 0x45,
+
  0xbd, 0x54, 0x5d, 0xb7, 0xc2, 0xd7, 0x0c, 0x97, 0x08, 0x0f, 0xf6, 0xc3,
+
  0xf9, 0x90, 0x2c, 0xe6, 0x52, 0x02, 0xbb, 0x5c, 0x9c, 0xa4, 0x5d, 0x41,
+
  0xaf, 0x0f, 0x13, 0x71, 0x55, 0x9c, 0xb3, 0xdb, 0x6d, 0x7f, 0xef, 0xe0,
+
  0xd0, 0xef, 0x36, 0xf4, 0xc1, 0x2f, 0x8a, 0x06, 0x41, 0x23, 0x1b, 0x9e,
+
  0x0a, 0x74, 0x44, 0x44, 0xa9, 0x93, 0x00, 0x96, 0x89, 0xbd, 0xa7, 0xaf,
+
  0xb5, 0xa1, 0xb8, 0x87, 0xe3, 0xa4, 0x35, 0x3a, 0x62, 0xda, 0x33, 0xbe,
+
  0x20, 0x13, 0xb7, 0xc2, 0x0f, 0x3a, 0x9a, 0xd5, 0x99, 0xc3, 0x08, 0x9e,
+
  0x79, 0xb0, 0xdd, 0x3b, 0x54, 0x3d, 0x0b, 0x7f, 0xce, 0x0c, 0x4a, 0x10,
+
  0x7e, 0xf5, 0x4b, 0xb3, 0x1c, 0x2c, 0x2e, 0x80, 0xfb, 0x20, 0x0b, 0x01,
+
  0x56, 0x41, 0x34, 0xea, 0x61, 0x5e, 0xd6, 0xdb, 0xba, 0x1d, 0x26, 0x41,
+
  0xeb, 0xd4, 0x4d, 0xe5, 0x21, 0xe2, 0x17, 0x2d, 0x6d, 0xb3, 0x15, 0xc4,
+
  0x06, 0x19, 0x8d, 0x82, 0x7d, 0xf2, 0xed, 0x47, 0x7e, 0x14, 0xc1, 0xb3,
+
  0xf5, 0xe5, 0x1d, 0xc1, 0x71, 0x1e, 0xf0, 0xcb, 0x8e, 0x6d, 0x2c, 0x59,
+
  0xaa, 0xec, 0xa3, 0x61, 0x6e, 0xb1, 0x89, 0xc7, 0x6a, 0xc6, 0x36, 0x49,
+
  0x21, 0x19, 0x01, 0xbe, 0xb6, 0x5c, 0x2f, 0xca, 0x17, 0x29, 0x6d, 0xac,
+
  0x83, 0x10, 0x5f, 0x95, 0xa7, 0x31, 0x27, 0x52, 0xe6, 0x99, 0x31, 0x50,
+
  0x75, 0x62, 0x50, 0xa6, 0x28, 0xc7, 0x03, 0xc4, 0xda, 0x85, 0xc3, 0x3b,
+
  0x16, 0x90, 0x23, 0x4d, 0x8a, 0xd4, 0xe6, 0xc8, 0x94, 0x61, 0x9b, 0x39,
+
  0x49, 0xe4, 0xcf, 0xf2, 0x54, 0x19, 0x6a, 0x14, 0x23, 0x61, 0x29, 0x77,
+
  0x86, 0xda, 0x2d, 0xf6, 0xe1, 0xb3, 0xe2, 0x9d, 0x5f, 0xff, 0x41, 0x5b,
+
  0x02, 0xd1, 0x22, 0x32, 0xc1, 0x21, 0xb4, 0xfa, 0xe1, 0xf4, 0x30, 0x56,
+
  0x81, 0x7f, 0x26, 0x6a, 0x50, 0x3e, 0xa1, 0xe7, 0xf6, 0x5e, 0x1d, 0xc6,
+
  0x0a, 0x8c, 0xb0, 0xf4, 0xd7, 0x47, 0x24, 0x0b, 0x2b, 0x85, 0xe6, 0xdc,
+
  0x0c, 0x87, 0x49, 0x8b, 0xf8, 0x9d, 0x4a, 0x17, 0x5e, 0x2e, 0x2d, 0xe3,
+
  0x7a, 0xd6, 0x0a, 0x78, 0xe7, 0x86, 0xae, 0x00, 0x2a, 0x25, 0x05, 0x3a,
+
  0x86, 0xfc, 0x11, 0x9a, 0xa1, 0x67, 0xd5, 0xcd, 0x3b, 0x59, 0x88, 0x23,
+
  0x97, 0x4c, 0x6b, 0xee, 0x58, 0x01, 0x2a, 0x6d, 0x0f, 0xe4, 0xe3, 0xfb,
+
  0xed, 0x5c, 0x3d, 0x1b, 0x83, 0xa6, 0x34, 0x0b, 0x28, 0x4a, 0x10, 0x04,
+
  0x19, 0x8a, 0x1a, 0x94, 0xde, 0x89, 0x73, 0xf4, 0x47, 0x8f, 0xad, 0x95,
+
  0x33, 0x80, 0x16, 0x7a, 0x33, 0xf1, 0x88, 0x87, 0xd3, 0x2d, 0x25, 0xac,
+
  0xfa, 0xfe, 0x54, 0x26, 0xf8, 0x27, 0xdc, 0xf5, 0x11, 0x36, 0xf2, 0x70,
+
  0x04, 0x3d, 0x07, 0xd1, 0x13, 0x9e, 0x80, 0xdf, 0x95, 0x18, 0xbe, 0xc4,
+
  0xcc, 0xe7, 0x3f, 0xc5, 0xa2, 0xe4, 0x06, 0xdf, 0x78, 0x59, 0x7e, 0xec,
+
  0x5f, 0x4e, 0x2f, 0xc3, 0xf5, 0xc0, 0x34, 0x60, 0x6b, 0xfa, 0x19, 0x75,
+
  0x4e, 0x49, 0xf5, 0xb6, 0xca, 0x4d, 0x91, 0x0d, 0x8d, 0x5c, 0x35, 0xb2,
+
  0x4c, 0xea, 0xc0, 0x68, 0x04, 0x8a, 0x84, 0x82, 0x36, 0x75, 0xab, 0x52,
+
  0x40, 0x84, 0xcb, 0xc5, 0x05, 0x11, 0xb5, 0x22, 0x84, 0x5b, 0x2c, 0x90,
+
  0x45, 0xd1, 0x45, 0x9f, 0x94, 0xdf, 0x0c, 0x51, 0x5e, 0x2e, 0xc9, 0x7f,
+
  0x50, 0xa6, 0x09, 0xbd, 0x80, 0x0f, 0x2f, 0x2e, 0x08, 0x86, 0x13, 0xf3,
+
  0xe1, 0x53, 0xe4, 0xe0, 0x47, 0xcf, 0x69, 0x85, 0x50, 0x15, 0x15, 0x21,
+
  0x8a, 0x00, 0xf6, 0xcd, 0xe2, 0x97, 0x1e, 0xaf, 0x69, 0x48, 0x80, 0x5e,
+
  0x03, 0x76, 0xc4, 0x45, 0x6a, 0x0c, 0xeb, 0x07, 0x6c, 0xd3, 0xf3, 0xb6,
+
  0x46, 0x80, 0x58, 0xe5, 0x6a, 0x2b, 0x69, 0x43, 0xe5, 0x30, 0x3b, 0xcc,
+
  0x8f, 0xd7, 0xed, 0x30, 0x8f, 0x6f, 0xae, 0x68, 0xd6, 0x3d, 0x87, 0x70,
+
  0xd8, 0xa4, 0xc2, 0xc7, 0x60, 0x1b, 0x9b, 0x72, 0x38, 0x20, 0xf9, 0xcc,
+
  0xbe, 0x51, 0xd6, 0x89, 0x97, 0x8b, 0xaf, 0xa4, 0xf7, 0x5a, 0x25, 0xe6,
+
  0x0d, 0x33, 0xfc, 0xe2, 0x92, 0xb4, 0xc7, 0x9e, 0xe8, 0x63, 0xf4, 0xf5,
+
  0x0e, 0x35, 0xc5, 0xeb, 0xb6, 0x87, 0x29, 0x37, 0x99, 0xb8, 0x68, 0x37,
+
  0xbf, 0x5c, 0xb3, 0x49, 0xb2, 0xb1, 0x3d, 0xfd, 0x3c, 0xd3, 0x4d, 0xc1,
+
  0x93, 0xe3, 0xde, 0x73, 0x06, 0xfd, 0xab, 0x0b, 0x27, 0xe9, 0x27, 0xb8,
+
  0x53, 0xf6, 0x91, 0xb7, 0x9c, 0xa6, 0x2d, 0x47, 0x4c, 0xbd, 0x04, 0x4c,
+
  0xdb, 0xce, 0x86, 0x90, 0xd5, 0xe6, 0x46, 0x06, 0x62, 0x63, 0xcd, 0x89,
+
  0xb5, 0x23, 0x4c, 0x67, 0x74, 0x3e, 0xec, 0xff, 0x5c, 0x9d, 0xc6, 0x8b,
+
  0x84, 0xa5, 0xf1, 0xc2, 0x0c, 0xed, 0xc9, 0x75, 0xee, 0x3a, 0xc9, 0x57,
+
  0x64, 0x3e, 0x66, 0xf1, 0x23, 0xa6, 0x4e, 0x5c, 0x6b, 0xf2, 0xd4, 0x23,
+
  0xde, 0xe2, 0x26, 0x25, 0xe1, 0x66, 0xc0, 0x14, 0xa4, 0x9a, 0x58, 0xc6,
+
  0x77, 0x9e, 0x90, 0x3f, 0xeb, 0x8a, 0xd3, 0x22, 0x21, 0xe5, 0xdd, 0xc8,
+
  0x72, 0x6a, 0xc2, 0x51, 0x5c, 0x8b, 0x6f, 0xaf, 0x6c, 0x5c, 0xde, 0x4f,
+
  0x9e, 0xdc, 0x62, 0x45, 0x61, 0x57, 0xdb, 0xdc, 0x68, 0x7b, 0xf4, 0xa9,
+
  0xd2, 0x61, 0xac, 0xa0, 0x6e, 0x99, 0x20, 0xed, 0x44, 0xb5, 0x73, 0x96,
+
  0x26, 0x6a, 0x28, 0xe9, 0x4f, 0xb9, 0x94, 0x76, 0xcd, 0xec, 0xcb, 0xa0,
+
  0x5f, 0x17, 0x7d, 0x23, 0xf1, 0x27, 0xd8, 0xe4, 0xef, 0xe8, 0x20, 0x8b,
+
  0x12, 0xe0, 0xb0, 0x38, 0xcc, 0xe0, 0xcc, 0xf8, 0xe0, 0x73, 0xee, 0x98,
+
  0x71, 0x73, 0xd7, 0x23, 0xe6, 0x3e, 0xfc, 0x74, 0x25, 0x4a, 0x35, 0xa7,
+
  0x88, 0xc2, 0x12, 0xb8, 0xd5, 0xf9, 0xcf, 0x62, 0xef, 0x76, 0x06, 0x00,
+
  0xc4, 0x1f, 0xc8, 0xcf, 0x4d, 0x2e, 0xfa, 0x74, 0x2d, 0xe1, 0x2b, 0x87,
+
  0xe9, 0x35, 0x5d, 0xec, 0x6c, 0xd9, 0x33, 0xeb, 0x36, 0x0f, 0xab, 0x55,
+
  0x4a, 0x75, 0xbd, 0x2e, 0x96, 0xf0, 0xc2, 0xb2, 0x3d, 0x85, 0x7d, 0xdd,
+
  0x1d, 0x09, 0x48, 0x3c, 0xf3, 0x76, 0xf2, 0x9f, 0x9f, 0x26, 0x14, 0x6f,
+
  0x02, 0x9b, 0x65, 0xd9, 0x2b, 0xe5, 0x15, 0x4b, 0xb0, 0xfc, 0xff, 0xc1,
+
  0x6c, 0x12, 0x2c, 0x6a, 0x55, 0xff, 0xc1, 0x5b, 0x78, 0xa6, 0x3b, 0xe5,
+
  0x76, 0x89, 0xa4, 0x66, 0xae, 0x72, 0x21, 0x46, 0x42, 0x65, 0x46, 0x05,
+
  0x7b, 0x19, 0x4b, 0x1c, 0x2e, 0x9a, 0xe9, 0x30, 0x9e, 0x1c, 0x91, 0xb1,
+
  0x15, 0xcd, 0xec, 0x34, 0xad, 0x76, 0xd8, 0xeb, 0xfd, 0x60, 0xea, 0xb4,
+
  0xd9, 0x6a, 0x56, 0x32, 0x8a, 0xaa, 0x2f, 0xa6, 0x13, 0x5e, 0xe3, 0x3e,
+
  0x85, 0x0c, 0xfc, 0x83, 0x6f, 0xac, 0x65, 0x87, 0x96, 0x62, 0xc2, 0x66,
+
  0x18, 0x9e, 0xa8, 0x30, 0xdc, 0x6a, 0xb1, 0xc3, 0x5f, 0x8f, 0x47, 0x62,
+
  0xc0, 0x80, 0xca, 0xab, 0xef, 0xf2, 0x6e, 0x43, 0x8c, 0xf1, 0x58, 0x03,
+
  0x20, 0x32, 0xf2, 0x7e, 0xf6, 0x48, 0x57, 0x82, 0x92, 0x63, 0x50, 0x84,
+
  0x8a, 0xb9, 0x8a, 0xcf, 0x33, 0x9c, 0x9f, 0x37, 0xfd, 0x5a, 0x8c, 0xf9,
+
  0x81, 0x5c, 0x0e, 0x0e, 0x7b, 0xfb, 0xc5, 0x66, 0xaf, 0xfa, 0xa7, 0x86,
+
  0xc5, 0xd8, 0x11, 0x7f, 0xf6, 0x64, 0xde, 0x83, 0x3d, 0xb5, 0x27, 0xec,
+
  0x78, 0xb2, 0x80, 0x3f, 0xff, 0x94, 0x44, 0x63, 0x16, 0x3c, 0x51, 0xca,
+
  0x31, 0x16, 0x1e, 0xfa, 0x41, 0x5c, 0xf5, 0x67, 0xcf, 0x4c, 0xa0, 0xbc,
+
  0x98, 0x0e, 0xdf, 0xfb, 0x95, 0xaf, 0x95, 0x78, 0x6c, 0x0b, 0xec, 0xe1,
+
  0xe7, 0x42, 0x40, 0x89, 0x69, 0xc5, 0x23, 0x6e, 0xdb, 0xaa, 0x8b, 0xb9,
+
  0xbd, 0x26, 0xb0, 0x8f, 0xa9, 0x4f, 0xf4, 0xf9, 0x8a, 0xf2, 0x7e, 0x2d,
+
  0x95, 0xf0, 0xbe, 0xba, 0x49, 0x41, 0x58, 0x25, 0xc8, 0xf0, 0xaa, 0x3f,
+
  0x84, 0x7a, 0x17, 0x1f, 0xb1, 0x97, 0x79, 0x46, 0x86, 0x82, 0x1b, 0xcf,
+
  0x9d, 0x4c, 0xb8, 0xa6, 0xe0, 0x4d, 0xd9, 0x93, 0xd8, 0xd1, 0x1e, 0x5c,
+
  0x05, 0x97, 0x4a, 0x3b, 0x7d, 0xf1, 0x15, 0x3c, 0x6c, 0xea, 0xf5, 0xfa,
+
  0xfc, 0xba, 0xd0, 0x1c, 0xaa, 0xab, 0xcc, 0x13, 0x4b, 0xc4, 0x5b, 0xc9,
+
  0x0b, 0x8d, 0x50, 0xd8, 0x2a, 0x0f, 0xe9, 0xcb, 0x8f, 0xe4, 0xe5, 0x46,
+
  0xe9, 0x03, 0x6f, 0xc7, 0xf5, 0xd5, 0xc6, 0x3d, 0xf8, 0xfc, 0x31, 0xad,
+
  0xbd, 0xa9, 0x29, 0xc2, 0x2d, 0x11, 0xa9, 0x29, 0x02, 0xc1, 0x03, 0x6a,
+
  0x84, 0xb0, 0xd4, 0x13, 0x37, 0x41, 0x98, 0x0d, 0x42, 0x02, 0xdc, 0x2c,
+
  0x54, 0x85, 0x21, 0x2e, 0xb7, 0x1b, 0x21, 0x68, 0x85, 0x90, 0x6c, 0xa2,
+
  0xcc, 0x08, 0x21, 0xe5, 0x19, 0x72, 0x33, 0xc4, 0x73, 0x10, 0x1c, 0x7d,
+
  0xf4, 0x69, 0x5c, 0x80, 0x8b, 0xdf, 0x8c, 0x5f, 0x90, 0x46, 0xe0, 0x2c,
+
  0x60, 0xb1, 0xb5, 0x08, 0x6d, 0x1a, 0x86, 0xc3, 0xd8, 0x13, 0xa9, 0x85,
+
  0x75, 0xa3, 0x46, 0x8f, 0xae, 0xf8, 0xfc, 0xfb, 0x1e, 0x5d, 0x2b, 0x8e,
+
  0x26, 0xbe, 0x66, 0x11, 0xc9, 0x61, 0xce, 0x4d, 0x25, 0xe4, 0xb9, 0xb2,
+
  0x25, 0x58, 0x88, 0x1d, 0xda, 0x21, 0x5b, 0xcf, 0x67, 0x5c, 0xcf, 0x93,
+
  0x01, 0x4a, 0x05, 0x77, 0xb8, 0x57, 0x29, 0x81, 0xf4, 0xeb, 0x28, 0x03,
+
  0xd3, 0xe6, 0xa8, 0x09, 0xe7, 0xe6, 0x3d, 0x4e, 0x20, 0xdf, 0xa4, 0x39,
+
  0xb2, 0xfa, 0xd1, 0x80, 0x58, 0xc4, 0xb5, 0x20, 0x60, 0xfb, 0x56, 0x9e,
+
  0x95, 0x13, 0x17, 0x65, 0xcd, 0xfa, 0xb9, 0xc2, 0xee, 0x1d, 0x04, 0x9e,
+
  0x57, 0xa0, 0x94, 0x4e, 0x38, 0x0f, 0xd7, 0x9f, 0x55, 0x7c, 0x61, 0x0c,
+
  0x52, 0x29, 0xa0, 0x65, 0xe6, 0x19, 0xfd, 0x09, 0x87, 0x1a, 0x11, 0x4a,
+
  0xd1, 0x96, 0x50, 0x5b, 0x99, 0x3c, 0xf5, 0xbf, 0xa8, 0x5c, 0x05, 0xb2,
+
  0xa2, 0x6f, 0xc0, 0xea, 0x7e, 0xd5, 0xaa, 0xee, 0x19, 0x30, 0xf3, 0xe2,
+
  0x42, 0xd8, 0x7c, 0x71, 0xd6, 0x21, 0x42, 0x8a, 0x06, 0xbd, 0x21, 0x28,
+
  0x40, 0xed, 0x44, 0xa1, 0xcb, 0x57, 0x6f, 0xbf, 0xef, 0xb9, 0x2f, 0x12,
+
  0xe2, 0x66, 0xf5, 0x11, 0x3a, 0x71, 0x25, 0xa5, 0x03, 0x6f, 0x9c, 0x50,
+
  0x44, 0xe0, 0x10, 0x83, 0x63, 0x3d, 0x3d, 0xbe, 0x84, 0x53, 0x6f, 0x28,
+
  0xf9, 0x14, 0x9e, 0x2d, 0x12, 0x9e, 0x85, 0x9c, 0xf9, 0x8d, 0xf8, 0x7b,
+
  0x50, 0xbc, 0x83, 0x55, 0x3b, 0x10, 0x4f, 0x39, 0x2c, 0xbe, 0xef, 0x4f,
+
  0x7e, 0x98, 0x1e, 0xbf, 0x70, 0x37, 0xde, 0x79, 0x68, 0x6f, 0x7a, 0xcc,
+
  0x6a, 0xb8, 0x68, 0x55, 0xfe, 0x61, 0x7b, 0xf5, 0xe2, 0xe2, 0xc6, 0xdb,
+
  0xc3, 0x1f, 0xf6, 0x0e, 0x74, 0x60, 0x5b, 0xe5, 0x30, 0x2c, 0x5c, 0xd1,
+
  0x9b, 0x54, 0xc3, 0xc0, 0xfc, 0xce, 0x8d, 0x56, 0x18, 0x6e, 0x8c, 0x63,
+
  0x36, 0x1a, 0x2b, 0x42, 0x09, 0xb1, 0x32, 0x2f, 0x46, 0x83, 0x18, 0xaf,
+
  0x4a, 0xbb, 0x2f, 0xb2, 0x41, 0x46, 0x12, 0x3d, 0xc8, 0xf6, 0x32, 0x44,
+
  0x48, 0x0b, 0xc0, 0x2e, 0x0e, 0x7f, 0xd8, 0xd8, 0xfd, 0x53, 0xcf, 0xfc,
+
  0xc4, 0x3f, 0xfe, 0xf8, 0x63, 0xee, 0x75, 0xa4, 0x90, 0x5e, 0x57, 0x8b,
+
  0x8b, 0xbd, 0xed, 0xed, 0x62, 0xe3, 0x75, 0x6f, 0x4f, 0x7e, 0x3e, 0x9b,
+
  0x5c, 0x15, 0x4b, 0xab, 0xcb, 0x41, 0xde, 0x45, 0x0c, 0x6d, 0xf8, 0x6b,
+
  0x71, 0xf1, 0xff, 0x01, 0x64, 0x0e, 0x63, 0x15, 0xed, 0xf3, 0x03, 0x00,
+
 
};
#define BUF_SIZE 0x10000
static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
modified external/curl/src/tool_hugehelp.h
@@ -25,9 +25,13 @@
 ***************************************************************************/
#include "tool_setup.h"

-
#ifdef USE_MANUAL
void showhelp(const char *trigger, const char *arg, const char *endarg);
+

+
#ifdef USE_MANUAL
void hugehelp(void);
+
#else
+
/* do nothing if not there */
+
#define hugehelp()
#endif

#endif /* HEADER_CURL_TOOL_HUGEHELP_H */
modified external/curl/src/tool_libinfo.c
@@ -77,7 +77,6 @@ bool feature_http2 = FALSE;
bool feature_http3 = FALSE;
bool feature_httpsproxy = FALSE;
bool feature_libz = FALSE;
-
bool feature_libssh2 = FALSE;
bool feature_ntlm = FALSE;
bool feature_ntlm_wb = FALSE;
bool feature_spnego = FALSE;
@@ -85,7 +84,6 @@ bool feature_ssl = FALSE;
bool feature_tls_srp = FALSE;
bool feature_zstd = FALSE;
bool feature_ech = FALSE;
-
bool feature_ssls_export = FALSE;

static struct feature_name_presentp {
  const char   *feature_name;
@@ -117,7 +115,6 @@ static struct feature_name_presentp {
  {"SPNEGO",         &feature_spnego,     CURL_VERSION_SPNEGO},
  {"SSL",            &feature_ssl,        CURL_VERSION_SSL},
  {"SSPI",           NULL,                CURL_VERSION_SSPI},
-
  {"SSLS-EXPORT",    &feature_ssls_export, 0},
  {"threadsafe",     NULL,                CURL_VERSION_THREADSAFE},
  {"TLS-SRP",        &feature_tls_srp,    CURL_VERSION_TLSAUTH_SRP},
  {"TrackMemory",    NULL,                CURL_VERSION_CURLDEBUG},
@@ -191,8 +188,6 @@ CURLcode get_libcurl_info(void)
    ++feature_count;
  }

-
  feature_libssh2 = curlinfo->libssh_version &&
-
    !strncmp("libssh2", curlinfo->libssh_version, 7);
  return CURLE_OK;
}

modified external/curl/src/tool_libinfo.h
@@ -55,7 +55,6 @@ extern bool feature_http2;
extern bool feature_http3;
extern bool feature_httpsproxy;
extern bool feature_libz;
-
extern bool feature_libssh2;
extern bool feature_ntlm;
extern bool feature_ntlm_wb;
extern bool feature_spnego;
@@ -63,7 +62,6 @@ extern bool feature_ssl;
extern bool feature_tls_srp;
extern bool feature_zstd;
extern bool feature_ech;
-
extern bool feature_ssls_export;

CURLcode get_libcurl_info(void);
const char *proto_token(const char *proto);
modified external/curl/src/tool_listhelp.c
@@ -67,7 +67,7 @@ const struct helptxt helptext[] = {
   "Verify server cert status OCSP-staple",
   CURLHELP_TLS},
  {"    --cert-type <type>",
-
   "Certificate type (DER/PEM/ENG/PROV/P12)",
+
   "Certificate type (DER/PEM/ENG/P12)",
   CURLHELP_TLS},
  {"    --ciphers <list>",
   "TLS 1.2 (1.1, 1.0) ciphers to use",
@@ -715,9 +715,6 @@ const struct helptxt helptext[] = {
  {"    --ssl-revoke-best-effort",
   "Ignore missing cert CRL dist points",
   CURLHELP_TLS},
-
  {"    --ssl-sessions <filename>",
-
   "Load/save SSL session tickets from/to this file",
-
   CURLHELP_TLS},
  {"-2, --sslv2",
   "SSLv2",
   CURLHELP_DEPRECATED},
modified external/curl/src/tool_main.c
@@ -63,15 +63,6 @@
int vms_show = 0;
#endif

-
#if defined(__AMIGA__)
-
#if defined(__GNUC__)
-
#define CURL_USED __attribute__((used))
-
#else
-
#define CURL_USED
-
#endif
-
static const char CURL_USED min_stack[] = "$STACK:16384";
-
#endif
-

#ifdef __MINGW32__
/*
 * There seems to be no way to escape "*" in command-line arguments with MinGW
@@ -151,7 +142,7 @@ static CURLcode main_init(struct GlobalConfig *config)
{
  CURLcode result = CURLE_OK;

-
#ifdef __DJGPP__
+
#if defined(__DJGPP__) || defined(__GO32__)
  /* stop stat() wasting time */
  _djstat_flags |= _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
#endif
modified external/curl/src/tool_operate.c
@@ -87,7 +87,6 @@
#include "tool_parsecfg.h"
#include "tool_setopt.h"
#include "tool_sleep.h"
-
#include "tool_ssls.h"
#include "tool_urlglob.h"
#include "tool_util.h"
#include "tool_writeout.h"
@@ -112,6 +111,12 @@ extern const unsigned char curl_ca_embed[];
#endif
#endif

+
#ifndef O_BINARY
+
/* since O_BINARY as used in bitmasks, setting it to zero makes it usable in
+
   source code but yet it does not ruin anything */
+
#  define O_BINARY 0
+
#endif
+

#ifndef SOL_IP
#  define SOL_IP IPPROTO_IP
#endif
@@ -374,16 +379,16 @@ static CURLcode pre_transfer(struct GlobalConfig *global,
      case FAB$C_VAR:
      case FAB$C_VFC:
      case FAB$C_STMCR:
-
        per->infd = open(per->uploadfile, O_RDONLY | CURL_O_BINARY);
+
        per->infd = open(per->uploadfile, O_RDONLY | O_BINARY);
        break;
      default:
-
        per->infd = open(per->uploadfile, O_RDONLY | CURL_O_BINARY,
+
        per->infd = open(per->uploadfile, O_RDONLY | O_BINARY,
                         "rfm=stmlf", "ctx=stm");
      }
    }
    if(per->infd == -1)
#else
-
      per->infd = open(per->uploadfile, O_RDONLY | CURL_O_BINARY);
+
      per->infd = open(per->uploadfile, O_RDONLY | O_BINARY);
    if((per->infd == -1) || fstat(per->infd, &fileinfo))
#endif
    {
@@ -671,7 +676,7 @@ static CURLcode post_per_transfer(struct GlobalConfig *global,
              outs->bytes);
        fflush(outs->stream);
        /* truncate file at the position where we started appending */
-
#if defined(HAVE_FTRUNCATE) && !defined(__DJGPP__) && !defined(__AMIGA__)
+
#ifdef HAVE_FTRUNCATE
        if(ftruncate(fileno(outs->stream), outs->init)) {
          /* when truncate fails, we cannot just append as then we will
             create something strange, bail out */
@@ -1935,9 +1940,12 @@ static CURLcode single_transfer(struct GlobalConfig *global,

        /* open file for reading: */
        FILE *file = fopen(config->etag_compare_file, FOPEN_READTEXT);
-
        if(!file)
-
          warnf(global, "Failed to open %s: %s", config->etag_compare_file,
-
                strerror(errno));
+
        if(!file && !config->etag_save_file) {
+
          errorf(global,
+
                 "Failed to open %s", config->etag_compare_file);
+
          result = CURLE_READ_ERROR;
+
          break;
+
        }

        if((PARAM_OK == file2string(&etag_from_file, file)) &&
           etag_from_file) {
@@ -1969,12 +1977,6 @@ static CURLcode single_transfer(struct GlobalConfig *global,
      }

      if(config->etag_save_file) {
-
        if(config->create_dirs) {
-
          result = create_dir_hierarchy(config->etag_save_file, global);
-
          if(result)
-
            break;
-
        }
-

        /* open file for output: */
        if(strcmp(config->etag_save_file, "-")) {
          FILE *newfile = fopen(config->etag_save_file, "ab");
@@ -1994,7 +1996,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
        }
        else {
          /* always use binary mode for protocol header output */
-
          CURL_SET_BINMODE(etag_save->stream);
+
          set_binmode(etag_save->stream);
        }
      }

@@ -2039,7 +2041,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
        if(!strcmp(config->headerfile, "%")) {
          heads->stream = stderr;
          /* use binary mode for protocol header output */
-
          CURL_SET_BINMODE(heads->stream);
+
          set_binmode(heads->stream);
        }
        else if(strcmp(config->headerfile, "-")) {
          FILE *newfile;
@@ -2080,7 +2082,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
        }
        else {
          /* always use binary mode for protocol header output */
-
          CURL_SET_BINMODE(heads->stream);
+
          set_binmode(heads->stream);
        }
      }

@@ -2267,7 +2269,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
        DEBUGASSERT(per->infdopen == FALSE);
        DEBUGASSERT(per->infd == STDIN_FILENO);

-
        CURL_SET_BINMODE(stdin);
+
        set_binmode(stdin);
        if(!strcmp(per->uploadfile, ".")) {
          if(curlx_nonblock((curl_socket_t)per->infd, TRUE) < 0)
            warnf(global,
@@ -2301,7 +2303,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
         !config->use_ascii) {
        /* We get the output to stdout and we have not got the ASCII/text
           flag, then set stdout to be binary */
-
        CURL_SET_BINMODE(stdout);
+
        set_binmode(stdout);
      }

      /* explicitly passed to stdout means okaying binary gunk */
@@ -3184,13 +3186,8 @@ CURLcode operate(struct GlobalConfig *global, int argc, argv_item_t argv[])
      if(res == PARAM_HELP_REQUESTED)
        tool_help(global->help_category);
      /* Check if we were asked for the manual */
-
      else if(res == PARAM_MANUAL_REQUESTED) {
-
#ifdef USE_MANUAL
+
      else if(res == PARAM_MANUAL_REQUESTED)
        hugehelp();
-
#else
-
        puts("built-in manual was disabled at build-time");
-
#endif
-
      }
      /* Check if we were asked for the version information */
      else if(res == PARAM_VERSION_INFO_REQUESTED)
        tool_version_info();
@@ -3238,31 +3235,18 @@ CURLcode operate(struct GlobalConfig *global, int argc, argv_item_t argv[])
          curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_PSL);
          curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_HSTS);

-
          if(global->ssl_sessions && feature_ssls_export)
-
            result = tool_ssls_load(global, global->first, share,
-
                                    global->ssl_sessions);
+
          /* Get the required arguments for each operation */
+
          do {
+
            result = get_args(operation, count++);

-
          if(!result) {
-
            /* Get the required arguments for each operation */
-
            do {
-
              result = get_args(operation, count++);
+
            operation = operation->next;
+
          } while(!result && operation);

-
              operation = operation->next;
-
            } while(!result && operation);
+
          /* Set the current operation pointer */
+
          global->current = global->first;

-
            /* Set the current operation pointer */
-
            global->current = global->first;
-

-
            /* now run! */
-
            result = run_all_transfers(global, share, result);
-

-
            if(global->ssl_sessions && feature_ssls_export) {
-
              CURLcode r2 = tool_ssls_save(global, global->first, share,
-
                                           global->ssl_sessions);
-
              if(r2 && !result)
-
                result = r2;
-
            }
-
          }
+
          /* now run! */
+
          result = run_all_transfers(global, share, result);

          curl_share_cleanup(share);
          if(global->libcurl) {
modified external/curl/src/tool_operhlp.c
@@ -66,7 +66,7 @@ bool output_expected(const char *url, const char *uploadfile)

bool stdin_upload(const char *uploadfile)
{
-
  return !strcmp(uploadfile, "-") || !strcmp(uploadfile, ".");
+
  return (!strcmp(uploadfile, "-") || !strcmp(uploadfile, "."));
}

/* Convert a CURLUcode into a CURLcode */
@@ -238,6 +238,23 @@ CURLcode get_url_file_name(struct GlobalConfig *global,
      }
#endif /* _WIN32 || MSDOS */

+
      /* in case we built debug enabled, we allow an environment variable
+
       * named CURL_TESTDIR to prefix the given filename to put it into a
+
       * specific directory
+
       */
+
#ifdef DEBUGBUILD
+
      {
+
        char *tdir = curl_getenv("CURL_TESTDIR");
+
        if(tdir) {
+
          char *alt = aprintf("%s/%s", tdir, *filename);
+
          Curl_safefree(*filename);
+
          *filename = alt;
+
          curl_free(tdir);
+
          if(!*filename)
+
            return CURLE_OUT_OF_MEMORY;
+
        }
+
      }
+
#endif
      return CURLE_OK;
    }
  }
modified external/curl/src/tool_paramhlp.c
@@ -124,45 +124,15 @@ ParameterError file2string(char **bufp, FILE *file)
  return PARAM_OK;
}

-
static int myfseek(void *stream, curl_off_t offset, int whence)
-
{
-
#if defined(_WIN32) && defined(USE_WIN32_LARGE_FILES)
-
  return _fseeki64(stream, (__int64)offset, whence);
-
#elif defined(HAVE_FSEEKO) && defined(HAVE_DECL_FSEEKO)
-
  return fseeko(stream, (off_t)offset, whence);
-
#else
-
  if(offset > LONG_MAX)
-
    return -1;
-
  return fseek(stream, (long)offset, whence);
-
#endif
-
}
-

-
ParameterError file2memory_range(char **bufp, size_t *size, FILE *file,
-
                                 curl_off_t starto, curl_off_t endo)
+
ParameterError file2memory(char **bufp, size_t *size, FILE *file)
{
  if(file) {
    size_t nread;
    struct curlx_dynbuf dyn;
-
    curl_off_t offset = 0;
-
    curl_off_t throwaway = 0;
-

-
    if(starto) {
-
      if(file != stdin) {
-
        if(myfseek(file, starto, SEEK_SET))
-
          return PARAM_READ_ERROR;
-
        offset = starto;
-
      }
-
      else
-
        /* we can't seek stdin, read 'starto' bytes and throw them away */
-
        throwaway = starto;
-
    }
-

    /* The size needs to fit in an int later */
    curlx_dyn_init(&dyn, MAX_FILE2MEMORY);
    do {
      char buffer[4096];
-
      size_t n_add;
-
      char *ptr_add;
      nread = fread(buffer, 1, sizeof(buffer), file);
      if(ferror(file)) {
        curlx_dyn_free(&dyn);
@@ -170,35 +140,9 @@ ParameterError file2memory_range(char **bufp, size_t *size, FILE *file,
        *bufp = NULL;
        return PARAM_READ_ERROR;
      }
-
      n_add = nread;
-
      ptr_add = buffer;
-
      if(nread) {
-
        if(throwaway) {
-
          if(throwaway >= (curl_off_t)nread) {
-
            throwaway -= nread;
-
            offset += nread;
-
            n_add = 0; /* nothing to add */
-
          }
-
          else {
-
            /* append the trailing piece */
-
            n_add = (size_t)(nread - throwaway);
-
            ptr_add = &buffer[throwaway];
-
            offset += throwaway;
-
            throwaway = 0;
-
          }
-
        }
-
        if(n_add) {
-
          if((curl_off_t)(n_add + offset) > endo)
-
            n_add = (size_t)(endo - offset + 1);
-

-
          if(curlx_dyn_addn(&dyn, ptr_add, n_add))
-
            return PARAM_NO_MEM;
-

-
          offset += n_add;
-
          if(offset > endo)
-
            break;
-
        }
-
      }
+
      if(nread)
+
        if(curlx_dyn_addn(&dyn, buffer, nread))
+
          return PARAM_NO_MEM;
    } while(!feof(file));
    *size = curlx_dyn_len(&dyn);
    *bufp = curlx_dyn_ptr(&dyn);
@@ -210,11 +154,6 @@ ParameterError file2memory_range(char **bufp, size_t *size, FILE *file,
  return PARAM_OK;
}

-
ParameterError file2memory(char **bufp, size_t *size, FILE *file)
-
{
-
  return file2memory_range(bufp, size, file, 0, CURL_OFF_T_MAX);
-
}
-

/*
 * Parse the string and write the long in the given address. Return PARAM_OK
 * on success, otherwise a parameter specific error enum.
modified external/curl/src/tool_paramhlp.h
@@ -37,8 +37,6 @@ ParameterError file2string(char **bufp, FILE *file);
#endif

ParameterError file2memory(char **bufp, size_t *size, FILE *file);
-
ParameterError file2memory_range(char **bufp, size_t *size, FILE *file,
-
                                 curl_off_t starto, curl_off_t endo);

ParameterError str2num(long *val, const char *str);
ParameterError str2unum(long *val, const char *str);
modified external/curl/src/tool_setup.h
@@ -67,21 +67,6 @@ extern FILE *tool_stderr;
#endif

#if defined(_WIN32)
-
#  define CURL_STRICMP(p1, p2)  _stricmp(p1, p2)
-
#elif defined(HAVE_STRCASECMP)
-
#  ifdef HAVE_STRINGS_H
-
#    include <strings.h>
-
#  endif
-
#  define CURL_STRICMP(p1, p2)  strcasecmp(p1, p2)
-
#elif defined(HAVE_STRCMPI)
-
#  define CURL_STRICMP(p1, p2)  strcmpi(p1, p2)
-
#elif defined(HAVE_STRICMP)
-
#  define CURL_STRICMP(p1, p2)  stricmp(p1, p2)
-
#else
-
#  define CURL_STRICMP(p1, p2)  strcmp(p1, p2)
-
#endif
-

-
#if defined(_WIN32)
/* set in win32_init() */
extern LARGE_INTEGER tool_freq;
extern bool tool_isVistaOrGreater;
deleted external/curl/src/tool_ssls.c
@@ -1,222 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "tool_setup.h"
-

-
#include "curlx.h"
-
#include "tool_cfgable.h"
-
#include "tool_cb_dbg.h"
-
#include "tool_msgs.h"
-
#include "tool_setopt.h"
-
#include "tool_ssls.h"
-
#include "dynbuf.h"
-
#include "curl_base64.h"
-
#include "curl_get_line.h"
-

-
/* The maximum line length for an ecoded session ticket */
-
#define MAX_SSLS_LINE (64 * 1024)
-

-

-
static CURLcode tool_ssls_easy(struct GlobalConfig *global,
-
                               struct OperationConfig *config,
-
                               CURLSH *share, CURL **peasy)
-
{
-
  CURLcode result = CURLE_OK;
-

-
  *peasy = curl_easy_init();
-
  if(!*peasy)
-
    return CURLE_OUT_OF_MEMORY;
-

-
  result = curl_easy_setopt(*peasy, CURLOPT_SHARE, share);
-
  if(!result && (global->tracetype != TRACE_NONE)) {
-
    my_setopt(*peasy, CURLOPT_DEBUGFUNCTION, tool_debug_cb);
-
    my_setopt(*peasy, CURLOPT_DEBUGDATA, config);
-
    my_setopt(*peasy, CURLOPT_VERBOSE, 1L);
-
  }
-
  return result;
-
}
-

-
CURLcode tool_ssls_load(struct GlobalConfig *global,
-
                        struct OperationConfig *config,
-
                        CURLSH *share, const char *filename)
-
{
-
  FILE *fp;
-
  CURL *easy = NULL;
-
  struct dynbuf buf;
-
  unsigned char *shmac = NULL, *sdata = NULL;
-
  char *c, *line, *end;
-
  size_t shmac_len, sdata_len;
-
  CURLcode r = CURLE_OK;
-
  int i, imported;
-

-
  curlx_dyn_init(&buf, MAX_SSLS_LINE);
-
  fp = fopen(filename, FOPEN_READTEXT);
-
  if(!fp) { /* ok if it does not exist */
-
    notef(global, "SSL session file does not exist (yet?): %s", filename);
-
    goto out;
-
  }
-

-
  r = tool_ssls_easy(global, config, share, &easy);
-
  if(r)
-
    goto out;
-

-
  i = imported = 0;
-
  while(Curl_get_line(&buf, fp)) {
-
    ++i;
-
    curl_free(shmac);
-
    curl_free(sdata);
-
    line = Curl_dyn_ptr(&buf);
-
    while(*line && ISBLANK(*line))
-
      line++;
-
    if(*line == '#')
-
      /* skip commented lines */
-
      continue;
-

-
    c = memchr(line, ':', strlen(line));
-
    if(!c) {
-
      warnf(global, "unrecognized line %d in ssl session file %s",
-
            i, filename);
-
      continue;
-
    }
-
    *c = '\0';
-
    r = curlx_base64_decode(line, &shmac, &shmac_len);
-
    if(r) {
-
      warnf(global, "invalid shmax base64 encoding in line %d", i);
-
      continue;
-
    }
-
    line = c + 1;
-
    end = line + strlen(line) - 1;
-
    while((end > line) && (*end == '\n' || *end == '\r' || ISBLANK(*line))) {
-
      *end = '\0';
-
      --end;
-
    }
-
    r = curlx_base64_decode(line, &sdata, &sdata_len);
-
    if(r) {
-
      warnf(global, "invalid sdata base64 encoding in line %d: %s", i, line);
-
      continue;
-
    }
-

-
    r = curl_easy_ssls_import(easy, NULL, shmac, shmac_len, sdata, sdata_len);
-
    if(r) {
-
      warnf(global, "import of session from line %d rejected(%d)", i, r);
-
      continue;
-
    }
-
    ++imported;
-
  }
-
  r = CURLE_OK;
-

-
out:
-
  if(easy)
-
    curl_easy_cleanup(easy);
-
  if(fp)
-
    fclose(fp);
-
  curlx_dyn_free(&buf);
-
  curl_free(shmac);
-
  curl_free(sdata);
-
  return r;
-
}
-

-
struct tool_ssls_ctx {
-
  struct GlobalConfig *global;
-
  FILE *fp;
-
  int exported;
-
};
-

-
static CURLcode tool_ssls_exp(CURL *easy, void *userptr,
-
                              const char *session_key,
-
                              const unsigned char *shmac, size_t shmac_len,
-
                              const unsigned char *sdata, size_t sdata_len,
-
                              curl_off_t valid_until, int ietf_tls_id,
-
                              const char *alpn, size_t earlydata_max)
-
{
-
  struct tool_ssls_ctx *ctx = userptr;
-
  char *enc = NULL;
-
  size_t enc_len;
-
  CURLcode r;
-

-
  (void)easy;
-
  (void)valid_until;
-
  (void)ietf_tls_id;
-
  (void)alpn;
-
  (void)earlydata_max;
-
  if(!ctx->exported)
-
    fputs("# Your SSL session cache. https://curl.se/docs/ssl-sessions.html\n"
-
        "# This file was generated by libcurl! Edit at your own risk.\n",
-
        ctx->fp);
-

-
  r = curlx_base64_encode((const char *)shmac, shmac_len, &enc, &enc_len);
-
  if(r)
-
    goto out;
-
  r = CURLE_WRITE_ERROR;
-
  if(enc_len != fwrite(enc, 1, enc_len, ctx->fp))
-
    goto out;
-
  if(EOF == fputc(':', ctx->fp))
-
    goto out;
-
  curl_free(enc);
-
  r = curlx_base64_encode((const char *)sdata, sdata_len, &enc, &enc_len);
-
  if(r)
-
    goto out;
-
  r = CURLE_WRITE_ERROR;
-
  if(enc_len != fwrite(enc, 1, enc_len, ctx->fp))
-
    goto out;
-
  if(EOF == fputc('\n', ctx->fp))
-
    goto out;
-
  r = CURLE_OK;
-
  ctx->exported++;
-
out:
-
  if(r)
-
    warnf(ctx->global, "Warning: error saving SSL session for '%s': %d",
-
          session_key, r);
-
  curl_free(enc);
-
  return r;
-
}
-

-
CURLcode tool_ssls_save(struct GlobalConfig *global,
-
                        struct OperationConfig *config,
-
                        CURLSH *share, const char *filename)
-
{
-
  struct tool_ssls_ctx ctx;
-
  CURL *easy = NULL;
-
  CURLcode r = CURLE_OK;
-

-
  ctx.global = global;
-
  ctx.exported = 0;
-
  ctx.fp = fopen(filename, FOPEN_WRITETEXT);
-
  if(!ctx.fp) {
-
    warnf(global, "Warning: Failed to create SSL session file %s", filename);
-
    goto out;
-
  }
-

-
  r = tool_ssls_easy(global, config, share, &easy);
-
  if(r)
-
    goto out;
-

-
  r = curl_easy_ssls_export(easy, tool_ssls_exp, &ctx);
-

-
out:
-
  if(easy)
-
    curl_easy_cleanup(easy);
-
  if(ctx.fp)
-
    fclose(ctx.fp);
-
  return r;
-
}
deleted external/curl/src/tool_ssls.h
@@ -1,37 +0,0 @@
-
#ifndef HEADER_CURL_TOOL_SSLS_H
-
#define HEADER_CURL_TOOL_SSLS_H
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "tool_setup.h"
-
#include "tool_operate.h"
-

-

-
CURLcode tool_ssls_load(struct GlobalConfig *global,
-
                        struct OperationConfig *config,
-
                        CURLSH *share, const char *filename);
-
CURLcode tool_ssls_save(struct GlobalConfig *global,
-
                        struct OperationConfig *config,
-
                        CURLSH *share, const char *filename);
-

-
#endif /* HEADER_CURL_TOOL_SSLS_H */
modified external/curl/src/tool_util.c
@@ -23,6 +23,10 @@
 ***************************************************************************/
#include "tool_setup.h"

+
#if defined(HAVE_STRCASECMP) && defined(HAVE_STRINGS_H)
+
#include <strings.h>
+
#endif
+

#include "tool_util.h"

#include "curlx.h"
@@ -177,7 +181,15 @@ int struplocompare(const char *p1, const char *p2)
    return p2 ? -1 : 0;
  if(!p2)
    return 1;
-
  return CURL_STRICMP(p1, p2);
+
#ifdef HAVE_STRCASECMP
+
  return strcasecmp(p1, p2);
+
#elif defined(HAVE_STRCMPI)
+
  return strcmpi(p1, p2);
+
#elif defined(HAVE_STRICMP)
+
  return stricmp(p1, p2);
+
#else
+
  return strcmp(p1, p2);
+
#endif
}

/* Indirect version to use as qsort callback. */
modified external/curl/src/tool_version.h
@@ -27,7 +27,7 @@

#define CURL_NAME "curl"
#define CURL_COPYRIGHT LIBCURL_COPYRIGHT
-
#define CURL_VERSION "8.12.0"
+
#define CURL_VERSION "8.11.1"
#define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR
#define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR
#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH
modified external/curl/src/tool_vms.c
@@ -84,7 +84,7 @@ int is_vms_shell(void)
 * 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
+
 * 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.
 */
modified external/curl/src/tool_writeout.c
@@ -122,7 +122,6 @@ static const struct writeoutvar variables[] = {
   writeTime},
  {"time_pretransfer", VAR_PRETRANSFER_TIME, CURLINFO_PRETRANSFER_TIME_T,
   writeTime},
-
  {"time_queue", VAR_QUEUE_TIME, CURLINFO_QUEUE_TIME_T, writeTime},
  {"time_redirect", VAR_REDIRECT_TIME, CURLINFO_REDIRECT_TIME_T, writeTime},
  {"time_starttransfer", VAR_STARTTRANSFER_TIME, CURLINFO_STARTTRANSFER_TIME_T,
   writeTime},
@@ -412,8 +411,8 @@ static int writeString(FILE *stream, const struct writeoutvar *wovar,
    }
  }

-
  DEBUGASSERT(!valid || strinfo);
-
  if(valid && strinfo) {
+
  if(valid) {
+
    DEBUGASSERT(strinfo);
    if(use_json) {
      fprintf(stream, "\"%s\":", wovar->name);
      jsonWriteString(stream, strinfo, FALSE);
modified external/curl/src/tool_writeout.h
@@ -82,7 +82,6 @@ typedef enum {
  VAR_PRIMARY_PORT,
  VAR_PROXY_SSL_VERIFY_RESULT,
  VAR_PROXY_USED,
-
  VAR_QUEUE_TIME,
  VAR_REDIRECT_COUNT,
  VAR_REDIRECT_TIME,
  VAR_REDIRECT_URL,
modified external/curl/src/tool_writeout_json.c
@@ -119,8 +119,8 @@ void ourWriteOutJSON(FILE *stream, const struct writeoutvar mappings[],
}

#ifdef _MSC_VER
-
#pragma warning(push)
-
#pragma warning(disable:4706) /* assignment within conditional expression */
+
/* warning C4706: assignment within conditional expression */
+
#pragma warning(disable:4706)
#endif

void headerJSON(FILE *stream, struct per_transfer *per)
@@ -169,7 +169,3 @@ void headerJSON(FILE *stream, struct per_transfer *per)
  }
  fputs("\n}", stream);
}
-

-
#ifdef _MSC_VER
-
#pragma warning(pop)
-
#endif
modified external/curl/src/var.c
@@ -374,8 +374,6 @@ static ParameterError addvariable(struct GlobalConfig *global,
  return PARAM_NO_MEM;
}

-
#define MAX_FILENAME 10000
-

ParameterError setvariable(struct GlobalConfig *global,
                           const char *input)
{
@@ -389,8 +387,6 @@ ParameterError setvariable(struct GlobalConfig *global,
  bool import = FALSE;
  char *ge = NULL;
  char buf[MAX_VAR_LEN];
-
  curl_off_t startoffset = 0;
-
  curl_off_t endoffset = CURL_OFF_T_MAX;

  if(*input == '%') {
    import = TRUE;
@@ -425,76 +421,36 @@ ParameterError setvariable(struct GlobalConfig *global,
      clen = strlen(ge);
    }
  }
-
  if(*line == '[') {
-
    /* is there a byte range specified? [num-num] */
-
    if(ISDIGIT(line[1])) {
-
      char *endp;
-
      if(curlx_strtoofft(&line[1], &endp, 10, &startoffset) || (*endp != '-'))
-
        return PARAM_VAR_SYNTAX;
-
      else {
-
        char *p = endp + 1; /* pass the '-' */
-
        if(*p != ']') {
-
          if(curlx_strtoofft(p, &endp, 10, &endoffset) || (*endp != ']'))
-
            return PARAM_VAR_SYNTAX;
-
          line = &endp[1];  /* pass the ']' */
-
        }
-
        else
-
          line = &p[1]; /* pass the ']' */
-
      }
-
      if(startoffset > endoffset)
-
        return PARAM_VAR_SYNTAX;
-
    }
-
  }
  if(content)
    ;
  else if(*line == '@') {
    /* read from file or stdin */
    FILE *file;
    bool use_stdin;
-
    struct dynbuf fname;
    line++;
-

-
    Curl_dyn_init(&fname, MAX_FILENAME);
-

    use_stdin = !strcmp(line, "-");
    if(use_stdin)
      file = stdin;
    else {
      file = fopen(line, "rb");
      if(!file) {
-
        errorf(global, "Failed to open %s: %s", line,
-
               strerror(errno));
-
        err = PARAM_READ_ERROR;
+
        errorf(global, "Failed to open %s", line);
+
        return PARAM_READ_ERROR;
      }
    }
-
    if(!err) {
-
      err = file2memory_range(&content, &clen, file, startoffset, endoffset);
-
      /* in case of out of memory, this should fail the entire operation */
-
      if(clen)
-
        contalloc = TRUE;
-
    }
-
    Curl_dyn_free(&fname);
-
    if(!use_stdin && file)
+
    err = file2memory(&content, &clen, file);
+
    /* in case of out of memory, this should fail the entire operation */
+
    contalloc = TRUE;
+
    if(!use_stdin)
      fclose(file);
    if(err)
      return err;
  }
  else if(*line == '=') {
    line++;
-
    clen = strlen(line);
    /* this is the exact content */
    content = (char *)line;
-
    if(startoffset || (endoffset != CURL_OFF_T_MAX)) {
-
      if(startoffset >= (curl_off_t)clen)
-
        clen = 0;
-
      else {
-
        /* make the end offset no larger than the last byte */
-
        if(endoffset >= (curl_off_t)clen)
-
          endoffset = clen - 1;
-
        clen = (size_t)(endoffset - startoffset) + 1;
-
        content += startoffset;
-
      }
-
    }
+
    clen = strlen(line);
  }
  else {
    warnf(global, "Bad --variable syntax, skipping: %s", input);
modified external/curl/tests/CMakeLists.txt
@@ -39,7 +39,7 @@ add_subdirectory(libtest)
add_subdirectory(unit)
add_subdirectory(certs EXCLUDE_FROM_ALL)

-
function(curl_add_runtests _targetname _test_flags)
+
function(add_runtests _targetname _test_flags)
  if(CURL_TEST_BUNDLES)
    set(_test_flags "${_test_flags} -bundle")
  endif()
@@ -49,7 +49,7 @@ function(curl_add_runtests _targetname _test_flags)
  # Skip walking through dependent targets before running tests in CI.
  # This avoids: GNU Make doing a slow re-evaluation of all targets and
  # skipping them, MSBuild doing a re-evaluation, and actually rebuilding them.
-
  set(_depends "")
+
  unset(_depends)
  if(NOT _targetname STREQUAL "test-ci")
    set(_depends "testdeps")
  endif()
@@ -68,8 +68,8 @@ function(curl_add_runtests _targetname _test_flags)
  )
endfunction()

-
function(curl_add_pytests _targetname _test_flags)
-
  set(_depends "")
+
function(add_pytest _targetname _test_flags)
+
  unset(_depends)
  if(NOT _targetname STREQUAL "pytest-ci")
    set(_depends "test-http-clients")
  endif()
@@ -102,14 +102,14 @@ configure_file(
  "${CMAKE_CURRENT_SOURCE_DIR}/configurehelp.pm.in"
  "${CMAKE_CURRENT_BINARY_DIR}/configurehelp.pm" @ONLY)

-
curl_add_runtests(test-quiet     "-a -s")
-
curl_add_runtests(test-am        "-a -am")
-
curl_add_runtests(test-full      "-a -p -r")
+
add_runtests(test-quiet     "-a -s")
+
add_runtests(test-am        "-a -am")
+
add_runtests(test-full      "-a -p -r")
# ~flaky means that it ignores results of tests using the flaky keyword
-
curl_add_runtests(test-nonflaky  "-a -p ~flaky ~timing-dependent")
-
curl_add_runtests(test-ci        "-a -p ~flaky ~timing-dependent -r -rm -j20")
-
curl_add_runtests(test-torture   "-a -t -j20")
-
curl_add_runtests(test-event     "-a -e")
+
add_runtests(test-nonflaky  "-a -p ~flaky ~timing-dependent")
+
add_runtests(test-ci        "-a -p ~flaky ~timing-dependent -r -rm -j20")
+
add_runtests(test-torture   "-a -t -j20")
+
add_runtests(test-event     "-a -e")

-
curl_add_pytests(curl-pytest      "")
-
curl_add_pytests(curl-pytest-ci   "-v")
+
add_pytest(curl-pytest      "")
+
add_pytest(curl-pytest-ci   "-v")
modified external/curl/tests/FILEFORMAT.md
@@ -74,13 +74,6 @@ For example, to insert the word hello 100 times:

    %repeat[100 x hello]%

-
## Insert capped epoch days
-

-
Mostly to test capped cookie expire dates: `%days[NUM]` inserts the number of
-
seconds for the given number of days into the future, aligned to the nearest
-
minute. That is the same calculation the cookie engine uses to cap expiration
-
dates.
-

## Include file

This instruction allows a test case to include another file. It is helpful to
@@ -215,6 +208,9 @@ together as a single identifier. Most keywords are only there to provide a way
for users to skip certain classes of tests, if desired, but a few are treated
specially by the test harness or build system.

+
When using curl built with Hyper, the keywords must include `HTTP` or `HTTPS`
+
for 'hyper mode' to kick in and make line ending checks work for tests.
+

When running a unit test and the keywords include `unittest`, the `<tool>`
section can be left empty to use the standard unit test tool name `unitN` where
`N` is the test number.
@@ -237,14 +233,10 @@ If the data contains `swsclose` anywhere within the start and end tag, and
this is an HTTP test, then the connection is closed by the server after this
response is sent. If not, the connection is kept persistent.

-
If the data contains `swsbounce` anywhere within the start and end tag, then
-
the HTTP server overrides the part number response returned for a subsequent
-
request made by the same test to `previous part number + 1`. For example, if a
-
test makes a request which causes the server to return `<data>` that contains
-
keyword `swsbounce` then for the next response it ignores the requested part
-
number and instead returns `<data1>`. And if `<data1>` contains keyword
-
`swsbounce` then the next response is `<data2>` and so on. This is useful for
-
auth tests and similar.
+
If the data contains `swsbounce` anywhere within the start and end tag, the
+
HTTP server detects if this is a second request using the same test and part
+
number and then increases the part number with one. This is useful for auth
+
tests and similar.

`sendzero=yes` means that the (FTP) server "sends" the data even if the size
is zero bytes. Used to verify curl's behavior on zero bytes transfers.
@@ -436,10 +428,9 @@ Features testable here are:

- `alt-svc`
- `AppleIDN`
-
- `asyn-rr` - c-ares is used for additional records only
- `bearssl`
- `brotli`
-
- `c-ares` - c-ares is used for (all) name resolves
+
- `c-ares`
- `CharConv`
- `codeset-utf8`. If the running codeset is UTF-8 capable.
- `cookies`
@@ -456,13 +447,12 @@ Features testable here are:
- `http/2`
- `http/3`
- `HTTPS-proxy`
-
- `HTTPSRR`
+
- `hyper`
- `IDN`
- `IPv6`
- `Kerberos`
- `Largefile`
- `large-time` (time_t is larger than 32-bit)
-
- `large-size` (size_t is larger than 32-bit)
- `ld_preload`
- `libssh2`
- `libssh`
modified external/curl/tests/Makefile.in
@@ -230,6 +230,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -254,10 +255,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -276,14 +298,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -320,6 +350,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -327,10 +360,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/tests/certs/CMakeLists.txt
@@ -25,7 +25,7 @@ find_program(SH_EXECUTABLE "sh")
mark_as_advanced(SH_EXECUTABLE)
if(SH_EXECUTABLE)
  # Get 'CERTCONFIGS', 'GENERATEDCERTS', 'SRPFILES' variables
-
  curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
  transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
  include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

  add_custom_target(clean-certs
modified external/curl/tests/certs/Makefile.in
@@ -204,6 +204,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -228,10 +229,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -250,14 +272,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -294,6 +324,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -301,10 +334,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/tests/certs/scripts/Makefile.in
@@ -146,6 +146,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -170,10 +171,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -192,14 +214,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -236,6 +266,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -243,10 +276,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/tests/data/DISABLED
@@ -54,6 +54,38 @@
# https://github.com/curl/curl/issues/380
1801
#
+
#
+
# Tests that are disabled here for Hyper are SUPPOSED to work but
+
# still need adjustments in tests or code. Tests that cannot be
+
# fixed for hyper should be adjusted for it in the test file.
+
#
+
# hyper support remains EXPERIMENTAL as long as there's a test number
+
# listed below
+
#
+
# Several tests fail due to hyper's lack of trailers support: 266, 1417, 1540,
+
# 1591, 1943. See https://github.com/hyperium/hyper/issues/2699 for details.
+
%if hyper
+
266
+
477
+
500
+
579
+
587
+
# 1021 re-added here due to flakiness
+
1021
+
1060
+
1417
+
1460
+
1533
+
1540
+
1591
+
1598
+
1943
+
2301
+
2302
+
2305
+
# response body seem not to be handled by hyper
+
2307
+
%endif
2043
# The CRL test doesn't work with wolfSSL
%if wolfssl
modified external/curl/tests/data/Makefile.am
@@ -78,7 +78,7 @@ test444 test445 test446 test447 test448 test449 test450 test451 test452 \
test453 test454 test455 test456 test457 test458 test459 test460 test461 \
test462 test463 test467 test468 test469 test470 test471 test472 test473 \
test474 test475 test476 test477 test478 test479 test480 test481 test482 \
-
test483 test484 test485 test486 \
+
\
test490 test491 test492 test493 test494 test495 test496 test497 test498 \
test499 test500 test501 test502 test503 test504 test505 test506 test507 \
test508 test509 test510 test511 test512 test513 test514 test515 test516 \
@@ -101,7 +101,7 @@ test652 test653 test654 test655 test656 test658 test659 test660 test661 \
test662 test663 test664 test665 test666 test667 test668 test669 test670 \
test671 test672 test673 test674 test675 test676 test677 test678 test679 \
test680 test681 test682 test683 test684 test685 test686 test687 test688 \
-
test689 test690 test691 test692 test693 test694 test695 test696 \
+
test689 test690 test691 test692 \
\
test700 test701 test702 test703 test704 test705 test706 test707 test708 \
test709 test710 test711 test712 test713 test714 test715 test716 test717 \
@@ -109,8 +109,7 @@ test718 test719 test720 test721 test722 test723 test724 test725 test726 \
test727 test728 test729 test730 test731 test732 test733 test734 test735 \
test736 test737 test738 test739 test740 test741 test742 \
\
-
test780 test781 test782 test783 test784 test785 test786 test787 test788 \
-
test789 test790 test791 \
+
test780 test781 test782 test783 \
\
test799 test800 test801 test802 test803 test804 test805 test806 test807 \
test808 test809 test810 test811 test812 test813 test814 test815 test816 \
@@ -218,8 +217,8 @@ test1620 test1621 \
\
test1630 test1631 test1632 test1633 test1634 test1635 \
\
-
test1650 test1651 test1652 test1653 test1654 test1655 test1656 test1657 \
-
test1660 test1661 test1662 test1663 test1664 \
+
test1650 test1651 test1652 test1653 test1654 test1655 test1656 \
+
test1660 test1661 test1662 test1663 \
\
test1670 test1671 \
\
@@ -237,9 +236,9 @@ test1916 test1917 test1918 test1919 \
test1933 test1934 test1935 test1936 test1937 test1938 test1939 test1940 \
test1941 test1942 test1943 test1944 test1945 test1946 test1947 test1948 \
test1955 test1956 test1957 test1958 test1959 test1960 test1964 \
-
test1970 test1971 test1972 test1973 test1974 test1975 test1976 test1977 \
+
test1970 test1971 test1972 test1973 test1974 test1975 test1976 \
\
-
test2000 test2001 test2002 test2003 test2004 test2005 \
+
test2000 test2001 test2002 test2003 test2004 \
\
                                                               test2023 \
test2024 test2025 test2026 test2027 test2028 test2029 test2030 test2031 \
@@ -256,7 +255,7 @@ test2100 \
test2200 test2201 test2202 test2203 test2204 test2205 \
\
test2300 test2301 test2302 test2303 test2304 test2305 test2306 test2307 \
-
test2308 test2309 test2310 \
+
test2308 test2309 \
\
test2400 test2401 test2402 test2403 test2404 test2405 test2406 \
\
@@ -268,9 +267,8 @@ test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 \
test3008 test3009 test3010 test3011 test3012 test3013 test3014 test3015 \
test3016 test3017 test3018 test3019 test3020 test3021 test3022 test3023 \
test3024 test3025 test3026 test3027 test3028 test3029 test3030 test3031 \
-
test3032 \
\
-
test3100 test3101 test3102 test3103 test3104 test3105 \
+
test3100 test3101 test3102 test3103 \
test3200 \
test3201 test3202 test3203 test3204 test3205 test3207

modified external/curl/tests/data/Makefile.in
@@ -146,6 +146,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -170,10 +171,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -192,14 +214,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -236,6 +266,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -243,10 +276,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -360,7 +429,7 @@ test444 test445 test446 test447 test448 test449 test450 test451 test452 \
test453 test454 test455 test456 test457 test458 test459 test460 test461 \
test462 test463 test467 test468 test469 test470 test471 test472 test473 \
test474 test475 test476 test477 test478 test479 test480 test481 test482 \
-
test483 test484 test485 test486 \
+
\
test490 test491 test492 test493 test494 test495 test496 test497 test498 \
test499 test500 test501 test502 test503 test504 test505 test506 test507 \
test508 test509 test510 test511 test512 test513 test514 test515 test516 \
@@ -383,7 +452,7 @@ test652 test653 test654 test655 test656 test658 test659 test660 test661 \
test662 test663 test664 test665 test666 test667 test668 test669 test670 \
test671 test672 test673 test674 test675 test676 test677 test678 test679 \
test680 test681 test682 test683 test684 test685 test686 test687 test688 \
-
test689 test690 test691 test692 test693 test694 test695 test696 \
+
test689 test690 test691 test692 \
\
test700 test701 test702 test703 test704 test705 test706 test707 test708 \
test709 test710 test711 test712 test713 test714 test715 test716 test717 \
@@ -391,8 +460,7 @@ test718 test719 test720 test721 test722 test723 test724 test725 test726 \
test727 test728 test729 test730 test731 test732 test733 test734 test735 \
test736 test737 test738 test739 test740 test741 test742 \
\
-
test780 test781 test782 test783 test784 test785 test786 test787 test788 \
-
test789 test790 test791 \
+
test780 test781 test782 test783 \
\
test799 test800 test801 test802 test803 test804 test805 test806 test807 \
test808 test809 test810 test811 test812 test813 test814 test815 test816 \
@@ -500,8 +568,8 @@ test1620 test1621 \
\
test1630 test1631 test1632 test1633 test1634 test1635 \
\
-
test1650 test1651 test1652 test1653 test1654 test1655 test1656 test1657 \
-
test1660 test1661 test1662 test1663 test1664 \
+
test1650 test1651 test1652 test1653 test1654 test1655 test1656 \
+
test1660 test1661 test1662 test1663 \
\
test1670 test1671 \
\
@@ -519,9 +587,9 @@ test1916 test1917 test1918 test1919 \
test1933 test1934 test1935 test1936 test1937 test1938 test1939 test1940 \
test1941 test1942 test1943 test1944 test1945 test1946 test1947 test1948 \
test1955 test1956 test1957 test1958 test1959 test1960 test1964 \
-
test1970 test1971 test1972 test1973 test1974 test1975 test1976 test1977 \
+
test1970 test1971 test1972 test1973 test1974 test1975 test1976 \
\
-
test2000 test2001 test2002 test2003 test2004 test2005 \
+
test2000 test2001 test2002 test2003 test2004 \
\
                                                               test2023 \
test2024 test2025 test2026 test2027 test2028 test2029 test2030 test2031 \
@@ -538,7 +606,7 @@ test2100 \
test2200 test2201 test2202 test2203 test2204 test2205 \
\
test2300 test2301 test2302 test2303 test2304 test2305 test2306 test2307 \
-
test2308 test2309 test2310 \
+
test2308 test2309 \
\
test2400 test2401 test2402 test2403 test2404 test2405 test2406 \
\
@@ -550,9 +618,8 @@ test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 \
test3008 test3009 test3010 test3011 test3012 test3013 test3014 test3015 \
test3016 test3017 test3018 test3019 test3020 test3021 test3022 test3023 \
test3024 test3025 test3026 test3027 test3028 test3029 test3030 test3031 \
-
test3032 \
\
-
test3100 test3101 test3102 test3103 test3104 test3105 \
+
test3100 test3101 test3102 test3103 \
test3200 \
test3201 test3202 test3203 test3204 test3205 test3207

modified external/curl/tests/data/test1001
@@ -19,7 +19,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
@@ -41,7 +41,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test1002
@@ -18,7 +18,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
@@ -40,7 +40,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test1014
@@ -28,7 +28,7 @@ Compare curl --version with curl-config --features
# Verify data after the test has been "shot"
<verify>
<postcheck>
-
%SRCDIR/libtest/test1013.pl ../curl-config %LOGDIR/stdout%TESTNUMBER features > %LOGDIR/result%TESTNUMBER
+
%SRCDIR/libtest/test1013.pl ../curl-config %LOGDIR/stdout%TESTNUMBER features
</postcheck>
<errorcode>
0
modified external/curl/tests/data/test1060
@@ -836,7 +836,7 @@ daniel

# then this is returned when we get proxy-auth
<connect1000>
-
HTTP/1.1 200 OK
+
HTTP/1.1 200 OK swsbounce
Server: no

</connect1000>
@@ -847,7 +847,7 @@ Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Content-Length: 40000
X-tra-long-header: %repeat[16080 x a]%

-
HTTP/1.1 200 OK
+
HTTP/1.1 200 OK swsbounce
Server: no

HTTP/1.1 200 OK
modified external/curl/tests/data/test1061
@@ -841,7 +841,7 @@ daniel

# then this is returned when we get proxy-auth
<connect1000>
-
HTTP/1.1 200 OK
+
HTTP/1.1 200 OK swsbounce
Server: no

</connect1000>
@@ -852,7 +852,7 @@ Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Transfer-Encoding: chunked
X-tra-long-header: %repeat[16080 x a]%

-
HTTP/1.1 200 OK
+
HTTP/1.1 200 OK swsbounce
Server: no

HTTP/1.1 200 OK
modified external/curl/tests/data/test1072
@@ -63,7 +63,11 @@ Accept: */*
Transfer-Encoding: chunked
Expect: 100-continue

+
%if hyper
+
7A
+
%else
7a
+
%endif
This is data we upload with PUT
it comes from stdin so MUST be sent
with chunked encoding
modified external/curl/tests/data/test1073
@@ -57,7 +57,11 @@ Accept: */*
Transfer-Encoding: chunked
Expect: 100-continue

+
%if hyper
+
7A
+
%else
7a
+
%endif
This is data we upload with PUT
it comes from stdin so MUST be sent
with chunked encoding
modified external/curl/tests/data/test1116
@@ -24,8 +24,10 @@ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccc

0
+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif

</data>
<datacheck>
@@ -35,8 +37,10 @@ Transfer-Encoding: chunked
Connection: mooo

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif
</datacheck>
<servercmd>
writedelay: 10
@@ -73,8 +77,10 @@ Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Connection: mooo

+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif
</file>
</verify>

modified external/curl/tests/data/test1135
@@ -67,8 +67,6 @@ curl_version_info
curl_easy_strerror
curl_share_strerror
curl_easy_pause
-
curl_easy_ssls_import
-
curl_easy_ssls_export
curl_easy_init
curl_easy_setopt
curl_easy_perform
modified external/curl/tests/data/test1144
@@ -40,6 +40,10 @@ verify
#
# Client-side
<client>
+
# hyper doesn't support HTTP/0.9
+
<features>
+
!hyper
+
</features>
<server>
http
</server>
modified external/curl/tests/data/test1147
@@ -40,7 +40,9 @@ One: 1
Two: 2
no-colon

+
%if !hyper
 And A Funny One : wohoo
+
%endif
User-Agent:
</file>
<command>
@@ -57,7 +59,9 @@ Host: %HOSTIP:%HTTPPORT
Accept: */*
One: 1
Two: 2
+
%if !hyper
 And A Funny One : wohoo
+
%endif

</protocol>
</verify>
modified external/curl/tests/data/test1164
@@ -22,6 +22,10 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
#
# Client-side
<client>
+
# hyper doesn't support HTTP/0.9
+
<features>
+
!hyper
+
</features>
<server>
http
</server>
modified external/curl/tests/data/test1185
@@ -16,7 +16,7 @@ checksrc
</name>

<command type="perl">
-
%SRCDIR/../scripts/checksrc.pl -bmagicbad -balsobad %LOGDIR/code%TESTNUMBER.c
+
%SRCDIR/../scripts/checksrc.pl %LOGDIR/code%TESTNUMBER.c
</command>
<file name="%LOGDIR/code%TESTNUMBER.c">
/* test source code
@@ -46,7 +46,7 @@ if(a == 2){ /* followed by comment */
  ;
}

-
func_return() ;
+
func() ;

a = sprintf(buffer, "%s", moo);

@@ -71,7 +71,7 @@ void startfunc(int a, int b) {
 }

 int a = sizeof int;
-
 int a = magicbad(buffer, alsobad(buffer), "%d", 99);
+
 int a = snprintf(buffer, sizeof(buffer), "%d", 99);
 int moo = hej?wrong:a>b;
 int moo2 = wrong2:(a)>(b);

@@ -120,9 +120,9 @@ void startfunc(int a, int b) {
./%LOGDIR/code1185.c:24:11: warning: missing space after close paren (PARENBRACE)
 if(a == 2){  
           ^
-
./%LOGDIR/code1185.c:28:14: warning: no space before semicolon (SPACESEMICOLON)
-
 func_return() ;
-
              ^
+
./%LOGDIR/code1185.c:28:7: warning: no space before semicolon (SPACESEMICOLON)
+
 func() ;
+
       ^
./%LOGDIR/code1185.c:30:5: warning: use of sprintf is banned (BANNEDFUNC)
 a = sprintf(buffer, "%s", moo);
     ^
@@ -162,12 +162,9 @@ void startfunc(int a, int b) {
./%LOGDIR/code1185.c:52:16: warning: sizeof without parenthesis (SIZEOFNOPAREN)
  int a = sizeof int;
                ^
-
./%LOGDIR/code1185.c:53:10: warning: use of magicbad is banned (BANNEDFUNC)
-
  int a = magicbad(buffer, alsobad(buffer), "%d", 99);
+
./%LOGDIR/code1185.c:53:10: warning: use of snprintf is banned (SNPRINTF)
+
  int a = snprintf(buffer, sizeof(buffer), "%d", 99);
          ^
-
./%LOGDIR/code1185.c:53:27: warning: use of alsobad is banned (BANNEDFUNC)
-
  int a = magicbad(buffer, alsobad(buffer), "%d", 99);
-
                           ^
./%LOGDIR/code1185.c:54:21: warning: missing space before colon (NOSPACEC)
  int moo = hej?wrong:a>b;
                     ^
@@ -204,7 +201,7 @@ void startfunc(int a, int b) {
./%LOGDIR/code1185.c:1:1: error: Missing closing comment (OPENCOMMENT)
 
 ^
-
checksrc: 0 errors and 39 warnings
+
checksrc: 0 errors and 38 warnings
</stdout>
<errorcode>
5
modified external/curl/tests/data/test1266
@@ -19,6 +19,10 @@ swsclose
#
# Client-side
<client>
+
# hyper doesn't grok HTTP/0.9
+
<features>
+
!hyper
+
</features>
<server>
http
</server>
modified external/curl/tests/data/test1267
@@ -19,6 +19,10 @@ swsclose
#
# Client-side
<client>
+
# hyper doesn't grok HTTP/0.9
+
<features>
+
!hyper
+
</features>
<server>
http
</server>
modified external/curl/tests/data/test1274
@@ -53,14 +53,22 @@ Accept: */*
<file name="%LOGDIR/out%TESTNUMBER">
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
+
%if hyper
+
Server: test-server/ fake folded
+
%else
Server: test-server/
 fake
 folded
+
%endif
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Content-Length: 6
+
%if hyper
+
Connection: close
+
%else
Connection:                                              
   close
+
%endif

</file>
</verify>
modified external/curl/tests/data/test1284
@@ -10,7 +10,7 @@ HTTP Digest auth
# Server-side
<reply>
<data>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
@@ -27,7 +27,7 @@ ok
</data1000>

<datacheck>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test1285
@@ -10,7 +10,7 @@ HTTP Digest auth
# Server-side
<reply>
<data>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
@@ -27,7 +27,7 @@ ok
</data1000>

<datacheck>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test1286
@@ -11,7 +11,7 @@ followlocation
# Server-side
<reply>
<data>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144", qop="auth"
Content-Type: text/html; charset=iso-8859-1
@@ -35,7 +35,7 @@ Content-Length: 0
</data1001>

<datacheck>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144", qop="auth"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test1287
@@ -83,8 +83,10 @@ Accept: */*

</protocol>
<file name="%LOGDIR/stderr%TESTNUMBER" mode="text">
+
%if !hyper
* Ignoring Content-Length in CONNECT 200 response
* Ignoring Transfer-Encoding in CONNECT 200 response
+
%endif
</file>
<stripfile>
s/^.*(?=\* Ignoring (?:Content-Length|Transfer-Encoding) )// or $_ = ''
modified external/curl/tests/data/test1294
@@ -28,8 +28,10 @@ Funny-head: yesyes
#
# Client-side
<client>
+
# hyper doesn't support the added crazy header
<features>
Debug
+
!hyper
</features>
<server>
http
modified external/curl/tests/data/test1415
@@ -78,9 +78,15 @@ Proxy-Connection: Keep-Alive
# https://curl.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

-
.example.com	TRUE	/	FALSE	%days[400]	test7value	test7
-
.example.com	TRUE	/	FALSE	%days[400]	test4value	test4
-
.example.com	TRUE	/	FALSE	%days[400]	test2value	test2
+
%if large-time
+
.example.com	TRUE	/	FALSE	17545593600	test7value	test7
+
.example.com	TRUE	/	FALSE	17545593600	test4value	test4
+
.example.com	TRUE	/	FALSE	17545593600	test2value	test2
+
%else
+
.example.com	TRUE	/	FALSE	2145830400	test7value	test7
+
.example.com	TRUE	/	FALSE	2145830400	test4value	test4
+
.example.com	TRUE	/	FALSE	2145830400	test2value	test2
+
%endif
.example.com	TRUE	/	FALSE	0	test1value	test1
</file>
</verify>
modified external/curl/tests/data/test1473
@@ -46,5 +46,11 @@ User-Agent: curl/%VERSION
Accept: */*

</protocol>
+
%if hyper
+
# curl: (1) Hyper: [6] invalid HTTP header parsed
+
<errorcode>
+
1
+
</errorcode>
+
%endif
</verify>
</testcase>
modified external/curl/tests/data/test1479
@@ -53,9 +53,15 @@ User-Agent: curl/%VERSION
Accept: */*

</protocol>
-
# weird_server_reply
+

+
# Hyper curl returns unsupported protocol
+
# built-in curl returns weird_server_reply
<errorcode>
+
%if hyper
+
1
+
%else
8
+
%endif
</errorcode>
</verify>
</testcase>
modified external/curl/tests/data/test1480
@@ -45,9 +45,14 @@ Accept: */*

</protocol>

-
# weird_server_reply
+
# Hyper curl returns unsupported protocol
+
# built-in curl returns weird_server_reply
<errorcode>
+
%if hyper
+
1
+
%else
8
+
%endif
</errorcode>
</verify>
</testcase>
modified external/curl/tests/data/test1482
@@ -24,8 +24,10 @@ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccc

0
+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif

</data>
<datacheck>
@@ -35,8 +37,10 @@ Transfer-Encoding: chunked, chunked
Connection: mooo

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif
</datacheck>
<servercmd>
writedelay: 10
@@ -73,8 +77,10 @@ Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked, chunked
Connection: mooo

+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif
</file>
</verify>

modified external/curl/tests/data/test1483
@@ -25,8 +25,10 @@ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccc

0
+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif

</data>
<datacheck>
@@ -37,8 +39,10 @@ Transfer-Encoding: chunked
Connection: mooo

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif
</datacheck>
<servercmd>
writedelay: 10
@@ -76,8 +80,10 @@ Transfer-Encoding: chunked
Transfer-Encoding: chunked
Connection: mooo

+
%if !hyper
chunky-trailer: header data
another-header: yes
+
%endif
</file>
</verify>

modified external/curl/tests/data/test1591
@@ -48,7 +48,11 @@ Transfer-Encoding: chunked
Trailer: my-super-awesome-trailer, my-other-awesome-trailer
Expect: 100-continue

+
%if hyper
+
E
+
%else
e
+
%endif
Hello Cloud!

0
modified external/curl/tests/data/test1596
@@ -13,9 +13,9 @@ If-Modified-Since
<reply>
<data nocheck="yes">
HTTP/1.1 429 Too Many Requests
-
Date: Wed, 31 Dec 2036 02:26:59 GMT
+
Date: Thu, 11 Jul 2019 02:26:59 GMT
Server: test-server/swsclose
-
Retry-After: Wed, 31 Dec 2036 02:26:59 GMT
+
Retry-After: Thu, 11 Jul 2024 02:26:59 GMT

</data>
</reply>
@@ -42,9 +42,8 @@ Host: %HOSTIP:%HTTPPORT
Accept: */*

</protocol>
-
# Retry-After time is limited to 6 hours (21600 seconds)
<stdout>
-
Retry-After 21600
+
Retry-After 172066
</stdout>
</verify>
</testcase>
modified external/curl/tests/data/test1654
@@ -27,13 +27,13 @@ alt-svc
%LOGDIR/%TESTNUMBER
</command>
<file name="%LOGDIR/%TESTNUMBER" mode="text">
-
h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0
+
h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 1
# a comment
-
h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0
-
  h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0
-
	h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0
+
h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 1
+
  h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 1
+
	h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 1
    # also a comment
-
bad example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0
+
bad example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 1
rubbish
</file>
</client>
@@ -41,10 +41,10 @@ rubbish
<file name="%LOGDIR/%TESTNUMBER-out" mode="text">
# Your alt-svc cache. https://curl.se/docs/alt-svc.html
# This file was generated by libcurl! Edit at your own risk.
-
h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0
-
h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0
-
h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0
-
h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0
+
h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 1
+
h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 1
+
h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 1
+
h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 1
h1 example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0
h1 2.example.org 8080 h3 2.example.org 8080 "20190125 22:34:21" 0 0
h1 3.example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0
deleted external/curl/tests/data/test1657
@@ -1,22 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
unittest
-
Curl_x509_getASN1Element
-
</keywords>
-
</info>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
none
-
</server>
-
<features>
-
unittest
-
</features>
-
<name>
-
Curl_x509_getASN1Element unit tests
-
</name>
-
</client>
-
</testcase>
deleted external/curl/tests/data/test1664
@@ -1,120 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
unittest
-
strparse
-
</keywords>
-
</info>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
none
-
</server>
-
<features>
-
unittest
-
large-size
-
</features>
-
<name>
-
unit tests for strparse.c string parsing functions
-
</name>
-
</client>
-

-
<verify>
-
<stdout>
-
Curl_str_word
-
0: ("word") 0, "word" [4], line 4
-
1: ("word ") 0, "word" [4], line 4
-
2: (" word ") 2, "" [0], line 0
-
3: ("wo rd") 0, "wo" [2], line 2
-
4: ("word(") 0, "word(" [5], line 5
-
5: ("wor(d") 0, "wor(d" [5], line 5
-
6: ("perfect") 0, "perfect" [7], line 7
-
7: ("") 2, "" [0], line 0
-
8: ("longerth") 1, "" [0], line 0
-
Curl_str_until
-
0: ("word") 0, "wor" [3], line 3
-
1: ("word ") 0, "wor" [3], line 3
-
2: (" word ") 0, " wor" [4], line 4
-
3: ("wo rd") 0, "wo r" [4], line 4
-
4: ("word(") 0, "wor" [3], line 3
-
5: ("wor(d") 0, "wor(" [4], line 4
-
6: ("perfect") 0, "perfect" [7], line 7
-
7: ("") 2, "" [0], line 0
-
8: ("longerth") 1, "" [0], line 0
-
Curl_str_quotedword
-
0: (""word"") 0, "word" [4], line 6
-
1: (""word") 4, "" [0], line 0
-
2: ("word"") 3, "" [0], line 0
-
3: (""word""") 0, "word" [4], line 6
-
4: (""word" ") 0, "word" [4], line 6
-
5: (" "word"") 3, "" [0], line 0
-
6: (""perfect"") 0, "perfect" [7], line 9
-
7: (""p r e t"") 0, "p r e t" [7], line 9
-
8: (""perfec\"") 0, "perfec\" [7], line 9
-
9: ("""") 0, "" [0], line 2
-
10: ("") 3, "" [0], line 0
-
11: (""longerth"") 1, "" [0], line 0
-
Curl_str_single
-
0: ("a") 0, line 1
-
1: ("aa") 0, line 1
-
2: ("A") 5, line 0
-
3: ("b") 5, line 0
-
4: ("\") 5, line 0
-
5: (" ") 5, line 0
-
6: ("") 5, line 0
-
Curl_str_singlespace
-
0: ("a") 5, line 0
-
1: ("aa") 5, line 0
-
2: ("A") 5, line 0
-
3: ("b") 5, line 0
-
4: ("\") 5, line 0
-
5: (" ") 0, line 1
-
6: ("	") 5, line 0
-
7: ("
-
") 5, line 0
-
8: ("") 5, line 0
-
Curl_str_single
-
0: ("a") 0, line 1
-
1: ("aa") 0, line 1
-
2: ("A") 5, line 0
-
3: ("b") 5, line 0
-
4: ("\") 5, line 0
-
5: (" ") 5, line 0
-
6: ("") 5, line 0
-
Curl_str_number
-
0: ("1") 0, [1] line 1
-
1: ("10000") 1, [0] line 4
-
2: ("1234") 0, [1234] line 4
-
3: ("1235") 0, [1235] line 4
-
4: ("1236") 1, [0] line 3
-
5: ("01234") 0, [1234] line 5
-
6: ("00000000000000000000000000001234") 0, [1234] line 32
-
7: ("0123 345") 0, [123] line 4
-
8: ("0123O345") 0, [123] line 4
-
9: ("-12") 0, [0] line 0
-
10: (" 123") 0, [0] line 0
-
11: ("") 0, [0] line 0
-
Curl_str_number / max
-
0: ("9223372036854775808") 0, [9223372036854775808] line 19
-
1: ("9223372036854775809") 0, [9223372036854775809] line 19
-
2: ("18446744073709551615") 0, [18446744073709551615] line 20
-
3: ("18446744073709551616") 7, [0] line 19
-
4: ("18446744073709551617") 7, [0] line 19
-
Curl_str_newline
-
0: ("a") 6, line 0
-
1: ("aa") 6, line 0
-
2: ("A") 6, line 0
-
3: ("b") 6, line 0
-
4: ("\") 6, line 0
-
5: (" ") 6, line 0
-
6: ("
-
") 0, line 1
-
7: ("
") 0, line 1
-
8: ("
-
") 0, line 1
-
9: ("") 6, line 0
-
</stdout>
-
</verify>
-
</testcase>
modified external/curl/tests/data/test176
@@ -11,7 +11,7 @@ HTTP NTLM auth
<reply>
# the first request has NTLM type-1 included, and then the 1001 is returned
<data1001>
-
HTTP/1.1 200 beng swsclose
+
HTTP/1.1 200 beng swsclose swsbounce
Server: Microsoft-IIS/6.0
Authentication-Info: Passport1.4 tname=MSPAuth,tname=MSPProf,tname=MSPConsent,tname=MSPSecAuth
Content-Type: text/html; charset=iso-8859-1
@@ -29,7 +29,7 @@ content for you
</data>

<datacheck>
-
HTTP/1.1 200 beng swsclose
+
HTTP/1.1 200 beng swsclose swsbounce
Server: Microsoft-IIS/6.0
Authentication-Info: Passport1.4 tname=MSPAuth,tname=MSPProf,tname=MSPConsent,tname=MSPSecAuth
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test178
@@ -19,8 +19,11 @@ Funny-head: yesyes
moooooooooooo
</data>
<datacheck>
+
%if hyper
+
%else
HTTP/1.1 200 OK swsclose
Date: Tue, 09 Nov 2010 14:49:00 GMT
+
%endif
</datacheck>
</reply>

@@ -48,9 +51,15 @@ User-Agent: curl/%VERSION
Accept: */*

</protocol>
-
# weird_server_reply
+

+
# Hyper curl returns unsupported protocol
+
# built-in curl returns weird_server_reply
<errorcode>
+
%if hyper
+
1
+
%else
8
+
%endif
</errorcode>
</verify>
</testcase>
modified external/curl/tests/data/test186
@@ -31,7 +31,7 @@ http
HTTP RFC1867-type formposting with types on text fields
</name>
<command>
-
http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER -F "name=daniel;type=moo/foo-.4" -F "html= <body>hello</body>;type=text/html;charset=verymoo"
+
http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER -F "name=daniel;type=moo/foo" -F "html= <body>hello</body>;type=text/html;charset=verymoo"
</command>
# We create this file before the command is invoked!
</client>
@@ -46,12 +46,12 @@ POST /we/want/%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
-
Content-Length: 341
+
Content-Length: 338
Content-Type: multipart/form-data; boundary=----------------------------212d9006ceb5

------------------------------212d9006ceb5
Content-Disposition: form-data; name="name"
-
Content-Type: moo/foo-.4
+
Content-Type: moo/foo

daniel
------------------------------212d9006ceb5
deleted external/curl/tests/data/test1977
@@ -1,62 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
CURLOPT_CURLU
-
CURLINFO_EFFECTIVE_URL
-
</keywords>
-
</info>
-

-
# Server-side
-
<reply>
-
<data nocheck="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Content-Type: text/html
-
Funny-head: yesyes swsclose
-

-
</data>
-
</reply>
-

-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
CURLOPT_CURLU and CURLINFO_EFFECTIVE_URL
-
</name>
-
<tool>
-
lib%TESTNUMBER
-
</tool>
-

-
# The test does three transfers to check how CURLINFO_EFFECTIVE_URL is reported
-
# when CURLOPT_CURLU changes between transfers. (Bug #15984)
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
</command>
-
</client>
-

-
# Verify data after the test has been "shot"
-
<verify>
-
<stdout>
-
effective URL: http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
effective URL: http://%HOSTIP:%HTTPPORT/%TESTNUMBER?foo
-
effective URL: http://%HOSTIP:%HTTPPORT/%TESTNUMBER?foo&bar
-
</stdout>
-
<protocol>
-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-

-
GET /%TESTNUMBER?foo HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-

-
GET /%TESTNUMBER?foo&bar HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-

-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test2005
@@ -1,55 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
netrc
-
</keywords>
-
</info>
-
#
-
# Server-side
-
<reply>
-
<data>
-
HTTP/1.1 200 OK
-
Date: Fri, 05 Aug 2022 10:09:00 GMT
-
Server: test-server/fake
-
Content-Type: text/plain
-
Content-Length: 6
-
Connection: close
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
netrc match with password only in file, no username. machine follows
-
</name>
-
<command>
-
--netrc-optional --netrc-file %LOGDIR/netrc%TESTNUMBER http://%HOSTIP:%HTTPPORT/
-
</command>
-
<file name="%LOGDIR/netrc%TESTNUMBER" >
-
machine %HOSTIP
-
password 5up3r53cr37
-

-
machine example.com
-
</file>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol>
-
GET / HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Authorization: Basic %b64[:5up3r53cr37]b64%
-
User-Agent: curl/%VERSION
-
Accept: */*
-

-
</protocol>
-
</verify>
-
</testcase>
modified external/curl/tests/data/test2058
@@ -19,7 +19,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", algorithm="SHA-256", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
@@ -41,7 +41,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", algorithm="SHA-256", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test2059
@@ -19,7 +19,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", algorithm="SHA-256", nonce="1053604144", userhash=true
Content-Type: text/html; charset=iso-8859-1
@@ -41,7 +41,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", algorithm="SHA-256", nonce="1053604144", userhash=true
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test206
@@ -41,7 +41,7 @@ daniel

# then this is returned when we get proxy-auth
<connect1000>
-
HTTP/1.1 200 OK
+
HTTP/1.1 200 OK swsbounce
Server: no

</connect1000>
@@ -51,7 +51,7 @@ HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Content-Length: 33

-
HTTP/1.1 200 OK
+
HTTP/1.1 200 OK swsbounce
Server: no

HTTP/1.1 200 OK
modified external/curl/tests/data/test2060
@@ -19,7 +19,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", algorithm="SHA-512-256", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
@@ -41,7 +41,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", algorithm="SHA-512-256", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test2067
@@ -10,7 +10,7 @@ HTTP Digest auth
# Server-side
<reply>
<data>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144", algorithm="SHA-256"
Content-Type: text/html; charset=iso-8859-1
@@ -27,7 +27,7 @@ ok
</data1000>

<datacheck>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144", algorithm="SHA-256"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test2068
@@ -10,7 +10,7 @@ HTTP Digest auth
# Server-side
<reply>
<data>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144", algorithm="SHA-512-256"
Content-Type: text/html; charset=iso-8859-1
@@ -27,7 +27,7 @@ ok
</data1000>

<datacheck>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144", algorithm="SHA-512-256"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test2069
@@ -10,7 +10,7 @@ HTTP Digest auth
# Server-side
<reply>
<data>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144", algorithm="SHA-256", userhash=true
Content-Type: text/html; charset=iso-8859-1
@@ -27,7 +27,7 @@ ok
</data1000>

<datacheck>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144", algorithm="SHA-256", userhash=true
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test207
@@ -58,8 +58,13 @@ Accept: */*

# curl: (18) transfer closed with outstanding read data remaining
# 18 == CURLE_PARTIAL_FILE
+
# 56 == CURLE_RECV_ERROR
<errorcode>
+
%if hyper
+
56
+
%else
18
+
%endif
</errorcode>
</verify>
</testcase>
modified external/curl/tests/data/test2100
@@ -52,7 +52,7 @@ DoH
IPv6
</features>
<name>
-
HTTP GET using DoH (with HTTPS RR)
+
HTTP GET using DoH
</name>
<command>
http://foo.example.com:%HTTPPORT/%TESTNUMBER --doh-url http://%HOSTIP:%HTTPPORT/%TESTNUMBER0001
@@ -70,31 +70,6 @@ http://foo.example.com:%HTTPPORT/%TESTNUMBER --doh-url http://%HOSTIP:%HTTPPORT/
s/com\x00\x00(\x1c|\x01)/com-00-00!/g;
</strippart>
<protocol>
-
%if HTTPSRR
-
POST /%TESTNUMBER0001 HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-
Content-Type: application/dns-message
-
Content-Length: 33
-

-
%hex[%00%00%01%00%00%01%00%00%00%00%00%00%03foo%07example%03com-00-00!%00%01]hex%POST /%TESTNUMBER0001 HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-
Content-Type: application/dns-message
-
Content-Length: 33
-

-
%hex[%00%00%01%00%00%01%00%00%00%00%00%00%03foo%07example%03com-00-00!%00%01]hex%POST /%TESTNUMBER0001 HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-
Content-Type: application/dns-message
-
Content-Length: 47
-

-
%hex[%00%00%01%00%00%01%00%00%00%00%00%00%06_%HTTPPORT%06_https%03foo%07example%03com%00%00A%00%01]hex%GET /%TESTNUMBER HTTP/1.1
-
Host: foo.example.com:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-

-
%else
POST /%TESTNUMBER0001 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
@@ -112,7 +87,6 @@ Host: foo.example.com:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*

-
%endif
</protocol>
</verify>
</testcase>
modified external/curl/tests/data/test218
@@ -46,7 +46,11 @@ User-Agent: curl/%VERSION
Accept: */*
Transfer-Encoding: chunked

+
%if hyper
+
1E
+
%else
1e
+
%endif
just some tiny teeny contents

0
modified external/curl/tests/data/test2306
@@ -54,6 +54,14 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER http://%HOSTIP:%HTTPPORT/%TESTNUMBER0002
#
# Verify data after the test has been "shot"
<verify>
+
# hyper doesn't like the bad header in the second request
+
<errorcode>
+
%if hyper
+
1
+
%else
+
0
+
%endif
+
</errorcode>
<protocol>
GET /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
modified external/curl/tests/data/test2307
@@ -31,6 +31,7 @@ upgrade
<features>
Debug
ws
+
!hyper
</features>
<server>
http
deleted external/curl/tests/data/test2310
@@ -1,68 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
WebSockets
-
</keywords>
-
</info>
-

-
#
-
# Sends a PING + a TEXT with RSV1 set
-
<reply>
-
<data nocheck="yes" nonewline="yes">
-
HTTP/1.1 101 Switching to WebSockets
-
Server: test-server/fake
-
Upgrade: websocket
-
Connection: Upgrade
-
Sec-WebSocket-Accept: HkPsVga7+8LuxM4RGQ5p9tZHeYs=
-

-
%hex[%89%00%C1%05hello]hex%
-
</data>
-
# allow upgrade
-
<servercmd>
-
upgrade
-
</servercmd>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
# require debug for the forced CURL_ENTROPY
-
<features>
-
Debug
-
ws
-
</features>
-
<server>
-
http
-
</server>
-
<name>
-
WebSockets unknown reserved bit set in frame header
-
</name>
-
<tool>
-
lib%TESTNUMBER
-
</tool>
-
<command>
-
ws://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
</command>
-
</client>
-

-
#
-
# PONG with no data and the 32 bit mask
-
#
-
<verify>
-
<protocol nocheck="yes" nonewline="yes">
-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: webbie-sox/3
-
Accept: */*
-
Upgrade: websocket
-
Connection: Upgrade
-
Sec-WebSocket-Version: 13
-
Sec-WebSocket-Key: NDMyMTUzMjE2MzIxNzMyMQ==
-

-
%hex[%8a%808321]hex%
-
</protocol>
-
<stdout mode="text">
-
Returned 56, should be 56.
-
</stdout>
-
</verify>
-
</testcase>
modified external/curl/tests/data/test245
@@ -10,7 +10,7 @@ HTTP Digest auth
# Server-side
<reply>
<data>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
@@ -27,7 +27,7 @@ ok
</data1000>

<datacheck>
-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test246
@@ -15,7 +15,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
@@ -37,7 +37,7 @@ Server: Microsoft-IIS/5.0
Date: Sun, 03 Apr 2005 14:57:45 GMT
X-Powered-By: ASP.NET

-
HTTP/1.1 401 authentication please
+
HTTP/1.1 401 authentication please swsbounce
Server: Microsoft-IIS/6.0
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
Content-Type: text/html; charset=iso-8859-1
modified external/curl/tests/data/test262
modified external/curl/tests/data/test269
@@ -26,6 +26,9 @@ muahahaha
#
# Client-side
<client>
+
<features>
+
!hyper
+
</features>
<server>
http
</server>
modified external/curl/tests/data/test28
@@ -30,7 +30,11 @@ If this is received, the location following worked
HTTP/1.1 301 This is a weirdo text message swsclose
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+
%if hyper
+
Location: /online/1,1795,Welcome,00.html/%TESTNUMBER0002.txt?logout=TRUE
+
%else
Location:  /online/1,1795,Welcome,00.html/%TESTNUMBER0002.txt?logout=TRUE
+
%endif
Connection: close

HTTP/1.1 200 Followed here fine swsclose
modified external/curl/tests/data/test3025
@@ -23,6 +23,9 @@ MooMoo
<server>
http
</server>
+
<features>
+
!hyper
+
</features>
<name>
CURLOPT_HTTP200ALIASES
</name>
deleted external/curl/tests/data/test3032
@@ -1,112 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--location
-
</keywords>
-
</info>
-

-
# Server-side
-
<reply>
-

-
<data>
-
HTTP/1.1 301 redirect swsbounce
-
Content-Length: 0
-
Location: http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
Part: data
-

-
</data>
-

-
<data1>
-
HTTP/1.1 301 redirect swsbounce
-
Content-Length: 0
-
Location: http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
Part: data1
-

-
</data1>
-

-
<data2>
-
HTTP/1.1 301 redirect swsbounce
-
Content-Length: 0
-
Location: http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
Part: data2
-

-
</data2>
-

-
<data3>
-
HTTP/1.1 200 OK
-
Content-Type: text/html
-
Content-Length: 30
-
Part: data3
-

-
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-
</data3>
-

-
<datacheck>
-
HTTP/1.1 301 redirect swsbounce
-
Content-Length: 0
-
Location: http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
Part: data
-

-
HTTP/1.1 301 redirect swsbounce
-
Content-Length: 0
-
Location: http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
Part: data1
-

-
HTTP/1.1 301 redirect swsbounce
-
Content-Length: 0
-
Location: http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
Part: data2
-

-
HTTP/1.1 200 OK
-
Content-Type: text/html
-
Content-Length: 30
-
Part: data3
-

-
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-
</datacheck>
-

-
</reply>
-

-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
# This is a test of the swsbounce keyword which is used during tests to
-
# override the data response number for the next request to the previous
-
# data response number + 1. eg data, data1, data2 etc.
-
<name>
-
HTTP redirect loop 3x swsbounce test
-
</name>
-
<command>
-
--location http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
</command>
-
</client>
-

-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol>
-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-

-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-

-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-

-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-

-
</protocol>
-
</verify>
-
</testcase>
modified external/curl/tests/data/test306
@@ -37,6 +37,7 @@ verify
<client>
<features>
SSL
+
!hyper
</features>
<server>
https
modified external/curl/tests/data/test31
@@ -9,6 +9,10 @@ cookiejar
</info>
# Server-side
#
+
# The cookies set come in two versions. This is because when curl is built
+
# with Hyper, the API provides the headers already "sanitized" so we cannot
+
# compare with the exact server contents unless it too sends the data
+
# "clean".

<reply>
<data>
@@ -19,6 +23,7 @@ Content-Length: 4
Content-Type: text/html
Funny-head: yesyes
Set-Cookie: blankdomain=sure; domain=; path=/
+
%if !hyper
Set-Cookie: foobar=name; domain=anything.com; path=/ ; secure
Set-Cookie:ismatch=this  ; domain=test31.curl; path=/silly/
Set-Cookie:ISMATCH=this  ; domain=test31.curl; path=/silly/
@@ -68,6 +73,57 @@ Set-Cookie: withspaces= yes within and around ;
Set-Cookie: withspaces2 =before equals;
Set-Cookie: prespace=  yes before;
Set-Cookie: securewithspace=after    ; secure =
+
%else
+
Set-Cookie: foobar=name; domain=anything.com; path=/ ; secure
+
Set-Cookie: ismatch=this  ; domain=test31.curl; path=/silly/
+
Set-Cookie:ISMATCH=this  ; domain=test31.curl; path=/silly/
+
Set-Cookie: overwrite=this  ; domain=test31.curl; path=/overwrite/
+
Set-Cookie: overwrite=this2  ; domain=test31.curl; path=/overwrite
+
Set-Cookie: sec1value=secure1  ; domain=test31.curl; path=/secure1/ ; secure
+
Set-Cookie: sec2value=secure2  ; domain=test31.curl; path=/secure2/ ; secure=
+
Set-Cookie: sec3value=secure3  ; domain=test31.curl; path=/secure3/ ; secure=
+
Set-Cookie: sec4value=secure4  ; secure=; domain=test31.curl; path=/secure4/ ;
+
Set-Cookie: sec5value=secure5  ; secure; domain=test31.curl; path=/secure5/ ;
+
Set-Cookie: sec6value=secure6  ; secure ; domain=test31.curl; path=/secure6/ ;
+
Set-Cookie: sec7value=secure7  ; secure   ; domain=test31.curl; path=/secure7/ ;
+
Set-Cookie: sec8value=secure8  ; secure= ; domain=test31.curl; path=/secure8/ ;
+
Set-Cookie: secure=very1  ; secure=; domain=test31.curl; path=/secure9/;
+
Set-Cookie: httpo1=value1  ; domain=test31.curl; path=/p1/; httponly
+
Set-Cookie: httpo2=value2  ; domain=test31.curl; path=/p2/; httponly=
+
Set-Cookie: httpo3=value3  ; httponly; domain=test31.curl; path=/p3/;
+
Set-Cookie: httpo4=value4  ; httponly=; domain=test31.curl; path=/p4/;
+
Set-Cookie: httponly=myvalue1  ; domain=test31.curl; path=/p4/; httponly
+
Set-Cookie: httpandsec=myvalue2  ; domain=test31.curl; path=/p4/; httponly; secure
+
Set-Cookie: httpandsec2=myvalue3; domain=test31.curl; path=/p4/; httponly=; secure
+
Set-Cookie: httpandsec3=myvalue4  ; domain=test31.curl; path=/p4/; httponly; secure=
+
Set-Cookie: httpandsec4=myvalue5  ; domain=test31.curl; path=/p4/; httponly=; secure=
+
Set-Cookie: httpandsec5=myvalue6  ; domain=test31.curl; path=/p4/; secure; httponly=
+
Set-Cookie: httpandsec6=myvalue7  ; domain=test31.curl; path=/p4/; secure=; httponly=
+
Set-Cookie: httpandsec7=myvalue8  ; domain=test31.curl; path=/p4/; secure; httponly
+
Set-Cookie: httpandsec8=myvalue9; domain=test31.curl; path=/p4/; secure=; httponly
+
Set-Cookie: partmatch=present; domain=test31.curl ; path=/;
+
Set-Cookie: eat=this; domain=moo.foo.moo;
+
Set-Cookie: eat=this-too; domain=.foo.moo;
+
Set-Cookie: nodomainnovalue
+
%if large-time
+
Set-Cookie: nodomain=value; expires=Fri Feb 13 11:56:27 GMT 2525
+
Set-Cookie: novalue; domain=reallysilly
+
Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2525
+
Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2525
+
%else
+
Set-Cookie: nodomain=value; expires=Fri Feb 13 11:56:27 GMT 2037
+
Set-Cookie: novalue; domain=reallysilly
+
Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030
+
Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2030
+
%endif
+
Set-Cookie: magic=yessir; path=/silly/; HttpOnly
+
Set-Cookie: blexp=yesyes; domain=test31.curl; domain=test31.curl; expiry=totally bad;
+
Set-Cookie: partialip=nono; domain=.0.0.1;
+
Set-Cookie: withspaces=  yes  within and around    ;
+
Set-Cookie: withspaces2 =before equals;
+
Set-Cookie: prespace=  yes before;
+
Set-Cookie: securewithspace=after    ; secure =
+
%endif

boo
</data>
@@ -115,7 +171,11 @@ test31.curl FALSE /we/want/ FALSE 0 withspaces2 before equals
test31.curl	FALSE	/we/want/	FALSE	0	withspaces	yes  within and around
.test31.curl	TRUE	/we/want/	FALSE	0	blexp	yesyes
#HttpOnly_test31.curl	FALSE	/silly/	FALSE	0	magic	yessir
-
test31.curl	FALSE	/we/want/	FALSE	%days[400]	nodomain	value
+
%if large-time
+
test31.curl	FALSE	/we/want/	FALSE	17517902187	nodomain	value
+
%else
+
test31.curl	FALSE	/we/want/	FALSE	2118138987	nodomain	value
+
%endif
.test31.curl	TRUE	/	FALSE	0	partmatch	present
#HttpOnly_.test31.curl	TRUE	/p4/	FALSE	0	httponly	myvalue1
#HttpOnly_.test31.curl	TRUE	/p4/	FALSE	0	httpo4	value4
deleted external/curl/tests/data/test3104
@@ -1,60 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
cookies
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Content-Type: text/html
-
Funny-head: yesyes
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<features>
-
cookies
-
proxy
-
</features>
-
<server>
-
http
-
</server>
-
<tool>
-
lib%TESTNUMBER
-
</tool>
-
<name>
-
CURLOPT_COOKIELIST with netscape format
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol crlf="yes">
-
GET http://example.com/ HTTP/1.1
-
Host: example.com
-
Accept: */*
-
Proxy-Connection: Keep-Alive
-
Cookie: name=value
-

-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test3105
@@ -1,30 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
curl_multi_remove_handle
-
</keywords>
-
</info>
-

-

-
#
-
# Client-side
-
<client>
-
<server>
-
none
-
</server>
-
<tool>
-
lib%TESTNUMBER
-
</tool>
-
<name>
-
curl_multi_remove_handle twice
-
</name>
-
<command>
-
-
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
</verify>
-
</testcase>
modified external/curl/tests/data/test326
@@ -39,6 +39,9 @@ line 1
#
# Client-side
<client>
+
<features>
+
!hyper
+
</features>
<server>
http
</server>
modified external/curl/tests/data/test341
@@ -36,7 +36,7 @@ chunky-trailer: header data
http
</server>
<name>
-
A non existing file with --etag-compare is just a blank
+
Try to open a non existing file with --etag-compare should return an error
</name>
<command>
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --etag-compare %LOGDIR/etag%TESTNUMBER
@@ -46,14 +46,9 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER --etag-compare %LOGDIR/etag%TESTNUMBER
#
# Verify data after the test has been "shot"
<verify>
-
<protocol>
-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-
If-None-Match: ""
-

-
</protocol>
+
<errorcode>
+
26
+
</errorcode>
</verify>

</testcase>
modified external/curl/tests/data/test376
@@ -40,10 +40,14 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER -o %LOGDIR/save-%TESTNUMBER --remove-on-err
</client>

#
-
# Verify data after the test has been "shot"
+
# Verify data after the test has been "shot". hyper doesn't do error 18
<verify>
<errorcode>
+
%if hyper
+
56
+
%else
18
+
%endif
</errorcode>
<protocol>
GET /%TESTNUMBER HTTP/1.1
modified external/curl/tests/data/test379
@@ -43,10 +43,14 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER -o %LOGDIR/save --remove-on-error --no-clob
</client>

#
-
# Verify data after the test has been "shot".
+
# Verify data after the test has been "shot". hyper doesn't do error 18
<verify>
<errorcode>
+
%if hyper
+
56
+
%else
18
+
%endif
</errorcode>
<protocol>
GET /%TESTNUMBER HTTP/1.1
modified external/curl/tests/data/test391
@@ -62,7 +62,7 @@ Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*

-
GET /%TESTNUMBER0002 HTTP/1.1
+
GET /../%TESTNUMBER0002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
modified external/curl/tests/data/test393
@@ -18,7 +18,11 @@ Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
+
%if hyper
+
Content-Length: 3689348814741910323
+
%else
Content-Length: 36893488147419103232
+
%endif
Connection: close
Content-Type: text/html
Funny-head: yesyes
modified external/curl/tests/data/test394
@@ -44,7 +44,11 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER
# Verify data after the test has been "shot"
<verify>
<errorcode>
+
%if hyper
+
1
+
%else
8
+
%endif
</errorcode>
<protocol>
GET /%TESTNUMBER HTTP/1.1
modified external/curl/tests/data/test395
@@ -49,5 +49,12 @@ User-Agent: curl/%VERSION
Accept: */*

</protocol>
+

+
# hyper cannot work with too-large content-length
+
%if hyper
+
<errorcode>
+
1
+
</errorcode>
+
%endif
</verify>
</testcase>
modified external/curl/tests/data/test398
@@ -54,7 +54,11 @@ Accept: */*

</protocol>
<errorcode>
+
%if hyper
+
1
+
%else
8
+
%endif
</errorcode>
</verify>
</testcase>
modified external/curl/tests/data/test40
@@ -26,7 +26,11 @@ body
</data2>
<datacheck>
HTTP/1.1 302 OK swsclose
+
%if !hyper
Location: ../moo.html/?name=d a niel&testcase=/%TESTNUMBER0002    
+
%else
+
Location: ../moo.html/?name=d a niel&testcase=/%TESTNUMBER0002
+
%endif
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close

modified external/curl/tests/data/test415
@@ -19,8 +19,11 @@ Funny-head: yesyes
moooooooooooo
</data>
<datacheck>
+
%if hyper
+
%else
HTTP/1.1 200 OK swsclose
Date: Tue, 09 Nov 2010 14:49:00 GMT
+
%endif
</datacheck>
</reply>

@@ -49,9 +52,14 @@ Accept: */*

</protocol>

+
# Hyper curl returns unsupported protocol
# built-in curl returns weird_server_reply
<errorcode>
+
%if hyper
+
1
+
%else
8
+
%endif
</errorcode>
</verify>
</testcase>
modified external/curl/tests/data/test42
@@ -26,7 +26,11 @@ body
</data2>
<datacheck>
HTTP/1.1 302 OK swsclose
+
%if !hyper
Location: ../m o o.html/%TESTNUMBER0002    
+
%else
+
Location: ../m o o.html/%TESTNUMBER0002
+
%endif
Date: Tue, 09 Nov 2010 14:49:00 GMT
Connection: close

modified external/curl/tests/data/test46
@@ -91,14 +91,15 @@ domain..tld FALSE /want/ FALSE 0 simplyhuge zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
domain..tld	FALSE	/	FALSE	0	justaname	
domain..tld	FALSE	/	FALSE	0	ASPSESSIONIDQGGQQSJJ	GKNBDIFAAOFDPDAIEAKDIBKE
domain..tld	FALSE	/	FALSE	0	ckySession	temporary
-
domain..tld	FALSE	/	FALSE	%days[400]	ckyPersistent	permanent
%if large-time
+
domain..tld	FALSE	/	FALSE	17517902187	ckyPersistent	permanent
domain..tld	FALSE	/want	FALSE	0	empty	
#HttpOnly_domain..tld	FALSE	/want	FALSE	22139150993	mooo2	indeed2
domain..tld	FALSE	/	FALSE	22139150993	mooo	indeed
www.loser.com	FALSE	/	FALSE	22139150993	UID	99
www.fake.come	FALSE	/	FALSE	22147483647	cookiecliente	si
%else
+
domain..tld	FALSE	/	FALSE	2118138987	ckyPersistent	permanent
domain..tld	FALSE	/want	FALSE	0	empty	
#HttpOnly_domain..tld	FALSE	/want	FALSE	2139150993	mooo2	indeed2
domain..tld	FALSE	/	FALSE	2139150993	mooo	indeed
modified external/curl/tests/data/test470
@@ -28,6 +28,9 @@ Funny-head: yesyes
#
# Client-side
<client>
+
<features>
+
!hyper
+
</features>
<server>
http
</server>
modified external/curl/tests/data/test471
@@ -68,7 +68,7 @@ Accept: */*
</protocol>
# curl: (1) Version mismatch (from HTTP/1 to HTTP/2)
<errorcode>
-
8
+
1
</errorcode>
</verify>
</testcase>
deleted external/curl/tests/data/test483
@@ -1,66 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
HTTP GET
-
cookies
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Set-Cookie: name=value; expires=Fri Feb 13 11:56:27 GMT 2132
-
Set-Cookie: name2=value; expires=Fri Feb 13 11:56:27 ; 2132
-
Set-Cookie: name3=value; expires=Fri Feb 13 11:56:27 ...................................................GMT 2132
-
Set-Cookie: name4=value; expires=Fri Feb 13 11:56:27 ....................................................GMT 2132
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<features>
-
cookies
-
large-time
-
</features>
-
<name>
-
HTTP cookies with long expire dates
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER -c %LOGDIR/c%TESTNUMBER
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol crlf="yes">
-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-

-
</protocol>
-
<file name="%LOGDIR/c%TESTNUMBER" mode="text">
-
# Netscape HTTP Cookie File
-
# https://curl.se/docs/http-cookies.html
-
# This file was generated by libcurl! Edit at your own risk.
-

-
127.0.0.1	FALSE	/	FALSE	0	name4	value
-
127.0.0.1	FALSE	/	FALSE	%days[400]	name3	value
-
127.0.0.1	FALSE	/	FALSE	0	name2	value
-
127.0.0.1	FALSE	/	FALSE	%days[400]	name	value
-
</file>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test484
@@ -1,44 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
etags
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
none
-
</server>
-
<name>
-
Use --etag-compare and -save with more than one URL
-
</name>
-
<command>
-
http://example.com/%TESTNUMBER --etag-compare %LOGDIR/etag%TESTNUMBER --etag-save %LOGDIR/etag%TESTNUMBER --url http://example.net/fooo
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<errorcode>
-
2
-
</errorcode>
-
<stderr mode="text">
-
curl: The etag options only work on a single URL
-
curl: option --url: is badly used here
-
%if manual
-
curl: try 'curl --help' or 'curl --manual' for more information
-
%else
-
curl: try 'curl --help' for more information
-
%endif
-
</stderr>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test485
@@ -1,44 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
etags
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
none
-
</server>
-
<name>
-
Use --etag-compare and -save with more than one URL, URLs specified first
-
</name>
-
<command>
-
http://example.com/%TESTNUMBER http://example.net/fooo --etag-save %LOGDIR/etag%TESTNUMBER
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<errorcode>
-
2
-
</errorcode>
-
<stderr mode="text">
-
curl: The etag options only work on a single URL
-
curl: option --etag-save: is badly used here
-
%if manual
-
curl: try 'curl --help' or 'curl --manual' for more information
-
%else
-
curl: try 'curl --help' for more information
-
%endif
-
</stderr>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test486
@@ -1,105 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
netrc
-
HTTP
-
</keywords>
-
</info>
-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 301 Follow this you fool
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Location: http://b.com/%TESTNUMBER0002
-

-
-foo-
-
</data>
-

-
<data2 crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 7
-
Connection: close
-

-
target
-
</data2>
-

-
<datacheck crlf="yes">
-
HTTP/1.1 301 Follow this you fool
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Location: http://b.com/%TESTNUMBER0002
-

-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 7
-
Connection: close
-

-
target
-
</datacheck>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<features>
-
proxy
-
</features>
-
<name>
-
.netrc with redirect and "default" with no password or login
-
</name>
-
<command>
-
--netrc --netrc-file %LOGDIR/netrc%TESTNUMBER -L -x http://%HOSTIP:%HTTPPORT/ http://a.com/
-
</command>
-
<file name="%LOGDIR/netrc%TESTNUMBER" >
-

-
machine a.com
-
  login alice
-
  password alicespassword
-

-
default
-

-
</file>
-
</client>
-

-
<verify>
-
<protocol>
-
GET http://a.com/ HTTP/1.1
-
Host: a.com
-
Authorization: Basic %b64[alice:alicespassword]b64%
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Proxy-Connection: Keep-Alive
-

-
GET http://b.com/%TESTNUMBER0002 HTTP/1.1
-
Host: b.com
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Proxy-Connection: Keep-Alive
-

-
</protocol>
-
</verify>
-
</testcase>
modified external/curl/tests/data/test497
@@ -49,8 +49,14 @@ Accept: */*

</protocol>
# curl: (56) Too large response headers: 307215 > 307200
+
# hyper returns a generic error that libcurl converts to an even more
+
# generic error
<errorcode>
+
%if hyper
+
1
+
%else
56
+
%endif
</errorcode>
</verify>
</testcase>
modified external/curl/tests/data/test498
@@ -43,8 +43,14 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER --max-redirs 400 --location
# Verify data after the test has been "shot"
<verify>
# curl: (56) Too large response headers: 6144086 > 6144000
+
# hyper returns a generic error that libcurl converts to an even more
+
# generic error
<errorcode>
+
%if hyper
+
1
+
%else
56
+
%endif
</errorcode>
</verify>
</testcase>
modified external/curl/tests/data/test506
@@ -210,14 +210,14 @@ lock: cookie [Pigs in space]: 90
unlock: cookie [Pigs in space]: 91
loaded cookies:
-----------------
-
  www.host.foo.com	FALSE	/	FALSE	%days[400]	test6	six_more
-
  .www.host.foo.com	TRUE	/	FALSE	%days[400]	test6	six
-
  .host.foo.com	TRUE	/	FALSE	%days[400]	test5	five
-
  .host.foo.com	TRUE	/	FALSE	%days[400]	test4	overwritten4
-
  .foo.com	TRUE	/	FALSE	%days[400]	test3	three
-
  .host.foo.com	TRUE	/	FALSE	%days[400]	test2	two
-
  .foo.com	TRUE	/	FALSE	%days[400]	test1	overwritten1
-
  .host.foo.com	TRUE	/	FALSE	%days[400]	injected	yes
+
  www.host.foo.com	FALSE	/	FALSE	1993463787	test6	six_more
+
  .www.host.foo.com	TRUE	/	FALSE	1993463787	test6	six
+
  .host.foo.com	TRUE	/	FALSE	1896263787	test5	five
+
  .host.foo.com	TRUE	/	FALSE	2061978987	test4	overwritten4
+
  .foo.com	TRUE	/	FALSE	1896263787	test3	three
+
  .host.foo.com	TRUE	/	FALSE	1896263787	test2	two
+
  .foo.com	TRUE	/	FALSE	1993463787	test1	overwritten1
+
  .host.foo.com	TRUE	/	FALSE	1896263787	injected	yes
-----------------
try SHARE_CLEANUP...
lock:   share  [Pigs in space]: 92
@@ -238,14 +238,14 @@ GLOBAL_CLEANUP
# https://curl.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

-
www.host.foo.com	FALSE	/	FALSE	%days[400]	test6	six_more
-
.www.host.foo.com	TRUE	/	FALSE	%days[400]	test6	six
-
.host.foo.com	TRUE	/	FALSE	%days[400]	test5	five
-
.host.foo.com	TRUE	/	FALSE	%days[400]	test4	overwritten4
-
.foo.com	TRUE	/	FALSE	%days[400]	test3	three
-
.host.foo.com	TRUE	/	FALSE	%days[400]	test2	two
-
.foo.com	TRUE	/	FALSE	%days[400]	test1	overwritten1
-
.host.foo.com	TRUE	/	FALSE	%days[400]	injected	yes
+
www.host.foo.com	FALSE	/	FALSE	1993463787	test6	six_more
+
.www.host.foo.com	TRUE	/	FALSE	1993463787	test6	six
+
.host.foo.com	TRUE	/	FALSE	1896263787	test5	five
+
.host.foo.com	TRUE	/	FALSE	2061978987	test4	overwritten4
+
.foo.com	TRUE	/	FALSE	1896263787	test3	three
+
.host.foo.com	TRUE	/	FALSE	1896263787	test2	two
+
.foo.com	TRUE	/	FALSE	1993463787	test1	overwritten1
+
.host.foo.com	TRUE	/	FALSE	1896263787	injected	yes
</file>
</verify>
</testcase>
modified external/curl/tests/data/test510
@@ -56,7 +56,11 @@ one
two
5
three
+
%if hyper
+
1D
+
%else
1d
+
%endif
and a final longer crap: four
0

modified external/curl/tests/data/test517
@@ -35,8 +35,8 @@ nothing
</stdout>

# This test case previously tested an overflow case ("2094 Nov 6 =>
-
# 2147483647") for 32-bit time_t, but since some systems have 64-bit time_t and
-
# handles this (returning 3939840000), and some 64-bit time_t systems don't
+
# 2147483647") for 32bit time_t, but since some systems have 64bit time_t and
+
# handles this (returning 3939840000), and some 64bit-time_t systems don't
# handle this and return -1 for this, it turned very tricky to write a fine
# test case and thus it is now removed until we have a way to write test cases
# for this kind of things.
modified external/curl/tests/data/test56
@@ -52,7 +52,11 @@ Accept: */*
Transfer-Encoding: chunked
Content-Type: application/x-www-form-urlencoded

+
%if hyper
+
C
+
%else
c
+
%endif
we post this
0

modified external/curl/tests/data/test565
@@ -100,7 +100,11 @@ one
two
5
three
+
%if hyper
+
1D
+
%else
1d
+
%endif
and a final longer crap: four
0

modified external/curl/tests/data/test60
@@ -43,7 +43,9 @@ Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
Transfer-Encoding: chunked
+
%if !hyper
Content-Length: 1
+
%endif
Expect: 100-continue

13
modified external/curl/tests/data/test61
@@ -71,8 +71,13 @@ Accept: */*
# https://curl.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

-
.host.foo.com	TRUE	/we/want/	FALSE	%days[400]	test2	yes
-
#HttpOnly_.foo.com	TRUE	/we/want/	FALSE	%days[400]	test	yes
+
%if large-time
+
.host.foo.com	TRUE	/we/want/	FALSE	17517902187	test2	yes
+
#HttpOnly_.foo.com	TRUE	/we/want/	FALSE	17517902187	test	yes
+
%else
+
.host.foo.com	TRUE	/we/want/	FALSE	2118138987	test2	yes
+
#HttpOnly_.foo.com	TRUE	/we/want/	FALSE	2118138987	test	yes
+
%endif
</file>
</verify>
</testcase>
modified external/curl/tests/data/test642
@@ -21,7 +21,7 @@ for ssh test
sftp
</server>
<name>
-
SFTP retrieval (compressed)
+
SFTP retrieval
</name>
<command>
--key %LOGDIR/server/curl_client_key --pubkey %LOGDIR/server/curl_client_key.pub -u %USER: --compressed-ssh sftp://%HOSTIP:%SSHPORT%SSH_PWD/%LOGDIR/file%TESTNUMBER.txt --insecure
modified external/curl/tests/data/test645
@@ -76,7 +76,11 @@ Transfer-Encoding: chunked
Content-Type: multipart/form-data; boundary=----------------------------
Expect: 100-continue

+
%if hyper
+
7C
+
%else
7c
+
%endif
------------------------------
Content-Disposition: form-data; name="sendfile"; filename="postit2.c"

@@ -92,7 +96,11 @@ y
1


+
%if hyper
+
6B
+
%else
6b
+
%endif

------------------------------
Content-Disposition: form-data; name="callbackdata"
@@ -111,7 +119,11 @@ y
1


+
%if hyper
+
1B2
+
%else
1b2
+
%endif

------------------------------
Content-Disposition: form-data; name="filename"
@@ -137,7 +149,11 @@ Transfer-Encoding: chunked
Content-Type: multipart/form-data; boundary=----------------------------
Expect: 100-continue

+
%if hyper
+
8A
+
%else
8a
+
%endif
------------------------------
Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2"

@@ -153,7 +169,11 @@ y
1


+
%if hyper
+
6B
+
%else
6b
+
%endif

------------------------------
Content-Disposition: form-data; name="callbackdata"
@@ -172,7 +192,11 @@ y
1


+
%if hyper
+
1B2
+
%else
1b2
+
%endif

------------------------------
Content-Disposition: form-data; name="filename"
modified external/curl/tests/data/test650
@@ -104,7 +104,11 @@ Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"
Content-Type: text/whatever


+
%if hyper
+
AB
+
%else
ab
+
%endif
This is data from a file.

------------------------------
@@ -112,7 +116,11 @@ Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"
Content-Type: text/whatever


+
%if hyper
+
BB
+
%else
bb
+
%endif
This is data from a file.

--------------------------------
@@ -121,7 +129,11 @@ This is data from a file.
Content-Disposition: form-data; name="filecontents"


+
%if hyper
+
11B
+
%else
11b
+
%endif
This is data from a file.

------------------------------
@@ -176,7 +188,11 @@ Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"
Content-Type: text/whatever


+
%if hyper
+
AB
+
%else
ab
+
%endif
This is data from a file.

------------------------------
@@ -184,7 +200,11 @@ Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"
Content-Type: text/whatever


+
%if hyper
+
BB
+
%else
bb
+
%endif
This is data from a file.

--------------------------------
@@ -193,7 +213,11 @@ This is data from a file.
Content-Disposition: form-data; name="filecontents"


+
%if hyper
+
11B
+
%else
11b
+
%endif
This is data from a file.

------------------------------
modified external/curl/tests/data/test654
@@ -84,7 +84,11 @@ Transfer-Encoding: chunked
Content-Type: multipart/form-data; boundary=----------------------------
Expect: 100-continue

+
%if hyper
+
1C1
+
%else
1c1
+
%endif
------------------------------
Content-Disposition: form-data; name="greeting"
Content-Type: application/X-Greeting
modified external/curl/tests/data/test66
@@ -15,6 +15,9 @@ no headers swsclose

# Client-side
<client>
+
<features>
+
!hyper
+
</features>
<server>
http
</server>
modified external/curl/tests/data/test667
@@ -77,7 +77,11 @@ Content-Transfer-Encoding: base64

4
ZHVt
+
%if hyper
+
3A
+
%else
3a
+
%endif
bXk=
--------------------------------

modified external/curl/tests/data/test668
@@ -72,7 +72,11 @@ Transfer-Encoding: chunked
Content-Type: multipart/form-data; boundary=----------------------------
Expect: 100-continue

+
%if hyper
+
CD
+
%else
cd
+
%endif
------------------------------
Content-Disposition: form-data; name="field1"

@@ -90,7 +94,11 @@ Content-Disposition: form-data; name="field3"; filename="file%TESTNUMBER.txt"
Content-Type: text/plain


+
%if hyper
+
4F
+
%else
4f
+
%endif
This is data from a file

--------------------------------
deleted external/curl/tests/data/test693
@@ -1,62 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
HTTP GET
-
etags
-
</keywords>
-
</info>
-
#
-
# Server-side
-
<reply>
-
<data nocheck="yes">
-
HTTP/1.1 200 funky chunky!
-
Server: fakeit/0.9 fakeitbad/1.0
-
Transfer-Encoding: chunked
-
Trailer: chunky-trailer
-
Connection: mooo
-
ETag: W/"asdf"
-

-
40
-
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
30
-
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-
21;heresatest=moooo
-
cccccccccccccccccccccccccccccccc
-

-
0
-
chunky-trailer: header data
-

-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--etag-save with --create-dirs
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --etag-save %LOGDIR/moo/boo/etag%TESTNUMBER --create-dirs
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol>
-
GET /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-

-
</protocol>
-
<file name="%LOGDIR/moo/boo/etag%TESTNUMBER">
-
W/"asdf"
-
</file>
-
</verify>
-

-
</testcase>
deleted external/curl/tests/data/test694
@@ -1,127 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
HTTP POST
-
POST callback
-
HTTP proxy
-
HTTP proxy NTLM auth
-
NTLM
-
</keywords>
-
</info>
-
# Server-side
-
<reply>
-

-
<data>
-
HTTP/1.1 401 Authorization Required
-
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
-
WWW-Authenticate: Negotiate
-
WWW-Authenticate: NTLM
-
Content-Type: text/html; charset=iso-8859-1
-
Content-Length: 26
-

-
This is not the real page
-
</data>
-

-
# this is returned first since we get no proxy-auth
-
<data1001>
-
HTTP/1.1 401 Authorization Required
-
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
-
Content-Length: 34
-

-
Hey you, authenticate or go away!
-
</data1001>
-

-
# This is supposed to be returned when the server gets the second
-
# Authorization: NTLM line passed-in from the client
-
<data1002>
-
HTTP/1.1 200 Things are fine
-
Server: Microsoft-IIS/5.0
-
Content-Type: text/html; charset=iso-8859-1
-
Content-Length: 42
-

-
Contents of that page you requested, sir.
-
</data1002>
-

-
# This is supposed to be returned when the server gets the second
-
# request.
-
<data10>
-
HTTP/1.1 200 Things are fine
-
Content-Type: yeah/maybe
-
Content-Length: 42
-

-
Contents of that second request. Differn.
-
</data10>
-

-
<datacheck>
-
HTTP/1.1 401 Authorization Required
-
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
-
WWW-Authenticate: Negotiate
-
WWW-Authenticate: NTLM
-
Content-Type: text/html; charset=iso-8859-1
-
Content-Length: 26
-

-
HTTP/1.1 401 Authorization Required
-
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
-
Content-Length: 34
-

-
HTTP/1.1 200 Things are fine
-
Server: Microsoft-IIS/5.0
-
Content-Type: text/html; charset=iso-8859-1
-
Content-Length: 42
-

-
Contents of that page you requested, sir.
-
HTTP/1.1 200 Things are fine
-
Content-Type: yeah/maybe
-
Content-Length: 42
-

-
Contents of that second request. Differn.
-
</datacheck>
-
</reply>
-

-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
# tool to use
-
<tool>
-
lib%TESTNUMBER
-
</tool>
-
<features>
-
NTLM
-
!SSPI
-
</features>
-
<name>
-
HTTP with NTLM twice, verify CURLINFO_HTTPAUTH_USED
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/path/mine http://%HOSTIP:%HTTPPORT/path/%TESTNUMBER0010
-
</command>
-
</client>
-

-
# Verify data after the test has been "shot"
-
<verify>
-

-
<protocol crlf="yes">
-
GET /path/mine HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-

-
GET /path/mine HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
-
Accept: */*
-

-
GET /path/mine HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAAAgACAHAAAAALAAsAcgAAAAAAAAAAAAAAhoIBAAQt1KW5CgG4YdWWcfXyfXBz1ZMCzYp37xYjBiAizmw58O6eQS7yR66eqYGWeSwl9W1lV09SS1NUQVRJT04=
-
Accept: */*
-

-
GET /path/6940010 HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-

-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test695
@@ -1,78 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
MIME
-
</keywords>
-
</info>
-
# Server-side
-
<reply>
-
<data nocheck="yes">
-
HTTP/1.0 200 OK swsclose
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-

-
blablabla
-

-
</data>
-
</reply>
-

-
# Client-side
-
<client>
-
<features>
-
Mime
-
</features>
-
<server>
-
http
-
</server>
-
<tool>
-
lib%TESTNUMBER
-
</tool>
-

-
<name>
-
MIME parts reuse as a child part
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER
-
</command>
-
</client>
-

-
# Verify data after the test has been "shot"
-
<verify>
-
<strippart>
-
s/^--------------------------[A-Za-z0-9]*/------------------------------/
-
s/boundary=------------------------[A-Za-z0-9]*/boundary=----------------------------/
-
</strippart>
-
<protocol>
-
POST /we/want/%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-
Content-Length: 196
-
Content-Type: multipart/form-data; boundary=----------------------------
-

-
------------------------------
-
Content-Disposition: form-data; name="data"
-
Content-Type: text/html
-

-
<title>hello</title>
-
--------------------------------
-
POST /we/want/%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
Accept: */*
-
Content-Length: 423
-
Content-Type: multipart/form-data; boundary=----------------------------
-

-
------------------------------
-
Content-Disposition: form-data
-
Content-Type: multipart/mixed; boundary=----------------------------
-

-
------------------------------
-
Content-Disposition: attachment; name="data"
-
Content-Type: text/html
-

-
<title>hello</title>
-
--------------------------------
-

-
--------------------------------
-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test696
@@ -1,70 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
HTTP GET
-
</keywords>
-
</info>
-

-
<reply>
-
<data nocheck="yes">
-
HTTP/1.1 200 OK swsclose
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
Content-Length: 6
-
Connection: close
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<tool>
-
lib%TESTNUMBER
-
</tool>
-
<name>
-
CONNECT_ONLY and doing a second curl_easy_perform
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<stdout>
-
HTTP/1.1 200 OK swsclose
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
Content-Length: 6
-
Connection: close
-

-
-foo-
-
HTTP/1.1 200 OK swsclose
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
Content-Length: 6
-
Connection: close
-

-
-foo-
-
</stdout>
-
<protocol>
-
GET /556 HTTP/1.1
-
Host: ninja
-

-
GET /556 HTTP/1.1
-
Host: ninja
-

-
</protocol>
-

-
<errorcode>
-
0
-
</errorcode>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test784
@@ -1,59 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--variable
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Content-Type: text/html
-
Funny-head: yesyes
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--variable with a file byte range
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --variable "name[5-15]@%LOGDIR/in%TESTNUMBER" --expand-data '{{name}}'
-
</command>
-
<file name="%LOGDIR/in%TESTNUMBER">
-
On the first Monday of the month of April, 1625, the market town of Meung
-
</file>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol crlf="yes" nonewline="yes">
-
POST /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Content-Length: 11
-
Content-Type: application/x-www-form-urlencoded
-

-
e first Mon
-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test785
@@ -1,59 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--variable
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Content-Type: text/html
-
Funny-head: yesyes
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--variable with a file byte range without end
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --variable "name[5-]@%LOGDIR/in%TESTNUMBER" --expand-data '{{name}}'
-
</command>
-
<file name="%LOGDIR/in%TESTNUMBER">
-
On the first Monday of the month of April, 1625, the market town of Meung
-
</file>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol>
-
POST /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Content-Length: 69
-
Content-Type: application/x-www-form-urlencoded
-

-
e first Monday of the month of April, 1625, the market town of Meung
-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test786
@@ -1,59 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--variable
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Content-Type: text/html
-
Funny-head: yesyes
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--variable with a file byte range, reading from stdin
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --variable "name[5-15]@-" --expand-data '{{name}}'
-
</command>
-
<stdin>
-
On the first Monday of the month of April, 1625, the market town of Meung
-
</stdin>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol nonewline="yes">
-
POST /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Content-Length: 11
-
Content-Type: application/x-www-form-urlencoded
-

-
e first Mon
-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test787
@@ -1,35 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--variable
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--variable with a file byte range, bad range
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --variable "name[15-14]@&LOGDIR/fooo" --expand-data '{{name}}'
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<errorcode>
-
2
-
</errorcode>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test788
@@ -1,59 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--variable
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Content-Type: text/html
-
Funny-head: yesyes
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--variable with a file and single-byte byte range
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --variable "name[15-15]@%LOGDIR/in%TESTNUMBER" --expand-data '{{name}}'
-
</command>
-
<file name="%LOGDIR/in%TESTNUMBER">
-
On the first Monday of the month of April, 1625, the market town of Meung
-
</file>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol crlf="yes" nonewline="yes">
-
POST /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Content-Length: 1
-
Content-Type: application/x-www-form-urlencoded
-

-
n
-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test789
@@ -1,58 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--variable
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Content-Type: text/html
-
Funny-head: yesyes
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--variable with a file and byte range out of file
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --variable "name[75-85]@%LOGDIR/in%TESTNUMBER" --expand-data '{{name}}'
-
</command>
-
<file name="%LOGDIR/in%TESTNUMBER">
-
On the first Monday of the month of April, 1625, the market town of Meung
-
</file>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol crlf="yes">
-
POST /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Content-Length: 0
-
Content-Type: application/x-www-form-urlencoded
-

-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test790
@@ -1,56 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--variable
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Content-Type: text/html
-
Funny-head: yesyes
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--variable with a byte range using plain assign
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --variable "name[5-9]=0123456789abcdef" --expand-data '{{name}}'
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol crlf="yes" nonewline="yes">
-
POST /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Content-Length: 5
-
Content-Type: application/x-www-form-urlencoded
-

-
56789
-
</protocol>
-
</verify>
-
</testcase>
deleted external/curl/tests/data/test791
@@ -1,56 +0,0 @@
-
<testcase>
-
<info>
-
<keywords>
-
HTTP
-
--variable
-
</keywords>
-
</info>
-

-
#
-
# Server-side
-
<reply>
-
<data crlf="yes">
-
HTTP/1.1 200 OK
-
Date: Tue, 09 Nov 2010 14:49:00 GMT
-
Server: test-server/fake
-
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-
ETag: "21025-dc7-39462498"
-
Accept-Ranges: bytes
-
Content-Length: 6
-
Connection: close
-
Content-Type: text/html
-
Funny-head: yesyes
-

-
-foo-
-
</data>
-
</reply>
-

-
#
-
# Client-side
-
<client>
-
<server>
-
http
-
</server>
-
<name>
-
--variable with a byte range using plain assign, out of range
-
</name>
-
<command>
-
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --variable "name[10-30]=0123456789abcdef" --expand-data '{{name}}'
-
</command>
-
</client>
-

-
#
-
# Verify data after the test has been "shot"
-
<verify>
-
<protocol crlf="yes" nonewline="yes">
-
POST /%TESTNUMBER HTTP/1.1
-
Host: %HOSTIP:%HTTPPORT
-
User-Agent: curl/%VERSION
-
Accept: */*
-
Content-Length: 6
-
Content-Type: application/x-www-form-urlencoded
-

-
abcdef
-
</protocol>
-
</verify>
-
</testcase>
modified external/curl/tests/data/test970
@@ -59,7 +59,7 @@ Accept: */*

</protocol>
<stdout nonewline="yes">
-
{"certs":"","conn_id":0,"content_type":"text/html","errormsg":null,"exitcode":0,"filename_effective":"%LOGDIR/out%TESTNUMBER","ftp_entry_path":null,"http_code":200,"http_connect":0,"http_version":"1.1","local_ip":"127.0.0.1","local_port":13,"method":"GET","num_certs":0,"num_connects":1,"num_headers":9,"num_redirects":0,"num_retries":0,"proxy_ssl_verify_result":0,"proxy_used":0,"redirect_url":null,"referer":null,"remote_ip":"%HOSTIP","remote_port":%HTTPPORT,"response_code":200,"scheme":"http","size_download":445,"size_header":4019,"size_request":4019,"size_upload":0,"speed_download":13,"speed_upload":13,"ssl_verify_result":0,"time_appconnect":0.000013,"time_connect":0.000013,"time_namelookup":0.000013,"time_posttransfer":0.000013,"time_pretransfer":0.000013,"time_queue":0.000013,"time_redirect":0.000013,"time_starttransfer":0.000013,"time_total":0.000013,"url":"http://%HOSTIP:%HTTPPORT/%TESTNUMBER","url.fragment":null,"url.host":"127.0.0.1","url.options":null,"url.password":null,"url.path":"/%TESTNUMBER","url.port":"%HTTPPORT","url.query":null,"url.scheme":"http","url.user":null,"url.zoneid":null,"url_effective":"http://%HOSTIP:%HTTPPORT/%TESTNUMBER","urle.fragment":null,"urle.host":"127.0.0.1","urle.options":null,"urle.password":null,"urle.path":"/%TESTNUMBER","urle.port":"%HTTPPORT","urle.query":null,"urle.scheme":"http","urle.user":null,"urle.zoneid":null,"urlnum":0,"xfer_id":0,"curl_version":"curl-unit-test-fake-version"}
+
{"certs":"","conn_id":0,"content_type":"text/html","errormsg":null,"exitcode":0,"filename_effective":"%LOGDIR/out%TESTNUMBER","ftp_entry_path":null,"http_code":200,"http_connect":0,"http_version":"1.1","local_ip":"127.0.0.1","local_port":13,"method":"GET","num_certs":0,"num_connects":1,"num_headers":9,"num_redirects":0,"num_retries":0,"proxy_ssl_verify_result":0,"proxy_used":0,"redirect_url":null,"referer":null,"remote_ip":"%HOSTIP","remote_port":%HTTPPORT,"response_code":200,"scheme":"http","size_download":445,"size_header":4019,"size_request":4019,"size_upload":0,"speed_download":13,"speed_upload":13,"ssl_verify_result":0,"time_appconnect":0.000013,"time_connect":0.000013,"time_namelookup":0.000013,"time_posttransfer":0.000013,"time_pretransfer":0.000013,"time_redirect":0.000013,"time_starttransfer":0.000013,"time_total":0.000013,"url":"http://%HOSTIP:%HTTPPORT/%TESTNUMBER","url.fragment":null,"url.host":"127.0.0.1","url.options":null,"url.password":null,"url.path":"/%TESTNUMBER","url.port":"%HTTPPORT","url.query":null,"url.scheme":"http","url.user":null,"url.zoneid":null,"url_effective":"http://%HOSTIP:%HTTPPORT/%TESTNUMBER","urle.fragment":null,"urle.host":"127.0.0.1","urle.options":null,"urle.password":null,"urle.path":"/%TESTNUMBER","urle.port":"%HTTPPORT","urle.query":null,"urle.scheme":"http","urle.user":null,"urle.zoneid":null,"urlnum":0,"xfer_id":0,"curl_version":"curl-unit-test-fake-version"}
</stdout>
</verify>
</testcase>
modified external/curl/tests/data/test972
@@ -60,7 +60,7 @@ Accept: */*

</protocol>
<stdout mode="text">
-
{"certs":"","conn_id":0,"content_type":"text/html","errormsg":null,"exitcode":0,"filename_effective":"%LOGDIR/out%TESTNUMBER","ftp_entry_path":null,"http_code":200,"http_connect":0,"http_version":"1.1","local_ip":"127.0.0.1","local_port":13,"method":"GET","num_certs":0,"num_connects":1,"num_headers":9,"num_redirects":0,"num_retries":0,"proxy_ssl_verify_result":0,"proxy_used":0,"redirect_url":null,"referer":null,"remote_ip":"%HOSTIP","remote_port":%HTTPPORT,"response_code":200,"scheme":"http","size_download":445,"size_header":4019,"size_request":4019,"size_upload":0,"speed_download":13,"speed_upload":13,"ssl_verify_result":0,"time_appconnect":0.000013,"time_connect":0.000013,"time_namelookup":0.000013,"time_posttransfer":0.000013,"time_pretransfer":0.000013,"time_queue":0.000013,"time_redirect":0.000013,"time_starttransfer":0.000013,"time_total":0.000013,"url":"http://%HOSTIP:%HTTPPORT/%TESTNUMBER","url.fragment":null,"url.host":"127.0.0.1","url.options":null,"url.password":null,"url.path":"/%TESTNUMBER","url.port":"%HTTPPORT","url.query":null,"url.scheme":"http","url.user":null,"url.zoneid":null,"url_effective":"http://%HOSTIP:%HTTPPORT/%TESTNUMBER","urle.fragment":null,"urle.host":"127.0.0.1","urle.options":null,"urle.password":null,"urle.path":"/%TESTNUMBER","urle.port":"%HTTPPORT","urle.query":null,"urle.scheme":"http","urle.user":null,"urle.zoneid":null,"urlnum":0,"xfer_id":0,"curl_version":"curl-unit-test-fake-version"}
+
{"certs":"","conn_id":0,"content_type":"text/html","errormsg":null,"exitcode":0,"filename_effective":"%LOGDIR/out%TESTNUMBER","ftp_entry_path":null,"http_code":200,"http_connect":0,"http_version":"1.1","local_ip":"127.0.0.1","local_port":13,"method":"GET","num_certs":0,"num_connects":1,"num_headers":9,"num_redirects":0,"num_retries":0,"proxy_ssl_verify_result":0,"proxy_used":0,"redirect_url":null,"referer":null,"remote_ip":"%HOSTIP","remote_port":%HTTPPORT,"response_code":200,"scheme":"http","size_download":445,"size_header":4019,"size_request":4019,"size_upload":0,"speed_download":13,"speed_upload":13,"ssl_verify_result":0,"time_appconnect":0.000013,"time_connect":0.000013,"time_namelookup":0.000013,"time_posttransfer":0.000013,"time_pretransfer":0.000013,"time_redirect":0.000013,"time_starttransfer":0.000013,"time_total":0.000013,"url":"http://%HOSTIP:%HTTPPORT/%TESTNUMBER","url.fragment":null,"url.host":"127.0.0.1","url.options":null,"url.password":null,"url.path":"/%TESTNUMBER","url.port":"%HTTPPORT","url.query":null,"url.scheme":"http","url.user":null,"url.zoneid":null,"url_effective":"http://%HOSTIP:%HTTPPORT/%TESTNUMBER","urle.fragment":null,"urle.host":"127.0.0.1","urle.options":null,"urle.password":null,"urle.path":"/%TESTNUMBER","urle.port":"%HTTPPORT","urle.query":null,"urle.scheme":"http","urle.user":null,"urle.zoneid":null,"urlnum":0,"xfer_id":0,"curl_version":"curl-unit-test-fake-version"}
</stdout>
</verify>
</testcase>
modified external/curl/tests/getpart.pm
@@ -308,48 +308,15 @@ sub striparray {
sub compareparts {
 my ($firstref, $secondref)=@_;

-
 # we cannot compare arrays index per index since with the base64 chunks,
-
 # they may not be "evenly" distributed
 my $first = join("", @$firstref);
 my $second = join("", @$secondref);

-
 if($first =~ /%alternatives\[/) {
-
     die "bad use of compareparts\n";
-
 }
+
 # we cannot compare arrays index per index since with the base64 chunks,
+
 # they may not be "evenly" distributed

-
 if($second =~ /%alternatives\[([^,]*),([^\]]*)\]/) {
-
     # there can be many %alternatives in this chunk, so we call
-
     # this function recursively
-
     my $alt = $second;
-
     $alt =~ s/%alternatives\[([^,]*),([^\]]*)\]/$1/;
-

-
     # check first alternative
-
     {
-
         my @f;
-
         my @s;
-
         push @f, $first;
-
         push @s, $alt;
-
         if(!compareparts(\@f, \@s)) {
-
             return 0;
-
         }
-
     }
-

-
     $alt = $second;
-
     $alt =~ s/%alternatives\[([^,]*),([^\]]*)\]/$2/;
-
     # check second alternative
-
     {
-
         my @f;
-
         my @s;
-
         push @f, $first;
-
         push @s, $alt;
-
         if(!compareparts(\@f, \@s)) {
-
             return 0;
-
         }
-
     }
-

-
     # neither matched
-
     return 1;
-
 }
+
 # NOTE: this no longer strips off carriage returns from the arrays. Is that
+
 # really necessary? It ruins the testing of newlines. I believe it was once
+
 # added to enable tests on Windows.

 if($first ne $second) {
     return 1;
modified external/curl/tests/http/CMakeLists.txt
@@ -40,6 +40,12 @@ if(NOT HTTPD)
endif()
mark_as_advanced(HTTPD)

+
find_program(APACHECTL "apache2ctl")  # /usr/sbin/apache2ctl
+
if(NOT APACHECTL)
+
  set(APACHECTL "")
+
endif()
+
mark_as_advanced(APACHECTL)
+

find_program(APXS "apxs")
if(NOT APXS)
  set(APXS "")
@@ -52,5 +58,5 @@ if(NOT HTTPD_NGHTTPX)
endif()
mark_as_advanced(HTTPD_NGHTTPX)

-
# Consumed variables: APXS, CADDY, HTTPD, HTTPD_NGHTTPX, VSFTPD
+
# Consumed variables: APACHECTL, APXS, CADDY, HTTPD, HTTPD_NGHTTPX, VSFTPD
configure_file("config.ini.in" "${CMAKE_CURRENT_BINARY_DIR}/config.ini" @ONLY)
modified external/curl/tests/http/Makefile.in
@@ -229,6 +229,7 @@ am__relativize = \
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -253,10 +254,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -275,14 +297,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -319,6 +349,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -326,10 +359,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/tests/http/README.md
@@ -10,9 +10,7 @@ This is an additional test suite using a combination of Apache httpd and nghttpx

# Usage

-
The test cases and necessary files are in `tests/http`. You can invoke
-
`pytest` from there or from the top level curl checkout and it finds all
-
tests.
+
The test cases and necessary files are in `tests/http`. You can invoke `pytest` from there or from the top level curl checkout and it will find all tests.

```
curl> pytest test/http
@@ -31,18 +29,16 @@ curl/tests/http> pytest -vv -k test_01_02

runs all test cases that have `test_01_02` in their name. This does not have to be the start of the name.

-
Depending on your setup, some test cases may be skipped and appear as `s` in
-
the output. If you run pytest verbose, it also gives you the reason for
-
skipping.
+
Depending on your setup, some test cases may be skipped and appear as `s` in the output. If you run pytest verbose, it will also give you the reason for skipping.

# Prerequisites

-
You need:
+
You will need:

1. a recent Python, the `cryptography` module and, of course, `pytest`
-
2. an apache httpd development version. On Debian/Ubuntu, the package `apache2-dev` has this
+
2. an apache httpd development version. On Debian/Ubuntu, the package `apache2-dev` has this.
3. a local `curl` project build
-
3. optionally, a `nghttpx` with HTTP/3 enabled or h3 test cases are skipped
+
3. optionally, a `nghttpx` with HTTP/3 enabled or h3 test cases will be skipped.

### Configuration

@@ -89,23 +85,12 @@ There is a lot of [`pytest` documentation](https://docs.pytest.org/) with exampl

In `conftest.py` 3 "fixtures" are defined that are used by all test cases:

-
1. `env`: the test environment. It is an instance of class
-
   `testenv/env.py:Env`. It holds all information about paths, availability of
-
   features (HTTP/3), port numbers to use, domains and SSL certificates for
-
   those.
-
2. `httpd`: the Apache httpd instance, configured and started, then stopped at
-
   the end of the test suite. It has sites configured for the domains from
-
   `env`. It also loads a local module `mod_curltest?` and makes it available
-
   in certain locations. (more on mod_curltest below).
-
3. `nghttpx`: an instance of nghttpx that provides HTTP/3 support. `nghttpx`
-
   proxies those requests to the `httpd` server. In a direct mapping, so you
-
   may access all the resources under the same path as with HTTP/2. Only the
-
   port number used for HTTP/3 requests are different.
-

-
`pytest` manages these fixture so that they are created once and terminated
-
before exit. This means you can `Ctrl-C` a running pytest and the server then
-
shutdowns. Only when you brutally chop its head off, might there be servers
-
left behind.
+
1. `env`: the test environment. It is an instance of class `testenv/env.py:Env`. It holds all information about paths, availability of features (HTTP/3), port numbers to use, domains and SSL certificates for those.
+
2. `httpd`: the Apache httpd instance, configured and started, then stopped at the end of the test suite. It has sites configured for the domains from `env`. It also loads a local module `mod_curltest?` and makes it available in certain locations. (more on mod_curltest below).
+
3. `nghttpx`: an instance of nghttpx that provides HTTP/3 support. `nghttpx` proxies those requests to the `httpd` server. In a direct mapping, so you may access all the resources under the same path as with HTTP/2. Only the port number used for HTTP/3 requests will be different.
+

+
`pytest` manages these fixture so that they are created once and terminated before exit. This means you can `Ctrl-C` a running pytest and the server will shutdown. Only when you brutally chop its head off, might there be servers left
+
behind.

### Test Cases

@@ -141,10 +126,4 @@ The module adds 2 "handlers" to the Apache server (right now). Handler are piece
  * `s`: seconds (the default)
  * `ms`: milliseconds

-
As you can see, `mod_curltest`'s tweak handler allow to simulate many kinds of
-
responses. An example of its use is `test_03_01` where responses are delayed
-
using `chunk_delay`. This gives the response a defined duration and the test
-
uses that to reload `httpd` in the middle of the first request. A graceful
-
reload in httpd lets ongoing requests finish, but closes the connection
-
afterwards and tears down the serving process. The following request then
-
needs to open a new connection. This is verified by the test case.
+
As you can see, `mod_curltest`'s tweak handler allow to simulate many kinds of responses. An example of its use is `test_03_01` where responses are delayed using `chunk_delay`. This gives the response a defined duration and the test uses that to reload `httpd` in the middle of the first request. A graceful reload in httpd lets ongoing requests finish, but will close the connection afterwards and tear down the serving process. The following request need then to open a new connection. This is verified by the test case.
modified external/curl/tests/http/clients/CMakeLists.txt
@@ -25,7 +25,7 @@
add_custom_target(test-http-clients)

# Get 'check_PROGRAMS' variable
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

foreach(_target IN LISTS check_PROGRAMS)
@@ -38,7 +38,7 @@ foreach(_target IN LISTS check_PROGRAMS)
    "${PROJECT_SOURCE_DIR}/lib"  # for "curl_setup.h"
  )
  target_link_libraries(${_target_name} ${LIB_SELECTED} ${CURL_LIBS})
-
  target_compile_definitions(${_target_name} PRIVATE "CURL_NO_OLDIES" "$<$<BOOL:MSVC>:_CRT_SECURE_NO_DEPRECATE>")
+
  target_compile_definitions(${_target_name} PRIVATE "CURL_NO_OLDIES")
  if(LIB_SELECTED STREQUAL LIB_STATIC AND WIN32)
    set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_STATICLIB")
  endif()
modified external/curl/tests/http/clients/Makefile.in
@@ -136,9 +136,9 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@USE_CPPFLAG_CURL_STATICLIB_TRUE@am__append_1 = -DCURL_STATICLIB
-
check_PROGRAMS = h2-pausing$(EXEEXT) h2-serverpush$(EXEEXT) \
-
	h2-upgrade-extreme$(EXEEXT) hx-download$(EXEEXT) \
-
	hx-upload$(EXEEXT) tls-session-reuse$(EXEEXT) \
+
check_PROGRAMS = hx-download$(EXEEXT) hx-upload$(EXEEXT) \
+
	h2-pausing$(EXEEXT) h2-serverpush$(EXEEXT) \
+
	h2-upgrade-extreme$(EXEEXT) tls-session-reuse$(EXEEXT) \
	upload-pausing$(EXEEXT) ws-data$(EXEEXT) ws-pingpong$(EXEEXT)
subdir = tests/http/clients
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -287,6 +287,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -313,10 +314,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -335,14 +357,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -381,6 +411,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -388,10 +421,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
modified external/curl/tests/http/clients/Makefile.inc
@@ -24,11 +24,11 @@

# These are all libcurl example programs to be test compiled
check_PROGRAMS = \
+
  hx-download \
+
  hx-upload \
  h2-pausing \
  h2-serverpush \
  h2-upgrade-extreme \
-
  hx-download \
-
  hx-upload \
  tls-session-reuse \
  upload-pausing \
  ws-data \
modified external/curl/tests/http/clients/h2-pausing.c
@@ -140,11 +140,11 @@ static int debug_cb(CURL *handle, curl_infotype type,
  return 0;
}

-
#define ERR()                                                             \
-
  do {                                                                    \
-
    fprintf(stderr, "something unexpected went wrong - bailing out!\n");  \
-
    exit(2);                                                              \
-
  } while(0)
+
static int err(void)
+
{
+
  fprintf(stderr, "something unexpected went wrong - bailing out!\n");
+
  exit(2);
+
}

static void usage(const char *msg)
{
@@ -292,24 +292,24 @@ int main(int argc, char *argv[])
      curl_easy_setopt(handles[i].h, CURLOPT_RESOLVE, resolve) != CURLE_OK ||
      curl_easy_setopt(handles[i].h, CURLOPT_PIPEWAIT, 1L) ||
      curl_easy_setopt(handles[i].h, CURLOPT_URL, url) != CURLE_OK) {
-
      ERR();
+
      err();
    }
    curl_easy_setopt(handles[i].h, CURLOPT_HTTP_VERSION, (long)http_version);
  }

  multi_handle = curl_multi_init();
  if(!multi_handle)
-
    ERR();
+
    err();

  for(i = 0; i < HANDLECOUNT; i++) {
    if(curl_multi_add_handle(multi_handle, handles[i].h) != CURLM_OK)
-
      ERR();
+
      err();
  }

  for(rounds = 0;; rounds++) {
    fprintf(stderr, "INFO: multi_perform round %d\n", rounds);
    if(curl_multi_perform(multi_handle, &still_running) != CURLM_OK)
-
      ERR();
+
      err();

    if(!still_running) {
      int as_expected = 1;
@@ -343,7 +343,7 @@ int main(int argc, char *argv[])
    }

    if(curl_multi_poll(multi_handle, NULL, 0, 100, &numfds) != CURLM_OK)
-
      ERR();
+
      err();

    /* !checksrc! disable EQUALSNULL 1 */
    while((msg = curl_multi_info_read(multi_handle, &msgs_left)) != NULL) {
modified external/curl/tests/http/clients/hx-download.c
@@ -37,10 +37,6 @@
#include <unistd.h>  /* getopt() */
#endif

-
#ifdef _WIN32
-
#define strdup _strdup
-
#endif
-

#ifndef CURLPIPE_MULTIPLEX
#error "too old libcurl, cannot do HTTP/2 server push!"
#endif
@@ -283,10 +279,8 @@ static void usage(const char *msg)
  fprintf(stderr,
    "  -A number  abort transfer after `number` response bytes\n"
    "  -F number  fail writing response after `number` response bytes\n"
-
    "  -M number  max concurrent connections to a host\n"
    "  -P number  pause transfer after `number` response bytes\n"
    "  -r <host>:<port>:<addr>  resolve information\n"
-
    "  -T number  max concurrent connections total\n"
    "  -V http_version (http/1.1, h2, h3) http version to use\n"
  );
}
@@ -314,16 +308,13 @@ int main(int argc, char *argv[])
  struct curl_slist *host = NULL;
  char *resolve = NULL;
  size_t max_host_conns = 0;
-
  size_t max_total_conns = 0;
  int fresh_connect = 0;
-
  int result = 0;

-
  while((ch = getopt(argc, argv, "aefhm:n:xA:F:M:P:r:T:V:")) != -1) {
+
  while((ch = getopt(argc, argv, "aefhm:n:xA:F:M:P:r:V:")) != -1) {
    switch(ch) {
    case 'h':
      usage(NULL);
-
      result = 2;
-
      goto cleanup;
+
      return 2;
    case 'a':
      abort_paused = 1;
      break;
@@ -355,12 +346,8 @@ int main(int argc, char *argv[])
      pause_offset = (size_t)strtol(optarg, NULL, 10);
      break;
    case 'r':
-
      free(resolve);
      resolve = strdup(optarg);
      break;
-
    case 'T':
-
      max_total_conns = (size_t)strtol(optarg, NULL, 10);
-
      break;
    case 'V': {
      if(!strcmp("http/1.1", optarg))
        http_version = CURL_HTTP_VERSION_1_1;
@@ -370,15 +357,13 @@ int main(int argc, char *argv[])
        http_version = CURL_HTTP_VERSION_3ONLY;
      else {
        usage("invalid http version");
-
        result = 1;
-
        goto cleanup;
+
        return 1;
      }
      break;
    }
    default:
-
      usage("invalid option");
-
      result = 1;
-
      goto cleanup;
+
     usage("invalid option");
+
     return 1;
    }
  }
  argc -= optind;
@@ -389,8 +374,7 @@ int main(int argc, char *argv[])

  if(argc != 1) {
    usage("not enough arguments");
-
    result = 2;
-
    goto cleanup;
+
    return 2;
  }
  url = argv[0];

@@ -400,8 +384,7 @@ int main(int argc, char *argv[])
  share = curl_share_init();
  if(!share) {
    fprintf(stderr, "error allocating share\n");
-
    result = 1;
-
    goto cleanup;
+
    return 1;
  }
  curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
  curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
@@ -413,14 +396,11 @@ int main(int argc, char *argv[])
  transfers = calloc(transfer_count, sizeof(*transfers));
  if(!transfers) {
    fprintf(stderr, "error allocating transfer structs\n");
-
    result = 1;
-
    goto cleanup;
+
    return 1;
  }

  multi_handle = curl_multi_init();
  curl_multi_setopt(multi_handle, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX);
-
  curl_multi_setopt(multi_handle, CURLMOPT_MAX_TOTAL_CONNECTIONS,
-
                    (long)max_total_conns);
  curl_multi_setopt(multi_handle, CURLMOPT_MAX_HOST_CONNECTIONS,
                    (long)max_host_conns);

@@ -441,8 +421,7 @@ int main(int argc, char *argv[])
       setup(t->easy, url, t, http_version, host, share, use_earlydata,
             fresh_connect)) {
      fprintf(stderr, "[t-%d] FAILED setup\n", (int)i);
-
      result = 1;
-
      goto cleanup;
+
      return 1;
    }
    curl_multi_add_handle(multi_handle, t->easy);
    t->started = 1;
@@ -485,6 +464,7 @@ int main(int argc, char *argv[])
        }
      }

+

      /* nothing happening, maintenance */
      if(abort_paused) {
        /* abort paused transfers */
@@ -521,8 +501,7 @@ int main(int argc, char *argv[])
               setup(t->easy, url, t, http_version, host, share,
                     use_earlydata, fresh_connect)) {
              fprintf(stderr, "[t-%d] FAILED setup\n", (int)i);
-
              result = 1;
-
              goto cleanup;
+
              return 1;
            }
            curl_multi_add_handle(multi_handle, t->easy);
            t->started = 1;
@@ -556,10 +535,9 @@ int main(int argc, char *argv[])

  curl_share_cleanup(share);
  curl_slist_free_all(host);
-
cleanup:
  free(resolve);

-
  return result;
+
  return 0;
#else
  (void)argc;
  (void)argv;
modified external/curl/tests/http/clients/upload-pausing.c
@@ -180,11 +180,11 @@ static int progress_callback(void *clientp,
  return 0;
}

-
#define ERR()                                                             \
-
  do {                                                                    \
-
    fprintf(stderr, "something unexpected went wrong - bailing out!\n");  \
-
    exit(2);                                                              \
-
  } while(0)
+
static int err(void)
+
{
+
  fprintf(stderr, "something unexpected went wrong - bailing out!\n");
+
  exit(2);
+
}

static void usage(const char *msg)
{
@@ -294,7 +294,7 @@ int main(int argc, char *argv[])
     curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, debug_cb)
     != CURLE_OK ||
     curl_easy_setopt(curl, CURLOPT_RESOLVE, resolve) != CURLE_OK)
-
    ERR();
+
    err();

  curl_easy_setopt(curl, CURLOPT_URL, url);
  curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, http_version);
modified external/curl/tests/http/clients/ws-data.c
@@ -26,18 +26,14 @@
 * </DESC>
 */
/* curl stuff */
+
#include "curl_setup.h"
#include <curl/curl.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

-
#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(_MSC_VER)
-

-
#ifndef _MSC_VER
-
/* somewhat Unix-specific */
-
#include <unistd.h>  /* getopt() */
-
#endif
+
#ifndef CURL_DISABLE_WEBSOCKETS

#ifdef _WIN32
#ifndef WIN32_LEAN_AND_MEAN
@@ -48,7 +44,6 @@
#include <sys/time.h>
#endif

-

static
void dump(const char *text, unsigned char *ptr, size_t size,
          char nohex)
@@ -98,46 +93,77 @@ void dump(const char *text, unsigned char *ptr, size_t size,
  }
}

-
static CURLcode check_recv(const struct curl_ws_frame *frame,
-
                           size_t r_offset, size_t nread, size_t exp_len)
+
static CURLcode send_binary(CURL *curl, char *buf, size_t buflen)
{
-
  if(!frame)
-
    return CURLE_OK;
+
  size_t nwritten;
+
  CURLcode result =
+
    curl_ws_send(curl, buf, buflen, &nwritten, 0, CURLWS_BINARY);
+
  fprintf(stderr, "ws: send_binary(len=%ld) -> %d, %ld\n",
+
          (long)buflen, result, (long)nwritten);
+
  return result;
+
}

-
  if(frame->flags & CURLWS_CLOSE) {
-
    fprintf(stderr, "recv_data: unexpected CLOSE frame from server, "
-
            "got %ld bytes, offset=%ld, rflags %x\n",
-
            (long)nread, (long)r_offset, frame->flags);
-
    return CURLE_RECV_ERROR;
-
  }
-
  if(!r_offset && !(frame->flags & CURLWS_BINARY)) {
-
    fprintf(stderr, "recv_data: wrong frame, got %ld bytes, offset=%ld, "
-
            "rflags %x\n",
-
            (long)nread, (long)r_offset, frame->flags);
-
    return CURLE_RECV_ERROR;
-
  }
-
  if(frame->offset != (curl_off_t)r_offset) {
-
    fprintf(stderr, "recv_data: frame offset, expected %ld, got %ld\n",
-
            (long)r_offset, (long)frame->offset);
-
    return CURLE_RECV_ERROR;
-
  }
-
  if(frame->bytesleft != (curl_off_t)(exp_len - r_offset - nread)) {
-
    fprintf(stderr, "recv_data: frame bytesleft, expected %ld, got %ld\n",
-
            (long)(exp_len - r_offset - nread), (long)frame->bytesleft);
-
    return CURLE_RECV_ERROR;
-
  }
-
  if(r_offset + nread > exp_len) {
-
    fprintf(stderr, "recv_data: data length, expected %ld, now at %ld\n",
-
            (long)exp_len, (long)(r_offset + nread));
-
    return CURLE_RECV_ERROR;
+
static CURLcode recv_binary(CURL *curl, char *exp_data, size_t exp_len)
+
{
+
  const struct curl_ws_frame *frame;
+
  char recvbuf[256];
+
  size_t r_offset, nread;
+
  CURLcode result;
+

+
  fprintf(stderr, "recv_binary: expected payload %ld bytes\n", (long)exp_len);
+
  r_offset = 0;
+
  while(1) {
+
    result = curl_ws_recv(curl, recvbuf, sizeof(recvbuf), &nread, &frame);
+
    if(result == CURLE_AGAIN) {
+
      fprintf(stderr, "EAGAIN, sleep, try again\n");
+
#ifdef _WIN32
+
      Sleep(100);
+
#else
+
      usleep(100*1000);
+
#endif
+
      continue;
+
    }
+
    fprintf(stderr, "ws: curl_ws_recv(offset=%ld, len=%ld) -> %d, %ld\n",
+
            (long)r_offset, (long)sizeof(recvbuf), result, (long)nread);
+
    if(result) {
+
      return result;
+
    }
+
    if(!(frame->flags & CURLWS_BINARY)) {
+
      fprintf(stderr, "recv_data: wrong frame, got %ld bytes rflags %x\n",
+
              (long)nread, frame->flags);
+
      return CURLE_RECV_ERROR;
+
    }
+
    if(frame->offset != (curl_off_t)r_offset) {
+
      fprintf(stderr, "recv_data: frame offset, expected %ld, got %ld\n",
+
              (long)r_offset, (long)frame->offset);
+
      return CURLE_RECV_ERROR;
+
    }
+
    if(frame->bytesleft != (curl_off_t)(exp_len - r_offset - nread)) {
+
      fprintf(stderr, "recv_data: frame bytesleft, expected %ld, got %ld\n",
+
              (long)(exp_len - r_offset - nread), (long)frame->bytesleft);
+
      return CURLE_RECV_ERROR;
+
    }
+
    if(r_offset + nread > exp_len) {
+
      fprintf(stderr, "recv_data: data length, expected %ld, now at %ld\n",
+
              (long)exp_len, (long)(r_offset + nread));
+
      return CURLE_RECV_ERROR;
+
    }
+
    if(memcmp(exp_data + r_offset, recvbuf, nread)) {
+
      fprintf(stderr, "recv_data: data differs, offset=%ld, len=%ld\n",
+
              (long)r_offset, (long)nread);
+
      dump("expected:", (unsigned char *)exp_data + r_offset, nread, 0);
+
      dump("received:", (unsigned char *)recvbuf, nread, 0);
+
      return CURLE_RECV_ERROR;
+
    }
+
    r_offset += nread;
+
    if(r_offset >= exp_len) {
+
      fprintf(stderr, "recv_data: frame complete\n");
+
      break;
+
    }
  }
  return CURLE_OK;
}

-
#if defined(__TANDEM)
-
# include <cextdecs.h(PROCESS_DELAY_)>
-
#endif
-

/* just close the connection */
static void websocket_close(CURL *curl)
{
@@ -148,175 +174,73 @@ static void websocket_close(CURL *curl)
          "ws: curl_ws_send returned %u, sent %u\n", (int)result, (int)sent);
}

-
static CURLcode data_echo(CURL *curl, size_t count,
-
                          size_t plen_min, size_t plen_max)
+
static CURLcode data_echo(CURL *curl, size_t plen_min, size_t plen_max)
{
-
  CURLcode r = CURLE_OK;
-
  const struct curl_ws_frame *frame;
+
  CURLcode res = CURLE_OK;
  size_t len;
-
  char *send_buf = NULL, *recv_buf = NULL;
-
  size_t i, scount = count, rcount = count;
-
  int rblock, sblock;
-

-
  send_buf = calloc(1, plen_max + 1);
-
  recv_buf = calloc(1, plen_max + 1);
-
  if(!send_buf || !recv_buf) {
-
    r = CURLE_OUT_OF_MEMORY;
-
    goto out;
-
  }
+
  char *send_buf;
+
  size_t i;

+
  send_buf = calloc(1, plen_max);
+
  if(!send_buf)
+
    return CURLE_OUT_OF_MEMORY;
  for(i = 0; i < plen_max; ++i) {
    send_buf[i] = (char)('0' + ((int)i % 10));
  }

  for(len = plen_min; len <= plen_max; ++len) {
-
    size_t nwritten, nread, slen = len, rlen = len;
-
    char *sbuf = send_buf, *rbuf = recv_buf;
-

-
    memset(recv_buf, 0, plen_max);
-
    while(slen || rlen || scount || rcount) {
-
      sblock = rblock = 1;
-
      if(slen) {
-
        r = curl_ws_send(curl, sbuf, slen, &nwritten, 0, CURLWS_BINARY);
-
        sblock = (r == CURLE_AGAIN);
-
        if(!r || (r == CURLE_AGAIN)) {
-
          fprintf(stderr, "curl_ws_send(len=%ld) -> %d, %ld (%ld/%ld)\n",
-
                  (long)slen, r, (long)nwritten,
-
                  (long)(len - slen), (long)len);
-
          sbuf += nwritten;
-
          slen -= nwritten;
-
        }
-
        else
-
          goto out;
-
      }
-
      if(!slen && scount) { /* go again? */
-
        scount--;
-
        sbuf = send_buf;
-
        slen = len;
-
      }
-

-
      if(rlen) {
-
        size_t max_recv = (64 * 1024);
-
        r = curl_ws_recv(curl, rbuf, (rlen > max_recv) ? max_recv : rlen,
-
                         &nread, &frame);
-
        if(!r || (r == CURLE_AGAIN)) {
-
          rblock = (r == CURLE_AGAIN);
-
          fprintf(stderr, "curl_ws_recv(len=%ld) -> %d, %ld (%ld/%ld) \n",
-
                  (long)rlen, r, (long)nread, (long)(len - rlen), (long)len);
-
          if(!r) {
-
            r = check_recv(frame, len - rlen, nread, len);
-
            if(r)
-
              goto out;
-
          }
-
          rbuf += nread;
-
          rlen -= nread;
-
        }
-
        else
-
          goto out;
-
      }
-
      if(!rlen && rcount) { /* go again? */
-
        rcount--;
-
        rbuf = recv_buf;
-
        rlen = len;
-
      }
-

-
      if(rblock && sblock) {
-
        fprintf(stderr, "EAGAIN, sleep, try again\n");
-
  #ifdef _WIN32
-
        Sleep(100);
-
  #elif defined(__TANDEM)
-
        /* NonStop only defines usleep when building for a threading model */
-
  # if defined(_PUT_MODEL_) || defined(_KLT_MODEL_)
-
        usleep(100*1000);
-
  # else
-
        PROCESS_DELAY_(100*1000);
-
  # endif
-
  #else
-
        usleep(100*1000);
-
  #endif
-
      }
-
    }
-

-
    if(memcmp(send_buf, recv_buf, len)) {
-
      fprintf(stderr, "recv_data: data differs\n");
-
      dump("expected:", (unsigned char *)send_buf, len, 0);
-
      dump("received:", (unsigned char *)recv_buf, len, 0);
-
      r = CURLE_RECV_ERROR;
+
    res = send_binary(curl, send_buf, len);
+
    if(res)
+
      goto out;
+
    res = recv_binary(curl, send_buf, len);
+
    if(res) {
+
      fprintf(stderr, "recv_data(len=%ld) -> %d\n", (long)len, res);
      goto out;
    }
  }

out:
-
  if(!r)
+
  if(!res)
    websocket_close(curl);
  free(send_buf);
-
  free(recv_buf);
-
  return r;
-
}
-

-
static void usage(const char *msg)
-
{
-
  if(msg)
-
    fprintf(stderr, "%s\n", msg);
-
  fprintf(stderr,
-
    "usage: [options] url\n"
-
    "  -m number  minimum frame size\n"
-
    "  -M number  maximum frame size\n"
-
  );
+
  return res;
}

#endif

int main(int argc, char *argv[])
{
-
#if !defined(CURL_DISABLE_WEBSOCKETS) && !defined(_MSC_VER)
+
#ifndef CURL_DISABLE_WEBSOCKETS
  CURL *curl;
  CURLcode res = CURLE_OK;
  const char *url;
-
  size_t plen_min = 0, plen_max = 0, count = 1;
-
  int ch;
-

-
  while((ch = getopt(argc, argv, "c:hm:M:")) != -1) {
-
    switch(ch) {
-
    case 'h':
-
      usage(NULL);
-
      res = CURLE_BAD_FUNCTION_ARGUMENT;
-
      goto cleanup;
-
    case 'c':
-
      count = (size_t)strtol(optarg, NULL, 10);
-
      break;
-
    case 'm':
-
      plen_min = (size_t)strtol(optarg, NULL, 10);
-
      break;
-
    case 'M':
-
      plen_max = (size_t)strtol(optarg, NULL, 10);
-
      break;
-
    default:
-
      usage("invalid option");
-
      res = CURLE_BAD_FUNCTION_ARGUMENT;
-
      goto cleanup;
-
    }
-
  }
-
  argc -= optind;
-
  argv += optind;
+
  long l1, l2;
+
  size_t plen_min, plen_max;

-
  if(!plen_max)
-
    plen_max = plen_min;

+
  if(argc != 4) {
+
    fprintf(stderr, "usage: ws-data url minlen maxlen\n");
+
    return 2;
+
  }
+
  url = argv[1];
+
  l1 = strtol(argv[2], NULL, 10);
+
  if(l1 < 0) {
+
    fprintf(stderr, "minlen must be >= 0, got %ld\n", l1);
+
    return 2;
+
  }
+
  l2 = strtol(argv[3], NULL, 10);
+
  if(l2 < 0) {
+
    fprintf(stderr, "maxlen must be >= 0, got %ld\n", l2);
+
    return 2;
+
  }
+
  plen_min = l1;
+
  plen_max = l2;
  if(plen_max < plen_min) {
    fprintf(stderr, "maxlen must be >= minlen, got %ld-%ld\n",
            (long)plen_min, (long)plen_max);
-
    res = CURLE_BAD_FUNCTION_ARGUMENT;
-
    goto cleanup;
+
    return 2;
  }

-
  if(argc != 1) {
-
    usage(NULL);
-
    res = CURLE_BAD_FUNCTION_ARGUMENT;
-
    goto cleanup;
-
  }
-
  url = argv[0];
-

  curl_global_init(CURL_GLOBAL_ALL);

  curl = curl_easy_init();
@@ -330,13 +254,11 @@ int main(int argc, char *argv[])
    res = curl_easy_perform(curl);
    fprintf(stderr, "curl_easy_perform() returned %u\n", (int)res);
    if(res == CURLE_OK)
-
      res = data_echo(curl, count, plen_min, plen_max);
+
      res = data_echo(curl, plen_min, plen_max);

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
-

-
cleanup:
  curl_global_cleanup();
  return (int)res;

modified external/curl/tests/http/clients/ws-pingpong.c
@@ -94,9 +94,6 @@ static void websocket_close(CURL *curl)
          "ws: curl_ws_send returned %u, sent %u\n", (int)result, (int)sent);
}

-
#if defined(__TANDEM)
-
# include <cextdecs.h(PROCESS_DELAY_)>
-
#endif
static CURLcode pingpong(CURL *curl, const char *payload)
{
  CURLcode res;
@@ -111,13 +108,6 @@ static CURLcode pingpong(CURL *curl, const char *payload)
    if(res == CURLE_AGAIN) {
#ifdef _WIN32
      Sleep(100);
-
#elif defined(__TANDEM)
-
      /* NonStop only defines usleep when building for a threading model */
-
# if defined(_PUT_MODEL_) || defined(_KLT_MODEL_)
-
      usleep(100*1000);
-
# else
-
      PROCESS_DELAY_(100*1000);
-
# endif
#else
      usleep(100*1000);
#endif
modified external/curl/tests/http/config.ini.in
@@ -28,6 +28,7 @@
[httpd]
apxs = @APXS@
httpd = @HTTPD@
+
apachectl = @APACHECTL@

[nghttpx]
nghttpx = @HTTPD_NGHTTPX@
modified external/curl/tests/http/scorecard.py
@@ -450,14 +450,15 @@ class ScoreCard:
            p['name'] = 'h2'
            if not self.env.have_h2_curl():
                raise ScoreCardError('curl does not support HTTP/2')
-
            for lib in ['nghttp2']:
+
            for lib in ['nghttp2', 'hyper']:
                if self.env.curl_uses_lib(lib):
                    p['implementation'] = lib
                    break
        elif self.protocol == 'h1' or self.protocol == 'http/1.1':
            proto = 'http/1.1'
            p['name'] = proto
-
            p['implementation'] = 'native'
+
            p['implementation'] = 'hyper' if self.env.curl_uses_lib('hyper')\
+
                else 'native'
        else:
            raise ScoreCardError(f"unknown protocol: {self.protocol}")

modified external/curl/tests/http/test_01_basic.py
@@ -88,7 +88,7 @@ class TestBasic:
    # simple download, check connect/handshake timings
    @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL")
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_01_06_timings(self, env: Env, httpd, nghttpx, proto):
+
    def test_01_06_timings(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        curl = CurlClient(env=env)
@@ -103,7 +103,7 @@ class TestBasic:
    # simple https: HEAD
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
    @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL")
-
    def test_01_07_head(self, env: Env, httpd, nghttpx, proto):
+
    def test_01_07_head(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        curl = CurlClient(env=env)
@@ -139,13 +139,3 @@ class TestBasic:
        assert r.response['status'] == 200, f'{r.responsw}'
        assert r.response['protocol'] == 'HTTP/2', f'{r.response}'
        assert r.json['server'] == env.domain1
-

-
    # http: strip TE header in HTTP/2 requests
-
    def test_01_10_te_strip(self, env: Env, httpd):
-
        curl = CurlClient(env=env)
-
        url = f'https://{env.authority_for(env.domain1, "h2")}/data.json'
-
        r = curl.http_get(url=url, extra_args=['--http2', '-H', 'TE: gzip'])
-
        r.check_exit_code(0)
-
        assert len(r.responses) == 1, f'{r.responses}'
-
        assert r.responses[0]['status'] == 200, f'{r.responses[1]}'
-
        assert r.responses[0]['protocol'] == 'HTTP/2', f'{r.responses[1]}'
modified external/curl/tests/http/test_02_download.py
@@ -59,7 +59,7 @@ class TestDownload:

    # download 1 file
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_01_download_1(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_01_download_1(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        curl = CurlClient(env=env)
@@ -69,7 +69,7 @@ class TestDownload:

    # download 2 files
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_02_download_2(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_02_download_2(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        curl = CurlClient(env=env)
@@ -79,7 +79,8 @@ class TestDownload:

    # download 100 files sequentially
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_03_download_sequential(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_03_download_sequential(self, env: Env,
+
                                       httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 10
@@ -90,7 +91,8 @@ class TestDownload:

    # download 100 files parallel
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_04_download_parallel(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_04_download_parallel(self, env: Env,
+
                                     httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 10
@@ -110,7 +112,8 @@ class TestDownload:

    # download 500 files sequential
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_05_download_many_sequential(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_05_download_many_sequential(self, env: Env,
+
                                            httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -129,7 +132,8 @@ class TestDownload:

    # download 500 files parallel
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_02_06_download_many_parallel(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_06_download_many_parallel(self, env: Env,
+
                                          httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 200
@@ -143,7 +147,8 @@ class TestDownload:

    # download files parallel, check connection reuse/multiplex
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_02_07_download_reuse(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_07_download_reuse(self, env: Env,
+
                                  httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 200
@@ -161,7 +166,8 @@ class TestDownload:

    # download files parallel with http/1.1, check connection not reused
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_02_07b_download_reuse(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_07b_download_reuse(self, env: Env,
+
                                   httpd, nghttpx, repeat, proto):
        count = 6
        curl = CurlClient(env=env)
        urln = f'https://{env.authority_for(env.domain1, proto)}/data.json?[0-{count-1}]'
@@ -174,7 +180,8 @@ class TestDownload:
        assert r.total_connects == count, "http/1.1 should use this many connections"

    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_08_1MB_serial(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_08_1MB_serial(self, env: Env,
+
                              httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 5
@@ -184,7 +191,8 @@ class TestDownload:
        r.check_response(count=count, http_status=200)

    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_02_09_1MB_parallel(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_09_1MB_parallel(self, env: Env,
+
                              httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 5
@@ -198,7 +206,8 @@ class TestDownload:
    @pytest.mark.skipif(condition=Env().slow_network, reason="not suitable for slow network tests")
    @pytest.mark.skipif(condition=Env().ci_run, reason="not suitable for CI runs")
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_10_10MB_serial(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_10_10MB_serial(self, env: Env,
+
                              httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 3
@@ -210,7 +219,8 @@ class TestDownload:
    @pytest.mark.skipif(condition=Env().slow_network, reason="not suitable for slow network tests")
    @pytest.mark.skipif(condition=Env().ci_run, reason="not suitable for CI runs")
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_02_11_10MB_parallel(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_11_10MB_parallel(self, env: Env,
+
                              httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -224,7 +234,8 @@ class TestDownload:
        r.check_response(count=count, http_status=200)

    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_02_12_head_serial_https(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_12_head_serial_https(self, env: Env,
+
                                     httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 5
@@ -236,7 +247,8 @@ class TestDownload:
        r.check_response(count=count, http_status=200)

    @pytest.mark.parametrize("proto", ['h2'])
-
    def test_02_13_head_serial_h2c(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_13_head_serial_h2c(self, env: Env,
+
                                    httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 5
@@ -248,7 +260,7 @@ class TestDownload:
        r.check_response(count=count, http_status=200)

    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_02_14_not_found(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_14_not_found(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -264,7 +276,7 @@ class TestDownload:
                      remote_ip='127.0.0.1')

    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_02_15_fail_not_found(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_15_fail_not_found(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -280,7 +292,7 @@ class TestDownload:
                      remote_ip='127.0.0.1')

    @pytest.mark.skipif(condition=Env().slow_network, reason="not suitable for slow network tests")
-
    def test_02_20_h2_small_frames(self, env: Env, httpd):
+
    def test_02_20_h2_small_frames(self, env: Env, httpd, repeat):
        # Test case to reproduce content corruption as observed in
        # https://github.com/curl/curl/issues/10525
        # To reliably reproduce, we need an Apache httpd that supports
@@ -315,7 +327,7 @@ class TestDownload:
    # download via lib client, 1 at a time, pause/resume at different offsets
    @pytest.mark.parametrize("pause_offset", [0, 10*1024, 100*1023, 640000])
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_21_lib_serial(self, env: Env, httpd, nghttpx, proto, pause_offset):
+
    def test_02_21_lib_serial(self, env: Env, httpd, nghttpx, proto, pause_offset, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 2
@@ -334,7 +346,7 @@ class TestDownload:
    # download via lib client, several at a time, pause/resume
    @pytest.mark.parametrize("pause_offset", [100*1023])
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_22_lib_parallel_resume(self, env: Env, httpd, nghttpx, proto, pause_offset):
+
    def test_02_22_lib_parallel_resume(self, env: Env, httpd, nghttpx, proto, pause_offset, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 2
@@ -354,7 +366,7 @@ class TestDownload:

    # download, several at a time, pause and abort paused
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_23a_lib_abort_paused(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_23a_lib_abort_paused(self, env: Env, httpd, nghttpx, proto, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_ossl_quic():
@@ -383,7 +395,7 @@ class TestDownload:

    # download, several at a time, abort after n bytes
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_23b_lib_abort_offset(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_23b_lib_abort_offset(self, env: Env, httpd, nghttpx, proto, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_ossl_quic():
@@ -412,7 +424,7 @@ class TestDownload:

    # download, several at a time, abort after n bytes
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_23c_lib_fail_offset(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_23c_lib_fail_offset(self, env: Env, httpd, nghttpx, proto, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_ossl_quic():
@@ -441,7 +453,7 @@ class TestDownload:

    # speed limited download
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_24_speed_limit(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_24_speed_limit(self, env: Env, httpd, nghttpx, proto, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 1
@@ -459,7 +471,7 @@ class TestDownload:

    # make extreme parallel h2 upgrades, check invalid conn reuse
    # before protocol switch has happened
-
    def test_02_25_h2_upgrade_x(self, env: Env, httpd):
+
    def test_02_25_h2_upgrade_x(self, env: Env, httpd, repeat):
        url = f'http://localhost:{env.http_port}/data-100k'
        client = LocalClient(name='h2-upgrade-extreme', env=env, timeout=15)
        if not client.exists():
@@ -470,7 +482,7 @@ class TestDownload:
    # Special client that tests TLS session reuse in parallel transfers
    # TODO: just uses a single connection for h2/h3. Not sure how to prevent that
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_26_session_shared_reuse(self, env: Env, proto, httpd, nghttpx):
+
    def test_02_26_session_shared_reuse(self, env: Env, proto, httpd, nghttpx, repeat):
        url = f'https://{env.authority_for(env.domain1, proto)}/data-100k'
        client = LocalClient(name='tls-session-reuse', env=env)
        if not client.exists():
@@ -480,7 +492,7 @@ class TestDownload:

    # test on paused transfers, based on issue #11982
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_27a_paused_no_cl(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_27a_paused_no_cl(self, env: Env, httpd, nghttpx, proto, repeat):
        url = f'https://{env.authority_for(env.domain1, proto)}' \
            '/curltest/tweak/?&chunks=6&chunk_size=8000'
        client = LocalClient(env=env, name='h2-pausing')
@@ -489,7 +501,7 @@ class TestDownload:

    # test on paused transfers, based on issue #11982
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_27b_paused_no_cl(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_27b_paused_no_cl(self, env: Env, httpd, nghttpx, proto, repeat):
        url = f'https://{env.authority_for(env.domain1, proto)}' \
            '/curltest/tweak/?error=502'
        client = LocalClient(env=env, name='h2-pausing')
@@ -498,7 +510,7 @@ class TestDownload:

    # test on paused transfers, based on issue #11982
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_27c_paused_no_cl(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_27c_paused_no_cl(self, env: Env, httpd, nghttpx, proto, repeat):
        url = f'https://{env.authority_for(env.domain1, proto)}' \
            '/curltest/tweak/?status=200&chunks=1&chunk_size=100'
        client = LocalClient(env=env, name='h2-pausing')
@@ -506,7 +518,7 @@ class TestDownload:
        r.check_exit_code(0)

    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_28_get_compressed(self, env: Env, httpd, nghttpx, proto):
+
    def test_02_28_get_compressed(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 1
@@ -534,7 +546,7 @@ class TestDownload:
    # download via lib client, 1 at a time, pause/resume at different offsets
    @pytest.mark.parametrize("pause_offset", [0, 10*1024, 100*1023, 640000])
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_02_29_h2_lib_serial(self, env: Env, httpd, nghttpx, proto, pause_offset):
+
    def test_02_29_h2_lib_serial(self, env: Env, httpd, nghttpx, proto, pause_offset, repeat):
        count = 2
        docname = 'data-10m'
        url = f'https://localhost:{env.https_port}/{docname}'
@@ -605,7 +617,7 @@ class TestDownload:
        earlydata = {}
        reused_session = False
        for line in r.trace_lines:
-
            m = re.match(r'^\[t-(\d+)] EarlyData: (-?\d+)', line)
+
            m = re.match(r'^\[t-(\d+)] EarlyData: (\d+)', line)
            if m:
                earlydata[int(m.group(1))] = int(m.group(2))
                continue
@@ -619,15 +631,16 @@ class TestDownload:
        elif proto == 'h2':
            assert earlydata[1] == 107, f'{earlydata}'
        elif proto == 'h3':
-
            assert earlydata[1] == 67, f'{earlydata}'
+
            # not implemented
+
            assert earlydata[1] == 0, f'{earlydata}'

    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
    @pytest.mark.parametrize("max_host_conns", [0, 1, 5])
    def test_02_33_max_host_conns(self, env: Env, httpd, nghttpx, proto, max_host_conns):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
-
        count = 50
-
        max_parallel = 50
+
        count = 100
+
        max_parallel = 100
        docname = 'data-10k'
        port = env.port_for(proto)
        url = f'https://{env.domain1}:{port}/{docname}'
@@ -645,46 +658,3 @@ class TestDownload:
        r.check_exit_code(0)
        srcfile = os.path.join(httpd.docs_dir, docname)
        self.check_downloads(client, srcfile, count)
-
        if max_host_conns > 0:
-
            matched_lines = 0
-
            for line in r.trace_lines:
-
                m = re.match(r'.*The cache now contains (\d+) members.*', line)
-
                if m:
-
                    matched_lines += 1
-
                    n = int(m.group(1))
-
                    assert n <= max_host_conns
-
            assert matched_lines > 0
-

-
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
-
    @pytest.mark.parametrize("max_total_conns", [0, 1, 5])
-
    def test_02_34_max_total_conns(self, env: Env, httpd, nghttpx, proto, max_total_conns):
-
        if proto == 'h3' and not env.have_h3():
-
            pytest.skip("h3 not supported")
-
        count = 50
-
        max_parallel = 50
-
        docname = 'data-10k'
-
        port = env.port_for(proto)
-
        url = f'https://{env.domain1}:{port}/{docname}'
-
        client = LocalClient(name='hx-download', env=env)
-
        if not client.exists():
-
            pytest.skip(f'example client not built: {client.name}')
-
        r = client.run(args=[
-
             '-n', f'{count}',
-
             '-m', f'{max_parallel}',
-
             '-x',  # always use a fresh connection
-
             '-T',  str(max_total_conns),  # limit total connections
-
             '-r', f'{env.domain1}:{port}:127.0.0.1',
-
             '-V', proto, url
-
        ])
-
        r.check_exit_code(0)
-
        srcfile = os.path.join(httpd.docs_dir, docname)
-
        self.check_downloads(client, srcfile, count)
-
        if max_total_conns > 0:
-
            matched_lines = 0
-
            for line in r.trace_lines:
-
                m = re.match(r'.*The cache now contains (\d+) members.*', line)
-
                if m:
-
                    matched_lines += 1
-
                    n = int(m.group(1))
-
                    assert n <= max_total_conns
-
            assert matched_lines > 0
modified external/curl/tests/http/test_03_goaway.py
@@ -46,7 +46,7 @@ class TestGoAway:
        httpd.reload()

    # download files sequentially with delay, reload server for GOAWAY
-
    def test_03_01_h2_goaway(self, env: Env, httpd, nghttpx):
+
    def test_03_01_h2_goaway(self, env: Env, httpd, nghttpx, repeat):
        proto = 'h2'
        count = 3
        self.r = None
@@ -78,7 +78,7 @@ class TestGoAway:

    # download files sequentially with delay, reload server for GOAWAY
    @pytest.mark.skipif(condition=not Env.have_h3(), reason="h3 not supported")
-
    def test_03_02_h3_goaway(self, env: Env, httpd, nghttpx):
+
    def test_03_02_h3_goaway(self, env: Env, httpd, nghttpx, repeat):
        proto = 'h3'
        if proto == 'h3' and env.curl_uses_lib('msh3'):
            pytest.skip("msh3 stalls here")
@@ -112,7 +112,7 @@ class TestGoAway:
                log.debug(f'request {idx} connected')

    # download files sequentially with delay, reload server for GOAWAY
-
    def test_03_03_h1_goaway(self, env: Env, httpd, nghttpx):
+
    def test_03_03_h1_goaway(self, env: Env, httpd, nghttpx, repeat):
        proto = 'http/1.1'
        count = 3
        self.r = None
modified external/curl/tests/http/test_04_stuttered.py
@@ -47,7 +47,8 @@ class TestStuttered:

    # download 1 file, check that delayed response works in general
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_04_01_download_1(self, env: Env, httpd, nghttpx, proto):
+
    def test_04_01_download_1(self, env: Env, httpd, nghttpx, repeat,
+
                              proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 1
@@ -62,7 +63,8 @@ class TestStuttered:
    # prepend 100 file requests to warm up connection processing limits
    # (Apache2 increases # of parallel processed requests after successes)
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_04_02_100_100_10(self, env: Env, httpd, nghttpx, proto):
+
    def test_04_02_100_100_10(self, env: Env,
+
                                httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 50
@@ -84,7 +86,7 @@ class TestStuttered:
    # prepend 100 file requests to warm up connection processing limits
    # (Apache2 increases # of parallel processed requests after successes)
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_04_03_1000_10_1(self, env: Env, httpd, nghttpx, proto):
+
    def test_04_03_1000_10_1(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 50
@@ -106,7 +108,7 @@ class TestStuttered:
    # prepend 100 file requests to warm up connection processing limits
    # (Apache2 increases # of parallel processed requests after successes)
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_04_04_1000_10_1(self, env: Env, httpd, nghttpx, proto):
+
    def test_04_04_1000_10_1(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 50
modified external/curl/tests/http/test_05_errors.py
@@ -46,7 +46,8 @@ class TestErrors:

    # download 1 file, check that we get CURLE_PARTIAL_FILE
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_05_01_partial_1(self, env: Env, httpd, nghttpx, proto):
+
    def test_05_01_partial_1(self, env: Env, httpd, nghttpx, repeat,
+
                              proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -68,7 +69,8 @@ class TestErrors:

    # download files, check that we get CURLE_PARTIAL_FILE for all
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_05_02_partial_20(self, env: Env, httpd, nghttpx, proto):
+
    def test_05_02_partial_20(self, env: Env, httpd, nghttpx, repeat,
+
                              proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -90,7 +92,7 @@ class TestErrors:
        assert len(invalid_stats) == 0, f'failed: {invalid_stats}'

    # access a resource that, on h2, RST the stream with HTTP_1_1_REQUIRED
-
    def test_05_03_required(self, env: Env, httpd, nghttpx):
+
    def test_05_03_required(self, env: Env, httpd, nghttpx, repeat):
        curl = CurlClient(env=env)
        proto = 'http/1.1'
        urln = f'https://{env.authority_for(env.domain1, proto)}/curltest/1_1'
@@ -115,7 +117,7 @@ class TestErrors:
    # - h2 to work since it will signal the end of the response before
    #   and not see the "unclean" close either
    @pytest.mark.parametrize("proto", ['http/1.0', 'http/1.1', 'h2'])
-
    def test_05_04_unclean_tls_shutdown(self, env: Env, httpd, nghttpx, proto):
+
    def test_05_04_unclean_tls_shutdown(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 10 if proto == 'h2' else 1
modified external/curl/tests/http/test_06_eyeballs.py
@@ -44,7 +44,7 @@ class TestEyeballs:

    # download using only HTTP/3 on working server
    @pytest.mark.skipif(condition=not Env.have_h3(), reason="missing HTTP/3 support")
-
    def test_06_01_h3_only(self, env: Env, httpd, nghttpx):
+
    def test_06_01_h3_only(self, env: Env, httpd, nghttpx, repeat):
        curl = CurlClient(env=env)
        urln = f'https://{env.authority_for(env.domain1, "h3")}/data.json'
        r = curl.http_download(urls=[urln], extra_args=['--http3-only'])
@@ -53,7 +53,7 @@ class TestEyeballs:

    # download using only HTTP/3 on missing server
    @pytest.mark.skipif(condition=not Env.have_h3(), reason="missing HTTP/3 support")
-
    def test_06_02_h3_only(self, env: Env, httpd, nghttpx):
+
    def test_06_02_h3_only(self, env: Env, httpd, nghttpx, repeat):
        nghttpx.stop_if_running()
        curl = CurlClient(env=env)
        urln = f'https://{env.authority_for(env.domain1, "h3")}/data.json'
@@ -62,7 +62,7 @@ class TestEyeballs:

    # download using HTTP/3 on missing server with fallback on h2
    @pytest.mark.skipif(condition=not Env.have_h3(), reason="missing HTTP/3 support")
-
    def test_06_03_h3_fallback_h2(self, env: Env, httpd, nghttpx):
+
    def test_06_03_h3_fallback_h2(self, env: Env, httpd, nghttpx, repeat):
        nghttpx.stop_if_running()
        curl = CurlClient(env=env)
        urln = f'https://{env.authority_for(env.domain1, "h3")}/data.json'
@@ -72,7 +72,7 @@ class TestEyeballs:

    # download using HTTP/3 on missing server with fallback on http/1.1
    @pytest.mark.skipif(condition=not Env.have_h3(), reason="missing HTTP/3 support")
-
    def test_06_04_h3_fallback_h1(self, env: Env, httpd, nghttpx):
+
    def test_06_04_h3_fallback_h1(self, env: Env, httpd, nghttpx, repeat):
        nghttpx.stop_if_running()
        curl = CurlClient(env=env)
        urln = f'https://{env.authority_for(env.domain2, "h3")}/data.json'
@@ -81,7 +81,7 @@ class TestEyeballs:
        assert r.stats[0]['http_version'] == '1.1'

    # make a successful https: transfer and observer the timer stats
-
    def test_06_10_stats_success(self, env: Env, httpd, nghttpx):
+
    def test_06_10_stats_success(self, env: Env, httpd, nghttpx, repeat):
        curl = CurlClient(env=env)
        urln = f'https://{env.authority_for(env.domain1, "h2")}/data.json'
        r = curl.http_download(urls=[urln])
@@ -90,7 +90,7 @@ class TestEyeballs:
        assert r.stats[0]['time_appconnect'] > 0.0

    # make https: to a hostname that tcp connects, but will not verify
-
    def test_06_11_stats_fail_verify(self, env: Env, httpd, nghttpx):
+
    def test_06_11_stats_fail_verify(self, env: Env, httpd, nghttpx, repeat):
        curl = CurlClient(env=env)
        urln = f'https://not-valid.com:{env.https_port}/data.json'
        r = curl.http_download(urls=[urln], extra_args=[
@@ -101,7 +101,7 @@ class TestEyeballs:
        assert r.stats[0]['time_appconnect'] == 0  # but not SSL verified

    # make https: to an invalid address
-
    def test_06_12_stats_fail_tcp(self, env: Env, httpd, nghttpx):
+
    def test_06_12_stats_fail_tcp(self, env: Env, httpd, nghttpx, repeat):
        curl = CurlClient(env=env)
        urln = 'https://not-valid.com:1/data.json'
        r = curl.http_download(urls=[urln], extra_args=[
modified external/curl/tests/http/test_07_upload.py
@@ -55,7 +55,7 @@ class TestUpload:

    # upload small data, check that this is what was echoed
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_01_upload_1_small(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_01_upload_1_small(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -70,7 +70,7 @@ class TestUpload:

    # upload large data, check that this is what was echoed
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_02_upload_1_large(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_02_upload_1_large(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -86,7 +86,7 @@ class TestUpload:

    # upload data sequentially, check that they were echoed
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_10_upload_sequential(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_10_upload_sequential(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -103,7 +103,7 @@ class TestUpload:

    # upload data parallel, check that they were echoed
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_07_11_upload_parallel(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_11_upload_parallel(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -122,7 +122,7 @@ class TestUpload:

    # upload large data sequentially, check that this is what was echoed
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_12_upload_seq_large(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_12_upload_seq_large(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -141,7 +141,7 @@ class TestUpload:

    # upload very large data sequentially, check that this is what was echoed
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_13_upload_seq_large(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_13_upload_seq_large(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -226,7 +226,7 @@ class TestUpload:

    # upload data parallel, check that they were echoed
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_07_20_upload_parallel(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_20_upload_parallel(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -245,7 +245,7 @@ class TestUpload:

    # upload large data parallel, check that this is what was echoed
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_07_21_upload_parallel_large(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_21_upload_parallel_large(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -262,7 +262,7 @@ class TestUpload:

    # upload large data parallel to a URL that denies uploads
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_07_22_upload_parallel_fail(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_22_upload_parallel_fail(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -279,7 +279,7 @@ class TestUpload:

    # PUT 100k
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_30_put_100k(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_30_put_100k(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -299,7 +299,7 @@ class TestUpload:

    # PUT 10m
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_31_put_10m(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_31_put_10m(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -319,7 +319,7 @@ class TestUpload:

    # issue #10591
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_32_issue_10591(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_32_issue_10591(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -333,7 +333,7 @@ class TestUpload:

    # issue #11157, upload that is 404'ed by server, needs to terminate
    # correctly and not time out on sending
-
    def test_07_33_issue_11157a(self, env: Env, httpd, nghttpx):
+
    def test_07_33_issue_11157a(self, env: Env, httpd, nghttpx, repeat):
        proto = 'h2'
        fdata = os.path.join(env.gen_dir, 'data-10m')
        # send a POST to our PUT handler which will send immediately a 404 back
@@ -354,7 +354,7 @@ class TestUpload:
        r.check_stats(1, 404)

    # issue #11157, send upload that is slowly read in
-
    def test_07_33_issue_11157b(self, env: Env, httpd, nghttpx):
+
    def test_07_33_issue_11157b(self, env: Env, httpd, nghttpx, repeat):
        proto = 'h2'
        fdata = os.path.join(env.gen_dir, 'data-10m')
        # tell our test PUT handler to read the upload more slowly, so
@@ -376,7 +376,7 @@ class TestUpload:
        assert r.exit_code == 0, r.dump_logs()
        r.check_stats(1, 200)

-
    def test_07_34_issue_11194(self, env: Env, httpd, nghttpx):
+
    def test_07_34_issue_11194(self, env: Env, httpd, nghttpx, repeat):
        proto = 'h2'
        # tell our test PUT handler to read the upload more slowly, so
        # that the send buffering and transfer loop needs to wait
@@ -396,7 +396,7 @@ class TestUpload:
        r.check_stats(1, 200)

    # upload large data on a h1 to h2 upgrade
-
    def test_07_35_h1_h2_upgrade_upload(self, env: Env, httpd, nghttpx):
+
    def test_07_35_h1_h2_upgrade_upload(self, env: Env, httpd, nghttpx, repeat):
        fdata = os.path.join(env.gen_dir, 'data-100k')
        curl = CurlClient(env=env)
        url = f'http://{env.domain1}:{env.http_port}/curltest/echo?id=[0-0]'
@@ -413,7 +413,7 @@ class TestUpload:
    # upload to a 301,302,303 response
    @pytest.mark.parametrize("redir", ['301', '302', '303'])
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_36_upload_30x(self, env: Env, httpd, nghttpx, redir, proto):
+
    def test_07_36_upload_30x(self, env: Env, httpd, nghttpx, repeat, redir, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -430,7 +430,7 @@ class TestUpload:

    # upload to a 307 response
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_37_upload_307(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_37_upload_307(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -447,7 +447,7 @@ class TestUpload:

    # POST form data, yet another code path in transfer
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_38_form_small(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_38_form_small(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -461,7 +461,7 @@ class TestUpload:

    # POST data urlencoded, small enough to be sent with request headers
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_39_post_urlenc_small(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_39_post_urlenc_small(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -479,7 +479,7 @@ class TestUpload:

    # POST data urlencoded, large enough to be sent separate from request headers
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_40_post_urlenc_large(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_40_post_urlenc_large(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -501,7 +501,7 @@ class TestUpload:
    # Unfixed, this will fail when run with CURL_DBG_SOCK_WBLOCK=80 most
    # of the time
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_41_post_urlenc_small(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_41_post_urlenc_small(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -536,7 +536,7 @@ class TestUpload:
    # upload data, pause, let connection die with an incomplete response
    # issues #11769 #13260
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_42a_upload_disconnect(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_42a_upload_disconnect(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -557,7 +557,7 @@ class TestUpload:

    # upload data, pause, let connection die without any response at all
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_42b_upload_disconnect(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_42b_upload_disconnect(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -574,7 +574,7 @@ class TestUpload:

    # upload data, pause, let connection die after 100 continue
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_42c_upload_disconnect(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_42c_upload_disconnect(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -590,7 +590,7 @@ class TestUpload:
        r.check_exit_code(exp_code)  # GOT_NOTHING

    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_43_upload_denied(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_43_upload_denied(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -607,7 +607,7 @@ class TestUpload:

    # speed limited on put handler
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_50_put_speed_limit(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_50_put_speed_limit(self, env: Env, httpd, nghttpx, proto, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 1
@@ -627,7 +627,7 @@ class TestUpload:

    # speed limited on echo handler
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_07_51_echo_speed_limit(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_51_echo_speed_limit(self, env: Env, httpd, nghttpx, proto, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 1
@@ -645,7 +645,7 @@ class TestUpload:

    # upload larger data, triggering "Expect: 100-continue" code paths
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_07_60_upload_exp100(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_60_upload_exp100(self, env: Env, httpd, nghttpx, repeat, proto):
        fdata = os.path.join(env.gen_dir, 'data-1m+')
        read_delay = 1
        curl = CurlClient(env=env)
@@ -658,7 +658,7 @@ class TestUpload:

    # upload larger data, triggering "Expect: 100-continue" code paths
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_07_61_upload_exp100_timeout(self, env: Env, httpd, nghttpx, proto):
+
    def test_07_61_upload_exp100_timeout(self, env: Env, httpd, nghttpx, repeat, proto):
        fdata = os.path.join(env.gen_dir, 'data-1m+')
        read_delay = 2
        curl = CurlClient(env=env)
@@ -697,10 +697,7 @@ class TestUpload:
        ['http/1.1', 32*1024, 16384],  # headers+body, limited by server max
        ['h2', 10*1024, 10378],        # headers+body
        ['h2', 32*1024, 16384],        # headers+body, limited by server max
-
        ['h3', 1024, 1126],            # headers+body (app data)
-
        ['h3', 1024 * 1024, 131177],   # headers+body (long app data). The 0RTT
-
                                       # size is limited by our sendbuf size
-
                                       # of 128K.
+
        ['h3', 1024, 0],               # earlydata not supported
    ])
    def test_07_70_put_earlydata(self, env: Env, httpd, nghttpx, proto, upload_size, exp_early):
        if not env.curl_uses_lib('gnutls'):
@@ -730,7 +727,7 @@ class TestUpload:
        self.check_downloads(client, [f"{upload_size}"], count)
        earlydata = {}
        for line in r.trace_lines:
-
            m = re.match(r'^\[t-(\d+)] EarlyData: (-?\d+)', line)
+
            m = re.match(r'^\[t-(\d+)] EarlyData: (\d+)', line)
            if m:
                earlydata[int(m.group(1))] = int(m.group(2))
        assert earlydata[0] == 0, f'{earlydata}'
modified external/curl/tests/http/test_08_caddy.py
@@ -69,7 +69,7 @@ class TestCaddy:

    # download 1 file
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_08_01_download_1(self, env: Env, caddy: Caddy, proto):
+
    def test_08_01_download_1(self, env: Env, caddy: Caddy, repeat, proto):
        if proto == 'h3' and not env.have_h3_curl():
            pytest.skip("h3 not supported in curl")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -81,7 +81,8 @@ class TestCaddy:

    # download 1MB files sequentially
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_08_02_download_1mb_sequential(self, env: Env, caddy: Caddy, proto):
+
    def test_08_02_download_1mb_sequential(self, env: Env, caddy: Caddy,
+
                                           repeat, proto):
        if proto == 'h3' and not env.have_h3_curl():
            pytest.skip("h3 not supported in curl")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -94,7 +95,8 @@ class TestCaddy:

    # download 1MB files parallel
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_08_03_download_1mb_parallel(self, env: Env, caddy: Caddy, proto):
+
    def test_08_03_download_1mb_parallel(self, env: Env, caddy: Caddy,
+
                                         repeat, proto):
        if proto == 'h3' and not env.have_h3_curl():
            pytest.skip("h3 not supported in curl")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -116,7 +118,8 @@ class TestCaddy:
    @pytest.mark.skipif(condition=Env().slow_network, reason="not suitable for slow network tests")
    @pytest.mark.skipif(condition=Env().ci_run, reason="not suitable for CI runs")
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_08_04a_download_10mb_sequential(self, env: Env, caddy: Caddy, proto):
+
    def test_08_04a_download_10mb_sequential(self, env: Env, caddy: Caddy,
+
                                           repeat, proto):
        if proto == 'h3' and not env.have_h3_curl():
            pytest.skip("h3 not supported in curl")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -131,7 +134,8 @@ class TestCaddy:
    @pytest.mark.skipif(condition=Env().slow_network, reason="not suitable for slow network tests")
    @pytest.mark.skipif(condition=Env().ci_run, reason="not suitable for CI runs")
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_08_04b_download_10mb_sequential(self, env: Env, caddy: Caddy, proto):
+
    def test_08_04b_download_10mb_sequential(self, env: Env, caddy: Caddy,
+
                                           repeat, proto):
        if proto == 'h3' and not env.have_h3_curl():
            pytest.skip("h3 not supported in curl")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -146,7 +150,8 @@ class TestCaddy:
    @pytest.mark.skipif(condition=Env().slow_network, reason="not suitable for slow network tests")
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
    @pytest.mark.skipif(condition=Env().ci_run, reason="not suitable for CI runs")
-
    def test_08_05_download_1mb_parallel(self, env: Env, caddy: Caddy, proto):
+
    def test_08_05_download_1mb_parallel(self, env: Env, caddy: Caddy,
+
                                         repeat, proto):
        if proto == 'h3' and not env.have_h3_curl():
            pytest.skip("h3 not supported in curl")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -169,7 +174,7 @@ class TestCaddy:

    # post data parallel, check that they were echoed
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_08_06_post_parallel(self, env: Env, httpd, caddy, proto):
+
    def test_08_06_post_parallel(self, env: Env, httpd, caddy, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -188,7 +193,7 @@ class TestCaddy:

    # put large file, check that they length were echoed
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_08_07_put_large(self, env: Env, httpd, caddy, proto):
+
    def test_08_07_put_large(self, env: Env, httpd, caddy, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('msh3'):
@@ -205,12 +210,8 @@ class TestCaddy:
            respdata = open(curl.response_file(i)).readlines()
            assert respdata == exp_data

-
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
+
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
    def test_08_08_earlydata(self, env: Env, httpd, caddy, proto):
-
        if not env.curl_uses_lib('gnutls'):
-
            pytest.skip('TLS earlydata only implemented in GnuTLS')
-
        if proto == 'h3' and not env.have_h3():
-
            pytest.skip("h3 not supported")
        count = 2
        docname = 'data10k.data'
        url = f'https://{env.domain1}:{caddy.port}/{docname}'
@@ -229,15 +230,12 @@ class TestCaddy:
        self.check_downloads(client, srcfile, count)
        earlydata = {}
        for line in r.trace_lines:
-
            m = re.match(r'^\[t-(\d+)] EarlyData: (-?\d+)', line)
+
            m = re.match(r'^\[t-(\d+)] EarlyData: (\d+)', line)
            if m:
                earlydata[int(m.group(1))] = int(m.group(2))
+
        # Caddy does not support early data
        assert earlydata[0] == 0, f'{earlydata}'
-
        if proto == 'h3':
-
            assert earlydata[1] == 71, f'{earlydata}'
-
        else:
-
            # Caddy does not support early data on TCP
-
            assert earlydata[1] == 0, f'{earlydata}'
+
        assert earlydata[1] == 0, f'{earlydata}'

    def check_downloads(self, client, srcfile: str, count: int,
                        complete: bool = True):
modified external/curl/tests/http/test_09_push.py
@@ -61,7 +61,7 @@ class TestPush:
        httpd.reload()

    # download a file that triggers a "103 Early Hints" response
-
    def test_09_01_h2_early_hints(self, env: Env, httpd):
+
    def test_09_01_h2_early_hints(self, env: Env, httpd, repeat):
        curl = CurlClient(env=env)
        url = f'https://{env.domain1}:{env.https_port}/push/data1'
        r = curl.http_download(urls=[url], alpn_proto='h2', with_stats=False,
@@ -72,7 +72,7 @@ class TestPush:
        assert 'link' in r.responses[0]['header'], f'{r.responses[0]}'
        assert r.responses[0]['header']['link'] == '</push/data2>; rel=preload', f'{r.responses[0]}'

-
    def test_09_02_h2_push(self, env: Env, httpd):
+
    def test_09_02_h2_push(self, env: Env, httpd, repeat):
        # use localhost as we do not have resolve support in local client
        url = f'https://localhost:{env.https_port}/push/data1'
        client = LocalClient(name='h2-serverpush', env=env)
modified external/curl/tests/http/test_10_proxy.py
@@ -59,7 +59,7 @@ class TestProxy:
        return None

    # download via http: proxy (no tunnel)
-
    def test_10_01_proxy_http(self, env: Env, httpd):
+
    def test_10_01_proxy_http(self, env: Env, httpd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        r = curl.http_download(urls=[url], alpn_proto='http/1.1', with_stats=True,
@@ -70,7 +70,7 @@ class TestProxy:
    @pytest.mark.skipif(condition=not Env.curl_has_feature('HTTPS-proxy'),
                        reason='curl lacks HTTPS-proxy support')
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
-
    def test_10_02_proxys_down(self, env: Env, httpd, proto):
+
    def test_10_02_proxys_down(self, env: Env, httpd, proto, repeat):
        if proto == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        curl = CurlClient(env=env)
@@ -92,7 +92,7 @@ class TestProxy:
    @pytest.mark.skipif(condition=not Env.have_nghttpx(),
                        reason="no nghttpx available")
    def test_10_02_proxys_up(self, env: Env, httpd, nghttpx, proto,
-
                             fname, fcount):
+
                             fname, fcount, repeat):
        if proto == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        count = fcount
@@ -110,7 +110,7 @@ class TestProxy:
            assert respdata == indata

    # download http: via http: proxytunnel
-
    def test_10_03_proxytunnel_http(self, env: Env, httpd):
+
    def test_10_03_proxytunnel_http(self, env: Env, httpd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        xargs = curl.get_proxy_args(proxys=False, tunnel=True)
@@ -122,7 +122,7 @@ class TestProxy:
    @pytest.mark.skipif(condition=not Env.curl_has_feature('HTTPS-proxy'),
                        reason='curl lacks HTTPS-proxy support')
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
-
    def test_10_04_proxy_https(self, env: Env, httpd, nghttpx_fwd):
+
    def test_10_04_proxy_https(self, env: Env, httpd, nghttpx_fwd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        xargs = curl.get_proxy_args(tunnel=True)
@@ -133,7 +133,7 @@ class TestProxy:
    # download https: with proto via http: proxytunnel
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
    @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL")
-
    def test_10_05_proxytunnel_http(self, env: Env, httpd, proto):
+
    def test_10_05_proxytunnel_http(self, env: Env, httpd, proto, repeat):
        curl = CurlClient(env=env)
        url = f'https://localhost:{env.https_port}/data.json'
        xargs = curl.get_proxy_args(proxys=False, tunnel=True)
@@ -148,7 +148,7 @@ class TestProxy:
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
    @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
-
    def test_10_06_proxytunnel_https(self, env: Env, httpd, nghttpx_fwd, proto, tunnel):
+
    def test_10_06_proxytunnel_https(self, env: Env, httpd, nghttpx_fwd, proto, tunnel, repeat):
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        curl = CurlClient(env=env)
@@ -175,7 +175,7 @@ class TestProxy:
    ])
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
    def test_10_07_pts_down_small(self, env: Env, httpd, nghttpx_fwd, proto,
-
                                  tunnel, fname, fcount):
+
                                  tunnel, fname, fcount, repeat):
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        count = fcount
@@ -205,7 +205,7 @@ class TestProxy:
    ])
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
    def test_10_08_upload_seq_large(self, env: Env, httpd, nghttpx, proto,
-
                                    tunnel, fname, fcount):
+
                                    tunnel, fname, fcount, repeat):
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        count = fcount
@@ -227,7 +227,7 @@ class TestProxy:
    @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL")
    @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
-
    def test_10_09_reuse_ser(self, env: Env, httpd, nghttpx_fwd, tunnel):
+
    def test_10_09_reuse_ser(self, env: Env, httpd, nghttpx_fwd, tunnel, repeat):
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        curl = CurlClient(env=env)
@@ -250,7 +250,7 @@ class TestProxy:
    @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL")
    @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
-
    def test_10_10_reuse_proxy(self, env: Env, httpd, nghttpx_fwd, tunnel):
+
    def test_10_10_reuse_proxy(self, env: Env, httpd, nghttpx_fwd, tunnel, repeat):
        # url twice via https: proxy separated with '--next', will reuse
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
@@ -275,7 +275,7 @@ class TestProxy:
    @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
    @pytest.mark.skipif(condition=not Env.curl_uses_lib('openssl'), reason="tls13-ciphers not supported")
-
    def test_10_11_noreuse_proxy_https(self, env: Env, httpd, nghttpx_fwd, tunnel):
+
    def test_10_11_noreuse_proxy_https(self, env: Env, httpd, nghttpx_fwd, tunnel, repeat):
        # different --proxy-tls13-ciphers, no reuse of connection for https:
        curl = CurlClient(env=env)
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
@@ -301,7 +301,7 @@ class TestProxy:
    @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
    @pytest.mark.skipif(condition=not Env.curl_uses_lib('openssl'), reason="tls13-ciphers not supported")
-
    def test_10_12_noreuse_proxy_http(self, env: Env, httpd, nghttpx_fwd, tunnel):
+
    def test_10_12_noreuse_proxy_http(self, env: Env, httpd, nghttpx_fwd, tunnel, repeat):
        # different --proxy-tls13-ciphers, no reuse of connection for http:
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
@@ -327,7 +327,7 @@ class TestProxy:
    @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
    @pytest.mark.skipif(condition=not Env.curl_uses_lib('openssl'), reason="tls13-ciphers not supported")
-
    def test_10_13_noreuse_https(self, env: Env, httpd, nghttpx_fwd, tunnel):
+
    def test_10_13_noreuse_https(self, env: Env, httpd, nghttpx_fwd, tunnel, repeat):
        # different --tls13-ciphers on https: same proxy config
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
@@ -354,7 +354,7 @@ class TestProxy:
                        reason='curl lacks HTTPS-proxy support')
    @pytest.mark.skipif(condition=Env.curl_uses_lib('bearssl'), reason="ip address cert verification not supported")
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
-
    def test_10_14_proxys_ip_addr(self, env: Env, httpd, proto):
+
    def test_10_14_proxys_ip_addr(self, env: Env, httpd, proto, repeat):
        if proto == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        curl = CurlClient(env=env)
modified external/curl/tests/http/test_11_unix.py
@@ -99,7 +99,7 @@ class TestUnix:
        faker.stop()

    # download http: via Unix socket
-
    def test_11_01_unix_connect_http(self, env: Env, httpd, uds_faker):
+
    def test_11_01_unix_connect_http(self, env: Env, httpd, uds_faker, repeat):
        curl = CurlClient(env=env)
        url = f'http://{env.domain1}:{env.http_port}/data.json'
        r = curl.http_download(urls=[url], with_stats=True,
@@ -110,7 +110,7 @@ class TestUnix:

    # download https: via Unix socket
    @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL")
-
    def test_11_02_unix_connect_http(self, env: Env, httpd, uds_faker):
+
    def test_11_02_unix_connect_http(self, env: Env, httpd, uds_faker, repeat):
        curl = CurlClient(env=env)
        url = f'https://{env.domain1}:{env.https_port}/data.json'
        r = curl.http_download(urls=[url], with_stats=True,
@@ -121,7 +121,7 @@ class TestUnix:

    # download HTTP/3 via Unix socket
    @pytest.mark.skipif(condition=not Env.have_h3(), reason='h3 not supported')
-
    def test_11_03_unix_connect_quic(self, env: Env, httpd, uds_faker):
+
    def test_11_03_unix_connect_quic(self, env: Env, httpd, uds_faker, repeat):
        curl = CurlClient(env=env)
        url = f'https://{env.domain1}:{env.https_port}/data.json'
        r = curl.http_download(urls=[url], with_stats=True,
modified external/curl/tests/http/test_12_reuse.py
@@ -40,7 +40,8 @@ class TestReuse:

    # check if HTTP/1.1 handles 'Connection: close' correctly
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_12_01_h1_conn_close(self, env: Env, httpd, nghttpx, proto):
+
    def test_12_01_h1_conn_close(self, env: Env,
+
                                 httpd, nghttpx, repeat, proto):
        httpd.clear_extra_configs()
        httpd.set_extra_config('base', [
            'MaxKeepAliveRequests 1',
@@ -59,7 +60,8 @@ class TestReuse:
    @pytest.mark.skipif(condition=Env.httpd_is_at_least('2.5.0'),
                        reason="httpd 2.5+ handles KeepAlives different")
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_12_02_h1_conn_timeout(self, env: Env, httpd, nghttpx, proto):
+
    def test_12_02_h1_conn_timeout(self, env: Env,
+
                                   httpd, nghttpx, repeat, proto):
        httpd.clear_extra_configs()
        httpd.set_extra_config('base', [
            'KeepAliveTimeout 1',
@@ -98,7 +100,6 @@ class TestReuse:
        for s in r.stats:
            assert s['http_version'] == '3', f'{s}'

-
    @pytest.mark.skipif(condition=not Env.have_h3(), reason="h3 not supported")
    def test_12_04_alt_svc_h3h2(self, env: Env, httpd, nghttpx):
        httpd.clear_extra_configs()
        httpd.reload()
@@ -116,12 +117,11 @@ class TestReuse:
            '--alt-svc', f'{asfile}',
        ])
        r.check_response(count=count, http_status=200)
-
        # We expect the connection to be reused and use HTTP/2
+
        # We expect the connection to be reused
        assert r.total_connects == 1
        for s in r.stats:
            assert s['http_version'] == '2', f'{s}'

-
    @pytest.mark.skipif(condition=not Env.have_h3(), reason="h3 not supported")
    def test_12_05_alt_svc_h3h1(self, env: Env, httpd, nghttpx):
        httpd.clear_extra_configs()
        httpd.reload()
@@ -139,7 +139,9 @@ class TestReuse:
            '--alt-svc', f'{asfile}',
        ])
        r.check_response(count=count, http_status=200)
-
        # We expect the connection to be reused and use HTTP/1.1
+
        # We expect the connection to be reused
        assert r.total_connects == 1
+
        # When using http/1.1 from alt-svc, we ALPN-negotiate 'h2,http/1.1' anyway
+
        # which means our server gives us h2
        for s in r.stats:
-
            assert s['http_version'] == '1.1', f'{s}'
+
            assert s['http_version'] == '2', f'{s}'
modified external/curl/tests/http/test_13_proxy_auth.py
@@ -58,7 +58,7 @@ class TestProxyAuth:
        return None

    # download via http: proxy (no tunnel), no auth
-
    def test_13_01_proxy_no_auth(self, env: Env, httpd):
+
    def test_13_01_proxy_no_auth(self, env: Env, httpd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        r = curl.http_download(urls=[url], alpn_proto='http/1.1', with_stats=True,
@@ -66,7 +66,7 @@ class TestProxyAuth:
        r.check_response(count=1, http_status=407)

    # download via http: proxy (no tunnel), auth
-
    def test_13_02_proxy_auth(self, env: Env, httpd):
+
    def test_13_02_proxy_auth(self, env: Env, httpd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        xargs = curl.get_proxy_args(proxys=False)
@@ -78,7 +78,7 @@ class TestProxyAuth:
    @pytest.mark.skipif(condition=not Env.curl_has_feature('HTTPS-proxy'),
                        reason='curl lacks HTTPS-proxy support')
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
-
    def test_13_03_proxys_no_auth(self, env: Env, httpd, nghttpx_fwd):
+
    def test_13_03_proxys_no_auth(self, env: Env, httpd, nghttpx_fwd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        xargs = curl.get_proxy_args(proxys=True)
@@ -89,7 +89,7 @@ class TestProxyAuth:
    @pytest.mark.skipif(condition=not Env.curl_has_feature('HTTPS-proxy'),
                        reason='curl lacks HTTPS-proxy support')
    @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available")
-
    def test_13_04_proxys_auth(self, env: Env, httpd, nghttpx_fwd):
+
    def test_13_04_proxys_auth(self, env: Env, httpd, nghttpx_fwd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        xargs = curl.get_proxy_args(proxys=True)
@@ -98,7 +98,7 @@ class TestProxyAuth:
                               extra_args=xargs)
        r.check_response(count=1, http_status=200)

-
    def test_13_05_tunnel_http_no_auth(self, env: Env, httpd):
+
    def test_13_05_tunnel_http_no_auth(self, env: Env, httpd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        xargs = curl.get_proxy_args(proxys=False, tunnel=True)
@@ -107,7 +107,7 @@ class TestProxyAuth:
        # expect "COULD_NOT_CONNECT"
        r.check_response(exitcode=56, http_status=None)

-
    def test_13_06_tunnel_http_auth(self, env: Env, httpd):
+
    def test_13_06_tunnel_http_auth(self, env: Env, httpd, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.http_port}/data.json'
        xargs = curl.get_proxy_args(proxys=False, tunnel=True)
@@ -121,7 +121,7 @@ class TestProxyAuth:
                        reason='curl lacks HTTPS-proxy support')
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
    @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])
-
    def test_13_07_tunnels_no_auth(self, env: Env, httpd, proto, tunnel):
+
    def test_13_07_tunnels_no_auth(self, env: Env, httpd, proto, tunnel, repeat):
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        curl = CurlClient(env=env)
@@ -139,7 +139,7 @@ class TestProxyAuth:
                        reason='curl lacks HTTPS-proxy support')
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
    @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])
-
    def test_13_08_tunnels_auth(self, env: Env, httpd, proto, tunnel):
+
    def test_13_08_tunnels_auth(self, env: Env, httpd, proto, tunnel, repeat):
        if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'):
            pytest.skip('only supported with nghttp2')
        curl = CurlClient(env=env)
modified external/curl/tests/http/test_14_auth.py
@@ -46,7 +46,7 @@ class TestAuth:

    # download 1 file, not authenticated
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_14_01_digest_get_noauth(self, env: Env, httpd, nghttpx, proto):
+
    def test_14_01_digest_get_noauth(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        curl = CurlClient(env=env)
@@ -56,7 +56,7 @@ class TestAuth:

    # download 1 file, authenticated
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_14_02_digest_get_auth(self, env: Env, httpd, nghttpx, proto):
+
    def test_14_02_digest_get_auth(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        curl = CurlClient(env=env)
@@ -68,7 +68,7 @@ class TestAuth:

    # PUT data, authenticated
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_14_03_digest_put_auth(self, env: Env, httpd, nghttpx, proto):
+
    def test_14_03_digest_put_auth(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        data='0123456789'
@@ -81,7 +81,7 @@ class TestAuth:

    # PUT data, digest auth large pw
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_14_04_digest_large_pw(self, env: Env, httpd, nghttpx, proto):
+
    def test_14_04_digest_large_pw(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        data='0123456789'
@@ -98,7 +98,7 @@ class TestAuth:

    # PUT data, basic auth large pw
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_14_05_basic_large_pw(self, env: Env, httpd, nghttpx, proto):
+
    def test_14_05_basic_large_pw(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and not env.curl_uses_lib('ngtcp2'):
@@ -118,7 +118,7 @@ class TestAuth:

    # PUT data, basic auth with very large pw
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_14_06_basic_very_large_pw(self, env: Env, httpd, nghttpx, proto):
+
    def test_14_06_basic_very_large_pw(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if proto == 'h3' and env.curl_uses_lib('quiche'):
@@ -134,4 +134,4 @@ class TestAuth:
        # Depending on protocol, we might have an error sending or
        # the server might shutdown the connection and we see the error
        # on receiving
-
        assert r.exit_code in [55, 56], f'{r.dump_logs()}'
+
        assert r.exit_code in [55, 56], f'{self.dump_logs()}'
modified external/curl/tests/http/test_16_info.py
@@ -52,7 +52,7 @@ class TestInfo:

    # download plain file
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_16_01_info_download(self, env: Env, httpd, nghttpx, proto):
+
    def test_16_01_info_download(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 2
@@ -67,7 +67,7 @@ class TestInfo:

    # download plain file with a 302 redirect
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_16_02_info_302_download(self, env: Env, httpd, nghttpx, proto):
+
    def test_16_02_info_302_download(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 2
@@ -83,7 +83,7 @@ class TestInfo:
            self.check_stat(idx, s, r, dl_size=30, ul_size=0)

    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_16_03_info_upload(self, env: Env, httpd, nghttpx, proto):
+
    def test_16_03_info_upload(self, env: Env, httpd, nghttpx, proto, repeat):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 2
@@ -104,7 +104,7 @@ class TestInfo:

    # download plain file via http: ('time_appconnect' is 0)
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_16_04_info_http_download(self, env: Env, httpd, nghttpx, proto):
+
    def test_16_04_info_http_download(self, env: Env, httpd, nghttpx, repeat, proto):
        count = 2
        curl = CurlClient(env=env)
        url = f'http://{env.domain1}:{env.http_port}/data.json?[0-{count-1}]'
@@ -144,7 +144,7 @@ class TestInfo:
            'time_pretransfer', 'time_starttransfer', 'time_total'
        }
        # stat keys where we expect a positive value
-
        pos_keys = {'time_pretransfer', 'time_starttransfer', 'time_total', 'time_queue'}
+
        pos_keys = {'time_pretransfer', 'time_starttransfer', 'time_total'}
        if s['num_connects'] > 0:
            pos_keys.add('time_connect')
            if url.startswith('https:'):
@@ -167,9 +167,3 @@ class TestInfo:
        # assert that transfer start is before total
        assert s['time_starttransfer'] <= s['time_total'], f'"time_starttransfer" '\
            f'greater than "time_total", {s}'
-
        if s['num_redirects'] > 0:
-
            assert s['time_queue'] < s['time_starttransfer'], f'"time_queue" '\
-
                f'greater/equal than "time_starttransfer", {s}'
-
        else:
-
            assert s['time_queue'] <= s['time_starttransfer'], f'"time_queue" '\
-
                f'greater than "time_starttransfer", {s}'
modified external/curl/tests/http/test_17_ssl_use.py
@@ -50,7 +50,7 @@ class TestSSLUse:
        if 'httpd' not in request.node._fixtureinfo.argnames:
            httpd.reload_if_config_changed()

-
    def test_17_01_sslinfo_plain(self, env: Env, nghttpx):
+
    def test_17_01_sslinfo_plain(self, env: Env, nghttpx, repeat):
        proto = 'http/1.1'
        curl = CurlClient(env=env)
        url = f'https://{env.authority_for(env.domain1, proto)}/curltest/sslinfo'
@@ -390,37 +390,3 @@ class TestSSLUse:
                    match_trace = line
                    break
            assert match_trace, f'Did not find "{exp_trace}" in trace\n{r.dump_logs()}'
-

-
    @pytest.mark.skipif(condition=not Env.curl_has_feature('SSLS-EXPORT'),
-
                        reason='curl lacks SSL session export support')
-
    def test_17_15_session_export(self, env: Env, httpd):
-
        proto = 'http/1.1'
-
        if env.curl_uses_lib('libressl'):
-
           pytest.skip('Libressl resumption does not work inTLSv1.3')
-
        if env.curl_uses_lib('rustls-ffi'):
-
            pytest.skip('rustsls does not expose sessions')
-
        if env.curl_uses_lib('bearssl'):
-
            pytest.skip('BearSSL does not support TLSv1.3')
-
        if env.curl_uses_lib('mbedtls') and \
-
           not env.curl_lib_version_at_least('mbedtls', '3.6.0'):
-
            pytest.skip('mbedtls TLSv1.3 session resume not working before 3.6.0')
-
        run_env = os.environ.copy()
-
        run_env['CURL_DEBUG'] = 'ssl,scache'
-
        # clean session file first, then reuse
-
        session_file = os.path.join(env.gen_dir, 'test_17_15.sessions')
-
        if os.path.exists(session_file):
-
            return os.remove(session_file)
-
        xargs = ['--tls-max', '1.3', '--tlsv1.3', '--ssl-sessions', session_file]
-
        curl = CurlClient(env=env, run_env=run_env)
-
        # tell the server to close the connection after each request
-
        url = f'https://{env.authority_for(env.domain1, proto)}/curltest/sslinfo'
-
        r = curl.http_get(url=url, alpn_proto=proto, extra_args=xargs)
-
        assert r.exit_code == 0, f'{r}'
-
        assert r.json['HTTPS'] == 'on', f'{r.json}'
-
        assert r.json['SSL_SESSION_RESUMED'] == 'Initial', f'{r.json}\n{r.dump_logs()}'
-
        # ok, run again, sessions should be imported
-
        run_dir2 = os.path.join(env.gen_dir, 'curl2')
-
        curl = CurlClient(env=env, run_env=run_env, run_dir=run_dir2)
-
        r = curl.http_get(url=url, alpn_proto=proto, extra_args=xargs)
-
        assert r.exit_code == 0, f'{r}'
-
        assert r.json['SSL_SESSION_RESUMED'] == 'Resumed', f'{r.json}\n{r.dump_logs()}'
modified external/curl/tests/http/test_18_methods.py
@@ -48,7 +48,7 @@ class TestMethods:

    # download 1 file
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3'])
-
    def test_18_01_delete(self, env: Env, httpd, nghttpx, proto):
+
    def test_18_01_delete(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        count = 1
@@ -61,7 +61,7 @@ class TestMethods:
    # - HEADER frame with 204 and eos=0
    # - 10ms later DATA frame length=0 and eos=1
    # should be accepted
-
    def test_18_02_delete_h2_special(self, env: Env, httpd, nghttpx):
+
    def test_18_02_delete_h2_special(self, env: Env, httpd, nghttpx, repeat):
        proto = 'h2'
        count = 1
        curl = CurlClient(env=env)
modified external/curl/tests/http/test_19_shutdown.py
@@ -53,7 +53,7 @@ class TestShutdown:
    # check with `tcpdump` that we see curl TCP RST packets
    @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available")
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_19_01_check_tcp_rst(self, env: Env, httpd, proto):
+
    def test_19_01_check_tcp_rst(self, env: Env, httpd, repeat, proto):
        if env.ci_run:
            pytest.skip("seems not to work in CI")
        curl = CurlClient(env=env)
@@ -68,7 +68,7 @@ class TestShutdown:
    # check with `tcpdump` that we do NOT see TCP RST when CURL_GRACEFUL_SHUTDOWN set
    @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available")
    @pytest.mark.parametrize("proto", ['http/1.1', 'h2'])
-
    def test_19_02_check_shutdown(self, env: Env, httpd, proto):
+
    def test_19_02_check_shutdown(self, env: Env, httpd, repeat, proto):
        if not env.curl_is_debug():
            pytest.skip('only works for curl debug builds')
        curl = CurlClient(env=env, run_env={
@@ -85,7 +85,7 @@ class TestShutdown:

    # run downloads where the server closes the connection after each request
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_19_03_shutdown_by_server(self, env: Env, httpd, proto):
+
    def test_19_03_shutdown_by_server(self, env: Env, httpd, repeat, proto):
        if not env.curl_is_debug():
            pytest.skip('only works for curl debug builds')
        count = 10
@@ -104,7 +104,7 @@ class TestShutdown:
    # run downloads with CURLOPT_FORBID_REUSE set, meaning *we* close
    # the connection after each request
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_19_04_shutdown_by_curl(self, env: Env, httpd, proto):
+
    def test_19_04_shutdown_by_curl(self, env: Env, httpd, proto, repeat):
        if not env.curl_is_debug():
            pytest.skip('only works for curl debug builds')
        count = 10
@@ -127,7 +127,7 @@ class TestShutdown:
    # run event-based downloads with CURLOPT_FORBID_REUSE set, meaning *we* close
    # the connection after each request
    @pytest.mark.parametrize("proto", ['http/1.1'])
-
    def test_19_05_event_shutdown_by_server(self, env: Env, httpd, proto):
+
    def test_19_05_event_shutdown_by_server(self, env: Env, httpd, proto, repeat):
        if not env.curl_is_debug():
            pytest.skip('only works for curl debug builds')
        count = 10
@@ -155,7 +155,7 @@ class TestShutdown:

    # check graceful shutdown on multiplexed http
    @pytest.mark.parametrize("proto", ['h2', 'h3'])
-
    def test_19_06_check_shutdown(self, env: Env, httpd, nghttpx, proto):
+
    def test_19_06_check_shutdown(self, env: Env, httpd, nghttpx, repeat, proto):
        if proto == 'h3' and not env.have_h3():
            pytest.skip("h3 not supported")
        if not env.curl_is_debug():
modified external/curl/tests/http/test_20_websockets.py
@@ -78,13 +78,13 @@ class TestWebsockets:
            yield
            p.terminate()

-
    def test_20_01_basic(self, env: Env, ws_echo):
+
    def test_20_01_basic(self, env: Env, ws_echo, repeat):
        curl = CurlClient(env=env)
        url = f'http://localhost:{env.ws_port}/'
        r = curl.http_download(urls=[url])
        r.check_response(http_status=426)

-
    def test_20_02_pingpong_small(self, env: Env, ws_echo):
+
    def test_20_02_pingpong_small(self, env: Env, ws_echo, repeat):
        payload = 125 * "x"
        client = LocalClient(env=env, name='ws-pingpong')
        if not client.exists():
@@ -94,7 +94,7 @@ class TestWebsockets:
        r.check_exit_code(0)

    # the python websocket server does not like 'large' control frames
-
    def test_20_03_pingpong_too_large(self, env: Env, ws_echo):
+
    def test_20_03_pingpong_too_large(self, env: Env, ws_echo, repeat):
        payload = 127 * "x"
        client = LocalClient(env=env, name='ws-pingpong')
        if not client.exists():
@@ -103,51 +103,40 @@ class TestWebsockets:
        r = client.run(args=[url, payload])
        r.check_exit_code(56)

-
    def test_20_04_data_small(self, env: Env, ws_echo):
+
    # the python websocket server does not like 'large' control frames
+
    def test_20_04_data_small(self, env: Env, ws_echo, repeat):
        client = LocalClient(env=env, name='ws-data')
        if not client.exists():
            pytest.skip(f'example client not built: {client.name}')
        url = f'ws://localhost:{env.ws_port}/'
-
        r = client.run(args=['-m', str(0), '-M', str(10), url])
+
        r = client.run(args=[url, str(0), str(10)])
        r.check_exit_code(0)

-
    def test_20_05_data_med(self, env: Env, ws_echo):
+
    # the python websocket server does not like 'large' control frames
+
    def test_20_05_data_med(self, env: Env, ws_echo, repeat):
        client = LocalClient(env=env, name='ws-data')
        if not client.exists():
            pytest.skip(f'example client not built: {client.name}')
        url = f'ws://localhost:{env.ws_port}/'
-
        r = client.run(args=['-m', str(120), '-M', str(130), url])
+
        r = client.run(args=[url, str(120), str(130)])
        r.check_exit_code(0)

-
    def test_20_06_data_large(self, env: Env, ws_echo):
+
    # the python websocket server does not like 'large' control frames
+
    def test_20_06_data_large(self, env: Env, ws_echo, repeat):
        client = LocalClient(env=env, name='ws-data')
        if not client.exists():
            pytest.skip(f'example client not built: {client.name}')
        url = f'ws://localhost:{env.ws_port}/'
-
        r = client.run(args=['-m', str(65535 - 5), '-M', str(65535 + 5), url])
+
        r = client.run(args=[url, str(65535 - 5), str(65535 + 5)])
        r.check_exit_code(0)

-
    def test_20_07_data_large_small_recv(self, env: Env, ws_echo):
-
        run_env = os.environ.copy()
-
        run_env['CURL_WS_CHUNK_SIZE'] = '1024'
-
        client = LocalClient(env=env, name='ws-data', run_env=run_env)
-
        if not client.exists():
-
            pytest.skip(f'example client not built: {client.name}')
-
        url = f'ws://localhost:{env.ws_port}/'
-
        r = client.run(args=['-m', str(65535 - 5), '-M', str(65535 + 5), url])
-
        r.check_exit_code(0)
-

-
    # Send large frames and simulate send blocking on 8192 bytes chunks
-
    # Simlates error reported in #15865
-
    def test_20_08_data_very_large(self, env: Env, ws_echo):
-
        run_env = os.environ.copy()
-
        run_env['CURL_WS_CHUNK_EAGAIN'] = '8192'
-
        client = LocalClient(env=env, name='ws-data', run_env=run_env)
+
    # the python websocket server does not like 'large' control frames
+
    def test_20_07_data_large_small_recv(self, env: Env, ws_echo, repeat):
+
        client = LocalClient(env=env, name='ws-data', run_env={
+
            'CURL_WS_CHUNK_SIZE': '1024',
+
        })
        if not client.exists():
            pytest.skip(f'example client not built: {client.name}')
        url = f'ws://localhost:{env.ws_port}/'
-
        count = 10
-
        large = 512 * 1024
-
        large = 20000
-
        r = client.run(args=['-c', str(count), '-m', str(large), url])
+
        r = client.run(args=[url, str(65535 - 5), str(65535 + 5)])
        r.check_exit_code(0)
modified external/curl/tests/http/test_30_vsftpd.py
@@ -71,7 +71,7 @@ class TestVsFTPD:
        env.make_data_file(indir=env.gen_dir, fname="upload-100k", fsize=100*1024)
        env.make_data_file(indir=env.gen_dir, fname="upload-1m", fsize=1024*1024)

-
    def test_30_01_list_dir(self, env: Env, vsftpd: VsFTPD):
+
    def test_30_01_list_dir(self, env: Env, vsftpd: VsFTPD, repeat):
        curl = CurlClient(env=env)
        url = f'ftp://{env.ftp_domain}:{vsftpd.port}/'
        r = curl.ftp_get(urls=[url], with_stats=True)
@@ -83,7 +83,7 @@ class TestVsFTPD:
    @pytest.mark.parametrize("docname", [
        'data-1k', 'data-1m', 'data-10m'
    ])
-
    def test_30_02_download_1(self, env: Env, vsftpd: VsFTPD, docname):
+
    def test_30_02_download_1(self, env: Env, vsftpd: VsFTPD, docname, repeat):
        curl = CurlClient(env=env)
        srcfile = os.path.join(vsftpd.docs_dir, f'{docname}')
        count = 1
@@ -95,7 +95,7 @@ class TestVsFTPD:
    @pytest.mark.parametrize("docname", [
        'data-1k', 'data-1m', 'data-10m'
    ])
-
    def test_30_03_download_10_serial(self, env: Env, vsftpd: VsFTPD, docname):
+
    def test_30_03_download_10_serial(self, env: Env, vsftpd: VsFTPD, docname, repeat):
        curl = CurlClient(env=env)
        srcfile = os.path.join(vsftpd.docs_dir, f'{docname}')
        count = 10
@@ -107,7 +107,7 @@ class TestVsFTPD:
    @pytest.mark.parametrize("docname", [
        'data-1k', 'data-1m', 'data-10m'
    ])
-
    def test_30_04_download_10_parallel(self, env: Env, vsftpd: VsFTPD, docname):
+
    def test_30_04_download_10_parallel(self, env: Env, vsftpd: VsFTPD, docname, repeat):
        curl = CurlClient(env=env)
        srcfile = os.path.join(vsftpd.docs_dir, f'{docname}')
        count = 10
@@ -121,7 +121,7 @@ class TestVsFTPD:
    @pytest.mark.parametrize("docname", [
        'upload-1k', 'upload-100k', 'upload-1m'
    ])
-
    def test_30_05_upload_1(self, env: Env, vsftpd: VsFTPD, docname):
+
    def test_30_05_upload_1(self, env: Env, vsftpd: VsFTPD, docname, repeat):
        curl = CurlClient(env=env)
        srcfile = os.path.join(env.gen_dir, docname)
        dstfile = os.path.join(vsftpd.docs_dir, docname)
@@ -138,7 +138,7 @@ class TestVsFTPD:

    # check with `tcpdump` if curl causes any TCP RST packets
    @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available")
-
    def test_30_06_shutdownh_download(self, env: Env, vsftpd: VsFTPD):
+
    def test_30_06_shutdownh_download(self, env: Env, vsftpd: VsFTPD, repeat):
        docname = 'data-1k'
        curl = CurlClient(env=env)
        count = 1
@@ -150,7 +150,7 @@ class TestVsFTPD:

    # check with `tcpdump` if curl causes any TCP RST packets
    @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available")
-
    def test_30_07_shutdownh_upload(self, env: Env, vsftpd: VsFTPD):
+
    def test_30_07_shutdownh_upload(self, env: Env, vsftpd: VsFTPD, repeat):
        docname = 'upload-1k'
        curl = CurlClient(env=env)
        srcfile = os.path.join(env.gen_dir, docname)
modified external/curl/tests/http/test_31_vsftpds.py
@@ -78,7 +78,7 @@ class TestVsFTPD:
        env.make_data_file(indir=env.gen_dir, fname="upload-100k", fsize=100*1024)
        env.make_data_file(indir=env.gen_dir, fname="upload-1m", fsize=1024*1024)

-
    def test_31_01_list_dir(self, env: Env, vsftpds: VsFTPD):
+
    def test_31_01_list_dir(self, env: Env, vsftpds: VsFTPD, repeat):
        curl = CurlClient(env=env)
        url = f'ftp://{env.ftp_domain}:{vsftpds.port}/'
        r = curl.ftp_ssl_get(urls=[url], with_stats=True)
@@ -90,7 +90,7 @@ class TestVsFTPD:
    @pytest.mark.parametrize("docname", [
        'data-1k', 'data-1m', 'data-10m'
    ])
-
    def test_31_02_download_1(self, env: Env, vsftpds: VsFTPD, docname):
+
    def test_31_02_download_1(self, env: Env, vsftpds: VsFTPD, docname, repeat):
        curl = CurlClient(env=env)
        srcfile = os.path.join(vsftpds.docs_dir, f'{docname}')
        count = 1
@@ -102,7 +102,7 @@ class TestVsFTPD:
    @pytest.mark.parametrize("docname", [
        'data-1k', 'data-1m', 'data-10m'
    ])
-
    def test_31_03_download_10_serial(self, env: Env, vsftpds: VsFTPD, docname):
+
    def test_31_03_download_10_serial(self, env: Env, vsftpds: VsFTPD, docname, repeat):
        curl = CurlClient(env=env)
        srcfile = os.path.join(vsftpds.docs_dir, f'{docname}')
        count = 10
@@ -114,7 +114,7 @@ class TestVsFTPD:
    @pytest.mark.parametrize("docname", [
        'data-1k', 'data-1m', 'data-10m'
    ])
-
    def test_31_04_download_10_parallel(self, env: Env, vsftpds: VsFTPD, docname):
+
    def test_31_04_download_10_parallel(self, env: Env, vsftpds: VsFTPD, docname, repeat):
        curl = CurlClient(env=env)
        srcfile = os.path.join(vsftpds.docs_dir, f'{docname}')
        count = 10
@@ -128,7 +128,7 @@ class TestVsFTPD:
    @pytest.mark.parametrize("docname", [
        'upload-1k', 'upload-100k', 'upload-1m'
    ])
-
    def test_31_05_upload_1(self, env: Env, vsftpds: VsFTPD, docname):
+
    def test_31_05_upload_1(self, env: Env, vsftpds: VsFTPD, docname, repeat):
        curl = CurlClient(env=env)
        srcfile = os.path.join(env.gen_dir, docname)
        dstfile = os.path.join(vsftpds.docs_dir, docname)
@@ -145,7 +145,7 @@ class TestVsFTPD:

    # check with `tcpdump` if curl causes any TCP RST packets
    @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available")
-
    def test_31_06_shutdownh_download(self, env: Env, vsftpds: VsFTPD):
+
    def test_31_06_shutdownh_download(self, env: Env, vsftpds: VsFTPD, repeat):
        docname = 'data-1k'
        curl = CurlClient(env=env)
        count = 1
@@ -158,7 +158,7 @@ class TestVsFTPD:

    # check with `tcpdump` if curl causes any TCP RST packets
    @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available")
-
    def test_31_07_shutdownh_upload(self, env: Env, vsftpds: VsFTPD):
+
    def test_31_07_shutdownh_upload(self, env: Env, vsftpds: VsFTPD, repeat):
        docname = 'upload-1k'
        curl = CurlClient(env=env)
        srcfile = os.path.join(env.gen_dir, docname)
modified external/curl/tests/http/testenv/env.py
@@ -127,6 +127,7 @@ class EnvConfig:
            'ws': socket.SOCK_STREAM,
        })
        self.httpd = self.config['httpd']['httpd']
+
        self.apachectl = self.config['httpd']['apachectl']
        self.apxs = self.config['httpd']['apxs']
        if len(self.apxs) == 0:
            self.apxs = None
@@ -256,6 +257,7 @@ class EnvConfig:

    def is_complete(self) -> bool:
        return os.path.isfile(self.httpd) and \
+
               os.path.isfile(self.apachectl) and \
               self.apxs is not None and \
               os.path.isfile(self.apxs)

@@ -264,6 +266,8 @@ class EnvConfig:
            return 'httpd not configured, see `--with-test-httpd=<path>`'
        if not os.path.isfile(self.httpd):
            return f'httpd ({self.httpd}) not found'
+
        if not os.path.isfile(self.apachectl):
+
            return f'apachectl ({self.apachectl}) not found'
        if self.apxs is None:
            return "command apxs not found (commonly provided in apache2-dev)"
        if not os.path.isfile(self.apxs):
@@ -575,6 +579,10 @@ class Env:
        return self.CONFIG.httpd

    @property
+
    def apachectl(self) -> str:
+
        return self.CONFIG.apachectl
+

+
    @property
    def apxs(self) -> str:
        return self.CONFIG.apxs

modified external/curl/tests/http/testenv/httpd.py
@@ -63,6 +63,7 @@ class Httpd:

    def __init__(self, env: Env, proxy_auth: bool = False):
        self.env = env
+
        self._cmd = env.apachectl
        self._apache_dir = os.path.join(env.gen_dir, 'apache')
        self._run_dir = os.path.join(self._apache_dir, 'run')
        self._lock_dir = os.path.join(self._apache_dir, 'locks')
@@ -101,7 +102,7 @@ class Httpd:
        self._rmf(self._error_log)

    def exists(self):
-
        return os.path.exists(self.env.httpd)
+
        return os.path.exists(self._cmd)

    def set_extra_config(self, domain: str, lines: Optional[Union[str, List[str]]]):
        if lines is None:
@@ -131,8 +132,8 @@ class Httpd:
                          stderr=p.stderr.decode().splitlines(),
                          duration=datetime.now() - start)

-
    def _cmd_httpd(self, cmd: str):
-
        args = [self.env.httpd,
+
    def _apachectl(self, cmd: str):
+
        args = [self.env.apachectl,
                "-d", self._apache_dir,
                "-f", self._conf_file,
                "-k", cmd]
@@ -146,7 +147,7 @@ class Httpd:
            fd.write('start of server\n')
        with open(os.path.join(self._apache_dir, 'xxx'), 'a') as fd:
            fd.write('start of server\n')
-
        r = self._cmd_httpd('start')
+
        r = self._apachectl('start')
        if r.exit_code != 0:
            log.error(f'failed to start httpd: {r}')
            return False
@@ -154,7 +155,7 @@ class Httpd:
        return self.wait_live(timeout=timedelta(seconds=5))

    def stop(self):
-
        r = self._cmd_httpd('stop')
+
        r = self._apachectl('stop')
        self._loaded_extra_configs = None
        if r.exit_code == 0:
            return self.wait_dead(timeout=timedelta(seconds=5))
@@ -167,7 +168,7 @@ class Httpd:

    def reload(self):
        self._write_config()
-
        r = self._cmd_httpd("graceful")
+
        r = self._apachectl("graceful")
        self._loaded_extra_configs = None
        if r.exit_code != 0:
            log.error(f'failed to reload httpd: {r}')
modified external/curl/tests/http/testenv/nghttpx.py
@@ -205,7 +205,6 @@ class NghttpxQuic(Nghttpx):
        args = [
            self._cmd,
            f'--frontend=*,{self.env.h3_port};quic',
-
            '--frontend-quic-early-data',
            f'--frontend=*,{self.env.nghttpx_https_port};tls',
            f'--backend=127.0.0.1,{self.env.https_port};{self.env.domain1};sni={self.env.domain1};proto=h2;tls',
            f'--backend=127.0.0.1,{self.env.http_port}',
modified external/curl/tests/libtest/.checksrc
@@ -1,3 +1,2 @@
disable TYPEDEFSTRUCT
-
allowfunc localtime
-
allowfunc LoadLibrary
+
disable BANNEDFUNC
modified external/curl/tests/libtest/CMakeLists.txt
@@ -22,9 +22,8 @@
#
###########################################################################

-
# Get 'LIBTESTPROGS', '*_SOURCES', 'TESTUTIL', 'TSTTRACE', 'WARNLESS', 'MULTIBYTE', 'INET_PTON', 'TIMEDIFF', 'THREADS',
-
# 'FIRSTFILES' variables
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
# Get 'LIBTESTPROGS', '*_SOURCES', 'TESTUTIL', 'TSTTRACE', 'WARNLESS', 'MULTIBYTE', 'TIMEDIFF', 'THREADS', 'FIRSTFILES' variables
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

set_source_files_properties("../../lib/curl_multibyte.c" PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
@@ -51,7 +50,7 @@ if(CURL_TEST_BUNDLES)
  list(APPEND libtests_SOURCES ${TESTUTIL} ${TSTTRACE})
  if(LIB_SELECTED STREQUAL LIB_SHARED)
    # These are part of the libcurl static lib. Add them here when linking shared.
-
    list(APPEND libtests_SOURCES ${WARNLESS} ${MULTIBYTE} ${INET_PTON} ${TIMEDIFF} ${THREADS})
+
    list(APPEND libtests_SOURCES ${WARNLESS} ${MULTIBYTE} ${TIMEDIFF} ${THREADS})
  endif()
endif()

@@ -64,7 +63,7 @@ foreach(_target IN LISTS LIBTESTPROGS)

  if(LIB_SELECTED STREQUAL LIB_STATIC)
    # These are part of the libcurl static lib. Do not compile/link them again.
-
    list(REMOVE_ITEM _sources ${WARNLESS} ${MULTIBYTE} ${INET_PTON} ${TIMEDIFF} ${THREADS})
+
    list(REMOVE_ITEM _sources ${WARNLESS} ${MULTIBYTE} ${TIMEDIFF} ${THREADS})
  endif()

  string(TOUPPER ${_target} _upper_target)
@@ -75,7 +74,6 @@ foreach(_target IN LISTS LIBTESTPROGS)
  target_include_directories(${_target_name} PRIVATE
    "${PROJECT_BINARY_DIR}/lib"            # for "curl_config.h"
    "${PROJECT_SOURCE_DIR}/lib"            # for "curl_setup.h"
-
    "${PROJECT_SOURCE_DIR}/src"            # for "tool_binmode.h"
    "${PROJECT_SOURCE_DIR}/tests/libtest"  # to be able to build generated tests
  )
  if(NOT CURL_TEST_BUNDLES)
modified external/curl/tests/libtest/Makefile.am
@@ -35,7 +35,6 @@ AUTOMAKE_OPTIONS = foreign nostdinc
AM_CPPFLAGS = -I$(top_srcdir)/include        \
              -I$(top_builddir)/lib          \
              -I$(top_srcdir)/lib            \
-
              -I$(top_srcdir)/src            \
              -I$(top_srcdir)/tests/libtest

EXTRA_DIST = test307.pl test610.pl test613.pl test1013.pl test1022.pl   \
@@ -104,7 +103,7 @@ CLEANFILES += libtest_bundle.c
if USE_CPPFLAG_CURL_STATICLIB
else
# These are part of the libcurl static lib. Add them here when linking shared.
-
libtests_SOURCES += $(WARNLESS) $(MULTIBYTE) $(INET_PTON) $(TIMEDIFF) $(THREADS)
+
libtests_SOURCES += $(WARNLESS) $(MULTIBYTE) $(TIMEDIFF) $(THREADS)
endif
else
noinst_PROGRAMS = $(LIBTESTPROGS)
@@ -118,11 +117,8 @@ CS_0 = @echo " RUN " $@;
CS_1 =
CS_ = $(CS_0)

-
# ignore generated C files since they play by slightly different rules!
checksrc:
-
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) \
-
	  -W$(srcdir)/libtest_bundle.c \
-
	  $(srcdir)/*.[ch])
+
	$(CHECKSRC)@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) $(srcdir)/*.[ch]

if DEBUGBUILD
# for debug builds, we scan the sources on all regular make invokes
modified external/curl/tests/libtest/Makefile.in
@@ -101,7 +101,7 @@ host_triplet = @host@
@USE_TEST_BUNDLES_TRUE@am__append_5 = libtest_bundle.c

# These are part of the libcurl static lib. Add them here when linking shared.
-
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@am__append_6 = $(WARNLESS) $(MULTIBYTE) $(INET_PTON) $(TIMEDIFF) $(THREADS)
+
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@am__append_6 = $(WARNLESS) $(MULTIBYTE) $(TIMEDIFF) $(THREADS)
subdir = tests/libtest
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-amissl.m4 \
@@ -171,8 +171,7 @@ am__EXEEXT_1 = libauthretry$(EXEEXT) libntlmconnect$(EXEEXT) \
	lib667$(EXEEXT) lib668$(EXEEXT) lib670$(EXEEXT) \
	lib671$(EXEEXT) lib672$(EXEEXT) lib673$(EXEEXT) \
	lib674$(EXEEXT) lib676$(EXEEXT) lib677$(EXEEXT) \
-
	lib678$(EXEEXT) lib694$(EXEEXT) lib695$(EXEEXT) \
-
	lib696$(EXEEXT) lib1156$(EXEEXT) lib1301$(EXEEXT) \
+
	lib678$(EXEEXT) lib1156$(EXEEXT) lib1301$(EXEEXT) \
	lib1485$(EXEEXT) lib1500$(EXEEXT) lib1501$(EXEEXT) \
	lib1502$(EXEEXT) lib1503$(EXEEXT) lib1504$(EXEEXT) \
	lib1505$(EXEEXT) lib1506$(EXEEXT) lib1507$(EXEEXT) \
@@ -209,14 +208,13 @@ am__EXEEXT_1 = libauthretry$(EXEEXT) libntlmconnect$(EXEEXT) \
	lib1959$(EXEEXT) lib1960$(EXEEXT) lib1964$(EXEEXT) \
	lib1970$(EXEEXT) lib1971$(EXEEXT) lib1972$(EXEEXT) \
	lib1973$(EXEEXT) lib1974$(EXEEXT) lib1975$(EXEEXT) \
-
	lib1977$(EXEEXT) lib2301$(EXEEXT) lib2302$(EXEEXT) \
-
	lib2304$(EXEEXT) lib2305$(EXEEXT) lib2306$(EXEEXT) \
-
	lib2308$(EXEEXT) lib2309$(EXEEXT) lib2310$(EXEEXT) \
-
	lib2402$(EXEEXT) lib2404$(EXEEXT) lib2405$(EXEEXT) \
-
	lib2502$(EXEEXT) lib3010$(EXEEXT) lib3025$(EXEEXT) \
-
	lib3026$(EXEEXT) lib3027$(EXEEXT) lib3100$(EXEEXT) \
-
	lib3101$(EXEEXT) lib3102$(EXEEXT) lib3103$(EXEEXT) \
-
	lib3104$(EXEEXT) lib3105$(EXEEXT) lib3207$(EXEEXT)
+
	lib2301$(EXEEXT) lib2302$(EXEEXT) lib2304$(EXEEXT) \
+
	lib2305$(EXEEXT) lib2306$(EXEEXT) lib2308$(EXEEXT) \
+
	lib2309$(EXEEXT) lib2402$(EXEEXT) lib2404$(EXEEXT) \
+
	lib2405$(EXEEXT) lib2502$(EXEEXT) lib3010$(EXEEXT) \
+
	lib3025$(EXEEXT) lib3026$(EXEEXT) lib3027$(EXEEXT) \
+
	lib3100$(EXEEXT) lib3101$(EXEEXT) lib3102$(EXEEXT) \
+
	lib3103$(EXEEXT) lib3207$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
LTLIBRARIES = $(noinst_LTLIBRARIES)
am__libstubgss_la_SOURCES_DIST = stub_gssapi.c stub_gssapi.h
@@ -686,9 +684,7 @@ am_lib1959_OBJECTS = lib1959.$(OBJEXT) $(am__objects_3) \
	$(am__objects_4) $(am__objects_5)
lib1959_OBJECTS = $(am_lib1959_OBJECTS)
lib1959_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_50 = ../../lib/inet_pton.$(OBJEXT)
-
am_lib1960_OBJECTS = lib1960.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_50)
+
am_lib1960_OBJECTS = lib1960.$(OBJEXT) $(am__objects_3)
lib1960_OBJECTS = $(am_lib1960_OBJECTS)
lib1960_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib1964_OBJECTS = lib1964.$(OBJEXT) $(am__objects_3) \
@@ -719,10 +715,6 @@ am_lib1975_OBJECTS = lib1975.$(OBJEXT) $(am__objects_3) \
	$(am__objects_4) $(am__objects_5)
lib1975_OBJECTS = $(am_lib1975_OBJECTS)
lib1975_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am_lib1977_OBJECTS = lib1977.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_4) $(am__objects_5)
-
lib1977_OBJECTS = $(am_lib1977_OBJECTS)
-
lib1977_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib2301_OBJECTS = lib2301.$(OBJEXT) $(am__objects_3)
lib2301_OBJECTS = $(am_lib2301_OBJECTS)
lib2301_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -732,9 +724,9 @@ lib2302_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib2304_OBJECTS = lib2304.$(OBJEXT) $(am__objects_3)
lib2304_OBJECTS = $(am_lib2304_OBJECTS)
lib2304_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_51 = ../../lib/curl_multibyte.$(OBJEXT)
+
am__objects_50 = ../../lib/curl_multibyte.$(OBJEXT)
am_lib2305_OBJECTS = lib2305.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_4) $(am__objects_26) $(am__objects_51)
+
	$(am__objects_4) $(am__objects_26) $(am__objects_50)
lib2305_OBJECTS = $(am_lib2305_OBJECTS)
lib2305_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib2306_OBJECTS = lib2306.$(OBJEXT) $(am__objects_3)
@@ -746,10 +738,6 @@ lib2308_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib2309_OBJECTS = lib2309.$(OBJEXT) $(am__objects_3)
lib2309_OBJECTS = $(am_lib2309_OBJECTS)
lib2309_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am_lib2310_OBJECTS = lib2310.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_4) $(am__objects_26) $(am__objects_51)
-
lib2310_OBJECTS = $(am_lib2310_OBJECTS)
-
lib2310_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib2402_OBJECTS = lib2402.$(OBJEXT) $(am__objects_3) \
	$(am__objects_4) $(am__objects_5)
lib2402_OBJECTS = $(am_lib2402_OBJECTS)
@@ -797,22 +785,14 @@ lib3102_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib3103_OBJECTS = lib3103.$(OBJEXT) $(am__objects_3)
lib3103_OBJECTS = $(am_lib3103_OBJECTS)
lib3103_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am_lib3104_OBJECTS = lib3104.$(OBJEXT) $(am__objects_3)
-
lib3104_OBJECTS = $(am_lib3104_OBJECTS)
-
lib3104_LDADD = $(LDADD)
-
lib3104_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am_lib3105_OBJECTS = lib3105.$(OBJEXT) $(am__objects_3)
-
lib3105_OBJECTS = $(am_lib3105_OBJECTS)
-
lib3105_LDADD = $(LDADD)
-
lib3105_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_52 = ../../lib/curl_threads.$(OBJEXT)
+
am__objects_51 = ../../lib/curl_threads.$(OBJEXT)
am_lib3207_OBJECTS = lib3207.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_4) $(am__objects_52) $(am__objects_5) \
-
	$(am__objects_51)
+
	$(am__objects_4) $(am__objects_51) $(am__objects_5) \
+
	$(am__objects_50)
lib3207_OBJECTS = $(am_lib3207_OBJECTS)
lib3207_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib500_OBJECTS = lib500.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
-
	$(am__objects_26) $(am__objects_51)
+
	$(am__objects_26) $(am__objects_50)
lib500_OBJECTS = $(am_lib500_OBJECTS)
lib500_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib501_OBJECTS = lib501.$(OBJEXT) $(am__objects_3)
@@ -832,7 +812,7 @@ am_lib504_OBJECTS = lib504.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
lib504_OBJECTS = $(am_lib504_OBJECTS)
lib504_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib505_OBJECTS = lib505.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib505_OBJECTS = $(am_lib505_OBJECTS)
lib505_LDADD = $(LDADD)
lib505_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -885,7 +865,7 @@ lib517_OBJECTS = $(am_lib517_OBJECTS)
lib517_LDADD = $(LDADD)
lib517_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib518_OBJECTS = lib518.$(OBJEXT) $(am__objects_3) $(am__objects_5) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib518_OBJECTS = $(am_lib518_OBJECTS)
lib518_LDADD = $(LDADD)
lib518_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -910,48 +890,48 @@ lib524_OBJECTS = $(am_lib524_OBJECTS)
lib524_LDADD = $(LDADD)
lib524_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib525_OBJECTS = lib525.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
-
	$(am__objects_5) $(am__objects_51)
+
	$(am__objects_5) $(am__objects_50)
lib525_OBJECTS = $(am_lib525_OBJECTS)
lib525_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_53 = ../../lib/lib526-timediff.$(OBJEXT)
-
am__objects_54 = lib526-first.$(OBJEXT)
-
am__objects_55 = $(am__objects_53) $(am__objects_54)
-
am__objects_56 = lib526-testutil.$(OBJEXT)
-
am__objects_57 = ../../lib/lib526-warnless.$(OBJEXT)
-
am_lib526_OBJECTS = lib526-lib526.$(OBJEXT) $(am__objects_55) \
-
	$(am__objects_56) $(am__objects_57)
+
am__objects_52 = ../../lib/lib526-timediff.$(OBJEXT)
+
am__objects_53 = lib526-first.$(OBJEXT)
+
am__objects_54 = $(am__objects_52) $(am__objects_53)
+
am__objects_55 = lib526-testutil.$(OBJEXT)
+
am__objects_56 = ../../lib/lib526-warnless.$(OBJEXT)
+
am_lib526_OBJECTS = lib526-lib526.$(OBJEXT) $(am__objects_54) \
+
	$(am__objects_55) $(am__objects_56)
lib526_OBJECTS = $(am_lib526_OBJECTS)
lib526_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_58 = ../../lib/lib527-timediff.$(OBJEXT)
-
am__objects_59 = lib527-first.$(OBJEXT)
-
am__objects_60 = $(am__objects_58) $(am__objects_59)
-
am__objects_61 = lib527-testutil.$(OBJEXT)
-
am__objects_62 = ../../lib/lib527-warnless.$(OBJEXT)
-
am_lib527_OBJECTS = lib527-lib526.$(OBJEXT) $(am__objects_60) \
-
	$(am__objects_61) $(am__objects_62)
+
am__objects_57 = ../../lib/lib527-timediff.$(OBJEXT)
+
am__objects_58 = lib527-first.$(OBJEXT)
+
am__objects_59 = $(am__objects_57) $(am__objects_58)
+
am__objects_60 = lib527-testutil.$(OBJEXT)
+
am__objects_61 = ../../lib/lib527-warnless.$(OBJEXT)
+
am_lib527_OBJECTS = lib527-lib526.$(OBJEXT) $(am__objects_59) \
+
	$(am__objects_60) $(am__objects_61)
lib527_OBJECTS = $(am_lib527_OBJECTS)
lib527_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_63 = ../../lib/lib529-timediff.$(OBJEXT)
-
am__objects_64 = lib529-first.$(OBJEXT)
-
am__objects_65 = $(am__objects_63) $(am__objects_64)
-
am__objects_66 = lib529-testutil.$(OBJEXT)
-
am__objects_67 = ../../lib/lib529-warnless.$(OBJEXT)
-
am__objects_68 = ../../lib/lib529-curl_multibyte.$(OBJEXT)
-
am_lib529_OBJECTS = lib529-lib525.$(OBJEXT) $(am__objects_65) \
-
	$(am__objects_66) $(am__objects_67) $(am__objects_68)
+
am__objects_62 = ../../lib/lib529-timediff.$(OBJEXT)
+
am__objects_63 = lib529-first.$(OBJEXT)
+
am__objects_64 = $(am__objects_62) $(am__objects_63)
+
am__objects_65 = lib529-testutil.$(OBJEXT)
+
am__objects_66 = ../../lib/lib529-warnless.$(OBJEXT)
+
am__objects_67 = ../../lib/lib529-curl_multibyte.$(OBJEXT)
+
am_lib529_OBJECTS = lib529-lib525.$(OBJEXT) $(am__objects_64) \
+
	$(am__objects_65) $(am__objects_66) $(am__objects_67)
lib529_OBJECTS = $(am_lib529_OBJECTS)
lib529_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib530_OBJECTS = lib530.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
	$(am__objects_5)
lib530_OBJECTS = $(am_lib530_OBJECTS)
lib530_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_69 = ../../lib/lib532-timediff.$(OBJEXT)
-
am__objects_70 = lib532-first.$(OBJEXT)
-
am__objects_71 = $(am__objects_69) $(am__objects_70)
-
am__objects_72 = lib532-testutil.$(OBJEXT)
-
am__objects_73 = ../../lib/lib532-warnless.$(OBJEXT)
-
am_lib532_OBJECTS = lib532-lib526.$(OBJEXT) $(am__objects_71) \
-
	$(am__objects_72) $(am__objects_73)
+
am__objects_68 = ../../lib/lib532-timediff.$(OBJEXT)
+
am__objects_69 = lib532-first.$(OBJEXT)
+
am__objects_70 = $(am__objects_68) $(am__objects_69)
+
am__objects_71 = lib532-testutil.$(OBJEXT)
+
am__objects_72 = ../../lib/lib532-warnless.$(OBJEXT)
+
am_lib532_OBJECTS = lib532-lib526.$(OBJEXT) $(am__objects_70) \
+
	$(am__objects_71) $(am__objects_72)
lib532_OBJECTS = $(am_lib532_OBJECTS)
lib532_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib533_OBJECTS = lib533.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
@@ -963,7 +943,7 @@ lib536_OBJECTS = $(am_lib536_OBJECTS)
lib536_LDADD = $(LDADD)
lib536_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib537_OBJECTS = lib537.$(OBJEXT) $(am__objects_3) $(am__objects_5) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib537_OBJECTS = $(am_lib537_OBJECTS)
lib537_LDADD = $(LDADD)
lib537_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -976,7 +956,7 @@ am_lib540_OBJECTS = lib540.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
lib540_OBJECTS = $(am_lib540_OBJECTS)
lib540_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib541_OBJECTS = lib541.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib541_OBJECTS = $(am_lib541_OBJECTS)
lib541_LDADD = $(LDADD)
lib541_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -992,10 +972,10 @@ am_lib544_OBJECTS = lib544.$(OBJEXT) $(am__objects_3)
lib544_OBJECTS = $(am_lib544_OBJECTS)
lib544_LDADD = $(LDADD)
lib544_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_74 = ../../lib/lib545-timediff.$(OBJEXT)
-
am__objects_75 = lib545-first.$(OBJEXT)
-
am__objects_76 = $(am__objects_74) $(am__objects_75)
-
am_lib545_OBJECTS = lib545-lib544.$(OBJEXT) $(am__objects_76)
+
am__objects_73 = ../../lib/lib545-timediff.$(OBJEXT)
+
am__objects_74 = lib545-first.$(OBJEXT)
+
am__objects_75 = $(am__objects_73) $(am__objects_74)
+
am_lib545_OBJECTS = lib545-lib544.$(OBJEXT) $(am__objects_75)
lib545_OBJECTS = $(am_lib545_OBJECTS)
lib545_LDADD = $(LDADD)
lib545_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1003,10 +983,10 @@ am_lib547_OBJECTS = lib547.$(OBJEXT) $(am__objects_3)
lib547_OBJECTS = $(am_lib547_OBJECTS)
lib547_LDADD = $(LDADD)
lib547_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_77 = ../../lib/lib548-timediff.$(OBJEXT)
-
am__objects_78 = lib548-first.$(OBJEXT)
-
am__objects_79 = $(am__objects_77) $(am__objects_78)
-
am_lib548_OBJECTS = lib548-lib547.$(OBJEXT) $(am__objects_79)
+
am__objects_76 = ../../lib/lib548-timediff.$(OBJEXT)
+
am__objects_77 = lib548-first.$(OBJEXT)
+
am__objects_78 = $(am__objects_76) $(am__objects_77)
+
am_lib548_OBJECTS = lib548-lib547.$(OBJEXT) $(am__objects_78)
lib548_OBJECTS = $(am_lib548_OBJECTS)
lib548_LDADD = $(LDADD)
lib548_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1058,15 +1038,15 @@ am_lib564_OBJECTS = lib564.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
	$(am__objects_5)
lib564_OBJECTS = $(am_lib564_OBJECTS)
lib564_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_80 = ../../lib/lib565-timediff.$(OBJEXT)
-
am__objects_81 = lib565-first.$(OBJEXT)
-
am__objects_82 = $(am__objects_80) $(am__objects_81)
-
am_lib565_OBJECTS = lib565-lib510.$(OBJEXT) $(am__objects_82)
+
am__objects_79 = ../../lib/lib565-timediff.$(OBJEXT)
+
am__objects_80 = lib565-first.$(OBJEXT)
+
am__objects_81 = $(am__objects_79) $(am__objects_80)
+
am_lib565_OBJECTS = lib565-lib510.$(OBJEXT) $(am__objects_81)
lib565_OBJECTS = $(am_lib565_OBJECTS)
lib565_LDADD = $(LDADD)
lib565_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib566_OBJECTS = lib566.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib566_OBJECTS = $(am_lib566_OBJECTS)
lib566_LDADD = $(LDADD)
lib566_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1075,12 +1055,12 @@ lib567_OBJECTS = $(am_lib567_OBJECTS)
lib567_LDADD = $(LDADD)
lib567_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib568_OBJECTS = lib568.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib568_OBJECTS = $(am_lib568_OBJECTS)
lib568_LDADD = $(LDADD)
lib568_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib569_OBJECTS = lib569.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib569_OBJECTS = $(am_lib569_OBJECTS)
lib569_LDADD = $(LDADD)
lib569_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1089,12 +1069,12 @@ lib570_OBJECTS = $(am_lib570_OBJECTS)
lib570_LDADD = $(LDADD)
lib570_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib571_OBJECTS = lib571.$(OBJEXT) $(am__objects_3) $(am__objects_5) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib571_OBJECTS = $(am_lib571_OBJECTS)
lib571_LDADD = $(LDADD)
lib571_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib572_OBJECTS = lib572.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib572_OBJECTS = $(am_lib572_OBJECTS)
lib572_LDADD = $(LDADD)
lib572_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1115,48 +1095,48 @@ lib576_OBJECTS = $(am_lib576_OBJECTS)
lib576_LDADD = $(LDADD)
lib576_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib578_OBJECTS = lib578.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib578_OBJECTS = $(am_lib578_OBJECTS)
lib578_LDADD = $(LDADD)
lib578_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib579_OBJECTS = lib579.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib579_OBJECTS = $(am_lib579_OBJECTS)
lib579_LDADD = $(LDADD)
lib579_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib582_OBJECTS = lib582.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
-
	$(am__objects_5) $(am__objects_51)
+
	$(am__objects_5) $(am__objects_50)
lib582_OBJECTS = $(am_lib582_OBJECTS)
lib582_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib583_OBJECTS = lib583.$(OBJEXT) $(am__objects_3)
lib583_OBJECTS = $(am_lib583_OBJECTS)
lib583_LDADD = $(LDADD)
lib583_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_83 = ../../lib/lib584-timediff.$(OBJEXT)
-
am__objects_84 = lib584-first.$(OBJEXT)
-
am__objects_85 = $(am__objects_83) $(am__objects_84)
-
am_lib584_OBJECTS = lib584-lib589.$(OBJEXT) $(am__objects_85)
+
am__objects_82 = ../../lib/lib584-timediff.$(OBJEXT)
+
am__objects_83 = lib584-first.$(OBJEXT)
+
am__objects_84 = $(am__objects_82) $(am__objects_83)
+
am_lib584_OBJECTS = lib584-lib589.$(OBJEXT) $(am__objects_84)
lib584_OBJECTS = $(am_lib584_OBJECTS)
lib584_LDADD = $(LDADD)
lib584_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_86 = ../../lib/lib585-timediff.$(OBJEXT)
-
am__objects_87 = lib585-first.$(OBJEXT)
-
am__objects_88 = $(am__objects_86) $(am__objects_87)
-
am__objects_89 = lib585-testutil.$(OBJEXT)
-
am__objects_90 = lib585-testtrace.$(OBJEXT)
-
am__objects_91 = ../../lib/lib585-curl_multibyte.$(OBJEXT)
-
am_lib585_OBJECTS = lib585-lib500.$(OBJEXT) $(am__objects_88) \
-
	$(am__objects_89) $(am__objects_90) $(am__objects_91)
+
am__objects_85 = ../../lib/lib585-timediff.$(OBJEXT)
+
am__objects_86 = lib585-first.$(OBJEXT)
+
am__objects_87 = $(am__objects_85) $(am__objects_86)
+
am__objects_88 = lib585-testutil.$(OBJEXT)
+
am__objects_89 = lib585-testtrace.$(OBJEXT)
+
am__objects_90 = ../../lib/lib585-curl_multibyte.$(OBJEXT)
+
am_lib585_OBJECTS = lib585-lib500.$(OBJEXT) $(am__objects_87) \
+
	$(am__objects_88) $(am__objects_89) $(am__objects_90)
lib585_OBJECTS = $(am_lib585_OBJECTS)
lib585_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib586_OBJECTS = lib586.$(OBJEXT) $(am__objects_3)
lib586_OBJECTS = $(am_lib586_OBJECTS)
lib586_LDADD = $(LDADD)
lib586_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_92 = ../../lib/lib587-timediff.$(OBJEXT)
-
am__objects_93 = lib587-first.$(OBJEXT)
-
am__objects_94 = $(am__objects_92) $(am__objects_93)
-
am_lib587_OBJECTS = lib587-lib554.$(OBJEXT) $(am__objects_94)
+
am__objects_91 = ../../lib/lib587-timediff.$(OBJEXT)
+
am__objects_92 = lib587-first.$(OBJEXT)
+
am__objects_93 = $(am__objects_91) $(am__objects_92)
+
am_lib587_OBJECTS = lib587-lib554.$(OBJEXT) $(am__objects_93)
lib587_OBJECTS = $(am_lib587_OBJECTS)
lib587_LDADD = $(LDADD)
lib587_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1169,7 +1149,7 @@ lib590_OBJECTS = $(am_lib590_OBJECTS)
lib590_LDADD = $(LDADD)
lib590_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib591_OBJECTS = lib591.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
-
	$(am__objects_5) $(am__objects_51)
+
	$(am__objects_5) $(am__objects_50)
lib591_OBJECTS = $(am_lib591_OBJECTS)
lib591_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib597_OBJECTS = lib597.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
@@ -1181,7 +1161,7 @@ lib598_OBJECTS = $(am_lib598_OBJECTS)
lib598_LDADD = $(LDADD)
lib598_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib599_OBJECTS = lib599.$(OBJEXT) $(am__objects_3) \
-
	$(am__objects_51)
+
	$(am__objects_50)
lib599_OBJECTS = $(am_lib599_OBJECTS)
lib599_LDADD = $(LDADD)
lib599_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1189,10 +1169,10 @@ am_lib643_OBJECTS = lib643.$(OBJEXT) $(am__objects_3)
lib643_OBJECTS = $(am_lib643_OBJECTS)
lib643_LDADD = $(LDADD)
lib643_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_95 = ../../lib/lib645-timediff.$(OBJEXT)
-
am__objects_96 = lib645-first.$(OBJEXT)
-
am__objects_97 = $(am__objects_95) $(am__objects_96)
-
am_lib645_OBJECTS = lib645-lib643.$(OBJEXT) $(am__objects_97)
+
am__objects_94 = ../../lib/lib645-timediff.$(OBJEXT)
+
am__objects_95 = lib645-first.$(OBJEXT)
+
am__objects_96 = $(am__objects_94) $(am__objects_95)
+
am_lib645_OBJECTS = lib645-lib643.$(OBJEXT) $(am__objects_96)
lib645_OBJECTS = $(am_lib645_OBJECTS)
lib645_LDADD = $(LDADD)
lib645_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1244,31 +1224,31 @@ am_lib668_OBJECTS = lib668.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
	$(am__objects_5)
lib668_OBJECTS = $(am_lib668_OBJECTS)
lib668_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_98 = ../../lib/lib670-timediff.$(OBJEXT)
-
am__objects_99 = lib670-first.$(OBJEXT)
-
am__objects_100 = $(am__objects_98) $(am__objects_99)
-
am__objects_101 = lib670-testutil.$(OBJEXT)
-
am__objects_102 = ../../lib/lib670-warnless.$(OBJEXT)
-
am_lib670_OBJECTS = lib670-lib670.$(OBJEXT) $(am__objects_100) \
-
	$(am__objects_101) $(am__objects_102)
+
am__objects_97 = ../../lib/lib670-timediff.$(OBJEXT)
+
am__objects_98 = lib670-first.$(OBJEXT)
+
am__objects_99 = $(am__objects_97) $(am__objects_98)
+
am__objects_100 = lib670-testutil.$(OBJEXT)
+
am__objects_101 = ../../lib/lib670-warnless.$(OBJEXT)
+
am_lib670_OBJECTS = lib670-lib670.$(OBJEXT) $(am__objects_99) \
+
	$(am__objects_100) $(am__objects_101)
lib670_OBJECTS = $(am_lib670_OBJECTS)
lib670_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_103 = ../../lib/lib671-timediff.$(OBJEXT)
-
am__objects_104 = lib671-first.$(OBJEXT)
-
am__objects_105 = $(am__objects_103) $(am__objects_104)
-
am__objects_106 = lib671-testutil.$(OBJEXT)
-
am__objects_107 = ../../lib/lib671-warnless.$(OBJEXT)
-
am_lib671_OBJECTS = lib671-lib670.$(OBJEXT) $(am__objects_105) \
-
	$(am__objects_106) $(am__objects_107)
+
am__objects_102 = ../../lib/lib671-timediff.$(OBJEXT)
+
am__objects_103 = lib671-first.$(OBJEXT)
+
am__objects_104 = $(am__objects_102) $(am__objects_103)
+
am__objects_105 = lib671-testutil.$(OBJEXT)
+
am__objects_106 = ../../lib/lib671-warnless.$(OBJEXT)
+
am_lib671_OBJECTS = lib671-lib670.$(OBJEXT) $(am__objects_104) \
+
	$(am__objects_105) $(am__objects_106)
lib671_OBJECTS = $(am_lib671_OBJECTS)
lib671_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_108 = ../../lib/lib672-timediff.$(OBJEXT)
-
am__objects_109 = lib672-first.$(OBJEXT)
-
am__objects_110 = $(am__objects_108) $(am__objects_109)
-
am__objects_111 = lib672-testutil.$(OBJEXT)
-
am__objects_112 = ../../lib/lib672-warnless.$(OBJEXT)
-
am_lib672_OBJECTS = lib672-lib670.$(OBJEXT) $(am__objects_110) \
-
	$(am__objects_111) $(am__objects_112)
+
am__objects_107 = ../../lib/lib672-timediff.$(OBJEXT)
+
am__objects_108 = lib672-first.$(OBJEXT)
+
am__objects_109 = $(am__objects_107) $(am__objects_108)
+
am__objects_110 = lib672-testutil.$(OBJEXT)
+
am__objects_111 = ../../lib/lib672-warnless.$(OBJEXT)
+
am_lib672_OBJECTS = lib672-lib670.$(OBJEXT) $(am__objects_109) \
+
	$(am__objects_110) $(am__objects_111)
lib672_OBJECTS = $(am_lib672_OBJECTS)
lib672_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib673_OBJECTS = lib670.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
@@ -1284,28 +1264,13 @@ am_lib676_OBJECTS = lib676.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
lib676_OBJECTS = $(am_lib676_OBJECTS)
lib676_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib677_OBJECTS = lib677.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
-
	$(am__objects_5) $(am__objects_51)
+
	$(am__objects_5) $(am__objects_50)
lib677_OBJECTS = $(am_lib677_OBJECTS)
lib677_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_lib678_OBJECTS = lib678.$(OBJEXT) $(am__objects_3) $(am__objects_4) \
-
	$(am__objects_5) $(am__objects_51)
+
	$(am__objects_5) $(am__objects_50)
lib678_OBJECTS = $(am_lib678_OBJECTS)
lib678_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am_lib694_OBJECTS = lib694.$(OBJEXT) $(am__objects_3)
-
lib694_OBJECTS = $(am_lib694_OBJECTS)
-
lib694_LDADD = $(LDADD)
-
lib694_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am_lib695_OBJECTS = lib695.$(OBJEXT) $(am__objects_3)
-
lib695_OBJECTS = $(am_lib695_OBJECTS)
-
lib695_LDADD = $(LDADD)
-
lib695_DEPENDENCIES = $(am__DEPENDENCIES_1)
-
am__objects_113 = ../../lib/lib696-timediff.$(OBJEXT)
-
am__objects_114 = lib696-first.$(OBJEXT)
-
am__objects_115 = $(am__objects_113) $(am__objects_114)
-
am_lib696_OBJECTS = lib696-lib556.$(OBJEXT) $(am__objects_115)
-
lib696_OBJECTS = $(am_lib696_OBJECTS)
-
lib696_LDADD = $(LDADD)
-
lib696_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libauthretry_OBJECTS = libauthretry.$(OBJEXT) $(am__objects_3)
libauthretry_OBJECTS = $(am_libauthretry_OBJECTS)
libauthretry_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -1320,16 +1285,14 @@ libprereq_DEPENDENCIES = $(am__DEPENDENCIES_1)
am__libtests_SOURCES_DIST = testutil.c testutil.h testtrace.c \
	testtrace.h ../../lib/warnless.c ../../lib/warnless.h \
	../../lib/curl_multibyte.c ../../lib/curl_multibyte.h \
-
	../../lib/inet_pton.c ../../lib/inet_pton.h \
	../../lib/timediff.c ../../lib/timediff.h \
	../../lib/curl_threads.c ../../lib/curl_threads.h
-
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@am__objects_116 = $(am__objects_5) \
-
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@	$(am__objects_51) \
+
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@am__objects_112 = $(am__objects_5) \
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@	$(am__objects_50) \
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@	$(am__objects_1) \
-
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@	$(am__objects_52)
+
@USE_CPPFLAG_CURL_STATICLIB_FALSE@@USE_TEST_BUNDLES_TRUE@	$(am__objects_51)
@USE_TEST_BUNDLES_TRUE@am_libtests_OBJECTS = $(am__objects_4) \
-
@USE_TEST_BUNDLES_TRUE@	$(am__objects_26) $(am__objects_116)
+
@USE_TEST_BUNDLES_TRUE@	$(am__objects_26) $(am__objects_112)
@USE_TEST_BUNDLES_TRUE@nodist_libtests_OBJECTS =  \
@USE_TEST_BUNDLES_TRUE@	libtest_bundle.$(OBJEXT)
libtests_OBJECTS = $(am_libtests_OBJECTS) $(nodist_libtests_OBJECTS)
@@ -1351,7 +1314,6 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ../../lib/$(DEPDIR)/curl_multibyte.Po \
	../../lib/$(DEPDIR)/curl_threads.Po \
-
	../../lib/$(DEPDIR)/inet_pton.Po \
	../../lib/$(DEPDIR)/lib1502-timediff.Po \
	../../lib/$(DEPDIR)/lib1502-warnless.Po \
	../../lib/$(DEPDIR)/lib1503-timediff.Po \
@@ -1392,7 +1354,6 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/curl_multibyte.Po \
	../../lib/$(DEPDIR)/lib671-warnless.Po \
	../../lib/$(DEPDIR)/lib672-timediff.Po \
	../../lib/$(DEPDIR)/lib672-warnless.Po \
-
	../../lib/$(DEPDIR)/lib696-timediff.Po \
	../../lib/$(DEPDIR)/timediff.Po \
	../../lib/$(DEPDIR)/warnless.Po ./$(DEPDIR)/first.Po \
	./$(DEPDIR)/lib1156.Po ./$(DEPDIR)/lib1301.Po \
@@ -1458,18 +1419,16 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/curl_multibyte.Po \
	./$(DEPDIR)/lib1970.Po ./$(DEPDIR)/lib1971.Po \
	./$(DEPDIR)/lib1972.Po ./$(DEPDIR)/lib1973.Po \
	./$(DEPDIR)/lib1974.Po ./$(DEPDIR)/lib1975.Po \
-
	./$(DEPDIR)/lib1977.Po ./$(DEPDIR)/lib2301.Po \
-
	./$(DEPDIR)/lib2302.Po ./$(DEPDIR)/lib2304.Po \
-
	./$(DEPDIR)/lib2305.Po ./$(DEPDIR)/lib2306.Po \
-
	./$(DEPDIR)/lib2308.Po ./$(DEPDIR)/lib2309.Po \
-
	./$(DEPDIR)/lib2310.Po ./$(DEPDIR)/lib2402.Po \
+
	./$(DEPDIR)/lib2301.Po ./$(DEPDIR)/lib2302.Po \
+
	./$(DEPDIR)/lib2304.Po ./$(DEPDIR)/lib2305.Po \
+
	./$(DEPDIR)/lib2306.Po ./$(DEPDIR)/lib2308.Po \
+
	./$(DEPDIR)/lib2309.Po ./$(DEPDIR)/lib2402.Po \
	./$(DEPDIR)/lib2404.Po ./$(DEPDIR)/lib2405.Po \
	./$(DEPDIR)/lib2502.Po ./$(DEPDIR)/lib3010.Po \
	./$(DEPDIR)/lib3025.Po ./$(DEPDIR)/lib3026.Po \
	./$(DEPDIR)/lib3027.Po ./$(DEPDIR)/lib3100.Po \
	./$(DEPDIR)/lib3101.Po ./$(DEPDIR)/lib3102.Po \
-
	./$(DEPDIR)/lib3103.Po ./$(DEPDIR)/lib3104.Po \
-
	./$(DEPDIR)/lib3105.Po ./$(DEPDIR)/lib3207.Po \
+
	./$(DEPDIR)/lib3103.Po ./$(DEPDIR)/lib3207.Po \
	./$(DEPDIR)/lib500.Po ./$(DEPDIR)/lib501.Po \
	./$(DEPDIR)/lib502.Po ./$(DEPDIR)/lib503.Po \
	./$(DEPDIR)/lib504.Po ./$(DEPDIR)/lib505.Po \
@@ -1532,9 +1491,7 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/curl_multibyte.Po \
	./$(DEPDIR)/lib672-first.Po ./$(DEPDIR)/lib672-lib670.Po \
	./$(DEPDIR)/lib672-testutil.Po ./$(DEPDIR)/lib674.Po \
	./$(DEPDIR)/lib676.Po ./$(DEPDIR)/lib677.Po \
-
	./$(DEPDIR)/lib678.Po ./$(DEPDIR)/lib694.Po \
-
	./$(DEPDIR)/lib695.Po ./$(DEPDIR)/lib696-first.Po \
-
	./$(DEPDIR)/lib696-lib556.Po ./$(DEPDIR)/libauthretry.Po \
+
	./$(DEPDIR)/lib678.Po ./$(DEPDIR)/libauthretry.Po \
	./$(DEPDIR)/libntlmconnect.Po ./$(DEPDIR)/libprereq.Po \
	./$(DEPDIR)/libstubgss_la-stub_gssapi.Plo \
	./$(DEPDIR)/libtest_bundle.Po ./$(DEPDIR)/testtrace.Po \
@@ -1595,50 +1552,48 @@ SOURCES = $(libstubgss_la_SOURCES) $(lib1156_SOURCES) \
	$(lib1957_SOURCES) $(lib1958_SOURCES) $(lib1959_SOURCES) \
	$(lib1960_SOURCES) $(lib1964_SOURCES) $(lib1970_SOURCES) \
	$(lib1971_SOURCES) $(lib1972_SOURCES) $(lib1973_SOURCES) \
-
	$(lib1974_SOURCES) $(lib1975_SOURCES) $(lib1977_SOURCES) \
-
	$(lib2301_SOURCES) $(lib2302_SOURCES) $(lib2304_SOURCES) \
-
	$(lib2305_SOURCES) $(lib2306_SOURCES) $(lib2308_SOURCES) \
-
	$(lib2309_SOURCES) $(lib2310_SOURCES) $(lib2402_SOURCES) \
-
	$(lib2404_SOURCES) $(lib2405_SOURCES) $(lib2502_SOURCES) \
-
	$(lib3010_SOURCES) $(lib3025_SOURCES) $(lib3026_SOURCES) \
-
	$(lib3027_SOURCES) $(lib3100_SOURCES) $(lib3101_SOURCES) \
-
	$(lib3102_SOURCES) $(lib3103_SOURCES) $(lib3104_SOURCES) \
-
	$(lib3105_SOURCES) $(lib3207_SOURCES) $(lib500_SOURCES) \
-
	$(lib501_SOURCES) $(lib502_SOURCES) $(lib503_SOURCES) \
-
	$(lib504_SOURCES) $(lib505_SOURCES) $(lib506_SOURCES) \
-
	$(lib507_SOURCES) $(lib508_SOURCES) $(lib509_SOURCES) \
-
	$(lib510_SOURCES) $(lib511_SOURCES) $(lib512_SOURCES) \
-
	$(lib513_SOURCES) $(lib514_SOURCES) $(lib515_SOURCES) \
-
	$(lib516_SOURCES) $(lib517_SOURCES) $(lib518_SOURCES) \
-
	$(lib519_SOURCES) $(lib520_SOURCES) $(lib521_SOURCES) \
-
	$(lib523_SOURCES) $(lib524_SOURCES) $(lib525_SOURCES) \
-
	$(lib526_SOURCES) $(lib527_SOURCES) $(lib529_SOURCES) \
-
	$(lib530_SOURCES) $(lib532_SOURCES) $(lib533_SOURCES) \
-
	$(lib536_SOURCES) $(lib537_SOURCES) $(lib539_SOURCES) \
-
	$(lib540_SOURCES) $(lib541_SOURCES) $(lib542_SOURCES) \
-
	$(lib543_SOURCES) $(lib544_SOURCES) $(lib545_SOURCES) \
-
	$(lib547_SOURCES) $(lib548_SOURCES) $(lib549_SOURCES) \
-
	$(lib552_SOURCES) $(lib553_SOURCES) $(lib554_SOURCES) \
-
	$(lib555_SOURCES) $(lib556_SOURCES) $(lib557_SOURCES) \
-
	$(lib558_SOURCES) $(lib559_SOURCES) $(lib560_SOURCES) \
-
	$(lib562_SOURCES) $(lib564_SOURCES) $(lib565_SOURCES) \
-
	$(lib566_SOURCES) $(lib567_SOURCES) $(lib568_SOURCES) \
-
	$(lib569_SOURCES) $(lib570_SOURCES) $(lib571_SOURCES) \
-
	$(lib572_SOURCES) $(lib573_SOURCES) $(lib574_SOURCES) \
-
	$(lib575_SOURCES) $(lib576_SOURCES) $(lib578_SOURCES) \
-
	$(lib579_SOURCES) $(lib582_SOURCES) $(lib583_SOURCES) \
-
	$(lib584_SOURCES) $(lib585_SOURCES) $(lib586_SOURCES) \
-
	$(lib587_SOURCES) $(lib589_SOURCES) $(lib590_SOURCES) \
-
	$(lib591_SOURCES) $(lib597_SOURCES) $(lib598_SOURCES) \
-
	$(lib599_SOURCES) $(lib643_SOURCES) $(lib645_SOURCES) \
-
	$(lib650_SOURCES) $(lib651_SOURCES) $(lib652_SOURCES) \
-
	$(lib653_SOURCES) $(lib654_SOURCES) $(lib655_SOURCES) \
-
	$(lib658_SOURCES) $(lib659_SOURCES) $(lib661_SOURCES) \
-
	$(lib666_SOURCES) $(lib667_SOURCES) $(lib668_SOURCES) \
-
	$(lib670_SOURCES) $(lib671_SOURCES) $(lib672_SOURCES) \
-
	$(lib673_SOURCES) $(lib674_SOURCES) $(lib676_SOURCES) \
-
	$(lib677_SOURCES) $(lib678_SOURCES) $(lib694_SOURCES) \
-
	$(lib695_SOURCES) $(lib696_SOURCES) $(libauthretry_SOURCES) \
+
	$(lib1974_SOURCES) $(lib1975_SOURCES) $(lib2301_SOURCES) \
+
	$(lib2302_SOURCES) $(lib2304_SOURCES) $(lib2305_SOURCES) \
+
	$(lib2306_SOURCES) $(lib2308_SOURCES) $(lib2309_SOURCES) \
+
	$(lib2402_SOURCES) $(lib2404_SOURCES) $(lib2405_SOURCES) \
+
	$(lib2502_SOURCES) $(lib3010_SOURCES) $(lib3025_SOURCES) \
+
	$(lib3026_SOURCES) $(lib3027_SOURCES) $(lib3100_SOURCES) \
+
	$(lib3101_SOURCES) $(lib3102_SOURCES) $(lib3103_SOURCES) \
+
	$(lib3207_SOURCES) $(lib500_SOURCES) $(lib501_SOURCES) \
+
	$(lib502_SOURCES) $(lib503_SOURCES) $(lib504_SOURCES) \
+
	$(lib505_SOURCES) $(lib506_SOURCES) $(lib507_SOURCES) \
+
	$(lib508_SOURCES) $(lib509_SOURCES) $(lib510_SOURCES) \
+
	$(lib511_SOURCES) $(lib512_SOURCES) $(lib513_SOURCES) \
+
	$(lib514_SOURCES) $(lib515_SOURCES) $(lib516_SOURCES) \
+
	$(lib517_SOURCES) $(lib518_SOURCES) $(lib519_SOURCES) \
+
	$(lib520_SOURCES) $(lib521_SOURCES) $(lib523_SOURCES) \
+
	$(lib524_SOURCES) $(lib525_SOURCES) $(lib526_SOURCES) \
+
	$(lib527_SOURCES) $(lib529_SOURCES) $(lib530_SOURCES) \
+
	$(lib532_SOURCES) $(lib533_SOURCES) $(lib536_SOURCES) \
+
	$(lib537_SOURCES) $(lib539_SOURCES) $(lib540_SOURCES) \
+
	$(lib541_SOURCES) $(lib542_SOURCES) $(lib543_SOURCES) \
+
	$(lib544_SOURCES) $(lib545_SOURCES) $(lib547_SOURCES) \
+
	$(lib548_SOURCES) $(lib549_SOURCES) $(lib552_SOURCES) \
+
	$(lib553_SOURCES) $(lib554_SOURCES) $(lib555_SOURCES) \
+
	$(lib556_SOURCES) $(lib557_SOURCES) $(lib558_SOURCES) \
+
	$(lib559_SOURCES) $(lib560_SOURCES) $(lib562_SOURCES) \
+
	$(lib564_SOURCES) $(lib565_SOURCES) $(lib566_SOURCES) \
+
	$(lib567_SOURCES) $(lib568_SOURCES) $(lib569_SOURCES) \
+
	$(lib570_SOURCES) $(lib571_SOURCES) $(lib572_SOURCES) \
+
	$(lib573_SOURCES) $(lib574_SOURCES) $(lib575_SOURCES) \
+
	$(lib576_SOURCES) $(lib578_SOURCES) $(lib579_SOURCES) \
+
	$(lib582_SOURCES) $(lib583_SOURCES) $(lib584_SOURCES) \
+
	$(lib585_SOURCES) $(lib586_SOURCES) $(lib587_SOURCES) \
+
	$(lib589_SOURCES) $(lib590_SOURCES) $(lib591_SOURCES) \
+
	$(lib597_SOURCES) $(lib598_SOURCES) $(lib599_SOURCES) \
+
	$(lib643_SOURCES) $(lib645_SOURCES) $(lib650_SOURCES) \
+
	$(lib651_SOURCES) $(lib652_SOURCES) $(lib653_SOURCES) \
+
	$(lib654_SOURCES) $(lib655_SOURCES) $(lib658_SOURCES) \
+
	$(lib659_SOURCES) $(lib661_SOURCES) $(lib666_SOURCES) \
+
	$(lib667_SOURCES) $(lib668_SOURCES) $(lib670_SOURCES) \
+
	$(lib671_SOURCES) $(lib672_SOURCES) $(lib673_SOURCES) \
+
	$(lib674_SOURCES) $(lib676_SOURCES) $(lib677_SOURCES) \
+
	$(lib678_SOURCES) $(libauthretry_SOURCES) \
	$(libntlmconnect_SOURCES) $(libprereq_SOURCES) \
	$(libtests_SOURCES) $(nodist_libtests_SOURCES)
DIST_SOURCES = $(am__libstubgss_la_SOURCES_DIST) $(lib1156_SOURCES) \
@@ -1678,51 +1633,49 @@ DIST_SOURCES = $(am__libstubgss_la_SOURCES_DIST) $(lib1156_SOURCES) \
	$(lib1959_SOURCES) $(lib1960_SOURCES) $(lib1964_SOURCES) \
	$(lib1970_SOURCES) $(lib1971_SOURCES) $(lib1972_SOURCES) \
	$(lib1973_SOURCES) $(lib1974_SOURCES) $(lib1975_SOURCES) \
-
	$(lib1977_SOURCES) $(lib2301_SOURCES) $(lib2302_SOURCES) \
-
	$(lib2304_SOURCES) $(lib2305_SOURCES) $(lib2306_SOURCES) \
-
	$(lib2308_SOURCES) $(lib2309_SOURCES) $(lib2310_SOURCES) \
-
	$(lib2402_SOURCES) $(lib2404_SOURCES) $(lib2405_SOURCES) \
-
	$(lib2502_SOURCES) $(lib3010_SOURCES) $(lib3025_SOURCES) \
-
	$(lib3026_SOURCES) $(lib3027_SOURCES) $(lib3100_SOURCES) \
-
	$(lib3101_SOURCES) $(lib3102_SOURCES) $(lib3103_SOURCES) \
-
	$(lib3104_SOURCES) $(lib3105_SOURCES) $(lib3207_SOURCES) \
-
	$(lib500_SOURCES) $(lib501_SOURCES) $(lib502_SOURCES) \
-
	$(lib503_SOURCES) $(lib504_SOURCES) $(lib505_SOURCES) \
-
	$(lib506_SOURCES) $(lib507_SOURCES) $(lib508_SOURCES) \
-
	$(lib509_SOURCES) $(lib510_SOURCES) $(lib511_SOURCES) \
-
	$(lib512_SOURCES) $(lib513_SOURCES) $(lib514_SOURCES) \
-
	$(lib515_SOURCES) $(lib516_SOURCES) $(lib517_SOURCES) \
-
	$(lib518_SOURCES) $(lib519_SOURCES) $(lib520_SOURCES) \
-
	$(lib521_SOURCES) $(lib523_SOURCES) $(lib524_SOURCES) \
-
	$(lib525_SOURCES) $(lib526_SOURCES) $(lib527_SOURCES) \
-
	$(lib529_SOURCES) $(lib530_SOURCES) $(lib532_SOURCES) \
-
	$(lib533_SOURCES) $(lib536_SOURCES) $(lib537_SOURCES) \
-
	$(lib539_SOURCES) $(lib540_SOURCES) $(lib541_SOURCES) \
-
	$(lib542_SOURCES) $(lib543_SOURCES) $(lib544_SOURCES) \
-
	$(lib545_SOURCES) $(lib547_SOURCES) $(lib548_SOURCES) \
-
	$(lib549_SOURCES) $(lib552_SOURCES) $(lib553_SOURCES) \
-
	$(lib554_SOURCES) $(lib555_SOURCES) $(lib556_SOURCES) \
-
	$(lib557_SOURCES) $(lib558_SOURCES) $(lib559_SOURCES) \
-
	$(lib560_SOURCES) $(lib562_SOURCES) $(lib564_SOURCES) \
-
	$(lib565_SOURCES) $(lib566_SOURCES) $(lib567_SOURCES) \
-
	$(lib568_SOURCES) $(lib569_SOURCES) $(lib570_SOURCES) \
-
	$(lib571_SOURCES) $(lib572_SOURCES) $(lib573_SOURCES) \
-
	$(lib574_SOURCES) $(lib575_SOURCES) $(lib576_SOURCES) \
-
	$(lib578_SOURCES) $(lib579_SOURCES) $(lib582_SOURCES) \
-
	$(lib583_SOURCES) $(lib584_SOURCES) $(lib585_SOURCES) \
-
	$(lib586_SOURCES) $(lib587_SOURCES) $(lib589_SOURCES) \
-
	$(lib590_SOURCES) $(lib591_SOURCES) $(lib597_SOURCES) \
-
	$(lib598_SOURCES) $(lib599_SOURCES) $(lib643_SOURCES) \
-
	$(lib645_SOURCES) $(lib650_SOURCES) $(lib651_SOURCES) \
-
	$(lib652_SOURCES) $(lib653_SOURCES) $(lib654_SOURCES) \
-
	$(lib655_SOURCES) $(lib658_SOURCES) $(lib659_SOURCES) \
-
	$(lib661_SOURCES) $(lib666_SOURCES) $(lib667_SOURCES) \
-
	$(lib668_SOURCES) $(lib670_SOURCES) $(lib671_SOURCES) \
-
	$(lib672_SOURCES) $(lib673_SOURCES) $(lib674_SOURCES) \
-
	$(lib676_SOURCES) $(lib677_SOURCES) $(lib678_SOURCES) \
-
	$(lib694_SOURCES) $(lib695_SOURCES) $(lib696_SOURCES) \
-
	$(libauthretry_SOURCES) $(libntlmconnect_SOURCES) \
-
	$(libprereq_SOURCES) $(am__libtests_SOURCES_DIST)
+
	$(lib2301_SOURCES) $(lib2302_SOURCES) $(lib2304_SOURCES) \
+
	$(lib2305_SOURCES) $(lib2306_SOURCES) $(lib2308_SOURCES) \
+
	$(lib2309_SOURCES) $(lib2402_SOURCES) $(lib2404_SOURCES) \
+
	$(lib2405_SOURCES) $(lib2502_SOURCES) $(lib3010_SOURCES) \
+
	$(lib3025_SOURCES) $(lib3026_SOURCES) $(lib3027_SOURCES) \
+
	$(lib3100_SOURCES) $(lib3101_SOURCES) $(lib3102_SOURCES) \
+
	$(lib3103_SOURCES) $(lib3207_SOURCES) $(lib500_SOURCES) \
+
	$(lib501_SOURCES) $(lib502_SOURCES) $(lib503_SOURCES) \
+
	$(lib504_SOURCES) $(lib505_SOURCES) $(lib506_SOURCES) \
+
	$(lib507_SOURCES) $(lib508_SOURCES) $(lib509_SOURCES) \
+
	$(lib510_SOURCES) $(lib511_SOURCES) $(lib512_SOURCES) \
+
	$(lib513_SOURCES) $(lib514_SOURCES) $(lib515_SOURCES) \
+
	$(lib516_SOURCES) $(lib517_SOURCES) $(lib518_SOURCES) \
+
	$(lib519_SOURCES) $(lib520_SOURCES) $(lib521_SOURCES) \
+
	$(lib523_SOURCES) $(lib524_SOURCES) $(lib525_SOURCES) \
+
	$(lib526_SOURCES) $(lib527_SOURCES) $(lib529_SOURCES) \
+
	$(lib530_SOURCES) $(lib532_SOURCES) $(lib533_SOURCES) \
+
	$(lib536_SOURCES) $(lib537_SOURCES) $(lib539_SOURCES) \
+
	$(lib540_SOURCES) $(lib541_SOURCES) $(lib542_SOURCES) \
+
	$(lib543_SOURCES) $(lib544_SOURCES) $(lib545_SOURCES) \
+
	$(lib547_SOURCES) $(lib548_SOURCES) $(lib549_SOURCES) \
+
	$(lib552_SOURCES) $(lib553_SOURCES) $(lib554_SOURCES) \
+
	$(lib555_SOURCES) $(lib556_SOURCES) $(lib557_SOURCES) \
+
	$(lib558_SOURCES) $(lib559_SOURCES) $(lib560_SOURCES) \
+
	$(lib562_SOURCES) $(lib564_SOURCES) $(lib565_SOURCES) \
+
	$(lib566_SOURCES) $(lib567_SOURCES) $(lib568_SOURCES) \
+
	$(lib569_SOURCES) $(lib570_SOURCES) $(lib571_SOURCES) \
+
	$(lib572_SOURCES) $(lib573_SOURCES) $(lib574_SOURCES) \
+
	$(lib575_SOURCES) $(lib576_SOURCES) $(lib578_SOURCES) \
+
	$(lib579_SOURCES) $(lib582_SOURCES) $(lib583_SOURCES) \
+
	$(lib584_SOURCES) $(lib585_SOURCES) $(lib586_SOURCES) \
+
	$(lib587_SOURCES) $(lib589_SOURCES) $(lib590_SOURCES) \
+
	$(lib591_SOURCES) $(lib597_SOURCES) $(lib598_SOURCES) \
+
	$(lib599_SOURCES) $(lib643_SOURCES) $(lib645_SOURCES) \
+
	$(lib650_SOURCES) $(lib651_SOURCES) $(lib652_SOURCES) \
+
	$(lib653_SOURCES) $(lib654_SOURCES) $(lib655_SOURCES) \
+
	$(lib658_SOURCES) $(lib659_SOURCES) $(lib661_SOURCES) \
+
	$(lib666_SOURCES) $(lib667_SOURCES) $(lib668_SOURCES) \
+
	$(lib670_SOURCES) $(lib671_SOURCES) $(lib672_SOURCES) \
+
	$(lib673_SOURCES) $(lib674_SOURCES) $(lib676_SOURCES) \
+
	$(lib677_SOURCES) $(lib678_SOURCES) $(libauthretry_SOURCES) \
+
	$(libntlmconnect_SOURCES) $(libprereq_SOURCES) \
+
	$(am__libtests_SOURCES_DIST)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
@@ -1751,6 +1704,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -1775,10 +1729,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -1797,14 +1772,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -1843,6 +1826,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -1850,10 +1836,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -1948,8 +1970,8 @@ AUTOMAKE_OPTIONS = foreign nostdinc
# $(top_builddir)/lib is for libcurl's generated lib/curl_config.h file
# $(top_srcdir)/lib for libcurl's lib/curl_setup.h and other "borrowed" files
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/lib \
-
	-I$(top_srcdir)/lib -I$(top_srcdir)/src \
-
	-I$(top_srcdir)/tests/libtest $(am__append_1) $(am__append_4)
+
	-I$(top_srcdir)/lib -I$(top_srcdir)/tests/libtest \
+
	$(am__append_1) $(am__append_4)
EXTRA_DIST = test307.pl test610.pl test613.pl test1013.pl test1022.pl   \
  CMakeLists.txt mk-lib1521.pl .checksrc

@@ -1985,16 +2007,21 @@ LDADD = $(SUPPORTFILES_LIBS)
###########################################################################
# files used only in some libcurl test programs
TESTUTIL = testutil.c testutil.h
+

+
# files used only in some libcurl test programs
TSTTRACE = testtrace.c testtrace.h
+

+
# files used only in some libcurl test programs
WARNLESS = ../../lib/warnless.c ../../lib/warnless.h
+

+
# files used only in some libcurl test programs
MULTIBYTE = ../../lib/curl_multibyte.c ../../lib/curl_multibyte.h
-
INET_PTON = ../../lib/inet_pton.c ../../lib/inet_pton.h
-
THREADS = ../../lib/curl_threads.c ../../lib/curl_threads.h

# these files are used in every single test program below
TIMEDIFF = ../../lib/timediff.c ../../lib/timediff.h
FIRSTFILES = first.c first.h
SUPPORTFILES = $(TIMEDIFF) $(FIRSTFILES) test.h
+
THREADS = ../../lib/curl_threads.c ../../lib/curl_threads.h

# These are all libcurl test programs
LIBTESTPROGS = libauthretry libntlmconnect libprereq                     \
@@ -2010,8 +2037,7 @@ LIBTESTPROGS = libauthretry libntlmconnect libprereq \
 lib599 \
 lib643        lib645 lib650 lib651 lib652 lib653 lib654 lib655 lib658   \
 lib659 lib661 lib666 lib667 lib668 \
-
 lib670 lib671 lib672 lib673 lib674 lib676 lib677 lib678 lib694 lib695   \
-
 lib696 \
+
 lib670 lib671 lib672 lib673 lib674 lib676 lib677 lib678 \
 lib1156 \
 lib1301 \
 lib1485 \
@@ -2033,12 +2059,12 @@ LIBTESTPROGS = libauthretry libntlmconnect libprereq \
 lib1933 lib1934 lib1935 lib1936 lib1937 lib1938 lib1939 lib1940 \
 lib1945 lib1946 lib1947 lib1948 lib1955 lib1956 lib1957 lib1958 lib1959 \
 lib1960 lib1964 \
-
 lib1970 lib1971 lib1972 lib1973 lib1974 lib1975 lib1977 \
-
 lib2301 lib2302 lib2304 lib2305 lib2306         lib2308 lib2309 lib2310 \
+
 lib1970 lib1971 lib1972 lib1973 lib1974 lib1975 \
+
 lib2301 lib2302 lib2304 lib2305 lib2306         lib2308 lib2309 \
 lib2402 lib2404 lib2405 \
 lib2502 \
 lib3010 lib3025 lib3026 lib3027 \
-
 lib3100 lib3101 lib3102 lib3103 lib3104 lib3105 lib3207
+
 lib3100 lib3101 lib3102 lib3103 lib3207

libntlmconnect_SOURCES = libntlmconnect.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
libntlmconnect_LDADD = $(TESTUTIL_LIBS)
@@ -2196,10 +2222,6 @@ lib677_SOURCES = lib677.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) $(MULTIBYTE)
lib677_LDADD = $(TESTUTIL_LIBS)
lib678_SOURCES = lib678.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) $(MULTIBYTE)
lib678_LDADD = $(TESTUTIL_LIBS)
-
lib694_SOURCES = lib694.c $(SUPPORTFILES)
-
lib695_SOURCES = lib695.c $(SUPPORTFILES)
-
lib696_SOURCES = lib556.c $(SUPPORTFILES)
-
lib696_CPPFLAGS = $(AM_CPPFLAGS) -DLIB696
lib1301_SOURCES = lib1301.c $(SUPPORTFILES) $(TESTUTIL)
lib1301_LDADD = $(TESTUTIL_LIBS)
lib1485_SOURCES = lib1485.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
@@ -2395,7 +2417,7 @@ lib1958_SOURCES = lib1958.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1958_LDADD = $(TESTUTIL_LIBS)
lib1959_SOURCES = lib1959.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1959_LDADD = $(TESTUTIL_LIBS)
-
lib1960_SOURCES = lib1960.c $(SUPPORTFILES) $(INET_PTON)
+
lib1960_SOURCES = lib1960.c $(SUPPORTFILES)
lib1960_LDADD = $(TESTUTIL_LIBS)
lib1964_SOURCES = lib1964.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1964_LDADD = $(TESTUTIL_LIBS)
@@ -2411,8 +2433,6 @@ lib1974_SOURCES = lib1974.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1974_LDADD = $(TESTUTIL_LIBS)
lib1975_SOURCES = lib1975.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1975_LDADD = $(TESTUTIL_LIBS)
-
lib1977_SOURCES = lib1977.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
-
lib1977_LDADD = $(TESTUTIL_LIBS)
lib2301_SOURCES = lib2301.c $(SUPPORTFILES)
lib2301_LDADD = $(TESTUTIL_LIBS)
lib2302_SOURCES = lib2302.c $(SUPPORTFILES)
@@ -2427,8 +2447,6 @@ lib2308_SOURCES = lib2308.c $(SUPPORTFILES)
lib2308_LDADD = $(TESTUTIL_LIBS)
lib2309_SOURCES = lib2309.c $(SUPPORTFILES)
lib2309_LDADD = $(TESTUTIL_LIBS)
-
lib2310_SOURCES = lib2310.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE) $(MULTIBYTE)
-
lib2310_LDADD = $(TESTUTIL_LIBS)
lib2402_SOURCES = lib2402.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib2402_LDADD = $(TESTUTIL_LIBS)
lib2404_SOURCES = lib2404.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
@@ -2453,8 +2471,6 @@ lib3102_SOURCES = lib3102.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib3102_LDADD = $(TESTUTIL_LIBS)
lib3103_SOURCES = lib3103.c $(SUPPORTFILES)
lib3103_LDADD = $(TESTUTIL_LIBS)
-
lib3104_SOURCES = lib3104.c $(SUPPORTFILES)
-
lib3105_SOURCES = lib3105.c $(SUPPORTFILES)
lib3207_SOURCES = lib3207.c $(SUPPORTFILES) $(TESTUTIL) $(THREADS) $(WARNLESS) $(MULTIBYTE)
lib3207_LDADD = $(TESTUTIL_LIBS)

@@ -2987,8 +3003,6 @@ lib1958$(EXEEXT): $(lib1958_OBJECTS) $(lib1958_DEPENDENCIES) $(EXTRA_lib1958_DEP
lib1959$(EXEEXT): $(lib1959_OBJECTS) $(lib1959_DEPENDENCIES) $(EXTRA_lib1959_DEPENDENCIES) 
	@rm -f lib1959$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lib1959_OBJECTS) $(lib1959_LDADD) $(LIBS)
-
../../lib/inet_pton.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)

lib1960$(EXEEXT): $(lib1960_OBJECTS) $(lib1960_DEPENDENCIES) $(EXTRA_lib1960_DEPENDENCIES) 
	@rm -f lib1960$(EXEEXT)
@@ -3022,10 +3036,6 @@ lib1975$(EXEEXT): $(lib1975_OBJECTS) $(lib1975_DEPENDENCIES) $(EXTRA_lib1975_DEP
	@rm -f lib1975$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lib1975_OBJECTS) $(lib1975_LDADD) $(LIBS)

-
lib1977$(EXEEXT): $(lib1977_OBJECTS) $(lib1977_DEPENDENCIES) $(EXTRA_lib1977_DEPENDENCIES) 
-
	@rm -f lib1977$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(lib1977_OBJECTS) $(lib1977_LDADD) $(LIBS)
-

lib2301$(EXEEXT): $(lib2301_OBJECTS) $(lib2301_DEPENDENCIES) $(EXTRA_lib2301_DEPENDENCIES) 
	@rm -f lib2301$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lib2301_OBJECTS) $(lib2301_LDADD) $(LIBS)
@@ -3056,10 +3066,6 @@ lib2309$(EXEEXT): $(lib2309_OBJECTS) $(lib2309_DEPENDENCIES) $(EXTRA_lib2309_DEP
	@rm -f lib2309$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lib2309_OBJECTS) $(lib2309_LDADD) $(LIBS)

-
lib2310$(EXEEXT): $(lib2310_OBJECTS) $(lib2310_DEPENDENCIES) $(EXTRA_lib2310_DEPENDENCIES) 
-
	@rm -f lib2310$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(lib2310_OBJECTS) $(lib2310_LDADD) $(LIBS)
-

lib2402$(EXEEXT): $(lib2402_OBJECTS) $(lib2402_DEPENDENCIES) $(EXTRA_lib2402_DEPENDENCIES) 
	@rm -f lib2402$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lib2402_OBJECTS) $(lib2402_LDADD) $(LIBS)
@@ -3107,14 +3113,6 @@ lib3102$(EXEEXT): $(lib3102_OBJECTS) $(lib3102_DEPENDENCIES) $(EXTRA_lib3102_DEP
lib3103$(EXEEXT): $(lib3103_OBJECTS) $(lib3103_DEPENDENCIES) $(EXTRA_lib3103_DEPENDENCIES) 
	@rm -f lib3103$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lib3103_OBJECTS) $(lib3103_LDADD) $(LIBS)
-

-
lib3104$(EXEEXT): $(lib3104_OBJECTS) $(lib3104_DEPENDENCIES) $(EXTRA_lib3104_DEPENDENCIES) 
-
	@rm -f lib3104$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(lib3104_OBJECTS) $(lib3104_LDADD) $(LIBS)
-

-
lib3105$(EXEEXT): $(lib3105_OBJECTS) $(lib3105_DEPENDENCIES) $(EXTRA_lib3105_DEPENDENCIES) 
-
	@rm -f lib3105$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(lib3105_OBJECTS) $(lib3105_LDADD) $(LIBS)
../../lib/curl_threads.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)

@@ -3576,20 +3574,6 @@ lib678$(EXEEXT): $(lib678_OBJECTS) $(lib678_DEPENDENCIES) $(EXTRA_lib678_DEPENDE
	@rm -f lib678$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lib678_OBJECTS) $(lib678_LDADD) $(LIBS)

-
lib694$(EXEEXT): $(lib694_OBJECTS) $(lib694_DEPENDENCIES) $(EXTRA_lib694_DEPENDENCIES) 
-
	@rm -f lib694$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(lib694_OBJECTS) $(lib694_LDADD) $(LIBS)
-

-
lib695$(EXEEXT): $(lib695_OBJECTS) $(lib695_DEPENDENCIES) $(EXTRA_lib695_DEPENDENCIES) 
-
	@rm -f lib695$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(lib695_OBJECTS) $(lib695_LDADD) $(LIBS)
-
../../lib/lib696-timediff.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
-

-
lib696$(EXEEXT): $(lib696_OBJECTS) $(lib696_DEPENDENCIES) $(EXTRA_lib696_DEPENDENCIES) 
-
	@rm -f lib696$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(lib696_OBJECTS) $(lib696_LDADD) $(LIBS)
-

libauthretry$(EXEEXT): $(libauthretry_OBJECTS) $(libauthretry_DEPENDENCIES) $(EXTRA_libauthretry_DEPENDENCIES) 
	@rm -f libauthretry$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(libauthretry_OBJECTS) $(libauthretry_LDADD) $(LIBS)
@@ -3615,7 +3599,6 @@ distclean-compile:

@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/curl_threads.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/inet_pton.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1502-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1502-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib1503-timediff.Po@am__quote@ # am--include-marker
@@ -3656,7 +3639,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib671-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib672-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib672-warnless.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/lib696-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/first.Po@am__quote@ # am--include-marker
@@ -3786,7 +3768,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1973.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1974.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1975.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1977.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2301.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2302.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2304.Po@am__quote@ # am--include-marker
@@ -3794,7 +3775,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2306.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2308.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2309.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2310.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2402.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2404.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib2405.Po@am__quote@ # am--include-marker
@@ -3807,8 +3787,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib3101.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib3102.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib3103.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib3104.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib3105.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib3207.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib501.Po@am__quote@ # am--include-marker
@@ -3935,10 +3913,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib676.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib677.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib678.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib694.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib695.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib696-first.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib696-lib556.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libauthretry.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libntlmconnect.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libprereq.Po@am__quote@ # am--include-marker
@@ -5426,48 +5400,6 @@ lib672-testutil.obj: testutil.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib672_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib672-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi`

-
lib696-lib556.o: lib556.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib696-lib556.o -MD -MP -MF $(DEPDIR)/lib696-lib556.Tpo -c -o lib696-lib556.o `test -f 'lib556.c' || echo '$(srcdir)/'`lib556.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lib696-lib556.Tpo $(DEPDIR)/lib696-lib556.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='lib556.c' object='lib696-lib556.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) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib696-lib556.o `test -f 'lib556.c' || echo '$(srcdir)/'`lib556.c
-

-
lib696-lib556.obj: lib556.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib696-lib556.obj -MD -MP -MF $(DEPDIR)/lib696-lib556.Tpo -c -o lib696-lib556.obj `if test -f 'lib556.c'; then $(CYGPATH_W) 'lib556.c'; else $(CYGPATH_W) '$(srcdir)/lib556.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lib696-lib556.Tpo $(DEPDIR)/lib696-lib556.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='lib556.c' object='lib696-lib556.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) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib696-lib556.obj `if test -f 'lib556.c'; then $(CYGPATH_W) 'lib556.c'; else $(CYGPATH_W) '$(srcdir)/lib556.c'; fi`
-

-
../../lib/lib696-timediff.o: ../../lib/timediff.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib696-timediff.o -MD -MP -MF ../../lib/$(DEPDIR)/lib696-timediff.Tpo -c -o ../../lib/lib696-timediff.o `test -f '../../lib/timediff.c' || echo '$(srcdir)/'`../../lib/timediff.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib696-timediff.Tpo ../../lib/$(DEPDIR)/lib696-timediff.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/timediff.c' object='../../lib/lib696-timediff.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) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib696-timediff.o `test -f '../../lib/timediff.c' || echo '$(srcdir)/'`../../lib/timediff.c
-

-
../../lib/lib696-timediff.obj: ../../lib/timediff.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib696-timediff.obj -MD -MP -MF ../../lib/$(DEPDIR)/lib696-timediff.Tpo -c -o ../../lib/lib696-timediff.obj `if test -f '../../lib/timediff.c'; then $(CYGPATH_W) '../../lib/timediff.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/timediff.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib696-timediff.Tpo ../../lib/$(DEPDIR)/lib696-timediff.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/timediff.c' object='../../lib/lib696-timediff.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) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib696-timediff.obj `if test -f '../../lib/timediff.c'; then $(CYGPATH_W) '../../lib/timediff.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/timediff.c'; fi`
-

-
lib696-first.o: first.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib696-first.o -MD -MP -MF $(DEPDIR)/lib696-first.Tpo -c -o lib696-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lib696-first.Tpo $(DEPDIR)/lib696-first.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='first.c' object='lib696-first.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) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib696-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c
-

-
lib696-first.obj: first.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib696-first.obj -MD -MP -MF $(DEPDIR)/lib696-first.Tpo -c -o lib696-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lib696-first.Tpo $(DEPDIR)/lib696-first.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='first.c' object='lib696-first.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) $(lib696_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib696-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`
-

mostlyclean-libtool:
	-rm -f *.lo

@@ -5604,7 +5536,6 @@ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
distclean: distclean-am
		-rm -f ../../lib/$(DEPDIR)/curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/curl_threads.Po
-
	-rm -f ../../lib/$(DEPDIR)/inet_pton.Po
	-rm -f ../../lib/$(DEPDIR)/lib1502-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/lib1502-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/lib1503-timediff.Po
@@ -5645,7 +5576,6 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/lib671-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/lib672-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/lib672-warnless.Po
-
	-rm -f ../../lib/$(DEPDIR)/lib696-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/timediff.Po
	-rm -f ../../lib/$(DEPDIR)/warnless.Po
	-rm -f ./$(DEPDIR)/first.Po
@@ -5775,7 +5705,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/lib1973.Po
	-rm -f ./$(DEPDIR)/lib1974.Po
	-rm -f ./$(DEPDIR)/lib1975.Po
-
	-rm -f ./$(DEPDIR)/lib1977.Po
	-rm -f ./$(DEPDIR)/lib2301.Po
	-rm -f ./$(DEPDIR)/lib2302.Po
	-rm -f ./$(DEPDIR)/lib2304.Po
@@ -5783,7 +5712,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/lib2306.Po
	-rm -f ./$(DEPDIR)/lib2308.Po
	-rm -f ./$(DEPDIR)/lib2309.Po
-
	-rm -f ./$(DEPDIR)/lib2310.Po
	-rm -f ./$(DEPDIR)/lib2402.Po
	-rm -f ./$(DEPDIR)/lib2404.Po
	-rm -f ./$(DEPDIR)/lib2405.Po
@@ -5796,8 +5724,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/lib3101.Po
	-rm -f ./$(DEPDIR)/lib3102.Po
	-rm -f ./$(DEPDIR)/lib3103.Po
-
	-rm -f ./$(DEPDIR)/lib3104.Po
-
	-rm -f ./$(DEPDIR)/lib3105.Po
	-rm -f ./$(DEPDIR)/lib3207.Po
	-rm -f ./$(DEPDIR)/lib500.Po
	-rm -f ./$(DEPDIR)/lib501.Po
@@ -5924,10 +5850,6 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/lib676.Po
	-rm -f ./$(DEPDIR)/lib677.Po
	-rm -f ./$(DEPDIR)/lib678.Po
-
	-rm -f ./$(DEPDIR)/lib694.Po
-
	-rm -f ./$(DEPDIR)/lib695.Po
-
	-rm -f ./$(DEPDIR)/lib696-first.Po
-
	-rm -f ./$(DEPDIR)/lib696-lib556.Po
	-rm -f ./$(DEPDIR)/libauthretry.Po
	-rm -f ./$(DEPDIR)/libntlmconnect.Po
	-rm -f ./$(DEPDIR)/libprereq.Po
@@ -5982,7 +5904,6 @@ installcheck-am:
maintainer-clean: maintainer-clean-am
		-rm -f ../../lib/$(DEPDIR)/curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/curl_threads.Po
-
	-rm -f ../../lib/$(DEPDIR)/inet_pton.Po
	-rm -f ../../lib/$(DEPDIR)/lib1502-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/lib1502-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/lib1503-timediff.Po
@@ -6023,7 +5944,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/lib671-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/lib672-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/lib672-warnless.Po
-
	-rm -f ../../lib/$(DEPDIR)/lib696-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/timediff.Po
	-rm -f ../../lib/$(DEPDIR)/warnless.Po
	-rm -f ./$(DEPDIR)/first.Po
@@ -6153,7 +6073,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/lib1973.Po
	-rm -f ./$(DEPDIR)/lib1974.Po
	-rm -f ./$(DEPDIR)/lib1975.Po
-
	-rm -f ./$(DEPDIR)/lib1977.Po
	-rm -f ./$(DEPDIR)/lib2301.Po
	-rm -f ./$(DEPDIR)/lib2302.Po
	-rm -f ./$(DEPDIR)/lib2304.Po
@@ -6161,7 +6080,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/lib2306.Po
	-rm -f ./$(DEPDIR)/lib2308.Po
	-rm -f ./$(DEPDIR)/lib2309.Po
-
	-rm -f ./$(DEPDIR)/lib2310.Po
	-rm -f ./$(DEPDIR)/lib2402.Po
	-rm -f ./$(DEPDIR)/lib2404.Po
	-rm -f ./$(DEPDIR)/lib2405.Po
@@ -6174,8 +6092,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/lib3101.Po
	-rm -f ./$(DEPDIR)/lib3102.Po
	-rm -f ./$(DEPDIR)/lib3103.Po
-
	-rm -f ./$(DEPDIR)/lib3104.Po
-
	-rm -f ./$(DEPDIR)/lib3105.Po
	-rm -f ./$(DEPDIR)/lib3207.Po
	-rm -f ./$(DEPDIR)/lib500.Po
	-rm -f ./$(DEPDIR)/lib501.Po
@@ -6302,10 +6218,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/lib676.Po
	-rm -f ./$(DEPDIR)/lib677.Po
	-rm -f ./$(DEPDIR)/lib678.Po
-
	-rm -f ./$(DEPDIR)/lib694.Po
-
	-rm -f ./$(DEPDIR)/lib695.Po
-
	-rm -f ./$(DEPDIR)/lib696-first.Po
-
	-rm -f ./$(DEPDIR)/lib696-lib556.Po
	-rm -f ./$(DEPDIR)/libauthretry.Po
	-rm -f ./$(DEPDIR)/libntlmconnect.Po
	-rm -f ./$(DEPDIR)/libprereq.Po
@@ -6357,11 +6269,8 @@ uninstall-am:
lib1521.c: $(top_srcdir)/tests/libtest/mk-lib1521.pl $(top_srcdir)/include/curl/curl.h
	@PERL@ $(top_srcdir)/tests/libtest/mk-lib1521.pl < $(top_srcdir)/include/curl/curl.h lib1521.c

-
# ignore generated C files since they play by slightly different rules!
checksrc:
-
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) \
-
	  -W$(srcdir)/libtest_bundle.c \
-
	  $(srcdir)/*.[ch])
+
	$(CHECKSRC)@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) $(srcdir)/*.[ch]

# for debug builds, we scan the sources on all regular make invokes
@DEBUGBUILD_TRUE@all-local: checksrc
modified external/curl/tests/libtest/Makefile.inc
@@ -23,17 +23,23 @@
###########################################################################
# files used only in some libcurl test programs
TESTUTIL = testutil.c testutil.h
+

+
# files used only in some libcurl test programs
TSTTRACE = testtrace.c testtrace.h
+

+
# files used only in some libcurl test programs
WARNLESS = ../../lib/warnless.c ../../lib/warnless.h
+

+
# files used only in some libcurl test programs
MULTIBYTE = ../../lib/curl_multibyte.c ../../lib/curl_multibyte.h
-
INET_PTON = ../../lib/inet_pton.c ../../lib/inet_pton.h
-
THREADS = ../../lib/curl_threads.c ../../lib/curl_threads.h

# these files are used in every single test program below
TIMEDIFF = ../../lib/timediff.c ../../lib/timediff.h
FIRSTFILES = first.c first.h
SUPPORTFILES = $(TIMEDIFF) $(FIRSTFILES) test.h

+
THREADS = ../../lib/curl_threads.c ../../lib/curl_threads.h
+

# These are all libcurl test programs
LIBTESTPROGS = libauthretry libntlmconnect libprereq                     \
 lib500 lib501 lib502 lib503 lib504 lib505 lib506 lib507 lib508 lib509   \
@@ -48,8 +54,7 @@ LIBTESTPROGS = libauthretry libntlmconnect libprereq \
 lib599 \
 lib643        lib645 lib650 lib651 lib652 lib653 lib654 lib655 lib658   \
 lib659 lib661 lib666 lib667 lib668 \
-
 lib670 lib671 lib672 lib673 lib674 lib676 lib677 lib678 lib694 lib695   \
-
 lib696 \
+
 lib670 lib671 lib672 lib673 lib674 lib676 lib677 lib678 \
 lib1156 \
 lib1301 \
 lib1485 \
@@ -71,12 +76,12 @@ LIBTESTPROGS = libauthretry libntlmconnect libprereq \
 lib1933 lib1934 lib1935 lib1936 lib1937 lib1938 lib1939 lib1940 \
 lib1945 lib1946 lib1947 lib1948 lib1955 lib1956 lib1957 lib1958 lib1959 \
 lib1960 lib1964 \
-
 lib1970 lib1971 lib1972 lib1973 lib1974 lib1975 lib1977 \
-
 lib2301 lib2302 lib2304 lib2305 lib2306         lib2308 lib2309 lib2310 \
+
 lib1970 lib1971 lib1972 lib1973 lib1974 lib1975 \
+
 lib2301 lib2302 lib2304 lib2305 lib2306         lib2308 lib2309 \
 lib2402 lib2404 lib2405 \
 lib2502 \
 lib3010 lib3025 lib3026 lib3027 \
-
 lib3100 lib3101 lib3102 lib3103 lib3104 lib3105 lib3207
+
 lib3100 lib3101 lib3102 lib3103 lib3207

libntlmconnect_SOURCES = libntlmconnect.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
libntlmconnect_LDADD = $(TESTUTIL_LIBS)
@@ -339,13 +344,6 @@ lib677_LDADD = $(TESTUTIL_LIBS)
lib678_SOURCES = lib678.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) $(MULTIBYTE)
lib678_LDADD = $(TESTUTIL_LIBS)

-
lib694_SOURCES = lib694.c $(SUPPORTFILES)
-

-
lib695_SOURCES = lib695.c $(SUPPORTFILES)
-

-
lib696_SOURCES = lib556.c $(SUPPORTFILES)
-
lib696_CPPFLAGS = $(AM_CPPFLAGS) -DLIB696
-

lib1301_SOURCES = lib1301.c $(SUPPORTFILES) $(TESTUTIL)
lib1301_LDADD = $(TESTUTIL_LIBS)

@@ -643,7 +641,7 @@ lib1958_LDADD = $(TESTUTIL_LIBS)
lib1959_SOURCES = lib1959.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1959_LDADD = $(TESTUTIL_LIBS)

-
lib1960_SOURCES = lib1960.c $(SUPPORTFILES) $(INET_PTON)
+
lib1960_SOURCES = lib1960.c $(SUPPORTFILES)
lib1960_LDADD = $(TESTUTIL_LIBS)

lib1964_SOURCES = lib1964.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
@@ -667,9 +665,6 @@ lib1974_LDADD = $(TESTUTIL_LIBS)
lib1975_SOURCES = lib1975.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1975_LDADD = $(TESTUTIL_LIBS)

-
lib1977_SOURCES = lib1977.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
-
lib1977_LDADD = $(TESTUTIL_LIBS)
-

lib2301_SOURCES = lib2301.c $(SUPPORTFILES)
lib2301_LDADD = $(TESTUTIL_LIBS)

@@ -691,9 +686,6 @@ lib2308_LDADD = $(TESTUTIL_LIBS)
lib2309_SOURCES = lib2309.c $(SUPPORTFILES)
lib2309_LDADD = $(TESTUTIL_LIBS)

-
lib2310_SOURCES = lib2310.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE) $(MULTIBYTE)
-
lib2310_LDADD = $(TESTUTIL_LIBS)
-

lib2402_SOURCES = lib2402.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib2402_LDADD = $(TESTUTIL_LIBS)

@@ -730,9 +722,5 @@ lib3102_LDADD = $(TESTUTIL_LIBS)
lib3103_SOURCES = lib3103.c $(SUPPORTFILES)
lib3103_LDADD = $(TESTUTIL_LIBS)

-
lib3104_SOURCES = lib3104.c $(SUPPORTFILES)
-

-
lib3105_SOURCES = lib3105.c $(SUPPORTFILES)
-

lib3207_SOURCES = lib3207.c $(SUPPORTFILES) $(TESTUTIL) $(THREADS) $(WARNLESS) $(MULTIBYTE)
lib3207_LDADD = $(TESTUTIL_LIBS)
modified external/curl/tests/libtest/first.c
@@ -28,6 +28,14 @@
#  include <locale.h> /* for setlocale() */
#endif

+
#ifdef HAVE_IO_H
+
#  include <io.h> /* for setmode() */
+
#endif
+

+
#ifdef HAVE_FCNTL_H
+
#  include <fcntl.h> /* for setmode() */
+
#endif
+

#ifdef CURLDEBUG
#  define MEMDEBUG_NODEFINES
#  include "memdebug.h"
@@ -35,8 +43,6 @@

#include "timediff.h"

-
#include "tool_binmode.h"
-

int select_wrapper(int nfds, fd_set *rd, fd_set *wr, fd_set *exc,
                   struct timeval *tv)
{
@@ -135,7 +141,13 @@ int main(int argc, char **argv)
  int basearg;
  test_func_t test_func;

-
  CURL_SET_BINMODE(stdout);
+
#ifdef O_BINARY
+
#  ifdef __HIGHC__
+
  _setmode(stdout, O_BINARY);
+
#  else
+
  setmode(fileno(stdout), O_BINARY);
+
#  endif
+
#endif

  memory_tracking_init();

modified external/curl/tests/libtest/lib1531.c
@@ -31,7 +31,7 @@
#define TEST_HANG_TIMEOUT 60 * 1000

static char const testData[] = ".abc\0xyz";
-
static curl_off_t const testDataSize = sizeof(testData) - 1;
+
static off_t const testDataSize = sizeof(testData) - 1;

CURLcode test(char *URL)
{
@@ -46,7 +46,7 @@ CURLcode test(char *URL)

  global_init(CURL_GLOBAL_ALL);

-
  /* Allocate one curl handle per transfer */
+
  /* Allocate one CURL handle per transfer */
  easy = curl_easy_init();

  /* init a multi stack */
@@ -57,7 +57,8 @@ CURLcode test(char *URL)

  /* set the options (I left out a few, you'll get the point anyway) */
  curl_easy_setopt(easy, CURLOPT_URL, URL);
-
  curl_easy_setopt(easy, CURLOPT_POSTFIELDSIZE_LARGE, testDataSize);
+
  curl_easy_setopt(easy, CURLOPT_POSTFIELDSIZE_LARGE,
+
                   (curl_off_t)testDataSize);
  curl_easy_setopt(easy, CURLOPT_POSTFIELDS, testData);

  /* we start some action by calling perform right away */
@@ -114,8 +115,7 @@ CURLcode test(char *URL)
      rc = 0;
#else
      /* Portable sleep for platforms other than Windows. */
-
      struct timeval wait = {0};
-
      wait.tv_usec = 100 * 1000; /* 100ms */
+
      struct timeval wait = { 0, 100 * 1000 }; /* 100ms */
      rc = select(0, NULL, NULL, NULL, &wait);
#endif
    }
@@ -152,7 +152,7 @@ CURLcode test(char *URL)
test_cleanup:
  curl_multi_cleanup(multi_handle);

-
  /* Free the curl handles */
+
  /* Free the CURL handles */
  curl_easy_cleanup(easy);
  curl_global_cleanup();

modified external/curl/tests/libtest/lib1560.c
@@ -1143,38 +1143,6 @@ static CURLUcode updateurl(CURLU *u, const char *cmd, unsigned int setflags)
}

static const struct redircase set_url_list[] = {
-
  {"http://example.org#withs/ash", "/moo#frag",
-
   "http://example.org/moo#frag",
-
   0, 0, CURLUE_OK},
-
  {"http://example.org/", "../path/././../././../moo",
-
   "http://example.org/moo",
-
   0, 0, CURLUE_OK},
-

-
  {"http://example.org?bar/moo", "?weird",
-
   "http://example.org/?weird", 0, 0, CURLUE_OK},
-
  {"http://example.org/foo?bar", "?weird",
-
   "http://example.org/foo?weird", 0, 0, CURLUE_OK},
-
  {"http://example.org/foo", "?weird",
-
   "http://example.org/foo?weird", 0, 0, CURLUE_OK},
-
  {"http://example.org", "?weird",
-
   "http://example.org/?weird", 0, 0, CURLUE_OK},
-
  {"http://example.org/#original", "?weird#moo",
-
   "http://example.org/?weird#moo", 0, 0, CURLUE_OK},
-

-
  {"http://example.org?bar/moo#yes/path", "#new/slash",
-
   "http://example.org/?bar/moo#new/slash", 0, 0, CURLUE_OK},
-
  {"http://example.org/foo?bar", "#weird",
-
   "http://example.org/foo?bar#weird", 0, 0, CURLUE_OK},
-
  {"http://example.org/foo?bar#original", "#weird",
-
   "http://example.org/foo?bar#weird", 0, 0, CURLUE_OK},
-
  {"http://example.org/foo#original", "#weird",
-
   "http://example.org/foo#weird", 0, 0, CURLUE_OK},
-
  {"http://example.org/#original", "#weird",
-
   "http://example.org/#weird", 0, 0, CURLUE_OK},
-
  {"http://example.org#original", "#weird",
-
   "http://example.org/#weird", 0, 0, CURLUE_OK},
-
  {"http://example.org/foo?bar", "moo?hey#weird",
-
   "http://example.org/moo?hey#weird", 0, 0, CURLUE_OK},
  {"http://example.org/",
   "../path/././../../moo",
   "http://example.org/moo",
modified external/curl/tests/libtest/lib1565.c
@@ -205,6 +205,6 @@ test_cleanup:
CURLcode test(char *URL)
{
  (void)URL;
-
  return CURLE_OK;
+
  return 0;
}
#endif
modified external/curl/tests/libtest/lib1594.c
@@ -49,6 +49,12 @@ CURLcode test(char *URL)
  if(res)
    goto test_cleanup;

+
#ifdef LIB1596
+
  /* we get a relative number of seconds, so add the number of seconds
+
     we're at to make it a somewhat stable number. Then remove accuracy. */
+
  retry += time(NULL);
+
  retry /= 10000;
+
#endif
  printf("Retry-After %" CURL_FORMAT_CURL_OFF_T "\n", retry);

test_cleanup:
modified external/curl/tests/libtest/lib1945.c
@@ -27,8 +27,8 @@
#include "memdebug.h"

#ifdef _MSC_VER
-
#pragma warning(push)
-
#pragma warning(disable:4706) /* assignment within conditional expression */
+
/* warning C4706: assignment within conditional expression */
+
#pragma warning(disable:4706)
#endif
static void showem(CURL *easy, unsigned int type)
{
@@ -41,9 +41,6 @@ static void showem(CURL *easy, unsigned int type)
    prev = header;
  }
}
-
#ifdef _MSC_VER
-
#pragma warning(pop)
-
#endif

static size_t write_cb(char *data, size_t n, size_t l, void *userp)
{
modified external/curl/tests/libtest/lib1960.c
@@ -23,7 +23,18 @@
 ***************************************************************************/
#include "test.h"

-
#include "inet_pton.h"
+
#ifdef HAVE_INET_PTON
+

+
#ifdef HAVE_NETINET_IN_H
+
#include <netinet/in.h>
+
#endif
+
#ifdef HAVE_SYS_SOCKET_H
+
#include <sys/socket.h>
+
#endif
+
#ifdef HAVE_ARPA_INET_H
+
#include <arpa/inet.h>
+
#endif
+

#include "memdebug.h"

/* to prevent libcurl from closing our socket */
@@ -90,7 +101,7 @@ CURLcode test(char *URL)
  serv_addr.sin_family = AF_INET;
  serv_addr.sin_port = htons(port);

-
  if(Curl_inet_pton(AF_INET, libtest_arg2, &serv_addr.sin_addr) <= 0) {
+
  if(inet_pton(AF_INET, libtest_arg2, &serv_addr.sin_addr) <= 0) {
    fprintf(stderr, "inet_pton failed\n");
    goto test_cleanup;
  }
@@ -121,10 +132,18 @@ CURLcode test(char *URL)
  res = curl_easy_perform(curl);

test_cleanup:
-
  curl_easy_cleanup(curl);
  if(client_fd != CURL_SOCKET_BAD)
    sclose(client_fd);
+
  curl_easy_cleanup(curl);
  curl_global_cleanup();

  return res;
}
+
#else
+
CURLcode test(char *URL)
+
{
+
  (void)URL;
+
  printf("lacks inet_pton\n");
+
  return CURLE_OK;
+
}
+
#endif
deleted external/curl/tests/libtest/lib1977.c
@@ -1,96 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "test.h"
-

-
#include "testutil.h"
-
#include "warnless.h"
-
#include "memdebug.h"
-

-
CURLcode test(char *URL)
-
{
-
  CURLcode res = CURLE_OK;
-
  CURLU *curlu = curl_url();
-
  CURLU *curlu_2 = curl_url();
-
  CURL *curl;
-
  char *effective = NULL;
-

-
  global_init(CURL_GLOBAL_ALL);
-
  easy_init(curl);
-

-
  /* first transfer: set just the URL in the first CURLU handle */
-
  curl_url_set(curlu, CURLUPART_URL, URL, CURLU_DEFAULT_SCHEME);
-
  easy_setopt(curl, CURLOPT_CURLU, curlu);
-

-
  res = curl_easy_perform(curl);
-
  if(res)
-
    goto test_cleanup;
-

-
  effective = NULL;
-
  res = curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective);
-
  if(res)
-
    goto test_cleanup;
-
  printf("effective URL: %s\n", effective);
-

-

-
  /* second transfer: set URL + query in the second CURLU handle */
-
  curl_url_set(curlu_2, CURLUPART_URL, URL, CURLU_DEFAULT_SCHEME);
-
  curl_url_set(curlu_2, CURLUPART_QUERY, "foo", 0);
-
  easy_setopt(curl, CURLOPT_CURLU, curlu_2);
-

-
  res = curl_easy_perform(curl);
-
  if(res)
-
    goto test_cleanup;
-

-
  effective = NULL;
-
  res = curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective);
-
  if(res)
-
    goto test_cleanup;
-
  printf("effective URL: %s\n", effective);
-

-

-
  /* third transfer: append extra query in the second CURLU handle, but do not
-
     set CURLOPT_CURLU again. this is to test that the contents of the handle
-
     is allowed to change between transfers and is used without having to set
-
     CURLOPT_CURLU again */
-
  curl_url_set(curlu_2, CURLUPART_QUERY, "bar", CURLU_APPENDQUERY);
-

-
  res = curl_easy_perform(curl);
-
  if(res)
-
    goto test_cleanup;
-

-
  effective = NULL;
-
  res = curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective);
-
  if(res)
-
    goto test_cleanup;
-
  printf("effective URL: %s\n", effective);
-

-

-
test_cleanup:
-
  curl_easy_cleanup(curl);
-
  curl_url_cleanup(curlu);
-
  curl_url_cleanup(curlu_2);
-
  curl_global_cleanup();
-

-
  return res;
-
}
deleted external/curl/tests/libtest/lib2310.c
@@ -1,68 +0,0 @@
-
/***************************************************************************
-
*                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-

-
#include "test.h"
-
#include "testtrace.h"
-
#include "memdebug.h"
-

-
#ifndef CURL_DISABLE_WEBSOCKETS
-

-
static size_t writecb(char *b, size_t size, size_t nitems, void *p)
-
{
-
  (void)b;
-
  (void)size;
-
  (void)nitems;
-
  (void)p;
-
  return 0;
-
}
-

-
CURLcode test(char *URL)
-
{
-
  CURL *curl;
-
  CURLcode res = CURLE_OK;
-

-
  global_init(CURL_GLOBAL_ALL);
-

-
  curl = curl_easy_init();
-
  if(curl) {
-
    curl_easy_setopt(curl, CURLOPT_URL, URL);
-

-
    /* use the callback style */
-
    curl_easy_setopt(curl, CURLOPT_USERAGENT, "webbie-sox/3");
-
    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
-
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writecb);
-
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, curl);
-
    res = curl_easy_perform(curl);
-
    printf("Returned %d, should be %d.\n", res, CURLE_RECV_ERROR);
-

-
    /* always cleanup */
-
    curl_easy_cleanup(curl);
-
  }
-
  curl_global_cleanup();
-
  return CURLE_OK;
-
}
-

-
#else
-
NO_SUPPORT_BUILT_IN
-
#endif
modified external/curl/tests/libtest/lib2405.c
@@ -28,10 +28,6 @@
 *  empty multi handle (expected zero descriptors),
 *  HTTP1 amd HTTP2 (no multiplexing) two transfers (expected two descriptors),
 *  HTTP2 with multiplexing (expected one descriptors)
-
 *  Improper inputs to the API result in CURLM_BAD_FUNCTION_ARGUMENT.
-
 *  Sending a empty ufds, and size = 0 will return the number of fds needed.
-
 *  Sending a non-empty ufds, but smaller than the fds needed will result in a
-
 *    CURLM_OUT_OF_MEMORY, and a number of fds that is >= to the number needed.
 *
 *  It is also expected that all transfers run by multi-handle should complete
 *  successfully.
@@ -162,40 +158,11 @@ static CURLcode test_run(char *URL, long option, unsigned int *max_fd_count)
  while(!mc) {
    /* get the count of file descriptors from the transfers */
    unsigned int fd_count = 0;
-
    unsigned int fd_count_chk = 0;

    mc = curl_multi_perform(multi, &still_running);
    if(!still_running || mc != CURLM_OK)
      break;

-
    /* verify improper inputs are treated correctly. */
-
    mc = curl_multi_waitfds(multi, NULL, 0, NULL);
-

-
    if(mc != CURLM_BAD_FUNCTION_ARGUMENT) {
-
      fprintf(stderr, "curl_multi_waitfds() return code %d instead of "
-
        "CURLM_BAD_FUNCTION_ARGUMENT.\n", mc);
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

-
    mc = curl_multi_waitfds(multi, NULL, 1, NULL);
-

-
    if(mc != CURLM_BAD_FUNCTION_ARGUMENT) {
-
      fprintf(stderr, "curl_multi_waitfds() return code %d instead of "
-
        "CURLM_BAD_FUNCTION_ARGUMENT.\n", mc);
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

-
    mc = curl_multi_waitfds(multi, NULL, 1, &fd_count);
-

-
    if(mc != CURLM_BAD_FUNCTION_ARGUMENT) {
-
      fprintf(stderr, "curl_multi_waitfds() return code %d instead of "
-
        "CURLM_BAD_FUNCTION_ARGUMENT.\n", mc);
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

    mc = curl_multi_waitfds(multi, ufds, 10, &fd_count);

    if(mc != CURLM_OK) {
@@ -207,42 +174,8 @@ static CURLcode test_run(char *URL, long option, unsigned int *max_fd_count)
    if(!fd_count)
      continue; /* no descriptors yet */

-
    /* verify that sending nothing but the fd_count results in at least the
-
     * same number of fds */
-
    mc = curl_multi_waitfds(multi, NULL, 0, &fd_count_chk);
-

-
    if(mc != CURLM_OK) {
-
      fprintf(stderr, "curl_multi_waitfds() failed, code %d.\n", mc);
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

-
    if(fd_count_chk < fd_count) {
-
      fprintf(stderr, "curl_multi_waitfds() should return at least the number "
-
        "of fds needed\n");
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

    /* checking case when we don't have enough space for waitfds */
-
    mc = curl_multi_waitfds(multi, ufds1, fd_count - 1, &fd_count_chk);
-

-
    if(mc != CURLM_OUT_OF_MEMORY) {
-
      fprintf(stderr, "curl_multi_waitfds() return code %d instead of "
-
        "CURLM_OUT_OF_MEMORY.\n", mc);
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

-
    if(fd_count_chk < fd_count) {
-
      fprintf(stderr, "curl_multi_waitfds() sould return the amount of fds "
-
        "needed if enough isn't passed in.\n");
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

-
    /* sending ufds with zero size, is valid */
-
    mc = curl_multi_waitfds(multi, ufds, 0, NULL);
+
    mc = curl_multi_waitfds(multi, ufds1, fd_count - 1, NULL);

    if(mc != CURLM_OUT_OF_MEMORY) {
      fprintf(stderr, "curl_multi_waitfds() return code %d instead of "
@@ -251,22 +184,6 @@ static CURLcode test_run(char *URL, long option, unsigned int *max_fd_count)
      break;
    }

-
    mc = curl_multi_waitfds(multi, ufds, 0, &fd_count_chk);
-

-
    if(mc != CURLM_OUT_OF_MEMORY) {
-
      fprintf(stderr, "curl_multi_waitfds() return code %d instead of "
-
        "CURLM_OUT_OF_MEMORY.\n", mc);
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

-
    if(fd_count_chk < fd_count) {
-
      fprintf(stderr, "curl_multi_waitfds() sould return the amount of fds "
-
        "needed if enough isn't passed in.\n");
-
      res = TEST_ERR_FAILURE;
-
      break;
-
    }
-

    if(fd_count > max_count)
      max_count = fd_count;

deleted external/curl/tests/libtest/lib3104.c
@@ -1,66 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "test.h"
-

-
#include "memdebug.h"
-

-
CURLcode test(char *URL)
-
{
-
  CURLcode res = CURLE_OK;
-
  CURLSH *share;
-
  CURL *curl;
-

-
  curl_global_init(CURL_GLOBAL_ALL);
-

-
  share = curl_share_init();
-
  curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
-

-
  curl = curl_easy_init();
-
  test_setopt(curl, CURLOPT_SHARE, share);
-

-
  test_setopt(curl, CURLOPT_VERBOSE, 1L);
-
  test_setopt(curl, CURLOPT_HEADER, 1L);
-
  test_setopt(curl, CURLOPT_PROXY, URL);
-
  test_setopt(curl, CURLOPT_URL, "http://example.com/");
-

-
  test_setopt(curl, CURLOPT_COOKIEFILE, "");
-

-
  test_setopt(curl, CURLOPT_COOKIELIST,
-
              "example.com\tFALSE\t/\tFALSE\t0\tname\tvalue");
-

-
  res = curl_easy_perform(curl);
-
  if(res) {
-
    fprintf(stderr, "curl_easy_perform() failed: %s\n",
-
            curl_easy_strerror(res));
-
  }
-

-
test_cleanup:
-

-
  /* always cleanup */
-
  curl_easy_cleanup(curl);
-
  curl_share_cleanup(share);
-
  curl_global_cleanup();
-

-
  return res;
-
}
deleted external/curl/tests/libtest/lib3105.c
@@ -1,67 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "test.h"
-

-
#include "testutil.h"
-
#include "warnless.h"
-
#include "memdebug.h"
-

-
#define TEST_HANG_TIMEOUT 60 * 1000
-

-
CURLcode test(char *URL)
-
{
-
  CURL *curls = NULL;
-
  CURLM *multi = NULL;
-
  CURLcode i = CURLE_OK;
-
  CURLcode res = CURLE_OK;
-
  CURLMcode mc;
-

-
  global_init(CURL_GLOBAL_ALL);
-

-
  multi_init(multi);
-

-
  easy_init(curls);
-

-
  easy_setopt(curls, CURLOPT_URL, URL);
-

-
  multi_add_handle(multi, curls);
-

-
  mc = curl_multi_remove_handle(multi, curls);
-
  mc += curl_multi_remove_handle(multi, curls);
-

-
  if(mc) {
-
    fprintf(stderr, "%d was unexpected\n", (int)mc);
-
    i = CURLE_FAILED_INIT;
-
  }
-

-
test_cleanup:
-
  curl_multi_cleanup(multi);
-
  curl_easy_cleanup(curls);
-
  curl_global_cleanup();
-

-
  if(res)
-
    i = res;
-

-
  return i; /* return the final return code */
-
}
modified external/curl/tests/libtest/lib517.c
@@ -98,15 +98,6 @@ static const struct dcheck dates[] = {
  {"Thu Apr 18 22:50:12 2007 GMT", 1176936612 },
  {"Thu Apr 18 2007 22:50:12 GMT", 1176936612 },
  {"Thu Apr 18 2007 GMT 22:50:12", 1176936612 },
-

-
  {"\"Thu Apr 18 22:50:12 2007 GMT\"", 1176936612 },
-
  {"-\"22:50:12 Thu Apr 18 2007 GMT\"", 1176936612 },
-
  {"*\"Thu 22:50:12 Apr 18 2007 GMT\"", 1176936612 },
-
  {";\"Thu Apr 22:50:12 18 2007 GMT\"", 1176936612 },
-
  {".\"Thu Apr 18 22:50:12 2007 GMT\"", 1176936612 },
-
  {"\"Thu Apr 18 2007 22:50:12 GMT\"", 1176936612 },
-
  {"\"Thu Apr 18 2007 GMT 22:50:12\"", 1176936612 },
-

  {"Sat, 15-Apr-17 21:01:22 GMT", 1492290082 },
  {"15-Sat, Apr-17 21:01:22 GMT", 1492290082 },
  {"15-Sat, Apr 21:01:22 GMT 17", 1492290082 },
modified external/curl/tests/libtest/lib530.c
@@ -218,14 +218,7 @@ static void updateFdSet(struct Sockets *sockets, fd_set* fdset,
{
  int i;
  for(i = 0; i < sockets->count; ++i) {
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
    FD_SET(sockets->sockets[i], fdset);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
    if(*maxFd < sockets->sockets[i] + 1) {
      *maxFd = sockets->sockets[i] + 1;
    }
@@ -268,9 +261,8 @@ static CURLcode testone(char *URL, int timercb, int socketcb)
  CURLcode res = CURLE_OK;
  CURL *curl = NULL;  CURLM *m = NULL;
  struct ReadWriteSockets sockets = {{NULL, 0, 0}, {NULL, 0, 0}};
+
  struct timeval timeout = {-1, 0};
  int success = 0;
-
  struct timeval timeout = {0};
-
  timeout.tv_sec = (time_t)-1;

  /* set the limits */
  max_timer_calls = timercb;
@@ -311,15 +303,14 @@ static CURLcode testone(char *URL, int timercb, int socketcb)
  while(!checkForCompletion(m, &success)) {
    fd_set readSet, writeSet;
    curl_socket_t maxFd = 0;
-
    struct timeval tv = {0};
-
    tv.tv_sec = 10;
+
    struct timeval tv = {10, 0};

    FD_ZERO(&readSet);
    FD_ZERO(&writeSet);
    updateFdSet(&sockets.read, &readSet, &maxFd);
    updateFdSet(&sockets.write, &writeSet, &maxFd);

-
    if(timeout.tv_sec != (time_t)-1) {
+
    if(timeout.tv_sec != -1) {
      int usTimeout = getMicroSecondTimeout(&timeout);
      tv.tv_sec = usTimeout / 1000000;
      tv.tv_usec = usTimeout % 1000000;
@@ -342,7 +333,7 @@ static CURLcode testone(char *URL, int timercb, int socketcb)
      goto test_cleanup;
    }

-
    if(timeout.tv_sec != (time_t)-1 && getMicroSecondTimeout(&timeout) == 0) {
+
    if(timeout.tv_sec != -1 && getMicroSecondTimeout(&timeout) == 0) {
      /* Curl's timer has elapsed. */
      if(socket_action(m, CURL_SOCKET_TIMEOUT, 0, "timeout")) {
        res = TEST_ERR_BAD_TIMEOUT;
modified external/curl/tests/libtest/lib556.c
@@ -28,22 +28,19 @@

/* For Windows, mainly (may be moved in a config file?) */
#ifndef STDIN_FILENO
-
#define STDIN_FILENO 0
+
  #define STDIN_FILENO 0
#endif
#ifndef STDOUT_FILENO
-
#define STDOUT_FILENO 1
+
  #define STDOUT_FILENO 1
#endif
#ifndef STDERR_FILENO
-
#define STDERR_FILENO 2
+
  #define STDERR_FILENO 2
#endif

CURLcode test(char *URL)
{
  CURLcode res;
  CURL *curl;
-
#ifdef LIB696
-
  int transfers = 0;
-
#endif

  if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
    fprintf(stderr, "curl_global_init() failed\n");
@@ -61,10 +58,6 @@ CURLcode test(char *URL)
  test_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
  test_setopt(curl, CURLOPT_VERBOSE, 1L);

-
#ifdef LIB696
-
again:
-
#endif
-

  res = curl_easy_perform(curl);

  if(!res) {
@@ -94,12 +87,8 @@ again:

      if(nread) {
        /* send received stuff to stdout */
-
        if((size_t)write(STDOUT_FILENO, buf, nread) != nread) {
-
          fprintf(stderr, "write() failed: errno %d (%s)\n",
-
                  errno, strerror(errno));
-
          res = TEST_ERR_FAILURE;
+
        if(!write(STDOUT_FILENO, buf, nread))
          break;
-
        }
      }

    } while((res == CURLE_OK && nread) || (res == CURLE_AGAIN));
@@ -108,13 +97,6 @@ again:
      res = TEST_ERR_FAILURE;
  }

-
#ifdef LIB696
-
  ++transfers;
-
  /* perform the transfer a second time */
-
  if(!res && transfers == 1)
-
    goto again;
-
#endif
-

test_cleanup:

  curl_easy_cleanup(curl);
modified external/curl/tests/libtest/lib557.c
@@ -37,7 +37,7 @@

#include "memdebug.h"

-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat"
#pragma GCC diagnostic ignored "-Wformat-extra-args"
@@ -1207,46 +1207,6 @@ static int test_pos_arguments(void)
  return errors;
}

-
static int test_width_precision(void)
-
{
-
  /* 325 is max precision (and width) for a double */
-
  char larger[1024];
-
#define SPACE60 "                                                            "
-
#define SPACE300 SPACE60 SPACE60 SPACE60 SPACE60 SPACE60
-
#define OK325 SPACE300 "                        0"
-

-
  int rc;
-
  int errors = 0;
-
  rc = curl_msnprintf(larger, sizeof(larger), "%325.325f", 0.1);
-
  if(rc != 325)
-
    errors++;
-
  errors += string_check(larger, OK325);
-

-
  rc = curl_msnprintf(larger, sizeof(larger), "%326.326f", 0.1);
-
  if(rc != 325)
-
    errors++;
-
  errors += string_check(larger, OK325);
-

-
  rc = curl_msnprintf(larger, sizeof(larger), "%1000.1000f", 0.1);
-
  if(rc != 325)
-
    errors++;
-
  errors += string_check(larger, OK325);
-

-
  rc = curl_msnprintf(larger, sizeof(larger), "%324.324f", 0.1);
-
  if(rc != 324)
-
    errors++;
-
  rc = curl_msnprintf(larger, sizeof(larger), "%324.0f", 0.1);
-
  if(rc != 324)
-
    errors++;
-
  rc = curl_msnprintf(larger, sizeof(larger), "%0.324f", 0.1);
-
  if(rc != 325)
-
    errors++;
-

-
  return errors;
-
}
-

-

-

static int test_weird_arguments(void)
{
  int errors = 0;
@@ -1360,8 +1320,6 @@ static int test_weird_arguments(void)

  errors += string_check(buf, "");

-
  errors += test_width_precision();
-

  if(errors)
    printf("Some curl_mprintf() weird arguments tests failed!\n");

@@ -1601,6 +1559,6 @@ CURLcode test(char *URL)
    return CURLE_OK;
}

-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif
modified external/curl/tests/libtest/lib582.c
@@ -186,14 +186,7 @@ static void updateFdSet(struct Sockets *sockets, fd_set* fdset,
{
  int i;
  for(i = 0; i < sockets->count; ++i) {
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
    FD_SET(sockets->sockets[i], fdset);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
    if(*maxFd < sockets->sockets[i] + 1) {
      *maxFd = sockets->sockets[i] + 1;
    }
@@ -234,9 +227,8 @@ CURLcode test(char *URL)
  struct_stat file_info;
  CURLM *m = NULL;
  struct ReadWriteSockets sockets = {{NULL, 0, 0}, {NULL, 0, 0}};
+
  struct timeval timeout = {-1, 0};
  int success = 0;
-
  struct timeval timeout = {0};
-
  timeout.tv_sec = (time_t)-1;

  assert(test_argc >= 5);

@@ -307,15 +299,14 @@ CURLcode test(char *URL)
  while(!checkForCompletion(m, &success)) {
    fd_set readSet, writeSet;
    curl_socket_t maxFd = 0;
-
    struct timeval tv = {0};
-
    tv.tv_sec = 10;
+
    struct timeval tv = {10, 0};

    FD_ZERO(&readSet);
    FD_ZERO(&writeSet);
    updateFdSet(&sockets.read, &readSet, &maxFd);
    updateFdSet(&sockets.write, &writeSet, &maxFd);

-
    if(timeout.tv_sec != (time_t)-1) {
+
    if(timeout.tv_sec != -1) {
      int usTimeout = getMicroSecondTimeout(&timeout);
      tv.tv_sec = usTimeout / 1000000;
      tv.tv_usec = usTimeout % 1000000;
@@ -331,7 +322,7 @@ CURLcode test(char *URL)
    checkFdSet(m, &sockets.read, &readSet, CURL_CSELECT_IN, "read");
    checkFdSet(m, &sockets.write, &writeSet, CURL_CSELECT_OUT, "write");

-
    if(timeout.tv_sec != (time_t)-1 && getMicroSecondTimeout(&timeout) == 0) {
+
    if(timeout.tv_sec != -1 && getMicroSecondTimeout(&timeout) == 0) {
      /* Curl's timer has elapsed. */
      notifyCurl(m, CURL_SOCKET_TIMEOUT, 0, "timeout");
    }
modified external/curl/tests/libtest/lib590.c
@@ -42,7 +42,6 @@ CURLcode test(char *URL)
{
  CURLcode res;
  CURL *curl;
-
  long usedauth = 0;

  if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
    fprintf(stderr, "curl_global_init() failed\n");
@@ -65,11 +64,6 @@ CURLcode test(char *URL)

  res = curl_easy_perform(curl);

-
  res = curl_easy_getinfo(curl, CURLINFO_PROXYAUTH_USED, &usedauth);
-
  if(CURLAUTH_NTLM != usedauth) {
-
    printf("CURLINFO_PROXYAUTH_USED did not say NTLM\n");
-
  }
-

test_cleanup:

  curl_easy_cleanup(curl);
deleted external/curl/tests/libtest/lib694.c
@@ -1,73 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "test.h"
-

-
#include "memdebug.h"
-

-
CURLcode test(char *URL)
-
{
-
  CURLcode res;
-
  CURL *curl;
-
  long usedauth = 0;
-
  int count = 0;
-

-
  if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
-
    fprintf(stderr, "curl_global_init() failed\n");
-
    return TEST_ERR_MAJOR_BAD;
-
  }
-

-
  curl = curl_easy_init();
-
  if(!curl) {
-
    fprintf(stderr, "curl_easy_init() failed\n");
-
    curl_global_cleanup();
-
    return TEST_ERR_MAJOR_BAD;
-
  }
-

-
  test_setopt(curl, CURLOPT_URL, URL);
-
  test_setopt(curl, CURLOPT_HEADER, 1L);
-
  test_setopt(curl, CURLOPT_VERBOSE, 1L);
-
  test_setopt(curl, CURLOPT_HTTPAUTH,
-
              (long) (CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_NTLM));
-
  test_setopt(curl, CURLOPT_USERPWD, "me:password");
-

-
  do {
-

-
    res = curl_easy_perform(curl);
-

-
    res = curl_easy_getinfo(curl, CURLINFO_HTTPAUTH_USED, &usedauth);
-
    if(CURLAUTH_NTLM != usedauth) {
-
      printf("CURLINFO_HTTPAUTH_USED did not say NTLM\n");
-
    }
-

-
    /* set a new URL for the second, so that we don't restart NTLM */
-
    test_setopt(curl, CURLOPT_URL, libtest_arg2);
-
  } while(!res && ++count < 2);
-

-
test_cleanup:
-

-
  curl_easy_cleanup(curl);
-
  curl_global_cleanup();
-

-
  return res;
-
}
deleted external/curl/tests/libtest/lib695.c
@@ -1,115 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "test.h"
-

-
#include "memdebug.h"
-

-

-
/* write callback that does nothing */
-
static size_t write_it(char *ptr, size_t size, size_t nmemb, void *userdata)
-
{
-
  (void) ptr;
-
  (void) userdata;
-
  return size * nmemb;
-
}
-

-
CURLcode test(char *URL)
-
{
-
  CURL *curl = NULL;
-
  curl_mime *mime1 = NULL;
-
  curl_mime *mime2 = NULL;
-
  curl_mimepart *part;
-
  CURLcode res = TEST_ERR_FAILURE;
-

-
  /*
-
   * Check proper rewind when reusing a mime structure.
-
   */
-

-
  if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
-
    fprintf(stderr, "curl_global_init() failed\n");
-
    return TEST_ERR_MAJOR_BAD;
-
  }
-

-
  curl = curl_easy_init();
-

-
  /* First set the URL that is about to receive our POST. */
-
  test_setopt(curl, CURLOPT_URL, URL);
-

-
  /* get verbose debug output please */
-
  test_setopt(curl, CURLOPT_VERBOSE, 1L);
-

-
  /* Do not write anything. */
-
  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_it);
-

-
  /* Build the first mime structure. */
-
  mime1 = curl_mime_init(curl);
-
  part = curl_mime_addpart(mime1);
-
  curl_mime_data(part, "<title>hello</title>", CURL_ZERO_TERMINATED);
-
  curl_mime_type(part, "text/html");
-
  curl_mime_name(part, "data");
-

-
  /* Use first mime structure as top level MIME POST. */
-
  curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime1);
-

-
  /* Perform the request, res gets the return code */
-
  res = curl_easy_perform(curl);
-

-
  /* Check for errors */
-
  if(res != CURLE_OK)
-
    fprintf(stderr, "curl_easy_perform() 1 failed: %s\n",
-
            curl_easy_strerror(res));
-
  else {
-
    /* phase two, create a mime struct using the mime1 handle */
-
    mime2 = curl_mime_init(curl);
-
    part = curl_mime_addpart(mime2);
-

-
    /* use the new mime setup */
-
    curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime2);
-

-
    /* Reuse previous mime structure as a child. */
-
    res = curl_mime_subparts(part, mime1);
-

-
    if(res != CURLE_OK)
-
      fprintf(stderr, "curl_mime_subparts() failed: %sn",
-
              curl_easy_strerror(res));
-
    else {
-
      mime1 = NULL;
-

-
      /* Perform the request, res gets the return code */
-
      res = curl_easy_perform(curl);
-

-
      /* Check for errors */
-
      if(res != CURLE_OK)
-
        fprintf(stderr, "curl_easy_perform() 2 failed: %s\n",
-
                curl_easy_strerror(res));
-
    }
-
  }
-

-
test_cleanup:
-
  curl_easy_cleanup(curl);
-
  curl_mime_free(mime1);
-
  curl_mime_free(mime2);
-
  curl_global_cleanup();
-
  return res;
-
}
modified external/curl/tests/libtest/stub_gssapi.c
@@ -30,6 +30,8 @@

#include "stub_gssapi.h"

+
/* !checksrc! disable SNPRINTF all */
+

#define MAX_CREDS_LENGTH 250
#define APPROX_TOKEN_LEN 250

modified external/curl/tests/libtest/test.h
@@ -44,15 +44,8 @@

#include "curl_printf.h"

-
/* GCC <4.6 does not support '#pragma GCC diagnostic push' and
-
   does not support 'pragma GCC diagnostic' inside functions. */
-
#if (defined(__GNUC__) && \
-
  ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6))))
-
#define CURL_GNUC_DIAG
-
#endif
-

#ifdef _WIN32
-
#define sleep(sec) Sleep((sec)*1000)
+
#define sleep(sec) Sleep ((sec)*1000)
#endif

#define test_setopt(A,B,C)                                      \
modified external/curl/tests/runner.pm
@@ -356,7 +356,8 @@ sub prepro {
            # The processor does CRLF replacements in the <data*> sections if
            # necessary since those parts might be read by separate servers.
            if($s =~ /^ *<data(.*)\>/) {
-
                if($1 =~ /crlf="yes"/) {
+
                if($1 =~ /crlf="yes"/ ||
+
                   ($feature{"hyper"} && ($keywords{"HTTP"} || $keywords{"HTTPS"}))) {
                    $data_crlf = 1;
                }
            }
modified external/curl/tests/runtests.pl
@@ -57,7 +57,8 @@
# given, this won't be a problem.

use strict;
-
use warnings;
+
# Promote all warnings to fatal
+
use warnings FATAL => 'all';
use 5.006;
use POSIX qw(strftime);

@@ -590,8 +591,11 @@ sub checksystemfeatures {
                $feature{"c-ares"} = 1;
                $resolver="c-ares";
            }
+
            if ($libcurl =~ /Hyper/i) {
+
                $feature{"hyper"} = 1;
+
            }
            if ($libcurl =~ /nghttp2/i) {
-
                # nghttp2 supports h2c
+
                # nghttp2 supports h2c, hyper does not
                $feature{"h2c"} = 1;
            }
            if ($libcurl =~ /AppleIDN/) {
@@ -697,8 +701,6 @@ sub checksystemfeatures {
            $feature{"Unicode"} = $feat =~ /Unicode/i;
            # Thread-safe init
            $feature{"threadsafe"} = $feat =~ /threadsafe/i;
-
            $feature{"HTTPSRR"} = $feat =~ /HTTPSRR/;
-
            $feature{"asyn-rr"} = $feat =~ /asyn-rr/;
        }
        #
        # Test harness currently uses a non-stunnel server in order to
@@ -821,7 +823,6 @@ sub checksystemfeatures {
    $feature{"headers-api"} = 1;
    $feature{"xattr"} = 1;
    $feature{"large-time"} = 1;
-
    $feature{"large-size"} = 1;
    $feature{"sha512-256"} = 1;
    $feature{"local-http"} = servers::localhttp();
    $feature{"codeset-utf8"} = lc(langinfo(CODESET())) eq "utf-8";
@@ -1284,7 +1285,9 @@ sub singletest_check {
            chomp($validstdout[-1]);
        }

-
        if($hash{'crlf'}) {
+
        if($hash{'crlf'} ||
+
           ($feature{"hyper"} && ($keywords{"HTTP"}
+
                           || $keywords{"HTTPS"}))) {
            subnewlines(0, \$_) for @validstdout;
        }

@@ -1322,6 +1325,12 @@ sub singletest_check {

        # get the mode attribute
        my $filemode=$hash{'mode'};
+
        if($filemode && ($filemode eq "text") && $feature{"hyper"}) {
+
            # text mode check in hyper-mode. Sometimes necessary if the stderr
+
            # data *looks* like HTTP and thus has gotten CRLF newlines
+
            # mistakenly
+
            normalize_text(\@validstderr);
+
        }
        if($filemode && ($filemode eq "text")) {
            normalize_text(\@validstderr);
            normalize_text(\@actual);
@@ -1424,7 +1433,9 @@ sub singletest_check {
                    # of the datacheck
                    chomp($replycheckpart[-1]);
                }
-
                if($replycheckpartattr{'crlf'}) {
+
                if($replycheckpartattr{'crlf'} ||
+
                   ($feature{"hyper"} && ($keywords{"HTTP"}
+
                                   || $keywords{"HTTPS"}))) {
                    subnewlines(0, \$_) for @replycheckpart;
                }
                push(@reply, @replycheckpart);
@@ -1445,7 +1456,9 @@ sub singletest_check {
        if($filemode && ($filemode eq "text")) {
            normalize_text(\@reply);
        }
-
        if($replyattr{'crlf'}) {
+
        if($replyattr{'crlf'} ||
+
           ($feature{"hyper"} && ($keywords{"HTTP"}
+
                           || $keywords{"HTTPS"}))) {
            subnewlines(0, \$_) for @reply;
        }
    }
@@ -1538,7 +1551,8 @@ sub singletest_check {
            }
        }

-
        if($hash{'crlf'}) {
+
        if($hash{'crlf'} ||
+
           ($feature{"hyper"} && ($keywords{"HTTP"} || $keywords{"HTTPS"}))) {
            subnewlines(0, \$_) for @proxyprot;
        }

@@ -1596,7 +1610,9 @@ sub singletest_check {
                normalize_text(\@outfile);
                normalize_text(\@generated);
            }
-
            if($hash{'crlf'}) {
+
            if($hash{'crlf'} ||
+
               ($feature{"hyper"} && ($keywords{"HTTP"}
+
                               || $keywords{"HTTPS"}))) {
                subnewlines(0, \$_) for @outfile;
            }

@@ -1672,7 +1688,7 @@ sub singletest_check {
            my %cmdhash = getpartattr("client", "command");
            my $cmdtype = $cmdhash{'type'} || "default";
            logmsg "\n** ALERT! memory tracking with no output file?\n"
-
                if($cmdtype ne "perl");
+
                if(!$cmdtype eq "perl");
            $ok .= "-"; # problem with memory checking
        }
        else {
modified external/curl/tests/server/.checksrc
@@ -1 +1 @@
-
banfunc strncpy
+
enable STRNCPY
modified external/curl/tests/server/CMakeLists.txt
@@ -23,7 +23,7 @@
###########################################################################

# Get 'noinst_PROGRAMS', '<target>_SOURCES' variables
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

set_source_files_properties("../../lib/memdebug.c" "../../lib/curl_multibyte.c" PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
@@ -35,7 +35,7 @@ foreach(_target IN LISTS noinst_PROGRAMS)
  target_include_directories(${_target_name} PRIVATE
    "${PROJECT_BINARY_DIR}/lib"  # for "curl_config.h"
    "${PROJECT_SOURCE_DIR}/lib"  # for "curl_setup.h"
-
    "${PROJECT_SOURCE_DIR}/src"  # for "tool_binmod.h", "tool_xattr.h"
+
    "${PROJECT_SOURCE_DIR}/src"  # for "tool_xattr.h" in disabled_SOURCES
  )
  target_link_libraries(${_target_name} ${CURL_LIBS})
  # Test servers simply are standalone programs that do not use libcurl
modified external/curl/tests/server/Makefile.am
@@ -34,7 +34,9 @@ AUTOMAKE_OPTIONS = foreign nostdinc

AM_CPPFLAGS = -I$(top_srcdir)/include        \
              -I$(top_builddir)/lib          \
-
              -I$(top_srcdir)/lib            \
+
              -I$(top_srcdir)/lib
+

+
disabled_CPPFLAGS = $(AM_CPPFLAGS) \
              -I$(top_srcdir)/src

# Prevent LIBS from being used for all link targets
modified external/curl/tests/server/Makefile.in
@@ -151,7 +151,7 @@ CONFIG_HEADER = $(top_builddir)/lib/curl_config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
PROGRAMS = $(noinst_PROGRAMS)
-
am_disabled_OBJECTS = disabled.$(OBJEXT)
+
am_disabled_OBJECTS = disabled-disabled.$(OBJEXT)
disabled_OBJECTS = $(am_disabled_OBJECTS)
disabled_LDADD = $(LDADD)
AM_V_lt = $(am__v_lt_@AM_V@)
@@ -167,7 +167,6 @@ am__objects_1 = ../../lib/getpart-mprintf.$(OBJEXT) \
	../../lib/getpart-dynbuf.$(OBJEXT) \
	../../lib/getpart-strdup.$(OBJEXT) \
	../../lib/getpart-strcase.$(OBJEXT) \
-
	../../lib/getpart-curl_get_line.$(OBJEXT) \
	../../lib/getpart-curl_multibyte.$(OBJEXT)
am__objects_2 =
am__objects_3 = getpart-getpart.$(OBJEXT) \
@@ -188,7 +187,6 @@ am__objects_4 = ../../lib/mqttd-mprintf.$(OBJEXT) \
	../../lib/mqttd-dynbuf.$(OBJEXT) \
	../../lib/mqttd-strdup.$(OBJEXT) \
	../../lib/mqttd-strcase.$(OBJEXT) \
-
	../../lib/mqttd-curl_get_line.$(OBJEXT) \
	../../lib/mqttd-curl_multibyte.$(OBJEXT)
am__objects_5 = mqttd-getpart.$(OBJEXT) \
	../../lib/mqttd-base64.$(OBJEXT) \
@@ -210,7 +208,6 @@ am__objects_7 = ../../lib/resolve-mprintf.$(OBJEXT) \
	../../lib/resolve-dynbuf.$(OBJEXT) \
	../../lib/resolve-strdup.$(OBJEXT) \
	../../lib/resolve-strcase.$(OBJEXT) \
-
	../../lib/resolve-curl_get_line.$(OBJEXT) \
	../../lib/resolve-curl_multibyte.$(OBJEXT)
am__objects_8 = resolve-getpart.$(OBJEXT) \
	../../lib/resolve-base64.$(OBJEXT) \
@@ -231,7 +228,6 @@ am__objects_10 = ../../lib/rtspd-mprintf.$(OBJEXT) \
	../../lib/rtspd-dynbuf.$(OBJEXT) \
	../../lib/rtspd-strdup.$(OBJEXT) \
	../../lib/rtspd-strcase.$(OBJEXT) \
-
	../../lib/rtspd-curl_get_line.$(OBJEXT) \
	../../lib/rtspd-curl_multibyte.$(OBJEXT)
am__objects_11 = rtspd-getpart.$(OBJEXT) \
	../../lib/rtspd-base64.$(OBJEXT) \
@@ -252,7 +248,6 @@ am__objects_13 = ../../lib/sockfilt-mprintf.$(OBJEXT) \
	../../lib/sockfilt-dynbuf.$(OBJEXT) \
	../../lib/sockfilt-strdup.$(OBJEXT) \
	../../lib/sockfilt-strcase.$(OBJEXT) \
-
	../../lib/sockfilt-curl_get_line.$(OBJEXT) \
	../../lib/sockfilt-curl_multibyte.$(OBJEXT)
am__objects_14 = sockfilt-getpart.$(OBJEXT) \
	../../lib/sockfilt-base64.$(OBJEXT) \
@@ -275,7 +270,6 @@ am__objects_16 = ../../lib/socksd-mprintf.$(OBJEXT) \
	../../lib/socksd-dynbuf.$(OBJEXT) \
	../../lib/socksd-strdup.$(OBJEXT) \
	../../lib/socksd-strcase.$(OBJEXT) \
-
	../../lib/socksd-curl_get_line.$(OBJEXT) \
	../../lib/socksd-curl_multibyte.$(OBJEXT)
am__objects_17 = socksd-getpart.$(OBJEXT) \
	../../lib/socksd-base64.$(OBJEXT) \
@@ -296,7 +290,6 @@ am__objects_19 = ../../lib/sws-mprintf.$(OBJEXT) \
	../../lib/sws-timediff.$(OBJEXT) \
	../../lib/sws-dynbuf.$(OBJEXT) ../../lib/sws-strdup.$(OBJEXT) \
	../../lib/sws-strcase.$(OBJEXT) \
-
	../../lib/sws-curl_get_line.$(OBJEXT) \
	../../lib/sws-curl_multibyte.$(OBJEXT)
am__objects_20 = sws-getpart.$(OBJEXT) ../../lib/sws-base64.$(OBJEXT) \
	../../lib/sws-memdebug.$(OBJEXT)
@@ -317,7 +310,6 @@ am__objects_22 = ../../lib/tftpd-mprintf.$(OBJEXT) \
	../../lib/tftpd-dynbuf.$(OBJEXT) \
	../../lib/tftpd-strdup.$(OBJEXT) \
	../../lib/tftpd-strcase.$(OBJEXT) \
-
	../../lib/tftpd-curl_get_line.$(OBJEXT) \
	../../lib/tftpd-curl_multibyte.$(OBJEXT)
am__objects_23 = tftpd-getpart.$(OBJEXT) \
	../../lib/tftpd-base64.$(OBJEXT) \
@@ -346,7 +338,6 @@ DEFAULT_INCLUDES =
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
-
	../../lib/$(DEPDIR)/getpart-curl_get_line.Po \
	../../lib/$(DEPDIR)/getpart-curl_multibyte.Po \
	../../lib/$(DEPDIR)/getpart-dynbuf.Po \
	../../lib/$(DEPDIR)/getpart-memdebug.Po \
@@ -358,7 +349,6 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
	../../lib/$(DEPDIR)/getpart-timediff.Po \
	../../lib/$(DEPDIR)/getpart-warnless.Po \
	../../lib/$(DEPDIR)/mqttd-base64.Po \
-
	../../lib/$(DEPDIR)/mqttd-curl_get_line.Po \
	../../lib/$(DEPDIR)/mqttd-curl_multibyte.Po \
	../../lib/$(DEPDIR)/mqttd-dynbuf.Po \
	../../lib/$(DEPDIR)/mqttd-inet_pton.Po \
@@ -371,7 +361,6 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
	../../lib/$(DEPDIR)/mqttd-timediff.Po \
	../../lib/$(DEPDIR)/mqttd-warnless.Po \
	../../lib/$(DEPDIR)/resolve-base64.Po \
-
	../../lib/$(DEPDIR)/resolve-curl_get_line.Po \
	../../lib/$(DEPDIR)/resolve-curl_multibyte.Po \
	../../lib/$(DEPDIR)/resolve-dynbuf.Po \
	../../lib/$(DEPDIR)/resolve-memdebug.Po \
@@ -383,7 +372,6 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
	../../lib/$(DEPDIR)/resolve-timediff.Po \
	../../lib/$(DEPDIR)/resolve-warnless.Po \
	../../lib/$(DEPDIR)/rtspd-base64.Po \
-
	../../lib/$(DEPDIR)/rtspd-curl_get_line.Po \
	../../lib/$(DEPDIR)/rtspd-curl_multibyte.Po \
	../../lib/$(DEPDIR)/rtspd-dynbuf.Po \
	../../lib/$(DEPDIR)/rtspd-memdebug.Po \
@@ -395,7 +383,6 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
	../../lib/$(DEPDIR)/rtspd-timediff.Po \
	../../lib/$(DEPDIR)/rtspd-warnless.Po \
	../../lib/$(DEPDIR)/sockfilt-base64.Po \
-
	../../lib/$(DEPDIR)/sockfilt-curl_get_line.Po \
	../../lib/$(DEPDIR)/sockfilt-curl_multibyte.Po \
	../../lib/$(DEPDIR)/sockfilt-dynbuf.Po \
	../../lib/$(DEPDIR)/sockfilt-inet_pton.Po \
@@ -408,7 +395,6 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
	../../lib/$(DEPDIR)/sockfilt-timediff.Po \
	../../lib/$(DEPDIR)/sockfilt-warnless.Po \
	../../lib/$(DEPDIR)/socksd-base64.Po \
-
	../../lib/$(DEPDIR)/socksd-curl_get_line.Po \
	../../lib/$(DEPDIR)/socksd-curl_multibyte.Po \
	../../lib/$(DEPDIR)/socksd-dynbuf.Po \
	../../lib/$(DEPDIR)/socksd-inet_pton.Po \
@@ -421,7 +407,6 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
	../../lib/$(DEPDIR)/socksd-timediff.Po \
	../../lib/$(DEPDIR)/socksd-warnless.Po \
	../../lib/$(DEPDIR)/sws-base64.Po \
-
	../../lib/$(DEPDIR)/sws-curl_get_line.Po \
	../../lib/$(DEPDIR)/sws-curl_multibyte.Po \
	../../lib/$(DEPDIR)/sws-dynbuf.Po \
	../../lib/$(DEPDIR)/sws-inet_pton.Po \
@@ -434,7 +419,6 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
	../../lib/$(DEPDIR)/sws-timediff.Po \
	../../lib/$(DEPDIR)/sws-warnless.Po \
	../../lib/$(DEPDIR)/tftpd-base64.Po \
-
	../../lib/$(DEPDIR)/tftpd-curl_get_line.Po \
	../../lib/$(DEPDIR)/tftpd-curl_multibyte.Po \
	../../lib/$(DEPDIR)/tftpd-dynbuf.Po \
	../../lib/$(DEPDIR)/tftpd-memdebug.Po \
@@ -444,7 +428,8 @@ am__depfiles_remade = ../../lib/$(DEPDIR)/getpart-base64.Po \
	../../lib/$(DEPDIR)/tftpd-strdup.Po \
	../../lib/$(DEPDIR)/tftpd-strtoofft.Po \
	../../lib/$(DEPDIR)/tftpd-timediff.Po \
-
	../../lib/$(DEPDIR)/tftpd-warnless.Po ./$(DEPDIR)/disabled.Po \
+
	../../lib/$(DEPDIR)/tftpd-warnless.Po \
+
	./$(DEPDIR)/disabled-disabled.Po \
	./$(DEPDIR)/getpart-getpart.Po ./$(DEPDIR)/getpart-testpart.Po \
	./$(DEPDIR)/mqttd-getpart.Po ./$(DEPDIR)/mqttd-mqttd.Po \
	./$(DEPDIR)/mqttd-util.Po ./$(DEPDIR)/resolve-getpart.Po \
@@ -510,6 +495,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -534,10 +520,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -556,14 +563,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -602,6 +617,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -609,10 +627,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -707,8 +761,11 @@ AUTOMAKE_OPTIONS = foreign nostdinc
# $(top_builddir)/lib is for libcurl's generated lib/curl_config.h file
# $(top_srcdir)/lib for libcurl's lib/curl_setup.h and other "borrowed" files
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/lib \
-
	-I$(top_srcdir)/lib -I$(top_srcdir)/src $(am__append_1) \
+
	-I$(top_srcdir)/lib $(am__append_1) \
	-DCURL_NO_GETADDRINFO_OVERRIDE
+
disabled_CPPFLAGS = $(AM_CPPFLAGS) \
+
              -I$(top_srcdir)/src
+

CURLX_SRCS = \
 ../../lib/mprintf.c \
 ../../lib/nonblock.c \
@@ -718,7 +775,6 @@ CURLX_SRCS = \
 ../../lib/dynbuf.c \
 ../../lib/strdup.c \
 ../../lib/strcase.c \
-
 ../../lib/curl_get_line.c \
 ../../lib/curl_multibyte.c

CURLX_HDRS = \
@@ -730,7 +786,6 @@ CURLX_HDRS = \
 ../../lib/curl_ctype.h \
 ../../lib/dynbuf.h \
 ../../lib/strdup.h \
-
 ../../lib/curl_get_line.h \
 ../../lib/curl_multibyte.h

USEFUL = \
@@ -872,8 +927,6 @@ disabled$(EXEEXT): $(disabled_OBJECTS) $(disabled_DEPENDENCIES) $(EXTRA_disabled
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/getpart-strcase.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
-
../../lib/getpart-curl_get_line.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/getpart-curl_multibyte.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/getpart-base64.$(OBJEXT): ../../lib/$(am__dirstamp) \
@@ -900,8 +953,6 @@ getpart$(EXEEXT): $(getpart_OBJECTS) $(getpart_DEPENDENCIES) $(EXTRA_getpart_DEP
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/mqttd-strcase.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
-
../../lib/mqttd-curl_get_line.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/mqttd-curl_multibyte.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/mqttd-base64.$(OBJEXT): ../../lib/$(am__dirstamp) \
@@ -930,8 +981,6 @@ mqttd$(EXEEXT): $(mqttd_OBJECTS) $(mqttd_DEPENDENCIES) $(EXTRA_mqttd_DEPENDENCIE
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/resolve-strcase.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
-
../../lib/resolve-curl_get_line.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/resolve-curl_multibyte.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/resolve-base64.$(OBJEXT): ../../lib/$(am__dirstamp) \
@@ -958,8 +1007,6 @@ resolve$(EXEEXT): $(resolve_OBJECTS) $(resolve_DEPENDENCIES) $(EXTRA_resolve_DEP
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/rtspd-strcase.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
-
../../lib/rtspd-curl_get_line.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/rtspd-curl_multibyte.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/rtspd-base64.$(OBJEXT): ../../lib/$(am__dirstamp) \
@@ -986,8 +1033,6 @@ rtspd$(EXEEXT): $(rtspd_OBJECTS) $(rtspd_DEPENDENCIES) $(EXTRA_rtspd_DEPENDENCIE
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/sockfilt-strcase.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
-
../../lib/sockfilt-curl_get_line.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/sockfilt-curl_multibyte.$(OBJEXT):  \
	../../lib/$(am__dirstamp) ../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/sockfilt-base64.$(OBJEXT): ../../lib/$(am__dirstamp) \
@@ -1016,8 +1061,6 @@ sockfilt$(EXEEXT): $(sockfilt_OBJECTS) $(sockfilt_DEPENDENCIES) $(EXTRA_sockfilt
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/socksd-strcase.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
-
../../lib/socksd-curl_get_line.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/socksd-curl_multibyte.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/socksd-base64.$(OBJEXT): ../../lib/$(am__dirstamp) \
@@ -1046,8 +1089,6 @@ socksd$(EXEEXT): $(socksd_OBJECTS) $(socksd_DEPENDENCIES) $(EXTRA_socksd_DEPENDE
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/sws-strcase.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
-
../../lib/sws-curl_get_line.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/sws-curl_multibyte.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/sws-base64.$(OBJEXT): ../../lib/$(am__dirstamp) \
@@ -1076,8 +1117,6 @@ sws$(EXEEXT): $(sws_OBJECTS) $(sws_DEPENDENCIES) $(EXTRA_sws_DEPENDENCIES)
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/tftpd-strcase.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
-
../../lib/tftpd-curl_get_line.$(OBJEXT): ../../lib/$(am__dirstamp) \
-
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/tftpd-curl_multibyte.$(OBJEXT): ../../lib/$(am__dirstamp) \
	../../lib/$(DEPDIR)/$(am__dirstamp)
../../lib/tftpd-base64.$(OBJEXT): ../../lib/$(am__dirstamp) \
@@ -1097,7 +1136,6 @@ distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/getpart-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/getpart-curl_get_line.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/getpart-curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/getpart-dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/getpart-memdebug.Po@am__quote@ # am--include-marker
@@ -1109,7 +1147,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/getpart-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/getpart-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/mqttd-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/mqttd-curl_get_line.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/mqttd-curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/mqttd-dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/mqttd-inet_pton.Po@am__quote@ # am--include-marker
@@ -1122,7 +1159,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/mqttd-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/mqttd-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/resolve-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/resolve-curl_get_line.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/resolve-curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/resolve-dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/resolve-memdebug.Po@am__quote@ # am--include-marker
@@ -1134,7 +1170,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/resolve-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/resolve-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/rtspd-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/rtspd-curl_get_line.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/rtspd-curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/rtspd-dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/rtspd-memdebug.Po@am__quote@ # am--include-marker
@@ -1146,7 +1181,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/rtspd-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/rtspd-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sockfilt-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sockfilt-curl_get_line.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sockfilt-curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sockfilt-dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sockfilt-inet_pton.Po@am__quote@ # am--include-marker
@@ -1159,7 +1193,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sockfilt-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sockfilt-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/socksd-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/socksd-curl_get_line.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/socksd-curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/socksd-dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/socksd-inet_pton.Po@am__quote@ # am--include-marker
@@ -1172,7 +1205,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/socksd-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/socksd-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sws-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sws-curl_get_line.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sws-curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sws-dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sws-inet_pton.Po@am__quote@ # am--include-marker
@@ -1185,7 +1217,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sws-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/sws-warnless.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/tftpd-base64.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/tftpd-curl_get_line.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/tftpd-curl_multibyte.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/tftpd-dynbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/tftpd-memdebug.Po@am__quote@ # am--include-marker
@@ -1196,7 +1227,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/tftpd-strtoofft.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/tftpd-timediff.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@../../lib/$(DEPDIR)/tftpd-warnless.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disabled.Po@am__quote@ # am--include-marker
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disabled-disabled.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpart-getpart.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpart-testpart.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mqttd-getpart.Po@am__quote@ # am--include-marker
@@ -1251,6 +1282,20 @@ am--depfiles: $(am__depfiles_remade)
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<

+
disabled-disabled.o: disabled.c
+
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(disabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT disabled-disabled.o -MD -MP -MF $(DEPDIR)/disabled-disabled.Tpo -c -o disabled-disabled.o `test -f 'disabled.c' || echo '$(srcdir)/'`disabled.c
+
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/disabled-disabled.Tpo $(DEPDIR)/disabled-disabled.Po
+
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='disabled.c' object='disabled-disabled.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) $(disabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o disabled-disabled.o `test -f 'disabled.c' || echo '$(srcdir)/'`disabled.c
+

+
disabled-disabled.obj: disabled.c
+
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(disabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT disabled-disabled.obj -MD -MP -MF $(DEPDIR)/disabled-disabled.Tpo -c -o disabled-disabled.obj `if test -f 'disabled.c'; then $(CYGPATH_W) 'disabled.c'; else $(CYGPATH_W) '$(srcdir)/disabled.c'; fi`
+
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/disabled-disabled.Tpo $(DEPDIR)/disabled-disabled.Po
+
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='disabled.c' object='disabled-disabled.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) $(disabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o disabled-disabled.obj `if test -f 'disabled.c'; then $(CYGPATH_W) 'disabled.c'; else $(CYGPATH_W) '$(srcdir)/disabled.c'; fi`
+

../../lib/getpart-mprintf.o: ../../lib/mprintf.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(getpart_CFLAGS) $(CFLAGS) -MT ../../lib/getpart-mprintf.o -MD -MP -MF ../../lib/$(DEPDIR)/getpart-mprintf.Tpo -c -o ../../lib/getpart-mprintf.o `test -f '../../lib/mprintf.c' || echo '$(srcdir)/'`../../lib/mprintf.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/getpart-mprintf.Tpo ../../lib/$(DEPDIR)/getpart-mprintf.Po
@@ -1363,20 +1408,6 @@ am--depfiles: $(am__depfiles_remade)
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(getpart_CFLAGS) $(CFLAGS) -c -o ../../lib/getpart-strcase.obj `if test -f '../../lib/strcase.c'; then $(CYGPATH_W) '../../lib/strcase.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/strcase.c'; fi`

-
../../lib/getpart-curl_get_line.o: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(getpart_CFLAGS) $(CFLAGS) -MT ../../lib/getpart-curl_get_line.o -MD -MP -MF ../../lib/$(DEPDIR)/getpart-curl_get_line.Tpo -c -o ../../lib/getpart-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/getpart-curl_get_line.Tpo ../../lib/$(DEPDIR)/getpart-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/getpart-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(getpart_CFLAGS) $(CFLAGS) -c -o ../../lib/getpart-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-

-
../../lib/getpart-curl_get_line.obj: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(getpart_CFLAGS) $(CFLAGS) -MT ../../lib/getpart-curl_get_line.obj -MD -MP -MF ../../lib/$(DEPDIR)/getpart-curl_get_line.Tpo -c -o ../../lib/getpart-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/getpart-curl_get_line.Tpo ../../lib/$(DEPDIR)/getpart-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/getpart-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(getpart_CFLAGS) $(CFLAGS) -c -o ../../lib/getpart-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-

../../lib/getpart-curl_multibyte.o: ../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(getpart_CFLAGS) $(CFLAGS) -MT ../../lib/getpart-curl_multibyte.o -MD -MP -MF ../../lib/$(DEPDIR)/getpart-curl_multibyte.Tpo -c -o ../../lib/getpart-curl_multibyte.o `test -f '../../lib/curl_multibyte.c' || echo '$(srcdir)/'`../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/getpart-curl_multibyte.Tpo ../../lib/$(DEPDIR)/getpart-curl_multibyte.Po
@@ -1559,20 +1590,6 @@ getpart-testpart.obj: testpart.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mqttd_CFLAGS) $(CFLAGS) -c -o ../../lib/mqttd-strcase.obj `if test -f '../../lib/strcase.c'; then $(CYGPATH_W) '../../lib/strcase.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/strcase.c'; fi`

-
../../lib/mqttd-curl_get_line.o: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mqttd_CFLAGS) $(CFLAGS) -MT ../../lib/mqttd-curl_get_line.o -MD -MP -MF ../../lib/$(DEPDIR)/mqttd-curl_get_line.Tpo -c -o ../../lib/mqttd-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/mqttd-curl_get_line.Tpo ../../lib/$(DEPDIR)/mqttd-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/mqttd-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(mqttd_CFLAGS) $(CFLAGS) -c -o ../../lib/mqttd-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-

-
../../lib/mqttd-curl_get_line.obj: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mqttd_CFLAGS) $(CFLAGS) -MT ../../lib/mqttd-curl_get_line.obj -MD -MP -MF ../../lib/$(DEPDIR)/mqttd-curl_get_line.Tpo -c -o ../../lib/mqttd-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/mqttd-curl_get_line.Tpo ../../lib/$(DEPDIR)/mqttd-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/mqttd-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(mqttd_CFLAGS) $(CFLAGS) -c -o ../../lib/mqttd-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-

../../lib/mqttd-curl_multibyte.o: ../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mqttd_CFLAGS) $(CFLAGS) -MT ../../lib/mqttd-curl_multibyte.o -MD -MP -MF ../../lib/$(DEPDIR)/mqttd-curl_multibyte.Tpo -c -o ../../lib/mqttd-curl_multibyte.o `test -f '../../lib/curl_multibyte.c' || echo '$(srcdir)/'`../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/mqttd-curl_multibyte.Tpo ../../lib/$(DEPDIR)/mqttd-curl_multibyte.Po
@@ -1783,20 +1800,6 @@ mqttd-mqttd.obj: mqttd.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(resolve_CFLAGS) $(CFLAGS) -c -o ../../lib/resolve-strcase.obj `if test -f '../../lib/strcase.c'; then $(CYGPATH_W) '../../lib/strcase.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/strcase.c'; fi`

-
../../lib/resolve-curl_get_line.o: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(resolve_CFLAGS) $(CFLAGS) -MT ../../lib/resolve-curl_get_line.o -MD -MP -MF ../../lib/$(DEPDIR)/resolve-curl_get_line.Tpo -c -o ../../lib/resolve-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/resolve-curl_get_line.Tpo ../../lib/$(DEPDIR)/resolve-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/resolve-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(resolve_CFLAGS) $(CFLAGS) -c -o ../../lib/resolve-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-

-
../../lib/resolve-curl_get_line.obj: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(resolve_CFLAGS) $(CFLAGS) -MT ../../lib/resolve-curl_get_line.obj -MD -MP -MF ../../lib/$(DEPDIR)/resolve-curl_get_line.Tpo -c -o ../../lib/resolve-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/resolve-curl_get_line.Tpo ../../lib/$(DEPDIR)/resolve-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/resolve-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(resolve_CFLAGS) $(CFLAGS) -c -o ../../lib/resolve-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-

../../lib/resolve-curl_multibyte.o: ../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(resolve_CFLAGS) $(CFLAGS) -MT ../../lib/resolve-curl_multibyte.o -MD -MP -MF ../../lib/$(DEPDIR)/resolve-curl_multibyte.Tpo -c -o ../../lib/resolve-curl_multibyte.o `test -f '../../lib/curl_multibyte.c' || echo '$(srcdir)/'`../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/resolve-curl_multibyte.Tpo ../../lib/$(DEPDIR)/resolve-curl_multibyte.Po
@@ -1993,20 +1996,6 @@ resolve-resolve.obj: resolve.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtspd_CFLAGS) $(CFLAGS) -c -o ../../lib/rtspd-strcase.obj `if test -f '../../lib/strcase.c'; then $(CYGPATH_W) '../../lib/strcase.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/strcase.c'; fi`

-
../../lib/rtspd-curl_get_line.o: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtspd_CFLAGS) $(CFLAGS) -MT ../../lib/rtspd-curl_get_line.o -MD -MP -MF ../../lib/$(DEPDIR)/rtspd-curl_get_line.Tpo -c -o ../../lib/rtspd-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/rtspd-curl_get_line.Tpo ../../lib/$(DEPDIR)/rtspd-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/rtspd-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtspd_CFLAGS) $(CFLAGS) -c -o ../../lib/rtspd-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-

-
../../lib/rtspd-curl_get_line.obj: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtspd_CFLAGS) $(CFLAGS) -MT ../../lib/rtspd-curl_get_line.obj -MD -MP -MF ../../lib/$(DEPDIR)/rtspd-curl_get_line.Tpo -c -o ../../lib/rtspd-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/rtspd-curl_get_line.Tpo ../../lib/$(DEPDIR)/rtspd-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/rtspd-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtspd_CFLAGS) $(CFLAGS) -c -o ../../lib/rtspd-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-

../../lib/rtspd-curl_multibyte.o: ../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtspd_CFLAGS) $(CFLAGS) -MT ../../lib/rtspd-curl_multibyte.o -MD -MP -MF ../../lib/$(DEPDIR)/rtspd-curl_multibyte.Tpo -c -o ../../lib/rtspd-curl_multibyte.o `test -f '../../lib/curl_multibyte.c' || echo '$(srcdir)/'`../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/rtspd-curl_multibyte.Tpo ../../lib/$(DEPDIR)/rtspd-curl_multibyte.Po
@@ -2203,20 +2192,6 @@ rtspd-rtspd.obj: rtspd.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sockfilt_CFLAGS) $(CFLAGS) -c -o ../../lib/sockfilt-strcase.obj `if test -f '../../lib/strcase.c'; then $(CYGPATH_W) '../../lib/strcase.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/strcase.c'; fi`

-
../../lib/sockfilt-curl_get_line.o: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sockfilt_CFLAGS) $(CFLAGS) -MT ../../lib/sockfilt-curl_get_line.o -MD -MP -MF ../../lib/$(DEPDIR)/sockfilt-curl_get_line.Tpo -c -o ../../lib/sockfilt-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/sockfilt-curl_get_line.Tpo ../../lib/$(DEPDIR)/sockfilt-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/sockfilt-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(sockfilt_CFLAGS) $(CFLAGS) -c -o ../../lib/sockfilt-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-

-
../../lib/sockfilt-curl_get_line.obj: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sockfilt_CFLAGS) $(CFLAGS) -MT ../../lib/sockfilt-curl_get_line.obj -MD -MP -MF ../../lib/$(DEPDIR)/sockfilt-curl_get_line.Tpo -c -o ../../lib/sockfilt-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/sockfilt-curl_get_line.Tpo ../../lib/$(DEPDIR)/sockfilt-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/sockfilt-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(sockfilt_CFLAGS) $(CFLAGS) -c -o ../../lib/sockfilt-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-

../../lib/sockfilt-curl_multibyte.o: ../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sockfilt_CFLAGS) $(CFLAGS) -MT ../../lib/sockfilt-curl_multibyte.o -MD -MP -MF ../../lib/$(DEPDIR)/sockfilt-curl_multibyte.Tpo -c -o ../../lib/sockfilt-curl_multibyte.o `test -f '../../lib/curl_multibyte.c' || echo '$(srcdir)/'`../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/sockfilt-curl_multibyte.Tpo ../../lib/$(DEPDIR)/sockfilt-curl_multibyte.Po
@@ -2427,20 +2402,6 @@ sockfilt-sockfilt.obj: sockfilt.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(socksd_CFLAGS) $(CFLAGS) -c -o ../../lib/socksd-strcase.obj `if test -f '../../lib/strcase.c'; then $(CYGPATH_W) '../../lib/strcase.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/strcase.c'; fi`

-
../../lib/socksd-curl_get_line.o: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(socksd_CFLAGS) $(CFLAGS) -MT ../../lib/socksd-curl_get_line.o -MD -MP -MF ../../lib/$(DEPDIR)/socksd-curl_get_line.Tpo -c -o ../../lib/socksd-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/socksd-curl_get_line.Tpo ../../lib/$(DEPDIR)/socksd-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/socksd-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(socksd_CFLAGS) $(CFLAGS) -c -o ../../lib/socksd-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-

-
../../lib/socksd-curl_get_line.obj: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(socksd_CFLAGS) $(CFLAGS) -MT ../../lib/socksd-curl_get_line.obj -MD -MP -MF ../../lib/$(DEPDIR)/socksd-curl_get_line.Tpo -c -o ../../lib/socksd-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/socksd-curl_get_line.Tpo ../../lib/$(DEPDIR)/socksd-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/socksd-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(socksd_CFLAGS) $(CFLAGS) -c -o ../../lib/socksd-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-

../../lib/socksd-curl_multibyte.o: ../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(socksd_CFLAGS) $(CFLAGS) -MT ../../lib/socksd-curl_multibyte.o -MD -MP -MF ../../lib/$(DEPDIR)/socksd-curl_multibyte.Tpo -c -o ../../lib/socksd-curl_multibyte.o `test -f '../../lib/curl_multibyte.c' || echo '$(srcdir)/'`../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/socksd-curl_multibyte.Tpo ../../lib/$(DEPDIR)/socksd-curl_multibyte.Po
@@ -2651,20 +2612,6 @@ socksd-socksd.obj: socksd.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -c -o ../../lib/sws-strcase.obj `if test -f '../../lib/strcase.c'; then $(CYGPATH_W) '../../lib/strcase.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/strcase.c'; fi`

-
../../lib/sws-curl_get_line.o: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -MT ../../lib/sws-curl_get_line.o -MD -MP -MF ../../lib/$(DEPDIR)/sws-curl_get_line.Tpo -c -o ../../lib/sws-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/sws-curl_get_line.Tpo ../../lib/$(DEPDIR)/sws-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/sws-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -c -o ../../lib/sws-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-

-
../../lib/sws-curl_get_line.obj: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -MT ../../lib/sws-curl_get_line.obj -MD -MP -MF ../../lib/$(DEPDIR)/sws-curl_get_line.Tpo -c -o ../../lib/sws-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/sws-curl_get_line.Tpo ../../lib/$(DEPDIR)/sws-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/sws-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -c -o ../../lib/sws-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-

../../lib/sws-curl_multibyte.o: ../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -MT ../../lib/sws-curl_multibyte.o -MD -MP -MF ../../lib/$(DEPDIR)/sws-curl_multibyte.Tpo -c -o ../../lib/sws-curl_multibyte.o `test -f '../../lib/curl_multibyte.c' || echo '$(srcdir)/'`../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/sws-curl_multibyte.Tpo ../../lib/$(DEPDIR)/sws-curl_multibyte.Po
@@ -2875,20 +2822,6 @@ sws-sws.obj: sws.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tftpd_CFLAGS) $(CFLAGS) -c -o ../../lib/tftpd-strcase.obj `if test -f '../../lib/strcase.c'; then $(CYGPATH_W) '../../lib/strcase.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/strcase.c'; fi`

-
../../lib/tftpd-curl_get_line.o: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tftpd_CFLAGS) $(CFLAGS) -MT ../../lib/tftpd-curl_get_line.o -MD -MP -MF ../../lib/$(DEPDIR)/tftpd-curl_get_line.Tpo -c -o ../../lib/tftpd-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/tftpd-curl_get_line.Tpo ../../lib/$(DEPDIR)/tftpd-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/tftpd-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(tftpd_CFLAGS) $(CFLAGS) -c -o ../../lib/tftpd-curl_get_line.o `test -f '../../lib/curl_get_line.c' || echo '$(srcdir)/'`../../lib/curl_get_line.c
-

-
../../lib/tftpd-curl_get_line.obj: ../../lib/curl_get_line.c
-
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tftpd_CFLAGS) $(CFLAGS) -MT ../../lib/tftpd-curl_get_line.obj -MD -MP -MF ../../lib/$(DEPDIR)/tftpd-curl_get_line.Tpo -c -o ../../lib/tftpd-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/tftpd-curl_get_line.Tpo ../../lib/$(DEPDIR)/tftpd-curl_get_line.Po
-
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../../lib/curl_get_line.c' object='../../lib/tftpd-curl_get_line.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(tftpd_CFLAGS) $(CFLAGS) -c -o ../../lib/tftpd-curl_get_line.obj `if test -f '../../lib/curl_get_line.c'; then $(CYGPATH_W) '../../lib/curl_get_line.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/curl_get_line.c'; fi`
-

../../lib/tftpd-curl_multibyte.o: ../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tftpd_CFLAGS) $(CFLAGS) -MT ../../lib/tftpd-curl_multibyte.o -MD -MP -MF ../../lib/$(DEPDIR)/tftpd-curl_multibyte.Tpo -c -o ../../lib/tftpd-curl_multibyte.o `test -f '../../lib/curl_multibyte.c' || echo '$(srcdir)/'`../../lib/curl_multibyte.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/tftpd-curl_multibyte.Tpo ../../lib/$(DEPDIR)/tftpd-curl_multibyte.Po
@@ -3107,7 +3040,6 @@ clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \

distclean: distclean-am
		-rm -f ../../lib/$(DEPDIR)/getpart-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/getpart-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/getpart-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/getpart-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/getpart-memdebug.Po
@@ -3119,7 +3051,6 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/getpart-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/getpart-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/mqttd-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-inet_pton.Po
@@ -3132,7 +3063,6 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/mqttd-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/resolve-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-memdebug.Po
@@ -3144,7 +3074,6 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/resolve-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/rtspd-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-memdebug.Po
@@ -3156,7 +3085,6 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/rtspd-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/sockfilt-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-inet_pton.Po
@@ -3169,7 +3097,6 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/sockfilt-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/socksd-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-inet_pton.Po
@@ -3182,7 +3109,6 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/socksd-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/sws-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/sws-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/sws-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/sws-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/sws-inet_pton.Po
@@ -3195,7 +3121,6 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/sws-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/sws-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/tftpd-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-memdebug.Po
@@ -3206,7 +3131,7 @@ distclean: distclean-am
	-rm -f ../../lib/$(DEPDIR)/tftpd-strtoofft.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-warnless.Po
-
	-rm -f ./$(DEPDIR)/disabled.Po
+
	-rm -f ./$(DEPDIR)/disabled-disabled.Po
	-rm -f ./$(DEPDIR)/getpart-getpart.Po
	-rm -f ./$(DEPDIR)/getpart-testpart.Po
	-rm -f ./$(DEPDIR)/mqttd-getpart.Po
@@ -3276,7 +3201,6 @@ installcheck-am:

maintainer-clean: maintainer-clean-am
		-rm -f ../../lib/$(DEPDIR)/getpart-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/getpart-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/getpart-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/getpart-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/getpart-memdebug.Po
@@ -3288,7 +3212,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/getpart-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/getpart-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/mqttd-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-inet_pton.Po
@@ -3301,7 +3224,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/mqttd-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/mqttd-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/resolve-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-memdebug.Po
@@ -3313,7 +3235,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/resolve-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/resolve-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/rtspd-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-memdebug.Po
@@ -3325,7 +3246,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/rtspd-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/rtspd-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/sockfilt-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-inet_pton.Po
@@ -3338,7 +3258,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/sockfilt-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/sockfilt-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/socksd-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-inet_pton.Po
@@ -3351,7 +3270,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/socksd-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/socksd-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/sws-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/sws-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/sws-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/sws-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/sws-inet_pton.Po
@@ -3364,7 +3282,6 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/sws-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/sws-warnless.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-base64.Po
-
	-rm -f ../../lib/$(DEPDIR)/tftpd-curl_get_line.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-curl_multibyte.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-dynbuf.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-memdebug.Po
@@ -3375,7 +3292,7 @@ maintainer-clean: maintainer-clean-am
	-rm -f ../../lib/$(DEPDIR)/tftpd-strtoofft.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-timediff.Po
	-rm -f ../../lib/$(DEPDIR)/tftpd-warnless.Po
-
	-rm -f ./$(DEPDIR)/disabled.Po
+
	-rm -f ./$(DEPDIR)/disabled-disabled.Po
	-rm -f ./$(DEPDIR)/getpart-getpart.Po
	-rm -f ./$(DEPDIR)/getpart-testpart.Po
	-rm -f ./$(DEPDIR)/mqttd-getpart.Po
modified external/curl/tests/server/Makefile.inc
@@ -34,7 +34,6 @@ CURLX_SRCS = \
 ../../lib/dynbuf.c \
 ../../lib/strdup.c \
 ../../lib/strcase.c \
-
 ../../lib/curl_get_line.c \
 ../../lib/curl_multibyte.c

CURLX_HDRS = \
@@ -46,7 +45,6 @@ CURLX_HDRS = \
 ../../lib/curl_ctype.h \
 ../../lib/dynbuf.h \
 ../../lib/strdup.h \
-
 ../../lib/curl_get_line.h \
 ../../lib/curl_multibyte.h

USEFUL = \
modified external/curl/tests/server/disabled.c
@@ -101,9 +101,6 @@ static const char *disabled[]={
#if (SIZEOF_TIME_T < 5)
  "large-time",
#endif
-
#if (SIZEOF_SIZE_T < 5)
-
  "large-size",
-
#endif
#ifndef CURL_HAVE_SHA512_256
  "sha512-256",
#endif
modified external/curl/tests/server/getpart.c
@@ -349,6 +349,9 @@ int getpart(char **outbuf, size_t *outlen,
        state = STATE_INMAIN;
        csub[0] = '\0';
        if(in_wanted_part) {
+
          /* end of wanted part */
+
          in_wanted_part = 0;
+

          /* Do we need to base64 decode the data? */
          if(base64) {
            error = decodedata(outbuf, outlen);
@@ -365,6 +368,9 @@ int getpart(char **outbuf, size_t *outlen,
        state = STATE_OUTER;
        cmain[0] = '\0';
        if(in_wanted_part) {
+
          /* end of wanted part */
+
          in_wanted_part = 0;
+

          /* Do we need to base64 decode the data? */
          if(base64) {
            error = decodedata(outbuf, outlen);
@@ -380,8 +386,11 @@ int getpart(char **outbuf, size_t *outlen,
        /* end of outermost file section */
        state = STATE_OUTSIDE;
        couter[0] = '\0';
-
        if(in_wanted_part)
+
        if(in_wanted_part) {
+
          /* end of wanted part */
+
          in_wanted_part = 0;
          break;
+
        }
      }

    }
modified external/curl/tests/server/mqttd.c
@@ -60,8 +60,6 @@
#include "server_sockaddr.h"
#include "warnless.h"

-
#include "tool_binmode.h"
-

/* include memdebug.h last */
#include "memdebug.h"

@@ -542,14 +540,12 @@ static curl_socket_t mqttit(curl_socket_t fd)
      break;

    if(remaining_length >= buff_size) {
-
      unsigned char *newbuffer;
      buff_size = remaining_length;
-
      newbuffer = realloc(buffer, buff_size);
-
      if(!newbuffer) {
+
      buffer = realloc(buffer, buff_size);
+
      if(!buffer) {
        logmsg("Failed realloc of size %zu", buff_size);
        goto end;
      }
-
      buffer = newbuffer;
    }

    if(remaining_length) {
@@ -752,14 +748,7 @@ static bool incoming(curl_socket_t listenfd)
    FD_ZERO(&fds_err);

    /* there's always a socket to wait for */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
    FD_SET(sockfd, &fds_read);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif

    do {
      /* select() blocking behavior call on blocking descriptors please */
@@ -1032,11 +1021,11 @@ int main(int argc, char *argv[])
#ifdef _WIN32
  win32_init();
  atexit(win32_cleanup);
-
#endif

-
  CURL_SET_BINMODE(stdin);
-
  CURL_SET_BINMODE(stdout);
-
  CURL_SET_BINMODE(stderr);
+
  setmode(fileno(stdin), O_BINARY);
+
  setmode(fileno(stdout), O_BINARY);
+
  setmode(fileno(stderr), O_BINARY);
+
#endif

  install_signal_handlers(FALSE);

modified external/curl/tests/server/resolve.c
@@ -142,11 +142,7 @@ int main(int argc, char *argv[])
    /* gethostbyname() resolve */
    struct hostent *he;

-
#ifdef __AMIGA__
-
    he = gethostbyname((unsigned char *)host);
-
#else
    he = gethostbyname(host);
-
#endif

    rc = !he;
  }
modified external/curl/tests/server/rtspd.c
@@ -72,9 +72,9 @@ static int serverlogslocked = 0;

static long prevtestno = -1;    /* previous test number we served */
static long prevpartno = -1;    /* previous part number we served */
-
static bool prevbounce = FALSE; /* instructs the server to override the
-
                                   requested part number to prevpartno + 1 when
-
                                   prevtestno and current test are the same */
+
static bool prevbounce = FALSE; /* instructs the server to increase the part
+
                                   number for a test in case the identical
+
                                   testno+partno request shows up again */

#define RCMD_NORMALREQ 0 /* default request, use the tests file normally */
#define RCMD_IDLE      1 /* told to sit idle */
@@ -641,10 +641,12 @@ static void storerequest(char *reqbuf, size_t totalsize)

storerequest_cleanup:

-
  res = fclose(dump);
+
  do {
+
    res = fclose(dump);
+
  } while(res && ((error = errno) == EINTR));
  if(res)
    logmsg("Error closing file %s error: %d %s",
-
           dumpfile, errno, strerror(errno));
+
           dumpfile, error, strerror(error));
}

/* return 0 on success, non-zero on failure */
@@ -974,10 +976,12 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
    req->rtp_buffersize = 0;
  }

-
  res = fclose(dump);
+
  do {
+
    res = fclose(dump);
+
  } while(res && ((error = errno) == EINTR));
  if(res)
    logmsg("Error closing file %s error: %d %s",
-
           responsedump, errno, strerror(errno));
+
           responsedump, error, strerror(error));

  if(got_exit_signal) {
    free(ptr);
@@ -1319,8 +1323,9 @@ int main(int argc, char *argv[])

      if(prevbounce) {
        /* bounce treatment requested */
-
        if(req.testno == prevtestno) {
-
          req.partno = prevpartno + 1;
+
        if((req.testno == prevtestno) &&
+
           (req.partno == prevpartno)) {
+
          req.partno++;
          logmsg("BOUNCE part number to %ld", req.partno);
        }
        else {
modified external/curl/tests/server/sockfilt.c
@@ -107,8 +107,6 @@
#include "timediff.h"
#include "warnless.h"

-
#include "tool_binmode.h"
-

/* include memdebug.h last */
#include "memdebug.h"

@@ -998,14 +996,7 @@ static bool juggle(curl_socket_t *sockfdp,
  FD_ZERO(&fds_write);
  FD_ZERO(&fds_err);

-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
  FD_SET((curl_socket_t)fileno(stdin), &fds_read);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif

  switch(*mode) {

@@ -1014,14 +1005,7 @@ static bool juggle(curl_socket_t *sockfdp,
    /* server mode */
    sockfd = listenfd;
    /* there's always a socket to wait for */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
    FD_SET(sockfd, &fds_read);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
    maxfd = (int)sockfd;
    break;

@@ -1035,14 +1019,7 @@ static bool juggle(curl_socket_t *sockfdp,
    }
    else {
      /* there's always a socket to wait for */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
      FD_SET(sockfd, &fds_read);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
      maxfd = (int)sockfd;
    }
    break;
@@ -1052,14 +1029,7 @@ static bool juggle(curl_socket_t *sockfdp,
    sockfd = *sockfdp;
    /* sockfd turns CURL_SOCKET_BAD when our connection has been closed */
    if(CURL_SOCKET_BAD != sockfd) {
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
      FD_SET(sockfd, &fds_read);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
      maxfd = (int)sockfd;
    }
    else {
@@ -1499,11 +1469,11 @@ int main(int argc, char *argv[])
#ifdef _WIN32
  win32_init();
  atexit(win32_cleanup);
-
#endif

-
  CURL_SET_BINMODE(stdin);
-
  CURL_SET_BINMODE(stdout);
-
  CURL_SET_BINMODE(stderr);
+
  setmode(fileno(stdin), O_BINARY);
+
  setmode(fileno(stdout), O_BINARY);
+
  setmode(fileno(stderr), O_BINARY);
+
#endif

  install_signal_handlers(false);

modified external/curl/tests/server/socksd.c
@@ -78,8 +78,6 @@
#include "server_sockaddr.h"
#include "warnless.h"

-
#include "tool_binmode.h"
-

/* include memdebug.h last */
#include "memdebug.h"

@@ -719,37 +717,16 @@ static bool incoming(curl_socket_t listenfd)
    FD_ZERO(&fds_err);

    /* there's always a socket to wait for */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
    FD_SET(sockfd, &fds_read);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif

    for(i = 0; i < 2; i++) {
      if(c[i].used) {
        curl_socket_t fd = c[i].clientfd;
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
        FD_SET(fd, &fds_read);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
        if((int)fd > maxfd)
          maxfd = (int)fd;
        fd = c[i].remotefd;
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
        FD_SET(fd, &fds_read);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
        if((int)fd > maxfd)
          maxfd = (int)fd;
      }
@@ -1100,11 +1077,11 @@ int main(int argc, char *argv[])
#ifdef _WIN32
  win32_init();
  atexit(win32_cleanup);
-
#endif

-
  CURL_SET_BINMODE(stdin);
-
  CURL_SET_BINMODE(stdout);
-
  CURL_SET_BINMODE(stderr);
+
  setmode(fileno(stdin), O_BINARY);
+
  setmode(fileno(stdout), O_BINARY);
+
  setmode(fileno(stderr), O_BINARY);
+
#endif

  install_signal_handlers(false);

@@ -1167,7 +1144,7 @@ socks5_cleanup:
    sclose(sock);

#ifdef USE_UNIX_SOCKETS
-
  if(unlink_socket && socket_domain == AF_UNIX && unix_socket) {
+
  if(unlink_socket && socket_domain == AF_UNIX) {
    error = unlink(unix_socket);
    logmsg("unlink(%s) = %d (%s)", unix_socket, error, strerror(error));
  }
modified external/curl/tests/server/sws.c
@@ -84,9 +84,9 @@ static bool is_proxy = FALSE;

static long prevtestno = -1;    /* previous test number we served */
static long prevpartno = -1;    /* previous part number we served */
-
static bool prevbounce = FALSE; /* instructs the server to override the
-
                                   requested part number to prevpartno + 1 when
-
                                   prevtestno and current test are the same */
+
static bool prevbounce = FALSE; /* instructs the server to increase the part
+
                                   number for a test in case the identical
+
                                   testno+partno request shows up again */

#define RCMD_NORMALREQ 0 /* default request, use the tests file normally */
#define RCMD_IDLE      1 /* told to sit idle */
@@ -832,10 +832,12 @@ static void storerequest(const char *reqbuf, size_t totalsize)

storerequest_cleanup:

-
  res = fclose(dump);
+
  do {
+
    res = fclose(dump);
+
  } while(res && ((error = errno) == EINTR));
  if(res)
    logmsg("Error closing file %s error: %d %s",
-
           dumpfile, errno, strerror(errno));
+
           dumpfile, error, strerror(error));
}

static void init_httprequest(struct httprequest *req)
@@ -900,21 +902,13 @@ static int get_request(curl_socket_t sock, struct httprequest *req)
          int rc;
          fd_set input;
          fd_set output;
-
          struct timeval timeout = {0};
-
          timeout.tv_sec = 1; /* 1000 ms */
+
          struct timeval timeout = {1, 0}; /* 1000 ms */

          logmsg("Got EAGAIN from sread");
          FD_ZERO(&input);
          FD_ZERO(&output);
          got = 0;
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
          FD_SET(sock, &input);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
          do {
            logmsg("Wait until readable");
            rc = select((int)sock + 1, &input, &output, NULL, &timeout);
@@ -1215,10 +1209,12 @@ retry:
    }
  } while((count > 0) && !got_exit_signal);

-
  res = fclose(dump);
+
  do {
+
    res = fclose(dump);
+
  } while(res && ((error = errno) == EINTR));
  if(res)
    logmsg("Error closing file %s error: %d %s",
-
           responsedump, errno, strerror(errno));
+
           responsedump, error, strerror(error));

  if(got_exit_signal) {
    free(ptr);
@@ -1379,18 +1375,10 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
    error = SOCKERRNO;
    if((error == EINPROGRESS) || (error == EWOULDBLOCK)) {
      fd_set output;
-
      struct timeval timeout = {0};
-
      timeout.tv_sec = 1; /* 1000 ms */
+
      struct timeval timeout = {1, 0}; /* 1000 ms */

      FD_ZERO(&output);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
      FD_SET(serverfd, &output);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
      while(1) {
        rc = select((int)serverfd + 1, NULL, &output, NULL, &timeout);
        if(rc < 0 && SOCKERRNO != EINTR)
@@ -1500,10 +1488,9 @@ static void http_connect(curl_socket_t *infdp,

    fd_set input;
    fd_set output;
+
    struct timeval timeout = {1, 0}; /* 1000 ms */
    ssize_t rc;
    curl_socket_t maxfd = (curl_socket_t)-1;
-
    struct timeval timeout = {0};
-
    timeout.tv_sec = 1; /* 1000 ms */

    FD_ZERO(&input);
    FD_ZERO(&output);
@@ -1515,14 +1502,7 @@ static void http_connect(curl_socket_t *infdp,
      /* listener socket is monitored to allow client to establish
         secondary tunnel only when this tunnel is not established
         and primary one is fully operational */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
      FD_SET(rootfd, &input);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
      maxfd = rootfd;
    }

@@ -1532,28 +1512,14 @@ static void http_connect(curl_socket_t *infdp,
      if(clientfd[i] != CURL_SOCKET_BAD) {
        if(poll_client_rd[i]) {
          /* unless told not to do so, monitor readability */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
          FD_SET(clientfd[i], &input);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
          if(clientfd[i] > maxfd)
            maxfd = clientfd[i];
        }
        if(poll_client_wr[i] && toc[i]) {
          /* unless told not to do so, monitor writability
             if there is data ready to be sent to client */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
          FD_SET(clientfd[i], &output);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
          if(clientfd[i] > maxfd)
            maxfd = clientfd[i];
        }
@@ -1562,28 +1528,14 @@ static void http_connect(curl_socket_t *infdp,
      if(serverfd[i] != CURL_SOCKET_BAD) {
        if(poll_server_rd[i]) {
          /* unless told not to do so, monitor readability */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
          FD_SET(serverfd[i], &input);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
          if(serverfd[i] > maxfd)
            maxfd = serverfd[i];
        }
        if(poll_server_wr[i] && tos[i]) {
          /* unless told not to do so, monitor writability
             if there is data ready to be sent to server */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
          FD_SET(serverfd[i], &output);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
          if(serverfd[i] > maxfd)
            maxfd = serverfd[i];
        }
@@ -1982,8 +1934,9 @@ static int service_connection(curl_socket_t msgsock, struct httprequest *req,

  if(prevbounce) {
    /* bounce treatment requested */
-
    if(req->testno == prevtestno) {
-
      req->partno = prevpartno + 1;
+
    if((req->testno == prevtestno) &&
+
       (req->partno == prevpartno)) {
+
      req->partno++;
      logmsg("BOUNCE part number to %ld", req->partno);
    }
    else {
@@ -2370,10 +2323,9 @@ int main(int argc, char *argv[])
  for(;;) {
    fd_set input;
    fd_set output;
+
    struct timeval timeout = {0, 250000L}; /* 250 ms */
    curl_socket_t maxfd = (curl_socket_t)-1;
    int active;
-
    struct timeval timeout = {0};
-
    timeout.tv_usec = 250000L; /* 250 ms */

    /* Clear out closed sockets */
    for(socket_idx = num_sockets - 1; socket_idx >= 1; --socket_idx) {
@@ -2395,14 +2347,7 @@ int main(int argc, char *argv[])

    for(socket_idx = 0; socket_idx < num_sockets; ++socket_idx) {
      /* Listen on all sockets */
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic push
-
#pragma GCC diagnostic ignored "-Warith-conversion"
-
#endif
      FD_SET(all_sockets[socket_idx], &input);
-
#if defined(__DJGPP__)
-
#pragma GCC diagnostic pop
-
#endif
      if(all_sockets[socket_idx] > maxfd)
        maxfd = all_sockets[socket_idx];
    }
@@ -2522,7 +2467,7 @@ sws_cleanup:
    sclose(sock);

#ifdef USE_UNIX_SOCKETS
-
  if(unlink_socket && socket_domain == AF_UNIX && unix_socket) {
+
  if(unlink_socket && socket_domain == AF_UNIX) {
    rc = unlink(unix_socket);
    logmsg("unlink(%s) = %d (%s)", unix_socket, rc, strerror(rc));
  }
modified external/curl/tests/server/tftpd.c
@@ -425,9 +425,9 @@ static int writeit(struct testcase *test, struct tftphdr * volatile *dpp,
  bfs[current].counter = ct;      /* set size of data to write */
  current = !current;             /* switch to other buffer */
  if(bfs[current].counter != BF_FREE)     /* if not free */
-
    write_behind(test, convert);          /* flush it */
+
    write_behind(test, convert);     /* flush it */
  bfs[current].counter = BF_ALLOC;        /* mark as alloc'd */
-
  *dpp = &bfs[current].buf.hdr;
+
  *dpp =  &bfs[current].buf.hdr;
  return ct;                      /* this is a lie of course */
}

@@ -448,21 +448,22 @@ static ssize_t write_behind(struct testcase *test, int convert)
  struct tftphdr *dp;

  b = &bfs[nextone];
-
  if(b->counter < -1)             /* anything to flush? */
+
  if(b->counter < -1)            /* anything to flush? */
    return 0;                     /* just nop if nothing to do */

  if(!test->ofile) {
    char outfile[256];
    msnprintf(outfile, sizeof(outfile), "%s/upload.%ld", logdir, test->testno);
-
    test->ofile = open(outfile, O_CREAT|O_RDWR|CURL_O_BINARY, 0777);
+
#ifdef _WIN32
+
    test->ofile = open(outfile, O_CREAT|O_RDWR|O_BINARY, 0777);
+
#else
+
    test->ofile = open(outfile, O_CREAT|O_RDWR, 0777);
+
#endif
    if(test->ofile == -1) {
      logmsg("Couldn't create and/or open file %s for upload!", outfile);
      return -1; /* failure! */
    }
  }
-
  else if(test->ofile <= 0) {
-
    return -1; /* failure! */
-
  }

  count = b->counter;             /* remember byte count */
  b->counter = BF_FREE;           /* reset flag */
@@ -511,20 +512,21 @@ skipit:

static int synchnet(curl_socket_t f /* socket to flush */)
{
+

+
#if defined(HAVE_IOCTLSOCKET)
+
  unsigned long i;
+
#else
+
  int i;
+
#endif
  int j = 0;
  char rbuf[PKTSIZE];
  srvr_sockaddr_union_t fromaddr;
  curl_socklen_t fromaddrlen;

  for(;;) {
-
#if defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
-
    long i;
-
    (void) IoctlSocket(f, FIONBIO, &i);
-
#elif defined(HAVE_IOCTLSOCKET)
-
    unsigned long i;
+
#if defined(HAVE_IOCTLSOCKET)
    (void) ioctlsocket(f, FIONREAD, &i);
#else
-
    int i;
    (void) ioctl(f, FIONREAD, &i);
#endif
    if(i) {
@@ -951,7 +953,7 @@ static int do_tftp(struct testcase *test, struct tftphdr *tp, ssize_t size)
      break;
  } while(1);

-
  if(*cp || !mode) {
+
  if(*cp) {
    nak(EBADOP);
    fclose(server);
    return 3;
modified external/curl/tests/server/util.c
@@ -40,10 +40,6 @@
#include <sys/poll.h>
#endif

-
#ifdef MSDOS
-
#include <dos.h>  /* delay() */
-
#endif
-

#include "curlx.h" /* from the private lib dir */
#include "getpart.h"
#include "util.h"
@@ -341,10 +337,12 @@ void set_advisor_read_lock(const char *filename)
    return;
  }

-
  res = fclose(lockfile);
+
  do {
+
    res = fclose(lockfile);
+
  } while(res && ((error = errno) == EINTR));
  if(res)
    logmsg("Error closing lock file %s error: %d %s",
-
           filename, errno, strerror(errno));
+
           filename, error, strerror(error));
}

void clear_advisor_read_lock(const char *filename)
@@ -470,7 +468,7 @@ long timediff(struct timeval newer, struct timeval older)

typedef void (*SIGHANDLER_T)(int);

-
#if defined(_MSC_VER) && (_MSC_VER <= 1700)
+
#if defined(_MSC_VER) && _MSC_VER == 1600
/* Workaround for warning C4306:
   'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' */
#undef SIG_ERR
modified external/curl/tests/testcurl.pl
@@ -566,6 +566,17 @@ if ($configurebuild) {
  logit "copying files to build dir ...";
  if ($^O eq 'MSWin32') {
    system("xcopy /s /q \"$CURLDIR\" .");
+
    system("buildconf.bat");
+
  }
+
  elsif ($^O eq 'linux') {
+
    system("cp -afr $CURLDIR/* .");
+
    system("cp -af $CURLDIR/Makefile.dist Makefile");
+
    system("$make -i -C lib -f Makefile.$targetos prebuild");
+
    system("$make -i -C src -f Makefile.$targetos prebuild");
+
    if (-d "$CURLDIR/ares") {
+
      system("cp -af $CURLDIR/ares/ares_build.h.dist ./ares/ares_build.h");
+
      system("$make -i -C ares -f Makefile.$targetos prebuild");
+
    }
  }
}

modified external/curl/tests/testutil.pm
@@ -136,17 +136,6 @@ sub subbase64 {
        $$thing =~ s/%%REPEAT%%/$all/;
    }

-
    # days
-
    while($$thing =~ s/%days\[(.*?)\]/%%DAYS%%/i) {
-
        # convert to now + given days in epoch seconds, align to a 60 second
-
        # boundary. Then provide two alternatives.
-
        my $now = time();
-
        my $d = ($1 * 24 * 3600) + $now + 30;
-
        $d = int($d/60) * 60;
-
        my $d2 = $d + 60;
-
        $$thing =~ s/%%DAYS%%/%alternatives[$d,$d2]/;
-
    }
-

    # include a file
    $$thing =~ s/%include ([^%]*)%[\n\r]+/includefile($1)/ge;
}
@@ -161,6 +150,13 @@ sub subnewlines {
        return;
    }

+
    # When curl is built with Hyper, it gets all response headers delivered as
+
    # name/value pairs and curl "invents" the newlines when it saves the
+
    # headers. Therefore, curl will always save headers with CRLF newlines
+
    # when built to use Hyper. By making sure we deliver all tests using CRLF
+
    # as well, all test comparisons will survive without knowing about this
+
    # little quirk.
+

    if(($$thing =~ /^HTTP\/(1.1|1.0|2|3) [1-5][^\x0d]*\z/) ||
       ($$thing =~ /^(GET|POST|PUT|DELETE) \S+ HTTP\/\d+(\.\d+)?/) ||
       (($$thing =~ /^[a-z0-9_-]+: [^\x0d]*\z/i) &&
modified external/curl/tests/unit/CMakeLists.txt
@@ -23,7 +23,7 @@
###########################################################################

# Get 'UNITPROGS', '*_SOURCES', 'FIRSTFILES' variables
-
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")

if(CURL_TEST_BUNDLES)
modified external/curl/tests/unit/Makefile.am
@@ -74,8 +74,5 @@ CS_0 = @echo " RUN " $@;
CS_1 =
CS_ = $(CS_0)

-
# ignore generated C files since they play by slightly different rules!
checksrc:
-
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) \
-
	  -W$(srcdir)/unit_bundle.c \
-
	  $(srcdir)/*.[ch])
+
	$(CHECKSRC)@PERL@ $(top_srcdir)/scripts/checksrc.pl $(srcdir)/*.[ch]
modified external/curl/tests/unit/Makefile.in
@@ -193,11 +193,9 @@ CONFIG_CLEAN_VPATH_FILES =
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit1654$(EXEEXT) \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit1655$(EXEEXT) \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit1656$(EXEEXT) \
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit1657$(EXEEXT) \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit1660$(EXEEXT) \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit1661$(EXEEXT) \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit1663$(EXEEXT) \
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit1664$(EXEEXT) \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit2600$(EXEEXT) \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit2601$(EXEEXT) \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	unit2602$(EXEEXT) \
@@ -541,14 +539,6 @@ unit1656_OBJECTS = $(am_unit1656_OBJECTS)
unit1656_LDADD = $(LDADD)
unit1656_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \
	$(top_builddir)/lib/libcurlu.la
-
am__unit1657_SOURCES_DIST = unit1657.c curlcheck.h ../libtest/first.c \
-
	../libtest/first.h
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@am_unit1657_OBJECTS = unit1657.$(OBJEXT) \
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	$(am__objects_2)
-
unit1657_OBJECTS = $(am_unit1657_OBJECTS)
-
unit1657_LDADD = $(LDADD)
-
unit1657_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \
-
	$(top_builddir)/lib/libcurlu.la
am__unit1660_SOURCES_DIST = unit1660.c curlcheck.h ../libtest/first.c \
	../libtest/first.h
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@am_unit1660_OBJECTS = unit1660.$(OBJEXT) \
@@ -573,14 +563,6 @@ unit1663_OBJECTS = $(am_unit1663_OBJECTS)
unit1663_LDADD = $(LDADD)
unit1663_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \
	$(top_builddir)/lib/libcurlu.la
-
am__unit1664_SOURCES_DIST = unit1664.c curlcheck.h ../libtest/first.c \
-
	../libtest/first.h
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@am_unit1664_OBJECTS = unit1664.$(OBJEXT) \
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@	$(am__objects_2)
-
unit1664_OBJECTS = $(am_unit1664_OBJECTS)
-
unit1664_LDADD = $(LDADD)
-
unit1664_DEPENDENCIES = $(top_builddir)/src/libcurltool.la \
-
	$(top_builddir)/lib/libcurlu.la
am__unit2600_SOURCES_DIST = unit2600.c curlcheck.h ../libtest/first.c \
	../libtest/first.h
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@am_unit2600_OBJECTS = unit2600.$(OBJEXT) \
@@ -678,9 +660,8 @@ am__depfiles_remade = ../libtest/$(DEPDIR)/first.Po \
	./$(DEPDIR)/unit1650.Po ./$(DEPDIR)/unit1651.Po \
	./$(DEPDIR)/unit1652.Po ./$(DEPDIR)/unit1653.Po \
	./$(DEPDIR)/unit1654.Po ./$(DEPDIR)/unit1655.Po \
-
	./$(DEPDIR)/unit1656.Po ./$(DEPDIR)/unit1657.Po \
-
	./$(DEPDIR)/unit1660.Po ./$(DEPDIR)/unit1661.Po \
-
	./$(DEPDIR)/unit1663.Po ./$(DEPDIR)/unit1664.Po \
+
	./$(DEPDIR)/unit1656.Po ./$(DEPDIR)/unit1660.Po \
+
	./$(DEPDIR)/unit1661.Po ./$(DEPDIR)/unit1663.Po \
	./$(DEPDIR)/unit2600.Po ./$(DEPDIR)/unit2601.Po \
	./$(DEPDIR)/unit2602.Po ./$(DEPDIR)/unit2603.Po \
	./$(DEPDIR)/unit2604.Po ./$(DEPDIR)/unit3200.Po \
@@ -717,11 +698,10 @@ SOURCES = $(unit1300_SOURCES) $(unit1302_SOURCES) $(unit1303_SOURCES) \
	$(unit1615_SOURCES) $(unit1616_SOURCES) $(unit1620_SOURCES) \
	$(unit1621_SOURCES) $(unit1650_SOURCES) $(unit1651_SOURCES) \
	$(unit1652_SOURCES) $(unit1653_SOURCES) $(unit1654_SOURCES) \
-
	$(unit1655_SOURCES) $(unit1656_SOURCES) $(unit1657_SOURCES) \
-
	$(unit1660_SOURCES) $(unit1661_SOURCES) $(unit1663_SOURCES) \
-
	$(unit1664_SOURCES) $(unit2600_SOURCES) $(unit2601_SOURCES) \
-
	$(unit2602_SOURCES) $(unit2603_SOURCES) $(unit2604_SOURCES) \
-
	$(unit3200_SOURCES) $(unit3205_SOURCES) \
+
	$(unit1655_SOURCES) $(unit1656_SOURCES) $(unit1660_SOURCES) \
+
	$(unit1661_SOURCES) $(unit1663_SOURCES) $(unit2600_SOURCES) \
+
	$(unit2601_SOURCES) $(unit2602_SOURCES) $(unit2603_SOURCES) \
+
	$(unit2604_SOURCES) $(unit3200_SOURCES) $(unit3205_SOURCES) \
	$(nodist_units_SOURCES)
DIST_SOURCES = $(am__unit1300_SOURCES_DIST) \
	$(am__unit1302_SOURCES_DIST) $(am__unit1303_SOURCES_DIST) \
@@ -744,9 +724,8 @@ DIST_SOURCES = $(am__unit1300_SOURCES_DIST) \
	$(am__unit1651_SOURCES_DIST) $(am__unit1652_SOURCES_DIST) \
	$(am__unit1653_SOURCES_DIST) $(am__unit1654_SOURCES_DIST) \
	$(am__unit1655_SOURCES_DIST) $(am__unit1656_SOURCES_DIST) \
-
	$(am__unit1657_SOURCES_DIST) $(am__unit1660_SOURCES_DIST) \
-
	$(am__unit1661_SOURCES_DIST) $(am__unit1663_SOURCES_DIST) \
-
	$(am__unit1664_SOURCES_DIST) $(am__unit2600_SOURCES_DIST) \
+
	$(am__unit1660_SOURCES_DIST) $(am__unit1661_SOURCES_DIST) \
+
	$(am__unit1663_SOURCES_DIST) $(am__unit2600_SOURCES_DIST) \
	$(am__unit2601_SOURCES_DIST) $(am__unit2602_SOURCES_DIST) \
	$(am__unit2603_SOURCES_DIST) $(am__unit2604_SOURCES_DIST) \
	$(am__unit3200_SOURCES_DIST) $(am__unit3205_SOURCES_DIST)
@@ -778,6 +757,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+
APACHECTL = @APACHECTL@
APXS = @APXS@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
@@ -802,10 +782,31 @@ CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
CURL_CA_EMBED = @CURL_CA_EMBED@
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
CURL_CPP = @CURL_CPP@
+
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_IPFS = @CURL_DISABLE_IPFS@
+
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+
CURL_DISABLE_MQTT = @CURL_DISABLE_MQTT@
+
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_DISABLE_WEBSOCKETS = @CURL_DISABLE_WEBSOCKETS@
CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX = @CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX@
CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME = @CURL_LIBCURL_VERSIONED_SYMBOLS_SONAME@
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+
CURL_WITH_MULTI_SSL = @CURL_WITH_MULTI_SSL@
CYGPATH_W = @CYGPATH_W@
+
DEFAULT_SSL_BACKEND = @DEFAULT_SSL_BACKEND@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
@@ -824,14 +825,22 @@ FILECMD = @FILECMD@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@
GCOV = @GCOV@
GREP = @GREP@
+
HAVE_BROTLI = @HAVE_BROTLI@
+
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
HAVE_LIBZ = @HAVE_LIBZ@
+
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+
HAVE_PROTO_BSDSOCKET_H = @HAVE_PROTO_BSDSOCKET_H@
+
HAVE_ZSTD = @HAVE_ZSTD@
HTTPD = @HTTPD@
HTTPD_NGHTTPX = @HTTPD_NGHTTPX@
+
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@
@@ -870,6 +879,9 @@ 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@
RANLIB = @RANLIB@
RC = @RC@
@@ -877,10 +889,46 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SSL_BACKENDS = @SSL_BACKENDS@
+
SSL_ENABLED = @SSL_ENABLED@
+
SSL_LIBS = @SSL_LIBS@
STRIP = @STRIP@
SUPPORT_FEATURES = @SUPPORT_FEATURES@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
TEST_NGHTTPX = @TEST_NGHTTPX@
+
USE_APPLE_IDN = @USE_APPLE_IDN@
+
USE_ARES = @USE_ARES@
+
USE_BEARSSL = @USE_BEARSSL@
+
USE_GNUTLS = @USE_GNUTLS@
+
USE_HYPER = @USE_HYPER@
+
USE_LIBPSL = @USE_LIBPSL@
+
USE_LIBRTMP = @USE_LIBRTMP@
+
USE_LIBSSH = @USE_LIBSSH@
+
USE_LIBSSH2 = @USE_LIBSSH2@
+
USE_LIBUV = @USE_LIBUV@
+
USE_MBEDTLS = @USE_MBEDTLS@
+
USE_MSH3 = @USE_MSH3@
+
USE_NGHTTP2 = @USE_NGHTTP2@
+
USE_NGHTTP3 = @USE_NGHTTP3@
+
USE_NGTCP2 = @USE_NGTCP2@
+
USE_NGTCP2_CRYPTO_BORINGSSL = @USE_NGTCP2_CRYPTO_BORINGSSL@
+
USE_NGTCP2_CRYPTO_GNUTLS = @USE_NGTCP2_CRYPTO_GNUTLS@
+
USE_NGTCP2_CRYPTO_QUICTLS = @USE_NGTCP2_CRYPTO_QUICTLS@
+
USE_NGTCP2_CRYPTO_WOLFSSL = @USE_NGTCP2_CRYPTO_WOLFSSL@
+
USE_NGTCP2_H3 = @USE_NGTCP2_H3@
+
USE_OPENLDAP = @USE_OPENLDAP@
+
USE_OPENSSL_H3 = @USE_OPENSSL_H3@
+
USE_OPENSSL_QUIC = @USE_OPENSSL_QUIC@
+
USE_QUICHE = @USE_QUICHE@
+
USE_RUSTLS = @USE_RUSTLS@
+
USE_SCHANNEL = @USE_SCHANNEL@
+
USE_SECTRANSP = @USE_SECTRANSP@
+
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+
USE_WIN32_CRYPTO = @USE_WIN32_CRYPTO@
+
USE_WIN32_LARGE_FILES = @USE_WIN32_LARGE_FILES@
+
USE_WIN32_SMALL_FILES = @USE_WIN32_SMALL_FILES@
+
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+
USE_WOLFSSH = @USE_WOLFSSH@
+
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
VSFTPD = @VSFTPD@
@@ -999,8 +1047,8 @@ LDADD = $(top_builddir)/src/libcurltool.la \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit1608 unit1609 unit1610 unit1611 unit1612 unit1614 unit1615 unit1616 \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit1620 unit1621 \
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit1650 unit1651 unit1652 unit1653 unit1654 unit1655 unit1656 unit1657 \
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit1660 unit1661 unit1663 unit1664 \
+
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit1650 unit1651 unit1652 unit1653 unit1654 unit1655 unit1656 \
+
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit1660 unit1661 unit1663 \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit2600 unit2601 unit2602 unit2603 unit2604 \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit3200 \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@ unit3205
@@ -1046,11 +1094,9 @@ LDADD = $(top_builddir)/src/libcurltool.la \
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit1654_SOURCES = unit1654.c $(UNITFILES)
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit1655_SOURCES = unit1655.c $(UNITFILES)
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit1656_SOURCES = unit1656.c $(UNITFILES)
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit1657_SOURCES = unit1657.c $(UNITFILES)
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit1660_SOURCES = unit1660.c $(UNITFILES)
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit1661_SOURCES = unit1661.c $(UNITFILES)
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit1663_SOURCES = unit1663.c $(UNITFILES)
-
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit1664_SOURCES = unit1664.c $(UNITFILES)
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit2600_SOURCES = unit2600.c $(UNITFILES)
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit2601_SOURCES = unit2601.c $(UNITFILES)
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_FALSE@unit2602_SOURCES = unit2602.c $(UNITFILES)
@@ -1278,10 +1324,6 @@ unit1656$(EXEEXT): $(unit1656_OBJECTS) $(unit1656_DEPENDENCIES) $(EXTRA_unit1656
	@rm -f unit1656$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(unit1656_OBJECTS) $(unit1656_LDADD) $(LIBS)

-
unit1657$(EXEEXT): $(unit1657_OBJECTS) $(unit1657_DEPENDENCIES) $(EXTRA_unit1657_DEPENDENCIES) 
-
	@rm -f unit1657$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(unit1657_OBJECTS) $(unit1657_LDADD) $(LIBS)
-

unit1660$(EXEEXT): $(unit1660_OBJECTS) $(unit1660_DEPENDENCIES) $(EXTRA_unit1660_DEPENDENCIES) 
	@rm -f unit1660$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(unit1660_OBJECTS) $(unit1660_LDADD) $(LIBS)
@@ -1294,10 +1336,6 @@ unit1663$(EXEEXT): $(unit1663_OBJECTS) $(unit1663_DEPENDENCIES) $(EXTRA_unit1663
	@rm -f unit1663$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(unit1663_OBJECTS) $(unit1663_LDADD) $(LIBS)

-
unit1664$(EXEEXT): $(unit1664_OBJECTS) $(unit1664_DEPENDENCIES) $(EXTRA_unit1664_DEPENDENCIES) 
-
	@rm -f unit1664$(EXEEXT)
-
	$(AM_V_CCLD)$(LINK) $(unit1664_OBJECTS) $(unit1664_LDADD) $(LIBS)
-

unit2600$(EXEEXT): $(unit2600_OBJECTS) $(unit2600_DEPENDENCIES) $(EXTRA_unit2600_DEPENDENCIES) 
	@rm -f unit2600$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(unit2600_OBJECTS) $(unit2600_LDADD) $(LIBS)
@@ -1379,11 +1417,9 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1654.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1655.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1656.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1657.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1660.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1661.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1663.Po@am__quote@ # am--include-marker
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit1664.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit2600.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit2601.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit2602.Po@am__quote@ # am--include-marker
@@ -1598,11 +1634,9 @@ distclean: distclean-am
	-rm -f ./$(DEPDIR)/unit1654.Po
	-rm -f ./$(DEPDIR)/unit1655.Po
	-rm -f ./$(DEPDIR)/unit1656.Po
-
	-rm -f ./$(DEPDIR)/unit1657.Po
	-rm -f ./$(DEPDIR)/unit1660.Po
	-rm -f ./$(DEPDIR)/unit1661.Po
	-rm -f ./$(DEPDIR)/unit1663.Po
-
	-rm -f ./$(DEPDIR)/unit1664.Po
	-rm -f ./$(DEPDIR)/unit2600.Po
	-rm -f ./$(DEPDIR)/unit2601.Po
	-rm -f ./$(DEPDIR)/unit2602.Po
@@ -1698,11 +1732,9 @@ maintainer-clean: maintainer-clean-am
	-rm -f ./$(DEPDIR)/unit1654.Po
	-rm -f ./$(DEPDIR)/unit1655.Po
	-rm -f ./$(DEPDIR)/unit1656.Po
-
	-rm -f ./$(DEPDIR)/unit1657.Po
	-rm -f ./$(DEPDIR)/unit1660.Po
	-rm -f ./$(DEPDIR)/unit1661.Po
	-rm -f ./$(DEPDIR)/unit1663.Po
-
	-rm -f ./$(DEPDIR)/unit1664.Po
	-rm -f ./$(DEPDIR)/unit2600.Po
	-rm -f ./$(DEPDIR)/unit2601.Po
	-rm -f ./$(DEPDIR)/unit2602.Po
@@ -1751,11 +1783,8 @@ uninstall-am:
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_TRUE@unit_bundle.c: $(top_srcdir)/tests/mk-bundle.pl
@BUILD_UNITTESTS_TRUE@@USE_TEST_BUNDLES_TRUE@	@PERL@ $(top_srcdir)/tests/mk-bundle.pl $(srcdir) > unit_bundle.c

-
# ignore generated C files since they play by slightly different rules!
checksrc:
-
	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) \
-
	  -W$(srcdir)/unit_bundle.c \
-
	  $(srcdir)/*.[ch])
+
	$(CHECKSRC)@PERL@ $(top_srcdir)/scripts/checksrc.pl $(srcdir)/*.[ch]

# 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.
modified external/curl/tests/unit/Makefile.inc
@@ -38,8 +38,8 @@ UNITPROGS = unit1300 unit1302 unit1303 unit1304 unit1305 unit1307 \
 unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \
 unit1608 unit1609 unit1610 unit1611 unit1612 unit1614 unit1615 unit1616 \
 unit1620 unit1621 \
-
 unit1650 unit1651 unit1652 unit1653 unit1654 unit1655 unit1656 unit1657 \
-
 unit1660 unit1661 unit1663 unit1664 \
+
 unit1650 unit1651 unit1652 unit1653 unit1654 unit1655 unit1656 \
+
 unit1660 unit1661 unit1663 \
 unit2600 unit2601 unit2602 unit2603 unit2604 \
 unit3200 \
 unit3205
@@ -126,16 +126,12 @@ unit1655_SOURCES = unit1655.c $(UNITFILES)

unit1656_SOURCES = unit1656.c $(UNITFILES)

-
unit1657_SOURCES = unit1657.c $(UNITFILES)
-

unit1660_SOURCES = unit1660.c $(UNITFILES)

unit1661_SOURCES = unit1661.c $(UNITFILES)

unit1663_SOURCES = unit1663.c $(UNITFILES)

-
unit1664_SOURCES = unit1664.c $(UNITFILES)
-

unit2600_SOURCES = unit2600.c $(UNITFILES)

unit2601_SOURCES = unit2601.c $(UNITFILES)
modified external/curl/tests/unit/README.md
@@ -12,9 +12,9 @@ big and complicated, we should split them into smaller and testable ones.
## Build Unit Tests

`./configure --enable-debug` is required for the unit tests to build. To
-
enable unit tests, there is a separate static libcurl built that is used
-
exclusively for linking unit test programs. Just build everything as normal,
-
and then you can run the unit test cases as well.
+
enable unit tests, there will be a separate static libcurl built that will be
+
used exclusively for linking unit test programs. Just build everything as
+
normal, and then you can run the unit test cases as well.

## Run Unit Tests

@@ -25,8 +25,8 @@ can `cd tests` and `make` and then invoke individual unit tests with

## Debug Unit Tests

-
If a specific test fails you get told. The test case then has output left in
-
the %LOGDIR subdirectory, but most importantly you can re-run the test again
+
If a specific test fails you will get told. The test case then has output left
+
in the %LOGDIR subdirectory, but most importantly you can re-run the test again
using gdb by doing `./runtests.pl -g NNNN`. That is, add a `-g` to make it
start up gdb and run the same case using that.

@@ -37,7 +37,7 @@ source file. The source file should be named `unitNNNN.c` where `NNNN` is a
previously unused number.

Add your test to `tests/unit/Makefile.inc` (if it is a unit test). Add your
-
test data filename to `tests/data/Makefile.am`
+
test data file name to `tests/data/Makefile.am`

You also need a separate file called `tests/data/testNNNN` (using the same
number) that describes your test case. See the test1300 file for inspiration
modified external/curl/tests/unit/curlcheck.h
@@ -84,7 +84,7 @@
    }                                                                   \
  } while(0)

-
#define unittest_abort(msg)                                   \
+
#define abort_test(msg)                                       \
  do {                                                        \
    fprintf(stderr, "%s:%d test ABORTED: '%s'\n",             \
            __FILE__, __LINE__, msg);                         \
modified external/curl/tests/unit/unit1398.c
@@ -23,7 +23,7 @@
 ***************************************************************************/
#include "curlcheck.h"

-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat"
#endif
@@ -186,6 +186,6 @@ fail_unless(rc == 128, "return code should be 128");

UNITTEST_STOP

-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif
modified external/curl/tests/unit/unit1652.c
@@ -92,7 +92,7 @@ static int verify(const char *info, const char *two)

UNITTEST_START

-
#if defined(CURL_GNUC_DIAG) && !defined(__clang__)
+
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat"
#pragma GCC diagnostic ignored "-Wformat-zero-length"
@@ -146,7 +146,7 @@ Curl_infof(testdata, "%s", input);
fail_unless(strlen(output) == 2051, "Truncation of infof input 3");
fail_unless(output[sizeof(output) - 1] == '\0', "Truncation of infof input 3");

-
#if defined(CURL_GNUC_DIAG) && !defined(__clang__)
+
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic pop
#endif

deleted external/curl/tests/unit/unit1657.c
@@ -1,134 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "curlcheck.h"
-

-
#include "vtls/x509asn1.h"
-

-
static CURLcode unit_setup(void)
-
{
-
  return CURLE_OK;
-
}
-

-
static void unit_stop(void)
-
{
-

-
}
-

-
#if defined(USE_GNUTLS) || defined(USE_SCHANNEL) || defined(USE_SECTRANSP) || \
-
  defined(USE_MBEDTLS)
-

-
#ifndef ARRAYSIZE
-
#define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0]))
-
#endif
-

-
struct test1657_spec {
-
  CURLcode (*setbuf)(struct test1657_spec *spec, struct dynbuf *buf);
-
  size_t n;
-
  CURLcode exp_result;
-
};
-

-
static CURLcode make1657_nested(struct test1657_spec *spec, struct dynbuf *buf)
-
{
-
  CURLcode r;
-
  size_t i;
-
  unsigned char open_undef[] = { 0x32,  0x80 };
-
  unsigned char close_undef[] = { 0x00,  0x00 };
-

-
  for(i = 0; i < spec->n; ++i) {
-
    r = Curl_dyn_addn(buf, open_undef, sizeof(open_undef));
-
    if(r)
-
      return r;
-
  }
-
  for(i = 0; i < spec->n; ++i) {
-
    r = Curl_dyn_addn(buf, close_undef, sizeof(close_undef));
-
    if(r)
-
      return r;
-
  }
-
  return CURLE_OK;
-
}
-

-
static struct test1657_spec test1657_specs[] = {
-
  { make1657_nested, 3, CURLE_OK },
-
  { make1657_nested, 16, CURLE_OK },
-
  { make1657_nested, 17, CURLE_BAD_FUNCTION_ARGUMENT },
-
  { make1657_nested, 1024, CURLE_BAD_FUNCTION_ARGUMENT },
-
};
-

-
static bool do_test1657(struct test1657_spec *spec, size_t i,
-
                        struct dynbuf *buf)
-
{
-
  CURLcode result;
-
  struct Curl_asn1Element elem;
-
  const char *in;
-

-
  memset(&elem, 0, sizeof(elem));
-
  Curl_dyn_reset(buf);
-
  result = spec->setbuf(spec, buf);
-
  if(result) {
-
    fprintf(stderr, "test %zu: error setting buf %d\n", i, result);
-
    return FALSE;
-
  }
-
  in = Curl_dyn_ptr(buf);
-
  result = Curl_x509_getASN1Element(&elem, in, in + Curl_dyn_len(buf));
-
  if(result != spec->exp_result) {
-
    fprintf(stderr, "test %zu: expect result %d, got %d\n",
-
            i, spec->exp_result, result);
-
    return FALSE;
-
  }
-
  return TRUE;
-
}
-

-
UNITTEST_START
-
{
-
  size_t i;
-
  bool all_ok = TRUE;
-
  struct dynbuf dbuf;
-

-
  Curl_dyn_init(&dbuf, 32*1024);
-

-
  if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
-
    fprintf(stderr, "curl_global_init() failed\n");
-
    return TEST_ERR_MAJOR_BAD;
-
  }
-

-
  for(i = 0; i < ARRAYSIZE(test1657_specs); ++i) {
-
    if(!do_test1657(&test1657_specs[i], i, &dbuf))
-
      all_ok = FALSE;
-
  }
-
  fail_unless(all_ok, "some tests of Curl_x509_getASN1Element() fails");
-

-
  Curl_dyn_free(&dbuf);
-
  curl_global_cleanup();
-
}
-
UNITTEST_STOP
-

-
#else
-

-
UNITTEST_START
-
{
-
  puts("not tested since Curl_x509_getASN1Element() is not built-in");
-
}
-
UNITTEST_STOP
-

-
#endif
modified external/curl/tests/unit/unit1660.c
@@ -156,7 +156,7 @@ UNITTEST_START
    }

    chost = headers[i].chost ? headers[i].chost : headers[i].host;
-
    e = Curl_hsts(h, chost, strlen(chost), TRUE);
+
    e = Curl_hsts(h, chost, TRUE);
    showsts(e, chost);
  }

@@ -165,7 +165,7 @@ UNITTEST_START
  /* verify that it is exists for 7 seconds */
  chost = "expire.example";
  for(i = 100; i < 110; i++) {
-
    e = Curl_hsts(h, chost, strlen(chost), TRUE);
+
    e = Curl_hsts(h, chost, TRUE);
    showsts(e, chost);
    deltatime++; /* another second passed */
  }
deleted external/curl/tests/unit/unit1664.c
@@ -1,254 +0,0 @@
-
/***************************************************************************
-
 *                                  _   _ ____  _
-
 *  Project                     ___| | | |  _ \| |
-
 *                             / __| | | | |_) | |
-
 *                            | (__| |_| |  _ <| |___
-
 *                             \___|\___/|_| \_\_____|
-
 *
-
 * Copyright (C) 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.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.
-
 *
-
 * SPDX-License-Identifier: curl
-
 *
-
 ***************************************************************************/
-
#include "curlcheck.h"
-

-
#ifdef HAVE_NETINET_IN_H
-
#include <netinet/in.h>
-
#endif
-
#ifdef HAVE_NETINET_IN6_H
-
#include <netinet/in6.h>
-
#endif
-

-
#include <curl/curl.h>
-

-
#include "strparse.h"
-

-
#include "memdebug.h" /* LAST include file */
-

-
static CURLcode unit_setup(void)
-
{
-
  CURLcode res = CURLE_OK;
-
  global_init(CURL_GLOBAL_ALL);
-
  return res;
-
}
-

-
static void unit_stop(void)
-
{
-
  curl_global_cleanup();
-
}
-

-
UNITTEST_START
-
{
-
  static const char *wordparse[] = {
-
    "word",
-
    "word ",
-
    " word ",
-
    "wo rd",
-
    "word(",
-
    "wor(d",
-
    "perfect",
-
    "",
-
    "longerth",
-
    NULL
-
  };
-

-
  int i;
-
  printf("Curl_str_word\n");
-
  for(i = 0; wordparse[i]; i++) {
-
    struct Curl_str out;
-
    char *line = (char *)wordparse[i];
-
    char *orgline = line;
-
    int rc = Curl_str_word(&line, &out, 7);
-
    printf("%u: (\"%s\") %d, \"%.*s\" [%d], line %d\n",
-
           i, orgline, rc, (int)out.len, out.str, (int)out.len,
-
           (int)(line - orgline));
-
  }
-

-
  printf("Curl_str_until\n");
-
  for(i = 0; wordparse[i]; i++) {
-
    struct Curl_str out;
-
    char *line = (char *)wordparse[i];
-
    char *orgline = line;
-
    int rc = Curl_str_until(&line, &out, 7, 'd');
-
    printf("%u: (\"%s\") %d, \"%.*s\" [%d], line %d\n",
-
           i, orgline, rc, (int)out.len, out.str, (int)out.len,
-
           (int)(line - orgline));
-
  }
-

-
  {
-
    static const char *qwords[] = {
-
      "\"word\"",
-
      "\"word",
-
      "word\"",
-
      "\"word\"\"",
-
      "\"word\" ",
-
      " \"word\"",
-
      "\"perfect\"",
-
      "\"p r e t\"",
-
      "\"perfec\\\"",
-
      "\"\"",
-
      "",
-
      "\"longerth\"",
-
      NULL
-
    };
-

-
    printf("Curl_str_quotedword\n");
-
    for(i = 0; qwords[i]; i++) {
-
      struct Curl_str out;
-
      char *line = (char *)qwords[i];
-
      char *orgline = line;
-
      int rc = Curl_str_quotedword(&line, &out, 7);
-
      printf("%u: (\"%s\") %d, \"%.*s\" [%d], line %d\n",
-
             i, orgline, rc, (int)out.len, out.str, (int)out.len,
-
             (int)(line - orgline));
-
    }
-
  }
-

-
  {
-
    static const char *single[] = {
-
      "a",
-
      "aa",
-
      "A",
-
      "b",
-
      "\\",
-
      " ",
-
      "",
-
      NULL
-
    };
-
    printf("Curl_str_single\n");
-
    for(i = 0; single[i]; i++) {
-
      char *line = (char *)single[i];
-
      char *orgline = line;
-
      int rc = Curl_str_single(&line, 'a');
-
      printf("%u: (\"%s\") %d, line %d\n",
-
             i, orgline, rc, (int)(line - orgline));
-
    }
-
  }
-
  {
-
    static const char *single[] = {
-
      "a",
-
      "aa",
-
      "A",
-
      "b",
-
      "\\",
-
      " ",
-
      "\t",
-
      "\n",
-
      "",
-
      NULL
-
    };
-
    printf("Curl_str_singlespace\n");
-
    for(i = 0; single[i]; i++) {
-
      char *line = (char *)single[i];
-
      char *orgline = line;
-
      int rc = Curl_str_singlespace(&line);
-
      printf("%u: (\"%s\") %d, line %d\n",
-
             i, orgline, rc, (int)(line - orgline));
-
    }
-
  }
-

-
  {
-
    static const char *single[] = {
-
      "a",
-
      "aa",
-
      "A",
-
      "b",
-
      "\\",
-
      " ",
-
      "",
-
      NULL
-
    };
-
    printf("Curl_str_single\n");
-
    for(i = 0; single[i]; i++) {
-
      char *line = (char *)single[i];
-
      char *orgline = line;
-
      int rc = Curl_str_single(&line, 'a');
-
      printf("%u: (\"%s\") %d, line %d\n",
-
             i, orgline, rc, (int)(line - orgline));
-
    }
-
  }
-
  {
-
    static const char *nums[] = {
-
      "1",
-
      "10000",
-
      "1234",
-
      "1235",
-
      "1236",
-
      "01234",
-
      "00000000000000000000000000001234",
-
      "0123 345",
-
      "0123O345",
-
      "-12",
-
      " 123",
-
      "",
-
      NULL
-
    };
-
    printf("Curl_str_number\n");
-
    for(i = 0; nums[i]; i++) {
-
      size_t num;
-
      char *line = (char *)nums[i];
-
      char *orgline = line;
-
      int rc = Curl_str_number(&line, &num, 1235);
-
      printf("%u: (\"%s\") %d, [%u] line %d\n",
-
             i, orgline, rc, (int)num, (int)(line - orgline));
-
    }
-
  }
-

-
  {
-
    /* SIZE_T_MAX is typically 18446744073709551615 */
-
    static const char *nums[] = {
-
      "9223372036854775808", /* 2^63 */
-
      "9223372036854775809", /* 2^63 + 1 */
-
      "18446744073709551615", /* 2^64 - 1 */
-
      "18446744073709551616", /* 2^64 */
-
      "18446744073709551617", /* 2^64 + 1 */
-
      NULL
-
    };
-
    printf("Curl_str_number / max\n");
-
    for(i = 0; nums[i]; i++) {
-
      size_t num;
-
      char *line = (char *)nums[i];
-
      char *orgline = line;
-
      int rc = Curl_str_number(&line, &num, SIZE_T_MAX);
-
      printf("%u: (\"%s\") %d, [%zu] line %d\n",
-
             i, orgline, rc, num, (int)(line - orgline));
-
    }
-
  }
-

-
  {
-
    static const char *newl[] = {
-
      "a",
-
      "aa",
-
      "A",
-
      "b",
-
      "\\",
-
      " ",
-
      "\n",
-
      "\r",
-
      "\r\n",
-
      "",
-
      NULL
-
    };
-
    printf("Curl_str_newline\n");
-
    for(i = 0; newl[i]; i++) {
-
      char *line = (char *)newl[i];
-
      char *orgline = line;
-
      int rc = Curl_str_newline(&line);
-
      printf("%u: (\"%s\") %d, line %d\n",
-
             i, orgline, rc, (int)(line - orgline));
-
    }
-
  }
-

-
}
-
UNITTEST_STOP
modified external/curl/tests/unit/unit2604.c
@@ -46,7 +46,7 @@ struct set {
UNITTEST_START
#ifdef USE_SSH
{
-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverlength-strings"
#endif
@@ -78,7 +78,7 @@ UNITTEST_START
    { NULL, NULL, NULL, NULL, CURLE_OK }
  };

-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic warning "-Woverlength-strings"
#endif

@@ -114,7 +114,7 @@ UNITTEST_START

  free((void *)list[0].cp);
}
-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif

modified external/curl/tests/unit/unit3200.c
@@ -22,8 +22,6 @@
 *
 ***************************************************************************/
#include "curlcheck.h"
-
/* disable the curlx_get_line redefinitions for this unit test */
-
#define BUILDING_LIBCURL
#include "curl_get_line.h"
#include "memdebug.h"

@@ -49,7 +47,7 @@ static CURLcode unit_stop(void)
  return CURLE_OK;
}

-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverlength-strings"
#endif
@@ -80,7 +78,7 @@ static const char *filecontents[] = {
  "LINE1\x1aTEST"
};

-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic warning "-Woverlength-strings"
#endif

@@ -175,7 +173,7 @@ UNITTEST_START
  return (CURLcode)rc;
UNITTEST_STOP

-
#if defined(CURL_GNUC_DIAG) || defined(__clang__)
+
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif

modified external/curl/tests/valgrind.supp
@@ -1,4 +1,13 @@
{
+
   zstd_decompression-1.3.3-on-Ubuntu-18.04_with_hyper
+
   Memcheck:Cond
+
   fun:ZSTD_decompressStream
+
   fun:zstd_unencode_write
+
   fun:Curl_unencode_write
+
   fun:hyper_body_chunk
+
}
+

+
{
   zstd_decompression-1.3.3-on-Ubuntu-18.04
   Memcheck:Cond
   fun:ZSTD_decompressStream
modified external/curl/winbuild/Makefile.vc
@@ -22,21 +22,6 @@
#
#***************************************************************************

-
!MESSAGE
-
!MESSAGE WARNING:
-
!MESSAGE
-
!MESSAGE The winbuild build system is deprecated and will be removed in
-
!MESSAGE September 2025 in favor of the CMake build system.
-
!MESSAGE
-
!MESSAGE Please see docs/INSTALL-CMAKE.md : "Migrating from winbuild builds"
-
!MESSAGE
-
!MESSAGE To use the winbuild build system you must acknowledge this warning by
-
!MESSAGE setting command line option WINBUILD_ACKNOWLEDGE_DEPRECATED=yes
-
!MESSAGE
-
!IF "$(WINBUILD_ACKNOWLEDGE_DEPRECATED)"!="yes"
-
!ERROR The user must acknowledge the deprecation warning to continue.
-
!ENDIF
-

!IF "$(MODE)"=="static"
TARGET = $(LIB_NAME_STATIC)
AS_DLL = false
@@ -61,7 +46,11 @@ CFGSET=true
LIBCURL_OBJS=$(CSOURCES:.c=.obj)

!INCLUDE "../src/Makefile.inc"
-
CURL_OBJS=$(CURL_CFILES:.c=.obj)
+

+
# tool_hugehelp has a special rule
+
CURL_OBJS=$(CURL_CFILES:tool_hugehelp.c=)
+

+
CURL_OBJS=$(CURL_OBJS:.c=.obj)


# backwards compatible check for USE_SSPI
modified external/curl/winbuild/MakefileBuild.vc
@@ -99,11 +99,6 @@ CURL_RESFLAGS = /i../include
LIBCURL_SRC_DIR = ..\lib
CURL_SRC_DIR = ..\src

-
!IF EXISTS($(CURL_SRC_DIR)\tool_hugehelp.c)
-
USE_MANUAL   = true
-
CFLAGS       = $(CFLAGS) /DUSE_MANUAL
-
!ENDIF
-

!IFNDEF WITH_DEVEL
WITH_DEVEL   = ../../deps
!ENDIF
@@ -689,20 +684,15 @@ CURL_LIBCURL_LIBNAME=$(LIB_NAME_IMP)
!ENDIF
!ENDIF

-
CURL_FROM_LIBCURL=\
+
CURL_FROM_LIBCURL=$(CURL_DIROBJ)\tool_hugehelp.obj \
 $(CURL_DIROBJ)\nonblock.obj \
 $(CURL_DIROBJ)\strtoofft.obj \
 $(CURL_DIROBJ)\warnless.obj \
-
 $(CURL_DIROBJ)\curl_get_line.obj \
 $(CURL_DIROBJ)\curl_multibyte.obj \
 $(CURL_DIROBJ)\version_win32.obj \
 $(CURL_DIROBJ)\dynbuf.obj \
 $(CURL_DIROBJ)\base64.obj

-
!IFDEF USE_MANUAL
-
CURL_FROM_LIBCURL = $(CURL_FROM_LIBCURL) $(CURL_DIROBJ)\tool_hugehelp.obj
-
!ENDIF
-

$(PROGRAM_NAME): $(CURL_DIROBJ) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
	$(CURL_LINK) $(CURL_LFLAGS) $(CURL_LIBCURL_LIBNAME) $(WIN_LIBS) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
	$(MANIFESTTOOL)
@@ -710,18 +700,14 @@ $(PROGRAM_NAME): $(CURL_DIROBJ) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
{$(CURL_SRC_DIR)\}.c{$(CURL_DIROBJ)\}.obj::
	$(CURL_CC) $(CURL_CFLAGS) /Fo"$(CURL_DIROBJ)\\"  $<

-
!IFDEF USE_MANUAL
$(CURL_DIROBJ)\tool_hugehelp.obj: $(CURL_SRC_DIR)\tool_hugehelp.c
	$(CURL_CC) $(CURL_CFLAGS) /Zm200 /Fo"$@" $(CURL_SRC_DIR)\tool_hugehelp.c
-
!ENDIF
$(CURL_DIROBJ)\nonblock.obj: ../lib/nonblock.c
	$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/nonblock.c
$(CURL_DIROBJ)\strtoofft.obj: ../lib/strtoofft.c
	$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/strtoofft.c
$(CURL_DIROBJ)\warnless.obj: ../lib/warnless.c
	$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/warnless.c
-
$(CURL_DIROBJ)\curl_get_line.obj: ../lib/curl_get_line.c
-
	$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curl_get_line.c
$(CURL_DIROBJ)\curl_multibyte.obj: ../lib/curl_multibyte.c
	$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curl_multibyte.c
$(CURL_DIROBJ)\version_win32.obj: ../lib/version_win32.c
modified external/curl/winbuild/README.md
@@ -7,9 +7,10 @@ SPDX-License-Identifier: curl
# Building curl with Visual C++

 This document describes how to compile, build and install curl and libcurl
-
 from sources using the Visual C++ build tool. To build with VC++, you have to
-
 first install VC++. The minimum required version of VC is 6 (part of Visual
-
 Studio 6). However using a more recent version is strongly recommended.
+
 from sources using the Visual C++ build tool. To build with VC++, you will of
+
 course have to first install VC++. The minimum required version of VC is 6
+
 (part of Visual Studio 6). However using a more recent version is strongly
+
 recommended.

 VC++ is also part of the Windows Platform SDK. You do not have to install the
 full Visual Studio or Visual C++ if all you want is to build curl.
@@ -20,8 +21,8 @@ SPDX-License-Identifier: curl

## Prerequisites

-
 If you wish to support zlib, OpenSSL, c-ares, ssh2, you have to download them
-
 separately and copy them to the `deps` directory as shown below:
+
 If you wish to support zlib, OpenSSL, c-ares, ssh2, you will have to download
+
 them separately and copy them to the `deps` directory as shown below:

    somedirectory\
     |_curl-src
@@ -35,6 +36,12 @@ SPDX-License-Identifier: curl
 It is also possible to create the `deps` directory in some other random places
 and tell the `Makefile` its location using the `WITH_DEVEL` option.

+
## Building straight from git
+

+
 When you check out code git and build it, as opposed from a released source
+
 code archive, you need to first run the `buildconf.bat` batch file (present
+
 in the source code root directory) to set things up.
+

## Open a command prompt

Open a Visual Studio Command prompt:
@@ -55,14 +62,14 @@ Open a Visual Studio Command prompt:

## Build in the console

-
 Once you are in the console, go to the winbuild directory in the curl
+
 Once you are in the console, go to the winbuild directory in the Curl
 sources:

    cd curl-src\winbuild

 Then you can call `nmake /f Makefile.vc` with the desired options (see
-
 below). The builds are in the top src directory, `builds\` directory, in a
-
 directory named using the options given to the nmake call.
+
 below). The builds will be in the top src directory, `builds\` directory, in
+
 a directory named using the options given to the nmake call.

    nmake /f Makefile.vc mode=<static or dll> <options>

@@ -100,7 +107,6 @@ where `<options>` is one or many of:
 - `WOLFSSL_PATH=<path>`         - Custom path for wolfSSL
 - `NGHTTP2_PATH=<path>`         - Custom path for nghttp2
 - `MSH3_PATH=<path>`            - Custom path for msh3
-
 - `SSH_PATH=<path>`             - Custom path for libssh
 - `SSH2_PATH=<path>`            - Custom path for libssh2
 - `SSL_PATH=<path>`             - Custom path for OpenSSL
 - `ZLIB_PATH=<path>`            - Custom path for zlib
@@ -118,12 +124,12 @@ where `<options>` is one or many of:

## Static linking of Microsoft's C runtime (CRT):

-
 If you are using mode=static, nmake creates and links to the static build of
-
 libcurl but *not* the static CRT. If you must you can force nmake to link in
-
 the static CRT by passing `RTLIBCFG=static`. Typically you shouldn't use that
-
 option, and nmake defaults to the DLL CRT. `RTLIBCFG` is rarely used and
-
 therefore rarely tested. When passing `RTLIBCFG` for a configuration that was
-
 already built but not with that option, or if the option was specified
+
 If you are using mode=static nmake will create and link to the static build
+
 of libcurl but *not* the static CRT. If you must you can force nmake to link
+
 in the static CRT by passing `RTLIBCFG=static`. Typically you shouldn't use
+
 that option, and nmake will default to the DLL CRT. `RTLIBCFG` is rarely used
+
 and therefore rarely tested. When passing `RTLIBCFG` for a configuration that
+
 was already built but not with that option, or if the option was specified
 differently, you must destroy the build directory containing the
 configuration so that nmake can build it from scratch.

@@ -133,17 +139,17 @@ where `<options>` is one or many of:

## Building your own application with libcurl (Visual Studio example)

-
 When you build curl and libcurl, nmake shows the relative path where the
-
 output directory is. The output directory is named from the options nmake
-
 used when building. You may also see temp directories of the same name but
-
 with suffixes -obj-curl and -obj-lib.
+
 When you build curl and libcurl, nmake will show the relative path where the
+
 output directory is. The output directory is named from the options nmake used
+
 when building. You may also see temp directories of the same name but with
+
 suffixes -obj-curl and -obj-lib.

-
 For example let's say you have built curl.exe and libcurl.dll from the Visual
+
 For example let's say you've built curl.exe and libcurl.dll from the Visual
 Studio 2010 x64 Win64 Command Prompt:

    nmake /f Makefile.vc mode=dll VC=10

-
 The output directory has a name similar to
+
 The output directory will have a name similar to
 `..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-schannel`.

 The output directory contains subdirectories bin, lib and include. Those are
@@ -171,14 +177,14 @@ where `<options>` is one or many of:
 need to make a separate x86 build of libcurl.

 If you build libcurl static (`mode=static`) or debug (`DEBUG=yes`) then the
-
 library name varies and separate builds may be necessary for separate
+
 library name will vary and separate builds may be necessary for separate
 configurations of your project within the same platform. This is discussed in
 the next section.

## Building your own application with a static libcurl

 When building an application that uses the static libcurl library on Windows,
-
 you must define `CURL_STATICLIB`. Otherwise the linker looks for dynamic
+
 you must define `CURL_STATICLIB`. Otherwise the linker will look for dynamic
 import symbols.

 The static library name has an `_a` suffix in the basename and the debug
@@ -195,8 +201,8 @@ where `<options>` is one or many of:
## Legacy Windows and SSL

 When you build curl using the build files in this directory the default SSL
-
 backend is Schannel (Windows SSPI), the native SSL library that comes with
-
 the Windows OS. Schannel in Windows 8 and earlier is not able to connect to
-
 servers that no longer support the legacy handshakes and algorithms used by
-
 those versions. If you are using curl in one of those earlier versions of
+
 backend will be Schannel (Windows SSPI), the native SSL library that comes
+
 with the Windows OS. Schannel in Windows 8 and earlier is not able to connect
+
 to servers that no longer support the legacy handshakes and algorithms used by
+
 those versions. If you will be using curl in one of those earlier versions of
 Windows you should choose another SSL backend like OpenSSL.
modified external/curl/winbuild/makedebug.bat
@@ -28,6 +28,6 @@ where.exe nmake.exe >nul 2>&1
if %ERRORLEVEL% EQU 1 (
  echo Error: Cannot find nmake.exe - be sure to run this script from within a Developer Command-Prompt
) else (
-
  nmake.exe /f Makefile.vc MODE=static DEBUG=yes GEN_PDB=yes
+
  nmake.exe /f Makefile.vc mode=static DEBUG=yes GEN_PDB=yes
  if %ERRORLEVEL% NEQ 0 echo Error: Build Failed
)
modified external/libcurl/Makefile.autosetup
@@ -76,7 +76,6 @@ SRCS= \
	urlapi.c \
	warnless.c \
	vtls.c \
-
	vtls_scache.c \
	openssl.c \
	keylog.c \
	hostcheck.c \
@@ -99,9 +98,7 @@ SRCS= \
	cw-out.c \
	request.c \
	socketpair.c \
-
	timediff.c \
-
	strparse.c
-

+
	timediff.c

LOCAL_CFLAGS=	-DHAVE_CONFIG_H \
		-DBUILDING_LIBCURL \