# Maintainer: Alexey Pavlov # Maintainer: Ray Donnelly # Maintainer: Naveen M K # Contributor: Saul Ibarra Corretge # Contributor: Frode Solheim _primary_python="yes" _pybasever=3.13 _realname=python if [[ "${_primary_python}" == "yes" ]]; then pkgbase="mingw-w64-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") provides=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python${_pybasever}") conflicts=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python${_pybasever}" "${MINGW_PACKAGE_PREFIX}-python2<2.7.16-7") replaces=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python${_pybasever}") else pkgbase="mingw-w64-${_realname}${_pybasever}" pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}${_pybasever}") fi pkgver=${_pybasever}.11 pkgrel=4 pkgdesc="A high-level scripting language (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64') license=('spdx:PSF-2.0') url="https://www.python.org/" msys2_repository_url="https://github.com/python/cpython" msys2_references=( "cpe: cpe:/a:python:python" "cpe: cpe:/a:python_software_foundation:python" ) depends=("${MINGW_PACKAGE_PREFIX}-cc-libs" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-bzip2" "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-mpdecimal" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-sqlite3" "${MINGW_PACKAGE_PREFIX}-tcl" "${MINGW_PACKAGE_PREFIX}-tk" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-libb2" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-tzdata") makedepends=( "${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-autotools" "autoconf-archive" ) #options=('debug' '!strip') source=("https://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz" "EXTERNALLY-MANAGED" 0001-build-add-with-nt-threads-and-make-it-default-on-min.patch 0002-build-Define-MS_WINDOWS-and-others-when-compiling-wi.patch 0003-sysmodule-Implement-flags-_is_mingw-is_mingw_ucrt-an.patch 0004-configure-add-MACHDEP-and-platform-on-MINGW.patch 0005-build-Add-default-cross-configuration-for-MINGW.patch 0006-configure-enable-largefile-support-by-default-for-Mi.patch 0007-build-Add-PC-to-CPPFLAGS-and-to-SRCDIRS-on-Mingw.patch 0008-build-add-MINGW-support-for-posixmodule.patch 0009-exports.h-Add-support-for-MINGW.patch 0010-configure-add-options-so-that-shared-build-is-possib.patch 0011-build-Add-PYD_PLATFORM_TAG.patch 0012-build-Add-dynload_win-support-for-MinGW.patch 0013-build-Use-.pyd-extension-suffix-fix-import-lib-insta.patch 0014-build-Configure-SOABI-and-EXT_SUFFIX-for-MINGW.patch 0015-build-Define-MS_DLL_ID-for-sys.winver-on-MINGW.patch 0016-build-Ignore-main-program-for-frozen-scripts-on-MING.patch 0017-socketmodule-add-MINGW-support.patch 0018-build-enable-winreg-msvcrt-_winapi-winsound-and-_ove.patch 0019-sysconfig-make-_sysconfigdata.py-relocatable.patch 0020-sysconfig-treat-MINGW-builds-as-POSIX-builds.patch 0021-sysconfig-Change-the-get_platform-method-in-sysconfi.patch 0022-build-semi-native-build-sysconfig.patch 0023-ctypes-Add-support-for-stdcall-without-underscore.patch 0024-ctypes-add-suppor-for-ctypes.pythonapi-under-MINGW.patch 0025-ctypes-find_library-c-should-return-None-with-ucrt.patch 0026-site-Customize-for-MINGW.patch 0027-site-Change-user-site-packages-path-to-include-the-e.patch 0028-python-config-output-Windows-paths-for-the-shell-var.patch 0029-python-config-use-the-Python-variant-of-python-confi.patch 0030-mingw-prefer-unix-sep-if-MSYSTEM-environment-variabl.patch 0031-build-Remove-MAXPATHLEN-default.patch 0032-build-dont-link-with-gettext.patch 0033-use-gnu_printf-in-format.patch 0034-build-remove-usage-of-MS_COREDLL.patch 0035-getcompiler-expose-MINGW-toolchain-related-informati.patch 0036-build-fix-signal-module-build.patch 0037-build-build-winconsoleio-and-_testconsole.patch 0038-multiprocessing-expose-sem_unlink-to-fix-multiproces.patch 0039-Use-cygpty-while-using-isatty.patch 0040-build-link-win-resource-files-and-build-pythonw.patch 0041-pycore_fileutils-add-MINGW-support.patch 0042-configure-fix-inet_pton-check.patch 0043-importlib-bootstrap-path-sep.patch 0044-configure-set-MINGW-stack-reserve.patch 0045-tests-fix-test_bytes.patch 0046-timemodule-add-MINGW-support.patch 0047-configure-Disable-checks-for-dlopen-dlfcn.patch 0048-venvlauncher-Build-venvlauncher.exe-from-PC-launcher.patch 0049-venvlauncher-try-looking-for-the-versioned-.exe-firs.patch 0050-venvlauncher-Skip-find-python-in-Registry-for-mingw-.patch 0051-configure-don-t-check-for-clock_-functions.patch 0052-CI-test-the-build-and-add-some-mingw-specific-tests.patch 0053-configure-Default-to-without-c-locale-coercion-on-Wi.patch 0054-tests-Fix-some-failing-tests.patch 0055-build-def-VPATH-when-compiling-Python-sysmodule.c.patch 0056-configure-correctly-find-native-python.patch 0057-build-Add-extra-flags-for-_bootstrap_python.patch 0058-getpath-add-support-for-mingw.patch 0059-build-Don-t-build-_posixsubprocess-on-Windows.patch 0060-ssl-module-add-MINGW-support.patch 0061-configure-Include-winsock.h-when-checking-for-netdb-.patch 0062-configure-always-build-_multiprocessing-on-Windows.patch 0063-configure-build-mmap-module-on-win32.patch 0064-configure-set-BUILDEXEEXT-and-EXEEXT.patch 0065-configure-fix-building-some-test-modules.patch 0066-Always-convert-to-before-passing-though-pathcch-func.patch 0067-pylifecycle.h-remove-conflicting-_Py_CheckPython3-de.patch 0068-dynload_win-add-env-var-for-reverting-the-legacy-DLL.patch 0069-dynload_win-Port-GetPythonImport-to-MINGW.patch 0070-dynload_win-make-sure-to-only-use-backslashes-for-pa.patch 0071-dynload_win-don-t-run-_Py_CheckPython3-for-MINGW-bui.patch 0072-build-Build-and-install-libpython3.dll-stable-ABI.patch 0073-configure-define-_DEBUG-for-a-debug-build.patch 0074-configure-fix-multiprocessing-module.patch 0075-build-add-MINGW-support-for-selectmodule.patch 0076-configure-disable-various-modules-on-MINGW.patch 0077-configure-Add-libraries-to-fix-ctypes-on-MINGW.patch 0078-configure-Enable-_uuid-on-MINGW.patch 0079-configure-make-incompatible-pointer-types-a-warning.patch 0080-tests-test_makefile-normalize-path.patch 0081-Fix-include-naming-for-cross-build.patch 0082-Fix-format-warning.patch 0083-Fix-pragma-warnings.patch 0084-math-pyhash-MINGW-support.patch 0085-tests-Fix-test-for-library-name.patch 0086-dictobject-MINGW-support.patch 0087-build-Fix-export-Py_GetBuildInfo-symbol.patch 0088-build-Allow-profile-tests-failure.patch 0089-build-add-support-for-building-C-modules.patch 0090-build-build-fix-the-wmi-module.patch 0091-Fix-exports-for-_suggestions-module.patch 0092-compileall-Normalize-paths.patch 0093-configure-enable-64-bit-time-support-for-32-bit-buil.patch 0094-configure-Work-around-broken-pc-file.patch 0095-makesetup-make-sure-a-library-path-is-passed-when-bu.patch 0096-venv-also-install-the-versioned-launchers.patch 0097-configure-set-_WIN32_WINNT-version.patch 0098-tests-fix-sysconfig.test_get_platform.patch 0099-pycore_time-fix-missing-timeval.patch 0100-mmapmodule-define-DONT_USE_SEH.patch 0101-build-Add-ABIFLAGS-to-targets-when-needed.patch 0102-getcompiler-include-GCC-in-sys.version-even-for-clan.patch 0103-sysconfig-patch-nt-schemes-again.patch) # Helper macros to help make tasks easier # apply_patch_with_msg() { for _patch in "$@" do msg2 "Applying ${_patch}" patch -Nbp1 -i "${srcdir}/${_patch}" done } prepare() { cd "${srcdir}/Python-${pkgver}" apply_patch_with_msg 0001-build-add-with-nt-threads-and-make-it-default-on-min.patch \ 0002-build-Define-MS_WINDOWS-and-others-when-compiling-wi.patch \ 0003-sysmodule-Implement-flags-_is_mingw-is_mingw_ucrt-an.patch \ 0004-configure-add-MACHDEP-and-platform-on-MINGW.patch \ 0005-build-Add-default-cross-configuration-for-MINGW.patch \ 0006-configure-enable-largefile-support-by-default-for-Mi.patch \ 0007-build-Add-PC-to-CPPFLAGS-and-to-SRCDIRS-on-Mingw.patch \ 0008-build-add-MINGW-support-for-posixmodule.patch \ 0009-exports.h-Add-support-for-MINGW.patch \ 0010-configure-add-options-so-that-shared-build-is-possib.patch \ 0011-build-Add-PYD_PLATFORM_TAG.patch \ 0012-build-Add-dynload_win-support-for-MinGW.patch \ 0013-build-Use-.pyd-extension-suffix-fix-import-lib-insta.patch \ 0014-build-Configure-SOABI-and-EXT_SUFFIX-for-MINGW.patch \ 0015-build-Define-MS_DLL_ID-for-sys.winver-on-MINGW.patch \ 0016-build-Ignore-main-program-for-frozen-scripts-on-MING.patch \ 0017-socketmodule-add-MINGW-support.patch \ 0018-build-enable-winreg-msvcrt-_winapi-winsound-and-_ove.patch \ 0019-sysconfig-make-_sysconfigdata.py-relocatable.patch \ 0020-sysconfig-treat-MINGW-builds-as-POSIX-builds.patch \ 0021-sysconfig-Change-the-get_platform-method-in-sysconfi.patch \ 0022-build-semi-native-build-sysconfig.patch \ 0023-ctypes-Add-support-for-stdcall-without-underscore.patch \ 0024-ctypes-add-suppor-for-ctypes.pythonapi-under-MINGW.patch \ 0025-ctypes-find_library-c-should-return-None-with-ucrt.patch \ 0026-site-Customize-for-MINGW.patch \ 0027-site-Change-user-site-packages-path-to-include-the-e.patch \ 0028-python-config-output-Windows-paths-for-the-shell-var.patch \ 0029-python-config-use-the-Python-variant-of-python-confi.patch \ 0030-mingw-prefer-unix-sep-if-MSYSTEM-environment-variabl.patch \ 0031-build-Remove-MAXPATHLEN-default.patch \ 0032-build-dont-link-with-gettext.patch \ 0033-use-gnu_printf-in-format.patch \ 0034-build-remove-usage-of-MS_COREDLL.patch \ 0035-getcompiler-expose-MINGW-toolchain-related-informati.patch \ 0036-build-fix-signal-module-build.patch \ 0037-build-build-winconsoleio-and-_testconsole.patch \ 0038-multiprocessing-expose-sem_unlink-to-fix-multiproces.patch \ 0039-Use-cygpty-while-using-isatty.patch \ 0040-build-link-win-resource-files-and-build-pythonw.patch \ 0041-pycore_fileutils-add-MINGW-support.patch \ 0042-configure-fix-inet_pton-check.patch \ 0043-importlib-bootstrap-path-sep.patch \ 0044-configure-set-MINGW-stack-reserve.patch \ 0045-tests-fix-test_bytes.patch \ 0046-timemodule-add-MINGW-support.patch \ 0047-configure-Disable-checks-for-dlopen-dlfcn.patch \ 0048-venvlauncher-Build-venvlauncher.exe-from-PC-launcher.patch \ 0049-venvlauncher-try-looking-for-the-versioned-.exe-firs.patch \ 0050-venvlauncher-Skip-find-python-in-Registry-for-mingw-.patch \ 0051-configure-don-t-check-for-clock_-functions.patch \ 0052-CI-test-the-build-and-add-some-mingw-specific-tests.patch \ 0053-configure-Default-to-without-c-locale-coercion-on-Wi.patch \ 0054-tests-Fix-some-failing-tests.patch \ 0055-build-def-VPATH-when-compiling-Python-sysmodule.c.patch \ 0056-configure-correctly-find-native-python.patch \ 0057-build-Add-extra-flags-for-_bootstrap_python.patch \ 0058-getpath-add-support-for-mingw.patch \ 0059-build-Don-t-build-_posixsubprocess-on-Windows.patch \ 0060-ssl-module-add-MINGW-support.patch \ 0061-configure-Include-winsock.h-when-checking-for-netdb-.patch \ 0062-configure-always-build-_multiprocessing-on-Windows.patch \ 0063-configure-build-mmap-module-on-win32.patch \ 0064-configure-set-BUILDEXEEXT-and-EXEEXT.patch \ 0065-configure-fix-building-some-test-modules.patch \ 0066-Always-convert-to-before-passing-though-pathcch-func.patch \ 0067-pylifecycle.h-remove-conflicting-_Py_CheckPython3-de.patch \ 0068-dynload_win-add-env-var-for-reverting-the-legacy-DLL.patch \ 0069-dynload_win-Port-GetPythonImport-to-MINGW.patch \ 0070-dynload_win-make-sure-to-only-use-backslashes-for-pa.patch \ 0071-dynload_win-don-t-run-_Py_CheckPython3-for-MINGW-bui.patch \ 0072-build-Build-and-install-libpython3.dll-stable-ABI.patch \ 0073-configure-define-_DEBUG-for-a-debug-build.patch \ 0074-configure-fix-multiprocessing-module.patch \ 0075-build-add-MINGW-support-for-selectmodule.patch \ 0076-configure-disable-various-modules-on-MINGW.patch \ 0077-configure-Add-libraries-to-fix-ctypes-on-MINGW.patch \ 0078-configure-Enable-_uuid-on-MINGW.patch \ 0079-configure-make-incompatible-pointer-types-a-warning.patch \ 0080-tests-test_makefile-normalize-path.patch \ 0081-Fix-include-naming-for-cross-build.patch \ 0082-Fix-format-warning.patch \ 0083-Fix-pragma-warnings.patch \ 0084-math-pyhash-MINGW-support.patch \ 0085-tests-Fix-test-for-library-name.patch \ 0086-dictobject-MINGW-support.patch \ 0087-build-Fix-export-Py_GetBuildInfo-symbol.patch \ 0088-build-Allow-profile-tests-failure.patch \ 0089-build-add-support-for-building-C-modules.patch \ 0090-build-build-fix-the-wmi-module.patch \ 0091-Fix-exports-for-_suggestions-module.patch \ 0092-compileall-Normalize-paths.patch \ 0093-configure-enable-64-bit-time-support-for-32-bit-buil.patch \ 0094-configure-Work-around-broken-pc-file.patch \ 0095-makesetup-make-sure-a-library-path-is-passed-when-bu.patch \ 0096-venv-also-install-the-versioned-launchers.patch \ 0097-configure-set-_WIN32_WINNT-version.patch \ 0098-tests-fix-sysconfig.test_get_platform.patch \ 0099-pycore_time-fix-missing-timeval.patch \ 0100-mmapmodule-define-DONT_USE_SEH.patch \ 0101-build-Add-ABIFLAGS-to-targets-when-needed.patch \ 0102-getcompiler-include-GCC-in-sys.version-even-for-clan.patch \ 0103-sysconfig-patch-nt-schemes-again.patch autoreconf -vfi } build() { declare -a _extra_config if check_option "debug" "n"; then _extra_config+=("--enable-optimizations") # Upstream defaults to -O3, so we can do too CFLAGS+=" -O3" # FIXME: https://github.com/msys2-contrib/cpython-mingw/issues/10 if [[ $MINGW_PACKAGE_PREFIX == *-clang-* ]]; then _extra_config+=("--with-lto=full") fi else CFLAGS+=" -O0 -ggdb" CXXFLAGS+=" -O0 -ggdb" _extra_config+=("--with-pydebug") fi mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" ../Python-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --host=${MINGW_CHOST} \ --build=${MINGW_CHOST} \ --enable-shared \ --with-system-expat \ --with-system-ffi \ --with-system-libmpdec \ --without-ensurepip \ --enable-loadable-sqlite-extensions \ --with-tzpath=${MINGW_PREFIX}/share/zoneinfo \ "${_extra_config[@]}" make } check() { cd "${srcdir}/build-${MSYSTEM}" # Some basic tests to ensure nothing major or MSYS2 specific features are broken ./python.exe "../Python-${pkgver}/mingw_smoketests.py" MSYSTEM= ./python.exe "../Python-${pkgver}/mingw_smoketests.py" } package() { cd "${srcdir}/build-${MSYSTEM}" make -j1 install DESTDIR="${pkgdir}" # gdb pretty printers for debugging Python itself; to use: # python # sys.path.append('C:/msys64/mingw64/share/gdb/python3') # import python_gdb # reload(python_gdb) # end if [[ "${_primary_python}" == "yes" ]]; then [[ -d "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/ ]] || mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/ cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/python_gdb.py fi # some useful "stuff" install -dm755 "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/{i18n,scripts} install -m755 "${srcdir}/Python-${pkgver}"/Tools/i18n/{msgfmt,pygettext}.py "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/i18n/ install -m755 "${srcdir}/Python-${pkgver}"/Tools/scripts/{README,*py} "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/scripts/ # License install -Dm644 "${srcdir}/Python-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}${_pybasever}/LICENSE" # PEP668 install -Dm644 "${srcdir}/EXTERNALLY-MANAGED" -t "${pkgdir}${MINGW_PREFIX}/lib/python${_pybasever}/" # fixup shebangs for fscripts in idle3 idle${_pybasever} pydoc3 pydoc${_pybasever}; do sed -e '1 { s|^#!.*$|#!/usr/bin/env python'"${_pybasever}"'.exe| }' -i "${pkgdir}${MINGW_PREFIX}"/bin/${fscripts} done # default aliases for all scripts/binaries if [[ "${_primary_python}" == "yes" ]]; then # Default names are aliases for Python now cp "${pkgdir}${MINGW_PREFIX}"/bin/python3.exe "${pkgdir}${MINGW_PREFIX}"/bin/python.exe cp "${pkgdir}${MINGW_PREFIX}"/bin/python3w.exe "${pkgdir}${MINGW_PREFIX}"/bin/pythonw.exe cp "${pkgdir}${MINGW_PREFIX}"/bin/python3-config "${pkgdir}${MINGW_PREFIX}"/bin/python-config cp "${pkgdir}${MINGW_PREFIX}"/bin/idle3 "${pkgdir}${MINGW_PREFIX}"/bin/idle cp "${pkgdir}${MINGW_PREFIX}"/bin/pydoc3 "${pkgdir}${MINGW_PREFIX}"/bin/pydoc fi # delete anything that could conflict with the primary Python if [[ "${_primary_python}" != "yes" ]]; then rm "${pkgdir}${MINGW_PREFIX}"/bin/python3.exe rm "${pkgdir}${MINGW_PREFIX}"/bin/python3w.exe rm "${pkgdir}${MINGW_PREFIX}"/bin/python3-config rm "${pkgdir}${MINGW_PREFIX}"/bin/idle3 rm "${pkgdir}${MINGW_PREFIX}"/bin/pydoc3 rm "${pkgdir}${MINGW_PREFIX}"/bin/libpython3.dll rm "${pkgdir}${MINGW_PREFIX}"/lib/libpython3.dll.a rm "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/python3-embed.pc rm "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/python3.pc rm "${pkgdir}${MINGW_PREFIX}"/share/man/man1/python3.1 fi } sha256sums=('16ede7bb7cdbfa895d11b0642fa0e523f291e6487194d53cf6d3b338c3a17ea2' '3981fed74ee7d43ad69bd67e634e03d7bf6890558a87062380112e195688728a' 'f22c1a80bdcb52c454f47faecad56a40b3605a0381d12f0d473a4620710dabcb' 'f8bc3bdf1384ced7ad97ad91fc65851fff355324719e97fc454a95fc6246ecc4' '6a99c07bd9c80180ea9a49c1ed615a18183ac43b718efdfb067739b989ef8adc' 'd04a96732cb6c0a464fbf41fc2ccc9fb3ce9154b5aaba5dae654934f265bf1d8' 'c27cf31cd77f1d213ee856ceb18f25726876d1f445fd03d89a4781ceb79cea4b' 'b7d942048a0177d7fd2faefc07e8f10b777c4e1398567e0b7479e7eedb1039e6' 'b808c09ef797e2a563b96fedcb8287daee6ad9fe2846310ecd249db90ba95c33' 'd9a77f5a395ad0cdb3801a288cb89fa7916cda14c13eca8d86a9cf08b1c44495' '710f17418bf87c4baf50847501f3ea4cec18b2c1b44b974b22128dbf0158cabc' '9bd9af1d6e50ec5bf53246aa569791794ab3a4427add8e3bc40b7350e69ccb95' '0425e6903048c38331f51a1fc3290d702b5afd2994ed7b15185de593cfddb480' 'af41b629886fb1b9480a49e388560ec523a764b64ea5b6edba1127dbd6877def' '6d04640831bf33ec9ef281f0ea1dd376dfa1aec3a3d90c6501f4d5624edfa7f2' '7a2ec8bbd03d4711f510b69603131cbfb5939114b35b45ed6f1c30c8bf22adea' '9b66a2bdb0b1db363c56597733a4ada2e7618dea5b1956ba7c4e628a8f54210d' 'c7d33ccfe9eceadce1f97300c75b050ef5e9b2428f86c38bef7bd584ec8c8bd9' '47ece87a4b839960fdc1e7bdae4dbe872a0605612cb3bea2d15ca16d4e2fdc04' 'eed52fabd845a1e779482389d53364b2cbbf3640b24b10167d47a6bf941e234e' 'e8a9d52cf6313b8413f6ce73a8ed239b5e5ee5b40ba79ff7cab236d4a9b539d6' '4725e877e92765402ef7ff7abba786f548f5f5ab188aa72a0ae3b8a11a414e6a' '3b3597157c8641d304621261808e122480fd556afbcd2745133fbf28a55a81e1' 'c8627efa4b3f1540ac32dd721372938f5e9aee386c168b5febba7c9cfa6b5d37' '86f7be412f4fcb0c8d3c5047dab0ebe80d45996428312b977b8f7f28eb576009' '5737efd7ed4b53113b3476fae2b3740c46e77944ac80552bc755fc8164830525' 'ae6d5451ed4fabe2c6a08126bd14116d48e6a541872a83fafbda2a4838fe0b13' '1eb92279b3fc281ec83763e9787fd1724f2ddf181f5dd7c4848cc7b767e1f5c2' '040a86936cf639dc7cf6f71f54e8fa8c1efb4863d5988e548b91a6cd75f66517' 'd798cd592a1c97847204f0b386c8f341fb6129262a7a2a9c6aab8df4145604a7' '25d18ed0cb6054f812ba0ad81d733479c34dfc08476ce6e7bb2f3d5897f8765d' 'da1699f28878299ab9e06f1230a569d7c6805b026fe0383de92e92cabec32e02' 'd69dfe1442f62be1b434f00bf7c7ea4b49cebfbaf706de75d944235089be6b06' 'fa403feeb0d504c324ab4f4b70c4a33504e1920c96f3e2b7a34ea84f20c401ae' '650613db80683206e1330354358c25ffadc51218ef192becbea25424c4ff807c' 'f8d42709a3baf5cf0a3da509f8b085914004879d237b70183a2ba6ddc2882d9a' 'da878d062d69c3679a4f1e3cb5575574802bab6a8b1299022ee2e6550921d906' '3cb801db1ecb7a18fddcaf5004797b7ac9976642cf46f33e4cb15a48cf60df9b' '0f898566e0742efb71225a647e0872c28b0c17c7d5b25f7f5b837b8995dc4126' '78a786dbaa0f19d19e84d75105af5931092664d0fa63eff0d17cf524bd7274fe' 'b70796bc242b671b6e2d14e160b3ba4f1f4668834a1717a77f8cbe40cee0e660' 'e7b7524cbc2fc1e40f0e3eae627353dda7fbeb0419a7f11f4c70d21d65179c58' 'eeee04e07cb72e066c3d89e0e4cd05b808406869e9be098474cdd0a3f6bd51ac' 'a0ce2f8e29b6f749e3d9cacb183e654ea0fe99d19912ee20f8742b374c826e5d' 'acfe1b7fe3c195d8612070dae536113b43fbf21099f79d2fb00b5f2fd041b96f' '4cabcab7d1e25d54b3d8a9d5f6eb0947ed507d43672587319dccf3bc4bcaae9b' 'e97ca21326b0424c63807c35146435db4a52eb1f66412daff458169a66ec48fd' 'f99cc6206b7b0b0f6e8c668463cf5e3064579538b9ad813c36e5f58270e06b2f' 'fd4a64f3929146430da3cd208f4e3da95b82ba771651d663c4158a707b6fd6f7' 'ae8341c50aa1f2465a14c6304802a4686a3e4ea9a61d306b8075a6107dffd253' 'e8f5eed7a5c6396e43420ce87f107af6df400989ccde413e08f7733f9a564f0e' '0e7562b0028b876430775fd5824380c10a75a92320d4e639a13e588d2c6ab3a3' '7ea8f9a92f2d687289334ed5f90f2c3e167607f64c97e90aa3251a1a48a6552c' '890a8fb42cd1db3227b35e4d05dc8d60a4d974b48897e67f2bbb2183fdbe25dd' '37f86090a32bd394d604557e754318bcffa3bafb1b53f972d12c7196c92bb83a' '5cf8dacd25c88e446f2cebefef481f33d1d107db1bf99de6e32b65c2c73a2e2f' '1ed8f081ae5daac427bdd797f7f309a8585015b25db3b93cac6ff8e2f7551107' '54add6cc94fea89563754095a7263345ef6ab0e0bc72bfe18b293f1f4a94033a' '83cfd8300ecac2be49faf198a4415a5d1acd2c58cfe1d5adfeea90c6aad47d93' 'e37c1bbbffde37b5106ff40b908f559458e04c531fc5fd496e6da98e1372a0e0' '747e249412f270282a9f34bb29a7a8585556e0358acc398b5e2f819329b3343f' 'd51698aaaef0abb8b4be10e8acc55cd2f5c587f07279c62005e0a89459b64dbb' '7d788d42cdfe2b69ddd7bcff036ba39172ea8ee29ad5603c1c3b1357ed0111a9' 'f918c0bd56a4bf2abfa5c3120e8127af268693eb77b5d742db6e309dd29aead0' 'cfbb97643670e4462627567731e34ea4f6c7e260b220c33ad73b50b899fbfda6' '88191395b71f62f5b9a8ed769fa16a623d96209e68857f3d3fc5290b85e1f8be' '17098ea7d5f2df22c974c39754aff4abddcdab36782e55579e18b337766eb352' '1f599e9fcc0652cba8e474129de0bed17da15f7f4aa5c70aedb2a24653cba87a' 'd8c8ed10eaee1b1d983c29030089f1cdb0b3a64f1aeacf18efff464e591fe84a' '96530a3a87834b01f89f27ba2838711d963acf789b6682bc60b45ff65caa89ee' 'a14ccb49fd266c854c700642bcc90a4145447475b831395c9ba8a2283381cf59' 'de212dd7b765783615b4b3771a0e2f1f0a6ab8c63e5c92ae93f068c7f7cba5ea' '352fb2f2a63f668b23f7ba94e46ce76243065cb73011e46df20d87c1ac2476c3' '2362f6c7c2f2992eb07b4fe4871cca80a85bdfa9319f948e048f1f4e7712c813' '61326fa22af9f705b4ab5e2986d6d68aac5f443deed37a066fa0f8fd6b61823b' 'e293a82ec41e3d24cf4a08aa825dcfa415af739acb33fb2dfc6fe91f55ba1b58' '00033298f9d80cb145aaed0a76097dbbf2ab0c8461d45f6b202411722418dcb0' 'bf10547c9116006c89683fe9220b49895b5fa4523cd759f216e4c2a148f9aea4' '9e6be70ad2f3cbfb9a154d1aaff615f143cf82dfdfe431530c900158afb11558' '601412aa6399e051d8a4ceb4bdac4da70c52d71143325c144f6fd65a4a809f2d' '4fac23ab8d90aa9648cc211a2f4679d1e777e6667a597ba274e0d4f843ed7c9c' '52337edf05c18943ef8935fa3c17e8b81a49674e1240801420100f48efe121dd' '0534c6413b4f494332bd4900c9ef98b38c24384df24cac620687cb179ba1d550' 'ce45f8aafd941d31904bedd239aa5714edba11e03615492c492bc4b8c6cee4ee' '7592a55df260db484240e8f233d7fa96ea150dd33f4e761382457c20586aab74' '7f3f1e75b769b504ca3b75341954172c7c6e3528e7c675347af08f80592eb49d' '4f9c8a0f15fd2cbd9494f885b6aa816d4594a2b879a260cecd6c41f83e73b3ad' '911defc021d76bef036931d7c6dc76a8043e1468d647d676fad026dbdb5121e7' '86c9f4a2856c39cf0c82423a7980738927479c2202bf290f1ddfe7afe03d001d' 'b341d752f221806bad34d163056d7bf5d92d1cee8e94b947f142cfb7a49443f7' 'c3f01c6b4d7a61cace77a29a8a5017726a54b24c786dee550f9e54ee2de34a98' 'd2367d8bdbd104e396ba69ac9462111143d521c91cc2f9458418ab09ad1737e8' 'c1a545364e105bc9b02247493e33d19c34ed64bcd7bd13a01513a9d270927029' '4640f683b9a469d1e1e1150e962d4b2122be6769967ffffa78730cd60c3d33c8' 'e7c2c24e428357028b554987a488e950023b2389daa44b6d318ea4a4b1d707a8' '18c330571760cb30a525614bf27a18d6ba24d604ce5d3451c68b04a22d9ddbb6' 'ee90a953107c846a0490a5f223102e003e7ef757af3bf6e07746aa47fbfc0ce3' '5ed0f33a7baad723c6eff2a496bd2091688d8c5193257d06cca9bcae81667d7b' '59336186852c77961c82a2a5cb226a4e69824fd2a7db9461c21c4d60c3aae6c5' 'a030d70aedac7f63e75bac334b1752d2be85f93149dc3582cf5968cc712dd0ef' '00345500847abe3587df2e8bcca0be89553c47c58551798441913cf42d507935' 'a2ec1610a1a9169510ef4c69905e9754f646d2d81981617738ca8a1bd8f4c417' '75f7ae3fb9aa689319c23230dc29b368394d3d92c8241fb9845efcf4cf167ceb' 'a31b9a6643703f653b22e216a1e218377512d8e689f86538b039d3bf5cdb2c65' '3eab4c42429fb7f82cf059cc16da06f2ba54fd2ee8a6543fec8379655c59a508')