aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/dbxfs-remove-sentry-sdk.patch63
-rw-r--r--gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch73
-rw-r--r--gnu/packages/patches/eigen-remove-openmp-error-counting.patch64
-rw-r--r--gnu/packages/patches/eigen-stabilise-sparseqr-test.patch74
-rw-r--r--gnu/packages/patches/php-curl-compat.patch17
-rw-r--r--gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch108
6 files changed, 130 insertions, 269 deletions
diff --git a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
index e4f660000d..6f7ba53542 100644
--- a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
+++ b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
@@ -1,38 +1,48 @@
sentry-sdk provides a link to sentry.io, a service which monitors applications deployed in the wild.
Defaults to true. Best to just remove the option.
----
- dbxfs/main.py | 16 ----------------
- setup.py | 1 -
- 2 files changed, 17 deletions(-)
-
diff --git a/dbxfs/main.py b/dbxfs/main.py
-index 5a6cea1..5d00818 100755
+index 458e82a..784dd2a 100755
--- a/dbxfs/main.py
+++ b/dbxfs/main.py
-@@ -40,8 +40,6 @@ import userspacefs
+@@ -43,8 +43,6 @@ import userspacefs
import keyring
from keyring.errors import KeyringError
-import sentry_sdk
-
- from block_tracing import block_tracing, BLOCK_TRACING_INHERITS
+ from block_tracing import block_tracing
from dbxfs.dbxfs import FileSystem as DropboxFileSystem
-@@ -299,12 +297,6 @@ def _main(argv=None):
- config['keyring_user'] = keyring_user
- save_config = True
+@@ -127,16 +125,6 @@ def on_new_process(proc_args):
+ level = [logging.WARNING, logging.INFO, logging.DEBUG][min(2, verbose)]
+ logging.basicConfig(level=level, handlers=[logging_stream], format=format_)
-- if not config.get("asked_send_error_reports", False):
-- if yes_no_input("Would you like to help us improve %s by providing anonymous error reports?" % (APP_NAME,), default_yes=True):
-- config['send_error_reports'] = True
-- config['asked_send_error_reports'] = True
+- if int(proc_args.get('send_error_reports', '0')):
+- version = proc_args['version']
+- try:
+- sentry_sdk.init("https://b4b13ebd300849bd92260507a594e618@sentry.io/1293235",
+- release='%s@%s' % (APP_NAME, version),
+- with_locals=False)
+- sentry_sdk.set_user(dict(id=proc_args['sentry_user']))
+- except Exception:
+- log.warning("Failed to initialize sentry", exc_info=True)
+-
+ def create_fs(fs_args):
+ refresh_token = fs_args.get('refresh_token')
+ access_token = fs_args.get('access_token')
+@@ -527,10 +515,6 @@ deprecated, this functionality will be removed in the future.
+ config['asked_send_error_reports'] = True
+ save_config = True
+
+- if config.get("send_error_reports", False) and not isinstance(config.get("sentry_user", None), str):
+- config['sentry_user'] = uuid.uuid4().hex
- save_config = True
-
- if save_access_token and yes_no_input("Do you want \"%s\" to be the default mount point?" % (mount_point,), default_yes=True):
+ if save_refresh_token and yes_no_input("Do you want \"%s\" to be the default mount point?" % (mount_point,), default_yes=True):
config['mount_point'] = mount_point
save_config = True
-@@ -315,14 +307,6 @@ def _main(argv=None):
+@@ -541,15 +525,6 @@ deprecated, this functionality will be removed in the future.
log.info("Starting %s...", APP_NAME)
@@ -41,24 +51,31 @@ index 5a6cea1..5d00818 100755
- sentry_sdk.init("https://b4b13ebd300849bd92260507a594e618@sentry.io/1293235",
- release='%s@%s' % (APP_NAME, version),
- with_locals=False)
+- sentry_sdk.set_user(dict(id=config['sentry_user']))
- except Exception:
- log.warning("Failed to initialize sentry", exc_info=True)
-
if cache_folder is None:
cache_folder = os.path.join(appdirs.user_cache_dir(APP_NAME), "file_cache")
try:
+@@ -602,8 +577,6 @@ deprecated, this functionality will be removed in the future.
+ proc_args['verbose'] = str(args.verbose)
+ proc_args['version'] = version
+ proc_args['send_error_reports'] = str(int(config.get('send_error_reports', False)))
+- if config.get('send_error_reports', False):
+- proc_args['sentry_user'] = config['sentry_user']
+
+ return userspacefs.simple_main(mount_point, display_name,
+ ('dbxfs.main.create_fs', fs_args),
diff --git a/setup.py b/setup.py
-index 89e25c6..f940d47 100644
+index ae696e9..869d0db 100644
--- a/setup.py
+++ b/setup.py
-@@ -43,7 +43,6 @@ setup(
+@@ -47,7 +47,6 @@ setup(
"privy>=6.0,<7",
"keyring>=15.1.0",
"keyrings.alt>=3.1,<5",
-- "sentry_sdk>=0.3,<1",
+- "sentry_sdk>=1.0,<2",
],
extras_require={
'safefs': ["safefs"],
---
-2.28.0
-
diff --git a/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch b/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch
new file mode 100644
index 0000000000..139d633c44
--- /dev/null
+++ b/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch
@@ -0,0 +1,73 @@
+From f046e326d9e30772725d8fb26dc33328e418d9d3 Mon Sep 17 00:00:00 2001
+From: Antonio Sanchez <cantonios@google.com>
+Date: Fri, 17 Sep 2021 12:49:01 -0700
+Subject: [PATCH] Fix strict aliasing bug causing product_small failure.
+
+Packet loading is skipped due to aliasing violation, leading to nullopt matrix
+multiplication.
+
+Fixes #2327.
+
+
+(cherry picked from commit 3c724c44cff3f9e2e9e35351abff0b5c022b320d)
+---
+ Eigen/src/Core/arch/AVX/Complex.h | 4 +++-
+ Eigen/src/Core/arch/AVX512/Complex.h | 4 +++-
+ Eigen/src/Core/arch/SSE/Complex.h | 11 +++--------
+ 3 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/Eigen/src/Core/arch/AVX/Complex.h b/Eigen/src/Core/arch/AVX/Complex.h
+index ab7bd6c65..e9096c0a1 100644
+--- a/Eigen/src/Core/arch/AVX/Complex.h
++++ b/Eigen/src/Core/arch/AVX/Complex.h
+@@ -99,7 +99,9 @@ template<> EIGEN_STRONG_INLINE Packet4cf ploadu<Packet4cf>(const std::complex<fl
+
+ template<> EIGEN_STRONG_INLINE Packet4cf pset1<Packet4cf>(const std::complex<float>& from)
+ {
+- return Packet4cf(_mm256_castpd_ps(_mm256_broadcast_sd((const double*)(const void*)&from)));
++ const float re = std::real(from);
++ const float im = std::imag(from);
++ return Packet4cf(_mm256_set_ps(im, re, im, re, im, re, im, re));
+ }
+
+ template<> EIGEN_STRONG_INLINE Packet4cf ploaddup<Packet4cf>(const std::complex<float>* from)
+diff --git a/Eigen/src/Core/arch/AVX512/Complex.h b/Eigen/src/Core/arch/AVX512/Complex.h
+index 49c72b3f1..074253859 100644
+--- a/Eigen/src/Core/arch/AVX512/Complex.h
++++ b/Eigen/src/Core/arch/AVX512/Complex.h
+@@ -97,7 +97,9 @@ template<> EIGEN_STRONG_INLINE Packet8cf ploadu<Packet8cf>(const std::complex<fl
+
+ template<> EIGEN_STRONG_INLINE Packet8cf pset1<Packet8cf>(const std::complex<float>& from)
+ {
+- return Packet8cf(_mm512_castpd_ps(pload1<Packet8d>((const double*)(const void*)&from)));
++ const float re = std::real(from);
++ const float im = std::imag(from);
++ return Packet8cf(_mm512_set_ps(im, re, im, re, im, re, im, re, im, re, im, re, im, re, im, re));
+ }
+
+ template<> EIGEN_STRONG_INLINE Packet8cf ploaddup<Packet8cf>(const std::complex<float>* from)
+diff --git a/Eigen/src/Core/arch/SSE/Complex.h b/Eigen/src/Core/arch/SSE/Complex.h
+index 8fe22da46..215bfd7bb 100644
+--- a/Eigen/src/Core/arch/SSE/Complex.h
++++ b/Eigen/src/Core/arch/SSE/Complex.h
+@@ -106,14 +106,9 @@ template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<fl
+
+ template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>& from)
+ {
+- Packet2cf res;
+-#ifdef EIGEN_VECTORIZE_SSE3
+- res.v = _mm_castpd_ps(_mm_loaddup_pd(reinterpret_cast<double const*>(&from)));
+-#else
+- res.v = _mm_castpd_ps(_mm_load_sd(reinterpret_cast<double const*>(&from)));
+- res.v = _mm_movelh_ps(res.v, res.v);
+-#endif
+- return res;
++ const float re = std::real(from);
++ const float im = std::imag(from);
++ return Packet2cf(_mm_set_ps(im, re, im, re));
+ }
+
+ template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+--
+2.37.0
+
diff --git a/gnu/packages/patches/eigen-remove-openmp-error-counting.patch b/gnu/packages/patches/eigen-remove-openmp-error-counting.patch
deleted file mode 100644
index 556474e8b3..0000000000
--- a/gnu/packages/patches/eigen-remove-openmp-error-counting.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From ef3cc72cb65e2d500459c178c63e349bacfa834f Mon Sep 17 00:00:00 2001
-From: Luke Peterson <hazelnusse@gmail.com>
-Date: Thu, 8 Oct 2020 12:16:53 -0700
-Subject: [PATCH] Remove error counting in OpenMP parallelize_gemm
-
-This resolves a compilation error associated with
-Eigen::eigen_assert_exception. It also eliminates the counting of
-exceptions that may occur in the OpenMP parallel section. If an
-unhandled exception occurs in this section, the behavior is non-conforming
-according to the OpenMP specification.
----
- Eigen/src/Core/products/Parallelizer.h | 14 +++++---------
- test/CMakeLists.txt | 2 +-
- 2 files changed, 6 insertions(+), 10 deletions(-)
-
-diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h
-index 67b2442b5..a3cc05b77 100644
---- a/Eigen/src/Core/products/Parallelizer.h
-+++ b/Eigen/src/Core/products/Parallelizer.h
-@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
-
- ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0);
-
-- int errorCount = 0;
-- #pragma omp parallel num_threads(threads) reduction(+: errorCount)
-+ #pragma omp parallel num_threads(threads)
- {
- Index i = omp_get_thread_num();
- // Note that the actual number of threads might be lower than the number of request ones.
-@@ -152,14 +151,11 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
- info[i].lhs_start = r0;
- info[i].lhs_length = actualBlockRows;
-
-- EIGEN_TRY {
-- if(transpose) func(c0, actualBlockCols, 0, rows, info);
-- else func(0, rows, c0, actualBlockCols, info);
-- } EIGEN_CATCH(...) {
-- ++errorCount;
-- }
-+ if(transpose)
-+ func(c0, actualBlockCols, 0, rows, info);
-+ else
-+ func(0, rows, c0, actualBlockCols, info);
- }
-- if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception());
- #endif
- }
-
-diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
-index 0747aa6cb..b02577780 100644
---- a/test/CMakeLists.txt
-+++ b/test/CMakeLists.txt
-@@ -163,7 +163,7 @@ ei_add_test(constructor)
- ei_add_test(linearstructure)
- ei_add_test(integer_types)
- ei_add_test(unalignedcount)
--if(NOT EIGEN_TEST_NO_EXCEPTIONS)
-+if(NOT EIGEN_TEST_NO_EXCEPTIONS AND NOT EIGEN_TEST_OPENMP)
- ei_add_test(exceptions)
- endif()
- ei_add_test(redux)
---
-GitLab
-
diff --git a/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch b/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch
deleted file mode 100644
index b95b46077a..0000000000
--- a/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Mon, 16 Mar 2020 22:51:37 +0000
-Subject: gnu: eigen: Stabilise sparseqr test.
-
-Taken verbatim from this[0] upstream commit.
-
-[0]: https://gitlab.com/libeigen/eigen/-/commit/3b5deeb546d4017b24846f5b0dc3296a50a039fe
-
-From 3b5deeb546d4017b24846f5b0dc3296a50a039fe Mon Sep 17 00:00:00 2001
-From: Gael Guennebaud <g.gael@free.fr>
-Date: Tue, 19 Feb 2019 22:57:51 +0100
-Subject: [PATCH] bug #899: make sparseqr unit test more stable by 1) trying
- with larger threshold and 2) relax rank computation for rank-deficient
- problems.
-
----
- test/sparseqr.cpp | 31 ++++++++++++++++++++++++++-----
- 1 file changed, 26 insertions(+), 5 deletions(-)
-
-diff --git a/test/sparseqr.cpp b/test/sparseqr.cpp
-index 3ffe62314..3576cc626 100644
---- a/test/sparseqr.cpp
-+++ b/test/sparseqr.cpp
-@@ -43,6 +43,7 @@ int generate_sparse_rectangular_problem(MatrixType& A, DenseMat& dA, int maxRows
-
- template<typename Scalar> void test_sparseqr_scalar()
- {
-+ typedef typename NumTraits<Scalar>::Real RealScalar;
- typedef SparseMatrix<Scalar,ColMajor> MatrixType;
- typedef Matrix<Scalar,Dynamic,Dynamic> DenseMat;
- typedef Matrix<Scalar,Dynamic,1> DenseVector;
-@@ -91,14 +92,34 @@ template<typename Scalar> void test_sparseqr_scalar()
- exit(0);
- return;
- }
--
-- VERIFY_IS_APPROX(A * x, b);
--
-- //Compare with a dense QR solver
-+
-+ // Compare with a dense QR solver
- ColPivHouseholderQR<DenseMat> dqr(dA);
- refX = dqr.solve(b);
-
-- VERIFY_IS_EQUAL(dqr.rank(), solver.rank());
-+ bool rank_deficient = A.cols()>A.rows() || dqr.rank()<A.cols();
-+ if(rank_deficient)
-+ {
-+ // rank deficient problem -> we might have to increase the threshold
-+ // to get a correct solution.
-+ RealScalar th = RealScalar(20)*dA.colwise().norm().maxCoeff()*(A.rows()+A.cols()) * NumTraits<RealScalar>::epsilon();
-+ for(Index k=0; (k<16) && !test_isApprox(A*x,b); ++k)
-+ {
-+ th *= RealScalar(10);
-+ solver.setPivotThreshold(th);
-+ solver.compute(A);
-+ x = solver.solve(b);
-+ }
-+ }
-+
-+ VERIFY_IS_APPROX(A * x, b);
-+
-+ // For rank deficient problem, the estimated rank might
-+ // be slightly off, so let's only raise a warning in such cases.
-+ if(rank_deficient) ++g_test_level;
-+ VERIFY_IS_EQUAL(solver.rank(), dqr.rank());
-+ if(rank_deficient) --g_test_level;
-+
- if(solver.rank()==A.cols()) // full rank
- VERIFY_IS_APPROX(x, refX);
- // else
---
-2.24.1
-
diff --git a/gnu/packages/patches/php-curl-compat.patch b/gnu/packages/patches/php-curl-compat.patch
new file mode 100644
index 0000000000..0617251194
--- /dev/null
+++ b/gnu/packages/patches/php-curl-compat.patch
@@ -0,0 +1,17 @@
+Fix test result with cURL 7.83 and later.
+
+Taken from upstream:
+
+ https://github.com/php/php-src/commit/a4179e4c92b6365d39e09cb9cd63c476848013af
+
+diff --git a/ext/curl/tests/curl_basic_007.phpt b/ext/curl/tests/curl_basic_007.phpt
+index 3b53658d6a7e..3834e4674f82 100644
+--- a/ext/curl/tests/curl_basic_007.phpt
++++ b/ext/curl/tests/curl_basic_007.phpt
+@@ -20,5 +20,5 @@ curl_close($ch);
+
+ ?>
+ --EXPECTF--
+-string(%d) "No URL set!%w"
++string(%d) "No URL set%A"
+ int(3)
diff --git a/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch b/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch
deleted file mode 100644
index 427965f231..0000000000
--- a/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 98175fc7f1623873ceb2e9a017a319d19bfb3912 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Sun, 12 Dec 2021 13:41:37 +0100
-Subject: [PATCH] Fix openssl_x509_checkpurpose_basic.phpt
-
-This test fails because san-cert.pem and san-ca.pem have expired. We
-fix that by using the CertificateGenerator to generate temporary certs
-during the test run. Since san-cert.pem and san-ca.pem have been
-identical, we only generate one certificate.
-
-Closes GH-7763.
----
- .../openssl_x509_checkpurpose_basic.phpt | 10 +++++-
- ext/openssl/tests/san-ca.pem | 15 ---------
- ext/openssl/tests/san-cert.pem | 31 -------------------
- 3 files changed, 9 insertions(+), 47 deletions(-)
- delete mode 100644 ext/openssl/tests/san-ca.pem
- delete mode 100644 ext/openssl/tests/san-cert.pem
-
-diff --git a/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt b/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
-index 99b4f0bdff31..35629bd93626 100644
---- a/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
-+++ b/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
-@@ -8,10 +8,14 @@ if (OPENSSL_VERSION_NUMBER < 0x10000000) die("skip Output requires OpenSSL 1.0")
- ?>
- --FILE--
- <?php
-+include 'CertificateGenerator.inc';
-+$certificateGenerator = new CertificateGenerator();
-+$certificateGenerator->saveCaCert(__DIR__ . "/san-cert.pem");
-+
- $cert = "file://" . __DIR__ . "/cert.crt";
- $bert = "file://" . __DIR__ . "/bug41033.pem";
- $sert = "file://" . __DIR__ . "/san-cert.pem";
--$cpca = __DIR__ . "/san-ca.pem";
-+$cpca = __DIR__ . "/san-cert.pem";
- $utfl = __DIR__ . "/sni_server_uk.pem";
- $rcrt = openssl_x509_read($cert);
-
-@@ -84,6 +88,10 @@ var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_SMIME_ENCRYPT, array($cpc
- var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_CRL_SIGN, array($cpca), $utfl));
- var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_ANY, array($cpca), $utfl));
- ?>
-+--CLEAN--
-+<?php
-+@unlink(__DIR__ . "/san-cert.pem");
-+?>
- --EXPECT--
- bool(false)
- bool(false)
-diff --git a/ext/openssl/tests/san-ca.pem b/ext/openssl/tests/san-ca.pem
-deleted file mode 100644
-index 88682ba2dcf6..000000000000
---- a/ext/openssl/tests/san-ca.pem
-+++ /dev/null
-@@ -1,15 +0,0 @@
-------BEGIN CERTIFICATE-----
--MIICYTCCAcqgAwIBAgIJAIaqxtY5dwjtMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
--BAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UEBxMLTWlubmVhcG9saXMxITAfBgNV
--BAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MjQwODA1NTFaFw0y
--MTEyMTEwODA1NTFaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UE
--BxMLTWlubmVhcG9saXMxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRl
--ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsFGqfbU/8D+KjroQl4XMyt9m
--dcSP7iZtqphOu9nVZxYAAqfaqj8FnC/pwYV3TU6ZHndLTQAllwYT3sQBQPPGmZQ9
--clSIMEL003t3pi4ZVXkttG6Vvr+Z9PBcHhlKLQ7WMHnn4qctllWXTSoyTQpkETF3
--Fc3mrG5G37BhoUno7NECAwEAAaM9MDswOQYDVR0RBDIwMIILZXhhbXBsZS5vcmeC
--D3d3dy5leGFtcGxlLm9yZ4IQdGVzdC5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQUF
--AAOBgQBf/FZhzheIcQJ+dyTk8xQ/nJLvpmBhbd1LNtfwk/MsC9UHsz4QXs9sBw1k
--rH0FjoqgM6avj7zKHJFTj6q7Rd+OX5V4HynYPhX67sWbN3KWEHffL98nGGd/bo3X
--pSjNk5vnyKYiwdUUe11Ac9csh0HcSBbhOYjy0T/i9AlQcKbuCg==
-------END CERTIFICATE-----
-diff --git a/ext/openssl/tests/san-cert.pem b/ext/openssl/tests/san-cert.pem
-deleted file mode 100644
-index 923d490e72fd..000000000000
---- a/ext/openssl/tests/san-cert.pem
-+++ /dev/null
-@@ -1,31 +0,0 @@
-------BEGIN CERTIFICATE-----
--MIICYTCCAcqgAwIBAgIJAIaqxtY5dwjtMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
--BAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UEBxMLTWlubmVhcG9saXMxITAfBgNV
--BAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MjQwODA1NTFaFw0y
--MTEyMTEwODA1NTFaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UE
--BxMLTWlubmVhcG9saXMxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRl
--ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsFGqfbU/8D+KjroQl4XMyt9m
--dcSP7iZtqphOu9nVZxYAAqfaqj8FnC/pwYV3TU6ZHndLTQAllwYT3sQBQPPGmZQ9
--clSIMEL003t3pi4ZVXkttG6Vvr+Z9PBcHhlKLQ7WMHnn4qctllWXTSoyTQpkETF3
--Fc3mrG5G37BhoUno7NECAwEAAaM9MDswOQYDVR0RBDIwMIILZXhhbXBsZS5vcmeC
--D3d3dy5leGFtcGxlLm9yZ4IQdGVzdC5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQUF
--AAOBgQBf/FZhzheIcQJ+dyTk8xQ/nJLvpmBhbd1LNtfwk/MsC9UHsz4QXs9sBw1k
--rH0FjoqgM6avj7zKHJFTj6q7Rd+OX5V4HynYPhX67sWbN3KWEHffL98nGGd/bo3X
--pSjNk5vnyKYiwdUUe11Ac9csh0HcSBbhOYjy0T/i9AlQcKbuCg==
-------END CERTIFICATE-----
-------BEGIN PRIVATE KEY-----
--MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALBRqn21P/A/io66
--EJeFzMrfZnXEj+4mbaqYTrvZ1WcWAAKn2qo/BZwv6cGFd01OmR53S00AJZcGE97E
--AUDzxpmUPXJUiDBC9NN7d6YuGVV5LbRulb6/mfTwXB4ZSi0O1jB55+KnLZZVl00q
--Mk0KZBExdxXN5qxuRt+wYaFJ6OzRAgMBAAECgYB11e5iWvqjPmQEZRdnnJU0VD8u
--n7ItT+Nk6qtb4gY8Abj6DWIW+01th5vqqJ8FvGyartFVYa69kuM+srG/zevAZWeu
--fGZtwiwZR4DRSyRcPp4rnNiksK3dkAZA6UewmRDPv8uyHJlXc5i+Ft1ILJ5Q5jgn
--UkC4z3EJP5Se9KZywQJBAOO4lRq42wLsYr2SDrQDSs4leie3FKc2bgvjF7Djosh1
--ZYbf55F5b9w1zgnccmni2HkqOnyFu4SKarmXyCsYxrkCQQDGNvnUh7/zZswrdWZ/
--PMp9zVDTh/5Oc2B4ByNLw1ERDwYhjchKgPRlQvn4cp3Pwf3UYPQ/8XGXzzEJey3A
--r0rZAkBf/tDEOgcBPXsGZQrTscuYCU5sbY5ESvqrAilbhSp7DJom+D5bIfEYyIm5
--uHd20Yzlzvpmwc1huyPwZt6X5FLpAkATDReoGMAXSesXxjnqwtIHk2NQYYLM0YQV
--JUJ8NrKk/Bevw+vbVVeoH+7ctU97t36JGiR/vNoZKD3jVmaIXZDJAkEA4wJbwzIo
--L32mu9VmZa7wjmfkraQEmXTPaA5D9lNC0AwRTgkj+x2Qe1vawNblNK9PPLBDdplQ
--L//53ADq/wv5rA==
-------END PRIVATE KEY-----