diff options
Diffstat (limited to 'src/pki')
368 files changed, 3598 insertions, 61002 deletions
diff --git a/src/pki/IMPORT b/src/pki/IMPORT deleted file mode 100755 index 986b1d4..0000000 --- a/src/pki/IMPORT +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -# Set this to be the location of a chromium checkout, and -# apply the patches in ./patches with "git am" first -# before running this script. -CHROMIUM_SRC=~/chromium/src - -mkdir -p ./testdata -cp $CHROMIUM_SRC/net/test/test_certificate_data.h ./testdata - -tar -C $CHROMIUM_SRC/net/third_party -cf - nist-pkits | tar -C ./testdata -xf - -tar -C $CHROMIUM_SRC/net/data -cf - cert_issuer_source_static_unittest \ - ssl/certificates \ - certificate_policies_unittest \ - name_constraints_unittest \ - ocsp_unittest \ - crl_unittest \ - parse_certificate_unittest \ - path_builder_unittest \ - verify_certificate_chain_unittest \ - verify_name_match_unittest \ - verify_signed_data_unittest | tar -C ./testdata -xf - - -go run ./import_tool.go -spec import_spec.json --source-base $CHROMIUM_SRC -dest-base . - -sed -i "s/#include \"/#include \"..\/pki\//g" *fuzzer.cc -mv *fuzzer.cc ../fuzz - - - diff --git a/src/pki/README.md b/src/pki/README.md index e7eaec4..7fc7432 100644 --- a/src/pki/README.md +++ b/src/pki/README.md @@ -3,30 +3,11 @@ This directory and library should be considered experimental and should not be depended upon not to change without notice. You should not use this. -It contains an extracted and modified copy of chrome's certificate -verifier core logic. - -It is for the moment, intended to be synchronized from a checkout of chrome's -head with the IMPORT script run in this directory. The eventual goal is to -make both chrome and google3 consume this. +It contains chrome's certificate verifier core logic as used by chrome. ## Current status: - * Some of the Path Builder tests depending on chrome testing classes and - SavedUserData are disabled. These probably need either a mimicing - SaveUserData class here, or be pulled out into chrome only. - * This contains a copy of der as bssl:der - a consideration for - re-integrating with chromium. the encode_values part of der does not include - the base::time or absl::time based stuff as they are not used within the - library, this should probably be split out for chrome, or chrome's der could - be modified (along with this one and eventually merged together) to not use - base::time for encoding GeneralizedTimes, but rather use boringssl posix - times as does the rest of this library. - * The Name Constraint limitation code is modified to remove clamped_math - and mimic BoringSSL's overall limits - Some of the tests that test - for specific edge cases for chrome's limits have been disabled. The - tests need to be changed to reflect the overall limit, or ignored - and we make name constraints subquadratic and stop caring about this. - * Fuzzer targets are not yet hooked up. - - - + * Currently chrome uses this code via private API from within this directory. + * At the moment there is no public API for these functions, as mentioned above + if you make use of this you do so at your own risk and your code may be broken + by API change at any time. + * Public API will be forthcoming. diff --git a/src/pki/asn1_util.cc b/src/pki/asn1_util.cc deleted file mode 100644 index 148c39d..0000000 --- a/src/pki/asn1_util.cc +++ /dev/null @@ -1,331 +0,0 @@ -// Copyright 2012 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "asn1_util.h" - -#include "parse_certificate.h" -#include "input.h" -#include "parser.h" -#include <optional> - -namespace bssl::asn1 { - -namespace { - -// Parses input |in| which should point to the beginning of a Certificate, and -// sets |*tbs_certificate| ready to parse the Subject. If parsing -// fails, this function returns false and |*tbs_certificate| is left in an -// undefined state. -bool SeekToSubject(der::Input in, der::Parser* tbs_certificate) { - // From RFC 5280, section 4.1 - // Certificate ::= SEQUENCE { - // tbsCertificate TBSCertificate, - // signatureAlgorithm AlgorithmIdentifier, - // signatureValue BIT STRING } - - // TBSCertificate ::= SEQUENCE { - // version [0] EXPLICIT Version DEFAULT v1, - // serialNumber CertificateSerialNumber, - // signature AlgorithmIdentifier, - // issuer Name, - // validity Validity, - // subject Name, - // subjectPublicKeyInfo SubjectPublicKeyInfo, - // ... } - - der::Parser parser(in); - der::Parser certificate; - if (!parser.ReadSequence(&certificate)) - return false; - - // We don't allow junk after the certificate. - if (parser.HasMore()) - return false; - - if (!certificate.ReadSequence(tbs_certificate)) - return false; - - bool unused; - if (!tbs_certificate->SkipOptionalTag( - der::kTagConstructed | der::kTagContextSpecific | 0, &unused)) { - return false; - } - - // serialNumber - if (!tbs_certificate->SkipTag(der::kInteger)) - return false; - // signature - if (!tbs_certificate->SkipTag(der::kSequence)) - return false; - // issuer - if (!tbs_certificate->SkipTag(der::kSequence)) - return false; - // validity - if (!tbs_certificate->SkipTag(der::kSequence)) - return false; - return true; -} - -// Parses input |in| which should point to the beginning of a Certificate, and -// sets |*tbs_certificate| ready to parse the SubjectPublicKeyInfo. If parsing -// fails, this function returns false and |*tbs_certificate| is left in an -// undefined state. -bool SeekToSPKI(der::Input in, der::Parser* tbs_certificate) { - return SeekToSubject(in, tbs_certificate) && - // Skip over Subject. - tbs_certificate->SkipTag(der::kSequence); -} - -// Parses input |in| which should point to the beginning of a -// Certificate. If parsing fails, this function returns false, with -// |*extensions_present| and |*extensions_parser| left in an undefined -// state. If parsing succeeds and extensions are present, this function -// sets |*extensions_present| to true and sets |*extensions_parser| -// ready to parse the Extensions. If extensions are not present, it sets -// |*extensions_present| to false and |*extensions_parser| is left in an -// undefined state. -bool SeekToExtensions(der::Input in, - bool* extensions_present, - der::Parser* extensions_parser) { - bool present; - der::Parser tbs_cert_parser; - if (!SeekToSPKI(in, &tbs_cert_parser)) - return false; - - // From RFC 5280, section 4.1 - // TBSCertificate ::= SEQUENCE { - // ... - // subjectPublicKeyInfo SubjectPublicKeyInfo, - // issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, - // subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, - // extensions [3] EXPLICIT Extensions OPTIONAL } - - // subjectPublicKeyInfo - if (!tbs_cert_parser.SkipTag(der::kSequence)) - return false; - // issuerUniqueID - if (!tbs_cert_parser.SkipOptionalTag(der::kTagContextSpecific | 1, - &present)) { - return false; - } - // subjectUniqueID - if (!tbs_cert_parser.SkipOptionalTag(der::kTagContextSpecific | 2, - &present)) { - return false; - } - - std::optional<der::Input> extensions; - if (!tbs_cert_parser.ReadOptionalTag( - der::kTagConstructed | der::kTagContextSpecific | 3, &extensions)) { - return false; - } - - if (!extensions) { - *extensions_present = false; - return true; - } - - // Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension - // Extension ::= SEQUENCE { - // extnID OBJECT IDENTIFIER, - // critical BOOLEAN DEFAULT FALSE, - // extnValue OCTET STRING } - - // |extensions| was EXPLICITly tagged, so we still need to remove the - // ASN.1 SEQUENCE header. - der::Parser explicit_extensions_parser(extensions.value()); - if (!explicit_extensions_parser.ReadSequence(extensions_parser)) - return false; - - if (explicit_extensions_parser.HasMore()) - return false; - - *extensions_present = true; - return true; -} - -// Parse a DER-encoded, X.509 certificate in |cert| and find an extension with -// the given OID. Returns false on parse error or true if the parse was -// successful. |*out_extension_present| will be true iff the extension was -// found. In the case where it was found, |*out_extension| will describe the -// extension, or is undefined on parse error or if the extension is missing. -bool ExtractExtensionWithOID(std::string_view cert, - der::Input extension_oid, - bool* out_extension_present, - ParsedExtension* out_extension) { - der::Parser extensions; - bool extensions_present; - if (!SeekToExtensions(der::Input(cert), &extensions_present, &extensions)) - return false; - if (!extensions_present) { - *out_extension_present = false; - return true; - } - - while (extensions.HasMore()) { - der::Input extension_tlv; - if (!extensions.ReadRawTLV(&extension_tlv) || - !ParseExtension(extension_tlv, out_extension)) { - return false; - } - - if (out_extension->oid == extension_oid) { - *out_extension_present = true; - return true; - } - } - - *out_extension_present = false; - return true; -} - -} // namespace - -bool ExtractSubjectFromDERCert(std::string_view cert, - std::string_view* subject_out) { - der::Parser parser; - if (!SeekToSubject(der::Input(cert), &parser)) - return false; - der::Input subject; - if (!parser.ReadRawTLV(&subject)) - return false; - *subject_out = subject.AsStringView(); - return true; -} - -bool ExtractSPKIFromDERCert(std::string_view cert, - std::string_view* spki_out) { - der::Parser parser; - if (!SeekToSPKI(der::Input(cert), &parser)) - return false; - der::Input spki; - if (!parser.ReadRawTLV(&spki)) - return false; - *spki_out = spki.AsStringView(); - return true; -} - -bool ExtractSubjectPublicKeyFromSPKI(std::string_view spki, - std::string_view* spk_out) { - // From RFC 5280, Section 4.1 - // SubjectPublicKeyInfo ::= SEQUENCE { - // algorithm AlgorithmIdentifier, - // subjectPublicKey BIT STRING } - // - // AlgorithmIdentifier ::= SEQUENCE { - // algorithm OBJECT IDENTIFIER, - // parameters ANY DEFINED BY algorithm OPTIONAL } - - // Step into SubjectPublicKeyInfo sequence. - der::Parser parser((der::Input(spki))); - der::Parser spki_parser; - if (!parser.ReadSequence(&spki_parser)) - return false; - - // Step over algorithm field (a SEQUENCE). - if (!spki_parser.SkipTag(der::kSequence)) - return false; - - // Extract the subjectPublicKey field. - der::Input spk; - if (!spki_parser.ReadTag(der::kBitString, &spk)) - return false; - *spk_out = spk.AsStringView(); - return true; -} - -bool HasCanSignHttpExchangesDraftExtension(std::string_view cert) { - // kCanSignHttpExchangesDraftOid is the DER encoding of the OID for - // canSignHttpExchangesDraft defined in: - // https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html - static const uint8_t kCanSignHttpExchangesDraftOid[] = { - 0x2B, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79, 0x02, 0x01, 0x16}; - - bool extension_present; - ParsedExtension extension; - if (!ExtractExtensionWithOID(cert, der::Input(kCanSignHttpExchangesDraftOid), - &extension_present, &extension) || - !extension_present) { - return false; - } - - // The extension should have contents NULL. - static const uint8_t kNull[] = {0x05, 0x00}; - return extension.value == der::Input(kNull); -} - -bool ExtractSignatureAlgorithmsFromDERCert( - std::string_view cert, - std::string_view* cert_signature_algorithm_sequence, - std::string_view* tbs_signature_algorithm_sequence) { - // From RFC 5280, section 4.1 - // Certificate ::= SEQUENCE { - // tbsCertificate TBSCertificate, - // signatureAlgorithm AlgorithmIdentifier, - // signatureValue BIT STRING } - - // TBSCertificate ::= SEQUENCE { - // version [0] EXPLICIT Version DEFAULT v1, - // serialNumber CertificateSerialNumber, - // signature AlgorithmIdentifier, - // issuer Name, - // validity Validity, - // subject Name, - // subjectPublicKeyInfo SubjectPublicKeyInfo, - // ... } - - der::Parser parser((der::Input(cert))); - der::Parser certificate; - if (!parser.ReadSequence(&certificate)) - return false; - - der::Parser tbs_certificate; - if (!certificate.ReadSequence(&tbs_certificate)) - return false; - - bool unused; - if (!tbs_certificate.SkipOptionalTag( - der::kTagConstructed | der::kTagContextSpecific | 0, &unused)) { - return false; - } - - // serialNumber - if (!tbs_certificate.SkipTag(der::kInteger)) - return false; - // signature - der::Input tbs_algorithm; - if (!tbs_certificate.ReadRawTLV(&tbs_algorithm)) - return false; - - der::Input cert_algorithm; - if (!certificate.ReadRawTLV(&cert_algorithm)) - return false; - - *cert_signature_algorithm_sequence = cert_algorithm.AsStringView(); - *tbs_signature_algorithm_sequence = tbs_algorithm.AsStringView(); - return true; -} - -bool ExtractExtensionFromDERCert(std::string_view cert, - std::string_view extension_oid, - bool* out_extension_present, - bool* out_extension_critical, - std::string_view* out_contents) { - *out_extension_present = false; - *out_extension_critical = false; - *out_contents = std::string_view(); - - ParsedExtension extension; - if (!ExtractExtensionWithOID(cert, der::Input(extension_oid), - out_extension_present, &extension)) - return false; - if (!*out_extension_present) - return true; - - *out_extension_critical = extension.critical; - *out_contents = extension.value.AsStringView(); - return true; -} - -} // namespace bssl::asn1 diff --git a/src/pki/asn1_util.h b/src/pki/asn1_util.h deleted file mode 100644 index af0b176..0000000 --- a/src/pki/asn1_util.h +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2012 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_PKI_ASN1_UTIL_H_ -#define BSSL_PKI_ASN1_UTIL_H_ - -#include "fillins/openssl_util.h" -#include <string_view> - - - -namespace bssl::asn1 { - -// ExtractSubjectFromDERCert parses the DER encoded certificate in |cert| and -// extracts the bytes of the X.501 Subject. On successful return, |subject_out| -// is set to contain the Subject, pointing into |cert|. -OPENSSL_EXPORT bool ExtractSubjectFromDERCert( - std::string_view cert, - std::string_view* subject_out); - -// ExtractSPKIFromDERCert parses the DER encoded certificate in |cert| and -// extracts the bytes of the SubjectPublicKeyInfo. On successful return, -// |spki_out| is set to contain the SPKI, pointing into |cert|. -OPENSSL_EXPORT bool ExtractSPKIFromDERCert(std::string_view cert, - std::string_view* spki_out); - -// ExtractSubjectPublicKeyFromSPKI parses the DER encoded SubjectPublicKeyInfo -// in |spki| and extracts the bytes of the SubjectPublicKey. On successful -// return, |spk_out| is set to contain the public key, pointing into |spki|. -OPENSSL_EXPORT bool ExtractSubjectPublicKeyFromSPKI( - std::string_view spki, - std::string_view* spk_out); - -// HasCanSignHttpExchangesDraftExtension parses the DER encoded certificate -// in |cert| and extracts the canSignHttpExchangesDraft extension -// (https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html) -// if present. Returns true if the extension was present, and false if -// the extension was not present or if there was a parsing failure. -OPENSSL_EXPORT bool HasCanSignHttpExchangesDraftExtension(std::string_view cert); - -// Extracts the two (SEQUENCE) tag-length-values for the signature -// AlgorithmIdentifiers in a DER encoded certificate. Does not use strict -// parsing or validate the resulting AlgorithmIdentifiers. -// -// On success returns true, and assigns |cert_signature_algorithm_sequence| and -// |tbs_signature_algorithm_sequence| to point into |cert|: -// -// * |cert_signature_algorithm_sequence| points at the TLV for -// Certificate.signatureAlgorithm. -// -// * |tbs_signature_algorithm_sequence| points at the TLV for -// TBSCertificate.algorithm. -OPENSSL_EXPORT bool ExtractSignatureAlgorithmsFromDERCert( - std::string_view cert, - std::string_view* cert_signature_algorithm_sequence, - std::string_view* tbs_signature_algorithm_sequence); - -// Extracts the contents of the extension (if any) with OID |extension_oid| from -// the DER-encoded, X.509 certificate in |cert|. -// -// Returns false on parse error or true if the parse was successful. Sets -// |*out_extension_present| to whether or not the extension was found. If found, -// sets |*out_extension_critical| to match the extension's "critical" flag, and -// sets |*out_contents| to the contents of the extension (after unwrapping the -// OCTET STRING). -OPENSSL_EXPORT bool ExtractExtensionFromDERCert(std::string_view cert, - std::string_view extension_oid, - bool* out_extension_present, - bool* out_extension_critical, - std::string_view* out_contents); - -} // namespace bssl::asn1 - -#endif // BSSL_PKI_ASN1_UTIL_H_ diff --git a/src/pki/cert_error_id.cc b/src/pki/cert_error_id.cc index 9d83ed2..81add1d 100644 --- a/src/pki/cert_error_id.cc +++ b/src/pki/cert_error_id.cc @@ -6,9 +6,9 @@ namespace bssl { -const char* CertErrorIdToDebugString(CertErrorId id) { +const char *CertErrorIdToDebugString(CertErrorId id) { // The CertErrorId is simply a pointer for a C-string literal. - return reinterpret_cast<const char*>(id); + return reinterpret_cast<const char *>(id); } -} // namespace net +} // namespace bssl diff --git a/src/pki/cert_error_id.h b/src/pki/cert_error_id.h index e77154b..d325b1b 100644 --- a/src/pki/cert_error_id.h +++ b/src/pki/cert_error_id.h @@ -5,8 +5,7 @@ #ifndef BSSL_PKI_CERT_ERROR_ID_H_ #define BSSL_PKI_CERT_ERROR_ID_H_ -#include "fillins/openssl_util.h" - +#include <openssl/base.h> namespace bssl { @@ -18,7 +17,7 @@ namespace bssl { // Equality of CertErrorId can be done using the == operator. // // To define new error IDs use the macro DEFINE_CERT_ERROR_ID(). -using CertErrorId = const void*; +using CertErrorId = const void *; // DEFINE_CERT_ERROR_ID() creates a CertErrorId given a non-null C-string // literal. The string should be a textual name for the error which will appear @@ -31,8 +30,8 @@ using CertErrorId = const void*; // Returns a debug string for a CertErrorId. In practice this returns the // string literal given to DEFINE_CERT_ERROR_ID(), which is human-readable. -OPENSSL_EXPORT const char* CertErrorIdToDebugString(CertErrorId id); +OPENSSL_EXPORT const char *CertErrorIdToDebugString(CertErrorId id); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_CERT_ERROR_ID_H_ diff --git a/src/pki/cert_error_params.cc b/src/pki/cert_error_params.cc index a454cd7..075d7ef 100644 --- a/src/pki/cert_error_params.cc +++ b/src/pki/cert_error_params.cc @@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "fillins/openssl_util.h" #include "cert_error_params.h" #include <memory> -#include "string_util.h" -#include "input.h" #include <openssl/base.h> +#include "input.h" +#include "string_util.h" + namespace bssl { namespace { @@ -19,17 +19,15 @@ namespace { // blobs. It makes a copy of the der::Inputs. class CertErrorParams2Der : public CertErrorParams { public: - CertErrorParams2Der(const char* name1, - const der::Input& der1, - const char* name2, - const der::Input& der2) + CertErrorParams2Der(const char *name1, der::Input der1, const char *name2, + der::Input der2) : name1_(name1), - der1_(der1.AsString()), + der1_(BytesAsStringView(der1)), name2_(name2), - der2_(der2.AsString()) {} + der2_(BytesAsStringView(der2)) {} - CertErrorParams2Der(const CertErrorParams2Der&) = delete; - CertErrorParams2Der& operator=(const CertErrorParams2Der&) = delete; + CertErrorParams2Der(const CertErrorParams2Der &) = delete; + CertErrorParams2Der &operator=(const CertErrorParams2Der &) = delete; std::string ToDebugString() const override { std::string result; @@ -42,30 +40,31 @@ class CertErrorParams2Der : public CertErrorParams { } private: - static void AppendDer(const char* name, - const std::string& der, - std::string* out) { + static void AppendDer(const char *name, const std::string &der, + std::string *out) { *out += name; + // TODO(crbug.com/boringssl/661): Introduce a convenience function to go + // from a Span<const char> to a Span<const uint8_t>. *out += - ": " + bssl::string_util::HexEncode( - reinterpret_cast<const uint8_t*>(der.data()), der.size()); + ": " + bssl::string_util::HexEncode(MakeConstSpan( + reinterpret_cast<const uint8_t *>(der.data()), der.size())); } - const char* name1_; + const char *name1_; std::string der1_; - const char* name2_; + const char *name2_; std::string der2_; }; // Parameters subclass for describing (and pretty-printing) a single size_t. class CertErrorParams1SizeT : public CertErrorParams { public: - CertErrorParams1SizeT(const char* name, size_t value) + CertErrorParams1SizeT(const char *name, size_t value) : name_(name), value_(value) {} - CertErrorParams1SizeT(const CertErrorParams1SizeT&) = delete; - CertErrorParams1SizeT& operator=(const CertErrorParams1SizeT&) = delete; + CertErrorParams1SizeT(const CertErrorParams1SizeT &) = delete; + CertErrorParams1SizeT &operator=(const CertErrorParams1SizeT &) = delete; std::string ToDebugString() const override { return name_ + std::string(": ") + @@ -73,7 +72,7 @@ class CertErrorParams1SizeT : public CertErrorParams { } private: - const char* name_; + const char *name_; size_t value_; }; @@ -81,25 +80,24 @@ class CertErrorParams1SizeT : public CertErrorParams { // values. class CertErrorParams2SizeT : public CertErrorParams { public: - CertErrorParams2SizeT(const char* name1, - size_t value1, - const char* name2, + CertErrorParams2SizeT(const char *name1, size_t value1, const char *name2, size_t value2) : name1_(name1), value1_(value1), name2_(name2), value2_(value2) {} - CertErrorParams2SizeT(const CertErrorParams2SizeT&) = delete; - CertErrorParams2SizeT& operator=(const CertErrorParams2SizeT&) = delete; + CertErrorParams2SizeT(const CertErrorParams2SizeT &) = delete; + CertErrorParams2SizeT &operator=(const CertErrorParams2SizeT &) = delete; std::string ToDebugString() const override { return name1_ + std::string(": ") + bssl::string_util::NumberToDecimalString(value1_) + "\n" + name2_ + - std::string(": ") + bssl::string_util::NumberToDecimalString(value2_); + std::string(": ") + + bssl::string_util::NumberToDecimalString(value2_); } private: - const char* name1_; + const char *name1_; size_t value1_; - const char* name2_; + const char *name2_; size_t value2_; }; @@ -108,38 +106,33 @@ class CertErrorParams2SizeT : public CertErrorParams { CertErrorParams::CertErrorParams() = default; CertErrorParams::~CertErrorParams() = default; -std::unique_ptr<CertErrorParams> CreateCertErrorParams1Der( - const char* name, - const der::Input& der) { +std::unique_ptr<CertErrorParams> CreateCertErrorParams1Der(const char *name, + der::Input der) { BSSL_CHECK(name); return std::make_unique<CertErrorParams2Der>(name, der, nullptr, der::Input()); } -std::unique_ptr<CertErrorParams> CreateCertErrorParams2Der( - const char* name1, - const der::Input& der1, - const char* name2, - const der::Input& der2) { +std::unique_ptr<CertErrorParams> CreateCertErrorParams2Der(const char *name1, + der::Input der1, + const char *name2, + der::Input der2) { BSSL_CHECK(name1); BSSL_CHECK(name2); return std::make_unique<CertErrorParams2Der>(name1, der1, name2, der2); } -std::unique_ptr<CertErrorParams> CreateCertErrorParams1SizeT(const char* name, +std::unique_ptr<CertErrorParams> CreateCertErrorParams1SizeT(const char *name, size_t value) { BSSL_CHECK(name); return std::make_unique<CertErrorParams1SizeT>(name, value); } OPENSSL_EXPORT std::unique_ptr<CertErrorParams> CreateCertErrorParams2SizeT( - const char* name1, - size_t value1, - const char* name2, - size_t value2) { + const char *name1, size_t value1, const char *name2, size_t value2) { BSSL_CHECK(name1); BSSL_CHECK(name2); return std::make_unique<CertErrorParams2SizeT>(name1, value1, name2, value2); } -} // namespace net +} // namespace bssl diff --git a/src/pki/cert_error_params.h b/src/pki/cert_error_params.h index f13c943..c407782 100644 --- a/src/pki/cert_error_params.h +++ b/src/pki/cert_error_params.h @@ -5,11 +5,10 @@ #ifndef BSSL_PKI_CERT_ERROR_PARAMS_H_ #define BSSL_PKI_CERT_ERROR_PARAMS_H_ -#include "fillins/openssl_util.h" #include <memory> #include <string> - +#include <openssl/base.h> namespace bssl { @@ -27,8 +26,8 @@ class OPENSSL_EXPORT CertErrorParams { public: CertErrorParams(); - CertErrorParams(const CertErrorParams&) = delete; - CertErrorParams& operator=(const CertErrorParams&) = delete; + CertErrorParams(const CertErrorParams &) = delete; + CertErrorParams &operator=(const CertErrorParams &) = delete; virtual ~CertErrorParams(); @@ -40,29 +39,21 @@ class OPENSSL_EXPORT CertErrorParams { // Creates a parameter object that holds a copy of |der|, and names it |name| // in debug string outputs. OPENSSL_EXPORT std::unique_ptr<CertErrorParams> CreateCertErrorParams1Der( - const char* name, - const der::Input& der); + const char *name, der::Input der); // Same as CreateCertErrorParams1Der() but has a second DER blob. OPENSSL_EXPORT std::unique_ptr<CertErrorParams> CreateCertErrorParams2Der( - const char* name1, - const der::Input& der1, - const char* name2, - const der::Input& der2); + const char *name1, der::Input der1, const char *name2, der::Input der2); // Creates a parameter object that holds a single size_t value. |name| is used // when pretty-printing the parameters. OPENSSL_EXPORT std::unique_ptr<CertErrorParams> CreateCertErrorParams1SizeT( - const char* name, - size_t value); + const char *name, size_t value); // Same as CreateCertErrorParams1SizeT() but has a second size_t. OPENSSL_EXPORT std::unique_ptr<CertErrorParams> CreateCertErrorParams2SizeT( - const char* name1, - size_t value1, - const char* name2, - size_t value2); + const char *name1, size_t value1, const char *name2, size_t value2); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_CERT_ERROR_PARAMS_H_ diff --git a/src/pki/cert_errors.cc b/src/pki/cert_errors.cc index 12376b9..3f5a77f 100644 --- a/src/pki/cert_errors.cc +++ b/src/pki/cert_errors.cc @@ -14,9 +14,9 @@ namespace bssl { namespace { -void AppendLinesWithIndentation(const std::string& text, - const std::string& indentation, - std::string* out) { +void AppendLinesWithIndentation(const std::string &text, + const std::string &indentation, + std::string *out) { std::istringstream stream(text); for (std::string line; std::getline(stream, line, '\n');) { out->append(indentation); @@ -29,14 +29,13 @@ void AppendLinesWithIndentation(const std::string& text, CertError::CertError() = default; -CertError::CertError(Severity in_severity, - CertErrorId in_id, +CertError::CertError(Severity in_severity, CertErrorId in_id, std::unique_ptr<CertErrorParams> in_params) : severity(in_severity), id(in_id), params(std::move(in_params)) {} -CertError::CertError(CertError&& other) = default; +CertError::CertError(CertError &&other) = default; -CertError& CertError::operator=(CertError&&) = default; +CertError &CertError::operator=(CertError &&) = default; CertError::~CertError() = default; @@ -53,19 +52,19 @@ std::string CertError::ToDebugString() const { result += CertErrorIdToDebugString(id); result += +"\n"; - if (params) + if (params) { AppendLinesWithIndentation(params->ToDebugString(), " ", &result); + } return result; } CertErrors::CertErrors() = default; -CertErrors::CertErrors(CertErrors&& other) = default; -CertErrors& CertErrors::operator=(CertErrors&&) = default; +CertErrors::CertErrors(CertErrors &&other) = default; +CertErrors &CertErrors::operator=(CertErrors &&) = default; CertErrors::~CertErrors() = default; -void CertErrors::Add(CertError::Severity severity, - CertErrorId id, +void CertErrors::Add(CertError::Severity severity, CertErrorId id, std::unique_ptr<CertErrorParams> params) { nodes_.emplace_back(severity, id, std::move(params)); } @@ -75,103 +74,112 @@ void CertErrors::AddError(CertErrorId id, Add(CertError::SEVERITY_HIGH, id, std::move(params)); } -void CertErrors::AddError(CertErrorId id) { - AddError(id, nullptr); -} +void CertErrors::AddError(CertErrorId id) { AddError(id, nullptr); } void CertErrors::AddWarning(CertErrorId id, std::unique_ptr<CertErrorParams> params) { Add(CertError::SEVERITY_WARNING, id, std::move(params)); } -void CertErrors::AddWarning(CertErrorId id) { - AddWarning(id, nullptr); -} +void CertErrors::AddWarning(CertErrorId id) { AddWarning(id, nullptr); } std::string CertErrors::ToDebugString() const { std::string result; - for (const CertError& node : nodes_) + for (const CertError &node : nodes_) { result += node.ToDebugString(); + } return result; } -bool CertErrors::ContainsError(CertErrorId id) const { - for (const CertError& node : nodes_) { - if (node.id == id) +bool CertErrors::ContainsErrorWithSeverity(CertErrorId id, + CertError::Severity severity) const { + for (const CertError &node : nodes_) { + if (node.id == id && node.severity == severity) { return true; + } } return false; } +bool CertErrors::ContainsError(CertErrorId id) const { + return ContainsErrorWithSeverity(id, CertError::SEVERITY_HIGH); +} + bool CertErrors::ContainsAnyErrorWithSeverity( CertError::Severity severity) const { - for (const CertError& node : nodes_) { - if (node.severity == severity) + for (const CertError &node : nodes_) { + if (node.severity == severity) { return true; + } } return false; } CertPathErrors::CertPathErrors() = default; -CertPathErrors::CertPathErrors(CertPathErrors&& other) = default; -CertPathErrors& CertPathErrors::operator=(CertPathErrors&&) = default; +CertPathErrors::CertPathErrors(CertPathErrors &&other) = default; +CertPathErrors &CertPathErrors::operator=(CertPathErrors &&) = default; CertPathErrors::~CertPathErrors() = default; -CertErrors* CertPathErrors::GetErrorsForCert(size_t cert_index) { - if (cert_index >= cert_errors_.size()) +CertErrors *CertPathErrors::GetErrorsForCert(size_t cert_index) { + if (cert_index >= cert_errors_.size()) { cert_errors_.resize(cert_index + 1); + } return &cert_errors_[cert_index]; } -const CertErrors* CertPathErrors::GetErrorsForCert(size_t cert_index) const { - if (cert_index >= cert_errors_.size()) +const CertErrors *CertPathErrors::GetErrorsForCert(size_t cert_index) const { + if (cert_index >= cert_errors_.size()) { return nullptr; + } return &cert_errors_[cert_index]; } -CertErrors* CertPathErrors::GetOtherErrors() { - return &other_errors_; -} +CertErrors *CertPathErrors::GetOtherErrors() { return &other_errors_; } bool CertPathErrors::ContainsError(CertErrorId id) const { - for (const CertErrors& errors : cert_errors_) { - if (errors.ContainsError(id)) + for (const CertErrors &errors : cert_errors_) { + if (errors.ContainsError(id)) { return true; + } } - if (other_errors_.ContainsError(id)) + if (other_errors_.ContainsError(id)) { return true; + } return false; } bool CertPathErrors::ContainsAnyErrorWithSeverity( CertError::Severity severity) const { - for (const CertErrors& errors : cert_errors_) { - if (errors.ContainsAnyErrorWithSeverity(severity)) + for (const CertErrors &errors : cert_errors_) { + if (errors.ContainsAnyErrorWithSeverity(severity)) { return true; + } } - if (other_errors_.ContainsAnyErrorWithSeverity(severity)) + if (other_errors_.ContainsAnyErrorWithSeverity(severity)) { return true; + } return false; } std::string CertPathErrors::ToDebugString( - const ParsedCertificateList& certs) const { + const ParsedCertificateList &certs) const { std::ostringstream result; for (size_t i = 0; i < cert_errors_.size(); ++i) { // Pretty print the current CertErrors. If there were no errors/warnings, // then continue. - const CertErrors& errors = cert_errors_[i]; + const CertErrors &errors = cert_errors_[i]; std::string cert_errors_string = errors.ToDebugString(); - if (cert_errors_string.empty()) + if (cert_errors_string.empty()) { continue; + } // Add a header that identifies which certificate this CertErrors pertains // to. @@ -198,4 +206,4 @@ std::string CertPathErrors::ToDebugString( return result.str(); } -} // namespace net +} // namespace bssl diff --git a/src/pki/cert_errors.h b/src/pki/cert_errors.h index 68977f8..da35060 100644 --- a/src/pki/cert_errors.h +++ b/src/pki/cert_errors.h @@ -5,7 +5,6 @@ // ---------------------------- // Overview of error design // ---------------------------- -#include "fillins/openssl_util.h" // // Certificate path building/validation/parsing may emit a sequence of errors // and warnings. @@ -50,6 +49,7 @@ #include <memory> #include <vector> +#include <openssl/base.h> #include "cert_error_id.h" #include "parsed_certificate.h" @@ -66,11 +66,10 @@ struct OPENSSL_EXPORT CertError { }; CertError(); - CertError(Severity severity, - CertErrorId id, + CertError(Severity severity, CertErrorId id, std::unique_ptr<CertErrorParams> params); - CertError(CertError&& other); - CertError& operator=(CertError&&); + CertError(CertError &&other); + CertError &operator=(CertError &&); ~CertError(); // Pretty-prints the error and its parameters. @@ -86,13 +85,12 @@ struct OPENSSL_EXPORT CertError { class OPENSSL_EXPORT CertErrors { public: CertErrors(); - CertErrors(CertErrors&& other); - CertErrors& operator=(CertErrors&&); + CertErrors(CertErrors &&other); + CertErrors &operator=(CertErrors &&); ~CertErrors(); // Adds an error/warning. |params| may be null. - void Add(CertError::Severity severity, - CertErrorId id, + void Add(CertError::Severity severity, CertErrorId id, std::unique_ptr<CertErrorParams> params); // Adds a high severity error. @@ -106,8 +104,13 @@ class OPENSSL_EXPORT CertErrors { // Dumps a textual representation of the errors for debugging purposes. std::string ToDebugString() const; - // Returns true if the error |id| was added to this CertErrors (of any - // severity). + // Returns true if the error |id| was added to this CertErrors at + // severity |severity| + bool ContainsErrorWithSeverity(CertErrorId id, + CertError::Severity severity) const; + + // Returns true if the error |id| was added to this CertErrors at + // high serverity. bool ContainsError(CertErrorId id) const; // Returns true if this contains any errors of the given severity level. @@ -123,24 +126,24 @@ class OPENSSL_EXPORT CertErrors { class OPENSSL_EXPORT CertPathErrors { public: CertPathErrors(); - CertPathErrors(CertPathErrors&& other); - CertPathErrors& operator=(CertPathErrors&&); + CertPathErrors(CertPathErrors &&other); + CertPathErrors &operator=(CertPathErrors &&); ~CertPathErrors(); // Gets a bucket to put errors in for |cert_index|. This will lookup and // return the existing error bucket if one exists, or create a new one for the // specified index. It is expected that |cert_index| is the corresponding // index in a certificate chain (with 0 being the target). - CertErrors* GetErrorsForCert(size_t cert_index); + CertErrors *GetErrorsForCert(size_t cert_index); // Const version of the above, with the difference that if there is no // existing bucket for |cert_index| returns nullptr rather than lazyily // creating one. - const CertErrors* GetErrorsForCert(size_t cert_index) const; + const CertErrors *GetErrorsForCert(size_t cert_index) const; // Returns a bucket to put errors that are not associated with a particular // certificate. - CertErrors* GetOtherErrors(); + CertErrors *GetOtherErrors(); // Returns true if CertPathErrors contains the specified error (of any // severity). @@ -156,13 +159,13 @@ class OPENSSL_EXPORT CertPathErrors { // Pretty-prints all the errors in the CertPathErrors. If there were no // errors/warnings, returns an empty string. - std::string ToDebugString(const ParsedCertificateList& certs) const; + std::string ToDebugString(const ParsedCertificateList &certs) const; private: std::vector<CertErrors> cert_errors_; CertErrors other_errors_; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_CERT_ERRORS_H_ diff --git a/src/pki/cert_issuer_source.h b/src/pki/cert_issuer_source.h index ba37d45..7de0fa4 100644 --- a/src/pki/cert_issuer_source.h +++ b/src/pki/cert_issuer_source.h @@ -5,10 +5,10 @@ #ifndef BSSL_PKI_CERT_ISSUER_SOURCE_H_ #define BSSL_PKI_CERT_ISSUER_SOURCE_H_ -#include "fillins/openssl_util.h" #include <memory> #include <vector> +#include <openssl/base.h> #include "parsed_certificate.h" @@ -27,8 +27,8 @@ class OPENSSL_EXPORT CertIssuerSource { public: Request() = default; - Request(const Request&) = delete; - Request& operator=(const Request&) = delete; + Request(const Request &) = delete; + Request &operator=(const Request &) = delete; // Destruction of the Request cancels it. virtual ~Request() = default; @@ -40,7 +40,7 @@ class OPENSSL_EXPORT CertIssuerSource { // If no issuers are left then |issuers| will not be modified. This // indicates that the issuers have been exhausted and GetNext() should // not be called again. - virtual void GetNext(ParsedCertificateList* issuers) = 0; + virtual void GetNext(ParsedCertificateList *issuers) = 0; }; virtual ~CertIssuerSource() = default; @@ -49,8 +49,8 @@ class OPENSSL_EXPORT CertIssuerSource { // Matches are appended to |issuers|. Any existing contents of |issuers| will // not be modified. If the implementation does not support synchronous // lookups, or if there are no matches, |issuers| is not modified. - virtual void SyncGetIssuersOf(const ParsedCertificate* cert, - ParsedCertificateList* issuers) = 0; + virtual void SyncGetIssuersOf(const ParsedCertificate *cert, + ParsedCertificateList *issuers) = 0; // Finds certificates whose Subject matches |cert|'s Issuer. // If the implementation does not support asynchronous lookups or can @@ -59,10 +59,10 @@ class OPENSSL_EXPORT CertIssuerSource { // // Otherwise a request is started and saved to |out_req|. The results can be // read through the Request interface. - virtual void AsyncGetIssuersOf(const ParsedCertificate* cert, - std::unique_ptr<Request>* out_req) = 0; + virtual void AsyncGetIssuersOf(const ParsedCertificate *cert, + std::unique_ptr<Request> *out_req) = 0; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_CERT_ISSUER_SOURCE_H_ diff --git a/src/pki/cert_issuer_source_static.cc b/src/pki/cert_issuer_source_static.cc index ea4be67..fc20eb9 100644 --- a/src/pki/cert_issuer_source_static.cc +++ b/src/pki/cert_issuer_source_static.cc @@ -12,26 +12,24 @@ CertIssuerSourceStatic::~CertIssuerSourceStatic() = default; void CertIssuerSourceStatic::AddCert( std::shared_ptr<const ParsedCertificate> cert) { intermediates_.insert(std::make_pair( - cert->normalized_subject().AsStringView(), std::move(cert))); + BytesAsStringView(cert->normalized_subject()), std::move(cert))); } -void CertIssuerSourceStatic::Clear() { - intermediates_.clear(); -} +void CertIssuerSourceStatic::Clear() { intermediates_.clear(); } -void CertIssuerSourceStatic::SyncGetIssuersOf(const ParsedCertificate* cert, - ParsedCertificateList* issuers) { +void CertIssuerSourceStatic::SyncGetIssuersOf(const ParsedCertificate *cert, + ParsedCertificateList *issuers) { auto range = - intermediates_.equal_range(cert->normalized_issuer().AsStringView()); - for (auto it = range.first; it != range.second; ++it) + intermediates_.equal_range(BytesAsStringView(cert->normalized_issuer())); + for (auto it = range.first; it != range.second; ++it) { issuers->push_back(it->second); + } } void CertIssuerSourceStatic::AsyncGetIssuersOf( - const ParsedCertificate* cert, - std::unique_ptr<Request>* out_req) { + const ParsedCertificate *cert, std::unique_ptr<Request> *out_req) { // CertIssuerSourceStatic never returns asynchronous results. out_req->reset(); } -} // namespace net +} // namespace bssl diff --git a/src/pki/cert_issuer_source_static.h b/src/pki/cert_issuer_source_static.h index 11be846..1e60934 100644 --- a/src/pki/cert_issuer_source_static.h +++ b/src/pki/cert_issuer_source_static.h @@ -5,9 +5,9 @@ #ifndef BSSL_PKI_CERT_ISSUER_SOURCE_STATIC_H_ #define BSSL_PKI_CERT_ISSUER_SOURCE_STATIC_H_ -#include "fillins/openssl_util.h" #include <unordered_map> +#include <openssl/base.h> #include "cert_issuer_source.h" @@ -18,8 +18,8 @@ class OPENSSL_EXPORT CertIssuerSourceStatic : public CertIssuerSource { public: CertIssuerSourceStatic(); - CertIssuerSourceStatic(const CertIssuerSourceStatic&) = delete; - CertIssuerSourceStatic& operator=(const CertIssuerSourceStatic&) = delete; + CertIssuerSourceStatic(const CertIssuerSourceStatic &) = delete; + CertIssuerSourceStatic &operator=(const CertIssuerSourceStatic &) = delete; ~CertIssuerSourceStatic() override; @@ -33,10 +33,10 @@ class OPENSSL_EXPORT CertIssuerSourceStatic : public CertIssuerSource { size_t size() const { return intermediates_.size(); } // CertIssuerSource implementation: - void SyncGetIssuersOf(const ParsedCertificate* cert, - ParsedCertificateList* issuers) override; - void AsyncGetIssuersOf(const ParsedCertificate* cert, - std::unique_ptr<Request>* out_req) override; + void SyncGetIssuersOf(const ParsedCertificate *cert, + ParsedCertificateList *issuers) override; + void AsyncGetIssuersOf(const ParsedCertificate *cert, + std::unique_ptr<Request> *out_req) override; private: // The certificates that the CertIssuerSourceStatic can return, keyed on the @@ -46,6 +46,6 @@ class OPENSSL_EXPORT CertIssuerSourceStatic : public CertIssuerSource { intermediates_; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_CERT_ISSUER_SOURCE_STATIC_H_ diff --git a/src/pki/cert_issuer_source_static_unittest.cc b/src/pki/cert_issuer_source_static_unittest.cc index b745968..36f809a 100644 --- a/src/pki/cert_issuer_source_static_unittest.cc +++ b/src/pki/cert_issuer_source_static_unittest.cc @@ -4,9 +4,9 @@ #include "cert_issuer_source_static.h" +#include <gtest/gtest.h> #include "cert_issuer_source_sync_unittest.h" #include "parsed_certificate.h" -#include <gtest/gtest.h> namespace bssl { @@ -18,7 +18,7 @@ class CertIssuerSourceStaticTestDelegate { source_.AddCert(std::move(cert)); } - CertIssuerSource& source() { return source_; } + CertIssuerSource &source() { return source_; } protected: CertIssuerSourceStatic source_; @@ -37,4 +37,4 @@ GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST( } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/cert_issuer_source_sync_unittest.h b/src/pki/cert_issuer_source_sync_unittest.h index ef5ef0b..c9e25c1 100644 --- a/src/pki/cert_issuer_source_sync_unittest.h +++ b/src/pki/cert_issuer_source_sync_unittest.h @@ -7,19 +7,19 @@ #include <algorithm> +#include <gtest/gtest.h> +#include <openssl/pool.h> #include "cert_errors.h" #include "cert_issuer_source.h" #include "test_helpers.h" -#include <gtest/gtest.h> -#include <openssl/pool.h> namespace bssl { namespace { -::testing::AssertionResult ReadTestPem(const std::string& file_name, - const std::string& block_name, - std::string* result) { +::testing::AssertionResult ReadTestPem(const std::string &file_name, + const std::string &block_name, + std::string *result) { const PemBlockMapping mappings[] = { {block_name.c_str(), result}, }; @@ -28,18 +28,19 @@ namespace { } ::testing::AssertionResult ReadTestCert( - const std::string& file_name, - std::shared_ptr<const ParsedCertificate>* result) { + const std::string &file_name, + std::shared_ptr<const ParsedCertificate> *result) { std::string der; ::testing::AssertionResult r = ReadTestPem("testdata/cert_issuer_source_static_unittest/" + file_name, "CERTIFICATE", &der); - if (!r) + if (!r) { return r; + } CertErrors errors; *result = ParsedCertificate::Create( bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(der.data()), der.size(), nullptr)), + reinterpret_cast<const uint8_t *>(der.data()), der.size(), nullptr)), {}, &errors); if (!*result) { return ::testing::AssertionFailure() @@ -86,7 +87,7 @@ class CertIssuerSourceSyncTest : public ::testing::Test { AddCert(e2_); } - CertIssuerSource& source() { return delegate_.source(); } + CertIssuerSource &source() { return delegate_.source(); } protected: bool IssuersMatch(std::shared_ptr<const ParsedCertificate> cert, @@ -95,17 +96,20 @@ class CertIssuerSourceSyncTest : public ::testing::Test { source().SyncGetIssuersOf(cert.get(), &matches); std::vector<der::Input> der_result_matches; - for (const auto& it : matches) + for (const auto &it : matches) { der_result_matches.push_back(it->der_cert()); + } std::sort(der_result_matches.begin(), der_result_matches.end()); std::vector<der::Input> der_expected_matches; - for (const auto& it : expected_matches) + for (const auto &it : expected_matches) { der_expected_matches.push_back(it->der_cert()); + } std::sort(der_expected_matches.begin(), der_expected_matches.end()); - if (der_expected_matches == der_result_matches) + if (der_expected_matches == der_result_matches) { return true; + } // Print some extra information for debugging. EXPECT_EQ(der_expected_matches, der_result_matches); @@ -168,12 +172,8 @@ TYPED_TEST_P(CertIssuerSourceSyncTest, IsNotAsync) { // These are all the tests that should have the same result with or without // normalization. -REGISTER_TYPED_TEST_SUITE_P(CertIssuerSourceSyncTest, - NoMatch, - OneMatch, - MultipleMatches, - SelfIssued, - IsNotAsync); +REGISTER_TYPED_TEST_SUITE_P(CertIssuerSourceSyncTest, NoMatch, OneMatch, + MultipleMatches, SelfIssued, IsNotAsync); template <typename TestDelegate> class CertIssuerSourceSyncNormalizationTest @@ -211,6 +211,6 @@ TYPED_TEST_P(CertIssuerSourceSyncNotNormalizedTest, REGISTER_TYPED_TEST_SUITE_P(CertIssuerSourceSyncNotNormalizedTest, OneMatchWithoutNormalization); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_CERT_ISSUER_SOURCE_SYNC_UNITTEST_H_ diff --git a/src/pki/cert_status_flags.h b/src/pki/cert_status_flags.h deleted file mode 100644 index 9f7d979..0000000 --- a/src/pki/cert_status_flags.h +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2012 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_PKI_CERT_STATUS_FLAGS_H_ -#define BSSL_PKI_CERT_STATUS_FLAGS_H_ - -#include "fillins/openssl_util.h" -#include <stdint.h> - - - -namespace bssl { - -// Bitmask of status flags of a certificate, representing any errors, as well as -// other non-error status information such as whether the certificate is EV. -typedef uint32_t CertStatus; - -// NOTE: Because these names have appeared in bug reports, we preserve them as -// MACRO_STYLE for continuity, instead of renaming them to kConstantStyle as -// befits most static consts. -#define CERT_STATUS_FLAG(label, value) \ - CertStatus static const CERT_STATUS_##label = value; -#include "cert_status_flags_list.h" -#undef CERT_STATUS_FLAG - -static const CertStatus CERT_STATUS_ALL_ERRORS = 0xFF00FFFF; - -// Returns true if the specified cert status has an error set. -inline bool IsCertStatusError(CertStatus status) { - return (CERT_STATUS_ALL_ERRORS & status) != 0; -} - -// Maps a network error code to the equivalent certificate status flag. If -// the error code is not a certificate error, it is mapped to 0. -// Note: It is not safe to go bssl::CertStatus -> bssl::Error -> bssl::CertStatus, -// as the CertStatus contains more information. Conversely, going from -// bssl::Error -> bssl::CertStatus -> bssl::Error is not a lossy function, for the -// same reason. -// To avoid incorrect use, this is only exported for unittest helpers. -OPENSSL_EXPORT CertStatus MapNetErrorToCertStatus(int error); - -// Maps the most serious certificate error in the certificate status flags -// to the equivalent network error code. -OPENSSL_EXPORT int MapCertStatusToNetError(CertStatus cert_status); - -} // namespace net - -#endif // BSSL_PKI_CERT_STATUS_FLAGS_H_ diff --git a/src/pki/cert_status_flags_list.h b/src/pki/cert_status_flags_list.h deleted file mode 100644 index d5ab73c..0000000 --- a/src/pki/cert_status_flags_list.h +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2014 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file intentionally does not have header guards, it's included -// inside a macro to generate enum values. The following line silences a -// presubmit warning that would otherwise be triggered by this: -// no-include-guard-because-multiply-included -// NOLINT(build/header_guard) - -// This is the list of CertStatus flags and their values. -// -// Defines the values using a macro CERT_STATUS_FLAG, -// so it can be expanded differently in some places - -// The possible status bits for CertStatus. -// Bits 0 to 15 are for errors. -CERT_STATUS_FLAG(COMMON_NAME_INVALID, 1 << 0) -CERT_STATUS_FLAG(DATE_INVALID, 1 << 1) -CERT_STATUS_FLAG(AUTHORITY_INVALID, 1 << 2) -// 1 << 3 is reserved for ERR_CERT_CONTAINS_ERRORS (not useful with WinHTTP). -CERT_STATUS_FLAG(NO_REVOCATION_MECHANISM, 1 << 4) -CERT_STATUS_FLAG(UNABLE_TO_CHECK_REVOCATION, 1 << 5) -CERT_STATUS_FLAG(REVOKED, 1 << 6) -CERT_STATUS_FLAG(INVALID, 1 << 7) -CERT_STATUS_FLAG(WEAK_SIGNATURE_ALGORITHM, 1 << 8) -// 1 << 9 was used for CERT_STATUS_NOT_IN_DNS -CERT_STATUS_FLAG(NON_UNIQUE_NAME, 1 << 10) -CERT_STATUS_FLAG(WEAK_KEY, 1 << 11) -// 1 << 12 was used for CERT_STATUS_WEAK_DH_KEY -CERT_STATUS_FLAG(PINNED_KEY_MISSING, 1 << 13) -CERT_STATUS_FLAG(NAME_CONSTRAINT_VIOLATION, 1 << 14) -CERT_STATUS_FLAG(VALIDITY_TOO_LONG, 1 << 15) - -// Bits 16 to 23 are for non-error statuses. -CERT_STATUS_FLAG(IS_EV, 1 << 16) -CERT_STATUS_FLAG(REV_CHECKING_ENABLED, 1 << 17) -// Bit 18 was CERT_STATUS_IS_DNSSEC -CERT_STATUS_FLAG(SHA1_SIGNATURE_PRESENT, 1 << 19) -CERT_STATUS_FLAG(CT_COMPLIANCE_FAILED, 1 << 20) -CERT_STATUS_FLAG(KNOWN_INTERCEPTION_DETECTED, 1 << 21) - -// Bits 24 - 31 are for errors. -CERT_STATUS_FLAG(CERTIFICATE_TRANSPARENCY_REQUIRED, 1 << 24) -CERT_STATUS_FLAG(SYMANTEC_LEGACY, 1 << 25) -CERT_STATUS_FLAG(KNOWN_INTERCEPTION_BLOCKED, 1 << 26) -// Bit 27 was CERT_STATUS_LEGACY_TLS. diff --git a/src/pki/cert_verify_proc_blocklist.inc b/src/pki/cert_verify_proc_blocklist.inc deleted file mode 100644 index dfc238a..0000000 --- a/src/pki/cert_verify_proc_blocklist.inc +++ /dev/null @@ -1,427 +0,0 @@ -// Copyright 2016 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// The certificate(s) that were misissued, and which represent these SPKIs, -// are stored within net/data/ssl/blocklist. Further details about the -// rationale is documented in net/data/ssl/blocklist/README.md -static constexpr uint8_t - kSPKIBlockList[][SHA256_DIGEST_LENGTH] = { - // 2740d956b1127b791aa1b3cc644a4dbedba76186a23638b95102351a834ea861.pem - {0x04, 0xdd, 0xe9, 0xaa, 0x9a, 0x79, 0xf6, 0x14, 0x98, 0x68, 0x23, - 0x25, 0xfa, 0x08, 0x70, 0x27, 0x67, 0x07, 0xfb, 0x9c, 0xa9, 0x53, - 0x84, 0x12, 0x0b, 0x46, 0x89, 0x32, 0x68, 0x49, 0x4f, 0xc9}, - // 91e5cc32910686c5cac25c18cc805696c7b33868c280caf0c72844a2a8eb91e2.pem - {0x0c, 0x43, 0xea, 0x8b, 0xcd, 0xe9, 0xfc, 0x3b, 0xca, 0x16, 0x56, - 0x64, 0xac, 0x82, 0x15, 0x56, 0x7e, 0x34, 0x89, 0xd5, 0x39, 0x3a, - 0x0c, 0x81, 0xe1, 0xa7, 0x91, 0x41, 0x99, 0x2e, 0x19, 0x53}, - // ead610e6e90b439f2ecb51628b0932620f6ef340bd843fca38d3181b8f4ba197.pem - {0x12, 0x13, 0x23, 0x60, 0xa3, 0x3b, 0xfd, 0xc6, 0xc3, 0xbf, 0x7b, - 0x7f, 0xab, 0x26, 0xa1, 0x68, 0x48, 0x74, 0xe7, 0x2c, 0x12, 0x63, - 0xc1, 0xf5, 0xde, 0x56, 0x5b, 0xb4, 0x9e, 0xf0, 0x37, 0x53}, - // 4bf6bb839b03b72839329b4ea70bb1b2f0d07e014d9d24aa9cc596114702bee3.pem - {0x12, 0x7d, 0xa2, 0x7a, 0x9e, 0x45, 0xf0, 0x82, 0x28, 0x0b, 0x31, - 0xbf, 0x1e, 0x56, 0x15, 0x20, 0x38, 0x9f, 0x96, 0x65, 0x90, 0x93, - 0xb2, 0x69, 0x7c, 0x40, 0xfe, 0x86, 0x00, 0x23, 0x6c, 0x8c}, - // 0f912fd7be760be25afbc56bdc09cd9e5dcc9c6f6a55a778aefcb6aa30e31554.pem - {0x13, 0x0a, 0xd4, 0xe0, 0x63, 0x35, 0x21, 0x29, 0x05, 0x31, 0xb6, - 0x65, 0x1f, 0x57, 0x59, 0xb0, 0xbc, 0x7b, 0xc6, 0x56, 0x70, 0x9f, - 0xf8, 0xf3, 0x65, 0xc2, 0x14, 0x3b, 0x03, 0x89, 0xb6, 0xf6}, - // 91018fcd3e0dc73f48d011a123f604d846d66821c58304474f949d7449dd600a.pem - {0x15, 0xe7, 0xae, 0x40, 0xcc, 0x4b, 0x3f, 0x72, 0x22, 0xa5, 0xa6, - 0xfe, 0x3e, 0x7d, 0xc4, 0x7f, 0x6e, 0x46, 0xee, 0x9a, 0x22, 0x51, - 0x83, 0x9d, 0xb2, 0x96, 0xd6, 0x2a, 0xda, 0x2a, 0x0d, 0xf7}, - // c7ba6567de93a798ae1faa791e712d378fae1f93c4397fea441bb7cbe6fd5995.pem - {0x15, 0x28, 0x39, 0x7d, 0xa2, 0x12, 0x89, 0x0a, 0x83, 0x0b, 0x0b, - 0x95, 0xa5, 0x99, 0x68, 0xce, 0xf2, 0x34, 0x77, 0x37, 0x79, 0xdf, - 0x51, 0x81, 0xcf, 0x10, 0xfa, 0x64, 0x75, 0x34, 0xbb, 0x65}, - // 1af56c98ff043ef92bebff54cebb4dd67a25ba956c817f3e6dd3c1e52eb584c1.key - {0x1a, 0xf5, 0x6c, 0x98, 0xff, 0x04, 0x3e, 0xf9, 0x2b, 0xeb, 0xff, - 0x54, 0xce, 0xbb, 0x4d, 0xd6, 0x7a, 0x25, 0xba, 0x95, 0x6c, 0x81, - 0x7f, 0x3e, 0x6d, 0xd3, 0xc1, 0xe5, 0x2e, 0xb5, 0x84, 0xc1}, - // e28393773da845a679f2080cc7fb44a3b7a1c3792cb7eb7729fdcb6a8d99aea7.pem - {0x1f, 0x42, 0x24, 0xce, 0xc8, 0x4f, 0xc9, 0x9c, 0xed, 0x88, 0x1f, - 0xf6, 0xfc, 0xfd, 0x3e, 0x21, 0xf8, 0xc5, 0x19, 0xc5, 0x47, 0xaa, - 0x6a, 0x5d, 0xd3, 0xde, 0x24, 0x73, 0x02, 0xce, 0x50, 0xd1}, - // e54e9fc27e7350ff63a77764a40267b7e95ae5df3ed7df5336e8f8541356c845.pem - {0x25, 0xda, 0x1a, 0xd5, 0x8b, 0xbf, 0xcf, 0xb2, 0x27, 0xd8, 0x72, - 0x3b, 0x18, 0x57, 0xd4, 0xc1, 0x8e, 0x7b, 0xaa, 0x74, 0x17, 0xb4, - 0xf9, 0xef, 0xf9, 0x36, 0x6b, 0x5e, 0x86, 0x9f, 0x8b, 0x39}, - // 159ca03a88897c8f13817a212629df84ce824709492b8c9adb8e5437d2fc72be.pem - {0x2c, 0x99, 0x8e, 0x76, 0x11, 0x60, 0xc3, 0xb0, 0x6d, 0x82, 0xfa, - 0xa9, 0xfd, 0xc7, 0x54, 0x5d, 0x9b, 0xda, 0x9e, 0xb6, 0x03, 0x10, - 0xf9, 0x92, 0xaa, 0x51, 0x0a, 0x62, 0x80, 0xb7, 0x42, 0x45}, - // 82a4cedbc7f61ce5cb04482aa27ea3145bb0cea58ab63ba1931a1654bfbdbb4f.pem - {0x2d, 0xc4, 0xcb, 0x59, 0x1f, 0x7e, 0xf0, 0x66, 0x34, 0x41, 0x64, - 0x6b, 0xcf, 0x5c, 0x0e, 0x9d, 0xbc, 0xde, 0xd7, 0x7c, 0xa0, 0x29, - 0x45, 0x19, 0x3c, 0xef, 0xc6, 0xed, 0xb1, 0x74, 0x06, 0x14}, - // d0d672c2547d574ae055d9e78a993ddbcc74044c4253fbfaca573a67d368e1db.pem - {0x30, 0xef, 0xe4, 0x13, 0x82, 0x47, 0x6c, 0x33, 0x80, 0xf0, 0x2f, - 0x7e, 0x23, 0xe6, 0x6b, 0xa2, 0xf8, 0x67, 0xb0, 0x59, 0xee, 0x1e, - 0xa6, 0x87, 0x96, 0xb4, 0x41, 0xb8, 0x5b, 0x5d, 0x12, 0x56}, - // 32ecc96f912f96d889e73088cd031c7ded2c651c805016157a23b6f32f798a3b.key - {0x32, 0xec, 0xc9, 0x6f, 0x91, 0x2f, 0x96, 0xd8, 0x89, 0xe7, 0x30, - 0x88, 0xcd, 0x03, 0x1c, 0x7d, 0xed, 0x2c, 0x65, 0x1c, 0x80, 0x50, - 0x16, 0x15, 0x7a, 0x23, 0xb6, 0xf3, 0x2f, 0x79, 0x8a, 0x3b}, - // 4aefc3d39ef59e4d4b0304b20f53a8af2efb69edece66def74494abfc10a2d66.pem - {0x36, 0xea, 0x96, 0x12, 0x8c, 0x89, 0x83, 0x9f, 0xb6, 0x21, 0xf8, - 0xad, 0x0e, 0x1e, 0xe0, 0xb9, 0xc2, 0x20, 0x6f, 0x62, 0xab, 0x7b, - 0x4d, 0xa2, 0xc6, 0x76, 0x58, 0x93, 0xc9, 0xb7, 0xce, 0xd2}, - // d487a56f83b07482e85e963394c1ecc2c9e51d0903ee946b02c301581ed99e16.pem - {0x38, 0x1a, 0x3f, 0xc7, 0xa8, 0xb0, 0x82, 0xfa, 0x28, 0x61, 0x3a, - 0x4d, 0x07, 0xf2, 0xc7, 0x55, 0x3f, 0x4e, 0x19, 0x18, 0xee, 0x07, - 0xca, 0xa9, 0xe8, 0xb7, 0xce, 0xde, 0x5a, 0x9c, 0xa0, 0x6a}, - // 0ef7c54a3af101a2cfedb0c9f36fe8214d51a504fdc2ad1e243019cefd7d03c2.pem - {0x38, 0x3e, 0x0e, 0x13, 0x7c, 0x37, 0xbf, 0xb9, 0xdb, 0x29, 0xf9, - 0xa8, 0xe4, 0x5e, 0x9f, 0xf8, 0xdd, 0x4c, 0x30, 0xe4, 0x40, 0xfe, - 0xc2, 0xac, 0xd3, 0xdb, 0xa7, 0xb6, 0xc7, 0x20, 0xb9, 0x93}, - // cb954e9d80a3e520ac71f1a84511657f2f309d172d0bb55e0ec2c236e74ff4b4.pem - {0x39, 0x4c, 0xff, 0x58, 0x9e, 0x68, 0x93, 0x12, 0xcf, 0xc0, 0x71, - 0xee, 0x0b, 0xc1, 0x9f, 0xe4, 0xc6, 0x06, 0x21, 0x6c, 0xe5, 0x43, - 0x42, 0x9d, 0xe6, 0xdb, 0x62, 0xe4, 0x2d, 0xbb, 0x3b, 0xc1}, - // 42187727be39faf667aeb92bf0cc4e268f6e2ead2cefbec575bdc90430024f69.pem - {0x3e, 0xdb, 0xd9, 0xac, 0xe6, 0x39, 0xba, 0x1a, 0x2d, 0x4a, 0xd0, - 0x47, 0x18, 0x71, 0x1f, 0xda, 0x23, 0xe8, 0x59, 0xb2, 0xfb, 0xf5, - 0xd1, 0x37, 0xd4, 0x24, 0x04, 0x5e, 0x79, 0x19, 0xdf, 0xb9}, - // 294f55ef3bd7244c6ff8a68ab797e9186ec27582751a791515e3292e48372d61.pem - {0x45, 0x5b, 0x87, 0xe9, 0x6f, 0x1c, 0xea, 0x2f, 0x8b, 0x6d, 0xae, - 0x08, 0x08, 0xec, 0x24, 0x73, 0x8f, 0xd9, 0x2b, 0x7f, 0xd3, 0x06, - 0x75, 0x71, 0x98, 0xbf, 0x38, 0x9d, 0x75, 0x5c, 0x0b, 0x6c}, - // 3ab0fcc7287454c405863e3aa204fea8eb0c50a524d2a7e15524a830cd4ab0fe.pem - {0x49, 0x0b, 0x6e, 0xc6, 0xbe, 0xb2, 0xd6, 0x03, 0x47, 0x20, 0xb5, - 0x14, 0x9b, 0x6b, 0x29, 0xcd, 0x35, 0x51, 0x59, 0x88, 0xcc, 0x16, - 0xaf, 0x85, 0x41, 0x48, 0xb0, 0x7b, 0x9b, 0x1f, 0x8a, 0x11}, - // b6fe9151402bad1c06d7e66db67a26aa7356f2e6c644dbcf9f98968ff632e1b7.pem - {0x4b, 0xb8, 0xf3, 0x5b, 0xa1, 0xe1, 0x26, 0xf8, 0xdd, 0xe1, 0xb0, - 0xc4, 0x20, 0x62, 0x5e, 0xd8, 0x6d, 0xce, 0x61, 0xa7, 0xbd, 0xda, - 0xdb, 0xde, 0xa9, 0xab, 0xa5, 0x78, 0xff, 0x13, 0x14, 0x5e}, - // fa5a828c9a7e732692682e60b14c634309cbb2bb79eb12aef44318d853ee97e3.pem - {0x4c, 0xdb, 0x06, 0x0f, 0x3c, 0xfe, 0x4c, 0x3d, 0x3f, 0x5e, 0x31, - 0xc3, 0x00, 0xfd, 0x68, 0xa9, 0x1e, 0x0d, 0x1e, 0x5f, 0x46, 0xb6, - 0x4e, 0x48, 0x95, 0xf2, 0x0e, 0x1b, 0x5c, 0xf8, 0x26, 0x9f}, - // ef3cb417fc8ebf6f97876c9e4ece39de1ea5fe649141d1028b7d11c0b2298ced.pem - {0x4e, 0xad, 0xa9, 0xb5, 0x31, 0x1e, 0x71, 0x81, 0x99, 0xd9, 0x8e, - 0xa8, 0x2b, 0x95, 0x00, 0x5c, 0xba, 0x93, 0x19, 0x8a, 0xb1, 0xf9, - 0x7e, 0xfc, 0xbe, 0x8d, 0xc6, 0x20, 0x16, 0x28, 0xf8, 0xaf}, - // c1d80ce474a51128b77e794a98aa2d62a0225da3f419e5c7ed73dfbf660e7109.pem - {0x4f, 0x71, 0x62, 0xb9, 0x74, 0x49, 0x1c, 0x98, 0x58, 0x5e, 0xc2, - 0x8f, 0xe7, 0x59, 0xaa, 0x00, 0xc3, 0x30, 0xd0, 0xb4, 0x65, 0x19, - 0x0a, 0x89, 0x6c, 0xc4, 0xb6, 0x16, 0x23, 0x18, 0x31, 0xfc}, - // 7abd72a323c9d179c722564f4e27a51dd4afd24006b38a40ce918b94960bcf18.pem - {0x57, 0x80, 0x94, 0x46, 0xea, 0xf1, 0x14, 0x84, 0x38, 0x54, 0xfe, - 0x63, 0x6e, 0xd9, 0xbc, 0xb5, 0x52, 0xe3, 0xc6, 0x16, 0x66, 0x3b, - 0xc4, 0x4c, 0xc9, 0x5a, 0xcf, 0x56, 0x50, 0x01, 0x6d, 0x3e}, - // 817d4e05063d5942869c47d8504dc56a5208f7569c3d6d67f3457cfe921b3e29.pem - {0x5c, 0x72, 0x2c, 0xb7, 0x0f, 0xb3, 0x11, 0xf2, 0x1e, 0x0d, 0xa0, - 0xe7, 0xd1, 0x2e, 0xbc, 0x8e, 0x05, 0xf6, 0x07, 0x96, 0xbc, 0x49, - 0xcf, 0x51, 0x18, 0x49, 0xd5, 0xbc, 0x62, 0x03, 0x03, 0x82}, - // 79f69a47cfd6c4b4ceae8030d04b49f6171d3b5d6c812f58d040e586f1cb3f14.pem - // 933f7d8cda9f0d7c8bfd3c22bf4653f4161fd38ccdcf66b22e95a2f49c2650f8.pem - // f8a5ff189fedbfe34e21103389a68340174439ad12974a4e8d4d784d1f3a0faa.pem - {0x5e, 0x53, 0xf2, 0x64, 0x67, 0xf8, 0x94, 0xfd, 0xe5, 0x3b, 0x3f, - 0xa4, 0x06, 0xa4, 0x40, 0xcb, 0xb3, 0xb0, 0x76, 0xbb, 0x5b, 0x75, - 0x8f, 0xe4, 0x83, 0x4a, 0xd6, 0x65, 0x00, 0x20, 0x89, 0x07}, - // 2d11e736f0427fd6ba4b372755d34a0edd8d83f7e9e7f6c01b388c9b7afa850d.pem - {0x6a, 0xdb, 0x8e, 0x3e, 0x05, 0x54, 0x60, 0x92, 0x2d, 0x15, 0x01, - 0xcb, 0x97, 0xf9, 0x4c, 0x6a, 0x02, 0xe3, 0x9c, 0x8f, 0x27, 0x74, - 0xca, 0x40, 0x88, 0x25, 0xb7, 0xb5, 0x83, 0x79, 0xdc, 0x14}, - // 2a33f5b48176523fd3c0d854f20093417175bfd498ef354cc7f38b54adabaf1a.pem - {0x70, 0x7d, 0x36, 0x4e, 0x72, 0xae, 0x52, 0x14, 0x31, 0xdd, 0x95, - 0x38, 0x97, 0xf9, 0xc4, 0x84, 0x6d, 0x5b, 0x8c, 0x32, 0x42, 0x98, - 0xfe, 0x53, 0xfb, 0xd4, 0xad, 0xa1, 0xf2, 0xd1, 0x15, 0x7f}, - // f4a5984324de98bd979ef181a100cf940f2166173319a86a0d9d7c8fac3b0a8f.pem - {0x71, 0x65, 0xe9, 0x91, 0xad, 0xe7, 0x91, 0x6d, 0x86, 0xb4, 0x66, - 0xab, 0xeb, 0xb6, 0xe4, 0x57, 0xca, 0x93, 0x1c, 0x80, 0x4e, 0x58, - 0xce, 0x1f, 0xba, 0xba, 0xe5, 0x09, 0x15, 0x6f, 0xfb, 0x43}, - // 3ae699d94e8febdacb86d4f90d40903333478e65e0655c432451197e33fa07f2.pem - {0x78, 0x1a, 0x4c, 0xf2, 0xe9, 0x24, 0x52, 0xf3, 0xee, 0x01, 0xd0, - 0xc3, 0x81, 0xa4, 0x21, 0x4f, 0x39, 0x04, 0x16, 0x5c, 0x39, 0x0a, - 0xdb, 0xd6, 0x1f, 0xcd, 0x11, 0x24, 0x4e, 0x09, 0xb2, 0xdc}, - // 8b45da1c06f791eb0cabf26be588f5fb23165c2e614bf885562d0dce50b29b02.pem - {0x7a, 0xed, 0xdd, 0xf3, 0x6b, 0x18, 0xf8, 0xac, 0xb7, 0x37, 0x9f, - 0xe1, 0xce, 0x18, 0x32, 0x12, 0xb2, 0x35, 0x0d, 0x07, 0x88, 0xab, - 0xe0, 0xe8, 0x24, 0x57, 0xbe, 0x9b, 0xad, 0xad, 0x6d, 0x54}, - // 5a885db19c01d912c5759388938cafbbdf031ab2d48e91ee15589b42971d039c.pem - {0x7a, 0xfe, 0x4b, 0x07, 0x1a, 0x2f, 0x1f, 0x46, 0xf8, 0xba, 0x94, - 0x4a, 0x26, 0xd5, 0x84, 0xd5, 0x96, 0x0b, 0x92, 0xfb, 0x48, 0xc3, - 0xba, 0x1b, 0x7c, 0xab, 0x84, 0x90, 0x5f, 0x32, 0xaa, 0xcd}, - // c43807a64c51a3fbde5421011698013d8b46f4e315c46186dc23aea2670cd34f.pem - {0x7c, 0xd2, 0x95, 0xb7, 0x55, 0x44, 0x80, 0x8a, 0xbd, 0x94, 0x09, - 0x46, 0x6f, 0x08, 0x37, 0xc5, 0xaa, 0xdc, 0x02, 0xe3, 0x3b, 0x61, - 0x50, 0xc6, 0x64, 0x4d, 0xe0, 0xa0, 0x96, 0x59, 0xf2, 0x3c}, - // f3bae5e9c0adbfbfb6dbf7e04e74be6ead3ca98a5604ffe591cea86c241848ec.pem - {0x7d, 0x5e, 0x3f, 0x50, 0x50, 0x81, 0x97, 0xb9, 0xa4, 0x78, 0xb1, - 0x13, 0x40, 0xb7, 0xdc, 0xe2, 0x0a, 0x3c, 0x4d, 0xe4, 0x9c, 0x48, - 0xc9, 0xa2, 0x94, 0x15, 0x8a, 0x89, 0x5c, 0x44, 0xa2, 0x1b}, - // b8686723e415534bc0dbd16326f9486f85b0b0799bf6639334e61daae67f36cd.pem - {0x7e, 0x70, 0x58, 0xea, 0x35, 0xad, 0x43, 0x59, 0x65, 0x41, 0x59, - 0x97, 0x3f, 0x56, 0x01, 0x87, 0xf1, 0x6d, 0x19, 0xc5, 0x14, 0xb9, - 0x39, 0xc5, 0x05, 0x56, 0x72, 0xd1, 0xd2, 0xa5, 0x18, 0xac}, - // 5e8e77aafdda2ba5ce442f27d8246650bbd6508befbeda35966a4dc7e6174edc.pem - {0x87, 0xbf, 0xd8, 0xaf, 0xa3, 0xaf, 0x5b, 0x42, 0x9d, 0x09, 0xa9, - 0xaa, 0x54, 0xee, 0x61, 0x36, 0x4f, 0x5a, 0xe1, 0x11, 0x31, 0xe4, - 0x38, 0xfc, 0x41, 0x09, 0x53, 0x43, 0xcd, 0x16, 0xb1, 0x35}, - // 0c258a12a5674aef25f28ba7dcfaeceea348e541e6f5cc4ee63b71b361606ac3.pem - {0x8a, 0x2a, 0xff, 0xbd, 0x1a, 0x1c, 0x5d, 0x1b, 0xdc, 0xcb, 0xb7, - 0xf5, 0x48, 0xba, 0x99, 0x5f, 0x96, 0x68, 0x06, 0xb3, 0xfd, 0x0c, - 0x3a, 0x00, 0xfa, 0xe2, 0xe5, 0x2f, 0x3c, 0x85, 0x39, 0x89}, - // 61c0fc2e38b5b6f9071b42cee54a9013d858b6697c68b460948551b3249576a1.pem - {0x8e, 0x12, 0xd0, 0xcb, 0x3b, 0x7d, 0xf3, 0xea, 0x22, 0x57, 0x57, - 0x94, 0x89, 0xfd, 0x86, 0x58, 0xc9, 0x56, 0x03, 0xea, 0x6c, 0xf4, - 0xb7, 0x31, 0x63, 0xa4, 0x1e, 0xb7, 0xb7, 0xe9, 0x3f, 0xee}, - // ddd8ab9178c99cbd9685ea4ae66dc28bfdc9a5a8a166f7f69ad0b5042ad6eb28.pem - {0x8f, 0x59, 0x1f, 0x7a, 0xa4, 0xdc, 0x3e, 0xfe, 0x94, 0x90, 0xc3, - 0x8a, 0x46, 0x92, 0xc9, 0x01, 0x1e, 0xd1, 0x28, 0xf1, 0xde, 0x59, - 0x55, 0x69, 0x40, 0x6d, 0x77, 0xb6, 0xfa, 0x1f, 0x6b, 0x4c}, - // 136335439334a7698016a0d324de72284e079d7b5220bb8fbd747816eebebaca.pem - {0x92, 0x7a, 0x1b, 0x85, 0x62, 0x28, 0x05, 0x76, 0xd0, 0x48, 0xc5, - 0x03, 0x21, 0xad, 0xa4, 0x3d, 0x87, 0x03, 0xd2, 0xd9, 0x52, 0x1a, - 0x18, 0xc2, 0x8b, 0x8c, 0x46, 0xcc, 0x6a, 0xae, 0x4e, 0xfd}, - // 450f1b421bb05c8609854884559c323319619e8b06b001ea2dcbb74a23aa3be2.pem - {0x93, 0xca, 0x2d, 0x43, 0x6c, 0xae, 0x7f, 0x68, 0xd2, 0xb4, 0x25, - 0x6c, 0xa1, 0x75, 0xc9, 0x85, 0xce, 0x39, 0x92, 0x6d, 0xc9, 0xf7, - 0xee, 0xae, 0xec, 0xf2, 0xf8, 0x97, 0x0f, 0xb9, 0x78, 0x02}, - // e757fd60d8dd4c26f77aca6a87f63ea4d38d0b736c7f79b56cad932d4c400fb5.pem - {0x96, 0x2e, 0x4b, 0x54, 0xbb, 0x98, 0xa7, 0xee, 0x5d, 0x5f, 0xeb, - 0x96, 0x33, 0xf9, 0x91, 0xd3, 0xc3, 0x30, 0x0e, 0x95, 0x14, 0xda, - 0xde, 0x7b, 0x0d, 0x4f, 0x82, 0x8c, 0x79, 0x4f, 0x8e, 0x87}, - // 3d3d823fad13dfeef32da580166d4a4992bed5a22d695d12c8b08cc3463c67a2.pem - {0x96, 0x8d, 0xba, 0x69, 0xfb, 0xff, 0x15, 0xbf, 0x37, 0x62, 0x08, - 0x94, 0x31, 0xad, 0xe5, 0xa7, 0xea, 0xd4, 0xb7, 0xea, 0xf1, 0xbe, - 0x70, 0x02, 0x68, 0x10, 0xbc, 0x57, 0xd1, 0xc6, 0x4f, 0x6e}, - // 1f17f2cbb109f01c885c94d9e74a48625ae9659665d6d7e7bc5a10332976370f.pem - {0x99, 0xba, 0x47, 0x84, 0xf9, 0xb0, 0x85, 0x12, 0x90, 0x2e, 0xb0, - 0xc3, 0xc8, 0x6d, 0xf0, 0xec, 0x04, 0x9e, 0xac, 0x9b, 0x65, 0xf7, - 0x7a, 0x9b, 0xa4, 0x2b, 0xe9, 0xd6, 0xeb, 0xce, 0x32, 0x0f}, - // a8e1dfd9cd8e470aa2f443914f931cfd61c323e94d75827affee985241c35ce5.pem - {0x9b, 0x8a, 0x93, 0xde, 0xcc, 0xcf, 0xba, 0xfc, 0xf4, 0xd0, 0x4d, - 0x34, 0x42, 0x12, 0x8f, 0xb3, 0x52, 0x18, 0xcf, 0xe4, 0x37, 0xa3, - 0xd8, 0xd0, 0x32, 0x8c, 0x99, 0xf8, 0x90, 0x89, 0xe4, 0x50}, - // 8253da6738b60c5c0bb139c78e045428a0c841272abdcb952f95ff05ed1ab476.pem - {0x9c, 0x59, 0xa3, 0xcc, 0xae, 0xa4, 0x69, 0x98, 0x42, 0xb0, 0x68, - 0xcf, 0xc5, 0x2c, 0xf9, 0x45, 0xdb, 0x51, 0x98, 0x69, 0x57, 0xc8, - 0x32, 0xcd, 0xb1, 0x8c, 0xa7, 0x38, 0x49, 0xfb, 0xb9, 0xee}, - // 7d8ce822222b90c0b14342c7a8145d1f24351f4d1a1fe0edfd312ee73fb00149.pem - {0x9d, 0x98, 0xa1, 0xfb, 0x60, 0x53, 0x8c, 0x4c, 0xc4, 0x85, 0x7f, - 0xf1, 0xa8, 0xc8, 0x03, 0x4f, 0xaf, 0x6f, 0xc5, 0x92, 0x09, 0x3f, - 0x61, 0x99, 0x94, 0xb2, 0xc8, 0x13, 0xd2, 0x50, 0xb8, 0x64}, - // 1c01c6f4dbb2fefc22558b2bca32563f49844acfc32b7be4b0ff599f9e8c7af7.pem - {0x9d, 0xd5, 0x5f, 0xc5, 0x73, 0xf5, 0x46, 0xcb, 0x6a, 0x38, 0x31, - 0xd1, 0x11, 0x2d, 0x87, 0x10, 0xa6, 0xf4, 0xf8, 0x2d, 0xc8, 0x7f, - 0x5f, 0xae, 0x9d, 0x3a, 0x1a, 0x02, 0x8d, 0xd3, 0x6e, 0x4b}, - // 487afc8d0d411b2a05561a2a6f35918f4040e5570c4c73ee323cc50583bcfbb7.pem - {0xa0, 0xcf, 0x53, 0xf4, 0x22, 0x65, 0x1e, 0x39, 0x31, 0x7a, 0xe3, - 0x1a, 0xf6, 0x45, 0x77, 0xbe, 0x45, 0x0f, 0xa3, 0x76, 0xe2, 0x89, - 0xed, 0x83, 0x42, 0xb7, 0xfc, 0x13, 0x3c, 0x69, 0x74, 0x19}, - // 0d136e439f0ab6e97f3a02a540da9f0641aa554e1d66ea51ae2920d51b2f7217.pem - // 4fee0163686ecbd65db968e7494f55d84b25486d438e9de558d629d28cd4d176.pem - // 8a1bd21661c60015065212cc98b1abb50dfd14c872a208e66bae890f25c448af.pem - {0xa9, 0x03, 0xaf, 0x8c, 0x07, 0xbb, 0x91, 0xb0, 0xd9, 0xe3, 0xf3, - 0xa3, 0x0c, 0x6d, 0x53, 0x33, 0x9f, 0xc5, 0xbd, 0x47, 0xe5, 0xd6, - 0xbd, 0xb4, 0x76, 0x59, 0x88, 0x60, 0xc0, 0x68, 0xa0, 0x24}, - // a2e3bdaacaaf2d2e8204b3bc7eddc805d54d3ab8bdfe7bf102c035f67d8f898a.pem - {0xa9, 0xb5, 0x5a, 0x9b, 0x55, 0x31, 0xbb, 0xf7, 0xc7, 0x1a, 0x1e, - 0x49, 0x20, 0xef, 0xe7, 0x96, 0xc2, 0xb6, 0x79, 0x68, 0xf5, 0x5a, - 0x6c, 0xe5, 0xcb, 0x62, 0x17, 0x2e, 0xd9, 0x94, 0x5b, 0xca}, - // 5472692abe5d02cd22eae3e0a0077f17802721d6576cde1cba2263ee803410c5.pem - {0xaf, 0x59, 0x15, 0x18, 0xe2, 0xe6, 0xc6, 0x0e, 0xbb, 0xfc, 0x09, - 0x07, 0xaf, 0xaa, 0x49, 0xbc, 0x40, 0x51, 0xd4, 0x5e, 0x7f, 0x21, - 0x4a, 0xbf, 0xee, 0x75, 0x12, 0xee, 0x00, 0xf6, 0x61, 0xed}, - // 1df696f021ab1c3ace9a376b07ed7256a40214cd3396d7934087614924e2d7ef.pem - {0xb1, 0x3f, 0xa2, 0xe6, 0x13, 0x1a, 0x88, 0x8a, 0x01, 0xf3, 0xd6, - 0x20, 0x56, 0xfb, 0x0e, 0xfb, 0xe9, 0x99, 0xeb, 0x6b, 0x6e, 0x14, - 0x92, 0x76, 0x13, 0xe0, 0x2b, 0xa8, 0xb8, 0xfb, 0x04, 0x6e}, - // b8c1b957c077ea76e00b0f45bff5ae3acb696f221d2e062164fe37125e5a8d25.pem - {0xb3, 0x18, 0x2e, 0x28, 0x9a, 0xe3, 0x4d, 0xdf, 0x2b, 0xe6, 0x43, - 0xab, 0x79, 0xc2, 0x44, 0x30, 0x16, 0x05, 0xfa, 0x0f, 0x1e, 0xaa, - 0xe6, 0xd1, 0x0f, 0xb9, 0x29, 0x60, 0x0a, 0xf8, 0x4d, 0xf0}, - // be144b56fb1163c49c9a0e6b5a458df6b29f7e6449985960c178a4744624b7bc.pem - {0xb4, 0xd5, 0xc9, 0x20, 0x41, 0x5e, 0xd0, 0xcc, 0x4f, 0x5d, 0xbc, - 0x7f, 0x54, 0x26, 0x36, 0x76, 0x2e, 0x80, 0xda, 0x66, 0x25, 0xf3, - 0x3f, 0x2b, 0x6a, 0xd6, 0xdb, 0x68, 0xbd, 0xba, 0xb2, 0x9a}, - // 00309c736dd661da6f1eb24173aa849944c168a43a15bffd192eecfdb6f8dbd2.pem - {0xb5, 0xba, 0x8d, 0xd7, 0xf8, 0x95, 0x64, 0xc2, 0x88, 0x9d, 0x3d, - 0x64, 0x53, 0xc8, 0x49, 0x98, 0xc7, 0x78, 0x24, 0x91, 0x9b, 0x64, - 0xea, 0x08, 0x35, 0xaa, 0x62, 0x98, 0x65, 0x91, 0xbe, 0x50}, - // 04f1bec36951bc1454a904ce32890c5da3cde1356b7900f6e62dfa2041ebad51.pem - {0xb8, 0x9b, 0xcb, 0xb8, 0xac, 0xd4, 0x74, 0xc1, 0xbe, 0xa7, 0xda, - 0xd6, 0x50, 0x37, 0xf4, 0x8d, 0xce, 0xcc, 0x9d, 0xfa, 0xa0, 0x61, - 0x2c, 0x3c, 0x24, 0x45, 0x95, 0x64, 0x19, 0xdf, 0x32, 0xfe}, - // d8888f4a84f74c974dffb573a1bf5bbbacd1713b905096f8eb015062bf396c4d.pem - {0xc0, 0xed, 0x20, 0x53, 0x46, 0xbb, 0xbd, 0xe0, 0x6e, 0xb5, 0x60, - 0xf5, 0xce, 0xe0, 0x2a, 0x36, 0x34, 0xe2, 0x47, 0x4a, 0x7e, 0x76, - 0xcf, 0x8f, 0xbe, 0xf5, 0x63, 0xbb, 0x11, 0x7d, 0xd0, 0xe3}, - // 372447c43185c38edd2ce0e9c853f9ac1576ddd1704c2f54d96076c089cb4227.pem - {0xc1, 0x73, 0xf0, 0x62, 0x64, 0x56, 0xca, 0x85, 0x4f, 0xf2, 0xa7, - 0xf0, 0xb1, 0x33, 0xa7, 0xcf, 0x4d, 0x02, 0x11, 0xe5, 0x52, 0xf2, - 0x4b, 0x3e, 0x33, 0xad, 0xe8, 0xc5, 0x9f, 0x0a, 0x42, 0x4c}, - // c4387d45364a313fbfe79812b35b815d42852ab03b06f11589638021c8f2cb44.key - {0xc4, 0x38, 0x7d, 0x45, 0x36, 0x4a, 0x31, 0x3f, 0xbf, 0xe7, 0x98, - 0x12, 0xb3, 0x5b, 0x81, 0x5d, 0x42, 0x85, 0x2a, 0xb0, 0x3b, 0x06, - 0xf1, 0x15, 0x89, 0x63, 0x80, 0x21, 0xc8, 0xf2, 0xcb, 0x44}, - // 8290cc3fc1c3aac3239782c141ace8f88aeef4e9576a43d01867cf19d025be66.pem - // 9532e8b504964331c271f3f5f10070131a08bf8ba438978ce394c34feeae246f.pem - {0xc6, 0x01, 0x23, 0x4e, 0x2b, 0x93, 0x25, 0xdc, 0x92, 0xe3, 0xea, - 0xba, 0xc1, 0x96, 0x00, 0xb0, 0xb4, 0x99, 0x47, 0xd4, 0xd0, 0x4d, - 0x8c, 0x99, 0xd3, 0x21, 0x27, 0x49, 0x3e, 0xa0, 0x28, 0xf8}, - // 0753e940378c1bd5e3836e395daea5cb839e5046f1bd0eae1951cf10fec7c965.pem - {0xc6, 0x3d, 0x68, 0xc6, 0x48, 0xa1, 0x8b, 0x77, 0x64, 0x1c, 0x42, - 0x7a, 0x66, 0x9d, 0x61, 0xc9, 0x76, 0x8a, 0x55, 0xf4, 0xfc, 0xd0, - 0x32, 0x2e, 0xac, 0x96, 0xc5, 0x77, 0x00, 0x29, 0x9c, 0xf1}, - // 53d48e7b8869a3314f213fd2e0178219ca09022dbe50053bf6f76fccd61e8112.pem - {0xc8, 0xfd, 0xdc, 0x75, 0xcb, 0x1b, 0xdb, 0xb5, 0x8c, 0x07, 0xb4, - 0xea, 0x84, 0x72, 0x87, 0xf6, 0x26, 0x65, 0x9d, 0xd6, 0x6b, 0xc1, - 0x0a, 0x26, 0xad, 0xd9, 0xb5, 0x75, 0xb3, 0xa0, 0xa3, 0x8d}, - // ec30c9c3065a06bb07dc5b1c6b497f370c1ca65c0f30c08e042ba6bcecc78f2c.pem - {0xcd, 0xee, 0x9f, 0x33, 0x05, 0x57, 0x2a, 0x67, 0x7e, 0x1a, 0x6c, - 0x82, 0xdc, 0x1e, 0x02, 0xa3, 0x5b, 0x11, 0xca, 0xe6, 0xa6, 0x84, - 0x33, 0x8c, 0x9f, 0x37, 0xfe, 0x1a, 0xc8, 0xda, 0xec, 0x23}, - // 063e4afac491dfd332f3089b8542e94617d893d7fe944e10a7937ee29d9693c0.pem - {0xce, 0xd4, 0x39, 0x02, 0xab, 0x5f, 0xb5, 0x7b, 0x44, 0x23, 0x22, - 0xdc, 0x0e, 0x17, 0x2a, 0x4f, 0xb5, 0x5f, 0x71, 0x78, 0xb8, 0x08, - 0xf9, 0x4e, 0x78, 0x0a, 0x6f, 0xd6, 0xcc, 0x6b, 0xd8, 0x18}, - // c71f33c36d8efeefbed9d44e85e21cfe96b36fb0e132c52dca2415868492bf8a.pem - {0xd3, 0x1e, 0xc3, 0x92, 0x85, 0xb7, 0xa5, 0x31, 0x9d, 0x01, 0x57, - 0xdb, 0x42, 0x0e, 0xd8, 0x7c, 0x74, 0x3e, 0x33, 0x3b, 0xbc, 0x77, - 0xf8, 0x77, 0x1f, 0x70, 0x46, 0x4f, 0x43, 0x6a, 0x60, 0x49}, - // 9ed8f9b0e8e42a1656b8e1dd18f42ba42dc06fe52686173ba2fc70e756f207dc.pem - // a686fee577c88ab664d0787ecdfff035f4806f3de418dc9e4d516324fff02083.pem - // fdedb5bdfcb67411513a61aee5cb5b5d7c52af06028efc996cc1b05b1d6cea2b.pem - {0xd3, 0x4b, 0x25, 0x5b, 0x2f, 0xe7, 0xd1, 0xa0, 0x96, 0x56, 0xcb, - 0xab, 0x64, 0x09, 0xf7, 0x3c, 0x79, 0x6e, 0xc7, 0xd6, 0x6a, 0xf7, - 0x36, 0x53, 0xec, 0xc3, 0x9a, 0xf9, 0x78, 0x29, 0x73, 0x10}, - // 4b22d5a6aec99f3cdb79aa5ec06838479cd5ecba7164f7f22dc1d65f63d85708.pem - {0xd6, 0xa1, 0x84, 0x43, 0xd3, 0x48, 0xdb, 0x99, 0x4f, 0x93, 0x4c, - 0xcd, 0x8e, 0x63, 0x5d, 0x83, 0x3a, 0x27, 0xac, 0x1e, 0x56, 0xf8, - 0xaf, 0xaf, 0x7c, 0x97, 0xcb, 0x4f, 0x43, 0xea, 0xb6, 0x8b}, - // d6f034bd94aa233f0297eca4245b283973e447aa590f310c77f48fdf83112254.pem - {0xdb, 0x15, 0xc0, 0x06, 0x2b, 0x52, 0x0f, 0x31, 0x8a, 0x19, 0xda, - 0xcf, 0xec, 0xd6, 0x4f, 0x9e, 0x7a, 0x3f, 0xbe, 0x60, 0x9f, 0xd5, - 0x86, 0x79, 0x6f, 0x20, 0xae, 0x02, 0x8e, 0x8e, 0x30, 0x58}, - // 2a4397aafa6227fa11f9f9d76ecbb022b0a4494852c2b93fb2085c8afb19b62a.pem - {0xdb, 0x1d, 0x13, 0xec, 0x42, 0xa2, 0xcb, 0xa3, 0x67, 0x3b, 0xa6, - 0x7a, 0xf2, 0xde, 0xf8, 0x12, 0xe9, 0xc3, 0x55, 0x66, 0x61, 0x75, - 0x76, 0xd9, 0x5b, 0x4d, 0x6f, 0xac, 0xe3, 0xef, 0x0a, 0xe8}, - // 3946901f46b0071e90d78279e82fababca177231a704be72c5b0e8918566ea66.pem - {0xdd, 0x3e, 0xeb, 0x77, 0x9b, 0xee, 0x07, 0xf9, 0xef, 0xda, 0xc3, - 0x82, 0x40, 0x8b, 0x28, 0xd1, 0x42, 0xfa, 0x84, 0x2c, 0x78, 0xe8, - 0xbc, 0x0e, 0x33, 0x34, 0x8d, 0x57, 0xb9, 0x2f, 0x05, 0x83}, - // c67d722c1495be02cbf9ef1159f5ca4aa782dc832dc6aa60c9aa076a0ad1e69d.pem - {0xde, 0x8f, 0x05, 0x07, 0x4e, 0xc0, 0x31, 0x8e, 0x7e, 0x7e, 0x8d, - 0x31, 0x90, 0xda, 0xe8, 0xb0, 0x08, 0x94, 0xf0, 0xe8, 0xdd, 0xdf, - 0xd3, 0x91, 0x3d, 0x01, 0x75, 0x9b, 0x4f, 0x79, 0xb0, 0x5d}, - // c766a9bef2d4071c863a31aa4920e813b2d198608cb7b7cfe21143b836df09ea.pem - // e17890ee09a3fbf4f48b9c414a17d637b7a50647e9bc752322727fcc1742a911.pem - {0xe4, 0x2f, 0x24, 0xbd, 0x4d, 0x37, 0xf4, 0xaa, 0x2e, 0x56, 0xb9, - 0x79, 0xd8, 0x3d, 0x1e, 0x65, 0x21, 0x9f, 0xe0, 0xe9, 0xe3, 0xa3, - 0x82, 0xa1, 0xb3, 0xcb, 0x66, 0xc9, 0x39, 0x55, 0xde, 0x75}, - // e4f9a3235df7330255f36412bc849fb630f8519961ec3538301deb896c953da5.pem - {0xe6, 0xe1, 0x36, 0xc8, 0x61, 0x54, 0xf3, 0x2c, 0x3e, 0x49, 0xf4, - 0x7c, 0xfc, 0x6b, 0x33, 0x8f, 0xf2, 0xdc, 0x61, 0xce, 0x14, 0xfc, - 0x75, 0x89, 0xb3, 0xb5, 0x6a, 0x14, 0x50, 0x13, 0x27, 0x01}, - // 3e26492e20b52de79e15766e6cb4251a1d566b0dbfb225aa7d08dda1dcebbf0a.pem - {0xe7, 0xb9, 0x32, 0xae, 0x7e, 0x9b, 0xdc, 0x70, 0x1d, 0x77, 0x1d, - 0x6f, 0x39, 0xe8, 0xa6, 0x53, 0x44, 0x9e, 0xea, 0x43, 0xbd, 0xb4, - 0x7b, 0xd9, 0x10, 0x22, 0x95, 0x0d, 0x91, 0x79, 0xd8, 0x7e}, - // 5ccaf9f8f2bb3a0d215922eca383354b6ee3c62407ed32e30f6fb2618edeea10.pem - {0xe8, 0x49, 0xc7, 0x17, 0x6c, 0x93, 0xdf, 0x65, 0xf6, 0x4b, 0x61, - 0x69, 0x82, 0x36, 0x6e, 0x56, 0x63, 0x11, 0x78, 0x12, 0xb6, 0xfa, - 0x2b, 0xc0, 0xc8, 0xfa, 0x8a, 0xea, 0xee, 0x41, 0x81, 0xcc}, - // ea08c8d45d52ca593de524f0513ca6418da9859f7b08ef13ff9dd7bf612d6a37.key - {0xea, 0x08, 0xc8, 0xd4, 0x5d, 0x52, 0xca, 0x59, 0x3d, 0xe5, 0x24, - 0xf0, 0x51, 0x3c, 0xa6, 0x41, 0x8d, 0xa9, 0x85, 0x9f, 0x7b, 0x08, - 0xef, 0x13, 0xff, 0x9d, 0xd7, 0xbf, 0x61, 0x2d, 0x6a, 0x37}, - // d40e9c86cd8fe468c1776959f49ea774fa548684b6c406f3909261f4dce2575c.pem - {0xea, 0x87, 0xf4, 0x62, 0xde, 0xef, 0xff, 0xbd, 0x77, 0x75, 0xaa, - 0x2a, 0x4b, 0x7e, 0x0f, 0xcb, 0x91, 0xc2, 0x2e, 0xee, 0x6d, 0xf6, - 0x9e, 0xd9, 0x01, 0x00, 0xcc, 0xc7, 0x3b, 0x31, 0x14, 0x76}, - // 60911c79835c3739432d08c45df64311e06985c5889dc5420ce3d142c8c7ef58.pem - {0xef, 0x55, 0x12, 0x84, 0x71, 0x52, 0x32, 0xde, 0x92, 0xe2, 0x46, - 0xc3, 0x23, 0x32, 0x93, 0x62, 0xb1, 0x32, 0x49, 0x3b, 0xb1, 0x6b, - 0x58, 0x9e, 0x47, 0x75, 0x52, 0x0b, 0xeb, 0x87, 0x1a, 0x56}, - // 31c8fd37db9b56e708b03d1f01848b068c6da66f36fb5d82c008c6040fa3e133.pem - {0xf0, 0x34, 0xf6, 0x42, 0xca, 0x1d, 0x9e, 0x88, 0xe9, 0xef, 0xea, - 0xfc, 0xb1, 0x5c, 0x7c, 0x93, 0x7a, 0xa1, 0x9e, 0x04, 0xb0, 0x80, - 0xf2, 0x73, 0x35, 0xe1, 0xda, 0x70, 0xd1, 0xca, 0x12, 0x01}, - // 83618f932d6947744d5ecca299d4b2820c01483947bd16be814e683f7436be24.pem - {0xf2, 0xbb, 0xe0, 0x4c, 0x5d, 0xc7, 0x0d, 0x76, 0x3e, 0x89, 0xc5, - 0xa0, 0x52, 0x70, 0x48, 0xcd, 0x9e, 0xcd, 0x39, 0xeb, 0x62, 0x1e, - 0x20, 0x72, 0xff, 0x9a, 0x5f, 0x84, 0x32, 0x57, 0x1a, 0xa0}, - // 2a3699deca1e9fd099ba45de8489e205977c9f2a5e29d5dd747381eec0744d71.pem - {0xf3, 0x0e, 0x8f, 0x61, 0x01, 0x1d, 0x65, 0x87, 0x3c, 0xcb, 0x81, - 0xb4, 0x0f, 0xa6, 0x21, 0x97, 0x49, 0xb9, 0x94, 0xf0, 0x1f, 0xa2, - 0x4d, 0x02, 0x01, 0xd5, 0x21, 0xc2, 0x43, 0x56, 0x03, 0xca}, - // 0d90cd8e35209b4cefebdd62b644bed8eb55c74dddff26e75caf8ae70491f0bd.pem - {0xf5, 0x29, 0x3d, 0x47, 0xed, 0x38, 0xd4, 0xc3, 0x1b, 0x2d, 0x42, - 0xde, 0xe3, 0xb5, 0xb3, 0xac, 0xe9, 0x7c, 0xa2, 0x6c, 0xa2, 0xac, - 0x03, 0x65, 0xe3, 0x62, 0x2e, 0xe8, 0x02, 0x13, 0x1f, 0xbb}, - // 67ed4b703d15dc555f8c444b3a05a32579cb7599bd19c9babe10c584ea327ae0.pem - {0xfa, 0x00, 0xbe, 0xc7, 0x3d, 0xd9, 0x97, 0x95, 0xdf, 0x11, 0x62, - 0xc7, 0x89, 0x98, 0x70, 0x04, 0xc2, 0x6c, 0xbf, 0x90, 0xaf, 0x4d, - 0xb4, 0x42, 0xf6, 0x62, 0x20, 0xde, 0x41, 0x35, 0x4a, 0xc9}, - // a25a19546819d048000ef9c6577c4bcd8d2155b1e4346a4599d6c8b79799d4a1.pem - {0xfc, 0xd7, 0x6c, 0xca, 0x23, 0x47, 0xe5, 0xcd, 0x5b, 0x39, 0x34, - 0x7f, 0x51, 0xcf, 0x43, 0x65, 0x4b, 0x69, 0xa2, 0xbf, 0xc9, 0x07, - 0x36, 0x70, 0xa6, 0xbe, 0x47, 0xd8, 0x70, 0x1e, 0x6e, 0x0e}, - // 44a244105569a730791f509b24c3d7838a462216bb0f560ef87fbe76c2e6005a.pem - {0xb0, 0xfc, 0xce, 0x78, 0xc1, 0x66, 0x4e, 0x29, 0x35, 0x44, 0xc1, - 0x43, 0xe3, 0xd2, 0x68, 0x9f, 0x72, 0x3f, 0x5b, 0x6e, 0x63, 0x17, - 0x10, 0x7e, 0x16, 0x3d, 0x22, 0xba, 0x80, 0x69, 0x79, 0x4a}, - // 0230a604d99220e5612ee7862ab9f7a6e18e4f1ac4c9e27075788cc5220169ab.pem - {0xc5, 0x62, 0x17, 0xb7, 0xa8, 0x28, 0xc7, 0x34, 0x1c, 0x0a, 0xe7, - 0xa5, 0x90, 0xd8, 0x79, 0x0d, 0x4d, 0xef, 0x53, 0x66, 0x52, 0xe6, - 0x0a, 0xe5, 0xb8, 0xbd, 0xfa, 0x26, 0x97, 0x8f, 0xe0, 0x9c}, - // 06fd20629c143b9eab28d2799caefc5d23fde267d16c631e3f5b8b4bab3f68e6.pem - {0xe4, 0x7c, 0x5c, 0xd2, 0xdc, 0x8b, 0xab, 0xb4, 0xe5, 0x3f, 0x8a, - 0x49, 0x83, 0x92, 0x02, 0x75, 0xef, 0x6f, 0xfa, 0xac, 0xb0, 0x89, - 0xe8, 0x7a, 0x2c, 0x1f, 0xbe, 0x5a, 0x58, 0x5f, 0x05, 0xed}, - // 0bd39de4793cdc117138f47708aa4d583acf67adb059a0d91f668d1803bf6489.pem - {0x39, 0x73, 0x65, 0x88, 0xb9, 0x4a, 0x4c, 0xe7, 0x67, 0xf7, 0x31, - 0xca, 0xd5, 0x3f, 0x4c, 0xbe, 0x44, 0x13, 0x7e, 0x32, 0x1e, 0xad, - 0xca, 0xef, 0x8c, 0xe7, 0x9a, 0x22, 0x9b, 0xbc, 0xa9, 0x89}, - // c95c133b68319ee516b5f41e377f589878af1556567cc2834ef03b1d10830fd3.pem - {0xea, 0x12, 0x70, 0x5d, 0xe7, 0xc4, 0x8f, 0x6f, 0xcc, 0xe2, 0xcb, - 0x8d, 0xbc, 0x54, 0x2e, 0x0f, 0xc3, 0x8a, 0xc3, 0x8e, 0x08, 0x88, - 0x0d, 0xd0, 0x4a, 0x02, 0xef, 0x67, 0xc9, 0x3a, 0xe1, 0x35}, - // 29abf614b2870ed70df11225e9ae2068e3074eb9845ae252c2064e31ce9fe8a1.pem - {0xa6, 0xac, 0xa1, 0xec, 0x98, 0x09, 0xcc, 0x5b, 0x48, 0x21, 0xff, - 0x9d, 0x29, 0xc5, 0xeb, 0xe6, 0x51, 0x96, 0x0b, 0x91, 0xb1, 0xf1, - 0x9c, 0xc8, 0x9b, 0x55, 0xef, 0x87, 0x81, 0x8a, 0x95, 0x09}, -}; - -// Hashes of SubjectPublicKeyInfos known to be used for interception by a -// party other than the device or machine owner. -static constexpr uint8_t kKnownInterceptionList[][SHA256_DIGEST_LENGTH] = { - // 1df696f021ab1c3ace9a376b07ed7256a40214cd3396d7934087614924e2d7ef.pem - {0xb1, 0x3f, 0xa2, 0xe6, 0x13, 0x1a, 0x88, 0x8a, 0x01, 0xf3, 0xd6, 0x20, - 0x56, 0xfb, 0x0e, 0xfb, 0xe9, 0x99, 0xeb, 0x6b, 0x6e, 0x14, 0x92, 0x76, - 0x13, 0xe0, 0x2b, 0xa8, 0xb8, 0xfb, 0x04, 0x6e}, - // 61c0fc2e38b5b6f9071b42cee54a9013d858b6697c68b460948551b3249576a1.pem - {0x8e, 0x12, 0xd0, 0xcb, 0x3b, 0x7d, 0xf3, 0xea, 0x22, 0x57, 0x57, 0x94, - 0x89, 0xfd, 0x86, 0x58, 0xc9, 0x56, 0x03, 0xea, 0x6c, 0xf4, 0xb7, 0x31, - 0x63, 0xa4, 0x1e, 0xb7, 0xb7, 0xe9, 0x3f, 0xee}, - // 143315c857a9386973ed16840899c3f96b894a7a612c444efb691f14b0dedd87.pem - {0xa4, 0xe9, 0xaf, 0x01, 0x41, 0x6e, 0x3a, 0x02, 0x9b, 0x5d, 0x35, 0xe5, - 0xb1, 0x19, 0xde, 0x00, 0xcf, 0xe1, 0x56, 0xc5, 0xcf, 0x95, 0xfc, 0x82, - 0x3c, 0xf6, 0xd0, 0x5e, 0x3c, 0x1a, 0x82, 0x37}, - // 44a244105569a730791f509b24c3d7838a462216bb0f560ef87fbe76c2e6005a.pem - {0xb0, 0xfc, 0xce, 0x78, 0xc1, 0x66, 0x4e, 0x29, 0x35, 0x44, 0xc1, 0x43, - 0xe3, 0xd2, 0x68, 0x9f, 0x72, 0x3f, 0x5b, 0x6e, 0x63, 0x17, 0x10, 0x7e, - 0x16, 0x3d, 0x22, 0xba, 0x80, 0x69, 0x79, 0x4a}, - // 0230a604d99220e5612ee7862ab9f7a6e18e4f1ac4c9e27075788cc5220169ab.pem - {0xc5, 0x62, 0x17, 0xb7, 0xa8, 0x28, 0xc7, 0x34, 0x1c, 0x0a, 0xe7, 0xa5, - 0x90, 0xd8, 0x79, 0x0d, 0x4d, 0xef, 0x53, 0x66, 0x52, 0xe6, 0x0a, 0xe5, - 0xb8, 0xbd, 0xfa, 0x26, 0x97, 0x8f, 0xe0, 0x9c}, - // 06fd20629c143b9eab28d2799caefc5d23fde267d16c631e3f5b8b4bab3f68e6.pem - {0xe4, 0x7c, 0x5c, 0xd2, 0xdc, 0x8b, 0xab, 0xb4, 0xe5, 0x3f, 0x8a, 0x49, - 0x83, 0x92, 0x02, 0x75, 0xef, 0x6f, 0xfa, 0xac, 0xb0, 0x89, 0xe8, 0x7a, - 0x2c, 0x1f, 0xbe, 0x5a, 0x58, 0x5f, 0x05, 0xed}, - // 0bd39de4793cdc117138f47708aa4d583acf67adb059a0d91f668d1803bf6489.pem - {0x39, 0x73, 0x65, 0x88, 0xb9, 0x4a, 0x4c, 0xe7, 0x67, 0xf7, 0x31, - 0xca, 0xd5, 0x3f, 0x4c, 0xbe, 0x44, 0x13, 0x7e, 0x32, 0x1e, 0xad, - 0xca, 0xef, 0x8c, 0xe7, 0x9a, 0x22, 0x9b, 0xbc, 0xa9, 0x89}, - // c95c133b68319ee516b5f41e377f589878af1556567cc2834ef03b1d10830fd3.pem - {0xea, 0x12, 0x70, 0x5d, 0xe7, 0xc4, 0x8f, 0x6f, 0xcc, 0xe2, 0xcb, 0x8d, - 0xbc, 0x54, 0x2e, 0x0f, 0xc3, 0x8a, 0xc3, 0x8e, 0x08, 0x88, 0x0d, 0xd0, - 0x4a, 0x02, 0xef, 0x67, 0xc9, 0x3a, 0xe1, 0x35}, -}; diff --git a/src/pki/certificate.cc b/src/pki/certificate.cc new file mode 100644 index 0000000..db1c627 --- /dev/null +++ b/src/pki/certificate.cc @@ -0,0 +1,117 @@ +/* Copyright (c) 2023, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#include <optional> +#include <string_view> + +#include <openssl/pki/certificate.h> +#include <openssl/pool.h> + +#include "cert_errors.h" +#include "encode_values.h" +#include "parsed_certificate.h" +#include "pem.h" +#include "parse_values.h" + +namespace bssl { + +namespace { + +std::shared_ptr<const bssl::ParsedCertificate> ParseCertificateFromDer( + bssl::Span<const uint8_t>cert, std::string *out_diagnostic) { + bssl::ParseCertificateOptions default_options{}; + // We follow Chromium in setting |allow_invalid_serial_numbers| in order to + // not choke on 21-byte serial numbers, which are common. davidben explains + // why: + // + // The reason for the discrepancy is that unsigned numbers with the high bit + // otherwise set get an extra 0 byte in front to keep them positive. So if you + // do: + // var num [20]byte + // fillWithRandom(num[:]) + // serialNumber := new(big.Int).SetBytes(num[:]) + // encodeASN1Integer(serialNumber) + // + // Then half of your serial numbers will be encoded with 21 bytes. (And + // 1/512th will have 19 bytes instead of 20.) + default_options.allow_invalid_serial_numbers = true; + + bssl::UniquePtr<CRYPTO_BUFFER> buffer( + CRYPTO_BUFFER_new(cert.data(), cert.size(), nullptr)); + bssl::CertErrors errors; + std::shared_ptr<const bssl::ParsedCertificate> parsed_cert( + bssl::ParsedCertificate::Create(std::move(buffer), default_options, &errors)); + if (!parsed_cert) { + *out_diagnostic = errors.ToDebugString(); + return nullptr; + } + return parsed_cert; +} + +} // namespace + +struct CertificateInternals { + std::shared_ptr<const bssl::ParsedCertificate> cert; +}; + +Certificate::Certificate(std::unique_ptr<CertificateInternals> internals) + : internals_(std::move(internals)) {} +Certificate::~Certificate() = default; +Certificate::Certificate(Certificate&& other) = default; + +std::unique_ptr<Certificate> Certificate::FromDER(bssl::Span<const uint8_t> der, + std::string *out_diagnostic) { + std::shared_ptr<const bssl::ParsedCertificate> result = + ParseCertificateFromDer(der, out_diagnostic); + if (result == nullptr) { + return nullptr; + } + + auto internals = std::make_unique<CertificateInternals>(); + internals->cert = std::move(result); + std::unique_ptr<Certificate> ret(new Certificate(std::move(internals))); + return ret; +} + +std::unique_ptr<Certificate> Certificate::FromPEM(std::string_view pem, + std::string *out_diagnostic) { + bssl::PEMTokenizer tokenizer(pem, {"CERTIFICATE"}); + if (!tokenizer.GetNext()) { + return nullptr; + } + return FromDER(StringAsBytes(tokenizer.data()), out_diagnostic); +} + +bool Certificate::IsSelfIssued() const { + return internals_->cert->normalized_subject() == + internals_->cert->normalized_issuer(); +} + +Certificate::Validity Certificate::GetValidity() const { + Certificate::Validity validity; + + // As this is a previously parsed certificate, we know the not_before + // and not after are valid, so these conversions can not fail. + (void) GeneralizedTimeToPosixTime( + internals_->cert->tbs().validity_not_before, &validity.not_before); + (void) GeneralizedTimeToPosixTime( + internals_->cert->tbs().validity_not_after, &validity.not_after); + return validity; +} + +bssl::Span<const uint8_t> Certificate::GetSerialNumber() const { + return internals_->cert->tbs().serial_number; +} + +} // namespace boringssl diff --git a/src/pki/certificate_policies.cc b/src/pki/certificate_policies.cc index 3716a4b..198e348 100644 --- a/src/pki/certificate_policies.cc +++ b/src/pki/certificate_policies.cc @@ -6,13 +6,12 @@ #include "certificate_policies.h" +#include <openssl/base.h> #include "cert_error_params.h" #include "cert_errors.h" #include "input.h" #include "parse_values.h" #include "parser.h" -#include "tag.h" -#include <openssl/base.h> namespace bssl { @@ -41,9 +40,9 @@ DEFINE_CERT_ERROR_ID(kPolicyQualifierInfoTrailingData, // If a policy qualifier other than User Notice/CPS is present, parsing // will fail if |restrict_to_known_qualifiers| was set to true. bool ParsePolicyQualifiers(bool restrict_to_known_qualifiers, - der::Parser* policy_qualifiers_sequence_parser, - std::vector<PolicyQualifierInfo>* policy_qualifiers, - CertErrors* errors) { + der::Parser *policy_qualifiers_sequence_parser, + std::vector<PolicyQualifierInfo> *policy_qualifiers, + CertErrors *errors) { BSSL_CHECK(errors); // If it is present, the policyQualifiers sequence should have at least 1 @@ -64,8 +63,9 @@ bool ParsePolicyQualifiers(bool restrict_to_known_qualifiers, } // policyQualifierId PolicyQualifierId, der::Input qualifier_oid; - if (!policy_information_parser.ReadTag(der::kOid, &qualifier_oid)) + if (!policy_information_parser.ReadTag(CBS_ASN1_OBJECT, &qualifier_oid)) { return false; + } if (restrict_to_known_qualifiers && qualifier_oid != der::Input(kCpsPointerId) && qualifier_oid != der::Input(kUserNoticeId)) { @@ -85,8 +85,9 @@ bool ParsePolicyQualifiers(bool restrict_to_known_qualifiers, return false; } - if (policy_qualifiers) + if (policy_qualifiers) { policy_qualifiers->push_back({qualifier_oid, qualifier_tlv}); + } } return true; } @@ -128,21 +129,21 @@ bool ParsePolicyQualifiers(bool restrict_to_known_qualifiers, // bmpString BMPString (SIZE (1..200)), // utf8String UTF8String (SIZE (1..200)) } bool ParseCertificatePoliciesExtensionImpl( - const der::Input& extension_value, - bool fail_parsing_unknown_qualifier_oids, - std::vector<der::Input>* policy_oids, - std::vector<PolicyInformation>* policy_informations, - CertErrors* errors) { + der::Input extension_value, bool fail_parsing_unknown_qualifier_oids, + std::vector<der::Input> *policy_oids, + std::vector<PolicyInformation> *policy_informations, CertErrors *errors) { BSSL_CHECK(policy_oids); BSSL_CHECK(errors); // certificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation der::Parser extension_parser(extension_value); der::Parser policies_sequence_parser; - if (!extension_parser.ReadSequence(&policies_sequence_parser)) + if (!extension_parser.ReadSequence(&policies_sequence_parser)) { return false; + } // Should not have trailing data after certificatePolicies sequence. - if (extension_parser.HasMore()) + if (extension_parser.HasMore()) { return false; + } // The certificatePolicies sequence should have at least 1 element. if (!policies_sequence_parser.HasMore()) { errors->AddError(kPoliciesEmptySequence); @@ -150,30 +151,34 @@ bool ParseCertificatePoliciesExtensionImpl( } policy_oids->clear(); - if (policy_informations) + if (policy_informations) { policy_informations->clear(); + } while (policies_sequence_parser.HasMore()) { // PolicyInformation ::= SEQUENCE { der::Parser policy_information_parser; - if (!policies_sequence_parser.ReadSequence(&policy_information_parser)) + if (!policies_sequence_parser.ReadSequence(&policy_information_parser)) { return false; + } // policyIdentifier CertPolicyId, der::Input policy_oid; - if (!policy_information_parser.ReadTag(der::kOid, &policy_oid)) + if (!policy_information_parser.ReadTag(CBS_ASN1_OBJECT, &policy_oid)) { return false; + } policy_oids->push_back(policy_oid); - std::vector<PolicyQualifierInfo>* policy_qualifiers = nullptr; + std::vector<PolicyQualifierInfo> *policy_qualifiers = nullptr; if (policy_informations) { policy_informations->emplace_back(); policy_informations->back().policy_oid = policy_oid; policy_qualifiers = &policy_informations->back().policy_qualifiers; } - if (!policy_information_parser.HasMore()) + if (!policy_information_parser.HasMore()) { continue; + } // policyQualifiers SEQUENCE SIZE (1..MAX) OF // PolicyQualifierInfo OPTIONAL } @@ -218,12 +223,12 @@ bool ParseCertificatePoliciesExtensionImpl( PolicyInformation::PolicyInformation() = default; PolicyInformation::~PolicyInformation() = default; -PolicyInformation::PolicyInformation(const PolicyInformation&) = default; -PolicyInformation::PolicyInformation(PolicyInformation&&) = default; +PolicyInformation::PolicyInformation(const PolicyInformation &) = default; +PolicyInformation::PolicyInformation(PolicyInformation &&) = default; -bool ParseCertificatePoliciesExtension(const der::Input& extension_value, - std::vector<PolicyInformation>* policies, - CertErrors* errors) { +bool ParseCertificatePoliciesExtension(der::Input extension_value, + std::vector<PolicyInformation> *policies, + CertErrors *errors) { std::vector<der::Input> unused_policy_oids; return ParseCertificatePoliciesExtensionImpl( extension_value, /*fail_parsing_unknown_qualifier_oids=*/false, @@ -231,10 +236,8 @@ bool ParseCertificatePoliciesExtension(const der::Input& extension_value, } bool ParseCertificatePoliciesExtensionOids( - const der::Input& extension_value, - bool fail_parsing_unknown_qualifier_oids, - std::vector<der::Input>* policy_oids, - CertErrors* errors) { + der::Input extension_value, bool fail_parsing_unknown_qualifier_oids, + std::vector<der::Input> *policy_oids, CertErrors *errors) { return ParseCertificatePoliciesExtensionImpl( extension_value, fail_parsing_unknown_qualifier_oids, policy_oids, nullptr, errors); @@ -247,14 +250,15 @@ bool ParseCertificatePoliciesExtensionOids( // inhibitPolicyMapping [1] SkipCerts OPTIONAL } // // SkipCerts ::= INTEGER (0..MAX) -bool ParsePolicyConstraints(const der::Input& policy_constraints_tlv, - ParsedPolicyConstraints* out) { +bool ParsePolicyConstraints(der::Input policy_constraints_tlv, + ParsedPolicyConstraints *out) { der::Parser parser(policy_constraints_tlv); // PolicyConstraints ::= SEQUENCE { der::Parser sequence_parser; - if (!parser.ReadSequence(&sequence_parser)) + if (!parser.ReadSequence(&sequence_parser)) { return false; + } // RFC 5280 prohibits CAs from issuing PolicyConstraints as an empty sequence: // @@ -263,11 +267,12 @@ bool ParsePolicyConstraints(const der::Input& policy_constraints_tlv, // or the requireExplicitPolicy field MUST be present. The behavior of // clients that encounter an empty policy constraints field is not // addressed in this profile. - if (!sequence_parser.HasMore()) + if (!sequence_parser.HasMore()) { return false; + } std::optional<der::Input> require_value; - if (!sequence_parser.ReadOptionalTag(der::ContextSpecificPrimitive(0), + if (!sequence_parser.ReadOptionalTag(CBS_ASN1_CONTEXT_SPECIFIC | 0, &require_value)) { return false; } @@ -283,7 +288,7 @@ bool ParsePolicyConstraints(const der::Input& policy_constraints_tlv, } std::optional<der::Input> inhibit_value; - if (!sequence_parser.ReadOptionalTag(der::ContextSpecificPrimitive(1), + if (!sequence_parser.ReadOptionalTag(CBS_ASN1_CONTEXT_SPECIFIC | 1, &inhibit_value)) { return false; } @@ -299,8 +304,9 @@ bool ParsePolicyConstraints(const der::Input& policy_constraints_tlv, } // There should be no remaining data. - if (sequence_parser.HasMore() || parser.HasMore()) + if (sequence_parser.HasMore() || parser.HasMore()) { return false; + } return true; } @@ -311,7 +317,7 @@ bool ParsePolicyConstraints(const der::Input& policy_constraints_tlv, // // SkipCerts ::= INTEGER (0..MAX) std::optional<uint8_t> ParseInhibitAnyPolicy( - const der::Input& inhibit_any_policy_tlv) { + der::Input inhibit_any_policy_tlv) { der::Parser parser(inhibit_any_policy_tlv); std::optional<uint8_t> num_certs = std::make_optional<uint8_t>(); @@ -333,44 +339,53 @@ std::optional<uint8_t> ParseInhibitAnyPolicy( // PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE { // issuerDomainPolicy CertPolicyId, // subjectDomainPolicy CertPolicyId } -bool ParsePolicyMappings(const der::Input& policy_mappings_tlv, - std::vector<ParsedPolicyMapping>* mappings) { +bool ParsePolicyMappings(der::Input policy_mappings_tlv, + std::vector<ParsedPolicyMapping> *mappings) { mappings->clear(); der::Parser parser(policy_mappings_tlv); // PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE { der::Parser sequence_parser; - if (!parser.ReadSequence(&sequence_parser)) + if (!parser.ReadSequence(&sequence_parser)) { return false; + } // Must be at least 1 mapping. - if (!sequence_parser.HasMore()) + if (!sequence_parser.HasMore()) { return false; + } while (sequence_parser.HasMore()) { der::Parser mapping_parser; - if (!sequence_parser.ReadSequence(&mapping_parser)) + if (!sequence_parser.ReadSequence(&mapping_parser)) { return false; + } ParsedPolicyMapping mapping; - if (!mapping_parser.ReadTag(der::kOid, &mapping.issuer_domain_policy)) + if (!mapping_parser.ReadTag(CBS_ASN1_OBJECT, + &mapping.issuer_domain_policy)) { return false; - if (!mapping_parser.ReadTag(der::kOid, &mapping.subject_domain_policy)) + } + if (!mapping_parser.ReadTag(CBS_ASN1_OBJECT, + &mapping.subject_domain_policy)) { return false; + } // There shouldn't be extra unconsumed data. - if (mapping_parser.HasMore()) + if (mapping_parser.HasMore()) { return false; + } mappings->push_back(mapping); } // There shouldn't be extra unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/certificate_policies.h b/src/pki/certificate_policies.h index 73f39b7..ccba1e9 100644 --- a/src/pki/certificate_policies.h +++ b/src/pki/certificate_policies.h @@ -5,14 +5,12 @@ #ifndef BSSL_PKI_CERTIFICATE_POLICIES_H_ #define BSSL_PKI_CERTIFICATE_POLICIES_H_ -#include "fillins/openssl_util.h" #include <stdint.h> - #include <vector> -#include "input.h" #include <optional> +#include "input.h" namespace bssl { @@ -59,8 +57,8 @@ struct PolicyQualifierInfo { struct OPENSSL_EXPORT PolicyInformation { PolicyInformation(); ~PolicyInformation(); - PolicyInformation(const PolicyInformation&); - PolicyInformation(PolicyInformation&&); + PolicyInformation(const PolicyInformation &); + PolicyInformation(PolicyInformation &&); der::Input policy_oid; std::vector<PolicyQualifierInfo> policy_qualifiers; @@ -75,9 +73,8 @@ struct OPENSSL_EXPORT PolicyInformation { // The values in |policies| are only valid as long as |extension_value| is (as // it references data). OPENSSL_EXPORT bool ParseCertificatePoliciesExtension( - const der::Input& extension_value, - std::vector<PolicyInformation>* policies, - CertErrors* errors); + der::Input extension_value, std::vector<PolicyInformation> *policies, + CertErrors *errors); // Parses a certificatePolicies extension and stores the policy OIDs in // |*policy_oids|, in sorted order. @@ -97,10 +94,8 @@ OPENSSL_EXPORT bool ParseCertificatePoliciesExtension( // The values in |policy_oids| are only valid as long as |extension_value| is // (as it references data). OPENSSL_EXPORT bool ParseCertificatePoliciesExtensionOids( - const der::Input& extension_value, - bool fail_parsing_unknown_qualifier_oids, - std::vector<der::Input>* policy_oids, - CertErrors* errors); + der::Input extension_value, bool fail_parsing_unknown_qualifier_oids, + std::vector<der::Input> *policy_oids, CertErrors *errors); struct ParsedPolicyConstraints { std::optional<uint8_t> require_explicit_policy; @@ -111,13 +106,12 @@ struct ParsedPolicyConstraints { // Parses a PolicyConstraints SEQUENCE as defined by RFC 5280. Returns true on // success, and sets |out|. [[nodiscard]] OPENSSL_EXPORT bool ParsePolicyConstraints( - const der::Input& policy_constraints_tlv, - ParsedPolicyConstraints* out); + der::Input policy_constraints_tlv, ParsedPolicyConstraints *out); // Parses an InhibitAnyPolicy as defined by RFC 5280. Returns num certs on // success, or empty if parser fails. [[nodiscard]] OPENSSL_EXPORT std::optional<uint8_t> ParseInhibitAnyPolicy( - const der::Input& inhibit_any_policy_tlv); + der::Input inhibit_any_policy_tlv); struct ParsedPolicyMapping { der::Input issuer_domain_policy; @@ -127,9 +121,8 @@ struct ParsedPolicyMapping { // Parses a PolicyMappings SEQUENCE as defined by RFC 5280. Returns true on // success, and sets |mappings|. [[nodiscard]] OPENSSL_EXPORT bool ParsePolicyMappings( - const der::Input& policy_mappings_tlv, - std::vector<ParsedPolicyMapping>* mappings); + der::Input policy_mappings_tlv, std::vector<ParsedPolicyMapping> *mappings); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_CERTIFICATE_POLICIES_H_ diff --git a/src/pki/certificate_policies_unittest.cc b/src/pki/certificate_policies_unittest.cc index fcf10b8..9458659 100644 --- a/src/pki/certificate_policies_unittest.cc +++ b/src/pki/certificate_policies_unittest.cc @@ -4,16 +4,16 @@ #include "certificate_policies.h" -#include "test_helpers.h" +#include <gtest/gtest.h> #include "input.h" #include "parser.h" -#include <gtest/gtest.h> +#include "test_helpers.h" namespace bssl { namespace { -::testing::AssertionResult LoadTestData(const std::string& name, - std::string* result) { +::testing::AssertionResult LoadTestData(const std::string &name, + std::string *result) { std::string path = "testdata/certificate_policies_unittest/" + name; const PemBlockMapping mappings[] = { @@ -34,8 +34,7 @@ class ParseCertificatePoliciesExtensionOidsTest // Run the tests with all possible values for // |fail_parsing_unknown_qualifier_oids|. -INSTANTIATE_TEST_SUITE_P(All, - ParseCertificatePoliciesExtensionOidsTest, +INSTANTIATE_TEST_SUITE_P(All, ParseCertificatePoliciesExtensionOidsTest, testing::Bool()); TEST_P(ParseCertificatePoliciesExtensionOidsTest, InvalidEmpty) { @@ -237,11 +236,11 @@ TEST(ParseCertificatePoliciesExtensionTest, OnePolicyWithCustomQualifier) { EXPECT_TRUE( ParseCertificatePoliciesExtension(der::Input(der), &policies, &errors)); ASSERT_EQ(1U, policies.size()); - PolicyInformation& policy = policies[0]; + PolicyInformation &policy = policies[0]; EXPECT_EQ(der::Input(policy_1_2_3_der), policy.policy_oid); ASSERT_EQ(1U, policy.policy_qualifiers.size()); - PolicyQualifierInfo& qualifier = policy.policy_qualifiers[0]; + PolicyQualifierInfo &qualifier = policy.policy_qualifiers[0]; // 1.2.3.4 const uint8_t kExpectedQualifierOid[] = {0x2a, 0x03, 0x04}; EXPECT_EQ(der::Input(kExpectedQualifierOid), qualifier.qualifier_oid); @@ -259,12 +258,12 @@ TEST(ParseCertificatePoliciesExtensionTest, TwoPolicies) { ParseCertificatePoliciesExtension(der::Input(der), &policies, &errors)); ASSERT_EQ(2U, policies.size()); { - PolicyInformation& policy = policies[0]; + PolicyInformation &policy = policies[0]; EXPECT_EQ(der::Input(policy_1_2_3_der), policy.policy_oid); EXPECT_EQ(0U, policy.policy_qualifiers.size()); } { - PolicyInformation& policy = policies[1]; + PolicyInformation &policy = policies[1]; EXPECT_EQ(der::Input(policy_1_2_4_der), policy.policy_oid); EXPECT_EQ(0U, policy.policy_qualifiers.size()); } @@ -279,10 +278,10 @@ TEST(ParseCertificatePoliciesExtensionTest, TwoPoliciesWithQualifiers) { ParseCertificatePoliciesExtension(der::Input(der), &policies, &errors)); ASSERT_EQ(2U, policies.size()); { - PolicyInformation& policy = policies[0]; + PolicyInformation &policy = policies[0]; EXPECT_EQ(der::Input(policy_1_2_3_der), policy.policy_oid); ASSERT_EQ(1U, policy.policy_qualifiers.size()); - PolicyQualifierInfo& qualifier = policy.policy_qualifiers[0]; + PolicyQualifierInfo &qualifier = policy.policy_qualifiers[0]; EXPECT_EQ(der::Input(kCpsPointerId), qualifier.qualifier_oid); // IA5String { "https://example.com/1_2_3" } const uint8_t kExpectedQualifier[] = { @@ -292,10 +291,10 @@ TEST(ParseCertificatePoliciesExtensionTest, TwoPoliciesWithQualifiers) { EXPECT_EQ(der::Input(kExpectedQualifier), qualifier.qualifier); } { - PolicyInformation& policy = policies[1]; + PolicyInformation &policy = policies[1]; EXPECT_EQ(der::Input(policy_1_2_4_der), policy.policy_oid); ASSERT_EQ(1U, policy.policy_qualifiers.size()); - PolicyQualifierInfo& qualifier = policy.policy_qualifiers[0]; + PolicyQualifierInfo &qualifier = policy.policy_qualifiers[0]; EXPECT_EQ(der::Input(kCpsPointerId), qualifier.qualifier_oid); // IA5String { "http://example.com/1_2_4" } const uint8_t kExpectedQualifier[] = { @@ -310,4 +309,4 @@ TEST(ParseCertificatePoliciesExtensionTest, TwoPoliciesWithQualifiers) { // parsed_certificate_unittest.cc } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/certificate_unittest.cc b/src/pki/certificate_unittest.cc new file mode 100644 index 0000000..57a51fa --- /dev/null +++ b/src/pki/certificate_unittest.cc @@ -0,0 +1,76 @@ +/* Copyright (c) 2023, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#include <optional> +#include <string> +#include <string_view> + +#include <openssl/pki/certificate.h> +#include <gmock/gmock.h> + +#include "string_util.h" +#include "test_helpers.h" + +TEST(CertificateTest, FromPEM) { + std::string diagnostic; + std::unique_ptr<bssl::Certificate> cert( + bssl::Certificate::FromPEM("nonsense", &diagnostic)); + EXPECT_FALSE(cert); + + cert = bssl::Certificate::FromPEM(bssl::ReadTestFileToString( + "testdata/verify_unittest/self-issued.pem"), &diagnostic); + EXPECT_TRUE(cert); +} + +TEST(CertificateTest, IsSelfIssued) { + std::string diagnostic; + const std::string leaf = + bssl::ReadTestFileToString("testdata/verify_unittest/google-leaf.der"); + std::unique_ptr<bssl::Certificate> leaf_cert( + bssl::Certificate::FromDER(bssl::StringAsBytes(leaf), &diagnostic)); + EXPECT_TRUE(leaf_cert); + EXPECT_FALSE(leaf_cert->IsSelfIssued()); + + const std::string self_issued = + bssl::ReadTestFileToString("testdata/verify_unittest/self-issued.pem"); + std::unique_ptr<bssl::Certificate> self_issued_cert( + bssl::Certificate::FromPEM(self_issued, &diagnostic)); + EXPECT_TRUE(self_issued_cert); + EXPECT_TRUE(self_issued_cert->IsSelfIssued()); +} + +TEST(CertificateTest, Validity) { + std::string diagnostic; + const std::string leaf = + bssl::ReadTestFileToString("testdata/verify_unittest/google-leaf.der"); + std::unique_ptr<bssl::Certificate> cert( + bssl::Certificate::FromDER(bssl::StringAsBytes(leaf), &diagnostic)); + EXPECT_TRUE(cert); + + bssl::Certificate::Validity validity = cert->GetValidity(); + EXPECT_EQ(validity.not_before, 1498644466); + EXPECT_EQ(validity.not_after, 1505899620); +} + +TEST(CertificateTest, SerialNumber) { + std::string diagnostic; + const std::string leaf = + bssl::ReadTestFileToString("testdata/verify_unittest/google-leaf.der"); + std::unique_ptr<bssl::Certificate> cert( + bssl::Certificate::FromDER(bssl::StringAsBytes(leaf), &diagnostic)); + EXPECT_TRUE(cert); + + EXPECT_EQ(bssl::string_util::HexEncode(cert->GetSerialNumber()), + "0118F044A8F31892"); +} diff --git a/src/pki/common_cert_errors.cc b/src/pki/common_cert_errors.cc index b13bc94..00f5743 100644 --- a/src/pki/common_cert_errors.cc +++ b/src/pki/common_cert_errors.cc @@ -39,9 +39,6 @@ DEFINE_CERT_ERROR_ID(kSignatureAlgorithmsDifferentEncoding, "than TBSCertificate.signature"); DEFINE_CERT_ERROR_ID(kEkuLacksServerAuth, "The extended key usage does not include server auth"); -DEFINE_CERT_ERROR_ID(kEkuLacksServerAuthButHasGatedCrypto, - "The extended key usage does not include server auth but " - "instead includes Netscape Server Gated Crypto"); DEFINE_CERT_ERROR_ID(kEkuLacksServerAuthButHasAnyEKU, "The extended key usage does not include server auth but " "instead includes anyExtendeKeyUsage"); diff --git a/src/pki/common_cert_errors.h b/src/pki/common_cert_errors.h index 5e3f1b9..d2b37ba 100644 --- a/src/pki/common_cert_errors.h +++ b/src/pki/common_cert_errors.h @@ -5,7 +5,7 @@ #ifndef BSSL_PKI_COMMON_CERT_ERRORS_H_ #define BSSL_PKI_COMMON_CERT_ERRORS_H_ -#include "fillins/openssl_util.h" +#include <openssl/base.h> #include "cert_errors.h" @@ -108,10 +108,6 @@ OPENSSL_EXPORT extern const CertErrorId kUnacceptableSignatureAlgorithm; // What constitutes as "acceptable" is determined by the verification delegate. OPENSSL_EXPORT extern const CertErrorId kUnacceptablePublicKey; -// The certificate's EKU is missing serverAuth. However Netscape Server Gated -// Crypto is present instead. -OPENSSL_EXPORT extern const CertErrorId kEkuLacksServerAuthButHasGatedCrypto; - // The certificate's EKU is missing serverAuth. However EKU ANY is present // instead. OPENSSL_EXPORT extern const CertErrorId kEkuLacksServerAuthButHasAnyEKU; diff --git a/src/pki/crl.cc b/src/pki/crl.cc index dbd1ca1..63e1cc6 100644 --- a/src/pki/crl.cc +++ b/src/pki/crl.cc @@ -6,17 +6,17 @@ #include <iterator> #include <openssl/base.h> +#include <openssl/bytestring.h> #include "cert_errors.h" #include "crl.h" +#include "input.h" +#include "parse_values.h" +#include "parser.h" #include "revocation_util.h" #include "signature_algorithm.h" #include "verify_name_match.h" #include "verify_signed_data.h" -#include "input.h" -#include "parse_values.h" -#include "parser.h" -#include "tag.h" namespace bssl { @@ -26,12 +26,12 @@ namespace { // In dotted notation: 2.5.29.28 inline constexpr uint8_t kIssuingDistributionPointOid[] = {0x55, 0x1d, 0x1c}; -[[nodiscard]] bool NormalizeNameTLV(const der::Input& name_tlv, - std::string* out_normalized_name) { +[[nodiscard]] bool NormalizeNameTLV(der::Input name_tlv, + std::string *out_normalized_name) { der::Parser parser(name_tlv); der::Input name_rdn; bssl::CertErrors unused_errors; - return parser.ReadTag(der::kSequence, &name_rdn) && + return parser.ReadTag(CBS_ASN1_SEQUENCE, &name_rdn) && NormalizeName(name_rdn, out_normalized_name, &unused_errors) && !parser.HasMore(); } @@ -48,64 +48,74 @@ bool ContainsExactMatchingName(std::vector<std::string_view> a, } // namespace -bool ParseCrlCertificateList(const der::Input& crl_tlv, - der::Input* out_tbs_cert_list_tlv, - der::Input* out_signature_algorithm_tlv, - der::BitString* out_signature_value) { +bool ParseCrlCertificateList(der::Input crl_tlv, + der::Input *out_tbs_cert_list_tlv, + der::Input *out_signature_algorithm_tlv, + der::BitString *out_signature_value) { der::Parser parser(crl_tlv); // CertificateList ::= SEQUENCE { der::Parser certificate_list_parser; - if (!parser.ReadSequence(&certificate_list_parser)) + if (!parser.ReadSequence(&certificate_list_parser)) { return false; + } // tbsCertList TBSCertList - if (!certificate_list_parser.ReadRawTLV(out_tbs_cert_list_tlv)) + if (!certificate_list_parser.ReadRawTLV(out_tbs_cert_list_tlv)) { return false; + } // signatureAlgorithm AlgorithmIdentifier, - if (!certificate_list_parser.ReadRawTLV(out_signature_algorithm_tlv)) + if (!certificate_list_parser.ReadRawTLV(out_signature_algorithm_tlv)) { return false; + } // signatureValue BIT STRING } std::optional<der::BitString> signature_value = certificate_list_parser.ReadBitString(); - if (!signature_value) + if (!signature_value) { return false; + } *out_signature_value = signature_value.value(); // There isn't an extension point at the end of CertificateList. - if (certificate_list_parser.HasMore()) + if (certificate_list_parser.HasMore()) { return false; + } // By definition the input was a single CertificateList, so there shouldn't be // unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } return true; } -bool ParseCrlTbsCertList(const der::Input& tbs_tlv, ParsedCrlTbsCertList* out) { +bool ParseCrlTbsCertList(der::Input tbs_tlv, ParsedCrlTbsCertList *out) { der::Parser parser(tbs_tlv); // TBSCertList ::= SEQUENCE { der::Parser tbs_parser; - if (!parser.ReadSequence(&tbs_parser)) + if (!parser.ReadSequence(&tbs_parser)) { return false; + } // version Version OPTIONAL, // -- if present, MUST be v2 std::optional<der::Input> version_der; - if (!tbs_parser.ReadOptionalTag(der::kInteger, &version_der)) + if (!tbs_parser.ReadOptionalTag(CBS_ASN1_INTEGER, &version_der)) { return false; + } if (version_der.has_value()) { uint64_t version64; - if (!der::ParseUint64(*version_der, &version64)) + if (!der::ParseUint64(*version_der, &version64)) { return false; + } // If version is present, it MUST be v2(1). - if (version64 != 1) + if (version64 != 1) { return false; + } out->version = CrlVersion::V2; } else { // Uh, RFC 5280 doesn't actually say it anywhere, but presumably if version @@ -114,27 +124,31 @@ bool ParseCrlTbsCertList(const der::Input& tbs_tlv, ParsedCrlTbsCertList* out) { } // signature AlgorithmIdentifier, - if (!tbs_parser.ReadRawTLV(&out->signature_algorithm_tlv)) + if (!tbs_parser.ReadRawTLV(&out->signature_algorithm_tlv)) { return false; + } // issuer Name, - if (!tbs_parser.ReadRawTLV(&out->issuer_tlv)) + if (!tbs_parser.ReadRawTLV(&out->issuer_tlv)) { return false; + } // thisUpdate Time, - if (!ReadUTCOrGeneralizedTime(&tbs_parser, &out->this_update)) + if (!ReadUTCOrGeneralizedTime(&tbs_parser, &out->this_update)) { return false; + } // nextUpdate Time OPTIONAL, - der::Tag maybe_next_update_tag; + CBS_ASN1_TAG maybe_next_update_tag; der::Input unused_next_update_input; if (tbs_parser.PeekTagAndValue(&maybe_next_update_tag, &unused_next_update_input) && - (maybe_next_update_tag == der::kUtcTime || - maybe_next_update_tag == der::kGeneralizedTime)) { + (maybe_next_update_tag == CBS_ASN1_UTCTIME || + maybe_next_update_tag == CBS_ASN1_GENERALIZEDTIME)) { der::GeneralizedTime next_update_time; - if (!ReadUTCOrGeneralizedTime(&tbs_parser, &next_update_time)) + if (!ReadUTCOrGeneralizedTime(&tbs_parser, &next_update_time)) { return false; + } out->next_update = next_update_time; } else { out->next_update = std::nullopt; @@ -142,13 +156,14 @@ bool ParseCrlTbsCertList(const der::Input& tbs_tlv, ParsedCrlTbsCertList* out) { // revokedCertificates SEQUENCE OF SEQUENCE { ... } OPTIONAL, der::Input unused_revoked_certificates; - der::Tag maybe_revoked_certifigates_tag; + CBS_ASN1_TAG maybe_revoked_certifigates_tag; if (tbs_parser.PeekTagAndValue(&maybe_revoked_certifigates_tag, &unused_revoked_certificates) && - maybe_revoked_certifigates_tag == der::kSequence) { + maybe_revoked_certifigates_tag == CBS_ASN1_SEQUENCE) { der::Input revoked_certificates_tlv; - if (!tbs_parser.ReadRawTLV(&revoked_certificates_tlv)) + if (!tbs_parser.ReadRawTLV(&revoked_certificates_tlv)) { return false; + } out->revoked_certificates_tlv = revoked_certificates_tlv; } else { out->revoked_certificates_tlv = std::nullopt; @@ -156,13 +171,15 @@ bool ParseCrlTbsCertList(const der::Input& tbs_tlv, ParsedCrlTbsCertList* out) { // crlExtensions [0] EXPLICIT Extensions OPTIONAL // -- if present, version MUST be v2 - if (!tbs_parser.ReadOptionalTag(der::ContextSpecificConstructed(0), - &out->crl_extensions_tlv)) { + if (!tbs_parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, + &out->crl_extensions_tlv)) { return false; } if (out->crl_extensions_tlv.has_value()) { - if (out->version != CrlVersion::V2) + if (out->version != CrlVersion::V2) { return false; + } } if (tbs_parser.HasMore()) { @@ -172,32 +189,35 @@ bool ParseCrlTbsCertList(const der::Input& tbs_tlv, ParsedCrlTbsCertList* out) { // By definition the input was a single sequence, so there shouldn't be // unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } return true; } bool ParseIssuingDistributionPoint( - const der::Input& extension_value, - std::unique_ptr<GeneralNames>* out_distribution_point_names, - ContainedCertsType* out_only_contains_cert_type) { + der::Input extension_value, + std::unique_ptr<GeneralNames> *out_distribution_point_names, + ContainedCertsType *out_only_contains_cert_type) { der::Parser idp_extension_value_parser(extension_value); // IssuingDistributionPoint ::= SEQUENCE { der::Parser idp_parser; - if (!idp_extension_value_parser.ReadSequence(&idp_parser)) + if (!idp_extension_value_parser.ReadSequence(&idp_parser)) { return false; + } // 5.2.5. Conforming CRLs issuers MUST NOT issue CRLs where the DER // encoding of the issuing distribution point extension is an empty // sequence. - if (!idp_parser.HasMore()) + if (!idp_parser.HasMore()) { return false; + } // distributionPoint [0] DistributionPointName OPTIONAL, std::optional<der::Input> distribution_point; if (!idp_parser.ReadOptionalTag( - der::kTagContextSpecific | der::kTagConstructed | 0, + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &distribution_point)) { return false; } @@ -209,7 +229,7 @@ bool ParseIssuingDistributionPoint( // nameRelativeToCRLIssuer [1] RelativeDistinguishedName } std::optional<der::Input> der_full_name; if (!dp_name_parser.ReadOptionalTag( - der::kTagContextSpecific | der::kTagConstructed | 0, + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &der_full_name)) { return false; } @@ -220,8 +240,9 @@ bool ParseIssuingDistributionPoint( CertErrors errors; *out_distribution_point_names = GeneralNames::CreateFromValue(*der_full_name, &errors); - if (!*out_distribution_point_names) + if (!*out_distribution_point_names) { return false; + } if (dp_name_parser.HasMore()) { // CHOICE represents a single value. @@ -233,31 +254,35 @@ bool ParseIssuingDistributionPoint( // onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE, std::optional<der::Input> only_contains_user_certs; - if (!idp_parser.ReadOptionalTag(der::kTagContextSpecific | 1, + if (!idp_parser.ReadOptionalTag(CBS_ASN1_CONTEXT_SPECIFIC | 1, &only_contains_user_certs)) { return false; } if (only_contains_user_certs.has_value()) { bool bool_value; - if (!der::ParseBool(*only_contains_user_certs, &bool_value)) + if (!der::ParseBool(*only_contains_user_certs, &bool_value)) { return false; - if (!bool_value) + } + if (!bool_value) { return false; // DER-encoding requires DEFAULT values be omitted. + } *out_only_contains_cert_type = ContainedCertsType::USER_CERTS; } // onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE, std::optional<der::Input> only_contains_ca_certs; - if (!idp_parser.ReadOptionalTag(der::kTagContextSpecific | 2, + if (!idp_parser.ReadOptionalTag(CBS_ASN1_CONTEXT_SPECIFIC | 2, &only_contains_ca_certs)) { return false; } if (only_contains_ca_certs.has_value()) { bool bool_value; - if (!der::ParseBool(*only_contains_ca_certs, &bool_value)) + if (!der::ParseBool(*only_contains_ca_certs, &bool_value)) { return false; - if (!bool_value) + } + if (!bool_value) { return false; // DER-encoding requires DEFAULT values be omitted. + } if (*out_only_contains_cert_type != ContainedCertsType::ANY_CERTS) { // 5.2.5. at most one of onlyContainsUserCerts, onlyContainsCACerts, // and onlyContainsAttributeCerts may be set to TRUE. @@ -271,16 +296,16 @@ bool ParseIssuingDistributionPoint( // onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE } // onlySomeReasons, indirectCRL, and onlyContainsAttributeCerts are not // supported, fail parsing if they are present. - if (idp_parser.HasMore()) + if (idp_parser.HasMore()) { return false; + } return true; } CRLRevocationStatus GetCRLStatusForCert( - const der::Input& cert_serial, - CrlVersion crl_version, - const std::optional<der::Input>& revoked_certificates_tlv) { + der::Input cert_serial, CrlVersion crl_version, + const std::optional<der::Input> &revoked_certificates_tlv) { if (!revoked_certificates_tlv.has_value()) { // RFC 5280 Section 5.1.2.6: "When there are no revoked certificates, the // revoked certificates list MUST be absent." @@ -292,62 +317,74 @@ CRLRevocationStatus GetCRLStatusForCert( // revokedCertificates SEQUENCE OF SEQUENCE { der::Parser revoked_certificates_parser; - if (!parser.ReadSequence(&revoked_certificates_parser)) + if (!parser.ReadSequence(&revoked_certificates_parser)) { return CRLRevocationStatus::UNKNOWN; + } // RFC 5280 Section 5.1.2.6: "When there are no revoked certificates, the // revoked certificates list MUST be absent." - if (!revoked_certificates_parser.HasMore()) + if (!revoked_certificates_parser.HasMore()) { return CRLRevocationStatus::UNKNOWN; + } // By definition the input was a single Extensions sequence, so there // shouldn't be unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return CRLRevocationStatus::UNKNOWN; + } bool found_matching_serial = false; while (revoked_certificates_parser.HasMore()) { // revokedCertificates SEQUENCE OF SEQUENCE { der::Parser crl_entry_parser; - if (!revoked_certificates_parser.ReadSequence(&crl_entry_parser)) + if (!revoked_certificates_parser.ReadSequence(&crl_entry_parser)) { return CRLRevocationStatus::UNKNOWN; + } der::Input revoked_cert_serial_number; // userCertificate CertificateSerialNumber, - if (!crl_entry_parser.ReadTag(der::kInteger, &revoked_cert_serial_number)) + if (!crl_entry_parser.ReadTag(CBS_ASN1_INTEGER, + &revoked_cert_serial_number)) { return CRLRevocationStatus::UNKNOWN; + } // revocationDate Time, der::GeneralizedTime unused_revocation_date; - if (!ReadUTCOrGeneralizedTime(&crl_entry_parser, &unused_revocation_date)) + if (!ReadUTCOrGeneralizedTime(&crl_entry_parser, &unused_revocation_date)) { return CRLRevocationStatus::UNKNOWN; + } // crlEntryExtensions Extensions OPTIONAL if (crl_entry_parser.HasMore()) { // -- if present, version MUST be v2 - if (crl_version != CrlVersion::V2) + if (crl_version != CrlVersion::V2) { return CRLRevocationStatus::UNKNOWN; + } der::Input crl_entry_extensions_tlv; - if (!crl_entry_parser.ReadRawTLV(&crl_entry_extensions_tlv)) + if (!crl_entry_parser.ReadRawTLV(&crl_entry_extensions_tlv)) { return CRLRevocationStatus::UNKNOWN; + } std::map<der::Input, ParsedExtension> extensions; - if (!ParseExtensions(crl_entry_extensions_tlv, &extensions)) + if (!ParseExtensions(crl_entry_extensions_tlv, &extensions)) { return CRLRevocationStatus::UNKNOWN; + } // RFC 5280 Section 5.3: "If a CRL contains a critical CRL entry // extension that the application cannot process, then the application // MUST NOT use that CRL to determine the status of any certificates." - for (const auto& ext : extensions) { - if (ext.second.critical) + for (const auto &ext : extensions) { + if (ext.second.critical) { return CRLRevocationStatus::UNKNOWN; + } } } - if (crl_entry_parser.HasMore()) + if (crl_entry_parser.HasMore()) { return CRLRevocationStatus::UNKNOWN; + } if (revoked_cert_serial_number == cert_serial) { // Cert is revoked, but can't return yet since there might be critical @@ -356,8 +393,9 @@ CRLRevocationStatus GetCRLStatusForCert( } } - if (found_matching_serial) + if (found_matching_serial) { return CRLRevocationStatus::REVOKED; + } // |cert| is not present in the revokedCertificates list. return CRLRevocationStatus::GOOD; @@ -367,9 +405,9 @@ ParsedCrlTbsCertList::ParsedCrlTbsCertList() = default; ParsedCrlTbsCertList::~ParsedCrlTbsCertList() = default; CRLRevocationStatus CheckCRL(std::string_view raw_crl, - const ParsedCertificateList& valid_chain, + const ParsedCertificateList &valid_chain, size_t target_cert_index, - const ParsedDistributionPoint& cert_dp, + const ParsedDistributionPoint &cert_dp, int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds) { BSSL_CHECK(target_cert_index < valid_chain.size()); @@ -385,7 +423,7 @@ CRLRevocationStatus CheckCRL(std::string_view raw_crl, return CRLRevocationStatus::UNKNOWN; } - const ParsedCertificate* target_cert = valid_chain[target_cert_index].get(); + const ParsedCertificate *target_cert = valid_chain[target_cert_index].get(); // 6.3.3 (a) Update the local CRL cache by obtaining a complete CRL, a // delta CRL, or both, as required. @@ -402,8 +440,9 @@ CRLRevocationStatus CheckCRL(std::string_view raw_crl, } ParsedCrlTbsCertList tbs_cert_list; - if (!ParseCrlTbsCertList(tbs_cert_list_tlv, &tbs_cert_list)) + if (!ParseCrlTbsCertList(tbs_cert_list_tlv, &tbs_cert_list)) { return CRLRevocationStatus::UNKNOWN; + } // 5.1.1.2 signatureAlgorithm // @@ -467,16 +506,18 @@ CRLRevocationStatus CheckCRL(std::string_view raw_crl, // TODO(https://crbug.com/749276): could do exact comparison first and only // fall back to normalizing if that fails. std::string normalized_crl_issuer; - if (!NormalizeNameTLV(tbs_cert_list.issuer_tlv, &normalized_crl_issuer)) + if (!NormalizeNameTLV(tbs_cert_list.issuer_tlv, &normalized_crl_issuer)) { return CRLRevocationStatus::UNKNOWN; + } if (der::Input(normalized_crl_issuer) != target_cert->normalized_issuer()) { return CRLRevocationStatus::UNKNOWN; } if (tbs_cert_list.crl_extensions_tlv.has_value()) { std::map<der::Input, ParsedExtension> extensions; - if (!ParseExtensions(*tbs_cert_list.crl_extensions_tlv, &extensions)) + if (!ParseExtensions(*tbs_cert_list.crl_extensions_tlv, &extensions)) { return CRLRevocationStatus::UNKNOWN; + } // 6.3.3 (b) (2) If the complete CRL includes an issuing distribution point // (IDP) CRL extension, check the following: @@ -558,10 +599,11 @@ CRLRevocationStatus CheckCRL(std::string_view raw_crl, } } - for (const auto& ext : extensions) { + for (const auto &ext : extensions) { // Fail if any unhandled critical CRL extensions are present. - if (ext.second.critical) + if (ext.second.critical) { return CRLRevocationStatus::UNKNOWN; + } } } @@ -578,7 +620,7 @@ CRLRevocationStatus CheckCRL(std::string_view raw_crl, // PKITS 4.5.3 to pass when it seems like it would not be intended to (since // issuingDistributionPoint CRL extension is not handled). for (size_t i = target_cert_index + 1; i < valid_chain.size(); ++i) { - const ParsedCertificate* issuer_cert = valid_chain[i].get(); + const ParsedCertificate *issuer_cert = valid_chain[i].get(); // 6.3.3 (f) Obtain and validate the certification path for the issuer of // the complete CRL. The trust anchor for the certification @@ -628,4 +670,4 @@ CRLRevocationStatus CheckCRL(std::string_view raw_crl, return CRLRevocationStatus::UNKNOWN; } -} // namespace net +} // namespace bssl diff --git a/src/pki/crl.h b/src/pki/crl.h index f58eeae..d527de9 100644 --- a/src/pki/crl.h +++ b/src/pki/crl.h @@ -5,13 +5,14 @@ #ifndef BSSL_PKI_CRL_H_ #define BSSL_PKI_CRL_H_ -#include "fillins/openssl_util.h" +#include <optional> + +#include <openssl/base.h> #include "general_names.h" -#include "parsed_certificate.h" #include "input.h" #include "parse_values.h" -#include <optional> +#include "parsed_certificate.h" namespace bssl { @@ -42,10 +43,9 @@ enum class CRLRevocationStatus { // signatureAlgorithm AlgorithmIdentifier, // signatureValue BIT STRING } [[nodiscard]] OPENSSL_EXPORT bool ParseCrlCertificateList( - const der::Input& crl_tlv, - der::Input* out_tbs_cert_list_tlv, - der::Input* out_signature_algorithm_tlv, - der::BitString* out_signature_value); + der::Input crl_tlv, der::Input *out_tbs_cert_list_tlv, + der::Input *out_signature_algorithm_tlv, + der::BitString *out_signature_value); // Parses a DER-encoded "TBSCertList" as specified by RFC 5280 Section 5.1. // Returns true on success and sets the results in |out|. @@ -77,8 +77,7 @@ enum class CRLRevocationStatus { // -- if present, version MUST be v2 // } [[nodiscard]] OPENSSL_EXPORT bool ParseCrlTbsCertList( - const der::Input& tbs_tlv, - ParsedCrlTbsCertList* out); + der::Input tbs_tlv, ParsedCrlTbsCertList *out); // Represents a CRL "Version" from RFC 5280. TBSCertList reuses the same // Version definition from TBSCertificate, however only v1(not present) and @@ -181,14 +180,13 @@ enum class ContainedCertsType { // indirectCRL [4] BOOLEAN DEFAULT FALSE, // onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE } [[nodiscard]] OPENSSL_EXPORT bool ParseIssuingDistributionPoint( - const der::Input& extension_value, - std::unique_ptr<GeneralNames>* out_distribution_point_names, - ContainedCertsType* out_only_contains_cert_type); + der::Input extension_value, + std::unique_ptr<GeneralNames> *out_distribution_point_names, + ContainedCertsType *out_only_contains_cert_type); OPENSSL_EXPORT CRLRevocationStatus -GetCRLStatusForCert(const der::Input& cert_serial, - CrlVersion crl_version, - const std::optional<der::Input>& revoked_certificates_tlv); +GetCRLStatusForCert(der::Input cert_serial, CrlVersion crl_version, + const std::optional<der::Input> &revoked_certificates_tlv); // Checks the revocation status of the certificate |cert| by using the // DER-encoded |raw_crl|. |cert| must already have passed certificate path @@ -212,14 +210,11 @@ GetCRLStatusForCert(const der::Input& cert_serial, // implemented as time since the |thisUpdate| field in the CRL // TBSCertList. Responses older than |max_age_seconds| will be // considered invalid. -[[nodiscard]] OPENSSL_EXPORT CRLRevocationStatus -CheckCRL(std::string_view raw_crl, - const ParsedCertificateList& valid_chain, - size_t target_cert_index, - const ParsedDistributionPoint& cert_dp, - int64_t verify_time_epoch_seconds, - std::optional<int64_t> max_age_seconds); - -} // namespace net +[[nodiscard]] OPENSSL_EXPORT CRLRevocationStatus CheckCRL( + std::string_view raw_crl, const ParsedCertificateList &valid_chain, + size_t target_cert_index, const ParsedDistributionPoint &cert_dp, + int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds); + +} // namespace bssl #endif // BSSL_PKI_CRL_H_ diff --git a/src/pki/crl_unittest.cc b/src/pki/crl_unittest.cc index a2479d4..b9be70f 100644 --- a/src/pki/crl_unittest.cc +++ b/src/pki/crl_unittest.cc @@ -6,12 +6,12 @@ #include <string_view> +#include <gtest/gtest.h> +#include <openssl/pool.h> #include "cert_errors.h" #include "parsed_certificate.h" #include "string_util.h" #include "test_helpers.h" -#include <gtest/gtest.h> -#include <openssl/pool.h> namespace bssl { @@ -27,12 +27,13 @@ std::shared_ptr<const ParsedCertificate> ParseCertificate( std::string_view data) { CertErrors errors; return ParsedCertificate::Create( - bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(data.data()), data.size(), nullptr)), + bssl::UniquePtr<CRYPTO_BUFFER>( + CRYPTO_BUFFER_new(reinterpret_cast<const uint8_t *>(data.data()), + data.size(), nullptr)), {}, &errors); } -class CheckCRLTest : public ::testing::TestWithParam<const char*> {}; +class CheckCRLTest : public ::testing::TestWithParam<const char *> {}; // Test prefix naming scheme: // good = valid CRL, cert affirmatively not revoked @@ -40,7 +41,7 @@ class CheckCRLTest : public ::testing::TestWithParam<const char*> {}; // bad = valid CRL, but cert status is unknown (cases like unhandled features, // mismatching issuer or signature, etc) // invalid = corrupt or violates some spec requirement -constexpr char const* kTestParams[] = { +constexpr char const *kTestParams[] = { "good.pem", "good_issuer_name_normalization.pem", "good_issuer_no_keyusage.pem", @@ -111,7 +112,7 @@ constexpr char const* kTestParams[] = { struct PrintTestName { std::string operator()( - const testing::TestParamInfo<const char*>& info) const { + const testing::TestParamInfo<const char *> &info) const { std::string_view name(info.param); // Strip ".pem" from the end as GTest names cannot contain period. name.remove_suffix(4); @@ -119,9 +120,7 @@ struct PrintTestName { } }; -INSTANTIATE_TEST_SUITE_P(All, - CheckCRLTest, - ::testing::ValuesIn(kTestParams), +INSTANTIATE_TEST_SUITE_P(All, CheckCRLTest, ::testing::ValuesIn(kTestParams), PrintTestName()); TEST_P(CheckCRLTest, FromFile) { @@ -162,7 +161,7 @@ TEST_P(CheckCRLTest, FromFile) { // TODO(https://crbug.com/749276): This seems slightly hacky. Maybe the // distribution point to use should be specified separately in the test PEM? ParsedDistributionPoint fake_cert_dp; - ParsedDistributionPoint* cert_dp = &fake_cert_dp; + ParsedDistributionPoint *cert_dp = &fake_cert_dp; std::vector<ParsedDistributionPoint> distribution_points; ParsedExtension crl_dp_extension; if (cert->GetExtension(der::Input(kCrlDistributionPointsOid), @@ -206,4 +205,4 @@ TEST_P(CheckCRLTest, FromFile) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/encode_values.cc b/src/pki/encode_values.cc index ac20039..0054fa2 100644 --- a/src/pki/encode_values.cc +++ b/src/pki/encode_values.cc @@ -6,15 +6,16 @@ #include "parse_values.h" -#include <openssl/time.h> +#include <openssl/posix_time.h> namespace bssl::der { namespace { bool WriteFourDigit(uint16_t value, uint8_t out[4]) { - if (value >= 10000) + if (value >= 10000) { return false; + } out[3] = '0' + (value % 10); value /= 10; out[2] = '0' + (value % 10); @@ -26,8 +27,9 @@ bool WriteFourDigit(uint16_t value, uint8_t out[4]) { } bool WriteTwoDigit(uint8_t value, uint8_t out[2]) { - if (value >= 100) + if (value >= 100) { return false; + } out[0] = '0' + (value / 10); out[1] = '0' + (value % 10); return true; @@ -36,7 +38,7 @@ bool WriteTwoDigit(uint8_t value, uint8_t out[2]) { } // namespace bool EncodePosixTimeAsGeneralizedTime(int64_t posix_time, - GeneralizedTime* generalized_time) { + GeneralizedTime *generalized_time) { struct tm tmp_tm; if (!OPENSSL_posix_to_tm(posix_time, &tmp_tm)) { return false; @@ -51,8 +53,8 @@ bool EncodePosixTimeAsGeneralizedTime(int64_t posix_time, return true; } -bool GeneralizedTimeToPosixTime(const der::GeneralizedTime& generalized, - int64_t* result) { +bool GeneralizedTimeToPosixTime(const der::GeneralizedTime &generalized, + int64_t *result) { struct tm tmp_tm; tmp_tm.tm_year = generalized.year - 1900; tmp_tm.tm_mon = generalized.month - 1; @@ -68,7 +70,7 @@ bool GeneralizedTimeToPosixTime(const der::GeneralizedTime& generalized, return OPENSSL_tm_to_posix(&tmp_tm, result); } -bool EncodeGeneralizedTime(const GeneralizedTime& time, +bool EncodeGeneralizedTime(const GeneralizedTime &time, uint8_t out[kGeneralizedTimeLength]) { if (!WriteFourDigit(time.year, out) || !WriteTwoDigit(time.month, out + 4) || !WriteTwoDigit(time.day, out + 6) || @@ -81,13 +83,15 @@ bool EncodeGeneralizedTime(const GeneralizedTime& time, return true; } -bool EncodeUTCTime(const GeneralizedTime& time, uint8_t out[kUTCTimeLength]) { - if (!time.InUTCTimeRange()) +bool EncodeUTCTime(const GeneralizedTime &time, uint8_t out[kUTCTimeLength]) { + if (!time.InUTCTimeRange()) { return false; + } uint16_t year = time.year - 1900; - if (year >= 100) + if (year >= 100) { year -= 100; + } if (!WriteTwoDigit(year, out) || !WriteTwoDigit(time.month, out + 2) || !WriteTwoDigit(time.day, out + 4) || diff --git a/src/pki/encode_values.h b/src/pki/encode_values.h index 79216cc..030c864 100644 --- a/src/pki/encode_values.h +++ b/src/pki/encode_values.h @@ -5,11 +5,10 @@ #ifndef BSSL_DER_ENCODE_VALUES_H_ #define BSSL_DER_ENCODE_VALUES_H_ -#include "fillins/openssl_util.h" #include <stddef.h> #include <stdint.h> - +#include <openssl/base.h> namespace bssl::der { @@ -19,29 +18,27 @@ struct GeneralizedTime; // comparing against other GeneralizedTime objects, returning true on success or // false if |posix_time| is outside of the range from year 0000 to 9999. OPENSSL_EXPORT bool EncodePosixTimeAsGeneralizedTime( - int64_t posix_time, - GeneralizedTime* generalized_time); + int64_t posix_time, GeneralizedTime *generalized_time); // Converts a GeneralizedTime struct to a posix time in seconds in |result|, // returning true on success or false if |generalized| was invalid or cannot be // represented as a posix time in the range from the year 0000 to 9999. OPENSSL_EXPORT bool GeneralizedTimeToPosixTime( - const der::GeneralizedTime& generalized, - int64_t* result); + const der::GeneralizedTime &generalized, int64_t *result); static const size_t kGeneralizedTimeLength = 15; // Encodes |time| to |out| as a DER GeneralizedTime value. Returns true on // success and false on error. -OPENSSL_EXPORT bool EncodeGeneralizedTime(const GeneralizedTime& time, - uint8_t out[kGeneralizedTimeLength]); +OPENSSL_EXPORT bool EncodeGeneralizedTime(const GeneralizedTime &time, + uint8_t out[kGeneralizedTimeLength]); static const size_t kUTCTimeLength = 13; // Encodes |time| to |out| as a DER UTCTime value. Returns true on success and // false on error. -OPENSSL_EXPORT bool EncodeUTCTime(const GeneralizedTime& time, - uint8_t out[kUTCTimeLength]); +OPENSSL_EXPORT bool EncodeUTCTime(const GeneralizedTime &time, + uint8_t out[kUTCTimeLength]); } // namespace bssl::der diff --git a/src/pki/encode_values_unittest.cc b/src/pki/encode_values_unittest.cc index ab42418..e0a7820 100644 --- a/src/pki/encode_values_unittest.cc +++ b/src/pki/encode_values_unittest.cc @@ -6,8 +6,8 @@ #include <string_view> -#include "parse_values.h" #include <gtest/gtest.h> +#include "parse_values.h" namespace bssl::der::test { @@ -15,7 +15,7 @@ namespace { template <size_t N> std::string_view ToStringView(const uint8_t (&data)[N]) { - return std::string_view(reinterpret_cast<const char*>(data), N); + return std::string_view(reinterpret_cast<const char *>(data), N); } } // namespace diff --git a/src/pki/extended_key_usage.cc b/src/pki/extended_key_usage.cc index 34345f1..1aeeb6a 100644 --- a/src/pki/extended_key_usage.cc +++ b/src/pki/extended_key_usage.cc @@ -4,37 +4,42 @@ #include "extended_key_usage.h" +#include <openssl/bytestring.h> + #include "input.h" #include "parser.h" -#include "tag.h" namespace bssl { -bool ParseEKUExtension(const der::Input& extension_value, - std::vector<der::Input>* eku_oids) { +bool ParseEKUExtension(der::Input extension_value, + std::vector<der::Input> *eku_oids) { der::Parser extension_parser(extension_value); der::Parser sequence_parser; - if (!extension_parser.ReadSequence(&sequence_parser)) + if (!extension_parser.ReadSequence(&sequence_parser)) { return false; + } // Section 4.2.1.12 of RFC 5280 defines ExtKeyUsageSyntax as: // ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId // // Therefore, the sequence must contain at least one KeyPurposeId. - if (!sequence_parser.HasMore()) + if (!sequence_parser.HasMore()) { return false; + } while (sequence_parser.HasMore()) { der::Input eku_oid; - if (!sequence_parser.ReadTag(der::kOid, &eku_oid)) + if (!sequence_parser.ReadTag(CBS_ASN1_OBJECT, &eku_oid)) { // The SEQUENCE OF must contain only KeyPurposeIds (OIDs). return false; + } eku_oids->push_back(eku_oid); } - if (extension_parser.HasMore()) + if (extension_parser.HasMore()) { // The extension value must follow ExtKeyUsageSyntax - there is no way that // it could be extended to allow for something after the SEQUENCE OF. return false; + } return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/extended_key_usage.h b/src/pki/extended_key_usage.h index 89b5030..c78f157 100644 --- a/src/pki/extended_key_usage.h +++ b/src/pki/extended_key_usage.h @@ -5,9 +5,9 @@ #ifndef BSSL_PKI_EXTENDED_KEY_USAGE_H_ #define BSSL_PKI_EXTENDED_KEY_USAGE_H_ -#include "fillins/openssl_util.h" #include <vector> +#include <openssl/base.h> #include "input.h" @@ -68,12 +68,6 @@ inline constexpr uint8_t kTimeStamping[] = {0x2b, 0x06, 0x01, 0x05, inline constexpr uint8_t kOCSPSigning[] = {0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x09}; -// Netscape Server Gated Crypto (2.16.840.1.113730.4.1) is a deprecated OID -// which in some situations is considered equivalent to the serverAuth key -// purpose. -inline constexpr uint8_t kNetscapeServerGatedCrypto[] = { - 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01}; - // Parses |extension_value|, which contains the extnValue field of an X.509v3 // Extended Key Usage extension, and populates |eku_oids| with the list of // DER-encoded OID values (that is, without tag and length). Returns false if @@ -81,9 +75,9 @@ inline constexpr uint8_t kNetscapeServerGatedCrypto[] = { // // Note: The returned OIDs are only as valid as long as the data pointed to by // |extension_value| is valid. -OPENSSL_EXPORT bool ParseEKUExtension(const der::Input& extension_value, - std::vector<der::Input>* eku_oids); +OPENSSL_EXPORT bool ParseEKUExtension(der::Input extension_value, + std::vector<der::Input> *eku_oids); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_EXTENDED_KEY_USAGE_H_ diff --git a/src/pki/extended_key_usage_unittest.cc b/src/pki/extended_key_usage_unittest.cc index 2f190cf..b5229a1 100644 --- a/src/pki/extended_key_usage_unittest.cc +++ b/src/pki/extended_key_usage_unittest.cc @@ -4,19 +4,20 @@ #include <algorithm> +#include <gtest/gtest.h> #include "extended_key_usage.h" #include "input.h" -#include <gtest/gtest.h> namespace bssl { namespace { // Helper method to check if an EKU is present in a std::vector of EKUs. -bool HasEKU(const std::vector<der::Input>& list, const der::Input& eku) { - for (const auto& oid : list) { - if (oid == eku) +bool HasEKU(const std::vector<der::Input> &list, der::Input eku) { + for (const auto &oid : list) { + if (oid == eku) { return true; + } } return false; } @@ -60,7 +61,7 @@ TEST(ExtendedKeyUsageTest, RepeatedOid) { std::vector<der::Input> ekus; EXPECT_TRUE(ParseEKUExtension(extension, &ekus)); EXPECT_EQ(2u, ekus.size()); - for (const auto& eku : ekus) { + for (const auto &eku : ekus) { EXPECT_EQ(der::Input(kServerAuth), eku); } } @@ -163,4 +164,4 @@ TEST(ExtendedKeyUsageTest, EmptyExtension) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/fillins/file_util.cc b/src/pki/fillins/file_util.cc deleted file mode 100644 index e2d28fd..0000000 --- a/src/pki/fillins/file_util.cc +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "file_util.h" - -#include <fstream> -#include <iostream> -#include <streambuf> -#include <string> - -namespace bssl { - -namespace fillins { - -bool ReadFileToString(const FilePath &path, std::string *out) { - std::ifstream file(path.value(), std::ios::binary); - file.unsetf(std::ios::skipws); - - file.seekg(0, std::ios::end); - if (file.tellg() <= 0) { - return false; - } - out->reserve(file.tellg()); - file.seekg(0, std::ios::beg); - - out->assign(std::istreambuf_iterator<char>(file), - std::istreambuf_iterator<char>()); - - return true; -} - -} // namespace fillins - -} // namespace bssl diff --git a/src/pki/fillins/file_util.h b/src/pki/fillins/file_util.h deleted file mode 100644 index 23e9b1a..0000000 --- a/src/pki/fillins/file_util.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_FILLINS_FILE_UTIL_H -#define BSSL_FILLINS_FILE_UTIL_H - -#include <openssl/base.h> - -#include "path_service.h" - -#include <string> - -namespace bssl { - -namespace fillins { - -bool ReadFileToString(const FilePath &path, std::string *out); - -} // namespace fillins - -} // namespace bssl - -#endif // BSSL_FILLINS_FILE_UTIL_H diff --git a/src/pki/fillins/fillins_base64.cc b/src/pki/fillins/fillins_base64.cc deleted file mode 100644 index a692cb0..0000000 --- a/src/pki/fillins/fillins_base64.cc +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include <openssl/base64.h> - -#include "fillins_base64.h" - -#include <vector> - -namespace bssl { - -namespace fillins { - -bool Base64Encode(const std::string_view &input, std::string *output) { - size_t len; - if (!EVP_EncodedLength(&len, input.size())) { - return false; - } - std::vector<char> encoded(len); - len = EVP_EncodeBlock(reinterpret_cast<uint8_t *>(encoded.data()), - reinterpret_cast<const uint8_t *>(input.data()), - input.size()); - if (!len) { - return false; - } - output->assign(encoded.data(), len); - return true; -} - -bool Base64Decode(const std::string_view &input, std::string *output) { - size_t len; - if (!EVP_DecodedLength(&len, input.size())) { - return false; - } - std::vector<char> decoded(len); - if (!EVP_DecodeBase64(reinterpret_cast<uint8_t *>(decoded.data()), &len, len, - reinterpret_cast<const uint8_t *>(input.data()), - input.size())) { - return false; - } - output->assign(decoded.data(), len); - return true; -} - -} // namespace fillins - -} // namespace bssl diff --git a/src/pki/fillins/fillins_base64.h b/src/pki/fillins/fillins_base64.h deleted file mode 100644 index 440138f..0000000 --- a/src/pki/fillins/fillins_base64.h +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_FILLINS_BASE64_H -#define BSSL_FILLINS_BASE64_H - -#include <openssl/base.h> - -#include <string> -#include <string_view> - -namespace bssl { - -namespace fillins { - -OPENSSL_EXPORT bool Base64Encode(const std::string_view &input, - std::string *output); - -OPENSSL_EXPORT bool Base64Decode(const std::string_view &input, - std::string *output); - -} // namespace fillins - -} // namespace bssl - -#endif // BSSL_FILLINS_BASE64_H diff --git a/src/pki/fillins/fillins_string_util.cc b/src/pki/fillins/fillins_string_util.cc deleted file mode 100644 index cdafcc5..0000000 --- a/src/pki/fillins/fillins_string_util.cc +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "../string_util.h" -#include <string> -#include <string_view> -#include "fillins_string_util.h" - - -namespace bssl { - -namespace fillins { - - -// TODO(bbe): get rid of this -std::string HexEncode(const void *bytes, size_t size) { - return bssl::string_util::HexEncode((const uint8_t *)bytes, size); -} - -static bool IsUnicodeWhitespace(char c) { - return c == 9 || c == 10 || c == 11 || c == 12 || c == 13 || c == ' '; -} - -std::string CollapseWhitespaceASCII(std::string_view text, - bool trim_sequences_with_line_breaks) { - std::string result; - result.resize(text.size()); - - // Set flags to pretend we're already in a trimmed whitespace sequence, so we - // will trim any leading whitespace. - bool in_whitespace = true; - bool already_trimmed = true; - - int chars_written = 0; - for (auto i = text.begin(); i != text.end(); ++i) { - if (IsUnicodeWhitespace(*i)) { - if (!in_whitespace) { - // Reduce all whitespace sequences to a single space. - in_whitespace = true; - result[chars_written++] = L' '; - } - if (trim_sequences_with_line_breaks && !already_trimmed && - ((*i == '\n') || (*i == '\r'))) { - // Whitespace sequences containing CR or LF are eliminated entirely. - already_trimmed = true; - --chars_written; - } - } else { - // Non-whitespace chracters are copied straight across. - in_whitespace = false; - already_trimmed = false; - result[chars_written++] = *i; - } - } - - if (in_whitespace && !already_trimmed) { - // Any trailing whitespace is eliminated. - --chars_written; - } - - result.resize(chars_written); - return result; -} - -// TODO(bbe): get rid of this (used to be strcasecmp in google3, which -// causes windows pain because msvc and strings.h) -bool EqualsCaseInsensitiveASCII(std::string_view a, std::string_view b) { - return bssl::string_util::IsEqualNoCase(a, b); -} - -bool IsAsciiAlpha(char c) { - return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'); -} - -bool IsAsciiDigit(char c) { return c >= '0' && c <= '9'; } - -void ReplaceSubstringsAfterOffset(std::string *s, size_t offset, - std::string_view find, - std::string_view replace) { - std::string_view prefix(s->data(), offset); - std::string suffix = - bssl::string_util::FindAndReplace(s->substr(offset), find, replace); - *s = std::string(prefix) + suffix; -}; - -} // namespace fillins - -} // namespace bssl diff --git a/src/pki/fillins/fillins_string_util.h b/src/pki/fillins/fillins_string_util.h deleted file mode 100644 index bf1f2e0..0000000 --- a/src/pki/fillins/fillins_string_util.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_FILLINS_STRING_UTIL_H -#define BSSL_FILLINS_STRING_UTIL_H - -#include <openssl/base.h> - -#include <string.h> -#include <cassert> -#include <string> -#include <string_view> - -namespace bssl { - -namespace fillins { - -OPENSSL_EXPORT std::string HexEncode(const void *bytes, size_t size); - -OPENSSL_EXPORT std::string CollapseWhitespaceASCII( - std::string_view text, bool trim_sequences_with_line_breaks); - -OPENSSL_EXPORT bool EqualsCaseInsensitiveASCII(std::string_view a, - std::string_view b); - -OPENSSL_EXPORT bool IsAsciiAlpha(char c); - -OPENSSL_EXPORT bool IsAsciiDigit(char c); - -OPENSSL_EXPORT void ReplaceSubstringsAfterOffset(std::string *s, size_t offset, - std::string_view find, - std::string_view replace); - -OPENSSL_EXPORT std::string HexDecode(std::string_view hex); - -} // namespace fillins - -} // namespace bssl - -#endif // BSSL_FILLINS_STRING_UTIL_H diff --git a/src/pki/fillins/log.h b/src/pki/fillins/log.h deleted file mode 100644 index f0bbe61..0000000 --- a/src/pki/fillins/log.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_FILLINS_LOG_H_ -#define BSSL_FILLINS_LOG_H_ - -#include <iostream> - -// This header defines the logging macros, inherited from chrome. - -// This file is not used in chrome, so check here to make sure we are -// only compiling inside boringssl. -#if !defined(_BORINGSSL_LIBPKI_) -#error "_BORINGSSL_LIBPKI_ is not defined when compiling BoringSSL libpki" -#endif - -#if defined(_BORINGSSL_LIBPKI_VERBOSE_) -#define DVLOG(l) std::cerr -#define LOG(l) std::cerr -#else -#define DVLOG(l) 0 && std::cerr -#define LOG(l) 0 && std::cerr -#endif // _BORINGSSL_LIBPKI_VERBOSE_ - -#endif // BSSL_FILLINS_LOG_H_ diff --git a/src/pki/fillins/net_errors.h b/src/pki/fillins/net_errors.h deleted file mode 100644 index 2955888..0000000 --- a/src/pki/fillins/net_errors.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_FILLINS_NET_ERRORS_H -#define BSSL_FILLINS_NET_ERRORS_H - -#include <openssl/base.h> - -namespace bssl { - -enum Error { - OK = 0, -}; - -} // namespace bssl - -#endif // BSSL_FILLINS_NET_ERRORS_H diff --git a/src/pki/fillins/openssl_util.cc b/src/pki/fillins/openssl_util.cc deleted file mode 100644 index 6c58169..0000000 --- a/src/pki/fillins/openssl_util.cc +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "openssl_util.h" - -#include <openssl/err.h> - -namespace bssl { - -namespace fillins { - -OpenSSLErrStackTracer::OpenSSLErrStackTracer() {} - -OpenSSLErrStackTracer::~OpenSSLErrStackTracer() { ERR_clear_error(); } - -} // namespace fillins - -} // namespace bssl diff --git a/src/pki/fillins/openssl_util.h b/src/pki/fillins/openssl_util.h deleted file mode 100644 index f193a51..0000000 --- a/src/pki/fillins/openssl_util.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_FILLINS_OPENSSL_UTIL_H -#define BSSL_FILLINS_OPENSSL_UTIL_H - -#include <openssl/base.h> - -#include <string> - -namespace bssl { - -namespace fillins { - -// Place an instance of this class on the call stack to automatically clear -// the OpenSSL error stack on function exit. -class OPENSSL_EXPORT OpenSSLErrStackTracer { - public: - OpenSSLErrStackTracer(); - ~OpenSSLErrStackTracer(); -}; - -} // namespace fillins - -} // namespace bssl - -#endif // BSSL_FILLINS_OPENSSL_UTIL_H diff --git a/src/pki/fillins/path_service.cc b/src/pki/fillins/path_service.cc deleted file mode 100644 index a915cb1..0000000 --- a/src/pki/fillins/path_service.cc +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "path_service.h" - -#include <stdlib.h> -#include <iostream> - -namespace bssl { - -namespace fillins { - -FilePath::FilePath() {} - -FilePath::FilePath(const std::string &path) : path_(path) {} - -const std::string &FilePath::value() const { return path_; } - -FilePath FilePath::AppendASCII(const std::string &ascii_path_element) const { - // Append a path element to a path. Use the \ separator if this appears to - // be a Windows path, otherwise the Unix one. - if (path_.find(":\\") != std::string::npos) { - return FilePath(path_ + "\\" + ascii_path_element); - } - return FilePath(path_ + "/" + ascii_path_element); -} - -// static -void PathService::Get(PathKey key, FilePath *out) { - // We expect our test data to live in "pki" underneath a - // test root directory, or in the current directry. - char *root_from_env = getenv("BORINGSSL_TEST_DATA_ROOT"); - std::string root = root_from_env ? root_from_env : "."; - *out = FilePath(root + "/pki"); -} - -} // namespace fillins - -} // namespace bssl diff --git a/src/pki/fillins/path_service.h b/src/pki/fillins/path_service.h deleted file mode 100644 index ccc5014..0000000 --- a/src/pki/fillins/path_service.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_FILLINS_PATH_SERVICE_H -#define BSSL_FILLINS_PATH_SERVICE_H - -#include <openssl/base.h> - -#include <string> - -namespace bssl { - -namespace fillins { - -class FilePath { - public: - FilePath(); - FilePath(const std::string &path); - - const std::string &value() const; - - FilePath AppendASCII(const std::string &ascii_path_element) const; - - private: - std::string path_; -}; - -enum PathKey { - BSSL_TEST_DATA_ROOT = 0, -}; - -class PathService { - public: - static void Get(PathKey key, FilePath *out); -}; - -} // namespace fillins - -} // namespace bssl - -#endif // BSSL_FILLINS_PATH_SERVICE_H diff --git a/src/pki/general_names.cc b/src/pki/general_names.cc index 2ffb24b..c446287 100644 --- a/src/pki/general_names.cc +++ b/src/pki/general_names.cc @@ -5,17 +5,17 @@ #include "general_names.h" #include <openssl/base.h> +#include <openssl/bytestring.h> #include <climits> #include <cstring> #include "cert_error_params.h" #include "cert_errors.h" -#include "ip_util.h" -#include "string_util.h" #include "input.h" +#include "ip_util.h" #include "parser.h" -#include "tag.h" +#include "string_util.h" namespace bssl { @@ -44,16 +44,15 @@ GeneralNames::GeneralNames() = default; GeneralNames::~GeneralNames() = default; // static -std::unique_ptr<GeneralNames> GeneralNames::Create( - const der::Input& general_names_tlv, - CertErrors* errors) { +std::unique_ptr<GeneralNames> GeneralNames::Create(der::Input general_names_tlv, + CertErrors *errors) { BSSL_CHECK(errors); // RFC 5280 section 4.2.1.6: // GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName der::Parser parser(general_names_tlv); der::Input sequence_value; - if (!parser.ReadTag(der::kSequence, &sequence_value)) { + if (!parser.ReadTag(CBS_ASN1_SEQUENCE, &sequence_value)) { errors->AddError(kFailedReadingGeneralNames); return nullptr; } @@ -67,8 +66,7 @@ std::unique_ptr<GeneralNames> GeneralNames::Create( // static std::unique_ptr<GeneralNames> GeneralNames::CreateFromValue( - const der::Input& general_names_value, - CertErrors* errors) { + der::Input general_names_value, CertErrors *errors) { BSSL_CHECK(errors); auto general_names = std::make_unique<GeneralNames>(); @@ -98,44 +96,44 @@ std::unique_ptr<GeneralNames> GeneralNames::CreateFromValue( } [[nodiscard]] bool ParseGeneralName( - const der::Input& input, + der::Input input, GeneralNames::ParseGeneralNameIPAddressType ip_address_type, - GeneralNames* subtrees, - CertErrors* errors) { + GeneralNames *subtrees, CertErrors *errors) { BSSL_CHECK(errors); der::Parser parser(input); - der::Tag tag; + CBS_ASN1_TAG tag; der::Input value; - if (!parser.ReadTagAndValue(&tag, &value)) + if (!parser.ReadTagAndValue(&tag, &value)) { return false; + } GeneralNameTypes name_type = GENERAL_NAME_NONE; - if (tag == der::ContextSpecificConstructed(0)) { + if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0)) { // otherName [0] OtherName, name_type = GENERAL_NAME_OTHER_NAME; subtrees->other_names.push_back(value); - } else if (tag == der::ContextSpecificPrimitive(1)) { + } else if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | 1)) { // rfc822Name [1] IA5String, name_type = GENERAL_NAME_RFC822_NAME; - const std::string_view s = value.AsStringView(); + const std::string_view s = BytesAsStringView(value); if (!bssl::string_util::IsAscii(s)) { errors->AddError(kRFC822NameNotAscii); return false; } subtrees->rfc822_names.push_back(s); - } else if (tag == der::ContextSpecificPrimitive(2)) { + } else if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | 2)) { // dNSName [2] IA5String, name_type = GENERAL_NAME_DNS_NAME; - const std::string_view s = value.AsStringView(); + const std::string_view s = BytesAsStringView(value); if (!bssl::string_util::IsAscii(s)) { errors->AddError(kDnsNameNotAscii); return false; } subtrees->dns_names.push_back(s); - } else if (tag == der::ContextSpecificConstructed(3)) { + } else if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 3)) { // x400Address [3] ORAddress, name_type = GENERAL_NAME_X400_ADDRESS; subtrees->x400_addresses.push_back(value); - } else if (tag == der::ContextSpecificConstructed(4)) { + } else if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 4)) { // directoryName [4] Name, name_type = GENERAL_NAME_DIRECTORY_NAME; // Name is a CHOICE { rdnSequence RDNSequence }, therefore the SEQUENCE @@ -143,23 +141,25 @@ std::unique_ptr<GeneralNames> GeneralNames::CreateFromValue( // only the value portion. der::Parser name_parser(value); der::Input name_value; - if (!name_parser.ReadTag(der::kSequence, &name_value) || parser.HasMore()) + if (!name_parser.ReadTag(CBS_ASN1_SEQUENCE, &name_value) || + parser.HasMore()) { return false; + } subtrees->directory_names.push_back(name_value); - } else if (tag == der::ContextSpecificConstructed(5)) { + } else if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 5)) { // ediPartyName [5] EDIPartyName, name_type = GENERAL_NAME_EDI_PARTY_NAME; subtrees->edi_party_names.push_back(value); - } else if (tag == der::ContextSpecificPrimitive(6)) { + } else if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | 6)) { // uniformResourceIdentifier [6] IA5String, name_type = GENERAL_NAME_UNIFORM_RESOURCE_IDENTIFIER; - const std::string_view s = value.AsStringView(); + const std::string_view s = BytesAsStringView(value); if (!bssl::string_util::IsAscii(s)) { errors->AddError(kURINotAscii); return false; } subtrees->uniform_resource_identifiers.push_back(s); - } else if (tag == der::ContextSpecificPrimitive(7)) { + } else if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | 7)) { // iPAddress [7] OCTET STRING, name_type = GENERAL_NAME_IP_ADDRESS; if (ip_address_type == GeneralNames::IP_ADDRESS_ONLY) { @@ -171,8 +171,8 @@ std::unique_ptr<GeneralNames> GeneralNames::CreateFromValue( // version 4, as specified in [RFC791], the octet string MUST contain // exactly four octets. For IP version 6, as specified in [RFC2460], // the octet string MUST contain exactly sixteen octets. - if ((value.Length() != kIPv4AddressSize && - value.Length() != kIPv6AddressSize)) { + if ((value.size() != kIPv4AddressSize && + value.size() != kIPv6AddressSize)) { errors->AddError(kFailedParsingIp); return false; } @@ -189,21 +189,20 @@ std::unique_ptr<GeneralNames> GeneralNames::CreateFromValue( // constraint for "class C" subnet 192.0.2.0 is represented as the // octets C0 00 02 00 FF FF FF 00, representing the CIDR notation // 192.0.2.0/24 (mask 255.255.255.0). - if (value.Length() != kIPv4AddressSize * 2 && - value.Length() != kIPv6AddressSize * 2) { + if (value.size() != kIPv4AddressSize * 2 && + value.size() != kIPv6AddressSize * 2) { errors->AddError(kFailedParsingIp); return false; } - der::Input addr(value.UnsafeData(), value.Length() / 2); - der::Input mask(value.UnsafeData() + value.Length() / 2, - value.Length() / 2); + der::Input addr = value.first(value.size() / 2); + der::Input mask = value.subspan(value.size() / 2); if (!IsValidNetmask(mask)) { errors->AddError(kFailedParsingIp); return false; } subtrees->ip_address_ranges.emplace_back(addr, mask); } - } else if (tag == der::ContextSpecificPrimitive(8)) { + } else if (tag == (CBS_ASN1_CONTEXT_SPECIFIC | 8)) { // registeredID [8] OBJECT IDENTIFIER } name_type = GENERAL_NAME_REGISTERED_ID; subtrees->registered_ids.push_back(value); @@ -217,4 +216,4 @@ std::unique_ptr<GeneralNames> GeneralNames::CreateFromValue( return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/general_names.h b/src/pki/general_names.h index 38643d1..838a2d7 100644 --- a/src/pki/general_names.h +++ b/src/pki/general_names.h @@ -5,11 +5,12 @@ #ifndef BSSL_PKI_GENERAL_NAMES_H_ #define BSSL_PKI_GENERAL_NAMES_H_ -#include "fillins/openssl_util.h" #include <memory> #include <string_view> #include <vector> +#include <openssl/base.h> + #include "cert_error_id.h" @@ -62,15 +63,13 @@ struct OPENSSL_EXPORT GeneralNames { // |general_names_tlv|, so is only valid as long as |general_names_tlv| is. // Returns nullptr on failure, and may fill |errors| with // additional information. |errors| must be non-null. - static std::unique_ptr<GeneralNames> Create( - const der::Input& general_names_tlv, - CertErrors* errors); + static std::unique_ptr<GeneralNames> Create(der::Input general_names_tlv, + CertErrors *errors); // As above, but takes the GeneralNames sequence value, without the tag and // length. static std::unique_ptr<GeneralNames> CreateFromValue( - const der::Input& general_names_value, - CertErrors* errors); + der::Input general_names_value, CertErrors *errors); // DER-encoded OtherName values. std::vector<der::Input> other_names; @@ -123,11 +122,10 @@ struct OPENSSL_EXPORT GeneralNames { // |errors| must be non-null. // TODO(mattm): should this be a method on GeneralNames? [[nodiscard]] OPENSSL_EXPORT bool ParseGeneralName( - const der::Input& input, + der::Input input, GeneralNames::ParseGeneralNameIPAddressType ip_address_type, - GeneralNames* subtrees, - CertErrors* errors); + GeneralNames *subtrees, CertErrors *errors); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_GENERAL_NAMES_H_ diff --git a/src/pki/general_names_unittest.cc b/src/pki/general_names_unittest.cc index a3e5368..be508a2 100644 --- a/src/pki/general_names_unittest.cc +++ b/src/pki/general_names_unittest.cc @@ -4,15 +4,15 @@ #include "general_names.h" -#include "test_helpers.h" #include <gtest/gtest.h> +#include "test_helpers.h" namespace bssl { namespace { -::testing::AssertionResult LoadTestData(const char* token, - const std::string& basename, - std::string* result) { +::testing::AssertionResult LoadTestData(const char *token, + const std::string &basename, + std::string *result) { std::string path = "testdata/name_constraints_unittest/" + basename; const PemBlockMapping mappings[] = { @@ -23,13 +23,11 @@ namespace { } ::testing::AssertionResult LoadTestSubjectAltNameData( - const std::string& basename, - std::string* result) { + const std::string &basename, std::string *result) { return LoadTestData("SUBJECT ALTERNATIVE NAME", basename, result); } -void ReplaceFirstSubstring(std::string* str, - std::string_view substr, +void ReplaceFirstSubstring(std::string *str, std::string_view substr, std::string_view replacement) { size_t idx = str->find(substr); if (idx != std::string::npos) { @@ -225,4 +223,4 @@ TEST(GeneralNames, RegisteredIDs) { EXPECT_EQ(der::Input(expected_der), general_names->registered_ids[0]); } -} // namespace net +} // namespace bssl diff --git a/src/pki/import_spec.json b/src/pki/import_spec.json deleted file mode 100644 index 9420713..0000000 --- a/src/pki/import_spec.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "replacements": [ - {"match": "^#include \"base/supports_user_data.h\"", - "replace": ""}, - {"match": ": public base::SupportsUserData", - "replace": ""}, - {"match": "~Result\\(\\) override;", - "replace": "~Result();"}, - {"match": "base::SupportsUserData", - "replace": "void"}, - {"match": "^#include \"net/dns/dns_util.h\"", - "replace": ""}, - {"match": "^#include \"base/gtest_prod_util.h\"", - "replace": ""}, - {"match": "^#include \"base/pickle.h\"", - "replace": ""}, - {"match": "^#include \"base/check.h\"", - "replace": "#include \"fillins/check.h\""}, - {"match": "^#include \"base/notreached.h\"", - "replace": ""}, - {"match": "^#include \"base/check_op.h\"", - "replace": "#include \"fillins/check.h\""}, - {"match": "^#include \"net/base/hash_value.h\"", - "replace": "#include \"fillins/hash_value.h\""}, - {"match": "^#include \"net/cert/x509_util.h\"", - "replace": "#include \"fillins/x509_util.h\""}, - {"match": "^#include \"url/gurl.h\"", - "replace": "#include \"webutil/url/url.h\""}, - {"match": "^#include \"build/build_config.h\"", - "replace": ""}, - {"match": "^#include \"base/numerics/clamped_math.h\"", - "replace": "#include \"fillins/clamped_math.h\""}, - {"match": "^#include \"base/numerics/safe_conversions.h\"", - "replace": ""}, - {"match": "^#include \"net/base/net_export.h\"", - "replace": ""}, - {"match": "^#include \"base/strings/string_util.h\"", - "replace": "#include \"fillins/fillins_string_util.h\""}, - {"match": "^#include \"base/base_paths.h\"", - "replace": "#include \"fillins/path_service.h\"", - "using": ["bssl::fillins::PathService"]}, - {"match": "base::PathService", - "replace": "bssl::fillins::PathService"}, - {"match": "base::ClampAdd", - "replace": "bssl::fillins::ClampAdd"}, - {"match": "base::ClampMul", - "replace": "bssl::fillins::ClampAdd"}, - {"match": "^#include \"base/files/file_util.h\"", - "replace": "#include \"fillins/file_util.h\""}, - {"match": "^#include \"base/path_service.h\"", - "replace": ""}, - {"match": "^#include \"crypto/openssl_util.h\"", - "replace": "#include \"fillins/openssl_util.h\""}, - {"match": "\"net/data/", - "replace": "\"testdata/"}, - {"match": "\"net/third_party/nist-pkits", - "replace": "\"testdata/nist-pkits"}, - {"match": "^#include \"net/base/net_errors.h\"", - "replace": "#include \"fillins/log.h\"\n#include \"fillins/net_errors.h\"\n"}, - {"match": "^#include \"net/test/test_certificate_data.h\"", - "replace": "#include \"testdata/test_certificate_data.h\""}, - {"match": "^#include \"net/third_party/nist-pkits/pkits_testcases-inl.h\"", - "replace": "#include \"testdata/nist-pkits/pkits_testcases-inl.h\""}, - {"match": "^#include \"base/sys_byteorder.h\"", - "replace": "#include \"fillins/inet.h\""}, - {"match": "^#include \"base/third_party/icu/icu_utf.h\"", - "replace": "#include \"fillins/utf_string_conversions.h\""}, - {"match": "^#include \"base/strings/utf_string_conversions.h\"", - "replace": "#include \"fillins/utf_string_conversions.h\""}, - {"match": "^#include \"base/strings/utf_string_conversion_utils.h\"", - "replace": ""}, - {"match": "^#include \"base/memory/ref_counted.h\"", - "replace": "#include <memory>"}, - {"match": "^#include \"base/base64.h\"", - "replace": "#include \"fillins/fillins_base64.h\""}, - {"match": "^#include \"base/strings/stringprintf.h\"", - "replace": ""}, - {"match": "^#include \"third_party/boringssl/src/include/openssl/(.*).h\"", - "replace": "#include <openssl/$1.h>"}, - {"match": "^#include \"net/cert/pki/", - "replace": "#include \""}, - {"match": "^#include \"net/cert/", - "replace": "#include \""}, - {"match": "^#include \"net/der/", - "replace": "#include \""}, - {"match": "^#include \"net/", - "replace": "#include \""}, - {"match": "^#include \"net_buildflags.h\"", - "replace": ""}, - {"match": "^#include \"base/time/time.h\"", - "replace": ""}, - {"match": "^#include \"base/strings/string_piece.h\"", - "replace": "#include <string_view>\n"}, - {"match": "^#include \"testing/gtest/include/gtest/gtest.h\"", - "replace": "#include <gtest/gtest.h>"}, - {"match": "^#include \"testing/gmock/include/gmock/gmock.h\"", - "replace": "#include <gmock/gmock.h>"}, - {"match": "^#include \"base/containers/span.h\"", - "replace": "#include <openssl/span.h>"}, - {"match": "^#include \"third_party/abseil-cpp/absl/types/optional.h\"", - "replace": "#include <optional>"}, - {"match": "^#include \"base/containers/contains.h\"", - "replace": ""}, - {"match": "LOG(ERROR)", - "replace": "std::cerr"}, - {"match": "GURL", - "replace": "URL", - "include": "webutil/url/url.h"}, - {"match": "absl::nullopt", - "replace": "std::nullopt" }, - {"match": "absl::optional", - "replace": "std::optional" }, - {"match": "absl::make_optional", - "replace": "std::make_optional" }, - {"match": "base::span", - "replace": "bssl::Span" }, - {"match": "base::make_span", - "replace": "bssl::MakeSpan" }, - {"match": "base::as_bytes", - "replace": "fillins::as_bytes", - "include": "fillins/bits.h"}, - {"match": "^namespace net {", - "replace": "namespace bssl {"}, - {"match": "namespace net::([^ ]+) {", - "replace": "namespace bssl::$1 {"}, - {"match": "NET_EXPORT_PRIVATE ", - "replace": "OPENSSL_EXPORT ", - "include": "fillins/openssl_util.h"}, - {"match": "NET_EXPORT ", - "replace": "OPENSSL_EXPORT ", - "include": "fillins/openssl_util.h"}, - {"match": "NOTREACHED\\(\\)", - "replace": "abort(); //NOTREACHED" }, - {"match": "NOTREACHED_NORETURN\\(\\)", - "replace": "abort(); //NOTREACHED_NORETURN" }, - {"match": "FRIEND_TEST_ALL_PREFIXES\\(.+;", - "replace": ""}, - {"match": " NET_DER", - "replace": " BSSL_DER"}, - {"match": " NET_CERT_PKI", - "replace": " BSSL_PKI"}, - {"match": " NET_CERT", - "replace": " BSSL_PKI"}, - {"match": "^using base::StringPiece;", - "replace": ""}, - {"match": "base::StringPiece", - "replace": "std::string_view"}, - {"match": "base::StartsWith\\(", - "replace": "bssl::string_util::StartsWith(", - "include": "string_util.h"}, - {"match": "base::StringPrintf", - "replace": "absl::StrFormat", - "include": "third_party/absl/strings/str_format.h"}, - {"match": "base::Base64Encode", - "replace": "fillins::Base64Encode"}, - {"match": "base::Base64Decode", - "replace": "fillins::Base64Decode"}, - {"match": "base::ReadFileToString", - "replace": "fillins::ReadFileToString"}, - {"match": "base::CollapseWhitespaceASCII", - "replace": "fillins::CollapseWhitespaceASCII"}, - {"match": "base::FilePath", - "replace": "fillins::FilePath"}, - {"match": "base::DIR_SRC_TEST_DATA_ROOT", - "replace": "fillins::BSSL_TEST_DATA_ROOT"}, - {"match": "base::NetToHost16\\(", - "replace": "ntohs("}, - {"match": "base::NetToHost32\\(", - "replace": "ntohl("}, - { "match": "base_icu::UChar32", - "replace": "uint32_t"}, - {"match": "base::WriteUnicodeCharacter\\(", - "replace": "fillins::WriteUnicodeCharacter("}, - {"match": "base::IsAsciiAlpha\\(", - "replace": "fillins::IsAsciiAlpha("}, - {"match": "scoped_refptr<", - "replace": "std::shared_ptr<"}, - {"match": ": public base::RefCountedThreadSafe<.+>", - "replace": ""}, - {"match": "friend class base::RefCountedThreadSafe<.+>;", - "replace": ""}, - {"match": "\\bnet::", - "replace": "bssl::"}, - {"match": "base::Time::Exploded", - "replace": "fillins::Exploded", - "include": "fillins/time.h"}, - {"match": "([a-zA-Z_0-9]+)\\.UTCExplode\\(&([^)]*)\\)", - "replace": "fillins::UTCExplode($1, &$2)"}, - {"match": "net::ReadTestFileToString\\(", - "replace": "ReadTestFileToString("}, - {"match": "base::Seconds\\(", - "replace": "absl::Seconds("}, - {"match": "base::Time::UnixEpoch\\(", - "replace": "absl::UnixEpoch("}, - {"match": "base::Time::FromUTCExploded\\(", - "replace": "fillins::FromUTCExploded(", - "include": "fillins/time.h"}, - {"match": "base::Time::Now\\(\\)", - "replace": "absl::Now()"}, - {"match": "base::Time::Min\\(\\)", - "replace": "absl::InfinitePast()"}, - {"match": "base::Time::Max\\(\\)", - "replace": "absl::InfiniteFuture()"}, - {"match": "base::Time", - "replace": "absl::Time", - "include": "fillins/time.h"}, - {"match": "constexpr absl::Time", - "replace": "const absl::Time"}, - {"match": "^ // Map from OID to ParsedExtension.$", - "replace": "~ParsedCertificate();\n$0"}, - {"match": "^ ~ParsedCertificate\\(\\);$", - "replace": " "}, - {"match": "crypto::OpenSSLErrStackTracer", - "replace": "fillins::OpenSSLErrStackTracer"}, - {"match": "\\(FROM_HERE\\)", - "replace": ""}, - {"match": "([^a-zA-Z])StringPiece([^a-zA-Z])", - "replace": "${1}std::string_view$2"}, - {"match": "crypto::kSHA256Length", - "replace": "SHA256_DIGEST_LENGTH"}, - {"match": "raw_ptr<([^>]*)>", - "replace": "$1 *"} - ], - "files": [ - "net/cert/asn1_util.h", - "net/cert/asn1_util.cc", - "net/cert/cert_status_flags.h", - "net/cert/cert_status_flags_list.h", - "net/cert/cert_verify_proc_blocklist.inc", - "net/cert/pki/cert_error_id.cc", - "net/cert/pki/cert_error_id.h", - "net/cert/pki/cert_error_params.cc", - "net/cert/pki/cert_error_params.h", - "net/cert/pki/cert_errors.cc", - "net/cert/pki/cert_errors.h", - "net/cert/pki/certificate_policies.cc", - "net/cert/pki/certificate_policies.h", - "net/cert/pki/certificate_policies_unittest.cc", - "net/cert/pki/cert_issuer_source.h", - "net/cert/pki/cert_issuer_source_static.cc", - "net/cert/pki/cert_issuer_source_static.h", - "net/cert/pki/cert_issuer_source_static_unittest.cc", - "net/cert/pki/cert_issuer_source_sync_unittest.h", - "net/cert/pki/common_cert_errors.cc", - "net/cert/pki/common_cert_errors.h", - "net/cert/pki/crl.h", - "net/cert/pki/crl.cc", - "net/cert/pki/crl_unittest.cc", - "net/cert/pki/crl_parse_crl_certificatelist_fuzzer.cc", - "net/cert/pki/crl_parse_crl_tbscertlist_fuzzer.cc", - "net/cert/pki/crl_parse_issuing_distribution_point_fuzzer.cc", - "net/cert/pki/crl_getcrlstatusforcert_fuzzer.cc", - "net/cert/pki/extended_key_usage.cc", - "net/cert/pki/extended_key_usage.h", - "net/cert/pki/extended_key_usage_unittest.cc", - "net/cert/pki/general_names.h", - "net/cert/pki/general_names.cc", - "net/cert/pki/general_names_unittest.cc", - "net/cert/pki/ip_util.h", - "net/cert/pki/ip_util.cc", - "net/cert/pki/ip_util_unittest.cc", - "net/cert/pki/mock_signature_verify_cache.h", - "net/cert/pki/mock_signature_verify_cache.cc", - "net/cert/pki/name_constraints.cc", - "net/cert/pki/name_constraints.h", - "net/cert/pki/name_constraints_unittest.cc", - "net/cert/pki/nist_pkits_unittest.cc", - "net/cert/pki/nist_pkits_unittest.h", - "net/cert/pki/ocsp.cc", - "net/cert/pki/ocsp.h", - "net/cert/pki/ocsp_parse_ocsp_cert_id_fuzzer.cc", - "net/cert/pki/ocsp_parse_ocsp_response_data_fuzzer.cc", - "net/cert/pki/ocsp_parse_ocsp_response_fuzzer.cc", - "net/cert/pki/ocsp_parse_ocsp_single_response_fuzzer.cc", - "net/cert/pki/ocsp_unittest.cc", - "net/cert/pki/parse_authority_key_identifier_fuzzer.cc", - "net/cert/pki/parse_certificate.cc", - "net/cert/pki/parse_certificate.h", - "net/cert/pki/parse_certificate_unittest.cc", - "net/cert/pki/parsed_certificate.cc", - "net/cert/pki/parsed_certificate.h", - "net/cert/pki/parse_certificate_fuzzer.cc", - "net/cert/pki/parsed_certificate_unittest.cc", - "net/cert/pki/parse_crldp_fuzzer.cc", - "net/cert/pki/parse_name.cc", - "net/cert/pki/parse_name.h", - "net/cert/pki/parse_name_unittest.cc", - "net/cert/pki/path_builder.cc", - "net/cert/pki/path_builder.h", - "net/cert/pki/path_builder_pkits_unittest.cc", - "net/cert/pki/path_builder_unittest.cc", - "net/cert/pki/path_builder_verify_certificate_chain_unittest.cc", - "net/cert/pki/revocation_util.h", - "net/cert/pki/revocation_util.cc", - "net/cert/pki/signature_algorithm.cc", - "net/cert/pki/signature_algorithm.h", - "net/cert/pki/signature_algorithm_unittest.cc", - "net/cert/pki/simple_path_builder_delegate.cc", - "net/cert/pki/simple_path_builder_delegate.h", - "net/cert/pki/simple_path_builder_delegate_unittest.cc", - "net/cert/pki/string_util.cc", - "net/cert/pki/string_util_unittest.cc", - "net/cert/pki/string_util.h", - "net/cert/pki/signature_verify_cache.h", - "net/cert/pki/test_helpers.cc", - "net/cert/pki/test_helpers.h", - "net/cert/pki/trust_store.cc", - "net/cert/pki/trust_store_collection.cc", - "net/cert/pki/trust_store_collection.h", - "net/cert/pki/trust_store_collection_unittest.cc", - "net/cert/pki/trust_store.h", - "net/cert/pki/trust_store_in_memory.cc", - "net/cert/pki/trust_store_in_memory.h", - "net/cert/pki/verify_certificate_chain.cc", - "net/cert/pki/verify_certificate_chain.h", - "net/cert/pki/verify_certificate_chain_pkits_unittest.cc", - "net/cert/pki/verify_certificate_chain_typed_unittest.h", - "net/cert/pki/verify_certificate_chain_unittest.cc", - "net/cert/pki/verify_name_match.cc", - "net/cert/pki/verify_name_match.h", - "net/cert/pki/verify_name_match_unittest.cc", - "net/cert/pki/verify_name_match_fuzzer.cc", - "net/cert/pki/verify_name_match_normalizename_fuzzer.cc", - "net/cert/pki/verify_name_match_verifynameinsubtree_fuzzer.cc", - "net/cert/pki/verify_signed_data.cc", - "net/cert/pki/verify_signed_data.h", - "net/cert/pki/verify_signed_data_unittest.cc", - "net/cert/ocsp_revocation_status.h", - "net/cert/ocsp_verify_result.h", - "net/cert/ocsp_verify_result.cc", - "net/cert/pem.cc", - "net/cert/pem.h", - "net/cert/pem_unittest.cc", - "net/der/encode_values.cc", - "net/der/encode_values.h", - "net/der/encode_values_unittest.cc", - "net/der/input.cc", - "net/der/input.h", - "net/der/input_unittest.cc", - "net/der/parser.cc", - "net/der/parser.h", - "net/der/parser_unittest.cc", - "net/der/parse_values.cc", - "net/der/parse_values.h", - "net/der/parse_values_unittest.cc", - "net/der/tag.cc", - "net/der/tag.h" - ] -} diff --git a/src/pki/import_tool.go b/src/pki/import_tool.go deleted file mode 100644 index b1915f6..0000000 --- a/src/pki/import_tool.go +++ /dev/null @@ -1,187 +0,0 @@ -// import_tool is a quick tool for importing Chromium's certificate verifier -// code into google3. In time it might be replaced by Copybara, but this is a -// lighter-weight solution while we're quickly iterating and only going in one -// direction. -// -// Usage: ./import_tool -spec import_spec.json\ -// -source-base ~/src/chromium/src/net\ -// -dest-base . -package main - -import ( - "bufio" - "encoding/json" - "errors" - "flag" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "regexp" - "strings" - "sync" - "sync/atomic" -) - -type specification struct { - Replacements []replacement `json:"replacements"` - Files []string `json:"files"` -} - -type replacement struct { - Match string `json:"match"` - matchRE *regexp.Regexp `json:"-"` - Replace string `json:"replace"` - Include string `json:"include"` - Using []string `json:"using"` - used uint32 -} - -var ( - specFile *string = flag.String("spec", "", "Location of spec JSON") - sourceBase *string = flag.String("source-base", "", "Path of the source files") - destBase *string = flag.String("dest-base", "", "Path of the destination files") -) - -func transformFile(spec *specification, filename string) error { - const newLine = "\n" - - sourcePath := filepath.Join(*sourceBase, filename) - destPath := filename - destPath = strings.TrimPrefix(destPath, "net/") - destPath = strings.TrimPrefix(destPath, "cert/") - destPath = strings.TrimPrefix(destPath, "der/") - destPath = strings.TrimPrefix(destPath, "pki/") - destPath = filepath.Join(*destBase, destPath) - destDir := filepath.Dir(destPath) - if err := os.MkdirAll(destDir, 0755); err != nil { - return err - } - - source, err := os.Open(sourcePath) - if err != nil { - return err - } - defer source.Close() - - dest, err := os.OpenFile(destPath, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0644) - if err != nil { - return err - } - defer dest.Close() - - var using []string - var includeInsertionPoint int - includes := make(map[string]struct{}) - scanner := bufio.NewScanner(source) - out := "" - for scanner.Scan() { - line := scanner.Text() - - if includeInsertionPoint == 0 && len(line) > 0 && - !strings.HasPrefix(line, "// ") && - !strings.HasPrefix(line, "#if") && - !strings.HasPrefix(line, "#define ") { - includeInsertionPoint = len(out) - } - - for i, repl := range spec.Replacements { - if !repl.matchRE.MatchString(line) { - continue - } - line = repl.matchRE.ReplaceAllString(line, repl.Replace) - atomic.StoreUint32(&spec.Replacements[i].used, 1) - using = append(using, repl.Using...) - if repl.Include != "" { - includes[repl.Include] = struct{}{} - } - } - - for _, u := range using { - line = strings.Replace( - line, "namespace chromium_certificate_verifier {", - "namespace chromium_certificate_verifier {\nusing "+u+";", 1) - } - - out += line - out += newLine - } - - if len(includes) > 0 { - if includeInsertionPoint == 0 { - panic("failed to find include insertion point for " + filename) - } - - var s string - for include := range includes { - s = s + "#include \"" + include + "\"\n" - } - - out = out[:includeInsertionPoint] + s + out[includeInsertionPoint:] - } - - dest.WriteString(out) - fmt.Printf("%s\n", filename) - - return nil -} - -func do() error { - flag.Parse() - - specBytes, err := ioutil.ReadFile(*specFile) - if err != nil { - return err - } - - var spec specification - if err := json.Unmarshal(specBytes, &spec); err != nil { - if jsonError, ok := err.(*json.SyntaxError); ok { - return fmt.Errorf("JSON parse error at offset %v: %v", jsonError.Offset, err.Error()) - } - return errors.New("JSON parse error: " + err.Error()) - } - - for i, repl := range spec.Replacements { - var err error - spec.Replacements[i].matchRE, err = regexp.Compile(repl.Match) - if err != nil { - return fmt.Errorf("Failed to parse %q: %s", repl.Match, err) - } - } - - errors := make(chan error, len(spec.Files)) - var wg sync.WaitGroup - - for _, filename := range spec.Files { - wg.Add(1) - - go func(filename string) { - if err := transformFile(&spec, filename); err != nil { - errors <- err - } - wg.Done() - }(filename) - } - - wg.Wait() - select { - case err := <-errors: - return err - default: - break - } - for _, repl := range spec.Replacements { - if repl.used == 0 { - fmt.Fprintf(os.Stderr, "replacement for \"%s\" not used\n", repl.Match) - } - } - return nil -} - -func main() { - if err := do(); err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err) - os.Exit(1) - } -} diff --git a/src/pki/input.cc b/src/pki/input.cc index 884c6bc..156d248 100644 --- a/src/pki/input.cc +++ b/src/pki/input.cc @@ -4,64 +4,44 @@ #include "input.h" -#include <algorithm> - #include <openssl/base.h> namespace bssl::der { -std::string Input::AsString() const { - return std::string(reinterpret_cast<const char*>(data_.data()), data_.size()); -} +std::string Input::AsString() const { return std::string(AsStringView()); } -std::string_view Input::AsStringView() const { - return std::string_view(reinterpret_cast<const char*>(data_.data()), - data_.size()); +bool operator==(Input lhs, Input rhs) { + return MakeConstSpan(lhs) == MakeConstSpan(rhs); } -bssl::Span<const uint8_t> Input::AsSpan() const { - return data_; -} +bool operator!=(Input lhs, Input rhs) { return !(lhs == rhs); } -bool operator==(const Input& lhs, const Input& rhs) { - return lhs.Length() == rhs.Length() && - std::equal(lhs.UnsafeData(), lhs.UnsafeData() + lhs.Length(), - rhs.UnsafeData()); -} +ByteReader::ByteReader(Input in) : data_(in) {} -bool operator!=(const Input& lhs, const Input& rhs) { - return !(lhs == rhs); -} - -ByteReader::ByteReader(const Input& in) - : data_(in.UnsafeData()), len_(in.Length()) { -} - -bool ByteReader::ReadByte(uint8_t* byte_p) { - if (!HasMore()) +bool ByteReader::ReadByte(uint8_t *byte_p) { + if (!HasMore()) { return false; - *byte_p = *data_; + } + *byte_p = data_[0]; Advance(1); return true; } -bool ByteReader::ReadBytes(size_t len, Input* out) { - if (len > len_) +bool ByteReader::ReadBytes(size_t len, Input *out) { + if (len > data_.size()) { return false; - *out = Input(data_, len); + } + *out = Input(data_.first(len)); Advance(len); return true; } // Returns whether there is any more data to be read. -bool ByteReader::HasMore() { - return len_ > 0; -} +bool ByteReader::HasMore() { return !data_.empty(); } void ByteReader::Advance(size_t len) { - BSSL_CHECK(len <= len_); - data_ += len; - len_ -= len; + BSSL_CHECK(len <= data_.size()); + data_ = data_.subspan(len); } } // namespace bssl::der diff --git a/src/pki/input.h b/src/pki/input.h index b3b13b7..30ce5d4 100644 --- a/src/pki/input.h +++ b/src/pki/input.h @@ -5,14 +5,13 @@ #ifndef BSSL_DER_INPUT_H_ #define BSSL_DER_INPUT_H_ -#include "fillins/openssl_util.h" #include <stddef.h> #include <stdint.h> #include <string> #include <string_view> - +#include <openssl/base.h> #include <openssl/span.h> namespace bssl::der { @@ -27,6 +26,10 @@ namespace bssl::der { // difficult to read memory outside of an Input. ByteReader provides a simple // API for reading through the Input sequentially. For more complicated uses, // multiple instances of a ByteReader for a particular Input can be created. +// +// TODO(crbug.com/boringssl/661): This class will gradually be replaced with +// bssl::Span<const uint8_t>. Avoid relying on APIs that are not part of +// bssl::Span. class OPENSSL_EXPORT Input { public: // Creates an empty Input, one from which no data can be read. @@ -35,62 +38,82 @@ class OPENSSL_EXPORT Input { // Creates an Input from a span. The constructed Input is only valid as long // as |data| points to live memory. If constructed from, say, a // |std::vector<uint8_t>|, mutating the vector will invalidate the Input. - constexpr explicit Input(bssl::Span<const uint8_t> data) : data_(data) {} + constexpr Input(bssl::Span<const uint8_t> data) : data_(data) {} // Creates an Input from the given |data| and |len|. - constexpr explicit Input(const uint8_t* data, size_t len) - : data_(bssl::MakeConstSpan(data, len)) {} + constexpr explicit Input(const uint8_t *data, size_t len) + : data_(MakeConstSpan(data, len)) {} + // Deprecated: Use StringAsBytes. + // // Creates an Input from a std::string_view. The constructed Input is only // valid as long as |data| points to live memory. If constructed from, say, a // |std::string|, mutating the vector will invalidate the Input. explicit Input(std::string_view str) - : data_(bssl::MakeConstSpan(reinterpret_cast<const uint8_t*>(str.data()), - str.size())) {} - - // Returns the length in bytes of an Input's data. - constexpr size_t Length() const { return data_.size(); } - - // Returns a pointer to the Input's data. This method is marked as "unsafe" - // because access to the Input's data should be done through ByteReader - // instead. This method should only be used where using a ByteReader truly - // is not an option. - constexpr const uint8_t* UnsafeData() const { return data_.data(); } + : data_(MakeConstSpan(reinterpret_cast<const uint8_t *>(str.data()), + str.size())) {} + // The following APIs have the same semantics as in |bssl::Span|. + constexpr Span<const uint8_t>::iterator begin() const { + return data_.begin(); + } + constexpr Span<const uint8_t>::iterator end() const { return data_.end(); } + constexpr const uint8_t *data() const { return data_.data(); } + constexpr size_t size() const { return data_.size(); } + constexpr bool empty() const { return data_.empty(); } constexpr uint8_t operator[](size_t idx) const { return data_[idx]; } + constexpr uint8_t front() const { return data_.front(); } + constexpr uint8_t back() const { return data_.back(); } + constexpr Input subspan(size_t pos = 0, + size_t len = Span<const uint8_t>::npos) const { + return Input(data_.subspan(pos, len)); + } + constexpr Input first(size_t len) const { return Input(data_.first(len)); } + constexpr Input last(size_t len) const { return Input(data_.last(len)); } + // Deprecated: use BytesAsStringView and convert to std::string. + // // Returns a copy of the data represented by this object as a std::string. std::string AsString() const; + // Deprecated: Use ByteAsString. + // // Returns a std::string_view pointing to the same data as the Input. The // resulting string_view must not outlive the data that was used to construct // this Input. - std::string_view AsStringView() const; + std::string_view AsStringView() const { return BytesAsStringView(data_); } + // Deprecated: This class implicitly converts to bssl::Span<const uint8_t>. + // // Returns a span pointing to the same data as the Input. The resulting span // must not outlive the data that was used to construct this Input. - bssl::Span<const uint8_t> AsSpan() const; + Span<const uint8_t> AsSpan() const { return *this; } + + // Deprecated: Use size() instead. + constexpr size_t Length() const { return size(); } + + // Deprecated: Use data() instead. + constexpr const uint8_t *UnsafeData() const { return data(); } private: // TODO(crbug.com/770501): Replace this type with span altogether. - bssl::Span<const uint8_t> data_; + Span<const uint8_t> data_; }; // Return true if |lhs|'s data and |rhs|'s data are byte-wise equal. -OPENSSL_EXPORT bool operator==(const Input& lhs, const Input& rhs); +OPENSSL_EXPORT bool operator==(Input lhs, Input rhs); // Return true if |lhs|'s data and |rhs|'s data are not byte-wise equal. -OPENSSL_EXPORT bool operator!=(const Input& lhs, const Input& rhs); +OPENSSL_EXPORT bool operator!=(Input lhs, Input rhs); // Returns true if |lhs|'s data is lexicographically less than |rhs|'s data. -OPENSSL_EXPORT constexpr bool operator<(const Input& lhs, - const Input& rhs) { +OPENSSL_EXPORT constexpr bool operator<(Input lhs, Input rhs) { // This is `std::lexicographical_compare`, but that's not `constexpr` until // C++-20. - auto* it1 = lhs.UnsafeData(); - auto* it2 = rhs.UnsafeData(); - const auto* end1 = lhs.UnsafeData() + lhs.Length(); - const auto* end2 = rhs.UnsafeData() + rhs.Length(); + auto *it1 = lhs.data(); + auto *it2 = rhs.data(); + const auto *end1 = lhs.data() + lhs.size(); + const auto *end2 = rhs.data() + rhs.size(); for (; it1 != end1 && it2 != end2; ++it1, ++it2) { if (*it1 < *it2) { return true; @@ -121,20 +144,20 @@ OPENSSL_EXPORT constexpr bool operator<(const Input& lhs, class OPENSSL_EXPORT ByteReader { public: // Creates a ByteReader to read the data represented by an Input. - explicit ByteReader(const Input& in); + explicit ByteReader(Input in); // Reads a single byte from the input source, putting the byte read in // |*byte_p|. If a byte cannot be read from the input (because there is // no input left), then this method returns false. - [[nodiscard]] bool ReadByte(uint8_t* out); + [[nodiscard]] bool ReadByte(uint8_t *out); // Reads |len| bytes from the input source, and initializes an Input to // point to that data. If there aren't enough bytes left in the input source, // then this method returns false. - [[nodiscard]] bool ReadBytes(size_t len, Input* out); + [[nodiscard]] bool ReadBytes(size_t len, Input *out); // Returns how many bytes are left to read. - size_t BytesLeft() const { return len_; } + size_t BytesLeft() const { return data_.size(); } // Returns whether there is any more data to be read. bool HasMore(); @@ -142,8 +165,7 @@ class OPENSSL_EXPORT ByteReader { private: void Advance(size_t len); - const uint8_t* data_; - size_t len_; + bssl::Span<const uint8_t> data_; }; } // namespace bssl::der diff --git a/src/pki/input_unittest.cc b/src/pki/input_unittest.cc index 6c3f757..655a808 100644 --- a/src/pki/input_unittest.cc +++ b/src/pki/input_unittest.cc @@ -41,14 +41,14 @@ TEST(InputTest, LessThan) { TEST(InputTest, AsString) { Input input(kInput); - std::string expected_string(reinterpret_cast<const char*>(kInput), + std::string expected_string(reinterpret_cast<const char *>(kInput), std::size(kInput)); EXPECT_EQ(expected_string, input.AsString()); } TEST(InputTest, StaticArray) { Input input(kInput); - EXPECT_EQ(std::size(kInput), input.Length()); + EXPECT_EQ(std::size(kInput), input.size()); Input input2(kInput); EXPECT_EQ(input, input2); @@ -56,17 +56,17 @@ TEST(InputTest, StaticArray) { TEST(InputTest, ConstExpr) { constexpr Input default_input; - static_assert(default_input.Length() == 0); - static_assert(default_input.UnsafeData() == nullptr); + static_assert(default_input.size() == 0); + static_assert(default_input.data() == nullptr); constexpr Input const_array_input(kInput); - static_assert(const_array_input.Length() == 4); - static_assert(const_array_input.UnsafeData() == kInput); + static_assert(const_array_input.size() == 4); + static_assert(const_array_input.data() == kInput); static_assert(default_input < const_array_input); constexpr Input ptr_len_input(kInput, 2); - static_assert(ptr_len_input.Length() == 2); - static_assert(ptr_len_input.UnsafeData() == kInput); + static_assert(ptr_len_input.size() == 2); + static_assert(ptr_len_input.data() == kInput); static_assert(ptr_len_input < const_array_input); Input runtime_input(kInput2, 2); diff --git a/src/pki/ip_util.cc b/src/pki/ip_util.cc index 75b77ca..663669e 100644 --- a/src/pki/ip_util.cc +++ b/src/pki/ip_util.cc @@ -7,11 +7,11 @@ namespace bssl { bool IsValidNetmask(der::Input mask) { - if (mask.Length() != kIPv4AddressSize && mask.Length() != kIPv6AddressSize) { + if (mask.size() != kIPv4AddressSize && mask.size() != kIPv6AddressSize) { return false; } - for (size_t i = 0; i < mask.Length(); i++) { + for (size_t i = 0; i < mask.size(); i++) { uint8_t b = mask[i]; if (b != 0xff) { // b must be all ones followed by all zeros, so ~b must be all zeros @@ -21,7 +21,7 @@ bool IsValidNetmask(der::Input mask) { return false; } // The remaining bytes must be all zeros. - for (size_t j = i + 1; j < mask.Length(); j++) { + for (size_t j = i + 1; j < mask.size(); j++) { if (mask[j] != 0) { return false; } @@ -33,13 +33,12 @@ bool IsValidNetmask(der::Input mask) { return true; } -bool IPAddressMatchesWithNetmask(der::Input addr1, - der::Input addr2, +bool IPAddressMatchesWithNetmask(der::Input addr1, der::Input addr2, der::Input mask) { - if (addr1.Length() != addr2.Length() || addr1.Length() != mask.Length()) { + if (addr1.size() != addr2.size() || addr1.size() != mask.size()) { return false; } - for (size_t i = 0; i < addr1.Length(); i++) { + for (size_t i = 0; i < addr1.size(); i++) { if ((addr1[i] & mask[i]) != (addr2[i] & mask[i])) { return false; } @@ -47,4 +46,4 @@ bool IPAddressMatchesWithNetmask(der::Input addr1, return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/ip_util.h b/src/pki/ip_util.h index e78b9e6..3bcc7df 100644 --- a/src/pki/ip_util.h +++ b/src/pki/ip_util.h @@ -5,7 +5,7 @@ #ifndef BSSL_PKI_IP_UTIL_H_ #define BSSL_PKI_IP_UTIL_H_ -#include "fillins/openssl_util.h" +#include <openssl/base.h> #include "input.h" @@ -21,9 +21,9 @@ OPENSSL_EXPORT bool IsValidNetmask(der::Input mask); // Returns whether `addr1` and `addr2` are equal under the netmask `mask`. OPENSSL_EXPORT bool IPAddressMatchesWithNetmask(der::Input addr1, - der::Input addr2, - der::Input mask); + der::Input addr2, + der::Input mask); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_IP_UTIL_H_ diff --git a/src/pki/ip_util_unittest.cc b/src/pki/ip_util_unittest.cc index 8ec7452..268a924 100644 --- a/src/pki/ip_util_unittest.cc +++ b/src/pki/ip_util_unittest.cc @@ -6,8 +6,8 @@ #include <string.h> -#include "input.h" #include <gtest/gtest.h> +#include "input.h" namespace bssl { @@ -104,4 +104,4 @@ TEST(IPUtilTest, IPAddressMatchesWithNetmask) { } } -} // namespace net +} // namespace bssl diff --git a/src/pki/mock_signature_verify_cache.cc b/src/pki/mock_signature_verify_cache.cc index 786fd44..d99f690 100644 --- a/src/pki/mock_signature_verify_cache.cc +++ b/src/pki/mock_signature_verify_cache.cc @@ -12,14 +12,14 @@ MockSignatureVerifyCache::MockSignatureVerifyCache() = default; MockSignatureVerifyCache::~MockSignatureVerifyCache() = default; -void MockSignatureVerifyCache::Store(const std::string& key, +void MockSignatureVerifyCache::Store(const std::string &key, SignatureVerifyCache::Value value) { cache_.insert_or_assign(key, value); stores_++; } SignatureVerifyCache::Value MockSignatureVerifyCache::Check( - const std::string& key) { + const std::string &key) { auto iter = cache_.find(key); if (iter == cache_.end()) { misses_++; @@ -29,4 +29,4 @@ SignatureVerifyCache::Value MockSignatureVerifyCache::Check( return iter->second; } -} // namespace net +} // namespace bssl diff --git a/src/pki/mock_signature_verify_cache.h b/src/pki/mock_signature_verify_cache.h index ed7f1b1..f380f61 100644 --- a/src/pki/mock_signature_verify_cache.h +++ b/src/pki/mock_signature_verify_cache.h @@ -11,8 +11,7 @@ #include <string_view> #include <unordered_map> - -#include "signature_verify_cache.h" +#include <openssl/pki/signature_verify_cache.h> namespace bssl { @@ -25,10 +24,10 @@ class MockSignatureVerifyCache : public SignatureVerifyCache { ~MockSignatureVerifyCache() override; - void Store(const std::string& key, + void Store(const std::string &key, SignatureVerifyCache::Value value) override; - SignatureVerifyCache::Value Check(const std::string& key) override; + SignatureVerifyCache::Value Check(const std::string &key) override; size_t CacheHits() { return hits_; } @@ -43,6 +42,6 @@ class MockSignatureVerifyCache : public SignatureVerifyCache { size_t stores_ = 0; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_MOCK_PATH_BUILDER_DELEGATE_H_ diff --git a/src/pki/name_constraints.cc b/src/pki/name_constraints.cc index aa03a96..1ce9a8f 100644 --- a/src/pki/name_constraints.cc +++ b/src/pki/name_constraints.cc @@ -7,18 +7,19 @@ #include <limits.h> #include <memory> +#include <optional> + +#include <openssl/base.h> +#include <openssl/bytestring.h> #include "cert_errors.h" #include "common_cert_errors.h" #include "general_names.h" +#include "input.h" #include "ip_util.h" +#include "parser.h" #include "string_util.h" #include "verify_name_match.h" -#include "input.h" -#include "parser.h" -#include "tag.h" -#include <optional> -#include <openssl/base.h> namespace bssl { @@ -53,18 +54,20 @@ enum WildcardMatchType { WILDCARD_PARTIAL_MATCH, WILDCARD_FULL_MATCH }; // |wildcard_matching| controls handling of wildcard names (|name| starts with // "*."). Wildcard handling is not specified by RFC 5280, but certificate // verification allows it, name constraints must check it similarly. -bool DNSNameMatches(std::string_view name, - std::string_view dns_constraint, +bool DNSNameMatches(std::string_view name, std::string_view dns_constraint, WildcardMatchType wildcard_matching) { // Everything matches the empty DNS name constraint. - if (dns_constraint.empty()) + if (dns_constraint.empty()) { return true; + } // Normalize absolute DNS names by removing the trailing dot, if any. - if (!name.empty() && *name.rbegin() == '.') + if (!name.empty() && *name.rbegin() == '.') { name.remove_suffix(1); - if (!dns_constraint.empty() && *dns_constraint.rbegin() == '.') + } + if (!dns_constraint.empty() && *dns_constraint.rbegin() == '.') { dns_constraint.remove_suffix(1); + } // Wildcard partial-match handling ("*.bar.com" matching name constraint // "foo.bar.com"). This only handles the case where the the dnsname and the @@ -79,7 +82,7 @@ bool DNSNameMatches(std::string_view name, dns_constraint.substr(dns_constraint_dot_pos + 1); std::string_view wildcard_domain = name.substr(2); if (bssl::string_util::IsEqualNoCase(wildcard_domain, - dns_constraint_domain)) { + dns_constraint_domain)) { return true; } } @@ -90,13 +93,15 @@ bool DNSNameMatches(std::string_view name, } // Exact match. - if (name.size() == dns_constraint.size()) + if (name.size() == dns_constraint.size()) { return true; + } // If dNSName constraint starts with a dot, only subdomains should match. // (e.g., "foo.bar.com" matches constraint ".bar.com", but "bar.com" doesn't.) // RFC 5280 is ambiguous, but this matches the behavior of other platforms. - if (!dns_constraint.empty() && dns_constraint[0] == '.') + if (!dns_constraint.empty() && dns_constraint[0] == '.') { dns_constraint.remove_prefix(1); + } // Subtree match. if (name.size() > dns_constraint.size() && name[name.size() - dns_constraint.size() - 1] == '.') { @@ -113,9 +118,9 @@ bool DNSNameMatches(std::string_view name, // NOTE: |subtrees| is not pre-initialized by the function(it is expected to be // a default initialized object), and it will be modified regardless of the // return value. -[[nodiscard]] bool ParseGeneralSubtrees(const der::Input& value, - GeneralNames* subtrees, - CertErrors* errors) { +[[nodiscard]] bool ParseGeneralSubtrees(der::Input value, + GeneralNames *subtrees, + CertErrors *errors) { BSSL_CHECK(errors); // GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree @@ -128,16 +133,19 @@ bool DNSNameMatches(std::string_view name, // BaseDistance ::= INTEGER (0..MAX) der::Parser sequence_parser(value); // The GeneralSubtrees sequence should have at least 1 element. - if (!sequence_parser.HasMore()) + if (!sequence_parser.HasMore()) { return false; + } while (sequence_parser.HasMore()) { der::Parser subtree_sequence; - if (!sequence_parser.ReadSequence(&subtree_sequence)) + if (!sequence_parser.ReadSequence(&subtree_sequence)) { return false; + } der::Input raw_general_name; - if (!subtree_sequence.ReadRawTLV(&raw_general_name)) + if (!subtree_sequence.ReadRawTLV(&raw_general_name)) { return false; + } if (!ParseGeneralName(raw_general_name, GeneralNames::IP_ADDRESS_AND_NETMASK, subtrees, @@ -158,8 +166,9 @@ bool DNSNameMatches(std::string_view name, // fail if a name of this type actually appears in a subsequent cert and // this extension was marked critical. However the minimum and maximum // fields appear uncommon enough that implementing that isn't useful. - if (subtree_sequence.HasMore()) + if (subtree_sequence.HasMore()) { return false; + } } return true; } @@ -206,8 +215,7 @@ bool IsAllowedRfc822Domain(std::string_view domain) { } enum class Rfc822NameMatchType { kPermitted, kExcluded }; -bool Rfc822NameMatches(std::string_view local_part, - std::string_view domain, +bool Rfc822NameMatches(std::string_view local_part, std::string_view domain, std::string_view rfc822_constraint, Rfc822NameMatchType match_type, bool case_insensitive_local_part) { @@ -271,20 +279,29 @@ NameConstraints::~NameConstraints() = default; // static std::unique_ptr<NameConstraints> NameConstraints::Create( - const der::Input& extension_value, - bool is_critical, - CertErrors* errors) { + der::Input extension_value, bool is_critical, CertErrors *errors) { BSSL_CHECK(errors); auto name_constraints = std::make_unique<NameConstraints>(); - if (!name_constraints->Parse(extension_value, is_critical, errors)) + if (!name_constraints->Parse(extension_value, is_critical, errors)) { return nullptr; + } return name_constraints; } -bool NameConstraints::Parse(const der::Input& extension_value, - bool is_critical, - CertErrors* errors) { +std::unique_ptr<NameConstraints> NameConstraints::CreateFromPermittedSubtrees( + GeneralNames permitted_subtrees) { + auto name_constraints = std::make_unique<NameConstraints>(); + + name_constraints->constrained_name_types_ = + permitted_subtrees.present_name_types; + name_constraints->permitted_subtrees_ = std::move(permitted_subtrees); + + return name_constraints; +} + +bool NameConstraints::Parse(der::Input extension_value, bool is_critical, + CertErrors *errors) { BSSL_CHECK(errors); der::Parser extension_parser(extension_value); @@ -293,14 +310,17 @@ bool NameConstraints::Parse(const der::Input& extension_value, // NameConstraints ::= SEQUENCE { // permittedSubtrees [0] GeneralSubtrees OPTIONAL, // excludedSubtrees [1] GeneralSubtrees OPTIONAL } - if (!extension_parser.ReadSequence(&sequence_parser)) + if (!extension_parser.ReadSequence(&sequence_parser)) { return false; - if (extension_parser.HasMore()) + } + if (extension_parser.HasMore()) { return false; + } std::optional<der::Input> permitted_subtrees_value; - if (!sequence_parser.ReadOptionalTag(der::ContextSpecificConstructed(0), - &permitted_subtrees_value)) { + if (!sequence_parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, + &permitted_subtrees_value)) { return false; } if (permitted_subtrees_value && @@ -313,8 +333,9 @@ bool NameConstraints::Parse(const der::Input& extension_value, (is_critical ? GENERAL_NAME_ALL_TYPES : kSupportedNameTypes); std::optional<der::Input> excluded_subtrees_value; - if (!sequence_parser.ReadOptionalTag(der::ContextSpecificConstructed(1), - &excluded_subtrees_value)) { + if (!sequence_parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 1, + &excluded_subtrees_value)) { return false; } if (excluded_subtrees_value && @@ -330,18 +351,20 @@ bool NameConstraints::Parse(const der::Input& extension_value, // Conforming CAs MUST NOT issue certificates where name constraints is an // empty sequence. That is, either the permittedSubtrees field or the // excludedSubtrees MUST be present. - if (!permitted_subtrees_value && !excluded_subtrees_value) + if (!permitted_subtrees_value && !excluded_subtrees_value) { return false; + } - if (sequence_parser.HasMore()) + if (sequence_parser.HasMore()) { return false; + } return true; } -void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, - const GeneralNames* subject_alt_names, - CertErrors* errors) const { +void NameConstraints::IsPermittedCert(der::Input subject_rdn_sequence, + const GeneralNames *subject_alt_names, + CertErrors *errors) const { // Checking NameConstraints is O(number_of_names * number_of_constraints). // Impose a hard limit to mitigate the use of name constraints as a DoS // mechanism. This mimics the similar check in BoringSSL x509/v_ncons.c @@ -372,7 +395,7 @@ void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, } else { constraint_count += excluded_subtrees_.directory_names.size() + permitted_subtrees_.directory_names.size(); - name_count = subject_rdn_sequence.Length(); + name_count = subject_rdn_sequence.size(); } // Upper bound the number of possible checks, checking for overflow. size_t check_count = constraint_count * name_count; @@ -426,7 +449,7 @@ void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, // might fail if there are email addresses we don't know how to parse but // are technically correct. if (constrained_name_types() & GENERAL_NAME_RFC822_NAME) { - for (const auto& rfc822_name : subject_alt_names->rfc822_names) { + for (const auto &rfc822_name : subject_alt_names->rfc822_names) { if (!IsPermittedRfc822Name( rfc822_name, /*case_insensitive_exclude_localpart=*/false)) { errors->AddError(cert_errors::kNotPermittedByNameConstraints); @@ -435,21 +458,21 @@ void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, } } - for (const auto& dns_name : subject_alt_names->dns_names) { + for (const auto &dns_name : subject_alt_names->dns_names) { if (!IsPermittedDNSName(dns_name)) { errors->AddError(cert_errors::kNotPermittedByNameConstraints); return; } } - for (const auto& directory_name : subject_alt_names->directory_names) { + for (const auto &directory_name : subject_alt_names->directory_names) { if (!IsPermittedDirectoryName(directory_name)) { errors->AddError(cert_errors::kNotPermittedByNameConstraints); return; } } - for (const auto& ip_address : subject_alt_names->ip_addresses) { + for (const auto &ip_address : subject_alt_names->ip_addresses) { if (!IsPermittedIP(ip_address)) { errors->AddError(cert_errors::kNotPermittedByNameConstraints); return; @@ -466,7 +489,7 @@ void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, // form, but the certificate does not include a subject alternative name, the // rfc822Name constraint MUST be applied to the attribute of type emailAddress // in the subject distinguished name. - for (const auto& rfc822_name : subject_email_addresses_to_check) { + for (const auto &rfc822_name : subject_email_addresses_to_check) { // Whether local_part should be matched case-sensitive or not is somewhat // unclear. RFC 2821 says that it should be case-sensitive. RFC 2985 says // that emailAddress attributes in a Name are fully case-insensitive. @@ -493,8 +516,9 @@ void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, // This code assumes that criticality condition is checked by the caller, and // therefore only needs to avoid the IsPermittedDirectoryName check against an // empty subject in such a case. - if (subject_alt_names && subject_rdn_sequence.Length() == 0) + if (subject_alt_names && subject_rdn_sequence.empty()) { return; + } if (!IsPermittedDirectoryName(subject_rdn_sequence)) { errors->AddError(cert_errors::kNotPermittedByNameConstraints); @@ -503,8 +527,7 @@ void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, } bool NameConstraints::IsPermittedRfc822Name( - std::string_view name, - bool case_insensitive_exclude_localpart) const { + std::string_view name, bool case_insensitive_exclude_localpart) const { // RFC 5280 4.2.1.6. Subject Alternative Name // // When the subjectAltName extension contains an Internet mail address, @@ -584,7 +607,7 @@ bool NameConstraints::IsPermittedRfc822Name( return false; } - for (const auto& excluded_name : excluded_subtrees_.rfc822_names) { + for (const auto &excluded_name : excluded_subtrees_.rfc822_names) { if (Rfc822NameMatches(name_components[0], name_components[1], excluded_name, Rfc822NameMatchType::kExcluded, case_insensitive_exclude_localpart)) { @@ -598,7 +621,7 @@ bool NameConstraints::IsPermittedRfc822Name( return true; } - for (const auto& permitted_name : permitted_subtrees_.rfc822_names) { + for (const auto &permitted_name : permitted_subtrees_.rfc822_names) { if (Rfc822NameMatches(name_components[0], name_components[1], permitted_name, Rfc822NameMatchType::kPermitted, /*case_insenitive_local_part=*/false)) { @@ -610,52 +633,58 @@ bool NameConstraints::IsPermittedRfc822Name( } bool NameConstraints::IsPermittedDNSName(std::string_view name) const { - for (const auto& excluded_name : excluded_subtrees_.dns_names) { + for (const auto &excluded_name : excluded_subtrees_.dns_names) { // When matching wildcard hosts against excluded subtrees, consider it a // match if the constraint would match any expansion of the wildcard. Eg, // *.bar.com should match a constraint of foo.bar.com. - if (DNSNameMatches(name, excluded_name, WILDCARD_PARTIAL_MATCH)) + if (DNSNameMatches(name, excluded_name, WILDCARD_PARTIAL_MATCH)) { return false; + } } // If permitted subtrees are not constrained, any name that is not excluded is // allowed. - if (!(permitted_subtrees_.present_name_types & GENERAL_NAME_DNS_NAME)) + if (!(permitted_subtrees_.present_name_types & GENERAL_NAME_DNS_NAME)) { return true; + } - for (const auto& permitted_name : permitted_subtrees_.dns_names) { + for (const auto &permitted_name : permitted_subtrees_.dns_names) { // When matching wildcard hosts against permitted subtrees, consider it a // match only if the constraint would match all expansions of the wildcard. // Eg, *.bar.com should match a constraint of bar.com, but not foo.bar.com. - if (DNSNameMatches(name, permitted_name, WILDCARD_FULL_MATCH)) + if (DNSNameMatches(name, permitted_name, WILDCARD_FULL_MATCH)) { return true; + } } return false; } bool NameConstraints::IsPermittedDirectoryName( - const der::Input& name_rdn_sequence) const { - for (const auto& excluded_name : excluded_subtrees_.directory_names) { - if (VerifyNameInSubtree(name_rdn_sequence, excluded_name)) + der::Input name_rdn_sequence) const { + for (const auto &excluded_name : excluded_subtrees_.directory_names) { + if (VerifyNameInSubtree(name_rdn_sequence, excluded_name)) { return false; + } } // If permitted subtrees are not constrained, any name that is not excluded is // allowed. - if (!(permitted_subtrees_.present_name_types & GENERAL_NAME_DIRECTORY_NAME)) + if (!(permitted_subtrees_.present_name_types & GENERAL_NAME_DIRECTORY_NAME)) { return true; + } - for (const auto& permitted_name : permitted_subtrees_.directory_names) { - if (VerifyNameInSubtree(name_rdn_sequence, permitted_name)) + for (const auto &permitted_name : permitted_subtrees_.directory_names) { + if (VerifyNameInSubtree(name_rdn_sequence, permitted_name)) { return true; + } } return false; } -bool NameConstraints::IsPermittedIP(const der::Input& ip) const { - for (const auto& excluded_ip : excluded_subtrees_.ip_address_ranges) { +bool NameConstraints::IsPermittedIP(der::Input ip) const { + for (const auto &excluded_ip : excluded_subtrees_.ip_address_ranges) { if (IPAddressMatchesWithNetmask(ip, excluded_ip.first, excluded_ip.second)) { return false; @@ -668,7 +697,7 @@ bool NameConstraints::IsPermittedIP(const der::Input& ip) const { return true; } - for (const auto& permitted_ip : permitted_subtrees_.ip_address_ranges) { + for (const auto &permitted_ip : permitted_subtrees_.ip_address_ranges) { if (IPAddressMatchesWithNetmask(ip, permitted_ip.first, permitted_ip.second)) { return true; @@ -678,4 +707,4 @@ bool NameConstraints::IsPermittedIP(const der::Input& ip) const { return false; } -} // namespace net +} // namespace bssl diff --git a/src/pki/name_constraints.h b/src/pki/name_constraints.h index 6bf780c..a025985 100644 --- a/src/pki/name_constraints.h +++ b/src/pki/name_constraints.h @@ -5,9 +5,9 @@ #ifndef BSSL_PKI_NAME_CONSTRAINTS_H_ #define BSSL_PKI_NAME_CONSTRAINTS_H_ -#include "fillins/openssl_util.h" #include <memory> +#include <openssl/base.h> #include "general_names.h" @@ -31,10 +31,14 @@ class OPENSSL_EXPORT NameConstraints { // marked critical. Returns nullptr if parsing the the extension failed. // The object may reference data from |extension_value|, so is only valid as // long as |extension_value| is. - static std::unique_ptr<NameConstraints> Create( - const der::Input& extension_value, - bool is_critical, - CertErrors* errors); + static std::unique_ptr<NameConstraints> Create(der::Input extension_value, + bool is_critical, + CertErrors *errors); + + // Create a NameConstraints object with only permitted names from the passed + // in |permitted_subtrees|. Should never return nullptr. + static std::unique_ptr<NameConstraints> CreateFromPermittedSubtrees( + GeneralNames permitted_subtrees); // Tests if a certificate is allowed by the name constraints. // |subject_rdn_sequence| should be the DER-encoded value of the subject's @@ -44,9 +48,9 @@ class OPENSSL_EXPORT NameConstraints { // If the certificate is not allowed, an error will be added to |errors|. // Note that this method does not check hostname or IP address in commonName, // which is deprecated (crbug.com/308330). - void IsPermittedCert(const der::Input& subject_rdn_sequence, - const GeneralNames* subject_alt_names, - CertErrors* errors) const; + void IsPermittedCert(der::Input subject_rdn_sequence, + const GeneralNames *subject_alt_names, + CertErrors *errors) const; // Returns true if the ASCII email address |name| is permitted. |name| should // be a "mailbox" as specified by RFC 2821, with the additional restriction @@ -64,10 +68,10 @@ class OPENSSL_EXPORT NameConstraints { // Returns true if the directoryName |name_rdn_sequence| is permitted. // |name_rdn_sequence| should be the DER-encoded RDNSequence value (not // including the Sequence tag.) - bool IsPermittedDirectoryName(const der::Input& name_rdn_sequence) const; + bool IsPermittedDirectoryName(der::Input name_rdn_sequence) const; // Returns true if the iPAddress |ip| is permitted. - bool IsPermittedIP(const der::Input& ip) const; + bool IsPermittedIP(der::Input ip) const; // Returns a bitfield of GeneralNameTypes of all the types constrained by this // NameConstraints. Name types that aren't supported will only be present if @@ -85,19 +89,18 @@ class OPENSSL_EXPORT NameConstraints { // either process the constraint or reject the certificate. int constrained_name_types() const { return constrained_name_types_; } - const GeneralNames& permitted_subtrees() const { return permitted_subtrees_; } - const GeneralNames& excluded_subtrees() const { return excluded_subtrees_; } + const GeneralNames &permitted_subtrees() const { return permitted_subtrees_; } + const GeneralNames &excluded_subtrees() const { return excluded_subtrees_; } private: - [[nodiscard]] bool Parse(const der::Input& extension_value, - bool is_critical, - CertErrors* errors); + [[nodiscard]] bool Parse(der::Input extension_value, bool is_critical, + CertErrors *errors); GeneralNames permitted_subtrees_; GeneralNames excluded_subtrees_; int constrained_name_types_ = GENERAL_NAME_NONE; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_NAME_CONSTRAINTS_H_ diff --git a/src/pki/name_constraints_unittest.cc b/src/pki/name_constraints_unittest.cc index 5de90e5..a715062 100644 --- a/src/pki/name_constraints_unittest.cc +++ b/src/pki/name_constraints_unittest.cc @@ -7,16 +7,16 @@ #include <array> #include <memory> +#include <gtest/gtest.h> #include "common_cert_errors.h" #include "test_helpers.h" -#include <gtest/gtest.h> namespace bssl { namespace { -::testing::AssertionResult LoadTestData(const char* token, - const std::string& basename, - std::string* result) { +::testing::AssertionResult LoadTestData(const char *token, + const std::string &basename, + std::string *result) { std::string path = "testdata/name_constraints_unittest/" + basename; const PemBlockMapping mappings[] = { @@ -26,26 +26,24 @@ namespace { return ReadTestDataFromPemFile(path, mappings); } -::testing::AssertionResult LoadTestName(const std::string& basename, - std::string* result) { +::testing::AssertionResult LoadTestName(const std::string &basename, + std::string *result) { return LoadTestData("NAME", basename, result); } -::testing::AssertionResult LoadTestNameConstraint(const std::string& basename, - std::string* result) { +::testing::AssertionResult LoadTestNameConstraint(const std::string &basename, + std::string *result) { return LoadTestData("NAME CONSTRAINTS", basename, result); } ::testing::AssertionResult LoadTestSubjectAltNameData( - const std::string& basename, - std::string* result) { + const std::string &basename, std::string *result) { return LoadTestData("SUBJECT ALTERNATIVE NAME", basename, result); } ::testing::AssertionResult LoadTestSubjectAltName( - const std::string& basename, - std::unique_ptr<GeneralNames>* result, - std::string* result_der) { + const std::string &basename, std::unique_ptr<GeneralNames> *result, + std::string *result_der) { ::testing::AssertionResult load_result = LoadTestSubjectAltNameData(basename, result_der); if (!load_result) { @@ -60,40 +58,29 @@ namespace { } ::testing::AssertionResult IsPermittedCert( - const NameConstraints* name_constraints, - const der::Input& subject_rdn_sequence, - const GeneralNames* subject_alt_names) { + const NameConstraints *name_constraints, der::Input subject_rdn_sequence, + const GeneralNames *subject_alt_names) { CertErrors errors; name_constraints->IsPermittedCert(subject_rdn_sequence, subject_alt_names, &errors); - if (!errors.ContainsAnyErrorWithSeverity(CertError::SEVERITY_HIGH)) + if (!errors.ContainsAnyErrorWithSeverity(CertError::SEVERITY_HIGH)) { return ::testing::AssertionSuccess(); - if (!errors.ContainsError(cert_errors::kNotPermittedByNameConstraints)) + } + if (!errors.ContainsError(cert_errors::kNotPermittedByNameConstraints)) { ADD_FAILURE() << "unexpected error " << errors.ToDebugString(); + } return ::testing::AssertionFailure(); } -std::array<uint8_t, 4> IPAddress(uint8_t b0, - uint8_t b1, - uint8_t b2, +std::array<uint8_t, 4> IPAddress(uint8_t b0, uint8_t b1, uint8_t b2, uint8_t b3) { return {b0, b1, b2, b3}; } -std::array<uint8_t, 16> IPAddress(uint8_t b0, - uint8_t b1, - uint8_t b2, - uint8_t b3, - uint8_t b4, - uint8_t b5, - uint8_t b6, - uint8_t b7, - uint8_t b8, - uint8_t b9, - uint8_t b10, - uint8_t b11, - uint8_t b12, - uint8_t b13, - uint8_t b14, +std::array<uint8_t, 16> IPAddress(uint8_t b0, uint8_t b1, uint8_t b2, + uint8_t b3, uint8_t b4, uint8_t b5, + uint8_t b6, uint8_t b7, uint8_t b8, + uint8_t b9, uint8_t b10, uint8_t b11, + uint8_t b12, uint8_t b13, uint8_t b14, uint8_t b15) { return {b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15}; } @@ -108,8 +95,7 @@ class ParseNameConstraints // Run the tests with the name constraints marked critical and non-critical. For // supported name types, the results should be the same for both. -INSTANTIATE_TEST_SUITE_P(InstantiationName, - ParseNameConstraints, +INSTANTIATE_TEST_SUITE_P(InstantiationName, ParseNameConstraints, ::testing::Values(true, false)); TEST_P(ParseNameConstraints, DNSNames) { @@ -1915,4 +1901,4 @@ TEST_P(ParseNameConstraints, IsPermittedCertSubjectIpAddresses) { nullptr /* subject_alt_names */)); } -} // namespace net +} // namespace bssl diff --git a/src/pki/nist_pkits_unittest.cc b/src/pki/nist_pkits_unittest.cc index d062de8..309cb64 100644 --- a/src/pki/nist_pkits_unittest.cc +++ b/src/pki/nist_pkits_unittest.cc @@ -28,8 +28,8 @@ const uint8_t kTestPolicy3[] = {0x60, 0x86, 0x48, 0x01, 0x65, const uint8_t kTestPolicy6[] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x02, 0x01, 0x30, 0x06}; -void SetPolicySetFromString(const char* const policy_names, - std::set<der::Input>* out) { +void SetPolicySetFromString(const char *const policy_names, + std::set<der::Input> *out) { out->clear(); std::istringstream stream(policy_names); for (std::string line; std::getline(stream, line, ',');) { @@ -69,7 +69,7 @@ PkitsTestInfo::PkitsTestInfo() { SetUserConstrainedPolicySet("NIST-test-policy-1"); } -PkitsTestInfo::PkitsTestInfo(const PkitsTestInfo& other) = default; +PkitsTestInfo::PkitsTestInfo(const PkitsTestInfo &other) = default; PkitsTestInfo::~PkitsTestInfo() = default; @@ -88,13 +88,13 @@ void PkitsTestInfo::SetInitialInhibitAnyPolicy(bool b) { b ? InitialAnyPolicyInhibit::kTrue : InitialAnyPolicyInhibit::kFalse; } -void PkitsTestInfo::SetInitialPolicySet(const char* const policy_names) { +void PkitsTestInfo::SetInitialPolicySet(const char *const policy_names) { SetPolicySetFromString(policy_names, &initial_policy_set); } void PkitsTestInfo::SetUserConstrainedPolicySet( - const char* const policy_names) { + const char *const policy_names) { SetPolicySetFromString(policy_names, &user_constrained_policy_set); } -} // namespace net +} // namespace bssl diff --git a/src/pki/nist_pkits_unittest.h b/src/pki/nist_pkits_unittest.h index 279fb29..5f9219c 100644 --- a/src/pki/nist_pkits_unittest.h +++ b/src/pki/nist_pkits_unittest.h @@ -7,9 +7,9 @@ #include <set> -#include "test_helpers.h" -#include "parse_values.h" #include <gtest/gtest.h> +#include "parse_values.h" +#include "test_helpers.h" namespace bssl { @@ -18,7 +18,7 @@ namespace bssl { struct PkitsTestInfo { // Default construction results in the "default settings". PkitsTestInfo(); - PkitsTestInfo(const PkitsTestInfo& other); + PkitsTestInfo(const PkitsTestInfo &other); ~PkitsTestInfo(); // Sets |initial_policy_set| to the specified policies. The @@ -26,14 +26,14 @@ struct PkitsTestInfo { // "anyPolicy" and "NIST-test-policy-1". // // If this isn't called, the default is "anyPolicy". - void SetInitialPolicySet(const char* const policy_names); + void SetInitialPolicySet(const char *const policy_names); // Sets |user_constrained_policy_set| to the specified policies. The // policies are described as comma-separated symbolic strings like // "anyPolicy" and "NIST-test-policy-1". // // If this isn't called, the default is "NIST-test-policy-1". - void SetUserConstrainedPolicySet(const char* const policy_names); + void SetUserConstrainedPolicySet(const char *const policy_names); void SetInitialExplicitPolicy(bool b); void SetInitialPolicyMappingInhibit(bool b); @@ -44,7 +44,7 @@ struct PkitsTestInfo { // ---------------- // The PKITS test number. For example, "4.1.1". - const char* test_number = nullptr; + const char *test_number = nullptr; // ---------------- // Inputs @@ -85,9 +85,9 @@ template <typename PkitsTestDelegate> class PkitsTest : public ::testing::Test { public: template <size_t num_certs, size_t num_crls> - void RunTest(const char* const (&cert_names)[num_certs], - const char* const (&crl_names)[num_crls], - const PkitsTestInfo& info) { + void RunTest(const char *const (&cert_names)[num_certs], + const char *const (&crl_names)[num_crls], + const PkitsTestInfo &info) { std::vector<std::string> cert_ders; for (const std::string s : cert_names) { cert_ders.push_back(bssl::ReadTestFileToString( @@ -95,8 +95,8 @@ class PkitsTest : public ::testing::Test { } std::vector<std::string> crl_ders; for (const std::string s : crl_names) { - crl_ders.push_back(bssl::ReadTestFileToString( - "testdata/nist-pkits/crls/" + s + ".crl")); + crl_ders.push_back( + bssl::ReadTestFileToString("testdata/nist-pkits/crls/" + s + ".crl")); } std::string_view test_number = info.test_number; @@ -144,6 +144,6 @@ class PkitsTest : public ::testing::Test { // Inline the generated test code: #include "testdata/nist-pkits/pkits_testcases-inl.h" -} // namespace net +} // namespace bssl #endif // BSSL_PKI_NIST_PKITS_UNITTEST_H_ diff --git a/src/pki/ocsp.cc b/src/pki/ocsp.cc index 5ccf2e2..03d6c21 100644 --- a/src/pki/ocsp.cc +++ b/src/pki/ocsp.cc @@ -4,6 +4,11 @@ #include "ocsp.h" +#include <openssl/bytestring.h> +#include <openssl/digest.h> +#include <openssl/mem.h> +#include <openssl/pool.h> +#include <openssl/sha.h> #include "cert_errors.h" #include "extended_key_usage.h" #include "parsed_certificate.h" @@ -11,11 +16,6 @@ #include "string_util.h" #include "verify_name_match.h" #include "verify_signed_data.h" -#include <openssl/bytestring.h> -#include <openssl/digest.h> -#include <openssl/mem.h> -#include <openssl/pool.h> -#include <openssl/sha.h> namespace bssl { @@ -37,28 +37,37 @@ OCSPResponse::~OCSPResponse() = default; // issuerKeyHash OCTET STRING, -- Hash of issuer's public key // serialNumber CertificateSerialNumber // } -bool ParseOCSPCertID(const der::Input& raw_tlv, OCSPCertID* out) { +bool ParseOCSPCertID(der::Input raw_tlv, OCSPCertID *out) { der::Parser outer_parser(raw_tlv); der::Parser parser; - if (!outer_parser.ReadSequence(&parser)) + if (!outer_parser.ReadSequence(&parser)) { return false; - if (outer_parser.HasMore()) + } + if (outer_parser.HasMore()) { return false; + } der::Input sigalg_tlv; - if (!parser.ReadRawTLV(&sigalg_tlv)) + if (!parser.ReadRawTLV(&sigalg_tlv)) { return false; - if (!ParseHashAlgorithm(sigalg_tlv, &(out->hash_algorithm))) + } + if (!ParseHashAlgorithm(sigalg_tlv, &out->hash_algorithm)) { return false; - if (!parser.ReadTag(der::kOctetString, &(out->issuer_name_hash))) + } + if (!parser.ReadTag(CBS_ASN1_OCTETSTRING, &out->issuer_name_hash)) { return false; - if (!parser.ReadTag(der::kOctetString, &(out->issuer_key_hash))) + } + if (!parser.ReadTag(CBS_ASN1_OCTETSTRING, &out->issuer_key_hash)) { return false; - if (!parser.ReadTag(der::kInteger, &(out->serial_number))) + } + if (!parser.ReadTag(CBS_ASN1_INTEGER, &out->serial_number)) { return false; + } CertErrors errors; - if (!VerifySerialNumber(out->serial_number, false /*warnings_only*/, &errors)) + if (!VerifySerialNumber(out->serial_number, false /*warnings_only*/, + &errors)) { return false; + } return !parser.HasMore(); } @@ -73,34 +82,40 @@ namespace { // revocationTime GeneralizedTime, // revocationReason [0] EXPLICIT CRLReason OPTIONAL // } -bool ParseRevokedInfo(const der::Input& raw_tlv, OCSPCertStatus* out) { +bool ParseRevokedInfo(der::Input raw_tlv, OCSPCertStatus *out) { der::Parser parser(raw_tlv); - if (!parser.ReadGeneralizedTime(&(out->revocation_time))) + if (!parser.ReadGeneralizedTime(&(out->revocation_time))) { return false; + } der::Input reason_input; - if (!parser.ReadOptionalTag(der::ContextSpecificConstructed(0), &reason_input, - &(out->has_reason))) { + if (!parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &reason_input, + &(out->has_reason))) { return false; } if (out->has_reason) { der::Parser reason_parser(reason_input); der::Input reason_value_input; uint8_t reason_value; - if (!reason_parser.ReadTag(der::kEnumerated, &reason_value_input)) + if (!reason_parser.ReadTag(CBS_ASN1_ENUMERATED, &reason_value_input)) { return false; - if (!der::ParseUint8(reason_value_input, &reason_value)) + } + if (!der::ParseUint8(reason_value_input, &reason_value)) { return false; + } if (reason_value > static_cast<uint8_t>(OCSPCertStatus::RevocationReason::LAST)) { return false; } out->revocation_reason = static_cast<OCSPCertStatus::RevocationReason>(reason_value); - if (out->revocation_reason == OCSPCertStatus::RevocationReason::UNUSED) + if (out->revocation_reason == OCSPCertStatus::RevocationReason::UNUSED) { return false; - if (reason_parser.HasMore()) + } + if (reason_parser.HasMore()) { return false; + } } return !parser.HasMore(); } @@ -116,21 +131,24 @@ bool ParseRevokedInfo(const der::Input& raw_tlv, OCSPCertStatus* out) { // } // // UnknownInfo ::= NULL -bool ParseCertStatus(const der::Input& raw_tlv, OCSPCertStatus* out) { +bool ParseCertStatus(der::Input raw_tlv, OCSPCertStatus *out) { der::Parser parser(raw_tlv); - der::Tag status_tag; + CBS_ASN1_TAG status_tag; der::Input status; - if (!parser.ReadTagAndValue(&status_tag, &status)) + if (!parser.ReadTagAndValue(&status_tag, &status)) { return false; + } out->has_reason = false; - if (status_tag == der::ContextSpecificPrimitive(0)) { + if (status_tag == (CBS_ASN1_CONTEXT_SPECIFIC | 0)) { out->status = OCSPRevocationStatus::GOOD; - } else if (status_tag == der::ContextSpecificConstructed(1)) { + } else if (status_tag == + (CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 1)) { out->status = OCSPRevocationStatus::REVOKED; - if (!ParseRevokedInfo(status, out)) + if (!ParseRevokedInfo(status, out)) { return false; - } else if (status_tag == der::ContextSpecificPrimitive(2)) { + } + } else if (status_tag == (CBS_ASN1_CONTEXT_SPECIFIC | 2)) { out->status = OCSPRevocationStatus::UNKNOWN; } else { return false; @@ -141,15 +159,14 @@ bool ParseCertStatus(const der::Input& raw_tlv, OCSPCertStatus* out) { // Writes the hash of |value| as an OCTET STRING to |cbb|, using |hash_type| as // the algorithm. Returns true on success. -bool AppendHashAsOctetString(const EVP_MD* hash_type, - CBB* cbb, - const der::Input& value) { +bool AppendHashAsOctetString(const EVP_MD *hash_type, CBB *cbb, + der::Input value) { CBB octet_string; unsigned hash_len; uint8_t hash_buffer[EVP_MAX_MD_SIZE]; return CBB_add_asn1(cbb, &octet_string, CBS_ASN1_OCTETSTRING) && - EVP_Digest(value.UnsafeData(), value.Length(), hash_buffer, &hash_len, + EVP_Digest(value.data(), value.size(), hash_buffer, &hash_len, hash_type, nullptr) && CBB_add_bytes(&octet_string, hash_buffer, hash_len) && CBB_flush(cbb); } @@ -163,40 +180,49 @@ bool AppendHashAsOctetString(const EVP_MD* hash_type, // nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, // singleExtensions [1] EXPLICIT Extensions OPTIONAL // } -bool ParseOCSPSingleResponse(const der::Input& raw_tlv, - OCSPSingleResponse* out) { +bool ParseOCSPSingleResponse(der::Input raw_tlv, OCSPSingleResponse *out) { der::Parser outer_parser(raw_tlv); der::Parser parser; - if (!outer_parser.ReadSequence(&parser)) + if (!outer_parser.ReadSequence(&parser)) { return false; - if (outer_parser.HasMore()) + } + if (outer_parser.HasMore()) { return false; + } - if (!parser.ReadRawTLV(&(out->cert_id_tlv))) + if (!parser.ReadRawTLV(&(out->cert_id_tlv))) { return false; + } der::Input status_tlv; - if (!parser.ReadRawTLV(&status_tlv)) + if (!parser.ReadRawTLV(&status_tlv)) { return false; - if (!ParseCertStatus(status_tlv, &(out->cert_status))) + } + if (!ParseCertStatus(status_tlv, &(out->cert_status))) { return false; - if (!parser.ReadGeneralizedTime(&(out->this_update))) + } + if (!parser.ReadGeneralizedTime(&(out->this_update))) { return false; + } der::Input next_update_input; - if (!parser.ReadOptionalTag(der::ContextSpecificConstructed(0), - &next_update_input, &(out->has_next_update))) { + if (!parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, + &next_update_input, &(out->has_next_update))) { return false; } if (out->has_next_update) { der::Parser next_update_parser(next_update_input); - if (!next_update_parser.ReadGeneralizedTime(&(out->next_update))) + if (!next_update_parser.ReadGeneralizedTime(&(out->next_update))) { return false; - if (next_update_parser.HasMore()) + } + if (next_update_parser.HasMore()) { return false; + } } - if (!parser.ReadOptionalTag(der::ContextSpecificConstructed(1), - &(out->extensions), &(out->has_extensions))) { + if (!parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 1, + &(out->extensions), &(out->has_extensions))) { return false; } @@ -212,26 +238,29 @@ namespace { // byName [1] Name, // byKey [2] KeyHash // } -bool ParseResponderID(const der::Input& raw_tlv, - OCSPResponseData::ResponderID* out) { +bool ParseResponderID(der::Input raw_tlv, OCSPResponseData::ResponderID *out) { der::Parser parser(raw_tlv); - der::Tag id_tag; + CBS_ASN1_TAG id_tag; der::Input id_input; - if (!parser.ReadTagAndValue(&id_tag, &id_input)) + if (!parser.ReadTagAndValue(&id_tag, &id_input)) { return false; + } - if (id_tag == der::ContextSpecificConstructed(1)) { + if (id_tag == (CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 1)) { out->type = OCSPResponseData::ResponderType::NAME; out->name = id_input; - } else if (id_tag == der::ContextSpecificConstructed(2)) { + } else if (id_tag == (CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 2)) { der::Parser key_parser(id_input); der::Input key_hash; - if (!key_parser.ReadTag(der::kOctetString, &key_hash)) + if (!key_parser.ReadTag(CBS_ASN1_OCTETSTRING, &key_hash)) { return false; - if (key_parser.HasMore()) + } + if (key_parser.HasMore()) { return false; - if (key_hash.Length() != SHA_DIGEST_LENGTH) + } + if (key_hash.size() != SHA_DIGEST_LENGTH) { return false; + } out->type = OCSPResponseData::ResponderType::KEY_HASH; out->key_hash = key_hash; @@ -250,18 +279,21 @@ bool ParseResponderID(const der::Input& raw_tlv, // responses SEQUENCE OF SingleResponse, // responseExtensions [1] EXPLICIT Extensions OPTIONAL // } -bool ParseOCSPResponseData(const der::Input& raw_tlv, OCSPResponseData* out) { +bool ParseOCSPResponseData(der::Input raw_tlv, OCSPResponseData *out) { der::Parser outer_parser(raw_tlv); der::Parser parser; - if (!outer_parser.ReadSequence(&parser)) + if (!outer_parser.ReadSequence(&parser)) { return false; - if (outer_parser.HasMore()) + } + if (outer_parser.HasMore()) { return false; + } der::Input version_input; bool version_present; - if (!parser.ReadOptionalTag(der::ContextSpecificConstructed(0), - &version_input, &version_present)) { + if (!parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &version_input, + &version_present)) { return false; } @@ -270,38 +302,47 @@ bool ParseOCSPResponseData(const der::Input& raw_tlv, OCSPResponseData* out) { // TODO: Add warning about non-strict parsing. if (version_present) { der::Parser version_parser(version_input); - if (!version_parser.ReadUint8(&(out->version))) + if (!version_parser.ReadUint8(&(out->version))) { return false; - if (version_parser.HasMore()) + } + if (version_parser.HasMore()) { return false; + } } else { out->version = 0; } - if (out->version != 0) + if (out->version != 0) { return false; + } der::Input responder_input; - if (!parser.ReadRawTLV(&responder_input)) + if (!parser.ReadRawTLV(&responder_input)) { return false; - if (!ParseResponderID(responder_input, &(out->responder_id))) + } + if (!ParseResponderID(responder_input, &(out->responder_id))) { return false; - if (!parser.ReadGeneralizedTime(&(out->produced_at))) + } + if (!parser.ReadGeneralizedTime(&(out->produced_at))) { return false; + } der::Parser responses_parser; - if (!parser.ReadSequence(&responses_parser)) + if (!parser.ReadSequence(&responses_parser)) { return false; + } out->responses.clear(); while (responses_parser.HasMore()) { der::Input single_response; - if (!responses_parser.ReadRawTLV(&single_response)) + if (!responses_parser.ReadRawTLV(&single_response)) { return false; + } out->responses.push_back(single_response); } - if (!parser.ReadOptionalTag(der::ContextSpecificConstructed(1), - &(out->extensions), &(out->has_extensions))) { + if (!parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 1, + &(out->extensions), &(out->has_extensions))) { return false; } @@ -320,32 +361,39 @@ namespace { // signature BIT STRING, // certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL // } -bool ParseBasicOCSPResponse(const der::Input& raw_tlv, OCSPResponse* out) { +bool ParseBasicOCSPResponse(der::Input raw_tlv, OCSPResponse *out) { der::Parser outer_parser(raw_tlv); der::Parser parser; - if (!outer_parser.ReadSequence(&parser)) + if (!outer_parser.ReadSequence(&parser)) { return false; - if (outer_parser.HasMore()) + } + if (outer_parser.HasMore()) { return false; + } - if (!parser.ReadRawTLV(&(out->data))) + if (!parser.ReadRawTLV(&(out->data))) { return false; + } der::Input sigalg_tlv; - if (!parser.ReadRawTLV(&sigalg_tlv)) + if (!parser.ReadRawTLV(&sigalg_tlv)) { return false; + } // TODO(crbug.com/634443): Propagate the errors. std::optional<SignatureAlgorithm> sigalg = ParseSignatureAlgorithm(sigalg_tlv); - if (!sigalg) + if (!sigalg) { return false; + } out->signature_algorithm = sigalg.value(); std::optional<der::BitString> signature = parser.ReadBitString(); - if (!signature) + if (!signature) { return false; + } out->signature = signature.value(); der::Input certs_input; - if (!parser.ReadOptionalTag(der::ContextSpecificConstructed(0), &certs_input, - &(out->has_certs))) { + if (!parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &certs_input, + &(out->has_certs))) { return false; } @@ -353,14 +401,17 @@ bool ParseBasicOCSPResponse(const der::Input& raw_tlv, OCSPResponse* out) { if (out->has_certs) { der::Parser certs_seq_parser(certs_input); der::Parser certs_parser; - if (!certs_seq_parser.ReadSequence(&certs_parser)) + if (!certs_seq_parser.ReadSequence(&certs_parser)) { return false; - if (certs_seq_parser.HasMore()) + } + if (certs_seq_parser.HasMore()) { return false; + } while (certs_parser.HasMore()) { der::Input cert_tlv; - if (!certs_parser.ReadRawTLV(&cert_tlv)) + if (!certs_parser.ReadRawTLV(&cert_tlv)) { return false; + } out->certs.push_back(cert_tlv); } } @@ -379,55 +430,68 @@ bool ParseBasicOCSPResponse(const der::Input& raw_tlv, OCSPResponse* out) { // responseType OBJECT IDENTIFIER, // response OCTET STRING // } -bool ParseOCSPResponse(const der::Input& raw_tlv, OCSPResponse* out) { +bool ParseOCSPResponse(der::Input raw_tlv, OCSPResponse *out) { der::Parser outer_parser(raw_tlv); der::Parser parser; - if (!outer_parser.ReadSequence(&parser)) + if (!outer_parser.ReadSequence(&parser)) { return false; - if (outer_parser.HasMore()) + } + if (outer_parser.HasMore()) { return false; + } der::Input response_status_input; uint8_t response_status; - if (!parser.ReadTag(der::kEnumerated, &response_status_input)) + if (!parser.ReadTag(CBS_ASN1_ENUMERATED, &response_status_input)) { return false; - if (!der::ParseUint8(response_status_input, &response_status)) + } + if (!der::ParseUint8(response_status_input, &response_status)) { return false; + } if (response_status > static_cast<uint8_t>(OCSPResponse::ResponseStatus::LAST)) { return false; } out->status = static_cast<OCSPResponse::ResponseStatus>(response_status); - if (out->status == OCSPResponse::ResponseStatus::UNUSED) + if (out->status == OCSPResponse::ResponseStatus::UNUSED) { return false; + } if (out->status == OCSPResponse::ResponseStatus::SUCCESSFUL) { der::Parser outer_bytes_parser; der::Parser bytes_parser; - if (!parser.ReadConstructed(der::ContextSpecificConstructed(0), - &outer_bytes_parser)) { + if (!parser.ReadConstructed( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, + &outer_bytes_parser)) { return false; } - if (!outer_bytes_parser.ReadSequence(&bytes_parser)) + if (!outer_bytes_parser.ReadSequence(&bytes_parser)) { return false; - if (outer_bytes_parser.HasMore()) + } + if (outer_bytes_parser.HasMore()) { return false; + } der::Input type_oid; - if (!bytes_parser.ReadTag(der::kOid, &type_oid)) + if (!bytes_parser.ReadTag(CBS_ASN1_OBJECT, &type_oid)) { return false; - if (type_oid != der::Input(kBasicOCSPResponseOid)) + } + if (type_oid != der::Input(kBasicOCSPResponseOid)) { return false; + } // As per RFC 6960 Section 4.2.1, the value of |response| SHALL be the DER // encoding of BasicOCSPResponse. der::Input response; - if (!bytes_parser.ReadTag(der::kOctetString, &response)) + if (!bytes_parser.ReadTag(CBS_ASN1_OCTETSTRING, &response)) { return false; - if (!ParseBasicOCSPResponse(response, out)) + } + if (!ParseBasicOCSPResponse(response, out)) { return false; - if (bytes_parser.HasMore()) + } + if (bytes_parser.HasMore()) { return false; + } } return !parser.HasMore(); @@ -436,13 +500,11 @@ bool ParseOCSPResponse(const der::Input& raw_tlv, OCSPResponse* out) { namespace { // Checks that the |type| hash of |value| is equal to |hash| -bool VerifyHash(const EVP_MD* type, - const der::Input& hash, - const der::Input& value) { +bool VerifyHash(const EVP_MD *type, der::Input hash, der::Input value) { unsigned value_hash_len; uint8_t value_hash[EVP_MAX_MD_SIZE]; - if (!EVP_Digest(value.UnsafeData(), value.Length(), value_hash, - &value_hash_len, type, nullptr)) { + if (!EVP_Digest(value.data(), value.size(), value_hash, &value_hash_len, type, + nullptr)) { return false; } @@ -464,10 +526,10 @@ bool VerifyHash(const EVP_MD* type, // algorithm OBJECT IDENTIFIER, // parameters ANY DEFINED BY algorithm OPTIONAL } // -bool GetSubjectPublicKeyBytes(const der::Input& spki_tlv, der::Input* spk_tlv) { +bool GetSubjectPublicKeyBytes(der::Input spki_tlv, der::Input *spk_tlv) { CBS outer, inner, alg, spk; uint8_t unused_bit_count; - CBS_init(&outer, spki_tlv.UnsafeData(), spki_tlv.Length()); + CBS_init(&outer, spki_tlv.data(), spki_tlv.size()); // The subjectPublicKey field includes the unused bit count. For this // application, the unused bit count must be zero, and is not included in // the result. We extract the subjectPubicKey bit string, verify the first @@ -484,10 +546,9 @@ bool GetSubjectPublicKeyBytes(const der::Input& spki_tlv, der::Input* spk_tlv) { // Checks the OCSPCertID |id| identifies |certificate|. bool CheckCertIDMatchesCertificate( - const OCSPCertID& id, - const ParsedCertificate* certificate, - const ParsedCertificate* issuer_certificate) { - const EVP_MD* type = nullptr; + const OCSPCertID &id, const ParsedCertificate *certificate, + const ParsedCertificate *issuer_certificate) { + const EVP_MD *type = nullptr; switch (id.hash_algorithm) { case DigestAlgorithm::Md2: case DigestAlgorithm::Md4: @@ -508,15 +569,18 @@ bool CheckCertIDMatchesCertificate( break; } - if (!VerifyHash(type, id.issuer_name_hash, certificate->tbs().issuer_tlv)) + if (!VerifyHash(type, id.issuer_name_hash, certificate->tbs().issuer_tlv)) { return false; + } der::Input key_tlv; - if (!GetSubjectPublicKeyBytes(issuer_certificate->tbs().spki_tlv, &key_tlv)) + if (!GetSubjectPublicKeyBytes(issuer_certificate->tbs().spki_tlv, &key_tlv)) { return false; + } - if (!VerifyHash(type, id.issuer_key_hash, key_tlv)) + if (!VerifyHash(type, id.issuer_key_hash, key_tlv)) { return false; + } return id.serial_number == certificate->tbs().serial_number; } @@ -538,7 +602,7 @@ std::shared_ptr<const ParsedCertificate> OCSPParseCertificate( CertErrors errors; return ParsedCertificate::Create( bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(der.data()), der.size(), nullptr)), + reinterpret_cast<const uint8_t *>(der.data()), der.size(), nullptr)), {}, &errors); } @@ -546,22 +610,23 @@ std::shared_ptr<const ParsedCertificate> OCSPParseCertificate( // by verifying the name matches that of the certificate or that the hash // matches the certificate's public key hash (RFC 6960, 4.2.2.3). [[nodiscard]] bool CheckResponderIDMatchesCertificate( - const OCSPResponseData::ResponderID& id, - const ParsedCertificate* cert) { + const OCSPResponseData::ResponderID &id, const ParsedCertificate *cert) { switch (id.type) { case OCSPResponseData::ResponderType::NAME: { der::Input name_rdn; der::Input cert_rdn; - if (!der::Parser(id.name).ReadTag(der::kSequence, &name_rdn) || + if (!der::Parser(id.name).ReadTag(CBS_ASN1_SEQUENCE, &name_rdn) || !der::Parser(cert->tbs().subject_tlv) - .ReadTag(der::kSequence, &cert_rdn)) + .ReadTag(CBS_ASN1_SEQUENCE, &cert_rdn)) { return false; + } return VerifyNameMatch(name_rdn, cert_rdn); } case OCSPResponseData::ResponderType::KEY_HASH: { der::Input key; - if (!GetSubjectPublicKeyBytes(cert->tbs().spki_tlv, &key)) + if (!GetSubjectPublicKeyBytes(cert->tbs().spki_tlv, &key)) { return false; + } return VerifyHash(EVP_sha1(), id.key_hash, key); } } @@ -579,8 +644,8 @@ std::shared_ptr<const ParsedCertificate> OCSPParseCertificate( // signature and EKU. Can full RFC 5280 validation be used, or are there // compatibility concerns? [[nodiscard]] bool VerifyAuthorizedResponderCert( - const ParsedCertificate* responder_certificate, - const ParsedCertificate* issuer_certificate) { + const ParsedCertificate *responder_certificate, + const ParsedCertificate *issuer_certificate) { // The Authorized Responder must be directly signed by the issuer of the // certificate being checked. // TODO(eroman): Must check the signature algorithm against policy. @@ -595,20 +660,21 @@ std::shared_ptr<const ParsedCertificate> OCSPParseCertificate( // The Authorized Responder must include the value id-kp-OCSPSigning as // part of the extended key usage extension. - if (!responder_certificate->has_extended_key_usage()) + if (!responder_certificate->has_extended_key_usage()) { return false; + } - for (const auto& key_purpose_oid : + for (const auto &key_purpose_oid : responder_certificate->extended_key_usage()) { - if (key_purpose_oid == der::Input(kOCSPSigning)) + if (key_purpose_oid == der::Input(kOCSPSigning)) { return true; + } } return false; } [[nodiscard]] bool VerifyOCSPResponseSignatureGivenCert( - const OCSPResponse& response, - const ParsedCertificate* cert) { + const OCSPResponse &response, const ParsedCertificate *cert) { // TODO(eroman): Must check the signature algorithm against policy. return VerifySignedData(response.signature_algorithm, response.data, response.signature, cert->tbs().spki_tlv, @@ -619,9 +685,8 @@ std::shared_ptr<const ParsedCertificate> OCSPParseCertificate( // |issuer_certificate|, or an authorized responder issued by // |issuer_certificate| for OCSP signing. [[nodiscard]] bool VerifyOCSPResponseSignature( - const OCSPResponse& response, - const OCSPResponseData& response_data, - const ParsedCertificate* issuer_certificate) { + const OCSPResponse &response, const OCSPResponseData &response_data, + const ParsedCertificate *issuer_certificate) { // In order to verify the OCSP signature, a valid responder matching the OCSP // Responder ID must be located (RFC 6960, 4.2.2.2). The responder is allowed // to be either the certificate issuer or a delegated authority directly @@ -637,13 +702,14 @@ std::shared_ptr<const ParsedCertificate> OCSPParseCertificate( // (1) Matches the OCSP Responder ID. // (2) Has been given authority for OCSP signing by |issuer_certificate|. // (3) Has signed the OCSP response using its public key. - for (const auto& responder_cert_tlv : response.certs) { + for (const auto &responder_cert_tlv : response.certs) { std::shared_ptr<const ParsedCertificate> cur_responder_certificate = - OCSPParseCertificate(responder_cert_tlv.AsStringView()); + OCSPParseCertificate(BytesAsStringView(responder_cert_tlv)); // If failed parsing the certificate, keep looking. - if (!cur_responder_certificate) + if (!cur_responder_certificate) { continue; + } // If the certificate doesn't match the OCSP's responder ID, keep looking. if (!CheckResponderIDMatchesCertificate(response_data.responder_id, @@ -674,15 +740,15 @@ std::shared_ptr<const ParsedCertificate> OCSPParseCertificate( // Parse ResponseData and return false if any unhandled critical extensions are // found. No known critical ResponseData extensions exist. bool ParseOCSPResponseDataExtensions( - const der::Input& response_extensions, - OCSPVerifyResult::ResponseStatus* response_details) { + der::Input response_extensions, + OCSPVerifyResult::ResponseStatus *response_details) { std::map<der::Input, ParsedExtension> extensions; if (!ParseExtensions(response_extensions, &extensions)) { *response_details = OCSPVerifyResult::PARSE_RESPONSE_DATA_ERROR; return false; } - for (const auto& ext : extensions) { + for (const auto &ext : extensions) { // TODO: handle ResponseData extensions if (ext.second.critical) { @@ -699,8 +765,8 @@ bool ParseOCSPResponseDataExtensions( // to be marked critical, but since it is handled by Chrome, we will overlook // the flag setting. bool ParseOCSPSingleResponseExtensions( - const der::Input& single_extensions, - OCSPVerifyResult::ResponseStatus* response_details) { + der::Input single_extensions, + OCSPVerifyResult::ResponseStatus *response_details) { std::map<der::Input, ParsedExtension> extensions; if (!ParseExtensions(single_extensions, &extensions)) { *response_details = OCSPVerifyResult::PARSE_RESPONSE_DATA_ERROR; @@ -714,10 +780,11 @@ bool ParseOCSPSingleResponseExtensions( 0xD6, 0x79, 0x02, 0x04, 0x05}; der::Input ct_ext_oid(ct_ocsp_ext_oid); - for (const auto& ext : extensions) { + for (const auto &ext : extensions) { // The CT OCSP extension is handled in ct::ExtractSCTListFromOCSPResponse - if (ext.second.oid == ct_ext_oid) + if (ext.second.oid == ct_ext_oid) { continue; + } // TODO: handle SingleResponse extensions @@ -732,16 +799,14 @@ bool ParseOCSPSingleResponseExtensions( // Loops through the OCSPSingleResponses to find the best match for |cert|. OCSPRevocationStatus GetRevocationStatusForCert( - const OCSPResponseData& response_data, - const ParsedCertificate* cert, - const ParsedCertificate* issuer_certificate, - int64_t verify_time_epoch_seconds, - std::optional<int64_t> max_age_seconds, - OCSPVerifyResult::ResponseStatus* response_details) { + const OCSPResponseData &response_data, const ParsedCertificate *cert, + const ParsedCertificate *issuer_certificate, + int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds, + OCSPVerifyResult::ResponseStatus *response_details) { OCSPRevocationStatus result = OCSPRevocationStatus::UNKNOWN; *response_details = OCSPVerifyResult::NO_MATCHING_RESPONSE; - for (const auto& single_response_der : response_data.responses) { + for (const auto &single_response_der : response_data.responses) { // In the common case, there should only be one SingleResponse in the // ResponseData (matching the certificate requested and used on this // connection). However, it is possible for the OCSP responder to provide @@ -750,8 +815,9 @@ OCSPRevocationStatus GetRevocationStatusForCert( // certificate. A SingleResponse matches a certificate if it has the same // serial number, issuer name (hash), and issuer public key (hash). OCSPSingleResponse single_response; - if (!ParseOCSPSingleResponse(single_response_der, &single_response)) + if (!ParseOCSPSingleResponse(single_response_der, &single_response)) { return OCSPRevocationStatus::UNKNOWN; + } // Reject unhandled critical extensions in SingleResponse if (single_response.has_extensions && @@ -761,10 +827,12 @@ OCSPRevocationStatus GetRevocationStatusForCert( } OCSPCertID cert_id; - if (!ParseOCSPCertID(single_response.cert_id_tlv, &cert_id)) + if (!ParseOCSPCertID(single_response.cert_id_tlv, &cert_id)) { return OCSPRevocationStatus::UNKNOWN; - if (!CheckCertIDMatchesCertificate(cert_id, cert, issuer_certificate)) + } + if (!CheckCertIDMatchesCertificate(cert_id, cert, issuer_certificate)) { continue; + } // The SingleResponse matches the certificate, but may be out of date. Out // of date responses are noted seperate from responses with mismatched @@ -776,8 +844,9 @@ OCSPRevocationStatus GetRevocationStatusForCert( ? &single_response.next_update : nullptr, verify_time_epoch_seconds, max_age_seconds)) { - if (*response_details != OCSPVerifyResult::PROVIDED) + if (*response_details != OCSPVerifyResult::PROVIDED) { *response_details = OCSPVerifyResult::INVALID_DATE; + } continue; } @@ -795,14 +864,12 @@ OCSPRevocationStatus GetRevocationStatusForCert( } OCSPRevocationStatus CheckOCSP( - std::string_view raw_response, - std::string_view certificate_der, - const ParsedCertificate* certificate, + std::string_view raw_response, std::string_view certificate_der, + const ParsedCertificate *certificate, std::string_view issuer_certificate_der, - const ParsedCertificate* issuer_certificate, - int64_t verify_time_epoch_seconds, - std::optional<int64_t> max_age_seconds, - OCSPVerifyResult::ResponseStatus* response_details) { + const ParsedCertificate *issuer_certificate, + int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds, + OCSPVerifyResult::ResponseStatus *response_details) { *response_details = OCSPVerifyResult::NOT_CHECKED; if (raw_response.empty()) { @@ -899,33 +966,29 @@ OCSPRevocationStatus CheckOCSP( } // namespace OCSPRevocationStatus CheckOCSP( - std::string_view raw_response, - std::string_view certificate_der, - std::string_view issuer_certificate_der, - int64_t verify_time_epoch_seconds, + std::string_view raw_response, std::string_view certificate_der, + std::string_view issuer_certificate_der, int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds, - OCSPVerifyResult::ResponseStatus* response_details) { + OCSPVerifyResult::ResponseStatus *response_details) { return CheckOCSP(raw_response, certificate_der, nullptr, issuer_certificate_der, nullptr, verify_time_epoch_seconds, max_age_seconds, response_details); } OCSPRevocationStatus CheckOCSP( - std::string_view raw_response, - const ParsedCertificate* certificate, - const ParsedCertificate* issuer_certificate, - int64_t verify_time_epoch_seconds, - std::optional<int64_t> max_age_seconds, - OCSPVerifyResult::ResponseStatus* response_details) { + std::string_view raw_response, const ParsedCertificate *certificate, + const ParsedCertificate *issuer_certificate, + int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds, + OCSPVerifyResult::ResponseStatus *response_details) { return CheckOCSP(raw_response, std::string_view(), certificate, std::string_view(), issuer_certificate, verify_time_epoch_seconds, max_age_seconds, response_details); } -bool CreateOCSPRequest(const ParsedCertificate* cert, - const ParsedCertificate* issuer, - std::vector<uint8_t>* request_der) { +bool CreateOCSPRequest(const ParsedCertificate *cert, + const ParsedCertificate *issuer, + std::vector<uint8_t> *request_der) { request_der->clear(); bssl::ScopedCBB cbb; @@ -935,8 +998,9 @@ bool CreateOCSPRequest(const ParsedCertificate* cert, // number doesn't matter for correctness. const size_t kInitialBufferSize = 100; - if (!CBB_init(cbb.get(), kInitialBufferSize)) + if (!CBB_init(cbb.get(), kInitialBufferSize)) { return false; + } // OCSPRequest ::= SEQUENCE { // tbsRequest TBSRequest, @@ -948,29 +1012,34 @@ bool CreateOCSPRequest(const ParsedCertificate* cert, // requestList SEQUENCE OF Request, // requestExtensions [2] EXPLICIT Extensions OPTIONAL } CBB ocsp_request; - if (!CBB_add_asn1(cbb.get(), &ocsp_request, CBS_ASN1_SEQUENCE)) + if (!CBB_add_asn1(cbb.get(), &ocsp_request, CBS_ASN1_SEQUENCE)) { return false; + } CBB tbs_request; - if (!CBB_add_asn1(&ocsp_request, &tbs_request, CBS_ASN1_SEQUENCE)) + if (!CBB_add_asn1(&ocsp_request, &tbs_request, CBS_ASN1_SEQUENCE)) { return false; + } // "version", "requestorName", and "requestExtensions" are omitted. CBB request_list; - if (!CBB_add_asn1(&tbs_request, &request_list, CBS_ASN1_SEQUENCE)) + if (!CBB_add_asn1(&tbs_request, &request_list, CBS_ASN1_SEQUENCE)) { return false; + } CBB request; - if (!CBB_add_asn1(&request_list, &request, CBS_ASN1_SEQUENCE)) + if (!CBB_add_asn1(&request_list, &request, CBS_ASN1_SEQUENCE)) { return false; + } // Request ::= SEQUENCE { // reqCert CertID, // singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL } CBB req_cert; - if (!CBB_add_asn1(&request, &req_cert, CBS_ASN1_SEQUENCE)) + if (!CBB_add_asn1(&request, &req_cert, CBS_ASN1_SEQUENCE)) { return false; + } // CertID ::= SEQUENCE { // hashAlgorithm AlgorithmIdentifier, @@ -979,29 +1048,33 @@ bool CreateOCSPRequest(const ParsedCertificate* cert, // serialNumber CertificateSerialNumber } // TODO(eroman): Don't use SHA1. - const EVP_MD* md = EVP_sha1(); - if (!EVP_marshal_digest_algorithm(&req_cert, md)) + const EVP_MD *md = EVP_sha1(); + if (!EVP_marshal_digest_algorithm(&req_cert, md)) { return false; + } AppendHashAsOctetString(md, &req_cert, issuer->tbs().subject_tlv); der::Input key_tlv; - if (!GetSubjectPublicKeyBytes(issuer->tbs().spki_tlv, &key_tlv)) + if (!GetSubjectPublicKeyBytes(issuer->tbs().spki_tlv, &key_tlv)) { return false; + } AppendHashAsOctetString(md, &req_cert, key_tlv); CBB serial_number; - if (!CBB_add_asn1(&req_cert, &serial_number, CBS_ASN1_INTEGER)) + if (!CBB_add_asn1(&req_cert, &serial_number, CBS_ASN1_INTEGER)) { return false; - if (!CBB_add_bytes(&serial_number, cert->tbs().serial_number.UnsafeData(), - cert->tbs().serial_number.Length())) { + } + if (!CBB_add_bytes(&serial_number, cert->tbs().serial_number.data(), + cert->tbs().serial_number.size())) { return false; } - uint8_t* result_bytes; + uint8_t *result_bytes; size_t result_bytes_length; - if (!CBB_finish(cbb.get(), &result_bytes, &result_bytes_length)) + if (!CBB_finish(cbb.get(), &result_bytes, &result_bytes_length)) { return false; + } bssl::UniquePtr<uint8_t> delete_tbs_cert_bytes(result_bytes); request_der->assign(result_bytes, result_bytes + result_bytes_length); @@ -1015,8 +1088,7 @@ bool CreateOCSPRequest(const ParsedCertificate* cert, // GET {url}/{url-encoding of base-64 encoding of the DER encoding of // the OCSPRequest} std::optional<std::string> CreateOCSPGetURL( - const ParsedCertificate* cert, - const ParsedCertificate* issuer, + const ParsedCertificate *cert, const ParsedCertificate *issuer, std::string_view ocsp_responder_url) { std::vector<uint8_t> ocsp_request_der; if (!CreateOCSPRequest(cert, issuer, &ocsp_request_der)) { @@ -1048,4 +1120,4 @@ std::optional<std::string> CreateOCSPGetURL( return std::string(ocsp_responder_url) + "/" + b64_encoded; } -} // namespace net +} // namespace bssl diff --git a/src/pki/ocsp.h b/src/pki/ocsp.h index 69c41c8..5b076dc 100644 --- a/src/pki/ocsp.h +++ b/src/pki/ocsp.h @@ -5,19 +5,19 @@ #ifndef BSSL_PKI_OCSP_H_ #define BSSL_PKI_OCSP_H_ -#include "fillins/openssl_util.h" #include <memory> +#include <optional> #include <string> #include <vector> +#include <openssl/base.h> +#include "input.h" #include "ocsp_revocation_status.h" #include "ocsp_verify_result.h" -#include "signature_algorithm.h" -#include "input.h" #include "parse_values.h" #include "parser.h" -#include <optional> +#include "signature_algorithm.h" namespace bssl { @@ -230,8 +230,7 @@ inline constexpr uint8_t kBasicOCSPResponseOid[] = { // // On failure |out| has an undefined state. Some of its fields may have been // updated during parsing, whereas others may not have been changed. -OPENSSL_EXPORT bool ParseOCSPCertID(const der::Input& raw_tlv, - OCSPCertID* out); +OPENSSL_EXPORT bool ParseOCSPCertID(der::Input raw_tlv, OCSPCertID *out); // Parses a DER-encoded OCSP "SingleResponse" as specified by RFC 6960. Returns // true on success and sets the results in |out|. The resulting |out| @@ -240,8 +239,8 @@ OPENSSL_EXPORT bool ParseOCSPCertID(const der::Input& raw_tlv, // // On failure |out| has an undefined state. Some of its fields may have been // updated during parsing, whereas others may not have been changed. -OPENSSL_EXPORT bool ParseOCSPSingleResponse(const der::Input& raw_tlv, - OCSPSingleResponse* out); +OPENSSL_EXPORT bool ParseOCSPSingleResponse(der::Input raw_tlv, + OCSPSingleResponse *out); // Parses a DER-encoded OCSP "ResponseData" as specified by RFC 6960. Returns // true on success and sets the results in |out|. The resulting |out| @@ -250,8 +249,8 @@ OPENSSL_EXPORT bool ParseOCSPSingleResponse(const der::Input& raw_tlv, // // On failure |out| has an undefined state. Some of its fields may have been // updated during parsing, whereas others may not have been changed. -OPENSSL_EXPORT bool ParseOCSPResponseData(const der::Input& raw_tlv, - OCSPResponseData* out); +OPENSSL_EXPORT bool ParseOCSPResponseData(der::Input raw_tlv, + OCSPResponseData *out); // Parses a DER-encoded "OCSPResponse" as specified by RFC 6960. Returns true // on success and sets the results in |out|. The resulting |out| @@ -260,8 +259,7 @@ OPENSSL_EXPORT bool ParseOCSPResponseData(const der::Input& raw_tlv, // // On failure |out| has an undefined state. Some of its fields may have been // updated during parsing, whereas others may not have been changed. -OPENSSL_EXPORT bool ParseOCSPResponse(const der::Input& raw_tlv, - OCSPResponse* out); +OPENSSL_EXPORT bool ParseOCSPResponse(der::Input raw_tlv, OCSPResponse *out); // Checks the revocation status of the certificate |certificate_der| by using // the DER-encoded |raw_response|. @@ -279,26 +277,22 @@ OPENSSL_EXPORT bool ParseOCSPResponse(const der::Input& raw_tlv, // time since the |thisUpdate| field in the CRL TBSCertList. Responses // older than |max_age_seconds| will be considered invalid. // * |response_details|: Additional details about failures. -[[nodiscard]] OPENSSL_EXPORT OCSPRevocationStatus -CheckOCSP(std::string_view raw_response, - std::string_view certificate_der, - std::string_view issuer_certificate_der, - int64_t verify_time_epoch_seconds, - std::optional<int64_t> max_age_seconds, - OCSPVerifyResult::ResponseStatus* response_details); +[[nodiscard]] OPENSSL_EXPORT OCSPRevocationStatus CheckOCSP( + std::string_view raw_response, std::string_view certificate_der, + std::string_view issuer_certificate_der, int64_t verify_time_epoch_seconds, + std::optional<int64_t> max_age_seconds, + OCSPVerifyResult::ResponseStatus *response_details); // Checks the revocation status of |certificate| by using the DER-encoded // |raw_response|. // // Arguments are the same as above, except that it takes already parsed // instances of the certificate and issuer certificate. -[[nodiscard]] OPENSSL_EXPORT OCSPRevocationStatus -CheckOCSP(std::string_view raw_response, - const ParsedCertificate* certificate, - const ParsedCertificate* issuer_certificate, - int64_t verify_time_epoch_seconds, - std::optional<int64_t> max_age_seconds, - OCSPVerifyResult::ResponseStatus* response_details); +[[nodiscard]] OPENSSL_EXPORT OCSPRevocationStatus CheckOCSP( + std::string_view raw_response, const ParsedCertificate *certificate, + const ParsedCertificate *issuer_certificate, + int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds, + OCSPVerifyResult::ResponseStatus *response_details); // Creates a DER-encoded OCSPRequest for |cert|. The request is fairly basic: // * No signature @@ -307,16 +301,15 @@ CheckOCSP(std::string_view raw_response, // * Uses SHA1 for all hashes. // // Returns true on success and fills |request_der| with the resulting bytes. -OPENSSL_EXPORT bool CreateOCSPRequest(const ParsedCertificate* cert, - const ParsedCertificate* issuer, - std::vector<uint8_t>* request_der); +OPENSSL_EXPORT bool CreateOCSPRequest(const ParsedCertificate *cert, + const ParsedCertificate *issuer, + std::vector<uint8_t> *request_der); // Creates a URL to issue a GET request for OCSP information for |cert|. OPENSSL_EXPORT std::optional<std::string> CreateOCSPGetURL( - const ParsedCertificate* cert, - const ParsedCertificate* issuer, + const ParsedCertificate *cert, const ParsedCertificate *issuer, std::string_view ocsp_responder_url); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_OCSP_H_ diff --git a/src/pki/ocsp_revocation_status.h b/src/pki/ocsp_revocation_status.h index b4d30ca..2816aad 100644 --- a/src/pki/ocsp_revocation_status.h +++ b/src/pki/ocsp_revocation_status.h @@ -16,6 +16,6 @@ enum class OCSPRevocationStatus { MAX_VALUE = UNKNOWN }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_OCSP_REVOCATION_STATUS_H_ diff --git a/src/pki/ocsp_unittest.cc b/src/pki/ocsp_unittest.cc index 06a012b..98ae8dd 100644 --- a/src/pki/ocsp_unittest.cc +++ b/src/pki/ocsp_unittest.cc @@ -4,12 +4,12 @@ #include "ocsp.h" -#include "string_util.h" -#include "test_helpers.h" -#include "encode_values.h" #include <gtest/gtest.h> #include <openssl/base64.h> #include <openssl/pool.h> +#include "encode_values.h" +#include "string_util.h" +#include "test_helpers.h" namespace bssl { @@ -17,7 +17,7 @@ namespace { constexpr int64_t kOCSPAgeOneWeek = 7 * 24 * 60 * 60; -std::string GetFilePath(const std::string& file_name) { +std::string GetFilePath(const std::string &file_name) { return std::string("testdata/ocsp_unittest/") + file_name; } @@ -25,13 +25,14 @@ std::shared_ptr<const ParsedCertificate> ParseCertificate( std::string_view data) { CertErrors errors; return ParsedCertificate::Create( - bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(data.data()), data.size(), nullptr)), + bssl::UniquePtr<CRYPTO_BUFFER>( + CRYPTO_BUFFER_new(reinterpret_cast<const uint8_t *>(data.data()), + data.size(), nullptr)), {}, &errors); } struct TestParams { - const char* file_name; + const char *file_name; OCSPRevocationStatus expected_revocation_status; OCSPVerifyResult::ResponseStatus expected_response_status; }; @@ -122,7 +123,7 @@ const TestParams kTestParams[] = { // Parameterised test name generator for tests depending on RenderTextBackend. struct PrintTestName { - std::string operator()(const testing::TestParamInfo<TestParams>& info) const { + std::string operator()(const testing::TestParamInfo<TestParams> &info) const { std::string_view name(info.param.file_name); // Strip ".pem" from the end as GTest names cannot contain period. name.remove_suffix(4); @@ -130,13 +131,11 @@ struct PrintTestName { } }; -INSTANTIATE_TEST_SUITE_P(All, - CheckOCSPTest, - ::testing::ValuesIn(kTestParams), +INSTANTIATE_TEST_SUITE_P(All, CheckOCSPTest, ::testing::ValuesIn(kTestParams), PrintTestName()); TEST_P(CheckOCSPTest, FromFile) { - const TestParams& params = GetParam(); + const TestParams ¶ms = GetParam(); std::string ocsp_data; std::string ca_data; @@ -187,8 +186,7 @@ std::string_view kGetURLTestParams[] = { class CreateOCSPGetURLTest : public ::testing::TestWithParam<std::string_view> { }; -INSTANTIATE_TEST_SUITE_P(All, - CreateOCSPGetURLTest, +INSTANTIATE_TEST_SUITE_P(All, CreateOCSPGetURLTest, ::testing::ValuesIn(kGetURLTestParams)); TEST_P(CreateOCSPGetURLTest, Basic) { @@ -232,7 +230,7 @@ TEST_P(CreateOCSPGetURLTest, Basic) { EXPECT_TRUE(EVP_DecodedLength(&len, b64.size())); std::vector<uint8_t> decoded(len); EXPECT_TRUE(EVP_DecodeBase64(decoded.data(), &len, len, - reinterpret_cast<const uint8_t*>(b64.data()), + reinterpret_cast<const uint8_t *>(b64.data()), b64.size())); std::string decoded_string(decoded.begin(), decoded.begin() + len); @@ -241,4 +239,4 @@ TEST_P(CreateOCSPGetURLTest, Basic) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/ocsp_verify_result.cc b/src/pki/ocsp_verify_result.cc index b68bfdc..f343f8e 100644 --- a/src/pki/ocsp_verify_result.cc +++ b/src/pki/ocsp_verify_result.cc @@ -7,12 +7,13 @@ namespace bssl { OCSPVerifyResult::OCSPVerifyResult() = default; -OCSPVerifyResult::OCSPVerifyResult(const OCSPVerifyResult&) = default; +OCSPVerifyResult::OCSPVerifyResult(const OCSPVerifyResult &) = default; OCSPVerifyResult::~OCSPVerifyResult() = default; -bool OCSPVerifyResult::operator==(const OCSPVerifyResult& other) const { - if (response_status != other.response_status) +bool OCSPVerifyResult::operator==(const OCSPVerifyResult &other) const { + if (response_status != other.response_status) { return false; + } if (response_status == PROVIDED) { // |revocation_status| is only defined when |response_status| is PROVIDED. @@ -21,4 +22,4 @@ bool OCSPVerifyResult::operator==(const OCSPVerifyResult& other) const { return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/ocsp_verify_result.h b/src/pki/ocsp_verify_result.h index 32998fa..1e07f1a 100644 --- a/src/pki/ocsp_verify_result.h +++ b/src/pki/ocsp_verify_result.h @@ -5,7 +5,7 @@ #ifndef BSSL_PKI_OCSP_VERIFY_RESULT_H_ #define BSSL_PKI_OCSP_VERIFY_RESULT_H_ -#include "fillins/openssl_util.h" +#include <openssl/base.h> #include "ocsp_revocation_status.h" @@ -20,10 +20,10 @@ namespace bssl { // verification process, and should not be modified at other layers. struct OPENSSL_EXPORT OCSPVerifyResult { OCSPVerifyResult(); - OCSPVerifyResult(const OCSPVerifyResult&); + OCSPVerifyResult(const OCSPVerifyResult &); ~OCSPVerifyResult(); - bool operator==(const OCSPVerifyResult& other) const; + bool operator==(const OCSPVerifyResult &other) const; // This value is histogrammed, so do not re-order or change values, and add // new values at the end. @@ -71,6 +71,6 @@ struct OPENSSL_EXPORT OCSPVerifyResult { OCSPRevocationStatus revocation_status = OCSPRevocationStatus::UNKNOWN; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_OCSP_VERIFY_RESULT_H_ diff --git a/src/pki/parse_certificate.cc b/src/pki/parse_certificate.cc index c201736..5e2ff88 100644 --- a/src/pki/parse_certificate.cc +++ b/src/pki/parse_certificate.cc @@ -2,19 +2,21 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "fillins/openssl_util.h" #include "parse_certificate.h" +#include <optional> #include <utility> +#include <openssl/base.h> +#include <openssl/bytestring.h> + #include "cert_error_params.h" #include "cert_errors.h" #include "general_names.h" -#include "string_util.h" #include "input.h" #include "parse_values.h" #include "parser.h" -#include <optional> +#include "string_util.h" namespace bssl { @@ -73,18 +75,19 @@ DEFINE_CERT_ERROR_ID(kSerialNumberNotValidInteger, "Serial number is not a valid INTEGER"); // Returns true if |input| is a SEQUENCE and nothing else. -[[nodiscard]] bool IsSequenceTLV(const der::Input& input) { +[[nodiscard]] bool IsSequenceTLV(der::Input input) { der::Parser parser(input); der::Parser unused_sequence_parser; - if (!parser.ReadSequence(&unused_sequence_parser)) + if (!parser.ReadSequence(&unused_sequence_parser)) { return false; + } // Should by a single SEQUENCE by definition of the function. return !parser.HasMore(); } // Reads a SEQUENCE from |parser| and writes the full tag-length-value into // |out|. On failure |parser| may or may not have been advanced. -[[nodiscard]] bool ReadSequenceTLV(der::Parser* parser, der::Input* out) { +[[nodiscard]] bool ReadSequenceTLV(der::Parser *parser, der::Input *out) { return parser->ReadRawTLV(out) && IsSequenceTLV(*out); } @@ -99,12 +102,12 @@ DEFINE_CERT_ERROR_ID(kSerialNumberNotValidInteger, // Implementations SHOULD be prepared to accept any version certificate. // At a minimum, conforming implementations MUST recognize version 3 // certificates. -[[nodiscard]] bool ParseVersion(const der::Input& in, - CertificateVersion* version) { +[[nodiscard]] bool ParseVersion(der::Input in, CertificateVersion *version) { der::Parser parser(in); uint64_t version64; - if (!parser.ReadUint64(&version64)) + if (!parser.ReadUint64(&version64)) { return false; + } switch (version64) { case 0: @@ -127,11 +130,11 @@ DEFINE_CERT_ERROR_ID(kSerialNumberNotValidInteger, } // Returns true if every bit in |bits| is zero (including empty). -[[nodiscard]] bool BitStringIsAllZeros(const der::BitString& bits) { +[[nodiscard]] bool BitStringIsAllZeros(const der::BitString &bits) { // Note that it is OK to read from the unused bits, since BitString parsing // guarantees they are all zero. - for (size_t i = 0; i < bits.bytes().Length(); ++i) { - if (bits.bytes()[i] != 0) { + for (uint8_t b : bits.bytes()) { + if (b != 0) { return false; } } @@ -145,12 +148,12 @@ DEFINE_CERT_ERROR_ID(kSerialNumberNotValidInteger, // DistributionPointName ::= CHOICE { // fullName [0] GeneralNames, // nameRelativeToCRLIssuer [1] RelativeDistinguishedName } -bool ParseDistributionPointName(const der::Input& dp_name, - ParsedDistributionPoint* distribution_point) { +bool ParseDistributionPointName(der::Input dp_name, + ParsedDistributionPoint *distribution_point) { der::Parser parser(dp_name); std::optional<der::Input> der_full_name; if (!parser.ReadOptionalTag( - der::kTagContextSpecific | der::kTagConstructed | 0, + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &der_full_name)) { return false; } @@ -159,13 +162,14 @@ bool ParseDistributionPointName(const der::Input& dp_name, CertErrors errors; distribution_point->distribution_point_fullname = GeneralNames::CreateFromValue(*der_full_name, &errors); - if (!distribution_point->distribution_point_fullname) + if (!distribution_point->distribution_point_fullname) { return false; + } return !parser.HasMore(); } if (!parser.ReadOptionalTag( - der::kTagContextSpecific | der::kTagConstructed | 1, + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 1, &distribution_point ->distribution_point_name_relative_to_crl_issuer)) { return false; @@ -185,19 +189,20 @@ bool ParseDistributionPointName(const der::Input& dp_name, // reasons [1] ReasonFlags OPTIONAL, // cRLIssuer [2] GeneralNames OPTIONAL } bool ParseAndAddDistributionPoint( - der::Parser* parser, - std::vector<ParsedDistributionPoint>* distribution_points) { + der::Parser *parser, + std::vector<ParsedDistributionPoint> *distribution_points) { ParsedDistributionPoint distribution_point; // DistributionPoint ::= SEQUENCE { der::Parser distrib_point_parser; - if (!parser->ReadSequence(&distrib_point_parser)) + if (!parser->ReadSequence(&distrib_point_parser)) { return false; + } // distributionPoint [0] DistributionPointName OPTIONAL, std::optional<der::Input> distribution_point_name; if (!distrib_point_parser.ReadOptionalTag( - der::kTagContextSpecific | der::kTagConstructed | 0, + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &distribution_point_name)) { return false; } @@ -209,14 +214,14 @@ bool ParseAndAddDistributionPoint( } // reasons [1] ReasonFlags OPTIONAL, - if (!distrib_point_parser.ReadOptionalTag(der::kTagContextSpecific | 1, + if (!distrib_point_parser.ReadOptionalTag(CBS_ASN1_CONTEXT_SPECIFIC | 1, &distribution_point.reasons)) { return false; } // cRLIssuer [2] GeneralNames OPTIONAL } if (!distrib_point_parser.ReadOptionalTag( - der::kTagContextSpecific | der::kTagConstructed | 2, + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 2, &distribution_point.crl_issuer)) { return false; } @@ -224,11 +229,13 @@ bool ParseAndAddDistributionPoint( // RFC 5280, section 4.2.1.13: // either distributionPoint or cRLIssuer MUST be present. - if (!distribution_point_name && !distribution_point.crl_issuer) + if (!distribution_point_name && !distribution_point.crl_issuer) { return false; + } - if (distrib_point_parser.HasMore()) + if (distrib_point_parser.HasMore()) { return false; + } distribution_points->push_back(std::move(distribution_point)); return true; @@ -238,14 +245,13 @@ bool ParseAndAddDistributionPoint( ParsedTbsCertificate::ParsedTbsCertificate() = default; -ParsedTbsCertificate::ParsedTbsCertificate(ParsedTbsCertificate&& other) = +ParsedTbsCertificate::ParsedTbsCertificate(ParsedTbsCertificate &&other) = default; ParsedTbsCertificate::~ParsedTbsCertificate() = default; -bool VerifySerialNumber(const der::Input& value, - bool warnings_only, - CertErrors* errors) { +bool VerifySerialNumber(der::Input value, bool warnings_only, + CertErrors *errors) { // If |warnings_only| was set to true, the exact same errors will be logged, // only they will be logged with a lower severity (warning rather than error). CertError::Severity error_severity = @@ -262,9 +268,10 @@ bool VerifySerialNumber(const der::Input& value, // Note: Non-conforming CAs may issue certificates with serial numbers // that are negative or zero. Certificate users SHOULD be prepared to // gracefully handle such certificates. - if (negative) + if (negative) { errors->AddWarning(kSerialNumberIsNegative); - if (value.Length() == 1 && value[0] == 0) { + } + if (value.size() == 1 && value[0] == 0) { errors->AddWarning(kSerialNumberIsZero); } @@ -273,58 +280,65 @@ bool VerifySerialNumber(const der::Input& value, // Certificate users MUST be able to handle serialNumber values up to 20 // octets. Conforming CAs MUST NOT use serialNumber values longer than 20 // octets. - if (value.Length() > 20) { + if (value.size() > 20) { errors->Add(error_severity, kSerialNumberLengthOver20, - CreateCertErrorParams1SizeT("length", value.Length())); + CreateCertErrorParams1SizeT("length", value.size())); return false; } return true; } -bool ReadUTCOrGeneralizedTime(der::Parser* parser, der::GeneralizedTime* out) { +bool ReadUTCOrGeneralizedTime(der::Parser *parser, der::GeneralizedTime *out) { der::Input value; - der::Tag tag; + CBS_ASN1_TAG tag; - if (!parser->ReadTagAndValue(&tag, &value)) + if (!parser->ReadTagAndValue(&tag, &value)) { return false; + } - if (tag == der::kUtcTime) + if (tag == CBS_ASN1_UTCTIME) { return der::ParseUTCTime(value, out); + } - if (tag == der::kGeneralizedTime) + if (tag == CBS_ASN1_GENERALIZEDTIME) { return der::ParseGeneralizedTime(value, out); + } // Unrecognized tag. return false; } -bool ParseValidity(const der::Input& validity_tlv, - der::GeneralizedTime* not_before, - der::GeneralizedTime* not_after) { +bool ParseValidity(der::Input validity_tlv, der::GeneralizedTime *not_before, + der::GeneralizedTime *not_after) { der::Parser parser(validity_tlv); // Validity ::= SEQUENCE { der::Parser validity_parser; - if (!parser.ReadSequence(&validity_parser)) + if (!parser.ReadSequence(&validity_parser)) { return false; + } // notBefore Time, - if (!ReadUTCOrGeneralizedTime(&validity_parser, not_before)) + if (!ReadUTCOrGeneralizedTime(&validity_parser, not_before)) { return false; + } // notAfter Time } - if (!ReadUTCOrGeneralizedTime(&validity_parser, not_after)) + if (!ReadUTCOrGeneralizedTime(&validity_parser, not_after)) { return false; + } // By definition the input was a single Validity sequence, so there shouldn't // be unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } // The Validity type does not have an extension point. - if (validity_parser.HasMore()) + if (validity_parser.HasMore()) { return false; + } // Note that RFC 5280 doesn't require notBefore to be <= // notAfter, so that will not be considered a "parsing" error here. Instead it @@ -333,16 +347,17 @@ bool ParseValidity(const der::Input& validity_tlv, return true; } -bool ParseCertificate(const der::Input& certificate_tlv, - der::Input* out_tbs_certificate_tlv, - der::Input* out_signature_algorithm_tlv, - der::BitString* out_signature_value, - CertErrors* out_errors) { +bool ParseCertificate(der::Input certificate_tlv, + der::Input *out_tbs_certificate_tlv, + der::Input *out_signature_algorithm_tlv, + der::BitString *out_signature_value, + CertErrors *out_errors) { // |out_errors| is optional. But ensure it is non-null for the remainder of // this function. CertErrors unused_errors; - if (!out_errors) + if (!out_errors) { out_errors = &unused_errors; + } der::Parser parser(certificate_tlv); @@ -407,14 +422,14 @@ bool ParseCertificate(const der::Input& certificate_tlv, // extensions [3] EXPLICIT Extensions OPTIONAL // -- If present, version MUST be v3 // } -bool ParseTbsCertificate(const der::Input& tbs_tlv, - const ParseCertificateOptions& options, - ParsedTbsCertificate* out, - CertErrors* errors) { +bool ParseTbsCertificate(der::Input tbs_tlv, + const ParseCertificateOptions &options, + ParsedTbsCertificate *out, CertErrors *errors) { // The rest of this function assumes that |errors| is non-null. CertErrors unused_errors; - if (!errors) + if (!errors) { errors = &unused_errors; + } // TODO(crbug.com/634443): Add useful error information to |errors|. @@ -429,8 +444,8 @@ bool ParseTbsCertificate(const der::Input& tbs_tlv, // version [0] EXPLICIT Version DEFAULT v1, std::optional<der::Input> version; - if (!tbs_parser.ReadOptionalTag(der::ContextSpecificConstructed(0), - &version)) { + if (!tbs_parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &version)) { errors->AddError(kFailedReadingVersion); return false; } @@ -450,7 +465,7 @@ bool ParseTbsCertificate(const der::Input& tbs_tlv, } // serialNumber CertificateSerialNumber, - if (!tbs_parser.ReadTag(der::kInteger, &out->serial_number)) { + if (!tbs_parser.ReadTag(CBS_ASN1_INTEGER, &out->serial_number)) { errors->AddError(kFailedReadingSerialNumber); return false; } @@ -458,8 +473,9 @@ bool ParseTbsCertificate(const der::Input& tbs_tlv, options.allow_invalid_serial_numbers, errors)) { // Invalid serial numbers are only considered fatal failures if // |!allow_invalid_serial_numbers|. - if (!options.allow_invalid_serial_numbers) + if (!options.allow_invalid_serial_numbers) { return false; + } } // signature AlgorithmIdentifier, @@ -501,7 +517,7 @@ bool ParseTbsCertificate(const der::Input& tbs_tlv, // issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, // -- If present, version MUST be v2 or v3 std::optional<der::Input> issuer_unique_id; - if (!tbs_parser.ReadOptionalTag(der::ContextSpecificPrimitive(1), + if (!tbs_parser.ReadOptionalTag(CBS_ASN1_CONTEXT_SPECIFIC | 1, &issuer_unique_id)) { errors->AddError(kFailedReadingIssuerUniqueId); return false; @@ -522,7 +538,7 @@ bool ParseTbsCertificate(const der::Input& tbs_tlv, // subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, // -- If present, version MUST be v2 or v3 std::optional<der::Input> subject_unique_id; - if (!tbs_parser.ReadOptionalTag(der::ContextSpecificPrimitive(2), + if (!tbs_parser.ReadOptionalTag(CBS_ASN1_CONTEXT_SPECIFIC | 2, &subject_unique_id)) { errors->AddError(kFailedReadingSubjectUniqueId); return false; @@ -542,8 +558,9 @@ bool ParseTbsCertificate(const der::Input& tbs_tlv, // extensions [3] EXPLICIT Extensions OPTIONAL // -- If present, version MUST be v3 - if (!tbs_parser.ReadOptionalTag(der::ContextSpecificConstructed(3), - &out->extensions_tlv)) { + if (!tbs_parser.ReadOptionalTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 3, + &out->extensions_tlv)) { errors->AddError(kFailedReadingExtensions); return false; } @@ -574,8 +591,9 @@ bool ParseTbsCertificate(const der::Input& tbs_tlv, // By definition the input was a single TBSCertificate, so there shouldn't be // unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } return true; } @@ -590,62 +608,73 @@ bool ParseTbsCertificate(const der::Input& tbs_tlv, // -- corresponding to the extension type identified // -- by extnID // } -bool ParseExtension(const der::Input& extension_tlv, ParsedExtension* out) { +bool ParseExtension(der::Input extension_tlv, ParsedExtension *out) { der::Parser parser(extension_tlv); // Extension ::= SEQUENCE { der::Parser extension_parser; - if (!parser.ReadSequence(&extension_parser)) + if (!parser.ReadSequence(&extension_parser)) { return false; + } // extnID OBJECT IDENTIFIER, - if (!extension_parser.ReadTag(der::kOid, &out->oid)) + if (!extension_parser.ReadTag(CBS_ASN1_OBJECT, &out->oid)) { return false; + } // critical BOOLEAN DEFAULT FALSE, out->critical = false; bool has_critical; der::Input critical; - if (!extension_parser.ReadOptionalTag(der::kBool, &critical, &has_critical)) + if (!extension_parser.ReadOptionalTag(CBS_ASN1_BOOLEAN, &critical, + &has_critical)) { return false; + } if (has_critical) { - if (!der::ParseBool(critical, &out->critical)) + if (!der::ParseBool(critical, &out->critical)) { return false; - if (!out->critical) + } + if (!out->critical) { return false; // DER-encoding requires DEFAULT values be omitted. + } } // extnValue OCTET STRING - if (!extension_parser.ReadTag(der::kOctetString, &out->value)) + if (!extension_parser.ReadTag(CBS_ASN1_OCTETSTRING, &out->value)) { return false; + } // The Extension type does not have an extension point (everything goes in // extnValue). - if (extension_parser.HasMore()) + if (extension_parser.HasMore()) { return false; + } // By definition the input was a single Extension sequence, so there shouldn't // be unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } return true; } OPENSSL_EXPORT bool ParseExtensions( - const der::Input& extensions_tlv, - std::map<der::Input, ParsedExtension>* extensions) { + der::Input extensions_tlv, + std::map<der::Input, ParsedExtension> *extensions) { der::Parser parser(extensions_tlv); // Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension der::Parser extensions_parser; - if (!parser.ReadSequence(&extensions_parser)) + if (!parser.ReadSequence(&extensions_parser)) { return false; + } // The Extensions SEQUENCE must contains at least 1 element (otherwise it // should have been omitted). - if (!extensions_parser.HasMore()) + if (!extensions_parser.HasMore()) { return false; + } extensions->clear(); @@ -653,59 +682,67 @@ OPENSSL_EXPORT bool ParseExtensions( ParsedExtension extension; der::Input extension_tlv; - if (!extensions_parser.ReadRawTLV(&extension_tlv)) + if (!extensions_parser.ReadRawTLV(&extension_tlv)) { return false; + } - if (!ParseExtension(extension_tlv, &extension)) + if (!ParseExtension(extension_tlv, &extension)) { return false; + } bool is_duplicate = !extensions->insert(std::make_pair(extension.oid, extension)).second; // RFC 5280 says that an extension should not appear more than once. - if (is_duplicate) + if (is_duplicate) { return false; + } } // By definition the input was a single Extensions sequence, so there // shouldn't be unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } return true; } OPENSSL_EXPORT bool ConsumeExtension( - const der::Input& oid, - std::map<der::Input, ParsedExtension>* unconsumed_extensions, - ParsedExtension* extension) { + der::Input oid, + std::map<der::Input, ParsedExtension> *unconsumed_extensions, + ParsedExtension *extension) { auto it = unconsumed_extensions->find(oid); - if (it == unconsumed_extensions->end()) + if (it == unconsumed_extensions->end()) { return false; + } *extension = it->second; unconsumed_extensions->erase(it); return true; } -bool ParseBasicConstraints(const der::Input& basic_constraints_tlv, - ParsedBasicConstraints* out) { +bool ParseBasicConstraints(der::Input basic_constraints_tlv, + ParsedBasicConstraints *out) { der::Parser parser(basic_constraints_tlv); // BasicConstraints ::= SEQUENCE { der::Parser sequence_parser; - if (!parser.ReadSequence(&sequence_parser)) + if (!parser.ReadSequence(&sequence_parser)) { return false; + } // cA BOOLEAN DEFAULT FALSE, out->is_ca = false; bool has_ca; der::Input ca; - if (!sequence_parser.ReadOptionalTag(der::kBool, &ca, &has_ca)) + if (!sequence_parser.ReadOptionalTag(CBS_ASN1_BOOLEAN, &ca, &has_ca)) { return false; + } if (has_ca) { - if (!der::ParseBool(ca, &out->is_ca)) + if (!der::ParseBool(ca, &out->is_ca)) { return false; + } // TODO(eroman): Should reject if CA was set to false, since // DER-encoding requires DEFAULT values be omitted. In // practice however there are a lot of certificates that use @@ -714,57 +751,63 @@ bool ParseBasicConstraints(const der::Input& basic_constraints_tlv, // pathLenConstraint INTEGER (0..MAX) OPTIONAL } der::Input encoded_path_len; - if (!sequence_parser.ReadOptionalTag(der::kInteger, &encoded_path_len, + if (!sequence_parser.ReadOptionalTag(CBS_ASN1_INTEGER, &encoded_path_len, &out->has_path_len)) { return false; } if (out->has_path_len) { // TODO(eroman): Surface reason for failure if length was longer than uint8. - if (!der::ParseUint8(encoded_path_len, &out->path_len)) + if (!der::ParseUint8(encoded_path_len, &out->path_len)) { return false; + } } else { // Default initialize to 0 as a precaution. out->path_len = 0; } // There shouldn't be any unconsumed data in the extension. - if (sequence_parser.HasMore()) + if (sequence_parser.HasMore()) { return false; + } // By definition the input was a single BasicConstraints sequence, so there // shouldn't be unconsumed data. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } return true; } // TODO(crbug.com/1314019): return std::optional<BitString> when converting // has_key_usage_ and key_usage_ into single std::optional field. -bool ParseKeyUsage(const der::Input& key_usage_tlv, der::BitString* key_usage) { +bool ParseKeyUsage(der::Input key_usage_tlv, der::BitString *key_usage) { der::Parser parser(key_usage_tlv); std::optional<der::BitString> key_usage_internal = parser.ReadBitString(); - if (!key_usage_internal) + if (!key_usage_internal) { return false; + } // By definition the input was a single BIT STRING. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } // RFC 5280 section 4.2.1.3: // // When the keyUsage extension appears in a certificate, at least // one of the bits MUST be set to 1. - if (BitStringIsAllZeros(key_usage_internal.value())) + if (BitStringIsAllZeros(key_usage_internal.value())) { return false; + } *key_usage = key_usage_internal.value(); return true; } bool ParseAuthorityInfoAccess( - const der::Input& authority_info_access_tlv, - std::vector<AuthorityInfoAccessDescription>* out_access_descriptions) { + der::Input authority_info_access_tlv, + std::vector<AuthorityInfoAccessDescription> *out_access_descriptions) { der::Parser parser(authority_info_access_tlv); out_access_descriptions->clear(); @@ -772,22 +815,25 @@ bool ParseAuthorityInfoAccess( // AuthorityInfoAccessSyntax ::= // SEQUENCE SIZE (1..MAX) OF AccessDescription der::Parser sequence_parser; - if (!parser.ReadSequence(&sequence_parser)) + if (!parser.ReadSequence(&sequence_parser)) { return false; - if (!sequence_parser.HasMore()) + } + if (!sequence_parser.HasMore()) { return false; + } while (sequence_parser.HasMore()) { AuthorityInfoAccessDescription access_description; // AccessDescription ::= SEQUENCE { der::Parser access_description_sequence_parser; - if (!sequence_parser.ReadSequence(&access_description_sequence_parser)) + if (!sequence_parser.ReadSequence(&access_description_sequence_parser)) { return false; + } // accessMethod OBJECT IDENTIFIER, if (!access_description_sequence_parser.ReadTag( - der::kOid, &access_description.access_method_oid)) { + CBS_ASN1_OBJECT, &access_description.access_method_oid)) { return false; } @@ -797,8 +843,9 @@ bool ParseAuthorityInfoAccess( return false; } - if (access_description_sequence_parser.HasMore()) + if (access_description_sequence_parser.HasMore()) { return false; + } out_access_descriptions->push_back(access_description); } @@ -807,18 +854,18 @@ bool ParseAuthorityInfoAccess( } bool ParseAuthorityInfoAccessURIs( - const der::Input& authority_info_access_tlv, - std::vector<std::string_view>* out_ca_issuers_uris, - std::vector<std::string_view>* out_ocsp_uris) { + der::Input authority_info_access_tlv, + std::vector<std::string_view> *out_ca_issuers_uris, + std::vector<std::string_view> *out_ocsp_uris) { std::vector<AuthorityInfoAccessDescription> access_descriptions; if (!ParseAuthorityInfoAccess(authority_info_access_tlv, &access_descriptions)) { return false; } - for (const auto& access_description : access_descriptions) { + for (const auto &access_description : access_descriptions) { der::Parser access_location_parser(access_description.access_location); - der::Tag access_location_tag; + CBS_ASN1_TAG access_location_tag; der::Input access_location_value; if (!access_location_parser.ReadTagAndValue(&access_location_tag, &access_location_value)) { @@ -826,16 +873,19 @@ bool ParseAuthorityInfoAccessURIs( } // GeneralName ::= CHOICE { - if (access_location_tag == der::ContextSpecificPrimitive(6)) { + if (access_location_tag == (CBS_ASN1_CONTEXT_SPECIFIC | 6)) { // uniformResourceIdentifier [6] IA5String, - std::string_view uri = access_location_value.AsStringView(); - if (!bssl::string_util::IsAscii(uri)) + std::string_view uri = BytesAsStringView(access_location_value); + if (!bssl::string_util::IsAscii(uri)) { return false; + } - if (access_description.access_method_oid == der::Input(kAdCaIssuersOid)) + if (access_description.access_method_oid == der::Input(kAdCaIssuersOid)) { out_ca_issuers_uris->push_back(uri); - else if (access_description.access_method_oid == der::Input(kAdOcspOid)) + } else if (access_description.access_method_oid == + der::Input(kAdOcspOid)) { out_ocsp_uris->push_back(uri); + } } } return true; @@ -843,12 +893,12 @@ bool ParseAuthorityInfoAccessURIs( ParsedDistributionPoint::ParsedDistributionPoint() = default; ParsedDistributionPoint::ParsedDistributionPoint( - ParsedDistributionPoint&& other) = default; + ParsedDistributionPoint &&other) = default; ParsedDistributionPoint::~ParsedDistributionPoint() = default; bool ParseCrlDistributionPoints( - const der::Input& extension_value, - std::vector<ParsedDistributionPoint>* distribution_points) { + der::Input extension_value, + std::vector<ParsedDistributionPoint> *distribution_points) { distribution_points->clear(); // RFC 5280, section 4.2.1.13. @@ -856,19 +906,23 @@ bool ParseCrlDistributionPoints( // CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint der::Parser extension_value_parser(extension_value); der::Parser distribution_points_parser; - if (!extension_value_parser.ReadSequence(&distribution_points_parser)) + if (!extension_value_parser.ReadSequence(&distribution_points_parser)) { return false; - if (extension_value_parser.HasMore()) + } + if (extension_value_parser.HasMore()) { return false; + } // Sequence must have a minimum of 1 item. - if (!distribution_points_parser.HasMore()) + if (!distribution_points_parser.HasMore()) { return false; + } while (distribution_points_parser.HasMore()) { if (!ParseAndAddDistributionPoint(&distribution_points_parser, - distribution_points)) + distribution_points)) { return false; + } } return true; @@ -877,13 +931,13 @@ bool ParseCrlDistributionPoints( ParsedAuthorityKeyIdentifier::ParsedAuthorityKeyIdentifier() = default; ParsedAuthorityKeyIdentifier::~ParsedAuthorityKeyIdentifier() = default; ParsedAuthorityKeyIdentifier::ParsedAuthorityKeyIdentifier( - ParsedAuthorityKeyIdentifier&& other) = default; -ParsedAuthorityKeyIdentifier& ParsedAuthorityKeyIdentifier::operator=( - ParsedAuthorityKeyIdentifier&& other) = default; + ParsedAuthorityKeyIdentifier &&other) = default; +ParsedAuthorityKeyIdentifier &ParsedAuthorityKeyIdentifier::operator=( + ParsedAuthorityKeyIdentifier &&other) = default; bool ParseAuthorityKeyIdentifier( - const der::Input& extension_value, - ParsedAuthorityKeyIdentifier* authority_key_identifier) { + der::Input extension_value, + ParsedAuthorityKeyIdentifier *authority_key_identifier) { // RFC 5280, section 4.2.1.1. // AuthorityKeyIdentifier ::= SEQUENCE { // keyIdentifier [0] KeyIdentifier OPTIONAL, @@ -894,30 +948,32 @@ bool ParseAuthorityKeyIdentifier( der::Parser extension_value_parser(extension_value); der::Parser aki_parser; - if (!extension_value_parser.ReadSequence(&aki_parser)) + if (!extension_value_parser.ReadSequence(&aki_parser)) { return false; - if (extension_value_parser.HasMore()) + } + if (extension_value_parser.HasMore()) { return false; + } // TODO(mattm): Should having an empty AuthorityKeyIdentifier SEQUENCE be an // error? RFC 5280 doesn't explicitly say it. // keyIdentifier [0] KeyIdentifier OPTIONAL, - if (!aki_parser.ReadOptionalTag(der::ContextSpecificPrimitive(0), + if (!aki_parser.ReadOptionalTag(CBS_ASN1_CONTEXT_SPECIFIC | 0, &authority_key_identifier->key_identifier)) { return false; } // authorityCertIssuer [1] GeneralNames OPTIONAL, if (!aki_parser.ReadOptionalTag( - der::ContextSpecificConstructed(1), + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 1, &authority_key_identifier->authority_cert_issuer)) { return false; } // authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL } if (!aki_parser.ReadOptionalTag( - der::ContextSpecificPrimitive(2), + CBS_ASN1_CONTEXT_SPECIFIC | 2, &authority_key_identifier->authority_cert_serial_number)) { return false; } @@ -931,28 +987,30 @@ bool ParseAuthorityKeyIdentifier( // There shouldn't be any unconsumed data in the AuthorityKeyIdentifier // SEQUENCE. - if (aki_parser.HasMore()) + if (aki_parser.HasMore()) { return false; + } return true; } -bool ParseSubjectKeyIdentifier(const der::Input& extension_value, - der::Input* subject_key_identifier) { +bool ParseSubjectKeyIdentifier(der::Input extension_value, + der::Input *subject_key_identifier) { // SubjectKeyIdentifier ::= KeyIdentifier // // KeyIdentifier ::= OCTET STRING der::Parser extension_value_parser(extension_value); - if (!extension_value_parser.ReadTag(der::kOctetString, + if (!extension_value_parser.ReadTag(CBS_ASN1_OCTETSTRING, subject_key_identifier)) { return false; } // There shouldn't be any unconsumed data in the extension SEQUENCE. - if (extension_value_parser.HasMore()) + if (extension_value_parser.HasMore()) { return false; + } return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/parse_certificate.h b/src/pki/parse_certificate.h index 956c44e..81e267f 100644 --- a/src/pki/parse_certificate.h +++ b/src/pki/parse_certificate.h @@ -5,18 +5,18 @@ #ifndef BSSL_PKI_PARSE_CERTIFICATE_H_ #define BSSL_PKI_PARSE_CERTIFICATE_H_ -#include "fillins/openssl_util.h" #include <stdint.h> #include <map> #include <memory> +#include <optional> #include <vector> +#include <openssl/base.h> #include "general_names.h" #include "input.h" #include "parse_values.h" -#include <optional> namespace bssl { @@ -56,9 +56,9 @@ struct ParsedTbsCertificate; // |errors| must be a non-null destination for any errors/warnings. If // |warnings_only| is set to true, then what would ordinarily be errors are // instead added as warnings. -[[nodiscard]] OPENSSL_EXPORT bool VerifySerialNumber(const der::Input& value, - bool warnings_only, - CertErrors* errors); +[[nodiscard]] OPENSSL_EXPORT bool VerifySerialNumber(der::Input value, + bool warnings_only, + CertErrors *errors); // Consumes a "Time" value (as defined by RFC 5280) from |parser|. On success // writes the result to |*out| and returns true. On failure no guarantees are @@ -70,8 +70,7 @@ struct ParsedTbsCertificate; // utcTime UTCTime, // generalTime GeneralizedTime } [[nodiscard]] OPENSSL_EXPORT bool ReadUTCOrGeneralizedTime( - der::Parser* parser, - der::GeneralizedTime* out); + der::Parser *parser, der::GeneralizedTime *out); // Parses a DER-encoded "Validity" as specified by RFC 5280. Returns true on // success and sets the results in |not_before| and |not_after|: @@ -81,9 +80,9 @@ struct ParsedTbsCertificate; // notAfter Time } // // Note that upon success it is NOT guaranteed that |*not_before <= *not_after|. -[[nodiscard]] OPENSSL_EXPORT bool ParseValidity(const der::Input& validity_tlv, - der::GeneralizedTime* not_before, - der::GeneralizedTime* not_after); +[[nodiscard]] OPENSSL_EXPORT bool ParseValidity( + der::Input validity_tlv, der::GeneralizedTime *not_before, + der::GeneralizedTime *not_after); struct OPENSSL_EXPORT ParseCertificateOptions { // If set to true, then parsing will skip checks on the certificate's serial @@ -131,11 +130,9 @@ struct OPENSSL_EXPORT ParseCertificateOptions { // // Parsing guarantees that this is a valid BIT STRING. [[nodiscard]] OPENSSL_EXPORT bool ParseCertificate( - const der::Input& certificate_tlv, - der::Input* out_tbs_certificate_tlv, - der::Input* out_signature_algorithm_tlv, - der::BitString* out_signature_value, - CertErrors* out_errors); + der::Input certificate_tlv, der::Input *out_tbs_certificate_tlv, + der::Input *out_signature_algorithm_tlv, + der::BitString *out_signature_value, CertErrors *out_errors); // Parses a DER-encoded "TBSCertificate" as specified by RFC 5280. Returns true // on success and sets the results in |out|. Certain invalid inputs may @@ -170,10 +167,8 @@ struct OPENSSL_EXPORT ParseCertificateOptions { // -- If present, version MUST be v3 // } [[nodiscard]] OPENSSL_EXPORT bool ParseTbsCertificate( - const der::Input& tbs_tlv, - const ParseCertificateOptions& options, - ParsedTbsCertificate* out, - CertErrors* errors); + der::Input tbs_tlv, const ParseCertificateOptions &options, + ParsedTbsCertificate *out, CertErrors *errors); // Represents a "Version" from RFC 5280: // Version ::= INTEGER { v1(0), v2(1), v3(2) } @@ -191,8 +186,8 @@ enum class CertificateVersion { // sets. struct OPENSSL_EXPORT ParsedTbsCertificate { ParsedTbsCertificate(); - ParsedTbsCertificate(ParsedTbsCertificate&& other); - ParsedTbsCertificate& operator=(ParsedTbsCertificate&& other) = default; + ParsedTbsCertificate(ParsedTbsCertificate &&other); + ParsedTbsCertificate &operator=(ParsedTbsCertificate &&other) = default; ~ParsedTbsCertificate(); // Corresponds with "version" from RFC 5280: @@ -323,8 +318,8 @@ struct OPENSSL_EXPORT ParsedExtension { // // On failure |out| has an undefined state. Some of its fields may have been // updated during parsing, whereas others may not have been changed. -[[nodiscard]] OPENSSL_EXPORT bool ParseExtension(const der::Input& extension_tlv, - ParsedExtension* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseExtension(der::Input extension_tlv, + ParsedExtension *out); // From RFC 5280: // @@ -420,6 +415,14 @@ inline constexpr uint8_t kAdOcspOid[] = {0x2B, 0x06, 0x01, 0x05, // In dotted notation: 2.5.29.31 inline constexpr uint8_t kCrlDistributionPointsOid[] = {0x55, 0x1d, 0x1f}; +// From RFC 6962: +// +// critical poison extension. +// +// In dotted notation 1.3.6.1.4.1.11129.2.4.3 +inline constexpr uint8_t kCtPoisonOid[] = {0x2B, 0x06, 0x01, 0x04, 0x01, + 0xD6, 0x79, 0x02, 0x04, 0x03}; + // From // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/supported-extensions#msapplicationpolicies // @@ -436,16 +439,16 @@ inline constexpr uint8_t kMSApplicationPoliciesOid[] = { // bytes in |extensions_tlv|, so that data must be kept alive. // On failure |extensions| may be partially written to and should not be used. [[nodiscard]] OPENSSL_EXPORT bool ParseExtensions( - const der::Input& extensions_tlv, - std::map<der::Input, ParsedExtension>* extensions); + der::Input extensions_tlv, + std::map<der::Input, ParsedExtension> *extensions); // Removes the extension with OID |oid| from |unconsumed_extensions| and fills // |extension| with the matching extension value. If there was no extension // matching |oid| then returns |false|. [[nodiscard]] OPENSSL_EXPORT bool ConsumeExtension( - const der::Input& oid, - std::map<der::Input, ParsedExtension>* unconsumed_extensions, - ParsedExtension* extension); + der::Input oid, + std::map<der::Input, ParsedExtension> *unconsumed_extensions, + ParsedExtension *extension); struct ParsedBasicConstraints { bool is_ca = false; @@ -462,8 +465,7 @@ struct ParsedBasicConstraints { // The maximum allowed value of pathLenConstraints will be whatever can fit // into a uint8_t. [[nodiscard]] OPENSSL_EXPORT bool ParseBasicConstraints( - const der::Input& basic_constraints_tlv, - ParsedBasicConstraints* out); + der::Input basic_constraints_tlv, ParsedBasicConstraints *out); // KeyUsageBit contains the index for a particular key usage. The index is // measured from the most significant bit of a bit string. @@ -503,8 +505,8 @@ enum KeyUsageBit { // // To test if a particular key usage is set, call, e.g.: // key_usage->AssertsBit(KEY_USAGE_BIT_DIGITAL_SIGNATURE); -[[nodiscard]] OPENSSL_EXPORT bool ParseKeyUsage(const der::Input& key_usage_tlv, - der::BitString* key_usage); +[[nodiscard]] OPENSSL_EXPORT bool ParseKeyUsage(der::Input key_usage_tlv, + der::BitString *key_usage); struct AuthorityInfoAccessDescription { // The accessMethod DER OID value. @@ -520,8 +522,8 @@ struct AuthorityInfoAccessDescription { // No validation is performed on the contents of the // AuthorityInfoAccessDescription fields. [[nodiscard]] OPENSSL_EXPORT bool ParseAuthorityInfoAccess( - const der::Input& authority_info_access_tlv, - std::vector<AuthorityInfoAccessDescription>* out_access_descriptions); + der::Input authority_info_access_tlv, + std::vector<AuthorityInfoAccessDescription> *out_access_descriptions); // Parses the Authority Information Access extension defined by RFC 5280, // extracting the caIssuers URIs and OCSP URIs. @@ -542,9 +544,9 @@ struct AuthorityInfoAccessDescription { // accessLocation types other than uniformResourceIdentifier are silently // ignored. [[nodiscard]] OPENSSL_EXPORT bool ParseAuthorityInfoAccessURIs( - const der::Input& authority_info_access_tlv, - std::vector<std::string_view>* out_ca_issuers_uris, - std::vector<std::string_view>* out_ocsp_uris); + der::Input authority_info_access_tlv, + std::vector<std::string_view> *out_ca_issuers_uris, + std::vector<std::string_view> *out_ocsp_uris); // ParsedDistributionPoint represents a parsed DistributionPoint from RFC 5280. // @@ -554,7 +556,7 @@ struct AuthorityInfoAccessDescription { // cRLIssuer [2] GeneralNames OPTIONAL } struct OPENSSL_EXPORT ParsedDistributionPoint { ParsedDistributionPoint(); - ParsedDistributionPoint(ParsedDistributionPoint&& other); + ParsedDistributionPoint(ParsedDistributionPoint &&other); ~ParsedDistributionPoint(); // The parsed fullName, if distributionPoint was present and was a fullName. @@ -578,8 +580,8 @@ struct OPENSSL_EXPORT ParsedDistributionPoint { // DistributionPoint). Return true on success, and fills |distribution_points| // with values that reference data in |distribution_points_tlv|. [[nodiscard]] OPENSSL_EXPORT bool ParseCrlDistributionPoints( - const der::Input& distribution_points_tlv, - std::vector<ParsedDistributionPoint>* distribution_points); + der::Input distribution_points_tlv, + std::vector<ParsedDistributionPoint> *distribution_points); // Represents the AuthorityKeyIdentifier extension defined by RFC 5280 section // 4.2.1.1. @@ -593,8 +595,8 @@ struct OPENSSL_EXPORT ParsedDistributionPoint { struct OPENSSL_EXPORT ParsedAuthorityKeyIdentifier { ParsedAuthorityKeyIdentifier(); ~ParsedAuthorityKeyIdentifier(); - ParsedAuthorityKeyIdentifier(ParsedAuthorityKeyIdentifier&& other); - ParsedAuthorityKeyIdentifier& operator=(ParsedAuthorityKeyIdentifier&& other); + ParsedAuthorityKeyIdentifier(ParsedAuthorityKeyIdentifier &&other); + ParsedAuthorityKeyIdentifier &operator=(ParsedAuthorityKeyIdentifier &&other); // The keyIdentifier, which is an OCTET STRING. std::optional<der::Input> key_identifier; @@ -614,16 +616,15 @@ struct OPENSSL_EXPORT ParsedAuthorityKeyIdentifier { // in |extension_value|. On failure the state of |authority_key_identifier| is // not guaranteed. [[nodiscard]] OPENSSL_EXPORT bool ParseAuthorityKeyIdentifier( - const der::Input& extension_value, - ParsedAuthorityKeyIdentifier* authority_key_identifier); + der::Input extension_value, + ParsedAuthorityKeyIdentifier *authority_key_identifier); // Parses the value of a subjectKeyIdentifier extension. Returns true on // success and |subject_key_identifier| references data in |extension_value|. // On failure the state of |subject_key_identifier| is not guaranteed. [[nodiscard]] OPENSSL_EXPORT bool ParseSubjectKeyIdentifier( - const der::Input& extension_value, - der::Input* subject_key_identifier); + der::Input extension_value, der::Input *subject_key_identifier); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_PARSE_CERTIFICATE_H_ diff --git a/src/pki/parse_certificate_unittest.cc b/src/pki/parse_certificate_unittest.cc index fc79ca3..ec3c642 100644 --- a/src/pki/parse_certificate_unittest.cc +++ b/src/pki/parse_certificate_unittest.cc @@ -4,13 +4,13 @@ #include "parse_certificate.h" +#include <gtest/gtest.h> +#include <openssl/pool.h> #include "cert_errors.h" #include "general_names.h" +#include "input.h" #include "parsed_certificate.h" #include "test_helpers.h" -#include "input.h" -#include <gtest/gtest.h> -#include <openssl/pool.h> namespace bssl { @@ -19,7 +19,7 @@ namespace { // Pretty-prints a GeneralizedTime as a human-readable string for use in test // expectations (it is more readable to specify the expected results as a // string). -std::string ToString(const der::GeneralizedTime& time) { +std::string ToString(const der::GeneralizedTime &time) { std::ostringstream pretty_time; pretty_time << "year=" << int{time.year} << ", month=" << int{time.month} << ", day=" << int{time.day} << ", hours=" << int{time.hours} @@ -28,7 +28,7 @@ std::string ToString(const der::GeneralizedTime& time) { return pretty_time.str(); } -std::string GetFilePath(const std::string& file_name) { +std::string GetFilePath(const std::string &file_name) { return std::string("testdata/parse_certificate_unittest/") + file_name; } @@ -36,7 +36,7 @@ std::string GetFilePath(const std::string& file_name) { // Verifies that parsing the Certificate matches expectations: // * If expected to fail, emits the expected errors // * If expected to succeeds, the parsed fields match expectations -void RunCertificateTest(const std::string& file_name) { +void RunCertificateTest(const std::string &file_name) { std::string data; std::string expected_errors; std::string expected_tbs_certificate; @@ -129,7 +129,7 @@ TEST(ParseCertificateTest, AlgorithmNotSequence) { // // TODO(eroman): Get rid of the |expected_version| parameter -- this should be // encoded in the test expectations file. -void RunTbsCertificateTestGivenVersion(const std::string& file_name, +void RunTbsCertificateTestGivenVersion(const std::string &file_name, CertificateVersion expected_version) { std::string data; std::string expected_serial_number; @@ -172,8 +172,9 @@ void RunTbsCertificateTestGivenVersion(const std::string& file_name, EXPECT_EQ(expected_result, actual_result); VerifyCertErrors(expected_errors, errors, test_file_path); - if (!expected_result || !actual_result) + if (!expected_result || !actual_result) { return; + } // Ensure that the ParsedTbsCertificate matches expectations. EXPECT_EQ(expected_version, parsed.version); @@ -211,7 +212,7 @@ void RunTbsCertificateTestGivenVersion(const std::string& file_name, } } -void RunTbsCertificateTest(const std::string& file_name) { +void RunTbsCertificateTest(const std::string &file_name) { RunTbsCertificateTestGivenVersion(file_name, CertificateVersion::V3); } @@ -271,9 +272,7 @@ TEST(ParseTbsCertificateTest, Version3AllOptionals) { } // The version was set to v4, which is unrecognized. -TEST(ParseTbsCertificateTest, Version4) { - RunTbsCertificateTest("tbs_v4.pem"); -} +TEST(ParseTbsCertificateTest, Version4) { RunTbsCertificateTest("tbs_v4.pem"); } // Tests that extraneous data after extensions in a v3 is rejected. TEST(ParseTbsCertificateTest, Version3DataAfterExtensions) { @@ -491,7 +490,7 @@ TEST(ParseAuthorityInfoAccess, BasicTests) { ASSERT_TRUE(ParseAuthorityInfoAccess(der::Input(der), &access_descriptions)); ASSERT_EQ(5u, access_descriptions.size()); { - const auto& desc = access_descriptions[0]; + const auto &desc = access_descriptions[0]; EXPECT_EQ(der::Input(kAdOcspOid), desc.access_method_oid); const uint8_t location_der[] = {0xa4, 0x11, 0x30, 0x0f, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, @@ -499,7 +498,7 @@ TEST(ParseAuthorityInfoAccess, BasicTests) { EXPECT_EQ(der::Input(location_der), desc.access_location); } { - const auto& desc = access_descriptions[1]; + const auto &desc = access_descriptions[1]; EXPECT_EQ(der::Input(kAdCaIssuersOid), desc.access_method_oid); const uint8_t location_der[] = { 0xa4, 0x16, 0x30, 0x14, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, @@ -507,7 +506,7 @@ TEST(ParseAuthorityInfoAccess, BasicTests) { EXPECT_EQ(der::Input(location_der), desc.access_location); } { - const auto& desc = access_descriptions[2]; + const auto &desc = access_descriptions[2]; const uint8_t method_oid[] = {0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x03}; EXPECT_EQ(der::Input(method_oid), desc.access_method_oid); @@ -518,7 +517,7 @@ TEST(ParseAuthorityInfoAccess, BasicTests) { EXPECT_EQ(der::Input(location_der), desc.access_location); } { - const auto& desc = access_descriptions[3]; + const auto &desc = access_descriptions[3]; EXPECT_EQ(der::Input(kAdOcspOid), desc.access_method_oid); const uint8_t location_der[] = {0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, @@ -527,7 +526,7 @@ TEST(ParseAuthorityInfoAccess, BasicTests) { EXPECT_EQ(der::Input(location_der), desc.access_location); } { - const auto& desc = access_descriptions[4]; + const auto &desc = access_descriptions[4]; EXPECT_EQ(der::Input(kAdCaIssuersOid), desc.access_method_oid); const uint8_t location_der[] = { 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, @@ -570,7 +569,7 @@ TEST(ParseAuthorityInfoAccess, NoOcspOrCaIssuersURIs) { std::vector<AuthorityInfoAccessDescription> access_descriptions; ASSERT_TRUE(ParseAuthorityInfoAccess(der::Input(der), &access_descriptions)); ASSERT_EQ(1u, access_descriptions.size()); - const auto& desc = access_descriptions[0]; + const auto &desc = access_descriptions[0]; const uint8_t method_oid[] = {0x2a, 0x03}; EXPECT_EQ(der::Input(method_oid), desc.access_method_oid); const uint8_t location_der[] = {0xa4, 0x10, 0x30, 0x0e, 0x31, 0x0c, @@ -657,8 +656,8 @@ TEST(ParseAuthorityInfoAccess, EmptySequence) { class ParseCrlDistributionPointsTest : public ::testing::Test { public: protected: - bool GetCrlDps(const char* file_name, - std::vector<ParsedDistributionPoint>* dps) { + bool GetCrlDps(const char *file_name, + std::vector<ParsedDistributionPoint> *dps) { std::string cert_bytes; // Read the test certificate file. const PemBlockMapping mappings[] = { @@ -671,16 +670,18 @@ class ParseCrlDistributionPointsTest : public ::testing::Test { CertErrors errors; std::shared_ptr<const ParsedCertificate> cert = ParsedCertificate::Create( bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(cert_bytes.data()), + reinterpret_cast<const uint8_t *>(cert_bytes.data()), cert_bytes.size(), nullptr)), {}, &errors); - if (!cert) + if (!cert) { return false; + } auto it = cert->extensions().find(der::Input(kCrlDistributionPointsOid)); - if (it == cert->extensions().end()) + if (it == cert->extensions().end()) { return false; + } der::Input crl_dp_tlv = it->second.value; @@ -703,10 +704,10 @@ TEST_F(ParseCrlDistributionPointsTest, OneUriNoIssuer) { ASSERT_TRUE(GetCrlDps("crldp_1uri_noissuer.pem", &dps)); ASSERT_EQ(1u, dps.size()); - const ParsedDistributionPoint& dp1 = dps.front(); + const ParsedDistributionPoint &dp1 = dps.front(); ASSERT_TRUE(dp1.distribution_point_fullname); - const GeneralNames& fullname = *dp1.distribution_point_fullname; + const GeneralNames &fullname = *dp1.distribution_point_fullname; EXPECT_EQ(GENERAL_NAME_UNIFORM_RESOURCE_IDENTIFIER, fullname.present_name_types); ASSERT_EQ(1u, fullname.uniform_resource_identifiers.size()); @@ -723,10 +724,10 @@ TEST_F(ParseCrlDistributionPointsTest, ThreeUrisNoIssuer) { ASSERT_TRUE(GetCrlDps("crldp_3uri_noissuer.pem", &dps)); ASSERT_EQ(1u, dps.size()); - const ParsedDistributionPoint& dp1 = dps.front(); + const ParsedDistributionPoint &dp1 = dps.front(); ASSERT_TRUE(dp1.distribution_point_fullname); - const GeneralNames& fullname = *dp1.distribution_point_fullname; + const GeneralNames &fullname = *dp1.distribution_point_fullname; EXPECT_EQ(GENERAL_NAME_UNIFORM_RESOURCE_IDENTIFIER, fullname.present_name_types); ASSERT_EQ(3u, fullname.uniform_resource_identifiers.size()); @@ -747,9 +748,9 @@ TEST_F(ParseCrlDistributionPointsTest, CrlIssuerAsDirname) { ASSERT_TRUE(GetCrlDps("crldp_issuer_as_dirname.pem", &dps)); ASSERT_EQ(1u, dps.size()); - const ParsedDistributionPoint& dp1 = dps.front(); + const ParsedDistributionPoint &dp1 = dps.front(); ASSERT_TRUE(dp1.distribution_point_fullname); - const GeneralNames& fullname = *dp1.distribution_point_fullname; + const GeneralNames &fullname = *dp1.distribution_point_fullname; EXPECT_EQ(GENERAL_NAME_DIRECTORY_NAME, fullname.present_name_types); // Generated by `ascii2der | xxd -i` from the Name value in // crldp_issuer_as_dirname.pem. @@ -791,10 +792,10 @@ TEST_F(ParseCrlDistributionPointsTest, FullnameAsDirname) { ASSERT_TRUE(GetCrlDps("crldp_full_name_as_dirname.pem", &dps)); ASSERT_EQ(1u, dps.size()); - const ParsedDistributionPoint& dp1 = dps.front(); + const ParsedDistributionPoint &dp1 = dps.front(); ASSERT_TRUE(dp1.distribution_point_fullname); - const GeneralNames& fullname = *dp1.distribution_point_fullname; + const GeneralNames &fullname = *dp1.distribution_point_fullname; EXPECT_EQ(GENERAL_NAME_DIRECTORY_NAME, fullname.present_name_types); // Generated by `ascii2der | xxd -i` from the Name value in // crldp_full_name_as_dirname.pem. @@ -869,7 +870,7 @@ TEST_F(ParseCrlDistributionPointsTest, RelativeNameAndReasonsAndMultipleDPs) { ASSERT_TRUE(ParseCrlDistributionPoints(der::Input(kInputDer), &dps)); ASSERT_EQ(2u, dps.size()); { - const ParsedDistributionPoint& dp = dps[0]; + const ParsedDistributionPoint &dp = dps[0]; EXPECT_FALSE(dp.distribution_point_fullname); ASSERT_TRUE(dp.distribution_point_name_relative_to_crl_issuer); @@ -893,9 +894,9 @@ TEST_F(ParseCrlDistributionPointsTest, RelativeNameAndReasonsAndMultipleDPs) { EXPECT_FALSE(dp.crl_issuer); } { - const ParsedDistributionPoint& dp = dps[1]; + const ParsedDistributionPoint &dp = dps[1]; ASSERT_TRUE(dp.distribution_point_fullname); - const GeneralNames& fullname = *dp.distribution_point_fullname; + const GeneralNames &fullname = *dp.distribution_point_fullname; EXPECT_EQ(GENERAL_NAME_DIRECTORY_NAME, fullname.present_name_types); // SET { // SEQUENCE { @@ -947,7 +948,7 @@ TEST_F(ParseCrlDistributionPointsTest, NoDistributionPointName) { std::vector<ParsedDistributionPoint> dps; ASSERT_TRUE(ParseCrlDistributionPoints(der::Input(kInputDer), &dps)); ASSERT_EQ(1u, dps.size()); - const ParsedDistributionPoint& dp = dps[0]; + const ParsedDistributionPoint &dp = dps[0]; EXPECT_FALSE(dp.distribution_point_fullname); EXPECT_FALSE(dp.distribution_point_name_relative_to_crl_issuer); @@ -995,9 +996,8 @@ TEST_F(ParseCrlDistributionPointsTest, EmptyDistributionPoints) { } bool ParseAuthorityKeyIdentifierTestData( - const char* file_name, - std::string* backing_bytes, - ParsedAuthorityKeyIdentifier* authority_key_identifier) { + const char *file_name, std::string *backing_bytes, + ParsedAuthorityKeyIdentifier *authority_key_identifier) { // Read the test file. const PemBlockMapping mappings[] = { {"AUTHORITY_KEY_IDENTIFIER", backing_bytes}, @@ -1173,4 +1173,4 @@ TEST(ParseSubjectKeyIdentifierTest, ExtraData) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/parse_name.cc b/src/pki/parse_name.cc index db116f8..f1b3a91 100644 --- a/src/pki/parse_name.cc +++ b/src/pki/parse_name.cc @@ -6,11 +6,12 @@ #include <cassert> -#include "string_util.h" -#include "parse_values.h" #include <openssl/bytestring.h> #include <openssl/mem.h> +#include "parse_values.h" +#include "string_util.h" + namespace bssl { namespace { @@ -19,29 +20,30 @@ namespace { // string on error. std::string OidToString(der::Input oid) { CBS cbs; - CBS_init(&cbs, oid.UnsafeData(), oid.Length()); + CBS_init(&cbs, oid.data(), oid.size()); bssl::UniquePtr<char> text(CBS_asn1_oid_to_text(&cbs)); - if (!text) + if (!text) { return std::string(); + } return text.get(); } } // namespace -bool X509NameAttribute::ValueAsString(std::string* out) const { +bool X509NameAttribute::ValueAsString(std::string *out) const { switch (value_tag) { - case der::kTeletexString: + case CBS_ASN1_T61STRING: return der::ParseTeletexStringAsLatin1(value, out); - case der::kIA5String: + case CBS_ASN1_IA5STRING: return der::ParseIA5String(value, out); - case der::kPrintableString: + case CBS_ASN1_PRINTABLESTRING: return der::ParsePrintableString(value, out); - case der::kUtf8String: - *out = value.AsString(); + case CBS_ASN1_UTF8STRING: + *out = BytesAsStringView(value); return true; - case der::kUniversalString: + case CBS_ASN1_UNIVERSALSTRING: return der::ParseUniversalString(value, out); - case der::kBmpString: + case CBS_ASN1_BMPSTRING: return der::ParseBmpString(value, out); default: return false; @@ -49,27 +51,26 @@ bool X509NameAttribute::ValueAsString(std::string* out) const { } bool X509NameAttribute::ValueAsStringWithUnsafeOptions( - PrintableStringHandling printable_string_handling, - std::string* out) const { + PrintableStringHandling printable_string_handling, std::string *out) const { if (printable_string_handling == PrintableStringHandling::kAsUTF8Hack && - value_tag == der::kPrintableString) { - *out = value.AsString(); + value_tag == CBS_ASN1_PRINTABLESTRING) { + *out = BytesAsStringView(value); return true; } return ValueAsString(out); } -bool X509NameAttribute::ValueAsStringUnsafe(std::string* out) const { +bool X509NameAttribute::ValueAsStringUnsafe(std::string *out) const { switch (value_tag) { - case der::kIA5String: - case der::kPrintableString: - case der::kTeletexString: - case der::kUtf8String: - *out = value.AsString(); + case CBS_ASN1_IA5STRING: + case CBS_ASN1_PRINTABLESTRING: + case CBS_ASN1_T61STRING: + case CBS_ASN1_UTF8STRING: + *out = BytesAsStringView(value); return true; - case der::kUniversalString: + case CBS_ASN1_UNIVERSALSTRING: return der::ParseUniversalString(value, out); - case der::kBmpString: + case CBS_ASN1_BMPSTRING: return der::ParseBmpString(value, out); default: assert(0); // NOTREACHED @@ -77,7 +78,7 @@ bool X509NameAttribute::ValueAsStringUnsafe(std::string* out) const { } } -bool X509NameAttribute::AsRFC2253String(std::string* out) const { +bool X509NameAttribute::AsRFC2253String(std::string *out) const { std::string type_string; std::string value_string; // TODO(mattm): Add streetAddress and domainComponent here? @@ -101,20 +102,21 @@ bool X509NameAttribute::AsRFC2253String(std::string* out) const { type_string = "emailAddress"; } else { type_string = OidToString(type); - if (type_string.empty()) + if (type_string.empty()) { return false; - value_string = - "#" + bssl::string_util::HexEncode(value.UnsafeData(), value.Length()); + } + value_string = "#" + bssl::string_util::HexEncode(value); } if (value_string.empty()) { std::string unescaped; - if (!ValueAsStringUnsafe(&unescaped)) + if (!ValueAsStringUnsafe(&unescaped)) { return false; + } bool nonprintable = false; for (unsigned int i = 0; i < unescaped.length(); ++i) { - unsigned char c = static_cast<unsigned char>(unescaped[i]); + uint8_t c = static_cast<uint8_t>(unescaped[i]); if (i == 0 && c == '#') { value_string += "\\#"; } else if (i == 0 && c == ' ') { @@ -127,11 +129,8 @@ bool X509NameAttribute::AsRFC2253String(std::string* out) const { value_string += c; } else if (c < 32 || c > 126) { nonprintable = true; - std::string h; - h += c; value_string += - "\\" + bssl::string_util::HexEncode( - reinterpret_cast<const uint8_t*>(h.data()), h.length()); + "\\" + bssl::string_util::HexEncode(MakeConstSpan(&c, 1)); } else { value_string += c; } @@ -139,35 +138,39 @@ bool X509NameAttribute::AsRFC2253String(std::string* out) const { // If we have non-printable characters in a TeletexString, we hex encode // since we don't handle Teletex control codes. - if (nonprintable && value_tag == der::kTeletexString) - value_string = - "#" + bssl::string_util::HexEncode(value.UnsafeData(), value.Length()); + if (nonprintable && value_tag == CBS_ASN1_T61STRING) { + value_string = "#" + bssl::string_util::HexEncode(value); + } } *out = type_string + "=" + value_string; return true; } -bool ReadRdn(der::Parser* parser, RelativeDistinguishedName* out) { +bool ReadRdn(der::Parser *parser, RelativeDistinguishedName *out) { while (parser->HasMore()) { der::Parser attr_type_and_value; - if (!parser->ReadSequence(&attr_type_and_value)) + if (!parser->ReadSequence(&attr_type_and_value)) { return false; + } // Read the attribute type, which must be an OBJECT IDENTIFIER. der::Input type; - if (!attr_type_and_value.ReadTag(der::kOid, &type)) + if (!attr_type_and_value.ReadTag(CBS_ASN1_OBJECT, &type)) { return false; + } // Read the attribute value. - der::Tag tag; + CBS_ASN1_TAG tag; der::Input value; - if (!attr_type_and_value.ReadTagAndValue(&tag, &value)) + if (!attr_type_and_value.ReadTagAndValue(&tag, &value)) { return false; + } // There should be no more elements in the sequence after reading the // attribute type and value. - if (attr_type_and_value.HasMore()) + if (attr_type_and_value.HasMore()) { return false; + } out->push_back(X509NameAttribute(type, tag, value)); } @@ -177,45 +180,51 @@ bool ReadRdn(der::Parser* parser, RelativeDistinguishedName* out) { return out->size() != 0; } -bool ParseName(const der::Input& name_tlv, RDNSequence* out) { +bool ParseName(der::Input name_tlv, RDNSequence *out) { der::Parser name_parser(name_tlv); der::Input name_value; - if (!name_parser.ReadTag(der::kSequence, &name_value)) + if (!name_parser.ReadTag(CBS_ASN1_SEQUENCE, &name_value)) { return false; + } return ParseNameValue(name_value, out); } -bool ParseNameValue(const der::Input& name_value, RDNSequence* out) { +bool ParseNameValue(der::Input name_value, RDNSequence *out) { der::Parser rdn_sequence_parser(name_value); while (rdn_sequence_parser.HasMore()) { der::Parser rdn_parser; - if (!rdn_sequence_parser.ReadConstructed(der::kSet, &rdn_parser)) + if (!rdn_sequence_parser.ReadConstructed(CBS_ASN1_SET, &rdn_parser)) { return false; + } RelativeDistinguishedName type_and_values; - if (!ReadRdn(&rdn_parser, &type_and_values)) + if (!ReadRdn(&rdn_parser, &type_and_values)) { return false; + } out->push_back(type_and_values); } return true; } -bool ConvertToRFC2253(const RDNSequence& rdn_sequence, std::string* out) { +bool ConvertToRFC2253(const RDNSequence &rdn_sequence, std::string *out) { std::string rdns_string; size_t size = rdn_sequence.size(); for (size_t i = 0; i < size; ++i) { RelativeDistinguishedName rdn = rdn_sequence[size - i - 1]; std::string rdn_string; - for (const auto& atv : rdn) { - if (!rdn_string.empty()) + for (const auto &atv : rdn) { + if (!rdn_string.empty()) { rdn_string += "+"; + } std::string atv_string; - if (!atv.AsRFC2253String(&atv_string)) + if (!atv.AsRFC2253String(&atv_string)) { return false; + } rdn_string += atv_string; } - if (!rdns_string.empty()) + if (!rdns_string.empty()) { rdns_string += ","; + } rdns_string += rdn_string; } @@ -223,4 +232,4 @@ bool ConvertToRFC2253(const RDNSequence& rdn_sequence, std::string* out) { return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/parse_name.h b/src/pki/parse_name.h index 2a37c05..be5c53e 100644 --- a/src/pki/parse_name.h +++ b/src/pki/parse_name.h @@ -5,13 +5,13 @@ #ifndef BSSL_PKI_PARSE_NAME_H_ #define BSSL_PKI_PARSE_NAME_H_ -#include "fillins/openssl_util.h" #include <vector> +#include <openssl/base.h> +#include <openssl/bytestring.h> #include "input.h" #include "parser.h" -#include "tag.h" namespace bssl { @@ -65,8 +65,7 @@ inline constexpr uint8_t kTypeEmailAddressOid[] = {0x2A, 0x86, 0x48, 0x86, 0xF7, // value AttributeValue // } struct OPENSSL_EXPORT X509NameAttribute { - X509NameAttribute(der::Input in_type, - der::Tag in_value_tag, + X509NameAttribute(der::Input in_type, CBS_ASN1_TAG in_value_tag, der::Input in_value) : type(in_type), value_tag(in_value_tag), value(in_value) {} @@ -78,7 +77,7 @@ struct OPENSSL_EXPORT X509NameAttribute { // Attempts to convert the value represented by this struct into a // UTF-8 string and store it in |out|, returning whether the conversion // was successful. - [[nodiscard]] bool ValueAsString(std::string* out) const; + [[nodiscard]] bool ValueAsString(std::string *out) const; // Attempts to convert the value represented by this struct into a // UTF-8 string and store it in |out|, returning whether the conversion @@ -88,7 +87,7 @@ struct OPENSSL_EXPORT X509NameAttribute { // Do not use without consulting //net owners. [[nodiscard]] bool ValueAsStringWithUnsafeOptions( PrintableStringHandling printable_string_handling, - std::string* out) const; + std::string *out) const; // Attempts to convert the value represented by this struct into a // std::string and store it in |out|, returning whether the conversion was @@ -100,14 +99,14 @@ struct OPENSSL_EXPORT X509NameAttribute { // // Note: The conversion doesn't verify that the value corresponds to the // ASN.1 definition of the value type. - [[nodiscard]] bool ValueAsStringUnsafe(std::string* out) const; + [[nodiscard]] bool ValueAsStringUnsafe(std::string *out) const; // Formats the NameAttribute per RFC2253 into an ASCII string and stores // the result in |out|, returning whether the conversion was successful. - [[nodiscard]] bool AsRFC2253String(std::string* out) const; + [[nodiscard]] bool AsRFC2253String(std::string *out) const; der::Input type; - der::Tag value_tag; + CBS_ASN1_TAG value_tag; der::Input value; }; @@ -136,23 +135,23 @@ typedef std::vector<RelativeDistinguishedName> RDNSequence; // // The type of the component AttributeValue is determined by the AttributeType; // in general it will be a DirectoryString. -[[nodiscard]] OPENSSL_EXPORT bool ReadRdn(der::Parser* parser, - RelativeDistinguishedName* out); +[[nodiscard]] OPENSSL_EXPORT bool ReadRdn(der::Parser *parser, + RelativeDistinguishedName *out); // Parses a DER-encoded "Name" as specified by 5280. Returns true on success // and sets the results in |out|. -[[nodiscard]] OPENSSL_EXPORT bool ParseName(const der::Input& name_tlv, - RDNSequence* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseName(der::Input name_tlv, + RDNSequence *out); // Parses a DER-encoded "Name" value (without the sequence tag & length) as // specified by 5280. Returns true on success and sets the results in |out|. -[[nodiscard]] OPENSSL_EXPORT bool ParseNameValue(const der::Input& name_value, - RDNSequence* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseNameValue(der::Input name_value, + RDNSequence *out); // Formats a RDNSequence |rdn_sequence| per RFC2253 as an ASCII string and // stores the result into |out|, and returns whether the conversion was // successful. -[[nodiscard]] OPENSSL_EXPORT bool ConvertToRFC2253(const RDNSequence& rdn_sequence, - std::string* out); -} // namespace net +[[nodiscard]] OPENSSL_EXPORT bool ConvertToRFC2253( + const RDNSequence &rdn_sequence, std::string *out); +} // namespace bssl #endif // BSSL_PKI_PARSE_NAME_H_ diff --git a/src/pki/parse_name_unittest.cc b/src/pki/parse_name_unittest.cc index fec2e07..ceef9c2 100644 --- a/src/pki/parse_name_unittest.cc +++ b/src/pki/parse_name_unittest.cc @@ -4,8 +4,8 @@ #include "parse_name.h" -#include "test_helpers.h" #include <gtest/gtest.h> +#include "test_helpers.h" namespace bssl { @@ -16,10 +16,10 @@ namespace { // |value_type| indicates what ASN.1 type is used to encode the data. // |suffix| indicates any additional modifications, such as caseswapping, // whitespace adding, etc. -::testing::AssertionResult LoadTestData(const std::string& prefix, - const std::string& value_type, - const std::string& suffix, - std::string* result) { +::testing::AssertionResult LoadTestData(const std::string &prefix, + const std::string &value_type, + const std::string &suffix, + std::string *result) { std::string path = "testdata/verify_name_match_unittest/names/" + prefix + "-" + value_type + "-" + suffix + ".pem"; @@ -36,7 +36,7 @@ TEST(ParseNameTest, IA5SafeStringValue) { const uint8_t der[] = { 0x46, 0x6f, 0x6f, 0x20, 0x62, 0x61, 0x72, }; - X509NameAttribute value(der::Input(), der::kIA5String, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_IA5STRING, der::Input(der)); std::string result_unsafe; ASSERT_TRUE(value.ValueAsStringUnsafe(&result_unsafe)); ASSERT_EQ("Foo bar", result_unsafe); @@ -49,7 +49,7 @@ TEST(ParseNameTest, IA5UnsafeStringValue) { const uint8_t der[] = { 0x46, 0x6f, 0xFF, 0x20, 0x62, 0x61, 0x72, }; - X509NameAttribute value(der::Input(), der::kIA5String, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_IA5STRING, der::Input(der)); std::string result_unsafe; ASSERT_TRUE(value.ValueAsStringUnsafe(&result_unsafe)); ASSERT_EQ("Fo\377 bar", result_unsafe); @@ -61,7 +61,8 @@ TEST(ParseNameTest, PrintableSafeStringValue) { const uint8_t der[] = { 0x46, 0x6f, 0x6f, 0x20, 0x62, 0x61, 0x72, }; - X509NameAttribute value(der::Input(), der::kPrintableString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_PRINTABLESTRING, + der::Input(der)); std::string result_unsafe; ASSERT_TRUE(value.ValueAsStringUnsafe(&result_unsafe)); ASSERT_EQ("Foo bar", result_unsafe); @@ -74,7 +75,8 @@ TEST(ParseNameTest, PrintableUnsafeStringValue) { const uint8_t der[] = { 0x46, 0x6f, 0x5f, 0x20, 0x62, 0x61, 0x72, }; - X509NameAttribute value(der::Input(), der::kPrintableString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_PRINTABLESTRING, + der::Input(der)); std::string result_unsafe; ASSERT_TRUE(value.ValueAsStringUnsafe(&result_unsafe)); ASSERT_EQ("Fo_ bar", result_unsafe); @@ -86,7 +88,8 @@ TEST(ParseNameTest, PrintableStringUnsafeOptions) { const uint8_t der[] = { 0x46, 0x6f, 0x5f, 0x20, 0x62, 0x61, 0x72, }; - X509NameAttribute value(der::Input(), der::kPrintableString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_PRINTABLESTRING, + der::Input(der)); std::string result; ASSERT_FALSE(value.ValueAsStringWithUnsafeOptions( X509NameAttribute::PrintableStringHandling::kDefault, &result)); @@ -99,7 +102,7 @@ TEST(ParseNameTest, TeletexSafeStringValue) { const uint8_t der[] = { 0x46, 0x6f, 0x6f, 0x20, 0x62, 0x61, 0x72, }; - X509NameAttribute value(der::Input(), der::kTeletexString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_T61STRING, der::Input(der)); std::string result_unsafe; ASSERT_TRUE(value.ValueAsStringUnsafe(&result_unsafe)); ASSERT_EQ("Foo bar", result_unsafe); @@ -112,7 +115,7 @@ TEST(ParseNameTest, TeletexLatin1StringValue) { const uint8_t der[] = { 0x46, 0x6f, 0xd6, 0x20, 0x62, 0x61, 0x72, }; - X509NameAttribute value(der::Input(), der::kTeletexString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_T61STRING, der::Input(der)); std::string result_unsafe; ASSERT_TRUE(value.ValueAsStringUnsafe(&result_unsafe)); ASSERT_EQ("Fo\xd6 bar", result_unsafe); @@ -125,7 +128,7 @@ TEST(ParseNameTest, ConvertBmpString) { const uint8_t der[] = { 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x61, 0x00, 0x72, }; - X509NameAttribute value(der::Input(), der::kBmpString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_BMPSTRING, der::Input(der)); std::string result_unsafe; ASSERT_TRUE(value.ValueAsStringUnsafe(&result_unsafe)); ASSERT_EQ("foobar", result_unsafe); @@ -137,7 +140,7 @@ TEST(ParseNameTest, ConvertBmpString) { // BmpString must encode characters in pairs of 2 bytes. TEST(ParseNameTest, ConvertInvalidBmpString) { const uint8_t der[] = {0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72, 0x72}; - X509NameAttribute value(der::Input(), der::kBmpString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_BMPSTRING, der::Input(der)); std::string result; ASSERT_FALSE(value.ValueAsStringUnsafe(&result)); ASSERT_FALSE(value.ValueAsString(&result)); @@ -147,7 +150,8 @@ TEST(ParseNameTest, ConvertUniversalString) { const uint8_t der[] = {0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x72}; - X509NameAttribute value(der::Input(), der::kUniversalString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_UNIVERSALSTRING, + der::Input(der)); std::string result_unsafe; ASSERT_TRUE(value.ValueAsStringUnsafe(&result_unsafe)); ASSERT_EQ("foobar", result_unsafe); @@ -159,7 +163,8 @@ TEST(ParseNameTest, ConvertUniversalString) { // UniversalString must encode characters in pairs of 4 bytes. TEST(ParseNameTest, ConvertInvalidUniversalString) { const uint8_t der[] = {0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72}; - X509NameAttribute value(der::Input(), der::kUniversalString, der::Input(der)); + X509NameAttribute value(der::Input(), CBS_ASN1_UNIVERSALSTRING, + der::Input(der)); std::string result; ASSERT_FALSE(value.ValueAsStringUnsafe(&result)); ASSERT_FALSE(value.ValueAsString(&result)); @@ -187,13 +192,13 @@ TEST(ParseNameTest, ValidName) { ASSERT_EQ(3u, atv.size()); ASSERT_EQ(1u, atv[0].size()); ASSERT_EQ(der::Input(kTypeCountryNameOid), atv[0][0].type); - ASSERT_EQ("US", atv[0][0].value.AsString()); + ASSERT_EQ("US", BytesAsStringView(atv[0][0].value)); ASSERT_EQ(1u, atv[1].size()); ASSERT_EQ(der::Input(kTypeOrganizationNameOid), atv[1][0].type); - ASSERT_EQ("Google Inc.", atv[1][0].value.AsString()); + ASSERT_EQ("Google Inc.", BytesAsStringView(atv[1][0].value)); ASSERT_EQ(1u, atv[2].size()); ASSERT_EQ(der::Input(kTypeCommonNameOid), atv[2][0].type); - ASSERT_EQ("Google Test CA", atv[2][0].value.AsString()); + ASSERT_EQ("Google Test CA", BytesAsStringView(atv[2][0].value)); } TEST(ParseNameTest, InvalidNameExtraData) { @@ -358,4 +363,4 @@ TEST(ParseNameTest, RFC2253FormatUTF8) { ASSERT_EQ("SN=Lu\\C4\\8Di\\C4\\87", output); } -} // namespace net +} // namespace bssl diff --git a/src/pki/parse_values.cc b/src/pki/parse_values.cc index 505a10c..8d07b3d 100644 --- a/src/pki/parse_values.cc +++ b/src/pki/parse_values.cc @@ -16,16 +16,18 @@ namespace bssl::der { namespace { -bool ParseBoolInternal(const Input& in, bool* out, bool relaxed) { +bool ParseBoolInternal(Input in, bool *out, bool relaxed) { // According to ITU-T X.690 section 8.2, a bool is encoded as a single octet // where the octet of all zeroes is FALSE and a non-zero value for the octet // is TRUE. - if (in.Length() != 1) + if (in.size() != 1) { return false; + } ByteReader data(in); uint8_t byte; - if (!data.ReadByte(&byte)) + if (!data.ReadByte(&byte)) { return false; + } if (byte == 0) { *out = false; return true; @@ -44,7 +46,7 @@ bool ParseBoolInternal(const Input& in, bool* out, bool relaxed) { // enough to hold 10^digits - 1; the caller must choose an appropriate type // based on the number of digits they wish to parse. template <typename UINT> -bool DecimalStringToUint(ByteReader& in, size_t digits, UINT* out) { +bool DecimalStringToUint(ByteReader &in, size_t digits, UINT *out) { UINT value = 0; for (size_t i = 0; i < digits; ++i) { uint8_t digit; @@ -66,11 +68,13 @@ bool DecimalStringToUint(ByteReader& in, size_t digits, UINT* out) { // hours are between 0 and 23, minutes between 0 and 59, and seconds between // 0 and 60 (to allow for leap seconds; no validation is done that a leap // second is on a day that could be a leap second). -bool ValidateGeneralizedTime(const GeneralizedTime& time) { - if (time.month < 1 || time.month > 12) +bool ValidateGeneralizedTime(const GeneralizedTime &time) { + if (time.month < 1 || time.month > 12) { return false; - if (time.day < 1) + } + if (time.day < 1) { return false; + } if (time.hours > 23) { return false; } @@ -88,8 +92,9 @@ bool ValidateGeneralizedTime(const GeneralizedTime& time) { case 6: case 9: case 11: - if (time.day > 30) + if (time.day > 30) { return false; + } break; case 1: case 3: @@ -98,17 +103,20 @@ bool ValidateGeneralizedTime(const GeneralizedTime& time) { case 8: case 10: case 12: - if (time.day > 31) + if (time.day > 31) { return false; + } break; case 2: if (time.year % 4 == 0 && (time.year % 100 != 0 || time.year % 400 == 0)) { - if (time.day > 29) + if (time.day > 29) { return false; + } } else { - if (time.day > 28) + if (time.day > 28) { return false; + } } break; default: @@ -120,26 +128,28 @@ bool ValidateGeneralizedTime(const GeneralizedTime& time) { // Returns the number of bytes of numeric precision in a DER encoded INTEGER // value. |in| must be a valid DER encoding of an INTEGER for this to work. // -// Normally the precision of the number is exactly in.Length(). However when +// Normally the precision of the number is exactly in.size(). However when // encoding positive numbers using DER it is possible to have a leading zero // (to prevent number from being interpreted as negative). // // For instance a 160-bit positive number might take 21 bytes to encode. This // function will return 20 in such a case. -size_t GetUnsignedIntegerLength(const Input& in) { +size_t GetUnsignedIntegerLength(Input in) { der::ByteReader reader(in); uint8_t first_byte; - if (!reader.ReadByte(&first_byte)) + if (!reader.ReadByte(&first_byte)) { return 0; // Not valid DER as |in| was empty. + } - if (first_byte == 0 && in.Length() > 1) - return in.Length() - 1; - return in.Length(); + if (first_byte == 0 && in.size() > 1) { + return in.size() - 1; + } + return in.size(); } } // namespace -bool ParseBool(const Input& in, bool* out) { +bool ParseBool(Input in, bool *out) { return ParseBoolInternal(in, out, false /* relaxed */); } @@ -147,7 +157,7 @@ bool ParseBool(const Input& in, bool* out) { // have either all bits zero (false) or all bits one (true). To support // malformed certs, we recognized the BER encoding instead of failing to // parse. -bool ParseBoolRelaxed(const Input& in, bool* out) { +bool ParseBoolRelaxed(Input in, bool *out) { return ParseBoolInternal(in, out, true /* relaxed */); } @@ -155,9 +165,9 @@ bool ParseBoolRelaxed(const Input& in, bool* out) { // in the smallest number of octets. If the encoding consists of more than // one octet, then the bits of the first octet and the most significant bit // of the second octet must not be all zeroes or all ones. -bool IsValidInteger(const Input& in, bool* negative) { +bool IsValidInteger(Input in, bool *negative) { CBS cbs; - CBS_init(&cbs, in.UnsafeData(), in.Length()); + CBS_init(&cbs, in.data(), in.size()); int negative_int; if (!CBS_is_valid_asn1_integer(&cbs, &negative_int)) { return false; @@ -167,15 +177,17 @@ bool IsValidInteger(const Input& in, bool* negative) { return true; } -bool ParseUint64(const Input& in, uint64_t* out) { +bool ParseUint64(Input in, uint64_t *out) { // Reject non-minimally encoded numbers and negative numbers. bool negative; - if (!IsValidInteger(in, &negative) || negative) + if (!IsValidInteger(in, &negative) || negative) { return false; + } // Reject (non-negative) integers whose value would overflow the output type. - if (GetUnsignedIntegerLength(in) > sizeof(*out)) + if (GetUnsignedIntegerLength(in) > sizeof(*out)) { return false; + } ByteReader reader(in); uint8_t data; @@ -189,26 +201,27 @@ bool ParseUint64(const Input& in, uint64_t* out) { return true; } -bool ParseUint8(const Input& in, uint8_t* out) { +bool ParseUint8(Input in, uint8_t *out) { // TODO(eroman): Implement this more directly. uint64_t value; - if (!ParseUint64(in, &value)) + if (!ParseUint64(in, &value)) { return false; + } - if (value > 0xFF) + if (value > 0xFF) { return false; + } *out = static_cast<uint8_t>(value); return true; } -BitString::BitString(const Input& bytes, uint8_t unused_bits) +BitString::BitString(Input bytes, uint8_t unused_bits) : bytes_(bytes), unused_bits_(unused_bits) { BSSL_CHECK(unused_bits < 8); - BSSL_CHECK(unused_bits == 0 || bytes.Length() != 0); + BSSL_CHECK(unused_bits == 0 || !bytes.empty()); // The unused bits must be zero. - BSSL_CHECK(bytes.Length() == 0 || - (bytes[bytes.Length() - 1] & ((1u << unused_bits) - 1)) == 0); + BSSL_CHECK(bytes.empty() || (bytes.back() & ((1u << unused_bits) - 1)) == 0); } bool BitString::AssertsBit(size_t bit_index) const { @@ -217,8 +230,9 @@ bool BitString::AssertsBit(size_t bit_index) const { // If the bit is outside of the bitstring, by definition it is not // asserted. - if (byte_index >= bytes_.Length()) + if (byte_index >= bytes_.size()) { return false; + } // Within a byte, bits are ordered from most significant to least significant. // Convert |bit_index| to an index within the |byte_index| byte, measured from @@ -232,7 +246,7 @@ bool BitString::AssertsBit(size_t bit_index) const { return 0 != (byte & (1 << bit_index_in_byte)); } -std::optional<BitString> ParseBitString(const Input& in) { +std::optional<BitString> ParseBitString(Input in) { ByteReader reader(in); // From ITU-T X.690, section 8.6.2.2 (applies to BER, CER, DER): @@ -241,14 +255,17 @@ std::optional<BitString> ParseBitString(const Input& in) { // bit 1 as the least significant bit, the number of unused bits in the final // subsequent octet. The number shall be in the range zero to seven. uint8_t unused_bits; - if (!reader.ReadByte(&unused_bits)) + if (!reader.ReadByte(&unused_bits)) { return std::nullopt; - if (unused_bits > 7) + } + if (unused_bits > 7) { return std::nullopt; + } Input bytes; - if (!reader.ReadBytes(reader.BytesLeft(), &bytes)) + if (!reader.ReadBytes(reader.BytesLeft(), &bytes)) { return std::nullopt; // Not reachable. + } // Ensure that unused bits in the last byte are set to 0. if (unused_bits > 0) { @@ -256,17 +273,19 @@ std::optional<BitString> ParseBitString(const Input& in) { // // If the bitstring is empty, there shall be no subsequent octets, // and the initial octet shall be zero. - if (bytes.Length() == 0) + if (bytes.empty()) { return std::nullopt; - uint8_t last_byte = bytes[bytes.Length() - 1]; + } + uint8_t last_byte = bytes.back(); // From ITU-T X.690, section 11.2.1 (applies to CER and DER, but not BER): // // Each unused bit in the final octet of the encoding of a bit string value // shall be set to zero. uint8_t mask = 0xFF >> (8 - unused_bits); - if ((mask & last_byte) != 0) + if ((mask & last_byte) != 0) { return std::nullopt; + } } return BitString(bytes, unused_bits); @@ -276,25 +295,25 @@ bool GeneralizedTime::InUTCTimeRange() const { return 1950 <= year && year < 2050; } -bool operator<(const GeneralizedTime& lhs, const GeneralizedTime& rhs) { +bool operator<(const GeneralizedTime &lhs, const GeneralizedTime &rhs) { return std::tie(lhs.year, lhs.month, lhs.day, lhs.hours, lhs.minutes, lhs.seconds) < std::tie(rhs.year, rhs.month, rhs.day, rhs.hours, rhs.minutes, rhs.seconds); } -bool operator>(const GeneralizedTime& lhs, const GeneralizedTime& rhs) { +bool operator>(const GeneralizedTime &lhs, const GeneralizedTime &rhs) { return rhs < lhs; } -bool operator<=(const GeneralizedTime& lhs, const GeneralizedTime& rhs) { +bool operator<=(const GeneralizedTime &lhs, const GeneralizedTime &rhs) { return !(lhs > rhs); } -bool operator>=(const GeneralizedTime& lhs, const GeneralizedTime& rhs) { +bool operator>=(const GeneralizedTime &lhs, const GeneralizedTime &rhs) { return !(lhs < rhs); } -bool ParseUTCTime(const Input& in, GeneralizedTime* value) { +bool ParseUTCTime(Input in, GeneralizedTime *value) { ByteReader reader(in); GeneralizedTime time; if (!DecimalStringToUint(reader, 2, &time.year) || @@ -306,20 +325,22 @@ bool ParseUTCTime(const Input& in, GeneralizedTime* value) { return false; } uint8_t zulu; - if (!reader.ReadByte(&zulu) || zulu != 'Z' || reader.HasMore()) + if (!reader.ReadByte(&zulu) || zulu != 'Z' || reader.HasMore()) { return false; + } if (time.year < 50) { time.year += 2000; } else { time.year += 1900; } - if (!ValidateGeneralizedTime(time)) + if (!ValidateGeneralizedTime(time)) { return false; + } *value = time; return true; } -bool ParseGeneralizedTime(const Input& in, GeneralizedTime* value) { +bool ParseGeneralizedTime(Input in, GeneralizedTime *value) { ByteReader reader(in); GeneralizedTime time; if (!DecimalStringToUint(reader, 4, &time.year) || @@ -331,60 +352,64 @@ bool ParseGeneralizedTime(const Input& in, GeneralizedTime* value) { return false; } uint8_t zulu; - if (!reader.ReadByte(&zulu) || zulu != 'Z' || reader.HasMore()) + if (!reader.ReadByte(&zulu) || zulu != 'Z' || reader.HasMore()) { return false; - if (!ValidateGeneralizedTime(time)) + } + if (!ValidateGeneralizedTime(time)) { return false; + } *value = time; return true; } -bool ParseIA5String(Input in, std::string* out) { - for (char c : in.AsStringView()) { - if (static_cast<uint8_t>(c) > 127) +bool ParseIA5String(Input in, std::string *out) { + for (uint8_t c : in) { + if (c > 127) { return false; + } } - *out = in.AsString(); + *out = BytesAsStringView(in); return true; } -bool ParseVisibleString(Input in, std::string* out) { +bool ParseVisibleString(Input in, std::string *out) { // ITU-T X.680: // VisibleString : "Defining registration number 6" + SPACE // 6 includes all the characters from '!' .. '~' (33 .. 126), space is 32. // Also ITU-T X.691 says it much more clearly: // "for VisibleString [the range] is 32 to 126 ... For VisibleString .. all // the values in the range are present." - for (char c : in.AsStringView()) { - if (static_cast<uint8_t>(c) < 32 || static_cast<uint8_t>(c) > 126) + for (uint8_t c : in) { + if (c < 32 || c > 126) { return false; + } } - *out = in.AsString(); + *out = BytesAsStringView(in); return true; } -bool ParsePrintableString(Input in, std::string* out) { - for (char c : in.AsStringView()) { +bool ParsePrintableString(Input in, std::string *out) { + for (uint8_t c : in) { if (!(OPENSSL_isalpha(c) || c == ' ' || (c >= '\'' && c <= ':') || c == '=' || c == '?')) { return false; } } - *out = in.AsString(); + *out = BytesAsStringView(in); return true; } -bool ParseTeletexStringAsLatin1(Input in, std::string* out) { +bool ParseTeletexStringAsLatin1(Input in, std::string *out) { out->clear(); // Convert from Latin-1 to UTF-8. - size_t utf8_length = in.Length(); - for (size_t i = 0; i < in.Length(); i++) { + size_t utf8_length = in.size(); + for (size_t i = 0; i < in.size(); i++) { if (in[i] > 0x7f) { utf8_length++; } } out->reserve(utf8_length); - for (size_t i = 0; i < in.Length(); i++) { + for (size_t i = 0; i < in.size(); i++) { uint8_t u = in[i]; if (u <= 0x7f) { out->push_back(u); @@ -397,15 +422,15 @@ bool ParseTeletexStringAsLatin1(Input in, std::string* out) { return true; } -bool ParseUniversalString(Input in, std::string* out) { - if (in.Length() % 4 != 0) { +bool ParseUniversalString(Input in, std::string *out) { + if (in.size() % 4 != 0) { return false; } CBS cbs; - CBS_init(&cbs, in.UnsafeData(), in.Length()); + CBS_init(&cbs, in.data(), in.size()); bssl::ScopedCBB cbb; - if (!CBB_init(cbb.get(), in.Length())) { + if (!CBB_init(cbb.get(), in.size())) { return false; } @@ -421,15 +446,15 @@ bool ParseUniversalString(Input in, std::string* out) { return true; } -bool ParseBmpString(Input in, std::string* out) { - if (in.Length() % 2 != 0) { +bool ParseBmpString(Input in, std::string *out) { + if (in.size() % 2 != 0) { return false; } CBS cbs; - CBS_init(&cbs, in.UnsafeData(), in.Length()); + CBS_init(&cbs, in.data(), in.size()); bssl::ScopedCBB cbb; - if (!CBB_init(cbb.get(), in.Length())) { + if (!CBB_init(cbb.get(), in.size())) { return false; } diff --git a/src/pki/parse_values.h b/src/pki/parse_values.h index ca65873..1b7ed12 100644 --- a/src/pki/parse_values.h +++ b/src/pki/parse_values.h @@ -5,23 +5,24 @@ #ifndef BSSL_DER_PARSE_VALUES_H_ #define BSSL_DER_PARSE_VALUES_H_ -#include "fillins/openssl_util.h" #include <stdint.h> +#include <optional> + +#include <openssl/base.h> #include "input.h" -#include <optional> namespace bssl::der { // Reads a DER-encoded ASN.1 BOOLEAN value from |in| and puts the resulting // value in |out|. Returns whether the encoded value could successfully be // read. -[[nodiscard]] OPENSSL_EXPORT bool ParseBool(const Input& in, bool* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseBool(Input in, bool *out); // Like ParseBool, except it is more relaxed in what inputs it accepts: Any // value that is a valid BER encoding will be parsed successfully. -[[nodiscard]] OPENSSL_EXPORT bool ParseBoolRelaxed(const Input& in, bool* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseBoolRelaxed(Input in, bool *out); // Checks the validity of a DER-encoded ASN.1 INTEGER value from |in|, and // determines the sign of the number. Returns true on success and @@ -31,7 +32,7 @@ namespace bssl::der { // in: The value portion of an INTEGER. // negative: Out parameter that is set to true if the number is negative // and false otherwise (zero is non-negative). -[[nodiscard]] OPENSSL_EXPORT bool IsValidInteger(const Input& in, bool* negative); +[[nodiscard]] OPENSSL_EXPORT bool IsValidInteger(Input in, bool *negative); // Reads a DER-encoded ASN.1 INTEGER value from |in| and puts the resulting // value in |out|. ASN.1 INTEGERs are arbitrary precision; this function is @@ -39,10 +40,10 @@ namespace bssl::der { // and is between 0 and 2^64-1. This function returns false if the value is too // big to fit in a uint64_t, is negative, or if there is an error reading the // integer. -[[nodiscard]] OPENSSL_EXPORT bool ParseUint64(const Input& in, uint64_t* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseUint64(Input in, uint64_t *out); // Same as ParseUint64() but for a uint8_t. -[[nodiscard]] OPENSSL_EXPORT bool ParseUint8(const Input& in, uint8_t* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseUint8(Input in, uint8_t *out); // The BitString class is a helper for representing a valid parsed BIT STRING. // @@ -57,9 +58,9 @@ class OPENSSL_EXPORT BitString { // |unused_bits| represents the number of bits in the last octet of |bytes|, // starting from the least significant bit, that are unused. It MUST be < 8. // And if bytes is empty, then it MUST be 0. - BitString(const Input& bytes, uint8_t unused_bits); + BitString(Input bytes, uint8_t unused_bits); - const Input& bytes() const { return bytes_; } + Input bytes() const { return bytes_; } uint8_t unused_bits() const { return unused_bits_; } // Returns true if the bit string contains 1 at the specified position. @@ -81,8 +82,7 @@ class OPENSSL_EXPORT BitString { // resulting octet string and number of unused bits. // // On failure, returns std::nullopt. -[[nodiscard]] OPENSSL_EXPORT std::optional<BitString> ParseBitString( - const Input& in); +[[nodiscard]] OPENSSL_EXPORT std::optional<BitString> ParseBitString(Input in); struct OPENSSL_EXPORT GeneralizedTime { uint16_t year; @@ -96,39 +96,40 @@ struct OPENSSL_EXPORT GeneralizedTime { bool InUTCTimeRange() const; }; -OPENSSL_EXPORT bool operator<(const GeneralizedTime& lhs, - const GeneralizedTime& rhs); -OPENSSL_EXPORT bool operator<=(const GeneralizedTime& lhs, - const GeneralizedTime& rhs); -OPENSSL_EXPORT bool operator>(const GeneralizedTime& lhs, - const GeneralizedTime& rhs); -OPENSSL_EXPORT bool operator>=(const GeneralizedTime& lhs, - const GeneralizedTime& rhs); +OPENSSL_EXPORT bool operator<(const GeneralizedTime &lhs, + const GeneralizedTime &rhs); +OPENSSL_EXPORT bool operator<=(const GeneralizedTime &lhs, + const GeneralizedTime &rhs); +OPENSSL_EXPORT bool operator>(const GeneralizedTime &lhs, + const GeneralizedTime &rhs); +OPENSSL_EXPORT bool operator>=(const GeneralizedTime &lhs, + const GeneralizedTime &rhs); // Reads a DER-encoded ASN.1 UTCTime value from |in| and puts the resulting // value in |out|, returning true if the UTCTime could be parsed successfully. -[[nodiscard]] OPENSSL_EXPORT bool ParseUTCTime(const Input& in, - GeneralizedTime* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseUTCTime(Input in, GeneralizedTime *out); // Reads a DER-encoded ASN.1 GeneralizedTime value from |in| and puts the // resulting value in |out|, returning true if the GeneralizedTime could // be parsed successfully. This function is even more restrictive than the // DER rules - it follows the rules from RFC5280, which does not allow for // fractional seconds. -[[nodiscard]] OPENSSL_EXPORT bool ParseGeneralizedTime(const Input& in, - GeneralizedTime* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseGeneralizedTime(Input in, + GeneralizedTime *out); // Reads a DER-encoded ASN.1 IA5String value from |in| and stores the result in // |out| as ASCII, returning true if successful. -[[nodiscard]] OPENSSL_EXPORT bool ParseIA5String(Input in, std::string* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseIA5String(Input in, std::string *out); // Reads a DER-encoded ASN.1 VisibleString value from |in| and stores the result // in |out| as ASCII, returning true if successful. -[[nodiscard]] OPENSSL_EXPORT bool ParseVisibleString(Input in, std::string* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseVisibleString(Input in, + std::string *out); // Reads a DER-encoded ASN.1 PrintableString value from |in| and stores the // result in |out| as ASCII, returning true if successful. -[[nodiscard]] OPENSSL_EXPORT bool ParsePrintableString(Input in, std::string* out); +[[nodiscard]] OPENSSL_EXPORT bool ParsePrintableString(Input in, + std::string *out); // Reads a DER-encoded ASN.1 TeletexString value from |in|, treating it as // Latin-1, and stores the result in |out| as UTF-8, returning true if @@ -137,15 +138,16 @@ OPENSSL_EXPORT bool operator>=(const GeneralizedTime& lhs, // This is for compatibility with legacy implementations that would use Latin-1 // encoding but tag it as TeletexString. [[nodiscard]] OPENSSL_EXPORT bool ParseTeletexStringAsLatin1(Input in, - std::string* out); + std::string *out); // Reads a DER-encoded ASN.1 UniversalString value from |in| and stores the // result in |out| as UTF-8, returning true if successful. -[[nodiscard]] OPENSSL_EXPORT bool ParseUniversalString(Input in, std::string* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseUniversalString(Input in, + std::string *out); // Reads a DER-encoded ASN.1 BMPString value from |in| and stores the // result in |out| as UTF-8, returning true if successful. -[[nodiscard]] OPENSSL_EXPORT bool ParseBmpString(Input in, std::string* out); +[[nodiscard]] OPENSSL_EXPORT bool ParseBmpString(Input in, std::string *out); } // namespace bssl::der diff --git a/src/pki/parse_values_unittest.cc b/src/pki/parse_values_unittest.cc index 7eab66a..e29b4b9 100644 --- a/src/pki/parse_values_unittest.cc +++ b/src/pki/parse_values_unittest.cc @@ -13,10 +13,10 @@ namespace bssl::der::test { namespace { template <size_t N> -Input FromStringLiteral(const char(&data)[N]) { +Input FromStringLiteral(const char (&data)[N]) { // Strings are null-terminated. The null terminating byte shouldn't be // included in the Input, so the size is N - 1 instead of N. - return Input(reinterpret_cast<const uint8_t*>(data), N - 1); + return Input(reinterpret_cast<const uint8_t *>(data), N - 1); } } // namespace @@ -127,9 +127,8 @@ TEST(ParseValuesTest, ParseTimes) { ParseGeneralizedTime(FromStringLiteral("20001231010203Z\0"), &out)); // Check what happens when a null byte is in the middle of the input. - EXPECT_FALSE(ParseGeneralizedTime(FromStringLiteral( - "200\0" - "1231010203Z"), + EXPECT_FALSE(ParseGeneralizedTime(FromStringLiteral("200\0" + "1231010203Z"), &out)); // The year can't be in hex. @@ -214,7 +213,7 @@ const Uint64TestData kUint64TestData[] = { TEST(ParseValuesTest, ParseUint64) { for (size_t i = 0; i < std::size(kUint64TestData); i++) { - const Uint64TestData& test_case = kUint64TestData[i]; + const Uint64TestData &test_case = kUint64TestData[i]; SCOPED_TRACE(i); uint64_t result; @@ -251,7 +250,7 @@ const Uint8TestData kUint8TestData[] = { TEST(ParseValuesTest, ParseUint8) { for (size_t i = 0; i < std::size(kUint8TestData); i++) { - const Uint8TestData& test_case = kUint8TestData[i]; + const Uint8TestData &test_case = kUint8TestData[i]; SCOPED_TRACE(i); uint8_t result; @@ -297,7 +296,7 @@ const IsValidIntegerTestData kIsValidIntegerTestData[] = { TEST(ParseValuesTest, IsValidInteger) { for (size_t i = 0; i < std::size(kIsValidIntegerTestData); i++) { - const auto& test_case = kIsValidIntegerTestData[i]; + const auto &test_case = kIsValidIntegerTestData[i]; SCOPED_TRACE(i); bool negative; @@ -318,7 +317,7 @@ TEST(ParseValuesTest, ParseBitStringEmptyNoUnusedBits) { ASSERT_TRUE(bit_string.has_value()); EXPECT_EQ(0u, bit_string->unused_bits()); - EXPECT_EQ(0u, bit_string->bytes().Length()); + EXPECT_EQ(0u, bit_string->bytes().size()); EXPECT_FALSE(bit_string->AssertsBit(0)); EXPECT_FALSE(bit_string->AssertsBit(1)); @@ -350,7 +349,7 @@ TEST(ParseValuesTest, ParseBitStringSevenOneBits) { ASSERT_TRUE(bit_string.has_value()); EXPECT_EQ(1u, bit_string->unused_bits()); - EXPECT_EQ(1u, bit_string->bytes().Length()); + EXPECT_EQ(1u, bit_string->bytes().size()); EXPECT_EQ(0xFE, bit_string->bytes()[0]); EXPECT_TRUE(bit_string->AssertsBit(0)); diff --git a/src/pki/parsed_certificate.cc b/src/pki/parsed_certificate.cc index 1c94830..9e23d30 100644 --- a/src/pki/parsed_certificate.cc +++ b/src/pki/parsed_certificate.cc @@ -4,14 +4,16 @@ #include "parsed_certificate.h" +#include <openssl/bytestring.h> +#include <openssl/pool.h> + #include "cert_errors.h" #include "certificate_policies.h" #include "extended_key_usage.h" #include "name_constraints.h" +#include "parser.h" #include "signature_algorithm.h" #include "verify_name_match.h" -#include "parser.h" -#include <openssl/pool.h> namespace bssl { @@ -49,17 +51,18 @@ DEFINE_CERT_ERROR_ID(kFailedParsingAuthorityKeyIdentifier, DEFINE_CERT_ERROR_ID(kFailedParsingSubjectKeyIdentifier, "Failed parsing subject key identifier"); -[[nodiscard]] bool GetSequenceValue(const der::Input& tlv, der::Input* value) { +[[nodiscard]] bool GetSequenceValue(der::Input tlv, der::Input *value) { der::Parser parser(tlv); - return parser.ReadTag(der::kSequence, value) && !parser.HasMore(); + return parser.ReadTag(CBS_ASN1_SEQUENCE, value) && !parser.HasMore(); } } // namespace -bool ParsedCertificate::GetExtension(const der::Input& extension_oid, - ParsedExtension* parsed_extension) const { - if (!tbs_.extensions_tlv) +bool ParsedCertificate::GetExtension(der::Input extension_oid, + ParsedExtension *parsed_extension) const { + if (!tbs_.extensions_tlv) { return false; + } auto it = extensions_.find(extension_oid); if (it == extensions_.end()) { @@ -77,13 +80,13 @@ ParsedCertificate::~ParsedCertificate() = default; // static std::shared_ptr<const ParsedCertificate> ParsedCertificate::Create( bssl::UniquePtr<CRYPTO_BUFFER> backing_data, - const ParseCertificateOptions& options, - CertErrors* errors) { + const ParseCertificateOptions &options, CertErrors *errors) { // |errors| is an optional parameter, but to keep the code simpler, use a // dummy object when one wasn't provided. CertErrors unused_errors; - if (!errors) + if (!errors) { errors = &unused_errors; + } auto result = std::make_shared<ParsedCertificate>(PrivateConstructor{}); result->cert_data_ = std::move(backing_data); @@ -182,7 +185,7 @@ std::shared_ptr<const ParsedCertificate> ParsedCertificate::Create( // extension (e.g., a key bound only to an email address or URI), then the // subject name MUST be an empty sequence and the subjectAltName extension // MUST be critical. - if (subject_value.Length() == 0 && + if (subject_value.empty() && !result->subject_alt_names_extension_.critical) { errors->AddError(kSubjectAltNameNotCritical); return nullptr; @@ -280,15 +283,16 @@ std::shared_ptr<const ParsedCertificate> ParsedCertificate::Create( // static bool ParsedCertificate::CreateAndAddToVector( bssl::UniquePtr<CRYPTO_BUFFER> cert_data, - const ParseCertificateOptions& options, - std::vector<std::shared_ptr<const bssl::ParsedCertificate>>* chain, - CertErrors* errors) { + const ParseCertificateOptions &options, + std::vector<std::shared_ptr<const bssl::ParsedCertificate>> *chain, + CertErrors *errors) { std::shared_ptr<const ParsedCertificate> cert( Create(std::move(cert_data), options, errors)); - if (!cert) + if (!cert) { return false; + } chain->push_back(std::move(cert)); return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/parsed_certificate.h b/src/pki/parsed_certificate.h index 3f872f0..a4043cb 100644 --- a/src/pki/parsed_certificate.h +++ b/src/pki/parsed_certificate.h @@ -5,18 +5,17 @@ #ifndef BSSL_PKI_PARSED_CERTIFICATE_H_ #define BSSL_PKI_PARSED_CERTIFICATE_H_ -#include "fillins/openssl_util.h" #include <map> #include <memory> +#include <optional> #include <vector> +#include <openssl/base.h> #include "certificate_policies.h" +#include "input.h" #include "parse_certificate.h" #include "signature_algorithm.h" -#include "input.h" -#include <optional> -#include <openssl/base.h> namespace bssl { @@ -46,7 +45,7 @@ class OPENSSL_EXPORT ParsedCertificate { }; public: -~ParsedCertificate(); + ~ParsedCertificate(); // Map from OID to ParsedExtension. using ExtensionsMap = std::map<der::Input, ParsedExtension>; @@ -57,8 +56,7 @@ class OPENSSL_EXPORT ParsedCertificate { // information added to it. static std::shared_ptr<const ParsedCertificate> Create( bssl::UniquePtr<CRYPTO_BUFFER> cert_data, - const ParseCertificateOptions& options, - CertErrors* errors); + const ParseCertificateOptions &options, CertErrors *errors); // Creates a ParsedCertificate by copying the provided |data|, and appends it // to |chain|. Returns true if the certificate was successfully parsed and @@ -68,32 +66,32 @@ class OPENSSL_EXPORT ParsedCertificate { // information added to it. static bool CreateAndAddToVector( bssl::UniquePtr<CRYPTO_BUFFER> cert_data, - const ParseCertificateOptions& options, - std::vector<std::shared_ptr<const bssl::ParsedCertificate>>* chain, - CertErrors* errors); + const ParseCertificateOptions &options, + std::vector<std::shared_ptr<const bssl::ParsedCertificate>> *chain, + CertErrors *errors); explicit ParsedCertificate(PrivateConstructor); - - ParsedCertificate(const ParsedCertificate&) = delete; - ParsedCertificate& operator=(const ParsedCertificate&) = delete; + + ParsedCertificate(const ParsedCertificate &) = delete; + ParsedCertificate &operator=(const ParsedCertificate &) = delete; // Returns the DER-encoded certificate data for this cert. - const der::Input& der_cert() const { return cert_; } + der::Input der_cert() const { return cert_; } // Returns the CRYPTO_BUFFER backing this object. - CRYPTO_BUFFER* cert_buffer() const { return cert_data_.get(); } + CRYPTO_BUFFER *cert_buffer() const { return cert_data_.get(); } // Accessors for raw fields of the Certificate. - const der::Input& tbs_certificate_tlv() const { return tbs_certificate_tlv_; } + der::Input tbs_certificate_tlv() const { return tbs_certificate_tlv_; } - const der::Input& signature_algorithm_tlv() const { + der::Input signature_algorithm_tlv() const { return signature_algorithm_tlv_; } - const der::BitString& signature_value() const { return signature_value_; } + const der::BitString &signature_value() const { return signature_value_; } // Accessor for struct containing raw fields of the TbsCertificate. - const ParsedTbsCertificate& tbs() const { return tbs_; } + const ParsedTbsCertificate &tbs() const { return tbs_; } // Returns the signatureAlgorithm of the Certificate (not the tbsCertificate). // If the signature algorithm is unknown/unsupported, this returns nullopt. @@ -127,7 +125,7 @@ class OPENSSL_EXPORT ParsedCertificate { // Returns the ParsedBasicConstraints struct. Caller must check // has_basic_constraints() before accessing this. - const ParsedBasicConstraints& basic_constraints() const { + const ParsedBasicConstraints &basic_constraints() const { BSSL_CHECK(has_basic_constraints_); return basic_constraints_; } @@ -137,7 +135,7 @@ class OPENSSL_EXPORT ParsedCertificate { // Returns the KeyUsage BitString. Caller must check // has_key_usage() before accessing this. - const der::BitString& key_usage() const { + const der::BitString &key_usage() const { BSSL_CHECK(has_key_usage_); return key_usage_; } @@ -147,7 +145,7 @@ class OPENSSL_EXPORT ParsedCertificate { // Returns the ExtendedKeyUsage key purpose OIDs. Caller must check // has_extended_key_usage() before accessing this. - const std::vector<der::Input>& extended_key_usage() const { + const std::vector<der::Input> &extended_key_usage() const { BSSL_CHECK(has_extended_key_usage_); return extended_key_usage_; } @@ -158,13 +156,13 @@ class OPENSSL_EXPORT ParsedCertificate { // Returns the ParsedExtension struct for the SubjectAltName extension. // If the cert did not have a SubjectAltName extension, this will be a // default-initialized ParsedExtension struct. - const ParsedExtension& subject_alt_names_extension() const { + const ParsedExtension &subject_alt_names_extension() const { return subject_alt_names_extension_; } // Returns the GeneralNames class parsed from SubjectAltName extension, or // nullptr if no SubjectAltName extension was present. - const GeneralNames* subject_alt_names() const { + const GeneralNames *subject_alt_names() const { return subject_alt_names_.get(); } @@ -173,7 +171,7 @@ class OPENSSL_EXPORT ParsedCertificate { // Returns the parsed NameConstraints extension. Must not be called if // has_name_constraints() is false. - const NameConstraints& name_constraints() const { + const NameConstraints &name_constraints() const { BSSL_CHECK(name_constraints_); return *name_constraints_; } @@ -182,24 +180,24 @@ class OPENSSL_EXPORT ParsedCertificate { bool has_authority_info_access() const { return has_authority_info_access_; } // Returns the ParsedExtension struct for the AuthorityInfoAccess extension. - const ParsedExtension& authority_info_access_extension() const { + const ParsedExtension &authority_info_access_extension() const { return authority_info_access_extension_; } // Returns any caIssuers URIs from the AuthorityInfoAccess extension. - const std::vector<std::string_view>& ca_issuers_uris() const { + const std::vector<std::string_view> &ca_issuers_uris() const { return ca_issuers_uris_; } // Returns any OCSP URIs from the AuthorityInfoAccess extension. - const std::vector<std::string_view>& ocsp_uris() const { return ocsp_uris_; } + const std::vector<std::string_view> &ocsp_uris() const { return ocsp_uris_; } // Returns true if the certificate has a Policies extension. bool has_policy_oids() const { return has_policy_oids_; } // Returns the policy OIDs. Caller must check has_policy_oids() before // accessing this. - const std::vector<der::Input>& policy_oids() const { + const std::vector<der::Input> &policy_oids() const { BSSL_CHECK(has_policy_oids()); return policy_oids_; } @@ -209,7 +207,7 @@ class OPENSSL_EXPORT ParsedCertificate { // Returns the ParsedPolicyConstraints struct. Caller must check // has_policy_constraints() before accessing this. - const ParsedPolicyConstraints& policy_constraints() const { + const ParsedPolicyConstraints &policy_constraints() const { BSSL_CHECK(has_policy_constraints_); return policy_constraints_; } @@ -219,36 +217,36 @@ class OPENSSL_EXPORT ParsedCertificate { // Returns the PolicyMappings extension. Caller must check // has_policy_mappings() before accessing this. - const std::vector<ParsedPolicyMapping>& policy_mappings() const { + const std::vector<ParsedPolicyMapping> &policy_mappings() const { BSSL_CHECK(has_policy_mappings_); return policy_mappings_; } // Returns the Inhibit Any Policy extension. - const std::optional<uint8_t>& inhibit_any_policy() const { + const std::optional<uint8_t> &inhibit_any_policy() const { return inhibit_any_policy_; } // Returns the AuthorityKeyIdentifier extension, or nullopt if there wasn't // one. - const std::optional<ParsedAuthorityKeyIdentifier>& authority_key_identifier() + const std::optional<ParsedAuthorityKeyIdentifier> &authority_key_identifier() const { return authority_key_identifier_; } // Returns the SubjectKeyIdentifier extension, or nullopt if there wasn't // one. - const std::optional<der::Input>& subject_key_identifier() const { + const std::optional<der::Input> &subject_key_identifier() const { return subject_key_identifier_; } // Returns a map of all the extensions in the certificate. - const ExtensionsMap& extensions() const { return extensions_; } + const ExtensionsMap &extensions() const { return extensions_; } // Gets the value for extension matching |extension_oid|. Returns false if the // extension is not present. - bool GetExtension(const der::Input& extension_oid, - ParsedExtension* parsed_extension) const; + bool GetExtension(der::Input extension_oid, + ParsedExtension *parsed_extension) const; private: // The backing store for the certificate data. @@ -325,6 +323,6 @@ class OPENSSL_EXPORT ParsedCertificate { ExtensionsMap extensions_; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_PARSED_CERTIFICATE_H_ diff --git a/src/pki/parsed_certificate_unittest.cc b/src/pki/parsed_certificate_unittest.cc index b3ee6a0..2b4d352 100644 --- a/src/pki/parsed_certificate_unittest.cc +++ b/src/pki/parsed_certificate_unittest.cc @@ -4,12 +4,12 @@ #include "parsed_certificate.h" +#include <gtest/gtest.h> +#include <openssl/pool.h> #include "cert_errors.h" +#include "input.h" #include "parse_certificate.h" #include "test_helpers.h" -#include "input.h" -#include <gtest/gtest.h> -#include <openssl/pool.h> // TODO(eroman): Add tests for parsing of policy mappings. @@ -17,7 +17,7 @@ namespace bssl { namespace { -std::string GetFilePath(const std::string& file_name) { +std::string GetFilePath(const std::string &file_name) { return std::string("testdata/parse_certificate_unittest/") + file_name; } @@ -26,8 +26,7 @@ std::string GetFilePath(const std::string& file_name) { // Returns nullptr if the certificate parsing failed, and verifies that any // errors match the ERRORS block in the .pem file. std::shared_ptr<const ParsedCertificate> ParseCertificateFromFile( - const std::string& file_name, - const ParseCertificateOptions& options) { + const std::string &file_name, const ParseCertificateOptions &options) { std::string data; std::string expected_errors; @@ -41,15 +40,17 @@ std::shared_ptr<const ParsedCertificate> ParseCertificateFromFile( CertErrors errors; std::shared_ptr<const ParsedCertificate> cert = ParsedCertificate::Create( - bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(data.data()), data.size(), nullptr)), + bssl::UniquePtr<CRYPTO_BUFFER>( + CRYPTO_BUFFER_new(reinterpret_cast<const uint8_t *>(data.data()), + data.size(), nullptr)), options, &errors); // The errors are baselined for |!allow_invalid_serial_numbers|. So if // requesting a non-default option skip the error checks. // TODO(eroman): This is ugly. - if (!options.allow_invalid_serial_numbers) + if (!options.allow_invalid_serial_numbers) { VerifyCertErrors(expected_errors, errors, test_file_path); + } // Every parse failure being tested should emit error information. if (!cert) { @@ -231,7 +232,7 @@ TEST(ParsedCertificateTest, ExtendedKeyUsage) { ASSERT_TRUE(cert->GetExtension(der::Input(kExtKeyUsageOid), &extension)); EXPECT_FALSE(extension.critical); - EXPECT_EQ(45u, extension.value.Length()); + EXPECT_EQ(45u, extension.value.size()); EXPECT_TRUE(cert->has_extended_key_usage()); EXPECT_EQ(4u, cert->extended_key_usage().size()); @@ -267,7 +268,7 @@ TEST(ParsedCertificateTest, Policies) { cert->GetExtension(der::Input(kCertificatePoliciesOid), &extension)); EXPECT_FALSE(extension.critical); - EXPECT_EQ(95u, extension.value.Length()); + EXPECT_EQ(95u, extension.value.size()); EXPECT_TRUE(cert->has_policy_oids()); EXPECT_EQ(2u, cert->policy_oids().size()); @@ -319,7 +320,7 @@ TEST(ParsedCertificateTest, ExtensionsReal) { cert->GetExtension(der::Input(kCertificatePoliciesOid), &extension)); EXPECT_FALSE(extension.critical); - EXPECT_EQ(16u, extension.value.Length()); + EXPECT_EQ(16u, extension.value.size()); // TODO(eroman): Verify the other extensions' values. } @@ -590,4 +591,4 @@ TEST(ParsedCertificateTest, AuthourityKeyIdentifierNotSequence) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/parser.cc b/src/pki/parser.cc index 623da92..51f2661 100644 --- a/src/pki/parser.cc +++ b/src/pki/parser.cc @@ -4,24 +4,20 @@ #include "parser.h" -#include "parse_values.h" #include <openssl/base.h> +#include "parse_values.h" namespace bssl::der { -Parser::Parser() { - CBS_init(&cbs_, nullptr, 0); -} +Parser::Parser() { CBS_init(&cbs_, nullptr, 0); } -Parser::Parser(const Input& input) { - CBS_init(&cbs_, input.UnsafeData(), input.Length()); -} +Parser::Parser(Input input) { CBS_init(&cbs_, input.data(), input.size()); } -bool Parser::PeekTagAndValue(Tag* tag, Input* out) { +bool Parser::PeekTagAndValue(CBS_ASN1_TAG *tag, Input *out) { CBS peeker = cbs_; CBS tmp_out; size_t header_len; - unsigned tag_value; + CBS_ASN1_TAG tag_value; if (!CBS_get_any_asn1_element(&peeker, &tmp_out, &tag_value, &header_len) || !CBS_skip(&tmp_out, header_len)) { return false; @@ -33,38 +29,39 @@ bool Parser::PeekTagAndValue(Tag* tag, Input* out) { } bool Parser::Advance() { - if (advance_len_ == 0) + if (advance_len_ == 0) { return false; + } bool ret = !!CBS_skip(&cbs_, advance_len_); advance_len_ = 0; return ret; } -bool Parser::HasMore() { - return CBS_len(&cbs_) > 0; -} +bool Parser::HasMore() { return CBS_len(&cbs_) > 0; } -bool Parser::ReadRawTLV(Input* out) { +bool Parser::ReadRawTLV(Input *out) { CBS tmp_out; - if (!CBS_get_any_asn1_element(&cbs_, &tmp_out, nullptr, nullptr)) + if (!CBS_get_any_asn1_element(&cbs_, &tmp_out, nullptr, nullptr)) { return false; + } *out = Input(CBS_data(&tmp_out), CBS_len(&tmp_out)); return true; } -bool Parser::ReadTagAndValue(Tag* tag, Input* out) { - if (!PeekTagAndValue(tag, out)) +bool Parser::ReadTagAndValue(CBS_ASN1_TAG *tag, Input *out) { + if (!PeekTagAndValue(tag, out)) { return false; + } BSSL_CHECK(Advance()); return true; } -bool Parser::ReadOptionalTag(Tag tag, std::optional<Input>* out) { +bool Parser::ReadOptionalTag(CBS_ASN1_TAG tag, std::optional<Input> *out) { if (!HasMore()) { *out = std::nullopt; return true; } - Tag actual_tag; + CBS_ASN1_TAG actual_tag; Input value; if (!PeekTagAndValue(&actual_tag, &value)) { return false; @@ -79,22 +76,23 @@ bool Parser::ReadOptionalTag(Tag tag, std::optional<Input>* out) { return true; } -bool Parser::ReadOptionalTag(Tag tag, Input* out, bool* present) { +bool Parser::ReadOptionalTag(CBS_ASN1_TAG tag, Input *out, bool *present) { std::optional<Input> tmp_out; - if (!ReadOptionalTag(tag, &tmp_out)) + if (!ReadOptionalTag(tag, &tmp_out)) { return false; + } *present = tmp_out.has_value(); *out = tmp_out.value_or(der::Input()); return true; } -bool Parser::SkipOptionalTag(Tag tag, bool* present) { +bool Parser::SkipOptionalTag(CBS_ASN1_TAG tag, bool *present) { Input out; return ReadOptionalTag(tag, &out, present); } -bool Parser::ReadTag(Tag tag, Input* out) { - Tag actual_tag; +bool Parser::ReadTag(CBS_ASN1_TAG tag, Input *out) { + CBS_ASN1_TAG actual_tag; Input value; if (!PeekTagAndValue(&actual_tag, &value) || actual_tag != tag) { return false; @@ -104,52 +102,58 @@ bool Parser::ReadTag(Tag tag, Input* out) { return true; } -bool Parser::SkipTag(Tag tag) { +bool Parser::SkipTag(CBS_ASN1_TAG tag) { Input out; return ReadTag(tag, &out); } // Type-specific variants of ReadTag -bool Parser::ReadConstructed(Tag tag, Parser* out) { - if (!IsConstructed(tag)) +bool Parser::ReadConstructed(CBS_ASN1_TAG tag, Parser *out) { + if (!(tag & CBS_ASN1_CONSTRUCTED)) { return false; + } Input data; - if (!ReadTag(tag, &data)) + if (!ReadTag(tag, &data)) { return false; + } *out = Parser(data); return true; } -bool Parser::ReadSequence(Parser* out) { - return ReadConstructed(kSequence, out); +bool Parser::ReadSequence(Parser *out) { + return ReadConstructed(CBS_ASN1_SEQUENCE, out); } -bool Parser::ReadUint8(uint8_t* out) { +bool Parser::ReadUint8(uint8_t *out) { Input encoded_int; - if (!ReadTag(kInteger, &encoded_int)) + if (!ReadTag(CBS_ASN1_INTEGER, &encoded_int)) { return false; + } return ParseUint8(encoded_int, out); } -bool Parser::ReadUint64(uint64_t* out) { +bool Parser::ReadUint64(uint64_t *out) { Input encoded_int; - if (!ReadTag(kInteger, &encoded_int)) + if (!ReadTag(CBS_ASN1_INTEGER, &encoded_int)) { return false; + } return ParseUint64(encoded_int, out); } std::optional<BitString> Parser::ReadBitString() { Input value; - if (!ReadTag(kBitString, &value)) + if (!ReadTag(CBS_ASN1_BITSTRING, &value)) { return std::nullopt; + } return ParseBitString(value); } -bool Parser::ReadGeneralizedTime(GeneralizedTime* out) { +bool Parser::ReadGeneralizedTime(GeneralizedTime *out) { Input value; - if (!ReadTag(kGeneralizedTime, &value)) + if (!ReadTag(CBS_ASN1_GENERALIZEDTIME, &value)) { return false; + } return ParseGeneralizedTime(value, out); } diff --git a/src/pki/parser.h b/src/pki/parser.h index 6716968..64599b5 100644 --- a/src/pki/parser.h +++ b/src/pki/parser.h @@ -5,15 +5,15 @@ #ifndef BSSL_DER_PARSER_H_ #define BSSL_DER_PARSER_H_ -#include "fillins/openssl_util.h" #include <stdint.h> - -#include "input.h" -#include "tag.h" #include <optional> + +#include <openssl/base.h> #include <openssl/bytestring.h> +#include "input.h" + namespace bssl::der { class BitString; @@ -71,7 +71,7 @@ struct GeneralizedTime; // following code shows an example of how to parse the quux field from the // encoded data. // -// bool ReadQuux(const Input& encoded_value, Input* quux_out) { +// bool ReadQuux(Input encoded_value, Input* quux_out) { // Parser parser(encoded_value); // Parser foo_parser; // if (!parser.ReadSequence(&foo_parser)) @@ -92,10 +92,10 @@ class OPENSSL_EXPORT Parser { // Creates a parser to parse over the data represented by input. This class // assumes that the underlying data will not change over the lifetime of // the Parser object. - explicit Parser(const Input& input); + explicit Parser(Input input); - Parser(const Parser&) = default; - Parser& operator=(const Parser&) = default; + Parser(const Parser &) = default; + Parser &operator=(const Parser &) = default; // Returns whether there is any more data left in the input to parse. This // does not guarantee that the data is parseable. @@ -105,12 +105,12 @@ class OPENSSL_EXPORT Parser { // encoding for the current value is invalid, this method returns false and // does not advance the input. Otherwise, it returns true, putting the // read tag in |tag| and the value in |out|. - [[nodiscard]] bool ReadTagAndValue(Tag* tag, Input* out); + [[nodiscard]] bool ReadTagAndValue(CBS_ASN1_TAG *tag, Input *out); // Reads the current TLV from the input and advances. Unlike ReadTagAndValue // where only the value is put in |out|, this puts the raw bytes from the // tag, length, and value in |out|. - [[nodiscard]] bool ReadRawTLV(Input* out); + [[nodiscard]] bool ReadRawTLV(Input *out); // Basic methods for reading or skipping the current TLV, with an // expectation of what the current tag should be. It should be possible @@ -122,7 +122,7 @@ class OPENSSL_EXPORT Parser { // something else, then |out| is set to nullopt and the input is not // advanced. Like ReadTagAndValue, it returns false if the encoding is // invalid and does not advance the input. - [[nodiscard]] bool ReadOptionalTag(Tag tag, std::optional<Input>* out); + [[nodiscard]] bool ReadOptionalTag(CBS_ASN1_TAG tag, std::optional<Input> *out); // If the current tag in the input is |tag|, it puts the corresponding value // in |out|, sets |was_present| to true, and advances the input to the next @@ -131,29 +131,29 @@ class OPENSSL_EXPORT Parser { // false if the encoding is invalid and does not advance the input. // DEPRECATED: use the std::optional version above in new code. // TODO(mattm): convert the existing callers and remove this override. - [[nodiscard]] bool ReadOptionalTag(Tag tag, Input* out, bool* was_present); + [[nodiscard]] bool ReadOptionalTag(CBS_ASN1_TAG tag, Input *out, bool *was_present); // Like ReadOptionalTag, but the value is discarded. - [[nodiscard]] bool SkipOptionalTag(Tag tag, bool* was_present); + [[nodiscard]] bool SkipOptionalTag(CBS_ASN1_TAG tag, bool *was_present); // If the current tag matches |tag|, it puts the current value in |out|, // advances the input, and returns true. Otherwise, it returns false. - [[nodiscard]] bool ReadTag(Tag tag, Input* out); + [[nodiscard]] bool ReadTag(CBS_ASN1_TAG tag, Input *out); // Advances the input and returns true if the current tag matches |tag|; // otherwise it returns false. - [[nodiscard]] bool SkipTag(Tag tag); + [[nodiscard]] bool SkipTag(CBS_ASN1_TAG tag); // Convenience methods to combine parsing the TLV with parsing the DER // encoding for a specific type. // Reads the current TLV from the input, checks that the tag matches |tag| // and is a constructed tag, and creates a new Parser from the value. - [[nodiscard]] bool ReadConstructed(Tag tag, Parser* out); + [[nodiscard]] bool ReadConstructed(CBS_ASN1_TAG tag, Parser *out); // A more specific form of ReadConstructed that expects the current tag // to be 0x30 (SEQUENCE). - [[nodiscard]] bool ReadSequence(Parser* out); + [[nodiscard]] bool ReadSequence(Parser *out); // Expects the current tag to be kInteger, and calls ParseUint8 on the // current value. Note that DER-encoded integers are arbitrary precision, @@ -162,7 +162,7 @@ class OPENSSL_EXPORT Parser { // // Note that on failure the Parser is left in an undefined state (the // input may or may not have been advanced). - [[nodiscard]] bool ReadUint8(uint8_t* out); + [[nodiscard]] bool ReadUint8(uint8_t *out); // Expects the current tag to be kInteger, and calls ParseUint64 on the // current value. Note that DER-encoded integers are arbitrary precision, @@ -171,7 +171,7 @@ class OPENSSL_EXPORT Parser { // // Note that on failure the Parser is left in an undefined state (the // input may or may not have been advanced). - [[nodiscard]] bool ReadUint64(uint64_t* out); + [[nodiscard]] bool ReadUint64(uint64_t *out); // Reads a BIT STRING. On success returns BitString. On failure, returns // std::nullopt. @@ -184,7 +184,7 @@ class OPENSSL_EXPORT Parser { // // Note that on failure the Parser is left in an undefined state (the // input may or may not have been advanced). - [[nodiscard]] bool ReadGeneralizedTime(GeneralizedTime* out); + [[nodiscard]] bool ReadGeneralizedTime(GeneralizedTime *out); // Lower level methods. The previous methods couple reading data from the // input with advancing the Parser's internal pointer to the next TLV; these @@ -195,7 +195,7 @@ class OPENSSL_EXPORT Parser { // Reads the current TLV from the input, putting the tag in |tag| and the raw // value in |out|, but does not advance the input. Returns true if the tag // and length are successfully read and the output exists. - [[nodiscard]] bool PeekTagAndValue(Tag* tag, Input* out); + [[nodiscard]] bool PeekTagAndValue(CBS_ASN1_TAG *tag, Input *out); // Advances the input to the next TLV. This method only needs to be called // after PeekTagAndValue; all other methods will advance the input if they diff --git a/src/pki/parser_unittest.cc b/src/pki/parser_unittest.cc index 94d24d0..2deb1cd 100644 --- a/src/pki/parser_unittest.cc +++ b/src/pki/parser_unittest.cc @@ -4,19 +4,19 @@ #include "parser.h" +#include <gtest/gtest.h> #include "input.h" #include "parse_values.h" -#include <gtest/gtest.h> namespace bssl::der::test { TEST(ParserTest, ConsumesAllBytesOfTLV) { const uint8_t der[] = {0x04 /* OCTET STRING */, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - ASSERT_EQ(kOctetString, tag); + ASSERT_EQ(CBS_ASN1_OCTETSTRING, tag); ASSERT_FALSE(parser.HasMore()); } @@ -38,7 +38,7 @@ TEST(ParserTest, IgnoresContentsOfInnerValues) { // with an invalid encoding - its length is too long. const uint8_t der[] = {0x30, 0x02, 0x30, 0x7e}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); } @@ -58,7 +58,7 @@ TEST(ParserTest, FailsIfLengthOverlapsAnotherTLV) { ASSERT_FALSE(parser.HasMore()); // Try to read the INTEGER from the SEQUENCE, which should fail. - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_FALSE(inner_sequence.ReadTagAndValue(&tag, &value)); } @@ -72,14 +72,14 @@ TEST(ParserTest, ReadOptionalTagPresent) { Input value; bool present; - ASSERT_TRUE(parser.ReadOptionalTag(kInteger, &value, &present)); + ASSERT_TRUE(parser.ReadOptionalTag(CBS_ASN1_INTEGER, &value, &present)); ASSERT_TRUE(present); const uint8_t expected_int_value[] = {0x01}; ASSERT_EQ(Input(expected_int_value), value); - Tag tag; + CBS_ASN1_TAG tag; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - ASSERT_EQ(kOctetString, tag); + ASSERT_EQ(CBS_ASN1_OCTETSTRING, tag); const uint8_t expected_octet_string_value[] = {0x02}; ASSERT_EQ(Input(expected_octet_string_value), value); @@ -94,15 +94,15 @@ TEST(ParserTest, ReadOptionalTag2Present) { Parser parser((Input(der))); std::optional<Input> optional_value; - ASSERT_TRUE(parser.ReadOptionalTag(kInteger, &optional_value)); + ASSERT_TRUE(parser.ReadOptionalTag(CBS_ASN1_INTEGER, &optional_value)); ASSERT_TRUE(optional_value.has_value()); const uint8_t expected_int_value[] = {0x01}; ASSERT_EQ(Input(expected_int_value), *optional_value); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - ASSERT_EQ(kOctetString, tag); + ASSERT_EQ(CBS_ASN1_OCTETSTRING, tag); const uint8_t expected_octet_string_value[] = {0x02}; ASSERT_EQ(Input(expected_octet_string_value), value); @@ -117,12 +117,12 @@ TEST(ParserTest, ReadOptionalTagNotPresent) { Input value; bool present; - ASSERT_TRUE(parser.ReadOptionalTag(kInteger, &value, &present)); + ASSERT_TRUE(parser.ReadOptionalTag(CBS_ASN1_INTEGER, &value, &present)); ASSERT_FALSE(present); - Tag tag; + CBS_ASN1_TAG tag; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - ASSERT_EQ(kOctetString, tag); + ASSERT_EQ(CBS_ASN1_OCTETSTRING, tag); const uint8_t expected_octet_string_value[] = {0x02}; ASSERT_EQ(Input(expected_octet_string_value), value); @@ -136,13 +136,13 @@ TEST(ParserTest, ReadOptionalTag2NotPresent) { Parser parser((Input(der))); std::optional<Input> optional_value; - ASSERT_TRUE(parser.ReadOptionalTag(kInteger, &optional_value)); + ASSERT_TRUE(parser.ReadOptionalTag(CBS_ASN1_INTEGER, &optional_value)); ASSERT_FALSE(optional_value.has_value()); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - ASSERT_EQ(kOctetString, tag); + ASSERT_EQ(CBS_ASN1_OCTETSTRING, tag); const uint8_t expected_octet_string_value[] = {0x02}; ASSERT_EQ(Input(expected_octet_string_value), value); @@ -153,11 +153,11 @@ TEST(ParserTest, CanSkipOptionalTagAtEndOfInput) { const uint8_t der[] = {0x02 /* INTEGER */, 0x01, 0x01}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); bool present; - ASSERT_TRUE(parser.ReadOptionalTag(kInteger, &value, &present)); + ASSERT_TRUE(parser.ReadOptionalTag(CBS_ASN1_INTEGER, &value, &present)); ASSERT_FALSE(present); ASSERT_FALSE(parser.HasMore()); } @@ -167,9 +167,9 @@ TEST(ParserTest, SkipOptionalTagDoesntConsumePresentNonMatchingTLVs) { Parser parser((Input(der))); bool present; - ASSERT_TRUE(parser.SkipOptionalTag(kOctetString, &present)); + ASSERT_TRUE(parser.SkipOptionalTag(CBS_ASN1_OCTETSTRING, &present)); ASSERT_FALSE(present); - ASSERT_TRUE(parser.SkipOptionalTag(kInteger, &present)); + ASSERT_TRUE(parser.SkipOptionalTag(CBS_ASN1_INTEGER, &present)); ASSERT_TRUE(present); ASSERT_FALSE(parser.HasMore()); } @@ -179,10 +179,10 @@ TEST(ParserTest, TagNumbersAboveThirtySupported) { const uint8_t der[] = {0x9f, 0x1f, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - EXPECT_EQ(kTagContextSpecific | 31u, tag); + EXPECT_EQ(CBS_ASN1_CONTEXT_SPECIFIC | 31u, tag); ASSERT_FALSE(parser.HasMore()); } @@ -192,10 +192,10 @@ TEST(ParserTest, ParseTags) { const uint8_t der[] = {0x04, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - EXPECT_EQ(kOctetString, tag); + EXPECT_EQ(CBS_ASN1_OCTETSTRING, tag); } { @@ -203,10 +203,10 @@ TEST(ParserTest, ParseTags) { const uint8_t der[] = {0x30, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - EXPECT_EQ(kSequence, tag); + EXPECT_EQ(CBS_ASN1_SEQUENCE, tag); } { @@ -214,10 +214,10 @@ TEST(ParserTest, ParseTags) { const uint8_t der[] = {0x41, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - EXPECT_EQ(kTagApplication | 1, tag); + EXPECT_EQ(CBS_ASN1_APPLICATION | 1, tag); } { @@ -225,10 +225,10 @@ TEST(ParserTest, ParseTags) { const uint8_t der[] = {0xbe, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - EXPECT_EQ(kTagContextSpecific | kTagConstructed | 30, tag); + EXPECT_EQ(CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 30, tag); } { @@ -236,10 +236,10 @@ TEST(ParserTest, ParseTags) { const uint8_t der[] = {0xcf, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_TRUE(parser.ReadTagAndValue(&tag, &value)); - EXPECT_EQ(kTagPrivate | 15, tag); + EXPECT_EQ(CBS_ASN1_PRIVATE | 15, tag); } } @@ -247,7 +247,7 @@ TEST(ParserTest, IncompleteEncodingTagOnly) { const uint8_t der[] = {0x01}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_FALSE(parser.ReadTagAndValue(&tag, &value)); ASSERT_TRUE(parser.HasMore()); @@ -259,7 +259,7 @@ TEST(ParserTest, IncompleteEncodingLengthTruncated) { const uint8_t der[] = {0x04, 0x81}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_FALSE(parser.ReadTagAndValue(&tag, &value)); ASSERT_TRUE(parser.HasMore()); @@ -270,7 +270,7 @@ TEST(ParserTest, IncompleteEncodingValueShorterThanLength) { const uint8_t der[] = {0x04, 0x02, 0x84}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_FALSE(parser.ReadTagAndValue(&tag, &value)); ASSERT_TRUE(parser.HasMore()); @@ -280,7 +280,7 @@ TEST(ParserTest, LengthMustBeEncodedWithMinimumNumberOfOctets) { const uint8_t der[] = {0x01, 0x81, 0x01, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_FALSE(parser.ReadTagAndValue(&tag, &value)); ASSERT_TRUE(parser.HasMore()); @@ -304,7 +304,7 @@ TEST(ParserTest, LengthMustNotHaveLeadingZeroes) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; Parser parser((Input(der))); - Tag tag; + CBS_ASN1_TAG tag; Input value; ASSERT_FALSE(parser.ReadTagAndValue(&tag, &value)); ASSERT_TRUE(parser.HasMore()); @@ -315,7 +315,7 @@ TEST(ParserTest, ReadConstructedFailsForNonConstructedTags) { const uint8_t der[] = {0x10, 0x00}; Parser parser((Input(der))); - Tag expected_tag = 0x10; + CBS_ASN1_TAG expected_tag = 0x10; Parser sequence_parser; ASSERT_FALSE(parser.ReadConstructed(expected_tag, &sequence_parser)); @@ -347,7 +347,7 @@ TEST(ParserTest, ReadBitString) { EXPECT_FALSE(parser.HasMore()); EXPECT_EQ(1u, bit_string->unused_bits()); - ASSERT_EQ(2u, bit_string->bytes().Length()); + ASSERT_EQ(2u, bit_string->bytes().size()); EXPECT_EQ(0xAA, bit_string->bytes()[0]); EXPECT_EQ(0xBE, bit_string->bytes()[1]); } diff --git a/src/pki/patches/0001-Simplify-the-name-constraint-limit-to-resemble-Borin.patch b/src/pki/patches/0001-Simplify-the-name-constraint-limit-to-resemble-Borin.patch deleted file mode 100644 index f823b54..0000000 --- a/src/pki/patches/0001-Simplify-the-name-constraint-limit-to-resemble-Borin.patch +++ /dev/null @@ -1,41108 +0,0 @@ -From be12ef3a1c4d74dfba98641b1d565451424c6aa2 Mon Sep 17 00:00:00 2001 -From: Bob Beck <bbe@google.com> -Date: Wed, 17 May 2023 10:37:22 -0600 -Subject: [PATCH] Simplify the name constraint limit to resemble BoringSSL's - Disable the name constraint manynames check for now - ---- - net/cert/pki/DEPS | 1 - - net/cert/pki/name_constraints.cc | 66 +- - .../verify_certificate_chain_typed_unittest.h | 6 +- - net/data/test_bundle_data.filelist | 6 - - .../many-names/generate-chains.py | 56 +- - .../many-names/ok-all-types.pem | 6155 ++++-------- - .../ok-different-types-dirnames.pem | 8708 ---------------- - .../ok-different-types-dirnames.test | 5 - - .../many-names/ok-different-types-dns.pem | 8879 ----------------- - .../many-names/ok-different-types-dns.test | 5 - - .../many-names/ok-different-types-ips.pem | 8813 ---------------- - .../many-names/ok-different-types-ips.test | 5 - - .../many-names/toomany-all-types.pem | 3714 ++----- - .../many-names/toomany-dirnames-excluded.pem | 2058 ++-- - .../many-names/toomany-dirnames-permitted.pem | 2058 ++-- - .../many-names/toomany-dns-excluded.pem | 8 +- - .../many-names/toomany-dns-permitted.pem | 8 +- - .../many-names/toomany-ips-excluded.pem | 8 +- - .../many-names/toomany-ips-permitted.pem | 8 +- - 19 files changed, 5045 insertions(+), 35522 deletions(-) - delete mode 100644 net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.pem - delete mode 100644 net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.test - delete mode 100644 net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.pem - delete mode 100644 net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.test - delete mode 100644 net/data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.pem - delete mode 100644 net/data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.test - -diff --git a/net/cert/pki/DEPS b/net/cert/pki/DEPS -index cac7a02e057dc..e0bfd7b2c2045 100644 ---- a/net/cert/pki/DEPS -+++ b/net/cert/pki/DEPS -@@ -5,6 +5,5 @@ include_rules = [ - "-base", - "+base/base_paths.h", - "+base/files/file_util.h", -- "+base/numerics/clamped_math.h", - "+base/path_service.h", - ] -diff --git a/net/cert/pki/name_constraints.cc b/net/cert/pki/name_constraints.cc -index 123996d7c5d61..e09f4a6da74a9 100644 ---- a/net/cert/pki/name_constraints.cc -+++ b/net/cert/pki/name_constraints.cc -@@ -8,7 +8,6 @@ - - #include <memory> - --#include "base/numerics/clamped_math.h" - #include "net/cert/pki/cert_errors.h" - #include "net/cert/pki/common_cert_errors.h" - #include "net/cert/pki/general_names.h" -@@ -345,32 +344,42 @@ void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, - CertErrors* errors) const { - // Checking NameConstraints is O(number_of_names * number_of_constraints). - // Impose a hard limit to mitigate the use of name constraints as a DoS -- // mechanism. -+ // mechanism. This mimics the similar check in BoringSSL x509/v_ncons.c -+ // TODO(bbe): make both name constraint mechanisms subquadratic and remove -+ // this check. -+ - const size_t kMaxChecks = 1048576; // 1 << 20 -- base::ClampedNumeric<size_t> check_count = 0; - -+ // Names all come from a certificate, which is bound by size_t, so adding them -+ // up can not overflow a size_t. -+ size_t name_count = 0; -+ // Constraints all come from a certificate, which is bound by a size_t, so -+ // adding them up can not overflow a size_t. -+ size_t constraint_count = 0; - if (subject_alt_names) { -- check_count += -- base::ClampMul(subject_alt_names->rfc822_names.size(), -- base::ClampAdd(excluded_subtrees_.rfc822_names.size(), -- permitted_subtrees_.rfc822_names.size())); -- check_count += -- base::ClampMul(subject_alt_names->dns_names.size(), -- base::ClampAdd(excluded_subtrees_.dns_names.size(), -- permitted_subtrees_.dns_names.size())); -- check_count += base::ClampMul( -- subject_alt_names->directory_names.size(), -- base::ClampAdd(excluded_subtrees_.directory_names.size(), -- permitted_subtrees_.directory_names.size())); -- check_count += base::ClampMul( -- subject_alt_names->ip_addresses.size(), -- base::ClampAdd(excluded_subtrees_.ip_address_ranges.size(), -- permitted_subtrees_.ip_address_ranges.size())); -- } -- -- if (!(subject_alt_names && subject_rdn_sequence.Length() == 0)) { -- check_count += base::ClampAdd(excluded_subtrees_.directory_names.size(), -- permitted_subtrees_.directory_names.size()); -+ name_count = subject_alt_names->rfc822_names.size() + -+ subject_alt_names->dns_names.size() + -+ subject_alt_names->directory_names.size() + -+ subject_alt_names->ip_addresses.size(); -+ constraint_count = excluded_subtrees_.rfc822_names.size() + -+ permitted_subtrees_.rfc822_names.size() + -+ excluded_subtrees_.dns_names.size() + -+ permitted_subtrees_.dns_names.size() + -+ excluded_subtrees_.directory_names.size() + -+ permitted_subtrees_.directory_names.size() + -+ excluded_subtrees_.ip_address_ranges.size() + -+ permitted_subtrees_.ip_address_ranges.size(); -+ } else { -+ constraint_count += excluded_subtrees_.directory_names.size() + -+ permitted_subtrees_.directory_names.size(); -+ name_count = subject_rdn_sequence.Length(); -+ } -+ // Upper bound the number of possible checks, checking for overflow. -+ size_t check_count = constraint_count * name_count; -+ if ((constraint_count > 0 && check_count / constraint_count != name_count) || -+ check_count > kMaxChecks) { -+ errors->AddError(cert_errors::kTooManyNameConstraintChecks); -+ return; - } - - std::vector<std::string> subject_email_addresses_to_check; -@@ -382,15 +391,6 @@ void NameConstraints::IsPermittedCert(const der::Input& subject_rdn_sequence, - errors->AddError(cert_errors::kNotPermittedByNameConstraints); - return; - } -- check_count += -- base::ClampMul(subject_email_addresses_to_check.size(), -- base::ClampAdd(excluded_subtrees_.rfc822_names.size(), -- permitted_subtrees_.rfc822_names.size())); -- } -- -- if (check_count > kMaxChecks) { -- errors->AddError(cert_errors::kTooManyNameConstraintChecks); -- return; - } - - // Subject Alternative Name handling: -diff --git a/net/cert/pki/verify_certificate_chain_typed_unittest.h b/net/cert/pki/verify_certificate_chain_typed_unittest.h -index a1af7849ebcc1..32a5be319d00d 100644 ---- a/net/cert/pki/verify_certificate_chain_typed_unittest.h -+++ b/net/cert/pki/verify_certificate_chain_typed_unittest.h -@@ -275,10 +275,9 @@ TYPED_TEST_P(VerifyCertificateChainSingleRootTest, Policies) { - } - - TYPED_TEST_P(VerifyCertificateChainSingleRootTest, ManyNames) { -+ // TODO(bbe) fix this to run these with correct numbers. -+#if 0 - this->RunTest("many-names/ok-all-types.test"); -- this->RunTest("many-names/ok-different-types-dns.test"); -- this->RunTest("many-names/ok-different-types-ips.test"); -- this->RunTest("many-names/ok-different-types-dirnames.test"); - this->RunTest("many-names/toomany-all-types.test"); - this->RunTest("many-names/toomany-dns-excluded.test"); - this->RunTest("many-names/toomany-dns-permitted.test"); -@@ -286,6 +285,7 @@ TYPED_TEST_P(VerifyCertificateChainSingleRootTest, ManyNames) { - this->RunTest("many-names/toomany-ips-permitted.test"); - this->RunTest("many-names/toomany-dirnames-excluded.test"); - this->RunTest("many-names/toomany-dirnames-permitted.test"); -+#endif - } - - TYPED_TEST_P(VerifyCertificateChainSingleRootTest, TargetOnly) { -diff --git a/net/data/test_bundle_data.filelist b/net/data/test_bundle_data.filelist -index 88fe51f7db6b5..849e421233ef8 100644 ---- a/net/data/test_bundle_data.filelist -+++ b/net/data/test_bundle_data.filelist -@@ -753,12 +753,6 @@ data/verify_certificate_chain_unittest/key-rollover/rolloverchain.pem - data/verify_certificate_chain_unittest/key-rollover/rolloverchain.test - data/verify_certificate_chain_unittest/many-names/ok-all-types.pem - data/verify_certificate_chain_unittest/many-names/ok-all-types.test --data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.pem --data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.test --data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.pem --data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.test --data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.pem --data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.test - data/verify_certificate_chain_unittest/many-names/toomany-all-types.pem - data/verify_certificate_chain_unittest/many-names/toomany-all-types.test - data/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.pem -diff --git a/net/data/verify_certificate_chain_unittest/many-names/generate-chains.py b/net/data/verify_certificate_chain_unittest/many-names/generate-chains.py -index 30a284056c846..70e37b10e1681 100755 ---- a/net/data/verify_certificate_chain_unittest/many-names/generate-chains.py -+++ b/net/data/verify_certificate_chain_unittest/many-names/generate-chains.py -@@ -92,21 +92,25 @@ def make_chain(name, doc, excluded, permitted, sans): - gencerts.write_chain(doc, chain, '%s.pem' % name) - - --make_chain( -- 'ok-all-types', -- "A chain containing a large number of name constraints and names,\n" -- "but below the limit.", -- excluded=dict(num_dns=418, num_ip=418, num_dirnames=418, num_uri=1025), -- permitted=dict(num_dns=418, num_ip=418, num_dirnames=418, num_uri=1025), -- sans=dict(num_dns=418, num_ip=418, num_dirnames=417, num_uri=1025)) -- --make_chain( -- 'toomany-all-types', -- "A chain containing a large number of different types of name\n" -- "constraints and names, above the limit.", -- excluded=dict(num_dns=419, num_ip=419, num_dirnames=419, num_uri=0), -- permitted=dict(num_dns=419, num_ip=419, num_dirnames=419, num_uri=0), -- sans=dict(num_dns=419, num_ip=419, num_dirnames=418, num_uri=0)) -+make_chain('ok-all-types', -+ "A chain containing a large number of name constraints and names,\n" -+ "but below the limit.", -+ excluded=dict(num_dns=170, -+ num_ip=170, -+ num_dirnames=170, -+ num_uri=1025), -+ permitted=dict(num_dns=171, -+ num_ip=171, -+ num_dirnames=172, -+ num_uri=1025), -+ sans=dict(num_dns=341, num_ip=341, num_dirnames=342, num_uri=1025)) -+ -+make_chain('toomany-all-types', -+ "A chain containing a large number of different types of name\n" -+ "constraints and names, above the limit.", -+ excluded=dict(num_dns=170, num_ip=170, num_dirnames=170, num_uri=0), -+ permitted=dict(num_dns=172, num_ip=171, num_dirnames=172, num_uri=0), -+ sans=dict(num_dns=342, num_ip=341, num_dirnames=341, num_uri=0)) - - make_chain( - 'toomany-dns-excluded', -@@ -151,25 +155,3 @@ make_chain( - excluded=dict(num_dns=0, num_ip=0, num_dirnames=0, num_uri=0), - permitted=dict(num_dns=0, num_ip=0, num_dirnames=1025, num_uri=0), - sans=dict(num_dns=0, num_ip=0, num_dirnames=1024, num_uri=0)) -- --make_chain( -- 'ok-different-types-dns', -- "A chain containing a large number of name constraints and names,\n" -- "but of different types, thus not triggering the limit.", -- excluded=dict(num_dns=0, num_ip=1025, num_dirnames=1025, num_uri=1025), -- permitted=dict(num_dns=0, num_ip=1025, num_dirnames=1025, num_uri=1025), -- sans=dict(num_dns=1025, num_ip=0, num_dirnames=0, num_uri=0)) --make_chain( -- 'ok-different-types-ips', -- "A chain containing a large number of name constraints and names,\n" -- "but of different types, thus not triggering the limit.", -- excluded=dict(num_dns=1025, num_ip=0, num_dirnames=1025, num_uri=1025), -- permitted=dict(num_dns=1025, num_ip=0, num_dirnames=1025, num_uri=1025), -- sans=dict(num_dns=0, num_ip=1025, num_dirnames=0, num_uri=0)) --make_chain( -- 'ok-different-types-dirnames', -- "A chain containing a large number of name constraints and names,\n" -- "but of different types, thus not triggering the limit.", -- excluded=dict(num_dns=1025, num_ip=1025, num_dirnames=0, num_uri=1025), -- permitted=dict(num_dns=1025, num_ip=1025, num_dirnames=0, num_uri=1025), -- sans=dict(num_dns=0, num_ip=0, num_dirnames=1025, num_uri=0)) -diff --git a/net/data/verify_certificate_chain_unittest/many-names/ok-all-types.pem b/net/data/verify_certificate_chain_unittest/many-names/ok-all-types.pem -index 1f8810a31f6cf..e97cc1162cb16 100644 ---- a/net/data/verify_certificate_chain_unittest/many-names/ok-all-types.pem -+++ b/net/data/verify_certificate_chain_unittest/many-names/ok-all-types.pem -@@ -1,4 +1,4 @@ --[Created by: generate-chains.py] -+[Created by: ./generate-chains.py] - - A chain containing a large number of name constraints and names, - but below the limit. -@@ -8,7 +8,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:d4 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Intermediate - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -56,25 +56,25 @@ Certificate: - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: -- DNS:t0.test, DNS:t1.test, DNS:t2.test, DNS:t3.test, DNS:t4.test, DNS:t5.test, DNS:t6.test, DNS:t7.test, DNS:t8.test, DNS:t9.test, DNS:t10.test, DNS:t11.test, DNS:t12.test, DNS:t13.test, DNS:t14.test, DNS:t15.test, DNS:t16.test, DNS:t17.test, DNS:t18.test, DNS:t19.test, DNS:t20.test, DNS:t21.test, DNS:t22.test, DNS:t23.test, DNS:t24.test, DNS:t25.test, DNS:t26.test, DNS:t27.test, DNS:t28.test, DNS:t29.test, DNS:t30.test, DNS:t31.test, DNS:t32.test, DNS:t33.test, DNS:t34.test, DNS:t35.test, DNS:t36.test, DNS:t37.test, DNS:t38.test, DNS:t39.test, DNS:t40.test, DNS:t41.test, DNS:t42.test, DNS:t43.test, DNS:t44.test, DNS:t45.test, DNS:t46.test, DNS:t47.test, DNS:t48.test, DNS:t49.test, DNS:t50.test, DNS:t51.test, DNS:t52.test, DNS:t53.test, DNS:t54.test, DNS:t55.test, DNS:t56.test, DNS:t57.test, DNS:t58.test, DNS:t59.test, DNS:t60.test, DNS:t61.test, DNS:t62.test, DNS:t63.test, DNS:t64.test, DNS:t65.test, DNS:t66.test, DNS:t67.test, DNS:t68.test, DNS:t69.test, DNS:t70.test, DNS:t71.test, DNS:t72.test, DNS:t73.test, DNS:t74.test, DNS:t75.test, DNS:t76.test, DNS:t77.test, DNS:t78.test, DNS:t79.test, DNS:t80.test, DNS:t81.test, DNS:t82.test, DNS:t83.test, DNS:t84.test, DNS:t85.test, DNS:t86.test, DNS:t87.test, DNS:t88.test, DNS:t89.test, DNS:t90.test, DNS:t91.test, DNS:t92.test, DNS:t93.test, DNS:t94.test, DNS:t95.test, DNS:t96.test, DNS:t97.test, DNS:t98.test, DNS:t99.test, DNS:t100.test, DNS:t101.test, DNS:t102.test, DNS:t103.test, DNS:t104.test, DNS:t105.test, DNS:t106.test, DNS:t107.test, DNS:t108.test, DNS:t109.test, DNS:t110.test, DNS:t111.test, DNS:t112.test, DNS:t113.test, DNS:t114.test, DNS:t115.test, DNS:t116.test, DNS:t117.test, DNS:t118.test, DNS:t119.test, DNS:t120.test, DNS:t121.test, DNS:t122.test, DNS:t123.test, DNS:t124.test, DNS:t125.test, DNS:t126.test, DNS:t127.test, DNS:t128.test, DNS:t129.test, DNS:t130.test, DNS:t131.test, DNS:t132.test, DNS:t133.test, DNS:t134.test, DNS:t135.test, DNS:t136.test, DNS:t137.test, DNS:t138.test, DNS:t139.test, DNS:t140.test, DNS:t141.test, DNS:t142.test, DNS:t143.test, DNS:t144.test, DNS:t145.test, DNS:t146.test, DNS:t147.test, DNS:t148.test, DNS:t149.test, DNS:t150.test, DNS:t151.test, DNS:t152.test, DNS:t153.test, DNS:t154.test, DNS:t155.test, DNS:t156.test, DNS:t157.test, DNS:t158.test, DNS:t159.test, DNS:t160.test, DNS:t161.test, DNS:t162.test, DNS:t163.test, DNS:t164.test, DNS:t165.test, DNS:t166.test, DNS:t167.test, DNS:t168.test, DNS:t169.test, DNS:t170.test, DNS:t171.test, DNS:t172.test, DNS:t173.test, DNS:t174.test, DNS:t175.test, DNS:t176.test, DNS:t177.test, DNS:t178.test, DNS:t179.test, DNS:t180.test, DNS:t181.test, DNS:t182.test, DNS:t183.test, DNS:t184.test, DNS:t185.test, DNS:t186.test, DNS:t187.test, DNS:t188.test, DNS:t189.test, DNS:t190.test, DNS:t191.test, DNS:t192.test, DNS:t193.test, DNS:t194.test, DNS:t195.test, DNS:t196.test, DNS:t197.test, DNS:t198.test, DNS:t199.test, DNS:t200.test, DNS:t201.test, DNS:t202.test, DNS:t203.test, DNS:t204.test, DNS:t205.test, DNS:t206.test, DNS:t207.test, DNS:t208.test, DNS:t209.test, DNS:t210.test, DNS:t211.test, DNS:t212.test, DNS:t213.test, DNS:t214.test, DNS:t215.test, DNS:t216.test, DNS:t217.test, DNS:t218.test, DNS:t219.test, DNS:t220.test, DNS:t221.test, DNS:t222.test, DNS:t223.test, DNS:t224.test, DNS:t225.test, DNS:t226.test, DNS:t227.test, DNS:t228.test, DNS:t229.test, DNS:t230.test, DNS:t231.test, DNS:t232.test, DNS:t233.test, DNS:t234.test, DNS:t235.test, DNS:t236.test, DNS:t237.test, DNS:t238.test, DNS:t239.test, DNS:t240.test, DNS:t241.test, DNS:t242.test, DNS:t243.test, DNS:t244.test, DNS:t245.test, DNS:t246.test, DNS:t247.test, DNS:t248.test, DNS:t249.test, DNS:t250.test, DNS:t251.test, DNS:t252.test, DNS:t253.test, DNS:t254.test, DNS:t255.test, DNS:t256.test, DNS:t257.test, DNS:t258.test, DNS:t259.test, DNS:t260.test, DNS:t261.test, DNS:t262.test, DNS:t263.test, DNS:t264.test, DNS:t265.test, DNS:t266.test, DNS:t267.test, DNS:t268.test, DNS:t269.test, DNS:t270.test, DNS:t271.test, DNS:t272.test, DNS:t273.test, DNS:t274.test, DNS:t275.test, DNS:t276.test, DNS:t277.test, DNS:t278.test, DNS:t279.test, DNS:t280.test, DNS:t281.test, DNS:t282.test, DNS:t283.test, DNS:t284.test, DNS:t285.test, DNS:t286.test, DNS:t287.test, DNS:t288.test, DNS:t289.test, DNS:t290.test, DNS:t291.test, DNS:t292.test, DNS:t293.test, DNS:t294.test, DNS:t295.test, DNS:t296.test, DNS:t297.test, DNS:t298.test, DNS:t299.test, DNS:t300.test, DNS:t301.test, DNS:t302.test, DNS:t303.test, DNS:t304.test, DNS:t305.test, DNS:t306.test, DNS:t307.test, DNS:t308.test, DNS:t309.test, DNS:t310.test, DNS:t311.test, DNS:t312.test, DNS:t313.test, DNS:t314.test, DNS:t315.test, DNS:t316.test, DNS:t317.test, DNS:t318.test, DNS:t319.test, DNS:t320.test, DNS:t321.test, DNS:t322.test, DNS:t323.test, DNS:t324.test, DNS:t325.test, DNS:t326.test, DNS:t327.test, DNS:t328.test, DNS:t329.test, DNS:t330.test, DNS:t331.test, DNS:t332.test, DNS:t333.test, DNS:t334.test, DNS:t335.test, DNS:t336.test, DNS:t337.test, DNS:t338.test, DNS:t339.test, DNS:t340.test, DNS:t341.test, DNS:t342.test, DNS:t343.test, DNS:t344.test, DNS:t345.test, DNS:t346.test, DNS:t347.test, DNS:t348.test, DNS:t349.test, DNS:t350.test, DNS:t351.test, DNS:t352.test, DNS:t353.test, DNS:t354.test, DNS:t355.test, DNS:t356.test, DNS:t357.test, DNS:t358.test, DNS:t359.test, DNS:t360.test, DNS:t361.test, DNS:t362.test, DNS:t363.test, DNS:t364.test, DNS:t365.test, DNS:t366.test, DNS:t367.test, DNS:t368.test, DNS:t369.test, DNS:t370.test, DNS:t371.test, DNS:t372.test, DNS:t373.test, DNS:t374.test, DNS:t375.test, DNS:t376.test, DNS:t377.test, DNS:t378.test, DNS:t379.test, DNS:t380.test, DNS:t381.test, DNS:t382.test, DNS:t383.test, DNS:t384.test, DNS:t385.test, DNS:t386.test, DNS:t387.test, DNS:t388.test, DNS:t389.test, DNS:t390.test, DNS:t391.test, DNS:t392.test, DNS:t393.test, DNS:t394.test, DNS:t395.test, DNS:t396.test, DNS:t397.test, DNS:t398.test, DNS:t399.test, DNS:t400.test, DNS:t401.test, DNS:t402.test, DNS:t403.test, DNS:t404.test, DNS:t405.test, DNS:t406.test, DNS:t407.test, DNS:t408.test, DNS:t409.test, DNS:t410.test, DNS:t411.test, DNS:t412.test, DNS:t413.test, DNS:t414.test, DNS:t415.test, DNS:t416.test, DNS:t417.test, IP Address:10.0.0.0, IP Address:10.0.0.1, IP Address:10.0.0.2, IP Address:10.0.0.3, IP Address:10.0.0.4, IP Address:10.0.0.5, IP Address:10.0.0.6, IP Address:10.0.0.7, IP Address:10.0.0.8, IP Address:10.0.0.9, IP Address:10.0.0.10, IP Address:10.0.0.11, IP Address:10.0.0.12, IP Address:10.0.0.13, IP Address:10.0.0.14, IP Address:10.0.0.15, IP Address:10.0.0.16, IP Address:10.0.0.17, IP Address:10.0.0.18, IP Address:10.0.0.19, IP Address:10.0.0.20, IP Address:10.0.0.21, IP Address:10.0.0.22, IP Address:10.0.0.23, IP Address:10.0.0.24, IP Address:10.0.0.25, IP Address:10.0.0.26, IP Address:10.0.0.27, IP Address:10.0.0.28, IP Address:10.0.0.29, IP Address:10.0.0.30, IP Address:10.0.0.31, IP Address:10.0.0.32, IP Address:10.0.0.33, IP Address:10.0.0.34, IP Address:10.0.0.35, IP Address:10.0.0.36, IP Address:10.0.0.37, IP Address:10.0.0.38, IP Address:10.0.0.39, IP Address:10.0.0.40, IP Address:10.0.0.41, IP Address:10.0.0.42, IP Address:10.0.0.43, IP Address:10.0.0.44, IP Address:10.0.0.45, IP Address:10.0.0.46, IP Address:10.0.0.47, IP Address:10.0.0.48, IP Address:10.0.0.49, IP Address:10.0.0.50, IP Address:10.0.0.51, IP Address:10.0.0.52, IP Address:10.0.0.53, IP Address:10.0.0.54, IP Address:10.0.0.55, IP Address:10.0.0.56, IP Address:10.0.0.57, IP Address:10.0.0.58, IP Address:10.0.0.59, IP Address:10.0.0.60, IP Address:10.0.0.61, IP Address:10.0.0.62, IP Address:10.0.0.63, IP Address:10.0.0.64, IP Address:10.0.0.65, IP Address:10.0.0.66, IP Address:10.0.0.67, IP Address:10.0.0.68, IP Address:10.0.0.69, IP Address:10.0.0.70, IP Address:10.0.0.71, IP Address:10.0.0.72, IP Address:10.0.0.73, IP Address:10.0.0.74, IP Address:10.0.0.75, IP Address:10.0.0.76, IP Address:10.0.0.77, IP Address:10.0.0.78, IP Address:10.0.0.79, IP Address:10.0.0.80, IP Address:10.0.0.81, IP Address:10.0.0.82, IP Address:10.0.0.83, IP Address:10.0.0.84, IP Address:10.0.0.85, IP Address:10.0.0.86, IP Address:10.0.0.87, IP Address:10.0.0.88, IP Address:10.0.0.89, IP Address:10.0.0.90, IP Address:10.0.0.91, IP Address:10.0.0.92, IP Address:10.0.0.93, IP Address:10.0.0.94, IP Address:10.0.0.95, IP Address:10.0.0.96, IP Address:10.0.0.97, IP Address:10.0.0.98, IP Address:10.0.0.99, IP Address:10.0.0.100, IP Address:10.0.0.101, IP Address:10.0.0.102, IP Address:10.0.0.103, IP Address:10.0.0.104, IP Address:10.0.0.105, IP Address:10.0.0.106, IP Address:10.0.0.107, IP Address:10.0.0.108, IP Address:10.0.0.109, IP Address:10.0.0.110, IP Address:10.0.0.111, IP Address:10.0.0.112, IP Address:10.0.0.113, IP Address:10.0.0.114, IP Address:10.0.0.115, IP Address:10.0.0.116, IP Address:10.0.0.117, IP Address:10.0.0.118, IP Address:10.0.0.119, IP Address:10.0.0.120, IP Address:10.0.0.121, IP Address:10.0.0.122, IP Address:10.0.0.123, IP Address:10.0.0.124, IP Address:10.0.0.125, IP Address:10.0.0.126, IP Address:10.0.0.127, IP Address:10.0.0.128, IP Address:10.0.0.129, IP Address:10.0.0.130, IP Address:10.0.0.131, IP Address:10.0.0.132, IP Address:10.0.0.133, IP Address:10.0.0.134, IP Address:10.0.0.135, IP Address:10.0.0.136, IP Address:10.0.0.137, IP Address:10.0.0.138, IP Address:10.0.0.139, IP Address:10.0.0.140, IP Address:10.0.0.141, IP Address:10.0.0.142, IP Address:10.0.0.143, IP Address:10.0.0.144, IP Address:10.0.0.145, IP Address:10.0.0.146, IP Address:10.0.0.147, IP Address:10.0.0.148, IP Address:10.0.0.149, IP Address:10.0.0.150, IP Address:10.0.0.151, IP Address:10.0.0.152, IP Address:10.0.0.153, IP Address:10.0.0.154, IP Address:10.0.0.155, IP Address:10.0.0.156, IP Address:10.0.0.157, IP Address:10.0.0.158, IP Address:10.0.0.159, IP Address:10.0.0.160, IP Address:10.0.0.161, IP Address:10.0.0.162, IP Address:10.0.0.163, IP Address:10.0.0.164, IP Address:10.0.0.165, IP Address:10.0.0.166, IP Address:10.0.0.167, IP Address:10.0.0.168, IP Address:10.0.0.169, IP Address:10.0.0.170, IP Address:10.0.0.171, IP Address:10.0.0.172, IP Address:10.0.0.173, IP Address:10.0.0.174, IP Address:10.0.0.175, IP Address:10.0.0.176, IP Address:10.0.0.177, IP Address:10.0.0.178, IP Address:10.0.0.179, IP Address:10.0.0.180, IP Address:10.0.0.181, IP Address:10.0.0.182, IP Address:10.0.0.183, IP Address:10.0.0.184, IP Address:10.0.0.185, IP Address:10.0.0.186, IP Address:10.0.0.187, IP Address:10.0.0.188, IP Address:10.0.0.189, IP Address:10.0.0.190, IP Address:10.0.0.191, IP Address:10.0.0.192, IP Address:10.0.0.193, IP Address:10.0.0.194, IP Address:10.0.0.195, IP Address:10.0.0.196, IP Address:10.0.0.197, IP Address:10.0.0.198, IP Address:10.0.0.199, IP Address:10.0.0.200, IP Address:10.0.0.201, IP Address:10.0.0.202, IP Address:10.0.0.203, IP Address:10.0.0.204, IP Address:10.0.0.205, IP Address:10.0.0.206, IP Address:10.0.0.207, IP Address:10.0.0.208, IP Address:10.0.0.209, IP Address:10.0.0.210, IP Address:10.0.0.211, IP Address:10.0.0.212, IP Address:10.0.0.213, IP Address:10.0.0.214, IP Address:10.0.0.215, IP Address:10.0.0.216, IP Address:10.0.0.217, IP Address:10.0.0.218, IP Address:10.0.0.219, IP Address:10.0.0.220, IP Address:10.0.0.221, IP Address:10.0.0.222, IP Address:10.0.0.223, IP Address:10.0.0.224, IP Address:10.0.0.225, IP Address:10.0.0.226, IP Address:10.0.0.227, IP Address:10.0.0.228, IP Address:10.0.0.229, IP Address:10.0.0.230, IP Address:10.0.0.231, IP Address:10.0.0.232, IP Address:10.0.0.233, IP Address:10.0.0.234, IP Address:10.0.0.235, IP Address:10.0.0.236, IP Address:10.0.0.237, IP Address:10.0.0.238, IP Address:10.0.0.239, IP Address:10.0.0.240, IP Address:10.0.0.241, IP Address:10.0.0.242, IP Address:10.0.0.243, IP Address:10.0.0.244, IP Address:10.0.0.245, IP Address:10.0.0.246, IP Address:10.0.0.247, IP Address:10.0.0.248, IP Address:10.0.0.249, IP Address:10.0.0.250, IP Address:10.0.0.251, IP Address:10.0.0.252, IP Address:10.0.0.253, IP Address:10.0.0.254, IP Address:10.0.0.255, IP Address:10.0.1.0, IP Address:10.0.1.1, IP Address:10.0.1.2, IP Address:10.0.1.3, IP Address:10.0.1.4, IP Address:10.0.1.5, IP Address:10.0.1.6, IP Address:10.0.1.7, IP Address:10.0.1.8, IP Address:10.0.1.9, IP Address:10.0.1.10, IP Address:10.0.1.11, IP Address:10.0.1.12, IP Address:10.0.1.13, IP Address:10.0.1.14, IP Address:10.0.1.15, IP Address:10.0.1.16, IP Address:10.0.1.17, IP Address:10.0.1.18, IP Address:10.0.1.19, IP Address:10.0.1.20, IP Address:10.0.1.21, IP Address:10.0.1.22, IP Address:10.0.1.23, IP Address:10.0.1.24, IP Address:10.0.1.25, IP Address:10.0.1.26, IP Address:10.0.1.27, IP Address:10.0.1.28, IP Address:10.0.1.29, IP Address:10.0.1.30, IP Address:10.0.1.31, IP Address:10.0.1.32, IP Address:10.0.1.33, IP Address:10.0.1.34, IP Address:10.0.1.35, IP Address:10.0.1.36, IP Address:10.0.1.37, IP Address:10.0.1.38, IP Address:10.0.1.39, IP Address:10.0.1.40, IP Address:10.0.1.41, IP Address:10.0.1.42, IP Address:10.0.1.43, IP Address:10.0.1.44, IP Address:10.0.1.45, IP Address:10.0.1.46, IP Address:10.0.1.47, IP Address:10.0.1.48, IP Address:10.0.1.49, IP Address:10.0.1.50, IP Address:10.0.1.51, IP Address:10.0.1.52, IP Address:10.0.1.53, IP Address:10.0.1.54, IP Address:10.0.1.55, IP Address:10.0.1.56, IP Address:10.0.1.57, IP Address:10.0.1.58, IP Address:10.0.1.59, IP Address:10.0.1.60, IP Address:10.0.1.61, IP Address:10.0.1.62, IP Address:10.0.1.63, IP Address:10.0.1.64, IP Address:10.0.1.65, IP Address:10.0.1.66, IP Address:10.0.1.67, IP Address:10.0.1.68, IP Address:10.0.1.69, IP Address:10.0.1.70, IP Address:10.0.1.71, IP Address:10.0.1.72, IP Address:10.0.1.73, IP Address:10.0.1.74, IP Address:10.0.1.75, IP Address:10.0.1.76, IP Address:10.0.1.77, IP Address:10.0.1.78, IP Address:10.0.1.79, IP Address:10.0.1.80, IP Address:10.0.1.81, IP Address:10.0.1.82, IP Address:10.0.1.83, IP Address:10.0.1.84, IP Address:10.0.1.85, IP Address:10.0.1.86, IP Address:10.0.1.87, IP Address:10.0.1.88, IP Address:10.0.1.89, IP Address:10.0.1.90, IP Address:10.0.1.91, IP Address:10.0.1.92, IP Address:10.0.1.93, IP Address:10.0.1.94, IP Address:10.0.1.95, IP Address:10.0.1.96, IP Address:10.0.1.97, IP Address:10.0.1.98, IP Address:10.0.1.99, IP Address:10.0.1.100, IP Address:10.0.1.101, IP Address:10.0.1.102, IP Address:10.0.1.103, IP Address:10.0.1.104, IP Address:10.0.1.105, IP Address:10.0.1.106, IP Address:10.0.1.107, IP Address:10.0.1.108, IP Address:10.0.1.109, IP Address:10.0.1.110, IP Address:10.0.1.111, IP Address:10.0.1.112, IP Address:10.0.1.113, IP Address:10.0.1.114, IP Address:10.0.1.115, IP Address:10.0.1.116, IP Address:10.0.1.117, IP Address:10.0.1.118, IP Address:10.0.1.119, IP Address:10.0.1.120, IP Address:10.0.1.121, IP Address:10.0.1.122, IP Address:10.0.1.123, IP Address:10.0.1.124, IP Address:10.0.1.125, IP Address:10.0.1.126, IP Address:10.0.1.127, IP Address:10.0.1.128, IP Address:10.0.1.129, IP Address:10.0.1.130, IP Address:10.0.1.131, IP Address:10.0.1.132, IP Address:10.0.1.133, IP Address:10.0.1.134, IP Address:10.0.1.135, IP Address:10.0.1.136, IP Address:10.0.1.137, IP Address:10.0.1.138, IP Address:10.0.1.139, IP Address:10.0.1.140, IP Address:10.0.1.141, IP Address:10.0.1.142, IP Address:10.0.1.143, IP Address:10.0.1.144, IP Address:10.0.1.145, IP Address:10.0.1.146, IP Address:10.0.1.147, IP Address:10.0.1.148, IP Address:10.0.1.149, IP Address:10.0.1.150, IP Address:10.0.1.151, IP Address:10.0.1.152, IP Address:10.0.1.153, IP Address:10.0.1.154, IP Address:10.0.1.155, IP Address:10.0.1.156, IP Address:10.0.1.157, IP Address:10.0.1.158, IP Address:10.0.1.159, IP Address:10.0.1.160, IP Address:10.0.1.161, DirName:/CN=t0, DirName:/CN=t1, DirName:/CN=t2, DirName:/CN=t3, DirName:/CN=t4, DirName:/CN=t5, DirName:/CN=t6, DirName:/CN=t7, DirName:/CN=t8, DirName:/CN=t9, DirName:/CN=t10, DirName:/CN=t11, DirName:/CN=t12, DirName:/CN=t13, DirName:/CN=t14, DirName:/CN=t15, DirName:/CN=t16, DirName:/CN=t17, DirName:/CN=t18, DirName:/CN=t19, DirName:/CN=t20, DirName:/CN=t21, DirName:/CN=t22, DirName:/CN=t23, DirName:/CN=t24, DirName:/CN=t25, DirName:/CN=t26, DirName:/CN=t27, DirName:/CN=t28, DirName:/CN=t29, DirName:/CN=t30, DirName:/CN=t31, DirName:/CN=t32, DirName:/CN=t33, DirName:/CN=t34, DirName:/CN=t35, DirName:/CN=t36, DirName:/CN=t37, DirName:/CN=t38, DirName:/CN=t39, DirName:/CN=t40, DirName:/CN=t41, DirName:/CN=t42, DirName:/CN=t43, DirName:/CN=t44, DirName:/CN=t45, DirName:/CN=t46, DirName:/CN=t47, DirName:/CN=t48, DirName:/CN=t49, DirName:/CN=t50, DirName:/CN=t51, DirName:/CN=t52, DirName:/CN=t53, DirName:/CN=t54, DirName:/CN=t55, DirName:/CN=t56, DirName:/CN=t57, DirName:/CN=t58, DirName:/CN=t59, DirName:/CN=t60, DirName:/CN=t61, DirName:/CN=t62, DirName:/CN=t63, DirName:/CN=t64, DirName:/CN=t65, DirName:/CN=t66, DirName:/CN=t67, DirName:/CN=t68, DirName:/CN=t69, DirName:/CN=t70, DirName:/CN=t71, DirName:/CN=t72, DirName:/CN=t73, DirName:/CN=t74, DirName:/CN=t75, DirName:/CN=t76, DirName:/CN=t77, DirName:/CN=t78, DirName:/CN=t79, DirName:/CN=t80, DirName:/CN=t81, DirName:/CN=t82, DirName:/CN=t83, DirName:/CN=t84, DirName:/CN=t85, DirName:/CN=t86, DirName:/CN=t87, DirName:/CN=t88, DirName:/CN=t89, DirName:/CN=t90, DirName:/CN=t91, DirName:/CN=t92, DirName:/CN=t93, DirName:/CN=t94, DirName:/CN=t95, DirName:/CN=t96, DirName:/CN=t97, DirName:/CN=t98, DirName:/CN=t99, DirName:/CN=t100, DirName:/CN=t101, DirName:/CN=t102, DirName:/CN=t103, DirName:/CN=t104, DirName:/CN=t105, DirName:/CN=t106, DirName:/CN=t107, DirName:/CN=t108, DirName:/CN=t109, DirName:/CN=t110, DirName:/CN=t111, DirName:/CN=t112, DirName:/CN=t113, DirName:/CN=t114, DirName:/CN=t115, DirName:/CN=t116, DirName:/CN=t117, DirName:/CN=t118, DirName:/CN=t119, DirName:/CN=t120, DirName:/CN=t121, DirName:/CN=t122, DirName:/CN=t123, DirName:/CN=t124, DirName:/CN=t125, DirName:/CN=t126, DirName:/CN=t127, DirName:/CN=t128, DirName:/CN=t129, DirName:/CN=t130, DirName:/CN=t131, DirName:/CN=t132, DirName:/CN=t133, DirName:/CN=t134, DirName:/CN=t135, DirName:/CN=t136, DirName:/CN=t137, DirName:/CN=t138, DirName:/CN=t139, DirName:/CN=t140, DirName:/CN=t141, DirName:/CN=t142, DirName:/CN=t143, DirName:/CN=t144, DirName:/CN=t145, DirName:/CN=t146, DirName:/CN=t147, DirName:/CN=t148, DirName:/CN=t149, DirName:/CN=t150, DirName:/CN=t151, DirName:/CN=t152, DirName:/CN=t153, DirName:/CN=t154, DirName:/CN=t155, DirName:/CN=t156, DirName:/CN=t157, DirName:/CN=t158, DirName:/CN=t159, DirName:/CN=t160, DirName:/CN=t161, DirName:/CN=t162, DirName:/CN=t163, DirName:/CN=t164, DirName:/CN=t165, DirName:/CN=t166, DirName:/CN=t167, DirName:/CN=t168, DirName:/CN=t169, DirName:/CN=t170, DirName:/CN=t171, DirName:/CN=t172, DirName:/CN=t173, DirName:/CN=t174, DirName:/CN=t175, DirName:/CN=t176, DirName:/CN=t177, DirName:/CN=t178, DirName:/CN=t179, DirName:/CN=t180, DirName:/CN=t181, DirName:/CN=t182, DirName:/CN=t183, DirName:/CN=t184, DirName:/CN=t185, DirName:/CN=t186, DirName:/CN=t187, DirName:/CN=t188, DirName:/CN=t189, DirName:/CN=t190, DirName:/CN=t191, DirName:/CN=t192, DirName:/CN=t193, DirName:/CN=t194, DirName:/CN=t195, DirName:/CN=t196, DirName:/CN=t197, DirName:/CN=t198, DirName:/CN=t199, DirName:/CN=t200, DirName:/CN=t201, DirName:/CN=t202, DirName:/CN=t203, DirName:/CN=t204, DirName:/CN=t205, DirName:/CN=t206, DirName:/CN=t207, DirName:/CN=t208, DirName:/CN=t209, DirName:/CN=t210, DirName:/CN=t211, DirName:/CN=t212, DirName:/CN=t213, DirName:/CN=t214, DirName:/CN=t215, DirName:/CN=t216, DirName:/CN=t217, DirName:/CN=t218, DirName:/CN=t219, DirName:/CN=t220, DirName:/CN=t221, DirName:/CN=t222, DirName:/CN=t223, DirName:/CN=t224, DirName:/CN=t225, DirName:/CN=t226, DirName:/CN=t227, DirName:/CN=t228, DirName:/CN=t229, DirName:/CN=t230, DirName:/CN=t231, DirName:/CN=t232, DirName:/CN=t233, DirName:/CN=t234, DirName:/CN=t235, DirName:/CN=t236, DirName:/CN=t237, DirName:/CN=t238, DirName:/CN=t239, DirName:/CN=t240, DirName:/CN=t241, DirName:/CN=t242, DirName:/CN=t243, DirName:/CN=t244, DirName:/CN=t245, DirName:/CN=t246, DirName:/CN=t247, DirName:/CN=t248, DirName:/CN=t249, DirName:/CN=t250, DirName:/CN=t251, DirName:/CN=t252, DirName:/CN=t253, DirName:/CN=t254, DirName:/CN=t255, DirName:/CN=t256, DirName:/CN=t257, DirName:/CN=t258, DirName:/CN=t259, DirName:/CN=t260, DirName:/CN=t261, DirName:/CN=t262, DirName:/CN=t263, DirName:/CN=t264, DirName:/CN=t265, DirName:/CN=t266, DirName:/CN=t267, DirName:/CN=t268, DirName:/CN=t269, DirName:/CN=t270, DirName:/CN=t271, DirName:/CN=t272, DirName:/CN=t273, DirName:/CN=t274, DirName:/CN=t275, DirName:/CN=t276, DirName:/CN=t277, DirName:/CN=t278, DirName:/CN=t279, DirName:/CN=t280, DirName:/CN=t281, DirName:/CN=t282, DirName:/CN=t283, DirName:/CN=t284, DirName:/CN=t285, DirName:/CN=t286, DirName:/CN=t287, DirName:/CN=t288, DirName:/CN=t289, DirName:/CN=t290, DirName:/CN=t291, DirName:/CN=t292, DirName:/CN=t293, DirName:/CN=t294, DirName:/CN=t295, DirName:/CN=t296, DirName:/CN=t297, DirName:/CN=t298, DirName:/CN=t299, DirName:/CN=t300, DirName:/CN=t301, DirName:/CN=t302, DirName:/CN=t303, DirName:/CN=t304, DirName:/CN=t305, DirName:/CN=t306, DirName:/CN=t307, DirName:/CN=t308, DirName:/CN=t309, DirName:/CN=t310, DirName:/CN=t311, DirName:/CN=t312, DirName:/CN=t313, DirName:/CN=t314, DirName:/CN=t315, DirName:/CN=t316, DirName:/CN=t317, DirName:/CN=t318, DirName:/CN=t319, DirName:/CN=t320, DirName:/CN=t321, DirName:/CN=t322, DirName:/CN=t323, DirName:/CN=t324, DirName:/CN=t325, DirName:/CN=t326, DirName:/CN=t327, DirName:/CN=t328, DirName:/CN=t329, DirName:/CN=t330, DirName:/CN=t331, DirName:/CN=t332, DirName:/CN=t333, DirName:/CN=t334, DirName:/CN=t335, DirName:/CN=t336, DirName:/CN=t337, DirName:/CN=t338, DirName:/CN=t339, DirName:/CN=t340, DirName:/CN=t341, DirName:/CN=t342, DirName:/CN=t343, DirName:/CN=t344, DirName:/CN=t345, DirName:/CN=t346, DirName:/CN=t347, DirName:/CN=t348, DirName:/CN=t349, DirName:/CN=t350, DirName:/CN=t351, DirName:/CN=t352, DirName:/CN=t353, DirName:/CN=t354, DirName:/CN=t355, DirName:/CN=t356, DirName:/CN=t357, DirName:/CN=t358, DirName:/CN=t359, DirName:/CN=t360, DirName:/CN=t361, DirName:/CN=t362, DirName:/CN=t363, DirName:/CN=t364, DirName:/CN=t365, DirName:/CN=t366, DirName:/CN=t367, DirName:/CN=t368, DirName:/CN=t369, DirName:/CN=t370, DirName:/CN=t371, DirName:/CN=t372, DirName:/CN=t373, DirName:/CN=t374, DirName:/CN=t375, DirName:/CN=t376, DirName:/CN=t377, DirName:/CN=t378, DirName:/CN=t379, DirName:/CN=t380, DirName:/CN=t381, DirName:/CN=t382, DirName:/CN=t383, DirName:/CN=t384, DirName:/CN=t385, DirName:/CN=t386, DirName:/CN=t387, DirName:/CN=t388, DirName:/CN=t389, DirName:/CN=t390, DirName:/CN=t391, DirName:/CN=t392, DirName:/CN=t393, DirName:/CN=t394, DirName:/CN=t395, DirName:/CN=t396, DirName:/CN=t397, DirName:/CN=t398, DirName:/CN=t399, DirName:/CN=t400, DirName:/CN=t401, DirName:/CN=t402, DirName:/CN=t403, DirName:/CN=t404, DirName:/CN=t405, DirName:/CN=t406, DirName:/CN=t407, DirName:/CN=t408, DirName:/CN=t409, DirName:/CN=t410, DirName:/CN=t411, DirName:/CN=t412, DirName:/CN=t413, DirName:/CN=t414, DirName:/CN=t415, DirName:/CN=t416, URI:http://test/0, URI:http://test/1, URI:http://test/2, URI:http://test/3, URI:http://test/4, URI:http://test/5, URI:http://test/6, URI:http://test/7, URI:http://test/8, URI:http://test/9, URI:http://test/10, URI:http://test/11, URI:http://test/12, URI:http://test/13, URI:http://test/14, URI:http://test/15, URI:http://test/16, URI:http://test/17, URI:http://test/18, URI:http://test/19, URI:http://test/20, URI:http://test/21, URI:http://test/22, URI:http://test/23, URI:http://test/24, URI:http://test/25, URI:http://test/26, URI:http://test/27, URI:http://test/28, URI:http://test/29, URI:http://test/30, URI:http://test/31, URI:http://test/32, URI:http://test/33, URI:http://test/34, URI:http://test/35, URI:http://test/36, URI:http://test/37, URI:http://test/38, URI:http://test/39, URI:http://test/40, URI:http://test/41, URI:http://test/42, URI:http://test/43, URI:http://test/44, URI:http://test/45, URI:http://test/46, URI:http://test/47, URI:http://test/48, URI:http://test/49, URI:http://test/50, URI:http://test/51, URI:http://test/52, URI:http://test/53, URI:http://test/54, URI:http://test/55, URI:http://test/56, URI:http://test/57, URI:http://test/58, URI:http://test/59, URI:http://test/60, URI:http://test/61, URI:http://test/62, URI:http://test/63, URI:http://test/64, URI:http://test/65, URI:http://test/66, URI:http://test/67, URI:http://test/68, URI:http://test/69, URI:http://test/70, URI:http://test/71, URI:http://test/72, URI:http://test/73, URI:http://test/74, URI:http://test/75, URI:http://test/76, URI:http://test/77, URI:http://test/78, URI:http://test/79, URI:http://test/80, URI:http://test/81, URI:http://test/82, URI:http://test/83, URI:http://test/84, URI:http://test/85, URI:http://test/86, URI:http://test/87, URI:http://test/88, URI:http://test/89, URI:http://test/90, URI:http://test/91, URI:http://test/92, URI:http://test/93, URI:http://test/94, URI:http://test/95, URI:http://test/96, URI:http://test/97, URI:http://test/98, URI:http://test/99, URI:http://test/100, URI:http://test/101, URI:http://test/102, URI:http://test/103, URI:http://test/104, URI:http://test/105, URI:http://test/106, URI:http://test/107, URI:http://test/108, URI:http://test/109, URI:http://test/110, URI:http://test/111, URI:http://test/112, URI:http://test/113, URI:http://test/114, URI:http://test/115, URI:http://test/116, URI:http://test/117, URI:http://test/118, URI:http://test/119, URI:http://test/120, URI:http://test/121, URI:http://test/122, URI:http://test/123, URI:http://test/124, URI:http://test/125, URI:http://test/126, URI:http://test/127, URI:http://test/128, URI:http://test/129, URI:http://test/130, URI:http://test/131, URI:http://test/132, URI:http://test/133, URI:http://test/134, URI:http://test/135, URI:http://test/136, URI:http://test/137, URI:http://test/138, URI:http://test/139, URI:http://test/140, URI:http://test/141, URI:http://test/142, URI:http://test/143, URI:http://test/144, URI:http://test/145, URI:http://test/146, URI:http://test/147, URI:http://test/148, URI:http://test/149, URI:http://test/150, URI:http://test/151, URI:http://test/152, URI:http://test/153, URI:http://test/154, URI:http://test/155, URI:http://test/156, URI:http://test/157, URI:http://test/158, URI:http://test/159, URI:http://test/160, URI:http://test/161, URI:http://test/162, URI:http://test/163, URI:http://test/164, URI:http://test/165, URI:http://test/166, URI:http://test/167, URI:http://test/168, URI:http://test/169, URI:http://test/170, URI:http://test/171, URI:http://test/172, URI:http://test/173, URI:http://test/174, URI:http://test/175, URI:http://test/176, URI:http://test/177, URI:http://test/178, URI:http://test/179, URI:http://test/180, URI:http://test/181, URI:http://test/182, URI:http://test/183, URI:http://test/184, URI:http://test/185, URI:http://test/186, URI:http://test/187, URI:http://test/188, URI:http://test/189, URI:http://test/190, URI:http://test/191, URI:http://test/192, URI:http://test/193, URI:http://test/194, URI:http://test/195, URI:http://test/196, URI:http://test/197, URI:http://test/198, URI:http://test/199, URI:http://test/200, URI:http://test/201, URI:http://test/202, URI:http://test/203, URI:http://test/204, URI:http://test/205, URI:http://test/206, URI:http://test/207, URI:http://test/208, URI:http://test/209, URI:http://test/210, URI:http://test/211, URI:http://test/212, URI:http://test/213, URI:http://test/214, URI:http://test/215, URI:http://test/216, URI:http://test/217, URI:http://test/218, URI:http://test/219, URI:http://test/220, URI:http://test/221, URI:http://test/222, URI:http://test/223, URI:http://test/224, URI:http://test/225, URI:http://test/226, URI:http://test/227, URI:http://test/228, URI:http://test/229, URI:http://test/230, URI:http://test/231, URI:http://test/232, URI:http://test/233, URI:http://test/234, URI:http://test/235, URI:http://test/236, URI:http://test/237, URI:http://test/238, URI:http://test/239, URI:http://test/240, URI:http://test/241, URI:http://test/242, URI:http://test/243, URI:http://test/244, URI:http://test/245, URI:http://test/246, URI:http://test/247, URI:http://test/248, URI:http://test/249, URI:http://test/250, URI:http://test/251, URI:http://test/252, URI:http://test/253, URI:http://test/254, URI:http://test/255, URI:http://test/256, URI:http://test/257, URI:http://test/258, URI:http://test/259, URI:http://test/260, URI:http://test/261, URI:http://test/262, URI:http://test/263, URI:http://test/264, URI:http://test/265, URI:http://test/266, URI:http://test/267, URI:http://test/268, URI:http://test/269, URI:http://test/270, URI:http://test/271, URI:http://test/272, URI:http://test/273, URI:http://test/274, URI:http://test/275, URI:http://test/276, URI:http://test/277, URI:http://test/278, URI:http://test/279, URI:http://test/280, URI:http://test/281, URI:http://test/282, URI:http://test/283, URI:http://test/284, URI:http://test/285, URI:http://test/286, URI:http://test/287, URI:http://test/288, URI:http://test/289, URI:http://test/290, URI:http://test/291, URI:http://test/292, URI:http://test/293, URI:http://test/294, URI:http://test/295, URI:http://test/296, URI:http://test/297, URI:http://test/298, URI:http://test/299, URI:http://test/300, URI:http://test/301, URI:http://test/302, URI:http://test/303, URI:http://test/304, URI:http://test/305, URI:http://test/306, URI:http://test/307, URI:http://test/308, URI:http://test/309, URI:http://test/310, URI:http://test/311, URI:http://test/312, URI:http://test/313, URI:http://test/314, URI:http://test/315, URI:http://test/316, URI:http://test/317, URI:http://test/318, URI:http://test/319, URI:http://test/320, URI:http://test/321, URI:http://test/322, URI:http://test/323, URI:http://test/324, URI:http://test/325, URI:http://test/326, URI:http://test/327, URI:http://test/328, URI:http://test/329, URI:http://test/330, URI:http://test/331, URI:http://test/332, URI:http://test/333, URI:http://test/334, URI:http://test/335, URI:http://test/336, URI:http://test/337, URI:http://test/338, URI:http://test/339, URI:http://test/340, URI:http://test/341, URI:http://test/342, URI:http://test/343, URI:http://test/344, URI:http://test/345, URI:http://test/346, URI:http://test/347, URI:http://test/348, URI:http://test/349, URI:http://test/350, URI:http://test/351, URI:http://test/352, URI:http://test/353, URI:http://test/354, URI:http://test/355, URI:http://test/356, URI:http://test/357, URI:http://test/358, URI:http://test/359, URI:http://test/360, URI:http://test/361, URI:http://test/362, URI:http://test/363, URI:http://test/364, URI:http://test/365, URI:http://test/366, URI:http://test/367, URI:http://test/368, URI:http://test/369, URI:http://test/370, URI:http://test/371, URI:http://test/372, URI:http://test/373, URI:http://test/374, URI:http://test/375, URI:http://test/376, URI:http://test/377, URI:http://test/378, URI:http://test/379, URI:http://test/380, URI:http://test/381, URI:http://test/382, URI:http://test/383, URI:http://test/384, URI:http://test/385, URI:http://test/386, URI:http://test/387, URI:http://test/388, URI:http://test/389, URI:http://test/390, URI:http://test/391, URI:http://test/392, URI:http://test/393, URI:http://test/394, URI:http://test/395, URI:http://test/396, URI:http://test/397, URI:http://test/398, URI:http://test/399, URI:http://test/400, URI:http://test/401, URI:http://test/402, URI:http://test/403, URI:http://test/404, URI:http://test/405, URI:http://test/406, URI:http://test/407, URI:http://test/408, URI:http://test/409, URI:http://test/410, URI:http://test/411, URI:http://test/412, URI:http://test/413, URI:http://test/414, URI:http://test/415, URI:http://test/416, URI:http://test/417, URI:http://test/418, URI:http://test/419, URI:http://test/420, URI:http://test/421, URI:http://test/422, URI:http://test/423, URI:http://test/424, URI:http://test/425, URI:http://test/426, URI:http://test/427, URI:http://test/428, URI:http://test/429, URI:http://test/430, URI:http://test/431, URI:http://test/432, URI:http://test/433, URI:http://test/434, URI:http://test/435, URI:http://test/436, URI:http://test/437, URI:http://test/438, URI:http://test/439, URI:http://test/440, URI:http://test/441, URI:http://test/442, URI:http://test/443, URI:http://test/444, URI:http://test/445, URI:http://test/446, URI:http://test/447, URI:http://test/448, URI:http://test/449, URI:http://test/450, URI:http://test/451, URI:http://test/452, URI:http://test/453, URI:http://test/454, URI:http://test/455, URI:http://test/456, URI:http://test/457, URI:http://test/458, URI:http://test/459, URI:http://test/460, URI:http://test/461, URI:http://test/462, URI:http://test/463, URI:http://test/464, URI:http://test/465, URI:http://test/466, URI:http://test/467, URI:http://test/468, URI:http://test/469, URI:http://test/470, URI:http://test/471, URI:http://test/472, URI:http://test/473, URI:http://test/474, URI:http://test/475, URI:http://test/476, URI:http://test/477, URI:http://test/478, URI:http://test/479, URI:http://test/480, URI:http://test/481, URI:http://test/482, URI:http://test/483, URI:http://test/484, URI:http://test/485, URI:http://test/486, URI:http://test/487, URI:http://test/488, URI:http://test/489, URI:http://test/490, URI:http://test/491, URI:http://test/492, URI:http://test/493, URI:http://test/494, URI:http://test/495, URI:http://test/496, URI:http://test/497, URI:http://test/498, URI:http://test/499, URI:http://test/500, URI:http://test/501, URI:http://test/502, URI:http://test/503, URI:http://test/504, URI:http://test/505, URI:http://test/506, URI:http://test/507, URI:http://test/508, URI:http://test/509, URI:http://test/510, URI:http://test/511, URI:http://test/512, URI:http://test/513, URI:http://test/514, URI:http://test/515, URI:http://test/516, URI:http://test/517, URI:http://test/518, URI:http://test/519, URI:http://test/520, URI:http://test/521, URI:http://test/522, URI:http://test/523, URI:http://test/524, URI:http://test/525, URI:http://test/526, URI:http://test/527, URI:http://test/528, URI:http://test/529, URI:http://test/530, URI:http://test/531, URI:http://test/532, URI:http://test/533, URI:http://test/534, URI:http://test/535, URI:http://test/536, URI:http://test/537, URI:http://test/538, URI:http://test/539, URI:http://test/540, URI:http://test/541, URI:http://test/542, URI:http://test/543, URI:http://test/544, URI:http://test/545, URI:http://test/546, URI:http://test/547, URI:http://test/548, URI:http://test/549, URI:http://test/550, URI:http://test/551, URI:http://test/552, URI:http://test/553, URI:http://test/554, URI:http://test/555, URI:http://test/556, URI:http://test/557, URI:http://test/558, URI:http://test/559, URI:http://test/560, URI:http://test/561, URI:http://test/562, URI:http://test/563, URI:http://test/564, URI:http://test/565, URI:http://test/566, URI:http://test/567, URI:http://test/568, URI:http://test/569, URI:http://test/570, URI:http://test/571, URI:http://test/572, URI:http://test/573, URI:http://test/574, URI:http://test/575, URI:http://test/576, URI:http://test/577, URI:http://test/578, URI:http://test/579, URI:http://test/580, URI:http://test/581, URI:http://test/582, URI:http://test/583, URI:http://test/584, URI:http://test/585, URI:http://test/586, URI:http://test/587, URI:http://test/588, URI:http://test/589, URI:http://test/590, URI:http://test/591, URI:http://test/592, URI:http://test/593, URI:http://test/594, URI:http://test/595, URI:http://test/596, URI:http://test/597, URI:http://test/598, URI:http://test/599, URI:http://test/600, URI:http://test/601, URI:http://test/602, URI:http://test/603, URI:http://test/604, URI:http://test/605, URI:http://test/606, URI:http://test/607, URI:http://test/608, URI:http://test/609, URI:http://test/610, URI:http://test/611, URI:http://test/612, URI:http://test/613, URI:http://test/614, URI:http://test/615, URI:http://test/616, URI:http://test/617, URI:http://test/618, URI:http://test/619, URI:http://test/620, URI:http://test/621, URI:http://test/622, URI:http://test/623, URI:http://test/624, URI:http://test/625, URI:http://test/626, URI:http://test/627, URI:http://test/628, URI:http://test/629, URI:http://test/630, URI:http://test/631, URI:http://test/632, URI:http://test/633, URI:http://test/634, URI:http://test/635, URI:http://test/636, URI:http://test/637, URI:http://test/638, URI:http://test/639, URI:http://test/640, URI:http://test/641, URI:http://test/642, URI:http://test/643, URI:http://test/644, URI:http://test/645, URI:http://test/646, URI:http://test/647, URI:http://test/648, URI:http://test/649, URI:http://test/650, URI:http://test/651, URI:http://test/652, URI:http://test/653, URI:http://test/654, URI:http://test/655, URI:http://test/656, URI:http://test/657, URI:http://test/658, URI:http://test/659, URI:http://test/660, URI:http://test/661, URI:http://test/662, URI:http://test/663, URI:http://test/664, URI:http://test/665, URI:http://test/666, URI:http://test/667, URI:http://test/668, URI:http://test/669, URI:http://test/670, URI:http://test/671, URI:http://test/672, URI:http://test/673, URI:http://test/674, URI:http://test/675, URI:http://test/676, URI:http://test/677, URI:http://test/678, URI:http://test/679, URI:http://test/680, URI:http://test/681, URI:http://test/682, URI:http://test/683, URI:http://test/684, URI:http://test/685, URI:http://test/686, URI:http://test/687, URI:http://test/688, URI:http://test/689, URI:http://test/690, URI:http://test/691, URI:http://test/692, URI:http://test/693, URI:http://test/694, URI:http://test/695, URI:http://test/696, URI:http://test/697, URI:http://test/698, URI:http://test/699, URI:http://test/700, URI:http://test/701, URI:http://test/702, URI:http://test/703, URI:http://test/704, URI:http://test/705, URI:http://test/706, URI:http://test/707, URI:http://test/708, URI:http://test/709, URI:http://test/710, URI:http://test/711, URI:http://test/712, URI:http://test/713, URI:http://test/714, URI:http://test/715, URI:http://test/716, URI:http://test/717, URI:http://test/718, URI:http://test/719, URI:http://test/720, URI:http://test/721, URI:http://test/722, URI:http://test/723, URI:http://test/724, URI:http://test/725, URI:http://test/726, URI:http://test/727, URI:http://test/728, URI:http://test/729, URI:http://test/730, URI:http://test/731, URI:http://test/732, URI:http://test/733, URI:http://test/734, URI:http://test/735, URI:http://test/736, URI:http://test/737, URI:http://test/738, URI:http://test/739, URI:http://test/740, URI:http://test/741, URI:http://test/742, URI:http://test/743, URI:http://test/744, URI:http://test/745, URI:http://test/746, URI:http://test/747, URI:http://test/748, URI:http://test/749, URI:http://test/750, URI:http://test/751, URI:http://test/752, URI:http://test/753, URI:http://test/754, URI:http://test/755, URI:http://test/756, URI:http://test/757, URI:http://test/758, URI:http://test/759, URI:http://test/760, URI:http://test/761, URI:http://test/762, URI:http://test/763, URI:http://test/764, URI:http://test/765, URI:http://test/766, URI:http://test/767, URI:http://test/768, URI:http://test/769, URI:http://test/770, URI:http://test/771, URI:http://test/772, URI:http://test/773, URI:http://test/774, URI:http://test/775, URI:http://test/776, URI:http://test/777, URI:http://test/778, URI:http://test/779, URI:http://test/780, URI:http://test/781, URI:http://test/782, URI:http://test/783, URI:http://test/784, URI:http://test/785, URI:http://test/786, URI:http://test/787, URI:http://test/788, URI:http://test/789, URI:http://test/790, URI:http://test/791, URI:http://test/792, URI:http://test/793, URI:http://test/794, URI:http://test/795, URI:http://test/796, URI:http://test/797, URI:http://test/798, URI:http://test/799, URI:http://test/800, URI:http://test/801, URI:http://test/802, URI:http://test/803, URI:http://test/804, URI:http://test/805, URI:http://test/806, URI:http://test/807, URI:http://test/808, URI:http://test/809, URI:http://test/810, URI:http://test/811, URI:http://test/812, URI:http://test/813, URI:http://test/814, URI:http://test/815, URI:http://test/816, URI:http://test/817, URI:http://test/818, URI:http://test/819, URI:http://test/820, URI:http://test/821, URI:http://test/822, URI:http://test/823, URI:http://test/824, URI:http://test/825, URI:http://test/826, URI:http://test/827, URI:http://test/828, URI:http://test/829, URI:http://test/830, URI:http://test/831, URI:http://test/832, URI:http://test/833, URI:http://test/834, URI:http://test/835, URI:http://test/836, URI:http://test/837, URI:http://test/838, URI:http://test/839, URI:http://test/840, URI:http://test/841, URI:http://test/842, URI:http://test/843, URI:http://test/844, URI:http://test/845, URI:http://test/846, URI:http://test/847, URI:http://test/848, URI:http://test/849, URI:http://test/850, URI:http://test/851, URI:http://test/852, URI:http://test/853, URI:http://test/854, URI:http://test/855, URI:http://test/856, URI:http://test/857, URI:http://test/858, URI:http://test/859, URI:http://test/860, URI:http://test/861, URI:http://test/862, URI:http://test/863, URI:http://test/864, URI:http://test/865, URI:http://test/866, URI:http://test/867, URI:http://test/868, URI:http://test/869, URI:http://test/870, URI:http://test/871, URI:http://test/872, URI:http://test/873, URI:http://test/874, URI:http://test/875, URI:http://test/876, URI:http://test/877, URI:http://test/878, URI:http://test/879, URI:http://test/880, URI:http://test/881, URI:http://test/882, URI:http://test/883, URI:http://test/884, URI:http://test/885, URI:http://test/886, URI:http://test/887, URI:http://test/888, URI:http://test/889, URI:http://test/890, URI:http://test/891, URI:http://test/892, URI:http://test/893, URI:http://test/894, URI:http://test/895, URI:http://test/896, URI:http://test/897, URI:http://test/898, URI:http://test/899, URI:http://test/900, URI:http://test/901, URI:http://test/902, URI:http://test/903, URI:http://test/904, URI:http://test/905, URI:http://test/906, URI:http://test/907, URI:http://test/908, URI:http://test/909, URI:http://test/910, URI:http://test/911, URI:http://test/912, URI:http://test/913, URI:http://test/914, URI:http://test/915, URI:http://test/916, URI:http://test/917, URI:http://test/918, URI:http://test/919, URI:http://test/920, URI:http://test/921, URI:http://test/922, URI:http://test/923, URI:http://test/924, URI:http://test/925, URI:http://test/926, URI:http://test/927, URI:http://test/928, URI:http://test/929, URI:http://test/930, URI:http://test/931, URI:http://test/932, URI:http://test/933, URI:http://test/934, URI:http://test/935, URI:http://test/936, URI:http://test/937, URI:http://test/938, URI:http://test/939, URI:http://test/940, URI:http://test/941, URI:http://test/942, URI:http://test/943, URI:http://test/944, URI:http://test/945, URI:http://test/946, URI:http://test/947, URI:http://test/948, URI:http://test/949, URI:http://test/950, URI:http://test/951, URI:http://test/952, URI:http://test/953, URI:http://test/954, URI:http://test/955, URI:http://test/956, URI:http://test/957, URI:http://test/958, URI:http://test/959, URI:http://test/960, URI:http://test/961, URI:http://test/962, URI:http://test/963, URI:http://test/964, URI:http://test/965, URI:http://test/966, URI:http://test/967, URI:http://test/968, URI:http://test/969, URI:http://test/970, URI:http://test/971, URI:http://test/972, URI:http://test/973, URI:http://test/974, URI:http://test/975, URI:http://test/976, URI:http://test/977, URI:http://test/978, URI:http://test/979, URI:http://test/980, URI:http://test/981, URI:http://test/982, URI:http://test/983, URI:http://test/984, URI:http://test/985, URI:http://test/986, URI:http://test/987, URI:http://test/988, URI:http://test/989, URI:http://test/990, URI:http://test/991, URI:http://test/992, URI:http://test/993, URI:http://test/994, URI:http://test/995, URI:http://test/996, URI:http://test/997, URI:http://test/998, URI:http://test/999, URI:http://test/1000, URI:http://test/1001, URI:http://test/1002, URI:http://test/1003, URI:http://test/1004, URI:http://test/1005, URI:http://test/1006, URI:http://test/1007, URI:http://test/1008, URI:http://test/1009, URI:http://test/1010, URI:http://test/1011, URI:http://test/1012, URI:http://test/1013, URI:http://test/1014, URI:http://test/1015, URI:http://test/1016, URI:http://test/1017, URI:http://test/1018, URI:http://test/1019, URI:http://test/1020, URI:http://test/1021, URI:http://test/1022, URI:http://test/1023, URI:http://test/1024 -+ DNS:t0.test, DNS:t1.test, DNS:t2.test, DNS:t3.test, DNS:t4.test, DNS:t5.test, DNS:t6.test, DNS:t7.test, DNS:t8.test, DNS:t9.test, DNS:t10.test, DNS:t11.test, DNS:t12.test, DNS:t13.test, DNS:t14.test, DNS:t15.test, DNS:t16.test, DNS:t17.test, DNS:t18.test, DNS:t19.test, DNS:t20.test, DNS:t21.test, DNS:t22.test, DNS:t23.test, DNS:t24.test, DNS:t25.test, DNS:t26.test, DNS:t27.test, DNS:t28.test, DNS:t29.test, DNS:t30.test, DNS:t31.test, DNS:t32.test, DNS:t33.test, DNS:t34.test, DNS:t35.test, DNS:t36.test, DNS:t37.test, DNS:t38.test, DNS:t39.test, DNS:t40.test, DNS:t41.test, DNS:t42.test, DNS:t43.test, DNS:t44.test, DNS:t45.test, DNS:t46.test, DNS:t47.test, DNS:t48.test, DNS:t49.test, DNS:t50.test, DNS:t51.test, DNS:t52.test, DNS:t53.test, DNS:t54.test, DNS:t55.test, DNS:t56.test, DNS:t57.test, DNS:t58.test, DNS:t59.test, DNS:t60.test, DNS:t61.test, DNS:t62.test, DNS:t63.test, DNS:t64.test, DNS:t65.test, DNS:t66.test, DNS:t67.test, DNS:t68.test, DNS:t69.test, DNS:t70.test, DNS:t71.test, DNS:t72.test, DNS:t73.test, DNS:t74.test, DNS:t75.test, DNS:t76.test, DNS:t77.test, DNS:t78.test, DNS:t79.test, DNS:t80.test, DNS:t81.test, DNS:t82.test, DNS:t83.test, DNS:t84.test, DNS:t85.test, DNS:t86.test, DNS:t87.test, DNS:t88.test, DNS:t89.test, DNS:t90.test, DNS:t91.test, DNS:t92.test, DNS:t93.test, DNS:t94.test, DNS:t95.test, DNS:t96.test, DNS:t97.test, DNS:t98.test, DNS:t99.test, DNS:t100.test, DNS:t101.test, DNS:t102.test, DNS:t103.test, DNS:t104.test, DNS:t105.test, DNS:t106.test, DNS:t107.test, DNS:t108.test, DNS:t109.test, DNS:t110.test, DNS:t111.test, DNS:t112.test, DNS:t113.test, DNS:t114.test, DNS:t115.test, DNS:t116.test, DNS:t117.test, DNS:t118.test, DNS:t119.test, DNS:t120.test, DNS:t121.test, DNS:t122.test, DNS:t123.test, DNS:t124.test, DNS:t125.test, DNS:t126.test, DNS:t127.test, DNS:t128.test, DNS:t129.test, DNS:t130.test, DNS:t131.test, DNS:t132.test, DNS:t133.test, DNS:t134.test, DNS:t135.test, DNS:t136.test, DNS:t137.test, DNS:t138.test, DNS:t139.test, DNS:t140.test, DNS:t141.test, DNS:t142.test, DNS:t143.test, DNS:t144.test, DNS:t145.test, DNS:t146.test, DNS:t147.test, DNS:t148.test, DNS:t149.test, DNS:t150.test, DNS:t151.test, DNS:t152.test, DNS:t153.test, DNS:t154.test, DNS:t155.test, DNS:t156.test, DNS:t157.test, DNS:t158.test, DNS:t159.test, DNS:t160.test, DNS:t161.test, DNS:t162.test, DNS:t163.test, DNS:t164.test, DNS:t165.test, DNS:t166.test, DNS:t167.test, DNS:t168.test, DNS:t169.test, DNS:t170.test, DNS:t171.test, DNS:t172.test, DNS:t173.test, DNS:t174.test, DNS:t175.test, DNS:t176.test, DNS:t177.test, DNS:t178.test, DNS:t179.test, DNS:t180.test, DNS:t181.test, DNS:t182.test, DNS:t183.test, DNS:t184.test, DNS:t185.test, DNS:t186.test, DNS:t187.test, DNS:t188.test, DNS:t189.test, DNS:t190.test, DNS:t191.test, DNS:t192.test, DNS:t193.test, DNS:t194.test, DNS:t195.test, DNS:t196.test, DNS:t197.test, DNS:t198.test, DNS:t199.test, DNS:t200.test, DNS:t201.test, DNS:t202.test, DNS:t203.test, DNS:t204.test, DNS:t205.test, DNS:t206.test, DNS:t207.test, DNS:t208.test, DNS:t209.test, DNS:t210.test, DNS:t211.test, DNS:t212.test, DNS:t213.test, DNS:t214.test, DNS:t215.test, DNS:t216.test, DNS:t217.test, DNS:t218.test, DNS:t219.test, DNS:t220.test, DNS:t221.test, DNS:t222.test, DNS:t223.test, DNS:t224.test, DNS:t225.test, DNS:t226.test, DNS:t227.test, DNS:t228.test, DNS:t229.test, DNS:t230.test, DNS:t231.test, DNS:t232.test, DNS:t233.test, DNS:t234.test, DNS:t235.test, DNS:t236.test, DNS:t237.test, DNS:t238.test, DNS:t239.test, DNS:t240.test, DNS:t241.test, DNS:t242.test, DNS:t243.test, DNS:t244.test, DNS:t245.test, DNS:t246.test, DNS:t247.test, DNS:t248.test, DNS:t249.test, DNS:t250.test, DNS:t251.test, DNS:t252.test, DNS:t253.test, DNS:t254.test, DNS:t255.test, DNS:t256.test, DNS:t257.test, DNS:t258.test, DNS:t259.test, DNS:t260.test, DNS:t261.test, DNS:t262.test, DNS:t263.test, DNS:t264.test, DNS:t265.test, DNS:t266.test, DNS:t267.test, DNS:t268.test, DNS:t269.test, DNS:t270.test, DNS:t271.test, DNS:t272.test, DNS:t273.test, DNS:t274.test, DNS:t275.test, DNS:t276.test, DNS:t277.test, DNS:t278.test, DNS:t279.test, DNS:t280.test, DNS:t281.test, DNS:t282.test, DNS:t283.test, DNS:t284.test, DNS:t285.test, DNS:t286.test, DNS:t287.test, DNS:t288.test, DNS:t289.test, DNS:t290.test, DNS:t291.test, DNS:t292.test, DNS:t293.test, DNS:t294.test, DNS:t295.test, DNS:t296.test, DNS:t297.test, DNS:t298.test, DNS:t299.test, DNS:t300.test, DNS:t301.test, DNS:t302.test, DNS:t303.test, DNS:t304.test, DNS:t305.test, DNS:t306.test, DNS:t307.test, DNS:t308.test, DNS:t309.test, DNS:t310.test, DNS:t311.test, DNS:t312.test, DNS:t313.test, DNS:t314.test, DNS:t315.test, DNS:t316.test, DNS:t317.test, DNS:t318.test, DNS:t319.test, DNS:t320.test, DNS:t321.test, DNS:t322.test, DNS:t323.test, DNS:t324.test, DNS:t325.test, DNS:t326.test, DNS:t327.test, DNS:t328.test, DNS:t329.test, DNS:t330.test, DNS:t331.test, DNS:t332.test, DNS:t333.test, DNS:t334.test, DNS:t335.test, DNS:t336.test, DNS:t337.test, DNS:t338.test, DNS:t339.test, DNS:t340.test, IP Address:10.0.0.0, IP Address:10.0.0.1, IP Address:10.0.0.2, IP Address:10.0.0.3, IP Address:10.0.0.4, IP Address:10.0.0.5, IP Address:10.0.0.6, IP Address:10.0.0.7, IP Address:10.0.0.8, IP Address:10.0.0.9, IP Address:10.0.0.10, IP Address:10.0.0.11, IP Address:10.0.0.12, IP Address:10.0.0.13, IP Address:10.0.0.14, IP Address:10.0.0.15, IP Address:10.0.0.16, IP Address:10.0.0.17, IP Address:10.0.0.18, IP Address:10.0.0.19, IP Address:10.0.0.20, IP Address:10.0.0.21, IP Address:10.0.0.22, IP Address:10.0.0.23, IP Address:10.0.0.24, IP Address:10.0.0.25, IP Address:10.0.0.26, IP Address:10.0.0.27, IP Address:10.0.0.28, IP Address:10.0.0.29, IP Address:10.0.0.30, IP Address:10.0.0.31, IP Address:10.0.0.32, IP Address:10.0.0.33, IP Address:10.0.0.34, IP Address:10.0.0.35, IP Address:10.0.0.36, IP Address:10.0.0.37, IP Address:10.0.0.38, IP Address:10.0.0.39, IP Address:10.0.0.40, IP Address:10.0.0.41, IP Address:10.0.0.42, IP Address:10.0.0.43, IP Address:10.0.0.44, IP Address:10.0.0.45, IP Address:10.0.0.46, IP Address:10.0.0.47, IP Address:10.0.0.48, IP Address:10.0.0.49, IP Address:10.0.0.50, IP Address:10.0.0.51, IP Address:10.0.0.52, IP Address:10.0.0.53, IP Address:10.0.0.54, IP Address:10.0.0.55, IP Address:10.0.0.56, IP Address:10.0.0.57, IP Address:10.0.0.58, IP Address:10.0.0.59, IP Address:10.0.0.60, IP Address:10.0.0.61, IP Address:10.0.0.62, IP Address:10.0.0.63, IP Address:10.0.0.64, IP Address:10.0.0.65, IP Address:10.0.0.66, IP Address:10.0.0.67, IP Address:10.0.0.68, IP Address:10.0.0.69, IP Address:10.0.0.70, IP Address:10.0.0.71, IP Address:10.0.0.72, IP Address:10.0.0.73, IP Address:10.0.0.74, IP Address:10.0.0.75, IP Address:10.0.0.76, IP Address:10.0.0.77, IP Address:10.0.0.78, IP Address:10.0.0.79, IP Address:10.0.0.80, IP Address:10.0.0.81, IP Address:10.0.0.82, IP Address:10.0.0.83, IP Address:10.0.0.84, IP Address:10.0.0.85, IP Address:10.0.0.86, IP Address:10.0.0.87, IP Address:10.0.0.88, IP Address:10.0.0.89, IP Address:10.0.0.90, IP Address:10.0.0.91, IP Address:10.0.0.92, IP Address:10.0.0.93, IP Address:10.0.0.94, IP Address:10.0.0.95, IP Address:10.0.0.96, IP Address:10.0.0.97, IP Address:10.0.0.98, IP Address:10.0.0.99, IP Address:10.0.0.100, IP Address:10.0.0.101, IP Address:10.0.0.102, IP Address:10.0.0.103, IP Address:10.0.0.104, IP Address:10.0.0.105, IP Address:10.0.0.106, IP Address:10.0.0.107, IP Address:10.0.0.108, IP Address:10.0.0.109, IP Address:10.0.0.110, IP Address:10.0.0.111, IP Address:10.0.0.112, IP Address:10.0.0.113, IP Address:10.0.0.114, IP Address:10.0.0.115, IP Address:10.0.0.116, IP Address:10.0.0.117, IP Address:10.0.0.118, IP Address:10.0.0.119, IP Address:10.0.0.120, IP Address:10.0.0.121, IP Address:10.0.0.122, IP Address:10.0.0.123, IP Address:10.0.0.124, IP Address:10.0.0.125, IP Address:10.0.0.126, IP Address:10.0.0.127, IP Address:10.0.0.128, IP Address:10.0.0.129, IP Address:10.0.0.130, IP Address:10.0.0.131, IP Address:10.0.0.132, IP Address:10.0.0.133, IP Address:10.0.0.134, IP Address:10.0.0.135, IP Address:10.0.0.136, IP Address:10.0.0.137, IP Address:10.0.0.138, IP Address:10.0.0.139, IP Address:10.0.0.140, IP Address:10.0.0.141, IP Address:10.0.0.142, IP Address:10.0.0.143, IP Address:10.0.0.144, IP Address:10.0.0.145, IP Address:10.0.0.146, IP Address:10.0.0.147, IP Address:10.0.0.148, IP Address:10.0.0.149, IP Address:10.0.0.150, IP Address:10.0.0.151, IP Address:10.0.0.152, IP Address:10.0.0.153, IP Address:10.0.0.154, IP Address:10.0.0.155, IP Address:10.0.0.156, IP Address:10.0.0.157, IP Address:10.0.0.158, IP Address:10.0.0.159, IP Address:10.0.0.160, IP Address:10.0.0.161, IP Address:10.0.0.162, IP Address:10.0.0.163, IP Address:10.0.0.164, IP Address:10.0.0.165, IP Address:10.0.0.166, IP Address:10.0.0.167, IP Address:10.0.0.168, IP Address:10.0.0.169, IP Address:10.0.0.170, IP Address:10.0.0.171, IP Address:10.0.0.172, IP Address:10.0.0.173, IP Address:10.0.0.174, IP Address:10.0.0.175, IP Address:10.0.0.176, IP Address:10.0.0.177, IP Address:10.0.0.178, IP Address:10.0.0.179, IP Address:10.0.0.180, IP Address:10.0.0.181, IP Address:10.0.0.182, IP Address:10.0.0.183, IP Address:10.0.0.184, IP Address:10.0.0.185, IP Address:10.0.0.186, IP Address:10.0.0.187, IP Address:10.0.0.188, IP Address:10.0.0.189, IP Address:10.0.0.190, IP Address:10.0.0.191, IP Address:10.0.0.192, IP Address:10.0.0.193, IP Address:10.0.0.194, IP Address:10.0.0.195, IP Address:10.0.0.196, IP Address:10.0.0.197, IP Address:10.0.0.198, IP Address:10.0.0.199, IP Address:10.0.0.200, IP Address:10.0.0.201, IP Address:10.0.0.202, IP Address:10.0.0.203, IP Address:10.0.0.204, IP Address:10.0.0.205, IP Address:10.0.0.206, IP Address:10.0.0.207, IP Address:10.0.0.208, IP Address:10.0.0.209, IP Address:10.0.0.210, IP Address:10.0.0.211, IP Address:10.0.0.212, IP Address:10.0.0.213, IP Address:10.0.0.214, IP Address:10.0.0.215, IP Address:10.0.0.216, IP Address:10.0.0.217, IP Address:10.0.0.218, IP Address:10.0.0.219, IP Address:10.0.0.220, IP Address:10.0.0.221, IP Address:10.0.0.222, IP Address:10.0.0.223, IP Address:10.0.0.224, IP Address:10.0.0.225, IP Address:10.0.0.226, IP Address:10.0.0.227, IP Address:10.0.0.228, IP Address:10.0.0.229, IP Address:10.0.0.230, IP Address:10.0.0.231, IP Address:10.0.0.232, IP Address:10.0.0.233, IP Address:10.0.0.234, IP Address:10.0.0.235, IP Address:10.0.0.236, IP Address:10.0.0.237, IP Address:10.0.0.238, IP Address:10.0.0.239, IP Address:10.0.0.240, IP Address:10.0.0.241, IP Address:10.0.0.242, IP Address:10.0.0.243, IP Address:10.0.0.244, IP Address:10.0.0.245, IP Address:10.0.0.246, IP Address:10.0.0.247, IP Address:10.0.0.248, IP Address:10.0.0.249, IP Address:10.0.0.250, IP Address:10.0.0.251, IP Address:10.0.0.252, IP Address:10.0.0.253, IP Address:10.0.0.254, IP Address:10.0.0.255, IP Address:10.0.1.0, IP Address:10.0.1.1, IP Address:10.0.1.2, IP Address:10.0.1.3, IP Address:10.0.1.4, IP Address:10.0.1.5, IP Address:10.0.1.6, IP Address:10.0.1.7, IP Address:10.0.1.8, IP Address:10.0.1.9, IP Address:10.0.1.10, IP Address:10.0.1.11, IP Address:10.0.1.12, IP Address:10.0.1.13, IP Address:10.0.1.14, IP Address:10.0.1.15, IP Address:10.0.1.16, IP Address:10.0.1.17, IP Address:10.0.1.18, IP Address:10.0.1.19, IP Address:10.0.1.20, IP Address:10.0.1.21, IP Address:10.0.1.22, IP Address:10.0.1.23, IP Address:10.0.1.24, IP Address:10.0.1.25, IP Address:10.0.1.26, IP Address:10.0.1.27, IP Address:10.0.1.28, IP Address:10.0.1.29, IP Address:10.0.1.30, IP Address:10.0.1.31, IP Address:10.0.1.32, IP Address:10.0.1.33, IP Address:10.0.1.34, IP Address:10.0.1.35, IP Address:10.0.1.36, IP Address:10.0.1.37, IP Address:10.0.1.38, IP Address:10.0.1.39, IP Address:10.0.1.40, IP Address:10.0.1.41, IP Address:10.0.1.42, IP Address:10.0.1.43, IP Address:10.0.1.44, IP Address:10.0.1.45, IP Address:10.0.1.46, IP Address:10.0.1.47, IP Address:10.0.1.48, IP Address:10.0.1.49, IP Address:10.0.1.50, IP Address:10.0.1.51, IP Address:10.0.1.52, IP Address:10.0.1.53, IP Address:10.0.1.54, IP Address:10.0.1.55, IP Address:10.0.1.56, IP Address:10.0.1.57, IP Address:10.0.1.58, IP Address:10.0.1.59, IP Address:10.0.1.60, IP Address:10.0.1.61, IP Address:10.0.1.62, IP Address:10.0.1.63, IP Address:10.0.1.64, IP Address:10.0.1.65, IP Address:10.0.1.66, IP Address:10.0.1.67, IP Address:10.0.1.68, IP Address:10.0.1.69, IP Address:10.0.1.70, IP Address:10.0.1.71, IP Address:10.0.1.72, IP Address:10.0.1.73, IP Address:10.0.1.74, IP Address:10.0.1.75, IP Address:10.0.1.76, IP Address:10.0.1.77, IP Address:10.0.1.78, IP Address:10.0.1.79, IP Address:10.0.1.80, IP Address:10.0.1.81, IP Address:10.0.1.82, IP Address:10.0.1.83, IP Address:10.0.1.84, DirName:/CN=t0, DirName:/CN=t1, DirName:/CN=t2, DirName:/CN=t3, DirName:/CN=t4, DirName:/CN=t5, DirName:/CN=t6, DirName:/CN=t7, DirName:/CN=t8, DirName:/CN=t9, DirName:/CN=t10, DirName:/CN=t11, DirName:/CN=t12, DirName:/CN=t13, DirName:/CN=t14, DirName:/CN=t15, DirName:/CN=t16, DirName:/CN=t17, DirName:/CN=t18, DirName:/CN=t19, DirName:/CN=t20, DirName:/CN=t21, DirName:/CN=t22, DirName:/CN=t23, DirName:/CN=t24, DirName:/CN=t25, DirName:/CN=t26, DirName:/CN=t27, DirName:/CN=t28, DirName:/CN=t29, DirName:/CN=t30, DirName:/CN=t31, DirName:/CN=t32, DirName:/CN=t33, DirName:/CN=t34, DirName:/CN=t35, DirName:/CN=t36, DirName:/CN=t37, DirName:/CN=t38, DirName:/CN=t39, DirName:/CN=t40, DirName:/CN=t41, DirName:/CN=t42, DirName:/CN=t43, DirName:/CN=t44, DirName:/CN=t45, DirName:/CN=t46, DirName:/CN=t47, DirName:/CN=t48, DirName:/CN=t49, DirName:/CN=t50, DirName:/CN=t51, DirName:/CN=t52, DirName:/CN=t53, DirName:/CN=t54, DirName:/CN=t55, DirName:/CN=t56, DirName:/CN=t57, DirName:/CN=t58, DirName:/CN=t59, DirName:/CN=t60, DirName:/CN=t61, DirName:/CN=t62, DirName:/CN=t63, DirName:/CN=t64, DirName:/CN=t65, DirName:/CN=t66, DirName:/CN=t67, DirName:/CN=t68, DirName:/CN=t69, DirName:/CN=t70, DirName:/CN=t71, DirName:/CN=t72, DirName:/CN=t73, DirName:/CN=t74, DirName:/CN=t75, DirName:/CN=t76, DirName:/CN=t77, DirName:/CN=t78, DirName:/CN=t79, DirName:/CN=t80, DirName:/CN=t81, DirName:/CN=t82, DirName:/CN=t83, DirName:/CN=t84, DirName:/CN=t85, DirName:/CN=t86, DirName:/CN=t87, DirName:/CN=t88, DirName:/CN=t89, DirName:/CN=t90, DirName:/CN=t91, DirName:/CN=t92, DirName:/CN=t93, DirName:/CN=t94, DirName:/CN=t95, DirName:/CN=t96, DirName:/CN=t97, DirName:/CN=t98, DirName:/CN=t99, DirName:/CN=t100, DirName:/CN=t101, DirName:/CN=t102, DirName:/CN=t103, DirName:/CN=t104, DirName:/CN=t105, DirName:/CN=t106, DirName:/CN=t107, DirName:/CN=t108, DirName:/CN=t109, DirName:/CN=t110, DirName:/CN=t111, DirName:/CN=t112, DirName:/CN=t113, DirName:/CN=t114, DirName:/CN=t115, DirName:/CN=t116, DirName:/CN=t117, DirName:/CN=t118, DirName:/CN=t119, DirName:/CN=t120, DirName:/CN=t121, DirName:/CN=t122, DirName:/CN=t123, DirName:/CN=t124, DirName:/CN=t125, DirName:/CN=t126, DirName:/CN=t127, DirName:/CN=t128, DirName:/CN=t129, DirName:/CN=t130, DirName:/CN=t131, DirName:/CN=t132, DirName:/CN=t133, DirName:/CN=t134, DirName:/CN=t135, DirName:/CN=t136, DirName:/CN=t137, DirName:/CN=t138, DirName:/CN=t139, DirName:/CN=t140, DirName:/CN=t141, DirName:/CN=t142, DirName:/CN=t143, DirName:/CN=t144, DirName:/CN=t145, DirName:/CN=t146, DirName:/CN=t147, DirName:/CN=t148, DirName:/CN=t149, DirName:/CN=t150, DirName:/CN=t151, DirName:/CN=t152, DirName:/CN=t153, DirName:/CN=t154, DirName:/CN=t155, DirName:/CN=t156, DirName:/CN=t157, DirName:/CN=t158, DirName:/CN=t159, DirName:/CN=t160, DirName:/CN=t161, DirName:/CN=t162, DirName:/CN=t163, DirName:/CN=t164, DirName:/CN=t165, DirName:/CN=t166, DirName:/CN=t167, DirName:/CN=t168, DirName:/CN=t169, DirName:/CN=t170, DirName:/CN=t171, DirName:/CN=t172, DirName:/CN=t173, DirName:/CN=t174, DirName:/CN=t175, DirName:/CN=t176, DirName:/CN=t177, DirName:/CN=t178, DirName:/CN=t179, DirName:/CN=t180, DirName:/CN=t181, DirName:/CN=t182, DirName:/CN=t183, DirName:/CN=t184, DirName:/CN=t185, DirName:/CN=t186, DirName:/CN=t187, DirName:/CN=t188, DirName:/CN=t189, DirName:/CN=t190, DirName:/CN=t191, DirName:/CN=t192, DirName:/CN=t193, DirName:/CN=t194, DirName:/CN=t195, DirName:/CN=t196, DirName:/CN=t197, DirName:/CN=t198, DirName:/CN=t199, DirName:/CN=t200, DirName:/CN=t201, DirName:/CN=t202, DirName:/CN=t203, DirName:/CN=t204, DirName:/CN=t205, DirName:/CN=t206, DirName:/CN=t207, DirName:/CN=t208, DirName:/CN=t209, DirName:/CN=t210, DirName:/CN=t211, DirName:/CN=t212, DirName:/CN=t213, DirName:/CN=t214, DirName:/CN=t215, DirName:/CN=t216, DirName:/CN=t217, DirName:/CN=t218, DirName:/CN=t219, DirName:/CN=t220, DirName:/CN=t221, DirName:/CN=t222, DirName:/CN=t223, DirName:/CN=t224, DirName:/CN=t225, DirName:/CN=t226, DirName:/CN=t227, DirName:/CN=t228, DirName:/CN=t229, DirName:/CN=t230, DirName:/CN=t231, DirName:/CN=t232, DirName:/CN=t233, DirName:/CN=t234, DirName:/CN=t235, DirName:/CN=t236, DirName:/CN=t237, DirName:/CN=t238, DirName:/CN=t239, DirName:/CN=t240, DirName:/CN=t241, DirName:/CN=t242, DirName:/CN=t243, DirName:/CN=t244, DirName:/CN=t245, DirName:/CN=t246, DirName:/CN=t247, DirName:/CN=t248, DirName:/CN=t249, DirName:/CN=t250, DirName:/CN=t251, DirName:/CN=t252, DirName:/CN=t253, DirName:/CN=t254, DirName:/CN=t255, DirName:/CN=t256, DirName:/CN=t257, DirName:/CN=t258, DirName:/CN=t259, DirName:/CN=t260, DirName:/CN=t261, DirName:/CN=t262, DirName:/CN=t263, DirName:/CN=t264, DirName:/CN=t265, DirName:/CN=t266, DirName:/CN=t267, DirName:/CN=t268, DirName:/CN=t269, DirName:/CN=t270, DirName:/CN=t271, DirName:/CN=t272, DirName:/CN=t273, DirName:/CN=t274, DirName:/CN=t275, DirName:/CN=t276, DirName:/CN=t277, DirName:/CN=t278, DirName:/CN=t279, DirName:/CN=t280, DirName:/CN=t281, DirName:/CN=t282, DirName:/CN=t283, DirName:/CN=t284, DirName:/CN=t285, DirName:/CN=t286, DirName:/CN=t287, DirName:/CN=t288, DirName:/CN=t289, DirName:/CN=t290, DirName:/CN=t291, DirName:/CN=t292, DirName:/CN=t293, DirName:/CN=t294, DirName:/CN=t295, DirName:/CN=t296, DirName:/CN=t297, DirName:/CN=t298, DirName:/CN=t299, DirName:/CN=t300, DirName:/CN=t301, DirName:/CN=t302, DirName:/CN=t303, DirName:/CN=t304, DirName:/CN=t305, DirName:/CN=t306, DirName:/CN=t307, DirName:/CN=t308, DirName:/CN=t309, DirName:/CN=t310, DirName:/CN=t311, DirName:/CN=t312, DirName:/CN=t313, DirName:/CN=t314, DirName:/CN=t315, DirName:/CN=t316, DirName:/CN=t317, DirName:/CN=t318, DirName:/CN=t319, DirName:/CN=t320, DirName:/CN=t321, DirName:/CN=t322, DirName:/CN=t323, DirName:/CN=t324, DirName:/CN=t325, DirName:/CN=t326, DirName:/CN=t327, DirName:/CN=t328, DirName:/CN=t329, DirName:/CN=t330, DirName:/CN=t331, DirName:/CN=t332, DirName:/CN=t333, DirName:/CN=t334, DirName:/CN=t335, DirName:/CN=t336, DirName:/CN=t337, DirName:/CN=t338, DirName:/CN=t339, DirName:/CN=t340, DirName:/CN=t341, URI:http://test/0, URI:http://test/1, URI:http://test/2, URI:http://test/3, URI:http://test/4, URI:http://test/5, URI:http://test/6, URI:http://test/7, URI:http://test/8, URI:http://test/9, URI:http://test/10, URI:http://test/11, URI:http://test/12, URI:http://test/13, URI:http://test/14, URI:http://test/15, URI:http://test/16, URI:http://test/17, URI:http://test/18, URI:http://test/19, URI:http://test/20, URI:http://test/21, URI:http://test/22, URI:http://test/23, URI:http://test/24, URI:http://test/25, URI:http://test/26, URI:http://test/27, URI:http://test/28, URI:http://test/29, URI:http://test/30, URI:http://test/31, URI:http://test/32, URI:http://test/33, URI:http://test/34, URI:http://test/35, URI:http://test/36, URI:http://test/37, URI:http://test/38, URI:http://test/39, URI:http://test/40, URI:http://test/41, URI:http://test/42, URI:http://test/43, URI:http://test/44, URI:http://test/45, URI:http://test/46, URI:http://test/47, URI:http://test/48, URI:http://test/49, URI:http://test/50, URI:http://test/51, URI:http://test/52, URI:http://test/53, URI:http://test/54, URI:http://test/55, URI:http://test/56, URI:http://test/57, URI:http://test/58, URI:http://test/59, URI:http://test/60, URI:http://test/61, URI:http://test/62, URI:http://test/63, URI:http://test/64, URI:http://test/65, URI:http://test/66, URI:http://test/67, URI:http://test/68, URI:http://test/69, URI:http://test/70, URI:http://test/71, URI:http://test/72, URI:http://test/73, URI:http://test/74, URI:http://test/75, URI:http://test/76, URI:http://test/77, URI:http://test/78, URI:http://test/79, URI:http://test/80, URI:http://test/81, URI:http://test/82, URI:http://test/83, URI:http://test/84, URI:http://test/85, URI:http://test/86, URI:http://test/87, URI:http://test/88, URI:http://test/89, URI:http://test/90, URI:http://test/91, URI:http://test/92, URI:http://test/93, URI:http://test/94, URI:http://test/95, URI:http://test/96, URI:http://test/97, URI:http://test/98, URI:http://test/99, URI:http://test/100, URI:http://test/101, URI:http://test/102, URI:http://test/103, URI:http://test/104, URI:http://test/105, URI:http://test/106, URI:http://test/107, URI:http://test/108, URI:http://test/109, URI:http://test/110, URI:http://test/111, URI:http://test/112, URI:http://test/113, URI:http://test/114, URI:http://test/115, URI:http://test/116, URI:http://test/117, URI:http://test/118, URI:http://test/119, URI:http://test/120, URI:http://test/121, URI:http://test/122, URI:http://test/123, URI:http://test/124, URI:http://test/125, URI:http://test/126, URI:http://test/127, URI:http://test/128, URI:http://test/129, URI:http://test/130, URI:http://test/131, URI:http://test/132, URI:http://test/133, URI:http://test/134, URI:http://test/135, URI:http://test/136, URI:http://test/137, URI:http://test/138, URI:http://test/139, URI:http://test/140, URI:http://test/141, URI:http://test/142, URI:http://test/143, URI:http://test/144, URI:http://test/145, URI:http://test/146, URI:http://test/147, URI:http://test/148, URI:http://test/149, URI:http://test/150, URI:http://test/151, URI:http://test/152, URI:http://test/153, URI:http://test/154, URI:http://test/155, URI:http://test/156, URI:http://test/157, URI:http://test/158, URI:http://test/159, URI:http://test/160, URI:http://test/161, URI:http://test/162, URI:http://test/163, URI:http://test/164, URI:http://test/165, URI:http://test/166, URI:http://test/167, URI:http://test/168, URI:http://test/169, URI:http://test/170, URI:http://test/171, URI:http://test/172, URI:http://test/173, URI:http://test/174, URI:http://test/175, URI:http://test/176, URI:http://test/177, URI:http://test/178, URI:http://test/179, URI:http://test/180, URI:http://test/181, URI:http://test/182, URI:http://test/183, URI:http://test/184, URI:http://test/185, URI:http://test/186, URI:http://test/187, URI:http://test/188, URI:http://test/189, URI:http://test/190, URI:http://test/191, URI:http://test/192, URI:http://test/193, URI:http://test/194, URI:http://test/195, URI:http://test/196, URI:http://test/197, URI:http://test/198, URI:http://test/199, URI:http://test/200, URI:http://test/201, URI:http://test/202, URI:http://test/203, URI:http://test/204, URI:http://test/205, URI:http://test/206, URI:http://test/207, URI:http://test/208, URI:http://test/209, URI:http://test/210, URI:http://test/211, URI:http://test/212, URI:http://test/213, URI:http://test/214, URI:http://test/215, URI:http://test/216, URI:http://test/217, URI:http://test/218, URI:http://test/219, URI:http://test/220, URI:http://test/221, URI:http://test/222, URI:http://test/223, URI:http://test/224, URI:http://test/225, URI:http://test/226, URI:http://test/227, URI:http://test/228, URI:http://test/229, URI:http://test/230, URI:http://test/231, URI:http://test/232, URI:http://test/233, URI:http://test/234, URI:http://test/235, URI:http://test/236, URI:http://test/237, URI:http://test/238, URI:http://test/239, URI:http://test/240, URI:http://test/241, URI:http://test/242, URI:http://test/243, URI:http://test/244, URI:http://test/245, URI:http://test/246, URI:http://test/247, URI:http://test/248, URI:http://test/249, URI:http://test/250, URI:http://test/251, URI:http://test/252, URI:http://test/253, URI:http://test/254, URI:http://test/255, URI:http://test/256, URI:http://test/257, URI:http://test/258, URI:http://test/259, URI:http://test/260, URI:http://test/261, URI:http://test/262, URI:http://test/263, URI:http://test/264, URI:http://test/265, URI:http://test/266, URI:http://test/267, URI:http://test/268, URI:http://test/269, URI:http://test/270, URI:http://test/271, URI:http://test/272, URI:http://test/273, URI:http://test/274, URI:http://test/275, URI:http://test/276, URI:http://test/277, URI:http://test/278, URI:http://test/279, URI:http://test/280, URI:http://test/281, URI:http://test/282, URI:http://test/283, URI:http://test/284, URI:http://test/285, URI:http://test/286, URI:http://test/287, URI:http://test/288, URI:http://test/289, URI:http://test/290, URI:http://test/291, URI:http://test/292, URI:http://test/293, URI:http://test/294, URI:http://test/295, URI:http://test/296, URI:http://test/297, URI:http://test/298, URI:http://test/299, URI:http://test/300, URI:http://test/301, URI:http://test/302, URI:http://test/303, URI:http://test/304, URI:http://test/305, URI:http://test/306, URI:http://test/307, URI:http://test/308, URI:http://test/309, URI:http://test/310, URI:http://test/311, URI:http://test/312, URI:http://test/313, URI:http://test/314, URI:http://test/315, URI:http://test/316, URI:http://test/317, URI:http://test/318, URI:http://test/319, URI:http://test/320, URI:http://test/321, URI:http://test/322, URI:http://test/323, URI:http://test/324, URI:http://test/325, URI:http://test/326, URI:http://test/327, URI:http://test/328, URI:http://test/329, URI:http://test/330, URI:http://test/331, URI:http://test/332, URI:http://test/333, URI:http://test/334, URI:http://test/335, URI:http://test/336, URI:http://test/337, URI:http://test/338, URI:http://test/339, URI:http://test/340, URI:http://test/341, URI:http://test/342, URI:http://test/343, URI:http://test/344, URI:http://test/345, URI:http://test/346, URI:http://test/347, URI:http://test/348, URI:http://test/349, URI:http://test/350, URI:http://test/351, URI:http://test/352, URI:http://test/353, URI:http://test/354, URI:http://test/355, URI:http://test/356, URI:http://test/357, URI:http://test/358, URI:http://test/359, URI:http://test/360, URI:http://test/361, URI:http://test/362, URI:http://test/363, URI:http://test/364, URI:http://test/365, URI:http://test/366, URI:http://test/367, URI:http://test/368, URI:http://test/369, URI:http://test/370, URI:http://test/371, URI:http://test/372, URI:http://test/373, URI:http://test/374, URI:http://test/375, URI:http://test/376, URI:http://test/377, URI:http://test/378, URI:http://test/379, URI:http://test/380, URI:http://test/381, URI:http://test/382, URI:http://test/383, URI:http://test/384, URI:http://test/385, URI:http://test/386, URI:http://test/387, URI:http://test/388, URI:http://test/389, URI:http://test/390, URI:http://test/391, URI:http://test/392, URI:http://test/393, URI:http://test/394, URI:http://test/395, URI:http://test/396, URI:http://test/397, URI:http://test/398, URI:http://test/399, URI:http://test/400, URI:http://test/401, URI:http://test/402, URI:http://test/403, URI:http://test/404, URI:http://test/405, URI:http://test/406, URI:http://test/407, URI:http://test/408, URI:http://test/409, URI:http://test/410, URI:http://test/411, URI:http://test/412, URI:http://test/413, URI:http://test/414, URI:http://test/415, URI:http://test/416, URI:http://test/417, URI:http://test/418, URI:http://test/419, URI:http://test/420, URI:http://test/421, URI:http://test/422, URI:http://test/423, URI:http://test/424, URI:http://test/425, URI:http://test/426, URI:http://test/427, URI:http://test/428, URI:http://test/429, URI:http://test/430, URI:http://test/431, URI:http://test/432, URI:http://test/433, URI:http://test/434, URI:http://test/435, URI:http://test/436, URI:http://test/437, URI:http://test/438, URI:http://test/439, URI:http://test/440, URI:http://test/441, URI:http://test/442, URI:http://test/443, URI:http://test/444, URI:http://test/445, URI:http://test/446, URI:http://test/447, URI:http://test/448, URI:http://test/449, URI:http://test/450, URI:http://test/451, URI:http://test/452, URI:http://test/453, URI:http://test/454, URI:http://test/455, URI:http://test/456, URI:http://test/457, URI:http://test/458, URI:http://test/459, URI:http://test/460, URI:http://test/461, URI:http://test/462, URI:http://test/463, URI:http://test/464, URI:http://test/465, URI:http://test/466, URI:http://test/467, URI:http://test/468, URI:http://test/469, URI:http://test/470, URI:http://test/471, URI:http://test/472, URI:http://test/473, URI:http://test/474, URI:http://test/475, URI:http://test/476, URI:http://test/477, URI:http://test/478, URI:http://test/479, URI:http://test/480, URI:http://test/481, URI:http://test/482, URI:http://test/483, URI:http://test/484, URI:http://test/485, URI:http://test/486, URI:http://test/487, URI:http://test/488, URI:http://test/489, URI:http://test/490, URI:http://test/491, URI:http://test/492, URI:http://test/493, URI:http://test/494, URI:http://test/495, URI:http://test/496, URI:http://test/497, URI:http://test/498, URI:http://test/499, URI:http://test/500, URI:http://test/501, URI:http://test/502, URI:http://test/503, URI:http://test/504, URI:http://test/505, URI:http://test/506, URI:http://test/507, URI:http://test/508, URI:http://test/509, URI:http://test/510, URI:http://test/511, URI:http://test/512, URI:http://test/513, URI:http://test/514, URI:http://test/515, URI:http://test/516, URI:http://test/517, URI:http://test/518, URI:http://test/519, URI:http://test/520, URI:http://test/521, URI:http://test/522, URI:http://test/523, URI:http://test/524, URI:http://test/525, URI:http://test/526, URI:http://test/527, URI:http://test/528, URI:http://test/529, URI:http://test/530, URI:http://test/531, URI:http://test/532, URI:http://test/533, URI:http://test/534, URI:http://test/535, URI:http://test/536, URI:http://test/537, URI:http://test/538, URI:http://test/539, URI:http://test/540, URI:http://test/541, URI:http://test/542, URI:http://test/543, URI:http://test/544, URI:http://test/545, URI:http://test/546, URI:http://test/547, URI:http://test/548, URI:http://test/549, URI:http://test/550, URI:http://test/551, URI:http://test/552, URI:http://test/553, URI:http://test/554, URI:http://test/555, URI:http://test/556, URI:http://test/557, URI:http://test/558, URI:http://test/559, URI:http://test/560, URI:http://test/561, URI:http://test/562, URI:http://test/563, URI:http://test/564, URI:http://test/565, URI:http://test/566, URI:http://test/567, URI:http://test/568, URI:http://test/569, URI:http://test/570, URI:http://test/571, URI:http://test/572, URI:http://test/573, URI:http://test/574, URI:http://test/575, URI:http://test/576, URI:http://test/577, URI:http://test/578, URI:http://test/579, URI:http://test/580, URI:http://test/581, URI:http://test/582, URI:http://test/583, URI:http://test/584, URI:http://test/585, URI:http://test/586, URI:http://test/587, URI:http://test/588, URI:http://test/589, URI:http://test/590, URI:http://test/591, URI:http://test/592, URI:http://test/593, URI:http://test/594, URI:http://test/595, URI:http://test/596, URI:http://test/597, URI:http://test/598, URI:http://test/599, URI:http://test/600, URI:http://test/601, URI:http://test/602, URI:http://test/603, URI:http://test/604, URI:http://test/605, URI:http://test/606, URI:http://test/607, URI:http://test/608, URI:http://test/609, URI:http://test/610, URI:http://test/611, URI:http://test/612, URI:http://test/613, URI:http://test/614, URI:http://test/615, URI:http://test/616, URI:http://test/617, URI:http://test/618, URI:http://test/619, URI:http://test/620, URI:http://test/621, URI:http://test/622, URI:http://test/623, URI:http://test/624, URI:http://test/625, URI:http://test/626, URI:http://test/627, URI:http://test/628, URI:http://test/629, URI:http://test/630, URI:http://test/631, URI:http://test/632, URI:http://test/633, URI:http://test/634, URI:http://test/635, URI:http://test/636, URI:http://test/637, URI:http://test/638, URI:http://test/639, URI:http://test/640, URI:http://test/641, URI:http://test/642, URI:http://test/643, URI:http://test/644, URI:http://test/645, URI:http://test/646, URI:http://test/647, URI:http://test/648, URI:http://test/649, URI:http://test/650, URI:http://test/651, URI:http://test/652, URI:http://test/653, URI:http://test/654, URI:http://test/655, URI:http://test/656, URI:http://test/657, URI:http://test/658, URI:http://test/659, URI:http://test/660, URI:http://test/661, URI:http://test/662, URI:http://test/663, URI:http://test/664, URI:http://test/665, URI:http://test/666, URI:http://test/667, URI:http://test/668, URI:http://test/669, URI:http://test/670, URI:http://test/671, URI:http://test/672, URI:http://test/673, URI:http://test/674, URI:http://test/675, URI:http://test/676, URI:http://test/677, URI:http://test/678, URI:http://test/679, URI:http://test/680, URI:http://test/681, URI:http://test/682, URI:http://test/683, URI:http://test/684, URI:http://test/685, URI:http://test/686, URI:http://test/687, URI:http://test/688, URI:http://test/689, URI:http://test/690, URI:http://test/691, URI:http://test/692, URI:http://test/693, URI:http://test/694, URI:http://test/695, URI:http://test/696, URI:http://test/697, URI:http://test/698, URI:http://test/699, URI:http://test/700, URI:http://test/701, URI:http://test/702, URI:http://test/703, URI:http://test/704, URI:http://test/705, URI:http://test/706, URI:http://test/707, URI:http://test/708, URI:http://test/709, URI:http://test/710, URI:http://test/711, URI:http://test/712, URI:http://test/713, URI:http://test/714, URI:http://test/715, URI:http://test/716, URI:http://test/717, URI:http://test/718, URI:http://test/719, URI:http://test/720, URI:http://test/721, URI:http://test/722, URI:http://test/723, URI:http://test/724, URI:http://test/725, URI:http://test/726, URI:http://test/727, URI:http://test/728, URI:http://test/729, URI:http://test/730, URI:http://test/731, URI:http://test/732, URI:http://test/733, URI:http://test/734, URI:http://test/735, URI:http://test/736, URI:http://test/737, URI:http://test/738, URI:http://test/739, URI:http://test/740, URI:http://test/741, URI:http://test/742, URI:http://test/743, URI:http://test/744, URI:http://test/745, URI:http://test/746, URI:http://test/747, URI:http://test/748, URI:http://test/749, URI:http://test/750, URI:http://test/751, URI:http://test/752, URI:http://test/753, URI:http://test/754, URI:http://test/755, URI:http://test/756, URI:http://test/757, URI:http://test/758, URI:http://test/759, URI:http://test/760, URI:http://test/761, URI:http://test/762, URI:http://test/763, URI:http://test/764, URI:http://test/765, URI:http://test/766, URI:http://test/767, URI:http://test/768, URI:http://test/769, URI:http://test/770, URI:http://test/771, URI:http://test/772, URI:http://test/773, URI:http://test/774, URI:http://test/775, URI:http://test/776, URI:http://test/777, URI:http://test/778, URI:http://test/779, URI:http://test/780, URI:http://test/781, URI:http://test/782, URI:http://test/783, URI:http://test/784, URI:http://test/785, URI:http://test/786, URI:http://test/787, URI:http://test/788, URI:http://test/789, URI:http://test/790, URI:http://test/791, URI:http://test/792, URI:http://test/793, URI:http://test/794, URI:http://test/795, URI:http://test/796, URI:http://test/797, URI:http://test/798, URI:http://test/799, URI:http://test/800, URI:http://test/801, URI:http://test/802, URI:http://test/803, URI:http://test/804, URI:http://test/805, URI:http://test/806, URI:http://test/807, URI:http://test/808, URI:http://test/809, URI:http://test/810, URI:http://test/811, URI:http://test/812, URI:http://test/813, URI:http://test/814, URI:http://test/815, URI:http://test/816, URI:http://test/817, URI:http://test/818, URI:http://test/819, URI:http://test/820, URI:http://test/821, URI:http://test/822, URI:http://test/823, URI:http://test/824, URI:http://test/825, URI:http://test/826, URI:http://test/827, URI:http://test/828, URI:http://test/829, URI:http://test/830, URI:http://test/831, URI:http://test/832, URI:http://test/833, URI:http://test/834, URI:http://test/835, URI:http://test/836, URI:http://test/837, URI:http://test/838, URI:http://test/839, URI:http://test/840, URI:http://test/841, URI:http://test/842, URI:http://test/843, URI:http://test/844, URI:http://test/845, URI:http://test/846, URI:http://test/847, URI:http://test/848, URI:http://test/849, URI:http://test/850, URI:http://test/851, URI:http://test/852, URI:http://test/853, URI:http://test/854, URI:http://test/855, URI:http://test/856, URI:http://test/857, URI:http://test/858, URI:http://test/859, URI:http://test/860, URI:http://test/861, URI:http://test/862, URI:http://test/863, URI:http://test/864, URI:http://test/865, URI:http://test/866, URI:http://test/867, URI:http://test/868, URI:http://test/869, URI:http://test/870, URI:http://test/871, URI:http://test/872, URI:http://test/873, URI:http://test/874, URI:http://test/875, URI:http://test/876, URI:http://test/877, URI:http://test/878, URI:http://test/879, URI:http://test/880, URI:http://test/881, URI:http://test/882, URI:http://test/883, URI:http://test/884, URI:http://test/885, URI:http://test/886, URI:http://test/887, URI:http://test/888, URI:http://test/889, URI:http://test/890, URI:http://test/891, URI:http://test/892, URI:http://test/893, URI:http://test/894, URI:http://test/895, URI:http://test/896, URI:http://test/897, URI:http://test/898, URI:http://test/899, URI:http://test/900, URI:http://test/901, URI:http://test/902, URI:http://test/903, URI:http://test/904, URI:http://test/905, URI:http://test/906, URI:http://test/907, URI:http://test/908, URI:http://test/909, URI:http://test/910, URI:http://test/911, URI:http://test/912, URI:http://test/913, URI:http://test/914, URI:http://test/915, URI:http://test/916, URI:http://test/917, URI:http://test/918, URI:http://test/919, URI:http://test/920, URI:http://test/921, URI:http://test/922, URI:http://test/923, URI:http://test/924, URI:http://test/925, URI:http://test/926, URI:http://test/927, URI:http://test/928, URI:http://test/929, URI:http://test/930, URI:http://test/931, URI:http://test/932, URI:http://test/933, URI:http://test/934, URI:http://test/935, URI:http://test/936, URI:http://test/937, URI:http://test/938, URI:http://test/939, URI:http://test/940, URI:http://test/941, URI:http://test/942, URI:http://test/943, URI:http://test/944, URI:http://test/945, URI:http://test/946, URI:http://test/947, URI:http://test/948, URI:http://test/949, URI:http://test/950, URI:http://test/951, URI:http://test/952, URI:http://test/953, URI:http://test/954, URI:http://test/955, URI:http://test/956, URI:http://test/957, URI:http://test/958, URI:http://test/959, URI:http://test/960, URI:http://test/961, URI:http://test/962, URI:http://test/963, URI:http://test/964, URI:http://test/965, URI:http://test/966, URI:http://test/967, URI:http://test/968, URI:http://test/969, URI:http://test/970, URI:http://test/971, URI:http://test/972, URI:http://test/973, URI:http://test/974, URI:http://test/975, URI:http://test/976, URI:http://test/977, URI:http://test/978, URI:http://test/979, URI:http://test/980, URI:http://test/981, URI:http://test/982, URI:http://test/983, URI:http://test/984, URI:http://test/985, URI:http://test/986, URI:http://test/987, URI:http://test/988, URI:http://test/989, URI:http://test/990, URI:http://test/991, URI:http://test/992, URI:http://test/993, URI:http://test/994, URI:http://test/995, URI:http://test/996, URI:http://test/997, URI:http://test/998, URI:http://test/999, URI:http://test/1000, URI:http://test/1001, URI:http://test/1002, URI:http://test/1003, URI:http://test/1004, URI:http://test/1005, URI:http://test/1006, URI:http://test/1007, URI:http://test/1008, URI:http://test/1009, URI:http://test/1010, URI:http://test/1011, URI:http://test/1012, URI:http://test/1013, URI:http://test/1014, URI:http://test/1015, URI:http://test/1016, URI:http://test/1017, URI:http://test/1018, URI:http://test/1019, URI:http://test/1020, URI:http://test/1021, URI:http://test/1022, URI:http://test/1023, URI:http://test/1024 - Signature Algorithm: sha256WithRSAEncryption -- 1e:90:d6:4a:8f:24:06:8a:de:41:4f:3b:39:1c:5d:81:24:48: -- 2f:66:9e:6c:fe:c0:b3:cf:a3:8a:a0:4a:02:e2:d3:04:7e:87: -- 42:87:31:5e:75:25:b9:7c:93:ac:0e:3d:a7:0e:09:ef:0f:6c: -- 67:3d:96:fe:4d:7b:86:cd:94:5e:1c:74:d4:b9:fe:da:7a:07: -- 3e:14:ac:e6:8e:4c:de:47:bc:9a:fd:8c:8d:33:31:23:72:f3: -- 6b:b9:45:d4:9b:0e:87:d9:2f:38:9d:fb:67:f4:10:53:a6:58: -- 47:a3:c3:66:38:90:96:e7:23:5f:5e:41:0b:85:42:80:29:1b: -- 83:d3:00:e0:37:d1:66:3a:1e:5b:a0:d9:91:b1:96:70:2d:9f: -- 6c:82:84:9d:b5:21:90:b9:64:2b:70:87:f3:dd:06:9f:71:22: -- e9:66:35:32:04:23:c5:08:9b:f3:e6:82:65:6d:f4:0c:19:74: -- 8d:eb:56:9b:41:77:56:1e:53:13:de:57:15:e5:76:e2:de:d4: -- 51:7c:24:49:33:6d:5d:c7:50:bc:55:18:35:3e:b5:3f:0e:46: -- 58:2c:55:7d:fa:ff:91:fa:ea:94:91:e6:bf:af:06:2d:51:ad: -- e5:2a:3d:06:ec:7e:17:8c:f6:2c:ab:05:ef:91:f1:cd:21:cb: -- 01:23:80:e0 -+ 08:00:7f:e0:40:75:d2:43:36:3f:e3:6c:cf:c1:4a:69:b2:0c: -+ 1b:a8:a8:6b:7a:ee:ed:d0:2d:ee:e2:52:d9:2a:1f:5d:ac:29: -+ f5:12:e2:af:3b:db:a0:6d:3a:b4:09:ef:76:fa:52:68:5f:07: -+ 5f:9f:a4:52:8f:1d:da:da:b6:93:54:87:47:d0:3c:66:7e:ff: -+ 1b:e3:1e:da:52:4c:00:46:5b:0c:eb:9e:b8:5e:1e:db:f7:ce: -+ dd:2c:0f:4e:23:1d:63:98:ed:e5:18:e8:04:9c:a1:1e:cd:58: -+ de:09:43:4d:bf:8d:4b:6d:8e:32:e9:a6:53:40:17:0c:e2:59: -+ 43:55:2d:3f:ab:af:aa:13:48:ac:00:ac:5b:df:16:c7:20:2a: -+ ea:50:ef:79:78:c9:34:d5:c5:7f:8f:27:d0:5a:42:3a:e8:13: -+ 01:51:bc:a3:b9:53:6f:1d:e4:73:52:8d:f0:c7:9c:d1:46:19: -+ aa:28:63:3e:cc:4a:5f:63:0d:1d:28:4b:e0:b4:37:83:db:85: -+ 8c:84:86:7e:37:15:a8:ed:a8:00:da:14:97:fd:f1:c8:ea:6e: -+ 3a:b7:19:c1:6f:53:6b:0b:ff:29:60:30:7d:b6:35:d6:b8:58: -+ 6f:55:32:18:c6:44:c3:08:d8:c4:95:25:7b:ba:13:04:26:34: -+ 7c:d4:0e:a1 - -----BEGIN CERTIFICATE----- --MIKBQzCCgCugAwIBAgITL6u0PdzAd4AqAwmtQ3QCv5jY1DANBgkqhkiG9w0BAQsF -+MIJ2lTCCdX2gAwIBAgITL6u0PdzAd4AqAwmtQ3QCv5jY1DANBgkqhkiG9w0BAQsF - ADAXMRUwEwYDVQQDDAxJbnRlcm1lZGlhdGUwHhcNMjExMDA1MTIwMDAwWhcNMjIx - MDA1MTIwMDAwWjANMQswCQYDVQQDDAJ0MDCCASIwDQYJKoZIhvcNAQEBBQADggEP - ADCCAQoCggEBANssUwHO+RqDNlJRKltCY94ydRFqfbCh5HdHm3Hlpi1k165bBO16 -@@ -82,12 +82,12 @@ P8f2yisrrc1siKWONvvnoiK1fVR56dV6W8orKWwNhAoQxCG2WJi7DbYMjVZbLIVZ - B8oGRjYlGimOxDm3wzHObknCAc+wOydDiuPVBh8tk53dekVlbf20scAQWULyHo/O - Q6yXJcF84lHhRDVblKoDbtpxLyV/WDAB4RIXHvKqbCKAscll6neVswfE93I4NP6g - QzNMZm2h6KEEvG8UOTlELjg3dMkKIYWRIbdOurCZSnaYe1jKHNOwQMPZKnX76xnq --4xqYMVKX6X+keyF/L9xiho/9/aiI6EtEUr0CAwEAAaOCfpAwgn6MMB0GA1UdDgQW -+4xqYMVKX6X+keyF/L9xiho/9/aiI6EtEUr0CAwEAAaOCc+IwgnPeMB0GA1UdDgQW - BBQ7tAXMqrpRPfzy+R4lU3LhOvKa3zAfBgNVHSMEGDAWgBSSET+sEZbHZjfPg1ok - 8Dp3rzONfzA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAKGI2h0dHA6Ly91cmwt - Zm9yLWFpYS9JbnRlcm1lZGlhdGUuY2VyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6 - Ly91cmwtZm9yLWNybC9JbnRlcm1lZGlhdGUuY3JsMA4GA1UdDwEB/wQEAwIFoDAd --BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwgn2iBgNVHREEgn2ZMIJ9lYIH -+BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwgnL0BgNVHREEgnLrMIJy54IH - dDAudGVzdIIHdDEudGVzdIIHdDIudGVzdIIHdDMudGVzdIIHdDQudGVzdIIHdDUu - dGVzdIIHdDYudGVzdIIHdDcudGVzdIIHdDgudGVzdIIHdDkudGVzdIIIdDEwLnRl - c3SCCHQxMS50ZXN0ggh0MTIudGVzdIIIdDEzLnRlc3SCCHQxNC50ZXN0ggh0MTUu -@@ -163,607 +163,550 @@ ggl0MzIwLnRlc3SCCXQzMjEudGVzdIIJdDMyMi50ZXN0ggl0MzIzLnRlc3SCCXQz - MjQudGVzdIIJdDMyNS50ZXN0ggl0MzI2LnRlc3SCCXQzMjcudGVzdIIJdDMyOC50 - ZXN0ggl0MzI5LnRlc3SCCXQzMzAudGVzdIIJdDMzMS50ZXN0ggl0MzMyLnRlc3SC - CXQzMzMudGVzdIIJdDMzNC50ZXN0ggl0MzM1LnRlc3SCCXQzMzYudGVzdIIJdDMz --Ny50ZXN0ggl0MzM4LnRlc3SCCXQzMzkudGVzdIIJdDM0MC50ZXN0ggl0MzQxLnRl --c3SCCXQzNDIudGVzdIIJdDM0My50ZXN0ggl0MzQ0LnRlc3SCCXQzNDUudGVzdIIJ --dDM0Ni50ZXN0ggl0MzQ3LnRlc3SCCXQzNDgudGVzdIIJdDM0OS50ZXN0ggl0MzUw --LnRlc3SCCXQzNTEudGVzdIIJdDM1Mi50ZXN0ggl0MzUzLnRlc3SCCXQzNTQudGVz --dIIJdDM1NS50ZXN0ggl0MzU2LnRlc3SCCXQzNTcudGVzdIIJdDM1OC50ZXN0ggl0 --MzU5LnRlc3SCCXQzNjAudGVzdIIJdDM2MS50ZXN0ggl0MzYyLnRlc3SCCXQzNjMu --dGVzdIIJdDM2NC50ZXN0ggl0MzY1LnRlc3SCCXQzNjYudGVzdIIJdDM2Ny50ZXN0 --ggl0MzY4LnRlc3SCCXQzNjkudGVzdIIJdDM3MC50ZXN0ggl0MzcxLnRlc3SCCXQz --NzIudGVzdIIJdDM3My50ZXN0ggl0Mzc0LnRlc3SCCXQzNzUudGVzdIIJdDM3Ni50 --ZXN0ggl0Mzc3LnRlc3SCCXQzNzgudGVzdIIJdDM3OS50ZXN0ggl0MzgwLnRlc3SC --CXQzODEudGVzdIIJdDM4Mi50ZXN0ggl0MzgzLnRlc3SCCXQzODQudGVzdIIJdDM4 --NS50ZXN0ggl0Mzg2LnRlc3SCCXQzODcudGVzdIIJdDM4OC50ZXN0ggl0Mzg5LnRl --c3SCCXQzOTAudGVzdIIJdDM5MS50ZXN0ggl0MzkyLnRlc3SCCXQzOTMudGVzdIIJ --dDM5NC50ZXN0ggl0Mzk1LnRlc3SCCXQzOTYudGVzdIIJdDM5Ny50ZXN0ggl0Mzk4 --LnRlc3SCCXQzOTkudGVzdIIJdDQwMC50ZXN0ggl0NDAxLnRlc3SCCXQ0MDIudGVz --dIIJdDQwMy50ZXN0ggl0NDA0LnRlc3SCCXQ0MDUudGVzdIIJdDQwNi50ZXN0ggl0 --NDA3LnRlc3SCCXQ0MDgudGVzdIIJdDQwOS50ZXN0ggl0NDEwLnRlc3SCCXQ0MTEu --dGVzdIIJdDQxMi50ZXN0ggl0NDEzLnRlc3SCCXQ0MTQudGVzdIIJdDQxNS50ZXN0 --ggl0NDE2LnRlc3SCCXQ0MTcudGVzdIcECgAAAIcECgAAAYcECgAAAocECgAAA4cE --CgAABIcECgAABYcECgAABocECgAAB4cECgAACIcECgAACYcECgAACocECgAAC4cE --CgAADIcECgAADYcECgAADocECgAAD4cECgAAEIcECgAAEYcECgAAEocECgAAE4cE --CgAAFIcECgAAFYcECgAAFocECgAAF4cECgAAGIcECgAAGYcECgAAGocECgAAG4cE --CgAAHIcECgAAHYcECgAAHocECgAAH4cECgAAIIcECgAAIYcECgAAIocECgAAI4cE --CgAAJIcECgAAJYcECgAAJocECgAAJ4cECgAAKIcECgAAKYcECgAAKocECgAAK4cE --CgAALIcECgAALYcECgAALocECgAAL4cECgAAMIcECgAAMYcECgAAMocECgAAM4cE --CgAANIcECgAANYcECgAANocECgAAN4cECgAAOIcECgAAOYcECgAAOocECgAAO4cE --CgAAPIcECgAAPYcECgAAPocECgAAP4cECgAAQIcECgAAQYcECgAAQocECgAAQ4cE --CgAARIcECgAARYcECgAARocECgAAR4cECgAASIcECgAASYcECgAASocECgAAS4cE --CgAATIcECgAATYcECgAATocECgAAT4cECgAAUIcECgAAUYcECgAAUocECgAAU4cE --CgAAVIcECgAAVYcECgAAVocECgAAV4cECgAAWIcECgAAWYcECgAAWocECgAAW4cE --CgAAXIcECgAAXYcECgAAXocECgAAX4cECgAAYIcECgAAYYcECgAAYocECgAAY4cE --CgAAZIcECgAAZYcECgAAZocECgAAZ4cECgAAaIcECgAAaYcECgAAaocECgAAa4cE --CgAAbIcECgAAbYcECgAAbocECgAAb4cECgAAcIcECgAAcYcECgAAcocECgAAc4cE --CgAAdIcECgAAdYcECgAAdocECgAAd4cECgAAeIcECgAAeYcECgAAeocECgAAe4cE --CgAAfIcECgAAfYcECgAAfocECgAAf4cECgAAgIcECgAAgYcECgAAgocECgAAg4cE --CgAAhIcECgAAhYcECgAAhocECgAAh4cECgAAiIcECgAAiYcECgAAiocECgAAi4cE --CgAAjIcECgAAjYcECgAAjocECgAAj4cECgAAkIcECgAAkYcECgAAkocECgAAk4cE --CgAAlIcECgAAlYcECgAAlocECgAAl4cECgAAmIcECgAAmYcECgAAmocECgAAm4cE --CgAAnIcECgAAnYcECgAAnocECgAAn4cECgAAoIcECgAAoYcECgAAoocECgAAo4cE --CgAApIcECgAApYcECgAApocECgAAp4cECgAAqIcECgAAqYcECgAAqocECgAAq4cE --CgAArIcECgAArYcECgAArocECgAAr4cECgAAsIcECgAAsYcECgAAsocECgAAs4cE --CgAAtIcECgAAtYcECgAAtocECgAAt4cECgAAuIcECgAAuYcECgAAuocECgAAu4cE --CgAAvIcECgAAvYcECgAAvocECgAAv4cECgAAwIcECgAAwYcECgAAwocECgAAw4cE --CgAAxIcECgAAxYcECgAAxocECgAAx4cECgAAyIcECgAAyYcECgAAyocECgAAy4cE --CgAAzIcECgAAzYcECgAAzocECgAAz4cECgAA0IcECgAA0YcECgAA0ocECgAA04cE --CgAA1IcECgAA1YcECgAA1ocECgAA14cECgAA2IcECgAA2YcECgAA2ocECgAA24cE --CgAA3IcECgAA3YcECgAA3ocECgAA34cECgAA4IcECgAA4YcECgAA4ocECgAA44cE --CgAA5IcECgAA5YcECgAA5ocECgAA54cECgAA6IcECgAA6YcECgAA6ocECgAA64cE --CgAA7IcECgAA7YcECgAA7ocECgAA74cECgAA8IcECgAA8YcECgAA8ocECgAA84cE --CgAA9IcECgAA9YcECgAA9ocECgAA94cECgAA+IcECgAA+YcECgAA+ocECgAA+4cE --CgAA/IcECgAA/YcECgAA/ocECgAA/4cECgABAIcECgABAYcECgABAocECgABA4cE --CgABBIcECgABBYcECgABBocECgABB4cECgABCIcECgABCYcECgABCocECgABC4cE --CgABDIcECgABDYcECgABDocECgABD4cECgABEIcECgABEYcECgABEocECgABE4cE --CgABFIcECgABFYcECgABFocECgABF4cECgABGIcECgABGYcECgABGocECgABG4cE --CgABHIcECgABHYcECgABHocECgABH4cECgABIIcECgABIYcECgABIocECgABI4cE --CgABJIcECgABJYcECgABJocECgABJ4cECgABKIcECgABKYcECgABKocECgABK4cE --CgABLIcECgABLYcECgABLocECgABL4cECgABMIcECgABMYcECgABMocECgABM4cE --CgABNIcECgABNYcECgABNocECgABN4cECgABOIcECgABOYcECgABOocECgABO4cE --CgABPIcECgABPYcECgABPocECgABP4cECgABQIcECgABQYcECgABQocECgABQ4cE --CgABRIcECgABRYcECgABRocECgABR4cECgABSIcECgABSYcECgABSocECgABS4cE --CgABTIcECgABTYcECgABTocECgABT4cECgABUIcECgABUYcECgABUocECgABU4cE --CgABVIcECgABVYcECgABVocECgABV4cECgABWIcECgABWYcECgABWocECgABW4cE --CgABXIcECgABXYcECgABXocECgABX4cECgABYIcECgABYYcECgABYocECgABY4cE --CgABZIcECgABZYcECgABZocECgABZ4cECgABaIcECgABaYcECgABaocECgABa4cE --CgABbIcECgABbYcECgABbocECgABb4cECgABcIcECgABcYcECgABcocECgABc4cE --CgABdIcECgABdYcECgABdocECgABd4cECgABeIcECgABeYcECgABeocECgABe4cE --CgABfIcECgABfYcECgABfocECgABf4cECgABgIcECgABgYcECgABgocECgABg4cE --CgABhIcECgABhYcECgABhocECgABh4cECgABiIcECgABiYcECgABiocECgABi4cE --CgABjIcECgABjYcECgABjocECgABj4cECgABkIcECgABkYcECgABkocECgABk4cE --CgABlIcECgABlYcECgABlocECgABl4cECgABmIcECgABmYcECgABmocECgABm4cE --CgABnIcECgABnYcECgABnocECgABn4cECgABoIcECgABoaQPMA0xCzAJBgNVBAMM --AnQwpA8wDTELMAkGA1UEAwwCdDGkDzANMQswCQYDVQQDDAJ0MqQPMA0xCzAJBgNV --BAMMAnQzpA8wDTELMAkGA1UEAwwCdDSkDzANMQswCQYDVQQDDAJ0NaQPMA0xCzAJ --BgNVBAMMAnQ2pA8wDTELMAkGA1UEAwwCdDekDzANMQswCQYDVQQDDAJ0OKQPMA0x --CzAJBgNVBAMMAnQ5pBAwDjEMMAoGA1UEAwwDdDEwpBAwDjEMMAoGA1UEAwwDdDEx --pBAwDjEMMAoGA1UEAwwDdDEypBAwDjEMMAoGA1UEAwwDdDEzpBAwDjEMMAoGA1UE --AwwDdDE0pBAwDjEMMAoGA1UEAwwDdDE1pBAwDjEMMAoGA1UEAwwDdDE2pBAwDjEM --MAoGA1UEAwwDdDE3pBAwDjEMMAoGA1UEAwwDdDE4pBAwDjEMMAoGA1UEAwwDdDE5 --pBAwDjEMMAoGA1UEAwwDdDIwpBAwDjEMMAoGA1UEAwwDdDIxpBAwDjEMMAoGA1UE --AwwDdDIypBAwDjEMMAoGA1UEAwwDdDIzpBAwDjEMMAoGA1UEAwwDdDI0pBAwDjEM --MAoGA1UEAwwDdDI1pBAwDjEMMAoGA1UEAwwDdDI2pBAwDjEMMAoGA1UEAwwDdDI3 --pBAwDjEMMAoGA1UEAwwDdDI4pBAwDjEMMAoGA1UEAwwDdDI5pBAwDjEMMAoGA1UE --AwwDdDMwpBAwDjEMMAoGA1UEAwwDdDMxpBAwDjEMMAoGA1UEAwwDdDMypBAwDjEM --MAoGA1UEAwwDdDMzpBAwDjEMMAoGA1UEAwwDdDM0pBAwDjEMMAoGA1UEAwwDdDM1 --pBAwDjEMMAoGA1UEAwwDdDM2pBAwDjEMMAoGA1UEAwwDdDM3pBAwDjEMMAoGA1UE --AwwDdDM4pBAwDjEMMAoGA1UEAwwDdDM5pBAwDjEMMAoGA1UEAwwDdDQwpBAwDjEM --MAoGA1UEAwwDdDQxpBAwDjEMMAoGA1UEAwwDdDQypBAwDjEMMAoGA1UEAwwDdDQz --pBAwDjEMMAoGA1UEAwwDdDQ0pBAwDjEMMAoGA1UEAwwDdDQ1pBAwDjEMMAoGA1UE --AwwDdDQ2pBAwDjEMMAoGA1UEAwwDdDQ3pBAwDjEMMAoGA1UEAwwDdDQ4pBAwDjEM --MAoGA1UEAwwDdDQ5pBAwDjEMMAoGA1UEAwwDdDUwpBAwDjEMMAoGA1UEAwwDdDUx --pBAwDjEMMAoGA1UEAwwDdDUypBAwDjEMMAoGA1UEAwwDdDUzpBAwDjEMMAoGA1UE --AwwDdDU0pBAwDjEMMAoGA1UEAwwDdDU1pBAwDjEMMAoGA1UEAwwDdDU2pBAwDjEM --MAoGA1UEAwwDdDU3pBAwDjEMMAoGA1UEAwwDdDU4pBAwDjEMMAoGA1UEAwwDdDU5 --pBAwDjEMMAoGA1UEAwwDdDYwpBAwDjEMMAoGA1UEAwwDdDYxpBAwDjEMMAoGA1UE --AwwDdDYypBAwDjEMMAoGA1UEAwwDdDYzpBAwDjEMMAoGA1UEAwwDdDY0pBAwDjEM --MAoGA1UEAwwDdDY1pBAwDjEMMAoGA1UEAwwDdDY2pBAwDjEMMAoGA1UEAwwDdDY3 --pBAwDjEMMAoGA1UEAwwDdDY4pBAwDjEMMAoGA1UEAwwDdDY5pBAwDjEMMAoGA1UE --AwwDdDcwpBAwDjEMMAoGA1UEAwwDdDcxpBAwDjEMMAoGA1UEAwwDdDcypBAwDjEM --MAoGA1UEAwwDdDczpBAwDjEMMAoGA1UEAwwDdDc0pBAwDjEMMAoGA1UEAwwDdDc1 --pBAwDjEMMAoGA1UEAwwDdDc2pBAwDjEMMAoGA1UEAwwDdDc3pBAwDjEMMAoGA1UE --AwwDdDc4pBAwDjEMMAoGA1UEAwwDdDc5pBAwDjEMMAoGA1UEAwwDdDgwpBAwDjEM --MAoGA1UEAwwDdDgxpBAwDjEMMAoGA1UEAwwDdDgypBAwDjEMMAoGA1UEAwwDdDgz --pBAwDjEMMAoGA1UEAwwDdDg0pBAwDjEMMAoGA1UEAwwDdDg1pBAwDjEMMAoGA1UE --AwwDdDg2pBAwDjEMMAoGA1UEAwwDdDg3pBAwDjEMMAoGA1UEAwwDdDg4pBAwDjEM --MAoGA1UEAwwDdDg5pBAwDjEMMAoGA1UEAwwDdDkwpBAwDjEMMAoGA1UEAwwDdDkx --pBAwDjEMMAoGA1UEAwwDdDkypBAwDjEMMAoGA1UEAwwDdDkzpBAwDjEMMAoGA1UE --AwwDdDk0pBAwDjEMMAoGA1UEAwwDdDk1pBAwDjEMMAoGA1UEAwwDdDk2pBAwDjEM --MAoGA1UEAwwDdDk3pBAwDjEMMAoGA1UEAwwDdDk4pBAwDjEMMAoGA1UEAwwDdDk5 --pBEwDzENMAsGA1UEAwwEdDEwMKQRMA8xDTALBgNVBAMMBHQxMDGkETAPMQ0wCwYD --VQQDDAR0MTAypBEwDzENMAsGA1UEAwwEdDEwM6QRMA8xDTALBgNVBAMMBHQxMDSk --ETAPMQ0wCwYDVQQDDAR0MTA1pBEwDzENMAsGA1UEAwwEdDEwNqQRMA8xDTALBgNV --BAMMBHQxMDekETAPMQ0wCwYDVQQDDAR0MTA4pBEwDzENMAsGA1UEAwwEdDEwOaQR --MA8xDTALBgNVBAMMBHQxMTCkETAPMQ0wCwYDVQQDDAR0MTExpBEwDzENMAsGA1UE --AwwEdDExMqQRMA8xDTALBgNVBAMMBHQxMTOkETAPMQ0wCwYDVQQDDAR0MTE0pBEw --DzENMAsGA1UEAwwEdDExNaQRMA8xDTALBgNVBAMMBHQxMTakETAPMQ0wCwYDVQQD --DAR0MTE3pBEwDzENMAsGA1UEAwwEdDExOKQRMA8xDTALBgNVBAMMBHQxMTmkETAP --MQ0wCwYDVQQDDAR0MTIwpBEwDzENMAsGA1UEAwwEdDEyMaQRMA8xDTALBgNVBAMM --BHQxMjKkETAPMQ0wCwYDVQQDDAR0MTIzpBEwDzENMAsGA1UEAwwEdDEyNKQRMA8x --DTALBgNVBAMMBHQxMjWkETAPMQ0wCwYDVQQDDAR0MTI2pBEwDzENMAsGA1UEAwwE --dDEyN6QRMA8xDTALBgNVBAMMBHQxMjikETAPMQ0wCwYDVQQDDAR0MTI5pBEwDzEN --MAsGA1UEAwwEdDEzMKQRMA8xDTALBgNVBAMMBHQxMzGkETAPMQ0wCwYDVQQDDAR0 --MTMypBEwDzENMAsGA1UEAwwEdDEzM6QRMA8xDTALBgNVBAMMBHQxMzSkETAPMQ0w --CwYDVQQDDAR0MTM1pBEwDzENMAsGA1UEAwwEdDEzNqQRMA8xDTALBgNVBAMMBHQx --MzekETAPMQ0wCwYDVQQDDAR0MTM4pBEwDzENMAsGA1UEAwwEdDEzOaQRMA8xDTAL --BgNVBAMMBHQxNDCkETAPMQ0wCwYDVQQDDAR0MTQxpBEwDzENMAsGA1UEAwwEdDE0 --MqQRMA8xDTALBgNVBAMMBHQxNDOkETAPMQ0wCwYDVQQDDAR0MTQ0pBEwDzENMAsG --A1UEAwwEdDE0NaQRMA8xDTALBgNVBAMMBHQxNDakETAPMQ0wCwYDVQQDDAR0MTQ3 --pBEwDzENMAsGA1UEAwwEdDE0OKQRMA8xDTALBgNVBAMMBHQxNDmkETAPMQ0wCwYD --VQQDDAR0MTUwpBEwDzENMAsGA1UEAwwEdDE1MaQRMA8xDTALBgNVBAMMBHQxNTKk --ETAPMQ0wCwYDVQQDDAR0MTUzpBEwDzENMAsGA1UEAwwEdDE1NKQRMA8xDTALBgNV --BAMMBHQxNTWkETAPMQ0wCwYDVQQDDAR0MTU2pBEwDzENMAsGA1UEAwwEdDE1N6QR --MA8xDTALBgNVBAMMBHQxNTikETAPMQ0wCwYDVQQDDAR0MTU5pBEwDzENMAsGA1UE --AwwEdDE2MKQRMA8xDTALBgNVBAMMBHQxNjGkETAPMQ0wCwYDVQQDDAR0MTYypBEw --DzENMAsGA1UEAwwEdDE2M6QRMA8xDTALBgNVBAMMBHQxNjSkETAPMQ0wCwYDVQQD --DAR0MTY1pBEwDzENMAsGA1UEAwwEdDE2NqQRMA8xDTALBgNVBAMMBHQxNjekETAP --MQ0wCwYDVQQDDAR0MTY4pBEwDzENMAsGA1UEAwwEdDE2OaQRMA8xDTALBgNVBAMM --BHQxNzCkETAPMQ0wCwYDVQQDDAR0MTcxpBEwDzENMAsGA1UEAwwEdDE3MqQRMA8x --DTALBgNVBAMMBHQxNzOkETAPMQ0wCwYDVQQDDAR0MTc0pBEwDzENMAsGA1UEAwwE --dDE3NaQRMA8xDTALBgNVBAMMBHQxNzakETAPMQ0wCwYDVQQDDAR0MTc3pBEwDzEN --MAsGA1UEAwwEdDE3OKQRMA8xDTALBgNVBAMMBHQxNzmkETAPMQ0wCwYDVQQDDAR0 --MTgwpBEwDzENMAsGA1UEAwwEdDE4MaQRMA8xDTALBgNVBAMMBHQxODKkETAPMQ0w --CwYDVQQDDAR0MTgzpBEwDzENMAsGA1UEAwwEdDE4NKQRMA8xDTALBgNVBAMMBHQx --ODWkETAPMQ0wCwYDVQQDDAR0MTg2pBEwDzENMAsGA1UEAwwEdDE4N6QRMA8xDTAL --BgNVBAMMBHQxODikETAPMQ0wCwYDVQQDDAR0MTg5pBEwDzENMAsGA1UEAwwEdDE5 --MKQRMA8xDTALBgNVBAMMBHQxOTGkETAPMQ0wCwYDVQQDDAR0MTkypBEwDzENMAsG --A1UEAwwEdDE5M6QRMA8xDTALBgNVBAMMBHQxOTSkETAPMQ0wCwYDVQQDDAR0MTk1 --pBEwDzENMAsGA1UEAwwEdDE5NqQRMA8xDTALBgNVBAMMBHQxOTekETAPMQ0wCwYD --VQQDDAR0MTk4pBEwDzENMAsGA1UEAwwEdDE5OaQRMA8xDTALBgNVBAMMBHQyMDCk --ETAPMQ0wCwYDVQQDDAR0MjAxpBEwDzENMAsGA1UEAwwEdDIwMqQRMA8xDTALBgNV --BAMMBHQyMDOkETAPMQ0wCwYDVQQDDAR0MjA0pBEwDzENMAsGA1UEAwwEdDIwNaQR --MA8xDTALBgNVBAMMBHQyMDakETAPMQ0wCwYDVQQDDAR0MjA3pBEwDzENMAsGA1UE --AwwEdDIwOKQRMA8xDTALBgNVBAMMBHQyMDmkETAPMQ0wCwYDVQQDDAR0MjEwpBEw --DzENMAsGA1UEAwwEdDIxMaQRMA8xDTALBgNVBAMMBHQyMTKkETAPMQ0wCwYDVQQD --DAR0MjEzpBEwDzENMAsGA1UEAwwEdDIxNKQRMA8xDTALBgNVBAMMBHQyMTWkETAP --MQ0wCwYDVQQDDAR0MjE2pBEwDzENMAsGA1UEAwwEdDIxN6QRMA8xDTALBgNVBAMM --BHQyMTikETAPMQ0wCwYDVQQDDAR0MjE5pBEwDzENMAsGA1UEAwwEdDIyMKQRMA8x --DTALBgNVBAMMBHQyMjGkETAPMQ0wCwYDVQQDDAR0MjIypBEwDzENMAsGA1UEAwwE --dDIyM6QRMA8xDTALBgNVBAMMBHQyMjSkETAPMQ0wCwYDVQQDDAR0MjI1pBEwDzEN --MAsGA1UEAwwEdDIyNqQRMA8xDTALBgNVBAMMBHQyMjekETAPMQ0wCwYDVQQDDAR0 --MjI4pBEwDzENMAsGA1UEAwwEdDIyOaQRMA8xDTALBgNVBAMMBHQyMzCkETAPMQ0w --CwYDVQQDDAR0MjMxpBEwDzENMAsGA1UEAwwEdDIzMqQRMA8xDTALBgNVBAMMBHQy --MzOkETAPMQ0wCwYDVQQDDAR0MjM0pBEwDzENMAsGA1UEAwwEdDIzNaQRMA8xDTAL --BgNVBAMMBHQyMzakETAPMQ0wCwYDVQQDDAR0MjM3pBEwDzENMAsGA1UEAwwEdDIz --OKQRMA8xDTALBgNVBAMMBHQyMzmkETAPMQ0wCwYDVQQDDAR0MjQwpBEwDzENMAsG --A1UEAwwEdDI0MaQRMA8xDTALBgNVBAMMBHQyNDKkETAPMQ0wCwYDVQQDDAR0MjQz --pBEwDzENMAsGA1UEAwwEdDI0NKQRMA8xDTALBgNVBAMMBHQyNDWkETAPMQ0wCwYD --VQQDDAR0MjQ2pBEwDzENMAsGA1UEAwwEdDI0N6QRMA8xDTALBgNVBAMMBHQyNDik --ETAPMQ0wCwYDVQQDDAR0MjQ5pBEwDzENMAsGA1UEAwwEdDI1MKQRMA8xDTALBgNV --BAMMBHQyNTGkETAPMQ0wCwYDVQQDDAR0MjUypBEwDzENMAsGA1UEAwwEdDI1M6QR --MA8xDTALBgNVBAMMBHQyNTSkETAPMQ0wCwYDVQQDDAR0MjU1pBEwDzENMAsGA1UE --AwwEdDI1NqQRMA8xDTALBgNVBAMMBHQyNTekETAPMQ0wCwYDVQQDDAR0MjU4pBEw --DzENMAsGA1UEAwwEdDI1OaQRMA8xDTALBgNVBAMMBHQyNjCkETAPMQ0wCwYDVQQD --DAR0MjYxpBEwDzENMAsGA1UEAwwEdDI2MqQRMA8xDTALBgNVBAMMBHQyNjOkETAP --MQ0wCwYDVQQDDAR0MjY0pBEwDzENMAsGA1UEAwwEdDI2NaQRMA8xDTALBgNVBAMM --BHQyNjakETAPMQ0wCwYDVQQDDAR0MjY3pBEwDzENMAsGA1UEAwwEdDI2OKQRMA8x --DTALBgNVBAMMBHQyNjmkETAPMQ0wCwYDVQQDDAR0MjcwpBEwDzENMAsGA1UEAwwE --dDI3MaQRMA8xDTALBgNVBAMMBHQyNzKkETAPMQ0wCwYDVQQDDAR0MjczpBEwDzEN --MAsGA1UEAwwEdDI3NKQRMA8xDTALBgNVBAMMBHQyNzWkETAPMQ0wCwYDVQQDDAR0 --Mjc2pBEwDzENMAsGA1UEAwwEdDI3N6QRMA8xDTALBgNVBAMMBHQyNzikETAPMQ0w --CwYDVQQDDAR0Mjc5pBEwDzENMAsGA1UEAwwEdDI4MKQRMA8xDTALBgNVBAMMBHQy --ODGkETAPMQ0wCwYDVQQDDAR0MjgypBEwDzENMAsGA1UEAwwEdDI4M6QRMA8xDTAL --BgNVBAMMBHQyODSkETAPMQ0wCwYDVQQDDAR0Mjg1pBEwDzENMAsGA1UEAwwEdDI4 --NqQRMA8xDTALBgNVBAMMBHQyODekETAPMQ0wCwYDVQQDDAR0Mjg4pBEwDzENMAsG --A1UEAwwEdDI4OaQRMA8xDTALBgNVBAMMBHQyOTCkETAPMQ0wCwYDVQQDDAR0Mjkx --pBEwDzENMAsGA1UEAwwEdDI5MqQRMA8xDTALBgNVBAMMBHQyOTOkETAPMQ0wCwYD --VQQDDAR0Mjk0pBEwDzENMAsGA1UEAwwEdDI5NaQRMA8xDTALBgNVBAMMBHQyOTak --ETAPMQ0wCwYDVQQDDAR0Mjk3pBEwDzENMAsGA1UEAwwEdDI5OKQRMA8xDTALBgNV --BAMMBHQyOTmkETAPMQ0wCwYDVQQDDAR0MzAwpBEwDzENMAsGA1UEAwwEdDMwMaQR --MA8xDTALBgNVBAMMBHQzMDKkETAPMQ0wCwYDVQQDDAR0MzAzpBEwDzENMAsGA1UE --AwwEdDMwNKQRMA8xDTALBgNVBAMMBHQzMDWkETAPMQ0wCwYDVQQDDAR0MzA2pBEw --DzENMAsGA1UEAwwEdDMwN6QRMA8xDTALBgNVBAMMBHQzMDikETAPMQ0wCwYDVQQD --DAR0MzA5pBEwDzENMAsGA1UEAwwEdDMxMKQRMA8xDTALBgNVBAMMBHQzMTGkETAP --MQ0wCwYDVQQDDAR0MzEypBEwDzENMAsGA1UEAwwEdDMxM6QRMA8xDTALBgNVBAMM --BHQzMTSkETAPMQ0wCwYDVQQDDAR0MzE1pBEwDzENMAsGA1UEAwwEdDMxNqQRMA8x --DTALBgNVBAMMBHQzMTekETAPMQ0wCwYDVQQDDAR0MzE4pBEwDzENMAsGA1UEAwwE --dDMxOaQRMA8xDTALBgNVBAMMBHQzMjCkETAPMQ0wCwYDVQQDDAR0MzIxpBEwDzEN --MAsGA1UEAwwEdDMyMqQRMA8xDTALBgNVBAMMBHQzMjOkETAPMQ0wCwYDVQQDDAR0 --MzI0pBEwDzENMAsGA1UEAwwEdDMyNaQRMA8xDTALBgNVBAMMBHQzMjakETAPMQ0w --CwYDVQQDDAR0MzI3pBEwDzENMAsGA1UEAwwEdDMyOKQRMA8xDTALBgNVBAMMBHQz --MjmkETAPMQ0wCwYDVQQDDAR0MzMwpBEwDzENMAsGA1UEAwwEdDMzMaQRMA8xDTAL --BgNVBAMMBHQzMzKkETAPMQ0wCwYDVQQDDAR0MzMzpBEwDzENMAsGA1UEAwwEdDMz --NKQRMA8xDTALBgNVBAMMBHQzMzWkETAPMQ0wCwYDVQQDDAR0MzM2pBEwDzENMAsG --A1UEAwwEdDMzN6QRMA8xDTALBgNVBAMMBHQzMzikETAPMQ0wCwYDVQQDDAR0MzM5 --pBEwDzENMAsGA1UEAwwEdDM0MKQRMA8xDTALBgNVBAMMBHQzNDGkETAPMQ0wCwYD --VQQDDAR0MzQypBEwDzENMAsGA1UEAwwEdDM0M6QRMA8xDTALBgNVBAMMBHQzNDSk --ETAPMQ0wCwYDVQQDDAR0MzQ1pBEwDzENMAsGA1UEAwwEdDM0NqQRMA8xDTALBgNV --BAMMBHQzNDekETAPMQ0wCwYDVQQDDAR0MzQ4pBEwDzENMAsGA1UEAwwEdDM0OaQR --MA8xDTALBgNVBAMMBHQzNTCkETAPMQ0wCwYDVQQDDAR0MzUxpBEwDzENMAsGA1UE --AwwEdDM1MqQRMA8xDTALBgNVBAMMBHQzNTOkETAPMQ0wCwYDVQQDDAR0MzU0pBEw --DzENMAsGA1UEAwwEdDM1NaQRMA8xDTALBgNVBAMMBHQzNTakETAPMQ0wCwYDVQQD --DAR0MzU3pBEwDzENMAsGA1UEAwwEdDM1OKQRMA8xDTALBgNVBAMMBHQzNTmkETAP --MQ0wCwYDVQQDDAR0MzYwpBEwDzENMAsGA1UEAwwEdDM2MaQRMA8xDTALBgNVBAMM --BHQzNjKkETAPMQ0wCwYDVQQDDAR0MzYzpBEwDzENMAsGA1UEAwwEdDM2NKQRMA8x --DTALBgNVBAMMBHQzNjWkETAPMQ0wCwYDVQQDDAR0MzY2pBEwDzENMAsGA1UEAwwE --dDM2N6QRMA8xDTALBgNVBAMMBHQzNjikETAPMQ0wCwYDVQQDDAR0MzY5pBEwDzEN --MAsGA1UEAwwEdDM3MKQRMA8xDTALBgNVBAMMBHQzNzGkETAPMQ0wCwYDVQQDDAR0 --MzcypBEwDzENMAsGA1UEAwwEdDM3M6QRMA8xDTALBgNVBAMMBHQzNzSkETAPMQ0w --CwYDVQQDDAR0Mzc1pBEwDzENMAsGA1UEAwwEdDM3NqQRMA8xDTALBgNVBAMMBHQz --NzekETAPMQ0wCwYDVQQDDAR0Mzc4pBEwDzENMAsGA1UEAwwEdDM3OaQRMA8xDTAL --BgNVBAMMBHQzODCkETAPMQ0wCwYDVQQDDAR0MzgxpBEwDzENMAsGA1UEAwwEdDM4 --MqQRMA8xDTALBgNVBAMMBHQzODOkETAPMQ0wCwYDVQQDDAR0Mzg0pBEwDzENMAsG --A1UEAwwEdDM4NaQRMA8xDTALBgNVBAMMBHQzODakETAPMQ0wCwYDVQQDDAR0Mzg3 --pBEwDzENMAsGA1UEAwwEdDM4OKQRMA8xDTALBgNVBAMMBHQzODmkETAPMQ0wCwYD --VQQDDAR0MzkwpBEwDzENMAsGA1UEAwwEdDM5MaQRMA8xDTALBgNVBAMMBHQzOTKk --ETAPMQ0wCwYDVQQDDAR0MzkzpBEwDzENMAsGA1UEAwwEdDM5NKQRMA8xDTALBgNV --BAMMBHQzOTWkETAPMQ0wCwYDVQQDDAR0Mzk2pBEwDzENMAsGA1UEAwwEdDM5N6QR --MA8xDTALBgNVBAMMBHQzOTikETAPMQ0wCwYDVQQDDAR0Mzk5pBEwDzENMAsGA1UE --AwwEdDQwMKQRMA8xDTALBgNVBAMMBHQ0MDGkETAPMQ0wCwYDVQQDDAR0NDAypBEw --DzENMAsGA1UEAwwEdDQwM6QRMA8xDTALBgNVBAMMBHQ0MDSkETAPMQ0wCwYDVQQD --DAR0NDA1pBEwDzENMAsGA1UEAwwEdDQwNqQRMA8xDTALBgNVBAMMBHQ0MDekETAP --MQ0wCwYDVQQDDAR0NDA4pBEwDzENMAsGA1UEAwwEdDQwOaQRMA8xDTALBgNVBAMM --BHQ0MTCkETAPMQ0wCwYDVQQDDAR0NDExpBEwDzENMAsGA1UEAwwEdDQxMqQRMA8x --DTALBgNVBAMMBHQ0MTOkETAPMQ0wCwYDVQQDDAR0NDE0pBEwDzENMAsGA1UEAwwE --dDQxNaQRMA8xDTALBgNVBAMMBHQ0MTaGDWh0dHA6Ly90ZXN0LzCGDWh0dHA6Ly90 --ZXN0LzGGDWh0dHA6Ly90ZXN0LzKGDWh0dHA6Ly90ZXN0LzOGDWh0dHA6Ly90ZXN0 --LzSGDWh0dHA6Ly90ZXN0LzWGDWh0dHA6Ly90ZXN0LzaGDWh0dHA6Ly90ZXN0LzeG --DWh0dHA6Ly90ZXN0LziGDWh0dHA6Ly90ZXN0LzmGDmh0dHA6Ly90ZXN0LzEwhg5o --dHRwOi8vdGVzdC8xMYYOaHR0cDovL3Rlc3QvMTKGDmh0dHA6Ly90ZXN0LzEzhg5o --dHRwOi8vdGVzdC8xNIYOaHR0cDovL3Rlc3QvMTWGDmh0dHA6Ly90ZXN0LzE2hg5o --dHRwOi8vdGVzdC8xN4YOaHR0cDovL3Rlc3QvMTiGDmh0dHA6Ly90ZXN0LzE5hg5o --dHRwOi8vdGVzdC8yMIYOaHR0cDovL3Rlc3QvMjGGDmh0dHA6Ly90ZXN0LzIyhg5o --dHRwOi8vdGVzdC8yM4YOaHR0cDovL3Rlc3QvMjSGDmh0dHA6Ly90ZXN0LzI1hg5o --dHRwOi8vdGVzdC8yNoYOaHR0cDovL3Rlc3QvMjeGDmh0dHA6Ly90ZXN0LzI4hg5o --dHRwOi8vdGVzdC8yOYYOaHR0cDovL3Rlc3QvMzCGDmh0dHA6Ly90ZXN0LzMxhg5o --dHRwOi8vdGVzdC8zMoYOaHR0cDovL3Rlc3QvMzOGDmh0dHA6Ly90ZXN0LzM0hg5o --dHRwOi8vdGVzdC8zNYYOaHR0cDovL3Rlc3QvMzaGDmh0dHA6Ly90ZXN0LzM3hg5o --dHRwOi8vdGVzdC8zOIYOaHR0cDovL3Rlc3QvMzmGDmh0dHA6Ly90ZXN0LzQwhg5o --dHRwOi8vdGVzdC80MYYOaHR0cDovL3Rlc3QvNDKGDmh0dHA6Ly90ZXN0LzQzhg5o --dHRwOi8vdGVzdC80NIYOaHR0cDovL3Rlc3QvNDWGDmh0dHA6Ly90ZXN0LzQ2hg5o --dHRwOi8vdGVzdC80N4YOaHR0cDovL3Rlc3QvNDiGDmh0dHA6Ly90ZXN0LzQ5hg5o --dHRwOi8vdGVzdC81MIYOaHR0cDovL3Rlc3QvNTGGDmh0dHA6Ly90ZXN0LzUyhg5o --dHRwOi8vdGVzdC81M4YOaHR0cDovL3Rlc3QvNTSGDmh0dHA6Ly90ZXN0LzU1hg5o --dHRwOi8vdGVzdC81NoYOaHR0cDovL3Rlc3QvNTeGDmh0dHA6Ly90ZXN0LzU4hg5o --dHRwOi8vdGVzdC81OYYOaHR0cDovL3Rlc3QvNjCGDmh0dHA6Ly90ZXN0LzYxhg5o --dHRwOi8vdGVzdC82MoYOaHR0cDovL3Rlc3QvNjOGDmh0dHA6Ly90ZXN0LzY0hg5o --dHRwOi8vdGVzdC82NYYOaHR0cDovL3Rlc3QvNjaGDmh0dHA6Ly90ZXN0LzY3hg5o --dHRwOi8vdGVzdC82OIYOaHR0cDovL3Rlc3QvNjmGDmh0dHA6Ly90ZXN0Lzcwhg5o --dHRwOi8vdGVzdC83MYYOaHR0cDovL3Rlc3QvNzKGDmh0dHA6Ly90ZXN0Lzczhg5o --dHRwOi8vdGVzdC83NIYOaHR0cDovL3Rlc3QvNzWGDmh0dHA6Ly90ZXN0Lzc2hg5o --dHRwOi8vdGVzdC83N4YOaHR0cDovL3Rlc3QvNziGDmh0dHA6Ly90ZXN0Lzc5hg5o --dHRwOi8vdGVzdC84MIYOaHR0cDovL3Rlc3QvODGGDmh0dHA6Ly90ZXN0Lzgyhg5o --dHRwOi8vdGVzdC84M4YOaHR0cDovL3Rlc3QvODSGDmh0dHA6Ly90ZXN0Lzg1hg5o --dHRwOi8vdGVzdC84NoYOaHR0cDovL3Rlc3QvODeGDmh0dHA6Ly90ZXN0Lzg4hg5o --dHRwOi8vdGVzdC84OYYOaHR0cDovL3Rlc3QvOTCGDmh0dHA6Ly90ZXN0Lzkxhg5o --dHRwOi8vdGVzdC85MoYOaHR0cDovL3Rlc3QvOTOGDmh0dHA6Ly90ZXN0Lzk0hg5o --dHRwOi8vdGVzdC85NYYOaHR0cDovL3Rlc3QvOTaGDmh0dHA6Ly90ZXN0Lzk3hg5o --dHRwOi8vdGVzdC85OIYOaHR0cDovL3Rlc3QvOTmGD2h0dHA6Ly90ZXN0LzEwMIYP --aHR0cDovL3Rlc3QvMTAxhg9odHRwOi8vdGVzdC8xMDKGD2h0dHA6Ly90ZXN0LzEw --M4YPaHR0cDovL3Rlc3QvMTA0hg9odHRwOi8vdGVzdC8xMDWGD2h0dHA6Ly90ZXN0 --LzEwNoYPaHR0cDovL3Rlc3QvMTA3hg9odHRwOi8vdGVzdC8xMDiGD2h0dHA6Ly90 --ZXN0LzEwOYYPaHR0cDovL3Rlc3QvMTEwhg9odHRwOi8vdGVzdC8xMTGGD2h0dHA6 --Ly90ZXN0LzExMoYPaHR0cDovL3Rlc3QvMTEzhg9odHRwOi8vdGVzdC8xMTSGD2h0 --dHA6Ly90ZXN0LzExNYYPaHR0cDovL3Rlc3QvMTE2hg9odHRwOi8vdGVzdC8xMTeG --D2h0dHA6Ly90ZXN0LzExOIYPaHR0cDovL3Rlc3QvMTE5hg9odHRwOi8vdGVzdC8x --MjCGD2h0dHA6Ly90ZXN0LzEyMYYPaHR0cDovL3Rlc3QvMTIyhg9odHRwOi8vdGVz --dC8xMjOGD2h0dHA6Ly90ZXN0LzEyNIYPaHR0cDovL3Rlc3QvMTI1hg9odHRwOi8v --dGVzdC8xMjaGD2h0dHA6Ly90ZXN0LzEyN4YPaHR0cDovL3Rlc3QvMTI4hg9odHRw --Oi8vdGVzdC8xMjmGD2h0dHA6Ly90ZXN0LzEzMIYPaHR0cDovL3Rlc3QvMTMxhg9o --dHRwOi8vdGVzdC8xMzKGD2h0dHA6Ly90ZXN0LzEzM4YPaHR0cDovL3Rlc3QvMTM0 --hg9odHRwOi8vdGVzdC8xMzWGD2h0dHA6Ly90ZXN0LzEzNoYPaHR0cDovL3Rlc3Qv --MTM3hg9odHRwOi8vdGVzdC8xMziGD2h0dHA6Ly90ZXN0LzEzOYYPaHR0cDovL3Rl --c3QvMTQwhg9odHRwOi8vdGVzdC8xNDGGD2h0dHA6Ly90ZXN0LzE0MoYPaHR0cDov --L3Rlc3QvMTQzhg9odHRwOi8vdGVzdC8xNDSGD2h0dHA6Ly90ZXN0LzE0NYYPaHR0 --cDovL3Rlc3QvMTQ2hg9odHRwOi8vdGVzdC8xNDeGD2h0dHA6Ly90ZXN0LzE0OIYP --aHR0cDovL3Rlc3QvMTQ5hg9odHRwOi8vdGVzdC8xNTCGD2h0dHA6Ly90ZXN0LzE1 --MYYPaHR0cDovL3Rlc3QvMTUyhg9odHRwOi8vdGVzdC8xNTOGD2h0dHA6Ly90ZXN0 --LzE1NIYPaHR0cDovL3Rlc3QvMTU1hg9odHRwOi8vdGVzdC8xNTaGD2h0dHA6Ly90 --ZXN0LzE1N4YPaHR0cDovL3Rlc3QvMTU4hg9odHRwOi8vdGVzdC8xNTmGD2h0dHA6 --Ly90ZXN0LzE2MIYPaHR0cDovL3Rlc3QvMTYxhg9odHRwOi8vdGVzdC8xNjKGD2h0 --dHA6Ly90ZXN0LzE2M4YPaHR0cDovL3Rlc3QvMTY0hg9odHRwOi8vdGVzdC8xNjWG --D2h0dHA6Ly90ZXN0LzE2NoYPaHR0cDovL3Rlc3QvMTY3hg9odHRwOi8vdGVzdC8x --NjiGD2h0dHA6Ly90ZXN0LzE2OYYPaHR0cDovL3Rlc3QvMTcwhg9odHRwOi8vdGVz --dC8xNzGGD2h0dHA6Ly90ZXN0LzE3MoYPaHR0cDovL3Rlc3QvMTczhg9odHRwOi8v --dGVzdC8xNzSGD2h0dHA6Ly90ZXN0LzE3NYYPaHR0cDovL3Rlc3QvMTc2hg9odHRw --Oi8vdGVzdC8xNzeGD2h0dHA6Ly90ZXN0LzE3OIYPaHR0cDovL3Rlc3QvMTc5hg9o --dHRwOi8vdGVzdC8xODCGD2h0dHA6Ly90ZXN0LzE4MYYPaHR0cDovL3Rlc3QvMTgy --hg9odHRwOi8vdGVzdC8xODOGD2h0dHA6Ly90ZXN0LzE4NIYPaHR0cDovL3Rlc3Qv --MTg1hg9odHRwOi8vdGVzdC8xODaGD2h0dHA6Ly90ZXN0LzE4N4YPaHR0cDovL3Rl --c3QvMTg4hg9odHRwOi8vdGVzdC8xODmGD2h0dHA6Ly90ZXN0LzE5MIYPaHR0cDov --L3Rlc3QvMTkxhg9odHRwOi8vdGVzdC8xOTKGD2h0dHA6Ly90ZXN0LzE5M4YPaHR0 --cDovL3Rlc3QvMTk0hg9odHRwOi8vdGVzdC8xOTWGD2h0dHA6Ly90ZXN0LzE5NoYP --aHR0cDovL3Rlc3QvMTk3hg9odHRwOi8vdGVzdC8xOTiGD2h0dHA6Ly90ZXN0LzE5 --OYYPaHR0cDovL3Rlc3QvMjAwhg9odHRwOi8vdGVzdC8yMDGGD2h0dHA6Ly90ZXN0 --LzIwMoYPaHR0cDovL3Rlc3QvMjAzhg9odHRwOi8vdGVzdC8yMDSGD2h0dHA6Ly90 --ZXN0LzIwNYYPaHR0cDovL3Rlc3QvMjA2hg9odHRwOi8vdGVzdC8yMDeGD2h0dHA6 --Ly90ZXN0LzIwOIYPaHR0cDovL3Rlc3QvMjA5hg9odHRwOi8vdGVzdC8yMTCGD2h0 --dHA6Ly90ZXN0LzIxMYYPaHR0cDovL3Rlc3QvMjEyhg9odHRwOi8vdGVzdC8yMTOG --D2h0dHA6Ly90ZXN0LzIxNIYPaHR0cDovL3Rlc3QvMjE1hg9odHRwOi8vdGVzdC8y --MTaGD2h0dHA6Ly90ZXN0LzIxN4YPaHR0cDovL3Rlc3QvMjE4hg9odHRwOi8vdGVz --dC8yMTmGD2h0dHA6Ly90ZXN0LzIyMIYPaHR0cDovL3Rlc3QvMjIxhg9odHRwOi8v --dGVzdC8yMjKGD2h0dHA6Ly90ZXN0LzIyM4YPaHR0cDovL3Rlc3QvMjI0hg9odHRw --Oi8vdGVzdC8yMjWGD2h0dHA6Ly90ZXN0LzIyNoYPaHR0cDovL3Rlc3QvMjI3hg9o --dHRwOi8vdGVzdC8yMjiGD2h0dHA6Ly90ZXN0LzIyOYYPaHR0cDovL3Rlc3QvMjMw --hg9odHRwOi8vdGVzdC8yMzGGD2h0dHA6Ly90ZXN0LzIzMoYPaHR0cDovL3Rlc3Qv --MjMzhg9odHRwOi8vdGVzdC8yMzSGD2h0dHA6Ly90ZXN0LzIzNYYPaHR0cDovL3Rl --c3QvMjM2hg9odHRwOi8vdGVzdC8yMzeGD2h0dHA6Ly90ZXN0LzIzOIYPaHR0cDov --L3Rlc3QvMjM5hg9odHRwOi8vdGVzdC8yNDCGD2h0dHA6Ly90ZXN0LzI0MYYPaHR0 --cDovL3Rlc3QvMjQyhg9odHRwOi8vdGVzdC8yNDOGD2h0dHA6Ly90ZXN0LzI0NIYP --aHR0cDovL3Rlc3QvMjQ1hg9odHRwOi8vdGVzdC8yNDaGD2h0dHA6Ly90ZXN0LzI0 --N4YPaHR0cDovL3Rlc3QvMjQ4hg9odHRwOi8vdGVzdC8yNDmGD2h0dHA6Ly90ZXN0 --LzI1MIYPaHR0cDovL3Rlc3QvMjUxhg9odHRwOi8vdGVzdC8yNTKGD2h0dHA6Ly90 --ZXN0LzI1M4YPaHR0cDovL3Rlc3QvMjU0hg9odHRwOi8vdGVzdC8yNTWGD2h0dHA6 --Ly90ZXN0LzI1NoYPaHR0cDovL3Rlc3QvMjU3hg9odHRwOi8vdGVzdC8yNTiGD2h0 --dHA6Ly90ZXN0LzI1OYYPaHR0cDovL3Rlc3QvMjYwhg9odHRwOi8vdGVzdC8yNjGG --D2h0dHA6Ly90ZXN0LzI2MoYPaHR0cDovL3Rlc3QvMjYzhg9odHRwOi8vdGVzdC8y --NjSGD2h0dHA6Ly90ZXN0LzI2NYYPaHR0cDovL3Rlc3QvMjY2hg9odHRwOi8vdGVz --dC8yNjeGD2h0dHA6Ly90ZXN0LzI2OIYPaHR0cDovL3Rlc3QvMjY5hg9odHRwOi8v --dGVzdC8yNzCGD2h0dHA6Ly90ZXN0LzI3MYYPaHR0cDovL3Rlc3QvMjcyhg9odHRw --Oi8vdGVzdC8yNzOGD2h0dHA6Ly90ZXN0LzI3NIYPaHR0cDovL3Rlc3QvMjc1hg9o --dHRwOi8vdGVzdC8yNzaGD2h0dHA6Ly90ZXN0LzI3N4YPaHR0cDovL3Rlc3QvMjc4 --hg9odHRwOi8vdGVzdC8yNzmGD2h0dHA6Ly90ZXN0LzI4MIYPaHR0cDovL3Rlc3Qv --Mjgxhg9odHRwOi8vdGVzdC8yODKGD2h0dHA6Ly90ZXN0LzI4M4YPaHR0cDovL3Rl --c3QvMjg0hg9odHRwOi8vdGVzdC8yODWGD2h0dHA6Ly90ZXN0LzI4NoYPaHR0cDov --L3Rlc3QvMjg3hg9odHRwOi8vdGVzdC8yODiGD2h0dHA6Ly90ZXN0LzI4OYYPaHR0 --cDovL3Rlc3QvMjkwhg9odHRwOi8vdGVzdC8yOTGGD2h0dHA6Ly90ZXN0LzI5MoYP --aHR0cDovL3Rlc3QvMjkzhg9odHRwOi8vdGVzdC8yOTSGD2h0dHA6Ly90ZXN0LzI5 --NYYPaHR0cDovL3Rlc3QvMjk2hg9odHRwOi8vdGVzdC8yOTeGD2h0dHA6Ly90ZXN0 --LzI5OIYPaHR0cDovL3Rlc3QvMjk5hg9odHRwOi8vdGVzdC8zMDCGD2h0dHA6Ly90 --ZXN0LzMwMYYPaHR0cDovL3Rlc3QvMzAyhg9odHRwOi8vdGVzdC8zMDOGD2h0dHA6 --Ly90ZXN0LzMwNIYPaHR0cDovL3Rlc3QvMzA1hg9odHRwOi8vdGVzdC8zMDaGD2h0 --dHA6Ly90ZXN0LzMwN4YPaHR0cDovL3Rlc3QvMzA4hg9odHRwOi8vdGVzdC8zMDmG --D2h0dHA6Ly90ZXN0LzMxMIYPaHR0cDovL3Rlc3QvMzExhg9odHRwOi8vdGVzdC8z --MTKGD2h0dHA6Ly90ZXN0LzMxM4YPaHR0cDovL3Rlc3QvMzE0hg9odHRwOi8vdGVz --dC8zMTWGD2h0dHA6Ly90ZXN0LzMxNoYPaHR0cDovL3Rlc3QvMzE3hg9odHRwOi8v --dGVzdC8zMTiGD2h0dHA6Ly90ZXN0LzMxOYYPaHR0cDovL3Rlc3QvMzIwhg9odHRw --Oi8vdGVzdC8zMjGGD2h0dHA6Ly90ZXN0LzMyMoYPaHR0cDovL3Rlc3QvMzIzhg9o --dHRwOi8vdGVzdC8zMjSGD2h0dHA6Ly90ZXN0LzMyNYYPaHR0cDovL3Rlc3QvMzI2 --hg9odHRwOi8vdGVzdC8zMjeGD2h0dHA6Ly90ZXN0LzMyOIYPaHR0cDovL3Rlc3Qv --MzI5hg9odHRwOi8vdGVzdC8zMzCGD2h0dHA6Ly90ZXN0LzMzMYYPaHR0cDovL3Rl --c3QvMzMyhg9odHRwOi8vdGVzdC8zMzOGD2h0dHA6Ly90ZXN0LzMzNIYPaHR0cDov --L3Rlc3QvMzM1hg9odHRwOi8vdGVzdC8zMzaGD2h0dHA6Ly90ZXN0LzMzN4YPaHR0 --cDovL3Rlc3QvMzM4hg9odHRwOi8vdGVzdC8zMzmGD2h0dHA6Ly90ZXN0LzM0MIYP --aHR0cDovL3Rlc3QvMzQxhg9odHRwOi8vdGVzdC8zNDKGD2h0dHA6Ly90ZXN0LzM0 --M4YPaHR0cDovL3Rlc3QvMzQ0hg9odHRwOi8vdGVzdC8zNDWGD2h0dHA6Ly90ZXN0 --LzM0NoYPaHR0cDovL3Rlc3QvMzQ3hg9odHRwOi8vdGVzdC8zNDiGD2h0dHA6Ly90 --ZXN0LzM0OYYPaHR0cDovL3Rlc3QvMzUwhg9odHRwOi8vdGVzdC8zNTGGD2h0dHA6 --Ly90ZXN0LzM1MoYPaHR0cDovL3Rlc3QvMzUzhg9odHRwOi8vdGVzdC8zNTSGD2h0 --dHA6Ly90ZXN0LzM1NYYPaHR0cDovL3Rlc3QvMzU2hg9odHRwOi8vdGVzdC8zNTeG --D2h0dHA6Ly90ZXN0LzM1OIYPaHR0cDovL3Rlc3QvMzU5hg9odHRwOi8vdGVzdC8z --NjCGD2h0dHA6Ly90ZXN0LzM2MYYPaHR0cDovL3Rlc3QvMzYyhg9odHRwOi8vdGVz --dC8zNjOGD2h0dHA6Ly90ZXN0LzM2NIYPaHR0cDovL3Rlc3QvMzY1hg9odHRwOi8v --dGVzdC8zNjaGD2h0dHA6Ly90ZXN0LzM2N4YPaHR0cDovL3Rlc3QvMzY4hg9odHRw --Oi8vdGVzdC8zNjmGD2h0dHA6Ly90ZXN0LzM3MIYPaHR0cDovL3Rlc3QvMzcxhg9o --dHRwOi8vdGVzdC8zNzKGD2h0dHA6Ly90ZXN0LzM3M4YPaHR0cDovL3Rlc3QvMzc0 --hg9odHRwOi8vdGVzdC8zNzWGD2h0dHA6Ly90ZXN0LzM3NoYPaHR0cDovL3Rlc3Qv --Mzc3hg9odHRwOi8vdGVzdC8zNziGD2h0dHA6Ly90ZXN0LzM3OYYPaHR0cDovL3Rl --c3QvMzgwhg9odHRwOi8vdGVzdC8zODGGD2h0dHA6Ly90ZXN0LzM4MoYPaHR0cDov --L3Rlc3QvMzgzhg9odHRwOi8vdGVzdC8zODSGD2h0dHA6Ly90ZXN0LzM4NYYPaHR0 --cDovL3Rlc3QvMzg2hg9odHRwOi8vdGVzdC8zODeGD2h0dHA6Ly90ZXN0LzM4OIYP --aHR0cDovL3Rlc3QvMzg5hg9odHRwOi8vdGVzdC8zOTCGD2h0dHA6Ly90ZXN0LzM5 --MYYPaHR0cDovL3Rlc3QvMzkyhg9odHRwOi8vdGVzdC8zOTOGD2h0dHA6Ly90ZXN0 --LzM5NIYPaHR0cDovL3Rlc3QvMzk1hg9odHRwOi8vdGVzdC8zOTaGD2h0dHA6Ly90 --ZXN0LzM5N4YPaHR0cDovL3Rlc3QvMzk4hg9odHRwOi8vdGVzdC8zOTmGD2h0dHA6 --Ly90ZXN0LzQwMIYPaHR0cDovL3Rlc3QvNDAxhg9odHRwOi8vdGVzdC80MDKGD2h0 --dHA6Ly90ZXN0LzQwM4YPaHR0cDovL3Rlc3QvNDA0hg9odHRwOi8vdGVzdC80MDWG --D2h0dHA6Ly90ZXN0LzQwNoYPaHR0cDovL3Rlc3QvNDA3hg9odHRwOi8vdGVzdC80 --MDiGD2h0dHA6Ly90ZXN0LzQwOYYPaHR0cDovL3Rlc3QvNDEwhg9odHRwOi8vdGVz --dC80MTGGD2h0dHA6Ly90ZXN0LzQxMoYPaHR0cDovL3Rlc3QvNDEzhg9odHRwOi8v --dGVzdC80MTSGD2h0dHA6Ly90ZXN0LzQxNYYPaHR0cDovL3Rlc3QvNDE2hg9odHRw --Oi8vdGVzdC80MTeGD2h0dHA6Ly90ZXN0LzQxOIYPaHR0cDovL3Rlc3QvNDE5hg9o --dHRwOi8vdGVzdC80MjCGD2h0dHA6Ly90ZXN0LzQyMYYPaHR0cDovL3Rlc3QvNDIy --hg9odHRwOi8vdGVzdC80MjOGD2h0dHA6Ly90ZXN0LzQyNIYPaHR0cDovL3Rlc3Qv --NDI1hg9odHRwOi8vdGVzdC80MjaGD2h0dHA6Ly90ZXN0LzQyN4YPaHR0cDovL3Rl --c3QvNDI4hg9odHRwOi8vdGVzdC80MjmGD2h0dHA6Ly90ZXN0LzQzMIYPaHR0cDov --L3Rlc3QvNDMxhg9odHRwOi8vdGVzdC80MzKGD2h0dHA6Ly90ZXN0LzQzM4YPaHR0 --cDovL3Rlc3QvNDM0hg9odHRwOi8vdGVzdC80MzWGD2h0dHA6Ly90ZXN0LzQzNoYP --aHR0cDovL3Rlc3QvNDM3hg9odHRwOi8vdGVzdC80MziGD2h0dHA6Ly90ZXN0LzQz --OYYPaHR0cDovL3Rlc3QvNDQwhg9odHRwOi8vdGVzdC80NDGGD2h0dHA6Ly90ZXN0 --LzQ0MoYPaHR0cDovL3Rlc3QvNDQzhg9odHRwOi8vdGVzdC80NDSGD2h0dHA6Ly90 --ZXN0LzQ0NYYPaHR0cDovL3Rlc3QvNDQ2hg9odHRwOi8vdGVzdC80NDeGD2h0dHA6 --Ly90ZXN0LzQ0OIYPaHR0cDovL3Rlc3QvNDQ5hg9odHRwOi8vdGVzdC80NTCGD2h0 --dHA6Ly90ZXN0LzQ1MYYPaHR0cDovL3Rlc3QvNDUyhg9odHRwOi8vdGVzdC80NTOG --D2h0dHA6Ly90ZXN0LzQ1NIYPaHR0cDovL3Rlc3QvNDU1hg9odHRwOi8vdGVzdC80 --NTaGD2h0dHA6Ly90ZXN0LzQ1N4YPaHR0cDovL3Rlc3QvNDU4hg9odHRwOi8vdGVz --dC80NTmGD2h0dHA6Ly90ZXN0LzQ2MIYPaHR0cDovL3Rlc3QvNDYxhg9odHRwOi8v --dGVzdC80NjKGD2h0dHA6Ly90ZXN0LzQ2M4YPaHR0cDovL3Rlc3QvNDY0hg9odHRw --Oi8vdGVzdC80NjWGD2h0dHA6Ly90ZXN0LzQ2NoYPaHR0cDovL3Rlc3QvNDY3hg9o --dHRwOi8vdGVzdC80NjiGD2h0dHA6Ly90ZXN0LzQ2OYYPaHR0cDovL3Rlc3QvNDcw --hg9odHRwOi8vdGVzdC80NzGGD2h0dHA6Ly90ZXN0LzQ3MoYPaHR0cDovL3Rlc3Qv --NDczhg9odHRwOi8vdGVzdC80NzSGD2h0dHA6Ly90ZXN0LzQ3NYYPaHR0cDovL3Rl --c3QvNDc2hg9odHRwOi8vdGVzdC80NzeGD2h0dHA6Ly90ZXN0LzQ3OIYPaHR0cDov --L3Rlc3QvNDc5hg9odHRwOi8vdGVzdC80ODCGD2h0dHA6Ly90ZXN0LzQ4MYYPaHR0 --cDovL3Rlc3QvNDgyhg9odHRwOi8vdGVzdC80ODOGD2h0dHA6Ly90ZXN0LzQ4NIYP --aHR0cDovL3Rlc3QvNDg1hg9odHRwOi8vdGVzdC80ODaGD2h0dHA6Ly90ZXN0LzQ4 --N4YPaHR0cDovL3Rlc3QvNDg4hg9odHRwOi8vdGVzdC80ODmGD2h0dHA6Ly90ZXN0 --LzQ5MIYPaHR0cDovL3Rlc3QvNDkxhg9odHRwOi8vdGVzdC80OTKGD2h0dHA6Ly90 --ZXN0LzQ5M4YPaHR0cDovL3Rlc3QvNDk0hg9odHRwOi8vdGVzdC80OTWGD2h0dHA6 --Ly90ZXN0LzQ5NoYPaHR0cDovL3Rlc3QvNDk3hg9odHRwOi8vdGVzdC80OTiGD2h0 --dHA6Ly90ZXN0LzQ5OYYPaHR0cDovL3Rlc3QvNTAwhg9odHRwOi8vdGVzdC81MDGG --D2h0dHA6Ly90ZXN0LzUwMoYPaHR0cDovL3Rlc3QvNTAzhg9odHRwOi8vdGVzdC81 --MDSGD2h0dHA6Ly90ZXN0LzUwNYYPaHR0cDovL3Rlc3QvNTA2hg9odHRwOi8vdGVz --dC81MDeGD2h0dHA6Ly90ZXN0LzUwOIYPaHR0cDovL3Rlc3QvNTA5hg9odHRwOi8v --dGVzdC81MTCGD2h0dHA6Ly90ZXN0LzUxMYYPaHR0cDovL3Rlc3QvNTEyhg9odHRw --Oi8vdGVzdC81MTOGD2h0dHA6Ly90ZXN0LzUxNIYPaHR0cDovL3Rlc3QvNTE1hg9o --dHRwOi8vdGVzdC81MTaGD2h0dHA6Ly90ZXN0LzUxN4YPaHR0cDovL3Rlc3QvNTE4 --hg9odHRwOi8vdGVzdC81MTmGD2h0dHA6Ly90ZXN0LzUyMIYPaHR0cDovL3Rlc3Qv --NTIxhg9odHRwOi8vdGVzdC81MjKGD2h0dHA6Ly90ZXN0LzUyM4YPaHR0cDovL3Rl --c3QvNTI0hg9odHRwOi8vdGVzdC81MjWGD2h0dHA6Ly90ZXN0LzUyNoYPaHR0cDov --L3Rlc3QvNTI3hg9odHRwOi8vdGVzdC81MjiGD2h0dHA6Ly90ZXN0LzUyOYYPaHR0 --cDovL3Rlc3QvNTMwhg9odHRwOi8vdGVzdC81MzGGD2h0dHA6Ly90ZXN0LzUzMoYP --aHR0cDovL3Rlc3QvNTMzhg9odHRwOi8vdGVzdC81MzSGD2h0dHA6Ly90ZXN0LzUz --NYYPaHR0cDovL3Rlc3QvNTM2hg9odHRwOi8vdGVzdC81MzeGD2h0dHA6Ly90ZXN0 --LzUzOIYPaHR0cDovL3Rlc3QvNTM5hg9odHRwOi8vdGVzdC81NDCGD2h0dHA6Ly90 --ZXN0LzU0MYYPaHR0cDovL3Rlc3QvNTQyhg9odHRwOi8vdGVzdC81NDOGD2h0dHA6 --Ly90ZXN0LzU0NIYPaHR0cDovL3Rlc3QvNTQ1hg9odHRwOi8vdGVzdC81NDaGD2h0 --dHA6Ly90ZXN0LzU0N4YPaHR0cDovL3Rlc3QvNTQ4hg9odHRwOi8vdGVzdC81NDmG --D2h0dHA6Ly90ZXN0LzU1MIYPaHR0cDovL3Rlc3QvNTUxhg9odHRwOi8vdGVzdC81 --NTKGD2h0dHA6Ly90ZXN0LzU1M4YPaHR0cDovL3Rlc3QvNTU0hg9odHRwOi8vdGVz --dC81NTWGD2h0dHA6Ly90ZXN0LzU1NoYPaHR0cDovL3Rlc3QvNTU3hg9odHRwOi8v --dGVzdC81NTiGD2h0dHA6Ly90ZXN0LzU1OYYPaHR0cDovL3Rlc3QvNTYwhg9odHRw --Oi8vdGVzdC81NjGGD2h0dHA6Ly90ZXN0LzU2MoYPaHR0cDovL3Rlc3QvNTYzhg9o --dHRwOi8vdGVzdC81NjSGD2h0dHA6Ly90ZXN0LzU2NYYPaHR0cDovL3Rlc3QvNTY2 --hg9odHRwOi8vdGVzdC81NjeGD2h0dHA6Ly90ZXN0LzU2OIYPaHR0cDovL3Rlc3Qv --NTY5hg9odHRwOi8vdGVzdC81NzCGD2h0dHA6Ly90ZXN0LzU3MYYPaHR0cDovL3Rl --c3QvNTcyhg9odHRwOi8vdGVzdC81NzOGD2h0dHA6Ly90ZXN0LzU3NIYPaHR0cDov --L3Rlc3QvNTc1hg9odHRwOi8vdGVzdC81NzaGD2h0dHA6Ly90ZXN0LzU3N4YPaHR0 --cDovL3Rlc3QvNTc4hg9odHRwOi8vdGVzdC81NzmGD2h0dHA6Ly90ZXN0LzU4MIYP --aHR0cDovL3Rlc3QvNTgxhg9odHRwOi8vdGVzdC81ODKGD2h0dHA6Ly90ZXN0LzU4 --M4YPaHR0cDovL3Rlc3QvNTg0hg9odHRwOi8vdGVzdC81ODWGD2h0dHA6Ly90ZXN0 --LzU4NoYPaHR0cDovL3Rlc3QvNTg3hg9odHRwOi8vdGVzdC81ODiGD2h0dHA6Ly90 --ZXN0LzU4OYYPaHR0cDovL3Rlc3QvNTkwhg9odHRwOi8vdGVzdC81OTGGD2h0dHA6 --Ly90ZXN0LzU5MoYPaHR0cDovL3Rlc3QvNTkzhg9odHRwOi8vdGVzdC81OTSGD2h0 --dHA6Ly90ZXN0LzU5NYYPaHR0cDovL3Rlc3QvNTk2hg9odHRwOi8vdGVzdC81OTeG --D2h0dHA6Ly90ZXN0LzU5OIYPaHR0cDovL3Rlc3QvNTk5hg9odHRwOi8vdGVzdC82 --MDCGD2h0dHA6Ly90ZXN0LzYwMYYPaHR0cDovL3Rlc3QvNjAyhg9odHRwOi8vdGVz --dC82MDOGD2h0dHA6Ly90ZXN0LzYwNIYPaHR0cDovL3Rlc3QvNjA1hg9odHRwOi8v --dGVzdC82MDaGD2h0dHA6Ly90ZXN0LzYwN4YPaHR0cDovL3Rlc3QvNjA4hg9odHRw --Oi8vdGVzdC82MDmGD2h0dHA6Ly90ZXN0LzYxMIYPaHR0cDovL3Rlc3QvNjExhg9o --dHRwOi8vdGVzdC82MTKGD2h0dHA6Ly90ZXN0LzYxM4YPaHR0cDovL3Rlc3QvNjE0 --hg9odHRwOi8vdGVzdC82MTWGD2h0dHA6Ly90ZXN0LzYxNoYPaHR0cDovL3Rlc3Qv --NjE3hg9odHRwOi8vdGVzdC82MTiGD2h0dHA6Ly90ZXN0LzYxOYYPaHR0cDovL3Rl --c3QvNjIwhg9odHRwOi8vdGVzdC82MjGGD2h0dHA6Ly90ZXN0LzYyMoYPaHR0cDov --L3Rlc3QvNjIzhg9odHRwOi8vdGVzdC82MjSGD2h0dHA6Ly90ZXN0LzYyNYYPaHR0 --cDovL3Rlc3QvNjI2hg9odHRwOi8vdGVzdC82MjeGD2h0dHA6Ly90ZXN0LzYyOIYP --aHR0cDovL3Rlc3QvNjI5hg9odHRwOi8vdGVzdC82MzCGD2h0dHA6Ly90ZXN0LzYz --MYYPaHR0cDovL3Rlc3QvNjMyhg9odHRwOi8vdGVzdC82MzOGD2h0dHA6Ly90ZXN0 --LzYzNIYPaHR0cDovL3Rlc3QvNjM1hg9odHRwOi8vdGVzdC82MzaGD2h0dHA6Ly90 --ZXN0LzYzN4YPaHR0cDovL3Rlc3QvNjM4hg9odHRwOi8vdGVzdC82MzmGD2h0dHA6 --Ly90ZXN0LzY0MIYPaHR0cDovL3Rlc3QvNjQxhg9odHRwOi8vdGVzdC82NDKGD2h0 --dHA6Ly90ZXN0LzY0M4YPaHR0cDovL3Rlc3QvNjQ0hg9odHRwOi8vdGVzdC82NDWG --D2h0dHA6Ly90ZXN0LzY0NoYPaHR0cDovL3Rlc3QvNjQ3hg9odHRwOi8vdGVzdC82 --NDiGD2h0dHA6Ly90ZXN0LzY0OYYPaHR0cDovL3Rlc3QvNjUwhg9odHRwOi8vdGVz --dC82NTGGD2h0dHA6Ly90ZXN0LzY1MoYPaHR0cDovL3Rlc3QvNjUzhg9odHRwOi8v --dGVzdC82NTSGD2h0dHA6Ly90ZXN0LzY1NYYPaHR0cDovL3Rlc3QvNjU2hg9odHRw --Oi8vdGVzdC82NTeGD2h0dHA6Ly90ZXN0LzY1OIYPaHR0cDovL3Rlc3QvNjU5hg9o --dHRwOi8vdGVzdC82NjCGD2h0dHA6Ly90ZXN0LzY2MYYPaHR0cDovL3Rlc3QvNjYy --hg9odHRwOi8vdGVzdC82NjOGD2h0dHA6Ly90ZXN0LzY2NIYPaHR0cDovL3Rlc3Qv --NjY1hg9odHRwOi8vdGVzdC82NjaGD2h0dHA6Ly90ZXN0LzY2N4YPaHR0cDovL3Rl --c3QvNjY4hg9odHRwOi8vdGVzdC82NjmGD2h0dHA6Ly90ZXN0LzY3MIYPaHR0cDov --L3Rlc3QvNjcxhg9odHRwOi8vdGVzdC82NzKGD2h0dHA6Ly90ZXN0LzY3M4YPaHR0 --cDovL3Rlc3QvNjc0hg9odHRwOi8vdGVzdC82NzWGD2h0dHA6Ly90ZXN0LzY3NoYP --aHR0cDovL3Rlc3QvNjc3hg9odHRwOi8vdGVzdC82NziGD2h0dHA6Ly90ZXN0LzY3 --OYYPaHR0cDovL3Rlc3QvNjgwhg9odHRwOi8vdGVzdC82ODGGD2h0dHA6Ly90ZXN0 --LzY4MoYPaHR0cDovL3Rlc3QvNjgzhg9odHRwOi8vdGVzdC82ODSGD2h0dHA6Ly90 --ZXN0LzY4NYYPaHR0cDovL3Rlc3QvNjg2hg9odHRwOi8vdGVzdC82ODeGD2h0dHA6 --Ly90ZXN0LzY4OIYPaHR0cDovL3Rlc3QvNjg5hg9odHRwOi8vdGVzdC82OTCGD2h0 --dHA6Ly90ZXN0LzY5MYYPaHR0cDovL3Rlc3QvNjkyhg9odHRwOi8vdGVzdC82OTOG --D2h0dHA6Ly90ZXN0LzY5NIYPaHR0cDovL3Rlc3QvNjk1hg9odHRwOi8vdGVzdC82 --OTaGD2h0dHA6Ly90ZXN0LzY5N4YPaHR0cDovL3Rlc3QvNjk4hg9odHRwOi8vdGVz --dC82OTmGD2h0dHA6Ly90ZXN0LzcwMIYPaHR0cDovL3Rlc3QvNzAxhg9odHRwOi8v --dGVzdC83MDKGD2h0dHA6Ly90ZXN0LzcwM4YPaHR0cDovL3Rlc3QvNzA0hg9odHRw --Oi8vdGVzdC83MDWGD2h0dHA6Ly90ZXN0LzcwNoYPaHR0cDovL3Rlc3QvNzA3hg9o --dHRwOi8vdGVzdC83MDiGD2h0dHA6Ly90ZXN0LzcwOYYPaHR0cDovL3Rlc3QvNzEw --hg9odHRwOi8vdGVzdC83MTGGD2h0dHA6Ly90ZXN0LzcxMoYPaHR0cDovL3Rlc3Qv --NzEzhg9odHRwOi8vdGVzdC83MTSGD2h0dHA6Ly90ZXN0LzcxNYYPaHR0cDovL3Rl --c3QvNzE2hg9odHRwOi8vdGVzdC83MTeGD2h0dHA6Ly90ZXN0LzcxOIYPaHR0cDov --L3Rlc3QvNzE5hg9odHRwOi8vdGVzdC83MjCGD2h0dHA6Ly90ZXN0LzcyMYYPaHR0 --cDovL3Rlc3QvNzIyhg9odHRwOi8vdGVzdC83MjOGD2h0dHA6Ly90ZXN0LzcyNIYP --aHR0cDovL3Rlc3QvNzI1hg9odHRwOi8vdGVzdC83MjaGD2h0dHA6Ly90ZXN0Lzcy --N4YPaHR0cDovL3Rlc3QvNzI4hg9odHRwOi8vdGVzdC83MjmGD2h0dHA6Ly90ZXN0 --LzczMIYPaHR0cDovL3Rlc3QvNzMxhg9odHRwOi8vdGVzdC83MzKGD2h0dHA6Ly90 --ZXN0LzczM4YPaHR0cDovL3Rlc3QvNzM0hg9odHRwOi8vdGVzdC83MzWGD2h0dHA6 --Ly90ZXN0LzczNoYPaHR0cDovL3Rlc3QvNzM3hg9odHRwOi8vdGVzdC83MziGD2h0 --dHA6Ly90ZXN0LzczOYYPaHR0cDovL3Rlc3QvNzQwhg9odHRwOi8vdGVzdC83NDGG --D2h0dHA6Ly90ZXN0Lzc0MoYPaHR0cDovL3Rlc3QvNzQzhg9odHRwOi8vdGVzdC83 --NDSGD2h0dHA6Ly90ZXN0Lzc0NYYPaHR0cDovL3Rlc3QvNzQ2hg9odHRwOi8vdGVz --dC83NDeGD2h0dHA6Ly90ZXN0Lzc0OIYPaHR0cDovL3Rlc3QvNzQ5hg9odHRwOi8v --dGVzdC83NTCGD2h0dHA6Ly90ZXN0Lzc1MYYPaHR0cDovL3Rlc3QvNzUyhg9odHRw --Oi8vdGVzdC83NTOGD2h0dHA6Ly90ZXN0Lzc1NIYPaHR0cDovL3Rlc3QvNzU1hg9o --dHRwOi8vdGVzdC83NTaGD2h0dHA6Ly90ZXN0Lzc1N4YPaHR0cDovL3Rlc3QvNzU4 --hg9odHRwOi8vdGVzdC83NTmGD2h0dHA6Ly90ZXN0Lzc2MIYPaHR0cDovL3Rlc3Qv --NzYxhg9odHRwOi8vdGVzdC83NjKGD2h0dHA6Ly90ZXN0Lzc2M4YPaHR0cDovL3Rl --c3QvNzY0hg9odHRwOi8vdGVzdC83NjWGD2h0dHA6Ly90ZXN0Lzc2NoYPaHR0cDov --L3Rlc3QvNzY3hg9odHRwOi8vdGVzdC83NjiGD2h0dHA6Ly90ZXN0Lzc2OYYPaHR0 --cDovL3Rlc3QvNzcwhg9odHRwOi8vdGVzdC83NzGGD2h0dHA6Ly90ZXN0Lzc3MoYP --aHR0cDovL3Rlc3QvNzczhg9odHRwOi8vdGVzdC83NzSGD2h0dHA6Ly90ZXN0Lzc3 --NYYPaHR0cDovL3Rlc3QvNzc2hg9odHRwOi8vdGVzdC83NzeGD2h0dHA6Ly90ZXN0 --Lzc3OIYPaHR0cDovL3Rlc3QvNzc5hg9odHRwOi8vdGVzdC83ODCGD2h0dHA6Ly90 --ZXN0Lzc4MYYPaHR0cDovL3Rlc3QvNzgyhg9odHRwOi8vdGVzdC83ODOGD2h0dHA6 --Ly90ZXN0Lzc4NIYPaHR0cDovL3Rlc3QvNzg1hg9odHRwOi8vdGVzdC83ODaGD2h0 --dHA6Ly90ZXN0Lzc4N4YPaHR0cDovL3Rlc3QvNzg4hg9odHRwOi8vdGVzdC83ODmG --D2h0dHA6Ly90ZXN0Lzc5MIYPaHR0cDovL3Rlc3QvNzkxhg9odHRwOi8vdGVzdC83 --OTKGD2h0dHA6Ly90ZXN0Lzc5M4YPaHR0cDovL3Rlc3QvNzk0hg9odHRwOi8vdGVz --dC83OTWGD2h0dHA6Ly90ZXN0Lzc5NoYPaHR0cDovL3Rlc3QvNzk3hg9odHRwOi8v --dGVzdC83OTiGD2h0dHA6Ly90ZXN0Lzc5OYYPaHR0cDovL3Rlc3QvODAwhg9odHRw --Oi8vdGVzdC84MDGGD2h0dHA6Ly90ZXN0LzgwMoYPaHR0cDovL3Rlc3QvODAzhg9o --dHRwOi8vdGVzdC84MDSGD2h0dHA6Ly90ZXN0LzgwNYYPaHR0cDovL3Rlc3QvODA2 --hg9odHRwOi8vdGVzdC84MDeGD2h0dHA6Ly90ZXN0LzgwOIYPaHR0cDovL3Rlc3Qv --ODA5hg9odHRwOi8vdGVzdC84MTCGD2h0dHA6Ly90ZXN0LzgxMYYPaHR0cDovL3Rl --c3QvODEyhg9odHRwOi8vdGVzdC84MTOGD2h0dHA6Ly90ZXN0LzgxNIYPaHR0cDov --L3Rlc3QvODE1hg9odHRwOi8vdGVzdC84MTaGD2h0dHA6Ly90ZXN0LzgxN4YPaHR0 --cDovL3Rlc3QvODE4hg9odHRwOi8vdGVzdC84MTmGD2h0dHA6Ly90ZXN0LzgyMIYP --aHR0cDovL3Rlc3QvODIxhg9odHRwOi8vdGVzdC84MjKGD2h0dHA6Ly90ZXN0Lzgy --M4YPaHR0cDovL3Rlc3QvODI0hg9odHRwOi8vdGVzdC84MjWGD2h0dHA6Ly90ZXN0 --LzgyNoYPaHR0cDovL3Rlc3QvODI3hg9odHRwOi8vdGVzdC84MjiGD2h0dHA6Ly90 --ZXN0LzgyOYYPaHR0cDovL3Rlc3QvODMwhg9odHRwOi8vdGVzdC84MzGGD2h0dHA6 --Ly90ZXN0LzgzMoYPaHR0cDovL3Rlc3QvODMzhg9odHRwOi8vdGVzdC84MzSGD2h0 --dHA6Ly90ZXN0LzgzNYYPaHR0cDovL3Rlc3QvODM2hg9odHRwOi8vdGVzdC84MzeG --D2h0dHA6Ly90ZXN0LzgzOIYPaHR0cDovL3Rlc3QvODM5hg9odHRwOi8vdGVzdC84 --NDCGD2h0dHA6Ly90ZXN0Lzg0MYYPaHR0cDovL3Rlc3QvODQyhg9odHRwOi8vdGVz --dC84NDOGD2h0dHA6Ly90ZXN0Lzg0NIYPaHR0cDovL3Rlc3QvODQ1hg9odHRwOi8v --dGVzdC84NDaGD2h0dHA6Ly90ZXN0Lzg0N4YPaHR0cDovL3Rlc3QvODQ4hg9odHRw --Oi8vdGVzdC84NDmGD2h0dHA6Ly90ZXN0Lzg1MIYPaHR0cDovL3Rlc3QvODUxhg9o --dHRwOi8vdGVzdC84NTKGD2h0dHA6Ly90ZXN0Lzg1M4YPaHR0cDovL3Rlc3QvODU0 --hg9odHRwOi8vdGVzdC84NTWGD2h0dHA6Ly90ZXN0Lzg1NoYPaHR0cDovL3Rlc3Qv --ODU3hg9odHRwOi8vdGVzdC84NTiGD2h0dHA6Ly90ZXN0Lzg1OYYPaHR0cDovL3Rl --c3QvODYwhg9odHRwOi8vdGVzdC84NjGGD2h0dHA6Ly90ZXN0Lzg2MoYPaHR0cDov --L3Rlc3QvODYzhg9odHRwOi8vdGVzdC84NjSGD2h0dHA6Ly90ZXN0Lzg2NYYPaHR0 --cDovL3Rlc3QvODY2hg9odHRwOi8vdGVzdC84NjeGD2h0dHA6Ly90ZXN0Lzg2OIYP --aHR0cDovL3Rlc3QvODY5hg9odHRwOi8vdGVzdC84NzCGD2h0dHA6Ly90ZXN0Lzg3 --MYYPaHR0cDovL3Rlc3QvODcyhg9odHRwOi8vdGVzdC84NzOGD2h0dHA6Ly90ZXN0 --Lzg3NIYPaHR0cDovL3Rlc3QvODc1hg9odHRwOi8vdGVzdC84NzaGD2h0dHA6Ly90 --ZXN0Lzg3N4YPaHR0cDovL3Rlc3QvODc4hg9odHRwOi8vdGVzdC84NzmGD2h0dHA6 --Ly90ZXN0Lzg4MIYPaHR0cDovL3Rlc3QvODgxhg9odHRwOi8vdGVzdC84ODKGD2h0 --dHA6Ly90ZXN0Lzg4M4YPaHR0cDovL3Rlc3QvODg0hg9odHRwOi8vdGVzdC84ODWG --D2h0dHA6Ly90ZXN0Lzg4NoYPaHR0cDovL3Rlc3QvODg3hg9odHRwOi8vdGVzdC84 --ODiGD2h0dHA6Ly90ZXN0Lzg4OYYPaHR0cDovL3Rlc3QvODkwhg9odHRwOi8vdGVz --dC84OTGGD2h0dHA6Ly90ZXN0Lzg5MoYPaHR0cDovL3Rlc3QvODkzhg9odHRwOi8v --dGVzdC84OTSGD2h0dHA6Ly90ZXN0Lzg5NYYPaHR0cDovL3Rlc3QvODk2hg9odHRw --Oi8vdGVzdC84OTeGD2h0dHA6Ly90ZXN0Lzg5OIYPaHR0cDovL3Rlc3QvODk5hg9o --dHRwOi8vdGVzdC85MDCGD2h0dHA6Ly90ZXN0LzkwMYYPaHR0cDovL3Rlc3QvOTAy --hg9odHRwOi8vdGVzdC85MDOGD2h0dHA6Ly90ZXN0LzkwNIYPaHR0cDovL3Rlc3Qv --OTA1hg9odHRwOi8vdGVzdC85MDaGD2h0dHA6Ly90ZXN0LzkwN4YPaHR0cDovL3Rl --c3QvOTA4hg9odHRwOi8vdGVzdC85MDmGD2h0dHA6Ly90ZXN0LzkxMIYPaHR0cDov --L3Rlc3QvOTExhg9odHRwOi8vdGVzdC85MTKGD2h0dHA6Ly90ZXN0LzkxM4YPaHR0 --cDovL3Rlc3QvOTE0hg9odHRwOi8vdGVzdC85MTWGD2h0dHA6Ly90ZXN0LzkxNoYP --aHR0cDovL3Rlc3QvOTE3hg9odHRwOi8vdGVzdC85MTiGD2h0dHA6Ly90ZXN0Lzkx --OYYPaHR0cDovL3Rlc3QvOTIwhg9odHRwOi8vdGVzdC85MjGGD2h0dHA6Ly90ZXN0 --LzkyMoYPaHR0cDovL3Rlc3QvOTIzhg9odHRwOi8vdGVzdC85MjSGD2h0dHA6Ly90 --ZXN0LzkyNYYPaHR0cDovL3Rlc3QvOTI2hg9odHRwOi8vdGVzdC85MjeGD2h0dHA6 --Ly90ZXN0LzkyOIYPaHR0cDovL3Rlc3QvOTI5hg9odHRwOi8vdGVzdC85MzCGD2h0 --dHA6Ly90ZXN0LzkzMYYPaHR0cDovL3Rlc3QvOTMyhg9odHRwOi8vdGVzdC85MzOG --D2h0dHA6Ly90ZXN0LzkzNIYPaHR0cDovL3Rlc3QvOTM1hg9odHRwOi8vdGVzdC85 --MzaGD2h0dHA6Ly90ZXN0LzkzN4YPaHR0cDovL3Rlc3QvOTM4hg9odHRwOi8vdGVz --dC85MzmGD2h0dHA6Ly90ZXN0Lzk0MIYPaHR0cDovL3Rlc3QvOTQxhg9odHRwOi8v --dGVzdC85NDKGD2h0dHA6Ly90ZXN0Lzk0M4YPaHR0cDovL3Rlc3QvOTQ0hg9odHRw --Oi8vdGVzdC85NDWGD2h0dHA6Ly90ZXN0Lzk0NoYPaHR0cDovL3Rlc3QvOTQ3hg9o --dHRwOi8vdGVzdC85NDiGD2h0dHA6Ly90ZXN0Lzk0OYYPaHR0cDovL3Rlc3QvOTUw --hg9odHRwOi8vdGVzdC85NTGGD2h0dHA6Ly90ZXN0Lzk1MoYPaHR0cDovL3Rlc3Qv --OTUzhg9odHRwOi8vdGVzdC85NTSGD2h0dHA6Ly90ZXN0Lzk1NYYPaHR0cDovL3Rl --c3QvOTU2hg9odHRwOi8vdGVzdC85NTeGD2h0dHA6Ly90ZXN0Lzk1OIYPaHR0cDov --L3Rlc3QvOTU5hg9odHRwOi8vdGVzdC85NjCGD2h0dHA6Ly90ZXN0Lzk2MYYPaHR0 --cDovL3Rlc3QvOTYyhg9odHRwOi8vdGVzdC85NjOGD2h0dHA6Ly90ZXN0Lzk2NIYP --aHR0cDovL3Rlc3QvOTY1hg9odHRwOi8vdGVzdC85NjaGD2h0dHA6Ly90ZXN0Lzk2 --N4YPaHR0cDovL3Rlc3QvOTY4hg9odHRwOi8vdGVzdC85NjmGD2h0dHA6Ly90ZXN0 --Lzk3MIYPaHR0cDovL3Rlc3QvOTcxhg9odHRwOi8vdGVzdC85NzKGD2h0dHA6Ly90 --ZXN0Lzk3M4YPaHR0cDovL3Rlc3QvOTc0hg9odHRwOi8vdGVzdC85NzWGD2h0dHA6 --Ly90ZXN0Lzk3NoYPaHR0cDovL3Rlc3QvOTc3hg9odHRwOi8vdGVzdC85NziGD2h0 --dHA6Ly90ZXN0Lzk3OYYPaHR0cDovL3Rlc3QvOTgwhg9odHRwOi8vdGVzdC85ODGG --D2h0dHA6Ly90ZXN0Lzk4MoYPaHR0cDovL3Rlc3QvOTgzhg9odHRwOi8vdGVzdC85 --ODSGD2h0dHA6Ly90ZXN0Lzk4NYYPaHR0cDovL3Rlc3QvOTg2hg9odHRwOi8vdGVz --dC85ODeGD2h0dHA6Ly90ZXN0Lzk4OIYPaHR0cDovL3Rlc3QvOTg5hg9odHRwOi8v --dGVzdC85OTCGD2h0dHA6Ly90ZXN0Lzk5MYYPaHR0cDovL3Rlc3QvOTkyhg9odHRw --Oi8vdGVzdC85OTOGD2h0dHA6Ly90ZXN0Lzk5NIYPaHR0cDovL3Rlc3QvOTk1hg9o --dHRwOi8vdGVzdC85OTaGD2h0dHA6Ly90ZXN0Lzk5N4YPaHR0cDovL3Rlc3QvOTk4 --hg9odHRwOi8vdGVzdC85OTmGEGh0dHA6Ly90ZXN0LzEwMDCGEGh0dHA6Ly90ZXN0 --LzEwMDGGEGh0dHA6Ly90ZXN0LzEwMDKGEGh0dHA6Ly90ZXN0LzEwMDOGEGh0dHA6 --Ly90ZXN0LzEwMDSGEGh0dHA6Ly90ZXN0LzEwMDWGEGh0dHA6Ly90ZXN0LzEwMDaG --EGh0dHA6Ly90ZXN0LzEwMDeGEGh0dHA6Ly90ZXN0LzEwMDiGEGh0dHA6Ly90ZXN0 --LzEwMDmGEGh0dHA6Ly90ZXN0LzEwMTCGEGh0dHA6Ly90ZXN0LzEwMTGGEGh0dHA6 --Ly90ZXN0LzEwMTKGEGh0dHA6Ly90ZXN0LzEwMTOGEGh0dHA6Ly90ZXN0LzEwMTSG --EGh0dHA6Ly90ZXN0LzEwMTWGEGh0dHA6Ly90ZXN0LzEwMTaGEGh0dHA6Ly90ZXN0 --LzEwMTeGEGh0dHA6Ly90ZXN0LzEwMTiGEGh0dHA6Ly90ZXN0LzEwMTmGEGh0dHA6 --Ly90ZXN0LzEwMjCGEGh0dHA6Ly90ZXN0LzEwMjGGEGh0dHA6Ly90ZXN0LzEwMjKG --EGh0dHA6Ly90ZXN0LzEwMjOGEGh0dHA6Ly90ZXN0LzEwMjQwDQYJKoZIhvcNAQEL --BQADggEBAB6Q1kqPJAaK3kFPOzkcXYEkSC9mnmz+wLPPo4qgSgLi0wR+h0KHMV51 --Jbl8k6wOPacOCe8PbGc9lv5Ne4bNlF4cdNS5/tp6Bz4UrOaOTN5HvJr9jI0zMSNy --82u5RdSbDofZLzid+2f0EFOmWEejw2Y4kJbnI19eQQuFQoApG4PTAOA30WY6Hlug --2ZGxlnAtn2yChJ21IZC5ZCtwh/PdBp9xIulmNTIEI8UIm/PmgmVt9AwZdI3rVptB --d1YeUxPeVxXlduLe1FF8JEkzbV3HULxVGDU+tT8ORlgsVX36/5H66pSR5r+vBi1R --reUqPQbsfheM9iyrBe+R8c0hywEjgOA= -+Ny50ZXN0ggl0MzM4LnRlc3SCCXQzMzkudGVzdIIJdDM0MC50ZXN0hwQKAAAAhwQK -+AAABhwQKAAAChwQKAAADhwQKAAAEhwQKAAAFhwQKAAAGhwQKAAAHhwQKAAAIhwQK -+AAAJhwQKAAAKhwQKAAALhwQKAAAMhwQKAAANhwQKAAAOhwQKAAAPhwQKAAAQhwQK -+AAARhwQKAAAShwQKAAAThwQKAAAUhwQKAAAVhwQKAAAWhwQKAAAXhwQKAAAYhwQK -+AAAZhwQKAAAahwQKAAAbhwQKAAAchwQKAAAdhwQKAAAehwQKAAAfhwQKAAAghwQK -+AAAhhwQKAAAihwQKAAAjhwQKAAAkhwQKAAAlhwQKAAAmhwQKAAAnhwQKAAAohwQK -+AAAphwQKAAAqhwQKAAArhwQKAAAshwQKAAAthwQKAAAuhwQKAAAvhwQKAAAwhwQK -+AAAxhwQKAAAyhwQKAAAzhwQKAAA0hwQKAAA1hwQKAAA2hwQKAAA3hwQKAAA4hwQK -+AAA5hwQKAAA6hwQKAAA7hwQKAAA8hwQKAAA9hwQKAAA+hwQKAAA/hwQKAABAhwQK -+AABBhwQKAABChwQKAABDhwQKAABEhwQKAABFhwQKAABGhwQKAABHhwQKAABIhwQK -+AABJhwQKAABKhwQKAABLhwQKAABMhwQKAABNhwQKAABOhwQKAABPhwQKAABQhwQK -+AABRhwQKAABShwQKAABThwQKAABUhwQKAABVhwQKAABWhwQKAABXhwQKAABYhwQK -+AABZhwQKAABahwQKAABbhwQKAABchwQKAABdhwQKAABehwQKAABfhwQKAABghwQK -+AABhhwQKAABihwQKAABjhwQKAABkhwQKAABlhwQKAABmhwQKAABnhwQKAABohwQK -+AABphwQKAABqhwQKAABrhwQKAABshwQKAABthwQKAABuhwQKAABvhwQKAABwhwQK -+AABxhwQKAAByhwQKAABzhwQKAAB0hwQKAAB1hwQKAAB2hwQKAAB3hwQKAAB4hwQK -+AAB5hwQKAAB6hwQKAAB7hwQKAAB8hwQKAAB9hwQKAAB+hwQKAAB/hwQKAACAhwQK -+AACBhwQKAACChwQKAACDhwQKAACEhwQKAACFhwQKAACGhwQKAACHhwQKAACIhwQK -+AACJhwQKAACKhwQKAACLhwQKAACMhwQKAACNhwQKAACOhwQKAACPhwQKAACQhwQK -+AACRhwQKAACShwQKAACThwQKAACUhwQKAACVhwQKAACWhwQKAACXhwQKAACYhwQK -+AACZhwQKAACahwQKAACbhwQKAACchwQKAACdhwQKAACehwQKAACfhwQKAACghwQK -+AAChhwQKAACihwQKAACjhwQKAACkhwQKAAClhwQKAACmhwQKAACnhwQKAACohwQK -+AACphwQKAACqhwQKAACrhwQKAACshwQKAACthwQKAACuhwQKAACvhwQKAACwhwQK -+AACxhwQKAACyhwQKAACzhwQKAAC0hwQKAAC1hwQKAAC2hwQKAAC3hwQKAAC4hwQK -+AAC5hwQKAAC6hwQKAAC7hwQKAAC8hwQKAAC9hwQKAAC+hwQKAAC/hwQKAADAhwQK -+AADBhwQKAADChwQKAADDhwQKAADEhwQKAADFhwQKAADGhwQKAADHhwQKAADIhwQK -+AADJhwQKAADKhwQKAADLhwQKAADMhwQKAADNhwQKAADOhwQKAADPhwQKAADQhwQK -+AADRhwQKAADShwQKAADThwQKAADUhwQKAADVhwQKAADWhwQKAADXhwQKAADYhwQK -+AADZhwQKAADahwQKAADbhwQKAADchwQKAADdhwQKAADehwQKAADfhwQKAADghwQK -+AADhhwQKAADihwQKAADjhwQKAADkhwQKAADlhwQKAADmhwQKAADnhwQKAADohwQK -+AADphwQKAADqhwQKAADrhwQKAADshwQKAADthwQKAADuhwQKAADvhwQKAADwhwQK -+AADxhwQKAADyhwQKAADzhwQKAAD0hwQKAAD1hwQKAAD2hwQKAAD3hwQKAAD4hwQK -+AAD5hwQKAAD6hwQKAAD7hwQKAAD8hwQKAAD9hwQKAAD+hwQKAAD/hwQKAAEAhwQK -+AAEBhwQKAAEChwQKAAEDhwQKAAEEhwQKAAEFhwQKAAEGhwQKAAEHhwQKAAEIhwQK -+AAEJhwQKAAEKhwQKAAELhwQKAAEMhwQKAAENhwQKAAEOhwQKAAEPhwQKAAEQhwQK -+AAERhwQKAAEShwQKAAEThwQKAAEUhwQKAAEVhwQKAAEWhwQKAAEXhwQKAAEYhwQK -+AAEZhwQKAAEahwQKAAEbhwQKAAEchwQKAAEdhwQKAAEehwQKAAEfhwQKAAEghwQK -+AAEhhwQKAAEihwQKAAEjhwQKAAEkhwQKAAElhwQKAAEmhwQKAAEnhwQKAAEohwQK -+AAEphwQKAAEqhwQKAAErhwQKAAEshwQKAAEthwQKAAEuhwQKAAEvhwQKAAEwhwQK -+AAExhwQKAAEyhwQKAAEzhwQKAAE0hwQKAAE1hwQKAAE2hwQKAAE3hwQKAAE4hwQK -+AAE5hwQKAAE6hwQKAAE7hwQKAAE8hwQKAAE9hwQKAAE+hwQKAAE/hwQKAAFAhwQK -+AAFBhwQKAAFChwQKAAFDhwQKAAFEhwQKAAFFhwQKAAFGhwQKAAFHhwQKAAFIhwQK -+AAFJhwQKAAFKhwQKAAFLhwQKAAFMhwQKAAFNhwQKAAFOhwQKAAFPhwQKAAFQhwQK -+AAFRhwQKAAFShwQKAAFThwQKAAFUpA8wDTELMAkGA1UEAwwCdDCkDzANMQswCQYD -+VQQDDAJ0MaQPMA0xCzAJBgNVBAMMAnQypA8wDTELMAkGA1UEAwwCdDOkDzANMQsw -+CQYDVQQDDAJ0NKQPMA0xCzAJBgNVBAMMAnQ1pA8wDTELMAkGA1UEAwwCdDakDzAN -+MQswCQYDVQQDDAJ0N6QPMA0xCzAJBgNVBAMMAnQ4pA8wDTELMAkGA1UEAwwCdDmk -+EDAOMQwwCgYDVQQDDAN0MTCkEDAOMQwwCgYDVQQDDAN0MTGkEDAOMQwwCgYDVQQD -+DAN0MTKkEDAOMQwwCgYDVQQDDAN0MTOkEDAOMQwwCgYDVQQDDAN0MTSkEDAOMQww -+CgYDVQQDDAN0MTWkEDAOMQwwCgYDVQQDDAN0MTakEDAOMQwwCgYDVQQDDAN0MTek -+EDAOMQwwCgYDVQQDDAN0MTikEDAOMQwwCgYDVQQDDAN0MTmkEDAOMQwwCgYDVQQD -+DAN0MjCkEDAOMQwwCgYDVQQDDAN0MjGkEDAOMQwwCgYDVQQDDAN0MjKkEDAOMQww -+CgYDVQQDDAN0MjOkEDAOMQwwCgYDVQQDDAN0MjSkEDAOMQwwCgYDVQQDDAN0MjWk -+EDAOMQwwCgYDVQQDDAN0MjakEDAOMQwwCgYDVQQDDAN0MjekEDAOMQwwCgYDVQQD -+DAN0MjikEDAOMQwwCgYDVQQDDAN0MjmkEDAOMQwwCgYDVQQDDAN0MzCkEDAOMQww -+CgYDVQQDDAN0MzGkEDAOMQwwCgYDVQQDDAN0MzKkEDAOMQwwCgYDVQQDDAN0MzOk -+EDAOMQwwCgYDVQQDDAN0MzSkEDAOMQwwCgYDVQQDDAN0MzWkEDAOMQwwCgYDVQQD -+DAN0MzakEDAOMQwwCgYDVQQDDAN0MzekEDAOMQwwCgYDVQQDDAN0MzikEDAOMQww -+CgYDVQQDDAN0MzmkEDAOMQwwCgYDVQQDDAN0NDCkEDAOMQwwCgYDVQQDDAN0NDGk -+EDAOMQwwCgYDVQQDDAN0NDKkEDAOMQwwCgYDVQQDDAN0NDOkEDAOMQwwCgYDVQQD -+DAN0NDSkEDAOMQwwCgYDVQQDDAN0NDWkEDAOMQwwCgYDVQQDDAN0NDakEDAOMQww -+CgYDVQQDDAN0NDekEDAOMQwwCgYDVQQDDAN0NDikEDAOMQwwCgYDVQQDDAN0NDmk -+EDAOMQwwCgYDVQQDDAN0NTCkEDAOMQwwCgYDVQQDDAN0NTGkEDAOMQwwCgYDVQQD -+DAN0NTKkEDAOMQwwCgYDVQQDDAN0NTOkEDAOMQwwCgYDVQQDDAN0NTSkEDAOMQww -+CgYDVQQDDAN0NTWkEDAOMQwwCgYDVQQDDAN0NTakEDAOMQwwCgYDVQQDDAN0NTek -+EDAOMQwwCgYDVQQDDAN0NTikEDAOMQwwCgYDVQQDDAN0NTmkEDAOMQwwCgYDVQQD -+DAN0NjCkEDAOMQwwCgYDVQQDDAN0NjGkEDAOMQwwCgYDVQQDDAN0NjKkEDAOMQww -+CgYDVQQDDAN0NjOkEDAOMQwwCgYDVQQDDAN0NjSkEDAOMQwwCgYDVQQDDAN0NjWk -+EDAOMQwwCgYDVQQDDAN0NjakEDAOMQwwCgYDVQQDDAN0NjekEDAOMQwwCgYDVQQD -+DAN0NjikEDAOMQwwCgYDVQQDDAN0NjmkEDAOMQwwCgYDVQQDDAN0NzCkEDAOMQww -+CgYDVQQDDAN0NzGkEDAOMQwwCgYDVQQDDAN0NzKkEDAOMQwwCgYDVQQDDAN0NzOk -+EDAOMQwwCgYDVQQDDAN0NzSkEDAOMQwwCgYDVQQDDAN0NzWkEDAOMQwwCgYDVQQD -+DAN0NzakEDAOMQwwCgYDVQQDDAN0NzekEDAOMQwwCgYDVQQDDAN0NzikEDAOMQww -+CgYDVQQDDAN0NzmkEDAOMQwwCgYDVQQDDAN0ODCkEDAOMQwwCgYDVQQDDAN0ODGk -+EDAOMQwwCgYDVQQDDAN0ODKkEDAOMQwwCgYDVQQDDAN0ODOkEDAOMQwwCgYDVQQD -+DAN0ODSkEDAOMQwwCgYDVQQDDAN0ODWkEDAOMQwwCgYDVQQDDAN0ODakEDAOMQww -+CgYDVQQDDAN0ODekEDAOMQwwCgYDVQQDDAN0ODikEDAOMQwwCgYDVQQDDAN0ODmk -+EDAOMQwwCgYDVQQDDAN0OTCkEDAOMQwwCgYDVQQDDAN0OTGkEDAOMQwwCgYDVQQD -+DAN0OTKkEDAOMQwwCgYDVQQDDAN0OTOkEDAOMQwwCgYDVQQDDAN0OTSkEDAOMQww -+CgYDVQQDDAN0OTWkEDAOMQwwCgYDVQQDDAN0OTakEDAOMQwwCgYDVQQDDAN0OTek -+EDAOMQwwCgYDVQQDDAN0OTikEDAOMQwwCgYDVQQDDAN0OTmkETAPMQ0wCwYDVQQD -+DAR0MTAwpBEwDzENMAsGA1UEAwwEdDEwMaQRMA8xDTALBgNVBAMMBHQxMDKkETAP -+MQ0wCwYDVQQDDAR0MTAzpBEwDzENMAsGA1UEAwwEdDEwNKQRMA8xDTALBgNVBAMM -+BHQxMDWkETAPMQ0wCwYDVQQDDAR0MTA2pBEwDzENMAsGA1UEAwwEdDEwN6QRMA8x -+DTALBgNVBAMMBHQxMDikETAPMQ0wCwYDVQQDDAR0MTA5pBEwDzENMAsGA1UEAwwE -+dDExMKQRMA8xDTALBgNVBAMMBHQxMTGkETAPMQ0wCwYDVQQDDAR0MTEypBEwDzEN -+MAsGA1UEAwwEdDExM6QRMA8xDTALBgNVBAMMBHQxMTSkETAPMQ0wCwYDVQQDDAR0 -+MTE1pBEwDzENMAsGA1UEAwwEdDExNqQRMA8xDTALBgNVBAMMBHQxMTekETAPMQ0w -+CwYDVQQDDAR0MTE4pBEwDzENMAsGA1UEAwwEdDExOaQRMA8xDTALBgNVBAMMBHQx -+MjCkETAPMQ0wCwYDVQQDDAR0MTIxpBEwDzENMAsGA1UEAwwEdDEyMqQRMA8xDTAL -+BgNVBAMMBHQxMjOkETAPMQ0wCwYDVQQDDAR0MTI0pBEwDzENMAsGA1UEAwwEdDEy -+NaQRMA8xDTALBgNVBAMMBHQxMjakETAPMQ0wCwYDVQQDDAR0MTI3pBEwDzENMAsG -+A1UEAwwEdDEyOKQRMA8xDTALBgNVBAMMBHQxMjmkETAPMQ0wCwYDVQQDDAR0MTMw -+pBEwDzENMAsGA1UEAwwEdDEzMaQRMA8xDTALBgNVBAMMBHQxMzKkETAPMQ0wCwYD -+VQQDDAR0MTMzpBEwDzENMAsGA1UEAwwEdDEzNKQRMA8xDTALBgNVBAMMBHQxMzWk -+ETAPMQ0wCwYDVQQDDAR0MTM2pBEwDzENMAsGA1UEAwwEdDEzN6QRMA8xDTALBgNV -+BAMMBHQxMzikETAPMQ0wCwYDVQQDDAR0MTM5pBEwDzENMAsGA1UEAwwEdDE0MKQR -+MA8xDTALBgNVBAMMBHQxNDGkETAPMQ0wCwYDVQQDDAR0MTQypBEwDzENMAsGA1UE -+AwwEdDE0M6QRMA8xDTALBgNVBAMMBHQxNDSkETAPMQ0wCwYDVQQDDAR0MTQ1pBEw -+DzENMAsGA1UEAwwEdDE0NqQRMA8xDTALBgNVBAMMBHQxNDekETAPMQ0wCwYDVQQD -+DAR0MTQ4pBEwDzENMAsGA1UEAwwEdDE0OaQRMA8xDTALBgNVBAMMBHQxNTCkETAP -+MQ0wCwYDVQQDDAR0MTUxpBEwDzENMAsGA1UEAwwEdDE1MqQRMA8xDTALBgNVBAMM -+BHQxNTOkETAPMQ0wCwYDVQQDDAR0MTU0pBEwDzENMAsGA1UEAwwEdDE1NaQRMA8x -+DTALBgNVBAMMBHQxNTakETAPMQ0wCwYDVQQDDAR0MTU3pBEwDzENMAsGA1UEAwwE -+dDE1OKQRMA8xDTALBgNVBAMMBHQxNTmkETAPMQ0wCwYDVQQDDAR0MTYwpBEwDzEN -+MAsGA1UEAwwEdDE2MaQRMA8xDTALBgNVBAMMBHQxNjKkETAPMQ0wCwYDVQQDDAR0 -+MTYzpBEwDzENMAsGA1UEAwwEdDE2NKQRMA8xDTALBgNVBAMMBHQxNjWkETAPMQ0w -+CwYDVQQDDAR0MTY2pBEwDzENMAsGA1UEAwwEdDE2N6QRMA8xDTALBgNVBAMMBHQx -+NjikETAPMQ0wCwYDVQQDDAR0MTY5pBEwDzENMAsGA1UEAwwEdDE3MKQRMA8xDTAL -+BgNVBAMMBHQxNzGkETAPMQ0wCwYDVQQDDAR0MTcypBEwDzENMAsGA1UEAwwEdDE3 -+M6QRMA8xDTALBgNVBAMMBHQxNzSkETAPMQ0wCwYDVQQDDAR0MTc1pBEwDzENMAsG -+A1UEAwwEdDE3NqQRMA8xDTALBgNVBAMMBHQxNzekETAPMQ0wCwYDVQQDDAR0MTc4 -+pBEwDzENMAsGA1UEAwwEdDE3OaQRMA8xDTALBgNVBAMMBHQxODCkETAPMQ0wCwYD -+VQQDDAR0MTgxpBEwDzENMAsGA1UEAwwEdDE4MqQRMA8xDTALBgNVBAMMBHQxODOk -+ETAPMQ0wCwYDVQQDDAR0MTg0pBEwDzENMAsGA1UEAwwEdDE4NaQRMA8xDTALBgNV -+BAMMBHQxODakETAPMQ0wCwYDVQQDDAR0MTg3pBEwDzENMAsGA1UEAwwEdDE4OKQR -+MA8xDTALBgNVBAMMBHQxODmkETAPMQ0wCwYDVQQDDAR0MTkwpBEwDzENMAsGA1UE -+AwwEdDE5MaQRMA8xDTALBgNVBAMMBHQxOTKkETAPMQ0wCwYDVQQDDAR0MTkzpBEw -+DzENMAsGA1UEAwwEdDE5NKQRMA8xDTALBgNVBAMMBHQxOTWkETAPMQ0wCwYDVQQD -+DAR0MTk2pBEwDzENMAsGA1UEAwwEdDE5N6QRMA8xDTALBgNVBAMMBHQxOTikETAP -+MQ0wCwYDVQQDDAR0MTk5pBEwDzENMAsGA1UEAwwEdDIwMKQRMA8xDTALBgNVBAMM -+BHQyMDGkETAPMQ0wCwYDVQQDDAR0MjAypBEwDzENMAsGA1UEAwwEdDIwM6QRMA8x -+DTALBgNVBAMMBHQyMDSkETAPMQ0wCwYDVQQDDAR0MjA1pBEwDzENMAsGA1UEAwwE -+dDIwNqQRMA8xDTALBgNVBAMMBHQyMDekETAPMQ0wCwYDVQQDDAR0MjA4pBEwDzEN -+MAsGA1UEAwwEdDIwOaQRMA8xDTALBgNVBAMMBHQyMTCkETAPMQ0wCwYDVQQDDAR0 -+MjExpBEwDzENMAsGA1UEAwwEdDIxMqQRMA8xDTALBgNVBAMMBHQyMTOkETAPMQ0w -+CwYDVQQDDAR0MjE0pBEwDzENMAsGA1UEAwwEdDIxNaQRMA8xDTALBgNVBAMMBHQy -+MTakETAPMQ0wCwYDVQQDDAR0MjE3pBEwDzENMAsGA1UEAwwEdDIxOKQRMA8xDTAL -+BgNVBAMMBHQyMTmkETAPMQ0wCwYDVQQDDAR0MjIwpBEwDzENMAsGA1UEAwwEdDIy -+MaQRMA8xDTALBgNVBAMMBHQyMjKkETAPMQ0wCwYDVQQDDAR0MjIzpBEwDzENMAsG -+A1UEAwwEdDIyNKQRMA8xDTALBgNVBAMMBHQyMjWkETAPMQ0wCwYDVQQDDAR0MjI2 -+pBEwDzENMAsGA1UEAwwEdDIyN6QRMA8xDTALBgNVBAMMBHQyMjikETAPMQ0wCwYD -+VQQDDAR0MjI5pBEwDzENMAsGA1UEAwwEdDIzMKQRMA8xDTALBgNVBAMMBHQyMzGk -+ETAPMQ0wCwYDVQQDDAR0MjMypBEwDzENMAsGA1UEAwwEdDIzM6QRMA8xDTALBgNV -+BAMMBHQyMzSkETAPMQ0wCwYDVQQDDAR0MjM1pBEwDzENMAsGA1UEAwwEdDIzNqQR -+MA8xDTALBgNVBAMMBHQyMzekETAPMQ0wCwYDVQQDDAR0MjM4pBEwDzENMAsGA1UE -+AwwEdDIzOaQRMA8xDTALBgNVBAMMBHQyNDCkETAPMQ0wCwYDVQQDDAR0MjQxpBEw -+DzENMAsGA1UEAwwEdDI0MqQRMA8xDTALBgNVBAMMBHQyNDOkETAPMQ0wCwYDVQQD -+DAR0MjQ0pBEwDzENMAsGA1UEAwwEdDI0NaQRMA8xDTALBgNVBAMMBHQyNDakETAP -+MQ0wCwYDVQQDDAR0MjQ3pBEwDzENMAsGA1UEAwwEdDI0OKQRMA8xDTALBgNVBAMM -+BHQyNDmkETAPMQ0wCwYDVQQDDAR0MjUwpBEwDzENMAsGA1UEAwwEdDI1MaQRMA8x -+DTALBgNVBAMMBHQyNTKkETAPMQ0wCwYDVQQDDAR0MjUzpBEwDzENMAsGA1UEAwwE -+dDI1NKQRMA8xDTALBgNVBAMMBHQyNTWkETAPMQ0wCwYDVQQDDAR0MjU2pBEwDzEN -+MAsGA1UEAwwEdDI1N6QRMA8xDTALBgNVBAMMBHQyNTikETAPMQ0wCwYDVQQDDAR0 -+MjU5pBEwDzENMAsGA1UEAwwEdDI2MKQRMA8xDTALBgNVBAMMBHQyNjGkETAPMQ0w -+CwYDVQQDDAR0MjYypBEwDzENMAsGA1UEAwwEdDI2M6QRMA8xDTALBgNVBAMMBHQy -+NjSkETAPMQ0wCwYDVQQDDAR0MjY1pBEwDzENMAsGA1UEAwwEdDI2NqQRMA8xDTAL -+BgNVBAMMBHQyNjekETAPMQ0wCwYDVQQDDAR0MjY4pBEwDzENMAsGA1UEAwwEdDI2 -+OaQRMA8xDTALBgNVBAMMBHQyNzCkETAPMQ0wCwYDVQQDDAR0MjcxpBEwDzENMAsG -+A1UEAwwEdDI3MqQRMA8xDTALBgNVBAMMBHQyNzOkETAPMQ0wCwYDVQQDDAR0Mjc0 -+pBEwDzENMAsGA1UEAwwEdDI3NaQRMA8xDTALBgNVBAMMBHQyNzakETAPMQ0wCwYD -+VQQDDAR0Mjc3pBEwDzENMAsGA1UEAwwEdDI3OKQRMA8xDTALBgNVBAMMBHQyNzmk -+ETAPMQ0wCwYDVQQDDAR0MjgwpBEwDzENMAsGA1UEAwwEdDI4MaQRMA8xDTALBgNV -+BAMMBHQyODKkETAPMQ0wCwYDVQQDDAR0MjgzpBEwDzENMAsGA1UEAwwEdDI4NKQR -+MA8xDTALBgNVBAMMBHQyODWkETAPMQ0wCwYDVQQDDAR0Mjg2pBEwDzENMAsGA1UE -+AwwEdDI4N6QRMA8xDTALBgNVBAMMBHQyODikETAPMQ0wCwYDVQQDDAR0Mjg5pBEw -+DzENMAsGA1UEAwwEdDI5MKQRMA8xDTALBgNVBAMMBHQyOTGkETAPMQ0wCwYDVQQD -+DAR0MjkypBEwDzENMAsGA1UEAwwEdDI5M6QRMA8xDTALBgNVBAMMBHQyOTSkETAP -+MQ0wCwYDVQQDDAR0Mjk1pBEwDzENMAsGA1UEAwwEdDI5NqQRMA8xDTALBgNVBAMM -+BHQyOTekETAPMQ0wCwYDVQQDDAR0Mjk4pBEwDzENMAsGA1UEAwwEdDI5OaQRMA8x -+DTALBgNVBAMMBHQzMDCkETAPMQ0wCwYDVQQDDAR0MzAxpBEwDzENMAsGA1UEAwwE -+dDMwMqQRMA8xDTALBgNVBAMMBHQzMDOkETAPMQ0wCwYDVQQDDAR0MzA0pBEwDzEN -+MAsGA1UEAwwEdDMwNaQRMA8xDTALBgNVBAMMBHQzMDakETAPMQ0wCwYDVQQDDAR0 -+MzA3pBEwDzENMAsGA1UEAwwEdDMwOKQRMA8xDTALBgNVBAMMBHQzMDmkETAPMQ0w -+CwYDVQQDDAR0MzEwpBEwDzENMAsGA1UEAwwEdDMxMaQRMA8xDTALBgNVBAMMBHQz -+MTKkETAPMQ0wCwYDVQQDDAR0MzEzpBEwDzENMAsGA1UEAwwEdDMxNKQRMA8xDTAL -+BgNVBAMMBHQzMTWkETAPMQ0wCwYDVQQDDAR0MzE2pBEwDzENMAsGA1UEAwwEdDMx -+N6QRMA8xDTALBgNVBAMMBHQzMTikETAPMQ0wCwYDVQQDDAR0MzE5pBEwDzENMAsG -+A1UEAwwEdDMyMKQRMA8xDTALBgNVBAMMBHQzMjGkETAPMQ0wCwYDVQQDDAR0MzIy -+pBEwDzENMAsGA1UEAwwEdDMyM6QRMA8xDTALBgNVBAMMBHQzMjSkETAPMQ0wCwYD -+VQQDDAR0MzI1pBEwDzENMAsGA1UEAwwEdDMyNqQRMA8xDTALBgNVBAMMBHQzMjek -+ETAPMQ0wCwYDVQQDDAR0MzI4pBEwDzENMAsGA1UEAwwEdDMyOaQRMA8xDTALBgNV -+BAMMBHQzMzCkETAPMQ0wCwYDVQQDDAR0MzMxpBEwDzENMAsGA1UEAwwEdDMzMqQR -+MA8xDTALBgNVBAMMBHQzMzOkETAPMQ0wCwYDVQQDDAR0MzM0pBEwDzENMAsGA1UE -+AwwEdDMzNaQRMA8xDTALBgNVBAMMBHQzMzakETAPMQ0wCwYDVQQDDAR0MzM3pBEw -+DzENMAsGA1UEAwwEdDMzOKQRMA8xDTALBgNVBAMMBHQzMzmkETAPMQ0wCwYDVQQD -+DAR0MzQwpBEwDzENMAsGA1UEAwwEdDM0MYYNaHR0cDovL3Rlc3QvMIYNaHR0cDov -+L3Rlc3QvMYYNaHR0cDovL3Rlc3QvMoYNaHR0cDovL3Rlc3QvM4YNaHR0cDovL3Rl -+c3QvNIYNaHR0cDovL3Rlc3QvNYYNaHR0cDovL3Rlc3QvNoYNaHR0cDovL3Rlc3Qv -+N4YNaHR0cDovL3Rlc3QvOIYNaHR0cDovL3Rlc3QvOYYOaHR0cDovL3Rlc3QvMTCG -+Dmh0dHA6Ly90ZXN0LzExhg5odHRwOi8vdGVzdC8xMoYOaHR0cDovL3Rlc3QvMTOG -+Dmh0dHA6Ly90ZXN0LzE0hg5odHRwOi8vdGVzdC8xNYYOaHR0cDovL3Rlc3QvMTaG -+Dmh0dHA6Ly90ZXN0LzE3hg5odHRwOi8vdGVzdC8xOIYOaHR0cDovL3Rlc3QvMTmG -+Dmh0dHA6Ly90ZXN0LzIwhg5odHRwOi8vdGVzdC8yMYYOaHR0cDovL3Rlc3QvMjKG -+Dmh0dHA6Ly90ZXN0LzIzhg5odHRwOi8vdGVzdC8yNIYOaHR0cDovL3Rlc3QvMjWG -+Dmh0dHA6Ly90ZXN0LzI2hg5odHRwOi8vdGVzdC8yN4YOaHR0cDovL3Rlc3QvMjiG -+Dmh0dHA6Ly90ZXN0LzI5hg5odHRwOi8vdGVzdC8zMIYOaHR0cDovL3Rlc3QvMzGG -+Dmh0dHA6Ly90ZXN0LzMyhg5odHRwOi8vdGVzdC8zM4YOaHR0cDovL3Rlc3QvMzSG -+Dmh0dHA6Ly90ZXN0LzM1hg5odHRwOi8vdGVzdC8zNoYOaHR0cDovL3Rlc3QvMzeG -+Dmh0dHA6Ly90ZXN0LzM4hg5odHRwOi8vdGVzdC8zOYYOaHR0cDovL3Rlc3QvNDCG -+Dmh0dHA6Ly90ZXN0LzQxhg5odHRwOi8vdGVzdC80MoYOaHR0cDovL3Rlc3QvNDOG -+Dmh0dHA6Ly90ZXN0LzQ0hg5odHRwOi8vdGVzdC80NYYOaHR0cDovL3Rlc3QvNDaG -+Dmh0dHA6Ly90ZXN0LzQ3hg5odHRwOi8vdGVzdC80OIYOaHR0cDovL3Rlc3QvNDmG -+Dmh0dHA6Ly90ZXN0LzUwhg5odHRwOi8vdGVzdC81MYYOaHR0cDovL3Rlc3QvNTKG -+Dmh0dHA6Ly90ZXN0LzUzhg5odHRwOi8vdGVzdC81NIYOaHR0cDovL3Rlc3QvNTWG -+Dmh0dHA6Ly90ZXN0LzU2hg5odHRwOi8vdGVzdC81N4YOaHR0cDovL3Rlc3QvNTiG -+Dmh0dHA6Ly90ZXN0LzU5hg5odHRwOi8vdGVzdC82MIYOaHR0cDovL3Rlc3QvNjGG -+Dmh0dHA6Ly90ZXN0LzYyhg5odHRwOi8vdGVzdC82M4YOaHR0cDovL3Rlc3QvNjSG -+Dmh0dHA6Ly90ZXN0LzY1hg5odHRwOi8vdGVzdC82NoYOaHR0cDovL3Rlc3QvNjeG -+Dmh0dHA6Ly90ZXN0LzY4hg5odHRwOi8vdGVzdC82OYYOaHR0cDovL3Rlc3QvNzCG -+Dmh0dHA6Ly90ZXN0Lzcxhg5odHRwOi8vdGVzdC83MoYOaHR0cDovL3Rlc3QvNzOG -+Dmh0dHA6Ly90ZXN0Lzc0hg5odHRwOi8vdGVzdC83NYYOaHR0cDovL3Rlc3QvNzaG -+Dmh0dHA6Ly90ZXN0Lzc3hg5odHRwOi8vdGVzdC83OIYOaHR0cDovL3Rlc3QvNzmG -+Dmh0dHA6Ly90ZXN0Lzgwhg5odHRwOi8vdGVzdC84MYYOaHR0cDovL3Rlc3QvODKG -+Dmh0dHA6Ly90ZXN0Lzgzhg5odHRwOi8vdGVzdC84NIYOaHR0cDovL3Rlc3QvODWG -+Dmh0dHA6Ly90ZXN0Lzg2hg5odHRwOi8vdGVzdC84N4YOaHR0cDovL3Rlc3QvODiG -+Dmh0dHA6Ly90ZXN0Lzg5hg5odHRwOi8vdGVzdC85MIYOaHR0cDovL3Rlc3QvOTGG -+Dmh0dHA6Ly90ZXN0Lzkyhg5odHRwOi8vdGVzdC85M4YOaHR0cDovL3Rlc3QvOTSG -+Dmh0dHA6Ly90ZXN0Lzk1hg5odHRwOi8vdGVzdC85NoYOaHR0cDovL3Rlc3QvOTeG -+Dmh0dHA6Ly90ZXN0Lzk4hg5odHRwOi8vdGVzdC85OYYPaHR0cDovL3Rlc3QvMTAw -+hg9odHRwOi8vdGVzdC8xMDGGD2h0dHA6Ly90ZXN0LzEwMoYPaHR0cDovL3Rlc3Qv -+MTAzhg9odHRwOi8vdGVzdC8xMDSGD2h0dHA6Ly90ZXN0LzEwNYYPaHR0cDovL3Rl -+c3QvMTA2hg9odHRwOi8vdGVzdC8xMDeGD2h0dHA6Ly90ZXN0LzEwOIYPaHR0cDov -+L3Rlc3QvMTA5hg9odHRwOi8vdGVzdC8xMTCGD2h0dHA6Ly90ZXN0LzExMYYPaHR0 -+cDovL3Rlc3QvMTEyhg9odHRwOi8vdGVzdC8xMTOGD2h0dHA6Ly90ZXN0LzExNIYP -+aHR0cDovL3Rlc3QvMTE1hg9odHRwOi8vdGVzdC8xMTaGD2h0dHA6Ly90ZXN0LzEx -+N4YPaHR0cDovL3Rlc3QvMTE4hg9odHRwOi8vdGVzdC8xMTmGD2h0dHA6Ly90ZXN0 -+LzEyMIYPaHR0cDovL3Rlc3QvMTIxhg9odHRwOi8vdGVzdC8xMjKGD2h0dHA6Ly90 -+ZXN0LzEyM4YPaHR0cDovL3Rlc3QvMTI0hg9odHRwOi8vdGVzdC8xMjWGD2h0dHA6 -+Ly90ZXN0LzEyNoYPaHR0cDovL3Rlc3QvMTI3hg9odHRwOi8vdGVzdC8xMjiGD2h0 -+dHA6Ly90ZXN0LzEyOYYPaHR0cDovL3Rlc3QvMTMwhg9odHRwOi8vdGVzdC8xMzGG -+D2h0dHA6Ly90ZXN0LzEzMoYPaHR0cDovL3Rlc3QvMTMzhg9odHRwOi8vdGVzdC8x -+MzSGD2h0dHA6Ly90ZXN0LzEzNYYPaHR0cDovL3Rlc3QvMTM2hg9odHRwOi8vdGVz -+dC8xMzeGD2h0dHA6Ly90ZXN0LzEzOIYPaHR0cDovL3Rlc3QvMTM5hg9odHRwOi8v -+dGVzdC8xNDCGD2h0dHA6Ly90ZXN0LzE0MYYPaHR0cDovL3Rlc3QvMTQyhg9odHRw -+Oi8vdGVzdC8xNDOGD2h0dHA6Ly90ZXN0LzE0NIYPaHR0cDovL3Rlc3QvMTQ1hg9o -+dHRwOi8vdGVzdC8xNDaGD2h0dHA6Ly90ZXN0LzE0N4YPaHR0cDovL3Rlc3QvMTQ4 -+hg9odHRwOi8vdGVzdC8xNDmGD2h0dHA6Ly90ZXN0LzE1MIYPaHR0cDovL3Rlc3Qv -+MTUxhg9odHRwOi8vdGVzdC8xNTKGD2h0dHA6Ly90ZXN0LzE1M4YPaHR0cDovL3Rl -+c3QvMTU0hg9odHRwOi8vdGVzdC8xNTWGD2h0dHA6Ly90ZXN0LzE1NoYPaHR0cDov -+L3Rlc3QvMTU3hg9odHRwOi8vdGVzdC8xNTiGD2h0dHA6Ly90ZXN0LzE1OYYPaHR0 -+cDovL3Rlc3QvMTYwhg9odHRwOi8vdGVzdC8xNjGGD2h0dHA6Ly90ZXN0LzE2MoYP -+aHR0cDovL3Rlc3QvMTYzhg9odHRwOi8vdGVzdC8xNjSGD2h0dHA6Ly90ZXN0LzE2 -+NYYPaHR0cDovL3Rlc3QvMTY2hg9odHRwOi8vdGVzdC8xNjeGD2h0dHA6Ly90ZXN0 -+LzE2OIYPaHR0cDovL3Rlc3QvMTY5hg9odHRwOi8vdGVzdC8xNzCGD2h0dHA6Ly90 -+ZXN0LzE3MYYPaHR0cDovL3Rlc3QvMTcyhg9odHRwOi8vdGVzdC8xNzOGD2h0dHA6 -+Ly90ZXN0LzE3NIYPaHR0cDovL3Rlc3QvMTc1hg9odHRwOi8vdGVzdC8xNzaGD2h0 -+dHA6Ly90ZXN0LzE3N4YPaHR0cDovL3Rlc3QvMTc4hg9odHRwOi8vdGVzdC8xNzmG -+D2h0dHA6Ly90ZXN0LzE4MIYPaHR0cDovL3Rlc3QvMTgxhg9odHRwOi8vdGVzdC8x -+ODKGD2h0dHA6Ly90ZXN0LzE4M4YPaHR0cDovL3Rlc3QvMTg0hg9odHRwOi8vdGVz -+dC8xODWGD2h0dHA6Ly90ZXN0LzE4NoYPaHR0cDovL3Rlc3QvMTg3hg9odHRwOi8v -+dGVzdC8xODiGD2h0dHA6Ly90ZXN0LzE4OYYPaHR0cDovL3Rlc3QvMTkwhg9odHRw -+Oi8vdGVzdC8xOTGGD2h0dHA6Ly90ZXN0LzE5MoYPaHR0cDovL3Rlc3QvMTkzhg9o -+dHRwOi8vdGVzdC8xOTSGD2h0dHA6Ly90ZXN0LzE5NYYPaHR0cDovL3Rlc3QvMTk2 -+hg9odHRwOi8vdGVzdC8xOTeGD2h0dHA6Ly90ZXN0LzE5OIYPaHR0cDovL3Rlc3Qv -+MTk5hg9odHRwOi8vdGVzdC8yMDCGD2h0dHA6Ly90ZXN0LzIwMYYPaHR0cDovL3Rl -+c3QvMjAyhg9odHRwOi8vdGVzdC8yMDOGD2h0dHA6Ly90ZXN0LzIwNIYPaHR0cDov -+L3Rlc3QvMjA1hg9odHRwOi8vdGVzdC8yMDaGD2h0dHA6Ly90ZXN0LzIwN4YPaHR0 -+cDovL3Rlc3QvMjA4hg9odHRwOi8vdGVzdC8yMDmGD2h0dHA6Ly90ZXN0LzIxMIYP -+aHR0cDovL3Rlc3QvMjExhg9odHRwOi8vdGVzdC8yMTKGD2h0dHA6Ly90ZXN0LzIx -+M4YPaHR0cDovL3Rlc3QvMjE0hg9odHRwOi8vdGVzdC8yMTWGD2h0dHA6Ly90ZXN0 -+LzIxNoYPaHR0cDovL3Rlc3QvMjE3hg9odHRwOi8vdGVzdC8yMTiGD2h0dHA6Ly90 -+ZXN0LzIxOYYPaHR0cDovL3Rlc3QvMjIwhg9odHRwOi8vdGVzdC8yMjGGD2h0dHA6 -+Ly90ZXN0LzIyMoYPaHR0cDovL3Rlc3QvMjIzhg9odHRwOi8vdGVzdC8yMjSGD2h0 -+dHA6Ly90ZXN0LzIyNYYPaHR0cDovL3Rlc3QvMjI2hg9odHRwOi8vdGVzdC8yMjeG -+D2h0dHA6Ly90ZXN0LzIyOIYPaHR0cDovL3Rlc3QvMjI5hg9odHRwOi8vdGVzdC8y -+MzCGD2h0dHA6Ly90ZXN0LzIzMYYPaHR0cDovL3Rlc3QvMjMyhg9odHRwOi8vdGVz -+dC8yMzOGD2h0dHA6Ly90ZXN0LzIzNIYPaHR0cDovL3Rlc3QvMjM1hg9odHRwOi8v -+dGVzdC8yMzaGD2h0dHA6Ly90ZXN0LzIzN4YPaHR0cDovL3Rlc3QvMjM4hg9odHRw -+Oi8vdGVzdC8yMzmGD2h0dHA6Ly90ZXN0LzI0MIYPaHR0cDovL3Rlc3QvMjQxhg9o -+dHRwOi8vdGVzdC8yNDKGD2h0dHA6Ly90ZXN0LzI0M4YPaHR0cDovL3Rlc3QvMjQ0 -+hg9odHRwOi8vdGVzdC8yNDWGD2h0dHA6Ly90ZXN0LzI0NoYPaHR0cDovL3Rlc3Qv -+MjQ3hg9odHRwOi8vdGVzdC8yNDiGD2h0dHA6Ly90ZXN0LzI0OYYPaHR0cDovL3Rl -+c3QvMjUwhg9odHRwOi8vdGVzdC8yNTGGD2h0dHA6Ly90ZXN0LzI1MoYPaHR0cDov -+L3Rlc3QvMjUzhg9odHRwOi8vdGVzdC8yNTSGD2h0dHA6Ly90ZXN0LzI1NYYPaHR0 -+cDovL3Rlc3QvMjU2hg9odHRwOi8vdGVzdC8yNTeGD2h0dHA6Ly90ZXN0LzI1OIYP -+aHR0cDovL3Rlc3QvMjU5hg9odHRwOi8vdGVzdC8yNjCGD2h0dHA6Ly90ZXN0LzI2 -+MYYPaHR0cDovL3Rlc3QvMjYyhg9odHRwOi8vdGVzdC8yNjOGD2h0dHA6Ly90ZXN0 -+LzI2NIYPaHR0cDovL3Rlc3QvMjY1hg9odHRwOi8vdGVzdC8yNjaGD2h0dHA6Ly90 -+ZXN0LzI2N4YPaHR0cDovL3Rlc3QvMjY4hg9odHRwOi8vdGVzdC8yNjmGD2h0dHA6 -+Ly90ZXN0LzI3MIYPaHR0cDovL3Rlc3QvMjcxhg9odHRwOi8vdGVzdC8yNzKGD2h0 -+dHA6Ly90ZXN0LzI3M4YPaHR0cDovL3Rlc3QvMjc0hg9odHRwOi8vdGVzdC8yNzWG -+D2h0dHA6Ly90ZXN0LzI3NoYPaHR0cDovL3Rlc3QvMjc3hg9odHRwOi8vdGVzdC8y -+NziGD2h0dHA6Ly90ZXN0LzI3OYYPaHR0cDovL3Rlc3QvMjgwhg9odHRwOi8vdGVz -+dC8yODGGD2h0dHA6Ly90ZXN0LzI4MoYPaHR0cDovL3Rlc3QvMjgzhg9odHRwOi8v -+dGVzdC8yODSGD2h0dHA6Ly90ZXN0LzI4NYYPaHR0cDovL3Rlc3QvMjg2hg9odHRw -+Oi8vdGVzdC8yODeGD2h0dHA6Ly90ZXN0LzI4OIYPaHR0cDovL3Rlc3QvMjg5hg9o -+dHRwOi8vdGVzdC8yOTCGD2h0dHA6Ly90ZXN0LzI5MYYPaHR0cDovL3Rlc3QvMjky -+hg9odHRwOi8vdGVzdC8yOTOGD2h0dHA6Ly90ZXN0LzI5NIYPaHR0cDovL3Rlc3Qv -+Mjk1hg9odHRwOi8vdGVzdC8yOTaGD2h0dHA6Ly90ZXN0LzI5N4YPaHR0cDovL3Rl -+c3QvMjk4hg9odHRwOi8vdGVzdC8yOTmGD2h0dHA6Ly90ZXN0LzMwMIYPaHR0cDov -+L3Rlc3QvMzAxhg9odHRwOi8vdGVzdC8zMDKGD2h0dHA6Ly90ZXN0LzMwM4YPaHR0 -+cDovL3Rlc3QvMzA0hg9odHRwOi8vdGVzdC8zMDWGD2h0dHA6Ly90ZXN0LzMwNoYP -+aHR0cDovL3Rlc3QvMzA3hg9odHRwOi8vdGVzdC8zMDiGD2h0dHA6Ly90ZXN0LzMw -+OYYPaHR0cDovL3Rlc3QvMzEwhg9odHRwOi8vdGVzdC8zMTGGD2h0dHA6Ly90ZXN0 -+LzMxMoYPaHR0cDovL3Rlc3QvMzEzhg9odHRwOi8vdGVzdC8zMTSGD2h0dHA6Ly90 -+ZXN0LzMxNYYPaHR0cDovL3Rlc3QvMzE2hg9odHRwOi8vdGVzdC8zMTeGD2h0dHA6 -+Ly90ZXN0LzMxOIYPaHR0cDovL3Rlc3QvMzE5hg9odHRwOi8vdGVzdC8zMjCGD2h0 -+dHA6Ly90ZXN0LzMyMYYPaHR0cDovL3Rlc3QvMzIyhg9odHRwOi8vdGVzdC8zMjOG -+D2h0dHA6Ly90ZXN0LzMyNIYPaHR0cDovL3Rlc3QvMzI1hg9odHRwOi8vdGVzdC8z -+MjaGD2h0dHA6Ly90ZXN0LzMyN4YPaHR0cDovL3Rlc3QvMzI4hg9odHRwOi8vdGVz -+dC8zMjmGD2h0dHA6Ly90ZXN0LzMzMIYPaHR0cDovL3Rlc3QvMzMxhg9odHRwOi8v -+dGVzdC8zMzKGD2h0dHA6Ly90ZXN0LzMzM4YPaHR0cDovL3Rlc3QvMzM0hg9odHRw -+Oi8vdGVzdC8zMzWGD2h0dHA6Ly90ZXN0LzMzNoYPaHR0cDovL3Rlc3QvMzM3hg9o -+dHRwOi8vdGVzdC8zMziGD2h0dHA6Ly90ZXN0LzMzOYYPaHR0cDovL3Rlc3QvMzQw -+hg9odHRwOi8vdGVzdC8zNDGGD2h0dHA6Ly90ZXN0LzM0MoYPaHR0cDovL3Rlc3Qv -+MzQzhg9odHRwOi8vdGVzdC8zNDSGD2h0dHA6Ly90ZXN0LzM0NYYPaHR0cDovL3Rl -+c3QvMzQ2hg9odHRwOi8vdGVzdC8zNDeGD2h0dHA6Ly90ZXN0LzM0OIYPaHR0cDov -+L3Rlc3QvMzQ5hg9odHRwOi8vdGVzdC8zNTCGD2h0dHA6Ly90ZXN0LzM1MYYPaHR0 -+cDovL3Rlc3QvMzUyhg9odHRwOi8vdGVzdC8zNTOGD2h0dHA6Ly90ZXN0LzM1NIYP -+aHR0cDovL3Rlc3QvMzU1hg9odHRwOi8vdGVzdC8zNTaGD2h0dHA6Ly90ZXN0LzM1 -+N4YPaHR0cDovL3Rlc3QvMzU4hg9odHRwOi8vdGVzdC8zNTmGD2h0dHA6Ly90ZXN0 -+LzM2MIYPaHR0cDovL3Rlc3QvMzYxhg9odHRwOi8vdGVzdC8zNjKGD2h0dHA6Ly90 -+ZXN0LzM2M4YPaHR0cDovL3Rlc3QvMzY0hg9odHRwOi8vdGVzdC8zNjWGD2h0dHA6 -+Ly90ZXN0LzM2NoYPaHR0cDovL3Rlc3QvMzY3hg9odHRwOi8vdGVzdC8zNjiGD2h0 -+dHA6Ly90ZXN0LzM2OYYPaHR0cDovL3Rlc3QvMzcwhg9odHRwOi8vdGVzdC8zNzGG -+D2h0dHA6Ly90ZXN0LzM3MoYPaHR0cDovL3Rlc3QvMzczhg9odHRwOi8vdGVzdC8z -+NzSGD2h0dHA6Ly90ZXN0LzM3NYYPaHR0cDovL3Rlc3QvMzc2hg9odHRwOi8vdGVz -+dC8zNzeGD2h0dHA6Ly90ZXN0LzM3OIYPaHR0cDovL3Rlc3QvMzc5hg9odHRwOi8v -+dGVzdC8zODCGD2h0dHA6Ly90ZXN0LzM4MYYPaHR0cDovL3Rlc3QvMzgyhg9odHRw -+Oi8vdGVzdC8zODOGD2h0dHA6Ly90ZXN0LzM4NIYPaHR0cDovL3Rlc3QvMzg1hg9o -+dHRwOi8vdGVzdC8zODaGD2h0dHA6Ly90ZXN0LzM4N4YPaHR0cDovL3Rlc3QvMzg4 -+hg9odHRwOi8vdGVzdC8zODmGD2h0dHA6Ly90ZXN0LzM5MIYPaHR0cDovL3Rlc3Qv -+Mzkxhg9odHRwOi8vdGVzdC8zOTKGD2h0dHA6Ly90ZXN0LzM5M4YPaHR0cDovL3Rl -+c3QvMzk0hg9odHRwOi8vdGVzdC8zOTWGD2h0dHA6Ly90ZXN0LzM5NoYPaHR0cDov -+L3Rlc3QvMzk3hg9odHRwOi8vdGVzdC8zOTiGD2h0dHA6Ly90ZXN0LzM5OYYPaHR0 -+cDovL3Rlc3QvNDAwhg9odHRwOi8vdGVzdC80MDGGD2h0dHA6Ly90ZXN0LzQwMoYP -+aHR0cDovL3Rlc3QvNDAzhg9odHRwOi8vdGVzdC80MDSGD2h0dHA6Ly90ZXN0LzQw -+NYYPaHR0cDovL3Rlc3QvNDA2hg9odHRwOi8vdGVzdC80MDeGD2h0dHA6Ly90ZXN0 -+LzQwOIYPaHR0cDovL3Rlc3QvNDA5hg9odHRwOi8vdGVzdC80MTCGD2h0dHA6Ly90 -+ZXN0LzQxMYYPaHR0cDovL3Rlc3QvNDEyhg9odHRwOi8vdGVzdC80MTOGD2h0dHA6 -+Ly90ZXN0LzQxNIYPaHR0cDovL3Rlc3QvNDE1hg9odHRwOi8vdGVzdC80MTaGD2h0 -+dHA6Ly90ZXN0LzQxN4YPaHR0cDovL3Rlc3QvNDE4hg9odHRwOi8vdGVzdC80MTmG -+D2h0dHA6Ly90ZXN0LzQyMIYPaHR0cDovL3Rlc3QvNDIxhg9odHRwOi8vdGVzdC80 -+MjKGD2h0dHA6Ly90ZXN0LzQyM4YPaHR0cDovL3Rlc3QvNDI0hg9odHRwOi8vdGVz -+dC80MjWGD2h0dHA6Ly90ZXN0LzQyNoYPaHR0cDovL3Rlc3QvNDI3hg9odHRwOi8v -+dGVzdC80MjiGD2h0dHA6Ly90ZXN0LzQyOYYPaHR0cDovL3Rlc3QvNDMwhg9odHRw -+Oi8vdGVzdC80MzGGD2h0dHA6Ly90ZXN0LzQzMoYPaHR0cDovL3Rlc3QvNDMzhg9o -+dHRwOi8vdGVzdC80MzSGD2h0dHA6Ly90ZXN0LzQzNYYPaHR0cDovL3Rlc3QvNDM2 -+hg9odHRwOi8vdGVzdC80MzeGD2h0dHA6Ly90ZXN0LzQzOIYPaHR0cDovL3Rlc3Qv -+NDM5hg9odHRwOi8vdGVzdC80NDCGD2h0dHA6Ly90ZXN0LzQ0MYYPaHR0cDovL3Rl -+c3QvNDQyhg9odHRwOi8vdGVzdC80NDOGD2h0dHA6Ly90ZXN0LzQ0NIYPaHR0cDov -+L3Rlc3QvNDQ1hg9odHRwOi8vdGVzdC80NDaGD2h0dHA6Ly90ZXN0LzQ0N4YPaHR0 -+cDovL3Rlc3QvNDQ4hg9odHRwOi8vdGVzdC80NDmGD2h0dHA6Ly90ZXN0LzQ1MIYP -+aHR0cDovL3Rlc3QvNDUxhg9odHRwOi8vdGVzdC80NTKGD2h0dHA6Ly90ZXN0LzQ1 -+M4YPaHR0cDovL3Rlc3QvNDU0hg9odHRwOi8vdGVzdC80NTWGD2h0dHA6Ly90ZXN0 -+LzQ1NoYPaHR0cDovL3Rlc3QvNDU3hg9odHRwOi8vdGVzdC80NTiGD2h0dHA6Ly90 -+ZXN0LzQ1OYYPaHR0cDovL3Rlc3QvNDYwhg9odHRwOi8vdGVzdC80NjGGD2h0dHA6 -+Ly90ZXN0LzQ2MoYPaHR0cDovL3Rlc3QvNDYzhg9odHRwOi8vdGVzdC80NjSGD2h0 -+dHA6Ly90ZXN0LzQ2NYYPaHR0cDovL3Rlc3QvNDY2hg9odHRwOi8vdGVzdC80NjeG -+D2h0dHA6Ly90ZXN0LzQ2OIYPaHR0cDovL3Rlc3QvNDY5hg9odHRwOi8vdGVzdC80 -+NzCGD2h0dHA6Ly90ZXN0LzQ3MYYPaHR0cDovL3Rlc3QvNDcyhg9odHRwOi8vdGVz -+dC80NzOGD2h0dHA6Ly90ZXN0LzQ3NIYPaHR0cDovL3Rlc3QvNDc1hg9odHRwOi8v -+dGVzdC80NzaGD2h0dHA6Ly90ZXN0LzQ3N4YPaHR0cDovL3Rlc3QvNDc4hg9odHRw -+Oi8vdGVzdC80NzmGD2h0dHA6Ly90ZXN0LzQ4MIYPaHR0cDovL3Rlc3QvNDgxhg9o -+dHRwOi8vdGVzdC80ODKGD2h0dHA6Ly90ZXN0LzQ4M4YPaHR0cDovL3Rlc3QvNDg0 -+hg9odHRwOi8vdGVzdC80ODWGD2h0dHA6Ly90ZXN0LzQ4NoYPaHR0cDovL3Rlc3Qv -+NDg3hg9odHRwOi8vdGVzdC80ODiGD2h0dHA6Ly90ZXN0LzQ4OYYPaHR0cDovL3Rl -+c3QvNDkwhg9odHRwOi8vdGVzdC80OTGGD2h0dHA6Ly90ZXN0LzQ5MoYPaHR0cDov -+L3Rlc3QvNDkzhg9odHRwOi8vdGVzdC80OTSGD2h0dHA6Ly90ZXN0LzQ5NYYPaHR0 -+cDovL3Rlc3QvNDk2hg9odHRwOi8vdGVzdC80OTeGD2h0dHA6Ly90ZXN0LzQ5OIYP -+aHR0cDovL3Rlc3QvNDk5hg9odHRwOi8vdGVzdC81MDCGD2h0dHA6Ly90ZXN0LzUw -+MYYPaHR0cDovL3Rlc3QvNTAyhg9odHRwOi8vdGVzdC81MDOGD2h0dHA6Ly90ZXN0 -+LzUwNIYPaHR0cDovL3Rlc3QvNTA1hg9odHRwOi8vdGVzdC81MDaGD2h0dHA6Ly90 -+ZXN0LzUwN4YPaHR0cDovL3Rlc3QvNTA4hg9odHRwOi8vdGVzdC81MDmGD2h0dHA6 -+Ly90ZXN0LzUxMIYPaHR0cDovL3Rlc3QvNTExhg9odHRwOi8vdGVzdC81MTKGD2h0 -+dHA6Ly90ZXN0LzUxM4YPaHR0cDovL3Rlc3QvNTE0hg9odHRwOi8vdGVzdC81MTWG -+D2h0dHA6Ly90ZXN0LzUxNoYPaHR0cDovL3Rlc3QvNTE3hg9odHRwOi8vdGVzdC81 -+MTiGD2h0dHA6Ly90ZXN0LzUxOYYPaHR0cDovL3Rlc3QvNTIwhg9odHRwOi8vdGVz -+dC81MjGGD2h0dHA6Ly90ZXN0LzUyMoYPaHR0cDovL3Rlc3QvNTIzhg9odHRwOi8v -+dGVzdC81MjSGD2h0dHA6Ly90ZXN0LzUyNYYPaHR0cDovL3Rlc3QvNTI2hg9odHRw -+Oi8vdGVzdC81MjeGD2h0dHA6Ly90ZXN0LzUyOIYPaHR0cDovL3Rlc3QvNTI5hg9o -+dHRwOi8vdGVzdC81MzCGD2h0dHA6Ly90ZXN0LzUzMYYPaHR0cDovL3Rlc3QvNTMy -+hg9odHRwOi8vdGVzdC81MzOGD2h0dHA6Ly90ZXN0LzUzNIYPaHR0cDovL3Rlc3Qv -+NTM1hg9odHRwOi8vdGVzdC81MzaGD2h0dHA6Ly90ZXN0LzUzN4YPaHR0cDovL3Rl -+c3QvNTM4hg9odHRwOi8vdGVzdC81MzmGD2h0dHA6Ly90ZXN0LzU0MIYPaHR0cDov -+L3Rlc3QvNTQxhg9odHRwOi8vdGVzdC81NDKGD2h0dHA6Ly90ZXN0LzU0M4YPaHR0 -+cDovL3Rlc3QvNTQ0hg9odHRwOi8vdGVzdC81NDWGD2h0dHA6Ly90ZXN0LzU0NoYP -+aHR0cDovL3Rlc3QvNTQ3hg9odHRwOi8vdGVzdC81NDiGD2h0dHA6Ly90ZXN0LzU0 -+OYYPaHR0cDovL3Rlc3QvNTUwhg9odHRwOi8vdGVzdC81NTGGD2h0dHA6Ly90ZXN0 -+LzU1MoYPaHR0cDovL3Rlc3QvNTUzhg9odHRwOi8vdGVzdC81NTSGD2h0dHA6Ly90 -+ZXN0LzU1NYYPaHR0cDovL3Rlc3QvNTU2hg9odHRwOi8vdGVzdC81NTeGD2h0dHA6 -+Ly90ZXN0LzU1OIYPaHR0cDovL3Rlc3QvNTU5hg9odHRwOi8vdGVzdC81NjCGD2h0 -+dHA6Ly90ZXN0LzU2MYYPaHR0cDovL3Rlc3QvNTYyhg9odHRwOi8vdGVzdC81NjOG -+D2h0dHA6Ly90ZXN0LzU2NIYPaHR0cDovL3Rlc3QvNTY1hg9odHRwOi8vdGVzdC81 -+NjaGD2h0dHA6Ly90ZXN0LzU2N4YPaHR0cDovL3Rlc3QvNTY4hg9odHRwOi8vdGVz -+dC81NjmGD2h0dHA6Ly90ZXN0LzU3MIYPaHR0cDovL3Rlc3QvNTcxhg9odHRwOi8v -+dGVzdC81NzKGD2h0dHA6Ly90ZXN0LzU3M4YPaHR0cDovL3Rlc3QvNTc0hg9odHRw -+Oi8vdGVzdC81NzWGD2h0dHA6Ly90ZXN0LzU3NoYPaHR0cDovL3Rlc3QvNTc3hg9o -+dHRwOi8vdGVzdC81NziGD2h0dHA6Ly90ZXN0LzU3OYYPaHR0cDovL3Rlc3QvNTgw -+hg9odHRwOi8vdGVzdC81ODGGD2h0dHA6Ly90ZXN0LzU4MoYPaHR0cDovL3Rlc3Qv -+NTgzhg9odHRwOi8vdGVzdC81ODSGD2h0dHA6Ly90ZXN0LzU4NYYPaHR0cDovL3Rl -+c3QvNTg2hg9odHRwOi8vdGVzdC81ODeGD2h0dHA6Ly90ZXN0LzU4OIYPaHR0cDov -+L3Rlc3QvNTg5hg9odHRwOi8vdGVzdC81OTCGD2h0dHA6Ly90ZXN0LzU5MYYPaHR0 -+cDovL3Rlc3QvNTkyhg9odHRwOi8vdGVzdC81OTOGD2h0dHA6Ly90ZXN0LzU5NIYP -+aHR0cDovL3Rlc3QvNTk1hg9odHRwOi8vdGVzdC81OTaGD2h0dHA6Ly90ZXN0LzU5 -+N4YPaHR0cDovL3Rlc3QvNTk4hg9odHRwOi8vdGVzdC81OTmGD2h0dHA6Ly90ZXN0 -+LzYwMIYPaHR0cDovL3Rlc3QvNjAxhg9odHRwOi8vdGVzdC82MDKGD2h0dHA6Ly90 -+ZXN0LzYwM4YPaHR0cDovL3Rlc3QvNjA0hg9odHRwOi8vdGVzdC82MDWGD2h0dHA6 -+Ly90ZXN0LzYwNoYPaHR0cDovL3Rlc3QvNjA3hg9odHRwOi8vdGVzdC82MDiGD2h0 -+dHA6Ly90ZXN0LzYwOYYPaHR0cDovL3Rlc3QvNjEwhg9odHRwOi8vdGVzdC82MTGG -+D2h0dHA6Ly90ZXN0LzYxMoYPaHR0cDovL3Rlc3QvNjEzhg9odHRwOi8vdGVzdC82 -+MTSGD2h0dHA6Ly90ZXN0LzYxNYYPaHR0cDovL3Rlc3QvNjE2hg9odHRwOi8vdGVz -+dC82MTeGD2h0dHA6Ly90ZXN0LzYxOIYPaHR0cDovL3Rlc3QvNjE5hg9odHRwOi8v -+dGVzdC82MjCGD2h0dHA6Ly90ZXN0LzYyMYYPaHR0cDovL3Rlc3QvNjIyhg9odHRw -+Oi8vdGVzdC82MjOGD2h0dHA6Ly90ZXN0LzYyNIYPaHR0cDovL3Rlc3QvNjI1hg9o -+dHRwOi8vdGVzdC82MjaGD2h0dHA6Ly90ZXN0LzYyN4YPaHR0cDovL3Rlc3QvNjI4 -+hg9odHRwOi8vdGVzdC82MjmGD2h0dHA6Ly90ZXN0LzYzMIYPaHR0cDovL3Rlc3Qv -+NjMxhg9odHRwOi8vdGVzdC82MzKGD2h0dHA6Ly90ZXN0LzYzM4YPaHR0cDovL3Rl -+c3QvNjM0hg9odHRwOi8vdGVzdC82MzWGD2h0dHA6Ly90ZXN0LzYzNoYPaHR0cDov -+L3Rlc3QvNjM3hg9odHRwOi8vdGVzdC82MziGD2h0dHA6Ly90ZXN0LzYzOYYPaHR0 -+cDovL3Rlc3QvNjQwhg9odHRwOi8vdGVzdC82NDGGD2h0dHA6Ly90ZXN0LzY0MoYP -+aHR0cDovL3Rlc3QvNjQzhg9odHRwOi8vdGVzdC82NDSGD2h0dHA6Ly90ZXN0LzY0 -+NYYPaHR0cDovL3Rlc3QvNjQ2hg9odHRwOi8vdGVzdC82NDeGD2h0dHA6Ly90ZXN0 -+LzY0OIYPaHR0cDovL3Rlc3QvNjQ5hg9odHRwOi8vdGVzdC82NTCGD2h0dHA6Ly90 -+ZXN0LzY1MYYPaHR0cDovL3Rlc3QvNjUyhg9odHRwOi8vdGVzdC82NTOGD2h0dHA6 -+Ly90ZXN0LzY1NIYPaHR0cDovL3Rlc3QvNjU1hg9odHRwOi8vdGVzdC82NTaGD2h0 -+dHA6Ly90ZXN0LzY1N4YPaHR0cDovL3Rlc3QvNjU4hg9odHRwOi8vdGVzdC82NTmG -+D2h0dHA6Ly90ZXN0LzY2MIYPaHR0cDovL3Rlc3QvNjYxhg9odHRwOi8vdGVzdC82 -+NjKGD2h0dHA6Ly90ZXN0LzY2M4YPaHR0cDovL3Rlc3QvNjY0hg9odHRwOi8vdGVz -+dC82NjWGD2h0dHA6Ly90ZXN0LzY2NoYPaHR0cDovL3Rlc3QvNjY3hg9odHRwOi8v -+dGVzdC82NjiGD2h0dHA6Ly90ZXN0LzY2OYYPaHR0cDovL3Rlc3QvNjcwhg9odHRw -+Oi8vdGVzdC82NzGGD2h0dHA6Ly90ZXN0LzY3MoYPaHR0cDovL3Rlc3QvNjczhg9o -+dHRwOi8vdGVzdC82NzSGD2h0dHA6Ly90ZXN0LzY3NYYPaHR0cDovL3Rlc3QvNjc2 -+hg9odHRwOi8vdGVzdC82NzeGD2h0dHA6Ly90ZXN0LzY3OIYPaHR0cDovL3Rlc3Qv -+Njc5hg9odHRwOi8vdGVzdC82ODCGD2h0dHA6Ly90ZXN0LzY4MYYPaHR0cDovL3Rl -+c3QvNjgyhg9odHRwOi8vdGVzdC82ODOGD2h0dHA6Ly90ZXN0LzY4NIYPaHR0cDov -+L3Rlc3QvNjg1hg9odHRwOi8vdGVzdC82ODaGD2h0dHA6Ly90ZXN0LzY4N4YPaHR0 -+cDovL3Rlc3QvNjg4hg9odHRwOi8vdGVzdC82ODmGD2h0dHA6Ly90ZXN0LzY5MIYP -+aHR0cDovL3Rlc3QvNjkxhg9odHRwOi8vdGVzdC82OTKGD2h0dHA6Ly90ZXN0LzY5 -+M4YPaHR0cDovL3Rlc3QvNjk0hg9odHRwOi8vdGVzdC82OTWGD2h0dHA6Ly90ZXN0 -+LzY5NoYPaHR0cDovL3Rlc3QvNjk3hg9odHRwOi8vdGVzdC82OTiGD2h0dHA6Ly90 -+ZXN0LzY5OYYPaHR0cDovL3Rlc3QvNzAwhg9odHRwOi8vdGVzdC83MDGGD2h0dHA6 -+Ly90ZXN0LzcwMoYPaHR0cDovL3Rlc3QvNzAzhg9odHRwOi8vdGVzdC83MDSGD2h0 -+dHA6Ly90ZXN0LzcwNYYPaHR0cDovL3Rlc3QvNzA2hg9odHRwOi8vdGVzdC83MDeG -+D2h0dHA6Ly90ZXN0LzcwOIYPaHR0cDovL3Rlc3QvNzA5hg9odHRwOi8vdGVzdC83 -+MTCGD2h0dHA6Ly90ZXN0LzcxMYYPaHR0cDovL3Rlc3QvNzEyhg9odHRwOi8vdGVz -+dC83MTOGD2h0dHA6Ly90ZXN0LzcxNIYPaHR0cDovL3Rlc3QvNzE1hg9odHRwOi8v -+dGVzdC83MTaGD2h0dHA6Ly90ZXN0LzcxN4YPaHR0cDovL3Rlc3QvNzE4hg9odHRw -+Oi8vdGVzdC83MTmGD2h0dHA6Ly90ZXN0LzcyMIYPaHR0cDovL3Rlc3QvNzIxhg9o -+dHRwOi8vdGVzdC83MjKGD2h0dHA6Ly90ZXN0LzcyM4YPaHR0cDovL3Rlc3QvNzI0 -+hg9odHRwOi8vdGVzdC83MjWGD2h0dHA6Ly90ZXN0LzcyNoYPaHR0cDovL3Rlc3Qv -+NzI3hg9odHRwOi8vdGVzdC83MjiGD2h0dHA6Ly90ZXN0LzcyOYYPaHR0cDovL3Rl -+c3QvNzMwhg9odHRwOi8vdGVzdC83MzGGD2h0dHA6Ly90ZXN0LzczMoYPaHR0cDov -+L3Rlc3QvNzMzhg9odHRwOi8vdGVzdC83MzSGD2h0dHA6Ly90ZXN0LzczNYYPaHR0 -+cDovL3Rlc3QvNzM2hg9odHRwOi8vdGVzdC83MzeGD2h0dHA6Ly90ZXN0LzczOIYP -+aHR0cDovL3Rlc3QvNzM5hg9odHRwOi8vdGVzdC83NDCGD2h0dHA6Ly90ZXN0Lzc0 -+MYYPaHR0cDovL3Rlc3QvNzQyhg9odHRwOi8vdGVzdC83NDOGD2h0dHA6Ly90ZXN0 -+Lzc0NIYPaHR0cDovL3Rlc3QvNzQ1hg9odHRwOi8vdGVzdC83NDaGD2h0dHA6Ly90 -+ZXN0Lzc0N4YPaHR0cDovL3Rlc3QvNzQ4hg9odHRwOi8vdGVzdC83NDmGD2h0dHA6 -+Ly90ZXN0Lzc1MIYPaHR0cDovL3Rlc3QvNzUxhg9odHRwOi8vdGVzdC83NTKGD2h0 -+dHA6Ly90ZXN0Lzc1M4YPaHR0cDovL3Rlc3QvNzU0hg9odHRwOi8vdGVzdC83NTWG -+D2h0dHA6Ly90ZXN0Lzc1NoYPaHR0cDovL3Rlc3QvNzU3hg9odHRwOi8vdGVzdC83 -+NTiGD2h0dHA6Ly90ZXN0Lzc1OYYPaHR0cDovL3Rlc3QvNzYwhg9odHRwOi8vdGVz -+dC83NjGGD2h0dHA6Ly90ZXN0Lzc2MoYPaHR0cDovL3Rlc3QvNzYzhg9odHRwOi8v -+dGVzdC83NjSGD2h0dHA6Ly90ZXN0Lzc2NYYPaHR0cDovL3Rlc3QvNzY2hg9odHRw -+Oi8vdGVzdC83NjeGD2h0dHA6Ly90ZXN0Lzc2OIYPaHR0cDovL3Rlc3QvNzY5hg9o -+dHRwOi8vdGVzdC83NzCGD2h0dHA6Ly90ZXN0Lzc3MYYPaHR0cDovL3Rlc3QvNzcy -+hg9odHRwOi8vdGVzdC83NzOGD2h0dHA6Ly90ZXN0Lzc3NIYPaHR0cDovL3Rlc3Qv -+Nzc1hg9odHRwOi8vdGVzdC83NzaGD2h0dHA6Ly90ZXN0Lzc3N4YPaHR0cDovL3Rl -+c3QvNzc4hg9odHRwOi8vdGVzdC83NzmGD2h0dHA6Ly90ZXN0Lzc4MIYPaHR0cDov -+L3Rlc3QvNzgxhg9odHRwOi8vdGVzdC83ODKGD2h0dHA6Ly90ZXN0Lzc4M4YPaHR0 -+cDovL3Rlc3QvNzg0hg9odHRwOi8vdGVzdC83ODWGD2h0dHA6Ly90ZXN0Lzc4NoYP -+aHR0cDovL3Rlc3QvNzg3hg9odHRwOi8vdGVzdC83ODiGD2h0dHA6Ly90ZXN0Lzc4 -+OYYPaHR0cDovL3Rlc3QvNzkwhg9odHRwOi8vdGVzdC83OTGGD2h0dHA6Ly90ZXN0 -+Lzc5MoYPaHR0cDovL3Rlc3QvNzkzhg9odHRwOi8vdGVzdC83OTSGD2h0dHA6Ly90 -+ZXN0Lzc5NYYPaHR0cDovL3Rlc3QvNzk2hg9odHRwOi8vdGVzdC83OTeGD2h0dHA6 -+Ly90ZXN0Lzc5OIYPaHR0cDovL3Rlc3QvNzk5hg9odHRwOi8vdGVzdC84MDCGD2h0 -+dHA6Ly90ZXN0LzgwMYYPaHR0cDovL3Rlc3QvODAyhg9odHRwOi8vdGVzdC84MDOG -+D2h0dHA6Ly90ZXN0LzgwNIYPaHR0cDovL3Rlc3QvODA1hg9odHRwOi8vdGVzdC84 -+MDaGD2h0dHA6Ly90ZXN0LzgwN4YPaHR0cDovL3Rlc3QvODA4hg9odHRwOi8vdGVz -+dC84MDmGD2h0dHA6Ly90ZXN0LzgxMIYPaHR0cDovL3Rlc3QvODExhg9odHRwOi8v -+dGVzdC84MTKGD2h0dHA6Ly90ZXN0LzgxM4YPaHR0cDovL3Rlc3QvODE0hg9odHRw -+Oi8vdGVzdC84MTWGD2h0dHA6Ly90ZXN0LzgxNoYPaHR0cDovL3Rlc3QvODE3hg9o -+dHRwOi8vdGVzdC84MTiGD2h0dHA6Ly90ZXN0LzgxOYYPaHR0cDovL3Rlc3QvODIw -+hg9odHRwOi8vdGVzdC84MjGGD2h0dHA6Ly90ZXN0LzgyMoYPaHR0cDovL3Rlc3Qv -+ODIzhg9odHRwOi8vdGVzdC84MjSGD2h0dHA6Ly90ZXN0LzgyNYYPaHR0cDovL3Rl -+c3QvODI2hg9odHRwOi8vdGVzdC84MjeGD2h0dHA6Ly90ZXN0LzgyOIYPaHR0cDov -+L3Rlc3QvODI5hg9odHRwOi8vdGVzdC84MzCGD2h0dHA6Ly90ZXN0LzgzMYYPaHR0 -+cDovL3Rlc3QvODMyhg9odHRwOi8vdGVzdC84MzOGD2h0dHA6Ly90ZXN0LzgzNIYP -+aHR0cDovL3Rlc3QvODM1hg9odHRwOi8vdGVzdC84MzaGD2h0dHA6Ly90ZXN0Lzgz -+N4YPaHR0cDovL3Rlc3QvODM4hg9odHRwOi8vdGVzdC84MzmGD2h0dHA6Ly90ZXN0 -+Lzg0MIYPaHR0cDovL3Rlc3QvODQxhg9odHRwOi8vdGVzdC84NDKGD2h0dHA6Ly90 -+ZXN0Lzg0M4YPaHR0cDovL3Rlc3QvODQ0hg9odHRwOi8vdGVzdC84NDWGD2h0dHA6 -+Ly90ZXN0Lzg0NoYPaHR0cDovL3Rlc3QvODQ3hg9odHRwOi8vdGVzdC84NDiGD2h0 -+dHA6Ly90ZXN0Lzg0OYYPaHR0cDovL3Rlc3QvODUwhg9odHRwOi8vdGVzdC84NTGG -+D2h0dHA6Ly90ZXN0Lzg1MoYPaHR0cDovL3Rlc3QvODUzhg9odHRwOi8vdGVzdC84 -+NTSGD2h0dHA6Ly90ZXN0Lzg1NYYPaHR0cDovL3Rlc3QvODU2hg9odHRwOi8vdGVz -+dC84NTeGD2h0dHA6Ly90ZXN0Lzg1OIYPaHR0cDovL3Rlc3QvODU5hg9odHRwOi8v -+dGVzdC84NjCGD2h0dHA6Ly90ZXN0Lzg2MYYPaHR0cDovL3Rlc3QvODYyhg9odHRw -+Oi8vdGVzdC84NjOGD2h0dHA6Ly90ZXN0Lzg2NIYPaHR0cDovL3Rlc3QvODY1hg9o -+dHRwOi8vdGVzdC84NjaGD2h0dHA6Ly90ZXN0Lzg2N4YPaHR0cDovL3Rlc3QvODY4 -+hg9odHRwOi8vdGVzdC84NjmGD2h0dHA6Ly90ZXN0Lzg3MIYPaHR0cDovL3Rlc3Qv -+ODcxhg9odHRwOi8vdGVzdC84NzKGD2h0dHA6Ly90ZXN0Lzg3M4YPaHR0cDovL3Rl -+c3QvODc0hg9odHRwOi8vdGVzdC84NzWGD2h0dHA6Ly90ZXN0Lzg3NoYPaHR0cDov -+L3Rlc3QvODc3hg9odHRwOi8vdGVzdC84NziGD2h0dHA6Ly90ZXN0Lzg3OYYPaHR0 -+cDovL3Rlc3QvODgwhg9odHRwOi8vdGVzdC84ODGGD2h0dHA6Ly90ZXN0Lzg4MoYP -+aHR0cDovL3Rlc3QvODgzhg9odHRwOi8vdGVzdC84ODSGD2h0dHA6Ly90ZXN0Lzg4 -+NYYPaHR0cDovL3Rlc3QvODg2hg9odHRwOi8vdGVzdC84ODeGD2h0dHA6Ly90ZXN0 -+Lzg4OIYPaHR0cDovL3Rlc3QvODg5hg9odHRwOi8vdGVzdC84OTCGD2h0dHA6Ly90 -+ZXN0Lzg5MYYPaHR0cDovL3Rlc3QvODkyhg9odHRwOi8vdGVzdC84OTOGD2h0dHA6 -+Ly90ZXN0Lzg5NIYPaHR0cDovL3Rlc3QvODk1hg9odHRwOi8vdGVzdC84OTaGD2h0 -+dHA6Ly90ZXN0Lzg5N4YPaHR0cDovL3Rlc3QvODk4hg9odHRwOi8vdGVzdC84OTmG -+D2h0dHA6Ly90ZXN0LzkwMIYPaHR0cDovL3Rlc3QvOTAxhg9odHRwOi8vdGVzdC85 -+MDKGD2h0dHA6Ly90ZXN0LzkwM4YPaHR0cDovL3Rlc3QvOTA0hg9odHRwOi8vdGVz -+dC85MDWGD2h0dHA6Ly90ZXN0LzkwNoYPaHR0cDovL3Rlc3QvOTA3hg9odHRwOi8v -+dGVzdC85MDiGD2h0dHA6Ly90ZXN0LzkwOYYPaHR0cDovL3Rlc3QvOTEwhg9odHRw -+Oi8vdGVzdC85MTGGD2h0dHA6Ly90ZXN0LzkxMoYPaHR0cDovL3Rlc3QvOTEzhg9o -+dHRwOi8vdGVzdC85MTSGD2h0dHA6Ly90ZXN0LzkxNYYPaHR0cDovL3Rlc3QvOTE2 -+hg9odHRwOi8vdGVzdC85MTeGD2h0dHA6Ly90ZXN0LzkxOIYPaHR0cDovL3Rlc3Qv -+OTE5hg9odHRwOi8vdGVzdC85MjCGD2h0dHA6Ly90ZXN0LzkyMYYPaHR0cDovL3Rl -+c3QvOTIyhg9odHRwOi8vdGVzdC85MjOGD2h0dHA6Ly90ZXN0LzkyNIYPaHR0cDov -+L3Rlc3QvOTI1hg9odHRwOi8vdGVzdC85MjaGD2h0dHA6Ly90ZXN0LzkyN4YPaHR0 -+cDovL3Rlc3QvOTI4hg9odHRwOi8vdGVzdC85MjmGD2h0dHA6Ly90ZXN0LzkzMIYP -+aHR0cDovL3Rlc3QvOTMxhg9odHRwOi8vdGVzdC85MzKGD2h0dHA6Ly90ZXN0Lzkz -+M4YPaHR0cDovL3Rlc3QvOTM0hg9odHRwOi8vdGVzdC85MzWGD2h0dHA6Ly90ZXN0 -+LzkzNoYPaHR0cDovL3Rlc3QvOTM3hg9odHRwOi8vdGVzdC85MziGD2h0dHA6Ly90 -+ZXN0LzkzOYYPaHR0cDovL3Rlc3QvOTQwhg9odHRwOi8vdGVzdC85NDGGD2h0dHA6 -+Ly90ZXN0Lzk0MoYPaHR0cDovL3Rlc3QvOTQzhg9odHRwOi8vdGVzdC85NDSGD2h0 -+dHA6Ly90ZXN0Lzk0NYYPaHR0cDovL3Rlc3QvOTQ2hg9odHRwOi8vdGVzdC85NDeG -+D2h0dHA6Ly90ZXN0Lzk0OIYPaHR0cDovL3Rlc3QvOTQ5hg9odHRwOi8vdGVzdC85 -+NTCGD2h0dHA6Ly90ZXN0Lzk1MYYPaHR0cDovL3Rlc3QvOTUyhg9odHRwOi8vdGVz -+dC85NTOGD2h0dHA6Ly90ZXN0Lzk1NIYPaHR0cDovL3Rlc3QvOTU1hg9odHRwOi8v -+dGVzdC85NTaGD2h0dHA6Ly90ZXN0Lzk1N4YPaHR0cDovL3Rlc3QvOTU4hg9odHRw -+Oi8vdGVzdC85NTmGD2h0dHA6Ly90ZXN0Lzk2MIYPaHR0cDovL3Rlc3QvOTYxhg9o -+dHRwOi8vdGVzdC85NjKGD2h0dHA6Ly90ZXN0Lzk2M4YPaHR0cDovL3Rlc3QvOTY0 -+hg9odHRwOi8vdGVzdC85NjWGD2h0dHA6Ly90ZXN0Lzk2NoYPaHR0cDovL3Rlc3Qv -+OTY3hg9odHRwOi8vdGVzdC85NjiGD2h0dHA6Ly90ZXN0Lzk2OYYPaHR0cDovL3Rl -+c3QvOTcwhg9odHRwOi8vdGVzdC85NzGGD2h0dHA6Ly90ZXN0Lzk3MoYPaHR0cDov -+L3Rlc3QvOTczhg9odHRwOi8vdGVzdC85NzSGD2h0dHA6Ly90ZXN0Lzk3NYYPaHR0 -+cDovL3Rlc3QvOTc2hg9odHRwOi8vdGVzdC85NzeGD2h0dHA6Ly90ZXN0Lzk3OIYP -+aHR0cDovL3Rlc3QvOTc5hg9odHRwOi8vdGVzdC85ODCGD2h0dHA6Ly90ZXN0Lzk4 -+MYYPaHR0cDovL3Rlc3QvOTgyhg9odHRwOi8vdGVzdC85ODOGD2h0dHA6Ly90ZXN0 -+Lzk4NIYPaHR0cDovL3Rlc3QvOTg1hg9odHRwOi8vdGVzdC85ODaGD2h0dHA6Ly90 -+ZXN0Lzk4N4YPaHR0cDovL3Rlc3QvOTg4hg9odHRwOi8vdGVzdC85ODmGD2h0dHA6 -+Ly90ZXN0Lzk5MIYPaHR0cDovL3Rlc3QvOTkxhg9odHRwOi8vdGVzdC85OTKGD2h0 -+dHA6Ly90ZXN0Lzk5M4YPaHR0cDovL3Rlc3QvOTk0hg9odHRwOi8vdGVzdC85OTWG -+D2h0dHA6Ly90ZXN0Lzk5NoYPaHR0cDovL3Rlc3QvOTk3hg9odHRwOi8vdGVzdC85 -+OTiGD2h0dHA6Ly90ZXN0Lzk5OYYQaHR0cDovL3Rlc3QvMTAwMIYQaHR0cDovL3Rl -+c3QvMTAwMYYQaHR0cDovL3Rlc3QvMTAwMoYQaHR0cDovL3Rlc3QvMTAwM4YQaHR0 -+cDovL3Rlc3QvMTAwNIYQaHR0cDovL3Rlc3QvMTAwNYYQaHR0cDovL3Rlc3QvMTAw -+NoYQaHR0cDovL3Rlc3QvMTAwN4YQaHR0cDovL3Rlc3QvMTAwOIYQaHR0cDovL3Rl -+c3QvMTAwOYYQaHR0cDovL3Rlc3QvMTAxMIYQaHR0cDovL3Rlc3QvMTAxMYYQaHR0 -+cDovL3Rlc3QvMTAxMoYQaHR0cDovL3Rlc3QvMTAxM4YQaHR0cDovL3Rlc3QvMTAx -+NIYQaHR0cDovL3Rlc3QvMTAxNYYQaHR0cDovL3Rlc3QvMTAxNoYQaHR0cDovL3Rl -+c3QvMTAxN4YQaHR0cDovL3Rlc3QvMTAxOIYQaHR0cDovL3Rlc3QvMTAxOYYQaHR0 -+cDovL3Rlc3QvMTAyMIYQaHR0cDovL3Rlc3QvMTAyMYYQaHR0cDovL3Rlc3QvMTAy -+MoYQaHR0cDovL3Rlc3QvMTAyM4YQaHR0cDovL3Rlc3QvMTAyNDANBgkqhkiG9w0B -+AQsFAAOCAQEACAB/4EB10kM2P+Nsz8FKabIMG6ioa3ru7dAt7uJS2SofXawp9RLi -+rzvboG06tAnvdvpSaF8HX5+kUo8d2tq2k1SHR9A8Zn7/G+Me2lJMAEZbDOueuF4e -+2/fO3SwPTiMdY5jt5RjoBJyhHs1Y3glDTb+NS22OMummU0AXDOJZQ1UtP6uvqhNI -+rACsW98WxyAq6lDveXjJNNXFf48n0FpCOugTAVG8o7lTbx3kc1KN8Mec0UYZqihj -+PsxKX2MNHShL4LQ3g9uFjISGfjcVqO2oANoUl/3xyOpuOrcZwW9Tawv/KWAwfbY1 -+1rhYb1UyGMZEwwjYxJUle7oTBCY0fNQOoQ== - -----END CERTIFICATE----- - - Certificate: -@@ -771,7 +714,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f6 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -991,253 +934,6 @@ Certificate: - DNS:t168.test - DNS:t169.test - DNS:t170.test -- DNS:t171.test -- DNS:t172.test -- DNS:t173.test -- DNS:t174.test -- DNS:t175.test -- DNS:t176.test -- DNS:t177.test -- DNS:t178.test -- DNS:t179.test -- DNS:t180.test -- DNS:t181.test -- DNS:t182.test -- DNS:t183.test -- DNS:t184.test -- DNS:t185.test -- DNS:t186.test -- DNS:t187.test -- DNS:t188.test -- DNS:t189.test -- DNS:t190.test -- DNS:t191.test -- DNS:t192.test -- DNS:t193.test -- DNS:t194.test -- DNS:t195.test -- DNS:t196.test -- DNS:t197.test -- DNS:t198.test -- DNS:t199.test -- DNS:t200.test -- DNS:t201.test -- DNS:t202.test -- DNS:t203.test -- DNS:t204.test -- DNS:t205.test -- DNS:t206.test -- DNS:t207.test -- DNS:t208.test -- DNS:t209.test -- DNS:t210.test -- DNS:t211.test -- DNS:t212.test -- DNS:t213.test -- DNS:t214.test -- DNS:t215.test -- DNS:t216.test -- DNS:t217.test -- DNS:t218.test -- DNS:t219.test -- DNS:t220.test -- DNS:t221.test -- DNS:t222.test -- DNS:t223.test -- DNS:t224.test -- DNS:t225.test -- DNS:t226.test -- DNS:t227.test -- DNS:t228.test -- DNS:t229.test -- DNS:t230.test -- DNS:t231.test -- DNS:t232.test -- DNS:t233.test -- DNS:t234.test -- DNS:t235.test -- DNS:t236.test -- DNS:t237.test -- DNS:t238.test -- DNS:t239.test -- DNS:t240.test -- DNS:t241.test -- DNS:t242.test -- DNS:t243.test -- DNS:t244.test -- DNS:t245.test -- DNS:t246.test -- DNS:t247.test -- DNS:t248.test -- DNS:t249.test -- DNS:t250.test -- DNS:t251.test -- DNS:t252.test -- DNS:t253.test -- DNS:t254.test -- DNS:t255.test -- DNS:t256.test -- DNS:t257.test -- DNS:t258.test -- DNS:t259.test -- DNS:t260.test -- DNS:t261.test -- DNS:t262.test -- DNS:t263.test -- DNS:t264.test -- DNS:t265.test -- DNS:t266.test -- DNS:t267.test -- DNS:t268.test -- DNS:t269.test -- DNS:t270.test -- DNS:t271.test -- DNS:t272.test -- DNS:t273.test -- DNS:t274.test -- DNS:t275.test -- DNS:t276.test -- DNS:t277.test -- DNS:t278.test -- DNS:t279.test -- DNS:t280.test -- DNS:t281.test -- DNS:t282.test -- DNS:t283.test -- DNS:t284.test -- DNS:t285.test -- DNS:t286.test -- DNS:t287.test -- DNS:t288.test -- DNS:t289.test -- DNS:t290.test -- DNS:t291.test -- DNS:t292.test -- DNS:t293.test -- DNS:t294.test -- DNS:t295.test -- DNS:t296.test -- DNS:t297.test -- DNS:t298.test -- DNS:t299.test -- DNS:t300.test -- DNS:t301.test -- DNS:t302.test -- DNS:t303.test -- DNS:t304.test -- DNS:t305.test -- DNS:t306.test -- DNS:t307.test -- DNS:t308.test -- DNS:t309.test -- DNS:t310.test -- DNS:t311.test -- DNS:t312.test -- DNS:t313.test -- DNS:t314.test -- DNS:t315.test -- DNS:t316.test -- DNS:t317.test -- DNS:t318.test -- DNS:t319.test -- DNS:t320.test -- DNS:t321.test -- DNS:t322.test -- DNS:t323.test -- DNS:t324.test -- DNS:t325.test -- DNS:t326.test -- DNS:t327.test -- DNS:t328.test -- DNS:t329.test -- DNS:t330.test -- DNS:t331.test -- DNS:t332.test -- DNS:t333.test -- DNS:t334.test -- DNS:t335.test -- DNS:t336.test -- DNS:t337.test -- DNS:t338.test -- DNS:t339.test -- DNS:t340.test -- DNS:t341.test -- DNS:t342.test -- DNS:t343.test -- DNS:t344.test -- DNS:t345.test -- DNS:t346.test -- DNS:t347.test -- DNS:t348.test -- DNS:t349.test -- DNS:t350.test -- DNS:t351.test -- DNS:t352.test -- DNS:t353.test -- DNS:t354.test -- DNS:t355.test -- DNS:t356.test -- DNS:t357.test -- DNS:t358.test -- DNS:t359.test -- DNS:t360.test -- DNS:t361.test -- DNS:t362.test -- DNS:t363.test -- DNS:t364.test -- DNS:t365.test -- DNS:t366.test -- DNS:t367.test -- DNS:t368.test -- DNS:t369.test -- DNS:t370.test -- DNS:t371.test -- DNS:t372.test -- DNS:t373.test -- DNS:t374.test -- DNS:t375.test -- DNS:t376.test -- DNS:t377.test -- DNS:t378.test -- DNS:t379.test -- DNS:t380.test -- DNS:t381.test -- DNS:t382.test -- DNS:t383.test -- DNS:t384.test -- DNS:t385.test -- DNS:t386.test -- DNS:t387.test -- DNS:t388.test -- DNS:t389.test -- DNS:t390.test -- DNS:t391.test -- DNS:t392.test -- DNS:t393.test -- DNS:t394.test -- DNS:t395.test -- DNS:t396.test -- DNS:t397.test -- DNS:t398.test -- DNS:t399.test -- DNS:t400.test -- DNS:t401.test -- DNS:t402.test -- DNS:t403.test -- DNS:t404.test -- DNS:t405.test -- DNS:t406.test -- DNS:t407.test -- DNS:t408.test -- DNS:t409.test -- DNS:t410.test -- DNS:t411.test -- DNS:t412.test -- DNS:t413.test -- DNS:t414.test -- DNS:t415.test -- DNS:t416.test -- DNS:t417.test - IP:10.0.0.0/255.255.255.255 - IP:10.0.0.1/255.255.255.255 - IP:10.0.0.2/255.255.255.255 -@@ -1409,671 +1105,178 @@ Certificate: - IP:10.0.0.168/255.255.255.255 - IP:10.0.0.169/255.255.255.255 - IP:10.0.0.170/255.255.255.255 -- IP:10.0.0.171/255.255.255.255 -- IP:10.0.0.172/255.255.255.255 -- IP:10.0.0.173/255.255.255.255 -- IP:10.0.0.174/255.255.255.255 -- IP:10.0.0.175/255.255.255.255 -- IP:10.0.0.176/255.255.255.255 -- IP:10.0.0.177/255.255.255.255 -- IP:10.0.0.178/255.255.255.255 -- IP:10.0.0.179/255.255.255.255 -- IP:10.0.0.180/255.255.255.255 -- IP:10.0.0.181/255.255.255.255 -- IP:10.0.0.182/255.255.255.255 -- IP:10.0.0.183/255.255.255.255 -- IP:10.0.0.184/255.255.255.255 -- IP:10.0.0.185/255.255.255.255 -- IP:10.0.0.186/255.255.255.255 -- IP:10.0.0.187/255.255.255.255 -- IP:10.0.0.188/255.255.255.255 -- IP:10.0.0.189/255.255.255.255 -- IP:10.0.0.190/255.255.255.255 -- IP:10.0.0.191/255.255.255.255 -- IP:10.0.0.192/255.255.255.255 -- IP:10.0.0.193/255.255.255.255 -- IP:10.0.0.194/255.255.255.255 -- IP:10.0.0.195/255.255.255.255 -- IP:10.0.0.196/255.255.255.255 -- IP:10.0.0.197/255.255.255.255 -- IP:10.0.0.198/255.255.255.255 -- IP:10.0.0.199/255.255.255.255 -- IP:10.0.0.200/255.255.255.255 -- IP:10.0.0.201/255.255.255.255 -- IP:10.0.0.202/255.255.255.255 -- IP:10.0.0.203/255.255.255.255 -- IP:10.0.0.204/255.255.255.255 -- IP:10.0.0.205/255.255.255.255 -- IP:10.0.0.206/255.255.255.255 -- IP:10.0.0.207/255.255.255.255 -- IP:10.0.0.208/255.255.255.255 -- IP:10.0.0.209/255.255.255.255 -- IP:10.0.0.210/255.255.255.255 -- IP:10.0.0.211/255.255.255.255 -- IP:10.0.0.212/255.255.255.255 -- IP:10.0.0.213/255.255.255.255 -- IP:10.0.0.214/255.255.255.255 -- IP:10.0.0.215/255.255.255.255 -- IP:10.0.0.216/255.255.255.255 -- IP:10.0.0.217/255.255.255.255 -- IP:10.0.0.218/255.255.255.255 -- IP:10.0.0.219/255.255.255.255 -- IP:10.0.0.220/255.255.255.255 -- IP:10.0.0.221/255.255.255.255 -- IP:10.0.0.222/255.255.255.255 -- IP:10.0.0.223/255.255.255.255 -- IP:10.0.0.224/255.255.255.255 -- IP:10.0.0.225/255.255.255.255 -- IP:10.0.0.226/255.255.255.255 -- IP:10.0.0.227/255.255.255.255 -- IP:10.0.0.228/255.255.255.255 -- IP:10.0.0.229/255.255.255.255 -- IP:10.0.0.230/255.255.255.255 -- IP:10.0.0.231/255.255.255.255 -- IP:10.0.0.232/255.255.255.255 -- IP:10.0.0.233/255.255.255.255 -- IP:10.0.0.234/255.255.255.255 -- IP:10.0.0.235/255.255.255.255 -- IP:10.0.0.236/255.255.255.255 -- IP:10.0.0.237/255.255.255.255 -- IP:10.0.0.238/255.255.255.255 -- IP:10.0.0.239/255.255.255.255 -- IP:10.0.0.240/255.255.255.255 -- IP:10.0.0.241/255.255.255.255 -- IP:10.0.0.242/255.255.255.255 -- IP:10.0.0.243/255.255.255.255 -- IP:10.0.0.244/255.255.255.255 -- IP:10.0.0.245/255.255.255.255 -- IP:10.0.0.246/255.255.255.255 -- IP:10.0.0.247/255.255.255.255 -- IP:10.0.0.248/255.255.255.255 -- IP:10.0.0.249/255.255.255.255 -- IP:10.0.0.250/255.255.255.255 -- IP:10.0.0.251/255.255.255.255 -- IP:10.0.0.252/255.255.255.255 -- IP:10.0.0.253/255.255.255.255 -- IP:10.0.0.254/255.255.255.255 -- IP:10.0.0.255/255.255.255.255 -- IP:10.0.1.0/255.255.255.255 -- IP:10.0.1.1/255.255.255.255 -- IP:10.0.1.2/255.255.255.255 -- IP:10.0.1.3/255.255.255.255 -- IP:10.0.1.4/255.255.255.255 -- IP:10.0.1.5/255.255.255.255 -- IP:10.0.1.6/255.255.255.255 -- IP:10.0.1.7/255.255.255.255 -- IP:10.0.1.8/255.255.255.255 -- IP:10.0.1.9/255.255.255.255 -- IP:10.0.1.10/255.255.255.255 -- IP:10.0.1.11/255.255.255.255 -- IP:10.0.1.12/255.255.255.255 -- IP:10.0.1.13/255.255.255.255 -- IP:10.0.1.14/255.255.255.255 -- IP:10.0.1.15/255.255.255.255 -- IP:10.0.1.16/255.255.255.255 -- IP:10.0.1.17/255.255.255.255 -- IP:10.0.1.18/255.255.255.255 -- IP:10.0.1.19/255.255.255.255 -- IP:10.0.1.20/255.255.255.255 -- IP:10.0.1.21/255.255.255.255 -- IP:10.0.1.22/255.255.255.255 -- IP:10.0.1.23/255.255.255.255 -- IP:10.0.1.24/255.255.255.255 -- IP:10.0.1.25/255.255.255.255 -- IP:10.0.1.26/255.255.255.255 -- IP:10.0.1.27/255.255.255.255 -- IP:10.0.1.28/255.255.255.255 -- IP:10.0.1.29/255.255.255.255 -- IP:10.0.1.30/255.255.255.255 -- IP:10.0.1.31/255.255.255.255 -- IP:10.0.1.32/255.255.255.255 -- IP:10.0.1.33/255.255.255.255 -- IP:10.0.1.34/255.255.255.255 -- IP:10.0.1.35/255.255.255.255 -- IP:10.0.1.36/255.255.255.255 -- IP:10.0.1.37/255.255.255.255 -- IP:10.0.1.38/255.255.255.255 -- IP:10.0.1.39/255.255.255.255 -- IP:10.0.1.40/255.255.255.255 -- IP:10.0.1.41/255.255.255.255 -- IP:10.0.1.42/255.255.255.255 -- IP:10.0.1.43/255.255.255.255 -- IP:10.0.1.44/255.255.255.255 -- IP:10.0.1.45/255.255.255.255 -- IP:10.0.1.46/255.255.255.255 -- IP:10.0.1.47/255.255.255.255 -- IP:10.0.1.48/255.255.255.255 -- IP:10.0.1.49/255.255.255.255 -- IP:10.0.1.50/255.255.255.255 -- IP:10.0.1.51/255.255.255.255 -- IP:10.0.1.52/255.255.255.255 -- IP:10.0.1.53/255.255.255.255 -- IP:10.0.1.54/255.255.255.255 -- IP:10.0.1.55/255.255.255.255 -- IP:10.0.1.56/255.255.255.255 -- IP:10.0.1.57/255.255.255.255 -- IP:10.0.1.58/255.255.255.255 -- IP:10.0.1.59/255.255.255.255 -- IP:10.0.1.60/255.255.255.255 -- IP:10.0.1.61/255.255.255.255 -- IP:10.0.1.62/255.255.255.255 -- IP:10.0.1.63/255.255.255.255 -- IP:10.0.1.64/255.255.255.255 -- IP:10.0.1.65/255.255.255.255 -- IP:10.0.1.66/255.255.255.255 -- IP:10.0.1.67/255.255.255.255 -- IP:10.0.1.68/255.255.255.255 -- IP:10.0.1.69/255.255.255.255 -- IP:10.0.1.70/255.255.255.255 -- IP:10.0.1.71/255.255.255.255 -- IP:10.0.1.72/255.255.255.255 -- IP:10.0.1.73/255.255.255.255 -- IP:10.0.1.74/255.255.255.255 -- IP:10.0.1.75/255.255.255.255 -- IP:10.0.1.76/255.255.255.255 -- IP:10.0.1.77/255.255.255.255 -- IP:10.0.1.78/255.255.255.255 -- IP:10.0.1.79/255.255.255.255 -- IP:10.0.1.80/255.255.255.255 -- IP:10.0.1.81/255.255.255.255 -- IP:10.0.1.82/255.255.255.255 -- IP:10.0.1.83/255.255.255.255 -- IP:10.0.1.84/255.255.255.255 -- IP:10.0.1.85/255.255.255.255 -- IP:10.0.1.86/255.255.255.255 -- IP:10.0.1.87/255.255.255.255 -- IP:10.0.1.88/255.255.255.255 -- IP:10.0.1.89/255.255.255.255 -- IP:10.0.1.90/255.255.255.255 -- IP:10.0.1.91/255.255.255.255 -- IP:10.0.1.92/255.255.255.255 -- IP:10.0.1.93/255.255.255.255 -- IP:10.0.1.94/255.255.255.255 -- IP:10.0.1.95/255.255.255.255 -- IP:10.0.1.96/255.255.255.255 -- IP:10.0.1.97/255.255.255.255 -- IP:10.0.1.98/255.255.255.255 -- IP:10.0.1.99/255.255.255.255 -- IP:10.0.1.100/255.255.255.255 -- IP:10.0.1.101/255.255.255.255 -- IP:10.0.1.102/255.255.255.255 -- IP:10.0.1.103/255.255.255.255 -- IP:10.0.1.104/255.255.255.255 -- IP:10.0.1.105/255.255.255.255 -- IP:10.0.1.106/255.255.255.255 -- IP:10.0.1.107/255.255.255.255 -- IP:10.0.1.108/255.255.255.255 -- IP:10.0.1.109/255.255.255.255 -- IP:10.0.1.110/255.255.255.255 -- IP:10.0.1.111/255.255.255.255 -- IP:10.0.1.112/255.255.255.255 -- IP:10.0.1.113/255.255.255.255 -- IP:10.0.1.114/255.255.255.255 -- IP:10.0.1.115/255.255.255.255 -- IP:10.0.1.116/255.255.255.255 -- IP:10.0.1.117/255.255.255.255 -- IP:10.0.1.118/255.255.255.255 -- IP:10.0.1.119/255.255.255.255 -- IP:10.0.1.120/255.255.255.255 -- IP:10.0.1.121/255.255.255.255 -- IP:10.0.1.122/255.255.255.255 -- IP:10.0.1.123/255.255.255.255 -- IP:10.0.1.124/255.255.255.255 -- IP:10.0.1.125/255.255.255.255 -- IP:10.0.1.126/255.255.255.255 -- IP:10.0.1.127/255.255.255.255 -- IP:10.0.1.128/255.255.255.255 -- IP:10.0.1.129/255.255.255.255 -- IP:10.0.1.130/255.255.255.255 -- IP:10.0.1.131/255.255.255.255 -- IP:10.0.1.132/255.255.255.255 -- IP:10.0.1.133/255.255.255.255 -- IP:10.0.1.134/255.255.255.255 -- IP:10.0.1.135/255.255.255.255 -- IP:10.0.1.136/255.255.255.255 -- IP:10.0.1.137/255.255.255.255 -- IP:10.0.1.138/255.255.255.255 -- IP:10.0.1.139/255.255.255.255 -- IP:10.0.1.140/255.255.255.255 -- IP:10.0.1.141/255.255.255.255 -- IP:10.0.1.142/255.255.255.255 -- IP:10.0.1.143/255.255.255.255 -- IP:10.0.1.144/255.255.255.255 -- IP:10.0.1.145/255.255.255.255 -- IP:10.0.1.146/255.255.255.255 -- IP:10.0.1.147/255.255.255.255 -- IP:10.0.1.148/255.255.255.255 -- IP:10.0.1.149/255.255.255.255 -- IP:10.0.1.150/255.255.255.255 -- IP:10.0.1.151/255.255.255.255 -- IP:10.0.1.152/255.255.255.255 -- IP:10.0.1.153/255.255.255.255 -- IP:10.0.1.154/255.255.255.255 -- IP:10.0.1.155/255.255.255.255 -- IP:10.0.1.156/255.255.255.255 -- IP:10.0.1.157/255.255.255.255 -- IP:10.0.1.158/255.255.255.255 -- IP:10.0.1.159/255.255.255.255 -- IP:10.0.1.160/255.255.255.255 -- IP:10.0.1.161/255.255.255.255 -- DirName:CN = t0 -- DirName:CN = t1 -- DirName:CN = t2 -- DirName:CN = t3 -- DirName:CN = t4 -- DirName:CN = t5 -- DirName:CN = t6 -- DirName:CN = t7 -- DirName:CN = t8 -- DirName:CN = t9 -- DirName:CN = t10 -- DirName:CN = t11 -- DirName:CN = t12 -- DirName:CN = t13 -- DirName:CN = t14 -- DirName:CN = t15 -- DirName:CN = t16 -- DirName:CN = t17 -- DirName:CN = t18 -- DirName:CN = t19 -- DirName:CN = t20 -- DirName:CN = t21 -- DirName:CN = t22 -- DirName:CN = t23 -- DirName:CN = t24 -- DirName:CN = t25 -- DirName:CN = t26 -- DirName:CN = t27 -- DirName:CN = t28 -- DirName:CN = t29 -- DirName:CN = t30 -- DirName:CN = t31 -- DirName:CN = t32 -- DirName:CN = t33 -- DirName:CN = t34 -- DirName:CN = t35 -- DirName:CN = t36 -- DirName:CN = t37 -- DirName:CN = t38 -- DirName:CN = t39 -- DirName:CN = t40 -- DirName:CN = t41 -- DirName:CN = t42 -- DirName:CN = t43 -- DirName:CN = t44 -- DirName:CN = t45 -- DirName:CN = t46 -- DirName:CN = t47 -- DirName:CN = t48 -- DirName:CN = t49 -- DirName:CN = t50 -- DirName:CN = t51 -- DirName:CN = t52 -- DirName:CN = t53 -- DirName:CN = t54 -- DirName:CN = t55 -- DirName:CN = t56 -- DirName:CN = t57 -- DirName:CN = t58 -- DirName:CN = t59 -- DirName:CN = t60 -- DirName:CN = t61 -- DirName:CN = t62 -- DirName:CN = t63 -- DirName:CN = t64 -- DirName:CN = t65 -- DirName:CN = t66 -- DirName:CN = t67 -- DirName:CN = t68 -- DirName:CN = t69 -- DirName:CN = t70 -- DirName:CN = t71 -- DirName:CN = t72 -- DirName:CN = t73 -- DirName:CN = t74 -- DirName:CN = t75 -- DirName:CN = t76 -- DirName:CN = t77 -- DirName:CN = t78 -- DirName:CN = t79 -- DirName:CN = t80 -- DirName:CN = t81 -- DirName:CN = t82 -- DirName:CN = t83 -- DirName:CN = t84 -- DirName:CN = t85 -- DirName:CN = t86 -- DirName:CN = t87 -- DirName:CN = t88 -- DirName:CN = t89 -- DirName:CN = t90 -- DirName:CN = t91 -- DirName:CN = t92 -- DirName:CN = t93 -- DirName:CN = t94 -- DirName:CN = t95 -- DirName:CN = t96 -- DirName:CN = t97 -- DirName:CN = t98 -- DirName:CN = t99 -- DirName:CN = t100 -- DirName:CN = t101 -- DirName:CN = t102 -- DirName:CN = t103 -- DirName:CN = t104 -- DirName:CN = t105 -- DirName:CN = t106 -- DirName:CN = t107 -- DirName:CN = t108 -- DirName:CN = t109 -- DirName:CN = t110 -- DirName:CN = t111 -- DirName:CN = t112 -- DirName:CN = t113 -- DirName:CN = t114 -- DirName:CN = t115 -- DirName:CN = t116 -- DirName:CN = t117 -- DirName:CN = t118 -- DirName:CN = t119 -- DirName:CN = t120 -- DirName:CN = t121 -- DirName:CN = t122 -- DirName:CN = t123 -- DirName:CN = t124 -- DirName:CN = t125 -- DirName:CN = t126 -- DirName:CN = t127 -- DirName:CN = t128 -- DirName:CN = t129 -- DirName:CN = t130 -- DirName:CN = t131 -- DirName:CN = t132 -- DirName:CN = t133 -- DirName:CN = t134 -- DirName:CN = t135 -- DirName:CN = t136 -- DirName:CN = t137 -- DirName:CN = t138 -- DirName:CN = t139 -- DirName:CN = t140 -- DirName:CN = t141 -- DirName:CN = t142 -- DirName:CN = t143 -- DirName:CN = t144 -- DirName:CN = t145 -- DirName:CN = t146 -- DirName:CN = t147 -- DirName:CN = t148 -- DirName:CN = t149 -- DirName:CN = t150 -- DirName:CN = t151 -- DirName:CN = t152 -- DirName:CN = t153 -- DirName:CN = t154 -- DirName:CN = t155 -- DirName:CN = t156 -- DirName:CN = t157 -- DirName:CN = t158 -- DirName:CN = t159 -- DirName:CN = t160 -- DirName:CN = t161 -- DirName:CN = t162 -- DirName:CN = t163 -- DirName:CN = t164 -- DirName:CN = t165 -- DirName:CN = t166 -- DirName:CN = t167 -- DirName:CN = t168 -- DirName:CN = t169 -- DirName:CN = t170 -- DirName:CN = t171 -- DirName:CN = t172 -- DirName:CN = t173 -- DirName:CN = t174 -- DirName:CN = t175 -- DirName:CN = t176 -- DirName:CN = t177 -- DirName:CN = t178 -- DirName:CN = t179 -- DirName:CN = t180 -- DirName:CN = t181 -- DirName:CN = t182 -- DirName:CN = t183 -- DirName:CN = t184 -- DirName:CN = t185 -- DirName:CN = t186 -- DirName:CN = t187 -- DirName:CN = t188 -- DirName:CN = t189 -- DirName:CN = t190 -- DirName:CN = t191 -- DirName:CN = t192 -- DirName:CN = t193 -- DirName:CN = t194 -- DirName:CN = t195 -- DirName:CN = t196 -- DirName:CN = t197 -- DirName:CN = t198 -- DirName:CN = t199 -- DirName:CN = t200 -- DirName:CN = t201 -- DirName:CN = t202 -- DirName:CN = t203 -- DirName:CN = t204 -- DirName:CN = t205 -- DirName:CN = t206 -- DirName:CN = t207 -- DirName:CN = t208 -- DirName:CN = t209 -- DirName:CN = t210 -- DirName:CN = t211 -- DirName:CN = t212 -- DirName:CN = t213 -- DirName:CN = t214 -- DirName:CN = t215 -- DirName:CN = t216 -- DirName:CN = t217 -- DirName:CN = t218 -- DirName:CN = t219 -- DirName:CN = t220 -- DirName:CN = t221 -- DirName:CN = t222 -- DirName:CN = t223 -- DirName:CN = t224 -- DirName:CN = t225 -- DirName:CN = t226 -- DirName:CN = t227 -- DirName:CN = t228 -- DirName:CN = t229 -- DirName:CN = t230 -- DirName:CN = t231 -- DirName:CN = t232 -- DirName:CN = t233 -- DirName:CN = t234 -- DirName:CN = t235 -- DirName:CN = t236 -- DirName:CN = t237 -- DirName:CN = t238 -- DirName:CN = t239 -- DirName:CN = t240 -- DirName:CN = t241 -- DirName:CN = t242 -- DirName:CN = t243 -- DirName:CN = t244 -- DirName:CN = t245 -- DirName:CN = t246 -- DirName:CN = t247 -- DirName:CN = t248 -- DirName:CN = t249 -- DirName:CN = t250 -- DirName:CN = t251 -- DirName:CN = t252 -- DirName:CN = t253 -- DirName:CN = t254 -- DirName:CN = t255 -- DirName:CN = t256 -- DirName:CN = t257 -- DirName:CN = t258 -- DirName:CN = t259 -- DirName:CN = t260 -- DirName:CN = t261 -- DirName:CN = t262 -- DirName:CN = t263 -- DirName:CN = t264 -- DirName:CN = t265 -- DirName:CN = t266 -- DirName:CN = t267 -- DirName:CN = t268 -- DirName:CN = t269 -- DirName:CN = t270 -- DirName:CN = t271 -- DirName:CN = t272 -- DirName:CN = t273 -- DirName:CN = t274 -- DirName:CN = t275 -- DirName:CN = t276 -- DirName:CN = t277 -- DirName:CN = t278 -- DirName:CN = t279 -- DirName:CN = t280 -- DirName:CN = t281 -- DirName:CN = t282 -- DirName:CN = t283 -- DirName:CN = t284 -- DirName:CN = t285 -- DirName:CN = t286 -- DirName:CN = t287 -- DirName:CN = t288 -- DirName:CN = t289 -- DirName:CN = t290 -- DirName:CN = t291 -- DirName:CN = t292 -- DirName:CN = t293 -- DirName:CN = t294 -- DirName:CN = t295 -- DirName:CN = t296 -- DirName:CN = t297 -- DirName:CN = t298 -- DirName:CN = t299 -- DirName:CN = t300 -- DirName:CN = t301 -- DirName:CN = t302 -- DirName:CN = t303 -- DirName:CN = t304 -- DirName:CN = t305 -- DirName:CN = t306 -- DirName:CN = t307 -- DirName:CN = t308 -- DirName:CN = t309 -- DirName:CN = t310 -- DirName:CN = t311 -- DirName:CN = t312 -- DirName:CN = t313 -- DirName:CN = t314 -- DirName:CN = t315 -- DirName:CN = t316 -- DirName:CN = t317 -- DirName:CN = t318 -- DirName:CN = t319 -- DirName:CN = t320 -- DirName:CN = t321 -- DirName:CN = t322 -- DirName:CN = t323 -- DirName:CN = t324 -- DirName:CN = t325 -- DirName:CN = t326 -- DirName:CN = t327 -- DirName:CN = t328 -- DirName:CN = t329 -- DirName:CN = t330 -- DirName:CN = t331 -- DirName:CN = t332 -- DirName:CN = t333 -- DirName:CN = t334 -- DirName:CN = t335 -- DirName:CN = t336 -- DirName:CN = t337 -- DirName:CN = t338 -- DirName:CN = t339 -- DirName:CN = t340 -- DirName:CN = t341 -- DirName:CN = t342 -- DirName:CN = t343 -- DirName:CN = t344 -- DirName:CN = t345 -- DirName:CN = t346 -- DirName:CN = t347 -- DirName:CN = t348 -- DirName:CN = t349 -- DirName:CN = t350 -- DirName:CN = t351 -- DirName:CN = t352 -- DirName:CN = t353 -- DirName:CN = t354 -- DirName:CN = t355 -- DirName:CN = t356 -- DirName:CN = t357 -- DirName:CN = t358 -- DirName:CN = t359 -- DirName:CN = t360 -- DirName:CN = t361 -- DirName:CN = t362 -- DirName:CN = t363 -- DirName:CN = t364 -- DirName:CN = t365 -- DirName:CN = t366 -- DirName:CN = t367 -- DirName:CN = t368 -- DirName:CN = t369 -- DirName:CN = t370 -- DirName:CN = t371 -- DirName:CN = t372 -- DirName:CN = t373 -- DirName:CN = t374 -- DirName:CN = t375 -- DirName:CN = t376 -- DirName:CN = t377 -- DirName:CN = t378 -- DirName:CN = t379 -- DirName:CN = t380 -- DirName:CN = t381 -- DirName:CN = t382 -- DirName:CN = t383 -- DirName:CN = t384 -- DirName:CN = t385 -- DirName:CN = t386 -- DirName:CN = t387 -- DirName:CN = t388 -- DirName:CN = t389 -- DirName:CN = t390 -- DirName:CN = t391 -- DirName:CN = t392 -- DirName:CN = t393 -- DirName:CN = t394 -- DirName:CN = t395 -- DirName:CN = t396 -- DirName:CN = t397 -- DirName:CN = t398 -- DirName:CN = t399 -- DirName:CN = t400 -- DirName:CN = t401 -- DirName:CN = t402 -- DirName:CN = t403 -- DirName:CN = t404 -- DirName:CN = t405 -- DirName:CN = t406 -- DirName:CN = t407 -- DirName:CN = t408 -- DirName:CN = t409 -- DirName:CN = t410 -- DirName:CN = t411 -- DirName:CN = t412 -- DirName:CN = t413 -- DirName:CN = t414 -- DirName:CN = t415 -- DirName:CN = t416 -- DirName:CN = t417 -+ DirName: CN = t0 -+ DirName: CN = t1 -+ DirName: CN = t2 -+ DirName: CN = t3 -+ DirName: CN = t4 -+ DirName: CN = t5 -+ DirName: CN = t6 -+ DirName: CN = t7 -+ DirName: CN = t8 -+ DirName: CN = t9 -+ DirName: CN = t10 -+ DirName: CN = t11 -+ DirName: CN = t12 -+ DirName: CN = t13 -+ DirName: CN = t14 -+ DirName: CN = t15 -+ DirName: CN = t16 -+ DirName: CN = t17 -+ DirName: CN = t18 -+ DirName: CN = t19 -+ DirName: CN = t20 -+ DirName: CN = t21 -+ DirName: CN = t22 -+ DirName: CN = t23 -+ DirName: CN = t24 -+ DirName: CN = t25 -+ DirName: CN = t26 -+ DirName: CN = t27 -+ DirName: CN = t28 -+ DirName: CN = t29 -+ DirName: CN = t30 -+ DirName: CN = t31 -+ DirName: CN = t32 -+ DirName: CN = t33 -+ DirName: CN = t34 -+ DirName: CN = t35 -+ DirName: CN = t36 -+ DirName: CN = t37 -+ DirName: CN = t38 -+ DirName: CN = t39 -+ DirName: CN = t40 -+ DirName: CN = t41 -+ DirName: CN = t42 -+ DirName: CN = t43 -+ DirName: CN = t44 -+ DirName: CN = t45 -+ DirName: CN = t46 -+ DirName: CN = t47 -+ DirName: CN = t48 -+ DirName: CN = t49 -+ DirName: CN = t50 -+ DirName: CN = t51 -+ DirName: CN = t52 -+ DirName: CN = t53 -+ DirName: CN = t54 -+ DirName: CN = t55 -+ DirName: CN = t56 -+ DirName: CN = t57 -+ DirName: CN = t58 -+ DirName: CN = t59 -+ DirName: CN = t60 -+ DirName: CN = t61 -+ DirName: CN = t62 -+ DirName: CN = t63 -+ DirName: CN = t64 -+ DirName: CN = t65 -+ DirName: CN = t66 -+ DirName: CN = t67 -+ DirName: CN = t68 -+ DirName: CN = t69 -+ DirName: CN = t70 -+ DirName: CN = t71 -+ DirName: CN = t72 -+ DirName: CN = t73 -+ DirName: CN = t74 -+ DirName: CN = t75 -+ DirName: CN = t76 -+ DirName: CN = t77 -+ DirName: CN = t78 -+ DirName: CN = t79 -+ DirName: CN = t80 -+ DirName: CN = t81 -+ DirName: CN = t82 -+ DirName: CN = t83 -+ DirName: CN = t84 -+ DirName: CN = t85 -+ DirName: CN = t86 -+ DirName: CN = t87 -+ DirName: CN = t88 -+ DirName: CN = t89 -+ DirName: CN = t90 -+ DirName: CN = t91 -+ DirName: CN = t92 -+ DirName: CN = t93 -+ DirName: CN = t94 -+ DirName: CN = t95 -+ DirName: CN = t96 -+ DirName: CN = t97 -+ DirName: CN = t98 -+ DirName: CN = t99 -+ DirName: CN = t100 -+ DirName: CN = t101 -+ DirName: CN = t102 -+ DirName: CN = t103 -+ DirName: CN = t104 -+ DirName: CN = t105 -+ DirName: CN = t106 -+ DirName: CN = t107 -+ DirName: CN = t108 -+ DirName: CN = t109 -+ DirName: CN = t110 -+ DirName: CN = t111 -+ DirName: CN = t112 -+ DirName: CN = t113 -+ DirName: CN = t114 -+ DirName: CN = t115 -+ DirName: CN = t116 -+ DirName: CN = t117 -+ DirName: CN = t118 -+ DirName: CN = t119 -+ DirName: CN = t120 -+ DirName: CN = t121 -+ DirName: CN = t122 -+ DirName: CN = t123 -+ DirName: CN = t124 -+ DirName: CN = t125 -+ DirName: CN = t126 -+ DirName: CN = t127 -+ DirName: CN = t128 -+ DirName: CN = t129 -+ DirName: CN = t130 -+ DirName: CN = t131 -+ DirName: CN = t132 -+ DirName: CN = t133 -+ DirName: CN = t134 -+ DirName: CN = t135 -+ DirName: CN = t136 -+ DirName: CN = t137 -+ DirName: CN = t138 -+ DirName: CN = t139 -+ DirName: CN = t140 -+ DirName: CN = t141 -+ DirName: CN = t142 -+ DirName: CN = t143 -+ DirName: CN = t144 -+ DirName: CN = t145 -+ DirName: CN = t146 -+ DirName: CN = t147 -+ DirName: CN = t148 -+ DirName: CN = t149 -+ DirName: CN = t150 -+ DirName: CN = t151 -+ DirName: CN = t152 -+ DirName: CN = t153 -+ DirName: CN = t154 -+ DirName: CN = t155 -+ DirName: CN = t156 -+ DirName: CN = t157 -+ DirName: CN = t158 -+ DirName: CN = t159 -+ DirName: CN = t160 -+ DirName: CN = t161 -+ DirName: CN = t162 -+ DirName: CN = t163 -+ DirName: CN = t164 -+ DirName: CN = t165 -+ DirName: CN = t166 -+ DirName: CN = t167 -+ DirName: CN = t168 -+ DirName: CN = t169 -+ DirName: CN = t170 -+ DirName: CN = t171 - URI:http://test/0 - URI:http://test/1 - URI:http://test/2 -@@ -3270,254 +2473,6 @@ Certificate: - DNS:x167.test - DNS:x168.test - DNS:x169.test -- DNS:x170.test -- DNS:x171.test -- DNS:x172.test -- DNS:x173.test -- DNS:x174.test -- DNS:x175.test -- DNS:x176.test -- DNS:x177.test -- DNS:x178.test -- DNS:x179.test -- DNS:x180.test -- DNS:x181.test -- DNS:x182.test -- DNS:x183.test -- DNS:x184.test -- DNS:x185.test -- DNS:x186.test -- DNS:x187.test -- DNS:x188.test -- DNS:x189.test -- DNS:x190.test -- DNS:x191.test -- DNS:x192.test -- DNS:x193.test -- DNS:x194.test -- DNS:x195.test -- DNS:x196.test -- DNS:x197.test -- DNS:x198.test -- DNS:x199.test -- DNS:x200.test -- DNS:x201.test -- DNS:x202.test -- DNS:x203.test -- DNS:x204.test -- DNS:x205.test -- DNS:x206.test -- DNS:x207.test -- DNS:x208.test -- DNS:x209.test -- DNS:x210.test -- DNS:x211.test -- DNS:x212.test -- DNS:x213.test -- DNS:x214.test -- DNS:x215.test -- DNS:x216.test -- DNS:x217.test -- DNS:x218.test -- DNS:x219.test -- DNS:x220.test -- DNS:x221.test -- DNS:x222.test -- DNS:x223.test -- DNS:x224.test -- DNS:x225.test -- DNS:x226.test -- DNS:x227.test -- DNS:x228.test -- DNS:x229.test -- DNS:x230.test -- DNS:x231.test -- DNS:x232.test -- DNS:x233.test -- DNS:x234.test -- DNS:x235.test -- DNS:x236.test -- DNS:x237.test -- DNS:x238.test -- DNS:x239.test -- DNS:x240.test -- DNS:x241.test -- DNS:x242.test -- DNS:x243.test -- DNS:x244.test -- DNS:x245.test -- DNS:x246.test -- DNS:x247.test -- DNS:x248.test -- DNS:x249.test -- DNS:x250.test -- DNS:x251.test -- DNS:x252.test -- DNS:x253.test -- DNS:x254.test -- DNS:x255.test -- DNS:x256.test -- DNS:x257.test -- DNS:x258.test -- DNS:x259.test -- DNS:x260.test -- DNS:x261.test -- DNS:x262.test -- DNS:x263.test -- DNS:x264.test -- DNS:x265.test -- DNS:x266.test -- DNS:x267.test -- DNS:x268.test -- DNS:x269.test -- DNS:x270.test -- DNS:x271.test -- DNS:x272.test -- DNS:x273.test -- DNS:x274.test -- DNS:x275.test -- DNS:x276.test -- DNS:x277.test -- DNS:x278.test -- DNS:x279.test -- DNS:x280.test -- DNS:x281.test -- DNS:x282.test -- DNS:x283.test -- DNS:x284.test -- DNS:x285.test -- DNS:x286.test -- DNS:x287.test -- DNS:x288.test -- DNS:x289.test -- DNS:x290.test -- DNS:x291.test -- DNS:x292.test -- DNS:x293.test -- DNS:x294.test -- DNS:x295.test -- DNS:x296.test -- DNS:x297.test -- DNS:x298.test -- DNS:x299.test -- DNS:x300.test -- DNS:x301.test -- DNS:x302.test -- DNS:x303.test -- DNS:x304.test -- DNS:x305.test -- DNS:x306.test -- DNS:x307.test -- DNS:x308.test -- DNS:x309.test -- DNS:x310.test -- DNS:x311.test -- DNS:x312.test -- DNS:x313.test -- DNS:x314.test -- DNS:x315.test -- DNS:x316.test -- DNS:x317.test -- DNS:x318.test -- DNS:x319.test -- DNS:x320.test -- DNS:x321.test -- DNS:x322.test -- DNS:x323.test -- DNS:x324.test -- DNS:x325.test -- DNS:x326.test -- DNS:x327.test -- DNS:x328.test -- DNS:x329.test -- DNS:x330.test -- DNS:x331.test -- DNS:x332.test -- DNS:x333.test -- DNS:x334.test -- DNS:x335.test -- DNS:x336.test -- DNS:x337.test -- DNS:x338.test -- DNS:x339.test -- DNS:x340.test -- DNS:x341.test -- DNS:x342.test -- DNS:x343.test -- DNS:x344.test -- DNS:x345.test -- DNS:x346.test -- DNS:x347.test -- DNS:x348.test -- DNS:x349.test -- DNS:x350.test -- DNS:x351.test -- DNS:x352.test -- DNS:x353.test -- DNS:x354.test -- DNS:x355.test -- DNS:x356.test -- DNS:x357.test -- DNS:x358.test -- DNS:x359.test -- DNS:x360.test -- DNS:x361.test -- DNS:x362.test -- DNS:x363.test -- DNS:x364.test -- DNS:x365.test -- DNS:x366.test -- DNS:x367.test -- DNS:x368.test -- DNS:x369.test -- DNS:x370.test -- DNS:x371.test -- DNS:x372.test -- DNS:x373.test -- DNS:x374.test -- DNS:x375.test -- DNS:x376.test -- DNS:x377.test -- DNS:x378.test -- DNS:x379.test -- DNS:x380.test -- DNS:x381.test -- DNS:x382.test -- DNS:x383.test -- DNS:x384.test -- DNS:x385.test -- DNS:x386.test -- DNS:x387.test -- DNS:x388.test -- DNS:x389.test -- DNS:x390.test -- DNS:x391.test -- DNS:x392.test -- DNS:x393.test -- DNS:x394.test -- DNS:x395.test -- DNS:x396.test -- DNS:x397.test -- DNS:x398.test -- DNS:x399.test -- DNS:x400.test -- DNS:x401.test -- DNS:x402.test -- DNS:x403.test -- DNS:x404.test -- DNS:x405.test -- DNS:x406.test -- DNS:x407.test -- DNS:x408.test -- DNS:x409.test -- DNS:x410.test -- DNS:x411.test -- DNS:x412.test -- DNS:x413.test -- DNS:x414.test -- DNS:x415.test -- DNS:x416.test -- DNS:x417.test - IP:11.0.0.0/255.255.255.255 - IP:11.0.0.1/255.255.255.255 - IP:11.0.0.2/255.255.255.255 -@@ -3688,672 +2643,176 @@ Certificate: - IP:11.0.0.167/255.255.255.255 - IP:11.0.0.168/255.255.255.255 - IP:11.0.0.169/255.255.255.255 -- IP:11.0.0.170/255.255.255.255 -- IP:11.0.0.171/255.255.255.255 -- IP:11.0.0.172/255.255.255.255 -- IP:11.0.0.173/255.255.255.255 -- IP:11.0.0.174/255.255.255.255 -- IP:11.0.0.175/255.255.255.255 -- IP:11.0.0.176/255.255.255.255 -- IP:11.0.0.177/255.255.255.255 -- IP:11.0.0.178/255.255.255.255 -- IP:11.0.0.179/255.255.255.255 -- IP:11.0.0.180/255.255.255.255 -- IP:11.0.0.181/255.255.255.255 -- IP:11.0.0.182/255.255.255.255 -- IP:11.0.0.183/255.255.255.255 -- IP:11.0.0.184/255.255.255.255 -- IP:11.0.0.185/255.255.255.255 -- IP:11.0.0.186/255.255.255.255 -- IP:11.0.0.187/255.255.255.255 -- IP:11.0.0.188/255.255.255.255 -- IP:11.0.0.189/255.255.255.255 -- IP:11.0.0.190/255.255.255.255 -- IP:11.0.0.191/255.255.255.255 -- IP:11.0.0.192/255.255.255.255 -- IP:11.0.0.193/255.255.255.255 -- IP:11.0.0.194/255.255.255.255 -- IP:11.0.0.195/255.255.255.255 -- IP:11.0.0.196/255.255.255.255 -- IP:11.0.0.197/255.255.255.255 -- IP:11.0.0.198/255.255.255.255 -- IP:11.0.0.199/255.255.255.255 -- IP:11.0.0.200/255.255.255.255 -- IP:11.0.0.201/255.255.255.255 -- IP:11.0.0.202/255.255.255.255 -- IP:11.0.0.203/255.255.255.255 -- IP:11.0.0.204/255.255.255.255 -- IP:11.0.0.205/255.255.255.255 -- IP:11.0.0.206/255.255.255.255 -- IP:11.0.0.207/255.255.255.255 -- IP:11.0.0.208/255.255.255.255 -- IP:11.0.0.209/255.255.255.255 -- IP:11.0.0.210/255.255.255.255 -- IP:11.0.0.211/255.255.255.255 -- IP:11.0.0.212/255.255.255.255 -- IP:11.0.0.213/255.255.255.255 -- IP:11.0.0.214/255.255.255.255 -- IP:11.0.0.215/255.255.255.255 -- IP:11.0.0.216/255.255.255.255 -- IP:11.0.0.217/255.255.255.255 -- IP:11.0.0.218/255.255.255.255 -- IP:11.0.0.219/255.255.255.255 -- IP:11.0.0.220/255.255.255.255 -- IP:11.0.0.221/255.255.255.255 -- IP:11.0.0.222/255.255.255.255 -- IP:11.0.0.223/255.255.255.255 -- IP:11.0.0.224/255.255.255.255 -- IP:11.0.0.225/255.255.255.255 -- IP:11.0.0.226/255.255.255.255 -- IP:11.0.0.227/255.255.255.255 -- IP:11.0.0.228/255.255.255.255 -- IP:11.0.0.229/255.255.255.255 -- IP:11.0.0.230/255.255.255.255 -- IP:11.0.0.231/255.255.255.255 -- IP:11.0.0.232/255.255.255.255 -- IP:11.0.0.233/255.255.255.255 -- IP:11.0.0.234/255.255.255.255 -- IP:11.0.0.235/255.255.255.255 -- IP:11.0.0.236/255.255.255.255 -- IP:11.0.0.237/255.255.255.255 -- IP:11.0.0.238/255.255.255.255 -- IP:11.0.0.239/255.255.255.255 -- IP:11.0.0.240/255.255.255.255 -- IP:11.0.0.241/255.255.255.255 -- IP:11.0.0.242/255.255.255.255 -- IP:11.0.0.243/255.255.255.255 -- IP:11.0.0.244/255.255.255.255 -- IP:11.0.0.245/255.255.255.255 -- IP:11.0.0.246/255.255.255.255 -- IP:11.0.0.247/255.255.255.255 -- IP:11.0.0.248/255.255.255.255 -- IP:11.0.0.249/255.255.255.255 -- IP:11.0.0.250/255.255.255.255 -- IP:11.0.0.251/255.255.255.255 -- IP:11.0.0.252/255.255.255.255 -- IP:11.0.0.253/255.255.255.255 -- IP:11.0.0.254/255.255.255.255 -- IP:11.0.0.255/255.255.255.255 -- IP:11.0.1.0/255.255.255.255 -- IP:11.0.1.1/255.255.255.255 -- IP:11.0.1.2/255.255.255.255 -- IP:11.0.1.3/255.255.255.255 -- IP:11.0.1.4/255.255.255.255 -- IP:11.0.1.5/255.255.255.255 -- IP:11.0.1.6/255.255.255.255 -- IP:11.0.1.7/255.255.255.255 -- IP:11.0.1.8/255.255.255.255 -- IP:11.0.1.9/255.255.255.255 -- IP:11.0.1.10/255.255.255.255 -- IP:11.0.1.11/255.255.255.255 -- IP:11.0.1.12/255.255.255.255 -- IP:11.0.1.13/255.255.255.255 -- IP:11.0.1.14/255.255.255.255 -- IP:11.0.1.15/255.255.255.255 -- IP:11.0.1.16/255.255.255.255 -- IP:11.0.1.17/255.255.255.255 -- IP:11.0.1.18/255.255.255.255 -- IP:11.0.1.19/255.255.255.255 -- IP:11.0.1.20/255.255.255.255 -- IP:11.0.1.21/255.255.255.255 -- IP:11.0.1.22/255.255.255.255 -- IP:11.0.1.23/255.255.255.255 -- IP:11.0.1.24/255.255.255.255 -- IP:11.0.1.25/255.255.255.255 -- IP:11.0.1.26/255.255.255.255 -- IP:11.0.1.27/255.255.255.255 -- IP:11.0.1.28/255.255.255.255 -- IP:11.0.1.29/255.255.255.255 -- IP:11.0.1.30/255.255.255.255 -- IP:11.0.1.31/255.255.255.255 -- IP:11.0.1.32/255.255.255.255 -- IP:11.0.1.33/255.255.255.255 -- IP:11.0.1.34/255.255.255.255 -- IP:11.0.1.35/255.255.255.255 -- IP:11.0.1.36/255.255.255.255 -- IP:11.0.1.37/255.255.255.255 -- IP:11.0.1.38/255.255.255.255 -- IP:11.0.1.39/255.255.255.255 -- IP:11.0.1.40/255.255.255.255 -- IP:11.0.1.41/255.255.255.255 -- IP:11.0.1.42/255.255.255.255 -- IP:11.0.1.43/255.255.255.255 -- IP:11.0.1.44/255.255.255.255 -- IP:11.0.1.45/255.255.255.255 -- IP:11.0.1.46/255.255.255.255 -- IP:11.0.1.47/255.255.255.255 -- IP:11.0.1.48/255.255.255.255 -- IP:11.0.1.49/255.255.255.255 -- IP:11.0.1.50/255.255.255.255 -- IP:11.0.1.51/255.255.255.255 -- IP:11.0.1.52/255.255.255.255 -- IP:11.0.1.53/255.255.255.255 -- IP:11.0.1.54/255.255.255.255 -- IP:11.0.1.55/255.255.255.255 -- IP:11.0.1.56/255.255.255.255 -- IP:11.0.1.57/255.255.255.255 -- IP:11.0.1.58/255.255.255.255 -- IP:11.0.1.59/255.255.255.255 -- IP:11.0.1.60/255.255.255.255 -- IP:11.0.1.61/255.255.255.255 -- IP:11.0.1.62/255.255.255.255 -- IP:11.0.1.63/255.255.255.255 -- IP:11.0.1.64/255.255.255.255 -- IP:11.0.1.65/255.255.255.255 -- IP:11.0.1.66/255.255.255.255 -- IP:11.0.1.67/255.255.255.255 -- IP:11.0.1.68/255.255.255.255 -- IP:11.0.1.69/255.255.255.255 -- IP:11.0.1.70/255.255.255.255 -- IP:11.0.1.71/255.255.255.255 -- IP:11.0.1.72/255.255.255.255 -- IP:11.0.1.73/255.255.255.255 -- IP:11.0.1.74/255.255.255.255 -- IP:11.0.1.75/255.255.255.255 -- IP:11.0.1.76/255.255.255.255 -- IP:11.0.1.77/255.255.255.255 -- IP:11.0.1.78/255.255.255.255 -- IP:11.0.1.79/255.255.255.255 -- IP:11.0.1.80/255.255.255.255 -- IP:11.0.1.81/255.255.255.255 -- IP:11.0.1.82/255.255.255.255 -- IP:11.0.1.83/255.255.255.255 -- IP:11.0.1.84/255.255.255.255 -- IP:11.0.1.85/255.255.255.255 -- IP:11.0.1.86/255.255.255.255 -- IP:11.0.1.87/255.255.255.255 -- IP:11.0.1.88/255.255.255.255 -- IP:11.0.1.89/255.255.255.255 -- IP:11.0.1.90/255.255.255.255 -- IP:11.0.1.91/255.255.255.255 -- IP:11.0.1.92/255.255.255.255 -- IP:11.0.1.93/255.255.255.255 -- IP:11.0.1.94/255.255.255.255 -- IP:11.0.1.95/255.255.255.255 -- IP:11.0.1.96/255.255.255.255 -- IP:11.0.1.97/255.255.255.255 -- IP:11.0.1.98/255.255.255.255 -- IP:11.0.1.99/255.255.255.255 -- IP:11.0.1.100/255.255.255.255 -- IP:11.0.1.101/255.255.255.255 -- IP:11.0.1.102/255.255.255.255 -- IP:11.0.1.103/255.255.255.255 -- IP:11.0.1.104/255.255.255.255 -- IP:11.0.1.105/255.255.255.255 -- IP:11.0.1.106/255.255.255.255 -- IP:11.0.1.107/255.255.255.255 -- IP:11.0.1.108/255.255.255.255 -- IP:11.0.1.109/255.255.255.255 -- IP:11.0.1.110/255.255.255.255 -- IP:11.0.1.111/255.255.255.255 -- IP:11.0.1.112/255.255.255.255 -- IP:11.0.1.113/255.255.255.255 -- IP:11.0.1.114/255.255.255.255 -- IP:11.0.1.115/255.255.255.255 -- IP:11.0.1.116/255.255.255.255 -- IP:11.0.1.117/255.255.255.255 -- IP:11.0.1.118/255.255.255.255 -- IP:11.0.1.119/255.255.255.255 -- IP:11.0.1.120/255.255.255.255 -- IP:11.0.1.121/255.255.255.255 -- IP:11.0.1.122/255.255.255.255 -- IP:11.0.1.123/255.255.255.255 -- IP:11.0.1.124/255.255.255.255 -- IP:11.0.1.125/255.255.255.255 -- IP:11.0.1.126/255.255.255.255 -- IP:11.0.1.127/255.255.255.255 -- IP:11.0.1.128/255.255.255.255 -- IP:11.0.1.129/255.255.255.255 -- IP:11.0.1.130/255.255.255.255 -- IP:11.0.1.131/255.255.255.255 -- IP:11.0.1.132/255.255.255.255 -- IP:11.0.1.133/255.255.255.255 -- IP:11.0.1.134/255.255.255.255 -- IP:11.0.1.135/255.255.255.255 -- IP:11.0.1.136/255.255.255.255 -- IP:11.0.1.137/255.255.255.255 -- IP:11.0.1.138/255.255.255.255 -- IP:11.0.1.139/255.255.255.255 -- IP:11.0.1.140/255.255.255.255 -- IP:11.0.1.141/255.255.255.255 -- IP:11.0.1.142/255.255.255.255 -- IP:11.0.1.143/255.255.255.255 -- IP:11.0.1.144/255.255.255.255 -- IP:11.0.1.145/255.255.255.255 -- IP:11.0.1.146/255.255.255.255 -- IP:11.0.1.147/255.255.255.255 -- IP:11.0.1.148/255.255.255.255 -- IP:11.0.1.149/255.255.255.255 -- IP:11.0.1.150/255.255.255.255 -- IP:11.0.1.151/255.255.255.255 -- IP:11.0.1.152/255.255.255.255 -- IP:11.0.1.153/255.255.255.255 -- IP:11.0.1.154/255.255.255.255 -- IP:11.0.1.155/255.255.255.255 -- IP:11.0.1.156/255.255.255.255 -- IP:11.0.1.157/255.255.255.255 -- IP:11.0.1.158/255.255.255.255 -- IP:11.0.1.159/255.255.255.255 -- IP:11.0.1.160/255.255.255.255 -- IP:11.0.1.161/255.255.255.255 -- DirName:CN = x0 -- DirName:CN = x1 -- DirName:CN = x2 -- DirName:CN = x3 -- DirName:CN = x4 -- DirName:CN = x5 -- DirName:CN = x6 -- DirName:CN = x7 -- DirName:CN = x8 -- DirName:CN = x9 -- DirName:CN = x10 -- DirName:CN = x11 -- DirName:CN = x12 -- DirName:CN = x13 -- DirName:CN = x14 -- DirName:CN = x15 -- DirName:CN = x16 -- DirName:CN = x17 -- DirName:CN = x18 -- DirName:CN = x19 -- DirName:CN = x20 -- DirName:CN = x21 -- DirName:CN = x22 -- DirName:CN = x23 -- DirName:CN = x24 -- DirName:CN = x25 -- DirName:CN = x26 -- DirName:CN = x27 -- DirName:CN = x28 -- DirName:CN = x29 -- DirName:CN = x30 -- DirName:CN = x31 -- DirName:CN = x32 -- DirName:CN = x33 -- DirName:CN = x34 -- DirName:CN = x35 -- DirName:CN = x36 -- DirName:CN = x37 -- DirName:CN = x38 -- DirName:CN = x39 -- DirName:CN = x40 -- DirName:CN = x41 -- DirName:CN = x42 -- DirName:CN = x43 -- DirName:CN = x44 -- DirName:CN = x45 -- DirName:CN = x46 -- DirName:CN = x47 -- DirName:CN = x48 -- DirName:CN = x49 -- DirName:CN = x50 -- DirName:CN = x51 -- DirName:CN = x52 -- DirName:CN = x53 -- DirName:CN = x54 -- DirName:CN = x55 -- DirName:CN = x56 -- DirName:CN = x57 -- DirName:CN = x58 -- DirName:CN = x59 -- DirName:CN = x60 -- DirName:CN = x61 -- DirName:CN = x62 -- DirName:CN = x63 -- DirName:CN = x64 -- DirName:CN = x65 -- DirName:CN = x66 -- DirName:CN = x67 -- DirName:CN = x68 -- DirName:CN = x69 -- DirName:CN = x70 -- DirName:CN = x71 -- DirName:CN = x72 -- DirName:CN = x73 -- DirName:CN = x74 -- DirName:CN = x75 -- DirName:CN = x76 -- DirName:CN = x77 -- DirName:CN = x78 -- DirName:CN = x79 -- DirName:CN = x80 -- DirName:CN = x81 -- DirName:CN = x82 -- DirName:CN = x83 -- DirName:CN = x84 -- DirName:CN = x85 -- DirName:CN = x86 -- DirName:CN = x87 -- DirName:CN = x88 -- DirName:CN = x89 -- DirName:CN = x90 -- DirName:CN = x91 -- DirName:CN = x92 -- DirName:CN = x93 -- DirName:CN = x94 -- DirName:CN = x95 -- DirName:CN = x96 -- DirName:CN = x97 -- DirName:CN = x98 -- DirName:CN = x99 -- DirName:CN = x100 -- DirName:CN = x101 -- DirName:CN = x102 -- DirName:CN = x103 -- DirName:CN = x104 -- DirName:CN = x105 -- DirName:CN = x106 -- DirName:CN = x107 -- DirName:CN = x108 -- DirName:CN = x109 -- DirName:CN = x110 -- DirName:CN = x111 -- DirName:CN = x112 -- DirName:CN = x113 -- DirName:CN = x114 -- DirName:CN = x115 -- DirName:CN = x116 -- DirName:CN = x117 -- DirName:CN = x118 -- DirName:CN = x119 -- DirName:CN = x120 -- DirName:CN = x121 -- DirName:CN = x122 -- DirName:CN = x123 -- DirName:CN = x124 -- DirName:CN = x125 -- DirName:CN = x126 -- DirName:CN = x127 -- DirName:CN = x128 -- DirName:CN = x129 -- DirName:CN = x130 -- DirName:CN = x131 -- DirName:CN = x132 -- DirName:CN = x133 -- DirName:CN = x134 -- DirName:CN = x135 -- DirName:CN = x136 -- DirName:CN = x137 -- DirName:CN = x138 -- DirName:CN = x139 -- DirName:CN = x140 -- DirName:CN = x141 -- DirName:CN = x142 -- DirName:CN = x143 -- DirName:CN = x144 -- DirName:CN = x145 -- DirName:CN = x146 -- DirName:CN = x147 -- DirName:CN = x148 -- DirName:CN = x149 -- DirName:CN = x150 -- DirName:CN = x151 -- DirName:CN = x152 -- DirName:CN = x153 -- DirName:CN = x154 -- DirName:CN = x155 -- DirName:CN = x156 -- DirName:CN = x157 -- DirName:CN = x158 -- DirName:CN = x159 -- DirName:CN = x160 -- DirName:CN = x161 -- DirName:CN = x162 -- DirName:CN = x163 -- DirName:CN = x164 -- DirName:CN = x165 -- DirName:CN = x166 -- DirName:CN = x167 -- DirName:CN = x168 -- DirName:CN = x169 -- DirName:CN = x170 -- DirName:CN = x171 -- DirName:CN = x172 -- DirName:CN = x173 -- DirName:CN = x174 -- DirName:CN = x175 -- DirName:CN = x176 -- DirName:CN = x177 -- DirName:CN = x178 -- DirName:CN = x179 -- DirName:CN = x180 -- DirName:CN = x181 -- DirName:CN = x182 -- DirName:CN = x183 -- DirName:CN = x184 -- DirName:CN = x185 -- DirName:CN = x186 -- DirName:CN = x187 -- DirName:CN = x188 -- DirName:CN = x189 -- DirName:CN = x190 -- DirName:CN = x191 -- DirName:CN = x192 -- DirName:CN = x193 -- DirName:CN = x194 -- DirName:CN = x195 -- DirName:CN = x196 -- DirName:CN = x197 -- DirName:CN = x198 -- DirName:CN = x199 -- DirName:CN = x200 -- DirName:CN = x201 -- DirName:CN = x202 -- DirName:CN = x203 -- DirName:CN = x204 -- DirName:CN = x205 -- DirName:CN = x206 -- DirName:CN = x207 -- DirName:CN = x208 -- DirName:CN = x209 -- DirName:CN = x210 -- DirName:CN = x211 -- DirName:CN = x212 -- DirName:CN = x213 -- DirName:CN = x214 -- DirName:CN = x215 -- DirName:CN = x216 -- DirName:CN = x217 -- DirName:CN = x218 -- DirName:CN = x219 -- DirName:CN = x220 -- DirName:CN = x221 -- DirName:CN = x222 -- DirName:CN = x223 -- DirName:CN = x224 -- DirName:CN = x225 -- DirName:CN = x226 -- DirName:CN = x227 -- DirName:CN = x228 -- DirName:CN = x229 -- DirName:CN = x230 -- DirName:CN = x231 -- DirName:CN = x232 -- DirName:CN = x233 -- DirName:CN = x234 -- DirName:CN = x235 -- DirName:CN = x236 -- DirName:CN = x237 -- DirName:CN = x238 -- DirName:CN = x239 -- DirName:CN = x240 -- DirName:CN = x241 -- DirName:CN = x242 -- DirName:CN = x243 -- DirName:CN = x244 -- DirName:CN = x245 -- DirName:CN = x246 -- DirName:CN = x247 -- DirName:CN = x248 -- DirName:CN = x249 -- DirName:CN = x250 -- DirName:CN = x251 -- DirName:CN = x252 -- DirName:CN = x253 -- DirName:CN = x254 -- DirName:CN = x255 -- DirName:CN = x256 -- DirName:CN = x257 -- DirName:CN = x258 -- DirName:CN = x259 -- DirName:CN = x260 -- DirName:CN = x261 -- DirName:CN = x262 -- DirName:CN = x263 -- DirName:CN = x264 -- DirName:CN = x265 -- DirName:CN = x266 -- DirName:CN = x267 -- DirName:CN = x268 -- DirName:CN = x269 -- DirName:CN = x270 -- DirName:CN = x271 -- DirName:CN = x272 -- DirName:CN = x273 -- DirName:CN = x274 -- DirName:CN = x275 -- DirName:CN = x276 -- DirName:CN = x277 -- DirName:CN = x278 -- DirName:CN = x279 -- DirName:CN = x280 -- DirName:CN = x281 -- DirName:CN = x282 -- DirName:CN = x283 -- DirName:CN = x284 -- DirName:CN = x285 -- DirName:CN = x286 -- DirName:CN = x287 -- DirName:CN = x288 -- DirName:CN = x289 -- DirName:CN = x290 -- DirName:CN = x291 -- DirName:CN = x292 -- DirName:CN = x293 -- DirName:CN = x294 -- DirName:CN = x295 -- DirName:CN = x296 -- DirName:CN = x297 -- DirName:CN = x298 -- DirName:CN = x299 -- DirName:CN = x300 -- DirName:CN = x301 -- DirName:CN = x302 -- DirName:CN = x303 -- DirName:CN = x304 -- DirName:CN = x305 -- DirName:CN = x306 -- DirName:CN = x307 -- DirName:CN = x308 -- DirName:CN = x309 -- DirName:CN = x310 -- DirName:CN = x311 -- DirName:CN = x312 -- DirName:CN = x313 -- DirName:CN = x314 -- DirName:CN = x315 -- DirName:CN = x316 -- DirName:CN = x317 -- DirName:CN = x318 -- DirName:CN = x319 -- DirName:CN = x320 -- DirName:CN = x321 -- DirName:CN = x322 -- DirName:CN = x323 -- DirName:CN = x324 -- DirName:CN = x325 -- DirName:CN = x326 -- DirName:CN = x327 -- DirName:CN = x328 -- DirName:CN = x329 -- DirName:CN = x330 -- DirName:CN = x331 -- DirName:CN = x332 -- DirName:CN = x333 -- DirName:CN = x334 -- DirName:CN = x335 -- DirName:CN = x336 -- DirName:CN = x337 -- DirName:CN = x338 -- DirName:CN = x339 -- DirName:CN = x340 -- DirName:CN = x341 -- DirName:CN = x342 -- DirName:CN = x343 -- DirName:CN = x344 -- DirName:CN = x345 -- DirName:CN = x346 -- DirName:CN = x347 -- DirName:CN = x348 -- DirName:CN = x349 -- DirName:CN = x350 -- DirName:CN = x351 -- DirName:CN = x352 -- DirName:CN = x353 -- DirName:CN = x354 -- DirName:CN = x355 -- DirName:CN = x356 -- DirName:CN = x357 -- DirName:CN = x358 -- DirName:CN = x359 -- DirName:CN = x360 -- DirName:CN = x361 -- DirName:CN = x362 -- DirName:CN = x363 -- DirName:CN = x364 -- DirName:CN = x365 -- DirName:CN = x366 -- DirName:CN = x367 -- DirName:CN = x368 -- DirName:CN = x369 -- DirName:CN = x370 -- DirName:CN = x371 -- DirName:CN = x372 -- DirName:CN = x373 -- DirName:CN = x374 -- DirName:CN = x375 -- DirName:CN = x376 -- DirName:CN = x377 -- DirName:CN = x378 -- DirName:CN = x379 -- DirName:CN = x380 -- DirName:CN = x381 -- DirName:CN = x382 -- DirName:CN = x383 -- DirName:CN = x384 -- DirName:CN = x385 -- DirName:CN = x386 -- DirName:CN = x387 -- DirName:CN = x388 -- DirName:CN = x389 -- DirName:CN = x390 -- DirName:CN = x391 -- DirName:CN = x392 -- DirName:CN = x393 -- DirName:CN = x394 -- DirName:CN = x395 -- DirName:CN = x396 -- DirName:CN = x397 -- DirName:CN = x398 -- DirName:CN = x399 -- DirName:CN = x400 -- DirName:CN = x401 -- DirName:CN = x402 -- DirName:CN = x403 -- DirName:CN = x404 -- DirName:CN = x405 -- DirName:CN = x406 -- DirName:CN = x407 -- DirName:CN = x408 -- DirName:CN = x409 -- DirName:CN = x410 -- DirName:CN = x411 -- DirName:CN = x412 -- DirName:CN = x413 -- DirName:CN = x414 -- DirName:CN = x415 -- DirName:CN = x416 -- DirName:CN = x417 -+ DirName: CN = x0 -+ DirName: CN = x1 -+ DirName: CN = x2 -+ DirName: CN = x3 -+ DirName: CN = x4 -+ DirName: CN = x5 -+ DirName: CN = x6 -+ DirName: CN = x7 -+ DirName: CN = x8 -+ DirName: CN = x9 -+ DirName: CN = x10 -+ DirName: CN = x11 -+ DirName: CN = x12 -+ DirName: CN = x13 -+ DirName: CN = x14 -+ DirName: CN = x15 -+ DirName: CN = x16 -+ DirName: CN = x17 -+ DirName: CN = x18 -+ DirName: CN = x19 -+ DirName: CN = x20 -+ DirName: CN = x21 -+ DirName: CN = x22 -+ DirName: CN = x23 -+ DirName: CN = x24 -+ DirName: CN = x25 -+ DirName: CN = x26 -+ DirName: CN = x27 -+ DirName: CN = x28 -+ DirName: CN = x29 -+ DirName: CN = x30 -+ DirName: CN = x31 -+ DirName: CN = x32 -+ DirName: CN = x33 -+ DirName: CN = x34 -+ DirName: CN = x35 -+ DirName: CN = x36 -+ DirName: CN = x37 -+ DirName: CN = x38 -+ DirName: CN = x39 -+ DirName: CN = x40 -+ DirName: CN = x41 -+ DirName: CN = x42 -+ DirName: CN = x43 -+ DirName: CN = x44 -+ DirName: CN = x45 -+ DirName: CN = x46 -+ DirName: CN = x47 -+ DirName: CN = x48 -+ DirName: CN = x49 -+ DirName: CN = x50 -+ DirName: CN = x51 -+ DirName: CN = x52 -+ DirName: CN = x53 -+ DirName: CN = x54 -+ DirName: CN = x55 -+ DirName: CN = x56 -+ DirName: CN = x57 -+ DirName: CN = x58 -+ DirName: CN = x59 -+ DirName: CN = x60 -+ DirName: CN = x61 -+ DirName: CN = x62 -+ DirName: CN = x63 -+ DirName: CN = x64 -+ DirName: CN = x65 -+ DirName: CN = x66 -+ DirName: CN = x67 -+ DirName: CN = x68 -+ DirName: CN = x69 -+ DirName: CN = x70 -+ DirName: CN = x71 -+ DirName: CN = x72 -+ DirName: CN = x73 -+ DirName: CN = x74 -+ DirName: CN = x75 -+ DirName: CN = x76 -+ DirName: CN = x77 -+ DirName: CN = x78 -+ DirName: CN = x79 -+ DirName: CN = x80 -+ DirName: CN = x81 -+ DirName: CN = x82 -+ DirName: CN = x83 -+ DirName: CN = x84 -+ DirName: CN = x85 -+ DirName: CN = x86 -+ DirName: CN = x87 -+ DirName: CN = x88 -+ DirName: CN = x89 -+ DirName: CN = x90 -+ DirName: CN = x91 -+ DirName: CN = x92 -+ DirName: CN = x93 -+ DirName: CN = x94 -+ DirName: CN = x95 -+ DirName: CN = x96 -+ DirName: CN = x97 -+ DirName: CN = x98 -+ DirName: CN = x99 -+ DirName: CN = x100 -+ DirName: CN = x101 -+ DirName: CN = x102 -+ DirName: CN = x103 -+ DirName: CN = x104 -+ DirName: CN = x105 -+ DirName: CN = x106 -+ DirName: CN = x107 -+ DirName: CN = x108 -+ DirName: CN = x109 -+ DirName: CN = x110 -+ DirName: CN = x111 -+ DirName: CN = x112 -+ DirName: CN = x113 -+ DirName: CN = x114 -+ DirName: CN = x115 -+ DirName: CN = x116 -+ DirName: CN = x117 -+ DirName: CN = x118 -+ DirName: CN = x119 -+ DirName: CN = x120 -+ DirName: CN = x121 -+ DirName: CN = x122 -+ DirName: CN = x123 -+ DirName: CN = x124 -+ DirName: CN = x125 -+ DirName: CN = x126 -+ DirName: CN = x127 -+ DirName: CN = x128 -+ DirName: CN = x129 -+ DirName: CN = x130 -+ DirName: CN = x131 -+ DirName: CN = x132 -+ DirName: CN = x133 -+ DirName: CN = x134 -+ DirName: CN = x135 -+ DirName: CN = x136 -+ DirName: CN = x137 -+ DirName: CN = x138 -+ DirName: CN = x139 -+ DirName: CN = x140 -+ DirName: CN = x141 -+ DirName: CN = x142 -+ DirName: CN = x143 -+ DirName: CN = x144 -+ DirName: CN = x145 -+ DirName: CN = x146 -+ DirName: CN = x147 -+ DirName: CN = x148 -+ DirName: CN = x149 -+ DirName: CN = x150 -+ DirName: CN = x151 -+ DirName: CN = x152 -+ DirName: CN = x153 -+ DirName: CN = x154 -+ DirName: CN = x155 -+ DirName: CN = x156 -+ DirName: CN = x157 -+ DirName: CN = x158 -+ DirName: CN = x159 -+ DirName: CN = x160 -+ DirName: CN = x161 -+ DirName: CN = x162 -+ DirName: CN = x163 -+ DirName: CN = x164 -+ DirName: CN = x165 -+ DirName: CN = x166 -+ DirName: CN = x167 -+ DirName: CN = x168 -+ DirName: CN = x169 - URI:http://xest/0 - URI:http://xest/1 - URI:http://xest/2 -@@ -5381,1642 +3840,1168 @@ Certificate: - URI:http://xest/1024 - - Signature Algorithm: sha256WithRSAEncryption -- 1c:1e:3f:63:2c:1d:06:01:13:12:d5:cf:ba:25:49:c7:fb:36: -- bd:cb:32:ed:b7:35:ab:f8:e5:dc:1a:b8:1b:37:bb:ea:f5:c2: -- 1d:40:96:fb:a9:56:94:e9:42:d9:10:a3:8e:e1:02:9e:95:03: -- b7:3e:64:4c:a7:82:1f:91:15:27:46:0b:1e:b5:49:10:b2:42: -- 8d:c1:a8:bd:ae:94:7e:51:2e:f4:26:1a:f4:0d:8a:03:cd:3b: -- 3a:8a:df:94:c2:f1:58:e8:66:a5:89:f0:90:6c:ca:d4:fd:0e: -- c8:a7:ee:dd:ba:9f:b9:88:0e:c0:b5:06:4b:1c:a1:f9:bb:ba: -- fb:0c:8f:d4:43:b6:d8:95:10:c5:63:c3:cc:a0:81:68:ae:8f: -- 2e:24:48:60:d8:c4:9d:43:4e:25:f4:94:87:5a:ed:b9:ed:8f: -- dd:ef:1e:48:38:3d:13:d6:4b:ef:79:8c:0d:68:f8:3a:51:8c: -- a3:11:9c:86:c0:a6:9b:9e:bf:a5:e8:c9:2e:db:b6:8b:d6:4d: -- 27:ee:b3:5a:1d:61:f6:13:ae:b9:52:bc:ae:70:38:8a:d8:f9: -- a2:ee:e9:32:b0:41:78:9d:96:4c:94:aa:af:f5:de:86:16:04: -- ad:50:d6:a9:13:82:b4:08:9b:d9:67:75:ed:a0:b9:16:b3:97: -- b3:88:9e:5c -+ 37:a8:be:e4:03:62:63:15:b0:fe:be:49:7f:22:5e:7a:f8:b4: -+ 33:0c:fe:3b:41:0c:99:dc:bd:b0:a3:0c:3a:54:42:27:62:18: -+ 15:af:e6:d5:91:63:17:1d:1b:3f:ca:f6:2e:2f:6e:71:5e:66: -+ 86:27:69:91:31:5d:35:85:d4:46:77:69:45:50:05:9c:bc:39: -+ b8:0f:d0:96:a6:65:02:d3:80:53:ac:58:9c:f3:ec:27:27:b2: -+ 33:44:51:17:79:90:ea:b1:57:32:f7:e0:58:a4:99:64:78:55: -+ 61:16:d3:51:62:cf:26:02:8d:7d:df:2d:d8:c3:d2:00:5e:03: -+ 49:78:20:b7:78:9e:9e:b6:56:e9:48:4d:c5:5a:ea:28:e8:16: -+ 70:4a:39:bb:1d:88:40:5a:fd:67:82:73:f3:c6:f2:e9:ed:70: -+ 83:de:72:3f:7d:08:2f:1a:43:4d:c9:b2:e9:ce:e6:43:a9:74: -+ 25:cd:ba:95:cd:51:97:cb:56:d4:e6:e6:d9:69:0a:5f:48:17: -+ 2a:3b:41:ac:a5:ec:1f:30:c9:b2:f1:68:8f:a1:0f:1e:7d:9e: -+ e3:be:bb:8d:cb:6e:41:6a:16:7a:48:f5:ac:14:69:f7:de:63: -+ fc:94:80:e7:62:da:e6:99:12:ad:f1:d2:5d:76:6b:c3:11:6e: -+ 55:5d:7e:ec - -----BEGIN CERTIFICATE----- --MIMBL50wgwEuhKADAgECAhQ85fyBiFmoUBbBf9flKuWWf8L29jANBgkqhkiG9w0B --AQsFADAPMQ0wCwYDVQQDDARSb290MB4XDTIxMTAwNTEyMDAwMFoXDTIyMTAwNTEy --MDAwMFowFzEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlMIIBIjANBgkqhkiG9w0BAQEF --AAOCAQ8AMIIBCgKCAQEAuzvbBG4X4FRSuiN3JLw043DZmZ5TXTMLqcxLHa4GJxiO --VbqtEscdMlltwxYg22Kmd4AS4IdYUVXjZn/R4DoiZeVwJqIEBPBd+V9WyNroD1co --d26aoEpTNBpjN6JDqw5KzQcj3VWDRAAMcEHfNWTQxQ5qh9vK/DXV4luvC6DmdaXS --4XJOImMBQXO4lVAs/e3DYbY21IOVYcPgYf/0noroutzR9ontnTBElSf00YvmLxRm --VvHa8cwEG3eSpZ9YQAyfDDLWBcJMwMWf5aQwPUzpnQNsTAa25ZW9IbjmK6igvwa7 --QzMZPXsXWfFkTSRnsVEPNa7wcXV5rlsCNAQx42aGZQIDAQABo4MBLOUwgwEs4DAd --BgNVHQ4EFgQUkhE/rBGWx2Y3z4NaJPA6d68zjX8wHwYDVR0jBBgwFoAUtsLvn9Ep --yw+JjExS1L1AtxG3cd0wNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzAChhtodHRw --Oi8vdXJsLWZvci1haWEvUm9vdC5jZXIwLAYDVR0fBCUwIzAhoB+gHYYbaHR0cDov --L3VybC1mb3ItY3JsL1Jvb3QuY3JsMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E --BTADAQH/MIMBLBMGA1UdHgSDASwJMIMBLASggpX+MAmCB3QwLnRlc3QwCYIHdDEu --dGVzdDAJggd0Mi50ZXN0MAmCB3QzLnRlc3QwCYIHdDQudGVzdDAJggd0NS50ZXN0 --MAmCB3Q2LnRlc3QwCYIHdDcudGVzdDAJggd0OC50ZXN0MAmCB3Q5LnRlc3QwCoII --dDEwLnRlc3QwCoIIdDExLnRlc3QwCoIIdDEyLnRlc3QwCoIIdDEzLnRlc3QwCoII --dDE0LnRlc3QwCoIIdDE1LnRlc3QwCoIIdDE2LnRlc3QwCoIIdDE3LnRlc3QwCoII --dDE4LnRlc3QwCoIIdDE5LnRlc3QwCoIIdDIwLnRlc3QwCoIIdDIxLnRlc3QwCoII --dDIyLnRlc3QwCoIIdDIzLnRlc3QwCoIIdDI0LnRlc3QwCoIIdDI1LnRlc3QwCoII --dDI2LnRlc3QwCoIIdDI3LnRlc3QwCoIIdDI4LnRlc3QwCoIIdDI5LnRlc3QwCoII --dDMwLnRlc3QwCoIIdDMxLnRlc3QwCoIIdDMyLnRlc3QwCoIIdDMzLnRlc3QwCoII --dDM0LnRlc3QwCoIIdDM1LnRlc3QwCoIIdDM2LnRlc3QwCoIIdDM3LnRlc3QwCoII --dDM4LnRlc3QwCoIIdDM5LnRlc3QwCoIIdDQwLnRlc3QwCoIIdDQxLnRlc3QwCoII --dDQyLnRlc3QwCoIIdDQzLnRlc3QwCoIIdDQ0LnRlc3QwCoIIdDQ1LnRlc3QwCoII --dDQ2LnRlc3QwCoIIdDQ3LnRlc3QwCoIIdDQ4LnRlc3QwCoIIdDQ5LnRlc3QwCoII --dDUwLnRlc3QwCoIIdDUxLnRlc3QwCoIIdDUyLnRlc3QwCoIIdDUzLnRlc3QwCoII --dDU0LnRlc3QwCoIIdDU1LnRlc3QwCoIIdDU2LnRlc3QwCoIIdDU3LnRlc3QwCoII --dDU4LnRlc3QwCoIIdDU5LnRlc3QwCoIIdDYwLnRlc3QwCoIIdDYxLnRlc3QwCoII --dDYyLnRlc3QwCoIIdDYzLnRlc3QwCoIIdDY0LnRlc3QwCoIIdDY1LnRlc3QwCoII --dDY2LnRlc3QwCoIIdDY3LnRlc3QwCoIIdDY4LnRlc3QwCoIIdDY5LnRlc3QwCoII --dDcwLnRlc3QwCoIIdDcxLnRlc3QwCoIIdDcyLnRlc3QwCoIIdDczLnRlc3QwCoII --dDc0LnRlc3QwCoIIdDc1LnRlc3QwCoIIdDc2LnRlc3QwCoIIdDc3LnRlc3QwCoII --dDc4LnRlc3QwCoIIdDc5LnRlc3QwCoIIdDgwLnRlc3QwCoIIdDgxLnRlc3QwCoII --dDgyLnRlc3QwCoIIdDgzLnRlc3QwCoIIdDg0LnRlc3QwCoIIdDg1LnRlc3QwCoII --dDg2LnRlc3QwCoIIdDg3LnRlc3QwCoIIdDg4LnRlc3QwCoIIdDg5LnRlc3QwCoII --dDkwLnRlc3QwCoIIdDkxLnRlc3QwCoIIdDkyLnRlc3QwCoIIdDkzLnRlc3QwCoII --dDk0LnRlc3QwCoIIdDk1LnRlc3QwCoIIdDk2LnRlc3QwCoIIdDk3LnRlc3QwCoII --dDk4LnRlc3QwCoIIdDk5LnRlc3QwC4IJdDEwMC50ZXN0MAuCCXQxMDEudGVzdDAL --ggl0MTAyLnRlc3QwC4IJdDEwMy50ZXN0MAuCCXQxMDQudGVzdDALggl0MTA1LnRl --c3QwC4IJdDEwNi50ZXN0MAuCCXQxMDcudGVzdDALggl0MTA4LnRlc3QwC4IJdDEw --OS50ZXN0MAuCCXQxMTAudGVzdDALggl0MTExLnRlc3QwC4IJdDExMi50ZXN0MAuC --CXQxMTMudGVzdDALggl0MTE0LnRlc3QwC4IJdDExNS50ZXN0MAuCCXQxMTYudGVz --dDALggl0MTE3LnRlc3QwC4IJdDExOC50ZXN0MAuCCXQxMTkudGVzdDALggl0MTIw --LnRlc3QwC4IJdDEyMS50ZXN0MAuCCXQxMjIudGVzdDALggl0MTIzLnRlc3QwC4IJ --dDEyNC50ZXN0MAuCCXQxMjUudGVzdDALggl0MTI2LnRlc3QwC4IJdDEyNy50ZXN0 --MAuCCXQxMjgudGVzdDALggl0MTI5LnRlc3QwC4IJdDEzMC50ZXN0MAuCCXQxMzEu --dGVzdDALggl0MTMyLnRlc3QwC4IJdDEzMy50ZXN0MAuCCXQxMzQudGVzdDALggl0 --MTM1LnRlc3QwC4IJdDEzNi50ZXN0MAuCCXQxMzcudGVzdDALggl0MTM4LnRlc3Qw --C4IJdDEzOS50ZXN0MAuCCXQxNDAudGVzdDALggl0MTQxLnRlc3QwC4IJdDE0Mi50 --ZXN0MAuCCXQxNDMudGVzdDALggl0MTQ0LnRlc3QwC4IJdDE0NS50ZXN0MAuCCXQx --NDYudGVzdDALggl0MTQ3LnRlc3QwC4IJdDE0OC50ZXN0MAuCCXQxNDkudGVzdDAL --ggl0MTUwLnRlc3QwC4IJdDE1MS50ZXN0MAuCCXQxNTIudGVzdDALggl0MTUzLnRl --c3QwC4IJdDE1NC50ZXN0MAuCCXQxNTUudGVzdDALggl0MTU2LnRlc3QwC4IJdDE1 --Ny50ZXN0MAuCCXQxNTgudGVzdDALggl0MTU5LnRlc3QwC4IJdDE2MC50ZXN0MAuC --CXQxNjEudGVzdDALggl0MTYyLnRlc3QwC4IJdDE2My50ZXN0MAuCCXQxNjQudGVz --dDALggl0MTY1LnRlc3QwC4IJdDE2Ni50ZXN0MAuCCXQxNjcudGVzdDALggl0MTY4 --LnRlc3QwC4IJdDE2OS50ZXN0MAuCCXQxNzAudGVzdDALggl0MTcxLnRlc3QwC4IJ --dDE3Mi50ZXN0MAuCCXQxNzMudGVzdDALggl0MTc0LnRlc3QwC4IJdDE3NS50ZXN0 --MAuCCXQxNzYudGVzdDALggl0MTc3LnRlc3QwC4IJdDE3OC50ZXN0MAuCCXQxNzku --dGVzdDALggl0MTgwLnRlc3QwC4IJdDE4MS50ZXN0MAuCCXQxODIudGVzdDALggl0 --MTgzLnRlc3QwC4IJdDE4NC50ZXN0MAuCCXQxODUudGVzdDALggl0MTg2LnRlc3Qw --C4IJdDE4Ny50ZXN0MAuCCXQxODgudGVzdDALggl0MTg5LnRlc3QwC4IJdDE5MC50 --ZXN0MAuCCXQxOTEudGVzdDALggl0MTkyLnRlc3QwC4IJdDE5My50ZXN0MAuCCXQx --OTQudGVzdDALggl0MTk1LnRlc3QwC4IJdDE5Ni50ZXN0MAuCCXQxOTcudGVzdDAL --ggl0MTk4LnRlc3QwC4IJdDE5OS50ZXN0MAuCCXQyMDAudGVzdDALggl0MjAxLnRl --c3QwC4IJdDIwMi50ZXN0MAuCCXQyMDMudGVzdDALggl0MjA0LnRlc3QwC4IJdDIw --NS50ZXN0MAuCCXQyMDYudGVzdDALggl0MjA3LnRlc3QwC4IJdDIwOC50ZXN0MAuC --CXQyMDkudGVzdDALggl0MjEwLnRlc3QwC4IJdDIxMS50ZXN0MAuCCXQyMTIudGVz --dDALggl0MjEzLnRlc3QwC4IJdDIxNC50ZXN0MAuCCXQyMTUudGVzdDALggl0MjE2 --LnRlc3QwC4IJdDIxNy50ZXN0MAuCCXQyMTgudGVzdDALggl0MjE5LnRlc3QwC4IJ --dDIyMC50ZXN0MAuCCXQyMjEudGVzdDALggl0MjIyLnRlc3QwC4IJdDIyMy50ZXN0 --MAuCCXQyMjQudGVzdDALggl0MjI1LnRlc3QwC4IJdDIyNi50ZXN0MAuCCXQyMjcu --dGVzdDALggl0MjI4LnRlc3QwC4IJdDIyOS50ZXN0MAuCCXQyMzAudGVzdDALggl0 --MjMxLnRlc3QwC4IJdDIzMi50ZXN0MAuCCXQyMzMudGVzdDALggl0MjM0LnRlc3Qw --C4IJdDIzNS50ZXN0MAuCCXQyMzYudGVzdDALggl0MjM3LnRlc3QwC4IJdDIzOC50 --ZXN0MAuCCXQyMzkudGVzdDALggl0MjQwLnRlc3QwC4IJdDI0MS50ZXN0MAuCCXQy --NDIudGVzdDALggl0MjQzLnRlc3QwC4IJdDI0NC50ZXN0MAuCCXQyNDUudGVzdDAL --ggl0MjQ2LnRlc3QwC4IJdDI0Ny50ZXN0MAuCCXQyNDgudGVzdDALggl0MjQ5LnRl --c3QwC4IJdDI1MC50ZXN0MAuCCXQyNTEudGVzdDALggl0MjUyLnRlc3QwC4IJdDI1 --My50ZXN0MAuCCXQyNTQudGVzdDALggl0MjU1LnRlc3QwC4IJdDI1Ni50ZXN0MAuC --CXQyNTcudGVzdDALggl0MjU4LnRlc3QwC4IJdDI1OS50ZXN0MAuCCXQyNjAudGVz --dDALggl0MjYxLnRlc3QwC4IJdDI2Mi50ZXN0MAuCCXQyNjMudGVzdDALggl0MjY0 --LnRlc3QwC4IJdDI2NS50ZXN0MAuCCXQyNjYudGVzdDALggl0MjY3LnRlc3QwC4IJ --dDI2OC50ZXN0MAuCCXQyNjkudGVzdDALggl0MjcwLnRlc3QwC4IJdDI3MS50ZXN0 --MAuCCXQyNzIudGVzdDALggl0MjczLnRlc3QwC4IJdDI3NC50ZXN0MAuCCXQyNzUu --dGVzdDALggl0Mjc2LnRlc3QwC4IJdDI3Ny50ZXN0MAuCCXQyNzgudGVzdDALggl0 --Mjc5LnRlc3QwC4IJdDI4MC50ZXN0MAuCCXQyODEudGVzdDALggl0MjgyLnRlc3Qw --C4IJdDI4My50ZXN0MAuCCXQyODQudGVzdDALggl0Mjg1LnRlc3QwC4IJdDI4Ni50 --ZXN0MAuCCXQyODcudGVzdDALggl0Mjg4LnRlc3QwC4IJdDI4OS50ZXN0MAuCCXQy --OTAudGVzdDALggl0MjkxLnRlc3QwC4IJdDI5Mi50ZXN0MAuCCXQyOTMudGVzdDAL --ggl0Mjk0LnRlc3QwC4IJdDI5NS50ZXN0MAuCCXQyOTYudGVzdDALggl0Mjk3LnRl --c3QwC4IJdDI5OC50ZXN0MAuCCXQyOTkudGVzdDALggl0MzAwLnRlc3QwC4IJdDMw --MS50ZXN0MAuCCXQzMDIudGVzdDALggl0MzAzLnRlc3QwC4IJdDMwNC50ZXN0MAuC --CXQzMDUudGVzdDALggl0MzA2LnRlc3QwC4IJdDMwNy50ZXN0MAuCCXQzMDgudGVz --dDALggl0MzA5LnRlc3QwC4IJdDMxMC50ZXN0MAuCCXQzMTEudGVzdDALggl0MzEy --LnRlc3QwC4IJdDMxMy50ZXN0MAuCCXQzMTQudGVzdDALggl0MzE1LnRlc3QwC4IJ --dDMxNi50ZXN0MAuCCXQzMTcudGVzdDALggl0MzE4LnRlc3QwC4IJdDMxOS50ZXN0 --MAuCCXQzMjAudGVzdDALggl0MzIxLnRlc3QwC4IJdDMyMi50ZXN0MAuCCXQzMjMu --dGVzdDALggl0MzI0LnRlc3QwC4IJdDMyNS50ZXN0MAuCCXQzMjYudGVzdDALggl0 --MzI3LnRlc3QwC4IJdDMyOC50ZXN0MAuCCXQzMjkudGVzdDALggl0MzMwLnRlc3Qw --C4IJdDMzMS50ZXN0MAuCCXQzMzIudGVzdDALggl0MzMzLnRlc3QwC4IJdDMzNC50 --ZXN0MAuCCXQzMzUudGVzdDALggl0MzM2LnRlc3QwC4IJdDMzNy50ZXN0MAuCCXQz --MzgudGVzdDALggl0MzM5LnRlc3QwC4IJdDM0MC50ZXN0MAuCCXQzNDEudGVzdDAL --ggl0MzQyLnRlc3QwC4IJdDM0My50ZXN0MAuCCXQzNDQudGVzdDALggl0MzQ1LnRl --c3QwC4IJdDM0Ni50ZXN0MAuCCXQzNDcudGVzdDALggl0MzQ4LnRlc3QwC4IJdDM0 --OS50ZXN0MAuCCXQzNTAudGVzdDALggl0MzUxLnRlc3QwC4IJdDM1Mi50ZXN0MAuC --CXQzNTMudGVzdDALggl0MzU0LnRlc3QwC4IJdDM1NS50ZXN0MAuCCXQzNTYudGVz --dDALggl0MzU3LnRlc3QwC4IJdDM1OC50ZXN0MAuCCXQzNTkudGVzdDALggl0MzYw --LnRlc3QwC4IJdDM2MS50ZXN0MAuCCXQzNjIudGVzdDALggl0MzYzLnRlc3QwC4IJ --dDM2NC50ZXN0MAuCCXQzNjUudGVzdDALggl0MzY2LnRlc3QwC4IJdDM2Ny50ZXN0 --MAuCCXQzNjgudGVzdDALggl0MzY5LnRlc3QwC4IJdDM3MC50ZXN0MAuCCXQzNzEu --dGVzdDALggl0MzcyLnRlc3QwC4IJdDM3My50ZXN0MAuCCXQzNzQudGVzdDALggl0 --Mzc1LnRlc3QwC4IJdDM3Ni50ZXN0MAuCCXQzNzcudGVzdDALggl0Mzc4LnRlc3Qw --C4IJdDM3OS50ZXN0MAuCCXQzODAudGVzdDALggl0MzgxLnRlc3QwC4IJdDM4Mi50 --ZXN0MAuCCXQzODMudGVzdDALggl0Mzg0LnRlc3QwC4IJdDM4NS50ZXN0MAuCCXQz --ODYudGVzdDALggl0Mzg3LnRlc3QwC4IJdDM4OC50ZXN0MAuCCXQzODkudGVzdDAL --ggl0MzkwLnRlc3QwC4IJdDM5MS50ZXN0MAuCCXQzOTIudGVzdDALggl0MzkzLnRl --c3QwC4IJdDM5NC50ZXN0MAuCCXQzOTUudGVzdDALggl0Mzk2LnRlc3QwC4IJdDM5 --Ny50ZXN0MAuCCXQzOTgudGVzdDALggl0Mzk5LnRlc3QwC4IJdDQwMC50ZXN0MAuC --CXQ0MDEudGVzdDALggl0NDAyLnRlc3QwC4IJdDQwMy50ZXN0MAuCCXQ0MDQudGVz --dDALggl0NDA1LnRlc3QwC4IJdDQwNi50ZXN0MAuCCXQ0MDcudGVzdDALggl0NDA4 --LnRlc3QwC4IJdDQwOS50ZXN0MAuCCXQ0MTAudGVzdDALggl0NDExLnRlc3QwC4IJ --dDQxMi50ZXN0MAuCCXQ0MTMudGVzdDALggl0NDE0LnRlc3QwC4IJdDQxNS50ZXN0 --MAuCCXQ0MTYudGVzdDALggl0NDE3LnRlc3QwCocICgAAAP////8wCocICgAAAf// --//8wCocICgAAAv////8wCocICgAAA/////8wCocICgAABP////8wCocICgAABf// --//8wCocICgAABv////8wCocICgAAB/////8wCocICgAACP////8wCocICgAACf// --//8wCocICgAACv////8wCocICgAAC/////8wCocICgAADP////8wCocICgAADf// --//8wCocICgAADv////8wCocICgAAD/////8wCocICgAAEP////8wCocICgAAEf// --//8wCocICgAAEv////8wCocICgAAE/////8wCocICgAAFP////8wCocICgAAFf// --//8wCocICgAAFv////8wCocICgAAF/////8wCocICgAAGP////8wCocICgAAGf// --//8wCocICgAAGv////8wCocICgAAG/////8wCocICgAAHP////8wCocICgAAHf// --//8wCocICgAAHv////8wCocICgAAH/////8wCocICgAAIP////8wCocICgAAIf// --//8wCocICgAAIv////8wCocICgAAI/////8wCocICgAAJP////8wCocICgAAJf// --//8wCocICgAAJv////8wCocICgAAJ/////8wCocICgAAKP////8wCocICgAAKf// --//8wCocICgAAKv////8wCocICgAAK/////8wCocICgAALP////8wCocICgAALf// --//8wCocICgAALv////8wCocICgAAL/////8wCocICgAAMP////8wCocICgAAMf// --//8wCocICgAAMv////8wCocICgAAM/////8wCocICgAANP////8wCocICgAANf// --//8wCocICgAANv////8wCocICgAAN/////8wCocICgAAOP////8wCocICgAAOf// --//8wCocICgAAOv////8wCocICgAAO/////8wCocICgAAPP////8wCocICgAAPf// --//8wCocICgAAPv////8wCocICgAAP/////8wCocICgAAQP////8wCocICgAAQf// --//8wCocICgAAQv////8wCocICgAAQ/////8wCocICgAARP////8wCocICgAARf// --//8wCocICgAARv////8wCocICgAAR/////8wCocICgAASP////8wCocICgAASf// --//8wCocICgAASv////8wCocICgAAS/////8wCocICgAATP////8wCocICgAATf// --//8wCocICgAATv////8wCocICgAAT/////8wCocICgAAUP////8wCocICgAAUf// --//8wCocICgAAUv////8wCocICgAAU/////8wCocICgAAVP////8wCocICgAAVf// --//8wCocICgAAVv////8wCocICgAAV/////8wCocICgAAWP////8wCocICgAAWf// --//8wCocICgAAWv////8wCocICgAAW/////8wCocICgAAXP////8wCocICgAAXf// --//8wCocICgAAXv////8wCocICgAAX/////8wCocICgAAYP////8wCocICgAAYf// --//8wCocICgAAYv////8wCocICgAAY/////8wCocICgAAZP////8wCocICgAAZf// --//8wCocICgAAZv////8wCocICgAAZ/////8wCocICgAAaP////8wCocICgAAaf// --//8wCocICgAAav////8wCocICgAAa/////8wCocICgAAbP////8wCocICgAAbf// --//8wCocICgAAbv////8wCocICgAAb/////8wCocICgAAcP////8wCocICgAAcf// --//8wCocICgAAcv////8wCocICgAAc/////8wCocICgAAdP////8wCocICgAAdf// --//8wCocICgAAdv////8wCocICgAAd/////8wCocICgAAeP////8wCocICgAAef// --//8wCocICgAAev////8wCocICgAAe/////8wCocICgAAfP////8wCocICgAAff// --//8wCocICgAAfv////8wCocICgAAf/////8wCocICgAAgP////8wCocICgAAgf// --//8wCocICgAAgv////8wCocICgAAg/////8wCocICgAAhP////8wCocICgAAhf// --//8wCocICgAAhv////8wCocICgAAh/////8wCocICgAAiP////8wCocICgAAif// --//8wCocICgAAiv////8wCocICgAAi/////8wCocICgAAjP////8wCocICgAAjf// --//8wCocICgAAjv////8wCocICgAAj/////8wCocICgAAkP////8wCocICgAAkf// --//8wCocICgAAkv////8wCocICgAAk/////8wCocICgAAlP////8wCocICgAAlf// --//8wCocICgAAlv////8wCocICgAAl/////8wCocICgAAmP////8wCocICgAAmf// --//8wCocICgAAmv////8wCocICgAAm/////8wCocICgAAnP////8wCocICgAAnf// --//8wCocICgAAnv////8wCocICgAAn/////8wCocICgAAoP////8wCocICgAAof// --//8wCocICgAAov////8wCocICgAAo/////8wCocICgAApP////8wCocICgAApf// --//8wCocICgAApv////8wCocICgAAp/////8wCocICgAAqP////8wCocICgAAqf// --//8wCocICgAAqv////8wCocICgAAq/////8wCocICgAArP////8wCocICgAArf// --//8wCocICgAArv////8wCocICgAAr/////8wCocICgAAsP////8wCocICgAAsf// --//8wCocICgAAsv////8wCocICgAAs/////8wCocICgAAtP////8wCocICgAAtf// --//8wCocICgAAtv////8wCocICgAAt/////8wCocICgAAuP////8wCocICgAAuf// --//8wCocICgAAuv////8wCocICgAAu/////8wCocICgAAvP////8wCocICgAAvf// --//8wCocICgAAvv////8wCocICgAAv/////8wCocICgAAwP////8wCocICgAAwf// --//8wCocICgAAwv////8wCocICgAAw/////8wCocICgAAxP////8wCocICgAAxf// --//8wCocICgAAxv////8wCocICgAAx/////8wCocICgAAyP////8wCocICgAAyf// --//8wCocICgAAyv////8wCocICgAAy/////8wCocICgAAzP////8wCocICgAAzf// --//8wCocICgAAzv////8wCocICgAAz/////8wCocICgAA0P////8wCocICgAA0f// --//8wCocICgAA0v////8wCocICgAA0/////8wCocICgAA1P////8wCocICgAA1f// --//8wCocICgAA1v////8wCocICgAA1/////8wCocICgAA2P////8wCocICgAA2f// --//8wCocICgAA2v////8wCocICgAA2/////8wCocICgAA3P////8wCocICgAA3f// --//8wCocICgAA3v////8wCocICgAA3/////8wCocICgAA4P////8wCocICgAA4f// --//8wCocICgAA4v////8wCocICgAA4/////8wCocICgAA5P////8wCocICgAA5f// --//8wCocICgAA5v////8wCocICgAA5/////8wCocICgAA6P////8wCocICgAA6f// --//8wCocICgAA6v////8wCocICgAA6/////8wCocICgAA7P////8wCocICgAA7f// --//8wCocICgAA7v////8wCocICgAA7/////8wCocICgAA8P////8wCocICgAA8f// --//8wCocICgAA8v////8wCocICgAA8/////8wCocICgAA9P////8wCocICgAA9f// --//8wCocICgAA9v////8wCocICgAA9/////8wCocICgAA+P////8wCocICgAA+f// --//8wCocICgAA+v////8wCocICgAA+/////8wCocICgAA/P////8wCocICgAA/f// --//8wCocICgAA/v////8wCocICgAA//////8wCocICgABAP////8wCocICgABAf// --//8wCocICgABAv////8wCocICgABA/////8wCocICgABBP////8wCocICgABBf// --//8wCocICgABBv////8wCocICgABB/////8wCocICgABCP////8wCocICgABCf// --//8wCocICgABCv////8wCocICgABC/////8wCocICgABDP////8wCocICgABDf// --//8wCocICgABDv////8wCocICgABD/////8wCocICgABEP////8wCocICgABEf// --//8wCocICgABEv////8wCocICgABE/////8wCocICgABFP////8wCocICgABFf// --//8wCocICgABFv////8wCocICgABF/////8wCocICgABGP////8wCocICgABGf// --//8wCocICgABGv////8wCocICgABG/////8wCocICgABHP////8wCocICgABHf// --//8wCocICgABHv////8wCocICgABH/////8wCocICgABIP////8wCocICgABIf// --//8wCocICgABIv////8wCocICgABI/////8wCocICgABJP////8wCocICgABJf// --//8wCocICgABJv////8wCocICgABJ/////8wCocICgABKP////8wCocICgABKf// --//8wCocICgABKv////8wCocICgABK/////8wCocICgABLP////8wCocICgABLf// --//8wCocICgABLv////8wCocICgABL/////8wCocICgABMP////8wCocICgABMf// --//8wCocICgABMv////8wCocICgABM/////8wCocICgABNP////8wCocICgABNf// --//8wCocICgABNv////8wCocICgABN/////8wCocICgABOP////8wCocICgABOf// --//8wCocICgABOv////8wCocICgABO/////8wCocICgABPP////8wCocICgABPf// --//8wCocICgABPv////8wCocICgABP/////8wCocICgABQP////8wCocICgABQf// --//8wCocICgABQv////8wCocICgABQ/////8wCocICgABRP////8wCocICgABRf// --//8wCocICgABRv////8wCocICgABR/////8wCocICgABSP////8wCocICgABSf// --//8wCocICgABSv////8wCocICgABS/////8wCocICgABTP////8wCocICgABTf// --//8wCocICgABTv////8wCocICgABT/////8wCocICgABUP////8wCocICgABUf// --//8wCocICgABUv////8wCocICgABU/////8wCocICgABVP////8wCocICgABVf// --//8wCocICgABVv////8wCocICgABV/////8wCocICgABWP////8wCocICgABWf// --//8wCocICgABWv////8wCocICgABW/////8wCocICgABXP////8wCocICgABXf// --//8wCocICgABXv////8wCocICgABX/////8wCocICgABYP////8wCocICgABYf// --//8wCocICgABYv////8wCocICgABY/////8wCocICgABZP////8wCocICgABZf// --//8wCocICgABZv////8wCocICgABZ/////8wCocICgABaP////8wCocICgABaf// --//8wCocICgABav////8wCocICgABa/////8wCocICgABbP////8wCocICgABbf// --//8wCocICgABbv////8wCocICgABb/////8wCocICgABcP////8wCocICgABcf// --//8wCocICgABcv////8wCocICgABc/////8wCocICgABdP////8wCocICgABdf// --//8wCocICgABdv////8wCocICgABd/////8wCocICgABeP////8wCocICgABef// --//8wCocICgABev////8wCocICgABe/////8wCocICgABfP////8wCocICgABff// --//8wCocICgABfv////8wCocICgABf/////8wCocICgABgP////8wCocICgABgf// --//8wCocICgABgv////8wCocICgABg/////8wCocICgABhP////8wCocICgABhf// --//8wCocICgABhv////8wCocICgABh/////8wCocICgABiP////8wCocICgABif// --//8wCocICgABiv////8wCocICgABi/////8wCocICgABjP////8wCocICgABjf// --//8wCocICgABjv////8wCocICgABj/////8wCocICgABkP////8wCocICgABkf// --//8wCocICgABkv////8wCocICgABk/////8wCocICgABlP////8wCocICgABlf// --//8wCocICgABlv////8wCocICgABl/////8wCocICgABmP////8wCocICgABmf// --//8wCocICgABmv////8wCocICgABm/////8wCocICgABnP////8wCocICgABnf// --//8wCocICgABnv////8wCocICgABn/////8wCocICgABoP////8wCocICgABof// --//8wEaQPMA0xCzAJBgNVBAMMAnQwMBGkDzANMQswCQYDVQQDDAJ0MTARpA8wDTEL --MAkGA1UEAwwCdDIwEaQPMA0xCzAJBgNVBAMMAnQzMBGkDzANMQswCQYDVQQDDAJ0 --NDARpA8wDTELMAkGA1UEAwwCdDUwEaQPMA0xCzAJBgNVBAMMAnQ2MBGkDzANMQsw --CQYDVQQDDAJ0NzARpA8wDTELMAkGA1UEAwwCdDgwEaQPMA0xCzAJBgNVBAMMAnQ5 --MBKkEDAOMQwwCgYDVQQDDAN0MTAwEqQQMA4xDDAKBgNVBAMMA3QxMTASpBAwDjEM --MAoGA1UEAwwDdDEyMBKkEDAOMQwwCgYDVQQDDAN0MTMwEqQQMA4xDDAKBgNVBAMM --A3QxNDASpBAwDjEMMAoGA1UEAwwDdDE1MBKkEDAOMQwwCgYDVQQDDAN0MTYwEqQQ --MA4xDDAKBgNVBAMMA3QxNzASpBAwDjEMMAoGA1UEAwwDdDE4MBKkEDAOMQwwCgYD --VQQDDAN0MTkwEqQQMA4xDDAKBgNVBAMMA3QyMDASpBAwDjEMMAoGA1UEAwwDdDIx --MBKkEDAOMQwwCgYDVQQDDAN0MjIwEqQQMA4xDDAKBgNVBAMMA3QyMzASpBAwDjEM --MAoGA1UEAwwDdDI0MBKkEDAOMQwwCgYDVQQDDAN0MjUwEqQQMA4xDDAKBgNVBAMM --A3QyNjASpBAwDjEMMAoGA1UEAwwDdDI3MBKkEDAOMQwwCgYDVQQDDAN0MjgwEqQQ --MA4xDDAKBgNVBAMMA3QyOTASpBAwDjEMMAoGA1UEAwwDdDMwMBKkEDAOMQwwCgYD --VQQDDAN0MzEwEqQQMA4xDDAKBgNVBAMMA3QzMjASpBAwDjEMMAoGA1UEAwwDdDMz --MBKkEDAOMQwwCgYDVQQDDAN0MzQwEqQQMA4xDDAKBgNVBAMMA3QzNTASpBAwDjEM --MAoGA1UEAwwDdDM2MBKkEDAOMQwwCgYDVQQDDAN0MzcwEqQQMA4xDDAKBgNVBAMM --A3QzODASpBAwDjEMMAoGA1UEAwwDdDM5MBKkEDAOMQwwCgYDVQQDDAN0NDAwEqQQ --MA4xDDAKBgNVBAMMA3Q0MTASpBAwDjEMMAoGA1UEAwwDdDQyMBKkEDAOMQwwCgYD --VQQDDAN0NDMwEqQQMA4xDDAKBgNVBAMMA3Q0NDASpBAwDjEMMAoGA1UEAwwDdDQ1 --MBKkEDAOMQwwCgYDVQQDDAN0NDYwEqQQMA4xDDAKBgNVBAMMA3Q0NzASpBAwDjEM --MAoGA1UEAwwDdDQ4MBKkEDAOMQwwCgYDVQQDDAN0NDkwEqQQMA4xDDAKBgNVBAMM --A3Q1MDASpBAwDjEMMAoGA1UEAwwDdDUxMBKkEDAOMQwwCgYDVQQDDAN0NTIwEqQQ --MA4xDDAKBgNVBAMMA3Q1MzASpBAwDjEMMAoGA1UEAwwDdDU0MBKkEDAOMQwwCgYD --VQQDDAN0NTUwEqQQMA4xDDAKBgNVBAMMA3Q1NjASpBAwDjEMMAoGA1UEAwwDdDU3 --MBKkEDAOMQwwCgYDVQQDDAN0NTgwEqQQMA4xDDAKBgNVBAMMA3Q1OTASpBAwDjEM --MAoGA1UEAwwDdDYwMBKkEDAOMQwwCgYDVQQDDAN0NjEwEqQQMA4xDDAKBgNVBAMM --A3Q2MjASpBAwDjEMMAoGA1UEAwwDdDYzMBKkEDAOMQwwCgYDVQQDDAN0NjQwEqQQ --MA4xDDAKBgNVBAMMA3Q2NTASpBAwDjEMMAoGA1UEAwwDdDY2MBKkEDAOMQwwCgYD --VQQDDAN0NjcwEqQQMA4xDDAKBgNVBAMMA3Q2ODASpBAwDjEMMAoGA1UEAwwDdDY5 --MBKkEDAOMQwwCgYDVQQDDAN0NzAwEqQQMA4xDDAKBgNVBAMMA3Q3MTASpBAwDjEM --MAoGA1UEAwwDdDcyMBKkEDAOMQwwCgYDVQQDDAN0NzMwEqQQMA4xDDAKBgNVBAMM --A3Q3NDASpBAwDjEMMAoGA1UEAwwDdDc1MBKkEDAOMQwwCgYDVQQDDAN0NzYwEqQQ --MA4xDDAKBgNVBAMMA3Q3NzASpBAwDjEMMAoGA1UEAwwDdDc4MBKkEDAOMQwwCgYD --VQQDDAN0NzkwEqQQMA4xDDAKBgNVBAMMA3Q4MDASpBAwDjEMMAoGA1UEAwwDdDgx --MBKkEDAOMQwwCgYDVQQDDAN0ODIwEqQQMA4xDDAKBgNVBAMMA3Q4MzASpBAwDjEM --MAoGA1UEAwwDdDg0MBKkEDAOMQwwCgYDVQQDDAN0ODUwEqQQMA4xDDAKBgNVBAMM --A3Q4NjASpBAwDjEMMAoGA1UEAwwDdDg3MBKkEDAOMQwwCgYDVQQDDAN0ODgwEqQQ --MA4xDDAKBgNVBAMMA3Q4OTASpBAwDjEMMAoGA1UEAwwDdDkwMBKkEDAOMQwwCgYD --VQQDDAN0OTEwEqQQMA4xDDAKBgNVBAMMA3Q5MjASpBAwDjEMMAoGA1UEAwwDdDkz --MBKkEDAOMQwwCgYDVQQDDAN0OTQwEqQQMA4xDDAKBgNVBAMMA3Q5NTASpBAwDjEM --MAoGA1UEAwwDdDk2MBKkEDAOMQwwCgYDVQQDDAN0OTcwEqQQMA4xDDAKBgNVBAMM --A3Q5ODASpBAwDjEMMAoGA1UEAwwDdDk5MBOkETAPMQ0wCwYDVQQDDAR0MTAwMBOk --ETAPMQ0wCwYDVQQDDAR0MTAxMBOkETAPMQ0wCwYDVQQDDAR0MTAyMBOkETAPMQ0w --CwYDVQQDDAR0MTAzMBOkETAPMQ0wCwYDVQQDDAR0MTA0MBOkETAPMQ0wCwYDVQQD --DAR0MTA1MBOkETAPMQ0wCwYDVQQDDAR0MTA2MBOkETAPMQ0wCwYDVQQDDAR0MTA3 --MBOkETAPMQ0wCwYDVQQDDAR0MTA4MBOkETAPMQ0wCwYDVQQDDAR0MTA5MBOkETAP --MQ0wCwYDVQQDDAR0MTEwMBOkETAPMQ0wCwYDVQQDDAR0MTExMBOkETAPMQ0wCwYD --VQQDDAR0MTEyMBOkETAPMQ0wCwYDVQQDDAR0MTEzMBOkETAPMQ0wCwYDVQQDDAR0 --MTE0MBOkETAPMQ0wCwYDVQQDDAR0MTE1MBOkETAPMQ0wCwYDVQQDDAR0MTE2MBOk --ETAPMQ0wCwYDVQQDDAR0MTE3MBOkETAPMQ0wCwYDVQQDDAR0MTE4MBOkETAPMQ0w --CwYDVQQDDAR0MTE5MBOkETAPMQ0wCwYDVQQDDAR0MTIwMBOkETAPMQ0wCwYDVQQD --DAR0MTIxMBOkETAPMQ0wCwYDVQQDDAR0MTIyMBOkETAPMQ0wCwYDVQQDDAR0MTIz --MBOkETAPMQ0wCwYDVQQDDAR0MTI0MBOkETAPMQ0wCwYDVQQDDAR0MTI1MBOkETAP --MQ0wCwYDVQQDDAR0MTI2MBOkETAPMQ0wCwYDVQQDDAR0MTI3MBOkETAPMQ0wCwYD --VQQDDAR0MTI4MBOkETAPMQ0wCwYDVQQDDAR0MTI5MBOkETAPMQ0wCwYDVQQDDAR0 --MTMwMBOkETAPMQ0wCwYDVQQDDAR0MTMxMBOkETAPMQ0wCwYDVQQDDAR0MTMyMBOk --ETAPMQ0wCwYDVQQDDAR0MTMzMBOkETAPMQ0wCwYDVQQDDAR0MTM0MBOkETAPMQ0w --CwYDVQQDDAR0MTM1MBOkETAPMQ0wCwYDVQQDDAR0MTM2MBOkETAPMQ0wCwYDVQQD --DAR0MTM3MBOkETAPMQ0wCwYDVQQDDAR0MTM4MBOkETAPMQ0wCwYDVQQDDAR0MTM5 --MBOkETAPMQ0wCwYDVQQDDAR0MTQwMBOkETAPMQ0wCwYDVQQDDAR0MTQxMBOkETAP --MQ0wCwYDVQQDDAR0MTQyMBOkETAPMQ0wCwYDVQQDDAR0MTQzMBOkETAPMQ0wCwYD --VQQDDAR0MTQ0MBOkETAPMQ0wCwYDVQQDDAR0MTQ1MBOkETAPMQ0wCwYDVQQDDAR0 --MTQ2MBOkETAPMQ0wCwYDVQQDDAR0MTQ3MBOkETAPMQ0wCwYDVQQDDAR0MTQ4MBOk --ETAPMQ0wCwYDVQQDDAR0MTQ5MBOkETAPMQ0wCwYDVQQDDAR0MTUwMBOkETAPMQ0w --CwYDVQQDDAR0MTUxMBOkETAPMQ0wCwYDVQQDDAR0MTUyMBOkETAPMQ0wCwYDVQQD --DAR0MTUzMBOkETAPMQ0wCwYDVQQDDAR0MTU0MBOkETAPMQ0wCwYDVQQDDAR0MTU1 --MBOkETAPMQ0wCwYDVQQDDAR0MTU2MBOkETAPMQ0wCwYDVQQDDAR0MTU3MBOkETAP --MQ0wCwYDVQQDDAR0MTU4MBOkETAPMQ0wCwYDVQQDDAR0MTU5MBOkETAPMQ0wCwYD --VQQDDAR0MTYwMBOkETAPMQ0wCwYDVQQDDAR0MTYxMBOkETAPMQ0wCwYDVQQDDAR0 --MTYyMBOkETAPMQ0wCwYDVQQDDAR0MTYzMBOkETAPMQ0wCwYDVQQDDAR0MTY0MBOk --ETAPMQ0wCwYDVQQDDAR0MTY1MBOkETAPMQ0wCwYDVQQDDAR0MTY2MBOkETAPMQ0w --CwYDVQQDDAR0MTY3MBOkETAPMQ0wCwYDVQQDDAR0MTY4MBOkETAPMQ0wCwYDVQQD --DAR0MTY5MBOkETAPMQ0wCwYDVQQDDAR0MTcwMBOkETAPMQ0wCwYDVQQDDAR0MTcx --MBOkETAPMQ0wCwYDVQQDDAR0MTcyMBOkETAPMQ0wCwYDVQQDDAR0MTczMBOkETAP --MQ0wCwYDVQQDDAR0MTc0MBOkETAPMQ0wCwYDVQQDDAR0MTc1MBOkETAPMQ0wCwYD --VQQDDAR0MTc2MBOkETAPMQ0wCwYDVQQDDAR0MTc3MBOkETAPMQ0wCwYDVQQDDAR0 --MTc4MBOkETAPMQ0wCwYDVQQDDAR0MTc5MBOkETAPMQ0wCwYDVQQDDAR0MTgwMBOk --ETAPMQ0wCwYDVQQDDAR0MTgxMBOkETAPMQ0wCwYDVQQDDAR0MTgyMBOkETAPMQ0w --CwYDVQQDDAR0MTgzMBOkETAPMQ0wCwYDVQQDDAR0MTg0MBOkETAPMQ0wCwYDVQQD --DAR0MTg1MBOkETAPMQ0wCwYDVQQDDAR0MTg2MBOkETAPMQ0wCwYDVQQDDAR0MTg3 --MBOkETAPMQ0wCwYDVQQDDAR0MTg4MBOkETAPMQ0wCwYDVQQDDAR0MTg5MBOkETAP --MQ0wCwYDVQQDDAR0MTkwMBOkETAPMQ0wCwYDVQQDDAR0MTkxMBOkETAPMQ0wCwYD --VQQDDAR0MTkyMBOkETAPMQ0wCwYDVQQDDAR0MTkzMBOkETAPMQ0wCwYDVQQDDAR0 --MTk0MBOkETAPMQ0wCwYDVQQDDAR0MTk1MBOkETAPMQ0wCwYDVQQDDAR0MTk2MBOk --ETAPMQ0wCwYDVQQDDAR0MTk3MBOkETAPMQ0wCwYDVQQDDAR0MTk4MBOkETAPMQ0w --CwYDVQQDDAR0MTk5MBOkETAPMQ0wCwYDVQQDDAR0MjAwMBOkETAPMQ0wCwYDVQQD --DAR0MjAxMBOkETAPMQ0wCwYDVQQDDAR0MjAyMBOkETAPMQ0wCwYDVQQDDAR0MjAz --MBOkETAPMQ0wCwYDVQQDDAR0MjA0MBOkETAPMQ0wCwYDVQQDDAR0MjA1MBOkETAP --MQ0wCwYDVQQDDAR0MjA2MBOkETAPMQ0wCwYDVQQDDAR0MjA3MBOkETAPMQ0wCwYD --VQQDDAR0MjA4MBOkETAPMQ0wCwYDVQQDDAR0MjA5MBOkETAPMQ0wCwYDVQQDDAR0 --MjEwMBOkETAPMQ0wCwYDVQQDDAR0MjExMBOkETAPMQ0wCwYDVQQDDAR0MjEyMBOk --ETAPMQ0wCwYDVQQDDAR0MjEzMBOkETAPMQ0wCwYDVQQDDAR0MjE0MBOkETAPMQ0w --CwYDVQQDDAR0MjE1MBOkETAPMQ0wCwYDVQQDDAR0MjE2MBOkETAPMQ0wCwYDVQQD --DAR0MjE3MBOkETAPMQ0wCwYDVQQDDAR0MjE4MBOkETAPMQ0wCwYDVQQDDAR0MjE5 --MBOkETAPMQ0wCwYDVQQDDAR0MjIwMBOkETAPMQ0wCwYDVQQDDAR0MjIxMBOkETAP --MQ0wCwYDVQQDDAR0MjIyMBOkETAPMQ0wCwYDVQQDDAR0MjIzMBOkETAPMQ0wCwYD --VQQDDAR0MjI0MBOkETAPMQ0wCwYDVQQDDAR0MjI1MBOkETAPMQ0wCwYDVQQDDAR0 --MjI2MBOkETAPMQ0wCwYDVQQDDAR0MjI3MBOkETAPMQ0wCwYDVQQDDAR0MjI4MBOk --ETAPMQ0wCwYDVQQDDAR0MjI5MBOkETAPMQ0wCwYDVQQDDAR0MjMwMBOkETAPMQ0w --CwYDVQQDDAR0MjMxMBOkETAPMQ0wCwYDVQQDDAR0MjMyMBOkETAPMQ0wCwYDVQQD --DAR0MjMzMBOkETAPMQ0wCwYDVQQDDAR0MjM0MBOkETAPMQ0wCwYDVQQDDAR0MjM1 --MBOkETAPMQ0wCwYDVQQDDAR0MjM2MBOkETAPMQ0wCwYDVQQDDAR0MjM3MBOkETAP --MQ0wCwYDVQQDDAR0MjM4MBOkETAPMQ0wCwYDVQQDDAR0MjM5MBOkETAPMQ0wCwYD --VQQDDAR0MjQwMBOkETAPMQ0wCwYDVQQDDAR0MjQxMBOkETAPMQ0wCwYDVQQDDAR0 --MjQyMBOkETAPMQ0wCwYDVQQDDAR0MjQzMBOkETAPMQ0wCwYDVQQDDAR0MjQ0MBOk --ETAPMQ0wCwYDVQQDDAR0MjQ1MBOkETAPMQ0wCwYDVQQDDAR0MjQ2MBOkETAPMQ0w --CwYDVQQDDAR0MjQ3MBOkETAPMQ0wCwYDVQQDDAR0MjQ4MBOkETAPMQ0wCwYDVQQD --DAR0MjQ5MBOkETAPMQ0wCwYDVQQDDAR0MjUwMBOkETAPMQ0wCwYDVQQDDAR0MjUx --MBOkETAPMQ0wCwYDVQQDDAR0MjUyMBOkETAPMQ0wCwYDVQQDDAR0MjUzMBOkETAP --MQ0wCwYDVQQDDAR0MjU0MBOkETAPMQ0wCwYDVQQDDAR0MjU1MBOkETAPMQ0wCwYD --VQQDDAR0MjU2MBOkETAPMQ0wCwYDVQQDDAR0MjU3MBOkETAPMQ0wCwYDVQQDDAR0 --MjU4MBOkETAPMQ0wCwYDVQQDDAR0MjU5MBOkETAPMQ0wCwYDVQQDDAR0MjYwMBOk --ETAPMQ0wCwYDVQQDDAR0MjYxMBOkETAPMQ0wCwYDVQQDDAR0MjYyMBOkETAPMQ0w --CwYDVQQDDAR0MjYzMBOkETAPMQ0wCwYDVQQDDAR0MjY0MBOkETAPMQ0wCwYDVQQD --DAR0MjY1MBOkETAPMQ0wCwYDVQQDDAR0MjY2MBOkETAPMQ0wCwYDVQQDDAR0MjY3 --MBOkETAPMQ0wCwYDVQQDDAR0MjY4MBOkETAPMQ0wCwYDVQQDDAR0MjY5MBOkETAP --MQ0wCwYDVQQDDAR0MjcwMBOkETAPMQ0wCwYDVQQDDAR0MjcxMBOkETAPMQ0wCwYD --VQQDDAR0MjcyMBOkETAPMQ0wCwYDVQQDDAR0MjczMBOkETAPMQ0wCwYDVQQDDAR0 --Mjc0MBOkETAPMQ0wCwYDVQQDDAR0Mjc1MBOkETAPMQ0wCwYDVQQDDAR0Mjc2MBOk --ETAPMQ0wCwYDVQQDDAR0Mjc3MBOkETAPMQ0wCwYDVQQDDAR0Mjc4MBOkETAPMQ0w --CwYDVQQDDAR0Mjc5MBOkETAPMQ0wCwYDVQQDDAR0MjgwMBOkETAPMQ0wCwYDVQQD --DAR0MjgxMBOkETAPMQ0wCwYDVQQDDAR0MjgyMBOkETAPMQ0wCwYDVQQDDAR0Mjgz --MBOkETAPMQ0wCwYDVQQDDAR0Mjg0MBOkETAPMQ0wCwYDVQQDDAR0Mjg1MBOkETAP --MQ0wCwYDVQQDDAR0Mjg2MBOkETAPMQ0wCwYDVQQDDAR0Mjg3MBOkETAPMQ0wCwYD --VQQDDAR0Mjg4MBOkETAPMQ0wCwYDVQQDDAR0Mjg5MBOkETAPMQ0wCwYDVQQDDAR0 --MjkwMBOkETAPMQ0wCwYDVQQDDAR0MjkxMBOkETAPMQ0wCwYDVQQDDAR0MjkyMBOk --ETAPMQ0wCwYDVQQDDAR0MjkzMBOkETAPMQ0wCwYDVQQDDAR0Mjk0MBOkETAPMQ0w --CwYDVQQDDAR0Mjk1MBOkETAPMQ0wCwYDVQQDDAR0Mjk2MBOkETAPMQ0wCwYDVQQD --DAR0Mjk3MBOkETAPMQ0wCwYDVQQDDAR0Mjk4MBOkETAPMQ0wCwYDVQQDDAR0Mjk5 --MBOkETAPMQ0wCwYDVQQDDAR0MzAwMBOkETAPMQ0wCwYDVQQDDAR0MzAxMBOkETAP --MQ0wCwYDVQQDDAR0MzAyMBOkETAPMQ0wCwYDVQQDDAR0MzAzMBOkETAPMQ0wCwYD --VQQDDAR0MzA0MBOkETAPMQ0wCwYDVQQDDAR0MzA1MBOkETAPMQ0wCwYDVQQDDAR0 --MzA2MBOkETAPMQ0wCwYDVQQDDAR0MzA3MBOkETAPMQ0wCwYDVQQDDAR0MzA4MBOk --ETAPMQ0wCwYDVQQDDAR0MzA5MBOkETAPMQ0wCwYDVQQDDAR0MzEwMBOkETAPMQ0w --CwYDVQQDDAR0MzExMBOkETAPMQ0wCwYDVQQDDAR0MzEyMBOkETAPMQ0wCwYDVQQD --DAR0MzEzMBOkETAPMQ0wCwYDVQQDDAR0MzE0MBOkETAPMQ0wCwYDVQQDDAR0MzE1 --MBOkETAPMQ0wCwYDVQQDDAR0MzE2MBOkETAPMQ0wCwYDVQQDDAR0MzE3MBOkETAP --MQ0wCwYDVQQDDAR0MzE4MBOkETAPMQ0wCwYDVQQDDAR0MzE5MBOkETAPMQ0wCwYD --VQQDDAR0MzIwMBOkETAPMQ0wCwYDVQQDDAR0MzIxMBOkETAPMQ0wCwYDVQQDDAR0 --MzIyMBOkETAPMQ0wCwYDVQQDDAR0MzIzMBOkETAPMQ0wCwYDVQQDDAR0MzI0MBOk --ETAPMQ0wCwYDVQQDDAR0MzI1MBOkETAPMQ0wCwYDVQQDDAR0MzI2MBOkETAPMQ0w --CwYDVQQDDAR0MzI3MBOkETAPMQ0wCwYDVQQDDAR0MzI4MBOkETAPMQ0wCwYDVQQD --DAR0MzI5MBOkETAPMQ0wCwYDVQQDDAR0MzMwMBOkETAPMQ0wCwYDVQQDDAR0MzMx --MBOkETAPMQ0wCwYDVQQDDAR0MzMyMBOkETAPMQ0wCwYDVQQDDAR0MzMzMBOkETAP --MQ0wCwYDVQQDDAR0MzM0MBOkETAPMQ0wCwYDVQQDDAR0MzM1MBOkETAPMQ0wCwYD --VQQDDAR0MzM2MBOkETAPMQ0wCwYDVQQDDAR0MzM3MBOkETAPMQ0wCwYDVQQDDAR0 --MzM4MBOkETAPMQ0wCwYDVQQDDAR0MzM5MBOkETAPMQ0wCwYDVQQDDAR0MzQwMBOk --ETAPMQ0wCwYDVQQDDAR0MzQxMBOkETAPMQ0wCwYDVQQDDAR0MzQyMBOkETAPMQ0w --CwYDVQQDDAR0MzQzMBOkETAPMQ0wCwYDVQQDDAR0MzQ0MBOkETAPMQ0wCwYDVQQD --DAR0MzQ1MBOkETAPMQ0wCwYDVQQDDAR0MzQ2MBOkETAPMQ0wCwYDVQQDDAR0MzQ3 --MBOkETAPMQ0wCwYDVQQDDAR0MzQ4MBOkETAPMQ0wCwYDVQQDDAR0MzQ5MBOkETAP --MQ0wCwYDVQQDDAR0MzUwMBOkETAPMQ0wCwYDVQQDDAR0MzUxMBOkETAPMQ0wCwYD --VQQDDAR0MzUyMBOkETAPMQ0wCwYDVQQDDAR0MzUzMBOkETAPMQ0wCwYDVQQDDAR0 --MzU0MBOkETAPMQ0wCwYDVQQDDAR0MzU1MBOkETAPMQ0wCwYDVQQDDAR0MzU2MBOk --ETAPMQ0wCwYDVQQDDAR0MzU3MBOkETAPMQ0wCwYDVQQDDAR0MzU4MBOkETAPMQ0w --CwYDVQQDDAR0MzU5MBOkETAPMQ0wCwYDVQQDDAR0MzYwMBOkETAPMQ0wCwYDVQQD --DAR0MzYxMBOkETAPMQ0wCwYDVQQDDAR0MzYyMBOkETAPMQ0wCwYDVQQDDAR0MzYz --MBOkETAPMQ0wCwYDVQQDDAR0MzY0MBOkETAPMQ0wCwYDVQQDDAR0MzY1MBOkETAP --MQ0wCwYDVQQDDAR0MzY2MBOkETAPMQ0wCwYDVQQDDAR0MzY3MBOkETAPMQ0wCwYD --VQQDDAR0MzY4MBOkETAPMQ0wCwYDVQQDDAR0MzY5MBOkETAPMQ0wCwYDVQQDDAR0 --MzcwMBOkETAPMQ0wCwYDVQQDDAR0MzcxMBOkETAPMQ0wCwYDVQQDDAR0MzcyMBOk --ETAPMQ0wCwYDVQQDDAR0MzczMBOkETAPMQ0wCwYDVQQDDAR0Mzc0MBOkETAPMQ0w --CwYDVQQDDAR0Mzc1MBOkETAPMQ0wCwYDVQQDDAR0Mzc2MBOkETAPMQ0wCwYDVQQD --DAR0Mzc3MBOkETAPMQ0wCwYDVQQDDAR0Mzc4MBOkETAPMQ0wCwYDVQQDDAR0Mzc5 --MBOkETAPMQ0wCwYDVQQDDAR0MzgwMBOkETAPMQ0wCwYDVQQDDAR0MzgxMBOkETAP --MQ0wCwYDVQQDDAR0MzgyMBOkETAPMQ0wCwYDVQQDDAR0MzgzMBOkETAPMQ0wCwYD --VQQDDAR0Mzg0MBOkETAPMQ0wCwYDVQQDDAR0Mzg1MBOkETAPMQ0wCwYDVQQDDAR0 --Mzg2MBOkETAPMQ0wCwYDVQQDDAR0Mzg3MBOkETAPMQ0wCwYDVQQDDAR0Mzg4MBOk --ETAPMQ0wCwYDVQQDDAR0Mzg5MBOkETAPMQ0wCwYDVQQDDAR0MzkwMBOkETAPMQ0w --CwYDVQQDDAR0MzkxMBOkETAPMQ0wCwYDVQQDDAR0MzkyMBOkETAPMQ0wCwYDVQQD --DAR0MzkzMBOkETAPMQ0wCwYDVQQDDAR0Mzk0MBOkETAPMQ0wCwYDVQQDDAR0Mzk1 --MBOkETAPMQ0wCwYDVQQDDAR0Mzk2MBOkETAPMQ0wCwYDVQQDDAR0Mzk3MBOkETAP --MQ0wCwYDVQQDDAR0Mzk4MBOkETAPMQ0wCwYDVQQDDAR0Mzk5MBOkETAPMQ0wCwYD --VQQDDAR0NDAwMBOkETAPMQ0wCwYDVQQDDAR0NDAxMBOkETAPMQ0wCwYDVQQDDAR0 --NDAyMBOkETAPMQ0wCwYDVQQDDAR0NDAzMBOkETAPMQ0wCwYDVQQDDAR0NDA0MBOk --ETAPMQ0wCwYDVQQDDAR0NDA1MBOkETAPMQ0wCwYDVQQDDAR0NDA2MBOkETAPMQ0w --CwYDVQQDDAR0NDA3MBOkETAPMQ0wCwYDVQQDDAR0NDA4MBOkETAPMQ0wCwYDVQQD --DAR0NDA5MBOkETAPMQ0wCwYDVQQDDAR0NDEwMBOkETAPMQ0wCwYDVQQDDAR0NDEx --MBOkETAPMQ0wCwYDVQQDDAR0NDEyMBOkETAPMQ0wCwYDVQQDDAR0NDEzMBOkETAP --MQ0wCwYDVQQDDAR0NDE0MBOkETAPMQ0wCwYDVQQDDAR0NDE1MBOkETAPMQ0wCwYD --VQQDDAR0NDE2MBOkETAPMQ0wCwYDVQQDDAR0NDE3MA+GDWh0dHA6Ly90ZXN0LzAw --D4YNaHR0cDovL3Rlc3QvMTAPhg1odHRwOi8vdGVzdC8yMA+GDWh0dHA6Ly90ZXN0 --LzMwD4YNaHR0cDovL3Rlc3QvNDAPhg1odHRwOi8vdGVzdC81MA+GDWh0dHA6Ly90 --ZXN0LzYwD4YNaHR0cDovL3Rlc3QvNzAPhg1odHRwOi8vdGVzdC84MA+GDWh0dHA6 --Ly90ZXN0LzkwEIYOaHR0cDovL3Rlc3QvMTAwEIYOaHR0cDovL3Rlc3QvMTEwEIYO --aHR0cDovL3Rlc3QvMTIwEIYOaHR0cDovL3Rlc3QvMTMwEIYOaHR0cDovL3Rlc3Qv --MTQwEIYOaHR0cDovL3Rlc3QvMTUwEIYOaHR0cDovL3Rlc3QvMTYwEIYOaHR0cDov --L3Rlc3QvMTcwEIYOaHR0cDovL3Rlc3QvMTgwEIYOaHR0cDovL3Rlc3QvMTkwEIYO --aHR0cDovL3Rlc3QvMjAwEIYOaHR0cDovL3Rlc3QvMjEwEIYOaHR0cDovL3Rlc3Qv --MjIwEIYOaHR0cDovL3Rlc3QvMjMwEIYOaHR0cDovL3Rlc3QvMjQwEIYOaHR0cDov --L3Rlc3QvMjUwEIYOaHR0cDovL3Rlc3QvMjYwEIYOaHR0cDovL3Rlc3QvMjcwEIYO --aHR0cDovL3Rlc3QvMjgwEIYOaHR0cDovL3Rlc3QvMjkwEIYOaHR0cDovL3Rlc3Qv --MzAwEIYOaHR0cDovL3Rlc3QvMzEwEIYOaHR0cDovL3Rlc3QvMzIwEIYOaHR0cDov --L3Rlc3QvMzMwEIYOaHR0cDovL3Rlc3QvMzQwEIYOaHR0cDovL3Rlc3QvMzUwEIYO --aHR0cDovL3Rlc3QvMzYwEIYOaHR0cDovL3Rlc3QvMzcwEIYOaHR0cDovL3Rlc3Qv --MzgwEIYOaHR0cDovL3Rlc3QvMzkwEIYOaHR0cDovL3Rlc3QvNDAwEIYOaHR0cDov --L3Rlc3QvNDEwEIYOaHR0cDovL3Rlc3QvNDIwEIYOaHR0cDovL3Rlc3QvNDMwEIYO --aHR0cDovL3Rlc3QvNDQwEIYOaHR0cDovL3Rlc3QvNDUwEIYOaHR0cDovL3Rlc3Qv --NDYwEIYOaHR0cDovL3Rlc3QvNDcwEIYOaHR0cDovL3Rlc3QvNDgwEIYOaHR0cDov --L3Rlc3QvNDkwEIYOaHR0cDovL3Rlc3QvNTAwEIYOaHR0cDovL3Rlc3QvNTEwEIYO --aHR0cDovL3Rlc3QvNTIwEIYOaHR0cDovL3Rlc3QvNTMwEIYOaHR0cDovL3Rlc3Qv --NTQwEIYOaHR0cDovL3Rlc3QvNTUwEIYOaHR0cDovL3Rlc3QvNTYwEIYOaHR0cDov --L3Rlc3QvNTcwEIYOaHR0cDovL3Rlc3QvNTgwEIYOaHR0cDovL3Rlc3QvNTkwEIYO --aHR0cDovL3Rlc3QvNjAwEIYOaHR0cDovL3Rlc3QvNjEwEIYOaHR0cDovL3Rlc3Qv --NjIwEIYOaHR0cDovL3Rlc3QvNjMwEIYOaHR0cDovL3Rlc3QvNjQwEIYOaHR0cDov --L3Rlc3QvNjUwEIYOaHR0cDovL3Rlc3QvNjYwEIYOaHR0cDovL3Rlc3QvNjcwEIYO --aHR0cDovL3Rlc3QvNjgwEIYOaHR0cDovL3Rlc3QvNjkwEIYOaHR0cDovL3Rlc3Qv --NzAwEIYOaHR0cDovL3Rlc3QvNzEwEIYOaHR0cDovL3Rlc3QvNzIwEIYOaHR0cDov --L3Rlc3QvNzMwEIYOaHR0cDovL3Rlc3QvNzQwEIYOaHR0cDovL3Rlc3QvNzUwEIYO --aHR0cDovL3Rlc3QvNzYwEIYOaHR0cDovL3Rlc3QvNzcwEIYOaHR0cDovL3Rlc3Qv --NzgwEIYOaHR0cDovL3Rlc3QvNzkwEIYOaHR0cDovL3Rlc3QvODAwEIYOaHR0cDov --L3Rlc3QvODEwEIYOaHR0cDovL3Rlc3QvODIwEIYOaHR0cDovL3Rlc3QvODMwEIYO --aHR0cDovL3Rlc3QvODQwEIYOaHR0cDovL3Rlc3QvODUwEIYOaHR0cDovL3Rlc3Qv --ODYwEIYOaHR0cDovL3Rlc3QvODcwEIYOaHR0cDovL3Rlc3QvODgwEIYOaHR0cDov --L3Rlc3QvODkwEIYOaHR0cDovL3Rlc3QvOTAwEIYOaHR0cDovL3Rlc3QvOTEwEIYO --aHR0cDovL3Rlc3QvOTIwEIYOaHR0cDovL3Rlc3QvOTMwEIYOaHR0cDovL3Rlc3Qv --OTQwEIYOaHR0cDovL3Rlc3QvOTUwEIYOaHR0cDovL3Rlc3QvOTYwEIYOaHR0cDov --L3Rlc3QvOTcwEIYOaHR0cDovL3Rlc3QvOTgwEIYOaHR0cDovL3Rlc3QvOTkwEYYP --aHR0cDovL3Rlc3QvMTAwMBGGD2h0dHA6Ly90ZXN0LzEwMTARhg9odHRwOi8vdGVz --dC8xMDIwEYYPaHR0cDovL3Rlc3QvMTAzMBGGD2h0dHA6Ly90ZXN0LzEwNDARhg9o --dHRwOi8vdGVzdC8xMDUwEYYPaHR0cDovL3Rlc3QvMTA2MBGGD2h0dHA6Ly90ZXN0 --LzEwNzARhg9odHRwOi8vdGVzdC8xMDgwEYYPaHR0cDovL3Rlc3QvMTA5MBGGD2h0 --dHA6Ly90ZXN0LzExMDARhg9odHRwOi8vdGVzdC8xMTEwEYYPaHR0cDovL3Rlc3Qv --MTEyMBGGD2h0dHA6Ly90ZXN0LzExMzARhg9odHRwOi8vdGVzdC8xMTQwEYYPaHR0 --cDovL3Rlc3QvMTE1MBGGD2h0dHA6Ly90ZXN0LzExNjARhg9odHRwOi8vdGVzdC8x --MTcwEYYPaHR0cDovL3Rlc3QvMTE4MBGGD2h0dHA6Ly90ZXN0LzExOTARhg9odHRw --Oi8vdGVzdC8xMjAwEYYPaHR0cDovL3Rlc3QvMTIxMBGGD2h0dHA6Ly90ZXN0LzEy --MjARhg9odHRwOi8vdGVzdC8xMjMwEYYPaHR0cDovL3Rlc3QvMTI0MBGGD2h0dHA6 --Ly90ZXN0LzEyNTARhg9odHRwOi8vdGVzdC8xMjYwEYYPaHR0cDovL3Rlc3QvMTI3 --MBGGD2h0dHA6Ly90ZXN0LzEyODARhg9odHRwOi8vdGVzdC8xMjkwEYYPaHR0cDov --L3Rlc3QvMTMwMBGGD2h0dHA6Ly90ZXN0LzEzMTARhg9odHRwOi8vdGVzdC8xMzIw --EYYPaHR0cDovL3Rlc3QvMTMzMBGGD2h0dHA6Ly90ZXN0LzEzNDARhg9odHRwOi8v --dGVzdC8xMzUwEYYPaHR0cDovL3Rlc3QvMTM2MBGGD2h0dHA6Ly90ZXN0LzEzNzAR --hg9odHRwOi8vdGVzdC8xMzgwEYYPaHR0cDovL3Rlc3QvMTM5MBGGD2h0dHA6Ly90 --ZXN0LzE0MDARhg9odHRwOi8vdGVzdC8xNDEwEYYPaHR0cDovL3Rlc3QvMTQyMBGG --D2h0dHA6Ly90ZXN0LzE0MzARhg9odHRwOi8vdGVzdC8xNDQwEYYPaHR0cDovL3Rl --c3QvMTQ1MBGGD2h0dHA6Ly90ZXN0LzE0NjARhg9odHRwOi8vdGVzdC8xNDcwEYYP --aHR0cDovL3Rlc3QvMTQ4MBGGD2h0dHA6Ly90ZXN0LzE0OTARhg9odHRwOi8vdGVz --dC8xNTAwEYYPaHR0cDovL3Rlc3QvMTUxMBGGD2h0dHA6Ly90ZXN0LzE1MjARhg9o --dHRwOi8vdGVzdC8xNTMwEYYPaHR0cDovL3Rlc3QvMTU0MBGGD2h0dHA6Ly90ZXN0 --LzE1NTARhg9odHRwOi8vdGVzdC8xNTYwEYYPaHR0cDovL3Rlc3QvMTU3MBGGD2h0 --dHA6Ly90ZXN0LzE1ODARhg9odHRwOi8vdGVzdC8xNTkwEYYPaHR0cDovL3Rlc3Qv --MTYwMBGGD2h0dHA6Ly90ZXN0LzE2MTARhg9odHRwOi8vdGVzdC8xNjIwEYYPaHR0 --cDovL3Rlc3QvMTYzMBGGD2h0dHA6Ly90ZXN0LzE2NDARhg9odHRwOi8vdGVzdC8x --NjUwEYYPaHR0cDovL3Rlc3QvMTY2MBGGD2h0dHA6Ly90ZXN0LzE2NzARhg9odHRw --Oi8vdGVzdC8xNjgwEYYPaHR0cDovL3Rlc3QvMTY5MBGGD2h0dHA6Ly90ZXN0LzE3 --MDARhg9odHRwOi8vdGVzdC8xNzEwEYYPaHR0cDovL3Rlc3QvMTcyMBGGD2h0dHA6 --Ly90ZXN0LzE3MzARhg9odHRwOi8vdGVzdC8xNzQwEYYPaHR0cDovL3Rlc3QvMTc1 --MBGGD2h0dHA6Ly90ZXN0LzE3NjARhg9odHRwOi8vdGVzdC8xNzcwEYYPaHR0cDov --L3Rlc3QvMTc4MBGGD2h0dHA6Ly90ZXN0LzE3OTARhg9odHRwOi8vdGVzdC8xODAw --EYYPaHR0cDovL3Rlc3QvMTgxMBGGD2h0dHA6Ly90ZXN0LzE4MjARhg9odHRwOi8v --dGVzdC8xODMwEYYPaHR0cDovL3Rlc3QvMTg0MBGGD2h0dHA6Ly90ZXN0LzE4NTAR --hg9odHRwOi8vdGVzdC8xODYwEYYPaHR0cDovL3Rlc3QvMTg3MBGGD2h0dHA6Ly90 --ZXN0LzE4ODARhg9odHRwOi8vdGVzdC8xODkwEYYPaHR0cDovL3Rlc3QvMTkwMBGG --D2h0dHA6Ly90ZXN0LzE5MTARhg9odHRwOi8vdGVzdC8xOTIwEYYPaHR0cDovL3Rl --c3QvMTkzMBGGD2h0dHA6Ly90ZXN0LzE5NDARhg9odHRwOi8vdGVzdC8xOTUwEYYP --aHR0cDovL3Rlc3QvMTk2MBGGD2h0dHA6Ly90ZXN0LzE5NzARhg9odHRwOi8vdGVz --dC8xOTgwEYYPaHR0cDovL3Rlc3QvMTk5MBGGD2h0dHA6Ly90ZXN0LzIwMDARhg9o --dHRwOi8vdGVzdC8yMDEwEYYPaHR0cDovL3Rlc3QvMjAyMBGGD2h0dHA6Ly90ZXN0 --LzIwMzARhg9odHRwOi8vdGVzdC8yMDQwEYYPaHR0cDovL3Rlc3QvMjA1MBGGD2h0 --dHA6Ly90ZXN0LzIwNjARhg9odHRwOi8vdGVzdC8yMDcwEYYPaHR0cDovL3Rlc3Qv --MjA4MBGGD2h0dHA6Ly90ZXN0LzIwOTARhg9odHRwOi8vdGVzdC8yMTAwEYYPaHR0 --cDovL3Rlc3QvMjExMBGGD2h0dHA6Ly90ZXN0LzIxMjARhg9odHRwOi8vdGVzdC8y --MTMwEYYPaHR0cDovL3Rlc3QvMjE0MBGGD2h0dHA6Ly90ZXN0LzIxNTARhg9odHRw --Oi8vdGVzdC8yMTYwEYYPaHR0cDovL3Rlc3QvMjE3MBGGD2h0dHA6Ly90ZXN0LzIx --ODARhg9odHRwOi8vdGVzdC8yMTkwEYYPaHR0cDovL3Rlc3QvMjIwMBGGD2h0dHA6 --Ly90ZXN0LzIyMTARhg9odHRwOi8vdGVzdC8yMjIwEYYPaHR0cDovL3Rlc3QvMjIz --MBGGD2h0dHA6Ly90ZXN0LzIyNDARhg9odHRwOi8vdGVzdC8yMjUwEYYPaHR0cDov --L3Rlc3QvMjI2MBGGD2h0dHA6Ly90ZXN0LzIyNzARhg9odHRwOi8vdGVzdC8yMjgw --EYYPaHR0cDovL3Rlc3QvMjI5MBGGD2h0dHA6Ly90ZXN0LzIzMDARhg9odHRwOi8v --dGVzdC8yMzEwEYYPaHR0cDovL3Rlc3QvMjMyMBGGD2h0dHA6Ly90ZXN0LzIzMzAR --hg9odHRwOi8vdGVzdC8yMzQwEYYPaHR0cDovL3Rlc3QvMjM1MBGGD2h0dHA6Ly90 --ZXN0LzIzNjARhg9odHRwOi8vdGVzdC8yMzcwEYYPaHR0cDovL3Rlc3QvMjM4MBGG --D2h0dHA6Ly90ZXN0LzIzOTARhg9odHRwOi8vdGVzdC8yNDAwEYYPaHR0cDovL3Rl --c3QvMjQxMBGGD2h0dHA6Ly90ZXN0LzI0MjARhg9odHRwOi8vdGVzdC8yNDMwEYYP --aHR0cDovL3Rlc3QvMjQ0MBGGD2h0dHA6Ly90ZXN0LzI0NTARhg9odHRwOi8vdGVz --dC8yNDYwEYYPaHR0cDovL3Rlc3QvMjQ3MBGGD2h0dHA6Ly90ZXN0LzI0ODARhg9o --dHRwOi8vdGVzdC8yNDkwEYYPaHR0cDovL3Rlc3QvMjUwMBGGD2h0dHA6Ly90ZXN0 --LzI1MTARhg9odHRwOi8vdGVzdC8yNTIwEYYPaHR0cDovL3Rlc3QvMjUzMBGGD2h0 --dHA6Ly90ZXN0LzI1NDARhg9odHRwOi8vdGVzdC8yNTUwEYYPaHR0cDovL3Rlc3Qv --MjU2MBGGD2h0dHA6Ly90ZXN0LzI1NzARhg9odHRwOi8vdGVzdC8yNTgwEYYPaHR0 --cDovL3Rlc3QvMjU5MBGGD2h0dHA6Ly90ZXN0LzI2MDARhg9odHRwOi8vdGVzdC8y --NjEwEYYPaHR0cDovL3Rlc3QvMjYyMBGGD2h0dHA6Ly90ZXN0LzI2MzARhg9odHRw --Oi8vdGVzdC8yNjQwEYYPaHR0cDovL3Rlc3QvMjY1MBGGD2h0dHA6Ly90ZXN0LzI2 --NjARhg9odHRwOi8vdGVzdC8yNjcwEYYPaHR0cDovL3Rlc3QvMjY4MBGGD2h0dHA6 --Ly90ZXN0LzI2OTARhg9odHRwOi8vdGVzdC8yNzAwEYYPaHR0cDovL3Rlc3QvMjcx --MBGGD2h0dHA6Ly90ZXN0LzI3MjARhg9odHRwOi8vdGVzdC8yNzMwEYYPaHR0cDov --L3Rlc3QvMjc0MBGGD2h0dHA6Ly90ZXN0LzI3NTARhg9odHRwOi8vdGVzdC8yNzYw --EYYPaHR0cDovL3Rlc3QvMjc3MBGGD2h0dHA6Ly90ZXN0LzI3ODARhg9odHRwOi8v --dGVzdC8yNzkwEYYPaHR0cDovL3Rlc3QvMjgwMBGGD2h0dHA6Ly90ZXN0LzI4MTAR --hg9odHRwOi8vdGVzdC8yODIwEYYPaHR0cDovL3Rlc3QvMjgzMBGGD2h0dHA6Ly90 --ZXN0LzI4NDARhg9odHRwOi8vdGVzdC8yODUwEYYPaHR0cDovL3Rlc3QvMjg2MBGG --D2h0dHA6Ly90ZXN0LzI4NzARhg9odHRwOi8vdGVzdC8yODgwEYYPaHR0cDovL3Rl --c3QvMjg5MBGGD2h0dHA6Ly90ZXN0LzI5MDARhg9odHRwOi8vdGVzdC8yOTEwEYYP --aHR0cDovL3Rlc3QvMjkyMBGGD2h0dHA6Ly90ZXN0LzI5MzARhg9odHRwOi8vdGVz --dC8yOTQwEYYPaHR0cDovL3Rlc3QvMjk1MBGGD2h0dHA6Ly90ZXN0LzI5NjARhg9o --dHRwOi8vdGVzdC8yOTcwEYYPaHR0cDovL3Rlc3QvMjk4MBGGD2h0dHA6Ly90ZXN0 --LzI5OTARhg9odHRwOi8vdGVzdC8zMDAwEYYPaHR0cDovL3Rlc3QvMzAxMBGGD2h0 --dHA6Ly90ZXN0LzMwMjARhg9odHRwOi8vdGVzdC8zMDMwEYYPaHR0cDovL3Rlc3Qv --MzA0MBGGD2h0dHA6Ly90ZXN0LzMwNTARhg9odHRwOi8vdGVzdC8zMDYwEYYPaHR0 --cDovL3Rlc3QvMzA3MBGGD2h0dHA6Ly90ZXN0LzMwODARhg9odHRwOi8vdGVzdC8z --MDkwEYYPaHR0cDovL3Rlc3QvMzEwMBGGD2h0dHA6Ly90ZXN0LzMxMTARhg9odHRw --Oi8vdGVzdC8zMTIwEYYPaHR0cDovL3Rlc3QvMzEzMBGGD2h0dHA6Ly90ZXN0LzMx --NDARhg9odHRwOi8vdGVzdC8zMTUwEYYPaHR0cDovL3Rlc3QvMzE2MBGGD2h0dHA6 --Ly90ZXN0LzMxNzARhg9odHRwOi8vdGVzdC8zMTgwEYYPaHR0cDovL3Rlc3QvMzE5 --MBGGD2h0dHA6Ly90ZXN0LzMyMDARhg9odHRwOi8vdGVzdC8zMjEwEYYPaHR0cDov --L3Rlc3QvMzIyMBGGD2h0dHA6Ly90ZXN0LzMyMzARhg9odHRwOi8vdGVzdC8zMjQw --EYYPaHR0cDovL3Rlc3QvMzI1MBGGD2h0dHA6Ly90ZXN0LzMyNjARhg9odHRwOi8v --dGVzdC8zMjcwEYYPaHR0cDovL3Rlc3QvMzI4MBGGD2h0dHA6Ly90ZXN0LzMyOTAR --hg9odHRwOi8vdGVzdC8zMzAwEYYPaHR0cDovL3Rlc3QvMzMxMBGGD2h0dHA6Ly90 --ZXN0LzMzMjARhg9odHRwOi8vdGVzdC8zMzMwEYYPaHR0cDovL3Rlc3QvMzM0MBGG --D2h0dHA6Ly90ZXN0LzMzNTARhg9odHRwOi8vdGVzdC8zMzYwEYYPaHR0cDovL3Rl --c3QvMzM3MBGGD2h0dHA6Ly90ZXN0LzMzODARhg9odHRwOi8vdGVzdC8zMzkwEYYP --aHR0cDovL3Rlc3QvMzQwMBGGD2h0dHA6Ly90ZXN0LzM0MTARhg9odHRwOi8vdGVz --dC8zNDIwEYYPaHR0cDovL3Rlc3QvMzQzMBGGD2h0dHA6Ly90ZXN0LzM0NDARhg9o --dHRwOi8vdGVzdC8zNDUwEYYPaHR0cDovL3Rlc3QvMzQ2MBGGD2h0dHA6Ly90ZXN0 --LzM0NzARhg9odHRwOi8vdGVzdC8zNDgwEYYPaHR0cDovL3Rlc3QvMzQ5MBGGD2h0 --dHA6Ly90ZXN0LzM1MDARhg9odHRwOi8vdGVzdC8zNTEwEYYPaHR0cDovL3Rlc3Qv --MzUyMBGGD2h0dHA6Ly90ZXN0LzM1MzARhg9odHRwOi8vdGVzdC8zNTQwEYYPaHR0 --cDovL3Rlc3QvMzU1MBGGD2h0dHA6Ly90ZXN0LzM1NjARhg9odHRwOi8vdGVzdC8z --NTcwEYYPaHR0cDovL3Rlc3QvMzU4MBGGD2h0dHA6Ly90ZXN0LzM1OTARhg9odHRw --Oi8vdGVzdC8zNjAwEYYPaHR0cDovL3Rlc3QvMzYxMBGGD2h0dHA6Ly90ZXN0LzM2 --MjARhg9odHRwOi8vdGVzdC8zNjMwEYYPaHR0cDovL3Rlc3QvMzY0MBGGD2h0dHA6 --Ly90ZXN0LzM2NTARhg9odHRwOi8vdGVzdC8zNjYwEYYPaHR0cDovL3Rlc3QvMzY3 --MBGGD2h0dHA6Ly90ZXN0LzM2ODARhg9odHRwOi8vdGVzdC8zNjkwEYYPaHR0cDov --L3Rlc3QvMzcwMBGGD2h0dHA6Ly90ZXN0LzM3MTARhg9odHRwOi8vdGVzdC8zNzIw --EYYPaHR0cDovL3Rlc3QvMzczMBGGD2h0dHA6Ly90ZXN0LzM3NDARhg9odHRwOi8v --dGVzdC8zNzUwEYYPaHR0cDovL3Rlc3QvMzc2MBGGD2h0dHA6Ly90ZXN0LzM3NzAR --hg9odHRwOi8vdGVzdC8zNzgwEYYPaHR0cDovL3Rlc3QvMzc5MBGGD2h0dHA6Ly90 --ZXN0LzM4MDARhg9odHRwOi8vdGVzdC8zODEwEYYPaHR0cDovL3Rlc3QvMzgyMBGG --D2h0dHA6Ly90ZXN0LzM4MzARhg9odHRwOi8vdGVzdC8zODQwEYYPaHR0cDovL3Rl --c3QvMzg1MBGGD2h0dHA6Ly90ZXN0LzM4NjARhg9odHRwOi8vdGVzdC8zODcwEYYP --aHR0cDovL3Rlc3QvMzg4MBGGD2h0dHA6Ly90ZXN0LzM4OTARhg9odHRwOi8vdGVz --dC8zOTAwEYYPaHR0cDovL3Rlc3QvMzkxMBGGD2h0dHA6Ly90ZXN0LzM5MjARhg9o --dHRwOi8vdGVzdC8zOTMwEYYPaHR0cDovL3Rlc3QvMzk0MBGGD2h0dHA6Ly90ZXN0 --LzM5NTARhg9odHRwOi8vdGVzdC8zOTYwEYYPaHR0cDovL3Rlc3QvMzk3MBGGD2h0 --dHA6Ly90ZXN0LzM5ODARhg9odHRwOi8vdGVzdC8zOTkwEYYPaHR0cDovL3Rlc3Qv --NDAwMBGGD2h0dHA6Ly90ZXN0LzQwMTARhg9odHRwOi8vdGVzdC80MDIwEYYPaHR0 --cDovL3Rlc3QvNDAzMBGGD2h0dHA6Ly90ZXN0LzQwNDARhg9odHRwOi8vdGVzdC80 --MDUwEYYPaHR0cDovL3Rlc3QvNDA2MBGGD2h0dHA6Ly90ZXN0LzQwNzARhg9odHRw --Oi8vdGVzdC80MDgwEYYPaHR0cDovL3Rlc3QvNDA5MBGGD2h0dHA6Ly90ZXN0LzQx --MDARhg9odHRwOi8vdGVzdC80MTEwEYYPaHR0cDovL3Rlc3QvNDEyMBGGD2h0dHA6 --Ly90ZXN0LzQxMzARhg9odHRwOi8vdGVzdC80MTQwEYYPaHR0cDovL3Rlc3QvNDE1 --MBGGD2h0dHA6Ly90ZXN0LzQxNjARhg9odHRwOi8vdGVzdC80MTcwEYYPaHR0cDov --L3Rlc3QvNDE4MBGGD2h0dHA6Ly90ZXN0LzQxOTARhg9odHRwOi8vdGVzdC80MjAw --EYYPaHR0cDovL3Rlc3QvNDIxMBGGD2h0dHA6Ly90ZXN0LzQyMjARhg9odHRwOi8v --dGVzdC80MjMwEYYPaHR0cDovL3Rlc3QvNDI0MBGGD2h0dHA6Ly90ZXN0LzQyNTAR --hg9odHRwOi8vdGVzdC80MjYwEYYPaHR0cDovL3Rlc3QvNDI3MBGGD2h0dHA6Ly90 --ZXN0LzQyODARhg9odHRwOi8vdGVzdC80MjkwEYYPaHR0cDovL3Rlc3QvNDMwMBGG --D2h0dHA6Ly90ZXN0LzQzMTARhg9odHRwOi8vdGVzdC80MzIwEYYPaHR0cDovL3Rl --c3QvNDMzMBGGD2h0dHA6Ly90ZXN0LzQzNDARhg9odHRwOi8vdGVzdC80MzUwEYYP --aHR0cDovL3Rlc3QvNDM2MBGGD2h0dHA6Ly90ZXN0LzQzNzARhg9odHRwOi8vdGVz --dC80MzgwEYYPaHR0cDovL3Rlc3QvNDM5MBGGD2h0dHA6Ly90ZXN0LzQ0MDARhg9o --dHRwOi8vdGVzdC80NDEwEYYPaHR0cDovL3Rlc3QvNDQyMBGGD2h0dHA6Ly90ZXN0 --LzQ0MzARhg9odHRwOi8vdGVzdC80NDQwEYYPaHR0cDovL3Rlc3QvNDQ1MBGGD2h0 --dHA6Ly90ZXN0LzQ0NjARhg9odHRwOi8vdGVzdC80NDcwEYYPaHR0cDovL3Rlc3Qv --NDQ4MBGGD2h0dHA6Ly90ZXN0LzQ0OTARhg9odHRwOi8vdGVzdC80NTAwEYYPaHR0 --cDovL3Rlc3QvNDUxMBGGD2h0dHA6Ly90ZXN0LzQ1MjARhg9odHRwOi8vdGVzdC80 --NTMwEYYPaHR0cDovL3Rlc3QvNDU0MBGGD2h0dHA6Ly90ZXN0LzQ1NTARhg9odHRw --Oi8vdGVzdC80NTYwEYYPaHR0cDovL3Rlc3QvNDU3MBGGD2h0dHA6Ly90ZXN0LzQ1 --ODARhg9odHRwOi8vdGVzdC80NTkwEYYPaHR0cDovL3Rlc3QvNDYwMBGGD2h0dHA6 --Ly90ZXN0LzQ2MTARhg9odHRwOi8vdGVzdC80NjIwEYYPaHR0cDovL3Rlc3QvNDYz --MBGGD2h0dHA6Ly90ZXN0LzQ2NDARhg9odHRwOi8vdGVzdC80NjUwEYYPaHR0cDov --L3Rlc3QvNDY2MBGGD2h0dHA6Ly90ZXN0LzQ2NzARhg9odHRwOi8vdGVzdC80Njgw --EYYPaHR0cDovL3Rlc3QvNDY5MBGGD2h0dHA6Ly90ZXN0LzQ3MDARhg9odHRwOi8v --dGVzdC80NzEwEYYPaHR0cDovL3Rlc3QvNDcyMBGGD2h0dHA6Ly90ZXN0LzQ3MzAR --hg9odHRwOi8vdGVzdC80NzQwEYYPaHR0cDovL3Rlc3QvNDc1MBGGD2h0dHA6Ly90 --ZXN0LzQ3NjARhg9odHRwOi8vdGVzdC80NzcwEYYPaHR0cDovL3Rlc3QvNDc4MBGG --D2h0dHA6Ly90ZXN0LzQ3OTARhg9odHRwOi8vdGVzdC80ODAwEYYPaHR0cDovL3Rl --c3QvNDgxMBGGD2h0dHA6Ly90ZXN0LzQ4MjARhg9odHRwOi8vdGVzdC80ODMwEYYP --aHR0cDovL3Rlc3QvNDg0MBGGD2h0dHA6Ly90ZXN0LzQ4NTARhg9odHRwOi8vdGVz --dC80ODYwEYYPaHR0cDovL3Rlc3QvNDg3MBGGD2h0dHA6Ly90ZXN0LzQ4ODARhg9o --dHRwOi8vdGVzdC80ODkwEYYPaHR0cDovL3Rlc3QvNDkwMBGGD2h0dHA6Ly90ZXN0 --LzQ5MTARhg9odHRwOi8vdGVzdC80OTIwEYYPaHR0cDovL3Rlc3QvNDkzMBGGD2h0 --dHA6Ly90ZXN0LzQ5NDARhg9odHRwOi8vdGVzdC80OTUwEYYPaHR0cDovL3Rlc3Qv --NDk2MBGGD2h0dHA6Ly90ZXN0LzQ5NzARhg9odHRwOi8vdGVzdC80OTgwEYYPaHR0 --cDovL3Rlc3QvNDk5MBGGD2h0dHA6Ly90ZXN0LzUwMDARhg9odHRwOi8vdGVzdC81 --MDEwEYYPaHR0cDovL3Rlc3QvNTAyMBGGD2h0dHA6Ly90ZXN0LzUwMzARhg9odHRw --Oi8vdGVzdC81MDQwEYYPaHR0cDovL3Rlc3QvNTA1MBGGD2h0dHA6Ly90ZXN0LzUw --NjARhg9odHRwOi8vdGVzdC81MDcwEYYPaHR0cDovL3Rlc3QvNTA4MBGGD2h0dHA6 --Ly90ZXN0LzUwOTARhg9odHRwOi8vdGVzdC81MTAwEYYPaHR0cDovL3Rlc3QvNTEx --MBGGD2h0dHA6Ly90ZXN0LzUxMjARhg9odHRwOi8vdGVzdC81MTMwEYYPaHR0cDov --L3Rlc3QvNTE0MBGGD2h0dHA6Ly90ZXN0LzUxNTARhg9odHRwOi8vdGVzdC81MTYw --EYYPaHR0cDovL3Rlc3QvNTE3MBGGD2h0dHA6Ly90ZXN0LzUxODARhg9odHRwOi8v --dGVzdC81MTkwEYYPaHR0cDovL3Rlc3QvNTIwMBGGD2h0dHA6Ly90ZXN0LzUyMTAR --hg9odHRwOi8vdGVzdC81MjIwEYYPaHR0cDovL3Rlc3QvNTIzMBGGD2h0dHA6Ly90 --ZXN0LzUyNDARhg9odHRwOi8vdGVzdC81MjUwEYYPaHR0cDovL3Rlc3QvNTI2MBGG --D2h0dHA6Ly90ZXN0LzUyNzARhg9odHRwOi8vdGVzdC81MjgwEYYPaHR0cDovL3Rl --c3QvNTI5MBGGD2h0dHA6Ly90ZXN0LzUzMDARhg9odHRwOi8vdGVzdC81MzEwEYYP --aHR0cDovL3Rlc3QvNTMyMBGGD2h0dHA6Ly90ZXN0LzUzMzARhg9odHRwOi8vdGVz --dC81MzQwEYYPaHR0cDovL3Rlc3QvNTM1MBGGD2h0dHA6Ly90ZXN0LzUzNjARhg9o --dHRwOi8vdGVzdC81MzcwEYYPaHR0cDovL3Rlc3QvNTM4MBGGD2h0dHA6Ly90ZXN0 --LzUzOTARhg9odHRwOi8vdGVzdC81NDAwEYYPaHR0cDovL3Rlc3QvNTQxMBGGD2h0 --dHA6Ly90ZXN0LzU0MjARhg9odHRwOi8vdGVzdC81NDMwEYYPaHR0cDovL3Rlc3Qv --NTQ0MBGGD2h0dHA6Ly90ZXN0LzU0NTARhg9odHRwOi8vdGVzdC81NDYwEYYPaHR0 --cDovL3Rlc3QvNTQ3MBGGD2h0dHA6Ly90ZXN0LzU0ODARhg9odHRwOi8vdGVzdC81 --NDkwEYYPaHR0cDovL3Rlc3QvNTUwMBGGD2h0dHA6Ly90ZXN0LzU1MTARhg9odHRw --Oi8vdGVzdC81NTIwEYYPaHR0cDovL3Rlc3QvNTUzMBGGD2h0dHA6Ly90ZXN0LzU1 --NDARhg9odHRwOi8vdGVzdC81NTUwEYYPaHR0cDovL3Rlc3QvNTU2MBGGD2h0dHA6 --Ly90ZXN0LzU1NzARhg9odHRwOi8vdGVzdC81NTgwEYYPaHR0cDovL3Rlc3QvNTU5 --MBGGD2h0dHA6Ly90ZXN0LzU2MDARhg9odHRwOi8vdGVzdC81NjEwEYYPaHR0cDov --L3Rlc3QvNTYyMBGGD2h0dHA6Ly90ZXN0LzU2MzARhg9odHRwOi8vdGVzdC81NjQw --EYYPaHR0cDovL3Rlc3QvNTY1MBGGD2h0dHA6Ly90ZXN0LzU2NjARhg9odHRwOi8v --dGVzdC81NjcwEYYPaHR0cDovL3Rlc3QvNTY4MBGGD2h0dHA6Ly90ZXN0LzU2OTAR --hg9odHRwOi8vdGVzdC81NzAwEYYPaHR0cDovL3Rlc3QvNTcxMBGGD2h0dHA6Ly90 --ZXN0LzU3MjARhg9odHRwOi8vdGVzdC81NzMwEYYPaHR0cDovL3Rlc3QvNTc0MBGG --D2h0dHA6Ly90ZXN0LzU3NTARhg9odHRwOi8vdGVzdC81NzYwEYYPaHR0cDovL3Rl --c3QvNTc3MBGGD2h0dHA6Ly90ZXN0LzU3ODARhg9odHRwOi8vdGVzdC81NzkwEYYP --aHR0cDovL3Rlc3QvNTgwMBGGD2h0dHA6Ly90ZXN0LzU4MTARhg9odHRwOi8vdGVz --dC81ODIwEYYPaHR0cDovL3Rlc3QvNTgzMBGGD2h0dHA6Ly90ZXN0LzU4NDARhg9o --dHRwOi8vdGVzdC81ODUwEYYPaHR0cDovL3Rlc3QvNTg2MBGGD2h0dHA6Ly90ZXN0 --LzU4NzARhg9odHRwOi8vdGVzdC81ODgwEYYPaHR0cDovL3Rlc3QvNTg5MBGGD2h0 --dHA6Ly90ZXN0LzU5MDARhg9odHRwOi8vdGVzdC81OTEwEYYPaHR0cDovL3Rlc3Qv --NTkyMBGGD2h0dHA6Ly90ZXN0LzU5MzARhg9odHRwOi8vdGVzdC81OTQwEYYPaHR0 --cDovL3Rlc3QvNTk1MBGGD2h0dHA6Ly90ZXN0LzU5NjARhg9odHRwOi8vdGVzdC81 --OTcwEYYPaHR0cDovL3Rlc3QvNTk4MBGGD2h0dHA6Ly90ZXN0LzU5OTARhg9odHRw --Oi8vdGVzdC82MDAwEYYPaHR0cDovL3Rlc3QvNjAxMBGGD2h0dHA6Ly90ZXN0LzYw --MjARhg9odHRwOi8vdGVzdC82MDMwEYYPaHR0cDovL3Rlc3QvNjA0MBGGD2h0dHA6 --Ly90ZXN0LzYwNTARhg9odHRwOi8vdGVzdC82MDYwEYYPaHR0cDovL3Rlc3QvNjA3 --MBGGD2h0dHA6Ly90ZXN0LzYwODARhg9odHRwOi8vdGVzdC82MDkwEYYPaHR0cDov --L3Rlc3QvNjEwMBGGD2h0dHA6Ly90ZXN0LzYxMTARhg9odHRwOi8vdGVzdC82MTIw --EYYPaHR0cDovL3Rlc3QvNjEzMBGGD2h0dHA6Ly90ZXN0LzYxNDARhg9odHRwOi8v --dGVzdC82MTUwEYYPaHR0cDovL3Rlc3QvNjE2MBGGD2h0dHA6Ly90ZXN0LzYxNzAR --hg9odHRwOi8vdGVzdC82MTgwEYYPaHR0cDovL3Rlc3QvNjE5MBGGD2h0dHA6Ly90 --ZXN0LzYyMDARhg9odHRwOi8vdGVzdC82MjEwEYYPaHR0cDovL3Rlc3QvNjIyMBGG --D2h0dHA6Ly90ZXN0LzYyMzARhg9odHRwOi8vdGVzdC82MjQwEYYPaHR0cDovL3Rl --c3QvNjI1MBGGD2h0dHA6Ly90ZXN0LzYyNjARhg9odHRwOi8vdGVzdC82MjcwEYYP --aHR0cDovL3Rlc3QvNjI4MBGGD2h0dHA6Ly90ZXN0LzYyOTARhg9odHRwOi8vdGVz --dC82MzAwEYYPaHR0cDovL3Rlc3QvNjMxMBGGD2h0dHA6Ly90ZXN0LzYzMjARhg9o --dHRwOi8vdGVzdC82MzMwEYYPaHR0cDovL3Rlc3QvNjM0MBGGD2h0dHA6Ly90ZXN0 --LzYzNTARhg9odHRwOi8vdGVzdC82MzYwEYYPaHR0cDovL3Rlc3QvNjM3MBGGD2h0 --dHA6Ly90ZXN0LzYzODARhg9odHRwOi8vdGVzdC82MzkwEYYPaHR0cDovL3Rlc3Qv --NjQwMBGGD2h0dHA6Ly90ZXN0LzY0MTARhg9odHRwOi8vdGVzdC82NDIwEYYPaHR0 --cDovL3Rlc3QvNjQzMBGGD2h0dHA6Ly90ZXN0LzY0NDARhg9odHRwOi8vdGVzdC82 --NDUwEYYPaHR0cDovL3Rlc3QvNjQ2MBGGD2h0dHA6Ly90ZXN0LzY0NzARhg9odHRw --Oi8vdGVzdC82NDgwEYYPaHR0cDovL3Rlc3QvNjQ5MBGGD2h0dHA6Ly90ZXN0LzY1 --MDARhg9odHRwOi8vdGVzdC82NTEwEYYPaHR0cDovL3Rlc3QvNjUyMBGGD2h0dHA6 --Ly90ZXN0LzY1MzARhg9odHRwOi8vdGVzdC82NTQwEYYPaHR0cDovL3Rlc3QvNjU1 --MBGGD2h0dHA6Ly90ZXN0LzY1NjARhg9odHRwOi8vdGVzdC82NTcwEYYPaHR0cDov --L3Rlc3QvNjU4MBGGD2h0dHA6Ly90ZXN0LzY1OTARhg9odHRwOi8vdGVzdC82NjAw --EYYPaHR0cDovL3Rlc3QvNjYxMBGGD2h0dHA6Ly90ZXN0LzY2MjARhg9odHRwOi8v --dGVzdC82NjMwEYYPaHR0cDovL3Rlc3QvNjY0MBGGD2h0dHA6Ly90ZXN0LzY2NTAR --hg9odHRwOi8vdGVzdC82NjYwEYYPaHR0cDovL3Rlc3QvNjY3MBGGD2h0dHA6Ly90 --ZXN0LzY2ODARhg9odHRwOi8vdGVzdC82NjkwEYYPaHR0cDovL3Rlc3QvNjcwMBGG --D2h0dHA6Ly90ZXN0LzY3MTARhg9odHRwOi8vdGVzdC82NzIwEYYPaHR0cDovL3Rl --c3QvNjczMBGGD2h0dHA6Ly90ZXN0LzY3NDARhg9odHRwOi8vdGVzdC82NzUwEYYP --aHR0cDovL3Rlc3QvNjc2MBGGD2h0dHA6Ly90ZXN0LzY3NzARhg9odHRwOi8vdGVz --dC82NzgwEYYPaHR0cDovL3Rlc3QvNjc5MBGGD2h0dHA6Ly90ZXN0LzY4MDARhg9o --dHRwOi8vdGVzdC82ODEwEYYPaHR0cDovL3Rlc3QvNjgyMBGGD2h0dHA6Ly90ZXN0 --LzY4MzARhg9odHRwOi8vdGVzdC82ODQwEYYPaHR0cDovL3Rlc3QvNjg1MBGGD2h0 --dHA6Ly90ZXN0LzY4NjARhg9odHRwOi8vdGVzdC82ODcwEYYPaHR0cDovL3Rlc3Qv --Njg4MBGGD2h0dHA6Ly90ZXN0LzY4OTARhg9odHRwOi8vdGVzdC82OTAwEYYPaHR0 --cDovL3Rlc3QvNjkxMBGGD2h0dHA6Ly90ZXN0LzY5MjARhg9odHRwOi8vdGVzdC82 --OTMwEYYPaHR0cDovL3Rlc3QvNjk0MBGGD2h0dHA6Ly90ZXN0LzY5NTARhg9odHRw --Oi8vdGVzdC82OTYwEYYPaHR0cDovL3Rlc3QvNjk3MBGGD2h0dHA6Ly90ZXN0LzY5 --ODARhg9odHRwOi8vdGVzdC82OTkwEYYPaHR0cDovL3Rlc3QvNzAwMBGGD2h0dHA6 --Ly90ZXN0LzcwMTARhg9odHRwOi8vdGVzdC83MDIwEYYPaHR0cDovL3Rlc3QvNzAz --MBGGD2h0dHA6Ly90ZXN0LzcwNDARhg9odHRwOi8vdGVzdC83MDUwEYYPaHR0cDov --L3Rlc3QvNzA2MBGGD2h0dHA6Ly90ZXN0LzcwNzARhg9odHRwOi8vdGVzdC83MDgw --EYYPaHR0cDovL3Rlc3QvNzA5MBGGD2h0dHA6Ly90ZXN0LzcxMDARhg9odHRwOi8v --dGVzdC83MTEwEYYPaHR0cDovL3Rlc3QvNzEyMBGGD2h0dHA6Ly90ZXN0LzcxMzAR --hg9odHRwOi8vdGVzdC83MTQwEYYPaHR0cDovL3Rlc3QvNzE1MBGGD2h0dHA6Ly90 --ZXN0LzcxNjARhg9odHRwOi8vdGVzdC83MTcwEYYPaHR0cDovL3Rlc3QvNzE4MBGG --D2h0dHA6Ly90ZXN0LzcxOTARhg9odHRwOi8vdGVzdC83MjAwEYYPaHR0cDovL3Rl --c3QvNzIxMBGGD2h0dHA6Ly90ZXN0LzcyMjARhg9odHRwOi8vdGVzdC83MjMwEYYP --aHR0cDovL3Rlc3QvNzI0MBGGD2h0dHA6Ly90ZXN0LzcyNTARhg9odHRwOi8vdGVz --dC83MjYwEYYPaHR0cDovL3Rlc3QvNzI3MBGGD2h0dHA6Ly90ZXN0LzcyODARhg9o --dHRwOi8vdGVzdC83MjkwEYYPaHR0cDovL3Rlc3QvNzMwMBGGD2h0dHA6Ly90ZXN0 --LzczMTARhg9odHRwOi8vdGVzdC83MzIwEYYPaHR0cDovL3Rlc3QvNzMzMBGGD2h0 --dHA6Ly90ZXN0LzczNDARhg9odHRwOi8vdGVzdC83MzUwEYYPaHR0cDovL3Rlc3Qv --NzM2MBGGD2h0dHA6Ly90ZXN0LzczNzARhg9odHRwOi8vdGVzdC83MzgwEYYPaHR0 --cDovL3Rlc3QvNzM5MBGGD2h0dHA6Ly90ZXN0Lzc0MDARhg9odHRwOi8vdGVzdC83 --NDEwEYYPaHR0cDovL3Rlc3QvNzQyMBGGD2h0dHA6Ly90ZXN0Lzc0MzARhg9odHRw --Oi8vdGVzdC83NDQwEYYPaHR0cDovL3Rlc3QvNzQ1MBGGD2h0dHA6Ly90ZXN0Lzc0 --NjARhg9odHRwOi8vdGVzdC83NDcwEYYPaHR0cDovL3Rlc3QvNzQ4MBGGD2h0dHA6 --Ly90ZXN0Lzc0OTARhg9odHRwOi8vdGVzdC83NTAwEYYPaHR0cDovL3Rlc3QvNzUx --MBGGD2h0dHA6Ly90ZXN0Lzc1MjARhg9odHRwOi8vdGVzdC83NTMwEYYPaHR0cDov --L3Rlc3QvNzU0MBGGD2h0dHA6Ly90ZXN0Lzc1NTARhg9odHRwOi8vdGVzdC83NTYw --EYYPaHR0cDovL3Rlc3QvNzU3MBGGD2h0dHA6Ly90ZXN0Lzc1ODARhg9odHRwOi8v --dGVzdC83NTkwEYYPaHR0cDovL3Rlc3QvNzYwMBGGD2h0dHA6Ly90ZXN0Lzc2MTAR --hg9odHRwOi8vdGVzdC83NjIwEYYPaHR0cDovL3Rlc3QvNzYzMBGGD2h0dHA6Ly90 --ZXN0Lzc2NDARhg9odHRwOi8vdGVzdC83NjUwEYYPaHR0cDovL3Rlc3QvNzY2MBGG --D2h0dHA6Ly90ZXN0Lzc2NzARhg9odHRwOi8vdGVzdC83NjgwEYYPaHR0cDovL3Rl --c3QvNzY5MBGGD2h0dHA6Ly90ZXN0Lzc3MDARhg9odHRwOi8vdGVzdC83NzEwEYYP --aHR0cDovL3Rlc3QvNzcyMBGGD2h0dHA6Ly90ZXN0Lzc3MzARhg9odHRwOi8vdGVz --dC83NzQwEYYPaHR0cDovL3Rlc3QvNzc1MBGGD2h0dHA6Ly90ZXN0Lzc3NjARhg9o --dHRwOi8vdGVzdC83NzcwEYYPaHR0cDovL3Rlc3QvNzc4MBGGD2h0dHA6Ly90ZXN0 --Lzc3OTARhg9odHRwOi8vdGVzdC83ODAwEYYPaHR0cDovL3Rlc3QvNzgxMBGGD2h0 --dHA6Ly90ZXN0Lzc4MjARhg9odHRwOi8vdGVzdC83ODMwEYYPaHR0cDovL3Rlc3Qv --Nzg0MBGGD2h0dHA6Ly90ZXN0Lzc4NTARhg9odHRwOi8vdGVzdC83ODYwEYYPaHR0 --cDovL3Rlc3QvNzg3MBGGD2h0dHA6Ly90ZXN0Lzc4ODARhg9odHRwOi8vdGVzdC83 --ODkwEYYPaHR0cDovL3Rlc3QvNzkwMBGGD2h0dHA6Ly90ZXN0Lzc5MTARhg9odHRw --Oi8vdGVzdC83OTIwEYYPaHR0cDovL3Rlc3QvNzkzMBGGD2h0dHA6Ly90ZXN0Lzc5 --NDARhg9odHRwOi8vdGVzdC83OTUwEYYPaHR0cDovL3Rlc3QvNzk2MBGGD2h0dHA6 --Ly90ZXN0Lzc5NzARhg9odHRwOi8vdGVzdC83OTgwEYYPaHR0cDovL3Rlc3QvNzk5 --MBGGD2h0dHA6Ly90ZXN0LzgwMDARhg9odHRwOi8vdGVzdC84MDEwEYYPaHR0cDov --L3Rlc3QvODAyMBGGD2h0dHA6Ly90ZXN0LzgwMzARhg9odHRwOi8vdGVzdC84MDQw --EYYPaHR0cDovL3Rlc3QvODA1MBGGD2h0dHA6Ly90ZXN0LzgwNjARhg9odHRwOi8v --dGVzdC84MDcwEYYPaHR0cDovL3Rlc3QvODA4MBGGD2h0dHA6Ly90ZXN0LzgwOTAR --hg9odHRwOi8vdGVzdC84MTAwEYYPaHR0cDovL3Rlc3QvODExMBGGD2h0dHA6Ly90 --ZXN0LzgxMjARhg9odHRwOi8vdGVzdC84MTMwEYYPaHR0cDovL3Rlc3QvODE0MBGG --D2h0dHA6Ly90ZXN0LzgxNTARhg9odHRwOi8vdGVzdC84MTYwEYYPaHR0cDovL3Rl --c3QvODE3MBGGD2h0dHA6Ly90ZXN0LzgxODARhg9odHRwOi8vdGVzdC84MTkwEYYP --aHR0cDovL3Rlc3QvODIwMBGGD2h0dHA6Ly90ZXN0LzgyMTARhg9odHRwOi8vdGVz --dC84MjIwEYYPaHR0cDovL3Rlc3QvODIzMBGGD2h0dHA6Ly90ZXN0LzgyNDARhg9o --dHRwOi8vdGVzdC84MjUwEYYPaHR0cDovL3Rlc3QvODI2MBGGD2h0dHA6Ly90ZXN0 --LzgyNzARhg9odHRwOi8vdGVzdC84MjgwEYYPaHR0cDovL3Rlc3QvODI5MBGGD2h0 --dHA6Ly90ZXN0LzgzMDARhg9odHRwOi8vdGVzdC84MzEwEYYPaHR0cDovL3Rlc3Qv --ODMyMBGGD2h0dHA6Ly90ZXN0LzgzMzARhg9odHRwOi8vdGVzdC84MzQwEYYPaHR0 --cDovL3Rlc3QvODM1MBGGD2h0dHA6Ly90ZXN0LzgzNjARhg9odHRwOi8vdGVzdC84 --MzcwEYYPaHR0cDovL3Rlc3QvODM4MBGGD2h0dHA6Ly90ZXN0LzgzOTARhg9odHRw --Oi8vdGVzdC84NDAwEYYPaHR0cDovL3Rlc3QvODQxMBGGD2h0dHA6Ly90ZXN0Lzg0 --MjARhg9odHRwOi8vdGVzdC84NDMwEYYPaHR0cDovL3Rlc3QvODQ0MBGGD2h0dHA6 --Ly90ZXN0Lzg0NTARhg9odHRwOi8vdGVzdC84NDYwEYYPaHR0cDovL3Rlc3QvODQ3 --MBGGD2h0dHA6Ly90ZXN0Lzg0ODARhg9odHRwOi8vdGVzdC84NDkwEYYPaHR0cDov --L3Rlc3QvODUwMBGGD2h0dHA6Ly90ZXN0Lzg1MTARhg9odHRwOi8vdGVzdC84NTIw --EYYPaHR0cDovL3Rlc3QvODUzMBGGD2h0dHA6Ly90ZXN0Lzg1NDARhg9odHRwOi8v --dGVzdC84NTUwEYYPaHR0cDovL3Rlc3QvODU2MBGGD2h0dHA6Ly90ZXN0Lzg1NzAR --hg9odHRwOi8vdGVzdC84NTgwEYYPaHR0cDovL3Rlc3QvODU5MBGGD2h0dHA6Ly90 --ZXN0Lzg2MDARhg9odHRwOi8vdGVzdC84NjEwEYYPaHR0cDovL3Rlc3QvODYyMBGG --D2h0dHA6Ly90ZXN0Lzg2MzARhg9odHRwOi8vdGVzdC84NjQwEYYPaHR0cDovL3Rl --c3QvODY1MBGGD2h0dHA6Ly90ZXN0Lzg2NjARhg9odHRwOi8vdGVzdC84NjcwEYYP --aHR0cDovL3Rlc3QvODY4MBGGD2h0dHA6Ly90ZXN0Lzg2OTARhg9odHRwOi8vdGVz --dC84NzAwEYYPaHR0cDovL3Rlc3QvODcxMBGGD2h0dHA6Ly90ZXN0Lzg3MjARhg9o --dHRwOi8vdGVzdC84NzMwEYYPaHR0cDovL3Rlc3QvODc0MBGGD2h0dHA6Ly90ZXN0 --Lzg3NTARhg9odHRwOi8vdGVzdC84NzYwEYYPaHR0cDovL3Rlc3QvODc3MBGGD2h0 --dHA6Ly90ZXN0Lzg3ODARhg9odHRwOi8vdGVzdC84NzkwEYYPaHR0cDovL3Rlc3Qv --ODgwMBGGD2h0dHA6Ly90ZXN0Lzg4MTARhg9odHRwOi8vdGVzdC84ODIwEYYPaHR0 --cDovL3Rlc3QvODgzMBGGD2h0dHA6Ly90ZXN0Lzg4NDARhg9odHRwOi8vdGVzdC84 --ODUwEYYPaHR0cDovL3Rlc3QvODg2MBGGD2h0dHA6Ly90ZXN0Lzg4NzARhg9odHRw --Oi8vdGVzdC84ODgwEYYPaHR0cDovL3Rlc3QvODg5MBGGD2h0dHA6Ly90ZXN0Lzg5 --MDARhg9odHRwOi8vdGVzdC84OTEwEYYPaHR0cDovL3Rlc3QvODkyMBGGD2h0dHA6 --Ly90ZXN0Lzg5MzARhg9odHRwOi8vdGVzdC84OTQwEYYPaHR0cDovL3Rlc3QvODk1 --MBGGD2h0dHA6Ly90ZXN0Lzg5NjARhg9odHRwOi8vdGVzdC84OTcwEYYPaHR0cDov --L3Rlc3QvODk4MBGGD2h0dHA6Ly90ZXN0Lzg5OTARhg9odHRwOi8vdGVzdC85MDAw --EYYPaHR0cDovL3Rlc3QvOTAxMBGGD2h0dHA6Ly90ZXN0LzkwMjARhg9odHRwOi8v --dGVzdC85MDMwEYYPaHR0cDovL3Rlc3QvOTA0MBGGD2h0dHA6Ly90ZXN0LzkwNTAR --hg9odHRwOi8vdGVzdC85MDYwEYYPaHR0cDovL3Rlc3QvOTA3MBGGD2h0dHA6Ly90 --ZXN0LzkwODARhg9odHRwOi8vdGVzdC85MDkwEYYPaHR0cDovL3Rlc3QvOTEwMBGG --D2h0dHA6Ly90ZXN0LzkxMTARhg9odHRwOi8vdGVzdC85MTIwEYYPaHR0cDovL3Rl --c3QvOTEzMBGGD2h0dHA6Ly90ZXN0LzkxNDARhg9odHRwOi8vdGVzdC85MTUwEYYP --aHR0cDovL3Rlc3QvOTE2MBGGD2h0dHA6Ly90ZXN0LzkxNzARhg9odHRwOi8vdGVz --dC85MTgwEYYPaHR0cDovL3Rlc3QvOTE5MBGGD2h0dHA6Ly90ZXN0LzkyMDARhg9o --dHRwOi8vdGVzdC85MjEwEYYPaHR0cDovL3Rlc3QvOTIyMBGGD2h0dHA6Ly90ZXN0 --LzkyMzARhg9odHRwOi8vdGVzdC85MjQwEYYPaHR0cDovL3Rlc3QvOTI1MBGGD2h0 --dHA6Ly90ZXN0LzkyNjARhg9odHRwOi8vdGVzdC85MjcwEYYPaHR0cDovL3Rlc3Qv --OTI4MBGGD2h0dHA6Ly90ZXN0LzkyOTARhg9odHRwOi8vdGVzdC85MzAwEYYPaHR0 --cDovL3Rlc3QvOTMxMBGGD2h0dHA6Ly90ZXN0LzkzMjARhg9odHRwOi8vdGVzdC85 --MzMwEYYPaHR0cDovL3Rlc3QvOTM0MBGGD2h0dHA6Ly90ZXN0LzkzNTARhg9odHRw --Oi8vdGVzdC85MzYwEYYPaHR0cDovL3Rlc3QvOTM3MBGGD2h0dHA6Ly90ZXN0Lzkz --ODARhg9odHRwOi8vdGVzdC85MzkwEYYPaHR0cDovL3Rlc3QvOTQwMBGGD2h0dHA6 --Ly90ZXN0Lzk0MTARhg9odHRwOi8vdGVzdC85NDIwEYYPaHR0cDovL3Rlc3QvOTQz --MBGGD2h0dHA6Ly90ZXN0Lzk0NDARhg9odHRwOi8vdGVzdC85NDUwEYYPaHR0cDov --L3Rlc3QvOTQ2MBGGD2h0dHA6Ly90ZXN0Lzk0NzARhg9odHRwOi8vdGVzdC85NDgw --EYYPaHR0cDovL3Rlc3QvOTQ5MBGGD2h0dHA6Ly90ZXN0Lzk1MDARhg9odHRwOi8v --dGVzdC85NTEwEYYPaHR0cDovL3Rlc3QvOTUyMBGGD2h0dHA6Ly90ZXN0Lzk1MzAR --hg9odHRwOi8vdGVzdC85NTQwEYYPaHR0cDovL3Rlc3QvOTU1MBGGD2h0dHA6Ly90 --ZXN0Lzk1NjARhg9odHRwOi8vdGVzdC85NTcwEYYPaHR0cDovL3Rlc3QvOTU4MBGG --D2h0dHA6Ly90ZXN0Lzk1OTARhg9odHRwOi8vdGVzdC85NjAwEYYPaHR0cDovL3Rl --c3QvOTYxMBGGD2h0dHA6Ly90ZXN0Lzk2MjARhg9odHRwOi8vdGVzdC85NjMwEYYP --aHR0cDovL3Rlc3QvOTY0MBGGD2h0dHA6Ly90ZXN0Lzk2NTARhg9odHRwOi8vdGVz --dC85NjYwEYYPaHR0cDovL3Rlc3QvOTY3MBGGD2h0dHA6Ly90ZXN0Lzk2ODARhg9o --dHRwOi8vdGVzdC85NjkwEYYPaHR0cDovL3Rlc3QvOTcwMBGGD2h0dHA6Ly90ZXN0 --Lzk3MTARhg9odHRwOi8vdGVzdC85NzIwEYYPaHR0cDovL3Rlc3QvOTczMBGGD2h0 --dHA6Ly90ZXN0Lzk3NDARhg9odHRwOi8vdGVzdC85NzUwEYYPaHR0cDovL3Rlc3Qv --OTc2MBGGD2h0dHA6Ly90ZXN0Lzk3NzARhg9odHRwOi8vdGVzdC85NzgwEYYPaHR0 --cDovL3Rlc3QvOTc5MBGGD2h0dHA6Ly90ZXN0Lzk4MDARhg9odHRwOi8vdGVzdC85 --ODEwEYYPaHR0cDovL3Rlc3QvOTgyMBGGD2h0dHA6Ly90ZXN0Lzk4MzARhg9odHRw --Oi8vdGVzdC85ODQwEYYPaHR0cDovL3Rlc3QvOTg1MBGGD2h0dHA6Ly90ZXN0Lzk4 --NjARhg9odHRwOi8vdGVzdC85ODcwEYYPaHR0cDovL3Rlc3QvOTg4MBGGD2h0dHA6 --Ly90ZXN0Lzk4OTARhg9odHRwOi8vdGVzdC85OTAwEYYPaHR0cDovL3Rlc3QvOTkx --MBGGD2h0dHA6Ly90ZXN0Lzk5MjARhg9odHRwOi8vdGVzdC85OTMwEYYPaHR0cDov --L3Rlc3QvOTk0MBGGD2h0dHA6Ly90ZXN0Lzk5NTARhg9odHRwOi8vdGVzdC85OTYw --EYYPaHR0cDovL3Rlc3QvOTk3MBGGD2h0dHA6Ly90ZXN0Lzk5ODARhg9odHRwOi8v --dGVzdC85OTkwEoYQaHR0cDovL3Rlc3QvMTAwMDAShhBodHRwOi8vdGVzdC8xMDAx --MBKGEGh0dHA6Ly90ZXN0LzEwMDIwEoYQaHR0cDovL3Rlc3QvMTAwMzAShhBodHRw --Oi8vdGVzdC8xMDA0MBKGEGh0dHA6Ly90ZXN0LzEwMDUwEoYQaHR0cDovL3Rlc3Qv --MTAwNjAShhBodHRwOi8vdGVzdC8xMDA3MBKGEGh0dHA6Ly90ZXN0LzEwMDgwEoYQ --aHR0cDovL3Rlc3QvMTAwOTAShhBodHRwOi8vdGVzdC8xMDEwMBKGEGh0dHA6Ly90 --ZXN0LzEwMTEwEoYQaHR0cDovL3Rlc3QvMTAxMjAShhBodHRwOi8vdGVzdC8xMDEz --MBKGEGh0dHA6Ly90ZXN0LzEwMTQwEoYQaHR0cDovL3Rlc3QvMTAxNTAShhBodHRw --Oi8vdGVzdC8xMDE2MBKGEGh0dHA6Ly90ZXN0LzEwMTcwEoYQaHR0cDovL3Rlc3Qv --MTAxODAShhBodHRwOi8vdGVzdC8xMDE5MBKGEGh0dHA6Ly90ZXN0LzEwMjAwEoYQ --aHR0cDovL3Rlc3QvMTAyMTAShhBodHRwOi8vdGVzdC8xMDIyMBKGEGh0dHA6Ly90 --ZXN0LzEwMjMwEoYQaHR0cDovL3Rlc3QvMTAyNKGClf4wCYIHeDAudGVzdDAJggd4 --MS50ZXN0MAmCB3gyLnRlc3QwCYIHeDMudGVzdDAJggd4NC50ZXN0MAmCB3g1LnRl --c3QwCYIHeDYudGVzdDAJggd4Ny50ZXN0MAmCB3g4LnRlc3QwCYIHeDkudGVzdDAK --ggh4MTAudGVzdDAKggh4MTEudGVzdDAKggh4MTIudGVzdDAKggh4MTMudGVzdDAK --ggh4MTQudGVzdDAKggh4MTUudGVzdDAKggh4MTYudGVzdDAKggh4MTcudGVzdDAK --ggh4MTgudGVzdDAKggh4MTkudGVzdDAKggh4MjAudGVzdDAKggh4MjEudGVzdDAK --ggh4MjIudGVzdDAKggh4MjMudGVzdDAKggh4MjQudGVzdDAKggh4MjUudGVzdDAK --ggh4MjYudGVzdDAKggh4MjcudGVzdDAKggh4MjgudGVzdDAKggh4MjkudGVzdDAK --ggh4MzAudGVzdDAKggh4MzEudGVzdDAKggh4MzIudGVzdDAKggh4MzMudGVzdDAK --ggh4MzQudGVzdDAKggh4MzUudGVzdDAKggh4MzYudGVzdDAKggh4MzcudGVzdDAK --ggh4MzgudGVzdDAKggh4MzkudGVzdDAKggh4NDAudGVzdDAKggh4NDEudGVzdDAK --ggh4NDIudGVzdDAKggh4NDMudGVzdDAKggh4NDQudGVzdDAKggh4NDUudGVzdDAK --ggh4NDYudGVzdDAKggh4NDcudGVzdDAKggh4NDgudGVzdDAKggh4NDkudGVzdDAK --ggh4NTAudGVzdDAKggh4NTEudGVzdDAKggh4NTIudGVzdDAKggh4NTMudGVzdDAK --ggh4NTQudGVzdDAKggh4NTUudGVzdDAKggh4NTYudGVzdDAKggh4NTcudGVzdDAK --ggh4NTgudGVzdDAKggh4NTkudGVzdDAKggh4NjAudGVzdDAKggh4NjEudGVzdDAK --ggh4NjIudGVzdDAKggh4NjMudGVzdDAKggh4NjQudGVzdDAKggh4NjUudGVzdDAK --ggh4NjYudGVzdDAKggh4NjcudGVzdDAKggh4NjgudGVzdDAKggh4NjkudGVzdDAK --ggh4NzAudGVzdDAKggh4NzEudGVzdDAKggh4NzIudGVzdDAKggh4NzMudGVzdDAK --ggh4NzQudGVzdDAKggh4NzUudGVzdDAKggh4NzYudGVzdDAKggh4NzcudGVzdDAK --ggh4NzgudGVzdDAKggh4NzkudGVzdDAKggh4ODAudGVzdDAKggh4ODEudGVzdDAK --ggh4ODIudGVzdDAKggh4ODMudGVzdDAKggh4ODQudGVzdDAKggh4ODUudGVzdDAK --ggh4ODYudGVzdDAKggh4ODcudGVzdDAKggh4ODgudGVzdDAKggh4ODkudGVzdDAK --ggh4OTAudGVzdDAKggh4OTEudGVzdDAKggh4OTIudGVzdDAKggh4OTMudGVzdDAK --ggh4OTQudGVzdDAKggh4OTUudGVzdDAKggh4OTYudGVzdDAKggh4OTcudGVzdDAK --ggh4OTgudGVzdDAKggh4OTkudGVzdDALggl4MTAwLnRlc3QwC4IJeDEwMS50ZXN0 --MAuCCXgxMDIudGVzdDALggl4MTAzLnRlc3QwC4IJeDEwNC50ZXN0MAuCCXgxMDUu --dGVzdDALggl4MTA2LnRlc3QwC4IJeDEwNy50ZXN0MAuCCXgxMDgudGVzdDALggl4 --MTA5LnRlc3QwC4IJeDExMC50ZXN0MAuCCXgxMTEudGVzdDALggl4MTEyLnRlc3Qw --C4IJeDExMy50ZXN0MAuCCXgxMTQudGVzdDALggl4MTE1LnRlc3QwC4IJeDExNi50 --ZXN0MAuCCXgxMTcudGVzdDALggl4MTE4LnRlc3QwC4IJeDExOS50ZXN0MAuCCXgx --MjAudGVzdDALggl4MTIxLnRlc3QwC4IJeDEyMi50ZXN0MAuCCXgxMjMudGVzdDAL --ggl4MTI0LnRlc3QwC4IJeDEyNS50ZXN0MAuCCXgxMjYudGVzdDALggl4MTI3LnRl --c3QwC4IJeDEyOC50ZXN0MAuCCXgxMjkudGVzdDALggl4MTMwLnRlc3QwC4IJeDEz --MS50ZXN0MAuCCXgxMzIudGVzdDALggl4MTMzLnRlc3QwC4IJeDEzNC50ZXN0MAuC --CXgxMzUudGVzdDALggl4MTM2LnRlc3QwC4IJeDEzNy50ZXN0MAuCCXgxMzgudGVz --dDALggl4MTM5LnRlc3QwC4IJeDE0MC50ZXN0MAuCCXgxNDEudGVzdDALggl4MTQy --LnRlc3QwC4IJeDE0My50ZXN0MAuCCXgxNDQudGVzdDALggl4MTQ1LnRlc3QwC4IJ --eDE0Ni50ZXN0MAuCCXgxNDcudGVzdDALggl4MTQ4LnRlc3QwC4IJeDE0OS50ZXN0 --MAuCCXgxNTAudGVzdDALggl4MTUxLnRlc3QwC4IJeDE1Mi50ZXN0MAuCCXgxNTMu --dGVzdDALggl4MTU0LnRlc3QwC4IJeDE1NS50ZXN0MAuCCXgxNTYudGVzdDALggl4 --MTU3LnRlc3QwC4IJeDE1OC50ZXN0MAuCCXgxNTkudGVzdDALggl4MTYwLnRlc3Qw --C4IJeDE2MS50ZXN0MAuCCXgxNjIudGVzdDALggl4MTYzLnRlc3QwC4IJeDE2NC50 --ZXN0MAuCCXgxNjUudGVzdDALggl4MTY2LnRlc3QwC4IJeDE2Ny50ZXN0MAuCCXgx --NjgudGVzdDALggl4MTY5LnRlc3QwC4IJeDE3MC50ZXN0MAuCCXgxNzEudGVzdDAL --ggl4MTcyLnRlc3QwC4IJeDE3My50ZXN0MAuCCXgxNzQudGVzdDALggl4MTc1LnRl --c3QwC4IJeDE3Ni50ZXN0MAuCCXgxNzcudGVzdDALggl4MTc4LnRlc3QwC4IJeDE3 --OS50ZXN0MAuCCXgxODAudGVzdDALggl4MTgxLnRlc3QwC4IJeDE4Mi50ZXN0MAuC --CXgxODMudGVzdDALggl4MTg0LnRlc3QwC4IJeDE4NS50ZXN0MAuCCXgxODYudGVz --dDALggl4MTg3LnRlc3QwC4IJeDE4OC50ZXN0MAuCCXgxODkudGVzdDALggl4MTkw --LnRlc3QwC4IJeDE5MS50ZXN0MAuCCXgxOTIudGVzdDALggl4MTkzLnRlc3QwC4IJ --eDE5NC50ZXN0MAuCCXgxOTUudGVzdDALggl4MTk2LnRlc3QwC4IJeDE5Ny50ZXN0 --MAuCCXgxOTgudGVzdDALggl4MTk5LnRlc3QwC4IJeDIwMC50ZXN0MAuCCXgyMDEu --dGVzdDALggl4MjAyLnRlc3QwC4IJeDIwMy50ZXN0MAuCCXgyMDQudGVzdDALggl4 --MjA1LnRlc3QwC4IJeDIwNi50ZXN0MAuCCXgyMDcudGVzdDALggl4MjA4LnRlc3Qw --C4IJeDIwOS50ZXN0MAuCCXgyMTAudGVzdDALggl4MjExLnRlc3QwC4IJeDIxMi50 --ZXN0MAuCCXgyMTMudGVzdDALggl4MjE0LnRlc3QwC4IJeDIxNS50ZXN0MAuCCXgy --MTYudGVzdDALggl4MjE3LnRlc3QwC4IJeDIxOC50ZXN0MAuCCXgyMTkudGVzdDAL --ggl4MjIwLnRlc3QwC4IJeDIyMS50ZXN0MAuCCXgyMjIudGVzdDALggl4MjIzLnRl --c3QwC4IJeDIyNC50ZXN0MAuCCXgyMjUudGVzdDALggl4MjI2LnRlc3QwC4IJeDIy --Ny50ZXN0MAuCCXgyMjgudGVzdDALggl4MjI5LnRlc3QwC4IJeDIzMC50ZXN0MAuC --CXgyMzEudGVzdDALggl4MjMyLnRlc3QwC4IJeDIzMy50ZXN0MAuCCXgyMzQudGVz --dDALggl4MjM1LnRlc3QwC4IJeDIzNi50ZXN0MAuCCXgyMzcudGVzdDALggl4MjM4 --LnRlc3QwC4IJeDIzOS50ZXN0MAuCCXgyNDAudGVzdDALggl4MjQxLnRlc3QwC4IJ --eDI0Mi50ZXN0MAuCCXgyNDMudGVzdDALggl4MjQ0LnRlc3QwC4IJeDI0NS50ZXN0 --MAuCCXgyNDYudGVzdDALggl4MjQ3LnRlc3QwC4IJeDI0OC50ZXN0MAuCCXgyNDku --dGVzdDALggl4MjUwLnRlc3QwC4IJeDI1MS50ZXN0MAuCCXgyNTIudGVzdDALggl4 --MjUzLnRlc3QwC4IJeDI1NC50ZXN0MAuCCXgyNTUudGVzdDALggl4MjU2LnRlc3Qw --C4IJeDI1Ny50ZXN0MAuCCXgyNTgudGVzdDALggl4MjU5LnRlc3QwC4IJeDI2MC50 --ZXN0MAuCCXgyNjEudGVzdDALggl4MjYyLnRlc3QwC4IJeDI2My50ZXN0MAuCCXgy --NjQudGVzdDALggl4MjY1LnRlc3QwC4IJeDI2Ni50ZXN0MAuCCXgyNjcudGVzdDAL --ggl4MjY4LnRlc3QwC4IJeDI2OS50ZXN0MAuCCXgyNzAudGVzdDALggl4MjcxLnRl --c3QwC4IJeDI3Mi50ZXN0MAuCCXgyNzMudGVzdDALggl4Mjc0LnRlc3QwC4IJeDI3 --NS50ZXN0MAuCCXgyNzYudGVzdDALggl4Mjc3LnRlc3QwC4IJeDI3OC50ZXN0MAuC --CXgyNzkudGVzdDALggl4MjgwLnRlc3QwC4IJeDI4MS50ZXN0MAuCCXgyODIudGVz --dDALggl4MjgzLnRlc3QwC4IJeDI4NC50ZXN0MAuCCXgyODUudGVzdDALggl4Mjg2 --LnRlc3QwC4IJeDI4Ny50ZXN0MAuCCXgyODgudGVzdDALggl4Mjg5LnRlc3QwC4IJ --eDI5MC50ZXN0MAuCCXgyOTEudGVzdDALggl4MjkyLnRlc3QwC4IJeDI5My50ZXN0 --MAuCCXgyOTQudGVzdDALggl4Mjk1LnRlc3QwC4IJeDI5Ni50ZXN0MAuCCXgyOTcu --dGVzdDALggl4Mjk4LnRlc3QwC4IJeDI5OS50ZXN0MAuCCXgzMDAudGVzdDALggl4 --MzAxLnRlc3QwC4IJeDMwMi50ZXN0MAuCCXgzMDMudGVzdDALggl4MzA0LnRlc3Qw --C4IJeDMwNS50ZXN0MAuCCXgzMDYudGVzdDALggl4MzA3LnRlc3QwC4IJeDMwOC50 --ZXN0MAuCCXgzMDkudGVzdDALggl4MzEwLnRlc3QwC4IJeDMxMS50ZXN0MAuCCXgz --MTIudGVzdDALggl4MzEzLnRlc3QwC4IJeDMxNC50ZXN0MAuCCXgzMTUudGVzdDAL --ggl4MzE2LnRlc3QwC4IJeDMxNy50ZXN0MAuCCXgzMTgudGVzdDALggl4MzE5LnRl --c3QwC4IJeDMyMC50ZXN0MAuCCXgzMjEudGVzdDALggl4MzIyLnRlc3QwC4IJeDMy --My50ZXN0MAuCCXgzMjQudGVzdDALggl4MzI1LnRlc3QwC4IJeDMyNi50ZXN0MAuC --CXgzMjcudGVzdDALggl4MzI4LnRlc3QwC4IJeDMyOS50ZXN0MAuCCXgzMzAudGVz --dDALggl4MzMxLnRlc3QwC4IJeDMzMi50ZXN0MAuCCXgzMzMudGVzdDALggl4MzM0 --LnRlc3QwC4IJeDMzNS50ZXN0MAuCCXgzMzYudGVzdDALggl4MzM3LnRlc3QwC4IJ --eDMzOC50ZXN0MAuCCXgzMzkudGVzdDALggl4MzQwLnRlc3QwC4IJeDM0MS50ZXN0 --MAuCCXgzNDIudGVzdDALggl4MzQzLnRlc3QwC4IJeDM0NC50ZXN0MAuCCXgzNDUu --dGVzdDALggl4MzQ2LnRlc3QwC4IJeDM0Ny50ZXN0MAuCCXgzNDgudGVzdDALggl4 --MzQ5LnRlc3QwC4IJeDM1MC50ZXN0MAuCCXgzNTEudGVzdDALggl4MzUyLnRlc3Qw --C4IJeDM1My50ZXN0MAuCCXgzNTQudGVzdDALggl4MzU1LnRlc3QwC4IJeDM1Ni50 --ZXN0MAuCCXgzNTcudGVzdDALggl4MzU4LnRlc3QwC4IJeDM1OS50ZXN0MAuCCXgz --NjAudGVzdDALggl4MzYxLnRlc3QwC4IJeDM2Mi50ZXN0MAuCCXgzNjMudGVzdDAL --ggl4MzY0LnRlc3QwC4IJeDM2NS50ZXN0MAuCCXgzNjYudGVzdDALggl4MzY3LnRl --c3QwC4IJeDM2OC50ZXN0MAuCCXgzNjkudGVzdDALggl4MzcwLnRlc3QwC4IJeDM3 --MS50ZXN0MAuCCXgzNzIudGVzdDALggl4MzczLnRlc3QwC4IJeDM3NC50ZXN0MAuC --CXgzNzUudGVzdDALggl4Mzc2LnRlc3QwC4IJeDM3Ny50ZXN0MAuCCXgzNzgudGVz --dDALggl4Mzc5LnRlc3QwC4IJeDM4MC50ZXN0MAuCCXgzODEudGVzdDALggl4Mzgy --LnRlc3QwC4IJeDM4My50ZXN0MAuCCXgzODQudGVzdDALggl4Mzg1LnRlc3QwC4IJ --eDM4Ni50ZXN0MAuCCXgzODcudGVzdDALggl4Mzg4LnRlc3QwC4IJeDM4OS50ZXN0 --MAuCCXgzOTAudGVzdDALggl4MzkxLnRlc3QwC4IJeDM5Mi50ZXN0MAuCCXgzOTMu --dGVzdDALggl4Mzk0LnRlc3QwC4IJeDM5NS50ZXN0MAuCCXgzOTYudGVzdDALggl4 --Mzk3LnRlc3QwC4IJeDM5OC50ZXN0MAuCCXgzOTkudGVzdDALggl4NDAwLnRlc3Qw --C4IJeDQwMS50ZXN0MAuCCXg0MDIudGVzdDALggl4NDAzLnRlc3QwC4IJeDQwNC50 --ZXN0MAuCCXg0MDUudGVzdDALggl4NDA2LnRlc3QwC4IJeDQwNy50ZXN0MAuCCXg0 --MDgudGVzdDALggl4NDA5LnRlc3QwC4IJeDQxMC50ZXN0MAuCCXg0MTEudGVzdDAL --ggl4NDEyLnRlc3QwC4IJeDQxMy50ZXN0MAuCCXg0MTQudGVzdDALggl4NDE1LnRl --c3QwC4IJeDQxNi50ZXN0MAuCCXg0MTcudGVzdDAKhwgLAAAA/////zAKhwgLAAAB --/////zAKhwgLAAAC/////zAKhwgLAAAD/////zAKhwgLAAAE/////zAKhwgLAAAF --/////zAKhwgLAAAG/////zAKhwgLAAAH/////zAKhwgLAAAI/////zAKhwgLAAAJ --/////zAKhwgLAAAK/////zAKhwgLAAAL/////zAKhwgLAAAM/////zAKhwgLAAAN --/////zAKhwgLAAAO/////zAKhwgLAAAP/////zAKhwgLAAAQ/////zAKhwgLAAAR --/////zAKhwgLAAAS/////zAKhwgLAAAT/////zAKhwgLAAAU/////zAKhwgLAAAV --/////zAKhwgLAAAW/////zAKhwgLAAAX/////zAKhwgLAAAY/////zAKhwgLAAAZ --/////zAKhwgLAAAa/////zAKhwgLAAAb/////zAKhwgLAAAc/////zAKhwgLAAAd --/////zAKhwgLAAAe/////zAKhwgLAAAf/////zAKhwgLAAAg/////zAKhwgLAAAh --/////zAKhwgLAAAi/////zAKhwgLAAAj/////zAKhwgLAAAk/////zAKhwgLAAAl --/////zAKhwgLAAAm/////zAKhwgLAAAn/////zAKhwgLAAAo/////zAKhwgLAAAp --/////zAKhwgLAAAq/////zAKhwgLAAAr/////zAKhwgLAAAs/////zAKhwgLAAAt --/////zAKhwgLAAAu/////zAKhwgLAAAv/////zAKhwgLAAAw/////zAKhwgLAAAx --/////zAKhwgLAAAy/////zAKhwgLAAAz/////zAKhwgLAAA0/////zAKhwgLAAA1 --/////zAKhwgLAAA2/////zAKhwgLAAA3/////zAKhwgLAAA4/////zAKhwgLAAA5 --/////zAKhwgLAAA6/////zAKhwgLAAA7/////zAKhwgLAAA8/////zAKhwgLAAA9 --/////zAKhwgLAAA+/////zAKhwgLAAA//////zAKhwgLAABA/////zAKhwgLAABB --/////zAKhwgLAABC/////zAKhwgLAABD/////zAKhwgLAABE/////zAKhwgLAABF --/////zAKhwgLAABG/////zAKhwgLAABH/////zAKhwgLAABI/////zAKhwgLAABJ --/////zAKhwgLAABK/////zAKhwgLAABL/////zAKhwgLAABM/////zAKhwgLAABN --/////zAKhwgLAABO/////zAKhwgLAABP/////zAKhwgLAABQ/////zAKhwgLAABR --/////zAKhwgLAABS/////zAKhwgLAABT/////zAKhwgLAABU/////zAKhwgLAABV --/////zAKhwgLAABW/////zAKhwgLAABX/////zAKhwgLAABY/////zAKhwgLAABZ --/////zAKhwgLAABa/////zAKhwgLAABb/////zAKhwgLAABc/////zAKhwgLAABd --/////zAKhwgLAABe/////zAKhwgLAABf/////zAKhwgLAABg/////zAKhwgLAABh --/////zAKhwgLAABi/////zAKhwgLAABj/////zAKhwgLAABk/////zAKhwgLAABl --/////zAKhwgLAABm/////zAKhwgLAABn/////zAKhwgLAABo/////zAKhwgLAABp --/////zAKhwgLAABq/////zAKhwgLAABr/////zAKhwgLAABs/////zAKhwgLAABt --/////zAKhwgLAABu/////zAKhwgLAABv/////zAKhwgLAABw/////zAKhwgLAABx --/////zAKhwgLAABy/////zAKhwgLAABz/////zAKhwgLAAB0/////zAKhwgLAAB1 --/////zAKhwgLAAB2/////zAKhwgLAAB3/////zAKhwgLAAB4/////zAKhwgLAAB5 --/////zAKhwgLAAB6/////zAKhwgLAAB7/////zAKhwgLAAB8/////zAKhwgLAAB9 --/////zAKhwgLAAB+/////zAKhwgLAAB//////zAKhwgLAACA/////zAKhwgLAACB --/////zAKhwgLAACC/////zAKhwgLAACD/////zAKhwgLAACE/////zAKhwgLAACF --/////zAKhwgLAACG/////zAKhwgLAACH/////zAKhwgLAACI/////zAKhwgLAACJ --/////zAKhwgLAACK/////zAKhwgLAACL/////zAKhwgLAACM/////zAKhwgLAACN --/////zAKhwgLAACO/////zAKhwgLAACP/////zAKhwgLAACQ/////zAKhwgLAACR --/////zAKhwgLAACS/////zAKhwgLAACT/////zAKhwgLAACU/////zAKhwgLAACV --/////zAKhwgLAACW/////zAKhwgLAACX/////zAKhwgLAACY/////zAKhwgLAACZ --/////zAKhwgLAACa/////zAKhwgLAACb/////zAKhwgLAACc/////zAKhwgLAACd --/////zAKhwgLAACe/////zAKhwgLAACf/////zAKhwgLAACg/////zAKhwgLAACh --/////zAKhwgLAACi/////zAKhwgLAACj/////zAKhwgLAACk/////zAKhwgLAACl --/////zAKhwgLAACm/////zAKhwgLAACn/////zAKhwgLAACo/////zAKhwgLAACp --/////zAKhwgLAACq/////zAKhwgLAACr/////zAKhwgLAACs/////zAKhwgLAACt --/////zAKhwgLAACu/////zAKhwgLAACv/////zAKhwgLAACw/////zAKhwgLAACx --/////zAKhwgLAACy/////zAKhwgLAACz/////zAKhwgLAAC0/////zAKhwgLAAC1 --/////zAKhwgLAAC2/////zAKhwgLAAC3/////zAKhwgLAAC4/////zAKhwgLAAC5 --/////zAKhwgLAAC6/////zAKhwgLAAC7/////zAKhwgLAAC8/////zAKhwgLAAC9 --/////zAKhwgLAAC+/////zAKhwgLAAC//////zAKhwgLAADA/////zAKhwgLAADB --/////zAKhwgLAADC/////zAKhwgLAADD/////zAKhwgLAADE/////zAKhwgLAADF --/////zAKhwgLAADG/////zAKhwgLAADH/////zAKhwgLAADI/////zAKhwgLAADJ --/////zAKhwgLAADK/////zAKhwgLAADL/////zAKhwgLAADM/////zAKhwgLAADN --/////zAKhwgLAADO/////zAKhwgLAADP/////zAKhwgLAADQ/////zAKhwgLAADR --/////zAKhwgLAADS/////zAKhwgLAADT/////zAKhwgLAADU/////zAKhwgLAADV --/////zAKhwgLAADW/////zAKhwgLAADX/////zAKhwgLAADY/////zAKhwgLAADZ --/////zAKhwgLAADa/////zAKhwgLAADb/////zAKhwgLAADc/////zAKhwgLAADd --/////zAKhwgLAADe/////zAKhwgLAADf/////zAKhwgLAADg/////zAKhwgLAADh --/////zAKhwgLAADi/////zAKhwgLAADj/////zAKhwgLAADk/////zAKhwgLAADl --/////zAKhwgLAADm/////zAKhwgLAADn/////zAKhwgLAADo/////zAKhwgLAADp --/////zAKhwgLAADq/////zAKhwgLAADr/////zAKhwgLAADs/////zAKhwgLAADt --/////zAKhwgLAADu/////zAKhwgLAADv/////zAKhwgLAADw/////zAKhwgLAADx --/////zAKhwgLAADy/////zAKhwgLAADz/////zAKhwgLAAD0/////zAKhwgLAAD1 --/////zAKhwgLAAD2/////zAKhwgLAAD3/////zAKhwgLAAD4/////zAKhwgLAAD5 --/////zAKhwgLAAD6/////zAKhwgLAAD7/////zAKhwgLAAD8/////zAKhwgLAAD9 --/////zAKhwgLAAD+/////zAKhwgLAAD//////zAKhwgLAAEA/////zAKhwgLAAEB --/////zAKhwgLAAEC/////zAKhwgLAAED/////zAKhwgLAAEE/////zAKhwgLAAEF --/////zAKhwgLAAEG/////zAKhwgLAAEH/////zAKhwgLAAEI/////zAKhwgLAAEJ --/////zAKhwgLAAEK/////zAKhwgLAAEL/////zAKhwgLAAEM/////zAKhwgLAAEN --/////zAKhwgLAAEO/////zAKhwgLAAEP/////zAKhwgLAAEQ/////zAKhwgLAAER --/////zAKhwgLAAES/////zAKhwgLAAET/////zAKhwgLAAEU/////zAKhwgLAAEV --/////zAKhwgLAAEW/////zAKhwgLAAEX/////zAKhwgLAAEY/////zAKhwgLAAEZ --/////zAKhwgLAAEa/////zAKhwgLAAEb/////zAKhwgLAAEc/////zAKhwgLAAEd --/////zAKhwgLAAEe/////zAKhwgLAAEf/////zAKhwgLAAEg/////zAKhwgLAAEh --/////zAKhwgLAAEi/////zAKhwgLAAEj/////zAKhwgLAAEk/////zAKhwgLAAEl --/////zAKhwgLAAEm/////zAKhwgLAAEn/////zAKhwgLAAEo/////zAKhwgLAAEp --/////zAKhwgLAAEq/////zAKhwgLAAEr/////zAKhwgLAAEs/////zAKhwgLAAEt --/////zAKhwgLAAEu/////zAKhwgLAAEv/////zAKhwgLAAEw/////zAKhwgLAAEx --/////zAKhwgLAAEy/////zAKhwgLAAEz/////zAKhwgLAAE0/////zAKhwgLAAE1 --/////zAKhwgLAAE2/////zAKhwgLAAE3/////zAKhwgLAAE4/////zAKhwgLAAE5 --/////zAKhwgLAAE6/////zAKhwgLAAE7/////zAKhwgLAAE8/////zAKhwgLAAE9 --/////zAKhwgLAAE+/////zAKhwgLAAE//////zAKhwgLAAFA/////zAKhwgLAAFB --/////zAKhwgLAAFC/////zAKhwgLAAFD/////zAKhwgLAAFE/////zAKhwgLAAFF --/////zAKhwgLAAFG/////zAKhwgLAAFH/////zAKhwgLAAFI/////zAKhwgLAAFJ --/////zAKhwgLAAFK/////zAKhwgLAAFL/////zAKhwgLAAFM/////zAKhwgLAAFN --/////zAKhwgLAAFO/////zAKhwgLAAFP/////zAKhwgLAAFQ/////zAKhwgLAAFR --/////zAKhwgLAAFS/////zAKhwgLAAFT/////zAKhwgLAAFU/////zAKhwgLAAFV --/////zAKhwgLAAFW/////zAKhwgLAAFX/////zAKhwgLAAFY/////zAKhwgLAAFZ --/////zAKhwgLAAFa/////zAKhwgLAAFb/////zAKhwgLAAFc/////zAKhwgLAAFd --/////zAKhwgLAAFe/////zAKhwgLAAFf/////zAKhwgLAAFg/////zAKhwgLAAFh --/////zAKhwgLAAFi/////zAKhwgLAAFj/////zAKhwgLAAFk/////zAKhwgLAAFl --/////zAKhwgLAAFm/////zAKhwgLAAFn/////zAKhwgLAAFo/////zAKhwgLAAFp --/////zAKhwgLAAFq/////zAKhwgLAAFr/////zAKhwgLAAFs/////zAKhwgLAAFt --/////zAKhwgLAAFu/////zAKhwgLAAFv/////zAKhwgLAAFw/////zAKhwgLAAFx --/////zAKhwgLAAFy/////zAKhwgLAAFz/////zAKhwgLAAF0/////zAKhwgLAAF1 --/////zAKhwgLAAF2/////zAKhwgLAAF3/////zAKhwgLAAF4/////zAKhwgLAAF5 --/////zAKhwgLAAF6/////zAKhwgLAAF7/////zAKhwgLAAF8/////zAKhwgLAAF9 --/////zAKhwgLAAF+/////zAKhwgLAAF//////zAKhwgLAAGA/////zAKhwgLAAGB --/////zAKhwgLAAGC/////zAKhwgLAAGD/////zAKhwgLAAGE/////zAKhwgLAAGF --/////zAKhwgLAAGG/////zAKhwgLAAGH/////zAKhwgLAAGI/////zAKhwgLAAGJ --/////zAKhwgLAAGK/////zAKhwgLAAGL/////zAKhwgLAAGM/////zAKhwgLAAGN --/////zAKhwgLAAGO/////zAKhwgLAAGP/////zAKhwgLAAGQ/////zAKhwgLAAGR --/////zAKhwgLAAGS/////zAKhwgLAAGT/////zAKhwgLAAGU/////zAKhwgLAAGV --/////zAKhwgLAAGW/////zAKhwgLAAGX/////zAKhwgLAAGY/////zAKhwgLAAGZ --/////zAKhwgLAAGa/////zAKhwgLAAGb/////zAKhwgLAAGc/////zAKhwgLAAGd --/////zAKhwgLAAGe/////zAKhwgLAAGf/////zAKhwgLAAGg/////zAKhwgLAAGh --/////zARpA8wDTELMAkGA1UEAwwCeDAwEaQPMA0xCzAJBgNVBAMMAngxMBGkDzAN --MQswCQYDVQQDDAJ4MjARpA8wDTELMAkGA1UEAwwCeDMwEaQPMA0xCzAJBgNVBAMM --Ang0MBGkDzANMQswCQYDVQQDDAJ4NTARpA8wDTELMAkGA1UEAwwCeDYwEaQPMA0x --CzAJBgNVBAMMAng3MBGkDzANMQswCQYDVQQDDAJ4ODARpA8wDTELMAkGA1UEAwwC --eDkwEqQQMA4xDDAKBgNVBAMMA3gxMDASpBAwDjEMMAoGA1UEAwwDeDExMBKkEDAO --MQwwCgYDVQQDDAN4MTIwEqQQMA4xDDAKBgNVBAMMA3gxMzASpBAwDjEMMAoGA1UE --AwwDeDE0MBKkEDAOMQwwCgYDVQQDDAN4MTUwEqQQMA4xDDAKBgNVBAMMA3gxNjAS --pBAwDjEMMAoGA1UEAwwDeDE3MBKkEDAOMQwwCgYDVQQDDAN4MTgwEqQQMA4xDDAK --BgNVBAMMA3gxOTASpBAwDjEMMAoGA1UEAwwDeDIwMBKkEDAOMQwwCgYDVQQDDAN4 --MjEwEqQQMA4xDDAKBgNVBAMMA3gyMjASpBAwDjEMMAoGA1UEAwwDeDIzMBKkEDAO --MQwwCgYDVQQDDAN4MjQwEqQQMA4xDDAKBgNVBAMMA3gyNTASpBAwDjEMMAoGA1UE --AwwDeDI2MBKkEDAOMQwwCgYDVQQDDAN4MjcwEqQQMA4xDDAKBgNVBAMMA3gyODAS --pBAwDjEMMAoGA1UEAwwDeDI5MBKkEDAOMQwwCgYDVQQDDAN4MzAwEqQQMA4xDDAK --BgNVBAMMA3gzMTASpBAwDjEMMAoGA1UEAwwDeDMyMBKkEDAOMQwwCgYDVQQDDAN4 --MzMwEqQQMA4xDDAKBgNVBAMMA3gzNDASpBAwDjEMMAoGA1UEAwwDeDM1MBKkEDAO --MQwwCgYDVQQDDAN4MzYwEqQQMA4xDDAKBgNVBAMMA3gzNzASpBAwDjEMMAoGA1UE --AwwDeDM4MBKkEDAOMQwwCgYDVQQDDAN4MzkwEqQQMA4xDDAKBgNVBAMMA3g0MDAS --pBAwDjEMMAoGA1UEAwwDeDQxMBKkEDAOMQwwCgYDVQQDDAN4NDIwEqQQMA4xDDAK --BgNVBAMMA3g0MzASpBAwDjEMMAoGA1UEAwwDeDQ0MBKkEDAOMQwwCgYDVQQDDAN4 --NDUwEqQQMA4xDDAKBgNVBAMMA3g0NjASpBAwDjEMMAoGA1UEAwwDeDQ3MBKkEDAO --MQwwCgYDVQQDDAN4NDgwEqQQMA4xDDAKBgNVBAMMA3g0OTASpBAwDjEMMAoGA1UE --AwwDeDUwMBKkEDAOMQwwCgYDVQQDDAN4NTEwEqQQMA4xDDAKBgNVBAMMA3g1MjAS --pBAwDjEMMAoGA1UEAwwDeDUzMBKkEDAOMQwwCgYDVQQDDAN4NTQwEqQQMA4xDDAK --BgNVBAMMA3g1NTASpBAwDjEMMAoGA1UEAwwDeDU2MBKkEDAOMQwwCgYDVQQDDAN4 --NTcwEqQQMA4xDDAKBgNVBAMMA3g1ODASpBAwDjEMMAoGA1UEAwwDeDU5MBKkEDAO --MQwwCgYDVQQDDAN4NjAwEqQQMA4xDDAKBgNVBAMMA3g2MTASpBAwDjEMMAoGA1UE --AwwDeDYyMBKkEDAOMQwwCgYDVQQDDAN4NjMwEqQQMA4xDDAKBgNVBAMMA3g2NDAS --pBAwDjEMMAoGA1UEAwwDeDY1MBKkEDAOMQwwCgYDVQQDDAN4NjYwEqQQMA4xDDAK --BgNVBAMMA3g2NzASpBAwDjEMMAoGA1UEAwwDeDY4MBKkEDAOMQwwCgYDVQQDDAN4 --NjkwEqQQMA4xDDAKBgNVBAMMA3g3MDASpBAwDjEMMAoGA1UEAwwDeDcxMBKkEDAO --MQwwCgYDVQQDDAN4NzIwEqQQMA4xDDAKBgNVBAMMA3g3MzASpBAwDjEMMAoGA1UE --AwwDeDc0MBKkEDAOMQwwCgYDVQQDDAN4NzUwEqQQMA4xDDAKBgNVBAMMA3g3NjAS --pBAwDjEMMAoGA1UEAwwDeDc3MBKkEDAOMQwwCgYDVQQDDAN4NzgwEqQQMA4xDDAK --BgNVBAMMA3g3OTASpBAwDjEMMAoGA1UEAwwDeDgwMBKkEDAOMQwwCgYDVQQDDAN4 --ODEwEqQQMA4xDDAKBgNVBAMMA3g4MjASpBAwDjEMMAoGA1UEAwwDeDgzMBKkEDAO --MQwwCgYDVQQDDAN4ODQwEqQQMA4xDDAKBgNVBAMMA3g4NTASpBAwDjEMMAoGA1UE --AwwDeDg2MBKkEDAOMQwwCgYDVQQDDAN4ODcwEqQQMA4xDDAKBgNVBAMMA3g4ODAS --pBAwDjEMMAoGA1UEAwwDeDg5MBKkEDAOMQwwCgYDVQQDDAN4OTAwEqQQMA4xDDAK --BgNVBAMMA3g5MTASpBAwDjEMMAoGA1UEAwwDeDkyMBKkEDAOMQwwCgYDVQQDDAN4 --OTMwEqQQMA4xDDAKBgNVBAMMA3g5NDASpBAwDjEMMAoGA1UEAwwDeDk1MBKkEDAO --MQwwCgYDVQQDDAN4OTYwEqQQMA4xDDAKBgNVBAMMA3g5NzASpBAwDjEMMAoGA1UE --AwwDeDk4MBKkEDAOMQwwCgYDVQQDDAN4OTkwE6QRMA8xDTALBgNVBAMMBHgxMDAw --E6QRMA8xDTALBgNVBAMMBHgxMDEwE6QRMA8xDTALBgNVBAMMBHgxMDIwE6QRMA8x --DTALBgNVBAMMBHgxMDMwE6QRMA8xDTALBgNVBAMMBHgxMDQwE6QRMA8xDTALBgNV --BAMMBHgxMDUwE6QRMA8xDTALBgNVBAMMBHgxMDYwE6QRMA8xDTALBgNVBAMMBHgx --MDcwE6QRMA8xDTALBgNVBAMMBHgxMDgwE6QRMA8xDTALBgNVBAMMBHgxMDkwE6QR --MA8xDTALBgNVBAMMBHgxMTAwE6QRMA8xDTALBgNVBAMMBHgxMTEwE6QRMA8xDTAL --BgNVBAMMBHgxMTIwE6QRMA8xDTALBgNVBAMMBHgxMTMwE6QRMA8xDTALBgNVBAMM --BHgxMTQwE6QRMA8xDTALBgNVBAMMBHgxMTUwE6QRMA8xDTALBgNVBAMMBHgxMTYw --E6QRMA8xDTALBgNVBAMMBHgxMTcwE6QRMA8xDTALBgNVBAMMBHgxMTgwE6QRMA8x --DTALBgNVBAMMBHgxMTkwE6QRMA8xDTALBgNVBAMMBHgxMjAwE6QRMA8xDTALBgNV --BAMMBHgxMjEwE6QRMA8xDTALBgNVBAMMBHgxMjIwE6QRMA8xDTALBgNVBAMMBHgx --MjMwE6QRMA8xDTALBgNVBAMMBHgxMjQwE6QRMA8xDTALBgNVBAMMBHgxMjUwE6QR --MA8xDTALBgNVBAMMBHgxMjYwE6QRMA8xDTALBgNVBAMMBHgxMjcwE6QRMA8xDTAL --BgNVBAMMBHgxMjgwE6QRMA8xDTALBgNVBAMMBHgxMjkwE6QRMA8xDTALBgNVBAMM --BHgxMzAwE6QRMA8xDTALBgNVBAMMBHgxMzEwE6QRMA8xDTALBgNVBAMMBHgxMzIw --E6QRMA8xDTALBgNVBAMMBHgxMzMwE6QRMA8xDTALBgNVBAMMBHgxMzQwE6QRMA8x --DTALBgNVBAMMBHgxMzUwE6QRMA8xDTALBgNVBAMMBHgxMzYwE6QRMA8xDTALBgNV --BAMMBHgxMzcwE6QRMA8xDTALBgNVBAMMBHgxMzgwE6QRMA8xDTALBgNVBAMMBHgx --MzkwE6QRMA8xDTALBgNVBAMMBHgxNDAwE6QRMA8xDTALBgNVBAMMBHgxNDEwE6QR --MA8xDTALBgNVBAMMBHgxNDIwE6QRMA8xDTALBgNVBAMMBHgxNDMwE6QRMA8xDTAL --BgNVBAMMBHgxNDQwE6QRMA8xDTALBgNVBAMMBHgxNDUwE6QRMA8xDTALBgNVBAMM --BHgxNDYwE6QRMA8xDTALBgNVBAMMBHgxNDcwE6QRMA8xDTALBgNVBAMMBHgxNDgw --E6QRMA8xDTALBgNVBAMMBHgxNDkwE6QRMA8xDTALBgNVBAMMBHgxNTAwE6QRMA8x --DTALBgNVBAMMBHgxNTEwE6QRMA8xDTALBgNVBAMMBHgxNTIwE6QRMA8xDTALBgNV --BAMMBHgxNTMwE6QRMA8xDTALBgNVBAMMBHgxNTQwE6QRMA8xDTALBgNVBAMMBHgx --NTUwE6QRMA8xDTALBgNVBAMMBHgxNTYwE6QRMA8xDTALBgNVBAMMBHgxNTcwE6QR --MA8xDTALBgNVBAMMBHgxNTgwE6QRMA8xDTALBgNVBAMMBHgxNTkwE6QRMA8xDTAL --BgNVBAMMBHgxNjAwE6QRMA8xDTALBgNVBAMMBHgxNjEwE6QRMA8xDTALBgNVBAMM --BHgxNjIwE6QRMA8xDTALBgNVBAMMBHgxNjMwE6QRMA8xDTALBgNVBAMMBHgxNjQw --E6QRMA8xDTALBgNVBAMMBHgxNjUwE6QRMA8xDTALBgNVBAMMBHgxNjYwE6QRMA8x --DTALBgNVBAMMBHgxNjcwE6QRMA8xDTALBgNVBAMMBHgxNjgwE6QRMA8xDTALBgNV --BAMMBHgxNjkwE6QRMA8xDTALBgNVBAMMBHgxNzAwE6QRMA8xDTALBgNVBAMMBHgx --NzEwE6QRMA8xDTALBgNVBAMMBHgxNzIwE6QRMA8xDTALBgNVBAMMBHgxNzMwE6QR --MA8xDTALBgNVBAMMBHgxNzQwE6QRMA8xDTALBgNVBAMMBHgxNzUwE6QRMA8xDTAL --BgNVBAMMBHgxNzYwE6QRMA8xDTALBgNVBAMMBHgxNzcwE6QRMA8xDTALBgNVBAMM --BHgxNzgwE6QRMA8xDTALBgNVBAMMBHgxNzkwE6QRMA8xDTALBgNVBAMMBHgxODAw --E6QRMA8xDTALBgNVBAMMBHgxODEwE6QRMA8xDTALBgNVBAMMBHgxODIwE6QRMA8x --DTALBgNVBAMMBHgxODMwE6QRMA8xDTALBgNVBAMMBHgxODQwE6QRMA8xDTALBgNV --BAMMBHgxODUwE6QRMA8xDTALBgNVBAMMBHgxODYwE6QRMA8xDTALBgNVBAMMBHgx --ODcwE6QRMA8xDTALBgNVBAMMBHgxODgwE6QRMA8xDTALBgNVBAMMBHgxODkwE6QR --MA8xDTALBgNVBAMMBHgxOTAwE6QRMA8xDTALBgNVBAMMBHgxOTEwE6QRMA8xDTAL --BgNVBAMMBHgxOTIwE6QRMA8xDTALBgNVBAMMBHgxOTMwE6QRMA8xDTALBgNVBAMM --BHgxOTQwE6QRMA8xDTALBgNVBAMMBHgxOTUwE6QRMA8xDTALBgNVBAMMBHgxOTYw --E6QRMA8xDTALBgNVBAMMBHgxOTcwE6QRMA8xDTALBgNVBAMMBHgxOTgwE6QRMA8x --DTALBgNVBAMMBHgxOTkwE6QRMA8xDTALBgNVBAMMBHgyMDAwE6QRMA8xDTALBgNV --BAMMBHgyMDEwE6QRMA8xDTALBgNVBAMMBHgyMDIwE6QRMA8xDTALBgNVBAMMBHgy --MDMwE6QRMA8xDTALBgNVBAMMBHgyMDQwE6QRMA8xDTALBgNVBAMMBHgyMDUwE6QR --MA8xDTALBgNVBAMMBHgyMDYwE6QRMA8xDTALBgNVBAMMBHgyMDcwE6QRMA8xDTAL --BgNVBAMMBHgyMDgwE6QRMA8xDTALBgNVBAMMBHgyMDkwE6QRMA8xDTALBgNVBAMM --BHgyMTAwE6QRMA8xDTALBgNVBAMMBHgyMTEwE6QRMA8xDTALBgNVBAMMBHgyMTIw --E6QRMA8xDTALBgNVBAMMBHgyMTMwE6QRMA8xDTALBgNVBAMMBHgyMTQwE6QRMA8x --DTALBgNVBAMMBHgyMTUwE6QRMA8xDTALBgNVBAMMBHgyMTYwE6QRMA8xDTALBgNV --BAMMBHgyMTcwE6QRMA8xDTALBgNVBAMMBHgyMTgwE6QRMA8xDTALBgNVBAMMBHgy --MTkwE6QRMA8xDTALBgNVBAMMBHgyMjAwE6QRMA8xDTALBgNVBAMMBHgyMjEwE6QR --MA8xDTALBgNVBAMMBHgyMjIwE6QRMA8xDTALBgNVBAMMBHgyMjMwE6QRMA8xDTAL --BgNVBAMMBHgyMjQwE6QRMA8xDTALBgNVBAMMBHgyMjUwE6QRMA8xDTALBgNVBAMM --BHgyMjYwE6QRMA8xDTALBgNVBAMMBHgyMjcwE6QRMA8xDTALBgNVBAMMBHgyMjgw --E6QRMA8xDTALBgNVBAMMBHgyMjkwE6QRMA8xDTALBgNVBAMMBHgyMzAwE6QRMA8x --DTALBgNVBAMMBHgyMzEwE6QRMA8xDTALBgNVBAMMBHgyMzIwE6QRMA8xDTALBgNV --BAMMBHgyMzMwE6QRMA8xDTALBgNVBAMMBHgyMzQwE6QRMA8xDTALBgNVBAMMBHgy --MzUwE6QRMA8xDTALBgNVBAMMBHgyMzYwE6QRMA8xDTALBgNVBAMMBHgyMzcwE6QR --MA8xDTALBgNVBAMMBHgyMzgwE6QRMA8xDTALBgNVBAMMBHgyMzkwE6QRMA8xDTAL --BgNVBAMMBHgyNDAwE6QRMA8xDTALBgNVBAMMBHgyNDEwE6QRMA8xDTALBgNVBAMM --BHgyNDIwE6QRMA8xDTALBgNVBAMMBHgyNDMwE6QRMA8xDTALBgNVBAMMBHgyNDQw --E6QRMA8xDTALBgNVBAMMBHgyNDUwE6QRMA8xDTALBgNVBAMMBHgyNDYwE6QRMA8x --DTALBgNVBAMMBHgyNDcwE6QRMA8xDTALBgNVBAMMBHgyNDgwE6QRMA8xDTALBgNV --BAMMBHgyNDkwE6QRMA8xDTALBgNVBAMMBHgyNTAwE6QRMA8xDTALBgNVBAMMBHgy --NTEwE6QRMA8xDTALBgNVBAMMBHgyNTIwE6QRMA8xDTALBgNVBAMMBHgyNTMwE6QR --MA8xDTALBgNVBAMMBHgyNTQwE6QRMA8xDTALBgNVBAMMBHgyNTUwE6QRMA8xDTAL --BgNVBAMMBHgyNTYwE6QRMA8xDTALBgNVBAMMBHgyNTcwE6QRMA8xDTALBgNVBAMM --BHgyNTgwE6QRMA8xDTALBgNVBAMMBHgyNTkwE6QRMA8xDTALBgNVBAMMBHgyNjAw --E6QRMA8xDTALBgNVBAMMBHgyNjEwE6QRMA8xDTALBgNVBAMMBHgyNjIwE6QRMA8x --DTALBgNVBAMMBHgyNjMwE6QRMA8xDTALBgNVBAMMBHgyNjQwE6QRMA8xDTALBgNV --BAMMBHgyNjUwE6QRMA8xDTALBgNVBAMMBHgyNjYwE6QRMA8xDTALBgNVBAMMBHgy --NjcwE6QRMA8xDTALBgNVBAMMBHgyNjgwE6QRMA8xDTALBgNVBAMMBHgyNjkwE6QR --MA8xDTALBgNVBAMMBHgyNzAwE6QRMA8xDTALBgNVBAMMBHgyNzEwE6QRMA8xDTAL --BgNVBAMMBHgyNzIwE6QRMA8xDTALBgNVBAMMBHgyNzMwE6QRMA8xDTALBgNVBAMM --BHgyNzQwE6QRMA8xDTALBgNVBAMMBHgyNzUwE6QRMA8xDTALBgNVBAMMBHgyNzYw --E6QRMA8xDTALBgNVBAMMBHgyNzcwE6QRMA8xDTALBgNVBAMMBHgyNzgwE6QRMA8x --DTALBgNVBAMMBHgyNzkwE6QRMA8xDTALBgNVBAMMBHgyODAwE6QRMA8xDTALBgNV --BAMMBHgyODEwE6QRMA8xDTALBgNVBAMMBHgyODIwE6QRMA8xDTALBgNVBAMMBHgy --ODMwE6QRMA8xDTALBgNVBAMMBHgyODQwE6QRMA8xDTALBgNVBAMMBHgyODUwE6QR --MA8xDTALBgNVBAMMBHgyODYwE6QRMA8xDTALBgNVBAMMBHgyODcwE6QRMA8xDTAL --BgNVBAMMBHgyODgwE6QRMA8xDTALBgNVBAMMBHgyODkwE6QRMA8xDTALBgNVBAMM --BHgyOTAwE6QRMA8xDTALBgNVBAMMBHgyOTEwE6QRMA8xDTALBgNVBAMMBHgyOTIw --E6QRMA8xDTALBgNVBAMMBHgyOTMwE6QRMA8xDTALBgNVBAMMBHgyOTQwE6QRMA8x --DTALBgNVBAMMBHgyOTUwE6QRMA8xDTALBgNVBAMMBHgyOTYwE6QRMA8xDTALBgNV --BAMMBHgyOTcwE6QRMA8xDTALBgNVBAMMBHgyOTgwE6QRMA8xDTALBgNVBAMMBHgy --OTkwE6QRMA8xDTALBgNVBAMMBHgzMDAwE6QRMA8xDTALBgNVBAMMBHgzMDEwE6QR --MA8xDTALBgNVBAMMBHgzMDIwE6QRMA8xDTALBgNVBAMMBHgzMDMwE6QRMA8xDTAL --BgNVBAMMBHgzMDQwE6QRMA8xDTALBgNVBAMMBHgzMDUwE6QRMA8xDTALBgNVBAMM --BHgzMDYwE6QRMA8xDTALBgNVBAMMBHgzMDcwE6QRMA8xDTALBgNVBAMMBHgzMDgw --E6QRMA8xDTALBgNVBAMMBHgzMDkwE6QRMA8xDTALBgNVBAMMBHgzMTAwE6QRMA8x --DTALBgNVBAMMBHgzMTEwE6QRMA8xDTALBgNVBAMMBHgzMTIwE6QRMA8xDTALBgNV --BAMMBHgzMTMwE6QRMA8xDTALBgNVBAMMBHgzMTQwE6QRMA8xDTALBgNVBAMMBHgz --MTUwE6QRMA8xDTALBgNVBAMMBHgzMTYwE6QRMA8xDTALBgNVBAMMBHgzMTcwE6QR --MA8xDTALBgNVBAMMBHgzMTgwE6QRMA8xDTALBgNVBAMMBHgzMTkwE6QRMA8xDTAL --BgNVBAMMBHgzMjAwE6QRMA8xDTALBgNVBAMMBHgzMjEwE6QRMA8xDTALBgNVBAMM --BHgzMjIwE6QRMA8xDTALBgNVBAMMBHgzMjMwE6QRMA8xDTALBgNVBAMMBHgzMjQw --E6QRMA8xDTALBgNVBAMMBHgzMjUwE6QRMA8xDTALBgNVBAMMBHgzMjYwE6QRMA8x --DTALBgNVBAMMBHgzMjcwE6QRMA8xDTALBgNVBAMMBHgzMjgwE6QRMA8xDTALBgNV --BAMMBHgzMjkwE6QRMA8xDTALBgNVBAMMBHgzMzAwE6QRMA8xDTALBgNVBAMMBHgz --MzEwE6QRMA8xDTALBgNVBAMMBHgzMzIwE6QRMA8xDTALBgNVBAMMBHgzMzMwE6QR --MA8xDTALBgNVBAMMBHgzMzQwE6QRMA8xDTALBgNVBAMMBHgzMzUwE6QRMA8xDTAL --BgNVBAMMBHgzMzYwE6QRMA8xDTALBgNVBAMMBHgzMzcwE6QRMA8xDTALBgNVBAMM --BHgzMzgwE6QRMA8xDTALBgNVBAMMBHgzMzkwE6QRMA8xDTALBgNVBAMMBHgzNDAw --E6QRMA8xDTALBgNVBAMMBHgzNDEwE6QRMA8xDTALBgNVBAMMBHgzNDIwE6QRMA8x --DTALBgNVBAMMBHgzNDMwE6QRMA8xDTALBgNVBAMMBHgzNDQwE6QRMA8xDTALBgNV --BAMMBHgzNDUwE6QRMA8xDTALBgNVBAMMBHgzNDYwE6QRMA8xDTALBgNVBAMMBHgz --NDcwE6QRMA8xDTALBgNVBAMMBHgzNDgwE6QRMA8xDTALBgNVBAMMBHgzNDkwE6QR --MA8xDTALBgNVBAMMBHgzNTAwE6QRMA8xDTALBgNVBAMMBHgzNTEwE6QRMA8xDTAL --BgNVBAMMBHgzNTIwE6QRMA8xDTALBgNVBAMMBHgzNTMwE6QRMA8xDTALBgNVBAMM --BHgzNTQwE6QRMA8xDTALBgNVBAMMBHgzNTUwE6QRMA8xDTALBgNVBAMMBHgzNTYw --E6QRMA8xDTALBgNVBAMMBHgzNTcwE6QRMA8xDTALBgNVBAMMBHgzNTgwE6QRMA8x --DTALBgNVBAMMBHgzNTkwE6QRMA8xDTALBgNVBAMMBHgzNjAwE6QRMA8xDTALBgNV --BAMMBHgzNjEwE6QRMA8xDTALBgNVBAMMBHgzNjIwE6QRMA8xDTALBgNVBAMMBHgz --NjMwE6QRMA8xDTALBgNVBAMMBHgzNjQwE6QRMA8xDTALBgNVBAMMBHgzNjUwE6QR --MA8xDTALBgNVBAMMBHgzNjYwE6QRMA8xDTALBgNVBAMMBHgzNjcwE6QRMA8xDTAL --BgNVBAMMBHgzNjgwE6QRMA8xDTALBgNVBAMMBHgzNjkwE6QRMA8xDTALBgNVBAMM --BHgzNzAwE6QRMA8xDTALBgNVBAMMBHgzNzEwE6QRMA8xDTALBgNVBAMMBHgzNzIw --E6QRMA8xDTALBgNVBAMMBHgzNzMwE6QRMA8xDTALBgNVBAMMBHgzNzQwE6QRMA8x --DTALBgNVBAMMBHgzNzUwE6QRMA8xDTALBgNVBAMMBHgzNzYwE6QRMA8xDTALBgNV --BAMMBHgzNzcwE6QRMA8xDTALBgNVBAMMBHgzNzgwE6QRMA8xDTALBgNVBAMMBHgz --NzkwE6QRMA8xDTALBgNVBAMMBHgzODAwE6QRMA8xDTALBgNVBAMMBHgzODEwE6QR --MA8xDTALBgNVBAMMBHgzODIwE6QRMA8xDTALBgNVBAMMBHgzODMwE6QRMA8xDTAL --BgNVBAMMBHgzODQwE6QRMA8xDTALBgNVBAMMBHgzODUwE6QRMA8xDTALBgNVBAMM --BHgzODYwE6QRMA8xDTALBgNVBAMMBHgzODcwE6QRMA8xDTALBgNVBAMMBHgzODgw --E6QRMA8xDTALBgNVBAMMBHgzODkwE6QRMA8xDTALBgNVBAMMBHgzOTAwE6QRMA8x --DTALBgNVBAMMBHgzOTEwE6QRMA8xDTALBgNVBAMMBHgzOTIwE6QRMA8xDTALBgNV --BAMMBHgzOTMwE6QRMA8xDTALBgNVBAMMBHgzOTQwE6QRMA8xDTALBgNVBAMMBHgz --OTUwE6QRMA8xDTALBgNVBAMMBHgzOTYwE6QRMA8xDTALBgNVBAMMBHgzOTcwE6QR --MA8xDTALBgNVBAMMBHgzOTgwE6QRMA8xDTALBgNVBAMMBHgzOTkwE6QRMA8xDTAL --BgNVBAMMBHg0MDAwE6QRMA8xDTALBgNVBAMMBHg0MDEwE6QRMA8xDTALBgNVBAMM --BHg0MDIwE6QRMA8xDTALBgNVBAMMBHg0MDMwE6QRMA8xDTALBgNVBAMMBHg0MDQw --E6QRMA8xDTALBgNVBAMMBHg0MDUwE6QRMA8xDTALBgNVBAMMBHg0MDYwE6QRMA8x --DTALBgNVBAMMBHg0MDcwE6QRMA8xDTALBgNVBAMMBHg0MDgwE6QRMA8xDTALBgNV --BAMMBHg0MDkwE6QRMA8xDTALBgNVBAMMBHg0MTAwE6QRMA8xDTALBgNVBAMMBHg0 --MTEwE6QRMA8xDTALBgNVBAMMBHg0MTIwE6QRMA8xDTALBgNVBAMMBHg0MTMwE6QR --MA8xDTALBgNVBAMMBHg0MTQwE6QRMA8xDTALBgNVBAMMBHg0MTUwE6QRMA8xDTAL --BgNVBAMMBHg0MTYwE6QRMA8xDTALBgNVBAMMBHg0MTcwD4YNaHR0cDovL3hlc3Qv --MDAPhg1odHRwOi8veGVzdC8xMA+GDWh0dHA6Ly94ZXN0LzIwD4YNaHR0cDovL3hl --c3QvMzAPhg1odHRwOi8veGVzdC80MA+GDWh0dHA6Ly94ZXN0LzUwD4YNaHR0cDov --L3hlc3QvNjAPhg1odHRwOi8veGVzdC83MA+GDWh0dHA6Ly94ZXN0LzgwD4YNaHR0 --cDovL3hlc3QvOTAQhg5odHRwOi8veGVzdC8xMDAQhg5odHRwOi8veGVzdC8xMTAQ --hg5odHRwOi8veGVzdC8xMjAQhg5odHRwOi8veGVzdC8xMzAQhg5odHRwOi8veGVz --dC8xNDAQhg5odHRwOi8veGVzdC8xNTAQhg5odHRwOi8veGVzdC8xNjAQhg5odHRw --Oi8veGVzdC8xNzAQhg5odHRwOi8veGVzdC8xODAQhg5odHRwOi8veGVzdC8xOTAQ --hg5odHRwOi8veGVzdC8yMDAQhg5odHRwOi8veGVzdC8yMTAQhg5odHRwOi8veGVz --dC8yMjAQhg5odHRwOi8veGVzdC8yMzAQhg5odHRwOi8veGVzdC8yNDAQhg5odHRw --Oi8veGVzdC8yNTAQhg5odHRwOi8veGVzdC8yNjAQhg5odHRwOi8veGVzdC8yNzAQ --hg5odHRwOi8veGVzdC8yODAQhg5odHRwOi8veGVzdC8yOTAQhg5odHRwOi8veGVz --dC8zMDAQhg5odHRwOi8veGVzdC8zMTAQhg5odHRwOi8veGVzdC8zMjAQhg5odHRw --Oi8veGVzdC8zMzAQhg5odHRwOi8veGVzdC8zNDAQhg5odHRwOi8veGVzdC8zNTAQ --hg5odHRwOi8veGVzdC8zNjAQhg5odHRwOi8veGVzdC8zNzAQhg5odHRwOi8veGVz --dC8zODAQhg5odHRwOi8veGVzdC8zOTAQhg5odHRwOi8veGVzdC80MDAQhg5odHRw --Oi8veGVzdC80MTAQhg5odHRwOi8veGVzdC80MjAQhg5odHRwOi8veGVzdC80MzAQ --hg5odHRwOi8veGVzdC80NDAQhg5odHRwOi8veGVzdC80NTAQhg5odHRwOi8veGVz --dC80NjAQhg5odHRwOi8veGVzdC80NzAQhg5odHRwOi8veGVzdC80ODAQhg5odHRw --Oi8veGVzdC80OTAQhg5odHRwOi8veGVzdC81MDAQhg5odHRwOi8veGVzdC81MTAQ --hg5odHRwOi8veGVzdC81MjAQhg5odHRwOi8veGVzdC81MzAQhg5odHRwOi8veGVz --dC81NDAQhg5odHRwOi8veGVzdC81NTAQhg5odHRwOi8veGVzdC81NjAQhg5odHRw --Oi8veGVzdC81NzAQhg5odHRwOi8veGVzdC81ODAQhg5odHRwOi8veGVzdC81OTAQ --hg5odHRwOi8veGVzdC82MDAQhg5odHRwOi8veGVzdC82MTAQhg5odHRwOi8veGVz --dC82MjAQhg5odHRwOi8veGVzdC82MzAQhg5odHRwOi8veGVzdC82NDAQhg5odHRw --Oi8veGVzdC82NTAQhg5odHRwOi8veGVzdC82NjAQhg5odHRwOi8veGVzdC82NzAQ --hg5odHRwOi8veGVzdC82ODAQhg5odHRwOi8veGVzdC82OTAQhg5odHRwOi8veGVz --dC83MDAQhg5odHRwOi8veGVzdC83MTAQhg5odHRwOi8veGVzdC83MjAQhg5odHRw --Oi8veGVzdC83MzAQhg5odHRwOi8veGVzdC83NDAQhg5odHRwOi8veGVzdC83NTAQ --hg5odHRwOi8veGVzdC83NjAQhg5odHRwOi8veGVzdC83NzAQhg5odHRwOi8veGVz --dC83ODAQhg5odHRwOi8veGVzdC83OTAQhg5odHRwOi8veGVzdC84MDAQhg5odHRw --Oi8veGVzdC84MTAQhg5odHRwOi8veGVzdC84MjAQhg5odHRwOi8veGVzdC84MzAQ --hg5odHRwOi8veGVzdC84NDAQhg5odHRwOi8veGVzdC84NTAQhg5odHRwOi8veGVz --dC84NjAQhg5odHRwOi8veGVzdC84NzAQhg5odHRwOi8veGVzdC84ODAQhg5odHRw --Oi8veGVzdC84OTAQhg5odHRwOi8veGVzdC85MDAQhg5odHRwOi8veGVzdC85MTAQ --hg5odHRwOi8veGVzdC85MjAQhg5odHRwOi8veGVzdC85MzAQhg5odHRwOi8veGVz --dC85NDAQhg5odHRwOi8veGVzdC85NTAQhg5odHRwOi8veGVzdC85NjAQhg5odHRw --Oi8veGVzdC85NzAQhg5odHRwOi8veGVzdC85ODAQhg5odHRwOi8veGVzdC85OTAR --hg9odHRwOi8veGVzdC8xMDAwEYYPaHR0cDovL3hlc3QvMTAxMBGGD2h0dHA6Ly94 --ZXN0LzEwMjARhg9odHRwOi8veGVzdC8xMDMwEYYPaHR0cDovL3hlc3QvMTA0MBGG --D2h0dHA6Ly94ZXN0LzEwNTARhg9odHRwOi8veGVzdC8xMDYwEYYPaHR0cDovL3hl --c3QvMTA3MBGGD2h0dHA6Ly94ZXN0LzEwODARhg9odHRwOi8veGVzdC8xMDkwEYYP --aHR0cDovL3hlc3QvMTEwMBGGD2h0dHA6Ly94ZXN0LzExMTARhg9odHRwOi8veGVz --dC8xMTIwEYYPaHR0cDovL3hlc3QvMTEzMBGGD2h0dHA6Ly94ZXN0LzExNDARhg9o --dHRwOi8veGVzdC8xMTUwEYYPaHR0cDovL3hlc3QvMTE2MBGGD2h0dHA6Ly94ZXN0 --LzExNzARhg9odHRwOi8veGVzdC8xMTgwEYYPaHR0cDovL3hlc3QvMTE5MBGGD2h0 --dHA6Ly94ZXN0LzEyMDARhg9odHRwOi8veGVzdC8xMjEwEYYPaHR0cDovL3hlc3Qv --MTIyMBGGD2h0dHA6Ly94ZXN0LzEyMzARhg9odHRwOi8veGVzdC8xMjQwEYYPaHR0 --cDovL3hlc3QvMTI1MBGGD2h0dHA6Ly94ZXN0LzEyNjARhg9odHRwOi8veGVzdC8x --MjcwEYYPaHR0cDovL3hlc3QvMTI4MBGGD2h0dHA6Ly94ZXN0LzEyOTARhg9odHRw --Oi8veGVzdC8xMzAwEYYPaHR0cDovL3hlc3QvMTMxMBGGD2h0dHA6Ly94ZXN0LzEz --MjARhg9odHRwOi8veGVzdC8xMzMwEYYPaHR0cDovL3hlc3QvMTM0MBGGD2h0dHA6 --Ly94ZXN0LzEzNTARhg9odHRwOi8veGVzdC8xMzYwEYYPaHR0cDovL3hlc3QvMTM3 --MBGGD2h0dHA6Ly94ZXN0LzEzODARhg9odHRwOi8veGVzdC8xMzkwEYYPaHR0cDov --L3hlc3QvMTQwMBGGD2h0dHA6Ly94ZXN0LzE0MTARhg9odHRwOi8veGVzdC8xNDIw --EYYPaHR0cDovL3hlc3QvMTQzMBGGD2h0dHA6Ly94ZXN0LzE0NDARhg9odHRwOi8v --eGVzdC8xNDUwEYYPaHR0cDovL3hlc3QvMTQ2MBGGD2h0dHA6Ly94ZXN0LzE0NzAR --hg9odHRwOi8veGVzdC8xNDgwEYYPaHR0cDovL3hlc3QvMTQ5MBGGD2h0dHA6Ly94 --ZXN0LzE1MDARhg9odHRwOi8veGVzdC8xNTEwEYYPaHR0cDovL3hlc3QvMTUyMBGG --D2h0dHA6Ly94ZXN0LzE1MzARhg9odHRwOi8veGVzdC8xNTQwEYYPaHR0cDovL3hl --c3QvMTU1MBGGD2h0dHA6Ly94ZXN0LzE1NjARhg9odHRwOi8veGVzdC8xNTcwEYYP --aHR0cDovL3hlc3QvMTU4MBGGD2h0dHA6Ly94ZXN0LzE1OTARhg9odHRwOi8veGVz --dC8xNjAwEYYPaHR0cDovL3hlc3QvMTYxMBGGD2h0dHA6Ly94ZXN0LzE2MjARhg9o --dHRwOi8veGVzdC8xNjMwEYYPaHR0cDovL3hlc3QvMTY0MBGGD2h0dHA6Ly94ZXN0 --LzE2NTARhg9odHRwOi8veGVzdC8xNjYwEYYPaHR0cDovL3hlc3QvMTY3MBGGD2h0 --dHA6Ly94ZXN0LzE2ODARhg9odHRwOi8veGVzdC8xNjkwEYYPaHR0cDovL3hlc3Qv --MTcwMBGGD2h0dHA6Ly94ZXN0LzE3MTARhg9odHRwOi8veGVzdC8xNzIwEYYPaHR0 --cDovL3hlc3QvMTczMBGGD2h0dHA6Ly94ZXN0LzE3NDARhg9odHRwOi8veGVzdC8x --NzUwEYYPaHR0cDovL3hlc3QvMTc2MBGGD2h0dHA6Ly94ZXN0LzE3NzARhg9odHRw --Oi8veGVzdC8xNzgwEYYPaHR0cDovL3hlc3QvMTc5MBGGD2h0dHA6Ly94ZXN0LzE4 --MDARhg9odHRwOi8veGVzdC8xODEwEYYPaHR0cDovL3hlc3QvMTgyMBGGD2h0dHA6 --Ly94ZXN0LzE4MzARhg9odHRwOi8veGVzdC8xODQwEYYPaHR0cDovL3hlc3QvMTg1 --MBGGD2h0dHA6Ly94ZXN0LzE4NjARhg9odHRwOi8veGVzdC8xODcwEYYPaHR0cDov --L3hlc3QvMTg4MBGGD2h0dHA6Ly94ZXN0LzE4OTARhg9odHRwOi8veGVzdC8xOTAw --EYYPaHR0cDovL3hlc3QvMTkxMBGGD2h0dHA6Ly94ZXN0LzE5MjARhg9odHRwOi8v --eGVzdC8xOTMwEYYPaHR0cDovL3hlc3QvMTk0MBGGD2h0dHA6Ly94ZXN0LzE5NTAR --hg9odHRwOi8veGVzdC8xOTYwEYYPaHR0cDovL3hlc3QvMTk3MBGGD2h0dHA6Ly94 --ZXN0LzE5ODARhg9odHRwOi8veGVzdC8xOTkwEYYPaHR0cDovL3hlc3QvMjAwMBGG --D2h0dHA6Ly94ZXN0LzIwMTARhg9odHRwOi8veGVzdC8yMDIwEYYPaHR0cDovL3hl --c3QvMjAzMBGGD2h0dHA6Ly94ZXN0LzIwNDARhg9odHRwOi8veGVzdC8yMDUwEYYP --aHR0cDovL3hlc3QvMjA2MBGGD2h0dHA6Ly94ZXN0LzIwNzARhg9odHRwOi8veGVz --dC8yMDgwEYYPaHR0cDovL3hlc3QvMjA5MBGGD2h0dHA6Ly94ZXN0LzIxMDARhg9o --dHRwOi8veGVzdC8yMTEwEYYPaHR0cDovL3hlc3QvMjEyMBGGD2h0dHA6Ly94ZXN0 --LzIxMzARhg9odHRwOi8veGVzdC8yMTQwEYYPaHR0cDovL3hlc3QvMjE1MBGGD2h0 --dHA6Ly94ZXN0LzIxNjARhg9odHRwOi8veGVzdC8yMTcwEYYPaHR0cDovL3hlc3Qv --MjE4MBGGD2h0dHA6Ly94ZXN0LzIxOTARhg9odHRwOi8veGVzdC8yMjAwEYYPaHR0 --cDovL3hlc3QvMjIxMBGGD2h0dHA6Ly94ZXN0LzIyMjARhg9odHRwOi8veGVzdC8y --MjMwEYYPaHR0cDovL3hlc3QvMjI0MBGGD2h0dHA6Ly94ZXN0LzIyNTARhg9odHRw --Oi8veGVzdC8yMjYwEYYPaHR0cDovL3hlc3QvMjI3MBGGD2h0dHA6Ly94ZXN0LzIy --ODARhg9odHRwOi8veGVzdC8yMjkwEYYPaHR0cDovL3hlc3QvMjMwMBGGD2h0dHA6 --Ly94ZXN0LzIzMTARhg9odHRwOi8veGVzdC8yMzIwEYYPaHR0cDovL3hlc3QvMjMz --MBGGD2h0dHA6Ly94ZXN0LzIzNDARhg9odHRwOi8veGVzdC8yMzUwEYYPaHR0cDov --L3hlc3QvMjM2MBGGD2h0dHA6Ly94ZXN0LzIzNzARhg9odHRwOi8veGVzdC8yMzgw --EYYPaHR0cDovL3hlc3QvMjM5MBGGD2h0dHA6Ly94ZXN0LzI0MDARhg9odHRwOi8v --eGVzdC8yNDEwEYYPaHR0cDovL3hlc3QvMjQyMBGGD2h0dHA6Ly94ZXN0LzI0MzAR --hg9odHRwOi8veGVzdC8yNDQwEYYPaHR0cDovL3hlc3QvMjQ1MBGGD2h0dHA6Ly94 --ZXN0LzI0NjARhg9odHRwOi8veGVzdC8yNDcwEYYPaHR0cDovL3hlc3QvMjQ4MBGG --D2h0dHA6Ly94ZXN0LzI0OTARhg9odHRwOi8veGVzdC8yNTAwEYYPaHR0cDovL3hl --c3QvMjUxMBGGD2h0dHA6Ly94ZXN0LzI1MjARhg9odHRwOi8veGVzdC8yNTMwEYYP --aHR0cDovL3hlc3QvMjU0MBGGD2h0dHA6Ly94ZXN0LzI1NTARhg9odHRwOi8veGVz --dC8yNTYwEYYPaHR0cDovL3hlc3QvMjU3MBGGD2h0dHA6Ly94ZXN0LzI1ODARhg9o --dHRwOi8veGVzdC8yNTkwEYYPaHR0cDovL3hlc3QvMjYwMBGGD2h0dHA6Ly94ZXN0 --LzI2MTARhg9odHRwOi8veGVzdC8yNjIwEYYPaHR0cDovL3hlc3QvMjYzMBGGD2h0 --dHA6Ly94ZXN0LzI2NDARhg9odHRwOi8veGVzdC8yNjUwEYYPaHR0cDovL3hlc3Qv --MjY2MBGGD2h0dHA6Ly94ZXN0LzI2NzARhg9odHRwOi8veGVzdC8yNjgwEYYPaHR0 --cDovL3hlc3QvMjY5MBGGD2h0dHA6Ly94ZXN0LzI3MDARhg9odHRwOi8veGVzdC8y --NzEwEYYPaHR0cDovL3hlc3QvMjcyMBGGD2h0dHA6Ly94ZXN0LzI3MzARhg9odHRw --Oi8veGVzdC8yNzQwEYYPaHR0cDovL3hlc3QvMjc1MBGGD2h0dHA6Ly94ZXN0LzI3 --NjARhg9odHRwOi8veGVzdC8yNzcwEYYPaHR0cDovL3hlc3QvMjc4MBGGD2h0dHA6 --Ly94ZXN0LzI3OTARhg9odHRwOi8veGVzdC8yODAwEYYPaHR0cDovL3hlc3QvMjgx --MBGGD2h0dHA6Ly94ZXN0LzI4MjARhg9odHRwOi8veGVzdC8yODMwEYYPaHR0cDov --L3hlc3QvMjg0MBGGD2h0dHA6Ly94ZXN0LzI4NTARhg9odHRwOi8veGVzdC8yODYw --EYYPaHR0cDovL3hlc3QvMjg3MBGGD2h0dHA6Ly94ZXN0LzI4ODARhg9odHRwOi8v --eGVzdC8yODkwEYYPaHR0cDovL3hlc3QvMjkwMBGGD2h0dHA6Ly94ZXN0LzI5MTAR --hg9odHRwOi8veGVzdC8yOTIwEYYPaHR0cDovL3hlc3QvMjkzMBGGD2h0dHA6Ly94 --ZXN0LzI5NDARhg9odHRwOi8veGVzdC8yOTUwEYYPaHR0cDovL3hlc3QvMjk2MBGG --D2h0dHA6Ly94ZXN0LzI5NzARhg9odHRwOi8veGVzdC8yOTgwEYYPaHR0cDovL3hl --c3QvMjk5MBGGD2h0dHA6Ly94ZXN0LzMwMDARhg9odHRwOi8veGVzdC8zMDEwEYYP --aHR0cDovL3hlc3QvMzAyMBGGD2h0dHA6Ly94ZXN0LzMwMzARhg9odHRwOi8veGVz --dC8zMDQwEYYPaHR0cDovL3hlc3QvMzA1MBGGD2h0dHA6Ly94ZXN0LzMwNjARhg9o --dHRwOi8veGVzdC8zMDcwEYYPaHR0cDovL3hlc3QvMzA4MBGGD2h0dHA6Ly94ZXN0 --LzMwOTARhg9odHRwOi8veGVzdC8zMTAwEYYPaHR0cDovL3hlc3QvMzExMBGGD2h0 --dHA6Ly94ZXN0LzMxMjARhg9odHRwOi8veGVzdC8zMTMwEYYPaHR0cDovL3hlc3Qv --MzE0MBGGD2h0dHA6Ly94ZXN0LzMxNTARhg9odHRwOi8veGVzdC8zMTYwEYYPaHR0 --cDovL3hlc3QvMzE3MBGGD2h0dHA6Ly94ZXN0LzMxODARhg9odHRwOi8veGVzdC8z --MTkwEYYPaHR0cDovL3hlc3QvMzIwMBGGD2h0dHA6Ly94ZXN0LzMyMTARhg9odHRw --Oi8veGVzdC8zMjIwEYYPaHR0cDovL3hlc3QvMzIzMBGGD2h0dHA6Ly94ZXN0LzMy --NDARhg9odHRwOi8veGVzdC8zMjUwEYYPaHR0cDovL3hlc3QvMzI2MBGGD2h0dHA6 --Ly94ZXN0LzMyNzARhg9odHRwOi8veGVzdC8zMjgwEYYPaHR0cDovL3hlc3QvMzI5 --MBGGD2h0dHA6Ly94ZXN0LzMzMDARhg9odHRwOi8veGVzdC8zMzEwEYYPaHR0cDov --L3hlc3QvMzMyMBGGD2h0dHA6Ly94ZXN0LzMzMzARhg9odHRwOi8veGVzdC8zMzQw --EYYPaHR0cDovL3hlc3QvMzM1MBGGD2h0dHA6Ly94ZXN0LzMzNjARhg9odHRwOi8v --eGVzdC8zMzcwEYYPaHR0cDovL3hlc3QvMzM4MBGGD2h0dHA6Ly94ZXN0LzMzOTAR --hg9odHRwOi8veGVzdC8zNDAwEYYPaHR0cDovL3hlc3QvMzQxMBGGD2h0dHA6Ly94 --ZXN0LzM0MjARhg9odHRwOi8veGVzdC8zNDMwEYYPaHR0cDovL3hlc3QvMzQ0MBGG --D2h0dHA6Ly94ZXN0LzM0NTARhg9odHRwOi8veGVzdC8zNDYwEYYPaHR0cDovL3hl --c3QvMzQ3MBGGD2h0dHA6Ly94ZXN0LzM0ODARhg9odHRwOi8veGVzdC8zNDkwEYYP --aHR0cDovL3hlc3QvMzUwMBGGD2h0dHA6Ly94ZXN0LzM1MTARhg9odHRwOi8veGVz --dC8zNTIwEYYPaHR0cDovL3hlc3QvMzUzMBGGD2h0dHA6Ly94ZXN0LzM1NDARhg9o --dHRwOi8veGVzdC8zNTUwEYYPaHR0cDovL3hlc3QvMzU2MBGGD2h0dHA6Ly94ZXN0 --LzM1NzARhg9odHRwOi8veGVzdC8zNTgwEYYPaHR0cDovL3hlc3QvMzU5MBGGD2h0 --dHA6Ly94ZXN0LzM2MDARhg9odHRwOi8veGVzdC8zNjEwEYYPaHR0cDovL3hlc3Qv --MzYyMBGGD2h0dHA6Ly94ZXN0LzM2MzARhg9odHRwOi8veGVzdC8zNjQwEYYPaHR0 --cDovL3hlc3QvMzY1MBGGD2h0dHA6Ly94ZXN0LzM2NjARhg9odHRwOi8veGVzdC8z --NjcwEYYPaHR0cDovL3hlc3QvMzY4MBGGD2h0dHA6Ly94ZXN0LzM2OTARhg9odHRw --Oi8veGVzdC8zNzAwEYYPaHR0cDovL3hlc3QvMzcxMBGGD2h0dHA6Ly94ZXN0LzM3 --MjARhg9odHRwOi8veGVzdC8zNzMwEYYPaHR0cDovL3hlc3QvMzc0MBGGD2h0dHA6 --Ly94ZXN0LzM3NTARhg9odHRwOi8veGVzdC8zNzYwEYYPaHR0cDovL3hlc3QvMzc3 --MBGGD2h0dHA6Ly94ZXN0LzM3ODARhg9odHRwOi8veGVzdC8zNzkwEYYPaHR0cDov --L3hlc3QvMzgwMBGGD2h0dHA6Ly94ZXN0LzM4MTARhg9odHRwOi8veGVzdC8zODIw --EYYPaHR0cDovL3hlc3QvMzgzMBGGD2h0dHA6Ly94ZXN0LzM4NDARhg9odHRwOi8v --eGVzdC8zODUwEYYPaHR0cDovL3hlc3QvMzg2MBGGD2h0dHA6Ly94ZXN0LzM4NzAR --hg9odHRwOi8veGVzdC8zODgwEYYPaHR0cDovL3hlc3QvMzg5MBGGD2h0dHA6Ly94 --ZXN0LzM5MDARhg9odHRwOi8veGVzdC8zOTEwEYYPaHR0cDovL3hlc3QvMzkyMBGG --D2h0dHA6Ly94ZXN0LzM5MzARhg9odHRwOi8veGVzdC8zOTQwEYYPaHR0cDovL3hl --c3QvMzk1MBGGD2h0dHA6Ly94ZXN0LzM5NjARhg9odHRwOi8veGVzdC8zOTcwEYYP --aHR0cDovL3hlc3QvMzk4MBGGD2h0dHA6Ly94ZXN0LzM5OTARhg9odHRwOi8veGVz --dC80MDAwEYYPaHR0cDovL3hlc3QvNDAxMBGGD2h0dHA6Ly94ZXN0LzQwMjARhg9o --dHRwOi8veGVzdC80MDMwEYYPaHR0cDovL3hlc3QvNDA0MBGGD2h0dHA6Ly94ZXN0 --LzQwNTARhg9odHRwOi8veGVzdC80MDYwEYYPaHR0cDovL3hlc3QvNDA3MBGGD2h0 --dHA6Ly94ZXN0LzQwODARhg9odHRwOi8veGVzdC80MDkwEYYPaHR0cDovL3hlc3Qv --NDEwMBGGD2h0dHA6Ly94ZXN0LzQxMTARhg9odHRwOi8veGVzdC80MTIwEYYPaHR0 --cDovL3hlc3QvNDEzMBGGD2h0dHA6Ly94ZXN0LzQxNDARhg9odHRwOi8veGVzdC80 --MTUwEYYPaHR0cDovL3hlc3QvNDE2MBGGD2h0dHA6Ly94ZXN0LzQxNzARhg9odHRw --Oi8veGVzdC80MTgwEYYPaHR0cDovL3hlc3QvNDE5MBGGD2h0dHA6Ly94ZXN0LzQy --MDARhg9odHRwOi8veGVzdC80MjEwEYYPaHR0cDovL3hlc3QvNDIyMBGGD2h0dHA6 --Ly94ZXN0LzQyMzARhg9odHRwOi8veGVzdC80MjQwEYYPaHR0cDovL3hlc3QvNDI1 --MBGGD2h0dHA6Ly94ZXN0LzQyNjARhg9odHRwOi8veGVzdC80MjcwEYYPaHR0cDov --L3hlc3QvNDI4MBGGD2h0dHA6Ly94ZXN0LzQyOTARhg9odHRwOi8veGVzdC80MzAw --EYYPaHR0cDovL3hlc3QvNDMxMBGGD2h0dHA6Ly94ZXN0LzQzMjARhg9odHRwOi8v --eGVzdC80MzMwEYYPaHR0cDovL3hlc3QvNDM0MBGGD2h0dHA6Ly94ZXN0LzQzNTAR --hg9odHRwOi8veGVzdC80MzYwEYYPaHR0cDovL3hlc3QvNDM3MBGGD2h0dHA6Ly94 --ZXN0LzQzODARhg9odHRwOi8veGVzdC80MzkwEYYPaHR0cDovL3hlc3QvNDQwMBGG --D2h0dHA6Ly94ZXN0LzQ0MTARhg9odHRwOi8veGVzdC80NDIwEYYPaHR0cDovL3hl --c3QvNDQzMBGGD2h0dHA6Ly94ZXN0LzQ0NDARhg9odHRwOi8veGVzdC80NDUwEYYP --aHR0cDovL3hlc3QvNDQ2MBGGD2h0dHA6Ly94ZXN0LzQ0NzARhg9odHRwOi8veGVz --dC80NDgwEYYPaHR0cDovL3hlc3QvNDQ5MBGGD2h0dHA6Ly94ZXN0LzQ1MDARhg9o --dHRwOi8veGVzdC80NTEwEYYPaHR0cDovL3hlc3QvNDUyMBGGD2h0dHA6Ly94ZXN0 --LzQ1MzARhg9odHRwOi8veGVzdC80NTQwEYYPaHR0cDovL3hlc3QvNDU1MBGGD2h0 --dHA6Ly94ZXN0LzQ1NjARhg9odHRwOi8veGVzdC80NTcwEYYPaHR0cDovL3hlc3Qv --NDU4MBGGD2h0dHA6Ly94ZXN0LzQ1OTARhg9odHRwOi8veGVzdC80NjAwEYYPaHR0 --cDovL3hlc3QvNDYxMBGGD2h0dHA6Ly94ZXN0LzQ2MjARhg9odHRwOi8veGVzdC80 --NjMwEYYPaHR0cDovL3hlc3QvNDY0MBGGD2h0dHA6Ly94ZXN0LzQ2NTARhg9odHRw --Oi8veGVzdC80NjYwEYYPaHR0cDovL3hlc3QvNDY3MBGGD2h0dHA6Ly94ZXN0LzQ2 --ODARhg9odHRwOi8veGVzdC80NjkwEYYPaHR0cDovL3hlc3QvNDcwMBGGD2h0dHA6 --Ly94ZXN0LzQ3MTARhg9odHRwOi8veGVzdC80NzIwEYYPaHR0cDovL3hlc3QvNDcz --MBGGD2h0dHA6Ly94ZXN0LzQ3NDARhg9odHRwOi8veGVzdC80NzUwEYYPaHR0cDov --L3hlc3QvNDc2MBGGD2h0dHA6Ly94ZXN0LzQ3NzARhg9odHRwOi8veGVzdC80Nzgw --EYYPaHR0cDovL3hlc3QvNDc5MBGGD2h0dHA6Ly94ZXN0LzQ4MDARhg9odHRwOi8v --eGVzdC80ODEwEYYPaHR0cDovL3hlc3QvNDgyMBGGD2h0dHA6Ly94ZXN0LzQ4MzAR --hg9odHRwOi8veGVzdC80ODQwEYYPaHR0cDovL3hlc3QvNDg1MBGGD2h0dHA6Ly94 --ZXN0LzQ4NjARhg9odHRwOi8veGVzdC80ODcwEYYPaHR0cDovL3hlc3QvNDg4MBGG --D2h0dHA6Ly94ZXN0LzQ4OTARhg9odHRwOi8veGVzdC80OTAwEYYPaHR0cDovL3hl --c3QvNDkxMBGGD2h0dHA6Ly94ZXN0LzQ5MjARhg9odHRwOi8veGVzdC80OTMwEYYP --aHR0cDovL3hlc3QvNDk0MBGGD2h0dHA6Ly94ZXN0LzQ5NTARhg9odHRwOi8veGVz --dC80OTYwEYYPaHR0cDovL3hlc3QvNDk3MBGGD2h0dHA6Ly94ZXN0LzQ5ODARhg9o --dHRwOi8veGVzdC80OTkwEYYPaHR0cDovL3hlc3QvNTAwMBGGD2h0dHA6Ly94ZXN0 --LzUwMTARhg9odHRwOi8veGVzdC81MDIwEYYPaHR0cDovL3hlc3QvNTAzMBGGD2h0 --dHA6Ly94ZXN0LzUwNDARhg9odHRwOi8veGVzdC81MDUwEYYPaHR0cDovL3hlc3Qv --NTA2MBGGD2h0dHA6Ly94ZXN0LzUwNzARhg9odHRwOi8veGVzdC81MDgwEYYPaHR0 --cDovL3hlc3QvNTA5MBGGD2h0dHA6Ly94ZXN0LzUxMDARhg9odHRwOi8veGVzdC81 --MTEwEYYPaHR0cDovL3hlc3QvNTEyMBGGD2h0dHA6Ly94ZXN0LzUxMzARhg9odHRw --Oi8veGVzdC81MTQwEYYPaHR0cDovL3hlc3QvNTE1MBGGD2h0dHA6Ly94ZXN0LzUx --NjARhg9odHRwOi8veGVzdC81MTcwEYYPaHR0cDovL3hlc3QvNTE4MBGGD2h0dHA6 --Ly94ZXN0LzUxOTARhg9odHRwOi8veGVzdC81MjAwEYYPaHR0cDovL3hlc3QvNTIx --MBGGD2h0dHA6Ly94ZXN0LzUyMjARhg9odHRwOi8veGVzdC81MjMwEYYPaHR0cDov --L3hlc3QvNTI0MBGGD2h0dHA6Ly94ZXN0LzUyNTARhg9odHRwOi8veGVzdC81MjYw --EYYPaHR0cDovL3hlc3QvNTI3MBGGD2h0dHA6Ly94ZXN0LzUyODARhg9odHRwOi8v --eGVzdC81MjkwEYYPaHR0cDovL3hlc3QvNTMwMBGGD2h0dHA6Ly94ZXN0LzUzMTAR --hg9odHRwOi8veGVzdC81MzIwEYYPaHR0cDovL3hlc3QvNTMzMBGGD2h0dHA6Ly94 --ZXN0LzUzNDARhg9odHRwOi8veGVzdC81MzUwEYYPaHR0cDovL3hlc3QvNTM2MBGG --D2h0dHA6Ly94ZXN0LzUzNzARhg9odHRwOi8veGVzdC81MzgwEYYPaHR0cDovL3hl --c3QvNTM5MBGGD2h0dHA6Ly94ZXN0LzU0MDARhg9odHRwOi8veGVzdC81NDEwEYYP --aHR0cDovL3hlc3QvNTQyMBGGD2h0dHA6Ly94ZXN0LzU0MzARhg9odHRwOi8veGVz --dC81NDQwEYYPaHR0cDovL3hlc3QvNTQ1MBGGD2h0dHA6Ly94ZXN0LzU0NjARhg9o --dHRwOi8veGVzdC81NDcwEYYPaHR0cDovL3hlc3QvNTQ4MBGGD2h0dHA6Ly94ZXN0 --LzU0OTARhg9odHRwOi8veGVzdC81NTAwEYYPaHR0cDovL3hlc3QvNTUxMBGGD2h0 --dHA6Ly94ZXN0LzU1MjARhg9odHRwOi8veGVzdC81NTMwEYYPaHR0cDovL3hlc3Qv --NTU0MBGGD2h0dHA6Ly94ZXN0LzU1NTARhg9odHRwOi8veGVzdC81NTYwEYYPaHR0 --cDovL3hlc3QvNTU3MBGGD2h0dHA6Ly94ZXN0LzU1ODARhg9odHRwOi8veGVzdC81 --NTkwEYYPaHR0cDovL3hlc3QvNTYwMBGGD2h0dHA6Ly94ZXN0LzU2MTARhg9odHRw --Oi8veGVzdC81NjIwEYYPaHR0cDovL3hlc3QvNTYzMBGGD2h0dHA6Ly94ZXN0LzU2 --NDARhg9odHRwOi8veGVzdC81NjUwEYYPaHR0cDovL3hlc3QvNTY2MBGGD2h0dHA6 --Ly94ZXN0LzU2NzARhg9odHRwOi8veGVzdC81NjgwEYYPaHR0cDovL3hlc3QvNTY5 --MBGGD2h0dHA6Ly94ZXN0LzU3MDARhg9odHRwOi8veGVzdC81NzEwEYYPaHR0cDov --L3hlc3QvNTcyMBGGD2h0dHA6Ly94ZXN0LzU3MzARhg9odHRwOi8veGVzdC81NzQw --EYYPaHR0cDovL3hlc3QvNTc1MBGGD2h0dHA6Ly94ZXN0LzU3NjARhg9odHRwOi8v --eGVzdC81NzcwEYYPaHR0cDovL3hlc3QvNTc4MBGGD2h0dHA6Ly94ZXN0LzU3OTAR --hg9odHRwOi8veGVzdC81ODAwEYYPaHR0cDovL3hlc3QvNTgxMBGGD2h0dHA6Ly94 --ZXN0LzU4MjARhg9odHRwOi8veGVzdC81ODMwEYYPaHR0cDovL3hlc3QvNTg0MBGG --D2h0dHA6Ly94ZXN0LzU4NTARhg9odHRwOi8veGVzdC81ODYwEYYPaHR0cDovL3hl --c3QvNTg3MBGGD2h0dHA6Ly94ZXN0LzU4ODARhg9odHRwOi8veGVzdC81ODkwEYYP --aHR0cDovL3hlc3QvNTkwMBGGD2h0dHA6Ly94ZXN0LzU5MTARhg9odHRwOi8veGVz --dC81OTIwEYYPaHR0cDovL3hlc3QvNTkzMBGGD2h0dHA6Ly94ZXN0LzU5NDARhg9o --dHRwOi8veGVzdC81OTUwEYYPaHR0cDovL3hlc3QvNTk2MBGGD2h0dHA6Ly94ZXN0 --LzU5NzARhg9odHRwOi8veGVzdC81OTgwEYYPaHR0cDovL3hlc3QvNTk5MBGGD2h0 --dHA6Ly94ZXN0LzYwMDARhg9odHRwOi8veGVzdC82MDEwEYYPaHR0cDovL3hlc3Qv --NjAyMBGGD2h0dHA6Ly94ZXN0LzYwMzARhg9odHRwOi8veGVzdC82MDQwEYYPaHR0 --cDovL3hlc3QvNjA1MBGGD2h0dHA6Ly94ZXN0LzYwNjARhg9odHRwOi8veGVzdC82 --MDcwEYYPaHR0cDovL3hlc3QvNjA4MBGGD2h0dHA6Ly94ZXN0LzYwOTARhg9odHRw --Oi8veGVzdC82MTAwEYYPaHR0cDovL3hlc3QvNjExMBGGD2h0dHA6Ly94ZXN0LzYx --MjARhg9odHRwOi8veGVzdC82MTMwEYYPaHR0cDovL3hlc3QvNjE0MBGGD2h0dHA6 --Ly94ZXN0LzYxNTARhg9odHRwOi8veGVzdC82MTYwEYYPaHR0cDovL3hlc3QvNjE3 --MBGGD2h0dHA6Ly94ZXN0LzYxODARhg9odHRwOi8veGVzdC82MTkwEYYPaHR0cDov --L3hlc3QvNjIwMBGGD2h0dHA6Ly94ZXN0LzYyMTARhg9odHRwOi8veGVzdC82MjIw --EYYPaHR0cDovL3hlc3QvNjIzMBGGD2h0dHA6Ly94ZXN0LzYyNDARhg9odHRwOi8v --eGVzdC82MjUwEYYPaHR0cDovL3hlc3QvNjI2MBGGD2h0dHA6Ly94ZXN0LzYyNzAR --hg9odHRwOi8veGVzdC82MjgwEYYPaHR0cDovL3hlc3QvNjI5MBGGD2h0dHA6Ly94 --ZXN0LzYzMDARhg9odHRwOi8veGVzdC82MzEwEYYPaHR0cDovL3hlc3QvNjMyMBGG --D2h0dHA6Ly94ZXN0LzYzMzARhg9odHRwOi8veGVzdC82MzQwEYYPaHR0cDovL3hl --c3QvNjM1MBGGD2h0dHA6Ly94ZXN0LzYzNjARhg9odHRwOi8veGVzdC82MzcwEYYP --aHR0cDovL3hlc3QvNjM4MBGGD2h0dHA6Ly94ZXN0LzYzOTARhg9odHRwOi8veGVz --dC82NDAwEYYPaHR0cDovL3hlc3QvNjQxMBGGD2h0dHA6Ly94ZXN0LzY0MjARhg9o --dHRwOi8veGVzdC82NDMwEYYPaHR0cDovL3hlc3QvNjQ0MBGGD2h0dHA6Ly94ZXN0 --LzY0NTARhg9odHRwOi8veGVzdC82NDYwEYYPaHR0cDovL3hlc3QvNjQ3MBGGD2h0 --dHA6Ly94ZXN0LzY0ODARhg9odHRwOi8veGVzdC82NDkwEYYPaHR0cDovL3hlc3Qv --NjUwMBGGD2h0dHA6Ly94ZXN0LzY1MTARhg9odHRwOi8veGVzdC82NTIwEYYPaHR0 --cDovL3hlc3QvNjUzMBGGD2h0dHA6Ly94ZXN0LzY1NDARhg9odHRwOi8veGVzdC82 --NTUwEYYPaHR0cDovL3hlc3QvNjU2MBGGD2h0dHA6Ly94ZXN0LzY1NzARhg9odHRw --Oi8veGVzdC82NTgwEYYPaHR0cDovL3hlc3QvNjU5MBGGD2h0dHA6Ly94ZXN0LzY2 --MDARhg9odHRwOi8veGVzdC82NjEwEYYPaHR0cDovL3hlc3QvNjYyMBGGD2h0dHA6 --Ly94ZXN0LzY2MzARhg9odHRwOi8veGVzdC82NjQwEYYPaHR0cDovL3hlc3QvNjY1 --MBGGD2h0dHA6Ly94ZXN0LzY2NjARhg9odHRwOi8veGVzdC82NjcwEYYPaHR0cDov --L3hlc3QvNjY4MBGGD2h0dHA6Ly94ZXN0LzY2OTARhg9odHRwOi8veGVzdC82NzAw --EYYPaHR0cDovL3hlc3QvNjcxMBGGD2h0dHA6Ly94ZXN0LzY3MjARhg9odHRwOi8v --eGVzdC82NzMwEYYPaHR0cDovL3hlc3QvNjc0MBGGD2h0dHA6Ly94ZXN0LzY3NTAR --hg9odHRwOi8veGVzdC82NzYwEYYPaHR0cDovL3hlc3QvNjc3MBGGD2h0dHA6Ly94 --ZXN0LzY3ODARhg9odHRwOi8veGVzdC82NzkwEYYPaHR0cDovL3hlc3QvNjgwMBGG --D2h0dHA6Ly94ZXN0LzY4MTARhg9odHRwOi8veGVzdC82ODIwEYYPaHR0cDovL3hl --c3QvNjgzMBGGD2h0dHA6Ly94ZXN0LzY4NDARhg9odHRwOi8veGVzdC82ODUwEYYP --aHR0cDovL3hlc3QvNjg2MBGGD2h0dHA6Ly94ZXN0LzY4NzARhg9odHRwOi8veGVz --dC82ODgwEYYPaHR0cDovL3hlc3QvNjg5MBGGD2h0dHA6Ly94ZXN0LzY5MDARhg9o --dHRwOi8veGVzdC82OTEwEYYPaHR0cDovL3hlc3QvNjkyMBGGD2h0dHA6Ly94ZXN0 --LzY5MzARhg9odHRwOi8veGVzdC82OTQwEYYPaHR0cDovL3hlc3QvNjk1MBGGD2h0 --dHA6Ly94ZXN0LzY5NjARhg9odHRwOi8veGVzdC82OTcwEYYPaHR0cDovL3hlc3Qv --Njk4MBGGD2h0dHA6Ly94ZXN0LzY5OTARhg9odHRwOi8veGVzdC83MDAwEYYPaHR0 --cDovL3hlc3QvNzAxMBGGD2h0dHA6Ly94ZXN0LzcwMjARhg9odHRwOi8veGVzdC83 --MDMwEYYPaHR0cDovL3hlc3QvNzA0MBGGD2h0dHA6Ly94ZXN0LzcwNTARhg9odHRw --Oi8veGVzdC83MDYwEYYPaHR0cDovL3hlc3QvNzA3MBGGD2h0dHA6Ly94ZXN0Lzcw --ODARhg9odHRwOi8veGVzdC83MDkwEYYPaHR0cDovL3hlc3QvNzEwMBGGD2h0dHA6 --Ly94ZXN0LzcxMTARhg9odHRwOi8veGVzdC83MTIwEYYPaHR0cDovL3hlc3QvNzEz --MBGGD2h0dHA6Ly94ZXN0LzcxNDARhg9odHRwOi8veGVzdC83MTUwEYYPaHR0cDov --L3hlc3QvNzE2MBGGD2h0dHA6Ly94ZXN0LzcxNzARhg9odHRwOi8veGVzdC83MTgw --EYYPaHR0cDovL3hlc3QvNzE5MBGGD2h0dHA6Ly94ZXN0LzcyMDARhg9odHRwOi8v --eGVzdC83MjEwEYYPaHR0cDovL3hlc3QvNzIyMBGGD2h0dHA6Ly94ZXN0LzcyMzAR --hg9odHRwOi8veGVzdC83MjQwEYYPaHR0cDovL3hlc3QvNzI1MBGGD2h0dHA6Ly94 --ZXN0LzcyNjARhg9odHRwOi8veGVzdC83MjcwEYYPaHR0cDovL3hlc3QvNzI4MBGG --D2h0dHA6Ly94ZXN0LzcyOTARhg9odHRwOi8veGVzdC83MzAwEYYPaHR0cDovL3hl --c3QvNzMxMBGGD2h0dHA6Ly94ZXN0LzczMjARhg9odHRwOi8veGVzdC83MzMwEYYP --aHR0cDovL3hlc3QvNzM0MBGGD2h0dHA6Ly94ZXN0LzczNTARhg9odHRwOi8veGVz --dC83MzYwEYYPaHR0cDovL3hlc3QvNzM3MBGGD2h0dHA6Ly94ZXN0LzczODARhg9o --dHRwOi8veGVzdC83MzkwEYYPaHR0cDovL3hlc3QvNzQwMBGGD2h0dHA6Ly94ZXN0 --Lzc0MTARhg9odHRwOi8veGVzdC83NDIwEYYPaHR0cDovL3hlc3QvNzQzMBGGD2h0 --dHA6Ly94ZXN0Lzc0NDARhg9odHRwOi8veGVzdC83NDUwEYYPaHR0cDovL3hlc3Qv --NzQ2MBGGD2h0dHA6Ly94ZXN0Lzc0NzARhg9odHRwOi8veGVzdC83NDgwEYYPaHR0 --cDovL3hlc3QvNzQ5MBGGD2h0dHA6Ly94ZXN0Lzc1MDARhg9odHRwOi8veGVzdC83 --NTEwEYYPaHR0cDovL3hlc3QvNzUyMBGGD2h0dHA6Ly94ZXN0Lzc1MzARhg9odHRw --Oi8veGVzdC83NTQwEYYPaHR0cDovL3hlc3QvNzU1MBGGD2h0dHA6Ly94ZXN0Lzc1 --NjARhg9odHRwOi8veGVzdC83NTcwEYYPaHR0cDovL3hlc3QvNzU4MBGGD2h0dHA6 --Ly94ZXN0Lzc1OTARhg9odHRwOi8veGVzdC83NjAwEYYPaHR0cDovL3hlc3QvNzYx --MBGGD2h0dHA6Ly94ZXN0Lzc2MjARhg9odHRwOi8veGVzdC83NjMwEYYPaHR0cDov --L3hlc3QvNzY0MBGGD2h0dHA6Ly94ZXN0Lzc2NTARhg9odHRwOi8veGVzdC83NjYw --EYYPaHR0cDovL3hlc3QvNzY3MBGGD2h0dHA6Ly94ZXN0Lzc2ODARhg9odHRwOi8v --eGVzdC83NjkwEYYPaHR0cDovL3hlc3QvNzcwMBGGD2h0dHA6Ly94ZXN0Lzc3MTAR --hg9odHRwOi8veGVzdC83NzIwEYYPaHR0cDovL3hlc3QvNzczMBGGD2h0dHA6Ly94 --ZXN0Lzc3NDARhg9odHRwOi8veGVzdC83NzUwEYYPaHR0cDovL3hlc3QvNzc2MBGG --D2h0dHA6Ly94ZXN0Lzc3NzARhg9odHRwOi8veGVzdC83NzgwEYYPaHR0cDovL3hl --c3QvNzc5MBGGD2h0dHA6Ly94ZXN0Lzc4MDARhg9odHRwOi8veGVzdC83ODEwEYYP --aHR0cDovL3hlc3QvNzgyMBGGD2h0dHA6Ly94ZXN0Lzc4MzARhg9odHRwOi8veGVz --dC83ODQwEYYPaHR0cDovL3hlc3QvNzg1MBGGD2h0dHA6Ly94ZXN0Lzc4NjARhg9o --dHRwOi8veGVzdC83ODcwEYYPaHR0cDovL3hlc3QvNzg4MBGGD2h0dHA6Ly94ZXN0 --Lzc4OTARhg9odHRwOi8veGVzdC83OTAwEYYPaHR0cDovL3hlc3QvNzkxMBGGD2h0 --dHA6Ly94ZXN0Lzc5MjARhg9odHRwOi8veGVzdC83OTMwEYYPaHR0cDovL3hlc3Qv --Nzk0MBGGD2h0dHA6Ly94ZXN0Lzc5NTARhg9odHRwOi8veGVzdC83OTYwEYYPaHR0 --cDovL3hlc3QvNzk3MBGGD2h0dHA6Ly94ZXN0Lzc5ODARhg9odHRwOi8veGVzdC83 --OTkwEYYPaHR0cDovL3hlc3QvODAwMBGGD2h0dHA6Ly94ZXN0LzgwMTARhg9odHRw --Oi8veGVzdC84MDIwEYYPaHR0cDovL3hlc3QvODAzMBGGD2h0dHA6Ly94ZXN0Lzgw --NDARhg9odHRwOi8veGVzdC84MDUwEYYPaHR0cDovL3hlc3QvODA2MBGGD2h0dHA6 --Ly94ZXN0LzgwNzARhg9odHRwOi8veGVzdC84MDgwEYYPaHR0cDovL3hlc3QvODA5 --MBGGD2h0dHA6Ly94ZXN0LzgxMDARhg9odHRwOi8veGVzdC84MTEwEYYPaHR0cDov --L3hlc3QvODEyMBGGD2h0dHA6Ly94ZXN0LzgxMzARhg9odHRwOi8veGVzdC84MTQw --EYYPaHR0cDovL3hlc3QvODE1MBGGD2h0dHA6Ly94ZXN0LzgxNjARhg9odHRwOi8v --eGVzdC84MTcwEYYPaHR0cDovL3hlc3QvODE4MBGGD2h0dHA6Ly94ZXN0LzgxOTAR --hg9odHRwOi8veGVzdC84MjAwEYYPaHR0cDovL3hlc3QvODIxMBGGD2h0dHA6Ly94 --ZXN0LzgyMjARhg9odHRwOi8veGVzdC84MjMwEYYPaHR0cDovL3hlc3QvODI0MBGG --D2h0dHA6Ly94ZXN0LzgyNTARhg9odHRwOi8veGVzdC84MjYwEYYPaHR0cDovL3hl --c3QvODI3MBGGD2h0dHA6Ly94ZXN0LzgyODARhg9odHRwOi8veGVzdC84MjkwEYYP --aHR0cDovL3hlc3QvODMwMBGGD2h0dHA6Ly94ZXN0LzgzMTARhg9odHRwOi8veGVz --dC84MzIwEYYPaHR0cDovL3hlc3QvODMzMBGGD2h0dHA6Ly94ZXN0LzgzNDARhg9o --dHRwOi8veGVzdC84MzUwEYYPaHR0cDovL3hlc3QvODM2MBGGD2h0dHA6Ly94ZXN0 --LzgzNzARhg9odHRwOi8veGVzdC84MzgwEYYPaHR0cDovL3hlc3QvODM5MBGGD2h0 --dHA6Ly94ZXN0Lzg0MDARhg9odHRwOi8veGVzdC84NDEwEYYPaHR0cDovL3hlc3Qv --ODQyMBGGD2h0dHA6Ly94ZXN0Lzg0MzARhg9odHRwOi8veGVzdC84NDQwEYYPaHR0 --cDovL3hlc3QvODQ1MBGGD2h0dHA6Ly94ZXN0Lzg0NjARhg9odHRwOi8veGVzdC84 --NDcwEYYPaHR0cDovL3hlc3QvODQ4MBGGD2h0dHA6Ly94ZXN0Lzg0OTARhg9odHRw --Oi8veGVzdC84NTAwEYYPaHR0cDovL3hlc3QvODUxMBGGD2h0dHA6Ly94ZXN0Lzg1 --MjARhg9odHRwOi8veGVzdC84NTMwEYYPaHR0cDovL3hlc3QvODU0MBGGD2h0dHA6 --Ly94ZXN0Lzg1NTARhg9odHRwOi8veGVzdC84NTYwEYYPaHR0cDovL3hlc3QvODU3 --MBGGD2h0dHA6Ly94ZXN0Lzg1ODARhg9odHRwOi8veGVzdC84NTkwEYYPaHR0cDov --L3hlc3QvODYwMBGGD2h0dHA6Ly94ZXN0Lzg2MTARhg9odHRwOi8veGVzdC84NjIw --EYYPaHR0cDovL3hlc3QvODYzMBGGD2h0dHA6Ly94ZXN0Lzg2NDARhg9odHRwOi8v --eGVzdC84NjUwEYYPaHR0cDovL3hlc3QvODY2MBGGD2h0dHA6Ly94ZXN0Lzg2NzAR --hg9odHRwOi8veGVzdC84NjgwEYYPaHR0cDovL3hlc3QvODY5MBGGD2h0dHA6Ly94 --ZXN0Lzg3MDARhg9odHRwOi8veGVzdC84NzEwEYYPaHR0cDovL3hlc3QvODcyMBGG --D2h0dHA6Ly94ZXN0Lzg3MzARhg9odHRwOi8veGVzdC84NzQwEYYPaHR0cDovL3hl --c3QvODc1MBGGD2h0dHA6Ly94ZXN0Lzg3NjARhg9odHRwOi8veGVzdC84NzcwEYYP --aHR0cDovL3hlc3QvODc4MBGGD2h0dHA6Ly94ZXN0Lzg3OTARhg9odHRwOi8veGVz --dC84ODAwEYYPaHR0cDovL3hlc3QvODgxMBGGD2h0dHA6Ly94ZXN0Lzg4MjARhg9o --dHRwOi8veGVzdC84ODMwEYYPaHR0cDovL3hlc3QvODg0MBGGD2h0dHA6Ly94ZXN0 --Lzg4NTARhg9odHRwOi8veGVzdC84ODYwEYYPaHR0cDovL3hlc3QvODg3MBGGD2h0 --dHA6Ly94ZXN0Lzg4ODARhg9odHRwOi8veGVzdC84ODkwEYYPaHR0cDovL3hlc3Qv --ODkwMBGGD2h0dHA6Ly94ZXN0Lzg5MTARhg9odHRwOi8veGVzdC84OTIwEYYPaHR0 --cDovL3hlc3QvODkzMBGGD2h0dHA6Ly94ZXN0Lzg5NDARhg9odHRwOi8veGVzdC84 --OTUwEYYPaHR0cDovL3hlc3QvODk2MBGGD2h0dHA6Ly94ZXN0Lzg5NzARhg9odHRw --Oi8veGVzdC84OTgwEYYPaHR0cDovL3hlc3QvODk5MBGGD2h0dHA6Ly94ZXN0Lzkw --MDARhg9odHRwOi8veGVzdC85MDEwEYYPaHR0cDovL3hlc3QvOTAyMBGGD2h0dHA6 --Ly94ZXN0LzkwMzARhg9odHRwOi8veGVzdC85MDQwEYYPaHR0cDovL3hlc3QvOTA1 --MBGGD2h0dHA6Ly94ZXN0LzkwNjARhg9odHRwOi8veGVzdC85MDcwEYYPaHR0cDov --L3hlc3QvOTA4MBGGD2h0dHA6Ly94ZXN0LzkwOTARhg9odHRwOi8veGVzdC85MTAw --EYYPaHR0cDovL3hlc3QvOTExMBGGD2h0dHA6Ly94ZXN0LzkxMjARhg9odHRwOi8v --eGVzdC85MTMwEYYPaHR0cDovL3hlc3QvOTE0MBGGD2h0dHA6Ly94ZXN0LzkxNTAR --hg9odHRwOi8veGVzdC85MTYwEYYPaHR0cDovL3hlc3QvOTE3MBGGD2h0dHA6Ly94 --ZXN0LzkxODARhg9odHRwOi8veGVzdC85MTkwEYYPaHR0cDovL3hlc3QvOTIwMBGG --D2h0dHA6Ly94ZXN0LzkyMTARhg9odHRwOi8veGVzdC85MjIwEYYPaHR0cDovL3hl --c3QvOTIzMBGGD2h0dHA6Ly94ZXN0LzkyNDARhg9odHRwOi8veGVzdC85MjUwEYYP --aHR0cDovL3hlc3QvOTI2MBGGD2h0dHA6Ly94ZXN0LzkyNzARhg9odHRwOi8veGVz --dC85MjgwEYYPaHR0cDovL3hlc3QvOTI5MBGGD2h0dHA6Ly94ZXN0LzkzMDARhg9o --dHRwOi8veGVzdC85MzEwEYYPaHR0cDovL3hlc3QvOTMyMBGGD2h0dHA6Ly94ZXN0 --LzkzMzARhg9odHRwOi8veGVzdC85MzQwEYYPaHR0cDovL3hlc3QvOTM1MBGGD2h0 --dHA6Ly94ZXN0LzkzNjARhg9odHRwOi8veGVzdC85MzcwEYYPaHR0cDovL3hlc3Qv --OTM4MBGGD2h0dHA6Ly94ZXN0LzkzOTARhg9odHRwOi8veGVzdC85NDAwEYYPaHR0 --cDovL3hlc3QvOTQxMBGGD2h0dHA6Ly94ZXN0Lzk0MjARhg9odHRwOi8veGVzdC85 --NDMwEYYPaHR0cDovL3hlc3QvOTQ0MBGGD2h0dHA6Ly94ZXN0Lzk0NTARhg9odHRw --Oi8veGVzdC85NDYwEYYPaHR0cDovL3hlc3QvOTQ3MBGGD2h0dHA6Ly94ZXN0Lzk0 --ODARhg9odHRwOi8veGVzdC85NDkwEYYPaHR0cDovL3hlc3QvOTUwMBGGD2h0dHA6 --Ly94ZXN0Lzk1MTARhg9odHRwOi8veGVzdC85NTIwEYYPaHR0cDovL3hlc3QvOTUz --MBGGD2h0dHA6Ly94ZXN0Lzk1NDARhg9odHRwOi8veGVzdC85NTUwEYYPaHR0cDov --L3hlc3QvOTU2MBGGD2h0dHA6Ly94ZXN0Lzk1NzARhg9odHRwOi8veGVzdC85NTgw --EYYPaHR0cDovL3hlc3QvOTU5MBGGD2h0dHA6Ly94ZXN0Lzk2MDARhg9odHRwOi8v --eGVzdC85NjEwEYYPaHR0cDovL3hlc3QvOTYyMBGGD2h0dHA6Ly94ZXN0Lzk2MzAR --hg9odHRwOi8veGVzdC85NjQwEYYPaHR0cDovL3hlc3QvOTY1MBGGD2h0dHA6Ly94 --ZXN0Lzk2NjARhg9odHRwOi8veGVzdC85NjcwEYYPaHR0cDovL3hlc3QvOTY4MBGG --D2h0dHA6Ly94ZXN0Lzk2OTARhg9odHRwOi8veGVzdC85NzAwEYYPaHR0cDovL3hl --c3QvOTcxMBGGD2h0dHA6Ly94ZXN0Lzk3MjARhg9odHRwOi8veGVzdC85NzMwEYYP --aHR0cDovL3hlc3QvOTc0MBGGD2h0dHA6Ly94ZXN0Lzk3NTARhg9odHRwOi8veGVz --dC85NzYwEYYPaHR0cDovL3hlc3QvOTc3MBGGD2h0dHA6Ly94ZXN0Lzk3ODARhg9o --dHRwOi8veGVzdC85NzkwEYYPaHR0cDovL3hlc3QvOTgwMBGGD2h0dHA6Ly94ZXN0 --Lzk4MTARhg9odHRwOi8veGVzdC85ODIwEYYPaHR0cDovL3hlc3QvOTgzMBGGD2h0 --dHA6Ly94ZXN0Lzk4NDARhg9odHRwOi8veGVzdC85ODUwEYYPaHR0cDovL3hlc3Qv --OTg2MBGGD2h0dHA6Ly94ZXN0Lzk4NzARhg9odHRwOi8veGVzdC85ODgwEYYPaHR0 --cDovL3hlc3QvOTg5MBGGD2h0dHA6Ly94ZXN0Lzk5MDARhg9odHRwOi8veGVzdC85 --OTEwEYYPaHR0cDovL3hlc3QvOTkyMBGGD2h0dHA6Ly94ZXN0Lzk5MzARhg9odHRw --Oi8veGVzdC85OTQwEYYPaHR0cDovL3hlc3QvOTk1MBGGD2h0dHA6Ly94ZXN0Lzk5 --NjARhg9odHRwOi8veGVzdC85OTcwEYYPaHR0cDovL3hlc3QvOTk4MBGGD2h0dHA6 --Ly94ZXN0Lzk5OTAShhBodHRwOi8veGVzdC8xMDAwMBKGEGh0dHA6Ly94ZXN0LzEw --MDEwEoYQaHR0cDovL3hlc3QvMTAwMjAShhBodHRwOi8veGVzdC8xMDAzMBKGEGh0 --dHA6Ly94ZXN0LzEwMDQwEoYQaHR0cDovL3hlc3QvMTAwNTAShhBodHRwOi8veGVz --dC8xMDA2MBKGEGh0dHA6Ly94ZXN0LzEwMDcwEoYQaHR0cDovL3hlc3QvMTAwODAS --hhBodHRwOi8veGVzdC8xMDA5MBKGEGh0dHA6Ly94ZXN0LzEwMTAwEoYQaHR0cDov --L3hlc3QvMTAxMTAShhBodHRwOi8veGVzdC8xMDEyMBKGEGh0dHA6Ly94ZXN0LzEw --MTMwEoYQaHR0cDovL3hlc3QvMTAxNDAShhBodHRwOi8veGVzdC8xMDE1MBKGEGh0 --dHA6Ly94ZXN0LzEwMTYwEoYQaHR0cDovL3hlc3QvMTAxNzAShhBodHRwOi8veGVz --dC8xMDE4MBKGEGh0dHA6Ly94ZXN0LzEwMTkwEoYQaHR0cDovL3hlc3QvMTAyMDAS --hhBodHRwOi8veGVzdC8xMDIxMBKGEGh0dHA6Ly94ZXN0LzEwMjIwEoYQaHR0cDov --L3hlc3QvMTAyMzAShhBodHRwOi8veGVzdC8xMDI0MA0GCSqGSIb3DQEBCwUAA4IB --AQAcHj9jLB0GARMS1c+6JUnH+za9yzLttzWr+OXcGrgbN7vq9cIdQJb7qVaU6ULZ --EKOO4QKelQO3PmRMp4IfkRUnRgsetUkQskKNwai9rpR+US70Jhr0DYoDzTs6it+U --wvFY6GalifCQbMrU/Q7Ip+7dup+5iA7AtQZLHKH5u7r7DI/UQ7bYlRDFY8PMoIFo --ro8uJEhg2MSdQ04l9JSHWu257Y/d7x5IOD0T1kvveYwNaPg6UYyjEZyGwKabnr+l --6Mku27aL1k0n7rNaHWH2E665UryucDiK2Pmi7ukysEF4nZZMlKqv9d6GFgStUNap --E4K0CJvZZ3XtoLkWs5eziJ5c -+MILWujCC1aKgAwIBAgIUPOX8gYhZqFAWwX/X5Srlln/C9vYwDQYJKoZIhvcNAQEL -+BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw -+MDBaMBcxFTATBgNVBAMMDEludGVybWVkaWF0ZTCCASIwDQYJKoZIhvcNAQEBBQAD -+ggEPADCCAQoCggEBALs72wRuF+BUUrojdyS8NONw2ZmeU10zC6nMSx2uBicYjlW6 -+rRLHHTJZbcMWINtipneAEuCHWFFV42Z/0eA6ImXlcCaiBATwXflfVsja6A9XKHdu -+mqBKUzQaYzeiQ6sOSs0HI91Vg0QADHBB3zVk0MUOaofbyvw11eJbrwug5nWl0uFy -+TiJjAUFzuJVQLP3tw2G2NtSDlWHD4GH/9J6K6Lrc0faJ7Z0wRJUn9NGL5i8UZlbx -+2vHMBBt3kqWfWEAMnwwy1gXCTMDFn+WkMD1M6Z0DbEwGtuWVvSG45iuooL8Gu0Mz -+GT17F1nxZE0kZ7FRDzWu8HF1ea5bAjQEMeNmhmUCAwEAAaOC1AQwgtQAMB0GA1Ud -+DgQWBBSSET+sEZbHZjfPg1ok8Dp3rzONfzAfBgNVHSMEGDAWgBS2wu+f0SnLD4mM -+TFLUvUC3Ebdx3TA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAKGG2h0dHA6Ly91 -+cmwtZm9yLWFpYS9Sb290LmNlcjAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vdXJs -+LWZvci1jcmwvUm9vdC5jcmwwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB -+Af8wgtM0BgNVHR4EgtMrMILTJ6CCabEwCYIHdDAudGVzdDAJggd0MS50ZXN0MAmC -+B3QyLnRlc3QwCYIHdDMudGVzdDAJggd0NC50ZXN0MAmCB3Q1LnRlc3QwCYIHdDYu -+dGVzdDAJggd0Ny50ZXN0MAmCB3Q4LnRlc3QwCYIHdDkudGVzdDAKggh0MTAudGVz -+dDAKggh0MTEudGVzdDAKggh0MTIudGVzdDAKggh0MTMudGVzdDAKggh0MTQudGVz -+dDAKggh0MTUudGVzdDAKggh0MTYudGVzdDAKggh0MTcudGVzdDAKggh0MTgudGVz -+dDAKggh0MTkudGVzdDAKggh0MjAudGVzdDAKggh0MjEudGVzdDAKggh0MjIudGVz -+dDAKggh0MjMudGVzdDAKggh0MjQudGVzdDAKggh0MjUudGVzdDAKggh0MjYudGVz -+dDAKggh0MjcudGVzdDAKggh0MjgudGVzdDAKggh0MjkudGVzdDAKggh0MzAudGVz -+dDAKggh0MzEudGVzdDAKggh0MzIudGVzdDAKggh0MzMudGVzdDAKggh0MzQudGVz -+dDAKggh0MzUudGVzdDAKggh0MzYudGVzdDAKggh0MzcudGVzdDAKggh0MzgudGVz -+dDAKggh0MzkudGVzdDAKggh0NDAudGVzdDAKggh0NDEudGVzdDAKggh0NDIudGVz -+dDAKggh0NDMudGVzdDAKggh0NDQudGVzdDAKggh0NDUudGVzdDAKggh0NDYudGVz -+dDAKggh0NDcudGVzdDAKggh0NDgudGVzdDAKggh0NDkudGVzdDAKggh0NTAudGVz -+dDAKggh0NTEudGVzdDAKggh0NTIudGVzdDAKggh0NTMudGVzdDAKggh0NTQudGVz -+dDAKggh0NTUudGVzdDAKggh0NTYudGVzdDAKggh0NTcudGVzdDAKggh0NTgudGVz -+dDAKggh0NTkudGVzdDAKggh0NjAudGVzdDAKggh0NjEudGVzdDAKggh0NjIudGVz -+dDAKggh0NjMudGVzdDAKggh0NjQudGVzdDAKggh0NjUudGVzdDAKggh0NjYudGVz -+dDAKggh0NjcudGVzdDAKggh0NjgudGVzdDAKggh0NjkudGVzdDAKggh0NzAudGVz -+dDAKggh0NzEudGVzdDAKggh0NzIudGVzdDAKggh0NzMudGVzdDAKggh0NzQudGVz -+dDAKggh0NzUudGVzdDAKggh0NzYudGVzdDAKggh0NzcudGVzdDAKggh0NzgudGVz -+dDAKggh0NzkudGVzdDAKggh0ODAudGVzdDAKggh0ODEudGVzdDAKggh0ODIudGVz -+dDAKggh0ODMudGVzdDAKggh0ODQudGVzdDAKggh0ODUudGVzdDAKggh0ODYudGVz -+dDAKggh0ODcudGVzdDAKggh0ODgudGVzdDAKggh0ODkudGVzdDAKggh0OTAudGVz -+dDAKggh0OTEudGVzdDAKggh0OTIudGVzdDAKggh0OTMudGVzdDAKggh0OTQudGVz -+dDAKggh0OTUudGVzdDAKggh0OTYudGVzdDAKggh0OTcudGVzdDAKggh0OTgudGVz -+dDAKggh0OTkudGVzdDALggl0MTAwLnRlc3QwC4IJdDEwMS50ZXN0MAuCCXQxMDIu -+dGVzdDALggl0MTAzLnRlc3QwC4IJdDEwNC50ZXN0MAuCCXQxMDUudGVzdDALggl0 -+MTA2LnRlc3QwC4IJdDEwNy50ZXN0MAuCCXQxMDgudGVzdDALggl0MTA5LnRlc3Qw -+C4IJdDExMC50ZXN0MAuCCXQxMTEudGVzdDALggl0MTEyLnRlc3QwC4IJdDExMy50 -+ZXN0MAuCCXQxMTQudGVzdDALggl0MTE1LnRlc3QwC4IJdDExNi50ZXN0MAuCCXQx -+MTcudGVzdDALggl0MTE4LnRlc3QwC4IJdDExOS50ZXN0MAuCCXQxMjAudGVzdDAL -+ggl0MTIxLnRlc3QwC4IJdDEyMi50ZXN0MAuCCXQxMjMudGVzdDALggl0MTI0LnRl -+c3QwC4IJdDEyNS50ZXN0MAuCCXQxMjYudGVzdDALggl0MTI3LnRlc3QwC4IJdDEy -+OC50ZXN0MAuCCXQxMjkudGVzdDALggl0MTMwLnRlc3QwC4IJdDEzMS50ZXN0MAuC -+CXQxMzIudGVzdDALggl0MTMzLnRlc3QwC4IJdDEzNC50ZXN0MAuCCXQxMzUudGVz -+dDALggl0MTM2LnRlc3QwC4IJdDEzNy50ZXN0MAuCCXQxMzgudGVzdDALggl0MTM5 -+LnRlc3QwC4IJdDE0MC50ZXN0MAuCCXQxNDEudGVzdDALggl0MTQyLnRlc3QwC4IJ -+dDE0My50ZXN0MAuCCXQxNDQudGVzdDALggl0MTQ1LnRlc3QwC4IJdDE0Ni50ZXN0 -+MAuCCXQxNDcudGVzdDALggl0MTQ4LnRlc3QwC4IJdDE0OS50ZXN0MAuCCXQxNTAu -+dGVzdDALggl0MTUxLnRlc3QwC4IJdDE1Mi50ZXN0MAuCCXQxNTMudGVzdDALggl0 -+MTU0LnRlc3QwC4IJdDE1NS50ZXN0MAuCCXQxNTYudGVzdDALggl0MTU3LnRlc3Qw -+C4IJdDE1OC50ZXN0MAuCCXQxNTkudGVzdDALggl0MTYwLnRlc3QwC4IJdDE2MS50 -+ZXN0MAuCCXQxNjIudGVzdDALggl0MTYzLnRlc3QwC4IJdDE2NC50ZXN0MAuCCXQx -+NjUudGVzdDALggl0MTY2LnRlc3QwC4IJdDE2Ny50ZXN0MAuCCXQxNjgudGVzdDAL -+ggl0MTY5LnRlc3QwC4IJdDE3MC50ZXN0MAqHCAoAAAD/////MAqHCAoAAAH///// -+MAqHCAoAAAL/////MAqHCAoAAAP/////MAqHCAoAAAT/////MAqHCAoAAAX///// -+MAqHCAoAAAb/////MAqHCAoAAAf/////MAqHCAoAAAj/////MAqHCAoAAAn///// -+MAqHCAoAAAr/////MAqHCAoAAAv/////MAqHCAoAAAz/////MAqHCAoAAA3///// -+MAqHCAoAAA7/////MAqHCAoAAA//////MAqHCAoAABD/////MAqHCAoAABH///// -+MAqHCAoAABL/////MAqHCAoAABP/////MAqHCAoAABT/////MAqHCAoAABX///// -+MAqHCAoAABb/////MAqHCAoAABf/////MAqHCAoAABj/////MAqHCAoAABn///// -+MAqHCAoAABr/////MAqHCAoAABv/////MAqHCAoAABz/////MAqHCAoAAB3///// -+MAqHCAoAAB7/////MAqHCAoAAB//////MAqHCAoAACD/////MAqHCAoAACH///// -+MAqHCAoAACL/////MAqHCAoAACP/////MAqHCAoAACT/////MAqHCAoAACX///// -+MAqHCAoAACb/////MAqHCAoAACf/////MAqHCAoAACj/////MAqHCAoAACn///// -+MAqHCAoAACr/////MAqHCAoAACv/////MAqHCAoAACz/////MAqHCAoAAC3///// -+MAqHCAoAAC7/////MAqHCAoAAC//////MAqHCAoAADD/////MAqHCAoAADH///// -+MAqHCAoAADL/////MAqHCAoAADP/////MAqHCAoAADT/////MAqHCAoAADX///// -+MAqHCAoAADb/////MAqHCAoAADf/////MAqHCAoAADj/////MAqHCAoAADn///// -+MAqHCAoAADr/////MAqHCAoAADv/////MAqHCAoAADz/////MAqHCAoAAD3///// -+MAqHCAoAAD7/////MAqHCAoAAD//////MAqHCAoAAED/////MAqHCAoAAEH///// -+MAqHCAoAAEL/////MAqHCAoAAEP/////MAqHCAoAAET/////MAqHCAoAAEX///// -+MAqHCAoAAEb/////MAqHCAoAAEf/////MAqHCAoAAEj/////MAqHCAoAAEn///// -+MAqHCAoAAEr/////MAqHCAoAAEv/////MAqHCAoAAEz/////MAqHCAoAAE3///// -+MAqHCAoAAE7/////MAqHCAoAAE//////MAqHCAoAAFD/////MAqHCAoAAFH///// -+MAqHCAoAAFL/////MAqHCAoAAFP/////MAqHCAoAAFT/////MAqHCAoAAFX///// -+MAqHCAoAAFb/////MAqHCAoAAFf/////MAqHCAoAAFj/////MAqHCAoAAFn///// -+MAqHCAoAAFr/////MAqHCAoAAFv/////MAqHCAoAAFz/////MAqHCAoAAF3///// -+MAqHCAoAAF7/////MAqHCAoAAF//////MAqHCAoAAGD/////MAqHCAoAAGH///// -+MAqHCAoAAGL/////MAqHCAoAAGP/////MAqHCAoAAGT/////MAqHCAoAAGX///// -+MAqHCAoAAGb/////MAqHCAoAAGf/////MAqHCAoAAGj/////MAqHCAoAAGn///// -+MAqHCAoAAGr/////MAqHCAoAAGv/////MAqHCAoAAGz/////MAqHCAoAAG3///// -+MAqHCAoAAG7/////MAqHCAoAAG//////MAqHCAoAAHD/////MAqHCAoAAHH///// -+MAqHCAoAAHL/////MAqHCAoAAHP/////MAqHCAoAAHT/////MAqHCAoAAHX///// -+MAqHCAoAAHb/////MAqHCAoAAHf/////MAqHCAoAAHj/////MAqHCAoAAHn///// -+MAqHCAoAAHr/////MAqHCAoAAHv/////MAqHCAoAAHz/////MAqHCAoAAH3///// -+MAqHCAoAAH7/////MAqHCAoAAH//////MAqHCAoAAID/////MAqHCAoAAIH///// -+MAqHCAoAAIL/////MAqHCAoAAIP/////MAqHCAoAAIT/////MAqHCAoAAIX///// -+MAqHCAoAAIb/////MAqHCAoAAIf/////MAqHCAoAAIj/////MAqHCAoAAIn///// -+MAqHCAoAAIr/////MAqHCAoAAIv/////MAqHCAoAAIz/////MAqHCAoAAI3///// -+MAqHCAoAAI7/////MAqHCAoAAI//////MAqHCAoAAJD/////MAqHCAoAAJH///// -+MAqHCAoAAJL/////MAqHCAoAAJP/////MAqHCAoAAJT/////MAqHCAoAAJX///// -+MAqHCAoAAJb/////MAqHCAoAAJf/////MAqHCAoAAJj/////MAqHCAoAAJn///// -+MAqHCAoAAJr/////MAqHCAoAAJv/////MAqHCAoAAJz/////MAqHCAoAAJ3///// -+MAqHCAoAAJ7/////MAqHCAoAAJ//////MAqHCAoAAKD/////MAqHCAoAAKH///// -+MAqHCAoAAKL/////MAqHCAoAAKP/////MAqHCAoAAKT/////MAqHCAoAAKX///// -+MAqHCAoAAKb/////MAqHCAoAAKf/////MAqHCAoAAKj/////MAqHCAoAAKn///// -+MAqHCAoAAKr/////MBGkDzANMQswCQYDVQQDDAJ0MDARpA8wDTELMAkGA1UEAwwC -+dDEwEaQPMA0xCzAJBgNVBAMMAnQyMBGkDzANMQswCQYDVQQDDAJ0MzARpA8wDTEL -+MAkGA1UEAwwCdDQwEaQPMA0xCzAJBgNVBAMMAnQ1MBGkDzANMQswCQYDVQQDDAJ0 -+NjARpA8wDTELMAkGA1UEAwwCdDcwEaQPMA0xCzAJBgNVBAMMAnQ4MBGkDzANMQsw -+CQYDVQQDDAJ0OTASpBAwDjEMMAoGA1UEAwwDdDEwMBKkEDAOMQwwCgYDVQQDDAN0 -+MTEwEqQQMA4xDDAKBgNVBAMMA3QxMjASpBAwDjEMMAoGA1UEAwwDdDEzMBKkEDAO -+MQwwCgYDVQQDDAN0MTQwEqQQMA4xDDAKBgNVBAMMA3QxNTASpBAwDjEMMAoGA1UE -+AwwDdDE2MBKkEDAOMQwwCgYDVQQDDAN0MTcwEqQQMA4xDDAKBgNVBAMMA3QxODAS -+pBAwDjEMMAoGA1UEAwwDdDE5MBKkEDAOMQwwCgYDVQQDDAN0MjAwEqQQMA4xDDAK -+BgNVBAMMA3QyMTASpBAwDjEMMAoGA1UEAwwDdDIyMBKkEDAOMQwwCgYDVQQDDAN0 -+MjMwEqQQMA4xDDAKBgNVBAMMA3QyNDASpBAwDjEMMAoGA1UEAwwDdDI1MBKkEDAO -+MQwwCgYDVQQDDAN0MjYwEqQQMA4xDDAKBgNVBAMMA3QyNzASpBAwDjEMMAoGA1UE -+AwwDdDI4MBKkEDAOMQwwCgYDVQQDDAN0MjkwEqQQMA4xDDAKBgNVBAMMA3QzMDAS -+pBAwDjEMMAoGA1UEAwwDdDMxMBKkEDAOMQwwCgYDVQQDDAN0MzIwEqQQMA4xDDAK -+BgNVBAMMA3QzMzASpBAwDjEMMAoGA1UEAwwDdDM0MBKkEDAOMQwwCgYDVQQDDAN0 -+MzUwEqQQMA4xDDAKBgNVBAMMA3QzNjASpBAwDjEMMAoGA1UEAwwDdDM3MBKkEDAO -+MQwwCgYDVQQDDAN0MzgwEqQQMA4xDDAKBgNVBAMMA3QzOTASpBAwDjEMMAoGA1UE -+AwwDdDQwMBKkEDAOMQwwCgYDVQQDDAN0NDEwEqQQMA4xDDAKBgNVBAMMA3Q0MjAS -+pBAwDjEMMAoGA1UEAwwDdDQzMBKkEDAOMQwwCgYDVQQDDAN0NDQwEqQQMA4xDDAK -+BgNVBAMMA3Q0NTASpBAwDjEMMAoGA1UEAwwDdDQ2MBKkEDAOMQwwCgYDVQQDDAN0 -+NDcwEqQQMA4xDDAKBgNVBAMMA3Q0ODASpBAwDjEMMAoGA1UEAwwDdDQ5MBKkEDAO -+MQwwCgYDVQQDDAN0NTAwEqQQMA4xDDAKBgNVBAMMA3Q1MTASpBAwDjEMMAoGA1UE -+AwwDdDUyMBKkEDAOMQwwCgYDVQQDDAN0NTMwEqQQMA4xDDAKBgNVBAMMA3Q1NDAS -+pBAwDjEMMAoGA1UEAwwDdDU1MBKkEDAOMQwwCgYDVQQDDAN0NTYwEqQQMA4xDDAK -+BgNVBAMMA3Q1NzASpBAwDjEMMAoGA1UEAwwDdDU4MBKkEDAOMQwwCgYDVQQDDAN0 -+NTkwEqQQMA4xDDAKBgNVBAMMA3Q2MDASpBAwDjEMMAoGA1UEAwwDdDYxMBKkEDAO -+MQwwCgYDVQQDDAN0NjIwEqQQMA4xDDAKBgNVBAMMA3Q2MzASpBAwDjEMMAoGA1UE -+AwwDdDY0MBKkEDAOMQwwCgYDVQQDDAN0NjUwEqQQMA4xDDAKBgNVBAMMA3Q2NjAS -+pBAwDjEMMAoGA1UEAwwDdDY3MBKkEDAOMQwwCgYDVQQDDAN0NjgwEqQQMA4xDDAK -+BgNVBAMMA3Q2OTASpBAwDjEMMAoGA1UEAwwDdDcwMBKkEDAOMQwwCgYDVQQDDAN0 -+NzEwEqQQMA4xDDAKBgNVBAMMA3Q3MjASpBAwDjEMMAoGA1UEAwwDdDczMBKkEDAO -+MQwwCgYDVQQDDAN0NzQwEqQQMA4xDDAKBgNVBAMMA3Q3NTASpBAwDjEMMAoGA1UE -+AwwDdDc2MBKkEDAOMQwwCgYDVQQDDAN0NzcwEqQQMA4xDDAKBgNVBAMMA3Q3ODAS -+pBAwDjEMMAoGA1UEAwwDdDc5MBKkEDAOMQwwCgYDVQQDDAN0ODAwEqQQMA4xDDAK -+BgNVBAMMA3Q4MTASpBAwDjEMMAoGA1UEAwwDdDgyMBKkEDAOMQwwCgYDVQQDDAN0 -+ODMwEqQQMA4xDDAKBgNVBAMMA3Q4NDASpBAwDjEMMAoGA1UEAwwDdDg1MBKkEDAO -+MQwwCgYDVQQDDAN0ODYwEqQQMA4xDDAKBgNVBAMMA3Q4NzASpBAwDjEMMAoGA1UE -+AwwDdDg4MBKkEDAOMQwwCgYDVQQDDAN0ODkwEqQQMA4xDDAKBgNVBAMMA3Q5MDAS -+pBAwDjEMMAoGA1UEAwwDdDkxMBKkEDAOMQwwCgYDVQQDDAN0OTIwEqQQMA4xDDAK -+BgNVBAMMA3Q5MzASpBAwDjEMMAoGA1UEAwwDdDk0MBKkEDAOMQwwCgYDVQQDDAN0 -+OTUwEqQQMA4xDDAKBgNVBAMMA3Q5NjASpBAwDjEMMAoGA1UEAwwDdDk3MBKkEDAO -+MQwwCgYDVQQDDAN0OTgwEqQQMA4xDDAKBgNVBAMMA3Q5OTATpBEwDzENMAsGA1UE -+AwwEdDEwMDATpBEwDzENMAsGA1UEAwwEdDEwMTATpBEwDzENMAsGA1UEAwwEdDEw -+MjATpBEwDzENMAsGA1UEAwwEdDEwMzATpBEwDzENMAsGA1UEAwwEdDEwNDATpBEw -+DzENMAsGA1UEAwwEdDEwNTATpBEwDzENMAsGA1UEAwwEdDEwNjATpBEwDzENMAsG -+A1UEAwwEdDEwNzATpBEwDzENMAsGA1UEAwwEdDEwODATpBEwDzENMAsGA1UEAwwE -+dDEwOTATpBEwDzENMAsGA1UEAwwEdDExMDATpBEwDzENMAsGA1UEAwwEdDExMTAT -+pBEwDzENMAsGA1UEAwwEdDExMjATpBEwDzENMAsGA1UEAwwEdDExMzATpBEwDzEN -+MAsGA1UEAwwEdDExNDATpBEwDzENMAsGA1UEAwwEdDExNTATpBEwDzENMAsGA1UE -+AwwEdDExNjATpBEwDzENMAsGA1UEAwwEdDExNzATpBEwDzENMAsGA1UEAwwEdDEx -+ODATpBEwDzENMAsGA1UEAwwEdDExOTATpBEwDzENMAsGA1UEAwwEdDEyMDATpBEw -+DzENMAsGA1UEAwwEdDEyMTATpBEwDzENMAsGA1UEAwwEdDEyMjATpBEwDzENMAsG -+A1UEAwwEdDEyMzATpBEwDzENMAsGA1UEAwwEdDEyNDATpBEwDzENMAsGA1UEAwwE -+dDEyNTATpBEwDzENMAsGA1UEAwwEdDEyNjATpBEwDzENMAsGA1UEAwwEdDEyNzAT -+pBEwDzENMAsGA1UEAwwEdDEyODATpBEwDzENMAsGA1UEAwwEdDEyOTATpBEwDzEN -+MAsGA1UEAwwEdDEzMDATpBEwDzENMAsGA1UEAwwEdDEzMTATpBEwDzENMAsGA1UE -+AwwEdDEzMjATpBEwDzENMAsGA1UEAwwEdDEzMzATpBEwDzENMAsGA1UEAwwEdDEz -+NDATpBEwDzENMAsGA1UEAwwEdDEzNTATpBEwDzENMAsGA1UEAwwEdDEzNjATpBEw -+DzENMAsGA1UEAwwEdDEzNzATpBEwDzENMAsGA1UEAwwEdDEzODATpBEwDzENMAsG -+A1UEAwwEdDEzOTATpBEwDzENMAsGA1UEAwwEdDE0MDATpBEwDzENMAsGA1UEAwwE -+dDE0MTATpBEwDzENMAsGA1UEAwwEdDE0MjATpBEwDzENMAsGA1UEAwwEdDE0MzAT -+pBEwDzENMAsGA1UEAwwEdDE0NDATpBEwDzENMAsGA1UEAwwEdDE0NTATpBEwDzEN -+MAsGA1UEAwwEdDE0NjATpBEwDzENMAsGA1UEAwwEdDE0NzATpBEwDzENMAsGA1UE -+AwwEdDE0ODATpBEwDzENMAsGA1UEAwwEdDE0OTATpBEwDzENMAsGA1UEAwwEdDE1 -+MDATpBEwDzENMAsGA1UEAwwEdDE1MTATpBEwDzENMAsGA1UEAwwEdDE1MjATpBEw -+DzENMAsGA1UEAwwEdDE1MzATpBEwDzENMAsGA1UEAwwEdDE1NDATpBEwDzENMAsG -+A1UEAwwEdDE1NTATpBEwDzENMAsGA1UEAwwEdDE1NjATpBEwDzENMAsGA1UEAwwE -+dDE1NzATpBEwDzENMAsGA1UEAwwEdDE1ODATpBEwDzENMAsGA1UEAwwEdDE1OTAT -+pBEwDzENMAsGA1UEAwwEdDE2MDATpBEwDzENMAsGA1UEAwwEdDE2MTATpBEwDzEN -+MAsGA1UEAwwEdDE2MjATpBEwDzENMAsGA1UEAwwEdDE2MzATpBEwDzENMAsGA1UE -+AwwEdDE2NDATpBEwDzENMAsGA1UEAwwEdDE2NTATpBEwDzENMAsGA1UEAwwEdDE2 -+NjATpBEwDzENMAsGA1UEAwwEdDE2NzATpBEwDzENMAsGA1UEAwwEdDE2ODATpBEw -+DzENMAsGA1UEAwwEdDE2OTATpBEwDzENMAsGA1UEAwwEdDE3MDATpBEwDzENMAsG -+A1UEAwwEdDE3MTAPhg1odHRwOi8vdGVzdC8wMA+GDWh0dHA6Ly90ZXN0LzEwD4YN -+aHR0cDovL3Rlc3QvMjAPhg1odHRwOi8vdGVzdC8zMA+GDWh0dHA6Ly90ZXN0LzQw -+D4YNaHR0cDovL3Rlc3QvNTAPhg1odHRwOi8vdGVzdC82MA+GDWh0dHA6Ly90ZXN0 -+LzcwD4YNaHR0cDovL3Rlc3QvODAPhg1odHRwOi8vdGVzdC85MBCGDmh0dHA6Ly90 -+ZXN0LzEwMBCGDmh0dHA6Ly90ZXN0LzExMBCGDmh0dHA6Ly90ZXN0LzEyMBCGDmh0 -+dHA6Ly90ZXN0LzEzMBCGDmh0dHA6Ly90ZXN0LzE0MBCGDmh0dHA6Ly90ZXN0LzE1 -+MBCGDmh0dHA6Ly90ZXN0LzE2MBCGDmh0dHA6Ly90ZXN0LzE3MBCGDmh0dHA6Ly90 -+ZXN0LzE4MBCGDmh0dHA6Ly90ZXN0LzE5MBCGDmh0dHA6Ly90ZXN0LzIwMBCGDmh0 -+dHA6Ly90ZXN0LzIxMBCGDmh0dHA6Ly90ZXN0LzIyMBCGDmh0dHA6Ly90ZXN0LzIz -+MBCGDmh0dHA6Ly90ZXN0LzI0MBCGDmh0dHA6Ly90ZXN0LzI1MBCGDmh0dHA6Ly90 -+ZXN0LzI2MBCGDmh0dHA6Ly90ZXN0LzI3MBCGDmh0dHA6Ly90ZXN0LzI4MBCGDmh0 -+dHA6Ly90ZXN0LzI5MBCGDmh0dHA6Ly90ZXN0LzMwMBCGDmh0dHA6Ly90ZXN0LzMx -+MBCGDmh0dHA6Ly90ZXN0LzMyMBCGDmh0dHA6Ly90ZXN0LzMzMBCGDmh0dHA6Ly90 -+ZXN0LzM0MBCGDmh0dHA6Ly90ZXN0LzM1MBCGDmh0dHA6Ly90ZXN0LzM2MBCGDmh0 -+dHA6Ly90ZXN0LzM3MBCGDmh0dHA6Ly90ZXN0LzM4MBCGDmh0dHA6Ly90ZXN0LzM5 -+MBCGDmh0dHA6Ly90ZXN0LzQwMBCGDmh0dHA6Ly90ZXN0LzQxMBCGDmh0dHA6Ly90 -+ZXN0LzQyMBCGDmh0dHA6Ly90ZXN0LzQzMBCGDmh0dHA6Ly90ZXN0LzQ0MBCGDmh0 -+dHA6Ly90ZXN0LzQ1MBCGDmh0dHA6Ly90ZXN0LzQ2MBCGDmh0dHA6Ly90ZXN0LzQ3 -+MBCGDmh0dHA6Ly90ZXN0LzQ4MBCGDmh0dHA6Ly90ZXN0LzQ5MBCGDmh0dHA6Ly90 -+ZXN0LzUwMBCGDmh0dHA6Ly90ZXN0LzUxMBCGDmh0dHA6Ly90ZXN0LzUyMBCGDmh0 -+dHA6Ly90ZXN0LzUzMBCGDmh0dHA6Ly90ZXN0LzU0MBCGDmh0dHA6Ly90ZXN0LzU1 -+MBCGDmh0dHA6Ly90ZXN0LzU2MBCGDmh0dHA6Ly90ZXN0LzU3MBCGDmh0dHA6Ly90 -+ZXN0LzU4MBCGDmh0dHA6Ly90ZXN0LzU5MBCGDmh0dHA6Ly90ZXN0LzYwMBCGDmh0 -+dHA6Ly90ZXN0LzYxMBCGDmh0dHA6Ly90ZXN0LzYyMBCGDmh0dHA6Ly90ZXN0LzYz -+MBCGDmh0dHA6Ly90ZXN0LzY0MBCGDmh0dHA6Ly90ZXN0LzY1MBCGDmh0dHA6Ly90 -+ZXN0LzY2MBCGDmh0dHA6Ly90ZXN0LzY3MBCGDmh0dHA6Ly90ZXN0LzY4MBCGDmh0 -+dHA6Ly90ZXN0LzY5MBCGDmh0dHA6Ly90ZXN0LzcwMBCGDmh0dHA6Ly90ZXN0Lzcx -+MBCGDmh0dHA6Ly90ZXN0LzcyMBCGDmh0dHA6Ly90ZXN0LzczMBCGDmh0dHA6Ly90 -+ZXN0Lzc0MBCGDmh0dHA6Ly90ZXN0Lzc1MBCGDmh0dHA6Ly90ZXN0Lzc2MBCGDmh0 -+dHA6Ly90ZXN0Lzc3MBCGDmh0dHA6Ly90ZXN0Lzc4MBCGDmh0dHA6Ly90ZXN0Lzc5 -+MBCGDmh0dHA6Ly90ZXN0LzgwMBCGDmh0dHA6Ly90ZXN0LzgxMBCGDmh0dHA6Ly90 -+ZXN0LzgyMBCGDmh0dHA6Ly90ZXN0LzgzMBCGDmh0dHA6Ly90ZXN0Lzg0MBCGDmh0 -+dHA6Ly90ZXN0Lzg1MBCGDmh0dHA6Ly90ZXN0Lzg2MBCGDmh0dHA6Ly90ZXN0Lzg3 -+MBCGDmh0dHA6Ly90ZXN0Lzg4MBCGDmh0dHA6Ly90ZXN0Lzg5MBCGDmh0dHA6Ly90 -+ZXN0LzkwMBCGDmh0dHA6Ly90ZXN0LzkxMBCGDmh0dHA6Ly90ZXN0LzkyMBCGDmh0 -+dHA6Ly90ZXN0LzkzMBCGDmh0dHA6Ly90ZXN0Lzk0MBCGDmh0dHA6Ly90ZXN0Lzk1 -+MBCGDmh0dHA6Ly90ZXN0Lzk2MBCGDmh0dHA6Ly90ZXN0Lzk3MBCGDmh0dHA6Ly90 -+ZXN0Lzk4MBCGDmh0dHA6Ly90ZXN0Lzk5MBGGD2h0dHA6Ly90ZXN0LzEwMDARhg9o -+dHRwOi8vdGVzdC8xMDEwEYYPaHR0cDovL3Rlc3QvMTAyMBGGD2h0dHA6Ly90ZXN0 -+LzEwMzARhg9odHRwOi8vdGVzdC8xMDQwEYYPaHR0cDovL3Rlc3QvMTA1MBGGD2h0 -+dHA6Ly90ZXN0LzEwNjARhg9odHRwOi8vdGVzdC8xMDcwEYYPaHR0cDovL3Rlc3Qv -+MTA4MBGGD2h0dHA6Ly90ZXN0LzEwOTARhg9odHRwOi8vdGVzdC8xMTAwEYYPaHR0 -+cDovL3Rlc3QvMTExMBGGD2h0dHA6Ly90ZXN0LzExMjARhg9odHRwOi8vdGVzdC8x -+MTMwEYYPaHR0cDovL3Rlc3QvMTE0MBGGD2h0dHA6Ly90ZXN0LzExNTARhg9odHRw -+Oi8vdGVzdC8xMTYwEYYPaHR0cDovL3Rlc3QvMTE3MBGGD2h0dHA6Ly90ZXN0LzEx -+ODARhg9odHRwOi8vdGVzdC8xMTkwEYYPaHR0cDovL3Rlc3QvMTIwMBGGD2h0dHA6 -+Ly90ZXN0LzEyMTARhg9odHRwOi8vdGVzdC8xMjIwEYYPaHR0cDovL3Rlc3QvMTIz -+MBGGD2h0dHA6Ly90ZXN0LzEyNDARhg9odHRwOi8vdGVzdC8xMjUwEYYPaHR0cDov -+L3Rlc3QvMTI2MBGGD2h0dHA6Ly90ZXN0LzEyNzARhg9odHRwOi8vdGVzdC8xMjgw -+EYYPaHR0cDovL3Rlc3QvMTI5MBGGD2h0dHA6Ly90ZXN0LzEzMDARhg9odHRwOi8v -+dGVzdC8xMzEwEYYPaHR0cDovL3Rlc3QvMTMyMBGGD2h0dHA6Ly90ZXN0LzEzMzAR -+hg9odHRwOi8vdGVzdC8xMzQwEYYPaHR0cDovL3Rlc3QvMTM1MBGGD2h0dHA6Ly90 -+ZXN0LzEzNjARhg9odHRwOi8vdGVzdC8xMzcwEYYPaHR0cDovL3Rlc3QvMTM4MBGG -+D2h0dHA6Ly90ZXN0LzEzOTARhg9odHRwOi8vdGVzdC8xNDAwEYYPaHR0cDovL3Rl -+c3QvMTQxMBGGD2h0dHA6Ly90ZXN0LzE0MjARhg9odHRwOi8vdGVzdC8xNDMwEYYP -+aHR0cDovL3Rlc3QvMTQ0MBGGD2h0dHA6Ly90ZXN0LzE0NTARhg9odHRwOi8vdGVz -+dC8xNDYwEYYPaHR0cDovL3Rlc3QvMTQ3MBGGD2h0dHA6Ly90ZXN0LzE0ODARhg9o -+dHRwOi8vdGVzdC8xNDkwEYYPaHR0cDovL3Rlc3QvMTUwMBGGD2h0dHA6Ly90ZXN0 -+LzE1MTARhg9odHRwOi8vdGVzdC8xNTIwEYYPaHR0cDovL3Rlc3QvMTUzMBGGD2h0 -+dHA6Ly90ZXN0LzE1NDARhg9odHRwOi8vdGVzdC8xNTUwEYYPaHR0cDovL3Rlc3Qv -+MTU2MBGGD2h0dHA6Ly90ZXN0LzE1NzARhg9odHRwOi8vdGVzdC8xNTgwEYYPaHR0 -+cDovL3Rlc3QvMTU5MBGGD2h0dHA6Ly90ZXN0LzE2MDARhg9odHRwOi8vdGVzdC8x -+NjEwEYYPaHR0cDovL3Rlc3QvMTYyMBGGD2h0dHA6Ly90ZXN0LzE2MzARhg9odHRw -+Oi8vdGVzdC8xNjQwEYYPaHR0cDovL3Rlc3QvMTY1MBGGD2h0dHA6Ly90ZXN0LzE2 -+NjARhg9odHRwOi8vdGVzdC8xNjcwEYYPaHR0cDovL3Rlc3QvMTY4MBGGD2h0dHA6 -+Ly90ZXN0LzE2OTARhg9odHRwOi8vdGVzdC8xNzAwEYYPaHR0cDovL3Rlc3QvMTcx -+MBGGD2h0dHA6Ly90ZXN0LzE3MjARhg9odHRwOi8vdGVzdC8xNzMwEYYPaHR0cDov -+L3Rlc3QvMTc0MBGGD2h0dHA6Ly90ZXN0LzE3NTARhg9odHRwOi8vdGVzdC8xNzYw -+EYYPaHR0cDovL3Rlc3QvMTc3MBGGD2h0dHA6Ly90ZXN0LzE3ODARhg9odHRwOi8v -+dGVzdC8xNzkwEYYPaHR0cDovL3Rlc3QvMTgwMBGGD2h0dHA6Ly90ZXN0LzE4MTAR -+hg9odHRwOi8vdGVzdC8xODIwEYYPaHR0cDovL3Rlc3QvMTgzMBGGD2h0dHA6Ly90 -+ZXN0LzE4NDARhg9odHRwOi8vdGVzdC8xODUwEYYPaHR0cDovL3Rlc3QvMTg2MBGG -+D2h0dHA6Ly90ZXN0LzE4NzARhg9odHRwOi8vdGVzdC8xODgwEYYPaHR0cDovL3Rl -+c3QvMTg5MBGGD2h0dHA6Ly90ZXN0LzE5MDARhg9odHRwOi8vdGVzdC8xOTEwEYYP -+aHR0cDovL3Rlc3QvMTkyMBGGD2h0dHA6Ly90ZXN0LzE5MzARhg9odHRwOi8vdGVz -+dC8xOTQwEYYPaHR0cDovL3Rlc3QvMTk1MBGGD2h0dHA6Ly90ZXN0LzE5NjARhg9o -+dHRwOi8vdGVzdC8xOTcwEYYPaHR0cDovL3Rlc3QvMTk4MBGGD2h0dHA6Ly90ZXN0 -+LzE5OTARhg9odHRwOi8vdGVzdC8yMDAwEYYPaHR0cDovL3Rlc3QvMjAxMBGGD2h0 -+dHA6Ly90ZXN0LzIwMjARhg9odHRwOi8vdGVzdC8yMDMwEYYPaHR0cDovL3Rlc3Qv -+MjA0MBGGD2h0dHA6Ly90ZXN0LzIwNTARhg9odHRwOi8vdGVzdC8yMDYwEYYPaHR0 -+cDovL3Rlc3QvMjA3MBGGD2h0dHA6Ly90ZXN0LzIwODARhg9odHRwOi8vdGVzdC8y -+MDkwEYYPaHR0cDovL3Rlc3QvMjEwMBGGD2h0dHA6Ly90ZXN0LzIxMTARhg9odHRw -+Oi8vdGVzdC8yMTIwEYYPaHR0cDovL3Rlc3QvMjEzMBGGD2h0dHA6Ly90ZXN0LzIx -+NDARhg9odHRwOi8vdGVzdC8yMTUwEYYPaHR0cDovL3Rlc3QvMjE2MBGGD2h0dHA6 -+Ly90ZXN0LzIxNzARhg9odHRwOi8vdGVzdC8yMTgwEYYPaHR0cDovL3Rlc3QvMjE5 -+MBGGD2h0dHA6Ly90ZXN0LzIyMDARhg9odHRwOi8vdGVzdC8yMjEwEYYPaHR0cDov -+L3Rlc3QvMjIyMBGGD2h0dHA6Ly90ZXN0LzIyMzARhg9odHRwOi8vdGVzdC8yMjQw -+EYYPaHR0cDovL3Rlc3QvMjI1MBGGD2h0dHA6Ly90ZXN0LzIyNjARhg9odHRwOi8v -+dGVzdC8yMjcwEYYPaHR0cDovL3Rlc3QvMjI4MBGGD2h0dHA6Ly90ZXN0LzIyOTAR -+hg9odHRwOi8vdGVzdC8yMzAwEYYPaHR0cDovL3Rlc3QvMjMxMBGGD2h0dHA6Ly90 -+ZXN0LzIzMjARhg9odHRwOi8vdGVzdC8yMzMwEYYPaHR0cDovL3Rlc3QvMjM0MBGG -+D2h0dHA6Ly90ZXN0LzIzNTARhg9odHRwOi8vdGVzdC8yMzYwEYYPaHR0cDovL3Rl -+c3QvMjM3MBGGD2h0dHA6Ly90ZXN0LzIzODARhg9odHRwOi8vdGVzdC8yMzkwEYYP -+aHR0cDovL3Rlc3QvMjQwMBGGD2h0dHA6Ly90ZXN0LzI0MTARhg9odHRwOi8vdGVz -+dC8yNDIwEYYPaHR0cDovL3Rlc3QvMjQzMBGGD2h0dHA6Ly90ZXN0LzI0NDARhg9o -+dHRwOi8vdGVzdC8yNDUwEYYPaHR0cDovL3Rlc3QvMjQ2MBGGD2h0dHA6Ly90ZXN0 -+LzI0NzARhg9odHRwOi8vdGVzdC8yNDgwEYYPaHR0cDovL3Rlc3QvMjQ5MBGGD2h0 -+dHA6Ly90ZXN0LzI1MDARhg9odHRwOi8vdGVzdC8yNTEwEYYPaHR0cDovL3Rlc3Qv -+MjUyMBGGD2h0dHA6Ly90ZXN0LzI1MzARhg9odHRwOi8vdGVzdC8yNTQwEYYPaHR0 -+cDovL3Rlc3QvMjU1MBGGD2h0dHA6Ly90ZXN0LzI1NjARhg9odHRwOi8vdGVzdC8y -+NTcwEYYPaHR0cDovL3Rlc3QvMjU4MBGGD2h0dHA6Ly90ZXN0LzI1OTARhg9odHRw -+Oi8vdGVzdC8yNjAwEYYPaHR0cDovL3Rlc3QvMjYxMBGGD2h0dHA6Ly90ZXN0LzI2 -+MjARhg9odHRwOi8vdGVzdC8yNjMwEYYPaHR0cDovL3Rlc3QvMjY0MBGGD2h0dHA6 -+Ly90ZXN0LzI2NTARhg9odHRwOi8vdGVzdC8yNjYwEYYPaHR0cDovL3Rlc3QvMjY3 -+MBGGD2h0dHA6Ly90ZXN0LzI2ODARhg9odHRwOi8vdGVzdC8yNjkwEYYPaHR0cDov -+L3Rlc3QvMjcwMBGGD2h0dHA6Ly90ZXN0LzI3MTARhg9odHRwOi8vdGVzdC8yNzIw -+EYYPaHR0cDovL3Rlc3QvMjczMBGGD2h0dHA6Ly90ZXN0LzI3NDARhg9odHRwOi8v -+dGVzdC8yNzUwEYYPaHR0cDovL3Rlc3QvMjc2MBGGD2h0dHA6Ly90ZXN0LzI3NzAR -+hg9odHRwOi8vdGVzdC8yNzgwEYYPaHR0cDovL3Rlc3QvMjc5MBGGD2h0dHA6Ly90 -+ZXN0LzI4MDARhg9odHRwOi8vdGVzdC8yODEwEYYPaHR0cDovL3Rlc3QvMjgyMBGG -+D2h0dHA6Ly90ZXN0LzI4MzARhg9odHRwOi8vdGVzdC8yODQwEYYPaHR0cDovL3Rl -+c3QvMjg1MBGGD2h0dHA6Ly90ZXN0LzI4NjARhg9odHRwOi8vdGVzdC8yODcwEYYP -+aHR0cDovL3Rlc3QvMjg4MBGGD2h0dHA6Ly90ZXN0LzI4OTARhg9odHRwOi8vdGVz -+dC8yOTAwEYYPaHR0cDovL3Rlc3QvMjkxMBGGD2h0dHA6Ly90ZXN0LzI5MjARhg9o -+dHRwOi8vdGVzdC8yOTMwEYYPaHR0cDovL3Rlc3QvMjk0MBGGD2h0dHA6Ly90ZXN0 -+LzI5NTARhg9odHRwOi8vdGVzdC8yOTYwEYYPaHR0cDovL3Rlc3QvMjk3MBGGD2h0 -+dHA6Ly90ZXN0LzI5ODARhg9odHRwOi8vdGVzdC8yOTkwEYYPaHR0cDovL3Rlc3Qv -+MzAwMBGGD2h0dHA6Ly90ZXN0LzMwMTARhg9odHRwOi8vdGVzdC8zMDIwEYYPaHR0 -+cDovL3Rlc3QvMzAzMBGGD2h0dHA6Ly90ZXN0LzMwNDARhg9odHRwOi8vdGVzdC8z -+MDUwEYYPaHR0cDovL3Rlc3QvMzA2MBGGD2h0dHA6Ly90ZXN0LzMwNzARhg9odHRw -+Oi8vdGVzdC8zMDgwEYYPaHR0cDovL3Rlc3QvMzA5MBGGD2h0dHA6Ly90ZXN0LzMx -+MDARhg9odHRwOi8vdGVzdC8zMTEwEYYPaHR0cDovL3Rlc3QvMzEyMBGGD2h0dHA6 -+Ly90ZXN0LzMxMzARhg9odHRwOi8vdGVzdC8zMTQwEYYPaHR0cDovL3Rlc3QvMzE1 -+MBGGD2h0dHA6Ly90ZXN0LzMxNjARhg9odHRwOi8vdGVzdC8zMTcwEYYPaHR0cDov -+L3Rlc3QvMzE4MBGGD2h0dHA6Ly90ZXN0LzMxOTARhg9odHRwOi8vdGVzdC8zMjAw -+EYYPaHR0cDovL3Rlc3QvMzIxMBGGD2h0dHA6Ly90ZXN0LzMyMjARhg9odHRwOi8v -+dGVzdC8zMjMwEYYPaHR0cDovL3Rlc3QvMzI0MBGGD2h0dHA6Ly90ZXN0LzMyNTAR -+hg9odHRwOi8vdGVzdC8zMjYwEYYPaHR0cDovL3Rlc3QvMzI3MBGGD2h0dHA6Ly90 -+ZXN0LzMyODARhg9odHRwOi8vdGVzdC8zMjkwEYYPaHR0cDovL3Rlc3QvMzMwMBGG -+D2h0dHA6Ly90ZXN0LzMzMTARhg9odHRwOi8vdGVzdC8zMzIwEYYPaHR0cDovL3Rl -+c3QvMzMzMBGGD2h0dHA6Ly90ZXN0LzMzNDARhg9odHRwOi8vdGVzdC8zMzUwEYYP -+aHR0cDovL3Rlc3QvMzM2MBGGD2h0dHA6Ly90ZXN0LzMzNzARhg9odHRwOi8vdGVz -+dC8zMzgwEYYPaHR0cDovL3Rlc3QvMzM5MBGGD2h0dHA6Ly90ZXN0LzM0MDARhg9o -+dHRwOi8vdGVzdC8zNDEwEYYPaHR0cDovL3Rlc3QvMzQyMBGGD2h0dHA6Ly90ZXN0 -+LzM0MzARhg9odHRwOi8vdGVzdC8zNDQwEYYPaHR0cDovL3Rlc3QvMzQ1MBGGD2h0 -+dHA6Ly90ZXN0LzM0NjARhg9odHRwOi8vdGVzdC8zNDcwEYYPaHR0cDovL3Rlc3Qv -+MzQ4MBGGD2h0dHA6Ly90ZXN0LzM0OTARhg9odHRwOi8vdGVzdC8zNTAwEYYPaHR0 -+cDovL3Rlc3QvMzUxMBGGD2h0dHA6Ly90ZXN0LzM1MjARhg9odHRwOi8vdGVzdC8z -+NTMwEYYPaHR0cDovL3Rlc3QvMzU0MBGGD2h0dHA6Ly90ZXN0LzM1NTARhg9odHRw -+Oi8vdGVzdC8zNTYwEYYPaHR0cDovL3Rlc3QvMzU3MBGGD2h0dHA6Ly90ZXN0LzM1 -+ODARhg9odHRwOi8vdGVzdC8zNTkwEYYPaHR0cDovL3Rlc3QvMzYwMBGGD2h0dHA6 -+Ly90ZXN0LzM2MTARhg9odHRwOi8vdGVzdC8zNjIwEYYPaHR0cDovL3Rlc3QvMzYz -+MBGGD2h0dHA6Ly90ZXN0LzM2NDARhg9odHRwOi8vdGVzdC8zNjUwEYYPaHR0cDov -+L3Rlc3QvMzY2MBGGD2h0dHA6Ly90ZXN0LzM2NzARhg9odHRwOi8vdGVzdC8zNjgw -+EYYPaHR0cDovL3Rlc3QvMzY5MBGGD2h0dHA6Ly90ZXN0LzM3MDARhg9odHRwOi8v -+dGVzdC8zNzEwEYYPaHR0cDovL3Rlc3QvMzcyMBGGD2h0dHA6Ly90ZXN0LzM3MzAR -+hg9odHRwOi8vdGVzdC8zNzQwEYYPaHR0cDovL3Rlc3QvMzc1MBGGD2h0dHA6Ly90 -+ZXN0LzM3NjARhg9odHRwOi8vdGVzdC8zNzcwEYYPaHR0cDovL3Rlc3QvMzc4MBGG -+D2h0dHA6Ly90ZXN0LzM3OTARhg9odHRwOi8vdGVzdC8zODAwEYYPaHR0cDovL3Rl -+c3QvMzgxMBGGD2h0dHA6Ly90ZXN0LzM4MjARhg9odHRwOi8vdGVzdC8zODMwEYYP -+aHR0cDovL3Rlc3QvMzg0MBGGD2h0dHA6Ly90ZXN0LzM4NTARhg9odHRwOi8vdGVz -+dC8zODYwEYYPaHR0cDovL3Rlc3QvMzg3MBGGD2h0dHA6Ly90ZXN0LzM4ODARhg9o -+dHRwOi8vdGVzdC8zODkwEYYPaHR0cDovL3Rlc3QvMzkwMBGGD2h0dHA6Ly90ZXN0 -+LzM5MTARhg9odHRwOi8vdGVzdC8zOTIwEYYPaHR0cDovL3Rlc3QvMzkzMBGGD2h0 -+dHA6Ly90ZXN0LzM5NDARhg9odHRwOi8vdGVzdC8zOTUwEYYPaHR0cDovL3Rlc3Qv -+Mzk2MBGGD2h0dHA6Ly90ZXN0LzM5NzARhg9odHRwOi8vdGVzdC8zOTgwEYYPaHR0 -+cDovL3Rlc3QvMzk5MBGGD2h0dHA6Ly90ZXN0LzQwMDARhg9odHRwOi8vdGVzdC80 -+MDEwEYYPaHR0cDovL3Rlc3QvNDAyMBGGD2h0dHA6Ly90ZXN0LzQwMzARhg9odHRw -+Oi8vdGVzdC80MDQwEYYPaHR0cDovL3Rlc3QvNDA1MBGGD2h0dHA6Ly90ZXN0LzQw -+NjARhg9odHRwOi8vdGVzdC80MDcwEYYPaHR0cDovL3Rlc3QvNDA4MBGGD2h0dHA6 -+Ly90ZXN0LzQwOTARhg9odHRwOi8vdGVzdC80MTAwEYYPaHR0cDovL3Rlc3QvNDEx -+MBGGD2h0dHA6Ly90ZXN0LzQxMjARhg9odHRwOi8vdGVzdC80MTMwEYYPaHR0cDov -+L3Rlc3QvNDE0MBGGD2h0dHA6Ly90ZXN0LzQxNTARhg9odHRwOi8vdGVzdC80MTYw -+EYYPaHR0cDovL3Rlc3QvNDE3MBGGD2h0dHA6Ly90ZXN0LzQxODARhg9odHRwOi8v -+dGVzdC80MTkwEYYPaHR0cDovL3Rlc3QvNDIwMBGGD2h0dHA6Ly90ZXN0LzQyMTAR -+hg9odHRwOi8vdGVzdC80MjIwEYYPaHR0cDovL3Rlc3QvNDIzMBGGD2h0dHA6Ly90 -+ZXN0LzQyNDARhg9odHRwOi8vdGVzdC80MjUwEYYPaHR0cDovL3Rlc3QvNDI2MBGG -+D2h0dHA6Ly90ZXN0LzQyNzARhg9odHRwOi8vdGVzdC80MjgwEYYPaHR0cDovL3Rl -+c3QvNDI5MBGGD2h0dHA6Ly90ZXN0LzQzMDARhg9odHRwOi8vdGVzdC80MzEwEYYP -+aHR0cDovL3Rlc3QvNDMyMBGGD2h0dHA6Ly90ZXN0LzQzMzARhg9odHRwOi8vdGVz -+dC80MzQwEYYPaHR0cDovL3Rlc3QvNDM1MBGGD2h0dHA6Ly90ZXN0LzQzNjARhg9o -+dHRwOi8vdGVzdC80MzcwEYYPaHR0cDovL3Rlc3QvNDM4MBGGD2h0dHA6Ly90ZXN0 -+LzQzOTARhg9odHRwOi8vdGVzdC80NDAwEYYPaHR0cDovL3Rlc3QvNDQxMBGGD2h0 -+dHA6Ly90ZXN0LzQ0MjARhg9odHRwOi8vdGVzdC80NDMwEYYPaHR0cDovL3Rlc3Qv -+NDQ0MBGGD2h0dHA6Ly90ZXN0LzQ0NTARhg9odHRwOi8vdGVzdC80NDYwEYYPaHR0 -+cDovL3Rlc3QvNDQ3MBGGD2h0dHA6Ly90ZXN0LzQ0ODARhg9odHRwOi8vdGVzdC80 -+NDkwEYYPaHR0cDovL3Rlc3QvNDUwMBGGD2h0dHA6Ly90ZXN0LzQ1MTARhg9odHRw -+Oi8vdGVzdC80NTIwEYYPaHR0cDovL3Rlc3QvNDUzMBGGD2h0dHA6Ly90ZXN0LzQ1 -+NDARhg9odHRwOi8vdGVzdC80NTUwEYYPaHR0cDovL3Rlc3QvNDU2MBGGD2h0dHA6 -+Ly90ZXN0LzQ1NzARhg9odHRwOi8vdGVzdC80NTgwEYYPaHR0cDovL3Rlc3QvNDU5 -+MBGGD2h0dHA6Ly90ZXN0LzQ2MDARhg9odHRwOi8vdGVzdC80NjEwEYYPaHR0cDov -+L3Rlc3QvNDYyMBGGD2h0dHA6Ly90ZXN0LzQ2MzARhg9odHRwOi8vdGVzdC80NjQw -+EYYPaHR0cDovL3Rlc3QvNDY1MBGGD2h0dHA6Ly90ZXN0LzQ2NjARhg9odHRwOi8v -+dGVzdC80NjcwEYYPaHR0cDovL3Rlc3QvNDY4MBGGD2h0dHA6Ly90ZXN0LzQ2OTAR -+hg9odHRwOi8vdGVzdC80NzAwEYYPaHR0cDovL3Rlc3QvNDcxMBGGD2h0dHA6Ly90 -+ZXN0LzQ3MjARhg9odHRwOi8vdGVzdC80NzMwEYYPaHR0cDovL3Rlc3QvNDc0MBGG -+D2h0dHA6Ly90ZXN0LzQ3NTARhg9odHRwOi8vdGVzdC80NzYwEYYPaHR0cDovL3Rl -+c3QvNDc3MBGGD2h0dHA6Ly90ZXN0LzQ3ODARhg9odHRwOi8vdGVzdC80NzkwEYYP -+aHR0cDovL3Rlc3QvNDgwMBGGD2h0dHA6Ly90ZXN0LzQ4MTARhg9odHRwOi8vdGVz -+dC80ODIwEYYPaHR0cDovL3Rlc3QvNDgzMBGGD2h0dHA6Ly90ZXN0LzQ4NDARhg9o -+dHRwOi8vdGVzdC80ODUwEYYPaHR0cDovL3Rlc3QvNDg2MBGGD2h0dHA6Ly90ZXN0 -+LzQ4NzARhg9odHRwOi8vdGVzdC80ODgwEYYPaHR0cDovL3Rlc3QvNDg5MBGGD2h0 -+dHA6Ly90ZXN0LzQ5MDARhg9odHRwOi8vdGVzdC80OTEwEYYPaHR0cDovL3Rlc3Qv -+NDkyMBGGD2h0dHA6Ly90ZXN0LzQ5MzARhg9odHRwOi8vdGVzdC80OTQwEYYPaHR0 -+cDovL3Rlc3QvNDk1MBGGD2h0dHA6Ly90ZXN0LzQ5NjARhg9odHRwOi8vdGVzdC80 -+OTcwEYYPaHR0cDovL3Rlc3QvNDk4MBGGD2h0dHA6Ly90ZXN0LzQ5OTARhg9odHRw -+Oi8vdGVzdC81MDAwEYYPaHR0cDovL3Rlc3QvNTAxMBGGD2h0dHA6Ly90ZXN0LzUw -+MjARhg9odHRwOi8vdGVzdC81MDMwEYYPaHR0cDovL3Rlc3QvNTA0MBGGD2h0dHA6 -+Ly90ZXN0LzUwNTARhg9odHRwOi8vdGVzdC81MDYwEYYPaHR0cDovL3Rlc3QvNTA3 -+MBGGD2h0dHA6Ly90ZXN0LzUwODARhg9odHRwOi8vdGVzdC81MDkwEYYPaHR0cDov -+L3Rlc3QvNTEwMBGGD2h0dHA6Ly90ZXN0LzUxMTARhg9odHRwOi8vdGVzdC81MTIw -+EYYPaHR0cDovL3Rlc3QvNTEzMBGGD2h0dHA6Ly90ZXN0LzUxNDARhg9odHRwOi8v -+dGVzdC81MTUwEYYPaHR0cDovL3Rlc3QvNTE2MBGGD2h0dHA6Ly90ZXN0LzUxNzAR -+hg9odHRwOi8vdGVzdC81MTgwEYYPaHR0cDovL3Rlc3QvNTE5MBGGD2h0dHA6Ly90 -+ZXN0LzUyMDARhg9odHRwOi8vdGVzdC81MjEwEYYPaHR0cDovL3Rlc3QvNTIyMBGG -+D2h0dHA6Ly90ZXN0LzUyMzARhg9odHRwOi8vdGVzdC81MjQwEYYPaHR0cDovL3Rl -+c3QvNTI1MBGGD2h0dHA6Ly90ZXN0LzUyNjARhg9odHRwOi8vdGVzdC81MjcwEYYP -+aHR0cDovL3Rlc3QvNTI4MBGGD2h0dHA6Ly90ZXN0LzUyOTARhg9odHRwOi8vdGVz -+dC81MzAwEYYPaHR0cDovL3Rlc3QvNTMxMBGGD2h0dHA6Ly90ZXN0LzUzMjARhg9o -+dHRwOi8vdGVzdC81MzMwEYYPaHR0cDovL3Rlc3QvNTM0MBGGD2h0dHA6Ly90ZXN0 -+LzUzNTARhg9odHRwOi8vdGVzdC81MzYwEYYPaHR0cDovL3Rlc3QvNTM3MBGGD2h0 -+dHA6Ly90ZXN0LzUzODARhg9odHRwOi8vdGVzdC81MzkwEYYPaHR0cDovL3Rlc3Qv -+NTQwMBGGD2h0dHA6Ly90ZXN0LzU0MTARhg9odHRwOi8vdGVzdC81NDIwEYYPaHR0 -+cDovL3Rlc3QvNTQzMBGGD2h0dHA6Ly90ZXN0LzU0NDARhg9odHRwOi8vdGVzdC81 -+NDUwEYYPaHR0cDovL3Rlc3QvNTQ2MBGGD2h0dHA6Ly90ZXN0LzU0NzARhg9odHRw -+Oi8vdGVzdC81NDgwEYYPaHR0cDovL3Rlc3QvNTQ5MBGGD2h0dHA6Ly90ZXN0LzU1 -+MDARhg9odHRwOi8vdGVzdC81NTEwEYYPaHR0cDovL3Rlc3QvNTUyMBGGD2h0dHA6 -+Ly90ZXN0LzU1MzARhg9odHRwOi8vdGVzdC81NTQwEYYPaHR0cDovL3Rlc3QvNTU1 -+MBGGD2h0dHA6Ly90ZXN0LzU1NjARhg9odHRwOi8vdGVzdC81NTcwEYYPaHR0cDov -+L3Rlc3QvNTU4MBGGD2h0dHA6Ly90ZXN0LzU1OTARhg9odHRwOi8vdGVzdC81NjAw -+EYYPaHR0cDovL3Rlc3QvNTYxMBGGD2h0dHA6Ly90ZXN0LzU2MjARhg9odHRwOi8v -+dGVzdC81NjMwEYYPaHR0cDovL3Rlc3QvNTY0MBGGD2h0dHA6Ly90ZXN0LzU2NTAR -+hg9odHRwOi8vdGVzdC81NjYwEYYPaHR0cDovL3Rlc3QvNTY3MBGGD2h0dHA6Ly90 -+ZXN0LzU2ODARhg9odHRwOi8vdGVzdC81NjkwEYYPaHR0cDovL3Rlc3QvNTcwMBGG -+D2h0dHA6Ly90ZXN0LzU3MTARhg9odHRwOi8vdGVzdC81NzIwEYYPaHR0cDovL3Rl -+c3QvNTczMBGGD2h0dHA6Ly90ZXN0LzU3NDARhg9odHRwOi8vdGVzdC81NzUwEYYP -+aHR0cDovL3Rlc3QvNTc2MBGGD2h0dHA6Ly90ZXN0LzU3NzARhg9odHRwOi8vdGVz -+dC81NzgwEYYPaHR0cDovL3Rlc3QvNTc5MBGGD2h0dHA6Ly90ZXN0LzU4MDARhg9o -+dHRwOi8vdGVzdC81ODEwEYYPaHR0cDovL3Rlc3QvNTgyMBGGD2h0dHA6Ly90ZXN0 -+LzU4MzARhg9odHRwOi8vdGVzdC81ODQwEYYPaHR0cDovL3Rlc3QvNTg1MBGGD2h0 -+dHA6Ly90ZXN0LzU4NjARhg9odHRwOi8vdGVzdC81ODcwEYYPaHR0cDovL3Rlc3Qv -+NTg4MBGGD2h0dHA6Ly90ZXN0LzU4OTARhg9odHRwOi8vdGVzdC81OTAwEYYPaHR0 -+cDovL3Rlc3QvNTkxMBGGD2h0dHA6Ly90ZXN0LzU5MjARhg9odHRwOi8vdGVzdC81 -+OTMwEYYPaHR0cDovL3Rlc3QvNTk0MBGGD2h0dHA6Ly90ZXN0LzU5NTARhg9odHRw -+Oi8vdGVzdC81OTYwEYYPaHR0cDovL3Rlc3QvNTk3MBGGD2h0dHA6Ly90ZXN0LzU5 -+ODARhg9odHRwOi8vdGVzdC81OTkwEYYPaHR0cDovL3Rlc3QvNjAwMBGGD2h0dHA6 -+Ly90ZXN0LzYwMTARhg9odHRwOi8vdGVzdC82MDIwEYYPaHR0cDovL3Rlc3QvNjAz -+MBGGD2h0dHA6Ly90ZXN0LzYwNDARhg9odHRwOi8vdGVzdC82MDUwEYYPaHR0cDov -+L3Rlc3QvNjA2MBGGD2h0dHA6Ly90ZXN0LzYwNzARhg9odHRwOi8vdGVzdC82MDgw -+EYYPaHR0cDovL3Rlc3QvNjA5MBGGD2h0dHA6Ly90ZXN0LzYxMDARhg9odHRwOi8v -+dGVzdC82MTEwEYYPaHR0cDovL3Rlc3QvNjEyMBGGD2h0dHA6Ly90ZXN0LzYxMzAR -+hg9odHRwOi8vdGVzdC82MTQwEYYPaHR0cDovL3Rlc3QvNjE1MBGGD2h0dHA6Ly90 -+ZXN0LzYxNjARhg9odHRwOi8vdGVzdC82MTcwEYYPaHR0cDovL3Rlc3QvNjE4MBGG -+D2h0dHA6Ly90ZXN0LzYxOTARhg9odHRwOi8vdGVzdC82MjAwEYYPaHR0cDovL3Rl -+c3QvNjIxMBGGD2h0dHA6Ly90ZXN0LzYyMjARhg9odHRwOi8vdGVzdC82MjMwEYYP -+aHR0cDovL3Rlc3QvNjI0MBGGD2h0dHA6Ly90ZXN0LzYyNTARhg9odHRwOi8vdGVz -+dC82MjYwEYYPaHR0cDovL3Rlc3QvNjI3MBGGD2h0dHA6Ly90ZXN0LzYyODARhg9o -+dHRwOi8vdGVzdC82MjkwEYYPaHR0cDovL3Rlc3QvNjMwMBGGD2h0dHA6Ly90ZXN0 -+LzYzMTARhg9odHRwOi8vdGVzdC82MzIwEYYPaHR0cDovL3Rlc3QvNjMzMBGGD2h0 -+dHA6Ly90ZXN0LzYzNDARhg9odHRwOi8vdGVzdC82MzUwEYYPaHR0cDovL3Rlc3Qv -+NjM2MBGGD2h0dHA6Ly90ZXN0LzYzNzARhg9odHRwOi8vdGVzdC82MzgwEYYPaHR0 -+cDovL3Rlc3QvNjM5MBGGD2h0dHA6Ly90ZXN0LzY0MDARhg9odHRwOi8vdGVzdC82 -+NDEwEYYPaHR0cDovL3Rlc3QvNjQyMBGGD2h0dHA6Ly90ZXN0LzY0MzARhg9odHRw -+Oi8vdGVzdC82NDQwEYYPaHR0cDovL3Rlc3QvNjQ1MBGGD2h0dHA6Ly90ZXN0LzY0 -+NjARhg9odHRwOi8vdGVzdC82NDcwEYYPaHR0cDovL3Rlc3QvNjQ4MBGGD2h0dHA6 -+Ly90ZXN0LzY0OTARhg9odHRwOi8vdGVzdC82NTAwEYYPaHR0cDovL3Rlc3QvNjUx -+MBGGD2h0dHA6Ly90ZXN0LzY1MjARhg9odHRwOi8vdGVzdC82NTMwEYYPaHR0cDov -+L3Rlc3QvNjU0MBGGD2h0dHA6Ly90ZXN0LzY1NTARhg9odHRwOi8vdGVzdC82NTYw -+EYYPaHR0cDovL3Rlc3QvNjU3MBGGD2h0dHA6Ly90ZXN0LzY1ODARhg9odHRwOi8v -+dGVzdC82NTkwEYYPaHR0cDovL3Rlc3QvNjYwMBGGD2h0dHA6Ly90ZXN0LzY2MTAR -+hg9odHRwOi8vdGVzdC82NjIwEYYPaHR0cDovL3Rlc3QvNjYzMBGGD2h0dHA6Ly90 -+ZXN0LzY2NDARhg9odHRwOi8vdGVzdC82NjUwEYYPaHR0cDovL3Rlc3QvNjY2MBGG -+D2h0dHA6Ly90ZXN0LzY2NzARhg9odHRwOi8vdGVzdC82NjgwEYYPaHR0cDovL3Rl -+c3QvNjY5MBGGD2h0dHA6Ly90ZXN0LzY3MDARhg9odHRwOi8vdGVzdC82NzEwEYYP -+aHR0cDovL3Rlc3QvNjcyMBGGD2h0dHA6Ly90ZXN0LzY3MzARhg9odHRwOi8vdGVz -+dC82NzQwEYYPaHR0cDovL3Rlc3QvNjc1MBGGD2h0dHA6Ly90ZXN0LzY3NjARhg9o -+dHRwOi8vdGVzdC82NzcwEYYPaHR0cDovL3Rlc3QvNjc4MBGGD2h0dHA6Ly90ZXN0 -+LzY3OTARhg9odHRwOi8vdGVzdC82ODAwEYYPaHR0cDovL3Rlc3QvNjgxMBGGD2h0 -+dHA6Ly90ZXN0LzY4MjARhg9odHRwOi8vdGVzdC82ODMwEYYPaHR0cDovL3Rlc3Qv -+Njg0MBGGD2h0dHA6Ly90ZXN0LzY4NTARhg9odHRwOi8vdGVzdC82ODYwEYYPaHR0 -+cDovL3Rlc3QvNjg3MBGGD2h0dHA6Ly90ZXN0LzY4ODARhg9odHRwOi8vdGVzdC82 -+ODkwEYYPaHR0cDovL3Rlc3QvNjkwMBGGD2h0dHA6Ly90ZXN0LzY5MTARhg9odHRw -+Oi8vdGVzdC82OTIwEYYPaHR0cDovL3Rlc3QvNjkzMBGGD2h0dHA6Ly90ZXN0LzY5 -+NDARhg9odHRwOi8vdGVzdC82OTUwEYYPaHR0cDovL3Rlc3QvNjk2MBGGD2h0dHA6 -+Ly90ZXN0LzY5NzARhg9odHRwOi8vdGVzdC82OTgwEYYPaHR0cDovL3Rlc3QvNjk5 -+MBGGD2h0dHA6Ly90ZXN0LzcwMDARhg9odHRwOi8vdGVzdC83MDEwEYYPaHR0cDov -+L3Rlc3QvNzAyMBGGD2h0dHA6Ly90ZXN0LzcwMzARhg9odHRwOi8vdGVzdC83MDQw -+EYYPaHR0cDovL3Rlc3QvNzA1MBGGD2h0dHA6Ly90ZXN0LzcwNjARhg9odHRwOi8v -+dGVzdC83MDcwEYYPaHR0cDovL3Rlc3QvNzA4MBGGD2h0dHA6Ly90ZXN0LzcwOTAR -+hg9odHRwOi8vdGVzdC83MTAwEYYPaHR0cDovL3Rlc3QvNzExMBGGD2h0dHA6Ly90 -+ZXN0LzcxMjARhg9odHRwOi8vdGVzdC83MTMwEYYPaHR0cDovL3Rlc3QvNzE0MBGG -+D2h0dHA6Ly90ZXN0LzcxNTARhg9odHRwOi8vdGVzdC83MTYwEYYPaHR0cDovL3Rl -+c3QvNzE3MBGGD2h0dHA6Ly90ZXN0LzcxODARhg9odHRwOi8vdGVzdC83MTkwEYYP -+aHR0cDovL3Rlc3QvNzIwMBGGD2h0dHA6Ly90ZXN0LzcyMTARhg9odHRwOi8vdGVz -+dC83MjIwEYYPaHR0cDovL3Rlc3QvNzIzMBGGD2h0dHA6Ly90ZXN0LzcyNDARhg9o -+dHRwOi8vdGVzdC83MjUwEYYPaHR0cDovL3Rlc3QvNzI2MBGGD2h0dHA6Ly90ZXN0 -+LzcyNzARhg9odHRwOi8vdGVzdC83MjgwEYYPaHR0cDovL3Rlc3QvNzI5MBGGD2h0 -+dHA6Ly90ZXN0LzczMDARhg9odHRwOi8vdGVzdC83MzEwEYYPaHR0cDovL3Rlc3Qv -+NzMyMBGGD2h0dHA6Ly90ZXN0LzczMzARhg9odHRwOi8vdGVzdC83MzQwEYYPaHR0 -+cDovL3Rlc3QvNzM1MBGGD2h0dHA6Ly90ZXN0LzczNjARhg9odHRwOi8vdGVzdC83 -+MzcwEYYPaHR0cDovL3Rlc3QvNzM4MBGGD2h0dHA6Ly90ZXN0LzczOTARhg9odHRw -+Oi8vdGVzdC83NDAwEYYPaHR0cDovL3Rlc3QvNzQxMBGGD2h0dHA6Ly90ZXN0Lzc0 -+MjARhg9odHRwOi8vdGVzdC83NDMwEYYPaHR0cDovL3Rlc3QvNzQ0MBGGD2h0dHA6 -+Ly90ZXN0Lzc0NTARhg9odHRwOi8vdGVzdC83NDYwEYYPaHR0cDovL3Rlc3QvNzQ3 -+MBGGD2h0dHA6Ly90ZXN0Lzc0ODARhg9odHRwOi8vdGVzdC83NDkwEYYPaHR0cDov -+L3Rlc3QvNzUwMBGGD2h0dHA6Ly90ZXN0Lzc1MTARhg9odHRwOi8vdGVzdC83NTIw -+EYYPaHR0cDovL3Rlc3QvNzUzMBGGD2h0dHA6Ly90ZXN0Lzc1NDARhg9odHRwOi8v -+dGVzdC83NTUwEYYPaHR0cDovL3Rlc3QvNzU2MBGGD2h0dHA6Ly90ZXN0Lzc1NzAR -+hg9odHRwOi8vdGVzdC83NTgwEYYPaHR0cDovL3Rlc3QvNzU5MBGGD2h0dHA6Ly90 -+ZXN0Lzc2MDARhg9odHRwOi8vdGVzdC83NjEwEYYPaHR0cDovL3Rlc3QvNzYyMBGG -+D2h0dHA6Ly90ZXN0Lzc2MzARhg9odHRwOi8vdGVzdC83NjQwEYYPaHR0cDovL3Rl -+c3QvNzY1MBGGD2h0dHA6Ly90ZXN0Lzc2NjARhg9odHRwOi8vdGVzdC83NjcwEYYP -+aHR0cDovL3Rlc3QvNzY4MBGGD2h0dHA6Ly90ZXN0Lzc2OTARhg9odHRwOi8vdGVz -+dC83NzAwEYYPaHR0cDovL3Rlc3QvNzcxMBGGD2h0dHA6Ly90ZXN0Lzc3MjARhg9o -+dHRwOi8vdGVzdC83NzMwEYYPaHR0cDovL3Rlc3QvNzc0MBGGD2h0dHA6Ly90ZXN0 -+Lzc3NTARhg9odHRwOi8vdGVzdC83NzYwEYYPaHR0cDovL3Rlc3QvNzc3MBGGD2h0 -+dHA6Ly90ZXN0Lzc3ODARhg9odHRwOi8vdGVzdC83NzkwEYYPaHR0cDovL3Rlc3Qv -+NzgwMBGGD2h0dHA6Ly90ZXN0Lzc4MTARhg9odHRwOi8vdGVzdC83ODIwEYYPaHR0 -+cDovL3Rlc3QvNzgzMBGGD2h0dHA6Ly90ZXN0Lzc4NDARhg9odHRwOi8vdGVzdC83 -+ODUwEYYPaHR0cDovL3Rlc3QvNzg2MBGGD2h0dHA6Ly90ZXN0Lzc4NzARhg9odHRw -+Oi8vdGVzdC83ODgwEYYPaHR0cDovL3Rlc3QvNzg5MBGGD2h0dHA6Ly90ZXN0Lzc5 -+MDARhg9odHRwOi8vdGVzdC83OTEwEYYPaHR0cDovL3Rlc3QvNzkyMBGGD2h0dHA6 -+Ly90ZXN0Lzc5MzARhg9odHRwOi8vdGVzdC83OTQwEYYPaHR0cDovL3Rlc3QvNzk1 -+MBGGD2h0dHA6Ly90ZXN0Lzc5NjARhg9odHRwOi8vdGVzdC83OTcwEYYPaHR0cDov -+L3Rlc3QvNzk4MBGGD2h0dHA6Ly90ZXN0Lzc5OTARhg9odHRwOi8vdGVzdC84MDAw -+EYYPaHR0cDovL3Rlc3QvODAxMBGGD2h0dHA6Ly90ZXN0LzgwMjARhg9odHRwOi8v -+dGVzdC84MDMwEYYPaHR0cDovL3Rlc3QvODA0MBGGD2h0dHA6Ly90ZXN0LzgwNTAR -+hg9odHRwOi8vdGVzdC84MDYwEYYPaHR0cDovL3Rlc3QvODA3MBGGD2h0dHA6Ly90 -+ZXN0LzgwODARhg9odHRwOi8vdGVzdC84MDkwEYYPaHR0cDovL3Rlc3QvODEwMBGG -+D2h0dHA6Ly90ZXN0LzgxMTARhg9odHRwOi8vdGVzdC84MTIwEYYPaHR0cDovL3Rl -+c3QvODEzMBGGD2h0dHA6Ly90ZXN0LzgxNDARhg9odHRwOi8vdGVzdC84MTUwEYYP -+aHR0cDovL3Rlc3QvODE2MBGGD2h0dHA6Ly90ZXN0LzgxNzARhg9odHRwOi8vdGVz -+dC84MTgwEYYPaHR0cDovL3Rlc3QvODE5MBGGD2h0dHA6Ly90ZXN0LzgyMDARhg9o -+dHRwOi8vdGVzdC84MjEwEYYPaHR0cDovL3Rlc3QvODIyMBGGD2h0dHA6Ly90ZXN0 -+LzgyMzARhg9odHRwOi8vdGVzdC84MjQwEYYPaHR0cDovL3Rlc3QvODI1MBGGD2h0 -+dHA6Ly90ZXN0LzgyNjARhg9odHRwOi8vdGVzdC84MjcwEYYPaHR0cDovL3Rlc3Qv -+ODI4MBGGD2h0dHA6Ly90ZXN0LzgyOTARhg9odHRwOi8vdGVzdC84MzAwEYYPaHR0 -+cDovL3Rlc3QvODMxMBGGD2h0dHA6Ly90ZXN0LzgzMjARhg9odHRwOi8vdGVzdC84 -+MzMwEYYPaHR0cDovL3Rlc3QvODM0MBGGD2h0dHA6Ly90ZXN0LzgzNTARhg9odHRw -+Oi8vdGVzdC84MzYwEYYPaHR0cDovL3Rlc3QvODM3MBGGD2h0dHA6Ly90ZXN0Lzgz -+ODARhg9odHRwOi8vdGVzdC84MzkwEYYPaHR0cDovL3Rlc3QvODQwMBGGD2h0dHA6 -+Ly90ZXN0Lzg0MTARhg9odHRwOi8vdGVzdC84NDIwEYYPaHR0cDovL3Rlc3QvODQz -+MBGGD2h0dHA6Ly90ZXN0Lzg0NDARhg9odHRwOi8vdGVzdC84NDUwEYYPaHR0cDov -+L3Rlc3QvODQ2MBGGD2h0dHA6Ly90ZXN0Lzg0NzARhg9odHRwOi8vdGVzdC84NDgw -+EYYPaHR0cDovL3Rlc3QvODQ5MBGGD2h0dHA6Ly90ZXN0Lzg1MDARhg9odHRwOi8v -+dGVzdC84NTEwEYYPaHR0cDovL3Rlc3QvODUyMBGGD2h0dHA6Ly90ZXN0Lzg1MzAR -+hg9odHRwOi8vdGVzdC84NTQwEYYPaHR0cDovL3Rlc3QvODU1MBGGD2h0dHA6Ly90 -+ZXN0Lzg1NjARhg9odHRwOi8vdGVzdC84NTcwEYYPaHR0cDovL3Rlc3QvODU4MBGG -+D2h0dHA6Ly90ZXN0Lzg1OTARhg9odHRwOi8vdGVzdC84NjAwEYYPaHR0cDovL3Rl -+c3QvODYxMBGGD2h0dHA6Ly90ZXN0Lzg2MjARhg9odHRwOi8vdGVzdC84NjMwEYYP -+aHR0cDovL3Rlc3QvODY0MBGGD2h0dHA6Ly90ZXN0Lzg2NTARhg9odHRwOi8vdGVz -+dC84NjYwEYYPaHR0cDovL3Rlc3QvODY3MBGGD2h0dHA6Ly90ZXN0Lzg2ODARhg9o -+dHRwOi8vdGVzdC84NjkwEYYPaHR0cDovL3Rlc3QvODcwMBGGD2h0dHA6Ly90ZXN0 -+Lzg3MTARhg9odHRwOi8vdGVzdC84NzIwEYYPaHR0cDovL3Rlc3QvODczMBGGD2h0 -+dHA6Ly90ZXN0Lzg3NDARhg9odHRwOi8vdGVzdC84NzUwEYYPaHR0cDovL3Rlc3Qv -+ODc2MBGGD2h0dHA6Ly90ZXN0Lzg3NzARhg9odHRwOi8vdGVzdC84NzgwEYYPaHR0 -+cDovL3Rlc3QvODc5MBGGD2h0dHA6Ly90ZXN0Lzg4MDARhg9odHRwOi8vdGVzdC84 -+ODEwEYYPaHR0cDovL3Rlc3QvODgyMBGGD2h0dHA6Ly90ZXN0Lzg4MzARhg9odHRw -+Oi8vdGVzdC84ODQwEYYPaHR0cDovL3Rlc3QvODg1MBGGD2h0dHA6Ly90ZXN0Lzg4 -+NjARhg9odHRwOi8vdGVzdC84ODcwEYYPaHR0cDovL3Rlc3QvODg4MBGGD2h0dHA6 -+Ly90ZXN0Lzg4OTARhg9odHRwOi8vdGVzdC84OTAwEYYPaHR0cDovL3Rlc3QvODkx -+MBGGD2h0dHA6Ly90ZXN0Lzg5MjARhg9odHRwOi8vdGVzdC84OTMwEYYPaHR0cDov -+L3Rlc3QvODk0MBGGD2h0dHA6Ly90ZXN0Lzg5NTARhg9odHRwOi8vdGVzdC84OTYw -+EYYPaHR0cDovL3Rlc3QvODk3MBGGD2h0dHA6Ly90ZXN0Lzg5ODARhg9odHRwOi8v -+dGVzdC84OTkwEYYPaHR0cDovL3Rlc3QvOTAwMBGGD2h0dHA6Ly90ZXN0LzkwMTAR -+hg9odHRwOi8vdGVzdC85MDIwEYYPaHR0cDovL3Rlc3QvOTAzMBGGD2h0dHA6Ly90 -+ZXN0LzkwNDARhg9odHRwOi8vdGVzdC85MDUwEYYPaHR0cDovL3Rlc3QvOTA2MBGG -+D2h0dHA6Ly90ZXN0LzkwNzARhg9odHRwOi8vdGVzdC85MDgwEYYPaHR0cDovL3Rl -+c3QvOTA5MBGGD2h0dHA6Ly90ZXN0LzkxMDARhg9odHRwOi8vdGVzdC85MTEwEYYP -+aHR0cDovL3Rlc3QvOTEyMBGGD2h0dHA6Ly90ZXN0LzkxMzARhg9odHRwOi8vdGVz -+dC85MTQwEYYPaHR0cDovL3Rlc3QvOTE1MBGGD2h0dHA6Ly90ZXN0LzkxNjARhg9o -+dHRwOi8vdGVzdC85MTcwEYYPaHR0cDovL3Rlc3QvOTE4MBGGD2h0dHA6Ly90ZXN0 -+LzkxOTARhg9odHRwOi8vdGVzdC85MjAwEYYPaHR0cDovL3Rlc3QvOTIxMBGGD2h0 -+dHA6Ly90ZXN0LzkyMjARhg9odHRwOi8vdGVzdC85MjMwEYYPaHR0cDovL3Rlc3Qv -+OTI0MBGGD2h0dHA6Ly90ZXN0LzkyNTARhg9odHRwOi8vdGVzdC85MjYwEYYPaHR0 -+cDovL3Rlc3QvOTI3MBGGD2h0dHA6Ly90ZXN0LzkyODARhg9odHRwOi8vdGVzdC85 -+MjkwEYYPaHR0cDovL3Rlc3QvOTMwMBGGD2h0dHA6Ly90ZXN0LzkzMTARhg9odHRw -+Oi8vdGVzdC85MzIwEYYPaHR0cDovL3Rlc3QvOTMzMBGGD2h0dHA6Ly90ZXN0Lzkz -+NDARhg9odHRwOi8vdGVzdC85MzUwEYYPaHR0cDovL3Rlc3QvOTM2MBGGD2h0dHA6 -+Ly90ZXN0LzkzNzARhg9odHRwOi8vdGVzdC85MzgwEYYPaHR0cDovL3Rlc3QvOTM5 -+MBGGD2h0dHA6Ly90ZXN0Lzk0MDARhg9odHRwOi8vdGVzdC85NDEwEYYPaHR0cDov -+L3Rlc3QvOTQyMBGGD2h0dHA6Ly90ZXN0Lzk0MzARhg9odHRwOi8vdGVzdC85NDQw -+EYYPaHR0cDovL3Rlc3QvOTQ1MBGGD2h0dHA6Ly90ZXN0Lzk0NjARhg9odHRwOi8v -+dGVzdC85NDcwEYYPaHR0cDovL3Rlc3QvOTQ4MBGGD2h0dHA6Ly90ZXN0Lzk0OTAR -+hg9odHRwOi8vdGVzdC85NTAwEYYPaHR0cDovL3Rlc3QvOTUxMBGGD2h0dHA6Ly90 -+ZXN0Lzk1MjARhg9odHRwOi8vdGVzdC85NTMwEYYPaHR0cDovL3Rlc3QvOTU0MBGG -+D2h0dHA6Ly90ZXN0Lzk1NTARhg9odHRwOi8vdGVzdC85NTYwEYYPaHR0cDovL3Rl -+c3QvOTU3MBGGD2h0dHA6Ly90ZXN0Lzk1ODARhg9odHRwOi8vdGVzdC85NTkwEYYP -+aHR0cDovL3Rlc3QvOTYwMBGGD2h0dHA6Ly90ZXN0Lzk2MTARhg9odHRwOi8vdGVz -+dC85NjIwEYYPaHR0cDovL3Rlc3QvOTYzMBGGD2h0dHA6Ly90ZXN0Lzk2NDARhg9o -+dHRwOi8vdGVzdC85NjUwEYYPaHR0cDovL3Rlc3QvOTY2MBGGD2h0dHA6Ly90ZXN0 -+Lzk2NzARhg9odHRwOi8vdGVzdC85NjgwEYYPaHR0cDovL3Rlc3QvOTY5MBGGD2h0 -+dHA6Ly90ZXN0Lzk3MDARhg9odHRwOi8vdGVzdC85NzEwEYYPaHR0cDovL3Rlc3Qv -+OTcyMBGGD2h0dHA6Ly90ZXN0Lzk3MzARhg9odHRwOi8vdGVzdC85NzQwEYYPaHR0 -+cDovL3Rlc3QvOTc1MBGGD2h0dHA6Ly90ZXN0Lzk3NjARhg9odHRwOi8vdGVzdC85 -+NzcwEYYPaHR0cDovL3Rlc3QvOTc4MBGGD2h0dHA6Ly90ZXN0Lzk3OTARhg9odHRw -+Oi8vdGVzdC85ODAwEYYPaHR0cDovL3Rlc3QvOTgxMBGGD2h0dHA6Ly90ZXN0Lzk4 -+MjARhg9odHRwOi8vdGVzdC85ODMwEYYPaHR0cDovL3Rlc3QvOTg0MBGGD2h0dHA6 -+Ly90ZXN0Lzk4NTARhg9odHRwOi8vdGVzdC85ODYwEYYPaHR0cDovL3Rlc3QvOTg3 -+MBGGD2h0dHA6Ly90ZXN0Lzk4ODARhg9odHRwOi8vdGVzdC85ODkwEYYPaHR0cDov -+L3Rlc3QvOTkwMBGGD2h0dHA6Ly90ZXN0Lzk5MTARhg9odHRwOi8vdGVzdC85OTIw -+EYYPaHR0cDovL3Rlc3QvOTkzMBGGD2h0dHA6Ly90ZXN0Lzk5NDARhg9odHRwOi8v -+dGVzdC85OTUwEYYPaHR0cDovL3Rlc3QvOTk2MBGGD2h0dHA6Ly90ZXN0Lzk5NzAR -+hg9odHRwOi8vdGVzdC85OTgwEYYPaHR0cDovL3Rlc3QvOTk5MBKGEGh0dHA6Ly90 -+ZXN0LzEwMDAwEoYQaHR0cDovL3Rlc3QvMTAwMTAShhBodHRwOi8vdGVzdC8xMDAy -+MBKGEGh0dHA6Ly90ZXN0LzEwMDMwEoYQaHR0cDovL3Rlc3QvMTAwNDAShhBodHRw -+Oi8vdGVzdC8xMDA1MBKGEGh0dHA6Ly90ZXN0LzEwMDYwEoYQaHR0cDovL3Rlc3Qv -+MTAwNzAShhBodHRwOi8vdGVzdC8xMDA4MBKGEGh0dHA6Ly90ZXN0LzEwMDkwEoYQ -+aHR0cDovL3Rlc3QvMTAxMDAShhBodHRwOi8vdGVzdC8xMDExMBKGEGh0dHA6Ly90 -+ZXN0LzEwMTIwEoYQaHR0cDovL3Rlc3QvMTAxMzAShhBodHRwOi8vdGVzdC8xMDE0 -+MBKGEGh0dHA6Ly90ZXN0LzEwMTUwEoYQaHR0cDovL3Rlc3QvMTAxNjAShhBodHRw -+Oi8vdGVzdC8xMDE3MBKGEGh0dHA6Ly90ZXN0LzEwMTgwEoYQaHR0cDovL3Rlc3Qv -+MTAxOTAShhBodHRwOi8vdGVzdC8xMDIwMBKGEGh0dHA6Ly90ZXN0LzEwMjEwEoYQ -+aHR0cDovL3Rlc3QvMTAyMjAShhBodHRwOi8vdGVzdC8xMDIzMBKGEGh0dHA6Ly90 -+ZXN0LzEwMjShgmluMAmCB3gwLnRlc3QwCYIHeDEudGVzdDAJggd4Mi50ZXN0MAmC -+B3gzLnRlc3QwCYIHeDQudGVzdDAJggd4NS50ZXN0MAmCB3g2LnRlc3QwCYIHeDcu -+dGVzdDAJggd4OC50ZXN0MAmCB3g5LnRlc3QwCoIIeDEwLnRlc3QwCoIIeDExLnRl -+c3QwCoIIeDEyLnRlc3QwCoIIeDEzLnRlc3QwCoIIeDE0LnRlc3QwCoIIeDE1LnRl -+c3QwCoIIeDE2LnRlc3QwCoIIeDE3LnRlc3QwCoIIeDE4LnRlc3QwCoIIeDE5LnRl -+c3QwCoIIeDIwLnRlc3QwCoIIeDIxLnRlc3QwCoIIeDIyLnRlc3QwCoIIeDIzLnRl -+c3QwCoIIeDI0LnRlc3QwCoIIeDI1LnRlc3QwCoIIeDI2LnRlc3QwCoIIeDI3LnRl -+c3QwCoIIeDI4LnRlc3QwCoIIeDI5LnRlc3QwCoIIeDMwLnRlc3QwCoIIeDMxLnRl -+c3QwCoIIeDMyLnRlc3QwCoIIeDMzLnRlc3QwCoIIeDM0LnRlc3QwCoIIeDM1LnRl -+c3QwCoIIeDM2LnRlc3QwCoIIeDM3LnRlc3QwCoIIeDM4LnRlc3QwCoIIeDM5LnRl -+c3QwCoIIeDQwLnRlc3QwCoIIeDQxLnRlc3QwCoIIeDQyLnRlc3QwCoIIeDQzLnRl -+c3QwCoIIeDQ0LnRlc3QwCoIIeDQ1LnRlc3QwCoIIeDQ2LnRlc3QwCoIIeDQ3LnRl -+c3QwCoIIeDQ4LnRlc3QwCoIIeDQ5LnRlc3QwCoIIeDUwLnRlc3QwCoIIeDUxLnRl -+c3QwCoIIeDUyLnRlc3QwCoIIeDUzLnRlc3QwCoIIeDU0LnRlc3QwCoIIeDU1LnRl -+c3QwCoIIeDU2LnRlc3QwCoIIeDU3LnRlc3QwCoIIeDU4LnRlc3QwCoIIeDU5LnRl -+c3QwCoIIeDYwLnRlc3QwCoIIeDYxLnRlc3QwCoIIeDYyLnRlc3QwCoIIeDYzLnRl -+c3QwCoIIeDY0LnRlc3QwCoIIeDY1LnRlc3QwCoIIeDY2LnRlc3QwCoIIeDY3LnRl -+c3QwCoIIeDY4LnRlc3QwCoIIeDY5LnRlc3QwCoIIeDcwLnRlc3QwCoIIeDcxLnRl -+c3QwCoIIeDcyLnRlc3QwCoIIeDczLnRlc3QwCoIIeDc0LnRlc3QwCoIIeDc1LnRl -+c3QwCoIIeDc2LnRlc3QwCoIIeDc3LnRlc3QwCoIIeDc4LnRlc3QwCoIIeDc5LnRl -+c3QwCoIIeDgwLnRlc3QwCoIIeDgxLnRlc3QwCoIIeDgyLnRlc3QwCoIIeDgzLnRl -+c3QwCoIIeDg0LnRlc3QwCoIIeDg1LnRlc3QwCoIIeDg2LnRlc3QwCoIIeDg3LnRl -+c3QwCoIIeDg4LnRlc3QwCoIIeDg5LnRlc3QwCoIIeDkwLnRlc3QwCoIIeDkxLnRl -+c3QwCoIIeDkyLnRlc3QwCoIIeDkzLnRlc3QwCoIIeDk0LnRlc3QwCoIIeDk1LnRl -+c3QwCoIIeDk2LnRlc3QwCoIIeDk3LnRlc3QwCoIIeDk4LnRlc3QwCoIIeDk5LnRl -+c3QwC4IJeDEwMC50ZXN0MAuCCXgxMDEudGVzdDALggl4MTAyLnRlc3QwC4IJeDEw -+My50ZXN0MAuCCXgxMDQudGVzdDALggl4MTA1LnRlc3QwC4IJeDEwNi50ZXN0MAuC -+CXgxMDcudGVzdDALggl4MTA4LnRlc3QwC4IJeDEwOS50ZXN0MAuCCXgxMTAudGVz -+dDALggl4MTExLnRlc3QwC4IJeDExMi50ZXN0MAuCCXgxMTMudGVzdDALggl4MTE0 -+LnRlc3QwC4IJeDExNS50ZXN0MAuCCXgxMTYudGVzdDALggl4MTE3LnRlc3QwC4IJ -+eDExOC50ZXN0MAuCCXgxMTkudGVzdDALggl4MTIwLnRlc3QwC4IJeDEyMS50ZXN0 -+MAuCCXgxMjIudGVzdDALggl4MTIzLnRlc3QwC4IJeDEyNC50ZXN0MAuCCXgxMjUu -+dGVzdDALggl4MTI2LnRlc3QwC4IJeDEyNy50ZXN0MAuCCXgxMjgudGVzdDALggl4 -+MTI5LnRlc3QwC4IJeDEzMC50ZXN0MAuCCXgxMzEudGVzdDALggl4MTMyLnRlc3Qw -+C4IJeDEzMy50ZXN0MAuCCXgxMzQudGVzdDALggl4MTM1LnRlc3QwC4IJeDEzNi50 -+ZXN0MAuCCXgxMzcudGVzdDALggl4MTM4LnRlc3QwC4IJeDEzOS50ZXN0MAuCCXgx -+NDAudGVzdDALggl4MTQxLnRlc3QwC4IJeDE0Mi50ZXN0MAuCCXgxNDMudGVzdDAL -+ggl4MTQ0LnRlc3QwC4IJeDE0NS50ZXN0MAuCCXgxNDYudGVzdDALggl4MTQ3LnRl -+c3QwC4IJeDE0OC50ZXN0MAuCCXgxNDkudGVzdDALggl4MTUwLnRlc3QwC4IJeDE1 -+MS50ZXN0MAuCCXgxNTIudGVzdDALggl4MTUzLnRlc3QwC4IJeDE1NC50ZXN0MAuC -+CXgxNTUudGVzdDALggl4MTU2LnRlc3QwC4IJeDE1Ny50ZXN0MAuCCXgxNTgudGVz -+dDALggl4MTU5LnRlc3QwC4IJeDE2MC50ZXN0MAuCCXgxNjEudGVzdDALggl4MTYy -+LnRlc3QwC4IJeDE2My50ZXN0MAuCCXgxNjQudGVzdDALggl4MTY1LnRlc3QwC4IJ -+eDE2Ni50ZXN0MAuCCXgxNjcudGVzdDALggl4MTY4LnRlc3QwC4IJeDE2OS50ZXN0 -+MAqHCAsAAAD/////MAqHCAsAAAH/////MAqHCAsAAAL/////MAqHCAsAAAP///// -+MAqHCAsAAAT/////MAqHCAsAAAX/////MAqHCAsAAAb/////MAqHCAsAAAf///// -+MAqHCAsAAAj/////MAqHCAsAAAn/////MAqHCAsAAAr/////MAqHCAsAAAv///// -+MAqHCAsAAAz/////MAqHCAsAAA3/////MAqHCAsAAA7/////MAqHCAsAAA////// -+MAqHCAsAABD/////MAqHCAsAABH/////MAqHCAsAABL/////MAqHCAsAABP///// -+MAqHCAsAABT/////MAqHCAsAABX/////MAqHCAsAABb/////MAqHCAsAABf///// -+MAqHCAsAABj/////MAqHCAsAABn/////MAqHCAsAABr/////MAqHCAsAABv///// -+MAqHCAsAABz/////MAqHCAsAAB3/////MAqHCAsAAB7/////MAqHCAsAAB////// -+MAqHCAsAACD/////MAqHCAsAACH/////MAqHCAsAACL/////MAqHCAsAACP///// -+MAqHCAsAACT/////MAqHCAsAACX/////MAqHCAsAACb/////MAqHCAsAACf///// -+MAqHCAsAACj/////MAqHCAsAACn/////MAqHCAsAACr/////MAqHCAsAACv///// -+MAqHCAsAACz/////MAqHCAsAAC3/////MAqHCAsAAC7/////MAqHCAsAAC////// -+MAqHCAsAADD/////MAqHCAsAADH/////MAqHCAsAADL/////MAqHCAsAADP///// -+MAqHCAsAADT/////MAqHCAsAADX/////MAqHCAsAADb/////MAqHCAsAADf///// -+MAqHCAsAADj/////MAqHCAsAADn/////MAqHCAsAADr/////MAqHCAsAADv///// -+MAqHCAsAADz/////MAqHCAsAAD3/////MAqHCAsAAD7/////MAqHCAsAAD////// -+MAqHCAsAAED/////MAqHCAsAAEH/////MAqHCAsAAEL/////MAqHCAsAAEP///// -+MAqHCAsAAET/////MAqHCAsAAEX/////MAqHCAsAAEb/////MAqHCAsAAEf///// -+MAqHCAsAAEj/////MAqHCAsAAEn/////MAqHCAsAAEr/////MAqHCAsAAEv///// -+MAqHCAsAAEz/////MAqHCAsAAE3/////MAqHCAsAAE7/////MAqHCAsAAE////// -+MAqHCAsAAFD/////MAqHCAsAAFH/////MAqHCAsAAFL/////MAqHCAsAAFP///// -+MAqHCAsAAFT/////MAqHCAsAAFX/////MAqHCAsAAFb/////MAqHCAsAAFf///// -+MAqHCAsAAFj/////MAqHCAsAAFn/////MAqHCAsAAFr/////MAqHCAsAAFv///// -+MAqHCAsAAFz/////MAqHCAsAAF3/////MAqHCAsAAF7/////MAqHCAsAAF////// -+MAqHCAsAAGD/////MAqHCAsAAGH/////MAqHCAsAAGL/////MAqHCAsAAGP///// -+MAqHCAsAAGT/////MAqHCAsAAGX/////MAqHCAsAAGb/////MAqHCAsAAGf///// -+MAqHCAsAAGj/////MAqHCAsAAGn/////MAqHCAsAAGr/////MAqHCAsAAGv///// -+MAqHCAsAAGz/////MAqHCAsAAG3/////MAqHCAsAAG7/////MAqHCAsAAG////// -+MAqHCAsAAHD/////MAqHCAsAAHH/////MAqHCAsAAHL/////MAqHCAsAAHP///// -+MAqHCAsAAHT/////MAqHCAsAAHX/////MAqHCAsAAHb/////MAqHCAsAAHf///// -+MAqHCAsAAHj/////MAqHCAsAAHn/////MAqHCAsAAHr/////MAqHCAsAAHv///// -+MAqHCAsAAHz/////MAqHCAsAAH3/////MAqHCAsAAH7/////MAqHCAsAAH////// -+MAqHCAsAAID/////MAqHCAsAAIH/////MAqHCAsAAIL/////MAqHCAsAAIP///// -+MAqHCAsAAIT/////MAqHCAsAAIX/////MAqHCAsAAIb/////MAqHCAsAAIf///// -+MAqHCAsAAIj/////MAqHCAsAAIn/////MAqHCAsAAIr/////MAqHCAsAAIv///// -+MAqHCAsAAIz/////MAqHCAsAAI3/////MAqHCAsAAI7/////MAqHCAsAAI////// -+MAqHCAsAAJD/////MAqHCAsAAJH/////MAqHCAsAAJL/////MAqHCAsAAJP///// -+MAqHCAsAAJT/////MAqHCAsAAJX/////MAqHCAsAAJb/////MAqHCAsAAJf///// -+MAqHCAsAAJj/////MAqHCAsAAJn/////MAqHCAsAAJr/////MAqHCAsAAJv///// -+MAqHCAsAAJz/////MAqHCAsAAJ3/////MAqHCAsAAJ7/////MAqHCAsAAJ////// -+MAqHCAsAAKD/////MAqHCAsAAKH/////MAqHCAsAAKL/////MAqHCAsAAKP///// -+MAqHCAsAAKT/////MAqHCAsAAKX/////MAqHCAsAAKb/////MAqHCAsAAKf///// -+MAqHCAsAAKj/////MAqHCAsAAKn/////MBGkDzANMQswCQYDVQQDDAJ4MDARpA8w -+DTELMAkGA1UEAwwCeDEwEaQPMA0xCzAJBgNVBAMMAngyMBGkDzANMQswCQYDVQQD -+DAJ4MzARpA8wDTELMAkGA1UEAwwCeDQwEaQPMA0xCzAJBgNVBAMMAng1MBGkDzAN -+MQswCQYDVQQDDAJ4NjARpA8wDTELMAkGA1UEAwwCeDcwEaQPMA0xCzAJBgNVBAMM -+Ang4MBGkDzANMQswCQYDVQQDDAJ4OTASpBAwDjEMMAoGA1UEAwwDeDEwMBKkEDAO -+MQwwCgYDVQQDDAN4MTEwEqQQMA4xDDAKBgNVBAMMA3gxMjASpBAwDjEMMAoGA1UE -+AwwDeDEzMBKkEDAOMQwwCgYDVQQDDAN4MTQwEqQQMA4xDDAKBgNVBAMMA3gxNTAS -+pBAwDjEMMAoGA1UEAwwDeDE2MBKkEDAOMQwwCgYDVQQDDAN4MTcwEqQQMA4xDDAK -+BgNVBAMMA3gxODASpBAwDjEMMAoGA1UEAwwDeDE5MBKkEDAOMQwwCgYDVQQDDAN4 -+MjAwEqQQMA4xDDAKBgNVBAMMA3gyMTASpBAwDjEMMAoGA1UEAwwDeDIyMBKkEDAO -+MQwwCgYDVQQDDAN4MjMwEqQQMA4xDDAKBgNVBAMMA3gyNDASpBAwDjEMMAoGA1UE -+AwwDeDI1MBKkEDAOMQwwCgYDVQQDDAN4MjYwEqQQMA4xDDAKBgNVBAMMA3gyNzAS -+pBAwDjEMMAoGA1UEAwwDeDI4MBKkEDAOMQwwCgYDVQQDDAN4MjkwEqQQMA4xDDAK -+BgNVBAMMA3gzMDASpBAwDjEMMAoGA1UEAwwDeDMxMBKkEDAOMQwwCgYDVQQDDAN4 -+MzIwEqQQMA4xDDAKBgNVBAMMA3gzMzASpBAwDjEMMAoGA1UEAwwDeDM0MBKkEDAO -+MQwwCgYDVQQDDAN4MzUwEqQQMA4xDDAKBgNVBAMMA3gzNjASpBAwDjEMMAoGA1UE -+AwwDeDM3MBKkEDAOMQwwCgYDVQQDDAN4MzgwEqQQMA4xDDAKBgNVBAMMA3gzOTAS -+pBAwDjEMMAoGA1UEAwwDeDQwMBKkEDAOMQwwCgYDVQQDDAN4NDEwEqQQMA4xDDAK -+BgNVBAMMA3g0MjASpBAwDjEMMAoGA1UEAwwDeDQzMBKkEDAOMQwwCgYDVQQDDAN4 -+NDQwEqQQMA4xDDAKBgNVBAMMA3g0NTASpBAwDjEMMAoGA1UEAwwDeDQ2MBKkEDAO -+MQwwCgYDVQQDDAN4NDcwEqQQMA4xDDAKBgNVBAMMA3g0ODASpBAwDjEMMAoGA1UE -+AwwDeDQ5MBKkEDAOMQwwCgYDVQQDDAN4NTAwEqQQMA4xDDAKBgNVBAMMA3g1MTAS -+pBAwDjEMMAoGA1UEAwwDeDUyMBKkEDAOMQwwCgYDVQQDDAN4NTMwEqQQMA4xDDAK -+BgNVBAMMA3g1NDASpBAwDjEMMAoGA1UEAwwDeDU1MBKkEDAOMQwwCgYDVQQDDAN4 -+NTYwEqQQMA4xDDAKBgNVBAMMA3g1NzASpBAwDjEMMAoGA1UEAwwDeDU4MBKkEDAO -+MQwwCgYDVQQDDAN4NTkwEqQQMA4xDDAKBgNVBAMMA3g2MDASpBAwDjEMMAoGA1UE -+AwwDeDYxMBKkEDAOMQwwCgYDVQQDDAN4NjIwEqQQMA4xDDAKBgNVBAMMA3g2MzAS -+pBAwDjEMMAoGA1UEAwwDeDY0MBKkEDAOMQwwCgYDVQQDDAN4NjUwEqQQMA4xDDAK -+BgNVBAMMA3g2NjASpBAwDjEMMAoGA1UEAwwDeDY3MBKkEDAOMQwwCgYDVQQDDAN4 -+NjgwEqQQMA4xDDAKBgNVBAMMA3g2OTASpBAwDjEMMAoGA1UEAwwDeDcwMBKkEDAO -+MQwwCgYDVQQDDAN4NzEwEqQQMA4xDDAKBgNVBAMMA3g3MjASpBAwDjEMMAoGA1UE -+AwwDeDczMBKkEDAOMQwwCgYDVQQDDAN4NzQwEqQQMA4xDDAKBgNVBAMMA3g3NTAS -+pBAwDjEMMAoGA1UEAwwDeDc2MBKkEDAOMQwwCgYDVQQDDAN4NzcwEqQQMA4xDDAK -+BgNVBAMMA3g3ODASpBAwDjEMMAoGA1UEAwwDeDc5MBKkEDAOMQwwCgYDVQQDDAN4 -+ODAwEqQQMA4xDDAKBgNVBAMMA3g4MTASpBAwDjEMMAoGA1UEAwwDeDgyMBKkEDAO -+MQwwCgYDVQQDDAN4ODMwEqQQMA4xDDAKBgNVBAMMA3g4NDASpBAwDjEMMAoGA1UE -+AwwDeDg1MBKkEDAOMQwwCgYDVQQDDAN4ODYwEqQQMA4xDDAKBgNVBAMMA3g4NzAS -+pBAwDjEMMAoGA1UEAwwDeDg4MBKkEDAOMQwwCgYDVQQDDAN4ODkwEqQQMA4xDDAK -+BgNVBAMMA3g5MDASpBAwDjEMMAoGA1UEAwwDeDkxMBKkEDAOMQwwCgYDVQQDDAN4 -+OTIwEqQQMA4xDDAKBgNVBAMMA3g5MzASpBAwDjEMMAoGA1UEAwwDeDk0MBKkEDAO -+MQwwCgYDVQQDDAN4OTUwEqQQMA4xDDAKBgNVBAMMA3g5NjASpBAwDjEMMAoGA1UE -+AwwDeDk3MBKkEDAOMQwwCgYDVQQDDAN4OTgwEqQQMA4xDDAKBgNVBAMMA3g5OTAT -+pBEwDzENMAsGA1UEAwwEeDEwMDATpBEwDzENMAsGA1UEAwwEeDEwMTATpBEwDzEN -+MAsGA1UEAwwEeDEwMjATpBEwDzENMAsGA1UEAwwEeDEwMzATpBEwDzENMAsGA1UE -+AwwEeDEwNDATpBEwDzENMAsGA1UEAwwEeDEwNTATpBEwDzENMAsGA1UEAwwEeDEw -+NjATpBEwDzENMAsGA1UEAwwEeDEwNzATpBEwDzENMAsGA1UEAwwEeDEwODATpBEw -+DzENMAsGA1UEAwwEeDEwOTATpBEwDzENMAsGA1UEAwwEeDExMDATpBEwDzENMAsG -+A1UEAwwEeDExMTATpBEwDzENMAsGA1UEAwwEeDExMjATpBEwDzENMAsGA1UEAwwE -+eDExMzATpBEwDzENMAsGA1UEAwwEeDExNDATpBEwDzENMAsGA1UEAwwEeDExNTAT -+pBEwDzENMAsGA1UEAwwEeDExNjATpBEwDzENMAsGA1UEAwwEeDExNzATpBEwDzEN -+MAsGA1UEAwwEeDExODATpBEwDzENMAsGA1UEAwwEeDExOTATpBEwDzENMAsGA1UE -+AwwEeDEyMDATpBEwDzENMAsGA1UEAwwEeDEyMTATpBEwDzENMAsGA1UEAwwEeDEy -+MjATpBEwDzENMAsGA1UEAwwEeDEyMzATpBEwDzENMAsGA1UEAwwEeDEyNDATpBEw -+DzENMAsGA1UEAwwEeDEyNTATpBEwDzENMAsGA1UEAwwEeDEyNjATpBEwDzENMAsG -+A1UEAwwEeDEyNzATpBEwDzENMAsGA1UEAwwEeDEyODATpBEwDzENMAsGA1UEAwwE -+eDEyOTATpBEwDzENMAsGA1UEAwwEeDEzMDATpBEwDzENMAsGA1UEAwwEeDEzMTAT -+pBEwDzENMAsGA1UEAwwEeDEzMjATpBEwDzENMAsGA1UEAwwEeDEzMzATpBEwDzEN -+MAsGA1UEAwwEeDEzNDATpBEwDzENMAsGA1UEAwwEeDEzNTATpBEwDzENMAsGA1UE -+AwwEeDEzNjATpBEwDzENMAsGA1UEAwwEeDEzNzATpBEwDzENMAsGA1UEAwwEeDEz -+ODATpBEwDzENMAsGA1UEAwwEeDEzOTATpBEwDzENMAsGA1UEAwwEeDE0MDATpBEw -+DzENMAsGA1UEAwwEeDE0MTATpBEwDzENMAsGA1UEAwwEeDE0MjATpBEwDzENMAsG -+A1UEAwwEeDE0MzATpBEwDzENMAsGA1UEAwwEeDE0NDATpBEwDzENMAsGA1UEAwwE -+eDE0NTATpBEwDzENMAsGA1UEAwwEeDE0NjATpBEwDzENMAsGA1UEAwwEeDE0NzAT -+pBEwDzENMAsGA1UEAwwEeDE0ODATpBEwDzENMAsGA1UEAwwEeDE0OTATpBEwDzEN -+MAsGA1UEAwwEeDE1MDATpBEwDzENMAsGA1UEAwwEeDE1MTATpBEwDzENMAsGA1UE -+AwwEeDE1MjATpBEwDzENMAsGA1UEAwwEeDE1MzATpBEwDzENMAsGA1UEAwwEeDE1 -+NDATpBEwDzENMAsGA1UEAwwEeDE1NTATpBEwDzENMAsGA1UEAwwEeDE1NjATpBEw -+DzENMAsGA1UEAwwEeDE1NzATpBEwDzENMAsGA1UEAwwEeDE1ODATpBEwDzENMAsG -+A1UEAwwEeDE1OTATpBEwDzENMAsGA1UEAwwEeDE2MDATpBEwDzENMAsGA1UEAwwE -+eDE2MTATpBEwDzENMAsGA1UEAwwEeDE2MjATpBEwDzENMAsGA1UEAwwEeDE2MzAT -+pBEwDzENMAsGA1UEAwwEeDE2NDATpBEwDzENMAsGA1UEAwwEeDE2NTATpBEwDzEN -+MAsGA1UEAwwEeDE2NjATpBEwDzENMAsGA1UEAwwEeDE2NzATpBEwDzENMAsGA1UE -+AwwEeDE2ODATpBEwDzENMAsGA1UEAwwEeDE2OTAPhg1odHRwOi8veGVzdC8wMA+G -+DWh0dHA6Ly94ZXN0LzEwD4YNaHR0cDovL3hlc3QvMjAPhg1odHRwOi8veGVzdC8z -+MA+GDWh0dHA6Ly94ZXN0LzQwD4YNaHR0cDovL3hlc3QvNTAPhg1odHRwOi8veGVz -+dC82MA+GDWh0dHA6Ly94ZXN0LzcwD4YNaHR0cDovL3hlc3QvODAPhg1odHRwOi8v -+eGVzdC85MBCGDmh0dHA6Ly94ZXN0LzEwMBCGDmh0dHA6Ly94ZXN0LzExMBCGDmh0 -+dHA6Ly94ZXN0LzEyMBCGDmh0dHA6Ly94ZXN0LzEzMBCGDmh0dHA6Ly94ZXN0LzE0 -+MBCGDmh0dHA6Ly94ZXN0LzE1MBCGDmh0dHA6Ly94ZXN0LzE2MBCGDmh0dHA6Ly94 -+ZXN0LzE3MBCGDmh0dHA6Ly94ZXN0LzE4MBCGDmh0dHA6Ly94ZXN0LzE5MBCGDmh0 -+dHA6Ly94ZXN0LzIwMBCGDmh0dHA6Ly94ZXN0LzIxMBCGDmh0dHA6Ly94ZXN0LzIy -+MBCGDmh0dHA6Ly94ZXN0LzIzMBCGDmh0dHA6Ly94ZXN0LzI0MBCGDmh0dHA6Ly94 -+ZXN0LzI1MBCGDmh0dHA6Ly94ZXN0LzI2MBCGDmh0dHA6Ly94ZXN0LzI3MBCGDmh0 -+dHA6Ly94ZXN0LzI4MBCGDmh0dHA6Ly94ZXN0LzI5MBCGDmh0dHA6Ly94ZXN0LzMw -+MBCGDmh0dHA6Ly94ZXN0LzMxMBCGDmh0dHA6Ly94ZXN0LzMyMBCGDmh0dHA6Ly94 -+ZXN0LzMzMBCGDmh0dHA6Ly94ZXN0LzM0MBCGDmh0dHA6Ly94ZXN0LzM1MBCGDmh0 -+dHA6Ly94ZXN0LzM2MBCGDmh0dHA6Ly94ZXN0LzM3MBCGDmh0dHA6Ly94ZXN0LzM4 -+MBCGDmh0dHA6Ly94ZXN0LzM5MBCGDmh0dHA6Ly94ZXN0LzQwMBCGDmh0dHA6Ly94 -+ZXN0LzQxMBCGDmh0dHA6Ly94ZXN0LzQyMBCGDmh0dHA6Ly94ZXN0LzQzMBCGDmh0 -+dHA6Ly94ZXN0LzQ0MBCGDmh0dHA6Ly94ZXN0LzQ1MBCGDmh0dHA6Ly94ZXN0LzQ2 -+MBCGDmh0dHA6Ly94ZXN0LzQ3MBCGDmh0dHA6Ly94ZXN0LzQ4MBCGDmh0dHA6Ly94 -+ZXN0LzQ5MBCGDmh0dHA6Ly94ZXN0LzUwMBCGDmh0dHA6Ly94ZXN0LzUxMBCGDmh0 -+dHA6Ly94ZXN0LzUyMBCGDmh0dHA6Ly94ZXN0LzUzMBCGDmh0dHA6Ly94ZXN0LzU0 -+MBCGDmh0dHA6Ly94ZXN0LzU1MBCGDmh0dHA6Ly94ZXN0LzU2MBCGDmh0dHA6Ly94 -+ZXN0LzU3MBCGDmh0dHA6Ly94ZXN0LzU4MBCGDmh0dHA6Ly94ZXN0LzU5MBCGDmh0 -+dHA6Ly94ZXN0LzYwMBCGDmh0dHA6Ly94ZXN0LzYxMBCGDmh0dHA6Ly94ZXN0LzYy -+MBCGDmh0dHA6Ly94ZXN0LzYzMBCGDmh0dHA6Ly94ZXN0LzY0MBCGDmh0dHA6Ly94 -+ZXN0LzY1MBCGDmh0dHA6Ly94ZXN0LzY2MBCGDmh0dHA6Ly94ZXN0LzY3MBCGDmh0 -+dHA6Ly94ZXN0LzY4MBCGDmh0dHA6Ly94ZXN0LzY5MBCGDmh0dHA6Ly94ZXN0Lzcw -+MBCGDmh0dHA6Ly94ZXN0LzcxMBCGDmh0dHA6Ly94ZXN0LzcyMBCGDmh0dHA6Ly94 -+ZXN0LzczMBCGDmh0dHA6Ly94ZXN0Lzc0MBCGDmh0dHA6Ly94ZXN0Lzc1MBCGDmh0 -+dHA6Ly94ZXN0Lzc2MBCGDmh0dHA6Ly94ZXN0Lzc3MBCGDmh0dHA6Ly94ZXN0Lzc4 -+MBCGDmh0dHA6Ly94ZXN0Lzc5MBCGDmh0dHA6Ly94ZXN0LzgwMBCGDmh0dHA6Ly94 -+ZXN0LzgxMBCGDmh0dHA6Ly94ZXN0LzgyMBCGDmh0dHA6Ly94ZXN0LzgzMBCGDmh0 -+dHA6Ly94ZXN0Lzg0MBCGDmh0dHA6Ly94ZXN0Lzg1MBCGDmh0dHA6Ly94ZXN0Lzg2 -+MBCGDmh0dHA6Ly94ZXN0Lzg3MBCGDmh0dHA6Ly94ZXN0Lzg4MBCGDmh0dHA6Ly94 -+ZXN0Lzg5MBCGDmh0dHA6Ly94ZXN0LzkwMBCGDmh0dHA6Ly94ZXN0LzkxMBCGDmh0 -+dHA6Ly94ZXN0LzkyMBCGDmh0dHA6Ly94ZXN0LzkzMBCGDmh0dHA6Ly94ZXN0Lzk0 -+MBCGDmh0dHA6Ly94ZXN0Lzk1MBCGDmh0dHA6Ly94ZXN0Lzk2MBCGDmh0dHA6Ly94 -+ZXN0Lzk3MBCGDmh0dHA6Ly94ZXN0Lzk4MBCGDmh0dHA6Ly94ZXN0Lzk5MBGGD2h0 -+dHA6Ly94ZXN0LzEwMDARhg9odHRwOi8veGVzdC8xMDEwEYYPaHR0cDovL3hlc3Qv -+MTAyMBGGD2h0dHA6Ly94ZXN0LzEwMzARhg9odHRwOi8veGVzdC8xMDQwEYYPaHR0 -+cDovL3hlc3QvMTA1MBGGD2h0dHA6Ly94ZXN0LzEwNjARhg9odHRwOi8veGVzdC8x -+MDcwEYYPaHR0cDovL3hlc3QvMTA4MBGGD2h0dHA6Ly94ZXN0LzEwOTARhg9odHRw -+Oi8veGVzdC8xMTAwEYYPaHR0cDovL3hlc3QvMTExMBGGD2h0dHA6Ly94ZXN0LzEx -+MjARhg9odHRwOi8veGVzdC8xMTMwEYYPaHR0cDovL3hlc3QvMTE0MBGGD2h0dHA6 -+Ly94ZXN0LzExNTARhg9odHRwOi8veGVzdC8xMTYwEYYPaHR0cDovL3hlc3QvMTE3 -+MBGGD2h0dHA6Ly94ZXN0LzExODARhg9odHRwOi8veGVzdC8xMTkwEYYPaHR0cDov -+L3hlc3QvMTIwMBGGD2h0dHA6Ly94ZXN0LzEyMTARhg9odHRwOi8veGVzdC8xMjIw -+EYYPaHR0cDovL3hlc3QvMTIzMBGGD2h0dHA6Ly94ZXN0LzEyNDARhg9odHRwOi8v -+eGVzdC8xMjUwEYYPaHR0cDovL3hlc3QvMTI2MBGGD2h0dHA6Ly94ZXN0LzEyNzAR -+hg9odHRwOi8veGVzdC8xMjgwEYYPaHR0cDovL3hlc3QvMTI5MBGGD2h0dHA6Ly94 -+ZXN0LzEzMDARhg9odHRwOi8veGVzdC8xMzEwEYYPaHR0cDovL3hlc3QvMTMyMBGG -+D2h0dHA6Ly94ZXN0LzEzMzARhg9odHRwOi8veGVzdC8xMzQwEYYPaHR0cDovL3hl -+c3QvMTM1MBGGD2h0dHA6Ly94ZXN0LzEzNjARhg9odHRwOi8veGVzdC8xMzcwEYYP -+aHR0cDovL3hlc3QvMTM4MBGGD2h0dHA6Ly94ZXN0LzEzOTARhg9odHRwOi8veGVz -+dC8xNDAwEYYPaHR0cDovL3hlc3QvMTQxMBGGD2h0dHA6Ly94ZXN0LzE0MjARhg9o -+dHRwOi8veGVzdC8xNDMwEYYPaHR0cDovL3hlc3QvMTQ0MBGGD2h0dHA6Ly94ZXN0 -+LzE0NTARhg9odHRwOi8veGVzdC8xNDYwEYYPaHR0cDovL3hlc3QvMTQ3MBGGD2h0 -+dHA6Ly94ZXN0LzE0ODARhg9odHRwOi8veGVzdC8xNDkwEYYPaHR0cDovL3hlc3Qv -+MTUwMBGGD2h0dHA6Ly94ZXN0LzE1MTARhg9odHRwOi8veGVzdC8xNTIwEYYPaHR0 -+cDovL3hlc3QvMTUzMBGGD2h0dHA6Ly94ZXN0LzE1NDARhg9odHRwOi8veGVzdC8x -+NTUwEYYPaHR0cDovL3hlc3QvMTU2MBGGD2h0dHA6Ly94ZXN0LzE1NzARhg9odHRw -+Oi8veGVzdC8xNTgwEYYPaHR0cDovL3hlc3QvMTU5MBGGD2h0dHA6Ly94ZXN0LzE2 -+MDARhg9odHRwOi8veGVzdC8xNjEwEYYPaHR0cDovL3hlc3QvMTYyMBGGD2h0dHA6 -+Ly94ZXN0LzE2MzARhg9odHRwOi8veGVzdC8xNjQwEYYPaHR0cDovL3hlc3QvMTY1 -+MBGGD2h0dHA6Ly94ZXN0LzE2NjARhg9odHRwOi8veGVzdC8xNjcwEYYPaHR0cDov -+L3hlc3QvMTY4MBGGD2h0dHA6Ly94ZXN0LzE2OTARhg9odHRwOi8veGVzdC8xNzAw -+EYYPaHR0cDovL3hlc3QvMTcxMBGGD2h0dHA6Ly94ZXN0LzE3MjARhg9odHRwOi8v -+eGVzdC8xNzMwEYYPaHR0cDovL3hlc3QvMTc0MBGGD2h0dHA6Ly94ZXN0LzE3NTAR -+hg9odHRwOi8veGVzdC8xNzYwEYYPaHR0cDovL3hlc3QvMTc3MBGGD2h0dHA6Ly94 -+ZXN0LzE3ODARhg9odHRwOi8veGVzdC8xNzkwEYYPaHR0cDovL3hlc3QvMTgwMBGG -+D2h0dHA6Ly94ZXN0LzE4MTARhg9odHRwOi8veGVzdC8xODIwEYYPaHR0cDovL3hl -+c3QvMTgzMBGGD2h0dHA6Ly94ZXN0LzE4NDARhg9odHRwOi8veGVzdC8xODUwEYYP -+aHR0cDovL3hlc3QvMTg2MBGGD2h0dHA6Ly94ZXN0LzE4NzARhg9odHRwOi8veGVz -+dC8xODgwEYYPaHR0cDovL3hlc3QvMTg5MBGGD2h0dHA6Ly94ZXN0LzE5MDARhg9o -+dHRwOi8veGVzdC8xOTEwEYYPaHR0cDovL3hlc3QvMTkyMBGGD2h0dHA6Ly94ZXN0 -+LzE5MzARhg9odHRwOi8veGVzdC8xOTQwEYYPaHR0cDovL3hlc3QvMTk1MBGGD2h0 -+dHA6Ly94ZXN0LzE5NjARhg9odHRwOi8veGVzdC8xOTcwEYYPaHR0cDovL3hlc3Qv -+MTk4MBGGD2h0dHA6Ly94ZXN0LzE5OTARhg9odHRwOi8veGVzdC8yMDAwEYYPaHR0 -+cDovL3hlc3QvMjAxMBGGD2h0dHA6Ly94ZXN0LzIwMjARhg9odHRwOi8veGVzdC8y -+MDMwEYYPaHR0cDovL3hlc3QvMjA0MBGGD2h0dHA6Ly94ZXN0LzIwNTARhg9odHRw -+Oi8veGVzdC8yMDYwEYYPaHR0cDovL3hlc3QvMjA3MBGGD2h0dHA6Ly94ZXN0LzIw -+ODARhg9odHRwOi8veGVzdC8yMDkwEYYPaHR0cDovL3hlc3QvMjEwMBGGD2h0dHA6 -+Ly94ZXN0LzIxMTARhg9odHRwOi8veGVzdC8yMTIwEYYPaHR0cDovL3hlc3QvMjEz -+MBGGD2h0dHA6Ly94ZXN0LzIxNDARhg9odHRwOi8veGVzdC8yMTUwEYYPaHR0cDov -+L3hlc3QvMjE2MBGGD2h0dHA6Ly94ZXN0LzIxNzARhg9odHRwOi8veGVzdC8yMTgw -+EYYPaHR0cDovL3hlc3QvMjE5MBGGD2h0dHA6Ly94ZXN0LzIyMDARhg9odHRwOi8v -+eGVzdC8yMjEwEYYPaHR0cDovL3hlc3QvMjIyMBGGD2h0dHA6Ly94ZXN0LzIyMzAR -+hg9odHRwOi8veGVzdC8yMjQwEYYPaHR0cDovL3hlc3QvMjI1MBGGD2h0dHA6Ly94 -+ZXN0LzIyNjARhg9odHRwOi8veGVzdC8yMjcwEYYPaHR0cDovL3hlc3QvMjI4MBGG -+D2h0dHA6Ly94ZXN0LzIyOTARhg9odHRwOi8veGVzdC8yMzAwEYYPaHR0cDovL3hl -+c3QvMjMxMBGGD2h0dHA6Ly94ZXN0LzIzMjARhg9odHRwOi8veGVzdC8yMzMwEYYP -+aHR0cDovL3hlc3QvMjM0MBGGD2h0dHA6Ly94ZXN0LzIzNTARhg9odHRwOi8veGVz -+dC8yMzYwEYYPaHR0cDovL3hlc3QvMjM3MBGGD2h0dHA6Ly94ZXN0LzIzODARhg9o -+dHRwOi8veGVzdC8yMzkwEYYPaHR0cDovL3hlc3QvMjQwMBGGD2h0dHA6Ly94ZXN0 -+LzI0MTARhg9odHRwOi8veGVzdC8yNDIwEYYPaHR0cDovL3hlc3QvMjQzMBGGD2h0 -+dHA6Ly94ZXN0LzI0NDARhg9odHRwOi8veGVzdC8yNDUwEYYPaHR0cDovL3hlc3Qv -+MjQ2MBGGD2h0dHA6Ly94ZXN0LzI0NzARhg9odHRwOi8veGVzdC8yNDgwEYYPaHR0 -+cDovL3hlc3QvMjQ5MBGGD2h0dHA6Ly94ZXN0LzI1MDARhg9odHRwOi8veGVzdC8y -+NTEwEYYPaHR0cDovL3hlc3QvMjUyMBGGD2h0dHA6Ly94ZXN0LzI1MzARhg9odHRw -+Oi8veGVzdC8yNTQwEYYPaHR0cDovL3hlc3QvMjU1MBGGD2h0dHA6Ly94ZXN0LzI1 -+NjARhg9odHRwOi8veGVzdC8yNTcwEYYPaHR0cDovL3hlc3QvMjU4MBGGD2h0dHA6 -+Ly94ZXN0LzI1OTARhg9odHRwOi8veGVzdC8yNjAwEYYPaHR0cDovL3hlc3QvMjYx -+MBGGD2h0dHA6Ly94ZXN0LzI2MjARhg9odHRwOi8veGVzdC8yNjMwEYYPaHR0cDov -+L3hlc3QvMjY0MBGGD2h0dHA6Ly94ZXN0LzI2NTARhg9odHRwOi8veGVzdC8yNjYw -+EYYPaHR0cDovL3hlc3QvMjY3MBGGD2h0dHA6Ly94ZXN0LzI2ODARhg9odHRwOi8v -+eGVzdC8yNjkwEYYPaHR0cDovL3hlc3QvMjcwMBGGD2h0dHA6Ly94ZXN0LzI3MTAR -+hg9odHRwOi8veGVzdC8yNzIwEYYPaHR0cDovL3hlc3QvMjczMBGGD2h0dHA6Ly94 -+ZXN0LzI3NDARhg9odHRwOi8veGVzdC8yNzUwEYYPaHR0cDovL3hlc3QvMjc2MBGG -+D2h0dHA6Ly94ZXN0LzI3NzARhg9odHRwOi8veGVzdC8yNzgwEYYPaHR0cDovL3hl -+c3QvMjc5MBGGD2h0dHA6Ly94ZXN0LzI4MDARhg9odHRwOi8veGVzdC8yODEwEYYP -+aHR0cDovL3hlc3QvMjgyMBGGD2h0dHA6Ly94ZXN0LzI4MzARhg9odHRwOi8veGVz -+dC8yODQwEYYPaHR0cDovL3hlc3QvMjg1MBGGD2h0dHA6Ly94ZXN0LzI4NjARhg9o -+dHRwOi8veGVzdC8yODcwEYYPaHR0cDovL3hlc3QvMjg4MBGGD2h0dHA6Ly94ZXN0 -+LzI4OTARhg9odHRwOi8veGVzdC8yOTAwEYYPaHR0cDovL3hlc3QvMjkxMBGGD2h0 -+dHA6Ly94ZXN0LzI5MjARhg9odHRwOi8veGVzdC8yOTMwEYYPaHR0cDovL3hlc3Qv -+Mjk0MBGGD2h0dHA6Ly94ZXN0LzI5NTARhg9odHRwOi8veGVzdC8yOTYwEYYPaHR0 -+cDovL3hlc3QvMjk3MBGGD2h0dHA6Ly94ZXN0LzI5ODARhg9odHRwOi8veGVzdC8y -+OTkwEYYPaHR0cDovL3hlc3QvMzAwMBGGD2h0dHA6Ly94ZXN0LzMwMTARhg9odHRw -+Oi8veGVzdC8zMDIwEYYPaHR0cDovL3hlc3QvMzAzMBGGD2h0dHA6Ly94ZXN0LzMw -+NDARhg9odHRwOi8veGVzdC8zMDUwEYYPaHR0cDovL3hlc3QvMzA2MBGGD2h0dHA6 -+Ly94ZXN0LzMwNzARhg9odHRwOi8veGVzdC8zMDgwEYYPaHR0cDovL3hlc3QvMzA5 -+MBGGD2h0dHA6Ly94ZXN0LzMxMDARhg9odHRwOi8veGVzdC8zMTEwEYYPaHR0cDov -+L3hlc3QvMzEyMBGGD2h0dHA6Ly94ZXN0LzMxMzARhg9odHRwOi8veGVzdC8zMTQw -+EYYPaHR0cDovL3hlc3QvMzE1MBGGD2h0dHA6Ly94ZXN0LzMxNjARhg9odHRwOi8v -+eGVzdC8zMTcwEYYPaHR0cDovL3hlc3QvMzE4MBGGD2h0dHA6Ly94ZXN0LzMxOTAR -+hg9odHRwOi8veGVzdC8zMjAwEYYPaHR0cDovL3hlc3QvMzIxMBGGD2h0dHA6Ly94 -+ZXN0LzMyMjARhg9odHRwOi8veGVzdC8zMjMwEYYPaHR0cDovL3hlc3QvMzI0MBGG -+D2h0dHA6Ly94ZXN0LzMyNTARhg9odHRwOi8veGVzdC8zMjYwEYYPaHR0cDovL3hl -+c3QvMzI3MBGGD2h0dHA6Ly94ZXN0LzMyODARhg9odHRwOi8veGVzdC8zMjkwEYYP -+aHR0cDovL3hlc3QvMzMwMBGGD2h0dHA6Ly94ZXN0LzMzMTARhg9odHRwOi8veGVz -+dC8zMzIwEYYPaHR0cDovL3hlc3QvMzMzMBGGD2h0dHA6Ly94ZXN0LzMzNDARhg9o -+dHRwOi8veGVzdC8zMzUwEYYPaHR0cDovL3hlc3QvMzM2MBGGD2h0dHA6Ly94ZXN0 -+LzMzNzARhg9odHRwOi8veGVzdC8zMzgwEYYPaHR0cDovL3hlc3QvMzM5MBGGD2h0 -+dHA6Ly94ZXN0LzM0MDARhg9odHRwOi8veGVzdC8zNDEwEYYPaHR0cDovL3hlc3Qv -+MzQyMBGGD2h0dHA6Ly94ZXN0LzM0MzARhg9odHRwOi8veGVzdC8zNDQwEYYPaHR0 -+cDovL3hlc3QvMzQ1MBGGD2h0dHA6Ly94ZXN0LzM0NjARhg9odHRwOi8veGVzdC8z -+NDcwEYYPaHR0cDovL3hlc3QvMzQ4MBGGD2h0dHA6Ly94ZXN0LzM0OTARhg9odHRw -+Oi8veGVzdC8zNTAwEYYPaHR0cDovL3hlc3QvMzUxMBGGD2h0dHA6Ly94ZXN0LzM1 -+MjARhg9odHRwOi8veGVzdC8zNTMwEYYPaHR0cDovL3hlc3QvMzU0MBGGD2h0dHA6 -+Ly94ZXN0LzM1NTARhg9odHRwOi8veGVzdC8zNTYwEYYPaHR0cDovL3hlc3QvMzU3 -+MBGGD2h0dHA6Ly94ZXN0LzM1ODARhg9odHRwOi8veGVzdC8zNTkwEYYPaHR0cDov -+L3hlc3QvMzYwMBGGD2h0dHA6Ly94ZXN0LzM2MTARhg9odHRwOi8veGVzdC8zNjIw -+EYYPaHR0cDovL3hlc3QvMzYzMBGGD2h0dHA6Ly94ZXN0LzM2NDARhg9odHRwOi8v -+eGVzdC8zNjUwEYYPaHR0cDovL3hlc3QvMzY2MBGGD2h0dHA6Ly94ZXN0LzM2NzAR -+hg9odHRwOi8veGVzdC8zNjgwEYYPaHR0cDovL3hlc3QvMzY5MBGGD2h0dHA6Ly94 -+ZXN0LzM3MDARhg9odHRwOi8veGVzdC8zNzEwEYYPaHR0cDovL3hlc3QvMzcyMBGG -+D2h0dHA6Ly94ZXN0LzM3MzARhg9odHRwOi8veGVzdC8zNzQwEYYPaHR0cDovL3hl -+c3QvMzc1MBGGD2h0dHA6Ly94ZXN0LzM3NjARhg9odHRwOi8veGVzdC8zNzcwEYYP -+aHR0cDovL3hlc3QvMzc4MBGGD2h0dHA6Ly94ZXN0LzM3OTARhg9odHRwOi8veGVz -+dC8zODAwEYYPaHR0cDovL3hlc3QvMzgxMBGGD2h0dHA6Ly94ZXN0LzM4MjARhg9o -+dHRwOi8veGVzdC8zODMwEYYPaHR0cDovL3hlc3QvMzg0MBGGD2h0dHA6Ly94ZXN0 -+LzM4NTARhg9odHRwOi8veGVzdC8zODYwEYYPaHR0cDovL3hlc3QvMzg3MBGGD2h0 -+dHA6Ly94ZXN0LzM4ODARhg9odHRwOi8veGVzdC8zODkwEYYPaHR0cDovL3hlc3Qv -+MzkwMBGGD2h0dHA6Ly94ZXN0LzM5MTARhg9odHRwOi8veGVzdC8zOTIwEYYPaHR0 -+cDovL3hlc3QvMzkzMBGGD2h0dHA6Ly94ZXN0LzM5NDARhg9odHRwOi8veGVzdC8z -+OTUwEYYPaHR0cDovL3hlc3QvMzk2MBGGD2h0dHA6Ly94ZXN0LzM5NzARhg9odHRw -+Oi8veGVzdC8zOTgwEYYPaHR0cDovL3hlc3QvMzk5MBGGD2h0dHA6Ly94ZXN0LzQw -+MDARhg9odHRwOi8veGVzdC80MDEwEYYPaHR0cDovL3hlc3QvNDAyMBGGD2h0dHA6 -+Ly94ZXN0LzQwMzARhg9odHRwOi8veGVzdC80MDQwEYYPaHR0cDovL3hlc3QvNDA1 -+MBGGD2h0dHA6Ly94ZXN0LzQwNjARhg9odHRwOi8veGVzdC80MDcwEYYPaHR0cDov -+L3hlc3QvNDA4MBGGD2h0dHA6Ly94ZXN0LzQwOTARhg9odHRwOi8veGVzdC80MTAw -+EYYPaHR0cDovL3hlc3QvNDExMBGGD2h0dHA6Ly94ZXN0LzQxMjARhg9odHRwOi8v -+eGVzdC80MTMwEYYPaHR0cDovL3hlc3QvNDE0MBGGD2h0dHA6Ly94ZXN0LzQxNTAR -+hg9odHRwOi8veGVzdC80MTYwEYYPaHR0cDovL3hlc3QvNDE3MBGGD2h0dHA6Ly94 -+ZXN0LzQxODARhg9odHRwOi8veGVzdC80MTkwEYYPaHR0cDovL3hlc3QvNDIwMBGG -+D2h0dHA6Ly94ZXN0LzQyMTARhg9odHRwOi8veGVzdC80MjIwEYYPaHR0cDovL3hl -+c3QvNDIzMBGGD2h0dHA6Ly94ZXN0LzQyNDARhg9odHRwOi8veGVzdC80MjUwEYYP -+aHR0cDovL3hlc3QvNDI2MBGGD2h0dHA6Ly94ZXN0LzQyNzARhg9odHRwOi8veGVz -+dC80MjgwEYYPaHR0cDovL3hlc3QvNDI5MBGGD2h0dHA6Ly94ZXN0LzQzMDARhg9o -+dHRwOi8veGVzdC80MzEwEYYPaHR0cDovL3hlc3QvNDMyMBGGD2h0dHA6Ly94ZXN0 -+LzQzMzARhg9odHRwOi8veGVzdC80MzQwEYYPaHR0cDovL3hlc3QvNDM1MBGGD2h0 -+dHA6Ly94ZXN0LzQzNjARhg9odHRwOi8veGVzdC80MzcwEYYPaHR0cDovL3hlc3Qv -+NDM4MBGGD2h0dHA6Ly94ZXN0LzQzOTARhg9odHRwOi8veGVzdC80NDAwEYYPaHR0 -+cDovL3hlc3QvNDQxMBGGD2h0dHA6Ly94ZXN0LzQ0MjARhg9odHRwOi8veGVzdC80 -+NDMwEYYPaHR0cDovL3hlc3QvNDQ0MBGGD2h0dHA6Ly94ZXN0LzQ0NTARhg9odHRw -+Oi8veGVzdC80NDYwEYYPaHR0cDovL3hlc3QvNDQ3MBGGD2h0dHA6Ly94ZXN0LzQ0 -+ODARhg9odHRwOi8veGVzdC80NDkwEYYPaHR0cDovL3hlc3QvNDUwMBGGD2h0dHA6 -+Ly94ZXN0LzQ1MTARhg9odHRwOi8veGVzdC80NTIwEYYPaHR0cDovL3hlc3QvNDUz -+MBGGD2h0dHA6Ly94ZXN0LzQ1NDARhg9odHRwOi8veGVzdC80NTUwEYYPaHR0cDov -+L3hlc3QvNDU2MBGGD2h0dHA6Ly94ZXN0LzQ1NzARhg9odHRwOi8veGVzdC80NTgw -+EYYPaHR0cDovL3hlc3QvNDU5MBGGD2h0dHA6Ly94ZXN0LzQ2MDARhg9odHRwOi8v -+eGVzdC80NjEwEYYPaHR0cDovL3hlc3QvNDYyMBGGD2h0dHA6Ly94ZXN0LzQ2MzAR -+hg9odHRwOi8veGVzdC80NjQwEYYPaHR0cDovL3hlc3QvNDY1MBGGD2h0dHA6Ly94 -+ZXN0LzQ2NjARhg9odHRwOi8veGVzdC80NjcwEYYPaHR0cDovL3hlc3QvNDY4MBGG -+D2h0dHA6Ly94ZXN0LzQ2OTARhg9odHRwOi8veGVzdC80NzAwEYYPaHR0cDovL3hl -+c3QvNDcxMBGGD2h0dHA6Ly94ZXN0LzQ3MjARhg9odHRwOi8veGVzdC80NzMwEYYP -+aHR0cDovL3hlc3QvNDc0MBGGD2h0dHA6Ly94ZXN0LzQ3NTARhg9odHRwOi8veGVz -+dC80NzYwEYYPaHR0cDovL3hlc3QvNDc3MBGGD2h0dHA6Ly94ZXN0LzQ3ODARhg9o -+dHRwOi8veGVzdC80NzkwEYYPaHR0cDovL3hlc3QvNDgwMBGGD2h0dHA6Ly94ZXN0 -+LzQ4MTARhg9odHRwOi8veGVzdC80ODIwEYYPaHR0cDovL3hlc3QvNDgzMBGGD2h0 -+dHA6Ly94ZXN0LzQ4NDARhg9odHRwOi8veGVzdC80ODUwEYYPaHR0cDovL3hlc3Qv -+NDg2MBGGD2h0dHA6Ly94ZXN0LzQ4NzARhg9odHRwOi8veGVzdC80ODgwEYYPaHR0 -+cDovL3hlc3QvNDg5MBGGD2h0dHA6Ly94ZXN0LzQ5MDARhg9odHRwOi8veGVzdC80 -+OTEwEYYPaHR0cDovL3hlc3QvNDkyMBGGD2h0dHA6Ly94ZXN0LzQ5MzARhg9odHRw -+Oi8veGVzdC80OTQwEYYPaHR0cDovL3hlc3QvNDk1MBGGD2h0dHA6Ly94ZXN0LzQ5 -+NjARhg9odHRwOi8veGVzdC80OTcwEYYPaHR0cDovL3hlc3QvNDk4MBGGD2h0dHA6 -+Ly94ZXN0LzQ5OTARhg9odHRwOi8veGVzdC81MDAwEYYPaHR0cDovL3hlc3QvNTAx -+MBGGD2h0dHA6Ly94ZXN0LzUwMjARhg9odHRwOi8veGVzdC81MDMwEYYPaHR0cDov -+L3hlc3QvNTA0MBGGD2h0dHA6Ly94ZXN0LzUwNTARhg9odHRwOi8veGVzdC81MDYw -+EYYPaHR0cDovL3hlc3QvNTA3MBGGD2h0dHA6Ly94ZXN0LzUwODARhg9odHRwOi8v -+eGVzdC81MDkwEYYPaHR0cDovL3hlc3QvNTEwMBGGD2h0dHA6Ly94ZXN0LzUxMTAR -+hg9odHRwOi8veGVzdC81MTIwEYYPaHR0cDovL3hlc3QvNTEzMBGGD2h0dHA6Ly94 -+ZXN0LzUxNDARhg9odHRwOi8veGVzdC81MTUwEYYPaHR0cDovL3hlc3QvNTE2MBGG -+D2h0dHA6Ly94ZXN0LzUxNzARhg9odHRwOi8veGVzdC81MTgwEYYPaHR0cDovL3hl -+c3QvNTE5MBGGD2h0dHA6Ly94ZXN0LzUyMDARhg9odHRwOi8veGVzdC81MjEwEYYP -+aHR0cDovL3hlc3QvNTIyMBGGD2h0dHA6Ly94ZXN0LzUyMzARhg9odHRwOi8veGVz -+dC81MjQwEYYPaHR0cDovL3hlc3QvNTI1MBGGD2h0dHA6Ly94ZXN0LzUyNjARhg9o -+dHRwOi8veGVzdC81MjcwEYYPaHR0cDovL3hlc3QvNTI4MBGGD2h0dHA6Ly94ZXN0 -+LzUyOTARhg9odHRwOi8veGVzdC81MzAwEYYPaHR0cDovL3hlc3QvNTMxMBGGD2h0 -+dHA6Ly94ZXN0LzUzMjARhg9odHRwOi8veGVzdC81MzMwEYYPaHR0cDovL3hlc3Qv -+NTM0MBGGD2h0dHA6Ly94ZXN0LzUzNTARhg9odHRwOi8veGVzdC81MzYwEYYPaHR0 -+cDovL3hlc3QvNTM3MBGGD2h0dHA6Ly94ZXN0LzUzODARhg9odHRwOi8veGVzdC81 -+MzkwEYYPaHR0cDovL3hlc3QvNTQwMBGGD2h0dHA6Ly94ZXN0LzU0MTARhg9odHRw -+Oi8veGVzdC81NDIwEYYPaHR0cDovL3hlc3QvNTQzMBGGD2h0dHA6Ly94ZXN0LzU0 -+NDARhg9odHRwOi8veGVzdC81NDUwEYYPaHR0cDovL3hlc3QvNTQ2MBGGD2h0dHA6 -+Ly94ZXN0LzU0NzARhg9odHRwOi8veGVzdC81NDgwEYYPaHR0cDovL3hlc3QvNTQ5 -+MBGGD2h0dHA6Ly94ZXN0LzU1MDARhg9odHRwOi8veGVzdC81NTEwEYYPaHR0cDov -+L3hlc3QvNTUyMBGGD2h0dHA6Ly94ZXN0LzU1MzARhg9odHRwOi8veGVzdC81NTQw -+EYYPaHR0cDovL3hlc3QvNTU1MBGGD2h0dHA6Ly94ZXN0LzU1NjARhg9odHRwOi8v -+eGVzdC81NTcwEYYPaHR0cDovL3hlc3QvNTU4MBGGD2h0dHA6Ly94ZXN0LzU1OTAR -+hg9odHRwOi8veGVzdC81NjAwEYYPaHR0cDovL3hlc3QvNTYxMBGGD2h0dHA6Ly94 -+ZXN0LzU2MjARhg9odHRwOi8veGVzdC81NjMwEYYPaHR0cDovL3hlc3QvNTY0MBGG -+D2h0dHA6Ly94ZXN0LzU2NTARhg9odHRwOi8veGVzdC81NjYwEYYPaHR0cDovL3hl -+c3QvNTY3MBGGD2h0dHA6Ly94ZXN0LzU2ODARhg9odHRwOi8veGVzdC81NjkwEYYP -+aHR0cDovL3hlc3QvNTcwMBGGD2h0dHA6Ly94ZXN0LzU3MTARhg9odHRwOi8veGVz -+dC81NzIwEYYPaHR0cDovL3hlc3QvNTczMBGGD2h0dHA6Ly94ZXN0LzU3NDARhg9o -+dHRwOi8veGVzdC81NzUwEYYPaHR0cDovL3hlc3QvNTc2MBGGD2h0dHA6Ly94ZXN0 -+LzU3NzARhg9odHRwOi8veGVzdC81NzgwEYYPaHR0cDovL3hlc3QvNTc5MBGGD2h0 -+dHA6Ly94ZXN0LzU4MDARhg9odHRwOi8veGVzdC81ODEwEYYPaHR0cDovL3hlc3Qv -+NTgyMBGGD2h0dHA6Ly94ZXN0LzU4MzARhg9odHRwOi8veGVzdC81ODQwEYYPaHR0 -+cDovL3hlc3QvNTg1MBGGD2h0dHA6Ly94ZXN0LzU4NjARhg9odHRwOi8veGVzdC81 -+ODcwEYYPaHR0cDovL3hlc3QvNTg4MBGGD2h0dHA6Ly94ZXN0LzU4OTARhg9odHRw -+Oi8veGVzdC81OTAwEYYPaHR0cDovL3hlc3QvNTkxMBGGD2h0dHA6Ly94ZXN0LzU5 -+MjARhg9odHRwOi8veGVzdC81OTMwEYYPaHR0cDovL3hlc3QvNTk0MBGGD2h0dHA6 -+Ly94ZXN0LzU5NTARhg9odHRwOi8veGVzdC81OTYwEYYPaHR0cDovL3hlc3QvNTk3 -+MBGGD2h0dHA6Ly94ZXN0LzU5ODARhg9odHRwOi8veGVzdC81OTkwEYYPaHR0cDov -+L3hlc3QvNjAwMBGGD2h0dHA6Ly94ZXN0LzYwMTARhg9odHRwOi8veGVzdC82MDIw -+EYYPaHR0cDovL3hlc3QvNjAzMBGGD2h0dHA6Ly94ZXN0LzYwNDARhg9odHRwOi8v -+eGVzdC82MDUwEYYPaHR0cDovL3hlc3QvNjA2MBGGD2h0dHA6Ly94ZXN0LzYwNzAR -+hg9odHRwOi8veGVzdC82MDgwEYYPaHR0cDovL3hlc3QvNjA5MBGGD2h0dHA6Ly94 -+ZXN0LzYxMDARhg9odHRwOi8veGVzdC82MTEwEYYPaHR0cDovL3hlc3QvNjEyMBGG -+D2h0dHA6Ly94ZXN0LzYxMzARhg9odHRwOi8veGVzdC82MTQwEYYPaHR0cDovL3hl -+c3QvNjE1MBGGD2h0dHA6Ly94ZXN0LzYxNjARhg9odHRwOi8veGVzdC82MTcwEYYP -+aHR0cDovL3hlc3QvNjE4MBGGD2h0dHA6Ly94ZXN0LzYxOTARhg9odHRwOi8veGVz -+dC82MjAwEYYPaHR0cDovL3hlc3QvNjIxMBGGD2h0dHA6Ly94ZXN0LzYyMjARhg9o -+dHRwOi8veGVzdC82MjMwEYYPaHR0cDovL3hlc3QvNjI0MBGGD2h0dHA6Ly94ZXN0 -+LzYyNTARhg9odHRwOi8veGVzdC82MjYwEYYPaHR0cDovL3hlc3QvNjI3MBGGD2h0 -+dHA6Ly94ZXN0LzYyODARhg9odHRwOi8veGVzdC82MjkwEYYPaHR0cDovL3hlc3Qv -+NjMwMBGGD2h0dHA6Ly94ZXN0LzYzMTARhg9odHRwOi8veGVzdC82MzIwEYYPaHR0 -+cDovL3hlc3QvNjMzMBGGD2h0dHA6Ly94ZXN0LzYzNDARhg9odHRwOi8veGVzdC82 -+MzUwEYYPaHR0cDovL3hlc3QvNjM2MBGGD2h0dHA6Ly94ZXN0LzYzNzARhg9odHRw -+Oi8veGVzdC82MzgwEYYPaHR0cDovL3hlc3QvNjM5MBGGD2h0dHA6Ly94ZXN0LzY0 -+MDARhg9odHRwOi8veGVzdC82NDEwEYYPaHR0cDovL3hlc3QvNjQyMBGGD2h0dHA6 -+Ly94ZXN0LzY0MzARhg9odHRwOi8veGVzdC82NDQwEYYPaHR0cDovL3hlc3QvNjQ1 -+MBGGD2h0dHA6Ly94ZXN0LzY0NjARhg9odHRwOi8veGVzdC82NDcwEYYPaHR0cDov -+L3hlc3QvNjQ4MBGGD2h0dHA6Ly94ZXN0LzY0OTARhg9odHRwOi8veGVzdC82NTAw -+EYYPaHR0cDovL3hlc3QvNjUxMBGGD2h0dHA6Ly94ZXN0LzY1MjARhg9odHRwOi8v -+eGVzdC82NTMwEYYPaHR0cDovL3hlc3QvNjU0MBGGD2h0dHA6Ly94ZXN0LzY1NTAR -+hg9odHRwOi8veGVzdC82NTYwEYYPaHR0cDovL3hlc3QvNjU3MBGGD2h0dHA6Ly94 -+ZXN0LzY1ODARhg9odHRwOi8veGVzdC82NTkwEYYPaHR0cDovL3hlc3QvNjYwMBGG -+D2h0dHA6Ly94ZXN0LzY2MTARhg9odHRwOi8veGVzdC82NjIwEYYPaHR0cDovL3hl -+c3QvNjYzMBGGD2h0dHA6Ly94ZXN0LzY2NDARhg9odHRwOi8veGVzdC82NjUwEYYP -+aHR0cDovL3hlc3QvNjY2MBGGD2h0dHA6Ly94ZXN0LzY2NzARhg9odHRwOi8veGVz -+dC82NjgwEYYPaHR0cDovL3hlc3QvNjY5MBGGD2h0dHA6Ly94ZXN0LzY3MDARhg9o -+dHRwOi8veGVzdC82NzEwEYYPaHR0cDovL3hlc3QvNjcyMBGGD2h0dHA6Ly94ZXN0 -+LzY3MzARhg9odHRwOi8veGVzdC82NzQwEYYPaHR0cDovL3hlc3QvNjc1MBGGD2h0 -+dHA6Ly94ZXN0LzY3NjARhg9odHRwOi8veGVzdC82NzcwEYYPaHR0cDovL3hlc3Qv -+Njc4MBGGD2h0dHA6Ly94ZXN0LzY3OTARhg9odHRwOi8veGVzdC82ODAwEYYPaHR0 -+cDovL3hlc3QvNjgxMBGGD2h0dHA6Ly94ZXN0LzY4MjARhg9odHRwOi8veGVzdC82 -+ODMwEYYPaHR0cDovL3hlc3QvNjg0MBGGD2h0dHA6Ly94ZXN0LzY4NTARhg9odHRw -+Oi8veGVzdC82ODYwEYYPaHR0cDovL3hlc3QvNjg3MBGGD2h0dHA6Ly94ZXN0LzY4 -+ODARhg9odHRwOi8veGVzdC82ODkwEYYPaHR0cDovL3hlc3QvNjkwMBGGD2h0dHA6 -+Ly94ZXN0LzY5MTARhg9odHRwOi8veGVzdC82OTIwEYYPaHR0cDovL3hlc3QvNjkz -+MBGGD2h0dHA6Ly94ZXN0LzY5NDARhg9odHRwOi8veGVzdC82OTUwEYYPaHR0cDov -+L3hlc3QvNjk2MBGGD2h0dHA6Ly94ZXN0LzY5NzARhg9odHRwOi8veGVzdC82OTgw -+EYYPaHR0cDovL3hlc3QvNjk5MBGGD2h0dHA6Ly94ZXN0LzcwMDARhg9odHRwOi8v -+eGVzdC83MDEwEYYPaHR0cDovL3hlc3QvNzAyMBGGD2h0dHA6Ly94ZXN0LzcwMzAR -+hg9odHRwOi8veGVzdC83MDQwEYYPaHR0cDovL3hlc3QvNzA1MBGGD2h0dHA6Ly94 -+ZXN0LzcwNjARhg9odHRwOi8veGVzdC83MDcwEYYPaHR0cDovL3hlc3QvNzA4MBGG -+D2h0dHA6Ly94ZXN0LzcwOTARhg9odHRwOi8veGVzdC83MTAwEYYPaHR0cDovL3hl -+c3QvNzExMBGGD2h0dHA6Ly94ZXN0LzcxMjARhg9odHRwOi8veGVzdC83MTMwEYYP -+aHR0cDovL3hlc3QvNzE0MBGGD2h0dHA6Ly94ZXN0LzcxNTARhg9odHRwOi8veGVz -+dC83MTYwEYYPaHR0cDovL3hlc3QvNzE3MBGGD2h0dHA6Ly94ZXN0LzcxODARhg9o -+dHRwOi8veGVzdC83MTkwEYYPaHR0cDovL3hlc3QvNzIwMBGGD2h0dHA6Ly94ZXN0 -+LzcyMTARhg9odHRwOi8veGVzdC83MjIwEYYPaHR0cDovL3hlc3QvNzIzMBGGD2h0 -+dHA6Ly94ZXN0LzcyNDARhg9odHRwOi8veGVzdC83MjUwEYYPaHR0cDovL3hlc3Qv -+NzI2MBGGD2h0dHA6Ly94ZXN0LzcyNzARhg9odHRwOi8veGVzdC83MjgwEYYPaHR0 -+cDovL3hlc3QvNzI5MBGGD2h0dHA6Ly94ZXN0LzczMDARhg9odHRwOi8veGVzdC83 -+MzEwEYYPaHR0cDovL3hlc3QvNzMyMBGGD2h0dHA6Ly94ZXN0LzczMzARhg9odHRw -+Oi8veGVzdC83MzQwEYYPaHR0cDovL3hlc3QvNzM1MBGGD2h0dHA6Ly94ZXN0Lzcz -+NjARhg9odHRwOi8veGVzdC83MzcwEYYPaHR0cDovL3hlc3QvNzM4MBGGD2h0dHA6 -+Ly94ZXN0LzczOTARhg9odHRwOi8veGVzdC83NDAwEYYPaHR0cDovL3hlc3QvNzQx -+MBGGD2h0dHA6Ly94ZXN0Lzc0MjARhg9odHRwOi8veGVzdC83NDMwEYYPaHR0cDov -+L3hlc3QvNzQ0MBGGD2h0dHA6Ly94ZXN0Lzc0NTARhg9odHRwOi8veGVzdC83NDYw -+EYYPaHR0cDovL3hlc3QvNzQ3MBGGD2h0dHA6Ly94ZXN0Lzc0ODARhg9odHRwOi8v -+eGVzdC83NDkwEYYPaHR0cDovL3hlc3QvNzUwMBGGD2h0dHA6Ly94ZXN0Lzc1MTAR -+hg9odHRwOi8veGVzdC83NTIwEYYPaHR0cDovL3hlc3QvNzUzMBGGD2h0dHA6Ly94 -+ZXN0Lzc1NDARhg9odHRwOi8veGVzdC83NTUwEYYPaHR0cDovL3hlc3QvNzU2MBGG -+D2h0dHA6Ly94ZXN0Lzc1NzARhg9odHRwOi8veGVzdC83NTgwEYYPaHR0cDovL3hl -+c3QvNzU5MBGGD2h0dHA6Ly94ZXN0Lzc2MDARhg9odHRwOi8veGVzdC83NjEwEYYP -+aHR0cDovL3hlc3QvNzYyMBGGD2h0dHA6Ly94ZXN0Lzc2MzARhg9odHRwOi8veGVz -+dC83NjQwEYYPaHR0cDovL3hlc3QvNzY1MBGGD2h0dHA6Ly94ZXN0Lzc2NjARhg9o -+dHRwOi8veGVzdC83NjcwEYYPaHR0cDovL3hlc3QvNzY4MBGGD2h0dHA6Ly94ZXN0 -+Lzc2OTARhg9odHRwOi8veGVzdC83NzAwEYYPaHR0cDovL3hlc3QvNzcxMBGGD2h0 -+dHA6Ly94ZXN0Lzc3MjARhg9odHRwOi8veGVzdC83NzMwEYYPaHR0cDovL3hlc3Qv -+Nzc0MBGGD2h0dHA6Ly94ZXN0Lzc3NTARhg9odHRwOi8veGVzdC83NzYwEYYPaHR0 -+cDovL3hlc3QvNzc3MBGGD2h0dHA6Ly94ZXN0Lzc3ODARhg9odHRwOi8veGVzdC83 -+NzkwEYYPaHR0cDovL3hlc3QvNzgwMBGGD2h0dHA6Ly94ZXN0Lzc4MTARhg9odHRw -+Oi8veGVzdC83ODIwEYYPaHR0cDovL3hlc3QvNzgzMBGGD2h0dHA6Ly94ZXN0Lzc4 -+NDARhg9odHRwOi8veGVzdC83ODUwEYYPaHR0cDovL3hlc3QvNzg2MBGGD2h0dHA6 -+Ly94ZXN0Lzc4NzARhg9odHRwOi8veGVzdC83ODgwEYYPaHR0cDovL3hlc3QvNzg5 -+MBGGD2h0dHA6Ly94ZXN0Lzc5MDARhg9odHRwOi8veGVzdC83OTEwEYYPaHR0cDov -+L3hlc3QvNzkyMBGGD2h0dHA6Ly94ZXN0Lzc5MzARhg9odHRwOi8veGVzdC83OTQw -+EYYPaHR0cDovL3hlc3QvNzk1MBGGD2h0dHA6Ly94ZXN0Lzc5NjARhg9odHRwOi8v -+eGVzdC83OTcwEYYPaHR0cDovL3hlc3QvNzk4MBGGD2h0dHA6Ly94ZXN0Lzc5OTAR -+hg9odHRwOi8veGVzdC84MDAwEYYPaHR0cDovL3hlc3QvODAxMBGGD2h0dHA6Ly94 -+ZXN0LzgwMjARhg9odHRwOi8veGVzdC84MDMwEYYPaHR0cDovL3hlc3QvODA0MBGG -+D2h0dHA6Ly94ZXN0LzgwNTARhg9odHRwOi8veGVzdC84MDYwEYYPaHR0cDovL3hl -+c3QvODA3MBGGD2h0dHA6Ly94ZXN0LzgwODARhg9odHRwOi8veGVzdC84MDkwEYYP -+aHR0cDovL3hlc3QvODEwMBGGD2h0dHA6Ly94ZXN0LzgxMTARhg9odHRwOi8veGVz -+dC84MTIwEYYPaHR0cDovL3hlc3QvODEzMBGGD2h0dHA6Ly94ZXN0LzgxNDARhg9o -+dHRwOi8veGVzdC84MTUwEYYPaHR0cDovL3hlc3QvODE2MBGGD2h0dHA6Ly94ZXN0 -+LzgxNzARhg9odHRwOi8veGVzdC84MTgwEYYPaHR0cDovL3hlc3QvODE5MBGGD2h0 -+dHA6Ly94ZXN0LzgyMDARhg9odHRwOi8veGVzdC84MjEwEYYPaHR0cDovL3hlc3Qv -+ODIyMBGGD2h0dHA6Ly94ZXN0LzgyMzARhg9odHRwOi8veGVzdC84MjQwEYYPaHR0 -+cDovL3hlc3QvODI1MBGGD2h0dHA6Ly94ZXN0LzgyNjARhg9odHRwOi8veGVzdC84 -+MjcwEYYPaHR0cDovL3hlc3QvODI4MBGGD2h0dHA6Ly94ZXN0LzgyOTARhg9odHRw -+Oi8veGVzdC84MzAwEYYPaHR0cDovL3hlc3QvODMxMBGGD2h0dHA6Ly94ZXN0Lzgz -+MjARhg9odHRwOi8veGVzdC84MzMwEYYPaHR0cDovL3hlc3QvODM0MBGGD2h0dHA6 -+Ly94ZXN0LzgzNTARhg9odHRwOi8veGVzdC84MzYwEYYPaHR0cDovL3hlc3QvODM3 -+MBGGD2h0dHA6Ly94ZXN0LzgzODARhg9odHRwOi8veGVzdC84MzkwEYYPaHR0cDov -+L3hlc3QvODQwMBGGD2h0dHA6Ly94ZXN0Lzg0MTARhg9odHRwOi8veGVzdC84NDIw -+EYYPaHR0cDovL3hlc3QvODQzMBGGD2h0dHA6Ly94ZXN0Lzg0NDARhg9odHRwOi8v -+eGVzdC84NDUwEYYPaHR0cDovL3hlc3QvODQ2MBGGD2h0dHA6Ly94ZXN0Lzg0NzAR -+hg9odHRwOi8veGVzdC84NDgwEYYPaHR0cDovL3hlc3QvODQ5MBGGD2h0dHA6Ly94 -+ZXN0Lzg1MDARhg9odHRwOi8veGVzdC84NTEwEYYPaHR0cDovL3hlc3QvODUyMBGG -+D2h0dHA6Ly94ZXN0Lzg1MzARhg9odHRwOi8veGVzdC84NTQwEYYPaHR0cDovL3hl -+c3QvODU1MBGGD2h0dHA6Ly94ZXN0Lzg1NjARhg9odHRwOi8veGVzdC84NTcwEYYP -+aHR0cDovL3hlc3QvODU4MBGGD2h0dHA6Ly94ZXN0Lzg1OTARhg9odHRwOi8veGVz -+dC84NjAwEYYPaHR0cDovL3hlc3QvODYxMBGGD2h0dHA6Ly94ZXN0Lzg2MjARhg9o -+dHRwOi8veGVzdC84NjMwEYYPaHR0cDovL3hlc3QvODY0MBGGD2h0dHA6Ly94ZXN0 -+Lzg2NTARhg9odHRwOi8veGVzdC84NjYwEYYPaHR0cDovL3hlc3QvODY3MBGGD2h0 -+dHA6Ly94ZXN0Lzg2ODARhg9odHRwOi8veGVzdC84NjkwEYYPaHR0cDovL3hlc3Qv -+ODcwMBGGD2h0dHA6Ly94ZXN0Lzg3MTARhg9odHRwOi8veGVzdC84NzIwEYYPaHR0 -+cDovL3hlc3QvODczMBGGD2h0dHA6Ly94ZXN0Lzg3NDARhg9odHRwOi8veGVzdC84 -+NzUwEYYPaHR0cDovL3hlc3QvODc2MBGGD2h0dHA6Ly94ZXN0Lzg3NzARhg9odHRw -+Oi8veGVzdC84NzgwEYYPaHR0cDovL3hlc3QvODc5MBGGD2h0dHA6Ly94ZXN0Lzg4 -+MDARhg9odHRwOi8veGVzdC84ODEwEYYPaHR0cDovL3hlc3QvODgyMBGGD2h0dHA6 -+Ly94ZXN0Lzg4MzARhg9odHRwOi8veGVzdC84ODQwEYYPaHR0cDovL3hlc3QvODg1 -+MBGGD2h0dHA6Ly94ZXN0Lzg4NjARhg9odHRwOi8veGVzdC84ODcwEYYPaHR0cDov -+L3hlc3QvODg4MBGGD2h0dHA6Ly94ZXN0Lzg4OTARhg9odHRwOi8veGVzdC84OTAw -+EYYPaHR0cDovL3hlc3QvODkxMBGGD2h0dHA6Ly94ZXN0Lzg5MjARhg9odHRwOi8v -+eGVzdC84OTMwEYYPaHR0cDovL3hlc3QvODk0MBGGD2h0dHA6Ly94ZXN0Lzg5NTAR -+hg9odHRwOi8veGVzdC84OTYwEYYPaHR0cDovL3hlc3QvODk3MBGGD2h0dHA6Ly94 -+ZXN0Lzg5ODARhg9odHRwOi8veGVzdC84OTkwEYYPaHR0cDovL3hlc3QvOTAwMBGG -+D2h0dHA6Ly94ZXN0LzkwMTARhg9odHRwOi8veGVzdC85MDIwEYYPaHR0cDovL3hl -+c3QvOTAzMBGGD2h0dHA6Ly94ZXN0LzkwNDARhg9odHRwOi8veGVzdC85MDUwEYYP -+aHR0cDovL3hlc3QvOTA2MBGGD2h0dHA6Ly94ZXN0LzkwNzARhg9odHRwOi8veGVz -+dC85MDgwEYYPaHR0cDovL3hlc3QvOTA5MBGGD2h0dHA6Ly94ZXN0LzkxMDARhg9o -+dHRwOi8veGVzdC85MTEwEYYPaHR0cDovL3hlc3QvOTEyMBGGD2h0dHA6Ly94ZXN0 -+LzkxMzARhg9odHRwOi8veGVzdC85MTQwEYYPaHR0cDovL3hlc3QvOTE1MBGGD2h0 -+dHA6Ly94ZXN0LzkxNjARhg9odHRwOi8veGVzdC85MTcwEYYPaHR0cDovL3hlc3Qv -+OTE4MBGGD2h0dHA6Ly94ZXN0LzkxOTARhg9odHRwOi8veGVzdC85MjAwEYYPaHR0 -+cDovL3hlc3QvOTIxMBGGD2h0dHA6Ly94ZXN0LzkyMjARhg9odHRwOi8veGVzdC85 -+MjMwEYYPaHR0cDovL3hlc3QvOTI0MBGGD2h0dHA6Ly94ZXN0LzkyNTARhg9odHRw -+Oi8veGVzdC85MjYwEYYPaHR0cDovL3hlc3QvOTI3MBGGD2h0dHA6Ly94ZXN0Lzky -+ODARhg9odHRwOi8veGVzdC85MjkwEYYPaHR0cDovL3hlc3QvOTMwMBGGD2h0dHA6 -+Ly94ZXN0LzkzMTARhg9odHRwOi8veGVzdC85MzIwEYYPaHR0cDovL3hlc3QvOTMz -+MBGGD2h0dHA6Ly94ZXN0LzkzNDARhg9odHRwOi8veGVzdC85MzUwEYYPaHR0cDov -+L3hlc3QvOTM2MBGGD2h0dHA6Ly94ZXN0LzkzNzARhg9odHRwOi8veGVzdC85Mzgw -+EYYPaHR0cDovL3hlc3QvOTM5MBGGD2h0dHA6Ly94ZXN0Lzk0MDARhg9odHRwOi8v -+eGVzdC85NDEwEYYPaHR0cDovL3hlc3QvOTQyMBGGD2h0dHA6Ly94ZXN0Lzk0MzAR -+hg9odHRwOi8veGVzdC85NDQwEYYPaHR0cDovL3hlc3QvOTQ1MBGGD2h0dHA6Ly94 -+ZXN0Lzk0NjARhg9odHRwOi8veGVzdC85NDcwEYYPaHR0cDovL3hlc3QvOTQ4MBGG -+D2h0dHA6Ly94ZXN0Lzk0OTARhg9odHRwOi8veGVzdC85NTAwEYYPaHR0cDovL3hl -+c3QvOTUxMBGGD2h0dHA6Ly94ZXN0Lzk1MjARhg9odHRwOi8veGVzdC85NTMwEYYP -+aHR0cDovL3hlc3QvOTU0MBGGD2h0dHA6Ly94ZXN0Lzk1NTARhg9odHRwOi8veGVz -+dC85NTYwEYYPaHR0cDovL3hlc3QvOTU3MBGGD2h0dHA6Ly94ZXN0Lzk1ODARhg9o -+dHRwOi8veGVzdC85NTkwEYYPaHR0cDovL3hlc3QvOTYwMBGGD2h0dHA6Ly94ZXN0 -+Lzk2MTARhg9odHRwOi8veGVzdC85NjIwEYYPaHR0cDovL3hlc3QvOTYzMBGGD2h0 -+dHA6Ly94ZXN0Lzk2NDARhg9odHRwOi8veGVzdC85NjUwEYYPaHR0cDovL3hlc3Qv -+OTY2MBGGD2h0dHA6Ly94ZXN0Lzk2NzARhg9odHRwOi8veGVzdC85NjgwEYYPaHR0 -+cDovL3hlc3QvOTY5MBGGD2h0dHA6Ly94ZXN0Lzk3MDARhg9odHRwOi8veGVzdC85 -+NzEwEYYPaHR0cDovL3hlc3QvOTcyMBGGD2h0dHA6Ly94ZXN0Lzk3MzARhg9odHRw -+Oi8veGVzdC85NzQwEYYPaHR0cDovL3hlc3QvOTc1MBGGD2h0dHA6Ly94ZXN0Lzk3 -+NjARhg9odHRwOi8veGVzdC85NzcwEYYPaHR0cDovL3hlc3QvOTc4MBGGD2h0dHA6 -+Ly94ZXN0Lzk3OTARhg9odHRwOi8veGVzdC85ODAwEYYPaHR0cDovL3hlc3QvOTgx -+MBGGD2h0dHA6Ly94ZXN0Lzk4MjARhg9odHRwOi8veGVzdC85ODMwEYYPaHR0cDov -+L3hlc3QvOTg0MBGGD2h0dHA6Ly94ZXN0Lzk4NTARhg9odHRwOi8veGVzdC85ODYw -+EYYPaHR0cDovL3hlc3QvOTg3MBGGD2h0dHA6Ly94ZXN0Lzk4ODARhg9odHRwOi8v -+eGVzdC85ODkwEYYPaHR0cDovL3hlc3QvOTkwMBGGD2h0dHA6Ly94ZXN0Lzk5MTAR -+hg9odHRwOi8veGVzdC85OTIwEYYPaHR0cDovL3hlc3QvOTkzMBGGD2h0dHA6Ly94 -+ZXN0Lzk5NDARhg9odHRwOi8veGVzdC85OTUwEYYPaHR0cDovL3hlc3QvOTk2MBGG -+D2h0dHA6Ly94ZXN0Lzk5NzARhg9odHRwOi8veGVzdC85OTgwEYYPaHR0cDovL3hl -+c3QvOTk5MBKGEGh0dHA6Ly94ZXN0LzEwMDAwEoYQaHR0cDovL3hlc3QvMTAwMTAS -+hhBodHRwOi8veGVzdC8xMDAyMBKGEGh0dHA6Ly94ZXN0LzEwMDMwEoYQaHR0cDov -+L3hlc3QvMTAwNDAShhBodHRwOi8veGVzdC8xMDA1MBKGEGh0dHA6Ly94ZXN0LzEw -+MDYwEoYQaHR0cDovL3hlc3QvMTAwNzAShhBodHRwOi8veGVzdC8xMDA4MBKGEGh0 -+dHA6Ly94ZXN0LzEwMDkwEoYQaHR0cDovL3hlc3QvMTAxMDAShhBodHRwOi8veGVz -+dC8xMDExMBKGEGh0dHA6Ly94ZXN0LzEwMTIwEoYQaHR0cDovL3hlc3QvMTAxMzAS -+hhBodHRwOi8veGVzdC8xMDE0MBKGEGh0dHA6Ly94ZXN0LzEwMTUwEoYQaHR0cDov -+L3hlc3QvMTAxNjAShhBodHRwOi8veGVzdC8xMDE3MBKGEGh0dHA6Ly94ZXN0LzEw -+MTgwEoYQaHR0cDovL3hlc3QvMTAxOTAShhBodHRwOi8veGVzdC8xMDIwMBKGEGh0 -+dHA6Ly94ZXN0LzEwMjEwEoYQaHR0cDovL3hlc3QvMTAyMjAShhBodHRwOi8veGVz -+dC8xMDIzMBKGEGh0dHA6Ly94ZXN0LzEwMjQwDQYJKoZIhvcNAQELBQADggEBADeo -+vuQDYmMVsP6+SX8iXnr4tDMM/jtBDJncvbCjDDpUQidiGBWv5tWRYxcdGz/K9i4v -+bnFeZoYnaZExXTWF1EZ3aUVQBZy8ObgP0JamZQLTgFOsWJzz7CcnsjNEURd5kOqx -+VzL34FikmWR4VWEW01FizyYCjX3fLdjD0gBeA0l4ILd4np62VulITcVa6ijoFnBK -+ObsdiEBa/WeCc/PG8untcIPecj99CC8aQ03JsunO5kOpdCXNupXNUZfLVtTm5tlp -+Cl9IFyo7Qayl7B8wybLxaI+hDx59nuO+u43LbkFqFnpI9awUaffeY/yUgOdi2uaZ -+Eq3x0l12a8MRblVdfuw= - -----END CERTIFICATE----- - - Certificate: -@@ -7024,7 +5009,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -diff --git a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.pem b/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.pem -deleted file mode 100644 -index 54901d92e5ce8..0000000000000 ---- a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.pem -+++ /dev/null -@@ -1,8708 +0,0 @@ --[Created by: generate-chains.py] -- --A chain containing a large number of name constraints and names, --but of different types, thus not triggering the limit. -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:de -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Intermediate -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=t0 -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:db:2c:53:01:ce:f9:1a:83:36:52:51:2a:5b:42: -- 63:de:32:75:11:6a:7d:b0:a1:e4:77:47:9b:71:e5: -- a6:2d:64:d7:ae:5b:04:ed:7a:3f:c7:f6:ca:2b:2b: -- ad:cd:6c:88:a5:8e:36:fb:e7:a2:22:b5:7d:54:79: -- e9:d5:7a:5b:ca:2b:29:6c:0d:84:0a:10:c4:21:b6: -- 58:98:bb:0d:b6:0c:8d:56:5b:2c:85:59:07:ca:06: -- 46:36:25:1a:29:8e:c4:39:b7:c3:31:ce:6e:49:c2: -- 01:cf:b0:3b:27:43:8a:e3:d5:06:1f:2d:93:9d:dd: -- 7a:45:65:6d:fd:b4:b1:c0:10:59:42:f2:1e:8f:ce: -- 43:ac:97:25:c1:7c:e2:51:e1:44:35:5b:94:aa:03: -- 6e:da:71:2f:25:7f:58:30:01:e1:12:17:1e:f2:aa: -- 6c:22:80:b1:c9:65:ea:77:95:b3:07:c4:f7:72:38: -- 34:fe:a0:43:33:4c:66:6d:a1:e8:a1:04:bc:6f:14: -- 39:39:44:2e:38:37:74:c9:0a:21:85:91:21:b7:4e: -- ba:b0:99:4a:76:98:7b:58:ca:1c:d3:b0:40:c3:d9: -- 2a:75:fb:eb:19:ea:e3:1a:98:31:52:97:e9:7f:a4: -- 7b:21:7f:2f:dc:62:86:8f:fd:fd:a8:88:e8:4b:44: -- 52:bd -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- 3B:B4:05:CC:AA:BA:51:3D:FC:F2:F9:1E:25:53:72:E1:3A:F2:9A:DF -- X509v3 Authority Key Identifier: -- keyid:92:11:3F:AC:11:96:C7:66:37:CF:83:5A:24:F0:3A:77:AF:33:8D:7F -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Intermediate.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Intermediate.crl -- -- X509v3 Key Usage: critical -- Digital Signature, Key Encipherment -- X509v3 Extended Key Usage: -- TLS Web Server Authentication, TLS Web Client Authentication -- X509v3 Subject Alternative Name: -- DirName:/CN=t0, DirName:/CN=t1, DirName:/CN=t2, DirName:/CN=t3, DirName:/CN=t4, DirName:/CN=t5, DirName:/CN=t6, DirName:/CN=t7, DirName:/CN=t8, DirName:/CN=t9, DirName:/CN=t10, DirName:/CN=t11, DirName:/CN=t12, DirName:/CN=t13, DirName:/CN=t14, DirName:/CN=t15, DirName:/CN=t16, DirName:/CN=t17, DirName:/CN=t18, DirName:/CN=t19, DirName:/CN=t20, DirName:/CN=t21, DirName:/CN=t22, DirName:/CN=t23, DirName:/CN=t24, DirName:/CN=t25, DirName:/CN=t26, DirName:/CN=t27, DirName:/CN=t28, DirName:/CN=t29, DirName:/CN=t30, DirName:/CN=t31, DirName:/CN=t32, DirName:/CN=t33, DirName:/CN=t34, DirName:/CN=t35, DirName:/CN=t36, DirName:/CN=t37, DirName:/CN=t38, DirName:/CN=t39, DirName:/CN=t40, DirName:/CN=t41, DirName:/CN=t42, DirName:/CN=t43, DirName:/CN=t44, DirName:/CN=t45, DirName:/CN=t46, DirName:/CN=t47, DirName:/CN=t48, DirName:/CN=t49, DirName:/CN=t50, DirName:/CN=t51, DirName:/CN=t52, DirName:/CN=t53, DirName:/CN=t54, DirName:/CN=t55, DirName:/CN=t56, DirName:/CN=t57, DirName:/CN=t58, DirName:/CN=t59, DirName:/CN=t60, DirName:/CN=t61, DirName:/CN=t62, DirName:/CN=t63, DirName:/CN=t64, DirName:/CN=t65, DirName:/CN=t66, DirName:/CN=t67, DirName:/CN=t68, DirName:/CN=t69, DirName:/CN=t70, DirName:/CN=t71, DirName:/CN=t72, DirName:/CN=t73, DirName:/CN=t74, DirName:/CN=t75, DirName:/CN=t76, DirName:/CN=t77, DirName:/CN=t78, DirName:/CN=t79, DirName:/CN=t80, DirName:/CN=t81, DirName:/CN=t82, DirName:/CN=t83, DirName:/CN=t84, DirName:/CN=t85, DirName:/CN=t86, DirName:/CN=t87, DirName:/CN=t88, DirName:/CN=t89, DirName:/CN=t90, DirName:/CN=t91, DirName:/CN=t92, DirName:/CN=t93, DirName:/CN=t94, DirName:/CN=t95, DirName:/CN=t96, DirName:/CN=t97, DirName:/CN=t98, DirName:/CN=t99, DirName:/CN=t100, DirName:/CN=t101, DirName:/CN=t102, DirName:/CN=t103, DirName:/CN=t104, DirName:/CN=t105, DirName:/CN=t106, DirName:/CN=t107, DirName:/CN=t108, DirName:/CN=t109, DirName:/CN=t110, DirName:/CN=t111, DirName:/CN=t112, DirName:/CN=t113, DirName:/CN=t114, DirName:/CN=t115, DirName:/CN=t116, DirName:/CN=t117, DirName:/CN=t118, DirName:/CN=t119, DirName:/CN=t120, DirName:/CN=t121, DirName:/CN=t122, DirName:/CN=t123, DirName:/CN=t124, DirName:/CN=t125, DirName:/CN=t126, DirName:/CN=t127, DirName:/CN=t128, DirName:/CN=t129, DirName:/CN=t130, DirName:/CN=t131, DirName:/CN=t132, DirName:/CN=t133, DirName:/CN=t134, DirName:/CN=t135, DirName:/CN=t136, DirName:/CN=t137, DirName:/CN=t138, DirName:/CN=t139, DirName:/CN=t140, DirName:/CN=t141, DirName:/CN=t142, DirName:/CN=t143, DirName:/CN=t144, DirName:/CN=t145, DirName:/CN=t146, DirName:/CN=t147, DirName:/CN=t148, DirName:/CN=t149, DirName:/CN=t150, DirName:/CN=t151, DirName:/CN=t152, DirName:/CN=t153, DirName:/CN=t154, DirName:/CN=t155, DirName:/CN=t156, DirName:/CN=t157, DirName:/CN=t158, DirName:/CN=t159, DirName:/CN=t160, DirName:/CN=t161, DirName:/CN=t162, DirName:/CN=t163, DirName:/CN=t164, DirName:/CN=t165, DirName:/CN=t166, DirName:/CN=t167, DirName:/CN=t168, DirName:/CN=t169, DirName:/CN=t170, DirName:/CN=t171, DirName:/CN=t172, DirName:/CN=t173, DirName:/CN=t174, DirName:/CN=t175, DirName:/CN=t176, DirName:/CN=t177, DirName:/CN=t178, DirName:/CN=t179, DirName:/CN=t180, DirName:/CN=t181, DirName:/CN=t182, DirName:/CN=t183, DirName:/CN=t184, DirName:/CN=t185, DirName:/CN=t186, DirName:/CN=t187, DirName:/CN=t188, DirName:/CN=t189, DirName:/CN=t190, DirName:/CN=t191, DirName:/CN=t192, DirName:/CN=t193, DirName:/CN=t194, DirName:/CN=t195, DirName:/CN=t196, DirName:/CN=t197, DirName:/CN=t198, DirName:/CN=t199, DirName:/CN=t200, DirName:/CN=t201, DirName:/CN=t202, DirName:/CN=t203, DirName:/CN=t204, DirName:/CN=t205, DirName:/CN=t206, DirName:/CN=t207, DirName:/CN=t208, DirName:/CN=t209, DirName:/CN=t210, DirName:/CN=t211, DirName:/CN=t212, DirName:/CN=t213, DirName:/CN=t214, DirName:/CN=t215, DirName:/CN=t216, DirName:/CN=t217, DirName:/CN=t218, DirName:/CN=t219, DirName:/CN=t220, DirName:/CN=t221, DirName:/CN=t222, DirName:/CN=t223, DirName:/CN=t224, DirName:/CN=t225, DirName:/CN=t226, DirName:/CN=t227, DirName:/CN=t228, DirName:/CN=t229, DirName:/CN=t230, DirName:/CN=t231, DirName:/CN=t232, DirName:/CN=t233, DirName:/CN=t234, DirName:/CN=t235, DirName:/CN=t236, DirName:/CN=t237, DirName:/CN=t238, DirName:/CN=t239, DirName:/CN=t240, DirName:/CN=t241, DirName:/CN=t242, DirName:/CN=t243, DirName:/CN=t244, DirName:/CN=t245, DirName:/CN=t246, DirName:/CN=t247, DirName:/CN=t248, DirName:/CN=t249, DirName:/CN=t250, DirName:/CN=t251, DirName:/CN=t252, DirName:/CN=t253, DirName:/CN=t254, DirName:/CN=t255, DirName:/CN=t256, DirName:/CN=t257, DirName:/CN=t258, DirName:/CN=t259, DirName:/CN=t260, DirName:/CN=t261, DirName:/CN=t262, DirName:/CN=t263, DirName:/CN=t264, DirName:/CN=t265, DirName:/CN=t266, DirName:/CN=t267, DirName:/CN=t268, DirName:/CN=t269, DirName:/CN=t270, DirName:/CN=t271, DirName:/CN=t272, DirName:/CN=t273, DirName:/CN=t274, DirName:/CN=t275, DirName:/CN=t276, DirName:/CN=t277, DirName:/CN=t278, DirName:/CN=t279, DirName:/CN=t280, DirName:/CN=t281, DirName:/CN=t282, DirName:/CN=t283, DirName:/CN=t284, DirName:/CN=t285, DirName:/CN=t286, DirName:/CN=t287, DirName:/CN=t288, DirName:/CN=t289, DirName:/CN=t290, DirName:/CN=t291, DirName:/CN=t292, DirName:/CN=t293, DirName:/CN=t294, DirName:/CN=t295, DirName:/CN=t296, DirName:/CN=t297, DirName:/CN=t298, DirName:/CN=t299, DirName:/CN=t300, DirName:/CN=t301, DirName:/CN=t302, DirName:/CN=t303, DirName:/CN=t304, DirName:/CN=t305, DirName:/CN=t306, DirName:/CN=t307, DirName:/CN=t308, DirName:/CN=t309, DirName:/CN=t310, DirName:/CN=t311, DirName:/CN=t312, DirName:/CN=t313, DirName:/CN=t314, DirName:/CN=t315, DirName:/CN=t316, DirName:/CN=t317, DirName:/CN=t318, DirName:/CN=t319, DirName:/CN=t320, DirName:/CN=t321, DirName:/CN=t322, DirName:/CN=t323, DirName:/CN=t324, DirName:/CN=t325, DirName:/CN=t326, DirName:/CN=t327, DirName:/CN=t328, DirName:/CN=t329, DirName:/CN=t330, DirName:/CN=t331, DirName:/CN=t332, DirName:/CN=t333, DirName:/CN=t334, DirName:/CN=t335, DirName:/CN=t336, DirName:/CN=t337, DirName:/CN=t338, DirName:/CN=t339, DirName:/CN=t340, DirName:/CN=t341, DirName:/CN=t342, DirName:/CN=t343, DirName:/CN=t344, DirName:/CN=t345, DirName:/CN=t346, DirName:/CN=t347, DirName:/CN=t348, DirName:/CN=t349, DirName:/CN=t350, DirName:/CN=t351, DirName:/CN=t352, DirName:/CN=t353, DirName:/CN=t354, DirName:/CN=t355, DirName:/CN=t356, DirName:/CN=t357, DirName:/CN=t358, DirName:/CN=t359, DirName:/CN=t360, DirName:/CN=t361, DirName:/CN=t362, DirName:/CN=t363, DirName:/CN=t364, DirName:/CN=t365, DirName:/CN=t366, DirName:/CN=t367, DirName:/CN=t368, DirName:/CN=t369, DirName:/CN=t370, DirName:/CN=t371, DirName:/CN=t372, DirName:/CN=t373, DirName:/CN=t374, DirName:/CN=t375, DirName:/CN=t376, DirName:/CN=t377, DirName:/CN=t378, DirName:/CN=t379, DirName:/CN=t380, DirName:/CN=t381, DirName:/CN=t382, DirName:/CN=t383, DirName:/CN=t384, DirName:/CN=t385, DirName:/CN=t386, DirName:/CN=t387, DirName:/CN=t388, DirName:/CN=t389, DirName:/CN=t390, DirName:/CN=t391, DirName:/CN=t392, DirName:/CN=t393, DirName:/CN=t394, DirName:/CN=t395, DirName:/CN=t396, DirName:/CN=t397, DirName:/CN=t398, DirName:/CN=t399, DirName:/CN=t400, DirName:/CN=t401, DirName:/CN=t402, DirName:/CN=t403, DirName:/CN=t404, DirName:/CN=t405, DirName:/CN=t406, DirName:/CN=t407, DirName:/CN=t408, DirName:/CN=t409, DirName:/CN=t410, DirName:/CN=t411, DirName:/CN=t412, DirName:/CN=t413, DirName:/CN=t414, DirName:/CN=t415, DirName:/CN=t416, DirName:/CN=t417, DirName:/CN=t418, DirName:/CN=t419, DirName:/CN=t420, DirName:/CN=t421, DirName:/CN=t422, DirName:/CN=t423, DirName:/CN=t424, DirName:/CN=t425, DirName:/CN=t426, DirName:/CN=t427, DirName:/CN=t428, DirName:/CN=t429, DirName:/CN=t430, DirName:/CN=t431, DirName:/CN=t432, DirName:/CN=t433, DirName:/CN=t434, DirName:/CN=t435, DirName:/CN=t436, DirName:/CN=t437, DirName:/CN=t438, DirName:/CN=t439, DirName:/CN=t440, DirName:/CN=t441, DirName:/CN=t442, DirName:/CN=t443, DirName:/CN=t444, DirName:/CN=t445, DirName:/CN=t446, DirName:/CN=t447, DirName:/CN=t448, DirName:/CN=t449, DirName:/CN=t450, DirName:/CN=t451, DirName:/CN=t452, DirName:/CN=t453, DirName:/CN=t454, DirName:/CN=t455, DirName:/CN=t456, DirName:/CN=t457, DirName:/CN=t458, DirName:/CN=t459, DirName:/CN=t460, DirName:/CN=t461, DirName:/CN=t462, DirName:/CN=t463, DirName:/CN=t464, DirName:/CN=t465, DirName:/CN=t466, DirName:/CN=t467, DirName:/CN=t468, DirName:/CN=t469, DirName:/CN=t470, DirName:/CN=t471, DirName:/CN=t472, DirName:/CN=t473, DirName:/CN=t474, DirName:/CN=t475, DirName:/CN=t476, DirName:/CN=t477, DirName:/CN=t478, DirName:/CN=t479, DirName:/CN=t480, DirName:/CN=t481, DirName:/CN=t482, DirName:/CN=t483, DirName:/CN=t484, DirName:/CN=t485, DirName:/CN=t486, DirName:/CN=t487, DirName:/CN=t488, DirName:/CN=t489, DirName:/CN=t490, DirName:/CN=t491, DirName:/CN=t492, DirName:/CN=t493, DirName:/CN=t494, DirName:/CN=t495, DirName:/CN=t496, DirName:/CN=t497, DirName:/CN=t498, DirName:/CN=t499, DirName:/CN=t500, DirName:/CN=t501, DirName:/CN=t502, DirName:/CN=t503, DirName:/CN=t504, DirName:/CN=t505, DirName:/CN=t506, DirName:/CN=t507, DirName:/CN=t508, DirName:/CN=t509, DirName:/CN=t510, DirName:/CN=t511, DirName:/CN=t512, DirName:/CN=t513, DirName:/CN=t514, DirName:/CN=t515, DirName:/CN=t516, DirName:/CN=t517, DirName:/CN=t518, DirName:/CN=t519, DirName:/CN=t520, DirName:/CN=t521, DirName:/CN=t522, DirName:/CN=t523, DirName:/CN=t524, DirName:/CN=t525, DirName:/CN=t526, DirName:/CN=t527, DirName:/CN=t528, DirName:/CN=t529, DirName:/CN=t530, DirName:/CN=t531, DirName:/CN=t532, DirName:/CN=t533, DirName:/CN=t534, DirName:/CN=t535, DirName:/CN=t536, DirName:/CN=t537, DirName:/CN=t538, DirName:/CN=t539, DirName:/CN=t540, DirName:/CN=t541, DirName:/CN=t542, DirName:/CN=t543, DirName:/CN=t544, DirName:/CN=t545, DirName:/CN=t546, DirName:/CN=t547, DirName:/CN=t548, DirName:/CN=t549, DirName:/CN=t550, DirName:/CN=t551, DirName:/CN=t552, DirName:/CN=t553, DirName:/CN=t554, DirName:/CN=t555, DirName:/CN=t556, DirName:/CN=t557, DirName:/CN=t558, DirName:/CN=t559, DirName:/CN=t560, DirName:/CN=t561, DirName:/CN=t562, DirName:/CN=t563, DirName:/CN=t564, DirName:/CN=t565, DirName:/CN=t566, DirName:/CN=t567, DirName:/CN=t568, DirName:/CN=t569, DirName:/CN=t570, DirName:/CN=t571, DirName:/CN=t572, DirName:/CN=t573, DirName:/CN=t574, DirName:/CN=t575, DirName:/CN=t576, DirName:/CN=t577, DirName:/CN=t578, DirName:/CN=t579, DirName:/CN=t580, DirName:/CN=t581, DirName:/CN=t582, DirName:/CN=t583, DirName:/CN=t584, DirName:/CN=t585, DirName:/CN=t586, DirName:/CN=t587, DirName:/CN=t588, DirName:/CN=t589, DirName:/CN=t590, DirName:/CN=t591, DirName:/CN=t592, DirName:/CN=t593, DirName:/CN=t594, DirName:/CN=t595, DirName:/CN=t596, DirName:/CN=t597, DirName:/CN=t598, DirName:/CN=t599, DirName:/CN=t600, DirName:/CN=t601, DirName:/CN=t602, DirName:/CN=t603, DirName:/CN=t604, DirName:/CN=t605, DirName:/CN=t606, DirName:/CN=t607, DirName:/CN=t608, DirName:/CN=t609, DirName:/CN=t610, DirName:/CN=t611, DirName:/CN=t612, DirName:/CN=t613, DirName:/CN=t614, DirName:/CN=t615, DirName:/CN=t616, DirName:/CN=t617, DirName:/CN=t618, DirName:/CN=t619, DirName:/CN=t620, DirName:/CN=t621, DirName:/CN=t622, DirName:/CN=t623, DirName:/CN=t624, DirName:/CN=t625, DirName:/CN=t626, DirName:/CN=t627, DirName:/CN=t628, DirName:/CN=t629, DirName:/CN=t630, DirName:/CN=t631, DirName:/CN=t632, DirName:/CN=t633, DirName:/CN=t634, DirName:/CN=t635, DirName:/CN=t636, DirName:/CN=t637, DirName:/CN=t638, DirName:/CN=t639, DirName:/CN=t640, DirName:/CN=t641, DirName:/CN=t642, DirName:/CN=t643, DirName:/CN=t644, DirName:/CN=t645, DirName:/CN=t646, DirName:/CN=t647, DirName:/CN=t648, DirName:/CN=t649, DirName:/CN=t650, DirName:/CN=t651, DirName:/CN=t652, DirName:/CN=t653, DirName:/CN=t654, DirName:/CN=t655, DirName:/CN=t656, DirName:/CN=t657, DirName:/CN=t658, DirName:/CN=t659, DirName:/CN=t660, DirName:/CN=t661, DirName:/CN=t662, DirName:/CN=t663, DirName:/CN=t664, DirName:/CN=t665, DirName:/CN=t666, DirName:/CN=t667, DirName:/CN=t668, DirName:/CN=t669, DirName:/CN=t670, DirName:/CN=t671, DirName:/CN=t672, DirName:/CN=t673, DirName:/CN=t674, DirName:/CN=t675, DirName:/CN=t676, DirName:/CN=t677, DirName:/CN=t678, DirName:/CN=t679, DirName:/CN=t680, DirName:/CN=t681, DirName:/CN=t682, DirName:/CN=t683, DirName:/CN=t684, DirName:/CN=t685, DirName:/CN=t686, DirName:/CN=t687, DirName:/CN=t688, DirName:/CN=t689, DirName:/CN=t690, DirName:/CN=t691, DirName:/CN=t692, DirName:/CN=t693, DirName:/CN=t694, DirName:/CN=t695, DirName:/CN=t696, DirName:/CN=t697, DirName:/CN=t698, DirName:/CN=t699, DirName:/CN=t700, DirName:/CN=t701, DirName:/CN=t702, DirName:/CN=t703, DirName:/CN=t704, DirName:/CN=t705, DirName:/CN=t706, DirName:/CN=t707, DirName:/CN=t708, DirName:/CN=t709, DirName:/CN=t710, DirName:/CN=t711, DirName:/CN=t712, DirName:/CN=t713, DirName:/CN=t714, DirName:/CN=t715, DirName:/CN=t716, DirName:/CN=t717, DirName:/CN=t718, DirName:/CN=t719, DirName:/CN=t720, DirName:/CN=t721, DirName:/CN=t722, DirName:/CN=t723, DirName:/CN=t724, DirName:/CN=t725, DirName:/CN=t726, DirName:/CN=t727, DirName:/CN=t728, DirName:/CN=t729, DirName:/CN=t730, DirName:/CN=t731, DirName:/CN=t732, DirName:/CN=t733, DirName:/CN=t734, DirName:/CN=t735, DirName:/CN=t736, DirName:/CN=t737, DirName:/CN=t738, DirName:/CN=t739, DirName:/CN=t740, DirName:/CN=t741, DirName:/CN=t742, DirName:/CN=t743, DirName:/CN=t744, DirName:/CN=t745, DirName:/CN=t746, DirName:/CN=t747, DirName:/CN=t748, DirName:/CN=t749, DirName:/CN=t750, DirName:/CN=t751, DirName:/CN=t752, DirName:/CN=t753, DirName:/CN=t754, DirName:/CN=t755, DirName:/CN=t756, DirName:/CN=t757, DirName:/CN=t758, DirName:/CN=t759, DirName:/CN=t760, DirName:/CN=t761, DirName:/CN=t762, DirName:/CN=t763, DirName:/CN=t764, DirName:/CN=t765, DirName:/CN=t766, DirName:/CN=t767, DirName:/CN=t768, DirName:/CN=t769, DirName:/CN=t770, DirName:/CN=t771, DirName:/CN=t772, DirName:/CN=t773, DirName:/CN=t774, DirName:/CN=t775, DirName:/CN=t776, DirName:/CN=t777, DirName:/CN=t778, DirName:/CN=t779, DirName:/CN=t780, DirName:/CN=t781, DirName:/CN=t782, DirName:/CN=t783, DirName:/CN=t784, DirName:/CN=t785, DirName:/CN=t786, DirName:/CN=t787, DirName:/CN=t788, DirName:/CN=t789, DirName:/CN=t790, DirName:/CN=t791, DirName:/CN=t792, DirName:/CN=t793, DirName:/CN=t794, DirName:/CN=t795, DirName:/CN=t796, DirName:/CN=t797, DirName:/CN=t798, DirName:/CN=t799, DirName:/CN=t800, DirName:/CN=t801, DirName:/CN=t802, DirName:/CN=t803, DirName:/CN=t804, DirName:/CN=t805, DirName:/CN=t806, DirName:/CN=t807, DirName:/CN=t808, DirName:/CN=t809, DirName:/CN=t810, DirName:/CN=t811, DirName:/CN=t812, DirName:/CN=t813, DirName:/CN=t814, DirName:/CN=t815, DirName:/CN=t816, DirName:/CN=t817, DirName:/CN=t818, DirName:/CN=t819, DirName:/CN=t820, DirName:/CN=t821, DirName:/CN=t822, DirName:/CN=t823, DirName:/CN=t824, DirName:/CN=t825, DirName:/CN=t826, DirName:/CN=t827, DirName:/CN=t828, DirName:/CN=t829, DirName:/CN=t830, DirName:/CN=t831, DirName:/CN=t832, DirName:/CN=t833, DirName:/CN=t834, DirName:/CN=t835, DirName:/CN=t836, DirName:/CN=t837, DirName:/CN=t838, DirName:/CN=t839, DirName:/CN=t840, DirName:/CN=t841, DirName:/CN=t842, DirName:/CN=t843, DirName:/CN=t844, DirName:/CN=t845, DirName:/CN=t846, DirName:/CN=t847, DirName:/CN=t848, DirName:/CN=t849, DirName:/CN=t850, DirName:/CN=t851, DirName:/CN=t852, DirName:/CN=t853, DirName:/CN=t854, DirName:/CN=t855, DirName:/CN=t856, DirName:/CN=t857, DirName:/CN=t858, DirName:/CN=t859, DirName:/CN=t860, DirName:/CN=t861, DirName:/CN=t862, DirName:/CN=t863, DirName:/CN=t864, DirName:/CN=t865, DirName:/CN=t866, DirName:/CN=t867, DirName:/CN=t868, DirName:/CN=t869, DirName:/CN=t870, DirName:/CN=t871, DirName:/CN=t872, DirName:/CN=t873, DirName:/CN=t874, DirName:/CN=t875, DirName:/CN=t876, DirName:/CN=t877, DirName:/CN=t878, DirName:/CN=t879, DirName:/CN=t880, DirName:/CN=t881, DirName:/CN=t882, DirName:/CN=t883, DirName:/CN=t884, DirName:/CN=t885, DirName:/CN=t886, DirName:/CN=t887, DirName:/CN=t888, DirName:/CN=t889, DirName:/CN=t890, DirName:/CN=t891, DirName:/CN=t892, DirName:/CN=t893, DirName:/CN=t894, DirName:/CN=t895, DirName:/CN=t896, DirName:/CN=t897, DirName:/CN=t898, DirName:/CN=t899, DirName:/CN=t900, DirName:/CN=t901, DirName:/CN=t902, DirName:/CN=t903, DirName:/CN=t904, DirName:/CN=t905, DirName:/CN=t906, DirName:/CN=t907, DirName:/CN=t908, DirName:/CN=t909, DirName:/CN=t910, DirName:/CN=t911, DirName:/CN=t912, DirName:/CN=t913, DirName:/CN=t914, DirName:/CN=t915, DirName:/CN=t916, DirName:/CN=t917, DirName:/CN=t918, DirName:/CN=t919, DirName:/CN=t920, DirName:/CN=t921, DirName:/CN=t922, DirName:/CN=t923, DirName:/CN=t924, DirName:/CN=t925, DirName:/CN=t926, DirName:/CN=t927, DirName:/CN=t928, DirName:/CN=t929, DirName:/CN=t930, DirName:/CN=t931, DirName:/CN=t932, DirName:/CN=t933, DirName:/CN=t934, DirName:/CN=t935, DirName:/CN=t936, DirName:/CN=t937, DirName:/CN=t938, DirName:/CN=t939, DirName:/CN=t940, DirName:/CN=t941, DirName:/CN=t942, DirName:/CN=t943, DirName:/CN=t944, DirName:/CN=t945, DirName:/CN=t946, DirName:/CN=t947, DirName:/CN=t948, DirName:/CN=t949, DirName:/CN=t950, DirName:/CN=t951, DirName:/CN=t952, DirName:/CN=t953, DirName:/CN=t954, DirName:/CN=t955, DirName:/CN=t956, DirName:/CN=t957, DirName:/CN=t958, DirName:/CN=t959, DirName:/CN=t960, DirName:/CN=t961, DirName:/CN=t962, DirName:/CN=t963, DirName:/CN=t964, DirName:/CN=t965, DirName:/CN=t966, DirName:/CN=t967, DirName:/CN=t968, DirName:/CN=t969, DirName:/CN=t970, DirName:/CN=t971, DirName:/CN=t972, DirName:/CN=t973, DirName:/CN=t974, DirName:/CN=t975, DirName:/CN=t976, DirName:/CN=t977, DirName:/CN=t978, DirName:/CN=t979, DirName:/CN=t980, DirName:/CN=t981, DirName:/CN=t982, DirName:/CN=t983, DirName:/CN=t984, DirName:/CN=t985, DirName:/CN=t986, DirName:/CN=t987, DirName:/CN=t988, DirName:/CN=t989, DirName:/CN=t990, DirName:/CN=t991, DirName:/CN=t992, DirName:/CN=t993, DirName:/CN=t994, DirName:/CN=t995, DirName:/CN=t996, DirName:/CN=t997, DirName:/CN=t998, DirName:/CN=t999, DirName:/CN=t1000, DirName:/CN=t1001, DirName:/CN=t1002, DirName:/CN=t1003, DirName:/CN=t1004, DirName:/CN=t1005, DirName:/CN=t1006, DirName:/CN=t1007, DirName:/CN=t1008, DirName:/CN=t1009, DirName:/CN=t1010, DirName:/CN=t1011, DirName:/CN=t1012, DirName:/CN=t1013, DirName:/CN=t1014, DirName:/CN=t1015, DirName:/CN=t1016, DirName:/CN=t1017, DirName:/CN=t1018, DirName:/CN=t1019, DirName:/CN=t1020, DirName:/CN=t1021, DirName:/CN=t1022, DirName:/CN=t1023, DirName:/CN=t1024 -- Signature Algorithm: sha256WithRSAEncryption -- 29:33:a7:c0:47:2d:36:80:2a:45:44:f6:f8:5c:57:01:4e:0c: -- 1b:d2:82:ea:77:ad:54:0e:7f:27:71:2a:2b:53:29:8b:a8:50: -- 0a:8d:bb:b5:17:cf:34:4a:c6:2e:12:a4:3d:e5:4a:9a:9b:87: -- d5:18:b8:5e:a3:a6:24:1a:df:fa:54:c3:28:65:7f:17:6b:8e: -- 3a:bc:39:67:28:89:36:8d:13:62:00:76:d1:96:0d:65:1f:6b: -- db:18:01:40:b8:c4:d1:01:d5:16:ae:ff:1c:89:7e:7a:e9:8a: -- c4:52:dd:b4:92:45:a2:5e:3c:85:44:e8:51:39:39:c1:47:fe: -- 07:4e:66:94:40:fa:41:43:25:e0:f1:35:b5:e2:76:fe:eb:48: -- ca:e6:d4:0a:5f:a0:d3:47:9d:67:a5:be:01:df:65:d2:5d:3c: -- 5f:f3:54:f3:95:eb:20:86:ff:8f:b1:d6:36:54:b9:f1:f4:08: -- e6:b5:e8:e2:8d:4b:7b:80:57:ec:87:ef:83:f0:c2:87:cb:2e: -- 8e:0e:16:24:65:51:f1:0c:82:be:d1:99:b1:c6:07:39:2f:81: -- e9:c3:8b:62:41:41:f1:84:84:d7:c8:8b:95:16:77:1b:c0:92: -- f4:35:13:d9:34:4a:b4:b3:1e:1d:d8:69:72:d9:2c:d1:7f:80: -- b0:e5:57:5d -------BEGIN CERTIFICATE----- --MIJPbDCCTlSgAwIBAgITL6u0PdzAd4AqAwmtQ3QCv5jY3jANBgkqhkiG9w0BAQsF --ADAXMRUwEwYDVQQDDAxJbnRlcm1lZGlhdGUwHhcNMjExMDA1MTIwMDAwWhcNMjIx --MDA1MTIwMDAwWjANMQswCQYDVQQDDAJ0MDCCASIwDQYJKoZIhvcNAQEBBQADggEP --ADCCAQoCggEBANssUwHO+RqDNlJRKltCY94ydRFqfbCh5HdHm3Hlpi1k165bBO16 --P8f2yisrrc1siKWONvvnoiK1fVR56dV6W8orKWwNhAoQxCG2WJi7DbYMjVZbLIVZ --B8oGRjYlGimOxDm3wzHObknCAc+wOydDiuPVBh8tk53dekVlbf20scAQWULyHo/O --Q6yXJcF84lHhRDVblKoDbtpxLyV/WDAB4RIXHvKqbCKAscll6neVswfE93I4NP6g --QzNMZm2h6KEEvG8UOTlELjg3dMkKIYWRIbdOurCZSnaYe1jKHNOwQMPZKnX76xnq --4xqYMVKX6X+keyF/L9xiho/9/aiI6EtEUr0CAwEAAaOCTLkwgky1MB0GA1UdDgQW --BBQ7tAXMqrpRPfzy+R4lU3LhOvKa3zAfBgNVHSMEGDAWgBSSET+sEZbHZjfPg1ok --8Dp3rzONfzA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAKGI2h0dHA6Ly91cmwt --Zm9yLWFpYS9JbnRlcm1lZGlhdGUuY2VyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6 --Ly91cmwtZm9yLWNybC9JbnRlcm1lZGlhdGUuY3JsMA4GA1UdDwEB/wQEAwIFoDAd --BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwgkvLBgNVHREEgkvCMIJLvqQP --MA0xCzAJBgNVBAMMAnQwpA8wDTELMAkGA1UEAwwCdDGkDzANMQswCQYDVQQDDAJ0 --MqQPMA0xCzAJBgNVBAMMAnQzpA8wDTELMAkGA1UEAwwCdDSkDzANMQswCQYDVQQD --DAJ0NaQPMA0xCzAJBgNVBAMMAnQ2pA8wDTELMAkGA1UEAwwCdDekDzANMQswCQYD --VQQDDAJ0OKQPMA0xCzAJBgNVBAMMAnQ5pBAwDjEMMAoGA1UEAwwDdDEwpBAwDjEM --MAoGA1UEAwwDdDExpBAwDjEMMAoGA1UEAwwDdDEypBAwDjEMMAoGA1UEAwwDdDEz --pBAwDjEMMAoGA1UEAwwDdDE0pBAwDjEMMAoGA1UEAwwDdDE1pBAwDjEMMAoGA1UE --AwwDdDE2pBAwDjEMMAoGA1UEAwwDdDE3pBAwDjEMMAoGA1UEAwwDdDE4pBAwDjEM --MAoGA1UEAwwDdDE5pBAwDjEMMAoGA1UEAwwDdDIwpBAwDjEMMAoGA1UEAwwDdDIx --pBAwDjEMMAoGA1UEAwwDdDIypBAwDjEMMAoGA1UEAwwDdDIzpBAwDjEMMAoGA1UE --AwwDdDI0pBAwDjEMMAoGA1UEAwwDdDI1pBAwDjEMMAoGA1UEAwwDdDI2pBAwDjEM --MAoGA1UEAwwDdDI3pBAwDjEMMAoGA1UEAwwDdDI4pBAwDjEMMAoGA1UEAwwDdDI5 --pBAwDjEMMAoGA1UEAwwDdDMwpBAwDjEMMAoGA1UEAwwDdDMxpBAwDjEMMAoGA1UE --AwwDdDMypBAwDjEMMAoGA1UEAwwDdDMzpBAwDjEMMAoGA1UEAwwDdDM0pBAwDjEM --MAoGA1UEAwwDdDM1pBAwDjEMMAoGA1UEAwwDdDM2pBAwDjEMMAoGA1UEAwwDdDM3 --pBAwDjEMMAoGA1UEAwwDdDM4pBAwDjEMMAoGA1UEAwwDdDM5pBAwDjEMMAoGA1UE --AwwDdDQwpBAwDjEMMAoGA1UEAwwDdDQxpBAwDjEMMAoGA1UEAwwDdDQypBAwDjEM --MAoGA1UEAwwDdDQzpBAwDjEMMAoGA1UEAwwDdDQ0pBAwDjEMMAoGA1UEAwwDdDQ1 --pBAwDjEMMAoGA1UEAwwDdDQ2pBAwDjEMMAoGA1UEAwwDdDQ3pBAwDjEMMAoGA1UE --AwwDdDQ4pBAwDjEMMAoGA1UEAwwDdDQ5pBAwDjEMMAoGA1UEAwwDdDUwpBAwDjEM --MAoGA1UEAwwDdDUxpBAwDjEMMAoGA1UEAwwDdDUypBAwDjEMMAoGA1UEAwwDdDUz --pBAwDjEMMAoGA1UEAwwDdDU0pBAwDjEMMAoGA1UEAwwDdDU1pBAwDjEMMAoGA1UE --AwwDdDU2pBAwDjEMMAoGA1UEAwwDdDU3pBAwDjEMMAoGA1UEAwwDdDU4pBAwDjEM --MAoGA1UEAwwDdDU5pBAwDjEMMAoGA1UEAwwDdDYwpBAwDjEMMAoGA1UEAwwDdDYx --pBAwDjEMMAoGA1UEAwwDdDYypBAwDjEMMAoGA1UEAwwDdDYzpBAwDjEMMAoGA1UE --AwwDdDY0pBAwDjEMMAoGA1UEAwwDdDY1pBAwDjEMMAoGA1UEAwwDdDY2pBAwDjEM --MAoGA1UEAwwDdDY3pBAwDjEMMAoGA1UEAwwDdDY4pBAwDjEMMAoGA1UEAwwDdDY5 --pBAwDjEMMAoGA1UEAwwDdDcwpBAwDjEMMAoGA1UEAwwDdDcxpBAwDjEMMAoGA1UE --AwwDdDcypBAwDjEMMAoGA1UEAwwDdDczpBAwDjEMMAoGA1UEAwwDdDc0pBAwDjEM --MAoGA1UEAwwDdDc1pBAwDjEMMAoGA1UEAwwDdDc2pBAwDjEMMAoGA1UEAwwDdDc3 --pBAwDjEMMAoGA1UEAwwDdDc4pBAwDjEMMAoGA1UEAwwDdDc5pBAwDjEMMAoGA1UE --AwwDdDgwpBAwDjEMMAoGA1UEAwwDdDgxpBAwDjEMMAoGA1UEAwwDdDgypBAwDjEM --MAoGA1UEAwwDdDgzpBAwDjEMMAoGA1UEAwwDdDg0pBAwDjEMMAoGA1UEAwwDdDg1 --pBAwDjEMMAoGA1UEAwwDdDg2pBAwDjEMMAoGA1UEAwwDdDg3pBAwDjEMMAoGA1UE --AwwDdDg4pBAwDjEMMAoGA1UEAwwDdDg5pBAwDjEMMAoGA1UEAwwDdDkwpBAwDjEM --MAoGA1UEAwwDdDkxpBAwDjEMMAoGA1UEAwwDdDkypBAwDjEMMAoGA1UEAwwDdDkz --pBAwDjEMMAoGA1UEAwwDdDk0pBAwDjEMMAoGA1UEAwwDdDk1pBAwDjEMMAoGA1UE --AwwDdDk2pBAwDjEMMAoGA1UEAwwDdDk3pBAwDjEMMAoGA1UEAwwDdDk4pBAwDjEM --MAoGA1UEAwwDdDk5pBEwDzENMAsGA1UEAwwEdDEwMKQRMA8xDTALBgNVBAMMBHQx --MDGkETAPMQ0wCwYDVQQDDAR0MTAypBEwDzENMAsGA1UEAwwEdDEwM6QRMA8xDTAL --BgNVBAMMBHQxMDSkETAPMQ0wCwYDVQQDDAR0MTA1pBEwDzENMAsGA1UEAwwEdDEw --NqQRMA8xDTALBgNVBAMMBHQxMDekETAPMQ0wCwYDVQQDDAR0MTA4pBEwDzENMAsG --A1UEAwwEdDEwOaQRMA8xDTALBgNVBAMMBHQxMTCkETAPMQ0wCwYDVQQDDAR0MTEx --pBEwDzENMAsGA1UEAwwEdDExMqQRMA8xDTALBgNVBAMMBHQxMTOkETAPMQ0wCwYD --VQQDDAR0MTE0pBEwDzENMAsGA1UEAwwEdDExNaQRMA8xDTALBgNVBAMMBHQxMTak --ETAPMQ0wCwYDVQQDDAR0MTE3pBEwDzENMAsGA1UEAwwEdDExOKQRMA8xDTALBgNV --BAMMBHQxMTmkETAPMQ0wCwYDVQQDDAR0MTIwpBEwDzENMAsGA1UEAwwEdDEyMaQR --MA8xDTALBgNVBAMMBHQxMjKkETAPMQ0wCwYDVQQDDAR0MTIzpBEwDzENMAsGA1UE --AwwEdDEyNKQRMA8xDTALBgNVBAMMBHQxMjWkETAPMQ0wCwYDVQQDDAR0MTI2pBEw --DzENMAsGA1UEAwwEdDEyN6QRMA8xDTALBgNVBAMMBHQxMjikETAPMQ0wCwYDVQQD --DAR0MTI5pBEwDzENMAsGA1UEAwwEdDEzMKQRMA8xDTALBgNVBAMMBHQxMzGkETAP --MQ0wCwYDVQQDDAR0MTMypBEwDzENMAsGA1UEAwwEdDEzM6QRMA8xDTALBgNVBAMM --BHQxMzSkETAPMQ0wCwYDVQQDDAR0MTM1pBEwDzENMAsGA1UEAwwEdDEzNqQRMA8x --DTALBgNVBAMMBHQxMzekETAPMQ0wCwYDVQQDDAR0MTM4pBEwDzENMAsGA1UEAwwE --dDEzOaQRMA8xDTALBgNVBAMMBHQxNDCkETAPMQ0wCwYDVQQDDAR0MTQxpBEwDzEN --MAsGA1UEAwwEdDE0MqQRMA8xDTALBgNVBAMMBHQxNDOkETAPMQ0wCwYDVQQDDAR0 --MTQ0pBEwDzENMAsGA1UEAwwEdDE0NaQRMA8xDTALBgNVBAMMBHQxNDakETAPMQ0w --CwYDVQQDDAR0MTQ3pBEwDzENMAsGA1UEAwwEdDE0OKQRMA8xDTALBgNVBAMMBHQx --NDmkETAPMQ0wCwYDVQQDDAR0MTUwpBEwDzENMAsGA1UEAwwEdDE1MaQRMA8xDTAL --BgNVBAMMBHQxNTKkETAPMQ0wCwYDVQQDDAR0MTUzpBEwDzENMAsGA1UEAwwEdDE1 --NKQRMA8xDTALBgNVBAMMBHQxNTWkETAPMQ0wCwYDVQQDDAR0MTU2pBEwDzENMAsG --A1UEAwwEdDE1N6QRMA8xDTALBgNVBAMMBHQxNTikETAPMQ0wCwYDVQQDDAR0MTU5 --pBEwDzENMAsGA1UEAwwEdDE2MKQRMA8xDTALBgNVBAMMBHQxNjGkETAPMQ0wCwYD --VQQDDAR0MTYypBEwDzENMAsGA1UEAwwEdDE2M6QRMA8xDTALBgNVBAMMBHQxNjSk --ETAPMQ0wCwYDVQQDDAR0MTY1pBEwDzENMAsGA1UEAwwEdDE2NqQRMA8xDTALBgNV --BAMMBHQxNjekETAPMQ0wCwYDVQQDDAR0MTY4pBEwDzENMAsGA1UEAwwEdDE2OaQR --MA8xDTALBgNVBAMMBHQxNzCkETAPMQ0wCwYDVQQDDAR0MTcxpBEwDzENMAsGA1UE --AwwEdDE3MqQRMA8xDTALBgNVBAMMBHQxNzOkETAPMQ0wCwYDVQQDDAR0MTc0pBEw --DzENMAsGA1UEAwwEdDE3NaQRMA8xDTALBgNVBAMMBHQxNzakETAPMQ0wCwYDVQQD --DAR0MTc3pBEwDzENMAsGA1UEAwwEdDE3OKQRMA8xDTALBgNVBAMMBHQxNzmkETAP --MQ0wCwYDVQQDDAR0MTgwpBEwDzENMAsGA1UEAwwEdDE4MaQRMA8xDTALBgNVBAMM --BHQxODKkETAPMQ0wCwYDVQQDDAR0MTgzpBEwDzENMAsGA1UEAwwEdDE4NKQRMA8x --DTALBgNVBAMMBHQxODWkETAPMQ0wCwYDVQQDDAR0MTg2pBEwDzENMAsGA1UEAwwE --dDE4N6QRMA8xDTALBgNVBAMMBHQxODikETAPMQ0wCwYDVQQDDAR0MTg5pBEwDzEN --MAsGA1UEAwwEdDE5MKQRMA8xDTALBgNVBAMMBHQxOTGkETAPMQ0wCwYDVQQDDAR0 --MTkypBEwDzENMAsGA1UEAwwEdDE5M6QRMA8xDTALBgNVBAMMBHQxOTSkETAPMQ0w --CwYDVQQDDAR0MTk1pBEwDzENMAsGA1UEAwwEdDE5NqQRMA8xDTALBgNVBAMMBHQx --OTekETAPMQ0wCwYDVQQDDAR0MTk4pBEwDzENMAsGA1UEAwwEdDE5OaQRMA8xDTAL --BgNVBAMMBHQyMDCkETAPMQ0wCwYDVQQDDAR0MjAxpBEwDzENMAsGA1UEAwwEdDIw --MqQRMA8xDTALBgNVBAMMBHQyMDOkETAPMQ0wCwYDVQQDDAR0MjA0pBEwDzENMAsG --A1UEAwwEdDIwNaQRMA8xDTALBgNVBAMMBHQyMDakETAPMQ0wCwYDVQQDDAR0MjA3 --pBEwDzENMAsGA1UEAwwEdDIwOKQRMA8xDTALBgNVBAMMBHQyMDmkETAPMQ0wCwYD --VQQDDAR0MjEwpBEwDzENMAsGA1UEAwwEdDIxMaQRMA8xDTALBgNVBAMMBHQyMTKk --ETAPMQ0wCwYDVQQDDAR0MjEzpBEwDzENMAsGA1UEAwwEdDIxNKQRMA8xDTALBgNV --BAMMBHQyMTWkETAPMQ0wCwYDVQQDDAR0MjE2pBEwDzENMAsGA1UEAwwEdDIxN6QR --MA8xDTALBgNVBAMMBHQyMTikETAPMQ0wCwYDVQQDDAR0MjE5pBEwDzENMAsGA1UE --AwwEdDIyMKQRMA8xDTALBgNVBAMMBHQyMjGkETAPMQ0wCwYDVQQDDAR0MjIypBEw --DzENMAsGA1UEAwwEdDIyM6QRMA8xDTALBgNVBAMMBHQyMjSkETAPMQ0wCwYDVQQD --DAR0MjI1pBEwDzENMAsGA1UEAwwEdDIyNqQRMA8xDTALBgNVBAMMBHQyMjekETAP --MQ0wCwYDVQQDDAR0MjI4pBEwDzENMAsGA1UEAwwEdDIyOaQRMA8xDTALBgNVBAMM --BHQyMzCkETAPMQ0wCwYDVQQDDAR0MjMxpBEwDzENMAsGA1UEAwwEdDIzMqQRMA8x --DTALBgNVBAMMBHQyMzOkETAPMQ0wCwYDVQQDDAR0MjM0pBEwDzENMAsGA1UEAwwE --dDIzNaQRMA8xDTALBgNVBAMMBHQyMzakETAPMQ0wCwYDVQQDDAR0MjM3pBEwDzEN --MAsGA1UEAwwEdDIzOKQRMA8xDTALBgNVBAMMBHQyMzmkETAPMQ0wCwYDVQQDDAR0 --MjQwpBEwDzENMAsGA1UEAwwEdDI0MaQRMA8xDTALBgNVBAMMBHQyNDKkETAPMQ0w --CwYDVQQDDAR0MjQzpBEwDzENMAsGA1UEAwwEdDI0NKQRMA8xDTALBgNVBAMMBHQy --NDWkETAPMQ0wCwYDVQQDDAR0MjQ2pBEwDzENMAsGA1UEAwwEdDI0N6QRMA8xDTAL --BgNVBAMMBHQyNDikETAPMQ0wCwYDVQQDDAR0MjQ5pBEwDzENMAsGA1UEAwwEdDI1 --MKQRMA8xDTALBgNVBAMMBHQyNTGkETAPMQ0wCwYDVQQDDAR0MjUypBEwDzENMAsG --A1UEAwwEdDI1M6QRMA8xDTALBgNVBAMMBHQyNTSkETAPMQ0wCwYDVQQDDAR0MjU1 --pBEwDzENMAsGA1UEAwwEdDI1NqQRMA8xDTALBgNVBAMMBHQyNTekETAPMQ0wCwYD --VQQDDAR0MjU4pBEwDzENMAsGA1UEAwwEdDI1OaQRMA8xDTALBgNVBAMMBHQyNjCk --ETAPMQ0wCwYDVQQDDAR0MjYxpBEwDzENMAsGA1UEAwwEdDI2MqQRMA8xDTALBgNV --BAMMBHQyNjOkETAPMQ0wCwYDVQQDDAR0MjY0pBEwDzENMAsGA1UEAwwEdDI2NaQR --MA8xDTALBgNVBAMMBHQyNjakETAPMQ0wCwYDVQQDDAR0MjY3pBEwDzENMAsGA1UE --AwwEdDI2OKQRMA8xDTALBgNVBAMMBHQyNjmkETAPMQ0wCwYDVQQDDAR0MjcwpBEw --DzENMAsGA1UEAwwEdDI3MaQRMA8xDTALBgNVBAMMBHQyNzKkETAPMQ0wCwYDVQQD --DAR0MjczpBEwDzENMAsGA1UEAwwEdDI3NKQRMA8xDTALBgNVBAMMBHQyNzWkETAP --MQ0wCwYDVQQDDAR0Mjc2pBEwDzENMAsGA1UEAwwEdDI3N6QRMA8xDTALBgNVBAMM --BHQyNzikETAPMQ0wCwYDVQQDDAR0Mjc5pBEwDzENMAsGA1UEAwwEdDI4MKQRMA8x --DTALBgNVBAMMBHQyODGkETAPMQ0wCwYDVQQDDAR0MjgypBEwDzENMAsGA1UEAwwE --dDI4M6QRMA8xDTALBgNVBAMMBHQyODSkETAPMQ0wCwYDVQQDDAR0Mjg1pBEwDzEN --MAsGA1UEAwwEdDI4NqQRMA8xDTALBgNVBAMMBHQyODekETAPMQ0wCwYDVQQDDAR0 --Mjg4pBEwDzENMAsGA1UEAwwEdDI4OaQRMA8xDTALBgNVBAMMBHQyOTCkETAPMQ0w --CwYDVQQDDAR0MjkxpBEwDzENMAsGA1UEAwwEdDI5MqQRMA8xDTALBgNVBAMMBHQy --OTOkETAPMQ0wCwYDVQQDDAR0Mjk0pBEwDzENMAsGA1UEAwwEdDI5NaQRMA8xDTAL --BgNVBAMMBHQyOTakETAPMQ0wCwYDVQQDDAR0Mjk3pBEwDzENMAsGA1UEAwwEdDI5 --OKQRMA8xDTALBgNVBAMMBHQyOTmkETAPMQ0wCwYDVQQDDAR0MzAwpBEwDzENMAsG --A1UEAwwEdDMwMaQRMA8xDTALBgNVBAMMBHQzMDKkETAPMQ0wCwYDVQQDDAR0MzAz --pBEwDzENMAsGA1UEAwwEdDMwNKQRMA8xDTALBgNVBAMMBHQzMDWkETAPMQ0wCwYD --VQQDDAR0MzA2pBEwDzENMAsGA1UEAwwEdDMwN6QRMA8xDTALBgNVBAMMBHQzMDik --ETAPMQ0wCwYDVQQDDAR0MzA5pBEwDzENMAsGA1UEAwwEdDMxMKQRMA8xDTALBgNV --BAMMBHQzMTGkETAPMQ0wCwYDVQQDDAR0MzEypBEwDzENMAsGA1UEAwwEdDMxM6QR --MA8xDTALBgNVBAMMBHQzMTSkETAPMQ0wCwYDVQQDDAR0MzE1pBEwDzENMAsGA1UE --AwwEdDMxNqQRMA8xDTALBgNVBAMMBHQzMTekETAPMQ0wCwYDVQQDDAR0MzE4pBEw --DzENMAsGA1UEAwwEdDMxOaQRMA8xDTALBgNVBAMMBHQzMjCkETAPMQ0wCwYDVQQD --DAR0MzIxpBEwDzENMAsGA1UEAwwEdDMyMqQRMA8xDTALBgNVBAMMBHQzMjOkETAP --MQ0wCwYDVQQDDAR0MzI0pBEwDzENMAsGA1UEAwwEdDMyNaQRMA8xDTALBgNVBAMM --BHQzMjakETAPMQ0wCwYDVQQDDAR0MzI3pBEwDzENMAsGA1UEAwwEdDMyOKQRMA8x --DTALBgNVBAMMBHQzMjmkETAPMQ0wCwYDVQQDDAR0MzMwpBEwDzENMAsGA1UEAwwE --dDMzMaQRMA8xDTALBgNVBAMMBHQzMzKkETAPMQ0wCwYDVQQDDAR0MzMzpBEwDzEN --MAsGA1UEAwwEdDMzNKQRMA8xDTALBgNVBAMMBHQzMzWkETAPMQ0wCwYDVQQDDAR0 --MzM2pBEwDzENMAsGA1UEAwwEdDMzN6QRMA8xDTALBgNVBAMMBHQzMzikETAPMQ0w --CwYDVQQDDAR0MzM5pBEwDzENMAsGA1UEAwwEdDM0MKQRMA8xDTALBgNVBAMMBHQz --NDGkETAPMQ0wCwYDVQQDDAR0MzQypBEwDzENMAsGA1UEAwwEdDM0M6QRMA8xDTAL --BgNVBAMMBHQzNDSkETAPMQ0wCwYDVQQDDAR0MzQ1pBEwDzENMAsGA1UEAwwEdDM0 --NqQRMA8xDTALBgNVBAMMBHQzNDekETAPMQ0wCwYDVQQDDAR0MzQ4pBEwDzENMAsG --A1UEAwwEdDM0OaQRMA8xDTALBgNVBAMMBHQzNTCkETAPMQ0wCwYDVQQDDAR0MzUx --pBEwDzENMAsGA1UEAwwEdDM1MqQRMA8xDTALBgNVBAMMBHQzNTOkETAPMQ0wCwYD --VQQDDAR0MzU0pBEwDzENMAsGA1UEAwwEdDM1NaQRMA8xDTALBgNVBAMMBHQzNTak --ETAPMQ0wCwYDVQQDDAR0MzU3pBEwDzENMAsGA1UEAwwEdDM1OKQRMA8xDTALBgNV --BAMMBHQzNTmkETAPMQ0wCwYDVQQDDAR0MzYwpBEwDzENMAsGA1UEAwwEdDM2MaQR --MA8xDTALBgNVBAMMBHQzNjKkETAPMQ0wCwYDVQQDDAR0MzYzpBEwDzENMAsGA1UE --AwwEdDM2NKQRMA8xDTALBgNVBAMMBHQzNjWkETAPMQ0wCwYDVQQDDAR0MzY2pBEw --DzENMAsGA1UEAwwEdDM2N6QRMA8xDTALBgNVBAMMBHQzNjikETAPMQ0wCwYDVQQD --DAR0MzY5pBEwDzENMAsGA1UEAwwEdDM3MKQRMA8xDTALBgNVBAMMBHQzNzGkETAP --MQ0wCwYDVQQDDAR0MzcypBEwDzENMAsGA1UEAwwEdDM3M6QRMA8xDTALBgNVBAMM --BHQzNzSkETAPMQ0wCwYDVQQDDAR0Mzc1pBEwDzENMAsGA1UEAwwEdDM3NqQRMA8x --DTALBgNVBAMMBHQzNzekETAPMQ0wCwYDVQQDDAR0Mzc4pBEwDzENMAsGA1UEAwwE --dDM3OaQRMA8xDTALBgNVBAMMBHQzODCkETAPMQ0wCwYDVQQDDAR0MzgxpBEwDzEN --MAsGA1UEAwwEdDM4MqQRMA8xDTALBgNVBAMMBHQzODOkETAPMQ0wCwYDVQQDDAR0 --Mzg0pBEwDzENMAsGA1UEAwwEdDM4NaQRMA8xDTALBgNVBAMMBHQzODakETAPMQ0w --CwYDVQQDDAR0Mzg3pBEwDzENMAsGA1UEAwwEdDM4OKQRMA8xDTALBgNVBAMMBHQz --ODmkETAPMQ0wCwYDVQQDDAR0MzkwpBEwDzENMAsGA1UEAwwEdDM5MaQRMA8xDTAL --BgNVBAMMBHQzOTKkETAPMQ0wCwYDVQQDDAR0MzkzpBEwDzENMAsGA1UEAwwEdDM5 --NKQRMA8xDTALBgNVBAMMBHQzOTWkETAPMQ0wCwYDVQQDDAR0Mzk2pBEwDzENMAsG --A1UEAwwEdDM5N6QRMA8xDTALBgNVBAMMBHQzOTikETAPMQ0wCwYDVQQDDAR0Mzk5 --pBEwDzENMAsGA1UEAwwEdDQwMKQRMA8xDTALBgNVBAMMBHQ0MDGkETAPMQ0wCwYD --VQQDDAR0NDAypBEwDzENMAsGA1UEAwwEdDQwM6QRMA8xDTALBgNVBAMMBHQ0MDSk --ETAPMQ0wCwYDVQQDDAR0NDA1pBEwDzENMAsGA1UEAwwEdDQwNqQRMA8xDTALBgNV --BAMMBHQ0MDekETAPMQ0wCwYDVQQDDAR0NDA4pBEwDzENMAsGA1UEAwwEdDQwOaQR --MA8xDTALBgNVBAMMBHQ0MTCkETAPMQ0wCwYDVQQDDAR0NDExpBEwDzENMAsGA1UE --AwwEdDQxMqQRMA8xDTALBgNVBAMMBHQ0MTOkETAPMQ0wCwYDVQQDDAR0NDE0pBEw --DzENMAsGA1UEAwwEdDQxNaQRMA8xDTALBgNVBAMMBHQ0MTakETAPMQ0wCwYDVQQD --DAR0NDE3pBEwDzENMAsGA1UEAwwEdDQxOKQRMA8xDTALBgNVBAMMBHQ0MTmkETAP --MQ0wCwYDVQQDDAR0NDIwpBEwDzENMAsGA1UEAwwEdDQyMaQRMA8xDTALBgNVBAMM --BHQ0MjKkETAPMQ0wCwYDVQQDDAR0NDIzpBEwDzENMAsGA1UEAwwEdDQyNKQRMA8x --DTALBgNVBAMMBHQ0MjWkETAPMQ0wCwYDVQQDDAR0NDI2pBEwDzENMAsGA1UEAwwE --dDQyN6QRMA8xDTALBgNVBAMMBHQ0MjikETAPMQ0wCwYDVQQDDAR0NDI5pBEwDzEN --MAsGA1UEAwwEdDQzMKQRMA8xDTALBgNVBAMMBHQ0MzGkETAPMQ0wCwYDVQQDDAR0 --NDMypBEwDzENMAsGA1UEAwwEdDQzM6QRMA8xDTALBgNVBAMMBHQ0MzSkETAPMQ0w --CwYDVQQDDAR0NDM1pBEwDzENMAsGA1UEAwwEdDQzNqQRMA8xDTALBgNVBAMMBHQ0 --MzekETAPMQ0wCwYDVQQDDAR0NDM4pBEwDzENMAsGA1UEAwwEdDQzOaQRMA8xDTAL --BgNVBAMMBHQ0NDCkETAPMQ0wCwYDVQQDDAR0NDQxpBEwDzENMAsGA1UEAwwEdDQ0 --MqQRMA8xDTALBgNVBAMMBHQ0NDOkETAPMQ0wCwYDVQQDDAR0NDQ0pBEwDzENMAsG --A1UEAwwEdDQ0NaQRMA8xDTALBgNVBAMMBHQ0NDakETAPMQ0wCwYDVQQDDAR0NDQ3 --pBEwDzENMAsGA1UEAwwEdDQ0OKQRMA8xDTALBgNVBAMMBHQ0NDmkETAPMQ0wCwYD --VQQDDAR0NDUwpBEwDzENMAsGA1UEAwwEdDQ1MaQRMA8xDTALBgNVBAMMBHQ0NTKk --ETAPMQ0wCwYDVQQDDAR0NDUzpBEwDzENMAsGA1UEAwwEdDQ1NKQRMA8xDTALBgNV --BAMMBHQ0NTWkETAPMQ0wCwYDVQQDDAR0NDU2pBEwDzENMAsGA1UEAwwEdDQ1N6QR --MA8xDTALBgNVBAMMBHQ0NTikETAPMQ0wCwYDVQQDDAR0NDU5pBEwDzENMAsGA1UE --AwwEdDQ2MKQRMA8xDTALBgNVBAMMBHQ0NjGkETAPMQ0wCwYDVQQDDAR0NDYypBEw --DzENMAsGA1UEAwwEdDQ2M6QRMA8xDTALBgNVBAMMBHQ0NjSkETAPMQ0wCwYDVQQD --DAR0NDY1pBEwDzENMAsGA1UEAwwEdDQ2NqQRMA8xDTALBgNVBAMMBHQ0NjekETAP --MQ0wCwYDVQQDDAR0NDY4pBEwDzENMAsGA1UEAwwEdDQ2OaQRMA8xDTALBgNVBAMM --BHQ0NzCkETAPMQ0wCwYDVQQDDAR0NDcxpBEwDzENMAsGA1UEAwwEdDQ3MqQRMA8x --DTALBgNVBAMMBHQ0NzOkETAPMQ0wCwYDVQQDDAR0NDc0pBEwDzENMAsGA1UEAwwE --dDQ3NaQRMA8xDTALBgNVBAMMBHQ0NzakETAPMQ0wCwYDVQQDDAR0NDc3pBEwDzEN --MAsGA1UEAwwEdDQ3OKQRMA8xDTALBgNVBAMMBHQ0NzmkETAPMQ0wCwYDVQQDDAR0 --NDgwpBEwDzENMAsGA1UEAwwEdDQ4MaQRMA8xDTALBgNVBAMMBHQ0ODKkETAPMQ0w --CwYDVQQDDAR0NDgzpBEwDzENMAsGA1UEAwwEdDQ4NKQRMA8xDTALBgNVBAMMBHQ0 --ODWkETAPMQ0wCwYDVQQDDAR0NDg2pBEwDzENMAsGA1UEAwwEdDQ4N6QRMA8xDTAL --BgNVBAMMBHQ0ODikETAPMQ0wCwYDVQQDDAR0NDg5pBEwDzENMAsGA1UEAwwEdDQ5 --MKQRMA8xDTALBgNVBAMMBHQ0OTGkETAPMQ0wCwYDVQQDDAR0NDkypBEwDzENMAsG --A1UEAwwEdDQ5M6QRMA8xDTALBgNVBAMMBHQ0OTSkETAPMQ0wCwYDVQQDDAR0NDk1 --pBEwDzENMAsGA1UEAwwEdDQ5NqQRMA8xDTALBgNVBAMMBHQ0OTekETAPMQ0wCwYD --VQQDDAR0NDk4pBEwDzENMAsGA1UEAwwEdDQ5OaQRMA8xDTALBgNVBAMMBHQ1MDCk --ETAPMQ0wCwYDVQQDDAR0NTAxpBEwDzENMAsGA1UEAwwEdDUwMqQRMA8xDTALBgNV --BAMMBHQ1MDOkETAPMQ0wCwYDVQQDDAR0NTA0pBEwDzENMAsGA1UEAwwEdDUwNaQR --MA8xDTALBgNVBAMMBHQ1MDakETAPMQ0wCwYDVQQDDAR0NTA3pBEwDzENMAsGA1UE --AwwEdDUwOKQRMA8xDTALBgNVBAMMBHQ1MDmkETAPMQ0wCwYDVQQDDAR0NTEwpBEw --DzENMAsGA1UEAwwEdDUxMaQRMA8xDTALBgNVBAMMBHQ1MTKkETAPMQ0wCwYDVQQD --DAR0NTEzpBEwDzENMAsGA1UEAwwEdDUxNKQRMA8xDTALBgNVBAMMBHQ1MTWkETAP --MQ0wCwYDVQQDDAR0NTE2pBEwDzENMAsGA1UEAwwEdDUxN6QRMA8xDTALBgNVBAMM --BHQ1MTikETAPMQ0wCwYDVQQDDAR0NTE5pBEwDzENMAsGA1UEAwwEdDUyMKQRMA8x --DTALBgNVBAMMBHQ1MjGkETAPMQ0wCwYDVQQDDAR0NTIypBEwDzENMAsGA1UEAwwE --dDUyM6QRMA8xDTALBgNVBAMMBHQ1MjSkETAPMQ0wCwYDVQQDDAR0NTI1pBEwDzEN --MAsGA1UEAwwEdDUyNqQRMA8xDTALBgNVBAMMBHQ1MjekETAPMQ0wCwYDVQQDDAR0 --NTI4pBEwDzENMAsGA1UEAwwEdDUyOaQRMA8xDTALBgNVBAMMBHQ1MzCkETAPMQ0w --CwYDVQQDDAR0NTMxpBEwDzENMAsGA1UEAwwEdDUzMqQRMA8xDTALBgNVBAMMBHQ1 --MzOkETAPMQ0wCwYDVQQDDAR0NTM0pBEwDzENMAsGA1UEAwwEdDUzNaQRMA8xDTAL --BgNVBAMMBHQ1MzakETAPMQ0wCwYDVQQDDAR0NTM3pBEwDzENMAsGA1UEAwwEdDUz --OKQRMA8xDTALBgNVBAMMBHQ1MzmkETAPMQ0wCwYDVQQDDAR0NTQwpBEwDzENMAsG --A1UEAwwEdDU0MaQRMA8xDTALBgNVBAMMBHQ1NDKkETAPMQ0wCwYDVQQDDAR0NTQz --pBEwDzENMAsGA1UEAwwEdDU0NKQRMA8xDTALBgNVBAMMBHQ1NDWkETAPMQ0wCwYD --VQQDDAR0NTQ2pBEwDzENMAsGA1UEAwwEdDU0N6QRMA8xDTALBgNVBAMMBHQ1NDik --ETAPMQ0wCwYDVQQDDAR0NTQ5pBEwDzENMAsGA1UEAwwEdDU1MKQRMA8xDTALBgNV --BAMMBHQ1NTGkETAPMQ0wCwYDVQQDDAR0NTUypBEwDzENMAsGA1UEAwwEdDU1M6QR --MA8xDTALBgNVBAMMBHQ1NTSkETAPMQ0wCwYDVQQDDAR0NTU1pBEwDzENMAsGA1UE --AwwEdDU1NqQRMA8xDTALBgNVBAMMBHQ1NTekETAPMQ0wCwYDVQQDDAR0NTU4pBEw --DzENMAsGA1UEAwwEdDU1OaQRMA8xDTALBgNVBAMMBHQ1NjCkETAPMQ0wCwYDVQQD --DAR0NTYxpBEwDzENMAsGA1UEAwwEdDU2MqQRMA8xDTALBgNVBAMMBHQ1NjOkETAP --MQ0wCwYDVQQDDAR0NTY0pBEwDzENMAsGA1UEAwwEdDU2NaQRMA8xDTALBgNVBAMM --BHQ1NjakETAPMQ0wCwYDVQQDDAR0NTY3pBEwDzENMAsGA1UEAwwEdDU2OKQRMA8x --DTALBgNVBAMMBHQ1NjmkETAPMQ0wCwYDVQQDDAR0NTcwpBEwDzENMAsGA1UEAwwE --dDU3MaQRMA8xDTALBgNVBAMMBHQ1NzKkETAPMQ0wCwYDVQQDDAR0NTczpBEwDzEN --MAsGA1UEAwwEdDU3NKQRMA8xDTALBgNVBAMMBHQ1NzWkETAPMQ0wCwYDVQQDDAR0 --NTc2pBEwDzENMAsGA1UEAwwEdDU3N6QRMA8xDTALBgNVBAMMBHQ1NzikETAPMQ0w --CwYDVQQDDAR0NTc5pBEwDzENMAsGA1UEAwwEdDU4MKQRMA8xDTALBgNVBAMMBHQ1 --ODGkETAPMQ0wCwYDVQQDDAR0NTgypBEwDzENMAsGA1UEAwwEdDU4M6QRMA8xDTAL --BgNVBAMMBHQ1ODSkETAPMQ0wCwYDVQQDDAR0NTg1pBEwDzENMAsGA1UEAwwEdDU4 --NqQRMA8xDTALBgNVBAMMBHQ1ODekETAPMQ0wCwYDVQQDDAR0NTg4pBEwDzENMAsG --A1UEAwwEdDU4OaQRMA8xDTALBgNVBAMMBHQ1OTCkETAPMQ0wCwYDVQQDDAR0NTkx --pBEwDzENMAsGA1UEAwwEdDU5MqQRMA8xDTALBgNVBAMMBHQ1OTOkETAPMQ0wCwYD --VQQDDAR0NTk0pBEwDzENMAsGA1UEAwwEdDU5NaQRMA8xDTALBgNVBAMMBHQ1OTak --ETAPMQ0wCwYDVQQDDAR0NTk3pBEwDzENMAsGA1UEAwwEdDU5OKQRMA8xDTALBgNV --BAMMBHQ1OTmkETAPMQ0wCwYDVQQDDAR0NjAwpBEwDzENMAsGA1UEAwwEdDYwMaQR --MA8xDTALBgNVBAMMBHQ2MDKkETAPMQ0wCwYDVQQDDAR0NjAzpBEwDzENMAsGA1UE --AwwEdDYwNKQRMA8xDTALBgNVBAMMBHQ2MDWkETAPMQ0wCwYDVQQDDAR0NjA2pBEw --DzENMAsGA1UEAwwEdDYwN6QRMA8xDTALBgNVBAMMBHQ2MDikETAPMQ0wCwYDVQQD --DAR0NjA5pBEwDzENMAsGA1UEAwwEdDYxMKQRMA8xDTALBgNVBAMMBHQ2MTGkETAP --MQ0wCwYDVQQDDAR0NjEypBEwDzENMAsGA1UEAwwEdDYxM6QRMA8xDTALBgNVBAMM --BHQ2MTSkETAPMQ0wCwYDVQQDDAR0NjE1pBEwDzENMAsGA1UEAwwEdDYxNqQRMA8x --DTALBgNVBAMMBHQ2MTekETAPMQ0wCwYDVQQDDAR0NjE4pBEwDzENMAsGA1UEAwwE --dDYxOaQRMA8xDTALBgNVBAMMBHQ2MjCkETAPMQ0wCwYDVQQDDAR0NjIxpBEwDzEN --MAsGA1UEAwwEdDYyMqQRMA8xDTALBgNVBAMMBHQ2MjOkETAPMQ0wCwYDVQQDDAR0 --NjI0pBEwDzENMAsGA1UEAwwEdDYyNaQRMA8xDTALBgNVBAMMBHQ2MjakETAPMQ0w --CwYDVQQDDAR0NjI3pBEwDzENMAsGA1UEAwwEdDYyOKQRMA8xDTALBgNVBAMMBHQ2 --MjmkETAPMQ0wCwYDVQQDDAR0NjMwpBEwDzENMAsGA1UEAwwEdDYzMaQRMA8xDTAL --BgNVBAMMBHQ2MzKkETAPMQ0wCwYDVQQDDAR0NjMzpBEwDzENMAsGA1UEAwwEdDYz --NKQRMA8xDTALBgNVBAMMBHQ2MzWkETAPMQ0wCwYDVQQDDAR0NjM2pBEwDzENMAsG --A1UEAwwEdDYzN6QRMA8xDTALBgNVBAMMBHQ2MzikETAPMQ0wCwYDVQQDDAR0NjM5 --pBEwDzENMAsGA1UEAwwEdDY0MKQRMA8xDTALBgNVBAMMBHQ2NDGkETAPMQ0wCwYD --VQQDDAR0NjQypBEwDzENMAsGA1UEAwwEdDY0M6QRMA8xDTALBgNVBAMMBHQ2NDSk --ETAPMQ0wCwYDVQQDDAR0NjQ1pBEwDzENMAsGA1UEAwwEdDY0NqQRMA8xDTALBgNV --BAMMBHQ2NDekETAPMQ0wCwYDVQQDDAR0NjQ4pBEwDzENMAsGA1UEAwwEdDY0OaQR --MA8xDTALBgNVBAMMBHQ2NTCkETAPMQ0wCwYDVQQDDAR0NjUxpBEwDzENMAsGA1UE --AwwEdDY1MqQRMA8xDTALBgNVBAMMBHQ2NTOkETAPMQ0wCwYDVQQDDAR0NjU0pBEw --DzENMAsGA1UEAwwEdDY1NaQRMA8xDTALBgNVBAMMBHQ2NTakETAPMQ0wCwYDVQQD --DAR0NjU3pBEwDzENMAsGA1UEAwwEdDY1OKQRMA8xDTALBgNVBAMMBHQ2NTmkETAP --MQ0wCwYDVQQDDAR0NjYwpBEwDzENMAsGA1UEAwwEdDY2MaQRMA8xDTALBgNVBAMM --BHQ2NjKkETAPMQ0wCwYDVQQDDAR0NjYzpBEwDzENMAsGA1UEAwwEdDY2NKQRMA8x --DTALBgNVBAMMBHQ2NjWkETAPMQ0wCwYDVQQDDAR0NjY2pBEwDzENMAsGA1UEAwwE --dDY2N6QRMA8xDTALBgNVBAMMBHQ2NjikETAPMQ0wCwYDVQQDDAR0NjY5pBEwDzEN --MAsGA1UEAwwEdDY3MKQRMA8xDTALBgNVBAMMBHQ2NzGkETAPMQ0wCwYDVQQDDAR0 --NjcypBEwDzENMAsGA1UEAwwEdDY3M6QRMA8xDTALBgNVBAMMBHQ2NzSkETAPMQ0w --CwYDVQQDDAR0Njc1pBEwDzENMAsGA1UEAwwEdDY3NqQRMA8xDTALBgNVBAMMBHQ2 --NzekETAPMQ0wCwYDVQQDDAR0Njc4pBEwDzENMAsGA1UEAwwEdDY3OaQRMA8xDTAL --BgNVBAMMBHQ2ODCkETAPMQ0wCwYDVQQDDAR0NjgxpBEwDzENMAsGA1UEAwwEdDY4 --MqQRMA8xDTALBgNVBAMMBHQ2ODOkETAPMQ0wCwYDVQQDDAR0Njg0pBEwDzENMAsG --A1UEAwwEdDY4NaQRMA8xDTALBgNVBAMMBHQ2ODakETAPMQ0wCwYDVQQDDAR0Njg3 --pBEwDzENMAsGA1UEAwwEdDY4OKQRMA8xDTALBgNVBAMMBHQ2ODmkETAPMQ0wCwYD --VQQDDAR0NjkwpBEwDzENMAsGA1UEAwwEdDY5MaQRMA8xDTALBgNVBAMMBHQ2OTKk --ETAPMQ0wCwYDVQQDDAR0NjkzpBEwDzENMAsGA1UEAwwEdDY5NKQRMA8xDTALBgNV --BAMMBHQ2OTWkETAPMQ0wCwYDVQQDDAR0Njk2pBEwDzENMAsGA1UEAwwEdDY5N6QR --MA8xDTALBgNVBAMMBHQ2OTikETAPMQ0wCwYDVQQDDAR0Njk5pBEwDzENMAsGA1UE --AwwEdDcwMKQRMA8xDTALBgNVBAMMBHQ3MDGkETAPMQ0wCwYDVQQDDAR0NzAypBEw --DzENMAsGA1UEAwwEdDcwM6QRMA8xDTALBgNVBAMMBHQ3MDSkETAPMQ0wCwYDVQQD --DAR0NzA1pBEwDzENMAsGA1UEAwwEdDcwNqQRMA8xDTALBgNVBAMMBHQ3MDekETAP --MQ0wCwYDVQQDDAR0NzA4pBEwDzENMAsGA1UEAwwEdDcwOaQRMA8xDTALBgNVBAMM --BHQ3MTCkETAPMQ0wCwYDVQQDDAR0NzExpBEwDzENMAsGA1UEAwwEdDcxMqQRMA8x --DTALBgNVBAMMBHQ3MTOkETAPMQ0wCwYDVQQDDAR0NzE0pBEwDzENMAsGA1UEAwwE --dDcxNaQRMA8xDTALBgNVBAMMBHQ3MTakETAPMQ0wCwYDVQQDDAR0NzE3pBEwDzEN --MAsGA1UEAwwEdDcxOKQRMA8xDTALBgNVBAMMBHQ3MTmkETAPMQ0wCwYDVQQDDAR0 --NzIwpBEwDzENMAsGA1UEAwwEdDcyMaQRMA8xDTALBgNVBAMMBHQ3MjKkETAPMQ0w --CwYDVQQDDAR0NzIzpBEwDzENMAsGA1UEAwwEdDcyNKQRMA8xDTALBgNVBAMMBHQ3 --MjWkETAPMQ0wCwYDVQQDDAR0NzI2pBEwDzENMAsGA1UEAwwEdDcyN6QRMA8xDTAL --BgNVBAMMBHQ3MjikETAPMQ0wCwYDVQQDDAR0NzI5pBEwDzENMAsGA1UEAwwEdDcz --MKQRMA8xDTALBgNVBAMMBHQ3MzGkETAPMQ0wCwYDVQQDDAR0NzMypBEwDzENMAsG --A1UEAwwEdDczM6QRMA8xDTALBgNVBAMMBHQ3MzSkETAPMQ0wCwYDVQQDDAR0NzM1 --pBEwDzENMAsGA1UEAwwEdDczNqQRMA8xDTALBgNVBAMMBHQ3MzekETAPMQ0wCwYD --VQQDDAR0NzM4pBEwDzENMAsGA1UEAwwEdDczOaQRMA8xDTALBgNVBAMMBHQ3NDCk --ETAPMQ0wCwYDVQQDDAR0NzQxpBEwDzENMAsGA1UEAwwEdDc0MqQRMA8xDTALBgNV --BAMMBHQ3NDOkETAPMQ0wCwYDVQQDDAR0NzQ0pBEwDzENMAsGA1UEAwwEdDc0NaQR --MA8xDTALBgNVBAMMBHQ3NDakETAPMQ0wCwYDVQQDDAR0NzQ3pBEwDzENMAsGA1UE --AwwEdDc0OKQRMA8xDTALBgNVBAMMBHQ3NDmkETAPMQ0wCwYDVQQDDAR0NzUwpBEw --DzENMAsGA1UEAwwEdDc1MaQRMA8xDTALBgNVBAMMBHQ3NTKkETAPMQ0wCwYDVQQD --DAR0NzUzpBEwDzENMAsGA1UEAwwEdDc1NKQRMA8xDTALBgNVBAMMBHQ3NTWkETAP --MQ0wCwYDVQQDDAR0NzU2pBEwDzENMAsGA1UEAwwEdDc1N6QRMA8xDTALBgNVBAMM --BHQ3NTikETAPMQ0wCwYDVQQDDAR0NzU5pBEwDzENMAsGA1UEAwwEdDc2MKQRMA8x --DTALBgNVBAMMBHQ3NjGkETAPMQ0wCwYDVQQDDAR0NzYypBEwDzENMAsGA1UEAwwE --dDc2M6QRMA8xDTALBgNVBAMMBHQ3NjSkETAPMQ0wCwYDVQQDDAR0NzY1pBEwDzEN --MAsGA1UEAwwEdDc2NqQRMA8xDTALBgNVBAMMBHQ3NjekETAPMQ0wCwYDVQQDDAR0 --NzY4pBEwDzENMAsGA1UEAwwEdDc2OaQRMA8xDTALBgNVBAMMBHQ3NzCkETAPMQ0w --CwYDVQQDDAR0NzcxpBEwDzENMAsGA1UEAwwEdDc3MqQRMA8xDTALBgNVBAMMBHQ3 --NzOkETAPMQ0wCwYDVQQDDAR0Nzc0pBEwDzENMAsGA1UEAwwEdDc3NaQRMA8xDTAL --BgNVBAMMBHQ3NzakETAPMQ0wCwYDVQQDDAR0Nzc3pBEwDzENMAsGA1UEAwwEdDc3 --OKQRMA8xDTALBgNVBAMMBHQ3NzmkETAPMQ0wCwYDVQQDDAR0NzgwpBEwDzENMAsG --A1UEAwwEdDc4MaQRMA8xDTALBgNVBAMMBHQ3ODKkETAPMQ0wCwYDVQQDDAR0Nzgz --pBEwDzENMAsGA1UEAwwEdDc4NKQRMA8xDTALBgNVBAMMBHQ3ODWkETAPMQ0wCwYD --VQQDDAR0Nzg2pBEwDzENMAsGA1UEAwwEdDc4N6QRMA8xDTALBgNVBAMMBHQ3ODik --ETAPMQ0wCwYDVQQDDAR0Nzg5pBEwDzENMAsGA1UEAwwEdDc5MKQRMA8xDTALBgNV --BAMMBHQ3OTGkETAPMQ0wCwYDVQQDDAR0NzkypBEwDzENMAsGA1UEAwwEdDc5M6QR --MA8xDTALBgNVBAMMBHQ3OTSkETAPMQ0wCwYDVQQDDAR0Nzk1pBEwDzENMAsGA1UE --AwwEdDc5NqQRMA8xDTALBgNVBAMMBHQ3OTekETAPMQ0wCwYDVQQDDAR0Nzk4pBEw --DzENMAsGA1UEAwwEdDc5OaQRMA8xDTALBgNVBAMMBHQ4MDCkETAPMQ0wCwYDVQQD --DAR0ODAxpBEwDzENMAsGA1UEAwwEdDgwMqQRMA8xDTALBgNVBAMMBHQ4MDOkETAP --MQ0wCwYDVQQDDAR0ODA0pBEwDzENMAsGA1UEAwwEdDgwNaQRMA8xDTALBgNVBAMM --BHQ4MDakETAPMQ0wCwYDVQQDDAR0ODA3pBEwDzENMAsGA1UEAwwEdDgwOKQRMA8x --DTALBgNVBAMMBHQ4MDmkETAPMQ0wCwYDVQQDDAR0ODEwpBEwDzENMAsGA1UEAwwE --dDgxMaQRMA8xDTALBgNVBAMMBHQ4MTKkETAPMQ0wCwYDVQQDDAR0ODEzpBEwDzEN --MAsGA1UEAwwEdDgxNKQRMA8xDTALBgNVBAMMBHQ4MTWkETAPMQ0wCwYDVQQDDAR0 --ODE2pBEwDzENMAsGA1UEAwwEdDgxN6QRMA8xDTALBgNVBAMMBHQ4MTikETAPMQ0w --CwYDVQQDDAR0ODE5pBEwDzENMAsGA1UEAwwEdDgyMKQRMA8xDTALBgNVBAMMBHQ4 --MjGkETAPMQ0wCwYDVQQDDAR0ODIypBEwDzENMAsGA1UEAwwEdDgyM6QRMA8xDTAL --BgNVBAMMBHQ4MjSkETAPMQ0wCwYDVQQDDAR0ODI1pBEwDzENMAsGA1UEAwwEdDgy --NqQRMA8xDTALBgNVBAMMBHQ4MjekETAPMQ0wCwYDVQQDDAR0ODI4pBEwDzENMAsG --A1UEAwwEdDgyOaQRMA8xDTALBgNVBAMMBHQ4MzCkETAPMQ0wCwYDVQQDDAR0ODMx --pBEwDzENMAsGA1UEAwwEdDgzMqQRMA8xDTALBgNVBAMMBHQ4MzOkETAPMQ0wCwYD --VQQDDAR0ODM0pBEwDzENMAsGA1UEAwwEdDgzNaQRMA8xDTALBgNVBAMMBHQ4Mzak --ETAPMQ0wCwYDVQQDDAR0ODM3pBEwDzENMAsGA1UEAwwEdDgzOKQRMA8xDTALBgNV --BAMMBHQ4MzmkETAPMQ0wCwYDVQQDDAR0ODQwpBEwDzENMAsGA1UEAwwEdDg0MaQR --MA8xDTALBgNVBAMMBHQ4NDKkETAPMQ0wCwYDVQQDDAR0ODQzpBEwDzENMAsGA1UE --AwwEdDg0NKQRMA8xDTALBgNVBAMMBHQ4NDWkETAPMQ0wCwYDVQQDDAR0ODQ2pBEw --DzENMAsGA1UEAwwEdDg0N6QRMA8xDTALBgNVBAMMBHQ4NDikETAPMQ0wCwYDVQQD --DAR0ODQ5pBEwDzENMAsGA1UEAwwEdDg1MKQRMA8xDTALBgNVBAMMBHQ4NTGkETAP --MQ0wCwYDVQQDDAR0ODUypBEwDzENMAsGA1UEAwwEdDg1M6QRMA8xDTALBgNVBAMM --BHQ4NTSkETAPMQ0wCwYDVQQDDAR0ODU1pBEwDzENMAsGA1UEAwwEdDg1NqQRMA8x --DTALBgNVBAMMBHQ4NTekETAPMQ0wCwYDVQQDDAR0ODU4pBEwDzENMAsGA1UEAwwE --dDg1OaQRMA8xDTALBgNVBAMMBHQ4NjCkETAPMQ0wCwYDVQQDDAR0ODYxpBEwDzEN --MAsGA1UEAwwEdDg2MqQRMA8xDTALBgNVBAMMBHQ4NjOkETAPMQ0wCwYDVQQDDAR0 --ODY0pBEwDzENMAsGA1UEAwwEdDg2NaQRMA8xDTALBgNVBAMMBHQ4NjakETAPMQ0w --CwYDVQQDDAR0ODY3pBEwDzENMAsGA1UEAwwEdDg2OKQRMA8xDTALBgNVBAMMBHQ4 --NjmkETAPMQ0wCwYDVQQDDAR0ODcwpBEwDzENMAsGA1UEAwwEdDg3MaQRMA8xDTAL --BgNVBAMMBHQ4NzKkETAPMQ0wCwYDVQQDDAR0ODczpBEwDzENMAsGA1UEAwwEdDg3 --NKQRMA8xDTALBgNVBAMMBHQ4NzWkETAPMQ0wCwYDVQQDDAR0ODc2pBEwDzENMAsG --A1UEAwwEdDg3N6QRMA8xDTALBgNVBAMMBHQ4NzikETAPMQ0wCwYDVQQDDAR0ODc5 --pBEwDzENMAsGA1UEAwwEdDg4MKQRMA8xDTALBgNVBAMMBHQ4ODGkETAPMQ0wCwYD --VQQDDAR0ODgypBEwDzENMAsGA1UEAwwEdDg4M6QRMA8xDTALBgNVBAMMBHQ4ODSk --ETAPMQ0wCwYDVQQDDAR0ODg1pBEwDzENMAsGA1UEAwwEdDg4NqQRMA8xDTALBgNV --BAMMBHQ4ODekETAPMQ0wCwYDVQQDDAR0ODg4pBEwDzENMAsGA1UEAwwEdDg4OaQR --MA8xDTALBgNVBAMMBHQ4OTCkETAPMQ0wCwYDVQQDDAR0ODkxpBEwDzENMAsGA1UE --AwwEdDg5MqQRMA8xDTALBgNVBAMMBHQ4OTOkETAPMQ0wCwYDVQQDDAR0ODk0pBEw --DzENMAsGA1UEAwwEdDg5NaQRMA8xDTALBgNVBAMMBHQ4OTakETAPMQ0wCwYDVQQD --DAR0ODk3pBEwDzENMAsGA1UEAwwEdDg5OKQRMA8xDTALBgNVBAMMBHQ4OTmkETAP --MQ0wCwYDVQQDDAR0OTAwpBEwDzENMAsGA1UEAwwEdDkwMaQRMA8xDTALBgNVBAMM --BHQ5MDKkETAPMQ0wCwYDVQQDDAR0OTAzpBEwDzENMAsGA1UEAwwEdDkwNKQRMA8x --DTALBgNVBAMMBHQ5MDWkETAPMQ0wCwYDVQQDDAR0OTA2pBEwDzENMAsGA1UEAwwE --dDkwN6QRMA8xDTALBgNVBAMMBHQ5MDikETAPMQ0wCwYDVQQDDAR0OTA5pBEwDzEN --MAsGA1UEAwwEdDkxMKQRMA8xDTALBgNVBAMMBHQ5MTGkETAPMQ0wCwYDVQQDDAR0 --OTEypBEwDzENMAsGA1UEAwwEdDkxM6QRMA8xDTALBgNVBAMMBHQ5MTSkETAPMQ0w --CwYDVQQDDAR0OTE1pBEwDzENMAsGA1UEAwwEdDkxNqQRMA8xDTALBgNVBAMMBHQ5 --MTekETAPMQ0wCwYDVQQDDAR0OTE4pBEwDzENMAsGA1UEAwwEdDkxOaQRMA8xDTAL --BgNVBAMMBHQ5MjCkETAPMQ0wCwYDVQQDDAR0OTIxpBEwDzENMAsGA1UEAwwEdDky --MqQRMA8xDTALBgNVBAMMBHQ5MjOkETAPMQ0wCwYDVQQDDAR0OTI0pBEwDzENMAsG --A1UEAwwEdDkyNaQRMA8xDTALBgNVBAMMBHQ5MjakETAPMQ0wCwYDVQQDDAR0OTI3 --pBEwDzENMAsGA1UEAwwEdDkyOKQRMA8xDTALBgNVBAMMBHQ5MjmkETAPMQ0wCwYD --VQQDDAR0OTMwpBEwDzENMAsGA1UEAwwEdDkzMaQRMA8xDTALBgNVBAMMBHQ5MzKk --ETAPMQ0wCwYDVQQDDAR0OTMzpBEwDzENMAsGA1UEAwwEdDkzNKQRMA8xDTALBgNV --BAMMBHQ5MzWkETAPMQ0wCwYDVQQDDAR0OTM2pBEwDzENMAsGA1UEAwwEdDkzN6QR --MA8xDTALBgNVBAMMBHQ5MzikETAPMQ0wCwYDVQQDDAR0OTM5pBEwDzENMAsGA1UE --AwwEdDk0MKQRMA8xDTALBgNVBAMMBHQ5NDGkETAPMQ0wCwYDVQQDDAR0OTQypBEw --DzENMAsGA1UEAwwEdDk0M6QRMA8xDTALBgNVBAMMBHQ5NDSkETAPMQ0wCwYDVQQD --DAR0OTQ1pBEwDzENMAsGA1UEAwwEdDk0NqQRMA8xDTALBgNVBAMMBHQ5NDekETAP --MQ0wCwYDVQQDDAR0OTQ4pBEwDzENMAsGA1UEAwwEdDk0OaQRMA8xDTALBgNVBAMM --BHQ5NTCkETAPMQ0wCwYDVQQDDAR0OTUxpBEwDzENMAsGA1UEAwwEdDk1MqQRMA8x --DTALBgNVBAMMBHQ5NTOkETAPMQ0wCwYDVQQDDAR0OTU0pBEwDzENMAsGA1UEAwwE --dDk1NaQRMA8xDTALBgNVBAMMBHQ5NTakETAPMQ0wCwYDVQQDDAR0OTU3pBEwDzEN --MAsGA1UEAwwEdDk1OKQRMA8xDTALBgNVBAMMBHQ5NTmkETAPMQ0wCwYDVQQDDAR0 --OTYwpBEwDzENMAsGA1UEAwwEdDk2MaQRMA8xDTALBgNVBAMMBHQ5NjKkETAPMQ0w --CwYDVQQDDAR0OTYzpBEwDzENMAsGA1UEAwwEdDk2NKQRMA8xDTALBgNVBAMMBHQ5 --NjWkETAPMQ0wCwYDVQQDDAR0OTY2pBEwDzENMAsGA1UEAwwEdDk2N6QRMA8xDTAL --BgNVBAMMBHQ5NjikETAPMQ0wCwYDVQQDDAR0OTY5pBEwDzENMAsGA1UEAwwEdDk3 --MKQRMA8xDTALBgNVBAMMBHQ5NzGkETAPMQ0wCwYDVQQDDAR0OTcypBEwDzENMAsG --A1UEAwwEdDk3M6QRMA8xDTALBgNVBAMMBHQ5NzSkETAPMQ0wCwYDVQQDDAR0OTc1 --pBEwDzENMAsGA1UEAwwEdDk3NqQRMA8xDTALBgNVBAMMBHQ5NzekETAPMQ0wCwYD --VQQDDAR0OTc4pBEwDzENMAsGA1UEAwwEdDk3OaQRMA8xDTALBgNVBAMMBHQ5ODCk --ETAPMQ0wCwYDVQQDDAR0OTgxpBEwDzENMAsGA1UEAwwEdDk4MqQRMA8xDTALBgNV --BAMMBHQ5ODOkETAPMQ0wCwYDVQQDDAR0OTg0pBEwDzENMAsGA1UEAwwEdDk4NaQR --MA8xDTALBgNVBAMMBHQ5ODakETAPMQ0wCwYDVQQDDAR0OTg3pBEwDzENMAsGA1UE --AwwEdDk4OKQRMA8xDTALBgNVBAMMBHQ5ODmkETAPMQ0wCwYDVQQDDAR0OTkwpBEw --DzENMAsGA1UEAwwEdDk5MaQRMA8xDTALBgNVBAMMBHQ5OTKkETAPMQ0wCwYDVQQD --DAR0OTkzpBEwDzENMAsGA1UEAwwEdDk5NKQRMA8xDTALBgNVBAMMBHQ5OTWkETAP --MQ0wCwYDVQQDDAR0OTk2pBEwDzENMAsGA1UEAwwEdDk5N6QRMA8xDTALBgNVBAMM --BHQ5OTikETAPMQ0wCwYDVQQDDAR0OTk5pBIwEDEOMAwGA1UEAwwFdDEwMDCkEjAQ --MQ4wDAYDVQQDDAV0MTAwMaQSMBAxDjAMBgNVBAMMBXQxMDAypBIwEDEOMAwGA1UE --AwwFdDEwMDOkEjAQMQ4wDAYDVQQDDAV0MTAwNKQSMBAxDjAMBgNVBAMMBXQxMDA1 --pBIwEDEOMAwGA1UEAwwFdDEwMDakEjAQMQ4wDAYDVQQDDAV0MTAwN6QSMBAxDjAM --BgNVBAMMBXQxMDA4pBIwEDEOMAwGA1UEAwwFdDEwMDmkEjAQMQ4wDAYDVQQDDAV0 --MTAxMKQSMBAxDjAMBgNVBAMMBXQxMDExpBIwEDEOMAwGA1UEAwwFdDEwMTKkEjAQ --MQ4wDAYDVQQDDAV0MTAxM6QSMBAxDjAMBgNVBAMMBXQxMDE0pBIwEDEOMAwGA1UE --AwwFdDEwMTWkEjAQMQ4wDAYDVQQDDAV0MTAxNqQSMBAxDjAMBgNVBAMMBXQxMDE3 --pBIwEDEOMAwGA1UEAwwFdDEwMTikEjAQMQ4wDAYDVQQDDAV0MTAxOaQSMBAxDjAM --BgNVBAMMBXQxMDIwpBIwEDEOMAwGA1UEAwwFdDEwMjGkEjAQMQ4wDAYDVQQDDAV0 --MTAyMqQSMBAxDjAMBgNVBAMMBXQxMDIzpBIwEDEOMAwGA1UEAwwFdDEwMjQwDQYJ --KoZIhvcNAQELBQADggEBACkzp8BHLTaAKkVE9vhcVwFODBvSgup3rVQOfydxKitT --KYuoUAqNu7UXzzRKxi4SpD3lSpqbh9UYuF6jpiQa3/pUwyhlfxdrjjq8OWcoiTaN --E2IAdtGWDWUfa9sYAUC4xNEB1Rau/xyJfnrpisRS3bSSRaJePIVE6FE5OcFH/gdO --ZpRA+kFDJeDxNbXidv7rSMrm1ApfoNNHnWelvgHfZdJdPF/zVPOV6yCG/4+x1jZU --ufH0COa16OKNS3uAV+yH74PwwofLLo4OFiRlUfEMgr7RmbHGBzkvgenDi2JBQfGE --hNfIi5UWdxvAkvQ1E9k0SrSzHh3YaXLZLNF/gLDlV10= -------END CERTIFICATE----- -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f7:00 -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Root -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=Intermediate -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:bb:3b:db:04:6e:17:e0:54:52:ba:23:77:24:bc: -- 34:e3:70:d9:99:9e:53:5d:33:0b:a9:cc:4b:1d:ae: -- 06:27:18:8e:55:ba:ad:12:c7:1d:32:59:6d:c3:16: -- 20:db:62:a6:77:80:12:e0:87:58:51:55:e3:66:7f: -- d1:e0:3a:22:65:e5:70:26:a2:04:04:f0:5d:f9:5f: -- 56:c8:da:e8:0f:57:28:77:6e:9a:a0:4a:53:34:1a: -- 63:37:a2:43:ab:0e:4a:cd:07:23:dd:55:83:44:00: -- 0c:70:41:df:35:64:d0:c5:0e:6a:87:db:ca:fc:35: -- d5:e2:5b:af:0b:a0:e6:75:a5:d2:e1:72:4e:22:63: -- 01:41:73:b8:95:50:2c:fd:ed:c3:61:b6:36:d4:83: -- 95:61:c3:e0:61:ff:f4:9e:8a:e8:ba:dc:d1:f6:89: -- ed:9d:30:44:95:27:f4:d1:8b:e6:2f:14:66:56:f1: -- da:f1:cc:04:1b:77:92:a5:9f:58:40:0c:9f:0c:32: -- d6:05:c2:4c:c0:c5:9f:e5:a4:30:3d:4c:e9:9d:03: -- 6c:4c:06:b6:e5:95:bd:21:b8:e6:2b:a8:a0:bf:06: -- bb:43:33:19:3d:7b:17:59:f1:64:4d:24:67:b1:51: -- 0f:35:ae:f0:71:75:79:ae:5b:02:34:04:31:e3:66: -- 86:65 -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- 92:11:3F:AC:11:96:C7:66:37:CF:83:5A:24:F0:3A:77:AF:33:8D:7F -- X509v3 Authority Key Identifier: -- keyid:B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Root.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Root.crl -- -- X509v3 Key Usage: critical -- Certificate Sign, CRL Sign -- X509v3 Basic Constraints: critical -- CA:TRUE -- X509v3 Name Constraints: -- Permitted: -- DNS:t0.test -- DNS:t1.test -- DNS:t2.test -- DNS:t3.test -- DNS:t4.test -- DNS:t5.test -- DNS:t6.test -- DNS:t7.test -- DNS:t8.test -- DNS:t9.test -- DNS:t10.test -- DNS:t11.test -- DNS:t12.test -- DNS:t13.test -- DNS:t14.test -- DNS:t15.test -- DNS:t16.test -- DNS:t17.test -- DNS:t18.test -- DNS:t19.test -- DNS:t20.test -- DNS:t21.test -- DNS:t22.test -- DNS:t23.test -- DNS:t24.test -- DNS:t25.test -- DNS:t26.test -- DNS:t27.test -- DNS:t28.test -- DNS:t29.test -- DNS:t30.test -- DNS:t31.test -- DNS:t32.test -- DNS:t33.test -- DNS:t34.test -- DNS:t35.test -- DNS:t36.test -- DNS:t37.test -- DNS:t38.test -- DNS:t39.test -- DNS:t40.test -- DNS:t41.test -- DNS:t42.test -- DNS:t43.test -- DNS:t44.test -- DNS:t45.test -- DNS:t46.test -- DNS:t47.test -- DNS:t48.test -- DNS:t49.test -- DNS:t50.test -- DNS:t51.test -- DNS:t52.test -- DNS:t53.test -- DNS:t54.test -- DNS:t55.test -- DNS:t56.test -- DNS:t57.test -- DNS:t58.test -- DNS:t59.test -- DNS:t60.test -- DNS:t61.test -- DNS:t62.test -- DNS:t63.test -- DNS:t64.test -- DNS:t65.test -- DNS:t66.test -- DNS:t67.test -- DNS:t68.test -- DNS:t69.test -- DNS:t70.test -- DNS:t71.test -- DNS:t72.test -- DNS:t73.test -- DNS:t74.test -- DNS:t75.test -- DNS:t76.test -- DNS:t77.test -- DNS:t78.test -- DNS:t79.test -- DNS:t80.test -- DNS:t81.test -- DNS:t82.test -- DNS:t83.test -- DNS:t84.test -- DNS:t85.test -- DNS:t86.test -- DNS:t87.test -- DNS:t88.test -- DNS:t89.test -- DNS:t90.test -- DNS:t91.test -- DNS:t92.test -- DNS:t93.test -- DNS:t94.test -- DNS:t95.test -- DNS:t96.test -- DNS:t97.test -- DNS:t98.test -- DNS:t99.test -- DNS:t100.test -- DNS:t101.test -- DNS:t102.test -- DNS:t103.test -- DNS:t104.test -- DNS:t105.test -- DNS:t106.test -- DNS:t107.test -- DNS:t108.test -- DNS:t109.test -- DNS:t110.test -- DNS:t111.test -- DNS:t112.test -- DNS:t113.test -- DNS:t114.test -- DNS:t115.test -- DNS:t116.test -- DNS:t117.test -- DNS:t118.test -- DNS:t119.test -- DNS:t120.test -- DNS:t121.test -- DNS:t122.test -- DNS:t123.test -- DNS:t124.test -- DNS:t125.test -- DNS:t126.test -- DNS:t127.test -- DNS:t128.test -- DNS:t129.test -- DNS:t130.test -- DNS:t131.test -- DNS:t132.test -- DNS:t133.test -- DNS:t134.test -- DNS:t135.test -- DNS:t136.test -- DNS:t137.test -- DNS:t138.test -- DNS:t139.test -- DNS:t140.test -- DNS:t141.test -- DNS:t142.test -- DNS:t143.test -- DNS:t144.test -- DNS:t145.test -- DNS:t146.test -- DNS:t147.test -- DNS:t148.test -- DNS:t149.test -- DNS:t150.test -- DNS:t151.test -- DNS:t152.test -- DNS:t153.test -- DNS:t154.test -- DNS:t155.test -- DNS:t156.test -- DNS:t157.test -- DNS:t158.test -- DNS:t159.test -- DNS:t160.test -- DNS:t161.test -- DNS:t162.test -- DNS:t163.test -- DNS:t164.test -- DNS:t165.test -- DNS:t166.test -- DNS:t167.test -- DNS:t168.test -- DNS:t169.test -- DNS:t170.test -- DNS:t171.test -- DNS:t172.test -- DNS:t173.test -- DNS:t174.test -- DNS:t175.test -- DNS:t176.test -- DNS:t177.test -- DNS:t178.test -- DNS:t179.test -- DNS:t180.test -- DNS:t181.test -- DNS:t182.test -- DNS:t183.test -- DNS:t184.test -- DNS:t185.test -- DNS:t186.test -- DNS:t187.test -- DNS:t188.test -- DNS:t189.test -- DNS:t190.test -- DNS:t191.test -- DNS:t192.test -- DNS:t193.test -- DNS:t194.test -- DNS:t195.test -- DNS:t196.test -- DNS:t197.test -- DNS:t198.test -- DNS:t199.test -- DNS:t200.test -- DNS:t201.test -- DNS:t202.test -- DNS:t203.test -- DNS:t204.test -- DNS:t205.test -- DNS:t206.test -- DNS:t207.test -- DNS:t208.test -- DNS:t209.test -- DNS:t210.test -- DNS:t211.test -- DNS:t212.test -- DNS:t213.test -- DNS:t214.test -- DNS:t215.test -- DNS:t216.test -- DNS:t217.test -- DNS:t218.test -- DNS:t219.test -- DNS:t220.test -- DNS:t221.test -- DNS:t222.test -- DNS:t223.test -- DNS:t224.test -- DNS:t225.test -- DNS:t226.test -- DNS:t227.test -- DNS:t228.test -- DNS:t229.test -- DNS:t230.test -- DNS:t231.test -- DNS:t232.test -- DNS:t233.test -- DNS:t234.test -- DNS:t235.test -- DNS:t236.test -- DNS:t237.test -- DNS:t238.test -- DNS:t239.test -- DNS:t240.test -- DNS:t241.test -- DNS:t242.test -- DNS:t243.test -- DNS:t244.test -- DNS:t245.test -- DNS:t246.test -- DNS:t247.test -- DNS:t248.test -- DNS:t249.test -- DNS:t250.test -- DNS:t251.test -- DNS:t252.test -- DNS:t253.test -- DNS:t254.test -- DNS:t255.test -- DNS:t256.test -- DNS:t257.test -- DNS:t258.test -- DNS:t259.test -- DNS:t260.test -- DNS:t261.test -- DNS:t262.test -- DNS:t263.test -- DNS:t264.test -- DNS:t265.test -- DNS:t266.test -- DNS:t267.test -- DNS:t268.test -- DNS:t269.test -- DNS:t270.test -- DNS:t271.test -- DNS:t272.test -- DNS:t273.test -- DNS:t274.test -- DNS:t275.test -- DNS:t276.test -- DNS:t277.test -- DNS:t278.test -- DNS:t279.test -- DNS:t280.test -- DNS:t281.test -- DNS:t282.test -- DNS:t283.test -- DNS:t284.test -- DNS:t285.test -- DNS:t286.test -- DNS:t287.test -- DNS:t288.test -- DNS:t289.test -- DNS:t290.test -- DNS:t291.test -- DNS:t292.test -- DNS:t293.test -- DNS:t294.test -- DNS:t295.test -- DNS:t296.test -- DNS:t297.test -- DNS:t298.test -- DNS:t299.test -- DNS:t300.test -- DNS:t301.test -- DNS:t302.test -- DNS:t303.test -- DNS:t304.test -- DNS:t305.test -- DNS:t306.test -- DNS:t307.test -- DNS:t308.test -- DNS:t309.test -- DNS:t310.test -- DNS:t311.test -- DNS:t312.test -- DNS:t313.test -- DNS:t314.test -- DNS:t315.test -- DNS:t316.test -- DNS:t317.test -- DNS:t318.test -- DNS:t319.test -- DNS:t320.test -- DNS:t321.test -- DNS:t322.test -- DNS:t323.test -- DNS:t324.test -- DNS:t325.test -- DNS:t326.test -- DNS:t327.test -- DNS:t328.test -- DNS:t329.test -- DNS:t330.test -- DNS:t331.test -- DNS:t332.test -- DNS:t333.test -- DNS:t334.test -- DNS:t335.test -- DNS:t336.test -- DNS:t337.test -- DNS:t338.test -- DNS:t339.test -- DNS:t340.test -- DNS:t341.test -- DNS:t342.test -- DNS:t343.test -- DNS:t344.test -- DNS:t345.test -- DNS:t346.test -- DNS:t347.test -- DNS:t348.test -- DNS:t349.test -- DNS:t350.test -- DNS:t351.test -- DNS:t352.test -- DNS:t353.test -- DNS:t354.test -- DNS:t355.test -- DNS:t356.test -- DNS:t357.test -- DNS:t358.test -- DNS:t359.test -- DNS:t360.test -- DNS:t361.test -- DNS:t362.test -- DNS:t363.test -- DNS:t364.test -- DNS:t365.test -- DNS:t366.test -- DNS:t367.test -- DNS:t368.test -- DNS:t369.test -- DNS:t370.test -- DNS:t371.test -- DNS:t372.test -- DNS:t373.test -- DNS:t374.test -- DNS:t375.test -- DNS:t376.test -- DNS:t377.test -- DNS:t378.test -- DNS:t379.test -- DNS:t380.test -- DNS:t381.test -- DNS:t382.test -- DNS:t383.test -- DNS:t384.test -- DNS:t385.test -- DNS:t386.test -- DNS:t387.test -- DNS:t388.test -- DNS:t389.test -- DNS:t390.test -- DNS:t391.test -- DNS:t392.test -- DNS:t393.test -- DNS:t394.test -- DNS:t395.test -- DNS:t396.test -- DNS:t397.test -- DNS:t398.test -- DNS:t399.test -- DNS:t400.test -- DNS:t401.test -- DNS:t402.test -- DNS:t403.test -- DNS:t404.test -- DNS:t405.test -- DNS:t406.test -- DNS:t407.test -- DNS:t408.test -- DNS:t409.test -- DNS:t410.test -- DNS:t411.test -- DNS:t412.test -- DNS:t413.test -- DNS:t414.test -- DNS:t415.test -- DNS:t416.test -- DNS:t417.test -- DNS:t418.test -- DNS:t419.test -- DNS:t420.test -- DNS:t421.test -- DNS:t422.test -- DNS:t423.test -- DNS:t424.test -- DNS:t425.test -- DNS:t426.test -- DNS:t427.test -- DNS:t428.test -- DNS:t429.test -- DNS:t430.test -- DNS:t431.test -- DNS:t432.test -- DNS:t433.test -- DNS:t434.test -- DNS:t435.test -- DNS:t436.test -- DNS:t437.test -- DNS:t438.test -- DNS:t439.test -- DNS:t440.test -- DNS:t441.test -- DNS:t442.test -- DNS:t443.test -- DNS:t444.test -- DNS:t445.test -- DNS:t446.test -- DNS:t447.test -- DNS:t448.test -- DNS:t449.test -- DNS:t450.test -- DNS:t451.test -- DNS:t452.test -- DNS:t453.test -- DNS:t454.test -- DNS:t455.test -- DNS:t456.test -- DNS:t457.test -- DNS:t458.test -- DNS:t459.test -- DNS:t460.test -- DNS:t461.test -- DNS:t462.test -- DNS:t463.test -- DNS:t464.test -- DNS:t465.test -- DNS:t466.test -- DNS:t467.test -- DNS:t468.test -- DNS:t469.test -- DNS:t470.test -- DNS:t471.test -- DNS:t472.test -- DNS:t473.test -- DNS:t474.test -- DNS:t475.test -- DNS:t476.test -- DNS:t477.test -- DNS:t478.test -- DNS:t479.test -- DNS:t480.test -- DNS:t481.test -- DNS:t482.test -- DNS:t483.test -- DNS:t484.test -- DNS:t485.test -- DNS:t486.test -- DNS:t487.test -- DNS:t488.test -- DNS:t489.test -- DNS:t490.test -- DNS:t491.test -- DNS:t492.test -- DNS:t493.test -- DNS:t494.test -- DNS:t495.test -- DNS:t496.test -- DNS:t497.test -- DNS:t498.test -- DNS:t499.test -- DNS:t500.test -- DNS:t501.test -- DNS:t502.test -- DNS:t503.test -- DNS:t504.test -- DNS:t505.test -- DNS:t506.test -- DNS:t507.test -- DNS:t508.test -- DNS:t509.test -- DNS:t510.test -- DNS:t511.test -- DNS:t512.test -- DNS:t513.test -- DNS:t514.test -- DNS:t515.test -- DNS:t516.test -- DNS:t517.test -- DNS:t518.test -- DNS:t519.test -- DNS:t520.test -- DNS:t521.test -- DNS:t522.test -- DNS:t523.test -- DNS:t524.test -- DNS:t525.test -- DNS:t526.test -- DNS:t527.test -- DNS:t528.test -- DNS:t529.test -- DNS:t530.test -- DNS:t531.test -- DNS:t532.test -- DNS:t533.test -- DNS:t534.test -- DNS:t535.test -- DNS:t536.test -- DNS:t537.test -- DNS:t538.test -- DNS:t539.test -- DNS:t540.test -- DNS:t541.test -- DNS:t542.test -- DNS:t543.test -- DNS:t544.test -- DNS:t545.test -- DNS:t546.test -- DNS:t547.test -- DNS:t548.test -- DNS:t549.test -- DNS:t550.test -- DNS:t551.test -- DNS:t552.test -- DNS:t553.test -- DNS:t554.test -- DNS:t555.test -- DNS:t556.test -- DNS:t557.test -- DNS:t558.test -- DNS:t559.test -- DNS:t560.test -- DNS:t561.test -- DNS:t562.test -- DNS:t563.test -- DNS:t564.test -- DNS:t565.test -- DNS:t566.test -- DNS:t567.test -- DNS:t568.test -- DNS:t569.test -- DNS:t570.test -- DNS:t571.test -- DNS:t572.test -- DNS:t573.test -- DNS:t574.test -- DNS:t575.test -- DNS:t576.test -- DNS:t577.test -- DNS:t578.test -- DNS:t579.test -- DNS:t580.test -- DNS:t581.test -- DNS:t582.test -- DNS:t583.test -- DNS:t584.test -- DNS:t585.test -- DNS:t586.test -- DNS:t587.test -- DNS:t588.test -- DNS:t589.test -- DNS:t590.test -- DNS:t591.test -- DNS:t592.test -- DNS:t593.test -- DNS:t594.test -- DNS:t595.test -- DNS:t596.test -- DNS:t597.test -- DNS:t598.test -- DNS:t599.test -- DNS:t600.test -- DNS:t601.test -- DNS:t602.test -- DNS:t603.test -- DNS:t604.test -- DNS:t605.test -- DNS:t606.test -- DNS:t607.test -- DNS:t608.test -- DNS:t609.test -- DNS:t610.test -- DNS:t611.test -- DNS:t612.test -- DNS:t613.test -- DNS:t614.test -- DNS:t615.test -- DNS:t616.test -- DNS:t617.test -- DNS:t618.test -- DNS:t619.test -- DNS:t620.test -- DNS:t621.test -- DNS:t622.test -- DNS:t623.test -- DNS:t624.test -- DNS:t625.test -- DNS:t626.test -- DNS:t627.test -- DNS:t628.test -- DNS:t629.test -- DNS:t630.test -- DNS:t631.test -- DNS:t632.test -- DNS:t633.test -- DNS:t634.test -- DNS:t635.test -- DNS:t636.test -- DNS:t637.test -- DNS:t638.test -- DNS:t639.test -- DNS:t640.test -- DNS:t641.test -- DNS:t642.test -- DNS:t643.test -- DNS:t644.test -- DNS:t645.test -- DNS:t646.test -- DNS:t647.test -- DNS:t648.test -- DNS:t649.test -- DNS:t650.test -- DNS:t651.test -- DNS:t652.test -- DNS:t653.test -- DNS:t654.test -- DNS:t655.test -- DNS:t656.test -- DNS:t657.test -- DNS:t658.test -- DNS:t659.test -- DNS:t660.test -- DNS:t661.test -- DNS:t662.test -- DNS:t663.test -- DNS:t664.test -- DNS:t665.test -- DNS:t666.test -- DNS:t667.test -- DNS:t668.test -- DNS:t669.test -- DNS:t670.test -- DNS:t671.test -- DNS:t672.test -- DNS:t673.test -- DNS:t674.test -- DNS:t675.test -- DNS:t676.test -- DNS:t677.test -- DNS:t678.test -- DNS:t679.test -- DNS:t680.test -- DNS:t681.test -- DNS:t682.test -- DNS:t683.test -- DNS:t684.test -- DNS:t685.test -- DNS:t686.test -- DNS:t687.test -- DNS:t688.test -- DNS:t689.test -- DNS:t690.test -- DNS:t691.test -- DNS:t692.test -- DNS:t693.test -- DNS:t694.test -- DNS:t695.test -- DNS:t696.test -- DNS:t697.test -- DNS:t698.test -- DNS:t699.test -- DNS:t700.test -- DNS:t701.test -- DNS:t702.test -- DNS:t703.test -- DNS:t704.test -- DNS:t705.test -- DNS:t706.test -- DNS:t707.test -- DNS:t708.test -- DNS:t709.test -- DNS:t710.test -- DNS:t711.test -- DNS:t712.test -- DNS:t713.test -- DNS:t714.test -- DNS:t715.test -- DNS:t716.test -- DNS:t717.test -- DNS:t718.test -- DNS:t719.test -- DNS:t720.test -- DNS:t721.test -- DNS:t722.test -- DNS:t723.test -- DNS:t724.test -- DNS:t725.test -- DNS:t726.test -- DNS:t727.test -- DNS:t728.test -- DNS:t729.test -- DNS:t730.test -- DNS:t731.test -- DNS:t732.test -- DNS:t733.test -- DNS:t734.test -- DNS:t735.test -- DNS:t736.test -- DNS:t737.test -- DNS:t738.test -- DNS:t739.test -- DNS:t740.test -- DNS:t741.test -- DNS:t742.test -- DNS:t743.test -- DNS:t744.test -- DNS:t745.test -- DNS:t746.test -- DNS:t747.test -- DNS:t748.test -- DNS:t749.test -- DNS:t750.test -- DNS:t751.test -- DNS:t752.test -- DNS:t753.test -- DNS:t754.test -- DNS:t755.test -- DNS:t756.test -- DNS:t757.test -- DNS:t758.test -- DNS:t759.test -- DNS:t760.test -- DNS:t761.test -- DNS:t762.test -- DNS:t763.test -- DNS:t764.test -- DNS:t765.test -- DNS:t766.test -- DNS:t767.test -- DNS:t768.test -- DNS:t769.test -- DNS:t770.test -- DNS:t771.test -- DNS:t772.test -- DNS:t773.test -- DNS:t774.test -- DNS:t775.test -- DNS:t776.test -- DNS:t777.test -- DNS:t778.test -- DNS:t779.test -- DNS:t780.test -- DNS:t781.test -- DNS:t782.test -- DNS:t783.test -- DNS:t784.test -- DNS:t785.test -- DNS:t786.test -- DNS:t787.test -- DNS:t788.test -- DNS:t789.test -- DNS:t790.test -- DNS:t791.test -- DNS:t792.test -- DNS:t793.test -- DNS:t794.test -- DNS:t795.test -- DNS:t796.test -- DNS:t797.test -- DNS:t798.test -- DNS:t799.test -- DNS:t800.test -- DNS:t801.test -- DNS:t802.test -- DNS:t803.test -- DNS:t804.test -- DNS:t805.test -- DNS:t806.test -- DNS:t807.test -- DNS:t808.test -- DNS:t809.test -- DNS:t810.test -- DNS:t811.test -- DNS:t812.test -- DNS:t813.test -- DNS:t814.test -- DNS:t815.test -- DNS:t816.test -- DNS:t817.test -- DNS:t818.test -- DNS:t819.test -- DNS:t820.test -- DNS:t821.test -- DNS:t822.test -- DNS:t823.test -- DNS:t824.test -- DNS:t825.test -- DNS:t826.test -- DNS:t827.test -- DNS:t828.test -- DNS:t829.test -- DNS:t830.test -- DNS:t831.test -- DNS:t832.test -- DNS:t833.test -- DNS:t834.test -- DNS:t835.test -- DNS:t836.test -- DNS:t837.test -- DNS:t838.test -- DNS:t839.test -- DNS:t840.test -- DNS:t841.test -- DNS:t842.test -- DNS:t843.test -- DNS:t844.test -- DNS:t845.test -- DNS:t846.test -- DNS:t847.test -- DNS:t848.test -- DNS:t849.test -- DNS:t850.test -- DNS:t851.test -- DNS:t852.test -- DNS:t853.test -- DNS:t854.test -- DNS:t855.test -- DNS:t856.test -- DNS:t857.test -- DNS:t858.test -- DNS:t859.test -- DNS:t860.test -- DNS:t861.test -- DNS:t862.test -- DNS:t863.test -- DNS:t864.test -- DNS:t865.test -- DNS:t866.test -- DNS:t867.test -- DNS:t868.test -- DNS:t869.test -- DNS:t870.test -- DNS:t871.test -- DNS:t872.test -- DNS:t873.test -- DNS:t874.test -- DNS:t875.test -- DNS:t876.test -- DNS:t877.test -- DNS:t878.test -- DNS:t879.test -- DNS:t880.test -- DNS:t881.test -- DNS:t882.test -- DNS:t883.test -- DNS:t884.test -- DNS:t885.test -- DNS:t886.test -- DNS:t887.test -- DNS:t888.test -- DNS:t889.test -- DNS:t890.test -- DNS:t891.test -- DNS:t892.test -- DNS:t893.test -- DNS:t894.test -- DNS:t895.test -- DNS:t896.test -- DNS:t897.test -- DNS:t898.test -- DNS:t899.test -- DNS:t900.test -- DNS:t901.test -- DNS:t902.test -- DNS:t903.test -- DNS:t904.test -- DNS:t905.test -- DNS:t906.test -- DNS:t907.test -- DNS:t908.test -- DNS:t909.test -- DNS:t910.test -- DNS:t911.test -- DNS:t912.test -- DNS:t913.test -- DNS:t914.test -- DNS:t915.test -- DNS:t916.test -- DNS:t917.test -- DNS:t918.test -- DNS:t919.test -- DNS:t920.test -- DNS:t921.test -- DNS:t922.test -- DNS:t923.test -- DNS:t924.test -- DNS:t925.test -- DNS:t926.test -- DNS:t927.test -- DNS:t928.test -- DNS:t929.test -- DNS:t930.test -- DNS:t931.test -- DNS:t932.test -- DNS:t933.test -- DNS:t934.test -- DNS:t935.test -- DNS:t936.test -- DNS:t937.test -- DNS:t938.test -- DNS:t939.test -- DNS:t940.test -- DNS:t941.test -- DNS:t942.test -- DNS:t943.test -- DNS:t944.test -- DNS:t945.test -- DNS:t946.test -- DNS:t947.test -- DNS:t948.test -- DNS:t949.test -- DNS:t950.test -- DNS:t951.test -- DNS:t952.test -- DNS:t953.test -- DNS:t954.test -- DNS:t955.test -- DNS:t956.test -- DNS:t957.test -- DNS:t958.test -- DNS:t959.test -- DNS:t960.test -- DNS:t961.test -- DNS:t962.test -- DNS:t963.test -- DNS:t964.test -- DNS:t965.test -- DNS:t966.test -- DNS:t967.test -- DNS:t968.test -- DNS:t969.test -- DNS:t970.test -- DNS:t971.test -- DNS:t972.test -- DNS:t973.test -- DNS:t974.test -- DNS:t975.test -- DNS:t976.test -- DNS:t977.test -- DNS:t978.test -- DNS:t979.test -- DNS:t980.test -- DNS:t981.test -- DNS:t982.test -- DNS:t983.test -- DNS:t984.test -- DNS:t985.test -- DNS:t986.test -- DNS:t987.test -- DNS:t988.test -- DNS:t989.test -- DNS:t990.test -- DNS:t991.test -- DNS:t992.test -- DNS:t993.test -- DNS:t994.test -- DNS:t995.test -- DNS:t996.test -- DNS:t997.test -- DNS:t998.test -- DNS:t999.test -- DNS:t1000.test -- DNS:t1001.test -- DNS:t1002.test -- DNS:t1003.test -- DNS:t1004.test -- DNS:t1005.test -- DNS:t1006.test -- DNS:t1007.test -- DNS:t1008.test -- DNS:t1009.test -- DNS:t1010.test -- DNS:t1011.test -- DNS:t1012.test -- DNS:t1013.test -- DNS:t1014.test -- DNS:t1015.test -- DNS:t1016.test -- DNS:t1017.test -- DNS:t1018.test -- DNS:t1019.test -- DNS:t1020.test -- DNS:t1021.test -- DNS:t1022.test -- DNS:t1023.test -- DNS:t1024.test -- IP:10.0.0.0/255.255.255.255 -- IP:10.0.0.1/255.255.255.255 -- IP:10.0.0.2/255.255.255.255 -- IP:10.0.0.3/255.255.255.255 -- IP:10.0.0.4/255.255.255.255 -- IP:10.0.0.5/255.255.255.255 -- IP:10.0.0.6/255.255.255.255 -- IP:10.0.0.7/255.255.255.255 -- IP:10.0.0.8/255.255.255.255 -- IP:10.0.0.9/255.255.255.255 -- IP:10.0.0.10/255.255.255.255 -- IP:10.0.0.11/255.255.255.255 -- IP:10.0.0.12/255.255.255.255 -- IP:10.0.0.13/255.255.255.255 -- IP:10.0.0.14/255.255.255.255 -- IP:10.0.0.15/255.255.255.255 -- IP:10.0.0.16/255.255.255.255 -- IP:10.0.0.17/255.255.255.255 -- IP:10.0.0.18/255.255.255.255 -- IP:10.0.0.19/255.255.255.255 -- IP:10.0.0.20/255.255.255.255 -- IP:10.0.0.21/255.255.255.255 -- IP:10.0.0.22/255.255.255.255 -- IP:10.0.0.23/255.255.255.255 -- IP:10.0.0.24/255.255.255.255 -- IP:10.0.0.25/255.255.255.255 -- IP:10.0.0.26/255.255.255.255 -- IP:10.0.0.27/255.255.255.255 -- IP:10.0.0.28/255.255.255.255 -- IP:10.0.0.29/255.255.255.255 -- IP:10.0.0.30/255.255.255.255 -- IP:10.0.0.31/255.255.255.255 -- IP:10.0.0.32/255.255.255.255 -- IP:10.0.0.33/255.255.255.255 -- IP:10.0.0.34/255.255.255.255 -- IP:10.0.0.35/255.255.255.255 -- IP:10.0.0.36/255.255.255.255 -- IP:10.0.0.37/255.255.255.255 -- IP:10.0.0.38/255.255.255.255 -- IP:10.0.0.39/255.255.255.255 -- IP:10.0.0.40/255.255.255.255 -- IP:10.0.0.41/255.255.255.255 -- IP:10.0.0.42/255.255.255.255 -- IP:10.0.0.43/255.255.255.255 -- IP:10.0.0.44/255.255.255.255 -- IP:10.0.0.45/255.255.255.255 -- IP:10.0.0.46/255.255.255.255 -- IP:10.0.0.47/255.255.255.255 -- IP:10.0.0.48/255.255.255.255 -- IP:10.0.0.49/255.255.255.255 -- IP:10.0.0.50/255.255.255.255 -- IP:10.0.0.51/255.255.255.255 -- IP:10.0.0.52/255.255.255.255 -- IP:10.0.0.53/255.255.255.255 -- IP:10.0.0.54/255.255.255.255 -- IP:10.0.0.55/255.255.255.255 -- IP:10.0.0.56/255.255.255.255 -- IP:10.0.0.57/255.255.255.255 -- IP:10.0.0.58/255.255.255.255 -- IP:10.0.0.59/255.255.255.255 -- IP:10.0.0.60/255.255.255.255 -- IP:10.0.0.61/255.255.255.255 -- IP:10.0.0.62/255.255.255.255 -- IP:10.0.0.63/255.255.255.255 -- IP:10.0.0.64/255.255.255.255 -- IP:10.0.0.65/255.255.255.255 -- IP:10.0.0.66/255.255.255.255 -- IP:10.0.0.67/255.255.255.255 -- IP:10.0.0.68/255.255.255.255 -- IP:10.0.0.69/255.255.255.255 -- IP:10.0.0.70/255.255.255.255 -- IP:10.0.0.71/255.255.255.255 -- IP:10.0.0.72/255.255.255.255 -- IP:10.0.0.73/255.255.255.255 -- IP:10.0.0.74/255.255.255.255 -- IP:10.0.0.75/255.255.255.255 -- IP:10.0.0.76/255.255.255.255 -- IP:10.0.0.77/255.255.255.255 -- IP:10.0.0.78/255.255.255.255 -- IP:10.0.0.79/255.255.255.255 -- IP:10.0.0.80/255.255.255.255 -- IP:10.0.0.81/255.255.255.255 -- IP:10.0.0.82/255.255.255.255 -- IP:10.0.0.83/255.255.255.255 -- IP:10.0.0.84/255.255.255.255 -- IP:10.0.0.85/255.255.255.255 -- IP:10.0.0.86/255.255.255.255 -- IP:10.0.0.87/255.255.255.255 -- IP:10.0.0.88/255.255.255.255 -- IP:10.0.0.89/255.255.255.255 -- IP:10.0.0.90/255.255.255.255 -- IP:10.0.0.91/255.255.255.255 -- IP:10.0.0.92/255.255.255.255 -- IP:10.0.0.93/255.255.255.255 -- IP:10.0.0.94/255.255.255.255 -- IP:10.0.0.95/255.255.255.255 -- IP:10.0.0.96/255.255.255.255 -- IP:10.0.0.97/255.255.255.255 -- IP:10.0.0.98/255.255.255.255 -- IP:10.0.0.99/255.255.255.255 -- IP:10.0.0.100/255.255.255.255 -- IP:10.0.0.101/255.255.255.255 -- IP:10.0.0.102/255.255.255.255 -- IP:10.0.0.103/255.255.255.255 -- IP:10.0.0.104/255.255.255.255 -- IP:10.0.0.105/255.255.255.255 -- IP:10.0.0.106/255.255.255.255 -- IP:10.0.0.107/255.255.255.255 -- IP:10.0.0.108/255.255.255.255 -- IP:10.0.0.109/255.255.255.255 -- IP:10.0.0.110/255.255.255.255 -- IP:10.0.0.111/255.255.255.255 -- IP:10.0.0.112/255.255.255.255 -- IP:10.0.0.113/255.255.255.255 -- IP:10.0.0.114/255.255.255.255 -- IP:10.0.0.115/255.255.255.255 -- IP:10.0.0.116/255.255.255.255 -- IP:10.0.0.117/255.255.255.255 -- IP:10.0.0.118/255.255.255.255 -- IP:10.0.0.119/255.255.255.255 -- IP:10.0.0.120/255.255.255.255 -- IP:10.0.0.121/255.255.255.255 -- IP:10.0.0.122/255.255.255.255 -- IP:10.0.0.123/255.255.255.255 -- IP:10.0.0.124/255.255.255.255 -- IP:10.0.0.125/255.255.255.255 -- IP:10.0.0.126/255.255.255.255 -- IP:10.0.0.127/255.255.255.255 -- IP:10.0.0.128/255.255.255.255 -- IP:10.0.0.129/255.255.255.255 -- IP:10.0.0.130/255.255.255.255 -- IP:10.0.0.131/255.255.255.255 -- IP:10.0.0.132/255.255.255.255 -- IP:10.0.0.133/255.255.255.255 -- IP:10.0.0.134/255.255.255.255 -- IP:10.0.0.135/255.255.255.255 -- IP:10.0.0.136/255.255.255.255 -- IP:10.0.0.137/255.255.255.255 -- IP:10.0.0.138/255.255.255.255 -- IP:10.0.0.139/255.255.255.255 -- IP:10.0.0.140/255.255.255.255 -- IP:10.0.0.141/255.255.255.255 -- IP:10.0.0.142/255.255.255.255 -- IP:10.0.0.143/255.255.255.255 -- IP:10.0.0.144/255.255.255.255 -- IP:10.0.0.145/255.255.255.255 -- IP:10.0.0.146/255.255.255.255 -- IP:10.0.0.147/255.255.255.255 -- IP:10.0.0.148/255.255.255.255 -- IP:10.0.0.149/255.255.255.255 -- IP:10.0.0.150/255.255.255.255 -- IP:10.0.0.151/255.255.255.255 -- IP:10.0.0.152/255.255.255.255 -- IP:10.0.0.153/255.255.255.255 -- IP:10.0.0.154/255.255.255.255 -- IP:10.0.0.155/255.255.255.255 -- IP:10.0.0.156/255.255.255.255 -- IP:10.0.0.157/255.255.255.255 -- IP:10.0.0.158/255.255.255.255 -- IP:10.0.0.159/255.255.255.255 -- IP:10.0.0.160/255.255.255.255 -- IP:10.0.0.161/255.255.255.255 -- IP:10.0.0.162/255.255.255.255 -- IP:10.0.0.163/255.255.255.255 -- IP:10.0.0.164/255.255.255.255 -- IP:10.0.0.165/255.255.255.255 -- IP:10.0.0.166/255.255.255.255 -- IP:10.0.0.167/255.255.255.255 -- IP:10.0.0.168/255.255.255.255 -- IP:10.0.0.169/255.255.255.255 -- IP:10.0.0.170/255.255.255.255 -- IP:10.0.0.171/255.255.255.255 -- IP:10.0.0.172/255.255.255.255 -- IP:10.0.0.173/255.255.255.255 -- IP:10.0.0.174/255.255.255.255 -- IP:10.0.0.175/255.255.255.255 -- IP:10.0.0.176/255.255.255.255 -- IP:10.0.0.177/255.255.255.255 -- IP:10.0.0.178/255.255.255.255 -- IP:10.0.0.179/255.255.255.255 -- IP:10.0.0.180/255.255.255.255 -- IP:10.0.0.181/255.255.255.255 -- IP:10.0.0.182/255.255.255.255 -- IP:10.0.0.183/255.255.255.255 -- IP:10.0.0.184/255.255.255.255 -- IP:10.0.0.185/255.255.255.255 -- IP:10.0.0.186/255.255.255.255 -- IP:10.0.0.187/255.255.255.255 -- IP:10.0.0.188/255.255.255.255 -- IP:10.0.0.189/255.255.255.255 -- IP:10.0.0.190/255.255.255.255 -- IP:10.0.0.191/255.255.255.255 -- IP:10.0.0.192/255.255.255.255 -- IP:10.0.0.193/255.255.255.255 -- IP:10.0.0.194/255.255.255.255 -- IP:10.0.0.195/255.255.255.255 -- IP:10.0.0.196/255.255.255.255 -- IP:10.0.0.197/255.255.255.255 -- IP:10.0.0.198/255.255.255.255 -- IP:10.0.0.199/255.255.255.255 -- IP:10.0.0.200/255.255.255.255 -- IP:10.0.0.201/255.255.255.255 -- IP:10.0.0.202/255.255.255.255 -- IP:10.0.0.203/255.255.255.255 -- IP:10.0.0.204/255.255.255.255 -- IP:10.0.0.205/255.255.255.255 -- IP:10.0.0.206/255.255.255.255 -- IP:10.0.0.207/255.255.255.255 -- IP:10.0.0.208/255.255.255.255 -- IP:10.0.0.209/255.255.255.255 -- IP:10.0.0.210/255.255.255.255 -- IP:10.0.0.211/255.255.255.255 -- IP:10.0.0.212/255.255.255.255 -- IP:10.0.0.213/255.255.255.255 -- IP:10.0.0.214/255.255.255.255 -- IP:10.0.0.215/255.255.255.255 -- IP:10.0.0.216/255.255.255.255 -- IP:10.0.0.217/255.255.255.255 -- IP:10.0.0.218/255.255.255.255 -- IP:10.0.0.219/255.255.255.255 -- IP:10.0.0.220/255.255.255.255 -- IP:10.0.0.221/255.255.255.255 -- IP:10.0.0.222/255.255.255.255 -- IP:10.0.0.223/255.255.255.255 -- IP:10.0.0.224/255.255.255.255 -- IP:10.0.0.225/255.255.255.255 -- IP:10.0.0.226/255.255.255.255 -- IP:10.0.0.227/255.255.255.255 -- IP:10.0.0.228/255.255.255.255 -- IP:10.0.0.229/255.255.255.255 -- IP:10.0.0.230/255.255.255.255 -- IP:10.0.0.231/255.255.255.255 -- IP:10.0.0.232/255.255.255.255 -- IP:10.0.0.233/255.255.255.255 -- IP:10.0.0.234/255.255.255.255 -- IP:10.0.0.235/255.255.255.255 -- IP:10.0.0.236/255.255.255.255 -- IP:10.0.0.237/255.255.255.255 -- IP:10.0.0.238/255.255.255.255 -- IP:10.0.0.239/255.255.255.255 -- IP:10.0.0.240/255.255.255.255 -- IP:10.0.0.241/255.255.255.255 -- IP:10.0.0.242/255.255.255.255 -- IP:10.0.0.243/255.255.255.255 -- IP:10.0.0.244/255.255.255.255 -- IP:10.0.0.245/255.255.255.255 -- IP:10.0.0.246/255.255.255.255 -- IP:10.0.0.247/255.255.255.255 -- IP:10.0.0.248/255.255.255.255 -- IP:10.0.0.249/255.255.255.255 -- IP:10.0.0.250/255.255.255.255 -- IP:10.0.0.251/255.255.255.255 -- IP:10.0.0.252/255.255.255.255 -- IP:10.0.0.253/255.255.255.255 -- IP:10.0.0.254/255.255.255.255 -- IP:10.0.0.255/255.255.255.255 -- IP:10.0.1.0/255.255.255.255 -- IP:10.0.1.1/255.255.255.255 -- IP:10.0.1.2/255.255.255.255 -- IP:10.0.1.3/255.255.255.255 -- IP:10.0.1.4/255.255.255.255 -- IP:10.0.1.5/255.255.255.255 -- IP:10.0.1.6/255.255.255.255 -- IP:10.0.1.7/255.255.255.255 -- IP:10.0.1.8/255.255.255.255 -- IP:10.0.1.9/255.255.255.255 -- IP:10.0.1.10/255.255.255.255 -- IP:10.0.1.11/255.255.255.255 -- IP:10.0.1.12/255.255.255.255 -- IP:10.0.1.13/255.255.255.255 -- IP:10.0.1.14/255.255.255.255 -- IP:10.0.1.15/255.255.255.255 -- IP:10.0.1.16/255.255.255.255 -- IP:10.0.1.17/255.255.255.255 -- IP:10.0.1.18/255.255.255.255 -- IP:10.0.1.19/255.255.255.255 -- IP:10.0.1.20/255.255.255.255 -- IP:10.0.1.21/255.255.255.255 -- IP:10.0.1.22/255.255.255.255 -- IP:10.0.1.23/255.255.255.255 -- IP:10.0.1.24/255.255.255.255 -- IP:10.0.1.25/255.255.255.255 -- IP:10.0.1.26/255.255.255.255 -- IP:10.0.1.27/255.255.255.255 -- IP:10.0.1.28/255.255.255.255 -- IP:10.0.1.29/255.255.255.255 -- IP:10.0.1.30/255.255.255.255 -- IP:10.0.1.31/255.255.255.255 -- IP:10.0.1.32/255.255.255.255 -- IP:10.0.1.33/255.255.255.255 -- IP:10.0.1.34/255.255.255.255 -- IP:10.0.1.35/255.255.255.255 -- IP:10.0.1.36/255.255.255.255 -- IP:10.0.1.37/255.255.255.255 -- IP:10.0.1.38/255.255.255.255 -- IP:10.0.1.39/255.255.255.255 -- IP:10.0.1.40/255.255.255.255 -- IP:10.0.1.41/255.255.255.255 -- IP:10.0.1.42/255.255.255.255 -- IP:10.0.1.43/255.255.255.255 -- IP:10.0.1.44/255.255.255.255 -- IP:10.0.1.45/255.255.255.255 -- IP:10.0.1.46/255.255.255.255 -- IP:10.0.1.47/255.255.255.255 -- IP:10.0.1.48/255.255.255.255 -- IP:10.0.1.49/255.255.255.255 -- IP:10.0.1.50/255.255.255.255 -- IP:10.0.1.51/255.255.255.255 -- IP:10.0.1.52/255.255.255.255 -- IP:10.0.1.53/255.255.255.255 -- IP:10.0.1.54/255.255.255.255 -- IP:10.0.1.55/255.255.255.255 -- IP:10.0.1.56/255.255.255.255 -- IP:10.0.1.57/255.255.255.255 -- IP:10.0.1.58/255.255.255.255 -- IP:10.0.1.59/255.255.255.255 -- IP:10.0.1.60/255.255.255.255 -- IP:10.0.1.61/255.255.255.255 -- IP:10.0.1.62/255.255.255.255 -- IP:10.0.1.63/255.255.255.255 -- IP:10.0.1.64/255.255.255.255 -- IP:10.0.1.65/255.255.255.255 -- IP:10.0.1.66/255.255.255.255 -- IP:10.0.1.67/255.255.255.255 -- IP:10.0.1.68/255.255.255.255 -- IP:10.0.1.69/255.255.255.255 -- IP:10.0.1.70/255.255.255.255 -- IP:10.0.1.71/255.255.255.255 -- IP:10.0.1.72/255.255.255.255 -- IP:10.0.1.73/255.255.255.255 -- IP:10.0.1.74/255.255.255.255 -- IP:10.0.1.75/255.255.255.255 -- IP:10.0.1.76/255.255.255.255 -- IP:10.0.1.77/255.255.255.255 -- IP:10.0.1.78/255.255.255.255 -- IP:10.0.1.79/255.255.255.255 -- IP:10.0.1.80/255.255.255.255 -- IP:10.0.1.81/255.255.255.255 -- IP:10.0.1.82/255.255.255.255 -- IP:10.0.1.83/255.255.255.255 -- IP:10.0.1.84/255.255.255.255 -- IP:10.0.1.85/255.255.255.255 -- IP:10.0.1.86/255.255.255.255 -- IP:10.0.1.87/255.255.255.255 -- IP:10.0.1.88/255.255.255.255 -- IP:10.0.1.89/255.255.255.255 -- IP:10.0.1.90/255.255.255.255 -- IP:10.0.1.91/255.255.255.255 -- IP:10.0.1.92/255.255.255.255 -- IP:10.0.1.93/255.255.255.255 -- IP:10.0.1.94/255.255.255.255 -- IP:10.0.1.95/255.255.255.255 -- IP:10.0.1.96/255.255.255.255 -- IP:10.0.1.97/255.255.255.255 -- IP:10.0.1.98/255.255.255.255 -- IP:10.0.1.99/255.255.255.255 -- IP:10.0.1.100/255.255.255.255 -- IP:10.0.1.101/255.255.255.255 -- IP:10.0.1.102/255.255.255.255 -- IP:10.0.1.103/255.255.255.255 -- IP:10.0.1.104/255.255.255.255 -- IP:10.0.1.105/255.255.255.255 -- IP:10.0.1.106/255.255.255.255 -- IP:10.0.1.107/255.255.255.255 -- IP:10.0.1.108/255.255.255.255 -- IP:10.0.1.109/255.255.255.255 -- IP:10.0.1.110/255.255.255.255 -- IP:10.0.1.111/255.255.255.255 -- IP:10.0.1.112/255.255.255.255 -- IP:10.0.1.113/255.255.255.255 -- IP:10.0.1.114/255.255.255.255 -- IP:10.0.1.115/255.255.255.255 -- IP:10.0.1.116/255.255.255.255 -- IP:10.0.1.117/255.255.255.255 -- IP:10.0.1.118/255.255.255.255 -- IP:10.0.1.119/255.255.255.255 -- IP:10.0.1.120/255.255.255.255 -- IP:10.0.1.121/255.255.255.255 -- IP:10.0.1.122/255.255.255.255 -- IP:10.0.1.123/255.255.255.255 -- IP:10.0.1.124/255.255.255.255 -- IP:10.0.1.125/255.255.255.255 -- IP:10.0.1.126/255.255.255.255 -- IP:10.0.1.127/255.255.255.255 -- IP:10.0.1.128/255.255.255.255 -- IP:10.0.1.129/255.255.255.255 -- IP:10.0.1.130/255.255.255.255 -- IP:10.0.1.131/255.255.255.255 -- IP:10.0.1.132/255.255.255.255 -- IP:10.0.1.133/255.255.255.255 -- IP:10.0.1.134/255.255.255.255 -- IP:10.0.1.135/255.255.255.255 -- IP:10.0.1.136/255.255.255.255 -- IP:10.0.1.137/255.255.255.255 -- IP:10.0.1.138/255.255.255.255 -- IP:10.0.1.139/255.255.255.255 -- IP:10.0.1.140/255.255.255.255 -- IP:10.0.1.141/255.255.255.255 -- IP:10.0.1.142/255.255.255.255 -- IP:10.0.1.143/255.255.255.255 -- IP:10.0.1.144/255.255.255.255 -- IP:10.0.1.145/255.255.255.255 -- IP:10.0.1.146/255.255.255.255 -- IP:10.0.1.147/255.255.255.255 -- IP:10.0.1.148/255.255.255.255 -- IP:10.0.1.149/255.255.255.255 -- IP:10.0.1.150/255.255.255.255 -- IP:10.0.1.151/255.255.255.255 -- IP:10.0.1.152/255.255.255.255 -- IP:10.0.1.153/255.255.255.255 -- IP:10.0.1.154/255.255.255.255 -- IP:10.0.1.155/255.255.255.255 -- IP:10.0.1.156/255.255.255.255 -- IP:10.0.1.157/255.255.255.255 -- IP:10.0.1.158/255.255.255.255 -- IP:10.0.1.159/255.255.255.255 -- IP:10.0.1.160/255.255.255.255 -- IP:10.0.1.161/255.255.255.255 -- IP:10.0.1.162/255.255.255.255 -- IP:10.0.1.163/255.255.255.255 -- IP:10.0.1.164/255.255.255.255 -- IP:10.0.1.165/255.255.255.255 -- IP:10.0.1.166/255.255.255.255 -- IP:10.0.1.167/255.255.255.255 -- IP:10.0.1.168/255.255.255.255 -- IP:10.0.1.169/255.255.255.255 -- IP:10.0.1.170/255.255.255.255 -- IP:10.0.1.171/255.255.255.255 -- IP:10.0.1.172/255.255.255.255 -- IP:10.0.1.173/255.255.255.255 -- IP:10.0.1.174/255.255.255.255 -- IP:10.0.1.175/255.255.255.255 -- IP:10.0.1.176/255.255.255.255 -- IP:10.0.1.177/255.255.255.255 -- IP:10.0.1.178/255.255.255.255 -- IP:10.0.1.179/255.255.255.255 -- IP:10.0.1.180/255.255.255.255 -- IP:10.0.1.181/255.255.255.255 -- IP:10.0.1.182/255.255.255.255 -- IP:10.0.1.183/255.255.255.255 -- IP:10.0.1.184/255.255.255.255 -- IP:10.0.1.185/255.255.255.255 -- IP:10.0.1.186/255.255.255.255 -- IP:10.0.1.187/255.255.255.255 -- IP:10.0.1.188/255.255.255.255 -- IP:10.0.1.189/255.255.255.255 -- IP:10.0.1.190/255.255.255.255 -- IP:10.0.1.191/255.255.255.255 -- IP:10.0.1.192/255.255.255.255 -- IP:10.0.1.193/255.255.255.255 -- IP:10.0.1.194/255.255.255.255 -- IP:10.0.1.195/255.255.255.255 -- IP:10.0.1.196/255.255.255.255 -- IP:10.0.1.197/255.255.255.255 -- IP:10.0.1.198/255.255.255.255 -- IP:10.0.1.199/255.255.255.255 -- IP:10.0.1.200/255.255.255.255 -- IP:10.0.1.201/255.255.255.255 -- IP:10.0.1.202/255.255.255.255 -- IP:10.0.1.203/255.255.255.255 -- IP:10.0.1.204/255.255.255.255 -- IP:10.0.1.205/255.255.255.255 -- IP:10.0.1.206/255.255.255.255 -- IP:10.0.1.207/255.255.255.255 -- IP:10.0.1.208/255.255.255.255 -- IP:10.0.1.209/255.255.255.255 -- IP:10.0.1.210/255.255.255.255 -- IP:10.0.1.211/255.255.255.255 -- IP:10.0.1.212/255.255.255.255 -- IP:10.0.1.213/255.255.255.255 -- IP:10.0.1.214/255.255.255.255 -- IP:10.0.1.215/255.255.255.255 -- IP:10.0.1.216/255.255.255.255 -- IP:10.0.1.217/255.255.255.255 -- IP:10.0.1.218/255.255.255.255 -- IP:10.0.1.219/255.255.255.255 -- IP:10.0.1.220/255.255.255.255 -- IP:10.0.1.221/255.255.255.255 -- IP:10.0.1.222/255.255.255.255 -- IP:10.0.1.223/255.255.255.255 -- IP:10.0.1.224/255.255.255.255 -- IP:10.0.1.225/255.255.255.255 -- IP:10.0.1.226/255.255.255.255 -- IP:10.0.1.227/255.255.255.255 -- IP:10.0.1.228/255.255.255.255 -- IP:10.0.1.229/255.255.255.255 -- IP:10.0.1.230/255.255.255.255 -- IP:10.0.1.231/255.255.255.255 -- IP:10.0.1.232/255.255.255.255 -- IP:10.0.1.233/255.255.255.255 -- IP:10.0.1.234/255.255.255.255 -- IP:10.0.1.235/255.255.255.255 -- IP:10.0.1.236/255.255.255.255 -- IP:10.0.1.237/255.255.255.255 -- IP:10.0.1.238/255.255.255.255 -- IP:10.0.1.239/255.255.255.255 -- IP:10.0.1.240/255.255.255.255 -- IP:10.0.1.241/255.255.255.255 -- IP:10.0.1.242/255.255.255.255 -- IP:10.0.1.243/255.255.255.255 -- IP:10.0.1.244/255.255.255.255 -- IP:10.0.1.245/255.255.255.255 -- IP:10.0.1.246/255.255.255.255 -- IP:10.0.1.247/255.255.255.255 -- IP:10.0.1.248/255.255.255.255 -- IP:10.0.1.249/255.255.255.255 -- IP:10.0.1.250/255.255.255.255 -- IP:10.0.1.251/255.255.255.255 -- IP:10.0.1.252/255.255.255.255 -- IP:10.0.1.253/255.255.255.255 -- IP:10.0.1.254/255.255.255.255 -- IP:10.0.1.255/255.255.255.255 -- IP:10.0.2.0/255.255.255.255 -- IP:10.0.2.1/255.255.255.255 -- IP:10.0.2.2/255.255.255.255 -- IP:10.0.2.3/255.255.255.255 -- IP:10.0.2.4/255.255.255.255 -- IP:10.0.2.5/255.255.255.255 -- IP:10.0.2.6/255.255.255.255 -- IP:10.0.2.7/255.255.255.255 -- IP:10.0.2.8/255.255.255.255 -- IP:10.0.2.9/255.255.255.255 -- IP:10.0.2.10/255.255.255.255 -- IP:10.0.2.11/255.255.255.255 -- IP:10.0.2.12/255.255.255.255 -- IP:10.0.2.13/255.255.255.255 -- IP:10.0.2.14/255.255.255.255 -- IP:10.0.2.15/255.255.255.255 -- IP:10.0.2.16/255.255.255.255 -- IP:10.0.2.17/255.255.255.255 -- IP:10.0.2.18/255.255.255.255 -- IP:10.0.2.19/255.255.255.255 -- IP:10.0.2.20/255.255.255.255 -- IP:10.0.2.21/255.255.255.255 -- IP:10.0.2.22/255.255.255.255 -- IP:10.0.2.23/255.255.255.255 -- IP:10.0.2.24/255.255.255.255 -- IP:10.0.2.25/255.255.255.255 -- IP:10.0.2.26/255.255.255.255 -- IP:10.0.2.27/255.255.255.255 -- IP:10.0.2.28/255.255.255.255 -- IP:10.0.2.29/255.255.255.255 -- IP:10.0.2.30/255.255.255.255 -- IP:10.0.2.31/255.255.255.255 -- IP:10.0.2.32/255.255.255.255 -- IP:10.0.2.33/255.255.255.255 -- IP:10.0.2.34/255.255.255.255 -- IP:10.0.2.35/255.255.255.255 -- IP:10.0.2.36/255.255.255.255 -- IP:10.0.2.37/255.255.255.255 -- IP:10.0.2.38/255.255.255.255 -- IP:10.0.2.39/255.255.255.255 -- IP:10.0.2.40/255.255.255.255 -- IP:10.0.2.41/255.255.255.255 -- IP:10.0.2.42/255.255.255.255 -- IP:10.0.2.43/255.255.255.255 -- IP:10.0.2.44/255.255.255.255 -- IP:10.0.2.45/255.255.255.255 -- IP:10.0.2.46/255.255.255.255 -- IP:10.0.2.47/255.255.255.255 -- IP:10.0.2.48/255.255.255.255 -- IP:10.0.2.49/255.255.255.255 -- IP:10.0.2.50/255.255.255.255 -- IP:10.0.2.51/255.255.255.255 -- IP:10.0.2.52/255.255.255.255 -- IP:10.0.2.53/255.255.255.255 -- IP:10.0.2.54/255.255.255.255 -- IP:10.0.2.55/255.255.255.255 -- IP:10.0.2.56/255.255.255.255 -- IP:10.0.2.57/255.255.255.255 -- IP:10.0.2.58/255.255.255.255 -- IP:10.0.2.59/255.255.255.255 -- IP:10.0.2.60/255.255.255.255 -- IP:10.0.2.61/255.255.255.255 -- IP:10.0.2.62/255.255.255.255 -- IP:10.0.2.63/255.255.255.255 -- IP:10.0.2.64/255.255.255.255 -- IP:10.0.2.65/255.255.255.255 -- IP:10.0.2.66/255.255.255.255 -- IP:10.0.2.67/255.255.255.255 -- IP:10.0.2.68/255.255.255.255 -- IP:10.0.2.69/255.255.255.255 -- IP:10.0.2.70/255.255.255.255 -- IP:10.0.2.71/255.255.255.255 -- IP:10.0.2.72/255.255.255.255 -- IP:10.0.2.73/255.255.255.255 -- IP:10.0.2.74/255.255.255.255 -- IP:10.0.2.75/255.255.255.255 -- IP:10.0.2.76/255.255.255.255 -- IP:10.0.2.77/255.255.255.255 -- IP:10.0.2.78/255.255.255.255 -- IP:10.0.2.79/255.255.255.255 -- IP:10.0.2.80/255.255.255.255 -- IP:10.0.2.81/255.255.255.255 -- IP:10.0.2.82/255.255.255.255 -- IP:10.0.2.83/255.255.255.255 -- IP:10.0.2.84/255.255.255.255 -- IP:10.0.2.85/255.255.255.255 -- IP:10.0.2.86/255.255.255.255 -- IP:10.0.2.87/255.255.255.255 -- IP:10.0.2.88/255.255.255.255 -- IP:10.0.2.89/255.255.255.255 -- IP:10.0.2.90/255.255.255.255 -- IP:10.0.2.91/255.255.255.255 -- IP:10.0.2.92/255.255.255.255 -- IP:10.0.2.93/255.255.255.255 -- IP:10.0.2.94/255.255.255.255 -- IP:10.0.2.95/255.255.255.255 -- IP:10.0.2.96/255.255.255.255 -- IP:10.0.2.97/255.255.255.255 -- IP:10.0.2.98/255.255.255.255 -- IP:10.0.2.99/255.255.255.255 -- IP:10.0.2.100/255.255.255.255 -- IP:10.0.2.101/255.255.255.255 -- IP:10.0.2.102/255.255.255.255 -- IP:10.0.2.103/255.255.255.255 -- IP:10.0.2.104/255.255.255.255 -- IP:10.0.2.105/255.255.255.255 -- IP:10.0.2.106/255.255.255.255 -- IP:10.0.2.107/255.255.255.255 -- IP:10.0.2.108/255.255.255.255 -- IP:10.0.2.109/255.255.255.255 -- IP:10.0.2.110/255.255.255.255 -- IP:10.0.2.111/255.255.255.255 -- IP:10.0.2.112/255.255.255.255 -- IP:10.0.2.113/255.255.255.255 -- IP:10.0.2.114/255.255.255.255 -- IP:10.0.2.115/255.255.255.255 -- IP:10.0.2.116/255.255.255.255 -- IP:10.0.2.117/255.255.255.255 -- IP:10.0.2.118/255.255.255.255 -- IP:10.0.2.119/255.255.255.255 -- IP:10.0.2.120/255.255.255.255 -- IP:10.0.2.121/255.255.255.255 -- IP:10.0.2.122/255.255.255.255 -- IP:10.0.2.123/255.255.255.255 -- IP:10.0.2.124/255.255.255.255 -- IP:10.0.2.125/255.255.255.255 -- IP:10.0.2.126/255.255.255.255 -- IP:10.0.2.127/255.255.255.255 -- IP:10.0.2.128/255.255.255.255 -- IP:10.0.2.129/255.255.255.255 -- IP:10.0.2.130/255.255.255.255 -- IP:10.0.2.131/255.255.255.255 -- IP:10.0.2.132/255.255.255.255 -- IP:10.0.2.133/255.255.255.255 -- IP:10.0.2.134/255.255.255.255 -- IP:10.0.2.135/255.255.255.255 -- IP:10.0.2.136/255.255.255.255 -- IP:10.0.2.137/255.255.255.255 -- IP:10.0.2.138/255.255.255.255 -- IP:10.0.2.139/255.255.255.255 -- IP:10.0.2.140/255.255.255.255 -- IP:10.0.2.141/255.255.255.255 -- IP:10.0.2.142/255.255.255.255 -- IP:10.0.2.143/255.255.255.255 -- IP:10.0.2.144/255.255.255.255 -- IP:10.0.2.145/255.255.255.255 -- IP:10.0.2.146/255.255.255.255 -- IP:10.0.2.147/255.255.255.255 -- IP:10.0.2.148/255.255.255.255 -- IP:10.0.2.149/255.255.255.255 -- IP:10.0.2.150/255.255.255.255 -- IP:10.0.2.151/255.255.255.255 -- IP:10.0.2.152/255.255.255.255 -- IP:10.0.2.153/255.255.255.255 -- IP:10.0.2.154/255.255.255.255 -- IP:10.0.2.155/255.255.255.255 -- IP:10.0.2.156/255.255.255.255 -- IP:10.0.2.157/255.255.255.255 -- IP:10.0.2.158/255.255.255.255 -- IP:10.0.2.159/255.255.255.255 -- IP:10.0.2.160/255.255.255.255 -- IP:10.0.2.161/255.255.255.255 -- IP:10.0.2.162/255.255.255.255 -- IP:10.0.2.163/255.255.255.255 -- IP:10.0.2.164/255.255.255.255 -- IP:10.0.2.165/255.255.255.255 -- IP:10.0.2.166/255.255.255.255 -- IP:10.0.2.167/255.255.255.255 -- IP:10.0.2.168/255.255.255.255 -- IP:10.0.2.169/255.255.255.255 -- IP:10.0.2.170/255.255.255.255 -- IP:10.0.2.171/255.255.255.255 -- IP:10.0.2.172/255.255.255.255 -- IP:10.0.2.173/255.255.255.255 -- IP:10.0.2.174/255.255.255.255 -- IP:10.0.2.175/255.255.255.255 -- IP:10.0.2.176/255.255.255.255 -- IP:10.0.2.177/255.255.255.255 -- IP:10.0.2.178/255.255.255.255 -- IP:10.0.2.179/255.255.255.255 -- IP:10.0.2.180/255.255.255.255 -- IP:10.0.2.181/255.255.255.255 -- IP:10.0.2.182/255.255.255.255 -- IP:10.0.2.183/255.255.255.255 -- IP:10.0.2.184/255.255.255.255 -- IP:10.0.2.185/255.255.255.255 -- IP:10.0.2.186/255.255.255.255 -- IP:10.0.2.187/255.255.255.255 -- IP:10.0.2.188/255.255.255.255 -- IP:10.0.2.189/255.255.255.255 -- IP:10.0.2.190/255.255.255.255 -- IP:10.0.2.191/255.255.255.255 -- IP:10.0.2.192/255.255.255.255 -- IP:10.0.2.193/255.255.255.255 -- IP:10.0.2.194/255.255.255.255 -- IP:10.0.2.195/255.255.255.255 -- IP:10.0.2.196/255.255.255.255 -- IP:10.0.2.197/255.255.255.255 -- IP:10.0.2.198/255.255.255.255 -- IP:10.0.2.199/255.255.255.255 -- IP:10.0.2.200/255.255.255.255 -- IP:10.0.2.201/255.255.255.255 -- IP:10.0.2.202/255.255.255.255 -- IP:10.0.2.203/255.255.255.255 -- IP:10.0.2.204/255.255.255.255 -- IP:10.0.2.205/255.255.255.255 -- IP:10.0.2.206/255.255.255.255 -- IP:10.0.2.207/255.255.255.255 -- IP:10.0.2.208/255.255.255.255 -- IP:10.0.2.209/255.255.255.255 -- IP:10.0.2.210/255.255.255.255 -- IP:10.0.2.211/255.255.255.255 -- IP:10.0.2.212/255.255.255.255 -- IP:10.0.2.213/255.255.255.255 -- IP:10.0.2.214/255.255.255.255 -- IP:10.0.2.215/255.255.255.255 -- IP:10.0.2.216/255.255.255.255 -- IP:10.0.2.217/255.255.255.255 -- IP:10.0.2.218/255.255.255.255 -- IP:10.0.2.219/255.255.255.255 -- IP:10.0.2.220/255.255.255.255 -- IP:10.0.2.221/255.255.255.255 -- IP:10.0.2.222/255.255.255.255 -- IP:10.0.2.223/255.255.255.255 -- IP:10.0.2.224/255.255.255.255 -- IP:10.0.2.225/255.255.255.255 -- IP:10.0.2.226/255.255.255.255 -- IP:10.0.2.227/255.255.255.255 -- IP:10.0.2.228/255.255.255.255 -- IP:10.0.2.229/255.255.255.255 -- IP:10.0.2.230/255.255.255.255 -- IP:10.0.2.231/255.255.255.255 -- IP:10.0.2.232/255.255.255.255 -- IP:10.0.2.233/255.255.255.255 -- IP:10.0.2.234/255.255.255.255 -- IP:10.0.2.235/255.255.255.255 -- IP:10.0.2.236/255.255.255.255 -- IP:10.0.2.237/255.255.255.255 -- IP:10.0.2.238/255.255.255.255 -- IP:10.0.2.239/255.255.255.255 -- IP:10.0.2.240/255.255.255.255 -- IP:10.0.2.241/255.255.255.255 -- IP:10.0.2.242/255.255.255.255 -- IP:10.0.2.243/255.255.255.255 -- IP:10.0.2.244/255.255.255.255 -- IP:10.0.2.245/255.255.255.255 -- IP:10.0.2.246/255.255.255.255 -- IP:10.0.2.247/255.255.255.255 -- IP:10.0.2.248/255.255.255.255 -- IP:10.0.2.249/255.255.255.255 -- IP:10.0.2.250/255.255.255.255 -- IP:10.0.2.251/255.255.255.255 -- IP:10.0.2.252/255.255.255.255 -- IP:10.0.2.253/255.255.255.255 -- IP:10.0.2.254/255.255.255.255 -- IP:10.0.2.255/255.255.255.255 -- IP:10.0.3.0/255.255.255.255 -- IP:10.0.3.1/255.255.255.255 -- IP:10.0.3.2/255.255.255.255 -- IP:10.0.3.3/255.255.255.255 -- IP:10.0.3.4/255.255.255.255 -- IP:10.0.3.5/255.255.255.255 -- IP:10.0.3.6/255.255.255.255 -- IP:10.0.3.7/255.255.255.255 -- IP:10.0.3.8/255.255.255.255 -- IP:10.0.3.9/255.255.255.255 -- IP:10.0.3.10/255.255.255.255 -- IP:10.0.3.11/255.255.255.255 -- IP:10.0.3.12/255.255.255.255 -- IP:10.0.3.13/255.255.255.255 -- IP:10.0.3.14/255.255.255.255 -- IP:10.0.3.15/255.255.255.255 -- IP:10.0.3.16/255.255.255.255 -- IP:10.0.3.17/255.255.255.255 -- IP:10.0.3.18/255.255.255.255 -- IP:10.0.3.19/255.255.255.255 -- IP:10.0.3.20/255.255.255.255 -- IP:10.0.3.21/255.255.255.255 -- IP:10.0.3.22/255.255.255.255 -- IP:10.0.3.23/255.255.255.255 -- IP:10.0.3.24/255.255.255.255 -- IP:10.0.3.25/255.255.255.255 -- IP:10.0.3.26/255.255.255.255 -- IP:10.0.3.27/255.255.255.255 -- IP:10.0.3.28/255.255.255.255 -- IP:10.0.3.29/255.255.255.255 -- IP:10.0.3.30/255.255.255.255 -- IP:10.0.3.31/255.255.255.255 -- IP:10.0.3.32/255.255.255.255 -- IP:10.0.3.33/255.255.255.255 -- IP:10.0.3.34/255.255.255.255 -- IP:10.0.3.35/255.255.255.255 -- IP:10.0.3.36/255.255.255.255 -- IP:10.0.3.37/255.255.255.255 -- IP:10.0.3.38/255.255.255.255 -- IP:10.0.3.39/255.255.255.255 -- IP:10.0.3.40/255.255.255.255 -- IP:10.0.3.41/255.255.255.255 -- IP:10.0.3.42/255.255.255.255 -- IP:10.0.3.43/255.255.255.255 -- IP:10.0.3.44/255.255.255.255 -- IP:10.0.3.45/255.255.255.255 -- IP:10.0.3.46/255.255.255.255 -- IP:10.0.3.47/255.255.255.255 -- IP:10.0.3.48/255.255.255.255 -- IP:10.0.3.49/255.255.255.255 -- IP:10.0.3.50/255.255.255.255 -- IP:10.0.3.51/255.255.255.255 -- IP:10.0.3.52/255.255.255.255 -- IP:10.0.3.53/255.255.255.255 -- IP:10.0.3.54/255.255.255.255 -- IP:10.0.3.55/255.255.255.255 -- IP:10.0.3.56/255.255.255.255 -- IP:10.0.3.57/255.255.255.255 -- IP:10.0.3.58/255.255.255.255 -- IP:10.0.3.59/255.255.255.255 -- IP:10.0.3.60/255.255.255.255 -- IP:10.0.3.61/255.255.255.255 -- IP:10.0.3.62/255.255.255.255 -- IP:10.0.3.63/255.255.255.255 -- IP:10.0.3.64/255.255.255.255 -- IP:10.0.3.65/255.255.255.255 -- IP:10.0.3.66/255.255.255.255 -- IP:10.0.3.67/255.255.255.255 -- IP:10.0.3.68/255.255.255.255 -- IP:10.0.3.69/255.255.255.255 -- IP:10.0.3.70/255.255.255.255 -- IP:10.0.3.71/255.255.255.255 -- IP:10.0.3.72/255.255.255.255 -- IP:10.0.3.73/255.255.255.255 -- IP:10.0.3.74/255.255.255.255 -- IP:10.0.3.75/255.255.255.255 -- IP:10.0.3.76/255.255.255.255 -- IP:10.0.3.77/255.255.255.255 -- IP:10.0.3.78/255.255.255.255 -- IP:10.0.3.79/255.255.255.255 -- IP:10.0.3.80/255.255.255.255 -- IP:10.0.3.81/255.255.255.255 -- IP:10.0.3.82/255.255.255.255 -- IP:10.0.3.83/255.255.255.255 -- IP:10.0.3.84/255.255.255.255 -- IP:10.0.3.85/255.255.255.255 -- IP:10.0.3.86/255.255.255.255 -- IP:10.0.3.87/255.255.255.255 -- IP:10.0.3.88/255.255.255.255 -- IP:10.0.3.89/255.255.255.255 -- IP:10.0.3.90/255.255.255.255 -- IP:10.0.3.91/255.255.255.255 -- IP:10.0.3.92/255.255.255.255 -- IP:10.0.3.93/255.255.255.255 -- IP:10.0.3.94/255.255.255.255 -- IP:10.0.3.95/255.255.255.255 -- IP:10.0.3.96/255.255.255.255 -- IP:10.0.3.97/255.255.255.255 -- IP:10.0.3.98/255.255.255.255 -- IP:10.0.3.99/255.255.255.255 -- IP:10.0.3.100/255.255.255.255 -- IP:10.0.3.101/255.255.255.255 -- IP:10.0.3.102/255.255.255.255 -- IP:10.0.3.103/255.255.255.255 -- IP:10.0.3.104/255.255.255.255 -- IP:10.0.3.105/255.255.255.255 -- IP:10.0.3.106/255.255.255.255 -- IP:10.0.3.107/255.255.255.255 -- IP:10.0.3.108/255.255.255.255 -- IP:10.0.3.109/255.255.255.255 -- IP:10.0.3.110/255.255.255.255 -- IP:10.0.3.111/255.255.255.255 -- IP:10.0.3.112/255.255.255.255 -- IP:10.0.3.113/255.255.255.255 -- IP:10.0.3.114/255.255.255.255 -- IP:10.0.3.115/255.255.255.255 -- IP:10.0.3.116/255.255.255.255 -- IP:10.0.3.117/255.255.255.255 -- IP:10.0.3.118/255.255.255.255 -- IP:10.0.3.119/255.255.255.255 -- IP:10.0.3.120/255.255.255.255 -- IP:10.0.3.121/255.255.255.255 -- IP:10.0.3.122/255.255.255.255 -- IP:10.0.3.123/255.255.255.255 -- IP:10.0.3.124/255.255.255.255 -- IP:10.0.3.125/255.255.255.255 -- IP:10.0.3.126/255.255.255.255 -- IP:10.0.3.127/255.255.255.255 -- IP:10.0.3.128/255.255.255.255 -- IP:10.0.3.129/255.255.255.255 -- IP:10.0.3.130/255.255.255.255 -- IP:10.0.3.131/255.255.255.255 -- IP:10.0.3.132/255.255.255.255 -- IP:10.0.3.133/255.255.255.255 -- IP:10.0.3.134/255.255.255.255 -- IP:10.0.3.135/255.255.255.255 -- IP:10.0.3.136/255.255.255.255 -- IP:10.0.3.137/255.255.255.255 -- IP:10.0.3.138/255.255.255.255 -- IP:10.0.3.139/255.255.255.255 -- IP:10.0.3.140/255.255.255.255 -- IP:10.0.3.141/255.255.255.255 -- IP:10.0.3.142/255.255.255.255 -- IP:10.0.3.143/255.255.255.255 -- IP:10.0.3.144/255.255.255.255 -- IP:10.0.3.145/255.255.255.255 -- IP:10.0.3.146/255.255.255.255 -- IP:10.0.3.147/255.255.255.255 -- IP:10.0.3.148/255.255.255.255 -- IP:10.0.3.149/255.255.255.255 -- IP:10.0.3.150/255.255.255.255 -- IP:10.0.3.151/255.255.255.255 -- IP:10.0.3.152/255.255.255.255 -- IP:10.0.3.153/255.255.255.255 -- IP:10.0.3.154/255.255.255.255 -- IP:10.0.3.155/255.255.255.255 -- IP:10.0.3.156/255.255.255.255 -- IP:10.0.3.157/255.255.255.255 -- IP:10.0.3.158/255.255.255.255 -- IP:10.0.3.159/255.255.255.255 -- IP:10.0.3.160/255.255.255.255 -- IP:10.0.3.161/255.255.255.255 -- IP:10.0.3.162/255.255.255.255 -- IP:10.0.3.163/255.255.255.255 -- IP:10.0.3.164/255.255.255.255 -- IP:10.0.3.165/255.255.255.255 -- IP:10.0.3.166/255.255.255.255 -- IP:10.0.3.167/255.255.255.255 -- IP:10.0.3.168/255.255.255.255 -- IP:10.0.3.169/255.255.255.255 -- IP:10.0.3.170/255.255.255.255 -- IP:10.0.3.171/255.255.255.255 -- IP:10.0.3.172/255.255.255.255 -- IP:10.0.3.173/255.255.255.255 -- IP:10.0.3.174/255.255.255.255 -- IP:10.0.3.175/255.255.255.255 -- IP:10.0.3.176/255.255.255.255 -- IP:10.0.3.177/255.255.255.255 -- IP:10.0.3.178/255.255.255.255 -- IP:10.0.3.179/255.255.255.255 -- IP:10.0.3.180/255.255.255.255 -- IP:10.0.3.181/255.255.255.255 -- IP:10.0.3.182/255.255.255.255 -- IP:10.0.3.183/255.255.255.255 -- IP:10.0.3.184/255.255.255.255 -- IP:10.0.3.185/255.255.255.255 -- IP:10.0.3.186/255.255.255.255 -- IP:10.0.3.187/255.255.255.255 -- IP:10.0.3.188/255.255.255.255 -- IP:10.0.3.189/255.255.255.255 -- IP:10.0.3.190/255.255.255.255 -- IP:10.0.3.191/255.255.255.255 -- IP:10.0.3.192/255.255.255.255 -- IP:10.0.3.193/255.255.255.255 -- IP:10.0.3.194/255.255.255.255 -- IP:10.0.3.195/255.255.255.255 -- IP:10.0.3.196/255.255.255.255 -- IP:10.0.3.197/255.255.255.255 -- IP:10.0.3.198/255.255.255.255 -- IP:10.0.3.199/255.255.255.255 -- IP:10.0.3.200/255.255.255.255 -- IP:10.0.3.201/255.255.255.255 -- IP:10.0.3.202/255.255.255.255 -- IP:10.0.3.203/255.255.255.255 -- IP:10.0.3.204/255.255.255.255 -- IP:10.0.3.205/255.255.255.255 -- IP:10.0.3.206/255.255.255.255 -- IP:10.0.3.207/255.255.255.255 -- IP:10.0.3.208/255.255.255.255 -- IP:10.0.3.209/255.255.255.255 -- IP:10.0.3.210/255.255.255.255 -- IP:10.0.3.211/255.255.255.255 -- IP:10.0.3.212/255.255.255.255 -- IP:10.0.3.213/255.255.255.255 -- IP:10.0.3.214/255.255.255.255 -- IP:10.0.3.215/255.255.255.255 -- IP:10.0.3.216/255.255.255.255 -- IP:10.0.3.217/255.255.255.255 -- IP:10.0.3.218/255.255.255.255 -- IP:10.0.3.219/255.255.255.255 -- IP:10.0.3.220/255.255.255.255 -- IP:10.0.3.221/255.255.255.255 -- IP:10.0.3.222/255.255.255.255 -- IP:10.0.3.223/255.255.255.255 -- IP:10.0.3.224/255.255.255.255 -- IP:10.0.3.225/255.255.255.255 -- IP:10.0.3.226/255.255.255.255 -- IP:10.0.3.227/255.255.255.255 -- IP:10.0.3.228/255.255.255.255 -- IP:10.0.3.229/255.255.255.255 -- IP:10.0.3.230/255.255.255.255 -- IP:10.0.3.231/255.255.255.255 -- IP:10.0.3.232/255.255.255.255 -- IP:10.0.3.233/255.255.255.255 -- IP:10.0.3.234/255.255.255.255 -- IP:10.0.3.235/255.255.255.255 -- IP:10.0.3.236/255.255.255.255 -- IP:10.0.3.237/255.255.255.255 -- IP:10.0.3.238/255.255.255.255 -- IP:10.0.3.239/255.255.255.255 -- IP:10.0.3.240/255.255.255.255 -- IP:10.0.3.241/255.255.255.255 -- IP:10.0.3.242/255.255.255.255 -- IP:10.0.3.243/255.255.255.255 -- IP:10.0.3.244/255.255.255.255 -- IP:10.0.3.245/255.255.255.255 -- IP:10.0.3.246/255.255.255.255 -- IP:10.0.3.247/255.255.255.255 -- IP:10.0.3.248/255.255.255.255 -- IP:10.0.3.249/255.255.255.255 -- IP:10.0.3.250/255.255.255.255 -- IP:10.0.3.251/255.255.255.255 -- IP:10.0.3.252/255.255.255.255 -- IP:10.0.3.253/255.255.255.255 -- IP:10.0.3.254/255.255.255.255 -- IP:10.0.3.255/255.255.255.255 -- IP:10.0.4.0/255.255.255.255 -- URI:http://test/0 -- URI:http://test/1 -- URI:http://test/2 -- URI:http://test/3 -- URI:http://test/4 -- URI:http://test/5 -- URI:http://test/6 -- URI:http://test/7 -- URI:http://test/8 -- URI:http://test/9 -- URI:http://test/10 -- URI:http://test/11 -- URI:http://test/12 -- URI:http://test/13 -- URI:http://test/14 -- URI:http://test/15 -- URI:http://test/16 -- URI:http://test/17 -- URI:http://test/18 -- URI:http://test/19 -- URI:http://test/20 -- URI:http://test/21 -- URI:http://test/22 -- URI:http://test/23 -- URI:http://test/24 -- URI:http://test/25 -- URI:http://test/26 -- URI:http://test/27 -- URI:http://test/28 -- URI:http://test/29 -- URI:http://test/30 -- URI:http://test/31 -- URI:http://test/32 -- URI:http://test/33 -- URI:http://test/34 -- URI:http://test/35 -- URI:http://test/36 -- URI:http://test/37 -- URI:http://test/38 -- URI:http://test/39 -- URI:http://test/40 -- URI:http://test/41 -- URI:http://test/42 -- URI:http://test/43 -- URI:http://test/44 -- URI:http://test/45 -- URI:http://test/46 -- URI:http://test/47 -- URI:http://test/48 -- URI:http://test/49 -- URI:http://test/50 -- URI:http://test/51 -- URI:http://test/52 -- URI:http://test/53 -- URI:http://test/54 -- URI:http://test/55 -- URI:http://test/56 -- URI:http://test/57 -- URI:http://test/58 -- URI:http://test/59 -- URI:http://test/60 -- URI:http://test/61 -- URI:http://test/62 -- URI:http://test/63 -- URI:http://test/64 -- URI:http://test/65 -- URI:http://test/66 -- URI:http://test/67 -- URI:http://test/68 -- URI:http://test/69 -- URI:http://test/70 -- URI:http://test/71 -- URI:http://test/72 -- URI:http://test/73 -- URI:http://test/74 -- URI:http://test/75 -- URI:http://test/76 -- URI:http://test/77 -- URI:http://test/78 -- URI:http://test/79 -- URI:http://test/80 -- URI:http://test/81 -- URI:http://test/82 -- URI:http://test/83 -- URI:http://test/84 -- URI:http://test/85 -- URI:http://test/86 -- URI:http://test/87 -- URI:http://test/88 -- URI:http://test/89 -- URI:http://test/90 -- URI:http://test/91 -- URI:http://test/92 -- URI:http://test/93 -- URI:http://test/94 -- URI:http://test/95 -- URI:http://test/96 -- URI:http://test/97 -- URI:http://test/98 -- URI:http://test/99 -- URI:http://test/100 -- URI:http://test/101 -- URI:http://test/102 -- URI:http://test/103 -- URI:http://test/104 -- URI:http://test/105 -- URI:http://test/106 -- URI:http://test/107 -- URI:http://test/108 -- URI:http://test/109 -- URI:http://test/110 -- URI:http://test/111 -- URI:http://test/112 -- URI:http://test/113 -- URI:http://test/114 -- URI:http://test/115 -- URI:http://test/116 -- URI:http://test/117 -- URI:http://test/118 -- URI:http://test/119 -- URI:http://test/120 -- URI:http://test/121 -- URI:http://test/122 -- URI:http://test/123 -- URI:http://test/124 -- URI:http://test/125 -- URI:http://test/126 -- URI:http://test/127 -- URI:http://test/128 -- URI:http://test/129 -- URI:http://test/130 -- URI:http://test/131 -- URI:http://test/132 -- URI:http://test/133 -- URI:http://test/134 -- URI:http://test/135 -- URI:http://test/136 -- URI:http://test/137 -- URI:http://test/138 -- URI:http://test/139 -- URI:http://test/140 -- URI:http://test/141 -- URI:http://test/142 -- URI:http://test/143 -- URI:http://test/144 -- URI:http://test/145 -- URI:http://test/146 -- URI:http://test/147 -- URI:http://test/148 -- URI:http://test/149 -- URI:http://test/150 -- URI:http://test/151 -- URI:http://test/152 -- URI:http://test/153 -- URI:http://test/154 -- URI:http://test/155 -- URI:http://test/156 -- URI:http://test/157 -- URI:http://test/158 -- URI:http://test/159 -- URI:http://test/160 -- URI:http://test/161 -- URI:http://test/162 -- URI:http://test/163 -- URI:http://test/164 -- URI:http://test/165 -- URI:http://test/166 -- URI:http://test/167 -- URI:http://test/168 -- URI:http://test/169 -- URI:http://test/170 -- URI:http://test/171 -- URI:http://test/172 -- URI:http://test/173 -- URI:http://test/174 -- URI:http://test/175 -- URI:http://test/176 -- URI:http://test/177 -- URI:http://test/178 -- URI:http://test/179 -- URI:http://test/180 -- URI:http://test/181 -- URI:http://test/182 -- URI:http://test/183 -- URI:http://test/184 -- URI:http://test/185 -- URI:http://test/186 -- URI:http://test/187 -- URI:http://test/188 -- URI:http://test/189 -- URI:http://test/190 -- URI:http://test/191 -- URI:http://test/192 -- URI:http://test/193 -- URI:http://test/194 -- URI:http://test/195 -- URI:http://test/196 -- URI:http://test/197 -- URI:http://test/198 -- URI:http://test/199 -- URI:http://test/200 -- URI:http://test/201 -- URI:http://test/202 -- URI:http://test/203 -- URI:http://test/204 -- URI:http://test/205 -- URI:http://test/206 -- URI:http://test/207 -- URI:http://test/208 -- URI:http://test/209 -- URI:http://test/210 -- URI:http://test/211 -- URI:http://test/212 -- URI:http://test/213 -- URI:http://test/214 -- URI:http://test/215 -- URI:http://test/216 -- URI:http://test/217 -- URI:http://test/218 -- URI:http://test/219 -- URI:http://test/220 -- URI:http://test/221 -- URI:http://test/222 -- URI:http://test/223 -- URI:http://test/224 -- URI:http://test/225 -- URI:http://test/226 -- URI:http://test/227 -- URI:http://test/228 -- URI:http://test/229 -- URI:http://test/230 -- URI:http://test/231 -- URI:http://test/232 -- URI:http://test/233 -- URI:http://test/234 -- URI:http://test/235 -- URI:http://test/236 -- URI:http://test/237 -- URI:http://test/238 -- URI:http://test/239 -- URI:http://test/240 -- URI:http://test/241 -- URI:http://test/242 -- URI:http://test/243 -- URI:http://test/244 -- URI:http://test/245 -- URI:http://test/246 -- URI:http://test/247 -- URI:http://test/248 -- URI:http://test/249 -- URI:http://test/250 -- URI:http://test/251 -- URI:http://test/252 -- URI:http://test/253 -- URI:http://test/254 -- URI:http://test/255 -- URI:http://test/256 -- URI:http://test/257 -- URI:http://test/258 -- URI:http://test/259 -- URI:http://test/260 -- URI:http://test/261 -- URI:http://test/262 -- URI:http://test/263 -- URI:http://test/264 -- URI:http://test/265 -- URI:http://test/266 -- URI:http://test/267 -- URI:http://test/268 -- URI:http://test/269 -- URI:http://test/270 -- URI:http://test/271 -- URI:http://test/272 -- URI:http://test/273 -- URI:http://test/274 -- URI:http://test/275 -- URI:http://test/276 -- URI:http://test/277 -- URI:http://test/278 -- URI:http://test/279 -- URI:http://test/280 -- URI:http://test/281 -- URI:http://test/282 -- URI:http://test/283 -- URI:http://test/284 -- URI:http://test/285 -- URI:http://test/286 -- URI:http://test/287 -- URI:http://test/288 -- URI:http://test/289 -- URI:http://test/290 -- URI:http://test/291 -- URI:http://test/292 -- URI:http://test/293 -- URI:http://test/294 -- URI:http://test/295 -- URI:http://test/296 -- URI:http://test/297 -- URI:http://test/298 -- URI:http://test/299 -- URI:http://test/300 -- URI:http://test/301 -- URI:http://test/302 -- URI:http://test/303 -- URI:http://test/304 -- URI:http://test/305 -- URI:http://test/306 -- URI:http://test/307 -- URI:http://test/308 -- URI:http://test/309 -- URI:http://test/310 -- URI:http://test/311 -- URI:http://test/312 -- URI:http://test/313 -- URI:http://test/314 -- URI:http://test/315 -- URI:http://test/316 -- URI:http://test/317 -- URI:http://test/318 -- URI:http://test/319 -- URI:http://test/320 -- URI:http://test/321 -- URI:http://test/322 -- URI:http://test/323 -- URI:http://test/324 -- URI:http://test/325 -- URI:http://test/326 -- URI:http://test/327 -- URI:http://test/328 -- URI:http://test/329 -- URI:http://test/330 -- URI:http://test/331 -- URI:http://test/332 -- URI:http://test/333 -- URI:http://test/334 -- URI:http://test/335 -- URI:http://test/336 -- URI:http://test/337 -- URI:http://test/338 -- URI:http://test/339 -- URI:http://test/340 -- URI:http://test/341 -- URI:http://test/342 -- URI:http://test/343 -- URI:http://test/344 -- URI:http://test/345 -- URI:http://test/346 -- URI:http://test/347 -- URI:http://test/348 -- URI:http://test/349 -- URI:http://test/350 -- URI:http://test/351 -- URI:http://test/352 -- URI:http://test/353 -- URI:http://test/354 -- URI:http://test/355 -- URI:http://test/356 -- URI:http://test/357 -- URI:http://test/358 -- URI:http://test/359 -- URI:http://test/360 -- URI:http://test/361 -- URI:http://test/362 -- URI:http://test/363 -- URI:http://test/364 -- URI:http://test/365 -- URI:http://test/366 -- URI:http://test/367 -- URI:http://test/368 -- URI:http://test/369 -- URI:http://test/370 -- URI:http://test/371 -- URI:http://test/372 -- URI:http://test/373 -- URI:http://test/374 -- URI:http://test/375 -- URI:http://test/376 -- URI:http://test/377 -- URI:http://test/378 -- URI:http://test/379 -- URI:http://test/380 -- URI:http://test/381 -- URI:http://test/382 -- URI:http://test/383 -- URI:http://test/384 -- URI:http://test/385 -- URI:http://test/386 -- URI:http://test/387 -- URI:http://test/388 -- URI:http://test/389 -- URI:http://test/390 -- URI:http://test/391 -- URI:http://test/392 -- URI:http://test/393 -- URI:http://test/394 -- URI:http://test/395 -- URI:http://test/396 -- URI:http://test/397 -- URI:http://test/398 -- URI:http://test/399 -- URI:http://test/400 -- URI:http://test/401 -- URI:http://test/402 -- URI:http://test/403 -- URI:http://test/404 -- URI:http://test/405 -- URI:http://test/406 -- URI:http://test/407 -- URI:http://test/408 -- URI:http://test/409 -- URI:http://test/410 -- URI:http://test/411 -- URI:http://test/412 -- URI:http://test/413 -- URI:http://test/414 -- URI:http://test/415 -- URI:http://test/416 -- URI:http://test/417 -- URI:http://test/418 -- URI:http://test/419 -- URI:http://test/420 -- URI:http://test/421 -- URI:http://test/422 -- URI:http://test/423 -- URI:http://test/424 -- URI:http://test/425 -- URI:http://test/426 -- URI:http://test/427 -- URI:http://test/428 -- URI:http://test/429 -- URI:http://test/430 -- URI:http://test/431 -- URI:http://test/432 -- URI:http://test/433 -- URI:http://test/434 -- URI:http://test/435 -- URI:http://test/436 -- URI:http://test/437 -- URI:http://test/438 -- URI:http://test/439 -- URI:http://test/440 -- URI:http://test/441 -- URI:http://test/442 -- URI:http://test/443 -- URI:http://test/444 -- URI:http://test/445 -- URI:http://test/446 -- URI:http://test/447 -- URI:http://test/448 -- URI:http://test/449 -- URI:http://test/450 -- URI:http://test/451 -- URI:http://test/452 -- URI:http://test/453 -- URI:http://test/454 -- URI:http://test/455 -- URI:http://test/456 -- URI:http://test/457 -- URI:http://test/458 -- URI:http://test/459 -- URI:http://test/460 -- URI:http://test/461 -- URI:http://test/462 -- URI:http://test/463 -- URI:http://test/464 -- URI:http://test/465 -- URI:http://test/466 -- URI:http://test/467 -- URI:http://test/468 -- URI:http://test/469 -- URI:http://test/470 -- URI:http://test/471 -- URI:http://test/472 -- URI:http://test/473 -- URI:http://test/474 -- URI:http://test/475 -- URI:http://test/476 -- URI:http://test/477 -- URI:http://test/478 -- URI:http://test/479 -- URI:http://test/480 -- URI:http://test/481 -- URI:http://test/482 -- URI:http://test/483 -- URI:http://test/484 -- URI:http://test/485 -- URI:http://test/486 -- URI:http://test/487 -- URI:http://test/488 -- URI:http://test/489 -- URI:http://test/490 -- URI:http://test/491 -- URI:http://test/492 -- URI:http://test/493 -- URI:http://test/494 -- URI:http://test/495 -- URI:http://test/496 -- URI:http://test/497 -- URI:http://test/498 -- URI:http://test/499 -- URI:http://test/500 -- URI:http://test/501 -- URI:http://test/502 -- URI:http://test/503 -- URI:http://test/504 -- URI:http://test/505 -- URI:http://test/506 -- URI:http://test/507 -- URI:http://test/508 -- URI:http://test/509 -- URI:http://test/510 -- URI:http://test/511 -- URI:http://test/512 -- URI:http://test/513 -- URI:http://test/514 -- URI:http://test/515 -- URI:http://test/516 -- URI:http://test/517 -- URI:http://test/518 -- URI:http://test/519 -- URI:http://test/520 -- URI:http://test/521 -- URI:http://test/522 -- URI:http://test/523 -- URI:http://test/524 -- URI:http://test/525 -- URI:http://test/526 -- URI:http://test/527 -- URI:http://test/528 -- URI:http://test/529 -- URI:http://test/530 -- URI:http://test/531 -- URI:http://test/532 -- URI:http://test/533 -- URI:http://test/534 -- URI:http://test/535 -- URI:http://test/536 -- URI:http://test/537 -- URI:http://test/538 -- URI:http://test/539 -- URI:http://test/540 -- URI:http://test/541 -- URI:http://test/542 -- URI:http://test/543 -- URI:http://test/544 -- URI:http://test/545 -- URI:http://test/546 -- URI:http://test/547 -- URI:http://test/548 -- URI:http://test/549 -- URI:http://test/550 -- URI:http://test/551 -- URI:http://test/552 -- URI:http://test/553 -- URI:http://test/554 -- URI:http://test/555 -- URI:http://test/556 -- URI:http://test/557 -- URI:http://test/558 -- URI:http://test/559 -- URI:http://test/560 -- URI:http://test/561 -- URI:http://test/562 -- URI:http://test/563 -- URI:http://test/564 -- URI:http://test/565 -- URI:http://test/566 -- URI:http://test/567 -- URI:http://test/568 -- URI:http://test/569 -- URI:http://test/570 -- URI:http://test/571 -- URI:http://test/572 -- URI:http://test/573 -- URI:http://test/574 -- URI:http://test/575 -- URI:http://test/576 -- URI:http://test/577 -- URI:http://test/578 -- URI:http://test/579 -- URI:http://test/580 -- URI:http://test/581 -- URI:http://test/582 -- URI:http://test/583 -- URI:http://test/584 -- URI:http://test/585 -- URI:http://test/586 -- URI:http://test/587 -- URI:http://test/588 -- URI:http://test/589 -- URI:http://test/590 -- URI:http://test/591 -- URI:http://test/592 -- URI:http://test/593 -- URI:http://test/594 -- URI:http://test/595 -- URI:http://test/596 -- URI:http://test/597 -- URI:http://test/598 -- URI:http://test/599 -- URI:http://test/600 -- URI:http://test/601 -- URI:http://test/602 -- URI:http://test/603 -- URI:http://test/604 -- URI:http://test/605 -- URI:http://test/606 -- URI:http://test/607 -- URI:http://test/608 -- URI:http://test/609 -- URI:http://test/610 -- URI:http://test/611 -- URI:http://test/612 -- URI:http://test/613 -- URI:http://test/614 -- URI:http://test/615 -- URI:http://test/616 -- URI:http://test/617 -- URI:http://test/618 -- URI:http://test/619 -- URI:http://test/620 -- URI:http://test/621 -- URI:http://test/622 -- URI:http://test/623 -- URI:http://test/624 -- URI:http://test/625 -- URI:http://test/626 -- URI:http://test/627 -- URI:http://test/628 -- URI:http://test/629 -- URI:http://test/630 -- URI:http://test/631 -- URI:http://test/632 -- URI:http://test/633 -- URI:http://test/634 -- URI:http://test/635 -- URI:http://test/636 -- URI:http://test/637 -- URI:http://test/638 -- URI:http://test/639 -- URI:http://test/640 -- URI:http://test/641 -- URI:http://test/642 -- URI:http://test/643 -- URI:http://test/644 -- URI:http://test/645 -- URI:http://test/646 -- URI:http://test/647 -- URI:http://test/648 -- URI:http://test/649 -- URI:http://test/650 -- URI:http://test/651 -- URI:http://test/652 -- URI:http://test/653 -- URI:http://test/654 -- URI:http://test/655 -- URI:http://test/656 -- URI:http://test/657 -- URI:http://test/658 -- URI:http://test/659 -- URI:http://test/660 -- URI:http://test/661 -- URI:http://test/662 -- URI:http://test/663 -- URI:http://test/664 -- URI:http://test/665 -- URI:http://test/666 -- URI:http://test/667 -- URI:http://test/668 -- URI:http://test/669 -- URI:http://test/670 -- URI:http://test/671 -- URI:http://test/672 -- URI:http://test/673 -- URI:http://test/674 -- URI:http://test/675 -- URI:http://test/676 -- URI:http://test/677 -- URI:http://test/678 -- URI:http://test/679 -- URI:http://test/680 -- URI:http://test/681 -- URI:http://test/682 -- URI:http://test/683 -- URI:http://test/684 -- URI:http://test/685 -- URI:http://test/686 -- URI:http://test/687 -- URI:http://test/688 -- URI:http://test/689 -- URI:http://test/690 -- URI:http://test/691 -- URI:http://test/692 -- URI:http://test/693 -- URI:http://test/694 -- URI:http://test/695 -- URI:http://test/696 -- URI:http://test/697 -- URI:http://test/698 -- URI:http://test/699 -- URI:http://test/700 -- URI:http://test/701 -- URI:http://test/702 -- URI:http://test/703 -- URI:http://test/704 -- URI:http://test/705 -- URI:http://test/706 -- URI:http://test/707 -- URI:http://test/708 -- URI:http://test/709 -- URI:http://test/710 -- URI:http://test/711 -- URI:http://test/712 -- URI:http://test/713 -- URI:http://test/714 -- URI:http://test/715 -- URI:http://test/716 -- URI:http://test/717 -- URI:http://test/718 -- URI:http://test/719 -- URI:http://test/720 -- URI:http://test/721 -- URI:http://test/722 -- URI:http://test/723 -- URI:http://test/724 -- URI:http://test/725 -- URI:http://test/726 -- URI:http://test/727 -- URI:http://test/728 -- URI:http://test/729 -- URI:http://test/730 -- URI:http://test/731 -- URI:http://test/732 -- URI:http://test/733 -- URI:http://test/734 -- URI:http://test/735 -- URI:http://test/736 -- URI:http://test/737 -- URI:http://test/738 -- URI:http://test/739 -- URI:http://test/740 -- URI:http://test/741 -- URI:http://test/742 -- URI:http://test/743 -- URI:http://test/744 -- URI:http://test/745 -- URI:http://test/746 -- URI:http://test/747 -- URI:http://test/748 -- URI:http://test/749 -- URI:http://test/750 -- URI:http://test/751 -- URI:http://test/752 -- URI:http://test/753 -- URI:http://test/754 -- URI:http://test/755 -- URI:http://test/756 -- URI:http://test/757 -- URI:http://test/758 -- URI:http://test/759 -- URI:http://test/760 -- URI:http://test/761 -- URI:http://test/762 -- URI:http://test/763 -- URI:http://test/764 -- URI:http://test/765 -- URI:http://test/766 -- URI:http://test/767 -- URI:http://test/768 -- URI:http://test/769 -- URI:http://test/770 -- URI:http://test/771 -- URI:http://test/772 -- URI:http://test/773 -- URI:http://test/774 -- URI:http://test/775 -- URI:http://test/776 -- URI:http://test/777 -- URI:http://test/778 -- URI:http://test/779 -- URI:http://test/780 -- URI:http://test/781 -- URI:http://test/782 -- URI:http://test/783 -- URI:http://test/784 -- URI:http://test/785 -- URI:http://test/786 -- URI:http://test/787 -- URI:http://test/788 -- URI:http://test/789 -- URI:http://test/790 -- URI:http://test/791 -- URI:http://test/792 -- URI:http://test/793 -- URI:http://test/794 -- URI:http://test/795 -- URI:http://test/796 -- URI:http://test/797 -- URI:http://test/798 -- URI:http://test/799 -- URI:http://test/800 -- URI:http://test/801 -- URI:http://test/802 -- URI:http://test/803 -- URI:http://test/804 -- URI:http://test/805 -- URI:http://test/806 -- URI:http://test/807 -- URI:http://test/808 -- URI:http://test/809 -- URI:http://test/810 -- URI:http://test/811 -- URI:http://test/812 -- URI:http://test/813 -- URI:http://test/814 -- URI:http://test/815 -- URI:http://test/816 -- URI:http://test/817 -- URI:http://test/818 -- URI:http://test/819 -- URI:http://test/820 -- URI:http://test/821 -- URI:http://test/822 -- URI:http://test/823 -- URI:http://test/824 -- URI:http://test/825 -- URI:http://test/826 -- URI:http://test/827 -- URI:http://test/828 -- URI:http://test/829 -- URI:http://test/830 -- URI:http://test/831 -- URI:http://test/832 -- URI:http://test/833 -- URI:http://test/834 -- URI:http://test/835 -- URI:http://test/836 -- URI:http://test/837 -- URI:http://test/838 -- URI:http://test/839 -- URI:http://test/840 -- URI:http://test/841 -- URI:http://test/842 -- URI:http://test/843 -- URI:http://test/844 -- URI:http://test/845 -- URI:http://test/846 -- URI:http://test/847 -- URI:http://test/848 -- URI:http://test/849 -- URI:http://test/850 -- URI:http://test/851 -- URI:http://test/852 -- URI:http://test/853 -- URI:http://test/854 -- URI:http://test/855 -- URI:http://test/856 -- URI:http://test/857 -- URI:http://test/858 -- URI:http://test/859 -- URI:http://test/860 -- URI:http://test/861 -- URI:http://test/862 -- URI:http://test/863 -- URI:http://test/864 -- URI:http://test/865 -- URI:http://test/866 -- URI:http://test/867 -- URI:http://test/868 -- URI:http://test/869 -- URI:http://test/870 -- URI:http://test/871 -- URI:http://test/872 -- URI:http://test/873 -- URI:http://test/874 -- URI:http://test/875 -- URI:http://test/876 -- URI:http://test/877 -- URI:http://test/878 -- URI:http://test/879 -- URI:http://test/880 -- URI:http://test/881 -- URI:http://test/882 -- URI:http://test/883 -- URI:http://test/884 -- URI:http://test/885 -- URI:http://test/886 -- URI:http://test/887 -- URI:http://test/888 -- URI:http://test/889 -- URI:http://test/890 -- URI:http://test/891 -- URI:http://test/892 -- URI:http://test/893 -- URI:http://test/894 -- URI:http://test/895 -- URI:http://test/896 -- URI:http://test/897 -- URI:http://test/898 -- URI:http://test/899 -- URI:http://test/900 -- URI:http://test/901 -- URI:http://test/902 -- URI:http://test/903 -- URI:http://test/904 -- URI:http://test/905 -- URI:http://test/906 -- URI:http://test/907 -- URI:http://test/908 -- URI:http://test/909 -- URI:http://test/910 -- URI:http://test/911 -- URI:http://test/912 -- URI:http://test/913 -- URI:http://test/914 -- URI:http://test/915 -- URI:http://test/916 -- URI:http://test/917 -- URI:http://test/918 -- URI:http://test/919 -- URI:http://test/920 -- URI:http://test/921 -- URI:http://test/922 -- URI:http://test/923 -- URI:http://test/924 -- URI:http://test/925 -- URI:http://test/926 -- URI:http://test/927 -- URI:http://test/928 -- URI:http://test/929 -- URI:http://test/930 -- URI:http://test/931 -- URI:http://test/932 -- URI:http://test/933 -- URI:http://test/934 -- URI:http://test/935 -- URI:http://test/936 -- URI:http://test/937 -- URI:http://test/938 -- URI:http://test/939 -- URI:http://test/940 -- URI:http://test/941 -- URI:http://test/942 -- URI:http://test/943 -- URI:http://test/944 -- URI:http://test/945 -- URI:http://test/946 -- URI:http://test/947 -- URI:http://test/948 -- URI:http://test/949 -- URI:http://test/950 -- URI:http://test/951 -- URI:http://test/952 -- URI:http://test/953 -- URI:http://test/954 -- URI:http://test/955 -- URI:http://test/956 -- URI:http://test/957 -- URI:http://test/958 -- URI:http://test/959 -- URI:http://test/960 -- URI:http://test/961 -- URI:http://test/962 -- URI:http://test/963 -- URI:http://test/964 -- URI:http://test/965 -- URI:http://test/966 -- URI:http://test/967 -- URI:http://test/968 -- URI:http://test/969 -- URI:http://test/970 -- URI:http://test/971 -- URI:http://test/972 -- URI:http://test/973 -- URI:http://test/974 -- URI:http://test/975 -- URI:http://test/976 -- URI:http://test/977 -- URI:http://test/978 -- URI:http://test/979 -- URI:http://test/980 -- URI:http://test/981 -- URI:http://test/982 -- URI:http://test/983 -- URI:http://test/984 -- URI:http://test/985 -- URI:http://test/986 -- URI:http://test/987 -- URI:http://test/988 -- URI:http://test/989 -- URI:http://test/990 -- URI:http://test/991 -- URI:http://test/992 -- URI:http://test/993 -- URI:http://test/994 -- URI:http://test/995 -- URI:http://test/996 -- URI:http://test/997 -- URI:http://test/998 -- URI:http://test/999 -- URI:http://test/1000 -- URI:http://test/1001 -- URI:http://test/1002 -- URI:http://test/1003 -- URI:http://test/1004 -- URI:http://test/1005 -- URI:http://test/1006 -- URI:http://test/1007 -- URI:http://test/1008 -- URI:http://test/1009 -- URI:http://test/1010 -- URI:http://test/1011 -- URI:http://test/1012 -- URI:http://test/1013 -- URI:http://test/1014 -- URI:http://test/1015 -- URI:http://test/1016 -- URI:http://test/1017 -- URI:http://test/1018 -- URI:http://test/1019 -- URI:http://test/1020 -- URI:http://test/1021 -- URI:http://test/1022 -- URI:http://test/1023 -- URI:http://test/1024 -- Excluded: -- DNS:x0.test -- DNS:x1.test -- DNS:x2.test -- DNS:x3.test -- DNS:x4.test -- DNS:x5.test -- DNS:x6.test -- DNS:x7.test -- DNS:x8.test -- DNS:x9.test -- DNS:x10.test -- DNS:x11.test -- DNS:x12.test -- DNS:x13.test -- DNS:x14.test -- DNS:x15.test -- DNS:x16.test -- DNS:x17.test -- DNS:x18.test -- DNS:x19.test -- DNS:x20.test -- DNS:x21.test -- DNS:x22.test -- DNS:x23.test -- DNS:x24.test -- DNS:x25.test -- DNS:x26.test -- DNS:x27.test -- DNS:x28.test -- DNS:x29.test -- DNS:x30.test -- DNS:x31.test -- DNS:x32.test -- DNS:x33.test -- DNS:x34.test -- DNS:x35.test -- DNS:x36.test -- DNS:x37.test -- DNS:x38.test -- DNS:x39.test -- DNS:x40.test -- DNS:x41.test -- DNS:x42.test -- DNS:x43.test -- DNS:x44.test -- DNS:x45.test -- DNS:x46.test -- DNS:x47.test -- DNS:x48.test -- DNS:x49.test -- DNS:x50.test -- DNS:x51.test -- DNS:x52.test -- DNS:x53.test -- DNS:x54.test -- DNS:x55.test -- DNS:x56.test -- DNS:x57.test -- DNS:x58.test -- DNS:x59.test -- DNS:x60.test -- DNS:x61.test -- DNS:x62.test -- DNS:x63.test -- DNS:x64.test -- DNS:x65.test -- DNS:x66.test -- DNS:x67.test -- DNS:x68.test -- DNS:x69.test -- DNS:x70.test -- DNS:x71.test -- DNS:x72.test -- DNS:x73.test -- DNS:x74.test -- DNS:x75.test -- DNS:x76.test -- DNS:x77.test -- DNS:x78.test -- DNS:x79.test -- DNS:x80.test -- DNS:x81.test -- DNS:x82.test -- DNS:x83.test -- DNS:x84.test -- DNS:x85.test -- DNS:x86.test -- DNS:x87.test -- DNS:x88.test -- DNS:x89.test -- DNS:x90.test -- DNS:x91.test -- DNS:x92.test -- DNS:x93.test -- DNS:x94.test -- DNS:x95.test -- DNS:x96.test -- DNS:x97.test -- DNS:x98.test -- DNS:x99.test -- DNS:x100.test -- DNS:x101.test -- DNS:x102.test -- DNS:x103.test -- DNS:x104.test -- DNS:x105.test -- DNS:x106.test -- DNS:x107.test -- DNS:x108.test -- DNS:x109.test -- DNS:x110.test -- DNS:x111.test -- DNS:x112.test -- DNS:x113.test -- DNS:x114.test -- DNS:x115.test -- DNS:x116.test -- DNS:x117.test -- DNS:x118.test -- DNS:x119.test -- DNS:x120.test -- DNS:x121.test -- DNS:x122.test -- DNS:x123.test -- DNS:x124.test -- DNS:x125.test -- DNS:x126.test -- DNS:x127.test -- DNS:x128.test -- DNS:x129.test -- DNS:x130.test -- DNS:x131.test -- DNS:x132.test -- DNS:x133.test -- DNS:x134.test -- DNS:x135.test -- DNS:x136.test -- DNS:x137.test -- DNS:x138.test -- DNS:x139.test -- DNS:x140.test -- DNS:x141.test -- DNS:x142.test -- DNS:x143.test -- DNS:x144.test -- DNS:x145.test -- DNS:x146.test -- DNS:x147.test -- DNS:x148.test -- DNS:x149.test -- DNS:x150.test -- DNS:x151.test -- DNS:x152.test -- DNS:x153.test -- DNS:x154.test -- DNS:x155.test -- DNS:x156.test -- DNS:x157.test -- DNS:x158.test -- DNS:x159.test -- DNS:x160.test -- DNS:x161.test -- DNS:x162.test -- DNS:x163.test -- DNS:x164.test -- DNS:x165.test -- DNS:x166.test -- DNS:x167.test -- DNS:x168.test -- DNS:x169.test -- DNS:x170.test -- DNS:x171.test -- DNS:x172.test -- DNS:x173.test -- DNS:x174.test -- DNS:x175.test -- DNS:x176.test -- DNS:x177.test -- DNS:x178.test -- DNS:x179.test -- DNS:x180.test -- DNS:x181.test -- DNS:x182.test -- DNS:x183.test -- DNS:x184.test -- DNS:x185.test -- DNS:x186.test -- DNS:x187.test -- DNS:x188.test -- DNS:x189.test -- DNS:x190.test -- DNS:x191.test -- DNS:x192.test -- DNS:x193.test -- DNS:x194.test -- DNS:x195.test -- DNS:x196.test -- DNS:x197.test -- DNS:x198.test -- DNS:x199.test -- DNS:x200.test -- DNS:x201.test -- DNS:x202.test -- DNS:x203.test -- DNS:x204.test -- DNS:x205.test -- DNS:x206.test -- DNS:x207.test -- DNS:x208.test -- DNS:x209.test -- DNS:x210.test -- DNS:x211.test -- DNS:x212.test -- DNS:x213.test -- DNS:x214.test -- DNS:x215.test -- DNS:x216.test -- DNS:x217.test -- DNS:x218.test -- DNS:x219.test -- DNS:x220.test -- DNS:x221.test -- DNS:x222.test -- DNS:x223.test -- DNS:x224.test -- DNS:x225.test -- DNS:x226.test -- DNS:x227.test -- DNS:x228.test -- DNS:x229.test -- DNS:x230.test -- DNS:x231.test -- DNS:x232.test -- DNS:x233.test -- DNS:x234.test -- DNS:x235.test -- DNS:x236.test -- DNS:x237.test -- DNS:x238.test -- DNS:x239.test -- DNS:x240.test -- DNS:x241.test -- DNS:x242.test -- DNS:x243.test -- DNS:x244.test -- DNS:x245.test -- DNS:x246.test -- DNS:x247.test -- DNS:x248.test -- DNS:x249.test -- DNS:x250.test -- DNS:x251.test -- DNS:x252.test -- DNS:x253.test -- DNS:x254.test -- DNS:x255.test -- DNS:x256.test -- DNS:x257.test -- DNS:x258.test -- DNS:x259.test -- DNS:x260.test -- DNS:x261.test -- DNS:x262.test -- DNS:x263.test -- DNS:x264.test -- DNS:x265.test -- DNS:x266.test -- DNS:x267.test -- DNS:x268.test -- DNS:x269.test -- DNS:x270.test -- DNS:x271.test -- DNS:x272.test -- DNS:x273.test -- DNS:x274.test -- DNS:x275.test -- DNS:x276.test -- DNS:x277.test -- DNS:x278.test -- DNS:x279.test -- DNS:x280.test -- DNS:x281.test -- DNS:x282.test -- DNS:x283.test -- DNS:x284.test -- DNS:x285.test -- DNS:x286.test -- DNS:x287.test -- DNS:x288.test -- DNS:x289.test -- DNS:x290.test -- DNS:x291.test -- DNS:x292.test -- DNS:x293.test -- DNS:x294.test -- DNS:x295.test -- DNS:x296.test -- DNS:x297.test -- DNS:x298.test -- DNS:x299.test -- DNS:x300.test -- DNS:x301.test -- DNS:x302.test -- DNS:x303.test -- DNS:x304.test -- DNS:x305.test -- DNS:x306.test -- DNS:x307.test -- DNS:x308.test -- DNS:x309.test -- DNS:x310.test -- DNS:x311.test -- DNS:x312.test -- DNS:x313.test -- DNS:x314.test -- DNS:x315.test -- DNS:x316.test -- DNS:x317.test -- DNS:x318.test -- DNS:x319.test -- DNS:x320.test -- DNS:x321.test -- DNS:x322.test -- DNS:x323.test -- DNS:x324.test -- DNS:x325.test -- DNS:x326.test -- DNS:x327.test -- DNS:x328.test -- DNS:x329.test -- DNS:x330.test -- DNS:x331.test -- DNS:x332.test -- DNS:x333.test -- DNS:x334.test -- DNS:x335.test -- DNS:x336.test -- DNS:x337.test -- DNS:x338.test -- DNS:x339.test -- DNS:x340.test -- DNS:x341.test -- DNS:x342.test -- DNS:x343.test -- DNS:x344.test -- DNS:x345.test -- DNS:x346.test -- DNS:x347.test -- DNS:x348.test -- DNS:x349.test -- DNS:x350.test -- DNS:x351.test -- DNS:x352.test -- DNS:x353.test -- DNS:x354.test -- DNS:x355.test -- DNS:x356.test -- DNS:x357.test -- DNS:x358.test -- DNS:x359.test -- DNS:x360.test -- DNS:x361.test -- DNS:x362.test -- DNS:x363.test -- DNS:x364.test -- DNS:x365.test -- DNS:x366.test -- DNS:x367.test -- DNS:x368.test -- DNS:x369.test -- DNS:x370.test -- DNS:x371.test -- DNS:x372.test -- DNS:x373.test -- DNS:x374.test -- DNS:x375.test -- DNS:x376.test -- DNS:x377.test -- DNS:x378.test -- DNS:x379.test -- DNS:x380.test -- DNS:x381.test -- DNS:x382.test -- DNS:x383.test -- DNS:x384.test -- DNS:x385.test -- DNS:x386.test -- DNS:x387.test -- DNS:x388.test -- DNS:x389.test -- DNS:x390.test -- DNS:x391.test -- DNS:x392.test -- DNS:x393.test -- DNS:x394.test -- DNS:x395.test -- DNS:x396.test -- DNS:x397.test -- DNS:x398.test -- DNS:x399.test -- DNS:x400.test -- DNS:x401.test -- DNS:x402.test -- DNS:x403.test -- DNS:x404.test -- DNS:x405.test -- DNS:x406.test -- DNS:x407.test -- DNS:x408.test -- DNS:x409.test -- DNS:x410.test -- DNS:x411.test -- DNS:x412.test -- DNS:x413.test -- DNS:x414.test -- DNS:x415.test -- DNS:x416.test -- DNS:x417.test -- DNS:x418.test -- DNS:x419.test -- DNS:x420.test -- DNS:x421.test -- DNS:x422.test -- DNS:x423.test -- DNS:x424.test -- DNS:x425.test -- DNS:x426.test -- DNS:x427.test -- DNS:x428.test -- DNS:x429.test -- DNS:x430.test -- DNS:x431.test -- DNS:x432.test -- DNS:x433.test -- DNS:x434.test -- DNS:x435.test -- DNS:x436.test -- DNS:x437.test -- DNS:x438.test -- DNS:x439.test -- DNS:x440.test -- DNS:x441.test -- DNS:x442.test -- DNS:x443.test -- DNS:x444.test -- DNS:x445.test -- DNS:x446.test -- DNS:x447.test -- DNS:x448.test -- DNS:x449.test -- DNS:x450.test -- DNS:x451.test -- DNS:x452.test -- DNS:x453.test -- DNS:x454.test -- DNS:x455.test -- DNS:x456.test -- DNS:x457.test -- DNS:x458.test -- DNS:x459.test -- DNS:x460.test -- DNS:x461.test -- DNS:x462.test -- DNS:x463.test -- DNS:x464.test -- DNS:x465.test -- DNS:x466.test -- DNS:x467.test -- DNS:x468.test -- DNS:x469.test -- DNS:x470.test -- DNS:x471.test -- DNS:x472.test -- DNS:x473.test -- DNS:x474.test -- DNS:x475.test -- DNS:x476.test -- DNS:x477.test -- DNS:x478.test -- DNS:x479.test -- DNS:x480.test -- DNS:x481.test -- DNS:x482.test -- DNS:x483.test -- DNS:x484.test -- DNS:x485.test -- DNS:x486.test -- DNS:x487.test -- DNS:x488.test -- DNS:x489.test -- DNS:x490.test -- DNS:x491.test -- DNS:x492.test -- DNS:x493.test -- DNS:x494.test -- DNS:x495.test -- DNS:x496.test -- DNS:x497.test -- DNS:x498.test -- DNS:x499.test -- DNS:x500.test -- DNS:x501.test -- DNS:x502.test -- DNS:x503.test -- DNS:x504.test -- DNS:x505.test -- DNS:x506.test -- DNS:x507.test -- DNS:x508.test -- DNS:x509.test -- DNS:x510.test -- DNS:x511.test -- DNS:x512.test -- DNS:x513.test -- DNS:x514.test -- DNS:x515.test -- DNS:x516.test -- DNS:x517.test -- DNS:x518.test -- DNS:x519.test -- DNS:x520.test -- DNS:x521.test -- DNS:x522.test -- DNS:x523.test -- DNS:x524.test -- DNS:x525.test -- DNS:x526.test -- DNS:x527.test -- DNS:x528.test -- DNS:x529.test -- DNS:x530.test -- DNS:x531.test -- DNS:x532.test -- DNS:x533.test -- DNS:x534.test -- DNS:x535.test -- DNS:x536.test -- DNS:x537.test -- DNS:x538.test -- DNS:x539.test -- DNS:x540.test -- DNS:x541.test -- DNS:x542.test -- DNS:x543.test -- DNS:x544.test -- DNS:x545.test -- DNS:x546.test -- DNS:x547.test -- DNS:x548.test -- DNS:x549.test -- DNS:x550.test -- DNS:x551.test -- DNS:x552.test -- DNS:x553.test -- DNS:x554.test -- DNS:x555.test -- DNS:x556.test -- DNS:x557.test -- DNS:x558.test -- DNS:x559.test -- DNS:x560.test -- DNS:x561.test -- DNS:x562.test -- DNS:x563.test -- DNS:x564.test -- DNS:x565.test -- DNS:x566.test -- DNS:x567.test -- DNS:x568.test -- DNS:x569.test -- DNS:x570.test -- DNS:x571.test -- DNS:x572.test -- DNS:x573.test -- DNS:x574.test -- DNS:x575.test -- DNS:x576.test -- DNS:x577.test -- DNS:x578.test -- DNS:x579.test -- DNS:x580.test -- DNS:x581.test -- DNS:x582.test -- DNS:x583.test -- DNS:x584.test -- DNS:x585.test -- DNS:x586.test -- DNS:x587.test -- DNS:x588.test -- DNS:x589.test -- DNS:x590.test -- DNS:x591.test -- DNS:x592.test -- DNS:x593.test -- DNS:x594.test -- DNS:x595.test -- DNS:x596.test -- DNS:x597.test -- DNS:x598.test -- DNS:x599.test -- DNS:x600.test -- DNS:x601.test -- DNS:x602.test -- DNS:x603.test -- DNS:x604.test -- DNS:x605.test -- DNS:x606.test -- DNS:x607.test -- DNS:x608.test -- DNS:x609.test -- DNS:x610.test -- DNS:x611.test -- DNS:x612.test -- DNS:x613.test -- DNS:x614.test -- DNS:x615.test -- DNS:x616.test -- DNS:x617.test -- DNS:x618.test -- DNS:x619.test -- DNS:x620.test -- DNS:x621.test -- DNS:x622.test -- DNS:x623.test -- DNS:x624.test -- DNS:x625.test -- DNS:x626.test -- DNS:x627.test -- DNS:x628.test -- DNS:x629.test -- DNS:x630.test -- DNS:x631.test -- DNS:x632.test -- DNS:x633.test -- DNS:x634.test -- DNS:x635.test -- DNS:x636.test -- DNS:x637.test -- DNS:x638.test -- DNS:x639.test -- DNS:x640.test -- DNS:x641.test -- DNS:x642.test -- DNS:x643.test -- DNS:x644.test -- DNS:x645.test -- DNS:x646.test -- DNS:x647.test -- DNS:x648.test -- DNS:x649.test -- DNS:x650.test -- DNS:x651.test -- DNS:x652.test -- DNS:x653.test -- DNS:x654.test -- DNS:x655.test -- DNS:x656.test -- DNS:x657.test -- DNS:x658.test -- DNS:x659.test -- DNS:x660.test -- DNS:x661.test -- DNS:x662.test -- DNS:x663.test -- DNS:x664.test -- DNS:x665.test -- DNS:x666.test -- DNS:x667.test -- DNS:x668.test -- DNS:x669.test -- DNS:x670.test -- DNS:x671.test -- DNS:x672.test -- DNS:x673.test -- DNS:x674.test -- DNS:x675.test -- DNS:x676.test -- DNS:x677.test -- DNS:x678.test -- DNS:x679.test -- DNS:x680.test -- DNS:x681.test -- DNS:x682.test -- DNS:x683.test -- DNS:x684.test -- DNS:x685.test -- DNS:x686.test -- DNS:x687.test -- DNS:x688.test -- DNS:x689.test -- DNS:x690.test -- DNS:x691.test -- DNS:x692.test -- DNS:x693.test -- DNS:x694.test -- DNS:x695.test -- DNS:x696.test -- DNS:x697.test -- DNS:x698.test -- DNS:x699.test -- DNS:x700.test -- DNS:x701.test -- DNS:x702.test -- DNS:x703.test -- DNS:x704.test -- DNS:x705.test -- DNS:x706.test -- DNS:x707.test -- DNS:x708.test -- DNS:x709.test -- DNS:x710.test -- DNS:x711.test -- DNS:x712.test -- DNS:x713.test -- DNS:x714.test -- DNS:x715.test -- DNS:x716.test -- DNS:x717.test -- DNS:x718.test -- DNS:x719.test -- DNS:x720.test -- DNS:x721.test -- DNS:x722.test -- DNS:x723.test -- DNS:x724.test -- DNS:x725.test -- DNS:x726.test -- DNS:x727.test -- DNS:x728.test -- DNS:x729.test -- DNS:x730.test -- DNS:x731.test -- DNS:x732.test -- DNS:x733.test -- DNS:x734.test -- DNS:x735.test -- DNS:x736.test -- DNS:x737.test -- DNS:x738.test -- DNS:x739.test -- DNS:x740.test -- DNS:x741.test -- DNS:x742.test -- DNS:x743.test -- DNS:x744.test -- DNS:x745.test -- DNS:x746.test -- DNS:x747.test -- DNS:x748.test -- DNS:x749.test -- DNS:x750.test -- DNS:x751.test -- DNS:x752.test -- DNS:x753.test -- DNS:x754.test -- DNS:x755.test -- DNS:x756.test -- DNS:x757.test -- DNS:x758.test -- DNS:x759.test -- DNS:x760.test -- DNS:x761.test -- DNS:x762.test -- DNS:x763.test -- DNS:x764.test -- DNS:x765.test -- DNS:x766.test -- DNS:x767.test -- DNS:x768.test -- DNS:x769.test -- DNS:x770.test -- DNS:x771.test -- DNS:x772.test -- DNS:x773.test -- DNS:x774.test -- DNS:x775.test -- DNS:x776.test -- DNS:x777.test -- DNS:x778.test -- DNS:x779.test -- DNS:x780.test -- DNS:x781.test -- DNS:x782.test -- DNS:x783.test -- DNS:x784.test -- DNS:x785.test -- DNS:x786.test -- DNS:x787.test -- DNS:x788.test -- DNS:x789.test -- DNS:x790.test -- DNS:x791.test -- DNS:x792.test -- DNS:x793.test -- DNS:x794.test -- DNS:x795.test -- DNS:x796.test -- DNS:x797.test -- DNS:x798.test -- DNS:x799.test -- DNS:x800.test -- DNS:x801.test -- DNS:x802.test -- DNS:x803.test -- DNS:x804.test -- DNS:x805.test -- DNS:x806.test -- DNS:x807.test -- DNS:x808.test -- DNS:x809.test -- DNS:x810.test -- DNS:x811.test -- DNS:x812.test -- DNS:x813.test -- DNS:x814.test -- DNS:x815.test -- DNS:x816.test -- DNS:x817.test -- DNS:x818.test -- DNS:x819.test -- DNS:x820.test -- DNS:x821.test -- DNS:x822.test -- DNS:x823.test -- DNS:x824.test -- DNS:x825.test -- DNS:x826.test -- DNS:x827.test -- DNS:x828.test -- DNS:x829.test -- DNS:x830.test -- DNS:x831.test -- DNS:x832.test -- DNS:x833.test -- DNS:x834.test -- DNS:x835.test -- DNS:x836.test -- DNS:x837.test -- DNS:x838.test -- DNS:x839.test -- DNS:x840.test -- DNS:x841.test -- DNS:x842.test -- DNS:x843.test -- DNS:x844.test -- DNS:x845.test -- DNS:x846.test -- DNS:x847.test -- DNS:x848.test -- DNS:x849.test -- DNS:x850.test -- DNS:x851.test -- DNS:x852.test -- DNS:x853.test -- DNS:x854.test -- DNS:x855.test -- DNS:x856.test -- DNS:x857.test -- DNS:x858.test -- DNS:x859.test -- DNS:x860.test -- DNS:x861.test -- DNS:x862.test -- DNS:x863.test -- DNS:x864.test -- DNS:x865.test -- DNS:x866.test -- DNS:x867.test -- DNS:x868.test -- DNS:x869.test -- DNS:x870.test -- DNS:x871.test -- DNS:x872.test -- DNS:x873.test -- DNS:x874.test -- DNS:x875.test -- DNS:x876.test -- DNS:x877.test -- DNS:x878.test -- DNS:x879.test -- DNS:x880.test -- DNS:x881.test -- DNS:x882.test -- DNS:x883.test -- DNS:x884.test -- DNS:x885.test -- DNS:x886.test -- DNS:x887.test -- DNS:x888.test -- DNS:x889.test -- DNS:x890.test -- DNS:x891.test -- DNS:x892.test -- DNS:x893.test -- DNS:x894.test -- DNS:x895.test -- DNS:x896.test -- DNS:x897.test -- DNS:x898.test -- DNS:x899.test -- DNS:x900.test -- DNS:x901.test -- DNS:x902.test -- DNS:x903.test -- DNS:x904.test -- DNS:x905.test -- DNS:x906.test -- DNS:x907.test -- DNS:x908.test -- DNS:x909.test -- DNS:x910.test -- DNS:x911.test -- DNS:x912.test -- DNS:x913.test -- DNS:x914.test -- DNS:x915.test -- DNS:x916.test -- DNS:x917.test -- DNS:x918.test -- DNS:x919.test -- DNS:x920.test -- DNS:x921.test -- DNS:x922.test -- DNS:x923.test -- DNS:x924.test -- DNS:x925.test -- DNS:x926.test -- DNS:x927.test -- DNS:x928.test -- DNS:x929.test -- DNS:x930.test -- DNS:x931.test -- DNS:x932.test -- DNS:x933.test -- DNS:x934.test -- DNS:x935.test -- DNS:x936.test -- DNS:x937.test -- DNS:x938.test -- DNS:x939.test -- DNS:x940.test -- DNS:x941.test -- DNS:x942.test -- DNS:x943.test -- DNS:x944.test -- DNS:x945.test -- DNS:x946.test -- DNS:x947.test -- DNS:x948.test -- DNS:x949.test -- DNS:x950.test -- DNS:x951.test -- DNS:x952.test -- DNS:x953.test -- DNS:x954.test -- DNS:x955.test -- DNS:x956.test -- DNS:x957.test -- DNS:x958.test -- DNS:x959.test -- DNS:x960.test -- DNS:x961.test -- DNS:x962.test -- DNS:x963.test -- DNS:x964.test -- DNS:x965.test -- DNS:x966.test -- DNS:x967.test -- DNS:x968.test -- DNS:x969.test -- DNS:x970.test -- DNS:x971.test -- DNS:x972.test -- DNS:x973.test -- DNS:x974.test -- DNS:x975.test -- DNS:x976.test -- DNS:x977.test -- DNS:x978.test -- DNS:x979.test -- DNS:x980.test -- DNS:x981.test -- DNS:x982.test -- DNS:x983.test -- DNS:x984.test -- DNS:x985.test -- DNS:x986.test -- DNS:x987.test -- DNS:x988.test -- DNS:x989.test -- DNS:x990.test -- DNS:x991.test -- DNS:x992.test -- DNS:x993.test -- DNS:x994.test -- DNS:x995.test -- DNS:x996.test -- DNS:x997.test -- DNS:x998.test -- DNS:x999.test -- DNS:x1000.test -- DNS:x1001.test -- DNS:x1002.test -- DNS:x1003.test -- DNS:x1004.test -- DNS:x1005.test -- DNS:x1006.test -- DNS:x1007.test -- DNS:x1008.test -- DNS:x1009.test -- DNS:x1010.test -- DNS:x1011.test -- DNS:x1012.test -- DNS:x1013.test -- DNS:x1014.test -- DNS:x1015.test -- DNS:x1016.test -- DNS:x1017.test -- DNS:x1018.test -- DNS:x1019.test -- DNS:x1020.test -- DNS:x1021.test -- DNS:x1022.test -- DNS:x1023.test -- DNS:x1024.test -- IP:11.0.0.0/255.255.255.255 -- IP:11.0.0.1/255.255.255.255 -- IP:11.0.0.2/255.255.255.255 -- IP:11.0.0.3/255.255.255.255 -- IP:11.0.0.4/255.255.255.255 -- IP:11.0.0.5/255.255.255.255 -- IP:11.0.0.6/255.255.255.255 -- IP:11.0.0.7/255.255.255.255 -- IP:11.0.0.8/255.255.255.255 -- IP:11.0.0.9/255.255.255.255 -- IP:11.0.0.10/255.255.255.255 -- IP:11.0.0.11/255.255.255.255 -- IP:11.0.0.12/255.255.255.255 -- IP:11.0.0.13/255.255.255.255 -- IP:11.0.0.14/255.255.255.255 -- IP:11.0.0.15/255.255.255.255 -- IP:11.0.0.16/255.255.255.255 -- IP:11.0.0.17/255.255.255.255 -- IP:11.0.0.18/255.255.255.255 -- IP:11.0.0.19/255.255.255.255 -- IP:11.0.0.20/255.255.255.255 -- IP:11.0.0.21/255.255.255.255 -- IP:11.0.0.22/255.255.255.255 -- IP:11.0.0.23/255.255.255.255 -- IP:11.0.0.24/255.255.255.255 -- IP:11.0.0.25/255.255.255.255 -- IP:11.0.0.26/255.255.255.255 -- IP:11.0.0.27/255.255.255.255 -- IP:11.0.0.28/255.255.255.255 -- IP:11.0.0.29/255.255.255.255 -- IP:11.0.0.30/255.255.255.255 -- IP:11.0.0.31/255.255.255.255 -- IP:11.0.0.32/255.255.255.255 -- IP:11.0.0.33/255.255.255.255 -- IP:11.0.0.34/255.255.255.255 -- IP:11.0.0.35/255.255.255.255 -- IP:11.0.0.36/255.255.255.255 -- IP:11.0.0.37/255.255.255.255 -- IP:11.0.0.38/255.255.255.255 -- IP:11.0.0.39/255.255.255.255 -- IP:11.0.0.40/255.255.255.255 -- IP:11.0.0.41/255.255.255.255 -- IP:11.0.0.42/255.255.255.255 -- IP:11.0.0.43/255.255.255.255 -- IP:11.0.0.44/255.255.255.255 -- IP:11.0.0.45/255.255.255.255 -- IP:11.0.0.46/255.255.255.255 -- IP:11.0.0.47/255.255.255.255 -- IP:11.0.0.48/255.255.255.255 -- IP:11.0.0.49/255.255.255.255 -- IP:11.0.0.50/255.255.255.255 -- IP:11.0.0.51/255.255.255.255 -- IP:11.0.0.52/255.255.255.255 -- IP:11.0.0.53/255.255.255.255 -- IP:11.0.0.54/255.255.255.255 -- IP:11.0.0.55/255.255.255.255 -- IP:11.0.0.56/255.255.255.255 -- IP:11.0.0.57/255.255.255.255 -- IP:11.0.0.58/255.255.255.255 -- IP:11.0.0.59/255.255.255.255 -- IP:11.0.0.60/255.255.255.255 -- IP:11.0.0.61/255.255.255.255 -- IP:11.0.0.62/255.255.255.255 -- IP:11.0.0.63/255.255.255.255 -- IP:11.0.0.64/255.255.255.255 -- IP:11.0.0.65/255.255.255.255 -- IP:11.0.0.66/255.255.255.255 -- IP:11.0.0.67/255.255.255.255 -- IP:11.0.0.68/255.255.255.255 -- IP:11.0.0.69/255.255.255.255 -- IP:11.0.0.70/255.255.255.255 -- IP:11.0.0.71/255.255.255.255 -- IP:11.0.0.72/255.255.255.255 -- IP:11.0.0.73/255.255.255.255 -- IP:11.0.0.74/255.255.255.255 -- IP:11.0.0.75/255.255.255.255 -- IP:11.0.0.76/255.255.255.255 -- IP:11.0.0.77/255.255.255.255 -- IP:11.0.0.78/255.255.255.255 -- IP:11.0.0.79/255.255.255.255 -- IP:11.0.0.80/255.255.255.255 -- IP:11.0.0.81/255.255.255.255 -- IP:11.0.0.82/255.255.255.255 -- IP:11.0.0.83/255.255.255.255 -- IP:11.0.0.84/255.255.255.255 -- IP:11.0.0.85/255.255.255.255 -- IP:11.0.0.86/255.255.255.255 -- IP:11.0.0.87/255.255.255.255 -- IP:11.0.0.88/255.255.255.255 -- IP:11.0.0.89/255.255.255.255 -- IP:11.0.0.90/255.255.255.255 -- IP:11.0.0.91/255.255.255.255 -- IP:11.0.0.92/255.255.255.255 -- IP:11.0.0.93/255.255.255.255 -- IP:11.0.0.94/255.255.255.255 -- IP:11.0.0.95/255.255.255.255 -- IP:11.0.0.96/255.255.255.255 -- IP:11.0.0.97/255.255.255.255 -- IP:11.0.0.98/255.255.255.255 -- IP:11.0.0.99/255.255.255.255 -- IP:11.0.0.100/255.255.255.255 -- IP:11.0.0.101/255.255.255.255 -- IP:11.0.0.102/255.255.255.255 -- IP:11.0.0.103/255.255.255.255 -- IP:11.0.0.104/255.255.255.255 -- IP:11.0.0.105/255.255.255.255 -- IP:11.0.0.106/255.255.255.255 -- IP:11.0.0.107/255.255.255.255 -- IP:11.0.0.108/255.255.255.255 -- IP:11.0.0.109/255.255.255.255 -- IP:11.0.0.110/255.255.255.255 -- IP:11.0.0.111/255.255.255.255 -- IP:11.0.0.112/255.255.255.255 -- IP:11.0.0.113/255.255.255.255 -- IP:11.0.0.114/255.255.255.255 -- IP:11.0.0.115/255.255.255.255 -- IP:11.0.0.116/255.255.255.255 -- IP:11.0.0.117/255.255.255.255 -- IP:11.0.0.118/255.255.255.255 -- IP:11.0.0.119/255.255.255.255 -- IP:11.0.0.120/255.255.255.255 -- IP:11.0.0.121/255.255.255.255 -- IP:11.0.0.122/255.255.255.255 -- IP:11.0.0.123/255.255.255.255 -- IP:11.0.0.124/255.255.255.255 -- IP:11.0.0.125/255.255.255.255 -- IP:11.0.0.126/255.255.255.255 -- IP:11.0.0.127/255.255.255.255 -- IP:11.0.0.128/255.255.255.255 -- IP:11.0.0.129/255.255.255.255 -- IP:11.0.0.130/255.255.255.255 -- IP:11.0.0.131/255.255.255.255 -- IP:11.0.0.132/255.255.255.255 -- IP:11.0.0.133/255.255.255.255 -- IP:11.0.0.134/255.255.255.255 -- IP:11.0.0.135/255.255.255.255 -- IP:11.0.0.136/255.255.255.255 -- IP:11.0.0.137/255.255.255.255 -- IP:11.0.0.138/255.255.255.255 -- IP:11.0.0.139/255.255.255.255 -- IP:11.0.0.140/255.255.255.255 -- IP:11.0.0.141/255.255.255.255 -- IP:11.0.0.142/255.255.255.255 -- IP:11.0.0.143/255.255.255.255 -- IP:11.0.0.144/255.255.255.255 -- IP:11.0.0.145/255.255.255.255 -- IP:11.0.0.146/255.255.255.255 -- IP:11.0.0.147/255.255.255.255 -- IP:11.0.0.148/255.255.255.255 -- IP:11.0.0.149/255.255.255.255 -- IP:11.0.0.150/255.255.255.255 -- IP:11.0.0.151/255.255.255.255 -- IP:11.0.0.152/255.255.255.255 -- IP:11.0.0.153/255.255.255.255 -- IP:11.0.0.154/255.255.255.255 -- IP:11.0.0.155/255.255.255.255 -- IP:11.0.0.156/255.255.255.255 -- IP:11.0.0.157/255.255.255.255 -- IP:11.0.0.158/255.255.255.255 -- IP:11.0.0.159/255.255.255.255 -- IP:11.0.0.160/255.255.255.255 -- IP:11.0.0.161/255.255.255.255 -- IP:11.0.0.162/255.255.255.255 -- IP:11.0.0.163/255.255.255.255 -- IP:11.0.0.164/255.255.255.255 -- IP:11.0.0.165/255.255.255.255 -- IP:11.0.0.166/255.255.255.255 -- IP:11.0.0.167/255.255.255.255 -- IP:11.0.0.168/255.255.255.255 -- IP:11.0.0.169/255.255.255.255 -- IP:11.0.0.170/255.255.255.255 -- IP:11.0.0.171/255.255.255.255 -- IP:11.0.0.172/255.255.255.255 -- IP:11.0.0.173/255.255.255.255 -- IP:11.0.0.174/255.255.255.255 -- IP:11.0.0.175/255.255.255.255 -- IP:11.0.0.176/255.255.255.255 -- IP:11.0.0.177/255.255.255.255 -- IP:11.0.0.178/255.255.255.255 -- IP:11.0.0.179/255.255.255.255 -- IP:11.0.0.180/255.255.255.255 -- IP:11.0.0.181/255.255.255.255 -- IP:11.0.0.182/255.255.255.255 -- IP:11.0.0.183/255.255.255.255 -- IP:11.0.0.184/255.255.255.255 -- IP:11.0.0.185/255.255.255.255 -- IP:11.0.0.186/255.255.255.255 -- IP:11.0.0.187/255.255.255.255 -- IP:11.0.0.188/255.255.255.255 -- IP:11.0.0.189/255.255.255.255 -- IP:11.0.0.190/255.255.255.255 -- IP:11.0.0.191/255.255.255.255 -- IP:11.0.0.192/255.255.255.255 -- IP:11.0.0.193/255.255.255.255 -- IP:11.0.0.194/255.255.255.255 -- IP:11.0.0.195/255.255.255.255 -- IP:11.0.0.196/255.255.255.255 -- IP:11.0.0.197/255.255.255.255 -- IP:11.0.0.198/255.255.255.255 -- IP:11.0.0.199/255.255.255.255 -- IP:11.0.0.200/255.255.255.255 -- IP:11.0.0.201/255.255.255.255 -- IP:11.0.0.202/255.255.255.255 -- IP:11.0.0.203/255.255.255.255 -- IP:11.0.0.204/255.255.255.255 -- IP:11.0.0.205/255.255.255.255 -- IP:11.0.0.206/255.255.255.255 -- IP:11.0.0.207/255.255.255.255 -- IP:11.0.0.208/255.255.255.255 -- IP:11.0.0.209/255.255.255.255 -- IP:11.0.0.210/255.255.255.255 -- IP:11.0.0.211/255.255.255.255 -- IP:11.0.0.212/255.255.255.255 -- IP:11.0.0.213/255.255.255.255 -- IP:11.0.0.214/255.255.255.255 -- IP:11.0.0.215/255.255.255.255 -- IP:11.0.0.216/255.255.255.255 -- IP:11.0.0.217/255.255.255.255 -- IP:11.0.0.218/255.255.255.255 -- IP:11.0.0.219/255.255.255.255 -- IP:11.0.0.220/255.255.255.255 -- IP:11.0.0.221/255.255.255.255 -- IP:11.0.0.222/255.255.255.255 -- IP:11.0.0.223/255.255.255.255 -- IP:11.0.0.224/255.255.255.255 -- IP:11.0.0.225/255.255.255.255 -- IP:11.0.0.226/255.255.255.255 -- IP:11.0.0.227/255.255.255.255 -- IP:11.0.0.228/255.255.255.255 -- IP:11.0.0.229/255.255.255.255 -- IP:11.0.0.230/255.255.255.255 -- IP:11.0.0.231/255.255.255.255 -- IP:11.0.0.232/255.255.255.255 -- IP:11.0.0.233/255.255.255.255 -- IP:11.0.0.234/255.255.255.255 -- IP:11.0.0.235/255.255.255.255 -- IP:11.0.0.236/255.255.255.255 -- IP:11.0.0.237/255.255.255.255 -- IP:11.0.0.238/255.255.255.255 -- IP:11.0.0.239/255.255.255.255 -- IP:11.0.0.240/255.255.255.255 -- IP:11.0.0.241/255.255.255.255 -- IP:11.0.0.242/255.255.255.255 -- IP:11.0.0.243/255.255.255.255 -- IP:11.0.0.244/255.255.255.255 -- IP:11.0.0.245/255.255.255.255 -- IP:11.0.0.246/255.255.255.255 -- IP:11.0.0.247/255.255.255.255 -- IP:11.0.0.248/255.255.255.255 -- IP:11.0.0.249/255.255.255.255 -- IP:11.0.0.250/255.255.255.255 -- IP:11.0.0.251/255.255.255.255 -- IP:11.0.0.252/255.255.255.255 -- IP:11.0.0.253/255.255.255.255 -- IP:11.0.0.254/255.255.255.255 -- IP:11.0.0.255/255.255.255.255 -- IP:11.0.1.0/255.255.255.255 -- IP:11.0.1.1/255.255.255.255 -- IP:11.0.1.2/255.255.255.255 -- IP:11.0.1.3/255.255.255.255 -- IP:11.0.1.4/255.255.255.255 -- IP:11.0.1.5/255.255.255.255 -- IP:11.0.1.6/255.255.255.255 -- IP:11.0.1.7/255.255.255.255 -- IP:11.0.1.8/255.255.255.255 -- IP:11.0.1.9/255.255.255.255 -- IP:11.0.1.10/255.255.255.255 -- IP:11.0.1.11/255.255.255.255 -- IP:11.0.1.12/255.255.255.255 -- IP:11.0.1.13/255.255.255.255 -- IP:11.0.1.14/255.255.255.255 -- IP:11.0.1.15/255.255.255.255 -- IP:11.0.1.16/255.255.255.255 -- IP:11.0.1.17/255.255.255.255 -- IP:11.0.1.18/255.255.255.255 -- IP:11.0.1.19/255.255.255.255 -- IP:11.0.1.20/255.255.255.255 -- IP:11.0.1.21/255.255.255.255 -- IP:11.0.1.22/255.255.255.255 -- IP:11.0.1.23/255.255.255.255 -- IP:11.0.1.24/255.255.255.255 -- IP:11.0.1.25/255.255.255.255 -- IP:11.0.1.26/255.255.255.255 -- IP:11.0.1.27/255.255.255.255 -- IP:11.0.1.28/255.255.255.255 -- IP:11.0.1.29/255.255.255.255 -- IP:11.0.1.30/255.255.255.255 -- IP:11.0.1.31/255.255.255.255 -- IP:11.0.1.32/255.255.255.255 -- IP:11.0.1.33/255.255.255.255 -- IP:11.0.1.34/255.255.255.255 -- IP:11.0.1.35/255.255.255.255 -- IP:11.0.1.36/255.255.255.255 -- IP:11.0.1.37/255.255.255.255 -- IP:11.0.1.38/255.255.255.255 -- IP:11.0.1.39/255.255.255.255 -- IP:11.0.1.40/255.255.255.255 -- IP:11.0.1.41/255.255.255.255 -- IP:11.0.1.42/255.255.255.255 -- IP:11.0.1.43/255.255.255.255 -- IP:11.0.1.44/255.255.255.255 -- IP:11.0.1.45/255.255.255.255 -- IP:11.0.1.46/255.255.255.255 -- IP:11.0.1.47/255.255.255.255 -- IP:11.0.1.48/255.255.255.255 -- IP:11.0.1.49/255.255.255.255 -- IP:11.0.1.50/255.255.255.255 -- IP:11.0.1.51/255.255.255.255 -- IP:11.0.1.52/255.255.255.255 -- IP:11.0.1.53/255.255.255.255 -- IP:11.0.1.54/255.255.255.255 -- IP:11.0.1.55/255.255.255.255 -- IP:11.0.1.56/255.255.255.255 -- IP:11.0.1.57/255.255.255.255 -- IP:11.0.1.58/255.255.255.255 -- IP:11.0.1.59/255.255.255.255 -- IP:11.0.1.60/255.255.255.255 -- IP:11.0.1.61/255.255.255.255 -- IP:11.0.1.62/255.255.255.255 -- IP:11.0.1.63/255.255.255.255 -- IP:11.0.1.64/255.255.255.255 -- IP:11.0.1.65/255.255.255.255 -- IP:11.0.1.66/255.255.255.255 -- IP:11.0.1.67/255.255.255.255 -- IP:11.0.1.68/255.255.255.255 -- IP:11.0.1.69/255.255.255.255 -- IP:11.0.1.70/255.255.255.255 -- IP:11.0.1.71/255.255.255.255 -- IP:11.0.1.72/255.255.255.255 -- IP:11.0.1.73/255.255.255.255 -- IP:11.0.1.74/255.255.255.255 -- IP:11.0.1.75/255.255.255.255 -- IP:11.0.1.76/255.255.255.255 -- IP:11.0.1.77/255.255.255.255 -- IP:11.0.1.78/255.255.255.255 -- IP:11.0.1.79/255.255.255.255 -- IP:11.0.1.80/255.255.255.255 -- IP:11.0.1.81/255.255.255.255 -- IP:11.0.1.82/255.255.255.255 -- IP:11.0.1.83/255.255.255.255 -- IP:11.0.1.84/255.255.255.255 -- IP:11.0.1.85/255.255.255.255 -- IP:11.0.1.86/255.255.255.255 -- IP:11.0.1.87/255.255.255.255 -- IP:11.0.1.88/255.255.255.255 -- IP:11.0.1.89/255.255.255.255 -- IP:11.0.1.90/255.255.255.255 -- IP:11.0.1.91/255.255.255.255 -- IP:11.0.1.92/255.255.255.255 -- IP:11.0.1.93/255.255.255.255 -- IP:11.0.1.94/255.255.255.255 -- IP:11.0.1.95/255.255.255.255 -- IP:11.0.1.96/255.255.255.255 -- IP:11.0.1.97/255.255.255.255 -- IP:11.0.1.98/255.255.255.255 -- IP:11.0.1.99/255.255.255.255 -- IP:11.0.1.100/255.255.255.255 -- IP:11.0.1.101/255.255.255.255 -- IP:11.0.1.102/255.255.255.255 -- IP:11.0.1.103/255.255.255.255 -- IP:11.0.1.104/255.255.255.255 -- IP:11.0.1.105/255.255.255.255 -- IP:11.0.1.106/255.255.255.255 -- IP:11.0.1.107/255.255.255.255 -- IP:11.0.1.108/255.255.255.255 -- IP:11.0.1.109/255.255.255.255 -- IP:11.0.1.110/255.255.255.255 -- IP:11.0.1.111/255.255.255.255 -- IP:11.0.1.112/255.255.255.255 -- IP:11.0.1.113/255.255.255.255 -- IP:11.0.1.114/255.255.255.255 -- IP:11.0.1.115/255.255.255.255 -- IP:11.0.1.116/255.255.255.255 -- IP:11.0.1.117/255.255.255.255 -- IP:11.0.1.118/255.255.255.255 -- IP:11.0.1.119/255.255.255.255 -- IP:11.0.1.120/255.255.255.255 -- IP:11.0.1.121/255.255.255.255 -- IP:11.0.1.122/255.255.255.255 -- IP:11.0.1.123/255.255.255.255 -- IP:11.0.1.124/255.255.255.255 -- IP:11.0.1.125/255.255.255.255 -- IP:11.0.1.126/255.255.255.255 -- IP:11.0.1.127/255.255.255.255 -- IP:11.0.1.128/255.255.255.255 -- IP:11.0.1.129/255.255.255.255 -- IP:11.0.1.130/255.255.255.255 -- IP:11.0.1.131/255.255.255.255 -- IP:11.0.1.132/255.255.255.255 -- IP:11.0.1.133/255.255.255.255 -- IP:11.0.1.134/255.255.255.255 -- IP:11.0.1.135/255.255.255.255 -- IP:11.0.1.136/255.255.255.255 -- IP:11.0.1.137/255.255.255.255 -- IP:11.0.1.138/255.255.255.255 -- IP:11.0.1.139/255.255.255.255 -- IP:11.0.1.140/255.255.255.255 -- IP:11.0.1.141/255.255.255.255 -- IP:11.0.1.142/255.255.255.255 -- IP:11.0.1.143/255.255.255.255 -- IP:11.0.1.144/255.255.255.255 -- IP:11.0.1.145/255.255.255.255 -- IP:11.0.1.146/255.255.255.255 -- IP:11.0.1.147/255.255.255.255 -- IP:11.0.1.148/255.255.255.255 -- IP:11.0.1.149/255.255.255.255 -- IP:11.0.1.150/255.255.255.255 -- IP:11.0.1.151/255.255.255.255 -- IP:11.0.1.152/255.255.255.255 -- IP:11.0.1.153/255.255.255.255 -- IP:11.0.1.154/255.255.255.255 -- IP:11.0.1.155/255.255.255.255 -- IP:11.0.1.156/255.255.255.255 -- IP:11.0.1.157/255.255.255.255 -- IP:11.0.1.158/255.255.255.255 -- IP:11.0.1.159/255.255.255.255 -- IP:11.0.1.160/255.255.255.255 -- IP:11.0.1.161/255.255.255.255 -- IP:11.0.1.162/255.255.255.255 -- IP:11.0.1.163/255.255.255.255 -- IP:11.0.1.164/255.255.255.255 -- IP:11.0.1.165/255.255.255.255 -- IP:11.0.1.166/255.255.255.255 -- IP:11.0.1.167/255.255.255.255 -- IP:11.0.1.168/255.255.255.255 -- IP:11.0.1.169/255.255.255.255 -- IP:11.0.1.170/255.255.255.255 -- IP:11.0.1.171/255.255.255.255 -- IP:11.0.1.172/255.255.255.255 -- IP:11.0.1.173/255.255.255.255 -- IP:11.0.1.174/255.255.255.255 -- IP:11.0.1.175/255.255.255.255 -- IP:11.0.1.176/255.255.255.255 -- IP:11.0.1.177/255.255.255.255 -- IP:11.0.1.178/255.255.255.255 -- IP:11.0.1.179/255.255.255.255 -- IP:11.0.1.180/255.255.255.255 -- IP:11.0.1.181/255.255.255.255 -- IP:11.0.1.182/255.255.255.255 -- IP:11.0.1.183/255.255.255.255 -- IP:11.0.1.184/255.255.255.255 -- IP:11.0.1.185/255.255.255.255 -- IP:11.0.1.186/255.255.255.255 -- IP:11.0.1.187/255.255.255.255 -- IP:11.0.1.188/255.255.255.255 -- IP:11.0.1.189/255.255.255.255 -- IP:11.0.1.190/255.255.255.255 -- IP:11.0.1.191/255.255.255.255 -- IP:11.0.1.192/255.255.255.255 -- IP:11.0.1.193/255.255.255.255 -- IP:11.0.1.194/255.255.255.255 -- IP:11.0.1.195/255.255.255.255 -- IP:11.0.1.196/255.255.255.255 -- IP:11.0.1.197/255.255.255.255 -- IP:11.0.1.198/255.255.255.255 -- IP:11.0.1.199/255.255.255.255 -- IP:11.0.1.200/255.255.255.255 -- IP:11.0.1.201/255.255.255.255 -- IP:11.0.1.202/255.255.255.255 -- IP:11.0.1.203/255.255.255.255 -- IP:11.0.1.204/255.255.255.255 -- IP:11.0.1.205/255.255.255.255 -- IP:11.0.1.206/255.255.255.255 -- IP:11.0.1.207/255.255.255.255 -- IP:11.0.1.208/255.255.255.255 -- IP:11.0.1.209/255.255.255.255 -- IP:11.0.1.210/255.255.255.255 -- IP:11.0.1.211/255.255.255.255 -- IP:11.0.1.212/255.255.255.255 -- IP:11.0.1.213/255.255.255.255 -- IP:11.0.1.214/255.255.255.255 -- IP:11.0.1.215/255.255.255.255 -- IP:11.0.1.216/255.255.255.255 -- IP:11.0.1.217/255.255.255.255 -- IP:11.0.1.218/255.255.255.255 -- IP:11.0.1.219/255.255.255.255 -- IP:11.0.1.220/255.255.255.255 -- IP:11.0.1.221/255.255.255.255 -- IP:11.0.1.222/255.255.255.255 -- IP:11.0.1.223/255.255.255.255 -- IP:11.0.1.224/255.255.255.255 -- IP:11.0.1.225/255.255.255.255 -- IP:11.0.1.226/255.255.255.255 -- IP:11.0.1.227/255.255.255.255 -- IP:11.0.1.228/255.255.255.255 -- IP:11.0.1.229/255.255.255.255 -- IP:11.0.1.230/255.255.255.255 -- IP:11.0.1.231/255.255.255.255 -- IP:11.0.1.232/255.255.255.255 -- IP:11.0.1.233/255.255.255.255 -- IP:11.0.1.234/255.255.255.255 -- IP:11.0.1.235/255.255.255.255 -- IP:11.0.1.236/255.255.255.255 -- IP:11.0.1.237/255.255.255.255 -- IP:11.0.1.238/255.255.255.255 -- IP:11.0.1.239/255.255.255.255 -- IP:11.0.1.240/255.255.255.255 -- IP:11.0.1.241/255.255.255.255 -- IP:11.0.1.242/255.255.255.255 -- IP:11.0.1.243/255.255.255.255 -- IP:11.0.1.244/255.255.255.255 -- IP:11.0.1.245/255.255.255.255 -- IP:11.0.1.246/255.255.255.255 -- IP:11.0.1.247/255.255.255.255 -- IP:11.0.1.248/255.255.255.255 -- IP:11.0.1.249/255.255.255.255 -- IP:11.0.1.250/255.255.255.255 -- IP:11.0.1.251/255.255.255.255 -- IP:11.0.1.252/255.255.255.255 -- IP:11.0.1.253/255.255.255.255 -- IP:11.0.1.254/255.255.255.255 -- IP:11.0.1.255/255.255.255.255 -- IP:11.0.2.0/255.255.255.255 -- IP:11.0.2.1/255.255.255.255 -- IP:11.0.2.2/255.255.255.255 -- IP:11.0.2.3/255.255.255.255 -- IP:11.0.2.4/255.255.255.255 -- IP:11.0.2.5/255.255.255.255 -- IP:11.0.2.6/255.255.255.255 -- IP:11.0.2.7/255.255.255.255 -- IP:11.0.2.8/255.255.255.255 -- IP:11.0.2.9/255.255.255.255 -- IP:11.0.2.10/255.255.255.255 -- IP:11.0.2.11/255.255.255.255 -- IP:11.0.2.12/255.255.255.255 -- IP:11.0.2.13/255.255.255.255 -- IP:11.0.2.14/255.255.255.255 -- IP:11.0.2.15/255.255.255.255 -- IP:11.0.2.16/255.255.255.255 -- IP:11.0.2.17/255.255.255.255 -- IP:11.0.2.18/255.255.255.255 -- IP:11.0.2.19/255.255.255.255 -- IP:11.0.2.20/255.255.255.255 -- IP:11.0.2.21/255.255.255.255 -- IP:11.0.2.22/255.255.255.255 -- IP:11.0.2.23/255.255.255.255 -- IP:11.0.2.24/255.255.255.255 -- IP:11.0.2.25/255.255.255.255 -- IP:11.0.2.26/255.255.255.255 -- IP:11.0.2.27/255.255.255.255 -- IP:11.0.2.28/255.255.255.255 -- IP:11.0.2.29/255.255.255.255 -- IP:11.0.2.30/255.255.255.255 -- IP:11.0.2.31/255.255.255.255 -- IP:11.0.2.32/255.255.255.255 -- IP:11.0.2.33/255.255.255.255 -- IP:11.0.2.34/255.255.255.255 -- IP:11.0.2.35/255.255.255.255 -- IP:11.0.2.36/255.255.255.255 -- IP:11.0.2.37/255.255.255.255 -- IP:11.0.2.38/255.255.255.255 -- IP:11.0.2.39/255.255.255.255 -- IP:11.0.2.40/255.255.255.255 -- IP:11.0.2.41/255.255.255.255 -- IP:11.0.2.42/255.255.255.255 -- IP:11.0.2.43/255.255.255.255 -- IP:11.0.2.44/255.255.255.255 -- IP:11.0.2.45/255.255.255.255 -- IP:11.0.2.46/255.255.255.255 -- IP:11.0.2.47/255.255.255.255 -- IP:11.0.2.48/255.255.255.255 -- IP:11.0.2.49/255.255.255.255 -- IP:11.0.2.50/255.255.255.255 -- IP:11.0.2.51/255.255.255.255 -- IP:11.0.2.52/255.255.255.255 -- IP:11.0.2.53/255.255.255.255 -- IP:11.0.2.54/255.255.255.255 -- IP:11.0.2.55/255.255.255.255 -- IP:11.0.2.56/255.255.255.255 -- IP:11.0.2.57/255.255.255.255 -- IP:11.0.2.58/255.255.255.255 -- IP:11.0.2.59/255.255.255.255 -- IP:11.0.2.60/255.255.255.255 -- IP:11.0.2.61/255.255.255.255 -- IP:11.0.2.62/255.255.255.255 -- IP:11.0.2.63/255.255.255.255 -- IP:11.0.2.64/255.255.255.255 -- IP:11.0.2.65/255.255.255.255 -- IP:11.0.2.66/255.255.255.255 -- IP:11.0.2.67/255.255.255.255 -- IP:11.0.2.68/255.255.255.255 -- IP:11.0.2.69/255.255.255.255 -- IP:11.0.2.70/255.255.255.255 -- IP:11.0.2.71/255.255.255.255 -- IP:11.0.2.72/255.255.255.255 -- IP:11.0.2.73/255.255.255.255 -- IP:11.0.2.74/255.255.255.255 -- IP:11.0.2.75/255.255.255.255 -- IP:11.0.2.76/255.255.255.255 -- IP:11.0.2.77/255.255.255.255 -- IP:11.0.2.78/255.255.255.255 -- IP:11.0.2.79/255.255.255.255 -- IP:11.0.2.80/255.255.255.255 -- IP:11.0.2.81/255.255.255.255 -- IP:11.0.2.82/255.255.255.255 -- IP:11.0.2.83/255.255.255.255 -- IP:11.0.2.84/255.255.255.255 -- IP:11.0.2.85/255.255.255.255 -- IP:11.0.2.86/255.255.255.255 -- IP:11.0.2.87/255.255.255.255 -- IP:11.0.2.88/255.255.255.255 -- IP:11.0.2.89/255.255.255.255 -- IP:11.0.2.90/255.255.255.255 -- IP:11.0.2.91/255.255.255.255 -- IP:11.0.2.92/255.255.255.255 -- IP:11.0.2.93/255.255.255.255 -- IP:11.0.2.94/255.255.255.255 -- IP:11.0.2.95/255.255.255.255 -- IP:11.0.2.96/255.255.255.255 -- IP:11.0.2.97/255.255.255.255 -- IP:11.0.2.98/255.255.255.255 -- IP:11.0.2.99/255.255.255.255 -- IP:11.0.2.100/255.255.255.255 -- IP:11.0.2.101/255.255.255.255 -- IP:11.0.2.102/255.255.255.255 -- IP:11.0.2.103/255.255.255.255 -- IP:11.0.2.104/255.255.255.255 -- IP:11.0.2.105/255.255.255.255 -- IP:11.0.2.106/255.255.255.255 -- IP:11.0.2.107/255.255.255.255 -- IP:11.0.2.108/255.255.255.255 -- IP:11.0.2.109/255.255.255.255 -- IP:11.0.2.110/255.255.255.255 -- IP:11.0.2.111/255.255.255.255 -- IP:11.0.2.112/255.255.255.255 -- IP:11.0.2.113/255.255.255.255 -- IP:11.0.2.114/255.255.255.255 -- IP:11.0.2.115/255.255.255.255 -- IP:11.0.2.116/255.255.255.255 -- IP:11.0.2.117/255.255.255.255 -- IP:11.0.2.118/255.255.255.255 -- IP:11.0.2.119/255.255.255.255 -- IP:11.0.2.120/255.255.255.255 -- IP:11.0.2.121/255.255.255.255 -- IP:11.0.2.122/255.255.255.255 -- IP:11.0.2.123/255.255.255.255 -- IP:11.0.2.124/255.255.255.255 -- IP:11.0.2.125/255.255.255.255 -- IP:11.0.2.126/255.255.255.255 -- IP:11.0.2.127/255.255.255.255 -- IP:11.0.2.128/255.255.255.255 -- IP:11.0.2.129/255.255.255.255 -- IP:11.0.2.130/255.255.255.255 -- IP:11.0.2.131/255.255.255.255 -- IP:11.0.2.132/255.255.255.255 -- IP:11.0.2.133/255.255.255.255 -- IP:11.0.2.134/255.255.255.255 -- IP:11.0.2.135/255.255.255.255 -- IP:11.0.2.136/255.255.255.255 -- IP:11.0.2.137/255.255.255.255 -- IP:11.0.2.138/255.255.255.255 -- IP:11.0.2.139/255.255.255.255 -- IP:11.0.2.140/255.255.255.255 -- IP:11.0.2.141/255.255.255.255 -- IP:11.0.2.142/255.255.255.255 -- IP:11.0.2.143/255.255.255.255 -- IP:11.0.2.144/255.255.255.255 -- IP:11.0.2.145/255.255.255.255 -- IP:11.0.2.146/255.255.255.255 -- IP:11.0.2.147/255.255.255.255 -- IP:11.0.2.148/255.255.255.255 -- IP:11.0.2.149/255.255.255.255 -- IP:11.0.2.150/255.255.255.255 -- IP:11.0.2.151/255.255.255.255 -- IP:11.0.2.152/255.255.255.255 -- IP:11.0.2.153/255.255.255.255 -- IP:11.0.2.154/255.255.255.255 -- IP:11.0.2.155/255.255.255.255 -- IP:11.0.2.156/255.255.255.255 -- IP:11.0.2.157/255.255.255.255 -- IP:11.0.2.158/255.255.255.255 -- IP:11.0.2.159/255.255.255.255 -- IP:11.0.2.160/255.255.255.255 -- IP:11.0.2.161/255.255.255.255 -- IP:11.0.2.162/255.255.255.255 -- IP:11.0.2.163/255.255.255.255 -- IP:11.0.2.164/255.255.255.255 -- IP:11.0.2.165/255.255.255.255 -- IP:11.0.2.166/255.255.255.255 -- IP:11.0.2.167/255.255.255.255 -- IP:11.0.2.168/255.255.255.255 -- IP:11.0.2.169/255.255.255.255 -- IP:11.0.2.170/255.255.255.255 -- IP:11.0.2.171/255.255.255.255 -- IP:11.0.2.172/255.255.255.255 -- IP:11.0.2.173/255.255.255.255 -- IP:11.0.2.174/255.255.255.255 -- IP:11.0.2.175/255.255.255.255 -- IP:11.0.2.176/255.255.255.255 -- IP:11.0.2.177/255.255.255.255 -- IP:11.0.2.178/255.255.255.255 -- IP:11.0.2.179/255.255.255.255 -- IP:11.0.2.180/255.255.255.255 -- IP:11.0.2.181/255.255.255.255 -- IP:11.0.2.182/255.255.255.255 -- IP:11.0.2.183/255.255.255.255 -- IP:11.0.2.184/255.255.255.255 -- IP:11.0.2.185/255.255.255.255 -- IP:11.0.2.186/255.255.255.255 -- IP:11.0.2.187/255.255.255.255 -- IP:11.0.2.188/255.255.255.255 -- IP:11.0.2.189/255.255.255.255 -- IP:11.0.2.190/255.255.255.255 -- IP:11.0.2.191/255.255.255.255 -- IP:11.0.2.192/255.255.255.255 -- IP:11.0.2.193/255.255.255.255 -- IP:11.0.2.194/255.255.255.255 -- IP:11.0.2.195/255.255.255.255 -- IP:11.0.2.196/255.255.255.255 -- IP:11.0.2.197/255.255.255.255 -- IP:11.0.2.198/255.255.255.255 -- IP:11.0.2.199/255.255.255.255 -- IP:11.0.2.200/255.255.255.255 -- IP:11.0.2.201/255.255.255.255 -- IP:11.0.2.202/255.255.255.255 -- IP:11.0.2.203/255.255.255.255 -- IP:11.0.2.204/255.255.255.255 -- IP:11.0.2.205/255.255.255.255 -- IP:11.0.2.206/255.255.255.255 -- IP:11.0.2.207/255.255.255.255 -- IP:11.0.2.208/255.255.255.255 -- IP:11.0.2.209/255.255.255.255 -- IP:11.0.2.210/255.255.255.255 -- IP:11.0.2.211/255.255.255.255 -- IP:11.0.2.212/255.255.255.255 -- IP:11.0.2.213/255.255.255.255 -- IP:11.0.2.214/255.255.255.255 -- IP:11.0.2.215/255.255.255.255 -- IP:11.0.2.216/255.255.255.255 -- IP:11.0.2.217/255.255.255.255 -- IP:11.0.2.218/255.255.255.255 -- IP:11.0.2.219/255.255.255.255 -- IP:11.0.2.220/255.255.255.255 -- IP:11.0.2.221/255.255.255.255 -- IP:11.0.2.222/255.255.255.255 -- IP:11.0.2.223/255.255.255.255 -- IP:11.0.2.224/255.255.255.255 -- IP:11.0.2.225/255.255.255.255 -- IP:11.0.2.226/255.255.255.255 -- IP:11.0.2.227/255.255.255.255 -- IP:11.0.2.228/255.255.255.255 -- IP:11.0.2.229/255.255.255.255 -- IP:11.0.2.230/255.255.255.255 -- IP:11.0.2.231/255.255.255.255 -- IP:11.0.2.232/255.255.255.255 -- IP:11.0.2.233/255.255.255.255 -- IP:11.0.2.234/255.255.255.255 -- IP:11.0.2.235/255.255.255.255 -- IP:11.0.2.236/255.255.255.255 -- IP:11.0.2.237/255.255.255.255 -- IP:11.0.2.238/255.255.255.255 -- IP:11.0.2.239/255.255.255.255 -- IP:11.0.2.240/255.255.255.255 -- IP:11.0.2.241/255.255.255.255 -- IP:11.0.2.242/255.255.255.255 -- IP:11.0.2.243/255.255.255.255 -- IP:11.0.2.244/255.255.255.255 -- IP:11.0.2.245/255.255.255.255 -- IP:11.0.2.246/255.255.255.255 -- IP:11.0.2.247/255.255.255.255 -- IP:11.0.2.248/255.255.255.255 -- IP:11.0.2.249/255.255.255.255 -- IP:11.0.2.250/255.255.255.255 -- IP:11.0.2.251/255.255.255.255 -- IP:11.0.2.252/255.255.255.255 -- IP:11.0.2.253/255.255.255.255 -- IP:11.0.2.254/255.255.255.255 -- IP:11.0.2.255/255.255.255.255 -- IP:11.0.3.0/255.255.255.255 -- IP:11.0.3.1/255.255.255.255 -- IP:11.0.3.2/255.255.255.255 -- IP:11.0.3.3/255.255.255.255 -- IP:11.0.3.4/255.255.255.255 -- IP:11.0.3.5/255.255.255.255 -- IP:11.0.3.6/255.255.255.255 -- IP:11.0.3.7/255.255.255.255 -- IP:11.0.3.8/255.255.255.255 -- IP:11.0.3.9/255.255.255.255 -- IP:11.0.3.10/255.255.255.255 -- IP:11.0.3.11/255.255.255.255 -- IP:11.0.3.12/255.255.255.255 -- IP:11.0.3.13/255.255.255.255 -- IP:11.0.3.14/255.255.255.255 -- IP:11.0.3.15/255.255.255.255 -- IP:11.0.3.16/255.255.255.255 -- IP:11.0.3.17/255.255.255.255 -- IP:11.0.3.18/255.255.255.255 -- IP:11.0.3.19/255.255.255.255 -- IP:11.0.3.20/255.255.255.255 -- IP:11.0.3.21/255.255.255.255 -- IP:11.0.3.22/255.255.255.255 -- IP:11.0.3.23/255.255.255.255 -- IP:11.0.3.24/255.255.255.255 -- IP:11.0.3.25/255.255.255.255 -- IP:11.0.3.26/255.255.255.255 -- IP:11.0.3.27/255.255.255.255 -- IP:11.0.3.28/255.255.255.255 -- IP:11.0.3.29/255.255.255.255 -- IP:11.0.3.30/255.255.255.255 -- IP:11.0.3.31/255.255.255.255 -- IP:11.0.3.32/255.255.255.255 -- IP:11.0.3.33/255.255.255.255 -- IP:11.0.3.34/255.255.255.255 -- IP:11.0.3.35/255.255.255.255 -- IP:11.0.3.36/255.255.255.255 -- IP:11.0.3.37/255.255.255.255 -- IP:11.0.3.38/255.255.255.255 -- IP:11.0.3.39/255.255.255.255 -- IP:11.0.3.40/255.255.255.255 -- IP:11.0.3.41/255.255.255.255 -- IP:11.0.3.42/255.255.255.255 -- IP:11.0.3.43/255.255.255.255 -- IP:11.0.3.44/255.255.255.255 -- IP:11.0.3.45/255.255.255.255 -- IP:11.0.3.46/255.255.255.255 -- IP:11.0.3.47/255.255.255.255 -- IP:11.0.3.48/255.255.255.255 -- IP:11.0.3.49/255.255.255.255 -- IP:11.0.3.50/255.255.255.255 -- IP:11.0.3.51/255.255.255.255 -- IP:11.0.3.52/255.255.255.255 -- IP:11.0.3.53/255.255.255.255 -- IP:11.0.3.54/255.255.255.255 -- IP:11.0.3.55/255.255.255.255 -- IP:11.0.3.56/255.255.255.255 -- IP:11.0.3.57/255.255.255.255 -- IP:11.0.3.58/255.255.255.255 -- IP:11.0.3.59/255.255.255.255 -- IP:11.0.3.60/255.255.255.255 -- IP:11.0.3.61/255.255.255.255 -- IP:11.0.3.62/255.255.255.255 -- IP:11.0.3.63/255.255.255.255 -- IP:11.0.3.64/255.255.255.255 -- IP:11.0.3.65/255.255.255.255 -- IP:11.0.3.66/255.255.255.255 -- IP:11.0.3.67/255.255.255.255 -- IP:11.0.3.68/255.255.255.255 -- IP:11.0.3.69/255.255.255.255 -- IP:11.0.3.70/255.255.255.255 -- IP:11.0.3.71/255.255.255.255 -- IP:11.0.3.72/255.255.255.255 -- IP:11.0.3.73/255.255.255.255 -- IP:11.0.3.74/255.255.255.255 -- IP:11.0.3.75/255.255.255.255 -- IP:11.0.3.76/255.255.255.255 -- IP:11.0.3.77/255.255.255.255 -- IP:11.0.3.78/255.255.255.255 -- IP:11.0.3.79/255.255.255.255 -- IP:11.0.3.80/255.255.255.255 -- IP:11.0.3.81/255.255.255.255 -- IP:11.0.3.82/255.255.255.255 -- IP:11.0.3.83/255.255.255.255 -- IP:11.0.3.84/255.255.255.255 -- IP:11.0.3.85/255.255.255.255 -- IP:11.0.3.86/255.255.255.255 -- IP:11.0.3.87/255.255.255.255 -- IP:11.0.3.88/255.255.255.255 -- IP:11.0.3.89/255.255.255.255 -- IP:11.0.3.90/255.255.255.255 -- IP:11.0.3.91/255.255.255.255 -- IP:11.0.3.92/255.255.255.255 -- IP:11.0.3.93/255.255.255.255 -- IP:11.0.3.94/255.255.255.255 -- IP:11.0.3.95/255.255.255.255 -- IP:11.0.3.96/255.255.255.255 -- IP:11.0.3.97/255.255.255.255 -- IP:11.0.3.98/255.255.255.255 -- IP:11.0.3.99/255.255.255.255 -- IP:11.0.3.100/255.255.255.255 -- IP:11.0.3.101/255.255.255.255 -- IP:11.0.3.102/255.255.255.255 -- IP:11.0.3.103/255.255.255.255 -- IP:11.0.3.104/255.255.255.255 -- IP:11.0.3.105/255.255.255.255 -- IP:11.0.3.106/255.255.255.255 -- IP:11.0.3.107/255.255.255.255 -- IP:11.0.3.108/255.255.255.255 -- IP:11.0.3.109/255.255.255.255 -- IP:11.0.3.110/255.255.255.255 -- IP:11.0.3.111/255.255.255.255 -- IP:11.0.3.112/255.255.255.255 -- IP:11.0.3.113/255.255.255.255 -- IP:11.0.3.114/255.255.255.255 -- IP:11.0.3.115/255.255.255.255 -- IP:11.0.3.116/255.255.255.255 -- IP:11.0.3.117/255.255.255.255 -- IP:11.0.3.118/255.255.255.255 -- IP:11.0.3.119/255.255.255.255 -- IP:11.0.3.120/255.255.255.255 -- IP:11.0.3.121/255.255.255.255 -- IP:11.0.3.122/255.255.255.255 -- IP:11.0.3.123/255.255.255.255 -- IP:11.0.3.124/255.255.255.255 -- IP:11.0.3.125/255.255.255.255 -- IP:11.0.3.126/255.255.255.255 -- IP:11.0.3.127/255.255.255.255 -- IP:11.0.3.128/255.255.255.255 -- IP:11.0.3.129/255.255.255.255 -- IP:11.0.3.130/255.255.255.255 -- IP:11.0.3.131/255.255.255.255 -- IP:11.0.3.132/255.255.255.255 -- IP:11.0.3.133/255.255.255.255 -- IP:11.0.3.134/255.255.255.255 -- IP:11.0.3.135/255.255.255.255 -- IP:11.0.3.136/255.255.255.255 -- IP:11.0.3.137/255.255.255.255 -- IP:11.0.3.138/255.255.255.255 -- IP:11.0.3.139/255.255.255.255 -- IP:11.0.3.140/255.255.255.255 -- IP:11.0.3.141/255.255.255.255 -- IP:11.0.3.142/255.255.255.255 -- IP:11.0.3.143/255.255.255.255 -- IP:11.0.3.144/255.255.255.255 -- IP:11.0.3.145/255.255.255.255 -- IP:11.0.3.146/255.255.255.255 -- IP:11.0.3.147/255.255.255.255 -- IP:11.0.3.148/255.255.255.255 -- IP:11.0.3.149/255.255.255.255 -- IP:11.0.3.150/255.255.255.255 -- IP:11.0.3.151/255.255.255.255 -- IP:11.0.3.152/255.255.255.255 -- IP:11.0.3.153/255.255.255.255 -- IP:11.0.3.154/255.255.255.255 -- IP:11.0.3.155/255.255.255.255 -- IP:11.0.3.156/255.255.255.255 -- IP:11.0.3.157/255.255.255.255 -- IP:11.0.3.158/255.255.255.255 -- IP:11.0.3.159/255.255.255.255 -- IP:11.0.3.160/255.255.255.255 -- IP:11.0.3.161/255.255.255.255 -- IP:11.0.3.162/255.255.255.255 -- IP:11.0.3.163/255.255.255.255 -- IP:11.0.3.164/255.255.255.255 -- IP:11.0.3.165/255.255.255.255 -- IP:11.0.3.166/255.255.255.255 -- IP:11.0.3.167/255.255.255.255 -- IP:11.0.3.168/255.255.255.255 -- IP:11.0.3.169/255.255.255.255 -- IP:11.0.3.170/255.255.255.255 -- IP:11.0.3.171/255.255.255.255 -- IP:11.0.3.172/255.255.255.255 -- IP:11.0.3.173/255.255.255.255 -- IP:11.0.3.174/255.255.255.255 -- IP:11.0.3.175/255.255.255.255 -- IP:11.0.3.176/255.255.255.255 -- IP:11.0.3.177/255.255.255.255 -- IP:11.0.3.178/255.255.255.255 -- IP:11.0.3.179/255.255.255.255 -- IP:11.0.3.180/255.255.255.255 -- IP:11.0.3.181/255.255.255.255 -- IP:11.0.3.182/255.255.255.255 -- IP:11.0.3.183/255.255.255.255 -- IP:11.0.3.184/255.255.255.255 -- IP:11.0.3.185/255.255.255.255 -- IP:11.0.3.186/255.255.255.255 -- IP:11.0.3.187/255.255.255.255 -- IP:11.0.3.188/255.255.255.255 -- IP:11.0.3.189/255.255.255.255 -- IP:11.0.3.190/255.255.255.255 -- IP:11.0.3.191/255.255.255.255 -- IP:11.0.3.192/255.255.255.255 -- IP:11.0.3.193/255.255.255.255 -- IP:11.0.3.194/255.255.255.255 -- IP:11.0.3.195/255.255.255.255 -- IP:11.0.3.196/255.255.255.255 -- IP:11.0.3.197/255.255.255.255 -- IP:11.0.3.198/255.255.255.255 -- IP:11.0.3.199/255.255.255.255 -- IP:11.0.3.200/255.255.255.255 -- IP:11.0.3.201/255.255.255.255 -- IP:11.0.3.202/255.255.255.255 -- IP:11.0.3.203/255.255.255.255 -- IP:11.0.3.204/255.255.255.255 -- IP:11.0.3.205/255.255.255.255 -- IP:11.0.3.206/255.255.255.255 -- IP:11.0.3.207/255.255.255.255 -- IP:11.0.3.208/255.255.255.255 -- IP:11.0.3.209/255.255.255.255 -- IP:11.0.3.210/255.255.255.255 -- IP:11.0.3.211/255.255.255.255 -- IP:11.0.3.212/255.255.255.255 -- IP:11.0.3.213/255.255.255.255 -- IP:11.0.3.214/255.255.255.255 -- IP:11.0.3.215/255.255.255.255 -- IP:11.0.3.216/255.255.255.255 -- IP:11.0.3.217/255.255.255.255 -- IP:11.0.3.218/255.255.255.255 -- IP:11.0.3.219/255.255.255.255 -- IP:11.0.3.220/255.255.255.255 -- IP:11.0.3.221/255.255.255.255 -- IP:11.0.3.222/255.255.255.255 -- IP:11.0.3.223/255.255.255.255 -- IP:11.0.3.224/255.255.255.255 -- IP:11.0.3.225/255.255.255.255 -- IP:11.0.3.226/255.255.255.255 -- IP:11.0.3.227/255.255.255.255 -- IP:11.0.3.228/255.255.255.255 -- IP:11.0.3.229/255.255.255.255 -- IP:11.0.3.230/255.255.255.255 -- IP:11.0.3.231/255.255.255.255 -- IP:11.0.3.232/255.255.255.255 -- IP:11.0.3.233/255.255.255.255 -- IP:11.0.3.234/255.255.255.255 -- IP:11.0.3.235/255.255.255.255 -- IP:11.0.3.236/255.255.255.255 -- IP:11.0.3.237/255.255.255.255 -- IP:11.0.3.238/255.255.255.255 -- IP:11.0.3.239/255.255.255.255 -- IP:11.0.3.240/255.255.255.255 -- IP:11.0.3.241/255.255.255.255 -- IP:11.0.3.242/255.255.255.255 -- IP:11.0.3.243/255.255.255.255 -- IP:11.0.3.244/255.255.255.255 -- IP:11.0.3.245/255.255.255.255 -- IP:11.0.3.246/255.255.255.255 -- IP:11.0.3.247/255.255.255.255 -- IP:11.0.3.248/255.255.255.255 -- IP:11.0.3.249/255.255.255.255 -- IP:11.0.3.250/255.255.255.255 -- IP:11.0.3.251/255.255.255.255 -- IP:11.0.3.252/255.255.255.255 -- IP:11.0.3.253/255.255.255.255 -- IP:11.0.3.254/255.255.255.255 -- IP:11.0.3.255/255.255.255.255 -- IP:11.0.4.0/255.255.255.255 -- URI:http://xest/0 -- URI:http://xest/1 -- URI:http://xest/2 -- URI:http://xest/3 -- URI:http://xest/4 -- URI:http://xest/5 -- URI:http://xest/6 -- URI:http://xest/7 -- URI:http://xest/8 -- URI:http://xest/9 -- URI:http://xest/10 -- URI:http://xest/11 -- URI:http://xest/12 -- URI:http://xest/13 -- URI:http://xest/14 -- URI:http://xest/15 -- URI:http://xest/16 -- URI:http://xest/17 -- URI:http://xest/18 -- URI:http://xest/19 -- URI:http://xest/20 -- URI:http://xest/21 -- URI:http://xest/22 -- URI:http://xest/23 -- URI:http://xest/24 -- URI:http://xest/25 -- URI:http://xest/26 -- URI:http://xest/27 -- URI:http://xest/28 -- URI:http://xest/29 -- URI:http://xest/30 -- URI:http://xest/31 -- URI:http://xest/32 -- URI:http://xest/33 -- URI:http://xest/34 -- URI:http://xest/35 -- URI:http://xest/36 -- URI:http://xest/37 -- URI:http://xest/38 -- URI:http://xest/39 -- URI:http://xest/40 -- URI:http://xest/41 -- URI:http://xest/42 -- URI:http://xest/43 -- URI:http://xest/44 -- URI:http://xest/45 -- URI:http://xest/46 -- URI:http://xest/47 -- URI:http://xest/48 -- URI:http://xest/49 -- URI:http://xest/50 -- URI:http://xest/51 -- URI:http://xest/52 -- URI:http://xest/53 -- URI:http://xest/54 -- URI:http://xest/55 -- URI:http://xest/56 -- URI:http://xest/57 -- URI:http://xest/58 -- URI:http://xest/59 -- URI:http://xest/60 -- URI:http://xest/61 -- URI:http://xest/62 -- URI:http://xest/63 -- URI:http://xest/64 -- URI:http://xest/65 -- URI:http://xest/66 -- URI:http://xest/67 -- URI:http://xest/68 -- URI:http://xest/69 -- URI:http://xest/70 -- URI:http://xest/71 -- URI:http://xest/72 -- URI:http://xest/73 -- URI:http://xest/74 -- URI:http://xest/75 -- URI:http://xest/76 -- URI:http://xest/77 -- URI:http://xest/78 -- URI:http://xest/79 -- URI:http://xest/80 -- URI:http://xest/81 -- URI:http://xest/82 -- URI:http://xest/83 -- URI:http://xest/84 -- URI:http://xest/85 -- URI:http://xest/86 -- URI:http://xest/87 -- URI:http://xest/88 -- URI:http://xest/89 -- URI:http://xest/90 -- URI:http://xest/91 -- URI:http://xest/92 -- URI:http://xest/93 -- URI:http://xest/94 -- URI:http://xest/95 -- URI:http://xest/96 -- URI:http://xest/97 -- URI:http://xest/98 -- URI:http://xest/99 -- URI:http://xest/100 -- URI:http://xest/101 -- URI:http://xest/102 -- URI:http://xest/103 -- URI:http://xest/104 -- URI:http://xest/105 -- URI:http://xest/106 -- URI:http://xest/107 -- URI:http://xest/108 -- URI:http://xest/109 -- URI:http://xest/110 -- URI:http://xest/111 -- URI:http://xest/112 -- URI:http://xest/113 -- URI:http://xest/114 -- URI:http://xest/115 -- URI:http://xest/116 -- URI:http://xest/117 -- URI:http://xest/118 -- URI:http://xest/119 -- URI:http://xest/120 -- URI:http://xest/121 -- URI:http://xest/122 -- URI:http://xest/123 -- URI:http://xest/124 -- URI:http://xest/125 -- URI:http://xest/126 -- URI:http://xest/127 -- URI:http://xest/128 -- URI:http://xest/129 -- URI:http://xest/130 -- URI:http://xest/131 -- URI:http://xest/132 -- URI:http://xest/133 -- URI:http://xest/134 -- URI:http://xest/135 -- URI:http://xest/136 -- URI:http://xest/137 -- URI:http://xest/138 -- URI:http://xest/139 -- URI:http://xest/140 -- URI:http://xest/141 -- URI:http://xest/142 -- URI:http://xest/143 -- URI:http://xest/144 -- URI:http://xest/145 -- URI:http://xest/146 -- URI:http://xest/147 -- URI:http://xest/148 -- URI:http://xest/149 -- URI:http://xest/150 -- URI:http://xest/151 -- URI:http://xest/152 -- URI:http://xest/153 -- URI:http://xest/154 -- URI:http://xest/155 -- URI:http://xest/156 -- URI:http://xest/157 -- URI:http://xest/158 -- URI:http://xest/159 -- URI:http://xest/160 -- URI:http://xest/161 -- URI:http://xest/162 -- URI:http://xest/163 -- URI:http://xest/164 -- URI:http://xest/165 -- URI:http://xest/166 -- URI:http://xest/167 -- URI:http://xest/168 -- URI:http://xest/169 -- URI:http://xest/170 -- URI:http://xest/171 -- URI:http://xest/172 -- URI:http://xest/173 -- URI:http://xest/174 -- URI:http://xest/175 -- URI:http://xest/176 -- URI:http://xest/177 -- URI:http://xest/178 -- URI:http://xest/179 -- URI:http://xest/180 -- URI:http://xest/181 -- URI:http://xest/182 -- URI:http://xest/183 -- URI:http://xest/184 -- URI:http://xest/185 -- URI:http://xest/186 -- URI:http://xest/187 -- URI:http://xest/188 -- URI:http://xest/189 -- URI:http://xest/190 -- URI:http://xest/191 -- URI:http://xest/192 -- URI:http://xest/193 -- URI:http://xest/194 -- URI:http://xest/195 -- URI:http://xest/196 -- URI:http://xest/197 -- URI:http://xest/198 -- URI:http://xest/199 -- URI:http://xest/200 -- URI:http://xest/201 -- URI:http://xest/202 -- URI:http://xest/203 -- URI:http://xest/204 -- URI:http://xest/205 -- URI:http://xest/206 -- URI:http://xest/207 -- URI:http://xest/208 -- URI:http://xest/209 -- URI:http://xest/210 -- URI:http://xest/211 -- URI:http://xest/212 -- URI:http://xest/213 -- URI:http://xest/214 -- URI:http://xest/215 -- URI:http://xest/216 -- URI:http://xest/217 -- URI:http://xest/218 -- URI:http://xest/219 -- URI:http://xest/220 -- URI:http://xest/221 -- URI:http://xest/222 -- URI:http://xest/223 -- URI:http://xest/224 -- URI:http://xest/225 -- URI:http://xest/226 -- URI:http://xest/227 -- URI:http://xest/228 -- URI:http://xest/229 -- URI:http://xest/230 -- URI:http://xest/231 -- URI:http://xest/232 -- URI:http://xest/233 -- URI:http://xest/234 -- URI:http://xest/235 -- URI:http://xest/236 -- URI:http://xest/237 -- URI:http://xest/238 -- URI:http://xest/239 -- URI:http://xest/240 -- URI:http://xest/241 -- URI:http://xest/242 -- URI:http://xest/243 -- URI:http://xest/244 -- URI:http://xest/245 -- URI:http://xest/246 -- URI:http://xest/247 -- URI:http://xest/248 -- URI:http://xest/249 -- URI:http://xest/250 -- URI:http://xest/251 -- URI:http://xest/252 -- URI:http://xest/253 -- URI:http://xest/254 -- URI:http://xest/255 -- URI:http://xest/256 -- URI:http://xest/257 -- URI:http://xest/258 -- URI:http://xest/259 -- URI:http://xest/260 -- URI:http://xest/261 -- URI:http://xest/262 -- URI:http://xest/263 -- URI:http://xest/264 -- URI:http://xest/265 -- URI:http://xest/266 -- URI:http://xest/267 -- URI:http://xest/268 -- URI:http://xest/269 -- URI:http://xest/270 -- URI:http://xest/271 -- URI:http://xest/272 -- URI:http://xest/273 -- URI:http://xest/274 -- URI:http://xest/275 -- URI:http://xest/276 -- URI:http://xest/277 -- URI:http://xest/278 -- URI:http://xest/279 -- URI:http://xest/280 -- URI:http://xest/281 -- URI:http://xest/282 -- URI:http://xest/283 -- URI:http://xest/284 -- URI:http://xest/285 -- URI:http://xest/286 -- URI:http://xest/287 -- URI:http://xest/288 -- URI:http://xest/289 -- URI:http://xest/290 -- URI:http://xest/291 -- URI:http://xest/292 -- URI:http://xest/293 -- URI:http://xest/294 -- URI:http://xest/295 -- URI:http://xest/296 -- URI:http://xest/297 -- URI:http://xest/298 -- URI:http://xest/299 -- URI:http://xest/300 -- URI:http://xest/301 -- URI:http://xest/302 -- URI:http://xest/303 -- URI:http://xest/304 -- URI:http://xest/305 -- URI:http://xest/306 -- URI:http://xest/307 -- URI:http://xest/308 -- URI:http://xest/309 -- URI:http://xest/310 -- URI:http://xest/311 -- URI:http://xest/312 -- URI:http://xest/313 -- URI:http://xest/314 -- URI:http://xest/315 -- URI:http://xest/316 -- URI:http://xest/317 -- URI:http://xest/318 -- URI:http://xest/319 -- URI:http://xest/320 -- URI:http://xest/321 -- URI:http://xest/322 -- URI:http://xest/323 -- URI:http://xest/324 -- URI:http://xest/325 -- URI:http://xest/326 -- URI:http://xest/327 -- URI:http://xest/328 -- URI:http://xest/329 -- URI:http://xest/330 -- URI:http://xest/331 -- URI:http://xest/332 -- URI:http://xest/333 -- URI:http://xest/334 -- URI:http://xest/335 -- URI:http://xest/336 -- URI:http://xest/337 -- URI:http://xest/338 -- URI:http://xest/339 -- URI:http://xest/340 -- URI:http://xest/341 -- URI:http://xest/342 -- URI:http://xest/343 -- URI:http://xest/344 -- URI:http://xest/345 -- URI:http://xest/346 -- URI:http://xest/347 -- URI:http://xest/348 -- URI:http://xest/349 -- URI:http://xest/350 -- URI:http://xest/351 -- URI:http://xest/352 -- URI:http://xest/353 -- URI:http://xest/354 -- URI:http://xest/355 -- URI:http://xest/356 -- URI:http://xest/357 -- URI:http://xest/358 -- URI:http://xest/359 -- URI:http://xest/360 -- URI:http://xest/361 -- URI:http://xest/362 -- URI:http://xest/363 -- URI:http://xest/364 -- URI:http://xest/365 -- URI:http://xest/366 -- URI:http://xest/367 -- URI:http://xest/368 -- URI:http://xest/369 -- URI:http://xest/370 -- URI:http://xest/371 -- URI:http://xest/372 -- URI:http://xest/373 -- URI:http://xest/374 -- URI:http://xest/375 -- URI:http://xest/376 -- URI:http://xest/377 -- URI:http://xest/378 -- URI:http://xest/379 -- URI:http://xest/380 -- URI:http://xest/381 -- URI:http://xest/382 -- URI:http://xest/383 -- URI:http://xest/384 -- URI:http://xest/385 -- URI:http://xest/386 -- URI:http://xest/387 -- URI:http://xest/388 -- URI:http://xest/389 -- URI:http://xest/390 -- URI:http://xest/391 -- URI:http://xest/392 -- URI:http://xest/393 -- URI:http://xest/394 -- URI:http://xest/395 -- URI:http://xest/396 -- URI:http://xest/397 -- URI:http://xest/398 -- URI:http://xest/399 -- URI:http://xest/400 -- URI:http://xest/401 -- URI:http://xest/402 -- URI:http://xest/403 -- URI:http://xest/404 -- URI:http://xest/405 -- URI:http://xest/406 -- URI:http://xest/407 -- URI:http://xest/408 -- URI:http://xest/409 -- URI:http://xest/410 -- URI:http://xest/411 -- URI:http://xest/412 -- URI:http://xest/413 -- URI:http://xest/414 -- URI:http://xest/415 -- URI:http://xest/416 -- URI:http://xest/417 -- URI:http://xest/418 -- URI:http://xest/419 -- URI:http://xest/420 -- URI:http://xest/421 -- URI:http://xest/422 -- URI:http://xest/423 -- URI:http://xest/424 -- URI:http://xest/425 -- URI:http://xest/426 -- URI:http://xest/427 -- URI:http://xest/428 -- URI:http://xest/429 -- URI:http://xest/430 -- URI:http://xest/431 -- URI:http://xest/432 -- URI:http://xest/433 -- URI:http://xest/434 -- URI:http://xest/435 -- URI:http://xest/436 -- URI:http://xest/437 -- URI:http://xest/438 -- URI:http://xest/439 -- URI:http://xest/440 -- URI:http://xest/441 -- URI:http://xest/442 -- URI:http://xest/443 -- URI:http://xest/444 -- URI:http://xest/445 -- URI:http://xest/446 -- URI:http://xest/447 -- URI:http://xest/448 -- URI:http://xest/449 -- URI:http://xest/450 -- URI:http://xest/451 -- URI:http://xest/452 -- URI:http://xest/453 -- URI:http://xest/454 -- URI:http://xest/455 -- URI:http://xest/456 -- URI:http://xest/457 -- URI:http://xest/458 -- URI:http://xest/459 -- URI:http://xest/460 -- URI:http://xest/461 -- URI:http://xest/462 -- URI:http://xest/463 -- URI:http://xest/464 -- URI:http://xest/465 -- URI:http://xest/466 -- URI:http://xest/467 -- URI:http://xest/468 -- URI:http://xest/469 -- URI:http://xest/470 -- URI:http://xest/471 -- URI:http://xest/472 -- URI:http://xest/473 -- URI:http://xest/474 -- URI:http://xest/475 -- URI:http://xest/476 -- URI:http://xest/477 -- URI:http://xest/478 -- URI:http://xest/479 -- URI:http://xest/480 -- URI:http://xest/481 -- URI:http://xest/482 -- URI:http://xest/483 -- URI:http://xest/484 -- URI:http://xest/485 -- URI:http://xest/486 -- URI:http://xest/487 -- URI:http://xest/488 -- URI:http://xest/489 -- URI:http://xest/490 -- URI:http://xest/491 -- URI:http://xest/492 -- URI:http://xest/493 -- URI:http://xest/494 -- URI:http://xest/495 -- URI:http://xest/496 -- URI:http://xest/497 -- URI:http://xest/498 -- URI:http://xest/499 -- URI:http://xest/500 -- URI:http://xest/501 -- URI:http://xest/502 -- URI:http://xest/503 -- URI:http://xest/504 -- URI:http://xest/505 -- URI:http://xest/506 -- URI:http://xest/507 -- URI:http://xest/508 -- URI:http://xest/509 -- URI:http://xest/510 -- URI:http://xest/511 -- URI:http://xest/512 -- URI:http://xest/513 -- URI:http://xest/514 -- URI:http://xest/515 -- URI:http://xest/516 -- URI:http://xest/517 -- URI:http://xest/518 -- URI:http://xest/519 -- URI:http://xest/520 -- URI:http://xest/521 -- URI:http://xest/522 -- URI:http://xest/523 -- URI:http://xest/524 -- URI:http://xest/525 -- URI:http://xest/526 -- URI:http://xest/527 -- URI:http://xest/528 -- URI:http://xest/529 -- URI:http://xest/530 -- URI:http://xest/531 -- URI:http://xest/532 -- URI:http://xest/533 -- URI:http://xest/534 -- URI:http://xest/535 -- URI:http://xest/536 -- URI:http://xest/537 -- URI:http://xest/538 -- URI:http://xest/539 -- URI:http://xest/540 -- URI:http://xest/541 -- URI:http://xest/542 -- URI:http://xest/543 -- URI:http://xest/544 -- URI:http://xest/545 -- URI:http://xest/546 -- URI:http://xest/547 -- URI:http://xest/548 -- URI:http://xest/549 -- URI:http://xest/550 -- URI:http://xest/551 -- URI:http://xest/552 -- URI:http://xest/553 -- URI:http://xest/554 -- URI:http://xest/555 -- URI:http://xest/556 -- URI:http://xest/557 -- URI:http://xest/558 -- URI:http://xest/559 -- URI:http://xest/560 -- URI:http://xest/561 -- URI:http://xest/562 -- URI:http://xest/563 -- URI:http://xest/564 -- URI:http://xest/565 -- URI:http://xest/566 -- URI:http://xest/567 -- URI:http://xest/568 -- URI:http://xest/569 -- URI:http://xest/570 -- URI:http://xest/571 -- URI:http://xest/572 -- URI:http://xest/573 -- URI:http://xest/574 -- URI:http://xest/575 -- URI:http://xest/576 -- URI:http://xest/577 -- URI:http://xest/578 -- URI:http://xest/579 -- URI:http://xest/580 -- URI:http://xest/581 -- URI:http://xest/582 -- URI:http://xest/583 -- URI:http://xest/584 -- URI:http://xest/585 -- URI:http://xest/586 -- URI:http://xest/587 -- URI:http://xest/588 -- URI:http://xest/589 -- URI:http://xest/590 -- URI:http://xest/591 -- URI:http://xest/592 -- URI:http://xest/593 -- URI:http://xest/594 -- URI:http://xest/595 -- URI:http://xest/596 -- URI:http://xest/597 -- URI:http://xest/598 -- URI:http://xest/599 -- URI:http://xest/600 -- URI:http://xest/601 -- URI:http://xest/602 -- URI:http://xest/603 -- URI:http://xest/604 -- URI:http://xest/605 -- URI:http://xest/606 -- URI:http://xest/607 -- URI:http://xest/608 -- URI:http://xest/609 -- URI:http://xest/610 -- URI:http://xest/611 -- URI:http://xest/612 -- URI:http://xest/613 -- URI:http://xest/614 -- URI:http://xest/615 -- URI:http://xest/616 -- URI:http://xest/617 -- URI:http://xest/618 -- URI:http://xest/619 -- URI:http://xest/620 -- URI:http://xest/621 -- URI:http://xest/622 -- URI:http://xest/623 -- URI:http://xest/624 -- URI:http://xest/625 -- URI:http://xest/626 -- URI:http://xest/627 -- URI:http://xest/628 -- URI:http://xest/629 -- URI:http://xest/630 -- URI:http://xest/631 -- URI:http://xest/632 -- URI:http://xest/633 -- URI:http://xest/634 -- URI:http://xest/635 -- URI:http://xest/636 -- URI:http://xest/637 -- URI:http://xest/638 -- URI:http://xest/639 -- URI:http://xest/640 -- URI:http://xest/641 -- URI:http://xest/642 -- URI:http://xest/643 -- URI:http://xest/644 -- URI:http://xest/645 -- URI:http://xest/646 -- URI:http://xest/647 -- URI:http://xest/648 -- URI:http://xest/649 -- URI:http://xest/650 -- URI:http://xest/651 -- URI:http://xest/652 -- URI:http://xest/653 -- URI:http://xest/654 -- URI:http://xest/655 -- URI:http://xest/656 -- URI:http://xest/657 -- URI:http://xest/658 -- URI:http://xest/659 -- URI:http://xest/660 -- URI:http://xest/661 -- URI:http://xest/662 -- URI:http://xest/663 -- URI:http://xest/664 -- URI:http://xest/665 -- URI:http://xest/666 -- URI:http://xest/667 -- URI:http://xest/668 -- URI:http://xest/669 -- URI:http://xest/670 -- URI:http://xest/671 -- URI:http://xest/672 -- URI:http://xest/673 -- URI:http://xest/674 -- URI:http://xest/675 -- URI:http://xest/676 -- URI:http://xest/677 -- URI:http://xest/678 -- URI:http://xest/679 -- URI:http://xest/680 -- URI:http://xest/681 -- URI:http://xest/682 -- URI:http://xest/683 -- URI:http://xest/684 -- URI:http://xest/685 -- URI:http://xest/686 -- URI:http://xest/687 -- URI:http://xest/688 -- URI:http://xest/689 -- URI:http://xest/690 -- URI:http://xest/691 -- URI:http://xest/692 -- URI:http://xest/693 -- URI:http://xest/694 -- URI:http://xest/695 -- URI:http://xest/696 -- URI:http://xest/697 -- URI:http://xest/698 -- URI:http://xest/699 -- URI:http://xest/700 -- URI:http://xest/701 -- URI:http://xest/702 -- URI:http://xest/703 -- URI:http://xest/704 -- URI:http://xest/705 -- URI:http://xest/706 -- URI:http://xest/707 -- URI:http://xest/708 -- URI:http://xest/709 -- URI:http://xest/710 -- URI:http://xest/711 -- URI:http://xest/712 -- URI:http://xest/713 -- URI:http://xest/714 -- URI:http://xest/715 -- URI:http://xest/716 -- URI:http://xest/717 -- URI:http://xest/718 -- URI:http://xest/719 -- URI:http://xest/720 -- URI:http://xest/721 -- URI:http://xest/722 -- URI:http://xest/723 -- URI:http://xest/724 -- URI:http://xest/725 -- URI:http://xest/726 -- URI:http://xest/727 -- URI:http://xest/728 -- URI:http://xest/729 -- URI:http://xest/730 -- URI:http://xest/731 -- URI:http://xest/732 -- URI:http://xest/733 -- URI:http://xest/734 -- URI:http://xest/735 -- URI:http://xest/736 -- URI:http://xest/737 -- URI:http://xest/738 -- URI:http://xest/739 -- URI:http://xest/740 -- URI:http://xest/741 -- URI:http://xest/742 -- URI:http://xest/743 -- URI:http://xest/744 -- URI:http://xest/745 -- URI:http://xest/746 -- URI:http://xest/747 -- URI:http://xest/748 -- URI:http://xest/749 -- URI:http://xest/750 -- URI:http://xest/751 -- URI:http://xest/752 -- URI:http://xest/753 -- URI:http://xest/754 -- URI:http://xest/755 -- URI:http://xest/756 -- URI:http://xest/757 -- URI:http://xest/758 -- URI:http://xest/759 -- URI:http://xest/760 -- URI:http://xest/761 -- URI:http://xest/762 -- URI:http://xest/763 -- URI:http://xest/764 -- URI:http://xest/765 -- URI:http://xest/766 -- URI:http://xest/767 -- URI:http://xest/768 -- URI:http://xest/769 -- URI:http://xest/770 -- URI:http://xest/771 -- URI:http://xest/772 -- URI:http://xest/773 -- URI:http://xest/774 -- URI:http://xest/775 -- URI:http://xest/776 -- URI:http://xest/777 -- URI:http://xest/778 -- URI:http://xest/779 -- URI:http://xest/780 -- URI:http://xest/781 -- URI:http://xest/782 -- URI:http://xest/783 -- URI:http://xest/784 -- URI:http://xest/785 -- URI:http://xest/786 -- URI:http://xest/787 -- URI:http://xest/788 -- URI:http://xest/789 -- URI:http://xest/790 -- URI:http://xest/791 -- URI:http://xest/792 -- URI:http://xest/793 -- URI:http://xest/794 -- URI:http://xest/795 -- URI:http://xest/796 -- URI:http://xest/797 -- URI:http://xest/798 -- URI:http://xest/799 -- URI:http://xest/800 -- URI:http://xest/801 -- URI:http://xest/802 -- URI:http://xest/803 -- URI:http://xest/804 -- URI:http://xest/805 -- URI:http://xest/806 -- URI:http://xest/807 -- URI:http://xest/808 -- URI:http://xest/809 -- URI:http://xest/810 -- URI:http://xest/811 -- URI:http://xest/812 -- URI:http://xest/813 -- URI:http://xest/814 -- URI:http://xest/815 -- URI:http://xest/816 -- URI:http://xest/817 -- URI:http://xest/818 -- URI:http://xest/819 -- URI:http://xest/820 -- URI:http://xest/821 -- URI:http://xest/822 -- URI:http://xest/823 -- URI:http://xest/824 -- URI:http://xest/825 -- URI:http://xest/826 -- URI:http://xest/827 -- URI:http://xest/828 -- URI:http://xest/829 -- URI:http://xest/830 -- URI:http://xest/831 -- URI:http://xest/832 -- URI:http://xest/833 -- URI:http://xest/834 -- URI:http://xest/835 -- URI:http://xest/836 -- URI:http://xest/837 -- URI:http://xest/838 -- URI:http://xest/839 -- URI:http://xest/840 -- URI:http://xest/841 -- URI:http://xest/842 -- URI:http://xest/843 -- URI:http://xest/844 -- URI:http://xest/845 -- URI:http://xest/846 -- URI:http://xest/847 -- URI:http://xest/848 -- URI:http://xest/849 -- URI:http://xest/850 -- URI:http://xest/851 -- URI:http://xest/852 -- URI:http://xest/853 -- URI:http://xest/854 -- URI:http://xest/855 -- URI:http://xest/856 -- URI:http://xest/857 -- URI:http://xest/858 -- URI:http://xest/859 -- URI:http://xest/860 -- URI:http://xest/861 -- URI:http://xest/862 -- URI:http://xest/863 -- URI:http://xest/864 -- URI:http://xest/865 -- URI:http://xest/866 -- URI:http://xest/867 -- URI:http://xest/868 -- URI:http://xest/869 -- URI:http://xest/870 -- URI:http://xest/871 -- URI:http://xest/872 -- URI:http://xest/873 -- URI:http://xest/874 -- URI:http://xest/875 -- URI:http://xest/876 -- URI:http://xest/877 -- URI:http://xest/878 -- URI:http://xest/879 -- URI:http://xest/880 -- URI:http://xest/881 -- URI:http://xest/882 -- URI:http://xest/883 -- URI:http://xest/884 -- URI:http://xest/885 -- URI:http://xest/886 -- URI:http://xest/887 -- URI:http://xest/888 -- URI:http://xest/889 -- URI:http://xest/890 -- URI:http://xest/891 -- URI:http://xest/892 -- URI:http://xest/893 -- URI:http://xest/894 -- URI:http://xest/895 -- URI:http://xest/896 -- URI:http://xest/897 -- URI:http://xest/898 -- URI:http://xest/899 -- URI:http://xest/900 -- URI:http://xest/901 -- URI:http://xest/902 -- URI:http://xest/903 -- URI:http://xest/904 -- URI:http://xest/905 -- URI:http://xest/906 -- URI:http://xest/907 -- URI:http://xest/908 -- URI:http://xest/909 -- URI:http://xest/910 -- URI:http://xest/911 -- URI:http://xest/912 -- URI:http://xest/913 -- URI:http://xest/914 -- URI:http://xest/915 -- URI:http://xest/916 -- URI:http://xest/917 -- URI:http://xest/918 -- URI:http://xest/919 -- URI:http://xest/920 -- URI:http://xest/921 -- URI:http://xest/922 -- URI:http://xest/923 -- URI:http://xest/924 -- URI:http://xest/925 -- URI:http://xest/926 -- URI:http://xest/927 -- URI:http://xest/928 -- URI:http://xest/929 -- URI:http://xest/930 -- URI:http://xest/931 -- URI:http://xest/932 -- URI:http://xest/933 -- URI:http://xest/934 -- URI:http://xest/935 -- URI:http://xest/936 -- URI:http://xest/937 -- URI:http://xest/938 -- URI:http://xest/939 -- URI:http://xest/940 -- URI:http://xest/941 -- URI:http://xest/942 -- URI:http://xest/943 -- URI:http://xest/944 -- URI:http://xest/945 -- URI:http://xest/946 -- URI:http://xest/947 -- URI:http://xest/948 -- URI:http://xest/949 -- URI:http://xest/950 -- URI:http://xest/951 -- URI:http://xest/952 -- URI:http://xest/953 -- URI:http://xest/954 -- URI:http://xest/955 -- URI:http://xest/956 -- URI:http://xest/957 -- URI:http://xest/958 -- URI:http://xest/959 -- URI:http://xest/960 -- URI:http://xest/961 -- URI:http://xest/962 -- URI:http://xest/963 -- URI:http://xest/964 -- URI:http://xest/965 -- URI:http://xest/966 -- URI:http://xest/967 -- URI:http://xest/968 -- URI:http://xest/969 -- URI:http://xest/970 -- URI:http://xest/971 -- URI:http://xest/972 -- URI:http://xest/973 -- URI:http://xest/974 -- URI:http://xest/975 -- URI:http://xest/976 -- URI:http://xest/977 -- URI:http://xest/978 -- URI:http://xest/979 -- URI:http://xest/980 -- URI:http://xest/981 -- URI:http://xest/982 -- URI:http://xest/983 -- URI:http://xest/984 -- URI:http://xest/985 -- URI:http://xest/986 -- URI:http://xest/987 -- URI:http://xest/988 -- URI:http://xest/989 -- URI:http://xest/990 -- URI:http://xest/991 -- URI:http://xest/992 -- URI:http://xest/993 -- URI:http://xest/994 -- URI:http://xest/995 -- URI:http://xest/996 -- URI:http://xest/997 -- URI:http://xest/998 -- URI:http://xest/999 -- URI:http://xest/1000 -- URI:http://xest/1001 -- URI:http://xest/1002 -- URI:http://xest/1003 -- URI:http://xest/1004 -- URI:http://xest/1005 -- URI:http://xest/1006 -- URI:http://xest/1007 -- URI:http://xest/1008 -- URI:http://xest/1009 -- URI:http://xest/1010 -- URI:http://xest/1011 -- URI:http://xest/1012 -- URI:http://xest/1013 -- URI:http://xest/1014 -- URI:http://xest/1015 -- URI:http://xest/1016 -- URI:http://xest/1017 -- URI:http://xest/1018 -- URI:http://xest/1019 -- URI:http://xest/1020 -- URI:http://xest/1021 -- URI:http://xest/1022 -- URI:http://xest/1023 -- URI:http://xest/1024 -- -- Signature Algorithm: sha256WithRSAEncryption -- 5d:94:f0:0a:d4:00:79:35:cf:57:0e:3d:24:e9:17:d9:0c:22: -- f2:7e:18:73:4a:bc:89:fa:cf:19:fb:26:b3:93:7b:f6:61:24: -- a0:36:e1:29:1f:3c:a6:db:c2:c3:fc:dd:05:5b:25:f1:21:4f: -- 29:1b:b2:bc:c6:0d:3d:cb:27:a5:16:8d:73:b3:e4:a0:82:ae: -- 43:7b:72:4f:52:aa:cf:c1:0f:6b:13:7d:af:11:cd:ce:8d:a5: -- 78:b2:a8:9d:4e:22:6d:0d:60:59:29:b1:a5:97:01:52:ae:4e: -- 6f:4e:bc:4e:cc:d4:6b:f9:32:04:42:1c:e7:87:74:6c:42:74: -- a6:4c:83:07:b8:54:2e:33:4c:6b:09:38:e1:ce:b1:56:59:82: -- f5:69:90:4f:7d:04:51:45:68:09:14:5b:b2:c9:a4:b0:41:ab: -- 7a:f6:4a:84:0d:88:2f:45:d2:3b:81:bc:e8:91:b9:a8:f1:bb: -- 93:d7:42:7d:c8:ca:24:19:f7:28:a4:c6:67:ac:1a:2e:8d:88: -- 72:ae:47:14:da:1c:38:f7:a6:7e:38:af:c4:47:0a:7d:8e:38: -- 3d:25:3a:48:d7:af:0b:0c:c0:45:42:43:5f:1e:66:1b:64:53: -- 2a:4f:81:a1:e8:21:d0:4b:bc:49:87:b0:5e:37:d5:68:ad:7a: -- f4:aa:f4:ad -------BEGIN CERTIFICATE----- --MIMBYqUwgwFhjKADAgECAhQ85fyBiFmoUBbBf9flKuWWf8L3ADANBgkqhkiG9w0B --AQsFADAPMQ0wCwYDVQQDDARSb290MB4XDTIxMTAwNTEyMDAwMFoXDTIyMTAwNTEy --MDAwMFowFzEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlMIIBIjANBgkqhkiG9w0BAQEF --AAOCAQ8AMIIBCgKCAQEAuzvbBG4X4FRSuiN3JLw043DZmZ5TXTMLqcxLHa4GJxiO --VbqtEscdMlltwxYg22Kmd4AS4IdYUVXjZn/R4DoiZeVwJqIEBPBd+V9WyNroD1co --d26aoEpTNBpjN6JDqw5KzQcj3VWDRAAMcEHfNWTQxQ5qh9vK/DXV4luvC6DmdaXS --4XJOImMBQXO4lVAs/e3DYbY21IOVYcPgYf/0noroutzR9ontnTBElSf00YvmLxRm --VvHa8cwEG3eSpZ9YQAyfDDLWBcJMwMWf5aQwPUzpnQNsTAa25ZW9IbjmK6igvwa7 --QzMZPXsXWfFkTSRnsVEPNa7wcXV5rlsCNAQx42aGZQIDAQABo4MBX+0wgwFf6DAd --BgNVHQ4EFgQUkhE/rBGWx2Y3z4NaJPA6d68zjX8wHwYDVR0jBBgwFoAUtsLvn9Ep --yw+JjExS1L1AtxG3cd0wNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzAChhtodHRw --Oi8vdXJsLWZvci1haWEvUm9vdC5jZXIwLAYDVR0fBCUwIzAhoB+gHYYbaHR0cDov --L3VybC1mb3ItY3JsL1Jvb3QuY3JsMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E --BTADAQH/MIMBXxsGA1UdHgSDAV8RMIMBXwyggq+CMAmCB3QwLnRlc3QwCYIHdDEu --dGVzdDAJggd0Mi50ZXN0MAmCB3QzLnRlc3QwCYIHdDQudGVzdDAJggd0NS50ZXN0 --MAmCB3Q2LnRlc3QwCYIHdDcudGVzdDAJggd0OC50ZXN0MAmCB3Q5LnRlc3QwCoII --dDEwLnRlc3QwCoIIdDExLnRlc3QwCoIIdDEyLnRlc3QwCoIIdDEzLnRlc3QwCoII --dDE0LnRlc3QwCoIIdDE1LnRlc3QwCoIIdDE2LnRlc3QwCoIIdDE3LnRlc3QwCoII --dDE4LnRlc3QwCoIIdDE5LnRlc3QwCoIIdDIwLnRlc3QwCoIIdDIxLnRlc3QwCoII --dDIyLnRlc3QwCoIIdDIzLnRlc3QwCoIIdDI0LnRlc3QwCoIIdDI1LnRlc3QwCoII --dDI2LnRlc3QwCoIIdDI3LnRlc3QwCoIIdDI4LnRlc3QwCoIIdDI5LnRlc3QwCoII --dDMwLnRlc3QwCoIIdDMxLnRlc3QwCoIIdDMyLnRlc3QwCoIIdDMzLnRlc3QwCoII --dDM0LnRlc3QwCoIIdDM1LnRlc3QwCoIIdDM2LnRlc3QwCoIIdDM3LnRlc3QwCoII --dDM4LnRlc3QwCoIIdDM5LnRlc3QwCoIIdDQwLnRlc3QwCoIIdDQxLnRlc3QwCoII --dDQyLnRlc3QwCoIIdDQzLnRlc3QwCoIIdDQ0LnRlc3QwCoIIdDQ1LnRlc3QwCoII --dDQ2LnRlc3QwCoIIdDQ3LnRlc3QwCoIIdDQ4LnRlc3QwCoIIdDQ5LnRlc3QwCoII --dDUwLnRlc3QwCoIIdDUxLnRlc3QwCoIIdDUyLnRlc3QwCoIIdDUzLnRlc3QwCoII --dDU0LnRlc3QwCoIIdDU1LnRlc3QwCoIIdDU2LnRlc3QwCoIIdDU3LnRlc3QwCoII --dDU4LnRlc3QwCoIIdDU5LnRlc3QwCoIIdDYwLnRlc3QwCoIIdDYxLnRlc3QwCoII --dDYyLnRlc3QwCoIIdDYzLnRlc3QwCoIIdDY0LnRlc3QwCoIIdDY1LnRlc3QwCoII --dDY2LnRlc3QwCoIIdDY3LnRlc3QwCoIIdDY4LnRlc3QwCoIIdDY5LnRlc3QwCoII --dDcwLnRlc3QwCoIIdDcxLnRlc3QwCoIIdDcyLnRlc3QwCoIIdDczLnRlc3QwCoII --dDc0LnRlc3QwCoIIdDc1LnRlc3QwCoIIdDc2LnRlc3QwCoIIdDc3LnRlc3QwCoII --dDc4LnRlc3QwCoIIdDc5LnRlc3QwCoIIdDgwLnRlc3QwCoIIdDgxLnRlc3QwCoII --dDgyLnRlc3QwCoIIdDgzLnRlc3QwCoIIdDg0LnRlc3QwCoIIdDg1LnRlc3QwCoII --dDg2LnRlc3QwCoIIdDg3LnRlc3QwCoIIdDg4LnRlc3QwCoIIdDg5LnRlc3QwCoII --dDkwLnRlc3QwCoIIdDkxLnRlc3QwCoIIdDkyLnRlc3QwCoIIdDkzLnRlc3QwCoII --dDk0LnRlc3QwCoIIdDk1LnRlc3QwCoIIdDk2LnRlc3QwCoIIdDk3LnRlc3QwCoII --dDk4LnRlc3QwCoIIdDk5LnRlc3QwC4IJdDEwMC50ZXN0MAuCCXQxMDEudGVzdDAL --ggl0MTAyLnRlc3QwC4IJdDEwMy50ZXN0MAuCCXQxMDQudGVzdDALggl0MTA1LnRl --c3QwC4IJdDEwNi50ZXN0MAuCCXQxMDcudGVzdDALggl0MTA4LnRlc3QwC4IJdDEw --OS50ZXN0MAuCCXQxMTAudGVzdDALggl0MTExLnRlc3QwC4IJdDExMi50ZXN0MAuC --CXQxMTMudGVzdDALggl0MTE0LnRlc3QwC4IJdDExNS50ZXN0MAuCCXQxMTYudGVz --dDALggl0MTE3LnRlc3QwC4IJdDExOC50ZXN0MAuCCXQxMTkudGVzdDALggl0MTIw --LnRlc3QwC4IJdDEyMS50ZXN0MAuCCXQxMjIudGVzdDALggl0MTIzLnRlc3QwC4IJ --dDEyNC50ZXN0MAuCCXQxMjUudGVzdDALggl0MTI2LnRlc3QwC4IJdDEyNy50ZXN0 --MAuCCXQxMjgudGVzdDALggl0MTI5LnRlc3QwC4IJdDEzMC50ZXN0MAuCCXQxMzEu --dGVzdDALggl0MTMyLnRlc3QwC4IJdDEzMy50ZXN0MAuCCXQxMzQudGVzdDALggl0 --MTM1LnRlc3QwC4IJdDEzNi50ZXN0MAuCCXQxMzcudGVzdDALggl0MTM4LnRlc3Qw --C4IJdDEzOS50ZXN0MAuCCXQxNDAudGVzdDALggl0MTQxLnRlc3QwC4IJdDE0Mi50 --ZXN0MAuCCXQxNDMudGVzdDALggl0MTQ0LnRlc3QwC4IJdDE0NS50ZXN0MAuCCXQx --NDYudGVzdDALggl0MTQ3LnRlc3QwC4IJdDE0OC50ZXN0MAuCCXQxNDkudGVzdDAL --ggl0MTUwLnRlc3QwC4IJdDE1MS50ZXN0MAuCCXQxNTIudGVzdDALggl0MTUzLnRl --c3QwC4IJdDE1NC50ZXN0MAuCCXQxNTUudGVzdDALggl0MTU2LnRlc3QwC4IJdDE1 --Ny50ZXN0MAuCCXQxNTgudGVzdDALggl0MTU5LnRlc3QwC4IJdDE2MC50ZXN0MAuC --CXQxNjEudGVzdDALggl0MTYyLnRlc3QwC4IJdDE2My50ZXN0MAuCCXQxNjQudGVz --dDALggl0MTY1LnRlc3QwC4IJdDE2Ni50ZXN0MAuCCXQxNjcudGVzdDALggl0MTY4 --LnRlc3QwC4IJdDE2OS50ZXN0MAuCCXQxNzAudGVzdDALggl0MTcxLnRlc3QwC4IJ --dDE3Mi50ZXN0MAuCCXQxNzMudGVzdDALggl0MTc0LnRlc3QwC4IJdDE3NS50ZXN0 --MAuCCXQxNzYudGVzdDALggl0MTc3LnRlc3QwC4IJdDE3OC50ZXN0MAuCCXQxNzku --dGVzdDALggl0MTgwLnRlc3QwC4IJdDE4MS50ZXN0MAuCCXQxODIudGVzdDALggl0 --MTgzLnRlc3QwC4IJdDE4NC50ZXN0MAuCCXQxODUudGVzdDALggl0MTg2LnRlc3Qw --C4IJdDE4Ny50ZXN0MAuCCXQxODgudGVzdDALggl0MTg5LnRlc3QwC4IJdDE5MC50 --ZXN0MAuCCXQxOTEudGVzdDALggl0MTkyLnRlc3QwC4IJdDE5My50ZXN0MAuCCXQx --OTQudGVzdDALggl0MTk1LnRlc3QwC4IJdDE5Ni50ZXN0MAuCCXQxOTcudGVzdDAL --ggl0MTk4LnRlc3QwC4IJdDE5OS50ZXN0MAuCCXQyMDAudGVzdDALggl0MjAxLnRl --c3QwC4IJdDIwMi50ZXN0MAuCCXQyMDMudGVzdDALggl0MjA0LnRlc3QwC4IJdDIw --NS50ZXN0MAuCCXQyMDYudGVzdDALggl0MjA3LnRlc3QwC4IJdDIwOC50ZXN0MAuC --CXQyMDkudGVzdDALggl0MjEwLnRlc3QwC4IJdDIxMS50ZXN0MAuCCXQyMTIudGVz --dDALggl0MjEzLnRlc3QwC4IJdDIxNC50ZXN0MAuCCXQyMTUudGVzdDALggl0MjE2 --LnRlc3QwC4IJdDIxNy50ZXN0MAuCCXQyMTgudGVzdDALggl0MjE5LnRlc3QwC4IJ --dDIyMC50ZXN0MAuCCXQyMjEudGVzdDALggl0MjIyLnRlc3QwC4IJdDIyMy50ZXN0 --MAuCCXQyMjQudGVzdDALggl0MjI1LnRlc3QwC4IJdDIyNi50ZXN0MAuCCXQyMjcu --dGVzdDALggl0MjI4LnRlc3QwC4IJdDIyOS50ZXN0MAuCCXQyMzAudGVzdDALggl0 --MjMxLnRlc3QwC4IJdDIzMi50ZXN0MAuCCXQyMzMudGVzdDALggl0MjM0LnRlc3Qw --C4IJdDIzNS50ZXN0MAuCCXQyMzYudGVzdDALggl0MjM3LnRlc3QwC4IJdDIzOC50 --ZXN0MAuCCXQyMzkudGVzdDALggl0MjQwLnRlc3QwC4IJdDI0MS50ZXN0MAuCCXQy --NDIudGVzdDALggl0MjQzLnRlc3QwC4IJdDI0NC50ZXN0MAuCCXQyNDUudGVzdDAL --ggl0MjQ2LnRlc3QwC4IJdDI0Ny50ZXN0MAuCCXQyNDgudGVzdDALggl0MjQ5LnRl --c3QwC4IJdDI1MC50ZXN0MAuCCXQyNTEudGVzdDALggl0MjUyLnRlc3QwC4IJdDI1 --My50ZXN0MAuCCXQyNTQudGVzdDALggl0MjU1LnRlc3QwC4IJdDI1Ni50ZXN0MAuC --CXQyNTcudGVzdDALggl0MjU4LnRlc3QwC4IJdDI1OS50ZXN0MAuCCXQyNjAudGVz --dDALggl0MjYxLnRlc3QwC4IJdDI2Mi50ZXN0MAuCCXQyNjMudGVzdDALggl0MjY0 --LnRlc3QwC4IJdDI2NS50ZXN0MAuCCXQyNjYudGVzdDALggl0MjY3LnRlc3QwC4IJ --dDI2OC50ZXN0MAuCCXQyNjkudGVzdDALggl0MjcwLnRlc3QwC4IJdDI3MS50ZXN0 --MAuCCXQyNzIudGVzdDALggl0MjczLnRlc3QwC4IJdDI3NC50ZXN0MAuCCXQyNzUu --dGVzdDALggl0Mjc2LnRlc3QwC4IJdDI3Ny50ZXN0MAuCCXQyNzgudGVzdDALggl0 --Mjc5LnRlc3QwC4IJdDI4MC50ZXN0MAuCCXQyODEudGVzdDALggl0MjgyLnRlc3Qw --C4IJdDI4My50ZXN0MAuCCXQyODQudGVzdDALggl0Mjg1LnRlc3QwC4IJdDI4Ni50 --ZXN0MAuCCXQyODcudGVzdDALggl0Mjg4LnRlc3QwC4IJdDI4OS50ZXN0MAuCCXQy --OTAudGVzdDALggl0MjkxLnRlc3QwC4IJdDI5Mi50ZXN0MAuCCXQyOTMudGVzdDAL --ggl0Mjk0LnRlc3QwC4IJdDI5NS50ZXN0MAuCCXQyOTYudGVzdDALggl0Mjk3LnRl --c3QwC4IJdDI5OC50ZXN0MAuCCXQyOTkudGVzdDALggl0MzAwLnRlc3QwC4IJdDMw --MS50ZXN0MAuCCXQzMDIudGVzdDALggl0MzAzLnRlc3QwC4IJdDMwNC50ZXN0MAuC --CXQzMDUudGVzdDALggl0MzA2LnRlc3QwC4IJdDMwNy50ZXN0MAuCCXQzMDgudGVz --dDALggl0MzA5LnRlc3QwC4IJdDMxMC50ZXN0MAuCCXQzMTEudGVzdDALggl0MzEy --LnRlc3QwC4IJdDMxMy50ZXN0MAuCCXQzMTQudGVzdDALggl0MzE1LnRlc3QwC4IJ --dDMxNi50ZXN0MAuCCXQzMTcudGVzdDALggl0MzE4LnRlc3QwC4IJdDMxOS50ZXN0 --MAuCCXQzMjAudGVzdDALggl0MzIxLnRlc3QwC4IJdDMyMi50ZXN0MAuCCXQzMjMu --dGVzdDALggl0MzI0LnRlc3QwC4IJdDMyNS50ZXN0MAuCCXQzMjYudGVzdDALggl0 --MzI3LnRlc3QwC4IJdDMyOC50ZXN0MAuCCXQzMjkudGVzdDALggl0MzMwLnRlc3Qw --C4IJdDMzMS50ZXN0MAuCCXQzMzIudGVzdDALggl0MzMzLnRlc3QwC4IJdDMzNC50 --ZXN0MAuCCXQzMzUudGVzdDALggl0MzM2LnRlc3QwC4IJdDMzNy50ZXN0MAuCCXQz --MzgudGVzdDALggl0MzM5LnRlc3QwC4IJdDM0MC50ZXN0MAuCCXQzNDEudGVzdDAL --ggl0MzQyLnRlc3QwC4IJdDM0My50ZXN0MAuCCXQzNDQudGVzdDALggl0MzQ1LnRl --c3QwC4IJdDM0Ni50ZXN0MAuCCXQzNDcudGVzdDALggl0MzQ4LnRlc3QwC4IJdDM0 --OS50ZXN0MAuCCXQzNTAudGVzdDALggl0MzUxLnRlc3QwC4IJdDM1Mi50ZXN0MAuC --CXQzNTMudGVzdDALggl0MzU0LnRlc3QwC4IJdDM1NS50ZXN0MAuCCXQzNTYudGVz --dDALggl0MzU3LnRlc3QwC4IJdDM1OC50ZXN0MAuCCXQzNTkudGVzdDALggl0MzYw --LnRlc3QwC4IJdDM2MS50ZXN0MAuCCXQzNjIudGVzdDALggl0MzYzLnRlc3QwC4IJ --dDM2NC50ZXN0MAuCCXQzNjUudGVzdDALggl0MzY2LnRlc3QwC4IJdDM2Ny50ZXN0 --MAuCCXQzNjgudGVzdDALggl0MzY5LnRlc3QwC4IJdDM3MC50ZXN0MAuCCXQzNzEu --dGVzdDALggl0MzcyLnRlc3QwC4IJdDM3My50ZXN0MAuCCXQzNzQudGVzdDALggl0 --Mzc1LnRlc3QwC4IJdDM3Ni50ZXN0MAuCCXQzNzcudGVzdDALggl0Mzc4LnRlc3Qw --C4IJdDM3OS50ZXN0MAuCCXQzODAudGVzdDALggl0MzgxLnRlc3QwC4IJdDM4Mi50 --ZXN0MAuCCXQzODMudGVzdDALggl0Mzg0LnRlc3QwC4IJdDM4NS50ZXN0MAuCCXQz --ODYudGVzdDALggl0Mzg3LnRlc3QwC4IJdDM4OC50ZXN0MAuCCXQzODkudGVzdDAL --ggl0MzkwLnRlc3QwC4IJdDM5MS50ZXN0MAuCCXQzOTIudGVzdDALggl0MzkzLnRl --c3QwC4IJdDM5NC50ZXN0MAuCCXQzOTUudGVzdDALggl0Mzk2LnRlc3QwC4IJdDM5 --Ny50ZXN0MAuCCXQzOTgudGVzdDALggl0Mzk5LnRlc3QwC4IJdDQwMC50ZXN0MAuC --CXQ0MDEudGVzdDALggl0NDAyLnRlc3QwC4IJdDQwMy50ZXN0MAuCCXQ0MDQudGVz --dDALggl0NDA1LnRlc3QwC4IJdDQwNi50ZXN0MAuCCXQ0MDcudGVzdDALggl0NDA4 --LnRlc3QwC4IJdDQwOS50ZXN0MAuCCXQ0MTAudGVzdDALggl0NDExLnRlc3QwC4IJ --dDQxMi50ZXN0MAuCCXQ0MTMudGVzdDALggl0NDE0LnRlc3QwC4IJdDQxNS50ZXN0 --MAuCCXQ0MTYudGVzdDALggl0NDE3LnRlc3QwC4IJdDQxOC50ZXN0MAuCCXQ0MTku --dGVzdDALggl0NDIwLnRlc3QwC4IJdDQyMS50ZXN0MAuCCXQ0MjIudGVzdDALggl0 --NDIzLnRlc3QwC4IJdDQyNC50ZXN0MAuCCXQ0MjUudGVzdDALggl0NDI2LnRlc3Qw --C4IJdDQyNy50ZXN0MAuCCXQ0MjgudGVzdDALggl0NDI5LnRlc3QwC4IJdDQzMC50 --ZXN0MAuCCXQ0MzEudGVzdDALggl0NDMyLnRlc3QwC4IJdDQzMy50ZXN0MAuCCXQ0 --MzQudGVzdDALggl0NDM1LnRlc3QwC4IJdDQzNi50ZXN0MAuCCXQ0MzcudGVzdDAL --ggl0NDM4LnRlc3QwC4IJdDQzOS50ZXN0MAuCCXQ0NDAudGVzdDALggl0NDQxLnRl --c3QwC4IJdDQ0Mi50ZXN0MAuCCXQ0NDMudGVzdDALggl0NDQ0LnRlc3QwC4IJdDQ0 --NS50ZXN0MAuCCXQ0NDYudGVzdDALggl0NDQ3LnRlc3QwC4IJdDQ0OC50ZXN0MAuC --CXQ0NDkudGVzdDALggl0NDUwLnRlc3QwC4IJdDQ1MS50ZXN0MAuCCXQ0NTIudGVz --dDALggl0NDUzLnRlc3QwC4IJdDQ1NC50ZXN0MAuCCXQ0NTUudGVzdDALggl0NDU2 --LnRlc3QwC4IJdDQ1Ny50ZXN0MAuCCXQ0NTgudGVzdDALggl0NDU5LnRlc3QwC4IJ --dDQ2MC50ZXN0MAuCCXQ0NjEudGVzdDALggl0NDYyLnRlc3QwC4IJdDQ2My50ZXN0 --MAuCCXQ0NjQudGVzdDALggl0NDY1LnRlc3QwC4IJdDQ2Ni50ZXN0MAuCCXQ0Njcu --dGVzdDALggl0NDY4LnRlc3QwC4IJdDQ2OS50ZXN0MAuCCXQ0NzAudGVzdDALggl0 --NDcxLnRlc3QwC4IJdDQ3Mi50ZXN0MAuCCXQ0NzMudGVzdDALggl0NDc0LnRlc3Qw --C4IJdDQ3NS50ZXN0MAuCCXQ0NzYudGVzdDALggl0NDc3LnRlc3QwC4IJdDQ3OC50 --ZXN0MAuCCXQ0NzkudGVzdDALggl0NDgwLnRlc3QwC4IJdDQ4MS50ZXN0MAuCCXQ0 --ODIudGVzdDALggl0NDgzLnRlc3QwC4IJdDQ4NC50ZXN0MAuCCXQ0ODUudGVzdDAL --ggl0NDg2LnRlc3QwC4IJdDQ4Ny50ZXN0MAuCCXQ0ODgudGVzdDALggl0NDg5LnRl --c3QwC4IJdDQ5MC50ZXN0MAuCCXQ0OTEudGVzdDALggl0NDkyLnRlc3QwC4IJdDQ5 --My50ZXN0MAuCCXQ0OTQudGVzdDALggl0NDk1LnRlc3QwC4IJdDQ5Ni50ZXN0MAuC --CXQ0OTcudGVzdDALggl0NDk4LnRlc3QwC4IJdDQ5OS50ZXN0MAuCCXQ1MDAudGVz --dDALggl0NTAxLnRlc3QwC4IJdDUwMi50ZXN0MAuCCXQ1MDMudGVzdDALggl0NTA0 --LnRlc3QwC4IJdDUwNS50ZXN0MAuCCXQ1MDYudGVzdDALggl0NTA3LnRlc3QwC4IJ --dDUwOC50ZXN0MAuCCXQ1MDkudGVzdDALggl0NTEwLnRlc3QwC4IJdDUxMS50ZXN0 --MAuCCXQ1MTIudGVzdDALggl0NTEzLnRlc3QwC4IJdDUxNC50ZXN0MAuCCXQ1MTUu --dGVzdDALggl0NTE2LnRlc3QwC4IJdDUxNy50ZXN0MAuCCXQ1MTgudGVzdDALggl0 --NTE5LnRlc3QwC4IJdDUyMC50ZXN0MAuCCXQ1MjEudGVzdDALggl0NTIyLnRlc3Qw --C4IJdDUyMy50ZXN0MAuCCXQ1MjQudGVzdDALggl0NTI1LnRlc3QwC4IJdDUyNi50 --ZXN0MAuCCXQ1MjcudGVzdDALggl0NTI4LnRlc3QwC4IJdDUyOS50ZXN0MAuCCXQ1 --MzAudGVzdDALggl0NTMxLnRlc3QwC4IJdDUzMi50ZXN0MAuCCXQ1MzMudGVzdDAL --ggl0NTM0LnRlc3QwC4IJdDUzNS50ZXN0MAuCCXQ1MzYudGVzdDALggl0NTM3LnRl --c3QwC4IJdDUzOC50ZXN0MAuCCXQ1MzkudGVzdDALggl0NTQwLnRlc3QwC4IJdDU0 --MS50ZXN0MAuCCXQ1NDIudGVzdDALggl0NTQzLnRlc3QwC4IJdDU0NC50ZXN0MAuC --CXQ1NDUudGVzdDALggl0NTQ2LnRlc3QwC4IJdDU0Ny50ZXN0MAuCCXQ1NDgudGVz --dDALggl0NTQ5LnRlc3QwC4IJdDU1MC50ZXN0MAuCCXQ1NTEudGVzdDALggl0NTUy --LnRlc3QwC4IJdDU1My50ZXN0MAuCCXQ1NTQudGVzdDALggl0NTU1LnRlc3QwC4IJ --dDU1Ni50ZXN0MAuCCXQ1NTcudGVzdDALggl0NTU4LnRlc3QwC4IJdDU1OS50ZXN0 --MAuCCXQ1NjAudGVzdDALggl0NTYxLnRlc3QwC4IJdDU2Mi50ZXN0MAuCCXQ1NjMu --dGVzdDALggl0NTY0LnRlc3QwC4IJdDU2NS50ZXN0MAuCCXQ1NjYudGVzdDALggl0 --NTY3LnRlc3QwC4IJdDU2OC50ZXN0MAuCCXQ1NjkudGVzdDALggl0NTcwLnRlc3Qw --C4IJdDU3MS50ZXN0MAuCCXQ1NzIudGVzdDALggl0NTczLnRlc3QwC4IJdDU3NC50 --ZXN0MAuCCXQ1NzUudGVzdDALggl0NTc2LnRlc3QwC4IJdDU3Ny50ZXN0MAuCCXQ1 --NzgudGVzdDALggl0NTc5LnRlc3QwC4IJdDU4MC50ZXN0MAuCCXQ1ODEudGVzdDAL --ggl0NTgyLnRlc3QwC4IJdDU4My50ZXN0MAuCCXQ1ODQudGVzdDALggl0NTg1LnRl --c3QwC4IJdDU4Ni50ZXN0MAuCCXQ1ODcudGVzdDALggl0NTg4LnRlc3QwC4IJdDU4 --OS50ZXN0MAuCCXQ1OTAudGVzdDALggl0NTkxLnRlc3QwC4IJdDU5Mi50ZXN0MAuC --CXQ1OTMudGVzdDALggl0NTk0LnRlc3QwC4IJdDU5NS50ZXN0MAuCCXQ1OTYudGVz --dDALggl0NTk3LnRlc3QwC4IJdDU5OC50ZXN0MAuCCXQ1OTkudGVzdDALggl0NjAw --LnRlc3QwC4IJdDYwMS50ZXN0MAuCCXQ2MDIudGVzdDALggl0NjAzLnRlc3QwC4IJ --dDYwNC50ZXN0MAuCCXQ2MDUudGVzdDALggl0NjA2LnRlc3QwC4IJdDYwNy50ZXN0 --MAuCCXQ2MDgudGVzdDALggl0NjA5LnRlc3QwC4IJdDYxMC50ZXN0MAuCCXQ2MTEu --dGVzdDALggl0NjEyLnRlc3QwC4IJdDYxMy50ZXN0MAuCCXQ2MTQudGVzdDALggl0 --NjE1LnRlc3QwC4IJdDYxNi50ZXN0MAuCCXQ2MTcudGVzdDALggl0NjE4LnRlc3Qw --C4IJdDYxOS50ZXN0MAuCCXQ2MjAudGVzdDALggl0NjIxLnRlc3QwC4IJdDYyMi50 --ZXN0MAuCCXQ2MjMudGVzdDALggl0NjI0LnRlc3QwC4IJdDYyNS50ZXN0MAuCCXQ2 --MjYudGVzdDALggl0NjI3LnRlc3QwC4IJdDYyOC50ZXN0MAuCCXQ2MjkudGVzdDAL --ggl0NjMwLnRlc3QwC4IJdDYzMS50ZXN0MAuCCXQ2MzIudGVzdDALggl0NjMzLnRl --c3QwC4IJdDYzNC50ZXN0MAuCCXQ2MzUudGVzdDALggl0NjM2LnRlc3QwC4IJdDYz --Ny50ZXN0MAuCCXQ2MzgudGVzdDALggl0NjM5LnRlc3QwC4IJdDY0MC50ZXN0MAuC --CXQ2NDEudGVzdDALggl0NjQyLnRlc3QwC4IJdDY0My50ZXN0MAuCCXQ2NDQudGVz --dDALggl0NjQ1LnRlc3QwC4IJdDY0Ni50ZXN0MAuCCXQ2NDcudGVzdDALggl0NjQ4 --LnRlc3QwC4IJdDY0OS50ZXN0MAuCCXQ2NTAudGVzdDALggl0NjUxLnRlc3QwC4IJ --dDY1Mi50ZXN0MAuCCXQ2NTMudGVzdDALggl0NjU0LnRlc3QwC4IJdDY1NS50ZXN0 --MAuCCXQ2NTYudGVzdDALggl0NjU3LnRlc3QwC4IJdDY1OC50ZXN0MAuCCXQ2NTku --dGVzdDALggl0NjYwLnRlc3QwC4IJdDY2MS50ZXN0MAuCCXQ2NjIudGVzdDALggl0 --NjYzLnRlc3QwC4IJdDY2NC50ZXN0MAuCCXQ2NjUudGVzdDALggl0NjY2LnRlc3Qw --C4IJdDY2Ny50ZXN0MAuCCXQ2NjgudGVzdDALggl0NjY5LnRlc3QwC4IJdDY3MC50 --ZXN0MAuCCXQ2NzEudGVzdDALggl0NjcyLnRlc3QwC4IJdDY3My50ZXN0MAuCCXQ2 --NzQudGVzdDALggl0Njc1LnRlc3QwC4IJdDY3Ni50ZXN0MAuCCXQ2NzcudGVzdDAL --ggl0Njc4LnRlc3QwC4IJdDY3OS50ZXN0MAuCCXQ2ODAudGVzdDALggl0NjgxLnRl --c3QwC4IJdDY4Mi50ZXN0MAuCCXQ2ODMudGVzdDALggl0Njg0LnRlc3QwC4IJdDY4 --NS50ZXN0MAuCCXQ2ODYudGVzdDALggl0Njg3LnRlc3QwC4IJdDY4OC50ZXN0MAuC --CXQ2ODkudGVzdDALggl0NjkwLnRlc3QwC4IJdDY5MS50ZXN0MAuCCXQ2OTIudGVz --dDALggl0NjkzLnRlc3QwC4IJdDY5NC50ZXN0MAuCCXQ2OTUudGVzdDALggl0Njk2 --LnRlc3QwC4IJdDY5Ny50ZXN0MAuCCXQ2OTgudGVzdDALggl0Njk5LnRlc3QwC4IJ --dDcwMC50ZXN0MAuCCXQ3MDEudGVzdDALggl0NzAyLnRlc3QwC4IJdDcwMy50ZXN0 --MAuCCXQ3MDQudGVzdDALggl0NzA1LnRlc3QwC4IJdDcwNi50ZXN0MAuCCXQ3MDcu --dGVzdDALggl0NzA4LnRlc3QwC4IJdDcwOS50ZXN0MAuCCXQ3MTAudGVzdDALggl0 --NzExLnRlc3QwC4IJdDcxMi50ZXN0MAuCCXQ3MTMudGVzdDALggl0NzE0LnRlc3Qw --C4IJdDcxNS50ZXN0MAuCCXQ3MTYudGVzdDALggl0NzE3LnRlc3QwC4IJdDcxOC50 --ZXN0MAuCCXQ3MTkudGVzdDALggl0NzIwLnRlc3QwC4IJdDcyMS50ZXN0MAuCCXQ3 --MjIudGVzdDALggl0NzIzLnRlc3QwC4IJdDcyNC50ZXN0MAuCCXQ3MjUudGVzdDAL --ggl0NzI2LnRlc3QwC4IJdDcyNy50ZXN0MAuCCXQ3MjgudGVzdDALggl0NzI5LnRl --c3QwC4IJdDczMC50ZXN0MAuCCXQ3MzEudGVzdDALggl0NzMyLnRlc3QwC4IJdDcz --My50ZXN0MAuCCXQ3MzQudGVzdDALggl0NzM1LnRlc3QwC4IJdDczNi50ZXN0MAuC --CXQ3MzcudGVzdDALggl0NzM4LnRlc3QwC4IJdDczOS50ZXN0MAuCCXQ3NDAudGVz --dDALggl0NzQxLnRlc3QwC4IJdDc0Mi50ZXN0MAuCCXQ3NDMudGVzdDALggl0NzQ0 --LnRlc3QwC4IJdDc0NS50ZXN0MAuCCXQ3NDYudGVzdDALggl0NzQ3LnRlc3QwC4IJ --dDc0OC50ZXN0MAuCCXQ3NDkudGVzdDALggl0NzUwLnRlc3QwC4IJdDc1MS50ZXN0 --MAuCCXQ3NTIudGVzdDALggl0NzUzLnRlc3QwC4IJdDc1NC50ZXN0MAuCCXQ3NTUu --dGVzdDALggl0NzU2LnRlc3QwC4IJdDc1Ny50ZXN0MAuCCXQ3NTgudGVzdDALggl0 --NzU5LnRlc3QwC4IJdDc2MC50ZXN0MAuCCXQ3NjEudGVzdDALggl0NzYyLnRlc3Qw --C4IJdDc2My50ZXN0MAuCCXQ3NjQudGVzdDALggl0NzY1LnRlc3QwC4IJdDc2Ni50 --ZXN0MAuCCXQ3NjcudGVzdDALggl0NzY4LnRlc3QwC4IJdDc2OS50ZXN0MAuCCXQ3 --NzAudGVzdDALggl0NzcxLnRlc3QwC4IJdDc3Mi50ZXN0MAuCCXQ3NzMudGVzdDAL --ggl0Nzc0LnRlc3QwC4IJdDc3NS50ZXN0MAuCCXQ3NzYudGVzdDALggl0Nzc3LnRl --c3QwC4IJdDc3OC50ZXN0MAuCCXQ3NzkudGVzdDALggl0NzgwLnRlc3QwC4IJdDc4 --MS50ZXN0MAuCCXQ3ODIudGVzdDALggl0NzgzLnRlc3QwC4IJdDc4NC50ZXN0MAuC --CXQ3ODUudGVzdDALggl0Nzg2LnRlc3QwC4IJdDc4Ny50ZXN0MAuCCXQ3ODgudGVz --dDALggl0Nzg5LnRlc3QwC4IJdDc5MC50ZXN0MAuCCXQ3OTEudGVzdDALggl0Nzky --LnRlc3QwC4IJdDc5My50ZXN0MAuCCXQ3OTQudGVzdDALggl0Nzk1LnRlc3QwC4IJ --dDc5Ni50ZXN0MAuCCXQ3OTcudGVzdDALggl0Nzk4LnRlc3QwC4IJdDc5OS50ZXN0 --MAuCCXQ4MDAudGVzdDALggl0ODAxLnRlc3QwC4IJdDgwMi50ZXN0MAuCCXQ4MDMu --dGVzdDALggl0ODA0LnRlc3QwC4IJdDgwNS50ZXN0MAuCCXQ4MDYudGVzdDALggl0 --ODA3LnRlc3QwC4IJdDgwOC50ZXN0MAuCCXQ4MDkudGVzdDALggl0ODEwLnRlc3Qw --C4IJdDgxMS50ZXN0MAuCCXQ4MTIudGVzdDALggl0ODEzLnRlc3QwC4IJdDgxNC50 --ZXN0MAuCCXQ4MTUudGVzdDALggl0ODE2LnRlc3QwC4IJdDgxNy50ZXN0MAuCCXQ4 --MTgudGVzdDALggl0ODE5LnRlc3QwC4IJdDgyMC50ZXN0MAuCCXQ4MjEudGVzdDAL --ggl0ODIyLnRlc3QwC4IJdDgyMy50ZXN0MAuCCXQ4MjQudGVzdDALggl0ODI1LnRl --c3QwC4IJdDgyNi50ZXN0MAuCCXQ4MjcudGVzdDALggl0ODI4LnRlc3QwC4IJdDgy --OS50ZXN0MAuCCXQ4MzAudGVzdDALggl0ODMxLnRlc3QwC4IJdDgzMi50ZXN0MAuC --CXQ4MzMudGVzdDALggl0ODM0LnRlc3QwC4IJdDgzNS50ZXN0MAuCCXQ4MzYudGVz --dDALggl0ODM3LnRlc3QwC4IJdDgzOC50ZXN0MAuCCXQ4MzkudGVzdDALggl0ODQw --LnRlc3QwC4IJdDg0MS50ZXN0MAuCCXQ4NDIudGVzdDALggl0ODQzLnRlc3QwC4IJ --dDg0NC50ZXN0MAuCCXQ4NDUudGVzdDALggl0ODQ2LnRlc3QwC4IJdDg0Ny50ZXN0 --MAuCCXQ4NDgudGVzdDALggl0ODQ5LnRlc3QwC4IJdDg1MC50ZXN0MAuCCXQ4NTEu --dGVzdDALggl0ODUyLnRlc3QwC4IJdDg1My50ZXN0MAuCCXQ4NTQudGVzdDALggl0 --ODU1LnRlc3QwC4IJdDg1Ni50ZXN0MAuCCXQ4NTcudGVzdDALggl0ODU4LnRlc3Qw --C4IJdDg1OS50ZXN0MAuCCXQ4NjAudGVzdDALggl0ODYxLnRlc3QwC4IJdDg2Mi50 --ZXN0MAuCCXQ4NjMudGVzdDALggl0ODY0LnRlc3QwC4IJdDg2NS50ZXN0MAuCCXQ4 --NjYudGVzdDALggl0ODY3LnRlc3QwC4IJdDg2OC50ZXN0MAuCCXQ4NjkudGVzdDAL --ggl0ODcwLnRlc3QwC4IJdDg3MS50ZXN0MAuCCXQ4NzIudGVzdDALggl0ODczLnRl --c3QwC4IJdDg3NC50ZXN0MAuCCXQ4NzUudGVzdDALggl0ODc2LnRlc3QwC4IJdDg3 --Ny50ZXN0MAuCCXQ4NzgudGVzdDALggl0ODc5LnRlc3QwC4IJdDg4MC50ZXN0MAuC --CXQ4ODEudGVzdDALggl0ODgyLnRlc3QwC4IJdDg4My50ZXN0MAuCCXQ4ODQudGVz --dDALggl0ODg1LnRlc3QwC4IJdDg4Ni50ZXN0MAuCCXQ4ODcudGVzdDALggl0ODg4 --LnRlc3QwC4IJdDg4OS50ZXN0MAuCCXQ4OTAudGVzdDALggl0ODkxLnRlc3QwC4IJ --dDg5Mi50ZXN0MAuCCXQ4OTMudGVzdDALggl0ODk0LnRlc3QwC4IJdDg5NS50ZXN0 --MAuCCXQ4OTYudGVzdDALggl0ODk3LnRlc3QwC4IJdDg5OC50ZXN0MAuCCXQ4OTku --dGVzdDALggl0OTAwLnRlc3QwC4IJdDkwMS50ZXN0MAuCCXQ5MDIudGVzdDALggl0 --OTAzLnRlc3QwC4IJdDkwNC50ZXN0MAuCCXQ5MDUudGVzdDALggl0OTA2LnRlc3Qw --C4IJdDkwNy50ZXN0MAuCCXQ5MDgudGVzdDALggl0OTA5LnRlc3QwC4IJdDkxMC50 --ZXN0MAuCCXQ5MTEudGVzdDALggl0OTEyLnRlc3QwC4IJdDkxMy50ZXN0MAuCCXQ5 --MTQudGVzdDALggl0OTE1LnRlc3QwC4IJdDkxNi50ZXN0MAuCCXQ5MTcudGVzdDAL --ggl0OTE4LnRlc3QwC4IJdDkxOS50ZXN0MAuCCXQ5MjAudGVzdDALggl0OTIxLnRl --c3QwC4IJdDkyMi50ZXN0MAuCCXQ5MjMudGVzdDALggl0OTI0LnRlc3QwC4IJdDky --NS50ZXN0MAuCCXQ5MjYudGVzdDALggl0OTI3LnRlc3QwC4IJdDkyOC50ZXN0MAuC --CXQ5MjkudGVzdDALggl0OTMwLnRlc3QwC4IJdDkzMS50ZXN0MAuCCXQ5MzIudGVz --dDALggl0OTMzLnRlc3QwC4IJdDkzNC50ZXN0MAuCCXQ5MzUudGVzdDALggl0OTM2 --LnRlc3QwC4IJdDkzNy50ZXN0MAuCCXQ5MzgudGVzdDALggl0OTM5LnRlc3QwC4IJ --dDk0MC50ZXN0MAuCCXQ5NDEudGVzdDALggl0OTQyLnRlc3QwC4IJdDk0My50ZXN0 --MAuCCXQ5NDQudGVzdDALggl0OTQ1LnRlc3QwC4IJdDk0Ni50ZXN0MAuCCXQ5NDcu --dGVzdDALggl0OTQ4LnRlc3QwC4IJdDk0OS50ZXN0MAuCCXQ5NTAudGVzdDALggl0 --OTUxLnRlc3QwC4IJdDk1Mi50ZXN0MAuCCXQ5NTMudGVzdDALggl0OTU0LnRlc3Qw --C4IJdDk1NS50ZXN0MAuCCXQ5NTYudGVzdDALggl0OTU3LnRlc3QwC4IJdDk1OC50 --ZXN0MAuCCXQ5NTkudGVzdDALggl0OTYwLnRlc3QwC4IJdDk2MS50ZXN0MAuCCXQ5 --NjIudGVzdDALggl0OTYzLnRlc3QwC4IJdDk2NC50ZXN0MAuCCXQ5NjUudGVzdDAL --ggl0OTY2LnRlc3QwC4IJdDk2Ny50ZXN0MAuCCXQ5NjgudGVzdDALggl0OTY5LnRl --c3QwC4IJdDk3MC50ZXN0MAuCCXQ5NzEudGVzdDALggl0OTcyLnRlc3QwC4IJdDk3 --My50ZXN0MAuCCXQ5NzQudGVzdDALggl0OTc1LnRlc3QwC4IJdDk3Ni50ZXN0MAuC --CXQ5NzcudGVzdDALggl0OTc4LnRlc3QwC4IJdDk3OS50ZXN0MAuCCXQ5ODAudGVz --dDALggl0OTgxLnRlc3QwC4IJdDk4Mi50ZXN0MAuCCXQ5ODMudGVzdDALggl0OTg0 --LnRlc3QwC4IJdDk4NS50ZXN0MAuCCXQ5ODYudGVzdDALggl0OTg3LnRlc3QwC4IJ --dDk4OC50ZXN0MAuCCXQ5ODkudGVzdDALggl0OTkwLnRlc3QwC4IJdDk5MS50ZXN0 --MAuCCXQ5OTIudGVzdDALggl0OTkzLnRlc3QwC4IJdDk5NC50ZXN0MAuCCXQ5OTUu --dGVzdDALggl0OTk2LnRlc3QwC4IJdDk5Ny50ZXN0MAuCCXQ5OTgudGVzdDALggl0 --OTk5LnRlc3QwDIIKdDEwMDAudGVzdDAMggp0MTAwMS50ZXN0MAyCCnQxMDAyLnRl --c3QwDIIKdDEwMDMudGVzdDAMggp0MTAwNC50ZXN0MAyCCnQxMDA1LnRlc3QwDIIK --dDEwMDYudGVzdDAMggp0MTAwNy50ZXN0MAyCCnQxMDA4LnRlc3QwDIIKdDEwMDku --dGVzdDAMggp0MTAxMC50ZXN0MAyCCnQxMDExLnRlc3QwDIIKdDEwMTIudGVzdDAM --ggp0MTAxMy50ZXN0MAyCCnQxMDE0LnRlc3QwDIIKdDEwMTUudGVzdDAMggp0MTAx --Ni50ZXN0MAyCCnQxMDE3LnRlc3QwDIIKdDEwMTgudGVzdDAMggp0MTAxOS50ZXN0 --MAyCCnQxMDIwLnRlc3QwDIIKdDEwMjEudGVzdDAMggp0MTAyMi50ZXN0MAyCCnQx --MDIzLnRlc3QwDIIKdDEwMjQudGVzdDAKhwgKAAAA/////zAKhwgKAAAB/////zAK --hwgKAAAC/////zAKhwgKAAAD/////zAKhwgKAAAE/////zAKhwgKAAAF/////zAK --hwgKAAAG/////zAKhwgKAAAH/////zAKhwgKAAAI/////zAKhwgKAAAJ/////zAK --hwgKAAAK/////zAKhwgKAAAL/////zAKhwgKAAAM/////zAKhwgKAAAN/////zAK --hwgKAAAO/////zAKhwgKAAAP/////zAKhwgKAAAQ/////zAKhwgKAAAR/////zAK --hwgKAAAS/////zAKhwgKAAAT/////zAKhwgKAAAU/////zAKhwgKAAAV/////zAK --hwgKAAAW/////zAKhwgKAAAX/////zAKhwgKAAAY/////zAKhwgKAAAZ/////zAK --hwgKAAAa/////zAKhwgKAAAb/////zAKhwgKAAAc/////zAKhwgKAAAd/////zAK --hwgKAAAe/////zAKhwgKAAAf/////zAKhwgKAAAg/////zAKhwgKAAAh/////zAK --hwgKAAAi/////zAKhwgKAAAj/////zAKhwgKAAAk/////zAKhwgKAAAl/////zAK --hwgKAAAm/////zAKhwgKAAAn/////zAKhwgKAAAo/////zAKhwgKAAAp/////zAK --hwgKAAAq/////zAKhwgKAAAr/////zAKhwgKAAAs/////zAKhwgKAAAt/////zAK --hwgKAAAu/////zAKhwgKAAAv/////zAKhwgKAAAw/////zAKhwgKAAAx/////zAK --hwgKAAAy/////zAKhwgKAAAz/////zAKhwgKAAA0/////zAKhwgKAAA1/////zAK --hwgKAAA2/////zAKhwgKAAA3/////zAKhwgKAAA4/////zAKhwgKAAA5/////zAK --hwgKAAA6/////zAKhwgKAAA7/////zAKhwgKAAA8/////zAKhwgKAAA9/////zAK --hwgKAAA+/////zAKhwgKAAA//////zAKhwgKAABA/////zAKhwgKAABB/////zAK --hwgKAABC/////zAKhwgKAABD/////zAKhwgKAABE/////zAKhwgKAABF/////zAK --hwgKAABG/////zAKhwgKAABH/////zAKhwgKAABI/////zAKhwgKAABJ/////zAK --hwgKAABK/////zAKhwgKAABL/////zAKhwgKAABM/////zAKhwgKAABN/////zAK --hwgKAABO/////zAKhwgKAABP/////zAKhwgKAABQ/////zAKhwgKAABR/////zAK --hwgKAABS/////zAKhwgKAABT/////zAKhwgKAABU/////zAKhwgKAABV/////zAK --hwgKAABW/////zAKhwgKAABX/////zAKhwgKAABY/////zAKhwgKAABZ/////zAK --hwgKAABa/////zAKhwgKAABb/////zAKhwgKAABc/////zAKhwgKAABd/////zAK --hwgKAABe/////zAKhwgKAABf/////zAKhwgKAABg/////zAKhwgKAABh/////zAK --hwgKAABi/////zAKhwgKAABj/////zAKhwgKAABk/////zAKhwgKAABl/////zAK --hwgKAABm/////zAKhwgKAABn/////zAKhwgKAABo/////zAKhwgKAABp/////zAK --hwgKAABq/////zAKhwgKAABr/////zAKhwgKAABs/////zAKhwgKAABt/////zAK --hwgKAABu/////zAKhwgKAABv/////zAKhwgKAABw/////zAKhwgKAABx/////zAK --hwgKAABy/////zAKhwgKAABz/////zAKhwgKAAB0/////zAKhwgKAAB1/////zAK --hwgKAAB2/////zAKhwgKAAB3/////zAKhwgKAAB4/////zAKhwgKAAB5/////zAK --hwgKAAB6/////zAKhwgKAAB7/////zAKhwgKAAB8/////zAKhwgKAAB9/////zAK --hwgKAAB+/////zAKhwgKAAB//////zAKhwgKAACA/////zAKhwgKAACB/////zAK --hwgKAACC/////zAKhwgKAACD/////zAKhwgKAACE/////zAKhwgKAACF/////zAK --hwgKAACG/////zAKhwgKAACH/////zAKhwgKAACI/////zAKhwgKAACJ/////zAK --hwgKAACK/////zAKhwgKAACL/////zAKhwgKAACM/////zAKhwgKAACN/////zAK --hwgKAACO/////zAKhwgKAACP/////zAKhwgKAACQ/////zAKhwgKAACR/////zAK --hwgKAACS/////zAKhwgKAACT/////zAKhwgKAACU/////zAKhwgKAACV/////zAK --hwgKAACW/////zAKhwgKAACX/////zAKhwgKAACY/////zAKhwgKAACZ/////zAK --hwgKAACa/////zAKhwgKAACb/////zAKhwgKAACc/////zAKhwgKAACd/////zAK --hwgKAACe/////zAKhwgKAACf/////zAKhwgKAACg/////zAKhwgKAACh/////zAK --hwgKAACi/////zAKhwgKAACj/////zAKhwgKAACk/////zAKhwgKAACl/////zAK --hwgKAACm/////zAKhwgKAACn/////zAKhwgKAACo/////zAKhwgKAACp/////zAK --hwgKAACq/////zAKhwgKAACr/////zAKhwgKAACs/////zAKhwgKAACt/////zAK --hwgKAACu/////zAKhwgKAACv/////zAKhwgKAACw/////zAKhwgKAACx/////zAK --hwgKAACy/////zAKhwgKAACz/////zAKhwgKAAC0/////zAKhwgKAAC1/////zAK --hwgKAAC2/////zAKhwgKAAC3/////zAKhwgKAAC4/////zAKhwgKAAC5/////zAK --hwgKAAC6/////zAKhwgKAAC7/////zAKhwgKAAC8/////zAKhwgKAAC9/////zAK --hwgKAAC+/////zAKhwgKAAC//////zAKhwgKAADA/////zAKhwgKAADB/////zAK --hwgKAADC/////zAKhwgKAADD/////zAKhwgKAADE/////zAKhwgKAADF/////zAK --hwgKAADG/////zAKhwgKAADH/////zAKhwgKAADI/////zAKhwgKAADJ/////zAK --hwgKAADK/////zAKhwgKAADL/////zAKhwgKAADM/////zAKhwgKAADN/////zAK --hwgKAADO/////zAKhwgKAADP/////zAKhwgKAADQ/////zAKhwgKAADR/////zAK --hwgKAADS/////zAKhwgKAADT/////zAKhwgKAADU/////zAKhwgKAADV/////zAK --hwgKAADW/////zAKhwgKAADX/////zAKhwgKAADY/////zAKhwgKAADZ/////zAK --hwgKAADa/////zAKhwgKAADb/////zAKhwgKAADc/////zAKhwgKAADd/////zAK --hwgKAADe/////zAKhwgKAADf/////zAKhwgKAADg/////zAKhwgKAADh/////zAK --hwgKAADi/////zAKhwgKAADj/////zAKhwgKAADk/////zAKhwgKAADl/////zAK --hwgKAADm/////zAKhwgKAADn/////zAKhwgKAADo/////zAKhwgKAADp/////zAK --hwgKAADq/////zAKhwgKAADr/////zAKhwgKAADs/////zAKhwgKAADt/////zAK --hwgKAADu/////zAKhwgKAADv/////zAKhwgKAADw/////zAKhwgKAADx/////zAK --hwgKAADy/////zAKhwgKAADz/////zAKhwgKAAD0/////zAKhwgKAAD1/////zAK --hwgKAAD2/////zAKhwgKAAD3/////zAKhwgKAAD4/////zAKhwgKAAD5/////zAK --hwgKAAD6/////zAKhwgKAAD7/////zAKhwgKAAD8/////zAKhwgKAAD9/////zAK --hwgKAAD+/////zAKhwgKAAD//////zAKhwgKAAEA/////zAKhwgKAAEB/////zAK --hwgKAAEC/////zAKhwgKAAED/////zAKhwgKAAEE/////zAKhwgKAAEF/////zAK --hwgKAAEG/////zAKhwgKAAEH/////zAKhwgKAAEI/////zAKhwgKAAEJ/////zAK --hwgKAAEK/////zAKhwgKAAEL/////zAKhwgKAAEM/////zAKhwgKAAEN/////zAK --hwgKAAEO/////zAKhwgKAAEP/////zAKhwgKAAEQ/////zAKhwgKAAER/////zAK --hwgKAAES/////zAKhwgKAAET/////zAKhwgKAAEU/////zAKhwgKAAEV/////zAK --hwgKAAEW/////zAKhwgKAAEX/////zAKhwgKAAEY/////zAKhwgKAAEZ/////zAK --hwgKAAEa/////zAKhwgKAAEb/////zAKhwgKAAEc/////zAKhwgKAAEd/////zAK --hwgKAAEe/////zAKhwgKAAEf/////zAKhwgKAAEg/////zAKhwgKAAEh/////zAK --hwgKAAEi/////zAKhwgKAAEj/////zAKhwgKAAEk/////zAKhwgKAAEl/////zAK --hwgKAAEm/////zAKhwgKAAEn/////zAKhwgKAAEo/////zAKhwgKAAEp/////zAK --hwgKAAEq/////zAKhwgKAAEr/////zAKhwgKAAEs/////zAKhwgKAAEt/////zAK --hwgKAAEu/////zAKhwgKAAEv/////zAKhwgKAAEw/////zAKhwgKAAEx/////zAK --hwgKAAEy/////zAKhwgKAAEz/////zAKhwgKAAE0/////zAKhwgKAAE1/////zAK --hwgKAAE2/////zAKhwgKAAE3/////zAKhwgKAAE4/////zAKhwgKAAE5/////zAK --hwgKAAE6/////zAKhwgKAAE7/////zAKhwgKAAE8/////zAKhwgKAAE9/////zAK --hwgKAAE+/////zAKhwgKAAE//////zAKhwgKAAFA/////zAKhwgKAAFB/////zAK --hwgKAAFC/////zAKhwgKAAFD/////zAKhwgKAAFE/////zAKhwgKAAFF/////zAK --hwgKAAFG/////zAKhwgKAAFH/////zAKhwgKAAFI/////zAKhwgKAAFJ/////zAK --hwgKAAFK/////zAKhwgKAAFL/////zAKhwgKAAFM/////zAKhwgKAAFN/////zAK --hwgKAAFO/////zAKhwgKAAFP/////zAKhwgKAAFQ/////zAKhwgKAAFR/////zAK --hwgKAAFS/////zAKhwgKAAFT/////zAKhwgKAAFU/////zAKhwgKAAFV/////zAK --hwgKAAFW/////zAKhwgKAAFX/////zAKhwgKAAFY/////zAKhwgKAAFZ/////zAK --hwgKAAFa/////zAKhwgKAAFb/////zAKhwgKAAFc/////zAKhwgKAAFd/////zAK --hwgKAAFe/////zAKhwgKAAFf/////zAKhwgKAAFg/////zAKhwgKAAFh/////zAK --hwgKAAFi/////zAKhwgKAAFj/////zAKhwgKAAFk/////zAKhwgKAAFl/////zAK --hwgKAAFm/////zAKhwgKAAFn/////zAKhwgKAAFo/////zAKhwgKAAFp/////zAK --hwgKAAFq/////zAKhwgKAAFr/////zAKhwgKAAFs/////zAKhwgKAAFt/////zAK --hwgKAAFu/////zAKhwgKAAFv/////zAKhwgKAAFw/////zAKhwgKAAFx/////zAK --hwgKAAFy/////zAKhwgKAAFz/////zAKhwgKAAF0/////zAKhwgKAAF1/////zAK --hwgKAAF2/////zAKhwgKAAF3/////zAKhwgKAAF4/////zAKhwgKAAF5/////zAK --hwgKAAF6/////zAKhwgKAAF7/////zAKhwgKAAF8/////zAKhwgKAAF9/////zAK --hwgKAAF+/////zAKhwgKAAF//////zAKhwgKAAGA/////zAKhwgKAAGB/////zAK --hwgKAAGC/////zAKhwgKAAGD/////zAKhwgKAAGE/////zAKhwgKAAGF/////zAK --hwgKAAGG/////zAKhwgKAAGH/////zAKhwgKAAGI/////zAKhwgKAAGJ/////zAK --hwgKAAGK/////zAKhwgKAAGL/////zAKhwgKAAGM/////zAKhwgKAAGN/////zAK --hwgKAAGO/////zAKhwgKAAGP/////zAKhwgKAAGQ/////zAKhwgKAAGR/////zAK --hwgKAAGS/////zAKhwgKAAGT/////zAKhwgKAAGU/////zAKhwgKAAGV/////zAK --hwgKAAGW/////zAKhwgKAAGX/////zAKhwgKAAGY/////zAKhwgKAAGZ/////zAK --hwgKAAGa/////zAKhwgKAAGb/////zAKhwgKAAGc/////zAKhwgKAAGd/////zAK --hwgKAAGe/////zAKhwgKAAGf/////zAKhwgKAAGg/////zAKhwgKAAGh/////zAK --hwgKAAGi/////zAKhwgKAAGj/////zAKhwgKAAGk/////zAKhwgKAAGl/////zAK --hwgKAAGm/////zAKhwgKAAGn/////zAKhwgKAAGo/////zAKhwgKAAGp/////zAK --hwgKAAGq/////zAKhwgKAAGr/////zAKhwgKAAGs/////zAKhwgKAAGt/////zAK --hwgKAAGu/////zAKhwgKAAGv/////zAKhwgKAAGw/////zAKhwgKAAGx/////zAK --hwgKAAGy/////zAKhwgKAAGz/////zAKhwgKAAG0/////zAKhwgKAAG1/////zAK --hwgKAAG2/////zAKhwgKAAG3/////zAKhwgKAAG4/////zAKhwgKAAG5/////zAK --hwgKAAG6/////zAKhwgKAAG7/////zAKhwgKAAG8/////zAKhwgKAAG9/////zAK --hwgKAAG+/////zAKhwgKAAG//////zAKhwgKAAHA/////zAKhwgKAAHB/////zAK --hwgKAAHC/////zAKhwgKAAHD/////zAKhwgKAAHE/////zAKhwgKAAHF/////zAK --hwgKAAHG/////zAKhwgKAAHH/////zAKhwgKAAHI/////zAKhwgKAAHJ/////zAK --hwgKAAHK/////zAKhwgKAAHL/////zAKhwgKAAHM/////zAKhwgKAAHN/////zAK --hwgKAAHO/////zAKhwgKAAHP/////zAKhwgKAAHQ/////zAKhwgKAAHR/////zAK --hwgKAAHS/////zAKhwgKAAHT/////zAKhwgKAAHU/////zAKhwgKAAHV/////zAK --hwgKAAHW/////zAKhwgKAAHX/////zAKhwgKAAHY/////zAKhwgKAAHZ/////zAK --hwgKAAHa/////zAKhwgKAAHb/////zAKhwgKAAHc/////zAKhwgKAAHd/////zAK --hwgKAAHe/////zAKhwgKAAHf/////zAKhwgKAAHg/////zAKhwgKAAHh/////zAK --hwgKAAHi/////zAKhwgKAAHj/////zAKhwgKAAHk/////zAKhwgKAAHl/////zAK --hwgKAAHm/////zAKhwgKAAHn/////zAKhwgKAAHo/////zAKhwgKAAHp/////zAK --hwgKAAHq/////zAKhwgKAAHr/////zAKhwgKAAHs/////zAKhwgKAAHt/////zAK --hwgKAAHu/////zAKhwgKAAHv/////zAKhwgKAAHw/////zAKhwgKAAHx/////zAK --hwgKAAHy/////zAKhwgKAAHz/////zAKhwgKAAH0/////zAKhwgKAAH1/////zAK --hwgKAAH2/////zAKhwgKAAH3/////zAKhwgKAAH4/////zAKhwgKAAH5/////zAK --hwgKAAH6/////zAKhwgKAAH7/////zAKhwgKAAH8/////zAKhwgKAAH9/////zAK --hwgKAAH+/////zAKhwgKAAH//////zAKhwgKAAIA/////zAKhwgKAAIB/////zAK --hwgKAAIC/////zAKhwgKAAID/////zAKhwgKAAIE/////zAKhwgKAAIF/////zAK --hwgKAAIG/////zAKhwgKAAIH/////zAKhwgKAAII/////zAKhwgKAAIJ/////zAK --hwgKAAIK/////zAKhwgKAAIL/////zAKhwgKAAIM/////zAKhwgKAAIN/////zAK --hwgKAAIO/////zAKhwgKAAIP/////zAKhwgKAAIQ/////zAKhwgKAAIR/////zAK --hwgKAAIS/////zAKhwgKAAIT/////zAKhwgKAAIU/////zAKhwgKAAIV/////zAK --hwgKAAIW/////zAKhwgKAAIX/////zAKhwgKAAIY/////zAKhwgKAAIZ/////zAK --hwgKAAIa/////zAKhwgKAAIb/////zAKhwgKAAIc/////zAKhwgKAAId/////zAK --hwgKAAIe/////zAKhwgKAAIf/////zAKhwgKAAIg/////zAKhwgKAAIh/////zAK --hwgKAAIi/////zAKhwgKAAIj/////zAKhwgKAAIk/////zAKhwgKAAIl/////zAK --hwgKAAIm/////zAKhwgKAAIn/////zAKhwgKAAIo/////zAKhwgKAAIp/////zAK --hwgKAAIq/////zAKhwgKAAIr/////zAKhwgKAAIs/////zAKhwgKAAIt/////zAK --hwgKAAIu/////zAKhwgKAAIv/////zAKhwgKAAIw/////zAKhwgKAAIx/////zAK --hwgKAAIy/////zAKhwgKAAIz/////zAKhwgKAAI0/////zAKhwgKAAI1/////zAK --hwgKAAI2/////zAKhwgKAAI3/////zAKhwgKAAI4/////zAKhwgKAAI5/////zAK --hwgKAAI6/////zAKhwgKAAI7/////zAKhwgKAAI8/////zAKhwgKAAI9/////zAK --hwgKAAI+/////zAKhwgKAAI//////zAKhwgKAAJA/////zAKhwgKAAJB/////zAK --hwgKAAJC/////zAKhwgKAAJD/////zAKhwgKAAJE/////zAKhwgKAAJF/////zAK --hwgKAAJG/////zAKhwgKAAJH/////zAKhwgKAAJI/////zAKhwgKAAJJ/////zAK --hwgKAAJK/////zAKhwgKAAJL/////zAKhwgKAAJM/////zAKhwgKAAJN/////zAK --hwgKAAJO/////zAKhwgKAAJP/////zAKhwgKAAJQ/////zAKhwgKAAJR/////zAK --hwgKAAJS/////zAKhwgKAAJT/////zAKhwgKAAJU/////zAKhwgKAAJV/////zAK --hwgKAAJW/////zAKhwgKAAJX/////zAKhwgKAAJY/////zAKhwgKAAJZ/////zAK --hwgKAAJa/////zAKhwgKAAJb/////zAKhwgKAAJc/////zAKhwgKAAJd/////zAK --hwgKAAJe/////zAKhwgKAAJf/////zAKhwgKAAJg/////zAKhwgKAAJh/////zAK --hwgKAAJi/////zAKhwgKAAJj/////zAKhwgKAAJk/////zAKhwgKAAJl/////zAK --hwgKAAJm/////zAKhwgKAAJn/////zAKhwgKAAJo/////zAKhwgKAAJp/////zAK --hwgKAAJq/////zAKhwgKAAJr/////zAKhwgKAAJs/////zAKhwgKAAJt/////zAK --hwgKAAJu/////zAKhwgKAAJv/////zAKhwgKAAJw/////zAKhwgKAAJx/////zAK --hwgKAAJy/////zAKhwgKAAJz/////zAKhwgKAAJ0/////zAKhwgKAAJ1/////zAK --hwgKAAJ2/////zAKhwgKAAJ3/////zAKhwgKAAJ4/////zAKhwgKAAJ5/////zAK --hwgKAAJ6/////zAKhwgKAAJ7/////zAKhwgKAAJ8/////zAKhwgKAAJ9/////zAK --hwgKAAJ+/////zAKhwgKAAJ//////zAKhwgKAAKA/////zAKhwgKAAKB/////zAK --hwgKAAKC/////zAKhwgKAAKD/////zAKhwgKAAKE/////zAKhwgKAAKF/////zAK --hwgKAAKG/////zAKhwgKAAKH/////zAKhwgKAAKI/////zAKhwgKAAKJ/////zAK --hwgKAAKK/////zAKhwgKAAKL/////zAKhwgKAAKM/////zAKhwgKAAKN/////zAK --hwgKAAKO/////zAKhwgKAAKP/////zAKhwgKAAKQ/////zAKhwgKAAKR/////zAK --hwgKAAKS/////zAKhwgKAAKT/////zAKhwgKAAKU/////zAKhwgKAAKV/////zAK --hwgKAAKW/////zAKhwgKAAKX/////zAKhwgKAAKY/////zAKhwgKAAKZ/////zAK --hwgKAAKa/////zAKhwgKAAKb/////zAKhwgKAAKc/////zAKhwgKAAKd/////zAK --hwgKAAKe/////zAKhwgKAAKf/////zAKhwgKAAKg/////zAKhwgKAAKh/////zAK --hwgKAAKi/////zAKhwgKAAKj/////zAKhwgKAAKk/////zAKhwgKAAKl/////zAK --hwgKAAKm/////zAKhwgKAAKn/////zAKhwgKAAKo/////zAKhwgKAAKp/////zAK --hwgKAAKq/////zAKhwgKAAKr/////zAKhwgKAAKs/////zAKhwgKAAKt/////zAK --hwgKAAKu/////zAKhwgKAAKv/////zAKhwgKAAKw/////zAKhwgKAAKx/////zAK --hwgKAAKy/////zAKhwgKAAKz/////zAKhwgKAAK0/////zAKhwgKAAK1/////zAK --hwgKAAK2/////zAKhwgKAAK3/////zAKhwgKAAK4/////zAKhwgKAAK5/////zAK --hwgKAAK6/////zAKhwgKAAK7/////zAKhwgKAAK8/////zAKhwgKAAK9/////zAK --hwgKAAK+/////zAKhwgKAAK//////zAKhwgKAALA/////zAKhwgKAALB/////zAK --hwgKAALC/////zAKhwgKAALD/////zAKhwgKAALE/////zAKhwgKAALF/////zAK --hwgKAALG/////zAKhwgKAALH/////zAKhwgKAALI/////zAKhwgKAALJ/////zAK --hwgKAALK/////zAKhwgKAALL/////zAKhwgKAALM/////zAKhwgKAALN/////zAK --hwgKAALO/////zAKhwgKAALP/////zAKhwgKAALQ/////zAKhwgKAALR/////zAK --hwgKAALS/////zAKhwgKAALT/////zAKhwgKAALU/////zAKhwgKAALV/////zAK --hwgKAALW/////zAKhwgKAALX/////zAKhwgKAALY/////zAKhwgKAALZ/////zAK --hwgKAALa/////zAKhwgKAALb/////zAKhwgKAALc/////zAKhwgKAALd/////zAK --hwgKAALe/////zAKhwgKAALf/////zAKhwgKAALg/////zAKhwgKAALh/////zAK --hwgKAALi/////zAKhwgKAALj/////zAKhwgKAALk/////zAKhwgKAALl/////zAK --hwgKAALm/////zAKhwgKAALn/////zAKhwgKAALo/////zAKhwgKAALp/////zAK --hwgKAALq/////zAKhwgKAALr/////zAKhwgKAALs/////zAKhwgKAALt/////zAK --hwgKAALu/////zAKhwgKAALv/////zAKhwgKAALw/////zAKhwgKAALx/////zAK --hwgKAALy/////zAKhwgKAALz/////zAKhwgKAAL0/////zAKhwgKAAL1/////zAK --hwgKAAL2/////zAKhwgKAAL3/////zAKhwgKAAL4/////zAKhwgKAAL5/////zAK --hwgKAAL6/////zAKhwgKAAL7/////zAKhwgKAAL8/////zAKhwgKAAL9/////zAK --hwgKAAL+/////zAKhwgKAAL//////zAKhwgKAAMA/////zAKhwgKAAMB/////zAK --hwgKAAMC/////zAKhwgKAAMD/////zAKhwgKAAME/////zAKhwgKAAMF/////zAK --hwgKAAMG/////zAKhwgKAAMH/////zAKhwgKAAMI/////zAKhwgKAAMJ/////zAK --hwgKAAMK/////zAKhwgKAAML/////zAKhwgKAAMM/////zAKhwgKAAMN/////zAK --hwgKAAMO/////zAKhwgKAAMP/////zAKhwgKAAMQ/////zAKhwgKAAMR/////zAK --hwgKAAMS/////zAKhwgKAAMT/////zAKhwgKAAMU/////zAKhwgKAAMV/////zAK --hwgKAAMW/////zAKhwgKAAMX/////zAKhwgKAAMY/////zAKhwgKAAMZ/////zAK --hwgKAAMa/////zAKhwgKAAMb/////zAKhwgKAAMc/////zAKhwgKAAMd/////zAK --hwgKAAMe/////zAKhwgKAAMf/////zAKhwgKAAMg/////zAKhwgKAAMh/////zAK --hwgKAAMi/////zAKhwgKAAMj/////zAKhwgKAAMk/////zAKhwgKAAMl/////zAK --hwgKAAMm/////zAKhwgKAAMn/////zAKhwgKAAMo/////zAKhwgKAAMp/////zAK --hwgKAAMq/////zAKhwgKAAMr/////zAKhwgKAAMs/////zAKhwgKAAMt/////zAK --hwgKAAMu/////zAKhwgKAAMv/////zAKhwgKAAMw/////zAKhwgKAAMx/////zAK --hwgKAAMy/////zAKhwgKAAMz/////zAKhwgKAAM0/////zAKhwgKAAM1/////zAK --hwgKAAM2/////zAKhwgKAAM3/////zAKhwgKAAM4/////zAKhwgKAAM5/////zAK --hwgKAAM6/////zAKhwgKAAM7/////zAKhwgKAAM8/////zAKhwgKAAM9/////zAK --hwgKAAM+/////zAKhwgKAAM//////zAKhwgKAANA/////zAKhwgKAANB/////zAK --hwgKAANC/////zAKhwgKAAND/////zAKhwgKAANE/////zAKhwgKAANF/////zAK --hwgKAANG/////zAKhwgKAANH/////zAKhwgKAANI/////zAKhwgKAANJ/////zAK --hwgKAANK/////zAKhwgKAANL/////zAKhwgKAANM/////zAKhwgKAANN/////zAK --hwgKAANO/////zAKhwgKAANP/////zAKhwgKAANQ/////zAKhwgKAANR/////zAK --hwgKAANS/////zAKhwgKAANT/////zAKhwgKAANU/////zAKhwgKAANV/////zAK --hwgKAANW/////zAKhwgKAANX/////zAKhwgKAANY/////zAKhwgKAANZ/////zAK --hwgKAANa/////zAKhwgKAANb/////zAKhwgKAANc/////zAKhwgKAANd/////zAK --hwgKAANe/////zAKhwgKAANf/////zAKhwgKAANg/////zAKhwgKAANh/////zAK --hwgKAANi/////zAKhwgKAANj/////zAKhwgKAANk/////zAKhwgKAANl/////zAK --hwgKAANm/////zAKhwgKAANn/////zAKhwgKAANo/////zAKhwgKAANp/////zAK --hwgKAANq/////zAKhwgKAANr/////zAKhwgKAANs/////zAKhwgKAANt/////zAK --hwgKAANu/////zAKhwgKAANv/////zAKhwgKAANw/////zAKhwgKAANx/////zAK --hwgKAANy/////zAKhwgKAANz/////zAKhwgKAAN0/////zAKhwgKAAN1/////zAK --hwgKAAN2/////zAKhwgKAAN3/////zAKhwgKAAN4/////zAKhwgKAAN5/////zAK --hwgKAAN6/////zAKhwgKAAN7/////zAKhwgKAAN8/////zAKhwgKAAN9/////zAK --hwgKAAN+/////zAKhwgKAAN//////zAKhwgKAAOA/////zAKhwgKAAOB/////zAK --hwgKAAOC/////zAKhwgKAAOD/////zAKhwgKAAOE/////zAKhwgKAAOF/////zAK --hwgKAAOG/////zAKhwgKAAOH/////zAKhwgKAAOI/////zAKhwgKAAOJ/////zAK --hwgKAAOK/////zAKhwgKAAOL/////zAKhwgKAAOM/////zAKhwgKAAON/////zAK --hwgKAAOO/////zAKhwgKAAOP/////zAKhwgKAAOQ/////zAKhwgKAAOR/////zAK --hwgKAAOS/////zAKhwgKAAOT/////zAKhwgKAAOU/////zAKhwgKAAOV/////zAK --hwgKAAOW/////zAKhwgKAAOX/////zAKhwgKAAOY/////zAKhwgKAAOZ/////zAK --hwgKAAOa/////zAKhwgKAAOb/////zAKhwgKAAOc/////zAKhwgKAAOd/////zAK --hwgKAAOe/////zAKhwgKAAOf/////zAKhwgKAAOg/////zAKhwgKAAOh/////zAK --hwgKAAOi/////zAKhwgKAAOj/////zAKhwgKAAOk/////zAKhwgKAAOl/////zAK --hwgKAAOm/////zAKhwgKAAOn/////zAKhwgKAAOo/////zAKhwgKAAOp/////zAK --hwgKAAOq/////zAKhwgKAAOr/////zAKhwgKAAOs/////zAKhwgKAAOt/////zAK --hwgKAAOu/////zAKhwgKAAOv/////zAKhwgKAAOw/////zAKhwgKAAOx/////zAK --hwgKAAOy/////zAKhwgKAAOz/////zAKhwgKAAO0/////zAKhwgKAAO1/////zAK --hwgKAAO2/////zAKhwgKAAO3/////zAKhwgKAAO4/////zAKhwgKAAO5/////zAK --hwgKAAO6/////zAKhwgKAAO7/////zAKhwgKAAO8/////zAKhwgKAAO9/////zAK --hwgKAAO+/////zAKhwgKAAO//////zAKhwgKAAPA/////zAKhwgKAAPB/////zAK --hwgKAAPC/////zAKhwgKAAPD/////zAKhwgKAAPE/////zAKhwgKAAPF/////zAK --hwgKAAPG/////zAKhwgKAAPH/////zAKhwgKAAPI/////zAKhwgKAAPJ/////zAK --hwgKAAPK/////zAKhwgKAAPL/////zAKhwgKAAPM/////zAKhwgKAAPN/////zAK --hwgKAAPO/////zAKhwgKAAPP/////zAKhwgKAAPQ/////zAKhwgKAAPR/////zAK --hwgKAAPS/////zAKhwgKAAPT/////zAKhwgKAAPU/////zAKhwgKAAPV/////zAK --hwgKAAPW/////zAKhwgKAAPX/////zAKhwgKAAPY/////zAKhwgKAAPZ/////zAK --hwgKAAPa/////zAKhwgKAAPb/////zAKhwgKAAPc/////zAKhwgKAAPd/////zAK --hwgKAAPe/////zAKhwgKAAPf/////zAKhwgKAAPg/////zAKhwgKAAPh/////zAK --hwgKAAPi/////zAKhwgKAAPj/////zAKhwgKAAPk/////zAKhwgKAAPl/////zAK --hwgKAAPm/////zAKhwgKAAPn/////zAKhwgKAAPo/////zAKhwgKAAPp/////zAK --hwgKAAPq/////zAKhwgKAAPr/////zAKhwgKAAPs/////zAKhwgKAAPt/////zAK --hwgKAAPu/////zAKhwgKAAPv/////zAKhwgKAAPw/////zAKhwgKAAPx/////zAK --hwgKAAPy/////zAKhwgKAAPz/////zAKhwgKAAP0/////zAKhwgKAAP1/////zAK --hwgKAAP2/////zAKhwgKAAP3/////zAKhwgKAAP4/////zAKhwgKAAP5/////zAK --hwgKAAP6/////zAKhwgKAAP7/////zAKhwgKAAP8/////zAKhwgKAAP9/////zAK --hwgKAAP+/////zAKhwgKAAP//////zAKhwgKAAQA/////zAPhg1odHRwOi8vdGVz --dC8wMA+GDWh0dHA6Ly90ZXN0LzEwD4YNaHR0cDovL3Rlc3QvMjAPhg1odHRwOi8v --dGVzdC8zMA+GDWh0dHA6Ly90ZXN0LzQwD4YNaHR0cDovL3Rlc3QvNTAPhg1odHRw --Oi8vdGVzdC82MA+GDWh0dHA6Ly90ZXN0LzcwD4YNaHR0cDovL3Rlc3QvODAPhg1o --dHRwOi8vdGVzdC85MBCGDmh0dHA6Ly90ZXN0LzEwMBCGDmh0dHA6Ly90ZXN0LzEx --MBCGDmh0dHA6Ly90ZXN0LzEyMBCGDmh0dHA6Ly90ZXN0LzEzMBCGDmh0dHA6Ly90 --ZXN0LzE0MBCGDmh0dHA6Ly90ZXN0LzE1MBCGDmh0dHA6Ly90ZXN0LzE2MBCGDmh0 --dHA6Ly90ZXN0LzE3MBCGDmh0dHA6Ly90ZXN0LzE4MBCGDmh0dHA6Ly90ZXN0LzE5 --MBCGDmh0dHA6Ly90ZXN0LzIwMBCGDmh0dHA6Ly90ZXN0LzIxMBCGDmh0dHA6Ly90 --ZXN0LzIyMBCGDmh0dHA6Ly90ZXN0LzIzMBCGDmh0dHA6Ly90ZXN0LzI0MBCGDmh0 --dHA6Ly90ZXN0LzI1MBCGDmh0dHA6Ly90ZXN0LzI2MBCGDmh0dHA6Ly90ZXN0LzI3 --MBCGDmh0dHA6Ly90ZXN0LzI4MBCGDmh0dHA6Ly90ZXN0LzI5MBCGDmh0dHA6Ly90 --ZXN0LzMwMBCGDmh0dHA6Ly90ZXN0LzMxMBCGDmh0dHA6Ly90ZXN0LzMyMBCGDmh0 --dHA6Ly90ZXN0LzMzMBCGDmh0dHA6Ly90ZXN0LzM0MBCGDmh0dHA6Ly90ZXN0LzM1 --MBCGDmh0dHA6Ly90ZXN0LzM2MBCGDmh0dHA6Ly90ZXN0LzM3MBCGDmh0dHA6Ly90 --ZXN0LzM4MBCGDmh0dHA6Ly90ZXN0LzM5MBCGDmh0dHA6Ly90ZXN0LzQwMBCGDmh0 --dHA6Ly90ZXN0LzQxMBCGDmh0dHA6Ly90ZXN0LzQyMBCGDmh0dHA6Ly90ZXN0LzQz --MBCGDmh0dHA6Ly90ZXN0LzQ0MBCGDmh0dHA6Ly90ZXN0LzQ1MBCGDmh0dHA6Ly90 --ZXN0LzQ2MBCGDmh0dHA6Ly90ZXN0LzQ3MBCGDmh0dHA6Ly90ZXN0LzQ4MBCGDmh0 --dHA6Ly90ZXN0LzQ5MBCGDmh0dHA6Ly90ZXN0LzUwMBCGDmh0dHA6Ly90ZXN0LzUx --MBCGDmh0dHA6Ly90ZXN0LzUyMBCGDmh0dHA6Ly90ZXN0LzUzMBCGDmh0dHA6Ly90 --ZXN0LzU0MBCGDmh0dHA6Ly90ZXN0LzU1MBCGDmh0dHA6Ly90ZXN0LzU2MBCGDmh0 --dHA6Ly90ZXN0LzU3MBCGDmh0dHA6Ly90ZXN0LzU4MBCGDmh0dHA6Ly90ZXN0LzU5 --MBCGDmh0dHA6Ly90ZXN0LzYwMBCGDmh0dHA6Ly90ZXN0LzYxMBCGDmh0dHA6Ly90 --ZXN0LzYyMBCGDmh0dHA6Ly90ZXN0LzYzMBCGDmh0dHA6Ly90ZXN0LzY0MBCGDmh0 --dHA6Ly90ZXN0LzY1MBCGDmh0dHA6Ly90ZXN0LzY2MBCGDmh0dHA6Ly90ZXN0LzY3 --MBCGDmh0dHA6Ly90ZXN0LzY4MBCGDmh0dHA6Ly90ZXN0LzY5MBCGDmh0dHA6Ly90 --ZXN0LzcwMBCGDmh0dHA6Ly90ZXN0LzcxMBCGDmh0dHA6Ly90ZXN0LzcyMBCGDmh0 --dHA6Ly90ZXN0LzczMBCGDmh0dHA6Ly90ZXN0Lzc0MBCGDmh0dHA6Ly90ZXN0Lzc1 --MBCGDmh0dHA6Ly90ZXN0Lzc2MBCGDmh0dHA6Ly90ZXN0Lzc3MBCGDmh0dHA6Ly90 --ZXN0Lzc4MBCGDmh0dHA6Ly90ZXN0Lzc5MBCGDmh0dHA6Ly90ZXN0LzgwMBCGDmh0 --dHA6Ly90ZXN0LzgxMBCGDmh0dHA6Ly90ZXN0LzgyMBCGDmh0dHA6Ly90ZXN0Lzgz --MBCGDmh0dHA6Ly90ZXN0Lzg0MBCGDmh0dHA6Ly90ZXN0Lzg1MBCGDmh0dHA6Ly90 --ZXN0Lzg2MBCGDmh0dHA6Ly90ZXN0Lzg3MBCGDmh0dHA6Ly90ZXN0Lzg4MBCGDmh0 --dHA6Ly90ZXN0Lzg5MBCGDmh0dHA6Ly90ZXN0LzkwMBCGDmh0dHA6Ly90ZXN0Lzkx --MBCGDmh0dHA6Ly90ZXN0LzkyMBCGDmh0dHA6Ly90ZXN0LzkzMBCGDmh0dHA6Ly90 --ZXN0Lzk0MBCGDmh0dHA6Ly90ZXN0Lzk1MBCGDmh0dHA6Ly90ZXN0Lzk2MBCGDmh0 --dHA6Ly90ZXN0Lzk3MBCGDmh0dHA6Ly90ZXN0Lzk4MBCGDmh0dHA6Ly90ZXN0Lzk5 --MBGGD2h0dHA6Ly90ZXN0LzEwMDARhg9odHRwOi8vdGVzdC8xMDEwEYYPaHR0cDov --L3Rlc3QvMTAyMBGGD2h0dHA6Ly90ZXN0LzEwMzARhg9odHRwOi8vdGVzdC8xMDQw --EYYPaHR0cDovL3Rlc3QvMTA1MBGGD2h0dHA6Ly90ZXN0LzEwNjARhg9odHRwOi8v --dGVzdC8xMDcwEYYPaHR0cDovL3Rlc3QvMTA4MBGGD2h0dHA6Ly90ZXN0LzEwOTAR --hg9odHRwOi8vdGVzdC8xMTAwEYYPaHR0cDovL3Rlc3QvMTExMBGGD2h0dHA6Ly90 --ZXN0LzExMjARhg9odHRwOi8vdGVzdC8xMTMwEYYPaHR0cDovL3Rlc3QvMTE0MBGG --D2h0dHA6Ly90ZXN0LzExNTARhg9odHRwOi8vdGVzdC8xMTYwEYYPaHR0cDovL3Rl --c3QvMTE3MBGGD2h0dHA6Ly90ZXN0LzExODARhg9odHRwOi8vdGVzdC8xMTkwEYYP --aHR0cDovL3Rlc3QvMTIwMBGGD2h0dHA6Ly90ZXN0LzEyMTARhg9odHRwOi8vdGVz --dC8xMjIwEYYPaHR0cDovL3Rlc3QvMTIzMBGGD2h0dHA6Ly90ZXN0LzEyNDARhg9o --dHRwOi8vdGVzdC8xMjUwEYYPaHR0cDovL3Rlc3QvMTI2MBGGD2h0dHA6Ly90ZXN0 --LzEyNzARhg9odHRwOi8vdGVzdC8xMjgwEYYPaHR0cDovL3Rlc3QvMTI5MBGGD2h0 --dHA6Ly90ZXN0LzEzMDARhg9odHRwOi8vdGVzdC8xMzEwEYYPaHR0cDovL3Rlc3Qv --MTMyMBGGD2h0dHA6Ly90ZXN0LzEzMzARhg9odHRwOi8vdGVzdC8xMzQwEYYPaHR0 --cDovL3Rlc3QvMTM1MBGGD2h0dHA6Ly90ZXN0LzEzNjARhg9odHRwOi8vdGVzdC8x --MzcwEYYPaHR0cDovL3Rlc3QvMTM4MBGGD2h0dHA6Ly90ZXN0LzEzOTARhg9odHRw --Oi8vdGVzdC8xNDAwEYYPaHR0cDovL3Rlc3QvMTQxMBGGD2h0dHA6Ly90ZXN0LzE0 --MjARhg9odHRwOi8vdGVzdC8xNDMwEYYPaHR0cDovL3Rlc3QvMTQ0MBGGD2h0dHA6 --Ly90ZXN0LzE0NTARhg9odHRwOi8vdGVzdC8xNDYwEYYPaHR0cDovL3Rlc3QvMTQ3 --MBGGD2h0dHA6Ly90ZXN0LzE0ODARhg9odHRwOi8vdGVzdC8xNDkwEYYPaHR0cDov --L3Rlc3QvMTUwMBGGD2h0dHA6Ly90ZXN0LzE1MTARhg9odHRwOi8vdGVzdC8xNTIw --EYYPaHR0cDovL3Rlc3QvMTUzMBGGD2h0dHA6Ly90ZXN0LzE1NDARhg9odHRwOi8v --dGVzdC8xNTUwEYYPaHR0cDovL3Rlc3QvMTU2MBGGD2h0dHA6Ly90ZXN0LzE1NzAR --hg9odHRwOi8vdGVzdC8xNTgwEYYPaHR0cDovL3Rlc3QvMTU5MBGGD2h0dHA6Ly90 --ZXN0LzE2MDARhg9odHRwOi8vdGVzdC8xNjEwEYYPaHR0cDovL3Rlc3QvMTYyMBGG --D2h0dHA6Ly90ZXN0LzE2MzARhg9odHRwOi8vdGVzdC8xNjQwEYYPaHR0cDovL3Rl --c3QvMTY1MBGGD2h0dHA6Ly90ZXN0LzE2NjARhg9odHRwOi8vdGVzdC8xNjcwEYYP --aHR0cDovL3Rlc3QvMTY4MBGGD2h0dHA6Ly90ZXN0LzE2OTARhg9odHRwOi8vdGVz --dC8xNzAwEYYPaHR0cDovL3Rlc3QvMTcxMBGGD2h0dHA6Ly90ZXN0LzE3MjARhg9o --dHRwOi8vdGVzdC8xNzMwEYYPaHR0cDovL3Rlc3QvMTc0MBGGD2h0dHA6Ly90ZXN0 --LzE3NTARhg9odHRwOi8vdGVzdC8xNzYwEYYPaHR0cDovL3Rlc3QvMTc3MBGGD2h0 --dHA6Ly90ZXN0LzE3ODARhg9odHRwOi8vdGVzdC8xNzkwEYYPaHR0cDovL3Rlc3Qv --MTgwMBGGD2h0dHA6Ly90ZXN0LzE4MTARhg9odHRwOi8vdGVzdC8xODIwEYYPaHR0 --cDovL3Rlc3QvMTgzMBGGD2h0dHA6Ly90ZXN0LzE4NDARhg9odHRwOi8vdGVzdC8x --ODUwEYYPaHR0cDovL3Rlc3QvMTg2MBGGD2h0dHA6Ly90ZXN0LzE4NzARhg9odHRw --Oi8vdGVzdC8xODgwEYYPaHR0cDovL3Rlc3QvMTg5MBGGD2h0dHA6Ly90ZXN0LzE5 --MDARhg9odHRwOi8vdGVzdC8xOTEwEYYPaHR0cDovL3Rlc3QvMTkyMBGGD2h0dHA6 --Ly90ZXN0LzE5MzARhg9odHRwOi8vdGVzdC8xOTQwEYYPaHR0cDovL3Rlc3QvMTk1 --MBGGD2h0dHA6Ly90ZXN0LzE5NjARhg9odHRwOi8vdGVzdC8xOTcwEYYPaHR0cDov --L3Rlc3QvMTk4MBGGD2h0dHA6Ly90ZXN0LzE5OTARhg9odHRwOi8vdGVzdC8yMDAw --EYYPaHR0cDovL3Rlc3QvMjAxMBGGD2h0dHA6Ly90ZXN0LzIwMjARhg9odHRwOi8v --dGVzdC8yMDMwEYYPaHR0cDovL3Rlc3QvMjA0MBGGD2h0dHA6Ly90ZXN0LzIwNTAR --hg9odHRwOi8vdGVzdC8yMDYwEYYPaHR0cDovL3Rlc3QvMjA3MBGGD2h0dHA6Ly90 --ZXN0LzIwODARhg9odHRwOi8vdGVzdC8yMDkwEYYPaHR0cDovL3Rlc3QvMjEwMBGG --D2h0dHA6Ly90ZXN0LzIxMTARhg9odHRwOi8vdGVzdC8yMTIwEYYPaHR0cDovL3Rl --c3QvMjEzMBGGD2h0dHA6Ly90ZXN0LzIxNDARhg9odHRwOi8vdGVzdC8yMTUwEYYP --aHR0cDovL3Rlc3QvMjE2MBGGD2h0dHA6Ly90ZXN0LzIxNzARhg9odHRwOi8vdGVz --dC8yMTgwEYYPaHR0cDovL3Rlc3QvMjE5MBGGD2h0dHA6Ly90ZXN0LzIyMDARhg9o --dHRwOi8vdGVzdC8yMjEwEYYPaHR0cDovL3Rlc3QvMjIyMBGGD2h0dHA6Ly90ZXN0 --LzIyMzARhg9odHRwOi8vdGVzdC8yMjQwEYYPaHR0cDovL3Rlc3QvMjI1MBGGD2h0 --dHA6Ly90ZXN0LzIyNjARhg9odHRwOi8vdGVzdC8yMjcwEYYPaHR0cDovL3Rlc3Qv --MjI4MBGGD2h0dHA6Ly90ZXN0LzIyOTARhg9odHRwOi8vdGVzdC8yMzAwEYYPaHR0 --cDovL3Rlc3QvMjMxMBGGD2h0dHA6Ly90ZXN0LzIzMjARhg9odHRwOi8vdGVzdC8y --MzMwEYYPaHR0cDovL3Rlc3QvMjM0MBGGD2h0dHA6Ly90ZXN0LzIzNTARhg9odHRw --Oi8vdGVzdC8yMzYwEYYPaHR0cDovL3Rlc3QvMjM3MBGGD2h0dHA6Ly90ZXN0LzIz --ODARhg9odHRwOi8vdGVzdC8yMzkwEYYPaHR0cDovL3Rlc3QvMjQwMBGGD2h0dHA6 --Ly90ZXN0LzI0MTARhg9odHRwOi8vdGVzdC8yNDIwEYYPaHR0cDovL3Rlc3QvMjQz --MBGGD2h0dHA6Ly90ZXN0LzI0NDARhg9odHRwOi8vdGVzdC8yNDUwEYYPaHR0cDov --L3Rlc3QvMjQ2MBGGD2h0dHA6Ly90ZXN0LzI0NzARhg9odHRwOi8vdGVzdC8yNDgw --EYYPaHR0cDovL3Rlc3QvMjQ5MBGGD2h0dHA6Ly90ZXN0LzI1MDARhg9odHRwOi8v --dGVzdC8yNTEwEYYPaHR0cDovL3Rlc3QvMjUyMBGGD2h0dHA6Ly90ZXN0LzI1MzAR --hg9odHRwOi8vdGVzdC8yNTQwEYYPaHR0cDovL3Rlc3QvMjU1MBGGD2h0dHA6Ly90 --ZXN0LzI1NjARhg9odHRwOi8vdGVzdC8yNTcwEYYPaHR0cDovL3Rlc3QvMjU4MBGG --D2h0dHA6Ly90ZXN0LzI1OTARhg9odHRwOi8vdGVzdC8yNjAwEYYPaHR0cDovL3Rl --c3QvMjYxMBGGD2h0dHA6Ly90ZXN0LzI2MjARhg9odHRwOi8vdGVzdC8yNjMwEYYP --aHR0cDovL3Rlc3QvMjY0MBGGD2h0dHA6Ly90ZXN0LzI2NTARhg9odHRwOi8vdGVz --dC8yNjYwEYYPaHR0cDovL3Rlc3QvMjY3MBGGD2h0dHA6Ly90ZXN0LzI2ODARhg9o --dHRwOi8vdGVzdC8yNjkwEYYPaHR0cDovL3Rlc3QvMjcwMBGGD2h0dHA6Ly90ZXN0 --LzI3MTARhg9odHRwOi8vdGVzdC8yNzIwEYYPaHR0cDovL3Rlc3QvMjczMBGGD2h0 --dHA6Ly90ZXN0LzI3NDARhg9odHRwOi8vdGVzdC8yNzUwEYYPaHR0cDovL3Rlc3Qv --Mjc2MBGGD2h0dHA6Ly90ZXN0LzI3NzARhg9odHRwOi8vdGVzdC8yNzgwEYYPaHR0 --cDovL3Rlc3QvMjc5MBGGD2h0dHA6Ly90ZXN0LzI4MDARhg9odHRwOi8vdGVzdC8y --ODEwEYYPaHR0cDovL3Rlc3QvMjgyMBGGD2h0dHA6Ly90ZXN0LzI4MzARhg9odHRw --Oi8vdGVzdC8yODQwEYYPaHR0cDovL3Rlc3QvMjg1MBGGD2h0dHA6Ly90ZXN0LzI4 --NjARhg9odHRwOi8vdGVzdC8yODcwEYYPaHR0cDovL3Rlc3QvMjg4MBGGD2h0dHA6 --Ly90ZXN0LzI4OTARhg9odHRwOi8vdGVzdC8yOTAwEYYPaHR0cDovL3Rlc3QvMjkx --MBGGD2h0dHA6Ly90ZXN0LzI5MjARhg9odHRwOi8vdGVzdC8yOTMwEYYPaHR0cDov --L3Rlc3QvMjk0MBGGD2h0dHA6Ly90ZXN0LzI5NTARhg9odHRwOi8vdGVzdC8yOTYw --EYYPaHR0cDovL3Rlc3QvMjk3MBGGD2h0dHA6Ly90ZXN0LzI5ODARhg9odHRwOi8v --dGVzdC8yOTkwEYYPaHR0cDovL3Rlc3QvMzAwMBGGD2h0dHA6Ly90ZXN0LzMwMTAR --hg9odHRwOi8vdGVzdC8zMDIwEYYPaHR0cDovL3Rlc3QvMzAzMBGGD2h0dHA6Ly90 --ZXN0LzMwNDARhg9odHRwOi8vdGVzdC8zMDUwEYYPaHR0cDovL3Rlc3QvMzA2MBGG --D2h0dHA6Ly90ZXN0LzMwNzARhg9odHRwOi8vdGVzdC8zMDgwEYYPaHR0cDovL3Rl --c3QvMzA5MBGGD2h0dHA6Ly90ZXN0LzMxMDARhg9odHRwOi8vdGVzdC8zMTEwEYYP --aHR0cDovL3Rlc3QvMzEyMBGGD2h0dHA6Ly90ZXN0LzMxMzARhg9odHRwOi8vdGVz --dC8zMTQwEYYPaHR0cDovL3Rlc3QvMzE1MBGGD2h0dHA6Ly90ZXN0LzMxNjARhg9o --dHRwOi8vdGVzdC8zMTcwEYYPaHR0cDovL3Rlc3QvMzE4MBGGD2h0dHA6Ly90ZXN0 --LzMxOTARhg9odHRwOi8vdGVzdC8zMjAwEYYPaHR0cDovL3Rlc3QvMzIxMBGGD2h0 --dHA6Ly90ZXN0LzMyMjARhg9odHRwOi8vdGVzdC8zMjMwEYYPaHR0cDovL3Rlc3Qv --MzI0MBGGD2h0dHA6Ly90ZXN0LzMyNTARhg9odHRwOi8vdGVzdC8zMjYwEYYPaHR0 --cDovL3Rlc3QvMzI3MBGGD2h0dHA6Ly90ZXN0LzMyODARhg9odHRwOi8vdGVzdC8z --MjkwEYYPaHR0cDovL3Rlc3QvMzMwMBGGD2h0dHA6Ly90ZXN0LzMzMTARhg9odHRw --Oi8vdGVzdC8zMzIwEYYPaHR0cDovL3Rlc3QvMzMzMBGGD2h0dHA6Ly90ZXN0LzMz --NDARhg9odHRwOi8vdGVzdC8zMzUwEYYPaHR0cDovL3Rlc3QvMzM2MBGGD2h0dHA6 --Ly90ZXN0LzMzNzARhg9odHRwOi8vdGVzdC8zMzgwEYYPaHR0cDovL3Rlc3QvMzM5 --MBGGD2h0dHA6Ly90ZXN0LzM0MDARhg9odHRwOi8vdGVzdC8zNDEwEYYPaHR0cDov --L3Rlc3QvMzQyMBGGD2h0dHA6Ly90ZXN0LzM0MzARhg9odHRwOi8vdGVzdC8zNDQw --EYYPaHR0cDovL3Rlc3QvMzQ1MBGGD2h0dHA6Ly90ZXN0LzM0NjARhg9odHRwOi8v --dGVzdC8zNDcwEYYPaHR0cDovL3Rlc3QvMzQ4MBGGD2h0dHA6Ly90ZXN0LzM0OTAR --hg9odHRwOi8vdGVzdC8zNTAwEYYPaHR0cDovL3Rlc3QvMzUxMBGGD2h0dHA6Ly90 --ZXN0LzM1MjARhg9odHRwOi8vdGVzdC8zNTMwEYYPaHR0cDovL3Rlc3QvMzU0MBGG --D2h0dHA6Ly90ZXN0LzM1NTARhg9odHRwOi8vdGVzdC8zNTYwEYYPaHR0cDovL3Rl --c3QvMzU3MBGGD2h0dHA6Ly90ZXN0LzM1ODARhg9odHRwOi8vdGVzdC8zNTkwEYYP --aHR0cDovL3Rlc3QvMzYwMBGGD2h0dHA6Ly90ZXN0LzM2MTARhg9odHRwOi8vdGVz --dC8zNjIwEYYPaHR0cDovL3Rlc3QvMzYzMBGGD2h0dHA6Ly90ZXN0LzM2NDARhg9o --dHRwOi8vdGVzdC8zNjUwEYYPaHR0cDovL3Rlc3QvMzY2MBGGD2h0dHA6Ly90ZXN0 --LzM2NzARhg9odHRwOi8vdGVzdC8zNjgwEYYPaHR0cDovL3Rlc3QvMzY5MBGGD2h0 --dHA6Ly90ZXN0LzM3MDARhg9odHRwOi8vdGVzdC8zNzEwEYYPaHR0cDovL3Rlc3Qv --MzcyMBGGD2h0dHA6Ly90ZXN0LzM3MzARhg9odHRwOi8vdGVzdC8zNzQwEYYPaHR0 --cDovL3Rlc3QvMzc1MBGGD2h0dHA6Ly90ZXN0LzM3NjARhg9odHRwOi8vdGVzdC8z --NzcwEYYPaHR0cDovL3Rlc3QvMzc4MBGGD2h0dHA6Ly90ZXN0LzM3OTARhg9odHRw --Oi8vdGVzdC8zODAwEYYPaHR0cDovL3Rlc3QvMzgxMBGGD2h0dHA6Ly90ZXN0LzM4 --MjARhg9odHRwOi8vdGVzdC8zODMwEYYPaHR0cDovL3Rlc3QvMzg0MBGGD2h0dHA6 --Ly90ZXN0LzM4NTARhg9odHRwOi8vdGVzdC8zODYwEYYPaHR0cDovL3Rlc3QvMzg3 --MBGGD2h0dHA6Ly90ZXN0LzM4ODARhg9odHRwOi8vdGVzdC8zODkwEYYPaHR0cDov --L3Rlc3QvMzkwMBGGD2h0dHA6Ly90ZXN0LzM5MTARhg9odHRwOi8vdGVzdC8zOTIw --EYYPaHR0cDovL3Rlc3QvMzkzMBGGD2h0dHA6Ly90ZXN0LzM5NDARhg9odHRwOi8v --dGVzdC8zOTUwEYYPaHR0cDovL3Rlc3QvMzk2MBGGD2h0dHA6Ly90ZXN0LzM5NzAR --hg9odHRwOi8vdGVzdC8zOTgwEYYPaHR0cDovL3Rlc3QvMzk5MBGGD2h0dHA6Ly90 --ZXN0LzQwMDARhg9odHRwOi8vdGVzdC80MDEwEYYPaHR0cDovL3Rlc3QvNDAyMBGG --D2h0dHA6Ly90ZXN0LzQwMzARhg9odHRwOi8vdGVzdC80MDQwEYYPaHR0cDovL3Rl --c3QvNDA1MBGGD2h0dHA6Ly90ZXN0LzQwNjARhg9odHRwOi8vdGVzdC80MDcwEYYP --aHR0cDovL3Rlc3QvNDA4MBGGD2h0dHA6Ly90ZXN0LzQwOTARhg9odHRwOi8vdGVz --dC80MTAwEYYPaHR0cDovL3Rlc3QvNDExMBGGD2h0dHA6Ly90ZXN0LzQxMjARhg9o --dHRwOi8vdGVzdC80MTMwEYYPaHR0cDovL3Rlc3QvNDE0MBGGD2h0dHA6Ly90ZXN0 --LzQxNTARhg9odHRwOi8vdGVzdC80MTYwEYYPaHR0cDovL3Rlc3QvNDE3MBGGD2h0 --dHA6Ly90ZXN0LzQxODARhg9odHRwOi8vdGVzdC80MTkwEYYPaHR0cDovL3Rlc3Qv --NDIwMBGGD2h0dHA6Ly90ZXN0LzQyMTARhg9odHRwOi8vdGVzdC80MjIwEYYPaHR0 --cDovL3Rlc3QvNDIzMBGGD2h0dHA6Ly90ZXN0LzQyNDARhg9odHRwOi8vdGVzdC80 --MjUwEYYPaHR0cDovL3Rlc3QvNDI2MBGGD2h0dHA6Ly90ZXN0LzQyNzARhg9odHRw --Oi8vdGVzdC80MjgwEYYPaHR0cDovL3Rlc3QvNDI5MBGGD2h0dHA6Ly90ZXN0LzQz --MDARhg9odHRwOi8vdGVzdC80MzEwEYYPaHR0cDovL3Rlc3QvNDMyMBGGD2h0dHA6 --Ly90ZXN0LzQzMzARhg9odHRwOi8vdGVzdC80MzQwEYYPaHR0cDovL3Rlc3QvNDM1 --MBGGD2h0dHA6Ly90ZXN0LzQzNjARhg9odHRwOi8vdGVzdC80MzcwEYYPaHR0cDov --L3Rlc3QvNDM4MBGGD2h0dHA6Ly90ZXN0LzQzOTARhg9odHRwOi8vdGVzdC80NDAw --EYYPaHR0cDovL3Rlc3QvNDQxMBGGD2h0dHA6Ly90ZXN0LzQ0MjARhg9odHRwOi8v --dGVzdC80NDMwEYYPaHR0cDovL3Rlc3QvNDQ0MBGGD2h0dHA6Ly90ZXN0LzQ0NTAR --hg9odHRwOi8vdGVzdC80NDYwEYYPaHR0cDovL3Rlc3QvNDQ3MBGGD2h0dHA6Ly90 --ZXN0LzQ0ODARhg9odHRwOi8vdGVzdC80NDkwEYYPaHR0cDovL3Rlc3QvNDUwMBGG --D2h0dHA6Ly90ZXN0LzQ1MTARhg9odHRwOi8vdGVzdC80NTIwEYYPaHR0cDovL3Rl --c3QvNDUzMBGGD2h0dHA6Ly90ZXN0LzQ1NDARhg9odHRwOi8vdGVzdC80NTUwEYYP --aHR0cDovL3Rlc3QvNDU2MBGGD2h0dHA6Ly90ZXN0LzQ1NzARhg9odHRwOi8vdGVz --dC80NTgwEYYPaHR0cDovL3Rlc3QvNDU5MBGGD2h0dHA6Ly90ZXN0LzQ2MDARhg9o --dHRwOi8vdGVzdC80NjEwEYYPaHR0cDovL3Rlc3QvNDYyMBGGD2h0dHA6Ly90ZXN0 --LzQ2MzARhg9odHRwOi8vdGVzdC80NjQwEYYPaHR0cDovL3Rlc3QvNDY1MBGGD2h0 --dHA6Ly90ZXN0LzQ2NjARhg9odHRwOi8vdGVzdC80NjcwEYYPaHR0cDovL3Rlc3Qv --NDY4MBGGD2h0dHA6Ly90ZXN0LzQ2OTARhg9odHRwOi8vdGVzdC80NzAwEYYPaHR0 --cDovL3Rlc3QvNDcxMBGGD2h0dHA6Ly90ZXN0LzQ3MjARhg9odHRwOi8vdGVzdC80 --NzMwEYYPaHR0cDovL3Rlc3QvNDc0MBGGD2h0dHA6Ly90ZXN0LzQ3NTARhg9odHRw --Oi8vdGVzdC80NzYwEYYPaHR0cDovL3Rlc3QvNDc3MBGGD2h0dHA6Ly90ZXN0LzQ3 --ODARhg9odHRwOi8vdGVzdC80NzkwEYYPaHR0cDovL3Rlc3QvNDgwMBGGD2h0dHA6 --Ly90ZXN0LzQ4MTARhg9odHRwOi8vdGVzdC80ODIwEYYPaHR0cDovL3Rlc3QvNDgz --MBGGD2h0dHA6Ly90ZXN0LzQ4NDARhg9odHRwOi8vdGVzdC80ODUwEYYPaHR0cDov --L3Rlc3QvNDg2MBGGD2h0dHA6Ly90ZXN0LzQ4NzARhg9odHRwOi8vdGVzdC80ODgw --EYYPaHR0cDovL3Rlc3QvNDg5MBGGD2h0dHA6Ly90ZXN0LzQ5MDARhg9odHRwOi8v --dGVzdC80OTEwEYYPaHR0cDovL3Rlc3QvNDkyMBGGD2h0dHA6Ly90ZXN0LzQ5MzAR --hg9odHRwOi8vdGVzdC80OTQwEYYPaHR0cDovL3Rlc3QvNDk1MBGGD2h0dHA6Ly90 --ZXN0LzQ5NjARhg9odHRwOi8vdGVzdC80OTcwEYYPaHR0cDovL3Rlc3QvNDk4MBGG --D2h0dHA6Ly90ZXN0LzQ5OTARhg9odHRwOi8vdGVzdC81MDAwEYYPaHR0cDovL3Rl --c3QvNTAxMBGGD2h0dHA6Ly90ZXN0LzUwMjARhg9odHRwOi8vdGVzdC81MDMwEYYP --aHR0cDovL3Rlc3QvNTA0MBGGD2h0dHA6Ly90ZXN0LzUwNTARhg9odHRwOi8vdGVz --dC81MDYwEYYPaHR0cDovL3Rlc3QvNTA3MBGGD2h0dHA6Ly90ZXN0LzUwODARhg9o --dHRwOi8vdGVzdC81MDkwEYYPaHR0cDovL3Rlc3QvNTEwMBGGD2h0dHA6Ly90ZXN0 --LzUxMTARhg9odHRwOi8vdGVzdC81MTIwEYYPaHR0cDovL3Rlc3QvNTEzMBGGD2h0 --dHA6Ly90ZXN0LzUxNDARhg9odHRwOi8vdGVzdC81MTUwEYYPaHR0cDovL3Rlc3Qv --NTE2MBGGD2h0dHA6Ly90ZXN0LzUxNzARhg9odHRwOi8vdGVzdC81MTgwEYYPaHR0 --cDovL3Rlc3QvNTE5MBGGD2h0dHA6Ly90ZXN0LzUyMDARhg9odHRwOi8vdGVzdC81 --MjEwEYYPaHR0cDovL3Rlc3QvNTIyMBGGD2h0dHA6Ly90ZXN0LzUyMzARhg9odHRw --Oi8vdGVzdC81MjQwEYYPaHR0cDovL3Rlc3QvNTI1MBGGD2h0dHA6Ly90ZXN0LzUy --NjARhg9odHRwOi8vdGVzdC81MjcwEYYPaHR0cDovL3Rlc3QvNTI4MBGGD2h0dHA6 --Ly90ZXN0LzUyOTARhg9odHRwOi8vdGVzdC81MzAwEYYPaHR0cDovL3Rlc3QvNTMx --MBGGD2h0dHA6Ly90ZXN0LzUzMjARhg9odHRwOi8vdGVzdC81MzMwEYYPaHR0cDov --L3Rlc3QvNTM0MBGGD2h0dHA6Ly90ZXN0LzUzNTARhg9odHRwOi8vdGVzdC81MzYw --EYYPaHR0cDovL3Rlc3QvNTM3MBGGD2h0dHA6Ly90ZXN0LzUzODARhg9odHRwOi8v --dGVzdC81MzkwEYYPaHR0cDovL3Rlc3QvNTQwMBGGD2h0dHA6Ly90ZXN0LzU0MTAR --hg9odHRwOi8vdGVzdC81NDIwEYYPaHR0cDovL3Rlc3QvNTQzMBGGD2h0dHA6Ly90 --ZXN0LzU0NDARhg9odHRwOi8vdGVzdC81NDUwEYYPaHR0cDovL3Rlc3QvNTQ2MBGG --D2h0dHA6Ly90ZXN0LzU0NzARhg9odHRwOi8vdGVzdC81NDgwEYYPaHR0cDovL3Rl --c3QvNTQ5MBGGD2h0dHA6Ly90ZXN0LzU1MDARhg9odHRwOi8vdGVzdC81NTEwEYYP --aHR0cDovL3Rlc3QvNTUyMBGGD2h0dHA6Ly90ZXN0LzU1MzARhg9odHRwOi8vdGVz --dC81NTQwEYYPaHR0cDovL3Rlc3QvNTU1MBGGD2h0dHA6Ly90ZXN0LzU1NjARhg9o --dHRwOi8vdGVzdC81NTcwEYYPaHR0cDovL3Rlc3QvNTU4MBGGD2h0dHA6Ly90ZXN0 --LzU1OTARhg9odHRwOi8vdGVzdC81NjAwEYYPaHR0cDovL3Rlc3QvNTYxMBGGD2h0 --dHA6Ly90ZXN0LzU2MjARhg9odHRwOi8vdGVzdC81NjMwEYYPaHR0cDovL3Rlc3Qv --NTY0MBGGD2h0dHA6Ly90ZXN0LzU2NTARhg9odHRwOi8vdGVzdC81NjYwEYYPaHR0 --cDovL3Rlc3QvNTY3MBGGD2h0dHA6Ly90ZXN0LzU2ODARhg9odHRwOi8vdGVzdC81 --NjkwEYYPaHR0cDovL3Rlc3QvNTcwMBGGD2h0dHA6Ly90ZXN0LzU3MTARhg9odHRw --Oi8vdGVzdC81NzIwEYYPaHR0cDovL3Rlc3QvNTczMBGGD2h0dHA6Ly90ZXN0LzU3 --NDARhg9odHRwOi8vdGVzdC81NzUwEYYPaHR0cDovL3Rlc3QvNTc2MBGGD2h0dHA6 --Ly90ZXN0LzU3NzARhg9odHRwOi8vdGVzdC81NzgwEYYPaHR0cDovL3Rlc3QvNTc5 --MBGGD2h0dHA6Ly90ZXN0LzU4MDARhg9odHRwOi8vdGVzdC81ODEwEYYPaHR0cDov --L3Rlc3QvNTgyMBGGD2h0dHA6Ly90ZXN0LzU4MzARhg9odHRwOi8vdGVzdC81ODQw --EYYPaHR0cDovL3Rlc3QvNTg1MBGGD2h0dHA6Ly90ZXN0LzU4NjARhg9odHRwOi8v --dGVzdC81ODcwEYYPaHR0cDovL3Rlc3QvNTg4MBGGD2h0dHA6Ly90ZXN0LzU4OTAR --hg9odHRwOi8vdGVzdC81OTAwEYYPaHR0cDovL3Rlc3QvNTkxMBGGD2h0dHA6Ly90 --ZXN0LzU5MjARhg9odHRwOi8vdGVzdC81OTMwEYYPaHR0cDovL3Rlc3QvNTk0MBGG --D2h0dHA6Ly90ZXN0LzU5NTARhg9odHRwOi8vdGVzdC81OTYwEYYPaHR0cDovL3Rl --c3QvNTk3MBGGD2h0dHA6Ly90ZXN0LzU5ODARhg9odHRwOi8vdGVzdC81OTkwEYYP --aHR0cDovL3Rlc3QvNjAwMBGGD2h0dHA6Ly90ZXN0LzYwMTARhg9odHRwOi8vdGVz --dC82MDIwEYYPaHR0cDovL3Rlc3QvNjAzMBGGD2h0dHA6Ly90ZXN0LzYwNDARhg9o --dHRwOi8vdGVzdC82MDUwEYYPaHR0cDovL3Rlc3QvNjA2MBGGD2h0dHA6Ly90ZXN0 --LzYwNzARhg9odHRwOi8vdGVzdC82MDgwEYYPaHR0cDovL3Rlc3QvNjA5MBGGD2h0 --dHA6Ly90ZXN0LzYxMDARhg9odHRwOi8vdGVzdC82MTEwEYYPaHR0cDovL3Rlc3Qv --NjEyMBGGD2h0dHA6Ly90ZXN0LzYxMzARhg9odHRwOi8vdGVzdC82MTQwEYYPaHR0 --cDovL3Rlc3QvNjE1MBGGD2h0dHA6Ly90ZXN0LzYxNjARhg9odHRwOi8vdGVzdC82 --MTcwEYYPaHR0cDovL3Rlc3QvNjE4MBGGD2h0dHA6Ly90ZXN0LzYxOTARhg9odHRw --Oi8vdGVzdC82MjAwEYYPaHR0cDovL3Rlc3QvNjIxMBGGD2h0dHA6Ly90ZXN0LzYy --MjARhg9odHRwOi8vdGVzdC82MjMwEYYPaHR0cDovL3Rlc3QvNjI0MBGGD2h0dHA6 --Ly90ZXN0LzYyNTARhg9odHRwOi8vdGVzdC82MjYwEYYPaHR0cDovL3Rlc3QvNjI3 --MBGGD2h0dHA6Ly90ZXN0LzYyODARhg9odHRwOi8vdGVzdC82MjkwEYYPaHR0cDov --L3Rlc3QvNjMwMBGGD2h0dHA6Ly90ZXN0LzYzMTARhg9odHRwOi8vdGVzdC82MzIw --EYYPaHR0cDovL3Rlc3QvNjMzMBGGD2h0dHA6Ly90ZXN0LzYzNDARhg9odHRwOi8v --dGVzdC82MzUwEYYPaHR0cDovL3Rlc3QvNjM2MBGGD2h0dHA6Ly90ZXN0LzYzNzAR --hg9odHRwOi8vdGVzdC82MzgwEYYPaHR0cDovL3Rlc3QvNjM5MBGGD2h0dHA6Ly90 --ZXN0LzY0MDARhg9odHRwOi8vdGVzdC82NDEwEYYPaHR0cDovL3Rlc3QvNjQyMBGG --D2h0dHA6Ly90ZXN0LzY0MzARhg9odHRwOi8vdGVzdC82NDQwEYYPaHR0cDovL3Rl --c3QvNjQ1MBGGD2h0dHA6Ly90ZXN0LzY0NjARhg9odHRwOi8vdGVzdC82NDcwEYYP --aHR0cDovL3Rlc3QvNjQ4MBGGD2h0dHA6Ly90ZXN0LzY0OTARhg9odHRwOi8vdGVz --dC82NTAwEYYPaHR0cDovL3Rlc3QvNjUxMBGGD2h0dHA6Ly90ZXN0LzY1MjARhg9o --dHRwOi8vdGVzdC82NTMwEYYPaHR0cDovL3Rlc3QvNjU0MBGGD2h0dHA6Ly90ZXN0 --LzY1NTARhg9odHRwOi8vdGVzdC82NTYwEYYPaHR0cDovL3Rlc3QvNjU3MBGGD2h0 --dHA6Ly90ZXN0LzY1ODARhg9odHRwOi8vdGVzdC82NTkwEYYPaHR0cDovL3Rlc3Qv --NjYwMBGGD2h0dHA6Ly90ZXN0LzY2MTARhg9odHRwOi8vdGVzdC82NjIwEYYPaHR0 --cDovL3Rlc3QvNjYzMBGGD2h0dHA6Ly90ZXN0LzY2NDARhg9odHRwOi8vdGVzdC82 --NjUwEYYPaHR0cDovL3Rlc3QvNjY2MBGGD2h0dHA6Ly90ZXN0LzY2NzARhg9odHRw --Oi8vdGVzdC82NjgwEYYPaHR0cDovL3Rlc3QvNjY5MBGGD2h0dHA6Ly90ZXN0LzY3 --MDARhg9odHRwOi8vdGVzdC82NzEwEYYPaHR0cDovL3Rlc3QvNjcyMBGGD2h0dHA6 --Ly90ZXN0LzY3MzARhg9odHRwOi8vdGVzdC82NzQwEYYPaHR0cDovL3Rlc3QvNjc1 --MBGGD2h0dHA6Ly90ZXN0LzY3NjARhg9odHRwOi8vdGVzdC82NzcwEYYPaHR0cDov --L3Rlc3QvNjc4MBGGD2h0dHA6Ly90ZXN0LzY3OTARhg9odHRwOi8vdGVzdC82ODAw --EYYPaHR0cDovL3Rlc3QvNjgxMBGGD2h0dHA6Ly90ZXN0LzY4MjARhg9odHRwOi8v --dGVzdC82ODMwEYYPaHR0cDovL3Rlc3QvNjg0MBGGD2h0dHA6Ly90ZXN0LzY4NTAR --hg9odHRwOi8vdGVzdC82ODYwEYYPaHR0cDovL3Rlc3QvNjg3MBGGD2h0dHA6Ly90 --ZXN0LzY4ODARhg9odHRwOi8vdGVzdC82ODkwEYYPaHR0cDovL3Rlc3QvNjkwMBGG --D2h0dHA6Ly90ZXN0LzY5MTARhg9odHRwOi8vdGVzdC82OTIwEYYPaHR0cDovL3Rl --c3QvNjkzMBGGD2h0dHA6Ly90ZXN0LzY5NDARhg9odHRwOi8vdGVzdC82OTUwEYYP --aHR0cDovL3Rlc3QvNjk2MBGGD2h0dHA6Ly90ZXN0LzY5NzARhg9odHRwOi8vdGVz --dC82OTgwEYYPaHR0cDovL3Rlc3QvNjk5MBGGD2h0dHA6Ly90ZXN0LzcwMDARhg9o --dHRwOi8vdGVzdC83MDEwEYYPaHR0cDovL3Rlc3QvNzAyMBGGD2h0dHA6Ly90ZXN0 --LzcwMzARhg9odHRwOi8vdGVzdC83MDQwEYYPaHR0cDovL3Rlc3QvNzA1MBGGD2h0 --dHA6Ly90ZXN0LzcwNjARhg9odHRwOi8vdGVzdC83MDcwEYYPaHR0cDovL3Rlc3Qv --NzA4MBGGD2h0dHA6Ly90ZXN0LzcwOTARhg9odHRwOi8vdGVzdC83MTAwEYYPaHR0 --cDovL3Rlc3QvNzExMBGGD2h0dHA6Ly90ZXN0LzcxMjARhg9odHRwOi8vdGVzdC83 --MTMwEYYPaHR0cDovL3Rlc3QvNzE0MBGGD2h0dHA6Ly90ZXN0LzcxNTARhg9odHRw --Oi8vdGVzdC83MTYwEYYPaHR0cDovL3Rlc3QvNzE3MBGGD2h0dHA6Ly90ZXN0Lzcx --ODARhg9odHRwOi8vdGVzdC83MTkwEYYPaHR0cDovL3Rlc3QvNzIwMBGGD2h0dHA6 --Ly90ZXN0LzcyMTARhg9odHRwOi8vdGVzdC83MjIwEYYPaHR0cDovL3Rlc3QvNzIz --MBGGD2h0dHA6Ly90ZXN0LzcyNDARhg9odHRwOi8vdGVzdC83MjUwEYYPaHR0cDov --L3Rlc3QvNzI2MBGGD2h0dHA6Ly90ZXN0LzcyNzARhg9odHRwOi8vdGVzdC83Mjgw --EYYPaHR0cDovL3Rlc3QvNzI5MBGGD2h0dHA6Ly90ZXN0LzczMDARhg9odHRwOi8v --dGVzdC83MzEwEYYPaHR0cDovL3Rlc3QvNzMyMBGGD2h0dHA6Ly90ZXN0LzczMzAR --hg9odHRwOi8vdGVzdC83MzQwEYYPaHR0cDovL3Rlc3QvNzM1MBGGD2h0dHA6Ly90 --ZXN0LzczNjARhg9odHRwOi8vdGVzdC83MzcwEYYPaHR0cDovL3Rlc3QvNzM4MBGG --D2h0dHA6Ly90ZXN0LzczOTARhg9odHRwOi8vdGVzdC83NDAwEYYPaHR0cDovL3Rl --c3QvNzQxMBGGD2h0dHA6Ly90ZXN0Lzc0MjARhg9odHRwOi8vdGVzdC83NDMwEYYP --aHR0cDovL3Rlc3QvNzQ0MBGGD2h0dHA6Ly90ZXN0Lzc0NTARhg9odHRwOi8vdGVz --dC83NDYwEYYPaHR0cDovL3Rlc3QvNzQ3MBGGD2h0dHA6Ly90ZXN0Lzc0ODARhg9o --dHRwOi8vdGVzdC83NDkwEYYPaHR0cDovL3Rlc3QvNzUwMBGGD2h0dHA6Ly90ZXN0 --Lzc1MTARhg9odHRwOi8vdGVzdC83NTIwEYYPaHR0cDovL3Rlc3QvNzUzMBGGD2h0 --dHA6Ly90ZXN0Lzc1NDARhg9odHRwOi8vdGVzdC83NTUwEYYPaHR0cDovL3Rlc3Qv --NzU2MBGGD2h0dHA6Ly90ZXN0Lzc1NzARhg9odHRwOi8vdGVzdC83NTgwEYYPaHR0 --cDovL3Rlc3QvNzU5MBGGD2h0dHA6Ly90ZXN0Lzc2MDARhg9odHRwOi8vdGVzdC83 --NjEwEYYPaHR0cDovL3Rlc3QvNzYyMBGGD2h0dHA6Ly90ZXN0Lzc2MzARhg9odHRw --Oi8vdGVzdC83NjQwEYYPaHR0cDovL3Rlc3QvNzY1MBGGD2h0dHA6Ly90ZXN0Lzc2 --NjARhg9odHRwOi8vdGVzdC83NjcwEYYPaHR0cDovL3Rlc3QvNzY4MBGGD2h0dHA6 --Ly90ZXN0Lzc2OTARhg9odHRwOi8vdGVzdC83NzAwEYYPaHR0cDovL3Rlc3QvNzcx --MBGGD2h0dHA6Ly90ZXN0Lzc3MjARhg9odHRwOi8vdGVzdC83NzMwEYYPaHR0cDov --L3Rlc3QvNzc0MBGGD2h0dHA6Ly90ZXN0Lzc3NTARhg9odHRwOi8vdGVzdC83NzYw --EYYPaHR0cDovL3Rlc3QvNzc3MBGGD2h0dHA6Ly90ZXN0Lzc3ODARhg9odHRwOi8v --dGVzdC83NzkwEYYPaHR0cDovL3Rlc3QvNzgwMBGGD2h0dHA6Ly90ZXN0Lzc4MTAR --hg9odHRwOi8vdGVzdC83ODIwEYYPaHR0cDovL3Rlc3QvNzgzMBGGD2h0dHA6Ly90 --ZXN0Lzc4NDARhg9odHRwOi8vdGVzdC83ODUwEYYPaHR0cDovL3Rlc3QvNzg2MBGG --D2h0dHA6Ly90ZXN0Lzc4NzARhg9odHRwOi8vdGVzdC83ODgwEYYPaHR0cDovL3Rl --c3QvNzg5MBGGD2h0dHA6Ly90ZXN0Lzc5MDARhg9odHRwOi8vdGVzdC83OTEwEYYP --aHR0cDovL3Rlc3QvNzkyMBGGD2h0dHA6Ly90ZXN0Lzc5MzARhg9odHRwOi8vdGVz --dC83OTQwEYYPaHR0cDovL3Rlc3QvNzk1MBGGD2h0dHA6Ly90ZXN0Lzc5NjARhg9o --dHRwOi8vdGVzdC83OTcwEYYPaHR0cDovL3Rlc3QvNzk4MBGGD2h0dHA6Ly90ZXN0 --Lzc5OTARhg9odHRwOi8vdGVzdC84MDAwEYYPaHR0cDovL3Rlc3QvODAxMBGGD2h0 --dHA6Ly90ZXN0LzgwMjARhg9odHRwOi8vdGVzdC84MDMwEYYPaHR0cDovL3Rlc3Qv --ODA0MBGGD2h0dHA6Ly90ZXN0LzgwNTARhg9odHRwOi8vdGVzdC84MDYwEYYPaHR0 --cDovL3Rlc3QvODA3MBGGD2h0dHA6Ly90ZXN0LzgwODARhg9odHRwOi8vdGVzdC84 --MDkwEYYPaHR0cDovL3Rlc3QvODEwMBGGD2h0dHA6Ly90ZXN0LzgxMTARhg9odHRw --Oi8vdGVzdC84MTIwEYYPaHR0cDovL3Rlc3QvODEzMBGGD2h0dHA6Ly90ZXN0Lzgx --NDARhg9odHRwOi8vdGVzdC84MTUwEYYPaHR0cDovL3Rlc3QvODE2MBGGD2h0dHA6 --Ly90ZXN0LzgxNzARhg9odHRwOi8vdGVzdC84MTgwEYYPaHR0cDovL3Rlc3QvODE5 --MBGGD2h0dHA6Ly90ZXN0LzgyMDARhg9odHRwOi8vdGVzdC84MjEwEYYPaHR0cDov --L3Rlc3QvODIyMBGGD2h0dHA6Ly90ZXN0LzgyMzARhg9odHRwOi8vdGVzdC84MjQw --EYYPaHR0cDovL3Rlc3QvODI1MBGGD2h0dHA6Ly90ZXN0LzgyNjARhg9odHRwOi8v --dGVzdC84MjcwEYYPaHR0cDovL3Rlc3QvODI4MBGGD2h0dHA6Ly90ZXN0LzgyOTAR --hg9odHRwOi8vdGVzdC84MzAwEYYPaHR0cDovL3Rlc3QvODMxMBGGD2h0dHA6Ly90 --ZXN0LzgzMjARhg9odHRwOi8vdGVzdC84MzMwEYYPaHR0cDovL3Rlc3QvODM0MBGG --D2h0dHA6Ly90ZXN0LzgzNTARhg9odHRwOi8vdGVzdC84MzYwEYYPaHR0cDovL3Rl --c3QvODM3MBGGD2h0dHA6Ly90ZXN0LzgzODARhg9odHRwOi8vdGVzdC84MzkwEYYP --aHR0cDovL3Rlc3QvODQwMBGGD2h0dHA6Ly90ZXN0Lzg0MTARhg9odHRwOi8vdGVz --dC84NDIwEYYPaHR0cDovL3Rlc3QvODQzMBGGD2h0dHA6Ly90ZXN0Lzg0NDARhg9o --dHRwOi8vdGVzdC84NDUwEYYPaHR0cDovL3Rlc3QvODQ2MBGGD2h0dHA6Ly90ZXN0 --Lzg0NzARhg9odHRwOi8vdGVzdC84NDgwEYYPaHR0cDovL3Rlc3QvODQ5MBGGD2h0 --dHA6Ly90ZXN0Lzg1MDARhg9odHRwOi8vdGVzdC84NTEwEYYPaHR0cDovL3Rlc3Qv --ODUyMBGGD2h0dHA6Ly90ZXN0Lzg1MzARhg9odHRwOi8vdGVzdC84NTQwEYYPaHR0 --cDovL3Rlc3QvODU1MBGGD2h0dHA6Ly90ZXN0Lzg1NjARhg9odHRwOi8vdGVzdC84 --NTcwEYYPaHR0cDovL3Rlc3QvODU4MBGGD2h0dHA6Ly90ZXN0Lzg1OTARhg9odHRw --Oi8vdGVzdC84NjAwEYYPaHR0cDovL3Rlc3QvODYxMBGGD2h0dHA6Ly90ZXN0Lzg2 --MjARhg9odHRwOi8vdGVzdC84NjMwEYYPaHR0cDovL3Rlc3QvODY0MBGGD2h0dHA6 --Ly90ZXN0Lzg2NTARhg9odHRwOi8vdGVzdC84NjYwEYYPaHR0cDovL3Rlc3QvODY3 --MBGGD2h0dHA6Ly90ZXN0Lzg2ODARhg9odHRwOi8vdGVzdC84NjkwEYYPaHR0cDov --L3Rlc3QvODcwMBGGD2h0dHA6Ly90ZXN0Lzg3MTARhg9odHRwOi8vdGVzdC84NzIw --EYYPaHR0cDovL3Rlc3QvODczMBGGD2h0dHA6Ly90ZXN0Lzg3NDARhg9odHRwOi8v --dGVzdC84NzUwEYYPaHR0cDovL3Rlc3QvODc2MBGGD2h0dHA6Ly90ZXN0Lzg3NzAR --hg9odHRwOi8vdGVzdC84NzgwEYYPaHR0cDovL3Rlc3QvODc5MBGGD2h0dHA6Ly90 --ZXN0Lzg4MDARhg9odHRwOi8vdGVzdC84ODEwEYYPaHR0cDovL3Rlc3QvODgyMBGG --D2h0dHA6Ly90ZXN0Lzg4MzARhg9odHRwOi8vdGVzdC84ODQwEYYPaHR0cDovL3Rl --c3QvODg1MBGGD2h0dHA6Ly90ZXN0Lzg4NjARhg9odHRwOi8vdGVzdC84ODcwEYYP --aHR0cDovL3Rlc3QvODg4MBGGD2h0dHA6Ly90ZXN0Lzg4OTARhg9odHRwOi8vdGVz --dC84OTAwEYYPaHR0cDovL3Rlc3QvODkxMBGGD2h0dHA6Ly90ZXN0Lzg5MjARhg9o --dHRwOi8vdGVzdC84OTMwEYYPaHR0cDovL3Rlc3QvODk0MBGGD2h0dHA6Ly90ZXN0 --Lzg5NTARhg9odHRwOi8vdGVzdC84OTYwEYYPaHR0cDovL3Rlc3QvODk3MBGGD2h0 --dHA6Ly90ZXN0Lzg5ODARhg9odHRwOi8vdGVzdC84OTkwEYYPaHR0cDovL3Rlc3Qv --OTAwMBGGD2h0dHA6Ly90ZXN0LzkwMTARhg9odHRwOi8vdGVzdC85MDIwEYYPaHR0 --cDovL3Rlc3QvOTAzMBGGD2h0dHA6Ly90ZXN0LzkwNDARhg9odHRwOi8vdGVzdC85 --MDUwEYYPaHR0cDovL3Rlc3QvOTA2MBGGD2h0dHA6Ly90ZXN0LzkwNzARhg9odHRw --Oi8vdGVzdC85MDgwEYYPaHR0cDovL3Rlc3QvOTA5MBGGD2h0dHA6Ly90ZXN0Lzkx --MDARhg9odHRwOi8vdGVzdC85MTEwEYYPaHR0cDovL3Rlc3QvOTEyMBGGD2h0dHA6 --Ly90ZXN0LzkxMzARhg9odHRwOi8vdGVzdC85MTQwEYYPaHR0cDovL3Rlc3QvOTE1 --MBGGD2h0dHA6Ly90ZXN0LzkxNjARhg9odHRwOi8vdGVzdC85MTcwEYYPaHR0cDov --L3Rlc3QvOTE4MBGGD2h0dHA6Ly90ZXN0LzkxOTARhg9odHRwOi8vdGVzdC85MjAw --EYYPaHR0cDovL3Rlc3QvOTIxMBGGD2h0dHA6Ly90ZXN0LzkyMjARhg9odHRwOi8v --dGVzdC85MjMwEYYPaHR0cDovL3Rlc3QvOTI0MBGGD2h0dHA6Ly90ZXN0LzkyNTAR --hg9odHRwOi8vdGVzdC85MjYwEYYPaHR0cDovL3Rlc3QvOTI3MBGGD2h0dHA6Ly90 --ZXN0LzkyODARhg9odHRwOi8vdGVzdC85MjkwEYYPaHR0cDovL3Rlc3QvOTMwMBGG --D2h0dHA6Ly90ZXN0LzkzMTARhg9odHRwOi8vdGVzdC85MzIwEYYPaHR0cDovL3Rl --c3QvOTMzMBGGD2h0dHA6Ly90ZXN0LzkzNDARhg9odHRwOi8vdGVzdC85MzUwEYYP --aHR0cDovL3Rlc3QvOTM2MBGGD2h0dHA6Ly90ZXN0LzkzNzARhg9odHRwOi8vdGVz --dC85MzgwEYYPaHR0cDovL3Rlc3QvOTM5MBGGD2h0dHA6Ly90ZXN0Lzk0MDARhg9o --dHRwOi8vdGVzdC85NDEwEYYPaHR0cDovL3Rlc3QvOTQyMBGGD2h0dHA6Ly90ZXN0 --Lzk0MzARhg9odHRwOi8vdGVzdC85NDQwEYYPaHR0cDovL3Rlc3QvOTQ1MBGGD2h0 --dHA6Ly90ZXN0Lzk0NjARhg9odHRwOi8vdGVzdC85NDcwEYYPaHR0cDovL3Rlc3Qv --OTQ4MBGGD2h0dHA6Ly90ZXN0Lzk0OTARhg9odHRwOi8vdGVzdC85NTAwEYYPaHR0 --cDovL3Rlc3QvOTUxMBGGD2h0dHA6Ly90ZXN0Lzk1MjARhg9odHRwOi8vdGVzdC85 --NTMwEYYPaHR0cDovL3Rlc3QvOTU0MBGGD2h0dHA6Ly90ZXN0Lzk1NTARhg9odHRw --Oi8vdGVzdC85NTYwEYYPaHR0cDovL3Rlc3QvOTU3MBGGD2h0dHA6Ly90ZXN0Lzk1 --ODARhg9odHRwOi8vdGVzdC85NTkwEYYPaHR0cDovL3Rlc3QvOTYwMBGGD2h0dHA6 --Ly90ZXN0Lzk2MTARhg9odHRwOi8vdGVzdC85NjIwEYYPaHR0cDovL3Rlc3QvOTYz --MBGGD2h0dHA6Ly90ZXN0Lzk2NDARhg9odHRwOi8vdGVzdC85NjUwEYYPaHR0cDov --L3Rlc3QvOTY2MBGGD2h0dHA6Ly90ZXN0Lzk2NzARhg9odHRwOi8vdGVzdC85Njgw --EYYPaHR0cDovL3Rlc3QvOTY5MBGGD2h0dHA6Ly90ZXN0Lzk3MDARhg9odHRwOi8v --dGVzdC85NzEwEYYPaHR0cDovL3Rlc3QvOTcyMBGGD2h0dHA6Ly90ZXN0Lzk3MzAR --hg9odHRwOi8vdGVzdC85NzQwEYYPaHR0cDovL3Rlc3QvOTc1MBGGD2h0dHA6Ly90 --ZXN0Lzk3NjARhg9odHRwOi8vdGVzdC85NzcwEYYPaHR0cDovL3Rlc3QvOTc4MBGG --D2h0dHA6Ly90ZXN0Lzk3OTARhg9odHRwOi8vdGVzdC85ODAwEYYPaHR0cDovL3Rl --c3QvOTgxMBGGD2h0dHA6Ly90ZXN0Lzk4MjARhg9odHRwOi8vdGVzdC85ODMwEYYP --aHR0cDovL3Rlc3QvOTg0MBGGD2h0dHA6Ly90ZXN0Lzk4NTARhg9odHRwOi8vdGVz --dC85ODYwEYYPaHR0cDovL3Rlc3QvOTg3MBGGD2h0dHA6Ly90ZXN0Lzk4ODARhg9o --dHRwOi8vdGVzdC85ODkwEYYPaHR0cDovL3Rlc3QvOTkwMBGGD2h0dHA6Ly90ZXN0 --Lzk5MTARhg9odHRwOi8vdGVzdC85OTIwEYYPaHR0cDovL3Rlc3QvOTkzMBGGD2h0 --dHA6Ly90ZXN0Lzk5NDARhg9odHRwOi8vdGVzdC85OTUwEYYPaHR0cDovL3Rlc3Qv --OTk2MBGGD2h0dHA6Ly90ZXN0Lzk5NzARhg9odHRwOi8vdGVzdC85OTgwEYYPaHR0 --cDovL3Rlc3QvOTk5MBKGEGh0dHA6Ly90ZXN0LzEwMDAwEoYQaHR0cDovL3Rlc3Qv --MTAwMTAShhBodHRwOi8vdGVzdC8xMDAyMBKGEGh0dHA6Ly90ZXN0LzEwMDMwEoYQ --aHR0cDovL3Rlc3QvMTAwNDAShhBodHRwOi8vdGVzdC8xMDA1MBKGEGh0dHA6Ly90 --ZXN0LzEwMDYwEoYQaHR0cDovL3Rlc3QvMTAwNzAShhBodHRwOi8vdGVzdC8xMDA4 --MBKGEGh0dHA6Ly90ZXN0LzEwMDkwEoYQaHR0cDovL3Rlc3QvMTAxMDAShhBodHRw --Oi8vdGVzdC8xMDExMBKGEGh0dHA6Ly90ZXN0LzEwMTIwEoYQaHR0cDovL3Rlc3Qv --MTAxMzAShhBodHRwOi8vdGVzdC8xMDE0MBKGEGh0dHA6Ly90ZXN0LzEwMTUwEoYQ --aHR0cDovL3Rlc3QvMTAxNjAShhBodHRwOi8vdGVzdC8xMDE3MBKGEGh0dHA6Ly90 --ZXN0LzEwMTgwEoYQaHR0cDovL3Rlc3QvMTAxOTAShhBodHRwOi8vdGVzdC8xMDIw --MBKGEGh0dHA6Ly90ZXN0LzEwMjEwEoYQaHR0cDovL3Rlc3QvMTAyMjAShhBodHRw --Oi8vdGVzdC8xMDIzMBKGEGh0dHA6Ly90ZXN0LzEwMjShgq+CMAmCB3gwLnRlc3Qw --CYIHeDEudGVzdDAJggd4Mi50ZXN0MAmCB3gzLnRlc3QwCYIHeDQudGVzdDAJggd4 --NS50ZXN0MAmCB3g2LnRlc3QwCYIHeDcudGVzdDAJggd4OC50ZXN0MAmCB3g5LnRl --c3QwCoIIeDEwLnRlc3QwCoIIeDExLnRlc3QwCoIIeDEyLnRlc3QwCoIIeDEzLnRl --c3QwCoIIeDE0LnRlc3QwCoIIeDE1LnRlc3QwCoIIeDE2LnRlc3QwCoIIeDE3LnRl --c3QwCoIIeDE4LnRlc3QwCoIIeDE5LnRlc3QwCoIIeDIwLnRlc3QwCoIIeDIxLnRl --c3QwCoIIeDIyLnRlc3QwCoIIeDIzLnRlc3QwCoIIeDI0LnRlc3QwCoIIeDI1LnRl --c3QwCoIIeDI2LnRlc3QwCoIIeDI3LnRlc3QwCoIIeDI4LnRlc3QwCoIIeDI5LnRl --c3QwCoIIeDMwLnRlc3QwCoIIeDMxLnRlc3QwCoIIeDMyLnRlc3QwCoIIeDMzLnRl --c3QwCoIIeDM0LnRlc3QwCoIIeDM1LnRlc3QwCoIIeDM2LnRlc3QwCoIIeDM3LnRl --c3QwCoIIeDM4LnRlc3QwCoIIeDM5LnRlc3QwCoIIeDQwLnRlc3QwCoIIeDQxLnRl --c3QwCoIIeDQyLnRlc3QwCoIIeDQzLnRlc3QwCoIIeDQ0LnRlc3QwCoIIeDQ1LnRl --c3QwCoIIeDQ2LnRlc3QwCoIIeDQ3LnRlc3QwCoIIeDQ4LnRlc3QwCoIIeDQ5LnRl --c3QwCoIIeDUwLnRlc3QwCoIIeDUxLnRlc3QwCoIIeDUyLnRlc3QwCoIIeDUzLnRl --c3QwCoIIeDU0LnRlc3QwCoIIeDU1LnRlc3QwCoIIeDU2LnRlc3QwCoIIeDU3LnRl --c3QwCoIIeDU4LnRlc3QwCoIIeDU5LnRlc3QwCoIIeDYwLnRlc3QwCoIIeDYxLnRl --c3QwCoIIeDYyLnRlc3QwCoIIeDYzLnRlc3QwCoIIeDY0LnRlc3QwCoIIeDY1LnRl --c3QwCoIIeDY2LnRlc3QwCoIIeDY3LnRlc3QwCoIIeDY4LnRlc3QwCoIIeDY5LnRl --c3QwCoIIeDcwLnRlc3QwCoIIeDcxLnRlc3QwCoIIeDcyLnRlc3QwCoIIeDczLnRl --c3QwCoIIeDc0LnRlc3QwCoIIeDc1LnRlc3QwCoIIeDc2LnRlc3QwCoIIeDc3LnRl --c3QwCoIIeDc4LnRlc3QwCoIIeDc5LnRlc3QwCoIIeDgwLnRlc3QwCoIIeDgxLnRl --c3QwCoIIeDgyLnRlc3QwCoIIeDgzLnRlc3QwCoIIeDg0LnRlc3QwCoIIeDg1LnRl --c3QwCoIIeDg2LnRlc3QwCoIIeDg3LnRlc3QwCoIIeDg4LnRlc3QwCoIIeDg5LnRl --c3QwCoIIeDkwLnRlc3QwCoIIeDkxLnRlc3QwCoIIeDkyLnRlc3QwCoIIeDkzLnRl --c3QwCoIIeDk0LnRlc3QwCoIIeDk1LnRlc3QwCoIIeDk2LnRlc3QwCoIIeDk3LnRl --c3QwCoIIeDk4LnRlc3QwCoIIeDk5LnRlc3QwC4IJeDEwMC50ZXN0MAuCCXgxMDEu --dGVzdDALggl4MTAyLnRlc3QwC4IJeDEwMy50ZXN0MAuCCXgxMDQudGVzdDALggl4 --MTA1LnRlc3QwC4IJeDEwNi50ZXN0MAuCCXgxMDcudGVzdDALggl4MTA4LnRlc3Qw --C4IJeDEwOS50ZXN0MAuCCXgxMTAudGVzdDALggl4MTExLnRlc3QwC4IJeDExMi50 --ZXN0MAuCCXgxMTMudGVzdDALggl4MTE0LnRlc3QwC4IJeDExNS50ZXN0MAuCCXgx --MTYudGVzdDALggl4MTE3LnRlc3QwC4IJeDExOC50ZXN0MAuCCXgxMTkudGVzdDAL --ggl4MTIwLnRlc3QwC4IJeDEyMS50ZXN0MAuCCXgxMjIudGVzdDALggl4MTIzLnRl --c3QwC4IJeDEyNC50ZXN0MAuCCXgxMjUudGVzdDALggl4MTI2LnRlc3QwC4IJeDEy --Ny50ZXN0MAuCCXgxMjgudGVzdDALggl4MTI5LnRlc3QwC4IJeDEzMC50ZXN0MAuC --CXgxMzEudGVzdDALggl4MTMyLnRlc3QwC4IJeDEzMy50ZXN0MAuCCXgxMzQudGVz --dDALggl4MTM1LnRlc3QwC4IJeDEzNi50ZXN0MAuCCXgxMzcudGVzdDALggl4MTM4 --LnRlc3QwC4IJeDEzOS50ZXN0MAuCCXgxNDAudGVzdDALggl4MTQxLnRlc3QwC4IJ --eDE0Mi50ZXN0MAuCCXgxNDMudGVzdDALggl4MTQ0LnRlc3QwC4IJeDE0NS50ZXN0 --MAuCCXgxNDYudGVzdDALggl4MTQ3LnRlc3QwC4IJeDE0OC50ZXN0MAuCCXgxNDku --dGVzdDALggl4MTUwLnRlc3QwC4IJeDE1MS50ZXN0MAuCCXgxNTIudGVzdDALggl4 --MTUzLnRlc3QwC4IJeDE1NC50ZXN0MAuCCXgxNTUudGVzdDALggl4MTU2LnRlc3Qw --C4IJeDE1Ny50ZXN0MAuCCXgxNTgudGVzdDALggl4MTU5LnRlc3QwC4IJeDE2MC50 --ZXN0MAuCCXgxNjEudGVzdDALggl4MTYyLnRlc3QwC4IJeDE2My50ZXN0MAuCCXgx --NjQudGVzdDALggl4MTY1LnRlc3QwC4IJeDE2Ni50ZXN0MAuCCXgxNjcudGVzdDAL --ggl4MTY4LnRlc3QwC4IJeDE2OS50ZXN0MAuCCXgxNzAudGVzdDALggl4MTcxLnRl --c3QwC4IJeDE3Mi50ZXN0MAuCCXgxNzMudGVzdDALggl4MTc0LnRlc3QwC4IJeDE3 --NS50ZXN0MAuCCXgxNzYudGVzdDALggl4MTc3LnRlc3QwC4IJeDE3OC50ZXN0MAuC --CXgxNzkudGVzdDALggl4MTgwLnRlc3QwC4IJeDE4MS50ZXN0MAuCCXgxODIudGVz --dDALggl4MTgzLnRlc3QwC4IJeDE4NC50ZXN0MAuCCXgxODUudGVzdDALggl4MTg2 --LnRlc3QwC4IJeDE4Ny50ZXN0MAuCCXgxODgudGVzdDALggl4MTg5LnRlc3QwC4IJ --eDE5MC50ZXN0MAuCCXgxOTEudGVzdDALggl4MTkyLnRlc3QwC4IJeDE5My50ZXN0 --MAuCCXgxOTQudGVzdDALggl4MTk1LnRlc3QwC4IJeDE5Ni50ZXN0MAuCCXgxOTcu --dGVzdDALggl4MTk4LnRlc3QwC4IJeDE5OS50ZXN0MAuCCXgyMDAudGVzdDALggl4 --MjAxLnRlc3QwC4IJeDIwMi50ZXN0MAuCCXgyMDMudGVzdDALggl4MjA0LnRlc3Qw --C4IJeDIwNS50ZXN0MAuCCXgyMDYudGVzdDALggl4MjA3LnRlc3QwC4IJeDIwOC50 --ZXN0MAuCCXgyMDkudGVzdDALggl4MjEwLnRlc3QwC4IJeDIxMS50ZXN0MAuCCXgy --MTIudGVzdDALggl4MjEzLnRlc3QwC4IJeDIxNC50ZXN0MAuCCXgyMTUudGVzdDAL --ggl4MjE2LnRlc3QwC4IJeDIxNy50ZXN0MAuCCXgyMTgudGVzdDALggl4MjE5LnRl --c3QwC4IJeDIyMC50ZXN0MAuCCXgyMjEudGVzdDALggl4MjIyLnRlc3QwC4IJeDIy --My50ZXN0MAuCCXgyMjQudGVzdDALggl4MjI1LnRlc3QwC4IJeDIyNi50ZXN0MAuC --CXgyMjcudGVzdDALggl4MjI4LnRlc3QwC4IJeDIyOS50ZXN0MAuCCXgyMzAudGVz --dDALggl4MjMxLnRlc3QwC4IJeDIzMi50ZXN0MAuCCXgyMzMudGVzdDALggl4MjM0 --LnRlc3QwC4IJeDIzNS50ZXN0MAuCCXgyMzYudGVzdDALggl4MjM3LnRlc3QwC4IJ --eDIzOC50ZXN0MAuCCXgyMzkudGVzdDALggl4MjQwLnRlc3QwC4IJeDI0MS50ZXN0 --MAuCCXgyNDIudGVzdDALggl4MjQzLnRlc3QwC4IJeDI0NC50ZXN0MAuCCXgyNDUu --dGVzdDALggl4MjQ2LnRlc3QwC4IJeDI0Ny50ZXN0MAuCCXgyNDgudGVzdDALggl4 --MjQ5LnRlc3QwC4IJeDI1MC50ZXN0MAuCCXgyNTEudGVzdDALggl4MjUyLnRlc3Qw --C4IJeDI1My50ZXN0MAuCCXgyNTQudGVzdDALggl4MjU1LnRlc3QwC4IJeDI1Ni50 --ZXN0MAuCCXgyNTcudGVzdDALggl4MjU4LnRlc3QwC4IJeDI1OS50ZXN0MAuCCXgy --NjAudGVzdDALggl4MjYxLnRlc3QwC4IJeDI2Mi50ZXN0MAuCCXgyNjMudGVzdDAL --ggl4MjY0LnRlc3QwC4IJeDI2NS50ZXN0MAuCCXgyNjYudGVzdDALggl4MjY3LnRl --c3QwC4IJeDI2OC50ZXN0MAuCCXgyNjkudGVzdDALggl4MjcwLnRlc3QwC4IJeDI3 --MS50ZXN0MAuCCXgyNzIudGVzdDALggl4MjczLnRlc3QwC4IJeDI3NC50ZXN0MAuC --CXgyNzUudGVzdDALggl4Mjc2LnRlc3QwC4IJeDI3Ny50ZXN0MAuCCXgyNzgudGVz --dDALggl4Mjc5LnRlc3QwC4IJeDI4MC50ZXN0MAuCCXgyODEudGVzdDALggl4Mjgy --LnRlc3QwC4IJeDI4My50ZXN0MAuCCXgyODQudGVzdDALggl4Mjg1LnRlc3QwC4IJ --eDI4Ni50ZXN0MAuCCXgyODcudGVzdDALggl4Mjg4LnRlc3QwC4IJeDI4OS50ZXN0 --MAuCCXgyOTAudGVzdDALggl4MjkxLnRlc3QwC4IJeDI5Mi50ZXN0MAuCCXgyOTMu --dGVzdDALggl4Mjk0LnRlc3QwC4IJeDI5NS50ZXN0MAuCCXgyOTYudGVzdDALggl4 --Mjk3LnRlc3QwC4IJeDI5OC50ZXN0MAuCCXgyOTkudGVzdDALggl4MzAwLnRlc3Qw --C4IJeDMwMS50ZXN0MAuCCXgzMDIudGVzdDALggl4MzAzLnRlc3QwC4IJeDMwNC50 --ZXN0MAuCCXgzMDUudGVzdDALggl4MzA2LnRlc3QwC4IJeDMwNy50ZXN0MAuCCXgz --MDgudGVzdDALggl4MzA5LnRlc3QwC4IJeDMxMC50ZXN0MAuCCXgzMTEudGVzdDAL --ggl4MzEyLnRlc3QwC4IJeDMxMy50ZXN0MAuCCXgzMTQudGVzdDALggl4MzE1LnRl --c3QwC4IJeDMxNi50ZXN0MAuCCXgzMTcudGVzdDALggl4MzE4LnRlc3QwC4IJeDMx --OS50ZXN0MAuCCXgzMjAudGVzdDALggl4MzIxLnRlc3QwC4IJeDMyMi50ZXN0MAuC --CXgzMjMudGVzdDALggl4MzI0LnRlc3QwC4IJeDMyNS50ZXN0MAuCCXgzMjYudGVz --dDALggl4MzI3LnRlc3QwC4IJeDMyOC50ZXN0MAuCCXgzMjkudGVzdDALggl4MzMw --LnRlc3QwC4IJeDMzMS50ZXN0MAuCCXgzMzIudGVzdDALggl4MzMzLnRlc3QwC4IJ --eDMzNC50ZXN0MAuCCXgzMzUudGVzdDALggl4MzM2LnRlc3QwC4IJeDMzNy50ZXN0 --MAuCCXgzMzgudGVzdDALggl4MzM5LnRlc3QwC4IJeDM0MC50ZXN0MAuCCXgzNDEu --dGVzdDALggl4MzQyLnRlc3QwC4IJeDM0My50ZXN0MAuCCXgzNDQudGVzdDALggl4 --MzQ1LnRlc3QwC4IJeDM0Ni50ZXN0MAuCCXgzNDcudGVzdDALggl4MzQ4LnRlc3Qw --C4IJeDM0OS50ZXN0MAuCCXgzNTAudGVzdDALggl4MzUxLnRlc3QwC4IJeDM1Mi50 --ZXN0MAuCCXgzNTMudGVzdDALggl4MzU0LnRlc3QwC4IJeDM1NS50ZXN0MAuCCXgz --NTYudGVzdDALggl4MzU3LnRlc3QwC4IJeDM1OC50ZXN0MAuCCXgzNTkudGVzdDAL --ggl4MzYwLnRlc3QwC4IJeDM2MS50ZXN0MAuCCXgzNjIudGVzdDALggl4MzYzLnRl --c3QwC4IJeDM2NC50ZXN0MAuCCXgzNjUudGVzdDALggl4MzY2LnRlc3QwC4IJeDM2 --Ny50ZXN0MAuCCXgzNjgudGVzdDALggl4MzY5LnRlc3QwC4IJeDM3MC50ZXN0MAuC --CXgzNzEudGVzdDALggl4MzcyLnRlc3QwC4IJeDM3My50ZXN0MAuCCXgzNzQudGVz --dDALggl4Mzc1LnRlc3QwC4IJeDM3Ni50ZXN0MAuCCXgzNzcudGVzdDALggl4Mzc4 --LnRlc3QwC4IJeDM3OS50ZXN0MAuCCXgzODAudGVzdDALggl4MzgxLnRlc3QwC4IJ --eDM4Mi50ZXN0MAuCCXgzODMudGVzdDALggl4Mzg0LnRlc3QwC4IJeDM4NS50ZXN0 --MAuCCXgzODYudGVzdDALggl4Mzg3LnRlc3QwC4IJeDM4OC50ZXN0MAuCCXgzODku --dGVzdDALggl4MzkwLnRlc3QwC4IJeDM5MS50ZXN0MAuCCXgzOTIudGVzdDALggl4 --MzkzLnRlc3QwC4IJeDM5NC50ZXN0MAuCCXgzOTUudGVzdDALggl4Mzk2LnRlc3Qw --C4IJeDM5Ny50ZXN0MAuCCXgzOTgudGVzdDALggl4Mzk5LnRlc3QwC4IJeDQwMC50 --ZXN0MAuCCXg0MDEudGVzdDALggl4NDAyLnRlc3QwC4IJeDQwMy50ZXN0MAuCCXg0 --MDQudGVzdDALggl4NDA1LnRlc3QwC4IJeDQwNi50ZXN0MAuCCXg0MDcudGVzdDAL --ggl4NDA4LnRlc3QwC4IJeDQwOS50ZXN0MAuCCXg0MTAudGVzdDALggl4NDExLnRl --c3QwC4IJeDQxMi50ZXN0MAuCCXg0MTMudGVzdDALggl4NDE0LnRlc3QwC4IJeDQx --NS50ZXN0MAuCCXg0MTYudGVzdDALggl4NDE3LnRlc3QwC4IJeDQxOC50ZXN0MAuC --CXg0MTkudGVzdDALggl4NDIwLnRlc3QwC4IJeDQyMS50ZXN0MAuCCXg0MjIudGVz --dDALggl4NDIzLnRlc3QwC4IJeDQyNC50ZXN0MAuCCXg0MjUudGVzdDALggl4NDI2 --LnRlc3QwC4IJeDQyNy50ZXN0MAuCCXg0MjgudGVzdDALggl4NDI5LnRlc3QwC4IJ --eDQzMC50ZXN0MAuCCXg0MzEudGVzdDALggl4NDMyLnRlc3QwC4IJeDQzMy50ZXN0 --MAuCCXg0MzQudGVzdDALggl4NDM1LnRlc3QwC4IJeDQzNi50ZXN0MAuCCXg0Mzcu --dGVzdDALggl4NDM4LnRlc3QwC4IJeDQzOS50ZXN0MAuCCXg0NDAudGVzdDALggl4 --NDQxLnRlc3QwC4IJeDQ0Mi50ZXN0MAuCCXg0NDMudGVzdDALggl4NDQ0LnRlc3Qw --C4IJeDQ0NS50ZXN0MAuCCXg0NDYudGVzdDALggl4NDQ3LnRlc3QwC4IJeDQ0OC50 --ZXN0MAuCCXg0NDkudGVzdDALggl4NDUwLnRlc3QwC4IJeDQ1MS50ZXN0MAuCCXg0 --NTIudGVzdDALggl4NDUzLnRlc3QwC4IJeDQ1NC50ZXN0MAuCCXg0NTUudGVzdDAL --ggl4NDU2LnRlc3QwC4IJeDQ1Ny50ZXN0MAuCCXg0NTgudGVzdDALggl4NDU5LnRl --c3QwC4IJeDQ2MC50ZXN0MAuCCXg0NjEudGVzdDALggl4NDYyLnRlc3QwC4IJeDQ2 --My50ZXN0MAuCCXg0NjQudGVzdDALggl4NDY1LnRlc3QwC4IJeDQ2Ni50ZXN0MAuC --CXg0NjcudGVzdDALggl4NDY4LnRlc3QwC4IJeDQ2OS50ZXN0MAuCCXg0NzAudGVz --dDALggl4NDcxLnRlc3QwC4IJeDQ3Mi50ZXN0MAuCCXg0NzMudGVzdDALggl4NDc0 --LnRlc3QwC4IJeDQ3NS50ZXN0MAuCCXg0NzYudGVzdDALggl4NDc3LnRlc3QwC4IJ --eDQ3OC50ZXN0MAuCCXg0NzkudGVzdDALggl4NDgwLnRlc3QwC4IJeDQ4MS50ZXN0 --MAuCCXg0ODIudGVzdDALggl4NDgzLnRlc3QwC4IJeDQ4NC50ZXN0MAuCCXg0ODUu --dGVzdDALggl4NDg2LnRlc3QwC4IJeDQ4Ny50ZXN0MAuCCXg0ODgudGVzdDALggl4 --NDg5LnRlc3QwC4IJeDQ5MC50ZXN0MAuCCXg0OTEudGVzdDALggl4NDkyLnRlc3Qw --C4IJeDQ5My50ZXN0MAuCCXg0OTQudGVzdDALggl4NDk1LnRlc3QwC4IJeDQ5Ni50 --ZXN0MAuCCXg0OTcudGVzdDALggl4NDk4LnRlc3QwC4IJeDQ5OS50ZXN0MAuCCXg1 --MDAudGVzdDALggl4NTAxLnRlc3QwC4IJeDUwMi50ZXN0MAuCCXg1MDMudGVzdDAL --ggl4NTA0LnRlc3QwC4IJeDUwNS50ZXN0MAuCCXg1MDYudGVzdDALggl4NTA3LnRl --c3QwC4IJeDUwOC50ZXN0MAuCCXg1MDkudGVzdDALggl4NTEwLnRlc3QwC4IJeDUx --MS50ZXN0MAuCCXg1MTIudGVzdDALggl4NTEzLnRlc3QwC4IJeDUxNC50ZXN0MAuC --CXg1MTUudGVzdDALggl4NTE2LnRlc3QwC4IJeDUxNy50ZXN0MAuCCXg1MTgudGVz --dDALggl4NTE5LnRlc3QwC4IJeDUyMC50ZXN0MAuCCXg1MjEudGVzdDALggl4NTIy --LnRlc3QwC4IJeDUyMy50ZXN0MAuCCXg1MjQudGVzdDALggl4NTI1LnRlc3QwC4IJ --eDUyNi50ZXN0MAuCCXg1MjcudGVzdDALggl4NTI4LnRlc3QwC4IJeDUyOS50ZXN0 --MAuCCXg1MzAudGVzdDALggl4NTMxLnRlc3QwC4IJeDUzMi50ZXN0MAuCCXg1MzMu --dGVzdDALggl4NTM0LnRlc3QwC4IJeDUzNS50ZXN0MAuCCXg1MzYudGVzdDALggl4 --NTM3LnRlc3QwC4IJeDUzOC50ZXN0MAuCCXg1MzkudGVzdDALggl4NTQwLnRlc3Qw --C4IJeDU0MS50ZXN0MAuCCXg1NDIudGVzdDALggl4NTQzLnRlc3QwC4IJeDU0NC50 --ZXN0MAuCCXg1NDUudGVzdDALggl4NTQ2LnRlc3QwC4IJeDU0Ny50ZXN0MAuCCXg1 --NDgudGVzdDALggl4NTQ5LnRlc3QwC4IJeDU1MC50ZXN0MAuCCXg1NTEudGVzdDAL --ggl4NTUyLnRlc3QwC4IJeDU1My50ZXN0MAuCCXg1NTQudGVzdDALggl4NTU1LnRl --c3QwC4IJeDU1Ni50ZXN0MAuCCXg1NTcudGVzdDALggl4NTU4LnRlc3QwC4IJeDU1 --OS50ZXN0MAuCCXg1NjAudGVzdDALggl4NTYxLnRlc3QwC4IJeDU2Mi50ZXN0MAuC --CXg1NjMudGVzdDALggl4NTY0LnRlc3QwC4IJeDU2NS50ZXN0MAuCCXg1NjYudGVz --dDALggl4NTY3LnRlc3QwC4IJeDU2OC50ZXN0MAuCCXg1NjkudGVzdDALggl4NTcw --LnRlc3QwC4IJeDU3MS50ZXN0MAuCCXg1NzIudGVzdDALggl4NTczLnRlc3QwC4IJ --eDU3NC50ZXN0MAuCCXg1NzUudGVzdDALggl4NTc2LnRlc3QwC4IJeDU3Ny50ZXN0 --MAuCCXg1NzgudGVzdDALggl4NTc5LnRlc3QwC4IJeDU4MC50ZXN0MAuCCXg1ODEu --dGVzdDALggl4NTgyLnRlc3QwC4IJeDU4My50ZXN0MAuCCXg1ODQudGVzdDALggl4 --NTg1LnRlc3QwC4IJeDU4Ni50ZXN0MAuCCXg1ODcudGVzdDALggl4NTg4LnRlc3Qw --C4IJeDU4OS50ZXN0MAuCCXg1OTAudGVzdDALggl4NTkxLnRlc3QwC4IJeDU5Mi50 --ZXN0MAuCCXg1OTMudGVzdDALggl4NTk0LnRlc3QwC4IJeDU5NS50ZXN0MAuCCXg1 --OTYudGVzdDALggl4NTk3LnRlc3QwC4IJeDU5OC50ZXN0MAuCCXg1OTkudGVzdDAL --ggl4NjAwLnRlc3QwC4IJeDYwMS50ZXN0MAuCCXg2MDIudGVzdDALggl4NjAzLnRl --c3QwC4IJeDYwNC50ZXN0MAuCCXg2MDUudGVzdDALggl4NjA2LnRlc3QwC4IJeDYw --Ny50ZXN0MAuCCXg2MDgudGVzdDALggl4NjA5LnRlc3QwC4IJeDYxMC50ZXN0MAuC --CXg2MTEudGVzdDALggl4NjEyLnRlc3QwC4IJeDYxMy50ZXN0MAuCCXg2MTQudGVz --dDALggl4NjE1LnRlc3QwC4IJeDYxNi50ZXN0MAuCCXg2MTcudGVzdDALggl4NjE4 --LnRlc3QwC4IJeDYxOS50ZXN0MAuCCXg2MjAudGVzdDALggl4NjIxLnRlc3QwC4IJ --eDYyMi50ZXN0MAuCCXg2MjMudGVzdDALggl4NjI0LnRlc3QwC4IJeDYyNS50ZXN0 --MAuCCXg2MjYudGVzdDALggl4NjI3LnRlc3QwC4IJeDYyOC50ZXN0MAuCCXg2Mjku --dGVzdDALggl4NjMwLnRlc3QwC4IJeDYzMS50ZXN0MAuCCXg2MzIudGVzdDALggl4 --NjMzLnRlc3QwC4IJeDYzNC50ZXN0MAuCCXg2MzUudGVzdDALggl4NjM2LnRlc3Qw --C4IJeDYzNy50ZXN0MAuCCXg2MzgudGVzdDALggl4NjM5LnRlc3QwC4IJeDY0MC50 --ZXN0MAuCCXg2NDEudGVzdDALggl4NjQyLnRlc3QwC4IJeDY0My50ZXN0MAuCCXg2 --NDQudGVzdDALggl4NjQ1LnRlc3QwC4IJeDY0Ni50ZXN0MAuCCXg2NDcudGVzdDAL --ggl4NjQ4LnRlc3QwC4IJeDY0OS50ZXN0MAuCCXg2NTAudGVzdDALggl4NjUxLnRl --c3QwC4IJeDY1Mi50ZXN0MAuCCXg2NTMudGVzdDALggl4NjU0LnRlc3QwC4IJeDY1 --NS50ZXN0MAuCCXg2NTYudGVzdDALggl4NjU3LnRlc3QwC4IJeDY1OC50ZXN0MAuC --CXg2NTkudGVzdDALggl4NjYwLnRlc3QwC4IJeDY2MS50ZXN0MAuCCXg2NjIudGVz --dDALggl4NjYzLnRlc3QwC4IJeDY2NC50ZXN0MAuCCXg2NjUudGVzdDALggl4NjY2 --LnRlc3QwC4IJeDY2Ny50ZXN0MAuCCXg2NjgudGVzdDALggl4NjY5LnRlc3QwC4IJ --eDY3MC50ZXN0MAuCCXg2NzEudGVzdDALggl4NjcyLnRlc3QwC4IJeDY3My50ZXN0 --MAuCCXg2NzQudGVzdDALggl4Njc1LnRlc3QwC4IJeDY3Ni50ZXN0MAuCCXg2Nzcu --dGVzdDALggl4Njc4LnRlc3QwC4IJeDY3OS50ZXN0MAuCCXg2ODAudGVzdDALggl4 --NjgxLnRlc3QwC4IJeDY4Mi50ZXN0MAuCCXg2ODMudGVzdDALggl4Njg0LnRlc3Qw --C4IJeDY4NS50ZXN0MAuCCXg2ODYudGVzdDALggl4Njg3LnRlc3QwC4IJeDY4OC50 --ZXN0MAuCCXg2ODkudGVzdDALggl4NjkwLnRlc3QwC4IJeDY5MS50ZXN0MAuCCXg2 --OTIudGVzdDALggl4NjkzLnRlc3QwC4IJeDY5NC50ZXN0MAuCCXg2OTUudGVzdDAL --ggl4Njk2LnRlc3QwC4IJeDY5Ny50ZXN0MAuCCXg2OTgudGVzdDALggl4Njk5LnRl --c3QwC4IJeDcwMC50ZXN0MAuCCXg3MDEudGVzdDALggl4NzAyLnRlc3QwC4IJeDcw --My50ZXN0MAuCCXg3MDQudGVzdDALggl4NzA1LnRlc3QwC4IJeDcwNi50ZXN0MAuC --CXg3MDcudGVzdDALggl4NzA4LnRlc3QwC4IJeDcwOS50ZXN0MAuCCXg3MTAudGVz --dDALggl4NzExLnRlc3QwC4IJeDcxMi50ZXN0MAuCCXg3MTMudGVzdDALggl4NzE0 --LnRlc3QwC4IJeDcxNS50ZXN0MAuCCXg3MTYudGVzdDALggl4NzE3LnRlc3QwC4IJ --eDcxOC50ZXN0MAuCCXg3MTkudGVzdDALggl4NzIwLnRlc3QwC4IJeDcyMS50ZXN0 --MAuCCXg3MjIudGVzdDALggl4NzIzLnRlc3QwC4IJeDcyNC50ZXN0MAuCCXg3MjUu --dGVzdDALggl4NzI2LnRlc3QwC4IJeDcyNy50ZXN0MAuCCXg3MjgudGVzdDALggl4 --NzI5LnRlc3QwC4IJeDczMC50ZXN0MAuCCXg3MzEudGVzdDALggl4NzMyLnRlc3Qw --C4IJeDczMy50ZXN0MAuCCXg3MzQudGVzdDALggl4NzM1LnRlc3QwC4IJeDczNi50 --ZXN0MAuCCXg3MzcudGVzdDALggl4NzM4LnRlc3QwC4IJeDczOS50ZXN0MAuCCXg3 --NDAudGVzdDALggl4NzQxLnRlc3QwC4IJeDc0Mi50ZXN0MAuCCXg3NDMudGVzdDAL --ggl4NzQ0LnRlc3QwC4IJeDc0NS50ZXN0MAuCCXg3NDYudGVzdDALggl4NzQ3LnRl --c3QwC4IJeDc0OC50ZXN0MAuCCXg3NDkudGVzdDALggl4NzUwLnRlc3QwC4IJeDc1 --MS50ZXN0MAuCCXg3NTIudGVzdDALggl4NzUzLnRlc3QwC4IJeDc1NC50ZXN0MAuC --CXg3NTUudGVzdDALggl4NzU2LnRlc3QwC4IJeDc1Ny50ZXN0MAuCCXg3NTgudGVz --dDALggl4NzU5LnRlc3QwC4IJeDc2MC50ZXN0MAuCCXg3NjEudGVzdDALggl4NzYy --LnRlc3QwC4IJeDc2My50ZXN0MAuCCXg3NjQudGVzdDALggl4NzY1LnRlc3QwC4IJ --eDc2Ni50ZXN0MAuCCXg3NjcudGVzdDALggl4NzY4LnRlc3QwC4IJeDc2OS50ZXN0 --MAuCCXg3NzAudGVzdDALggl4NzcxLnRlc3QwC4IJeDc3Mi50ZXN0MAuCCXg3NzMu --dGVzdDALggl4Nzc0LnRlc3QwC4IJeDc3NS50ZXN0MAuCCXg3NzYudGVzdDALggl4 --Nzc3LnRlc3QwC4IJeDc3OC50ZXN0MAuCCXg3NzkudGVzdDALggl4NzgwLnRlc3Qw --C4IJeDc4MS50ZXN0MAuCCXg3ODIudGVzdDALggl4NzgzLnRlc3QwC4IJeDc4NC50 --ZXN0MAuCCXg3ODUudGVzdDALggl4Nzg2LnRlc3QwC4IJeDc4Ny50ZXN0MAuCCXg3 --ODgudGVzdDALggl4Nzg5LnRlc3QwC4IJeDc5MC50ZXN0MAuCCXg3OTEudGVzdDAL --ggl4NzkyLnRlc3QwC4IJeDc5My50ZXN0MAuCCXg3OTQudGVzdDALggl4Nzk1LnRl --c3QwC4IJeDc5Ni50ZXN0MAuCCXg3OTcudGVzdDALggl4Nzk4LnRlc3QwC4IJeDc5 --OS50ZXN0MAuCCXg4MDAudGVzdDALggl4ODAxLnRlc3QwC4IJeDgwMi50ZXN0MAuC --CXg4MDMudGVzdDALggl4ODA0LnRlc3QwC4IJeDgwNS50ZXN0MAuCCXg4MDYudGVz --dDALggl4ODA3LnRlc3QwC4IJeDgwOC50ZXN0MAuCCXg4MDkudGVzdDALggl4ODEw --LnRlc3QwC4IJeDgxMS50ZXN0MAuCCXg4MTIudGVzdDALggl4ODEzLnRlc3QwC4IJ --eDgxNC50ZXN0MAuCCXg4MTUudGVzdDALggl4ODE2LnRlc3QwC4IJeDgxNy50ZXN0 --MAuCCXg4MTgudGVzdDALggl4ODE5LnRlc3QwC4IJeDgyMC50ZXN0MAuCCXg4MjEu --dGVzdDALggl4ODIyLnRlc3QwC4IJeDgyMy50ZXN0MAuCCXg4MjQudGVzdDALggl4 --ODI1LnRlc3QwC4IJeDgyNi50ZXN0MAuCCXg4MjcudGVzdDALggl4ODI4LnRlc3Qw --C4IJeDgyOS50ZXN0MAuCCXg4MzAudGVzdDALggl4ODMxLnRlc3QwC4IJeDgzMi50 --ZXN0MAuCCXg4MzMudGVzdDALggl4ODM0LnRlc3QwC4IJeDgzNS50ZXN0MAuCCXg4 --MzYudGVzdDALggl4ODM3LnRlc3QwC4IJeDgzOC50ZXN0MAuCCXg4MzkudGVzdDAL --ggl4ODQwLnRlc3QwC4IJeDg0MS50ZXN0MAuCCXg4NDIudGVzdDALggl4ODQzLnRl --c3QwC4IJeDg0NC50ZXN0MAuCCXg4NDUudGVzdDALggl4ODQ2LnRlc3QwC4IJeDg0 --Ny50ZXN0MAuCCXg4NDgudGVzdDALggl4ODQ5LnRlc3QwC4IJeDg1MC50ZXN0MAuC --CXg4NTEudGVzdDALggl4ODUyLnRlc3QwC4IJeDg1My50ZXN0MAuCCXg4NTQudGVz --dDALggl4ODU1LnRlc3QwC4IJeDg1Ni50ZXN0MAuCCXg4NTcudGVzdDALggl4ODU4 --LnRlc3QwC4IJeDg1OS50ZXN0MAuCCXg4NjAudGVzdDALggl4ODYxLnRlc3QwC4IJ --eDg2Mi50ZXN0MAuCCXg4NjMudGVzdDALggl4ODY0LnRlc3QwC4IJeDg2NS50ZXN0 --MAuCCXg4NjYudGVzdDALggl4ODY3LnRlc3QwC4IJeDg2OC50ZXN0MAuCCXg4Njku --dGVzdDALggl4ODcwLnRlc3QwC4IJeDg3MS50ZXN0MAuCCXg4NzIudGVzdDALggl4 --ODczLnRlc3QwC4IJeDg3NC50ZXN0MAuCCXg4NzUudGVzdDALggl4ODc2LnRlc3Qw --C4IJeDg3Ny50ZXN0MAuCCXg4NzgudGVzdDALggl4ODc5LnRlc3QwC4IJeDg4MC50 --ZXN0MAuCCXg4ODEudGVzdDALggl4ODgyLnRlc3QwC4IJeDg4My50ZXN0MAuCCXg4 --ODQudGVzdDALggl4ODg1LnRlc3QwC4IJeDg4Ni50ZXN0MAuCCXg4ODcudGVzdDAL --ggl4ODg4LnRlc3QwC4IJeDg4OS50ZXN0MAuCCXg4OTAudGVzdDALggl4ODkxLnRl --c3QwC4IJeDg5Mi50ZXN0MAuCCXg4OTMudGVzdDALggl4ODk0LnRlc3QwC4IJeDg5 --NS50ZXN0MAuCCXg4OTYudGVzdDALggl4ODk3LnRlc3QwC4IJeDg5OC50ZXN0MAuC --CXg4OTkudGVzdDALggl4OTAwLnRlc3QwC4IJeDkwMS50ZXN0MAuCCXg5MDIudGVz --dDALggl4OTAzLnRlc3QwC4IJeDkwNC50ZXN0MAuCCXg5MDUudGVzdDALggl4OTA2 --LnRlc3QwC4IJeDkwNy50ZXN0MAuCCXg5MDgudGVzdDALggl4OTA5LnRlc3QwC4IJ --eDkxMC50ZXN0MAuCCXg5MTEudGVzdDALggl4OTEyLnRlc3QwC4IJeDkxMy50ZXN0 --MAuCCXg5MTQudGVzdDALggl4OTE1LnRlc3QwC4IJeDkxNi50ZXN0MAuCCXg5MTcu --dGVzdDALggl4OTE4LnRlc3QwC4IJeDkxOS50ZXN0MAuCCXg5MjAudGVzdDALggl4 --OTIxLnRlc3QwC4IJeDkyMi50ZXN0MAuCCXg5MjMudGVzdDALggl4OTI0LnRlc3Qw --C4IJeDkyNS50ZXN0MAuCCXg5MjYudGVzdDALggl4OTI3LnRlc3QwC4IJeDkyOC50 --ZXN0MAuCCXg5MjkudGVzdDALggl4OTMwLnRlc3QwC4IJeDkzMS50ZXN0MAuCCXg5 --MzIudGVzdDALggl4OTMzLnRlc3QwC4IJeDkzNC50ZXN0MAuCCXg5MzUudGVzdDAL --ggl4OTM2LnRlc3QwC4IJeDkzNy50ZXN0MAuCCXg5MzgudGVzdDALggl4OTM5LnRl --c3QwC4IJeDk0MC50ZXN0MAuCCXg5NDEudGVzdDALggl4OTQyLnRlc3QwC4IJeDk0 --My50ZXN0MAuCCXg5NDQudGVzdDALggl4OTQ1LnRlc3QwC4IJeDk0Ni50ZXN0MAuC --CXg5NDcudGVzdDALggl4OTQ4LnRlc3QwC4IJeDk0OS50ZXN0MAuCCXg5NTAudGVz --dDALggl4OTUxLnRlc3QwC4IJeDk1Mi50ZXN0MAuCCXg5NTMudGVzdDALggl4OTU0 --LnRlc3QwC4IJeDk1NS50ZXN0MAuCCXg5NTYudGVzdDALggl4OTU3LnRlc3QwC4IJ --eDk1OC50ZXN0MAuCCXg5NTkudGVzdDALggl4OTYwLnRlc3QwC4IJeDk2MS50ZXN0 --MAuCCXg5NjIudGVzdDALggl4OTYzLnRlc3QwC4IJeDk2NC50ZXN0MAuCCXg5NjUu --dGVzdDALggl4OTY2LnRlc3QwC4IJeDk2Ny50ZXN0MAuCCXg5NjgudGVzdDALggl4 --OTY5LnRlc3QwC4IJeDk3MC50ZXN0MAuCCXg5NzEudGVzdDALggl4OTcyLnRlc3Qw --C4IJeDk3My50ZXN0MAuCCXg5NzQudGVzdDALggl4OTc1LnRlc3QwC4IJeDk3Ni50 --ZXN0MAuCCXg5NzcudGVzdDALggl4OTc4LnRlc3QwC4IJeDk3OS50ZXN0MAuCCXg5 --ODAudGVzdDALggl4OTgxLnRlc3QwC4IJeDk4Mi50ZXN0MAuCCXg5ODMudGVzdDAL --ggl4OTg0LnRlc3QwC4IJeDk4NS50ZXN0MAuCCXg5ODYudGVzdDALggl4OTg3LnRl --c3QwC4IJeDk4OC50ZXN0MAuCCXg5ODkudGVzdDALggl4OTkwLnRlc3QwC4IJeDk5 --MS50ZXN0MAuCCXg5OTIudGVzdDALggl4OTkzLnRlc3QwC4IJeDk5NC50ZXN0MAuC --CXg5OTUudGVzdDALggl4OTk2LnRlc3QwC4IJeDk5Ny50ZXN0MAuCCXg5OTgudGVz --dDALggl4OTk5LnRlc3QwDIIKeDEwMDAudGVzdDAMggp4MTAwMS50ZXN0MAyCCngx --MDAyLnRlc3QwDIIKeDEwMDMudGVzdDAMggp4MTAwNC50ZXN0MAyCCngxMDA1LnRl --c3QwDIIKeDEwMDYudGVzdDAMggp4MTAwNy50ZXN0MAyCCngxMDA4LnRlc3QwDIIK --eDEwMDkudGVzdDAMggp4MTAxMC50ZXN0MAyCCngxMDExLnRlc3QwDIIKeDEwMTIu --dGVzdDAMggp4MTAxMy50ZXN0MAyCCngxMDE0LnRlc3QwDIIKeDEwMTUudGVzdDAM --ggp4MTAxNi50ZXN0MAyCCngxMDE3LnRlc3QwDIIKeDEwMTgudGVzdDAMggp4MTAx --OS50ZXN0MAyCCngxMDIwLnRlc3QwDIIKeDEwMjEudGVzdDAMggp4MTAyMi50ZXN0 --MAyCCngxMDIzLnRlc3QwDIIKeDEwMjQudGVzdDAKhwgLAAAA/////zAKhwgLAAAB --/////zAKhwgLAAAC/////zAKhwgLAAAD/////zAKhwgLAAAE/////zAKhwgLAAAF --/////zAKhwgLAAAG/////zAKhwgLAAAH/////zAKhwgLAAAI/////zAKhwgLAAAJ --/////zAKhwgLAAAK/////zAKhwgLAAAL/////zAKhwgLAAAM/////zAKhwgLAAAN --/////zAKhwgLAAAO/////zAKhwgLAAAP/////zAKhwgLAAAQ/////zAKhwgLAAAR --/////zAKhwgLAAAS/////zAKhwgLAAAT/////zAKhwgLAAAU/////zAKhwgLAAAV --/////zAKhwgLAAAW/////zAKhwgLAAAX/////zAKhwgLAAAY/////zAKhwgLAAAZ --/////zAKhwgLAAAa/////zAKhwgLAAAb/////zAKhwgLAAAc/////zAKhwgLAAAd --/////zAKhwgLAAAe/////zAKhwgLAAAf/////zAKhwgLAAAg/////zAKhwgLAAAh --/////zAKhwgLAAAi/////zAKhwgLAAAj/////zAKhwgLAAAk/////zAKhwgLAAAl --/////zAKhwgLAAAm/////zAKhwgLAAAn/////zAKhwgLAAAo/////zAKhwgLAAAp --/////zAKhwgLAAAq/////zAKhwgLAAAr/////zAKhwgLAAAs/////zAKhwgLAAAt --/////zAKhwgLAAAu/////zAKhwgLAAAv/////zAKhwgLAAAw/////zAKhwgLAAAx --/////zAKhwgLAAAy/////zAKhwgLAAAz/////zAKhwgLAAA0/////zAKhwgLAAA1 --/////zAKhwgLAAA2/////zAKhwgLAAA3/////zAKhwgLAAA4/////zAKhwgLAAA5 --/////zAKhwgLAAA6/////zAKhwgLAAA7/////zAKhwgLAAA8/////zAKhwgLAAA9 --/////zAKhwgLAAA+/////zAKhwgLAAA//////zAKhwgLAABA/////zAKhwgLAABB --/////zAKhwgLAABC/////zAKhwgLAABD/////zAKhwgLAABE/////zAKhwgLAABF --/////zAKhwgLAABG/////zAKhwgLAABH/////zAKhwgLAABI/////zAKhwgLAABJ --/////zAKhwgLAABK/////zAKhwgLAABL/////zAKhwgLAABM/////zAKhwgLAABN --/////zAKhwgLAABO/////zAKhwgLAABP/////zAKhwgLAABQ/////zAKhwgLAABR --/////zAKhwgLAABS/////zAKhwgLAABT/////zAKhwgLAABU/////zAKhwgLAABV --/////zAKhwgLAABW/////zAKhwgLAABX/////zAKhwgLAABY/////zAKhwgLAABZ --/////zAKhwgLAABa/////zAKhwgLAABb/////zAKhwgLAABc/////zAKhwgLAABd --/////zAKhwgLAABe/////zAKhwgLAABf/////zAKhwgLAABg/////zAKhwgLAABh --/////zAKhwgLAABi/////zAKhwgLAABj/////zAKhwgLAABk/////zAKhwgLAABl --/////zAKhwgLAABm/////zAKhwgLAABn/////zAKhwgLAABo/////zAKhwgLAABp --/////zAKhwgLAABq/////zAKhwgLAABr/////zAKhwgLAABs/////zAKhwgLAABt --/////zAKhwgLAABu/////zAKhwgLAABv/////zAKhwgLAABw/////zAKhwgLAABx --/////zAKhwgLAABy/////zAKhwgLAABz/////zAKhwgLAAB0/////zAKhwgLAAB1 --/////zAKhwgLAAB2/////zAKhwgLAAB3/////zAKhwgLAAB4/////zAKhwgLAAB5 --/////zAKhwgLAAB6/////zAKhwgLAAB7/////zAKhwgLAAB8/////zAKhwgLAAB9 --/////zAKhwgLAAB+/////zAKhwgLAAB//////zAKhwgLAACA/////zAKhwgLAACB --/////zAKhwgLAACC/////zAKhwgLAACD/////zAKhwgLAACE/////zAKhwgLAACF --/////zAKhwgLAACG/////zAKhwgLAACH/////zAKhwgLAACI/////zAKhwgLAACJ --/////zAKhwgLAACK/////zAKhwgLAACL/////zAKhwgLAACM/////zAKhwgLAACN --/////zAKhwgLAACO/////zAKhwgLAACP/////zAKhwgLAACQ/////zAKhwgLAACR --/////zAKhwgLAACS/////zAKhwgLAACT/////zAKhwgLAACU/////zAKhwgLAACV --/////zAKhwgLAACW/////zAKhwgLAACX/////zAKhwgLAACY/////zAKhwgLAACZ --/////zAKhwgLAACa/////zAKhwgLAACb/////zAKhwgLAACc/////zAKhwgLAACd --/////zAKhwgLAACe/////zAKhwgLAACf/////zAKhwgLAACg/////zAKhwgLAACh --/////zAKhwgLAACi/////zAKhwgLAACj/////zAKhwgLAACk/////zAKhwgLAACl --/////zAKhwgLAACm/////zAKhwgLAACn/////zAKhwgLAACo/////zAKhwgLAACp --/////zAKhwgLAACq/////zAKhwgLAACr/////zAKhwgLAACs/////zAKhwgLAACt --/////zAKhwgLAACu/////zAKhwgLAACv/////zAKhwgLAACw/////zAKhwgLAACx --/////zAKhwgLAACy/////zAKhwgLAACz/////zAKhwgLAAC0/////zAKhwgLAAC1 --/////zAKhwgLAAC2/////zAKhwgLAAC3/////zAKhwgLAAC4/////zAKhwgLAAC5 --/////zAKhwgLAAC6/////zAKhwgLAAC7/////zAKhwgLAAC8/////zAKhwgLAAC9 --/////zAKhwgLAAC+/////zAKhwgLAAC//////zAKhwgLAADA/////zAKhwgLAADB --/////zAKhwgLAADC/////zAKhwgLAADD/////zAKhwgLAADE/////zAKhwgLAADF --/////zAKhwgLAADG/////zAKhwgLAADH/////zAKhwgLAADI/////zAKhwgLAADJ --/////zAKhwgLAADK/////zAKhwgLAADL/////zAKhwgLAADM/////zAKhwgLAADN --/////zAKhwgLAADO/////zAKhwgLAADP/////zAKhwgLAADQ/////zAKhwgLAADR --/////zAKhwgLAADS/////zAKhwgLAADT/////zAKhwgLAADU/////zAKhwgLAADV --/////zAKhwgLAADW/////zAKhwgLAADX/////zAKhwgLAADY/////zAKhwgLAADZ --/////zAKhwgLAADa/////zAKhwgLAADb/////zAKhwgLAADc/////zAKhwgLAADd --/////zAKhwgLAADe/////zAKhwgLAADf/////zAKhwgLAADg/////zAKhwgLAADh --/////zAKhwgLAADi/////zAKhwgLAADj/////zAKhwgLAADk/////zAKhwgLAADl --/////zAKhwgLAADm/////zAKhwgLAADn/////zAKhwgLAADo/////zAKhwgLAADp --/////zAKhwgLAADq/////zAKhwgLAADr/////zAKhwgLAADs/////zAKhwgLAADt --/////zAKhwgLAADu/////zAKhwgLAADv/////zAKhwgLAADw/////zAKhwgLAADx --/////zAKhwgLAADy/////zAKhwgLAADz/////zAKhwgLAAD0/////zAKhwgLAAD1 --/////zAKhwgLAAD2/////zAKhwgLAAD3/////zAKhwgLAAD4/////zAKhwgLAAD5 --/////zAKhwgLAAD6/////zAKhwgLAAD7/////zAKhwgLAAD8/////zAKhwgLAAD9 --/////zAKhwgLAAD+/////zAKhwgLAAD//////zAKhwgLAAEA/////zAKhwgLAAEB --/////zAKhwgLAAEC/////zAKhwgLAAED/////zAKhwgLAAEE/////zAKhwgLAAEF --/////zAKhwgLAAEG/////zAKhwgLAAEH/////zAKhwgLAAEI/////zAKhwgLAAEJ --/////zAKhwgLAAEK/////zAKhwgLAAEL/////zAKhwgLAAEM/////zAKhwgLAAEN --/////zAKhwgLAAEO/////zAKhwgLAAEP/////zAKhwgLAAEQ/////zAKhwgLAAER --/////zAKhwgLAAES/////zAKhwgLAAET/////zAKhwgLAAEU/////zAKhwgLAAEV --/////zAKhwgLAAEW/////zAKhwgLAAEX/////zAKhwgLAAEY/////zAKhwgLAAEZ --/////zAKhwgLAAEa/////zAKhwgLAAEb/////zAKhwgLAAEc/////zAKhwgLAAEd --/////zAKhwgLAAEe/////zAKhwgLAAEf/////zAKhwgLAAEg/////zAKhwgLAAEh --/////zAKhwgLAAEi/////zAKhwgLAAEj/////zAKhwgLAAEk/////zAKhwgLAAEl --/////zAKhwgLAAEm/////zAKhwgLAAEn/////zAKhwgLAAEo/////zAKhwgLAAEp --/////zAKhwgLAAEq/////zAKhwgLAAEr/////zAKhwgLAAEs/////zAKhwgLAAEt --/////zAKhwgLAAEu/////zAKhwgLAAEv/////zAKhwgLAAEw/////zAKhwgLAAEx --/////zAKhwgLAAEy/////zAKhwgLAAEz/////zAKhwgLAAE0/////zAKhwgLAAE1 --/////zAKhwgLAAE2/////zAKhwgLAAE3/////zAKhwgLAAE4/////zAKhwgLAAE5 --/////zAKhwgLAAE6/////zAKhwgLAAE7/////zAKhwgLAAE8/////zAKhwgLAAE9 --/////zAKhwgLAAE+/////zAKhwgLAAE//////zAKhwgLAAFA/////zAKhwgLAAFB --/////zAKhwgLAAFC/////zAKhwgLAAFD/////zAKhwgLAAFE/////zAKhwgLAAFF --/////zAKhwgLAAFG/////zAKhwgLAAFH/////zAKhwgLAAFI/////zAKhwgLAAFJ --/////zAKhwgLAAFK/////zAKhwgLAAFL/////zAKhwgLAAFM/////zAKhwgLAAFN --/////zAKhwgLAAFO/////zAKhwgLAAFP/////zAKhwgLAAFQ/////zAKhwgLAAFR --/////zAKhwgLAAFS/////zAKhwgLAAFT/////zAKhwgLAAFU/////zAKhwgLAAFV --/////zAKhwgLAAFW/////zAKhwgLAAFX/////zAKhwgLAAFY/////zAKhwgLAAFZ --/////zAKhwgLAAFa/////zAKhwgLAAFb/////zAKhwgLAAFc/////zAKhwgLAAFd --/////zAKhwgLAAFe/////zAKhwgLAAFf/////zAKhwgLAAFg/////zAKhwgLAAFh --/////zAKhwgLAAFi/////zAKhwgLAAFj/////zAKhwgLAAFk/////zAKhwgLAAFl --/////zAKhwgLAAFm/////zAKhwgLAAFn/////zAKhwgLAAFo/////zAKhwgLAAFp --/////zAKhwgLAAFq/////zAKhwgLAAFr/////zAKhwgLAAFs/////zAKhwgLAAFt --/////zAKhwgLAAFu/////zAKhwgLAAFv/////zAKhwgLAAFw/////zAKhwgLAAFx --/////zAKhwgLAAFy/////zAKhwgLAAFz/////zAKhwgLAAF0/////zAKhwgLAAF1 --/////zAKhwgLAAF2/////zAKhwgLAAF3/////zAKhwgLAAF4/////zAKhwgLAAF5 --/////zAKhwgLAAF6/////zAKhwgLAAF7/////zAKhwgLAAF8/////zAKhwgLAAF9 --/////zAKhwgLAAF+/////zAKhwgLAAF//////zAKhwgLAAGA/////zAKhwgLAAGB --/////zAKhwgLAAGC/////zAKhwgLAAGD/////zAKhwgLAAGE/////zAKhwgLAAGF --/////zAKhwgLAAGG/////zAKhwgLAAGH/////zAKhwgLAAGI/////zAKhwgLAAGJ --/////zAKhwgLAAGK/////zAKhwgLAAGL/////zAKhwgLAAGM/////zAKhwgLAAGN --/////zAKhwgLAAGO/////zAKhwgLAAGP/////zAKhwgLAAGQ/////zAKhwgLAAGR --/////zAKhwgLAAGS/////zAKhwgLAAGT/////zAKhwgLAAGU/////zAKhwgLAAGV --/////zAKhwgLAAGW/////zAKhwgLAAGX/////zAKhwgLAAGY/////zAKhwgLAAGZ --/////zAKhwgLAAGa/////zAKhwgLAAGb/////zAKhwgLAAGc/////zAKhwgLAAGd --/////zAKhwgLAAGe/////zAKhwgLAAGf/////zAKhwgLAAGg/////zAKhwgLAAGh --/////zAKhwgLAAGi/////zAKhwgLAAGj/////zAKhwgLAAGk/////zAKhwgLAAGl --/////zAKhwgLAAGm/////zAKhwgLAAGn/////zAKhwgLAAGo/////zAKhwgLAAGp --/////zAKhwgLAAGq/////zAKhwgLAAGr/////zAKhwgLAAGs/////zAKhwgLAAGt --/////zAKhwgLAAGu/////zAKhwgLAAGv/////zAKhwgLAAGw/////zAKhwgLAAGx --/////zAKhwgLAAGy/////zAKhwgLAAGz/////zAKhwgLAAG0/////zAKhwgLAAG1 --/////zAKhwgLAAG2/////zAKhwgLAAG3/////zAKhwgLAAG4/////zAKhwgLAAG5 --/////zAKhwgLAAG6/////zAKhwgLAAG7/////zAKhwgLAAG8/////zAKhwgLAAG9 --/////zAKhwgLAAG+/////zAKhwgLAAG//////zAKhwgLAAHA/////zAKhwgLAAHB --/////zAKhwgLAAHC/////zAKhwgLAAHD/////zAKhwgLAAHE/////zAKhwgLAAHF --/////zAKhwgLAAHG/////zAKhwgLAAHH/////zAKhwgLAAHI/////zAKhwgLAAHJ --/////zAKhwgLAAHK/////zAKhwgLAAHL/////zAKhwgLAAHM/////zAKhwgLAAHN --/////zAKhwgLAAHO/////zAKhwgLAAHP/////zAKhwgLAAHQ/////zAKhwgLAAHR --/////zAKhwgLAAHS/////zAKhwgLAAHT/////zAKhwgLAAHU/////zAKhwgLAAHV --/////zAKhwgLAAHW/////zAKhwgLAAHX/////zAKhwgLAAHY/////zAKhwgLAAHZ --/////zAKhwgLAAHa/////zAKhwgLAAHb/////zAKhwgLAAHc/////zAKhwgLAAHd --/////zAKhwgLAAHe/////zAKhwgLAAHf/////zAKhwgLAAHg/////zAKhwgLAAHh --/////zAKhwgLAAHi/////zAKhwgLAAHj/////zAKhwgLAAHk/////zAKhwgLAAHl --/////zAKhwgLAAHm/////zAKhwgLAAHn/////zAKhwgLAAHo/////zAKhwgLAAHp --/////zAKhwgLAAHq/////zAKhwgLAAHr/////zAKhwgLAAHs/////zAKhwgLAAHt --/////zAKhwgLAAHu/////zAKhwgLAAHv/////zAKhwgLAAHw/////zAKhwgLAAHx --/////zAKhwgLAAHy/////zAKhwgLAAHz/////zAKhwgLAAH0/////zAKhwgLAAH1 --/////zAKhwgLAAH2/////zAKhwgLAAH3/////zAKhwgLAAH4/////zAKhwgLAAH5 --/////zAKhwgLAAH6/////zAKhwgLAAH7/////zAKhwgLAAH8/////zAKhwgLAAH9 --/////zAKhwgLAAH+/////zAKhwgLAAH//////zAKhwgLAAIA/////zAKhwgLAAIB --/////zAKhwgLAAIC/////zAKhwgLAAID/////zAKhwgLAAIE/////zAKhwgLAAIF --/////zAKhwgLAAIG/////zAKhwgLAAIH/////zAKhwgLAAII/////zAKhwgLAAIJ --/////zAKhwgLAAIK/////zAKhwgLAAIL/////zAKhwgLAAIM/////zAKhwgLAAIN --/////zAKhwgLAAIO/////zAKhwgLAAIP/////zAKhwgLAAIQ/////zAKhwgLAAIR --/////zAKhwgLAAIS/////zAKhwgLAAIT/////zAKhwgLAAIU/////zAKhwgLAAIV --/////zAKhwgLAAIW/////zAKhwgLAAIX/////zAKhwgLAAIY/////zAKhwgLAAIZ --/////zAKhwgLAAIa/////zAKhwgLAAIb/////zAKhwgLAAIc/////zAKhwgLAAId --/////zAKhwgLAAIe/////zAKhwgLAAIf/////zAKhwgLAAIg/////zAKhwgLAAIh --/////zAKhwgLAAIi/////zAKhwgLAAIj/////zAKhwgLAAIk/////zAKhwgLAAIl --/////zAKhwgLAAIm/////zAKhwgLAAIn/////zAKhwgLAAIo/////zAKhwgLAAIp --/////zAKhwgLAAIq/////zAKhwgLAAIr/////zAKhwgLAAIs/////zAKhwgLAAIt --/////zAKhwgLAAIu/////zAKhwgLAAIv/////zAKhwgLAAIw/////zAKhwgLAAIx --/////zAKhwgLAAIy/////zAKhwgLAAIz/////zAKhwgLAAI0/////zAKhwgLAAI1 --/////zAKhwgLAAI2/////zAKhwgLAAI3/////zAKhwgLAAI4/////zAKhwgLAAI5 --/////zAKhwgLAAI6/////zAKhwgLAAI7/////zAKhwgLAAI8/////zAKhwgLAAI9 --/////zAKhwgLAAI+/////zAKhwgLAAI//////zAKhwgLAAJA/////zAKhwgLAAJB --/////zAKhwgLAAJC/////zAKhwgLAAJD/////zAKhwgLAAJE/////zAKhwgLAAJF --/////zAKhwgLAAJG/////zAKhwgLAAJH/////zAKhwgLAAJI/////zAKhwgLAAJJ --/////zAKhwgLAAJK/////zAKhwgLAAJL/////zAKhwgLAAJM/////zAKhwgLAAJN --/////zAKhwgLAAJO/////zAKhwgLAAJP/////zAKhwgLAAJQ/////zAKhwgLAAJR --/////zAKhwgLAAJS/////zAKhwgLAAJT/////zAKhwgLAAJU/////zAKhwgLAAJV --/////zAKhwgLAAJW/////zAKhwgLAAJX/////zAKhwgLAAJY/////zAKhwgLAAJZ --/////zAKhwgLAAJa/////zAKhwgLAAJb/////zAKhwgLAAJc/////zAKhwgLAAJd --/////zAKhwgLAAJe/////zAKhwgLAAJf/////zAKhwgLAAJg/////zAKhwgLAAJh --/////zAKhwgLAAJi/////zAKhwgLAAJj/////zAKhwgLAAJk/////zAKhwgLAAJl --/////zAKhwgLAAJm/////zAKhwgLAAJn/////zAKhwgLAAJo/////zAKhwgLAAJp --/////zAKhwgLAAJq/////zAKhwgLAAJr/////zAKhwgLAAJs/////zAKhwgLAAJt --/////zAKhwgLAAJu/////zAKhwgLAAJv/////zAKhwgLAAJw/////zAKhwgLAAJx --/////zAKhwgLAAJy/////zAKhwgLAAJz/////zAKhwgLAAJ0/////zAKhwgLAAJ1 --/////zAKhwgLAAJ2/////zAKhwgLAAJ3/////zAKhwgLAAJ4/////zAKhwgLAAJ5 --/////zAKhwgLAAJ6/////zAKhwgLAAJ7/////zAKhwgLAAJ8/////zAKhwgLAAJ9 --/////zAKhwgLAAJ+/////zAKhwgLAAJ//////zAKhwgLAAKA/////zAKhwgLAAKB --/////zAKhwgLAAKC/////zAKhwgLAAKD/////zAKhwgLAAKE/////zAKhwgLAAKF --/////zAKhwgLAAKG/////zAKhwgLAAKH/////zAKhwgLAAKI/////zAKhwgLAAKJ --/////zAKhwgLAAKK/////zAKhwgLAAKL/////zAKhwgLAAKM/////zAKhwgLAAKN --/////zAKhwgLAAKO/////zAKhwgLAAKP/////zAKhwgLAAKQ/////zAKhwgLAAKR --/////zAKhwgLAAKS/////zAKhwgLAAKT/////zAKhwgLAAKU/////zAKhwgLAAKV --/////zAKhwgLAAKW/////zAKhwgLAAKX/////zAKhwgLAAKY/////zAKhwgLAAKZ --/////zAKhwgLAAKa/////zAKhwgLAAKb/////zAKhwgLAAKc/////zAKhwgLAAKd --/////zAKhwgLAAKe/////zAKhwgLAAKf/////zAKhwgLAAKg/////zAKhwgLAAKh --/////zAKhwgLAAKi/////zAKhwgLAAKj/////zAKhwgLAAKk/////zAKhwgLAAKl --/////zAKhwgLAAKm/////zAKhwgLAAKn/////zAKhwgLAAKo/////zAKhwgLAAKp --/////zAKhwgLAAKq/////zAKhwgLAAKr/////zAKhwgLAAKs/////zAKhwgLAAKt --/////zAKhwgLAAKu/////zAKhwgLAAKv/////zAKhwgLAAKw/////zAKhwgLAAKx --/////zAKhwgLAAKy/////zAKhwgLAAKz/////zAKhwgLAAK0/////zAKhwgLAAK1 --/////zAKhwgLAAK2/////zAKhwgLAAK3/////zAKhwgLAAK4/////zAKhwgLAAK5 --/////zAKhwgLAAK6/////zAKhwgLAAK7/////zAKhwgLAAK8/////zAKhwgLAAK9 --/////zAKhwgLAAK+/////zAKhwgLAAK//////zAKhwgLAALA/////zAKhwgLAALB --/////zAKhwgLAALC/////zAKhwgLAALD/////zAKhwgLAALE/////zAKhwgLAALF --/////zAKhwgLAALG/////zAKhwgLAALH/////zAKhwgLAALI/////zAKhwgLAALJ --/////zAKhwgLAALK/////zAKhwgLAALL/////zAKhwgLAALM/////zAKhwgLAALN --/////zAKhwgLAALO/////zAKhwgLAALP/////zAKhwgLAALQ/////zAKhwgLAALR --/////zAKhwgLAALS/////zAKhwgLAALT/////zAKhwgLAALU/////zAKhwgLAALV --/////zAKhwgLAALW/////zAKhwgLAALX/////zAKhwgLAALY/////zAKhwgLAALZ --/////zAKhwgLAALa/////zAKhwgLAALb/////zAKhwgLAALc/////zAKhwgLAALd --/////zAKhwgLAALe/////zAKhwgLAALf/////zAKhwgLAALg/////zAKhwgLAALh --/////zAKhwgLAALi/////zAKhwgLAALj/////zAKhwgLAALk/////zAKhwgLAALl --/////zAKhwgLAALm/////zAKhwgLAALn/////zAKhwgLAALo/////zAKhwgLAALp --/////zAKhwgLAALq/////zAKhwgLAALr/////zAKhwgLAALs/////zAKhwgLAALt --/////zAKhwgLAALu/////zAKhwgLAALv/////zAKhwgLAALw/////zAKhwgLAALx --/////zAKhwgLAALy/////zAKhwgLAALz/////zAKhwgLAAL0/////zAKhwgLAAL1 --/////zAKhwgLAAL2/////zAKhwgLAAL3/////zAKhwgLAAL4/////zAKhwgLAAL5 --/////zAKhwgLAAL6/////zAKhwgLAAL7/////zAKhwgLAAL8/////zAKhwgLAAL9 --/////zAKhwgLAAL+/////zAKhwgLAAL//////zAKhwgLAAMA/////zAKhwgLAAMB --/////zAKhwgLAAMC/////zAKhwgLAAMD/////zAKhwgLAAME/////zAKhwgLAAMF --/////zAKhwgLAAMG/////zAKhwgLAAMH/////zAKhwgLAAMI/////zAKhwgLAAMJ --/////zAKhwgLAAMK/////zAKhwgLAAML/////zAKhwgLAAMM/////zAKhwgLAAMN --/////zAKhwgLAAMO/////zAKhwgLAAMP/////zAKhwgLAAMQ/////zAKhwgLAAMR --/////zAKhwgLAAMS/////zAKhwgLAAMT/////zAKhwgLAAMU/////zAKhwgLAAMV --/////zAKhwgLAAMW/////zAKhwgLAAMX/////zAKhwgLAAMY/////zAKhwgLAAMZ --/////zAKhwgLAAMa/////zAKhwgLAAMb/////zAKhwgLAAMc/////zAKhwgLAAMd --/////zAKhwgLAAMe/////zAKhwgLAAMf/////zAKhwgLAAMg/////zAKhwgLAAMh --/////zAKhwgLAAMi/////zAKhwgLAAMj/////zAKhwgLAAMk/////zAKhwgLAAMl --/////zAKhwgLAAMm/////zAKhwgLAAMn/////zAKhwgLAAMo/////zAKhwgLAAMp --/////zAKhwgLAAMq/////zAKhwgLAAMr/////zAKhwgLAAMs/////zAKhwgLAAMt --/////zAKhwgLAAMu/////zAKhwgLAAMv/////zAKhwgLAAMw/////zAKhwgLAAMx --/////zAKhwgLAAMy/////zAKhwgLAAMz/////zAKhwgLAAM0/////zAKhwgLAAM1 --/////zAKhwgLAAM2/////zAKhwgLAAM3/////zAKhwgLAAM4/////zAKhwgLAAM5 --/////zAKhwgLAAM6/////zAKhwgLAAM7/////zAKhwgLAAM8/////zAKhwgLAAM9 --/////zAKhwgLAAM+/////zAKhwgLAAM//////zAKhwgLAANA/////zAKhwgLAANB --/////zAKhwgLAANC/////zAKhwgLAAND/////zAKhwgLAANE/////zAKhwgLAANF --/////zAKhwgLAANG/////zAKhwgLAANH/////zAKhwgLAANI/////zAKhwgLAANJ --/////zAKhwgLAANK/////zAKhwgLAANL/////zAKhwgLAANM/////zAKhwgLAANN --/////zAKhwgLAANO/////zAKhwgLAANP/////zAKhwgLAANQ/////zAKhwgLAANR --/////zAKhwgLAANS/////zAKhwgLAANT/////zAKhwgLAANU/////zAKhwgLAANV --/////zAKhwgLAANW/////zAKhwgLAANX/////zAKhwgLAANY/////zAKhwgLAANZ --/////zAKhwgLAANa/////zAKhwgLAANb/////zAKhwgLAANc/////zAKhwgLAANd --/////zAKhwgLAANe/////zAKhwgLAANf/////zAKhwgLAANg/////zAKhwgLAANh --/////zAKhwgLAANi/////zAKhwgLAANj/////zAKhwgLAANk/////zAKhwgLAANl --/////zAKhwgLAANm/////zAKhwgLAANn/////zAKhwgLAANo/////zAKhwgLAANp --/////zAKhwgLAANq/////zAKhwgLAANr/////zAKhwgLAANs/////zAKhwgLAANt --/////zAKhwgLAANu/////zAKhwgLAANv/////zAKhwgLAANw/////zAKhwgLAANx --/////zAKhwgLAANy/////zAKhwgLAANz/////zAKhwgLAAN0/////zAKhwgLAAN1 --/////zAKhwgLAAN2/////zAKhwgLAAN3/////zAKhwgLAAN4/////zAKhwgLAAN5 --/////zAKhwgLAAN6/////zAKhwgLAAN7/////zAKhwgLAAN8/////zAKhwgLAAN9 --/////zAKhwgLAAN+/////zAKhwgLAAN//////zAKhwgLAAOA/////zAKhwgLAAOB --/////zAKhwgLAAOC/////zAKhwgLAAOD/////zAKhwgLAAOE/////zAKhwgLAAOF --/////zAKhwgLAAOG/////zAKhwgLAAOH/////zAKhwgLAAOI/////zAKhwgLAAOJ --/////zAKhwgLAAOK/////zAKhwgLAAOL/////zAKhwgLAAOM/////zAKhwgLAAON --/////zAKhwgLAAOO/////zAKhwgLAAOP/////zAKhwgLAAOQ/////zAKhwgLAAOR --/////zAKhwgLAAOS/////zAKhwgLAAOT/////zAKhwgLAAOU/////zAKhwgLAAOV --/////zAKhwgLAAOW/////zAKhwgLAAOX/////zAKhwgLAAOY/////zAKhwgLAAOZ --/////zAKhwgLAAOa/////zAKhwgLAAOb/////zAKhwgLAAOc/////zAKhwgLAAOd --/////zAKhwgLAAOe/////zAKhwgLAAOf/////zAKhwgLAAOg/////zAKhwgLAAOh --/////zAKhwgLAAOi/////zAKhwgLAAOj/////zAKhwgLAAOk/////zAKhwgLAAOl --/////zAKhwgLAAOm/////zAKhwgLAAOn/////zAKhwgLAAOo/////zAKhwgLAAOp --/////zAKhwgLAAOq/////zAKhwgLAAOr/////zAKhwgLAAOs/////zAKhwgLAAOt --/////zAKhwgLAAOu/////zAKhwgLAAOv/////zAKhwgLAAOw/////zAKhwgLAAOx --/////zAKhwgLAAOy/////zAKhwgLAAOz/////zAKhwgLAAO0/////zAKhwgLAAO1 --/////zAKhwgLAAO2/////zAKhwgLAAO3/////zAKhwgLAAO4/////zAKhwgLAAO5 --/////zAKhwgLAAO6/////zAKhwgLAAO7/////zAKhwgLAAO8/////zAKhwgLAAO9 --/////zAKhwgLAAO+/////zAKhwgLAAO//////zAKhwgLAAPA/////zAKhwgLAAPB --/////zAKhwgLAAPC/////zAKhwgLAAPD/////zAKhwgLAAPE/////zAKhwgLAAPF --/////zAKhwgLAAPG/////zAKhwgLAAPH/////zAKhwgLAAPI/////zAKhwgLAAPJ --/////zAKhwgLAAPK/////zAKhwgLAAPL/////zAKhwgLAAPM/////zAKhwgLAAPN --/////zAKhwgLAAPO/////zAKhwgLAAPP/////zAKhwgLAAPQ/////zAKhwgLAAPR --/////zAKhwgLAAPS/////zAKhwgLAAPT/////zAKhwgLAAPU/////zAKhwgLAAPV --/////zAKhwgLAAPW/////zAKhwgLAAPX/////zAKhwgLAAPY/////zAKhwgLAAPZ --/////zAKhwgLAAPa/////zAKhwgLAAPb/////zAKhwgLAAPc/////zAKhwgLAAPd --/////zAKhwgLAAPe/////zAKhwgLAAPf/////zAKhwgLAAPg/////zAKhwgLAAPh --/////zAKhwgLAAPi/////zAKhwgLAAPj/////zAKhwgLAAPk/////zAKhwgLAAPl --/////zAKhwgLAAPm/////zAKhwgLAAPn/////zAKhwgLAAPo/////zAKhwgLAAPp --/////zAKhwgLAAPq/////zAKhwgLAAPr/////zAKhwgLAAPs/////zAKhwgLAAPt --/////zAKhwgLAAPu/////zAKhwgLAAPv/////zAKhwgLAAPw/////zAKhwgLAAPx --/////zAKhwgLAAPy/////zAKhwgLAAPz/////zAKhwgLAAP0/////zAKhwgLAAP1 --/////zAKhwgLAAP2/////zAKhwgLAAP3/////zAKhwgLAAP4/////zAKhwgLAAP5 --/////zAKhwgLAAP6/////zAKhwgLAAP7/////zAKhwgLAAP8/////zAKhwgLAAP9 --/////zAKhwgLAAP+/////zAKhwgLAAP//////zAKhwgLAAQA/////zAPhg1odHRw --Oi8veGVzdC8wMA+GDWh0dHA6Ly94ZXN0LzEwD4YNaHR0cDovL3hlc3QvMjAPhg1o --dHRwOi8veGVzdC8zMA+GDWh0dHA6Ly94ZXN0LzQwD4YNaHR0cDovL3hlc3QvNTAP --hg1odHRwOi8veGVzdC82MA+GDWh0dHA6Ly94ZXN0LzcwD4YNaHR0cDovL3hlc3Qv --ODAPhg1odHRwOi8veGVzdC85MBCGDmh0dHA6Ly94ZXN0LzEwMBCGDmh0dHA6Ly94 --ZXN0LzExMBCGDmh0dHA6Ly94ZXN0LzEyMBCGDmh0dHA6Ly94ZXN0LzEzMBCGDmh0 --dHA6Ly94ZXN0LzE0MBCGDmh0dHA6Ly94ZXN0LzE1MBCGDmh0dHA6Ly94ZXN0LzE2 --MBCGDmh0dHA6Ly94ZXN0LzE3MBCGDmh0dHA6Ly94ZXN0LzE4MBCGDmh0dHA6Ly94 --ZXN0LzE5MBCGDmh0dHA6Ly94ZXN0LzIwMBCGDmh0dHA6Ly94ZXN0LzIxMBCGDmh0 --dHA6Ly94ZXN0LzIyMBCGDmh0dHA6Ly94ZXN0LzIzMBCGDmh0dHA6Ly94ZXN0LzI0 --MBCGDmh0dHA6Ly94ZXN0LzI1MBCGDmh0dHA6Ly94ZXN0LzI2MBCGDmh0dHA6Ly94 --ZXN0LzI3MBCGDmh0dHA6Ly94ZXN0LzI4MBCGDmh0dHA6Ly94ZXN0LzI5MBCGDmh0 --dHA6Ly94ZXN0LzMwMBCGDmh0dHA6Ly94ZXN0LzMxMBCGDmh0dHA6Ly94ZXN0LzMy --MBCGDmh0dHA6Ly94ZXN0LzMzMBCGDmh0dHA6Ly94ZXN0LzM0MBCGDmh0dHA6Ly94 --ZXN0LzM1MBCGDmh0dHA6Ly94ZXN0LzM2MBCGDmh0dHA6Ly94ZXN0LzM3MBCGDmh0 --dHA6Ly94ZXN0LzM4MBCGDmh0dHA6Ly94ZXN0LzM5MBCGDmh0dHA6Ly94ZXN0LzQw --MBCGDmh0dHA6Ly94ZXN0LzQxMBCGDmh0dHA6Ly94ZXN0LzQyMBCGDmh0dHA6Ly94 --ZXN0LzQzMBCGDmh0dHA6Ly94ZXN0LzQ0MBCGDmh0dHA6Ly94ZXN0LzQ1MBCGDmh0 --dHA6Ly94ZXN0LzQ2MBCGDmh0dHA6Ly94ZXN0LzQ3MBCGDmh0dHA6Ly94ZXN0LzQ4 --MBCGDmh0dHA6Ly94ZXN0LzQ5MBCGDmh0dHA6Ly94ZXN0LzUwMBCGDmh0dHA6Ly94 --ZXN0LzUxMBCGDmh0dHA6Ly94ZXN0LzUyMBCGDmh0dHA6Ly94ZXN0LzUzMBCGDmh0 --dHA6Ly94ZXN0LzU0MBCGDmh0dHA6Ly94ZXN0LzU1MBCGDmh0dHA6Ly94ZXN0LzU2 --MBCGDmh0dHA6Ly94ZXN0LzU3MBCGDmh0dHA6Ly94ZXN0LzU4MBCGDmh0dHA6Ly94 --ZXN0LzU5MBCGDmh0dHA6Ly94ZXN0LzYwMBCGDmh0dHA6Ly94ZXN0LzYxMBCGDmh0 --dHA6Ly94ZXN0LzYyMBCGDmh0dHA6Ly94ZXN0LzYzMBCGDmh0dHA6Ly94ZXN0LzY0 --MBCGDmh0dHA6Ly94ZXN0LzY1MBCGDmh0dHA6Ly94ZXN0LzY2MBCGDmh0dHA6Ly94 --ZXN0LzY3MBCGDmh0dHA6Ly94ZXN0LzY4MBCGDmh0dHA6Ly94ZXN0LzY5MBCGDmh0 --dHA6Ly94ZXN0LzcwMBCGDmh0dHA6Ly94ZXN0LzcxMBCGDmh0dHA6Ly94ZXN0Lzcy --MBCGDmh0dHA6Ly94ZXN0LzczMBCGDmh0dHA6Ly94ZXN0Lzc0MBCGDmh0dHA6Ly94 --ZXN0Lzc1MBCGDmh0dHA6Ly94ZXN0Lzc2MBCGDmh0dHA6Ly94ZXN0Lzc3MBCGDmh0 --dHA6Ly94ZXN0Lzc4MBCGDmh0dHA6Ly94ZXN0Lzc5MBCGDmh0dHA6Ly94ZXN0Lzgw --MBCGDmh0dHA6Ly94ZXN0LzgxMBCGDmh0dHA6Ly94ZXN0LzgyMBCGDmh0dHA6Ly94 --ZXN0LzgzMBCGDmh0dHA6Ly94ZXN0Lzg0MBCGDmh0dHA6Ly94ZXN0Lzg1MBCGDmh0 --dHA6Ly94ZXN0Lzg2MBCGDmh0dHA6Ly94ZXN0Lzg3MBCGDmh0dHA6Ly94ZXN0Lzg4 --MBCGDmh0dHA6Ly94ZXN0Lzg5MBCGDmh0dHA6Ly94ZXN0LzkwMBCGDmh0dHA6Ly94 --ZXN0LzkxMBCGDmh0dHA6Ly94ZXN0LzkyMBCGDmh0dHA6Ly94ZXN0LzkzMBCGDmh0 --dHA6Ly94ZXN0Lzk0MBCGDmh0dHA6Ly94ZXN0Lzk1MBCGDmh0dHA6Ly94ZXN0Lzk2 --MBCGDmh0dHA6Ly94ZXN0Lzk3MBCGDmh0dHA6Ly94ZXN0Lzk4MBCGDmh0dHA6Ly94 --ZXN0Lzk5MBGGD2h0dHA6Ly94ZXN0LzEwMDARhg9odHRwOi8veGVzdC8xMDEwEYYP --aHR0cDovL3hlc3QvMTAyMBGGD2h0dHA6Ly94ZXN0LzEwMzARhg9odHRwOi8veGVz --dC8xMDQwEYYPaHR0cDovL3hlc3QvMTA1MBGGD2h0dHA6Ly94ZXN0LzEwNjARhg9o --dHRwOi8veGVzdC8xMDcwEYYPaHR0cDovL3hlc3QvMTA4MBGGD2h0dHA6Ly94ZXN0 --LzEwOTARhg9odHRwOi8veGVzdC8xMTAwEYYPaHR0cDovL3hlc3QvMTExMBGGD2h0 --dHA6Ly94ZXN0LzExMjARhg9odHRwOi8veGVzdC8xMTMwEYYPaHR0cDovL3hlc3Qv --MTE0MBGGD2h0dHA6Ly94ZXN0LzExNTARhg9odHRwOi8veGVzdC8xMTYwEYYPaHR0 --cDovL3hlc3QvMTE3MBGGD2h0dHA6Ly94ZXN0LzExODARhg9odHRwOi8veGVzdC8x --MTkwEYYPaHR0cDovL3hlc3QvMTIwMBGGD2h0dHA6Ly94ZXN0LzEyMTARhg9odHRw --Oi8veGVzdC8xMjIwEYYPaHR0cDovL3hlc3QvMTIzMBGGD2h0dHA6Ly94ZXN0LzEy --NDARhg9odHRwOi8veGVzdC8xMjUwEYYPaHR0cDovL3hlc3QvMTI2MBGGD2h0dHA6 --Ly94ZXN0LzEyNzARhg9odHRwOi8veGVzdC8xMjgwEYYPaHR0cDovL3hlc3QvMTI5 --MBGGD2h0dHA6Ly94ZXN0LzEzMDARhg9odHRwOi8veGVzdC8xMzEwEYYPaHR0cDov --L3hlc3QvMTMyMBGGD2h0dHA6Ly94ZXN0LzEzMzARhg9odHRwOi8veGVzdC8xMzQw --EYYPaHR0cDovL3hlc3QvMTM1MBGGD2h0dHA6Ly94ZXN0LzEzNjARhg9odHRwOi8v --eGVzdC8xMzcwEYYPaHR0cDovL3hlc3QvMTM4MBGGD2h0dHA6Ly94ZXN0LzEzOTAR --hg9odHRwOi8veGVzdC8xNDAwEYYPaHR0cDovL3hlc3QvMTQxMBGGD2h0dHA6Ly94 --ZXN0LzE0MjARhg9odHRwOi8veGVzdC8xNDMwEYYPaHR0cDovL3hlc3QvMTQ0MBGG --D2h0dHA6Ly94ZXN0LzE0NTARhg9odHRwOi8veGVzdC8xNDYwEYYPaHR0cDovL3hl --c3QvMTQ3MBGGD2h0dHA6Ly94ZXN0LzE0ODARhg9odHRwOi8veGVzdC8xNDkwEYYP --aHR0cDovL3hlc3QvMTUwMBGGD2h0dHA6Ly94ZXN0LzE1MTARhg9odHRwOi8veGVz --dC8xNTIwEYYPaHR0cDovL3hlc3QvMTUzMBGGD2h0dHA6Ly94ZXN0LzE1NDARhg9o --dHRwOi8veGVzdC8xNTUwEYYPaHR0cDovL3hlc3QvMTU2MBGGD2h0dHA6Ly94ZXN0 --LzE1NzARhg9odHRwOi8veGVzdC8xNTgwEYYPaHR0cDovL3hlc3QvMTU5MBGGD2h0 --dHA6Ly94ZXN0LzE2MDARhg9odHRwOi8veGVzdC8xNjEwEYYPaHR0cDovL3hlc3Qv --MTYyMBGGD2h0dHA6Ly94ZXN0LzE2MzARhg9odHRwOi8veGVzdC8xNjQwEYYPaHR0 --cDovL3hlc3QvMTY1MBGGD2h0dHA6Ly94ZXN0LzE2NjARhg9odHRwOi8veGVzdC8x --NjcwEYYPaHR0cDovL3hlc3QvMTY4MBGGD2h0dHA6Ly94ZXN0LzE2OTARhg9odHRw --Oi8veGVzdC8xNzAwEYYPaHR0cDovL3hlc3QvMTcxMBGGD2h0dHA6Ly94ZXN0LzE3 --MjARhg9odHRwOi8veGVzdC8xNzMwEYYPaHR0cDovL3hlc3QvMTc0MBGGD2h0dHA6 --Ly94ZXN0LzE3NTARhg9odHRwOi8veGVzdC8xNzYwEYYPaHR0cDovL3hlc3QvMTc3 --MBGGD2h0dHA6Ly94ZXN0LzE3ODARhg9odHRwOi8veGVzdC8xNzkwEYYPaHR0cDov --L3hlc3QvMTgwMBGGD2h0dHA6Ly94ZXN0LzE4MTARhg9odHRwOi8veGVzdC8xODIw --EYYPaHR0cDovL3hlc3QvMTgzMBGGD2h0dHA6Ly94ZXN0LzE4NDARhg9odHRwOi8v --eGVzdC8xODUwEYYPaHR0cDovL3hlc3QvMTg2MBGGD2h0dHA6Ly94ZXN0LzE4NzAR --hg9odHRwOi8veGVzdC8xODgwEYYPaHR0cDovL3hlc3QvMTg5MBGGD2h0dHA6Ly94 --ZXN0LzE5MDARhg9odHRwOi8veGVzdC8xOTEwEYYPaHR0cDovL3hlc3QvMTkyMBGG --D2h0dHA6Ly94ZXN0LzE5MzARhg9odHRwOi8veGVzdC8xOTQwEYYPaHR0cDovL3hl --c3QvMTk1MBGGD2h0dHA6Ly94ZXN0LzE5NjARhg9odHRwOi8veGVzdC8xOTcwEYYP --aHR0cDovL3hlc3QvMTk4MBGGD2h0dHA6Ly94ZXN0LzE5OTARhg9odHRwOi8veGVz --dC8yMDAwEYYPaHR0cDovL3hlc3QvMjAxMBGGD2h0dHA6Ly94ZXN0LzIwMjARhg9o --dHRwOi8veGVzdC8yMDMwEYYPaHR0cDovL3hlc3QvMjA0MBGGD2h0dHA6Ly94ZXN0 --LzIwNTARhg9odHRwOi8veGVzdC8yMDYwEYYPaHR0cDovL3hlc3QvMjA3MBGGD2h0 --dHA6Ly94ZXN0LzIwODARhg9odHRwOi8veGVzdC8yMDkwEYYPaHR0cDovL3hlc3Qv --MjEwMBGGD2h0dHA6Ly94ZXN0LzIxMTARhg9odHRwOi8veGVzdC8yMTIwEYYPaHR0 --cDovL3hlc3QvMjEzMBGGD2h0dHA6Ly94ZXN0LzIxNDARhg9odHRwOi8veGVzdC8y --MTUwEYYPaHR0cDovL3hlc3QvMjE2MBGGD2h0dHA6Ly94ZXN0LzIxNzARhg9odHRw --Oi8veGVzdC8yMTgwEYYPaHR0cDovL3hlc3QvMjE5MBGGD2h0dHA6Ly94ZXN0LzIy --MDARhg9odHRwOi8veGVzdC8yMjEwEYYPaHR0cDovL3hlc3QvMjIyMBGGD2h0dHA6 --Ly94ZXN0LzIyMzARhg9odHRwOi8veGVzdC8yMjQwEYYPaHR0cDovL3hlc3QvMjI1 --MBGGD2h0dHA6Ly94ZXN0LzIyNjARhg9odHRwOi8veGVzdC8yMjcwEYYPaHR0cDov --L3hlc3QvMjI4MBGGD2h0dHA6Ly94ZXN0LzIyOTARhg9odHRwOi8veGVzdC8yMzAw --EYYPaHR0cDovL3hlc3QvMjMxMBGGD2h0dHA6Ly94ZXN0LzIzMjARhg9odHRwOi8v --eGVzdC8yMzMwEYYPaHR0cDovL3hlc3QvMjM0MBGGD2h0dHA6Ly94ZXN0LzIzNTAR --hg9odHRwOi8veGVzdC8yMzYwEYYPaHR0cDovL3hlc3QvMjM3MBGGD2h0dHA6Ly94 --ZXN0LzIzODARhg9odHRwOi8veGVzdC8yMzkwEYYPaHR0cDovL3hlc3QvMjQwMBGG --D2h0dHA6Ly94ZXN0LzI0MTARhg9odHRwOi8veGVzdC8yNDIwEYYPaHR0cDovL3hl --c3QvMjQzMBGGD2h0dHA6Ly94ZXN0LzI0NDARhg9odHRwOi8veGVzdC8yNDUwEYYP --aHR0cDovL3hlc3QvMjQ2MBGGD2h0dHA6Ly94ZXN0LzI0NzARhg9odHRwOi8veGVz --dC8yNDgwEYYPaHR0cDovL3hlc3QvMjQ5MBGGD2h0dHA6Ly94ZXN0LzI1MDARhg9o --dHRwOi8veGVzdC8yNTEwEYYPaHR0cDovL3hlc3QvMjUyMBGGD2h0dHA6Ly94ZXN0 --LzI1MzARhg9odHRwOi8veGVzdC8yNTQwEYYPaHR0cDovL3hlc3QvMjU1MBGGD2h0 --dHA6Ly94ZXN0LzI1NjARhg9odHRwOi8veGVzdC8yNTcwEYYPaHR0cDovL3hlc3Qv --MjU4MBGGD2h0dHA6Ly94ZXN0LzI1OTARhg9odHRwOi8veGVzdC8yNjAwEYYPaHR0 --cDovL3hlc3QvMjYxMBGGD2h0dHA6Ly94ZXN0LzI2MjARhg9odHRwOi8veGVzdC8y --NjMwEYYPaHR0cDovL3hlc3QvMjY0MBGGD2h0dHA6Ly94ZXN0LzI2NTARhg9odHRw --Oi8veGVzdC8yNjYwEYYPaHR0cDovL3hlc3QvMjY3MBGGD2h0dHA6Ly94ZXN0LzI2 --ODARhg9odHRwOi8veGVzdC8yNjkwEYYPaHR0cDovL3hlc3QvMjcwMBGGD2h0dHA6 --Ly94ZXN0LzI3MTARhg9odHRwOi8veGVzdC8yNzIwEYYPaHR0cDovL3hlc3QvMjcz --MBGGD2h0dHA6Ly94ZXN0LzI3NDARhg9odHRwOi8veGVzdC8yNzUwEYYPaHR0cDov --L3hlc3QvMjc2MBGGD2h0dHA6Ly94ZXN0LzI3NzARhg9odHRwOi8veGVzdC8yNzgw --EYYPaHR0cDovL3hlc3QvMjc5MBGGD2h0dHA6Ly94ZXN0LzI4MDARhg9odHRwOi8v --eGVzdC8yODEwEYYPaHR0cDovL3hlc3QvMjgyMBGGD2h0dHA6Ly94ZXN0LzI4MzAR --hg9odHRwOi8veGVzdC8yODQwEYYPaHR0cDovL3hlc3QvMjg1MBGGD2h0dHA6Ly94 --ZXN0LzI4NjARhg9odHRwOi8veGVzdC8yODcwEYYPaHR0cDovL3hlc3QvMjg4MBGG --D2h0dHA6Ly94ZXN0LzI4OTARhg9odHRwOi8veGVzdC8yOTAwEYYPaHR0cDovL3hl --c3QvMjkxMBGGD2h0dHA6Ly94ZXN0LzI5MjARhg9odHRwOi8veGVzdC8yOTMwEYYP --aHR0cDovL3hlc3QvMjk0MBGGD2h0dHA6Ly94ZXN0LzI5NTARhg9odHRwOi8veGVz --dC8yOTYwEYYPaHR0cDovL3hlc3QvMjk3MBGGD2h0dHA6Ly94ZXN0LzI5ODARhg9o --dHRwOi8veGVzdC8yOTkwEYYPaHR0cDovL3hlc3QvMzAwMBGGD2h0dHA6Ly94ZXN0 --LzMwMTARhg9odHRwOi8veGVzdC8zMDIwEYYPaHR0cDovL3hlc3QvMzAzMBGGD2h0 --dHA6Ly94ZXN0LzMwNDARhg9odHRwOi8veGVzdC8zMDUwEYYPaHR0cDovL3hlc3Qv --MzA2MBGGD2h0dHA6Ly94ZXN0LzMwNzARhg9odHRwOi8veGVzdC8zMDgwEYYPaHR0 --cDovL3hlc3QvMzA5MBGGD2h0dHA6Ly94ZXN0LzMxMDARhg9odHRwOi8veGVzdC8z --MTEwEYYPaHR0cDovL3hlc3QvMzEyMBGGD2h0dHA6Ly94ZXN0LzMxMzARhg9odHRw --Oi8veGVzdC8zMTQwEYYPaHR0cDovL3hlc3QvMzE1MBGGD2h0dHA6Ly94ZXN0LzMx --NjARhg9odHRwOi8veGVzdC8zMTcwEYYPaHR0cDovL3hlc3QvMzE4MBGGD2h0dHA6 --Ly94ZXN0LzMxOTARhg9odHRwOi8veGVzdC8zMjAwEYYPaHR0cDovL3hlc3QvMzIx --MBGGD2h0dHA6Ly94ZXN0LzMyMjARhg9odHRwOi8veGVzdC8zMjMwEYYPaHR0cDov --L3hlc3QvMzI0MBGGD2h0dHA6Ly94ZXN0LzMyNTARhg9odHRwOi8veGVzdC8zMjYw --EYYPaHR0cDovL3hlc3QvMzI3MBGGD2h0dHA6Ly94ZXN0LzMyODARhg9odHRwOi8v --eGVzdC8zMjkwEYYPaHR0cDovL3hlc3QvMzMwMBGGD2h0dHA6Ly94ZXN0LzMzMTAR --hg9odHRwOi8veGVzdC8zMzIwEYYPaHR0cDovL3hlc3QvMzMzMBGGD2h0dHA6Ly94 --ZXN0LzMzNDARhg9odHRwOi8veGVzdC8zMzUwEYYPaHR0cDovL3hlc3QvMzM2MBGG --D2h0dHA6Ly94ZXN0LzMzNzARhg9odHRwOi8veGVzdC8zMzgwEYYPaHR0cDovL3hl --c3QvMzM5MBGGD2h0dHA6Ly94ZXN0LzM0MDARhg9odHRwOi8veGVzdC8zNDEwEYYP --aHR0cDovL3hlc3QvMzQyMBGGD2h0dHA6Ly94ZXN0LzM0MzARhg9odHRwOi8veGVz --dC8zNDQwEYYPaHR0cDovL3hlc3QvMzQ1MBGGD2h0dHA6Ly94ZXN0LzM0NjARhg9o --dHRwOi8veGVzdC8zNDcwEYYPaHR0cDovL3hlc3QvMzQ4MBGGD2h0dHA6Ly94ZXN0 --LzM0OTARhg9odHRwOi8veGVzdC8zNTAwEYYPaHR0cDovL3hlc3QvMzUxMBGGD2h0 --dHA6Ly94ZXN0LzM1MjARhg9odHRwOi8veGVzdC8zNTMwEYYPaHR0cDovL3hlc3Qv --MzU0MBGGD2h0dHA6Ly94ZXN0LzM1NTARhg9odHRwOi8veGVzdC8zNTYwEYYPaHR0 --cDovL3hlc3QvMzU3MBGGD2h0dHA6Ly94ZXN0LzM1ODARhg9odHRwOi8veGVzdC8z --NTkwEYYPaHR0cDovL3hlc3QvMzYwMBGGD2h0dHA6Ly94ZXN0LzM2MTARhg9odHRw --Oi8veGVzdC8zNjIwEYYPaHR0cDovL3hlc3QvMzYzMBGGD2h0dHA6Ly94ZXN0LzM2 --NDARhg9odHRwOi8veGVzdC8zNjUwEYYPaHR0cDovL3hlc3QvMzY2MBGGD2h0dHA6 --Ly94ZXN0LzM2NzARhg9odHRwOi8veGVzdC8zNjgwEYYPaHR0cDovL3hlc3QvMzY5 --MBGGD2h0dHA6Ly94ZXN0LzM3MDARhg9odHRwOi8veGVzdC8zNzEwEYYPaHR0cDov --L3hlc3QvMzcyMBGGD2h0dHA6Ly94ZXN0LzM3MzARhg9odHRwOi8veGVzdC8zNzQw --EYYPaHR0cDovL3hlc3QvMzc1MBGGD2h0dHA6Ly94ZXN0LzM3NjARhg9odHRwOi8v --eGVzdC8zNzcwEYYPaHR0cDovL3hlc3QvMzc4MBGGD2h0dHA6Ly94ZXN0LzM3OTAR --hg9odHRwOi8veGVzdC8zODAwEYYPaHR0cDovL3hlc3QvMzgxMBGGD2h0dHA6Ly94 --ZXN0LzM4MjARhg9odHRwOi8veGVzdC8zODMwEYYPaHR0cDovL3hlc3QvMzg0MBGG --D2h0dHA6Ly94ZXN0LzM4NTARhg9odHRwOi8veGVzdC8zODYwEYYPaHR0cDovL3hl --c3QvMzg3MBGGD2h0dHA6Ly94ZXN0LzM4ODARhg9odHRwOi8veGVzdC8zODkwEYYP --aHR0cDovL3hlc3QvMzkwMBGGD2h0dHA6Ly94ZXN0LzM5MTARhg9odHRwOi8veGVz --dC8zOTIwEYYPaHR0cDovL3hlc3QvMzkzMBGGD2h0dHA6Ly94ZXN0LzM5NDARhg9o --dHRwOi8veGVzdC8zOTUwEYYPaHR0cDovL3hlc3QvMzk2MBGGD2h0dHA6Ly94ZXN0 --LzM5NzARhg9odHRwOi8veGVzdC8zOTgwEYYPaHR0cDovL3hlc3QvMzk5MBGGD2h0 --dHA6Ly94ZXN0LzQwMDARhg9odHRwOi8veGVzdC80MDEwEYYPaHR0cDovL3hlc3Qv --NDAyMBGGD2h0dHA6Ly94ZXN0LzQwMzARhg9odHRwOi8veGVzdC80MDQwEYYPaHR0 --cDovL3hlc3QvNDA1MBGGD2h0dHA6Ly94ZXN0LzQwNjARhg9odHRwOi8veGVzdC80 --MDcwEYYPaHR0cDovL3hlc3QvNDA4MBGGD2h0dHA6Ly94ZXN0LzQwOTARhg9odHRw --Oi8veGVzdC80MTAwEYYPaHR0cDovL3hlc3QvNDExMBGGD2h0dHA6Ly94ZXN0LzQx --MjARhg9odHRwOi8veGVzdC80MTMwEYYPaHR0cDovL3hlc3QvNDE0MBGGD2h0dHA6 --Ly94ZXN0LzQxNTARhg9odHRwOi8veGVzdC80MTYwEYYPaHR0cDovL3hlc3QvNDE3 --MBGGD2h0dHA6Ly94ZXN0LzQxODARhg9odHRwOi8veGVzdC80MTkwEYYPaHR0cDov --L3hlc3QvNDIwMBGGD2h0dHA6Ly94ZXN0LzQyMTARhg9odHRwOi8veGVzdC80MjIw --EYYPaHR0cDovL3hlc3QvNDIzMBGGD2h0dHA6Ly94ZXN0LzQyNDARhg9odHRwOi8v --eGVzdC80MjUwEYYPaHR0cDovL3hlc3QvNDI2MBGGD2h0dHA6Ly94ZXN0LzQyNzAR --hg9odHRwOi8veGVzdC80MjgwEYYPaHR0cDovL3hlc3QvNDI5MBGGD2h0dHA6Ly94 --ZXN0LzQzMDARhg9odHRwOi8veGVzdC80MzEwEYYPaHR0cDovL3hlc3QvNDMyMBGG --D2h0dHA6Ly94ZXN0LzQzMzARhg9odHRwOi8veGVzdC80MzQwEYYPaHR0cDovL3hl --c3QvNDM1MBGGD2h0dHA6Ly94ZXN0LzQzNjARhg9odHRwOi8veGVzdC80MzcwEYYP --aHR0cDovL3hlc3QvNDM4MBGGD2h0dHA6Ly94ZXN0LzQzOTARhg9odHRwOi8veGVz --dC80NDAwEYYPaHR0cDovL3hlc3QvNDQxMBGGD2h0dHA6Ly94ZXN0LzQ0MjARhg9o --dHRwOi8veGVzdC80NDMwEYYPaHR0cDovL3hlc3QvNDQ0MBGGD2h0dHA6Ly94ZXN0 --LzQ0NTARhg9odHRwOi8veGVzdC80NDYwEYYPaHR0cDovL3hlc3QvNDQ3MBGGD2h0 --dHA6Ly94ZXN0LzQ0ODARhg9odHRwOi8veGVzdC80NDkwEYYPaHR0cDovL3hlc3Qv --NDUwMBGGD2h0dHA6Ly94ZXN0LzQ1MTARhg9odHRwOi8veGVzdC80NTIwEYYPaHR0 --cDovL3hlc3QvNDUzMBGGD2h0dHA6Ly94ZXN0LzQ1NDARhg9odHRwOi8veGVzdC80 --NTUwEYYPaHR0cDovL3hlc3QvNDU2MBGGD2h0dHA6Ly94ZXN0LzQ1NzARhg9odHRw --Oi8veGVzdC80NTgwEYYPaHR0cDovL3hlc3QvNDU5MBGGD2h0dHA6Ly94ZXN0LzQ2 --MDARhg9odHRwOi8veGVzdC80NjEwEYYPaHR0cDovL3hlc3QvNDYyMBGGD2h0dHA6 --Ly94ZXN0LzQ2MzARhg9odHRwOi8veGVzdC80NjQwEYYPaHR0cDovL3hlc3QvNDY1 --MBGGD2h0dHA6Ly94ZXN0LzQ2NjARhg9odHRwOi8veGVzdC80NjcwEYYPaHR0cDov --L3hlc3QvNDY4MBGGD2h0dHA6Ly94ZXN0LzQ2OTARhg9odHRwOi8veGVzdC80NzAw --EYYPaHR0cDovL3hlc3QvNDcxMBGGD2h0dHA6Ly94ZXN0LzQ3MjARhg9odHRwOi8v --eGVzdC80NzMwEYYPaHR0cDovL3hlc3QvNDc0MBGGD2h0dHA6Ly94ZXN0LzQ3NTAR --hg9odHRwOi8veGVzdC80NzYwEYYPaHR0cDovL3hlc3QvNDc3MBGGD2h0dHA6Ly94 --ZXN0LzQ3ODARhg9odHRwOi8veGVzdC80NzkwEYYPaHR0cDovL3hlc3QvNDgwMBGG --D2h0dHA6Ly94ZXN0LzQ4MTARhg9odHRwOi8veGVzdC80ODIwEYYPaHR0cDovL3hl --c3QvNDgzMBGGD2h0dHA6Ly94ZXN0LzQ4NDARhg9odHRwOi8veGVzdC80ODUwEYYP --aHR0cDovL3hlc3QvNDg2MBGGD2h0dHA6Ly94ZXN0LzQ4NzARhg9odHRwOi8veGVz --dC80ODgwEYYPaHR0cDovL3hlc3QvNDg5MBGGD2h0dHA6Ly94ZXN0LzQ5MDARhg9o --dHRwOi8veGVzdC80OTEwEYYPaHR0cDovL3hlc3QvNDkyMBGGD2h0dHA6Ly94ZXN0 --LzQ5MzARhg9odHRwOi8veGVzdC80OTQwEYYPaHR0cDovL3hlc3QvNDk1MBGGD2h0 --dHA6Ly94ZXN0LzQ5NjARhg9odHRwOi8veGVzdC80OTcwEYYPaHR0cDovL3hlc3Qv --NDk4MBGGD2h0dHA6Ly94ZXN0LzQ5OTARhg9odHRwOi8veGVzdC81MDAwEYYPaHR0 --cDovL3hlc3QvNTAxMBGGD2h0dHA6Ly94ZXN0LzUwMjARhg9odHRwOi8veGVzdC81 --MDMwEYYPaHR0cDovL3hlc3QvNTA0MBGGD2h0dHA6Ly94ZXN0LzUwNTARhg9odHRw --Oi8veGVzdC81MDYwEYYPaHR0cDovL3hlc3QvNTA3MBGGD2h0dHA6Ly94ZXN0LzUw --ODARhg9odHRwOi8veGVzdC81MDkwEYYPaHR0cDovL3hlc3QvNTEwMBGGD2h0dHA6 --Ly94ZXN0LzUxMTARhg9odHRwOi8veGVzdC81MTIwEYYPaHR0cDovL3hlc3QvNTEz --MBGGD2h0dHA6Ly94ZXN0LzUxNDARhg9odHRwOi8veGVzdC81MTUwEYYPaHR0cDov --L3hlc3QvNTE2MBGGD2h0dHA6Ly94ZXN0LzUxNzARhg9odHRwOi8veGVzdC81MTgw --EYYPaHR0cDovL3hlc3QvNTE5MBGGD2h0dHA6Ly94ZXN0LzUyMDARhg9odHRwOi8v --eGVzdC81MjEwEYYPaHR0cDovL3hlc3QvNTIyMBGGD2h0dHA6Ly94ZXN0LzUyMzAR --hg9odHRwOi8veGVzdC81MjQwEYYPaHR0cDovL3hlc3QvNTI1MBGGD2h0dHA6Ly94 --ZXN0LzUyNjARhg9odHRwOi8veGVzdC81MjcwEYYPaHR0cDovL3hlc3QvNTI4MBGG --D2h0dHA6Ly94ZXN0LzUyOTARhg9odHRwOi8veGVzdC81MzAwEYYPaHR0cDovL3hl --c3QvNTMxMBGGD2h0dHA6Ly94ZXN0LzUzMjARhg9odHRwOi8veGVzdC81MzMwEYYP --aHR0cDovL3hlc3QvNTM0MBGGD2h0dHA6Ly94ZXN0LzUzNTARhg9odHRwOi8veGVz --dC81MzYwEYYPaHR0cDovL3hlc3QvNTM3MBGGD2h0dHA6Ly94ZXN0LzUzODARhg9o --dHRwOi8veGVzdC81MzkwEYYPaHR0cDovL3hlc3QvNTQwMBGGD2h0dHA6Ly94ZXN0 --LzU0MTARhg9odHRwOi8veGVzdC81NDIwEYYPaHR0cDovL3hlc3QvNTQzMBGGD2h0 --dHA6Ly94ZXN0LzU0NDARhg9odHRwOi8veGVzdC81NDUwEYYPaHR0cDovL3hlc3Qv --NTQ2MBGGD2h0dHA6Ly94ZXN0LzU0NzARhg9odHRwOi8veGVzdC81NDgwEYYPaHR0 --cDovL3hlc3QvNTQ5MBGGD2h0dHA6Ly94ZXN0LzU1MDARhg9odHRwOi8veGVzdC81 --NTEwEYYPaHR0cDovL3hlc3QvNTUyMBGGD2h0dHA6Ly94ZXN0LzU1MzARhg9odHRw --Oi8veGVzdC81NTQwEYYPaHR0cDovL3hlc3QvNTU1MBGGD2h0dHA6Ly94ZXN0LzU1 --NjARhg9odHRwOi8veGVzdC81NTcwEYYPaHR0cDovL3hlc3QvNTU4MBGGD2h0dHA6 --Ly94ZXN0LzU1OTARhg9odHRwOi8veGVzdC81NjAwEYYPaHR0cDovL3hlc3QvNTYx --MBGGD2h0dHA6Ly94ZXN0LzU2MjARhg9odHRwOi8veGVzdC81NjMwEYYPaHR0cDov --L3hlc3QvNTY0MBGGD2h0dHA6Ly94ZXN0LzU2NTARhg9odHRwOi8veGVzdC81NjYw --EYYPaHR0cDovL3hlc3QvNTY3MBGGD2h0dHA6Ly94ZXN0LzU2ODARhg9odHRwOi8v --eGVzdC81NjkwEYYPaHR0cDovL3hlc3QvNTcwMBGGD2h0dHA6Ly94ZXN0LzU3MTAR --hg9odHRwOi8veGVzdC81NzIwEYYPaHR0cDovL3hlc3QvNTczMBGGD2h0dHA6Ly94 --ZXN0LzU3NDARhg9odHRwOi8veGVzdC81NzUwEYYPaHR0cDovL3hlc3QvNTc2MBGG --D2h0dHA6Ly94ZXN0LzU3NzARhg9odHRwOi8veGVzdC81NzgwEYYPaHR0cDovL3hl --c3QvNTc5MBGGD2h0dHA6Ly94ZXN0LzU4MDARhg9odHRwOi8veGVzdC81ODEwEYYP --aHR0cDovL3hlc3QvNTgyMBGGD2h0dHA6Ly94ZXN0LzU4MzARhg9odHRwOi8veGVz --dC81ODQwEYYPaHR0cDovL3hlc3QvNTg1MBGGD2h0dHA6Ly94ZXN0LzU4NjARhg9o --dHRwOi8veGVzdC81ODcwEYYPaHR0cDovL3hlc3QvNTg4MBGGD2h0dHA6Ly94ZXN0 --LzU4OTARhg9odHRwOi8veGVzdC81OTAwEYYPaHR0cDovL3hlc3QvNTkxMBGGD2h0 --dHA6Ly94ZXN0LzU5MjARhg9odHRwOi8veGVzdC81OTMwEYYPaHR0cDovL3hlc3Qv --NTk0MBGGD2h0dHA6Ly94ZXN0LzU5NTARhg9odHRwOi8veGVzdC81OTYwEYYPaHR0 --cDovL3hlc3QvNTk3MBGGD2h0dHA6Ly94ZXN0LzU5ODARhg9odHRwOi8veGVzdC81 --OTkwEYYPaHR0cDovL3hlc3QvNjAwMBGGD2h0dHA6Ly94ZXN0LzYwMTARhg9odHRw --Oi8veGVzdC82MDIwEYYPaHR0cDovL3hlc3QvNjAzMBGGD2h0dHA6Ly94ZXN0LzYw --NDARhg9odHRwOi8veGVzdC82MDUwEYYPaHR0cDovL3hlc3QvNjA2MBGGD2h0dHA6 --Ly94ZXN0LzYwNzARhg9odHRwOi8veGVzdC82MDgwEYYPaHR0cDovL3hlc3QvNjA5 --MBGGD2h0dHA6Ly94ZXN0LzYxMDARhg9odHRwOi8veGVzdC82MTEwEYYPaHR0cDov --L3hlc3QvNjEyMBGGD2h0dHA6Ly94ZXN0LzYxMzARhg9odHRwOi8veGVzdC82MTQw --EYYPaHR0cDovL3hlc3QvNjE1MBGGD2h0dHA6Ly94ZXN0LzYxNjARhg9odHRwOi8v --eGVzdC82MTcwEYYPaHR0cDovL3hlc3QvNjE4MBGGD2h0dHA6Ly94ZXN0LzYxOTAR --hg9odHRwOi8veGVzdC82MjAwEYYPaHR0cDovL3hlc3QvNjIxMBGGD2h0dHA6Ly94 --ZXN0LzYyMjARhg9odHRwOi8veGVzdC82MjMwEYYPaHR0cDovL3hlc3QvNjI0MBGG --D2h0dHA6Ly94ZXN0LzYyNTARhg9odHRwOi8veGVzdC82MjYwEYYPaHR0cDovL3hl --c3QvNjI3MBGGD2h0dHA6Ly94ZXN0LzYyODARhg9odHRwOi8veGVzdC82MjkwEYYP --aHR0cDovL3hlc3QvNjMwMBGGD2h0dHA6Ly94ZXN0LzYzMTARhg9odHRwOi8veGVz --dC82MzIwEYYPaHR0cDovL3hlc3QvNjMzMBGGD2h0dHA6Ly94ZXN0LzYzNDARhg9o --dHRwOi8veGVzdC82MzUwEYYPaHR0cDovL3hlc3QvNjM2MBGGD2h0dHA6Ly94ZXN0 --LzYzNzARhg9odHRwOi8veGVzdC82MzgwEYYPaHR0cDovL3hlc3QvNjM5MBGGD2h0 --dHA6Ly94ZXN0LzY0MDARhg9odHRwOi8veGVzdC82NDEwEYYPaHR0cDovL3hlc3Qv --NjQyMBGGD2h0dHA6Ly94ZXN0LzY0MzARhg9odHRwOi8veGVzdC82NDQwEYYPaHR0 --cDovL3hlc3QvNjQ1MBGGD2h0dHA6Ly94ZXN0LzY0NjARhg9odHRwOi8veGVzdC82 --NDcwEYYPaHR0cDovL3hlc3QvNjQ4MBGGD2h0dHA6Ly94ZXN0LzY0OTARhg9odHRw --Oi8veGVzdC82NTAwEYYPaHR0cDovL3hlc3QvNjUxMBGGD2h0dHA6Ly94ZXN0LzY1 --MjARhg9odHRwOi8veGVzdC82NTMwEYYPaHR0cDovL3hlc3QvNjU0MBGGD2h0dHA6 --Ly94ZXN0LzY1NTARhg9odHRwOi8veGVzdC82NTYwEYYPaHR0cDovL3hlc3QvNjU3 --MBGGD2h0dHA6Ly94ZXN0LzY1ODARhg9odHRwOi8veGVzdC82NTkwEYYPaHR0cDov --L3hlc3QvNjYwMBGGD2h0dHA6Ly94ZXN0LzY2MTARhg9odHRwOi8veGVzdC82NjIw --EYYPaHR0cDovL3hlc3QvNjYzMBGGD2h0dHA6Ly94ZXN0LzY2NDARhg9odHRwOi8v --eGVzdC82NjUwEYYPaHR0cDovL3hlc3QvNjY2MBGGD2h0dHA6Ly94ZXN0LzY2NzAR --hg9odHRwOi8veGVzdC82NjgwEYYPaHR0cDovL3hlc3QvNjY5MBGGD2h0dHA6Ly94 --ZXN0LzY3MDARhg9odHRwOi8veGVzdC82NzEwEYYPaHR0cDovL3hlc3QvNjcyMBGG --D2h0dHA6Ly94ZXN0LzY3MzARhg9odHRwOi8veGVzdC82NzQwEYYPaHR0cDovL3hl --c3QvNjc1MBGGD2h0dHA6Ly94ZXN0LzY3NjARhg9odHRwOi8veGVzdC82NzcwEYYP --aHR0cDovL3hlc3QvNjc4MBGGD2h0dHA6Ly94ZXN0LzY3OTARhg9odHRwOi8veGVz --dC82ODAwEYYPaHR0cDovL3hlc3QvNjgxMBGGD2h0dHA6Ly94ZXN0LzY4MjARhg9o --dHRwOi8veGVzdC82ODMwEYYPaHR0cDovL3hlc3QvNjg0MBGGD2h0dHA6Ly94ZXN0 --LzY4NTARhg9odHRwOi8veGVzdC82ODYwEYYPaHR0cDovL3hlc3QvNjg3MBGGD2h0 --dHA6Ly94ZXN0LzY4ODARhg9odHRwOi8veGVzdC82ODkwEYYPaHR0cDovL3hlc3Qv --NjkwMBGGD2h0dHA6Ly94ZXN0LzY5MTARhg9odHRwOi8veGVzdC82OTIwEYYPaHR0 --cDovL3hlc3QvNjkzMBGGD2h0dHA6Ly94ZXN0LzY5NDARhg9odHRwOi8veGVzdC82 --OTUwEYYPaHR0cDovL3hlc3QvNjk2MBGGD2h0dHA6Ly94ZXN0LzY5NzARhg9odHRw --Oi8veGVzdC82OTgwEYYPaHR0cDovL3hlc3QvNjk5MBGGD2h0dHA6Ly94ZXN0Lzcw --MDARhg9odHRwOi8veGVzdC83MDEwEYYPaHR0cDovL3hlc3QvNzAyMBGGD2h0dHA6 --Ly94ZXN0LzcwMzARhg9odHRwOi8veGVzdC83MDQwEYYPaHR0cDovL3hlc3QvNzA1 --MBGGD2h0dHA6Ly94ZXN0LzcwNjARhg9odHRwOi8veGVzdC83MDcwEYYPaHR0cDov --L3hlc3QvNzA4MBGGD2h0dHA6Ly94ZXN0LzcwOTARhg9odHRwOi8veGVzdC83MTAw --EYYPaHR0cDovL3hlc3QvNzExMBGGD2h0dHA6Ly94ZXN0LzcxMjARhg9odHRwOi8v --eGVzdC83MTMwEYYPaHR0cDovL3hlc3QvNzE0MBGGD2h0dHA6Ly94ZXN0LzcxNTAR --hg9odHRwOi8veGVzdC83MTYwEYYPaHR0cDovL3hlc3QvNzE3MBGGD2h0dHA6Ly94 --ZXN0LzcxODARhg9odHRwOi8veGVzdC83MTkwEYYPaHR0cDovL3hlc3QvNzIwMBGG --D2h0dHA6Ly94ZXN0LzcyMTARhg9odHRwOi8veGVzdC83MjIwEYYPaHR0cDovL3hl --c3QvNzIzMBGGD2h0dHA6Ly94ZXN0LzcyNDARhg9odHRwOi8veGVzdC83MjUwEYYP --aHR0cDovL3hlc3QvNzI2MBGGD2h0dHA6Ly94ZXN0LzcyNzARhg9odHRwOi8veGVz --dC83MjgwEYYPaHR0cDovL3hlc3QvNzI5MBGGD2h0dHA6Ly94ZXN0LzczMDARhg9o --dHRwOi8veGVzdC83MzEwEYYPaHR0cDovL3hlc3QvNzMyMBGGD2h0dHA6Ly94ZXN0 --LzczMzARhg9odHRwOi8veGVzdC83MzQwEYYPaHR0cDovL3hlc3QvNzM1MBGGD2h0 --dHA6Ly94ZXN0LzczNjARhg9odHRwOi8veGVzdC83MzcwEYYPaHR0cDovL3hlc3Qv --NzM4MBGGD2h0dHA6Ly94ZXN0LzczOTARhg9odHRwOi8veGVzdC83NDAwEYYPaHR0 --cDovL3hlc3QvNzQxMBGGD2h0dHA6Ly94ZXN0Lzc0MjARhg9odHRwOi8veGVzdC83 --NDMwEYYPaHR0cDovL3hlc3QvNzQ0MBGGD2h0dHA6Ly94ZXN0Lzc0NTARhg9odHRw --Oi8veGVzdC83NDYwEYYPaHR0cDovL3hlc3QvNzQ3MBGGD2h0dHA6Ly94ZXN0Lzc0 --ODARhg9odHRwOi8veGVzdC83NDkwEYYPaHR0cDovL3hlc3QvNzUwMBGGD2h0dHA6 --Ly94ZXN0Lzc1MTARhg9odHRwOi8veGVzdC83NTIwEYYPaHR0cDovL3hlc3QvNzUz --MBGGD2h0dHA6Ly94ZXN0Lzc1NDARhg9odHRwOi8veGVzdC83NTUwEYYPaHR0cDov --L3hlc3QvNzU2MBGGD2h0dHA6Ly94ZXN0Lzc1NzARhg9odHRwOi8veGVzdC83NTgw --EYYPaHR0cDovL3hlc3QvNzU5MBGGD2h0dHA6Ly94ZXN0Lzc2MDARhg9odHRwOi8v --eGVzdC83NjEwEYYPaHR0cDovL3hlc3QvNzYyMBGGD2h0dHA6Ly94ZXN0Lzc2MzAR --hg9odHRwOi8veGVzdC83NjQwEYYPaHR0cDovL3hlc3QvNzY1MBGGD2h0dHA6Ly94 --ZXN0Lzc2NjARhg9odHRwOi8veGVzdC83NjcwEYYPaHR0cDovL3hlc3QvNzY4MBGG --D2h0dHA6Ly94ZXN0Lzc2OTARhg9odHRwOi8veGVzdC83NzAwEYYPaHR0cDovL3hl --c3QvNzcxMBGGD2h0dHA6Ly94ZXN0Lzc3MjARhg9odHRwOi8veGVzdC83NzMwEYYP --aHR0cDovL3hlc3QvNzc0MBGGD2h0dHA6Ly94ZXN0Lzc3NTARhg9odHRwOi8veGVz --dC83NzYwEYYPaHR0cDovL3hlc3QvNzc3MBGGD2h0dHA6Ly94ZXN0Lzc3ODARhg9o --dHRwOi8veGVzdC83NzkwEYYPaHR0cDovL3hlc3QvNzgwMBGGD2h0dHA6Ly94ZXN0 --Lzc4MTARhg9odHRwOi8veGVzdC83ODIwEYYPaHR0cDovL3hlc3QvNzgzMBGGD2h0 --dHA6Ly94ZXN0Lzc4NDARhg9odHRwOi8veGVzdC83ODUwEYYPaHR0cDovL3hlc3Qv --Nzg2MBGGD2h0dHA6Ly94ZXN0Lzc4NzARhg9odHRwOi8veGVzdC83ODgwEYYPaHR0 --cDovL3hlc3QvNzg5MBGGD2h0dHA6Ly94ZXN0Lzc5MDARhg9odHRwOi8veGVzdC83 --OTEwEYYPaHR0cDovL3hlc3QvNzkyMBGGD2h0dHA6Ly94ZXN0Lzc5MzARhg9odHRw --Oi8veGVzdC83OTQwEYYPaHR0cDovL3hlc3QvNzk1MBGGD2h0dHA6Ly94ZXN0Lzc5 --NjARhg9odHRwOi8veGVzdC83OTcwEYYPaHR0cDovL3hlc3QvNzk4MBGGD2h0dHA6 --Ly94ZXN0Lzc5OTARhg9odHRwOi8veGVzdC84MDAwEYYPaHR0cDovL3hlc3QvODAx --MBGGD2h0dHA6Ly94ZXN0LzgwMjARhg9odHRwOi8veGVzdC84MDMwEYYPaHR0cDov --L3hlc3QvODA0MBGGD2h0dHA6Ly94ZXN0LzgwNTARhg9odHRwOi8veGVzdC84MDYw --EYYPaHR0cDovL3hlc3QvODA3MBGGD2h0dHA6Ly94ZXN0LzgwODARhg9odHRwOi8v --eGVzdC84MDkwEYYPaHR0cDovL3hlc3QvODEwMBGGD2h0dHA6Ly94ZXN0LzgxMTAR --hg9odHRwOi8veGVzdC84MTIwEYYPaHR0cDovL3hlc3QvODEzMBGGD2h0dHA6Ly94 --ZXN0LzgxNDARhg9odHRwOi8veGVzdC84MTUwEYYPaHR0cDovL3hlc3QvODE2MBGG --D2h0dHA6Ly94ZXN0LzgxNzARhg9odHRwOi8veGVzdC84MTgwEYYPaHR0cDovL3hl --c3QvODE5MBGGD2h0dHA6Ly94ZXN0LzgyMDARhg9odHRwOi8veGVzdC84MjEwEYYP --aHR0cDovL3hlc3QvODIyMBGGD2h0dHA6Ly94ZXN0LzgyMzARhg9odHRwOi8veGVz --dC84MjQwEYYPaHR0cDovL3hlc3QvODI1MBGGD2h0dHA6Ly94ZXN0LzgyNjARhg9o --dHRwOi8veGVzdC84MjcwEYYPaHR0cDovL3hlc3QvODI4MBGGD2h0dHA6Ly94ZXN0 --LzgyOTARhg9odHRwOi8veGVzdC84MzAwEYYPaHR0cDovL3hlc3QvODMxMBGGD2h0 --dHA6Ly94ZXN0LzgzMjARhg9odHRwOi8veGVzdC84MzMwEYYPaHR0cDovL3hlc3Qv --ODM0MBGGD2h0dHA6Ly94ZXN0LzgzNTARhg9odHRwOi8veGVzdC84MzYwEYYPaHR0 --cDovL3hlc3QvODM3MBGGD2h0dHA6Ly94ZXN0LzgzODARhg9odHRwOi8veGVzdC84 --MzkwEYYPaHR0cDovL3hlc3QvODQwMBGGD2h0dHA6Ly94ZXN0Lzg0MTARhg9odHRw --Oi8veGVzdC84NDIwEYYPaHR0cDovL3hlc3QvODQzMBGGD2h0dHA6Ly94ZXN0Lzg0 --NDARhg9odHRwOi8veGVzdC84NDUwEYYPaHR0cDovL3hlc3QvODQ2MBGGD2h0dHA6 --Ly94ZXN0Lzg0NzARhg9odHRwOi8veGVzdC84NDgwEYYPaHR0cDovL3hlc3QvODQ5 --MBGGD2h0dHA6Ly94ZXN0Lzg1MDARhg9odHRwOi8veGVzdC84NTEwEYYPaHR0cDov --L3hlc3QvODUyMBGGD2h0dHA6Ly94ZXN0Lzg1MzARhg9odHRwOi8veGVzdC84NTQw --EYYPaHR0cDovL3hlc3QvODU1MBGGD2h0dHA6Ly94ZXN0Lzg1NjARhg9odHRwOi8v --eGVzdC84NTcwEYYPaHR0cDovL3hlc3QvODU4MBGGD2h0dHA6Ly94ZXN0Lzg1OTAR --hg9odHRwOi8veGVzdC84NjAwEYYPaHR0cDovL3hlc3QvODYxMBGGD2h0dHA6Ly94 --ZXN0Lzg2MjARhg9odHRwOi8veGVzdC84NjMwEYYPaHR0cDovL3hlc3QvODY0MBGG --D2h0dHA6Ly94ZXN0Lzg2NTARhg9odHRwOi8veGVzdC84NjYwEYYPaHR0cDovL3hl --c3QvODY3MBGGD2h0dHA6Ly94ZXN0Lzg2ODARhg9odHRwOi8veGVzdC84NjkwEYYP --aHR0cDovL3hlc3QvODcwMBGGD2h0dHA6Ly94ZXN0Lzg3MTARhg9odHRwOi8veGVz --dC84NzIwEYYPaHR0cDovL3hlc3QvODczMBGGD2h0dHA6Ly94ZXN0Lzg3NDARhg9o --dHRwOi8veGVzdC84NzUwEYYPaHR0cDovL3hlc3QvODc2MBGGD2h0dHA6Ly94ZXN0 --Lzg3NzARhg9odHRwOi8veGVzdC84NzgwEYYPaHR0cDovL3hlc3QvODc5MBGGD2h0 --dHA6Ly94ZXN0Lzg4MDARhg9odHRwOi8veGVzdC84ODEwEYYPaHR0cDovL3hlc3Qv --ODgyMBGGD2h0dHA6Ly94ZXN0Lzg4MzARhg9odHRwOi8veGVzdC84ODQwEYYPaHR0 --cDovL3hlc3QvODg1MBGGD2h0dHA6Ly94ZXN0Lzg4NjARhg9odHRwOi8veGVzdC84 --ODcwEYYPaHR0cDovL3hlc3QvODg4MBGGD2h0dHA6Ly94ZXN0Lzg4OTARhg9odHRw --Oi8veGVzdC84OTAwEYYPaHR0cDovL3hlc3QvODkxMBGGD2h0dHA6Ly94ZXN0Lzg5 --MjARhg9odHRwOi8veGVzdC84OTMwEYYPaHR0cDovL3hlc3QvODk0MBGGD2h0dHA6 --Ly94ZXN0Lzg5NTARhg9odHRwOi8veGVzdC84OTYwEYYPaHR0cDovL3hlc3QvODk3 --MBGGD2h0dHA6Ly94ZXN0Lzg5ODARhg9odHRwOi8veGVzdC84OTkwEYYPaHR0cDov --L3hlc3QvOTAwMBGGD2h0dHA6Ly94ZXN0LzkwMTARhg9odHRwOi8veGVzdC85MDIw --EYYPaHR0cDovL3hlc3QvOTAzMBGGD2h0dHA6Ly94ZXN0LzkwNDARhg9odHRwOi8v --eGVzdC85MDUwEYYPaHR0cDovL3hlc3QvOTA2MBGGD2h0dHA6Ly94ZXN0LzkwNzAR --hg9odHRwOi8veGVzdC85MDgwEYYPaHR0cDovL3hlc3QvOTA5MBGGD2h0dHA6Ly94 --ZXN0LzkxMDARhg9odHRwOi8veGVzdC85MTEwEYYPaHR0cDovL3hlc3QvOTEyMBGG --D2h0dHA6Ly94ZXN0LzkxMzARhg9odHRwOi8veGVzdC85MTQwEYYPaHR0cDovL3hl --c3QvOTE1MBGGD2h0dHA6Ly94ZXN0LzkxNjARhg9odHRwOi8veGVzdC85MTcwEYYP --aHR0cDovL3hlc3QvOTE4MBGGD2h0dHA6Ly94ZXN0LzkxOTARhg9odHRwOi8veGVz --dC85MjAwEYYPaHR0cDovL3hlc3QvOTIxMBGGD2h0dHA6Ly94ZXN0LzkyMjARhg9o --dHRwOi8veGVzdC85MjMwEYYPaHR0cDovL3hlc3QvOTI0MBGGD2h0dHA6Ly94ZXN0 --LzkyNTARhg9odHRwOi8veGVzdC85MjYwEYYPaHR0cDovL3hlc3QvOTI3MBGGD2h0 --dHA6Ly94ZXN0LzkyODARhg9odHRwOi8veGVzdC85MjkwEYYPaHR0cDovL3hlc3Qv --OTMwMBGGD2h0dHA6Ly94ZXN0LzkzMTARhg9odHRwOi8veGVzdC85MzIwEYYPaHR0 --cDovL3hlc3QvOTMzMBGGD2h0dHA6Ly94ZXN0LzkzNDARhg9odHRwOi8veGVzdC85 --MzUwEYYPaHR0cDovL3hlc3QvOTM2MBGGD2h0dHA6Ly94ZXN0LzkzNzARhg9odHRw --Oi8veGVzdC85MzgwEYYPaHR0cDovL3hlc3QvOTM5MBGGD2h0dHA6Ly94ZXN0Lzk0 --MDARhg9odHRwOi8veGVzdC85NDEwEYYPaHR0cDovL3hlc3QvOTQyMBGGD2h0dHA6 --Ly94ZXN0Lzk0MzARhg9odHRwOi8veGVzdC85NDQwEYYPaHR0cDovL3hlc3QvOTQ1 --MBGGD2h0dHA6Ly94ZXN0Lzk0NjARhg9odHRwOi8veGVzdC85NDcwEYYPaHR0cDov --L3hlc3QvOTQ4MBGGD2h0dHA6Ly94ZXN0Lzk0OTARhg9odHRwOi8veGVzdC85NTAw --EYYPaHR0cDovL3hlc3QvOTUxMBGGD2h0dHA6Ly94ZXN0Lzk1MjARhg9odHRwOi8v --eGVzdC85NTMwEYYPaHR0cDovL3hlc3QvOTU0MBGGD2h0dHA6Ly94ZXN0Lzk1NTAR --hg9odHRwOi8veGVzdC85NTYwEYYPaHR0cDovL3hlc3QvOTU3MBGGD2h0dHA6Ly94 --ZXN0Lzk1ODARhg9odHRwOi8veGVzdC85NTkwEYYPaHR0cDovL3hlc3QvOTYwMBGG --D2h0dHA6Ly94ZXN0Lzk2MTARhg9odHRwOi8veGVzdC85NjIwEYYPaHR0cDovL3hl --c3QvOTYzMBGGD2h0dHA6Ly94ZXN0Lzk2NDARhg9odHRwOi8veGVzdC85NjUwEYYP --aHR0cDovL3hlc3QvOTY2MBGGD2h0dHA6Ly94ZXN0Lzk2NzARhg9odHRwOi8veGVz --dC85NjgwEYYPaHR0cDovL3hlc3QvOTY5MBGGD2h0dHA6Ly94ZXN0Lzk3MDARhg9o --dHRwOi8veGVzdC85NzEwEYYPaHR0cDovL3hlc3QvOTcyMBGGD2h0dHA6Ly94ZXN0 --Lzk3MzARhg9odHRwOi8veGVzdC85NzQwEYYPaHR0cDovL3hlc3QvOTc1MBGGD2h0 --dHA6Ly94ZXN0Lzk3NjARhg9odHRwOi8veGVzdC85NzcwEYYPaHR0cDovL3hlc3Qv --OTc4MBGGD2h0dHA6Ly94ZXN0Lzk3OTARhg9odHRwOi8veGVzdC85ODAwEYYPaHR0 --cDovL3hlc3QvOTgxMBGGD2h0dHA6Ly94ZXN0Lzk4MjARhg9odHRwOi8veGVzdC85 --ODMwEYYPaHR0cDovL3hlc3QvOTg0MBGGD2h0dHA6Ly94ZXN0Lzk4NTARhg9odHRw --Oi8veGVzdC85ODYwEYYPaHR0cDovL3hlc3QvOTg3MBGGD2h0dHA6Ly94ZXN0Lzk4 --ODARhg9odHRwOi8veGVzdC85ODkwEYYPaHR0cDovL3hlc3QvOTkwMBGGD2h0dHA6 --Ly94ZXN0Lzk5MTARhg9odHRwOi8veGVzdC85OTIwEYYPaHR0cDovL3hlc3QvOTkz --MBGGD2h0dHA6Ly94ZXN0Lzk5NDARhg9odHRwOi8veGVzdC85OTUwEYYPaHR0cDov --L3hlc3QvOTk2MBGGD2h0dHA6Ly94ZXN0Lzk5NzARhg9odHRwOi8veGVzdC85OTgw --EYYPaHR0cDovL3hlc3QvOTk5MBKGEGh0dHA6Ly94ZXN0LzEwMDAwEoYQaHR0cDov --L3hlc3QvMTAwMTAShhBodHRwOi8veGVzdC8xMDAyMBKGEGh0dHA6Ly94ZXN0LzEw --MDMwEoYQaHR0cDovL3hlc3QvMTAwNDAShhBodHRwOi8veGVzdC8xMDA1MBKGEGh0 --dHA6Ly94ZXN0LzEwMDYwEoYQaHR0cDovL3hlc3QvMTAwNzAShhBodHRwOi8veGVz --dC8xMDA4MBKGEGh0dHA6Ly94ZXN0LzEwMDkwEoYQaHR0cDovL3hlc3QvMTAxMDAS --hhBodHRwOi8veGVzdC8xMDExMBKGEGh0dHA6Ly94ZXN0LzEwMTIwEoYQaHR0cDov --L3hlc3QvMTAxMzAShhBodHRwOi8veGVzdC8xMDE0MBKGEGh0dHA6Ly94ZXN0LzEw --MTUwEoYQaHR0cDovL3hlc3QvMTAxNjAShhBodHRwOi8veGVzdC8xMDE3MBKGEGh0 --dHA6Ly94ZXN0LzEwMTgwEoYQaHR0cDovL3hlc3QvMTAxOTAShhBodHRwOi8veGVz --dC8xMDIwMBKGEGh0dHA6Ly94ZXN0LzEwMjEwEoYQaHR0cDovL3hlc3QvMTAyMjAS --hhBodHRwOi8veGVzdC8xMDIzMBKGEGh0dHA6Ly94ZXN0LzEwMjQwDQYJKoZIhvcN --AQELBQADggEBAF2U8ArUAHk1z1cOPSTpF9kMIvJ+GHNKvIn6zxn7JrOTe/ZhJKA2 --4SkfPKbbwsP83QVbJfEhTykbsrzGDT3LJ6UWjXOz5KCCrkN7ck9Sqs/BD2sTfa8R --zc6NpXiyqJ1OIm0NYFkpsaWXAVKuTm9OvE7M1Gv5MgRCHOeHdGxCdKZMgwe4VC4z --TGsJOOHOsVZZgvVpkE99BFFFaAkUW7LJpLBBq3r2SoQNiC9F0juBvOiRuajxu5PX --Qn3IyiQZ9yikxmesGi6NiHKuRxTaHDj3pn44r8RHCn2OOD0lOkjXrwsMwEVCQ18e --ZhtkUypPgaHoIdBLvEmHsF431WitevSq9K0= -------END CERTIFICATE----- -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Root -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=Root -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:cc:7a:cf:ec:bd:a0:01:c3:26:51:d8:28:ae:80: -- b6:0b:d2:76:d7:04:86:18:ac:fd:f2:8f:64:e7:92: -- d6:d0:42:32:4f:cd:d0:4d:d0:ac:71:9a:73:80:0a: -- 04:70:20:a3:2f:a0:9b:f4:3e:19:cf:69:54:b5:be: -- 85:dd:6e:b2:0b:14:df:27:bf:2c:a1:bb:b2:a7:23: -- 0c:fb:ae:78:69:6b:1a:6e:7c:38:7f:15:5d:e5:cf: -- 27:32:56:2a:f1:87:fe:3a:16:73:e6:dd:83:f2:f2: -- ae:31:c8:93:d2:49:b7:b1:71:f5:55:de:bb:85:cd: -- cb:19:74:1d:61:49:da:83:44:ec:4c:5e:aa:d5:8b: -- 32:1a:db:77:d5:b1:83:8c:00:b9:55:b7:64:78:5c: -- 87:c9:68:58:bd:de:af:50:e2:bb:bd:32:cd:fa:3d: -- df:3b:3d:93:10:16:b6:6d:90:1d:d7:7d:e9:ea:7e: -- 1e:2e:c8:10:a4:14:ad:62:72:af:65:95:1f:a7:6e: -- 81:84:9f:df:85:4e:c0:3e:7f:8c:02:0a:f0:65:58: -- 84:7c:6a:e1:53:af:3c:f1:7a:b9:33:c8:e7:f9:ed: -- 92:46:00:50:62:f0:89:41:57:1e:81:d1:04:12:b3: -- fc:25:60:17:5c:0b:eb:a9:46:4a:03:39:16:11:4d: -- e1:7b -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- X509v3 Authority Key Identifier: -- keyid:B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Root.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Root.crl -- -- X509v3 Key Usage: critical -- Certificate Sign, CRL Sign -- X509v3 Basic Constraints: critical -- CA:TRUE -- Signature Algorithm: sha256WithRSAEncryption -- 3a:c4:f6:50:32:77:14:e2:a8:69:9b:ad:85:a0:fa:95:08:d2: -- 22:cb:d3:aa:53:94:e5:1f:92:fa:d5:7b:c8:a5:b6:13:15:42: -- 42:2c:ce:48:e9:f1:55:c7:cd:f4:29:b6:46:e9:08:81:8c:83: -- 82:c5:d4:f7:1e:90:3c:2d:78:39:7f:be:e8:30:5e:f7:d4:72: -- e4:db:0a:09:49:c0:ce:83:66:c0:16:73:f4:cf:67:ad:74:e3: -- 10:60:72:16:77:4a:c8:08:88:93:62:c0:4a:23:0b:74:3e:63: -- 98:9c:54:1d:34:d5:b6:da:bc:7c:5a:f2:68:22:e2:d9:15:12: -- 84:04:f6:3e:b3:ac:97:bc:b4:54:93:3c:d4:0b:25:e4:c1:34: -- 5a:98:bc:aa:de:78:bb:12:3f:33:82:a2:bf:5f:82:e6:9e:ad: -- 85:21:21:d9:9d:41:5e:4f:72:a3:16:8d:7d:b4:1d:26:d8:77: -- d8:29:22:13:a2:f6:d7:9f:1c:60:2f:17:9e:fd:f4:63:a3:c6: -- ed:e3:47:43:b7:73:39:82:97:18:fa:4b:db:2e:ac:d3:7b:54: -- cd:f8:d0:eb:70:13:03:8a:4b:9b:90:62:4e:b0:34:22:49:ec: -- 78:2a:47:97:60:13:03:23:ed:09:ff:a8:00:59:6a:2c:d1:2e: -- d0:93:0b:59 -------BEGIN CERTIFICATE----- --MIIDeDCCAmCgAwIBAgIUPOX8gYhZqFAWwX/X5Srlln/C9vUwDQYJKoZIhvcNAQEL --BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw --MDBaMA8xDTALBgNVBAMMBFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK --AoIBAQDMes/svaABwyZR2CiugLYL0nbXBIYYrP3yj2TnktbQQjJPzdBN0KxxmnOA --CgRwIKMvoJv0PhnPaVS1voXdbrILFN8nvyyhu7KnIwz7rnhpaxpufDh/FV3lzycy --Virxh/46FnPm3YPy8q4xyJPSSbexcfVV3ruFzcsZdB1hSdqDROxMXqrVizIa23fV --sYOMALlVt2R4XIfJaFi93q9Q4ru9Ms36Pd87PZMQFrZtkB3Xfenqfh4uyBCkFK1i --cq9llR+nboGEn9+FTsA+f4wCCvBlWIR8auFTrzzxerkzyOf57ZJGAFBi8IlBVx6B --0QQSs/wlYBdcC+upRkoDORYRTeF7AgMBAAGjgcswgcgwHQYDVR0OBBYEFLbC75/R --KcsPiYxMUtS9QLcRt3HdMB8GA1UdIwQYMBaAFLbC75/RKcsPiYxMUtS9QLcRt3Hd --MDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAoYbaHR0cDovL3VybC1mb3ItYWlh --L1Jvb3QuY2VyMCwGA1UdHwQlMCMwIaAfoB2GG2h0dHA6Ly91cmwtZm9yLWNybC9S --b290LmNybDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG --9w0BAQsFAAOCAQEAOsT2UDJ3FOKoaZuthaD6lQjSIsvTqlOU5R+S+tV7yKW2ExVC --QizOSOnxVcfN9Cm2RukIgYyDgsXU9x6QPC14OX++6DBe99Ry5NsKCUnAzoNmwBZz --9M9nrXTjEGByFndKyAiIk2LASiMLdD5jmJxUHTTVttq8fFryaCLi2RUShAT2PrOs --l7y0VJM81Asl5ME0Wpi8qt54uxI/M4Kiv1+C5p6thSEh2Z1BXk9yoxaNfbQdJth3 --2CkiE6L2158cYC8Xnv30Y6PG7eNHQ7dzOYKXGPpL2y6s03tUzfjQ63ATA4pLm5Bi --TrA0IknseCpHl2ATAyPtCf+oAFlqLNEu0JMLWQ== -------END CERTIFICATE----- -diff --git a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.test b/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.test -deleted file mode 100644 -index b3138efc735c0..0000000000000 ---- a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dirnames.test -+++ /dev/null -@@ -1,5 +0,0 @@ --chain: ok-different-types-dirnames.pem --last_cert_trust: TRUSTED_ANCHOR --utc_time: DEFAULT --key_purpose: SERVER_AUTH --expected_errors: -diff --git a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.pem b/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.pem -deleted file mode 100644 -index 3808f3a0d190b..0000000000000 ---- a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.pem -+++ /dev/null -@@ -1,8879 +0,0 @@ --[Created by: generate-chains.py] -- --A chain containing a large number of name constraints and names, --but of different types, thus not triggering the limit. -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:dc -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Intermediate -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=t0 -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:db:2c:53:01:ce:f9:1a:83:36:52:51:2a:5b:42: -- 63:de:32:75:11:6a:7d:b0:a1:e4:77:47:9b:71:e5: -- a6:2d:64:d7:ae:5b:04:ed:7a:3f:c7:f6:ca:2b:2b: -- ad:cd:6c:88:a5:8e:36:fb:e7:a2:22:b5:7d:54:79: -- e9:d5:7a:5b:ca:2b:29:6c:0d:84:0a:10:c4:21:b6: -- 58:98:bb:0d:b6:0c:8d:56:5b:2c:85:59:07:ca:06: -- 46:36:25:1a:29:8e:c4:39:b7:c3:31:ce:6e:49:c2: -- 01:cf:b0:3b:27:43:8a:e3:d5:06:1f:2d:93:9d:dd: -- 7a:45:65:6d:fd:b4:b1:c0:10:59:42:f2:1e:8f:ce: -- 43:ac:97:25:c1:7c:e2:51:e1:44:35:5b:94:aa:03: -- 6e:da:71:2f:25:7f:58:30:01:e1:12:17:1e:f2:aa: -- 6c:22:80:b1:c9:65:ea:77:95:b3:07:c4:f7:72:38: -- 34:fe:a0:43:33:4c:66:6d:a1:e8:a1:04:bc:6f:14: -- 39:39:44:2e:38:37:74:c9:0a:21:85:91:21:b7:4e: -- ba:b0:99:4a:76:98:7b:58:ca:1c:d3:b0:40:c3:d9: -- 2a:75:fb:eb:19:ea:e3:1a:98:31:52:97:e9:7f:a4: -- 7b:21:7f:2f:dc:62:86:8f:fd:fd:a8:88:e8:4b:44: -- 52:bd -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- 3B:B4:05:CC:AA:BA:51:3D:FC:F2:F9:1E:25:53:72:E1:3A:F2:9A:DF -- X509v3 Authority Key Identifier: -- keyid:92:11:3F:AC:11:96:C7:66:37:CF:83:5A:24:F0:3A:77:AF:33:8D:7F -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Intermediate.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Intermediate.crl -- -- X509v3 Key Usage: critical -- Digital Signature, Key Encipherment -- X509v3 Extended Key Usage: -- TLS Web Server Authentication, TLS Web Client Authentication -- X509v3 Subject Alternative Name: -- DNS:t0.test, DNS:t1.test, DNS:t2.test, DNS:t3.test, DNS:t4.test, DNS:t5.test, DNS:t6.test, DNS:t7.test, DNS:t8.test, DNS:t9.test, DNS:t10.test, DNS:t11.test, DNS:t12.test, DNS:t13.test, DNS:t14.test, DNS:t15.test, DNS:t16.test, DNS:t17.test, DNS:t18.test, DNS:t19.test, DNS:t20.test, DNS:t21.test, DNS:t22.test, DNS:t23.test, DNS:t24.test, DNS:t25.test, DNS:t26.test, DNS:t27.test, DNS:t28.test, DNS:t29.test, DNS:t30.test, DNS:t31.test, DNS:t32.test, DNS:t33.test, DNS:t34.test, DNS:t35.test, DNS:t36.test, DNS:t37.test, DNS:t38.test, DNS:t39.test, DNS:t40.test, DNS:t41.test, DNS:t42.test, DNS:t43.test, DNS:t44.test, DNS:t45.test, DNS:t46.test, DNS:t47.test, DNS:t48.test, DNS:t49.test, DNS:t50.test, DNS:t51.test, DNS:t52.test, DNS:t53.test, DNS:t54.test, DNS:t55.test, DNS:t56.test, DNS:t57.test, DNS:t58.test, DNS:t59.test, DNS:t60.test, DNS:t61.test, DNS:t62.test, DNS:t63.test, DNS:t64.test, DNS:t65.test, DNS:t66.test, DNS:t67.test, DNS:t68.test, DNS:t69.test, DNS:t70.test, DNS:t71.test, DNS:t72.test, DNS:t73.test, DNS:t74.test, DNS:t75.test, DNS:t76.test, DNS:t77.test, DNS:t78.test, DNS:t79.test, DNS:t80.test, DNS:t81.test, DNS:t82.test, DNS:t83.test, DNS:t84.test, DNS:t85.test, DNS:t86.test, DNS:t87.test, DNS:t88.test, DNS:t89.test, DNS:t90.test, DNS:t91.test, DNS:t92.test, DNS:t93.test, DNS:t94.test, DNS:t95.test, DNS:t96.test, DNS:t97.test, DNS:t98.test, DNS:t99.test, DNS:t100.test, DNS:t101.test, DNS:t102.test, DNS:t103.test, DNS:t104.test, DNS:t105.test, DNS:t106.test, DNS:t107.test, DNS:t108.test, DNS:t109.test, DNS:t110.test, DNS:t111.test, DNS:t112.test, DNS:t113.test, DNS:t114.test, DNS:t115.test, DNS:t116.test, DNS:t117.test, DNS:t118.test, DNS:t119.test, DNS:t120.test, DNS:t121.test, DNS:t122.test, DNS:t123.test, DNS:t124.test, DNS:t125.test, DNS:t126.test, DNS:t127.test, DNS:t128.test, DNS:t129.test, DNS:t130.test, DNS:t131.test, DNS:t132.test, DNS:t133.test, DNS:t134.test, DNS:t135.test, DNS:t136.test, DNS:t137.test, DNS:t138.test, DNS:t139.test, DNS:t140.test, DNS:t141.test, DNS:t142.test, DNS:t143.test, DNS:t144.test, DNS:t145.test, DNS:t146.test, DNS:t147.test, DNS:t148.test, DNS:t149.test, DNS:t150.test, DNS:t151.test, DNS:t152.test, DNS:t153.test, DNS:t154.test, DNS:t155.test, DNS:t156.test, DNS:t157.test, DNS:t158.test, DNS:t159.test, DNS:t160.test, DNS:t161.test, DNS:t162.test, DNS:t163.test, DNS:t164.test, DNS:t165.test, DNS:t166.test, DNS:t167.test, DNS:t168.test, DNS:t169.test, DNS:t170.test, DNS:t171.test, DNS:t172.test, DNS:t173.test, DNS:t174.test, DNS:t175.test, DNS:t176.test, DNS:t177.test, DNS:t178.test, DNS:t179.test, DNS:t180.test, DNS:t181.test, DNS:t182.test, DNS:t183.test, DNS:t184.test, DNS:t185.test, DNS:t186.test, DNS:t187.test, DNS:t188.test, DNS:t189.test, DNS:t190.test, DNS:t191.test, DNS:t192.test, DNS:t193.test, DNS:t194.test, DNS:t195.test, DNS:t196.test, DNS:t197.test, DNS:t198.test, DNS:t199.test, DNS:t200.test, DNS:t201.test, DNS:t202.test, DNS:t203.test, DNS:t204.test, DNS:t205.test, DNS:t206.test, DNS:t207.test, DNS:t208.test, DNS:t209.test, DNS:t210.test, DNS:t211.test, DNS:t212.test, DNS:t213.test, DNS:t214.test, DNS:t215.test, DNS:t216.test, DNS:t217.test, DNS:t218.test, DNS:t219.test, DNS:t220.test, DNS:t221.test, DNS:t222.test, DNS:t223.test, DNS:t224.test, DNS:t225.test, DNS:t226.test, DNS:t227.test, DNS:t228.test, DNS:t229.test, DNS:t230.test, DNS:t231.test, DNS:t232.test, DNS:t233.test, DNS:t234.test, DNS:t235.test, DNS:t236.test, DNS:t237.test, DNS:t238.test, DNS:t239.test, DNS:t240.test, DNS:t241.test, DNS:t242.test, DNS:t243.test, DNS:t244.test, DNS:t245.test, DNS:t246.test, DNS:t247.test, DNS:t248.test, DNS:t249.test, DNS:t250.test, DNS:t251.test, DNS:t252.test, DNS:t253.test, DNS:t254.test, DNS:t255.test, DNS:t256.test, DNS:t257.test, DNS:t258.test, DNS:t259.test, DNS:t260.test, DNS:t261.test, DNS:t262.test, DNS:t263.test, DNS:t264.test, DNS:t265.test, DNS:t266.test, DNS:t267.test, DNS:t268.test, DNS:t269.test, DNS:t270.test, DNS:t271.test, DNS:t272.test, DNS:t273.test, DNS:t274.test, DNS:t275.test, DNS:t276.test, DNS:t277.test, DNS:t278.test, DNS:t279.test, DNS:t280.test, DNS:t281.test, DNS:t282.test, DNS:t283.test, DNS:t284.test, DNS:t285.test, DNS:t286.test, DNS:t287.test, DNS:t288.test, DNS:t289.test, DNS:t290.test, DNS:t291.test, DNS:t292.test, DNS:t293.test, DNS:t294.test, DNS:t295.test, DNS:t296.test, DNS:t297.test, DNS:t298.test, DNS:t299.test, DNS:t300.test, DNS:t301.test, DNS:t302.test, DNS:t303.test, DNS:t304.test, DNS:t305.test, DNS:t306.test, DNS:t307.test, DNS:t308.test, DNS:t309.test, DNS:t310.test, DNS:t311.test, DNS:t312.test, DNS:t313.test, DNS:t314.test, DNS:t315.test, DNS:t316.test, DNS:t317.test, DNS:t318.test, DNS:t319.test, DNS:t320.test, DNS:t321.test, DNS:t322.test, DNS:t323.test, DNS:t324.test, DNS:t325.test, DNS:t326.test, DNS:t327.test, DNS:t328.test, DNS:t329.test, DNS:t330.test, DNS:t331.test, DNS:t332.test, DNS:t333.test, DNS:t334.test, DNS:t335.test, DNS:t336.test, DNS:t337.test, DNS:t338.test, DNS:t339.test, DNS:t340.test, DNS:t341.test, DNS:t342.test, DNS:t343.test, DNS:t344.test, DNS:t345.test, DNS:t346.test, DNS:t347.test, DNS:t348.test, DNS:t349.test, DNS:t350.test, DNS:t351.test, DNS:t352.test, DNS:t353.test, DNS:t354.test, DNS:t355.test, DNS:t356.test, DNS:t357.test, DNS:t358.test, DNS:t359.test, DNS:t360.test, DNS:t361.test, DNS:t362.test, DNS:t363.test, DNS:t364.test, DNS:t365.test, DNS:t366.test, DNS:t367.test, DNS:t368.test, DNS:t369.test, DNS:t370.test, DNS:t371.test, DNS:t372.test, DNS:t373.test, DNS:t374.test, DNS:t375.test, DNS:t376.test, DNS:t377.test, DNS:t378.test, DNS:t379.test, DNS:t380.test, DNS:t381.test, DNS:t382.test, DNS:t383.test, DNS:t384.test, DNS:t385.test, DNS:t386.test, DNS:t387.test, DNS:t388.test, DNS:t389.test, DNS:t390.test, DNS:t391.test, DNS:t392.test, DNS:t393.test, DNS:t394.test, DNS:t395.test, DNS:t396.test, DNS:t397.test, DNS:t398.test, DNS:t399.test, DNS:t400.test, DNS:t401.test, DNS:t402.test, DNS:t403.test, DNS:t404.test, DNS:t405.test, DNS:t406.test, DNS:t407.test, DNS:t408.test, DNS:t409.test, DNS:t410.test, DNS:t411.test, DNS:t412.test, DNS:t413.test, DNS:t414.test, DNS:t415.test, DNS:t416.test, DNS:t417.test, DNS:t418.test, DNS:t419.test, DNS:t420.test, DNS:t421.test, DNS:t422.test, DNS:t423.test, DNS:t424.test, DNS:t425.test, DNS:t426.test, DNS:t427.test, DNS:t428.test, DNS:t429.test, DNS:t430.test, DNS:t431.test, DNS:t432.test, DNS:t433.test, DNS:t434.test, DNS:t435.test, DNS:t436.test, DNS:t437.test, DNS:t438.test, DNS:t439.test, DNS:t440.test, DNS:t441.test, DNS:t442.test, DNS:t443.test, DNS:t444.test, DNS:t445.test, DNS:t446.test, DNS:t447.test, DNS:t448.test, DNS:t449.test, DNS:t450.test, DNS:t451.test, DNS:t452.test, DNS:t453.test, DNS:t454.test, DNS:t455.test, DNS:t456.test, DNS:t457.test, DNS:t458.test, DNS:t459.test, DNS:t460.test, DNS:t461.test, DNS:t462.test, DNS:t463.test, DNS:t464.test, DNS:t465.test, DNS:t466.test, DNS:t467.test, DNS:t468.test, DNS:t469.test, DNS:t470.test, DNS:t471.test, DNS:t472.test, DNS:t473.test, DNS:t474.test, DNS:t475.test, DNS:t476.test, DNS:t477.test, DNS:t478.test, DNS:t479.test, DNS:t480.test, DNS:t481.test, DNS:t482.test, DNS:t483.test, DNS:t484.test, DNS:t485.test, DNS:t486.test, DNS:t487.test, DNS:t488.test, DNS:t489.test, DNS:t490.test, DNS:t491.test, DNS:t492.test, DNS:t493.test, DNS:t494.test, DNS:t495.test, DNS:t496.test, DNS:t497.test, DNS:t498.test, DNS:t499.test, DNS:t500.test, DNS:t501.test, DNS:t502.test, DNS:t503.test, DNS:t504.test, DNS:t505.test, DNS:t506.test, DNS:t507.test, DNS:t508.test, DNS:t509.test, DNS:t510.test, DNS:t511.test, DNS:t512.test, DNS:t513.test, DNS:t514.test, DNS:t515.test, DNS:t516.test, DNS:t517.test, DNS:t518.test, DNS:t519.test, DNS:t520.test, DNS:t521.test, DNS:t522.test, DNS:t523.test, DNS:t524.test, DNS:t525.test, DNS:t526.test, DNS:t527.test, DNS:t528.test, DNS:t529.test, DNS:t530.test, DNS:t531.test, DNS:t532.test, DNS:t533.test, DNS:t534.test, DNS:t535.test, DNS:t536.test, DNS:t537.test, DNS:t538.test, DNS:t539.test, DNS:t540.test, DNS:t541.test, DNS:t542.test, DNS:t543.test, DNS:t544.test, DNS:t545.test, DNS:t546.test, DNS:t547.test, DNS:t548.test, DNS:t549.test, DNS:t550.test, DNS:t551.test, DNS:t552.test, DNS:t553.test, DNS:t554.test, DNS:t555.test, DNS:t556.test, DNS:t557.test, DNS:t558.test, DNS:t559.test, DNS:t560.test, DNS:t561.test, DNS:t562.test, DNS:t563.test, DNS:t564.test, DNS:t565.test, DNS:t566.test, DNS:t567.test, DNS:t568.test, DNS:t569.test, DNS:t570.test, DNS:t571.test, DNS:t572.test, DNS:t573.test, DNS:t574.test, DNS:t575.test, DNS:t576.test, DNS:t577.test, DNS:t578.test, DNS:t579.test, DNS:t580.test, DNS:t581.test, DNS:t582.test, DNS:t583.test, DNS:t584.test, DNS:t585.test, DNS:t586.test, DNS:t587.test, DNS:t588.test, DNS:t589.test, DNS:t590.test, DNS:t591.test, DNS:t592.test, DNS:t593.test, DNS:t594.test, DNS:t595.test, DNS:t596.test, DNS:t597.test, DNS:t598.test, DNS:t599.test, DNS:t600.test, DNS:t601.test, DNS:t602.test, DNS:t603.test, DNS:t604.test, DNS:t605.test, DNS:t606.test, DNS:t607.test, DNS:t608.test, DNS:t609.test, DNS:t610.test, DNS:t611.test, DNS:t612.test, DNS:t613.test, DNS:t614.test, DNS:t615.test, DNS:t616.test, DNS:t617.test, DNS:t618.test, DNS:t619.test, DNS:t620.test, DNS:t621.test, DNS:t622.test, DNS:t623.test, DNS:t624.test, DNS:t625.test, DNS:t626.test, DNS:t627.test, DNS:t628.test, DNS:t629.test, DNS:t630.test, DNS:t631.test, DNS:t632.test, DNS:t633.test, DNS:t634.test, DNS:t635.test, DNS:t636.test, DNS:t637.test, DNS:t638.test, DNS:t639.test, DNS:t640.test, DNS:t641.test, DNS:t642.test, DNS:t643.test, DNS:t644.test, DNS:t645.test, DNS:t646.test, DNS:t647.test, DNS:t648.test, DNS:t649.test, DNS:t650.test, DNS:t651.test, DNS:t652.test, DNS:t653.test, DNS:t654.test, DNS:t655.test, DNS:t656.test, DNS:t657.test, DNS:t658.test, DNS:t659.test, DNS:t660.test, DNS:t661.test, DNS:t662.test, DNS:t663.test, DNS:t664.test, DNS:t665.test, DNS:t666.test, DNS:t667.test, DNS:t668.test, DNS:t669.test, DNS:t670.test, DNS:t671.test, DNS:t672.test, DNS:t673.test, DNS:t674.test, DNS:t675.test, DNS:t676.test, DNS:t677.test, DNS:t678.test, DNS:t679.test, DNS:t680.test, DNS:t681.test, DNS:t682.test, DNS:t683.test, DNS:t684.test, DNS:t685.test, DNS:t686.test, DNS:t687.test, DNS:t688.test, DNS:t689.test, DNS:t690.test, DNS:t691.test, DNS:t692.test, DNS:t693.test, DNS:t694.test, DNS:t695.test, DNS:t696.test, DNS:t697.test, DNS:t698.test, DNS:t699.test, DNS:t700.test, DNS:t701.test, DNS:t702.test, DNS:t703.test, DNS:t704.test, DNS:t705.test, DNS:t706.test, DNS:t707.test, DNS:t708.test, DNS:t709.test, DNS:t710.test, DNS:t711.test, DNS:t712.test, DNS:t713.test, DNS:t714.test, DNS:t715.test, DNS:t716.test, DNS:t717.test, DNS:t718.test, DNS:t719.test, DNS:t720.test, DNS:t721.test, DNS:t722.test, DNS:t723.test, DNS:t724.test, DNS:t725.test, DNS:t726.test, DNS:t727.test, DNS:t728.test, DNS:t729.test, DNS:t730.test, DNS:t731.test, DNS:t732.test, DNS:t733.test, DNS:t734.test, DNS:t735.test, DNS:t736.test, DNS:t737.test, DNS:t738.test, DNS:t739.test, DNS:t740.test, DNS:t741.test, DNS:t742.test, DNS:t743.test, DNS:t744.test, DNS:t745.test, DNS:t746.test, DNS:t747.test, DNS:t748.test, DNS:t749.test, DNS:t750.test, DNS:t751.test, DNS:t752.test, DNS:t753.test, DNS:t754.test, DNS:t755.test, DNS:t756.test, DNS:t757.test, DNS:t758.test, DNS:t759.test, DNS:t760.test, DNS:t761.test, DNS:t762.test, DNS:t763.test, DNS:t764.test, DNS:t765.test, DNS:t766.test, DNS:t767.test, DNS:t768.test, DNS:t769.test, DNS:t770.test, DNS:t771.test, DNS:t772.test, DNS:t773.test, DNS:t774.test, DNS:t775.test, DNS:t776.test, DNS:t777.test, DNS:t778.test, DNS:t779.test, DNS:t780.test, DNS:t781.test, DNS:t782.test, DNS:t783.test, DNS:t784.test, DNS:t785.test, DNS:t786.test, DNS:t787.test, DNS:t788.test, DNS:t789.test, DNS:t790.test, DNS:t791.test, DNS:t792.test, DNS:t793.test, DNS:t794.test, DNS:t795.test, DNS:t796.test, DNS:t797.test, DNS:t798.test, DNS:t799.test, DNS:t800.test, DNS:t801.test, DNS:t802.test, DNS:t803.test, DNS:t804.test, DNS:t805.test, DNS:t806.test, DNS:t807.test, DNS:t808.test, DNS:t809.test, DNS:t810.test, DNS:t811.test, DNS:t812.test, DNS:t813.test, DNS:t814.test, DNS:t815.test, DNS:t816.test, DNS:t817.test, DNS:t818.test, DNS:t819.test, DNS:t820.test, DNS:t821.test, DNS:t822.test, DNS:t823.test, DNS:t824.test, DNS:t825.test, DNS:t826.test, DNS:t827.test, DNS:t828.test, DNS:t829.test, DNS:t830.test, DNS:t831.test, DNS:t832.test, DNS:t833.test, DNS:t834.test, DNS:t835.test, DNS:t836.test, DNS:t837.test, DNS:t838.test, DNS:t839.test, DNS:t840.test, DNS:t841.test, DNS:t842.test, DNS:t843.test, DNS:t844.test, DNS:t845.test, DNS:t846.test, DNS:t847.test, DNS:t848.test, DNS:t849.test, DNS:t850.test, DNS:t851.test, DNS:t852.test, DNS:t853.test, DNS:t854.test, DNS:t855.test, DNS:t856.test, DNS:t857.test, DNS:t858.test, DNS:t859.test, DNS:t860.test, DNS:t861.test, DNS:t862.test, DNS:t863.test, DNS:t864.test, DNS:t865.test, DNS:t866.test, DNS:t867.test, DNS:t868.test, DNS:t869.test, DNS:t870.test, DNS:t871.test, DNS:t872.test, DNS:t873.test, DNS:t874.test, DNS:t875.test, DNS:t876.test, DNS:t877.test, DNS:t878.test, DNS:t879.test, DNS:t880.test, DNS:t881.test, DNS:t882.test, DNS:t883.test, DNS:t884.test, DNS:t885.test, DNS:t886.test, DNS:t887.test, DNS:t888.test, DNS:t889.test, DNS:t890.test, DNS:t891.test, DNS:t892.test, DNS:t893.test, DNS:t894.test, DNS:t895.test, DNS:t896.test, DNS:t897.test, DNS:t898.test, DNS:t899.test, DNS:t900.test, DNS:t901.test, DNS:t902.test, DNS:t903.test, DNS:t904.test, DNS:t905.test, DNS:t906.test, DNS:t907.test, DNS:t908.test, DNS:t909.test, DNS:t910.test, DNS:t911.test, DNS:t912.test, DNS:t913.test, DNS:t914.test, DNS:t915.test, DNS:t916.test, DNS:t917.test, DNS:t918.test, DNS:t919.test, DNS:t920.test, DNS:t921.test, DNS:t922.test, DNS:t923.test, DNS:t924.test, DNS:t925.test, DNS:t926.test, DNS:t927.test, DNS:t928.test, DNS:t929.test, DNS:t930.test, DNS:t931.test, DNS:t932.test, DNS:t933.test, DNS:t934.test, DNS:t935.test, DNS:t936.test, DNS:t937.test, DNS:t938.test, DNS:t939.test, DNS:t940.test, DNS:t941.test, DNS:t942.test, DNS:t943.test, DNS:t944.test, DNS:t945.test, DNS:t946.test, DNS:t947.test, DNS:t948.test, DNS:t949.test, DNS:t950.test, DNS:t951.test, DNS:t952.test, DNS:t953.test, DNS:t954.test, DNS:t955.test, DNS:t956.test, DNS:t957.test, DNS:t958.test, DNS:t959.test, DNS:t960.test, DNS:t961.test, DNS:t962.test, DNS:t963.test, DNS:t964.test, DNS:t965.test, DNS:t966.test, DNS:t967.test, DNS:t968.test, DNS:t969.test, DNS:t970.test, DNS:t971.test, DNS:t972.test, DNS:t973.test, DNS:t974.test, DNS:t975.test, DNS:t976.test, DNS:t977.test, DNS:t978.test, DNS:t979.test, DNS:t980.test, DNS:t981.test, DNS:t982.test, DNS:t983.test, DNS:t984.test, DNS:t985.test, DNS:t986.test, DNS:t987.test, DNS:t988.test, DNS:t989.test, DNS:t990.test, DNS:t991.test, DNS:t992.test, DNS:t993.test, DNS:t994.test, DNS:t995.test, DNS:t996.test, DNS:t997.test, DNS:t998.test, DNS:t999.test, DNS:t1000.test, DNS:t1001.test, DNS:t1002.test, DNS:t1003.test, DNS:t1004.test, DNS:t1005.test, DNS:t1006.test, DNS:t1007.test, DNS:t1008.test, DNS:t1009.test, DNS:t1010.test, DNS:t1011.test, DNS:t1012.test, DNS:t1013.test, DNS:t1014.test, DNS:t1015.test, DNS:t1016.test, DNS:t1017.test, DNS:t1018.test, DNS:t1019.test, DNS:t1020.test, DNS:t1021.test, DNS:t1022.test, DNS:t1023.test, DNS:t1024.test -- Signature Algorithm: sha256WithRSAEncryption -- af:4e:2f:50:52:13:d9:77:37:22:a3:de:f5:2a:e8:1b:88:a6: -- 80:24:52:0c:e0:51:1f:58:1c:38:e8:17:10:9d:7f:9e:2d:58: -- 4d:0c:5c:f3:7a:33:09:48:5e:2d:77:61:9d:bb:9c:0a:7d:33: -- 4f:bb:00:b2:96:be:2f:5d:ab:40:4a:60:95:a4:d2:5d:96:df: -- 01:3a:95:28:77:4f:7f:5f:8e:32:90:a7:46:fc:d5:6e:80:6f: -- 95:e9:74:50:9e:53:1c:b0:c1:64:2d:6d:70:4b:86:ab:9f:4a: -- 6f:2d:f8:23:05:70:f3:95:72:ce:23:20:50:8b:6c:d4:ea:94: -- ed:cd:20:71:a4:c0:24:12:bc:cf:6d:3d:5a:ba:51:03:64:3e: -- b0:00:85:2a:08:2f:cf:d0:6f:9d:ef:7a:16:f4:42:c5:36:20: -- 52:b6:96:34:5b:65:82:ae:34:cd:3e:e3:59:db:a8:24:8a:e5: -- be:37:9c:66:ff:7c:e3:77:d4:a4:4b:91:ab:c8:98:e0:f3:2c: -- 79:80:61:f3:02:e6:71:69:82:b2:31:61:ca:69:4a:a3:72:b9: -- 57:4c:9a:b5:85:07:40:16:3d:8a:cd:65:4b:17:08:33:44:ba: -- 9d:d3:69:cc:e5:b7:17:7c:d5:21:7c:1a:bb:e8:cf:f3:31:2f: -- 13:4b:2e:eb -------BEGIN CERTIFICATE----- --MIIvZDCCLkygAwIBAgITL6u0PdzAd4AqAwmtQ3QCv5jY3DANBgkqhkiG9w0BAQsF --ADAXMRUwEwYDVQQDDAxJbnRlcm1lZGlhdGUwHhcNMjExMDA1MTIwMDAwWhcNMjIx --MDA1MTIwMDAwWjANMQswCQYDVQQDDAJ0MDCCASIwDQYJKoZIhvcNAQEBBQADggEP --ADCCAQoCggEBANssUwHO+RqDNlJRKltCY94ydRFqfbCh5HdHm3Hlpi1k165bBO16 --P8f2yisrrc1siKWONvvnoiK1fVR56dV6W8orKWwNhAoQxCG2WJi7DbYMjVZbLIVZ --B8oGRjYlGimOxDm3wzHObknCAc+wOydDiuPVBh8tk53dekVlbf20scAQWULyHo/O --Q6yXJcF84lHhRDVblKoDbtpxLyV/WDAB4RIXHvKqbCKAscll6neVswfE93I4NP6g --QzNMZm2h6KEEvG8UOTlELjg3dMkKIYWRIbdOurCZSnaYe1jKHNOwQMPZKnX76xnq --4xqYMVKX6X+keyF/L9xiho/9/aiI6EtEUr0CAwEAAaOCLLEwgiytMB0GA1UdDgQW --BBQ7tAXMqrpRPfzy+R4lU3LhOvKa3zAfBgNVHSMEGDAWgBSSET+sEZbHZjfPg1ok --8Dp3rzONfzA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAKGI2h0dHA6Ly91cmwt --Zm9yLWFpYS9JbnRlcm1lZGlhdGUuY2VyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6 --Ly91cmwtZm9yLWNybC9JbnRlcm1lZGlhdGUuY3JsMA4GA1UdDwEB/wQEAwIFoDAd --BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwgivDBgNVHREEgiu6MIIrtoIH --dDAudGVzdIIHdDEudGVzdIIHdDIudGVzdIIHdDMudGVzdIIHdDQudGVzdIIHdDUu --dGVzdIIHdDYudGVzdIIHdDcudGVzdIIHdDgudGVzdIIHdDkudGVzdIIIdDEwLnRl --c3SCCHQxMS50ZXN0ggh0MTIudGVzdIIIdDEzLnRlc3SCCHQxNC50ZXN0ggh0MTUu --dGVzdIIIdDE2LnRlc3SCCHQxNy50ZXN0ggh0MTgudGVzdIIIdDE5LnRlc3SCCHQy --MC50ZXN0ggh0MjEudGVzdIIIdDIyLnRlc3SCCHQyMy50ZXN0ggh0MjQudGVzdIII --dDI1LnRlc3SCCHQyNi50ZXN0ggh0MjcudGVzdIIIdDI4LnRlc3SCCHQyOS50ZXN0 --ggh0MzAudGVzdIIIdDMxLnRlc3SCCHQzMi50ZXN0ggh0MzMudGVzdIIIdDM0LnRl --c3SCCHQzNS50ZXN0ggh0MzYudGVzdIIIdDM3LnRlc3SCCHQzOC50ZXN0ggh0Mzku --dGVzdIIIdDQwLnRlc3SCCHQ0MS50ZXN0ggh0NDIudGVzdIIIdDQzLnRlc3SCCHQ0 --NC50ZXN0ggh0NDUudGVzdIIIdDQ2LnRlc3SCCHQ0Ny50ZXN0ggh0NDgudGVzdIII --dDQ5LnRlc3SCCHQ1MC50ZXN0ggh0NTEudGVzdIIIdDUyLnRlc3SCCHQ1My50ZXN0 --ggh0NTQudGVzdIIIdDU1LnRlc3SCCHQ1Ni50ZXN0ggh0NTcudGVzdIIIdDU4LnRl --c3SCCHQ1OS50ZXN0ggh0NjAudGVzdIIIdDYxLnRlc3SCCHQ2Mi50ZXN0ggh0NjMu --dGVzdIIIdDY0LnRlc3SCCHQ2NS50ZXN0ggh0NjYudGVzdIIIdDY3LnRlc3SCCHQ2 --OC50ZXN0ggh0NjkudGVzdIIIdDcwLnRlc3SCCHQ3MS50ZXN0ggh0NzIudGVzdIII --dDczLnRlc3SCCHQ3NC50ZXN0ggh0NzUudGVzdIIIdDc2LnRlc3SCCHQ3Ny50ZXN0 --ggh0NzgudGVzdIIIdDc5LnRlc3SCCHQ4MC50ZXN0ggh0ODEudGVzdIIIdDgyLnRl --c3SCCHQ4My50ZXN0ggh0ODQudGVzdIIIdDg1LnRlc3SCCHQ4Ni50ZXN0ggh0ODcu --dGVzdIIIdDg4LnRlc3SCCHQ4OS50ZXN0ggh0OTAudGVzdIIIdDkxLnRlc3SCCHQ5 --Mi50ZXN0ggh0OTMudGVzdIIIdDk0LnRlc3SCCHQ5NS50ZXN0ggh0OTYudGVzdIII --dDk3LnRlc3SCCHQ5OC50ZXN0ggh0OTkudGVzdIIJdDEwMC50ZXN0ggl0MTAxLnRl --c3SCCXQxMDIudGVzdIIJdDEwMy50ZXN0ggl0MTA0LnRlc3SCCXQxMDUudGVzdIIJ --dDEwNi50ZXN0ggl0MTA3LnRlc3SCCXQxMDgudGVzdIIJdDEwOS50ZXN0ggl0MTEw --LnRlc3SCCXQxMTEudGVzdIIJdDExMi50ZXN0ggl0MTEzLnRlc3SCCXQxMTQudGVz --dIIJdDExNS50ZXN0ggl0MTE2LnRlc3SCCXQxMTcudGVzdIIJdDExOC50ZXN0ggl0 --MTE5LnRlc3SCCXQxMjAudGVzdIIJdDEyMS50ZXN0ggl0MTIyLnRlc3SCCXQxMjMu --dGVzdIIJdDEyNC50ZXN0ggl0MTI1LnRlc3SCCXQxMjYudGVzdIIJdDEyNy50ZXN0 --ggl0MTI4LnRlc3SCCXQxMjkudGVzdIIJdDEzMC50ZXN0ggl0MTMxLnRlc3SCCXQx --MzIudGVzdIIJdDEzMy50ZXN0ggl0MTM0LnRlc3SCCXQxMzUudGVzdIIJdDEzNi50 --ZXN0ggl0MTM3LnRlc3SCCXQxMzgudGVzdIIJdDEzOS50ZXN0ggl0MTQwLnRlc3SC --CXQxNDEudGVzdIIJdDE0Mi50ZXN0ggl0MTQzLnRlc3SCCXQxNDQudGVzdIIJdDE0 --NS50ZXN0ggl0MTQ2LnRlc3SCCXQxNDcudGVzdIIJdDE0OC50ZXN0ggl0MTQ5LnRl --c3SCCXQxNTAudGVzdIIJdDE1MS50ZXN0ggl0MTUyLnRlc3SCCXQxNTMudGVzdIIJ --dDE1NC50ZXN0ggl0MTU1LnRlc3SCCXQxNTYudGVzdIIJdDE1Ny50ZXN0ggl0MTU4 --LnRlc3SCCXQxNTkudGVzdIIJdDE2MC50ZXN0ggl0MTYxLnRlc3SCCXQxNjIudGVz --dIIJdDE2My50ZXN0ggl0MTY0LnRlc3SCCXQxNjUudGVzdIIJdDE2Ni50ZXN0ggl0 --MTY3LnRlc3SCCXQxNjgudGVzdIIJdDE2OS50ZXN0ggl0MTcwLnRlc3SCCXQxNzEu --dGVzdIIJdDE3Mi50ZXN0ggl0MTczLnRlc3SCCXQxNzQudGVzdIIJdDE3NS50ZXN0 --ggl0MTc2LnRlc3SCCXQxNzcudGVzdIIJdDE3OC50ZXN0ggl0MTc5LnRlc3SCCXQx --ODAudGVzdIIJdDE4MS50ZXN0ggl0MTgyLnRlc3SCCXQxODMudGVzdIIJdDE4NC50 --ZXN0ggl0MTg1LnRlc3SCCXQxODYudGVzdIIJdDE4Ny50ZXN0ggl0MTg4LnRlc3SC --CXQxODkudGVzdIIJdDE5MC50ZXN0ggl0MTkxLnRlc3SCCXQxOTIudGVzdIIJdDE5 --My50ZXN0ggl0MTk0LnRlc3SCCXQxOTUudGVzdIIJdDE5Ni50ZXN0ggl0MTk3LnRl --c3SCCXQxOTgudGVzdIIJdDE5OS50ZXN0ggl0MjAwLnRlc3SCCXQyMDEudGVzdIIJ --dDIwMi50ZXN0ggl0MjAzLnRlc3SCCXQyMDQudGVzdIIJdDIwNS50ZXN0ggl0MjA2 --LnRlc3SCCXQyMDcudGVzdIIJdDIwOC50ZXN0ggl0MjA5LnRlc3SCCXQyMTAudGVz --dIIJdDIxMS50ZXN0ggl0MjEyLnRlc3SCCXQyMTMudGVzdIIJdDIxNC50ZXN0ggl0 --MjE1LnRlc3SCCXQyMTYudGVzdIIJdDIxNy50ZXN0ggl0MjE4LnRlc3SCCXQyMTku --dGVzdIIJdDIyMC50ZXN0ggl0MjIxLnRlc3SCCXQyMjIudGVzdIIJdDIyMy50ZXN0 --ggl0MjI0LnRlc3SCCXQyMjUudGVzdIIJdDIyNi50ZXN0ggl0MjI3LnRlc3SCCXQy --MjgudGVzdIIJdDIyOS50ZXN0ggl0MjMwLnRlc3SCCXQyMzEudGVzdIIJdDIzMi50 --ZXN0ggl0MjMzLnRlc3SCCXQyMzQudGVzdIIJdDIzNS50ZXN0ggl0MjM2LnRlc3SC --CXQyMzcudGVzdIIJdDIzOC50ZXN0ggl0MjM5LnRlc3SCCXQyNDAudGVzdIIJdDI0 --MS50ZXN0ggl0MjQyLnRlc3SCCXQyNDMudGVzdIIJdDI0NC50ZXN0ggl0MjQ1LnRl --c3SCCXQyNDYudGVzdIIJdDI0Ny50ZXN0ggl0MjQ4LnRlc3SCCXQyNDkudGVzdIIJ --dDI1MC50ZXN0ggl0MjUxLnRlc3SCCXQyNTIudGVzdIIJdDI1My50ZXN0ggl0MjU0 --LnRlc3SCCXQyNTUudGVzdIIJdDI1Ni50ZXN0ggl0MjU3LnRlc3SCCXQyNTgudGVz --dIIJdDI1OS50ZXN0ggl0MjYwLnRlc3SCCXQyNjEudGVzdIIJdDI2Mi50ZXN0ggl0 --MjYzLnRlc3SCCXQyNjQudGVzdIIJdDI2NS50ZXN0ggl0MjY2LnRlc3SCCXQyNjcu --dGVzdIIJdDI2OC50ZXN0ggl0MjY5LnRlc3SCCXQyNzAudGVzdIIJdDI3MS50ZXN0 --ggl0MjcyLnRlc3SCCXQyNzMudGVzdIIJdDI3NC50ZXN0ggl0Mjc1LnRlc3SCCXQy --NzYudGVzdIIJdDI3Ny50ZXN0ggl0Mjc4LnRlc3SCCXQyNzkudGVzdIIJdDI4MC50 --ZXN0ggl0MjgxLnRlc3SCCXQyODIudGVzdIIJdDI4My50ZXN0ggl0Mjg0LnRlc3SC --CXQyODUudGVzdIIJdDI4Ni50ZXN0ggl0Mjg3LnRlc3SCCXQyODgudGVzdIIJdDI4 --OS50ZXN0ggl0MjkwLnRlc3SCCXQyOTEudGVzdIIJdDI5Mi50ZXN0ggl0MjkzLnRl --c3SCCXQyOTQudGVzdIIJdDI5NS50ZXN0ggl0Mjk2LnRlc3SCCXQyOTcudGVzdIIJ --dDI5OC50ZXN0ggl0Mjk5LnRlc3SCCXQzMDAudGVzdIIJdDMwMS50ZXN0ggl0MzAy --LnRlc3SCCXQzMDMudGVzdIIJdDMwNC50ZXN0ggl0MzA1LnRlc3SCCXQzMDYudGVz --dIIJdDMwNy50ZXN0ggl0MzA4LnRlc3SCCXQzMDkudGVzdIIJdDMxMC50ZXN0ggl0 --MzExLnRlc3SCCXQzMTIudGVzdIIJdDMxMy50ZXN0ggl0MzE0LnRlc3SCCXQzMTUu --dGVzdIIJdDMxNi50ZXN0ggl0MzE3LnRlc3SCCXQzMTgudGVzdIIJdDMxOS50ZXN0 --ggl0MzIwLnRlc3SCCXQzMjEudGVzdIIJdDMyMi50ZXN0ggl0MzIzLnRlc3SCCXQz --MjQudGVzdIIJdDMyNS50ZXN0ggl0MzI2LnRlc3SCCXQzMjcudGVzdIIJdDMyOC50 --ZXN0ggl0MzI5LnRlc3SCCXQzMzAudGVzdIIJdDMzMS50ZXN0ggl0MzMyLnRlc3SC --CXQzMzMudGVzdIIJdDMzNC50ZXN0ggl0MzM1LnRlc3SCCXQzMzYudGVzdIIJdDMz --Ny50ZXN0ggl0MzM4LnRlc3SCCXQzMzkudGVzdIIJdDM0MC50ZXN0ggl0MzQxLnRl --c3SCCXQzNDIudGVzdIIJdDM0My50ZXN0ggl0MzQ0LnRlc3SCCXQzNDUudGVzdIIJ --dDM0Ni50ZXN0ggl0MzQ3LnRlc3SCCXQzNDgudGVzdIIJdDM0OS50ZXN0ggl0MzUw --LnRlc3SCCXQzNTEudGVzdIIJdDM1Mi50ZXN0ggl0MzUzLnRlc3SCCXQzNTQudGVz --dIIJdDM1NS50ZXN0ggl0MzU2LnRlc3SCCXQzNTcudGVzdIIJdDM1OC50ZXN0ggl0 --MzU5LnRlc3SCCXQzNjAudGVzdIIJdDM2MS50ZXN0ggl0MzYyLnRlc3SCCXQzNjMu --dGVzdIIJdDM2NC50ZXN0ggl0MzY1LnRlc3SCCXQzNjYudGVzdIIJdDM2Ny50ZXN0 --ggl0MzY4LnRlc3SCCXQzNjkudGVzdIIJdDM3MC50ZXN0ggl0MzcxLnRlc3SCCXQz --NzIudGVzdIIJdDM3My50ZXN0ggl0Mzc0LnRlc3SCCXQzNzUudGVzdIIJdDM3Ni50 --ZXN0ggl0Mzc3LnRlc3SCCXQzNzgudGVzdIIJdDM3OS50ZXN0ggl0MzgwLnRlc3SC --CXQzODEudGVzdIIJdDM4Mi50ZXN0ggl0MzgzLnRlc3SCCXQzODQudGVzdIIJdDM4 --NS50ZXN0ggl0Mzg2LnRlc3SCCXQzODcudGVzdIIJdDM4OC50ZXN0ggl0Mzg5LnRl --c3SCCXQzOTAudGVzdIIJdDM5MS50ZXN0ggl0MzkyLnRlc3SCCXQzOTMudGVzdIIJ --dDM5NC50ZXN0ggl0Mzk1LnRlc3SCCXQzOTYudGVzdIIJdDM5Ny50ZXN0ggl0Mzk4 --LnRlc3SCCXQzOTkudGVzdIIJdDQwMC50ZXN0ggl0NDAxLnRlc3SCCXQ0MDIudGVz --dIIJdDQwMy50ZXN0ggl0NDA0LnRlc3SCCXQ0MDUudGVzdIIJdDQwNi50ZXN0ggl0 --NDA3LnRlc3SCCXQ0MDgudGVzdIIJdDQwOS50ZXN0ggl0NDEwLnRlc3SCCXQ0MTEu --dGVzdIIJdDQxMi50ZXN0ggl0NDEzLnRlc3SCCXQ0MTQudGVzdIIJdDQxNS50ZXN0 --ggl0NDE2LnRlc3SCCXQ0MTcudGVzdIIJdDQxOC50ZXN0ggl0NDE5LnRlc3SCCXQ0 --MjAudGVzdIIJdDQyMS50ZXN0ggl0NDIyLnRlc3SCCXQ0MjMudGVzdIIJdDQyNC50 --ZXN0ggl0NDI1LnRlc3SCCXQ0MjYudGVzdIIJdDQyNy50ZXN0ggl0NDI4LnRlc3SC --CXQ0MjkudGVzdIIJdDQzMC50ZXN0ggl0NDMxLnRlc3SCCXQ0MzIudGVzdIIJdDQz --My50ZXN0ggl0NDM0LnRlc3SCCXQ0MzUudGVzdIIJdDQzNi50ZXN0ggl0NDM3LnRl --c3SCCXQ0MzgudGVzdIIJdDQzOS50ZXN0ggl0NDQwLnRlc3SCCXQ0NDEudGVzdIIJ --dDQ0Mi50ZXN0ggl0NDQzLnRlc3SCCXQ0NDQudGVzdIIJdDQ0NS50ZXN0ggl0NDQ2 --LnRlc3SCCXQ0NDcudGVzdIIJdDQ0OC50ZXN0ggl0NDQ5LnRlc3SCCXQ0NTAudGVz --dIIJdDQ1MS50ZXN0ggl0NDUyLnRlc3SCCXQ0NTMudGVzdIIJdDQ1NC50ZXN0ggl0 --NDU1LnRlc3SCCXQ0NTYudGVzdIIJdDQ1Ny50ZXN0ggl0NDU4LnRlc3SCCXQ0NTku --dGVzdIIJdDQ2MC50ZXN0ggl0NDYxLnRlc3SCCXQ0NjIudGVzdIIJdDQ2My50ZXN0 --ggl0NDY0LnRlc3SCCXQ0NjUudGVzdIIJdDQ2Ni50ZXN0ggl0NDY3LnRlc3SCCXQ0 --NjgudGVzdIIJdDQ2OS50ZXN0ggl0NDcwLnRlc3SCCXQ0NzEudGVzdIIJdDQ3Mi50 --ZXN0ggl0NDczLnRlc3SCCXQ0NzQudGVzdIIJdDQ3NS50ZXN0ggl0NDc2LnRlc3SC --CXQ0NzcudGVzdIIJdDQ3OC50ZXN0ggl0NDc5LnRlc3SCCXQ0ODAudGVzdIIJdDQ4 --MS50ZXN0ggl0NDgyLnRlc3SCCXQ0ODMudGVzdIIJdDQ4NC50ZXN0ggl0NDg1LnRl --c3SCCXQ0ODYudGVzdIIJdDQ4Ny50ZXN0ggl0NDg4LnRlc3SCCXQ0ODkudGVzdIIJ --dDQ5MC50ZXN0ggl0NDkxLnRlc3SCCXQ0OTIudGVzdIIJdDQ5My50ZXN0ggl0NDk0 --LnRlc3SCCXQ0OTUudGVzdIIJdDQ5Ni50ZXN0ggl0NDk3LnRlc3SCCXQ0OTgudGVz --dIIJdDQ5OS50ZXN0ggl0NTAwLnRlc3SCCXQ1MDEudGVzdIIJdDUwMi50ZXN0ggl0 --NTAzLnRlc3SCCXQ1MDQudGVzdIIJdDUwNS50ZXN0ggl0NTA2LnRlc3SCCXQ1MDcu --dGVzdIIJdDUwOC50ZXN0ggl0NTA5LnRlc3SCCXQ1MTAudGVzdIIJdDUxMS50ZXN0 --ggl0NTEyLnRlc3SCCXQ1MTMudGVzdIIJdDUxNC50ZXN0ggl0NTE1LnRlc3SCCXQ1 --MTYudGVzdIIJdDUxNy50ZXN0ggl0NTE4LnRlc3SCCXQ1MTkudGVzdIIJdDUyMC50 --ZXN0ggl0NTIxLnRlc3SCCXQ1MjIudGVzdIIJdDUyMy50ZXN0ggl0NTI0LnRlc3SC --CXQ1MjUudGVzdIIJdDUyNi50ZXN0ggl0NTI3LnRlc3SCCXQ1MjgudGVzdIIJdDUy --OS50ZXN0ggl0NTMwLnRlc3SCCXQ1MzEudGVzdIIJdDUzMi50ZXN0ggl0NTMzLnRl --c3SCCXQ1MzQudGVzdIIJdDUzNS50ZXN0ggl0NTM2LnRlc3SCCXQ1MzcudGVzdIIJ --dDUzOC50ZXN0ggl0NTM5LnRlc3SCCXQ1NDAudGVzdIIJdDU0MS50ZXN0ggl0NTQy --LnRlc3SCCXQ1NDMudGVzdIIJdDU0NC50ZXN0ggl0NTQ1LnRlc3SCCXQ1NDYudGVz --dIIJdDU0Ny50ZXN0ggl0NTQ4LnRlc3SCCXQ1NDkudGVzdIIJdDU1MC50ZXN0ggl0 --NTUxLnRlc3SCCXQ1NTIudGVzdIIJdDU1My50ZXN0ggl0NTU0LnRlc3SCCXQ1NTUu --dGVzdIIJdDU1Ni50ZXN0ggl0NTU3LnRlc3SCCXQ1NTgudGVzdIIJdDU1OS50ZXN0 --ggl0NTYwLnRlc3SCCXQ1NjEudGVzdIIJdDU2Mi50ZXN0ggl0NTYzLnRlc3SCCXQ1 --NjQudGVzdIIJdDU2NS50ZXN0ggl0NTY2LnRlc3SCCXQ1NjcudGVzdIIJdDU2OC50 --ZXN0ggl0NTY5LnRlc3SCCXQ1NzAudGVzdIIJdDU3MS50ZXN0ggl0NTcyLnRlc3SC --CXQ1NzMudGVzdIIJdDU3NC50ZXN0ggl0NTc1LnRlc3SCCXQ1NzYudGVzdIIJdDU3 --Ny50ZXN0ggl0NTc4LnRlc3SCCXQ1NzkudGVzdIIJdDU4MC50ZXN0ggl0NTgxLnRl --c3SCCXQ1ODIudGVzdIIJdDU4My50ZXN0ggl0NTg0LnRlc3SCCXQ1ODUudGVzdIIJ --dDU4Ni50ZXN0ggl0NTg3LnRlc3SCCXQ1ODgudGVzdIIJdDU4OS50ZXN0ggl0NTkw --LnRlc3SCCXQ1OTEudGVzdIIJdDU5Mi50ZXN0ggl0NTkzLnRlc3SCCXQ1OTQudGVz --dIIJdDU5NS50ZXN0ggl0NTk2LnRlc3SCCXQ1OTcudGVzdIIJdDU5OC50ZXN0ggl0 --NTk5LnRlc3SCCXQ2MDAudGVzdIIJdDYwMS50ZXN0ggl0NjAyLnRlc3SCCXQ2MDMu --dGVzdIIJdDYwNC50ZXN0ggl0NjA1LnRlc3SCCXQ2MDYudGVzdIIJdDYwNy50ZXN0 --ggl0NjA4LnRlc3SCCXQ2MDkudGVzdIIJdDYxMC50ZXN0ggl0NjExLnRlc3SCCXQ2 --MTIudGVzdIIJdDYxMy50ZXN0ggl0NjE0LnRlc3SCCXQ2MTUudGVzdIIJdDYxNi50 --ZXN0ggl0NjE3LnRlc3SCCXQ2MTgudGVzdIIJdDYxOS50ZXN0ggl0NjIwLnRlc3SC --CXQ2MjEudGVzdIIJdDYyMi50ZXN0ggl0NjIzLnRlc3SCCXQ2MjQudGVzdIIJdDYy --NS50ZXN0ggl0NjI2LnRlc3SCCXQ2MjcudGVzdIIJdDYyOC50ZXN0ggl0NjI5LnRl --c3SCCXQ2MzAudGVzdIIJdDYzMS50ZXN0ggl0NjMyLnRlc3SCCXQ2MzMudGVzdIIJ --dDYzNC50ZXN0ggl0NjM1LnRlc3SCCXQ2MzYudGVzdIIJdDYzNy50ZXN0ggl0NjM4 --LnRlc3SCCXQ2MzkudGVzdIIJdDY0MC50ZXN0ggl0NjQxLnRlc3SCCXQ2NDIudGVz --dIIJdDY0My50ZXN0ggl0NjQ0LnRlc3SCCXQ2NDUudGVzdIIJdDY0Ni50ZXN0ggl0 --NjQ3LnRlc3SCCXQ2NDgudGVzdIIJdDY0OS50ZXN0ggl0NjUwLnRlc3SCCXQ2NTEu --dGVzdIIJdDY1Mi50ZXN0ggl0NjUzLnRlc3SCCXQ2NTQudGVzdIIJdDY1NS50ZXN0 --ggl0NjU2LnRlc3SCCXQ2NTcudGVzdIIJdDY1OC50ZXN0ggl0NjU5LnRlc3SCCXQ2 --NjAudGVzdIIJdDY2MS50ZXN0ggl0NjYyLnRlc3SCCXQ2NjMudGVzdIIJdDY2NC50 --ZXN0ggl0NjY1LnRlc3SCCXQ2NjYudGVzdIIJdDY2Ny50ZXN0ggl0NjY4LnRlc3SC --CXQ2NjkudGVzdIIJdDY3MC50ZXN0ggl0NjcxLnRlc3SCCXQ2NzIudGVzdIIJdDY3 --My50ZXN0ggl0Njc0LnRlc3SCCXQ2NzUudGVzdIIJdDY3Ni50ZXN0ggl0Njc3LnRl --c3SCCXQ2NzgudGVzdIIJdDY3OS50ZXN0ggl0NjgwLnRlc3SCCXQ2ODEudGVzdIIJ --dDY4Mi50ZXN0ggl0NjgzLnRlc3SCCXQ2ODQudGVzdIIJdDY4NS50ZXN0ggl0Njg2 --LnRlc3SCCXQ2ODcudGVzdIIJdDY4OC50ZXN0ggl0Njg5LnRlc3SCCXQ2OTAudGVz --dIIJdDY5MS50ZXN0ggl0NjkyLnRlc3SCCXQ2OTMudGVzdIIJdDY5NC50ZXN0ggl0 --Njk1LnRlc3SCCXQ2OTYudGVzdIIJdDY5Ny50ZXN0ggl0Njk4LnRlc3SCCXQ2OTku --dGVzdIIJdDcwMC50ZXN0ggl0NzAxLnRlc3SCCXQ3MDIudGVzdIIJdDcwMy50ZXN0 --ggl0NzA0LnRlc3SCCXQ3MDUudGVzdIIJdDcwNi50ZXN0ggl0NzA3LnRlc3SCCXQ3 --MDgudGVzdIIJdDcwOS50ZXN0ggl0NzEwLnRlc3SCCXQ3MTEudGVzdIIJdDcxMi50 --ZXN0ggl0NzEzLnRlc3SCCXQ3MTQudGVzdIIJdDcxNS50ZXN0ggl0NzE2LnRlc3SC --CXQ3MTcudGVzdIIJdDcxOC50ZXN0ggl0NzE5LnRlc3SCCXQ3MjAudGVzdIIJdDcy --MS50ZXN0ggl0NzIyLnRlc3SCCXQ3MjMudGVzdIIJdDcyNC50ZXN0ggl0NzI1LnRl --c3SCCXQ3MjYudGVzdIIJdDcyNy50ZXN0ggl0NzI4LnRlc3SCCXQ3MjkudGVzdIIJ --dDczMC50ZXN0ggl0NzMxLnRlc3SCCXQ3MzIudGVzdIIJdDczMy50ZXN0ggl0NzM0 --LnRlc3SCCXQ3MzUudGVzdIIJdDczNi50ZXN0ggl0NzM3LnRlc3SCCXQ3MzgudGVz --dIIJdDczOS50ZXN0ggl0NzQwLnRlc3SCCXQ3NDEudGVzdIIJdDc0Mi50ZXN0ggl0 --NzQzLnRlc3SCCXQ3NDQudGVzdIIJdDc0NS50ZXN0ggl0NzQ2LnRlc3SCCXQ3NDcu --dGVzdIIJdDc0OC50ZXN0ggl0NzQ5LnRlc3SCCXQ3NTAudGVzdIIJdDc1MS50ZXN0 --ggl0NzUyLnRlc3SCCXQ3NTMudGVzdIIJdDc1NC50ZXN0ggl0NzU1LnRlc3SCCXQ3 --NTYudGVzdIIJdDc1Ny50ZXN0ggl0NzU4LnRlc3SCCXQ3NTkudGVzdIIJdDc2MC50 --ZXN0ggl0NzYxLnRlc3SCCXQ3NjIudGVzdIIJdDc2My50ZXN0ggl0NzY0LnRlc3SC --CXQ3NjUudGVzdIIJdDc2Ni50ZXN0ggl0NzY3LnRlc3SCCXQ3NjgudGVzdIIJdDc2 --OS50ZXN0ggl0NzcwLnRlc3SCCXQ3NzEudGVzdIIJdDc3Mi50ZXN0ggl0NzczLnRl --c3SCCXQ3NzQudGVzdIIJdDc3NS50ZXN0ggl0Nzc2LnRlc3SCCXQ3NzcudGVzdIIJ --dDc3OC50ZXN0ggl0Nzc5LnRlc3SCCXQ3ODAudGVzdIIJdDc4MS50ZXN0ggl0Nzgy --LnRlc3SCCXQ3ODMudGVzdIIJdDc4NC50ZXN0ggl0Nzg1LnRlc3SCCXQ3ODYudGVz --dIIJdDc4Ny50ZXN0ggl0Nzg4LnRlc3SCCXQ3ODkudGVzdIIJdDc5MC50ZXN0ggl0 --NzkxLnRlc3SCCXQ3OTIudGVzdIIJdDc5My50ZXN0ggl0Nzk0LnRlc3SCCXQ3OTUu --dGVzdIIJdDc5Ni50ZXN0ggl0Nzk3LnRlc3SCCXQ3OTgudGVzdIIJdDc5OS50ZXN0 --ggl0ODAwLnRlc3SCCXQ4MDEudGVzdIIJdDgwMi50ZXN0ggl0ODAzLnRlc3SCCXQ4 --MDQudGVzdIIJdDgwNS50ZXN0ggl0ODA2LnRlc3SCCXQ4MDcudGVzdIIJdDgwOC50 --ZXN0ggl0ODA5LnRlc3SCCXQ4MTAudGVzdIIJdDgxMS50ZXN0ggl0ODEyLnRlc3SC --CXQ4MTMudGVzdIIJdDgxNC50ZXN0ggl0ODE1LnRlc3SCCXQ4MTYudGVzdIIJdDgx --Ny50ZXN0ggl0ODE4LnRlc3SCCXQ4MTkudGVzdIIJdDgyMC50ZXN0ggl0ODIxLnRl --c3SCCXQ4MjIudGVzdIIJdDgyMy50ZXN0ggl0ODI0LnRlc3SCCXQ4MjUudGVzdIIJ --dDgyNi50ZXN0ggl0ODI3LnRlc3SCCXQ4MjgudGVzdIIJdDgyOS50ZXN0ggl0ODMw --LnRlc3SCCXQ4MzEudGVzdIIJdDgzMi50ZXN0ggl0ODMzLnRlc3SCCXQ4MzQudGVz --dIIJdDgzNS50ZXN0ggl0ODM2LnRlc3SCCXQ4MzcudGVzdIIJdDgzOC50ZXN0ggl0 --ODM5LnRlc3SCCXQ4NDAudGVzdIIJdDg0MS50ZXN0ggl0ODQyLnRlc3SCCXQ4NDMu --dGVzdIIJdDg0NC50ZXN0ggl0ODQ1LnRlc3SCCXQ4NDYudGVzdIIJdDg0Ny50ZXN0 --ggl0ODQ4LnRlc3SCCXQ4NDkudGVzdIIJdDg1MC50ZXN0ggl0ODUxLnRlc3SCCXQ4 --NTIudGVzdIIJdDg1My50ZXN0ggl0ODU0LnRlc3SCCXQ4NTUudGVzdIIJdDg1Ni50 --ZXN0ggl0ODU3LnRlc3SCCXQ4NTgudGVzdIIJdDg1OS50ZXN0ggl0ODYwLnRlc3SC --CXQ4NjEudGVzdIIJdDg2Mi50ZXN0ggl0ODYzLnRlc3SCCXQ4NjQudGVzdIIJdDg2 --NS50ZXN0ggl0ODY2LnRlc3SCCXQ4NjcudGVzdIIJdDg2OC50ZXN0ggl0ODY5LnRl --c3SCCXQ4NzAudGVzdIIJdDg3MS50ZXN0ggl0ODcyLnRlc3SCCXQ4NzMudGVzdIIJ --dDg3NC50ZXN0ggl0ODc1LnRlc3SCCXQ4NzYudGVzdIIJdDg3Ny50ZXN0ggl0ODc4 --LnRlc3SCCXQ4NzkudGVzdIIJdDg4MC50ZXN0ggl0ODgxLnRlc3SCCXQ4ODIudGVz --dIIJdDg4My50ZXN0ggl0ODg0LnRlc3SCCXQ4ODUudGVzdIIJdDg4Ni50ZXN0ggl0 --ODg3LnRlc3SCCXQ4ODgudGVzdIIJdDg4OS50ZXN0ggl0ODkwLnRlc3SCCXQ4OTEu --dGVzdIIJdDg5Mi50ZXN0ggl0ODkzLnRlc3SCCXQ4OTQudGVzdIIJdDg5NS50ZXN0 --ggl0ODk2LnRlc3SCCXQ4OTcudGVzdIIJdDg5OC50ZXN0ggl0ODk5LnRlc3SCCXQ5 --MDAudGVzdIIJdDkwMS50ZXN0ggl0OTAyLnRlc3SCCXQ5MDMudGVzdIIJdDkwNC50 --ZXN0ggl0OTA1LnRlc3SCCXQ5MDYudGVzdIIJdDkwNy50ZXN0ggl0OTA4LnRlc3SC --CXQ5MDkudGVzdIIJdDkxMC50ZXN0ggl0OTExLnRlc3SCCXQ5MTIudGVzdIIJdDkx --My50ZXN0ggl0OTE0LnRlc3SCCXQ5MTUudGVzdIIJdDkxNi50ZXN0ggl0OTE3LnRl --c3SCCXQ5MTgudGVzdIIJdDkxOS50ZXN0ggl0OTIwLnRlc3SCCXQ5MjEudGVzdIIJ --dDkyMi50ZXN0ggl0OTIzLnRlc3SCCXQ5MjQudGVzdIIJdDkyNS50ZXN0ggl0OTI2 --LnRlc3SCCXQ5MjcudGVzdIIJdDkyOC50ZXN0ggl0OTI5LnRlc3SCCXQ5MzAudGVz --dIIJdDkzMS50ZXN0ggl0OTMyLnRlc3SCCXQ5MzMudGVzdIIJdDkzNC50ZXN0ggl0 --OTM1LnRlc3SCCXQ5MzYudGVzdIIJdDkzNy50ZXN0ggl0OTM4LnRlc3SCCXQ5Mzku --dGVzdIIJdDk0MC50ZXN0ggl0OTQxLnRlc3SCCXQ5NDIudGVzdIIJdDk0My50ZXN0 --ggl0OTQ0LnRlc3SCCXQ5NDUudGVzdIIJdDk0Ni50ZXN0ggl0OTQ3LnRlc3SCCXQ5 --NDgudGVzdIIJdDk0OS50ZXN0ggl0OTUwLnRlc3SCCXQ5NTEudGVzdIIJdDk1Mi50 --ZXN0ggl0OTUzLnRlc3SCCXQ5NTQudGVzdIIJdDk1NS50ZXN0ggl0OTU2LnRlc3SC --CXQ5NTcudGVzdIIJdDk1OC50ZXN0ggl0OTU5LnRlc3SCCXQ5NjAudGVzdIIJdDk2 --MS50ZXN0ggl0OTYyLnRlc3SCCXQ5NjMudGVzdIIJdDk2NC50ZXN0ggl0OTY1LnRl --c3SCCXQ5NjYudGVzdIIJdDk2Ny50ZXN0ggl0OTY4LnRlc3SCCXQ5NjkudGVzdIIJ --dDk3MC50ZXN0ggl0OTcxLnRlc3SCCXQ5NzIudGVzdIIJdDk3My50ZXN0ggl0OTc0 --LnRlc3SCCXQ5NzUudGVzdIIJdDk3Ni50ZXN0ggl0OTc3LnRlc3SCCXQ5NzgudGVz --dIIJdDk3OS50ZXN0ggl0OTgwLnRlc3SCCXQ5ODEudGVzdIIJdDk4Mi50ZXN0ggl0 --OTgzLnRlc3SCCXQ5ODQudGVzdIIJdDk4NS50ZXN0ggl0OTg2LnRlc3SCCXQ5ODcu --dGVzdIIJdDk4OC50ZXN0ggl0OTg5LnRlc3SCCXQ5OTAudGVzdIIJdDk5MS50ZXN0 --ggl0OTkyLnRlc3SCCXQ5OTMudGVzdIIJdDk5NC50ZXN0ggl0OTk1LnRlc3SCCXQ5 --OTYudGVzdIIJdDk5Ny50ZXN0ggl0OTk4LnRlc3SCCXQ5OTkudGVzdIIKdDEwMDAu --dGVzdIIKdDEwMDEudGVzdIIKdDEwMDIudGVzdIIKdDEwMDMudGVzdIIKdDEwMDQu --dGVzdIIKdDEwMDUudGVzdIIKdDEwMDYudGVzdIIKdDEwMDcudGVzdIIKdDEwMDgu --dGVzdIIKdDEwMDkudGVzdIIKdDEwMTAudGVzdIIKdDEwMTEudGVzdIIKdDEwMTIu --dGVzdIIKdDEwMTMudGVzdIIKdDEwMTQudGVzdIIKdDEwMTUudGVzdIIKdDEwMTYu --dGVzdIIKdDEwMTcudGVzdIIKdDEwMTgudGVzdIIKdDEwMTkudGVzdIIKdDEwMjAu --dGVzdIIKdDEwMjEudGVzdIIKdDEwMjIudGVzdIIKdDEwMjMudGVzdIIKdDEwMjQu --dGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAr04vUFIT2Xc3IqPe9SroG4imgCRSDOBR --H1gcOOgXEJ1/ni1YTQxc83ozCUheLXdhnbucCn0zT7sAspa+L12rQEpglaTSXZbf --ATqVKHdPf1+OMpCnRvzVboBvlel0UJ5THLDBZC1tcEuGq59Kby34IwVw85VyziMg --UIts1OqU7c0gcaTAJBK8z209WrpRA2Q+sACFKggvz9Bvne96FvRCxTYgUraWNFtl --gq40zT7jWduoJIrlvjecZv9843fUpEuRq8iY4PMseYBh8wLmcWmCsjFhymlKo3K5 --V0yatYUHQBY9is1lSxcIM0S6ndNpzOW3F3zVIXwau+jP8zEvE0su6w== -------END CERTIFICATE----- -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:fe -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Root -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=Intermediate -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:bb:3b:db:04:6e:17:e0:54:52:ba:23:77:24:bc: -- 34:e3:70:d9:99:9e:53:5d:33:0b:a9:cc:4b:1d:ae: -- 06:27:18:8e:55:ba:ad:12:c7:1d:32:59:6d:c3:16: -- 20:db:62:a6:77:80:12:e0:87:58:51:55:e3:66:7f: -- d1:e0:3a:22:65:e5:70:26:a2:04:04:f0:5d:f9:5f: -- 56:c8:da:e8:0f:57:28:77:6e:9a:a0:4a:53:34:1a: -- 63:37:a2:43:ab:0e:4a:cd:07:23:dd:55:83:44:00: -- 0c:70:41:df:35:64:d0:c5:0e:6a:87:db:ca:fc:35: -- d5:e2:5b:af:0b:a0:e6:75:a5:d2:e1:72:4e:22:63: -- 01:41:73:b8:95:50:2c:fd:ed:c3:61:b6:36:d4:83: -- 95:61:c3:e0:61:ff:f4:9e:8a:e8:ba:dc:d1:f6:89: -- ed:9d:30:44:95:27:f4:d1:8b:e6:2f:14:66:56:f1: -- da:f1:cc:04:1b:77:92:a5:9f:58:40:0c:9f:0c:32: -- d6:05:c2:4c:c0:c5:9f:e5:a4:30:3d:4c:e9:9d:03: -- 6c:4c:06:b6:e5:95:bd:21:b8:e6:2b:a8:a0:bf:06: -- bb:43:33:19:3d:7b:17:59:f1:64:4d:24:67:b1:51: -- 0f:35:ae:f0:71:75:79:ae:5b:02:34:04:31:e3:66: -- 86:65 -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- 92:11:3F:AC:11:96:C7:66:37:CF:83:5A:24:F0:3A:77:AF:33:8D:7F -- X509v3 Authority Key Identifier: -- keyid:B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Root.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Root.crl -- -- X509v3 Key Usage: critical -- Certificate Sign, CRL Sign -- X509v3 Basic Constraints: critical -- CA:TRUE -- X509v3 Name Constraints: -- Permitted: -- IP:10.0.0.0/255.255.255.255 -- IP:10.0.0.1/255.255.255.255 -- IP:10.0.0.2/255.255.255.255 -- IP:10.0.0.3/255.255.255.255 -- IP:10.0.0.4/255.255.255.255 -- IP:10.0.0.5/255.255.255.255 -- IP:10.0.0.6/255.255.255.255 -- IP:10.0.0.7/255.255.255.255 -- IP:10.0.0.8/255.255.255.255 -- IP:10.0.0.9/255.255.255.255 -- IP:10.0.0.10/255.255.255.255 -- IP:10.0.0.11/255.255.255.255 -- IP:10.0.0.12/255.255.255.255 -- IP:10.0.0.13/255.255.255.255 -- IP:10.0.0.14/255.255.255.255 -- IP:10.0.0.15/255.255.255.255 -- IP:10.0.0.16/255.255.255.255 -- IP:10.0.0.17/255.255.255.255 -- IP:10.0.0.18/255.255.255.255 -- IP:10.0.0.19/255.255.255.255 -- IP:10.0.0.20/255.255.255.255 -- IP:10.0.0.21/255.255.255.255 -- IP:10.0.0.22/255.255.255.255 -- IP:10.0.0.23/255.255.255.255 -- IP:10.0.0.24/255.255.255.255 -- IP:10.0.0.25/255.255.255.255 -- IP:10.0.0.26/255.255.255.255 -- IP:10.0.0.27/255.255.255.255 -- IP:10.0.0.28/255.255.255.255 -- IP:10.0.0.29/255.255.255.255 -- IP:10.0.0.30/255.255.255.255 -- IP:10.0.0.31/255.255.255.255 -- IP:10.0.0.32/255.255.255.255 -- IP:10.0.0.33/255.255.255.255 -- IP:10.0.0.34/255.255.255.255 -- IP:10.0.0.35/255.255.255.255 -- IP:10.0.0.36/255.255.255.255 -- IP:10.0.0.37/255.255.255.255 -- IP:10.0.0.38/255.255.255.255 -- IP:10.0.0.39/255.255.255.255 -- IP:10.0.0.40/255.255.255.255 -- IP:10.0.0.41/255.255.255.255 -- IP:10.0.0.42/255.255.255.255 -- IP:10.0.0.43/255.255.255.255 -- IP:10.0.0.44/255.255.255.255 -- IP:10.0.0.45/255.255.255.255 -- IP:10.0.0.46/255.255.255.255 -- IP:10.0.0.47/255.255.255.255 -- IP:10.0.0.48/255.255.255.255 -- IP:10.0.0.49/255.255.255.255 -- IP:10.0.0.50/255.255.255.255 -- IP:10.0.0.51/255.255.255.255 -- IP:10.0.0.52/255.255.255.255 -- IP:10.0.0.53/255.255.255.255 -- IP:10.0.0.54/255.255.255.255 -- IP:10.0.0.55/255.255.255.255 -- IP:10.0.0.56/255.255.255.255 -- IP:10.0.0.57/255.255.255.255 -- IP:10.0.0.58/255.255.255.255 -- IP:10.0.0.59/255.255.255.255 -- IP:10.0.0.60/255.255.255.255 -- IP:10.0.0.61/255.255.255.255 -- IP:10.0.0.62/255.255.255.255 -- IP:10.0.0.63/255.255.255.255 -- IP:10.0.0.64/255.255.255.255 -- IP:10.0.0.65/255.255.255.255 -- IP:10.0.0.66/255.255.255.255 -- IP:10.0.0.67/255.255.255.255 -- IP:10.0.0.68/255.255.255.255 -- IP:10.0.0.69/255.255.255.255 -- IP:10.0.0.70/255.255.255.255 -- IP:10.0.0.71/255.255.255.255 -- IP:10.0.0.72/255.255.255.255 -- IP:10.0.0.73/255.255.255.255 -- IP:10.0.0.74/255.255.255.255 -- IP:10.0.0.75/255.255.255.255 -- IP:10.0.0.76/255.255.255.255 -- IP:10.0.0.77/255.255.255.255 -- IP:10.0.0.78/255.255.255.255 -- IP:10.0.0.79/255.255.255.255 -- IP:10.0.0.80/255.255.255.255 -- IP:10.0.0.81/255.255.255.255 -- IP:10.0.0.82/255.255.255.255 -- IP:10.0.0.83/255.255.255.255 -- IP:10.0.0.84/255.255.255.255 -- IP:10.0.0.85/255.255.255.255 -- IP:10.0.0.86/255.255.255.255 -- IP:10.0.0.87/255.255.255.255 -- IP:10.0.0.88/255.255.255.255 -- IP:10.0.0.89/255.255.255.255 -- IP:10.0.0.90/255.255.255.255 -- IP:10.0.0.91/255.255.255.255 -- IP:10.0.0.92/255.255.255.255 -- IP:10.0.0.93/255.255.255.255 -- IP:10.0.0.94/255.255.255.255 -- IP:10.0.0.95/255.255.255.255 -- IP:10.0.0.96/255.255.255.255 -- IP:10.0.0.97/255.255.255.255 -- IP:10.0.0.98/255.255.255.255 -- IP:10.0.0.99/255.255.255.255 -- IP:10.0.0.100/255.255.255.255 -- IP:10.0.0.101/255.255.255.255 -- IP:10.0.0.102/255.255.255.255 -- IP:10.0.0.103/255.255.255.255 -- IP:10.0.0.104/255.255.255.255 -- IP:10.0.0.105/255.255.255.255 -- IP:10.0.0.106/255.255.255.255 -- IP:10.0.0.107/255.255.255.255 -- IP:10.0.0.108/255.255.255.255 -- IP:10.0.0.109/255.255.255.255 -- IP:10.0.0.110/255.255.255.255 -- IP:10.0.0.111/255.255.255.255 -- IP:10.0.0.112/255.255.255.255 -- IP:10.0.0.113/255.255.255.255 -- IP:10.0.0.114/255.255.255.255 -- IP:10.0.0.115/255.255.255.255 -- IP:10.0.0.116/255.255.255.255 -- IP:10.0.0.117/255.255.255.255 -- IP:10.0.0.118/255.255.255.255 -- IP:10.0.0.119/255.255.255.255 -- IP:10.0.0.120/255.255.255.255 -- IP:10.0.0.121/255.255.255.255 -- IP:10.0.0.122/255.255.255.255 -- IP:10.0.0.123/255.255.255.255 -- IP:10.0.0.124/255.255.255.255 -- IP:10.0.0.125/255.255.255.255 -- IP:10.0.0.126/255.255.255.255 -- IP:10.0.0.127/255.255.255.255 -- IP:10.0.0.128/255.255.255.255 -- IP:10.0.0.129/255.255.255.255 -- IP:10.0.0.130/255.255.255.255 -- IP:10.0.0.131/255.255.255.255 -- IP:10.0.0.132/255.255.255.255 -- IP:10.0.0.133/255.255.255.255 -- IP:10.0.0.134/255.255.255.255 -- IP:10.0.0.135/255.255.255.255 -- IP:10.0.0.136/255.255.255.255 -- IP:10.0.0.137/255.255.255.255 -- IP:10.0.0.138/255.255.255.255 -- IP:10.0.0.139/255.255.255.255 -- IP:10.0.0.140/255.255.255.255 -- IP:10.0.0.141/255.255.255.255 -- IP:10.0.0.142/255.255.255.255 -- IP:10.0.0.143/255.255.255.255 -- IP:10.0.0.144/255.255.255.255 -- IP:10.0.0.145/255.255.255.255 -- IP:10.0.0.146/255.255.255.255 -- IP:10.0.0.147/255.255.255.255 -- IP:10.0.0.148/255.255.255.255 -- IP:10.0.0.149/255.255.255.255 -- IP:10.0.0.150/255.255.255.255 -- IP:10.0.0.151/255.255.255.255 -- IP:10.0.0.152/255.255.255.255 -- IP:10.0.0.153/255.255.255.255 -- IP:10.0.0.154/255.255.255.255 -- IP:10.0.0.155/255.255.255.255 -- IP:10.0.0.156/255.255.255.255 -- IP:10.0.0.157/255.255.255.255 -- IP:10.0.0.158/255.255.255.255 -- IP:10.0.0.159/255.255.255.255 -- IP:10.0.0.160/255.255.255.255 -- IP:10.0.0.161/255.255.255.255 -- IP:10.0.0.162/255.255.255.255 -- IP:10.0.0.163/255.255.255.255 -- IP:10.0.0.164/255.255.255.255 -- IP:10.0.0.165/255.255.255.255 -- IP:10.0.0.166/255.255.255.255 -- IP:10.0.0.167/255.255.255.255 -- IP:10.0.0.168/255.255.255.255 -- IP:10.0.0.169/255.255.255.255 -- IP:10.0.0.170/255.255.255.255 -- IP:10.0.0.171/255.255.255.255 -- IP:10.0.0.172/255.255.255.255 -- IP:10.0.0.173/255.255.255.255 -- IP:10.0.0.174/255.255.255.255 -- IP:10.0.0.175/255.255.255.255 -- IP:10.0.0.176/255.255.255.255 -- IP:10.0.0.177/255.255.255.255 -- IP:10.0.0.178/255.255.255.255 -- IP:10.0.0.179/255.255.255.255 -- IP:10.0.0.180/255.255.255.255 -- IP:10.0.0.181/255.255.255.255 -- IP:10.0.0.182/255.255.255.255 -- IP:10.0.0.183/255.255.255.255 -- IP:10.0.0.184/255.255.255.255 -- IP:10.0.0.185/255.255.255.255 -- IP:10.0.0.186/255.255.255.255 -- IP:10.0.0.187/255.255.255.255 -- IP:10.0.0.188/255.255.255.255 -- IP:10.0.0.189/255.255.255.255 -- IP:10.0.0.190/255.255.255.255 -- IP:10.0.0.191/255.255.255.255 -- IP:10.0.0.192/255.255.255.255 -- IP:10.0.0.193/255.255.255.255 -- IP:10.0.0.194/255.255.255.255 -- IP:10.0.0.195/255.255.255.255 -- IP:10.0.0.196/255.255.255.255 -- IP:10.0.0.197/255.255.255.255 -- IP:10.0.0.198/255.255.255.255 -- IP:10.0.0.199/255.255.255.255 -- IP:10.0.0.200/255.255.255.255 -- IP:10.0.0.201/255.255.255.255 -- IP:10.0.0.202/255.255.255.255 -- IP:10.0.0.203/255.255.255.255 -- IP:10.0.0.204/255.255.255.255 -- IP:10.0.0.205/255.255.255.255 -- IP:10.0.0.206/255.255.255.255 -- IP:10.0.0.207/255.255.255.255 -- IP:10.0.0.208/255.255.255.255 -- IP:10.0.0.209/255.255.255.255 -- IP:10.0.0.210/255.255.255.255 -- IP:10.0.0.211/255.255.255.255 -- IP:10.0.0.212/255.255.255.255 -- IP:10.0.0.213/255.255.255.255 -- IP:10.0.0.214/255.255.255.255 -- IP:10.0.0.215/255.255.255.255 -- IP:10.0.0.216/255.255.255.255 -- IP:10.0.0.217/255.255.255.255 -- IP:10.0.0.218/255.255.255.255 -- IP:10.0.0.219/255.255.255.255 -- IP:10.0.0.220/255.255.255.255 -- IP:10.0.0.221/255.255.255.255 -- IP:10.0.0.222/255.255.255.255 -- IP:10.0.0.223/255.255.255.255 -- IP:10.0.0.224/255.255.255.255 -- IP:10.0.0.225/255.255.255.255 -- IP:10.0.0.226/255.255.255.255 -- IP:10.0.0.227/255.255.255.255 -- IP:10.0.0.228/255.255.255.255 -- IP:10.0.0.229/255.255.255.255 -- IP:10.0.0.230/255.255.255.255 -- IP:10.0.0.231/255.255.255.255 -- IP:10.0.0.232/255.255.255.255 -- IP:10.0.0.233/255.255.255.255 -- IP:10.0.0.234/255.255.255.255 -- IP:10.0.0.235/255.255.255.255 -- IP:10.0.0.236/255.255.255.255 -- IP:10.0.0.237/255.255.255.255 -- IP:10.0.0.238/255.255.255.255 -- IP:10.0.0.239/255.255.255.255 -- IP:10.0.0.240/255.255.255.255 -- IP:10.0.0.241/255.255.255.255 -- IP:10.0.0.242/255.255.255.255 -- IP:10.0.0.243/255.255.255.255 -- IP:10.0.0.244/255.255.255.255 -- IP:10.0.0.245/255.255.255.255 -- IP:10.0.0.246/255.255.255.255 -- IP:10.0.0.247/255.255.255.255 -- IP:10.0.0.248/255.255.255.255 -- IP:10.0.0.249/255.255.255.255 -- IP:10.0.0.250/255.255.255.255 -- IP:10.0.0.251/255.255.255.255 -- IP:10.0.0.252/255.255.255.255 -- IP:10.0.0.253/255.255.255.255 -- IP:10.0.0.254/255.255.255.255 -- IP:10.0.0.255/255.255.255.255 -- IP:10.0.1.0/255.255.255.255 -- IP:10.0.1.1/255.255.255.255 -- IP:10.0.1.2/255.255.255.255 -- IP:10.0.1.3/255.255.255.255 -- IP:10.0.1.4/255.255.255.255 -- IP:10.0.1.5/255.255.255.255 -- IP:10.0.1.6/255.255.255.255 -- IP:10.0.1.7/255.255.255.255 -- IP:10.0.1.8/255.255.255.255 -- IP:10.0.1.9/255.255.255.255 -- IP:10.0.1.10/255.255.255.255 -- IP:10.0.1.11/255.255.255.255 -- IP:10.0.1.12/255.255.255.255 -- IP:10.0.1.13/255.255.255.255 -- IP:10.0.1.14/255.255.255.255 -- IP:10.0.1.15/255.255.255.255 -- IP:10.0.1.16/255.255.255.255 -- IP:10.0.1.17/255.255.255.255 -- IP:10.0.1.18/255.255.255.255 -- IP:10.0.1.19/255.255.255.255 -- IP:10.0.1.20/255.255.255.255 -- IP:10.0.1.21/255.255.255.255 -- IP:10.0.1.22/255.255.255.255 -- IP:10.0.1.23/255.255.255.255 -- IP:10.0.1.24/255.255.255.255 -- IP:10.0.1.25/255.255.255.255 -- IP:10.0.1.26/255.255.255.255 -- IP:10.0.1.27/255.255.255.255 -- IP:10.0.1.28/255.255.255.255 -- IP:10.0.1.29/255.255.255.255 -- IP:10.0.1.30/255.255.255.255 -- IP:10.0.1.31/255.255.255.255 -- IP:10.0.1.32/255.255.255.255 -- IP:10.0.1.33/255.255.255.255 -- IP:10.0.1.34/255.255.255.255 -- IP:10.0.1.35/255.255.255.255 -- IP:10.0.1.36/255.255.255.255 -- IP:10.0.1.37/255.255.255.255 -- IP:10.0.1.38/255.255.255.255 -- IP:10.0.1.39/255.255.255.255 -- IP:10.0.1.40/255.255.255.255 -- IP:10.0.1.41/255.255.255.255 -- IP:10.0.1.42/255.255.255.255 -- IP:10.0.1.43/255.255.255.255 -- IP:10.0.1.44/255.255.255.255 -- IP:10.0.1.45/255.255.255.255 -- IP:10.0.1.46/255.255.255.255 -- IP:10.0.1.47/255.255.255.255 -- IP:10.0.1.48/255.255.255.255 -- IP:10.0.1.49/255.255.255.255 -- IP:10.0.1.50/255.255.255.255 -- IP:10.0.1.51/255.255.255.255 -- IP:10.0.1.52/255.255.255.255 -- IP:10.0.1.53/255.255.255.255 -- IP:10.0.1.54/255.255.255.255 -- IP:10.0.1.55/255.255.255.255 -- IP:10.0.1.56/255.255.255.255 -- IP:10.0.1.57/255.255.255.255 -- IP:10.0.1.58/255.255.255.255 -- IP:10.0.1.59/255.255.255.255 -- IP:10.0.1.60/255.255.255.255 -- IP:10.0.1.61/255.255.255.255 -- IP:10.0.1.62/255.255.255.255 -- IP:10.0.1.63/255.255.255.255 -- IP:10.0.1.64/255.255.255.255 -- IP:10.0.1.65/255.255.255.255 -- IP:10.0.1.66/255.255.255.255 -- IP:10.0.1.67/255.255.255.255 -- IP:10.0.1.68/255.255.255.255 -- IP:10.0.1.69/255.255.255.255 -- IP:10.0.1.70/255.255.255.255 -- IP:10.0.1.71/255.255.255.255 -- IP:10.0.1.72/255.255.255.255 -- IP:10.0.1.73/255.255.255.255 -- IP:10.0.1.74/255.255.255.255 -- IP:10.0.1.75/255.255.255.255 -- IP:10.0.1.76/255.255.255.255 -- IP:10.0.1.77/255.255.255.255 -- IP:10.0.1.78/255.255.255.255 -- IP:10.0.1.79/255.255.255.255 -- IP:10.0.1.80/255.255.255.255 -- IP:10.0.1.81/255.255.255.255 -- IP:10.0.1.82/255.255.255.255 -- IP:10.0.1.83/255.255.255.255 -- IP:10.0.1.84/255.255.255.255 -- IP:10.0.1.85/255.255.255.255 -- IP:10.0.1.86/255.255.255.255 -- IP:10.0.1.87/255.255.255.255 -- IP:10.0.1.88/255.255.255.255 -- IP:10.0.1.89/255.255.255.255 -- IP:10.0.1.90/255.255.255.255 -- IP:10.0.1.91/255.255.255.255 -- IP:10.0.1.92/255.255.255.255 -- IP:10.0.1.93/255.255.255.255 -- IP:10.0.1.94/255.255.255.255 -- IP:10.0.1.95/255.255.255.255 -- IP:10.0.1.96/255.255.255.255 -- IP:10.0.1.97/255.255.255.255 -- IP:10.0.1.98/255.255.255.255 -- IP:10.0.1.99/255.255.255.255 -- IP:10.0.1.100/255.255.255.255 -- IP:10.0.1.101/255.255.255.255 -- IP:10.0.1.102/255.255.255.255 -- IP:10.0.1.103/255.255.255.255 -- IP:10.0.1.104/255.255.255.255 -- IP:10.0.1.105/255.255.255.255 -- IP:10.0.1.106/255.255.255.255 -- IP:10.0.1.107/255.255.255.255 -- IP:10.0.1.108/255.255.255.255 -- IP:10.0.1.109/255.255.255.255 -- IP:10.0.1.110/255.255.255.255 -- IP:10.0.1.111/255.255.255.255 -- IP:10.0.1.112/255.255.255.255 -- IP:10.0.1.113/255.255.255.255 -- IP:10.0.1.114/255.255.255.255 -- IP:10.0.1.115/255.255.255.255 -- IP:10.0.1.116/255.255.255.255 -- IP:10.0.1.117/255.255.255.255 -- IP:10.0.1.118/255.255.255.255 -- IP:10.0.1.119/255.255.255.255 -- IP:10.0.1.120/255.255.255.255 -- IP:10.0.1.121/255.255.255.255 -- IP:10.0.1.122/255.255.255.255 -- IP:10.0.1.123/255.255.255.255 -- IP:10.0.1.124/255.255.255.255 -- IP:10.0.1.125/255.255.255.255 -- IP:10.0.1.126/255.255.255.255 -- IP:10.0.1.127/255.255.255.255 -- IP:10.0.1.128/255.255.255.255 -- IP:10.0.1.129/255.255.255.255 -- IP:10.0.1.130/255.255.255.255 -- IP:10.0.1.131/255.255.255.255 -- IP:10.0.1.132/255.255.255.255 -- IP:10.0.1.133/255.255.255.255 -- IP:10.0.1.134/255.255.255.255 -- IP:10.0.1.135/255.255.255.255 -- IP:10.0.1.136/255.255.255.255 -- IP:10.0.1.137/255.255.255.255 -- IP:10.0.1.138/255.255.255.255 -- IP:10.0.1.139/255.255.255.255 -- IP:10.0.1.140/255.255.255.255 -- IP:10.0.1.141/255.255.255.255 -- IP:10.0.1.142/255.255.255.255 -- IP:10.0.1.143/255.255.255.255 -- IP:10.0.1.144/255.255.255.255 -- IP:10.0.1.145/255.255.255.255 -- IP:10.0.1.146/255.255.255.255 -- IP:10.0.1.147/255.255.255.255 -- IP:10.0.1.148/255.255.255.255 -- IP:10.0.1.149/255.255.255.255 -- IP:10.0.1.150/255.255.255.255 -- IP:10.0.1.151/255.255.255.255 -- IP:10.0.1.152/255.255.255.255 -- IP:10.0.1.153/255.255.255.255 -- IP:10.0.1.154/255.255.255.255 -- IP:10.0.1.155/255.255.255.255 -- IP:10.0.1.156/255.255.255.255 -- IP:10.0.1.157/255.255.255.255 -- IP:10.0.1.158/255.255.255.255 -- IP:10.0.1.159/255.255.255.255 -- IP:10.0.1.160/255.255.255.255 -- IP:10.0.1.161/255.255.255.255 -- IP:10.0.1.162/255.255.255.255 -- IP:10.0.1.163/255.255.255.255 -- IP:10.0.1.164/255.255.255.255 -- IP:10.0.1.165/255.255.255.255 -- IP:10.0.1.166/255.255.255.255 -- IP:10.0.1.167/255.255.255.255 -- IP:10.0.1.168/255.255.255.255 -- IP:10.0.1.169/255.255.255.255 -- IP:10.0.1.170/255.255.255.255 -- IP:10.0.1.171/255.255.255.255 -- IP:10.0.1.172/255.255.255.255 -- IP:10.0.1.173/255.255.255.255 -- IP:10.0.1.174/255.255.255.255 -- IP:10.0.1.175/255.255.255.255 -- IP:10.0.1.176/255.255.255.255 -- IP:10.0.1.177/255.255.255.255 -- IP:10.0.1.178/255.255.255.255 -- IP:10.0.1.179/255.255.255.255 -- IP:10.0.1.180/255.255.255.255 -- IP:10.0.1.181/255.255.255.255 -- IP:10.0.1.182/255.255.255.255 -- IP:10.0.1.183/255.255.255.255 -- IP:10.0.1.184/255.255.255.255 -- IP:10.0.1.185/255.255.255.255 -- IP:10.0.1.186/255.255.255.255 -- IP:10.0.1.187/255.255.255.255 -- IP:10.0.1.188/255.255.255.255 -- IP:10.0.1.189/255.255.255.255 -- IP:10.0.1.190/255.255.255.255 -- IP:10.0.1.191/255.255.255.255 -- IP:10.0.1.192/255.255.255.255 -- IP:10.0.1.193/255.255.255.255 -- IP:10.0.1.194/255.255.255.255 -- IP:10.0.1.195/255.255.255.255 -- IP:10.0.1.196/255.255.255.255 -- IP:10.0.1.197/255.255.255.255 -- IP:10.0.1.198/255.255.255.255 -- IP:10.0.1.199/255.255.255.255 -- IP:10.0.1.200/255.255.255.255 -- IP:10.0.1.201/255.255.255.255 -- IP:10.0.1.202/255.255.255.255 -- IP:10.0.1.203/255.255.255.255 -- IP:10.0.1.204/255.255.255.255 -- IP:10.0.1.205/255.255.255.255 -- IP:10.0.1.206/255.255.255.255 -- IP:10.0.1.207/255.255.255.255 -- IP:10.0.1.208/255.255.255.255 -- IP:10.0.1.209/255.255.255.255 -- IP:10.0.1.210/255.255.255.255 -- IP:10.0.1.211/255.255.255.255 -- IP:10.0.1.212/255.255.255.255 -- IP:10.0.1.213/255.255.255.255 -- IP:10.0.1.214/255.255.255.255 -- IP:10.0.1.215/255.255.255.255 -- IP:10.0.1.216/255.255.255.255 -- IP:10.0.1.217/255.255.255.255 -- IP:10.0.1.218/255.255.255.255 -- IP:10.0.1.219/255.255.255.255 -- IP:10.0.1.220/255.255.255.255 -- IP:10.0.1.221/255.255.255.255 -- IP:10.0.1.222/255.255.255.255 -- IP:10.0.1.223/255.255.255.255 -- IP:10.0.1.224/255.255.255.255 -- IP:10.0.1.225/255.255.255.255 -- IP:10.0.1.226/255.255.255.255 -- IP:10.0.1.227/255.255.255.255 -- IP:10.0.1.228/255.255.255.255 -- IP:10.0.1.229/255.255.255.255 -- IP:10.0.1.230/255.255.255.255 -- IP:10.0.1.231/255.255.255.255 -- IP:10.0.1.232/255.255.255.255 -- IP:10.0.1.233/255.255.255.255 -- IP:10.0.1.234/255.255.255.255 -- IP:10.0.1.235/255.255.255.255 -- IP:10.0.1.236/255.255.255.255 -- IP:10.0.1.237/255.255.255.255 -- IP:10.0.1.238/255.255.255.255 -- IP:10.0.1.239/255.255.255.255 -- IP:10.0.1.240/255.255.255.255 -- IP:10.0.1.241/255.255.255.255 -- IP:10.0.1.242/255.255.255.255 -- IP:10.0.1.243/255.255.255.255 -- IP:10.0.1.244/255.255.255.255 -- IP:10.0.1.245/255.255.255.255 -- IP:10.0.1.246/255.255.255.255 -- IP:10.0.1.247/255.255.255.255 -- IP:10.0.1.248/255.255.255.255 -- IP:10.0.1.249/255.255.255.255 -- IP:10.0.1.250/255.255.255.255 -- IP:10.0.1.251/255.255.255.255 -- IP:10.0.1.252/255.255.255.255 -- IP:10.0.1.253/255.255.255.255 -- IP:10.0.1.254/255.255.255.255 -- IP:10.0.1.255/255.255.255.255 -- IP:10.0.2.0/255.255.255.255 -- IP:10.0.2.1/255.255.255.255 -- IP:10.0.2.2/255.255.255.255 -- IP:10.0.2.3/255.255.255.255 -- IP:10.0.2.4/255.255.255.255 -- IP:10.0.2.5/255.255.255.255 -- IP:10.0.2.6/255.255.255.255 -- IP:10.0.2.7/255.255.255.255 -- IP:10.0.2.8/255.255.255.255 -- IP:10.0.2.9/255.255.255.255 -- IP:10.0.2.10/255.255.255.255 -- IP:10.0.2.11/255.255.255.255 -- IP:10.0.2.12/255.255.255.255 -- IP:10.0.2.13/255.255.255.255 -- IP:10.0.2.14/255.255.255.255 -- IP:10.0.2.15/255.255.255.255 -- IP:10.0.2.16/255.255.255.255 -- IP:10.0.2.17/255.255.255.255 -- IP:10.0.2.18/255.255.255.255 -- IP:10.0.2.19/255.255.255.255 -- IP:10.0.2.20/255.255.255.255 -- IP:10.0.2.21/255.255.255.255 -- IP:10.0.2.22/255.255.255.255 -- IP:10.0.2.23/255.255.255.255 -- IP:10.0.2.24/255.255.255.255 -- IP:10.0.2.25/255.255.255.255 -- IP:10.0.2.26/255.255.255.255 -- IP:10.0.2.27/255.255.255.255 -- IP:10.0.2.28/255.255.255.255 -- IP:10.0.2.29/255.255.255.255 -- IP:10.0.2.30/255.255.255.255 -- IP:10.0.2.31/255.255.255.255 -- IP:10.0.2.32/255.255.255.255 -- IP:10.0.2.33/255.255.255.255 -- IP:10.0.2.34/255.255.255.255 -- IP:10.0.2.35/255.255.255.255 -- IP:10.0.2.36/255.255.255.255 -- IP:10.0.2.37/255.255.255.255 -- IP:10.0.2.38/255.255.255.255 -- IP:10.0.2.39/255.255.255.255 -- IP:10.0.2.40/255.255.255.255 -- IP:10.0.2.41/255.255.255.255 -- IP:10.0.2.42/255.255.255.255 -- IP:10.0.2.43/255.255.255.255 -- IP:10.0.2.44/255.255.255.255 -- IP:10.0.2.45/255.255.255.255 -- IP:10.0.2.46/255.255.255.255 -- IP:10.0.2.47/255.255.255.255 -- IP:10.0.2.48/255.255.255.255 -- IP:10.0.2.49/255.255.255.255 -- IP:10.0.2.50/255.255.255.255 -- IP:10.0.2.51/255.255.255.255 -- IP:10.0.2.52/255.255.255.255 -- IP:10.0.2.53/255.255.255.255 -- IP:10.0.2.54/255.255.255.255 -- IP:10.0.2.55/255.255.255.255 -- IP:10.0.2.56/255.255.255.255 -- IP:10.0.2.57/255.255.255.255 -- IP:10.0.2.58/255.255.255.255 -- IP:10.0.2.59/255.255.255.255 -- IP:10.0.2.60/255.255.255.255 -- IP:10.0.2.61/255.255.255.255 -- IP:10.0.2.62/255.255.255.255 -- IP:10.0.2.63/255.255.255.255 -- IP:10.0.2.64/255.255.255.255 -- IP:10.0.2.65/255.255.255.255 -- IP:10.0.2.66/255.255.255.255 -- IP:10.0.2.67/255.255.255.255 -- IP:10.0.2.68/255.255.255.255 -- IP:10.0.2.69/255.255.255.255 -- IP:10.0.2.70/255.255.255.255 -- IP:10.0.2.71/255.255.255.255 -- IP:10.0.2.72/255.255.255.255 -- IP:10.0.2.73/255.255.255.255 -- IP:10.0.2.74/255.255.255.255 -- IP:10.0.2.75/255.255.255.255 -- IP:10.0.2.76/255.255.255.255 -- IP:10.0.2.77/255.255.255.255 -- IP:10.0.2.78/255.255.255.255 -- IP:10.0.2.79/255.255.255.255 -- IP:10.0.2.80/255.255.255.255 -- IP:10.0.2.81/255.255.255.255 -- IP:10.0.2.82/255.255.255.255 -- IP:10.0.2.83/255.255.255.255 -- IP:10.0.2.84/255.255.255.255 -- IP:10.0.2.85/255.255.255.255 -- IP:10.0.2.86/255.255.255.255 -- IP:10.0.2.87/255.255.255.255 -- IP:10.0.2.88/255.255.255.255 -- IP:10.0.2.89/255.255.255.255 -- IP:10.0.2.90/255.255.255.255 -- IP:10.0.2.91/255.255.255.255 -- IP:10.0.2.92/255.255.255.255 -- IP:10.0.2.93/255.255.255.255 -- IP:10.0.2.94/255.255.255.255 -- IP:10.0.2.95/255.255.255.255 -- IP:10.0.2.96/255.255.255.255 -- IP:10.0.2.97/255.255.255.255 -- IP:10.0.2.98/255.255.255.255 -- IP:10.0.2.99/255.255.255.255 -- IP:10.0.2.100/255.255.255.255 -- IP:10.0.2.101/255.255.255.255 -- IP:10.0.2.102/255.255.255.255 -- IP:10.0.2.103/255.255.255.255 -- IP:10.0.2.104/255.255.255.255 -- IP:10.0.2.105/255.255.255.255 -- IP:10.0.2.106/255.255.255.255 -- IP:10.0.2.107/255.255.255.255 -- IP:10.0.2.108/255.255.255.255 -- IP:10.0.2.109/255.255.255.255 -- IP:10.0.2.110/255.255.255.255 -- IP:10.0.2.111/255.255.255.255 -- IP:10.0.2.112/255.255.255.255 -- IP:10.0.2.113/255.255.255.255 -- IP:10.0.2.114/255.255.255.255 -- IP:10.0.2.115/255.255.255.255 -- IP:10.0.2.116/255.255.255.255 -- IP:10.0.2.117/255.255.255.255 -- IP:10.0.2.118/255.255.255.255 -- IP:10.0.2.119/255.255.255.255 -- IP:10.0.2.120/255.255.255.255 -- IP:10.0.2.121/255.255.255.255 -- IP:10.0.2.122/255.255.255.255 -- IP:10.0.2.123/255.255.255.255 -- IP:10.0.2.124/255.255.255.255 -- IP:10.0.2.125/255.255.255.255 -- IP:10.0.2.126/255.255.255.255 -- IP:10.0.2.127/255.255.255.255 -- IP:10.0.2.128/255.255.255.255 -- IP:10.0.2.129/255.255.255.255 -- IP:10.0.2.130/255.255.255.255 -- IP:10.0.2.131/255.255.255.255 -- IP:10.0.2.132/255.255.255.255 -- IP:10.0.2.133/255.255.255.255 -- IP:10.0.2.134/255.255.255.255 -- IP:10.0.2.135/255.255.255.255 -- IP:10.0.2.136/255.255.255.255 -- IP:10.0.2.137/255.255.255.255 -- IP:10.0.2.138/255.255.255.255 -- IP:10.0.2.139/255.255.255.255 -- IP:10.0.2.140/255.255.255.255 -- IP:10.0.2.141/255.255.255.255 -- IP:10.0.2.142/255.255.255.255 -- IP:10.0.2.143/255.255.255.255 -- IP:10.0.2.144/255.255.255.255 -- IP:10.0.2.145/255.255.255.255 -- IP:10.0.2.146/255.255.255.255 -- IP:10.0.2.147/255.255.255.255 -- IP:10.0.2.148/255.255.255.255 -- IP:10.0.2.149/255.255.255.255 -- IP:10.0.2.150/255.255.255.255 -- IP:10.0.2.151/255.255.255.255 -- IP:10.0.2.152/255.255.255.255 -- IP:10.0.2.153/255.255.255.255 -- IP:10.0.2.154/255.255.255.255 -- IP:10.0.2.155/255.255.255.255 -- IP:10.0.2.156/255.255.255.255 -- IP:10.0.2.157/255.255.255.255 -- IP:10.0.2.158/255.255.255.255 -- IP:10.0.2.159/255.255.255.255 -- IP:10.0.2.160/255.255.255.255 -- IP:10.0.2.161/255.255.255.255 -- IP:10.0.2.162/255.255.255.255 -- IP:10.0.2.163/255.255.255.255 -- IP:10.0.2.164/255.255.255.255 -- IP:10.0.2.165/255.255.255.255 -- IP:10.0.2.166/255.255.255.255 -- IP:10.0.2.167/255.255.255.255 -- IP:10.0.2.168/255.255.255.255 -- IP:10.0.2.169/255.255.255.255 -- IP:10.0.2.170/255.255.255.255 -- IP:10.0.2.171/255.255.255.255 -- IP:10.0.2.172/255.255.255.255 -- IP:10.0.2.173/255.255.255.255 -- IP:10.0.2.174/255.255.255.255 -- IP:10.0.2.175/255.255.255.255 -- IP:10.0.2.176/255.255.255.255 -- IP:10.0.2.177/255.255.255.255 -- IP:10.0.2.178/255.255.255.255 -- IP:10.0.2.179/255.255.255.255 -- IP:10.0.2.180/255.255.255.255 -- IP:10.0.2.181/255.255.255.255 -- IP:10.0.2.182/255.255.255.255 -- IP:10.0.2.183/255.255.255.255 -- IP:10.0.2.184/255.255.255.255 -- IP:10.0.2.185/255.255.255.255 -- IP:10.0.2.186/255.255.255.255 -- IP:10.0.2.187/255.255.255.255 -- IP:10.0.2.188/255.255.255.255 -- IP:10.0.2.189/255.255.255.255 -- IP:10.0.2.190/255.255.255.255 -- IP:10.0.2.191/255.255.255.255 -- IP:10.0.2.192/255.255.255.255 -- IP:10.0.2.193/255.255.255.255 -- IP:10.0.2.194/255.255.255.255 -- IP:10.0.2.195/255.255.255.255 -- IP:10.0.2.196/255.255.255.255 -- IP:10.0.2.197/255.255.255.255 -- IP:10.0.2.198/255.255.255.255 -- IP:10.0.2.199/255.255.255.255 -- IP:10.0.2.200/255.255.255.255 -- IP:10.0.2.201/255.255.255.255 -- IP:10.0.2.202/255.255.255.255 -- IP:10.0.2.203/255.255.255.255 -- IP:10.0.2.204/255.255.255.255 -- IP:10.0.2.205/255.255.255.255 -- IP:10.0.2.206/255.255.255.255 -- IP:10.0.2.207/255.255.255.255 -- IP:10.0.2.208/255.255.255.255 -- IP:10.0.2.209/255.255.255.255 -- IP:10.0.2.210/255.255.255.255 -- IP:10.0.2.211/255.255.255.255 -- IP:10.0.2.212/255.255.255.255 -- IP:10.0.2.213/255.255.255.255 -- IP:10.0.2.214/255.255.255.255 -- IP:10.0.2.215/255.255.255.255 -- IP:10.0.2.216/255.255.255.255 -- IP:10.0.2.217/255.255.255.255 -- IP:10.0.2.218/255.255.255.255 -- IP:10.0.2.219/255.255.255.255 -- IP:10.0.2.220/255.255.255.255 -- IP:10.0.2.221/255.255.255.255 -- IP:10.0.2.222/255.255.255.255 -- IP:10.0.2.223/255.255.255.255 -- IP:10.0.2.224/255.255.255.255 -- IP:10.0.2.225/255.255.255.255 -- IP:10.0.2.226/255.255.255.255 -- IP:10.0.2.227/255.255.255.255 -- IP:10.0.2.228/255.255.255.255 -- IP:10.0.2.229/255.255.255.255 -- IP:10.0.2.230/255.255.255.255 -- IP:10.0.2.231/255.255.255.255 -- IP:10.0.2.232/255.255.255.255 -- IP:10.0.2.233/255.255.255.255 -- IP:10.0.2.234/255.255.255.255 -- IP:10.0.2.235/255.255.255.255 -- IP:10.0.2.236/255.255.255.255 -- IP:10.0.2.237/255.255.255.255 -- IP:10.0.2.238/255.255.255.255 -- IP:10.0.2.239/255.255.255.255 -- IP:10.0.2.240/255.255.255.255 -- IP:10.0.2.241/255.255.255.255 -- IP:10.0.2.242/255.255.255.255 -- IP:10.0.2.243/255.255.255.255 -- IP:10.0.2.244/255.255.255.255 -- IP:10.0.2.245/255.255.255.255 -- IP:10.0.2.246/255.255.255.255 -- IP:10.0.2.247/255.255.255.255 -- IP:10.0.2.248/255.255.255.255 -- IP:10.0.2.249/255.255.255.255 -- IP:10.0.2.250/255.255.255.255 -- IP:10.0.2.251/255.255.255.255 -- IP:10.0.2.252/255.255.255.255 -- IP:10.0.2.253/255.255.255.255 -- IP:10.0.2.254/255.255.255.255 -- IP:10.0.2.255/255.255.255.255 -- IP:10.0.3.0/255.255.255.255 -- IP:10.0.3.1/255.255.255.255 -- IP:10.0.3.2/255.255.255.255 -- IP:10.0.3.3/255.255.255.255 -- IP:10.0.3.4/255.255.255.255 -- IP:10.0.3.5/255.255.255.255 -- IP:10.0.3.6/255.255.255.255 -- IP:10.0.3.7/255.255.255.255 -- IP:10.0.3.8/255.255.255.255 -- IP:10.0.3.9/255.255.255.255 -- IP:10.0.3.10/255.255.255.255 -- IP:10.0.3.11/255.255.255.255 -- IP:10.0.3.12/255.255.255.255 -- IP:10.0.3.13/255.255.255.255 -- IP:10.0.3.14/255.255.255.255 -- IP:10.0.3.15/255.255.255.255 -- IP:10.0.3.16/255.255.255.255 -- IP:10.0.3.17/255.255.255.255 -- IP:10.0.3.18/255.255.255.255 -- IP:10.0.3.19/255.255.255.255 -- IP:10.0.3.20/255.255.255.255 -- IP:10.0.3.21/255.255.255.255 -- IP:10.0.3.22/255.255.255.255 -- IP:10.0.3.23/255.255.255.255 -- IP:10.0.3.24/255.255.255.255 -- IP:10.0.3.25/255.255.255.255 -- IP:10.0.3.26/255.255.255.255 -- IP:10.0.3.27/255.255.255.255 -- IP:10.0.3.28/255.255.255.255 -- IP:10.0.3.29/255.255.255.255 -- IP:10.0.3.30/255.255.255.255 -- IP:10.0.3.31/255.255.255.255 -- IP:10.0.3.32/255.255.255.255 -- IP:10.0.3.33/255.255.255.255 -- IP:10.0.3.34/255.255.255.255 -- IP:10.0.3.35/255.255.255.255 -- IP:10.0.3.36/255.255.255.255 -- IP:10.0.3.37/255.255.255.255 -- IP:10.0.3.38/255.255.255.255 -- IP:10.0.3.39/255.255.255.255 -- IP:10.0.3.40/255.255.255.255 -- IP:10.0.3.41/255.255.255.255 -- IP:10.0.3.42/255.255.255.255 -- IP:10.0.3.43/255.255.255.255 -- IP:10.0.3.44/255.255.255.255 -- IP:10.0.3.45/255.255.255.255 -- IP:10.0.3.46/255.255.255.255 -- IP:10.0.3.47/255.255.255.255 -- IP:10.0.3.48/255.255.255.255 -- IP:10.0.3.49/255.255.255.255 -- IP:10.0.3.50/255.255.255.255 -- IP:10.0.3.51/255.255.255.255 -- IP:10.0.3.52/255.255.255.255 -- IP:10.0.3.53/255.255.255.255 -- IP:10.0.3.54/255.255.255.255 -- IP:10.0.3.55/255.255.255.255 -- IP:10.0.3.56/255.255.255.255 -- IP:10.0.3.57/255.255.255.255 -- IP:10.0.3.58/255.255.255.255 -- IP:10.0.3.59/255.255.255.255 -- IP:10.0.3.60/255.255.255.255 -- IP:10.0.3.61/255.255.255.255 -- IP:10.0.3.62/255.255.255.255 -- IP:10.0.3.63/255.255.255.255 -- IP:10.0.3.64/255.255.255.255 -- IP:10.0.3.65/255.255.255.255 -- IP:10.0.3.66/255.255.255.255 -- IP:10.0.3.67/255.255.255.255 -- IP:10.0.3.68/255.255.255.255 -- IP:10.0.3.69/255.255.255.255 -- IP:10.0.3.70/255.255.255.255 -- IP:10.0.3.71/255.255.255.255 -- IP:10.0.3.72/255.255.255.255 -- IP:10.0.3.73/255.255.255.255 -- IP:10.0.3.74/255.255.255.255 -- IP:10.0.3.75/255.255.255.255 -- IP:10.0.3.76/255.255.255.255 -- IP:10.0.3.77/255.255.255.255 -- IP:10.0.3.78/255.255.255.255 -- IP:10.0.3.79/255.255.255.255 -- IP:10.0.3.80/255.255.255.255 -- IP:10.0.3.81/255.255.255.255 -- IP:10.0.3.82/255.255.255.255 -- IP:10.0.3.83/255.255.255.255 -- IP:10.0.3.84/255.255.255.255 -- IP:10.0.3.85/255.255.255.255 -- IP:10.0.3.86/255.255.255.255 -- IP:10.0.3.87/255.255.255.255 -- IP:10.0.3.88/255.255.255.255 -- IP:10.0.3.89/255.255.255.255 -- IP:10.0.3.90/255.255.255.255 -- IP:10.0.3.91/255.255.255.255 -- IP:10.0.3.92/255.255.255.255 -- IP:10.0.3.93/255.255.255.255 -- IP:10.0.3.94/255.255.255.255 -- IP:10.0.3.95/255.255.255.255 -- IP:10.0.3.96/255.255.255.255 -- IP:10.0.3.97/255.255.255.255 -- IP:10.0.3.98/255.255.255.255 -- IP:10.0.3.99/255.255.255.255 -- IP:10.0.3.100/255.255.255.255 -- IP:10.0.3.101/255.255.255.255 -- IP:10.0.3.102/255.255.255.255 -- IP:10.0.3.103/255.255.255.255 -- IP:10.0.3.104/255.255.255.255 -- IP:10.0.3.105/255.255.255.255 -- IP:10.0.3.106/255.255.255.255 -- IP:10.0.3.107/255.255.255.255 -- IP:10.0.3.108/255.255.255.255 -- IP:10.0.3.109/255.255.255.255 -- IP:10.0.3.110/255.255.255.255 -- IP:10.0.3.111/255.255.255.255 -- IP:10.0.3.112/255.255.255.255 -- IP:10.0.3.113/255.255.255.255 -- IP:10.0.3.114/255.255.255.255 -- IP:10.0.3.115/255.255.255.255 -- IP:10.0.3.116/255.255.255.255 -- IP:10.0.3.117/255.255.255.255 -- IP:10.0.3.118/255.255.255.255 -- IP:10.0.3.119/255.255.255.255 -- IP:10.0.3.120/255.255.255.255 -- IP:10.0.3.121/255.255.255.255 -- IP:10.0.3.122/255.255.255.255 -- IP:10.0.3.123/255.255.255.255 -- IP:10.0.3.124/255.255.255.255 -- IP:10.0.3.125/255.255.255.255 -- IP:10.0.3.126/255.255.255.255 -- IP:10.0.3.127/255.255.255.255 -- IP:10.0.3.128/255.255.255.255 -- IP:10.0.3.129/255.255.255.255 -- IP:10.0.3.130/255.255.255.255 -- IP:10.0.3.131/255.255.255.255 -- IP:10.0.3.132/255.255.255.255 -- IP:10.0.3.133/255.255.255.255 -- IP:10.0.3.134/255.255.255.255 -- IP:10.0.3.135/255.255.255.255 -- IP:10.0.3.136/255.255.255.255 -- IP:10.0.3.137/255.255.255.255 -- IP:10.0.3.138/255.255.255.255 -- IP:10.0.3.139/255.255.255.255 -- IP:10.0.3.140/255.255.255.255 -- IP:10.0.3.141/255.255.255.255 -- IP:10.0.3.142/255.255.255.255 -- IP:10.0.3.143/255.255.255.255 -- IP:10.0.3.144/255.255.255.255 -- IP:10.0.3.145/255.255.255.255 -- IP:10.0.3.146/255.255.255.255 -- IP:10.0.3.147/255.255.255.255 -- IP:10.0.3.148/255.255.255.255 -- IP:10.0.3.149/255.255.255.255 -- IP:10.0.3.150/255.255.255.255 -- IP:10.0.3.151/255.255.255.255 -- IP:10.0.3.152/255.255.255.255 -- IP:10.0.3.153/255.255.255.255 -- IP:10.0.3.154/255.255.255.255 -- IP:10.0.3.155/255.255.255.255 -- IP:10.0.3.156/255.255.255.255 -- IP:10.0.3.157/255.255.255.255 -- IP:10.0.3.158/255.255.255.255 -- IP:10.0.3.159/255.255.255.255 -- IP:10.0.3.160/255.255.255.255 -- IP:10.0.3.161/255.255.255.255 -- IP:10.0.3.162/255.255.255.255 -- IP:10.0.3.163/255.255.255.255 -- IP:10.0.3.164/255.255.255.255 -- IP:10.0.3.165/255.255.255.255 -- IP:10.0.3.166/255.255.255.255 -- IP:10.0.3.167/255.255.255.255 -- IP:10.0.3.168/255.255.255.255 -- IP:10.0.3.169/255.255.255.255 -- IP:10.0.3.170/255.255.255.255 -- IP:10.0.3.171/255.255.255.255 -- IP:10.0.3.172/255.255.255.255 -- IP:10.0.3.173/255.255.255.255 -- IP:10.0.3.174/255.255.255.255 -- IP:10.0.3.175/255.255.255.255 -- IP:10.0.3.176/255.255.255.255 -- IP:10.0.3.177/255.255.255.255 -- IP:10.0.3.178/255.255.255.255 -- IP:10.0.3.179/255.255.255.255 -- IP:10.0.3.180/255.255.255.255 -- IP:10.0.3.181/255.255.255.255 -- IP:10.0.3.182/255.255.255.255 -- IP:10.0.3.183/255.255.255.255 -- IP:10.0.3.184/255.255.255.255 -- IP:10.0.3.185/255.255.255.255 -- IP:10.0.3.186/255.255.255.255 -- IP:10.0.3.187/255.255.255.255 -- IP:10.0.3.188/255.255.255.255 -- IP:10.0.3.189/255.255.255.255 -- IP:10.0.3.190/255.255.255.255 -- IP:10.0.3.191/255.255.255.255 -- IP:10.0.3.192/255.255.255.255 -- IP:10.0.3.193/255.255.255.255 -- IP:10.0.3.194/255.255.255.255 -- IP:10.0.3.195/255.255.255.255 -- IP:10.0.3.196/255.255.255.255 -- IP:10.0.3.197/255.255.255.255 -- IP:10.0.3.198/255.255.255.255 -- IP:10.0.3.199/255.255.255.255 -- IP:10.0.3.200/255.255.255.255 -- IP:10.0.3.201/255.255.255.255 -- IP:10.0.3.202/255.255.255.255 -- IP:10.0.3.203/255.255.255.255 -- IP:10.0.3.204/255.255.255.255 -- IP:10.0.3.205/255.255.255.255 -- IP:10.0.3.206/255.255.255.255 -- IP:10.0.3.207/255.255.255.255 -- IP:10.0.3.208/255.255.255.255 -- IP:10.0.3.209/255.255.255.255 -- IP:10.0.3.210/255.255.255.255 -- IP:10.0.3.211/255.255.255.255 -- IP:10.0.3.212/255.255.255.255 -- IP:10.0.3.213/255.255.255.255 -- IP:10.0.3.214/255.255.255.255 -- IP:10.0.3.215/255.255.255.255 -- IP:10.0.3.216/255.255.255.255 -- IP:10.0.3.217/255.255.255.255 -- IP:10.0.3.218/255.255.255.255 -- IP:10.0.3.219/255.255.255.255 -- IP:10.0.3.220/255.255.255.255 -- IP:10.0.3.221/255.255.255.255 -- IP:10.0.3.222/255.255.255.255 -- IP:10.0.3.223/255.255.255.255 -- IP:10.0.3.224/255.255.255.255 -- IP:10.0.3.225/255.255.255.255 -- IP:10.0.3.226/255.255.255.255 -- IP:10.0.3.227/255.255.255.255 -- IP:10.0.3.228/255.255.255.255 -- IP:10.0.3.229/255.255.255.255 -- IP:10.0.3.230/255.255.255.255 -- IP:10.0.3.231/255.255.255.255 -- IP:10.0.3.232/255.255.255.255 -- IP:10.0.3.233/255.255.255.255 -- IP:10.0.3.234/255.255.255.255 -- IP:10.0.3.235/255.255.255.255 -- IP:10.0.3.236/255.255.255.255 -- IP:10.0.3.237/255.255.255.255 -- IP:10.0.3.238/255.255.255.255 -- IP:10.0.3.239/255.255.255.255 -- IP:10.0.3.240/255.255.255.255 -- IP:10.0.3.241/255.255.255.255 -- IP:10.0.3.242/255.255.255.255 -- IP:10.0.3.243/255.255.255.255 -- IP:10.0.3.244/255.255.255.255 -- IP:10.0.3.245/255.255.255.255 -- IP:10.0.3.246/255.255.255.255 -- IP:10.0.3.247/255.255.255.255 -- IP:10.0.3.248/255.255.255.255 -- IP:10.0.3.249/255.255.255.255 -- IP:10.0.3.250/255.255.255.255 -- IP:10.0.3.251/255.255.255.255 -- IP:10.0.3.252/255.255.255.255 -- IP:10.0.3.253/255.255.255.255 -- IP:10.0.3.254/255.255.255.255 -- IP:10.0.3.255/255.255.255.255 -- IP:10.0.4.0/255.255.255.255 -- DirName:CN = t0 -- DirName:CN = t1 -- DirName:CN = t2 -- DirName:CN = t3 -- DirName:CN = t4 -- DirName:CN = t5 -- DirName:CN = t6 -- DirName:CN = t7 -- DirName:CN = t8 -- DirName:CN = t9 -- DirName:CN = t10 -- DirName:CN = t11 -- DirName:CN = t12 -- DirName:CN = t13 -- DirName:CN = t14 -- DirName:CN = t15 -- DirName:CN = t16 -- DirName:CN = t17 -- DirName:CN = t18 -- DirName:CN = t19 -- DirName:CN = t20 -- DirName:CN = t21 -- DirName:CN = t22 -- DirName:CN = t23 -- DirName:CN = t24 -- DirName:CN = t25 -- DirName:CN = t26 -- DirName:CN = t27 -- DirName:CN = t28 -- DirName:CN = t29 -- DirName:CN = t30 -- DirName:CN = t31 -- DirName:CN = t32 -- DirName:CN = t33 -- DirName:CN = t34 -- DirName:CN = t35 -- DirName:CN = t36 -- DirName:CN = t37 -- DirName:CN = t38 -- DirName:CN = t39 -- DirName:CN = t40 -- DirName:CN = t41 -- DirName:CN = t42 -- DirName:CN = t43 -- DirName:CN = t44 -- DirName:CN = t45 -- DirName:CN = t46 -- DirName:CN = t47 -- DirName:CN = t48 -- DirName:CN = t49 -- DirName:CN = t50 -- DirName:CN = t51 -- DirName:CN = t52 -- DirName:CN = t53 -- DirName:CN = t54 -- DirName:CN = t55 -- DirName:CN = t56 -- DirName:CN = t57 -- DirName:CN = t58 -- DirName:CN = t59 -- DirName:CN = t60 -- DirName:CN = t61 -- DirName:CN = t62 -- DirName:CN = t63 -- DirName:CN = t64 -- DirName:CN = t65 -- DirName:CN = t66 -- DirName:CN = t67 -- DirName:CN = t68 -- DirName:CN = t69 -- DirName:CN = t70 -- DirName:CN = t71 -- DirName:CN = t72 -- DirName:CN = t73 -- DirName:CN = t74 -- DirName:CN = t75 -- DirName:CN = t76 -- DirName:CN = t77 -- DirName:CN = t78 -- DirName:CN = t79 -- DirName:CN = t80 -- DirName:CN = t81 -- DirName:CN = t82 -- DirName:CN = t83 -- DirName:CN = t84 -- DirName:CN = t85 -- DirName:CN = t86 -- DirName:CN = t87 -- DirName:CN = t88 -- DirName:CN = t89 -- DirName:CN = t90 -- DirName:CN = t91 -- DirName:CN = t92 -- DirName:CN = t93 -- DirName:CN = t94 -- DirName:CN = t95 -- DirName:CN = t96 -- DirName:CN = t97 -- DirName:CN = t98 -- DirName:CN = t99 -- DirName:CN = t100 -- DirName:CN = t101 -- DirName:CN = t102 -- DirName:CN = t103 -- DirName:CN = t104 -- DirName:CN = t105 -- DirName:CN = t106 -- DirName:CN = t107 -- DirName:CN = t108 -- DirName:CN = t109 -- DirName:CN = t110 -- DirName:CN = t111 -- DirName:CN = t112 -- DirName:CN = t113 -- DirName:CN = t114 -- DirName:CN = t115 -- DirName:CN = t116 -- DirName:CN = t117 -- DirName:CN = t118 -- DirName:CN = t119 -- DirName:CN = t120 -- DirName:CN = t121 -- DirName:CN = t122 -- DirName:CN = t123 -- DirName:CN = t124 -- DirName:CN = t125 -- DirName:CN = t126 -- DirName:CN = t127 -- DirName:CN = t128 -- DirName:CN = t129 -- DirName:CN = t130 -- DirName:CN = t131 -- DirName:CN = t132 -- DirName:CN = t133 -- DirName:CN = t134 -- DirName:CN = t135 -- DirName:CN = t136 -- DirName:CN = t137 -- DirName:CN = t138 -- DirName:CN = t139 -- DirName:CN = t140 -- DirName:CN = t141 -- DirName:CN = t142 -- DirName:CN = t143 -- DirName:CN = t144 -- DirName:CN = t145 -- DirName:CN = t146 -- DirName:CN = t147 -- DirName:CN = t148 -- DirName:CN = t149 -- DirName:CN = t150 -- DirName:CN = t151 -- DirName:CN = t152 -- DirName:CN = t153 -- DirName:CN = t154 -- DirName:CN = t155 -- DirName:CN = t156 -- DirName:CN = t157 -- DirName:CN = t158 -- DirName:CN = t159 -- DirName:CN = t160 -- DirName:CN = t161 -- DirName:CN = t162 -- DirName:CN = t163 -- DirName:CN = t164 -- DirName:CN = t165 -- DirName:CN = t166 -- DirName:CN = t167 -- DirName:CN = t168 -- DirName:CN = t169 -- DirName:CN = t170 -- DirName:CN = t171 -- DirName:CN = t172 -- DirName:CN = t173 -- DirName:CN = t174 -- DirName:CN = t175 -- DirName:CN = t176 -- DirName:CN = t177 -- DirName:CN = t178 -- DirName:CN = t179 -- DirName:CN = t180 -- DirName:CN = t181 -- DirName:CN = t182 -- DirName:CN = t183 -- DirName:CN = t184 -- DirName:CN = t185 -- DirName:CN = t186 -- DirName:CN = t187 -- DirName:CN = t188 -- DirName:CN = t189 -- DirName:CN = t190 -- DirName:CN = t191 -- DirName:CN = t192 -- DirName:CN = t193 -- DirName:CN = t194 -- DirName:CN = t195 -- DirName:CN = t196 -- DirName:CN = t197 -- DirName:CN = t198 -- DirName:CN = t199 -- DirName:CN = t200 -- DirName:CN = t201 -- DirName:CN = t202 -- DirName:CN = t203 -- DirName:CN = t204 -- DirName:CN = t205 -- DirName:CN = t206 -- DirName:CN = t207 -- DirName:CN = t208 -- DirName:CN = t209 -- DirName:CN = t210 -- DirName:CN = t211 -- DirName:CN = t212 -- DirName:CN = t213 -- DirName:CN = t214 -- DirName:CN = t215 -- DirName:CN = t216 -- DirName:CN = t217 -- DirName:CN = t218 -- DirName:CN = t219 -- DirName:CN = t220 -- DirName:CN = t221 -- DirName:CN = t222 -- DirName:CN = t223 -- DirName:CN = t224 -- DirName:CN = t225 -- DirName:CN = t226 -- DirName:CN = t227 -- DirName:CN = t228 -- DirName:CN = t229 -- DirName:CN = t230 -- DirName:CN = t231 -- DirName:CN = t232 -- DirName:CN = t233 -- DirName:CN = t234 -- DirName:CN = t235 -- DirName:CN = t236 -- DirName:CN = t237 -- DirName:CN = t238 -- DirName:CN = t239 -- DirName:CN = t240 -- DirName:CN = t241 -- DirName:CN = t242 -- DirName:CN = t243 -- DirName:CN = t244 -- DirName:CN = t245 -- DirName:CN = t246 -- DirName:CN = t247 -- DirName:CN = t248 -- DirName:CN = t249 -- DirName:CN = t250 -- DirName:CN = t251 -- DirName:CN = t252 -- DirName:CN = t253 -- DirName:CN = t254 -- DirName:CN = t255 -- DirName:CN = t256 -- DirName:CN = t257 -- DirName:CN = t258 -- DirName:CN = t259 -- DirName:CN = t260 -- DirName:CN = t261 -- DirName:CN = t262 -- DirName:CN = t263 -- DirName:CN = t264 -- DirName:CN = t265 -- DirName:CN = t266 -- DirName:CN = t267 -- DirName:CN = t268 -- DirName:CN = t269 -- DirName:CN = t270 -- DirName:CN = t271 -- DirName:CN = t272 -- DirName:CN = t273 -- DirName:CN = t274 -- DirName:CN = t275 -- DirName:CN = t276 -- DirName:CN = t277 -- DirName:CN = t278 -- DirName:CN = t279 -- DirName:CN = t280 -- DirName:CN = t281 -- DirName:CN = t282 -- DirName:CN = t283 -- DirName:CN = t284 -- DirName:CN = t285 -- DirName:CN = t286 -- DirName:CN = t287 -- DirName:CN = t288 -- DirName:CN = t289 -- DirName:CN = t290 -- DirName:CN = t291 -- DirName:CN = t292 -- DirName:CN = t293 -- DirName:CN = t294 -- DirName:CN = t295 -- DirName:CN = t296 -- DirName:CN = t297 -- DirName:CN = t298 -- DirName:CN = t299 -- DirName:CN = t300 -- DirName:CN = t301 -- DirName:CN = t302 -- DirName:CN = t303 -- DirName:CN = t304 -- DirName:CN = t305 -- DirName:CN = t306 -- DirName:CN = t307 -- DirName:CN = t308 -- DirName:CN = t309 -- DirName:CN = t310 -- DirName:CN = t311 -- DirName:CN = t312 -- DirName:CN = t313 -- DirName:CN = t314 -- DirName:CN = t315 -- DirName:CN = t316 -- DirName:CN = t317 -- DirName:CN = t318 -- DirName:CN = t319 -- DirName:CN = t320 -- DirName:CN = t321 -- DirName:CN = t322 -- DirName:CN = t323 -- DirName:CN = t324 -- DirName:CN = t325 -- DirName:CN = t326 -- DirName:CN = t327 -- DirName:CN = t328 -- DirName:CN = t329 -- DirName:CN = t330 -- DirName:CN = t331 -- DirName:CN = t332 -- DirName:CN = t333 -- DirName:CN = t334 -- DirName:CN = t335 -- DirName:CN = t336 -- DirName:CN = t337 -- DirName:CN = t338 -- DirName:CN = t339 -- DirName:CN = t340 -- DirName:CN = t341 -- DirName:CN = t342 -- DirName:CN = t343 -- DirName:CN = t344 -- DirName:CN = t345 -- DirName:CN = t346 -- DirName:CN = t347 -- DirName:CN = t348 -- DirName:CN = t349 -- DirName:CN = t350 -- DirName:CN = t351 -- DirName:CN = t352 -- DirName:CN = t353 -- DirName:CN = t354 -- DirName:CN = t355 -- DirName:CN = t356 -- DirName:CN = t357 -- DirName:CN = t358 -- DirName:CN = t359 -- DirName:CN = t360 -- DirName:CN = t361 -- DirName:CN = t362 -- DirName:CN = t363 -- DirName:CN = t364 -- DirName:CN = t365 -- DirName:CN = t366 -- DirName:CN = t367 -- DirName:CN = t368 -- DirName:CN = t369 -- DirName:CN = t370 -- DirName:CN = t371 -- DirName:CN = t372 -- DirName:CN = t373 -- DirName:CN = t374 -- DirName:CN = t375 -- DirName:CN = t376 -- DirName:CN = t377 -- DirName:CN = t378 -- DirName:CN = t379 -- DirName:CN = t380 -- DirName:CN = t381 -- DirName:CN = t382 -- DirName:CN = t383 -- DirName:CN = t384 -- DirName:CN = t385 -- DirName:CN = t386 -- DirName:CN = t387 -- DirName:CN = t388 -- DirName:CN = t389 -- DirName:CN = t390 -- DirName:CN = t391 -- DirName:CN = t392 -- DirName:CN = t393 -- DirName:CN = t394 -- DirName:CN = t395 -- DirName:CN = t396 -- DirName:CN = t397 -- DirName:CN = t398 -- DirName:CN = t399 -- DirName:CN = t400 -- DirName:CN = t401 -- DirName:CN = t402 -- DirName:CN = t403 -- DirName:CN = t404 -- DirName:CN = t405 -- DirName:CN = t406 -- DirName:CN = t407 -- DirName:CN = t408 -- DirName:CN = t409 -- DirName:CN = t410 -- DirName:CN = t411 -- DirName:CN = t412 -- DirName:CN = t413 -- DirName:CN = t414 -- DirName:CN = t415 -- DirName:CN = t416 -- DirName:CN = t417 -- DirName:CN = t418 -- DirName:CN = t419 -- DirName:CN = t420 -- DirName:CN = t421 -- DirName:CN = t422 -- DirName:CN = t423 -- DirName:CN = t424 -- DirName:CN = t425 -- DirName:CN = t426 -- DirName:CN = t427 -- DirName:CN = t428 -- DirName:CN = t429 -- DirName:CN = t430 -- DirName:CN = t431 -- DirName:CN = t432 -- DirName:CN = t433 -- DirName:CN = t434 -- DirName:CN = t435 -- DirName:CN = t436 -- DirName:CN = t437 -- DirName:CN = t438 -- DirName:CN = t439 -- DirName:CN = t440 -- DirName:CN = t441 -- DirName:CN = t442 -- DirName:CN = t443 -- DirName:CN = t444 -- DirName:CN = t445 -- DirName:CN = t446 -- DirName:CN = t447 -- DirName:CN = t448 -- DirName:CN = t449 -- DirName:CN = t450 -- DirName:CN = t451 -- DirName:CN = t452 -- DirName:CN = t453 -- DirName:CN = t454 -- DirName:CN = t455 -- DirName:CN = t456 -- DirName:CN = t457 -- DirName:CN = t458 -- DirName:CN = t459 -- DirName:CN = t460 -- DirName:CN = t461 -- DirName:CN = t462 -- DirName:CN = t463 -- DirName:CN = t464 -- DirName:CN = t465 -- DirName:CN = t466 -- DirName:CN = t467 -- DirName:CN = t468 -- DirName:CN = t469 -- DirName:CN = t470 -- DirName:CN = t471 -- DirName:CN = t472 -- DirName:CN = t473 -- DirName:CN = t474 -- DirName:CN = t475 -- DirName:CN = t476 -- DirName:CN = t477 -- DirName:CN = t478 -- DirName:CN = t479 -- DirName:CN = t480 -- DirName:CN = t481 -- DirName:CN = t482 -- DirName:CN = t483 -- DirName:CN = t484 -- DirName:CN = t485 -- DirName:CN = t486 -- DirName:CN = t487 -- DirName:CN = t488 -- DirName:CN = t489 -- DirName:CN = t490 -- DirName:CN = t491 -- DirName:CN = t492 -- DirName:CN = t493 -- DirName:CN = t494 -- DirName:CN = t495 -- DirName:CN = t496 -- DirName:CN = t497 -- DirName:CN = t498 -- DirName:CN = t499 -- DirName:CN = t500 -- DirName:CN = t501 -- DirName:CN = t502 -- DirName:CN = t503 -- DirName:CN = t504 -- DirName:CN = t505 -- DirName:CN = t506 -- DirName:CN = t507 -- DirName:CN = t508 -- DirName:CN = t509 -- DirName:CN = t510 -- DirName:CN = t511 -- DirName:CN = t512 -- DirName:CN = t513 -- DirName:CN = t514 -- DirName:CN = t515 -- DirName:CN = t516 -- DirName:CN = t517 -- DirName:CN = t518 -- DirName:CN = t519 -- DirName:CN = t520 -- DirName:CN = t521 -- DirName:CN = t522 -- DirName:CN = t523 -- DirName:CN = t524 -- DirName:CN = t525 -- DirName:CN = t526 -- DirName:CN = t527 -- DirName:CN = t528 -- DirName:CN = t529 -- DirName:CN = t530 -- DirName:CN = t531 -- DirName:CN = t532 -- DirName:CN = t533 -- DirName:CN = t534 -- DirName:CN = t535 -- DirName:CN = t536 -- DirName:CN = t537 -- DirName:CN = t538 -- DirName:CN = t539 -- DirName:CN = t540 -- DirName:CN = t541 -- DirName:CN = t542 -- DirName:CN = t543 -- DirName:CN = t544 -- DirName:CN = t545 -- DirName:CN = t546 -- DirName:CN = t547 -- DirName:CN = t548 -- DirName:CN = t549 -- DirName:CN = t550 -- DirName:CN = t551 -- DirName:CN = t552 -- DirName:CN = t553 -- DirName:CN = t554 -- DirName:CN = t555 -- DirName:CN = t556 -- DirName:CN = t557 -- DirName:CN = t558 -- DirName:CN = t559 -- DirName:CN = t560 -- DirName:CN = t561 -- DirName:CN = t562 -- DirName:CN = t563 -- DirName:CN = t564 -- DirName:CN = t565 -- DirName:CN = t566 -- DirName:CN = t567 -- DirName:CN = t568 -- DirName:CN = t569 -- DirName:CN = t570 -- DirName:CN = t571 -- DirName:CN = t572 -- DirName:CN = t573 -- DirName:CN = t574 -- DirName:CN = t575 -- DirName:CN = t576 -- DirName:CN = t577 -- DirName:CN = t578 -- DirName:CN = t579 -- DirName:CN = t580 -- DirName:CN = t581 -- DirName:CN = t582 -- DirName:CN = t583 -- DirName:CN = t584 -- DirName:CN = t585 -- DirName:CN = t586 -- DirName:CN = t587 -- DirName:CN = t588 -- DirName:CN = t589 -- DirName:CN = t590 -- DirName:CN = t591 -- DirName:CN = t592 -- DirName:CN = t593 -- DirName:CN = t594 -- DirName:CN = t595 -- DirName:CN = t596 -- DirName:CN = t597 -- DirName:CN = t598 -- DirName:CN = t599 -- DirName:CN = t600 -- DirName:CN = t601 -- DirName:CN = t602 -- DirName:CN = t603 -- DirName:CN = t604 -- DirName:CN = t605 -- DirName:CN = t606 -- DirName:CN = t607 -- DirName:CN = t608 -- DirName:CN = t609 -- DirName:CN = t610 -- DirName:CN = t611 -- DirName:CN = t612 -- DirName:CN = t613 -- DirName:CN = t614 -- DirName:CN = t615 -- DirName:CN = t616 -- DirName:CN = t617 -- DirName:CN = t618 -- DirName:CN = t619 -- DirName:CN = t620 -- DirName:CN = t621 -- DirName:CN = t622 -- DirName:CN = t623 -- DirName:CN = t624 -- DirName:CN = t625 -- DirName:CN = t626 -- DirName:CN = t627 -- DirName:CN = t628 -- DirName:CN = t629 -- DirName:CN = t630 -- DirName:CN = t631 -- DirName:CN = t632 -- DirName:CN = t633 -- DirName:CN = t634 -- DirName:CN = t635 -- DirName:CN = t636 -- DirName:CN = t637 -- DirName:CN = t638 -- DirName:CN = t639 -- DirName:CN = t640 -- DirName:CN = t641 -- DirName:CN = t642 -- DirName:CN = t643 -- DirName:CN = t644 -- DirName:CN = t645 -- DirName:CN = t646 -- DirName:CN = t647 -- DirName:CN = t648 -- DirName:CN = t649 -- DirName:CN = t650 -- DirName:CN = t651 -- DirName:CN = t652 -- DirName:CN = t653 -- DirName:CN = t654 -- DirName:CN = t655 -- DirName:CN = t656 -- DirName:CN = t657 -- DirName:CN = t658 -- DirName:CN = t659 -- DirName:CN = t660 -- DirName:CN = t661 -- DirName:CN = t662 -- DirName:CN = t663 -- DirName:CN = t664 -- DirName:CN = t665 -- DirName:CN = t666 -- DirName:CN = t667 -- DirName:CN = t668 -- DirName:CN = t669 -- DirName:CN = t670 -- DirName:CN = t671 -- DirName:CN = t672 -- DirName:CN = t673 -- DirName:CN = t674 -- DirName:CN = t675 -- DirName:CN = t676 -- DirName:CN = t677 -- DirName:CN = t678 -- DirName:CN = t679 -- DirName:CN = t680 -- DirName:CN = t681 -- DirName:CN = t682 -- DirName:CN = t683 -- DirName:CN = t684 -- DirName:CN = t685 -- DirName:CN = t686 -- DirName:CN = t687 -- DirName:CN = t688 -- DirName:CN = t689 -- DirName:CN = t690 -- DirName:CN = t691 -- DirName:CN = t692 -- DirName:CN = t693 -- DirName:CN = t694 -- DirName:CN = t695 -- DirName:CN = t696 -- DirName:CN = t697 -- DirName:CN = t698 -- DirName:CN = t699 -- DirName:CN = t700 -- DirName:CN = t701 -- DirName:CN = t702 -- DirName:CN = t703 -- DirName:CN = t704 -- DirName:CN = t705 -- DirName:CN = t706 -- DirName:CN = t707 -- DirName:CN = t708 -- DirName:CN = t709 -- DirName:CN = t710 -- DirName:CN = t711 -- DirName:CN = t712 -- DirName:CN = t713 -- DirName:CN = t714 -- DirName:CN = t715 -- DirName:CN = t716 -- DirName:CN = t717 -- DirName:CN = t718 -- DirName:CN = t719 -- DirName:CN = t720 -- DirName:CN = t721 -- DirName:CN = t722 -- DirName:CN = t723 -- DirName:CN = t724 -- DirName:CN = t725 -- DirName:CN = t726 -- DirName:CN = t727 -- DirName:CN = t728 -- DirName:CN = t729 -- DirName:CN = t730 -- DirName:CN = t731 -- DirName:CN = t732 -- DirName:CN = t733 -- DirName:CN = t734 -- DirName:CN = t735 -- DirName:CN = t736 -- DirName:CN = t737 -- DirName:CN = t738 -- DirName:CN = t739 -- DirName:CN = t740 -- DirName:CN = t741 -- DirName:CN = t742 -- DirName:CN = t743 -- DirName:CN = t744 -- DirName:CN = t745 -- DirName:CN = t746 -- DirName:CN = t747 -- DirName:CN = t748 -- DirName:CN = t749 -- DirName:CN = t750 -- DirName:CN = t751 -- DirName:CN = t752 -- DirName:CN = t753 -- DirName:CN = t754 -- DirName:CN = t755 -- DirName:CN = t756 -- DirName:CN = t757 -- DirName:CN = t758 -- DirName:CN = t759 -- DirName:CN = t760 -- DirName:CN = t761 -- DirName:CN = t762 -- DirName:CN = t763 -- DirName:CN = t764 -- DirName:CN = t765 -- DirName:CN = t766 -- DirName:CN = t767 -- DirName:CN = t768 -- DirName:CN = t769 -- DirName:CN = t770 -- DirName:CN = t771 -- DirName:CN = t772 -- DirName:CN = t773 -- DirName:CN = t774 -- DirName:CN = t775 -- DirName:CN = t776 -- DirName:CN = t777 -- DirName:CN = t778 -- DirName:CN = t779 -- DirName:CN = t780 -- DirName:CN = t781 -- DirName:CN = t782 -- DirName:CN = t783 -- DirName:CN = t784 -- DirName:CN = t785 -- DirName:CN = t786 -- DirName:CN = t787 -- DirName:CN = t788 -- DirName:CN = t789 -- DirName:CN = t790 -- DirName:CN = t791 -- DirName:CN = t792 -- DirName:CN = t793 -- DirName:CN = t794 -- DirName:CN = t795 -- DirName:CN = t796 -- DirName:CN = t797 -- DirName:CN = t798 -- DirName:CN = t799 -- DirName:CN = t800 -- DirName:CN = t801 -- DirName:CN = t802 -- DirName:CN = t803 -- DirName:CN = t804 -- DirName:CN = t805 -- DirName:CN = t806 -- DirName:CN = t807 -- DirName:CN = t808 -- DirName:CN = t809 -- DirName:CN = t810 -- DirName:CN = t811 -- DirName:CN = t812 -- DirName:CN = t813 -- DirName:CN = t814 -- DirName:CN = t815 -- DirName:CN = t816 -- DirName:CN = t817 -- DirName:CN = t818 -- DirName:CN = t819 -- DirName:CN = t820 -- DirName:CN = t821 -- DirName:CN = t822 -- DirName:CN = t823 -- DirName:CN = t824 -- DirName:CN = t825 -- DirName:CN = t826 -- DirName:CN = t827 -- DirName:CN = t828 -- DirName:CN = t829 -- DirName:CN = t830 -- DirName:CN = t831 -- DirName:CN = t832 -- DirName:CN = t833 -- DirName:CN = t834 -- DirName:CN = t835 -- DirName:CN = t836 -- DirName:CN = t837 -- DirName:CN = t838 -- DirName:CN = t839 -- DirName:CN = t840 -- DirName:CN = t841 -- DirName:CN = t842 -- DirName:CN = t843 -- DirName:CN = t844 -- DirName:CN = t845 -- DirName:CN = t846 -- DirName:CN = t847 -- DirName:CN = t848 -- DirName:CN = t849 -- DirName:CN = t850 -- DirName:CN = t851 -- DirName:CN = t852 -- DirName:CN = t853 -- DirName:CN = t854 -- DirName:CN = t855 -- DirName:CN = t856 -- DirName:CN = t857 -- DirName:CN = t858 -- DirName:CN = t859 -- DirName:CN = t860 -- DirName:CN = t861 -- DirName:CN = t862 -- DirName:CN = t863 -- DirName:CN = t864 -- DirName:CN = t865 -- DirName:CN = t866 -- DirName:CN = t867 -- DirName:CN = t868 -- DirName:CN = t869 -- DirName:CN = t870 -- DirName:CN = t871 -- DirName:CN = t872 -- DirName:CN = t873 -- DirName:CN = t874 -- DirName:CN = t875 -- DirName:CN = t876 -- DirName:CN = t877 -- DirName:CN = t878 -- DirName:CN = t879 -- DirName:CN = t880 -- DirName:CN = t881 -- DirName:CN = t882 -- DirName:CN = t883 -- DirName:CN = t884 -- DirName:CN = t885 -- DirName:CN = t886 -- DirName:CN = t887 -- DirName:CN = t888 -- DirName:CN = t889 -- DirName:CN = t890 -- DirName:CN = t891 -- DirName:CN = t892 -- DirName:CN = t893 -- DirName:CN = t894 -- DirName:CN = t895 -- DirName:CN = t896 -- DirName:CN = t897 -- DirName:CN = t898 -- DirName:CN = t899 -- DirName:CN = t900 -- DirName:CN = t901 -- DirName:CN = t902 -- DirName:CN = t903 -- DirName:CN = t904 -- DirName:CN = t905 -- DirName:CN = t906 -- DirName:CN = t907 -- DirName:CN = t908 -- DirName:CN = t909 -- DirName:CN = t910 -- DirName:CN = t911 -- DirName:CN = t912 -- DirName:CN = t913 -- DirName:CN = t914 -- DirName:CN = t915 -- DirName:CN = t916 -- DirName:CN = t917 -- DirName:CN = t918 -- DirName:CN = t919 -- DirName:CN = t920 -- DirName:CN = t921 -- DirName:CN = t922 -- DirName:CN = t923 -- DirName:CN = t924 -- DirName:CN = t925 -- DirName:CN = t926 -- DirName:CN = t927 -- DirName:CN = t928 -- DirName:CN = t929 -- DirName:CN = t930 -- DirName:CN = t931 -- DirName:CN = t932 -- DirName:CN = t933 -- DirName:CN = t934 -- DirName:CN = t935 -- DirName:CN = t936 -- DirName:CN = t937 -- DirName:CN = t938 -- DirName:CN = t939 -- DirName:CN = t940 -- DirName:CN = t941 -- DirName:CN = t942 -- DirName:CN = t943 -- DirName:CN = t944 -- DirName:CN = t945 -- DirName:CN = t946 -- DirName:CN = t947 -- DirName:CN = t948 -- DirName:CN = t949 -- DirName:CN = t950 -- DirName:CN = t951 -- DirName:CN = t952 -- DirName:CN = t953 -- DirName:CN = t954 -- DirName:CN = t955 -- DirName:CN = t956 -- DirName:CN = t957 -- DirName:CN = t958 -- DirName:CN = t959 -- DirName:CN = t960 -- DirName:CN = t961 -- DirName:CN = t962 -- DirName:CN = t963 -- DirName:CN = t964 -- DirName:CN = t965 -- DirName:CN = t966 -- DirName:CN = t967 -- DirName:CN = t968 -- DirName:CN = t969 -- DirName:CN = t970 -- DirName:CN = t971 -- DirName:CN = t972 -- DirName:CN = t973 -- DirName:CN = t974 -- DirName:CN = t975 -- DirName:CN = t976 -- DirName:CN = t977 -- DirName:CN = t978 -- DirName:CN = t979 -- DirName:CN = t980 -- DirName:CN = t981 -- DirName:CN = t982 -- DirName:CN = t983 -- DirName:CN = t984 -- DirName:CN = t985 -- DirName:CN = t986 -- DirName:CN = t987 -- DirName:CN = t988 -- DirName:CN = t989 -- DirName:CN = t990 -- DirName:CN = t991 -- DirName:CN = t992 -- DirName:CN = t993 -- DirName:CN = t994 -- DirName:CN = t995 -- DirName:CN = t996 -- DirName:CN = t997 -- DirName:CN = t998 -- DirName:CN = t999 -- DirName:CN = t1000 -- DirName:CN = t1001 -- DirName:CN = t1002 -- DirName:CN = t1003 -- DirName:CN = t1004 -- DirName:CN = t1005 -- DirName:CN = t1006 -- DirName:CN = t1007 -- DirName:CN = t1008 -- DirName:CN = t1009 -- DirName:CN = t1010 -- DirName:CN = t1011 -- DirName:CN = t1012 -- DirName:CN = t1013 -- DirName:CN = t1014 -- DirName:CN = t1015 -- DirName:CN = t1016 -- DirName:CN = t1017 -- DirName:CN = t1018 -- DirName:CN = t1019 -- DirName:CN = t1020 -- DirName:CN = t1021 -- DirName:CN = t1022 -- DirName:CN = t1023 -- DirName:CN = t1024 -- URI:http://test/0 -- URI:http://test/1 -- URI:http://test/2 -- URI:http://test/3 -- URI:http://test/4 -- URI:http://test/5 -- URI:http://test/6 -- URI:http://test/7 -- URI:http://test/8 -- URI:http://test/9 -- URI:http://test/10 -- URI:http://test/11 -- URI:http://test/12 -- URI:http://test/13 -- URI:http://test/14 -- URI:http://test/15 -- URI:http://test/16 -- URI:http://test/17 -- URI:http://test/18 -- URI:http://test/19 -- URI:http://test/20 -- URI:http://test/21 -- URI:http://test/22 -- URI:http://test/23 -- URI:http://test/24 -- URI:http://test/25 -- URI:http://test/26 -- URI:http://test/27 -- URI:http://test/28 -- URI:http://test/29 -- URI:http://test/30 -- URI:http://test/31 -- URI:http://test/32 -- URI:http://test/33 -- URI:http://test/34 -- URI:http://test/35 -- URI:http://test/36 -- URI:http://test/37 -- URI:http://test/38 -- URI:http://test/39 -- URI:http://test/40 -- URI:http://test/41 -- URI:http://test/42 -- URI:http://test/43 -- URI:http://test/44 -- URI:http://test/45 -- URI:http://test/46 -- URI:http://test/47 -- URI:http://test/48 -- URI:http://test/49 -- URI:http://test/50 -- URI:http://test/51 -- URI:http://test/52 -- URI:http://test/53 -- URI:http://test/54 -- URI:http://test/55 -- URI:http://test/56 -- URI:http://test/57 -- URI:http://test/58 -- URI:http://test/59 -- URI:http://test/60 -- URI:http://test/61 -- URI:http://test/62 -- URI:http://test/63 -- URI:http://test/64 -- URI:http://test/65 -- URI:http://test/66 -- URI:http://test/67 -- URI:http://test/68 -- URI:http://test/69 -- URI:http://test/70 -- URI:http://test/71 -- URI:http://test/72 -- URI:http://test/73 -- URI:http://test/74 -- URI:http://test/75 -- URI:http://test/76 -- URI:http://test/77 -- URI:http://test/78 -- URI:http://test/79 -- URI:http://test/80 -- URI:http://test/81 -- URI:http://test/82 -- URI:http://test/83 -- URI:http://test/84 -- URI:http://test/85 -- URI:http://test/86 -- URI:http://test/87 -- URI:http://test/88 -- URI:http://test/89 -- URI:http://test/90 -- URI:http://test/91 -- URI:http://test/92 -- URI:http://test/93 -- URI:http://test/94 -- URI:http://test/95 -- URI:http://test/96 -- URI:http://test/97 -- URI:http://test/98 -- URI:http://test/99 -- URI:http://test/100 -- URI:http://test/101 -- URI:http://test/102 -- URI:http://test/103 -- URI:http://test/104 -- URI:http://test/105 -- URI:http://test/106 -- URI:http://test/107 -- URI:http://test/108 -- URI:http://test/109 -- URI:http://test/110 -- URI:http://test/111 -- URI:http://test/112 -- URI:http://test/113 -- URI:http://test/114 -- URI:http://test/115 -- URI:http://test/116 -- URI:http://test/117 -- URI:http://test/118 -- URI:http://test/119 -- URI:http://test/120 -- URI:http://test/121 -- URI:http://test/122 -- URI:http://test/123 -- URI:http://test/124 -- URI:http://test/125 -- URI:http://test/126 -- URI:http://test/127 -- URI:http://test/128 -- URI:http://test/129 -- URI:http://test/130 -- URI:http://test/131 -- URI:http://test/132 -- URI:http://test/133 -- URI:http://test/134 -- URI:http://test/135 -- URI:http://test/136 -- URI:http://test/137 -- URI:http://test/138 -- URI:http://test/139 -- URI:http://test/140 -- URI:http://test/141 -- URI:http://test/142 -- URI:http://test/143 -- URI:http://test/144 -- URI:http://test/145 -- URI:http://test/146 -- URI:http://test/147 -- URI:http://test/148 -- URI:http://test/149 -- URI:http://test/150 -- URI:http://test/151 -- URI:http://test/152 -- URI:http://test/153 -- URI:http://test/154 -- URI:http://test/155 -- URI:http://test/156 -- URI:http://test/157 -- URI:http://test/158 -- URI:http://test/159 -- URI:http://test/160 -- URI:http://test/161 -- URI:http://test/162 -- URI:http://test/163 -- URI:http://test/164 -- URI:http://test/165 -- URI:http://test/166 -- URI:http://test/167 -- URI:http://test/168 -- URI:http://test/169 -- URI:http://test/170 -- URI:http://test/171 -- URI:http://test/172 -- URI:http://test/173 -- URI:http://test/174 -- URI:http://test/175 -- URI:http://test/176 -- URI:http://test/177 -- URI:http://test/178 -- URI:http://test/179 -- URI:http://test/180 -- URI:http://test/181 -- URI:http://test/182 -- URI:http://test/183 -- URI:http://test/184 -- URI:http://test/185 -- URI:http://test/186 -- URI:http://test/187 -- URI:http://test/188 -- URI:http://test/189 -- URI:http://test/190 -- URI:http://test/191 -- URI:http://test/192 -- URI:http://test/193 -- URI:http://test/194 -- URI:http://test/195 -- URI:http://test/196 -- URI:http://test/197 -- URI:http://test/198 -- URI:http://test/199 -- URI:http://test/200 -- URI:http://test/201 -- URI:http://test/202 -- URI:http://test/203 -- URI:http://test/204 -- URI:http://test/205 -- URI:http://test/206 -- URI:http://test/207 -- URI:http://test/208 -- URI:http://test/209 -- URI:http://test/210 -- URI:http://test/211 -- URI:http://test/212 -- URI:http://test/213 -- URI:http://test/214 -- URI:http://test/215 -- URI:http://test/216 -- URI:http://test/217 -- URI:http://test/218 -- URI:http://test/219 -- URI:http://test/220 -- URI:http://test/221 -- URI:http://test/222 -- URI:http://test/223 -- URI:http://test/224 -- URI:http://test/225 -- URI:http://test/226 -- URI:http://test/227 -- URI:http://test/228 -- URI:http://test/229 -- URI:http://test/230 -- URI:http://test/231 -- URI:http://test/232 -- URI:http://test/233 -- URI:http://test/234 -- URI:http://test/235 -- URI:http://test/236 -- URI:http://test/237 -- URI:http://test/238 -- URI:http://test/239 -- URI:http://test/240 -- URI:http://test/241 -- URI:http://test/242 -- URI:http://test/243 -- URI:http://test/244 -- URI:http://test/245 -- URI:http://test/246 -- URI:http://test/247 -- URI:http://test/248 -- URI:http://test/249 -- URI:http://test/250 -- URI:http://test/251 -- URI:http://test/252 -- URI:http://test/253 -- URI:http://test/254 -- URI:http://test/255 -- URI:http://test/256 -- URI:http://test/257 -- URI:http://test/258 -- URI:http://test/259 -- URI:http://test/260 -- URI:http://test/261 -- URI:http://test/262 -- URI:http://test/263 -- URI:http://test/264 -- URI:http://test/265 -- URI:http://test/266 -- URI:http://test/267 -- URI:http://test/268 -- URI:http://test/269 -- URI:http://test/270 -- URI:http://test/271 -- URI:http://test/272 -- URI:http://test/273 -- URI:http://test/274 -- URI:http://test/275 -- URI:http://test/276 -- URI:http://test/277 -- URI:http://test/278 -- URI:http://test/279 -- URI:http://test/280 -- URI:http://test/281 -- URI:http://test/282 -- URI:http://test/283 -- URI:http://test/284 -- URI:http://test/285 -- URI:http://test/286 -- URI:http://test/287 -- URI:http://test/288 -- URI:http://test/289 -- URI:http://test/290 -- URI:http://test/291 -- URI:http://test/292 -- URI:http://test/293 -- URI:http://test/294 -- URI:http://test/295 -- URI:http://test/296 -- URI:http://test/297 -- URI:http://test/298 -- URI:http://test/299 -- URI:http://test/300 -- URI:http://test/301 -- URI:http://test/302 -- URI:http://test/303 -- URI:http://test/304 -- URI:http://test/305 -- URI:http://test/306 -- URI:http://test/307 -- URI:http://test/308 -- URI:http://test/309 -- URI:http://test/310 -- URI:http://test/311 -- URI:http://test/312 -- URI:http://test/313 -- URI:http://test/314 -- URI:http://test/315 -- URI:http://test/316 -- URI:http://test/317 -- URI:http://test/318 -- URI:http://test/319 -- URI:http://test/320 -- URI:http://test/321 -- URI:http://test/322 -- URI:http://test/323 -- URI:http://test/324 -- URI:http://test/325 -- URI:http://test/326 -- URI:http://test/327 -- URI:http://test/328 -- URI:http://test/329 -- URI:http://test/330 -- URI:http://test/331 -- URI:http://test/332 -- URI:http://test/333 -- URI:http://test/334 -- URI:http://test/335 -- URI:http://test/336 -- URI:http://test/337 -- URI:http://test/338 -- URI:http://test/339 -- URI:http://test/340 -- URI:http://test/341 -- URI:http://test/342 -- URI:http://test/343 -- URI:http://test/344 -- URI:http://test/345 -- URI:http://test/346 -- URI:http://test/347 -- URI:http://test/348 -- URI:http://test/349 -- URI:http://test/350 -- URI:http://test/351 -- URI:http://test/352 -- URI:http://test/353 -- URI:http://test/354 -- URI:http://test/355 -- URI:http://test/356 -- URI:http://test/357 -- URI:http://test/358 -- URI:http://test/359 -- URI:http://test/360 -- URI:http://test/361 -- URI:http://test/362 -- URI:http://test/363 -- URI:http://test/364 -- URI:http://test/365 -- URI:http://test/366 -- URI:http://test/367 -- URI:http://test/368 -- URI:http://test/369 -- URI:http://test/370 -- URI:http://test/371 -- URI:http://test/372 -- URI:http://test/373 -- URI:http://test/374 -- URI:http://test/375 -- URI:http://test/376 -- URI:http://test/377 -- URI:http://test/378 -- URI:http://test/379 -- URI:http://test/380 -- URI:http://test/381 -- URI:http://test/382 -- URI:http://test/383 -- URI:http://test/384 -- URI:http://test/385 -- URI:http://test/386 -- URI:http://test/387 -- URI:http://test/388 -- URI:http://test/389 -- URI:http://test/390 -- URI:http://test/391 -- URI:http://test/392 -- URI:http://test/393 -- URI:http://test/394 -- URI:http://test/395 -- URI:http://test/396 -- URI:http://test/397 -- URI:http://test/398 -- URI:http://test/399 -- URI:http://test/400 -- URI:http://test/401 -- URI:http://test/402 -- URI:http://test/403 -- URI:http://test/404 -- URI:http://test/405 -- URI:http://test/406 -- URI:http://test/407 -- URI:http://test/408 -- URI:http://test/409 -- URI:http://test/410 -- URI:http://test/411 -- URI:http://test/412 -- URI:http://test/413 -- URI:http://test/414 -- URI:http://test/415 -- URI:http://test/416 -- URI:http://test/417 -- URI:http://test/418 -- URI:http://test/419 -- URI:http://test/420 -- URI:http://test/421 -- URI:http://test/422 -- URI:http://test/423 -- URI:http://test/424 -- URI:http://test/425 -- URI:http://test/426 -- URI:http://test/427 -- URI:http://test/428 -- URI:http://test/429 -- URI:http://test/430 -- URI:http://test/431 -- URI:http://test/432 -- URI:http://test/433 -- URI:http://test/434 -- URI:http://test/435 -- URI:http://test/436 -- URI:http://test/437 -- URI:http://test/438 -- URI:http://test/439 -- URI:http://test/440 -- URI:http://test/441 -- URI:http://test/442 -- URI:http://test/443 -- URI:http://test/444 -- URI:http://test/445 -- URI:http://test/446 -- URI:http://test/447 -- URI:http://test/448 -- URI:http://test/449 -- URI:http://test/450 -- URI:http://test/451 -- URI:http://test/452 -- URI:http://test/453 -- URI:http://test/454 -- URI:http://test/455 -- URI:http://test/456 -- URI:http://test/457 -- URI:http://test/458 -- URI:http://test/459 -- URI:http://test/460 -- URI:http://test/461 -- URI:http://test/462 -- URI:http://test/463 -- URI:http://test/464 -- URI:http://test/465 -- URI:http://test/466 -- URI:http://test/467 -- URI:http://test/468 -- URI:http://test/469 -- URI:http://test/470 -- URI:http://test/471 -- URI:http://test/472 -- URI:http://test/473 -- URI:http://test/474 -- URI:http://test/475 -- URI:http://test/476 -- URI:http://test/477 -- URI:http://test/478 -- URI:http://test/479 -- URI:http://test/480 -- URI:http://test/481 -- URI:http://test/482 -- URI:http://test/483 -- URI:http://test/484 -- URI:http://test/485 -- URI:http://test/486 -- URI:http://test/487 -- URI:http://test/488 -- URI:http://test/489 -- URI:http://test/490 -- URI:http://test/491 -- URI:http://test/492 -- URI:http://test/493 -- URI:http://test/494 -- URI:http://test/495 -- URI:http://test/496 -- URI:http://test/497 -- URI:http://test/498 -- URI:http://test/499 -- URI:http://test/500 -- URI:http://test/501 -- URI:http://test/502 -- URI:http://test/503 -- URI:http://test/504 -- URI:http://test/505 -- URI:http://test/506 -- URI:http://test/507 -- URI:http://test/508 -- URI:http://test/509 -- URI:http://test/510 -- URI:http://test/511 -- URI:http://test/512 -- URI:http://test/513 -- URI:http://test/514 -- URI:http://test/515 -- URI:http://test/516 -- URI:http://test/517 -- URI:http://test/518 -- URI:http://test/519 -- URI:http://test/520 -- URI:http://test/521 -- URI:http://test/522 -- URI:http://test/523 -- URI:http://test/524 -- URI:http://test/525 -- URI:http://test/526 -- URI:http://test/527 -- URI:http://test/528 -- URI:http://test/529 -- URI:http://test/530 -- URI:http://test/531 -- URI:http://test/532 -- URI:http://test/533 -- URI:http://test/534 -- URI:http://test/535 -- URI:http://test/536 -- URI:http://test/537 -- URI:http://test/538 -- URI:http://test/539 -- URI:http://test/540 -- URI:http://test/541 -- URI:http://test/542 -- URI:http://test/543 -- URI:http://test/544 -- URI:http://test/545 -- URI:http://test/546 -- URI:http://test/547 -- URI:http://test/548 -- URI:http://test/549 -- URI:http://test/550 -- URI:http://test/551 -- URI:http://test/552 -- URI:http://test/553 -- URI:http://test/554 -- URI:http://test/555 -- URI:http://test/556 -- URI:http://test/557 -- URI:http://test/558 -- URI:http://test/559 -- URI:http://test/560 -- URI:http://test/561 -- URI:http://test/562 -- URI:http://test/563 -- URI:http://test/564 -- URI:http://test/565 -- URI:http://test/566 -- URI:http://test/567 -- URI:http://test/568 -- URI:http://test/569 -- URI:http://test/570 -- URI:http://test/571 -- URI:http://test/572 -- URI:http://test/573 -- URI:http://test/574 -- URI:http://test/575 -- URI:http://test/576 -- URI:http://test/577 -- URI:http://test/578 -- URI:http://test/579 -- URI:http://test/580 -- URI:http://test/581 -- URI:http://test/582 -- URI:http://test/583 -- URI:http://test/584 -- URI:http://test/585 -- URI:http://test/586 -- URI:http://test/587 -- URI:http://test/588 -- URI:http://test/589 -- URI:http://test/590 -- URI:http://test/591 -- URI:http://test/592 -- URI:http://test/593 -- URI:http://test/594 -- URI:http://test/595 -- URI:http://test/596 -- URI:http://test/597 -- URI:http://test/598 -- URI:http://test/599 -- URI:http://test/600 -- URI:http://test/601 -- URI:http://test/602 -- URI:http://test/603 -- URI:http://test/604 -- URI:http://test/605 -- URI:http://test/606 -- URI:http://test/607 -- URI:http://test/608 -- URI:http://test/609 -- URI:http://test/610 -- URI:http://test/611 -- URI:http://test/612 -- URI:http://test/613 -- URI:http://test/614 -- URI:http://test/615 -- URI:http://test/616 -- URI:http://test/617 -- URI:http://test/618 -- URI:http://test/619 -- URI:http://test/620 -- URI:http://test/621 -- URI:http://test/622 -- URI:http://test/623 -- URI:http://test/624 -- URI:http://test/625 -- URI:http://test/626 -- URI:http://test/627 -- URI:http://test/628 -- URI:http://test/629 -- URI:http://test/630 -- URI:http://test/631 -- URI:http://test/632 -- URI:http://test/633 -- URI:http://test/634 -- URI:http://test/635 -- URI:http://test/636 -- URI:http://test/637 -- URI:http://test/638 -- URI:http://test/639 -- URI:http://test/640 -- URI:http://test/641 -- URI:http://test/642 -- URI:http://test/643 -- URI:http://test/644 -- URI:http://test/645 -- URI:http://test/646 -- URI:http://test/647 -- URI:http://test/648 -- URI:http://test/649 -- URI:http://test/650 -- URI:http://test/651 -- URI:http://test/652 -- URI:http://test/653 -- URI:http://test/654 -- URI:http://test/655 -- URI:http://test/656 -- URI:http://test/657 -- URI:http://test/658 -- URI:http://test/659 -- URI:http://test/660 -- URI:http://test/661 -- URI:http://test/662 -- URI:http://test/663 -- URI:http://test/664 -- URI:http://test/665 -- URI:http://test/666 -- URI:http://test/667 -- URI:http://test/668 -- URI:http://test/669 -- URI:http://test/670 -- URI:http://test/671 -- URI:http://test/672 -- URI:http://test/673 -- URI:http://test/674 -- URI:http://test/675 -- URI:http://test/676 -- URI:http://test/677 -- URI:http://test/678 -- URI:http://test/679 -- URI:http://test/680 -- URI:http://test/681 -- URI:http://test/682 -- URI:http://test/683 -- URI:http://test/684 -- URI:http://test/685 -- URI:http://test/686 -- URI:http://test/687 -- URI:http://test/688 -- URI:http://test/689 -- URI:http://test/690 -- URI:http://test/691 -- URI:http://test/692 -- URI:http://test/693 -- URI:http://test/694 -- URI:http://test/695 -- URI:http://test/696 -- URI:http://test/697 -- URI:http://test/698 -- URI:http://test/699 -- URI:http://test/700 -- URI:http://test/701 -- URI:http://test/702 -- URI:http://test/703 -- URI:http://test/704 -- URI:http://test/705 -- URI:http://test/706 -- URI:http://test/707 -- URI:http://test/708 -- URI:http://test/709 -- URI:http://test/710 -- URI:http://test/711 -- URI:http://test/712 -- URI:http://test/713 -- URI:http://test/714 -- URI:http://test/715 -- URI:http://test/716 -- URI:http://test/717 -- URI:http://test/718 -- URI:http://test/719 -- URI:http://test/720 -- URI:http://test/721 -- URI:http://test/722 -- URI:http://test/723 -- URI:http://test/724 -- URI:http://test/725 -- URI:http://test/726 -- URI:http://test/727 -- URI:http://test/728 -- URI:http://test/729 -- URI:http://test/730 -- URI:http://test/731 -- URI:http://test/732 -- URI:http://test/733 -- URI:http://test/734 -- URI:http://test/735 -- URI:http://test/736 -- URI:http://test/737 -- URI:http://test/738 -- URI:http://test/739 -- URI:http://test/740 -- URI:http://test/741 -- URI:http://test/742 -- URI:http://test/743 -- URI:http://test/744 -- URI:http://test/745 -- URI:http://test/746 -- URI:http://test/747 -- URI:http://test/748 -- URI:http://test/749 -- URI:http://test/750 -- URI:http://test/751 -- URI:http://test/752 -- URI:http://test/753 -- URI:http://test/754 -- URI:http://test/755 -- URI:http://test/756 -- URI:http://test/757 -- URI:http://test/758 -- URI:http://test/759 -- URI:http://test/760 -- URI:http://test/761 -- URI:http://test/762 -- URI:http://test/763 -- URI:http://test/764 -- URI:http://test/765 -- URI:http://test/766 -- URI:http://test/767 -- URI:http://test/768 -- URI:http://test/769 -- URI:http://test/770 -- URI:http://test/771 -- URI:http://test/772 -- URI:http://test/773 -- URI:http://test/774 -- URI:http://test/775 -- URI:http://test/776 -- URI:http://test/777 -- URI:http://test/778 -- URI:http://test/779 -- URI:http://test/780 -- URI:http://test/781 -- URI:http://test/782 -- URI:http://test/783 -- URI:http://test/784 -- URI:http://test/785 -- URI:http://test/786 -- URI:http://test/787 -- URI:http://test/788 -- URI:http://test/789 -- URI:http://test/790 -- URI:http://test/791 -- URI:http://test/792 -- URI:http://test/793 -- URI:http://test/794 -- URI:http://test/795 -- URI:http://test/796 -- URI:http://test/797 -- URI:http://test/798 -- URI:http://test/799 -- URI:http://test/800 -- URI:http://test/801 -- URI:http://test/802 -- URI:http://test/803 -- URI:http://test/804 -- URI:http://test/805 -- URI:http://test/806 -- URI:http://test/807 -- URI:http://test/808 -- URI:http://test/809 -- URI:http://test/810 -- URI:http://test/811 -- URI:http://test/812 -- URI:http://test/813 -- URI:http://test/814 -- URI:http://test/815 -- URI:http://test/816 -- URI:http://test/817 -- URI:http://test/818 -- URI:http://test/819 -- URI:http://test/820 -- URI:http://test/821 -- URI:http://test/822 -- URI:http://test/823 -- URI:http://test/824 -- URI:http://test/825 -- URI:http://test/826 -- URI:http://test/827 -- URI:http://test/828 -- URI:http://test/829 -- URI:http://test/830 -- URI:http://test/831 -- URI:http://test/832 -- URI:http://test/833 -- URI:http://test/834 -- URI:http://test/835 -- URI:http://test/836 -- URI:http://test/837 -- URI:http://test/838 -- URI:http://test/839 -- URI:http://test/840 -- URI:http://test/841 -- URI:http://test/842 -- URI:http://test/843 -- URI:http://test/844 -- URI:http://test/845 -- URI:http://test/846 -- URI:http://test/847 -- URI:http://test/848 -- URI:http://test/849 -- URI:http://test/850 -- URI:http://test/851 -- URI:http://test/852 -- URI:http://test/853 -- URI:http://test/854 -- URI:http://test/855 -- URI:http://test/856 -- URI:http://test/857 -- URI:http://test/858 -- URI:http://test/859 -- URI:http://test/860 -- URI:http://test/861 -- URI:http://test/862 -- URI:http://test/863 -- URI:http://test/864 -- URI:http://test/865 -- URI:http://test/866 -- URI:http://test/867 -- URI:http://test/868 -- URI:http://test/869 -- URI:http://test/870 -- URI:http://test/871 -- URI:http://test/872 -- URI:http://test/873 -- URI:http://test/874 -- URI:http://test/875 -- URI:http://test/876 -- URI:http://test/877 -- URI:http://test/878 -- URI:http://test/879 -- URI:http://test/880 -- URI:http://test/881 -- URI:http://test/882 -- URI:http://test/883 -- URI:http://test/884 -- URI:http://test/885 -- URI:http://test/886 -- URI:http://test/887 -- URI:http://test/888 -- URI:http://test/889 -- URI:http://test/890 -- URI:http://test/891 -- URI:http://test/892 -- URI:http://test/893 -- URI:http://test/894 -- URI:http://test/895 -- URI:http://test/896 -- URI:http://test/897 -- URI:http://test/898 -- URI:http://test/899 -- URI:http://test/900 -- URI:http://test/901 -- URI:http://test/902 -- URI:http://test/903 -- URI:http://test/904 -- URI:http://test/905 -- URI:http://test/906 -- URI:http://test/907 -- URI:http://test/908 -- URI:http://test/909 -- URI:http://test/910 -- URI:http://test/911 -- URI:http://test/912 -- URI:http://test/913 -- URI:http://test/914 -- URI:http://test/915 -- URI:http://test/916 -- URI:http://test/917 -- URI:http://test/918 -- URI:http://test/919 -- URI:http://test/920 -- URI:http://test/921 -- URI:http://test/922 -- URI:http://test/923 -- URI:http://test/924 -- URI:http://test/925 -- URI:http://test/926 -- URI:http://test/927 -- URI:http://test/928 -- URI:http://test/929 -- URI:http://test/930 -- URI:http://test/931 -- URI:http://test/932 -- URI:http://test/933 -- URI:http://test/934 -- URI:http://test/935 -- URI:http://test/936 -- URI:http://test/937 -- URI:http://test/938 -- URI:http://test/939 -- URI:http://test/940 -- URI:http://test/941 -- URI:http://test/942 -- URI:http://test/943 -- URI:http://test/944 -- URI:http://test/945 -- URI:http://test/946 -- URI:http://test/947 -- URI:http://test/948 -- URI:http://test/949 -- URI:http://test/950 -- URI:http://test/951 -- URI:http://test/952 -- URI:http://test/953 -- URI:http://test/954 -- URI:http://test/955 -- URI:http://test/956 -- URI:http://test/957 -- URI:http://test/958 -- URI:http://test/959 -- URI:http://test/960 -- URI:http://test/961 -- URI:http://test/962 -- URI:http://test/963 -- URI:http://test/964 -- URI:http://test/965 -- URI:http://test/966 -- URI:http://test/967 -- URI:http://test/968 -- URI:http://test/969 -- URI:http://test/970 -- URI:http://test/971 -- URI:http://test/972 -- URI:http://test/973 -- URI:http://test/974 -- URI:http://test/975 -- URI:http://test/976 -- URI:http://test/977 -- URI:http://test/978 -- URI:http://test/979 -- URI:http://test/980 -- URI:http://test/981 -- URI:http://test/982 -- URI:http://test/983 -- URI:http://test/984 -- URI:http://test/985 -- URI:http://test/986 -- URI:http://test/987 -- URI:http://test/988 -- URI:http://test/989 -- URI:http://test/990 -- URI:http://test/991 -- URI:http://test/992 -- URI:http://test/993 -- URI:http://test/994 -- URI:http://test/995 -- URI:http://test/996 -- URI:http://test/997 -- URI:http://test/998 -- URI:http://test/999 -- URI:http://test/1000 -- URI:http://test/1001 -- URI:http://test/1002 -- URI:http://test/1003 -- URI:http://test/1004 -- URI:http://test/1005 -- URI:http://test/1006 -- URI:http://test/1007 -- URI:http://test/1008 -- URI:http://test/1009 -- URI:http://test/1010 -- URI:http://test/1011 -- URI:http://test/1012 -- URI:http://test/1013 -- URI:http://test/1014 -- URI:http://test/1015 -- URI:http://test/1016 -- URI:http://test/1017 -- URI:http://test/1018 -- URI:http://test/1019 -- URI:http://test/1020 -- URI:http://test/1021 -- URI:http://test/1022 -- URI:http://test/1023 -- URI:http://test/1024 -- Excluded: -- IP:11.0.0.0/255.255.255.255 -- IP:11.0.0.1/255.255.255.255 -- IP:11.0.0.2/255.255.255.255 -- IP:11.0.0.3/255.255.255.255 -- IP:11.0.0.4/255.255.255.255 -- IP:11.0.0.5/255.255.255.255 -- IP:11.0.0.6/255.255.255.255 -- IP:11.0.0.7/255.255.255.255 -- IP:11.0.0.8/255.255.255.255 -- IP:11.0.0.9/255.255.255.255 -- IP:11.0.0.10/255.255.255.255 -- IP:11.0.0.11/255.255.255.255 -- IP:11.0.0.12/255.255.255.255 -- IP:11.0.0.13/255.255.255.255 -- IP:11.0.0.14/255.255.255.255 -- IP:11.0.0.15/255.255.255.255 -- IP:11.0.0.16/255.255.255.255 -- IP:11.0.0.17/255.255.255.255 -- IP:11.0.0.18/255.255.255.255 -- IP:11.0.0.19/255.255.255.255 -- IP:11.0.0.20/255.255.255.255 -- IP:11.0.0.21/255.255.255.255 -- IP:11.0.0.22/255.255.255.255 -- IP:11.0.0.23/255.255.255.255 -- IP:11.0.0.24/255.255.255.255 -- IP:11.0.0.25/255.255.255.255 -- IP:11.0.0.26/255.255.255.255 -- IP:11.0.0.27/255.255.255.255 -- IP:11.0.0.28/255.255.255.255 -- IP:11.0.0.29/255.255.255.255 -- IP:11.0.0.30/255.255.255.255 -- IP:11.0.0.31/255.255.255.255 -- IP:11.0.0.32/255.255.255.255 -- IP:11.0.0.33/255.255.255.255 -- IP:11.0.0.34/255.255.255.255 -- IP:11.0.0.35/255.255.255.255 -- IP:11.0.0.36/255.255.255.255 -- IP:11.0.0.37/255.255.255.255 -- IP:11.0.0.38/255.255.255.255 -- IP:11.0.0.39/255.255.255.255 -- IP:11.0.0.40/255.255.255.255 -- IP:11.0.0.41/255.255.255.255 -- IP:11.0.0.42/255.255.255.255 -- IP:11.0.0.43/255.255.255.255 -- IP:11.0.0.44/255.255.255.255 -- IP:11.0.0.45/255.255.255.255 -- IP:11.0.0.46/255.255.255.255 -- IP:11.0.0.47/255.255.255.255 -- IP:11.0.0.48/255.255.255.255 -- IP:11.0.0.49/255.255.255.255 -- IP:11.0.0.50/255.255.255.255 -- IP:11.0.0.51/255.255.255.255 -- IP:11.0.0.52/255.255.255.255 -- IP:11.0.0.53/255.255.255.255 -- IP:11.0.0.54/255.255.255.255 -- IP:11.0.0.55/255.255.255.255 -- IP:11.0.0.56/255.255.255.255 -- IP:11.0.0.57/255.255.255.255 -- IP:11.0.0.58/255.255.255.255 -- IP:11.0.0.59/255.255.255.255 -- IP:11.0.0.60/255.255.255.255 -- IP:11.0.0.61/255.255.255.255 -- IP:11.0.0.62/255.255.255.255 -- IP:11.0.0.63/255.255.255.255 -- IP:11.0.0.64/255.255.255.255 -- IP:11.0.0.65/255.255.255.255 -- IP:11.0.0.66/255.255.255.255 -- IP:11.0.0.67/255.255.255.255 -- IP:11.0.0.68/255.255.255.255 -- IP:11.0.0.69/255.255.255.255 -- IP:11.0.0.70/255.255.255.255 -- IP:11.0.0.71/255.255.255.255 -- IP:11.0.0.72/255.255.255.255 -- IP:11.0.0.73/255.255.255.255 -- IP:11.0.0.74/255.255.255.255 -- IP:11.0.0.75/255.255.255.255 -- IP:11.0.0.76/255.255.255.255 -- IP:11.0.0.77/255.255.255.255 -- IP:11.0.0.78/255.255.255.255 -- IP:11.0.0.79/255.255.255.255 -- IP:11.0.0.80/255.255.255.255 -- IP:11.0.0.81/255.255.255.255 -- IP:11.0.0.82/255.255.255.255 -- IP:11.0.0.83/255.255.255.255 -- IP:11.0.0.84/255.255.255.255 -- IP:11.0.0.85/255.255.255.255 -- IP:11.0.0.86/255.255.255.255 -- IP:11.0.0.87/255.255.255.255 -- IP:11.0.0.88/255.255.255.255 -- IP:11.0.0.89/255.255.255.255 -- IP:11.0.0.90/255.255.255.255 -- IP:11.0.0.91/255.255.255.255 -- IP:11.0.0.92/255.255.255.255 -- IP:11.0.0.93/255.255.255.255 -- IP:11.0.0.94/255.255.255.255 -- IP:11.0.0.95/255.255.255.255 -- IP:11.0.0.96/255.255.255.255 -- IP:11.0.0.97/255.255.255.255 -- IP:11.0.0.98/255.255.255.255 -- IP:11.0.0.99/255.255.255.255 -- IP:11.0.0.100/255.255.255.255 -- IP:11.0.0.101/255.255.255.255 -- IP:11.0.0.102/255.255.255.255 -- IP:11.0.0.103/255.255.255.255 -- IP:11.0.0.104/255.255.255.255 -- IP:11.0.0.105/255.255.255.255 -- IP:11.0.0.106/255.255.255.255 -- IP:11.0.0.107/255.255.255.255 -- IP:11.0.0.108/255.255.255.255 -- IP:11.0.0.109/255.255.255.255 -- IP:11.0.0.110/255.255.255.255 -- IP:11.0.0.111/255.255.255.255 -- IP:11.0.0.112/255.255.255.255 -- IP:11.0.0.113/255.255.255.255 -- IP:11.0.0.114/255.255.255.255 -- IP:11.0.0.115/255.255.255.255 -- IP:11.0.0.116/255.255.255.255 -- IP:11.0.0.117/255.255.255.255 -- IP:11.0.0.118/255.255.255.255 -- IP:11.0.0.119/255.255.255.255 -- IP:11.0.0.120/255.255.255.255 -- IP:11.0.0.121/255.255.255.255 -- IP:11.0.0.122/255.255.255.255 -- IP:11.0.0.123/255.255.255.255 -- IP:11.0.0.124/255.255.255.255 -- IP:11.0.0.125/255.255.255.255 -- IP:11.0.0.126/255.255.255.255 -- IP:11.0.0.127/255.255.255.255 -- IP:11.0.0.128/255.255.255.255 -- IP:11.0.0.129/255.255.255.255 -- IP:11.0.0.130/255.255.255.255 -- IP:11.0.0.131/255.255.255.255 -- IP:11.0.0.132/255.255.255.255 -- IP:11.0.0.133/255.255.255.255 -- IP:11.0.0.134/255.255.255.255 -- IP:11.0.0.135/255.255.255.255 -- IP:11.0.0.136/255.255.255.255 -- IP:11.0.0.137/255.255.255.255 -- IP:11.0.0.138/255.255.255.255 -- IP:11.0.0.139/255.255.255.255 -- IP:11.0.0.140/255.255.255.255 -- IP:11.0.0.141/255.255.255.255 -- IP:11.0.0.142/255.255.255.255 -- IP:11.0.0.143/255.255.255.255 -- IP:11.0.0.144/255.255.255.255 -- IP:11.0.0.145/255.255.255.255 -- IP:11.0.0.146/255.255.255.255 -- IP:11.0.0.147/255.255.255.255 -- IP:11.0.0.148/255.255.255.255 -- IP:11.0.0.149/255.255.255.255 -- IP:11.0.0.150/255.255.255.255 -- IP:11.0.0.151/255.255.255.255 -- IP:11.0.0.152/255.255.255.255 -- IP:11.0.0.153/255.255.255.255 -- IP:11.0.0.154/255.255.255.255 -- IP:11.0.0.155/255.255.255.255 -- IP:11.0.0.156/255.255.255.255 -- IP:11.0.0.157/255.255.255.255 -- IP:11.0.0.158/255.255.255.255 -- IP:11.0.0.159/255.255.255.255 -- IP:11.0.0.160/255.255.255.255 -- IP:11.0.0.161/255.255.255.255 -- IP:11.0.0.162/255.255.255.255 -- IP:11.0.0.163/255.255.255.255 -- IP:11.0.0.164/255.255.255.255 -- IP:11.0.0.165/255.255.255.255 -- IP:11.0.0.166/255.255.255.255 -- IP:11.0.0.167/255.255.255.255 -- IP:11.0.0.168/255.255.255.255 -- IP:11.0.0.169/255.255.255.255 -- IP:11.0.0.170/255.255.255.255 -- IP:11.0.0.171/255.255.255.255 -- IP:11.0.0.172/255.255.255.255 -- IP:11.0.0.173/255.255.255.255 -- IP:11.0.0.174/255.255.255.255 -- IP:11.0.0.175/255.255.255.255 -- IP:11.0.0.176/255.255.255.255 -- IP:11.0.0.177/255.255.255.255 -- IP:11.0.0.178/255.255.255.255 -- IP:11.0.0.179/255.255.255.255 -- IP:11.0.0.180/255.255.255.255 -- IP:11.0.0.181/255.255.255.255 -- IP:11.0.0.182/255.255.255.255 -- IP:11.0.0.183/255.255.255.255 -- IP:11.0.0.184/255.255.255.255 -- IP:11.0.0.185/255.255.255.255 -- IP:11.0.0.186/255.255.255.255 -- IP:11.0.0.187/255.255.255.255 -- IP:11.0.0.188/255.255.255.255 -- IP:11.0.0.189/255.255.255.255 -- IP:11.0.0.190/255.255.255.255 -- IP:11.0.0.191/255.255.255.255 -- IP:11.0.0.192/255.255.255.255 -- IP:11.0.0.193/255.255.255.255 -- IP:11.0.0.194/255.255.255.255 -- IP:11.0.0.195/255.255.255.255 -- IP:11.0.0.196/255.255.255.255 -- IP:11.0.0.197/255.255.255.255 -- IP:11.0.0.198/255.255.255.255 -- IP:11.0.0.199/255.255.255.255 -- IP:11.0.0.200/255.255.255.255 -- IP:11.0.0.201/255.255.255.255 -- IP:11.0.0.202/255.255.255.255 -- IP:11.0.0.203/255.255.255.255 -- IP:11.0.0.204/255.255.255.255 -- IP:11.0.0.205/255.255.255.255 -- IP:11.0.0.206/255.255.255.255 -- IP:11.0.0.207/255.255.255.255 -- IP:11.0.0.208/255.255.255.255 -- IP:11.0.0.209/255.255.255.255 -- IP:11.0.0.210/255.255.255.255 -- IP:11.0.0.211/255.255.255.255 -- IP:11.0.0.212/255.255.255.255 -- IP:11.0.0.213/255.255.255.255 -- IP:11.0.0.214/255.255.255.255 -- IP:11.0.0.215/255.255.255.255 -- IP:11.0.0.216/255.255.255.255 -- IP:11.0.0.217/255.255.255.255 -- IP:11.0.0.218/255.255.255.255 -- IP:11.0.0.219/255.255.255.255 -- IP:11.0.0.220/255.255.255.255 -- IP:11.0.0.221/255.255.255.255 -- IP:11.0.0.222/255.255.255.255 -- IP:11.0.0.223/255.255.255.255 -- IP:11.0.0.224/255.255.255.255 -- IP:11.0.0.225/255.255.255.255 -- IP:11.0.0.226/255.255.255.255 -- IP:11.0.0.227/255.255.255.255 -- IP:11.0.0.228/255.255.255.255 -- IP:11.0.0.229/255.255.255.255 -- IP:11.0.0.230/255.255.255.255 -- IP:11.0.0.231/255.255.255.255 -- IP:11.0.0.232/255.255.255.255 -- IP:11.0.0.233/255.255.255.255 -- IP:11.0.0.234/255.255.255.255 -- IP:11.0.0.235/255.255.255.255 -- IP:11.0.0.236/255.255.255.255 -- IP:11.0.0.237/255.255.255.255 -- IP:11.0.0.238/255.255.255.255 -- IP:11.0.0.239/255.255.255.255 -- IP:11.0.0.240/255.255.255.255 -- IP:11.0.0.241/255.255.255.255 -- IP:11.0.0.242/255.255.255.255 -- IP:11.0.0.243/255.255.255.255 -- IP:11.0.0.244/255.255.255.255 -- IP:11.0.0.245/255.255.255.255 -- IP:11.0.0.246/255.255.255.255 -- IP:11.0.0.247/255.255.255.255 -- IP:11.0.0.248/255.255.255.255 -- IP:11.0.0.249/255.255.255.255 -- IP:11.0.0.250/255.255.255.255 -- IP:11.0.0.251/255.255.255.255 -- IP:11.0.0.252/255.255.255.255 -- IP:11.0.0.253/255.255.255.255 -- IP:11.0.0.254/255.255.255.255 -- IP:11.0.0.255/255.255.255.255 -- IP:11.0.1.0/255.255.255.255 -- IP:11.0.1.1/255.255.255.255 -- IP:11.0.1.2/255.255.255.255 -- IP:11.0.1.3/255.255.255.255 -- IP:11.0.1.4/255.255.255.255 -- IP:11.0.1.5/255.255.255.255 -- IP:11.0.1.6/255.255.255.255 -- IP:11.0.1.7/255.255.255.255 -- IP:11.0.1.8/255.255.255.255 -- IP:11.0.1.9/255.255.255.255 -- IP:11.0.1.10/255.255.255.255 -- IP:11.0.1.11/255.255.255.255 -- IP:11.0.1.12/255.255.255.255 -- IP:11.0.1.13/255.255.255.255 -- IP:11.0.1.14/255.255.255.255 -- IP:11.0.1.15/255.255.255.255 -- IP:11.0.1.16/255.255.255.255 -- IP:11.0.1.17/255.255.255.255 -- IP:11.0.1.18/255.255.255.255 -- IP:11.0.1.19/255.255.255.255 -- IP:11.0.1.20/255.255.255.255 -- IP:11.0.1.21/255.255.255.255 -- IP:11.0.1.22/255.255.255.255 -- IP:11.0.1.23/255.255.255.255 -- IP:11.0.1.24/255.255.255.255 -- IP:11.0.1.25/255.255.255.255 -- IP:11.0.1.26/255.255.255.255 -- IP:11.0.1.27/255.255.255.255 -- IP:11.0.1.28/255.255.255.255 -- IP:11.0.1.29/255.255.255.255 -- IP:11.0.1.30/255.255.255.255 -- IP:11.0.1.31/255.255.255.255 -- IP:11.0.1.32/255.255.255.255 -- IP:11.0.1.33/255.255.255.255 -- IP:11.0.1.34/255.255.255.255 -- IP:11.0.1.35/255.255.255.255 -- IP:11.0.1.36/255.255.255.255 -- IP:11.0.1.37/255.255.255.255 -- IP:11.0.1.38/255.255.255.255 -- IP:11.0.1.39/255.255.255.255 -- IP:11.0.1.40/255.255.255.255 -- IP:11.0.1.41/255.255.255.255 -- IP:11.0.1.42/255.255.255.255 -- IP:11.0.1.43/255.255.255.255 -- IP:11.0.1.44/255.255.255.255 -- IP:11.0.1.45/255.255.255.255 -- IP:11.0.1.46/255.255.255.255 -- IP:11.0.1.47/255.255.255.255 -- IP:11.0.1.48/255.255.255.255 -- IP:11.0.1.49/255.255.255.255 -- IP:11.0.1.50/255.255.255.255 -- IP:11.0.1.51/255.255.255.255 -- IP:11.0.1.52/255.255.255.255 -- IP:11.0.1.53/255.255.255.255 -- IP:11.0.1.54/255.255.255.255 -- IP:11.0.1.55/255.255.255.255 -- IP:11.0.1.56/255.255.255.255 -- IP:11.0.1.57/255.255.255.255 -- IP:11.0.1.58/255.255.255.255 -- IP:11.0.1.59/255.255.255.255 -- IP:11.0.1.60/255.255.255.255 -- IP:11.0.1.61/255.255.255.255 -- IP:11.0.1.62/255.255.255.255 -- IP:11.0.1.63/255.255.255.255 -- IP:11.0.1.64/255.255.255.255 -- IP:11.0.1.65/255.255.255.255 -- IP:11.0.1.66/255.255.255.255 -- IP:11.0.1.67/255.255.255.255 -- IP:11.0.1.68/255.255.255.255 -- IP:11.0.1.69/255.255.255.255 -- IP:11.0.1.70/255.255.255.255 -- IP:11.0.1.71/255.255.255.255 -- IP:11.0.1.72/255.255.255.255 -- IP:11.0.1.73/255.255.255.255 -- IP:11.0.1.74/255.255.255.255 -- IP:11.0.1.75/255.255.255.255 -- IP:11.0.1.76/255.255.255.255 -- IP:11.0.1.77/255.255.255.255 -- IP:11.0.1.78/255.255.255.255 -- IP:11.0.1.79/255.255.255.255 -- IP:11.0.1.80/255.255.255.255 -- IP:11.0.1.81/255.255.255.255 -- IP:11.0.1.82/255.255.255.255 -- IP:11.0.1.83/255.255.255.255 -- IP:11.0.1.84/255.255.255.255 -- IP:11.0.1.85/255.255.255.255 -- IP:11.0.1.86/255.255.255.255 -- IP:11.0.1.87/255.255.255.255 -- IP:11.0.1.88/255.255.255.255 -- IP:11.0.1.89/255.255.255.255 -- IP:11.0.1.90/255.255.255.255 -- IP:11.0.1.91/255.255.255.255 -- IP:11.0.1.92/255.255.255.255 -- IP:11.0.1.93/255.255.255.255 -- IP:11.0.1.94/255.255.255.255 -- IP:11.0.1.95/255.255.255.255 -- IP:11.0.1.96/255.255.255.255 -- IP:11.0.1.97/255.255.255.255 -- IP:11.0.1.98/255.255.255.255 -- IP:11.0.1.99/255.255.255.255 -- IP:11.0.1.100/255.255.255.255 -- IP:11.0.1.101/255.255.255.255 -- IP:11.0.1.102/255.255.255.255 -- IP:11.0.1.103/255.255.255.255 -- IP:11.0.1.104/255.255.255.255 -- IP:11.0.1.105/255.255.255.255 -- IP:11.0.1.106/255.255.255.255 -- IP:11.0.1.107/255.255.255.255 -- IP:11.0.1.108/255.255.255.255 -- IP:11.0.1.109/255.255.255.255 -- IP:11.0.1.110/255.255.255.255 -- IP:11.0.1.111/255.255.255.255 -- IP:11.0.1.112/255.255.255.255 -- IP:11.0.1.113/255.255.255.255 -- IP:11.0.1.114/255.255.255.255 -- IP:11.0.1.115/255.255.255.255 -- IP:11.0.1.116/255.255.255.255 -- IP:11.0.1.117/255.255.255.255 -- IP:11.0.1.118/255.255.255.255 -- IP:11.0.1.119/255.255.255.255 -- IP:11.0.1.120/255.255.255.255 -- IP:11.0.1.121/255.255.255.255 -- IP:11.0.1.122/255.255.255.255 -- IP:11.0.1.123/255.255.255.255 -- IP:11.0.1.124/255.255.255.255 -- IP:11.0.1.125/255.255.255.255 -- IP:11.0.1.126/255.255.255.255 -- IP:11.0.1.127/255.255.255.255 -- IP:11.0.1.128/255.255.255.255 -- IP:11.0.1.129/255.255.255.255 -- IP:11.0.1.130/255.255.255.255 -- IP:11.0.1.131/255.255.255.255 -- IP:11.0.1.132/255.255.255.255 -- IP:11.0.1.133/255.255.255.255 -- IP:11.0.1.134/255.255.255.255 -- IP:11.0.1.135/255.255.255.255 -- IP:11.0.1.136/255.255.255.255 -- IP:11.0.1.137/255.255.255.255 -- IP:11.0.1.138/255.255.255.255 -- IP:11.0.1.139/255.255.255.255 -- IP:11.0.1.140/255.255.255.255 -- IP:11.0.1.141/255.255.255.255 -- IP:11.0.1.142/255.255.255.255 -- IP:11.0.1.143/255.255.255.255 -- IP:11.0.1.144/255.255.255.255 -- IP:11.0.1.145/255.255.255.255 -- IP:11.0.1.146/255.255.255.255 -- IP:11.0.1.147/255.255.255.255 -- IP:11.0.1.148/255.255.255.255 -- IP:11.0.1.149/255.255.255.255 -- IP:11.0.1.150/255.255.255.255 -- IP:11.0.1.151/255.255.255.255 -- IP:11.0.1.152/255.255.255.255 -- IP:11.0.1.153/255.255.255.255 -- IP:11.0.1.154/255.255.255.255 -- IP:11.0.1.155/255.255.255.255 -- IP:11.0.1.156/255.255.255.255 -- IP:11.0.1.157/255.255.255.255 -- IP:11.0.1.158/255.255.255.255 -- IP:11.0.1.159/255.255.255.255 -- IP:11.0.1.160/255.255.255.255 -- IP:11.0.1.161/255.255.255.255 -- IP:11.0.1.162/255.255.255.255 -- IP:11.0.1.163/255.255.255.255 -- IP:11.0.1.164/255.255.255.255 -- IP:11.0.1.165/255.255.255.255 -- IP:11.0.1.166/255.255.255.255 -- IP:11.0.1.167/255.255.255.255 -- IP:11.0.1.168/255.255.255.255 -- IP:11.0.1.169/255.255.255.255 -- IP:11.0.1.170/255.255.255.255 -- IP:11.0.1.171/255.255.255.255 -- IP:11.0.1.172/255.255.255.255 -- IP:11.0.1.173/255.255.255.255 -- IP:11.0.1.174/255.255.255.255 -- IP:11.0.1.175/255.255.255.255 -- IP:11.0.1.176/255.255.255.255 -- IP:11.0.1.177/255.255.255.255 -- IP:11.0.1.178/255.255.255.255 -- IP:11.0.1.179/255.255.255.255 -- IP:11.0.1.180/255.255.255.255 -- IP:11.0.1.181/255.255.255.255 -- IP:11.0.1.182/255.255.255.255 -- IP:11.0.1.183/255.255.255.255 -- IP:11.0.1.184/255.255.255.255 -- IP:11.0.1.185/255.255.255.255 -- IP:11.0.1.186/255.255.255.255 -- IP:11.0.1.187/255.255.255.255 -- IP:11.0.1.188/255.255.255.255 -- IP:11.0.1.189/255.255.255.255 -- IP:11.0.1.190/255.255.255.255 -- IP:11.0.1.191/255.255.255.255 -- IP:11.0.1.192/255.255.255.255 -- IP:11.0.1.193/255.255.255.255 -- IP:11.0.1.194/255.255.255.255 -- IP:11.0.1.195/255.255.255.255 -- IP:11.0.1.196/255.255.255.255 -- IP:11.0.1.197/255.255.255.255 -- IP:11.0.1.198/255.255.255.255 -- IP:11.0.1.199/255.255.255.255 -- IP:11.0.1.200/255.255.255.255 -- IP:11.0.1.201/255.255.255.255 -- IP:11.0.1.202/255.255.255.255 -- IP:11.0.1.203/255.255.255.255 -- IP:11.0.1.204/255.255.255.255 -- IP:11.0.1.205/255.255.255.255 -- IP:11.0.1.206/255.255.255.255 -- IP:11.0.1.207/255.255.255.255 -- IP:11.0.1.208/255.255.255.255 -- IP:11.0.1.209/255.255.255.255 -- IP:11.0.1.210/255.255.255.255 -- IP:11.0.1.211/255.255.255.255 -- IP:11.0.1.212/255.255.255.255 -- IP:11.0.1.213/255.255.255.255 -- IP:11.0.1.214/255.255.255.255 -- IP:11.0.1.215/255.255.255.255 -- IP:11.0.1.216/255.255.255.255 -- IP:11.0.1.217/255.255.255.255 -- IP:11.0.1.218/255.255.255.255 -- IP:11.0.1.219/255.255.255.255 -- IP:11.0.1.220/255.255.255.255 -- IP:11.0.1.221/255.255.255.255 -- IP:11.0.1.222/255.255.255.255 -- IP:11.0.1.223/255.255.255.255 -- IP:11.0.1.224/255.255.255.255 -- IP:11.0.1.225/255.255.255.255 -- IP:11.0.1.226/255.255.255.255 -- IP:11.0.1.227/255.255.255.255 -- IP:11.0.1.228/255.255.255.255 -- IP:11.0.1.229/255.255.255.255 -- IP:11.0.1.230/255.255.255.255 -- IP:11.0.1.231/255.255.255.255 -- IP:11.0.1.232/255.255.255.255 -- IP:11.0.1.233/255.255.255.255 -- IP:11.0.1.234/255.255.255.255 -- IP:11.0.1.235/255.255.255.255 -- IP:11.0.1.236/255.255.255.255 -- IP:11.0.1.237/255.255.255.255 -- IP:11.0.1.238/255.255.255.255 -- IP:11.0.1.239/255.255.255.255 -- IP:11.0.1.240/255.255.255.255 -- IP:11.0.1.241/255.255.255.255 -- IP:11.0.1.242/255.255.255.255 -- IP:11.0.1.243/255.255.255.255 -- IP:11.0.1.244/255.255.255.255 -- IP:11.0.1.245/255.255.255.255 -- IP:11.0.1.246/255.255.255.255 -- IP:11.0.1.247/255.255.255.255 -- IP:11.0.1.248/255.255.255.255 -- IP:11.0.1.249/255.255.255.255 -- IP:11.0.1.250/255.255.255.255 -- IP:11.0.1.251/255.255.255.255 -- IP:11.0.1.252/255.255.255.255 -- IP:11.0.1.253/255.255.255.255 -- IP:11.0.1.254/255.255.255.255 -- IP:11.0.1.255/255.255.255.255 -- IP:11.0.2.0/255.255.255.255 -- IP:11.0.2.1/255.255.255.255 -- IP:11.0.2.2/255.255.255.255 -- IP:11.0.2.3/255.255.255.255 -- IP:11.0.2.4/255.255.255.255 -- IP:11.0.2.5/255.255.255.255 -- IP:11.0.2.6/255.255.255.255 -- IP:11.0.2.7/255.255.255.255 -- IP:11.0.2.8/255.255.255.255 -- IP:11.0.2.9/255.255.255.255 -- IP:11.0.2.10/255.255.255.255 -- IP:11.0.2.11/255.255.255.255 -- IP:11.0.2.12/255.255.255.255 -- IP:11.0.2.13/255.255.255.255 -- IP:11.0.2.14/255.255.255.255 -- IP:11.0.2.15/255.255.255.255 -- IP:11.0.2.16/255.255.255.255 -- IP:11.0.2.17/255.255.255.255 -- IP:11.0.2.18/255.255.255.255 -- IP:11.0.2.19/255.255.255.255 -- IP:11.0.2.20/255.255.255.255 -- IP:11.0.2.21/255.255.255.255 -- IP:11.0.2.22/255.255.255.255 -- IP:11.0.2.23/255.255.255.255 -- IP:11.0.2.24/255.255.255.255 -- IP:11.0.2.25/255.255.255.255 -- IP:11.0.2.26/255.255.255.255 -- IP:11.0.2.27/255.255.255.255 -- IP:11.0.2.28/255.255.255.255 -- IP:11.0.2.29/255.255.255.255 -- IP:11.0.2.30/255.255.255.255 -- IP:11.0.2.31/255.255.255.255 -- IP:11.0.2.32/255.255.255.255 -- IP:11.0.2.33/255.255.255.255 -- IP:11.0.2.34/255.255.255.255 -- IP:11.0.2.35/255.255.255.255 -- IP:11.0.2.36/255.255.255.255 -- IP:11.0.2.37/255.255.255.255 -- IP:11.0.2.38/255.255.255.255 -- IP:11.0.2.39/255.255.255.255 -- IP:11.0.2.40/255.255.255.255 -- IP:11.0.2.41/255.255.255.255 -- IP:11.0.2.42/255.255.255.255 -- IP:11.0.2.43/255.255.255.255 -- IP:11.0.2.44/255.255.255.255 -- IP:11.0.2.45/255.255.255.255 -- IP:11.0.2.46/255.255.255.255 -- IP:11.0.2.47/255.255.255.255 -- IP:11.0.2.48/255.255.255.255 -- IP:11.0.2.49/255.255.255.255 -- IP:11.0.2.50/255.255.255.255 -- IP:11.0.2.51/255.255.255.255 -- IP:11.0.2.52/255.255.255.255 -- IP:11.0.2.53/255.255.255.255 -- IP:11.0.2.54/255.255.255.255 -- IP:11.0.2.55/255.255.255.255 -- IP:11.0.2.56/255.255.255.255 -- IP:11.0.2.57/255.255.255.255 -- IP:11.0.2.58/255.255.255.255 -- IP:11.0.2.59/255.255.255.255 -- IP:11.0.2.60/255.255.255.255 -- IP:11.0.2.61/255.255.255.255 -- IP:11.0.2.62/255.255.255.255 -- IP:11.0.2.63/255.255.255.255 -- IP:11.0.2.64/255.255.255.255 -- IP:11.0.2.65/255.255.255.255 -- IP:11.0.2.66/255.255.255.255 -- IP:11.0.2.67/255.255.255.255 -- IP:11.0.2.68/255.255.255.255 -- IP:11.0.2.69/255.255.255.255 -- IP:11.0.2.70/255.255.255.255 -- IP:11.0.2.71/255.255.255.255 -- IP:11.0.2.72/255.255.255.255 -- IP:11.0.2.73/255.255.255.255 -- IP:11.0.2.74/255.255.255.255 -- IP:11.0.2.75/255.255.255.255 -- IP:11.0.2.76/255.255.255.255 -- IP:11.0.2.77/255.255.255.255 -- IP:11.0.2.78/255.255.255.255 -- IP:11.0.2.79/255.255.255.255 -- IP:11.0.2.80/255.255.255.255 -- IP:11.0.2.81/255.255.255.255 -- IP:11.0.2.82/255.255.255.255 -- IP:11.0.2.83/255.255.255.255 -- IP:11.0.2.84/255.255.255.255 -- IP:11.0.2.85/255.255.255.255 -- IP:11.0.2.86/255.255.255.255 -- IP:11.0.2.87/255.255.255.255 -- IP:11.0.2.88/255.255.255.255 -- IP:11.0.2.89/255.255.255.255 -- IP:11.0.2.90/255.255.255.255 -- IP:11.0.2.91/255.255.255.255 -- IP:11.0.2.92/255.255.255.255 -- IP:11.0.2.93/255.255.255.255 -- IP:11.0.2.94/255.255.255.255 -- IP:11.0.2.95/255.255.255.255 -- IP:11.0.2.96/255.255.255.255 -- IP:11.0.2.97/255.255.255.255 -- IP:11.0.2.98/255.255.255.255 -- IP:11.0.2.99/255.255.255.255 -- IP:11.0.2.100/255.255.255.255 -- IP:11.0.2.101/255.255.255.255 -- IP:11.0.2.102/255.255.255.255 -- IP:11.0.2.103/255.255.255.255 -- IP:11.0.2.104/255.255.255.255 -- IP:11.0.2.105/255.255.255.255 -- IP:11.0.2.106/255.255.255.255 -- IP:11.0.2.107/255.255.255.255 -- IP:11.0.2.108/255.255.255.255 -- IP:11.0.2.109/255.255.255.255 -- IP:11.0.2.110/255.255.255.255 -- IP:11.0.2.111/255.255.255.255 -- IP:11.0.2.112/255.255.255.255 -- IP:11.0.2.113/255.255.255.255 -- IP:11.0.2.114/255.255.255.255 -- IP:11.0.2.115/255.255.255.255 -- IP:11.0.2.116/255.255.255.255 -- IP:11.0.2.117/255.255.255.255 -- IP:11.0.2.118/255.255.255.255 -- IP:11.0.2.119/255.255.255.255 -- IP:11.0.2.120/255.255.255.255 -- IP:11.0.2.121/255.255.255.255 -- IP:11.0.2.122/255.255.255.255 -- IP:11.0.2.123/255.255.255.255 -- IP:11.0.2.124/255.255.255.255 -- IP:11.0.2.125/255.255.255.255 -- IP:11.0.2.126/255.255.255.255 -- IP:11.0.2.127/255.255.255.255 -- IP:11.0.2.128/255.255.255.255 -- IP:11.0.2.129/255.255.255.255 -- IP:11.0.2.130/255.255.255.255 -- IP:11.0.2.131/255.255.255.255 -- IP:11.0.2.132/255.255.255.255 -- IP:11.0.2.133/255.255.255.255 -- IP:11.0.2.134/255.255.255.255 -- IP:11.0.2.135/255.255.255.255 -- IP:11.0.2.136/255.255.255.255 -- IP:11.0.2.137/255.255.255.255 -- IP:11.0.2.138/255.255.255.255 -- IP:11.0.2.139/255.255.255.255 -- IP:11.0.2.140/255.255.255.255 -- IP:11.0.2.141/255.255.255.255 -- IP:11.0.2.142/255.255.255.255 -- IP:11.0.2.143/255.255.255.255 -- IP:11.0.2.144/255.255.255.255 -- IP:11.0.2.145/255.255.255.255 -- IP:11.0.2.146/255.255.255.255 -- IP:11.0.2.147/255.255.255.255 -- IP:11.0.2.148/255.255.255.255 -- IP:11.0.2.149/255.255.255.255 -- IP:11.0.2.150/255.255.255.255 -- IP:11.0.2.151/255.255.255.255 -- IP:11.0.2.152/255.255.255.255 -- IP:11.0.2.153/255.255.255.255 -- IP:11.0.2.154/255.255.255.255 -- IP:11.0.2.155/255.255.255.255 -- IP:11.0.2.156/255.255.255.255 -- IP:11.0.2.157/255.255.255.255 -- IP:11.0.2.158/255.255.255.255 -- IP:11.0.2.159/255.255.255.255 -- IP:11.0.2.160/255.255.255.255 -- IP:11.0.2.161/255.255.255.255 -- IP:11.0.2.162/255.255.255.255 -- IP:11.0.2.163/255.255.255.255 -- IP:11.0.2.164/255.255.255.255 -- IP:11.0.2.165/255.255.255.255 -- IP:11.0.2.166/255.255.255.255 -- IP:11.0.2.167/255.255.255.255 -- IP:11.0.2.168/255.255.255.255 -- IP:11.0.2.169/255.255.255.255 -- IP:11.0.2.170/255.255.255.255 -- IP:11.0.2.171/255.255.255.255 -- IP:11.0.2.172/255.255.255.255 -- IP:11.0.2.173/255.255.255.255 -- IP:11.0.2.174/255.255.255.255 -- IP:11.0.2.175/255.255.255.255 -- IP:11.0.2.176/255.255.255.255 -- IP:11.0.2.177/255.255.255.255 -- IP:11.0.2.178/255.255.255.255 -- IP:11.0.2.179/255.255.255.255 -- IP:11.0.2.180/255.255.255.255 -- IP:11.0.2.181/255.255.255.255 -- IP:11.0.2.182/255.255.255.255 -- IP:11.0.2.183/255.255.255.255 -- IP:11.0.2.184/255.255.255.255 -- IP:11.0.2.185/255.255.255.255 -- IP:11.0.2.186/255.255.255.255 -- IP:11.0.2.187/255.255.255.255 -- IP:11.0.2.188/255.255.255.255 -- IP:11.0.2.189/255.255.255.255 -- IP:11.0.2.190/255.255.255.255 -- IP:11.0.2.191/255.255.255.255 -- IP:11.0.2.192/255.255.255.255 -- IP:11.0.2.193/255.255.255.255 -- IP:11.0.2.194/255.255.255.255 -- IP:11.0.2.195/255.255.255.255 -- IP:11.0.2.196/255.255.255.255 -- IP:11.0.2.197/255.255.255.255 -- IP:11.0.2.198/255.255.255.255 -- IP:11.0.2.199/255.255.255.255 -- IP:11.0.2.200/255.255.255.255 -- IP:11.0.2.201/255.255.255.255 -- IP:11.0.2.202/255.255.255.255 -- IP:11.0.2.203/255.255.255.255 -- IP:11.0.2.204/255.255.255.255 -- IP:11.0.2.205/255.255.255.255 -- IP:11.0.2.206/255.255.255.255 -- IP:11.0.2.207/255.255.255.255 -- IP:11.0.2.208/255.255.255.255 -- IP:11.0.2.209/255.255.255.255 -- IP:11.0.2.210/255.255.255.255 -- IP:11.0.2.211/255.255.255.255 -- IP:11.0.2.212/255.255.255.255 -- IP:11.0.2.213/255.255.255.255 -- IP:11.0.2.214/255.255.255.255 -- IP:11.0.2.215/255.255.255.255 -- IP:11.0.2.216/255.255.255.255 -- IP:11.0.2.217/255.255.255.255 -- IP:11.0.2.218/255.255.255.255 -- IP:11.0.2.219/255.255.255.255 -- IP:11.0.2.220/255.255.255.255 -- IP:11.0.2.221/255.255.255.255 -- IP:11.0.2.222/255.255.255.255 -- IP:11.0.2.223/255.255.255.255 -- IP:11.0.2.224/255.255.255.255 -- IP:11.0.2.225/255.255.255.255 -- IP:11.0.2.226/255.255.255.255 -- IP:11.0.2.227/255.255.255.255 -- IP:11.0.2.228/255.255.255.255 -- IP:11.0.2.229/255.255.255.255 -- IP:11.0.2.230/255.255.255.255 -- IP:11.0.2.231/255.255.255.255 -- IP:11.0.2.232/255.255.255.255 -- IP:11.0.2.233/255.255.255.255 -- IP:11.0.2.234/255.255.255.255 -- IP:11.0.2.235/255.255.255.255 -- IP:11.0.2.236/255.255.255.255 -- IP:11.0.2.237/255.255.255.255 -- IP:11.0.2.238/255.255.255.255 -- IP:11.0.2.239/255.255.255.255 -- IP:11.0.2.240/255.255.255.255 -- IP:11.0.2.241/255.255.255.255 -- IP:11.0.2.242/255.255.255.255 -- IP:11.0.2.243/255.255.255.255 -- IP:11.0.2.244/255.255.255.255 -- IP:11.0.2.245/255.255.255.255 -- IP:11.0.2.246/255.255.255.255 -- IP:11.0.2.247/255.255.255.255 -- IP:11.0.2.248/255.255.255.255 -- IP:11.0.2.249/255.255.255.255 -- IP:11.0.2.250/255.255.255.255 -- IP:11.0.2.251/255.255.255.255 -- IP:11.0.2.252/255.255.255.255 -- IP:11.0.2.253/255.255.255.255 -- IP:11.0.2.254/255.255.255.255 -- IP:11.0.2.255/255.255.255.255 -- IP:11.0.3.0/255.255.255.255 -- IP:11.0.3.1/255.255.255.255 -- IP:11.0.3.2/255.255.255.255 -- IP:11.0.3.3/255.255.255.255 -- IP:11.0.3.4/255.255.255.255 -- IP:11.0.3.5/255.255.255.255 -- IP:11.0.3.6/255.255.255.255 -- IP:11.0.3.7/255.255.255.255 -- IP:11.0.3.8/255.255.255.255 -- IP:11.0.3.9/255.255.255.255 -- IP:11.0.3.10/255.255.255.255 -- IP:11.0.3.11/255.255.255.255 -- IP:11.0.3.12/255.255.255.255 -- IP:11.0.3.13/255.255.255.255 -- IP:11.0.3.14/255.255.255.255 -- IP:11.0.3.15/255.255.255.255 -- IP:11.0.3.16/255.255.255.255 -- IP:11.0.3.17/255.255.255.255 -- IP:11.0.3.18/255.255.255.255 -- IP:11.0.3.19/255.255.255.255 -- IP:11.0.3.20/255.255.255.255 -- IP:11.0.3.21/255.255.255.255 -- IP:11.0.3.22/255.255.255.255 -- IP:11.0.3.23/255.255.255.255 -- IP:11.0.3.24/255.255.255.255 -- IP:11.0.3.25/255.255.255.255 -- IP:11.0.3.26/255.255.255.255 -- IP:11.0.3.27/255.255.255.255 -- IP:11.0.3.28/255.255.255.255 -- IP:11.0.3.29/255.255.255.255 -- IP:11.0.3.30/255.255.255.255 -- IP:11.0.3.31/255.255.255.255 -- IP:11.0.3.32/255.255.255.255 -- IP:11.0.3.33/255.255.255.255 -- IP:11.0.3.34/255.255.255.255 -- IP:11.0.3.35/255.255.255.255 -- IP:11.0.3.36/255.255.255.255 -- IP:11.0.3.37/255.255.255.255 -- IP:11.0.3.38/255.255.255.255 -- IP:11.0.3.39/255.255.255.255 -- IP:11.0.3.40/255.255.255.255 -- IP:11.0.3.41/255.255.255.255 -- IP:11.0.3.42/255.255.255.255 -- IP:11.0.3.43/255.255.255.255 -- IP:11.0.3.44/255.255.255.255 -- IP:11.0.3.45/255.255.255.255 -- IP:11.0.3.46/255.255.255.255 -- IP:11.0.3.47/255.255.255.255 -- IP:11.0.3.48/255.255.255.255 -- IP:11.0.3.49/255.255.255.255 -- IP:11.0.3.50/255.255.255.255 -- IP:11.0.3.51/255.255.255.255 -- IP:11.0.3.52/255.255.255.255 -- IP:11.0.3.53/255.255.255.255 -- IP:11.0.3.54/255.255.255.255 -- IP:11.0.3.55/255.255.255.255 -- IP:11.0.3.56/255.255.255.255 -- IP:11.0.3.57/255.255.255.255 -- IP:11.0.3.58/255.255.255.255 -- IP:11.0.3.59/255.255.255.255 -- IP:11.0.3.60/255.255.255.255 -- IP:11.0.3.61/255.255.255.255 -- IP:11.0.3.62/255.255.255.255 -- IP:11.0.3.63/255.255.255.255 -- IP:11.0.3.64/255.255.255.255 -- IP:11.0.3.65/255.255.255.255 -- IP:11.0.3.66/255.255.255.255 -- IP:11.0.3.67/255.255.255.255 -- IP:11.0.3.68/255.255.255.255 -- IP:11.0.3.69/255.255.255.255 -- IP:11.0.3.70/255.255.255.255 -- IP:11.0.3.71/255.255.255.255 -- IP:11.0.3.72/255.255.255.255 -- IP:11.0.3.73/255.255.255.255 -- IP:11.0.3.74/255.255.255.255 -- IP:11.0.3.75/255.255.255.255 -- IP:11.0.3.76/255.255.255.255 -- IP:11.0.3.77/255.255.255.255 -- IP:11.0.3.78/255.255.255.255 -- IP:11.0.3.79/255.255.255.255 -- IP:11.0.3.80/255.255.255.255 -- IP:11.0.3.81/255.255.255.255 -- IP:11.0.3.82/255.255.255.255 -- IP:11.0.3.83/255.255.255.255 -- IP:11.0.3.84/255.255.255.255 -- IP:11.0.3.85/255.255.255.255 -- IP:11.0.3.86/255.255.255.255 -- IP:11.0.3.87/255.255.255.255 -- IP:11.0.3.88/255.255.255.255 -- IP:11.0.3.89/255.255.255.255 -- IP:11.0.3.90/255.255.255.255 -- IP:11.0.3.91/255.255.255.255 -- IP:11.0.3.92/255.255.255.255 -- IP:11.0.3.93/255.255.255.255 -- IP:11.0.3.94/255.255.255.255 -- IP:11.0.3.95/255.255.255.255 -- IP:11.0.3.96/255.255.255.255 -- IP:11.0.3.97/255.255.255.255 -- IP:11.0.3.98/255.255.255.255 -- IP:11.0.3.99/255.255.255.255 -- IP:11.0.3.100/255.255.255.255 -- IP:11.0.3.101/255.255.255.255 -- IP:11.0.3.102/255.255.255.255 -- IP:11.0.3.103/255.255.255.255 -- IP:11.0.3.104/255.255.255.255 -- IP:11.0.3.105/255.255.255.255 -- IP:11.0.3.106/255.255.255.255 -- IP:11.0.3.107/255.255.255.255 -- IP:11.0.3.108/255.255.255.255 -- IP:11.0.3.109/255.255.255.255 -- IP:11.0.3.110/255.255.255.255 -- IP:11.0.3.111/255.255.255.255 -- IP:11.0.3.112/255.255.255.255 -- IP:11.0.3.113/255.255.255.255 -- IP:11.0.3.114/255.255.255.255 -- IP:11.0.3.115/255.255.255.255 -- IP:11.0.3.116/255.255.255.255 -- IP:11.0.3.117/255.255.255.255 -- IP:11.0.3.118/255.255.255.255 -- IP:11.0.3.119/255.255.255.255 -- IP:11.0.3.120/255.255.255.255 -- IP:11.0.3.121/255.255.255.255 -- IP:11.0.3.122/255.255.255.255 -- IP:11.0.3.123/255.255.255.255 -- IP:11.0.3.124/255.255.255.255 -- IP:11.0.3.125/255.255.255.255 -- IP:11.0.3.126/255.255.255.255 -- IP:11.0.3.127/255.255.255.255 -- IP:11.0.3.128/255.255.255.255 -- IP:11.0.3.129/255.255.255.255 -- IP:11.0.3.130/255.255.255.255 -- IP:11.0.3.131/255.255.255.255 -- IP:11.0.3.132/255.255.255.255 -- IP:11.0.3.133/255.255.255.255 -- IP:11.0.3.134/255.255.255.255 -- IP:11.0.3.135/255.255.255.255 -- IP:11.0.3.136/255.255.255.255 -- IP:11.0.3.137/255.255.255.255 -- IP:11.0.3.138/255.255.255.255 -- IP:11.0.3.139/255.255.255.255 -- IP:11.0.3.140/255.255.255.255 -- IP:11.0.3.141/255.255.255.255 -- IP:11.0.3.142/255.255.255.255 -- IP:11.0.3.143/255.255.255.255 -- IP:11.0.3.144/255.255.255.255 -- IP:11.0.3.145/255.255.255.255 -- IP:11.0.3.146/255.255.255.255 -- IP:11.0.3.147/255.255.255.255 -- IP:11.0.3.148/255.255.255.255 -- IP:11.0.3.149/255.255.255.255 -- IP:11.0.3.150/255.255.255.255 -- IP:11.0.3.151/255.255.255.255 -- IP:11.0.3.152/255.255.255.255 -- IP:11.0.3.153/255.255.255.255 -- IP:11.0.3.154/255.255.255.255 -- IP:11.0.3.155/255.255.255.255 -- IP:11.0.3.156/255.255.255.255 -- IP:11.0.3.157/255.255.255.255 -- IP:11.0.3.158/255.255.255.255 -- IP:11.0.3.159/255.255.255.255 -- IP:11.0.3.160/255.255.255.255 -- IP:11.0.3.161/255.255.255.255 -- IP:11.0.3.162/255.255.255.255 -- IP:11.0.3.163/255.255.255.255 -- IP:11.0.3.164/255.255.255.255 -- IP:11.0.3.165/255.255.255.255 -- IP:11.0.3.166/255.255.255.255 -- IP:11.0.3.167/255.255.255.255 -- IP:11.0.3.168/255.255.255.255 -- IP:11.0.3.169/255.255.255.255 -- IP:11.0.3.170/255.255.255.255 -- IP:11.0.3.171/255.255.255.255 -- IP:11.0.3.172/255.255.255.255 -- IP:11.0.3.173/255.255.255.255 -- IP:11.0.3.174/255.255.255.255 -- IP:11.0.3.175/255.255.255.255 -- IP:11.0.3.176/255.255.255.255 -- IP:11.0.3.177/255.255.255.255 -- IP:11.0.3.178/255.255.255.255 -- IP:11.0.3.179/255.255.255.255 -- IP:11.0.3.180/255.255.255.255 -- IP:11.0.3.181/255.255.255.255 -- IP:11.0.3.182/255.255.255.255 -- IP:11.0.3.183/255.255.255.255 -- IP:11.0.3.184/255.255.255.255 -- IP:11.0.3.185/255.255.255.255 -- IP:11.0.3.186/255.255.255.255 -- IP:11.0.3.187/255.255.255.255 -- IP:11.0.3.188/255.255.255.255 -- IP:11.0.3.189/255.255.255.255 -- IP:11.0.3.190/255.255.255.255 -- IP:11.0.3.191/255.255.255.255 -- IP:11.0.3.192/255.255.255.255 -- IP:11.0.3.193/255.255.255.255 -- IP:11.0.3.194/255.255.255.255 -- IP:11.0.3.195/255.255.255.255 -- IP:11.0.3.196/255.255.255.255 -- IP:11.0.3.197/255.255.255.255 -- IP:11.0.3.198/255.255.255.255 -- IP:11.0.3.199/255.255.255.255 -- IP:11.0.3.200/255.255.255.255 -- IP:11.0.3.201/255.255.255.255 -- IP:11.0.3.202/255.255.255.255 -- IP:11.0.3.203/255.255.255.255 -- IP:11.0.3.204/255.255.255.255 -- IP:11.0.3.205/255.255.255.255 -- IP:11.0.3.206/255.255.255.255 -- IP:11.0.3.207/255.255.255.255 -- IP:11.0.3.208/255.255.255.255 -- IP:11.0.3.209/255.255.255.255 -- IP:11.0.3.210/255.255.255.255 -- IP:11.0.3.211/255.255.255.255 -- IP:11.0.3.212/255.255.255.255 -- IP:11.0.3.213/255.255.255.255 -- IP:11.0.3.214/255.255.255.255 -- IP:11.0.3.215/255.255.255.255 -- IP:11.0.3.216/255.255.255.255 -- IP:11.0.3.217/255.255.255.255 -- IP:11.0.3.218/255.255.255.255 -- IP:11.0.3.219/255.255.255.255 -- IP:11.0.3.220/255.255.255.255 -- IP:11.0.3.221/255.255.255.255 -- IP:11.0.3.222/255.255.255.255 -- IP:11.0.3.223/255.255.255.255 -- IP:11.0.3.224/255.255.255.255 -- IP:11.0.3.225/255.255.255.255 -- IP:11.0.3.226/255.255.255.255 -- IP:11.0.3.227/255.255.255.255 -- IP:11.0.3.228/255.255.255.255 -- IP:11.0.3.229/255.255.255.255 -- IP:11.0.3.230/255.255.255.255 -- IP:11.0.3.231/255.255.255.255 -- IP:11.0.3.232/255.255.255.255 -- IP:11.0.3.233/255.255.255.255 -- IP:11.0.3.234/255.255.255.255 -- IP:11.0.3.235/255.255.255.255 -- IP:11.0.3.236/255.255.255.255 -- IP:11.0.3.237/255.255.255.255 -- IP:11.0.3.238/255.255.255.255 -- IP:11.0.3.239/255.255.255.255 -- IP:11.0.3.240/255.255.255.255 -- IP:11.0.3.241/255.255.255.255 -- IP:11.0.3.242/255.255.255.255 -- IP:11.0.3.243/255.255.255.255 -- IP:11.0.3.244/255.255.255.255 -- IP:11.0.3.245/255.255.255.255 -- IP:11.0.3.246/255.255.255.255 -- IP:11.0.3.247/255.255.255.255 -- IP:11.0.3.248/255.255.255.255 -- IP:11.0.3.249/255.255.255.255 -- IP:11.0.3.250/255.255.255.255 -- IP:11.0.3.251/255.255.255.255 -- IP:11.0.3.252/255.255.255.255 -- IP:11.0.3.253/255.255.255.255 -- IP:11.0.3.254/255.255.255.255 -- IP:11.0.3.255/255.255.255.255 -- IP:11.0.4.0/255.255.255.255 -- DirName:CN = x0 -- DirName:CN = x1 -- DirName:CN = x2 -- DirName:CN = x3 -- DirName:CN = x4 -- DirName:CN = x5 -- DirName:CN = x6 -- DirName:CN = x7 -- DirName:CN = x8 -- DirName:CN = x9 -- DirName:CN = x10 -- DirName:CN = x11 -- DirName:CN = x12 -- DirName:CN = x13 -- DirName:CN = x14 -- DirName:CN = x15 -- DirName:CN = x16 -- DirName:CN = x17 -- DirName:CN = x18 -- DirName:CN = x19 -- DirName:CN = x20 -- DirName:CN = x21 -- DirName:CN = x22 -- DirName:CN = x23 -- DirName:CN = x24 -- DirName:CN = x25 -- DirName:CN = x26 -- DirName:CN = x27 -- DirName:CN = x28 -- DirName:CN = x29 -- DirName:CN = x30 -- DirName:CN = x31 -- DirName:CN = x32 -- DirName:CN = x33 -- DirName:CN = x34 -- DirName:CN = x35 -- DirName:CN = x36 -- DirName:CN = x37 -- DirName:CN = x38 -- DirName:CN = x39 -- DirName:CN = x40 -- DirName:CN = x41 -- DirName:CN = x42 -- DirName:CN = x43 -- DirName:CN = x44 -- DirName:CN = x45 -- DirName:CN = x46 -- DirName:CN = x47 -- DirName:CN = x48 -- DirName:CN = x49 -- DirName:CN = x50 -- DirName:CN = x51 -- DirName:CN = x52 -- DirName:CN = x53 -- DirName:CN = x54 -- DirName:CN = x55 -- DirName:CN = x56 -- DirName:CN = x57 -- DirName:CN = x58 -- DirName:CN = x59 -- DirName:CN = x60 -- DirName:CN = x61 -- DirName:CN = x62 -- DirName:CN = x63 -- DirName:CN = x64 -- DirName:CN = x65 -- DirName:CN = x66 -- DirName:CN = x67 -- DirName:CN = x68 -- DirName:CN = x69 -- DirName:CN = x70 -- DirName:CN = x71 -- DirName:CN = x72 -- DirName:CN = x73 -- DirName:CN = x74 -- DirName:CN = x75 -- DirName:CN = x76 -- DirName:CN = x77 -- DirName:CN = x78 -- DirName:CN = x79 -- DirName:CN = x80 -- DirName:CN = x81 -- DirName:CN = x82 -- DirName:CN = x83 -- DirName:CN = x84 -- DirName:CN = x85 -- DirName:CN = x86 -- DirName:CN = x87 -- DirName:CN = x88 -- DirName:CN = x89 -- DirName:CN = x90 -- DirName:CN = x91 -- DirName:CN = x92 -- DirName:CN = x93 -- DirName:CN = x94 -- DirName:CN = x95 -- DirName:CN = x96 -- DirName:CN = x97 -- DirName:CN = x98 -- DirName:CN = x99 -- DirName:CN = x100 -- DirName:CN = x101 -- DirName:CN = x102 -- DirName:CN = x103 -- DirName:CN = x104 -- DirName:CN = x105 -- DirName:CN = x106 -- DirName:CN = x107 -- DirName:CN = x108 -- DirName:CN = x109 -- DirName:CN = x110 -- DirName:CN = x111 -- DirName:CN = x112 -- DirName:CN = x113 -- DirName:CN = x114 -- DirName:CN = x115 -- DirName:CN = x116 -- DirName:CN = x117 -- DirName:CN = x118 -- DirName:CN = x119 -- DirName:CN = x120 -- DirName:CN = x121 -- DirName:CN = x122 -- DirName:CN = x123 -- DirName:CN = x124 -- DirName:CN = x125 -- DirName:CN = x126 -- DirName:CN = x127 -- DirName:CN = x128 -- DirName:CN = x129 -- DirName:CN = x130 -- DirName:CN = x131 -- DirName:CN = x132 -- DirName:CN = x133 -- DirName:CN = x134 -- DirName:CN = x135 -- DirName:CN = x136 -- DirName:CN = x137 -- DirName:CN = x138 -- DirName:CN = x139 -- DirName:CN = x140 -- DirName:CN = x141 -- DirName:CN = x142 -- DirName:CN = x143 -- DirName:CN = x144 -- DirName:CN = x145 -- DirName:CN = x146 -- DirName:CN = x147 -- DirName:CN = x148 -- DirName:CN = x149 -- DirName:CN = x150 -- DirName:CN = x151 -- DirName:CN = x152 -- DirName:CN = x153 -- DirName:CN = x154 -- DirName:CN = x155 -- DirName:CN = x156 -- DirName:CN = x157 -- DirName:CN = x158 -- DirName:CN = x159 -- DirName:CN = x160 -- DirName:CN = x161 -- DirName:CN = x162 -- DirName:CN = x163 -- DirName:CN = x164 -- DirName:CN = x165 -- DirName:CN = x166 -- DirName:CN = x167 -- DirName:CN = x168 -- DirName:CN = x169 -- DirName:CN = x170 -- DirName:CN = x171 -- DirName:CN = x172 -- DirName:CN = x173 -- DirName:CN = x174 -- DirName:CN = x175 -- DirName:CN = x176 -- DirName:CN = x177 -- DirName:CN = x178 -- DirName:CN = x179 -- DirName:CN = x180 -- DirName:CN = x181 -- DirName:CN = x182 -- DirName:CN = x183 -- DirName:CN = x184 -- DirName:CN = x185 -- DirName:CN = x186 -- DirName:CN = x187 -- DirName:CN = x188 -- DirName:CN = x189 -- DirName:CN = x190 -- DirName:CN = x191 -- DirName:CN = x192 -- DirName:CN = x193 -- DirName:CN = x194 -- DirName:CN = x195 -- DirName:CN = x196 -- DirName:CN = x197 -- DirName:CN = x198 -- DirName:CN = x199 -- DirName:CN = x200 -- DirName:CN = x201 -- DirName:CN = x202 -- DirName:CN = x203 -- DirName:CN = x204 -- DirName:CN = x205 -- DirName:CN = x206 -- DirName:CN = x207 -- DirName:CN = x208 -- DirName:CN = x209 -- DirName:CN = x210 -- DirName:CN = x211 -- DirName:CN = x212 -- DirName:CN = x213 -- DirName:CN = x214 -- DirName:CN = x215 -- DirName:CN = x216 -- DirName:CN = x217 -- DirName:CN = x218 -- DirName:CN = x219 -- DirName:CN = x220 -- DirName:CN = x221 -- DirName:CN = x222 -- DirName:CN = x223 -- DirName:CN = x224 -- DirName:CN = x225 -- DirName:CN = x226 -- DirName:CN = x227 -- DirName:CN = x228 -- DirName:CN = x229 -- DirName:CN = x230 -- DirName:CN = x231 -- DirName:CN = x232 -- DirName:CN = x233 -- DirName:CN = x234 -- DirName:CN = x235 -- DirName:CN = x236 -- DirName:CN = x237 -- DirName:CN = x238 -- DirName:CN = x239 -- DirName:CN = x240 -- DirName:CN = x241 -- DirName:CN = x242 -- DirName:CN = x243 -- DirName:CN = x244 -- DirName:CN = x245 -- DirName:CN = x246 -- DirName:CN = x247 -- DirName:CN = x248 -- DirName:CN = x249 -- DirName:CN = x250 -- DirName:CN = x251 -- DirName:CN = x252 -- DirName:CN = x253 -- DirName:CN = x254 -- DirName:CN = x255 -- DirName:CN = x256 -- DirName:CN = x257 -- DirName:CN = x258 -- DirName:CN = x259 -- DirName:CN = x260 -- DirName:CN = x261 -- DirName:CN = x262 -- DirName:CN = x263 -- DirName:CN = x264 -- DirName:CN = x265 -- DirName:CN = x266 -- DirName:CN = x267 -- DirName:CN = x268 -- DirName:CN = x269 -- DirName:CN = x270 -- DirName:CN = x271 -- DirName:CN = x272 -- DirName:CN = x273 -- DirName:CN = x274 -- DirName:CN = x275 -- DirName:CN = x276 -- DirName:CN = x277 -- DirName:CN = x278 -- DirName:CN = x279 -- DirName:CN = x280 -- DirName:CN = x281 -- DirName:CN = x282 -- DirName:CN = x283 -- DirName:CN = x284 -- DirName:CN = x285 -- DirName:CN = x286 -- DirName:CN = x287 -- DirName:CN = x288 -- DirName:CN = x289 -- DirName:CN = x290 -- DirName:CN = x291 -- DirName:CN = x292 -- DirName:CN = x293 -- DirName:CN = x294 -- DirName:CN = x295 -- DirName:CN = x296 -- DirName:CN = x297 -- DirName:CN = x298 -- DirName:CN = x299 -- DirName:CN = x300 -- DirName:CN = x301 -- DirName:CN = x302 -- DirName:CN = x303 -- DirName:CN = x304 -- DirName:CN = x305 -- DirName:CN = x306 -- DirName:CN = x307 -- DirName:CN = x308 -- DirName:CN = x309 -- DirName:CN = x310 -- DirName:CN = x311 -- DirName:CN = x312 -- DirName:CN = x313 -- DirName:CN = x314 -- DirName:CN = x315 -- DirName:CN = x316 -- DirName:CN = x317 -- DirName:CN = x318 -- DirName:CN = x319 -- DirName:CN = x320 -- DirName:CN = x321 -- DirName:CN = x322 -- DirName:CN = x323 -- DirName:CN = x324 -- DirName:CN = x325 -- DirName:CN = x326 -- DirName:CN = x327 -- DirName:CN = x328 -- DirName:CN = x329 -- DirName:CN = x330 -- DirName:CN = x331 -- DirName:CN = x332 -- DirName:CN = x333 -- DirName:CN = x334 -- DirName:CN = x335 -- DirName:CN = x336 -- DirName:CN = x337 -- DirName:CN = x338 -- DirName:CN = x339 -- DirName:CN = x340 -- DirName:CN = x341 -- DirName:CN = x342 -- DirName:CN = x343 -- DirName:CN = x344 -- DirName:CN = x345 -- DirName:CN = x346 -- DirName:CN = x347 -- DirName:CN = x348 -- DirName:CN = x349 -- DirName:CN = x350 -- DirName:CN = x351 -- DirName:CN = x352 -- DirName:CN = x353 -- DirName:CN = x354 -- DirName:CN = x355 -- DirName:CN = x356 -- DirName:CN = x357 -- DirName:CN = x358 -- DirName:CN = x359 -- DirName:CN = x360 -- DirName:CN = x361 -- DirName:CN = x362 -- DirName:CN = x363 -- DirName:CN = x364 -- DirName:CN = x365 -- DirName:CN = x366 -- DirName:CN = x367 -- DirName:CN = x368 -- DirName:CN = x369 -- DirName:CN = x370 -- DirName:CN = x371 -- DirName:CN = x372 -- DirName:CN = x373 -- DirName:CN = x374 -- DirName:CN = x375 -- DirName:CN = x376 -- DirName:CN = x377 -- DirName:CN = x378 -- DirName:CN = x379 -- DirName:CN = x380 -- DirName:CN = x381 -- DirName:CN = x382 -- DirName:CN = x383 -- DirName:CN = x384 -- DirName:CN = x385 -- DirName:CN = x386 -- DirName:CN = x387 -- DirName:CN = x388 -- DirName:CN = x389 -- DirName:CN = x390 -- DirName:CN = x391 -- DirName:CN = x392 -- DirName:CN = x393 -- DirName:CN = x394 -- DirName:CN = x395 -- DirName:CN = x396 -- DirName:CN = x397 -- DirName:CN = x398 -- DirName:CN = x399 -- DirName:CN = x400 -- DirName:CN = x401 -- DirName:CN = x402 -- DirName:CN = x403 -- DirName:CN = x404 -- DirName:CN = x405 -- DirName:CN = x406 -- DirName:CN = x407 -- DirName:CN = x408 -- DirName:CN = x409 -- DirName:CN = x410 -- DirName:CN = x411 -- DirName:CN = x412 -- DirName:CN = x413 -- DirName:CN = x414 -- DirName:CN = x415 -- DirName:CN = x416 -- DirName:CN = x417 -- DirName:CN = x418 -- DirName:CN = x419 -- DirName:CN = x420 -- DirName:CN = x421 -- DirName:CN = x422 -- DirName:CN = x423 -- DirName:CN = x424 -- DirName:CN = x425 -- DirName:CN = x426 -- DirName:CN = x427 -- DirName:CN = x428 -- DirName:CN = x429 -- DirName:CN = x430 -- DirName:CN = x431 -- DirName:CN = x432 -- DirName:CN = x433 -- DirName:CN = x434 -- DirName:CN = x435 -- DirName:CN = x436 -- DirName:CN = x437 -- DirName:CN = x438 -- DirName:CN = x439 -- DirName:CN = x440 -- DirName:CN = x441 -- DirName:CN = x442 -- DirName:CN = x443 -- DirName:CN = x444 -- DirName:CN = x445 -- DirName:CN = x446 -- DirName:CN = x447 -- DirName:CN = x448 -- DirName:CN = x449 -- DirName:CN = x450 -- DirName:CN = x451 -- DirName:CN = x452 -- DirName:CN = x453 -- DirName:CN = x454 -- DirName:CN = x455 -- DirName:CN = x456 -- DirName:CN = x457 -- DirName:CN = x458 -- DirName:CN = x459 -- DirName:CN = x460 -- DirName:CN = x461 -- DirName:CN = x462 -- DirName:CN = x463 -- DirName:CN = x464 -- DirName:CN = x465 -- DirName:CN = x466 -- DirName:CN = x467 -- DirName:CN = x468 -- DirName:CN = x469 -- DirName:CN = x470 -- DirName:CN = x471 -- DirName:CN = x472 -- DirName:CN = x473 -- DirName:CN = x474 -- DirName:CN = x475 -- DirName:CN = x476 -- DirName:CN = x477 -- DirName:CN = x478 -- DirName:CN = x479 -- DirName:CN = x480 -- DirName:CN = x481 -- DirName:CN = x482 -- DirName:CN = x483 -- DirName:CN = x484 -- DirName:CN = x485 -- DirName:CN = x486 -- DirName:CN = x487 -- DirName:CN = x488 -- DirName:CN = x489 -- DirName:CN = x490 -- DirName:CN = x491 -- DirName:CN = x492 -- DirName:CN = x493 -- DirName:CN = x494 -- DirName:CN = x495 -- DirName:CN = x496 -- DirName:CN = x497 -- DirName:CN = x498 -- DirName:CN = x499 -- DirName:CN = x500 -- DirName:CN = x501 -- DirName:CN = x502 -- DirName:CN = x503 -- DirName:CN = x504 -- DirName:CN = x505 -- DirName:CN = x506 -- DirName:CN = x507 -- DirName:CN = x508 -- DirName:CN = x509 -- DirName:CN = x510 -- DirName:CN = x511 -- DirName:CN = x512 -- DirName:CN = x513 -- DirName:CN = x514 -- DirName:CN = x515 -- DirName:CN = x516 -- DirName:CN = x517 -- DirName:CN = x518 -- DirName:CN = x519 -- DirName:CN = x520 -- DirName:CN = x521 -- DirName:CN = x522 -- DirName:CN = x523 -- DirName:CN = x524 -- DirName:CN = x525 -- DirName:CN = x526 -- DirName:CN = x527 -- DirName:CN = x528 -- DirName:CN = x529 -- DirName:CN = x530 -- DirName:CN = x531 -- DirName:CN = x532 -- DirName:CN = x533 -- DirName:CN = x534 -- DirName:CN = x535 -- DirName:CN = x536 -- DirName:CN = x537 -- DirName:CN = x538 -- DirName:CN = x539 -- DirName:CN = x540 -- DirName:CN = x541 -- DirName:CN = x542 -- DirName:CN = x543 -- DirName:CN = x544 -- DirName:CN = x545 -- DirName:CN = x546 -- DirName:CN = x547 -- DirName:CN = x548 -- DirName:CN = x549 -- DirName:CN = x550 -- DirName:CN = x551 -- DirName:CN = x552 -- DirName:CN = x553 -- DirName:CN = x554 -- DirName:CN = x555 -- DirName:CN = x556 -- DirName:CN = x557 -- DirName:CN = x558 -- DirName:CN = x559 -- DirName:CN = x560 -- DirName:CN = x561 -- DirName:CN = x562 -- DirName:CN = x563 -- DirName:CN = x564 -- DirName:CN = x565 -- DirName:CN = x566 -- DirName:CN = x567 -- DirName:CN = x568 -- DirName:CN = x569 -- DirName:CN = x570 -- DirName:CN = x571 -- DirName:CN = x572 -- DirName:CN = x573 -- DirName:CN = x574 -- DirName:CN = x575 -- DirName:CN = x576 -- DirName:CN = x577 -- DirName:CN = x578 -- DirName:CN = x579 -- DirName:CN = x580 -- DirName:CN = x581 -- DirName:CN = x582 -- DirName:CN = x583 -- DirName:CN = x584 -- DirName:CN = x585 -- DirName:CN = x586 -- DirName:CN = x587 -- DirName:CN = x588 -- DirName:CN = x589 -- DirName:CN = x590 -- DirName:CN = x591 -- DirName:CN = x592 -- DirName:CN = x593 -- DirName:CN = x594 -- DirName:CN = x595 -- DirName:CN = x596 -- DirName:CN = x597 -- DirName:CN = x598 -- DirName:CN = x599 -- DirName:CN = x600 -- DirName:CN = x601 -- DirName:CN = x602 -- DirName:CN = x603 -- DirName:CN = x604 -- DirName:CN = x605 -- DirName:CN = x606 -- DirName:CN = x607 -- DirName:CN = x608 -- DirName:CN = x609 -- DirName:CN = x610 -- DirName:CN = x611 -- DirName:CN = x612 -- DirName:CN = x613 -- DirName:CN = x614 -- DirName:CN = x615 -- DirName:CN = x616 -- DirName:CN = x617 -- DirName:CN = x618 -- DirName:CN = x619 -- DirName:CN = x620 -- DirName:CN = x621 -- DirName:CN = x622 -- DirName:CN = x623 -- DirName:CN = x624 -- DirName:CN = x625 -- DirName:CN = x626 -- DirName:CN = x627 -- DirName:CN = x628 -- DirName:CN = x629 -- DirName:CN = x630 -- DirName:CN = x631 -- DirName:CN = x632 -- DirName:CN = x633 -- DirName:CN = x634 -- DirName:CN = x635 -- DirName:CN = x636 -- DirName:CN = x637 -- DirName:CN = x638 -- DirName:CN = x639 -- DirName:CN = x640 -- DirName:CN = x641 -- DirName:CN = x642 -- DirName:CN = x643 -- DirName:CN = x644 -- DirName:CN = x645 -- DirName:CN = x646 -- DirName:CN = x647 -- DirName:CN = x648 -- DirName:CN = x649 -- DirName:CN = x650 -- DirName:CN = x651 -- DirName:CN = x652 -- DirName:CN = x653 -- DirName:CN = x654 -- DirName:CN = x655 -- DirName:CN = x656 -- DirName:CN = x657 -- DirName:CN = x658 -- DirName:CN = x659 -- DirName:CN = x660 -- DirName:CN = x661 -- DirName:CN = x662 -- DirName:CN = x663 -- DirName:CN = x664 -- DirName:CN = x665 -- DirName:CN = x666 -- DirName:CN = x667 -- DirName:CN = x668 -- DirName:CN = x669 -- DirName:CN = x670 -- DirName:CN = x671 -- DirName:CN = x672 -- DirName:CN = x673 -- DirName:CN = x674 -- DirName:CN = x675 -- DirName:CN = x676 -- DirName:CN = x677 -- DirName:CN = x678 -- DirName:CN = x679 -- DirName:CN = x680 -- DirName:CN = x681 -- DirName:CN = x682 -- DirName:CN = x683 -- DirName:CN = x684 -- DirName:CN = x685 -- DirName:CN = x686 -- DirName:CN = x687 -- DirName:CN = x688 -- DirName:CN = x689 -- DirName:CN = x690 -- DirName:CN = x691 -- DirName:CN = x692 -- DirName:CN = x693 -- DirName:CN = x694 -- DirName:CN = x695 -- DirName:CN = x696 -- DirName:CN = x697 -- DirName:CN = x698 -- DirName:CN = x699 -- DirName:CN = x700 -- DirName:CN = x701 -- DirName:CN = x702 -- DirName:CN = x703 -- DirName:CN = x704 -- DirName:CN = x705 -- DirName:CN = x706 -- DirName:CN = x707 -- DirName:CN = x708 -- DirName:CN = x709 -- DirName:CN = x710 -- DirName:CN = x711 -- DirName:CN = x712 -- DirName:CN = x713 -- DirName:CN = x714 -- DirName:CN = x715 -- DirName:CN = x716 -- DirName:CN = x717 -- DirName:CN = x718 -- DirName:CN = x719 -- DirName:CN = x720 -- DirName:CN = x721 -- DirName:CN = x722 -- DirName:CN = x723 -- DirName:CN = x724 -- DirName:CN = x725 -- DirName:CN = x726 -- DirName:CN = x727 -- DirName:CN = x728 -- DirName:CN = x729 -- DirName:CN = x730 -- DirName:CN = x731 -- DirName:CN = x732 -- DirName:CN = x733 -- DirName:CN = x734 -- DirName:CN = x735 -- DirName:CN = x736 -- DirName:CN = x737 -- DirName:CN = x738 -- DirName:CN = x739 -- DirName:CN = x740 -- DirName:CN = x741 -- DirName:CN = x742 -- DirName:CN = x743 -- DirName:CN = x744 -- DirName:CN = x745 -- DirName:CN = x746 -- DirName:CN = x747 -- DirName:CN = x748 -- DirName:CN = x749 -- DirName:CN = x750 -- DirName:CN = x751 -- DirName:CN = x752 -- DirName:CN = x753 -- DirName:CN = x754 -- DirName:CN = x755 -- DirName:CN = x756 -- DirName:CN = x757 -- DirName:CN = x758 -- DirName:CN = x759 -- DirName:CN = x760 -- DirName:CN = x761 -- DirName:CN = x762 -- DirName:CN = x763 -- DirName:CN = x764 -- DirName:CN = x765 -- DirName:CN = x766 -- DirName:CN = x767 -- DirName:CN = x768 -- DirName:CN = x769 -- DirName:CN = x770 -- DirName:CN = x771 -- DirName:CN = x772 -- DirName:CN = x773 -- DirName:CN = x774 -- DirName:CN = x775 -- DirName:CN = x776 -- DirName:CN = x777 -- DirName:CN = x778 -- DirName:CN = x779 -- DirName:CN = x780 -- DirName:CN = x781 -- DirName:CN = x782 -- DirName:CN = x783 -- DirName:CN = x784 -- DirName:CN = x785 -- DirName:CN = x786 -- DirName:CN = x787 -- DirName:CN = x788 -- DirName:CN = x789 -- DirName:CN = x790 -- DirName:CN = x791 -- DirName:CN = x792 -- DirName:CN = x793 -- DirName:CN = x794 -- DirName:CN = x795 -- DirName:CN = x796 -- DirName:CN = x797 -- DirName:CN = x798 -- DirName:CN = x799 -- DirName:CN = x800 -- DirName:CN = x801 -- DirName:CN = x802 -- DirName:CN = x803 -- DirName:CN = x804 -- DirName:CN = x805 -- DirName:CN = x806 -- DirName:CN = x807 -- DirName:CN = x808 -- DirName:CN = x809 -- DirName:CN = x810 -- DirName:CN = x811 -- DirName:CN = x812 -- DirName:CN = x813 -- DirName:CN = x814 -- DirName:CN = x815 -- DirName:CN = x816 -- DirName:CN = x817 -- DirName:CN = x818 -- DirName:CN = x819 -- DirName:CN = x820 -- DirName:CN = x821 -- DirName:CN = x822 -- DirName:CN = x823 -- DirName:CN = x824 -- DirName:CN = x825 -- DirName:CN = x826 -- DirName:CN = x827 -- DirName:CN = x828 -- DirName:CN = x829 -- DirName:CN = x830 -- DirName:CN = x831 -- DirName:CN = x832 -- DirName:CN = x833 -- DirName:CN = x834 -- DirName:CN = x835 -- DirName:CN = x836 -- DirName:CN = x837 -- DirName:CN = x838 -- DirName:CN = x839 -- DirName:CN = x840 -- DirName:CN = x841 -- DirName:CN = x842 -- DirName:CN = x843 -- DirName:CN = x844 -- DirName:CN = x845 -- DirName:CN = x846 -- DirName:CN = x847 -- DirName:CN = x848 -- DirName:CN = x849 -- DirName:CN = x850 -- DirName:CN = x851 -- DirName:CN = x852 -- DirName:CN = x853 -- DirName:CN = x854 -- DirName:CN = x855 -- DirName:CN = x856 -- DirName:CN = x857 -- DirName:CN = x858 -- DirName:CN = x859 -- DirName:CN = x860 -- DirName:CN = x861 -- DirName:CN = x862 -- DirName:CN = x863 -- DirName:CN = x864 -- DirName:CN = x865 -- DirName:CN = x866 -- DirName:CN = x867 -- DirName:CN = x868 -- DirName:CN = x869 -- DirName:CN = x870 -- DirName:CN = x871 -- DirName:CN = x872 -- DirName:CN = x873 -- DirName:CN = x874 -- DirName:CN = x875 -- DirName:CN = x876 -- DirName:CN = x877 -- DirName:CN = x878 -- DirName:CN = x879 -- DirName:CN = x880 -- DirName:CN = x881 -- DirName:CN = x882 -- DirName:CN = x883 -- DirName:CN = x884 -- DirName:CN = x885 -- DirName:CN = x886 -- DirName:CN = x887 -- DirName:CN = x888 -- DirName:CN = x889 -- DirName:CN = x890 -- DirName:CN = x891 -- DirName:CN = x892 -- DirName:CN = x893 -- DirName:CN = x894 -- DirName:CN = x895 -- DirName:CN = x896 -- DirName:CN = x897 -- DirName:CN = x898 -- DirName:CN = x899 -- DirName:CN = x900 -- DirName:CN = x901 -- DirName:CN = x902 -- DirName:CN = x903 -- DirName:CN = x904 -- DirName:CN = x905 -- DirName:CN = x906 -- DirName:CN = x907 -- DirName:CN = x908 -- DirName:CN = x909 -- DirName:CN = x910 -- DirName:CN = x911 -- DirName:CN = x912 -- DirName:CN = x913 -- DirName:CN = x914 -- DirName:CN = x915 -- DirName:CN = x916 -- DirName:CN = x917 -- DirName:CN = x918 -- DirName:CN = x919 -- DirName:CN = x920 -- DirName:CN = x921 -- DirName:CN = x922 -- DirName:CN = x923 -- DirName:CN = x924 -- DirName:CN = x925 -- DirName:CN = x926 -- DirName:CN = x927 -- DirName:CN = x928 -- DirName:CN = x929 -- DirName:CN = x930 -- DirName:CN = x931 -- DirName:CN = x932 -- DirName:CN = x933 -- DirName:CN = x934 -- DirName:CN = x935 -- DirName:CN = x936 -- DirName:CN = x937 -- DirName:CN = x938 -- DirName:CN = x939 -- DirName:CN = x940 -- DirName:CN = x941 -- DirName:CN = x942 -- DirName:CN = x943 -- DirName:CN = x944 -- DirName:CN = x945 -- DirName:CN = x946 -- DirName:CN = x947 -- DirName:CN = x948 -- DirName:CN = x949 -- DirName:CN = x950 -- DirName:CN = x951 -- DirName:CN = x952 -- DirName:CN = x953 -- DirName:CN = x954 -- DirName:CN = x955 -- DirName:CN = x956 -- DirName:CN = x957 -- DirName:CN = x958 -- DirName:CN = x959 -- DirName:CN = x960 -- DirName:CN = x961 -- DirName:CN = x962 -- DirName:CN = x963 -- DirName:CN = x964 -- DirName:CN = x965 -- DirName:CN = x966 -- DirName:CN = x967 -- DirName:CN = x968 -- DirName:CN = x969 -- DirName:CN = x970 -- DirName:CN = x971 -- DirName:CN = x972 -- DirName:CN = x973 -- DirName:CN = x974 -- DirName:CN = x975 -- DirName:CN = x976 -- DirName:CN = x977 -- DirName:CN = x978 -- DirName:CN = x979 -- DirName:CN = x980 -- DirName:CN = x981 -- DirName:CN = x982 -- DirName:CN = x983 -- DirName:CN = x984 -- DirName:CN = x985 -- DirName:CN = x986 -- DirName:CN = x987 -- DirName:CN = x988 -- DirName:CN = x989 -- DirName:CN = x990 -- DirName:CN = x991 -- DirName:CN = x992 -- DirName:CN = x993 -- DirName:CN = x994 -- DirName:CN = x995 -- DirName:CN = x996 -- DirName:CN = x997 -- DirName:CN = x998 -- DirName:CN = x999 -- DirName:CN = x1000 -- DirName:CN = x1001 -- DirName:CN = x1002 -- DirName:CN = x1003 -- DirName:CN = x1004 -- DirName:CN = x1005 -- DirName:CN = x1006 -- DirName:CN = x1007 -- DirName:CN = x1008 -- DirName:CN = x1009 -- DirName:CN = x1010 -- DirName:CN = x1011 -- DirName:CN = x1012 -- DirName:CN = x1013 -- DirName:CN = x1014 -- DirName:CN = x1015 -- DirName:CN = x1016 -- DirName:CN = x1017 -- DirName:CN = x1018 -- DirName:CN = x1019 -- DirName:CN = x1020 -- DirName:CN = x1021 -- DirName:CN = x1022 -- DirName:CN = x1023 -- DirName:CN = x1024 -- URI:http://xest/0 -- URI:http://xest/1 -- URI:http://xest/2 -- URI:http://xest/3 -- URI:http://xest/4 -- URI:http://xest/5 -- URI:http://xest/6 -- URI:http://xest/7 -- URI:http://xest/8 -- URI:http://xest/9 -- URI:http://xest/10 -- URI:http://xest/11 -- URI:http://xest/12 -- URI:http://xest/13 -- URI:http://xest/14 -- URI:http://xest/15 -- URI:http://xest/16 -- URI:http://xest/17 -- URI:http://xest/18 -- URI:http://xest/19 -- URI:http://xest/20 -- URI:http://xest/21 -- URI:http://xest/22 -- URI:http://xest/23 -- URI:http://xest/24 -- URI:http://xest/25 -- URI:http://xest/26 -- URI:http://xest/27 -- URI:http://xest/28 -- URI:http://xest/29 -- URI:http://xest/30 -- URI:http://xest/31 -- URI:http://xest/32 -- URI:http://xest/33 -- URI:http://xest/34 -- URI:http://xest/35 -- URI:http://xest/36 -- URI:http://xest/37 -- URI:http://xest/38 -- URI:http://xest/39 -- URI:http://xest/40 -- URI:http://xest/41 -- URI:http://xest/42 -- URI:http://xest/43 -- URI:http://xest/44 -- URI:http://xest/45 -- URI:http://xest/46 -- URI:http://xest/47 -- URI:http://xest/48 -- URI:http://xest/49 -- URI:http://xest/50 -- URI:http://xest/51 -- URI:http://xest/52 -- URI:http://xest/53 -- URI:http://xest/54 -- URI:http://xest/55 -- URI:http://xest/56 -- URI:http://xest/57 -- URI:http://xest/58 -- URI:http://xest/59 -- URI:http://xest/60 -- URI:http://xest/61 -- URI:http://xest/62 -- URI:http://xest/63 -- URI:http://xest/64 -- URI:http://xest/65 -- URI:http://xest/66 -- URI:http://xest/67 -- URI:http://xest/68 -- URI:http://xest/69 -- URI:http://xest/70 -- URI:http://xest/71 -- URI:http://xest/72 -- URI:http://xest/73 -- URI:http://xest/74 -- URI:http://xest/75 -- URI:http://xest/76 -- URI:http://xest/77 -- URI:http://xest/78 -- URI:http://xest/79 -- URI:http://xest/80 -- URI:http://xest/81 -- URI:http://xest/82 -- URI:http://xest/83 -- URI:http://xest/84 -- URI:http://xest/85 -- URI:http://xest/86 -- URI:http://xest/87 -- URI:http://xest/88 -- URI:http://xest/89 -- URI:http://xest/90 -- URI:http://xest/91 -- URI:http://xest/92 -- URI:http://xest/93 -- URI:http://xest/94 -- URI:http://xest/95 -- URI:http://xest/96 -- URI:http://xest/97 -- URI:http://xest/98 -- URI:http://xest/99 -- URI:http://xest/100 -- URI:http://xest/101 -- URI:http://xest/102 -- URI:http://xest/103 -- URI:http://xest/104 -- URI:http://xest/105 -- URI:http://xest/106 -- URI:http://xest/107 -- URI:http://xest/108 -- URI:http://xest/109 -- URI:http://xest/110 -- URI:http://xest/111 -- URI:http://xest/112 -- URI:http://xest/113 -- URI:http://xest/114 -- URI:http://xest/115 -- URI:http://xest/116 -- URI:http://xest/117 -- URI:http://xest/118 -- URI:http://xest/119 -- URI:http://xest/120 -- URI:http://xest/121 -- URI:http://xest/122 -- URI:http://xest/123 -- URI:http://xest/124 -- URI:http://xest/125 -- URI:http://xest/126 -- URI:http://xest/127 -- URI:http://xest/128 -- URI:http://xest/129 -- URI:http://xest/130 -- URI:http://xest/131 -- URI:http://xest/132 -- URI:http://xest/133 -- URI:http://xest/134 -- URI:http://xest/135 -- URI:http://xest/136 -- URI:http://xest/137 -- URI:http://xest/138 -- URI:http://xest/139 -- URI:http://xest/140 -- URI:http://xest/141 -- URI:http://xest/142 -- URI:http://xest/143 -- URI:http://xest/144 -- URI:http://xest/145 -- URI:http://xest/146 -- URI:http://xest/147 -- URI:http://xest/148 -- URI:http://xest/149 -- URI:http://xest/150 -- URI:http://xest/151 -- URI:http://xest/152 -- URI:http://xest/153 -- URI:http://xest/154 -- URI:http://xest/155 -- URI:http://xest/156 -- URI:http://xest/157 -- URI:http://xest/158 -- URI:http://xest/159 -- URI:http://xest/160 -- URI:http://xest/161 -- URI:http://xest/162 -- URI:http://xest/163 -- URI:http://xest/164 -- URI:http://xest/165 -- URI:http://xest/166 -- URI:http://xest/167 -- URI:http://xest/168 -- URI:http://xest/169 -- URI:http://xest/170 -- URI:http://xest/171 -- URI:http://xest/172 -- URI:http://xest/173 -- URI:http://xest/174 -- URI:http://xest/175 -- URI:http://xest/176 -- URI:http://xest/177 -- URI:http://xest/178 -- URI:http://xest/179 -- URI:http://xest/180 -- URI:http://xest/181 -- URI:http://xest/182 -- URI:http://xest/183 -- URI:http://xest/184 -- URI:http://xest/185 -- URI:http://xest/186 -- URI:http://xest/187 -- URI:http://xest/188 -- URI:http://xest/189 -- URI:http://xest/190 -- URI:http://xest/191 -- URI:http://xest/192 -- URI:http://xest/193 -- URI:http://xest/194 -- URI:http://xest/195 -- URI:http://xest/196 -- URI:http://xest/197 -- URI:http://xest/198 -- URI:http://xest/199 -- URI:http://xest/200 -- URI:http://xest/201 -- URI:http://xest/202 -- URI:http://xest/203 -- URI:http://xest/204 -- URI:http://xest/205 -- URI:http://xest/206 -- URI:http://xest/207 -- URI:http://xest/208 -- URI:http://xest/209 -- URI:http://xest/210 -- URI:http://xest/211 -- URI:http://xest/212 -- URI:http://xest/213 -- URI:http://xest/214 -- URI:http://xest/215 -- URI:http://xest/216 -- URI:http://xest/217 -- URI:http://xest/218 -- URI:http://xest/219 -- URI:http://xest/220 -- URI:http://xest/221 -- URI:http://xest/222 -- URI:http://xest/223 -- URI:http://xest/224 -- URI:http://xest/225 -- URI:http://xest/226 -- URI:http://xest/227 -- URI:http://xest/228 -- URI:http://xest/229 -- URI:http://xest/230 -- URI:http://xest/231 -- URI:http://xest/232 -- URI:http://xest/233 -- URI:http://xest/234 -- URI:http://xest/235 -- URI:http://xest/236 -- URI:http://xest/237 -- URI:http://xest/238 -- URI:http://xest/239 -- URI:http://xest/240 -- URI:http://xest/241 -- URI:http://xest/242 -- URI:http://xest/243 -- URI:http://xest/244 -- URI:http://xest/245 -- URI:http://xest/246 -- URI:http://xest/247 -- URI:http://xest/248 -- URI:http://xest/249 -- URI:http://xest/250 -- URI:http://xest/251 -- URI:http://xest/252 -- URI:http://xest/253 -- URI:http://xest/254 -- URI:http://xest/255 -- URI:http://xest/256 -- URI:http://xest/257 -- URI:http://xest/258 -- URI:http://xest/259 -- URI:http://xest/260 -- URI:http://xest/261 -- URI:http://xest/262 -- URI:http://xest/263 -- URI:http://xest/264 -- URI:http://xest/265 -- URI:http://xest/266 -- URI:http://xest/267 -- URI:http://xest/268 -- URI:http://xest/269 -- URI:http://xest/270 -- URI:http://xest/271 -- URI:http://xest/272 -- URI:http://xest/273 -- URI:http://xest/274 -- URI:http://xest/275 -- URI:http://xest/276 -- URI:http://xest/277 -- URI:http://xest/278 -- URI:http://xest/279 -- URI:http://xest/280 -- URI:http://xest/281 -- URI:http://xest/282 -- URI:http://xest/283 -- URI:http://xest/284 -- URI:http://xest/285 -- URI:http://xest/286 -- URI:http://xest/287 -- URI:http://xest/288 -- URI:http://xest/289 -- URI:http://xest/290 -- URI:http://xest/291 -- URI:http://xest/292 -- URI:http://xest/293 -- URI:http://xest/294 -- URI:http://xest/295 -- URI:http://xest/296 -- URI:http://xest/297 -- URI:http://xest/298 -- URI:http://xest/299 -- URI:http://xest/300 -- URI:http://xest/301 -- URI:http://xest/302 -- URI:http://xest/303 -- URI:http://xest/304 -- URI:http://xest/305 -- URI:http://xest/306 -- URI:http://xest/307 -- URI:http://xest/308 -- URI:http://xest/309 -- URI:http://xest/310 -- URI:http://xest/311 -- URI:http://xest/312 -- URI:http://xest/313 -- URI:http://xest/314 -- URI:http://xest/315 -- URI:http://xest/316 -- URI:http://xest/317 -- URI:http://xest/318 -- URI:http://xest/319 -- URI:http://xest/320 -- URI:http://xest/321 -- URI:http://xest/322 -- URI:http://xest/323 -- URI:http://xest/324 -- URI:http://xest/325 -- URI:http://xest/326 -- URI:http://xest/327 -- URI:http://xest/328 -- URI:http://xest/329 -- URI:http://xest/330 -- URI:http://xest/331 -- URI:http://xest/332 -- URI:http://xest/333 -- URI:http://xest/334 -- URI:http://xest/335 -- URI:http://xest/336 -- URI:http://xest/337 -- URI:http://xest/338 -- URI:http://xest/339 -- URI:http://xest/340 -- URI:http://xest/341 -- URI:http://xest/342 -- URI:http://xest/343 -- URI:http://xest/344 -- URI:http://xest/345 -- URI:http://xest/346 -- URI:http://xest/347 -- URI:http://xest/348 -- URI:http://xest/349 -- URI:http://xest/350 -- URI:http://xest/351 -- URI:http://xest/352 -- URI:http://xest/353 -- URI:http://xest/354 -- URI:http://xest/355 -- URI:http://xest/356 -- URI:http://xest/357 -- URI:http://xest/358 -- URI:http://xest/359 -- URI:http://xest/360 -- URI:http://xest/361 -- URI:http://xest/362 -- URI:http://xest/363 -- URI:http://xest/364 -- URI:http://xest/365 -- URI:http://xest/366 -- URI:http://xest/367 -- URI:http://xest/368 -- URI:http://xest/369 -- URI:http://xest/370 -- URI:http://xest/371 -- URI:http://xest/372 -- URI:http://xest/373 -- URI:http://xest/374 -- URI:http://xest/375 -- URI:http://xest/376 -- URI:http://xest/377 -- URI:http://xest/378 -- URI:http://xest/379 -- URI:http://xest/380 -- URI:http://xest/381 -- URI:http://xest/382 -- URI:http://xest/383 -- URI:http://xest/384 -- URI:http://xest/385 -- URI:http://xest/386 -- URI:http://xest/387 -- URI:http://xest/388 -- URI:http://xest/389 -- URI:http://xest/390 -- URI:http://xest/391 -- URI:http://xest/392 -- URI:http://xest/393 -- URI:http://xest/394 -- URI:http://xest/395 -- URI:http://xest/396 -- URI:http://xest/397 -- URI:http://xest/398 -- URI:http://xest/399 -- URI:http://xest/400 -- URI:http://xest/401 -- URI:http://xest/402 -- URI:http://xest/403 -- URI:http://xest/404 -- URI:http://xest/405 -- URI:http://xest/406 -- URI:http://xest/407 -- URI:http://xest/408 -- URI:http://xest/409 -- URI:http://xest/410 -- URI:http://xest/411 -- URI:http://xest/412 -- URI:http://xest/413 -- URI:http://xest/414 -- URI:http://xest/415 -- URI:http://xest/416 -- URI:http://xest/417 -- URI:http://xest/418 -- URI:http://xest/419 -- URI:http://xest/420 -- URI:http://xest/421 -- URI:http://xest/422 -- URI:http://xest/423 -- URI:http://xest/424 -- URI:http://xest/425 -- URI:http://xest/426 -- URI:http://xest/427 -- URI:http://xest/428 -- URI:http://xest/429 -- URI:http://xest/430 -- URI:http://xest/431 -- URI:http://xest/432 -- URI:http://xest/433 -- URI:http://xest/434 -- URI:http://xest/435 -- URI:http://xest/436 -- URI:http://xest/437 -- URI:http://xest/438 -- URI:http://xest/439 -- URI:http://xest/440 -- URI:http://xest/441 -- URI:http://xest/442 -- URI:http://xest/443 -- URI:http://xest/444 -- URI:http://xest/445 -- URI:http://xest/446 -- URI:http://xest/447 -- URI:http://xest/448 -- URI:http://xest/449 -- URI:http://xest/450 -- URI:http://xest/451 -- URI:http://xest/452 -- URI:http://xest/453 -- URI:http://xest/454 -- URI:http://xest/455 -- URI:http://xest/456 -- URI:http://xest/457 -- URI:http://xest/458 -- URI:http://xest/459 -- URI:http://xest/460 -- URI:http://xest/461 -- URI:http://xest/462 -- URI:http://xest/463 -- URI:http://xest/464 -- URI:http://xest/465 -- URI:http://xest/466 -- URI:http://xest/467 -- URI:http://xest/468 -- URI:http://xest/469 -- URI:http://xest/470 -- URI:http://xest/471 -- URI:http://xest/472 -- URI:http://xest/473 -- URI:http://xest/474 -- URI:http://xest/475 -- URI:http://xest/476 -- URI:http://xest/477 -- URI:http://xest/478 -- URI:http://xest/479 -- URI:http://xest/480 -- URI:http://xest/481 -- URI:http://xest/482 -- URI:http://xest/483 -- URI:http://xest/484 -- URI:http://xest/485 -- URI:http://xest/486 -- URI:http://xest/487 -- URI:http://xest/488 -- URI:http://xest/489 -- URI:http://xest/490 -- URI:http://xest/491 -- URI:http://xest/492 -- URI:http://xest/493 -- URI:http://xest/494 -- URI:http://xest/495 -- URI:http://xest/496 -- URI:http://xest/497 -- URI:http://xest/498 -- URI:http://xest/499 -- URI:http://xest/500 -- URI:http://xest/501 -- URI:http://xest/502 -- URI:http://xest/503 -- URI:http://xest/504 -- URI:http://xest/505 -- URI:http://xest/506 -- URI:http://xest/507 -- URI:http://xest/508 -- URI:http://xest/509 -- URI:http://xest/510 -- URI:http://xest/511 -- URI:http://xest/512 -- URI:http://xest/513 -- URI:http://xest/514 -- URI:http://xest/515 -- URI:http://xest/516 -- URI:http://xest/517 -- URI:http://xest/518 -- URI:http://xest/519 -- URI:http://xest/520 -- URI:http://xest/521 -- URI:http://xest/522 -- URI:http://xest/523 -- URI:http://xest/524 -- URI:http://xest/525 -- URI:http://xest/526 -- URI:http://xest/527 -- URI:http://xest/528 -- URI:http://xest/529 -- URI:http://xest/530 -- URI:http://xest/531 -- URI:http://xest/532 -- URI:http://xest/533 -- URI:http://xest/534 -- URI:http://xest/535 -- URI:http://xest/536 -- URI:http://xest/537 -- URI:http://xest/538 -- URI:http://xest/539 -- URI:http://xest/540 -- URI:http://xest/541 -- URI:http://xest/542 -- URI:http://xest/543 -- URI:http://xest/544 -- URI:http://xest/545 -- URI:http://xest/546 -- URI:http://xest/547 -- URI:http://xest/548 -- URI:http://xest/549 -- URI:http://xest/550 -- URI:http://xest/551 -- URI:http://xest/552 -- URI:http://xest/553 -- URI:http://xest/554 -- URI:http://xest/555 -- URI:http://xest/556 -- URI:http://xest/557 -- URI:http://xest/558 -- URI:http://xest/559 -- URI:http://xest/560 -- URI:http://xest/561 -- URI:http://xest/562 -- URI:http://xest/563 -- URI:http://xest/564 -- URI:http://xest/565 -- URI:http://xest/566 -- URI:http://xest/567 -- URI:http://xest/568 -- URI:http://xest/569 -- URI:http://xest/570 -- URI:http://xest/571 -- URI:http://xest/572 -- URI:http://xest/573 -- URI:http://xest/574 -- URI:http://xest/575 -- URI:http://xest/576 -- URI:http://xest/577 -- URI:http://xest/578 -- URI:http://xest/579 -- URI:http://xest/580 -- URI:http://xest/581 -- URI:http://xest/582 -- URI:http://xest/583 -- URI:http://xest/584 -- URI:http://xest/585 -- URI:http://xest/586 -- URI:http://xest/587 -- URI:http://xest/588 -- URI:http://xest/589 -- URI:http://xest/590 -- URI:http://xest/591 -- URI:http://xest/592 -- URI:http://xest/593 -- URI:http://xest/594 -- URI:http://xest/595 -- URI:http://xest/596 -- URI:http://xest/597 -- URI:http://xest/598 -- URI:http://xest/599 -- URI:http://xest/600 -- URI:http://xest/601 -- URI:http://xest/602 -- URI:http://xest/603 -- URI:http://xest/604 -- URI:http://xest/605 -- URI:http://xest/606 -- URI:http://xest/607 -- URI:http://xest/608 -- URI:http://xest/609 -- URI:http://xest/610 -- URI:http://xest/611 -- URI:http://xest/612 -- URI:http://xest/613 -- URI:http://xest/614 -- URI:http://xest/615 -- URI:http://xest/616 -- URI:http://xest/617 -- URI:http://xest/618 -- URI:http://xest/619 -- URI:http://xest/620 -- URI:http://xest/621 -- URI:http://xest/622 -- URI:http://xest/623 -- URI:http://xest/624 -- URI:http://xest/625 -- URI:http://xest/626 -- URI:http://xest/627 -- URI:http://xest/628 -- URI:http://xest/629 -- URI:http://xest/630 -- URI:http://xest/631 -- URI:http://xest/632 -- URI:http://xest/633 -- URI:http://xest/634 -- URI:http://xest/635 -- URI:http://xest/636 -- URI:http://xest/637 -- URI:http://xest/638 -- URI:http://xest/639 -- URI:http://xest/640 -- URI:http://xest/641 -- URI:http://xest/642 -- URI:http://xest/643 -- URI:http://xest/644 -- URI:http://xest/645 -- URI:http://xest/646 -- URI:http://xest/647 -- URI:http://xest/648 -- URI:http://xest/649 -- URI:http://xest/650 -- URI:http://xest/651 -- URI:http://xest/652 -- URI:http://xest/653 -- URI:http://xest/654 -- URI:http://xest/655 -- URI:http://xest/656 -- URI:http://xest/657 -- URI:http://xest/658 -- URI:http://xest/659 -- URI:http://xest/660 -- URI:http://xest/661 -- URI:http://xest/662 -- URI:http://xest/663 -- URI:http://xest/664 -- URI:http://xest/665 -- URI:http://xest/666 -- URI:http://xest/667 -- URI:http://xest/668 -- URI:http://xest/669 -- URI:http://xest/670 -- URI:http://xest/671 -- URI:http://xest/672 -- URI:http://xest/673 -- URI:http://xest/674 -- URI:http://xest/675 -- URI:http://xest/676 -- URI:http://xest/677 -- URI:http://xest/678 -- URI:http://xest/679 -- URI:http://xest/680 -- URI:http://xest/681 -- URI:http://xest/682 -- URI:http://xest/683 -- URI:http://xest/684 -- URI:http://xest/685 -- URI:http://xest/686 -- URI:http://xest/687 -- URI:http://xest/688 -- URI:http://xest/689 -- URI:http://xest/690 -- URI:http://xest/691 -- URI:http://xest/692 -- URI:http://xest/693 -- URI:http://xest/694 -- URI:http://xest/695 -- URI:http://xest/696 -- URI:http://xest/697 -- URI:http://xest/698 -- URI:http://xest/699 -- URI:http://xest/700 -- URI:http://xest/701 -- URI:http://xest/702 -- URI:http://xest/703 -- URI:http://xest/704 -- URI:http://xest/705 -- URI:http://xest/706 -- URI:http://xest/707 -- URI:http://xest/708 -- URI:http://xest/709 -- URI:http://xest/710 -- URI:http://xest/711 -- URI:http://xest/712 -- URI:http://xest/713 -- URI:http://xest/714 -- URI:http://xest/715 -- URI:http://xest/716 -- URI:http://xest/717 -- URI:http://xest/718 -- URI:http://xest/719 -- URI:http://xest/720 -- URI:http://xest/721 -- URI:http://xest/722 -- URI:http://xest/723 -- URI:http://xest/724 -- URI:http://xest/725 -- URI:http://xest/726 -- URI:http://xest/727 -- URI:http://xest/728 -- URI:http://xest/729 -- URI:http://xest/730 -- URI:http://xest/731 -- URI:http://xest/732 -- URI:http://xest/733 -- URI:http://xest/734 -- URI:http://xest/735 -- URI:http://xest/736 -- URI:http://xest/737 -- URI:http://xest/738 -- URI:http://xest/739 -- URI:http://xest/740 -- URI:http://xest/741 -- URI:http://xest/742 -- URI:http://xest/743 -- URI:http://xest/744 -- URI:http://xest/745 -- URI:http://xest/746 -- URI:http://xest/747 -- URI:http://xest/748 -- URI:http://xest/749 -- URI:http://xest/750 -- URI:http://xest/751 -- URI:http://xest/752 -- URI:http://xest/753 -- URI:http://xest/754 -- URI:http://xest/755 -- URI:http://xest/756 -- URI:http://xest/757 -- URI:http://xest/758 -- URI:http://xest/759 -- URI:http://xest/760 -- URI:http://xest/761 -- URI:http://xest/762 -- URI:http://xest/763 -- URI:http://xest/764 -- URI:http://xest/765 -- URI:http://xest/766 -- URI:http://xest/767 -- URI:http://xest/768 -- URI:http://xest/769 -- URI:http://xest/770 -- URI:http://xest/771 -- URI:http://xest/772 -- URI:http://xest/773 -- URI:http://xest/774 -- URI:http://xest/775 -- URI:http://xest/776 -- URI:http://xest/777 -- URI:http://xest/778 -- URI:http://xest/779 -- URI:http://xest/780 -- URI:http://xest/781 -- URI:http://xest/782 -- URI:http://xest/783 -- URI:http://xest/784 -- URI:http://xest/785 -- URI:http://xest/786 -- URI:http://xest/787 -- URI:http://xest/788 -- URI:http://xest/789 -- URI:http://xest/790 -- URI:http://xest/791 -- URI:http://xest/792 -- URI:http://xest/793 -- URI:http://xest/794 -- URI:http://xest/795 -- URI:http://xest/796 -- URI:http://xest/797 -- URI:http://xest/798 -- URI:http://xest/799 -- URI:http://xest/800 -- URI:http://xest/801 -- URI:http://xest/802 -- URI:http://xest/803 -- URI:http://xest/804 -- URI:http://xest/805 -- URI:http://xest/806 -- URI:http://xest/807 -- URI:http://xest/808 -- URI:http://xest/809 -- URI:http://xest/810 -- URI:http://xest/811 -- URI:http://xest/812 -- URI:http://xest/813 -- URI:http://xest/814 -- URI:http://xest/815 -- URI:http://xest/816 -- URI:http://xest/817 -- URI:http://xest/818 -- URI:http://xest/819 -- URI:http://xest/820 -- URI:http://xest/821 -- URI:http://xest/822 -- URI:http://xest/823 -- URI:http://xest/824 -- URI:http://xest/825 -- URI:http://xest/826 -- URI:http://xest/827 -- URI:http://xest/828 -- URI:http://xest/829 -- URI:http://xest/830 -- URI:http://xest/831 -- URI:http://xest/832 -- URI:http://xest/833 -- URI:http://xest/834 -- URI:http://xest/835 -- URI:http://xest/836 -- URI:http://xest/837 -- URI:http://xest/838 -- URI:http://xest/839 -- URI:http://xest/840 -- URI:http://xest/841 -- URI:http://xest/842 -- URI:http://xest/843 -- URI:http://xest/844 -- URI:http://xest/845 -- URI:http://xest/846 -- URI:http://xest/847 -- URI:http://xest/848 -- URI:http://xest/849 -- URI:http://xest/850 -- URI:http://xest/851 -- URI:http://xest/852 -- URI:http://xest/853 -- URI:http://xest/854 -- URI:http://xest/855 -- URI:http://xest/856 -- URI:http://xest/857 -- URI:http://xest/858 -- URI:http://xest/859 -- URI:http://xest/860 -- URI:http://xest/861 -- URI:http://xest/862 -- URI:http://xest/863 -- URI:http://xest/864 -- URI:http://xest/865 -- URI:http://xest/866 -- URI:http://xest/867 -- URI:http://xest/868 -- URI:http://xest/869 -- URI:http://xest/870 -- URI:http://xest/871 -- URI:http://xest/872 -- URI:http://xest/873 -- URI:http://xest/874 -- URI:http://xest/875 -- URI:http://xest/876 -- URI:http://xest/877 -- URI:http://xest/878 -- URI:http://xest/879 -- URI:http://xest/880 -- URI:http://xest/881 -- URI:http://xest/882 -- URI:http://xest/883 -- URI:http://xest/884 -- URI:http://xest/885 -- URI:http://xest/886 -- URI:http://xest/887 -- URI:http://xest/888 -- URI:http://xest/889 -- URI:http://xest/890 -- URI:http://xest/891 -- URI:http://xest/892 -- URI:http://xest/893 -- URI:http://xest/894 -- URI:http://xest/895 -- URI:http://xest/896 -- URI:http://xest/897 -- URI:http://xest/898 -- URI:http://xest/899 -- URI:http://xest/900 -- URI:http://xest/901 -- URI:http://xest/902 -- URI:http://xest/903 -- URI:http://xest/904 -- URI:http://xest/905 -- URI:http://xest/906 -- URI:http://xest/907 -- URI:http://xest/908 -- URI:http://xest/909 -- URI:http://xest/910 -- URI:http://xest/911 -- URI:http://xest/912 -- URI:http://xest/913 -- URI:http://xest/914 -- URI:http://xest/915 -- URI:http://xest/916 -- URI:http://xest/917 -- URI:http://xest/918 -- URI:http://xest/919 -- URI:http://xest/920 -- URI:http://xest/921 -- URI:http://xest/922 -- URI:http://xest/923 -- URI:http://xest/924 -- URI:http://xest/925 -- URI:http://xest/926 -- URI:http://xest/927 -- URI:http://xest/928 -- URI:http://xest/929 -- URI:http://xest/930 -- URI:http://xest/931 -- URI:http://xest/932 -- URI:http://xest/933 -- URI:http://xest/934 -- URI:http://xest/935 -- URI:http://xest/936 -- URI:http://xest/937 -- URI:http://xest/938 -- URI:http://xest/939 -- URI:http://xest/940 -- URI:http://xest/941 -- URI:http://xest/942 -- URI:http://xest/943 -- URI:http://xest/944 -- URI:http://xest/945 -- URI:http://xest/946 -- URI:http://xest/947 -- URI:http://xest/948 -- URI:http://xest/949 -- URI:http://xest/950 -- URI:http://xest/951 -- URI:http://xest/952 -- URI:http://xest/953 -- URI:http://xest/954 -- URI:http://xest/955 -- URI:http://xest/956 -- URI:http://xest/957 -- URI:http://xest/958 -- URI:http://xest/959 -- URI:http://xest/960 -- URI:http://xest/961 -- URI:http://xest/962 -- URI:http://xest/963 -- URI:http://xest/964 -- URI:http://xest/965 -- URI:http://xest/966 -- URI:http://xest/967 -- URI:http://xest/968 -- URI:http://xest/969 -- URI:http://xest/970 -- URI:http://xest/971 -- URI:http://xest/972 -- URI:http://xest/973 -- URI:http://xest/974 -- URI:http://xest/975 -- URI:http://xest/976 -- URI:http://xest/977 -- URI:http://xest/978 -- URI:http://xest/979 -- URI:http://xest/980 -- URI:http://xest/981 -- URI:http://xest/982 -- URI:http://xest/983 -- URI:http://xest/984 -- URI:http://xest/985 -- URI:http://xest/986 -- URI:http://xest/987 -- URI:http://xest/988 -- URI:http://xest/989 -- URI:http://xest/990 -- URI:http://xest/991 -- URI:http://xest/992 -- URI:http://xest/993 -- URI:http://xest/994 -- URI:http://xest/995 -- URI:http://xest/996 -- URI:http://xest/997 -- URI:http://xest/998 -- URI:http://xest/999 -- URI:http://xest/1000 -- URI:http://xest/1001 -- URI:http://xest/1002 -- URI:http://xest/1003 -- URI:http://xest/1004 -- URI:http://xest/1005 -- URI:http://xest/1006 -- URI:http://xest/1007 -- URI:http://xest/1008 -- URI:http://xest/1009 -- URI:http://xest/1010 -- URI:http://xest/1011 -- URI:http://xest/1012 -- URI:http://xest/1013 -- URI:http://xest/1014 -- URI:http://xest/1015 -- URI:http://xest/1016 -- URI:http://xest/1017 -- URI:http://xest/1018 -- URI:http://xest/1019 -- URI:http://xest/1020 -- URI:http://xest/1021 -- URI:http://xest/1022 -- URI:http://xest/1023 -- URI:http://xest/1024 -- -- Signature Algorithm: sha256WithRSAEncryption -- 0e:14:4c:09:0c:0b:fa:da:ae:c8:a4:13:9f:7d:9c:53:62:c0: -- 51:7a:7a:88:78:90:81:f9:2f:e6:86:e0:73:31:1d:84:45:7f: -- 79:ba:6a:9c:ed:5c:aa:b0:dd:d0:32:a9:69:78:1a:e4:3c:fa: -- 53:8a:15:33:7d:cc:45:4c:65:4e:d4:01:49:47:c3:02:04:58: -- a8:c2:60:ab:01:8b:35:ad:db:57:9f:68:12:2b:0e:c6:b0:80: -- 15:11:de:e4:5d:6e:a5:b2:80:34:65:33:e9:4c:0d:93:09:6e: -- e5:f4:f9:06:cc:7e:3d:2e:b9:79:80:9c:83:92:ec:15:62:e6: -- af:4e:40:7f:55:a2:75:d1:f2:af:a1:10:28:2b:c3:f6:ef:3a: -- 16:3a:71:9b:28:ac:65:d4:ab:ff:4a:a7:aa:82:a3:8d:18:36: -- e7:c1:4c:7a:87:8b:39:90:a5:e2:23:c3:99:e6:5d:11:4f:66: -- 48:12:69:72:47:3e:e7:bb:33:51:38:c5:e2:20:aa:24:12:ce: -- 44:fe:d4:f3:38:37:69:85:d8:41:32:41:30:f7:b2:f0:76:ce: -- 4b:da:43:95:87:2b:18:9a:fa:40:c1:36:71:ac:d4:8f:68:cc: -- ed:8f:f6:a9:0a:29:94:98:71:69:af:e2:85:62:65:36:a3:77: -- ae:43:af:81 -------BEGIN CERTIFICATE----- --MIMBorUwgwGhnKADAgECAhQ85fyBiFmoUBbBf9flKuWWf8L2/jANBgkqhkiG9w0B --AQsFADAPMQ0wCwYDVQQDDARSb290MB4XDTIxMTAwNTEyMDAwMFoXDTIyMTAwNTEy --MDAwMFowFzEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlMIIBIjANBgkqhkiG9w0BAQEF --AAOCAQ8AMIIBCgKCAQEAuzvbBG4X4FRSuiN3JLw043DZmZ5TXTMLqcxLHa4GJxiO --VbqtEscdMlltwxYg22Kmd4AS4IdYUVXjZn/R4DoiZeVwJqIEBPBd+V9WyNroD1co --d26aoEpTNBpjN6JDqw5KzQcj3VWDRAAMcEHfNWTQxQ5qh9vK/DXV4luvC6DmdaXS --4XJOImMBQXO4lVAs/e3DYbY21IOVYcPgYf/0noroutzR9ontnTBElSf00YvmLxRm --VvHa8cwEG3eSpZ9YQAyfDDLWBcJMwMWf5aQwPUzpnQNsTAa25ZW9IbjmK6igvwa7 --QzMZPXsXWfFkTSRnsVEPNa7wcXV5rlsCNAQx42aGZQIDAQABo4MBn/0wgwGf+DAd --BgNVHQ4EFgQUkhE/rBGWx2Y3z4NaJPA6d68zjX8wHwYDVR0jBBgwFoAUtsLvn9Ep --yw+JjExS1L1AtxG3cd0wNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzAChhtodHRw --Oi8vdXJsLWZvci1haWEvUm9vdC5jZXIwLAYDVR0fBCUwIzAhoB+gHYYbaHR0cDov --L3VybC1mb3ItY3JsL1Jvb3QuY3JsMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E --BTADAQH/MIMBnysGA1UdHgSDAZ8hMIMBnxyggs+KMAqHCAoAAAD/////MAqHCAoA --AAH/////MAqHCAoAAAL/////MAqHCAoAAAP/////MAqHCAoAAAT/////MAqHCAoA --AAX/////MAqHCAoAAAb/////MAqHCAoAAAf/////MAqHCAoAAAj/////MAqHCAoA --AAn/////MAqHCAoAAAr/////MAqHCAoAAAv/////MAqHCAoAAAz/////MAqHCAoA --AA3/////MAqHCAoAAA7/////MAqHCAoAAA//////MAqHCAoAABD/////MAqHCAoA --ABH/////MAqHCAoAABL/////MAqHCAoAABP/////MAqHCAoAABT/////MAqHCAoA --ABX/////MAqHCAoAABb/////MAqHCAoAABf/////MAqHCAoAABj/////MAqHCAoA --ABn/////MAqHCAoAABr/////MAqHCAoAABv/////MAqHCAoAABz/////MAqHCAoA --AB3/////MAqHCAoAAB7/////MAqHCAoAAB//////MAqHCAoAACD/////MAqHCAoA --ACH/////MAqHCAoAACL/////MAqHCAoAACP/////MAqHCAoAACT/////MAqHCAoA --ACX/////MAqHCAoAACb/////MAqHCAoAACf/////MAqHCAoAACj/////MAqHCAoA --ACn/////MAqHCAoAACr/////MAqHCAoAACv/////MAqHCAoAACz/////MAqHCAoA --AC3/////MAqHCAoAAC7/////MAqHCAoAAC//////MAqHCAoAADD/////MAqHCAoA --ADH/////MAqHCAoAADL/////MAqHCAoAADP/////MAqHCAoAADT/////MAqHCAoA --ADX/////MAqHCAoAADb/////MAqHCAoAADf/////MAqHCAoAADj/////MAqHCAoA --ADn/////MAqHCAoAADr/////MAqHCAoAADv/////MAqHCAoAADz/////MAqHCAoA --AD3/////MAqHCAoAAD7/////MAqHCAoAAD//////MAqHCAoAAED/////MAqHCAoA --AEH/////MAqHCAoAAEL/////MAqHCAoAAEP/////MAqHCAoAAET/////MAqHCAoA --AEX/////MAqHCAoAAEb/////MAqHCAoAAEf/////MAqHCAoAAEj/////MAqHCAoA --AEn/////MAqHCAoAAEr/////MAqHCAoAAEv/////MAqHCAoAAEz/////MAqHCAoA --AE3/////MAqHCAoAAE7/////MAqHCAoAAE//////MAqHCAoAAFD/////MAqHCAoA --AFH/////MAqHCAoAAFL/////MAqHCAoAAFP/////MAqHCAoAAFT/////MAqHCAoA --AFX/////MAqHCAoAAFb/////MAqHCAoAAFf/////MAqHCAoAAFj/////MAqHCAoA --AFn/////MAqHCAoAAFr/////MAqHCAoAAFv/////MAqHCAoAAFz/////MAqHCAoA --AF3/////MAqHCAoAAF7/////MAqHCAoAAF//////MAqHCAoAAGD/////MAqHCAoA --AGH/////MAqHCAoAAGL/////MAqHCAoAAGP/////MAqHCAoAAGT/////MAqHCAoA --AGX/////MAqHCAoAAGb/////MAqHCAoAAGf/////MAqHCAoAAGj/////MAqHCAoA --AGn/////MAqHCAoAAGr/////MAqHCAoAAGv/////MAqHCAoAAGz/////MAqHCAoA --AG3/////MAqHCAoAAG7/////MAqHCAoAAG//////MAqHCAoAAHD/////MAqHCAoA --AHH/////MAqHCAoAAHL/////MAqHCAoAAHP/////MAqHCAoAAHT/////MAqHCAoA --AHX/////MAqHCAoAAHb/////MAqHCAoAAHf/////MAqHCAoAAHj/////MAqHCAoA --AHn/////MAqHCAoAAHr/////MAqHCAoAAHv/////MAqHCAoAAHz/////MAqHCAoA --AH3/////MAqHCAoAAH7/////MAqHCAoAAH//////MAqHCAoAAID/////MAqHCAoA --AIH/////MAqHCAoAAIL/////MAqHCAoAAIP/////MAqHCAoAAIT/////MAqHCAoA --AIX/////MAqHCAoAAIb/////MAqHCAoAAIf/////MAqHCAoAAIj/////MAqHCAoA --AIn/////MAqHCAoAAIr/////MAqHCAoAAIv/////MAqHCAoAAIz/////MAqHCAoA --AI3/////MAqHCAoAAI7/////MAqHCAoAAI//////MAqHCAoAAJD/////MAqHCAoA --AJH/////MAqHCAoAAJL/////MAqHCAoAAJP/////MAqHCAoAAJT/////MAqHCAoA --AJX/////MAqHCAoAAJb/////MAqHCAoAAJf/////MAqHCAoAAJj/////MAqHCAoA --AJn/////MAqHCAoAAJr/////MAqHCAoAAJv/////MAqHCAoAAJz/////MAqHCAoA --AJ3/////MAqHCAoAAJ7/////MAqHCAoAAJ//////MAqHCAoAAKD/////MAqHCAoA --AKH/////MAqHCAoAAKL/////MAqHCAoAAKP/////MAqHCAoAAKT/////MAqHCAoA --AKX/////MAqHCAoAAKb/////MAqHCAoAAKf/////MAqHCAoAAKj/////MAqHCAoA --AKn/////MAqHCAoAAKr/////MAqHCAoAAKv/////MAqHCAoAAKz/////MAqHCAoA --AK3/////MAqHCAoAAK7/////MAqHCAoAAK//////MAqHCAoAALD/////MAqHCAoA --ALH/////MAqHCAoAALL/////MAqHCAoAALP/////MAqHCAoAALT/////MAqHCAoA --ALX/////MAqHCAoAALb/////MAqHCAoAALf/////MAqHCAoAALj/////MAqHCAoA --ALn/////MAqHCAoAALr/////MAqHCAoAALv/////MAqHCAoAALz/////MAqHCAoA --AL3/////MAqHCAoAAL7/////MAqHCAoAAL//////MAqHCAoAAMD/////MAqHCAoA --AMH/////MAqHCAoAAML/////MAqHCAoAAMP/////MAqHCAoAAMT/////MAqHCAoA --AMX/////MAqHCAoAAMb/////MAqHCAoAAMf/////MAqHCAoAAMj/////MAqHCAoA --AMn/////MAqHCAoAAMr/////MAqHCAoAAMv/////MAqHCAoAAMz/////MAqHCAoA --AM3/////MAqHCAoAAM7/////MAqHCAoAAM//////MAqHCAoAAND/////MAqHCAoA --ANH/////MAqHCAoAANL/////MAqHCAoAANP/////MAqHCAoAANT/////MAqHCAoA --ANX/////MAqHCAoAANb/////MAqHCAoAANf/////MAqHCAoAANj/////MAqHCAoA --ANn/////MAqHCAoAANr/////MAqHCAoAANv/////MAqHCAoAANz/////MAqHCAoA --AN3/////MAqHCAoAAN7/////MAqHCAoAAN//////MAqHCAoAAOD/////MAqHCAoA --AOH/////MAqHCAoAAOL/////MAqHCAoAAOP/////MAqHCAoAAOT/////MAqHCAoA --AOX/////MAqHCAoAAOb/////MAqHCAoAAOf/////MAqHCAoAAOj/////MAqHCAoA --AOn/////MAqHCAoAAOr/////MAqHCAoAAOv/////MAqHCAoAAOz/////MAqHCAoA --AO3/////MAqHCAoAAO7/////MAqHCAoAAO//////MAqHCAoAAPD/////MAqHCAoA --APH/////MAqHCAoAAPL/////MAqHCAoAAPP/////MAqHCAoAAPT/////MAqHCAoA --APX/////MAqHCAoAAPb/////MAqHCAoAAPf/////MAqHCAoAAPj/////MAqHCAoA --APn/////MAqHCAoAAPr/////MAqHCAoAAPv/////MAqHCAoAAPz/////MAqHCAoA --AP3/////MAqHCAoAAP7/////MAqHCAoAAP//////MAqHCAoAAQD/////MAqHCAoA --AQH/////MAqHCAoAAQL/////MAqHCAoAAQP/////MAqHCAoAAQT/////MAqHCAoA --AQX/////MAqHCAoAAQb/////MAqHCAoAAQf/////MAqHCAoAAQj/////MAqHCAoA --AQn/////MAqHCAoAAQr/////MAqHCAoAAQv/////MAqHCAoAAQz/////MAqHCAoA --AQ3/////MAqHCAoAAQ7/////MAqHCAoAAQ//////MAqHCAoAARD/////MAqHCAoA --ARH/////MAqHCAoAARL/////MAqHCAoAARP/////MAqHCAoAART/////MAqHCAoA --ARX/////MAqHCAoAARb/////MAqHCAoAARf/////MAqHCAoAARj/////MAqHCAoA --ARn/////MAqHCAoAARr/////MAqHCAoAARv/////MAqHCAoAARz/////MAqHCAoA --AR3/////MAqHCAoAAR7/////MAqHCAoAAR//////MAqHCAoAASD/////MAqHCAoA --ASH/////MAqHCAoAASL/////MAqHCAoAASP/////MAqHCAoAAST/////MAqHCAoA --ASX/////MAqHCAoAASb/////MAqHCAoAASf/////MAqHCAoAASj/////MAqHCAoA --ASn/////MAqHCAoAASr/////MAqHCAoAASv/////MAqHCAoAASz/////MAqHCAoA --AS3/////MAqHCAoAAS7/////MAqHCAoAAS//////MAqHCAoAATD/////MAqHCAoA --ATH/////MAqHCAoAATL/////MAqHCAoAATP/////MAqHCAoAATT/////MAqHCAoA --ATX/////MAqHCAoAATb/////MAqHCAoAATf/////MAqHCAoAATj/////MAqHCAoA --ATn/////MAqHCAoAATr/////MAqHCAoAATv/////MAqHCAoAATz/////MAqHCAoA --AT3/////MAqHCAoAAT7/////MAqHCAoAAT//////MAqHCAoAAUD/////MAqHCAoA --AUH/////MAqHCAoAAUL/////MAqHCAoAAUP/////MAqHCAoAAUT/////MAqHCAoA --AUX/////MAqHCAoAAUb/////MAqHCAoAAUf/////MAqHCAoAAUj/////MAqHCAoA --AUn/////MAqHCAoAAUr/////MAqHCAoAAUv/////MAqHCAoAAUz/////MAqHCAoA --AU3/////MAqHCAoAAU7/////MAqHCAoAAU//////MAqHCAoAAVD/////MAqHCAoA --AVH/////MAqHCAoAAVL/////MAqHCAoAAVP/////MAqHCAoAAVT/////MAqHCAoA --AVX/////MAqHCAoAAVb/////MAqHCAoAAVf/////MAqHCAoAAVj/////MAqHCAoA --AVn/////MAqHCAoAAVr/////MAqHCAoAAVv/////MAqHCAoAAVz/////MAqHCAoA --AV3/////MAqHCAoAAV7/////MAqHCAoAAV//////MAqHCAoAAWD/////MAqHCAoA --AWH/////MAqHCAoAAWL/////MAqHCAoAAWP/////MAqHCAoAAWT/////MAqHCAoA --AWX/////MAqHCAoAAWb/////MAqHCAoAAWf/////MAqHCAoAAWj/////MAqHCAoA --AWn/////MAqHCAoAAWr/////MAqHCAoAAWv/////MAqHCAoAAWz/////MAqHCAoA --AW3/////MAqHCAoAAW7/////MAqHCAoAAW//////MAqHCAoAAXD/////MAqHCAoA --AXH/////MAqHCAoAAXL/////MAqHCAoAAXP/////MAqHCAoAAXT/////MAqHCAoA --AXX/////MAqHCAoAAXb/////MAqHCAoAAXf/////MAqHCAoAAXj/////MAqHCAoA --AXn/////MAqHCAoAAXr/////MAqHCAoAAXv/////MAqHCAoAAXz/////MAqHCAoA --AX3/////MAqHCAoAAX7/////MAqHCAoAAX//////MAqHCAoAAYD/////MAqHCAoA --AYH/////MAqHCAoAAYL/////MAqHCAoAAYP/////MAqHCAoAAYT/////MAqHCAoA --AYX/////MAqHCAoAAYb/////MAqHCAoAAYf/////MAqHCAoAAYj/////MAqHCAoA --AYn/////MAqHCAoAAYr/////MAqHCAoAAYv/////MAqHCAoAAYz/////MAqHCAoA --AY3/////MAqHCAoAAY7/////MAqHCAoAAY//////MAqHCAoAAZD/////MAqHCAoA --AZH/////MAqHCAoAAZL/////MAqHCAoAAZP/////MAqHCAoAAZT/////MAqHCAoA --AZX/////MAqHCAoAAZb/////MAqHCAoAAZf/////MAqHCAoAAZj/////MAqHCAoA --AZn/////MAqHCAoAAZr/////MAqHCAoAAZv/////MAqHCAoAAZz/////MAqHCAoA --AZ3/////MAqHCAoAAZ7/////MAqHCAoAAZ//////MAqHCAoAAaD/////MAqHCAoA --AaH/////MAqHCAoAAaL/////MAqHCAoAAaP/////MAqHCAoAAaT/////MAqHCAoA --AaX/////MAqHCAoAAab/////MAqHCAoAAaf/////MAqHCAoAAaj/////MAqHCAoA --Aan/////MAqHCAoAAar/////MAqHCAoAAav/////MAqHCAoAAaz/////MAqHCAoA --Aa3/////MAqHCAoAAa7/////MAqHCAoAAa//////MAqHCAoAAbD/////MAqHCAoA --AbH/////MAqHCAoAAbL/////MAqHCAoAAbP/////MAqHCAoAAbT/////MAqHCAoA --AbX/////MAqHCAoAAbb/////MAqHCAoAAbf/////MAqHCAoAAbj/////MAqHCAoA --Abn/////MAqHCAoAAbr/////MAqHCAoAAbv/////MAqHCAoAAbz/////MAqHCAoA --Ab3/////MAqHCAoAAb7/////MAqHCAoAAb//////MAqHCAoAAcD/////MAqHCAoA --AcH/////MAqHCAoAAcL/////MAqHCAoAAcP/////MAqHCAoAAcT/////MAqHCAoA --AcX/////MAqHCAoAAcb/////MAqHCAoAAcf/////MAqHCAoAAcj/////MAqHCAoA --Acn/////MAqHCAoAAcr/////MAqHCAoAAcv/////MAqHCAoAAcz/////MAqHCAoA --Ac3/////MAqHCAoAAc7/////MAqHCAoAAc//////MAqHCAoAAdD/////MAqHCAoA --AdH/////MAqHCAoAAdL/////MAqHCAoAAdP/////MAqHCAoAAdT/////MAqHCAoA --AdX/////MAqHCAoAAdb/////MAqHCAoAAdf/////MAqHCAoAAdj/////MAqHCAoA --Adn/////MAqHCAoAAdr/////MAqHCAoAAdv/////MAqHCAoAAdz/////MAqHCAoA --Ad3/////MAqHCAoAAd7/////MAqHCAoAAd//////MAqHCAoAAeD/////MAqHCAoA --AeH/////MAqHCAoAAeL/////MAqHCAoAAeP/////MAqHCAoAAeT/////MAqHCAoA --AeX/////MAqHCAoAAeb/////MAqHCAoAAef/////MAqHCAoAAej/////MAqHCAoA --Aen/////MAqHCAoAAer/////MAqHCAoAAev/////MAqHCAoAAez/////MAqHCAoA --Ae3/////MAqHCAoAAe7/////MAqHCAoAAe//////MAqHCAoAAfD/////MAqHCAoA --AfH/////MAqHCAoAAfL/////MAqHCAoAAfP/////MAqHCAoAAfT/////MAqHCAoA --AfX/////MAqHCAoAAfb/////MAqHCAoAAff/////MAqHCAoAAfj/////MAqHCAoA --Afn/////MAqHCAoAAfr/////MAqHCAoAAfv/////MAqHCAoAAfz/////MAqHCAoA --Af3/////MAqHCAoAAf7/////MAqHCAoAAf//////MAqHCAoAAgD/////MAqHCAoA --AgH/////MAqHCAoAAgL/////MAqHCAoAAgP/////MAqHCAoAAgT/////MAqHCAoA --AgX/////MAqHCAoAAgb/////MAqHCAoAAgf/////MAqHCAoAAgj/////MAqHCAoA --Agn/////MAqHCAoAAgr/////MAqHCAoAAgv/////MAqHCAoAAgz/////MAqHCAoA --Ag3/////MAqHCAoAAg7/////MAqHCAoAAg//////MAqHCAoAAhD/////MAqHCAoA --AhH/////MAqHCAoAAhL/////MAqHCAoAAhP/////MAqHCAoAAhT/////MAqHCAoA --AhX/////MAqHCAoAAhb/////MAqHCAoAAhf/////MAqHCAoAAhj/////MAqHCAoA --Ahn/////MAqHCAoAAhr/////MAqHCAoAAhv/////MAqHCAoAAhz/////MAqHCAoA --Ah3/////MAqHCAoAAh7/////MAqHCAoAAh//////MAqHCAoAAiD/////MAqHCAoA --AiH/////MAqHCAoAAiL/////MAqHCAoAAiP/////MAqHCAoAAiT/////MAqHCAoA --AiX/////MAqHCAoAAib/////MAqHCAoAAif/////MAqHCAoAAij/////MAqHCAoA --Ain/////MAqHCAoAAir/////MAqHCAoAAiv/////MAqHCAoAAiz/////MAqHCAoA --Ai3/////MAqHCAoAAi7/////MAqHCAoAAi//////MAqHCAoAAjD/////MAqHCAoA --AjH/////MAqHCAoAAjL/////MAqHCAoAAjP/////MAqHCAoAAjT/////MAqHCAoA --AjX/////MAqHCAoAAjb/////MAqHCAoAAjf/////MAqHCAoAAjj/////MAqHCAoA --Ajn/////MAqHCAoAAjr/////MAqHCAoAAjv/////MAqHCAoAAjz/////MAqHCAoA --Aj3/////MAqHCAoAAj7/////MAqHCAoAAj//////MAqHCAoAAkD/////MAqHCAoA --AkH/////MAqHCAoAAkL/////MAqHCAoAAkP/////MAqHCAoAAkT/////MAqHCAoA --AkX/////MAqHCAoAAkb/////MAqHCAoAAkf/////MAqHCAoAAkj/////MAqHCAoA --Akn/////MAqHCAoAAkr/////MAqHCAoAAkv/////MAqHCAoAAkz/////MAqHCAoA --Ak3/////MAqHCAoAAk7/////MAqHCAoAAk//////MAqHCAoAAlD/////MAqHCAoA --AlH/////MAqHCAoAAlL/////MAqHCAoAAlP/////MAqHCAoAAlT/////MAqHCAoA --AlX/////MAqHCAoAAlb/////MAqHCAoAAlf/////MAqHCAoAAlj/////MAqHCAoA --Aln/////MAqHCAoAAlr/////MAqHCAoAAlv/////MAqHCAoAAlz/////MAqHCAoA --Al3/////MAqHCAoAAl7/////MAqHCAoAAl//////MAqHCAoAAmD/////MAqHCAoA --AmH/////MAqHCAoAAmL/////MAqHCAoAAmP/////MAqHCAoAAmT/////MAqHCAoA --AmX/////MAqHCAoAAmb/////MAqHCAoAAmf/////MAqHCAoAAmj/////MAqHCAoA --Amn/////MAqHCAoAAmr/////MAqHCAoAAmv/////MAqHCAoAAmz/////MAqHCAoA --Am3/////MAqHCAoAAm7/////MAqHCAoAAm//////MAqHCAoAAnD/////MAqHCAoA --AnH/////MAqHCAoAAnL/////MAqHCAoAAnP/////MAqHCAoAAnT/////MAqHCAoA --AnX/////MAqHCAoAAnb/////MAqHCAoAAnf/////MAqHCAoAAnj/////MAqHCAoA --Ann/////MAqHCAoAAnr/////MAqHCAoAAnv/////MAqHCAoAAnz/////MAqHCAoA --An3/////MAqHCAoAAn7/////MAqHCAoAAn//////MAqHCAoAAoD/////MAqHCAoA --AoH/////MAqHCAoAAoL/////MAqHCAoAAoP/////MAqHCAoAAoT/////MAqHCAoA --AoX/////MAqHCAoAAob/////MAqHCAoAAof/////MAqHCAoAAoj/////MAqHCAoA --Aon/////MAqHCAoAAor/////MAqHCAoAAov/////MAqHCAoAAoz/////MAqHCAoA --Ao3/////MAqHCAoAAo7/////MAqHCAoAAo//////MAqHCAoAApD/////MAqHCAoA --ApH/////MAqHCAoAApL/////MAqHCAoAApP/////MAqHCAoAApT/////MAqHCAoA --ApX/////MAqHCAoAApb/////MAqHCAoAApf/////MAqHCAoAApj/////MAqHCAoA --Apn/////MAqHCAoAApr/////MAqHCAoAApv/////MAqHCAoAApz/////MAqHCAoA --Ap3/////MAqHCAoAAp7/////MAqHCAoAAp//////MAqHCAoAAqD/////MAqHCAoA --AqH/////MAqHCAoAAqL/////MAqHCAoAAqP/////MAqHCAoAAqT/////MAqHCAoA --AqX/////MAqHCAoAAqb/////MAqHCAoAAqf/////MAqHCAoAAqj/////MAqHCAoA --Aqn/////MAqHCAoAAqr/////MAqHCAoAAqv/////MAqHCAoAAqz/////MAqHCAoA --Aq3/////MAqHCAoAAq7/////MAqHCAoAAq//////MAqHCAoAArD/////MAqHCAoA --ArH/////MAqHCAoAArL/////MAqHCAoAArP/////MAqHCAoAArT/////MAqHCAoA --ArX/////MAqHCAoAArb/////MAqHCAoAArf/////MAqHCAoAArj/////MAqHCAoA --Arn/////MAqHCAoAArr/////MAqHCAoAArv/////MAqHCAoAArz/////MAqHCAoA --Ar3/////MAqHCAoAAr7/////MAqHCAoAAr//////MAqHCAoAAsD/////MAqHCAoA --AsH/////MAqHCAoAAsL/////MAqHCAoAAsP/////MAqHCAoAAsT/////MAqHCAoA --AsX/////MAqHCAoAAsb/////MAqHCAoAAsf/////MAqHCAoAAsj/////MAqHCAoA --Asn/////MAqHCAoAAsr/////MAqHCAoAAsv/////MAqHCAoAAsz/////MAqHCAoA --As3/////MAqHCAoAAs7/////MAqHCAoAAs//////MAqHCAoAAtD/////MAqHCAoA --AtH/////MAqHCAoAAtL/////MAqHCAoAAtP/////MAqHCAoAAtT/////MAqHCAoA --AtX/////MAqHCAoAAtb/////MAqHCAoAAtf/////MAqHCAoAAtj/////MAqHCAoA --Atn/////MAqHCAoAAtr/////MAqHCAoAAtv/////MAqHCAoAAtz/////MAqHCAoA --At3/////MAqHCAoAAt7/////MAqHCAoAAt//////MAqHCAoAAuD/////MAqHCAoA --AuH/////MAqHCAoAAuL/////MAqHCAoAAuP/////MAqHCAoAAuT/////MAqHCAoA --AuX/////MAqHCAoAAub/////MAqHCAoAAuf/////MAqHCAoAAuj/////MAqHCAoA --Aun/////MAqHCAoAAur/////MAqHCAoAAuv/////MAqHCAoAAuz/////MAqHCAoA --Au3/////MAqHCAoAAu7/////MAqHCAoAAu//////MAqHCAoAAvD/////MAqHCAoA --AvH/////MAqHCAoAAvL/////MAqHCAoAAvP/////MAqHCAoAAvT/////MAqHCAoA --AvX/////MAqHCAoAAvb/////MAqHCAoAAvf/////MAqHCAoAAvj/////MAqHCAoA --Avn/////MAqHCAoAAvr/////MAqHCAoAAvv/////MAqHCAoAAvz/////MAqHCAoA --Av3/////MAqHCAoAAv7/////MAqHCAoAAv//////MAqHCAoAAwD/////MAqHCAoA --AwH/////MAqHCAoAAwL/////MAqHCAoAAwP/////MAqHCAoAAwT/////MAqHCAoA --AwX/////MAqHCAoAAwb/////MAqHCAoAAwf/////MAqHCAoAAwj/////MAqHCAoA --Awn/////MAqHCAoAAwr/////MAqHCAoAAwv/////MAqHCAoAAwz/////MAqHCAoA --Aw3/////MAqHCAoAAw7/////MAqHCAoAAw//////MAqHCAoAAxD/////MAqHCAoA --AxH/////MAqHCAoAAxL/////MAqHCAoAAxP/////MAqHCAoAAxT/////MAqHCAoA --AxX/////MAqHCAoAAxb/////MAqHCAoAAxf/////MAqHCAoAAxj/////MAqHCAoA --Axn/////MAqHCAoAAxr/////MAqHCAoAAxv/////MAqHCAoAAxz/////MAqHCAoA --Ax3/////MAqHCAoAAx7/////MAqHCAoAAx//////MAqHCAoAAyD/////MAqHCAoA --AyH/////MAqHCAoAAyL/////MAqHCAoAAyP/////MAqHCAoAAyT/////MAqHCAoA --AyX/////MAqHCAoAAyb/////MAqHCAoAAyf/////MAqHCAoAAyj/////MAqHCAoA --Ayn/////MAqHCAoAAyr/////MAqHCAoAAyv/////MAqHCAoAAyz/////MAqHCAoA --Ay3/////MAqHCAoAAy7/////MAqHCAoAAy//////MAqHCAoAAzD/////MAqHCAoA --AzH/////MAqHCAoAAzL/////MAqHCAoAAzP/////MAqHCAoAAzT/////MAqHCAoA --AzX/////MAqHCAoAAzb/////MAqHCAoAAzf/////MAqHCAoAAzj/////MAqHCAoA --Azn/////MAqHCAoAAzr/////MAqHCAoAAzv/////MAqHCAoAAzz/////MAqHCAoA --Az3/////MAqHCAoAAz7/////MAqHCAoAAz//////MAqHCAoAA0D/////MAqHCAoA --A0H/////MAqHCAoAA0L/////MAqHCAoAA0P/////MAqHCAoAA0T/////MAqHCAoA --A0X/////MAqHCAoAA0b/////MAqHCAoAA0f/////MAqHCAoAA0j/////MAqHCAoA --A0n/////MAqHCAoAA0r/////MAqHCAoAA0v/////MAqHCAoAA0z/////MAqHCAoA --A03/////MAqHCAoAA07/////MAqHCAoAA0//////MAqHCAoAA1D/////MAqHCAoA --A1H/////MAqHCAoAA1L/////MAqHCAoAA1P/////MAqHCAoAA1T/////MAqHCAoA --A1X/////MAqHCAoAA1b/////MAqHCAoAA1f/////MAqHCAoAA1j/////MAqHCAoA --A1n/////MAqHCAoAA1r/////MAqHCAoAA1v/////MAqHCAoAA1z/////MAqHCAoA --A13/////MAqHCAoAA17/////MAqHCAoAA1//////MAqHCAoAA2D/////MAqHCAoA --A2H/////MAqHCAoAA2L/////MAqHCAoAA2P/////MAqHCAoAA2T/////MAqHCAoA --A2X/////MAqHCAoAA2b/////MAqHCAoAA2f/////MAqHCAoAA2j/////MAqHCAoA --A2n/////MAqHCAoAA2r/////MAqHCAoAA2v/////MAqHCAoAA2z/////MAqHCAoA --A23/////MAqHCAoAA27/////MAqHCAoAA2//////MAqHCAoAA3D/////MAqHCAoA --A3H/////MAqHCAoAA3L/////MAqHCAoAA3P/////MAqHCAoAA3T/////MAqHCAoA --A3X/////MAqHCAoAA3b/////MAqHCAoAA3f/////MAqHCAoAA3j/////MAqHCAoA --A3n/////MAqHCAoAA3r/////MAqHCAoAA3v/////MAqHCAoAA3z/////MAqHCAoA --A33/////MAqHCAoAA37/////MAqHCAoAA3//////MAqHCAoAA4D/////MAqHCAoA --A4H/////MAqHCAoAA4L/////MAqHCAoAA4P/////MAqHCAoAA4T/////MAqHCAoA --A4X/////MAqHCAoAA4b/////MAqHCAoAA4f/////MAqHCAoAA4j/////MAqHCAoA --A4n/////MAqHCAoAA4r/////MAqHCAoAA4v/////MAqHCAoAA4z/////MAqHCAoA --A43/////MAqHCAoAA47/////MAqHCAoAA4//////MAqHCAoAA5D/////MAqHCAoA --A5H/////MAqHCAoAA5L/////MAqHCAoAA5P/////MAqHCAoAA5T/////MAqHCAoA --A5X/////MAqHCAoAA5b/////MAqHCAoAA5f/////MAqHCAoAA5j/////MAqHCAoA --A5n/////MAqHCAoAA5r/////MAqHCAoAA5v/////MAqHCAoAA5z/////MAqHCAoA --A53/////MAqHCAoAA57/////MAqHCAoAA5//////MAqHCAoAA6D/////MAqHCAoA --A6H/////MAqHCAoAA6L/////MAqHCAoAA6P/////MAqHCAoAA6T/////MAqHCAoA --A6X/////MAqHCAoAA6b/////MAqHCAoAA6f/////MAqHCAoAA6j/////MAqHCAoA --A6n/////MAqHCAoAA6r/////MAqHCAoAA6v/////MAqHCAoAA6z/////MAqHCAoA --A63/////MAqHCAoAA67/////MAqHCAoAA6//////MAqHCAoAA7D/////MAqHCAoA --A7H/////MAqHCAoAA7L/////MAqHCAoAA7P/////MAqHCAoAA7T/////MAqHCAoA --A7X/////MAqHCAoAA7b/////MAqHCAoAA7f/////MAqHCAoAA7j/////MAqHCAoA --A7n/////MAqHCAoAA7r/////MAqHCAoAA7v/////MAqHCAoAA7z/////MAqHCAoA --A73/////MAqHCAoAA77/////MAqHCAoAA7//////MAqHCAoAA8D/////MAqHCAoA --A8H/////MAqHCAoAA8L/////MAqHCAoAA8P/////MAqHCAoAA8T/////MAqHCAoA --A8X/////MAqHCAoAA8b/////MAqHCAoAA8f/////MAqHCAoAA8j/////MAqHCAoA --A8n/////MAqHCAoAA8r/////MAqHCAoAA8v/////MAqHCAoAA8z/////MAqHCAoA --A83/////MAqHCAoAA87/////MAqHCAoAA8//////MAqHCAoAA9D/////MAqHCAoA --A9H/////MAqHCAoAA9L/////MAqHCAoAA9P/////MAqHCAoAA9T/////MAqHCAoA --A9X/////MAqHCAoAA9b/////MAqHCAoAA9f/////MAqHCAoAA9j/////MAqHCAoA --A9n/////MAqHCAoAA9r/////MAqHCAoAA9v/////MAqHCAoAA9z/////MAqHCAoA --A93/////MAqHCAoAA97/////MAqHCAoAA9//////MAqHCAoAA+D/////MAqHCAoA --A+H/////MAqHCAoAA+L/////MAqHCAoAA+P/////MAqHCAoAA+T/////MAqHCAoA --A+X/////MAqHCAoAA+b/////MAqHCAoAA+f/////MAqHCAoAA+j/////MAqHCAoA --A+n/////MAqHCAoAA+r/////MAqHCAoAA+v/////MAqHCAoAA+z/////MAqHCAoA --A+3/////MAqHCAoAA+7/////MAqHCAoAA+//////MAqHCAoAA/D/////MAqHCAoA --A/H/////MAqHCAoAA/L/////MAqHCAoAA/P/////MAqHCAoAA/T/////MAqHCAoA --A/X/////MAqHCAoAA/b/////MAqHCAoAA/f/////MAqHCAoAA/j/////MAqHCAoA --A/n/////MAqHCAoAA/r/////MAqHCAoAA/v/////MAqHCAoAA/z/////MAqHCAoA --A/3/////MAqHCAoAA/7/////MAqHCAoAA///////MAqHCAoABAD/////MBGkDzAN --MQswCQYDVQQDDAJ0MDARpA8wDTELMAkGA1UEAwwCdDEwEaQPMA0xCzAJBgNVBAMM --AnQyMBGkDzANMQswCQYDVQQDDAJ0MzARpA8wDTELMAkGA1UEAwwCdDQwEaQPMA0x --CzAJBgNVBAMMAnQ1MBGkDzANMQswCQYDVQQDDAJ0NjARpA8wDTELMAkGA1UEAwwC --dDcwEaQPMA0xCzAJBgNVBAMMAnQ4MBGkDzANMQswCQYDVQQDDAJ0OTASpBAwDjEM --MAoGA1UEAwwDdDEwMBKkEDAOMQwwCgYDVQQDDAN0MTEwEqQQMA4xDDAKBgNVBAMM --A3QxMjASpBAwDjEMMAoGA1UEAwwDdDEzMBKkEDAOMQwwCgYDVQQDDAN0MTQwEqQQ --MA4xDDAKBgNVBAMMA3QxNTASpBAwDjEMMAoGA1UEAwwDdDE2MBKkEDAOMQwwCgYD --VQQDDAN0MTcwEqQQMA4xDDAKBgNVBAMMA3QxODASpBAwDjEMMAoGA1UEAwwDdDE5 --MBKkEDAOMQwwCgYDVQQDDAN0MjAwEqQQMA4xDDAKBgNVBAMMA3QyMTASpBAwDjEM --MAoGA1UEAwwDdDIyMBKkEDAOMQwwCgYDVQQDDAN0MjMwEqQQMA4xDDAKBgNVBAMM --A3QyNDASpBAwDjEMMAoGA1UEAwwDdDI1MBKkEDAOMQwwCgYDVQQDDAN0MjYwEqQQ --MA4xDDAKBgNVBAMMA3QyNzASpBAwDjEMMAoGA1UEAwwDdDI4MBKkEDAOMQwwCgYD --VQQDDAN0MjkwEqQQMA4xDDAKBgNVBAMMA3QzMDASpBAwDjEMMAoGA1UEAwwDdDMx --MBKkEDAOMQwwCgYDVQQDDAN0MzIwEqQQMA4xDDAKBgNVBAMMA3QzMzASpBAwDjEM --MAoGA1UEAwwDdDM0MBKkEDAOMQwwCgYDVQQDDAN0MzUwEqQQMA4xDDAKBgNVBAMM --A3QzNjASpBAwDjEMMAoGA1UEAwwDdDM3MBKkEDAOMQwwCgYDVQQDDAN0MzgwEqQQ --MA4xDDAKBgNVBAMMA3QzOTASpBAwDjEMMAoGA1UEAwwDdDQwMBKkEDAOMQwwCgYD --VQQDDAN0NDEwEqQQMA4xDDAKBgNVBAMMA3Q0MjASpBAwDjEMMAoGA1UEAwwDdDQz --MBKkEDAOMQwwCgYDVQQDDAN0NDQwEqQQMA4xDDAKBgNVBAMMA3Q0NTASpBAwDjEM --MAoGA1UEAwwDdDQ2MBKkEDAOMQwwCgYDVQQDDAN0NDcwEqQQMA4xDDAKBgNVBAMM --A3Q0ODASpBAwDjEMMAoGA1UEAwwDdDQ5MBKkEDAOMQwwCgYDVQQDDAN0NTAwEqQQ --MA4xDDAKBgNVBAMMA3Q1MTASpBAwDjEMMAoGA1UEAwwDdDUyMBKkEDAOMQwwCgYD --VQQDDAN0NTMwEqQQMA4xDDAKBgNVBAMMA3Q1NDASpBAwDjEMMAoGA1UEAwwDdDU1 --MBKkEDAOMQwwCgYDVQQDDAN0NTYwEqQQMA4xDDAKBgNVBAMMA3Q1NzASpBAwDjEM --MAoGA1UEAwwDdDU4MBKkEDAOMQwwCgYDVQQDDAN0NTkwEqQQMA4xDDAKBgNVBAMM --A3Q2MDASpBAwDjEMMAoGA1UEAwwDdDYxMBKkEDAOMQwwCgYDVQQDDAN0NjIwEqQQ --MA4xDDAKBgNVBAMMA3Q2MzASpBAwDjEMMAoGA1UEAwwDdDY0MBKkEDAOMQwwCgYD --VQQDDAN0NjUwEqQQMA4xDDAKBgNVBAMMA3Q2NjASpBAwDjEMMAoGA1UEAwwDdDY3 --MBKkEDAOMQwwCgYDVQQDDAN0NjgwEqQQMA4xDDAKBgNVBAMMA3Q2OTASpBAwDjEM --MAoGA1UEAwwDdDcwMBKkEDAOMQwwCgYDVQQDDAN0NzEwEqQQMA4xDDAKBgNVBAMM --A3Q3MjASpBAwDjEMMAoGA1UEAwwDdDczMBKkEDAOMQwwCgYDVQQDDAN0NzQwEqQQ --MA4xDDAKBgNVBAMMA3Q3NTASpBAwDjEMMAoGA1UEAwwDdDc2MBKkEDAOMQwwCgYD --VQQDDAN0NzcwEqQQMA4xDDAKBgNVBAMMA3Q3ODASpBAwDjEMMAoGA1UEAwwDdDc5 --MBKkEDAOMQwwCgYDVQQDDAN0ODAwEqQQMA4xDDAKBgNVBAMMA3Q4MTASpBAwDjEM --MAoGA1UEAwwDdDgyMBKkEDAOMQwwCgYDVQQDDAN0ODMwEqQQMA4xDDAKBgNVBAMM --A3Q4NDASpBAwDjEMMAoGA1UEAwwDdDg1MBKkEDAOMQwwCgYDVQQDDAN0ODYwEqQQ --MA4xDDAKBgNVBAMMA3Q4NzASpBAwDjEMMAoGA1UEAwwDdDg4MBKkEDAOMQwwCgYD --VQQDDAN0ODkwEqQQMA4xDDAKBgNVBAMMA3Q5MDASpBAwDjEMMAoGA1UEAwwDdDkx --MBKkEDAOMQwwCgYDVQQDDAN0OTIwEqQQMA4xDDAKBgNVBAMMA3Q5MzASpBAwDjEM --MAoGA1UEAwwDdDk0MBKkEDAOMQwwCgYDVQQDDAN0OTUwEqQQMA4xDDAKBgNVBAMM --A3Q5NjASpBAwDjEMMAoGA1UEAwwDdDk3MBKkEDAOMQwwCgYDVQQDDAN0OTgwEqQQ --MA4xDDAKBgNVBAMMA3Q5OTATpBEwDzENMAsGA1UEAwwEdDEwMDATpBEwDzENMAsG --A1UEAwwEdDEwMTATpBEwDzENMAsGA1UEAwwEdDEwMjATpBEwDzENMAsGA1UEAwwE --dDEwMzATpBEwDzENMAsGA1UEAwwEdDEwNDATpBEwDzENMAsGA1UEAwwEdDEwNTAT --pBEwDzENMAsGA1UEAwwEdDEwNjATpBEwDzENMAsGA1UEAwwEdDEwNzATpBEwDzEN --MAsGA1UEAwwEdDEwODATpBEwDzENMAsGA1UEAwwEdDEwOTATpBEwDzENMAsGA1UE --AwwEdDExMDATpBEwDzENMAsGA1UEAwwEdDExMTATpBEwDzENMAsGA1UEAwwEdDEx --MjATpBEwDzENMAsGA1UEAwwEdDExMzATpBEwDzENMAsGA1UEAwwEdDExNDATpBEw --DzENMAsGA1UEAwwEdDExNTATpBEwDzENMAsGA1UEAwwEdDExNjATpBEwDzENMAsG --A1UEAwwEdDExNzATpBEwDzENMAsGA1UEAwwEdDExODATpBEwDzENMAsGA1UEAwwE --dDExOTATpBEwDzENMAsGA1UEAwwEdDEyMDATpBEwDzENMAsGA1UEAwwEdDEyMTAT --pBEwDzENMAsGA1UEAwwEdDEyMjATpBEwDzENMAsGA1UEAwwEdDEyMzATpBEwDzEN --MAsGA1UEAwwEdDEyNDATpBEwDzENMAsGA1UEAwwEdDEyNTATpBEwDzENMAsGA1UE --AwwEdDEyNjATpBEwDzENMAsGA1UEAwwEdDEyNzATpBEwDzENMAsGA1UEAwwEdDEy --ODATpBEwDzENMAsGA1UEAwwEdDEyOTATpBEwDzENMAsGA1UEAwwEdDEzMDATpBEw --DzENMAsGA1UEAwwEdDEzMTATpBEwDzENMAsGA1UEAwwEdDEzMjATpBEwDzENMAsG --A1UEAwwEdDEzMzATpBEwDzENMAsGA1UEAwwEdDEzNDATpBEwDzENMAsGA1UEAwwE --dDEzNTATpBEwDzENMAsGA1UEAwwEdDEzNjATpBEwDzENMAsGA1UEAwwEdDEzNzAT --pBEwDzENMAsGA1UEAwwEdDEzODATpBEwDzENMAsGA1UEAwwEdDEzOTATpBEwDzEN --MAsGA1UEAwwEdDE0MDATpBEwDzENMAsGA1UEAwwEdDE0MTATpBEwDzENMAsGA1UE --AwwEdDE0MjATpBEwDzENMAsGA1UEAwwEdDE0MzATpBEwDzENMAsGA1UEAwwEdDE0 --NDATpBEwDzENMAsGA1UEAwwEdDE0NTATpBEwDzENMAsGA1UEAwwEdDE0NjATpBEw --DzENMAsGA1UEAwwEdDE0NzATpBEwDzENMAsGA1UEAwwEdDE0ODATpBEwDzENMAsG --A1UEAwwEdDE0OTATpBEwDzENMAsGA1UEAwwEdDE1MDATpBEwDzENMAsGA1UEAwwE --dDE1MTATpBEwDzENMAsGA1UEAwwEdDE1MjATpBEwDzENMAsGA1UEAwwEdDE1MzAT --pBEwDzENMAsGA1UEAwwEdDE1NDATpBEwDzENMAsGA1UEAwwEdDE1NTATpBEwDzEN --MAsGA1UEAwwEdDE1NjATpBEwDzENMAsGA1UEAwwEdDE1NzATpBEwDzENMAsGA1UE --AwwEdDE1ODATpBEwDzENMAsGA1UEAwwEdDE1OTATpBEwDzENMAsGA1UEAwwEdDE2 --MDATpBEwDzENMAsGA1UEAwwEdDE2MTATpBEwDzENMAsGA1UEAwwEdDE2MjATpBEw --DzENMAsGA1UEAwwEdDE2MzATpBEwDzENMAsGA1UEAwwEdDE2NDATpBEwDzENMAsG --A1UEAwwEdDE2NTATpBEwDzENMAsGA1UEAwwEdDE2NjATpBEwDzENMAsGA1UEAwwE --dDE2NzATpBEwDzENMAsGA1UEAwwEdDE2ODATpBEwDzENMAsGA1UEAwwEdDE2OTAT --pBEwDzENMAsGA1UEAwwEdDE3MDATpBEwDzENMAsGA1UEAwwEdDE3MTATpBEwDzEN --MAsGA1UEAwwEdDE3MjATpBEwDzENMAsGA1UEAwwEdDE3MzATpBEwDzENMAsGA1UE --AwwEdDE3NDATpBEwDzENMAsGA1UEAwwEdDE3NTATpBEwDzENMAsGA1UEAwwEdDE3 --NjATpBEwDzENMAsGA1UEAwwEdDE3NzATpBEwDzENMAsGA1UEAwwEdDE3ODATpBEw --DzENMAsGA1UEAwwEdDE3OTATpBEwDzENMAsGA1UEAwwEdDE4MDATpBEwDzENMAsG --A1UEAwwEdDE4MTATpBEwDzENMAsGA1UEAwwEdDE4MjATpBEwDzENMAsGA1UEAwwE --dDE4MzATpBEwDzENMAsGA1UEAwwEdDE4NDATpBEwDzENMAsGA1UEAwwEdDE4NTAT --pBEwDzENMAsGA1UEAwwEdDE4NjATpBEwDzENMAsGA1UEAwwEdDE4NzATpBEwDzEN --MAsGA1UEAwwEdDE4ODATpBEwDzENMAsGA1UEAwwEdDE4OTATpBEwDzENMAsGA1UE --AwwEdDE5MDATpBEwDzENMAsGA1UEAwwEdDE5MTATpBEwDzENMAsGA1UEAwwEdDE5 --MjATpBEwDzENMAsGA1UEAwwEdDE5MzATpBEwDzENMAsGA1UEAwwEdDE5NDATpBEw --DzENMAsGA1UEAwwEdDE5NTATpBEwDzENMAsGA1UEAwwEdDE5NjATpBEwDzENMAsG --A1UEAwwEdDE5NzATpBEwDzENMAsGA1UEAwwEdDE5ODATpBEwDzENMAsGA1UEAwwE --dDE5OTATpBEwDzENMAsGA1UEAwwEdDIwMDATpBEwDzENMAsGA1UEAwwEdDIwMTAT --pBEwDzENMAsGA1UEAwwEdDIwMjATpBEwDzENMAsGA1UEAwwEdDIwMzATpBEwDzEN --MAsGA1UEAwwEdDIwNDATpBEwDzENMAsGA1UEAwwEdDIwNTATpBEwDzENMAsGA1UE --AwwEdDIwNjATpBEwDzENMAsGA1UEAwwEdDIwNzATpBEwDzENMAsGA1UEAwwEdDIw --ODATpBEwDzENMAsGA1UEAwwEdDIwOTATpBEwDzENMAsGA1UEAwwEdDIxMDATpBEw --DzENMAsGA1UEAwwEdDIxMTATpBEwDzENMAsGA1UEAwwEdDIxMjATpBEwDzENMAsG --A1UEAwwEdDIxMzATpBEwDzENMAsGA1UEAwwEdDIxNDATpBEwDzENMAsGA1UEAwwE --dDIxNTATpBEwDzENMAsGA1UEAwwEdDIxNjATpBEwDzENMAsGA1UEAwwEdDIxNzAT --pBEwDzENMAsGA1UEAwwEdDIxODATpBEwDzENMAsGA1UEAwwEdDIxOTATpBEwDzEN --MAsGA1UEAwwEdDIyMDATpBEwDzENMAsGA1UEAwwEdDIyMTATpBEwDzENMAsGA1UE --AwwEdDIyMjATpBEwDzENMAsGA1UEAwwEdDIyMzATpBEwDzENMAsGA1UEAwwEdDIy --NDATpBEwDzENMAsGA1UEAwwEdDIyNTATpBEwDzENMAsGA1UEAwwEdDIyNjATpBEw --DzENMAsGA1UEAwwEdDIyNzATpBEwDzENMAsGA1UEAwwEdDIyODATpBEwDzENMAsG --A1UEAwwEdDIyOTATpBEwDzENMAsGA1UEAwwEdDIzMDATpBEwDzENMAsGA1UEAwwE --dDIzMTATpBEwDzENMAsGA1UEAwwEdDIzMjATpBEwDzENMAsGA1UEAwwEdDIzMzAT --pBEwDzENMAsGA1UEAwwEdDIzNDATpBEwDzENMAsGA1UEAwwEdDIzNTATpBEwDzEN --MAsGA1UEAwwEdDIzNjATpBEwDzENMAsGA1UEAwwEdDIzNzATpBEwDzENMAsGA1UE --AwwEdDIzODATpBEwDzENMAsGA1UEAwwEdDIzOTATpBEwDzENMAsGA1UEAwwEdDI0 --MDATpBEwDzENMAsGA1UEAwwEdDI0MTATpBEwDzENMAsGA1UEAwwEdDI0MjATpBEw --DzENMAsGA1UEAwwEdDI0MzATpBEwDzENMAsGA1UEAwwEdDI0NDATpBEwDzENMAsG --A1UEAwwEdDI0NTATpBEwDzENMAsGA1UEAwwEdDI0NjATpBEwDzENMAsGA1UEAwwE --dDI0NzATpBEwDzENMAsGA1UEAwwEdDI0ODATpBEwDzENMAsGA1UEAwwEdDI0OTAT --pBEwDzENMAsGA1UEAwwEdDI1MDATpBEwDzENMAsGA1UEAwwEdDI1MTATpBEwDzEN --MAsGA1UEAwwEdDI1MjATpBEwDzENMAsGA1UEAwwEdDI1MzATpBEwDzENMAsGA1UE --AwwEdDI1NDATpBEwDzENMAsGA1UEAwwEdDI1NTATpBEwDzENMAsGA1UEAwwEdDI1 --NjATpBEwDzENMAsGA1UEAwwEdDI1NzATpBEwDzENMAsGA1UEAwwEdDI1ODATpBEw --DzENMAsGA1UEAwwEdDI1OTATpBEwDzENMAsGA1UEAwwEdDI2MDATpBEwDzENMAsG --A1UEAwwEdDI2MTATpBEwDzENMAsGA1UEAwwEdDI2MjATpBEwDzENMAsGA1UEAwwE --dDI2MzATpBEwDzENMAsGA1UEAwwEdDI2NDATpBEwDzENMAsGA1UEAwwEdDI2NTAT --pBEwDzENMAsGA1UEAwwEdDI2NjATpBEwDzENMAsGA1UEAwwEdDI2NzATpBEwDzEN --MAsGA1UEAwwEdDI2ODATpBEwDzENMAsGA1UEAwwEdDI2OTATpBEwDzENMAsGA1UE --AwwEdDI3MDATpBEwDzENMAsGA1UEAwwEdDI3MTATpBEwDzENMAsGA1UEAwwEdDI3 --MjATpBEwDzENMAsGA1UEAwwEdDI3MzATpBEwDzENMAsGA1UEAwwEdDI3NDATpBEw --DzENMAsGA1UEAwwEdDI3NTATpBEwDzENMAsGA1UEAwwEdDI3NjATpBEwDzENMAsG --A1UEAwwEdDI3NzATpBEwDzENMAsGA1UEAwwEdDI3ODATpBEwDzENMAsGA1UEAwwE --dDI3OTATpBEwDzENMAsGA1UEAwwEdDI4MDATpBEwDzENMAsGA1UEAwwEdDI4MTAT --pBEwDzENMAsGA1UEAwwEdDI4MjATpBEwDzENMAsGA1UEAwwEdDI4MzATpBEwDzEN --MAsGA1UEAwwEdDI4NDATpBEwDzENMAsGA1UEAwwEdDI4NTATpBEwDzENMAsGA1UE --AwwEdDI4NjATpBEwDzENMAsGA1UEAwwEdDI4NzATpBEwDzENMAsGA1UEAwwEdDI4 --ODATpBEwDzENMAsGA1UEAwwEdDI4OTATpBEwDzENMAsGA1UEAwwEdDI5MDATpBEw --DzENMAsGA1UEAwwEdDI5MTATpBEwDzENMAsGA1UEAwwEdDI5MjATpBEwDzENMAsG --A1UEAwwEdDI5MzATpBEwDzENMAsGA1UEAwwEdDI5NDATpBEwDzENMAsGA1UEAwwE --dDI5NTATpBEwDzENMAsGA1UEAwwEdDI5NjATpBEwDzENMAsGA1UEAwwEdDI5NzAT --pBEwDzENMAsGA1UEAwwEdDI5ODATpBEwDzENMAsGA1UEAwwEdDI5OTATpBEwDzEN --MAsGA1UEAwwEdDMwMDATpBEwDzENMAsGA1UEAwwEdDMwMTATpBEwDzENMAsGA1UE --AwwEdDMwMjATpBEwDzENMAsGA1UEAwwEdDMwMzATpBEwDzENMAsGA1UEAwwEdDMw --NDATpBEwDzENMAsGA1UEAwwEdDMwNTATpBEwDzENMAsGA1UEAwwEdDMwNjATpBEw --DzENMAsGA1UEAwwEdDMwNzATpBEwDzENMAsGA1UEAwwEdDMwODATpBEwDzENMAsG --A1UEAwwEdDMwOTATpBEwDzENMAsGA1UEAwwEdDMxMDATpBEwDzENMAsGA1UEAwwE --dDMxMTATpBEwDzENMAsGA1UEAwwEdDMxMjATpBEwDzENMAsGA1UEAwwEdDMxMzAT --pBEwDzENMAsGA1UEAwwEdDMxNDATpBEwDzENMAsGA1UEAwwEdDMxNTATpBEwDzEN --MAsGA1UEAwwEdDMxNjATpBEwDzENMAsGA1UEAwwEdDMxNzATpBEwDzENMAsGA1UE --AwwEdDMxODATpBEwDzENMAsGA1UEAwwEdDMxOTATpBEwDzENMAsGA1UEAwwEdDMy --MDATpBEwDzENMAsGA1UEAwwEdDMyMTATpBEwDzENMAsGA1UEAwwEdDMyMjATpBEw --DzENMAsGA1UEAwwEdDMyMzATpBEwDzENMAsGA1UEAwwEdDMyNDATpBEwDzENMAsG --A1UEAwwEdDMyNTATpBEwDzENMAsGA1UEAwwEdDMyNjATpBEwDzENMAsGA1UEAwwE --dDMyNzATpBEwDzENMAsGA1UEAwwEdDMyODATpBEwDzENMAsGA1UEAwwEdDMyOTAT --pBEwDzENMAsGA1UEAwwEdDMzMDATpBEwDzENMAsGA1UEAwwEdDMzMTATpBEwDzEN --MAsGA1UEAwwEdDMzMjATpBEwDzENMAsGA1UEAwwEdDMzMzATpBEwDzENMAsGA1UE --AwwEdDMzNDATpBEwDzENMAsGA1UEAwwEdDMzNTATpBEwDzENMAsGA1UEAwwEdDMz --NjATpBEwDzENMAsGA1UEAwwEdDMzNzATpBEwDzENMAsGA1UEAwwEdDMzODATpBEw --DzENMAsGA1UEAwwEdDMzOTATpBEwDzENMAsGA1UEAwwEdDM0MDATpBEwDzENMAsG --A1UEAwwEdDM0MTATpBEwDzENMAsGA1UEAwwEdDM0MjATpBEwDzENMAsGA1UEAwwE --dDM0MzATpBEwDzENMAsGA1UEAwwEdDM0NDATpBEwDzENMAsGA1UEAwwEdDM0NTAT --pBEwDzENMAsGA1UEAwwEdDM0NjATpBEwDzENMAsGA1UEAwwEdDM0NzATpBEwDzEN --MAsGA1UEAwwEdDM0ODATpBEwDzENMAsGA1UEAwwEdDM0OTATpBEwDzENMAsGA1UE --AwwEdDM1MDATpBEwDzENMAsGA1UEAwwEdDM1MTATpBEwDzENMAsGA1UEAwwEdDM1 --MjATpBEwDzENMAsGA1UEAwwEdDM1MzATpBEwDzENMAsGA1UEAwwEdDM1NDATpBEw --DzENMAsGA1UEAwwEdDM1NTATpBEwDzENMAsGA1UEAwwEdDM1NjATpBEwDzENMAsG --A1UEAwwEdDM1NzATpBEwDzENMAsGA1UEAwwEdDM1ODATpBEwDzENMAsGA1UEAwwE --dDM1OTATpBEwDzENMAsGA1UEAwwEdDM2MDATpBEwDzENMAsGA1UEAwwEdDM2MTAT --pBEwDzENMAsGA1UEAwwEdDM2MjATpBEwDzENMAsGA1UEAwwEdDM2MzATpBEwDzEN --MAsGA1UEAwwEdDM2NDATpBEwDzENMAsGA1UEAwwEdDM2NTATpBEwDzENMAsGA1UE --AwwEdDM2NjATpBEwDzENMAsGA1UEAwwEdDM2NzATpBEwDzENMAsGA1UEAwwEdDM2 --ODATpBEwDzENMAsGA1UEAwwEdDM2OTATpBEwDzENMAsGA1UEAwwEdDM3MDATpBEw --DzENMAsGA1UEAwwEdDM3MTATpBEwDzENMAsGA1UEAwwEdDM3MjATpBEwDzENMAsG --A1UEAwwEdDM3MzATpBEwDzENMAsGA1UEAwwEdDM3NDATpBEwDzENMAsGA1UEAwwE --dDM3NTATpBEwDzENMAsGA1UEAwwEdDM3NjATpBEwDzENMAsGA1UEAwwEdDM3NzAT --pBEwDzENMAsGA1UEAwwEdDM3ODATpBEwDzENMAsGA1UEAwwEdDM3OTATpBEwDzEN --MAsGA1UEAwwEdDM4MDATpBEwDzENMAsGA1UEAwwEdDM4MTATpBEwDzENMAsGA1UE --AwwEdDM4MjATpBEwDzENMAsGA1UEAwwEdDM4MzATpBEwDzENMAsGA1UEAwwEdDM4 --NDATpBEwDzENMAsGA1UEAwwEdDM4NTATpBEwDzENMAsGA1UEAwwEdDM4NjATpBEw --DzENMAsGA1UEAwwEdDM4NzATpBEwDzENMAsGA1UEAwwEdDM4ODATpBEwDzENMAsG --A1UEAwwEdDM4OTATpBEwDzENMAsGA1UEAwwEdDM5MDATpBEwDzENMAsGA1UEAwwE --dDM5MTATpBEwDzENMAsGA1UEAwwEdDM5MjATpBEwDzENMAsGA1UEAwwEdDM5MzAT --pBEwDzENMAsGA1UEAwwEdDM5NDATpBEwDzENMAsGA1UEAwwEdDM5NTATpBEwDzEN --MAsGA1UEAwwEdDM5NjATpBEwDzENMAsGA1UEAwwEdDM5NzATpBEwDzENMAsGA1UE --AwwEdDM5ODATpBEwDzENMAsGA1UEAwwEdDM5OTATpBEwDzENMAsGA1UEAwwEdDQw --MDATpBEwDzENMAsGA1UEAwwEdDQwMTATpBEwDzENMAsGA1UEAwwEdDQwMjATpBEw --DzENMAsGA1UEAwwEdDQwMzATpBEwDzENMAsGA1UEAwwEdDQwNDATpBEwDzENMAsG --A1UEAwwEdDQwNTATpBEwDzENMAsGA1UEAwwEdDQwNjATpBEwDzENMAsGA1UEAwwE --dDQwNzATpBEwDzENMAsGA1UEAwwEdDQwODATpBEwDzENMAsGA1UEAwwEdDQwOTAT --pBEwDzENMAsGA1UEAwwEdDQxMDATpBEwDzENMAsGA1UEAwwEdDQxMTATpBEwDzEN --MAsGA1UEAwwEdDQxMjATpBEwDzENMAsGA1UEAwwEdDQxMzATpBEwDzENMAsGA1UE --AwwEdDQxNDATpBEwDzENMAsGA1UEAwwEdDQxNTATpBEwDzENMAsGA1UEAwwEdDQx --NjATpBEwDzENMAsGA1UEAwwEdDQxNzATpBEwDzENMAsGA1UEAwwEdDQxODATpBEw --DzENMAsGA1UEAwwEdDQxOTATpBEwDzENMAsGA1UEAwwEdDQyMDATpBEwDzENMAsG --A1UEAwwEdDQyMTATpBEwDzENMAsGA1UEAwwEdDQyMjATpBEwDzENMAsGA1UEAwwE --dDQyMzATpBEwDzENMAsGA1UEAwwEdDQyNDATpBEwDzENMAsGA1UEAwwEdDQyNTAT --pBEwDzENMAsGA1UEAwwEdDQyNjATpBEwDzENMAsGA1UEAwwEdDQyNzATpBEwDzEN --MAsGA1UEAwwEdDQyODATpBEwDzENMAsGA1UEAwwEdDQyOTATpBEwDzENMAsGA1UE --AwwEdDQzMDATpBEwDzENMAsGA1UEAwwEdDQzMTATpBEwDzENMAsGA1UEAwwEdDQz --MjATpBEwDzENMAsGA1UEAwwEdDQzMzATpBEwDzENMAsGA1UEAwwEdDQzNDATpBEw --DzENMAsGA1UEAwwEdDQzNTATpBEwDzENMAsGA1UEAwwEdDQzNjATpBEwDzENMAsG --A1UEAwwEdDQzNzATpBEwDzENMAsGA1UEAwwEdDQzODATpBEwDzENMAsGA1UEAwwE --dDQzOTATpBEwDzENMAsGA1UEAwwEdDQ0MDATpBEwDzENMAsGA1UEAwwEdDQ0MTAT --pBEwDzENMAsGA1UEAwwEdDQ0MjATpBEwDzENMAsGA1UEAwwEdDQ0MzATpBEwDzEN --MAsGA1UEAwwEdDQ0NDATpBEwDzENMAsGA1UEAwwEdDQ0NTATpBEwDzENMAsGA1UE --AwwEdDQ0NjATpBEwDzENMAsGA1UEAwwEdDQ0NzATpBEwDzENMAsGA1UEAwwEdDQ0 --ODATpBEwDzENMAsGA1UEAwwEdDQ0OTATpBEwDzENMAsGA1UEAwwEdDQ1MDATpBEw --DzENMAsGA1UEAwwEdDQ1MTATpBEwDzENMAsGA1UEAwwEdDQ1MjATpBEwDzENMAsG --A1UEAwwEdDQ1MzATpBEwDzENMAsGA1UEAwwEdDQ1NDATpBEwDzENMAsGA1UEAwwE --dDQ1NTATpBEwDzENMAsGA1UEAwwEdDQ1NjATpBEwDzENMAsGA1UEAwwEdDQ1NzAT --pBEwDzENMAsGA1UEAwwEdDQ1ODATpBEwDzENMAsGA1UEAwwEdDQ1OTATpBEwDzEN --MAsGA1UEAwwEdDQ2MDATpBEwDzENMAsGA1UEAwwEdDQ2MTATpBEwDzENMAsGA1UE --AwwEdDQ2MjATpBEwDzENMAsGA1UEAwwEdDQ2MzATpBEwDzENMAsGA1UEAwwEdDQ2 --NDATpBEwDzENMAsGA1UEAwwEdDQ2NTATpBEwDzENMAsGA1UEAwwEdDQ2NjATpBEw --DzENMAsGA1UEAwwEdDQ2NzATpBEwDzENMAsGA1UEAwwEdDQ2ODATpBEwDzENMAsG --A1UEAwwEdDQ2OTATpBEwDzENMAsGA1UEAwwEdDQ3MDATpBEwDzENMAsGA1UEAwwE --dDQ3MTATpBEwDzENMAsGA1UEAwwEdDQ3MjATpBEwDzENMAsGA1UEAwwEdDQ3MzAT --pBEwDzENMAsGA1UEAwwEdDQ3NDATpBEwDzENMAsGA1UEAwwEdDQ3NTATpBEwDzEN --MAsGA1UEAwwEdDQ3NjATpBEwDzENMAsGA1UEAwwEdDQ3NzATpBEwDzENMAsGA1UE --AwwEdDQ3ODATpBEwDzENMAsGA1UEAwwEdDQ3OTATpBEwDzENMAsGA1UEAwwEdDQ4 --MDATpBEwDzENMAsGA1UEAwwEdDQ4MTATpBEwDzENMAsGA1UEAwwEdDQ4MjATpBEw --DzENMAsGA1UEAwwEdDQ4MzATpBEwDzENMAsGA1UEAwwEdDQ4NDATpBEwDzENMAsG --A1UEAwwEdDQ4NTATpBEwDzENMAsGA1UEAwwEdDQ4NjATpBEwDzENMAsGA1UEAwwE --dDQ4NzATpBEwDzENMAsGA1UEAwwEdDQ4ODATpBEwDzENMAsGA1UEAwwEdDQ4OTAT --pBEwDzENMAsGA1UEAwwEdDQ5MDATpBEwDzENMAsGA1UEAwwEdDQ5MTATpBEwDzEN --MAsGA1UEAwwEdDQ5MjATpBEwDzENMAsGA1UEAwwEdDQ5MzATpBEwDzENMAsGA1UE --AwwEdDQ5NDATpBEwDzENMAsGA1UEAwwEdDQ5NTATpBEwDzENMAsGA1UEAwwEdDQ5 --NjATpBEwDzENMAsGA1UEAwwEdDQ5NzATpBEwDzENMAsGA1UEAwwEdDQ5ODATpBEw --DzENMAsGA1UEAwwEdDQ5OTATpBEwDzENMAsGA1UEAwwEdDUwMDATpBEwDzENMAsG --A1UEAwwEdDUwMTATpBEwDzENMAsGA1UEAwwEdDUwMjATpBEwDzENMAsGA1UEAwwE --dDUwMzATpBEwDzENMAsGA1UEAwwEdDUwNDATpBEwDzENMAsGA1UEAwwEdDUwNTAT --pBEwDzENMAsGA1UEAwwEdDUwNjATpBEwDzENMAsGA1UEAwwEdDUwNzATpBEwDzEN --MAsGA1UEAwwEdDUwODATpBEwDzENMAsGA1UEAwwEdDUwOTATpBEwDzENMAsGA1UE --AwwEdDUxMDATpBEwDzENMAsGA1UEAwwEdDUxMTATpBEwDzENMAsGA1UEAwwEdDUx --MjATpBEwDzENMAsGA1UEAwwEdDUxMzATpBEwDzENMAsGA1UEAwwEdDUxNDATpBEw --DzENMAsGA1UEAwwEdDUxNTATpBEwDzENMAsGA1UEAwwEdDUxNjATpBEwDzENMAsG --A1UEAwwEdDUxNzATpBEwDzENMAsGA1UEAwwEdDUxODATpBEwDzENMAsGA1UEAwwE --dDUxOTATpBEwDzENMAsGA1UEAwwEdDUyMDATpBEwDzENMAsGA1UEAwwEdDUyMTAT --pBEwDzENMAsGA1UEAwwEdDUyMjATpBEwDzENMAsGA1UEAwwEdDUyMzATpBEwDzEN --MAsGA1UEAwwEdDUyNDATpBEwDzENMAsGA1UEAwwEdDUyNTATpBEwDzENMAsGA1UE --AwwEdDUyNjATpBEwDzENMAsGA1UEAwwEdDUyNzATpBEwDzENMAsGA1UEAwwEdDUy --ODATpBEwDzENMAsGA1UEAwwEdDUyOTATpBEwDzENMAsGA1UEAwwEdDUzMDATpBEw --DzENMAsGA1UEAwwEdDUzMTATpBEwDzENMAsGA1UEAwwEdDUzMjATpBEwDzENMAsG --A1UEAwwEdDUzMzATpBEwDzENMAsGA1UEAwwEdDUzNDATpBEwDzENMAsGA1UEAwwE --dDUzNTATpBEwDzENMAsGA1UEAwwEdDUzNjATpBEwDzENMAsGA1UEAwwEdDUzNzAT --pBEwDzENMAsGA1UEAwwEdDUzODATpBEwDzENMAsGA1UEAwwEdDUzOTATpBEwDzEN --MAsGA1UEAwwEdDU0MDATpBEwDzENMAsGA1UEAwwEdDU0MTATpBEwDzENMAsGA1UE --AwwEdDU0MjATpBEwDzENMAsGA1UEAwwEdDU0MzATpBEwDzENMAsGA1UEAwwEdDU0 --NDATpBEwDzENMAsGA1UEAwwEdDU0NTATpBEwDzENMAsGA1UEAwwEdDU0NjATpBEw --DzENMAsGA1UEAwwEdDU0NzATpBEwDzENMAsGA1UEAwwEdDU0ODATpBEwDzENMAsG --A1UEAwwEdDU0OTATpBEwDzENMAsGA1UEAwwEdDU1MDATpBEwDzENMAsGA1UEAwwE --dDU1MTATpBEwDzENMAsGA1UEAwwEdDU1MjATpBEwDzENMAsGA1UEAwwEdDU1MzAT --pBEwDzENMAsGA1UEAwwEdDU1NDATpBEwDzENMAsGA1UEAwwEdDU1NTATpBEwDzEN --MAsGA1UEAwwEdDU1NjATpBEwDzENMAsGA1UEAwwEdDU1NzATpBEwDzENMAsGA1UE --AwwEdDU1ODATpBEwDzENMAsGA1UEAwwEdDU1OTATpBEwDzENMAsGA1UEAwwEdDU2 --MDATpBEwDzENMAsGA1UEAwwEdDU2MTATpBEwDzENMAsGA1UEAwwEdDU2MjATpBEw --DzENMAsGA1UEAwwEdDU2MzATpBEwDzENMAsGA1UEAwwEdDU2NDATpBEwDzENMAsG --A1UEAwwEdDU2NTATpBEwDzENMAsGA1UEAwwEdDU2NjATpBEwDzENMAsGA1UEAwwE --dDU2NzATpBEwDzENMAsGA1UEAwwEdDU2ODATpBEwDzENMAsGA1UEAwwEdDU2OTAT --pBEwDzENMAsGA1UEAwwEdDU3MDATpBEwDzENMAsGA1UEAwwEdDU3MTATpBEwDzEN --MAsGA1UEAwwEdDU3MjATpBEwDzENMAsGA1UEAwwEdDU3MzATpBEwDzENMAsGA1UE --AwwEdDU3NDATpBEwDzENMAsGA1UEAwwEdDU3NTATpBEwDzENMAsGA1UEAwwEdDU3 --NjATpBEwDzENMAsGA1UEAwwEdDU3NzATpBEwDzENMAsGA1UEAwwEdDU3ODATpBEw --DzENMAsGA1UEAwwEdDU3OTATpBEwDzENMAsGA1UEAwwEdDU4MDATpBEwDzENMAsG --A1UEAwwEdDU4MTATpBEwDzENMAsGA1UEAwwEdDU4MjATpBEwDzENMAsGA1UEAwwE --dDU4MzATpBEwDzENMAsGA1UEAwwEdDU4NDATpBEwDzENMAsGA1UEAwwEdDU4NTAT --pBEwDzENMAsGA1UEAwwEdDU4NjATpBEwDzENMAsGA1UEAwwEdDU4NzATpBEwDzEN --MAsGA1UEAwwEdDU4ODATpBEwDzENMAsGA1UEAwwEdDU4OTATpBEwDzENMAsGA1UE --AwwEdDU5MDATpBEwDzENMAsGA1UEAwwEdDU5MTATpBEwDzENMAsGA1UEAwwEdDU5 --MjATpBEwDzENMAsGA1UEAwwEdDU5MzATpBEwDzENMAsGA1UEAwwEdDU5NDATpBEw --DzENMAsGA1UEAwwEdDU5NTATpBEwDzENMAsGA1UEAwwEdDU5NjATpBEwDzENMAsG --A1UEAwwEdDU5NzATpBEwDzENMAsGA1UEAwwEdDU5ODATpBEwDzENMAsGA1UEAwwE --dDU5OTATpBEwDzENMAsGA1UEAwwEdDYwMDATpBEwDzENMAsGA1UEAwwEdDYwMTAT --pBEwDzENMAsGA1UEAwwEdDYwMjATpBEwDzENMAsGA1UEAwwEdDYwMzATpBEwDzEN --MAsGA1UEAwwEdDYwNDATpBEwDzENMAsGA1UEAwwEdDYwNTATpBEwDzENMAsGA1UE --AwwEdDYwNjATpBEwDzENMAsGA1UEAwwEdDYwNzATpBEwDzENMAsGA1UEAwwEdDYw --ODATpBEwDzENMAsGA1UEAwwEdDYwOTATpBEwDzENMAsGA1UEAwwEdDYxMDATpBEw --DzENMAsGA1UEAwwEdDYxMTATpBEwDzENMAsGA1UEAwwEdDYxMjATpBEwDzENMAsG --A1UEAwwEdDYxMzATpBEwDzENMAsGA1UEAwwEdDYxNDATpBEwDzENMAsGA1UEAwwE --dDYxNTATpBEwDzENMAsGA1UEAwwEdDYxNjATpBEwDzENMAsGA1UEAwwEdDYxNzAT --pBEwDzENMAsGA1UEAwwEdDYxODATpBEwDzENMAsGA1UEAwwEdDYxOTATpBEwDzEN --MAsGA1UEAwwEdDYyMDATpBEwDzENMAsGA1UEAwwEdDYyMTATpBEwDzENMAsGA1UE --AwwEdDYyMjATpBEwDzENMAsGA1UEAwwEdDYyMzATpBEwDzENMAsGA1UEAwwEdDYy --NDATpBEwDzENMAsGA1UEAwwEdDYyNTATpBEwDzENMAsGA1UEAwwEdDYyNjATpBEw --DzENMAsGA1UEAwwEdDYyNzATpBEwDzENMAsGA1UEAwwEdDYyODATpBEwDzENMAsG --A1UEAwwEdDYyOTATpBEwDzENMAsGA1UEAwwEdDYzMDATpBEwDzENMAsGA1UEAwwE --dDYzMTATpBEwDzENMAsGA1UEAwwEdDYzMjATpBEwDzENMAsGA1UEAwwEdDYzMzAT --pBEwDzENMAsGA1UEAwwEdDYzNDATpBEwDzENMAsGA1UEAwwEdDYzNTATpBEwDzEN --MAsGA1UEAwwEdDYzNjATpBEwDzENMAsGA1UEAwwEdDYzNzATpBEwDzENMAsGA1UE --AwwEdDYzODATpBEwDzENMAsGA1UEAwwEdDYzOTATpBEwDzENMAsGA1UEAwwEdDY0 --MDATpBEwDzENMAsGA1UEAwwEdDY0MTATpBEwDzENMAsGA1UEAwwEdDY0MjATpBEw --DzENMAsGA1UEAwwEdDY0MzATpBEwDzENMAsGA1UEAwwEdDY0NDATpBEwDzENMAsG --A1UEAwwEdDY0NTATpBEwDzENMAsGA1UEAwwEdDY0NjATpBEwDzENMAsGA1UEAwwE --dDY0NzATpBEwDzENMAsGA1UEAwwEdDY0ODATpBEwDzENMAsGA1UEAwwEdDY0OTAT --pBEwDzENMAsGA1UEAwwEdDY1MDATpBEwDzENMAsGA1UEAwwEdDY1MTATpBEwDzEN --MAsGA1UEAwwEdDY1MjATpBEwDzENMAsGA1UEAwwEdDY1MzATpBEwDzENMAsGA1UE --AwwEdDY1NDATpBEwDzENMAsGA1UEAwwEdDY1NTATpBEwDzENMAsGA1UEAwwEdDY1 --NjATpBEwDzENMAsGA1UEAwwEdDY1NzATpBEwDzENMAsGA1UEAwwEdDY1ODATpBEw --DzENMAsGA1UEAwwEdDY1OTATpBEwDzENMAsGA1UEAwwEdDY2MDATpBEwDzENMAsG --A1UEAwwEdDY2MTATpBEwDzENMAsGA1UEAwwEdDY2MjATpBEwDzENMAsGA1UEAwwE --dDY2MzATpBEwDzENMAsGA1UEAwwEdDY2NDATpBEwDzENMAsGA1UEAwwEdDY2NTAT --pBEwDzENMAsGA1UEAwwEdDY2NjATpBEwDzENMAsGA1UEAwwEdDY2NzATpBEwDzEN --MAsGA1UEAwwEdDY2ODATpBEwDzENMAsGA1UEAwwEdDY2OTATpBEwDzENMAsGA1UE --AwwEdDY3MDATpBEwDzENMAsGA1UEAwwEdDY3MTATpBEwDzENMAsGA1UEAwwEdDY3 --MjATpBEwDzENMAsGA1UEAwwEdDY3MzATpBEwDzENMAsGA1UEAwwEdDY3NDATpBEw --DzENMAsGA1UEAwwEdDY3NTATpBEwDzENMAsGA1UEAwwEdDY3NjATpBEwDzENMAsG --A1UEAwwEdDY3NzATpBEwDzENMAsGA1UEAwwEdDY3ODATpBEwDzENMAsGA1UEAwwE --dDY3OTATpBEwDzENMAsGA1UEAwwEdDY4MDATpBEwDzENMAsGA1UEAwwEdDY4MTAT --pBEwDzENMAsGA1UEAwwEdDY4MjATpBEwDzENMAsGA1UEAwwEdDY4MzATpBEwDzEN --MAsGA1UEAwwEdDY4NDATpBEwDzENMAsGA1UEAwwEdDY4NTATpBEwDzENMAsGA1UE --AwwEdDY4NjATpBEwDzENMAsGA1UEAwwEdDY4NzATpBEwDzENMAsGA1UEAwwEdDY4 --ODATpBEwDzENMAsGA1UEAwwEdDY4OTATpBEwDzENMAsGA1UEAwwEdDY5MDATpBEw --DzENMAsGA1UEAwwEdDY5MTATpBEwDzENMAsGA1UEAwwEdDY5MjATpBEwDzENMAsG --A1UEAwwEdDY5MzATpBEwDzENMAsGA1UEAwwEdDY5NDATpBEwDzENMAsGA1UEAwwE --dDY5NTATpBEwDzENMAsGA1UEAwwEdDY5NjATpBEwDzENMAsGA1UEAwwEdDY5NzAT --pBEwDzENMAsGA1UEAwwEdDY5ODATpBEwDzENMAsGA1UEAwwEdDY5OTATpBEwDzEN --MAsGA1UEAwwEdDcwMDATpBEwDzENMAsGA1UEAwwEdDcwMTATpBEwDzENMAsGA1UE --AwwEdDcwMjATpBEwDzENMAsGA1UEAwwEdDcwMzATpBEwDzENMAsGA1UEAwwEdDcw --NDATpBEwDzENMAsGA1UEAwwEdDcwNTATpBEwDzENMAsGA1UEAwwEdDcwNjATpBEw --DzENMAsGA1UEAwwEdDcwNzATpBEwDzENMAsGA1UEAwwEdDcwODATpBEwDzENMAsG --A1UEAwwEdDcwOTATpBEwDzENMAsGA1UEAwwEdDcxMDATpBEwDzENMAsGA1UEAwwE --dDcxMTATpBEwDzENMAsGA1UEAwwEdDcxMjATpBEwDzENMAsGA1UEAwwEdDcxMzAT --pBEwDzENMAsGA1UEAwwEdDcxNDATpBEwDzENMAsGA1UEAwwEdDcxNTATpBEwDzEN --MAsGA1UEAwwEdDcxNjATpBEwDzENMAsGA1UEAwwEdDcxNzATpBEwDzENMAsGA1UE --AwwEdDcxODATpBEwDzENMAsGA1UEAwwEdDcxOTATpBEwDzENMAsGA1UEAwwEdDcy --MDATpBEwDzENMAsGA1UEAwwEdDcyMTATpBEwDzENMAsGA1UEAwwEdDcyMjATpBEw --DzENMAsGA1UEAwwEdDcyMzATpBEwDzENMAsGA1UEAwwEdDcyNDATpBEwDzENMAsG --A1UEAwwEdDcyNTATpBEwDzENMAsGA1UEAwwEdDcyNjATpBEwDzENMAsGA1UEAwwE --dDcyNzATpBEwDzENMAsGA1UEAwwEdDcyODATpBEwDzENMAsGA1UEAwwEdDcyOTAT --pBEwDzENMAsGA1UEAwwEdDczMDATpBEwDzENMAsGA1UEAwwEdDczMTATpBEwDzEN --MAsGA1UEAwwEdDczMjATpBEwDzENMAsGA1UEAwwEdDczMzATpBEwDzENMAsGA1UE --AwwEdDczNDATpBEwDzENMAsGA1UEAwwEdDczNTATpBEwDzENMAsGA1UEAwwEdDcz --NjATpBEwDzENMAsGA1UEAwwEdDczNzATpBEwDzENMAsGA1UEAwwEdDczODATpBEw --DzENMAsGA1UEAwwEdDczOTATpBEwDzENMAsGA1UEAwwEdDc0MDATpBEwDzENMAsG --A1UEAwwEdDc0MTATpBEwDzENMAsGA1UEAwwEdDc0MjATpBEwDzENMAsGA1UEAwwE --dDc0MzATpBEwDzENMAsGA1UEAwwEdDc0NDATpBEwDzENMAsGA1UEAwwEdDc0NTAT --pBEwDzENMAsGA1UEAwwEdDc0NjATpBEwDzENMAsGA1UEAwwEdDc0NzATpBEwDzEN --MAsGA1UEAwwEdDc0ODATpBEwDzENMAsGA1UEAwwEdDc0OTATpBEwDzENMAsGA1UE --AwwEdDc1MDATpBEwDzENMAsGA1UEAwwEdDc1MTATpBEwDzENMAsGA1UEAwwEdDc1 --MjATpBEwDzENMAsGA1UEAwwEdDc1MzATpBEwDzENMAsGA1UEAwwEdDc1NDATpBEw --DzENMAsGA1UEAwwEdDc1NTATpBEwDzENMAsGA1UEAwwEdDc1NjATpBEwDzENMAsG --A1UEAwwEdDc1NzATpBEwDzENMAsGA1UEAwwEdDc1ODATpBEwDzENMAsGA1UEAwwE --dDc1OTATpBEwDzENMAsGA1UEAwwEdDc2MDATpBEwDzENMAsGA1UEAwwEdDc2MTAT --pBEwDzENMAsGA1UEAwwEdDc2MjATpBEwDzENMAsGA1UEAwwEdDc2MzATpBEwDzEN --MAsGA1UEAwwEdDc2NDATpBEwDzENMAsGA1UEAwwEdDc2NTATpBEwDzENMAsGA1UE --AwwEdDc2NjATpBEwDzENMAsGA1UEAwwEdDc2NzATpBEwDzENMAsGA1UEAwwEdDc2 --ODATpBEwDzENMAsGA1UEAwwEdDc2OTATpBEwDzENMAsGA1UEAwwEdDc3MDATpBEw --DzENMAsGA1UEAwwEdDc3MTATpBEwDzENMAsGA1UEAwwEdDc3MjATpBEwDzENMAsG --A1UEAwwEdDc3MzATpBEwDzENMAsGA1UEAwwEdDc3NDATpBEwDzENMAsGA1UEAwwE --dDc3NTATpBEwDzENMAsGA1UEAwwEdDc3NjATpBEwDzENMAsGA1UEAwwEdDc3NzAT --pBEwDzENMAsGA1UEAwwEdDc3ODATpBEwDzENMAsGA1UEAwwEdDc3OTATpBEwDzEN --MAsGA1UEAwwEdDc4MDATpBEwDzENMAsGA1UEAwwEdDc4MTATpBEwDzENMAsGA1UE --AwwEdDc4MjATpBEwDzENMAsGA1UEAwwEdDc4MzATpBEwDzENMAsGA1UEAwwEdDc4 --NDATpBEwDzENMAsGA1UEAwwEdDc4NTATpBEwDzENMAsGA1UEAwwEdDc4NjATpBEw --DzENMAsGA1UEAwwEdDc4NzATpBEwDzENMAsGA1UEAwwEdDc4ODATpBEwDzENMAsG --A1UEAwwEdDc4OTATpBEwDzENMAsGA1UEAwwEdDc5MDATpBEwDzENMAsGA1UEAwwE --dDc5MTATpBEwDzENMAsGA1UEAwwEdDc5MjATpBEwDzENMAsGA1UEAwwEdDc5MzAT --pBEwDzENMAsGA1UEAwwEdDc5NDATpBEwDzENMAsGA1UEAwwEdDc5NTATpBEwDzEN --MAsGA1UEAwwEdDc5NjATpBEwDzENMAsGA1UEAwwEdDc5NzATpBEwDzENMAsGA1UE --AwwEdDc5ODATpBEwDzENMAsGA1UEAwwEdDc5OTATpBEwDzENMAsGA1UEAwwEdDgw --MDATpBEwDzENMAsGA1UEAwwEdDgwMTATpBEwDzENMAsGA1UEAwwEdDgwMjATpBEw --DzENMAsGA1UEAwwEdDgwMzATpBEwDzENMAsGA1UEAwwEdDgwNDATpBEwDzENMAsG --A1UEAwwEdDgwNTATpBEwDzENMAsGA1UEAwwEdDgwNjATpBEwDzENMAsGA1UEAwwE --dDgwNzATpBEwDzENMAsGA1UEAwwEdDgwODATpBEwDzENMAsGA1UEAwwEdDgwOTAT --pBEwDzENMAsGA1UEAwwEdDgxMDATpBEwDzENMAsGA1UEAwwEdDgxMTATpBEwDzEN --MAsGA1UEAwwEdDgxMjATpBEwDzENMAsGA1UEAwwEdDgxMzATpBEwDzENMAsGA1UE --AwwEdDgxNDATpBEwDzENMAsGA1UEAwwEdDgxNTATpBEwDzENMAsGA1UEAwwEdDgx --NjATpBEwDzENMAsGA1UEAwwEdDgxNzATpBEwDzENMAsGA1UEAwwEdDgxODATpBEw --DzENMAsGA1UEAwwEdDgxOTATpBEwDzENMAsGA1UEAwwEdDgyMDATpBEwDzENMAsG --A1UEAwwEdDgyMTATpBEwDzENMAsGA1UEAwwEdDgyMjATpBEwDzENMAsGA1UEAwwE --dDgyMzATpBEwDzENMAsGA1UEAwwEdDgyNDATpBEwDzENMAsGA1UEAwwEdDgyNTAT --pBEwDzENMAsGA1UEAwwEdDgyNjATpBEwDzENMAsGA1UEAwwEdDgyNzATpBEwDzEN --MAsGA1UEAwwEdDgyODATpBEwDzENMAsGA1UEAwwEdDgyOTATpBEwDzENMAsGA1UE --AwwEdDgzMDATpBEwDzENMAsGA1UEAwwEdDgzMTATpBEwDzENMAsGA1UEAwwEdDgz --MjATpBEwDzENMAsGA1UEAwwEdDgzMzATpBEwDzENMAsGA1UEAwwEdDgzNDATpBEw --DzENMAsGA1UEAwwEdDgzNTATpBEwDzENMAsGA1UEAwwEdDgzNjATpBEwDzENMAsG --A1UEAwwEdDgzNzATpBEwDzENMAsGA1UEAwwEdDgzODATpBEwDzENMAsGA1UEAwwE --dDgzOTATpBEwDzENMAsGA1UEAwwEdDg0MDATpBEwDzENMAsGA1UEAwwEdDg0MTAT --pBEwDzENMAsGA1UEAwwEdDg0MjATpBEwDzENMAsGA1UEAwwEdDg0MzATpBEwDzEN --MAsGA1UEAwwEdDg0NDATpBEwDzENMAsGA1UEAwwEdDg0NTATpBEwDzENMAsGA1UE --AwwEdDg0NjATpBEwDzENMAsGA1UEAwwEdDg0NzATpBEwDzENMAsGA1UEAwwEdDg0 --ODATpBEwDzENMAsGA1UEAwwEdDg0OTATpBEwDzENMAsGA1UEAwwEdDg1MDATpBEw --DzENMAsGA1UEAwwEdDg1MTATpBEwDzENMAsGA1UEAwwEdDg1MjATpBEwDzENMAsG --A1UEAwwEdDg1MzATpBEwDzENMAsGA1UEAwwEdDg1NDATpBEwDzENMAsGA1UEAwwE --dDg1NTATpBEwDzENMAsGA1UEAwwEdDg1NjATpBEwDzENMAsGA1UEAwwEdDg1NzAT --pBEwDzENMAsGA1UEAwwEdDg1ODATpBEwDzENMAsGA1UEAwwEdDg1OTATpBEwDzEN --MAsGA1UEAwwEdDg2MDATpBEwDzENMAsGA1UEAwwEdDg2MTATpBEwDzENMAsGA1UE --AwwEdDg2MjATpBEwDzENMAsGA1UEAwwEdDg2MzATpBEwDzENMAsGA1UEAwwEdDg2 --NDATpBEwDzENMAsGA1UEAwwEdDg2NTATpBEwDzENMAsGA1UEAwwEdDg2NjATpBEw --DzENMAsGA1UEAwwEdDg2NzATpBEwDzENMAsGA1UEAwwEdDg2ODATpBEwDzENMAsG --A1UEAwwEdDg2OTATpBEwDzENMAsGA1UEAwwEdDg3MDATpBEwDzENMAsGA1UEAwwE --dDg3MTATpBEwDzENMAsGA1UEAwwEdDg3MjATpBEwDzENMAsGA1UEAwwEdDg3MzAT --pBEwDzENMAsGA1UEAwwEdDg3NDATpBEwDzENMAsGA1UEAwwEdDg3NTATpBEwDzEN --MAsGA1UEAwwEdDg3NjATpBEwDzENMAsGA1UEAwwEdDg3NzATpBEwDzENMAsGA1UE --AwwEdDg3ODATpBEwDzENMAsGA1UEAwwEdDg3OTATpBEwDzENMAsGA1UEAwwEdDg4 --MDATpBEwDzENMAsGA1UEAwwEdDg4MTATpBEwDzENMAsGA1UEAwwEdDg4MjATpBEw --DzENMAsGA1UEAwwEdDg4MzATpBEwDzENMAsGA1UEAwwEdDg4NDATpBEwDzENMAsG --A1UEAwwEdDg4NTATpBEwDzENMAsGA1UEAwwEdDg4NjATpBEwDzENMAsGA1UEAwwE --dDg4NzATpBEwDzENMAsGA1UEAwwEdDg4ODATpBEwDzENMAsGA1UEAwwEdDg4OTAT --pBEwDzENMAsGA1UEAwwEdDg5MDATpBEwDzENMAsGA1UEAwwEdDg5MTATpBEwDzEN --MAsGA1UEAwwEdDg5MjATpBEwDzENMAsGA1UEAwwEdDg5MzATpBEwDzENMAsGA1UE --AwwEdDg5NDATpBEwDzENMAsGA1UEAwwEdDg5NTATpBEwDzENMAsGA1UEAwwEdDg5 --NjATpBEwDzENMAsGA1UEAwwEdDg5NzATpBEwDzENMAsGA1UEAwwEdDg5ODATpBEw --DzENMAsGA1UEAwwEdDg5OTATpBEwDzENMAsGA1UEAwwEdDkwMDATpBEwDzENMAsG --A1UEAwwEdDkwMTATpBEwDzENMAsGA1UEAwwEdDkwMjATpBEwDzENMAsGA1UEAwwE --dDkwMzATpBEwDzENMAsGA1UEAwwEdDkwNDATpBEwDzENMAsGA1UEAwwEdDkwNTAT --pBEwDzENMAsGA1UEAwwEdDkwNjATpBEwDzENMAsGA1UEAwwEdDkwNzATpBEwDzEN --MAsGA1UEAwwEdDkwODATpBEwDzENMAsGA1UEAwwEdDkwOTATpBEwDzENMAsGA1UE --AwwEdDkxMDATpBEwDzENMAsGA1UEAwwEdDkxMTATpBEwDzENMAsGA1UEAwwEdDkx --MjATpBEwDzENMAsGA1UEAwwEdDkxMzATpBEwDzENMAsGA1UEAwwEdDkxNDATpBEw --DzENMAsGA1UEAwwEdDkxNTATpBEwDzENMAsGA1UEAwwEdDkxNjATpBEwDzENMAsG --A1UEAwwEdDkxNzATpBEwDzENMAsGA1UEAwwEdDkxODATpBEwDzENMAsGA1UEAwwE --dDkxOTATpBEwDzENMAsGA1UEAwwEdDkyMDATpBEwDzENMAsGA1UEAwwEdDkyMTAT --pBEwDzENMAsGA1UEAwwEdDkyMjATpBEwDzENMAsGA1UEAwwEdDkyMzATpBEwDzEN --MAsGA1UEAwwEdDkyNDATpBEwDzENMAsGA1UEAwwEdDkyNTATpBEwDzENMAsGA1UE --AwwEdDkyNjATpBEwDzENMAsGA1UEAwwEdDkyNzATpBEwDzENMAsGA1UEAwwEdDky --ODATpBEwDzENMAsGA1UEAwwEdDkyOTATpBEwDzENMAsGA1UEAwwEdDkzMDATpBEw --DzENMAsGA1UEAwwEdDkzMTATpBEwDzENMAsGA1UEAwwEdDkzMjATpBEwDzENMAsG --A1UEAwwEdDkzMzATpBEwDzENMAsGA1UEAwwEdDkzNDATpBEwDzENMAsGA1UEAwwE --dDkzNTATpBEwDzENMAsGA1UEAwwEdDkzNjATpBEwDzENMAsGA1UEAwwEdDkzNzAT --pBEwDzENMAsGA1UEAwwEdDkzODATpBEwDzENMAsGA1UEAwwEdDkzOTATpBEwDzEN --MAsGA1UEAwwEdDk0MDATpBEwDzENMAsGA1UEAwwEdDk0MTATpBEwDzENMAsGA1UE --AwwEdDk0MjATpBEwDzENMAsGA1UEAwwEdDk0MzATpBEwDzENMAsGA1UEAwwEdDk0 --NDATpBEwDzENMAsGA1UEAwwEdDk0NTATpBEwDzENMAsGA1UEAwwEdDk0NjATpBEw --DzENMAsGA1UEAwwEdDk0NzATpBEwDzENMAsGA1UEAwwEdDk0ODATpBEwDzENMAsG --A1UEAwwEdDk0OTATpBEwDzENMAsGA1UEAwwEdDk1MDATpBEwDzENMAsGA1UEAwwE --dDk1MTATpBEwDzENMAsGA1UEAwwEdDk1MjATpBEwDzENMAsGA1UEAwwEdDk1MzAT --pBEwDzENMAsGA1UEAwwEdDk1NDATpBEwDzENMAsGA1UEAwwEdDk1NTATpBEwDzEN --MAsGA1UEAwwEdDk1NjATpBEwDzENMAsGA1UEAwwEdDk1NzATpBEwDzENMAsGA1UE --AwwEdDk1ODATpBEwDzENMAsGA1UEAwwEdDk1OTATpBEwDzENMAsGA1UEAwwEdDk2 --MDATpBEwDzENMAsGA1UEAwwEdDk2MTATpBEwDzENMAsGA1UEAwwEdDk2MjATpBEw --DzENMAsGA1UEAwwEdDk2MzATpBEwDzENMAsGA1UEAwwEdDk2NDATpBEwDzENMAsG --A1UEAwwEdDk2NTATpBEwDzENMAsGA1UEAwwEdDk2NjATpBEwDzENMAsGA1UEAwwE --dDk2NzATpBEwDzENMAsGA1UEAwwEdDk2ODATpBEwDzENMAsGA1UEAwwEdDk2OTAT --pBEwDzENMAsGA1UEAwwEdDk3MDATpBEwDzENMAsGA1UEAwwEdDk3MTATpBEwDzEN --MAsGA1UEAwwEdDk3MjATpBEwDzENMAsGA1UEAwwEdDk3MzATpBEwDzENMAsGA1UE --AwwEdDk3NDATpBEwDzENMAsGA1UEAwwEdDk3NTATpBEwDzENMAsGA1UEAwwEdDk3 --NjATpBEwDzENMAsGA1UEAwwEdDk3NzATpBEwDzENMAsGA1UEAwwEdDk3ODATpBEw --DzENMAsGA1UEAwwEdDk3OTATpBEwDzENMAsGA1UEAwwEdDk4MDATpBEwDzENMAsG --A1UEAwwEdDk4MTATpBEwDzENMAsGA1UEAwwEdDk4MjATpBEwDzENMAsGA1UEAwwE --dDk4MzATpBEwDzENMAsGA1UEAwwEdDk4NDATpBEwDzENMAsGA1UEAwwEdDk4NTAT --pBEwDzENMAsGA1UEAwwEdDk4NjATpBEwDzENMAsGA1UEAwwEdDk4NzATpBEwDzEN --MAsGA1UEAwwEdDk4ODATpBEwDzENMAsGA1UEAwwEdDk4OTATpBEwDzENMAsGA1UE --AwwEdDk5MDATpBEwDzENMAsGA1UEAwwEdDk5MTATpBEwDzENMAsGA1UEAwwEdDk5 --MjATpBEwDzENMAsGA1UEAwwEdDk5MzATpBEwDzENMAsGA1UEAwwEdDk5NDATpBEw --DzENMAsGA1UEAwwEdDk5NTATpBEwDzENMAsGA1UEAwwEdDk5NjATpBEwDzENMAsG --A1UEAwwEdDk5NzATpBEwDzENMAsGA1UEAwwEdDk5ODATpBEwDzENMAsGA1UEAwwE --dDk5OTAUpBIwEDEOMAwGA1UEAwwFdDEwMDAwFKQSMBAxDjAMBgNVBAMMBXQxMDAx --MBSkEjAQMQ4wDAYDVQQDDAV0MTAwMjAUpBIwEDEOMAwGA1UEAwwFdDEwMDMwFKQS --MBAxDjAMBgNVBAMMBXQxMDA0MBSkEjAQMQ4wDAYDVQQDDAV0MTAwNTAUpBIwEDEO --MAwGA1UEAwwFdDEwMDYwFKQSMBAxDjAMBgNVBAMMBXQxMDA3MBSkEjAQMQ4wDAYD --VQQDDAV0MTAwODAUpBIwEDEOMAwGA1UEAwwFdDEwMDkwFKQSMBAxDjAMBgNVBAMM --BXQxMDEwMBSkEjAQMQ4wDAYDVQQDDAV0MTAxMTAUpBIwEDEOMAwGA1UEAwwFdDEw --MTIwFKQSMBAxDjAMBgNVBAMMBXQxMDEzMBSkEjAQMQ4wDAYDVQQDDAV0MTAxNDAU --pBIwEDEOMAwGA1UEAwwFdDEwMTUwFKQSMBAxDjAMBgNVBAMMBXQxMDE2MBSkEjAQ --MQ4wDAYDVQQDDAV0MTAxNzAUpBIwEDEOMAwGA1UEAwwFdDEwMTgwFKQSMBAxDjAM --BgNVBAMMBXQxMDE5MBSkEjAQMQ4wDAYDVQQDDAV0MTAyMDAUpBIwEDEOMAwGA1UE --AwwFdDEwMjEwFKQSMBAxDjAMBgNVBAMMBXQxMDIyMBSkEjAQMQ4wDAYDVQQDDAV0 --MTAyMzAUpBIwEDEOMAwGA1UEAwwFdDEwMjQwD4YNaHR0cDovL3Rlc3QvMDAPhg1o --dHRwOi8vdGVzdC8xMA+GDWh0dHA6Ly90ZXN0LzIwD4YNaHR0cDovL3Rlc3QvMzAP --hg1odHRwOi8vdGVzdC80MA+GDWh0dHA6Ly90ZXN0LzUwD4YNaHR0cDovL3Rlc3Qv --NjAPhg1odHRwOi8vdGVzdC83MA+GDWh0dHA6Ly90ZXN0LzgwD4YNaHR0cDovL3Rl --c3QvOTAQhg5odHRwOi8vdGVzdC8xMDAQhg5odHRwOi8vdGVzdC8xMTAQhg5odHRw --Oi8vdGVzdC8xMjAQhg5odHRwOi8vdGVzdC8xMzAQhg5odHRwOi8vdGVzdC8xNDAQ --hg5odHRwOi8vdGVzdC8xNTAQhg5odHRwOi8vdGVzdC8xNjAQhg5odHRwOi8vdGVz --dC8xNzAQhg5odHRwOi8vdGVzdC8xODAQhg5odHRwOi8vdGVzdC8xOTAQhg5odHRw --Oi8vdGVzdC8yMDAQhg5odHRwOi8vdGVzdC8yMTAQhg5odHRwOi8vdGVzdC8yMjAQ --hg5odHRwOi8vdGVzdC8yMzAQhg5odHRwOi8vdGVzdC8yNDAQhg5odHRwOi8vdGVz --dC8yNTAQhg5odHRwOi8vdGVzdC8yNjAQhg5odHRwOi8vdGVzdC8yNzAQhg5odHRw --Oi8vdGVzdC8yODAQhg5odHRwOi8vdGVzdC8yOTAQhg5odHRwOi8vdGVzdC8zMDAQ --hg5odHRwOi8vdGVzdC8zMTAQhg5odHRwOi8vdGVzdC8zMjAQhg5odHRwOi8vdGVz --dC8zMzAQhg5odHRwOi8vdGVzdC8zNDAQhg5odHRwOi8vdGVzdC8zNTAQhg5odHRw --Oi8vdGVzdC8zNjAQhg5odHRwOi8vdGVzdC8zNzAQhg5odHRwOi8vdGVzdC8zODAQ --hg5odHRwOi8vdGVzdC8zOTAQhg5odHRwOi8vdGVzdC80MDAQhg5odHRwOi8vdGVz --dC80MTAQhg5odHRwOi8vdGVzdC80MjAQhg5odHRwOi8vdGVzdC80MzAQhg5odHRw --Oi8vdGVzdC80NDAQhg5odHRwOi8vdGVzdC80NTAQhg5odHRwOi8vdGVzdC80NjAQ --hg5odHRwOi8vdGVzdC80NzAQhg5odHRwOi8vdGVzdC80ODAQhg5odHRwOi8vdGVz --dC80OTAQhg5odHRwOi8vdGVzdC81MDAQhg5odHRwOi8vdGVzdC81MTAQhg5odHRw --Oi8vdGVzdC81MjAQhg5odHRwOi8vdGVzdC81MzAQhg5odHRwOi8vdGVzdC81NDAQ --hg5odHRwOi8vdGVzdC81NTAQhg5odHRwOi8vdGVzdC81NjAQhg5odHRwOi8vdGVz --dC81NzAQhg5odHRwOi8vdGVzdC81ODAQhg5odHRwOi8vdGVzdC81OTAQhg5odHRw --Oi8vdGVzdC82MDAQhg5odHRwOi8vdGVzdC82MTAQhg5odHRwOi8vdGVzdC82MjAQ --hg5odHRwOi8vdGVzdC82MzAQhg5odHRwOi8vdGVzdC82NDAQhg5odHRwOi8vdGVz --dC82NTAQhg5odHRwOi8vdGVzdC82NjAQhg5odHRwOi8vdGVzdC82NzAQhg5odHRw --Oi8vdGVzdC82ODAQhg5odHRwOi8vdGVzdC82OTAQhg5odHRwOi8vdGVzdC83MDAQ --hg5odHRwOi8vdGVzdC83MTAQhg5odHRwOi8vdGVzdC83MjAQhg5odHRwOi8vdGVz --dC83MzAQhg5odHRwOi8vdGVzdC83NDAQhg5odHRwOi8vdGVzdC83NTAQhg5odHRw --Oi8vdGVzdC83NjAQhg5odHRwOi8vdGVzdC83NzAQhg5odHRwOi8vdGVzdC83ODAQ --hg5odHRwOi8vdGVzdC83OTAQhg5odHRwOi8vdGVzdC84MDAQhg5odHRwOi8vdGVz --dC84MTAQhg5odHRwOi8vdGVzdC84MjAQhg5odHRwOi8vdGVzdC84MzAQhg5odHRw --Oi8vdGVzdC84NDAQhg5odHRwOi8vdGVzdC84NTAQhg5odHRwOi8vdGVzdC84NjAQ --hg5odHRwOi8vdGVzdC84NzAQhg5odHRwOi8vdGVzdC84ODAQhg5odHRwOi8vdGVz --dC84OTAQhg5odHRwOi8vdGVzdC85MDAQhg5odHRwOi8vdGVzdC85MTAQhg5odHRw --Oi8vdGVzdC85MjAQhg5odHRwOi8vdGVzdC85MzAQhg5odHRwOi8vdGVzdC85NDAQ --hg5odHRwOi8vdGVzdC85NTAQhg5odHRwOi8vdGVzdC85NjAQhg5odHRwOi8vdGVz --dC85NzAQhg5odHRwOi8vdGVzdC85ODAQhg5odHRwOi8vdGVzdC85OTARhg9odHRw --Oi8vdGVzdC8xMDAwEYYPaHR0cDovL3Rlc3QvMTAxMBGGD2h0dHA6Ly90ZXN0LzEw --MjARhg9odHRwOi8vdGVzdC8xMDMwEYYPaHR0cDovL3Rlc3QvMTA0MBGGD2h0dHA6 --Ly90ZXN0LzEwNTARhg9odHRwOi8vdGVzdC8xMDYwEYYPaHR0cDovL3Rlc3QvMTA3 --MBGGD2h0dHA6Ly90ZXN0LzEwODARhg9odHRwOi8vdGVzdC8xMDkwEYYPaHR0cDov --L3Rlc3QvMTEwMBGGD2h0dHA6Ly90ZXN0LzExMTARhg9odHRwOi8vdGVzdC8xMTIw --EYYPaHR0cDovL3Rlc3QvMTEzMBGGD2h0dHA6Ly90ZXN0LzExNDARhg9odHRwOi8v --dGVzdC8xMTUwEYYPaHR0cDovL3Rlc3QvMTE2MBGGD2h0dHA6Ly90ZXN0LzExNzAR --hg9odHRwOi8vdGVzdC8xMTgwEYYPaHR0cDovL3Rlc3QvMTE5MBGGD2h0dHA6Ly90 --ZXN0LzEyMDARhg9odHRwOi8vdGVzdC8xMjEwEYYPaHR0cDovL3Rlc3QvMTIyMBGG --D2h0dHA6Ly90ZXN0LzEyMzARhg9odHRwOi8vdGVzdC8xMjQwEYYPaHR0cDovL3Rl --c3QvMTI1MBGGD2h0dHA6Ly90ZXN0LzEyNjARhg9odHRwOi8vdGVzdC8xMjcwEYYP --aHR0cDovL3Rlc3QvMTI4MBGGD2h0dHA6Ly90ZXN0LzEyOTARhg9odHRwOi8vdGVz --dC8xMzAwEYYPaHR0cDovL3Rlc3QvMTMxMBGGD2h0dHA6Ly90ZXN0LzEzMjARhg9o --dHRwOi8vdGVzdC8xMzMwEYYPaHR0cDovL3Rlc3QvMTM0MBGGD2h0dHA6Ly90ZXN0 --LzEzNTARhg9odHRwOi8vdGVzdC8xMzYwEYYPaHR0cDovL3Rlc3QvMTM3MBGGD2h0 --dHA6Ly90ZXN0LzEzODARhg9odHRwOi8vdGVzdC8xMzkwEYYPaHR0cDovL3Rlc3Qv --MTQwMBGGD2h0dHA6Ly90ZXN0LzE0MTARhg9odHRwOi8vdGVzdC8xNDIwEYYPaHR0 --cDovL3Rlc3QvMTQzMBGGD2h0dHA6Ly90ZXN0LzE0NDARhg9odHRwOi8vdGVzdC8x --NDUwEYYPaHR0cDovL3Rlc3QvMTQ2MBGGD2h0dHA6Ly90ZXN0LzE0NzARhg9odHRw --Oi8vdGVzdC8xNDgwEYYPaHR0cDovL3Rlc3QvMTQ5MBGGD2h0dHA6Ly90ZXN0LzE1 --MDARhg9odHRwOi8vdGVzdC8xNTEwEYYPaHR0cDovL3Rlc3QvMTUyMBGGD2h0dHA6 --Ly90ZXN0LzE1MzARhg9odHRwOi8vdGVzdC8xNTQwEYYPaHR0cDovL3Rlc3QvMTU1 --MBGGD2h0dHA6Ly90ZXN0LzE1NjARhg9odHRwOi8vdGVzdC8xNTcwEYYPaHR0cDov --L3Rlc3QvMTU4MBGGD2h0dHA6Ly90ZXN0LzE1OTARhg9odHRwOi8vdGVzdC8xNjAw --EYYPaHR0cDovL3Rlc3QvMTYxMBGGD2h0dHA6Ly90ZXN0LzE2MjARhg9odHRwOi8v --dGVzdC8xNjMwEYYPaHR0cDovL3Rlc3QvMTY0MBGGD2h0dHA6Ly90ZXN0LzE2NTAR --hg9odHRwOi8vdGVzdC8xNjYwEYYPaHR0cDovL3Rlc3QvMTY3MBGGD2h0dHA6Ly90 --ZXN0LzE2ODARhg9odHRwOi8vdGVzdC8xNjkwEYYPaHR0cDovL3Rlc3QvMTcwMBGG --D2h0dHA6Ly90ZXN0LzE3MTARhg9odHRwOi8vdGVzdC8xNzIwEYYPaHR0cDovL3Rl --c3QvMTczMBGGD2h0dHA6Ly90ZXN0LzE3NDARhg9odHRwOi8vdGVzdC8xNzUwEYYP --aHR0cDovL3Rlc3QvMTc2MBGGD2h0dHA6Ly90ZXN0LzE3NzARhg9odHRwOi8vdGVz --dC8xNzgwEYYPaHR0cDovL3Rlc3QvMTc5MBGGD2h0dHA6Ly90ZXN0LzE4MDARhg9o --dHRwOi8vdGVzdC8xODEwEYYPaHR0cDovL3Rlc3QvMTgyMBGGD2h0dHA6Ly90ZXN0 --LzE4MzARhg9odHRwOi8vdGVzdC8xODQwEYYPaHR0cDovL3Rlc3QvMTg1MBGGD2h0 --dHA6Ly90ZXN0LzE4NjARhg9odHRwOi8vdGVzdC8xODcwEYYPaHR0cDovL3Rlc3Qv --MTg4MBGGD2h0dHA6Ly90ZXN0LzE4OTARhg9odHRwOi8vdGVzdC8xOTAwEYYPaHR0 --cDovL3Rlc3QvMTkxMBGGD2h0dHA6Ly90ZXN0LzE5MjARhg9odHRwOi8vdGVzdC8x --OTMwEYYPaHR0cDovL3Rlc3QvMTk0MBGGD2h0dHA6Ly90ZXN0LzE5NTARhg9odHRw --Oi8vdGVzdC8xOTYwEYYPaHR0cDovL3Rlc3QvMTk3MBGGD2h0dHA6Ly90ZXN0LzE5 --ODARhg9odHRwOi8vdGVzdC8xOTkwEYYPaHR0cDovL3Rlc3QvMjAwMBGGD2h0dHA6 --Ly90ZXN0LzIwMTARhg9odHRwOi8vdGVzdC8yMDIwEYYPaHR0cDovL3Rlc3QvMjAz --MBGGD2h0dHA6Ly90ZXN0LzIwNDARhg9odHRwOi8vdGVzdC8yMDUwEYYPaHR0cDov --L3Rlc3QvMjA2MBGGD2h0dHA6Ly90ZXN0LzIwNzARhg9odHRwOi8vdGVzdC8yMDgw --EYYPaHR0cDovL3Rlc3QvMjA5MBGGD2h0dHA6Ly90ZXN0LzIxMDARhg9odHRwOi8v --dGVzdC8yMTEwEYYPaHR0cDovL3Rlc3QvMjEyMBGGD2h0dHA6Ly90ZXN0LzIxMzAR --hg9odHRwOi8vdGVzdC8yMTQwEYYPaHR0cDovL3Rlc3QvMjE1MBGGD2h0dHA6Ly90 --ZXN0LzIxNjARhg9odHRwOi8vdGVzdC8yMTcwEYYPaHR0cDovL3Rlc3QvMjE4MBGG --D2h0dHA6Ly90ZXN0LzIxOTARhg9odHRwOi8vdGVzdC8yMjAwEYYPaHR0cDovL3Rl --c3QvMjIxMBGGD2h0dHA6Ly90ZXN0LzIyMjARhg9odHRwOi8vdGVzdC8yMjMwEYYP --aHR0cDovL3Rlc3QvMjI0MBGGD2h0dHA6Ly90ZXN0LzIyNTARhg9odHRwOi8vdGVz --dC8yMjYwEYYPaHR0cDovL3Rlc3QvMjI3MBGGD2h0dHA6Ly90ZXN0LzIyODARhg9o --dHRwOi8vdGVzdC8yMjkwEYYPaHR0cDovL3Rlc3QvMjMwMBGGD2h0dHA6Ly90ZXN0 --LzIzMTARhg9odHRwOi8vdGVzdC8yMzIwEYYPaHR0cDovL3Rlc3QvMjMzMBGGD2h0 --dHA6Ly90ZXN0LzIzNDARhg9odHRwOi8vdGVzdC8yMzUwEYYPaHR0cDovL3Rlc3Qv --MjM2MBGGD2h0dHA6Ly90ZXN0LzIzNzARhg9odHRwOi8vdGVzdC8yMzgwEYYPaHR0 --cDovL3Rlc3QvMjM5MBGGD2h0dHA6Ly90ZXN0LzI0MDARhg9odHRwOi8vdGVzdC8y --NDEwEYYPaHR0cDovL3Rlc3QvMjQyMBGGD2h0dHA6Ly90ZXN0LzI0MzARhg9odHRw --Oi8vdGVzdC8yNDQwEYYPaHR0cDovL3Rlc3QvMjQ1MBGGD2h0dHA6Ly90ZXN0LzI0 --NjARhg9odHRwOi8vdGVzdC8yNDcwEYYPaHR0cDovL3Rlc3QvMjQ4MBGGD2h0dHA6 --Ly90ZXN0LzI0OTARhg9odHRwOi8vdGVzdC8yNTAwEYYPaHR0cDovL3Rlc3QvMjUx --MBGGD2h0dHA6Ly90ZXN0LzI1MjARhg9odHRwOi8vdGVzdC8yNTMwEYYPaHR0cDov --L3Rlc3QvMjU0MBGGD2h0dHA6Ly90ZXN0LzI1NTARhg9odHRwOi8vdGVzdC8yNTYw --EYYPaHR0cDovL3Rlc3QvMjU3MBGGD2h0dHA6Ly90ZXN0LzI1ODARhg9odHRwOi8v --dGVzdC8yNTkwEYYPaHR0cDovL3Rlc3QvMjYwMBGGD2h0dHA6Ly90ZXN0LzI2MTAR --hg9odHRwOi8vdGVzdC8yNjIwEYYPaHR0cDovL3Rlc3QvMjYzMBGGD2h0dHA6Ly90 --ZXN0LzI2NDARhg9odHRwOi8vdGVzdC8yNjUwEYYPaHR0cDovL3Rlc3QvMjY2MBGG --D2h0dHA6Ly90ZXN0LzI2NzARhg9odHRwOi8vdGVzdC8yNjgwEYYPaHR0cDovL3Rl --c3QvMjY5MBGGD2h0dHA6Ly90ZXN0LzI3MDARhg9odHRwOi8vdGVzdC8yNzEwEYYP --aHR0cDovL3Rlc3QvMjcyMBGGD2h0dHA6Ly90ZXN0LzI3MzARhg9odHRwOi8vdGVz --dC8yNzQwEYYPaHR0cDovL3Rlc3QvMjc1MBGGD2h0dHA6Ly90ZXN0LzI3NjARhg9o --dHRwOi8vdGVzdC8yNzcwEYYPaHR0cDovL3Rlc3QvMjc4MBGGD2h0dHA6Ly90ZXN0 --LzI3OTARhg9odHRwOi8vdGVzdC8yODAwEYYPaHR0cDovL3Rlc3QvMjgxMBGGD2h0 --dHA6Ly90ZXN0LzI4MjARhg9odHRwOi8vdGVzdC8yODMwEYYPaHR0cDovL3Rlc3Qv --Mjg0MBGGD2h0dHA6Ly90ZXN0LzI4NTARhg9odHRwOi8vdGVzdC8yODYwEYYPaHR0 --cDovL3Rlc3QvMjg3MBGGD2h0dHA6Ly90ZXN0LzI4ODARhg9odHRwOi8vdGVzdC8y --ODkwEYYPaHR0cDovL3Rlc3QvMjkwMBGGD2h0dHA6Ly90ZXN0LzI5MTARhg9odHRw --Oi8vdGVzdC8yOTIwEYYPaHR0cDovL3Rlc3QvMjkzMBGGD2h0dHA6Ly90ZXN0LzI5 --NDARhg9odHRwOi8vdGVzdC8yOTUwEYYPaHR0cDovL3Rlc3QvMjk2MBGGD2h0dHA6 --Ly90ZXN0LzI5NzARhg9odHRwOi8vdGVzdC8yOTgwEYYPaHR0cDovL3Rlc3QvMjk5 --MBGGD2h0dHA6Ly90ZXN0LzMwMDARhg9odHRwOi8vdGVzdC8zMDEwEYYPaHR0cDov --L3Rlc3QvMzAyMBGGD2h0dHA6Ly90ZXN0LzMwMzARhg9odHRwOi8vdGVzdC8zMDQw --EYYPaHR0cDovL3Rlc3QvMzA1MBGGD2h0dHA6Ly90ZXN0LzMwNjARhg9odHRwOi8v --dGVzdC8zMDcwEYYPaHR0cDovL3Rlc3QvMzA4MBGGD2h0dHA6Ly90ZXN0LzMwOTAR --hg9odHRwOi8vdGVzdC8zMTAwEYYPaHR0cDovL3Rlc3QvMzExMBGGD2h0dHA6Ly90 --ZXN0LzMxMjARhg9odHRwOi8vdGVzdC8zMTMwEYYPaHR0cDovL3Rlc3QvMzE0MBGG --D2h0dHA6Ly90ZXN0LzMxNTARhg9odHRwOi8vdGVzdC8zMTYwEYYPaHR0cDovL3Rl --c3QvMzE3MBGGD2h0dHA6Ly90ZXN0LzMxODARhg9odHRwOi8vdGVzdC8zMTkwEYYP --aHR0cDovL3Rlc3QvMzIwMBGGD2h0dHA6Ly90ZXN0LzMyMTARhg9odHRwOi8vdGVz --dC8zMjIwEYYPaHR0cDovL3Rlc3QvMzIzMBGGD2h0dHA6Ly90ZXN0LzMyNDARhg9o --dHRwOi8vdGVzdC8zMjUwEYYPaHR0cDovL3Rlc3QvMzI2MBGGD2h0dHA6Ly90ZXN0 --LzMyNzARhg9odHRwOi8vdGVzdC8zMjgwEYYPaHR0cDovL3Rlc3QvMzI5MBGGD2h0 --dHA6Ly90ZXN0LzMzMDARhg9odHRwOi8vdGVzdC8zMzEwEYYPaHR0cDovL3Rlc3Qv --MzMyMBGGD2h0dHA6Ly90ZXN0LzMzMzARhg9odHRwOi8vdGVzdC8zMzQwEYYPaHR0 --cDovL3Rlc3QvMzM1MBGGD2h0dHA6Ly90ZXN0LzMzNjARhg9odHRwOi8vdGVzdC8z --MzcwEYYPaHR0cDovL3Rlc3QvMzM4MBGGD2h0dHA6Ly90ZXN0LzMzOTARhg9odHRw --Oi8vdGVzdC8zNDAwEYYPaHR0cDovL3Rlc3QvMzQxMBGGD2h0dHA6Ly90ZXN0LzM0 --MjARhg9odHRwOi8vdGVzdC8zNDMwEYYPaHR0cDovL3Rlc3QvMzQ0MBGGD2h0dHA6 --Ly90ZXN0LzM0NTARhg9odHRwOi8vdGVzdC8zNDYwEYYPaHR0cDovL3Rlc3QvMzQ3 --MBGGD2h0dHA6Ly90ZXN0LzM0ODARhg9odHRwOi8vdGVzdC8zNDkwEYYPaHR0cDov --L3Rlc3QvMzUwMBGGD2h0dHA6Ly90ZXN0LzM1MTARhg9odHRwOi8vdGVzdC8zNTIw --EYYPaHR0cDovL3Rlc3QvMzUzMBGGD2h0dHA6Ly90ZXN0LzM1NDARhg9odHRwOi8v --dGVzdC8zNTUwEYYPaHR0cDovL3Rlc3QvMzU2MBGGD2h0dHA6Ly90ZXN0LzM1NzAR --hg9odHRwOi8vdGVzdC8zNTgwEYYPaHR0cDovL3Rlc3QvMzU5MBGGD2h0dHA6Ly90 --ZXN0LzM2MDARhg9odHRwOi8vdGVzdC8zNjEwEYYPaHR0cDovL3Rlc3QvMzYyMBGG --D2h0dHA6Ly90ZXN0LzM2MzARhg9odHRwOi8vdGVzdC8zNjQwEYYPaHR0cDovL3Rl --c3QvMzY1MBGGD2h0dHA6Ly90ZXN0LzM2NjARhg9odHRwOi8vdGVzdC8zNjcwEYYP --aHR0cDovL3Rlc3QvMzY4MBGGD2h0dHA6Ly90ZXN0LzM2OTARhg9odHRwOi8vdGVz --dC8zNzAwEYYPaHR0cDovL3Rlc3QvMzcxMBGGD2h0dHA6Ly90ZXN0LzM3MjARhg9o --dHRwOi8vdGVzdC8zNzMwEYYPaHR0cDovL3Rlc3QvMzc0MBGGD2h0dHA6Ly90ZXN0 --LzM3NTARhg9odHRwOi8vdGVzdC8zNzYwEYYPaHR0cDovL3Rlc3QvMzc3MBGGD2h0 --dHA6Ly90ZXN0LzM3ODARhg9odHRwOi8vdGVzdC8zNzkwEYYPaHR0cDovL3Rlc3Qv --MzgwMBGGD2h0dHA6Ly90ZXN0LzM4MTARhg9odHRwOi8vdGVzdC8zODIwEYYPaHR0 --cDovL3Rlc3QvMzgzMBGGD2h0dHA6Ly90ZXN0LzM4NDARhg9odHRwOi8vdGVzdC8z --ODUwEYYPaHR0cDovL3Rlc3QvMzg2MBGGD2h0dHA6Ly90ZXN0LzM4NzARhg9odHRw --Oi8vdGVzdC8zODgwEYYPaHR0cDovL3Rlc3QvMzg5MBGGD2h0dHA6Ly90ZXN0LzM5 --MDARhg9odHRwOi8vdGVzdC8zOTEwEYYPaHR0cDovL3Rlc3QvMzkyMBGGD2h0dHA6 --Ly90ZXN0LzM5MzARhg9odHRwOi8vdGVzdC8zOTQwEYYPaHR0cDovL3Rlc3QvMzk1 --MBGGD2h0dHA6Ly90ZXN0LzM5NjARhg9odHRwOi8vdGVzdC8zOTcwEYYPaHR0cDov --L3Rlc3QvMzk4MBGGD2h0dHA6Ly90ZXN0LzM5OTARhg9odHRwOi8vdGVzdC80MDAw --EYYPaHR0cDovL3Rlc3QvNDAxMBGGD2h0dHA6Ly90ZXN0LzQwMjARhg9odHRwOi8v --dGVzdC80MDMwEYYPaHR0cDovL3Rlc3QvNDA0MBGGD2h0dHA6Ly90ZXN0LzQwNTAR --hg9odHRwOi8vdGVzdC80MDYwEYYPaHR0cDovL3Rlc3QvNDA3MBGGD2h0dHA6Ly90 --ZXN0LzQwODARhg9odHRwOi8vdGVzdC80MDkwEYYPaHR0cDovL3Rlc3QvNDEwMBGG --D2h0dHA6Ly90ZXN0LzQxMTARhg9odHRwOi8vdGVzdC80MTIwEYYPaHR0cDovL3Rl --c3QvNDEzMBGGD2h0dHA6Ly90ZXN0LzQxNDARhg9odHRwOi8vdGVzdC80MTUwEYYP --aHR0cDovL3Rlc3QvNDE2MBGGD2h0dHA6Ly90ZXN0LzQxNzARhg9odHRwOi8vdGVz --dC80MTgwEYYPaHR0cDovL3Rlc3QvNDE5MBGGD2h0dHA6Ly90ZXN0LzQyMDARhg9o --dHRwOi8vdGVzdC80MjEwEYYPaHR0cDovL3Rlc3QvNDIyMBGGD2h0dHA6Ly90ZXN0 --LzQyMzARhg9odHRwOi8vdGVzdC80MjQwEYYPaHR0cDovL3Rlc3QvNDI1MBGGD2h0 --dHA6Ly90ZXN0LzQyNjARhg9odHRwOi8vdGVzdC80MjcwEYYPaHR0cDovL3Rlc3Qv --NDI4MBGGD2h0dHA6Ly90ZXN0LzQyOTARhg9odHRwOi8vdGVzdC80MzAwEYYPaHR0 --cDovL3Rlc3QvNDMxMBGGD2h0dHA6Ly90ZXN0LzQzMjARhg9odHRwOi8vdGVzdC80 --MzMwEYYPaHR0cDovL3Rlc3QvNDM0MBGGD2h0dHA6Ly90ZXN0LzQzNTARhg9odHRw --Oi8vdGVzdC80MzYwEYYPaHR0cDovL3Rlc3QvNDM3MBGGD2h0dHA6Ly90ZXN0LzQz --ODARhg9odHRwOi8vdGVzdC80MzkwEYYPaHR0cDovL3Rlc3QvNDQwMBGGD2h0dHA6 --Ly90ZXN0LzQ0MTARhg9odHRwOi8vdGVzdC80NDIwEYYPaHR0cDovL3Rlc3QvNDQz --MBGGD2h0dHA6Ly90ZXN0LzQ0NDARhg9odHRwOi8vdGVzdC80NDUwEYYPaHR0cDov --L3Rlc3QvNDQ2MBGGD2h0dHA6Ly90ZXN0LzQ0NzARhg9odHRwOi8vdGVzdC80NDgw --EYYPaHR0cDovL3Rlc3QvNDQ5MBGGD2h0dHA6Ly90ZXN0LzQ1MDARhg9odHRwOi8v --dGVzdC80NTEwEYYPaHR0cDovL3Rlc3QvNDUyMBGGD2h0dHA6Ly90ZXN0LzQ1MzAR --hg9odHRwOi8vdGVzdC80NTQwEYYPaHR0cDovL3Rlc3QvNDU1MBGGD2h0dHA6Ly90 --ZXN0LzQ1NjARhg9odHRwOi8vdGVzdC80NTcwEYYPaHR0cDovL3Rlc3QvNDU4MBGG --D2h0dHA6Ly90ZXN0LzQ1OTARhg9odHRwOi8vdGVzdC80NjAwEYYPaHR0cDovL3Rl --c3QvNDYxMBGGD2h0dHA6Ly90ZXN0LzQ2MjARhg9odHRwOi8vdGVzdC80NjMwEYYP --aHR0cDovL3Rlc3QvNDY0MBGGD2h0dHA6Ly90ZXN0LzQ2NTARhg9odHRwOi8vdGVz --dC80NjYwEYYPaHR0cDovL3Rlc3QvNDY3MBGGD2h0dHA6Ly90ZXN0LzQ2ODARhg9o --dHRwOi8vdGVzdC80NjkwEYYPaHR0cDovL3Rlc3QvNDcwMBGGD2h0dHA6Ly90ZXN0 --LzQ3MTARhg9odHRwOi8vdGVzdC80NzIwEYYPaHR0cDovL3Rlc3QvNDczMBGGD2h0 --dHA6Ly90ZXN0LzQ3NDARhg9odHRwOi8vdGVzdC80NzUwEYYPaHR0cDovL3Rlc3Qv --NDc2MBGGD2h0dHA6Ly90ZXN0LzQ3NzARhg9odHRwOi8vdGVzdC80NzgwEYYPaHR0 --cDovL3Rlc3QvNDc5MBGGD2h0dHA6Ly90ZXN0LzQ4MDARhg9odHRwOi8vdGVzdC80 --ODEwEYYPaHR0cDovL3Rlc3QvNDgyMBGGD2h0dHA6Ly90ZXN0LzQ4MzARhg9odHRw --Oi8vdGVzdC80ODQwEYYPaHR0cDovL3Rlc3QvNDg1MBGGD2h0dHA6Ly90ZXN0LzQ4 --NjARhg9odHRwOi8vdGVzdC80ODcwEYYPaHR0cDovL3Rlc3QvNDg4MBGGD2h0dHA6 --Ly90ZXN0LzQ4OTARhg9odHRwOi8vdGVzdC80OTAwEYYPaHR0cDovL3Rlc3QvNDkx --MBGGD2h0dHA6Ly90ZXN0LzQ5MjARhg9odHRwOi8vdGVzdC80OTMwEYYPaHR0cDov --L3Rlc3QvNDk0MBGGD2h0dHA6Ly90ZXN0LzQ5NTARhg9odHRwOi8vdGVzdC80OTYw --EYYPaHR0cDovL3Rlc3QvNDk3MBGGD2h0dHA6Ly90ZXN0LzQ5ODARhg9odHRwOi8v --dGVzdC80OTkwEYYPaHR0cDovL3Rlc3QvNTAwMBGGD2h0dHA6Ly90ZXN0LzUwMTAR --hg9odHRwOi8vdGVzdC81MDIwEYYPaHR0cDovL3Rlc3QvNTAzMBGGD2h0dHA6Ly90 --ZXN0LzUwNDARhg9odHRwOi8vdGVzdC81MDUwEYYPaHR0cDovL3Rlc3QvNTA2MBGG --D2h0dHA6Ly90ZXN0LzUwNzARhg9odHRwOi8vdGVzdC81MDgwEYYPaHR0cDovL3Rl --c3QvNTA5MBGGD2h0dHA6Ly90ZXN0LzUxMDARhg9odHRwOi8vdGVzdC81MTEwEYYP --aHR0cDovL3Rlc3QvNTEyMBGGD2h0dHA6Ly90ZXN0LzUxMzARhg9odHRwOi8vdGVz --dC81MTQwEYYPaHR0cDovL3Rlc3QvNTE1MBGGD2h0dHA6Ly90ZXN0LzUxNjARhg9o --dHRwOi8vdGVzdC81MTcwEYYPaHR0cDovL3Rlc3QvNTE4MBGGD2h0dHA6Ly90ZXN0 --LzUxOTARhg9odHRwOi8vdGVzdC81MjAwEYYPaHR0cDovL3Rlc3QvNTIxMBGGD2h0 --dHA6Ly90ZXN0LzUyMjARhg9odHRwOi8vdGVzdC81MjMwEYYPaHR0cDovL3Rlc3Qv --NTI0MBGGD2h0dHA6Ly90ZXN0LzUyNTARhg9odHRwOi8vdGVzdC81MjYwEYYPaHR0 --cDovL3Rlc3QvNTI3MBGGD2h0dHA6Ly90ZXN0LzUyODARhg9odHRwOi8vdGVzdC81 --MjkwEYYPaHR0cDovL3Rlc3QvNTMwMBGGD2h0dHA6Ly90ZXN0LzUzMTARhg9odHRw --Oi8vdGVzdC81MzIwEYYPaHR0cDovL3Rlc3QvNTMzMBGGD2h0dHA6Ly90ZXN0LzUz --NDARhg9odHRwOi8vdGVzdC81MzUwEYYPaHR0cDovL3Rlc3QvNTM2MBGGD2h0dHA6 --Ly90ZXN0LzUzNzARhg9odHRwOi8vdGVzdC81MzgwEYYPaHR0cDovL3Rlc3QvNTM5 --MBGGD2h0dHA6Ly90ZXN0LzU0MDARhg9odHRwOi8vdGVzdC81NDEwEYYPaHR0cDov --L3Rlc3QvNTQyMBGGD2h0dHA6Ly90ZXN0LzU0MzARhg9odHRwOi8vdGVzdC81NDQw --EYYPaHR0cDovL3Rlc3QvNTQ1MBGGD2h0dHA6Ly90ZXN0LzU0NjARhg9odHRwOi8v --dGVzdC81NDcwEYYPaHR0cDovL3Rlc3QvNTQ4MBGGD2h0dHA6Ly90ZXN0LzU0OTAR --hg9odHRwOi8vdGVzdC81NTAwEYYPaHR0cDovL3Rlc3QvNTUxMBGGD2h0dHA6Ly90 --ZXN0LzU1MjARhg9odHRwOi8vdGVzdC81NTMwEYYPaHR0cDovL3Rlc3QvNTU0MBGG --D2h0dHA6Ly90ZXN0LzU1NTARhg9odHRwOi8vdGVzdC81NTYwEYYPaHR0cDovL3Rl --c3QvNTU3MBGGD2h0dHA6Ly90ZXN0LzU1ODARhg9odHRwOi8vdGVzdC81NTkwEYYP --aHR0cDovL3Rlc3QvNTYwMBGGD2h0dHA6Ly90ZXN0LzU2MTARhg9odHRwOi8vdGVz --dC81NjIwEYYPaHR0cDovL3Rlc3QvNTYzMBGGD2h0dHA6Ly90ZXN0LzU2NDARhg9o --dHRwOi8vdGVzdC81NjUwEYYPaHR0cDovL3Rlc3QvNTY2MBGGD2h0dHA6Ly90ZXN0 --LzU2NzARhg9odHRwOi8vdGVzdC81NjgwEYYPaHR0cDovL3Rlc3QvNTY5MBGGD2h0 --dHA6Ly90ZXN0LzU3MDARhg9odHRwOi8vdGVzdC81NzEwEYYPaHR0cDovL3Rlc3Qv --NTcyMBGGD2h0dHA6Ly90ZXN0LzU3MzARhg9odHRwOi8vdGVzdC81NzQwEYYPaHR0 --cDovL3Rlc3QvNTc1MBGGD2h0dHA6Ly90ZXN0LzU3NjARhg9odHRwOi8vdGVzdC81 --NzcwEYYPaHR0cDovL3Rlc3QvNTc4MBGGD2h0dHA6Ly90ZXN0LzU3OTARhg9odHRw --Oi8vdGVzdC81ODAwEYYPaHR0cDovL3Rlc3QvNTgxMBGGD2h0dHA6Ly90ZXN0LzU4 --MjARhg9odHRwOi8vdGVzdC81ODMwEYYPaHR0cDovL3Rlc3QvNTg0MBGGD2h0dHA6 --Ly90ZXN0LzU4NTARhg9odHRwOi8vdGVzdC81ODYwEYYPaHR0cDovL3Rlc3QvNTg3 --MBGGD2h0dHA6Ly90ZXN0LzU4ODARhg9odHRwOi8vdGVzdC81ODkwEYYPaHR0cDov --L3Rlc3QvNTkwMBGGD2h0dHA6Ly90ZXN0LzU5MTARhg9odHRwOi8vdGVzdC81OTIw --EYYPaHR0cDovL3Rlc3QvNTkzMBGGD2h0dHA6Ly90ZXN0LzU5NDARhg9odHRwOi8v --dGVzdC81OTUwEYYPaHR0cDovL3Rlc3QvNTk2MBGGD2h0dHA6Ly90ZXN0LzU5NzAR --hg9odHRwOi8vdGVzdC81OTgwEYYPaHR0cDovL3Rlc3QvNTk5MBGGD2h0dHA6Ly90 --ZXN0LzYwMDARhg9odHRwOi8vdGVzdC82MDEwEYYPaHR0cDovL3Rlc3QvNjAyMBGG --D2h0dHA6Ly90ZXN0LzYwMzARhg9odHRwOi8vdGVzdC82MDQwEYYPaHR0cDovL3Rl --c3QvNjA1MBGGD2h0dHA6Ly90ZXN0LzYwNjARhg9odHRwOi8vdGVzdC82MDcwEYYP --aHR0cDovL3Rlc3QvNjA4MBGGD2h0dHA6Ly90ZXN0LzYwOTARhg9odHRwOi8vdGVz --dC82MTAwEYYPaHR0cDovL3Rlc3QvNjExMBGGD2h0dHA6Ly90ZXN0LzYxMjARhg9o --dHRwOi8vdGVzdC82MTMwEYYPaHR0cDovL3Rlc3QvNjE0MBGGD2h0dHA6Ly90ZXN0 --LzYxNTARhg9odHRwOi8vdGVzdC82MTYwEYYPaHR0cDovL3Rlc3QvNjE3MBGGD2h0 --dHA6Ly90ZXN0LzYxODARhg9odHRwOi8vdGVzdC82MTkwEYYPaHR0cDovL3Rlc3Qv --NjIwMBGGD2h0dHA6Ly90ZXN0LzYyMTARhg9odHRwOi8vdGVzdC82MjIwEYYPaHR0 --cDovL3Rlc3QvNjIzMBGGD2h0dHA6Ly90ZXN0LzYyNDARhg9odHRwOi8vdGVzdC82 --MjUwEYYPaHR0cDovL3Rlc3QvNjI2MBGGD2h0dHA6Ly90ZXN0LzYyNzARhg9odHRw --Oi8vdGVzdC82MjgwEYYPaHR0cDovL3Rlc3QvNjI5MBGGD2h0dHA6Ly90ZXN0LzYz --MDARhg9odHRwOi8vdGVzdC82MzEwEYYPaHR0cDovL3Rlc3QvNjMyMBGGD2h0dHA6 --Ly90ZXN0LzYzMzARhg9odHRwOi8vdGVzdC82MzQwEYYPaHR0cDovL3Rlc3QvNjM1 --MBGGD2h0dHA6Ly90ZXN0LzYzNjARhg9odHRwOi8vdGVzdC82MzcwEYYPaHR0cDov --L3Rlc3QvNjM4MBGGD2h0dHA6Ly90ZXN0LzYzOTARhg9odHRwOi8vdGVzdC82NDAw --EYYPaHR0cDovL3Rlc3QvNjQxMBGGD2h0dHA6Ly90ZXN0LzY0MjARhg9odHRwOi8v --dGVzdC82NDMwEYYPaHR0cDovL3Rlc3QvNjQ0MBGGD2h0dHA6Ly90ZXN0LzY0NTAR --hg9odHRwOi8vdGVzdC82NDYwEYYPaHR0cDovL3Rlc3QvNjQ3MBGGD2h0dHA6Ly90 --ZXN0LzY0ODARhg9odHRwOi8vdGVzdC82NDkwEYYPaHR0cDovL3Rlc3QvNjUwMBGG --D2h0dHA6Ly90ZXN0LzY1MTARhg9odHRwOi8vdGVzdC82NTIwEYYPaHR0cDovL3Rl --c3QvNjUzMBGGD2h0dHA6Ly90ZXN0LzY1NDARhg9odHRwOi8vdGVzdC82NTUwEYYP --aHR0cDovL3Rlc3QvNjU2MBGGD2h0dHA6Ly90ZXN0LzY1NzARhg9odHRwOi8vdGVz --dC82NTgwEYYPaHR0cDovL3Rlc3QvNjU5MBGGD2h0dHA6Ly90ZXN0LzY2MDARhg9o --dHRwOi8vdGVzdC82NjEwEYYPaHR0cDovL3Rlc3QvNjYyMBGGD2h0dHA6Ly90ZXN0 --LzY2MzARhg9odHRwOi8vdGVzdC82NjQwEYYPaHR0cDovL3Rlc3QvNjY1MBGGD2h0 --dHA6Ly90ZXN0LzY2NjARhg9odHRwOi8vdGVzdC82NjcwEYYPaHR0cDovL3Rlc3Qv --NjY4MBGGD2h0dHA6Ly90ZXN0LzY2OTARhg9odHRwOi8vdGVzdC82NzAwEYYPaHR0 --cDovL3Rlc3QvNjcxMBGGD2h0dHA6Ly90ZXN0LzY3MjARhg9odHRwOi8vdGVzdC82 --NzMwEYYPaHR0cDovL3Rlc3QvNjc0MBGGD2h0dHA6Ly90ZXN0LzY3NTARhg9odHRw --Oi8vdGVzdC82NzYwEYYPaHR0cDovL3Rlc3QvNjc3MBGGD2h0dHA6Ly90ZXN0LzY3 --ODARhg9odHRwOi8vdGVzdC82NzkwEYYPaHR0cDovL3Rlc3QvNjgwMBGGD2h0dHA6 --Ly90ZXN0LzY4MTARhg9odHRwOi8vdGVzdC82ODIwEYYPaHR0cDovL3Rlc3QvNjgz --MBGGD2h0dHA6Ly90ZXN0LzY4NDARhg9odHRwOi8vdGVzdC82ODUwEYYPaHR0cDov --L3Rlc3QvNjg2MBGGD2h0dHA6Ly90ZXN0LzY4NzARhg9odHRwOi8vdGVzdC82ODgw --EYYPaHR0cDovL3Rlc3QvNjg5MBGGD2h0dHA6Ly90ZXN0LzY5MDARhg9odHRwOi8v --dGVzdC82OTEwEYYPaHR0cDovL3Rlc3QvNjkyMBGGD2h0dHA6Ly90ZXN0LzY5MzAR --hg9odHRwOi8vdGVzdC82OTQwEYYPaHR0cDovL3Rlc3QvNjk1MBGGD2h0dHA6Ly90 --ZXN0LzY5NjARhg9odHRwOi8vdGVzdC82OTcwEYYPaHR0cDovL3Rlc3QvNjk4MBGG --D2h0dHA6Ly90ZXN0LzY5OTARhg9odHRwOi8vdGVzdC83MDAwEYYPaHR0cDovL3Rl --c3QvNzAxMBGGD2h0dHA6Ly90ZXN0LzcwMjARhg9odHRwOi8vdGVzdC83MDMwEYYP --aHR0cDovL3Rlc3QvNzA0MBGGD2h0dHA6Ly90ZXN0LzcwNTARhg9odHRwOi8vdGVz --dC83MDYwEYYPaHR0cDovL3Rlc3QvNzA3MBGGD2h0dHA6Ly90ZXN0LzcwODARhg9o --dHRwOi8vdGVzdC83MDkwEYYPaHR0cDovL3Rlc3QvNzEwMBGGD2h0dHA6Ly90ZXN0 --LzcxMTARhg9odHRwOi8vdGVzdC83MTIwEYYPaHR0cDovL3Rlc3QvNzEzMBGGD2h0 --dHA6Ly90ZXN0LzcxNDARhg9odHRwOi8vdGVzdC83MTUwEYYPaHR0cDovL3Rlc3Qv --NzE2MBGGD2h0dHA6Ly90ZXN0LzcxNzARhg9odHRwOi8vdGVzdC83MTgwEYYPaHR0 --cDovL3Rlc3QvNzE5MBGGD2h0dHA6Ly90ZXN0LzcyMDARhg9odHRwOi8vdGVzdC83 --MjEwEYYPaHR0cDovL3Rlc3QvNzIyMBGGD2h0dHA6Ly90ZXN0LzcyMzARhg9odHRw --Oi8vdGVzdC83MjQwEYYPaHR0cDovL3Rlc3QvNzI1MBGGD2h0dHA6Ly90ZXN0Lzcy --NjARhg9odHRwOi8vdGVzdC83MjcwEYYPaHR0cDovL3Rlc3QvNzI4MBGGD2h0dHA6 --Ly90ZXN0LzcyOTARhg9odHRwOi8vdGVzdC83MzAwEYYPaHR0cDovL3Rlc3QvNzMx --MBGGD2h0dHA6Ly90ZXN0LzczMjARhg9odHRwOi8vdGVzdC83MzMwEYYPaHR0cDov --L3Rlc3QvNzM0MBGGD2h0dHA6Ly90ZXN0LzczNTARhg9odHRwOi8vdGVzdC83MzYw --EYYPaHR0cDovL3Rlc3QvNzM3MBGGD2h0dHA6Ly90ZXN0LzczODARhg9odHRwOi8v --dGVzdC83MzkwEYYPaHR0cDovL3Rlc3QvNzQwMBGGD2h0dHA6Ly90ZXN0Lzc0MTAR --hg9odHRwOi8vdGVzdC83NDIwEYYPaHR0cDovL3Rlc3QvNzQzMBGGD2h0dHA6Ly90 --ZXN0Lzc0NDARhg9odHRwOi8vdGVzdC83NDUwEYYPaHR0cDovL3Rlc3QvNzQ2MBGG --D2h0dHA6Ly90ZXN0Lzc0NzARhg9odHRwOi8vdGVzdC83NDgwEYYPaHR0cDovL3Rl --c3QvNzQ5MBGGD2h0dHA6Ly90ZXN0Lzc1MDARhg9odHRwOi8vdGVzdC83NTEwEYYP --aHR0cDovL3Rlc3QvNzUyMBGGD2h0dHA6Ly90ZXN0Lzc1MzARhg9odHRwOi8vdGVz --dC83NTQwEYYPaHR0cDovL3Rlc3QvNzU1MBGGD2h0dHA6Ly90ZXN0Lzc1NjARhg9o --dHRwOi8vdGVzdC83NTcwEYYPaHR0cDovL3Rlc3QvNzU4MBGGD2h0dHA6Ly90ZXN0 --Lzc1OTARhg9odHRwOi8vdGVzdC83NjAwEYYPaHR0cDovL3Rlc3QvNzYxMBGGD2h0 --dHA6Ly90ZXN0Lzc2MjARhg9odHRwOi8vdGVzdC83NjMwEYYPaHR0cDovL3Rlc3Qv --NzY0MBGGD2h0dHA6Ly90ZXN0Lzc2NTARhg9odHRwOi8vdGVzdC83NjYwEYYPaHR0 --cDovL3Rlc3QvNzY3MBGGD2h0dHA6Ly90ZXN0Lzc2ODARhg9odHRwOi8vdGVzdC83 --NjkwEYYPaHR0cDovL3Rlc3QvNzcwMBGGD2h0dHA6Ly90ZXN0Lzc3MTARhg9odHRw --Oi8vdGVzdC83NzIwEYYPaHR0cDovL3Rlc3QvNzczMBGGD2h0dHA6Ly90ZXN0Lzc3 --NDARhg9odHRwOi8vdGVzdC83NzUwEYYPaHR0cDovL3Rlc3QvNzc2MBGGD2h0dHA6 --Ly90ZXN0Lzc3NzARhg9odHRwOi8vdGVzdC83NzgwEYYPaHR0cDovL3Rlc3QvNzc5 --MBGGD2h0dHA6Ly90ZXN0Lzc4MDARhg9odHRwOi8vdGVzdC83ODEwEYYPaHR0cDov --L3Rlc3QvNzgyMBGGD2h0dHA6Ly90ZXN0Lzc4MzARhg9odHRwOi8vdGVzdC83ODQw --EYYPaHR0cDovL3Rlc3QvNzg1MBGGD2h0dHA6Ly90ZXN0Lzc4NjARhg9odHRwOi8v --dGVzdC83ODcwEYYPaHR0cDovL3Rlc3QvNzg4MBGGD2h0dHA6Ly90ZXN0Lzc4OTAR --hg9odHRwOi8vdGVzdC83OTAwEYYPaHR0cDovL3Rlc3QvNzkxMBGGD2h0dHA6Ly90 --ZXN0Lzc5MjARhg9odHRwOi8vdGVzdC83OTMwEYYPaHR0cDovL3Rlc3QvNzk0MBGG --D2h0dHA6Ly90ZXN0Lzc5NTARhg9odHRwOi8vdGVzdC83OTYwEYYPaHR0cDovL3Rl --c3QvNzk3MBGGD2h0dHA6Ly90ZXN0Lzc5ODARhg9odHRwOi8vdGVzdC83OTkwEYYP --aHR0cDovL3Rlc3QvODAwMBGGD2h0dHA6Ly90ZXN0LzgwMTARhg9odHRwOi8vdGVz --dC84MDIwEYYPaHR0cDovL3Rlc3QvODAzMBGGD2h0dHA6Ly90ZXN0LzgwNDARhg9o --dHRwOi8vdGVzdC84MDUwEYYPaHR0cDovL3Rlc3QvODA2MBGGD2h0dHA6Ly90ZXN0 --LzgwNzARhg9odHRwOi8vdGVzdC84MDgwEYYPaHR0cDovL3Rlc3QvODA5MBGGD2h0 --dHA6Ly90ZXN0LzgxMDARhg9odHRwOi8vdGVzdC84MTEwEYYPaHR0cDovL3Rlc3Qv --ODEyMBGGD2h0dHA6Ly90ZXN0LzgxMzARhg9odHRwOi8vdGVzdC84MTQwEYYPaHR0 --cDovL3Rlc3QvODE1MBGGD2h0dHA6Ly90ZXN0LzgxNjARhg9odHRwOi8vdGVzdC84 --MTcwEYYPaHR0cDovL3Rlc3QvODE4MBGGD2h0dHA6Ly90ZXN0LzgxOTARhg9odHRw --Oi8vdGVzdC84MjAwEYYPaHR0cDovL3Rlc3QvODIxMBGGD2h0dHA6Ly90ZXN0Lzgy --MjARhg9odHRwOi8vdGVzdC84MjMwEYYPaHR0cDovL3Rlc3QvODI0MBGGD2h0dHA6 --Ly90ZXN0LzgyNTARhg9odHRwOi8vdGVzdC84MjYwEYYPaHR0cDovL3Rlc3QvODI3 --MBGGD2h0dHA6Ly90ZXN0LzgyODARhg9odHRwOi8vdGVzdC84MjkwEYYPaHR0cDov --L3Rlc3QvODMwMBGGD2h0dHA6Ly90ZXN0LzgzMTARhg9odHRwOi8vdGVzdC84MzIw --EYYPaHR0cDovL3Rlc3QvODMzMBGGD2h0dHA6Ly90ZXN0LzgzNDARhg9odHRwOi8v --dGVzdC84MzUwEYYPaHR0cDovL3Rlc3QvODM2MBGGD2h0dHA6Ly90ZXN0LzgzNzAR --hg9odHRwOi8vdGVzdC84MzgwEYYPaHR0cDovL3Rlc3QvODM5MBGGD2h0dHA6Ly90 --ZXN0Lzg0MDARhg9odHRwOi8vdGVzdC84NDEwEYYPaHR0cDovL3Rlc3QvODQyMBGG --D2h0dHA6Ly90ZXN0Lzg0MzARhg9odHRwOi8vdGVzdC84NDQwEYYPaHR0cDovL3Rl --c3QvODQ1MBGGD2h0dHA6Ly90ZXN0Lzg0NjARhg9odHRwOi8vdGVzdC84NDcwEYYP --aHR0cDovL3Rlc3QvODQ4MBGGD2h0dHA6Ly90ZXN0Lzg0OTARhg9odHRwOi8vdGVz --dC84NTAwEYYPaHR0cDovL3Rlc3QvODUxMBGGD2h0dHA6Ly90ZXN0Lzg1MjARhg9o --dHRwOi8vdGVzdC84NTMwEYYPaHR0cDovL3Rlc3QvODU0MBGGD2h0dHA6Ly90ZXN0 --Lzg1NTARhg9odHRwOi8vdGVzdC84NTYwEYYPaHR0cDovL3Rlc3QvODU3MBGGD2h0 --dHA6Ly90ZXN0Lzg1ODARhg9odHRwOi8vdGVzdC84NTkwEYYPaHR0cDovL3Rlc3Qv --ODYwMBGGD2h0dHA6Ly90ZXN0Lzg2MTARhg9odHRwOi8vdGVzdC84NjIwEYYPaHR0 --cDovL3Rlc3QvODYzMBGGD2h0dHA6Ly90ZXN0Lzg2NDARhg9odHRwOi8vdGVzdC84 --NjUwEYYPaHR0cDovL3Rlc3QvODY2MBGGD2h0dHA6Ly90ZXN0Lzg2NzARhg9odHRw --Oi8vdGVzdC84NjgwEYYPaHR0cDovL3Rlc3QvODY5MBGGD2h0dHA6Ly90ZXN0Lzg3 --MDARhg9odHRwOi8vdGVzdC84NzEwEYYPaHR0cDovL3Rlc3QvODcyMBGGD2h0dHA6 --Ly90ZXN0Lzg3MzARhg9odHRwOi8vdGVzdC84NzQwEYYPaHR0cDovL3Rlc3QvODc1 --MBGGD2h0dHA6Ly90ZXN0Lzg3NjARhg9odHRwOi8vdGVzdC84NzcwEYYPaHR0cDov --L3Rlc3QvODc4MBGGD2h0dHA6Ly90ZXN0Lzg3OTARhg9odHRwOi8vdGVzdC84ODAw --EYYPaHR0cDovL3Rlc3QvODgxMBGGD2h0dHA6Ly90ZXN0Lzg4MjARhg9odHRwOi8v --dGVzdC84ODMwEYYPaHR0cDovL3Rlc3QvODg0MBGGD2h0dHA6Ly90ZXN0Lzg4NTAR --hg9odHRwOi8vdGVzdC84ODYwEYYPaHR0cDovL3Rlc3QvODg3MBGGD2h0dHA6Ly90 --ZXN0Lzg4ODARhg9odHRwOi8vdGVzdC84ODkwEYYPaHR0cDovL3Rlc3QvODkwMBGG --D2h0dHA6Ly90ZXN0Lzg5MTARhg9odHRwOi8vdGVzdC84OTIwEYYPaHR0cDovL3Rl --c3QvODkzMBGGD2h0dHA6Ly90ZXN0Lzg5NDARhg9odHRwOi8vdGVzdC84OTUwEYYP --aHR0cDovL3Rlc3QvODk2MBGGD2h0dHA6Ly90ZXN0Lzg5NzARhg9odHRwOi8vdGVz --dC84OTgwEYYPaHR0cDovL3Rlc3QvODk5MBGGD2h0dHA6Ly90ZXN0LzkwMDARhg9o --dHRwOi8vdGVzdC85MDEwEYYPaHR0cDovL3Rlc3QvOTAyMBGGD2h0dHA6Ly90ZXN0 --LzkwMzARhg9odHRwOi8vdGVzdC85MDQwEYYPaHR0cDovL3Rlc3QvOTA1MBGGD2h0 --dHA6Ly90ZXN0LzkwNjARhg9odHRwOi8vdGVzdC85MDcwEYYPaHR0cDovL3Rlc3Qv --OTA4MBGGD2h0dHA6Ly90ZXN0LzkwOTARhg9odHRwOi8vdGVzdC85MTAwEYYPaHR0 --cDovL3Rlc3QvOTExMBGGD2h0dHA6Ly90ZXN0LzkxMjARhg9odHRwOi8vdGVzdC85 --MTMwEYYPaHR0cDovL3Rlc3QvOTE0MBGGD2h0dHA6Ly90ZXN0LzkxNTARhg9odHRw --Oi8vdGVzdC85MTYwEYYPaHR0cDovL3Rlc3QvOTE3MBGGD2h0dHA6Ly90ZXN0Lzkx --ODARhg9odHRwOi8vdGVzdC85MTkwEYYPaHR0cDovL3Rlc3QvOTIwMBGGD2h0dHA6 --Ly90ZXN0LzkyMTARhg9odHRwOi8vdGVzdC85MjIwEYYPaHR0cDovL3Rlc3QvOTIz --MBGGD2h0dHA6Ly90ZXN0LzkyNDARhg9odHRwOi8vdGVzdC85MjUwEYYPaHR0cDov --L3Rlc3QvOTI2MBGGD2h0dHA6Ly90ZXN0LzkyNzARhg9odHRwOi8vdGVzdC85Mjgw --EYYPaHR0cDovL3Rlc3QvOTI5MBGGD2h0dHA6Ly90ZXN0LzkzMDARhg9odHRwOi8v --dGVzdC85MzEwEYYPaHR0cDovL3Rlc3QvOTMyMBGGD2h0dHA6Ly90ZXN0LzkzMzAR --hg9odHRwOi8vdGVzdC85MzQwEYYPaHR0cDovL3Rlc3QvOTM1MBGGD2h0dHA6Ly90 --ZXN0LzkzNjARhg9odHRwOi8vdGVzdC85MzcwEYYPaHR0cDovL3Rlc3QvOTM4MBGG --D2h0dHA6Ly90ZXN0LzkzOTARhg9odHRwOi8vdGVzdC85NDAwEYYPaHR0cDovL3Rl --c3QvOTQxMBGGD2h0dHA6Ly90ZXN0Lzk0MjARhg9odHRwOi8vdGVzdC85NDMwEYYP --aHR0cDovL3Rlc3QvOTQ0MBGGD2h0dHA6Ly90ZXN0Lzk0NTARhg9odHRwOi8vdGVz --dC85NDYwEYYPaHR0cDovL3Rlc3QvOTQ3MBGGD2h0dHA6Ly90ZXN0Lzk0ODARhg9o --dHRwOi8vdGVzdC85NDkwEYYPaHR0cDovL3Rlc3QvOTUwMBGGD2h0dHA6Ly90ZXN0 --Lzk1MTARhg9odHRwOi8vdGVzdC85NTIwEYYPaHR0cDovL3Rlc3QvOTUzMBGGD2h0 --dHA6Ly90ZXN0Lzk1NDARhg9odHRwOi8vdGVzdC85NTUwEYYPaHR0cDovL3Rlc3Qv --OTU2MBGGD2h0dHA6Ly90ZXN0Lzk1NzARhg9odHRwOi8vdGVzdC85NTgwEYYPaHR0 --cDovL3Rlc3QvOTU5MBGGD2h0dHA6Ly90ZXN0Lzk2MDARhg9odHRwOi8vdGVzdC85 --NjEwEYYPaHR0cDovL3Rlc3QvOTYyMBGGD2h0dHA6Ly90ZXN0Lzk2MzARhg9odHRw --Oi8vdGVzdC85NjQwEYYPaHR0cDovL3Rlc3QvOTY1MBGGD2h0dHA6Ly90ZXN0Lzk2 --NjARhg9odHRwOi8vdGVzdC85NjcwEYYPaHR0cDovL3Rlc3QvOTY4MBGGD2h0dHA6 --Ly90ZXN0Lzk2OTARhg9odHRwOi8vdGVzdC85NzAwEYYPaHR0cDovL3Rlc3QvOTcx --MBGGD2h0dHA6Ly90ZXN0Lzk3MjARhg9odHRwOi8vdGVzdC85NzMwEYYPaHR0cDov --L3Rlc3QvOTc0MBGGD2h0dHA6Ly90ZXN0Lzk3NTARhg9odHRwOi8vdGVzdC85NzYw --EYYPaHR0cDovL3Rlc3QvOTc3MBGGD2h0dHA6Ly90ZXN0Lzk3ODARhg9odHRwOi8v --dGVzdC85NzkwEYYPaHR0cDovL3Rlc3QvOTgwMBGGD2h0dHA6Ly90ZXN0Lzk4MTAR --hg9odHRwOi8vdGVzdC85ODIwEYYPaHR0cDovL3Rlc3QvOTgzMBGGD2h0dHA6Ly90 --ZXN0Lzk4NDARhg9odHRwOi8vdGVzdC85ODUwEYYPaHR0cDovL3Rlc3QvOTg2MBGG --D2h0dHA6Ly90ZXN0Lzk4NzARhg9odHRwOi8vdGVzdC85ODgwEYYPaHR0cDovL3Rl --c3QvOTg5MBGGD2h0dHA6Ly90ZXN0Lzk5MDARhg9odHRwOi8vdGVzdC85OTEwEYYP --aHR0cDovL3Rlc3QvOTkyMBGGD2h0dHA6Ly90ZXN0Lzk5MzARhg9odHRwOi8vdGVz --dC85OTQwEYYPaHR0cDovL3Rlc3QvOTk1MBGGD2h0dHA6Ly90ZXN0Lzk5NjARhg9o --dHRwOi8vdGVzdC85OTcwEYYPaHR0cDovL3Rlc3QvOTk4MBGGD2h0dHA6Ly90ZXN0 --Lzk5OTAShhBodHRwOi8vdGVzdC8xMDAwMBKGEGh0dHA6Ly90ZXN0LzEwMDEwEoYQ --aHR0cDovL3Rlc3QvMTAwMjAShhBodHRwOi8vdGVzdC8xMDAzMBKGEGh0dHA6Ly90 --ZXN0LzEwMDQwEoYQaHR0cDovL3Rlc3QvMTAwNTAShhBodHRwOi8vdGVzdC8xMDA2 --MBKGEGh0dHA6Ly90ZXN0LzEwMDcwEoYQaHR0cDovL3Rlc3QvMTAwODAShhBodHRw --Oi8vdGVzdC8xMDA5MBKGEGh0dHA6Ly90ZXN0LzEwMTAwEoYQaHR0cDovL3Rlc3Qv --MTAxMTAShhBodHRwOi8vdGVzdC8xMDEyMBKGEGh0dHA6Ly90ZXN0LzEwMTMwEoYQ --aHR0cDovL3Rlc3QvMTAxNDAShhBodHRwOi8vdGVzdC8xMDE1MBKGEGh0dHA6Ly90 --ZXN0LzEwMTYwEoYQaHR0cDovL3Rlc3QvMTAxNzAShhBodHRwOi8vdGVzdC8xMDE4 --MBKGEGh0dHA6Ly90ZXN0LzEwMTkwEoYQaHR0cDovL3Rlc3QvMTAyMDAShhBodHRw --Oi8vdGVzdC8xMDIxMBKGEGh0dHA6Ly90ZXN0LzEwMjIwEoYQaHR0cDovL3Rlc3Qv --MTAyMzAShhBodHRwOi8vdGVzdC8xMDI0oYLPijAKhwgLAAAA/////zAKhwgLAAAB --/////zAKhwgLAAAC/////zAKhwgLAAAD/////zAKhwgLAAAE/////zAKhwgLAAAF --/////zAKhwgLAAAG/////zAKhwgLAAAH/////zAKhwgLAAAI/////zAKhwgLAAAJ --/////zAKhwgLAAAK/////zAKhwgLAAAL/////zAKhwgLAAAM/////zAKhwgLAAAN --/////zAKhwgLAAAO/////zAKhwgLAAAP/////zAKhwgLAAAQ/////zAKhwgLAAAR --/////zAKhwgLAAAS/////zAKhwgLAAAT/////zAKhwgLAAAU/////zAKhwgLAAAV --/////zAKhwgLAAAW/////zAKhwgLAAAX/////zAKhwgLAAAY/////zAKhwgLAAAZ --/////zAKhwgLAAAa/////zAKhwgLAAAb/////zAKhwgLAAAc/////zAKhwgLAAAd --/////zAKhwgLAAAe/////zAKhwgLAAAf/////zAKhwgLAAAg/////zAKhwgLAAAh --/////zAKhwgLAAAi/////zAKhwgLAAAj/////zAKhwgLAAAk/////zAKhwgLAAAl --/////zAKhwgLAAAm/////zAKhwgLAAAn/////zAKhwgLAAAo/////zAKhwgLAAAp --/////zAKhwgLAAAq/////zAKhwgLAAAr/////zAKhwgLAAAs/////zAKhwgLAAAt --/////zAKhwgLAAAu/////zAKhwgLAAAv/////zAKhwgLAAAw/////zAKhwgLAAAx --/////zAKhwgLAAAy/////zAKhwgLAAAz/////zAKhwgLAAA0/////zAKhwgLAAA1 --/////zAKhwgLAAA2/////zAKhwgLAAA3/////zAKhwgLAAA4/////zAKhwgLAAA5 --/////zAKhwgLAAA6/////zAKhwgLAAA7/////zAKhwgLAAA8/////zAKhwgLAAA9 --/////zAKhwgLAAA+/////zAKhwgLAAA//////zAKhwgLAABA/////zAKhwgLAABB --/////zAKhwgLAABC/////zAKhwgLAABD/////zAKhwgLAABE/////zAKhwgLAABF --/////zAKhwgLAABG/////zAKhwgLAABH/////zAKhwgLAABI/////zAKhwgLAABJ --/////zAKhwgLAABK/////zAKhwgLAABL/////zAKhwgLAABM/////zAKhwgLAABN --/////zAKhwgLAABO/////zAKhwgLAABP/////zAKhwgLAABQ/////zAKhwgLAABR --/////zAKhwgLAABS/////zAKhwgLAABT/////zAKhwgLAABU/////zAKhwgLAABV --/////zAKhwgLAABW/////zAKhwgLAABX/////zAKhwgLAABY/////zAKhwgLAABZ --/////zAKhwgLAABa/////zAKhwgLAABb/////zAKhwgLAABc/////zAKhwgLAABd --/////zAKhwgLAABe/////zAKhwgLAABf/////zAKhwgLAABg/////zAKhwgLAABh --/////zAKhwgLAABi/////zAKhwgLAABj/////zAKhwgLAABk/////zAKhwgLAABl --/////zAKhwgLAABm/////zAKhwgLAABn/////zAKhwgLAABo/////zAKhwgLAABp --/////zAKhwgLAABq/////zAKhwgLAABr/////zAKhwgLAABs/////zAKhwgLAABt --/////zAKhwgLAABu/////zAKhwgLAABv/////zAKhwgLAABw/////zAKhwgLAABx --/////zAKhwgLAABy/////zAKhwgLAABz/////zAKhwgLAAB0/////zAKhwgLAAB1 --/////zAKhwgLAAB2/////zAKhwgLAAB3/////zAKhwgLAAB4/////zAKhwgLAAB5 --/////zAKhwgLAAB6/////zAKhwgLAAB7/////zAKhwgLAAB8/////zAKhwgLAAB9 --/////zAKhwgLAAB+/////zAKhwgLAAB//////zAKhwgLAACA/////zAKhwgLAACB --/////zAKhwgLAACC/////zAKhwgLAACD/////zAKhwgLAACE/////zAKhwgLAACF --/////zAKhwgLAACG/////zAKhwgLAACH/////zAKhwgLAACI/////zAKhwgLAACJ --/////zAKhwgLAACK/////zAKhwgLAACL/////zAKhwgLAACM/////zAKhwgLAACN --/////zAKhwgLAACO/////zAKhwgLAACP/////zAKhwgLAACQ/////zAKhwgLAACR --/////zAKhwgLAACS/////zAKhwgLAACT/////zAKhwgLAACU/////zAKhwgLAACV --/////zAKhwgLAACW/////zAKhwgLAACX/////zAKhwgLAACY/////zAKhwgLAACZ --/////zAKhwgLAACa/////zAKhwgLAACb/////zAKhwgLAACc/////zAKhwgLAACd --/////zAKhwgLAACe/////zAKhwgLAACf/////zAKhwgLAACg/////zAKhwgLAACh --/////zAKhwgLAACi/////zAKhwgLAACj/////zAKhwgLAACk/////zAKhwgLAACl --/////zAKhwgLAACm/////zAKhwgLAACn/////zAKhwgLAACo/////zAKhwgLAACp --/////zAKhwgLAACq/////zAKhwgLAACr/////zAKhwgLAACs/////zAKhwgLAACt --/////zAKhwgLAACu/////zAKhwgLAACv/////zAKhwgLAACw/////zAKhwgLAACx --/////zAKhwgLAACy/////zAKhwgLAACz/////zAKhwgLAAC0/////zAKhwgLAAC1 --/////zAKhwgLAAC2/////zAKhwgLAAC3/////zAKhwgLAAC4/////zAKhwgLAAC5 --/////zAKhwgLAAC6/////zAKhwgLAAC7/////zAKhwgLAAC8/////zAKhwgLAAC9 --/////zAKhwgLAAC+/////zAKhwgLAAC//////zAKhwgLAADA/////zAKhwgLAADB --/////zAKhwgLAADC/////zAKhwgLAADD/////zAKhwgLAADE/////zAKhwgLAADF --/////zAKhwgLAADG/////zAKhwgLAADH/////zAKhwgLAADI/////zAKhwgLAADJ --/////zAKhwgLAADK/////zAKhwgLAADL/////zAKhwgLAADM/////zAKhwgLAADN --/////zAKhwgLAADO/////zAKhwgLAADP/////zAKhwgLAADQ/////zAKhwgLAADR --/////zAKhwgLAADS/////zAKhwgLAADT/////zAKhwgLAADU/////zAKhwgLAADV --/////zAKhwgLAADW/////zAKhwgLAADX/////zAKhwgLAADY/////zAKhwgLAADZ --/////zAKhwgLAADa/////zAKhwgLAADb/////zAKhwgLAADc/////zAKhwgLAADd --/////zAKhwgLAADe/////zAKhwgLAADf/////zAKhwgLAADg/////zAKhwgLAADh --/////zAKhwgLAADi/////zAKhwgLAADj/////zAKhwgLAADk/////zAKhwgLAADl --/////zAKhwgLAADm/////zAKhwgLAADn/////zAKhwgLAADo/////zAKhwgLAADp --/////zAKhwgLAADq/////zAKhwgLAADr/////zAKhwgLAADs/////zAKhwgLAADt --/////zAKhwgLAADu/////zAKhwgLAADv/////zAKhwgLAADw/////zAKhwgLAADx --/////zAKhwgLAADy/////zAKhwgLAADz/////zAKhwgLAAD0/////zAKhwgLAAD1 --/////zAKhwgLAAD2/////zAKhwgLAAD3/////zAKhwgLAAD4/////zAKhwgLAAD5 --/////zAKhwgLAAD6/////zAKhwgLAAD7/////zAKhwgLAAD8/////zAKhwgLAAD9 --/////zAKhwgLAAD+/////zAKhwgLAAD//////zAKhwgLAAEA/////zAKhwgLAAEB --/////zAKhwgLAAEC/////zAKhwgLAAED/////zAKhwgLAAEE/////zAKhwgLAAEF --/////zAKhwgLAAEG/////zAKhwgLAAEH/////zAKhwgLAAEI/////zAKhwgLAAEJ --/////zAKhwgLAAEK/////zAKhwgLAAEL/////zAKhwgLAAEM/////zAKhwgLAAEN --/////zAKhwgLAAEO/////zAKhwgLAAEP/////zAKhwgLAAEQ/////zAKhwgLAAER --/////zAKhwgLAAES/////zAKhwgLAAET/////zAKhwgLAAEU/////zAKhwgLAAEV --/////zAKhwgLAAEW/////zAKhwgLAAEX/////zAKhwgLAAEY/////zAKhwgLAAEZ --/////zAKhwgLAAEa/////zAKhwgLAAEb/////zAKhwgLAAEc/////zAKhwgLAAEd --/////zAKhwgLAAEe/////zAKhwgLAAEf/////zAKhwgLAAEg/////zAKhwgLAAEh --/////zAKhwgLAAEi/////zAKhwgLAAEj/////zAKhwgLAAEk/////zAKhwgLAAEl --/////zAKhwgLAAEm/////zAKhwgLAAEn/////zAKhwgLAAEo/////zAKhwgLAAEp --/////zAKhwgLAAEq/////zAKhwgLAAEr/////zAKhwgLAAEs/////zAKhwgLAAEt --/////zAKhwgLAAEu/////zAKhwgLAAEv/////zAKhwgLAAEw/////zAKhwgLAAEx --/////zAKhwgLAAEy/////zAKhwgLAAEz/////zAKhwgLAAE0/////zAKhwgLAAE1 --/////zAKhwgLAAE2/////zAKhwgLAAE3/////zAKhwgLAAE4/////zAKhwgLAAE5 --/////zAKhwgLAAE6/////zAKhwgLAAE7/////zAKhwgLAAE8/////zAKhwgLAAE9 --/////zAKhwgLAAE+/////zAKhwgLAAE//////zAKhwgLAAFA/////zAKhwgLAAFB --/////zAKhwgLAAFC/////zAKhwgLAAFD/////zAKhwgLAAFE/////zAKhwgLAAFF --/////zAKhwgLAAFG/////zAKhwgLAAFH/////zAKhwgLAAFI/////zAKhwgLAAFJ --/////zAKhwgLAAFK/////zAKhwgLAAFL/////zAKhwgLAAFM/////zAKhwgLAAFN --/////zAKhwgLAAFO/////zAKhwgLAAFP/////zAKhwgLAAFQ/////zAKhwgLAAFR --/////zAKhwgLAAFS/////zAKhwgLAAFT/////zAKhwgLAAFU/////zAKhwgLAAFV --/////zAKhwgLAAFW/////zAKhwgLAAFX/////zAKhwgLAAFY/////zAKhwgLAAFZ --/////zAKhwgLAAFa/////zAKhwgLAAFb/////zAKhwgLAAFc/////zAKhwgLAAFd --/////zAKhwgLAAFe/////zAKhwgLAAFf/////zAKhwgLAAFg/////zAKhwgLAAFh --/////zAKhwgLAAFi/////zAKhwgLAAFj/////zAKhwgLAAFk/////zAKhwgLAAFl --/////zAKhwgLAAFm/////zAKhwgLAAFn/////zAKhwgLAAFo/////zAKhwgLAAFp --/////zAKhwgLAAFq/////zAKhwgLAAFr/////zAKhwgLAAFs/////zAKhwgLAAFt --/////zAKhwgLAAFu/////zAKhwgLAAFv/////zAKhwgLAAFw/////zAKhwgLAAFx --/////zAKhwgLAAFy/////zAKhwgLAAFz/////zAKhwgLAAF0/////zAKhwgLAAF1 --/////zAKhwgLAAF2/////zAKhwgLAAF3/////zAKhwgLAAF4/////zAKhwgLAAF5 --/////zAKhwgLAAF6/////zAKhwgLAAF7/////zAKhwgLAAF8/////zAKhwgLAAF9 --/////zAKhwgLAAF+/////zAKhwgLAAF//////zAKhwgLAAGA/////zAKhwgLAAGB --/////zAKhwgLAAGC/////zAKhwgLAAGD/////zAKhwgLAAGE/////zAKhwgLAAGF --/////zAKhwgLAAGG/////zAKhwgLAAGH/////zAKhwgLAAGI/////zAKhwgLAAGJ --/////zAKhwgLAAGK/////zAKhwgLAAGL/////zAKhwgLAAGM/////zAKhwgLAAGN --/////zAKhwgLAAGO/////zAKhwgLAAGP/////zAKhwgLAAGQ/////zAKhwgLAAGR --/////zAKhwgLAAGS/////zAKhwgLAAGT/////zAKhwgLAAGU/////zAKhwgLAAGV --/////zAKhwgLAAGW/////zAKhwgLAAGX/////zAKhwgLAAGY/////zAKhwgLAAGZ --/////zAKhwgLAAGa/////zAKhwgLAAGb/////zAKhwgLAAGc/////zAKhwgLAAGd --/////zAKhwgLAAGe/////zAKhwgLAAGf/////zAKhwgLAAGg/////zAKhwgLAAGh --/////zAKhwgLAAGi/////zAKhwgLAAGj/////zAKhwgLAAGk/////zAKhwgLAAGl --/////zAKhwgLAAGm/////zAKhwgLAAGn/////zAKhwgLAAGo/////zAKhwgLAAGp --/////zAKhwgLAAGq/////zAKhwgLAAGr/////zAKhwgLAAGs/////zAKhwgLAAGt --/////zAKhwgLAAGu/////zAKhwgLAAGv/////zAKhwgLAAGw/////zAKhwgLAAGx --/////zAKhwgLAAGy/////zAKhwgLAAGz/////zAKhwgLAAG0/////zAKhwgLAAG1 --/////zAKhwgLAAG2/////zAKhwgLAAG3/////zAKhwgLAAG4/////zAKhwgLAAG5 --/////zAKhwgLAAG6/////zAKhwgLAAG7/////zAKhwgLAAG8/////zAKhwgLAAG9 --/////zAKhwgLAAG+/////zAKhwgLAAG//////zAKhwgLAAHA/////zAKhwgLAAHB --/////zAKhwgLAAHC/////zAKhwgLAAHD/////zAKhwgLAAHE/////zAKhwgLAAHF --/////zAKhwgLAAHG/////zAKhwgLAAHH/////zAKhwgLAAHI/////zAKhwgLAAHJ --/////zAKhwgLAAHK/////zAKhwgLAAHL/////zAKhwgLAAHM/////zAKhwgLAAHN --/////zAKhwgLAAHO/////zAKhwgLAAHP/////zAKhwgLAAHQ/////zAKhwgLAAHR --/////zAKhwgLAAHS/////zAKhwgLAAHT/////zAKhwgLAAHU/////zAKhwgLAAHV --/////zAKhwgLAAHW/////zAKhwgLAAHX/////zAKhwgLAAHY/////zAKhwgLAAHZ --/////zAKhwgLAAHa/////zAKhwgLAAHb/////zAKhwgLAAHc/////zAKhwgLAAHd --/////zAKhwgLAAHe/////zAKhwgLAAHf/////zAKhwgLAAHg/////zAKhwgLAAHh --/////zAKhwgLAAHi/////zAKhwgLAAHj/////zAKhwgLAAHk/////zAKhwgLAAHl --/////zAKhwgLAAHm/////zAKhwgLAAHn/////zAKhwgLAAHo/////zAKhwgLAAHp --/////zAKhwgLAAHq/////zAKhwgLAAHr/////zAKhwgLAAHs/////zAKhwgLAAHt --/////zAKhwgLAAHu/////zAKhwgLAAHv/////zAKhwgLAAHw/////zAKhwgLAAHx --/////zAKhwgLAAHy/////zAKhwgLAAHz/////zAKhwgLAAH0/////zAKhwgLAAH1 --/////zAKhwgLAAH2/////zAKhwgLAAH3/////zAKhwgLAAH4/////zAKhwgLAAH5 --/////zAKhwgLAAH6/////zAKhwgLAAH7/////zAKhwgLAAH8/////zAKhwgLAAH9 --/////zAKhwgLAAH+/////zAKhwgLAAH//////zAKhwgLAAIA/////zAKhwgLAAIB --/////zAKhwgLAAIC/////zAKhwgLAAID/////zAKhwgLAAIE/////zAKhwgLAAIF --/////zAKhwgLAAIG/////zAKhwgLAAIH/////zAKhwgLAAII/////zAKhwgLAAIJ --/////zAKhwgLAAIK/////zAKhwgLAAIL/////zAKhwgLAAIM/////zAKhwgLAAIN --/////zAKhwgLAAIO/////zAKhwgLAAIP/////zAKhwgLAAIQ/////zAKhwgLAAIR --/////zAKhwgLAAIS/////zAKhwgLAAIT/////zAKhwgLAAIU/////zAKhwgLAAIV --/////zAKhwgLAAIW/////zAKhwgLAAIX/////zAKhwgLAAIY/////zAKhwgLAAIZ --/////zAKhwgLAAIa/////zAKhwgLAAIb/////zAKhwgLAAIc/////zAKhwgLAAId --/////zAKhwgLAAIe/////zAKhwgLAAIf/////zAKhwgLAAIg/////zAKhwgLAAIh --/////zAKhwgLAAIi/////zAKhwgLAAIj/////zAKhwgLAAIk/////zAKhwgLAAIl --/////zAKhwgLAAIm/////zAKhwgLAAIn/////zAKhwgLAAIo/////zAKhwgLAAIp --/////zAKhwgLAAIq/////zAKhwgLAAIr/////zAKhwgLAAIs/////zAKhwgLAAIt --/////zAKhwgLAAIu/////zAKhwgLAAIv/////zAKhwgLAAIw/////zAKhwgLAAIx --/////zAKhwgLAAIy/////zAKhwgLAAIz/////zAKhwgLAAI0/////zAKhwgLAAI1 --/////zAKhwgLAAI2/////zAKhwgLAAI3/////zAKhwgLAAI4/////zAKhwgLAAI5 --/////zAKhwgLAAI6/////zAKhwgLAAI7/////zAKhwgLAAI8/////zAKhwgLAAI9 --/////zAKhwgLAAI+/////zAKhwgLAAI//////zAKhwgLAAJA/////zAKhwgLAAJB --/////zAKhwgLAAJC/////zAKhwgLAAJD/////zAKhwgLAAJE/////zAKhwgLAAJF --/////zAKhwgLAAJG/////zAKhwgLAAJH/////zAKhwgLAAJI/////zAKhwgLAAJJ --/////zAKhwgLAAJK/////zAKhwgLAAJL/////zAKhwgLAAJM/////zAKhwgLAAJN --/////zAKhwgLAAJO/////zAKhwgLAAJP/////zAKhwgLAAJQ/////zAKhwgLAAJR --/////zAKhwgLAAJS/////zAKhwgLAAJT/////zAKhwgLAAJU/////zAKhwgLAAJV --/////zAKhwgLAAJW/////zAKhwgLAAJX/////zAKhwgLAAJY/////zAKhwgLAAJZ --/////zAKhwgLAAJa/////zAKhwgLAAJb/////zAKhwgLAAJc/////zAKhwgLAAJd --/////zAKhwgLAAJe/////zAKhwgLAAJf/////zAKhwgLAAJg/////zAKhwgLAAJh --/////zAKhwgLAAJi/////zAKhwgLAAJj/////zAKhwgLAAJk/////zAKhwgLAAJl --/////zAKhwgLAAJm/////zAKhwgLAAJn/////zAKhwgLAAJo/////zAKhwgLAAJp --/////zAKhwgLAAJq/////zAKhwgLAAJr/////zAKhwgLAAJs/////zAKhwgLAAJt --/////zAKhwgLAAJu/////zAKhwgLAAJv/////zAKhwgLAAJw/////zAKhwgLAAJx --/////zAKhwgLAAJy/////zAKhwgLAAJz/////zAKhwgLAAJ0/////zAKhwgLAAJ1 --/////zAKhwgLAAJ2/////zAKhwgLAAJ3/////zAKhwgLAAJ4/////zAKhwgLAAJ5 --/////zAKhwgLAAJ6/////zAKhwgLAAJ7/////zAKhwgLAAJ8/////zAKhwgLAAJ9 --/////zAKhwgLAAJ+/////zAKhwgLAAJ//////zAKhwgLAAKA/////zAKhwgLAAKB --/////zAKhwgLAAKC/////zAKhwgLAAKD/////zAKhwgLAAKE/////zAKhwgLAAKF --/////zAKhwgLAAKG/////zAKhwgLAAKH/////zAKhwgLAAKI/////zAKhwgLAAKJ --/////zAKhwgLAAKK/////zAKhwgLAAKL/////zAKhwgLAAKM/////zAKhwgLAAKN --/////zAKhwgLAAKO/////zAKhwgLAAKP/////zAKhwgLAAKQ/////zAKhwgLAAKR --/////zAKhwgLAAKS/////zAKhwgLAAKT/////zAKhwgLAAKU/////zAKhwgLAAKV --/////zAKhwgLAAKW/////zAKhwgLAAKX/////zAKhwgLAAKY/////zAKhwgLAAKZ --/////zAKhwgLAAKa/////zAKhwgLAAKb/////zAKhwgLAAKc/////zAKhwgLAAKd --/////zAKhwgLAAKe/////zAKhwgLAAKf/////zAKhwgLAAKg/////zAKhwgLAAKh --/////zAKhwgLAAKi/////zAKhwgLAAKj/////zAKhwgLAAKk/////zAKhwgLAAKl --/////zAKhwgLAAKm/////zAKhwgLAAKn/////zAKhwgLAAKo/////zAKhwgLAAKp --/////zAKhwgLAAKq/////zAKhwgLAAKr/////zAKhwgLAAKs/////zAKhwgLAAKt --/////zAKhwgLAAKu/////zAKhwgLAAKv/////zAKhwgLAAKw/////zAKhwgLAAKx --/////zAKhwgLAAKy/////zAKhwgLAAKz/////zAKhwgLAAK0/////zAKhwgLAAK1 --/////zAKhwgLAAK2/////zAKhwgLAAK3/////zAKhwgLAAK4/////zAKhwgLAAK5 --/////zAKhwgLAAK6/////zAKhwgLAAK7/////zAKhwgLAAK8/////zAKhwgLAAK9 --/////zAKhwgLAAK+/////zAKhwgLAAK//////zAKhwgLAALA/////zAKhwgLAALB --/////zAKhwgLAALC/////zAKhwgLAALD/////zAKhwgLAALE/////zAKhwgLAALF --/////zAKhwgLAALG/////zAKhwgLAALH/////zAKhwgLAALI/////zAKhwgLAALJ --/////zAKhwgLAALK/////zAKhwgLAALL/////zAKhwgLAALM/////zAKhwgLAALN --/////zAKhwgLAALO/////zAKhwgLAALP/////zAKhwgLAALQ/////zAKhwgLAALR --/////zAKhwgLAALS/////zAKhwgLAALT/////zAKhwgLAALU/////zAKhwgLAALV --/////zAKhwgLAALW/////zAKhwgLAALX/////zAKhwgLAALY/////zAKhwgLAALZ --/////zAKhwgLAALa/////zAKhwgLAALb/////zAKhwgLAALc/////zAKhwgLAALd --/////zAKhwgLAALe/////zAKhwgLAALf/////zAKhwgLAALg/////zAKhwgLAALh --/////zAKhwgLAALi/////zAKhwgLAALj/////zAKhwgLAALk/////zAKhwgLAALl --/////zAKhwgLAALm/////zAKhwgLAALn/////zAKhwgLAALo/////zAKhwgLAALp --/////zAKhwgLAALq/////zAKhwgLAALr/////zAKhwgLAALs/////zAKhwgLAALt --/////zAKhwgLAALu/////zAKhwgLAALv/////zAKhwgLAALw/////zAKhwgLAALx --/////zAKhwgLAALy/////zAKhwgLAALz/////zAKhwgLAAL0/////zAKhwgLAAL1 --/////zAKhwgLAAL2/////zAKhwgLAAL3/////zAKhwgLAAL4/////zAKhwgLAAL5 --/////zAKhwgLAAL6/////zAKhwgLAAL7/////zAKhwgLAAL8/////zAKhwgLAAL9 --/////zAKhwgLAAL+/////zAKhwgLAAL//////zAKhwgLAAMA/////zAKhwgLAAMB --/////zAKhwgLAAMC/////zAKhwgLAAMD/////zAKhwgLAAME/////zAKhwgLAAMF --/////zAKhwgLAAMG/////zAKhwgLAAMH/////zAKhwgLAAMI/////zAKhwgLAAMJ --/////zAKhwgLAAMK/////zAKhwgLAAML/////zAKhwgLAAMM/////zAKhwgLAAMN --/////zAKhwgLAAMO/////zAKhwgLAAMP/////zAKhwgLAAMQ/////zAKhwgLAAMR --/////zAKhwgLAAMS/////zAKhwgLAAMT/////zAKhwgLAAMU/////zAKhwgLAAMV --/////zAKhwgLAAMW/////zAKhwgLAAMX/////zAKhwgLAAMY/////zAKhwgLAAMZ --/////zAKhwgLAAMa/////zAKhwgLAAMb/////zAKhwgLAAMc/////zAKhwgLAAMd --/////zAKhwgLAAMe/////zAKhwgLAAMf/////zAKhwgLAAMg/////zAKhwgLAAMh --/////zAKhwgLAAMi/////zAKhwgLAAMj/////zAKhwgLAAMk/////zAKhwgLAAMl --/////zAKhwgLAAMm/////zAKhwgLAAMn/////zAKhwgLAAMo/////zAKhwgLAAMp --/////zAKhwgLAAMq/////zAKhwgLAAMr/////zAKhwgLAAMs/////zAKhwgLAAMt --/////zAKhwgLAAMu/////zAKhwgLAAMv/////zAKhwgLAAMw/////zAKhwgLAAMx --/////zAKhwgLAAMy/////zAKhwgLAAMz/////zAKhwgLAAM0/////zAKhwgLAAM1 --/////zAKhwgLAAM2/////zAKhwgLAAM3/////zAKhwgLAAM4/////zAKhwgLAAM5 --/////zAKhwgLAAM6/////zAKhwgLAAM7/////zAKhwgLAAM8/////zAKhwgLAAM9 --/////zAKhwgLAAM+/////zAKhwgLAAM//////zAKhwgLAANA/////zAKhwgLAANB --/////zAKhwgLAANC/////zAKhwgLAAND/////zAKhwgLAANE/////zAKhwgLAANF --/////zAKhwgLAANG/////zAKhwgLAANH/////zAKhwgLAANI/////zAKhwgLAANJ --/////zAKhwgLAANK/////zAKhwgLAANL/////zAKhwgLAANM/////zAKhwgLAANN --/////zAKhwgLAANO/////zAKhwgLAANP/////zAKhwgLAANQ/////zAKhwgLAANR --/////zAKhwgLAANS/////zAKhwgLAANT/////zAKhwgLAANU/////zAKhwgLAANV --/////zAKhwgLAANW/////zAKhwgLAANX/////zAKhwgLAANY/////zAKhwgLAANZ --/////zAKhwgLAANa/////zAKhwgLAANb/////zAKhwgLAANc/////zAKhwgLAANd --/////zAKhwgLAANe/////zAKhwgLAANf/////zAKhwgLAANg/////zAKhwgLAANh --/////zAKhwgLAANi/////zAKhwgLAANj/////zAKhwgLAANk/////zAKhwgLAANl --/////zAKhwgLAANm/////zAKhwgLAANn/////zAKhwgLAANo/////zAKhwgLAANp --/////zAKhwgLAANq/////zAKhwgLAANr/////zAKhwgLAANs/////zAKhwgLAANt --/////zAKhwgLAANu/////zAKhwgLAANv/////zAKhwgLAANw/////zAKhwgLAANx --/////zAKhwgLAANy/////zAKhwgLAANz/////zAKhwgLAAN0/////zAKhwgLAAN1 --/////zAKhwgLAAN2/////zAKhwgLAAN3/////zAKhwgLAAN4/////zAKhwgLAAN5 --/////zAKhwgLAAN6/////zAKhwgLAAN7/////zAKhwgLAAN8/////zAKhwgLAAN9 --/////zAKhwgLAAN+/////zAKhwgLAAN//////zAKhwgLAAOA/////zAKhwgLAAOB --/////zAKhwgLAAOC/////zAKhwgLAAOD/////zAKhwgLAAOE/////zAKhwgLAAOF --/////zAKhwgLAAOG/////zAKhwgLAAOH/////zAKhwgLAAOI/////zAKhwgLAAOJ --/////zAKhwgLAAOK/////zAKhwgLAAOL/////zAKhwgLAAOM/////zAKhwgLAAON --/////zAKhwgLAAOO/////zAKhwgLAAOP/////zAKhwgLAAOQ/////zAKhwgLAAOR --/////zAKhwgLAAOS/////zAKhwgLAAOT/////zAKhwgLAAOU/////zAKhwgLAAOV --/////zAKhwgLAAOW/////zAKhwgLAAOX/////zAKhwgLAAOY/////zAKhwgLAAOZ --/////zAKhwgLAAOa/////zAKhwgLAAOb/////zAKhwgLAAOc/////zAKhwgLAAOd --/////zAKhwgLAAOe/////zAKhwgLAAOf/////zAKhwgLAAOg/////zAKhwgLAAOh --/////zAKhwgLAAOi/////zAKhwgLAAOj/////zAKhwgLAAOk/////zAKhwgLAAOl --/////zAKhwgLAAOm/////zAKhwgLAAOn/////zAKhwgLAAOo/////zAKhwgLAAOp --/////zAKhwgLAAOq/////zAKhwgLAAOr/////zAKhwgLAAOs/////zAKhwgLAAOt --/////zAKhwgLAAOu/////zAKhwgLAAOv/////zAKhwgLAAOw/////zAKhwgLAAOx --/////zAKhwgLAAOy/////zAKhwgLAAOz/////zAKhwgLAAO0/////zAKhwgLAAO1 --/////zAKhwgLAAO2/////zAKhwgLAAO3/////zAKhwgLAAO4/////zAKhwgLAAO5 --/////zAKhwgLAAO6/////zAKhwgLAAO7/////zAKhwgLAAO8/////zAKhwgLAAO9 --/////zAKhwgLAAO+/////zAKhwgLAAO//////zAKhwgLAAPA/////zAKhwgLAAPB --/////zAKhwgLAAPC/////zAKhwgLAAPD/////zAKhwgLAAPE/////zAKhwgLAAPF --/////zAKhwgLAAPG/////zAKhwgLAAPH/////zAKhwgLAAPI/////zAKhwgLAAPJ --/////zAKhwgLAAPK/////zAKhwgLAAPL/////zAKhwgLAAPM/////zAKhwgLAAPN --/////zAKhwgLAAPO/////zAKhwgLAAPP/////zAKhwgLAAPQ/////zAKhwgLAAPR --/////zAKhwgLAAPS/////zAKhwgLAAPT/////zAKhwgLAAPU/////zAKhwgLAAPV --/////zAKhwgLAAPW/////zAKhwgLAAPX/////zAKhwgLAAPY/////zAKhwgLAAPZ --/////zAKhwgLAAPa/////zAKhwgLAAPb/////zAKhwgLAAPc/////zAKhwgLAAPd --/////zAKhwgLAAPe/////zAKhwgLAAPf/////zAKhwgLAAPg/////zAKhwgLAAPh --/////zAKhwgLAAPi/////zAKhwgLAAPj/////zAKhwgLAAPk/////zAKhwgLAAPl --/////zAKhwgLAAPm/////zAKhwgLAAPn/////zAKhwgLAAPo/////zAKhwgLAAPp --/////zAKhwgLAAPq/////zAKhwgLAAPr/////zAKhwgLAAPs/////zAKhwgLAAPt --/////zAKhwgLAAPu/////zAKhwgLAAPv/////zAKhwgLAAPw/////zAKhwgLAAPx --/////zAKhwgLAAPy/////zAKhwgLAAPz/////zAKhwgLAAP0/////zAKhwgLAAP1 --/////zAKhwgLAAP2/////zAKhwgLAAP3/////zAKhwgLAAP4/////zAKhwgLAAP5 --/////zAKhwgLAAP6/////zAKhwgLAAP7/////zAKhwgLAAP8/////zAKhwgLAAP9 --/////zAKhwgLAAP+/////zAKhwgLAAP//////zAKhwgLAAQA/////zARpA8wDTEL --MAkGA1UEAwwCeDAwEaQPMA0xCzAJBgNVBAMMAngxMBGkDzANMQswCQYDVQQDDAJ4 --MjARpA8wDTELMAkGA1UEAwwCeDMwEaQPMA0xCzAJBgNVBAMMAng0MBGkDzANMQsw --CQYDVQQDDAJ4NTARpA8wDTELMAkGA1UEAwwCeDYwEaQPMA0xCzAJBgNVBAMMAng3 --MBGkDzANMQswCQYDVQQDDAJ4ODARpA8wDTELMAkGA1UEAwwCeDkwEqQQMA4xDDAK --BgNVBAMMA3gxMDASpBAwDjEMMAoGA1UEAwwDeDExMBKkEDAOMQwwCgYDVQQDDAN4 --MTIwEqQQMA4xDDAKBgNVBAMMA3gxMzASpBAwDjEMMAoGA1UEAwwDeDE0MBKkEDAO --MQwwCgYDVQQDDAN4MTUwEqQQMA4xDDAKBgNVBAMMA3gxNjASpBAwDjEMMAoGA1UE --AwwDeDE3MBKkEDAOMQwwCgYDVQQDDAN4MTgwEqQQMA4xDDAKBgNVBAMMA3gxOTAS --pBAwDjEMMAoGA1UEAwwDeDIwMBKkEDAOMQwwCgYDVQQDDAN4MjEwEqQQMA4xDDAK --BgNVBAMMA3gyMjASpBAwDjEMMAoGA1UEAwwDeDIzMBKkEDAOMQwwCgYDVQQDDAN4 --MjQwEqQQMA4xDDAKBgNVBAMMA3gyNTASpBAwDjEMMAoGA1UEAwwDeDI2MBKkEDAO --MQwwCgYDVQQDDAN4MjcwEqQQMA4xDDAKBgNVBAMMA3gyODASpBAwDjEMMAoGA1UE --AwwDeDI5MBKkEDAOMQwwCgYDVQQDDAN4MzAwEqQQMA4xDDAKBgNVBAMMA3gzMTAS --pBAwDjEMMAoGA1UEAwwDeDMyMBKkEDAOMQwwCgYDVQQDDAN4MzMwEqQQMA4xDDAK --BgNVBAMMA3gzNDASpBAwDjEMMAoGA1UEAwwDeDM1MBKkEDAOMQwwCgYDVQQDDAN4 --MzYwEqQQMA4xDDAKBgNVBAMMA3gzNzASpBAwDjEMMAoGA1UEAwwDeDM4MBKkEDAO --MQwwCgYDVQQDDAN4MzkwEqQQMA4xDDAKBgNVBAMMA3g0MDASpBAwDjEMMAoGA1UE --AwwDeDQxMBKkEDAOMQwwCgYDVQQDDAN4NDIwEqQQMA4xDDAKBgNVBAMMA3g0MzAS --pBAwDjEMMAoGA1UEAwwDeDQ0MBKkEDAOMQwwCgYDVQQDDAN4NDUwEqQQMA4xDDAK --BgNVBAMMA3g0NjASpBAwDjEMMAoGA1UEAwwDeDQ3MBKkEDAOMQwwCgYDVQQDDAN4 --NDgwEqQQMA4xDDAKBgNVBAMMA3g0OTASpBAwDjEMMAoGA1UEAwwDeDUwMBKkEDAO --MQwwCgYDVQQDDAN4NTEwEqQQMA4xDDAKBgNVBAMMA3g1MjASpBAwDjEMMAoGA1UE --AwwDeDUzMBKkEDAOMQwwCgYDVQQDDAN4NTQwEqQQMA4xDDAKBgNVBAMMA3g1NTAS --pBAwDjEMMAoGA1UEAwwDeDU2MBKkEDAOMQwwCgYDVQQDDAN4NTcwEqQQMA4xDDAK --BgNVBAMMA3g1ODASpBAwDjEMMAoGA1UEAwwDeDU5MBKkEDAOMQwwCgYDVQQDDAN4 --NjAwEqQQMA4xDDAKBgNVBAMMA3g2MTASpBAwDjEMMAoGA1UEAwwDeDYyMBKkEDAO --MQwwCgYDVQQDDAN4NjMwEqQQMA4xDDAKBgNVBAMMA3g2NDASpBAwDjEMMAoGA1UE --AwwDeDY1MBKkEDAOMQwwCgYDVQQDDAN4NjYwEqQQMA4xDDAKBgNVBAMMA3g2NzAS --pBAwDjEMMAoGA1UEAwwDeDY4MBKkEDAOMQwwCgYDVQQDDAN4NjkwEqQQMA4xDDAK --BgNVBAMMA3g3MDASpBAwDjEMMAoGA1UEAwwDeDcxMBKkEDAOMQwwCgYDVQQDDAN4 --NzIwEqQQMA4xDDAKBgNVBAMMA3g3MzASpBAwDjEMMAoGA1UEAwwDeDc0MBKkEDAO --MQwwCgYDVQQDDAN4NzUwEqQQMA4xDDAKBgNVBAMMA3g3NjASpBAwDjEMMAoGA1UE --AwwDeDc3MBKkEDAOMQwwCgYDVQQDDAN4NzgwEqQQMA4xDDAKBgNVBAMMA3g3OTAS --pBAwDjEMMAoGA1UEAwwDeDgwMBKkEDAOMQwwCgYDVQQDDAN4ODEwEqQQMA4xDDAK --BgNVBAMMA3g4MjASpBAwDjEMMAoGA1UEAwwDeDgzMBKkEDAOMQwwCgYDVQQDDAN4 --ODQwEqQQMA4xDDAKBgNVBAMMA3g4NTASpBAwDjEMMAoGA1UEAwwDeDg2MBKkEDAO --MQwwCgYDVQQDDAN4ODcwEqQQMA4xDDAKBgNVBAMMA3g4ODASpBAwDjEMMAoGA1UE --AwwDeDg5MBKkEDAOMQwwCgYDVQQDDAN4OTAwEqQQMA4xDDAKBgNVBAMMA3g5MTAS --pBAwDjEMMAoGA1UEAwwDeDkyMBKkEDAOMQwwCgYDVQQDDAN4OTMwEqQQMA4xDDAK --BgNVBAMMA3g5NDASpBAwDjEMMAoGA1UEAwwDeDk1MBKkEDAOMQwwCgYDVQQDDAN4 --OTYwEqQQMA4xDDAKBgNVBAMMA3g5NzASpBAwDjEMMAoGA1UEAwwDeDk4MBKkEDAO --MQwwCgYDVQQDDAN4OTkwE6QRMA8xDTALBgNVBAMMBHgxMDAwE6QRMA8xDTALBgNV --BAMMBHgxMDEwE6QRMA8xDTALBgNVBAMMBHgxMDIwE6QRMA8xDTALBgNVBAMMBHgx --MDMwE6QRMA8xDTALBgNVBAMMBHgxMDQwE6QRMA8xDTALBgNVBAMMBHgxMDUwE6QR --MA8xDTALBgNVBAMMBHgxMDYwE6QRMA8xDTALBgNVBAMMBHgxMDcwE6QRMA8xDTAL --BgNVBAMMBHgxMDgwE6QRMA8xDTALBgNVBAMMBHgxMDkwE6QRMA8xDTALBgNVBAMM --BHgxMTAwE6QRMA8xDTALBgNVBAMMBHgxMTEwE6QRMA8xDTALBgNVBAMMBHgxMTIw --E6QRMA8xDTALBgNVBAMMBHgxMTMwE6QRMA8xDTALBgNVBAMMBHgxMTQwE6QRMA8x --DTALBgNVBAMMBHgxMTUwE6QRMA8xDTALBgNVBAMMBHgxMTYwE6QRMA8xDTALBgNV --BAMMBHgxMTcwE6QRMA8xDTALBgNVBAMMBHgxMTgwE6QRMA8xDTALBgNVBAMMBHgx --MTkwE6QRMA8xDTALBgNVBAMMBHgxMjAwE6QRMA8xDTALBgNVBAMMBHgxMjEwE6QR --MA8xDTALBgNVBAMMBHgxMjIwE6QRMA8xDTALBgNVBAMMBHgxMjMwE6QRMA8xDTAL --BgNVBAMMBHgxMjQwE6QRMA8xDTALBgNVBAMMBHgxMjUwE6QRMA8xDTALBgNVBAMM --BHgxMjYwE6QRMA8xDTALBgNVBAMMBHgxMjcwE6QRMA8xDTALBgNVBAMMBHgxMjgw --E6QRMA8xDTALBgNVBAMMBHgxMjkwE6QRMA8xDTALBgNVBAMMBHgxMzAwE6QRMA8x --DTALBgNVBAMMBHgxMzEwE6QRMA8xDTALBgNVBAMMBHgxMzIwE6QRMA8xDTALBgNV --BAMMBHgxMzMwE6QRMA8xDTALBgNVBAMMBHgxMzQwE6QRMA8xDTALBgNVBAMMBHgx --MzUwE6QRMA8xDTALBgNVBAMMBHgxMzYwE6QRMA8xDTALBgNVBAMMBHgxMzcwE6QR --MA8xDTALBgNVBAMMBHgxMzgwE6QRMA8xDTALBgNVBAMMBHgxMzkwE6QRMA8xDTAL --BgNVBAMMBHgxNDAwE6QRMA8xDTALBgNVBAMMBHgxNDEwE6QRMA8xDTALBgNVBAMM --BHgxNDIwE6QRMA8xDTALBgNVBAMMBHgxNDMwE6QRMA8xDTALBgNVBAMMBHgxNDQw --E6QRMA8xDTALBgNVBAMMBHgxNDUwE6QRMA8xDTALBgNVBAMMBHgxNDYwE6QRMA8x --DTALBgNVBAMMBHgxNDcwE6QRMA8xDTALBgNVBAMMBHgxNDgwE6QRMA8xDTALBgNV --BAMMBHgxNDkwE6QRMA8xDTALBgNVBAMMBHgxNTAwE6QRMA8xDTALBgNVBAMMBHgx --NTEwE6QRMA8xDTALBgNVBAMMBHgxNTIwE6QRMA8xDTALBgNVBAMMBHgxNTMwE6QR --MA8xDTALBgNVBAMMBHgxNTQwE6QRMA8xDTALBgNVBAMMBHgxNTUwE6QRMA8xDTAL --BgNVBAMMBHgxNTYwE6QRMA8xDTALBgNVBAMMBHgxNTcwE6QRMA8xDTALBgNVBAMM --BHgxNTgwE6QRMA8xDTALBgNVBAMMBHgxNTkwE6QRMA8xDTALBgNVBAMMBHgxNjAw --E6QRMA8xDTALBgNVBAMMBHgxNjEwE6QRMA8xDTALBgNVBAMMBHgxNjIwE6QRMA8x --DTALBgNVBAMMBHgxNjMwE6QRMA8xDTALBgNVBAMMBHgxNjQwE6QRMA8xDTALBgNV --BAMMBHgxNjUwE6QRMA8xDTALBgNVBAMMBHgxNjYwE6QRMA8xDTALBgNVBAMMBHgx --NjcwE6QRMA8xDTALBgNVBAMMBHgxNjgwE6QRMA8xDTALBgNVBAMMBHgxNjkwE6QR --MA8xDTALBgNVBAMMBHgxNzAwE6QRMA8xDTALBgNVBAMMBHgxNzEwE6QRMA8xDTAL --BgNVBAMMBHgxNzIwE6QRMA8xDTALBgNVBAMMBHgxNzMwE6QRMA8xDTALBgNVBAMM --BHgxNzQwE6QRMA8xDTALBgNVBAMMBHgxNzUwE6QRMA8xDTALBgNVBAMMBHgxNzYw --E6QRMA8xDTALBgNVBAMMBHgxNzcwE6QRMA8xDTALBgNVBAMMBHgxNzgwE6QRMA8x --DTALBgNVBAMMBHgxNzkwE6QRMA8xDTALBgNVBAMMBHgxODAwE6QRMA8xDTALBgNV --BAMMBHgxODEwE6QRMA8xDTALBgNVBAMMBHgxODIwE6QRMA8xDTALBgNVBAMMBHgx --ODMwE6QRMA8xDTALBgNVBAMMBHgxODQwE6QRMA8xDTALBgNVBAMMBHgxODUwE6QR --MA8xDTALBgNVBAMMBHgxODYwE6QRMA8xDTALBgNVBAMMBHgxODcwE6QRMA8xDTAL --BgNVBAMMBHgxODgwE6QRMA8xDTALBgNVBAMMBHgxODkwE6QRMA8xDTALBgNVBAMM --BHgxOTAwE6QRMA8xDTALBgNVBAMMBHgxOTEwE6QRMA8xDTALBgNVBAMMBHgxOTIw --E6QRMA8xDTALBgNVBAMMBHgxOTMwE6QRMA8xDTALBgNVBAMMBHgxOTQwE6QRMA8x --DTALBgNVBAMMBHgxOTUwE6QRMA8xDTALBgNVBAMMBHgxOTYwE6QRMA8xDTALBgNV --BAMMBHgxOTcwE6QRMA8xDTALBgNVBAMMBHgxOTgwE6QRMA8xDTALBgNVBAMMBHgx --OTkwE6QRMA8xDTALBgNVBAMMBHgyMDAwE6QRMA8xDTALBgNVBAMMBHgyMDEwE6QR --MA8xDTALBgNVBAMMBHgyMDIwE6QRMA8xDTALBgNVBAMMBHgyMDMwE6QRMA8xDTAL --BgNVBAMMBHgyMDQwE6QRMA8xDTALBgNVBAMMBHgyMDUwE6QRMA8xDTALBgNVBAMM --BHgyMDYwE6QRMA8xDTALBgNVBAMMBHgyMDcwE6QRMA8xDTALBgNVBAMMBHgyMDgw --E6QRMA8xDTALBgNVBAMMBHgyMDkwE6QRMA8xDTALBgNVBAMMBHgyMTAwE6QRMA8x --DTALBgNVBAMMBHgyMTEwE6QRMA8xDTALBgNVBAMMBHgyMTIwE6QRMA8xDTALBgNV --BAMMBHgyMTMwE6QRMA8xDTALBgNVBAMMBHgyMTQwE6QRMA8xDTALBgNVBAMMBHgy --MTUwE6QRMA8xDTALBgNVBAMMBHgyMTYwE6QRMA8xDTALBgNVBAMMBHgyMTcwE6QR --MA8xDTALBgNVBAMMBHgyMTgwE6QRMA8xDTALBgNVBAMMBHgyMTkwE6QRMA8xDTAL --BgNVBAMMBHgyMjAwE6QRMA8xDTALBgNVBAMMBHgyMjEwE6QRMA8xDTALBgNVBAMM --BHgyMjIwE6QRMA8xDTALBgNVBAMMBHgyMjMwE6QRMA8xDTALBgNVBAMMBHgyMjQw --E6QRMA8xDTALBgNVBAMMBHgyMjUwE6QRMA8xDTALBgNVBAMMBHgyMjYwE6QRMA8x --DTALBgNVBAMMBHgyMjcwE6QRMA8xDTALBgNVBAMMBHgyMjgwE6QRMA8xDTALBgNV --BAMMBHgyMjkwE6QRMA8xDTALBgNVBAMMBHgyMzAwE6QRMA8xDTALBgNVBAMMBHgy --MzEwE6QRMA8xDTALBgNVBAMMBHgyMzIwE6QRMA8xDTALBgNVBAMMBHgyMzMwE6QR --MA8xDTALBgNVBAMMBHgyMzQwE6QRMA8xDTALBgNVBAMMBHgyMzUwE6QRMA8xDTAL --BgNVBAMMBHgyMzYwE6QRMA8xDTALBgNVBAMMBHgyMzcwE6QRMA8xDTALBgNVBAMM --BHgyMzgwE6QRMA8xDTALBgNVBAMMBHgyMzkwE6QRMA8xDTALBgNVBAMMBHgyNDAw --E6QRMA8xDTALBgNVBAMMBHgyNDEwE6QRMA8xDTALBgNVBAMMBHgyNDIwE6QRMA8x --DTALBgNVBAMMBHgyNDMwE6QRMA8xDTALBgNVBAMMBHgyNDQwE6QRMA8xDTALBgNV --BAMMBHgyNDUwE6QRMA8xDTALBgNVBAMMBHgyNDYwE6QRMA8xDTALBgNVBAMMBHgy --NDcwE6QRMA8xDTALBgNVBAMMBHgyNDgwE6QRMA8xDTALBgNVBAMMBHgyNDkwE6QR --MA8xDTALBgNVBAMMBHgyNTAwE6QRMA8xDTALBgNVBAMMBHgyNTEwE6QRMA8xDTAL --BgNVBAMMBHgyNTIwE6QRMA8xDTALBgNVBAMMBHgyNTMwE6QRMA8xDTALBgNVBAMM --BHgyNTQwE6QRMA8xDTALBgNVBAMMBHgyNTUwE6QRMA8xDTALBgNVBAMMBHgyNTYw --E6QRMA8xDTALBgNVBAMMBHgyNTcwE6QRMA8xDTALBgNVBAMMBHgyNTgwE6QRMA8x --DTALBgNVBAMMBHgyNTkwE6QRMA8xDTALBgNVBAMMBHgyNjAwE6QRMA8xDTALBgNV --BAMMBHgyNjEwE6QRMA8xDTALBgNVBAMMBHgyNjIwE6QRMA8xDTALBgNVBAMMBHgy --NjMwE6QRMA8xDTALBgNVBAMMBHgyNjQwE6QRMA8xDTALBgNVBAMMBHgyNjUwE6QR --MA8xDTALBgNVBAMMBHgyNjYwE6QRMA8xDTALBgNVBAMMBHgyNjcwE6QRMA8xDTAL --BgNVBAMMBHgyNjgwE6QRMA8xDTALBgNVBAMMBHgyNjkwE6QRMA8xDTALBgNVBAMM --BHgyNzAwE6QRMA8xDTALBgNVBAMMBHgyNzEwE6QRMA8xDTALBgNVBAMMBHgyNzIw --E6QRMA8xDTALBgNVBAMMBHgyNzMwE6QRMA8xDTALBgNVBAMMBHgyNzQwE6QRMA8x --DTALBgNVBAMMBHgyNzUwE6QRMA8xDTALBgNVBAMMBHgyNzYwE6QRMA8xDTALBgNV --BAMMBHgyNzcwE6QRMA8xDTALBgNVBAMMBHgyNzgwE6QRMA8xDTALBgNVBAMMBHgy --NzkwE6QRMA8xDTALBgNVBAMMBHgyODAwE6QRMA8xDTALBgNVBAMMBHgyODEwE6QR --MA8xDTALBgNVBAMMBHgyODIwE6QRMA8xDTALBgNVBAMMBHgyODMwE6QRMA8xDTAL --BgNVBAMMBHgyODQwE6QRMA8xDTALBgNVBAMMBHgyODUwE6QRMA8xDTALBgNVBAMM --BHgyODYwE6QRMA8xDTALBgNVBAMMBHgyODcwE6QRMA8xDTALBgNVBAMMBHgyODgw --E6QRMA8xDTALBgNVBAMMBHgyODkwE6QRMA8xDTALBgNVBAMMBHgyOTAwE6QRMA8x --DTALBgNVBAMMBHgyOTEwE6QRMA8xDTALBgNVBAMMBHgyOTIwE6QRMA8xDTALBgNV --BAMMBHgyOTMwE6QRMA8xDTALBgNVBAMMBHgyOTQwE6QRMA8xDTALBgNVBAMMBHgy --OTUwE6QRMA8xDTALBgNVBAMMBHgyOTYwE6QRMA8xDTALBgNVBAMMBHgyOTcwE6QR --MA8xDTALBgNVBAMMBHgyOTgwE6QRMA8xDTALBgNVBAMMBHgyOTkwE6QRMA8xDTAL --BgNVBAMMBHgzMDAwE6QRMA8xDTALBgNVBAMMBHgzMDEwE6QRMA8xDTALBgNVBAMM --BHgzMDIwE6QRMA8xDTALBgNVBAMMBHgzMDMwE6QRMA8xDTALBgNVBAMMBHgzMDQw --E6QRMA8xDTALBgNVBAMMBHgzMDUwE6QRMA8xDTALBgNVBAMMBHgzMDYwE6QRMA8x --DTALBgNVBAMMBHgzMDcwE6QRMA8xDTALBgNVBAMMBHgzMDgwE6QRMA8xDTALBgNV --BAMMBHgzMDkwE6QRMA8xDTALBgNVBAMMBHgzMTAwE6QRMA8xDTALBgNVBAMMBHgz --MTEwE6QRMA8xDTALBgNVBAMMBHgzMTIwE6QRMA8xDTALBgNVBAMMBHgzMTMwE6QR --MA8xDTALBgNVBAMMBHgzMTQwE6QRMA8xDTALBgNVBAMMBHgzMTUwE6QRMA8xDTAL --BgNVBAMMBHgzMTYwE6QRMA8xDTALBgNVBAMMBHgzMTcwE6QRMA8xDTALBgNVBAMM --BHgzMTgwE6QRMA8xDTALBgNVBAMMBHgzMTkwE6QRMA8xDTALBgNVBAMMBHgzMjAw --E6QRMA8xDTALBgNVBAMMBHgzMjEwE6QRMA8xDTALBgNVBAMMBHgzMjIwE6QRMA8x --DTALBgNVBAMMBHgzMjMwE6QRMA8xDTALBgNVBAMMBHgzMjQwE6QRMA8xDTALBgNV --BAMMBHgzMjUwE6QRMA8xDTALBgNVBAMMBHgzMjYwE6QRMA8xDTALBgNVBAMMBHgz --MjcwE6QRMA8xDTALBgNVBAMMBHgzMjgwE6QRMA8xDTALBgNVBAMMBHgzMjkwE6QR --MA8xDTALBgNVBAMMBHgzMzAwE6QRMA8xDTALBgNVBAMMBHgzMzEwE6QRMA8xDTAL --BgNVBAMMBHgzMzIwE6QRMA8xDTALBgNVBAMMBHgzMzMwE6QRMA8xDTALBgNVBAMM --BHgzMzQwE6QRMA8xDTALBgNVBAMMBHgzMzUwE6QRMA8xDTALBgNVBAMMBHgzMzYw --E6QRMA8xDTALBgNVBAMMBHgzMzcwE6QRMA8xDTALBgNVBAMMBHgzMzgwE6QRMA8x --DTALBgNVBAMMBHgzMzkwE6QRMA8xDTALBgNVBAMMBHgzNDAwE6QRMA8xDTALBgNV --BAMMBHgzNDEwE6QRMA8xDTALBgNVBAMMBHgzNDIwE6QRMA8xDTALBgNVBAMMBHgz --NDMwE6QRMA8xDTALBgNVBAMMBHgzNDQwE6QRMA8xDTALBgNVBAMMBHgzNDUwE6QR --MA8xDTALBgNVBAMMBHgzNDYwE6QRMA8xDTALBgNVBAMMBHgzNDcwE6QRMA8xDTAL --BgNVBAMMBHgzNDgwE6QRMA8xDTALBgNVBAMMBHgzNDkwE6QRMA8xDTALBgNVBAMM --BHgzNTAwE6QRMA8xDTALBgNVBAMMBHgzNTEwE6QRMA8xDTALBgNVBAMMBHgzNTIw --E6QRMA8xDTALBgNVBAMMBHgzNTMwE6QRMA8xDTALBgNVBAMMBHgzNTQwE6QRMA8x --DTALBgNVBAMMBHgzNTUwE6QRMA8xDTALBgNVBAMMBHgzNTYwE6QRMA8xDTALBgNV --BAMMBHgzNTcwE6QRMA8xDTALBgNVBAMMBHgzNTgwE6QRMA8xDTALBgNVBAMMBHgz --NTkwE6QRMA8xDTALBgNVBAMMBHgzNjAwE6QRMA8xDTALBgNVBAMMBHgzNjEwE6QR --MA8xDTALBgNVBAMMBHgzNjIwE6QRMA8xDTALBgNVBAMMBHgzNjMwE6QRMA8xDTAL --BgNVBAMMBHgzNjQwE6QRMA8xDTALBgNVBAMMBHgzNjUwE6QRMA8xDTALBgNVBAMM --BHgzNjYwE6QRMA8xDTALBgNVBAMMBHgzNjcwE6QRMA8xDTALBgNVBAMMBHgzNjgw --E6QRMA8xDTALBgNVBAMMBHgzNjkwE6QRMA8xDTALBgNVBAMMBHgzNzAwE6QRMA8x --DTALBgNVBAMMBHgzNzEwE6QRMA8xDTALBgNVBAMMBHgzNzIwE6QRMA8xDTALBgNV --BAMMBHgzNzMwE6QRMA8xDTALBgNVBAMMBHgzNzQwE6QRMA8xDTALBgNVBAMMBHgz --NzUwE6QRMA8xDTALBgNVBAMMBHgzNzYwE6QRMA8xDTALBgNVBAMMBHgzNzcwE6QR --MA8xDTALBgNVBAMMBHgzNzgwE6QRMA8xDTALBgNVBAMMBHgzNzkwE6QRMA8xDTAL --BgNVBAMMBHgzODAwE6QRMA8xDTALBgNVBAMMBHgzODEwE6QRMA8xDTALBgNVBAMM --BHgzODIwE6QRMA8xDTALBgNVBAMMBHgzODMwE6QRMA8xDTALBgNVBAMMBHgzODQw --E6QRMA8xDTALBgNVBAMMBHgzODUwE6QRMA8xDTALBgNVBAMMBHgzODYwE6QRMA8x --DTALBgNVBAMMBHgzODcwE6QRMA8xDTALBgNVBAMMBHgzODgwE6QRMA8xDTALBgNV --BAMMBHgzODkwE6QRMA8xDTALBgNVBAMMBHgzOTAwE6QRMA8xDTALBgNVBAMMBHgz --OTEwE6QRMA8xDTALBgNVBAMMBHgzOTIwE6QRMA8xDTALBgNVBAMMBHgzOTMwE6QR --MA8xDTALBgNVBAMMBHgzOTQwE6QRMA8xDTALBgNVBAMMBHgzOTUwE6QRMA8xDTAL --BgNVBAMMBHgzOTYwE6QRMA8xDTALBgNVBAMMBHgzOTcwE6QRMA8xDTALBgNVBAMM --BHgzOTgwE6QRMA8xDTALBgNVBAMMBHgzOTkwE6QRMA8xDTALBgNVBAMMBHg0MDAw --E6QRMA8xDTALBgNVBAMMBHg0MDEwE6QRMA8xDTALBgNVBAMMBHg0MDIwE6QRMA8x --DTALBgNVBAMMBHg0MDMwE6QRMA8xDTALBgNVBAMMBHg0MDQwE6QRMA8xDTALBgNV --BAMMBHg0MDUwE6QRMA8xDTALBgNVBAMMBHg0MDYwE6QRMA8xDTALBgNVBAMMBHg0 --MDcwE6QRMA8xDTALBgNVBAMMBHg0MDgwE6QRMA8xDTALBgNVBAMMBHg0MDkwE6QR --MA8xDTALBgNVBAMMBHg0MTAwE6QRMA8xDTALBgNVBAMMBHg0MTEwE6QRMA8xDTAL --BgNVBAMMBHg0MTIwE6QRMA8xDTALBgNVBAMMBHg0MTMwE6QRMA8xDTALBgNVBAMM --BHg0MTQwE6QRMA8xDTALBgNVBAMMBHg0MTUwE6QRMA8xDTALBgNVBAMMBHg0MTYw --E6QRMA8xDTALBgNVBAMMBHg0MTcwE6QRMA8xDTALBgNVBAMMBHg0MTgwE6QRMA8x --DTALBgNVBAMMBHg0MTkwE6QRMA8xDTALBgNVBAMMBHg0MjAwE6QRMA8xDTALBgNV --BAMMBHg0MjEwE6QRMA8xDTALBgNVBAMMBHg0MjIwE6QRMA8xDTALBgNVBAMMBHg0 --MjMwE6QRMA8xDTALBgNVBAMMBHg0MjQwE6QRMA8xDTALBgNVBAMMBHg0MjUwE6QR --MA8xDTALBgNVBAMMBHg0MjYwE6QRMA8xDTALBgNVBAMMBHg0MjcwE6QRMA8xDTAL --BgNVBAMMBHg0MjgwE6QRMA8xDTALBgNVBAMMBHg0MjkwE6QRMA8xDTALBgNVBAMM --BHg0MzAwE6QRMA8xDTALBgNVBAMMBHg0MzEwE6QRMA8xDTALBgNVBAMMBHg0MzIw --E6QRMA8xDTALBgNVBAMMBHg0MzMwE6QRMA8xDTALBgNVBAMMBHg0MzQwE6QRMA8x --DTALBgNVBAMMBHg0MzUwE6QRMA8xDTALBgNVBAMMBHg0MzYwE6QRMA8xDTALBgNV --BAMMBHg0MzcwE6QRMA8xDTALBgNVBAMMBHg0MzgwE6QRMA8xDTALBgNVBAMMBHg0 --MzkwE6QRMA8xDTALBgNVBAMMBHg0NDAwE6QRMA8xDTALBgNVBAMMBHg0NDEwE6QR --MA8xDTALBgNVBAMMBHg0NDIwE6QRMA8xDTALBgNVBAMMBHg0NDMwE6QRMA8xDTAL --BgNVBAMMBHg0NDQwE6QRMA8xDTALBgNVBAMMBHg0NDUwE6QRMA8xDTALBgNVBAMM --BHg0NDYwE6QRMA8xDTALBgNVBAMMBHg0NDcwE6QRMA8xDTALBgNVBAMMBHg0NDgw --E6QRMA8xDTALBgNVBAMMBHg0NDkwE6QRMA8xDTALBgNVBAMMBHg0NTAwE6QRMA8x --DTALBgNVBAMMBHg0NTEwE6QRMA8xDTALBgNVBAMMBHg0NTIwE6QRMA8xDTALBgNV --BAMMBHg0NTMwE6QRMA8xDTALBgNVBAMMBHg0NTQwE6QRMA8xDTALBgNVBAMMBHg0 --NTUwE6QRMA8xDTALBgNVBAMMBHg0NTYwE6QRMA8xDTALBgNVBAMMBHg0NTcwE6QR --MA8xDTALBgNVBAMMBHg0NTgwE6QRMA8xDTALBgNVBAMMBHg0NTkwE6QRMA8xDTAL --BgNVBAMMBHg0NjAwE6QRMA8xDTALBgNVBAMMBHg0NjEwE6QRMA8xDTALBgNVBAMM --BHg0NjIwE6QRMA8xDTALBgNVBAMMBHg0NjMwE6QRMA8xDTALBgNVBAMMBHg0NjQw --E6QRMA8xDTALBgNVBAMMBHg0NjUwE6QRMA8xDTALBgNVBAMMBHg0NjYwE6QRMA8x --DTALBgNVBAMMBHg0NjcwE6QRMA8xDTALBgNVBAMMBHg0NjgwE6QRMA8xDTALBgNV --BAMMBHg0NjkwE6QRMA8xDTALBgNVBAMMBHg0NzAwE6QRMA8xDTALBgNVBAMMBHg0 --NzEwE6QRMA8xDTALBgNVBAMMBHg0NzIwE6QRMA8xDTALBgNVBAMMBHg0NzMwE6QR --MA8xDTALBgNVBAMMBHg0NzQwE6QRMA8xDTALBgNVBAMMBHg0NzUwE6QRMA8xDTAL --BgNVBAMMBHg0NzYwE6QRMA8xDTALBgNVBAMMBHg0NzcwE6QRMA8xDTALBgNVBAMM --BHg0NzgwE6QRMA8xDTALBgNVBAMMBHg0NzkwE6QRMA8xDTALBgNVBAMMBHg0ODAw --E6QRMA8xDTALBgNVBAMMBHg0ODEwE6QRMA8xDTALBgNVBAMMBHg0ODIwE6QRMA8x --DTALBgNVBAMMBHg0ODMwE6QRMA8xDTALBgNVBAMMBHg0ODQwE6QRMA8xDTALBgNV --BAMMBHg0ODUwE6QRMA8xDTALBgNVBAMMBHg0ODYwE6QRMA8xDTALBgNVBAMMBHg0 --ODcwE6QRMA8xDTALBgNVBAMMBHg0ODgwE6QRMA8xDTALBgNVBAMMBHg0ODkwE6QR --MA8xDTALBgNVBAMMBHg0OTAwE6QRMA8xDTALBgNVBAMMBHg0OTEwE6QRMA8xDTAL --BgNVBAMMBHg0OTIwE6QRMA8xDTALBgNVBAMMBHg0OTMwE6QRMA8xDTALBgNVBAMM --BHg0OTQwE6QRMA8xDTALBgNVBAMMBHg0OTUwE6QRMA8xDTALBgNVBAMMBHg0OTYw --E6QRMA8xDTALBgNVBAMMBHg0OTcwE6QRMA8xDTALBgNVBAMMBHg0OTgwE6QRMA8x --DTALBgNVBAMMBHg0OTkwE6QRMA8xDTALBgNVBAMMBHg1MDAwE6QRMA8xDTALBgNV --BAMMBHg1MDEwE6QRMA8xDTALBgNVBAMMBHg1MDIwE6QRMA8xDTALBgNVBAMMBHg1 --MDMwE6QRMA8xDTALBgNVBAMMBHg1MDQwE6QRMA8xDTALBgNVBAMMBHg1MDUwE6QR --MA8xDTALBgNVBAMMBHg1MDYwE6QRMA8xDTALBgNVBAMMBHg1MDcwE6QRMA8xDTAL --BgNVBAMMBHg1MDgwE6QRMA8xDTALBgNVBAMMBHg1MDkwE6QRMA8xDTALBgNVBAMM --BHg1MTAwE6QRMA8xDTALBgNVBAMMBHg1MTEwE6QRMA8xDTALBgNVBAMMBHg1MTIw --E6QRMA8xDTALBgNVBAMMBHg1MTMwE6QRMA8xDTALBgNVBAMMBHg1MTQwE6QRMA8x --DTALBgNVBAMMBHg1MTUwE6QRMA8xDTALBgNVBAMMBHg1MTYwE6QRMA8xDTALBgNV --BAMMBHg1MTcwE6QRMA8xDTALBgNVBAMMBHg1MTgwE6QRMA8xDTALBgNVBAMMBHg1 --MTkwE6QRMA8xDTALBgNVBAMMBHg1MjAwE6QRMA8xDTALBgNVBAMMBHg1MjEwE6QR --MA8xDTALBgNVBAMMBHg1MjIwE6QRMA8xDTALBgNVBAMMBHg1MjMwE6QRMA8xDTAL --BgNVBAMMBHg1MjQwE6QRMA8xDTALBgNVBAMMBHg1MjUwE6QRMA8xDTALBgNVBAMM --BHg1MjYwE6QRMA8xDTALBgNVBAMMBHg1MjcwE6QRMA8xDTALBgNVBAMMBHg1Mjgw --E6QRMA8xDTALBgNVBAMMBHg1MjkwE6QRMA8xDTALBgNVBAMMBHg1MzAwE6QRMA8x --DTALBgNVBAMMBHg1MzEwE6QRMA8xDTALBgNVBAMMBHg1MzIwE6QRMA8xDTALBgNV --BAMMBHg1MzMwE6QRMA8xDTALBgNVBAMMBHg1MzQwE6QRMA8xDTALBgNVBAMMBHg1 --MzUwE6QRMA8xDTALBgNVBAMMBHg1MzYwE6QRMA8xDTALBgNVBAMMBHg1MzcwE6QR --MA8xDTALBgNVBAMMBHg1MzgwE6QRMA8xDTALBgNVBAMMBHg1MzkwE6QRMA8xDTAL --BgNVBAMMBHg1NDAwE6QRMA8xDTALBgNVBAMMBHg1NDEwE6QRMA8xDTALBgNVBAMM --BHg1NDIwE6QRMA8xDTALBgNVBAMMBHg1NDMwE6QRMA8xDTALBgNVBAMMBHg1NDQw --E6QRMA8xDTALBgNVBAMMBHg1NDUwE6QRMA8xDTALBgNVBAMMBHg1NDYwE6QRMA8x --DTALBgNVBAMMBHg1NDcwE6QRMA8xDTALBgNVBAMMBHg1NDgwE6QRMA8xDTALBgNV --BAMMBHg1NDkwE6QRMA8xDTALBgNVBAMMBHg1NTAwE6QRMA8xDTALBgNVBAMMBHg1 --NTEwE6QRMA8xDTALBgNVBAMMBHg1NTIwE6QRMA8xDTALBgNVBAMMBHg1NTMwE6QR --MA8xDTALBgNVBAMMBHg1NTQwE6QRMA8xDTALBgNVBAMMBHg1NTUwE6QRMA8xDTAL --BgNVBAMMBHg1NTYwE6QRMA8xDTALBgNVBAMMBHg1NTcwE6QRMA8xDTALBgNVBAMM --BHg1NTgwE6QRMA8xDTALBgNVBAMMBHg1NTkwE6QRMA8xDTALBgNVBAMMBHg1NjAw --E6QRMA8xDTALBgNVBAMMBHg1NjEwE6QRMA8xDTALBgNVBAMMBHg1NjIwE6QRMA8x --DTALBgNVBAMMBHg1NjMwE6QRMA8xDTALBgNVBAMMBHg1NjQwE6QRMA8xDTALBgNV --BAMMBHg1NjUwE6QRMA8xDTALBgNVBAMMBHg1NjYwE6QRMA8xDTALBgNVBAMMBHg1 --NjcwE6QRMA8xDTALBgNVBAMMBHg1NjgwE6QRMA8xDTALBgNVBAMMBHg1NjkwE6QR --MA8xDTALBgNVBAMMBHg1NzAwE6QRMA8xDTALBgNVBAMMBHg1NzEwE6QRMA8xDTAL --BgNVBAMMBHg1NzIwE6QRMA8xDTALBgNVBAMMBHg1NzMwE6QRMA8xDTALBgNVBAMM --BHg1NzQwE6QRMA8xDTALBgNVBAMMBHg1NzUwE6QRMA8xDTALBgNVBAMMBHg1NzYw --E6QRMA8xDTALBgNVBAMMBHg1NzcwE6QRMA8xDTALBgNVBAMMBHg1NzgwE6QRMA8x --DTALBgNVBAMMBHg1NzkwE6QRMA8xDTALBgNVBAMMBHg1ODAwE6QRMA8xDTALBgNV --BAMMBHg1ODEwE6QRMA8xDTALBgNVBAMMBHg1ODIwE6QRMA8xDTALBgNVBAMMBHg1 --ODMwE6QRMA8xDTALBgNVBAMMBHg1ODQwE6QRMA8xDTALBgNVBAMMBHg1ODUwE6QR --MA8xDTALBgNVBAMMBHg1ODYwE6QRMA8xDTALBgNVBAMMBHg1ODcwE6QRMA8xDTAL --BgNVBAMMBHg1ODgwE6QRMA8xDTALBgNVBAMMBHg1ODkwE6QRMA8xDTALBgNVBAMM --BHg1OTAwE6QRMA8xDTALBgNVBAMMBHg1OTEwE6QRMA8xDTALBgNVBAMMBHg1OTIw --E6QRMA8xDTALBgNVBAMMBHg1OTMwE6QRMA8xDTALBgNVBAMMBHg1OTQwE6QRMA8x --DTALBgNVBAMMBHg1OTUwE6QRMA8xDTALBgNVBAMMBHg1OTYwE6QRMA8xDTALBgNV --BAMMBHg1OTcwE6QRMA8xDTALBgNVBAMMBHg1OTgwE6QRMA8xDTALBgNVBAMMBHg1 --OTkwE6QRMA8xDTALBgNVBAMMBHg2MDAwE6QRMA8xDTALBgNVBAMMBHg2MDEwE6QR --MA8xDTALBgNVBAMMBHg2MDIwE6QRMA8xDTALBgNVBAMMBHg2MDMwE6QRMA8xDTAL --BgNVBAMMBHg2MDQwE6QRMA8xDTALBgNVBAMMBHg2MDUwE6QRMA8xDTALBgNVBAMM --BHg2MDYwE6QRMA8xDTALBgNVBAMMBHg2MDcwE6QRMA8xDTALBgNVBAMMBHg2MDgw --E6QRMA8xDTALBgNVBAMMBHg2MDkwE6QRMA8xDTALBgNVBAMMBHg2MTAwE6QRMA8x --DTALBgNVBAMMBHg2MTEwE6QRMA8xDTALBgNVBAMMBHg2MTIwE6QRMA8xDTALBgNV --BAMMBHg2MTMwE6QRMA8xDTALBgNVBAMMBHg2MTQwE6QRMA8xDTALBgNVBAMMBHg2 --MTUwE6QRMA8xDTALBgNVBAMMBHg2MTYwE6QRMA8xDTALBgNVBAMMBHg2MTcwE6QR --MA8xDTALBgNVBAMMBHg2MTgwE6QRMA8xDTALBgNVBAMMBHg2MTkwE6QRMA8xDTAL --BgNVBAMMBHg2MjAwE6QRMA8xDTALBgNVBAMMBHg2MjEwE6QRMA8xDTALBgNVBAMM --BHg2MjIwE6QRMA8xDTALBgNVBAMMBHg2MjMwE6QRMA8xDTALBgNVBAMMBHg2MjQw --E6QRMA8xDTALBgNVBAMMBHg2MjUwE6QRMA8xDTALBgNVBAMMBHg2MjYwE6QRMA8x --DTALBgNVBAMMBHg2MjcwE6QRMA8xDTALBgNVBAMMBHg2MjgwE6QRMA8xDTALBgNV --BAMMBHg2MjkwE6QRMA8xDTALBgNVBAMMBHg2MzAwE6QRMA8xDTALBgNVBAMMBHg2 --MzEwE6QRMA8xDTALBgNVBAMMBHg2MzIwE6QRMA8xDTALBgNVBAMMBHg2MzMwE6QR --MA8xDTALBgNVBAMMBHg2MzQwE6QRMA8xDTALBgNVBAMMBHg2MzUwE6QRMA8xDTAL --BgNVBAMMBHg2MzYwE6QRMA8xDTALBgNVBAMMBHg2MzcwE6QRMA8xDTALBgNVBAMM --BHg2MzgwE6QRMA8xDTALBgNVBAMMBHg2MzkwE6QRMA8xDTALBgNVBAMMBHg2NDAw --E6QRMA8xDTALBgNVBAMMBHg2NDEwE6QRMA8xDTALBgNVBAMMBHg2NDIwE6QRMA8x --DTALBgNVBAMMBHg2NDMwE6QRMA8xDTALBgNVBAMMBHg2NDQwE6QRMA8xDTALBgNV --BAMMBHg2NDUwE6QRMA8xDTALBgNVBAMMBHg2NDYwE6QRMA8xDTALBgNVBAMMBHg2 --NDcwE6QRMA8xDTALBgNVBAMMBHg2NDgwE6QRMA8xDTALBgNVBAMMBHg2NDkwE6QR --MA8xDTALBgNVBAMMBHg2NTAwE6QRMA8xDTALBgNVBAMMBHg2NTEwE6QRMA8xDTAL --BgNVBAMMBHg2NTIwE6QRMA8xDTALBgNVBAMMBHg2NTMwE6QRMA8xDTALBgNVBAMM --BHg2NTQwE6QRMA8xDTALBgNVBAMMBHg2NTUwE6QRMA8xDTALBgNVBAMMBHg2NTYw --E6QRMA8xDTALBgNVBAMMBHg2NTcwE6QRMA8xDTALBgNVBAMMBHg2NTgwE6QRMA8x --DTALBgNVBAMMBHg2NTkwE6QRMA8xDTALBgNVBAMMBHg2NjAwE6QRMA8xDTALBgNV --BAMMBHg2NjEwE6QRMA8xDTALBgNVBAMMBHg2NjIwE6QRMA8xDTALBgNVBAMMBHg2 --NjMwE6QRMA8xDTALBgNVBAMMBHg2NjQwE6QRMA8xDTALBgNVBAMMBHg2NjUwE6QR --MA8xDTALBgNVBAMMBHg2NjYwE6QRMA8xDTALBgNVBAMMBHg2NjcwE6QRMA8xDTAL --BgNVBAMMBHg2NjgwE6QRMA8xDTALBgNVBAMMBHg2NjkwE6QRMA8xDTALBgNVBAMM --BHg2NzAwE6QRMA8xDTALBgNVBAMMBHg2NzEwE6QRMA8xDTALBgNVBAMMBHg2NzIw --E6QRMA8xDTALBgNVBAMMBHg2NzMwE6QRMA8xDTALBgNVBAMMBHg2NzQwE6QRMA8x --DTALBgNVBAMMBHg2NzUwE6QRMA8xDTALBgNVBAMMBHg2NzYwE6QRMA8xDTALBgNV --BAMMBHg2NzcwE6QRMA8xDTALBgNVBAMMBHg2NzgwE6QRMA8xDTALBgNVBAMMBHg2 --NzkwE6QRMA8xDTALBgNVBAMMBHg2ODAwE6QRMA8xDTALBgNVBAMMBHg2ODEwE6QR --MA8xDTALBgNVBAMMBHg2ODIwE6QRMA8xDTALBgNVBAMMBHg2ODMwE6QRMA8xDTAL --BgNVBAMMBHg2ODQwE6QRMA8xDTALBgNVBAMMBHg2ODUwE6QRMA8xDTALBgNVBAMM --BHg2ODYwE6QRMA8xDTALBgNVBAMMBHg2ODcwE6QRMA8xDTALBgNVBAMMBHg2ODgw --E6QRMA8xDTALBgNVBAMMBHg2ODkwE6QRMA8xDTALBgNVBAMMBHg2OTAwE6QRMA8x --DTALBgNVBAMMBHg2OTEwE6QRMA8xDTALBgNVBAMMBHg2OTIwE6QRMA8xDTALBgNV --BAMMBHg2OTMwE6QRMA8xDTALBgNVBAMMBHg2OTQwE6QRMA8xDTALBgNVBAMMBHg2 --OTUwE6QRMA8xDTALBgNVBAMMBHg2OTYwE6QRMA8xDTALBgNVBAMMBHg2OTcwE6QR --MA8xDTALBgNVBAMMBHg2OTgwE6QRMA8xDTALBgNVBAMMBHg2OTkwE6QRMA8xDTAL --BgNVBAMMBHg3MDAwE6QRMA8xDTALBgNVBAMMBHg3MDEwE6QRMA8xDTALBgNVBAMM --BHg3MDIwE6QRMA8xDTALBgNVBAMMBHg3MDMwE6QRMA8xDTALBgNVBAMMBHg3MDQw --E6QRMA8xDTALBgNVBAMMBHg3MDUwE6QRMA8xDTALBgNVBAMMBHg3MDYwE6QRMA8x --DTALBgNVBAMMBHg3MDcwE6QRMA8xDTALBgNVBAMMBHg3MDgwE6QRMA8xDTALBgNV --BAMMBHg3MDkwE6QRMA8xDTALBgNVBAMMBHg3MTAwE6QRMA8xDTALBgNVBAMMBHg3 --MTEwE6QRMA8xDTALBgNVBAMMBHg3MTIwE6QRMA8xDTALBgNVBAMMBHg3MTMwE6QR --MA8xDTALBgNVBAMMBHg3MTQwE6QRMA8xDTALBgNVBAMMBHg3MTUwE6QRMA8xDTAL --BgNVBAMMBHg3MTYwE6QRMA8xDTALBgNVBAMMBHg3MTcwE6QRMA8xDTALBgNVBAMM --BHg3MTgwE6QRMA8xDTALBgNVBAMMBHg3MTkwE6QRMA8xDTALBgNVBAMMBHg3MjAw --E6QRMA8xDTALBgNVBAMMBHg3MjEwE6QRMA8xDTALBgNVBAMMBHg3MjIwE6QRMA8x --DTALBgNVBAMMBHg3MjMwE6QRMA8xDTALBgNVBAMMBHg3MjQwE6QRMA8xDTALBgNV --BAMMBHg3MjUwE6QRMA8xDTALBgNVBAMMBHg3MjYwE6QRMA8xDTALBgNVBAMMBHg3 --MjcwE6QRMA8xDTALBgNVBAMMBHg3MjgwE6QRMA8xDTALBgNVBAMMBHg3MjkwE6QR --MA8xDTALBgNVBAMMBHg3MzAwE6QRMA8xDTALBgNVBAMMBHg3MzEwE6QRMA8xDTAL --BgNVBAMMBHg3MzIwE6QRMA8xDTALBgNVBAMMBHg3MzMwE6QRMA8xDTALBgNVBAMM --BHg3MzQwE6QRMA8xDTALBgNVBAMMBHg3MzUwE6QRMA8xDTALBgNVBAMMBHg3MzYw --E6QRMA8xDTALBgNVBAMMBHg3MzcwE6QRMA8xDTALBgNVBAMMBHg3MzgwE6QRMA8x --DTALBgNVBAMMBHg3MzkwE6QRMA8xDTALBgNVBAMMBHg3NDAwE6QRMA8xDTALBgNV --BAMMBHg3NDEwE6QRMA8xDTALBgNVBAMMBHg3NDIwE6QRMA8xDTALBgNVBAMMBHg3 --NDMwE6QRMA8xDTALBgNVBAMMBHg3NDQwE6QRMA8xDTALBgNVBAMMBHg3NDUwE6QR --MA8xDTALBgNVBAMMBHg3NDYwE6QRMA8xDTALBgNVBAMMBHg3NDcwE6QRMA8xDTAL --BgNVBAMMBHg3NDgwE6QRMA8xDTALBgNVBAMMBHg3NDkwE6QRMA8xDTALBgNVBAMM --BHg3NTAwE6QRMA8xDTALBgNVBAMMBHg3NTEwE6QRMA8xDTALBgNVBAMMBHg3NTIw --E6QRMA8xDTALBgNVBAMMBHg3NTMwE6QRMA8xDTALBgNVBAMMBHg3NTQwE6QRMA8x --DTALBgNVBAMMBHg3NTUwE6QRMA8xDTALBgNVBAMMBHg3NTYwE6QRMA8xDTALBgNV --BAMMBHg3NTcwE6QRMA8xDTALBgNVBAMMBHg3NTgwE6QRMA8xDTALBgNVBAMMBHg3 --NTkwE6QRMA8xDTALBgNVBAMMBHg3NjAwE6QRMA8xDTALBgNVBAMMBHg3NjEwE6QR --MA8xDTALBgNVBAMMBHg3NjIwE6QRMA8xDTALBgNVBAMMBHg3NjMwE6QRMA8xDTAL --BgNVBAMMBHg3NjQwE6QRMA8xDTALBgNVBAMMBHg3NjUwE6QRMA8xDTALBgNVBAMM --BHg3NjYwE6QRMA8xDTALBgNVBAMMBHg3NjcwE6QRMA8xDTALBgNVBAMMBHg3Njgw --E6QRMA8xDTALBgNVBAMMBHg3NjkwE6QRMA8xDTALBgNVBAMMBHg3NzAwE6QRMA8x --DTALBgNVBAMMBHg3NzEwE6QRMA8xDTALBgNVBAMMBHg3NzIwE6QRMA8xDTALBgNV --BAMMBHg3NzMwE6QRMA8xDTALBgNVBAMMBHg3NzQwE6QRMA8xDTALBgNVBAMMBHg3 --NzUwE6QRMA8xDTALBgNVBAMMBHg3NzYwE6QRMA8xDTALBgNVBAMMBHg3NzcwE6QR --MA8xDTALBgNVBAMMBHg3NzgwE6QRMA8xDTALBgNVBAMMBHg3NzkwE6QRMA8xDTAL --BgNVBAMMBHg3ODAwE6QRMA8xDTALBgNVBAMMBHg3ODEwE6QRMA8xDTALBgNVBAMM --BHg3ODIwE6QRMA8xDTALBgNVBAMMBHg3ODMwE6QRMA8xDTALBgNVBAMMBHg3ODQw --E6QRMA8xDTALBgNVBAMMBHg3ODUwE6QRMA8xDTALBgNVBAMMBHg3ODYwE6QRMA8x --DTALBgNVBAMMBHg3ODcwE6QRMA8xDTALBgNVBAMMBHg3ODgwE6QRMA8xDTALBgNV --BAMMBHg3ODkwE6QRMA8xDTALBgNVBAMMBHg3OTAwE6QRMA8xDTALBgNVBAMMBHg3 --OTEwE6QRMA8xDTALBgNVBAMMBHg3OTIwE6QRMA8xDTALBgNVBAMMBHg3OTMwE6QR --MA8xDTALBgNVBAMMBHg3OTQwE6QRMA8xDTALBgNVBAMMBHg3OTUwE6QRMA8xDTAL --BgNVBAMMBHg3OTYwE6QRMA8xDTALBgNVBAMMBHg3OTcwE6QRMA8xDTALBgNVBAMM --BHg3OTgwE6QRMA8xDTALBgNVBAMMBHg3OTkwE6QRMA8xDTALBgNVBAMMBHg4MDAw --E6QRMA8xDTALBgNVBAMMBHg4MDEwE6QRMA8xDTALBgNVBAMMBHg4MDIwE6QRMA8x --DTALBgNVBAMMBHg4MDMwE6QRMA8xDTALBgNVBAMMBHg4MDQwE6QRMA8xDTALBgNV --BAMMBHg4MDUwE6QRMA8xDTALBgNVBAMMBHg4MDYwE6QRMA8xDTALBgNVBAMMBHg4 --MDcwE6QRMA8xDTALBgNVBAMMBHg4MDgwE6QRMA8xDTALBgNVBAMMBHg4MDkwE6QR --MA8xDTALBgNVBAMMBHg4MTAwE6QRMA8xDTALBgNVBAMMBHg4MTEwE6QRMA8xDTAL --BgNVBAMMBHg4MTIwE6QRMA8xDTALBgNVBAMMBHg4MTMwE6QRMA8xDTALBgNVBAMM --BHg4MTQwE6QRMA8xDTALBgNVBAMMBHg4MTUwE6QRMA8xDTALBgNVBAMMBHg4MTYw --E6QRMA8xDTALBgNVBAMMBHg4MTcwE6QRMA8xDTALBgNVBAMMBHg4MTgwE6QRMA8x --DTALBgNVBAMMBHg4MTkwE6QRMA8xDTALBgNVBAMMBHg4MjAwE6QRMA8xDTALBgNV --BAMMBHg4MjEwE6QRMA8xDTALBgNVBAMMBHg4MjIwE6QRMA8xDTALBgNVBAMMBHg4 --MjMwE6QRMA8xDTALBgNVBAMMBHg4MjQwE6QRMA8xDTALBgNVBAMMBHg4MjUwE6QR --MA8xDTALBgNVBAMMBHg4MjYwE6QRMA8xDTALBgNVBAMMBHg4MjcwE6QRMA8xDTAL --BgNVBAMMBHg4MjgwE6QRMA8xDTALBgNVBAMMBHg4MjkwE6QRMA8xDTALBgNVBAMM --BHg4MzAwE6QRMA8xDTALBgNVBAMMBHg4MzEwE6QRMA8xDTALBgNVBAMMBHg4MzIw --E6QRMA8xDTALBgNVBAMMBHg4MzMwE6QRMA8xDTALBgNVBAMMBHg4MzQwE6QRMA8x --DTALBgNVBAMMBHg4MzUwE6QRMA8xDTALBgNVBAMMBHg4MzYwE6QRMA8xDTALBgNV --BAMMBHg4MzcwE6QRMA8xDTALBgNVBAMMBHg4MzgwE6QRMA8xDTALBgNVBAMMBHg4 --MzkwE6QRMA8xDTALBgNVBAMMBHg4NDAwE6QRMA8xDTALBgNVBAMMBHg4NDEwE6QR --MA8xDTALBgNVBAMMBHg4NDIwE6QRMA8xDTALBgNVBAMMBHg4NDMwE6QRMA8xDTAL --BgNVBAMMBHg4NDQwE6QRMA8xDTALBgNVBAMMBHg4NDUwE6QRMA8xDTALBgNVBAMM --BHg4NDYwE6QRMA8xDTALBgNVBAMMBHg4NDcwE6QRMA8xDTALBgNVBAMMBHg4NDgw --E6QRMA8xDTALBgNVBAMMBHg4NDkwE6QRMA8xDTALBgNVBAMMBHg4NTAwE6QRMA8x --DTALBgNVBAMMBHg4NTEwE6QRMA8xDTALBgNVBAMMBHg4NTIwE6QRMA8xDTALBgNV --BAMMBHg4NTMwE6QRMA8xDTALBgNVBAMMBHg4NTQwE6QRMA8xDTALBgNVBAMMBHg4 --NTUwE6QRMA8xDTALBgNVBAMMBHg4NTYwE6QRMA8xDTALBgNVBAMMBHg4NTcwE6QR --MA8xDTALBgNVBAMMBHg4NTgwE6QRMA8xDTALBgNVBAMMBHg4NTkwE6QRMA8xDTAL --BgNVBAMMBHg4NjAwE6QRMA8xDTALBgNVBAMMBHg4NjEwE6QRMA8xDTALBgNVBAMM --BHg4NjIwE6QRMA8xDTALBgNVBAMMBHg4NjMwE6QRMA8xDTALBgNVBAMMBHg4NjQw --E6QRMA8xDTALBgNVBAMMBHg4NjUwE6QRMA8xDTALBgNVBAMMBHg4NjYwE6QRMA8x --DTALBgNVBAMMBHg4NjcwE6QRMA8xDTALBgNVBAMMBHg4NjgwE6QRMA8xDTALBgNV --BAMMBHg4NjkwE6QRMA8xDTALBgNVBAMMBHg4NzAwE6QRMA8xDTALBgNVBAMMBHg4 --NzEwE6QRMA8xDTALBgNVBAMMBHg4NzIwE6QRMA8xDTALBgNVBAMMBHg4NzMwE6QR --MA8xDTALBgNVBAMMBHg4NzQwE6QRMA8xDTALBgNVBAMMBHg4NzUwE6QRMA8xDTAL --BgNVBAMMBHg4NzYwE6QRMA8xDTALBgNVBAMMBHg4NzcwE6QRMA8xDTALBgNVBAMM --BHg4NzgwE6QRMA8xDTALBgNVBAMMBHg4NzkwE6QRMA8xDTALBgNVBAMMBHg4ODAw --E6QRMA8xDTALBgNVBAMMBHg4ODEwE6QRMA8xDTALBgNVBAMMBHg4ODIwE6QRMA8x --DTALBgNVBAMMBHg4ODMwE6QRMA8xDTALBgNVBAMMBHg4ODQwE6QRMA8xDTALBgNV --BAMMBHg4ODUwE6QRMA8xDTALBgNVBAMMBHg4ODYwE6QRMA8xDTALBgNVBAMMBHg4 --ODcwE6QRMA8xDTALBgNVBAMMBHg4ODgwE6QRMA8xDTALBgNVBAMMBHg4ODkwE6QR --MA8xDTALBgNVBAMMBHg4OTAwE6QRMA8xDTALBgNVBAMMBHg4OTEwE6QRMA8xDTAL --BgNVBAMMBHg4OTIwE6QRMA8xDTALBgNVBAMMBHg4OTMwE6QRMA8xDTALBgNVBAMM --BHg4OTQwE6QRMA8xDTALBgNVBAMMBHg4OTUwE6QRMA8xDTALBgNVBAMMBHg4OTYw --E6QRMA8xDTALBgNVBAMMBHg4OTcwE6QRMA8xDTALBgNVBAMMBHg4OTgwE6QRMA8x --DTALBgNVBAMMBHg4OTkwE6QRMA8xDTALBgNVBAMMBHg5MDAwE6QRMA8xDTALBgNV --BAMMBHg5MDEwE6QRMA8xDTALBgNVBAMMBHg5MDIwE6QRMA8xDTALBgNVBAMMBHg5 --MDMwE6QRMA8xDTALBgNVBAMMBHg5MDQwE6QRMA8xDTALBgNVBAMMBHg5MDUwE6QR --MA8xDTALBgNVBAMMBHg5MDYwE6QRMA8xDTALBgNVBAMMBHg5MDcwE6QRMA8xDTAL --BgNVBAMMBHg5MDgwE6QRMA8xDTALBgNVBAMMBHg5MDkwE6QRMA8xDTALBgNVBAMM --BHg5MTAwE6QRMA8xDTALBgNVBAMMBHg5MTEwE6QRMA8xDTALBgNVBAMMBHg5MTIw --E6QRMA8xDTALBgNVBAMMBHg5MTMwE6QRMA8xDTALBgNVBAMMBHg5MTQwE6QRMA8x --DTALBgNVBAMMBHg5MTUwE6QRMA8xDTALBgNVBAMMBHg5MTYwE6QRMA8xDTALBgNV --BAMMBHg5MTcwE6QRMA8xDTALBgNVBAMMBHg5MTgwE6QRMA8xDTALBgNVBAMMBHg5 --MTkwE6QRMA8xDTALBgNVBAMMBHg5MjAwE6QRMA8xDTALBgNVBAMMBHg5MjEwE6QR --MA8xDTALBgNVBAMMBHg5MjIwE6QRMA8xDTALBgNVBAMMBHg5MjMwE6QRMA8xDTAL --BgNVBAMMBHg5MjQwE6QRMA8xDTALBgNVBAMMBHg5MjUwE6QRMA8xDTALBgNVBAMM --BHg5MjYwE6QRMA8xDTALBgNVBAMMBHg5MjcwE6QRMA8xDTALBgNVBAMMBHg5Mjgw --E6QRMA8xDTALBgNVBAMMBHg5MjkwE6QRMA8xDTALBgNVBAMMBHg5MzAwE6QRMA8x --DTALBgNVBAMMBHg5MzEwE6QRMA8xDTALBgNVBAMMBHg5MzIwE6QRMA8xDTALBgNV --BAMMBHg5MzMwE6QRMA8xDTALBgNVBAMMBHg5MzQwE6QRMA8xDTALBgNVBAMMBHg5 --MzUwE6QRMA8xDTALBgNVBAMMBHg5MzYwE6QRMA8xDTALBgNVBAMMBHg5MzcwE6QR --MA8xDTALBgNVBAMMBHg5MzgwE6QRMA8xDTALBgNVBAMMBHg5MzkwE6QRMA8xDTAL --BgNVBAMMBHg5NDAwE6QRMA8xDTALBgNVBAMMBHg5NDEwE6QRMA8xDTALBgNVBAMM --BHg5NDIwE6QRMA8xDTALBgNVBAMMBHg5NDMwE6QRMA8xDTALBgNVBAMMBHg5NDQw --E6QRMA8xDTALBgNVBAMMBHg5NDUwE6QRMA8xDTALBgNVBAMMBHg5NDYwE6QRMA8x --DTALBgNVBAMMBHg5NDcwE6QRMA8xDTALBgNVBAMMBHg5NDgwE6QRMA8xDTALBgNV --BAMMBHg5NDkwE6QRMA8xDTALBgNVBAMMBHg5NTAwE6QRMA8xDTALBgNVBAMMBHg5 --NTEwE6QRMA8xDTALBgNVBAMMBHg5NTIwE6QRMA8xDTALBgNVBAMMBHg5NTMwE6QR --MA8xDTALBgNVBAMMBHg5NTQwE6QRMA8xDTALBgNVBAMMBHg5NTUwE6QRMA8xDTAL --BgNVBAMMBHg5NTYwE6QRMA8xDTALBgNVBAMMBHg5NTcwE6QRMA8xDTALBgNVBAMM --BHg5NTgwE6QRMA8xDTALBgNVBAMMBHg5NTkwE6QRMA8xDTALBgNVBAMMBHg5NjAw --E6QRMA8xDTALBgNVBAMMBHg5NjEwE6QRMA8xDTALBgNVBAMMBHg5NjIwE6QRMA8x --DTALBgNVBAMMBHg5NjMwE6QRMA8xDTALBgNVBAMMBHg5NjQwE6QRMA8xDTALBgNV --BAMMBHg5NjUwE6QRMA8xDTALBgNVBAMMBHg5NjYwE6QRMA8xDTALBgNVBAMMBHg5 --NjcwE6QRMA8xDTALBgNVBAMMBHg5NjgwE6QRMA8xDTALBgNVBAMMBHg5NjkwE6QR --MA8xDTALBgNVBAMMBHg5NzAwE6QRMA8xDTALBgNVBAMMBHg5NzEwE6QRMA8xDTAL --BgNVBAMMBHg5NzIwE6QRMA8xDTALBgNVBAMMBHg5NzMwE6QRMA8xDTALBgNVBAMM --BHg5NzQwE6QRMA8xDTALBgNVBAMMBHg5NzUwE6QRMA8xDTALBgNVBAMMBHg5NzYw --E6QRMA8xDTALBgNVBAMMBHg5NzcwE6QRMA8xDTALBgNVBAMMBHg5NzgwE6QRMA8x --DTALBgNVBAMMBHg5NzkwE6QRMA8xDTALBgNVBAMMBHg5ODAwE6QRMA8xDTALBgNV --BAMMBHg5ODEwE6QRMA8xDTALBgNVBAMMBHg5ODIwE6QRMA8xDTALBgNVBAMMBHg5 --ODMwE6QRMA8xDTALBgNVBAMMBHg5ODQwE6QRMA8xDTALBgNVBAMMBHg5ODUwE6QR --MA8xDTALBgNVBAMMBHg5ODYwE6QRMA8xDTALBgNVBAMMBHg5ODcwE6QRMA8xDTAL --BgNVBAMMBHg5ODgwE6QRMA8xDTALBgNVBAMMBHg5ODkwE6QRMA8xDTALBgNVBAMM --BHg5OTAwE6QRMA8xDTALBgNVBAMMBHg5OTEwE6QRMA8xDTALBgNVBAMMBHg5OTIw --E6QRMA8xDTALBgNVBAMMBHg5OTMwE6QRMA8xDTALBgNVBAMMBHg5OTQwE6QRMA8x --DTALBgNVBAMMBHg5OTUwE6QRMA8xDTALBgNVBAMMBHg5OTYwE6QRMA8xDTALBgNV --BAMMBHg5OTcwE6QRMA8xDTALBgNVBAMMBHg5OTgwE6QRMA8xDTALBgNVBAMMBHg5 --OTkwFKQSMBAxDjAMBgNVBAMMBXgxMDAwMBSkEjAQMQ4wDAYDVQQDDAV4MTAwMTAU --pBIwEDEOMAwGA1UEAwwFeDEwMDIwFKQSMBAxDjAMBgNVBAMMBXgxMDAzMBSkEjAQ --MQ4wDAYDVQQDDAV4MTAwNDAUpBIwEDEOMAwGA1UEAwwFeDEwMDUwFKQSMBAxDjAM --BgNVBAMMBXgxMDA2MBSkEjAQMQ4wDAYDVQQDDAV4MTAwNzAUpBIwEDEOMAwGA1UE --AwwFeDEwMDgwFKQSMBAxDjAMBgNVBAMMBXgxMDA5MBSkEjAQMQ4wDAYDVQQDDAV4 --MTAxMDAUpBIwEDEOMAwGA1UEAwwFeDEwMTEwFKQSMBAxDjAMBgNVBAMMBXgxMDEy --MBSkEjAQMQ4wDAYDVQQDDAV4MTAxMzAUpBIwEDEOMAwGA1UEAwwFeDEwMTQwFKQS --MBAxDjAMBgNVBAMMBXgxMDE1MBSkEjAQMQ4wDAYDVQQDDAV4MTAxNjAUpBIwEDEO --MAwGA1UEAwwFeDEwMTcwFKQSMBAxDjAMBgNVBAMMBXgxMDE4MBSkEjAQMQ4wDAYD --VQQDDAV4MTAxOTAUpBIwEDEOMAwGA1UEAwwFeDEwMjAwFKQSMBAxDjAMBgNVBAMM --BXgxMDIxMBSkEjAQMQ4wDAYDVQQDDAV4MTAyMjAUpBIwEDEOMAwGA1UEAwwFeDEw --MjMwFKQSMBAxDjAMBgNVBAMMBXgxMDI0MA+GDWh0dHA6Ly94ZXN0LzAwD4YNaHR0 --cDovL3hlc3QvMTAPhg1odHRwOi8veGVzdC8yMA+GDWh0dHA6Ly94ZXN0LzMwD4YN --aHR0cDovL3hlc3QvNDAPhg1odHRwOi8veGVzdC81MA+GDWh0dHA6Ly94ZXN0LzYw --D4YNaHR0cDovL3hlc3QvNzAPhg1odHRwOi8veGVzdC84MA+GDWh0dHA6Ly94ZXN0 --LzkwEIYOaHR0cDovL3hlc3QvMTAwEIYOaHR0cDovL3hlc3QvMTEwEIYOaHR0cDov --L3hlc3QvMTIwEIYOaHR0cDovL3hlc3QvMTMwEIYOaHR0cDovL3hlc3QvMTQwEIYO --aHR0cDovL3hlc3QvMTUwEIYOaHR0cDovL3hlc3QvMTYwEIYOaHR0cDovL3hlc3Qv --MTcwEIYOaHR0cDovL3hlc3QvMTgwEIYOaHR0cDovL3hlc3QvMTkwEIYOaHR0cDov --L3hlc3QvMjAwEIYOaHR0cDovL3hlc3QvMjEwEIYOaHR0cDovL3hlc3QvMjIwEIYO --aHR0cDovL3hlc3QvMjMwEIYOaHR0cDovL3hlc3QvMjQwEIYOaHR0cDovL3hlc3Qv --MjUwEIYOaHR0cDovL3hlc3QvMjYwEIYOaHR0cDovL3hlc3QvMjcwEIYOaHR0cDov --L3hlc3QvMjgwEIYOaHR0cDovL3hlc3QvMjkwEIYOaHR0cDovL3hlc3QvMzAwEIYO --aHR0cDovL3hlc3QvMzEwEIYOaHR0cDovL3hlc3QvMzIwEIYOaHR0cDovL3hlc3Qv --MzMwEIYOaHR0cDovL3hlc3QvMzQwEIYOaHR0cDovL3hlc3QvMzUwEIYOaHR0cDov --L3hlc3QvMzYwEIYOaHR0cDovL3hlc3QvMzcwEIYOaHR0cDovL3hlc3QvMzgwEIYO --aHR0cDovL3hlc3QvMzkwEIYOaHR0cDovL3hlc3QvNDAwEIYOaHR0cDovL3hlc3Qv --NDEwEIYOaHR0cDovL3hlc3QvNDIwEIYOaHR0cDovL3hlc3QvNDMwEIYOaHR0cDov --L3hlc3QvNDQwEIYOaHR0cDovL3hlc3QvNDUwEIYOaHR0cDovL3hlc3QvNDYwEIYO --aHR0cDovL3hlc3QvNDcwEIYOaHR0cDovL3hlc3QvNDgwEIYOaHR0cDovL3hlc3Qv --NDkwEIYOaHR0cDovL3hlc3QvNTAwEIYOaHR0cDovL3hlc3QvNTEwEIYOaHR0cDov --L3hlc3QvNTIwEIYOaHR0cDovL3hlc3QvNTMwEIYOaHR0cDovL3hlc3QvNTQwEIYO --aHR0cDovL3hlc3QvNTUwEIYOaHR0cDovL3hlc3QvNTYwEIYOaHR0cDovL3hlc3Qv --NTcwEIYOaHR0cDovL3hlc3QvNTgwEIYOaHR0cDovL3hlc3QvNTkwEIYOaHR0cDov --L3hlc3QvNjAwEIYOaHR0cDovL3hlc3QvNjEwEIYOaHR0cDovL3hlc3QvNjIwEIYO --aHR0cDovL3hlc3QvNjMwEIYOaHR0cDovL3hlc3QvNjQwEIYOaHR0cDovL3hlc3Qv --NjUwEIYOaHR0cDovL3hlc3QvNjYwEIYOaHR0cDovL3hlc3QvNjcwEIYOaHR0cDov --L3hlc3QvNjgwEIYOaHR0cDovL3hlc3QvNjkwEIYOaHR0cDovL3hlc3QvNzAwEIYO --aHR0cDovL3hlc3QvNzEwEIYOaHR0cDovL3hlc3QvNzIwEIYOaHR0cDovL3hlc3Qv --NzMwEIYOaHR0cDovL3hlc3QvNzQwEIYOaHR0cDovL3hlc3QvNzUwEIYOaHR0cDov --L3hlc3QvNzYwEIYOaHR0cDovL3hlc3QvNzcwEIYOaHR0cDovL3hlc3QvNzgwEIYO --aHR0cDovL3hlc3QvNzkwEIYOaHR0cDovL3hlc3QvODAwEIYOaHR0cDovL3hlc3Qv --ODEwEIYOaHR0cDovL3hlc3QvODIwEIYOaHR0cDovL3hlc3QvODMwEIYOaHR0cDov --L3hlc3QvODQwEIYOaHR0cDovL3hlc3QvODUwEIYOaHR0cDovL3hlc3QvODYwEIYO --aHR0cDovL3hlc3QvODcwEIYOaHR0cDovL3hlc3QvODgwEIYOaHR0cDovL3hlc3Qv --ODkwEIYOaHR0cDovL3hlc3QvOTAwEIYOaHR0cDovL3hlc3QvOTEwEIYOaHR0cDov --L3hlc3QvOTIwEIYOaHR0cDovL3hlc3QvOTMwEIYOaHR0cDovL3hlc3QvOTQwEIYO --aHR0cDovL3hlc3QvOTUwEIYOaHR0cDovL3hlc3QvOTYwEIYOaHR0cDovL3hlc3Qv --OTcwEIYOaHR0cDovL3hlc3QvOTgwEIYOaHR0cDovL3hlc3QvOTkwEYYPaHR0cDov --L3hlc3QvMTAwMBGGD2h0dHA6Ly94ZXN0LzEwMTARhg9odHRwOi8veGVzdC8xMDIw --EYYPaHR0cDovL3hlc3QvMTAzMBGGD2h0dHA6Ly94ZXN0LzEwNDARhg9odHRwOi8v --eGVzdC8xMDUwEYYPaHR0cDovL3hlc3QvMTA2MBGGD2h0dHA6Ly94ZXN0LzEwNzAR --hg9odHRwOi8veGVzdC8xMDgwEYYPaHR0cDovL3hlc3QvMTA5MBGGD2h0dHA6Ly94 --ZXN0LzExMDARhg9odHRwOi8veGVzdC8xMTEwEYYPaHR0cDovL3hlc3QvMTEyMBGG --D2h0dHA6Ly94ZXN0LzExMzARhg9odHRwOi8veGVzdC8xMTQwEYYPaHR0cDovL3hl --c3QvMTE1MBGGD2h0dHA6Ly94ZXN0LzExNjARhg9odHRwOi8veGVzdC8xMTcwEYYP --aHR0cDovL3hlc3QvMTE4MBGGD2h0dHA6Ly94ZXN0LzExOTARhg9odHRwOi8veGVz --dC8xMjAwEYYPaHR0cDovL3hlc3QvMTIxMBGGD2h0dHA6Ly94ZXN0LzEyMjARhg9o --dHRwOi8veGVzdC8xMjMwEYYPaHR0cDovL3hlc3QvMTI0MBGGD2h0dHA6Ly94ZXN0 --LzEyNTARhg9odHRwOi8veGVzdC8xMjYwEYYPaHR0cDovL3hlc3QvMTI3MBGGD2h0 --dHA6Ly94ZXN0LzEyODARhg9odHRwOi8veGVzdC8xMjkwEYYPaHR0cDovL3hlc3Qv --MTMwMBGGD2h0dHA6Ly94ZXN0LzEzMTARhg9odHRwOi8veGVzdC8xMzIwEYYPaHR0 --cDovL3hlc3QvMTMzMBGGD2h0dHA6Ly94ZXN0LzEzNDARhg9odHRwOi8veGVzdC8x --MzUwEYYPaHR0cDovL3hlc3QvMTM2MBGGD2h0dHA6Ly94ZXN0LzEzNzARhg9odHRw --Oi8veGVzdC8xMzgwEYYPaHR0cDovL3hlc3QvMTM5MBGGD2h0dHA6Ly94ZXN0LzE0 --MDARhg9odHRwOi8veGVzdC8xNDEwEYYPaHR0cDovL3hlc3QvMTQyMBGGD2h0dHA6 --Ly94ZXN0LzE0MzARhg9odHRwOi8veGVzdC8xNDQwEYYPaHR0cDovL3hlc3QvMTQ1 --MBGGD2h0dHA6Ly94ZXN0LzE0NjARhg9odHRwOi8veGVzdC8xNDcwEYYPaHR0cDov --L3hlc3QvMTQ4MBGGD2h0dHA6Ly94ZXN0LzE0OTARhg9odHRwOi8veGVzdC8xNTAw --EYYPaHR0cDovL3hlc3QvMTUxMBGGD2h0dHA6Ly94ZXN0LzE1MjARhg9odHRwOi8v --eGVzdC8xNTMwEYYPaHR0cDovL3hlc3QvMTU0MBGGD2h0dHA6Ly94ZXN0LzE1NTAR --hg9odHRwOi8veGVzdC8xNTYwEYYPaHR0cDovL3hlc3QvMTU3MBGGD2h0dHA6Ly94 --ZXN0LzE1ODARhg9odHRwOi8veGVzdC8xNTkwEYYPaHR0cDovL3hlc3QvMTYwMBGG --D2h0dHA6Ly94ZXN0LzE2MTARhg9odHRwOi8veGVzdC8xNjIwEYYPaHR0cDovL3hl --c3QvMTYzMBGGD2h0dHA6Ly94ZXN0LzE2NDARhg9odHRwOi8veGVzdC8xNjUwEYYP --aHR0cDovL3hlc3QvMTY2MBGGD2h0dHA6Ly94ZXN0LzE2NzARhg9odHRwOi8veGVz --dC8xNjgwEYYPaHR0cDovL3hlc3QvMTY5MBGGD2h0dHA6Ly94ZXN0LzE3MDARhg9o --dHRwOi8veGVzdC8xNzEwEYYPaHR0cDovL3hlc3QvMTcyMBGGD2h0dHA6Ly94ZXN0 --LzE3MzARhg9odHRwOi8veGVzdC8xNzQwEYYPaHR0cDovL3hlc3QvMTc1MBGGD2h0 --dHA6Ly94ZXN0LzE3NjARhg9odHRwOi8veGVzdC8xNzcwEYYPaHR0cDovL3hlc3Qv --MTc4MBGGD2h0dHA6Ly94ZXN0LzE3OTARhg9odHRwOi8veGVzdC8xODAwEYYPaHR0 --cDovL3hlc3QvMTgxMBGGD2h0dHA6Ly94ZXN0LzE4MjARhg9odHRwOi8veGVzdC8x --ODMwEYYPaHR0cDovL3hlc3QvMTg0MBGGD2h0dHA6Ly94ZXN0LzE4NTARhg9odHRw --Oi8veGVzdC8xODYwEYYPaHR0cDovL3hlc3QvMTg3MBGGD2h0dHA6Ly94ZXN0LzE4 --ODARhg9odHRwOi8veGVzdC8xODkwEYYPaHR0cDovL3hlc3QvMTkwMBGGD2h0dHA6 --Ly94ZXN0LzE5MTARhg9odHRwOi8veGVzdC8xOTIwEYYPaHR0cDovL3hlc3QvMTkz --MBGGD2h0dHA6Ly94ZXN0LzE5NDARhg9odHRwOi8veGVzdC8xOTUwEYYPaHR0cDov --L3hlc3QvMTk2MBGGD2h0dHA6Ly94ZXN0LzE5NzARhg9odHRwOi8veGVzdC8xOTgw --EYYPaHR0cDovL3hlc3QvMTk5MBGGD2h0dHA6Ly94ZXN0LzIwMDARhg9odHRwOi8v --eGVzdC8yMDEwEYYPaHR0cDovL3hlc3QvMjAyMBGGD2h0dHA6Ly94ZXN0LzIwMzAR --hg9odHRwOi8veGVzdC8yMDQwEYYPaHR0cDovL3hlc3QvMjA1MBGGD2h0dHA6Ly94 --ZXN0LzIwNjARhg9odHRwOi8veGVzdC8yMDcwEYYPaHR0cDovL3hlc3QvMjA4MBGG --D2h0dHA6Ly94ZXN0LzIwOTARhg9odHRwOi8veGVzdC8yMTAwEYYPaHR0cDovL3hl --c3QvMjExMBGGD2h0dHA6Ly94ZXN0LzIxMjARhg9odHRwOi8veGVzdC8yMTMwEYYP --aHR0cDovL3hlc3QvMjE0MBGGD2h0dHA6Ly94ZXN0LzIxNTARhg9odHRwOi8veGVz --dC8yMTYwEYYPaHR0cDovL3hlc3QvMjE3MBGGD2h0dHA6Ly94ZXN0LzIxODARhg9o --dHRwOi8veGVzdC8yMTkwEYYPaHR0cDovL3hlc3QvMjIwMBGGD2h0dHA6Ly94ZXN0 --LzIyMTARhg9odHRwOi8veGVzdC8yMjIwEYYPaHR0cDovL3hlc3QvMjIzMBGGD2h0 --dHA6Ly94ZXN0LzIyNDARhg9odHRwOi8veGVzdC8yMjUwEYYPaHR0cDovL3hlc3Qv --MjI2MBGGD2h0dHA6Ly94ZXN0LzIyNzARhg9odHRwOi8veGVzdC8yMjgwEYYPaHR0 --cDovL3hlc3QvMjI5MBGGD2h0dHA6Ly94ZXN0LzIzMDARhg9odHRwOi8veGVzdC8y --MzEwEYYPaHR0cDovL3hlc3QvMjMyMBGGD2h0dHA6Ly94ZXN0LzIzMzARhg9odHRw --Oi8veGVzdC8yMzQwEYYPaHR0cDovL3hlc3QvMjM1MBGGD2h0dHA6Ly94ZXN0LzIz --NjARhg9odHRwOi8veGVzdC8yMzcwEYYPaHR0cDovL3hlc3QvMjM4MBGGD2h0dHA6 --Ly94ZXN0LzIzOTARhg9odHRwOi8veGVzdC8yNDAwEYYPaHR0cDovL3hlc3QvMjQx --MBGGD2h0dHA6Ly94ZXN0LzI0MjARhg9odHRwOi8veGVzdC8yNDMwEYYPaHR0cDov --L3hlc3QvMjQ0MBGGD2h0dHA6Ly94ZXN0LzI0NTARhg9odHRwOi8veGVzdC8yNDYw --EYYPaHR0cDovL3hlc3QvMjQ3MBGGD2h0dHA6Ly94ZXN0LzI0ODARhg9odHRwOi8v --eGVzdC8yNDkwEYYPaHR0cDovL3hlc3QvMjUwMBGGD2h0dHA6Ly94ZXN0LzI1MTAR --hg9odHRwOi8veGVzdC8yNTIwEYYPaHR0cDovL3hlc3QvMjUzMBGGD2h0dHA6Ly94 --ZXN0LzI1NDARhg9odHRwOi8veGVzdC8yNTUwEYYPaHR0cDovL3hlc3QvMjU2MBGG --D2h0dHA6Ly94ZXN0LzI1NzARhg9odHRwOi8veGVzdC8yNTgwEYYPaHR0cDovL3hl --c3QvMjU5MBGGD2h0dHA6Ly94ZXN0LzI2MDARhg9odHRwOi8veGVzdC8yNjEwEYYP --aHR0cDovL3hlc3QvMjYyMBGGD2h0dHA6Ly94ZXN0LzI2MzARhg9odHRwOi8veGVz --dC8yNjQwEYYPaHR0cDovL3hlc3QvMjY1MBGGD2h0dHA6Ly94ZXN0LzI2NjARhg9o --dHRwOi8veGVzdC8yNjcwEYYPaHR0cDovL3hlc3QvMjY4MBGGD2h0dHA6Ly94ZXN0 --LzI2OTARhg9odHRwOi8veGVzdC8yNzAwEYYPaHR0cDovL3hlc3QvMjcxMBGGD2h0 --dHA6Ly94ZXN0LzI3MjARhg9odHRwOi8veGVzdC8yNzMwEYYPaHR0cDovL3hlc3Qv --Mjc0MBGGD2h0dHA6Ly94ZXN0LzI3NTARhg9odHRwOi8veGVzdC8yNzYwEYYPaHR0 --cDovL3hlc3QvMjc3MBGGD2h0dHA6Ly94ZXN0LzI3ODARhg9odHRwOi8veGVzdC8y --NzkwEYYPaHR0cDovL3hlc3QvMjgwMBGGD2h0dHA6Ly94ZXN0LzI4MTARhg9odHRw --Oi8veGVzdC8yODIwEYYPaHR0cDovL3hlc3QvMjgzMBGGD2h0dHA6Ly94ZXN0LzI4 --NDARhg9odHRwOi8veGVzdC8yODUwEYYPaHR0cDovL3hlc3QvMjg2MBGGD2h0dHA6 --Ly94ZXN0LzI4NzARhg9odHRwOi8veGVzdC8yODgwEYYPaHR0cDovL3hlc3QvMjg5 --MBGGD2h0dHA6Ly94ZXN0LzI5MDARhg9odHRwOi8veGVzdC8yOTEwEYYPaHR0cDov --L3hlc3QvMjkyMBGGD2h0dHA6Ly94ZXN0LzI5MzARhg9odHRwOi8veGVzdC8yOTQw --EYYPaHR0cDovL3hlc3QvMjk1MBGGD2h0dHA6Ly94ZXN0LzI5NjARhg9odHRwOi8v --eGVzdC8yOTcwEYYPaHR0cDovL3hlc3QvMjk4MBGGD2h0dHA6Ly94ZXN0LzI5OTAR --hg9odHRwOi8veGVzdC8zMDAwEYYPaHR0cDovL3hlc3QvMzAxMBGGD2h0dHA6Ly94 --ZXN0LzMwMjARhg9odHRwOi8veGVzdC8zMDMwEYYPaHR0cDovL3hlc3QvMzA0MBGG --D2h0dHA6Ly94ZXN0LzMwNTARhg9odHRwOi8veGVzdC8zMDYwEYYPaHR0cDovL3hl --c3QvMzA3MBGGD2h0dHA6Ly94ZXN0LzMwODARhg9odHRwOi8veGVzdC8zMDkwEYYP --aHR0cDovL3hlc3QvMzEwMBGGD2h0dHA6Ly94ZXN0LzMxMTARhg9odHRwOi8veGVz --dC8zMTIwEYYPaHR0cDovL3hlc3QvMzEzMBGGD2h0dHA6Ly94ZXN0LzMxNDARhg9o --dHRwOi8veGVzdC8zMTUwEYYPaHR0cDovL3hlc3QvMzE2MBGGD2h0dHA6Ly94ZXN0 --LzMxNzARhg9odHRwOi8veGVzdC8zMTgwEYYPaHR0cDovL3hlc3QvMzE5MBGGD2h0 --dHA6Ly94ZXN0LzMyMDARhg9odHRwOi8veGVzdC8zMjEwEYYPaHR0cDovL3hlc3Qv --MzIyMBGGD2h0dHA6Ly94ZXN0LzMyMzARhg9odHRwOi8veGVzdC8zMjQwEYYPaHR0 --cDovL3hlc3QvMzI1MBGGD2h0dHA6Ly94ZXN0LzMyNjARhg9odHRwOi8veGVzdC8z --MjcwEYYPaHR0cDovL3hlc3QvMzI4MBGGD2h0dHA6Ly94ZXN0LzMyOTARhg9odHRw --Oi8veGVzdC8zMzAwEYYPaHR0cDovL3hlc3QvMzMxMBGGD2h0dHA6Ly94ZXN0LzMz --MjARhg9odHRwOi8veGVzdC8zMzMwEYYPaHR0cDovL3hlc3QvMzM0MBGGD2h0dHA6 --Ly94ZXN0LzMzNTARhg9odHRwOi8veGVzdC8zMzYwEYYPaHR0cDovL3hlc3QvMzM3 --MBGGD2h0dHA6Ly94ZXN0LzMzODARhg9odHRwOi8veGVzdC8zMzkwEYYPaHR0cDov --L3hlc3QvMzQwMBGGD2h0dHA6Ly94ZXN0LzM0MTARhg9odHRwOi8veGVzdC8zNDIw --EYYPaHR0cDovL3hlc3QvMzQzMBGGD2h0dHA6Ly94ZXN0LzM0NDARhg9odHRwOi8v --eGVzdC8zNDUwEYYPaHR0cDovL3hlc3QvMzQ2MBGGD2h0dHA6Ly94ZXN0LzM0NzAR --hg9odHRwOi8veGVzdC8zNDgwEYYPaHR0cDovL3hlc3QvMzQ5MBGGD2h0dHA6Ly94 --ZXN0LzM1MDARhg9odHRwOi8veGVzdC8zNTEwEYYPaHR0cDovL3hlc3QvMzUyMBGG --D2h0dHA6Ly94ZXN0LzM1MzARhg9odHRwOi8veGVzdC8zNTQwEYYPaHR0cDovL3hl --c3QvMzU1MBGGD2h0dHA6Ly94ZXN0LzM1NjARhg9odHRwOi8veGVzdC8zNTcwEYYP --aHR0cDovL3hlc3QvMzU4MBGGD2h0dHA6Ly94ZXN0LzM1OTARhg9odHRwOi8veGVz --dC8zNjAwEYYPaHR0cDovL3hlc3QvMzYxMBGGD2h0dHA6Ly94ZXN0LzM2MjARhg9o --dHRwOi8veGVzdC8zNjMwEYYPaHR0cDovL3hlc3QvMzY0MBGGD2h0dHA6Ly94ZXN0 --LzM2NTARhg9odHRwOi8veGVzdC8zNjYwEYYPaHR0cDovL3hlc3QvMzY3MBGGD2h0 --dHA6Ly94ZXN0LzM2ODARhg9odHRwOi8veGVzdC8zNjkwEYYPaHR0cDovL3hlc3Qv --MzcwMBGGD2h0dHA6Ly94ZXN0LzM3MTARhg9odHRwOi8veGVzdC8zNzIwEYYPaHR0 --cDovL3hlc3QvMzczMBGGD2h0dHA6Ly94ZXN0LzM3NDARhg9odHRwOi8veGVzdC8z --NzUwEYYPaHR0cDovL3hlc3QvMzc2MBGGD2h0dHA6Ly94ZXN0LzM3NzARhg9odHRw --Oi8veGVzdC8zNzgwEYYPaHR0cDovL3hlc3QvMzc5MBGGD2h0dHA6Ly94ZXN0LzM4 --MDARhg9odHRwOi8veGVzdC8zODEwEYYPaHR0cDovL3hlc3QvMzgyMBGGD2h0dHA6 --Ly94ZXN0LzM4MzARhg9odHRwOi8veGVzdC8zODQwEYYPaHR0cDovL3hlc3QvMzg1 --MBGGD2h0dHA6Ly94ZXN0LzM4NjARhg9odHRwOi8veGVzdC8zODcwEYYPaHR0cDov --L3hlc3QvMzg4MBGGD2h0dHA6Ly94ZXN0LzM4OTARhg9odHRwOi8veGVzdC8zOTAw --EYYPaHR0cDovL3hlc3QvMzkxMBGGD2h0dHA6Ly94ZXN0LzM5MjARhg9odHRwOi8v --eGVzdC8zOTMwEYYPaHR0cDovL3hlc3QvMzk0MBGGD2h0dHA6Ly94ZXN0LzM5NTAR --hg9odHRwOi8veGVzdC8zOTYwEYYPaHR0cDovL3hlc3QvMzk3MBGGD2h0dHA6Ly94 --ZXN0LzM5ODARhg9odHRwOi8veGVzdC8zOTkwEYYPaHR0cDovL3hlc3QvNDAwMBGG --D2h0dHA6Ly94ZXN0LzQwMTARhg9odHRwOi8veGVzdC80MDIwEYYPaHR0cDovL3hl --c3QvNDAzMBGGD2h0dHA6Ly94ZXN0LzQwNDARhg9odHRwOi8veGVzdC80MDUwEYYP --aHR0cDovL3hlc3QvNDA2MBGGD2h0dHA6Ly94ZXN0LzQwNzARhg9odHRwOi8veGVz --dC80MDgwEYYPaHR0cDovL3hlc3QvNDA5MBGGD2h0dHA6Ly94ZXN0LzQxMDARhg9o --dHRwOi8veGVzdC80MTEwEYYPaHR0cDovL3hlc3QvNDEyMBGGD2h0dHA6Ly94ZXN0 --LzQxMzARhg9odHRwOi8veGVzdC80MTQwEYYPaHR0cDovL3hlc3QvNDE1MBGGD2h0 --dHA6Ly94ZXN0LzQxNjARhg9odHRwOi8veGVzdC80MTcwEYYPaHR0cDovL3hlc3Qv --NDE4MBGGD2h0dHA6Ly94ZXN0LzQxOTARhg9odHRwOi8veGVzdC80MjAwEYYPaHR0 --cDovL3hlc3QvNDIxMBGGD2h0dHA6Ly94ZXN0LzQyMjARhg9odHRwOi8veGVzdC80 --MjMwEYYPaHR0cDovL3hlc3QvNDI0MBGGD2h0dHA6Ly94ZXN0LzQyNTARhg9odHRw --Oi8veGVzdC80MjYwEYYPaHR0cDovL3hlc3QvNDI3MBGGD2h0dHA6Ly94ZXN0LzQy --ODARhg9odHRwOi8veGVzdC80MjkwEYYPaHR0cDovL3hlc3QvNDMwMBGGD2h0dHA6 --Ly94ZXN0LzQzMTARhg9odHRwOi8veGVzdC80MzIwEYYPaHR0cDovL3hlc3QvNDMz --MBGGD2h0dHA6Ly94ZXN0LzQzNDARhg9odHRwOi8veGVzdC80MzUwEYYPaHR0cDov --L3hlc3QvNDM2MBGGD2h0dHA6Ly94ZXN0LzQzNzARhg9odHRwOi8veGVzdC80Mzgw --EYYPaHR0cDovL3hlc3QvNDM5MBGGD2h0dHA6Ly94ZXN0LzQ0MDARhg9odHRwOi8v --eGVzdC80NDEwEYYPaHR0cDovL3hlc3QvNDQyMBGGD2h0dHA6Ly94ZXN0LzQ0MzAR --hg9odHRwOi8veGVzdC80NDQwEYYPaHR0cDovL3hlc3QvNDQ1MBGGD2h0dHA6Ly94 --ZXN0LzQ0NjARhg9odHRwOi8veGVzdC80NDcwEYYPaHR0cDovL3hlc3QvNDQ4MBGG --D2h0dHA6Ly94ZXN0LzQ0OTARhg9odHRwOi8veGVzdC80NTAwEYYPaHR0cDovL3hl --c3QvNDUxMBGGD2h0dHA6Ly94ZXN0LzQ1MjARhg9odHRwOi8veGVzdC80NTMwEYYP --aHR0cDovL3hlc3QvNDU0MBGGD2h0dHA6Ly94ZXN0LzQ1NTARhg9odHRwOi8veGVz --dC80NTYwEYYPaHR0cDovL3hlc3QvNDU3MBGGD2h0dHA6Ly94ZXN0LzQ1ODARhg9o --dHRwOi8veGVzdC80NTkwEYYPaHR0cDovL3hlc3QvNDYwMBGGD2h0dHA6Ly94ZXN0 --LzQ2MTARhg9odHRwOi8veGVzdC80NjIwEYYPaHR0cDovL3hlc3QvNDYzMBGGD2h0 --dHA6Ly94ZXN0LzQ2NDARhg9odHRwOi8veGVzdC80NjUwEYYPaHR0cDovL3hlc3Qv --NDY2MBGGD2h0dHA6Ly94ZXN0LzQ2NzARhg9odHRwOi8veGVzdC80NjgwEYYPaHR0 --cDovL3hlc3QvNDY5MBGGD2h0dHA6Ly94ZXN0LzQ3MDARhg9odHRwOi8veGVzdC80 --NzEwEYYPaHR0cDovL3hlc3QvNDcyMBGGD2h0dHA6Ly94ZXN0LzQ3MzARhg9odHRw --Oi8veGVzdC80NzQwEYYPaHR0cDovL3hlc3QvNDc1MBGGD2h0dHA6Ly94ZXN0LzQ3 --NjARhg9odHRwOi8veGVzdC80NzcwEYYPaHR0cDovL3hlc3QvNDc4MBGGD2h0dHA6 --Ly94ZXN0LzQ3OTARhg9odHRwOi8veGVzdC80ODAwEYYPaHR0cDovL3hlc3QvNDgx --MBGGD2h0dHA6Ly94ZXN0LzQ4MjARhg9odHRwOi8veGVzdC80ODMwEYYPaHR0cDov --L3hlc3QvNDg0MBGGD2h0dHA6Ly94ZXN0LzQ4NTARhg9odHRwOi8veGVzdC80ODYw --EYYPaHR0cDovL3hlc3QvNDg3MBGGD2h0dHA6Ly94ZXN0LzQ4ODARhg9odHRwOi8v --eGVzdC80ODkwEYYPaHR0cDovL3hlc3QvNDkwMBGGD2h0dHA6Ly94ZXN0LzQ5MTAR --hg9odHRwOi8veGVzdC80OTIwEYYPaHR0cDovL3hlc3QvNDkzMBGGD2h0dHA6Ly94 --ZXN0LzQ5NDARhg9odHRwOi8veGVzdC80OTUwEYYPaHR0cDovL3hlc3QvNDk2MBGG --D2h0dHA6Ly94ZXN0LzQ5NzARhg9odHRwOi8veGVzdC80OTgwEYYPaHR0cDovL3hl --c3QvNDk5MBGGD2h0dHA6Ly94ZXN0LzUwMDARhg9odHRwOi8veGVzdC81MDEwEYYP --aHR0cDovL3hlc3QvNTAyMBGGD2h0dHA6Ly94ZXN0LzUwMzARhg9odHRwOi8veGVz --dC81MDQwEYYPaHR0cDovL3hlc3QvNTA1MBGGD2h0dHA6Ly94ZXN0LzUwNjARhg9o --dHRwOi8veGVzdC81MDcwEYYPaHR0cDovL3hlc3QvNTA4MBGGD2h0dHA6Ly94ZXN0 --LzUwOTARhg9odHRwOi8veGVzdC81MTAwEYYPaHR0cDovL3hlc3QvNTExMBGGD2h0 --dHA6Ly94ZXN0LzUxMjARhg9odHRwOi8veGVzdC81MTMwEYYPaHR0cDovL3hlc3Qv --NTE0MBGGD2h0dHA6Ly94ZXN0LzUxNTARhg9odHRwOi8veGVzdC81MTYwEYYPaHR0 --cDovL3hlc3QvNTE3MBGGD2h0dHA6Ly94ZXN0LzUxODARhg9odHRwOi8veGVzdC81 --MTkwEYYPaHR0cDovL3hlc3QvNTIwMBGGD2h0dHA6Ly94ZXN0LzUyMTARhg9odHRw --Oi8veGVzdC81MjIwEYYPaHR0cDovL3hlc3QvNTIzMBGGD2h0dHA6Ly94ZXN0LzUy --NDARhg9odHRwOi8veGVzdC81MjUwEYYPaHR0cDovL3hlc3QvNTI2MBGGD2h0dHA6 --Ly94ZXN0LzUyNzARhg9odHRwOi8veGVzdC81MjgwEYYPaHR0cDovL3hlc3QvNTI5 --MBGGD2h0dHA6Ly94ZXN0LzUzMDARhg9odHRwOi8veGVzdC81MzEwEYYPaHR0cDov --L3hlc3QvNTMyMBGGD2h0dHA6Ly94ZXN0LzUzMzARhg9odHRwOi8veGVzdC81MzQw --EYYPaHR0cDovL3hlc3QvNTM1MBGGD2h0dHA6Ly94ZXN0LzUzNjARhg9odHRwOi8v --eGVzdC81MzcwEYYPaHR0cDovL3hlc3QvNTM4MBGGD2h0dHA6Ly94ZXN0LzUzOTAR --hg9odHRwOi8veGVzdC81NDAwEYYPaHR0cDovL3hlc3QvNTQxMBGGD2h0dHA6Ly94 --ZXN0LzU0MjARhg9odHRwOi8veGVzdC81NDMwEYYPaHR0cDovL3hlc3QvNTQ0MBGG --D2h0dHA6Ly94ZXN0LzU0NTARhg9odHRwOi8veGVzdC81NDYwEYYPaHR0cDovL3hl --c3QvNTQ3MBGGD2h0dHA6Ly94ZXN0LzU0ODARhg9odHRwOi8veGVzdC81NDkwEYYP --aHR0cDovL3hlc3QvNTUwMBGGD2h0dHA6Ly94ZXN0LzU1MTARhg9odHRwOi8veGVz --dC81NTIwEYYPaHR0cDovL3hlc3QvNTUzMBGGD2h0dHA6Ly94ZXN0LzU1NDARhg9o --dHRwOi8veGVzdC81NTUwEYYPaHR0cDovL3hlc3QvNTU2MBGGD2h0dHA6Ly94ZXN0 --LzU1NzARhg9odHRwOi8veGVzdC81NTgwEYYPaHR0cDovL3hlc3QvNTU5MBGGD2h0 --dHA6Ly94ZXN0LzU2MDARhg9odHRwOi8veGVzdC81NjEwEYYPaHR0cDovL3hlc3Qv --NTYyMBGGD2h0dHA6Ly94ZXN0LzU2MzARhg9odHRwOi8veGVzdC81NjQwEYYPaHR0 --cDovL3hlc3QvNTY1MBGGD2h0dHA6Ly94ZXN0LzU2NjARhg9odHRwOi8veGVzdC81 --NjcwEYYPaHR0cDovL3hlc3QvNTY4MBGGD2h0dHA6Ly94ZXN0LzU2OTARhg9odHRw --Oi8veGVzdC81NzAwEYYPaHR0cDovL3hlc3QvNTcxMBGGD2h0dHA6Ly94ZXN0LzU3 --MjARhg9odHRwOi8veGVzdC81NzMwEYYPaHR0cDovL3hlc3QvNTc0MBGGD2h0dHA6 --Ly94ZXN0LzU3NTARhg9odHRwOi8veGVzdC81NzYwEYYPaHR0cDovL3hlc3QvNTc3 --MBGGD2h0dHA6Ly94ZXN0LzU3ODARhg9odHRwOi8veGVzdC81NzkwEYYPaHR0cDov --L3hlc3QvNTgwMBGGD2h0dHA6Ly94ZXN0LzU4MTARhg9odHRwOi8veGVzdC81ODIw --EYYPaHR0cDovL3hlc3QvNTgzMBGGD2h0dHA6Ly94ZXN0LzU4NDARhg9odHRwOi8v --eGVzdC81ODUwEYYPaHR0cDovL3hlc3QvNTg2MBGGD2h0dHA6Ly94ZXN0LzU4NzAR --hg9odHRwOi8veGVzdC81ODgwEYYPaHR0cDovL3hlc3QvNTg5MBGGD2h0dHA6Ly94 --ZXN0LzU5MDARhg9odHRwOi8veGVzdC81OTEwEYYPaHR0cDovL3hlc3QvNTkyMBGG --D2h0dHA6Ly94ZXN0LzU5MzARhg9odHRwOi8veGVzdC81OTQwEYYPaHR0cDovL3hl --c3QvNTk1MBGGD2h0dHA6Ly94ZXN0LzU5NjARhg9odHRwOi8veGVzdC81OTcwEYYP --aHR0cDovL3hlc3QvNTk4MBGGD2h0dHA6Ly94ZXN0LzU5OTARhg9odHRwOi8veGVz --dC82MDAwEYYPaHR0cDovL3hlc3QvNjAxMBGGD2h0dHA6Ly94ZXN0LzYwMjARhg9o --dHRwOi8veGVzdC82MDMwEYYPaHR0cDovL3hlc3QvNjA0MBGGD2h0dHA6Ly94ZXN0 --LzYwNTARhg9odHRwOi8veGVzdC82MDYwEYYPaHR0cDovL3hlc3QvNjA3MBGGD2h0 --dHA6Ly94ZXN0LzYwODARhg9odHRwOi8veGVzdC82MDkwEYYPaHR0cDovL3hlc3Qv --NjEwMBGGD2h0dHA6Ly94ZXN0LzYxMTARhg9odHRwOi8veGVzdC82MTIwEYYPaHR0 --cDovL3hlc3QvNjEzMBGGD2h0dHA6Ly94ZXN0LzYxNDARhg9odHRwOi8veGVzdC82 --MTUwEYYPaHR0cDovL3hlc3QvNjE2MBGGD2h0dHA6Ly94ZXN0LzYxNzARhg9odHRw --Oi8veGVzdC82MTgwEYYPaHR0cDovL3hlc3QvNjE5MBGGD2h0dHA6Ly94ZXN0LzYy --MDARhg9odHRwOi8veGVzdC82MjEwEYYPaHR0cDovL3hlc3QvNjIyMBGGD2h0dHA6 --Ly94ZXN0LzYyMzARhg9odHRwOi8veGVzdC82MjQwEYYPaHR0cDovL3hlc3QvNjI1 --MBGGD2h0dHA6Ly94ZXN0LzYyNjARhg9odHRwOi8veGVzdC82MjcwEYYPaHR0cDov --L3hlc3QvNjI4MBGGD2h0dHA6Ly94ZXN0LzYyOTARhg9odHRwOi8veGVzdC82MzAw --EYYPaHR0cDovL3hlc3QvNjMxMBGGD2h0dHA6Ly94ZXN0LzYzMjARhg9odHRwOi8v --eGVzdC82MzMwEYYPaHR0cDovL3hlc3QvNjM0MBGGD2h0dHA6Ly94ZXN0LzYzNTAR --hg9odHRwOi8veGVzdC82MzYwEYYPaHR0cDovL3hlc3QvNjM3MBGGD2h0dHA6Ly94 --ZXN0LzYzODARhg9odHRwOi8veGVzdC82MzkwEYYPaHR0cDovL3hlc3QvNjQwMBGG --D2h0dHA6Ly94ZXN0LzY0MTARhg9odHRwOi8veGVzdC82NDIwEYYPaHR0cDovL3hl --c3QvNjQzMBGGD2h0dHA6Ly94ZXN0LzY0NDARhg9odHRwOi8veGVzdC82NDUwEYYP --aHR0cDovL3hlc3QvNjQ2MBGGD2h0dHA6Ly94ZXN0LzY0NzARhg9odHRwOi8veGVz --dC82NDgwEYYPaHR0cDovL3hlc3QvNjQ5MBGGD2h0dHA6Ly94ZXN0LzY1MDARhg9o --dHRwOi8veGVzdC82NTEwEYYPaHR0cDovL3hlc3QvNjUyMBGGD2h0dHA6Ly94ZXN0 --LzY1MzARhg9odHRwOi8veGVzdC82NTQwEYYPaHR0cDovL3hlc3QvNjU1MBGGD2h0 --dHA6Ly94ZXN0LzY1NjARhg9odHRwOi8veGVzdC82NTcwEYYPaHR0cDovL3hlc3Qv --NjU4MBGGD2h0dHA6Ly94ZXN0LzY1OTARhg9odHRwOi8veGVzdC82NjAwEYYPaHR0 --cDovL3hlc3QvNjYxMBGGD2h0dHA6Ly94ZXN0LzY2MjARhg9odHRwOi8veGVzdC82 --NjMwEYYPaHR0cDovL3hlc3QvNjY0MBGGD2h0dHA6Ly94ZXN0LzY2NTARhg9odHRw --Oi8veGVzdC82NjYwEYYPaHR0cDovL3hlc3QvNjY3MBGGD2h0dHA6Ly94ZXN0LzY2 --ODARhg9odHRwOi8veGVzdC82NjkwEYYPaHR0cDovL3hlc3QvNjcwMBGGD2h0dHA6 --Ly94ZXN0LzY3MTARhg9odHRwOi8veGVzdC82NzIwEYYPaHR0cDovL3hlc3QvNjcz --MBGGD2h0dHA6Ly94ZXN0LzY3NDARhg9odHRwOi8veGVzdC82NzUwEYYPaHR0cDov --L3hlc3QvNjc2MBGGD2h0dHA6Ly94ZXN0LzY3NzARhg9odHRwOi8veGVzdC82Nzgw --EYYPaHR0cDovL3hlc3QvNjc5MBGGD2h0dHA6Ly94ZXN0LzY4MDARhg9odHRwOi8v --eGVzdC82ODEwEYYPaHR0cDovL3hlc3QvNjgyMBGGD2h0dHA6Ly94ZXN0LzY4MzAR --hg9odHRwOi8veGVzdC82ODQwEYYPaHR0cDovL3hlc3QvNjg1MBGGD2h0dHA6Ly94 --ZXN0LzY4NjARhg9odHRwOi8veGVzdC82ODcwEYYPaHR0cDovL3hlc3QvNjg4MBGG --D2h0dHA6Ly94ZXN0LzY4OTARhg9odHRwOi8veGVzdC82OTAwEYYPaHR0cDovL3hl --c3QvNjkxMBGGD2h0dHA6Ly94ZXN0LzY5MjARhg9odHRwOi8veGVzdC82OTMwEYYP --aHR0cDovL3hlc3QvNjk0MBGGD2h0dHA6Ly94ZXN0LzY5NTARhg9odHRwOi8veGVz --dC82OTYwEYYPaHR0cDovL3hlc3QvNjk3MBGGD2h0dHA6Ly94ZXN0LzY5ODARhg9o --dHRwOi8veGVzdC82OTkwEYYPaHR0cDovL3hlc3QvNzAwMBGGD2h0dHA6Ly94ZXN0 --LzcwMTARhg9odHRwOi8veGVzdC83MDIwEYYPaHR0cDovL3hlc3QvNzAzMBGGD2h0 --dHA6Ly94ZXN0LzcwNDARhg9odHRwOi8veGVzdC83MDUwEYYPaHR0cDovL3hlc3Qv --NzA2MBGGD2h0dHA6Ly94ZXN0LzcwNzARhg9odHRwOi8veGVzdC83MDgwEYYPaHR0 --cDovL3hlc3QvNzA5MBGGD2h0dHA6Ly94ZXN0LzcxMDARhg9odHRwOi8veGVzdC83 --MTEwEYYPaHR0cDovL3hlc3QvNzEyMBGGD2h0dHA6Ly94ZXN0LzcxMzARhg9odHRw --Oi8veGVzdC83MTQwEYYPaHR0cDovL3hlc3QvNzE1MBGGD2h0dHA6Ly94ZXN0Lzcx --NjARhg9odHRwOi8veGVzdC83MTcwEYYPaHR0cDovL3hlc3QvNzE4MBGGD2h0dHA6 --Ly94ZXN0LzcxOTARhg9odHRwOi8veGVzdC83MjAwEYYPaHR0cDovL3hlc3QvNzIx --MBGGD2h0dHA6Ly94ZXN0LzcyMjARhg9odHRwOi8veGVzdC83MjMwEYYPaHR0cDov --L3hlc3QvNzI0MBGGD2h0dHA6Ly94ZXN0LzcyNTARhg9odHRwOi8veGVzdC83MjYw --EYYPaHR0cDovL3hlc3QvNzI3MBGGD2h0dHA6Ly94ZXN0LzcyODARhg9odHRwOi8v --eGVzdC83MjkwEYYPaHR0cDovL3hlc3QvNzMwMBGGD2h0dHA6Ly94ZXN0LzczMTAR --hg9odHRwOi8veGVzdC83MzIwEYYPaHR0cDovL3hlc3QvNzMzMBGGD2h0dHA6Ly94 --ZXN0LzczNDARhg9odHRwOi8veGVzdC83MzUwEYYPaHR0cDovL3hlc3QvNzM2MBGG --D2h0dHA6Ly94ZXN0LzczNzARhg9odHRwOi8veGVzdC83MzgwEYYPaHR0cDovL3hl --c3QvNzM5MBGGD2h0dHA6Ly94ZXN0Lzc0MDARhg9odHRwOi8veGVzdC83NDEwEYYP --aHR0cDovL3hlc3QvNzQyMBGGD2h0dHA6Ly94ZXN0Lzc0MzARhg9odHRwOi8veGVz --dC83NDQwEYYPaHR0cDovL3hlc3QvNzQ1MBGGD2h0dHA6Ly94ZXN0Lzc0NjARhg9o --dHRwOi8veGVzdC83NDcwEYYPaHR0cDovL3hlc3QvNzQ4MBGGD2h0dHA6Ly94ZXN0 --Lzc0OTARhg9odHRwOi8veGVzdC83NTAwEYYPaHR0cDovL3hlc3QvNzUxMBGGD2h0 --dHA6Ly94ZXN0Lzc1MjARhg9odHRwOi8veGVzdC83NTMwEYYPaHR0cDovL3hlc3Qv --NzU0MBGGD2h0dHA6Ly94ZXN0Lzc1NTARhg9odHRwOi8veGVzdC83NTYwEYYPaHR0 --cDovL3hlc3QvNzU3MBGGD2h0dHA6Ly94ZXN0Lzc1ODARhg9odHRwOi8veGVzdC83 --NTkwEYYPaHR0cDovL3hlc3QvNzYwMBGGD2h0dHA6Ly94ZXN0Lzc2MTARhg9odHRw --Oi8veGVzdC83NjIwEYYPaHR0cDovL3hlc3QvNzYzMBGGD2h0dHA6Ly94ZXN0Lzc2 --NDARhg9odHRwOi8veGVzdC83NjUwEYYPaHR0cDovL3hlc3QvNzY2MBGGD2h0dHA6 --Ly94ZXN0Lzc2NzARhg9odHRwOi8veGVzdC83NjgwEYYPaHR0cDovL3hlc3QvNzY5 --MBGGD2h0dHA6Ly94ZXN0Lzc3MDARhg9odHRwOi8veGVzdC83NzEwEYYPaHR0cDov --L3hlc3QvNzcyMBGGD2h0dHA6Ly94ZXN0Lzc3MzARhg9odHRwOi8veGVzdC83NzQw --EYYPaHR0cDovL3hlc3QvNzc1MBGGD2h0dHA6Ly94ZXN0Lzc3NjARhg9odHRwOi8v --eGVzdC83NzcwEYYPaHR0cDovL3hlc3QvNzc4MBGGD2h0dHA6Ly94ZXN0Lzc3OTAR --hg9odHRwOi8veGVzdC83ODAwEYYPaHR0cDovL3hlc3QvNzgxMBGGD2h0dHA6Ly94 --ZXN0Lzc4MjARhg9odHRwOi8veGVzdC83ODMwEYYPaHR0cDovL3hlc3QvNzg0MBGG --D2h0dHA6Ly94ZXN0Lzc4NTARhg9odHRwOi8veGVzdC83ODYwEYYPaHR0cDovL3hl --c3QvNzg3MBGGD2h0dHA6Ly94ZXN0Lzc4ODARhg9odHRwOi8veGVzdC83ODkwEYYP --aHR0cDovL3hlc3QvNzkwMBGGD2h0dHA6Ly94ZXN0Lzc5MTARhg9odHRwOi8veGVz --dC83OTIwEYYPaHR0cDovL3hlc3QvNzkzMBGGD2h0dHA6Ly94ZXN0Lzc5NDARhg9o --dHRwOi8veGVzdC83OTUwEYYPaHR0cDovL3hlc3QvNzk2MBGGD2h0dHA6Ly94ZXN0 --Lzc5NzARhg9odHRwOi8veGVzdC83OTgwEYYPaHR0cDovL3hlc3QvNzk5MBGGD2h0 --dHA6Ly94ZXN0LzgwMDARhg9odHRwOi8veGVzdC84MDEwEYYPaHR0cDovL3hlc3Qv --ODAyMBGGD2h0dHA6Ly94ZXN0LzgwMzARhg9odHRwOi8veGVzdC84MDQwEYYPaHR0 --cDovL3hlc3QvODA1MBGGD2h0dHA6Ly94ZXN0LzgwNjARhg9odHRwOi8veGVzdC84 --MDcwEYYPaHR0cDovL3hlc3QvODA4MBGGD2h0dHA6Ly94ZXN0LzgwOTARhg9odHRw --Oi8veGVzdC84MTAwEYYPaHR0cDovL3hlc3QvODExMBGGD2h0dHA6Ly94ZXN0Lzgx --MjARhg9odHRwOi8veGVzdC84MTMwEYYPaHR0cDovL3hlc3QvODE0MBGGD2h0dHA6 --Ly94ZXN0LzgxNTARhg9odHRwOi8veGVzdC84MTYwEYYPaHR0cDovL3hlc3QvODE3 --MBGGD2h0dHA6Ly94ZXN0LzgxODARhg9odHRwOi8veGVzdC84MTkwEYYPaHR0cDov --L3hlc3QvODIwMBGGD2h0dHA6Ly94ZXN0LzgyMTARhg9odHRwOi8veGVzdC84MjIw --EYYPaHR0cDovL3hlc3QvODIzMBGGD2h0dHA6Ly94ZXN0LzgyNDARhg9odHRwOi8v --eGVzdC84MjUwEYYPaHR0cDovL3hlc3QvODI2MBGGD2h0dHA6Ly94ZXN0LzgyNzAR --hg9odHRwOi8veGVzdC84MjgwEYYPaHR0cDovL3hlc3QvODI5MBGGD2h0dHA6Ly94 --ZXN0LzgzMDARhg9odHRwOi8veGVzdC84MzEwEYYPaHR0cDovL3hlc3QvODMyMBGG --D2h0dHA6Ly94ZXN0LzgzMzARhg9odHRwOi8veGVzdC84MzQwEYYPaHR0cDovL3hl --c3QvODM1MBGGD2h0dHA6Ly94ZXN0LzgzNjARhg9odHRwOi8veGVzdC84MzcwEYYP --aHR0cDovL3hlc3QvODM4MBGGD2h0dHA6Ly94ZXN0LzgzOTARhg9odHRwOi8veGVz --dC84NDAwEYYPaHR0cDovL3hlc3QvODQxMBGGD2h0dHA6Ly94ZXN0Lzg0MjARhg9o --dHRwOi8veGVzdC84NDMwEYYPaHR0cDovL3hlc3QvODQ0MBGGD2h0dHA6Ly94ZXN0 --Lzg0NTARhg9odHRwOi8veGVzdC84NDYwEYYPaHR0cDovL3hlc3QvODQ3MBGGD2h0 --dHA6Ly94ZXN0Lzg0ODARhg9odHRwOi8veGVzdC84NDkwEYYPaHR0cDovL3hlc3Qv --ODUwMBGGD2h0dHA6Ly94ZXN0Lzg1MTARhg9odHRwOi8veGVzdC84NTIwEYYPaHR0 --cDovL3hlc3QvODUzMBGGD2h0dHA6Ly94ZXN0Lzg1NDARhg9odHRwOi8veGVzdC84 --NTUwEYYPaHR0cDovL3hlc3QvODU2MBGGD2h0dHA6Ly94ZXN0Lzg1NzARhg9odHRw --Oi8veGVzdC84NTgwEYYPaHR0cDovL3hlc3QvODU5MBGGD2h0dHA6Ly94ZXN0Lzg2 --MDARhg9odHRwOi8veGVzdC84NjEwEYYPaHR0cDovL3hlc3QvODYyMBGGD2h0dHA6 --Ly94ZXN0Lzg2MzARhg9odHRwOi8veGVzdC84NjQwEYYPaHR0cDovL3hlc3QvODY1 --MBGGD2h0dHA6Ly94ZXN0Lzg2NjARhg9odHRwOi8veGVzdC84NjcwEYYPaHR0cDov --L3hlc3QvODY4MBGGD2h0dHA6Ly94ZXN0Lzg2OTARhg9odHRwOi8veGVzdC84NzAw --EYYPaHR0cDovL3hlc3QvODcxMBGGD2h0dHA6Ly94ZXN0Lzg3MjARhg9odHRwOi8v --eGVzdC84NzMwEYYPaHR0cDovL3hlc3QvODc0MBGGD2h0dHA6Ly94ZXN0Lzg3NTAR --hg9odHRwOi8veGVzdC84NzYwEYYPaHR0cDovL3hlc3QvODc3MBGGD2h0dHA6Ly94 --ZXN0Lzg3ODARhg9odHRwOi8veGVzdC84NzkwEYYPaHR0cDovL3hlc3QvODgwMBGG --D2h0dHA6Ly94ZXN0Lzg4MTARhg9odHRwOi8veGVzdC84ODIwEYYPaHR0cDovL3hl --c3QvODgzMBGGD2h0dHA6Ly94ZXN0Lzg4NDARhg9odHRwOi8veGVzdC84ODUwEYYP --aHR0cDovL3hlc3QvODg2MBGGD2h0dHA6Ly94ZXN0Lzg4NzARhg9odHRwOi8veGVz --dC84ODgwEYYPaHR0cDovL3hlc3QvODg5MBGGD2h0dHA6Ly94ZXN0Lzg5MDARhg9o --dHRwOi8veGVzdC84OTEwEYYPaHR0cDovL3hlc3QvODkyMBGGD2h0dHA6Ly94ZXN0 --Lzg5MzARhg9odHRwOi8veGVzdC84OTQwEYYPaHR0cDovL3hlc3QvODk1MBGGD2h0 --dHA6Ly94ZXN0Lzg5NjARhg9odHRwOi8veGVzdC84OTcwEYYPaHR0cDovL3hlc3Qv --ODk4MBGGD2h0dHA6Ly94ZXN0Lzg5OTARhg9odHRwOi8veGVzdC85MDAwEYYPaHR0 --cDovL3hlc3QvOTAxMBGGD2h0dHA6Ly94ZXN0LzkwMjARhg9odHRwOi8veGVzdC85 --MDMwEYYPaHR0cDovL3hlc3QvOTA0MBGGD2h0dHA6Ly94ZXN0LzkwNTARhg9odHRw --Oi8veGVzdC85MDYwEYYPaHR0cDovL3hlc3QvOTA3MBGGD2h0dHA6Ly94ZXN0Lzkw --ODARhg9odHRwOi8veGVzdC85MDkwEYYPaHR0cDovL3hlc3QvOTEwMBGGD2h0dHA6 --Ly94ZXN0LzkxMTARhg9odHRwOi8veGVzdC85MTIwEYYPaHR0cDovL3hlc3QvOTEz --MBGGD2h0dHA6Ly94ZXN0LzkxNDARhg9odHRwOi8veGVzdC85MTUwEYYPaHR0cDov --L3hlc3QvOTE2MBGGD2h0dHA6Ly94ZXN0LzkxNzARhg9odHRwOi8veGVzdC85MTgw --EYYPaHR0cDovL3hlc3QvOTE5MBGGD2h0dHA6Ly94ZXN0LzkyMDARhg9odHRwOi8v --eGVzdC85MjEwEYYPaHR0cDovL3hlc3QvOTIyMBGGD2h0dHA6Ly94ZXN0LzkyMzAR --hg9odHRwOi8veGVzdC85MjQwEYYPaHR0cDovL3hlc3QvOTI1MBGGD2h0dHA6Ly94 --ZXN0LzkyNjARhg9odHRwOi8veGVzdC85MjcwEYYPaHR0cDovL3hlc3QvOTI4MBGG --D2h0dHA6Ly94ZXN0LzkyOTARhg9odHRwOi8veGVzdC85MzAwEYYPaHR0cDovL3hl --c3QvOTMxMBGGD2h0dHA6Ly94ZXN0LzkzMjARhg9odHRwOi8veGVzdC85MzMwEYYP --aHR0cDovL3hlc3QvOTM0MBGGD2h0dHA6Ly94ZXN0LzkzNTARhg9odHRwOi8veGVz --dC85MzYwEYYPaHR0cDovL3hlc3QvOTM3MBGGD2h0dHA6Ly94ZXN0LzkzODARhg9o --dHRwOi8veGVzdC85MzkwEYYPaHR0cDovL3hlc3QvOTQwMBGGD2h0dHA6Ly94ZXN0 --Lzk0MTARhg9odHRwOi8veGVzdC85NDIwEYYPaHR0cDovL3hlc3QvOTQzMBGGD2h0 --dHA6Ly94ZXN0Lzk0NDARhg9odHRwOi8veGVzdC85NDUwEYYPaHR0cDovL3hlc3Qv --OTQ2MBGGD2h0dHA6Ly94ZXN0Lzk0NzARhg9odHRwOi8veGVzdC85NDgwEYYPaHR0 --cDovL3hlc3QvOTQ5MBGGD2h0dHA6Ly94ZXN0Lzk1MDARhg9odHRwOi8veGVzdC85 --NTEwEYYPaHR0cDovL3hlc3QvOTUyMBGGD2h0dHA6Ly94ZXN0Lzk1MzARhg9odHRw --Oi8veGVzdC85NTQwEYYPaHR0cDovL3hlc3QvOTU1MBGGD2h0dHA6Ly94ZXN0Lzk1 --NjARhg9odHRwOi8veGVzdC85NTcwEYYPaHR0cDovL3hlc3QvOTU4MBGGD2h0dHA6 --Ly94ZXN0Lzk1OTARhg9odHRwOi8veGVzdC85NjAwEYYPaHR0cDovL3hlc3QvOTYx --MBGGD2h0dHA6Ly94ZXN0Lzk2MjARhg9odHRwOi8veGVzdC85NjMwEYYPaHR0cDov --L3hlc3QvOTY0MBGGD2h0dHA6Ly94ZXN0Lzk2NTARhg9odHRwOi8veGVzdC85NjYw --EYYPaHR0cDovL3hlc3QvOTY3MBGGD2h0dHA6Ly94ZXN0Lzk2ODARhg9odHRwOi8v --eGVzdC85NjkwEYYPaHR0cDovL3hlc3QvOTcwMBGGD2h0dHA6Ly94ZXN0Lzk3MTAR --hg9odHRwOi8veGVzdC85NzIwEYYPaHR0cDovL3hlc3QvOTczMBGGD2h0dHA6Ly94 --ZXN0Lzk3NDARhg9odHRwOi8veGVzdC85NzUwEYYPaHR0cDovL3hlc3QvOTc2MBGG --D2h0dHA6Ly94ZXN0Lzk3NzARhg9odHRwOi8veGVzdC85NzgwEYYPaHR0cDovL3hl --c3QvOTc5MBGGD2h0dHA6Ly94ZXN0Lzk4MDARhg9odHRwOi8veGVzdC85ODEwEYYP --aHR0cDovL3hlc3QvOTgyMBGGD2h0dHA6Ly94ZXN0Lzk4MzARhg9odHRwOi8veGVz --dC85ODQwEYYPaHR0cDovL3hlc3QvOTg1MBGGD2h0dHA6Ly94ZXN0Lzk4NjARhg9o --dHRwOi8veGVzdC85ODcwEYYPaHR0cDovL3hlc3QvOTg4MBGGD2h0dHA6Ly94ZXN0 --Lzk4OTARhg9odHRwOi8veGVzdC85OTAwEYYPaHR0cDovL3hlc3QvOTkxMBGGD2h0 --dHA6Ly94ZXN0Lzk5MjARhg9odHRwOi8veGVzdC85OTMwEYYPaHR0cDovL3hlc3Qv --OTk0MBGGD2h0dHA6Ly94ZXN0Lzk5NTARhg9odHRwOi8veGVzdC85OTYwEYYPaHR0 --cDovL3hlc3QvOTk3MBGGD2h0dHA6Ly94ZXN0Lzk5ODARhg9odHRwOi8veGVzdC85 --OTkwEoYQaHR0cDovL3hlc3QvMTAwMDAShhBodHRwOi8veGVzdC8xMDAxMBKGEGh0 --dHA6Ly94ZXN0LzEwMDIwEoYQaHR0cDovL3hlc3QvMTAwMzAShhBodHRwOi8veGVz --dC8xMDA0MBKGEGh0dHA6Ly94ZXN0LzEwMDUwEoYQaHR0cDovL3hlc3QvMTAwNjAS --hhBodHRwOi8veGVzdC8xMDA3MBKGEGh0dHA6Ly94ZXN0LzEwMDgwEoYQaHR0cDov --L3hlc3QvMTAwOTAShhBodHRwOi8veGVzdC8xMDEwMBKGEGh0dHA6Ly94ZXN0LzEw --MTEwEoYQaHR0cDovL3hlc3QvMTAxMjAShhBodHRwOi8veGVzdC8xMDEzMBKGEGh0 --dHA6Ly94ZXN0LzEwMTQwEoYQaHR0cDovL3hlc3QvMTAxNTAShhBodHRwOi8veGVz --dC8xMDE2MBKGEGh0dHA6Ly94ZXN0LzEwMTcwEoYQaHR0cDovL3hlc3QvMTAxODAS --hhBodHRwOi8veGVzdC8xMDE5MBKGEGh0dHA6Ly94ZXN0LzEwMjAwEoYQaHR0cDov --L3hlc3QvMTAyMTAShhBodHRwOi8veGVzdC8xMDIyMBKGEGh0dHA6Ly94ZXN0LzEw --MjMwEoYQaHR0cDovL3hlc3QvMTAyNDANBgkqhkiG9w0BAQsFAAOCAQEADhRMCQwL --+tquyKQTn32cU2LAUXp6iHiQgfkv5obgczEdhEV/ebpqnO1cqrDd0DKpaXga5Dz6 --U4oVM33MRUxlTtQBSUfDAgRYqMJgqwGLNa3bV59oEisOxrCAFRHe5F1upbKANGUz --6UwNkwlu5fT5Bsx+PS65eYCcg5LsFWLmr05Af1WiddHyr6EQKCvD9u86Fjpxmyis --ZdSr/0qnqoKjjRg258FMeoeLOZCl4iPDmeZdEU9mSBJpckc+57szUTjF4iCqJBLO --RP7U8zg3aYXYQTJBMPey8HbOS9pDlYcrGJr6QME2cazUj2jM7Y/2qQoplJhxaa/i --hWJlNqN3rkOvgQ== -------END CERTIFICATE----- -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Root -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=Root -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:cc:7a:cf:ec:bd:a0:01:c3:26:51:d8:28:ae:80: -- b6:0b:d2:76:d7:04:86:18:ac:fd:f2:8f:64:e7:92: -- d6:d0:42:32:4f:cd:d0:4d:d0:ac:71:9a:73:80:0a: -- 04:70:20:a3:2f:a0:9b:f4:3e:19:cf:69:54:b5:be: -- 85:dd:6e:b2:0b:14:df:27:bf:2c:a1:bb:b2:a7:23: -- 0c:fb:ae:78:69:6b:1a:6e:7c:38:7f:15:5d:e5:cf: -- 27:32:56:2a:f1:87:fe:3a:16:73:e6:dd:83:f2:f2: -- ae:31:c8:93:d2:49:b7:b1:71:f5:55:de:bb:85:cd: -- cb:19:74:1d:61:49:da:83:44:ec:4c:5e:aa:d5:8b: -- 32:1a:db:77:d5:b1:83:8c:00:b9:55:b7:64:78:5c: -- 87:c9:68:58:bd:de:af:50:e2:bb:bd:32:cd:fa:3d: -- df:3b:3d:93:10:16:b6:6d:90:1d:d7:7d:e9:ea:7e: -- 1e:2e:c8:10:a4:14:ad:62:72:af:65:95:1f:a7:6e: -- 81:84:9f:df:85:4e:c0:3e:7f:8c:02:0a:f0:65:58: -- 84:7c:6a:e1:53:af:3c:f1:7a:b9:33:c8:e7:f9:ed: -- 92:46:00:50:62:f0:89:41:57:1e:81:d1:04:12:b3: -- fc:25:60:17:5c:0b:eb:a9:46:4a:03:39:16:11:4d: -- e1:7b -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- X509v3 Authority Key Identifier: -- keyid:B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Root.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Root.crl -- -- X509v3 Key Usage: critical -- Certificate Sign, CRL Sign -- X509v3 Basic Constraints: critical -- CA:TRUE -- Signature Algorithm: sha256WithRSAEncryption -- 3a:c4:f6:50:32:77:14:e2:a8:69:9b:ad:85:a0:fa:95:08:d2: -- 22:cb:d3:aa:53:94:e5:1f:92:fa:d5:7b:c8:a5:b6:13:15:42: -- 42:2c:ce:48:e9:f1:55:c7:cd:f4:29:b6:46:e9:08:81:8c:83: -- 82:c5:d4:f7:1e:90:3c:2d:78:39:7f:be:e8:30:5e:f7:d4:72: -- e4:db:0a:09:49:c0:ce:83:66:c0:16:73:f4:cf:67:ad:74:e3: -- 10:60:72:16:77:4a:c8:08:88:93:62:c0:4a:23:0b:74:3e:63: -- 98:9c:54:1d:34:d5:b6:da:bc:7c:5a:f2:68:22:e2:d9:15:12: -- 84:04:f6:3e:b3:ac:97:bc:b4:54:93:3c:d4:0b:25:e4:c1:34: -- 5a:98:bc:aa:de:78:bb:12:3f:33:82:a2:bf:5f:82:e6:9e:ad: -- 85:21:21:d9:9d:41:5e:4f:72:a3:16:8d:7d:b4:1d:26:d8:77: -- d8:29:22:13:a2:f6:d7:9f:1c:60:2f:17:9e:fd:f4:63:a3:c6: -- ed:e3:47:43:b7:73:39:82:97:18:fa:4b:db:2e:ac:d3:7b:54: -- cd:f8:d0:eb:70:13:03:8a:4b:9b:90:62:4e:b0:34:22:49:ec: -- 78:2a:47:97:60:13:03:23:ed:09:ff:a8:00:59:6a:2c:d1:2e: -- d0:93:0b:59 -------BEGIN CERTIFICATE----- --MIIDeDCCAmCgAwIBAgIUPOX8gYhZqFAWwX/X5Srlln/C9vUwDQYJKoZIhvcNAQEL --BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw --MDBaMA8xDTALBgNVBAMMBFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK --AoIBAQDMes/svaABwyZR2CiugLYL0nbXBIYYrP3yj2TnktbQQjJPzdBN0KxxmnOA --CgRwIKMvoJv0PhnPaVS1voXdbrILFN8nvyyhu7KnIwz7rnhpaxpufDh/FV3lzycy --Virxh/46FnPm3YPy8q4xyJPSSbexcfVV3ruFzcsZdB1hSdqDROxMXqrVizIa23fV --sYOMALlVt2R4XIfJaFi93q9Q4ru9Ms36Pd87PZMQFrZtkB3Xfenqfh4uyBCkFK1i --cq9llR+nboGEn9+FTsA+f4wCCvBlWIR8auFTrzzxerkzyOf57ZJGAFBi8IlBVx6B --0QQSs/wlYBdcC+upRkoDORYRTeF7AgMBAAGjgcswgcgwHQYDVR0OBBYEFLbC75/R --KcsPiYxMUtS9QLcRt3HdMB8GA1UdIwQYMBaAFLbC75/RKcsPiYxMUtS9QLcRt3Hd --MDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAoYbaHR0cDovL3VybC1mb3ItYWlh --L1Jvb3QuY2VyMCwGA1UdHwQlMCMwIaAfoB2GG2h0dHA6Ly91cmwtZm9yLWNybC9S --b290LmNybDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG --9w0BAQsFAAOCAQEAOsT2UDJ3FOKoaZuthaD6lQjSIsvTqlOU5R+S+tV7yKW2ExVC --QizOSOnxVcfN9Cm2RukIgYyDgsXU9x6QPC14OX++6DBe99Ry5NsKCUnAzoNmwBZz --9M9nrXTjEGByFndKyAiIk2LASiMLdD5jmJxUHTTVttq8fFryaCLi2RUShAT2PrOs --l7y0VJM81Asl5ME0Wpi8qt54uxI/M4Kiv1+C5p6thSEh2Z1BXk9yoxaNfbQdJth3 --2CkiE6L2158cYC8Xnv30Y6PG7eNHQ7dzOYKXGPpL2y6s03tUzfjQ63ATA4pLm5Bi --TrA0IknseCpHl2ATAyPtCf+oAFlqLNEu0JMLWQ== -------END CERTIFICATE----- -diff --git a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.test b/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.test -deleted file mode 100644 -index 96c5f8535640c..0000000000000 ---- a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-dns.test -+++ /dev/null -@@ -1,5 +0,0 @@ --chain: ok-different-types-dns.pem --last_cert_trust: TRUSTED_ANCHOR --utc_time: DEFAULT --key_purpose: SERVER_AUTH --expected_errors: -diff --git a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.pem b/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.pem -deleted file mode 100644 -index 08135876c9eb9..0000000000000 ---- a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.pem -+++ /dev/null -@@ -1,8813 +0,0 @@ --[Created by: generate-chains.py] -- --A chain containing a large number of name constraints and names, --but of different types, thus not triggering the limit. -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:dd -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Intermediate -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=t0 -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:db:2c:53:01:ce:f9:1a:83:36:52:51:2a:5b:42: -- 63:de:32:75:11:6a:7d:b0:a1:e4:77:47:9b:71:e5: -- a6:2d:64:d7:ae:5b:04:ed:7a:3f:c7:f6:ca:2b:2b: -- ad:cd:6c:88:a5:8e:36:fb:e7:a2:22:b5:7d:54:79: -- e9:d5:7a:5b:ca:2b:29:6c:0d:84:0a:10:c4:21:b6: -- 58:98:bb:0d:b6:0c:8d:56:5b:2c:85:59:07:ca:06: -- 46:36:25:1a:29:8e:c4:39:b7:c3:31:ce:6e:49:c2: -- 01:cf:b0:3b:27:43:8a:e3:d5:06:1f:2d:93:9d:dd: -- 7a:45:65:6d:fd:b4:b1:c0:10:59:42:f2:1e:8f:ce: -- 43:ac:97:25:c1:7c:e2:51:e1:44:35:5b:94:aa:03: -- 6e:da:71:2f:25:7f:58:30:01:e1:12:17:1e:f2:aa: -- 6c:22:80:b1:c9:65:ea:77:95:b3:07:c4:f7:72:38: -- 34:fe:a0:43:33:4c:66:6d:a1:e8:a1:04:bc:6f:14: -- 39:39:44:2e:38:37:74:c9:0a:21:85:91:21:b7:4e: -- ba:b0:99:4a:76:98:7b:58:ca:1c:d3:b0:40:c3:d9: -- 2a:75:fb:eb:19:ea:e3:1a:98:31:52:97:e9:7f:a4: -- 7b:21:7f:2f:dc:62:86:8f:fd:fd:a8:88:e8:4b:44: -- 52:bd -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- 3B:B4:05:CC:AA:BA:51:3D:FC:F2:F9:1E:25:53:72:E1:3A:F2:9A:DF -- X509v3 Authority Key Identifier: -- keyid:92:11:3F:AC:11:96:C7:66:37:CF:83:5A:24:F0:3A:77:AF:33:8D:7F -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Intermediate.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Intermediate.crl -- -- X509v3 Key Usage: critical -- Digital Signature, Key Encipherment -- X509v3 Extended Key Usage: -- TLS Web Server Authentication, TLS Web Client Authentication -- X509v3 Subject Alternative Name: -- IP Address:10.0.0.0, IP Address:10.0.0.1, IP Address:10.0.0.2, IP Address:10.0.0.3, IP Address:10.0.0.4, IP Address:10.0.0.5, IP Address:10.0.0.6, IP Address:10.0.0.7, IP Address:10.0.0.8, IP Address:10.0.0.9, IP Address:10.0.0.10, IP Address:10.0.0.11, IP Address:10.0.0.12, IP Address:10.0.0.13, IP Address:10.0.0.14, IP Address:10.0.0.15, IP Address:10.0.0.16, IP Address:10.0.0.17, IP Address:10.0.0.18, IP Address:10.0.0.19, IP Address:10.0.0.20, IP Address:10.0.0.21, IP Address:10.0.0.22, IP Address:10.0.0.23, IP Address:10.0.0.24, IP Address:10.0.0.25, IP Address:10.0.0.26, IP Address:10.0.0.27, IP Address:10.0.0.28, IP Address:10.0.0.29, IP Address:10.0.0.30, IP Address:10.0.0.31, IP Address:10.0.0.32, IP Address:10.0.0.33, IP Address:10.0.0.34, IP Address:10.0.0.35, IP Address:10.0.0.36, IP Address:10.0.0.37, IP Address:10.0.0.38, IP Address:10.0.0.39, IP Address:10.0.0.40, IP Address:10.0.0.41, IP Address:10.0.0.42, IP Address:10.0.0.43, IP Address:10.0.0.44, IP Address:10.0.0.45, IP Address:10.0.0.46, IP Address:10.0.0.47, IP Address:10.0.0.48, IP Address:10.0.0.49, IP Address:10.0.0.50, IP Address:10.0.0.51, IP Address:10.0.0.52, IP Address:10.0.0.53, IP Address:10.0.0.54, IP Address:10.0.0.55, IP Address:10.0.0.56, IP Address:10.0.0.57, IP Address:10.0.0.58, IP Address:10.0.0.59, IP Address:10.0.0.60, IP Address:10.0.0.61, IP Address:10.0.0.62, IP Address:10.0.0.63, IP Address:10.0.0.64, IP Address:10.0.0.65, IP Address:10.0.0.66, IP Address:10.0.0.67, IP Address:10.0.0.68, IP Address:10.0.0.69, IP Address:10.0.0.70, IP Address:10.0.0.71, IP Address:10.0.0.72, IP Address:10.0.0.73, IP Address:10.0.0.74, IP Address:10.0.0.75, IP Address:10.0.0.76, IP Address:10.0.0.77, IP Address:10.0.0.78, IP Address:10.0.0.79, IP Address:10.0.0.80, IP Address:10.0.0.81, IP Address:10.0.0.82, IP Address:10.0.0.83, IP Address:10.0.0.84, IP Address:10.0.0.85, IP Address:10.0.0.86, IP Address:10.0.0.87, IP Address:10.0.0.88, IP Address:10.0.0.89, IP Address:10.0.0.90, IP Address:10.0.0.91, IP Address:10.0.0.92, IP Address:10.0.0.93, IP Address:10.0.0.94, IP Address:10.0.0.95, IP Address:10.0.0.96, IP Address:10.0.0.97, IP Address:10.0.0.98, IP Address:10.0.0.99, IP Address:10.0.0.100, IP Address:10.0.0.101, IP Address:10.0.0.102, IP Address:10.0.0.103, IP Address:10.0.0.104, IP Address:10.0.0.105, IP Address:10.0.0.106, IP Address:10.0.0.107, IP Address:10.0.0.108, IP Address:10.0.0.109, IP Address:10.0.0.110, IP Address:10.0.0.111, IP Address:10.0.0.112, IP Address:10.0.0.113, IP Address:10.0.0.114, IP Address:10.0.0.115, IP Address:10.0.0.116, IP Address:10.0.0.117, IP Address:10.0.0.118, IP Address:10.0.0.119, IP Address:10.0.0.120, IP Address:10.0.0.121, IP Address:10.0.0.122, IP Address:10.0.0.123, IP Address:10.0.0.124, IP Address:10.0.0.125, IP Address:10.0.0.126, IP Address:10.0.0.127, IP Address:10.0.0.128, IP Address:10.0.0.129, IP Address:10.0.0.130, IP Address:10.0.0.131, IP Address:10.0.0.132, IP Address:10.0.0.133, IP Address:10.0.0.134, IP Address:10.0.0.135, IP Address:10.0.0.136, IP Address:10.0.0.137, IP Address:10.0.0.138, IP Address:10.0.0.139, IP Address:10.0.0.140, IP Address:10.0.0.141, IP Address:10.0.0.142, IP Address:10.0.0.143, IP Address:10.0.0.144, IP Address:10.0.0.145, IP Address:10.0.0.146, IP Address:10.0.0.147, IP Address:10.0.0.148, IP Address:10.0.0.149, IP Address:10.0.0.150, IP Address:10.0.0.151, IP Address:10.0.0.152, IP Address:10.0.0.153, IP Address:10.0.0.154, IP Address:10.0.0.155, IP Address:10.0.0.156, IP Address:10.0.0.157, IP Address:10.0.0.158, IP Address:10.0.0.159, IP Address:10.0.0.160, IP Address:10.0.0.161, IP Address:10.0.0.162, IP Address:10.0.0.163, IP Address:10.0.0.164, IP Address:10.0.0.165, IP Address:10.0.0.166, IP Address:10.0.0.167, IP Address:10.0.0.168, IP Address:10.0.0.169, IP Address:10.0.0.170, IP Address:10.0.0.171, IP Address:10.0.0.172, IP Address:10.0.0.173, IP Address:10.0.0.174, IP Address:10.0.0.175, IP Address:10.0.0.176, IP Address:10.0.0.177, IP Address:10.0.0.178, IP Address:10.0.0.179, IP Address:10.0.0.180, IP Address:10.0.0.181, IP Address:10.0.0.182, IP Address:10.0.0.183, IP Address:10.0.0.184, IP Address:10.0.0.185, IP Address:10.0.0.186, IP Address:10.0.0.187, IP Address:10.0.0.188, IP Address:10.0.0.189, IP Address:10.0.0.190, IP Address:10.0.0.191, IP Address:10.0.0.192, IP Address:10.0.0.193, IP Address:10.0.0.194, IP Address:10.0.0.195, IP Address:10.0.0.196, IP Address:10.0.0.197, IP Address:10.0.0.198, IP Address:10.0.0.199, IP Address:10.0.0.200, IP Address:10.0.0.201, IP Address:10.0.0.202, IP Address:10.0.0.203, IP Address:10.0.0.204, IP Address:10.0.0.205, IP Address:10.0.0.206, IP Address:10.0.0.207, IP Address:10.0.0.208, IP Address:10.0.0.209, IP Address:10.0.0.210, IP Address:10.0.0.211, IP Address:10.0.0.212, IP Address:10.0.0.213, IP Address:10.0.0.214, IP Address:10.0.0.215, IP Address:10.0.0.216, IP Address:10.0.0.217, IP Address:10.0.0.218, IP Address:10.0.0.219, IP Address:10.0.0.220, IP Address:10.0.0.221, IP Address:10.0.0.222, IP Address:10.0.0.223, IP Address:10.0.0.224, IP Address:10.0.0.225, IP Address:10.0.0.226, IP Address:10.0.0.227, IP Address:10.0.0.228, IP Address:10.0.0.229, IP Address:10.0.0.230, IP Address:10.0.0.231, IP Address:10.0.0.232, IP Address:10.0.0.233, IP Address:10.0.0.234, IP Address:10.0.0.235, IP Address:10.0.0.236, IP Address:10.0.0.237, IP Address:10.0.0.238, IP Address:10.0.0.239, IP Address:10.0.0.240, IP Address:10.0.0.241, IP Address:10.0.0.242, IP Address:10.0.0.243, IP Address:10.0.0.244, IP Address:10.0.0.245, IP Address:10.0.0.246, IP Address:10.0.0.247, IP Address:10.0.0.248, IP Address:10.0.0.249, IP Address:10.0.0.250, IP Address:10.0.0.251, IP Address:10.0.0.252, IP Address:10.0.0.253, IP Address:10.0.0.254, IP Address:10.0.0.255, IP Address:10.0.1.0, IP Address:10.0.1.1, IP Address:10.0.1.2, IP Address:10.0.1.3, IP Address:10.0.1.4, IP Address:10.0.1.5, IP Address:10.0.1.6, IP Address:10.0.1.7, IP Address:10.0.1.8, IP Address:10.0.1.9, IP Address:10.0.1.10, IP Address:10.0.1.11, IP Address:10.0.1.12, IP Address:10.0.1.13, IP Address:10.0.1.14, IP Address:10.0.1.15, IP Address:10.0.1.16, IP Address:10.0.1.17, IP Address:10.0.1.18, IP Address:10.0.1.19, IP Address:10.0.1.20, IP Address:10.0.1.21, IP Address:10.0.1.22, IP Address:10.0.1.23, IP Address:10.0.1.24, IP Address:10.0.1.25, IP Address:10.0.1.26, IP Address:10.0.1.27, IP Address:10.0.1.28, IP Address:10.0.1.29, IP Address:10.0.1.30, IP Address:10.0.1.31, IP Address:10.0.1.32, IP Address:10.0.1.33, IP Address:10.0.1.34, IP Address:10.0.1.35, IP Address:10.0.1.36, IP Address:10.0.1.37, IP Address:10.0.1.38, IP Address:10.0.1.39, IP Address:10.0.1.40, IP Address:10.0.1.41, IP Address:10.0.1.42, IP Address:10.0.1.43, IP Address:10.0.1.44, IP Address:10.0.1.45, IP Address:10.0.1.46, IP Address:10.0.1.47, IP Address:10.0.1.48, IP Address:10.0.1.49, IP Address:10.0.1.50, IP Address:10.0.1.51, IP Address:10.0.1.52, IP Address:10.0.1.53, IP Address:10.0.1.54, IP Address:10.0.1.55, IP Address:10.0.1.56, IP Address:10.0.1.57, IP Address:10.0.1.58, IP Address:10.0.1.59, IP Address:10.0.1.60, IP Address:10.0.1.61, IP Address:10.0.1.62, IP Address:10.0.1.63, IP Address:10.0.1.64, IP Address:10.0.1.65, IP Address:10.0.1.66, IP Address:10.0.1.67, IP Address:10.0.1.68, IP Address:10.0.1.69, IP Address:10.0.1.70, IP Address:10.0.1.71, IP Address:10.0.1.72, IP Address:10.0.1.73, IP Address:10.0.1.74, IP Address:10.0.1.75, IP Address:10.0.1.76, IP Address:10.0.1.77, IP Address:10.0.1.78, IP Address:10.0.1.79, IP Address:10.0.1.80, IP Address:10.0.1.81, IP Address:10.0.1.82, IP Address:10.0.1.83, IP Address:10.0.1.84, IP Address:10.0.1.85, IP Address:10.0.1.86, IP Address:10.0.1.87, IP Address:10.0.1.88, IP Address:10.0.1.89, IP Address:10.0.1.90, IP Address:10.0.1.91, IP Address:10.0.1.92, IP Address:10.0.1.93, IP Address:10.0.1.94, IP Address:10.0.1.95, IP Address:10.0.1.96, IP Address:10.0.1.97, IP Address:10.0.1.98, IP Address:10.0.1.99, IP Address:10.0.1.100, IP Address:10.0.1.101, IP Address:10.0.1.102, IP Address:10.0.1.103, IP Address:10.0.1.104, IP Address:10.0.1.105, IP Address:10.0.1.106, IP Address:10.0.1.107, IP Address:10.0.1.108, IP Address:10.0.1.109, IP Address:10.0.1.110, IP Address:10.0.1.111, IP Address:10.0.1.112, IP Address:10.0.1.113, IP Address:10.0.1.114, IP Address:10.0.1.115, IP Address:10.0.1.116, IP Address:10.0.1.117, IP Address:10.0.1.118, IP Address:10.0.1.119, IP Address:10.0.1.120, IP Address:10.0.1.121, IP Address:10.0.1.122, IP Address:10.0.1.123, IP Address:10.0.1.124, IP Address:10.0.1.125, IP Address:10.0.1.126, IP Address:10.0.1.127, IP Address:10.0.1.128, IP Address:10.0.1.129, IP Address:10.0.1.130, IP Address:10.0.1.131, IP Address:10.0.1.132, IP Address:10.0.1.133, IP Address:10.0.1.134, IP Address:10.0.1.135, IP Address:10.0.1.136, IP Address:10.0.1.137, IP Address:10.0.1.138, IP Address:10.0.1.139, IP Address:10.0.1.140, IP Address:10.0.1.141, IP Address:10.0.1.142, IP Address:10.0.1.143, IP Address:10.0.1.144, IP Address:10.0.1.145, IP Address:10.0.1.146, IP Address:10.0.1.147, IP Address:10.0.1.148, IP Address:10.0.1.149, IP Address:10.0.1.150, IP Address:10.0.1.151, IP Address:10.0.1.152, IP Address:10.0.1.153, IP Address:10.0.1.154, IP Address:10.0.1.155, IP Address:10.0.1.156, IP Address:10.0.1.157, IP Address:10.0.1.158, IP Address:10.0.1.159, IP Address:10.0.1.160, IP Address:10.0.1.161, IP Address:10.0.1.162, IP Address:10.0.1.163, IP Address:10.0.1.164, IP Address:10.0.1.165, IP Address:10.0.1.166, IP Address:10.0.1.167, IP Address:10.0.1.168, IP Address:10.0.1.169, IP Address:10.0.1.170, IP Address:10.0.1.171, IP Address:10.0.1.172, IP Address:10.0.1.173, IP Address:10.0.1.174, IP Address:10.0.1.175, IP Address:10.0.1.176, IP Address:10.0.1.177, IP Address:10.0.1.178, IP Address:10.0.1.179, IP Address:10.0.1.180, IP Address:10.0.1.181, IP Address:10.0.1.182, IP Address:10.0.1.183, IP Address:10.0.1.184, IP Address:10.0.1.185, IP Address:10.0.1.186, IP Address:10.0.1.187, IP Address:10.0.1.188, IP Address:10.0.1.189, IP Address:10.0.1.190, IP Address:10.0.1.191, IP Address:10.0.1.192, IP Address:10.0.1.193, IP Address:10.0.1.194, IP Address:10.0.1.195, IP Address:10.0.1.196, IP Address:10.0.1.197, IP Address:10.0.1.198, IP Address:10.0.1.199, IP Address:10.0.1.200, IP Address:10.0.1.201, IP Address:10.0.1.202, IP Address:10.0.1.203, IP Address:10.0.1.204, IP Address:10.0.1.205, IP Address:10.0.1.206, IP Address:10.0.1.207, IP Address:10.0.1.208, IP Address:10.0.1.209, IP Address:10.0.1.210, IP Address:10.0.1.211, IP Address:10.0.1.212, IP Address:10.0.1.213, IP Address:10.0.1.214, IP Address:10.0.1.215, IP Address:10.0.1.216, IP Address:10.0.1.217, IP Address:10.0.1.218, IP Address:10.0.1.219, IP Address:10.0.1.220, IP Address:10.0.1.221, IP Address:10.0.1.222, IP Address:10.0.1.223, IP Address:10.0.1.224, IP Address:10.0.1.225, IP Address:10.0.1.226, IP Address:10.0.1.227, IP Address:10.0.1.228, IP Address:10.0.1.229, IP Address:10.0.1.230, IP Address:10.0.1.231, IP Address:10.0.1.232, IP Address:10.0.1.233, IP Address:10.0.1.234, IP Address:10.0.1.235, IP Address:10.0.1.236, IP Address:10.0.1.237, IP Address:10.0.1.238, IP Address:10.0.1.239, IP Address:10.0.1.240, IP Address:10.0.1.241, IP Address:10.0.1.242, IP Address:10.0.1.243, IP Address:10.0.1.244, IP Address:10.0.1.245, IP Address:10.0.1.246, IP Address:10.0.1.247, IP Address:10.0.1.248, IP Address:10.0.1.249, IP Address:10.0.1.250, IP Address:10.0.1.251, IP Address:10.0.1.252, IP Address:10.0.1.253, IP Address:10.0.1.254, IP Address:10.0.1.255, IP Address:10.0.2.0, IP Address:10.0.2.1, IP Address:10.0.2.2, IP Address:10.0.2.3, IP Address:10.0.2.4, IP Address:10.0.2.5, IP Address:10.0.2.6, IP Address:10.0.2.7, IP Address:10.0.2.8, IP Address:10.0.2.9, IP Address:10.0.2.10, IP Address:10.0.2.11, IP Address:10.0.2.12, IP Address:10.0.2.13, IP Address:10.0.2.14, IP Address:10.0.2.15, IP Address:10.0.2.16, IP Address:10.0.2.17, IP Address:10.0.2.18, IP Address:10.0.2.19, IP Address:10.0.2.20, IP Address:10.0.2.21, IP Address:10.0.2.22, IP Address:10.0.2.23, IP Address:10.0.2.24, IP Address:10.0.2.25, IP Address:10.0.2.26, IP Address:10.0.2.27, IP Address:10.0.2.28, IP Address:10.0.2.29, IP Address:10.0.2.30, IP Address:10.0.2.31, IP Address:10.0.2.32, IP Address:10.0.2.33, IP Address:10.0.2.34, IP Address:10.0.2.35, IP Address:10.0.2.36, IP Address:10.0.2.37, IP Address:10.0.2.38, IP Address:10.0.2.39, IP Address:10.0.2.40, IP Address:10.0.2.41, IP Address:10.0.2.42, IP Address:10.0.2.43, IP Address:10.0.2.44, IP Address:10.0.2.45, IP Address:10.0.2.46, IP Address:10.0.2.47, IP Address:10.0.2.48, IP Address:10.0.2.49, IP Address:10.0.2.50, IP Address:10.0.2.51, IP Address:10.0.2.52, IP Address:10.0.2.53, IP Address:10.0.2.54, IP Address:10.0.2.55, IP Address:10.0.2.56, IP Address:10.0.2.57, IP Address:10.0.2.58, IP Address:10.0.2.59, IP Address:10.0.2.60, IP Address:10.0.2.61, IP Address:10.0.2.62, IP Address:10.0.2.63, IP Address:10.0.2.64, IP Address:10.0.2.65, IP Address:10.0.2.66, IP Address:10.0.2.67, IP Address:10.0.2.68, IP Address:10.0.2.69, IP Address:10.0.2.70, IP Address:10.0.2.71, IP Address:10.0.2.72, IP Address:10.0.2.73, IP Address:10.0.2.74, IP Address:10.0.2.75, IP Address:10.0.2.76, IP Address:10.0.2.77, IP Address:10.0.2.78, IP Address:10.0.2.79, IP Address:10.0.2.80, IP Address:10.0.2.81, IP Address:10.0.2.82, IP Address:10.0.2.83, IP Address:10.0.2.84, IP Address:10.0.2.85, IP Address:10.0.2.86, IP Address:10.0.2.87, IP Address:10.0.2.88, IP Address:10.0.2.89, IP Address:10.0.2.90, IP Address:10.0.2.91, IP Address:10.0.2.92, IP Address:10.0.2.93, IP Address:10.0.2.94, IP Address:10.0.2.95, IP Address:10.0.2.96, IP Address:10.0.2.97, IP Address:10.0.2.98, IP Address:10.0.2.99, IP Address:10.0.2.100, IP Address:10.0.2.101, IP Address:10.0.2.102, IP Address:10.0.2.103, IP Address:10.0.2.104, IP Address:10.0.2.105, IP Address:10.0.2.106, IP Address:10.0.2.107, IP Address:10.0.2.108, IP Address:10.0.2.109, IP Address:10.0.2.110, IP Address:10.0.2.111, IP Address:10.0.2.112, IP Address:10.0.2.113, IP Address:10.0.2.114, IP Address:10.0.2.115, IP Address:10.0.2.116, IP Address:10.0.2.117, IP Address:10.0.2.118, IP Address:10.0.2.119, IP Address:10.0.2.120, IP Address:10.0.2.121, IP Address:10.0.2.122, IP Address:10.0.2.123, IP Address:10.0.2.124, IP Address:10.0.2.125, IP Address:10.0.2.126, IP Address:10.0.2.127, IP Address:10.0.2.128, IP Address:10.0.2.129, IP Address:10.0.2.130, IP Address:10.0.2.131, IP Address:10.0.2.132, IP Address:10.0.2.133, IP Address:10.0.2.134, IP Address:10.0.2.135, IP Address:10.0.2.136, IP Address:10.0.2.137, IP Address:10.0.2.138, IP Address:10.0.2.139, IP Address:10.0.2.140, IP Address:10.0.2.141, IP Address:10.0.2.142, IP Address:10.0.2.143, IP Address:10.0.2.144, IP Address:10.0.2.145, IP Address:10.0.2.146, IP Address:10.0.2.147, IP Address:10.0.2.148, IP Address:10.0.2.149, IP Address:10.0.2.150, IP Address:10.0.2.151, IP Address:10.0.2.152, IP Address:10.0.2.153, IP Address:10.0.2.154, IP Address:10.0.2.155, IP Address:10.0.2.156, IP Address:10.0.2.157, IP Address:10.0.2.158, IP Address:10.0.2.159, IP Address:10.0.2.160, IP Address:10.0.2.161, IP Address:10.0.2.162, IP Address:10.0.2.163, IP Address:10.0.2.164, IP Address:10.0.2.165, IP Address:10.0.2.166, IP Address:10.0.2.167, IP Address:10.0.2.168, IP Address:10.0.2.169, IP Address:10.0.2.170, IP Address:10.0.2.171, IP Address:10.0.2.172, IP Address:10.0.2.173, IP Address:10.0.2.174, IP Address:10.0.2.175, IP Address:10.0.2.176, IP Address:10.0.2.177, IP Address:10.0.2.178, IP Address:10.0.2.179, IP Address:10.0.2.180, IP Address:10.0.2.181, IP Address:10.0.2.182, IP Address:10.0.2.183, IP Address:10.0.2.184, IP Address:10.0.2.185, IP Address:10.0.2.186, IP Address:10.0.2.187, IP Address:10.0.2.188, IP Address:10.0.2.189, IP Address:10.0.2.190, IP Address:10.0.2.191, IP Address:10.0.2.192, IP Address:10.0.2.193, IP Address:10.0.2.194, IP Address:10.0.2.195, IP Address:10.0.2.196, IP Address:10.0.2.197, IP Address:10.0.2.198, IP Address:10.0.2.199, IP Address:10.0.2.200, IP Address:10.0.2.201, IP Address:10.0.2.202, IP Address:10.0.2.203, IP Address:10.0.2.204, IP Address:10.0.2.205, IP Address:10.0.2.206, IP Address:10.0.2.207, IP Address:10.0.2.208, IP Address:10.0.2.209, IP Address:10.0.2.210, IP Address:10.0.2.211, IP Address:10.0.2.212, IP Address:10.0.2.213, IP Address:10.0.2.214, IP Address:10.0.2.215, IP Address:10.0.2.216, IP Address:10.0.2.217, IP Address:10.0.2.218, IP Address:10.0.2.219, IP Address:10.0.2.220, IP Address:10.0.2.221, IP Address:10.0.2.222, IP Address:10.0.2.223, IP Address:10.0.2.224, IP Address:10.0.2.225, IP Address:10.0.2.226, IP Address:10.0.2.227, IP Address:10.0.2.228, IP Address:10.0.2.229, IP Address:10.0.2.230, IP Address:10.0.2.231, IP Address:10.0.2.232, IP Address:10.0.2.233, IP Address:10.0.2.234, IP Address:10.0.2.235, IP Address:10.0.2.236, IP Address:10.0.2.237, IP Address:10.0.2.238, IP Address:10.0.2.239, IP Address:10.0.2.240, IP Address:10.0.2.241, IP Address:10.0.2.242, IP Address:10.0.2.243, IP Address:10.0.2.244, IP Address:10.0.2.245, IP Address:10.0.2.246, IP Address:10.0.2.247, IP Address:10.0.2.248, IP Address:10.0.2.249, IP Address:10.0.2.250, IP Address:10.0.2.251, IP Address:10.0.2.252, IP Address:10.0.2.253, IP Address:10.0.2.254, IP Address:10.0.2.255, IP Address:10.0.3.0, IP Address:10.0.3.1, IP Address:10.0.3.2, IP Address:10.0.3.3, IP Address:10.0.3.4, IP Address:10.0.3.5, IP Address:10.0.3.6, IP Address:10.0.3.7, IP Address:10.0.3.8, IP Address:10.0.3.9, IP Address:10.0.3.10, IP Address:10.0.3.11, IP Address:10.0.3.12, IP Address:10.0.3.13, IP Address:10.0.3.14, IP Address:10.0.3.15, IP Address:10.0.3.16, IP Address:10.0.3.17, IP Address:10.0.3.18, IP Address:10.0.3.19, IP Address:10.0.3.20, IP Address:10.0.3.21, IP Address:10.0.3.22, IP Address:10.0.3.23, IP Address:10.0.3.24, IP Address:10.0.3.25, IP Address:10.0.3.26, IP Address:10.0.3.27, IP Address:10.0.3.28, IP Address:10.0.3.29, IP Address:10.0.3.30, IP Address:10.0.3.31, IP Address:10.0.3.32, IP Address:10.0.3.33, IP Address:10.0.3.34, IP Address:10.0.3.35, IP Address:10.0.3.36, IP Address:10.0.3.37, IP Address:10.0.3.38, IP Address:10.0.3.39, IP Address:10.0.3.40, IP Address:10.0.3.41, IP Address:10.0.3.42, IP Address:10.0.3.43, IP Address:10.0.3.44, IP Address:10.0.3.45, IP Address:10.0.3.46, IP Address:10.0.3.47, IP Address:10.0.3.48, IP Address:10.0.3.49, IP Address:10.0.3.50, IP Address:10.0.3.51, IP Address:10.0.3.52, IP Address:10.0.3.53, IP Address:10.0.3.54, IP Address:10.0.3.55, IP Address:10.0.3.56, IP Address:10.0.3.57, IP Address:10.0.3.58, IP Address:10.0.3.59, IP Address:10.0.3.60, IP Address:10.0.3.61, IP Address:10.0.3.62, IP Address:10.0.3.63, IP Address:10.0.3.64, IP Address:10.0.3.65, IP Address:10.0.3.66, IP Address:10.0.3.67, IP Address:10.0.3.68, IP Address:10.0.3.69, IP Address:10.0.3.70, IP Address:10.0.3.71, IP Address:10.0.3.72, IP Address:10.0.3.73, IP Address:10.0.3.74, IP Address:10.0.3.75, IP Address:10.0.3.76, IP Address:10.0.3.77, IP Address:10.0.3.78, IP Address:10.0.3.79, IP Address:10.0.3.80, IP Address:10.0.3.81, IP Address:10.0.3.82, IP Address:10.0.3.83, IP Address:10.0.3.84, IP Address:10.0.3.85, IP Address:10.0.3.86, IP Address:10.0.3.87, IP Address:10.0.3.88, IP Address:10.0.3.89, IP Address:10.0.3.90, IP Address:10.0.3.91, IP Address:10.0.3.92, IP Address:10.0.3.93, IP Address:10.0.3.94, IP Address:10.0.3.95, IP Address:10.0.3.96, IP Address:10.0.3.97, IP Address:10.0.3.98, IP Address:10.0.3.99, IP Address:10.0.3.100, IP Address:10.0.3.101, IP Address:10.0.3.102, IP Address:10.0.3.103, IP Address:10.0.3.104, IP Address:10.0.3.105, IP Address:10.0.3.106, IP Address:10.0.3.107, IP Address:10.0.3.108, IP Address:10.0.3.109, IP Address:10.0.3.110, IP Address:10.0.3.111, IP Address:10.0.3.112, IP Address:10.0.3.113, IP Address:10.0.3.114, IP Address:10.0.3.115, IP Address:10.0.3.116, IP Address:10.0.3.117, IP Address:10.0.3.118, IP Address:10.0.3.119, IP Address:10.0.3.120, IP Address:10.0.3.121, IP Address:10.0.3.122, IP Address:10.0.3.123, IP Address:10.0.3.124, IP Address:10.0.3.125, IP Address:10.0.3.126, IP Address:10.0.3.127, IP Address:10.0.3.128, IP Address:10.0.3.129, IP Address:10.0.3.130, IP Address:10.0.3.131, IP Address:10.0.3.132, IP Address:10.0.3.133, IP Address:10.0.3.134, IP Address:10.0.3.135, IP Address:10.0.3.136, IP Address:10.0.3.137, IP Address:10.0.3.138, IP Address:10.0.3.139, IP Address:10.0.3.140, IP Address:10.0.3.141, IP Address:10.0.3.142, IP Address:10.0.3.143, IP Address:10.0.3.144, IP Address:10.0.3.145, IP Address:10.0.3.146, IP Address:10.0.3.147, IP Address:10.0.3.148, IP Address:10.0.3.149, IP Address:10.0.3.150, IP Address:10.0.3.151, IP Address:10.0.3.152, IP Address:10.0.3.153, IP Address:10.0.3.154, IP Address:10.0.3.155, IP Address:10.0.3.156, IP Address:10.0.3.157, IP Address:10.0.3.158, IP Address:10.0.3.159, IP Address:10.0.3.160, IP Address:10.0.3.161, IP Address:10.0.3.162, IP Address:10.0.3.163, IP Address:10.0.3.164, IP Address:10.0.3.165, IP Address:10.0.3.166, IP Address:10.0.3.167, IP Address:10.0.3.168, IP Address:10.0.3.169, IP Address:10.0.3.170, IP Address:10.0.3.171, IP Address:10.0.3.172, IP Address:10.0.3.173, IP Address:10.0.3.174, IP Address:10.0.3.175, IP Address:10.0.3.176, IP Address:10.0.3.177, IP Address:10.0.3.178, IP Address:10.0.3.179, IP Address:10.0.3.180, IP Address:10.0.3.181, IP Address:10.0.3.182, IP Address:10.0.3.183, IP Address:10.0.3.184, IP Address:10.0.3.185, IP Address:10.0.3.186, IP Address:10.0.3.187, IP Address:10.0.3.188, IP Address:10.0.3.189, IP Address:10.0.3.190, IP Address:10.0.3.191, IP Address:10.0.3.192, IP Address:10.0.3.193, IP Address:10.0.3.194, IP Address:10.0.3.195, IP Address:10.0.3.196, IP Address:10.0.3.197, IP Address:10.0.3.198, IP Address:10.0.3.199, IP Address:10.0.3.200, IP Address:10.0.3.201, IP Address:10.0.3.202, IP Address:10.0.3.203, IP Address:10.0.3.204, IP Address:10.0.3.205, IP Address:10.0.3.206, IP Address:10.0.3.207, IP Address:10.0.3.208, IP Address:10.0.3.209, IP Address:10.0.3.210, IP Address:10.0.3.211, IP Address:10.0.3.212, IP Address:10.0.3.213, IP Address:10.0.3.214, IP Address:10.0.3.215, IP Address:10.0.3.216, IP Address:10.0.3.217, IP Address:10.0.3.218, IP Address:10.0.3.219, IP Address:10.0.3.220, IP Address:10.0.3.221, IP Address:10.0.3.222, IP Address:10.0.3.223, IP Address:10.0.3.224, IP Address:10.0.3.225, IP Address:10.0.3.226, IP Address:10.0.3.227, IP Address:10.0.3.228, IP Address:10.0.3.229, IP Address:10.0.3.230, IP Address:10.0.3.231, IP Address:10.0.3.232, IP Address:10.0.3.233, IP Address:10.0.3.234, IP Address:10.0.3.235, IP Address:10.0.3.236, IP Address:10.0.3.237, IP Address:10.0.3.238, IP Address:10.0.3.239, IP Address:10.0.3.240, IP Address:10.0.3.241, IP Address:10.0.3.242, IP Address:10.0.3.243, IP Address:10.0.3.244, IP Address:10.0.3.245, IP Address:10.0.3.246, IP Address:10.0.3.247, IP Address:10.0.3.248, IP Address:10.0.3.249, IP Address:10.0.3.250, IP Address:10.0.3.251, IP Address:10.0.3.252, IP Address:10.0.3.253, IP Address:10.0.3.254, IP Address:10.0.3.255, IP Address:10.0.4.0 -- Signature Algorithm: sha256WithRSAEncryption -- 7d:aa:54:38:c1:c7:b0:75:bf:a5:04:21:55:2a:32:fb:31:a9: -- e1:c8:17:7a:90:98:26:a7:ad:7d:37:89:b7:59:b0:05:c6:71: -- ab:d3:18:c0:2f:62:35:99:c2:69:06:4e:ce:95:9c:e6:ca:db: -- e4:41:d8:4d:61:7c:83:69:78:2a:a7:e5:d5:88:2d:fb:2d:ea: -- 76:34:7c:bd:ff:e2:84:ef:49:e9:7a:8b:ea:41:b4:2e:d7:88: -- cf:5a:70:69:94:57:d9:4f:4d:2d:d2:95:96:0f:9f:66:f3:99: -- ea:e5:31:8d:d5:82:46:83:35:52:85:e9:71:f2:36:e3:c1:2a: -- 53:d2:b7:3d:71:4c:af:be:7f:45:a2:23:28:ca:d5:77:86:e4: -- 96:bd:bf:4f:45:0f:5d:64:90:36:b1:e7:86:08:2a:fe:4e:9e: -- 27:33:76:a8:c1:6a:33:5b:fd:98:a2:28:5c:40:84:1d:22:e4: -- 0b:1b:fa:db:b5:77:6e:df:66:26:e2:7f:7b:fa:1d:00:8d:c2: -- a3:52:f3:90:33:ee:a7:b1:67:88:10:4b:7d:e3:3f:65:fd:4a: -- 2d:f2:06:7e:18:12:2f:d7:2e:df:a4:6f:28:2c:d4:f2:82:34: -- 87:24:0c:6f:5c:18:50:de:39:05:5a:40:c6:2b:9c:1b:79:d5: -- 30:09:0b:db -------BEGIN CERTIFICATE----- --MIIbtDCCGpygAwIBAgITL6u0PdzAd4AqAwmtQ3QCv5jY3TANBgkqhkiG9w0BAQsF --ADAXMRUwEwYDVQQDDAxJbnRlcm1lZGlhdGUwHhcNMjExMDA1MTIwMDAwWhcNMjIx --MDA1MTIwMDAwWjANMQswCQYDVQQDDAJ0MDCCASIwDQYJKoZIhvcNAQEBBQADggEP --ADCCAQoCggEBANssUwHO+RqDNlJRKltCY94ydRFqfbCh5HdHm3Hlpi1k165bBO16 --P8f2yisrrc1siKWONvvnoiK1fVR56dV6W8orKWwNhAoQxCG2WJi7DbYMjVZbLIVZ --B8oGRjYlGimOxDm3wzHObknCAc+wOydDiuPVBh8tk53dekVlbf20scAQWULyHo/O --Q6yXJcF84lHhRDVblKoDbtpxLyV/WDAB4RIXHvKqbCKAscll6neVswfE93I4NP6g --QzNMZm2h6KEEvG8UOTlELjg3dMkKIYWRIbdOurCZSnaYe1jKHNOwQMPZKnX76xnq --4xqYMVKX6X+keyF/L9xiho/9/aiI6EtEUr0CAwEAAaOCGQEwghj9MB0GA1UdDgQW --BBQ7tAXMqrpRPfzy+R4lU3LhOvKa3zAfBgNVHSMEGDAWgBSSET+sEZbHZjfPg1ok --8Dp3rzONfzA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAKGI2h0dHA6Ly91cmwt --Zm9yLWFpYS9JbnRlcm1lZGlhdGUuY2VyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6 --Ly91cmwtZm9yLWNybC9JbnRlcm1lZGlhdGUuY3JsMA4GA1UdDwEB/wQEAwIFoDAd --BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwghgTBgNVHREEghgKMIIYBocE --CgAAAIcECgAAAYcECgAAAocECgAAA4cECgAABIcECgAABYcECgAABocECgAAB4cE --CgAACIcECgAACYcECgAACocECgAAC4cECgAADIcECgAADYcECgAADocECgAAD4cE --CgAAEIcECgAAEYcECgAAEocECgAAE4cECgAAFIcECgAAFYcECgAAFocECgAAF4cE --CgAAGIcECgAAGYcECgAAGocECgAAG4cECgAAHIcECgAAHYcECgAAHocECgAAH4cE --CgAAIIcECgAAIYcECgAAIocECgAAI4cECgAAJIcECgAAJYcECgAAJocECgAAJ4cE --CgAAKIcECgAAKYcECgAAKocECgAAK4cECgAALIcECgAALYcECgAALocECgAAL4cE --CgAAMIcECgAAMYcECgAAMocECgAAM4cECgAANIcECgAANYcECgAANocECgAAN4cE --CgAAOIcECgAAOYcECgAAOocECgAAO4cECgAAPIcECgAAPYcECgAAPocECgAAP4cE --CgAAQIcECgAAQYcECgAAQocECgAAQ4cECgAARIcECgAARYcECgAARocECgAAR4cE --CgAASIcECgAASYcECgAASocECgAAS4cECgAATIcECgAATYcECgAATocECgAAT4cE --CgAAUIcECgAAUYcECgAAUocECgAAU4cECgAAVIcECgAAVYcECgAAVocECgAAV4cE --CgAAWIcECgAAWYcECgAAWocECgAAW4cECgAAXIcECgAAXYcECgAAXocECgAAX4cE --CgAAYIcECgAAYYcECgAAYocECgAAY4cECgAAZIcECgAAZYcECgAAZocECgAAZ4cE --CgAAaIcECgAAaYcECgAAaocECgAAa4cECgAAbIcECgAAbYcECgAAbocECgAAb4cE --CgAAcIcECgAAcYcECgAAcocECgAAc4cECgAAdIcECgAAdYcECgAAdocECgAAd4cE --CgAAeIcECgAAeYcECgAAeocECgAAe4cECgAAfIcECgAAfYcECgAAfocECgAAf4cE --CgAAgIcECgAAgYcECgAAgocECgAAg4cECgAAhIcECgAAhYcECgAAhocECgAAh4cE --CgAAiIcECgAAiYcECgAAiocECgAAi4cECgAAjIcECgAAjYcECgAAjocECgAAj4cE --CgAAkIcECgAAkYcECgAAkocECgAAk4cECgAAlIcECgAAlYcECgAAlocECgAAl4cE --CgAAmIcECgAAmYcECgAAmocECgAAm4cECgAAnIcECgAAnYcECgAAnocECgAAn4cE --CgAAoIcECgAAoYcECgAAoocECgAAo4cECgAApIcECgAApYcECgAApocECgAAp4cE --CgAAqIcECgAAqYcECgAAqocECgAAq4cECgAArIcECgAArYcECgAArocECgAAr4cE --CgAAsIcECgAAsYcECgAAsocECgAAs4cECgAAtIcECgAAtYcECgAAtocECgAAt4cE --CgAAuIcECgAAuYcECgAAuocECgAAu4cECgAAvIcECgAAvYcECgAAvocECgAAv4cE --CgAAwIcECgAAwYcECgAAwocECgAAw4cECgAAxIcECgAAxYcECgAAxocECgAAx4cE --CgAAyIcECgAAyYcECgAAyocECgAAy4cECgAAzIcECgAAzYcECgAAzocECgAAz4cE --CgAA0IcECgAA0YcECgAA0ocECgAA04cECgAA1IcECgAA1YcECgAA1ocECgAA14cE --CgAA2IcECgAA2YcECgAA2ocECgAA24cECgAA3IcECgAA3YcECgAA3ocECgAA34cE --CgAA4IcECgAA4YcECgAA4ocECgAA44cECgAA5IcECgAA5YcECgAA5ocECgAA54cE --CgAA6IcECgAA6YcECgAA6ocECgAA64cECgAA7IcECgAA7YcECgAA7ocECgAA74cE --CgAA8IcECgAA8YcECgAA8ocECgAA84cECgAA9IcECgAA9YcECgAA9ocECgAA94cE --CgAA+IcECgAA+YcECgAA+ocECgAA+4cECgAA/IcECgAA/YcECgAA/ocECgAA/4cE --CgABAIcECgABAYcECgABAocECgABA4cECgABBIcECgABBYcECgABBocECgABB4cE --CgABCIcECgABCYcECgABCocECgABC4cECgABDIcECgABDYcECgABDocECgABD4cE --CgABEIcECgABEYcECgABEocECgABE4cECgABFIcECgABFYcECgABFocECgABF4cE --CgABGIcECgABGYcECgABGocECgABG4cECgABHIcECgABHYcECgABHocECgABH4cE --CgABIIcECgABIYcECgABIocECgABI4cECgABJIcECgABJYcECgABJocECgABJ4cE --CgABKIcECgABKYcECgABKocECgABK4cECgABLIcECgABLYcECgABLocECgABL4cE --CgABMIcECgABMYcECgABMocECgABM4cECgABNIcECgABNYcECgABNocECgABN4cE --CgABOIcECgABOYcECgABOocECgABO4cECgABPIcECgABPYcECgABPocECgABP4cE --CgABQIcECgABQYcECgABQocECgABQ4cECgABRIcECgABRYcECgABRocECgABR4cE --CgABSIcECgABSYcECgABSocECgABS4cECgABTIcECgABTYcECgABTocECgABT4cE --CgABUIcECgABUYcECgABUocECgABU4cECgABVIcECgABVYcECgABVocECgABV4cE --CgABWIcECgABWYcECgABWocECgABW4cECgABXIcECgABXYcECgABXocECgABX4cE --CgABYIcECgABYYcECgABYocECgABY4cECgABZIcECgABZYcECgABZocECgABZ4cE --CgABaIcECgABaYcECgABaocECgABa4cECgABbIcECgABbYcECgABbocECgABb4cE --CgABcIcECgABcYcECgABcocECgABc4cECgABdIcECgABdYcECgABdocECgABd4cE --CgABeIcECgABeYcECgABeocECgABe4cECgABfIcECgABfYcECgABfocECgABf4cE --CgABgIcECgABgYcECgABgocECgABg4cECgABhIcECgABhYcECgABhocECgABh4cE --CgABiIcECgABiYcECgABiocECgABi4cECgABjIcECgABjYcECgABjocECgABj4cE --CgABkIcECgABkYcECgABkocECgABk4cECgABlIcECgABlYcECgABlocECgABl4cE --CgABmIcECgABmYcECgABmocECgABm4cECgABnIcECgABnYcECgABnocECgABn4cE --CgABoIcECgABoYcECgABoocECgABo4cECgABpIcECgABpYcECgABpocECgABp4cE --CgABqIcECgABqYcECgABqocECgABq4cECgABrIcECgABrYcECgABrocECgABr4cE --CgABsIcECgABsYcECgABsocECgABs4cECgABtIcECgABtYcECgABtocECgABt4cE --CgABuIcECgABuYcECgABuocECgABu4cECgABvIcECgABvYcECgABvocECgABv4cE --CgABwIcECgABwYcECgABwocECgABw4cECgABxIcECgABxYcECgABxocECgABx4cE --CgAByIcECgAByYcECgAByocECgABy4cECgABzIcECgABzYcECgABzocECgABz4cE --CgAB0IcECgAB0YcECgAB0ocECgAB04cECgAB1IcECgAB1YcECgAB1ocECgAB14cE --CgAB2IcECgAB2YcECgAB2ocECgAB24cECgAB3IcECgAB3YcECgAB3ocECgAB34cE --CgAB4IcECgAB4YcECgAB4ocECgAB44cECgAB5IcECgAB5YcECgAB5ocECgAB54cE --CgAB6IcECgAB6YcECgAB6ocECgAB64cECgAB7IcECgAB7YcECgAB7ocECgAB74cE --CgAB8IcECgAB8YcECgAB8ocECgAB84cECgAB9IcECgAB9YcECgAB9ocECgAB94cE --CgAB+IcECgAB+YcECgAB+ocECgAB+4cECgAB/IcECgAB/YcECgAB/ocECgAB/4cE --CgACAIcECgACAYcECgACAocECgACA4cECgACBIcECgACBYcECgACBocECgACB4cE --CgACCIcECgACCYcECgACCocECgACC4cECgACDIcECgACDYcECgACDocECgACD4cE --CgACEIcECgACEYcECgACEocECgACE4cECgACFIcECgACFYcECgACFocECgACF4cE --CgACGIcECgACGYcECgACGocECgACG4cECgACHIcECgACHYcECgACHocECgACH4cE --CgACIIcECgACIYcECgACIocECgACI4cECgACJIcECgACJYcECgACJocECgACJ4cE --CgACKIcECgACKYcECgACKocECgACK4cECgACLIcECgACLYcECgACLocECgACL4cE --CgACMIcECgACMYcECgACMocECgACM4cECgACNIcECgACNYcECgACNocECgACN4cE --CgACOIcECgACOYcECgACOocECgACO4cECgACPIcECgACPYcECgACPocECgACP4cE --CgACQIcECgACQYcECgACQocECgACQ4cECgACRIcECgACRYcECgACRocECgACR4cE --CgACSIcECgACSYcECgACSocECgACS4cECgACTIcECgACTYcECgACTocECgACT4cE --CgACUIcECgACUYcECgACUocECgACU4cECgACVIcECgACVYcECgACVocECgACV4cE --CgACWIcECgACWYcECgACWocECgACW4cECgACXIcECgACXYcECgACXocECgACX4cE --CgACYIcECgACYYcECgACYocECgACY4cECgACZIcECgACZYcECgACZocECgACZ4cE --CgACaIcECgACaYcECgACaocECgACa4cECgACbIcECgACbYcECgACbocECgACb4cE --CgACcIcECgACcYcECgACcocECgACc4cECgACdIcECgACdYcECgACdocECgACd4cE --CgACeIcECgACeYcECgACeocECgACe4cECgACfIcECgACfYcECgACfocECgACf4cE --CgACgIcECgACgYcECgACgocECgACg4cECgAChIcECgAChYcECgAChocECgACh4cE --CgACiIcECgACiYcECgACiocECgACi4cECgACjIcECgACjYcECgACjocECgACj4cE --CgACkIcECgACkYcECgACkocECgACk4cECgAClIcECgAClYcECgAClocECgACl4cE --CgACmIcECgACmYcECgACmocECgACm4cECgACnIcECgACnYcECgACnocECgACn4cE --CgACoIcECgACoYcECgACoocECgACo4cECgACpIcECgACpYcECgACpocECgACp4cE --CgACqIcECgACqYcECgACqocECgACq4cECgACrIcECgACrYcECgACrocECgACr4cE --CgACsIcECgACsYcECgACsocECgACs4cECgACtIcECgACtYcECgACtocECgACt4cE --CgACuIcECgACuYcECgACuocECgACu4cECgACvIcECgACvYcECgACvocECgACv4cE --CgACwIcECgACwYcECgACwocECgACw4cECgACxIcECgACxYcECgACxocECgACx4cE --CgACyIcECgACyYcECgACyocECgACy4cECgACzIcECgACzYcECgACzocECgACz4cE --CgAC0IcECgAC0YcECgAC0ocECgAC04cECgAC1IcECgAC1YcECgAC1ocECgAC14cE --CgAC2IcECgAC2YcECgAC2ocECgAC24cECgAC3IcECgAC3YcECgAC3ocECgAC34cE --CgAC4IcECgAC4YcECgAC4ocECgAC44cECgAC5IcECgAC5YcECgAC5ocECgAC54cE --CgAC6IcECgAC6YcECgAC6ocECgAC64cECgAC7IcECgAC7YcECgAC7ocECgAC74cE --CgAC8IcECgAC8YcECgAC8ocECgAC84cECgAC9IcECgAC9YcECgAC9ocECgAC94cE --CgAC+IcECgAC+YcECgAC+ocECgAC+4cECgAC/IcECgAC/YcECgAC/ocECgAC/4cE --CgADAIcECgADAYcECgADAocECgADA4cECgADBIcECgADBYcECgADBocECgADB4cE --CgADCIcECgADCYcECgADCocECgADC4cECgADDIcECgADDYcECgADDocECgADD4cE --CgADEIcECgADEYcECgADEocECgADE4cECgADFIcECgADFYcECgADFocECgADF4cE --CgADGIcECgADGYcECgADGocECgADG4cECgADHIcECgADHYcECgADHocECgADH4cE --CgADIIcECgADIYcECgADIocECgADI4cECgADJIcECgADJYcECgADJocECgADJ4cE --CgADKIcECgADKYcECgADKocECgADK4cECgADLIcECgADLYcECgADLocECgADL4cE --CgADMIcECgADMYcECgADMocECgADM4cECgADNIcECgADNYcECgADNocECgADN4cE --CgADOIcECgADOYcECgADOocECgADO4cECgADPIcECgADPYcECgADPocECgADP4cE --CgADQIcECgADQYcECgADQocECgADQ4cECgADRIcECgADRYcECgADRocECgADR4cE --CgADSIcECgADSYcECgADSocECgADS4cECgADTIcECgADTYcECgADTocECgADT4cE --CgADUIcECgADUYcECgADUocECgADU4cECgADVIcECgADVYcECgADVocECgADV4cE --CgADWIcECgADWYcECgADWocECgADW4cECgADXIcECgADXYcECgADXocECgADX4cE --CgADYIcECgADYYcECgADYocECgADY4cECgADZIcECgADZYcECgADZocECgADZ4cE --CgADaIcECgADaYcECgADaocECgADa4cECgADbIcECgADbYcECgADbocECgADb4cE --CgADcIcECgADcYcECgADcocECgADc4cECgADdIcECgADdYcECgADdocECgADd4cE --CgADeIcECgADeYcECgADeocECgADe4cECgADfIcECgADfYcECgADfocECgADf4cE --CgADgIcECgADgYcECgADgocECgADg4cECgADhIcECgADhYcECgADhocECgADh4cE --CgADiIcECgADiYcECgADiocECgADi4cECgADjIcECgADjYcECgADjocECgADj4cE --CgADkIcECgADkYcECgADkocECgADk4cECgADlIcECgADlYcECgADlocECgADl4cE --CgADmIcECgADmYcECgADmocECgADm4cECgADnIcECgADnYcECgADnocECgADn4cE --CgADoIcECgADoYcECgADoocECgADo4cECgADpIcECgADpYcECgADpocECgADp4cE --CgADqIcECgADqYcECgADqocECgADq4cECgADrIcECgADrYcECgADrocECgADr4cE --CgADsIcECgADsYcECgADsocECgADs4cECgADtIcECgADtYcECgADtocECgADt4cE --CgADuIcECgADuYcECgADuocECgADu4cECgADvIcECgADvYcECgADvocECgADv4cE --CgADwIcECgADwYcECgADwocECgADw4cECgADxIcECgADxYcECgADxocECgADx4cE --CgADyIcECgADyYcECgADyocECgADy4cECgADzIcECgADzYcECgADzocECgADz4cE --CgAD0IcECgAD0YcECgAD0ocECgAD04cECgAD1IcECgAD1YcECgAD1ocECgAD14cE --CgAD2IcECgAD2YcECgAD2ocECgAD24cECgAD3IcECgAD3YcECgAD3ocECgAD34cE --CgAD4IcECgAD4YcECgAD4ocECgAD44cECgAD5IcECgAD5YcECgAD5ocECgAD54cE --CgAD6IcECgAD6YcECgAD6ocECgAD64cECgAD7IcECgAD7YcECgAD7ocECgAD74cE --CgAD8IcECgAD8YcECgAD8ocECgAD84cECgAD9IcECgAD9YcECgAD9ocECgAD94cE --CgAD+IcECgAD+YcECgAD+ocECgAD+4cECgAD/IcECgAD/YcECgAD/ocECgAD/4cE --CgAEADANBgkqhkiG9w0BAQsFAAOCAQEAfapUOMHHsHW/pQQhVSoy+zGp4cgXepCY --JqetfTeJt1mwBcZxq9MYwC9iNZnCaQZOzpWc5srb5EHYTWF8g2l4Kqfl1Ygt+y3q --djR8vf/ihO9J6XqL6kG0LteIz1pwaZRX2U9NLdKVlg+fZvOZ6uUxjdWCRoM1UoXp --cfI248EqU9K3PXFMr75/RaIjKMrVd4bklr2/T0UPXWSQNrHnhggq/k6eJzN2qMFq --M1v9mKIoXECEHSLkCxv627V3bt9mJuJ/e/odAI3Co1LzkDPup7FniBBLfeM/Zf1K --LfIGfhgSL9cu36RvKCzU8oI0hyQMb1wYUN45BVpAxiucG3nVMAkL2w== -------END CERTIFICATE----- -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:ff -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Root -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=Intermediate -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:bb:3b:db:04:6e:17:e0:54:52:ba:23:77:24:bc: -- 34:e3:70:d9:99:9e:53:5d:33:0b:a9:cc:4b:1d:ae: -- 06:27:18:8e:55:ba:ad:12:c7:1d:32:59:6d:c3:16: -- 20:db:62:a6:77:80:12:e0:87:58:51:55:e3:66:7f: -- d1:e0:3a:22:65:e5:70:26:a2:04:04:f0:5d:f9:5f: -- 56:c8:da:e8:0f:57:28:77:6e:9a:a0:4a:53:34:1a: -- 63:37:a2:43:ab:0e:4a:cd:07:23:dd:55:83:44:00: -- 0c:70:41:df:35:64:d0:c5:0e:6a:87:db:ca:fc:35: -- d5:e2:5b:af:0b:a0:e6:75:a5:d2:e1:72:4e:22:63: -- 01:41:73:b8:95:50:2c:fd:ed:c3:61:b6:36:d4:83: -- 95:61:c3:e0:61:ff:f4:9e:8a:e8:ba:dc:d1:f6:89: -- ed:9d:30:44:95:27:f4:d1:8b:e6:2f:14:66:56:f1: -- da:f1:cc:04:1b:77:92:a5:9f:58:40:0c:9f:0c:32: -- d6:05:c2:4c:c0:c5:9f:e5:a4:30:3d:4c:e9:9d:03: -- 6c:4c:06:b6:e5:95:bd:21:b8:e6:2b:a8:a0:bf:06: -- bb:43:33:19:3d:7b:17:59:f1:64:4d:24:67:b1:51: -- 0f:35:ae:f0:71:75:79:ae:5b:02:34:04:31:e3:66: -- 86:65 -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- 92:11:3F:AC:11:96:C7:66:37:CF:83:5A:24:F0:3A:77:AF:33:8D:7F -- X509v3 Authority Key Identifier: -- keyid:B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Root.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Root.crl -- -- X509v3 Key Usage: critical -- Certificate Sign, CRL Sign -- X509v3 Basic Constraints: critical -- CA:TRUE -- X509v3 Name Constraints: -- Permitted: -- DNS:t0.test -- DNS:t1.test -- DNS:t2.test -- DNS:t3.test -- DNS:t4.test -- DNS:t5.test -- DNS:t6.test -- DNS:t7.test -- DNS:t8.test -- DNS:t9.test -- DNS:t10.test -- DNS:t11.test -- DNS:t12.test -- DNS:t13.test -- DNS:t14.test -- DNS:t15.test -- DNS:t16.test -- DNS:t17.test -- DNS:t18.test -- DNS:t19.test -- DNS:t20.test -- DNS:t21.test -- DNS:t22.test -- DNS:t23.test -- DNS:t24.test -- DNS:t25.test -- DNS:t26.test -- DNS:t27.test -- DNS:t28.test -- DNS:t29.test -- DNS:t30.test -- DNS:t31.test -- DNS:t32.test -- DNS:t33.test -- DNS:t34.test -- DNS:t35.test -- DNS:t36.test -- DNS:t37.test -- DNS:t38.test -- DNS:t39.test -- DNS:t40.test -- DNS:t41.test -- DNS:t42.test -- DNS:t43.test -- DNS:t44.test -- DNS:t45.test -- DNS:t46.test -- DNS:t47.test -- DNS:t48.test -- DNS:t49.test -- DNS:t50.test -- DNS:t51.test -- DNS:t52.test -- DNS:t53.test -- DNS:t54.test -- DNS:t55.test -- DNS:t56.test -- DNS:t57.test -- DNS:t58.test -- DNS:t59.test -- DNS:t60.test -- DNS:t61.test -- DNS:t62.test -- DNS:t63.test -- DNS:t64.test -- DNS:t65.test -- DNS:t66.test -- DNS:t67.test -- DNS:t68.test -- DNS:t69.test -- DNS:t70.test -- DNS:t71.test -- DNS:t72.test -- DNS:t73.test -- DNS:t74.test -- DNS:t75.test -- DNS:t76.test -- DNS:t77.test -- DNS:t78.test -- DNS:t79.test -- DNS:t80.test -- DNS:t81.test -- DNS:t82.test -- DNS:t83.test -- DNS:t84.test -- DNS:t85.test -- DNS:t86.test -- DNS:t87.test -- DNS:t88.test -- DNS:t89.test -- DNS:t90.test -- DNS:t91.test -- DNS:t92.test -- DNS:t93.test -- DNS:t94.test -- DNS:t95.test -- DNS:t96.test -- DNS:t97.test -- DNS:t98.test -- DNS:t99.test -- DNS:t100.test -- DNS:t101.test -- DNS:t102.test -- DNS:t103.test -- DNS:t104.test -- DNS:t105.test -- DNS:t106.test -- DNS:t107.test -- DNS:t108.test -- DNS:t109.test -- DNS:t110.test -- DNS:t111.test -- DNS:t112.test -- DNS:t113.test -- DNS:t114.test -- DNS:t115.test -- DNS:t116.test -- DNS:t117.test -- DNS:t118.test -- DNS:t119.test -- DNS:t120.test -- DNS:t121.test -- DNS:t122.test -- DNS:t123.test -- DNS:t124.test -- DNS:t125.test -- DNS:t126.test -- DNS:t127.test -- DNS:t128.test -- DNS:t129.test -- DNS:t130.test -- DNS:t131.test -- DNS:t132.test -- DNS:t133.test -- DNS:t134.test -- DNS:t135.test -- DNS:t136.test -- DNS:t137.test -- DNS:t138.test -- DNS:t139.test -- DNS:t140.test -- DNS:t141.test -- DNS:t142.test -- DNS:t143.test -- DNS:t144.test -- DNS:t145.test -- DNS:t146.test -- DNS:t147.test -- DNS:t148.test -- DNS:t149.test -- DNS:t150.test -- DNS:t151.test -- DNS:t152.test -- DNS:t153.test -- DNS:t154.test -- DNS:t155.test -- DNS:t156.test -- DNS:t157.test -- DNS:t158.test -- DNS:t159.test -- DNS:t160.test -- DNS:t161.test -- DNS:t162.test -- DNS:t163.test -- DNS:t164.test -- DNS:t165.test -- DNS:t166.test -- DNS:t167.test -- DNS:t168.test -- DNS:t169.test -- DNS:t170.test -- DNS:t171.test -- DNS:t172.test -- DNS:t173.test -- DNS:t174.test -- DNS:t175.test -- DNS:t176.test -- DNS:t177.test -- DNS:t178.test -- DNS:t179.test -- DNS:t180.test -- DNS:t181.test -- DNS:t182.test -- DNS:t183.test -- DNS:t184.test -- DNS:t185.test -- DNS:t186.test -- DNS:t187.test -- DNS:t188.test -- DNS:t189.test -- DNS:t190.test -- DNS:t191.test -- DNS:t192.test -- DNS:t193.test -- DNS:t194.test -- DNS:t195.test -- DNS:t196.test -- DNS:t197.test -- DNS:t198.test -- DNS:t199.test -- DNS:t200.test -- DNS:t201.test -- DNS:t202.test -- DNS:t203.test -- DNS:t204.test -- DNS:t205.test -- DNS:t206.test -- DNS:t207.test -- DNS:t208.test -- DNS:t209.test -- DNS:t210.test -- DNS:t211.test -- DNS:t212.test -- DNS:t213.test -- DNS:t214.test -- DNS:t215.test -- DNS:t216.test -- DNS:t217.test -- DNS:t218.test -- DNS:t219.test -- DNS:t220.test -- DNS:t221.test -- DNS:t222.test -- DNS:t223.test -- DNS:t224.test -- DNS:t225.test -- DNS:t226.test -- DNS:t227.test -- DNS:t228.test -- DNS:t229.test -- DNS:t230.test -- DNS:t231.test -- DNS:t232.test -- DNS:t233.test -- DNS:t234.test -- DNS:t235.test -- DNS:t236.test -- DNS:t237.test -- DNS:t238.test -- DNS:t239.test -- DNS:t240.test -- DNS:t241.test -- DNS:t242.test -- DNS:t243.test -- DNS:t244.test -- DNS:t245.test -- DNS:t246.test -- DNS:t247.test -- DNS:t248.test -- DNS:t249.test -- DNS:t250.test -- DNS:t251.test -- DNS:t252.test -- DNS:t253.test -- DNS:t254.test -- DNS:t255.test -- DNS:t256.test -- DNS:t257.test -- DNS:t258.test -- DNS:t259.test -- DNS:t260.test -- DNS:t261.test -- DNS:t262.test -- DNS:t263.test -- DNS:t264.test -- DNS:t265.test -- DNS:t266.test -- DNS:t267.test -- DNS:t268.test -- DNS:t269.test -- DNS:t270.test -- DNS:t271.test -- DNS:t272.test -- DNS:t273.test -- DNS:t274.test -- DNS:t275.test -- DNS:t276.test -- DNS:t277.test -- DNS:t278.test -- DNS:t279.test -- DNS:t280.test -- DNS:t281.test -- DNS:t282.test -- DNS:t283.test -- DNS:t284.test -- DNS:t285.test -- DNS:t286.test -- DNS:t287.test -- DNS:t288.test -- DNS:t289.test -- DNS:t290.test -- DNS:t291.test -- DNS:t292.test -- DNS:t293.test -- DNS:t294.test -- DNS:t295.test -- DNS:t296.test -- DNS:t297.test -- DNS:t298.test -- DNS:t299.test -- DNS:t300.test -- DNS:t301.test -- DNS:t302.test -- DNS:t303.test -- DNS:t304.test -- DNS:t305.test -- DNS:t306.test -- DNS:t307.test -- DNS:t308.test -- DNS:t309.test -- DNS:t310.test -- DNS:t311.test -- DNS:t312.test -- DNS:t313.test -- DNS:t314.test -- DNS:t315.test -- DNS:t316.test -- DNS:t317.test -- DNS:t318.test -- DNS:t319.test -- DNS:t320.test -- DNS:t321.test -- DNS:t322.test -- DNS:t323.test -- DNS:t324.test -- DNS:t325.test -- DNS:t326.test -- DNS:t327.test -- DNS:t328.test -- DNS:t329.test -- DNS:t330.test -- DNS:t331.test -- DNS:t332.test -- DNS:t333.test -- DNS:t334.test -- DNS:t335.test -- DNS:t336.test -- DNS:t337.test -- DNS:t338.test -- DNS:t339.test -- DNS:t340.test -- DNS:t341.test -- DNS:t342.test -- DNS:t343.test -- DNS:t344.test -- DNS:t345.test -- DNS:t346.test -- DNS:t347.test -- DNS:t348.test -- DNS:t349.test -- DNS:t350.test -- DNS:t351.test -- DNS:t352.test -- DNS:t353.test -- DNS:t354.test -- DNS:t355.test -- DNS:t356.test -- DNS:t357.test -- DNS:t358.test -- DNS:t359.test -- DNS:t360.test -- DNS:t361.test -- DNS:t362.test -- DNS:t363.test -- DNS:t364.test -- DNS:t365.test -- DNS:t366.test -- DNS:t367.test -- DNS:t368.test -- DNS:t369.test -- DNS:t370.test -- DNS:t371.test -- DNS:t372.test -- DNS:t373.test -- DNS:t374.test -- DNS:t375.test -- DNS:t376.test -- DNS:t377.test -- DNS:t378.test -- DNS:t379.test -- DNS:t380.test -- DNS:t381.test -- DNS:t382.test -- DNS:t383.test -- DNS:t384.test -- DNS:t385.test -- DNS:t386.test -- DNS:t387.test -- DNS:t388.test -- DNS:t389.test -- DNS:t390.test -- DNS:t391.test -- DNS:t392.test -- DNS:t393.test -- DNS:t394.test -- DNS:t395.test -- DNS:t396.test -- DNS:t397.test -- DNS:t398.test -- DNS:t399.test -- DNS:t400.test -- DNS:t401.test -- DNS:t402.test -- DNS:t403.test -- DNS:t404.test -- DNS:t405.test -- DNS:t406.test -- DNS:t407.test -- DNS:t408.test -- DNS:t409.test -- DNS:t410.test -- DNS:t411.test -- DNS:t412.test -- DNS:t413.test -- DNS:t414.test -- DNS:t415.test -- DNS:t416.test -- DNS:t417.test -- DNS:t418.test -- DNS:t419.test -- DNS:t420.test -- DNS:t421.test -- DNS:t422.test -- DNS:t423.test -- DNS:t424.test -- DNS:t425.test -- DNS:t426.test -- DNS:t427.test -- DNS:t428.test -- DNS:t429.test -- DNS:t430.test -- DNS:t431.test -- DNS:t432.test -- DNS:t433.test -- DNS:t434.test -- DNS:t435.test -- DNS:t436.test -- DNS:t437.test -- DNS:t438.test -- DNS:t439.test -- DNS:t440.test -- DNS:t441.test -- DNS:t442.test -- DNS:t443.test -- DNS:t444.test -- DNS:t445.test -- DNS:t446.test -- DNS:t447.test -- DNS:t448.test -- DNS:t449.test -- DNS:t450.test -- DNS:t451.test -- DNS:t452.test -- DNS:t453.test -- DNS:t454.test -- DNS:t455.test -- DNS:t456.test -- DNS:t457.test -- DNS:t458.test -- DNS:t459.test -- DNS:t460.test -- DNS:t461.test -- DNS:t462.test -- DNS:t463.test -- DNS:t464.test -- DNS:t465.test -- DNS:t466.test -- DNS:t467.test -- DNS:t468.test -- DNS:t469.test -- DNS:t470.test -- DNS:t471.test -- DNS:t472.test -- DNS:t473.test -- DNS:t474.test -- DNS:t475.test -- DNS:t476.test -- DNS:t477.test -- DNS:t478.test -- DNS:t479.test -- DNS:t480.test -- DNS:t481.test -- DNS:t482.test -- DNS:t483.test -- DNS:t484.test -- DNS:t485.test -- DNS:t486.test -- DNS:t487.test -- DNS:t488.test -- DNS:t489.test -- DNS:t490.test -- DNS:t491.test -- DNS:t492.test -- DNS:t493.test -- DNS:t494.test -- DNS:t495.test -- DNS:t496.test -- DNS:t497.test -- DNS:t498.test -- DNS:t499.test -- DNS:t500.test -- DNS:t501.test -- DNS:t502.test -- DNS:t503.test -- DNS:t504.test -- DNS:t505.test -- DNS:t506.test -- DNS:t507.test -- DNS:t508.test -- DNS:t509.test -- DNS:t510.test -- DNS:t511.test -- DNS:t512.test -- DNS:t513.test -- DNS:t514.test -- DNS:t515.test -- DNS:t516.test -- DNS:t517.test -- DNS:t518.test -- DNS:t519.test -- DNS:t520.test -- DNS:t521.test -- DNS:t522.test -- DNS:t523.test -- DNS:t524.test -- DNS:t525.test -- DNS:t526.test -- DNS:t527.test -- DNS:t528.test -- DNS:t529.test -- DNS:t530.test -- DNS:t531.test -- DNS:t532.test -- DNS:t533.test -- DNS:t534.test -- DNS:t535.test -- DNS:t536.test -- DNS:t537.test -- DNS:t538.test -- DNS:t539.test -- DNS:t540.test -- DNS:t541.test -- DNS:t542.test -- DNS:t543.test -- DNS:t544.test -- DNS:t545.test -- DNS:t546.test -- DNS:t547.test -- DNS:t548.test -- DNS:t549.test -- DNS:t550.test -- DNS:t551.test -- DNS:t552.test -- DNS:t553.test -- DNS:t554.test -- DNS:t555.test -- DNS:t556.test -- DNS:t557.test -- DNS:t558.test -- DNS:t559.test -- DNS:t560.test -- DNS:t561.test -- DNS:t562.test -- DNS:t563.test -- DNS:t564.test -- DNS:t565.test -- DNS:t566.test -- DNS:t567.test -- DNS:t568.test -- DNS:t569.test -- DNS:t570.test -- DNS:t571.test -- DNS:t572.test -- DNS:t573.test -- DNS:t574.test -- DNS:t575.test -- DNS:t576.test -- DNS:t577.test -- DNS:t578.test -- DNS:t579.test -- DNS:t580.test -- DNS:t581.test -- DNS:t582.test -- DNS:t583.test -- DNS:t584.test -- DNS:t585.test -- DNS:t586.test -- DNS:t587.test -- DNS:t588.test -- DNS:t589.test -- DNS:t590.test -- DNS:t591.test -- DNS:t592.test -- DNS:t593.test -- DNS:t594.test -- DNS:t595.test -- DNS:t596.test -- DNS:t597.test -- DNS:t598.test -- DNS:t599.test -- DNS:t600.test -- DNS:t601.test -- DNS:t602.test -- DNS:t603.test -- DNS:t604.test -- DNS:t605.test -- DNS:t606.test -- DNS:t607.test -- DNS:t608.test -- DNS:t609.test -- DNS:t610.test -- DNS:t611.test -- DNS:t612.test -- DNS:t613.test -- DNS:t614.test -- DNS:t615.test -- DNS:t616.test -- DNS:t617.test -- DNS:t618.test -- DNS:t619.test -- DNS:t620.test -- DNS:t621.test -- DNS:t622.test -- DNS:t623.test -- DNS:t624.test -- DNS:t625.test -- DNS:t626.test -- DNS:t627.test -- DNS:t628.test -- DNS:t629.test -- DNS:t630.test -- DNS:t631.test -- DNS:t632.test -- DNS:t633.test -- DNS:t634.test -- DNS:t635.test -- DNS:t636.test -- DNS:t637.test -- DNS:t638.test -- DNS:t639.test -- DNS:t640.test -- DNS:t641.test -- DNS:t642.test -- DNS:t643.test -- DNS:t644.test -- DNS:t645.test -- DNS:t646.test -- DNS:t647.test -- DNS:t648.test -- DNS:t649.test -- DNS:t650.test -- DNS:t651.test -- DNS:t652.test -- DNS:t653.test -- DNS:t654.test -- DNS:t655.test -- DNS:t656.test -- DNS:t657.test -- DNS:t658.test -- DNS:t659.test -- DNS:t660.test -- DNS:t661.test -- DNS:t662.test -- DNS:t663.test -- DNS:t664.test -- DNS:t665.test -- DNS:t666.test -- DNS:t667.test -- DNS:t668.test -- DNS:t669.test -- DNS:t670.test -- DNS:t671.test -- DNS:t672.test -- DNS:t673.test -- DNS:t674.test -- DNS:t675.test -- DNS:t676.test -- DNS:t677.test -- DNS:t678.test -- DNS:t679.test -- DNS:t680.test -- DNS:t681.test -- DNS:t682.test -- DNS:t683.test -- DNS:t684.test -- DNS:t685.test -- DNS:t686.test -- DNS:t687.test -- DNS:t688.test -- DNS:t689.test -- DNS:t690.test -- DNS:t691.test -- DNS:t692.test -- DNS:t693.test -- DNS:t694.test -- DNS:t695.test -- DNS:t696.test -- DNS:t697.test -- DNS:t698.test -- DNS:t699.test -- DNS:t700.test -- DNS:t701.test -- DNS:t702.test -- DNS:t703.test -- DNS:t704.test -- DNS:t705.test -- DNS:t706.test -- DNS:t707.test -- DNS:t708.test -- DNS:t709.test -- DNS:t710.test -- DNS:t711.test -- DNS:t712.test -- DNS:t713.test -- DNS:t714.test -- DNS:t715.test -- DNS:t716.test -- DNS:t717.test -- DNS:t718.test -- DNS:t719.test -- DNS:t720.test -- DNS:t721.test -- DNS:t722.test -- DNS:t723.test -- DNS:t724.test -- DNS:t725.test -- DNS:t726.test -- DNS:t727.test -- DNS:t728.test -- DNS:t729.test -- DNS:t730.test -- DNS:t731.test -- DNS:t732.test -- DNS:t733.test -- DNS:t734.test -- DNS:t735.test -- DNS:t736.test -- DNS:t737.test -- DNS:t738.test -- DNS:t739.test -- DNS:t740.test -- DNS:t741.test -- DNS:t742.test -- DNS:t743.test -- DNS:t744.test -- DNS:t745.test -- DNS:t746.test -- DNS:t747.test -- DNS:t748.test -- DNS:t749.test -- DNS:t750.test -- DNS:t751.test -- DNS:t752.test -- DNS:t753.test -- DNS:t754.test -- DNS:t755.test -- DNS:t756.test -- DNS:t757.test -- DNS:t758.test -- DNS:t759.test -- DNS:t760.test -- DNS:t761.test -- DNS:t762.test -- DNS:t763.test -- DNS:t764.test -- DNS:t765.test -- DNS:t766.test -- DNS:t767.test -- DNS:t768.test -- DNS:t769.test -- DNS:t770.test -- DNS:t771.test -- DNS:t772.test -- DNS:t773.test -- DNS:t774.test -- DNS:t775.test -- DNS:t776.test -- DNS:t777.test -- DNS:t778.test -- DNS:t779.test -- DNS:t780.test -- DNS:t781.test -- DNS:t782.test -- DNS:t783.test -- DNS:t784.test -- DNS:t785.test -- DNS:t786.test -- DNS:t787.test -- DNS:t788.test -- DNS:t789.test -- DNS:t790.test -- DNS:t791.test -- DNS:t792.test -- DNS:t793.test -- DNS:t794.test -- DNS:t795.test -- DNS:t796.test -- DNS:t797.test -- DNS:t798.test -- DNS:t799.test -- DNS:t800.test -- DNS:t801.test -- DNS:t802.test -- DNS:t803.test -- DNS:t804.test -- DNS:t805.test -- DNS:t806.test -- DNS:t807.test -- DNS:t808.test -- DNS:t809.test -- DNS:t810.test -- DNS:t811.test -- DNS:t812.test -- DNS:t813.test -- DNS:t814.test -- DNS:t815.test -- DNS:t816.test -- DNS:t817.test -- DNS:t818.test -- DNS:t819.test -- DNS:t820.test -- DNS:t821.test -- DNS:t822.test -- DNS:t823.test -- DNS:t824.test -- DNS:t825.test -- DNS:t826.test -- DNS:t827.test -- DNS:t828.test -- DNS:t829.test -- DNS:t830.test -- DNS:t831.test -- DNS:t832.test -- DNS:t833.test -- DNS:t834.test -- DNS:t835.test -- DNS:t836.test -- DNS:t837.test -- DNS:t838.test -- DNS:t839.test -- DNS:t840.test -- DNS:t841.test -- DNS:t842.test -- DNS:t843.test -- DNS:t844.test -- DNS:t845.test -- DNS:t846.test -- DNS:t847.test -- DNS:t848.test -- DNS:t849.test -- DNS:t850.test -- DNS:t851.test -- DNS:t852.test -- DNS:t853.test -- DNS:t854.test -- DNS:t855.test -- DNS:t856.test -- DNS:t857.test -- DNS:t858.test -- DNS:t859.test -- DNS:t860.test -- DNS:t861.test -- DNS:t862.test -- DNS:t863.test -- DNS:t864.test -- DNS:t865.test -- DNS:t866.test -- DNS:t867.test -- DNS:t868.test -- DNS:t869.test -- DNS:t870.test -- DNS:t871.test -- DNS:t872.test -- DNS:t873.test -- DNS:t874.test -- DNS:t875.test -- DNS:t876.test -- DNS:t877.test -- DNS:t878.test -- DNS:t879.test -- DNS:t880.test -- DNS:t881.test -- DNS:t882.test -- DNS:t883.test -- DNS:t884.test -- DNS:t885.test -- DNS:t886.test -- DNS:t887.test -- DNS:t888.test -- DNS:t889.test -- DNS:t890.test -- DNS:t891.test -- DNS:t892.test -- DNS:t893.test -- DNS:t894.test -- DNS:t895.test -- DNS:t896.test -- DNS:t897.test -- DNS:t898.test -- DNS:t899.test -- DNS:t900.test -- DNS:t901.test -- DNS:t902.test -- DNS:t903.test -- DNS:t904.test -- DNS:t905.test -- DNS:t906.test -- DNS:t907.test -- DNS:t908.test -- DNS:t909.test -- DNS:t910.test -- DNS:t911.test -- DNS:t912.test -- DNS:t913.test -- DNS:t914.test -- DNS:t915.test -- DNS:t916.test -- DNS:t917.test -- DNS:t918.test -- DNS:t919.test -- DNS:t920.test -- DNS:t921.test -- DNS:t922.test -- DNS:t923.test -- DNS:t924.test -- DNS:t925.test -- DNS:t926.test -- DNS:t927.test -- DNS:t928.test -- DNS:t929.test -- DNS:t930.test -- DNS:t931.test -- DNS:t932.test -- DNS:t933.test -- DNS:t934.test -- DNS:t935.test -- DNS:t936.test -- DNS:t937.test -- DNS:t938.test -- DNS:t939.test -- DNS:t940.test -- DNS:t941.test -- DNS:t942.test -- DNS:t943.test -- DNS:t944.test -- DNS:t945.test -- DNS:t946.test -- DNS:t947.test -- DNS:t948.test -- DNS:t949.test -- DNS:t950.test -- DNS:t951.test -- DNS:t952.test -- DNS:t953.test -- DNS:t954.test -- DNS:t955.test -- DNS:t956.test -- DNS:t957.test -- DNS:t958.test -- DNS:t959.test -- DNS:t960.test -- DNS:t961.test -- DNS:t962.test -- DNS:t963.test -- DNS:t964.test -- DNS:t965.test -- DNS:t966.test -- DNS:t967.test -- DNS:t968.test -- DNS:t969.test -- DNS:t970.test -- DNS:t971.test -- DNS:t972.test -- DNS:t973.test -- DNS:t974.test -- DNS:t975.test -- DNS:t976.test -- DNS:t977.test -- DNS:t978.test -- DNS:t979.test -- DNS:t980.test -- DNS:t981.test -- DNS:t982.test -- DNS:t983.test -- DNS:t984.test -- DNS:t985.test -- DNS:t986.test -- DNS:t987.test -- DNS:t988.test -- DNS:t989.test -- DNS:t990.test -- DNS:t991.test -- DNS:t992.test -- DNS:t993.test -- DNS:t994.test -- DNS:t995.test -- DNS:t996.test -- DNS:t997.test -- DNS:t998.test -- DNS:t999.test -- DNS:t1000.test -- DNS:t1001.test -- DNS:t1002.test -- DNS:t1003.test -- DNS:t1004.test -- DNS:t1005.test -- DNS:t1006.test -- DNS:t1007.test -- DNS:t1008.test -- DNS:t1009.test -- DNS:t1010.test -- DNS:t1011.test -- DNS:t1012.test -- DNS:t1013.test -- DNS:t1014.test -- DNS:t1015.test -- DNS:t1016.test -- DNS:t1017.test -- DNS:t1018.test -- DNS:t1019.test -- DNS:t1020.test -- DNS:t1021.test -- DNS:t1022.test -- DNS:t1023.test -- DNS:t1024.test -- DirName:CN = t0 -- DirName:CN = t1 -- DirName:CN = t2 -- DirName:CN = t3 -- DirName:CN = t4 -- DirName:CN = t5 -- DirName:CN = t6 -- DirName:CN = t7 -- DirName:CN = t8 -- DirName:CN = t9 -- DirName:CN = t10 -- DirName:CN = t11 -- DirName:CN = t12 -- DirName:CN = t13 -- DirName:CN = t14 -- DirName:CN = t15 -- DirName:CN = t16 -- DirName:CN = t17 -- DirName:CN = t18 -- DirName:CN = t19 -- DirName:CN = t20 -- DirName:CN = t21 -- DirName:CN = t22 -- DirName:CN = t23 -- DirName:CN = t24 -- DirName:CN = t25 -- DirName:CN = t26 -- DirName:CN = t27 -- DirName:CN = t28 -- DirName:CN = t29 -- DirName:CN = t30 -- DirName:CN = t31 -- DirName:CN = t32 -- DirName:CN = t33 -- DirName:CN = t34 -- DirName:CN = t35 -- DirName:CN = t36 -- DirName:CN = t37 -- DirName:CN = t38 -- DirName:CN = t39 -- DirName:CN = t40 -- DirName:CN = t41 -- DirName:CN = t42 -- DirName:CN = t43 -- DirName:CN = t44 -- DirName:CN = t45 -- DirName:CN = t46 -- DirName:CN = t47 -- DirName:CN = t48 -- DirName:CN = t49 -- DirName:CN = t50 -- DirName:CN = t51 -- DirName:CN = t52 -- DirName:CN = t53 -- DirName:CN = t54 -- DirName:CN = t55 -- DirName:CN = t56 -- DirName:CN = t57 -- DirName:CN = t58 -- DirName:CN = t59 -- DirName:CN = t60 -- DirName:CN = t61 -- DirName:CN = t62 -- DirName:CN = t63 -- DirName:CN = t64 -- DirName:CN = t65 -- DirName:CN = t66 -- DirName:CN = t67 -- DirName:CN = t68 -- DirName:CN = t69 -- DirName:CN = t70 -- DirName:CN = t71 -- DirName:CN = t72 -- DirName:CN = t73 -- DirName:CN = t74 -- DirName:CN = t75 -- DirName:CN = t76 -- DirName:CN = t77 -- DirName:CN = t78 -- DirName:CN = t79 -- DirName:CN = t80 -- DirName:CN = t81 -- DirName:CN = t82 -- DirName:CN = t83 -- DirName:CN = t84 -- DirName:CN = t85 -- DirName:CN = t86 -- DirName:CN = t87 -- DirName:CN = t88 -- DirName:CN = t89 -- DirName:CN = t90 -- DirName:CN = t91 -- DirName:CN = t92 -- DirName:CN = t93 -- DirName:CN = t94 -- DirName:CN = t95 -- DirName:CN = t96 -- DirName:CN = t97 -- DirName:CN = t98 -- DirName:CN = t99 -- DirName:CN = t100 -- DirName:CN = t101 -- DirName:CN = t102 -- DirName:CN = t103 -- DirName:CN = t104 -- DirName:CN = t105 -- DirName:CN = t106 -- DirName:CN = t107 -- DirName:CN = t108 -- DirName:CN = t109 -- DirName:CN = t110 -- DirName:CN = t111 -- DirName:CN = t112 -- DirName:CN = t113 -- DirName:CN = t114 -- DirName:CN = t115 -- DirName:CN = t116 -- DirName:CN = t117 -- DirName:CN = t118 -- DirName:CN = t119 -- DirName:CN = t120 -- DirName:CN = t121 -- DirName:CN = t122 -- DirName:CN = t123 -- DirName:CN = t124 -- DirName:CN = t125 -- DirName:CN = t126 -- DirName:CN = t127 -- DirName:CN = t128 -- DirName:CN = t129 -- DirName:CN = t130 -- DirName:CN = t131 -- DirName:CN = t132 -- DirName:CN = t133 -- DirName:CN = t134 -- DirName:CN = t135 -- DirName:CN = t136 -- DirName:CN = t137 -- DirName:CN = t138 -- DirName:CN = t139 -- DirName:CN = t140 -- DirName:CN = t141 -- DirName:CN = t142 -- DirName:CN = t143 -- DirName:CN = t144 -- DirName:CN = t145 -- DirName:CN = t146 -- DirName:CN = t147 -- DirName:CN = t148 -- DirName:CN = t149 -- DirName:CN = t150 -- DirName:CN = t151 -- DirName:CN = t152 -- DirName:CN = t153 -- DirName:CN = t154 -- DirName:CN = t155 -- DirName:CN = t156 -- DirName:CN = t157 -- DirName:CN = t158 -- DirName:CN = t159 -- DirName:CN = t160 -- DirName:CN = t161 -- DirName:CN = t162 -- DirName:CN = t163 -- DirName:CN = t164 -- DirName:CN = t165 -- DirName:CN = t166 -- DirName:CN = t167 -- DirName:CN = t168 -- DirName:CN = t169 -- DirName:CN = t170 -- DirName:CN = t171 -- DirName:CN = t172 -- DirName:CN = t173 -- DirName:CN = t174 -- DirName:CN = t175 -- DirName:CN = t176 -- DirName:CN = t177 -- DirName:CN = t178 -- DirName:CN = t179 -- DirName:CN = t180 -- DirName:CN = t181 -- DirName:CN = t182 -- DirName:CN = t183 -- DirName:CN = t184 -- DirName:CN = t185 -- DirName:CN = t186 -- DirName:CN = t187 -- DirName:CN = t188 -- DirName:CN = t189 -- DirName:CN = t190 -- DirName:CN = t191 -- DirName:CN = t192 -- DirName:CN = t193 -- DirName:CN = t194 -- DirName:CN = t195 -- DirName:CN = t196 -- DirName:CN = t197 -- DirName:CN = t198 -- DirName:CN = t199 -- DirName:CN = t200 -- DirName:CN = t201 -- DirName:CN = t202 -- DirName:CN = t203 -- DirName:CN = t204 -- DirName:CN = t205 -- DirName:CN = t206 -- DirName:CN = t207 -- DirName:CN = t208 -- DirName:CN = t209 -- DirName:CN = t210 -- DirName:CN = t211 -- DirName:CN = t212 -- DirName:CN = t213 -- DirName:CN = t214 -- DirName:CN = t215 -- DirName:CN = t216 -- DirName:CN = t217 -- DirName:CN = t218 -- DirName:CN = t219 -- DirName:CN = t220 -- DirName:CN = t221 -- DirName:CN = t222 -- DirName:CN = t223 -- DirName:CN = t224 -- DirName:CN = t225 -- DirName:CN = t226 -- DirName:CN = t227 -- DirName:CN = t228 -- DirName:CN = t229 -- DirName:CN = t230 -- DirName:CN = t231 -- DirName:CN = t232 -- DirName:CN = t233 -- DirName:CN = t234 -- DirName:CN = t235 -- DirName:CN = t236 -- DirName:CN = t237 -- DirName:CN = t238 -- DirName:CN = t239 -- DirName:CN = t240 -- DirName:CN = t241 -- DirName:CN = t242 -- DirName:CN = t243 -- DirName:CN = t244 -- DirName:CN = t245 -- DirName:CN = t246 -- DirName:CN = t247 -- DirName:CN = t248 -- DirName:CN = t249 -- DirName:CN = t250 -- DirName:CN = t251 -- DirName:CN = t252 -- DirName:CN = t253 -- DirName:CN = t254 -- DirName:CN = t255 -- DirName:CN = t256 -- DirName:CN = t257 -- DirName:CN = t258 -- DirName:CN = t259 -- DirName:CN = t260 -- DirName:CN = t261 -- DirName:CN = t262 -- DirName:CN = t263 -- DirName:CN = t264 -- DirName:CN = t265 -- DirName:CN = t266 -- DirName:CN = t267 -- DirName:CN = t268 -- DirName:CN = t269 -- DirName:CN = t270 -- DirName:CN = t271 -- DirName:CN = t272 -- DirName:CN = t273 -- DirName:CN = t274 -- DirName:CN = t275 -- DirName:CN = t276 -- DirName:CN = t277 -- DirName:CN = t278 -- DirName:CN = t279 -- DirName:CN = t280 -- DirName:CN = t281 -- DirName:CN = t282 -- DirName:CN = t283 -- DirName:CN = t284 -- DirName:CN = t285 -- DirName:CN = t286 -- DirName:CN = t287 -- DirName:CN = t288 -- DirName:CN = t289 -- DirName:CN = t290 -- DirName:CN = t291 -- DirName:CN = t292 -- DirName:CN = t293 -- DirName:CN = t294 -- DirName:CN = t295 -- DirName:CN = t296 -- DirName:CN = t297 -- DirName:CN = t298 -- DirName:CN = t299 -- DirName:CN = t300 -- DirName:CN = t301 -- DirName:CN = t302 -- DirName:CN = t303 -- DirName:CN = t304 -- DirName:CN = t305 -- DirName:CN = t306 -- DirName:CN = t307 -- DirName:CN = t308 -- DirName:CN = t309 -- DirName:CN = t310 -- DirName:CN = t311 -- DirName:CN = t312 -- DirName:CN = t313 -- DirName:CN = t314 -- DirName:CN = t315 -- DirName:CN = t316 -- DirName:CN = t317 -- DirName:CN = t318 -- DirName:CN = t319 -- DirName:CN = t320 -- DirName:CN = t321 -- DirName:CN = t322 -- DirName:CN = t323 -- DirName:CN = t324 -- DirName:CN = t325 -- DirName:CN = t326 -- DirName:CN = t327 -- DirName:CN = t328 -- DirName:CN = t329 -- DirName:CN = t330 -- DirName:CN = t331 -- DirName:CN = t332 -- DirName:CN = t333 -- DirName:CN = t334 -- DirName:CN = t335 -- DirName:CN = t336 -- DirName:CN = t337 -- DirName:CN = t338 -- DirName:CN = t339 -- DirName:CN = t340 -- DirName:CN = t341 -- DirName:CN = t342 -- DirName:CN = t343 -- DirName:CN = t344 -- DirName:CN = t345 -- DirName:CN = t346 -- DirName:CN = t347 -- DirName:CN = t348 -- DirName:CN = t349 -- DirName:CN = t350 -- DirName:CN = t351 -- DirName:CN = t352 -- DirName:CN = t353 -- DirName:CN = t354 -- DirName:CN = t355 -- DirName:CN = t356 -- DirName:CN = t357 -- DirName:CN = t358 -- DirName:CN = t359 -- DirName:CN = t360 -- DirName:CN = t361 -- DirName:CN = t362 -- DirName:CN = t363 -- DirName:CN = t364 -- DirName:CN = t365 -- DirName:CN = t366 -- DirName:CN = t367 -- DirName:CN = t368 -- DirName:CN = t369 -- DirName:CN = t370 -- DirName:CN = t371 -- DirName:CN = t372 -- DirName:CN = t373 -- DirName:CN = t374 -- DirName:CN = t375 -- DirName:CN = t376 -- DirName:CN = t377 -- DirName:CN = t378 -- DirName:CN = t379 -- DirName:CN = t380 -- DirName:CN = t381 -- DirName:CN = t382 -- DirName:CN = t383 -- DirName:CN = t384 -- DirName:CN = t385 -- DirName:CN = t386 -- DirName:CN = t387 -- DirName:CN = t388 -- DirName:CN = t389 -- DirName:CN = t390 -- DirName:CN = t391 -- DirName:CN = t392 -- DirName:CN = t393 -- DirName:CN = t394 -- DirName:CN = t395 -- DirName:CN = t396 -- DirName:CN = t397 -- DirName:CN = t398 -- DirName:CN = t399 -- DirName:CN = t400 -- DirName:CN = t401 -- DirName:CN = t402 -- DirName:CN = t403 -- DirName:CN = t404 -- DirName:CN = t405 -- DirName:CN = t406 -- DirName:CN = t407 -- DirName:CN = t408 -- DirName:CN = t409 -- DirName:CN = t410 -- DirName:CN = t411 -- DirName:CN = t412 -- DirName:CN = t413 -- DirName:CN = t414 -- DirName:CN = t415 -- DirName:CN = t416 -- DirName:CN = t417 -- DirName:CN = t418 -- DirName:CN = t419 -- DirName:CN = t420 -- DirName:CN = t421 -- DirName:CN = t422 -- DirName:CN = t423 -- DirName:CN = t424 -- DirName:CN = t425 -- DirName:CN = t426 -- DirName:CN = t427 -- DirName:CN = t428 -- DirName:CN = t429 -- DirName:CN = t430 -- DirName:CN = t431 -- DirName:CN = t432 -- DirName:CN = t433 -- DirName:CN = t434 -- DirName:CN = t435 -- DirName:CN = t436 -- DirName:CN = t437 -- DirName:CN = t438 -- DirName:CN = t439 -- DirName:CN = t440 -- DirName:CN = t441 -- DirName:CN = t442 -- DirName:CN = t443 -- DirName:CN = t444 -- DirName:CN = t445 -- DirName:CN = t446 -- DirName:CN = t447 -- DirName:CN = t448 -- DirName:CN = t449 -- DirName:CN = t450 -- DirName:CN = t451 -- DirName:CN = t452 -- DirName:CN = t453 -- DirName:CN = t454 -- DirName:CN = t455 -- DirName:CN = t456 -- DirName:CN = t457 -- DirName:CN = t458 -- DirName:CN = t459 -- DirName:CN = t460 -- DirName:CN = t461 -- DirName:CN = t462 -- DirName:CN = t463 -- DirName:CN = t464 -- DirName:CN = t465 -- DirName:CN = t466 -- DirName:CN = t467 -- DirName:CN = t468 -- DirName:CN = t469 -- DirName:CN = t470 -- DirName:CN = t471 -- DirName:CN = t472 -- DirName:CN = t473 -- DirName:CN = t474 -- DirName:CN = t475 -- DirName:CN = t476 -- DirName:CN = t477 -- DirName:CN = t478 -- DirName:CN = t479 -- DirName:CN = t480 -- DirName:CN = t481 -- DirName:CN = t482 -- DirName:CN = t483 -- DirName:CN = t484 -- DirName:CN = t485 -- DirName:CN = t486 -- DirName:CN = t487 -- DirName:CN = t488 -- DirName:CN = t489 -- DirName:CN = t490 -- DirName:CN = t491 -- DirName:CN = t492 -- DirName:CN = t493 -- DirName:CN = t494 -- DirName:CN = t495 -- DirName:CN = t496 -- DirName:CN = t497 -- DirName:CN = t498 -- DirName:CN = t499 -- DirName:CN = t500 -- DirName:CN = t501 -- DirName:CN = t502 -- DirName:CN = t503 -- DirName:CN = t504 -- DirName:CN = t505 -- DirName:CN = t506 -- DirName:CN = t507 -- DirName:CN = t508 -- DirName:CN = t509 -- DirName:CN = t510 -- DirName:CN = t511 -- DirName:CN = t512 -- DirName:CN = t513 -- DirName:CN = t514 -- DirName:CN = t515 -- DirName:CN = t516 -- DirName:CN = t517 -- DirName:CN = t518 -- DirName:CN = t519 -- DirName:CN = t520 -- DirName:CN = t521 -- DirName:CN = t522 -- DirName:CN = t523 -- DirName:CN = t524 -- DirName:CN = t525 -- DirName:CN = t526 -- DirName:CN = t527 -- DirName:CN = t528 -- DirName:CN = t529 -- DirName:CN = t530 -- DirName:CN = t531 -- DirName:CN = t532 -- DirName:CN = t533 -- DirName:CN = t534 -- DirName:CN = t535 -- DirName:CN = t536 -- DirName:CN = t537 -- DirName:CN = t538 -- DirName:CN = t539 -- DirName:CN = t540 -- DirName:CN = t541 -- DirName:CN = t542 -- DirName:CN = t543 -- DirName:CN = t544 -- DirName:CN = t545 -- DirName:CN = t546 -- DirName:CN = t547 -- DirName:CN = t548 -- DirName:CN = t549 -- DirName:CN = t550 -- DirName:CN = t551 -- DirName:CN = t552 -- DirName:CN = t553 -- DirName:CN = t554 -- DirName:CN = t555 -- DirName:CN = t556 -- DirName:CN = t557 -- DirName:CN = t558 -- DirName:CN = t559 -- DirName:CN = t560 -- DirName:CN = t561 -- DirName:CN = t562 -- DirName:CN = t563 -- DirName:CN = t564 -- DirName:CN = t565 -- DirName:CN = t566 -- DirName:CN = t567 -- DirName:CN = t568 -- DirName:CN = t569 -- DirName:CN = t570 -- DirName:CN = t571 -- DirName:CN = t572 -- DirName:CN = t573 -- DirName:CN = t574 -- DirName:CN = t575 -- DirName:CN = t576 -- DirName:CN = t577 -- DirName:CN = t578 -- DirName:CN = t579 -- DirName:CN = t580 -- DirName:CN = t581 -- DirName:CN = t582 -- DirName:CN = t583 -- DirName:CN = t584 -- DirName:CN = t585 -- DirName:CN = t586 -- DirName:CN = t587 -- DirName:CN = t588 -- DirName:CN = t589 -- DirName:CN = t590 -- DirName:CN = t591 -- DirName:CN = t592 -- DirName:CN = t593 -- DirName:CN = t594 -- DirName:CN = t595 -- DirName:CN = t596 -- DirName:CN = t597 -- DirName:CN = t598 -- DirName:CN = t599 -- DirName:CN = t600 -- DirName:CN = t601 -- DirName:CN = t602 -- DirName:CN = t603 -- DirName:CN = t604 -- DirName:CN = t605 -- DirName:CN = t606 -- DirName:CN = t607 -- DirName:CN = t608 -- DirName:CN = t609 -- DirName:CN = t610 -- DirName:CN = t611 -- DirName:CN = t612 -- DirName:CN = t613 -- DirName:CN = t614 -- DirName:CN = t615 -- DirName:CN = t616 -- DirName:CN = t617 -- DirName:CN = t618 -- DirName:CN = t619 -- DirName:CN = t620 -- DirName:CN = t621 -- DirName:CN = t622 -- DirName:CN = t623 -- DirName:CN = t624 -- DirName:CN = t625 -- DirName:CN = t626 -- DirName:CN = t627 -- DirName:CN = t628 -- DirName:CN = t629 -- DirName:CN = t630 -- DirName:CN = t631 -- DirName:CN = t632 -- DirName:CN = t633 -- DirName:CN = t634 -- DirName:CN = t635 -- DirName:CN = t636 -- DirName:CN = t637 -- DirName:CN = t638 -- DirName:CN = t639 -- DirName:CN = t640 -- DirName:CN = t641 -- DirName:CN = t642 -- DirName:CN = t643 -- DirName:CN = t644 -- DirName:CN = t645 -- DirName:CN = t646 -- DirName:CN = t647 -- DirName:CN = t648 -- DirName:CN = t649 -- DirName:CN = t650 -- DirName:CN = t651 -- DirName:CN = t652 -- DirName:CN = t653 -- DirName:CN = t654 -- DirName:CN = t655 -- DirName:CN = t656 -- DirName:CN = t657 -- DirName:CN = t658 -- DirName:CN = t659 -- DirName:CN = t660 -- DirName:CN = t661 -- DirName:CN = t662 -- DirName:CN = t663 -- DirName:CN = t664 -- DirName:CN = t665 -- DirName:CN = t666 -- DirName:CN = t667 -- DirName:CN = t668 -- DirName:CN = t669 -- DirName:CN = t670 -- DirName:CN = t671 -- DirName:CN = t672 -- DirName:CN = t673 -- DirName:CN = t674 -- DirName:CN = t675 -- DirName:CN = t676 -- DirName:CN = t677 -- DirName:CN = t678 -- DirName:CN = t679 -- DirName:CN = t680 -- DirName:CN = t681 -- DirName:CN = t682 -- DirName:CN = t683 -- DirName:CN = t684 -- DirName:CN = t685 -- DirName:CN = t686 -- DirName:CN = t687 -- DirName:CN = t688 -- DirName:CN = t689 -- DirName:CN = t690 -- DirName:CN = t691 -- DirName:CN = t692 -- DirName:CN = t693 -- DirName:CN = t694 -- DirName:CN = t695 -- DirName:CN = t696 -- DirName:CN = t697 -- DirName:CN = t698 -- DirName:CN = t699 -- DirName:CN = t700 -- DirName:CN = t701 -- DirName:CN = t702 -- DirName:CN = t703 -- DirName:CN = t704 -- DirName:CN = t705 -- DirName:CN = t706 -- DirName:CN = t707 -- DirName:CN = t708 -- DirName:CN = t709 -- DirName:CN = t710 -- DirName:CN = t711 -- DirName:CN = t712 -- DirName:CN = t713 -- DirName:CN = t714 -- DirName:CN = t715 -- DirName:CN = t716 -- DirName:CN = t717 -- DirName:CN = t718 -- DirName:CN = t719 -- DirName:CN = t720 -- DirName:CN = t721 -- DirName:CN = t722 -- DirName:CN = t723 -- DirName:CN = t724 -- DirName:CN = t725 -- DirName:CN = t726 -- DirName:CN = t727 -- DirName:CN = t728 -- DirName:CN = t729 -- DirName:CN = t730 -- DirName:CN = t731 -- DirName:CN = t732 -- DirName:CN = t733 -- DirName:CN = t734 -- DirName:CN = t735 -- DirName:CN = t736 -- DirName:CN = t737 -- DirName:CN = t738 -- DirName:CN = t739 -- DirName:CN = t740 -- DirName:CN = t741 -- DirName:CN = t742 -- DirName:CN = t743 -- DirName:CN = t744 -- DirName:CN = t745 -- DirName:CN = t746 -- DirName:CN = t747 -- DirName:CN = t748 -- DirName:CN = t749 -- DirName:CN = t750 -- DirName:CN = t751 -- DirName:CN = t752 -- DirName:CN = t753 -- DirName:CN = t754 -- DirName:CN = t755 -- DirName:CN = t756 -- DirName:CN = t757 -- DirName:CN = t758 -- DirName:CN = t759 -- DirName:CN = t760 -- DirName:CN = t761 -- DirName:CN = t762 -- DirName:CN = t763 -- DirName:CN = t764 -- DirName:CN = t765 -- DirName:CN = t766 -- DirName:CN = t767 -- DirName:CN = t768 -- DirName:CN = t769 -- DirName:CN = t770 -- DirName:CN = t771 -- DirName:CN = t772 -- DirName:CN = t773 -- DirName:CN = t774 -- DirName:CN = t775 -- DirName:CN = t776 -- DirName:CN = t777 -- DirName:CN = t778 -- DirName:CN = t779 -- DirName:CN = t780 -- DirName:CN = t781 -- DirName:CN = t782 -- DirName:CN = t783 -- DirName:CN = t784 -- DirName:CN = t785 -- DirName:CN = t786 -- DirName:CN = t787 -- DirName:CN = t788 -- DirName:CN = t789 -- DirName:CN = t790 -- DirName:CN = t791 -- DirName:CN = t792 -- DirName:CN = t793 -- DirName:CN = t794 -- DirName:CN = t795 -- DirName:CN = t796 -- DirName:CN = t797 -- DirName:CN = t798 -- DirName:CN = t799 -- DirName:CN = t800 -- DirName:CN = t801 -- DirName:CN = t802 -- DirName:CN = t803 -- DirName:CN = t804 -- DirName:CN = t805 -- DirName:CN = t806 -- DirName:CN = t807 -- DirName:CN = t808 -- DirName:CN = t809 -- DirName:CN = t810 -- DirName:CN = t811 -- DirName:CN = t812 -- DirName:CN = t813 -- DirName:CN = t814 -- DirName:CN = t815 -- DirName:CN = t816 -- DirName:CN = t817 -- DirName:CN = t818 -- DirName:CN = t819 -- DirName:CN = t820 -- DirName:CN = t821 -- DirName:CN = t822 -- DirName:CN = t823 -- DirName:CN = t824 -- DirName:CN = t825 -- DirName:CN = t826 -- DirName:CN = t827 -- DirName:CN = t828 -- DirName:CN = t829 -- DirName:CN = t830 -- DirName:CN = t831 -- DirName:CN = t832 -- DirName:CN = t833 -- DirName:CN = t834 -- DirName:CN = t835 -- DirName:CN = t836 -- DirName:CN = t837 -- DirName:CN = t838 -- DirName:CN = t839 -- DirName:CN = t840 -- DirName:CN = t841 -- DirName:CN = t842 -- DirName:CN = t843 -- DirName:CN = t844 -- DirName:CN = t845 -- DirName:CN = t846 -- DirName:CN = t847 -- DirName:CN = t848 -- DirName:CN = t849 -- DirName:CN = t850 -- DirName:CN = t851 -- DirName:CN = t852 -- DirName:CN = t853 -- DirName:CN = t854 -- DirName:CN = t855 -- DirName:CN = t856 -- DirName:CN = t857 -- DirName:CN = t858 -- DirName:CN = t859 -- DirName:CN = t860 -- DirName:CN = t861 -- DirName:CN = t862 -- DirName:CN = t863 -- DirName:CN = t864 -- DirName:CN = t865 -- DirName:CN = t866 -- DirName:CN = t867 -- DirName:CN = t868 -- DirName:CN = t869 -- DirName:CN = t870 -- DirName:CN = t871 -- DirName:CN = t872 -- DirName:CN = t873 -- DirName:CN = t874 -- DirName:CN = t875 -- DirName:CN = t876 -- DirName:CN = t877 -- DirName:CN = t878 -- DirName:CN = t879 -- DirName:CN = t880 -- DirName:CN = t881 -- DirName:CN = t882 -- DirName:CN = t883 -- DirName:CN = t884 -- DirName:CN = t885 -- DirName:CN = t886 -- DirName:CN = t887 -- DirName:CN = t888 -- DirName:CN = t889 -- DirName:CN = t890 -- DirName:CN = t891 -- DirName:CN = t892 -- DirName:CN = t893 -- DirName:CN = t894 -- DirName:CN = t895 -- DirName:CN = t896 -- DirName:CN = t897 -- DirName:CN = t898 -- DirName:CN = t899 -- DirName:CN = t900 -- DirName:CN = t901 -- DirName:CN = t902 -- DirName:CN = t903 -- DirName:CN = t904 -- DirName:CN = t905 -- DirName:CN = t906 -- DirName:CN = t907 -- DirName:CN = t908 -- DirName:CN = t909 -- DirName:CN = t910 -- DirName:CN = t911 -- DirName:CN = t912 -- DirName:CN = t913 -- DirName:CN = t914 -- DirName:CN = t915 -- DirName:CN = t916 -- DirName:CN = t917 -- DirName:CN = t918 -- DirName:CN = t919 -- DirName:CN = t920 -- DirName:CN = t921 -- DirName:CN = t922 -- DirName:CN = t923 -- DirName:CN = t924 -- DirName:CN = t925 -- DirName:CN = t926 -- DirName:CN = t927 -- DirName:CN = t928 -- DirName:CN = t929 -- DirName:CN = t930 -- DirName:CN = t931 -- DirName:CN = t932 -- DirName:CN = t933 -- DirName:CN = t934 -- DirName:CN = t935 -- DirName:CN = t936 -- DirName:CN = t937 -- DirName:CN = t938 -- DirName:CN = t939 -- DirName:CN = t940 -- DirName:CN = t941 -- DirName:CN = t942 -- DirName:CN = t943 -- DirName:CN = t944 -- DirName:CN = t945 -- DirName:CN = t946 -- DirName:CN = t947 -- DirName:CN = t948 -- DirName:CN = t949 -- DirName:CN = t950 -- DirName:CN = t951 -- DirName:CN = t952 -- DirName:CN = t953 -- DirName:CN = t954 -- DirName:CN = t955 -- DirName:CN = t956 -- DirName:CN = t957 -- DirName:CN = t958 -- DirName:CN = t959 -- DirName:CN = t960 -- DirName:CN = t961 -- DirName:CN = t962 -- DirName:CN = t963 -- DirName:CN = t964 -- DirName:CN = t965 -- DirName:CN = t966 -- DirName:CN = t967 -- DirName:CN = t968 -- DirName:CN = t969 -- DirName:CN = t970 -- DirName:CN = t971 -- DirName:CN = t972 -- DirName:CN = t973 -- DirName:CN = t974 -- DirName:CN = t975 -- DirName:CN = t976 -- DirName:CN = t977 -- DirName:CN = t978 -- DirName:CN = t979 -- DirName:CN = t980 -- DirName:CN = t981 -- DirName:CN = t982 -- DirName:CN = t983 -- DirName:CN = t984 -- DirName:CN = t985 -- DirName:CN = t986 -- DirName:CN = t987 -- DirName:CN = t988 -- DirName:CN = t989 -- DirName:CN = t990 -- DirName:CN = t991 -- DirName:CN = t992 -- DirName:CN = t993 -- DirName:CN = t994 -- DirName:CN = t995 -- DirName:CN = t996 -- DirName:CN = t997 -- DirName:CN = t998 -- DirName:CN = t999 -- DirName:CN = t1000 -- DirName:CN = t1001 -- DirName:CN = t1002 -- DirName:CN = t1003 -- DirName:CN = t1004 -- DirName:CN = t1005 -- DirName:CN = t1006 -- DirName:CN = t1007 -- DirName:CN = t1008 -- DirName:CN = t1009 -- DirName:CN = t1010 -- DirName:CN = t1011 -- DirName:CN = t1012 -- DirName:CN = t1013 -- DirName:CN = t1014 -- DirName:CN = t1015 -- DirName:CN = t1016 -- DirName:CN = t1017 -- DirName:CN = t1018 -- DirName:CN = t1019 -- DirName:CN = t1020 -- DirName:CN = t1021 -- DirName:CN = t1022 -- DirName:CN = t1023 -- DirName:CN = t1024 -- URI:http://test/0 -- URI:http://test/1 -- URI:http://test/2 -- URI:http://test/3 -- URI:http://test/4 -- URI:http://test/5 -- URI:http://test/6 -- URI:http://test/7 -- URI:http://test/8 -- URI:http://test/9 -- URI:http://test/10 -- URI:http://test/11 -- URI:http://test/12 -- URI:http://test/13 -- URI:http://test/14 -- URI:http://test/15 -- URI:http://test/16 -- URI:http://test/17 -- URI:http://test/18 -- URI:http://test/19 -- URI:http://test/20 -- URI:http://test/21 -- URI:http://test/22 -- URI:http://test/23 -- URI:http://test/24 -- URI:http://test/25 -- URI:http://test/26 -- URI:http://test/27 -- URI:http://test/28 -- URI:http://test/29 -- URI:http://test/30 -- URI:http://test/31 -- URI:http://test/32 -- URI:http://test/33 -- URI:http://test/34 -- URI:http://test/35 -- URI:http://test/36 -- URI:http://test/37 -- URI:http://test/38 -- URI:http://test/39 -- URI:http://test/40 -- URI:http://test/41 -- URI:http://test/42 -- URI:http://test/43 -- URI:http://test/44 -- URI:http://test/45 -- URI:http://test/46 -- URI:http://test/47 -- URI:http://test/48 -- URI:http://test/49 -- URI:http://test/50 -- URI:http://test/51 -- URI:http://test/52 -- URI:http://test/53 -- URI:http://test/54 -- URI:http://test/55 -- URI:http://test/56 -- URI:http://test/57 -- URI:http://test/58 -- URI:http://test/59 -- URI:http://test/60 -- URI:http://test/61 -- URI:http://test/62 -- URI:http://test/63 -- URI:http://test/64 -- URI:http://test/65 -- URI:http://test/66 -- URI:http://test/67 -- URI:http://test/68 -- URI:http://test/69 -- URI:http://test/70 -- URI:http://test/71 -- URI:http://test/72 -- URI:http://test/73 -- URI:http://test/74 -- URI:http://test/75 -- URI:http://test/76 -- URI:http://test/77 -- URI:http://test/78 -- URI:http://test/79 -- URI:http://test/80 -- URI:http://test/81 -- URI:http://test/82 -- URI:http://test/83 -- URI:http://test/84 -- URI:http://test/85 -- URI:http://test/86 -- URI:http://test/87 -- URI:http://test/88 -- URI:http://test/89 -- URI:http://test/90 -- URI:http://test/91 -- URI:http://test/92 -- URI:http://test/93 -- URI:http://test/94 -- URI:http://test/95 -- URI:http://test/96 -- URI:http://test/97 -- URI:http://test/98 -- URI:http://test/99 -- URI:http://test/100 -- URI:http://test/101 -- URI:http://test/102 -- URI:http://test/103 -- URI:http://test/104 -- URI:http://test/105 -- URI:http://test/106 -- URI:http://test/107 -- URI:http://test/108 -- URI:http://test/109 -- URI:http://test/110 -- URI:http://test/111 -- URI:http://test/112 -- URI:http://test/113 -- URI:http://test/114 -- URI:http://test/115 -- URI:http://test/116 -- URI:http://test/117 -- URI:http://test/118 -- URI:http://test/119 -- URI:http://test/120 -- URI:http://test/121 -- URI:http://test/122 -- URI:http://test/123 -- URI:http://test/124 -- URI:http://test/125 -- URI:http://test/126 -- URI:http://test/127 -- URI:http://test/128 -- URI:http://test/129 -- URI:http://test/130 -- URI:http://test/131 -- URI:http://test/132 -- URI:http://test/133 -- URI:http://test/134 -- URI:http://test/135 -- URI:http://test/136 -- URI:http://test/137 -- URI:http://test/138 -- URI:http://test/139 -- URI:http://test/140 -- URI:http://test/141 -- URI:http://test/142 -- URI:http://test/143 -- URI:http://test/144 -- URI:http://test/145 -- URI:http://test/146 -- URI:http://test/147 -- URI:http://test/148 -- URI:http://test/149 -- URI:http://test/150 -- URI:http://test/151 -- URI:http://test/152 -- URI:http://test/153 -- URI:http://test/154 -- URI:http://test/155 -- URI:http://test/156 -- URI:http://test/157 -- URI:http://test/158 -- URI:http://test/159 -- URI:http://test/160 -- URI:http://test/161 -- URI:http://test/162 -- URI:http://test/163 -- URI:http://test/164 -- URI:http://test/165 -- URI:http://test/166 -- URI:http://test/167 -- URI:http://test/168 -- URI:http://test/169 -- URI:http://test/170 -- URI:http://test/171 -- URI:http://test/172 -- URI:http://test/173 -- URI:http://test/174 -- URI:http://test/175 -- URI:http://test/176 -- URI:http://test/177 -- URI:http://test/178 -- URI:http://test/179 -- URI:http://test/180 -- URI:http://test/181 -- URI:http://test/182 -- URI:http://test/183 -- URI:http://test/184 -- URI:http://test/185 -- URI:http://test/186 -- URI:http://test/187 -- URI:http://test/188 -- URI:http://test/189 -- URI:http://test/190 -- URI:http://test/191 -- URI:http://test/192 -- URI:http://test/193 -- URI:http://test/194 -- URI:http://test/195 -- URI:http://test/196 -- URI:http://test/197 -- URI:http://test/198 -- URI:http://test/199 -- URI:http://test/200 -- URI:http://test/201 -- URI:http://test/202 -- URI:http://test/203 -- URI:http://test/204 -- URI:http://test/205 -- URI:http://test/206 -- URI:http://test/207 -- URI:http://test/208 -- URI:http://test/209 -- URI:http://test/210 -- URI:http://test/211 -- URI:http://test/212 -- URI:http://test/213 -- URI:http://test/214 -- URI:http://test/215 -- URI:http://test/216 -- URI:http://test/217 -- URI:http://test/218 -- URI:http://test/219 -- URI:http://test/220 -- URI:http://test/221 -- URI:http://test/222 -- URI:http://test/223 -- URI:http://test/224 -- URI:http://test/225 -- URI:http://test/226 -- URI:http://test/227 -- URI:http://test/228 -- URI:http://test/229 -- URI:http://test/230 -- URI:http://test/231 -- URI:http://test/232 -- URI:http://test/233 -- URI:http://test/234 -- URI:http://test/235 -- URI:http://test/236 -- URI:http://test/237 -- URI:http://test/238 -- URI:http://test/239 -- URI:http://test/240 -- URI:http://test/241 -- URI:http://test/242 -- URI:http://test/243 -- URI:http://test/244 -- URI:http://test/245 -- URI:http://test/246 -- URI:http://test/247 -- URI:http://test/248 -- URI:http://test/249 -- URI:http://test/250 -- URI:http://test/251 -- URI:http://test/252 -- URI:http://test/253 -- URI:http://test/254 -- URI:http://test/255 -- URI:http://test/256 -- URI:http://test/257 -- URI:http://test/258 -- URI:http://test/259 -- URI:http://test/260 -- URI:http://test/261 -- URI:http://test/262 -- URI:http://test/263 -- URI:http://test/264 -- URI:http://test/265 -- URI:http://test/266 -- URI:http://test/267 -- URI:http://test/268 -- URI:http://test/269 -- URI:http://test/270 -- URI:http://test/271 -- URI:http://test/272 -- URI:http://test/273 -- URI:http://test/274 -- URI:http://test/275 -- URI:http://test/276 -- URI:http://test/277 -- URI:http://test/278 -- URI:http://test/279 -- URI:http://test/280 -- URI:http://test/281 -- URI:http://test/282 -- URI:http://test/283 -- URI:http://test/284 -- URI:http://test/285 -- URI:http://test/286 -- URI:http://test/287 -- URI:http://test/288 -- URI:http://test/289 -- URI:http://test/290 -- URI:http://test/291 -- URI:http://test/292 -- URI:http://test/293 -- URI:http://test/294 -- URI:http://test/295 -- URI:http://test/296 -- URI:http://test/297 -- URI:http://test/298 -- URI:http://test/299 -- URI:http://test/300 -- URI:http://test/301 -- URI:http://test/302 -- URI:http://test/303 -- URI:http://test/304 -- URI:http://test/305 -- URI:http://test/306 -- URI:http://test/307 -- URI:http://test/308 -- URI:http://test/309 -- URI:http://test/310 -- URI:http://test/311 -- URI:http://test/312 -- URI:http://test/313 -- URI:http://test/314 -- URI:http://test/315 -- URI:http://test/316 -- URI:http://test/317 -- URI:http://test/318 -- URI:http://test/319 -- URI:http://test/320 -- URI:http://test/321 -- URI:http://test/322 -- URI:http://test/323 -- URI:http://test/324 -- URI:http://test/325 -- URI:http://test/326 -- URI:http://test/327 -- URI:http://test/328 -- URI:http://test/329 -- URI:http://test/330 -- URI:http://test/331 -- URI:http://test/332 -- URI:http://test/333 -- URI:http://test/334 -- URI:http://test/335 -- URI:http://test/336 -- URI:http://test/337 -- URI:http://test/338 -- URI:http://test/339 -- URI:http://test/340 -- URI:http://test/341 -- URI:http://test/342 -- URI:http://test/343 -- URI:http://test/344 -- URI:http://test/345 -- URI:http://test/346 -- URI:http://test/347 -- URI:http://test/348 -- URI:http://test/349 -- URI:http://test/350 -- URI:http://test/351 -- URI:http://test/352 -- URI:http://test/353 -- URI:http://test/354 -- URI:http://test/355 -- URI:http://test/356 -- URI:http://test/357 -- URI:http://test/358 -- URI:http://test/359 -- URI:http://test/360 -- URI:http://test/361 -- URI:http://test/362 -- URI:http://test/363 -- URI:http://test/364 -- URI:http://test/365 -- URI:http://test/366 -- URI:http://test/367 -- URI:http://test/368 -- URI:http://test/369 -- URI:http://test/370 -- URI:http://test/371 -- URI:http://test/372 -- URI:http://test/373 -- URI:http://test/374 -- URI:http://test/375 -- URI:http://test/376 -- URI:http://test/377 -- URI:http://test/378 -- URI:http://test/379 -- URI:http://test/380 -- URI:http://test/381 -- URI:http://test/382 -- URI:http://test/383 -- URI:http://test/384 -- URI:http://test/385 -- URI:http://test/386 -- URI:http://test/387 -- URI:http://test/388 -- URI:http://test/389 -- URI:http://test/390 -- URI:http://test/391 -- URI:http://test/392 -- URI:http://test/393 -- URI:http://test/394 -- URI:http://test/395 -- URI:http://test/396 -- URI:http://test/397 -- URI:http://test/398 -- URI:http://test/399 -- URI:http://test/400 -- URI:http://test/401 -- URI:http://test/402 -- URI:http://test/403 -- URI:http://test/404 -- URI:http://test/405 -- URI:http://test/406 -- URI:http://test/407 -- URI:http://test/408 -- URI:http://test/409 -- URI:http://test/410 -- URI:http://test/411 -- URI:http://test/412 -- URI:http://test/413 -- URI:http://test/414 -- URI:http://test/415 -- URI:http://test/416 -- URI:http://test/417 -- URI:http://test/418 -- URI:http://test/419 -- URI:http://test/420 -- URI:http://test/421 -- URI:http://test/422 -- URI:http://test/423 -- URI:http://test/424 -- URI:http://test/425 -- URI:http://test/426 -- URI:http://test/427 -- URI:http://test/428 -- URI:http://test/429 -- URI:http://test/430 -- URI:http://test/431 -- URI:http://test/432 -- URI:http://test/433 -- URI:http://test/434 -- URI:http://test/435 -- URI:http://test/436 -- URI:http://test/437 -- URI:http://test/438 -- URI:http://test/439 -- URI:http://test/440 -- URI:http://test/441 -- URI:http://test/442 -- URI:http://test/443 -- URI:http://test/444 -- URI:http://test/445 -- URI:http://test/446 -- URI:http://test/447 -- URI:http://test/448 -- URI:http://test/449 -- URI:http://test/450 -- URI:http://test/451 -- URI:http://test/452 -- URI:http://test/453 -- URI:http://test/454 -- URI:http://test/455 -- URI:http://test/456 -- URI:http://test/457 -- URI:http://test/458 -- URI:http://test/459 -- URI:http://test/460 -- URI:http://test/461 -- URI:http://test/462 -- URI:http://test/463 -- URI:http://test/464 -- URI:http://test/465 -- URI:http://test/466 -- URI:http://test/467 -- URI:http://test/468 -- URI:http://test/469 -- URI:http://test/470 -- URI:http://test/471 -- URI:http://test/472 -- URI:http://test/473 -- URI:http://test/474 -- URI:http://test/475 -- URI:http://test/476 -- URI:http://test/477 -- URI:http://test/478 -- URI:http://test/479 -- URI:http://test/480 -- URI:http://test/481 -- URI:http://test/482 -- URI:http://test/483 -- URI:http://test/484 -- URI:http://test/485 -- URI:http://test/486 -- URI:http://test/487 -- URI:http://test/488 -- URI:http://test/489 -- URI:http://test/490 -- URI:http://test/491 -- URI:http://test/492 -- URI:http://test/493 -- URI:http://test/494 -- URI:http://test/495 -- URI:http://test/496 -- URI:http://test/497 -- URI:http://test/498 -- URI:http://test/499 -- URI:http://test/500 -- URI:http://test/501 -- URI:http://test/502 -- URI:http://test/503 -- URI:http://test/504 -- URI:http://test/505 -- URI:http://test/506 -- URI:http://test/507 -- URI:http://test/508 -- URI:http://test/509 -- URI:http://test/510 -- URI:http://test/511 -- URI:http://test/512 -- URI:http://test/513 -- URI:http://test/514 -- URI:http://test/515 -- URI:http://test/516 -- URI:http://test/517 -- URI:http://test/518 -- URI:http://test/519 -- URI:http://test/520 -- URI:http://test/521 -- URI:http://test/522 -- URI:http://test/523 -- URI:http://test/524 -- URI:http://test/525 -- URI:http://test/526 -- URI:http://test/527 -- URI:http://test/528 -- URI:http://test/529 -- URI:http://test/530 -- URI:http://test/531 -- URI:http://test/532 -- URI:http://test/533 -- URI:http://test/534 -- URI:http://test/535 -- URI:http://test/536 -- URI:http://test/537 -- URI:http://test/538 -- URI:http://test/539 -- URI:http://test/540 -- URI:http://test/541 -- URI:http://test/542 -- URI:http://test/543 -- URI:http://test/544 -- URI:http://test/545 -- URI:http://test/546 -- URI:http://test/547 -- URI:http://test/548 -- URI:http://test/549 -- URI:http://test/550 -- URI:http://test/551 -- URI:http://test/552 -- URI:http://test/553 -- URI:http://test/554 -- URI:http://test/555 -- URI:http://test/556 -- URI:http://test/557 -- URI:http://test/558 -- URI:http://test/559 -- URI:http://test/560 -- URI:http://test/561 -- URI:http://test/562 -- URI:http://test/563 -- URI:http://test/564 -- URI:http://test/565 -- URI:http://test/566 -- URI:http://test/567 -- URI:http://test/568 -- URI:http://test/569 -- URI:http://test/570 -- URI:http://test/571 -- URI:http://test/572 -- URI:http://test/573 -- URI:http://test/574 -- URI:http://test/575 -- URI:http://test/576 -- URI:http://test/577 -- URI:http://test/578 -- URI:http://test/579 -- URI:http://test/580 -- URI:http://test/581 -- URI:http://test/582 -- URI:http://test/583 -- URI:http://test/584 -- URI:http://test/585 -- URI:http://test/586 -- URI:http://test/587 -- URI:http://test/588 -- URI:http://test/589 -- URI:http://test/590 -- URI:http://test/591 -- URI:http://test/592 -- URI:http://test/593 -- URI:http://test/594 -- URI:http://test/595 -- URI:http://test/596 -- URI:http://test/597 -- URI:http://test/598 -- URI:http://test/599 -- URI:http://test/600 -- URI:http://test/601 -- URI:http://test/602 -- URI:http://test/603 -- URI:http://test/604 -- URI:http://test/605 -- URI:http://test/606 -- URI:http://test/607 -- URI:http://test/608 -- URI:http://test/609 -- URI:http://test/610 -- URI:http://test/611 -- URI:http://test/612 -- URI:http://test/613 -- URI:http://test/614 -- URI:http://test/615 -- URI:http://test/616 -- URI:http://test/617 -- URI:http://test/618 -- URI:http://test/619 -- URI:http://test/620 -- URI:http://test/621 -- URI:http://test/622 -- URI:http://test/623 -- URI:http://test/624 -- URI:http://test/625 -- URI:http://test/626 -- URI:http://test/627 -- URI:http://test/628 -- URI:http://test/629 -- URI:http://test/630 -- URI:http://test/631 -- URI:http://test/632 -- URI:http://test/633 -- URI:http://test/634 -- URI:http://test/635 -- URI:http://test/636 -- URI:http://test/637 -- URI:http://test/638 -- URI:http://test/639 -- URI:http://test/640 -- URI:http://test/641 -- URI:http://test/642 -- URI:http://test/643 -- URI:http://test/644 -- URI:http://test/645 -- URI:http://test/646 -- URI:http://test/647 -- URI:http://test/648 -- URI:http://test/649 -- URI:http://test/650 -- URI:http://test/651 -- URI:http://test/652 -- URI:http://test/653 -- URI:http://test/654 -- URI:http://test/655 -- URI:http://test/656 -- URI:http://test/657 -- URI:http://test/658 -- URI:http://test/659 -- URI:http://test/660 -- URI:http://test/661 -- URI:http://test/662 -- URI:http://test/663 -- URI:http://test/664 -- URI:http://test/665 -- URI:http://test/666 -- URI:http://test/667 -- URI:http://test/668 -- URI:http://test/669 -- URI:http://test/670 -- URI:http://test/671 -- URI:http://test/672 -- URI:http://test/673 -- URI:http://test/674 -- URI:http://test/675 -- URI:http://test/676 -- URI:http://test/677 -- URI:http://test/678 -- URI:http://test/679 -- URI:http://test/680 -- URI:http://test/681 -- URI:http://test/682 -- URI:http://test/683 -- URI:http://test/684 -- URI:http://test/685 -- URI:http://test/686 -- URI:http://test/687 -- URI:http://test/688 -- URI:http://test/689 -- URI:http://test/690 -- URI:http://test/691 -- URI:http://test/692 -- URI:http://test/693 -- URI:http://test/694 -- URI:http://test/695 -- URI:http://test/696 -- URI:http://test/697 -- URI:http://test/698 -- URI:http://test/699 -- URI:http://test/700 -- URI:http://test/701 -- URI:http://test/702 -- URI:http://test/703 -- URI:http://test/704 -- URI:http://test/705 -- URI:http://test/706 -- URI:http://test/707 -- URI:http://test/708 -- URI:http://test/709 -- URI:http://test/710 -- URI:http://test/711 -- URI:http://test/712 -- URI:http://test/713 -- URI:http://test/714 -- URI:http://test/715 -- URI:http://test/716 -- URI:http://test/717 -- URI:http://test/718 -- URI:http://test/719 -- URI:http://test/720 -- URI:http://test/721 -- URI:http://test/722 -- URI:http://test/723 -- URI:http://test/724 -- URI:http://test/725 -- URI:http://test/726 -- URI:http://test/727 -- URI:http://test/728 -- URI:http://test/729 -- URI:http://test/730 -- URI:http://test/731 -- URI:http://test/732 -- URI:http://test/733 -- URI:http://test/734 -- URI:http://test/735 -- URI:http://test/736 -- URI:http://test/737 -- URI:http://test/738 -- URI:http://test/739 -- URI:http://test/740 -- URI:http://test/741 -- URI:http://test/742 -- URI:http://test/743 -- URI:http://test/744 -- URI:http://test/745 -- URI:http://test/746 -- URI:http://test/747 -- URI:http://test/748 -- URI:http://test/749 -- URI:http://test/750 -- URI:http://test/751 -- URI:http://test/752 -- URI:http://test/753 -- URI:http://test/754 -- URI:http://test/755 -- URI:http://test/756 -- URI:http://test/757 -- URI:http://test/758 -- URI:http://test/759 -- URI:http://test/760 -- URI:http://test/761 -- URI:http://test/762 -- URI:http://test/763 -- URI:http://test/764 -- URI:http://test/765 -- URI:http://test/766 -- URI:http://test/767 -- URI:http://test/768 -- URI:http://test/769 -- URI:http://test/770 -- URI:http://test/771 -- URI:http://test/772 -- URI:http://test/773 -- URI:http://test/774 -- URI:http://test/775 -- URI:http://test/776 -- URI:http://test/777 -- URI:http://test/778 -- URI:http://test/779 -- URI:http://test/780 -- URI:http://test/781 -- URI:http://test/782 -- URI:http://test/783 -- URI:http://test/784 -- URI:http://test/785 -- URI:http://test/786 -- URI:http://test/787 -- URI:http://test/788 -- URI:http://test/789 -- URI:http://test/790 -- URI:http://test/791 -- URI:http://test/792 -- URI:http://test/793 -- URI:http://test/794 -- URI:http://test/795 -- URI:http://test/796 -- URI:http://test/797 -- URI:http://test/798 -- URI:http://test/799 -- URI:http://test/800 -- URI:http://test/801 -- URI:http://test/802 -- URI:http://test/803 -- URI:http://test/804 -- URI:http://test/805 -- URI:http://test/806 -- URI:http://test/807 -- URI:http://test/808 -- URI:http://test/809 -- URI:http://test/810 -- URI:http://test/811 -- URI:http://test/812 -- URI:http://test/813 -- URI:http://test/814 -- URI:http://test/815 -- URI:http://test/816 -- URI:http://test/817 -- URI:http://test/818 -- URI:http://test/819 -- URI:http://test/820 -- URI:http://test/821 -- URI:http://test/822 -- URI:http://test/823 -- URI:http://test/824 -- URI:http://test/825 -- URI:http://test/826 -- URI:http://test/827 -- URI:http://test/828 -- URI:http://test/829 -- URI:http://test/830 -- URI:http://test/831 -- URI:http://test/832 -- URI:http://test/833 -- URI:http://test/834 -- URI:http://test/835 -- URI:http://test/836 -- URI:http://test/837 -- URI:http://test/838 -- URI:http://test/839 -- URI:http://test/840 -- URI:http://test/841 -- URI:http://test/842 -- URI:http://test/843 -- URI:http://test/844 -- URI:http://test/845 -- URI:http://test/846 -- URI:http://test/847 -- URI:http://test/848 -- URI:http://test/849 -- URI:http://test/850 -- URI:http://test/851 -- URI:http://test/852 -- URI:http://test/853 -- URI:http://test/854 -- URI:http://test/855 -- URI:http://test/856 -- URI:http://test/857 -- URI:http://test/858 -- URI:http://test/859 -- URI:http://test/860 -- URI:http://test/861 -- URI:http://test/862 -- URI:http://test/863 -- URI:http://test/864 -- URI:http://test/865 -- URI:http://test/866 -- URI:http://test/867 -- URI:http://test/868 -- URI:http://test/869 -- URI:http://test/870 -- URI:http://test/871 -- URI:http://test/872 -- URI:http://test/873 -- URI:http://test/874 -- URI:http://test/875 -- URI:http://test/876 -- URI:http://test/877 -- URI:http://test/878 -- URI:http://test/879 -- URI:http://test/880 -- URI:http://test/881 -- URI:http://test/882 -- URI:http://test/883 -- URI:http://test/884 -- URI:http://test/885 -- URI:http://test/886 -- URI:http://test/887 -- URI:http://test/888 -- URI:http://test/889 -- URI:http://test/890 -- URI:http://test/891 -- URI:http://test/892 -- URI:http://test/893 -- URI:http://test/894 -- URI:http://test/895 -- URI:http://test/896 -- URI:http://test/897 -- URI:http://test/898 -- URI:http://test/899 -- URI:http://test/900 -- URI:http://test/901 -- URI:http://test/902 -- URI:http://test/903 -- URI:http://test/904 -- URI:http://test/905 -- URI:http://test/906 -- URI:http://test/907 -- URI:http://test/908 -- URI:http://test/909 -- URI:http://test/910 -- URI:http://test/911 -- URI:http://test/912 -- URI:http://test/913 -- URI:http://test/914 -- URI:http://test/915 -- URI:http://test/916 -- URI:http://test/917 -- URI:http://test/918 -- URI:http://test/919 -- URI:http://test/920 -- URI:http://test/921 -- URI:http://test/922 -- URI:http://test/923 -- URI:http://test/924 -- URI:http://test/925 -- URI:http://test/926 -- URI:http://test/927 -- URI:http://test/928 -- URI:http://test/929 -- URI:http://test/930 -- URI:http://test/931 -- URI:http://test/932 -- URI:http://test/933 -- URI:http://test/934 -- URI:http://test/935 -- URI:http://test/936 -- URI:http://test/937 -- URI:http://test/938 -- URI:http://test/939 -- URI:http://test/940 -- URI:http://test/941 -- URI:http://test/942 -- URI:http://test/943 -- URI:http://test/944 -- URI:http://test/945 -- URI:http://test/946 -- URI:http://test/947 -- URI:http://test/948 -- URI:http://test/949 -- URI:http://test/950 -- URI:http://test/951 -- URI:http://test/952 -- URI:http://test/953 -- URI:http://test/954 -- URI:http://test/955 -- URI:http://test/956 -- URI:http://test/957 -- URI:http://test/958 -- URI:http://test/959 -- URI:http://test/960 -- URI:http://test/961 -- URI:http://test/962 -- URI:http://test/963 -- URI:http://test/964 -- URI:http://test/965 -- URI:http://test/966 -- URI:http://test/967 -- URI:http://test/968 -- URI:http://test/969 -- URI:http://test/970 -- URI:http://test/971 -- URI:http://test/972 -- URI:http://test/973 -- URI:http://test/974 -- URI:http://test/975 -- URI:http://test/976 -- URI:http://test/977 -- URI:http://test/978 -- URI:http://test/979 -- URI:http://test/980 -- URI:http://test/981 -- URI:http://test/982 -- URI:http://test/983 -- URI:http://test/984 -- URI:http://test/985 -- URI:http://test/986 -- URI:http://test/987 -- URI:http://test/988 -- URI:http://test/989 -- URI:http://test/990 -- URI:http://test/991 -- URI:http://test/992 -- URI:http://test/993 -- URI:http://test/994 -- URI:http://test/995 -- URI:http://test/996 -- URI:http://test/997 -- URI:http://test/998 -- URI:http://test/999 -- URI:http://test/1000 -- URI:http://test/1001 -- URI:http://test/1002 -- URI:http://test/1003 -- URI:http://test/1004 -- URI:http://test/1005 -- URI:http://test/1006 -- URI:http://test/1007 -- URI:http://test/1008 -- URI:http://test/1009 -- URI:http://test/1010 -- URI:http://test/1011 -- URI:http://test/1012 -- URI:http://test/1013 -- URI:http://test/1014 -- URI:http://test/1015 -- URI:http://test/1016 -- URI:http://test/1017 -- URI:http://test/1018 -- URI:http://test/1019 -- URI:http://test/1020 -- URI:http://test/1021 -- URI:http://test/1022 -- URI:http://test/1023 -- URI:http://test/1024 -- Excluded: -- DNS:x0.test -- DNS:x1.test -- DNS:x2.test -- DNS:x3.test -- DNS:x4.test -- DNS:x5.test -- DNS:x6.test -- DNS:x7.test -- DNS:x8.test -- DNS:x9.test -- DNS:x10.test -- DNS:x11.test -- DNS:x12.test -- DNS:x13.test -- DNS:x14.test -- DNS:x15.test -- DNS:x16.test -- DNS:x17.test -- DNS:x18.test -- DNS:x19.test -- DNS:x20.test -- DNS:x21.test -- DNS:x22.test -- DNS:x23.test -- DNS:x24.test -- DNS:x25.test -- DNS:x26.test -- DNS:x27.test -- DNS:x28.test -- DNS:x29.test -- DNS:x30.test -- DNS:x31.test -- DNS:x32.test -- DNS:x33.test -- DNS:x34.test -- DNS:x35.test -- DNS:x36.test -- DNS:x37.test -- DNS:x38.test -- DNS:x39.test -- DNS:x40.test -- DNS:x41.test -- DNS:x42.test -- DNS:x43.test -- DNS:x44.test -- DNS:x45.test -- DNS:x46.test -- DNS:x47.test -- DNS:x48.test -- DNS:x49.test -- DNS:x50.test -- DNS:x51.test -- DNS:x52.test -- DNS:x53.test -- DNS:x54.test -- DNS:x55.test -- DNS:x56.test -- DNS:x57.test -- DNS:x58.test -- DNS:x59.test -- DNS:x60.test -- DNS:x61.test -- DNS:x62.test -- DNS:x63.test -- DNS:x64.test -- DNS:x65.test -- DNS:x66.test -- DNS:x67.test -- DNS:x68.test -- DNS:x69.test -- DNS:x70.test -- DNS:x71.test -- DNS:x72.test -- DNS:x73.test -- DNS:x74.test -- DNS:x75.test -- DNS:x76.test -- DNS:x77.test -- DNS:x78.test -- DNS:x79.test -- DNS:x80.test -- DNS:x81.test -- DNS:x82.test -- DNS:x83.test -- DNS:x84.test -- DNS:x85.test -- DNS:x86.test -- DNS:x87.test -- DNS:x88.test -- DNS:x89.test -- DNS:x90.test -- DNS:x91.test -- DNS:x92.test -- DNS:x93.test -- DNS:x94.test -- DNS:x95.test -- DNS:x96.test -- DNS:x97.test -- DNS:x98.test -- DNS:x99.test -- DNS:x100.test -- DNS:x101.test -- DNS:x102.test -- DNS:x103.test -- DNS:x104.test -- DNS:x105.test -- DNS:x106.test -- DNS:x107.test -- DNS:x108.test -- DNS:x109.test -- DNS:x110.test -- DNS:x111.test -- DNS:x112.test -- DNS:x113.test -- DNS:x114.test -- DNS:x115.test -- DNS:x116.test -- DNS:x117.test -- DNS:x118.test -- DNS:x119.test -- DNS:x120.test -- DNS:x121.test -- DNS:x122.test -- DNS:x123.test -- DNS:x124.test -- DNS:x125.test -- DNS:x126.test -- DNS:x127.test -- DNS:x128.test -- DNS:x129.test -- DNS:x130.test -- DNS:x131.test -- DNS:x132.test -- DNS:x133.test -- DNS:x134.test -- DNS:x135.test -- DNS:x136.test -- DNS:x137.test -- DNS:x138.test -- DNS:x139.test -- DNS:x140.test -- DNS:x141.test -- DNS:x142.test -- DNS:x143.test -- DNS:x144.test -- DNS:x145.test -- DNS:x146.test -- DNS:x147.test -- DNS:x148.test -- DNS:x149.test -- DNS:x150.test -- DNS:x151.test -- DNS:x152.test -- DNS:x153.test -- DNS:x154.test -- DNS:x155.test -- DNS:x156.test -- DNS:x157.test -- DNS:x158.test -- DNS:x159.test -- DNS:x160.test -- DNS:x161.test -- DNS:x162.test -- DNS:x163.test -- DNS:x164.test -- DNS:x165.test -- DNS:x166.test -- DNS:x167.test -- DNS:x168.test -- DNS:x169.test -- DNS:x170.test -- DNS:x171.test -- DNS:x172.test -- DNS:x173.test -- DNS:x174.test -- DNS:x175.test -- DNS:x176.test -- DNS:x177.test -- DNS:x178.test -- DNS:x179.test -- DNS:x180.test -- DNS:x181.test -- DNS:x182.test -- DNS:x183.test -- DNS:x184.test -- DNS:x185.test -- DNS:x186.test -- DNS:x187.test -- DNS:x188.test -- DNS:x189.test -- DNS:x190.test -- DNS:x191.test -- DNS:x192.test -- DNS:x193.test -- DNS:x194.test -- DNS:x195.test -- DNS:x196.test -- DNS:x197.test -- DNS:x198.test -- DNS:x199.test -- DNS:x200.test -- DNS:x201.test -- DNS:x202.test -- DNS:x203.test -- DNS:x204.test -- DNS:x205.test -- DNS:x206.test -- DNS:x207.test -- DNS:x208.test -- DNS:x209.test -- DNS:x210.test -- DNS:x211.test -- DNS:x212.test -- DNS:x213.test -- DNS:x214.test -- DNS:x215.test -- DNS:x216.test -- DNS:x217.test -- DNS:x218.test -- DNS:x219.test -- DNS:x220.test -- DNS:x221.test -- DNS:x222.test -- DNS:x223.test -- DNS:x224.test -- DNS:x225.test -- DNS:x226.test -- DNS:x227.test -- DNS:x228.test -- DNS:x229.test -- DNS:x230.test -- DNS:x231.test -- DNS:x232.test -- DNS:x233.test -- DNS:x234.test -- DNS:x235.test -- DNS:x236.test -- DNS:x237.test -- DNS:x238.test -- DNS:x239.test -- DNS:x240.test -- DNS:x241.test -- DNS:x242.test -- DNS:x243.test -- DNS:x244.test -- DNS:x245.test -- DNS:x246.test -- DNS:x247.test -- DNS:x248.test -- DNS:x249.test -- DNS:x250.test -- DNS:x251.test -- DNS:x252.test -- DNS:x253.test -- DNS:x254.test -- DNS:x255.test -- DNS:x256.test -- DNS:x257.test -- DNS:x258.test -- DNS:x259.test -- DNS:x260.test -- DNS:x261.test -- DNS:x262.test -- DNS:x263.test -- DNS:x264.test -- DNS:x265.test -- DNS:x266.test -- DNS:x267.test -- DNS:x268.test -- DNS:x269.test -- DNS:x270.test -- DNS:x271.test -- DNS:x272.test -- DNS:x273.test -- DNS:x274.test -- DNS:x275.test -- DNS:x276.test -- DNS:x277.test -- DNS:x278.test -- DNS:x279.test -- DNS:x280.test -- DNS:x281.test -- DNS:x282.test -- DNS:x283.test -- DNS:x284.test -- DNS:x285.test -- DNS:x286.test -- DNS:x287.test -- DNS:x288.test -- DNS:x289.test -- DNS:x290.test -- DNS:x291.test -- DNS:x292.test -- DNS:x293.test -- DNS:x294.test -- DNS:x295.test -- DNS:x296.test -- DNS:x297.test -- DNS:x298.test -- DNS:x299.test -- DNS:x300.test -- DNS:x301.test -- DNS:x302.test -- DNS:x303.test -- DNS:x304.test -- DNS:x305.test -- DNS:x306.test -- DNS:x307.test -- DNS:x308.test -- DNS:x309.test -- DNS:x310.test -- DNS:x311.test -- DNS:x312.test -- DNS:x313.test -- DNS:x314.test -- DNS:x315.test -- DNS:x316.test -- DNS:x317.test -- DNS:x318.test -- DNS:x319.test -- DNS:x320.test -- DNS:x321.test -- DNS:x322.test -- DNS:x323.test -- DNS:x324.test -- DNS:x325.test -- DNS:x326.test -- DNS:x327.test -- DNS:x328.test -- DNS:x329.test -- DNS:x330.test -- DNS:x331.test -- DNS:x332.test -- DNS:x333.test -- DNS:x334.test -- DNS:x335.test -- DNS:x336.test -- DNS:x337.test -- DNS:x338.test -- DNS:x339.test -- DNS:x340.test -- DNS:x341.test -- DNS:x342.test -- DNS:x343.test -- DNS:x344.test -- DNS:x345.test -- DNS:x346.test -- DNS:x347.test -- DNS:x348.test -- DNS:x349.test -- DNS:x350.test -- DNS:x351.test -- DNS:x352.test -- DNS:x353.test -- DNS:x354.test -- DNS:x355.test -- DNS:x356.test -- DNS:x357.test -- DNS:x358.test -- DNS:x359.test -- DNS:x360.test -- DNS:x361.test -- DNS:x362.test -- DNS:x363.test -- DNS:x364.test -- DNS:x365.test -- DNS:x366.test -- DNS:x367.test -- DNS:x368.test -- DNS:x369.test -- DNS:x370.test -- DNS:x371.test -- DNS:x372.test -- DNS:x373.test -- DNS:x374.test -- DNS:x375.test -- DNS:x376.test -- DNS:x377.test -- DNS:x378.test -- DNS:x379.test -- DNS:x380.test -- DNS:x381.test -- DNS:x382.test -- DNS:x383.test -- DNS:x384.test -- DNS:x385.test -- DNS:x386.test -- DNS:x387.test -- DNS:x388.test -- DNS:x389.test -- DNS:x390.test -- DNS:x391.test -- DNS:x392.test -- DNS:x393.test -- DNS:x394.test -- DNS:x395.test -- DNS:x396.test -- DNS:x397.test -- DNS:x398.test -- DNS:x399.test -- DNS:x400.test -- DNS:x401.test -- DNS:x402.test -- DNS:x403.test -- DNS:x404.test -- DNS:x405.test -- DNS:x406.test -- DNS:x407.test -- DNS:x408.test -- DNS:x409.test -- DNS:x410.test -- DNS:x411.test -- DNS:x412.test -- DNS:x413.test -- DNS:x414.test -- DNS:x415.test -- DNS:x416.test -- DNS:x417.test -- DNS:x418.test -- DNS:x419.test -- DNS:x420.test -- DNS:x421.test -- DNS:x422.test -- DNS:x423.test -- DNS:x424.test -- DNS:x425.test -- DNS:x426.test -- DNS:x427.test -- DNS:x428.test -- DNS:x429.test -- DNS:x430.test -- DNS:x431.test -- DNS:x432.test -- DNS:x433.test -- DNS:x434.test -- DNS:x435.test -- DNS:x436.test -- DNS:x437.test -- DNS:x438.test -- DNS:x439.test -- DNS:x440.test -- DNS:x441.test -- DNS:x442.test -- DNS:x443.test -- DNS:x444.test -- DNS:x445.test -- DNS:x446.test -- DNS:x447.test -- DNS:x448.test -- DNS:x449.test -- DNS:x450.test -- DNS:x451.test -- DNS:x452.test -- DNS:x453.test -- DNS:x454.test -- DNS:x455.test -- DNS:x456.test -- DNS:x457.test -- DNS:x458.test -- DNS:x459.test -- DNS:x460.test -- DNS:x461.test -- DNS:x462.test -- DNS:x463.test -- DNS:x464.test -- DNS:x465.test -- DNS:x466.test -- DNS:x467.test -- DNS:x468.test -- DNS:x469.test -- DNS:x470.test -- DNS:x471.test -- DNS:x472.test -- DNS:x473.test -- DNS:x474.test -- DNS:x475.test -- DNS:x476.test -- DNS:x477.test -- DNS:x478.test -- DNS:x479.test -- DNS:x480.test -- DNS:x481.test -- DNS:x482.test -- DNS:x483.test -- DNS:x484.test -- DNS:x485.test -- DNS:x486.test -- DNS:x487.test -- DNS:x488.test -- DNS:x489.test -- DNS:x490.test -- DNS:x491.test -- DNS:x492.test -- DNS:x493.test -- DNS:x494.test -- DNS:x495.test -- DNS:x496.test -- DNS:x497.test -- DNS:x498.test -- DNS:x499.test -- DNS:x500.test -- DNS:x501.test -- DNS:x502.test -- DNS:x503.test -- DNS:x504.test -- DNS:x505.test -- DNS:x506.test -- DNS:x507.test -- DNS:x508.test -- DNS:x509.test -- DNS:x510.test -- DNS:x511.test -- DNS:x512.test -- DNS:x513.test -- DNS:x514.test -- DNS:x515.test -- DNS:x516.test -- DNS:x517.test -- DNS:x518.test -- DNS:x519.test -- DNS:x520.test -- DNS:x521.test -- DNS:x522.test -- DNS:x523.test -- DNS:x524.test -- DNS:x525.test -- DNS:x526.test -- DNS:x527.test -- DNS:x528.test -- DNS:x529.test -- DNS:x530.test -- DNS:x531.test -- DNS:x532.test -- DNS:x533.test -- DNS:x534.test -- DNS:x535.test -- DNS:x536.test -- DNS:x537.test -- DNS:x538.test -- DNS:x539.test -- DNS:x540.test -- DNS:x541.test -- DNS:x542.test -- DNS:x543.test -- DNS:x544.test -- DNS:x545.test -- DNS:x546.test -- DNS:x547.test -- DNS:x548.test -- DNS:x549.test -- DNS:x550.test -- DNS:x551.test -- DNS:x552.test -- DNS:x553.test -- DNS:x554.test -- DNS:x555.test -- DNS:x556.test -- DNS:x557.test -- DNS:x558.test -- DNS:x559.test -- DNS:x560.test -- DNS:x561.test -- DNS:x562.test -- DNS:x563.test -- DNS:x564.test -- DNS:x565.test -- DNS:x566.test -- DNS:x567.test -- DNS:x568.test -- DNS:x569.test -- DNS:x570.test -- DNS:x571.test -- DNS:x572.test -- DNS:x573.test -- DNS:x574.test -- DNS:x575.test -- DNS:x576.test -- DNS:x577.test -- DNS:x578.test -- DNS:x579.test -- DNS:x580.test -- DNS:x581.test -- DNS:x582.test -- DNS:x583.test -- DNS:x584.test -- DNS:x585.test -- DNS:x586.test -- DNS:x587.test -- DNS:x588.test -- DNS:x589.test -- DNS:x590.test -- DNS:x591.test -- DNS:x592.test -- DNS:x593.test -- DNS:x594.test -- DNS:x595.test -- DNS:x596.test -- DNS:x597.test -- DNS:x598.test -- DNS:x599.test -- DNS:x600.test -- DNS:x601.test -- DNS:x602.test -- DNS:x603.test -- DNS:x604.test -- DNS:x605.test -- DNS:x606.test -- DNS:x607.test -- DNS:x608.test -- DNS:x609.test -- DNS:x610.test -- DNS:x611.test -- DNS:x612.test -- DNS:x613.test -- DNS:x614.test -- DNS:x615.test -- DNS:x616.test -- DNS:x617.test -- DNS:x618.test -- DNS:x619.test -- DNS:x620.test -- DNS:x621.test -- DNS:x622.test -- DNS:x623.test -- DNS:x624.test -- DNS:x625.test -- DNS:x626.test -- DNS:x627.test -- DNS:x628.test -- DNS:x629.test -- DNS:x630.test -- DNS:x631.test -- DNS:x632.test -- DNS:x633.test -- DNS:x634.test -- DNS:x635.test -- DNS:x636.test -- DNS:x637.test -- DNS:x638.test -- DNS:x639.test -- DNS:x640.test -- DNS:x641.test -- DNS:x642.test -- DNS:x643.test -- DNS:x644.test -- DNS:x645.test -- DNS:x646.test -- DNS:x647.test -- DNS:x648.test -- DNS:x649.test -- DNS:x650.test -- DNS:x651.test -- DNS:x652.test -- DNS:x653.test -- DNS:x654.test -- DNS:x655.test -- DNS:x656.test -- DNS:x657.test -- DNS:x658.test -- DNS:x659.test -- DNS:x660.test -- DNS:x661.test -- DNS:x662.test -- DNS:x663.test -- DNS:x664.test -- DNS:x665.test -- DNS:x666.test -- DNS:x667.test -- DNS:x668.test -- DNS:x669.test -- DNS:x670.test -- DNS:x671.test -- DNS:x672.test -- DNS:x673.test -- DNS:x674.test -- DNS:x675.test -- DNS:x676.test -- DNS:x677.test -- DNS:x678.test -- DNS:x679.test -- DNS:x680.test -- DNS:x681.test -- DNS:x682.test -- DNS:x683.test -- DNS:x684.test -- DNS:x685.test -- DNS:x686.test -- DNS:x687.test -- DNS:x688.test -- DNS:x689.test -- DNS:x690.test -- DNS:x691.test -- DNS:x692.test -- DNS:x693.test -- DNS:x694.test -- DNS:x695.test -- DNS:x696.test -- DNS:x697.test -- DNS:x698.test -- DNS:x699.test -- DNS:x700.test -- DNS:x701.test -- DNS:x702.test -- DNS:x703.test -- DNS:x704.test -- DNS:x705.test -- DNS:x706.test -- DNS:x707.test -- DNS:x708.test -- DNS:x709.test -- DNS:x710.test -- DNS:x711.test -- DNS:x712.test -- DNS:x713.test -- DNS:x714.test -- DNS:x715.test -- DNS:x716.test -- DNS:x717.test -- DNS:x718.test -- DNS:x719.test -- DNS:x720.test -- DNS:x721.test -- DNS:x722.test -- DNS:x723.test -- DNS:x724.test -- DNS:x725.test -- DNS:x726.test -- DNS:x727.test -- DNS:x728.test -- DNS:x729.test -- DNS:x730.test -- DNS:x731.test -- DNS:x732.test -- DNS:x733.test -- DNS:x734.test -- DNS:x735.test -- DNS:x736.test -- DNS:x737.test -- DNS:x738.test -- DNS:x739.test -- DNS:x740.test -- DNS:x741.test -- DNS:x742.test -- DNS:x743.test -- DNS:x744.test -- DNS:x745.test -- DNS:x746.test -- DNS:x747.test -- DNS:x748.test -- DNS:x749.test -- DNS:x750.test -- DNS:x751.test -- DNS:x752.test -- DNS:x753.test -- DNS:x754.test -- DNS:x755.test -- DNS:x756.test -- DNS:x757.test -- DNS:x758.test -- DNS:x759.test -- DNS:x760.test -- DNS:x761.test -- DNS:x762.test -- DNS:x763.test -- DNS:x764.test -- DNS:x765.test -- DNS:x766.test -- DNS:x767.test -- DNS:x768.test -- DNS:x769.test -- DNS:x770.test -- DNS:x771.test -- DNS:x772.test -- DNS:x773.test -- DNS:x774.test -- DNS:x775.test -- DNS:x776.test -- DNS:x777.test -- DNS:x778.test -- DNS:x779.test -- DNS:x780.test -- DNS:x781.test -- DNS:x782.test -- DNS:x783.test -- DNS:x784.test -- DNS:x785.test -- DNS:x786.test -- DNS:x787.test -- DNS:x788.test -- DNS:x789.test -- DNS:x790.test -- DNS:x791.test -- DNS:x792.test -- DNS:x793.test -- DNS:x794.test -- DNS:x795.test -- DNS:x796.test -- DNS:x797.test -- DNS:x798.test -- DNS:x799.test -- DNS:x800.test -- DNS:x801.test -- DNS:x802.test -- DNS:x803.test -- DNS:x804.test -- DNS:x805.test -- DNS:x806.test -- DNS:x807.test -- DNS:x808.test -- DNS:x809.test -- DNS:x810.test -- DNS:x811.test -- DNS:x812.test -- DNS:x813.test -- DNS:x814.test -- DNS:x815.test -- DNS:x816.test -- DNS:x817.test -- DNS:x818.test -- DNS:x819.test -- DNS:x820.test -- DNS:x821.test -- DNS:x822.test -- DNS:x823.test -- DNS:x824.test -- DNS:x825.test -- DNS:x826.test -- DNS:x827.test -- DNS:x828.test -- DNS:x829.test -- DNS:x830.test -- DNS:x831.test -- DNS:x832.test -- DNS:x833.test -- DNS:x834.test -- DNS:x835.test -- DNS:x836.test -- DNS:x837.test -- DNS:x838.test -- DNS:x839.test -- DNS:x840.test -- DNS:x841.test -- DNS:x842.test -- DNS:x843.test -- DNS:x844.test -- DNS:x845.test -- DNS:x846.test -- DNS:x847.test -- DNS:x848.test -- DNS:x849.test -- DNS:x850.test -- DNS:x851.test -- DNS:x852.test -- DNS:x853.test -- DNS:x854.test -- DNS:x855.test -- DNS:x856.test -- DNS:x857.test -- DNS:x858.test -- DNS:x859.test -- DNS:x860.test -- DNS:x861.test -- DNS:x862.test -- DNS:x863.test -- DNS:x864.test -- DNS:x865.test -- DNS:x866.test -- DNS:x867.test -- DNS:x868.test -- DNS:x869.test -- DNS:x870.test -- DNS:x871.test -- DNS:x872.test -- DNS:x873.test -- DNS:x874.test -- DNS:x875.test -- DNS:x876.test -- DNS:x877.test -- DNS:x878.test -- DNS:x879.test -- DNS:x880.test -- DNS:x881.test -- DNS:x882.test -- DNS:x883.test -- DNS:x884.test -- DNS:x885.test -- DNS:x886.test -- DNS:x887.test -- DNS:x888.test -- DNS:x889.test -- DNS:x890.test -- DNS:x891.test -- DNS:x892.test -- DNS:x893.test -- DNS:x894.test -- DNS:x895.test -- DNS:x896.test -- DNS:x897.test -- DNS:x898.test -- DNS:x899.test -- DNS:x900.test -- DNS:x901.test -- DNS:x902.test -- DNS:x903.test -- DNS:x904.test -- DNS:x905.test -- DNS:x906.test -- DNS:x907.test -- DNS:x908.test -- DNS:x909.test -- DNS:x910.test -- DNS:x911.test -- DNS:x912.test -- DNS:x913.test -- DNS:x914.test -- DNS:x915.test -- DNS:x916.test -- DNS:x917.test -- DNS:x918.test -- DNS:x919.test -- DNS:x920.test -- DNS:x921.test -- DNS:x922.test -- DNS:x923.test -- DNS:x924.test -- DNS:x925.test -- DNS:x926.test -- DNS:x927.test -- DNS:x928.test -- DNS:x929.test -- DNS:x930.test -- DNS:x931.test -- DNS:x932.test -- DNS:x933.test -- DNS:x934.test -- DNS:x935.test -- DNS:x936.test -- DNS:x937.test -- DNS:x938.test -- DNS:x939.test -- DNS:x940.test -- DNS:x941.test -- DNS:x942.test -- DNS:x943.test -- DNS:x944.test -- DNS:x945.test -- DNS:x946.test -- DNS:x947.test -- DNS:x948.test -- DNS:x949.test -- DNS:x950.test -- DNS:x951.test -- DNS:x952.test -- DNS:x953.test -- DNS:x954.test -- DNS:x955.test -- DNS:x956.test -- DNS:x957.test -- DNS:x958.test -- DNS:x959.test -- DNS:x960.test -- DNS:x961.test -- DNS:x962.test -- DNS:x963.test -- DNS:x964.test -- DNS:x965.test -- DNS:x966.test -- DNS:x967.test -- DNS:x968.test -- DNS:x969.test -- DNS:x970.test -- DNS:x971.test -- DNS:x972.test -- DNS:x973.test -- DNS:x974.test -- DNS:x975.test -- DNS:x976.test -- DNS:x977.test -- DNS:x978.test -- DNS:x979.test -- DNS:x980.test -- DNS:x981.test -- DNS:x982.test -- DNS:x983.test -- DNS:x984.test -- DNS:x985.test -- DNS:x986.test -- DNS:x987.test -- DNS:x988.test -- DNS:x989.test -- DNS:x990.test -- DNS:x991.test -- DNS:x992.test -- DNS:x993.test -- DNS:x994.test -- DNS:x995.test -- DNS:x996.test -- DNS:x997.test -- DNS:x998.test -- DNS:x999.test -- DNS:x1000.test -- DNS:x1001.test -- DNS:x1002.test -- DNS:x1003.test -- DNS:x1004.test -- DNS:x1005.test -- DNS:x1006.test -- DNS:x1007.test -- DNS:x1008.test -- DNS:x1009.test -- DNS:x1010.test -- DNS:x1011.test -- DNS:x1012.test -- DNS:x1013.test -- DNS:x1014.test -- DNS:x1015.test -- DNS:x1016.test -- DNS:x1017.test -- DNS:x1018.test -- DNS:x1019.test -- DNS:x1020.test -- DNS:x1021.test -- DNS:x1022.test -- DNS:x1023.test -- DNS:x1024.test -- DirName:CN = x0 -- DirName:CN = x1 -- DirName:CN = x2 -- DirName:CN = x3 -- DirName:CN = x4 -- DirName:CN = x5 -- DirName:CN = x6 -- DirName:CN = x7 -- DirName:CN = x8 -- DirName:CN = x9 -- DirName:CN = x10 -- DirName:CN = x11 -- DirName:CN = x12 -- DirName:CN = x13 -- DirName:CN = x14 -- DirName:CN = x15 -- DirName:CN = x16 -- DirName:CN = x17 -- DirName:CN = x18 -- DirName:CN = x19 -- DirName:CN = x20 -- DirName:CN = x21 -- DirName:CN = x22 -- DirName:CN = x23 -- DirName:CN = x24 -- DirName:CN = x25 -- DirName:CN = x26 -- DirName:CN = x27 -- DirName:CN = x28 -- DirName:CN = x29 -- DirName:CN = x30 -- DirName:CN = x31 -- DirName:CN = x32 -- DirName:CN = x33 -- DirName:CN = x34 -- DirName:CN = x35 -- DirName:CN = x36 -- DirName:CN = x37 -- DirName:CN = x38 -- DirName:CN = x39 -- DirName:CN = x40 -- DirName:CN = x41 -- DirName:CN = x42 -- DirName:CN = x43 -- DirName:CN = x44 -- DirName:CN = x45 -- DirName:CN = x46 -- DirName:CN = x47 -- DirName:CN = x48 -- DirName:CN = x49 -- DirName:CN = x50 -- DirName:CN = x51 -- DirName:CN = x52 -- DirName:CN = x53 -- DirName:CN = x54 -- DirName:CN = x55 -- DirName:CN = x56 -- DirName:CN = x57 -- DirName:CN = x58 -- DirName:CN = x59 -- DirName:CN = x60 -- DirName:CN = x61 -- DirName:CN = x62 -- DirName:CN = x63 -- DirName:CN = x64 -- DirName:CN = x65 -- DirName:CN = x66 -- DirName:CN = x67 -- DirName:CN = x68 -- DirName:CN = x69 -- DirName:CN = x70 -- DirName:CN = x71 -- DirName:CN = x72 -- DirName:CN = x73 -- DirName:CN = x74 -- DirName:CN = x75 -- DirName:CN = x76 -- DirName:CN = x77 -- DirName:CN = x78 -- DirName:CN = x79 -- DirName:CN = x80 -- DirName:CN = x81 -- DirName:CN = x82 -- DirName:CN = x83 -- DirName:CN = x84 -- DirName:CN = x85 -- DirName:CN = x86 -- DirName:CN = x87 -- DirName:CN = x88 -- DirName:CN = x89 -- DirName:CN = x90 -- DirName:CN = x91 -- DirName:CN = x92 -- DirName:CN = x93 -- DirName:CN = x94 -- DirName:CN = x95 -- DirName:CN = x96 -- DirName:CN = x97 -- DirName:CN = x98 -- DirName:CN = x99 -- DirName:CN = x100 -- DirName:CN = x101 -- DirName:CN = x102 -- DirName:CN = x103 -- DirName:CN = x104 -- DirName:CN = x105 -- DirName:CN = x106 -- DirName:CN = x107 -- DirName:CN = x108 -- DirName:CN = x109 -- DirName:CN = x110 -- DirName:CN = x111 -- DirName:CN = x112 -- DirName:CN = x113 -- DirName:CN = x114 -- DirName:CN = x115 -- DirName:CN = x116 -- DirName:CN = x117 -- DirName:CN = x118 -- DirName:CN = x119 -- DirName:CN = x120 -- DirName:CN = x121 -- DirName:CN = x122 -- DirName:CN = x123 -- DirName:CN = x124 -- DirName:CN = x125 -- DirName:CN = x126 -- DirName:CN = x127 -- DirName:CN = x128 -- DirName:CN = x129 -- DirName:CN = x130 -- DirName:CN = x131 -- DirName:CN = x132 -- DirName:CN = x133 -- DirName:CN = x134 -- DirName:CN = x135 -- DirName:CN = x136 -- DirName:CN = x137 -- DirName:CN = x138 -- DirName:CN = x139 -- DirName:CN = x140 -- DirName:CN = x141 -- DirName:CN = x142 -- DirName:CN = x143 -- DirName:CN = x144 -- DirName:CN = x145 -- DirName:CN = x146 -- DirName:CN = x147 -- DirName:CN = x148 -- DirName:CN = x149 -- DirName:CN = x150 -- DirName:CN = x151 -- DirName:CN = x152 -- DirName:CN = x153 -- DirName:CN = x154 -- DirName:CN = x155 -- DirName:CN = x156 -- DirName:CN = x157 -- DirName:CN = x158 -- DirName:CN = x159 -- DirName:CN = x160 -- DirName:CN = x161 -- DirName:CN = x162 -- DirName:CN = x163 -- DirName:CN = x164 -- DirName:CN = x165 -- DirName:CN = x166 -- DirName:CN = x167 -- DirName:CN = x168 -- DirName:CN = x169 -- DirName:CN = x170 -- DirName:CN = x171 -- DirName:CN = x172 -- DirName:CN = x173 -- DirName:CN = x174 -- DirName:CN = x175 -- DirName:CN = x176 -- DirName:CN = x177 -- DirName:CN = x178 -- DirName:CN = x179 -- DirName:CN = x180 -- DirName:CN = x181 -- DirName:CN = x182 -- DirName:CN = x183 -- DirName:CN = x184 -- DirName:CN = x185 -- DirName:CN = x186 -- DirName:CN = x187 -- DirName:CN = x188 -- DirName:CN = x189 -- DirName:CN = x190 -- DirName:CN = x191 -- DirName:CN = x192 -- DirName:CN = x193 -- DirName:CN = x194 -- DirName:CN = x195 -- DirName:CN = x196 -- DirName:CN = x197 -- DirName:CN = x198 -- DirName:CN = x199 -- DirName:CN = x200 -- DirName:CN = x201 -- DirName:CN = x202 -- DirName:CN = x203 -- DirName:CN = x204 -- DirName:CN = x205 -- DirName:CN = x206 -- DirName:CN = x207 -- DirName:CN = x208 -- DirName:CN = x209 -- DirName:CN = x210 -- DirName:CN = x211 -- DirName:CN = x212 -- DirName:CN = x213 -- DirName:CN = x214 -- DirName:CN = x215 -- DirName:CN = x216 -- DirName:CN = x217 -- DirName:CN = x218 -- DirName:CN = x219 -- DirName:CN = x220 -- DirName:CN = x221 -- DirName:CN = x222 -- DirName:CN = x223 -- DirName:CN = x224 -- DirName:CN = x225 -- DirName:CN = x226 -- DirName:CN = x227 -- DirName:CN = x228 -- DirName:CN = x229 -- DirName:CN = x230 -- DirName:CN = x231 -- DirName:CN = x232 -- DirName:CN = x233 -- DirName:CN = x234 -- DirName:CN = x235 -- DirName:CN = x236 -- DirName:CN = x237 -- DirName:CN = x238 -- DirName:CN = x239 -- DirName:CN = x240 -- DirName:CN = x241 -- DirName:CN = x242 -- DirName:CN = x243 -- DirName:CN = x244 -- DirName:CN = x245 -- DirName:CN = x246 -- DirName:CN = x247 -- DirName:CN = x248 -- DirName:CN = x249 -- DirName:CN = x250 -- DirName:CN = x251 -- DirName:CN = x252 -- DirName:CN = x253 -- DirName:CN = x254 -- DirName:CN = x255 -- DirName:CN = x256 -- DirName:CN = x257 -- DirName:CN = x258 -- DirName:CN = x259 -- DirName:CN = x260 -- DirName:CN = x261 -- DirName:CN = x262 -- DirName:CN = x263 -- DirName:CN = x264 -- DirName:CN = x265 -- DirName:CN = x266 -- DirName:CN = x267 -- DirName:CN = x268 -- DirName:CN = x269 -- DirName:CN = x270 -- DirName:CN = x271 -- DirName:CN = x272 -- DirName:CN = x273 -- DirName:CN = x274 -- DirName:CN = x275 -- DirName:CN = x276 -- DirName:CN = x277 -- DirName:CN = x278 -- DirName:CN = x279 -- DirName:CN = x280 -- DirName:CN = x281 -- DirName:CN = x282 -- DirName:CN = x283 -- DirName:CN = x284 -- DirName:CN = x285 -- DirName:CN = x286 -- DirName:CN = x287 -- DirName:CN = x288 -- DirName:CN = x289 -- DirName:CN = x290 -- DirName:CN = x291 -- DirName:CN = x292 -- DirName:CN = x293 -- DirName:CN = x294 -- DirName:CN = x295 -- DirName:CN = x296 -- DirName:CN = x297 -- DirName:CN = x298 -- DirName:CN = x299 -- DirName:CN = x300 -- DirName:CN = x301 -- DirName:CN = x302 -- DirName:CN = x303 -- DirName:CN = x304 -- DirName:CN = x305 -- DirName:CN = x306 -- DirName:CN = x307 -- DirName:CN = x308 -- DirName:CN = x309 -- DirName:CN = x310 -- DirName:CN = x311 -- DirName:CN = x312 -- DirName:CN = x313 -- DirName:CN = x314 -- DirName:CN = x315 -- DirName:CN = x316 -- DirName:CN = x317 -- DirName:CN = x318 -- DirName:CN = x319 -- DirName:CN = x320 -- DirName:CN = x321 -- DirName:CN = x322 -- DirName:CN = x323 -- DirName:CN = x324 -- DirName:CN = x325 -- DirName:CN = x326 -- DirName:CN = x327 -- DirName:CN = x328 -- DirName:CN = x329 -- DirName:CN = x330 -- DirName:CN = x331 -- DirName:CN = x332 -- DirName:CN = x333 -- DirName:CN = x334 -- DirName:CN = x335 -- DirName:CN = x336 -- DirName:CN = x337 -- DirName:CN = x338 -- DirName:CN = x339 -- DirName:CN = x340 -- DirName:CN = x341 -- DirName:CN = x342 -- DirName:CN = x343 -- DirName:CN = x344 -- DirName:CN = x345 -- DirName:CN = x346 -- DirName:CN = x347 -- DirName:CN = x348 -- DirName:CN = x349 -- DirName:CN = x350 -- DirName:CN = x351 -- DirName:CN = x352 -- DirName:CN = x353 -- DirName:CN = x354 -- DirName:CN = x355 -- DirName:CN = x356 -- DirName:CN = x357 -- DirName:CN = x358 -- DirName:CN = x359 -- DirName:CN = x360 -- DirName:CN = x361 -- DirName:CN = x362 -- DirName:CN = x363 -- DirName:CN = x364 -- DirName:CN = x365 -- DirName:CN = x366 -- DirName:CN = x367 -- DirName:CN = x368 -- DirName:CN = x369 -- DirName:CN = x370 -- DirName:CN = x371 -- DirName:CN = x372 -- DirName:CN = x373 -- DirName:CN = x374 -- DirName:CN = x375 -- DirName:CN = x376 -- DirName:CN = x377 -- DirName:CN = x378 -- DirName:CN = x379 -- DirName:CN = x380 -- DirName:CN = x381 -- DirName:CN = x382 -- DirName:CN = x383 -- DirName:CN = x384 -- DirName:CN = x385 -- DirName:CN = x386 -- DirName:CN = x387 -- DirName:CN = x388 -- DirName:CN = x389 -- DirName:CN = x390 -- DirName:CN = x391 -- DirName:CN = x392 -- DirName:CN = x393 -- DirName:CN = x394 -- DirName:CN = x395 -- DirName:CN = x396 -- DirName:CN = x397 -- DirName:CN = x398 -- DirName:CN = x399 -- DirName:CN = x400 -- DirName:CN = x401 -- DirName:CN = x402 -- DirName:CN = x403 -- DirName:CN = x404 -- DirName:CN = x405 -- DirName:CN = x406 -- DirName:CN = x407 -- DirName:CN = x408 -- DirName:CN = x409 -- DirName:CN = x410 -- DirName:CN = x411 -- DirName:CN = x412 -- DirName:CN = x413 -- DirName:CN = x414 -- DirName:CN = x415 -- DirName:CN = x416 -- DirName:CN = x417 -- DirName:CN = x418 -- DirName:CN = x419 -- DirName:CN = x420 -- DirName:CN = x421 -- DirName:CN = x422 -- DirName:CN = x423 -- DirName:CN = x424 -- DirName:CN = x425 -- DirName:CN = x426 -- DirName:CN = x427 -- DirName:CN = x428 -- DirName:CN = x429 -- DirName:CN = x430 -- DirName:CN = x431 -- DirName:CN = x432 -- DirName:CN = x433 -- DirName:CN = x434 -- DirName:CN = x435 -- DirName:CN = x436 -- DirName:CN = x437 -- DirName:CN = x438 -- DirName:CN = x439 -- DirName:CN = x440 -- DirName:CN = x441 -- DirName:CN = x442 -- DirName:CN = x443 -- DirName:CN = x444 -- DirName:CN = x445 -- DirName:CN = x446 -- DirName:CN = x447 -- DirName:CN = x448 -- DirName:CN = x449 -- DirName:CN = x450 -- DirName:CN = x451 -- DirName:CN = x452 -- DirName:CN = x453 -- DirName:CN = x454 -- DirName:CN = x455 -- DirName:CN = x456 -- DirName:CN = x457 -- DirName:CN = x458 -- DirName:CN = x459 -- DirName:CN = x460 -- DirName:CN = x461 -- DirName:CN = x462 -- DirName:CN = x463 -- DirName:CN = x464 -- DirName:CN = x465 -- DirName:CN = x466 -- DirName:CN = x467 -- DirName:CN = x468 -- DirName:CN = x469 -- DirName:CN = x470 -- DirName:CN = x471 -- DirName:CN = x472 -- DirName:CN = x473 -- DirName:CN = x474 -- DirName:CN = x475 -- DirName:CN = x476 -- DirName:CN = x477 -- DirName:CN = x478 -- DirName:CN = x479 -- DirName:CN = x480 -- DirName:CN = x481 -- DirName:CN = x482 -- DirName:CN = x483 -- DirName:CN = x484 -- DirName:CN = x485 -- DirName:CN = x486 -- DirName:CN = x487 -- DirName:CN = x488 -- DirName:CN = x489 -- DirName:CN = x490 -- DirName:CN = x491 -- DirName:CN = x492 -- DirName:CN = x493 -- DirName:CN = x494 -- DirName:CN = x495 -- DirName:CN = x496 -- DirName:CN = x497 -- DirName:CN = x498 -- DirName:CN = x499 -- DirName:CN = x500 -- DirName:CN = x501 -- DirName:CN = x502 -- DirName:CN = x503 -- DirName:CN = x504 -- DirName:CN = x505 -- DirName:CN = x506 -- DirName:CN = x507 -- DirName:CN = x508 -- DirName:CN = x509 -- DirName:CN = x510 -- DirName:CN = x511 -- DirName:CN = x512 -- DirName:CN = x513 -- DirName:CN = x514 -- DirName:CN = x515 -- DirName:CN = x516 -- DirName:CN = x517 -- DirName:CN = x518 -- DirName:CN = x519 -- DirName:CN = x520 -- DirName:CN = x521 -- DirName:CN = x522 -- DirName:CN = x523 -- DirName:CN = x524 -- DirName:CN = x525 -- DirName:CN = x526 -- DirName:CN = x527 -- DirName:CN = x528 -- DirName:CN = x529 -- DirName:CN = x530 -- DirName:CN = x531 -- DirName:CN = x532 -- DirName:CN = x533 -- DirName:CN = x534 -- DirName:CN = x535 -- DirName:CN = x536 -- DirName:CN = x537 -- DirName:CN = x538 -- DirName:CN = x539 -- DirName:CN = x540 -- DirName:CN = x541 -- DirName:CN = x542 -- DirName:CN = x543 -- DirName:CN = x544 -- DirName:CN = x545 -- DirName:CN = x546 -- DirName:CN = x547 -- DirName:CN = x548 -- DirName:CN = x549 -- DirName:CN = x550 -- DirName:CN = x551 -- DirName:CN = x552 -- DirName:CN = x553 -- DirName:CN = x554 -- DirName:CN = x555 -- DirName:CN = x556 -- DirName:CN = x557 -- DirName:CN = x558 -- DirName:CN = x559 -- DirName:CN = x560 -- DirName:CN = x561 -- DirName:CN = x562 -- DirName:CN = x563 -- DirName:CN = x564 -- DirName:CN = x565 -- DirName:CN = x566 -- DirName:CN = x567 -- DirName:CN = x568 -- DirName:CN = x569 -- DirName:CN = x570 -- DirName:CN = x571 -- DirName:CN = x572 -- DirName:CN = x573 -- DirName:CN = x574 -- DirName:CN = x575 -- DirName:CN = x576 -- DirName:CN = x577 -- DirName:CN = x578 -- DirName:CN = x579 -- DirName:CN = x580 -- DirName:CN = x581 -- DirName:CN = x582 -- DirName:CN = x583 -- DirName:CN = x584 -- DirName:CN = x585 -- DirName:CN = x586 -- DirName:CN = x587 -- DirName:CN = x588 -- DirName:CN = x589 -- DirName:CN = x590 -- DirName:CN = x591 -- DirName:CN = x592 -- DirName:CN = x593 -- DirName:CN = x594 -- DirName:CN = x595 -- DirName:CN = x596 -- DirName:CN = x597 -- DirName:CN = x598 -- DirName:CN = x599 -- DirName:CN = x600 -- DirName:CN = x601 -- DirName:CN = x602 -- DirName:CN = x603 -- DirName:CN = x604 -- DirName:CN = x605 -- DirName:CN = x606 -- DirName:CN = x607 -- DirName:CN = x608 -- DirName:CN = x609 -- DirName:CN = x610 -- DirName:CN = x611 -- DirName:CN = x612 -- DirName:CN = x613 -- DirName:CN = x614 -- DirName:CN = x615 -- DirName:CN = x616 -- DirName:CN = x617 -- DirName:CN = x618 -- DirName:CN = x619 -- DirName:CN = x620 -- DirName:CN = x621 -- DirName:CN = x622 -- DirName:CN = x623 -- DirName:CN = x624 -- DirName:CN = x625 -- DirName:CN = x626 -- DirName:CN = x627 -- DirName:CN = x628 -- DirName:CN = x629 -- DirName:CN = x630 -- DirName:CN = x631 -- DirName:CN = x632 -- DirName:CN = x633 -- DirName:CN = x634 -- DirName:CN = x635 -- DirName:CN = x636 -- DirName:CN = x637 -- DirName:CN = x638 -- DirName:CN = x639 -- DirName:CN = x640 -- DirName:CN = x641 -- DirName:CN = x642 -- DirName:CN = x643 -- DirName:CN = x644 -- DirName:CN = x645 -- DirName:CN = x646 -- DirName:CN = x647 -- DirName:CN = x648 -- DirName:CN = x649 -- DirName:CN = x650 -- DirName:CN = x651 -- DirName:CN = x652 -- DirName:CN = x653 -- DirName:CN = x654 -- DirName:CN = x655 -- DirName:CN = x656 -- DirName:CN = x657 -- DirName:CN = x658 -- DirName:CN = x659 -- DirName:CN = x660 -- DirName:CN = x661 -- DirName:CN = x662 -- DirName:CN = x663 -- DirName:CN = x664 -- DirName:CN = x665 -- DirName:CN = x666 -- DirName:CN = x667 -- DirName:CN = x668 -- DirName:CN = x669 -- DirName:CN = x670 -- DirName:CN = x671 -- DirName:CN = x672 -- DirName:CN = x673 -- DirName:CN = x674 -- DirName:CN = x675 -- DirName:CN = x676 -- DirName:CN = x677 -- DirName:CN = x678 -- DirName:CN = x679 -- DirName:CN = x680 -- DirName:CN = x681 -- DirName:CN = x682 -- DirName:CN = x683 -- DirName:CN = x684 -- DirName:CN = x685 -- DirName:CN = x686 -- DirName:CN = x687 -- DirName:CN = x688 -- DirName:CN = x689 -- DirName:CN = x690 -- DirName:CN = x691 -- DirName:CN = x692 -- DirName:CN = x693 -- DirName:CN = x694 -- DirName:CN = x695 -- DirName:CN = x696 -- DirName:CN = x697 -- DirName:CN = x698 -- DirName:CN = x699 -- DirName:CN = x700 -- DirName:CN = x701 -- DirName:CN = x702 -- DirName:CN = x703 -- DirName:CN = x704 -- DirName:CN = x705 -- DirName:CN = x706 -- DirName:CN = x707 -- DirName:CN = x708 -- DirName:CN = x709 -- DirName:CN = x710 -- DirName:CN = x711 -- DirName:CN = x712 -- DirName:CN = x713 -- DirName:CN = x714 -- DirName:CN = x715 -- DirName:CN = x716 -- DirName:CN = x717 -- DirName:CN = x718 -- DirName:CN = x719 -- DirName:CN = x720 -- DirName:CN = x721 -- DirName:CN = x722 -- DirName:CN = x723 -- DirName:CN = x724 -- DirName:CN = x725 -- DirName:CN = x726 -- DirName:CN = x727 -- DirName:CN = x728 -- DirName:CN = x729 -- DirName:CN = x730 -- DirName:CN = x731 -- DirName:CN = x732 -- DirName:CN = x733 -- DirName:CN = x734 -- DirName:CN = x735 -- DirName:CN = x736 -- DirName:CN = x737 -- DirName:CN = x738 -- DirName:CN = x739 -- DirName:CN = x740 -- DirName:CN = x741 -- DirName:CN = x742 -- DirName:CN = x743 -- DirName:CN = x744 -- DirName:CN = x745 -- DirName:CN = x746 -- DirName:CN = x747 -- DirName:CN = x748 -- DirName:CN = x749 -- DirName:CN = x750 -- DirName:CN = x751 -- DirName:CN = x752 -- DirName:CN = x753 -- DirName:CN = x754 -- DirName:CN = x755 -- DirName:CN = x756 -- DirName:CN = x757 -- DirName:CN = x758 -- DirName:CN = x759 -- DirName:CN = x760 -- DirName:CN = x761 -- DirName:CN = x762 -- DirName:CN = x763 -- DirName:CN = x764 -- DirName:CN = x765 -- DirName:CN = x766 -- DirName:CN = x767 -- DirName:CN = x768 -- DirName:CN = x769 -- DirName:CN = x770 -- DirName:CN = x771 -- DirName:CN = x772 -- DirName:CN = x773 -- DirName:CN = x774 -- DirName:CN = x775 -- DirName:CN = x776 -- DirName:CN = x777 -- DirName:CN = x778 -- DirName:CN = x779 -- DirName:CN = x780 -- DirName:CN = x781 -- DirName:CN = x782 -- DirName:CN = x783 -- DirName:CN = x784 -- DirName:CN = x785 -- DirName:CN = x786 -- DirName:CN = x787 -- DirName:CN = x788 -- DirName:CN = x789 -- DirName:CN = x790 -- DirName:CN = x791 -- DirName:CN = x792 -- DirName:CN = x793 -- DirName:CN = x794 -- DirName:CN = x795 -- DirName:CN = x796 -- DirName:CN = x797 -- DirName:CN = x798 -- DirName:CN = x799 -- DirName:CN = x800 -- DirName:CN = x801 -- DirName:CN = x802 -- DirName:CN = x803 -- DirName:CN = x804 -- DirName:CN = x805 -- DirName:CN = x806 -- DirName:CN = x807 -- DirName:CN = x808 -- DirName:CN = x809 -- DirName:CN = x810 -- DirName:CN = x811 -- DirName:CN = x812 -- DirName:CN = x813 -- DirName:CN = x814 -- DirName:CN = x815 -- DirName:CN = x816 -- DirName:CN = x817 -- DirName:CN = x818 -- DirName:CN = x819 -- DirName:CN = x820 -- DirName:CN = x821 -- DirName:CN = x822 -- DirName:CN = x823 -- DirName:CN = x824 -- DirName:CN = x825 -- DirName:CN = x826 -- DirName:CN = x827 -- DirName:CN = x828 -- DirName:CN = x829 -- DirName:CN = x830 -- DirName:CN = x831 -- DirName:CN = x832 -- DirName:CN = x833 -- DirName:CN = x834 -- DirName:CN = x835 -- DirName:CN = x836 -- DirName:CN = x837 -- DirName:CN = x838 -- DirName:CN = x839 -- DirName:CN = x840 -- DirName:CN = x841 -- DirName:CN = x842 -- DirName:CN = x843 -- DirName:CN = x844 -- DirName:CN = x845 -- DirName:CN = x846 -- DirName:CN = x847 -- DirName:CN = x848 -- DirName:CN = x849 -- DirName:CN = x850 -- DirName:CN = x851 -- DirName:CN = x852 -- DirName:CN = x853 -- DirName:CN = x854 -- DirName:CN = x855 -- DirName:CN = x856 -- DirName:CN = x857 -- DirName:CN = x858 -- DirName:CN = x859 -- DirName:CN = x860 -- DirName:CN = x861 -- DirName:CN = x862 -- DirName:CN = x863 -- DirName:CN = x864 -- DirName:CN = x865 -- DirName:CN = x866 -- DirName:CN = x867 -- DirName:CN = x868 -- DirName:CN = x869 -- DirName:CN = x870 -- DirName:CN = x871 -- DirName:CN = x872 -- DirName:CN = x873 -- DirName:CN = x874 -- DirName:CN = x875 -- DirName:CN = x876 -- DirName:CN = x877 -- DirName:CN = x878 -- DirName:CN = x879 -- DirName:CN = x880 -- DirName:CN = x881 -- DirName:CN = x882 -- DirName:CN = x883 -- DirName:CN = x884 -- DirName:CN = x885 -- DirName:CN = x886 -- DirName:CN = x887 -- DirName:CN = x888 -- DirName:CN = x889 -- DirName:CN = x890 -- DirName:CN = x891 -- DirName:CN = x892 -- DirName:CN = x893 -- DirName:CN = x894 -- DirName:CN = x895 -- DirName:CN = x896 -- DirName:CN = x897 -- DirName:CN = x898 -- DirName:CN = x899 -- DirName:CN = x900 -- DirName:CN = x901 -- DirName:CN = x902 -- DirName:CN = x903 -- DirName:CN = x904 -- DirName:CN = x905 -- DirName:CN = x906 -- DirName:CN = x907 -- DirName:CN = x908 -- DirName:CN = x909 -- DirName:CN = x910 -- DirName:CN = x911 -- DirName:CN = x912 -- DirName:CN = x913 -- DirName:CN = x914 -- DirName:CN = x915 -- DirName:CN = x916 -- DirName:CN = x917 -- DirName:CN = x918 -- DirName:CN = x919 -- DirName:CN = x920 -- DirName:CN = x921 -- DirName:CN = x922 -- DirName:CN = x923 -- DirName:CN = x924 -- DirName:CN = x925 -- DirName:CN = x926 -- DirName:CN = x927 -- DirName:CN = x928 -- DirName:CN = x929 -- DirName:CN = x930 -- DirName:CN = x931 -- DirName:CN = x932 -- DirName:CN = x933 -- DirName:CN = x934 -- DirName:CN = x935 -- DirName:CN = x936 -- DirName:CN = x937 -- DirName:CN = x938 -- DirName:CN = x939 -- DirName:CN = x940 -- DirName:CN = x941 -- DirName:CN = x942 -- DirName:CN = x943 -- DirName:CN = x944 -- DirName:CN = x945 -- DirName:CN = x946 -- DirName:CN = x947 -- DirName:CN = x948 -- DirName:CN = x949 -- DirName:CN = x950 -- DirName:CN = x951 -- DirName:CN = x952 -- DirName:CN = x953 -- DirName:CN = x954 -- DirName:CN = x955 -- DirName:CN = x956 -- DirName:CN = x957 -- DirName:CN = x958 -- DirName:CN = x959 -- DirName:CN = x960 -- DirName:CN = x961 -- DirName:CN = x962 -- DirName:CN = x963 -- DirName:CN = x964 -- DirName:CN = x965 -- DirName:CN = x966 -- DirName:CN = x967 -- DirName:CN = x968 -- DirName:CN = x969 -- DirName:CN = x970 -- DirName:CN = x971 -- DirName:CN = x972 -- DirName:CN = x973 -- DirName:CN = x974 -- DirName:CN = x975 -- DirName:CN = x976 -- DirName:CN = x977 -- DirName:CN = x978 -- DirName:CN = x979 -- DirName:CN = x980 -- DirName:CN = x981 -- DirName:CN = x982 -- DirName:CN = x983 -- DirName:CN = x984 -- DirName:CN = x985 -- DirName:CN = x986 -- DirName:CN = x987 -- DirName:CN = x988 -- DirName:CN = x989 -- DirName:CN = x990 -- DirName:CN = x991 -- DirName:CN = x992 -- DirName:CN = x993 -- DirName:CN = x994 -- DirName:CN = x995 -- DirName:CN = x996 -- DirName:CN = x997 -- DirName:CN = x998 -- DirName:CN = x999 -- DirName:CN = x1000 -- DirName:CN = x1001 -- DirName:CN = x1002 -- DirName:CN = x1003 -- DirName:CN = x1004 -- DirName:CN = x1005 -- DirName:CN = x1006 -- DirName:CN = x1007 -- DirName:CN = x1008 -- DirName:CN = x1009 -- DirName:CN = x1010 -- DirName:CN = x1011 -- DirName:CN = x1012 -- DirName:CN = x1013 -- DirName:CN = x1014 -- DirName:CN = x1015 -- DirName:CN = x1016 -- DirName:CN = x1017 -- DirName:CN = x1018 -- DirName:CN = x1019 -- DirName:CN = x1020 -- DirName:CN = x1021 -- DirName:CN = x1022 -- DirName:CN = x1023 -- DirName:CN = x1024 -- URI:http://xest/0 -- URI:http://xest/1 -- URI:http://xest/2 -- URI:http://xest/3 -- URI:http://xest/4 -- URI:http://xest/5 -- URI:http://xest/6 -- URI:http://xest/7 -- URI:http://xest/8 -- URI:http://xest/9 -- URI:http://xest/10 -- URI:http://xest/11 -- URI:http://xest/12 -- URI:http://xest/13 -- URI:http://xest/14 -- URI:http://xest/15 -- URI:http://xest/16 -- URI:http://xest/17 -- URI:http://xest/18 -- URI:http://xest/19 -- URI:http://xest/20 -- URI:http://xest/21 -- URI:http://xest/22 -- URI:http://xest/23 -- URI:http://xest/24 -- URI:http://xest/25 -- URI:http://xest/26 -- URI:http://xest/27 -- URI:http://xest/28 -- URI:http://xest/29 -- URI:http://xest/30 -- URI:http://xest/31 -- URI:http://xest/32 -- URI:http://xest/33 -- URI:http://xest/34 -- URI:http://xest/35 -- URI:http://xest/36 -- URI:http://xest/37 -- URI:http://xest/38 -- URI:http://xest/39 -- URI:http://xest/40 -- URI:http://xest/41 -- URI:http://xest/42 -- URI:http://xest/43 -- URI:http://xest/44 -- URI:http://xest/45 -- URI:http://xest/46 -- URI:http://xest/47 -- URI:http://xest/48 -- URI:http://xest/49 -- URI:http://xest/50 -- URI:http://xest/51 -- URI:http://xest/52 -- URI:http://xest/53 -- URI:http://xest/54 -- URI:http://xest/55 -- URI:http://xest/56 -- URI:http://xest/57 -- URI:http://xest/58 -- URI:http://xest/59 -- URI:http://xest/60 -- URI:http://xest/61 -- URI:http://xest/62 -- URI:http://xest/63 -- URI:http://xest/64 -- URI:http://xest/65 -- URI:http://xest/66 -- URI:http://xest/67 -- URI:http://xest/68 -- URI:http://xest/69 -- URI:http://xest/70 -- URI:http://xest/71 -- URI:http://xest/72 -- URI:http://xest/73 -- URI:http://xest/74 -- URI:http://xest/75 -- URI:http://xest/76 -- URI:http://xest/77 -- URI:http://xest/78 -- URI:http://xest/79 -- URI:http://xest/80 -- URI:http://xest/81 -- URI:http://xest/82 -- URI:http://xest/83 -- URI:http://xest/84 -- URI:http://xest/85 -- URI:http://xest/86 -- URI:http://xest/87 -- URI:http://xest/88 -- URI:http://xest/89 -- URI:http://xest/90 -- URI:http://xest/91 -- URI:http://xest/92 -- URI:http://xest/93 -- URI:http://xest/94 -- URI:http://xest/95 -- URI:http://xest/96 -- URI:http://xest/97 -- URI:http://xest/98 -- URI:http://xest/99 -- URI:http://xest/100 -- URI:http://xest/101 -- URI:http://xest/102 -- URI:http://xest/103 -- URI:http://xest/104 -- URI:http://xest/105 -- URI:http://xest/106 -- URI:http://xest/107 -- URI:http://xest/108 -- URI:http://xest/109 -- URI:http://xest/110 -- URI:http://xest/111 -- URI:http://xest/112 -- URI:http://xest/113 -- URI:http://xest/114 -- URI:http://xest/115 -- URI:http://xest/116 -- URI:http://xest/117 -- URI:http://xest/118 -- URI:http://xest/119 -- URI:http://xest/120 -- URI:http://xest/121 -- URI:http://xest/122 -- URI:http://xest/123 -- URI:http://xest/124 -- URI:http://xest/125 -- URI:http://xest/126 -- URI:http://xest/127 -- URI:http://xest/128 -- URI:http://xest/129 -- URI:http://xest/130 -- URI:http://xest/131 -- URI:http://xest/132 -- URI:http://xest/133 -- URI:http://xest/134 -- URI:http://xest/135 -- URI:http://xest/136 -- URI:http://xest/137 -- URI:http://xest/138 -- URI:http://xest/139 -- URI:http://xest/140 -- URI:http://xest/141 -- URI:http://xest/142 -- URI:http://xest/143 -- URI:http://xest/144 -- URI:http://xest/145 -- URI:http://xest/146 -- URI:http://xest/147 -- URI:http://xest/148 -- URI:http://xest/149 -- URI:http://xest/150 -- URI:http://xest/151 -- URI:http://xest/152 -- URI:http://xest/153 -- URI:http://xest/154 -- URI:http://xest/155 -- URI:http://xest/156 -- URI:http://xest/157 -- URI:http://xest/158 -- URI:http://xest/159 -- URI:http://xest/160 -- URI:http://xest/161 -- URI:http://xest/162 -- URI:http://xest/163 -- URI:http://xest/164 -- URI:http://xest/165 -- URI:http://xest/166 -- URI:http://xest/167 -- URI:http://xest/168 -- URI:http://xest/169 -- URI:http://xest/170 -- URI:http://xest/171 -- URI:http://xest/172 -- URI:http://xest/173 -- URI:http://xest/174 -- URI:http://xest/175 -- URI:http://xest/176 -- URI:http://xest/177 -- URI:http://xest/178 -- URI:http://xest/179 -- URI:http://xest/180 -- URI:http://xest/181 -- URI:http://xest/182 -- URI:http://xest/183 -- URI:http://xest/184 -- URI:http://xest/185 -- URI:http://xest/186 -- URI:http://xest/187 -- URI:http://xest/188 -- URI:http://xest/189 -- URI:http://xest/190 -- URI:http://xest/191 -- URI:http://xest/192 -- URI:http://xest/193 -- URI:http://xest/194 -- URI:http://xest/195 -- URI:http://xest/196 -- URI:http://xest/197 -- URI:http://xest/198 -- URI:http://xest/199 -- URI:http://xest/200 -- URI:http://xest/201 -- URI:http://xest/202 -- URI:http://xest/203 -- URI:http://xest/204 -- URI:http://xest/205 -- URI:http://xest/206 -- URI:http://xest/207 -- URI:http://xest/208 -- URI:http://xest/209 -- URI:http://xest/210 -- URI:http://xest/211 -- URI:http://xest/212 -- URI:http://xest/213 -- URI:http://xest/214 -- URI:http://xest/215 -- URI:http://xest/216 -- URI:http://xest/217 -- URI:http://xest/218 -- URI:http://xest/219 -- URI:http://xest/220 -- URI:http://xest/221 -- URI:http://xest/222 -- URI:http://xest/223 -- URI:http://xest/224 -- URI:http://xest/225 -- URI:http://xest/226 -- URI:http://xest/227 -- URI:http://xest/228 -- URI:http://xest/229 -- URI:http://xest/230 -- URI:http://xest/231 -- URI:http://xest/232 -- URI:http://xest/233 -- URI:http://xest/234 -- URI:http://xest/235 -- URI:http://xest/236 -- URI:http://xest/237 -- URI:http://xest/238 -- URI:http://xest/239 -- URI:http://xest/240 -- URI:http://xest/241 -- URI:http://xest/242 -- URI:http://xest/243 -- URI:http://xest/244 -- URI:http://xest/245 -- URI:http://xest/246 -- URI:http://xest/247 -- URI:http://xest/248 -- URI:http://xest/249 -- URI:http://xest/250 -- URI:http://xest/251 -- URI:http://xest/252 -- URI:http://xest/253 -- URI:http://xest/254 -- URI:http://xest/255 -- URI:http://xest/256 -- URI:http://xest/257 -- URI:http://xest/258 -- URI:http://xest/259 -- URI:http://xest/260 -- URI:http://xest/261 -- URI:http://xest/262 -- URI:http://xest/263 -- URI:http://xest/264 -- URI:http://xest/265 -- URI:http://xest/266 -- URI:http://xest/267 -- URI:http://xest/268 -- URI:http://xest/269 -- URI:http://xest/270 -- URI:http://xest/271 -- URI:http://xest/272 -- URI:http://xest/273 -- URI:http://xest/274 -- URI:http://xest/275 -- URI:http://xest/276 -- URI:http://xest/277 -- URI:http://xest/278 -- URI:http://xest/279 -- URI:http://xest/280 -- URI:http://xest/281 -- URI:http://xest/282 -- URI:http://xest/283 -- URI:http://xest/284 -- URI:http://xest/285 -- URI:http://xest/286 -- URI:http://xest/287 -- URI:http://xest/288 -- URI:http://xest/289 -- URI:http://xest/290 -- URI:http://xest/291 -- URI:http://xest/292 -- URI:http://xest/293 -- URI:http://xest/294 -- URI:http://xest/295 -- URI:http://xest/296 -- URI:http://xest/297 -- URI:http://xest/298 -- URI:http://xest/299 -- URI:http://xest/300 -- URI:http://xest/301 -- URI:http://xest/302 -- URI:http://xest/303 -- URI:http://xest/304 -- URI:http://xest/305 -- URI:http://xest/306 -- URI:http://xest/307 -- URI:http://xest/308 -- URI:http://xest/309 -- URI:http://xest/310 -- URI:http://xest/311 -- URI:http://xest/312 -- URI:http://xest/313 -- URI:http://xest/314 -- URI:http://xest/315 -- URI:http://xest/316 -- URI:http://xest/317 -- URI:http://xest/318 -- URI:http://xest/319 -- URI:http://xest/320 -- URI:http://xest/321 -- URI:http://xest/322 -- URI:http://xest/323 -- URI:http://xest/324 -- URI:http://xest/325 -- URI:http://xest/326 -- URI:http://xest/327 -- URI:http://xest/328 -- URI:http://xest/329 -- URI:http://xest/330 -- URI:http://xest/331 -- URI:http://xest/332 -- URI:http://xest/333 -- URI:http://xest/334 -- URI:http://xest/335 -- URI:http://xest/336 -- URI:http://xest/337 -- URI:http://xest/338 -- URI:http://xest/339 -- URI:http://xest/340 -- URI:http://xest/341 -- URI:http://xest/342 -- URI:http://xest/343 -- URI:http://xest/344 -- URI:http://xest/345 -- URI:http://xest/346 -- URI:http://xest/347 -- URI:http://xest/348 -- URI:http://xest/349 -- URI:http://xest/350 -- URI:http://xest/351 -- URI:http://xest/352 -- URI:http://xest/353 -- URI:http://xest/354 -- URI:http://xest/355 -- URI:http://xest/356 -- URI:http://xest/357 -- URI:http://xest/358 -- URI:http://xest/359 -- URI:http://xest/360 -- URI:http://xest/361 -- URI:http://xest/362 -- URI:http://xest/363 -- URI:http://xest/364 -- URI:http://xest/365 -- URI:http://xest/366 -- URI:http://xest/367 -- URI:http://xest/368 -- URI:http://xest/369 -- URI:http://xest/370 -- URI:http://xest/371 -- URI:http://xest/372 -- URI:http://xest/373 -- URI:http://xest/374 -- URI:http://xest/375 -- URI:http://xest/376 -- URI:http://xest/377 -- URI:http://xest/378 -- URI:http://xest/379 -- URI:http://xest/380 -- URI:http://xest/381 -- URI:http://xest/382 -- URI:http://xest/383 -- URI:http://xest/384 -- URI:http://xest/385 -- URI:http://xest/386 -- URI:http://xest/387 -- URI:http://xest/388 -- URI:http://xest/389 -- URI:http://xest/390 -- URI:http://xest/391 -- URI:http://xest/392 -- URI:http://xest/393 -- URI:http://xest/394 -- URI:http://xest/395 -- URI:http://xest/396 -- URI:http://xest/397 -- URI:http://xest/398 -- URI:http://xest/399 -- URI:http://xest/400 -- URI:http://xest/401 -- URI:http://xest/402 -- URI:http://xest/403 -- URI:http://xest/404 -- URI:http://xest/405 -- URI:http://xest/406 -- URI:http://xest/407 -- URI:http://xest/408 -- URI:http://xest/409 -- URI:http://xest/410 -- URI:http://xest/411 -- URI:http://xest/412 -- URI:http://xest/413 -- URI:http://xest/414 -- URI:http://xest/415 -- URI:http://xest/416 -- URI:http://xest/417 -- URI:http://xest/418 -- URI:http://xest/419 -- URI:http://xest/420 -- URI:http://xest/421 -- URI:http://xest/422 -- URI:http://xest/423 -- URI:http://xest/424 -- URI:http://xest/425 -- URI:http://xest/426 -- URI:http://xest/427 -- URI:http://xest/428 -- URI:http://xest/429 -- URI:http://xest/430 -- URI:http://xest/431 -- URI:http://xest/432 -- URI:http://xest/433 -- URI:http://xest/434 -- URI:http://xest/435 -- URI:http://xest/436 -- URI:http://xest/437 -- URI:http://xest/438 -- URI:http://xest/439 -- URI:http://xest/440 -- URI:http://xest/441 -- URI:http://xest/442 -- URI:http://xest/443 -- URI:http://xest/444 -- URI:http://xest/445 -- URI:http://xest/446 -- URI:http://xest/447 -- URI:http://xest/448 -- URI:http://xest/449 -- URI:http://xest/450 -- URI:http://xest/451 -- URI:http://xest/452 -- URI:http://xest/453 -- URI:http://xest/454 -- URI:http://xest/455 -- URI:http://xest/456 -- URI:http://xest/457 -- URI:http://xest/458 -- URI:http://xest/459 -- URI:http://xest/460 -- URI:http://xest/461 -- URI:http://xest/462 -- URI:http://xest/463 -- URI:http://xest/464 -- URI:http://xest/465 -- URI:http://xest/466 -- URI:http://xest/467 -- URI:http://xest/468 -- URI:http://xest/469 -- URI:http://xest/470 -- URI:http://xest/471 -- URI:http://xest/472 -- URI:http://xest/473 -- URI:http://xest/474 -- URI:http://xest/475 -- URI:http://xest/476 -- URI:http://xest/477 -- URI:http://xest/478 -- URI:http://xest/479 -- URI:http://xest/480 -- URI:http://xest/481 -- URI:http://xest/482 -- URI:http://xest/483 -- URI:http://xest/484 -- URI:http://xest/485 -- URI:http://xest/486 -- URI:http://xest/487 -- URI:http://xest/488 -- URI:http://xest/489 -- URI:http://xest/490 -- URI:http://xest/491 -- URI:http://xest/492 -- URI:http://xest/493 -- URI:http://xest/494 -- URI:http://xest/495 -- URI:http://xest/496 -- URI:http://xest/497 -- URI:http://xest/498 -- URI:http://xest/499 -- URI:http://xest/500 -- URI:http://xest/501 -- URI:http://xest/502 -- URI:http://xest/503 -- URI:http://xest/504 -- URI:http://xest/505 -- URI:http://xest/506 -- URI:http://xest/507 -- URI:http://xest/508 -- URI:http://xest/509 -- URI:http://xest/510 -- URI:http://xest/511 -- URI:http://xest/512 -- URI:http://xest/513 -- URI:http://xest/514 -- URI:http://xest/515 -- URI:http://xest/516 -- URI:http://xest/517 -- URI:http://xest/518 -- URI:http://xest/519 -- URI:http://xest/520 -- URI:http://xest/521 -- URI:http://xest/522 -- URI:http://xest/523 -- URI:http://xest/524 -- URI:http://xest/525 -- URI:http://xest/526 -- URI:http://xest/527 -- URI:http://xest/528 -- URI:http://xest/529 -- URI:http://xest/530 -- URI:http://xest/531 -- URI:http://xest/532 -- URI:http://xest/533 -- URI:http://xest/534 -- URI:http://xest/535 -- URI:http://xest/536 -- URI:http://xest/537 -- URI:http://xest/538 -- URI:http://xest/539 -- URI:http://xest/540 -- URI:http://xest/541 -- URI:http://xest/542 -- URI:http://xest/543 -- URI:http://xest/544 -- URI:http://xest/545 -- URI:http://xest/546 -- URI:http://xest/547 -- URI:http://xest/548 -- URI:http://xest/549 -- URI:http://xest/550 -- URI:http://xest/551 -- URI:http://xest/552 -- URI:http://xest/553 -- URI:http://xest/554 -- URI:http://xest/555 -- URI:http://xest/556 -- URI:http://xest/557 -- URI:http://xest/558 -- URI:http://xest/559 -- URI:http://xest/560 -- URI:http://xest/561 -- URI:http://xest/562 -- URI:http://xest/563 -- URI:http://xest/564 -- URI:http://xest/565 -- URI:http://xest/566 -- URI:http://xest/567 -- URI:http://xest/568 -- URI:http://xest/569 -- URI:http://xest/570 -- URI:http://xest/571 -- URI:http://xest/572 -- URI:http://xest/573 -- URI:http://xest/574 -- URI:http://xest/575 -- URI:http://xest/576 -- URI:http://xest/577 -- URI:http://xest/578 -- URI:http://xest/579 -- URI:http://xest/580 -- URI:http://xest/581 -- URI:http://xest/582 -- URI:http://xest/583 -- URI:http://xest/584 -- URI:http://xest/585 -- URI:http://xest/586 -- URI:http://xest/587 -- URI:http://xest/588 -- URI:http://xest/589 -- URI:http://xest/590 -- URI:http://xest/591 -- URI:http://xest/592 -- URI:http://xest/593 -- URI:http://xest/594 -- URI:http://xest/595 -- URI:http://xest/596 -- URI:http://xest/597 -- URI:http://xest/598 -- URI:http://xest/599 -- URI:http://xest/600 -- URI:http://xest/601 -- URI:http://xest/602 -- URI:http://xest/603 -- URI:http://xest/604 -- URI:http://xest/605 -- URI:http://xest/606 -- URI:http://xest/607 -- URI:http://xest/608 -- URI:http://xest/609 -- URI:http://xest/610 -- URI:http://xest/611 -- URI:http://xest/612 -- URI:http://xest/613 -- URI:http://xest/614 -- URI:http://xest/615 -- URI:http://xest/616 -- URI:http://xest/617 -- URI:http://xest/618 -- URI:http://xest/619 -- URI:http://xest/620 -- URI:http://xest/621 -- URI:http://xest/622 -- URI:http://xest/623 -- URI:http://xest/624 -- URI:http://xest/625 -- URI:http://xest/626 -- URI:http://xest/627 -- URI:http://xest/628 -- URI:http://xest/629 -- URI:http://xest/630 -- URI:http://xest/631 -- URI:http://xest/632 -- URI:http://xest/633 -- URI:http://xest/634 -- URI:http://xest/635 -- URI:http://xest/636 -- URI:http://xest/637 -- URI:http://xest/638 -- URI:http://xest/639 -- URI:http://xest/640 -- URI:http://xest/641 -- URI:http://xest/642 -- URI:http://xest/643 -- URI:http://xest/644 -- URI:http://xest/645 -- URI:http://xest/646 -- URI:http://xest/647 -- URI:http://xest/648 -- URI:http://xest/649 -- URI:http://xest/650 -- URI:http://xest/651 -- URI:http://xest/652 -- URI:http://xest/653 -- URI:http://xest/654 -- URI:http://xest/655 -- URI:http://xest/656 -- URI:http://xest/657 -- URI:http://xest/658 -- URI:http://xest/659 -- URI:http://xest/660 -- URI:http://xest/661 -- URI:http://xest/662 -- URI:http://xest/663 -- URI:http://xest/664 -- URI:http://xest/665 -- URI:http://xest/666 -- URI:http://xest/667 -- URI:http://xest/668 -- URI:http://xest/669 -- URI:http://xest/670 -- URI:http://xest/671 -- URI:http://xest/672 -- URI:http://xest/673 -- URI:http://xest/674 -- URI:http://xest/675 -- URI:http://xest/676 -- URI:http://xest/677 -- URI:http://xest/678 -- URI:http://xest/679 -- URI:http://xest/680 -- URI:http://xest/681 -- URI:http://xest/682 -- URI:http://xest/683 -- URI:http://xest/684 -- URI:http://xest/685 -- URI:http://xest/686 -- URI:http://xest/687 -- URI:http://xest/688 -- URI:http://xest/689 -- URI:http://xest/690 -- URI:http://xest/691 -- URI:http://xest/692 -- URI:http://xest/693 -- URI:http://xest/694 -- URI:http://xest/695 -- URI:http://xest/696 -- URI:http://xest/697 -- URI:http://xest/698 -- URI:http://xest/699 -- URI:http://xest/700 -- URI:http://xest/701 -- URI:http://xest/702 -- URI:http://xest/703 -- URI:http://xest/704 -- URI:http://xest/705 -- URI:http://xest/706 -- URI:http://xest/707 -- URI:http://xest/708 -- URI:http://xest/709 -- URI:http://xest/710 -- URI:http://xest/711 -- URI:http://xest/712 -- URI:http://xest/713 -- URI:http://xest/714 -- URI:http://xest/715 -- URI:http://xest/716 -- URI:http://xest/717 -- URI:http://xest/718 -- URI:http://xest/719 -- URI:http://xest/720 -- URI:http://xest/721 -- URI:http://xest/722 -- URI:http://xest/723 -- URI:http://xest/724 -- URI:http://xest/725 -- URI:http://xest/726 -- URI:http://xest/727 -- URI:http://xest/728 -- URI:http://xest/729 -- URI:http://xest/730 -- URI:http://xest/731 -- URI:http://xest/732 -- URI:http://xest/733 -- URI:http://xest/734 -- URI:http://xest/735 -- URI:http://xest/736 -- URI:http://xest/737 -- URI:http://xest/738 -- URI:http://xest/739 -- URI:http://xest/740 -- URI:http://xest/741 -- URI:http://xest/742 -- URI:http://xest/743 -- URI:http://xest/744 -- URI:http://xest/745 -- URI:http://xest/746 -- URI:http://xest/747 -- URI:http://xest/748 -- URI:http://xest/749 -- URI:http://xest/750 -- URI:http://xest/751 -- URI:http://xest/752 -- URI:http://xest/753 -- URI:http://xest/754 -- URI:http://xest/755 -- URI:http://xest/756 -- URI:http://xest/757 -- URI:http://xest/758 -- URI:http://xest/759 -- URI:http://xest/760 -- URI:http://xest/761 -- URI:http://xest/762 -- URI:http://xest/763 -- URI:http://xest/764 -- URI:http://xest/765 -- URI:http://xest/766 -- URI:http://xest/767 -- URI:http://xest/768 -- URI:http://xest/769 -- URI:http://xest/770 -- URI:http://xest/771 -- URI:http://xest/772 -- URI:http://xest/773 -- URI:http://xest/774 -- URI:http://xest/775 -- URI:http://xest/776 -- URI:http://xest/777 -- URI:http://xest/778 -- URI:http://xest/779 -- URI:http://xest/780 -- URI:http://xest/781 -- URI:http://xest/782 -- URI:http://xest/783 -- URI:http://xest/784 -- URI:http://xest/785 -- URI:http://xest/786 -- URI:http://xest/787 -- URI:http://xest/788 -- URI:http://xest/789 -- URI:http://xest/790 -- URI:http://xest/791 -- URI:http://xest/792 -- URI:http://xest/793 -- URI:http://xest/794 -- URI:http://xest/795 -- URI:http://xest/796 -- URI:http://xest/797 -- URI:http://xest/798 -- URI:http://xest/799 -- URI:http://xest/800 -- URI:http://xest/801 -- URI:http://xest/802 -- URI:http://xest/803 -- URI:http://xest/804 -- URI:http://xest/805 -- URI:http://xest/806 -- URI:http://xest/807 -- URI:http://xest/808 -- URI:http://xest/809 -- URI:http://xest/810 -- URI:http://xest/811 -- URI:http://xest/812 -- URI:http://xest/813 -- URI:http://xest/814 -- URI:http://xest/815 -- URI:http://xest/816 -- URI:http://xest/817 -- URI:http://xest/818 -- URI:http://xest/819 -- URI:http://xest/820 -- URI:http://xest/821 -- URI:http://xest/822 -- URI:http://xest/823 -- URI:http://xest/824 -- URI:http://xest/825 -- URI:http://xest/826 -- URI:http://xest/827 -- URI:http://xest/828 -- URI:http://xest/829 -- URI:http://xest/830 -- URI:http://xest/831 -- URI:http://xest/832 -- URI:http://xest/833 -- URI:http://xest/834 -- URI:http://xest/835 -- URI:http://xest/836 -- URI:http://xest/837 -- URI:http://xest/838 -- URI:http://xest/839 -- URI:http://xest/840 -- URI:http://xest/841 -- URI:http://xest/842 -- URI:http://xest/843 -- URI:http://xest/844 -- URI:http://xest/845 -- URI:http://xest/846 -- URI:http://xest/847 -- URI:http://xest/848 -- URI:http://xest/849 -- URI:http://xest/850 -- URI:http://xest/851 -- URI:http://xest/852 -- URI:http://xest/853 -- URI:http://xest/854 -- URI:http://xest/855 -- URI:http://xest/856 -- URI:http://xest/857 -- URI:http://xest/858 -- URI:http://xest/859 -- URI:http://xest/860 -- URI:http://xest/861 -- URI:http://xest/862 -- URI:http://xest/863 -- URI:http://xest/864 -- URI:http://xest/865 -- URI:http://xest/866 -- URI:http://xest/867 -- URI:http://xest/868 -- URI:http://xest/869 -- URI:http://xest/870 -- URI:http://xest/871 -- URI:http://xest/872 -- URI:http://xest/873 -- URI:http://xest/874 -- URI:http://xest/875 -- URI:http://xest/876 -- URI:http://xest/877 -- URI:http://xest/878 -- URI:http://xest/879 -- URI:http://xest/880 -- URI:http://xest/881 -- URI:http://xest/882 -- URI:http://xest/883 -- URI:http://xest/884 -- URI:http://xest/885 -- URI:http://xest/886 -- URI:http://xest/887 -- URI:http://xest/888 -- URI:http://xest/889 -- URI:http://xest/890 -- URI:http://xest/891 -- URI:http://xest/892 -- URI:http://xest/893 -- URI:http://xest/894 -- URI:http://xest/895 -- URI:http://xest/896 -- URI:http://xest/897 -- URI:http://xest/898 -- URI:http://xest/899 -- URI:http://xest/900 -- URI:http://xest/901 -- URI:http://xest/902 -- URI:http://xest/903 -- URI:http://xest/904 -- URI:http://xest/905 -- URI:http://xest/906 -- URI:http://xest/907 -- URI:http://xest/908 -- URI:http://xest/909 -- URI:http://xest/910 -- URI:http://xest/911 -- URI:http://xest/912 -- URI:http://xest/913 -- URI:http://xest/914 -- URI:http://xest/915 -- URI:http://xest/916 -- URI:http://xest/917 -- URI:http://xest/918 -- URI:http://xest/919 -- URI:http://xest/920 -- URI:http://xest/921 -- URI:http://xest/922 -- URI:http://xest/923 -- URI:http://xest/924 -- URI:http://xest/925 -- URI:http://xest/926 -- URI:http://xest/927 -- URI:http://xest/928 -- URI:http://xest/929 -- URI:http://xest/930 -- URI:http://xest/931 -- URI:http://xest/932 -- URI:http://xest/933 -- URI:http://xest/934 -- URI:http://xest/935 -- URI:http://xest/936 -- URI:http://xest/937 -- URI:http://xest/938 -- URI:http://xest/939 -- URI:http://xest/940 -- URI:http://xest/941 -- URI:http://xest/942 -- URI:http://xest/943 -- URI:http://xest/944 -- URI:http://xest/945 -- URI:http://xest/946 -- URI:http://xest/947 -- URI:http://xest/948 -- URI:http://xest/949 -- URI:http://xest/950 -- URI:http://xest/951 -- URI:http://xest/952 -- URI:http://xest/953 -- URI:http://xest/954 -- URI:http://xest/955 -- URI:http://xest/956 -- URI:http://xest/957 -- URI:http://xest/958 -- URI:http://xest/959 -- URI:http://xest/960 -- URI:http://xest/961 -- URI:http://xest/962 -- URI:http://xest/963 -- URI:http://xest/964 -- URI:http://xest/965 -- URI:http://xest/966 -- URI:http://xest/967 -- URI:http://xest/968 -- URI:http://xest/969 -- URI:http://xest/970 -- URI:http://xest/971 -- URI:http://xest/972 -- URI:http://xest/973 -- URI:http://xest/974 -- URI:http://xest/975 -- URI:http://xest/976 -- URI:http://xest/977 -- URI:http://xest/978 -- URI:http://xest/979 -- URI:http://xest/980 -- URI:http://xest/981 -- URI:http://xest/982 -- URI:http://xest/983 -- URI:http://xest/984 -- URI:http://xest/985 -- URI:http://xest/986 -- URI:http://xest/987 -- URI:http://xest/988 -- URI:http://xest/989 -- URI:http://xest/990 -- URI:http://xest/991 -- URI:http://xest/992 -- URI:http://xest/993 -- URI:http://xest/994 -- URI:http://xest/995 -- URI:http://xest/996 -- URI:http://xest/997 -- URI:http://xest/998 -- URI:http://xest/999 -- URI:http://xest/1000 -- URI:http://xest/1001 -- URI:http://xest/1002 -- URI:http://xest/1003 -- URI:http://xest/1004 -- URI:http://xest/1005 -- URI:http://xest/1006 -- URI:http://xest/1007 -- URI:http://xest/1008 -- URI:http://xest/1009 -- URI:http://xest/1010 -- URI:http://xest/1011 -- URI:http://xest/1012 -- URI:http://xest/1013 -- URI:http://xest/1014 -- URI:http://xest/1015 -- URI:http://xest/1016 -- URI:http://xest/1017 -- URI:http://xest/1018 -- URI:http://xest/1019 -- URI:http://xest/1020 -- URI:http://xest/1021 -- URI:http://xest/1022 -- URI:http://xest/1023 -- URI:http://xest/1024 -- -- Signature Algorithm: sha256WithRSAEncryption -- 6b:fb:c9:52:d3:ad:a0:75:e3:07:18:5f:6c:dd:75:b4:3d:a4: -- 40:0f:97:2e:c2:08:3b:d6:c7:c5:d8:7c:d7:18:6e:7b:2b:99: -- 74:7d:d0:b1:fa:53:b1:7d:b8:0e:8f:16:4c:75:d7:78:ff:90: -- c2:14:fa:21:66:a5:27:43:f6:8c:13:77:e2:ba:c5:2f:29:36: -- 56:4a:6e:07:51:e7:9b:cf:78:17:6b:61:ef:87:9f:ba:83:77: -- f0:f3:25:01:1d:0c:d2:4a:65:b1:c0:0e:0e:92:ca:d9:b1:dc: -- 25:24:82:b8:9a:df:8d:92:42:b6:28:8e:5d:aa:f6:ff:62:13: -- bf:8c:3c:c6:3c:88:24:0b:5a:56:2a:da:74:1d:23:b3:e0:05: -- 1a:57:89:6b:b6:30:81:63:20:5a:e4:56:79:7c:5d:cf:9e:27: -- c5:b5:b3:35:f6:0e:6c:71:9c:58:99:40:f9:38:74:df:11:9a: -- a4:09:85:66:58:8e:ab:bf:58:a6:96:fc:e7:38:95:f1:13:42: -- a5:b3:32:53:a9:af:53:85:13:66:92:d3:29:7b:27:fa:9f:3b: -- 1c:cc:d4:11:69:11:6c:fd:77:4d:70:1d:4a:7c:9f:bc:a7:c3: -- 65:52:ce:78:12:0f:4a:6f:47:e7:44:ce:9a:42:7d:93:29:63: -- 1a:49:6a:c2 -------BEGIN CERTIFICATE----- --MIMBqg0wgwGo9KADAgECAhQ85fyBiFmoUBbBf9flKuWWf8L2/zANBgkqhkiG9w0B --AQsFADAPMQ0wCwYDVQQDDARSb290MB4XDTIxMTAwNTEyMDAwMFoXDTIyMTAwNTEy --MDAwMFowFzEVMBMGA1UEAwwMSW50ZXJtZWRpYXRlMIIBIjANBgkqhkiG9w0BAQEF --AAOCAQ8AMIIBCgKCAQEAuzvbBG4X4FRSuiN3JLw043DZmZ5TXTMLqcxLHa4GJxiO --VbqtEscdMlltwxYg22Kmd4AS4IdYUVXjZn/R4DoiZeVwJqIEBPBd+V9WyNroD1co --d26aoEpTNBpjN6JDqw5KzQcj3VWDRAAMcEHfNWTQxQ5qh9vK/DXV4luvC6DmdaXS --4XJOImMBQXO4lVAs/e3DYbY21IOVYcPgYf/0noroutzR9ontnTBElSf00YvmLxRm --VvHa8cwEG3eSpZ9YQAyfDDLWBcJMwMWf5aQwPUzpnQNsTAa25ZW9IbjmK6igvwa7 --QzMZPXsXWfFkTSRnsVEPNa7wcXV5rlsCNAQx42aGZQIDAQABo4MBp1UwgwGnUDAd --BgNVHQ4EFgQUkhE/rBGWx2Y3z4NaJPA6d68zjX8wHwYDVR0jBBgwFoAUtsLvn9Ep --yw+JjExS1L1AtxG3cd0wNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzAChhtodHRw --Oi8vdXJsLWZvci1haWEvUm9vdC5jZXIwLAYDVR0fBCUwIzAhoB+gHYYbaHR0cDov --L3VybC1mb3ItY3JsL1Jvb3QuY3JsMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E --BTADAQH/MIMBpoMGA1UdHgSDAaZ5MIMBpnSggtM2MAmCB3QwLnRlc3QwCYIHdDEu --dGVzdDAJggd0Mi50ZXN0MAmCB3QzLnRlc3QwCYIHdDQudGVzdDAJggd0NS50ZXN0 --MAmCB3Q2LnRlc3QwCYIHdDcudGVzdDAJggd0OC50ZXN0MAmCB3Q5LnRlc3QwCoII --dDEwLnRlc3QwCoIIdDExLnRlc3QwCoIIdDEyLnRlc3QwCoIIdDEzLnRlc3QwCoII --dDE0LnRlc3QwCoIIdDE1LnRlc3QwCoIIdDE2LnRlc3QwCoIIdDE3LnRlc3QwCoII --dDE4LnRlc3QwCoIIdDE5LnRlc3QwCoIIdDIwLnRlc3QwCoIIdDIxLnRlc3QwCoII --dDIyLnRlc3QwCoIIdDIzLnRlc3QwCoIIdDI0LnRlc3QwCoIIdDI1LnRlc3QwCoII --dDI2LnRlc3QwCoIIdDI3LnRlc3QwCoIIdDI4LnRlc3QwCoIIdDI5LnRlc3QwCoII --dDMwLnRlc3QwCoIIdDMxLnRlc3QwCoIIdDMyLnRlc3QwCoIIdDMzLnRlc3QwCoII --dDM0LnRlc3QwCoIIdDM1LnRlc3QwCoIIdDM2LnRlc3QwCoIIdDM3LnRlc3QwCoII --dDM4LnRlc3QwCoIIdDM5LnRlc3QwCoIIdDQwLnRlc3QwCoIIdDQxLnRlc3QwCoII --dDQyLnRlc3QwCoIIdDQzLnRlc3QwCoIIdDQ0LnRlc3QwCoIIdDQ1LnRlc3QwCoII --dDQ2LnRlc3QwCoIIdDQ3LnRlc3QwCoIIdDQ4LnRlc3QwCoIIdDQ5LnRlc3QwCoII --dDUwLnRlc3QwCoIIdDUxLnRlc3QwCoIIdDUyLnRlc3QwCoIIdDUzLnRlc3QwCoII --dDU0LnRlc3QwCoIIdDU1LnRlc3QwCoIIdDU2LnRlc3QwCoIIdDU3LnRlc3QwCoII --dDU4LnRlc3QwCoIIdDU5LnRlc3QwCoIIdDYwLnRlc3QwCoIIdDYxLnRlc3QwCoII --dDYyLnRlc3QwCoIIdDYzLnRlc3QwCoIIdDY0LnRlc3QwCoIIdDY1LnRlc3QwCoII --dDY2LnRlc3QwCoIIdDY3LnRlc3QwCoIIdDY4LnRlc3QwCoIIdDY5LnRlc3QwCoII --dDcwLnRlc3QwCoIIdDcxLnRlc3QwCoIIdDcyLnRlc3QwCoIIdDczLnRlc3QwCoII --dDc0LnRlc3QwCoIIdDc1LnRlc3QwCoIIdDc2LnRlc3QwCoIIdDc3LnRlc3QwCoII --dDc4LnRlc3QwCoIIdDc5LnRlc3QwCoIIdDgwLnRlc3QwCoIIdDgxLnRlc3QwCoII --dDgyLnRlc3QwCoIIdDgzLnRlc3QwCoIIdDg0LnRlc3QwCoIIdDg1LnRlc3QwCoII --dDg2LnRlc3QwCoIIdDg3LnRlc3QwCoIIdDg4LnRlc3QwCoIIdDg5LnRlc3QwCoII --dDkwLnRlc3QwCoIIdDkxLnRlc3QwCoIIdDkyLnRlc3QwCoIIdDkzLnRlc3QwCoII --dDk0LnRlc3QwCoIIdDk1LnRlc3QwCoIIdDk2LnRlc3QwCoIIdDk3LnRlc3QwCoII --dDk4LnRlc3QwCoIIdDk5LnRlc3QwC4IJdDEwMC50ZXN0MAuCCXQxMDEudGVzdDAL --ggl0MTAyLnRlc3QwC4IJdDEwMy50ZXN0MAuCCXQxMDQudGVzdDALggl0MTA1LnRl --c3QwC4IJdDEwNi50ZXN0MAuCCXQxMDcudGVzdDALggl0MTA4LnRlc3QwC4IJdDEw --OS50ZXN0MAuCCXQxMTAudGVzdDALggl0MTExLnRlc3QwC4IJdDExMi50ZXN0MAuC --CXQxMTMudGVzdDALggl0MTE0LnRlc3QwC4IJdDExNS50ZXN0MAuCCXQxMTYudGVz --dDALggl0MTE3LnRlc3QwC4IJdDExOC50ZXN0MAuCCXQxMTkudGVzdDALggl0MTIw --LnRlc3QwC4IJdDEyMS50ZXN0MAuCCXQxMjIudGVzdDALggl0MTIzLnRlc3QwC4IJ --dDEyNC50ZXN0MAuCCXQxMjUudGVzdDALggl0MTI2LnRlc3QwC4IJdDEyNy50ZXN0 --MAuCCXQxMjgudGVzdDALggl0MTI5LnRlc3QwC4IJdDEzMC50ZXN0MAuCCXQxMzEu --dGVzdDALggl0MTMyLnRlc3QwC4IJdDEzMy50ZXN0MAuCCXQxMzQudGVzdDALggl0 --MTM1LnRlc3QwC4IJdDEzNi50ZXN0MAuCCXQxMzcudGVzdDALggl0MTM4LnRlc3Qw --C4IJdDEzOS50ZXN0MAuCCXQxNDAudGVzdDALggl0MTQxLnRlc3QwC4IJdDE0Mi50 --ZXN0MAuCCXQxNDMudGVzdDALggl0MTQ0LnRlc3QwC4IJdDE0NS50ZXN0MAuCCXQx --NDYudGVzdDALggl0MTQ3LnRlc3QwC4IJdDE0OC50ZXN0MAuCCXQxNDkudGVzdDAL --ggl0MTUwLnRlc3QwC4IJdDE1MS50ZXN0MAuCCXQxNTIudGVzdDALggl0MTUzLnRl --c3QwC4IJdDE1NC50ZXN0MAuCCXQxNTUudGVzdDALggl0MTU2LnRlc3QwC4IJdDE1 --Ny50ZXN0MAuCCXQxNTgudGVzdDALggl0MTU5LnRlc3QwC4IJdDE2MC50ZXN0MAuC --CXQxNjEudGVzdDALggl0MTYyLnRlc3QwC4IJdDE2My50ZXN0MAuCCXQxNjQudGVz --dDALggl0MTY1LnRlc3QwC4IJdDE2Ni50ZXN0MAuCCXQxNjcudGVzdDALggl0MTY4 --LnRlc3QwC4IJdDE2OS50ZXN0MAuCCXQxNzAudGVzdDALggl0MTcxLnRlc3QwC4IJ --dDE3Mi50ZXN0MAuCCXQxNzMudGVzdDALggl0MTc0LnRlc3QwC4IJdDE3NS50ZXN0 --MAuCCXQxNzYudGVzdDALggl0MTc3LnRlc3QwC4IJdDE3OC50ZXN0MAuCCXQxNzku --dGVzdDALggl0MTgwLnRlc3QwC4IJdDE4MS50ZXN0MAuCCXQxODIudGVzdDALggl0 --MTgzLnRlc3QwC4IJdDE4NC50ZXN0MAuCCXQxODUudGVzdDALggl0MTg2LnRlc3Qw --C4IJdDE4Ny50ZXN0MAuCCXQxODgudGVzdDALggl0MTg5LnRlc3QwC4IJdDE5MC50 --ZXN0MAuCCXQxOTEudGVzdDALggl0MTkyLnRlc3QwC4IJdDE5My50ZXN0MAuCCXQx --OTQudGVzdDALggl0MTk1LnRlc3QwC4IJdDE5Ni50ZXN0MAuCCXQxOTcudGVzdDAL --ggl0MTk4LnRlc3QwC4IJdDE5OS50ZXN0MAuCCXQyMDAudGVzdDALggl0MjAxLnRl --c3QwC4IJdDIwMi50ZXN0MAuCCXQyMDMudGVzdDALggl0MjA0LnRlc3QwC4IJdDIw --NS50ZXN0MAuCCXQyMDYudGVzdDALggl0MjA3LnRlc3QwC4IJdDIwOC50ZXN0MAuC --CXQyMDkudGVzdDALggl0MjEwLnRlc3QwC4IJdDIxMS50ZXN0MAuCCXQyMTIudGVz --dDALggl0MjEzLnRlc3QwC4IJdDIxNC50ZXN0MAuCCXQyMTUudGVzdDALggl0MjE2 --LnRlc3QwC4IJdDIxNy50ZXN0MAuCCXQyMTgudGVzdDALggl0MjE5LnRlc3QwC4IJ --dDIyMC50ZXN0MAuCCXQyMjEudGVzdDALggl0MjIyLnRlc3QwC4IJdDIyMy50ZXN0 --MAuCCXQyMjQudGVzdDALggl0MjI1LnRlc3QwC4IJdDIyNi50ZXN0MAuCCXQyMjcu --dGVzdDALggl0MjI4LnRlc3QwC4IJdDIyOS50ZXN0MAuCCXQyMzAudGVzdDALggl0 --MjMxLnRlc3QwC4IJdDIzMi50ZXN0MAuCCXQyMzMudGVzdDALggl0MjM0LnRlc3Qw --C4IJdDIzNS50ZXN0MAuCCXQyMzYudGVzdDALggl0MjM3LnRlc3QwC4IJdDIzOC50 --ZXN0MAuCCXQyMzkudGVzdDALggl0MjQwLnRlc3QwC4IJdDI0MS50ZXN0MAuCCXQy --NDIudGVzdDALggl0MjQzLnRlc3QwC4IJdDI0NC50ZXN0MAuCCXQyNDUudGVzdDAL --ggl0MjQ2LnRlc3QwC4IJdDI0Ny50ZXN0MAuCCXQyNDgudGVzdDALggl0MjQ5LnRl --c3QwC4IJdDI1MC50ZXN0MAuCCXQyNTEudGVzdDALggl0MjUyLnRlc3QwC4IJdDI1 --My50ZXN0MAuCCXQyNTQudGVzdDALggl0MjU1LnRlc3QwC4IJdDI1Ni50ZXN0MAuC --CXQyNTcudGVzdDALggl0MjU4LnRlc3QwC4IJdDI1OS50ZXN0MAuCCXQyNjAudGVz --dDALggl0MjYxLnRlc3QwC4IJdDI2Mi50ZXN0MAuCCXQyNjMudGVzdDALggl0MjY0 --LnRlc3QwC4IJdDI2NS50ZXN0MAuCCXQyNjYudGVzdDALggl0MjY3LnRlc3QwC4IJ --dDI2OC50ZXN0MAuCCXQyNjkudGVzdDALggl0MjcwLnRlc3QwC4IJdDI3MS50ZXN0 --MAuCCXQyNzIudGVzdDALggl0MjczLnRlc3QwC4IJdDI3NC50ZXN0MAuCCXQyNzUu --dGVzdDALggl0Mjc2LnRlc3QwC4IJdDI3Ny50ZXN0MAuCCXQyNzgudGVzdDALggl0 --Mjc5LnRlc3QwC4IJdDI4MC50ZXN0MAuCCXQyODEudGVzdDALggl0MjgyLnRlc3Qw --C4IJdDI4My50ZXN0MAuCCXQyODQudGVzdDALggl0Mjg1LnRlc3QwC4IJdDI4Ni50 --ZXN0MAuCCXQyODcudGVzdDALggl0Mjg4LnRlc3QwC4IJdDI4OS50ZXN0MAuCCXQy --OTAudGVzdDALggl0MjkxLnRlc3QwC4IJdDI5Mi50ZXN0MAuCCXQyOTMudGVzdDAL --ggl0Mjk0LnRlc3QwC4IJdDI5NS50ZXN0MAuCCXQyOTYudGVzdDALggl0Mjk3LnRl --c3QwC4IJdDI5OC50ZXN0MAuCCXQyOTkudGVzdDALggl0MzAwLnRlc3QwC4IJdDMw --MS50ZXN0MAuCCXQzMDIudGVzdDALggl0MzAzLnRlc3QwC4IJdDMwNC50ZXN0MAuC --CXQzMDUudGVzdDALggl0MzA2LnRlc3QwC4IJdDMwNy50ZXN0MAuCCXQzMDgudGVz --dDALggl0MzA5LnRlc3QwC4IJdDMxMC50ZXN0MAuCCXQzMTEudGVzdDALggl0MzEy --LnRlc3QwC4IJdDMxMy50ZXN0MAuCCXQzMTQudGVzdDALggl0MzE1LnRlc3QwC4IJ --dDMxNi50ZXN0MAuCCXQzMTcudGVzdDALggl0MzE4LnRlc3QwC4IJdDMxOS50ZXN0 --MAuCCXQzMjAudGVzdDALggl0MzIxLnRlc3QwC4IJdDMyMi50ZXN0MAuCCXQzMjMu --dGVzdDALggl0MzI0LnRlc3QwC4IJdDMyNS50ZXN0MAuCCXQzMjYudGVzdDALggl0 --MzI3LnRlc3QwC4IJdDMyOC50ZXN0MAuCCXQzMjkudGVzdDALggl0MzMwLnRlc3Qw --C4IJdDMzMS50ZXN0MAuCCXQzMzIudGVzdDALggl0MzMzLnRlc3QwC4IJdDMzNC50 --ZXN0MAuCCXQzMzUudGVzdDALggl0MzM2LnRlc3QwC4IJdDMzNy50ZXN0MAuCCXQz --MzgudGVzdDALggl0MzM5LnRlc3QwC4IJdDM0MC50ZXN0MAuCCXQzNDEudGVzdDAL --ggl0MzQyLnRlc3QwC4IJdDM0My50ZXN0MAuCCXQzNDQudGVzdDALggl0MzQ1LnRl --c3QwC4IJdDM0Ni50ZXN0MAuCCXQzNDcudGVzdDALggl0MzQ4LnRlc3QwC4IJdDM0 --OS50ZXN0MAuCCXQzNTAudGVzdDALggl0MzUxLnRlc3QwC4IJdDM1Mi50ZXN0MAuC --CXQzNTMudGVzdDALggl0MzU0LnRlc3QwC4IJdDM1NS50ZXN0MAuCCXQzNTYudGVz --dDALggl0MzU3LnRlc3QwC4IJdDM1OC50ZXN0MAuCCXQzNTkudGVzdDALggl0MzYw --LnRlc3QwC4IJdDM2MS50ZXN0MAuCCXQzNjIudGVzdDALggl0MzYzLnRlc3QwC4IJ --dDM2NC50ZXN0MAuCCXQzNjUudGVzdDALggl0MzY2LnRlc3QwC4IJdDM2Ny50ZXN0 --MAuCCXQzNjgudGVzdDALggl0MzY5LnRlc3QwC4IJdDM3MC50ZXN0MAuCCXQzNzEu --dGVzdDALggl0MzcyLnRlc3QwC4IJdDM3My50ZXN0MAuCCXQzNzQudGVzdDALggl0 --Mzc1LnRlc3QwC4IJdDM3Ni50ZXN0MAuCCXQzNzcudGVzdDALggl0Mzc4LnRlc3Qw --C4IJdDM3OS50ZXN0MAuCCXQzODAudGVzdDALggl0MzgxLnRlc3QwC4IJdDM4Mi50 --ZXN0MAuCCXQzODMudGVzdDALggl0Mzg0LnRlc3QwC4IJdDM4NS50ZXN0MAuCCXQz --ODYudGVzdDALggl0Mzg3LnRlc3QwC4IJdDM4OC50ZXN0MAuCCXQzODkudGVzdDAL --ggl0MzkwLnRlc3QwC4IJdDM5MS50ZXN0MAuCCXQzOTIudGVzdDALggl0MzkzLnRl --c3QwC4IJdDM5NC50ZXN0MAuCCXQzOTUudGVzdDALggl0Mzk2LnRlc3QwC4IJdDM5 --Ny50ZXN0MAuCCXQzOTgudGVzdDALggl0Mzk5LnRlc3QwC4IJdDQwMC50ZXN0MAuC --CXQ0MDEudGVzdDALggl0NDAyLnRlc3QwC4IJdDQwMy50ZXN0MAuCCXQ0MDQudGVz --dDALggl0NDA1LnRlc3QwC4IJdDQwNi50ZXN0MAuCCXQ0MDcudGVzdDALggl0NDA4 --LnRlc3QwC4IJdDQwOS50ZXN0MAuCCXQ0MTAudGVzdDALggl0NDExLnRlc3QwC4IJ --dDQxMi50ZXN0MAuCCXQ0MTMudGVzdDALggl0NDE0LnRlc3QwC4IJdDQxNS50ZXN0 --MAuCCXQ0MTYudGVzdDALggl0NDE3LnRlc3QwC4IJdDQxOC50ZXN0MAuCCXQ0MTku --dGVzdDALggl0NDIwLnRlc3QwC4IJdDQyMS50ZXN0MAuCCXQ0MjIudGVzdDALggl0 --NDIzLnRlc3QwC4IJdDQyNC50ZXN0MAuCCXQ0MjUudGVzdDALggl0NDI2LnRlc3Qw --C4IJdDQyNy50ZXN0MAuCCXQ0MjgudGVzdDALggl0NDI5LnRlc3QwC4IJdDQzMC50 --ZXN0MAuCCXQ0MzEudGVzdDALggl0NDMyLnRlc3QwC4IJdDQzMy50ZXN0MAuCCXQ0 --MzQudGVzdDALggl0NDM1LnRlc3QwC4IJdDQzNi50ZXN0MAuCCXQ0MzcudGVzdDAL --ggl0NDM4LnRlc3QwC4IJdDQzOS50ZXN0MAuCCXQ0NDAudGVzdDALggl0NDQxLnRl --c3QwC4IJdDQ0Mi50ZXN0MAuCCXQ0NDMudGVzdDALggl0NDQ0LnRlc3QwC4IJdDQ0 --NS50ZXN0MAuCCXQ0NDYudGVzdDALggl0NDQ3LnRlc3QwC4IJdDQ0OC50ZXN0MAuC --CXQ0NDkudGVzdDALggl0NDUwLnRlc3QwC4IJdDQ1MS50ZXN0MAuCCXQ0NTIudGVz --dDALggl0NDUzLnRlc3QwC4IJdDQ1NC50ZXN0MAuCCXQ0NTUudGVzdDALggl0NDU2 --LnRlc3QwC4IJdDQ1Ny50ZXN0MAuCCXQ0NTgudGVzdDALggl0NDU5LnRlc3QwC4IJ --dDQ2MC50ZXN0MAuCCXQ0NjEudGVzdDALggl0NDYyLnRlc3QwC4IJdDQ2My50ZXN0 --MAuCCXQ0NjQudGVzdDALggl0NDY1LnRlc3QwC4IJdDQ2Ni50ZXN0MAuCCXQ0Njcu --dGVzdDALggl0NDY4LnRlc3QwC4IJdDQ2OS50ZXN0MAuCCXQ0NzAudGVzdDALggl0 --NDcxLnRlc3QwC4IJdDQ3Mi50ZXN0MAuCCXQ0NzMudGVzdDALggl0NDc0LnRlc3Qw --C4IJdDQ3NS50ZXN0MAuCCXQ0NzYudGVzdDALggl0NDc3LnRlc3QwC4IJdDQ3OC50 --ZXN0MAuCCXQ0NzkudGVzdDALggl0NDgwLnRlc3QwC4IJdDQ4MS50ZXN0MAuCCXQ0 --ODIudGVzdDALggl0NDgzLnRlc3QwC4IJdDQ4NC50ZXN0MAuCCXQ0ODUudGVzdDAL --ggl0NDg2LnRlc3QwC4IJdDQ4Ny50ZXN0MAuCCXQ0ODgudGVzdDALggl0NDg5LnRl --c3QwC4IJdDQ5MC50ZXN0MAuCCXQ0OTEudGVzdDALggl0NDkyLnRlc3QwC4IJdDQ5 --My50ZXN0MAuCCXQ0OTQudGVzdDALggl0NDk1LnRlc3QwC4IJdDQ5Ni50ZXN0MAuC --CXQ0OTcudGVzdDALggl0NDk4LnRlc3QwC4IJdDQ5OS50ZXN0MAuCCXQ1MDAudGVz --dDALggl0NTAxLnRlc3QwC4IJdDUwMi50ZXN0MAuCCXQ1MDMudGVzdDALggl0NTA0 --LnRlc3QwC4IJdDUwNS50ZXN0MAuCCXQ1MDYudGVzdDALggl0NTA3LnRlc3QwC4IJ --dDUwOC50ZXN0MAuCCXQ1MDkudGVzdDALggl0NTEwLnRlc3QwC4IJdDUxMS50ZXN0 --MAuCCXQ1MTIudGVzdDALggl0NTEzLnRlc3QwC4IJdDUxNC50ZXN0MAuCCXQ1MTUu --dGVzdDALggl0NTE2LnRlc3QwC4IJdDUxNy50ZXN0MAuCCXQ1MTgudGVzdDALggl0 --NTE5LnRlc3QwC4IJdDUyMC50ZXN0MAuCCXQ1MjEudGVzdDALggl0NTIyLnRlc3Qw --C4IJdDUyMy50ZXN0MAuCCXQ1MjQudGVzdDALggl0NTI1LnRlc3QwC4IJdDUyNi50 --ZXN0MAuCCXQ1MjcudGVzdDALggl0NTI4LnRlc3QwC4IJdDUyOS50ZXN0MAuCCXQ1 --MzAudGVzdDALggl0NTMxLnRlc3QwC4IJdDUzMi50ZXN0MAuCCXQ1MzMudGVzdDAL --ggl0NTM0LnRlc3QwC4IJdDUzNS50ZXN0MAuCCXQ1MzYudGVzdDALggl0NTM3LnRl --c3QwC4IJdDUzOC50ZXN0MAuCCXQ1MzkudGVzdDALggl0NTQwLnRlc3QwC4IJdDU0 --MS50ZXN0MAuCCXQ1NDIudGVzdDALggl0NTQzLnRlc3QwC4IJdDU0NC50ZXN0MAuC --CXQ1NDUudGVzdDALggl0NTQ2LnRlc3QwC4IJdDU0Ny50ZXN0MAuCCXQ1NDgudGVz --dDALggl0NTQ5LnRlc3QwC4IJdDU1MC50ZXN0MAuCCXQ1NTEudGVzdDALggl0NTUy --LnRlc3QwC4IJdDU1My50ZXN0MAuCCXQ1NTQudGVzdDALggl0NTU1LnRlc3QwC4IJ --dDU1Ni50ZXN0MAuCCXQ1NTcudGVzdDALggl0NTU4LnRlc3QwC4IJdDU1OS50ZXN0 --MAuCCXQ1NjAudGVzdDALggl0NTYxLnRlc3QwC4IJdDU2Mi50ZXN0MAuCCXQ1NjMu --dGVzdDALggl0NTY0LnRlc3QwC4IJdDU2NS50ZXN0MAuCCXQ1NjYudGVzdDALggl0 --NTY3LnRlc3QwC4IJdDU2OC50ZXN0MAuCCXQ1NjkudGVzdDALggl0NTcwLnRlc3Qw --C4IJdDU3MS50ZXN0MAuCCXQ1NzIudGVzdDALggl0NTczLnRlc3QwC4IJdDU3NC50 --ZXN0MAuCCXQ1NzUudGVzdDALggl0NTc2LnRlc3QwC4IJdDU3Ny50ZXN0MAuCCXQ1 --NzgudGVzdDALggl0NTc5LnRlc3QwC4IJdDU4MC50ZXN0MAuCCXQ1ODEudGVzdDAL --ggl0NTgyLnRlc3QwC4IJdDU4My50ZXN0MAuCCXQ1ODQudGVzdDALggl0NTg1LnRl --c3QwC4IJdDU4Ni50ZXN0MAuCCXQ1ODcudGVzdDALggl0NTg4LnRlc3QwC4IJdDU4 --OS50ZXN0MAuCCXQ1OTAudGVzdDALggl0NTkxLnRlc3QwC4IJdDU5Mi50ZXN0MAuC --CXQ1OTMudGVzdDALggl0NTk0LnRlc3QwC4IJdDU5NS50ZXN0MAuCCXQ1OTYudGVz --dDALggl0NTk3LnRlc3QwC4IJdDU5OC50ZXN0MAuCCXQ1OTkudGVzdDALggl0NjAw --LnRlc3QwC4IJdDYwMS50ZXN0MAuCCXQ2MDIudGVzdDALggl0NjAzLnRlc3QwC4IJ --dDYwNC50ZXN0MAuCCXQ2MDUudGVzdDALggl0NjA2LnRlc3QwC4IJdDYwNy50ZXN0 --MAuCCXQ2MDgudGVzdDALggl0NjA5LnRlc3QwC4IJdDYxMC50ZXN0MAuCCXQ2MTEu --dGVzdDALggl0NjEyLnRlc3QwC4IJdDYxMy50ZXN0MAuCCXQ2MTQudGVzdDALggl0 --NjE1LnRlc3QwC4IJdDYxNi50ZXN0MAuCCXQ2MTcudGVzdDALggl0NjE4LnRlc3Qw --C4IJdDYxOS50ZXN0MAuCCXQ2MjAudGVzdDALggl0NjIxLnRlc3QwC4IJdDYyMi50 --ZXN0MAuCCXQ2MjMudGVzdDALggl0NjI0LnRlc3QwC4IJdDYyNS50ZXN0MAuCCXQ2 --MjYudGVzdDALggl0NjI3LnRlc3QwC4IJdDYyOC50ZXN0MAuCCXQ2MjkudGVzdDAL --ggl0NjMwLnRlc3QwC4IJdDYzMS50ZXN0MAuCCXQ2MzIudGVzdDALggl0NjMzLnRl --c3QwC4IJdDYzNC50ZXN0MAuCCXQ2MzUudGVzdDALggl0NjM2LnRlc3QwC4IJdDYz --Ny50ZXN0MAuCCXQ2MzgudGVzdDALggl0NjM5LnRlc3QwC4IJdDY0MC50ZXN0MAuC --CXQ2NDEudGVzdDALggl0NjQyLnRlc3QwC4IJdDY0My50ZXN0MAuCCXQ2NDQudGVz --dDALggl0NjQ1LnRlc3QwC4IJdDY0Ni50ZXN0MAuCCXQ2NDcudGVzdDALggl0NjQ4 --LnRlc3QwC4IJdDY0OS50ZXN0MAuCCXQ2NTAudGVzdDALggl0NjUxLnRlc3QwC4IJ --dDY1Mi50ZXN0MAuCCXQ2NTMudGVzdDALggl0NjU0LnRlc3QwC4IJdDY1NS50ZXN0 --MAuCCXQ2NTYudGVzdDALggl0NjU3LnRlc3QwC4IJdDY1OC50ZXN0MAuCCXQ2NTku --dGVzdDALggl0NjYwLnRlc3QwC4IJdDY2MS50ZXN0MAuCCXQ2NjIudGVzdDALggl0 --NjYzLnRlc3QwC4IJdDY2NC50ZXN0MAuCCXQ2NjUudGVzdDALggl0NjY2LnRlc3Qw --C4IJdDY2Ny50ZXN0MAuCCXQ2NjgudGVzdDALggl0NjY5LnRlc3QwC4IJdDY3MC50 --ZXN0MAuCCXQ2NzEudGVzdDALggl0NjcyLnRlc3QwC4IJdDY3My50ZXN0MAuCCXQ2 --NzQudGVzdDALggl0Njc1LnRlc3QwC4IJdDY3Ni50ZXN0MAuCCXQ2NzcudGVzdDAL --ggl0Njc4LnRlc3QwC4IJdDY3OS50ZXN0MAuCCXQ2ODAudGVzdDALggl0NjgxLnRl --c3QwC4IJdDY4Mi50ZXN0MAuCCXQ2ODMudGVzdDALggl0Njg0LnRlc3QwC4IJdDY4 --NS50ZXN0MAuCCXQ2ODYudGVzdDALggl0Njg3LnRlc3QwC4IJdDY4OC50ZXN0MAuC --CXQ2ODkudGVzdDALggl0NjkwLnRlc3QwC4IJdDY5MS50ZXN0MAuCCXQ2OTIudGVz --dDALggl0NjkzLnRlc3QwC4IJdDY5NC50ZXN0MAuCCXQ2OTUudGVzdDALggl0Njk2 --LnRlc3QwC4IJdDY5Ny50ZXN0MAuCCXQ2OTgudGVzdDALggl0Njk5LnRlc3QwC4IJ --dDcwMC50ZXN0MAuCCXQ3MDEudGVzdDALggl0NzAyLnRlc3QwC4IJdDcwMy50ZXN0 --MAuCCXQ3MDQudGVzdDALggl0NzA1LnRlc3QwC4IJdDcwNi50ZXN0MAuCCXQ3MDcu --dGVzdDALggl0NzA4LnRlc3QwC4IJdDcwOS50ZXN0MAuCCXQ3MTAudGVzdDALggl0 --NzExLnRlc3QwC4IJdDcxMi50ZXN0MAuCCXQ3MTMudGVzdDALggl0NzE0LnRlc3Qw --C4IJdDcxNS50ZXN0MAuCCXQ3MTYudGVzdDALggl0NzE3LnRlc3QwC4IJdDcxOC50 --ZXN0MAuCCXQ3MTkudGVzdDALggl0NzIwLnRlc3QwC4IJdDcyMS50ZXN0MAuCCXQ3 --MjIudGVzdDALggl0NzIzLnRlc3QwC4IJdDcyNC50ZXN0MAuCCXQ3MjUudGVzdDAL --ggl0NzI2LnRlc3QwC4IJdDcyNy50ZXN0MAuCCXQ3MjgudGVzdDALggl0NzI5LnRl --c3QwC4IJdDczMC50ZXN0MAuCCXQ3MzEudGVzdDALggl0NzMyLnRlc3QwC4IJdDcz --My50ZXN0MAuCCXQ3MzQudGVzdDALggl0NzM1LnRlc3QwC4IJdDczNi50ZXN0MAuC --CXQ3MzcudGVzdDALggl0NzM4LnRlc3QwC4IJdDczOS50ZXN0MAuCCXQ3NDAudGVz --dDALggl0NzQxLnRlc3QwC4IJdDc0Mi50ZXN0MAuCCXQ3NDMudGVzdDALggl0NzQ0 --LnRlc3QwC4IJdDc0NS50ZXN0MAuCCXQ3NDYudGVzdDALggl0NzQ3LnRlc3QwC4IJ --dDc0OC50ZXN0MAuCCXQ3NDkudGVzdDALggl0NzUwLnRlc3QwC4IJdDc1MS50ZXN0 --MAuCCXQ3NTIudGVzdDALggl0NzUzLnRlc3QwC4IJdDc1NC50ZXN0MAuCCXQ3NTUu --dGVzdDALggl0NzU2LnRlc3QwC4IJdDc1Ny50ZXN0MAuCCXQ3NTgudGVzdDALggl0 --NzU5LnRlc3QwC4IJdDc2MC50ZXN0MAuCCXQ3NjEudGVzdDALggl0NzYyLnRlc3Qw --C4IJdDc2My50ZXN0MAuCCXQ3NjQudGVzdDALggl0NzY1LnRlc3QwC4IJdDc2Ni50 --ZXN0MAuCCXQ3NjcudGVzdDALggl0NzY4LnRlc3QwC4IJdDc2OS50ZXN0MAuCCXQ3 --NzAudGVzdDALggl0NzcxLnRlc3QwC4IJdDc3Mi50ZXN0MAuCCXQ3NzMudGVzdDAL --ggl0Nzc0LnRlc3QwC4IJdDc3NS50ZXN0MAuCCXQ3NzYudGVzdDALggl0Nzc3LnRl --c3QwC4IJdDc3OC50ZXN0MAuCCXQ3NzkudGVzdDALggl0NzgwLnRlc3QwC4IJdDc4 --MS50ZXN0MAuCCXQ3ODIudGVzdDALggl0NzgzLnRlc3QwC4IJdDc4NC50ZXN0MAuC --CXQ3ODUudGVzdDALggl0Nzg2LnRlc3QwC4IJdDc4Ny50ZXN0MAuCCXQ3ODgudGVz --dDALggl0Nzg5LnRlc3QwC4IJdDc5MC50ZXN0MAuCCXQ3OTEudGVzdDALggl0Nzky --LnRlc3QwC4IJdDc5My50ZXN0MAuCCXQ3OTQudGVzdDALggl0Nzk1LnRlc3QwC4IJ --dDc5Ni50ZXN0MAuCCXQ3OTcudGVzdDALggl0Nzk4LnRlc3QwC4IJdDc5OS50ZXN0 --MAuCCXQ4MDAudGVzdDALggl0ODAxLnRlc3QwC4IJdDgwMi50ZXN0MAuCCXQ4MDMu --dGVzdDALggl0ODA0LnRlc3QwC4IJdDgwNS50ZXN0MAuCCXQ4MDYudGVzdDALggl0 --ODA3LnRlc3QwC4IJdDgwOC50ZXN0MAuCCXQ4MDkudGVzdDALggl0ODEwLnRlc3Qw --C4IJdDgxMS50ZXN0MAuCCXQ4MTIudGVzdDALggl0ODEzLnRlc3QwC4IJdDgxNC50 --ZXN0MAuCCXQ4MTUudGVzdDALggl0ODE2LnRlc3QwC4IJdDgxNy50ZXN0MAuCCXQ4 --MTgudGVzdDALggl0ODE5LnRlc3QwC4IJdDgyMC50ZXN0MAuCCXQ4MjEudGVzdDAL --ggl0ODIyLnRlc3QwC4IJdDgyMy50ZXN0MAuCCXQ4MjQudGVzdDALggl0ODI1LnRl --c3QwC4IJdDgyNi50ZXN0MAuCCXQ4MjcudGVzdDALggl0ODI4LnRlc3QwC4IJdDgy --OS50ZXN0MAuCCXQ4MzAudGVzdDALggl0ODMxLnRlc3QwC4IJdDgzMi50ZXN0MAuC --CXQ4MzMudGVzdDALggl0ODM0LnRlc3QwC4IJdDgzNS50ZXN0MAuCCXQ4MzYudGVz --dDALggl0ODM3LnRlc3QwC4IJdDgzOC50ZXN0MAuCCXQ4MzkudGVzdDALggl0ODQw --LnRlc3QwC4IJdDg0MS50ZXN0MAuCCXQ4NDIudGVzdDALggl0ODQzLnRlc3QwC4IJ --dDg0NC50ZXN0MAuCCXQ4NDUudGVzdDALggl0ODQ2LnRlc3QwC4IJdDg0Ny50ZXN0 --MAuCCXQ4NDgudGVzdDALggl0ODQ5LnRlc3QwC4IJdDg1MC50ZXN0MAuCCXQ4NTEu --dGVzdDALggl0ODUyLnRlc3QwC4IJdDg1My50ZXN0MAuCCXQ4NTQudGVzdDALggl0 --ODU1LnRlc3QwC4IJdDg1Ni50ZXN0MAuCCXQ4NTcudGVzdDALggl0ODU4LnRlc3Qw --C4IJdDg1OS50ZXN0MAuCCXQ4NjAudGVzdDALggl0ODYxLnRlc3QwC4IJdDg2Mi50 --ZXN0MAuCCXQ4NjMudGVzdDALggl0ODY0LnRlc3QwC4IJdDg2NS50ZXN0MAuCCXQ4 --NjYudGVzdDALggl0ODY3LnRlc3QwC4IJdDg2OC50ZXN0MAuCCXQ4NjkudGVzdDAL --ggl0ODcwLnRlc3QwC4IJdDg3MS50ZXN0MAuCCXQ4NzIudGVzdDALggl0ODczLnRl --c3QwC4IJdDg3NC50ZXN0MAuCCXQ4NzUudGVzdDALggl0ODc2LnRlc3QwC4IJdDg3 --Ny50ZXN0MAuCCXQ4NzgudGVzdDALggl0ODc5LnRlc3QwC4IJdDg4MC50ZXN0MAuC --CXQ4ODEudGVzdDALggl0ODgyLnRlc3QwC4IJdDg4My50ZXN0MAuCCXQ4ODQudGVz --dDALggl0ODg1LnRlc3QwC4IJdDg4Ni50ZXN0MAuCCXQ4ODcudGVzdDALggl0ODg4 --LnRlc3QwC4IJdDg4OS50ZXN0MAuCCXQ4OTAudGVzdDALggl0ODkxLnRlc3QwC4IJ --dDg5Mi50ZXN0MAuCCXQ4OTMudGVzdDALggl0ODk0LnRlc3QwC4IJdDg5NS50ZXN0 --MAuCCXQ4OTYudGVzdDALggl0ODk3LnRlc3QwC4IJdDg5OC50ZXN0MAuCCXQ4OTku --dGVzdDALggl0OTAwLnRlc3QwC4IJdDkwMS50ZXN0MAuCCXQ5MDIudGVzdDALggl0 --OTAzLnRlc3QwC4IJdDkwNC50ZXN0MAuCCXQ5MDUudGVzdDALggl0OTA2LnRlc3Qw --C4IJdDkwNy50ZXN0MAuCCXQ5MDgudGVzdDALggl0OTA5LnRlc3QwC4IJdDkxMC50 --ZXN0MAuCCXQ5MTEudGVzdDALggl0OTEyLnRlc3QwC4IJdDkxMy50ZXN0MAuCCXQ5 --MTQudGVzdDALggl0OTE1LnRlc3QwC4IJdDkxNi50ZXN0MAuCCXQ5MTcudGVzdDAL --ggl0OTE4LnRlc3QwC4IJdDkxOS50ZXN0MAuCCXQ5MjAudGVzdDALggl0OTIxLnRl --c3QwC4IJdDkyMi50ZXN0MAuCCXQ5MjMudGVzdDALggl0OTI0LnRlc3QwC4IJdDky --NS50ZXN0MAuCCXQ5MjYudGVzdDALggl0OTI3LnRlc3QwC4IJdDkyOC50ZXN0MAuC --CXQ5MjkudGVzdDALggl0OTMwLnRlc3QwC4IJdDkzMS50ZXN0MAuCCXQ5MzIudGVz --dDALggl0OTMzLnRlc3QwC4IJdDkzNC50ZXN0MAuCCXQ5MzUudGVzdDALggl0OTM2 --LnRlc3QwC4IJdDkzNy50ZXN0MAuCCXQ5MzgudGVzdDALggl0OTM5LnRlc3QwC4IJ --dDk0MC50ZXN0MAuCCXQ5NDEudGVzdDALggl0OTQyLnRlc3QwC4IJdDk0My50ZXN0 --MAuCCXQ5NDQudGVzdDALggl0OTQ1LnRlc3QwC4IJdDk0Ni50ZXN0MAuCCXQ5NDcu --dGVzdDALggl0OTQ4LnRlc3QwC4IJdDk0OS50ZXN0MAuCCXQ5NTAudGVzdDALggl0 --OTUxLnRlc3QwC4IJdDk1Mi50ZXN0MAuCCXQ5NTMudGVzdDALggl0OTU0LnRlc3Qw --C4IJdDk1NS50ZXN0MAuCCXQ5NTYudGVzdDALggl0OTU3LnRlc3QwC4IJdDk1OC50 --ZXN0MAuCCXQ5NTkudGVzdDALggl0OTYwLnRlc3QwC4IJdDk2MS50ZXN0MAuCCXQ5 --NjIudGVzdDALggl0OTYzLnRlc3QwC4IJdDk2NC50ZXN0MAuCCXQ5NjUudGVzdDAL --ggl0OTY2LnRlc3QwC4IJdDk2Ny50ZXN0MAuCCXQ5NjgudGVzdDALggl0OTY5LnRl --c3QwC4IJdDk3MC50ZXN0MAuCCXQ5NzEudGVzdDALggl0OTcyLnRlc3QwC4IJdDk3 --My50ZXN0MAuCCXQ5NzQudGVzdDALggl0OTc1LnRlc3QwC4IJdDk3Ni50ZXN0MAuC --CXQ5NzcudGVzdDALggl0OTc4LnRlc3QwC4IJdDk3OS50ZXN0MAuCCXQ5ODAudGVz --dDALggl0OTgxLnRlc3QwC4IJdDk4Mi50ZXN0MAuCCXQ5ODMudGVzdDALggl0OTg0 --LnRlc3QwC4IJdDk4NS50ZXN0MAuCCXQ5ODYudGVzdDALggl0OTg3LnRlc3QwC4IJ --dDk4OC50ZXN0MAuCCXQ5ODkudGVzdDALggl0OTkwLnRlc3QwC4IJdDk5MS50ZXN0 --MAuCCXQ5OTIudGVzdDALggl0OTkzLnRlc3QwC4IJdDk5NC50ZXN0MAuCCXQ5OTUu --dGVzdDALggl0OTk2LnRlc3QwC4IJdDk5Ny50ZXN0MAuCCXQ5OTgudGVzdDALggl0 --OTk5LnRlc3QwDIIKdDEwMDAudGVzdDAMggp0MTAwMS50ZXN0MAyCCnQxMDAyLnRl --c3QwDIIKdDEwMDMudGVzdDAMggp0MTAwNC50ZXN0MAyCCnQxMDA1LnRlc3QwDIIK --dDEwMDYudGVzdDAMggp0MTAwNy50ZXN0MAyCCnQxMDA4LnRlc3QwDIIKdDEwMDku --dGVzdDAMggp0MTAxMC50ZXN0MAyCCnQxMDExLnRlc3QwDIIKdDEwMTIudGVzdDAM --ggp0MTAxMy50ZXN0MAyCCnQxMDE0LnRlc3QwDIIKdDEwMTUudGVzdDAMggp0MTAx --Ni50ZXN0MAyCCnQxMDE3LnRlc3QwDIIKdDEwMTgudGVzdDAMggp0MTAxOS50ZXN0 --MAyCCnQxMDIwLnRlc3QwDIIKdDEwMjEudGVzdDAMggp0MTAyMi50ZXN0MAyCCnQx --MDIzLnRlc3QwDIIKdDEwMjQudGVzdDARpA8wDTELMAkGA1UEAwwCdDAwEaQPMA0x --CzAJBgNVBAMMAnQxMBGkDzANMQswCQYDVQQDDAJ0MjARpA8wDTELMAkGA1UEAwwC --dDMwEaQPMA0xCzAJBgNVBAMMAnQ0MBGkDzANMQswCQYDVQQDDAJ0NTARpA8wDTEL --MAkGA1UEAwwCdDYwEaQPMA0xCzAJBgNVBAMMAnQ3MBGkDzANMQswCQYDVQQDDAJ0 --ODARpA8wDTELMAkGA1UEAwwCdDkwEqQQMA4xDDAKBgNVBAMMA3QxMDASpBAwDjEM --MAoGA1UEAwwDdDExMBKkEDAOMQwwCgYDVQQDDAN0MTIwEqQQMA4xDDAKBgNVBAMM --A3QxMzASpBAwDjEMMAoGA1UEAwwDdDE0MBKkEDAOMQwwCgYDVQQDDAN0MTUwEqQQ --MA4xDDAKBgNVBAMMA3QxNjASpBAwDjEMMAoGA1UEAwwDdDE3MBKkEDAOMQwwCgYD --VQQDDAN0MTgwEqQQMA4xDDAKBgNVBAMMA3QxOTASpBAwDjEMMAoGA1UEAwwDdDIw --MBKkEDAOMQwwCgYDVQQDDAN0MjEwEqQQMA4xDDAKBgNVBAMMA3QyMjASpBAwDjEM --MAoGA1UEAwwDdDIzMBKkEDAOMQwwCgYDVQQDDAN0MjQwEqQQMA4xDDAKBgNVBAMM --A3QyNTASpBAwDjEMMAoGA1UEAwwDdDI2MBKkEDAOMQwwCgYDVQQDDAN0MjcwEqQQ --MA4xDDAKBgNVBAMMA3QyODASpBAwDjEMMAoGA1UEAwwDdDI5MBKkEDAOMQwwCgYD --VQQDDAN0MzAwEqQQMA4xDDAKBgNVBAMMA3QzMTASpBAwDjEMMAoGA1UEAwwDdDMy --MBKkEDAOMQwwCgYDVQQDDAN0MzMwEqQQMA4xDDAKBgNVBAMMA3QzNDASpBAwDjEM --MAoGA1UEAwwDdDM1MBKkEDAOMQwwCgYDVQQDDAN0MzYwEqQQMA4xDDAKBgNVBAMM --A3QzNzASpBAwDjEMMAoGA1UEAwwDdDM4MBKkEDAOMQwwCgYDVQQDDAN0MzkwEqQQ --MA4xDDAKBgNVBAMMA3Q0MDASpBAwDjEMMAoGA1UEAwwDdDQxMBKkEDAOMQwwCgYD --VQQDDAN0NDIwEqQQMA4xDDAKBgNVBAMMA3Q0MzASpBAwDjEMMAoGA1UEAwwDdDQ0 --MBKkEDAOMQwwCgYDVQQDDAN0NDUwEqQQMA4xDDAKBgNVBAMMA3Q0NjASpBAwDjEM --MAoGA1UEAwwDdDQ3MBKkEDAOMQwwCgYDVQQDDAN0NDgwEqQQMA4xDDAKBgNVBAMM --A3Q0OTASpBAwDjEMMAoGA1UEAwwDdDUwMBKkEDAOMQwwCgYDVQQDDAN0NTEwEqQQ --MA4xDDAKBgNVBAMMA3Q1MjASpBAwDjEMMAoGA1UEAwwDdDUzMBKkEDAOMQwwCgYD --VQQDDAN0NTQwEqQQMA4xDDAKBgNVBAMMA3Q1NTASpBAwDjEMMAoGA1UEAwwDdDU2 --MBKkEDAOMQwwCgYDVQQDDAN0NTcwEqQQMA4xDDAKBgNVBAMMA3Q1ODASpBAwDjEM --MAoGA1UEAwwDdDU5MBKkEDAOMQwwCgYDVQQDDAN0NjAwEqQQMA4xDDAKBgNVBAMM --A3Q2MTASpBAwDjEMMAoGA1UEAwwDdDYyMBKkEDAOMQwwCgYDVQQDDAN0NjMwEqQQ --MA4xDDAKBgNVBAMMA3Q2NDASpBAwDjEMMAoGA1UEAwwDdDY1MBKkEDAOMQwwCgYD --VQQDDAN0NjYwEqQQMA4xDDAKBgNVBAMMA3Q2NzASpBAwDjEMMAoGA1UEAwwDdDY4 --MBKkEDAOMQwwCgYDVQQDDAN0NjkwEqQQMA4xDDAKBgNVBAMMA3Q3MDASpBAwDjEM --MAoGA1UEAwwDdDcxMBKkEDAOMQwwCgYDVQQDDAN0NzIwEqQQMA4xDDAKBgNVBAMM --A3Q3MzASpBAwDjEMMAoGA1UEAwwDdDc0MBKkEDAOMQwwCgYDVQQDDAN0NzUwEqQQ --MA4xDDAKBgNVBAMMA3Q3NjASpBAwDjEMMAoGA1UEAwwDdDc3MBKkEDAOMQwwCgYD --VQQDDAN0NzgwEqQQMA4xDDAKBgNVBAMMA3Q3OTASpBAwDjEMMAoGA1UEAwwDdDgw --MBKkEDAOMQwwCgYDVQQDDAN0ODEwEqQQMA4xDDAKBgNVBAMMA3Q4MjASpBAwDjEM --MAoGA1UEAwwDdDgzMBKkEDAOMQwwCgYDVQQDDAN0ODQwEqQQMA4xDDAKBgNVBAMM --A3Q4NTASpBAwDjEMMAoGA1UEAwwDdDg2MBKkEDAOMQwwCgYDVQQDDAN0ODcwEqQQ --MA4xDDAKBgNVBAMMA3Q4ODASpBAwDjEMMAoGA1UEAwwDdDg5MBKkEDAOMQwwCgYD --VQQDDAN0OTAwEqQQMA4xDDAKBgNVBAMMA3Q5MTASpBAwDjEMMAoGA1UEAwwDdDky --MBKkEDAOMQwwCgYDVQQDDAN0OTMwEqQQMA4xDDAKBgNVBAMMA3Q5NDASpBAwDjEM --MAoGA1UEAwwDdDk1MBKkEDAOMQwwCgYDVQQDDAN0OTYwEqQQMA4xDDAKBgNVBAMM --A3Q5NzASpBAwDjEMMAoGA1UEAwwDdDk4MBKkEDAOMQwwCgYDVQQDDAN0OTkwE6QR --MA8xDTALBgNVBAMMBHQxMDAwE6QRMA8xDTALBgNVBAMMBHQxMDEwE6QRMA8xDTAL --BgNVBAMMBHQxMDIwE6QRMA8xDTALBgNVBAMMBHQxMDMwE6QRMA8xDTALBgNVBAMM --BHQxMDQwE6QRMA8xDTALBgNVBAMMBHQxMDUwE6QRMA8xDTALBgNVBAMMBHQxMDYw --E6QRMA8xDTALBgNVBAMMBHQxMDcwE6QRMA8xDTALBgNVBAMMBHQxMDgwE6QRMA8x --DTALBgNVBAMMBHQxMDkwE6QRMA8xDTALBgNVBAMMBHQxMTAwE6QRMA8xDTALBgNV --BAMMBHQxMTEwE6QRMA8xDTALBgNVBAMMBHQxMTIwE6QRMA8xDTALBgNVBAMMBHQx --MTMwE6QRMA8xDTALBgNVBAMMBHQxMTQwE6QRMA8xDTALBgNVBAMMBHQxMTUwE6QR --MA8xDTALBgNVBAMMBHQxMTYwE6QRMA8xDTALBgNVBAMMBHQxMTcwE6QRMA8xDTAL --BgNVBAMMBHQxMTgwE6QRMA8xDTALBgNVBAMMBHQxMTkwE6QRMA8xDTALBgNVBAMM --BHQxMjAwE6QRMA8xDTALBgNVBAMMBHQxMjEwE6QRMA8xDTALBgNVBAMMBHQxMjIw --E6QRMA8xDTALBgNVBAMMBHQxMjMwE6QRMA8xDTALBgNVBAMMBHQxMjQwE6QRMA8x --DTALBgNVBAMMBHQxMjUwE6QRMA8xDTALBgNVBAMMBHQxMjYwE6QRMA8xDTALBgNV --BAMMBHQxMjcwE6QRMA8xDTALBgNVBAMMBHQxMjgwE6QRMA8xDTALBgNVBAMMBHQx --MjkwE6QRMA8xDTALBgNVBAMMBHQxMzAwE6QRMA8xDTALBgNVBAMMBHQxMzEwE6QR --MA8xDTALBgNVBAMMBHQxMzIwE6QRMA8xDTALBgNVBAMMBHQxMzMwE6QRMA8xDTAL --BgNVBAMMBHQxMzQwE6QRMA8xDTALBgNVBAMMBHQxMzUwE6QRMA8xDTALBgNVBAMM --BHQxMzYwE6QRMA8xDTALBgNVBAMMBHQxMzcwE6QRMA8xDTALBgNVBAMMBHQxMzgw --E6QRMA8xDTALBgNVBAMMBHQxMzkwE6QRMA8xDTALBgNVBAMMBHQxNDAwE6QRMA8x --DTALBgNVBAMMBHQxNDEwE6QRMA8xDTALBgNVBAMMBHQxNDIwE6QRMA8xDTALBgNV --BAMMBHQxNDMwE6QRMA8xDTALBgNVBAMMBHQxNDQwE6QRMA8xDTALBgNVBAMMBHQx --NDUwE6QRMA8xDTALBgNVBAMMBHQxNDYwE6QRMA8xDTALBgNVBAMMBHQxNDcwE6QR --MA8xDTALBgNVBAMMBHQxNDgwE6QRMA8xDTALBgNVBAMMBHQxNDkwE6QRMA8xDTAL --BgNVBAMMBHQxNTAwE6QRMA8xDTALBgNVBAMMBHQxNTEwE6QRMA8xDTALBgNVBAMM --BHQxNTIwE6QRMA8xDTALBgNVBAMMBHQxNTMwE6QRMA8xDTALBgNVBAMMBHQxNTQw --E6QRMA8xDTALBgNVBAMMBHQxNTUwE6QRMA8xDTALBgNVBAMMBHQxNTYwE6QRMA8x --DTALBgNVBAMMBHQxNTcwE6QRMA8xDTALBgNVBAMMBHQxNTgwE6QRMA8xDTALBgNV --BAMMBHQxNTkwE6QRMA8xDTALBgNVBAMMBHQxNjAwE6QRMA8xDTALBgNVBAMMBHQx --NjEwE6QRMA8xDTALBgNVBAMMBHQxNjIwE6QRMA8xDTALBgNVBAMMBHQxNjMwE6QR --MA8xDTALBgNVBAMMBHQxNjQwE6QRMA8xDTALBgNVBAMMBHQxNjUwE6QRMA8xDTAL --BgNVBAMMBHQxNjYwE6QRMA8xDTALBgNVBAMMBHQxNjcwE6QRMA8xDTALBgNVBAMM --BHQxNjgwE6QRMA8xDTALBgNVBAMMBHQxNjkwE6QRMA8xDTALBgNVBAMMBHQxNzAw --E6QRMA8xDTALBgNVBAMMBHQxNzEwE6QRMA8xDTALBgNVBAMMBHQxNzIwE6QRMA8x --DTALBgNVBAMMBHQxNzMwE6QRMA8xDTALBgNVBAMMBHQxNzQwE6QRMA8xDTALBgNV --BAMMBHQxNzUwE6QRMA8xDTALBgNVBAMMBHQxNzYwE6QRMA8xDTALBgNVBAMMBHQx --NzcwE6QRMA8xDTALBgNVBAMMBHQxNzgwE6QRMA8xDTALBgNVBAMMBHQxNzkwE6QR --MA8xDTALBgNVBAMMBHQxODAwE6QRMA8xDTALBgNVBAMMBHQxODEwE6QRMA8xDTAL --BgNVBAMMBHQxODIwE6QRMA8xDTALBgNVBAMMBHQxODMwE6QRMA8xDTALBgNVBAMM --BHQxODQwE6QRMA8xDTALBgNVBAMMBHQxODUwE6QRMA8xDTALBgNVBAMMBHQxODYw --E6QRMA8xDTALBgNVBAMMBHQxODcwE6QRMA8xDTALBgNVBAMMBHQxODgwE6QRMA8x --DTALBgNVBAMMBHQxODkwE6QRMA8xDTALBgNVBAMMBHQxOTAwE6QRMA8xDTALBgNV --BAMMBHQxOTEwE6QRMA8xDTALBgNVBAMMBHQxOTIwE6QRMA8xDTALBgNVBAMMBHQx --OTMwE6QRMA8xDTALBgNVBAMMBHQxOTQwE6QRMA8xDTALBgNVBAMMBHQxOTUwE6QR --MA8xDTALBgNVBAMMBHQxOTYwE6QRMA8xDTALBgNVBAMMBHQxOTcwE6QRMA8xDTAL --BgNVBAMMBHQxOTgwE6QRMA8xDTALBgNVBAMMBHQxOTkwE6QRMA8xDTALBgNVBAMM --BHQyMDAwE6QRMA8xDTALBgNVBAMMBHQyMDEwE6QRMA8xDTALBgNVBAMMBHQyMDIw --E6QRMA8xDTALBgNVBAMMBHQyMDMwE6QRMA8xDTALBgNVBAMMBHQyMDQwE6QRMA8x --DTALBgNVBAMMBHQyMDUwE6QRMA8xDTALBgNVBAMMBHQyMDYwE6QRMA8xDTALBgNV --BAMMBHQyMDcwE6QRMA8xDTALBgNVBAMMBHQyMDgwE6QRMA8xDTALBgNVBAMMBHQy --MDkwE6QRMA8xDTALBgNVBAMMBHQyMTAwE6QRMA8xDTALBgNVBAMMBHQyMTEwE6QR --MA8xDTALBgNVBAMMBHQyMTIwE6QRMA8xDTALBgNVBAMMBHQyMTMwE6QRMA8xDTAL --BgNVBAMMBHQyMTQwE6QRMA8xDTALBgNVBAMMBHQyMTUwE6QRMA8xDTALBgNVBAMM --BHQyMTYwE6QRMA8xDTALBgNVBAMMBHQyMTcwE6QRMA8xDTALBgNVBAMMBHQyMTgw --E6QRMA8xDTALBgNVBAMMBHQyMTkwE6QRMA8xDTALBgNVBAMMBHQyMjAwE6QRMA8x --DTALBgNVBAMMBHQyMjEwE6QRMA8xDTALBgNVBAMMBHQyMjIwE6QRMA8xDTALBgNV --BAMMBHQyMjMwE6QRMA8xDTALBgNVBAMMBHQyMjQwE6QRMA8xDTALBgNVBAMMBHQy --MjUwE6QRMA8xDTALBgNVBAMMBHQyMjYwE6QRMA8xDTALBgNVBAMMBHQyMjcwE6QR --MA8xDTALBgNVBAMMBHQyMjgwE6QRMA8xDTALBgNVBAMMBHQyMjkwE6QRMA8xDTAL --BgNVBAMMBHQyMzAwE6QRMA8xDTALBgNVBAMMBHQyMzEwE6QRMA8xDTALBgNVBAMM --BHQyMzIwE6QRMA8xDTALBgNVBAMMBHQyMzMwE6QRMA8xDTALBgNVBAMMBHQyMzQw --E6QRMA8xDTALBgNVBAMMBHQyMzUwE6QRMA8xDTALBgNVBAMMBHQyMzYwE6QRMA8x --DTALBgNVBAMMBHQyMzcwE6QRMA8xDTALBgNVBAMMBHQyMzgwE6QRMA8xDTALBgNV --BAMMBHQyMzkwE6QRMA8xDTALBgNVBAMMBHQyNDAwE6QRMA8xDTALBgNVBAMMBHQy --NDEwE6QRMA8xDTALBgNVBAMMBHQyNDIwE6QRMA8xDTALBgNVBAMMBHQyNDMwE6QR --MA8xDTALBgNVBAMMBHQyNDQwE6QRMA8xDTALBgNVBAMMBHQyNDUwE6QRMA8xDTAL --BgNVBAMMBHQyNDYwE6QRMA8xDTALBgNVBAMMBHQyNDcwE6QRMA8xDTALBgNVBAMM --BHQyNDgwE6QRMA8xDTALBgNVBAMMBHQyNDkwE6QRMA8xDTALBgNVBAMMBHQyNTAw --E6QRMA8xDTALBgNVBAMMBHQyNTEwE6QRMA8xDTALBgNVBAMMBHQyNTIwE6QRMA8x --DTALBgNVBAMMBHQyNTMwE6QRMA8xDTALBgNVBAMMBHQyNTQwE6QRMA8xDTALBgNV --BAMMBHQyNTUwE6QRMA8xDTALBgNVBAMMBHQyNTYwE6QRMA8xDTALBgNVBAMMBHQy --NTcwE6QRMA8xDTALBgNVBAMMBHQyNTgwE6QRMA8xDTALBgNVBAMMBHQyNTkwE6QR --MA8xDTALBgNVBAMMBHQyNjAwE6QRMA8xDTALBgNVBAMMBHQyNjEwE6QRMA8xDTAL --BgNVBAMMBHQyNjIwE6QRMA8xDTALBgNVBAMMBHQyNjMwE6QRMA8xDTALBgNVBAMM --BHQyNjQwE6QRMA8xDTALBgNVBAMMBHQyNjUwE6QRMA8xDTALBgNVBAMMBHQyNjYw --E6QRMA8xDTALBgNVBAMMBHQyNjcwE6QRMA8xDTALBgNVBAMMBHQyNjgwE6QRMA8x --DTALBgNVBAMMBHQyNjkwE6QRMA8xDTALBgNVBAMMBHQyNzAwE6QRMA8xDTALBgNV --BAMMBHQyNzEwE6QRMA8xDTALBgNVBAMMBHQyNzIwE6QRMA8xDTALBgNVBAMMBHQy --NzMwE6QRMA8xDTALBgNVBAMMBHQyNzQwE6QRMA8xDTALBgNVBAMMBHQyNzUwE6QR --MA8xDTALBgNVBAMMBHQyNzYwE6QRMA8xDTALBgNVBAMMBHQyNzcwE6QRMA8xDTAL --BgNVBAMMBHQyNzgwE6QRMA8xDTALBgNVBAMMBHQyNzkwE6QRMA8xDTALBgNVBAMM --BHQyODAwE6QRMA8xDTALBgNVBAMMBHQyODEwE6QRMA8xDTALBgNVBAMMBHQyODIw --E6QRMA8xDTALBgNVBAMMBHQyODMwE6QRMA8xDTALBgNVBAMMBHQyODQwE6QRMA8x --DTALBgNVBAMMBHQyODUwE6QRMA8xDTALBgNVBAMMBHQyODYwE6QRMA8xDTALBgNV --BAMMBHQyODcwE6QRMA8xDTALBgNVBAMMBHQyODgwE6QRMA8xDTALBgNVBAMMBHQy --ODkwE6QRMA8xDTALBgNVBAMMBHQyOTAwE6QRMA8xDTALBgNVBAMMBHQyOTEwE6QR --MA8xDTALBgNVBAMMBHQyOTIwE6QRMA8xDTALBgNVBAMMBHQyOTMwE6QRMA8xDTAL --BgNVBAMMBHQyOTQwE6QRMA8xDTALBgNVBAMMBHQyOTUwE6QRMA8xDTALBgNVBAMM --BHQyOTYwE6QRMA8xDTALBgNVBAMMBHQyOTcwE6QRMA8xDTALBgNVBAMMBHQyOTgw --E6QRMA8xDTALBgNVBAMMBHQyOTkwE6QRMA8xDTALBgNVBAMMBHQzMDAwE6QRMA8x --DTALBgNVBAMMBHQzMDEwE6QRMA8xDTALBgNVBAMMBHQzMDIwE6QRMA8xDTALBgNV --BAMMBHQzMDMwE6QRMA8xDTALBgNVBAMMBHQzMDQwE6QRMA8xDTALBgNVBAMMBHQz --MDUwE6QRMA8xDTALBgNVBAMMBHQzMDYwE6QRMA8xDTALBgNVBAMMBHQzMDcwE6QR --MA8xDTALBgNVBAMMBHQzMDgwE6QRMA8xDTALBgNVBAMMBHQzMDkwE6QRMA8xDTAL --BgNVBAMMBHQzMTAwE6QRMA8xDTALBgNVBAMMBHQzMTEwE6QRMA8xDTALBgNVBAMM --BHQzMTIwE6QRMA8xDTALBgNVBAMMBHQzMTMwE6QRMA8xDTALBgNVBAMMBHQzMTQw --E6QRMA8xDTALBgNVBAMMBHQzMTUwE6QRMA8xDTALBgNVBAMMBHQzMTYwE6QRMA8x --DTALBgNVBAMMBHQzMTcwE6QRMA8xDTALBgNVBAMMBHQzMTgwE6QRMA8xDTALBgNV --BAMMBHQzMTkwE6QRMA8xDTALBgNVBAMMBHQzMjAwE6QRMA8xDTALBgNVBAMMBHQz --MjEwE6QRMA8xDTALBgNVBAMMBHQzMjIwE6QRMA8xDTALBgNVBAMMBHQzMjMwE6QR --MA8xDTALBgNVBAMMBHQzMjQwE6QRMA8xDTALBgNVBAMMBHQzMjUwE6QRMA8xDTAL --BgNVBAMMBHQzMjYwE6QRMA8xDTALBgNVBAMMBHQzMjcwE6QRMA8xDTALBgNVBAMM --BHQzMjgwE6QRMA8xDTALBgNVBAMMBHQzMjkwE6QRMA8xDTALBgNVBAMMBHQzMzAw --E6QRMA8xDTALBgNVBAMMBHQzMzEwE6QRMA8xDTALBgNVBAMMBHQzMzIwE6QRMA8x --DTALBgNVBAMMBHQzMzMwE6QRMA8xDTALBgNVBAMMBHQzMzQwE6QRMA8xDTALBgNV --BAMMBHQzMzUwE6QRMA8xDTALBgNVBAMMBHQzMzYwE6QRMA8xDTALBgNVBAMMBHQz --MzcwE6QRMA8xDTALBgNVBAMMBHQzMzgwE6QRMA8xDTALBgNVBAMMBHQzMzkwE6QR --MA8xDTALBgNVBAMMBHQzNDAwE6QRMA8xDTALBgNVBAMMBHQzNDEwE6QRMA8xDTAL --BgNVBAMMBHQzNDIwE6QRMA8xDTALBgNVBAMMBHQzNDMwE6QRMA8xDTALBgNVBAMM --BHQzNDQwE6QRMA8xDTALBgNVBAMMBHQzNDUwE6QRMA8xDTALBgNVBAMMBHQzNDYw --E6QRMA8xDTALBgNVBAMMBHQzNDcwE6QRMA8xDTALBgNVBAMMBHQzNDgwE6QRMA8x --DTALBgNVBAMMBHQzNDkwE6QRMA8xDTALBgNVBAMMBHQzNTAwE6QRMA8xDTALBgNV --BAMMBHQzNTEwE6QRMA8xDTALBgNVBAMMBHQzNTIwE6QRMA8xDTALBgNVBAMMBHQz --NTMwE6QRMA8xDTALBgNVBAMMBHQzNTQwE6QRMA8xDTALBgNVBAMMBHQzNTUwE6QR --MA8xDTALBgNVBAMMBHQzNTYwE6QRMA8xDTALBgNVBAMMBHQzNTcwE6QRMA8xDTAL --BgNVBAMMBHQzNTgwE6QRMA8xDTALBgNVBAMMBHQzNTkwE6QRMA8xDTALBgNVBAMM --BHQzNjAwE6QRMA8xDTALBgNVBAMMBHQzNjEwE6QRMA8xDTALBgNVBAMMBHQzNjIw --E6QRMA8xDTALBgNVBAMMBHQzNjMwE6QRMA8xDTALBgNVBAMMBHQzNjQwE6QRMA8x --DTALBgNVBAMMBHQzNjUwE6QRMA8xDTALBgNVBAMMBHQzNjYwE6QRMA8xDTALBgNV --BAMMBHQzNjcwE6QRMA8xDTALBgNVBAMMBHQzNjgwE6QRMA8xDTALBgNVBAMMBHQz --NjkwE6QRMA8xDTALBgNVBAMMBHQzNzAwE6QRMA8xDTALBgNVBAMMBHQzNzEwE6QR --MA8xDTALBgNVBAMMBHQzNzIwE6QRMA8xDTALBgNVBAMMBHQzNzMwE6QRMA8xDTAL --BgNVBAMMBHQzNzQwE6QRMA8xDTALBgNVBAMMBHQzNzUwE6QRMA8xDTALBgNVBAMM --BHQzNzYwE6QRMA8xDTALBgNVBAMMBHQzNzcwE6QRMA8xDTALBgNVBAMMBHQzNzgw --E6QRMA8xDTALBgNVBAMMBHQzNzkwE6QRMA8xDTALBgNVBAMMBHQzODAwE6QRMA8x --DTALBgNVBAMMBHQzODEwE6QRMA8xDTALBgNVBAMMBHQzODIwE6QRMA8xDTALBgNV --BAMMBHQzODMwE6QRMA8xDTALBgNVBAMMBHQzODQwE6QRMA8xDTALBgNVBAMMBHQz --ODUwE6QRMA8xDTALBgNVBAMMBHQzODYwE6QRMA8xDTALBgNVBAMMBHQzODcwE6QR --MA8xDTALBgNVBAMMBHQzODgwE6QRMA8xDTALBgNVBAMMBHQzODkwE6QRMA8xDTAL --BgNVBAMMBHQzOTAwE6QRMA8xDTALBgNVBAMMBHQzOTEwE6QRMA8xDTALBgNVBAMM --BHQzOTIwE6QRMA8xDTALBgNVBAMMBHQzOTMwE6QRMA8xDTALBgNVBAMMBHQzOTQw --E6QRMA8xDTALBgNVBAMMBHQzOTUwE6QRMA8xDTALBgNVBAMMBHQzOTYwE6QRMA8x --DTALBgNVBAMMBHQzOTcwE6QRMA8xDTALBgNVBAMMBHQzOTgwE6QRMA8xDTALBgNV --BAMMBHQzOTkwE6QRMA8xDTALBgNVBAMMBHQ0MDAwE6QRMA8xDTALBgNVBAMMBHQ0 --MDEwE6QRMA8xDTALBgNVBAMMBHQ0MDIwE6QRMA8xDTALBgNVBAMMBHQ0MDMwE6QR --MA8xDTALBgNVBAMMBHQ0MDQwE6QRMA8xDTALBgNVBAMMBHQ0MDUwE6QRMA8xDTAL --BgNVBAMMBHQ0MDYwE6QRMA8xDTALBgNVBAMMBHQ0MDcwE6QRMA8xDTALBgNVBAMM --BHQ0MDgwE6QRMA8xDTALBgNVBAMMBHQ0MDkwE6QRMA8xDTALBgNVBAMMBHQ0MTAw --E6QRMA8xDTALBgNVBAMMBHQ0MTEwE6QRMA8xDTALBgNVBAMMBHQ0MTIwE6QRMA8x --DTALBgNVBAMMBHQ0MTMwE6QRMA8xDTALBgNVBAMMBHQ0MTQwE6QRMA8xDTALBgNV --BAMMBHQ0MTUwE6QRMA8xDTALBgNVBAMMBHQ0MTYwE6QRMA8xDTALBgNVBAMMBHQ0 --MTcwE6QRMA8xDTALBgNVBAMMBHQ0MTgwE6QRMA8xDTALBgNVBAMMBHQ0MTkwE6QR --MA8xDTALBgNVBAMMBHQ0MjAwE6QRMA8xDTALBgNVBAMMBHQ0MjEwE6QRMA8xDTAL --BgNVBAMMBHQ0MjIwE6QRMA8xDTALBgNVBAMMBHQ0MjMwE6QRMA8xDTALBgNVBAMM --BHQ0MjQwE6QRMA8xDTALBgNVBAMMBHQ0MjUwE6QRMA8xDTALBgNVBAMMBHQ0MjYw --E6QRMA8xDTALBgNVBAMMBHQ0MjcwE6QRMA8xDTALBgNVBAMMBHQ0MjgwE6QRMA8x --DTALBgNVBAMMBHQ0MjkwE6QRMA8xDTALBgNVBAMMBHQ0MzAwE6QRMA8xDTALBgNV --BAMMBHQ0MzEwE6QRMA8xDTALBgNVBAMMBHQ0MzIwE6QRMA8xDTALBgNVBAMMBHQ0 --MzMwE6QRMA8xDTALBgNVBAMMBHQ0MzQwE6QRMA8xDTALBgNVBAMMBHQ0MzUwE6QR --MA8xDTALBgNVBAMMBHQ0MzYwE6QRMA8xDTALBgNVBAMMBHQ0MzcwE6QRMA8xDTAL --BgNVBAMMBHQ0MzgwE6QRMA8xDTALBgNVBAMMBHQ0MzkwE6QRMA8xDTALBgNVBAMM --BHQ0NDAwE6QRMA8xDTALBgNVBAMMBHQ0NDEwE6QRMA8xDTALBgNVBAMMBHQ0NDIw --E6QRMA8xDTALBgNVBAMMBHQ0NDMwE6QRMA8xDTALBgNVBAMMBHQ0NDQwE6QRMA8x --DTALBgNVBAMMBHQ0NDUwE6QRMA8xDTALBgNVBAMMBHQ0NDYwE6QRMA8xDTALBgNV --BAMMBHQ0NDcwE6QRMA8xDTALBgNVBAMMBHQ0NDgwE6QRMA8xDTALBgNVBAMMBHQ0 --NDkwE6QRMA8xDTALBgNVBAMMBHQ0NTAwE6QRMA8xDTALBgNVBAMMBHQ0NTEwE6QR --MA8xDTALBgNVBAMMBHQ0NTIwE6QRMA8xDTALBgNVBAMMBHQ0NTMwE6QRMA8xDTAL --BgNVBAMMBHQ0NTQwE6QRMA8xDTALBgNVBAMMBHQ0NTUwE6QRMA8xDTALBgNVBAMM --BHQ0NTYwE6QRMA8xDTALBgNVBAMMBHQ0NTcwE6QRMA8xDTALBgNVBAMMBHQ0NTgw --E6QRMA8xDTALBgNVBAMMBHQ0NTkwE6QRMA8xDTALBgNVBAMMBHQ0NjAwE6QRMA8x --DTALBgNVBAMMBHQ0NjEwE6QRMA8xDTALBgNVBAMMBHQ0NjIwE6QRMA8xDTALBgNV --BAMMBHQ0NjMwE6QRMA8xDTALBgNVBAMMBHQ0NjQwE6QRMA8xDTALBgNVBAMMBHQ0 --NjUwE6QRMA8xDTALBgNVBAMMBHQ0NjYwE6QRMA8xDTALBgNVBAMMBHQ0NjcwE6QR --MA8xDTALBgNVBAMMBHQ0NjgwE6QRMA8xDTALBgNVBAMMBHQ0NjkwE6QRMA8xDTAL --BgNVBAMMBHQ0NzAwE6QRMA8xDTALBgNVBAMMBHQ0NzEwE6QRMA8xDTALBgNVBAMM --BHQ0NzIwE6QRMA8xDTALBgNVBAMMBHQ0NzMwE6QRMA8xDTALBgNVBAMMBHQ0NzQw --E6QRMA8xDTALBgNVBAMMBHQ0NzUwE6QRMA8xDTALBgNVBAMMBHQ0NzYwE6QRMA8x --DTALBgNVBAMMBHQ0NzcwE6QRMA8xDTALBgNVBAMMBHQ0NzgwE6QRMA8xDTALBgNV --BAMMBHQ0NzkwE6QRMA8xDTALBgNVBAMMBHQ0ODAwE6QRMA8xDTALBgNVBAMMBHQ0 --ODEwE6QRMA8xDTALBgNVBAMMBHQ0ODIwE6QRMA8xDTALBgNVBAMMBHQ0ODMwE6QR --MA8xDTALBgNVBAMMBHQ0ODQwE6QRMA8xDTALBgNVBAMMBHQ0ODUwE6QRMA8xDTAL --BgNVBAMMBHQ0ODYwE6QRMA8xDTALBgNVBAMMBHQ0ODcwE6QRMA8xDTALBgNVBAMM --BHQ0ODgwE6QRMA8xDTALBgNVBAMMBHQ0ODkwE6QRMA8xDTALBgNVBAMMBHQ0OTAw --E6QRMA8xDTALBgNVBAMMBHQ0OTEwE6QRMA8xDTALBgNVBAMMBHQ0OTIwE6QRMA8x --DTALBgNVBAMMBHQ0OTMwE6QRMA8xDTALBgNVBAMMBHQ0OTQwE6QRMA8xDTALBgNV --BAMMBHQ0OTUwE6QRMA8xDTALBgNVBAMMBHQ0OTYwE6QRMA8xDTALBgNVBAMMBHQ0 --OTcwE6QRMA8xDTALBgNVBAMMBHQ0OTgwE6QRMA8xDTALBgNVBAMMBHQ0OTkwE6QR --MA8xDTALBgNVBAMMBHQ1MDAwE6QRMA8xDTALBgNVBAMMBHQ1MDEwE6QRMA8xDTAL --BgNVBAMMBHQ1MDIwE6QRMA8xDTALBgNVBAMMBHQ1MDMwE6QRMA8xDTALBgNVBAMM --BHQ1MDQwE6QRMA8xDTALBgNVBAMMBHQ1MDUwE6QRMA8xDTALBgNVBAMMBHQ1MDYw --E6QRMA8xDTALBgNVBAMMBHQ1MDcwE6QRMA8xDTALBgNVBAMMBHQ1MDgwE6QRMA8x --DTALBgNVBAMMBHQ1MDkwE6QRMA8xDTALBgNVBAMMBHQ1MTAwE6QRMA8xDTALBgNV --BAMMBHQ1MTEwE6QRMA8xDTALBgNVBAMMBHQ1MTIwE6QRMA8xDTALBgNVBAMMBHQ1 --MTMwE6QRMA8xDTALBgNVBAMMBHQ1MTQwE6QRMA8xDTALBgNVBAMMBHQ1MTUwE6QR --MA8xDTALBgNVBAMMBHQ1MTYwE6QRMA8xDTALBgNVBAMMBHQ1MTcwE6QRMA8xDTAL --BgNVBAMMBHQ1MTgwE6QRMA8xDTALBgNVBAMMBHQ1MTkwE6QRMA8xDTALBgNVBAMM --BHQ1MjAwE6QRMA8xDTALBgNVBAMMBHQ1MjEwE6QRMA8xDTALBgNVBAMMBHQ1MjIw --E6QRMA8xDTALBgNVBAMMBHQ1MjMwE6QRMA8xDTALBgNVBAMMBHQ1MjQwE6QRMA8x --DTALBgNVBAMMBHQ1MjUwE6QRMA8xDTALBgNVBAMMBHQ1MjYwE6QRMA8xDTALBgNV --BAMMBHQ1MjcwE6QRMA8xDTALBgNVBAMMBHQ1MjgwE6QRMA8xDTALBgNVBAMMBHQ1 --MjkwE6QRMA8xDTALBgNVBAMMBHQ1MzAwE6QRMA8xDTALBgNVBAMMBHQ1MzEwE6QR --MA8xDTALBgNVBAMMBHQ1MzIwE6QRMA8xDTALBgNVBAMMBHQ1MzMwE6QRMA8xDTAL --BgNVBAMMBHQ1MzQwE6QRMA8xDTALBgNVBAMMBHQ1MzUwE6QRMA8xDTALBgNVBAMM --BHQ1MzYwE6QRMA8xDTALBgNVBAMMBHQ1MzcwE6QRMA8xDTALBgNVBAMMBHQ1Mzgw --E6QRMA8xDTALBgNVBAMMBHQ1MzkwE6QRMA8xDTALBgNVBAMMBHQ1NDAwE6QRMA8x --DTALBgNVBAMMBHQ1NDEwE6QRMA8xDTALBgNVBAMMBHQ1NDIwE6QRMA8xDTALBgNV --BAMMBHQ1NDMwE6QRMA8xDTALBgNVBAMMBHQ1NDQwE6QRMA8xDTALBgNVBAMMBHQ1 --NDUwE6QRMA8xDTALBgNVBAMMBHQ1NDYwE6QRMA8xDTALBgNVBAMMBHQ1NDcwE6QR --MA8xDTALBgNVBAMMBHQ1NDgwE6QRMA8xDTALBgNVBAMMBHQ1NDkwE6QRMA8xDTAL --BgNVBAMMBHQ1NTAwE6QRMA8xDTALBgNVBAMMBHQ1NTEwE6QRMA8xDTALBgNVBAMM --BHQ1NTIwE6QRMA8xDTALBgNVBAMMBHQ1NTMwE6QRMA8xDTALBgNVBAMMBHQ1NTQw --E6QRMA8xDTALBgNVBAMMBHQ1NTUwE6QRMA8xDTALBgNVBAMMBHQ1NTYwE6QRMA8x --DTALBgNVBAMMBHQ1NTcwE6QRMA8xDTALBgNVBAMMBHQ1NTgwE6QRMA8xDTALBgNV --BAMMBHQ1NTkwE6QRMA8xDTALBgNVBAMMBHQ1NjAwE6QRMA8xDTALBgNVBAMMBHQ1 --NjEwE6QRMA8xDTALBgNVBAMMBHQ1NjIwE6QRMA8xDTALBgNVBAMMBHQ1NjMwE6QR --MA8xDTALBgNVBAMMBHQ1NjQwE6QRMA8xDTALBgNVBAMMBHQ1NjUwE6QRMA8xDTAL --BgNVBAMMBHQ1NjYwE6QRMA8xDTALBgNVBAMMBHQ1NjcwE6QRMA8xDTALBgNVBAMM --BHQ1NjgwE6QRMA8xDTALBgNVBAMMBHQ1NjkwE6QRMA8xDTALBgNVBAMMBHQ1NzAw --E6QRMA8xDTALBgNVBAMMBHQ1NzEwE6QRMA8xDTALBgNVBAMMBHQ1NzIwE6QRMA8x --DTALBgNVBAMMBHQ1NzMwE6QRMA8xDTALBgNVBAMMBHQ1NzQwE6QRMA8xDTALBgNV --BAMMBHQ1NzUwE6QRMA8xDTALBgNVBAMMBHQ1NzYwE6QRMA8xDTALBgNVBAMMBHQ1 --NzcwE6QRMA8xDTALBgNVBAMMBHQ1NzgwE6QRMA8xDTALBgNVBAMMBHQ1NzkwE6QR --MA8xDTALBgNVBAMMBHQ1ODAwE6QRMA8xDTALBgNVBAMMBHQ1ODEwE6QRMA8xDTAL --BgNVBAMMBHQ1ODIwE6QRMA8xDTALBgNVBAMMBHQ1ODMwE6QRMA8xDTALBgNVBAMM --BHQ1ODQwE6QRMA8xDTALBgNVBAMMBHQ1ODUwE6QRMA8xDTALBgNVBAMMBHQ1ODYw --E6QRMA8xDTALBgNVBAMMBHQ1ODcwE6QRMA8xDTALBgNVBAMMBHQ1ODgwE6QRMA8x --DTALBgNVBAMMBHQ1ODkwE6QRMA8xDTALBgNVBAMMBHQ1OTAwE6QRMA8xDTALBgNV --BAMMBHQ1OTEwE6QRMA8xDTALBgNVBAMMBHQ1OTIwE6QRMA8xDTALBgNVBAMMBHQ1 --OTMwE6QRMA8xDTALBgNVBAMMBHQ1OTQwE6QRMA8xDTALBgNVBAMMBHQ1OTUwE6QR --MA8xDTALBgNVBAMMBHQ1OTYwE6QRMA8xDTALBgNVBAMMBHQ1OTcwE6QRMA8xDTAL --BgNVBAMMBHQ1OTgwE6QRMA8xDTALBgNVBAMMBHQ1OTkwE6QRMA8xDTALBgNVBAMM --BHQ2MDAwE6QRMA8xDTALBgNVBAMMBHQ2MDEwE6QRMA8xDTALBgNVBAMMBHQ2MDIw --E6QRMA8xDTALBgNVBAMMBHQ2MDMwE6QRMA8xDTALBgNVBAMMBHQ2MDQwE6QRMA8x --DTALBgNVBAMMBHQ2MDUwE6QRMA8xDTALBgNVBAMMBHQ2MDYwE6QRMA8xDTALBgNV --BAMMBHQ2MDcwE6QRMA8xDTALBgNVBAMMBHQ2MDgwE6QRMA8xDTALBgNVBAMMBHQ2 --MDkwE6QRMA8xDTALBgNVBAMMBHQ2MTAwE6QRMA8xDTALBgNVBAMMBHQ2MTEwE6QR --MA8xDTALBgNVBAMMBHQ2MTIwE6QRMA8xDTALBgNVBAMMBHQ2MTMwE6QRMA8xDTAL --BgNVBAMMBHQ2MTQwE6QRMA8xDTALBgNVBAMMBHQ2MTUwE6QRMA8xDTALBgNVBAMM --BHQ2MTYwE6QRMA8xDTALBgNVBAMMBHQ2MTcwE6QRMA8xDTALBgNVBAMMBHQ2MTgw --E6QRMA8xDTALBgNVBAMMBHQ2MTkwE6QRMA8xDTALBgNVBAMMBHQ2MjAwE6QRMA8x --DTALBgNVBAMMBHQ2MjEwE6QRMA8xDTALBgNVBAMMBHQ2MjIwE6QRMA8xDTALBgNV --BAMMBHQ2MjMwE6QRMA8xDTALBgNVBAMMBHQ2MjQwE6QRMA8xDTALBgNVBAMMBHQ2 --MjUwE6QRMA8xDTALBgNVBAMMBHQ2MjYwE6QRMA8xDTALBgNVBAMMBHQ2MjcwE6QR --MA8xDTALBgNVBAMMBHQ2MjgwE6QRMA8xDTALBgNVBAMMBHQ2MjkwE6QRMA8xDTAL --BgNVBAMMBHQ2MzAwE6QRMA8xDTALBgNVBAMMBHQ2MzEwE6QRMA8xDTALBgNVBAMM --BHQ2MzIwE6QRMA8xDTALBgNVBAMMBHQ2MzMwE6QRMA8xDTALBgNVBAMMBHQ2MzQw --E6QRMA8xDTALBgNVBAMMBHQ2MzUwE6QRMA8xDTALBgNVBAMMBHQ2MzYwE6QRMA8x --DTALBgNVBAMMBHQ2MzcwE6QRMA8xDTALBgNVBAMMBHQ2MzgwE6QRMA8xDTALBgNV --BAMMBHQ2MzkwE6QRMA8xDTALBgNVBAMMBHQ2NDAwE6QRMA8xDTALBgNVBAMMBHQ2 --NDEwE6QRMA8xDTALBgNVBAMMBHQ2NDIwE6QRMA8xDTALBgNVBAMMBHQ2NDMwE6QR --MA8xDTALBgNVBAMMBHQ2NDQwE6QRMA8xDTALBgNVBAMMBHQ2NDUwE6QRMA8xDTAL --BgNVBAMMBHQ2NDYwE6QRMA8xDTALBgNVBAMMBHQ2NDcwE6QRMA8xDTALBgNVBAMM --BHQ2NDgwE6QRMA8xDTALBgNVBAMMBHQ2NDkwE6QRMA8xDTALBgNVBAMMBHQ2NTAw --E6QRMA8xDTALBgNVBAMMBHQ2NTEwE6QRMA8xDTALBgNVBAMMBHQ2NTIwE6QRMA8x --DTALBgNVBAMMBHQ2NTMwE6QRMA8xDTALBgNVBAMMBHQ2NTQwE6QRMA8xDTALBgNV --BAMMBHQ2NTUwE6QRMA8xDTALBgNVBAMMBHQ2NTYwE6QRMA8xDTALBgNVBAMMBHQ2 --NTcwE6QRMA8xDTALBgNVBAMMBHQ2NTgwE6QRMA8xDTALBgNVBAMMBHQ2NTkwE6QR --MA8xDTALBgNVBAMMBHQ2NjAwE6QRMA8xDTALBgNVBAMMBHQ2NjEwE6QRMA8xDTAL --BgNVBAMMBHQ2NjIwE6QRMA8xDTALBgNVBAMMBHQ2NjMwE6QRMA8xDTALBgNVBAMM --BHQ2NjQwE6QRMA8xDTALBgNVBAMMBHQ2NjUwE6QRMA8xDTALBgNVBAMMBHQ2NjYw --E6QRMA8xDTALBgNVBAMMBHQ2NjcwE6QRMA8xDTALBgNVBAMMBHQ2NjgwE6QRMA8x --DTALBgNVBAMMBHQ2NjkwE6QRMA8xDTALBgNVBAMMBHQ2NzAwE6QRMA8xDTALBgNV --BAMMBHQ2NzEwE6QRMA8xDTALBgNVBAMMBHQ2NzIwE6QRMA8xDTALBgNVBAMMBHQ2 --NzMwE6QRMA8xDTALBgNVBAMMBHQ2NzQwE6QRMA8xDTALBgNVBAMMBHQ2NzUwE6QR --MA8xDTALBgNVBAMMBHQ2NzYwE6QRMA8xDTALBgNVBAMMBHQ2NzcwE6QRMA8xDTAL --BgNVBAMMBHQ2NzgwE6QRMA8xDTALBgNVBAMMBHQ2NzkwE6QRMA8xDTALBgNVBAMM --BHQ2ODAwE6QRMA8xDTALBgNVBAMMBHQ2ODEwE6QRMA8xDTALBgNVBAMMBHQ2ODIw --E6QRMA8xDTALBgNVBAMMBHQ2ODMwE6QRMA8xDTALBgNVBAMMBHQ2ODQwE6QRMA8x --DTALBgNVBAMMBHQ2ODUwE6QRMA8xDTALBgNVBAMMBHQ2ODYwE6QRMA8xDTALBgNV --BAMMBHQ2ODcwE6QRMA8xDTALBgNVBAMMBHQ2ODgwE6QRMA8xDTALBgNVBAMMBHQ2 --ODkwE6QRMA8xDTALBgNVBAMMBHQ2OTAwE6QRMA8xDTALBgNVBAMMBHQ2OTEwE6QR --MA8xDTALBgNVBAMMBHQ2OTIwE6QRMA8xDTALBgNVBAMMBHQ2OTMwE6QRMA8xDTAL --BgNVBAMMBHQ2OTQwE6QRMA8xDTALBgNVBAMMBHQ2OTUwE6QRMA8xDTALBgNVBAMM --BHQ2OTYwE6QRMA8xDTALBgNVBAMMBHQ2OTcwE6QRMA8xDTALBgNVBAMMBHQ2OTgw --E6QRMA8xDTALBgNVBAMMBHQ2OTkwE6QRMA8xDTALBgNVBAMMBHQ3MDAwE6QRMA8x --DTALBgNVBAMMBHQ3MDEwE6QRMA8xDTALBgNVBAMMBHQ3MDIwE6QRMA8xDTALBgNV --BAMMBHQ3MDMwE6QRMA8xDTALBgNVBAMMBHQ3MDQwE6QRMA8xDTALBgNVBAMMBHQ3 --MDUwE6QRMA8xDTALBgNVBAMMBHQ3MDYwE6QRMA8xDTALBgNVBAMMBHQ3MDcwE6QR --MA8xDTALBgNVBAMMBHQ3MDgwE6QRMA8xDTALBgNVBAMMBHQ3MDkwE6QRMA8xDTAL --BgNVBAMMBHQ3MTAwE6QRMA8xDTALBgNVBAMMBHQ3MTEwE6QRMA8xDTALBgNVBAMM --BHQ3MTIwE6QRMA8xDTALBgNVBAMMBHQ3MTMwE6QRMA8xDTALBgNVBAMMBHQ3MTQw --E6QRMA8xDTALBgNVBAMMBHQ3MTUwE6QRMA8xDTALBgNVBAMMBHQ3MTYwE6QRMA8x --DTALBgNVBAMMBHQ3MTcwE6QRMA8xDTALBgNVBAMMBHQ3MTgwE6QRMA8xDTALBgNV --BAMMBHQ3MTkwE6QRMA8xDTALBgNVBAMMBHQ3MjAwE6QRMA8xDTALBgNVBAMMBHQ3 --MjEwE6QRMA8xDTALBgNVBAMMBHQ3MjIwE6QRMA8xDTALBgNVBAMMBHQ3MjMwE6QR --MA8xDTALBgNVBAMMBHQ3MjQwE6QRMA8xDTALBgNVBAMMBHQ3MjUwE6QRMA8xDTAL --BgNVBAMMBHQ3MjYwE6QRMA8xDTALBgNVBAMMBHQ3MjcwE6QRMA8xDTALBgNVBAMM --BHQ3MjgwE6QRMA8xDTALBgNVBAMMBHQ3MjkwE6QRMA8xDTALBgNVBAMMBHQ3MzAw --E6QRMA8xDTALBgNVBAMMBHQ3MzEwE6QRMA8xDTALBgNVBAMMBHQ3MzIwE6QRMA8x --DTALBgNVBAMMBHQ3MzMwE6QRMA8xDTALBgNVBAMMBHQ3MzQwE6QRMA8xDTALBgNV --BAMMBHQ3MzUwE6QRMA8xDTALBgNVBAMMBHQ3MzYwE6QRMA8xDTALBgNVBAMMBHQ3 --MzcwE6QRMA8xDTALBgNVBAMMBHQ3MzgwE6QRMA8xDTALBgNVBAMMBHQ3MzkwE6QR --MA8xDTALBgNVBAMMBHQ3NDAwE6QRMA8xDTALBgNVBAMMBHQ3NDEwE6QRMA8xDTAL --BgNVBAMMBHQ3NDIwE6QRMA8xDTALBgNVBAMMBHQ3NDMwE6QRMA8xDTALBgNVBAMM --BHQ3NDQwE6QRMA8xDTALBgNVBAMMBHQ3NDUwE6QRMA8xDTALBgNVBAMMBHQ3NDYw --E6QRMA8xDTALBgNVBAMMBHQ3NDcwE6QRMA8xDTALBgNVBAMMBHQ3NDgwE6QRMA8x --DTALBgNVBAMMBHQ3NDkwE6QRMA8xDTALBgNVBAMMBHQ3NTAwE6QRMA8xDTALBgNV --BAMMBHQ3NTEwE6QRMA8xDTALBgNVBAMMBHQ3NTIwE6QRMA8xDTALBgNVBAMMBHQ3 --NTMwE6QRMA8xDTALBgNVBAMMBHQ3NTQwE6QRMA8xDTALBgNVBAMMBHQ3NTUwE6QR --MA8xDTALBgNVBAMMBHQ3NTYwE6QRMA8xDTALBgNVBAMMBHQ3NTcwE6QRMA8xDTAL --BgNVBAMMBHQ3NTgwE6QRMA8xDTALBgNVBAMMBHQ3NTkwE6QRMA8xDTALBgNVBAMM --BHQ3NjAwE6QRMA8xDTALBgNVBAMMBHQ3NjEwE6QRMA8xDTALBgNVBAMMBHQ3NjIw --E6QRMA8xDTALBgNVBAMMBHQ3NjMwE6QRMA8xDTALBgNVBAMMBHQ3NjQwE6QRMA8x --DTALBgNVBAMMBHQ3NjUwE6QRMA8xDTALBgNVBAMMBHQ3NjYwE6QRMA8xDTALBgNV --BAMMBHQ3NjcwE6QRMA8xDTALBgNVBAMMBHQ3NjgwE6QRMA8xDTALBgNVBAMMBHQ3 --NjkwE6QRMA8xDTALBgNVBAMMBHQ3NzAwE6QRMA8xDTALBgNVBAMMBHQ3NzEwE6QR --MA8xDTALBgNVBAMMBHQ3NzIwE6QRMA8xDTALBgNVBAMMBHQ3NzMwE6QRMA8xDTAL --BgNVBAMMBHQ3NzQwE6QRMA8xDTALBgNVBAMMBHQ3NzUwE6QRMA8xDTALBgNVBAMM --BHQ3NzYwE6QRMA8xDTALBgNVBAMMBHQ3NzcwE6QRMA8xDTALBgNVBAMMBHQ3Nzgw --E6QRMA8xDTALBgNVBAMMBHQ3NzkwE6QRMA8xDTALBgNVBAMMBHQ3ODAwE6QRMA8x --DTALBgNVBAMMBHQ3ODEwE6QRMA8xDTALBgNVBAMMBHQ3ODIwE6QRMA8xDTALBgNV --BAMMBHQ3ODMwE6QRMA8xDTALBgNVBAMMBHQ3ODQwE6QRMA8xDTALBgNVBAMMBHQ3 --ODUwE6QRMA8xDTALBgNVBAMMBHQ3ODYwE6QRMA8xDTALBgNVBAMMBHQ3ODcwE6QR --MA8xDTALBgNVBAMMBHQ3ODgwE6QRMA8xDTALBgNVBAMMBHQ3ODkwE6QRMA8xDTAL --BgNVBAMMBHQ3OTAwE6QRMA8xDTALBgNVBAMMBHQ3OTEwE6QRMA8xDTALBgNVBAMM --BHQ3OTIwE6QRMA8xDTALBgNVBAMMBHQ3OTMwE6QRMA8xDTALBgNVBAMMBHQ3OTQw --E6QRMA8xDTALBgNVBAMMBHQ3OTUwE6QRMA8xDTALBgNVBAMMBHQ3OTYwE6QRMA8x --DTALBgNVBAMMBHQ3OTcwE6QRMA8xDTALBgNVBAMMBHQ3OTgwE6QRMA8xDTALBgNV --BAMMBHQ3OTkwE6QRMA8xDTALBgNVBAMMBHQ4MDAwE6QRMA8xDTALBgNVBAMMBHQ4 --MDEwE6QRMA8xDTALBgNVBAMMBHQ4MDIwE6QRMA8xDTALBgNVBAMMBHQ4MDMwE6QR --MA8xDTALBgNVBAMMBHQ4MDQwE6QRMA8xDTALBgNVBAMMBHQ4MDUwE6QRMA8xDTAL --BgNVBAMMBHQ4MDYwE6QRMA8xDTALBgNVBAMMBHQ4MDcwE6QRMA8xDTALBgNVBAMM --BHQ4MDgwE6QRMA8xDTALBgNVBAMMBHQ4MDkwE6QRMA8xDTALBgNVBAMMBHQ4MTAw --E6QRMA8xDTALBgNVBAMMBHQ4MTEwE6QRMA8xDTALBgNVBAMMBHQ4MTIwE6QRMA8x --DTALBgNVBAMMBHQ4MTMwE6QRMA8xDTALBgNVBAMMBHQ4MTQwE6QRMA8xDTALBgNV --BAMMBHQ4MTUwE6QRMA8xDTALBgNVBAMMBHQ4MTYwE6QRMA8xDTALBgNVBAMMBHQ4 --MTcwE6QRMA8xDTALBgNVBAMMBHQ4MTgwE6QRMA8xDTALBgNVBAMMBHQ4MTkwE6QR --MA8xDTALBgNVBAMMBHQ4MjAwE6QRMA8xDTALBgNVBAMMBHQ4MjEwE6QRMA8xDTAL --BgNVBAMMBHQ4MjIwE6QRMA8xDTALBgNVBAMMBHQ4MjMwE6QRMA8xDTALBgNVBAMM --BHQ4MjQwE6QRMA8xDTALBgNVBAMMBHQ4MjUwE6QRMA8xDTALBgNVBAMMBHQ4MjYw --E6QRMA8xDTALBgNVBAMMBHQ4MjcwE6QRMA8xDTALBgNVBAMMBHQ4MjgwE6QRMA8x --DTALBgNVBAMMBHQ4MjkwE6QRMA8xDTALBgNVBAMMBHQ4MzAwE6QRMA8xDTALBgNV --BAMMBHQ4MzEwE6QRMA8xDTALBgNVBAMMBHQ4MzIwE6QRMA8xDTALBgNVBAMMBHQ4 --MzMwE6QRMA8xDTALBgNVBAMMBHQ4MzQwE6QRMA8xDTALBgNVBAMMBHQ4MzUwE6QR --MA8xDTALBgNVBAMMBHQ4MzYwE6QRMA8xDTALBgNVBAMMBHQ4MzcwE6QRMA8xDTAL --BgNVBAMMBHQ4MzgwE6QRMA8xDTALBgNVBAMMBHQ4MzkwE6QRMA8xDTALBgNVBAMM --BHQ4NDAwE6QRMA8xDTALBgNVBAMMBHQ4NDEwE6QRMA8xDTALBgNVBAMMBHQ4NDIw --E6QRMA8xDTALBgNVBAMMBHQ4NDMwE6QRMA8xDTALBgNVBAMMBHQ4NDQwE6QRMA8x --DTALBgNVBAMMBHQ4NDUwE6QRMA8xDTALBgNVBAMMBHQ4NDYwE6QRMA8xDTALBgNV --BAMMBHQ4NDcwE6QRMA8xDTALBgNVBAMMBHQ4NDgwE6QRMA8xDTALBgNVBAMMBHQ4 --NDkwE6QRMA8xDTALBgNVBAMMBHQ4NTAwE6QRMA8xDTALBgNVBAMMBHQ4NTEwE6QR --MA8xDTALBgNVBAMMBHQ4NTIwE6QRMA8xDTALBgNVBAMMBHQ4NTMwE6QRMA8xDTAL --BgNVBAMMBHQ4NTQwE6QRMA8xDTALBgNVBAMMBHQ4NTUwE6QRMA8xDTALBgNVBAMM --BHQ4NTYwE6QRMA8xDTALBgNVBAMMBHQ4NTcwE6QRMA8xDTALBgNVBAMMBHQ4NTgw --E6QRMA8xDTALBgNVBAMMBHQ4NTkwE6QRMA8xDTALBgNVBAMMBHQ4NjAwE6QRMA8x --DTALBgNVBAMMBHQ4NjEwE6QRMA8xDTALBgNVBAMMBHQ4NjIwE6QRMA8xDTALBgNV --BAMMBHQ4NjMwE6QRMA8xDTALBgNVBAMMBHQ4NjQwE6QRMA8xDTALBgNVBAMMBHQ4 --NjUwE6QRMA8xDTALBgNVBAMMBHQ4NjYwE6QRMA8xDTALBgNVBAMMBHQ4NjcwE6QR --MA8xDTALBgNVBAMMBHQ4NjgwE6QRMA8xDTALBgNVBAMMBHQ4NjkwE6QRMA8xDTAL --BgNVBAMMBHQ4NzAwE6QRMA8xDTALBgNVBAMMBHQ4NzEwE6QRMA8xDTALBgNVBAMM --BHQ4NzIwE6QRMA8xDTALBgNVBAMMBHQ4NzMwE6QRMA8xDTALBgNVBAMMBHQ4NzQw --E6QRMA8xDTALBgNVBAMMBHQ4NzUwE6QRMA8xDTALBgNVBAMMBHQ4NzYwE6QRMA8x --DTALBgNVBAMMBHQ4NzcwE6QRMA8xDTALBgNVBAMMBHQ4NzgwE6QRMA8xDTALBgNV --BAMMBHQ4NzkwE6QRMA8xDTALBgNVBAMMBHQ4ODAwE6QRMA8xDTALBgNVBAMMBHQ4 --ODEwE6QRMA8xDTALBgNVBAMMBHQ4ODIwE6QRMA8xDTALBgNVBAMMBHQ4ODMwE6QR --MA8xDTALBgNVBAMMBHQ4ODQwE6QRMA8xDTALBgNVBAMMBHQ4ODUwE6QRMA8xDTAL --BgNVBAMMBHQ4ODYwE6QRMA8xDTALBgNVBAMMBHQ4ODcwE6QRMA8xDTALBgNVBAMM --BHQ4ODgwE6QRMA8xDTALBgNVBAMMBHQ4ODkwE6QRMA8xDTALBgNVBAMMBHQ4OTAw --E6QRMA8xDTALBgNVBAMMBHQ4OTEwE6QRMA8xDTALBgNVBAMMBHQ4OTIwE6QRMA8x --DTALBgNVBAMMBHQ4OTMwE6QRMA8xDTALBgNVBAMMBHQ4OTQwE6QRMA8xDTALBgNV --BAMMBHQ4OTUwE6QRMA8xDTALBgNVBAMMBHQ4OTYwE6QRMA8xDTALBgNVBAMMBHQ4 --OTcwE6QRMA8xDTALBgNVBAMMBHQ4OTgwE6QRMA8xDTALBgNVBAMMBHQ4OTkwE6QR --MA8xDTALBgNVBAMMBHQ5MDAwE6QRMA8xDTALBgNVBAMMBHQ5MDEwE6QRMA8xDTAL --BgNVBAMMBHQ5MDIwE6QRMA8xDTALBgNVBAMMBHQ5MDMwE6QRMA8xDTALBgNVBAMM --BHQ5MDQwE6QRMA8xDTALBgNVBAMMBHQ5MDUwE6QRMA8xDTALBgNVBAMMBHQ5MDYw --E6QRMA8xDTALBgNVBAMMBHQ5MDcwE6QRMA8xDTALBgNVBAMMBHQ5MDgwE6QRMA8x --DTALBgNVBAMMBHQ5MDkwE6QRMA8xDTALBgNVBAMMBHQ5MTAwE6QRMA8xDTALBgNV --BAMMBHQ5MTEwE6QRMA8xDTALBgNVBAMMBHQ5MTIwE6QRMA8xDTALBgNVBAMMBHQ5 --MTMwE6QRMA8xDTALBgNVBAMMBHQ5MTQwE6QRMA8xDTALBgNVBAMMBHQ5MTUwE6QR --MA8xDTALBgNVBAMMBHQ5MTYwE6QRMA8xDTALBgNVBAMMBHQ5MTcwE6QRMA8xDTAL --BgNVBAMMBHQ5MTgwE6QRMA8xDTALBgNVBAMMBHQ5MTkwE6QRMA8xDTALBgNVBAMM --BHQ5MjAwE6QRMA8xDTALBgNVBAMMBHQ5MjEwE6QRMA8xDTALBgNVBAMMBHQ5MjIw --E6QRMA8xDTALBgNVBAMMBHQ5MjMwE6QRMA8xDTALBgNVBAMMBHQ5MjQwE6QRMA8x --DTALBgNVBAMMBHQ5MjUwE6QRMA8xDTALBgNVBAMMBHQ5MjYwE6QRMA8xDTALBgNV --BAMMBHQ5MjcwE6QRMA8xDTALBgNVBAMMBHQ5MjgwE6QRMA8xDTALBgNVBAMMBHQ5 --MjkwE6QRMA8xDTALBgNVBAMMBHQ5MzAwE6QRMA8xDTALBgNVBAMMBHQ5MzEwE6QR --MA8xDTALBgNVBAMMBHQ5MzIwE6QRMA8xDTALBgNVBAMMBHQ5MzMwE6QRMA8xDTAL --BgNVBAMMBHQ5MzQwE6QRMA8xDTALBgNVBAMMBHQ5MzUwE6QRMA8xDTALBgNVBAMM --BHQ5MzYwE6QRMA8xDTALBgNVBAMMBHQ5MzcwE6QRMA8xDTALBgNVBAMMBHQ5Mzgw --E6QRMA8xDTALBgNVBAMMBHQ5MzkwE6QRMA8xDTALBgNVBAMMBHQ5NDAwE6QRMA8x --DTALBgNVBAMMBHQ5NDEwE6QRMA8xDTALBgNVBAMMBHQ5NDIwE6QRMA8xDTALBgNV --BAMMBHQ5NDMwE6QRMA8xDTALBgNVBAMMBHQ5NDQwE6QRMA8xDTALBgNVBAMMBHQ5 --NDUwE6QRMA8xDTALBgNVBAMMBHQ5NDYwE6QRMA8xDTALBgNVBAMMBHQ5NDcwE6QR --MA8xDTALBgNVBAMMBHQ5NDgwE6QRMA8xDTALBgNVBAMMBHQ5NDkwE6QRMA8xDTAL --BgNVBAMMBHQ5NTAwE6QRMA8xDTALBgNVBAMMBHQ5NTEwE6QRMA8xDTALBgNVBAMM --BHQ5NTIwE6QRMA8xDTALBgNVBAMMBHQ5NTMwE6QRMA8xDTALBgNVBAMMBHQ5NTQw --E6QRMA8xDTALBgNVBAMMBHQ5NTUwE6QRMA8xDTALBgNVBAMMBHQ5NTYwE6QRMA8x --DTALBgNVBAMMBHQ5NTcwE6QRMA8xDTALBgNVBAMMBHQ5NTgwE6QRMA8xDTALBgNV --BAMMBHQ5NTkwE6QRMA8xDTALBgNVBAMMBHQ5NjAwE6QRMA8xDTALBgNVBAMMBHQ5 --NjEwE6QRMA8xDTALBgNVBAMMBHQ5NjIwE6QRMA8xDTALBgNVBAMMBHQ5NjMwE6QR --MA8xDTALBgNVBAMMBHQ5NjQwE6QRMA8xDTALBgNVBAMMBHQ5NjUwE6QRMA8xDTAL --BgNVBAMMBHQ5NjYwE6QRMA8xDTALBgNVBAMMBHQ5NjcwE6QRMA8xDTALBgNVBAMM --BHQ5NjgwE6QRMA8xDTALBgNVBAMMBHQ5NjkwE6QRMA8xDTALBgNVBAMMBHQ5NzAw --E6QRMA8xDTALBgNVBAMMBHQ5NzEwE6QRMA8xDTALBgNVBAMMBHQ5NzIwE6QRMA8x --DTALBgNVBAMMBHQ5NzMwE6QRMA8xDTALBgNVBAMMBHQ5NzQwE6QRMA8xDTALBgNV --BAMMBHQ5NzUwE6QRMA8xDTALBgNVBAMMBHQ5NzYwE6QRMA8xDTALBgNVBAMMBHQ5 --NzcwE6QRMA8xDTALBgNVBAMMBHQ5NzgwE6QRMA8xDTALBgNVBAMMBHQ5NzkwE6QR --MA8xDTALBgNVBAMMBHQ5ODAwE6QRMA8xDTALBgNVBAMMBHQ5ODEwE6QRMA8xDTAL --BgNVBAMMBHQ5ODIwE6QRMA8xDTALBgNVBAMMBHQ5ODMwE6QRMA8xDTALBgNVBAMM --BHQ5ODQwE6QRMA8xDTALBgNVBAMMBHQ5ODUwE6QRMA8xDTALBgNVBAMMBHQ5ODYw --E6QRMA8xDTALBgNVBAMMBHQ5ODcwE6QRMA8xDTALBgNVBAMMBHQ5ODgwE6QRMA8x --DTALBgNVBAMMBHQ5ODkwE6QRMA8xDTALBgNVBAMMBHQ5OTAwE6QRMA8xDTALBgNV --BAMMBHQ5OTEwE6QRMA8xDTALBgNVBAMMBHQ5OTIwE6QRMA8xDTALBgNVBAMMBHQ5 --OTMwE6QRMA8xDTALBgNVBAMMBHQ5OTQwE6QRMA8xDTALBgNVBAMMBHQ5OTUwE6QR --MA8xDTALBgNVBAMMBHQ5OTYwE6QRMA8xDTALBgNVBAMMBHQ5OTcwE6QRMA8xDTAL --BgNVBAMMBHQ5OTgwE6QRMA8xDTALBgNVBAMMBHQ5OTkwFKQSMBAxDjAMBgNVBAMM --BXQxMDAwMBSkEjAQMQ4wDAYDVQQDDAV0MTAwMTAUpBIwEDEOMAwGA1UEAwwFdDEw --MDIwFKQSMBAxDjAMBgNVBAMMBXQxMDAzMBSkEjAQMQ4wDAYDVQQDDAV0MTAwNDAU --pBIwEDEOMAwGA1UEAwwFdDEwMDUwFKQSMBAxDjAMBgNVBAMMBXQxMDA2MBSkEjAQ --MQ4wDAYDVQQDDAV0MTAwNzAUpBIwEDEOMAwGA1UEAwwFdDEwMDgwFKQSMBAxDjAM --BgNVBAMMBXQxMDA5MBSkEjAQMQ4wDAYDVQQDDAV0MTAxMDAUpBIwEDEOMAwGA1UE --AwwFdDEwMTEwFKQSMBAxDjAMBgNVBAMMBXQxMDEyMBSkEjAQMQ4wDAYDVQQDDAV0 --MTAxMzAUpBIwEDEOMAwGA1UEAwwFdDEwMTQwFKQSMBAxDjAMBgNVBAMMBXQxMDE1 --MBSkEjAQMQ4wDAYDVQQDDAV0MTAxNjAUpBIwEDEOMAwGA1UEAwwFdDEwMTcwFKQS --MBAxDjAMBgNVBAMMBXQxMDE4MBSkEjAQMQ4wDAYDVQQDDAV0MTAxOTAUpBIwEDEO --MAwGA1UEAwwFdDEwMjAwFKQSMBAxDjAMBgNVBAMMBXQxMDIxMBSkEjAQMQ4wDAYD --VQQDDAV0MTAyMjAUpBIwEDEOMAwGA1UEAwwFdDEwMjMwFKQSMBAxDjAMBgNVBAMM --BXQxMDI0MA+GDWh0dHA6Ly90ZXN0LzAwD4YNaHR0cDovL3Rlc3QvMTAPhg1odHRw --Oi8vdGVzdC8yMA+GDWh0dHA6Ly90ZXN0LzMwD4YNaHR0cDovL3Rlc3QvNDAPhg1o --dHRwOi8vdGVzdC81MA+GDWh0dHA6Ly90ZXN0LzYwD4YNaHR0cDovL3Rlc3QvNzAP --hg1odHRwOi8vdGVzdC84MA+GDWh0dHA6Ly90ZXN0LzkwEIYOaHR0cDovL3Rlc3Qv --MTAwEIYOaHR0cDovL3Rlc3QvMTEwEIYOaHR0cDovL3Rlc3QvMTIwEIYOaHR0cDov --L3Rlc3QvMTMwEIYOaHR0cDovL3Rlc3QvMTQwEIYOaHR0cDovL3Rlc3QvMTUwEIYO --aHR0cDovL3Rlc3QvMTYwEIYOaHR0cDovL3Rlc3QvMTcwEIYOaHR0cDovL3Rlc3Qv --MTgwEIYOaHR0cDovL3Rlc3QvMTkwEIYOaHR0cDovL3Rlc3QvMjAwEIYOaHR0cDov --L3Rlc3QvMjEwEIYOaHR0cDovL3Rlc3QvMjIwEIYOaHR0cDovL3Rlc3QvMjMwEIYO --aHR0cDovL3Rlc3QvMjQwEIYOaHR0cDovL3Rlc3QvMjUwEIYOaHR0cDovL3Rlc3Qv --MjYwEIYOaHR0cDovL3Rlc3QvMjcwEIYOaHR0cDovL3Rlc3QvMjgwEIYOaHR0cDov --L3Rlc3QvMjkwEIYOaHR0cDovL3Rlc3QvMzAwEIYOaHR0cDovL3Rlc3QvMzEwEIYO --aHR0cDovL3Rlc3QvMzIwEIYOaHR0cDovL3Rlc3QvMzMwEIYOaHR0cDovL3Rlc3Qv --MzQwEIYOaHR0cDovL3Rlc3QvMzUwEIYOaHR0cDovL3Rlc3QvMzYwEIYOaHR0cDov --L3Rlc3QvMzcwEIYOaHR0cDovL3Rlc3QvMzgwEIYOaHR0cDovL3Rlc3QvMzkwEIYO --aHR0cDovL3Rlc3QvNDAwEIYOaHR0cDovL3Rlc3QvNDEwEIYOaHR0cDovL3Rlc3Qv --NDIwEIYOaHR0cDovL3Rlc3QvNDMwEIYOaHR0cDovL3Rlc3QvNDQwEIYOaHR0cDov --L3Rlc3QvNDUwEIYOaHR0cDovL3Rlc3QvNDYwEIYOaHR0cDovL3Rlc3QvNDcwEIYO --aHR0cDovL3Rlc3QvNDgwEIYOaHR0cDovL3Rlc3QvNDkwEIYOaHR0cDovL3Rlc3Qv --NTAwEIYOaHR0cDovL3Rlc3QvNTEwEIYOaHR0cDovL3Rlc3QvNTIwEIYOaHR0cDov --L3Rlc3QvNTMwEIYOaHR0cDovL3Rlc3QvNTQwEIYOaHR0cDovL3Rlc3QvNTUwEIYO --aHR0cDovL3Rlc3QvNTYwEIYOaHR0cDovL3Rlc3QvNTcwEIYOaHR0cDovL3Rlc3Qv --NTgwEIYOaHR0cDovL3Rlc3QvNTkwEIYOaHR0cDovL3Rlc3QvNjAwEIYOaHR0cDov --L3Rlc3QvNjEwEIYOaHR0cDovL3Rlc3QvNjIwEIYOaHR0cDovL3Rlc3QvNjMwEIYO --aHR0cDovL3Rlc3QvNjQwEIYOaHR0cDovL3Rlc3QvNjUwEIYOaHR0cDovL3Rlc3Qv --NjYwEIYOaHR0cDovL3Rlc3QvNjcwEIYOaHR0cDovL3Rlc3QvNjgwEIYOaHR0cDov --L3Rlc3QvNjkwEIYOaHR0cDovL3Rlc3QvNzAwEIYOaHR0cDovL3Rlc3QvNzEwEIYO --aHR0cDovL3Rlc3QvNzIwEIYOaHR0cDovL3Rlc3QvNzMwEIYOaHR0cDovL3Rlc3Qv --NzQwEIYOaHR0cDovL3Rlc3QvNzUwEIYOaHR0cDovL3Rlc3QvNzYwEIYOaHR0cDov --L3Rlc3QvNzcwEIYOaHR0cDovL3Rlc3QvNzgwEIYOaHR0cDovL3Rlc3QvNzkwEIYO --aHR0cDovL3Rlc3QvODAwEIYOaHR0cDovL3Rlc3QvODEwEIYOaHR0cDovL3Rlc3Qv --ODIwEIYOaHR0cDovL3Rlc3QvODMwEIYOaHR0cDovL3Rlc3QvODQwEIYOaHR0cDov --L3Rlc3QvODUwEIYOaHR0cDovL3Rlc3QvODYwEIYOaHR0cDovL3Rlc3QvODcwEIYO --aHR0cDovL3Rlc3QvODgwEIYOaHR0cDovL3Rlc3QvODkwEIYOaHR0cDovL3Rlc3Qv --OTAwEIYOaHR0cDovL3Rlc3QvOTEwEIYOaHR0cDovL3Rlc3QvOTIwEIYOaHR0cDov --L3Rlc3QvOTMwEIYOaHR0cDovL3Rlc3QvOTQwEIYOaHR0cDovL3Rlc3QvOTUwEIYO --aHR0cDovL3Rlc3QvOTYwEIYOaHR0cDovL3Rlc3QvOTcwEIYOaHR0cDovL3Rlc3Qv --OTgwEIYOaHR0cDovL3Rlc3QvOTkwEYYPaHR0cDovL3Rlc3QvMTAwMBGGD2h0dHA6 --Ly90ZXN0LzEwMTARhg9odHRwOi8vdGVzdC8xMDIwEYYPaHR0cDovL3Rlc3QvMTAz --MBGGD2h0dHA6Ly90ZXN0LzEwNDARhg9odHRwOi8vdGVzdC8xMDUwEYYPaHR0cDov --L3Rlc3QvMTA2MBGGD2h0dHA6Ly90ZXN0LzEwNzARhg9odHRwOi8vdGVzdC8xMDgw --EYYPaHR0cDovL3Rlc3QvMTA5MBGGD2h0dHA6Ly90ZXN0LzExMDARhg9odHRwOi8v --dGVzdC8xMTEwEYYPaHR0cDovL3Rlc3QvMTEyMBGGD2h0dHA6Ly90ZXN0LzExMzAR --hg9odHRwOi8vdGVzdC8xMTQwEYYPaHR0cDovL3Rlc3QvMTE1MBGGD2h0dHA6Ly90 --ZXN0LzExNjARhg9odHRwOi8vdGVzdC8xMTcwEYYPaHR0cDovL3Rlc3QvMTE4MBGG --D2h0dHA6Ly90ZXN0LzExOTARhg9odHRwOi8vdGVzdC8xMjAwEYYPaHR0cDovL3Rl --c3QvMTIxMBGGD2h0dHA6Ly90ZXN0LzEyMjARhg9odHRwOi8vdGVzdC8xMjMwEYYP --aHR0cDovL3Rlc3QvMTI0MBGGD2h0dHA6Ly90ZXN0LzEyNTARhg9odHRwOi8vdGVz --dC8xMjYwEYYPaHR0cDovL3Rlc3QvMTI3MBGGD2h0dHA6Ly90ZXN0LzEyODARhg9o --dHRwOi8vdGVzdC8xMjkwEYYPaHR0cDovL3Rlc3QvMTMwMBGGD2h0dHA6Ly90ZXN0 --LzEzMTARhg9odHRwOi8vdGVzdC8xMzIwEYYPaHR0cDovL3Rlc3QvMTMzMBGGD2h0 --dHA6Ly90ZXN0LzEzNDARhg9odHRwOi8vdGVzdC8xMzUwEYYPaHR0cDovL3Rlc3Qv --MTM2MBGGD2h0dHA6Ly90ZXN0LzEzNzARhg9odHRwOi8vdGVzdC8xMzgwEYYPaHR0 --cDovL3Rlc3QvMTM5MBGGD2h0dHA6Ly90ZXN0LzE0MDARhg9odHRwOi8vdGVzdC8x --NDEwEYYPaHR0cDovL3Rlc3QvMTQyMBGGD2h0dHA6Ly90ZXN0LzE0MzARhg9odHRw --Oi8vdGVzdC8xNDQwEYYPaHR0cDovL3Rlc3QvMTQ1MBGGD2h0dHA6Ly90ZXN0LzE0 --NjARhg9odHRwOi8vdGVzdC8xNDcwEYYPaHR0cDovL3Rlc3QvMTQ4MBGGD2h0dHA6 --Ly90ZXN0LzE0OTARhg9odHRwOi8vdGVzdC8xNTAwEYYPaHR0cDovL3Rlc3QvMTUx --MBGGD2h0dHA6Ly90ZXN0LzE1MjARhg9odHRwOi8vdGVzdC8xNTMwEYYPaHR0cDov --L3Rlc3QvMTU0MBGGD2h0dHA6Ly90ZXN0LzE1NTARhg9odHRwOi8vdGVzdC8xNTYw --EYYPaHR0cDovL3Rlc3QvMTU3MBGGD2h0dHA6Ly90ZXN0LzE1ODARhg9odHRwOi8v --dGVzdC8xNTkwEYYPaHR0cDovL3Rlc3QvMTYwMBGGD2h0dHA6Ly90ZXN0LzE2MTAR --hg9odHRwOi8vdGVzdC8xNjIwEYYPaHR0cDovL3Rlc3QvMTYzMBGGD2h0dHA6Ly90 --ZXN0LzE2NDARhg9odHRwOi8vdGVzdC8xNjUwEYYPaHR0cDovL3Rlc3QvMTY2MBGG --D2h0dHA6Ly90ZXN0LzE2NzARhg9odHRwOi8vdGVzdC8xNjgwEYYPaHR0cDovL3Rl --c3QvMTY5MBGGD2h0dHA6Ly90ZXN0LzE3MDARhg9odHRwOi8vdGVzdC8xNzEwEYYP --aHR0cDovL3Rlc3QvMTcyMBGGD2h0dHA6Ly90ZXN0LzE3MzARhg9odHRwOi8vdGVz --dC8xNzQwEYYPaHR0cDovL3Rlc3QvMTc1MBGGD2h0dHA6Ly90ZXN0LzE3NjARhg9o --dHRwOi8vdGVzdC8xNzcwEYYPaHR0cDovL3Rlc3QvMTc4MBGGD2h0dHA6Ly90ZXN0 --LzE3OTARhg9odHRwOi8vdGVzdC8xODAwEYYPaHR0cDovL3Rlc3QvMTgxMBGGD2h0 --dHA6Ly90ZXN0LzE4MjARhg9odHRwOi8vdGVzdC8xODMwEYYPaHR0cDovL3Rlc3Qv --MTg0MBGGD2h0dHA6Ly90ZXN0LzE4NTARhg9odHRwOi8vdGVzdC8xODYwEYYPaHR0 --cDovL3Rlc3QvMTg3MBGGD2h0dHA6Ly90ZXN0LzE4ODARhg9odHRwOi8vdGVzdC8x --ODkwEYYPaHR0cDovL3Rlc3QvMTkwMBGGD2h0dHA6Ly90ZXN0LzE5MTARhg9odHRw --Oi8vdGVzdC8xOTIwEYYPaHR0cDovL3Rlc3QvMTkzMBGGD2h0dHA6Ly90ZXN0LzE5 --NDARhg9odHRwOi8vdGVzdC8xOTUwEYYPaHR0cDovL3Rlc3QvMTk2MBGGD2h0dHA6 --Ly90ZXN0LzE5NzARhg9odHRwOi8vdGVzdC8xOTgwEYYPaHR0cDovL3Rlc3QvMTk5 --MBGGD2h0dHA6Ly90ZXN0LzIwMDARhg9odHRwOi8vdGVzdC8yMDEwEYYPaHR0cDov --L3Rlc3QvMjAyMBGGD2h0dHA6Ly90ZXN0LzIwMzARhg9odHRwOi8vdGVzdC8yMDQw --EYYPaHR0cDovL3Rlc3QvMjA1MBGGD2h0dHA6Ly90ZXN0LzIwNjARhg9odHRwOi8v --dGVzdC8yMDcwEYYPaHR0cDovL3Rlc3QvMjA4MBGGD2h0dHA6Ly90ZXN0LzIwOTAR --hg9odHRwOi8vdGVzdC8yMTAwEYYPaHR0cDovL3Rlc3QvMjExMBGGD2h0dHA6Ly90 --ZXN0LzIxMjARhg9odHRwOi8vdGVzdC8yMTMwEYYPaHR0cDovL3Rlc3QvMjE0MBGG --D2h0dHA6Ly90ZXN0LzIxNTARhg9odHRwOi8vdGVzdC8yMTYwEYYPaHR0cDovL3Rl --c3QvMjE3MBGGD2h0dHA6Ly90ZXN0LzIxODARhg9odHRwOi8vdGVzdC8yMTkwEYYP --aHR0cDovL3Rlc3QvMjIwMBGGD2h0dHA6Ly90ZXN0LzIyMTARhg9odHRwOi8vdGVz --dC8yMjIwEYYPaHR0cDovL3Rlc3QvMjIzMBGGD2h0dHA6Ly90ZXN0LzIyNDARhg9o --dHRwOi8vdGVzdC8yMjUwEYYPaHR0cDovL3Rlc3QvMjI2MBGGD2h0dHA6Ly90ZXN0 --LzIyNzARhg9odHRwOi8vdGVzdC8yMjgwEYYPaHR0cDovL3Rlc3QvMjI5MBGGD2h0 --dHA6Ly90ZXN0LzIzMDARhg9odHRwOi8vdGVzdC8yMzEwEYYPaHR0cDovL3Rlc3Qv --MjMyMBGGD2h0dHA6Ly90ZXN0LzIzMzARhg9odHRwOi8vdGVzdC8yMzQwEYYPaHR0 --cDovL3Rlc3QvMjM1MBGGD2h0dHA6Ly90ZXN0LzIzNjARhg9odHRwOi8vdGVzdC8y --MzcwEYYPaHR0cDovL3Rlc3QvMjM4MBGGD2h0dHA6Ly90ZXN0LzIzOTARhg9odHRw --Oi8vdGVzdC8yNDAwEYYPaHR0cDovL3Rlc3QvMjQxMBGGD2h0dHA6Ly90ZXN0LzI0 --MjARhg9odHRwOi8vdGVzdC8yNDMwEYYPaHR0cDovL3Rlc3QvMjQ0MBGGD2h0dHA6 --Ly90ZXN0LzI0NTARhg9odHRwOi8vdGVzdC8yNDYwEYYPaHR0cDovL3Rlc3QvMjQ3 --MBGGD2h0dHA6Ly90ZXN0LzI0ODARhg9odHRwOi8vdGVzdC8yNDkwEYYPaHR0cDov --L3Rlc3QvMjUwMBGGD2h0dHA6Ly90ZXN0LzI1MTARhg9odHRwOi8vdGVzdC8yNTIw --EYYPaHR0cDovL3Rlc3QvMjUzMBGGD2h0dHA6Ly90ZXN0LzI1NDARhg9odHRwOi8v --dGVzdC8yNTUwEYYPaHR0cDovL3Rlc3QvMjU2MBGGD2h0dHA6Ly90ZXN0LzI1NzAR --hg9odHRwOi8vdGVzdC8yNTgwEYYPaHR0cDovL3Rlc3QvMjU5MBGGD2h0dHA6Ly90 --ZXN0LzI2MDARhg9odHRwOi8vdGVzdC8yNjEwEYYPaHR0cDovL3Rlc3QvMjYyMBGG --D2h0dHA6Ly90ZXN0LzI2MzARhg9odHRwOi8vdGVzdC8yNjQwEYYPaHR0cDovL3Rl --c3QvMjY1MBGGD2h0dHA6Ly90ZXN0LzI2NjARhg9odHRwOi8vdGVzdC8yNjcwEYYP --aHR0cDovL3Rlc3QvMjY4MBGGD2h0dHA6Ly90ZXN0LzI2OTARhg9odHRwOi8vdGVz --dC8yNzAwEYYPaHR0cDovL3Rlc3QvMjcxMBGGD2h0dHA6Ly90ZXN0LzI3MjARhg9o --dHRwOi8vdGVzdC8yNzMwEYYPaHR0cDovL3Rlc3QvMjc0MBGGD2h0dHA6Ly90ZXN0 --LzI3NTARhg9odHRwOi8vdGVzdC8yNzYwEYYPaHR0cDovL3Rlc3QvMjc3MBGGD2h0 --dHA6Ly90ZXN0LzI3ODARhg9odHRwOi8vdGVzdC8yNzkwEYYPaHR0cDovL3Rlc3Qv --MjgwMBGGD2h0dHA6Ly90ZXN0LzI4MTARhg9odHRwOi8vdGVzdC8yODIwEYYPaHR0 --cDovL3Rlc3QvMjgzMBGGD2h0dHA6Ly90ZXN0LzI4NDARhg9odHRwOi8vdGVzdC8y --ODUwEYYPaHR0cDovL3Rlc3QvMjg2MBGGD2h0dHA6Ly90ZXN0LzI4NzARhg9odHRw --Oi8vdGVzdC8yODgwEYYPaHR0cDovL3Rlc3QvMjg5MBGGD2h0dHA6Ly90ZXN0LzI5 --MDARhg9odHRwOi8vdGVzdC8yOTEwEYYPaHR0cDovL3Rlc3QvMjkyMBGGD2h0dHA6 --Ly90ZXN0LzI5MzARhg9odHRwOi8vdGVzdC8yOTQwEYYPaHR0cDovL3Rlc3QvMjk1 --MBGGD2h0dHA6Ly90ZXN0LzI5NjARhg9odHRwOi8vdGVzdC8yOTcwEYYPaHR0cDov --L3Rlc3QvMjk4MBGGD2h0dHA6Ly90ZXN0LzI5OTARhg9odHRwOi8vdGVzdC8zMDAw --EYYPaHR0cDovL3Rlc3QvMzAxMBGGD2h0dHA6Ly90ZXN0LzMwMjARhg9odHRwOi8v --dGVzdC8zMDMwEYYPaHR0cDovL3Rlc3QvMzA0MBGGD2h0dHA6Ly90ZXN0LzMwNTAR --hg9odHRwOi8vdGVzdC8zMDYwEYYPaHR0cDovL3Rlc3QvMzA3MBGGD2h0dHA6Ly90 --ZXN0LzMwODARhg9odHRwOi8vdGVzdC8zMDkwEYYPaHR0cDovL3Rlc3QvMzEwMBGG --D2h0dHA6Ly90ZXN0LzMxMTARhg9odHRwOi8vdGVzdC8zMTIwEYYPaHR0cDovL3Rl --c3QvMzEzMBGGD2h0dHA6Ly90ZXN0LzMxNDARhg9odHRwOi8vdGVzdC8zMTUwEYYP --aHR0cDovL3Rlc3QvMzE2MBGGD2h0dHA6Ly90ZXN0LzMxNzARhg9odHRwOi8vdGVz --dC8zMTgwEYYPaHR0cDovL3Rlc3QvMzE5MBGGD2h0dHA6Ly90ZXN0LzMyMDARhg9o --dHRwOi8vdGVzdC8zMjEwEYYPaHR0cDovL3Rlc3QvMzIyMBGGD2h0dHA6Ly90ZXN0 --LzMyMzARhg9odHRwOi8vdGVzdC8zMjQwEYYPaHR0cDovL3Rlc3QvMzI1MBGGD2h0 --dHA6Ly90ZXN0LzMyNjARhg9odHRwOi8vdGVzdC8zMjcwEYYPaHR0cDovL3Rlc3Qv --MzI4MBGGD2h0dHA6Ly90ZXN0LzMyOTARhg9odHRwOi8vdGVzdC8zMzAwEYYPaHR0 --cDovL3Rlc3QvMzMxMBGGD2h0dHA6Ly90ZXN0LzMzMjARhg9odHRwOi8vdGVzdC8z --MzMwEYYPaHR0cDovL3Rlc3QvMzM0MBGGD2h0dHA6Ly90ZXN0LzMzNTARhg9odHRw --Oi8vdGVzdC8zMzYwEYYPaHR0cDovL3Rlc3QvMzM3MBGGD2h0dHA6Ly90ZXN0LzMz --ODARhg9odHRwOi8vdGVzdC8zMzkwEYYPaHR0cDovL3Rlc3QvMzQwMBGGD2h0dHA6 --Ly90ZXN0LzM0MTARhg9odHRwOi8vdGVzdC8zNDIwEYYPaHR0cDovL3Rlc3QvMzQz --MBGGD2h0dHA6Ly90ZXN0LzM0NDARhg9odHRwOi8vdGVzdC8zNDUwEYYPaHR0cDov --L3Rlc3QvMzQ2MBGGD2h0dHA6Ly90ZXN0LzM0NzARhg9odHRwOi8vdGVzdC8zNDgw --EYYPaHR0cDovL3Rlc3QvMzQ5MBGGD2h0dHA6Ly90ZXN0LzM1MDARhg9odHRwOi8v --dGVzdC8zNTEwEYYPaHR0cDovL3Rlc3QvMzUyMBGGD2h0dHA6Ly90ZXN0LzM1MzAR --hg9odHRwOi8vdGVzdC8zNTQwEYYPaHR0cDovL3Rlc3QvMzU1MBGGD2h0dHA6Ly90 --ZXN0LzM1NjARhg9odHRwOi8vdGVzdC8zNTcwEYYPaHR0cDovL3Rlc3QvMzU4MBGG --D2h0dHA6Ly90ZXN0LzM1OTARhg9odHRwOi8vdGVzdC8zNjAwEYYPaHR0cDovL3Rl --c3QvMzYxMBGGD2h0dHA6Ly90ZXN0LzM2MjARhg9odHRwOi8vdGVzdC8zNjMwEYYP --aHR0cDovL3Rlc3QvMzY0MBGGD2h0dHA6Ly90ZXN0LzM2NTARhg9odHRwOi8vdGVz --dC8zNjYwEYYPaHR0cDovL3Rlc3QvMzY3MBGGD2h0dHA6Ly90ZXN0LzM2ODARhg9o --dHRwOi8vdGVzdC8zNjkwEYYPaHR0cDovL3Rlc3QvMzcwMBGGD2h0dHA6Ly90ZXN0 --LzM3MTARhg9odHRwOi8vdGVzdC8zNzIwEYYPaHR0cDovL3Rlc3QvMzczMBGGD2h0 --dHA6Ly90ZXN0LzM3NDARhg9odHRwOi8vdGVzdC8zNzUwEYYPaHR0cDovL3Rlc3Qv --Mzc2MBGGD2h0dHA6Ly90ZXN0LzM3NzARhg9odHRwOi8vdGVzdC8zNzgwEYYPaHR0 --cDovL3Rlc3QvMzc5MBGGD2h0dHA6Ly90ZXN0LzM4MDARhg9odHRwOi8vdGVzdC8z --ODEwEYYPaHR0cDovL3Rlc3QvMzgyMBGGD2h0dHA6Ly90ZXN0LzM4MzARhg9odHRw --Oi8vdGVzdC8zODQwEYYPaHR0cDovL3Rlc3QvMzg1MBGGD2h0dHA6Ly90ZXN0LzM4 --NjARhg9odHRwOi8vdGVzdC8zODcwEYYPaHR0cDovL3Rlc3QvMzg4MBGGD2h0dHA6 --Ly90ZXN0LzM4OTARhg9odHRwOi8vdGVzdC8zOTAwEYYPaHR0cDovL3Rlc3QvMzkx --MBGGD2h0dHA6Ly90ZXN0LzM5MjARhg9odHRwOi8vdGVzdC8zOTMwEYYPaHR0cDov --L3Rlc3QvMzk0MBGGD2h0dHA6Ly90ZXN0LzM5NTARhg9odHRwOi8vdGVzdC8zOTYw --EYYPaHR0cDovL3Rlc3QvMzk3MBGGD2h0dHA6Ly90ZXN0LzM5ODARhg9odHRwOi8v --dGVzdC8zOTkwEYYPaHR0cDovL3Rlc3QvNDAwMBGGD2h0dHA6Ly90ZXN0LzQwMTAR --hg9odHRwOi8vdGVzdC80MDIwEYYPaHR0cDovL3Rlc3QvNDAzMBGGD2h0dHA6Ly90 --ZXN0LzQwNDARhg9odHRwOi8vdGVzdC80MDUwEYYPaHR0cDovL3Rlc3QvNDA2MBGG --D2h0dHA6Ly90ZXN0LzQwNzARhg9odHRwOi8vdGVzdC80MDgwEYYPaHR0cDovL3Rl --c3QvNDA5MBGGD2h0dHA6Ly90ZXN0LzQxMDARhg9odHRwOi8vdGVzdC80MTEwEYYP --aHR0cDovL3Rlc3QvNDEyMBGGD2h0dHA6Ly90ZXN0LzQxMzARhg9odHRwOi8vdGVz --dC80MTQwEYYPaHR0cDovL3Rlc3QvNDE1MBGGD2h0dHA6Ly90ZXN0LzQxNjARhg9o --dHRwOi8vdGVzdC80MTcwEYYPaHR0cDovL3Rlc3QvNDE4MBGGD2h0dHA6Ly90ZXN0 --LzQxOTARhg9odHRwOi8vdGVzdC80MjAwEYYPaHR0cDovL3Rlc3QvNDIxMBGGD2h0 --dHA6Ly90ZXN0LzQyMjARhg9odHRwOi8vdGVzdC80MjMwEYYPaHR0cDovL3Rlc3Qv --NDI0MBGGD2h0dHA6Ly90ZXN0LzQyNTARhg9odHRwOi8vdGVzdC80MjYwEYYPaHR0 --cDovL3Rlc3QvNDI3MBGGD2h0dHA6Ly90ZXN0LzQyODARhg9odHRwOi8vdGVzdC80 --MjkwEYYPaHR0cDovL3Rlc3QvNDMwMBGGD2h0dHA6Ly90ZXN0LzQzMTARhg9odHRw --Oi8vdGVzdC80MzIwEYYPaHR0cDovL3Rlc3QvNDMzMBGGD2h0dHA6Ly90ZXN0LzQz --NDARhg9odHRwOi8vdGVzdC80MzUwEYYPaHR0cDovL3Rlc3QvNDM2MBGGD2h0dHA6 --Ly90ZXN0LzQzNzARhg9odHRwOi8vdGVzdC80MzgwEYYPaHR0cDovL3Rlc3QvNDM5 --MBGGD2h0dHA6Ly90ZXN0LzQ0MDARhg9odHRwOi8vdGVzdC80NDEwEYYPaHR0cDov --L3Rlc3QvNDQyMBGGD2h0dHA6Ly90ZXN0LzQ0MzARhg9odHRwOi8vdGVzdC80NDQw --EYYPaHR0cDovL3Rlc3QvNDQ1MBGGD2h0dHA6Ly90ZXN0LzQ0NjARhg9odHRwOi8v --dGVzdC80NDcwEYYPaHR0cDovL3Rlc3QvNDQ4MBGGD2h0dHA6Ly90ZXN0LzQ0OTAR --hg9odHRwOi8vdGVzdC80NTAwEYYPaHR0cDovL3Rlc3QvNDUxMBGGD2h0dHA6Ly90 --ZXN0LzQ1MjARhg9odHRwOi8vdGVzdC80NTMwEYYPaHR0cDovL3Rlc3QvNDU0MBGG --D2h0dHA6Ly90ZXN0LzQ1NTARhg9odHRwOi8vdGVzdC80NTYwEYYPaHR0cDovL3Rl --c3QvNDU3MBGGD2h0dHA6Ly90ZXN0LzQ1ODARhg9odHRwOi8vdGVzdC80NTkwEYYP --aHR0cDovL3Rlc3QvNDYwMBGGD2h0dHA6Ly90ZXN0LzQ2MTARhg9odHRwOi8vdGVz --dC80NjIwEYYPaHR0cDovL3Rlc3QvNDYzMBGGD2h0dHA6Ly90ZXN0LzQ2NDARhg9o --dHRwOi8vdGVzdC80NjUwEYYPaHR0cDovL3Rlc3QvNDY2MBGGD2h0dHA6Ly90ZXN0 --LzQ2NzARhg9odHRwOi8vdGVzdC80NjgwEYYPaHR0cDovL3Rlc3QvNDY5MBGGD2h0 --dHA6Ly90ZXN0LzQ3MDARhg9odHRwOi8vdGVzdC80NzEwEYYPaHR0cDovL3Rlc3Qv --NDcyMBGGD2h0dHA6Ly90ZXN0LzQ3MzARhg9odHRwOi8vdGVzdC80NzQwEYYPaHR0 --cDovL3Rlc3QvNDc1MBGGD2h0dHA6Ly90ZXN0LzQ3NjARhg9odHRwOi8vdGVzdC80 --NzcwEYYPaHR0cDovL3Rlc3QvNDc4MBGGD2h0dHA6Ly90ZXN0LzQ3OTARhg9odHRw --Oi8vdGVzdC80ODAwEYYPaHR0cDovL3Rlc3QvNDgxMBGGD2h0dHA6Ly90ZXN0LzQ4 --MjARhg9odHRwOi8vdGVzdC80ODMwEYYPaHR0cDovL3Rlc3QvNDg0MBGGD2h0dHA6 --Ly90ZXN0LzQ4NTARhg9odHRwOi8vdGVzdC80ODYwEYYPaHR0cDovL3Rlc3QvNDg3 --MBGGD2h0dHA6Ly90ZXN0LzQ4ODARhg9odHRwOi8vdGVzdC80ODkwEYYPaHR0cDov --L3Rlc3QvNDkwMBGGD2h0dHA6Ly90ZXN0LzQ5MTARhg9odHRwOi8vdGVzdC80OTIw --EYYPaHR0cDovL3Rlc3QvNDkzMBGGD2h0dHA6Ly90ZXN0LzQ5NDARhg9odHRwOi8v --dGVzdC80OTUwEYYPaHR0cDovL3Rlc3QvNDk2MBGGD2h0dHA6Ly90ZXN0LzQ5NzAR --hg9odHRwOi8vdGVzdC80OTgwEYYPaHR0cDovL3Rlc3QvNDk5MBGGD2h0dHA6Ly90 --ZXN0LzUwMDARhg9odHRwOi8vdGVzdC81MDEwEYYPaHR0cDovL3Rlc3QvNTAyMBGG --D2h0dHA6Ly90ZXN0LzUwMzARhg9odHRwOi8vdGVzdC81MDQwEYYPaHR0cDovL3Rl --c3QvNTA1MBGGD2h0dHA6Ly90ZXN0LzUwNjARhg9odHRwOi8vdGVzdC81MDcwEYYP --aHR0cDovL3Rlc3QvNTA4MBGGD2h0dHA6Ly90ZXN0LzUwOTARhg9odHRwOi8vdGVz --dC81MTAwEYYPaHR0cDovL3Rlc3QvNTExMBGGD2h0dHA6Ly90ZXN0LzUxMjARhg9o --dHRwOi8vdGVzdC81MTMwEYYPaHR0cDovL3Rlc3QvNTE0MBGGD2h0dHA6Ly90ZXN0 --LzUxNTARhg9odHRwOi8vdGVzdC81MTYwEYYPaHR0cDovL3Rlc3QvNTE3MBGGD2h0 --dHA6Ly90ZXN0LzUxODARhg9odHRwOi8vdGVzdC81MTkwEYYPaHR0cDovL3Rlc3Qv --NTIwMBGGD2h0dHA6Ly90ZXN0LzUyMTARhg9odHRwOi8vdGVzdC81MjIwEYYPaHR0 --cDovL3Rlc3QvNTIzMBGGD2h0dHA6Ly90ZXN0LzUyNDARhg9odHRwOi8vdGVzdC81 --MjUwEYYPaHR0cDovL3Rlc3QvNTI2MBGGD2h0dHA6Ly90ZXN0LzUyNzARhg9odHRw --Oi8vdGVzdC81MjgwEYYPaHR0cDovL3Rlc3QvNTI5MBGGD2h0dHA6Ly90ZXN0LzUz --MDARhg9odHRwOi8vdGVzdC81MzEwEYYPaHR0cDovL3Rlc3QvNTMyMBGGD2h0dHA6 --Ly90ZXN0LzUzMzARhg9odHRwOi8vdGVzdC81MzQwEYYPaHR0cDovL3Rlc3QvNTM1 --MBGGD2h0dHA6Ly90ZXN0LzUzNjARhg9odHRwOi8vdGVzdC81MzcwEYYPaHR0cDov --L3Rlc3QvNTM4MBGGD2h0dHA6Ly90ZXN0LzUzOTARhg9odHRwOi8vdGVzdC81NDAw --EYYPaHR0cDovL3Rlc3QvNTQxMBGGD2h0dHA6Ly90ZXN0LzU0MjARhg9odHRwOi8v --dGVzdC81NDMwEYYPaHR0cDovL3Rlc3QvNTQ0MBGGD2h0dHA6Ly90ZXN0LzU0NTAR --hg9odHRwOi8vdGVzdC81NDYwEYYPaHR0cDovL3Rlc3QvNTQ3MBGGD2h0dHA6Ly90 --ZXN0LzU0ODARhg9odHRwOi8vdGVzdC81NDkwEYYPaHR0cDovL3Rlc3QvNTUwMBGG --D2h0dHA6Ly90ZXN0LzU1MTARhg9odHRwOi8vdGVzdC81NTIwEYYPaHR0cDovL3Rl --c3QvNTUzMBGGD2h0dHA6Ly90ZXN0LzU1NDARhg9odHRwOi8vdGVzdC81NTUwEYYP --aHR0cDovL3Rlc3QvNTU2MBGGD2h0dHA6Ly90ZXN0LzU1NzARhg9odHRwOi8vdGVz --dC81NTgwEYYPaHR0cDovL3Rlc3QvNTU5MBGGD2h0dHA6Ly90ZXN0LzU2MDARhg9o --dHRwOi8vdGVzdC81NjEwEYYPaHR0cDovL3Rlc3QvNTYyMBGGD2h0dHA6Ly90ZXN0 --LzU2MzARhg9odHRwOi8vdGVzdC81NjQwEYYPaHR0cDovL3Rlc3QvNTY1MBGGD2h0 --dHA6Ly90ZXN0LzU2NjARhg9odHRwOi8vdGVzdC81NjcwEYYPaHR0cDovL3Rlc3Qv --NTY4MBGGD2h0dHA6Ly90ZXN0LzU2OTARhg9odHRwOi8vdGVzdC81NzAwEYYPaHR0 --cDovL3Rlc3QvNTcxMBGGD2h0dHA6Ly90ZXN0LzU3MjARhg9odHRwOi8vdGVzdC81 --NzMwEYYPaHR0cDovL3Rlc3QvNTc0MBGGD2h0dHA6Ly90ZXN0LzU3NTARhg9odHRw --Oi8vdGVzdC81NzYwEYYPaHR0cDovL3Rlc3QvNTc3MBGGD2h0dHA6Ly90ZXN0LzU3 --ODARhg9odHRwOi8vdGVzdC81NzkwEYYPaHR0cDovL3Rlc3QvNTgwMBGGD2h0dHA6 --Ly90ZXN0LzU4MTARhg9odHRwOi8vdGVzdC81ODIwEYYPaHR0cDovL3Rlc3QvNTgz --MBGGD2h0dHA6Ly90ZXN0LzU4NDARhg9odHRwOi8vdGVzdC81ODUwEYYPaHR0cDov --L3Rlc3QvNTg2MBGGD2h0dHA6Ly90ZXN0LzU4NzARhg9odHRwOi8vdGVzdC81ODgw --EYYPaHR0cDovL3Rlc3QvNTg5MBGGD2h0dHA6Ly90ZXN0LzU5MDARhg9odHRwOi8v --dGVzdC81OTEwEYYPaHR0cDovL3Rlc3QvNTkyMBGGD2h0dHA6Ly90ZXN0LzU5MzAR --hg9odHRwOi8vdGVzdC81OTQwEYYPaHR0cDovL3Rlc3QvNTk1MBGGD2h0dHA6Ly90 --ZXN0LzU5NjARhg9odHRwOi8vdGVzdC81OTcwEYYPaHR0cDovL3Rlc3QvNTk4MBGG --D2h0dHA6Ly90ZXN0LzU5OTARhg9odHRwOi8vdGVzdC82MDAwEYYPaHR0cDovL3Rl --c3QvNjAxMBGGD2h0dHA6Ly90ZXN0LzYwMjARhg9odHRwOi8vdGVzdC82MDMwEYYP --aHR0cDovL3Rlc3QvNjA0MBGGD2h0dHA6Ly90ZXN0LzYwNTARhg9odHRwOi8vdGVz --dC82MDYwEYYPaHR0cDovL3Rlc3QvNjA3MBGGD2h0dHA6Ly90ZXN0LzYwODARhg9o --dHRwOi8vdGVzdC82MDkwEYYPaHR0cDovL3Rlc3QvNjEwMBGGD2h0dHA6Ly90ZXN0 --LzYxMTARhg9odHRwOi8vdGVzdC82MTIwEYYPaHR0cDovL3Rlc3QvNjEzMBGGD2h0 --dHA6Ly90ZXN0LzYxNDARhg9odHRwOi8vdGVzdC82MTUwEYYPaHR0cDovL3Rlc3Qv --NjE2MBGGD2h0dHA6Ly90ZXN0LzYxNzARhg9odHRwOi8vdGVzdC82MTgwEYYPaHR0 --cDovL3Rlc3QvNjE5MBGGD2h0dHA6Ly90ZXN0LzYyMDARhg9odHRwOi8vdGVzdC82 --MjEwEYYPaHR0cDovL3Rlc3QvNjIyMBGGD2h0dHA6Ly90ZXN0LzYyMzARhg9odHRw --Oi8vdGVzdC82MjQwEYYPaHR0cDovL3Rlc3QvNjI1MBGGD2h0dHA6Ly90ZXN0LzYy --NjARhg9odHRwOi8vdGVzdC82MjcwEYYPaHR0cDovL3Rlc3QvNjI4MBGGD2h0dHA6 --Ly90ZXN0LzYyOTARhg9odHRwOi8vdGVzdC82MzAwEYYPaHR0cDovL3Rlc3QvNjMx --MBGGD2h0dHA6Ly90ZXN0LzYzMjARhg9odHRwOi8vdGVzdC82MzMwEYYPaHR0cDov --L3Rlc3QvNjM0MBGGD2h0dHA6Ly90ZXN0LzYzNTARhg9odHRwOi8vdGVzdC82MzYw --EYYPaHR0cDovL3Rlc3QvNjM3MBGGD2h0dHA6Ly90ZXN0LzYzODARhg9odHRwOi8v --dGVzdC82MzkwEYYPaHR0cDovL3Rlc3QvNjQwMBGGD2h0dHA6Ly90ZXN0LzY0MTAR --hg9odHRwOi8vdGVzdC82NDIwEYYPaHR0cDovL3Rlc3QvNjQzMBGGD2h0dHA6Ly90 --ZXN0LzY0NDARhg9odHRwOi8vdGVzdC82NDUwEYYPaHR0cDovL3Rlc3QvNjQ2MBGG --D2h0dHA6Ly90ZXN0LzY0NzARhg9odHRwOi8vdGVzdC82NDgwEYYPaHR0cDovL3Rl --c3QvNjQ5MBGGD2h0dHA6Ly90ZXN0LzY1MDARhg9odHRwOi8vdGVzdC82NTEwEYYP --aHR0cDovL3Rlc3QvNjUyMBGGD2h0dHA6Ly90ZXN0LzY1MzARhg9odHRwOi8vdGVz --dC82NTQwEYYPaHR0cDovL3Rlc3QvNjU1MBGGD2h0dHA6Ly90ZXN0LzY1NjARhg9o --dHRwOi8vdGVzdC82NTcwEYYPaHR0cDovL3Rlc3QvNjU4MBGGD2h0dHA6Ly90ZXN0 --LzY1OTARhg9odHRwOi8vdGVzdC82NjAwEYYPaHR0cDovL3Rlc3QvNjYxMBGGD2h0 --dHA6Ly90ZXN0LzY2MjARhg9odHRwOi8vdGVzdC82NjMwEYYPaHR0cDovL3Rlc3Qv --NjY0MBGGD2h0dHA6Ly90ZXN0LzY2NTARhg9odHRwOi8vdGVzdC82NjYwEYYPaHR0 --cDovL3Rlc3QvNjY3MBGGD2h0dHA6Ly90ZXN0LzY2ODARhg9odHRwOi8vdGVzdC82 --NjkwEYYPaHR0cDovL3Rlc3QvNjcwMBGGD2h0dHA6Ly90ZXN0LzY3MTARhg9odHRw --Oi8vdGVzdC82NzIwEYYPaHR0cDovL3Rlc3QvNjczMBGGD2h0dHA6Ly90ZXN0LzY3 --NDARhg9odHRwOi8vdGVzdC82NzUwEYYPaHR0cDovL3Rlc3QvNjc2MBGGD2h0dHA6 --Ly90ZXN0LzY3NzARhg9odHRwOi8vdGVzdC82NzgwEYYPaHR0cDovL3Rlc3QvNjc5 --MBGGD2h0dHA6Ly90ZXN0LzY4MDARhg9odHRwOi8vdGVzdC82ODEwEYYPaHR0cDov --L3Rlc3QvNjgyMBGGD2h0dHA6Ly90ZXN0LzY4MzARhg9odHRwOi8vdGVzdC82ODQw --EYYPaHR0cDovL3Rlc3QvNjg1MBGGD2h0dHA6Ly90ZXN0LzY4NjARhg9odHRwOi8v --dGVzdC82ODcwEYYPaHR0cDovL3Rlc3QvNjg4MBGGD2h0dHA6Ly90ZXN0LzY4OTAR --hg9odHRwOi8vdGVzdC82OTAwEYYPaHR0cDovL3Rlc3QvNjkxMBGGD2h0dHA6Ly90 --ZXN0LzY5MjARhg9odHRwOi8vdGVzdC82OTMwEYYPaHR0cDovL3Rlc3QvNjk0MBGG --D2h0dHA6Ly90ZXN0LzY5NTARhg9odHRwOi8vdGVzdC82OTYwEYYPaHR0cDovL3Rl --c3QvNjk3MBGGD2h0dHA6Ly90ZXN0LzY5ODARhg9odHRwOi8vdGVzdC82OTkwEYYP --aHR0cDovL3Rlc3QvNzAwMBGGD2h0dHA6Ly90ZXN0LzcwMTARhg9odHRwOi8vdGVz --dC83MDIwEYYPaHR0cDovL3Rlc3QvNzAzMBGGD2h0dHA6Ly90ZXN0LzcwNDARhg9o --dHRwOi8vdGVzdC83MDUwEYYPaHR0cDovL3Rlc3QvNzA2MBGGD2h0dHA6Ly90ZXN0 --LzcwNzARhg9odHRwOi8vdGVzdC83MDgwEYYPaHR0cDovL3Rlc3QvNzA5MBGGD2h0 --dHA6Ly90ZXN0LzcxMDARhg9odHRwOi8vdGVzdC83MTEwEYYPaHR0cDovL3Rlc3Qv --NzEyMBGGD2h0dHA6Ly90ZXN0LzcxMzARhg9odHRwOi8vdGVzdC83MTQwEYYPaHR0 --cDovL3Rlc3QvNzE1MBGGD2h0dHA6Ly90ZXN0LzcxNjARhg9odHRwOi8vdGVzdC83 --MTcwEYYPaHR0cDovL3Rlc3QvNzE4MBGGD2h0dHA6Ly90ZXN0LzcxOTARhg9odHRw --Oi8vdGVzdC83MjAwEYYPaHR0cDovL3Rlc3QvNzIxMBGGD2h0dHA6Ly90ZXN0Lzcy --MjARhg9odHRwOi8vdGVzdC83MjMwEYYPaHR0cDovL3Rlc3QvNzI0MBGGD2h0dHA6 --Ly90ZXN0LzcyNTARhg9odHRwOi8vdGVzdC83MjYwEYYPaHR0cDovL3Rlc3QvNzI3 --MBGGD2h0dHA6Ly90ZXN0LzcyODARhg9odHRwOi8vdGVzdC83MjkwEYYPaHR0cDov --L3Rlc3QvNzMwMBGGD2h0dHA6Ly90ZXN0LzczMTARhg9odHRwOi8vdGVzdC83MzIw --EYYPaHR0cDovL3Rlc3QvNzMzMBGGD2h0dHA6Ly90ZXN0LzczNDARhg9odHRwOi8v --dGVzdC83MzUwEYYPaHR0cDovL3Rlc3QvNzM2MBGGD2h0dHA6Ly90ZXN0LzczNzAR --hg9odHRwOi8vdGVzdC83MzgwEYYPaHR0cDovL3Rlc3QvNzM5MBGGD2h0dHA6Ly90 --ZXN0Lzc0MDARhg9odHRwOi8vdGVzdC83NDEwEYYPaHR0cDovL3Rlc3QvNzQyMBGG --D2h0dHA6Ly90ZXN0Lzc0MzARhg9odHRwOi8vdGVzdC83NDQwEYYPaHR0cDovL3Rl --c3QvNzQ1MBGGD2h0dHA6Ly90ZXN0Lzc0NjARhg9odHRwOi8vdGVzdC83NDcwEYYP --aHR0cDovL3Rlc3QvNzQ4MBGGD2h0dHA6Ly90ZXN0Lzc0OTARhg9odHRwOi8vdGVz --dC83NTAwEYYPaHR0cDovL3Rlc3QvNzUxMBGGD2h0dHA6Ly90ZXN0Lzc1MjARhg9o --dHRwOi8vdGVzdC83NTMwEYYPaHR0cDovL3Rlc3QvNzU0MBGGD2h0dHA6Ly90ZXN0 --Lzc1NTARhg9odHRwOi8vdGVzdC83NTYwEYYPaHR0cDovL3Rlc3QvNzU3MBGGD2h0 --dHA6Ly90ZXN0Lzc1ODARhg9odHRwOi8vdGVzdC83NTkwEYYPaHR0cDovL3Rlc3Qv --NzYwMBGGD2h0dHA6Ly90ZXN0Lzc2MTARhg9odHRwOi8vdGVzdC83NjIwEYYPaHR0 --cDovL3Rlc3QvNzYzMBGGD2h0dHA6Ly90ZXN0Lzc2NDARhg9odHRwOi8vdGVzdC83 --NjUwEYYPaHR0cDovL3Rlc3QvNzY2MBGGD2h0dHA6Ly90ZXN0Lzc2NzARhg9odHRw --Oi8vdGVzdC83NjgwEYYPaHR0cDovL3Rlc3QvNzY5MBGGD2h0dHA6Ly90ZXN0Lzc3 --MDARhg9odHRwOi8vdGVzdC83NzEwEYYPaHR0cDovL3Rlc3QvNzcyMBGGD2h0dHA6 --Ly90ZXN0Lzc3MzARhg9odHRwOi8vdGVzdC83NzQwEYYPaHR0cDovL3Rlc3QvNzc1 --MBGGD2h0dHA6Ly90ZXN0Lzc3NjARhg9odHRwOi8vdGVzdC83NzcwEYYPaHR0cDov --L3Rlc3QvNzc4MBGGD2h0dHA6Ly90ZXN0Lzc3OTARhg9odHRwOi8vdGVzdC83ODAw --EYYPaHR0cDovL3Rlc3QvNzgxMBGGD2h0dHA6Ly90ZXN0Lzc4MjARhg9odHRwOi8v --dGVzdC83ODMwEYYPaHR0cDovL3Rlc3QvNzg0MBGGD2h0dHA6Ly90ZXN0Lzc4NTAR --hg9odHRwOi8vdGVzdC83ODYwEYYPaHR0cDovL3Rlc3QvNzg3MBGGD2h0dHA6Ly90 --ZXN0Lzc4ODARhg9odHRwOi8vdGVzdC83ODkwEYYPaHR0cDovL3Rlc3QvNzkwMBGG --D2h0dHA6Ly90ZXN0Lzc5MTARhg9odHRwOi8vdGVzdC83OTIwEYYPaHR0cDovL3Rl --c3QvNzkzMBGGD2h0dHA6Ly90ZXN0Lzc5NDARhg9odHRwOi8vdGVzdC83OTUwEYYP --aHR0cDovL3Rlc3QvNzk2MBGGD2h0dHA6Ly90ZXN0Lzc5NzARhg9odHRwOi8vdGVz --dC83OTgwEYYPaHR0cDovL3Rlc3QvNzk5MBGGD2h0dHA6Ly90ZXN0LzgwMDARhg9o --dHRwOi8vdGVzdC84MDEwEYYPaHR0cDovL3Rlc3QvODAyMBGGD2h0dHA6Ly90ZXN0 --LzgwMzARhg9odHRwOi8vdGVzdC84MDQwEYYPaHR0cDovL3Rlc3QvODA1MBGGD2h0 --dHA6Ly90ZXN0LzgwNjARhg9odHRwOi8vdGVzdC84MDcwEYYPaHR0cDovL3Rlc3Qv --ODA4MBGGD2h0dHA6Ly90ZXN0LzgwOTARhg9odHRwOi8vdGVzdC84MTAwEYYPaHR0 --cDovL3Rlc3QvODExMBGGD2h0dHA6Ly90ZXN0LzgxMjARhg9odHRwOi8vdGVzdC84 --MTMwEYYPaHR0cDovL3Rlc3QvODE0MBGGD2h0dHA6Ly90ZXN0LzgxNTARhg9odHRw --Oi8vdGVzdC84MTYwEYYPaHR0cDovL3Rlc3QvODE3MBGGD2h0dHA6Ly90ZXN0Lzgx --ODARhg9odHRwOi8vdGVzdC84MTkwEYYPaHR0cDovL3Rlc3QvODIwMBGGD2h0dHA6 --Ly90ZXN0LzgyMTARhg9odHRwOi8vdGVzdC84MjIwEYYPaHR0cDovL3Rlc3QvODIz --MBGGD2h0dHA6Ly90ZXN0LzgyNDARhg9odHRwOi8vdGVzdC84MjUwEYYPaHR0cDov --L3Rlc3QvODI2MBGGD2h0dHA6Ly90ZXN0LzgyNzARhg9odHRwOi8vdGVzdC84Mjgw --EYYPaHR0cDovL3Rlc3QvODI5MBGGD2h0dHA6Ly90ZXN0LzgzMDARhg9odHRwOi8v --dGVzdC84MzEwEYYPaHR0cDovL3Rlc3QvODMyMBGGD2h0dHA6Ly90ZXN0LzgzMzAR --hg9odHRwOi8vdGVzdC84MzQwEYYPaHR0cDovL3Rlc3QvODM1MBGGD2h0dHA6Ly90 --ZXN0LzgzNjARhg9odHRwOi8vdGVzdC84MzcwEYYPaHR0cDovL3Rlc3QvODM4MBGG --D2h0dHA6Ly90ZXN0LzgzOTARhg9odHRwOi8vdGVzdC84NDAwEYYPaHR0cDovL3Rl --c3QvODQxMBGGD2h0dHA6Ly90ZXN0Lzg0MjARhg9odHRwOi8vdGVzdC84NDMwEYYP --aHR0cDovL3Rlc3QvODQ0MBGGD2h0dHA6Ly90ZXN0Lzg0NTARhg9odHRwOi8vdGVz --dC84NDYwEYYPaHR0cDovL3Rlc3QvODQ3MBGGD2h0dHA6Ly90ZXN0Lzg0ODARhg9o --dHRwOi8vdGVzdC84NDkwEYYPaHR0cDovL3Rlc3QvODUwMBGGD2h0dHA6Ly90ZXN0 --Lzg1MTARhg9odHRwOi8vdGVzdC84NTIwEYYPaHR0cDovL3Rlc3QvODUzMBGGD2h0 --dHA6Ly90ZXN0Lzg1NDARhg9odHRwOi8vdGVzdC84NTUwEYYPaHR0cDovL3Rlc3Qv --ODU2MBGGD2h0dHA6Ly90ZXN0Lzg1NzARhg9odHRwOi8vdGVzdC84NTgwEYYPaHR0 --cDovL3Rlc3QvODU5MBGGD2h0dHA6Ly90ZXN0Lzg2MDARhg9odHRwOi8vdGVzdC84 --NjEwEYYPaHR0cDovL3Rlc3QvODYyMBGGD2h0dHA6Ly90ZXN0Lzg2MzARhg9odHRw --Oi8vdGVzdC84NjQwEYYPaHR0cDovL3Rlc3QvODY1MBGGD2h0dHA6Ly90ZXN0Lzg2 --NjARhg9odHRwOi8vdGVzdC84NjcwEYYPaHR0cDovL3Rlc3QvODY4MBGGD2h0dHA6 --Ly90ZXN0Lzg2OTARhg9odHRwOi8vdGVzdC84NzAwEYYPaHR0cDovL3Rlc3QvODcx --MBGGD2h0dHA6Ly90ZXN0Lzg3MjARhg9odHRwOi8vdGVzdC84NzMwEYYPaHR0cDov --L3Rlc3QvODc0MBGGD2h0dHA6Ly90ZXN0Lzg3NTARhg9odHRwOi8vdGVzdC84NzYw --EYYPaHR0cDovL3Rlc3QvODc3MBGGD2h0dHA6Ly90ZXN0Lzg3ODARhg9odHRwOi8v --dGVzdC84NzkwEYYPaHR0cDovL3Rlc3QvODgwMBGGD2h0dHA6Ly90ZXN0Lzg4MTAR --hg9odHRwOi8vdGVzdC84ODIwEYYPaHR0cDovL3Rlc3QvODgzMBGGD2h0dHA6Ly90 --ZXN0Lzg4NDARhg9odHRwOi8vdGVzdC84ODUwEYYPaHR0cDovL3Rlc3QvODg2MBGG --D2h0dHA6Ly90ZXN0Lzg4NzARhg9odHRwOi8vdGVzdC84ODgwEYYPaHR0cDovL3Rl --c3QvODg5MBGGD2h0dHA6Ly90ZXN0Lzg5MDARhg9odHRwOi8vdGVzdC84OTEwEYYP --aHR0cDovL3Rlc3QvODkyMBGGD2h0dHA6Ly90ZXN0Lzg5MzARhg9odHRwOi8vdGVz --dC84OTQwEYYPaHR0cDovL3Rlc3QvODk1MBGGD2h0dHA6Ly90ZXN0Lzg5NjARhg9o --dHRwOi8vdGVzdC84OTcwEYYPaHR0cDovL3Rlc3QvODk4MBGGD2h0dHA6Ly90ZXN0 --Lzg5OTARhg9odHRwOi8vdGVzdC85MDAwEYYPaHR0cDovL3Rlc3QvOTAxMBGGD2h0 --dHA6Ly90ZXN0LzkwMjARhg9odHRwOi8vdGVzdC85MDMwEYYPaHR0cDovL3Rlc3Qv --OTA0MBGGD2h0dHA6Ly90ZXN0LzkwNTARhg9odHRwOi8vdGVzdC85MDYwEYYPaHR0 --cDovL3Rlc3QvOTA3MBGGD2h0dHA6Ly90ZXN0LzkwODARhg9odHRwOi8vdGVzdC85 --MDkwEYYPaHR0cDovL3Rlc3QvOTEwMBGGD2h0dHA6Ly90ZXN0LzkxMTARhg9odHRw --Oi8vdGVzdC85MTIwEYYPaHR0cDovL3Rlc3QvOTEzMBGGD2h0dHA6Ly90ZXN0Lzkx --NDARhg9odHRwOi8vdGVzdC85MTUwEYYPaHR0cDovL3Rlc3QvOTE2MBGGD2h0dHA6 --Ly90ZXN0LzkxNzARhg9odHRwOi8vdGVzdC85MTgwEYYPaHR0cDovL3Rlc3QvOTE5 --MBGGD2h0dHA6Ly90ZXN0LzkyMDARhg9odHRwOi8vdGVzdC85MjEwEYYPaHR0cDov --L3Rlc3QvOTIyMBGGD2h0dHA6Ly90ZXN0LzkyMzARhg9odHRwOi8vdGVzdC85MjQw --EYYPaHR0cDovL3Rlc3QvOTI1MBGGD2h0dHA6Ly90ZXN0LzkyNjARhg9odHRwOi8v --dGVzdC85MjcwEYYPaHR0cDovL3Rlc3QvOTI4MBGGD2h0dHA6Ly90ZXN0LzkyOTAR --hg9odHRwOi8vdGVzdC85MzAwEYYPaHR0cDovL3Rlc3QvOTMxMBGGD2h0dHA6Ly90 --ZXN0LzkzMjARhg9odHRwOi8vdGVzdC85MzMwEYYPaHR0cDovL3Rlc3QvOTM0MBGG --D2h0dHA6Ly90ZXN0LzkzNTARhg9odHRwOi8vdGVzdC85MzYwEYYPaHR0cDovL3Rl --c3QvOTM3MBGGD2h0dHA6Ly90ZXN0LzkzODARhg9odHRwOi8vdGVzdC85MzkwEYYP --aHR0cDovL3Rlc3QvOTQwMBGGD2h0dHA6Ly90ZXN0Lzk0MTARhg9odHRwOi8vdGVz --dC85NDIwEYYPaHR0cDovL3Rlc3QvOTQzMBGGD2h0dHA6Ly90ZXN0Lzk0NDARhg9o --dHRwOi8vdGVzdC85NDUwEYYPaHR0cDovL3Rlc3QvOTQ2MBGGD2h0dHA6Ly90ZXN0 --Lzk0NzARhg9odHRwOi8vdGVzdC85NDgwEYYPaHR0cDovL3Rlc3QvOTQ5MBGGD2h0 --dHA6Ly90ZXN0Lzk1MDARhg9odHRwOi8vdGVzdC85NTEwEYYPaHR0cDovL3Rlc3Qv --OTUyMBGGD2h0dHA6Ly90ZXN0Lzk1MzARhg9odHRwOi8vdGVzdC85NTQwEYYPaHR0 --cDovL3Rlc3QvOTU1MBGGD2h0dHA6Ly90ZXN0Lzk1NjARhg9odHRwOi8vdGVzdC85 --NTcwEYYPaHR0cDovL3Rlc3QvOTU4MBGGD2h0dHA6Ly90ZXN0Lzk1OTARhg9odHRw --Oi8vdGVzdC85NjAwEYYPaHR0cDovL3Rlc3QvOTYxMBGGD2h0dHA6Ly90ZXN0Lzk2 --MjARhg9odHRwOi8vdGVzdC85NjMwEYYPaHR0cDovL3Rlc3QvOTY0MBGGD2h0dHA6 --Ly90ZXN0Lzk2NTARhg9odHRwOi8vdGVzdC85NjYwEYYPaHR0cDovL3Rlc3QvOTY3 --MBGGD2h0dHA6Ly90ZXN0Lzk2ODARhg9odHRwOi8vdGVzdC85NjkwEYYPaHR0cDov --L3Rlc3QvOTcwMBGGD2h0dHA6Ly90ZXN0Lzk3MTARhg9odHRwOi8vdGVzdC85NzIw --EYYPaHR0cDovL3Rlc3QvOTczMBGGD2h0dHA6Ly90ZXN0Lzk3NDARhg9odHRwOi8v --dGVzdC85NzUwEYYPaHR0cDovL3Rlc3QvOTc2MBGGD2h0dHA6Ly90ZXN0Lzk3NzAR --hg9odHRwOi8vdGVzdC85NzgwEYYPaHR0cDovL3Rlc3QvOTc5MBGGD2h0dHA6Ly90 --ZXN0Lzk4MDARhg9odHRwOi8vdGVzdC85ODEwEYYPaHR0cDovL3Rlc3QvOTgyMBGG --D2h0dHA6Ly90ZXN0Lzk4MzARhg9odHRwOi8vdGVzdC85ODQwEYYPaHR0cDovL3Rl --c3QvOTg1MBGGD2h0dHA6Ly90ZXN0Lzk4NjARhg9odHRwOi8vdGVzdC85ODcwEYYP --aHR0cDovL3Rlc3QvOTg4MBGGD2h0dHA6Ly90ZXN0Lzk4OTARhg9odHRwOi8vdGVz --dC85OTAwEYYPaHR0cDovL3Rlc3QvOTkxMBGGD2h0dHA6Ly90ZXN0Lzk5MjARhg9o --dHRwOi8vdGVzdC85OTMwEYYPaHR0cDovL3Rlc3QvOTk0MBGGD2h0dHA6Ly90ZXN0 --Lzk5NTARhg9odHRwOi8vdGVzdC85OTYwEYYPaHR0cDovL3Rlc3QvOTk3MBGGD2h0 --dHA6Ly90ZXN0Lzk5ODARhg9odHRwOi8vdGVzdC85OTkwEoYQaHR0cDovL3Rlc3Qv --MTAwMDAShhBodHRwOi8vdGVzdC8xMDAxMBKGEGh0dHA6Ly90ZXN0LzEwMDIwEoYQ --aHR0cDovL3Rlc3QvMTAwMzAShhBodHRwOi8vdGVzdC8xMDA0MBKGEGh0dHA6Ly90 --ZXN0LzEwMDUwEoYQaHR0cDovL3Rlc3QvMTAwNjAShhBodHRwOi8vdGVzdC8xMDA3 --MBKGEGh0dHA6Ly90ZXN0LzEwMDgwEoYQaHR0cDovL3Rlc3QvMTAwOTAShhBodHRw --Oi8vdGVzdC8xMDEwMBKGEGh0dHA6Ly90ZXN0LzEwMTEwEoYQaHR0cDovL3Rlc3Qv --MTAxMjAShhBodHRwOi8vdGVzdC8xMDEzMBKGEGh0dHA6Ly90ZXN0LzEwMTQwEoYQ --aHR0cDovL3Rlc3QvMTAxNTAShhBodHRwOi8vdGVzdC8xMDE2MBKGEGh0dHA6Ly90 --ZXN0LzEwMTcwEoYQaHR0cDovL3Rlc3QvMTAxODAShhBodHRwOi8vdGVzdC8xMDE5 --MBKGEGh0dHA6Ly90ZXN0LzEwMjAwEoYQaHR0cDovL3Rlc3QvMTAyMTAShhBodHRw --Oi8vdGVzdC8xMDIyMBKGEGh0dHA6Ly90ZXN0LzEwMjMwEoYQaHR0cDovL3Rlc3Qv --MTAyNKGC0zYwCYIHeDAudGVzdDAJggd4MS50ZXN0MAmCB3gyLnRlc3QwCYIHeDMu --dGVzdDAJggd4NC50ZXN0MAmCB3g1LnRlc3QwCYIHeDYudGVzdDAJggd4Ny50ZXN0 --MAmCB3g4LnRlc3QwCYIHeDkudGVzdDAKggh4MTAudGVzdDAKggh4MTEudGVzdDAK --ggh4MTIudGVzdDAKggh4MTMudGVzdDAKggh4MTQudGVzdDAKggh4MTUudGVzdDAK --ggh4MTYudGVzdDAKggh4MTcudGVzdDAKggh4MTgudGVzdDAKggh4MTkudGVzdDAK --ggh4MjAudGVzdDAKggh4MjEudGVzdDAKggh4MjIudGVzdDAKggh4MjMudGVzdDAK --ggh4MjQudGVzdDAKggh4MjUudGVzdDAKggh4MjYudGVzdDAKggh4MjcudGVzdDAK --ggh4MjgudGVzdDAKggh4MjkudGVzdDAKggh4MzAudGVzdDAKggh4MzEudGVzdDAK --ggh4MzIudGVzdDAKggh4MzMudGVzdDAKggh4MzQudGVzdDAKggh4MzUudGVzdDAK --ggh4MzYudGVzdDAKggh4MzcudGVzdDAKggh4MzgudGVzdDAKggh4MzkudGVzdDAK --ggh4NDAudGVzdDAKggh4NDEudGVzdDAKggh4NDIudGVzdDAKggh4NDMudGVzdDAK --ggh4NDQudGVzdDAKggh4NDUudGVzdDAKggh4NDYudGVzdDAKggh4NDcudGVzdDAK --ggh4NDgudGVzdDAKggh4NDkudGVzdDAKggh4NTAudGVzdDAKggh4NTEudGVzdDAK --ggh4NTIudGVzdDAKggh4NTMudGVzdDAKggh4NTQudGVzdDAKggh4NTUudGVzdDAK --ggh4NTYudGVzdDAKggh4NTcudGVzdDAKggh4NTgudGVzdDAKggh4NTkudGVzdDAK --ggh4NjAudGVzdDAKggh4NjEudGVzdDAKggh4NjIudGVzdDAKggh4NjMudGVzdDAK --ggh4NjQudGVzdDAKggh4NjUudGVzdDAKggh4NjYudGVzdDAKggh4NjcudGVzdDAK --ggh4NjgudGVzdDAKggh4NjkudGVzdDAKggh4NzAudGVzdDAKggh4NzEudGVzdDAK --ggh4NzIudGVzdDAKggh4NzMudGVzdDAKggh4NzQudGVzdDAKggh4NzUudGVzdDAK --ggh4NzYudGVzdDAKggh4NzcudGVzdDAKggh4NzgudGVzdDAKggh4NzkudGVzdDAK --ggh4ODAudGVzdDAKggh4ODEudGVzdDAKggh4ODIudGVzdDAKggh4ODMudGVzdDAK --ggh4ODQudGVzdDAKggh4ODUudGVzdDAKggh4ODYudGVzdDAKggh4ODcudGVzdDAK --ggh4ODgudGVzdDAKggh4ODkudGVzdDAKggh4OTAudGVzdDAKggh4OTEudGVzdDAK --ggh4OTIudGVzdDAKggh4OTMudGVzdDAKggh4OTQudGVzdDAKggh4OTUudGVzdDAK --ggh4OTYudGVzdDAKggh4OTcudGVzdDAKggh4OTgudGVzdDAKggh4OTkudGVzdDAL --ggl4MTAwLnRlc3QwC4IJeDEwMS50ZXN0MAuCCXgxMDIudGVzdDALggl4MTAzLnRl --c3QwC4IJeDEwNC50ZXN0MAuCCXgxMDUudGVzdDALggl4MTA2LnRlc3QwC4IJeDEw --Ny50ZXN0MAuCCXgxMDgudGVzdDALggl4MTA5LnRlc3QwC4IJeDExMC50ZXN0MAuC --CXgxMTEudGVzdDALggl4MTEyLnRlc3QwC4IJeDExMy50ZXN0MAuCCXgxMTQudGVz --dDALggl4MTE1LnRlc3QwC4IJeDExNi50ZXN0MAuCCXgxMTcudGVzdDALggl4MTE4 --LnRlc3QwC4IJeDExOS50ZXN0MAuCCXgxMjAudGVzdDALggl4MTIxLnRlc3QwC4IJ --eDEyMi50ZXN0MAuCCXgxMjMudGVzdDALggl4MTI0LnRlc3QwC4IJeDEyNS50ZXN0 --MAuCCXgxMjYudGVzdDALggl4MTI3LnRlc3QwC4IJeDEyOC50ZXN0MAuCCXgxMjku --dGVzdDALggl4MTMwLnRlc3QwC4IJeDEzMS50ZXN0MAuCCXgxMzIudGVzdDALggl4 --MTMzLnRlc3QwC4IJeDEzNC50ZXN0MAuCCXgxMzUudGVzdDALggl4MTM2LnRlc3Qw --C4IJeDEzNy50ZXN0MAuCCXgxMzgudGVzdDALggl4MTM5LnRlc3QwC4IJeDE0MC50 --ZXN0MAuCCXgxNDEudGVzdDALggl4MTQyLnRlc3QwC4IJeDE0My50ZXN0MAuCCXgx --NDQudGVzdDALggl4MTQ1LnRlc3QwC4IJeDE0Ni50ZXN0MAuCCXgxNDcudGVzdDAL --ggl4MTQ4LnRlc3QwC4IJeDE0OS50ZXN0MAuCCXgxNTAudGVzdDALggl4MTUxLnRl --c3QwC4IJeDE1Mi50ZXN0MAuCCXgxNTMudGVzdDALggl4MTU0LnRlc3QwC4IJeDE1 --NS50ZXN0MAuCCXgxNTYudGVzdDALggl4MTU3LnRlc3QwC4IJeDE1OC50ZXN0MAuC --CXgxNTkudGVzdDALggl4MTYwLnRlc3QwC4IJeDE2MS50ZXN0MAuCCXgxNjIudGVz --dDALggl4MTYzLnRlc3QwC4IJeDE2NC50ZXN0MAuCCXgxNjUudGVzdDALggl4MTY2 --LnRlc3QwC4IJeDE2Ny50ZXN0MAuCCXgxNjgudGVzdDALggl4MTY5LnRlc3QwC4IJ --eDE3MC50ZXN0MAuCCXgxNzEudGVzdDALggl4MTcyLnRlc3QwC4IJeDE3My50ZXN0 --MAuCCXgxNzQudGVzdDALggl4MTc1LnRlc3QwC4IJeDE3Ni50ZXN0MAuCCXgxNzcu --dGVzdDALggl4MTc4LnRlc3QwC4IJeDE3OS50ZXN0MAuCCXgxODAudGVzdDALggl4 --MTgxLnRlc3QwC4IJeDE4Mi50ZXN0MAuCCXgxODMudGVzdDALggl4MTg0LnRlc3Qw --C4IJeDE4NS50ZXN0MAuCCXgxODYudGVzdDALggl4MTg3LnRlc3QwC4IJeDE4OC50 --ZXN0MAuCCXgxODkudGVzdDALggl4MTkwLnRlc3QwC4IJeDE5MS50ZXN0MAuCCXgx --OTIudGVzdDALggl4MTkzLnRlc3QwC4IJeDE5NC50ZXN0MAuCCXgxOTUudGVzdDAL --ggl4MTk2LnRlc3QwC4IJeDE5Ny50ZXN0MAuCCXgxOTgudGVzdDALggl4MTk5LnRl --c3QwC4IJeDIwMC50ZXN0MAuCCXgyMDEudGVzdDALggl4MjAyLnRlc3QwC4IJeDIw --My50ZXN0MAuCCXgyMDQudGVzdDALggl4MjA1LnRlc3QwC4IJeDIwNi50ZXN0MAuC --CXgyMDcudGVzdDALggl4MjA4LnRlc3QwC4IJeDIwOS50ZXN0MAuCCXgyMTAudGVz --dDALggl4MjExLnRlc3QwC4IJeDIxMi50ZXN0MAuCCXgyMTMudGVzdDALggl4MjE0 --LnRlc3QwC4IJeDIxNS50ZXN0MAuCCXgyMTYudGVzdDALggl4MjE3LnRlc3QwC4IJ --eDIxOC50ZXN0MAuCCXgyMTkudGVzdDALggl4MjIwLnRlc3QwC4IJeDIyMS50ZXN0 --MAuCCXgyMjIudGVzdDALggl4MjIzLnRlc3QwC4IJeDIyNC50ZXN0MAuCCXgyMjUu --dGVzdDALggl4MjI2LnRlc3QwC4IJeDIyNy50ZXN0MAuCCXgyMjgudGVzdDALggl4 --MjI5LnRlc3QwC4IJeDIzMC50ZXN0MAuCCXgyMzEudGVzdDALggl4MjMyLnRlc3Qw --C4IJeDIzMy50ZXN0MAuCCXgyMzQudGVzdDALggl4MjM1LnRlc3QwC4IJeDIzNi50 --ZXN0MAuCCXgyMzcudGVzdDALggl4MjM4LnRlc3QwC4IJeDIzOS50ZXN0MAuCCXgy --NDAudGVzdDALggl4MjQxLnRlc3QwC4IJeDI0Mi50ZXN0MAuCCXgyNDMudGVzdDAL --ggl4MjQ0LnRlc3QwC4IJeDI0NS50ZXN0MAuCCXgyNDYudGVzdDALggl4MjQ3LnRl --c3QwC4IJeDI0OC50ZXN0MAuCCXgyNDkudGVzdDALggl4MjUwLnRlc3QwC4IJeDI1 --MS50ZXN0MAuCCXgyNTIudGVzdDALggl4MjUzLnRlc3QwC4IJeDI1NC50ZXN0MAuC --CXgyNTUudGVzdDALggl4MjU2LnRlc3QwC4IJeDI1Ny50ZXN0MAuCCXgyNTgudGVz --dDALggl4MjU5LnRlc3QwC4IJeDI2MC50ZXN0MAuCCXgyNjEudGVzdDALggl4MjYy --LnRlc3QwC4IJeDI2My50ZXN0MAuCCXgyNjQudGVzdDALggl4MjY1LnRlc3QwC4IJ --eDI2Ni50ZXN0MAuCCXgyNjcudGVzdDALggl4MjY4LnRlc3QwC4IJeDI2OS50ZXN0 --MAuCCXgyNzAudGVzdDALggl4MjcxLnRlc3QwC4IJeDI3Mi50ZXN0MAuCCXgyNzMu --dGVzdDALggl4Mjc0LnRlc3QwC4IJeDI3NS50ZXN0MAuCCXgyNzYudGVzdDALggl4 --Mjc3LnRlc3QwC4IJeDI3OC50ZXN0MAuCCXgyNzkudGVzdDALggl4MjgwLnRlc3Qw --C4IJeDI4MS50ZXN0MAuCCXgyODIudGVzdDALggl4MjgzLnRlc3QwC4IJeDI4NC50 --ZXN0MAuCCXgyODUudGVzdDALggl4Mjg2LnRlc3QwC4IJeDI4Ny50ZXN0MAuCCXgy --ODgudGVzdDALggl4Mjg5LnRlc3QwC4IJeDI5MC50ZXN0MAuCCXgyOTEudGVzdDAL --ggl4MjkyLnRlc3QwC4IJeDI5My50ZXN0MAuCCXgyOTQudGVzdDALggl4Mjk1LnRl --c3QwC4IJeDI5Ni50ZXN0MAuCCXgyOTcudGVzdDALggl4Mjk4LnRlc3QwC4IJeDI5 --OS50ZXN0MAuCCXgzMDAudGVzdDALggl4MzAxLnRlc3QwC4IJeDMwMi50ZXN0MAuC --CXgzMDMudGVzdDALggl4MzA0LnRlc3QwC4IJeDMwNS50ZXN0MAuCCXgzMDYudGVz --dDALggl4MzA3LnRlc3QwC4IJeDMwOC50ZXN0MAuCCXgzMDkudGVzdDALggl4MzEw --LnRlc3QwC4IJeDMxMS50ZXN0MAuCCXgzMTIudGVzdDALggl4MzEzLnRlc3QwC4IJ --eDMxNC50ZXN0MAuCCXgzMTUudGVzdDALggl4MzE2LnRlc3QwC4IJeDMxNy50ZXN0 --MAuCCXgzMTgudGVzdDALggl4MzE5LnRlc3QwC4IJeDMyMC50ZXN0MAuCCXgzMjEu --dGVzdDALggl4MzIyLnRlc3QwC4IJeDMyMy50ZXN0MAuCCXgzMjQudGVzdDALggl4 --MzI1LnRlc3QwC4IJeDMyNi50ZXN0MAuCCXgzMjcudGVzdDALggl4MzI4LnRlc3Qw --C4IJeDMyOS50ZXN0MAuCCXgzMzAudGVzdDALggl4MzMxLnRlc3QwC4IJeDMzMi50 --ZXN0MAuCCXgzMzMudGVzdDALggl4MzM0LnRlc3QwC4IJeDMzNS50ZXN0MAuCCXgz --MzYudGVzdDALggl4MzM3LnRlc3QwC4IJeDMzOC50ZXN0MAuCCXgzMzkudGVzdDAL --ggl4MzQwLnRlc3QwC4IJeDM0MS50ZXN0MAuCCXgzNDIudGVzdDALggl4MzQzLnRl --c3QwC4IJeDM0NC50ZXN0MAuCCXgzNDUudGVzdDALggl4MzQ2LnRlc3QwC4IJeDM0 --Ny50ZXN0MAuCCXgzNDgudGVzdDALggl4MzQ5LnRlc3QwC4IJeDM1MC50ZXN0MAuC --CXgzNTEudGVzdDALggl4MzUyLnRlc3QwC4IJeDM1My50ZXN0MAuCCXgzNTQudGVz --dDALggl4MzU1LnRlc3QwC4IJeDM1Ni50ZXN0MAuCCXgzNTcudGVzdDALggl4MzU4 --LnRlc3QwC4IJeDM1OS50ZXN0MAuCCXgzNjAudGVzdDALggl4MzYxLnRlc3QwC4IJ --eDM2Mi50ZXN0MAuCCXgzNjMudGVzdDALggl4MzY0LnRlc3QwC4IJeDM2NS50ZXN0 --MAuCCXgzNjYudGVzdDALggl4MzY3LnRlc3QwC4IJeDM2OC50ZXN0MAuCCXgzNjku --dGVzdDALggl4MzcwLnRlc3QwC4IJeDM3MS50ZXN0MAuCCXgzNzIudGVzdDALggl4 --MzczLnRlc3QwC4IJeDM3NC50ZXN0MAuCCXgzNzUudGVzdDALggl4Mzc2LnRlc3Qw --C4IJeDM3Ny50ZXN0MAuCCXgzNzgudGVzdDALggl4Mzc5LnRlc3QwC4IJeDM4MC50 --ZXN0MAuCCXgzODEudGVzdDALggl4MzgyLnRlc3QwC4IJeDM4My50ZXN0MAuCCXgz --ODQudGVzdDALggl4Mzg1LnRlc3QwC4IJeDM4Ni50ZXN0MAuCCXgzODcudGVzdDAL --ggl4Mzg4LnRlc3QwC4IJeDM4OS50ZXN0MAuCCXgzOTAudGVzdDALggl4MzkxLnRl --c3QwC4IJeDM5Mi50ZXN0MAuCCXgzOTMudGVzdDALggl4Mzk0LnRlc3QwC4IJeDM5 --NS50ZXN0MAuCCXgzOTYudGVzdDALggl4Mzk3LnRlc3QwC4IJeDM5OC50ZXN0MAuC --CXgzOTkudGVzdDALggl4NDAwLnRlc3QwC4IJeDQwMS50ZXN0MAuCCXg0MDIudGVz --dDALggl4NDAzLnRlc3QwC4IJeDQwNC50ZXN0MAuCCXg0MDUudGVzdDALggl4NDA2 --LnRlc3QwC4IJeDQwNy50ZXN0MAuCCXg0MDgudGVzdDALggl4NDA5LnRlc3QwC4IJ --eDQxMC50ZXN0MAuCCXg0MTEudGVzdDALggl4NDEyLnRlc3QwC4IJeDQxMy50ZXN0 --MAuCCXg0MTQudGVzdDALggl4NDE1LnRlc3QwC4IJeDQxNi50ZXN0MAuCCXg0MTcu --dGVzdDALggl4NDE4LnRlc3QwC4IJeDQxOS50ZXN0MAuCCXg0MjAudGVzdDALggl4 --NDIxLnRlc3QwC4IJeDQyMi50ZXN0MAuCCXg0MjMudGVzdDALggl4NDI0LnRlc3Qw --C4IJeDQyNS50ZXN0MAuCCXg0MjYudGVzdDALggl4NDI3LnRlc3QwC4IJeDQyOC50 --ZXN0MAuCCXg0MjkudGVzdDALggl4NDMwLnRlc3QwC4IJeDQzMS50ZXN0MAuCCXg0 --MzIudGVzdDALggl4NDMzLnRlc3QwC4IJeDQzNC50ZXN0MAuCCXg0MzUudGVzdDAL --ggl4NDM2LnRlc3QwC4IJeDQzNy50ZXN0MAuCCXg0MzgudGVzdDALggl4NDM5LnRl --c3QwC4IJeDQ0MC50ZXN0MAuCCXg0NDEudGVzdDALggl4NDQyLnRlc3QwC4IJeDQ0 --My50ZXN0MAuCCXg0NDQudGVzdDALggl4NDQ1LnRlc3QwC4IJeDQ0Ni50ZXN0MAuC --CXg0NDcudGVzdDALggl4NDQ4LnRlc3QwC4IJeDQ0OS50ZXN0MAuCCXg0NTAudGVz --dDALggl4NDUxLnRlc3QwC4IJeDQ1Mi50ZXN0MAuCCXg0NTMudGVzdDALggl4NDU0 --LnRlc3QwC4IJeDQ1NS50ZXN0MAuCCXg0NTYudGVzdDALggl4NDU3LnRlc3QwC4IJ --eDQ1OC50ZXN0MAuCCXg0NTkudGVzdDALggl4NDYwLnRlc3QwC4IJeDQ2MS50ZXN0 --MAuCCXg0NjIudGVzdDALggl4NDYzLnRlc3QwC4IJeDQ2NC50ZXN0MAuCCXg0NjUu --dGVzdDALggl4NDY2LnRlc3QwC4IJeDQ2Ny50ZXN0MAuCCXg0NjgudGVzdDALggl4 --NDY5LnRlc3QwC4IJeDQ3MC50ZXN0MAuCCXg0NzEudGVzdDALggl4NDcyLnRlc3Qw --C4IJeDQ3My50ZXN0MAuCCXg0NzQudGVzdDALggl4NDc1LnRlc3QwC4IJeDQ3Ni50 --ZXN0MAuCCXg0NzcudGVzdDALggl4NDc4LnRlc3QwC4IJeDQ3OS50ZXN0MAuCCXg0 --ODAudGVzdDALggl4NDgxLnRlc3QwC4IJeDQ4Mi50ZXN0MAuCCXg0ODMudGVzdDAL --ggl4NDg0LnRlc3QwC4IJeDQ4NS50ZXN0MAuCCXg0ODYudGVzdDALggl4NDg3LnRl --c3QwC4IJeDQ4OC50ZXN0MAuCCXg0ODkudGVzdDALggl4NDkwLnRlc3QwC4IJeDQ5 --MS50ZXN0MAuCCXg0OTIudGVzdDALggl4NDkzLnRlc3QwC4IJeDQ5NC50ZXN0MAuC --CXg0OTUudGVzdDALggl4NDk2LnRlc3QwC4IJeDQ5Ny50ZXN0MAuCCXg0OTgudGVz --dDALggl4NDk5LnRlc3QwC4IJeDUwMC50ZXN0MAuCCXg1MDEudGVzdDALggl4NTAy --LnRlc3QwC4IJeDUwMy50ZXN0MAuCCXg1MDQudGVzdDALggl4NTA1LnRlc3QwC4IJ --eDUwNi50ZXN0MAuCCXg1MDcudGVzdDALggl4NTA4LnRlc3QwC4IJeDUwOS50ZXN0 --MAuCCXg1MTAudGVzdDALggl4NTExLnRlc3QwC4IJeDUxMi50ZXN0MAuCCXg1MTMu --dGVzdDALggl4NTE0LnRlc3QwC4IJeDUxNS50ZXN0MAuCCXg1MTYudGVzdDALggl4 --NTE3LnRlc3QwC4IJeDUxOC50ZXN0MAuCCXg1MTkudGVzdDALggl4NTIwLnRlc3Qw --C4IJeDUyMS50ZXN0MAuCCXg1MjIudGVzdDALggl4NTIzLnRlc3QwC4IJeDUyNC50 --ZXN0MAuCCXg1MjUudGVzdDALggl4NTI2LnRlc3QwC4IJeDUyNy50ZXN0MAuCCXg1 --MjgudGVzdDALggl4NTI5LnRlc3QwC4IJeDUzMC50ZXN0MAuCCXg1MzEudGVzdDAL --ggl4NTMyLnRlc3QwC4IJeDUzMy50ZXN0MAuCCXg1MzQudGVzdDALggl4NTM1LnRl --c3QwC4IJeDUzNi50ZXN0MAuCCXg1MzcudGVzdDALggl4NTM4LnRlc3QwC4IJeDUz --OS50ZXN0MAuCCXg1NDAudGVzdDALggl4NTQxLnRlc3QwC4IJeDU0Mi50ZXN0MAuC --CXg1NDMudGVzdDALggl4NTQ0LnRlc3QwC4IJeDU0NS50ZXN0MAuCCXg1NDYudGVz --dDALggl4NTQ3LnRlc3QwC4IJeDU0OC50ZXN0MAuCCXg1NDkudGVzdDALggl4NTUw --LnRlc3QwC4IJeDU1MS50ZXN0MAuCCXg1NTIudGVzdDALggl4NTUzLnRlc3QwC4IJ --eDU1NC50ZXN0MAuCCXg1NTUudGVzdDALggl4NTU2LnRlc3QwC4IJeDU1Ny50ZXN0 --MAuCCXg1NTgudGVzdDALggl4NTU5LnRlc3QwC4IJeDU2MC50ZXN0MAuCCXg1NjEu --dGVzdDALggl4NTYyLnRlc3QwC4IJeDU2My50ZXN0MAuCCXg1NjQudGVzdDALggl4 --NTY1LnRlc3QwC4IJeDU2Ni50ZXN0MAuCCXg1NjcudGVzdDALggl4NTY4LnRlc3Qw --C4IJeDU2OS50ZXN0MAuCCXg1NzAudGVzdDALggl4NTcxLnRlc3QwC4IJeDU3Mi50 --ZXN0MAuCCXg1NzMudGVzdDALggl4NTc0LnRlc3QwC4IJeDU3NS50ZXN0MAuCCXg1 --NzYudGVzdDALggl4NTc3LnRlc3QwC4IJeDU3OC50ZXN0MAuCCXg1NzkudGVzdDAL --ggl4NTgwLnRlc3QwC4IJeDU4MS50ZXN0MAuCCXg1ODIudGVzdDALggl4NTgzLnRl --c3QwC4IJeDU4NC50ZXN0MAuCCXg1ODUudGVzdDALggl4NTg2LnRlc3QwC4IJeDU4 --Ny50ZXN0MAuCCXg1ODgudGVzdDALggl4NTg5LnRlc3QwC4IJeDU5MC50ZXN0MAuC --CXg1OTEudGVzdDALggl4NTkyLnRlc3QwC4IJeDU5My50ZXN0MAuCCXg1OTQudGVz --dDALggl4NTk1LnRlc3QwC4IJeDU5Ni50ZXN0MAuCCXg1OTcudGVzdDALggl4NTk4 --LnRlc3QwC4IJeDU5OS50ZXN0MAuCCXg2MDAudGVzdDALggl4NjAxLnRlc3QwC4IJ --eDYwMi50ZXN0MAuCCXg2MDMudGVzdDALggl4NjA0LnRlc3QwC4IJeDYwNS50ZXN0 --MAuCCXg2MDYudGVzdDALggl4NjA3LnRlc3QwC4IJeDYwOC50ZXN0MAuCCXg2MDku --dGVzdDALggl4NjEwLnRlc3QwC4IJeDYxMS50ZXN0MAuCCXg2MTIudGVzdDALggl4 --NjEzLnRlc3QwC4IJeDYxNC50ZXN0MAuCCXg2MTUudGVzdDALggl4NjE2LnRlc3Qw --C4IJeDYxNy50ZXN0MAuCCXg2MTgudGVzdDALggl4NjE5LnRlc3QwC4IJeDYyMC50 --ZXN0MAuCCXg2MjEudGVzdDALggl4NjIyLnRlc3QwC4IJeDYyMy50ZXN0MAuCCXg2 --MjQudGVzdDALggl4NjI1LnRlc3QwC4IJeDYyNi50ZXN0MAuCCXg2MjcudGVzdDAL --ggl4NjI4LnRlc3QwC4IJeDYyOS50ZXN0MAuCCXg2MzAudGVzdDALggl4NjMxLnRl --c3QwC4IJeDYzMi50ZXN0MAuCCXg2MzMudGVzdDALggl4NjM0LnRlc3QwC4IJeDYz --NS50ZXN0MAuCCXg2MzYudGVzdDALggl4NjM3LnRlc3QwC4IJeDYzOC50ZXN0MAuC --CXg2MzkudGVzdDALggl4NjQwLnRlc3QwC4IJeDY0MS50ZXN0MAuCCXg2NDIudGVz --dDALggl4NjQzLnRlc3QwC4IJeDY0NC50ZXN0MAuCCXg2NDUudGVzdDALggl4NjQ2 --LnRlc3QwC4IJeDY0Ny50ZXN0MAuCCXg2NDgudGVzdDALggl4NjQ5LnRlc3QwC4IJ --eDY1MC50ZXN0MAuCCXg2NTEudGVzdDALggl4NjUyLnRlc3QwC4IJeDY1My50ZXN0 --MAuCCXg2NTQudGVzdDALggl4NjU1LnRlc3QwC4IJeDY1Ni50ZXN0MAuCCXg2NTcu --dGVzdDALggl4NjU4LnRlc3QwC4IJeDY1OS50ZXN0MAuCCXg2NjAudGVzdDALggl4 --NjYxLnRlc3QwC4IJeDY2Mi50ZXN0MAuCCXg2NjMudGVzdDALggl4NjY0LnRlc3Qw --C4IJeDY2NS50ZXN0MAuCCXg2NjYudGVzdDALggl4NjY3LnRlc3QwC4IJeDY2OC50 --ZXN0MAuCCXg2NjkudGVzdDALggl4NjcwLnRlc3QwC4IJeDY3MS50ZXN0MAuCCXg2 --NzIudGVzdDALggl4NjczLnRlc3QwC4IJeDY3NC50ZXN0MAuCCXg2NzUudGVzdDAL --ggl4Njc2LnRlc3QwC4IJeDY3Ny50ZXN0MAuCCXg2NzgudGVzdDALggl4Njc5LnRl --c3QwC4IJeDY4MC50ZXN0MAuCCXg2ODEudGVzdDALggl4NjgyLnRlc3QwC4IJeDY4 --My50ZXN0MAuCCXg2ODQudGVzdDALggl4Njg1LnRlc3QwC4IJeDY4Ni50ZXN0MAuC --CXg2ODcudGVzdDALggl4Njg4LnRlc3QwC4IJeDY4OS50ZXN0MAuCCXg2OTAudGVz --dDALggl4NjkxLnRlc3QwC4IJeDY5Mi50ZXN0MAuCCXg2OTMudGVzdDALggl4Njk0 --LnRlc3QwC4IJeDY5NS50ZXN0MAuCCXg2OTYudGVzdDALggl4Njk3LnRlc3QwC4IJ --eDY5OC50ZXN0MAuCCXg2OTkudGVzdDALggl4NzAwLnRlc3QwC4IJeDcwMS50ZXN0 --MAuCCXg3MDIudGVzdDALggl4NzAzLnRlc3QwC4IJeDcwNC50ZXN0MAuCCXg3MDUu --dGVzdDALggl4NzA2LnRlc3QwC4IJeDcwNy50ZXN0MAuCCXg3MDgudGVzdDALggl4 --NzA5LnRlc3QwC4IJeDcxMC50ZXN0MAuCCXg3MTEudGVzdDALggl4NzEyLnRlc3Qw --C4IJeDcxMy50ZXN0MAuCCXg3MTQudGVzdDALggl4NzE1LnRlc3QwC4IJeDcxNi50 --ZXN0MAuCCXg3MTcudGVzdDALggl4NzE4LnRlc3QwC4IJeDcxOS50ZXN0MAuCCXg3 --MjAudGVzdDALggl4NzIxLnRlc3QwC4IJeDcyMi50ZXN0MAuCCXg3MjMudGVzdDAL --ggl4NzI0LnRlc3QwC4IJeDcyNS50ZXN0MAuCCXg3MjYudGVzdDALggl4NzI3LnRl --c3QwC4IJeDcyOC50ZXN0MAuCCXg3MjkudGVzdDALggl4NzMwLnRlc3QwC4IJeDcz --MS50ZXN0MAuCCXg3MzIudGVzdDALggl4NzMzLnRlc3QwC4IJeDczNC50ZXN0MAuC --CXg3MzUudGVzdDALggl4NzM2LnRlc3QwC4IJeDczNy50ZXN0MAuCCXg3MzgudGVz --dDALggl4NzM5LnRlc3QwC4IJeDc0MC50ZXN0MAuCCXg3NDEudGVzdDALggl4NzQy --LnRlc3QwC4IJeDc0My50ZXN0MAuCCXg3NDQudGVzdDALggl4NzQ1LnRlc3QwC4IJ --eDc0Ni50ZXN0MAuCCXg3NDcudGVzdDALggl4NzQ4LnRlc3QwC4IJeDc0OS50ZXN0 --MAuCCXg3NTAudGVzdDALggl4NzUxLnRlc3QwC4IJeDc1Mi50ZXN0MAuCCXg3NTMu --dGVzdDALggl4NzU0LnRlc3QwC4IJeDc1NS50ZXN0MAuCCXg3NTYudGVzdDALggl4 --NzU3LnRlc3QwC4IJeDc1OC50ZXN0MAuCCXg3NTkudGVzdDALggl4NzYwLnRlc3Qw --C4IJeDc2MS50ZXN0MAuCCXg3NjIudGVzdDALggl4NzYzLnRlc3QwC4IJeDc2NC50 --ZXN0MAuCCXg3NjUudGVzdDALggl4NzY2LnRlc3QwC4IJeDc2Ny50ZXN0MAuCCXg3 --NjgudGVzdDALggl4NzY5LnRlc3QwC4IJeDc3MC50ZXN0MAuCCXg3NzEudGVzdDAL --ggl4NzcyLnRlc3QwC4IJeDc3My50ZXN0MAuCCXg3NzQudGVzdDALggl4Nzc1LnRl --c3QwC4IJeDc3Ni50ZXN0MAuCCXg3NzcudGVzdDALggl4Nzc4LnRlc3QwC4IJeDc3 --OS50ZXN0MAuCCXg3ODAudGVzdDALggl4NzgxLnRlc3QwC4IJeDc4Mi50ZXN0MAuC --CXg3ODMudGVzdDALggl4Nzg0LnRlc3QwC4IJeDc4NS50ZXN0MAuCCXg3ODYudGVz --dDALggl4Nzg3LnRlc3QwC4IJeDc4OC50ZXN0MAuCCXg3ODkudGVzdDALggl4Nzkw --LnRlc3QwC4IJeDc5MS50ZXN0MAuCCXg3OTIudGVzdDALggl4NzkzLnRlc3QwC4IJ --eDc5NC50ZXN0MAuCCXg3OTUudGVzdDALggl4Nzk2LnRlc3QwC4IJeDc5Ny50ZXN0 --MAuCCXg3OTgudGVzdDALggl4Nzk5LnRlc3QwC4IJeDgwMC50ZXN0MAuCCXg4MDEu --dGVzdDALggl4ODAyLnRlc3QwC4IJeDgwMy50ZXN0MAuCCXg4MDQudGVzdDALggl4 --ODA1LnRlc3QwC4IJeDgwNi50ZXN0MAuCCXg4MDcudGVzdDALggl4ODA4LnRlc3Qw --C4IJeDgwOS50ZXN0MAuCCXg4MTAudGVzdDALggl4ODExLnRlc3QwC4IJeDgxMi50 --ZXN0MAuCCXg4MTMudGVzdDALggl4ODE0LnRlc3QwC4IJeDgxNS50ZXN0MAuCCXg4 --MTYudGVzdDALggl4ODE3LnRlc3QwC4IJeDgxOC50ZXN0MAuCCXg4MTkudGVzdDAL --ggl4ODIwLnRlc3QwC4IJeDgyMS50ZXN0MAuCCXg4MjIudGVzdDALggl4ODIzLnRl --c3QwC4IJeDgyNC50ZXN0MAuCCXg4MjUudGVzdDALggl4ODI2LnRlc3QwC4IJeDgy --Ny50ZXN0MAuCCXg4MjgudGVzdDALggl4ODI5LnRlc3QwC4IJeDgzMC50ZXN0MAuC --CXg4MzEudGVzdDALggl4ODMyLnRlc3QwC4IJeDgzMy50ZXN0MAuCCXg4MzQudGVz --dDALggl4ODM1LnRlc3QwC4IJeDgzNi50ZXN0MAuCCXg4MzcudGVzdDALggl4ODM4 --LnRlc3QwC4IJeDgzOS50ZXN0MAuCCXg4NDAudGVzdDALggl4ODQxLnRlc3QwC4IJ --eDg0Mi50ZXN0MAuCCXg4NDMudGVzdDALggl4ODQ0LnRlc3QwC4IJeDg0NS50ZXN0 --MAuCCXg4NDYudGVzdDALggl4ODQ3LnRlc3QwC4IJeDg0OC50ZXN0MAuCCXg4NDku --dGVzdDALggl4ODUwLnRlc3QwC4IJeDg1MS50ZXN0MAuCCXg4NTIudGVzdDALggl4 --ODUzLnRlc3QwC4IJeDg1NC50ZXN0MAuCCXg4NTUudGVzdDALggl4ODU2LnRlc3Qw --C4IJeDg1Ny50ZXN0MAuCCXg4NTgudGVzdDALggl4ODU5LnRlc3QwC4IJeDg2MC50 --ZXN0MAuCCXg4NjEudGVzdDALggl4ODYyLnRlc3QwC4IJeDg2My50ZXN0MAuCCXg4 --NjQudGVzdDALggl4ODY1LnRlc3QwC4IJeDg2Ni50ZXN0MAuCCXg4NjcudGVzdDAL --ggl4ODY4LnRlc3QwC4IJeDg2OS50ZXN0MAuCCXg4NzAudGVzdDALggl4ODcxLnRl --c3QwC4IJeDg3Mi50ZXN0MAuCCXg4NzMudGVzdDALggl4ODc0LnRlc3QwC4IJeDg3 --NS50ZXN0MAuCCXg4NzYudGVzdDALggl4ODc3LnRlc3QwC4IJeDg3OC50ZXN0MAuC --CXg4NzkudGVzdDALggl4ODgwLnRlc3QwC4IJeDg4MS50ZXN0MAuCCXg4ODIudGVz --dDALggl4ODgzLnRlc3QwC4IJeDg4NC50ZXN0MAuCCXg4ODUudGVzdDALggl4ODg2 --LnRlc3QwC4IJeDg4Ny50ZXN0MAuCCXg4ODgudGVzdDALggl4ODg5LnRlc3QwC4IJ --eDg5MC50ZXN0MAuCCXg4OTEudGVzdDALggl4ODkyLnRlc3QwC4IJeDg5My50ZXN0 --MAuCCXg4OTQudGVzdDALggl4ODk1LnRlc3QwC4IJeDg5Ni50ZXN0MAuCCXg4OTcu --dGVzdDALggl4ODk4LnRlc3QwC4IJeDg5OS50ZXN0MAuCCXg5MDAudGVzdDALggl4 --OTAxLnRlc3QwC4IJeDkwMi50ZXN0MAuCCXg5MDMudGVzdDALggl4OTA0LnRlc3Qw --C4IJeDkwNS50ZXN0MAuCCXg5MDYudGVzdDALggl4OTA3LnRlc3QwC4IJeDkwOC50 --ZXN0MAuCCXg5MDkudGVzdDALggl4OTEwLnRlc3QwC4IJeDkxMS50ZXN0MAuCCXg5 --MTIudGVzdDALggl4OTEzLnRlc3QwC4IJeDkxNC50ZXN0MAuCCXg5MTUudGVzdDAL --ggl4OTE2LnRlc3QwC4IJeDkxNy50ZXN0MAuCCXg5MTgudGVzdDALggl4OTE5LnRl --c3QwC4IJeDkyMC50ZXN0MAuCCXg5MjEudGVzdDALggl4OTIyLnRlc3QwC4IJeDky --My50ZXN0MAuCCXg5MjQudGVzdDALggl4OTI1LnRlc3QwC4IJeDkyNi50ZXN0MAuC --CXg5MjcudGVzdDALggl4OTI4LnRlc3QwC4IJeDkyOS50ZXN0MAuCCXg5MzAudGVz --dDALggl4OTMxLnRlc3QwC4IJeDkzMi50ZXN0MAuCCXg5MzMudGVzdDALggl4OTM0 --LnRlc3QwC4IJeDkzNS50ZXN0MAuCCXg5MzYudGVzdDALggl4OTM3LnRlc3QwC4IJ --eDkzOC50ZXN0MAuCCXg5MzkudGVzdDALggl4OTQwLnRlc3QwC4IJeDk0MS50ZXN0 --MAuCCXg5NDIudGVzdDALggl4OTQzLnRlc3QwC4IJeDk0NC50ZXN0MAuCCXg5NDUu --dGVzdDALggl4OTQ2LnRlc3QwC4IJeDk0Ny50ZXN0MAuCCXg5NDgudGVzdDALggl4 --OTQ5LnRlc3QwC4IJeDk1MC50ZXN0MAuCCXg5NTEudGVzdDALggl4OTUyLnRlc3Qw --C4IJeDk1My50ZXN0MAuCCXg5NTQudGVzdDALggl4OTU1LnRlc3QwC4IJeDk1Ni50 --ZXN0MAuCCXg5NTcudGVzdDALggl4OTU4LnRlc3QwC4IJeDk1OS50ZXN0MAuCCXg5 --NjAudGVzdDALggl4OTYxLnRlc3QwC4IJeDk2Mi50ZXN0MAuCCXg5NjMudGVzdDAL --ggl4OTY0LnRlc3QwC4IJeDk2NS50ZXN0MAuCCXg5NjYudGVzdDALggl4OTY3LnRl --c3QwC4IJeDk2OC50ZXN0MAuCCXg5NjkudGVzdDALggl4OTcwLnRlc3QwC4IJeDk3 --MS50ZXN0MAuCCXg5NzIudGVzdDALggl4OTczLnRlc3QwC4IJeDk3NC50ZXN0MAuC --CXg5NzUudGVzdDALggl4OTc2LnRlc3QwC4IJeDk3Ny50ZXN0MAuCCXg5NzgudGVz --dDALggl4OTc5LnRlc3QwC4IJeDk4MC50ZXN0MAuCCXg5ODEudGVzdDALggl4OTgy --LnRlc3QwC4IJeDk4My50ZXN0MAuCCXg5ODQudGVzdDALggl4OTg1LnRlc3QwC4IJ --eDk4Ni50ZXN0MAuCCXg5ODcudGVzdDALggl4OTg4LnRlc3QwC4IJeDk4OS50ZXN0 --MAuCCXg5OTAudGVzdDALggl4OTkxLnRlc3QwC4IJeDk5Mi50ZXN0MAuCCXg5OTMu --dGVzdDALggl4OTk0LnRlc3QwC4IJeDk5NS50ZXN0MAuCCXg5OTYudGVzdDALggl4 --OTk3LnRlc3QwC4IJeDk5OC50ZXN0MAuCCXg5OTkudGVzdDAMggp4MTAwMC50ZXN0 --MAyCCngxMDAxLnRlc3QwDIIKeDEwMDIudGVzdDAMggp4MTAwMy50ZXN0MAyCCngx --MDA0LnRlc3QwDIIKeDEwMDUudGVzdDAMggp4MTAwNi50ZXN0MAyCCngxMDA3LnRl --c3QwDIIKeDEwMDgudGVzdDAMggp4MTAwOS50ZXN0MAyCCngxMDEwLnRlc3QwDIIK --eDEwMTEudGVzdDAMggp4MTAxMi50ZXN0MAyCCngxMDEzLnRlc3QwDIIKeDEwMTQu --dGVzdDAMggp4MTAxNS50ZXN0MAyCCngxMDE2LnRlc3QwDIIKeDEwMTcudGVzdDAM --ggp4MTAxOC50ZXN0MAyCCngxMDE5LnRlc3QwDIIKeDEwMjAudGVzdDAMggp4MTAy --MS50ZXN0MAyCCngxMDIyLnRlc3QwDIIKeDEwMjMudGVzdDAMggp4MTAyNC50ZXN0 --MBGkDzANMQswCQYDVQQDDAJ4MDARpA8wDTELMAkGA1UEAwwCeDEwEaQPMA0xCzAJ --BgNVBAMMAngyMBGkDzANMQswCQYDVQQDDAJ4MzARpA8wDTELMAkGA1UEAwwCeDQw --EaQPMA0xCzAJBgNVBAMMAng1MBGkDzANMQswCQYDVQQDDAJ4NjARpA8wDTELMAkG --A1UEAwwCeDcwEaQPMA0xCzAJBgNVBAMMAng4MBGkDzANMQswCQYDVQQDDAJ4OTAS --pBAwDjEMMAoGA1UEAwwDeDEwMBKkEDAOMQwwCgYDVQQDDAN4MTEwEqQQMA4xDDAK --BgNVBAMMA3gxMjASpBAwDjEMMAoGA1UEAwwDeDEzMBKkEDAOMQwwCgYDVQQDDAN4 --MTQwEqQQMA4xDDAKBgNVBAMMA3gxNTASpBAwDjEMMAoGA1UEAwwDeDE2MBKkEDAO --MQwwCgYDVQQDDAN4MTcwEqQQMA4xDDAKBgNVBAMMA3gxODASpBAwDjEMMAoGA1UE --AwwDeDE5MBKkEDAOMQwwCgYDVQQDDAN4MjAwEqQQMA4xDDAKBgNVBAMMA3gyMTAS --pBAwDjEMMAoGA1UEAwwDeDIyMBKkEDAOMQwwCgYDVQQDDAN4MjMwEqQQMA4xDDAK --BgNVBAMMA3gyNDASpBAwDjEMMAoGA1UEAwwDeDI1MBKkEDAOMQwwCgYDVQQDDAN4 --MjYwEqQQMA4xDDAKBgNVBAMMA3gyNzASpBAwDjEMMAoGA1UEAwwDeDI4MBKkEDAO --MQwwCgYDVQQDDAN4MjkwEqQQMA4xDDAKBgNVBAMMA3gzMDASpBAwDjEMMAoGA1UE --AwwDeDMxMBKkEDAOMQwwCgYDVQQDDAN4MzIwEqQQMA4xDDAKBgNVBAMMA3gzMzAS --pBAwDjEMMAoGA1UEAwwDeDM0MBKkEDAOMQwwCgYDVQQDDAN4MzUwEqQQMA4xDDAK --BgNVBAMMA3gzNjASpBAwDjEMMAoGA1UEAwwDeDM3MBKkEDAOMQwwCgYDVQQDDAN4 --MzgwEqQQMA4xDDAKBgNVBAMMA3gzOTASpBAwDjEMMAoGA1UEAwwDeDQwMBKkEDAO --MQwwCgYDVQQDDAN4NDEwEqQQMA4xDDAKBgNVBAMMA3g0MjASpBAwDjEMMAoGA1UE --AwwDeDQzMBKkEDAOMQwwCgYDVQQDDAN4NDQwEqQQMA4xDDAKBgNVBAMMA3g0NTAS --pBAwDjEMMAoGA1UEAwwDeDQ2MBKkEDAOMQwwCgYDVQQDDAN4NDcwEqQQMA4xDDAK --BgNVBAMMA3g0ODASpBAwDjEMMAoGA1UEAwwDeDQ5MBKkEDAOMQwwCgYDVQQDDAN4 --NTAwEqQQMA4xDDAKBgNVBAMMA3g1MTASpBAwDjEMMAoGA1UEAwwDeDUyMBKkEDAO --MQwwCgYDVQQDDAN4NTMwEqQQMA4xDDAKBgNVBAMMA3g1NDASpBAwDjEMMAoGA1UE --AwwDeDU1MBKkEDAOMQwwCgYDVQQDDAN4NTYwEqQQMA4xDDAKBgNVBAMMA3g1NzAS --pBAwDjEMMAoGA1UEAwwDeDU4MBKkEDAOMQwwCgYDVQQDDAN4NTkwEqQQMA4xDDAK --BgNVBAMMA3g2MDASpBAwDjEMMAoGA1UEAwwDeDYxMBKkEDAOMQwwCgYDVQQDDAN4 --NjIwEqQQMA4xDDAKBgNVBAMMA3g2MzASpBAwDjEMMAoGA1UEAwwDeDY0MBKkEDAO --MQwwCgYDVQQDDAN4NjUwEqQQMA4xDDAKBgNVBAMMA3g2NjASpBAwDjEMMAoGA1UE --AwwDeDY3MBKkEDAOMQwwCgYDVQQDDAN4NjgwEqQQMA4xDDAKBgNVBAMMA3g2OTAS --pBAwDjEMMAoGA1UEAwwDeDcwMBKkEDAOMQwwCgYDVQQDDAN4NzEwEqQQMA4xDDAK --BgNVBAMMA3g3MjASpBAwDjEMMAoGA1UEAwwDeDczMBKkEDAOMQwwCgYDVQQDDAN4 --NzQwEqQQMA4xDDAKBgNVBAMMA3g3NTASpBAwDjEMMAoGA1UEAwwDeDc2MBKkEDAO --MQwwCgYDVQQDDAN4NzcwEqQQMA4xDDAKBgNVBAMMA3g3ODASpBAwDjEMMAoGA1UE --AwwDeDc5MBKkEDAOMQwwCgYDVQQDDAN4ODAwEqQQMA4xDDAKBgNVBAMMA3g4MTAS --pBAwDjEMMAoGA1UEAwwDeDgyMBKkEDAOMQwwCgYDVQQDDAN4ODMwEqQQMA4xDDAK --BgNVBAMMA3g4NDASpBAwDjEMMAoGA1UEAwwDeDg1MBKkEDAOMQwwCgYDVQQDDAN4 --ODYwEqQQMA4xDDAKBgNVBAMMA3g4NzASpBAwDjEMMAoGA1UEAwwDeDg4MBKkEDAO --MQwwCgYDVQQDDAN4ODkwEqQQMA4xDDAKBgNVBAMMA3g5MDASpBAwDjEMMAoGA1UE --AwwDeDkxMBKkEDAOMQwwCgYDVQQDDAN4OTIwEqQQMA4xDDAKBgNVBAMMA3g5MzAS --pBAwDjEMMAoGA1UEAwwDeDk0MBKkEDAOMQwwCgYDVQQDDAN4OTUwEqQQMA4xDDAK --BgNVBAMMA3g5NjASpBAwDjEMMAoGA1UEAwwDeDk3MBKkEDAOMQwwCgYDVQQDDAN4 --OTgwEqQQMA4xDDAKBgNVBAMMA3g5OTATpBEwDzENMAsGA1UEAwwEeDEwMDATpBEw --DzENMAsGA1UEAwwEeDEwMTATpBEwDzENMAsGA1UEAwwEeDEwMjATpBEwDzENMAsG --A1UEAwwEeDEwMzATpBEwDzENMAsGA1UEAwwEeDEwNDATpBEwDzENMAsGA1UEAwwE --eDEwNTATpBEwDzENMAsGA1UEAwwEeDEwNjATpBEwDzENMAsGA1UEAwwEeDEwNzAT --pBEwDzENMAsGA1UEAwwEeDEwODATpBEwDzENMAsGA1UEAwwEeDEwOTATpBEwDzEN --MAsGA1UEAwwEeDExMDATpBEwDzENMAsGA1UEAwwEeDExMTATpBEwDzENMAsGA1UE --AwwEeDExMjATpBEwDzENMAsGA1UEAwwEeDExMzATpBEwDzENMAsGA1UEAwwEeDEx --NDATpBEwDzENMAsGA1UEAwwEeDExNTATpBEwDzENMAsGA1UEAwwEeDExNjATpBEw --DzENMAsGA1UEAwwEeDExNzATpBEwDzENMAsGA1UEAwwEeDExODATpBEwDzENMAsG --A1UEAwwEeDExOTATpBEwDzENMAsGA1UEAwwEeDEyMDATpBEwDzENMAsGA1UEAwwE --eDEyMTATpBEwDzENMAsGA1UEAwwEeDEyMjATpBEwDzENMAsGA1UEAwwEeDEyMzAT --pBEwDzENMAsGA1UEAwwEeDEyNDATpBEwDzENMAsGA1UEAwwEeDEyNTATpBEwDzEN --MAsGA1UEAwwEeDEyNjATpBEwDzENMAsGA1UEAwwEeDEyNzATpBEwDzENMAsGA1UE --AwwEeDEyODATpBEwDzENMAsGA1UEAwwEeDEyOTATpBEwDzENMAsGA1UEAwwEeDEz --MDATpBEwDzENMAsGA1UEAwwEeDEzMTATpBEwDzENMAsGA1UEAwwEeDEzMjATpBEw --DzENMAsGA1UEAwwEeDEzMzATpBEwDzENMAsGA1UEAwwEeDEzNDATpBEwDzENMAsG --A1UEAwwEeDEzNTATpBEwDzENMAsGA1UEAwwEeDEzNjATpBEwDzENMAsGA1UEAwwE --eDEzNzATpBEwDzENMAsGA1UEAwwEeDEzODATpBEwDzENMAsGA1UEAwwEeDEzOTAT --pBEwDzENMAsGA1UEAwwEeDE0MDATpBEwDzENMAsGA1UEAwwEeDE0MTATpBEwDzEN --MAsGA1UEAwwEeDE0MjATpBEwDzENMAsGA1UEAwwEeDE0MzATpBEwDzENMAsGA1UE --AwwEeDE0NDATpBEwDzENMAsGA1UEAwwEeDE0NTATpBEwDzENMAsGA1UEAwwEeDE0 --NjATpBEwDzENMAsGA1UEAwwEeDE0NzATpBEwDzENMAsGA1UEAwwEeDE0ODATpBEw --DzENMAsGA1UEAwwEeDE0OTATpBEwDzENMAsGA1UEAwwEeDE1MDATpBEwDzENMAsG --A1UEAwwEeDE1MTATpBEwDzENMAsGA1UEAwwEeDE1MjATpBEwDzENMAsGA1UEAwwE --eDE1MzATpBEwDzENMAsGA1UEAwwEeDE1NDATpBEwDzENMAsGA1UEAwwEeDE1NTAT --pBEwDzENMAsGA1UEAwwEeDE1NjATpBEwDzENMAsGA1UEAwwEeDE1NzATpBEwDzEN --MAsGA1UEAwwEeDE1ODATpBEwDzENMAsGA1UEAwwEeDE1OTATpBEwDzENMAsGA1UE --AwwEeDE2MDATpBEwDzENMAsGA1UEAwwEeDE2MTATpBEwDzENMAsGA1UEAwwEeDE2 --MjATpBEwDzENMAsGA1UEAwwEeDE2MzATpBEwDzENMAsGA1UEAwwEeDE2NDATpBEw --DzENMAsGA1UEAwwEeDE2NTATpBEwDzENMAsGA1UEAwwEeDE2NjATpBEwDzENMAsG --A1UEAwwEeDE2NzATpBEwDzENMAsGA1UEAwwEeDE2ODATpBEwDzENMAsGA1UEAwwE --eDE2OTATpBEwDzENMAsGA1UEAwwEeDE3MDATpBEwDzENMAsGA1UEAwwEeDE3MTAT --pBEwDzENMAsGA1UEAwwEeDE3MjATpBEwDzENMAsGA1UEAwwEeDE3MzATpBEwDzEN --MAsGA1UEAwwEeDE3NDATpBEwDzENMAsGA1UEAwwEeDE3NTATpBEwDzENMAsGA1UE --AwwEeDE3NjATpBEwDzENMAsGA1UEAwwEeDE3NzATpBEwDzENMAsGA1UEAwwEeDE3 --ODATpBEwDzENMAsGA1UEAwwEeDE3OTATpBEwDzENMAsGA1UEAwwEeDE4MDATpBEw --DzENMAsGA1UEAwwEeDE4MTATpBEwDzENMAsGA1UEAwwEeDE4MjATpBEwDzENMAsG --A1UEAwwEeDE4MzATpBEwDzENMAsGA1UEAwwEeDE4NDATpBEwDzENMAsGA1UEAwwE --eDE4NTATpBEwDzENMAsGA1UEAwwEeDE4NjATpBEwDzENMAsGA1UEAwwEeDE4NzAT --pBEwDzENMAsGA1UEAwwEeDE4ODATpBEwDzENMAsGA1UEAwwEeDE4OTATpBEwDzEN --MAsGA1UEAwwEeDE5MDATpBEwDzENMAsGA1UEAwwEeDE5MTATpBEwDzENMAsGA1UE --AwwEeDE5MjATpBEwDzENMAsGA1UEAwwEeDE5MzATpBEwDzENMAsGA1UEAwwEeDE5 --NDATpBEwDzENMAsGA1UEAwwEeDE5NTATpBEwDzENMAsGA1UEAwwEeDE5NjATpBEw --DzENMAsGA1UEAwwEeDE5NzATpBEwDzENMAsGA1UEAwwEeDE5ODATpBEwDzENMAsG --A1UEAwwEeDE5OTATpBEwDzENMAsGA1UEAwwEeDIwMDATpBEwDzENMAsGA1UEAwwE --eDIwMTATpBEwDzENMAsGA1UEAwwEeDIwMjATpBEwDzENMAsGA1UEAwwEeDIwMzAT --pBEwDzENMAsGA1UEAwwEeDIwNDATpBEwDzENMAsGA1UEAwwEeDIwNTATpBEwDzEN --MAsGA1UEAwwEeDIwNjATpBEwDzENMAsGA1UEAwwEeDIwNzATpBEwDzENMAsGA1UE --AwwEeDIwODATpBEwDzENMAsGA1UEAwwEeDIwOTATpBEwDzENMAsGA1UEAwwEeDIx --MDATpBEwDzENMAsGA1UEAwwEeDIxMTATpBEwDzENMAsGA1UEAwwEeDIxMjATpBEw --DzENMAsGA1UEAwwEeDIxMzATpBEwDzENMAsGA1UEAwwEeDIxNDATpBEwDzENMAsG --A1UEAwwEeDIxNTATpBEwDzENMAsGA1UEAwwEeDIxNjATpBEwDzENMAsGA1UEAwwE --eDIxNzATpBEwDzENMAsGA1UEAwwEeDIxODATpBEwDzENMAsGA1UEAwwEeDIxOTAT --pBEwDzENMAsGA1UEAwwEeDIyMDATpBEwDzENMAsGA1UEAwwEeDIyMTATpBEwDzEN --MAsGA1UEAwwEeDIyMjATpBEwDzENMAsGA1UEAwwEeDIyMzATpBEwDzENMAsGA1UE --AwwEeDIyNDATpBEwDzENMAsGA1UEAwwEeDIyNTATpBEwDzENMAsGA1UEAwwEeDIy --NjATpBEwDzENMAsGA1UEAwwEeDIyNzATpBEwDzENMAsGA1UEAwwEeDIyODATpBEw --DzENMAsGA1UEAwwEeDIyOTATpBEwDzENMAsGA1UEAwwEeDIzMDATpBEwDzENMAsG --A1UEAwwEeDIzMTATpBEwDzENMAsGA1UEAwwEeDIzMjATpBEwDzENMAsGA1UEAwwE --eDIzMzATpBEwDzENMAsGA1UEAwwEeDIzNDATpBEwDzENMAsGA1UEAwwEeDIzNTAT --pBEwDzENMAsGA1UEAwwEeDIzNjATpBEwDzENMAsGA1UEAwwEeDIzNzATpBEwDzEN --MAsGA1UEAwwEeDIzODATpBEwDzENMAsGA1UEAwwEeDIzOTATpBEwDzENMAsGA1UE --AwwEeDI0MDATpBEwDzENMAsGA1UEAwwEeDI0MTATpBEwDzENMAsGA1UEAwwEeDI0 --MjATpBEwDzENMAsGA1UEAwwEeDI0MzATpBEwDzENMAsGA1UEAwwEeDI0NDATpBEw --DzENMAsGA1UEAwwEeDI0NTATpBEwDzENMAsGA1UEAwwEeDI0NjATpBEwDzENMAsG --A1UEAwwEeDI0NzATpBEwDzENMAsGA1UEAwwEeDI0ODATpBEwDzENMAsGA1UEAwwE --eDI0OTATpBEwDzENMAsGA1UEAwwEeDI1MDATpBEwDzENMAsGA1UEAwwEeDI1MTAT --pBEwDzENMAsGA1UEAwwEeDI1MjATpBEwDzENMAsGA1UEAwwEeDI1MzATpBEwDzEN --MAsGA1UEAwwEeDI1NDATpBEwDzENMAsGA1UEAwwEeDI1NTATpBEwDzENMAsGA1UE --AwwEeDI1NjATpBEwDzENMAsGA1UEAwwEeDI1NzATpBEwDzENMAsGA1UEAwwEeDI1 --ODATpBEwDzENMAsGA1UEAwwEeDI1OTATpBEwDzENMAsGA1UEAwwEeDI2MDATpBEw --DzENMAsGA1UEAwwEeDI2MTATpBEwDzENMAsGA1UEAwwEeDI2MjATpBEwDzENMAsG --A1UEAwwEeDI2MzATpBEwDzENMAsGA1UEAwwEeDI2NDATpBEwDzENMAsGA1UEAwwE --eDI2NTATpBEwDzENMAsGA1UEAwwEeDI2NjATpBEwDzENMAsGA1UEAwwEeDI2NzAT --pBEwDzENMAsGA1UEAwwEeDI2ODATpBEwDzENMAsGA1UEAwwEeDI2OTATpBEwDzEN --MAsGA1UEAwwEeDI3MDATpBEwDzENMAsGA1UEAwwEeDI3MTATpBEwDzENMAsGA1UE --AwwEeDI3MjATpBEwDzENMAsGA1UEAwwEeDI3MzATpBEwDzENMAsGA1UEAwwEeDI3 --NDATpBEwDzENMAsGA1UEAwwEeDI3NTATpBEwDzENMAsGA1UEAwwEeDI3NjATpBEw --DzENMAsGA1UEAwwEeDI3NzATpBEwDzENMAsGA1UEAwwEeDI3ODATpBEwDzENMAsG --A1UEAwwEeDI3OTATpBEwDzENMAsGA1UEAwwEeDI4MDATpBEwDzENMAsGA1UEAwwE --eDI4MTATpBEwDzENMAsGA1UEAwwEeDI4MjATpBEwDzENMAsGA1UEAwwEeDI4MzAT --pBEwDzENMAsGA1UEAwwEeDI4NDATpBEwDzENMAsGA1UEAwwEeDI4NTATpBEwDzEN --MAsGA1UEAwwEeDI4NjATpBEwDzENMAsGA1UEAwwEeDI4NzATpBEwDzENMAsGA1UE --AwwEeDI4ODATpBEwDzENMAsGA1UEAwwEeDI4OTATpBEwDzENMAsGA1UEAwwEeDI5 --MDATpBEwDzENMAsGA1UEAwwEeDI5MTATpBEwDzENMAsGA1UEAwwEeDI5MjATpBEw --DzENMAsGA1UEAwwEeDI5MzATpBEwDzENMAsGA1UEAwwEeDI5NDATpBEwDzENMAsG --A1UEAwwEeDI5NTATpBEwDzENMAsGA1UEAwwEeDI5NjATpBEwDzENMAsGA1UEAwwE --eDI5NzATpBEwDzENMAsGA1UEAwwEeDI5ODATpBEwDzENMAsGA1UEAwwEeDI5OTAT --pBEwDzENMAsGA1UEAwwEeDMwMDATpBEwDzENMAsGA1UEAwwEeDMwMTATpBEwDzEN --MAsGA1UEAwwEeDMwMjATpBEwDzENMAsGA1UEAwwEeDMwMzATpBEwDzENMAsGA1UE --AwwEeDMwNDATpBEwDzENMAsGA1UEAwwEeDMwNTATpBEwDzENMAsGA1UEAwwEeDMw --NjATpBEwDzENMAsGA1UEAwwEeDMwNzATpBEwDzENMAsGA1UEAwwEeDMwODATpBEw --DzENMAsGA1UEAwwEeDMwOTATpBEwDzENMAsGA1UEAwwEeDMxMDATpBEwDzENMAsG --A1UEAwwEeDMxMTATpBEwDzENMAsGA1UEAwwEeDMxMjATpBEwDzENMAsGA1UEAwwE --eDMxMzATpBEwDzENMAsGA1UEAwwEeDMxNDATpBEwDzENMAsGA1UEAwwEeDMxNTAT --pBEwDzENMAsGA1UEAwwEeDMxNjATpBEwDzENMAsGA1UEAwwEeDMxNzATpBEwDzEN --MAsGA1UEAwwEeDMxODATpBEwDzENMAsGA1UEAwwEeDMxOTATpBEwDzENMAsGA1UE --AwwEeDMyMDATpBEwDzENMAsGA1UEAwwEeDMyMTATpBEwDzENMAsGA1UEAwwEeDMy --MjATpBEwDzENMAsGA1UEAwwEeDMyMzATpBEwDzENMAsGA1UEAwwEeDMyNDATpBEw --DzENMAsGA1UEAwwEeDMyNTATpBEwDzENMAsGA1UEAwwEeDMyNjATpBEwDzENMAsG --A1UEAwwEeDMyNzATpBEwDzENMAsGA1UEAwwEeDMyODATpBEwDzENMAsGA1UEAwwE --eDMyOTATpBEwDzENMAsGA1UEAwwEeDMzMDATpBEwDzENMAsGA1UEAwwEeDMzMTAT --pBEwDzENMAsGA1UEAwwEeDMzMjATpBEwDzENMAsGA1UEAwwEeDMzMzATpBEwDzEN --MAsGA1UEAwwEeDMzNDATpBEwDzENMAsGA1UEAwwEeDMzNTATpBEwDzENMAsGA1UE --AwwEeDMzNjATpBEwDzENMAsGA1UEAwwEeDMzNzATpBEwDzENMAsGA1UEAwwEeDMz --ODATpBEwDzENMAsGA1UEAwwEeDMzOTATpBEwDzENMAsGA1UEAwwEeDM0MDATpBEw --DzENMAsGA1UEAwwEeDM0MTATpBEwDzENMAsGA1UEAwwEeDM0MjATpBEwDzENMAsG --A1UEAwwEeDM0MzATpBEwDzENMAsGA1UEAwwEeDM0NDATpBEwDzENMAsGA1UEAwwE --eDM0NTATpBEwDzENMAsGA1UEAwwEeDM0NjATpBEwDzENMAsGA1UEAwwEeDM0NzAT --pBEwDzENMAsGA1UEAwwEeDM0ODATpBEwDzENMAsGA1UEAwwEeDM0OTATpBEwDzEN --MAsGA1UEAwwEeDM1MDATpBEwDzENMAsGA1UEAwwEeDM1MTATpBEwDzENMAsGA1UE --AwwEeDM1MjATpBEwDzENMAsGA1UEAwwEeDM1MzATpBEwDzENMAsGA1UEAwwEeDM1 --NDATpBEwDzENMAsGA1UEAwwEeDM1NTATpBEwDzENMAsGA1UEAwwEeDM1NjATpBEw --DzENMAsGA1UEAwwEeDM1NzATpBEwDzENMAsGA1UEAwwEeDM1ODATpBEwDzENMAsG --A1UEAwwEeDM1OTATpBEwDzENMAsGA1UEAwwEeDM2MDATpBEwDzENMAsGA1UEAwwE --eDM2MTATpBEwDzENMAsGA1UEAwwEeDM2MjATpBEwDzENMAsGA1UEAwwEeDM2MzAT --pBEwDzENMAsGA1UEAwwEeDM2NDATpBEwDzENMAsGA1UEAwwEeDM2NTATpBEwDzEN --MAsGA1UEAwwEeDM2NjATpBEwDzENMAsGA1UEAwwEeDM2NzATpBEwDzENMAsGA1UE --AwwEeDM2ODATpBEwDzENMAsGA1UEAwwEeDM2OTATpBEwDzENMAsGA1UEAwwEeDM3 --MDATpBEwDzENMAsGA1UEAwwEeDM3MTATpBEwDzENMAsGA1UEAwwEeDM3MjATpBEw --DzENMAsGA1UEAwwEeDM3MzATpBEwDzENMAsGA1UEAwwEeDM3NDATpBEwDzENMAsG --A1UEAwwEeDM3NTATpBEwDzENMAsGA1UEAwwEeDM3NjATpBEwDzENMAsGA1UEAwwE --eDM3NzATpBEwDzENMAsGA1UEAwwEeDM3ODATpBEwDzENMAsGA1UEAwwEeDM3OTAT --pBEwDzENMAsGA1UEAwwEeDM4MDATpBEwDzENMAsGA1UEAwwEeDM4MTATpBEwDzEN --MAsGA1UEAwwEeDM4MjATpBEwDzENMAsGA1UEAwwEeDM4MzATpBEwDzENMAsGA1UE --AwwEeDM4NDATpBEwDzENMAsGA1UEAwwEeDM4NTATpBEwDzENMAsGA1UEAwwEeDM4 --NjATpBEwDzENMAsGA1UEAwwEeDM4NzATpBEwDzENMAsGA1UEAwwEeDM4ODATpBEw --DzENMAsGA1UEAwwEeDM4OTATpBEwDzENMAsGA1UEAwwEeDM5MDATpBEwDzENMAsG --A1UEAwwEeDM5MTATpBEwDzENMAsGA1UEAwwEeDM5MjATpBEwDzENMAsGA1UEAwwE --eDM5MzATpBEwDzENMAsGA1UEAwwEeDM5NDATpBEwDzENMAsGA1UEAwwEeDM5NTAT --pBEwDzENMAsGA1UEAwwEeDM5NjATpBEwDzENMAsGA1UEAwwEeDM5NzATpBEwDzEN --MAsGA1UEAwwEeDM5ODATpBEwDzENMAsGA1UEAwwEeDM5OTATpBEwDzENMAsGA1UE --AwwEeDQwMDATpBEwDzENMAsGA1UEAwwEeDQwMTATpBEwDzENMAsGA1UEAwwEeDQw --MjATpBEwDzENMAsGA1UEAwwEeDQwMzATpBEwDzENMAsGA1UEAwwEeDQwNDATpBEw --DzENMAsGA1UEAwwEeDQwNTATpBEwDzENMAsGA1UEAwwEeDQwNjATpBEwDzENMAsG --A1UEAwwEeDQwNzATpBEwDzENMAsGA1UEAwwEeDQwODATpBEwDzENMAsGA1UEAwwE --eDQwOTATpBEwDzENMAsGA1UEAwwEeDQxMDATpBEwDzENMAsGA1UEAwwEeDQxMTAT --pBEwDzENMAsGA1UEAwwEeDQxMjATpBEwDzENMAsGA1UEAwwEeDQxMzATpBEwDzEN --MAsGA1UEAwwEeDQxNDATpBEwDzENMAsGA1UEAwwEeDQxNTATpBEwDzENMAsGA1UE --AwwEeDQxNjATpBEwDzENMAsGA1UEAwwEeDQxNzATpBEwDzENMAsGA1UEAwwEeDQx --ODATpBEwDzENMAsGA1UEAwwEeDQxOTATpBEwDzENMAsGA1UEAwwEeDQyMDATpBEw --DzENMAsGA1UEAwwEeDQyMTATpBEwDzENMAsGA1UEAwwEeDQyMjATpBEwDzENMAsG --A1UEAwwEeDQyMzATpBEwDzENMAsGA1UEAwwEeDQyNDATpBEwDzENMAsGA1UEAwwE --eDQyNTATpBEwDzENMAsGA1UEAwwEeDQyNjATpBEwDzENMAsGA1UEAwwEeDQyNzAT --pBEwDzENMAsGA1UEAwwEeDQyODATpBEwDzENMAsGA1UEAwwEeDQyOTATpBEwDzEN --MAsGA1UEAwwEeDQzMDATpBEwDzENMAsGA1UEAwwEeDQzMTATpBEwDzENMAsGA1UE --AwwEeDQzMjATpBEwDzENMAsGA1UEAwwEeDQzMzATpBEwDzENMAsGA1UEAwwEeDQz --NDATpBEwDzENMAsGA1UEAwwEeDQzNTATpBEwDzENMAsGA1UEAwwEeDQzNjATpBEw --DzENMAsGA1UEAwwEeDQzNzATpBEwDzENMAsGA1UEAwwEeDQzODATpBEwDzENMAsG --A1UEAwwEeDQzOTATpBEwDzENMAsGA1UEAwwEeDQ0MDATpBEwDzENMAsGA1UEAwwE --eDQ0MTATpBEwDzENMAsGA1UEAwwEeDQ0MjATpBEwDzENMAsGA1UEAwwEeDQ0MzAT --pBEwDzENMAsGA1UEAwwEeDQ0NDATpBEwDzENMAsGA1UEAwwEeDQ0NTATpBEwDzEN --MAsGA1UEAwwEeDQ0NjATpBEwDzENMAsGA1UEAwwEeDQ0NzATpBEwDzENMAsGA1UE --AwwEeDQ0ODATpBEwDzENMAsGA1UEAwwEeDQ0OTATpBEwDzENMAsGA1UEAwwEeDQ1 --MDATpBEwDzENMAsGA1UEAwwEeDQ1MTATpBEwDzENMAsGA1UEAwwEeDQ1MjATpBEw --DzENMAsGA1UEAwwEeDQ1MzATpBEwDzENMAsGA1UEAwwEeDQ1NDATpBEwDzENMAsG --A1UEAwwEeDQ1NTATpBEwDzENMAsGA1UEAwwEeDQ1NjATpBEwDzENMAsGA1UEAwwE --eDQ1NzATpBEwDzENMAsGA1UEAwwEeDQ1ODATpBEwDzENMAsGA1UEAwwEeDQ1OTAT --pBEwDzENMAsGA1UEAwwEeDQ2MDATpBEwDzENMAsGA1UEAwwEeDQ2MTATpBEwDzEN --MAsGA1UEAwwEeDQ2MjATpBEwDzENMAsGA1UEAwwEeDQ2MzATpBEwDzENMAsGA1UE --AwwEeDQ2NDATpBEwDzENMAsGA1UEAwwEeDQ2NTATpBEwDzENMAsGA1UEAwwEeDQ2 --NjATpBEwDzENMAsGA1UEAwwEeDQ2NzATpBEwDzENMAsGA1UEAwwEeDQ2ODATpBEw --DzENMAsGA1UEAwwEeDQ2OTATpBEwDzENMAsGA1UEAwwEeDQ3MDATpBEwDzENMAsG --A1UEAwwEeDQ3MTATpBEwDzENMAsGA1UEAwwEeDQ3MjATpBEwDzENMAsGA1UEAwwE --eDQ3MzATpBEwDzENMAsGA1UEAwwEeDQ3NDATpBEwDzENMAsGA1UEAwwEeDQ3NTAT --pBEwDzENMAsGA1UEAwwEeDQ3NjATpBEwDzENMAsGA1UEAwwEeDQ3NzATpBEwDzEN --MAsGA1UEAwwEeDQ3ODATpBEwDzENMAsGA1UEAwwEeDQ3OTATpBEwDzENMAsGA1UE --AwwEeDQ4MDATpBEwDzENMAsGA1UEAwwEeDQ4MTATpBEwDzENMAsGA1UEAwwEeDQ4 --MjATpBEwDzENMAsGA1UEAwwEeDQ4MzATpBEwDzENMAsGA1UEAwwEeDQ4NDATpBEw --DzENMAsGA1UEAwwEeDQ4NTATpBEwDzENMAsGA1UEAwwEeDQ4NjATpBEwDzENMAsG --A1UEAwwEeDQ4NzATpBEwDzENMAsGA1UEAwwEeDQ4ODATpBEwDzENMAsGA1UEAwwE --eDQ4OTATpBEwDzENMAsGA1UEAwwEeDQ5MDATpBEwDzENMAsGA1UEAwwEeDQ5MTAT --pBEwDzENMAsGA1UEAwwEeDQ5MjATpBEwDzENMAsGA1UEAwwEeDQ5MzATpBEwDzEN --MAsGA1UEAwwEeDQ5NDATpBEwDzENMAsGA1UEAwwEeDQ5NTATpBEwDzENMAsGA1UE --AwwEeDQ5NjATpBEwDzENMAsGA1UEAwwEeDQ5NzATpBEwDzENMAsGA1UEAwwEeDQ5 --ODATpBEwDzENMAsGA1UEAwwEeDQ5OTATpBEwDzENMAsGA1UEAwwEeDUwMDATpBEw --DzENMAsGA1UEAwwEeDUwMTATpBEwDzENMAsGA1UEAwwEeDUwMjATpBEwDzENMAsG --A1UEAwwEeDUwMzATpBEwDzENMAsGA1UEAwwEeDUwNDATpBEwDzENMAsGA1UEAwwE --eDUwNTATpBEwDzENMAsGA1UEAwwEeDUwNjATpBEwDzENMAsGA1UEAwwEeDUwNzAT --pBEwDzENMAsGA1UEAwwEeDUwODATpBEwDzENMAsGA1UEAwwEeDUwOTATpBEwDzEN --MAsGA1UEAwwEeDUxMDATpBEwDzENMAsGA1UEAwwEeDUxMTATpBEwDzENMAsGA1UE --AwwEeDUxMjATpBEwDzENMAsGA1UEAwwEeDUxMzATpBEwDzENMAsGA1UEAwwEeDUx --NDATpBEwDzENMAsGA1UEAwwEeDUxNTATpBEwDzENMAsGA1UEAwwEeDUxNjATpBEw --DzENMAsGA1UEAwwEeDUxNzATpBEwDzENMAsGA1UEAwwEeDUxODATpBEwDzENMAsG --A1UEAwwEeDUxOTATpBEwDzENMAsGA1UEAwwEeDUyMDATpBEwDzENMAsGA1UEAwwE --eDUyMTATpBEwDzENMAsGA1UEAwwEeDUyMjATpBEwDzENMAsGA1UEAwwEeDUyMzAT --pBEwDzENMAsGA1UEAwwEeDUyNDATpBEwDzENMAsGA1UEAwwEeDUyNTATpBEwDzEN --MAsGA1UEAwwEeDUyNjATpBEwDzENMAsGA1UEAwwEeDUyNzATpBEwDzENMAsGA1UE --AwwEeDUyODATpBEwDzENMAsGA1UEAwwEeDUyOTATpBEwDzENMAsGA1UEAwwEeDUz --MDATpBEwDzENMAsGA1UEAwwEeDUzMTATpBEwDzENMAsGA1UEAwwEeDUzMjATpBEw --DzENMAsGA1UEAwwEeDUzMzATpBEwDzENMAsGA1UEAwwEeDUzNDATpBEwDzENMAsG --A1UEAwwEeDUzNTATpBEwDzENMAsGA1UEAwwEeDUzNjATpBEwDzENMAsGA1UEAwwE --eDUzNzATpBEwDzENMAsGA1UEAwwEeDUzODATpBEwDzENMAsGA1UEAwwEeDUzOTAT --pBEwDzENMAsGA1UEAwwEeDU0MDATpBEwDzENMAsGA1UEAwwEeDU0MTATpBEwDzEN --MAsGA1UEAwwEeDU0MjATpBEwDzENMAsGA1UEAwwEeDU0MzATpBEwDzENMAsGA1UE --AwwEeDU0NDATpBEwDzENMAsGA1UEAwwEeDU0NTATpBEwDzENMAsGA1UEAwwEeDU0 --NjATpBEwDzENMAsGA1UEAwwEeDU0NzATpBEwDzENMAsGA1UEAwwEeDU0ODATpBEw --DzENMAsGA1UEAwwEeDU0OTATpBEwDzENMAsGA1UEAwwEeDU1MDATpBEwDzENMAsG --A1UEAwwEeDU1MTATpBEwDzENMAsGA1UEAwwEeDU1MjATpBEwDzENMAsGA1UEAwwE --eDU1MzATpBEwDzENMAsGA1UEAwwEeDU1NDATpBEwDzENMAsGA1UEAwwEeDU1NTAT --pBEwDzENMAsGA1UEAwwEeDU1NjATpBEwDzENMAsGA1UEAwwEeDU1NzATpBEwDzEN --MAsGA1UEAwwEeDU1ODATpBEwDzENMAsGA1UEAwwEeDU1OTATpBEwDzENMAsGA1UE --AwwEeDU2MDATpBEwDzENMAsGA1UEAwwEeDU2MTATpBEwDzENMAsGA1UEAwwEeDU2 --MjATpBEwDzENMAsGA1UEAwwEeDU2MzATpBEwDzENMAsGA1UEAwwEeDU2NDATpBEw --DzENMAsGA1UEAwwEeDU2NTATpBEwDzENMAsGA1UEAwwEeDU2NjATpBEwDzENMAsG --A1UEAwwEeDU2NzATpBEwDzENMAsGA1UEAwwEeDU2ODATpBEwDzENMAsGA1UEAwwE --eDU2OTATpBEwDzENMAsGA1UEAwwEeDU3MDATpBEwDzENMAsGA1UEAwwEeDU3MTAT --pBEwDzENMAsGA1UEAwwEeDU3MjATpBEwDzENMAsGA1UEAwwEeDU3MzATpBEwDzEN --MAsGA1UEAwwEeDU3NDATpBEwDzENMAsGA1UEAwwEeDU3NTATpBEwDzENMAsGA1UE --AwwEeDU3NjATpBEwDzENMAsGA1UEAwwEeDU3NzATpBEwDzENMAsGA1UEAwwEeDU3 --ODATpBEwDzENMAsGA1UEAwwEeDU3OTATpBEwDzENMAsGA1UEAwwEeDU4MDATpBEw --DzENMAsGA1UEAwwEeDU4MTATpBEwDzENMAsGA1UEAwwEeDU4MjATpBEwDzENMAsG --A1UEAwwEeDU4MzATpBEwDzENMAsGA1UEAwwEeDU4NDATpBEwDzENMAsGA1UEAwwE --eDU4NTATpBEwDzENMAsGA1UEAwwEeDU4NjATpBEwDzENMAsGA1UEAwwEeDU4NzAT --pBEwDzENMAsGA1UEAwwEeDU4ODATpBEwDzENMAsGA1UEAwwEeDU4OTATpBEwDzEN --MAsGA1UEAwwEeDU5MDATpBEwDzENMAsGA1UEAwwEeDU5MTATpBEwDzENMAsGA1UE --AwwEeDU5MjATpBEwDzENMAsGA1UEAwwEeDU5MzATpBEwDzENMAsGA1UEAwwEeDU5 --NDATpBEwDzENMAsGA1UEAwwEeDU5NTATpBEwDzENMAsGA1UEAwwEeDU5NjATpBEw --DzENMAsGA1UEAwwEeDU5NzATpBEwDzENMAsGA1UEAwwEeDU5ODATpBEwDzENMAsG --A1UEAwwEeDU5OTATpBEwDzENMAsGA1UEAwwEeDYwMDATpBEwDzENMAsGA1UEAwwE --eDYwMTATpBEwDzENMAsGA1UEAwwEeDYwMjATpBEwDzENMAsGA1UEAwwEeDYwMzAT --pBEwDzENMAsGA1UEAwwEeDYwNDATpBEwDzENMAsGA1UEAwwEeDYwNTATpBEwDzEN --MAsGA1UEAwwEeDYwNjATpBEwDzENMAsGA1UEAwwEeDYwNzATpBEwDzENMAsGA1UE --AwwEeDYwODATpBEwDzENMAsGA1UEAwwEeDYwOTATpBEwDzENMAsGA1UEAwwEeDYx --MDATpBEwDzENMAsGA1UEAwwEeDYxMTATpBEwDzENMAsGA1UEAwwEeDYxMjATpBEw --DzENMAsGA1UEAwwEeDYxMzATpBEwDzENMAsGA1UEAwwEeDYxNDATpBEwDzENMAsG --A1UEAwwEeDYxNTATpBEwDzENMAsGA1UEAwwEeDYxNjATpBEwDzENMAsGA1UEAwwE --eDYxNzATpBEwDzENMAsGA1UEAwwEeDYxODATpBEwDzENMAsGA1UEAwwEeDYxOTAT --pBEwDzENMAsGA1UEAwwEeDYyMDATpBEwDzENMAsGA1UEAwwEeDYyMTATpBEwDzEN --MAsGA1UEAwwEeDYyMjATpBEwDzENMAsGA1UEAwwEeDYyMzATpBEwDzENMAsGA1UE --AwwEeDYyNDATpBEwDzENMAsGA1UEAwwEeDYyNTATpBEwDzENMAsGA1UEAwwEeDYy --NjATpBEwDzENMAsGA1UEAwwEeDYyNzATpBEwDzENMAsGA1UEAwwEeDYyODATpBEw --DzENMAsGA1UEAwwEeDYyOTATpBEwDzENMAsGA1UEAwwEeDYzMDATpBEwDzENMAsG --A1UEAwwEeDYzMTATpBEwDzENMAsGA1UEAwwEeDYzMjATpBEwDzENMAsGA1UEAwwE --eDYzMzATpBEwDzENMAsGA1UEAwwEeDYzNDATpBEwDzENMAsGA1UEAwwEeDYzNTAT --pBEwDzENMAsGA1UEAwwEeDYzNjATpBEwDzENMAsGA1UEAwwEeDYzNzATpBEwDzEN --MAsGA1UEAwwEeDYzODATpBEwDzENMAsGA1UEAwwEeDYzOTATpBEwDzENMAsGA1UE --AwwEeDY0MDATpBEwDzENMAsGA1UEAwwEeDY0MTATpBEwDzENMAsGA1UEAwwEeDY0 --MjATpBEwDzENMAsGA1UEAwwEeDY0MzATpBEwDzENMAsGA1UEAwwEeDY0NDATpBEw --DzENMAsGA1UEAwwEeDY0NTATpBEwDzENMAsGA1UEAwwEeDY0NjATpBEwDzENMAsG --A1UEAwwEeDY0NzATpBEwDzENMAsGA1UEAwwEeDY0ODATpBEwDzENMAsGA1UEAwwE --eDY0OTATpBEwDzENMAsGA1UEAwwEeDY1MDATpBEwDzENMAsGA1UEAwwEeDY1MTAT --pBEwDzENMAsGA1UEAwwEeDY1MjATpBEwDzENMAsGA1UEAwwEeDY1MzATpBEwDzEN --MAsGA1UEAwwEeDY1NDATpBEwDzENMAsGA1UEAwwEeDY1NTATpBEwDzENMAsGA1UE --AwwEeDY1NjATpBEwDzENMAsGA1UEAwwEeDY1NzATpBEwDzENMAsGA1UEAwwEeDY1 --ODATpBEwDzENMAsGA1UEAwwEeDY1OTATpBEwDzENMAsGA1UEAwwEeDY2MDATpBEw --DzENMAsGA1UEAwwEeDY2MTATpBEwDzENMAsGA1UEAwwEeDY2MjATpBEwDzENMAsG --A1UEAwwEeDY2MzATpBEwDzENMAsGA1UEAwwEeDY2NDATpBEwDzENMAsGA1UEAwwE --eDY2NTATpBEwDzENMAsGA1UEAwwEeDY2NjATpBEwDzENMAsGA1UEAwwEeDY2NzAT --pBEwDzENMAsGA1UEAwwEeDY2ODATpBEwDzENMAsGA1UEAwwEeDY2OTATpBEwDzEN --MAsGA1UEAwwEeDY3MDATpBEwDzENMAsGA1UEAwwEeDY3MTATpBEwDzENMAsGA1UE --AwwEeDY3MjATpBEwDzENMAsGA1UEAwwEeDY3MzATpBEwDzENMAsGA1UEAwwEeDY3 --NDATpBEwDzENMAsGA1UEAwwEeDY3NTATpBEwDzENMAsGA1UEAwwEeDY3NjATpBEw --DzENMAsGA1UEAwwEeDY3NzATpBEwDzENMAsGA1UEAwwEeDY3ODATpBEwDzENMAsG --A1UEAwwEeDY3OTATpBEwDzENMAsGA1UEAwwEeDY4MDATpBEwDzENMAsGA1UEAwwE --eDY4MTATpBEwDzENMAsGA1UEAwwEeDY4MjATpBEwDzENMAsGA1UEAwwEeDY4MzAT --pBEwDzENMAsGA1UEAwwEeDY4NDATpBEwDzENMAsGA1UEAwwEeDY4NTATpBEwDzEN --MAsGA1UEAwwEeDY4NjATpBEwDzENMAsGA1UEAwwEeDY4NzATpBEwDzENMAsGA1UE --AwwEeDY4ODATpBEwDzENMAsGA1UEAwwEeDY4OTATpBEwDzENMAsGA1UEAwwEeDY5 --MDATpBEwDzENMAsGA1UEAwwEeDY5MTATpBEwDzENMAsGA1UEAwwEeDY5MjATpBEw --DzENMAsGA1UEAwwEeDY5MzATpBEwDzENMAsGA1UEAwwEeDY5NDATpBEwDzENMAsG --A1UEAwwEeDY5NTATpBEwDzENMAsGA1UEAwwEeDY5NjATpBEwDzENMAsGA1UEAwwE --eDY5NzATpBEwDzENMAsGA1UEAwwEeDY5ODATpBEwDzENMAsGA1UEAwwEeDY5OTAT --pBEwDzENMAsGA1UEAwwEeDcwMDATpBEwDzENMAsGA1UEAwwEeDcwMTATpBEwDzEN --MAsGA1UEAwwEeDcwMjATpBEwDzENMAsGA1UEAwwEeDcwMzATpBEwDzENMAsGA1UE --AwwEeDcwNDATpBEwDzENMAsGA1UEAwwEeDcwNTATpBEwDzENMAsGA1UEAwwEeDcw --NjATpBEwDzENMAsGA1UEAwwEeDcwNzATpBEwDzENMAsGA1UEAwwEeDcwODATpBEw --DzENMAsGA1UEAwwEeDcwOTATpBEwDzENMAsGA1UEAwwEeDcxMDATpBEwDzENMAsG --A1UEAwwEeDcxMTATpBEwDzENMAsGA1UEAwwEeDcxMjATpBEwDzENMAsGA1UEAwwE --eDcxMzATpBEwDzENMAsGA1UEAwwEeDcxNDATpBEwDzENMAsGA1UEAwwEeDcxNTAT --pBEwDzENMAsGA1UEAwwEeDcxNjATpBEwDzENMAsGA1UEAwwEeDcxNzATpBEwDzEN --MAsGA1UEAwwEeDcxODATpBEwDzENMAsGA1UEAwwEeDcxOTATpBEwDzENMAsGA1UE --AwwEeDcyMDATpBEwDzENMAsGA1UEAwwEeDcyMTATpBEwDzENMAsGA1UEAwwEeDcy --MjATpBEwDzENMAsGA1UEAwwEeDcyMzATpBEwDzENMAsGA1UEAwwEeDcyNDATpBEw --DzENMAsGA1UEAwwEeDcyNTATpBEwDzENMAsGA1UEAwwEeDcyNjATpBEwDzENMAsG --A1UEAwwEeDcyNzATpBEwDzENMAsGA1UEAwwEeDcyODATpBEwDzENMAsGA1UEAwwE --eDcyOTATpBEwDzENMAsGA1UEAwwEeDczMDATpBEwDzENMAsGA1UEAwwEeDczMTAT --pBEwDzENMAsGA1UEAwwEeDczMjATpBEwDzENMAsGA1UEAwwEeDczMzATpBEwDzEN --MAsGA1UEAwwEeDczNDATpBEwDzENMAsGA1UEAwwEeDczNTATpBEwDzENMAsGA1UE --AwwEeDczNjATpBEwDzENMAsGA1UEAwwEeDczNzATpBEwDzENMAsGA1UEAwwEeDcz --ODATpBEwDzENMAsGA1UEAwwEeDczOTATpBEwDzENMAsGA1UEAwwEeDc0MDATpBEw --DzENMAsGA1UEAwwEeDc0MTATpBEwDzENMAsGA1UEAwwEeDc0MjATpBEwDzENMAsG --A1UEAwwEeDc0MzATpBEwDzENMAsGA1UEAwwEeDc0NDATpBEwDzENMAsGA1UEAwwE --eDc0NTATpBEwDzENMAsGA1UEAwwEeDc0NjATpBEwDzENMAsGA1UEAwwEeDc0NzAT --pBEwDzENMAsGA1UEAwwEeDc0ODATpBEwDzENMAsGA1UEAwwEeDc0OTATpBEwDzEN --MAsGA1UEAwwEeDc1MDATpBEwDzENMAsGA1UEAwwEeDc1MTATpBEwDzENMAsGA1UE --AwwEeDc1MjATpBEwDzENMAsGA1UEAwwEeDc1MzATpBEwDzENMAsGA1UEAwwEeDc1 --NDATpBEwDzENMAsGA1UEAwwEeDc1NTATpBEwDzENMAsGA1UEAwwEeDc1NjATpBEw --DzENMAsGA1UEAwwEeDc1NzATpBEwDzENMAsGA1UEAwwEeDc1ODATpBEwDzENMAsG --A1UEAwwEeDc1OTATpBEwDzENMAsGA1UEAwwEeDc2MDATpBEwDzENMAsGA1UEAwwE --eDc2MTATpBEwDzENMAsGA1UEAwwEeDc2MjATpBEwDzENMAsGA1UEAwwEeDc2MzAT --pBEwDzENMAsGA1UEAwwEeDc2NDATpBEwDzENMAsGA1UEAwwEeDc2NTATpBEwDzEN --MAsGA1UEAwwEeDc2NjATpBEwDzENMAsGA1UEAwwEeDc2NzATpBEwDzENMAsGA1UE --AwwEeDc2ODATpBEwDzENMAsGA1UEAwwEeDc2OTATpBEwDzENMAsGA1UEAwwEeDc3 --MDATpBEwDzENMAsGA1UEAwwEeDc3MTATpBEwDzENMAsGA1UEAwwEeDc3MjATpBEw --DzENMAsGA1UEAwwEeDc3MzATpBEwDzENMAsGA1UEAwwEeDc3NDATpBEwDzENMAsG --A1UEAwwEeDc3NTATpBEwDzENMAsGA1UEAwwEeDc3NjATpBEwDzENMAsGA1UEAwwE --eDc3NzATpBEwDzENMAsGA1UEAwwEeDc3ODATpBEwDzENMAsGA1UEAwwEeDc3OTAT --pBEwDzENMAsGA1UEAwwEeDc4MDATpBEwDzENMAsGA1UEAwwEeDc4MTATpBEwDzEN --MAsGA1UEAwwEeDc4MjATpBEwDzENMAsGA1UEAwwEeDc4MzATpBEwDzENMAsGA1UE --AwwEeDc4NDATpBEwDzENMAsGA1UEAwwEeDc4NTATpBEwDzENMAsGA1UEAwwEeDc4 --NjATpBEwDzENMAsGA1UEAwwEeDc4NzATpBEwDzENMAsGA1UEAwwEeDc4ODATpBEw --DzENMAsGA1UEAwwEeDc4OTATpBEwDzENMAsGA1UEAwwEeDc5MDATpBEwDzENMAsG --A1UEAwwEeDc5MTATpBEwDzENMAsGA1UEAwwEeDc5MjATpBEwDzENMAsGA1UEAwwE --eDc5MzATpBEwDzENMAsGA1UEAwwEeDc5NDATpBEwDzENMAsGA1UEAwwEeDc5NTAT --pBEwDzENMAsGA1UEAwwEeDc5NjATpBEwDzENMAsGA1UEAwwEeDc5NzATpBEwDzEN --MAsGA1UEAwwEeDc5ODATpBEwDzENMAsGA1UEAwwEeDc5OTATpBEwDzENMAsGA1UE --AwwEeDgwMDATpBEwDzENMAsGA1UEAwwEeDgwMTATpBEwDzENMAsGA1UEAwwEeDgw --MjATpBEwDzENMAsGA1UEAwwEeDgwMzATpBEwDzENMAsGA1UEAwwEeDgwNDATpBEw --DzENMAsGA1UEAwwEeDgwNTATpBEwDzENMAsGA1UEAwwEeDgwNjATpBEwDzENMAsG --A1UEAwwEeDgwNzATpBEwDzENMAsGA1UEAwwEeDgwODATpBEwDzENMAsGA1UEAwwE --eDgwOTATpBEwDzENMAsGA1UEAwwEeDgxMDATpBEwDzENMAsGA1UEAwwEeDgxMTAT --pBEwDzENMAsGA1UEAwwEeDgxMjATpBEwDzENMAsGA1UEAwwEeDgxMzATpBEwDzEN --MAsGA1UEAwwEeDgxNDATpBEwDzENMAsGA1UEAwwEeDgxNTATpBEwDzENMAsGA1UE --AwwEeDgxNjATpBEwDzENMAsGA1UEAwwEeDgxNzATpBEwDzENMAsGA1UEAwwEeDgx --ODATpBEwDzENMAsGA1UEAwwEeDgxOTATpBEwDzENMAsGA1UEAwwEeDgyMDATpBEw --DzENMAsGA1UEAwwEeDgyMTATpBEwDzENMAsGA1UEAwwEeDgyMjATpBEwDzENMAsG --A1UEAwwEeDgyMzATpBEwDzENMAsGA1UEAwwEeDgyNDATpBEwDzENMAsGA1UEAwwE --eDgyNTATpBEwDzENMAsGA1UEAwwEeDgyNjATpBEwDzENMAsGA1UEAwwEeDgyNzAT --pBEwDzENMAsGA1UEAwwEeDgyODATpBEwDzENMAsGA1UEAwwEeDgyOTATpBEwDzEN --MAsGA1UEAwwEeDgzMDATpBEwDzENMAsGA1UEAwwEeDgzMTATpBEwDzENMAsGA1UE --AwwEeDgzMjATpBEwDzENMAsGA1UEAwwEeDgzMzATpBEwDzENMAsGA1UEAwwEeDgz --NDATpBEwDzENMAsGA1UEAwwEeDgzNTATpBEwDzENMAsGA1UEAwwEeDgzNjATpBEw --DzENMAsGA1UEAwwEeDgzNzATpBEwDzENMAsGA1UEAwwEeDgzODATpBEwDzENMAsG --A1UEAwwEeDgzOTATpBEwDzENMAsGA1UEAwwEeDg0MDATpBEwDzENMAsGA1UEAwwE --eDg0MTATpBEwDzENMAsGA1UEAwwEeDg0MjATpBEwDzENMAsGA1UEAwwEeDg0MzAT --pBEwDzENMAsGA1UEAwwEeDg0NDATpBEwDzENMAsGA1UEAwwEeDg0NTATpBEwDzEN --MAsGA1UEAwwEeDg0NjATpBEwDzENMAsGA1UEAwwEeDg0NzATpBEwDzENMAsGA1UE --AwwEeDg0ODATpBEwDzENMAsGA1UEAwwEeDg0OTATpBEwDzENMAsGA1UEAwwEeDg1 --MDATpBEwDzENMAsGA1UEAwwEeDg1MTATpBEwDzENMAsGA1UEAwwEeDg1MjATpBEw --DzENMAsGA1UEAwwEeDg1MzATpBEwDzENMAsGA1UEAwwEeDg1NDATpBEwDzENMAsG --A1UEAwwEeDg1NTATpBEwDzENMAsGA1UEAwwEeDg1NjATpBEwDzENMAsGA1UEAwwE --eDg1NzATpBEwDzENMAsGA1UEAwwEeDg1ODATpBEwDzENMAsGA1UEAwwEeDg1OTAT --pBEwDzENMAsGA1UEAwwEeDg2MDATpBEwDzENMAsGA1UEAwwEeDg2MTATpBEwDzEN --MAsGA1UEAwwEeDg2MjATpBEwDzENMAsGA1UEAwwEeDg2MzATpBEwDzENMAsGA1UE --AwwEeDg2NDATpBEwDzENMAsGA1UEAwwEeDg2NTATpBEwDzENMAsGA1UEAwwEeDg2 --NjATpBEwDzENMAsGA1UEAwwEeDg2NzATpBEwDzENMAsGA1UEAwwEeDg2ODATpBEw --DzENMAsGA1UEAwwEeDg2OTATpBEwDzENMAsGA1UEAwwEeDg3MDATpBEwDzENMAsG --A1UEAwwEeDg3MTATpBEwDzENMAsGA1UEAwwEeDg3MjATpBEwDzENMAsGA1UEAwwE --eDg3MzATpBEwDzENMAsGA1UEAwwEeDg3NDATpBEwDzENMAsGA1UEAwwEeDg3NTAT --pBEwDzENMAsGA1UEAwwEeDg3NjATpBEwDzENMAsGA1UEAwwEeDg3NzATpBEwDzEN --MAsGA1UEAwwEeDg3ODATpBEwDzENMAsGA1UEAwwEeDg3OTATpBEwDzENMAsGA1UE --AwwEeDg4MDATpBEwDzENMAsGA1UEAwwEeDg4MTATpBEwDzENMAsGA1UEAwwEeDg4 --MjATpBEwDzENMAsGA1UEAwwEeDg4MzATpBEwDzENMAsGA1UEAwwEeDg4NDATpBEw --DzENMAsGA1UEAwwEeDg4NTATpBEwDzENMAsGA1UEAwwEeDg4NjATpBEwDzENMAsG --A1UEAwwEeDg4NzATpBEwDzENMAsGA1UEAwwEeDg4ODATpBEwDzENMAsGA1UEAwwE --eDg4OTATpBEwDzENMAsGA1UEAwwEeDg5MDATpBEwDzENMAsGA1UEAwwEeDg5MTAT --pBEwDzENMAsGA1UEAwwEeDg5MjATpBEwDzENMAsGA1UEAwwEeDg5MzATpBEwDzEN --MAsGA1UEAwwEeDg5NDATpBEwDzENMAsGA1UEAwwEeDg5NTATpBEwDzENMAsGA1UE --AwwEeDg5NjATpBEwDzENMAsGA1UEAwwEeDg5NzATpBEwDzENMAsGA1UEAwwEeDg5 --ODATpBEwDzENMAsGA1UEAwwEeDg5OTATpBEwDzENMAsGA1UEAwwEeDkwMDATpBEw --DzENMAsGA1UEAwwEeDkwMTATpBEwDzENMAsGA1UEAwwEeDkwMjATpBEwDzENMAsG --A1UEAwwEeDkwMzATpBEwDzENMAsGA1UEAwwEeDkwNDATpBEwDzENMAsGA1UEAwwE --eDkwNTATpBEwDzENMAsGA1UEAwwEeDkwNjATpBEwDzENMAsGA1UEAwwEeDkwNzAT --pBEwDzENMAsGA1UEAwwEeDkwODATpBEwDzENMAsGA1UEAwwEeDkwOTATpBEwDzEN --MAsGA1UEAwwEeDkxMDATpBEwDzENMAsGA1UEAwwEeDkxMTATpBEwDzENMAsGA1UE --AwwEeDkxMjATpBEwDzENMAsGA1UEAwwEeDkxMzATpBEwDzENMAsGA1UEAwwEeDkx --NDATpBEwDzENMAsGA1UEAwwEeDkxNTATpBEwDzENMAsGA1UEAwwEeDkxNjATpBEw --DzENMAsGA1UEAwwEeDkxNzATpBEwDzENMAsGA1UEAwwEeDkxODATpBEwDzENMAsG --A1UEAwwEeDkxOTATpBEwDzENMAsGA1UEAwwEeDkyMDATpBEwDzENMAsGA1UEAwwE --eDkyMTATpBEwDzENMAsGA1UEAwwEeDkyMjATpBEwDzENMAsGA1UEAwwEeDkyMzAT --pBEwDzENMAsGA1UEAwwEeDkyNDATpBEwDzENMAsGA1UEAwwEeDkyNTATpBEwDzEN --MAsGA1UEAwwEeDkyNjATpBEwDzENMAsGA1UEAwwEeDkyNzATpBEwDzENMAsGA1UE --AwwEeDkyODATpBEwDzENMAsGA1UEAwwEeDkyOTATpBEwDzENMAsGA1UEAwwEeDkz --MDATpBEwDzENMAsGA1UEAwwEeDkzMTATpBEwDzENMAsGA1UEAwwEeDkzMjATpBEw --DzENMAsGA1UEAwwEeDkzMzATpBEwDzENMAsGA1UEAwwEeDkzNDATpBEwDzENMAsG --A1UEAwwEeDkzNTATpBEwDzENMAsGA1UEAwwEeDkzNjATpBEwDzENMAsGA1UEAwwE --eDkzNzATpBEwDzENMAsGA1UEAwwEeDkzODATpBEwDzENMAsGA1UEAwwEeDkzOTAT --pBEwDzENMAsGA1UEAwwEeDk0MDATpBEwDzENMAsGA1UEAwwEeDk0MTATpBEwDzEN --MAsGA1UEAwwEeDk0MjATpBEwDzENMAsGA1UEAwwEeDk0MzATpBEwDzENMAsGA1UE --AwwEeDk0NDATpBEwDzENMAsGA1UEAwwEeDk0NTATpBEwDzENMAsGA1UEAwwEeDk0 --NjATpBEwDzENMAsGA1UEAwwEeDk0NzATpBEwDzENMAsGA1UEAwwEeDk0ODATpBEw --DzENMAsGA1UEAwwEeDk0OTATpBEwDzENMAsGA1UEAwwEeDk1MDATpBEwDzENMAsG --A1UEAwwEeDk1MTATpBEwDzENMAsGA1UEAwwEeDk1MjATpBEwDzENMAsGA1UEAwwE --eDk1MzATpBEwDzENMAsGA1UEAwwEeDk1NDATpBEwDzENMAsGA1UEAwwEeDk1NTAT --pBEwDzENMAsGA1UEAwwEeDk1NjATpBEwDzENMAsGA1UEAwwEeDk1NzATpBEwDzEN --MAsGA1UEAwwEeDk1ODATpBEwDzENMAsGA1UEAwwEeDk1OTATpBEwDzENMAsGA1UE --AwwEeDk2MDATpBEwDzENMAsGA1UEAwwEeDk2MTATpBEwDzENMAsGA1UEAwwEeDk2 --MjATpBEwDzENMAsGA1UEAwwEeDk2MzATpBEwDzENMAsGA1UEAwwEeDk2NDATpBEw --DzENMAsGA1UEAwwEeDk2NTATpBEwDzENMAsGA1UEAwwEeDk2NjATpBEwDzENMAsG --A1UEAwwEeDk2NzATpBEwDzENMAsGA1UEAwwEeDk2ODATpBEwDzENMAsGA1UEAwwE --eDk2OTATpBEwDzENMAsGA1UEAwwEeDk3MDATpBEwDzENMAsGA1UEAwwEeDk3MTAT --pBEwDzENMAsGA1UEAwwEeDk3MjATpBEwDzENMAsGA1UEAwwEeDk3MzATpBEwDzEN --MAsGA1UEAwwEeDk3NDATpBEwDzENMAsGA1UEAwwEeDk3NTATpBEwDzENMAsGA1UE --AwwEeDk3NjATpBEwDzENMAsGA1UEAwwEeDk3NzATpBEwDzENMAsGA1UEAwwEeDk3 --ODATpBEwDzENMAsGA1UEAwwEeDk3OTATpBEwDzENMAsGA1UEAwwEeDk4MDATpBEw --DzENMAsGA1UEAwwEeDk4MTATpBEwDzENMAsGA1UEAwwEeDk4MjATpBEwDzENMAsG --A1UEAwwEeDk4MzATpBEwDzENMAsGA1UEAwwEeDk4NDATpBEwDzENMAsGA1UEAwwE --eDk4NTATpBEwDzENMAsGA1UEAwwEeDk4NjATpBEwDzENMAsGA1UEAwwEeDk4NzAT --pBEwDzENMAsGA1UEAwwEeDk4ODATpBEwDzENMAsGA1UEAwwEeDk4OTATpBEwDzEN --MAsGA1UEAwwEeDk5MDATpBEwDzENMAsGA1UEAwwEeDk5MTATpBEwDzENMAsGA1UE --AwwEeDk5MjATpBEwDzENMAsGA1UEAwwEeDk5MzATpBEwDzENMAsGA1UEAwwEeDk5 --NDATpBEwDzENMAsGA1UEAwwEeDk5NTATpBEwDzENMAsGA1UEAwwEeDk5NjATpBEw --DzENMAsGA1UEAwwEeDk5NzATpBEwDzENMAsGA1UEAwwEeDk5ODATpBEwDzENMAsG --A1UEAwwEeDk5OTAUpBIwEDEOMAwGA1UEAwwFeDEwMDAwFKQSMBAxDjAMBgNVBAMM --BXgxMDAxMBSkEjAQMQ4wDAYDVQQDDAV4MTAwMjAUpBIwEDEOMAwGA1UEAwwFeDEw --MDMwFKQSMBAxDjAMBgNVBAMMBXgxMDA0MBSkEjAQMQ4wDAYDVQQDDAV4MTAwNTAU --pBIwEDEOMAwGA1UEAwwFeDEwMDYwFKQSMBAxDjAMBgNVBAMMBXgxMDA3MBSkEjAQ --MQ4wDAYDVQQDDAV4MTAwODAUpBIwEDEOMAwGA1UEAwwFeDEwMDkwFKQSMBAxDjAM --BgNVBAMMBXgxMDEwMBSkEjAQMQ4wDAYDVQQDDAV4MTAxMTAUpBIwEDEOMAwGA1UE --AwwFeDEwMTIwFKQSMBAxDjAMBgNVBAMMBXgxMDEzMBSkEjAQMQ4wDAYDVQQDDAV4 --MTAxNDAUpBIwEDEOMAwGA1UEAwwFeDEwMTUwFKQSMBAxDjAMBgNVBAMMBXgxMDE2 --MBSkEjAQMQ4wDAYDVQQDDAV4MTAxNzAUpBIwEDEOMAwGA1UEAwwFeDEwMTgwFKQS --MBAxDjAMBgNVBAMMBXgxMDE5MBSkEjAQMQ4wDAYDVQQDDAV4MTAyMDAUpBIwEDEO --MAwGA1UEAwwFeDEwMjEwFKQSMBAxDjAMBgNVBAMMBXgxMDIyMBSkEjAQMQ4wDAYD --VQQDDAV4MTAyMzAUpBIwEDEOMAwGA1UEAwwFeDEwMjQwD4YNaHR0cDovL3hlc3Qv --MDAPhg1odHRwOi8veGVzdC8xMA+GDWh0dHA6Ly94ZXN0LzIwD4YNaHR0cDovL3hl --c3QvMzAPhg1odHRwOi8veGVzdC80MA+GDWh0dHA6Ly94ZXN0LzUwD4YNaHR0cDov --L3hlc3QvNjAPhg1odHRwOi8veGVzdC83MA+GDWh0dHA6Ly94ZXN0LzgwD4YNaHR0 --cDovL3hlc3QvOTAQhg5odHRwOi8veGVzdC8xMDAQhg5odHRwOi8veGVzdC8xMTAQ --hg5odHRwOi8veGVzdC8xMjAQhg5odHRwOi8veGVzdC8xMzAQhg5odHRwOi8veGVz --dC8xNDAQhg5odHRwOi8veGVzdC8xNTAQhg5odHRwOi8veGVzdC8xNjAQhg5odHRw --Oi8veGVzdC8xNzAQhg5odHRwOi8veGVzdC8xODAQhg5odHRwOi8veGVzdC8xOTAQ --hg5odHRwOi8veGVzdC8yMDAQhg5odHRwOi8veGVzdC8yMTAQhg5odHRwOi8veGVz --dC8yMjAQhg5odHRwOi8veGVzdC8yMzAQhg5odHRwOi8veGVzdC8yNDAQhg5odHRw --Oi8veGVzdC8yNTAQhg5odHRwOi8veGVzdC8yNjAQhg5odHRwOi8veGVzdC8yNzAQ --hg5odHRwOi8veGVzdC8yODAQhg5odHRwOi8veGVzdC8yOTAQhg5odHRwOi8veGVz --dC8zMDAQhg5odHRwOi8veGVzdC8zMTAQhg5odHRwOi8veGVzdC8zMjAQhg5odHRw --Oi8veGVzdC8zMzAQhg5odHRwOi8veGVzdC8zNDAQhg5odHRwOi8veGVzdC8zNTAQ --hg5odHRwOi8veGVzdC8zNjAQhg5odHRwOi8veGVzdC8zNzAQhg5odHRwOi8veGVz --dC8zODAQhg5odHRwOi8veGVzdC8zOTAQhg5odHRwOi8veGVzdC80MDAQhg5odHRw --Oi8veGVzdC80MTAQhg5odHRwOi8veGVzdC80MjAQhg5odHRwOi8veGVzdC80MzAQ --hg5odHRwOi8veGVzdC80NDAQhg5odHRwOi8veGVzdC80NTAQhg5odHRwOi8veGVz --dC80NjAQhg5odHRwOi8veGVzdC80NzAQhg5odHRwOi8veGVzdC80ODAQhg5odHRw --Oi8veGVzdC80OTAQhg5odHRwOi8veGVzdC81MDAQhg5odHRwOi8veGVzdC81MTAQ --hg5odHRwOi8veGVzdC81MjAQhg5odHRwOi8veGVzdC81MzAQhg5odHRwOi8veGVz --dC81NDAQhg5odHRwOi8veGVzdC81NTAQhg5odHRwOi8veGVzdC81NjAQhg5odHRw --Oi8veGVzdC81NzAQhg5odHRwOi8veGVzdC81ODAQhg5odHRwOi8veGVzdC81OTAQ --hg5odHRwOi8veGVzdC82MDAQhg5odHRwOi8veGVzdC82MTAQhg5odHRwOi8veGVz --dC82MjAQhg5odHRwOi8veGVzdC82MzAQhg5odHRwOi8veGVzdC82NDAQhg5odHRw --Oi8veGVzdC82NTAQhg5odHRwOi8veGVzdC82NjAQhg5odHRwOi8veGVzdC82NzAQ --hg5odHRwOi8veGVzdC82ODAQhg5odHRwOi8veGVzdC82OTAQhg5odHRwOi8veGVz --dC83MDAQhg5odHRwOi8veGVzdC83MTAQhg5odHRwOi8veGVzdC83MjAQhg5odHRw --Oi8veGVzdC83MzAQhg5odHRwOi8veGVzdC83NDAQhg5odHRwOi8veGVzdC83NTAQ --hg5odHRwOi8veGVzdC83NjAQhg5odHRwOi8veGVzdC83NzAQhg5odHRwOi8veGVz --dC83ODAQhg5odHRwOi8veGVzdC83OTAQhg5odHRwOi8veGVzdC84MDAQhg5odHRw --Oi8veGVzdC84MTAQhg5odHRwOi8veGVzdC84MjAQhg5odHRwOi8veGVzdC84MzAQ --hg5odHRwOi8veGVzdC84NDAQhg5odHRwOi8veGVzdC84NTAQhg5odHRwOi8veGVz --dC84NjAQhg5odHRwOi8veGVzdC84NzAQhg5odHRwOi8veGVzdC84ODAQhg5odHRw --Oi8veGVzdC84OTAQhg5odHRwOi8veGVzdC85MDAQhg5odHRwOi8veGVzdC85MTAQ --hg5odHRwOi8veGVzdC85MjAQhg5odHRwOi8veGVzdC85MzAQhg5odHRwOi8veGVz --dC85NDAQhg5odHRwOi8veGVzdC85NTAQhg5odHRwOi8veGVzdC85NjAQhg5odHRw --Oi8veGVzdC85NzAQhg5odHRwOi8veGVzdC85ODAQhg5odHRwOi8veGVzdC85OTAR --hg9odHRwOi8veGVzdC8xMDAwEYYPaHR0cDovL3hlc3QvMTAxMBGGD2h0dHA6Ly94 --ZXN0LzEwMjARhg9odHRwOi8veGVzdC8xMDMwEYYPaHR0cDovL3hlc3QvMTA0MBGG --D2h0dHA6Ly94ZXN0LzEwNTARhg9odHRwOi8veGVzdC8xMDYwEYYPaHR0cDovL3hl --c3QvMTA3MBGGD2h0dHA6Ly94ZXN0LzEwODARhg9odHRwOi8veGVzdC8xMDkwEYYP --aHR0cDovL3hlc3QvMTEwMBGGD2h0dHA6Ly94ZXN0LzExMTARhg9odHRwOi8veGVz --dC8xMTIwEYYPaHR0cDovL3hlc3QvMTEzMBGGD2h0dHA6Ly94ZXN0LzExNDARhg9o --dHRwOi8veGVzdC8xMTUwEYYPaHR0cDovL3hlc3QvMTE2MBGGD2h0dHA6Ly94ZXN0 --LzExNzARhg9odHRwOi8veGVzdC8xMTgwEYYPaHR0cDovL3hlc3QvMTE5MBGGD2h0 --dHA6Ly94ZXN0LzEyMDARhg9odHRwOi8veGVzdC8xMjEwEYYPaHR0cDovL3hlc3Qv --MTIyMBGGD2h0dHA6Ly94ZXN0LzEyMzARhg9odHRwOi8veGVzdC8xMjQwEYYPaHR0 --cDovL3hlc3QvMTI1MBGGD2h0dHA6Ly94ZXN0LzEyNjARhg9odHRwOi8veGVzdC8x --MjcwEYYPaHR0cDovL3hlc3QvMTI4MBGGD2h0dHA6Ly94ZXN0LzEyOTARhg9odHRw --Oi8veGVzdC8xMzAwEYYPaHR0cDovL3hlc3QvMTMxMBGGD2h0dHA6Ly94ZXN0LzEz --MjARhg9odHRwOi8veGVzdC8xMzMwEYYPaHR0cDovL3hlc3QvMTM0MBGGD2h0dHA6 --Ly94ZXN0LzEzNTARhg9odHRwOi8veGVzdC8xMzYwEYYPaHR0cDovL3hlc3QvMTM3 --MBGGD2h0dHA6Ly94ZXN0LzEzODARhg9odHRwOi8veGVzdC8xMzkwEYYPaHR0cDov --L3hlc3QvMTQwMBGGD2h0dHA6Ly94ZXN0LzE0MTARhg9odHRwOi8veGVzdC8xNDIw --EYYPaHR0cDovL3hlc3QvMTQzMBGGD2h0dHA6Ly94ZXN0LzE0NDARhg9odHRwOi8v --eGVzdC8xNDUwEYYPaHR0cDovL3hlc3QvMTQ2MBGGD2h0dHA6Ly94ZXN0LzE0NzAR --hg9odHRwOi8veGVzdC8xNDgwEYYPaHR0cDovL3hlc3QvMTQ5MBGGD2h0dHA6Ly94 --ZXN0LzE1MDARhg9odHRwOi8veGVzdC8xNTEwEYYPaHR0cDovL3hlc3QvMTUyMBGG --D2h0dHA6Ly94ZXN0LzE1MzARhg9odHRwOi8veGVzdC8xNTQwEYYPaHR0cDovL3hl --c3QvMTU1MBGGD2h0dHA6Ly94ZXN0LzE1NjARhg9odHRwOi8veGVzdC8xNTcwEYYP --aHR0cDovL3hlc3QvMTU4MBGGD2h0dHA6Ly94ZXN0LzE1OTARhg9odHRwOi8veGVz --dC8xNjAwEYYPaHR0cDovL3hlc3QvMTYxMBGGD2h0dHA6Ly94ZXN0LzE2MjARhg9o --dHRwOi8veGVzdC8xNjMwEYYPaHR0cDovL3hlc3QvMTY0MBGGD2h0dHA6Ly94ZXN0 --LzE2NTARhg9odHRwOi8veGVzdC8xNjYwEYYPaHR0cDovL3hlc3QvMTY3MBGGD2h0 --dHA6Ly94ZXN0LzE2ODARhg9odHRwOi8veGVzdC8xNjkwEYYPaHR0cDovL3hlc3Qv --MTcwMBGGD2h0dHA6Ly94ZXN0LzE3MTARhg9odHRwOi8veGVzdC8xNzIwEYYPaHR0 --cDovL3hlc3QvMTczMBGGD2h0dHA6Ly94ZXN0LzE3NDARhg9odHRwOi8veGVzdC8x --NzUwEYYPaHR0cDovL3hlc3QvMTc2MBGGD2h0dHA6Ly94ZXN0LzE3NzARhg9odHRw --Oi8veGVzdC8xNzgwEYYPaHR0cDovL3hlc3QvMTc5MBGGD2h0dHA6Ly94ZXN0LzE4 --MDARhg9odHRwOi8veGVzdC8xODEwEYYPaHR0cDovL3hlc3QvMTgyMBGGD2h0dHA6 --Ly94ZXN0LzE4MzARhg9odHRwOi8veGVzdC8xODQwEYYPaHR0cDovL3hlc3QvMTg1 --MBGGD2h0dHA6Ly94ZXN0LzE4NjARhg9odHRwOi8veGVzdC8xODcwEYYPaHR0cDov --L3hlc3QvMTg4MBGGD2h0dHA6Ly94ZXN0LzE4OTARhg9odHRwOi8veGVzdC8xOTAw --EYYPaHR0cDovL3hlc3QvMTkxMBGGD2h0dHA6Ly94ZXN0LzE5MjARhg9odHRwOi8v --eGVzdC8xOTMwEYYPaHR0cDovL3hlc3QvMTk0MBGGD2h0dHA6Ly94ZXN0LzE5NTAR --hg9odHRwOi8veGVzdC8xOTYwEYYPaHR0cDovL3hlc3QvMTk3MBGGD2h0dHA6Ly94 --ZXN0LzE5ODARhg9odHRwOi8veGVzdC8xOTkwEYYPaHR0cDovL3hlc3QvMjAwMBGG --D2h0dHA6Ly94ZXN0LzIwMTARhg9odHRwOi8veGVzdC8yMDIwEYYPaHR0cDovL3hl --c3QvMjAzMBGGD2h0dHA6Ly94ZXN0LzIwNDARhg9odHRwOi8veGVzdC8yMDUwEYYP --aHR0cDovL3hlc3QvMjA2MBGGD2h0dHA6Ly94ZXN0LzIwNzARhg9odHRwOi8veGVz --dC8yMDgwEYYPaHR0cDovL3hlc3QvMjA5MBGGD2h0dHA6Ly94ZXN0LzIxMDARhg9o --dHRwOi8veGVzdC8yMTEwEYYPaHR0cDovL3hlc3QvMjEyMBGGD2h0dHA6Ly94ZXN0 --LzIxMzARhg9odHRwOi8veGVzdC8yMTQwEYYPaHR0cDovL3hlc3QvMjE1MBGGD2h0 --dHA6Ly94ZXN0LzIxNjARhg9odHRwOi8veGVzdC8yMTcwEYYPaHR0cDovL3hlc3Qv --MjE4MBGGD2h0dHA6Ly94ZXN0LzIxOTARhg9odHRwOi8veGVzdC8yMjAwEYYPaHR0 --cDovL3hlc3QvMjIxMBGGD2h0dHA6Ly94ZXN0LzIyMjARhg9odHRwOi8veGVzdC8y --MjMwEYYPaHR0cDovL3hlc3QvMjI0MBGGD2h0dHA6Ly94ZXN0LzIyNTARhg9odHRw --Oi8veGVzdC8yMjYwEYYPaHR0cDovL3hlc3QvMjI3MBGGD2h0dHA6Ly94ZXN0LzIy --ODARhg9odHRwOi8veGVzdC8yMjkwEYYPaHR0cDovL3hlc3QvMjMwMBGGD2h0dHA6 --Ly94ZXN0LzIzMTARhg9odHRwOi8veGVzdC8yMzIwEYYPaHR0cDovL3hlc3QvMjMz --MBGGD2h0dHA6Ly94ZXN0LzIzNDARhg9odHRwOi8veGVzdC8yMzUwEYYPaHR0cDov --L3hlc3QvMjM2MBGGD2h0dHA6Ly94ZXN0LzIzNzARhg9odHRwOi8veGVzdC8yMzgw --EYYPaHR0cDovL3hlc3QvMjM5MBGGD2h0dHA6Ly94ZXN0LzI0MDARhg9odHRwOi8v --eGVzdC8yNDEwEYYPaHR0cDovL3hlc3QvMjQyMBGGD2h0dHA6Ly94ZXN0LzI0MzAR --hg9odHRwOi8veGVzdC8yNDQwEYYPaHR0cDovL3hlc3QvMjQ1MBGGD2h0dHA6Ly94 --ZXN0LzI0NjARhg9odHRwOi8veGVzdC8yNDcwEYYPaHR0cDovL3hlc3QvMjQ4MBGG --D2h0dHA6Ly94ZXN0LzI0OTARhg9odHRwOi8veGVzdC8yNTAwEYYPaHR0cDovL3hl --c3QvMjUxMBGGD2h0dHA6Ly94ZXN0LzI1MjARhg9odHRwOi8veGVzdC8yNTMwEYYP --aHR0cDovL3hlc3QvMjU0MBGGD2h0dHA6Ly94ZXN0LzI1NTARhg9odHRwOi8veGVz --dC8yNTYwEYYPaHR0cDovL3hlc3QvMjU3MBGGD2h0dHA6Ly94ZXN0LzI1ODARhg9o --dHRwOi8veGVzdC8yNTkwEYYPaHR0cDovL3hlc3QvMjYwMBGGD2h0dHA6Ly94ZXN0 --LzI2MTARhg9odHRwOi8veGVzdC8yNjIwEYYPaHR0cDovL3hlc3QvMjYzMBGGD2h0 --dHA6Ly94ZXN0LzI2NDARhg9odHRwOi8veGVzdC8yNjUwEYYPaHR0cDovL3hlc3Qv --MjY2MBGGD2h0dHA6Ly94ZXN0LzI2NzARhg9odHRwOi8veGVzdC8yNjgwEYYPaHR0 --cDovL3hlc3QvMjY5MBGGD2h0dHA6Ly94ZXN0LzI3MDARhg9odHRwOi8veGVzdC8y --NzEwEYYPaHR0cDovL3hlc3QvMjcyMBGGD2h0dHA6Ly94ZXN0LzI3MzARhg9odHRw --Oi8veGVzdC8yNzQwEYYPaHR0cDovL3hlc3QvMjc1MBGGD2h0dHA6Ly94ZXN0LzI3 --NjARhg9odHRwOi8veGVzdC8yNzcwEYYPaHR0cDovL3hlc3QvMjc4MBGGD2h0dHA6 --Ly94ZXN0LzI3OTARhg9odHRwOi8veGVzdC8yODAwEYYPaHR0cDovL3hlc3QvMjgx --MBGGD2h0dHA6Ly94ZXN0LzI4MjARhg9odHRwOi8veGVzdC8yODMwEYYPaHR0cDov --L3hlc3QvMjg0MBGGD2h0dHA6Ly94ZXN0LzI4NTARhg9odHRwOi8veGVzdC8yODYw --EYYPaHR0cDovL3hlc3QvMjg3MBGGD2h0dHA6Ly94ZXN0LzI4ODARhg9odHRwOi8v --eGVzdC8yODkwEYYPaHR0cDovL3hlc3QvMjkwMBGGD2h0dHA6Ly94ZXN0LzI5MTAR --hg9odHRwOi8veGVzdC8yOTIwEYYPaHR0cDovL3hlc3QvMjkzMBGGD2h0dHA6Ly94 --ZXN0LzI5NDARhg9odHRwOi8veGVzdC8yOTUwEYYPaHR0cDovL3hlc3QvMjk2MBGG --D2h0dHA6Ly94ZXN0LzI5NzARhg9odHRwOi8veGVzdC8yOTgwEYYPaHR0cDovL3hl --c3QvMjk5MBGGD2h0dHA6Ly94ZXN0LzMwMDARhg9odHRwOi8veGVzdC8zMDEwEYYP --aHR0cDovL3hlc3QvMzAyMBGGD2h0dHA6Ly94ZXN0LzMwMzARhg9odHRwOi8veGVz --dC8zMDQwEYYPaHR0cDovL3hlc3QvMzA1MBGGD2h0dHA6Ly94ZXN0LzMwNjARhg9o --dHRwOi8veGVzdC8zMDcwEYYPaHR0cDovL3hlc3QvMzA4MBGGD2h0dHA6Ly94ZXN0 --LzMwOTARhg9odHRwOi8veGVzdC8zMTAwEYYPaHR0cDovL3hlc3QvMzExMBGGD2h0 --dHA6Ly94ZXN0LzMxMjARhg9odHRwOi8veGVzdC8zMTMwEYYPaHR0cDovL3hlc3Qv --MzE0MBGGD2h0dHA6Ly94ZXN0LzMxNTARhg9odHRwOi8veGVzdC8zMTYwEYYPaHR0 --cDovL3hlc3QvMzE3MBGGD2h0dHA6Ly94ZXN0LzMxODARhg9odHRwOi8veGVzdC8z --MTkwEYYPaHR0cDovL3hlc3QvMzIwMBGGD2h0dHA6Ly94ZXN0LzMyMTARhg9odHRw --Oi8veGVzdC8zMjIwEYYPaHR0cDovL3hlc3QvMzIzMBGGD2h0dHA6Ly94ZXN0LzMy --NDARhg9odHRwOi8veGVzdC8zMjUwEYYPaHR0cDovL3hlc3QvMzI2MBGGD2h0dHA6 --Ly94ZXN0LzMyNzARhg9odHRwOi8veGVzdC8zMjgwEYYPaHR0cDovL3hlc3QvMzI5 --MBGGD2h0dHA6Ly94ZXN0LzMzMDARhg9odHRwOi8veGVzdC8zMzEwEYYPaHR0cDov --L3hlc3QvMzMyMBGGD2h0dHA6Ly94ZXN0LzMzMzARhg9odHRwOi8veGVzdC8zMzQw --EYYPaHR0cDovL3hlc3QvMzM1MBGGD2h0dHA6Ly94ZXN0LzMzNjARhg9odHRwOi8v --eGVzdC8zMzcwEYYPaHR0cDovL3hlc3QvMzM4MBGGD2h0dHA6Ly94ZXN0LzMzOTAR --hg9odHRwOi8veGVzdC8zNDAwEYYPaHR0cDovL3hlc3QvMzQxMBGGD2h0dHA6Ly94 --ZXN0LzM0MjARhg9odHRwOi8veGVzdC8zNDMwEYYPaHR0cDovL3hlc3QvMzQ0MBGG --D2h0dHA6Ly94ZXN0LzM0NTARhg9odHRwOi8veGVzdC8zNDYwEYYPaHR0cDovL3hl --c3QvMzQ3MBGGD2h0dHA6Ly94ZXN0LzM0ODARhg9odHRwOi8veGVzdC8zNDkwEYYP --aHR0cDovL3hlc3QvMzUwMBGGD2h0dHA6Ly94ZXN0LzM1MTARhg9odHRwOi8veGVz --dC8zNTIwEYYPaHR0cDovL3hlc3QvMzUzMBGGD2h0dHA6Ly94ZXN0LzM1NDARhg9o --dHRwOi8veGVzdC8zNTUwEYYPaHR0cDovL3hlc3QvMzU2MBGGD2h0dHA6Ly94ZXN0 --LzM1NzARhg9odHRwOi8veGVzdC8zNTgwEYYPaHR0cDovL3hlc3QvMzU5MBGGD2h0 --dHA6Ly94ZXN0LzM2MDARhg9odHRwOi8veGVzdC8zNjEwEYYPaHR0cDovL3hlc3Qv --MzYyMBGGD2h0dHA6Ly94ZXN0LzM2MzARhg9odHRwOi8veGVzdC8zNjQwEYYPaHR0 --cDovL3hlc3QvMzY1MBGGD2h0dHA6Ly94ZXN0LzM2NjARhg9odHRwOi8veGVzdC8z --NjcwEYYPaHR0cDovL3hlc3QvMzY4MBGGD2h0dHA6Ly94ZXN0LzM2OTARhg9odHRw --Oi8veGVzdC8zNzAwEYYPaHR0cDovL3hlc3QvMzcxMBGGD2h0dHA6Ly94ZXN0LzM3 --MjARhg9odHRwOi8veGVzdC8zNzMwEYYPaHR0cDovL3hlc3QvMzc0MBGGD2h0dHA6 --Ly94ZXN0LzM3NTARhg9odHRwOi8veGVzdC8zNzYwEYYPaHR0cDovL3hlc3QvMzc3 --MBGGD2h0dHA6Ly94ZXN0LzM3ODARhg9odHRwOi8veGVzdC8zNzkwEYYPaHR0cDov --L3hlc3QvMzgwMBGGD2h0dHA6Ly94ZXN0LzM4MTARhg9odHRwOi8veGVzdC8zODIw --EYYPaHR0cDovL3hlc3QvMzgzMBGGD2h0dHA6Ly94ZXN0LzM4NDARhg9odHRwOi8v --eGVzdC8zODUwEYYPaHR0cDovL3hlc3QvMzg2MBGGD2h0dHA6Ly94ZXN0LzM4NzAR --hg9odHRwOi8veGVzdC8zODgwEYYPaHR0cDovL3hlc3QvMzg5MBGGD2h0dHA6Ly94 --ZXN0LzM5MDARhg9odHRwOi8veGVzdC8zOTEwEYYPaHR0cDovL3hlc3QvMzkyMBGG --D2h0dHA6Ly94ZXN0LzM5MzARhg9odHRwOi8veGVzdC8zOTQwEYYPaHR0cDovL3hl --c3QvMzk1MBGGD2h0dHA6Ly94ZXN0LzM5NjARhg9odHRwOi8veGVzdC8zOTcwEYYP --aHR0cDovL3hlc3QvMzk4MBGGD2h0dHA6Ly94ZXN0LzM5OTARhg9odHRwOi8veGVz --dC80MDAwEYYPaHR0cDovL3hlc3QvNDAxMBGGD2h0dHA6Ly94ZXN0LzQwMjARhg9o --dHRwOi8veGVzdC80MDMwEYYPaHR0cDovL3hlc3QvNDA0MBGGD2h0dHA6Ly94ZXN0 --LzQwNTARhg9odHRwOi8veGVzdC80MDYwEYYPaHR0cDovL3hlc3QvNDA3MBGGD2h0 --dHA6Ly94ZXN0LzQwODARhg9odHRwOi8veGVzdC80MDkwEYYPaHR0cDovL3hlc3Qv --NDEwMBGGD2h0dHA6Ly94ZXN0LzQxMTARhg9odHRwOi8veGVzdC80MTIwEYYPaHR0 --cDovL3hlc3QvNDEzMBGGD2h0dHA6Ly94ZXN0LzQxNDARhg9odHRwOi8veGVzdC80 --MTUwEYYPaHR0cDovL3hlc3QvNDE2MBGGD2h0dHA6Ly94ZXN0LzQxNzARhg9odHRw --Oi8veGVzdC80MTgwEYYPaHR0cDovL3hlc3QvNDE5MBGGD2h0dHA6Ly94ZXN0LzQy --MDARhg9odHRwOi8veGVzdC80MjEwEYYPaHR0cDovL3hlc3QvNDIyMBGGD2h0dHA6 --Ly94ZXN0LzQyMzARhg9odHRwOi8veGVzdC80MjQwEYYPaHR0cDovL3hlc3QvNDI1 --MBGGD2h0dHA6Ly94ZXN0LzQyNjARhg9odHRwOi8veGVzdC80MjcwEYYPaHR0cDov --L3hlc3QvNDI4MBGGD2h0dHA6Ly94ZXN0LzQyOTARhg9odHRwOi8veGVzdC80MzAw --EYYPaHR0cDovL3hlc3QvNDMxMBGGD2h0dHA6Ly94ZXN0LzQzMjARhg9odHRwOi8v --eGVzdC80MzMwEYYPaHR0cDovL3hlc3QvNDM0MBGGD2h0dHA6Ly94ZXN0LzQzNTAR --hg9odHRwOi8veGVzdC80MzYwEYYPaHR0cDovL3hlc3QvNDM3MBGGD2h0dHA6Ly94 --ZXN0LzQzODARhg9odHRwOi8veGVzdC80MzkwEYYPaHR0cDovL3hlc3QvNDQwMBGG --D2h0dHA6Ly94ZXN0LzQ0MTARhg9odHRwOi8veGVzdC80NDIwEYYPaHR0cDovL3hl --c3QvNDQzMBGGD2h0dHA6Ly94ZXN0LzQ0NDARhg9odHRwOi8veGVzdC80NDUwEYYP --aHR0cDovL3hlc3QvNDQ2MBGGD2h0dHA6Ly94ZXN0LzQ0NzARhg9odHRwOi8veGVz --dC80NDgwEYYPaHR0cDovL3hlc3QvNDQ5MBGGD2h0dHA6Ly94ZXN0LzQ1MDARhg9o --dHRwOi8veGVzdC80NTEwEYYPaHR0cDovL3hlc3QvNDUyMBGGD2h0dHA6Ly94ZXN0 --LzQ1MzARhg9odHRwOi8veGVzdC80NTQwEYYPaHR0cDovL3hlc3QvNDU1MBGGD2h0 --dHA6Ly94ZXN0LzQ1NjARhg9odHRwOi8veGVzdC80NTcwEYYPaHR0cDovL3hlc3Qv --NDU4MBGGD2h0dHA6Ly94ZXN0LzQ1OTARhg9odHRwOi8veGVzdC80NjAwEYYPaHR0 --cDovL3hlc3QvNDYxMBGGD2h0dHA6Ly94ZXN0LzQ2MjARhg9odHRwOi8veGVzdC80 --NjMwEYYPaHR0cDovL3hlc3QvNDY0MBGGD2h0dHA6Ly94ZXN0LzQ2NTARhg9odHRw --Oi8veGVzdC80NjYwEYYPaHR0cDovL3hlc3QvNDY3MBGGD2h0dHA6Ly94ZXN0LzQ2 --ODARhg9odHRwOi8veGVzdC80NjkwEYYPaHR0cDovL3hlc3QvNDcwMBGGD2h0dHA6 --Ly94ZXN0LzQ3MTARhg9odHRwOi8veGVzdC80NzIwEYYPaHR0cDovL3hlc3QvNDcz --MBGGD2h0dHA6Ly94ZXN0LzQ3NDARhg9odHRwOi8veGVzdC80NzUwEYYPaHR0cDov --L3hlc3QvNDc2MBGGD2h0dHA6Ly94ZXN0LzQ3NzARhg9odHRwOi8veGVzdC80Nzgw --EYYPaHR0cDovL3hlc3QvNDc5MBGGD2h0dHA6Ly94ZXN0LzQ4MDARhg9odHRwOi8v --eGVzdC80ODEwEYYPaHR0cDovL3hlc3QvNDgyMBGGD2h0dHA6Ly94ZXN0LzQ4MzAR --hg9odHRwOi8veGVzdC80ODQwEYYPaHR0cDovL3hlc3QvNDg1MBGGD2h0dHA6Ly94 --ZXN0LzQ4NjARhg9odHRwOi8veGVzdC80ODcwEYYPaHR0cDovL3hlc3QvNDg4MBGG --D2h0dHA6Ly94ZXN0LzQ4OTARhg9odHRwOi8veGVzdC80OTAwEYYPaHR0cDovL3hl --c3QvNDkxMBGGD2h0dHA6Ly94ZXN0LzQ5MjARhg9odHRwOi8veGVzdC80OTMwEYYP --aHR0cDovL3hlc3QvNDk0MBGGD2h0dHA6Ly94ZXN0LzQ5NTARhg9odHRwOi8veGVz --dC80OTYwEYYPaHR0cDovL3hlc3QvNDk3MBGGD2h0dHA6Ly94ZXN0LzQ5ODARhg9o --dHRwOi8veGVzdC80OTkwEYYPaHR0cDovL3hlc3QvNTAwMBGGD2h0dHA6Ly94ZXN0 --LzUwMTARhg9odHRwOi8veGVzdC81MDIwEYYPaHR0cDovL3hlc3QvNTAzMBGGD2h0 --dHA6Ly94ZXN0LzUwNDARhg9odHRwOi8veGVzdC81MDUwEYYPaHR0cDovL3hlc3Qv --NTA2MBGGD2h0dHA6Ly94ZXN0LzUwNzARhg9odHRwOi8veGVzdC81MDgwEYYPaHR0 --cDovL3hlc3QvNTA5MBGGD2h0dHA6Ly94ZXN0LzUxMDARhg9odHRwOi8veGVzdC81 --MTEwEYYPaHR0cDovL3hlc3QvNTEyMBGGD2h0dHA6Ly94ZXN0LzUxMzARhg9odHRw --Oi8veGVzdC81MTQwEYYPaHR0cDovL3hlc3QvNTE1MBGGD2h0dHA6Ly94ZXN0LzUx --NjARhg9odHRwOi8veGVzdC81MTcwEYYPaHR0cDovL3hlc3QvNTE4MBGGD2h0dHA6 --Ly94ZXN0LzUxOTARhg9odHRwOi8veGVzdC81MjAwEYYPaHR0cDovL3hlc3QvNTIx --MBGGD2h0dHA6Ly94ZXN0LzUyMjARhg9odHRwOi8veGVzdC81MjMwEYYPaHR0cDov --L3hlc3QvNTI0MBGGD2h0dHA6Ly94ZXN0LzUyNTARhg9odHRwOi8veGVzdC81MjYw --EYYPaHR0cDovL3hlc3QvNTI3MBGGD2h0dHA6Ly94ZXN0LzUyODARhg9odHRwOi8v --eGVzdC81MjkwEYYPaHR0cDovL3hlc3QvNTMwMBGGD2h0dHA6Ly94ZXN0LzUzMTAR --hg9odHRwOi8veGVzdC81MzIwEYYPaHR0cDovL3hlc3QvNTMzMBGGD2h0dHA6Ly94 --ZXN0LzUzNDARhg9odHRwOi8veGVzdC81MzUwEYYPaHR0cDovL3hlc3QvNTM2MBGG --D2h0dHA6Ly94ZXN0LzUzNzARhg9odHRwOi8veGVzdC81MzgwEYYPaHR0cDovL3hl --c3QvNTM5MBGGD2h0dHA6Ly94ZXN0LzU0MDARhg9odHRwOi8veGVzdC81NDEwEYYP --aHR0cDovL3hlc3QvNTQyMBGGD2h0dHA6Ly94ZXN0LzU0MzARhg9odHRwOi8veGVz --dC81NDQwEYYPaHR0cDovL3hlc3QvNTQ1MBGGD2h0dHA6Ly94ZXN0LzU0NjARhg9o --dHRwOi8veGVzdC81NDcwEYYPaHR0cDovL3hlc3QvNTQ4MBGGD2h0dHA6Ly94ZXN0 --LzU0OTARhg9odHRwOi8veGVzdC81NTAwEYYPaHR0cDovL3hlc3QvNTUxMBGGD2h0 --dHA6Ly94ZXN0LzU1MjARhg9odHRwOi8veGVzdC81NTMwEYYPaHR0cDovL3hlc3Qv --NTU0MBGGD2h0dHA6Ly94ZXN0LzU1NTARhg9odHRwOi8veGVzdC81NTYwEYYPaHR0 --cDovL3hlc3QvNTU3MBGGD2h0dHA6Ly94ZXN0LzU1ODARhg9odHRwOi8veGVzdC81 --NTkwEYYPaHR0cDovL3hlc3QvNTYwMBGGD2h0dHA6Ly94ZXN0LzU2MTARhg9odHRw --Oi8veGVzdC81NjIwEYYPaHR0cDovL3hlc3QvNTYzMBGGD2h0dHA6Ly94ZXN0LzU2 --NDARhg9odHRwOi8veGVzdC81NjUwEYYPaHR0cDovL3hlc3QvNTY2MBGGD2h0dHA6 --Ly94ZXN0LzU2NzARhg9odHRwOi8veGVzdC81NjgwEYYPaHR0cDovL3hlc3QvNTY5 --MBGGD2h0dHA6Ly94ZXN0LzU3MDARhg9odHRwOi8veGVzdC81NzEwEYYPaHR0cDov --L3hlc3QvNTcyMBGGD2h0dHA6Ly94ZXN0LzU3MzARhg9odHRwOi8veGVzdC81NzQw --EYYPaHR0cDovL3hlc3QvNTc1MBGGD2h0dHA6Ly94ZXN0LzU3NjARhg9odHRwOi8v --eGVzdC81NzcwEYYPaHR0cDovL3hlc3QvNTc4MBGGD2h0dHA6Ly94ZXN0LzU3OTAR --hg9odHRwOi8veGVzdC81ODAwEYYPaHR0cDovL3hlc3QvNTgxMBGGD2h0dHA6Ly94 --ZXN0LzU4MjARhg9odHRwOi8veGVzdC81ODMwEYYPaHR0cDovL3hlc3QvNTg0MBGG --D2h0dHA6Ly94ZXN0LzU4NTARhg9odHRwOi8veGVzdC81ODYwEYYPaHR0cDovL3hl --c3QvNTg3MBGGD2h0dHA6Ly94ZXN0LzU4ODARhg9odHRwOi8veGVzdC81ODkwEYYP --aHR0cDovL3hlc3QvNTkwMBGGD2h0dHA6Ly94ZXN0LzU5MTARhg9odHRwOi8veGVz --dC81OTIwEYYPaHR0cDovL3hlc3QvNTkzMBGGD2h0dHA6Ly94ZXN0LzU5NDARhg9o --dHRwOi8veGVzdC81OTUwEYYPaHR0cDovL3hlc3QvNTk2MBGGD2h0dHA6Ly94ZXN0 --LzU5NzARhg9odHRwOi8veGVzdC81OTgwEYYPaHR0cDovL3hlc3QvNTk5MBGGD2h0 --dHA6Ly94ZXN0LzYwMDARhg9odHRwOi8veGVzdC82MDEwEYYPaHR0cDovL3hlc3Qv --NjAyMBGGD2h0dHA6Ly94ZXN0LzYwMzARhg9odHRwOi8veGVzdC82MDQwEYYPaHR0 --cDovL3hlc3QvNjA1MBGGD2h0dHA6Ly94ZXN0LzYwNjARhg9odHRwOi8veGVzdC82 --MDcwEYYPaHR0cDovL3hlc3QvNjA4MBGGD2h0dHA6Ly94ZXN0LzYwOTARhg9odHRw --Oi8veGVzdC82MTAwEYYPaHR0cDovL3hlc3QvNjExMBGGD2h0dHA6Ly94ZXN0LzYx --MjARhg9odHRwOi8veGVzdC82MTMwEYYPaHR0cDovL3hlc3QvNjE0MBGGD2h0dHA6 --Ly94ZXN0LzYxNTARhg9odHRwOi8veGVzdC82MTYwEYYPaHR0cDovL3hlc3QvNjE3 --MBGGD2h0dHA6Ly94ZXN0LzYxODARhg9odHRwOi8veGVzdC82MTkwEYYPaHR0cDov --L3hlc3QvNjIwMBGGD2h0dHA6Ly94ZXN0LzYyMTARhg9odHRwOi8veGVzdC82MjIw --EYYPaHR0cDovL3hlc3QvNjIzMBGGD2h0dHA6Ly94ZXN0LzYyNDARhg9odHRwOi8v --eGVzdC82MjUwEYYPaHR0cDovL3hlc3QvNjI2MBGGD2h0dHA6Ly94ZXN0LzYyNzAR --hg9odHRwOi8veGVzdC82MjgwEYYPaHR0cDovL3hlc3QvNjI5MBGGD2h0dHA6Ly94 --ZXN0LzYzMDARhg9odHRwOi8veGVzdC82MzEwEYYPaHR0cDovL3hlc3QvNjMyMBGG --D2h0dHA6Ly94ZXN0LzYzMzARhg9odHRwOi8veGVzdC82MzQwEYYPaHR0cDovL3hl --c3QvNjM1MBGGD2h0dHA6Ly94ZXN0LzYzNjARhg9odHRwOi8veGVzdC82MzcwEYYP --aHR0cDovL3hlc3QvNjM4MBGGD2h0dHA6Ly94ZXN0LzYzOTARhg9odHRwOi8veGVz --dC82NDAwEYYPaHR0cDovL3hlc3QvNjQxMBGGD2h0dHA6Ly94ZXN0LzY0MjARhg9o --dHRwOi8veGVzdC82NDMwEYYPaHR0cDovL3hlc3QvNjQ0MBGGD2h0dHA6Ly94ZXN0 --LzY0NTARhg9odHRwOi8veGVzdC82NDYwEYYPaHR0cDovL3hlc3QvNjQ3MBGGD2h0 --dHA6Ly94ZXN0LzY0ODARhg9odHRwOi8veGVzdC82NDkwEYYPaHR0cDovL3hlc3Qv --NjUwMBGGD2h0dHA6Ly94ZXN0LzY1MTARhg9odHRwOi8veGVzdC82NTIwEYYPaHR0 --cDovL3hlc3QvNjUzMBGGD2h0dHA6Ly94ZXN0LzY1NDARhg9odHRwOi8veGVzdC82 --NTUwEYYPaHR0cDovL3hlc3QvNjU2MBGGD2h0dHA6Ly94ZXN0LzY1NzARhg9odHRw --Oi8veGVzdC82NTgwEYYPaHR0cDovL3hlc3QvNjU5MBGGD2h0dHA6Ly94ZXN0LzY2 --MDARhg9odHRwOi8veGVzdC82NjEwEYYPaHR0cDovL3hlc3QvNjYyMBGGD2h0dHA6 --Ly94ZXN0LzY2MzARhg9odHRwOi8veGVzdC82NjQwEYYPaHR0cDovL3hlc3QvNjY1 --MBGGD2h0dHA6Ly94ZXN0LzY2NjARhg9odHRwOi8veGVzdC82NjcwEYYPaHR0cDov --L3hlc3QvNjY4MBGGD2h0dHA6Ly94ZXN0LzY2OTARhg9odHRwOi8veGVzdC82NzAw --EYYPaHR0cDovL3hlc3QvNjcxMBGGD2h0dHA6Ly94ZXN0LzY3MjARhg9odHRwOi8v --eGVzdC82NzMwEYYPaHR0cDovL3hlc3QvNjc0MBGGD2h0dHA6Ly94ZXN0LzY3NTAR --hg9odHRwOi8veGVzdC82NzYwEYYPaHR0cDovL3hlc3QvNjc3MBGGD2h0dHA6Ly94 --ZXN0LzY3ODARhg9odHRwOi8veGVzdC82NzkwEYYPaHR0cDovL3hlc3QvNjgwMBGG --D2h0dHA6Ly94ZXN0LzY4MTARhg9odHRwOi8veGVzdC82ODIwEYYPaHR0cDovL3hl --c3QvNjgzMBGGD2h0dHA6Ly94ZXN0LzY4NDARhg9odHRwOi8veGVzdC82ODUwEYYP --aHR0cDovL3hlc3QvNjg2MBGGD2h0dHA6Ly94ZXN0LzY4NzARhg9odHRwOi8veGVz --dC82ODgwEYYPaHR0cDovL3hlc3QvNjg5MBGGD2h0dHA6Ly94ZXN0LzY5MDARhg9o --dHRwOi8veGVzdC82OTEwEYYPaHR0cDovL3hlc3QvNjkyMBGGD2h0dHA6Ly94ZXN0 --LzY5MzARhg9odHRwOi8veGVzdC82OTQwEYYPaHR0cDovL3hlc3QvNjk1MBGGD2h0 --dHA6Ly94ZXN0LzY5NjARhg9odHRwOi8veGVzdC82OTcwEYYPaHR0cDovL3hlc3Qv --Njk4MBGGD2h0dHA6Ly94ZXN0LzY5OTARhg9odHRwOi8veGVzdC83MDAwEYYPaHR0 --cDovL3hlc3QvNzAxMBGGD2h0dHA6Ly94ZXN0LzcwMjARhg9odHRwOi8veGVzdC83 --MDMwEYYPaHR0cDovL3hlc3QvNzA0MBGGD2h0dHA6Ly94ZXN0LzcwNTARhg9odHRw --Oi8veGVzdC83MDYwEYYPaHR0cDovL3hlc3QvNzA3MBGGD2h0dHA6Ly94ZXN0Lzcw --ODARhg9odHRwOi8veGVzdC83MDkwEYYPaHR0cDovL3hlc3QvNzEwMBGGD2h0dHA6 --Ly94ZXN0LzcxMTARhg9odHRwOi8veGVzdC83MTIwEYYPaHR0cDovL3hlc3QvNzEz --MBGGD2h0dHA6Ly94ZXN0LzcxNDARhg9odHRwOi8veGVzdC83MTUwEYYPaHR0cDov --L3hlc3QvNzE2MBGGD2h0dHA6Ly94ZXN0LzcxNzARhg9odHRwOi8veGVzdC83MTgw --EYYPaHR0cDovL3hlc3QvNzE5MBGGD2h0dHA6Ly94ZXN0LzcyMDARhg9odHRwOi8v --eGVzdC83MjEwEYYPaHR0cDovL3hlc3QvNzIyMBGGD2h0dHA6Ly94ZXN0LzcyMzAR --hg9odHRwOi8veGVzdC83MjQwEYYPaHR0cDovL3hlc3QvNzI1MBGGD2h0dHA6Ly94 --ZXN0LzcyNjARhg9odHRwOi8veGVzdC83MjcwEYYPaHR0cDovL3hlc3QvNzI4MBGG --D2h0dHA6Ly94ZXN0LzcyOTARhg9odHRwOi8veGVzdC83MzAwEYYPaHR0cDovL3hl --c3QvNzMxMBGGD2h0dHA6Ly94ZXN0LzczMjARhg9odHRwOi8veGVzdC83MzMwEYYP --aHR0cDovL3hlc3QvNzM0MBGGD2h0dHA6Ly94ZXN0LzczNTARhg9odHRwOi8veGVz --dC83MzYwEYYPaHR0cDovL3hlc3QvNzM3MBGGD2h0dHA6Ly94ZXN0LzczODARhg9o --dHRwOi8veGVzdC83MzkwEYYPaHR0cDovL3hlc3QvNzQwMBGGD2h0dHA6Ly94ZXN0 --Lzc0MTARhg9odHRwOi8veGVzdC83NDIwEYYPaHR0cDovL3hlc3QvNzQzMBGGD2h0 --dHA6Ly94ZXN0Lzc0NDARhg9odHRwOi8veGVzdC83NDUwEYYPaHR0cDovL3hlc3Qv --NzQ2MBGGD2h0dHA6Ly94ZXN0Lzc0NzARhg9odHRwOi8veGVzdC83NDgwEYYPaHR0 --cDovL3hlc3QvNzQ5MBGGD2h0dHA6Ly94ZXN0Lzc1MDARhg9odHRwOi8veGVzdC83 --NTEwEYYPaHR0cDovL3hlc3QvNzUyMBGGD2h0dHA6Ly94ZXN0Lzc1MzARhg9odHRw --Oi8veGVzdC83NTQwEYYPaHR0cDovL3hlc3QvNzU1MBGGD2h0dHA6Ly94ZXN0Lzc1 --NjARhg9odHRwOi8veGVzdC83NTcwEYYPaHR0cDovL3hlc3QvNzU4MBGGD2h0dHA6 --Ly94ZXN0Lzc1OTARhg9odHRwOi8veGVzdC83NjAwEYYPaHR0cDovL3hlc3QvNzYx --MBGGD2h0dHA6Ly94ZXN0Lzc2MjARhg9odHRwOi8veGVzdC83NjMwEYYPaHR0cDov --L3hlc3QvNzY0MBGGD2h0dHA6Ly94ZXN0Lzc2NTARhg9odHRwOi8veGVzdC83NjYw --EYYPaHR0cDovL3hlc3QvNzY3MBGGD2h0dHA6Ly94ZXN0Lzc2ODARhg9odHRwOi8v --eGVzdC83NjkwEYYPaHR0cDovL3hlc3QvNzcwMBGGD2h0dHA6Ly94ZXN0Lzc3MTAR --hg9odHRwOi8veGVzdC83NzIwEYYPaHR0cDovL3hlc3QvNzczMBGGD2h0dHA6Ly94 --ZXN0Lzc3NDARhg9odHRwOi8veGVzdC83NzUwEYYPaHR0cDovL3hlc3QvNzc2MBGG --D2h0dHA6Ly94ZXN0Lzc3NzARhg9odHRwOi8veGVzdC83NzgwEYYPaHR0cDovL3hl --c3QvNzc5MBGGD2h0dHA6Ly94ZXN0Lzc4MDARhg9odHRwOi8veGVzdC83ODEwEYYP --aHR0cDovL3hlc3QvNzgyMBGGD2h0dHA6Ly94ZXN0Lzc4MzARhg9odHRwOi8veGVz --dC83ODQwEYYPaHR0cDovL3hlc3QvNzg1MBGGD2h0dHA6Ly94ZXN0Lzc4NjARhg9o --dHRwOi8veGVzdC83ODcwEYYPaHR0cDovL3hlc3QvNzg4MBGGD2h0dHA6Ly94ZXN0 --Lzc4OTARhg9odHRwOi8veGVzdC83OTAwEYYPaHR0cDovL3hlc3QvNzkxMBGGD2h0 --dHA6Ly94ZXN0Lzc5MjARhg9odHRwOi8veGVzdC83OTMwEYYPaHR0cDovL3hlc3Qv --Nzk0MBGGD2h0dHA6Ly94ZXN0Lzc5NTARhg9odHRwOi8veGVzdC83OTYwEYYPaHR0 --cDovL3hlc3QvNzk3MBGGD2h0dHA6Ly94ZXN0Lzc5ODARhg9odHRwOi8veGVzdC83 --OTkwEYYPaHR0cDovL3hlc3QvODAwMBGGD2h0dHA6Ly94ZXN0LzgwMTARhg9odHRw --Oi8veGVzdC84MDIwEYYPaHR0cDovL3hlc3QvODAzMBGGD2h0dHA6Ly94ZXN0Lzgw --NDARhg9odHRwOi8veGVzdC84MDUwEYYPaHR0cDovL3hlc3QvODA2MBGGD2h0dHA6 --Ly94ZXN0LzgwNzARhg9odHRwOi8veGVzdC84MDgwEYYPaHR0cDovL3hlc3QvODA5 --MBGGD2h0dHA6Ly94ZXN0LzgxMDARhg9odHRwOi8veGVzdC84MTEwEYYPaHR0cDov --L3hlc3QvODEyMBGGD2h0dHA6Ly94ZXN0LzgxMzARhg9odHRwOi8veGVzdC84MTQw --EYYPaHR0cDovL3hlc3QvODE1MBGGD2h0dHA6Ly94ZXN0LzgxNjARhg9odHRwOi8v --eGVzdC84MTcwEYYPaHR0cDovL3hlc3QvODE4MBGGD2h0dHA6Ly94ZXN0LzgxOTAR --hg9odHRwOi8veGVzdC84MjAwEYYPaHR0cDovL3hlc3QvODIxMBGGD2h0dHA6Ly94 --ZXN0LzgyMjARhg9odHRwOi8veGVzdC84MjMwEYYPaHR0cDovL3hlc3QvODI0MBGG --D2h0dHA6Ly94ZXN0LzgyNTARhg9odHRwOi8veGVzdC84MjYwEYYPaHR0cDovL3hl --c3QvODI3MBGGD2h0dHA6Ly94ZXN0LzgyODARhg9odHRwOi8veGVzdC84MjkwEYYP --aHR0cDovL3hlc3QvODMwMBGGD2h0dHA6Ly94ZXN0LzgzMTARhg9odHRwOi8veGVz --dC84MzIwEYYPaHR0cDovL3hlc3QvODMzMBGGD2h0dHA6Ly94ZXN0LzgzNDARhg9o --dHRwOi8veGVzdC84MzUwEYYPaHR0cDovL3hlc3QvODM2MBGGD2h0dHA6Ly94ZXN0 --LzgzNzARhg9odHRwOi8veGVzdC84MzgwEYYPaHR0cDovL3hlc3QvODM5MBGGD2h0 --dHA6Ly94ZXN0Lzg0MDARhg9odHRwOi8veGVzdC84NDEwEYYPaHR0cDovL3hlc3Qv --ODQyMBGGD2h0dHA6Ly94ZXN0Lzg0MzARhg9odHRwOi8veGVzdC84NDQwEYYPaHR0 --cDovL3hlc3QvODQ1MBGGD2h0dHA6Ly94ZXN0Lzg0NjARhg9odHRwOi8veGVzdC84 --NDcwEYYPaHR0cDovL3hlc3QvODQ4MBGGD2h0dHA6Ly94ZXN0Lzg0OTARhg9odHRw --Oi8veGVzdC84NTAwEYYPaHR0cDovL3hlc3QvODUxMBGGD2h0dHA6Ly94ZXN0Lzg1 --MjARhg9odHRwOi8veGVzdC84NTMwEYYPaHR0cDovL3hlc3QvODU0MBGGD2h0dHA6 --Ly94ZXN0Lzg1NTARhg9odHRwOi8veGVzdC84NTYwEYYPaHR0cDovL3hlc3QvODU3 --MBGGD2h0dHA6Ly94ZXN0Lzg1ODARhg9odHRwOi8veGVzdC84NTkwEYYPaHR0cDov --L3hlc3QvODYwMBGGD2h0dHA6Ly94ZXN0Lzg2MTARhg9odHRwOi8veGVzdC84NjIw --EYYPaHR0cDovL3hlc3QvODYzMBGGD2h0dHA6Ly94ZXN0Lzg2NDARhg9odHRwOi8v --eGVzdC84NjUwEYYPaHR0cDovL3hlc3QvODY2MBGGD2h0dHA6Ly94ZXN0Lzg2NzAR --hg9odHRwOi8veGVzdC84NjgwEYYPaHR0cDovL3hlc3QvODY5MBGGD2h0dHA6Ly94 --ZXN0Lzg3MDARhg9odHRwOi8veGVzdC84NzEwEYYPaHR0cDovL3hlc3QvODcyMBGG --D2h0dHA6Ly94ZXN0Lzg3MzARhg9odHRwOi8veGVzdC84NzQwEYYPaHR0cDovL3hl --c3QvODc1MBGGD2h0dHA6Ly94ZXN0Lzg3NjARhg9odHRwOi8veGVzdC84NzcwEYYP --aHR0cDovL3hlc3QvODc4MBGGD2h0dHA6Ly94ZXN0Lzg3OTARhg9odHRwOi8veGVz --dC84ODAwEYYPaHR0cDovL3hlc3QvODgxMBGGD2h0dHA6Ly94ZXN0Lzg4MjARhg9o --dHRwOi8veGVzdC84ODMwEYYPaHR0cDovL3hlc3QvODg0MBGGD2h0dHA6Ly94ZXN0 --Lzg4NTARhg9odHRwOi8veGVzdC84ODYwEYYPaHR0cDovL3hlc3QvODg3MBGGD2h0 --dHA6Ly94ZXN0Lzg4ODARhg9odHRwOi8veGVzdC84ODkwEYYPaHR0cDovL3hlc3Qv --ODkwMBGGD2h0dHA6Ly94ZXN0Lzg5MTARhg9odHRwOi8veGVzdC84OTIwEYYPaHR0 --cDovL3hlc3QvODkzMBGGD2h0dHA6Ly94ZXN0Lzg5NDARhg9odHRwOi8veGVzdC84 --OTUwEYYPaHR0cDovL3hlc3QvODk2MBGGD2h0dHA6Ly94ZXN0Lzg5NzARhg9odHRw --Oi8veGVzdC84OTgwEYYPaHR0cDovL3hlc3QvODk5MBGGD2h0dHA6Ly94ZXN0Lzkw --MDARhg9odHRwOi8veGVzdC85MDEwEYYPaHR0cDovL3hlc3QvOTAyMBGGD2h0dHA6 --Ly94ZXN0LzkwMzARhg9odHRwOi8veGVzdC85MDQwEYYPaHR0cDovL3hlc3QvOTA1 --MBGGD2h0dHA6Ly94ZXN0LzkwNjARhg9odHRwOi8veGVzdC85MDcwEYYPaHR0cDov --L3hlc3QvOTA4MBGGD2h0dHA6Ly94ZXN0LzkwOTARhg9odHRwOi8veGVzdC85MTAw --EYYPaHR0cDovL3hlc3QvOTExMBGGD2h0dHA6Ly94ZXN0LzkxMjARhg9odHRwOi8v --eGVzdC85MTMwEYYPaHR0cDovL3hlc3QvOTE0MBGGD2h0dHA6Ly94ZXN0LzkxNTAR --hg9odHRwOi8veGVzdC85MTYwEYYPaHR0cDovL3hlc3QvOTE3MBGGD2h0dHA6Ly94 --ZXN0LzkxODARhg9odHRwOi8veGVzdC85MTkwEYYPaHR0cDovL3hlc3QvOTIwMBGG --D2h0dHA6Ly94ZXN0LzkyMTARhg9odHRwOi8veGVzdC85MjIwEYYPaHR0cDovL3hl --c3QvOTIzMBGGD2h0dHA6Ly94ZXN0LzkyNDARhg9odHRwOi8veGVzdC85MjUwEYYP --aHR0cDovL3hlc3QvOTI2MBGGD2h0dHA6Ly94ZXN0LzkyNzARhg9odHRwOi8veGVz --dC85MjgwEYYPaHR0cDovL3hlc3QvOTI5MBGGD2h0dHA6Ly94ZXN0LzkzMDARhg9o --dHRwOi8veGVzdC85MzEwEYYPaHR0cDovL3hlc3QvOTMyMBGGD2h0dHA6Ly94ZXN0 --LzkzMzARhg9odHRwOi8veGVzdC85MzQwEYYPaHR0cDovL3hlc3QvOTM1MBGGD2h0 --dHA6Ly94ZXN0LzkzNjARhg9odHRwOi8veGVzdC85MzcwEYYPaHR0cDovL3hlc3Qv --OTM4MBGGD2h0dHA6Ly94ZXN0LzkzOTARhg9odHRwOi8veGVzdC85NDAwEYYPaHR0 --cDovL3hlc3QvOTQxMBGGD2h0dHA6Ly94ZXN0Lzk0MjARhg9odHRwOi8veGVzdC85 --NDMwEYYPaHR0cDovL3hlc3QvOTQ0MBGGD2h0dHA6Ly94ZXN0Lzk0NTARhg9odHRw --Oi8veGVzdC85NDYwEYYPaHR0cDovL3hlc3QvOTQ3MBGGD2h0dHA6Ly94ZXN0Lzk0 --ODARhg9odHRwOi8veGVzdC85NDkwEYYPaHR0cDovL3hlc3QvOTUwMBGGD2h0dHA6 --Ly94ZXN0Lzk1MTARhg9odHRwOi8veGVzdC85NTIwEYYPaHR0cDovL3hlc3QvOTUz --MBGGD2h0dHA6Ly94ZXN0Lzk1NDARhg9odHRwOi8veGVzdC85NTUwEYYPaHR0cDov --L3hlc3QvOTU2MBGGD2h0dHA6Ly94ZXN0Lzk1NzARhg9odHRwOi8veGVzdC85NTgw --EYYPaHR0cDovL3hlc3QvOTU5MBGGD2h0dHA6Ly94ZXN0Lzk2MDARhg9odHRwOi8v --eGVzdC85NjEwEYYPaHR0cDovL3hlc3QvOTYyMBGGD2h0dHA6Ly94ZXN0Lzk2MzAR --hg9odHRwOi8veGVzdC85NjQwEYYPaHR0cDovL3hlc3QvOTY1MBGGD2h0dHA6Ly94 --ZXN0Lzk2NjARhg9odHRwOi8veGVzdC85NjcwEYYPaHR0cDovL3hlc3QvOTY4MBGG --D2h0dHA6Ly94ZXN0Lzk2OTARhg9odHRwOi8veGVzdC85NzAwEYYPaHR0cDovL3hl --c3QvOTcxMBGGD2h0dHA6Ly94ZXN0Lzk3MjARhg9odHRwOi8veGVzdC85NzMwEYYP --aHR0cDovL3hlc3QvOTc0MBGGD2h0dHA6Ly94ZXN0Lzk3NTARhg9odHRwOi8veGVz --dC85NzYwEYYPaHR0cDovL3hlc3QvOTc3MBGGD2h0dHA6Ly94ZXN0Lzk3ODARhg9o --dHRwOi8veGVzdC85NzkwEYYPaHR0cDovL3hlc3QvOTgwMBGGD2h0dHA6Ly94ZXN0 --Lzk4MTARhg9odHRwOi8veGVzdC85ODIwEYYPaHR0cDovL3hlc3QvOTgzMBGGD2h0 --dHA6Ly94ZXN0Lzk4NDARhg9odHRwOi8veGVzdC85ODUwEYYPaHR0cDovL3hlc3Qv --OTg2MBGGD2h0dHA6Ly94ZXN0Lzk4NzARhg9odHRwOi8veGVzdC85ODgwEYYPaHR0 --cDovL3hlc3QvOTg5MBGGD2h0dHA6Ly94ZXN0Lzk5MDARhg9odHRwOi8veGVzdC85 --OTEwEYYPaHR0cDovL3hlc3QvOTkyMBGGD2h0dHA6Ly94ZXN0Lzk5MzARhg9odHRw --Oi8veGVzdC85OTQwEYYPaHR0cDovL3hlc3QvOTk1MBGGD2h0dHA6Ly94ZXN0Lzk5 --NjARhg9odHRwOi8veGVzdC85OTcwEYYPaHR0cDovL3hlc3QvOTk4MBGGD2h0dHA6 --Ly94ZXN0Lzk5OTAShhBodHRwOi8veGVzdC8xMDAwMBKGEGh0dHA6Ly94ZXN0LzEw --MDEwEoYQaHR0cDovL3hlc3QvMTAwMjAShhBodHRwOi8veGVzdC8xMDAzMBKGEGh0 --dHA6Ly94ZXN0LzEwMDQwEoYQaHR0cDovL3hlc3QvMTAwNTAShhBodHRwOi8veGVz --dC8xMDA2MBKGEGh0dHA6Ly94ZXN0LzEwMDcwEoYQaHR0cDovL3hlc3QvMTAwODAS --hhBodHRwOi8veGVzdC8xMDA5MBKGEGh0dHA6Ly94ZXN0LzEwMTAwEoYQaHR0cDov --L3hlc3QvMTAxMTAShhBodHRwOi8veGVzdC8xMDEyMBKGEGh0dHA6Ly94ZXN0LzEw --MTMwEoYQaHR0cDovL3hlc3QvMTAxNDAShhBodHRwOi8veGVzdC8xMDE1MBKGEGh0 --dHA6Ly94ZXN0LzEwMTYwEoYQaHR0cDovL3hlc3QvMTAxNzAShhBodHRwOi8veGVz --dC8xMDE4MBKGEGh0dHA6Ly94ZXN0LzEwMTkwEoYQaHR0cDovL3hlc3QvMTAyMDAS --hhBodHRwOi8veGVzdC8xMDIxMBKGEGh0dHA6Ly94ZXN0LzEwMjIwEoYQaHR0cDov --L3hlc3QvMTAyMzAShhBodHRwOi8veGVzdC8xMDI0MA0GCSqGSIb3DQEBCwUAA4IB --AQBr+8lS062gdeMHGF9s3XW0PaRAD5cuwgg71sfF2HzXGG57K5l0fdCx+lOxfbgO --jxZMddd4/5DCFPohZqUnQ/aME3fiusUvKTZWSm4HUeebz3gXa2Hvh5+6g3fw8yUB --HQzSSmWxwA4OksrZsdwlJIK4mt+NkkK2KI5dqvb/YhO/jDzGPIgkC1pWKtp0HSOz --4AUaV4lrtjCBYyBa5FZ5fF3PnifFtbM19g5scZxYmUD5OHTfEZqkCYVmWI6rv1im --lvznOJXxE0KlszJTqa9ThRNmktMpeyf6nzsczNQRaRFs/XdNcB1KfJ+8p8NlUs54 --Eg9Kb0fnRM6aQn2TKWMaSWrC -------END CERTIFICATE----- -- --Certificate: -- Data: -- Version: 3 (0x2) -- Serial Number: -- 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -- Issuer: CN=Root -- Validity -- Not Before: Oct 5 12:00:00 2021 GMT -- Not After : Oct 5 12:00:00 2022 GMT -- Subject: CN=Root -- Subject Public Key Info: -- Public Key Algorithm: rsaEncryption -- RSA Public-Key: (2048 bit) -- Modulus: -- 00:cc:7a:cf:ec:bd:a0:01:c3:26:51:d8:28:ae:80: -- b6:0b:d2:76:d7:04:86:18:ac:fd:f2:8f:64:e7:92: -- d6:d0:42:32:4f:cd:d0:4d:d0:ac:71:9a:73:80:0a: -- 04:70:20:a3:2f:a0:9b:f4:3e:19:cf:69:54:b5:be: -- 85:dd:6e:b2:0b:14:df:27:bf:2c:a1:bb:b2:a7:23: -- 0c:fb:ae:78:69:6b:1a:6e:7c:38:7f:15:5d:e5:cf: -- 27:32:56:2a:f1:87:fe:3a:16:73:e6:dd:83:f2:f2: -- ae:31:c8:93:d2:49:b7:b1:71:f5:55:de:bb:85:cd: -- cb:19:74:1d:61:49:da:83:44:ec:4c:5e:aa:d5:8b: -- 32:1a:db:77:d5:b1:83:8c:00:b9:55:b7:64:78:5c: -- 87:c9:68:58:bd:de:af:50:e2:bb:bd:32:cd:fa:3d: -- df:3b:3d:93:10:16:b6:6d:90:1d:d7:7d:e9:ea:7e: -- 1e:2e:c8:10:a4:14:ad:62:72:af:65:95:1f:a7:6e: -- 81:84:9f:df:85:4e:c0:3e:7f:8c:02:0a:f0:65:58: -- 84:7c:6a:e1:53:af:3c:f1:7a:b9:33:c8:e7:f9:ed: -- 92:46:00:50:62:f0:89:41:57:1e:81:d1:04:12:b3: -- fc:25:60:17:5c:0b:eb:a9:46:4a:03:39:16:11:4d: -- e1:7b -- Exponent: 65537 (0x10001) -- X509v3 extensions: -- X509v3 Subject Key Identifier: -- B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- X509v3 Authority Key Identifier: -- keyid:B6:C2:EF:9F:D1:29:CB:0F:89:8C:4C:52:D4:BD:40:B7:11:B7:71:DD -- -- Authority Information Access: -- CA Issuers - URI:http://url-for-aia/Root.cer -- -- X509v3 CRL Distribution Points: -- -- Full Name: -- URI:http://url-for-crl/Root.crl -- -- X509v3 Key Usage: critical -- Certificate Sign, CRL Sign -- X509v3 Basic Constraints: critical -- CA:TRUE -- Signature Algorithm: sha256WithRSAEncryption -- 3a:c4:f6:50:32:77:14:e2:a8:69:9b:ad:85:a0:fa:95:08:d2: -- 22:cb:d3:aa:53:94:e5:1f:92:fa:d5:7b:c8:a5:b6:13:15:42: -- 42:2c:ce:48:e9:f1:55:c7:cd:f4:29:b6:46:e9:08:81:8c:83: -- 82:c5:d4:f7:1e:90:3c:2d:78:39:7f:be:e8:30:5e:f7:d4:72: -- e4:db:0a:09:49:c0:ce:83:66:c0:16:73:f4:cf:67:ad:74:e3: -- 10:60:72:16:77:4a:c8:08:88:93:62:c0:4a:23:0b:74:3e:63: -- 98:9c:54:1d:34:d5:b6:da:bc:7c:5a:f2:68:22:e2:d9:15:12: -- 84:04:f6:3e:b3:ac:97:bc:b4:54:93:3c:d4:0b:25:e4:c1:34: -- 5a:98:bc:aa:de:78:bb:12:3f:33:82:a2:bf:5f:82:e6:9e:ad: -- 85:21:21:d9:9d:41:5e:4f:72:a3:16:8d:7d:b4:1d:26:d8:77: -- d8:29:22:13:a2:f6:d7:9f:1c:60:2f:17:9e:fd:f4:63:a3:c6: -- ed:e3:47:43:b7:73:39:82:97:18:fa:4b:db:2e:ac:d3:7b:54: -- cd:f8:d0:eb:70:13:03:8a:4b:9b:90:62:4e:b0:34:22:49:ec: -- 78:2a:47:97:60:13:03:23:ed:09:ff:a8:00:59:6a:2c:d1:2e: -- d0:93:0b:59 -------BEGIN CERTIFICATE----- --MIIDeDCCAmCgAwIBAgIUPOX8gYhZqFAWwX/X5Srlln/C9vUwDQYJKoZIhvcNAQEL --BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw --MDBaMA8xDTALBgNVBAMMBFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK --AoIBAQDMes/svaABwyZR2CiugLYL0nbXBIYYrP3yj2TnktbQQjJPzdBN0KxxmnOA --CgRwIKMvoJv0PhnPaVS1voXdbrILFN8nvyyhu7KnIwz7rnhpaxpufDh/FV3lzycy --Virxh/46FnPm3YPy8q4xyJPSSbexcfVV3ruFzcsZdB1hSdqDROxMXqrVizIa23fV --sYOMALlVt2R4XIfJaFi93q9Q4ru9Ms36Pd87PZMQFrZtkB3Xfenqfh4uyBCkFK1i --cq9llR+nboGEn9+FTsA+f4wCCvBlWIR8auFTrzzxerkzyOf57ZJGAFBi8IlBVx6B --0QQSs/wlYBdcC+upRkoDORYRTeF7AgMBAAGjgcswgcgwHQYDVR0OBBYEFLbC75/R --KcsPiYxMUtS9QLcRt3HdMB8GA1UdIwQYMBaAFLbC75/RKcsPiYxMUtS9QLcRt3Hd --MDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAoYbaHR0cDovL3VybC1mb3ItYWlh --L1Jvb3QuY2VyMCwGA1UdHwQlMCMwIaAfoB2GG2h0dHA6Ly91cmwtZm9yLWNybC9S --b290LmNybDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG --9w0BAQsFAAOCAQEAOsT2UDJ3FOKoaZuthaD6lQjSIsvTqlOU5R+S+tV7yKW2ExVC --QizOSOnxVcfN9Cm2RukIgYyDgsXU9x6QPC14OX++6DBe99Ry5NsKCUnAzoNmwBZz --9M9nrXTjEGByFndKyAiIk2LASiMLdD5jmJxUHTTVttq8fFryaCLi2RUShAT2PrOs --l7y0VJM81Asl5ME0Wpi8qt54uxI/M4Kiv1+C5p6thSEh2Z1BXk9yoxaNfbQdJth3 --2CkiE6L2158cYC8Xnv30Y6PG7eNHQ7dzOYKXGPpL2y6s03tUzfjQ63ATA4pLm5Bi --TrA0IknseCpHl2ATAyPtCf+oAFlqLNEu0JMLWQ== -------END CERTIFICATE----- -diff --git a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.test b/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.test -deleted file mode 100644 -index b65959ca6a117..0000000000000 ---- a/net/data/verify_certificate_chain_unittest/many-names/ok-different-types-ips.test -+++ /dev/null -@@ -1,5 +0,0 @@ --chain: ok-different-types-ips.pem --last_cert_trust: TRUSTED_ANCHOR --utc_time: DEFAULT --key_purpose: SERVER_AUTH --expected_errors: -diff --git a/net/data/verify_certificate_chain_unittest/many-names/toomany-all-types.pem b/net/data/verify_certificate_chain_unittest/many-names/toomany-all-types.pem -index 6e8eb13fd5247..159ea50748182 100644 ---- a/net/data/verify_certificate_chain_unittest/many-names/toomany-all-types.pem -+++ b/net/data/verify_certificate_chain_unittest/many-names/toomany-all-types.pem -@@ -1,4 +1,4 @@ --[Created by: generate-chains.py] -+[Created by: ./generate-chains.py] - - A chain containing a large number of different types of name - constraints and names, above the limit. -@@ -8,7 +8,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:d5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Intermediate - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -56,25 +56,25 @@ Certificate: - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: -- DNS:t0.test, DNS:t1.test, DNS:t2.test, DNS:t3.test, DNS:t4.test, DNS:t5.test, DNS:t6.test, DNS:t7.test, DNS:t8.test, DNS:t9.test, DNS:t10.test, DNS:t11.test, DNS:t12.test, DNS:t13.test, DNS:t14.test, DNS:t15.test, DNS:t16.test, DNS:t17.test, DNS:t18.test, DNS:t19.test, DNS:t20.test, DNS:t21.test, DNS:t22.test, DNS:t23.test, DNS:t24.test, DNS:t25.test, DNS:t26.test, DNS:t27.test, DNS:t28.test, DNS:t29.test, DNS:t30.test, DNS:t31.test, DNS:t32.test, DNS:t33.test, DNS:t34.test, DNS:t35.test, DNS:t36.test, DNS:t37.test, DNS:t38.test, DNS:t39.test, DNS:t40.test, DNS:t41.test, DNS:t42.test, DNS:t43.test, DNS:t44.test, DNS:t45.test, DNS:t46.test, DNS:t47.test, DNS:t48.test, DNS:t49.test, DNS:t50.test, DNS:t51.test, DNS:t52.test, DNS:t53.test, DNS:t54.test, DNS:t55.test, DNS:t56.test, DNS:t57.test, DNS:t58.test, DNS:t59.test, DNS:t60.test, DNS:t61.test, DNS:t62.test, DNS:t63.test, DNS:t64.test, DNS:t65.test, DNS:t66.test, DNS:t67.test, DNS:t68.test, DNS:t69.test, DNS:t70.test, DNS:t71.test, DNS:t72.test, DNS:t73.test, DNS:t74.test, DNS:t75.test, DNS:t76.test, DNS:t77.test, DNS:t78.test, DNS:t79.test, DNS:t80.test, DNS:t81.test, DNS:t82.test, DNS:t83.test, DNS:t84.test, DNS:t85.test, DNS:t86.test, DNS:t87.test, DNS:t88.test, DNS:t89.test, DNS:t90.test, DNS:t91.test, DNS:t92.test, DNS:t93.test, DNS:t94.test, DNS:t95.test, DNS:t96.test, DNS:t97.test, DNS:t98.test, DNS:t99.test, DNS:t100.test, DNS:t101.test, DNS:t102.test, DNS:t103.test, DNS:t104.test, DNS:t105.test, DNS:t106.test, DNS:t107.test, DNS:t108.test, DNS:t109.test, DNS:t110.test, DNS:t111.test, DNS:t112.test, DNS:t113.test, DNS:t114.test, DNS:t115.test, DNS:t116.test, DNS:t117.test, DNS:t118.test, DNS:t119.test, DNS:t120.test, DNS:t121.test, DNS:t122.test, DNS:t123.test, DNS:t124.test, DNS:t125.test, DNS:t126.test, DNS:t127.test, DNS:t128.test, DNS:t129.test, DNS:t130.test, DNS:t131.test, DNS:t132.test, DNS:t133.test, DNS:t134.test, DNS:t135.test, DNS:t136.test, DNS:t137.test, DNS:t138.test, DNS:t139.test, DNS:t140.test, DNS:t141.test, DNS:t142.test, DNS:t143.test, DNS:t144.test, DNS:t145.test, DNS:t146.test, DNS:t147.test, DNS:t148.test, DNS:t149.test, DNS:t150.test, DNS:t151.test, DNS:t152.test, DNS:t153.test, DNS:t154.test, DNS:t155.test, DNS:t156.test, DNS:t157.test, DNS:t158.test, DNS:t159.test, DNS:t160.test, DNS:t161.test, DNS:t162.test, DNS:t163.test, DNS:t164.test, DNS:t165.test, DNS:t166.test, DNS:t167.test, DNS:t168.test, DNS:t169.test, DNS:t170.test, DNS:t171.test, DNS:t172.test, DNS:t173.test, DNS:t174.test, DNS:t175.test, DNS:t176.test, DNS:t177.test, DNS:t178.test, DNS:t179.test, DNS:t180.test, DNS:t181.test, DNS:t182.test, DNS:t183.test, DNS:t184.test, DNS:t185.test, DNS:t186.test, DNS:t187.test, DNS:t188.test, DNS:t189.test, DNS:t190.test, DNS:t191.test, DNS:t192.test, DNS:t193.test, DNS:t194.test, DNS:t195.test, DNS:t196.test, DNS:t197.test, DNS:t198.test, DNS:t199.test, DNS:t200.test, DNS:t201.test, DNS:t202.test, DNS:t203.test, DNS:t204.test, DNS:t205.test, DNS:t206.test, DNS:t207.test, DNS:t208.test, DNS:t209.test, DNS:t210.test, DNS:t211.test, DNS:t212.test, DNS:t213.test, DNS:t214.test, DNS:t215.test, DNS:t216.test, DNS:t217.test, DNS:t218.test, DNS:t219.test, DNS:t220.test, DNS:t221.test, DNS:t222.test, DNS:t223.test, DNS:t224.test, DNS:t225.test, DNS:t226.test, DNS:t227.test, DNS:t228.test, DNS:t229.test, DNS:t230.test, DNS:t231.test, DNS:t232.test, DNS:t233.test, DNS:t234.test, DNS:t235.test, DNS:t236.test, DNS:t237.test, DNS:t238.test, DNS:t239.test, DNS:t240.test, DNS:t241.test, DNS:t242.test, DNS:t243.test, DNS:t244.test, DNS:t245.test, DNS:t246.test, DNS:t247.test, DNS:t248.test, DNS:t249.test, DNS:t250.test, DNS:t251.test, DNS:t252.test, DNS:t253.test, DNS:t254.test, DNS:t255.test, DNS:t256.test, DNS:t257.test, DNS:t258.test, DNS:t259.test, DNS:t260.test, DNS:t261.test, DNS:t262.test, DNS:t263.test, DNS:t264.test, DNS:t265.test, DNS:t266.test, DNS:t267.test, DNS:t268.test, DNS:t269.test, DNS:t270.test, DNS:t271.test, DNS:t272.test, DNS:t273.test, DNS:t274.test, DNS:t275.test, DNS:t276.test, DNS:t277.test, DNS:t278.test, DNS:t279.test, DNS:t280.test, DNS:t281.test, DNS:t282.test, DNS:t283.test, DNS:t284.test, DNS:t285.test, DNS:t286.test, DNS:t287.test, DNS:t288.test, DNS:t289.test, DNS:t290.test, DNS:t291.test, DNS:t292.test, DNS:t293.test, DNS:t294.test, DNS:t295.test, DNS:t296.test, DNS:t297.test, DNS:t298.test, DNS:t299.test, DNS:t300.test, DNS:t301.test, DNS:t302.test, DNS:t303.test, DNS:t304.test, DNS:t305.test, DNS:t306.test, DNS:t307.test, DNS:t308.test, DNS:t309.test, DNS:t310.test, DNS:t311.test, DNS:t312.test, DNS:t313.test, DNS:t314.test, DNS:t315.test, DNS:t316.test, DNS:t317.test, DNS:t318.test, DNS:t319.test, DNS:t320.test, DNS:t321.test, DNS:t322.test, DNS:t323.test, DNS:t324.test, DNS:t325.test, DNS:t326.test, DNS:t327.test, DNS:t328.test, DNS:t329.test, DNS:t330.test, DNS:t331.test, DNS:t332.test, DNS:t333.test, DNS:t334.test, DNS:t335.test, DNS:t336.test, DNS:t337.test, DNS:t338.test, DNS:t339.test, DNS:t340.test, DNS:t341.test, DNS:t342.test, DNS:t343.test, DNS:t344.test, DNS:t345.test, DNS:t346.test, DNS:t347.test, DNS:t348.test, DNS:t349.test, DNS:t350.test, DNS:t351.test, DNS:t352.test, DNS:t353.test, DNS:t354.test, DNS:t355.test, DNS:t356.test, DNS:t357.test, DNS:t358.test, DNS:t359.test, DNS:t360.test, DNS:t361.test, DNS:t362.test, DNS:t363.test, DNS:t364.test, DNS:t365.test, DNS:t366.test, DNS:t367.test, DNS:t368.test, DNS:t369.test, DNS:t370.test, DNS:t371.test, DNS:t372.test, DNS:t373.test, DNS:t374.test, DNS:t375.test, DNS:t376.test, DNS:t377.test, DNS:t378.test, DNS:t379.test, DNS:t380.test, DNS:t381.test, DNS:t382.test, DNS:t383.test, DNS:t384.test, DNS:t385.test, DNS:t386.test, DNS:t387.test, DNS:t388.test, DNS:t389.test, DNS:t390.test, DNS:t391.test, DNS:t392.test, DNS:t393.test, DNS:t394.test, DNS:t395.test, DNS:t396.test, DNS:t397.test, DNS:t398.test, DNS:t399.test, DNS:t400.test, DNS:t401.test, DNS:t402.test, DNS:t403.test, DNS:t404.test, DNS:t405.test, DNS:t406.test, DNS:t407.test, DNS:t408.test, DNS:t409.test, DNS:t410.test, DNS:t411.test, DNS:t412.test, DNS:t413.test, DNS:t414.test, DNS:t415.test, DNS:t416.test, DNS:t417.test, DNS:t418.test, IP Address:10.0.0.0, IP Address:10.0.0.1, IP Address:10.0.0.2, IP Address:10.0.0.3, IP Address:10.0.0.4, IP Address:10.0.0.5, IP Address:10.0.0.6, IP Address:10.0.0.7, IP Address:10.0.0.8, IP Address:10.0.0.9, IP Address:10.0.0.10, IP Address:10.0.0.11, IP Address:10.0.0.12, IP Address:10.0.0.13, IP Address:10.0.0.14, IP Address:10.0.0.15, IP Address:10.0.0.16, IP Address:10.0.0.17, IP Address:10.0.0.18, IP Address:10.0.0.19, IP Address:10.0.0.20, IP Address:10.0.0.21, IP Address:10.0.0.22, IP Address:10.0.0.23, IP Address:10.0.0.24, IP Address:10.0.0.25, IP Address:10.0.0.26, IP Address:10.0.0.27, IP Address:10.0.0.28, IP Address:10.0.0.29, IP Address:10.0.0.30, IP Address:10.0.0.31, IP Address:10.0.0.32, IP Address:10.0.0.33, IP Address:10.0.0.34, IP Address:10.0.0.35, IP Address:10.0.0.36, IP Address:10.0.0.37, IP Address:10.0.0.38, IP Address:10.0.0.39, IP Address:10.0.0.40, IP Address:10.0.0.41, IP Address:10.0.0.42, IP Address:10.0.0.43, IP Address:10.0.0.44, IP Address:10.0.0.45, IP Address:10.0.0.46, IP Address:10.0.0.47, IP Address:10.0.0.48, IP Address:10.0.0.49, IP Address:10.0.0.50, IP Address:10.0.0.51, IP Address:10.0.0.52, IP Address:10.0.0.53, IP Address:10.0.0.54, IP Address:10.0.0.55, IP Address:10.0.0.56, IP Address:10.0.0.57, IP Address:10.0.0.58, IP Address:10.0.0.59, IP Address:10.0.0.60, IP Address:10.0.0.61, IP Address:10.0.0.62, IP Address:10.0.0.63, IP Address:10.0.0.64, IP Address:10.0.0.65, IP Address:10.0.0.66, IP Address:10.0.0.67, IP Address:10.0.0.68, IP Address:10.0.0.69, IP Address:10.0.0.70, IP Address:10.0.0.71, IP Address:10.0.0.72, IP Address:10.0.0.73, IP Address:10.0.0.74, IP Address:10.0.0.75, IP Address:10.0.0.76, IP Address:10.0.0.77, IP Address:10.0.0.78, IP Address:10.0.0.79, IP Address:10.0.0.80, IP Address:10.0.0.81, IP Address:10.0.0.82, IP Address:10.0.0.83, IP Address:10.0.0.84, IP Address:10.0.0.85, IP Address:10.0.0.86, IP Address:10.0.0.87, IP Address:10.0.0.88, IP Address:10.0.0.89, IP Address:10.0.0.90, IP Address:10.0.0.91, IP Address:10.0.0.92, IP Address:10.0.0.93, IP Address:10.0.0.94, IP Address:10.0.0.95, IP Address:10.0.0.96, IP Address:10.0.0.97, IP Address:10.0.0.98, IP Address:10.0.0.99, IP Address:10.0.0.100, IP Address:10.0.0.101, IP Address:10.0.0.102, IP Address:10.0.0.103, IP Address:10.0.0.104, IP Address:10.0.0.105, IP Address:10.0.0.106, IP Address:10.0.0.107, IP Address:10.0.0.108, IP Address:10.0.0.109, IP Address:10.0.0.110, IP Address:10.0.0.111, IP Address:10.0.0.112, IP Address:10.0.0.113, IP Address:10.0.0.114, IP Address:10.0.0.115, IP Address:10.0.0.116, IP Address:10.0.0.117, IP Address:10.0.0.118, IP Address:10.0.0.119, IP Address:10.0.0.120, IP Address:10.0.0.121, IP Address:10.0.0.122, IP Address:10.0.0.123, IP Address:10.0.0.124, IP Address:10.0.0.125, IP Address:10.0.0.126, IP Address:10.0.0.127, IP Address:10.0.0.128, IP Address:10.0.0.129, IP Address:10.0.0.130, IP Address:10.0.0.131, IP Address:10.0.0.132, IP Address:10.0.0.133, IP Address:10.0.0.134, IP Address:10.0.0.135, IP Address:10.0.0.136, IP Address:10.0.0.137, IP Address:10.0.0.138, IP Address:10.0.0.139, IP Address:10.0.0.140, IP Address:10.0.0.141, IP Address:10.0.0.142, IP Address:10.0.0.143, IP Address:10.0.0.144, IP Address:10.0.0.145, IP Address:10.0.0.146, IP Address:10.0.0.147, IP Address:10.0.0.148, IP Address:10.0.0.149, IP Address:10.0.0.150, IP Address:10.0.0.151, IP Address:10.0.0.152, IP Address:10.0.0.153, IP Address:10.0.0.154, IP Address:10.0.0.155, IP Address:10.0.0.156, IP Address:10.0.0.157, IP Address:10.0.0.158, IP Address:10.0.0.159, IP Address:10.0.0.160, IP Address:10.0.0.161, IP Address:10.0.0.162, IP Address:10.0.0.163, IP Address:10.0.0.164, IP Address:10.0.0.165, IP Address:10.0.0.166, IP Address:10.0.0.167, IP Address:10.0.0.168, IP Address:10.0.0.169, IP Address:10.0.0.170, IP Address:10.0.0.171, IP Address:10.0.0.172, IP Address:10.0.0.173, IP Address:10.0.0.174, IP Address:10.0.0.175, IP Address:10.0.0.176, IP Address:10.0.0.177, IP Address:10.0.0.178, IP Address:10.0.0.179, IP Address:10.0.0.180, IP Address:10.0.0.181, IP Address:10.0.0.182, IP Address:10.0.0.183, IP Address:10.0.0.184, IP Address:10.0.0.185, IP Address:10.0.0.186, IP Address:10.0.0.187, IP Address:10.0.0.188, IP Address:10.0.0.189, IP Address:10.0.0.190, IP Address:10.0.0.191, IP Address:10.0.0.192, IP Address:10.0.0.193, IP Address:10.0.0.194, IP Address:10.0.0.195, IP Address:10.0.0.196, IP Address:10.0.0.197, IP Address:10.0.0.198, IP Address:10.0.0.199, IP Address:10.0.0.200, IP Address:10.0.0.201, IP Address:10.0.0.202, IP Address:10.0.0.203, IP Address:10.0.0.204, IP Address:10.0.0.205, IP Address:10.0.0.206, IP Address:10.0.0.207, IP Address:10.0.0.208, IP Address:10.0.0.209, IP Address:10.0.0.210, IP Address:10.0.0.211, IP Address:10.0.0.212, IP Address:10.0.0.213, IP Address:10.0.0.214, IP Address:10.0.0.215, IP Address:10.0.0.216, IP Address:10.0.0.217, IP Address:10.0.0.218, IP Address:10.0.0.219, IP Address:10.0.0.220, IP Address:10.0.0.221, IP Address:10.0.0.222, IP Address:10.0.0.223, IP Address:10.0.0.224, IP Address:10.0.0.225, IP Address:10.0.0.226, IP Address:10.0.0.227, IP Address:10.0.0.228, IP Address:10.0.0.229, IP Address:10.0.0.230, IP Address:10.0.0.231, IP Address:10.0.0.232, IP Address:10.0.0.233, IP Address:10.0.0.234, IP Address:10.0.0.235, IP Address:10.0.0.236, IP Address:10.0.0.237, IP Address:10.0.0.238, IP Address:10.0.0.239, IP Address:10.0.0.240, IP Address:10.0.0.241, IP Address:10.0.0.242, IP Address:10.0.0.243, IP Address:10.0.0.244, IP Address:10.0.0.245, IP Address:10.0.0.246, IP Address:10.0.0.247, IP Address:10.0.0.248, IP Address:10.0.0.249, IP Address:10.0.0.250, IP Address:10.0.0.251, IP Address:10.0.0.252, IP Address:10.0.0.253, IP Address:10.0.0.254, IP Address:10.0.0.255, IP Address:10.0.1.0, IP Address:10.0.1.1, IP Address:10.0.1.2, IP Address:10.0.1.3, IP Address:10.0.1.4, IP Address:10.0.1.5, IP Address:10.0.1.6, IP Address:10.0.1.7, IP Address:10.0.1.8, IP Address:10.0.1.9, IP Address:10.0.1.10, IP Address:10.0.1.11, IP Address:10.0.1.12, IP Address:10.0.1.13, IP Address:10.0.1.14, IP Address:10.0.1.15, IP Address:10.0.1.16, IP Address:10.0.1.17, IP Address:10.0.1.18, IP Address:10.0.1.19, IP Address:10.0.1.20, IP Address:10.0.1.21, IP Address:10.0.1.22, IP Address:10.0.1.23, IP Address:10.0.1.24, IP Address:10.0.1.25, IP Address:10.0.1.26, IP Address:10.0.1.27, IP Address:10.0.1.28, IP Address:10.0.1.29, IP Address:10.0.1.30, IP Address:10.0.1.31, IP Address:10.0.1.32, IP Address:10.0.1.33, IP Address:10.0.1.34, IP Address:10.0.1.35, IP Address:10.0.1.36, IP Address:10.0.1.37, IP Address:10.0.1.38, IP Address:10.0.1.39, IP Address:10.0.1.40, IP Address:10.0.1.41, IP Address:10.0.1.42, IP Address:10.0.1.43, IP Address:10.0.1.44, IP Address:10.0.1.45, IP Address:10.0.1.46, IP Address:10.0.1.47, IP Address:10.0.1.48, IP Address:10.0.1.49, IP Address:10.0.1.50, IP Address:10.0.1.51, IP Address:10.0.1.52, IP Address:10.0.1.53, IP Address:10.0.1.54, IP Address:10.0.1.55, IP Address:10.0.1.56, IP Address:10.0.1.57, IP Address:10.0.1.58, IP Address:10.0.1.59, IP Address:10.0.1.60, IP Address:10.0.1.61, IP Address:10.0.1.62, IP Address:10.0.1.63, IP Address:10.0.1.64, IP Address:10.0.1.65, IP Address:10.0.1.66, IP Address:10.0.1.67, IP Address:10.0.1.68, IP Address:10.0.1.69, IP Address:10.0.1.70, IP Address:10.0.1.71, IP Address:10.0.1.72, IP Address:10.0.1.73, IP Address:10.0.1.74, IP Address:10.0.1.75, IP Address:10.0.1.76, IP Address:10.0.1.77, IP Address:10.0.1.78, IP Address:10.0.1.79, IP Address:10.0.1.80, IP Address:10.0.1.81, IP Address:10.0.1.82, IP Address:10.0.1.83, IP Address:10.0.1.84, IP Address:10.0.1.85, IP Address:10.0.1.86, IP Address:10.0.1.87, IP Address:10.0.1.88, IP Address:10.0.1.89, IP Address:10.0.1.90, IP Address:10.0.1.91, IP Address:10.0.1.92, IP Address:10.0.1.93, IP Address:10.0.1.94, IP Address:10.0.1.95, IP Address:10.0.1.96, IP Address:10.0.1.97, IP Address:10.0.1.98, IP Address:10.0.1.99, IP Address:10.0.1.100, IP Address:10.0.1.101, IP Address:10.0.1.102, IP Address:10.0.1.103, IP Address:10.0.1.104, IP Address:10.0.1.105, IP Address:10.0.1.106, IP Address:10.0.1.107, IP Address:10.0.1.108, IP Address:10.0.1.109, IP Address:10.0.1.110, IP Address:10.0.1.111, IP Address:10.0.1.112, IP Address:10.0.1.113, IP Address:10.0.1.114, IP Address:10.0.1.115, IP Address:10.0.1.116, IP Address:10.0.1.117, IP Address:10.0.1.118, IP Address:10.0.1.119, IP Address:10.0.1.120, IP Address:10.0.1.121, IP Address:10.0.1.122, IP Address:10.0.1.123, IP Address:10.0.1.124, IP Address:10.0.1.125, IP Address:10.0.1.126, IP Address:10.0.1.127, IP Address:10.0.1.128, IP Address:10.0.1.129, IP Address:10.0.1.130, IP Address:10.0.1.131, IP Address:10.0.1.132, IP Address:10.0.1.133, IP Address:10.0.1.134, IP Address:10.0.1.135, IP Address:10.0.1.136, IP Address:10.0.1.137, IP Address:10.0.1.138, IP Address:10.0.1.139, IP Address:10.0.1.140, IP Address:10.0.1.141, IP Address:10.0.1.142, IP Address:10.0.1.143, IP Address:10.0.1.144, IP Address:10.0.1.145, IP Address:10.0.1.146, IP Address:10.0.1.147, IP Address:10.0.1.148, IP Address:10.0.1.149, IP Address:10.0.1.150, IP Address:10.0.1.151, IP Address:10.0.1.152, IP Address:10.0.1.153, IP Address:10.0.1.154, IP Address:10.0.1.155, IP Address:10.0.1.156, IP Address:10.0.1.157, IP Address:10.0.1.158, IP Address:10.0.1.159, IP Address:10.0.1.160, IP Address:10.0.1.161, IP Address:10.0.1.162, DirName:/CN=t0, DirName:/CN=t1, DirName:/CN=t2, DirName:/CN=t3, DirName:/CN=t4, DirName:/CN=t5, DirName:/CN=t6, DirName:/CN=t7, DirName:/CN=t8, DirName:/CN=t9, DirName:/CN=t10, DirName:/CN=t11, DirName:/CN=t12, DirName:/CN=t13, DirName:/CN=t14, DirName:/CN=t15, DirName:/CN=t16, DirName:/CN=t17, DirName:/CN=t18, DirName:/CN=t19, DirName:/CN=t20, DirName:/CN=t21, DirName:/CN=t22, DirName:/CN=t23, DirName:/CN=t24, DirName:/CN=t25, DirName:/CN=t26, DirName:/CN=t27, DirName:/CN=t28, DirName:/CN=t29, DirName:/CN=t30, DirName:/CN=t31, DirName:/CN=t32, DirName:/CN=t33, DirName:/CN=t34, DirName:/CN=t35, DirName:/CN=t36, DirName:/CN=t37, DirName:/CN=t38, DirName:/CN=t39, DirName:/CN=t40, DirName:/CN=t41, DirName:/CN=t42, DirName:/CN=t43, DirName:/CN=t44, DirName:/CN=t45, DirName:/CN=t46, DirName:/CN=t47, DirName:/CN=t48, DirName:/CN=t49, DirName:/CN=t50, DirName:/CN=t51, DirName:/CN=t52, DirName:/CN=t53, DirName:/CN=t54, DirName:/CN=t55, DirName:/CN=t56, DirName:/CN=t57, DirName:/CN=t58, DirName:/CN=t59, DirName:/CN=t60, DirName:/CN=t61, DirName:/CN=t62, DirName:/CN=t63, DirName:/CN=t64, DirName:/CN=t65, DirName:/CN=t66, DirName:/CN=t67, DirName:/CN=t68, DirName:/CN=t69, DirName:/CN=t70, DirName:/CN=t71, DirName:/CN=t72, DirName:/CN=t73, DirName:/CN=t74, DirName:/CN=t75, DirName:/CN=t76, DirName:/CN=t77, DirName:/CN=t78, DirName:/CN=t79, DirName:/CN=t80, DirName:/CN=t81, DirName:/CN=t82, DirName:/CN=t83, DirName:/CN=t84, DirName:/CN=t85, DirName:/CN=t86, DirName:/CN=t87, DirName:/CN=t88, DirName:/CN=t89, DirName:/CN=t90, DirName:/CN=t91, DirName:/CN=t92, DirName:/CN=t93, DirName:/CN=t94, DirName:/CN=t95, DirName:/CN=t96, DirName:/CN=t97, DirName:/CN=t98, DirName:/CN=t99, DirName:/CN=t100, DirName:/CN=t101, DirName:/CN=t102, DirName:/CN=t103, DirName:/CN=t104, DirName:/CN=t105, DirName:/CN=t106, DirName:/CN=t107, DirName:/CN=t108, DirName:/CN=t109, DirName:/CN=t110, DirName:/CN=t111, DirName:/CN=t112, DirName:/CN=t113, DirName:/CN=t114, DirName:/CN=t115, DirName:/CN=t116, DirName:/CN=t117, DirName:/CN=t118, DirName:/CN=t119, DirName:/CN=t120, DirName:/CN=t121, DirName:/CN=t122, DirName:/CN=t123, DirName:/CN=t124, DirName:/CN=t125, DirName:/CN=t126, DirName:/CN=t127, DirName:/CN=t128, DirName:/CN=t129, DirName:/CN=t130, DirName:/CN=t131, DirName:/CN=t132, DirName:/CN=t133, DirName:/CN=t134, DirName:/CN=t135, DirName:/CN=t136, DirName:/CN=t137, DirName:/CN=t138, DirName:/CN=t139, DirName:/CN=t140, DirName:/CN=t141, DirName:/CN=t142, DirName:/CN=t143, DirName:/CN=t144, DirName:/CN=t145, DirName:/CN=t146, DirName:/CN=t147, DirName:/CN=t148, DirName:/CN=t149, DirName:/CN=t150, DirName:/CN=t151, DirName:/CN=t152, DirName:/CN=t153, DirName:/CN=t154, DirName:/CN=t155, DirName:/CN=t156, DirName:/CN=t157, DirName:/CN=t158, DirName:/CN=t159, DirName:/CN=t160, DirName:/CN=t161, DirName:/CN=t162, DirName:/CN=t163, DirName:/CN=t164, DirName:/CN=t165, DirName:/CN=t166, DirName:/CN=t167, DirName:/CN=t168, DirName:/CN=t169, DirName:/CN=t170, DirName:/CN=t171, DirName:/CN=t172, DirName:/CN=t173, DirName:/CN=t174, DirName:/CN=t175, DirName:/CN=t176, DirName:/CN=t177, DirName:/CN=t178, DirName:/CN=t179, DirName:/CN=t180, DirName:/CN=t181, DirName:/CN=t182, DirName:/CN=t183, DirName:/CN=t184, DirName:/CN=t185, DirName:/CN=t186, DirName:/CN=t187, DirName:/CN=t188, DirName:/CN=t189, DirName:/CN=t190, DirName:/CN=t191, DirName:/CN=t192, DirName:/CN=t193, DirName:/CN=t194, DirName:/CN=t195, DirName:/CN=t196, DirName:/CN=t197, DirName:/CN=t198, DirName:/CN=t199, DirName:/CN=t200, DirName:/CN=t201, DirName:/CN=t202, DirName:/CN=t203, DirName:/CN=t204, DirName:/CN=t205, DirName:/CN=t206, DirName:/CN=t207, DirName:/CN=t208, DirName:/CN=t209, DirName:/CN=t210, DirName:/CN=t211, DirName:/CN=t212, DirName:/CN=t213, DirName:/CN=t214, DirName:/CN=t215, DirName:/CN=t216, DirName:/CN=t217, DirName:/CN=t218, DirName:/CN=t219, DirName:/CN=t220, DirName:/CN=t221, DirName:/CN=t222, DirName:/CN=t223, DirName:/CN=t224, DirName:/CN=t225, DirName:/CN=t226, DirName:/CN=t227, DirName:/CN=t228, DirName:/CN=t229, DirName:/CN=t230, DirName:/CN=t231, DirName:/CN=t232, DirName:/CN=t233, DirName:/CN=t234, DirName:/CN=t235, DirName:/CN=t236, DirName:/CN=t237, DirName:/CN=t238, DirName:/CN=t239, DirName:/CN=t240, DirName:/CN=t241, DirName:/CN=t242, DirName:/CN=t243, DirName:/CN=t244, DirName:/CN=t245, DirName:/CN=t246, DirName:/CN=t247, DirName:/CN=t248, DirName:/CN=t249, DirName:/CN=t250, DirName:/CN=t251, DirName:/CN=t252, DirName:/CN=t253, DirName:/CN=t254, DirName:/CN=t255, DirName:/CN=t256, DirName:/CN=t257, DirName:/CN=t258, DirName:/CN=t259, DirName:/CN=t260, DirName:/CN=t261, DirName:/CN=t262, DirName:/CN=t263, DirName:/CN=t264, DirName:/CN=t265, DirName:/CN=t266, DirName:/CN=t267, DirName:/CN=t268, DirName:/CN=t269, DirName:/CN=t270, DirName:/CN=t271, DirName:/CN=t272, DirName:/CN=t273, DirName:/CN=t274, DirName:/CN=t275, DirName:/CN=t276, DirName:/CN=t277, DirName:/CN=t278, DirName:/CN=t279, DirName:/CN=t280, DirName:/CN=t281, DirName:/CN=t282, DirName:/CN=t283, DirName:/CN=t284, DirName:/CN=t285, DirName:/CN=t286, DirName:/CN=t287, DirName:/CN=t288, DirName:/CN=t289, DirName:/CN=t290, DirName:/CN=t291, DirName:/CN=t292, DirName:/CN=t293, DirName:/CN=t294, DirName:/CN=t295, DirName:/CN=t296, DirName:/CN=t297, DirName:/CN=t298, DirName:/CN=t299, DirName:/CN=t300, DirName:/CN=t301, DirName:/CN=t302, DirName:/CN=t303, DirName:/CN=t304, DirName:/CN=t305, DirName:/CN=t306, DirName:/CN=t307, DirName:/CN=t308, DirName:/CN=t309, DirName:/CN=t310, DirName:/CN=t311, DirName:/CN=t312, DirName:/CN=t313, DirName:/CN=t314, DirName:/CN=t315, DirName:/CN=t316, DirName:/CN=t317, DirName:/CN=t318, DirName:/CN=t319, DirName:/CN=t320, DirName:/CN=t321, DirName:/CN=t322, DirName:/CN=t323, DirName:/CN=t324, DirName:/CN=t325, DirName:/CN=t326, DirName:/CN=t327, DirName:/CN=t328, DirName:/CN=t329, DirName:/CN=t330, DirName:/CN=t331, DirName:/CN=t332, DirName:/CN=t333, DirName:/CN=t334, DirName:/CN=t335, DirName:/CN=t336, DirName:/CN=t337, DirName:/CN=t338, DirName:/CN=t339, DirName:/CN=t340, DirName:/CN=t341, DirName:/CN=t342, DirName:/CN=t343, DirName:/CN=t344, DirName:/CN=t345, DirName:/CN=t346, DirName:/CN=t347, DirName:/CN=t348, DirName:/CN=t349, DirName:/CN=t350, DirName:/CN=t351, DirName:/CN=t352, DirName:/CN=t353, DirName:/CN=t354, DirName:/CN=t355, DirName:/CN=t356, DirName:/CN=t357, DirName:/CN=t358, DirName:/CN=t359, DirName:/CN=t360, DirName:/CN=t361, DirName:/CN=t362, DirName:/CN=t363, DirName:/CN=t364, DirName:/CN=t365, DirName:/CN=t366, DirName:/CN=t367, DirName:/CN=t368, DirName:/CN=t369, DirName:/CN=t370, DirName:/CN=t371, DirName:/CN=t372, DirName:/CN=t373, DirName:/CN=t374, DirName:/CN=t375, DirName:/CN=t376, DirName:/CN=t377, DirName:/CN=t378, DirName:/CN=t379, DirName:/CN=t380, DirName:/CN=t381, DirName:/CN=t382, DirName:/CN=t383, DirName:/CN=t384, DirName:/CN=t385, DirName:/CN=t386, DirName:/CN=t387, DirName:/CN=t388, DirName:/CN=t389, DirName:/CN=t390, DirName:/CN=t391, DirName:/CN=t392, DirName:/CN=t393, DirName:/CN=t394, DirName:/CN=t395, DirName:/CN=t396, DirName:/CN=t397, DirName:/CN=t398, DirName:/CN=t399, DirName:/CN=t400, DirName:/CN=t401, DirName:/CN=t402, DirName:/CN=t403, DirName:/CN=t404, DirName:/CN=t405, DirName:/CN=t406, DirName:/CN=t407, DirName:/CN=t408, DirName:/CN=t409, DirName:/CN=t410, DirName:/CN=t411, DirName:/CN=t412, DirName:/CN=t413, DirName:/CN=t414, DirName:/CN=t415, DirName:/CN=t416, DirName:/CN=t417 -+ DNS:t0.test, DNS:t1.test, DNS:t2.test, DNS:t3.test, DNS:t4.test, DNS:t5.test, DNS:t6.test, DNS:t7.test, DNS:t8.test, DNS:t9.test, DNS:t10.test, DNS:t11.test, DNS:t12.test, DNS:t13.test, DNS:t14.test, DNS:t15.test, DNS:t16.test, DNS:t17.test, DNS:t18.test, DNS:t19.test, DNS:t20.test, DNS:t21.test, DNS:t22.test, DNS:t23.test, DNS:t24.test, DNS:t25.test, DNS:t26.test, DNS:t27.test, DNS:t28.test, DNS:t29.test, DNS:t30.test, DNS:t31.test, DNS:t32.test, DNS:t33.test, DNS:t34.test, DNS:t35.test, DNS:t36.test, DNS:t37.test, DNS:t38.test, DNS:t39.test, DNS:t40.test, DNS:t41.test, DNS:t42.test, DNS:t43.test, DNS:t44.test, DNS:t45.test, DNS:t46.test, DNS:t47.test, DNS:t48.test, DNS:t49.test, DNS:t50.test, DNS:t51.test, DNS:t52.test, DNS:t53.test, DNS:t54.test, DNS:t55.test, DNS:t56.test, DNS:t57.test, DNS:t58.test, DNS:t59.test, DNS:t60.test, DNS:t61.test, DNS:t62.test, DNS:t63.test, DNS:t64.test, DNS:t65.test, DNS:t66.test, DNS:t67.test, DNS:t68.test, DNS:t69.test, DNS:t70.test, DNS:t71.test, DNS:t72.test, DNS:t73.test, DNS:t74.test, DNS:t75.test, DNS:t76.test, DNS:t77.test, DNS:t78.test, DNS:t79.test, DNS:t80.test, DNS:t81.test, DNS:t82.test, DNS:t83.test, DNS:t84.test, DNS:t85.test, DNS:t86.test, DNS:t87.test, DNS:t88.test, DNS:t89.test, DNS:t90.test, DNS:t91.test, DNS:t92.test, DNS:t93.test, DNS:t94.test, DNS:t95.test, DNS:t96.test, DNS:t97.test, DNS:t98.test, DNS:t99.test, DNS:t100.test, DNS:t101.test, DNS:t102.test, DNS:t103.test, DNS:t104.test, DNS:t105.test, DNS:t106.test, DNS:t107.test, DNS:t108.test, DNS:t109.test, DNS:t110.test, DNS:t111.test, DNS:t112.test, DNS:t113.test, DNS:t114.test, DNS:t115.test, DNS:t116.test, DNS:t117.test, DNS:t118.test, DNS:t119.test, DNS:t120.test, DNS:t121.test, DNS:t122.test, DNS:t123.test, DNS:t124.test, DNS:t125.test, DNS:t126.test, DNS:t127.test, DNS:t128.test, DNS:t129.test, DNS:t130.test, DNS:t131.test, DNS:t132.test, DNS:t133.test, DNS:t134.test, DNS:t135.test, DNS:t136.test, DNS:t137.test, DNS:t138.test, DNS:t139.test, DNS:t140.test, DNS:t141.test, DNS:t142.test, DNS:t143.test, DNS:t144.test, DNS:t145.test, DNS:t146.test, DNS:t147.test, DNS:t148.test, DNS:t149.test, DNS:t150.test, DNS:t151.test, DNS:t152.test, DNS:t153.test, DNS:t154.test, DNS:t155.test, DNS:t156.test, DNS:t157.test, DNS:t158.test, DNS:t159.test, DNS:t160.test, DNS:t161.test, DNS:t162.test, DNS:t163.test, DNS:t164.test, DNS:t165.test, DNS:t166.test, DNS:t167.test, DNS:t168.test, DNS:t169.test, DNS:t170.test, DNS:t171.test, DNS:t172.test, DNS:t173.test, DNS:t174.test, DNS:t175.test, DNS:t176.test, DNS:t177.test, DNS:t178.test, DNS:t179.test, DNS:t180.test, DNS:t181.test, DNS:t182.test, DNS:t183.test, DNS:t184.test, DNS:t185.test, DNS:t186.test, DNS:t187.test, DNS:t188.test, DNS:t189.test, DNS:t190.test, DNS:t191.test, DNS:t192.test, DNS:t193.test, DNS:t194.test, DNS:t195.test, DNS:t196.test, DNS:t197.test, DNS:t198.test, DNS:t199.test, DNS:t200.test, DNS:t201.test, DNS:t202.test, DNS:t203.test, DNS:t204.test, DNS:t205.test, DNS:t206.test, DNS:t207.test, DNS:t208.test, DNS:t209.test, DNS:t210.test, DNS:t211.test, DNS:t212.test, DNS:t213.test, DNS:t214.test, DNS:t215.test, DNS:t216.test, DNS:t217.test, DNS:t218.test, DNS:t219.test, DNS:t220.test, DNS:t221.test, DNS:t222.test, DNS:t223.test, DNS:t224.test, DNS:t225.test, DNS:t226.test, DNS:t227.test, DNS:t228.test, DNS:t229.test, DNS:t230.test, DNS:t231.test, DNS:t232.test, DNS:t233.test, DNS:t234.test, DNS:t235.test, DNS:t236.test, DNS:t237.test, DNS:t238.test, DNS:t239.test, DNS:t240.test, DNS:t241.test, DNS:t242.test, DNS:t243.test, DNS:t244.test, DNS:t245.test, DNS:t246.test, DNS:t247.test, DNS:t248.test, DNS:t249.test, DNS:t250.test, DNS:t251.test, DNS:t252.test, DNS:t253.test, DNS:t254.test, DNS:t255.test, DNS:t256.test, DNS:t257.test, DNS:t258.test, DNS:t259.test, DNS:t260.test, DNS:t261.test, DNS:t262.test, DNS:t263.test, DNS:t264.test, DNS:t265.test, DNS:t266.test, DNS:t267.test, DNS:t268.test, DNS:t269.test, DNS:t270.test, DNS:t271.test, DNS:t272.test, DNS:t273.test, DNS:t274.test, DNS:t275.test, DNS:t276.test, DNS:t277.test, DNS:t278.test, DNS:t279.test, DNS:t280.test, DNS:t281.test, DNS:t282.test, DNS:t283.test, DNS:t284.test, DNS:t285.test, DNS:t286.test, DNS:t287.test, DNS:t288.test, DNS:t289.test, DNS:t290.test, DNS:t291.test, DNS:t292.test, DNS:t293.test, DNS:t294.test, DNS:t295.test, DNS:t296.test, DNS:t297.test, DNS:t298.test, DNS:t299.test, DNS:t300.test, DNS:t301.test, DNS:t302.test, DNS:t303.test, DNS:t304.test, DNS:t305.test, DNS:t306.test, DNS:t307.test, DNS:t308.test, DNS:t309.test, DNS:t310.test, DNS:t311.test, DNS:t312.test, DNS:t313.test, DNS:t314.test, DNS:t315.test, DNS:t316.test, DNS:t317.test, DNS:t318.test, DNS:t319.test, DNS:t320.test, DNS:t321.test, DNS:t322.test, DNS:t323.test, DNS:t324.test, DNS:t325.test, DNS:t326.test, DNS:t327.test, DNS:t328.test, DNS:t329.test, DNS:t330.test, DNS:t331.test, DNS:t332.test, DNS:t333.test, DNS:t334.test, DNS:t335.test, DNS:t336.test, DNS:t337.test, DNS:t338.test, DNS:t339.test, DNS:t340.test, DNS:t341.test, IP Address:10.0.0.0, IP Address:10.0.0.1, IP Address:10.0.0.2, IP Address:10.0.0.3, IP Address:10.0.0.4, IP Address:10.0.0.5, IP Address:10.0.0.6, IP Address:10.0.0.7, IP Address:10.0.0.8, IP Address:10.0.0.9, IP Address:10.0.0.10, IP Address:10.0.0.11, IP Address:10.0.0.12, IP Address:10.0.0.13, IP Address:10.0.0.14, IP Address:10.0.0.15, IP Address:10.0.0.16, IP Address:10.0.0.17, IP Address:10.0.0.18, IP Address:10.0.0.19, IP Address:10.0.0.20, IP Address:10.0.0.21, IP Address:10.0.0.22, IP Address:10.0.0.23, IP Address:10.0.0.24, IP Address:10.0.0.25, IP Address:10.0.0.26, IP Address:10.0.0.27, IP Address:10.0.0.28, IP Address:10.0.0.29, IP Address:10.0.0.30, IP Address:10.0.0.31, IP Address:10.0.0.32, IP Address:10.0.0.33, IP Address:10.0.0.34, IP Address:10.0.0.35, IP Address:10.0.0.36, IP Address:10.0.0.37, IP Address:10.0.0.38, IP Address:10.0.0.39, IP Address:10.0.0.40, IP Address:10.0.0.41, IP Address:10.0.0.42, IP Address:10.0.0.43, IP Address:10.0.0.44, IP Address:10.0.0.45, IP Address:10.0.0.46, IP Address:10.0.0.47, IP Address:10.0.0.48, IP Address:10.0.0.49, IP Address:10.0.0.50, IP Address:10.0.0.51, IP Address:10.0.0.52, IP Address:10.0.0.53, IP Address:10.0.0.54, IP Address:10.0.0.55, IP Address:10.0.0.56, IP Address:10.0.0.57, IP Address:10.0.0.58, IP Address:10.0.0.59, IP Address:10.0.0.60, IP Address:10.0.0.61, IP Address:10.0.0.62, IP Address:10.0.0.63, IP Address:10.0.0.64, IP Address:10.0.0.65, IP Address:10.0.0.66, IP Address:10.0.0.67, IP Address:10.0.0.68, IP Address:10.0.0.69, IP Address:10.0.0.70, IP Address:10.0.0.71, IP Address:10.0.0.72, IP Address:10.0.0.73, IP Address:10.0.0.74, IP Address:10.0.0.75, IP Address:10.0.0.76, IP Address:10.0.0.77, IP Address:10.0.0.78, IP Address:10.0.0.79, IP Address:10.0.0.80, IP Address:10.0.0.81, IP Address:10.0.0.82, IP Address:10.0.0.83, IP Address:10.0.0.84, IP Address:10.0.0.85, IP Address:10.0.0.86, IP Address:10.0.0.87, IP Address:10.0.0.88, IP Address:10.0.0.89, IP Address:10.0.0.90, IP Address:10.0.0.91, IP Address:10.0.0.92, IP Address:10.0.0.93, IP Address:10.0.0.94, IP Address:10.0.0.95, IP Address:10.0.0.96, IP Address:10.0.0.97, IP Address:10.0.0.98, IP Address:10.0.0.99, IP Address:10.0.0.100, IP Address:10.0.0.101, IP Address:10.0.0.102, IP Address:10.0.0.103, IP Address:10.0.0.104, IP Address:10.0.0.105, IP Address:10.0.0.106, IP Address:10.0.0.107, IP Address:10.0.0.108, IP Address:10.0.0.109, IP Address:10.0.0.110, IP Address:10.0.0.111, IP Address:10.0.0.112, IP Address:10.0.0.113, IP Address:10.0.0.114, IP Address:10.0.0.115, IP Address:10.0.0.116, IP Address:10.0.0.117, IP Address:10.0.0.118, IP Address:10.0.0.119, IP Address:10.0.0.120, IP Address:10.0.0.121, IP Address:10.0.0.122, IP Address:10.0.0.123, IP Address:10.0.0.124, IP Address:10.0.0.125, IP Address:10.0.0.126, IP Address:10.0.0.127, IP Address:10.0.0.128, IP Address:10.0.0.129, IP Address:10.0.0.130, IP Address:10.0.0.131, IP Address:10.0.0.132, IP Address:10.0.0.133, IP Address:10.0.0.134, IP Address:10.0.0.135, IP Address:10.0.0.136, IP Address:10.0.0.137, IP Address:10.0.0.138, IP Address:10.0.0.139, IP Address:10.0.0.140, IP Address:10.0.0.141, IP Address:10.0.0.142, IP Address:10.0.0.143, IP Address:10.0.0.144, IP Address:10.0.0.145, IP Address:10.0.0.146, IP Address:10.0.0.147, IP Address:10.0.0.148, IP Address:10.0.0.149, IP Address:10.0.0.150, IP Address:10.0.0.151, IP Address:10.0.0.152, IP Address:10.0.0.153, IP Address:10.0.0.154, IP Address:10.0.0.155, IP Address:10.0.0.156, IP Address:10.0.0.157, IP Address:10.0.0.158, IP Address:10.0.0.159, IP Address:10.0.0.160, IP Address:10.0.0.161, IP Address:10.0.0.162, IP Address:10.0.0.163, IP Address:10.0.0.164, IP Address:10.0.0.165, IP Address:10.0.0.166, IP Address:10.0.0.167, IP Address:10.0.0.168, IP Address:10.0.0.169, IP Address:10.0.0.170, IP Address:10.0.0.171, IP Address:10.0.0.172, IP Address:10.0.0.173, IP Address:10.0.0.174, IP Address:10.0.0.175, IP Address:10.0.0.176, IP Address:10.0.0.177, IP Address:10.0.0.178, IP Address:10.0.0.179, IP Address:10.0.0.180, IP Address:10.0.0.181, IP Address:10.0.0.182, IP Address:10.0.0.183, IP Address:10.0.0.184, IP Address:10.0.0.185, IP Address:10.0.0.186, IP Address:10.0.0.187, IP Address:10.0.0.188, IP Address:10.0.0.189, IP Address:10.0.0.190, IP Address:10.0.0.191, IP Address:10.0.0.192, IP Address:10.0.0.193, IP Address:10.0.0.194, IP Address:10.0.0.195, IP Address:10.0.0.196, IP Address:10.0.0.197, IP Address:10.0.0.198, IP Address:10.0.0.199, IP Address:10.0.0.200, IP Address:10.0.0.201, IP Address:10.0.0.202, IP Address:10.0.0.203, IP Address:10.0.0.204, IP Address:10.0.0.205, IP Address:10.0.0.206, IP Address:10.0.0.207, IP Address:10.0.0.208, IP Address:10.0.0.209, IP Address:10.0.0.210, IP Address:10.0.0.211, IP Address:10.0.0.212, IP Address:10.0.0.213, IP Address:10.0.0.214, IP Address:10.0.0.215, IP Address:10.0.0.216, IP Address:10.0.0.217, IP Address:10.0.0.218, IP Address:10.0.0.219, IP Address:10.0.0.220, IP Address:10.0.0.221, IP Address:10.0.0.222, IP Address:10.0.0.223, IP Address:10.0.0.224, IP Address:10.0.0.225, IP Address:10.0.0.226, IP Address:10.0.0.227, IP Address:10.0.0.228, IP Address:10.0.0.229, IP Address:10.0.0.230, IP Address:10.0.0.231, IP Address:10.0.0.232, IP Address:10.0.0.233, IP Address:10.0.0.234, IP Address:10.0.0.235, IP Address:10.0.0.236, IP Address:10.0.0.237, IP Address:10.0.0.238, IP Address:10.0.0.239, IP Address:10.0.0.240, IP Address:10.0.0.241, IP Address:10.0.0.242, IP Address:10.0.0.243, IP Address:10.0.0.244, IP Address:10.0.0.245, IP Address:10.0.0.246, IP Address:10.0.0.247, IP Address:10.0.0.248, IP Address:10.0.0.249, IP Address:10.0.0.250, IP Address:10.0.0.251, IP Address:10.0.0.252, IP Address:10.0.0.253, IP Address:10.0.0.254, IP Address:10.0.0.255, IP Address:10.0.1.0, IP Address:10.0.1.1, IP Address:10.0.1.2, IP Address:10.0.1.3, IP Address:10.0.1.4, IP Address:10.0.1.5, IP Address:10.0.1.6, IP Address:10.0.1.7, IP Address:10.0.1.8, IP Address:10.0.1.9, IP Address:10.0.1.10, IP Address:10.0.1.11, IP Address:10.0.1.12, IP Address:10.0.1.13, IP Address:10.0.1.14, IP Address:10.0.1.15, IP Address:10.0.1.16, IP Address:10.0.1.17, IP Address:10.0.1.18, IP Address:10.0.1.19, IP Address:10.0.1.20, IP Address:10.0.1.21, IP Address:10.0.1.22, IP Address:10.0.1.23, IP Address:10.0.1.24, IP Address:10.0.1.25, IP Address:10.0.1.26, IP Address:10.0.1.27, IP Address:10.0.1.28, IP Address:10.0.1.29, IP Address:10.0.1.30, IP Address:10.0.1.31, IP Address:10.0.1.32, IP Address:10.0.1.33, IP Address:10.0.1.34, IP Address:10.0.1.35, IP Address:10.0.1.36, IP Address:10.0.1.37, IP Address:10.0.1.38, IP Address:10.0.1.39, IP Address:10.0.1.40, IP Address:10.0.1.41, IP Address:10.0.1.42, IP Address:10.0.1.43, IP Address:10.0.1.44, IP Address:10.0.1.45, IP Address:10.0.1.46, IP Address:10.0.1.47, IP Address:10.0.1.48, IP Address:10.0.1.49, IP Address:10.0.1.50, IP Address:10.0.1.51, IP Address:10.0.1.52, IP Address:10.0.1.53, IP Address:10.0.1.54, IP Address:10.0.1.55, IP Address:10.0.1.56, IP Address:10.0.1.57, IP Address:10.0.1.58, IP Address:10.0.1.59, IP Address:10.0.1.60, IP Address:10.0.1.61, IP Address:10.0.1.62, IP Address:10.0.1.63, IP Address:10.0.1.64, IP Address:10.0.1.65, IP Address:10.0.1.66, IP Address:10.0.1.67, IP Address:10.0.1.68, IP Address:10.0.1.69, IP Address:10.0.1.70, IP Address:10.0.1.71, IP Address:10.0.1.72, IP Address:10.0.1.73, IP Address:10.0.1.74, IP Address:10.0.1.75, IP Address:10.0.1.76, IP Address:10.0.1.77, IP Address:10.0.1.78, IP Address:10.0.1.79, IP Address:10.0.1.80, IP Address:10.0.1.81, IP Address:10.0.1.82, IP Address:10.0.1.83, IP Address:10.0.1.84, DirName:/CN=t0, DirName:/CN=t1, DirName:/CN=t2, DirName:/CN=t3, DirName:/CN=t4, DirName:/CN=t5, DirName:/CN=t6, DirName:/CN=t7, DirName:/CN=t8, DirName:/CN=t9, DirName:/CN=t10, DirName:/CN=t11, DirName:/CN=t12, DirName:/CN=t13, DirName:/CN=t14, DirName:/CN=t15, DirName:/CN=t16, DirName:/CN=t17, DirName:/CN=t18, DirName:/CN=t19, DirName:/CN=t20, DirName:/CN=t21, DirName:/CN=t22, DirName:/CN=t23, DirName:/CN=t24, DirName:/CN=t25, DirName:/CN=t26, DirName:/CN=t27, DirName:/CN=t28, DirName:/CN=t29, DirName:/CN=t30, DirName:/CN=t31, DirName:/CN=t32, DirName:/CN=t33, DirName:/CN=t34, DirName:/CN=t35, DirName:/CN=t36, DirName:/CN=t37, DirName:/CN=t38, DirName:/CN=t39, DirName:/CN=t40, DirName:/CN=t41, DirName:/CN=t42, DirName:/CN=t43, DirName:/CN=t44, DirName:/CN=t45, DirName:/CN=t46, DirName:/CN=t47, DirName:/CN=t48, DirName:/CN=t49, DirName:/CN=t50, DirName:/CN=t51, DirName:/CN=t52, DirName:/CN=t53, DirName:/CN=t54, DirName:/CN=t55, DirName:/CN=t56, DirName:/CN=t57, DirName:/CN=t58, DirName:/CN=t59, DirName:/CN=t60, DirName:/CN=t61, DirName:/CN=t62, DirName:/CN=t63, DirName:/CN=t64, DirName:/CN=t65, DirName:/CN=t66, DirName:/CN=t67, DirName:/CN=t68, DirName:/CN=t69, DirName:/CN=t70, DirName:/CN=t71, DirName:/CN=t72, DirName:/CN=t73, DirName:/CN=t74, DirName:/CN=t75, DirName:/CN=t76, DirName:/CN=t77, DirName:/CN=t78, DirName:/CN=t79, DirName:/CN=t80, DirName:/CN=t81, DirName:/CN=t82, DirName:/CN=t83, DirName:/CN=t84, DirName:/CN=t85, DirName:/CN=t86, DirName:/CN=t87, DirName:/CN=t88, DirName:/CN=t89, DirName:/CN=t90, DirName:/CN=t91, DirName:/CN=t92, DirName:/CN=t93, DirName:/CN=t94, DirName:/CN=t95, DirName:/CN=t96, DirName:/CN=t97, DirName:/CN=t98, DirName:/CN=t99, DirName:/CN=t100, DirName:/CN=t101, DirName:/CN=t102, DirName:/CN=t103, DirName:/CN=t104, DirName:/CN=t105, DirName:/CN=t106, DirName:/CN=t107, DirName:/CN=t108, DirName:/CN=t109, DirName:/CN=t110, DirName:/CN=t111, DirName:/CN=t112, DirName:/CN=t113, DirName:/CN=t114, DirName:/CN=t115, DirName:/CN=t116, DirName:/CN=t117, DirName:/CN=t118, DirName:/CN=t119, DirName:/CN=t120, DirName:/CN=t121, DirName:/CN=t122, DirName:/CN=t123, DirName:/CN=t124, DirName:/CN=t125, DirName:/CN=t126, DirName:/CN=t127, DirName:/CN=t128, DirName:/CN=t129, DirName:/CN=t130, DirName:/CN=t131, DirName:/CN=t132, DirName:/CN=t133, DirName:/CN=t134, DirName:/CN=t135, DirName:/CN=t136, DirName:/CN=t137, DirName:/CN=t138, DirName:/CN=t139, DirName:/CN=t140, DirName:/CN=t141, DirName:/CN=t142, DirName:/CN=t143, DirName:/CN=t144, DirName:/CN=t145, DirName:/CN=t146, DirName:/CN=t147, DirName:/CN=t148, DirName:/CN=t149, DirName:/CN=t150, DirName:/CN=t151, DirName:/CN=t152, DirName:/CN=t153, DirName:/CN=t154, DirName:/CN=t155, DirName:/CN=t156, DirName:/CN=t157, DirName:/CN=t158, DirName:/CN=t159, DirName:/CN=t160, DirName:/CN=t161, DirName:/CN=t162, DirName:/CN=t163, DirName:/CN=t164, DirName:/CN=t165, DirName:/CN=t166, DirName:/CN=t167, DirName:/CN=t168, DirName:/CN=t169, DirName:/CN=t170, DirName:/CN=t171, DirName:/CN=t172, DirName:/CN=t173, DirName:/CN=t174, DirName:/CN=t175, DirName:/CN=t176, DirName:/CN=t177, DirName:/CN=t178, DirName:/CN=t179, DirName:/CN=t180, DirName:/CN=t181, DirName:/CN=t182, DirName:/CN=t183, DirName:/CN=t184, DirName:/CN=t185, DirName:/CN=t186, DirName:/CN=t187, DirName:/CN=t188, DirName:/CN=t189, DirName:/CN=t190, DirName:/CN=t191, DirName:/CN=t192, DirName:/CN=t193, DirName:/CN=t194, DirName:/CN=t195, DirName:/CN=t196, DirName:/CN=t197, DirName:/CN=t198, DirName:/CN=t199, DirName:/CN=t200, DirName:/CN=t201, DirName:/CN=t202, DirName:/CN=t203, DirName:/CN=t204, DirName:/CN=t205, DirName:/CN=t206, DirName:/CN=t207, DirName:/CN=t208, DirName:/CN=t209, DirName:/CN=t210, DirName:/CN=t211, DirName:/CN=t212, DirName:/CN=t213, DirName:/CN=t214, DirName:/CN=t215, DirName:/CN=t216, DirName:/CN=t217, DirName:/CN=t218, DirName:/CN=t219, DirName:/CN=t220, DirName:/CN=t221, DirName:/CN=t222, DirName:/CN=t223, DirName:/CN=t224, DirName:/CN=t225, DirName:/CN=t226, DirName:/CN=t227, DirName:/CN=t228, DirName:/CN=t229, DirName:/CN=t230, DirName:/CN=t231, DirName:/CN=t232, DirName:/CN=t233, DirName:/CN=t234, DirName:/CN=t235, DirName:/CN=t236, DirName:/CN=t237, DirName:/CN=t238, DirName:/CN=t239, DirName:/CN=t240, DirName:/CN=t241, DirName:/CN=t242, DirName:/CN=t243, DirName:/CN=t244, DirName:/CN=t245, DirName:/CN=t246, DirName:/CN=t247, DirName:/CN=t248, DirName:/CN=t249, DirName:/CN=t250, DirName:/CN=t251, DirName:/CN=t252, DirName:/CN=t253, DirName:/CN=t254, DirName:/CN=t255, DirName:/CN=t256, DirName:/CN=t257, DirName:/CN=t258, DirName:/CN=t259, DirName:/CN=t260, DirName:/CN=t261, DirName:/CN=t262, DirName:/CN=t263, DirName:/CN=t264, DirName:/CN=t265, DirName:/CN=t266, DirName:/CN=t267, DirName:/CN=t268, DirName:/CN=t269, DirName:/CN=t270, DirName:/CN=t271, DirName:/CN=t272, DirName:/CN=t273, DirName:/CN=t274, DirName:/CN=t275, DirName:/CN=t276, DirName:/CN=t277, DirName:/CN=t278, DirName:/CN=t279, DirName:/CN=t280, DirName:/CN=t281, DirName:/CN=t282, DirName:/CN=t283, DirName:/CN=t284, DirName:/CN=t285, DirName:/CN=t286, DirName:/CN=t287, DirName:/CN=t288, DirName:/CN=t289, DirName:/CN=t290, DirName:/CN=t291, DirName:/CN=t292, DirName:/CN=t293, DirName:/CN=t294, DirName:/CN=t295, DirName:/CN=t296, DirName:/CN=t297, DirName:/CN=t298, DirName:/CN=t299, DirName:/CN=t300, DirName:/CN=t301, DirName:/CN=t302, DirName:/CN=t303, DirName:/CN=t304, DirName:/CN=t305, DirName:/CN=t306, DirName:/CN=t307, DirName:/CN=t308, DirName:/CN=t309, DirName:/CN=t310, DirName:/CN=t311, DirName:/CN=t312, DirName:/CN=t313, DirName:/CN=t314, DirName:/CN=t315, DirName:/CN=t316, DirName:/CN=t317, DirName:/CN=t318, DirName:/CN=t319, DirName:/CN=t320, DirName:/CN=t321, DirName:/CN=t322, DirName:/CN=t323, DirName:/CN=t324, DirName:/CN=t325, DirName:/CN=t326, DirName:/CN=t327, DirName:/CN=t328, DirName:/CN=t329, DirName:/CN=t330, DirName:/CN=t331, DirName:/CN=t332, DirName:/CN=t333, DirName:/CN=t334, DirName:/CN=t335, DirName:/CN=t336, DirName:/CN=t337, DirName:/CN=t338, DirName:/CN=t339, DirName:/CN=t340 - Signature Algorithm: sha256WithRSAEncryption -- b2:e5:7a:fb:a0:db:99:7b:2b:60:3b:29:0a:96:9e:2a:72:5a: -- f9:59:9b:e8:af:4e:1e:10:cb:22:a6:33:db:18:62:db:c6:e7: -- ea:9b:c2:83:4e:f0:88:bf:d9:70:4e:d4:bd:21:08:99:9a:0e: -- 6b:f1:ed:fb:43:63:c4:0e:22:33:e9:67:5c:5f:d3:51:61:df: -- dd:2c:51:2f:d2:a5:3f:41:7a:fb:e3:ff:16:9c:fe:77:7c:57: -- 25:6c:02:8c:bc:e6:56:8e:e0:db:3e:2e:a2:fd:91:30:fd:7c: -- 3a:b1:03:cb:eb:c1:77:c0:b2:e0:1a:f9:ba:3d:e4:75:56:8d: -- 98:62:61:a1:cc:8d:90:56:36:44:2c:a2:92:be:48:25:c7:ef: -- 86:54:8e:d2:3e:c7:14:d6:ef:05:82:af:86:b5:bb:14:a4:80: -- 3f:04:e0:36:6e:0f:ab:0e:9c:27:bc:f4:43:a1:69:47:3a:ea: -- 7f:7b:1e:26:14:2c:0a:3a:01:3f:d8:06:f7:1a:e1:7c:6e:e8: -- 1e:1d:c0:24:61:56:10:23:6a:e3:26:54:d9:1d:48:2b:0d:39: -- 3b:76:a3:20:b9:a0:6a:c8:cf:77:57:d7:d6:32:c4:bc:d2:10: -- 28:1d:a8:df:ee:bc:a3:21:74:e9:45:5b:ec:77:0a:d5:b1:b4: -- 41:33:e3:0b -+ 90:c2:57:f6:92:e9:c7:58:4e:b5:bd:11:26:33:dd:b9:3d:c2: -+ 1e:6d:6b:21:74:04:85:22:1e:d2:1b:09:fb:99:24:d8:e6:ed: -+ 1c:55:14:34:b7:19:4e:f2:cc:37:2e:b3:d3:26:96:f2:6d:88: -+ d6:8d:b2:7b:1a:6f:eb:66:f1:d9:f3:a3:4f:b0:76:51:d2:1c: -+ e6:b0:ae:0f:28:38:bf:c6:94:d5:76:71:0f:f6:11:95:c8:07: -+ 26:be:81:aa:55:4d:17:17:36:90:bb:c2:b8:40:72:a2:cf:0f: -+ d3:55:b1:65:50:67:c8:57:4b:54:bd:5b:42:7f:d4:b4:46:0e: -+ fe:9d:f0:eb:a9:96:c2:53:ce:b5:fb:71:3c:da:51:37:94:c7: -+ 7b:1e:d6:5b:c1:1b:da:ae:09:b1:da:d0:2d:27:ae:46:c6:5e: -+ d0:72:cb:e0:29:a7:c8:40:e8:18:94:26:ad:d8:51:21:43:24: -+ f6:f9:a4:9e:f1:57:d1:4b:3e:74:71:97:8f:de:09:2d:d3:85: -+ b1:79:a8:9d:d0:6c:35:90:a8:62:2f:fb:45:ac:c5:5b:5c:cc: -+ ea:72:05:b0:2f:79:36:56:f2:75:5b:b4:30:8c:0c:9f:fc:e8: -+ da:7e:2c:dd:fc:5e:fc:23:04:c1:53:31:a7:e2:ce:18:10:28: -+ b8:d4:60:8e - -----BEGIN CERTIFICATE----- --MII9qzCCPJOgAwIBAgITL6u0PdzAd4AqAwmtQ3QCv5jY1TANBgkqhkiG9w0BAQsF -+MIIy0TCCMbmgAwIBAgITL6u0PdzAd4AqAwmtQ3QCv5jY1TANBgkqhkiG9w0BAQsF - ADAXMRUwEwYDVQQDDAxJbnRlcm1lZGlhdGUwHhcNMjExMDA1MTIwMDAwWhcNMjIx - MDA1MTIwMDAwWjANMQswCQYDVQQDDAJ0MDCCASIwDQYJKoZIhvcNAQEBBQADggEP - ADCCAQoCggEBANssUwHO+RqDNlJRKltCY94ydRFqfbCh5HdHm3Hlpi1k165bBO16 -@@ -82,12 +82,12 @@ P8f2yisrrc1siKWONvvnoiK1fVR56dV6W8orKWwNhAoQxCG2WJi7DbYMjVZbLIVZ - B8oGRjYlGimOxDm3wzHObknCAc+wOydDiuPVBh8tk53dekVlbf20scAQWULyHo/O - Q6yXJcF84lHhRDVblKoDbtpxLyV/WDAB4RIXHvKqbCKAscll6neVswfE93I4NP6g - QzNMZm2h6KEEvG8UOTlELjg3dMkKIYWRIbdOurCZSnaYe1jKHNOwQMPZKnX76xnq --4xqYMVKX6X+keyF/L9xiho/9/aiI6EtEUr0CAwEAAaOCOvgwgjr0MB0GA1UdDgQW -+4xqYMVKX6X+keyF/L9xiho/9/aiI6EtEUr0CAwEAAaOCMB4wgjAaMB0GA1UdDgQW - BBQ7tAXMqrpRPfzy+R4lU3LhOvKa3zAfBgNVHSMEGDAWgBSSET+sEZbHZjfPg1ok - 8Dp3rzONfzA/BggrBgEFBQcBAQQzMDEwLwYIKwYBBQUHMAKGI2h0dHA6Ly91cmwt - Zm9yLWFpYS9JbnRlcm1lZGlhdGUuY2VyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6 - Ly91cmwtZm9yLWNybC9JbnRlcm1lZGlhdGUuY3JsMA4GA1UdDwEB/wQEAwIFoDAd --BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwgjoKBgNVHREEgjoBMII5/YIH -+BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwgi8wBgNVHREEgi8nMIIvI4IH - dDAudGVzdIIHdDEudGVzdIIHdDIudGVzdIIHdDMudGVzdIIHdDQudGVzdIIHdDUu - dGVzdIIHdDYudGVzdIIHdDcudGVzdIIHdDgudGVzdIIHdDkudGVzdIIIdDEwLnRl - c3SCCHQxMS50ZXN0ggh0MTIudGVzdIIIdDEzLnRlc3SCCHQxNC50ZXN0ggh0MTUu -@@ -164,245 +164,188 @@ MjQudGVzdIIJdDMyNS50ZXN0ggl0MzI2LnRlc3SCCXQzMjcudGVzdIIJdDMyOC50 - ZXN0ggl0MzI5LnRlc3SCCXQzMzAudGVzdIIJdDMzMS50ZXN0ggl0MzMyLnRlc3SC - CXQzMzMudGVzdIIJdDMzNC50ZXN0ggl0MzM1LnRlc3SCCXQzMzYudGVzdIIJdDMz - Ny50ZXN0ggl0MzM4LnRlc3SCCXQzMzkudGVzdIIJdDM0MC50ZXN0ggl0MzQxLnRl --c3SCCXQzNDIudGVzdIIJdDM0My50ZXN0ggl0MzQ0LnRlc3SCCXQzNDUudGVzdIIJ --dDM0Ni50ZXN0ggl0MzQ3LnRlc3SCCXQzNDgudGVzdIIJdDM0OS50ZXN0ggl0MzUw --LnRlc3SCCXQzNTEudGVzdIIJdDM1Mi50ZXN0ggl0MzUzLnRlc3SCCXQzNTQudGVz --dIIJdDM1NS50ZXN0ggl0MzU2LnRlc3SCCXQzNTcudGVzdIIJdDM1OC50ZXN0ggl0 --MzU5LnRlc3SCCXQzNjAudGVzdIIJdDM2MS50ZXN0ggl0MzYyLnRlc3SCCXQzNjMu --dGVzdIIJdDM2NC50ZXN0ggl0MzY1LnRlc3SCCXQzNjYudGVzdIIJdDM2Ny50ZXN0 --ggl0MzY4LnRlc3SCCXQzNjkudGVzdIIJdDM3MC50ZXN0ggl0MzcxLnRlc3SCCXQz --NzIudGVzdIIJdDM3My50ZXN0ggl0Mzc0LnRlc3SCCXQzNzUudGVzdIIJdDM3Ni50 --ZXN0ggl0Mzc3LnRlc3SCCXQzNzgudGVzdIIJdDM3OS50ZXN0ggl0MzgwLnRlc3SC --CXQzODEudGVzdIIJdDM4Mi50ZXN0ggl0MzgzLnRlc3SCCXQzODQudGVzdIIJdDM4 --NS50ZXN0ggl0Mzg2LnRlc3SCCXQzODcudGVzdIIJdDM4OC50ZXN0ggl0Mzg5LnRl --c3SCCXQzOTAudGVzdIIJdDM5MS50ZXN0ggl0MzkyLnRlc3SCCXQzOTMudGVzdIIJ --dDM5NC50ZXN0ggl0Mzk1LnRlc3SCCXQzOTYudGVzdIIJdDM5Ny50ZXN0ggl0Mzk4 --LnRlc3SCCXQzOTkudGVzdIIJdDQwMC50ZXN0ggl0NDAxLnRlc3SCCXQ0MDIudGVz --dIIJdDQwMy50ZXN0ggl0NDA0LnRlc3SCCXQ0MDUudGVzdIIJdDQwNi50ZXN0ggl0 --NDA3LnRlc3SCCXQ0MDgudGVzdIIJdDQwOS50ZXN0ggl0NDEwLnRlc3SCCXQ0MTEu --dGVzdIIJdDQxMi50ZXN0ggl0NDEzLnRlc3SCCXQ0MTQudGVzdIIJdDQxNS50ZXN0 --ggl0NDE2LnRlc3SCCXQ0MTcudGVzdIIJdDQxOC50ZXN0hwQKAAAAhwQKAAABhwQK --AAAChwQKAAADhwQKAAAEhwQKAAAFhwQKAAAGhwQKAAAHhwQKAAAIhwQKAAAJhwQK --AAAKhwQKAAALhwQKAAAMhwQKAAANhwQKAAAOhwQKAAAPhwQKAAAQhwQKAAARhwQK --AAAShwQKAAAThwQKAAAUhwQKAAAVhwQKAAAWhwQKAAAXhwQKAAAYhwQKAAAZhwQK --AAAahwQKAAAbhwQKAAAchwQKAAAdhwQKAAAehwQKAAAfhwQKAAAghwQKAAAhhwQK --AAAihwQKAAAjhwQKAAAkhwQKAAAlhwQKAAAmhwQKAAAnhwQKAAAohwQKAAAphwQK --AAAqhwQKAAArhwQKAAAshwQKAAAthwQKAAAuhwQKAAAvhwQKAAAwhwQKAAAxhwQK --AAAyhwQKAAAzhwQKAAA0hwQKAAA1hwQKAAA2hwQKAAA3hwQKAAA4hwQKAAA5hwQK --AAA6hwQKAAA7hwQKAAA8hwQKAAA9hwQKAAA+hwQKAAA/hwQKAABAhwQKAABBhwQK --AABChwQKAABDhwQKAABEhwQKAABFhwQKAABGhwQKAABHhwQKAABIhwQKAABJhwQK --AABKhwQKAABLhwQKAABMhwQKAABNhwQKAABOhwQKAABPhwQKAABQhwQKAABRhwQK --AABShwQKAABThwQKAABUhwQKAABVhwQKAABWhwQKAABXhwQKAABYhwQKAABZhwQK --AABahwQKAABbhwQKAABchwQKAABdhwQKAABehwQKAABfhwQKAABghwQKAABhhwQK --AABihwQKAABjhwQKAABkhwQKAABlhwQKAABmhwQKAABnhwQKAABohwQKAABphwQK --AABqhwQKAABrhwQKAABshwQKAABthwQKAABuhwQKAABvhwQKAABwhwQKAABxhwQK --AAByhwQKAABzhwQKAAB0hwQKAAB1hwQKAAB2hwQKAAB3hwQKAAB4hwQKAAB5hwQK --AAB6hwQKAAB7hwQKAAB8hwQKAAB9hwQKAAB+hwQKAAB/hwQKAACAhwQKAACBhwQK --AACChwQKAACDhwQKAACEhwQKAACFhwQKAACGhwQKAACHhwQKAACIhwQKAACJhwQK --AACKhwQKAACLhwQKAACMhwQKAACNhwQKAACOhwQKAACPhwQKAACQhwQKAACRhwQK --AACShwQKAACThwQKAACUhwQKAACVhwQKAACWhwQKAACXhwQKAACYhwQKAACZhwQK --AACahwQKAACbhwQKAACchwQKAACdhwQKAACehwQKAACfhwQKAACghwQKAAChhwQK --AACihwQKAACjhwQKAACkhwQKAAClhwQKAACmhwQKAACnhwQKAACohwQKAACphwQK --AACqhwQKAACrhwQKAACshwQKAACthwQKAACuhwQKAACvhwQKAACwhwQKAACxhwQK --AACyhwQKAACzhwQKAAC0hwQKAAC1hwQKAAC2hwQKAAC3hwQKAAC4hwQKAAC5hwQK --AAC6hwQKAAC7hwQKAAC8hwQKAAC9hwQKAAC+hwQKAAC/hwQKAADAhwQKAADBhwQK --AADChwQKAADDhwQKAADEhwQKAADFhwQKAADGhwQKAADHhwQKAADIhwQKAADJhwQK --AADKhwQKAADLhwQKAADMhwQKAADNhwQKAADOhwQKAADPhwQKAADQhwQKAADRhwQK --AADShwQKAADThwQKAADUhwQKAADVhwQKAADWhwQKAADXhwQKAADYhwQKAADZhwQK --AADahwQKAADbhwQKAADchwQKAADdhwQKAADehwQKAADfhwQKAADghwQKAADhhwQK --AADihwQKAADjhwQKAADkhwQKAADlhwQKAADmhwQKAADnhwQKAADohwQKAADphwQK --AADqhwQKAADrhwQKAADshwQKAADthwQKAADuhwQKAADvhwQKAADwhwQKAADxhwQK --AADyhwQKAADzhwQKAAD0hwQKAAD1hwQKAAD2hwQKAAD3hwQKAAD4hwQKAAD5hwQK --AAD6hwQKAAD7hwQKAAD8hwQKAAD9hwQKAAD+hwQKAAD/hwQKAAEAhwQKAAEBhwQK --AAEChwQKAAEDhwQKAAEEhwQKAAEFhwQKAAEGhwQKAAEHhwQKAAEIhwQKAAEJhwQK --AAEKhwQKAAELhwQKAAEMhwQKAAENhwQKAAEOhwQKAAEPhwQKAAEQhwQKAAERhwQK --AAEShwQKAAEThwQKAAEUhwQKAAEVhwQKAAEWhwQKAAEXhwQKAAEYhwQKAAEZhwQK --AAEahwQKAAEbhwQKAAEchwQKAAEdhwQKAAEehwQKAAEfhwQKAAEghwQKAAEhhwQK --AAEihwQKAAEjhwQKAAEkhwQKAAElhwQKAAEmhwQKAAEnhwQKAAEohwQKAAEphwQK --AAEqhwQKAAErhwQKAAEshwQKAAEthwQKAAEuhwQKAAEvhwQKAAEwhwQKAAExhwQK --AAEyhwQKAAEzhwQKAAE0hwQKAAE1hwQKAAE2hwQKAAE3hwQKAAE4hwQKAAE5hwQK --AAE6hwQKAAE7hwQKAAE8hwQKAAE9hwQKAAE+hwQKAAE/hwQKAAFAhwQKAAFBhwQK --AAFChwQKAAFDhwQKAAFEhwQKAAFFhwQKAAFGhwQKAAFHhwQKAAFIhwQKAAFJhwQK --AAFKhwQKAAFLhwQKAAFMhwQKAAFNhwQKAAFOhwQKAAFPhwQKAAFQhwQKAAFRhwQK --AAFShwQKAAFThwQKAAFUhwQKAAFVhwQKAAFWhwQKAAFXhwQKAAFYhwQKAAFZhwQK --AAFahwQKAAFbhwQKAAFchwQKAAFdhwQKAAFehwQKAAFfhwQKAAFghwQKAAFhhwQK --AAFihwQKAAFjhwQKAAFkhwQKAAFlhwQKAAFmhwQKAAFnhwQKAAFohwQKAAFphwQK --AAFqhwQKAAFrhwQKAAFshwQKAAFthwQKAAFuhwQKAAFvhwQKAAFwhwQKAAFxhwQK --AAFyhwQKAAFzhwQKAAF0hwQKAAF1hwQKAAF2hwQKAAF3hwQKAAF4hwQKAAF5hwQK --AAF6hwQKAAF7hwQKAAF8hwQKAAF9hwQKAAF+hwQKAAF/hwQKAAGAhwQKAAGBhwQK --AAGChwQKAAGDhwQKAAGEhwQKAAGFhwQKAAGGhwQKAAGHhwQKAAGIhwQKAAGJhwQK --AAGKhwQKAAGLhwQKAAGMhwQKAAGNhwQKAAGOhwQKAAGPhwQKAAGQhwQKAAGRhwQK --AAGShwQKAAGThwQKAAGUhwQKAAGVhwQKAAGWhwQKAAGXhwQKAAGYhwQKAAGZhwQK --AAGahwQKAAGbhwQKAAGchwQKAAGdhwQKAAGehwQKAAGfhwQKAAGghwQKAAGhhwQK --AAGipA8wDTELMAkGA1UEAwwCdDCkDzANMQswCQYDVQQDDAJ0MaQPMA0xCzAJBgNV --BAMMAnQypA8wDTELMAkGA1UEAwwCdDOkDzANMQswCQYDVQQDDAJ0NKQPMA0xCzAJ --BgNVBAMMAnQ1pA8wDTELMAkGA1UEAwwCdDakDzANMQswCQYDVQQDDAJ0N6QPMA0x --CzAJBgNVBAMMAnQ4pA8wDTELMAkGA1UEAwwCdDmkEDAOMQwwCgYDVQQDDAN0MTCk --EDAOMQwwCgYDVQQDDAN0MTGkEDAOMQwwCgYDVQQDDAN0MTKkEDAOMQwwCgYDVQQD --DAN0MTOkEDAOMQwwCgYDVQQDDAN0MTSkEDAOMQwwCgYDVQQDDAN0MTWkEDAOMQww --CgYDVQQDDAN0MTakEDAOMQwwCgYDVQQDDAN0MTekEDAOMQwwCgYDVQQDDAN0MTik --EDAOMQwwCgYDVQQDDAN0MTmkEDAOMQwwCgYDVQQDDAN0MjCkEDAOMQwwCgYDVQQD --DAN0MjGkEDAOMQwwCgYDVQQDDAN0MjKkEDAOMQwwCgYDVQQDDAN0MjOkEDAOMQww --CgYDVQQDDAN0MjSkEDAOMQwwCgYDVQQDDAN0MjWkEDAOMQwwCgYDVQQDDAN0Mjak --EDAOMQwwCgYDVQQDDAN0MjekEDAOMQwwCgYDVQQDDAN0MjikEDAOMQwwCgYDVQQD --DAN0MjmkEDAOMQwwCgYDVQQDDAN0MzCkEDAOMQwwCgYDVQQDDAN0MzGkEDAOMQww --CgYDVQQDDAN0MzKkEDAOMQwwCgYDVQQDDAN0MzOkEDAOMQwwCgYDVQQDDAN0MzSk --EDAOMQwwCgYDVQQDDAN0MzWkEDAOMQwwCgYDVQQDDAN0MzakEDAOMQwwCgYDVQQD --DAN0MzekEDAOMQwwCgYDVQQDDAN0MzikEDAOMQwwCgYDVQQDDAN0MzmkEDAOMQww --CgYDVQQDDAN0NDCkEDAOMQwwCgYDVQQDDAN0NDGkEDAOMQwwCgYDVQQDDAN0NDKk --EDAOMQwwCgYDVQQDDAN0NDOkEDAOMQwwCgYDVQQDDAN0NDSkEDAOMQwwCgYDVQQD --DAN0NDWkEDAOMQwwCgYDVQQDDAN0NDakEDAOMQwwCgYDVQQDDAN0NDekEDAOMQww --CgYDVQQDDAN0NDikEDAOMQwwCgYDVQQDDAN0NDmkEDAOMQwwCgYDVQQDDAN0NTCk --EDAOMQwwCgYDVQQDDAN0NTGkEDAOMQwwCgYDVQQDDAN0NTKkEDAOMQwwCgYDVQQD --DAN0NTOkEDAOMQwwCgYDVQQDDAN0NTSkEDAOMQwwCgYDVQQDDAN0NTWkEDAOMQww --CgYDVQQDDAN0NTakEDAOMQwwCgYDVQQDDAN0NTekEDAOMQwwCgYDVQQDDAN0NTik --EDAOMQwwCgYDVQQDDAN0NTmkEDAOMQwwCgYDVQQDDAN0NjCkEDAOMQwwCgYDVQQD --DAN0NjGkEDAOMQwwCgYDVQQDDAN0NjKkEDAOMQwwCgYDVQQDDAN0NjOkEDAOMQww --CgYDVQQDDAN0NjSkEDAOMQwwCgYDVQQDDAN0NjWkEDAOMQwwCgYDVQQDDAN0Njak --EDAOMQwwCgYDVQQDDAN0NjekEDAOMQwwCgYDVQQDDAN0NjikEDAOMQwwCgYDVQQD --DAN0NjmkEDAOMQwwCgYDVQQDDAN0NzCkEDAOMQwwCgYDVQQDDAN0NzGkEDAOMQww --CgYDVQQDDAN0NzKkEDAOMQwwCgYDVQQDDAN0NzOkEDAOMQwwCgYDVQQDDAN0NzSk --EDAOMQwwCgYDVQQDDAN0NzWkEDAOMQwwCgYDVQQDDAN0NzakEDAOMQwwCgYDVQQD --DAN0NzekEDAOMQwwCgYDVQQDDAN0NzikEDAOMQwwCgYDVQQDDAN0NzmkEDAOMQww --CgYDVQQDDAN0ODCkEDAOMQwwCgYDVQQDDAN0ODGkEDAOMQwwCgYDVQQDDAN0ODKk --EDAOMQwwCgYDVQQDDAN0ODOkEDAOMQwwCgYDVQQDDAN0ODSkEDAOMQwwCgYDVQQD --DAN0ODWkEDAOMQwwCgYDVQQDDAN0ODakEDAOMQwwCgYDVQQDDAN0ODekEDAOMQww --CgYDVQQDDAN0ODikEDAOMQwwCgYDVQQDDAN0ODmkEDAOMQwwCgYDVQQDDAN0OTCk --EDAOMQwwCgYDVQQDDAN0OTGkEDAOMQwwCgYDVQQDDAN0OTKkEDAOMQwwCgYDVQQD --DAN0OTOkEDAOMQwwCgYDVQQDDAN0OTSkEDAOMQwwCgYDVQQDDAN0OTWkEDAOMQww --CgYDVQQDDAN0OTakEDAOMQwwCgYDVQQDDAN0OTekEDAOMQwwCgYDVQQDDAN0OTik --EDAOMQwwCgYDVQQDDAN0OTmkETAPMQ0wCwYDVQQDDAR0MTAwpBEwDzENMAsGA1UE --AwwEdDEwMaQRMA8xDTALBgNVBAMMBHQxMDKkETAPMQ0wCwYDVQQDDAR0MTAzpBEw --DzENMAsGA1UEAwwEdDEwNKQRMA8xDTALBgNVBAMMBHQxMDWkETAPMQ0wCwYDVQQD --DAR0MTA2pBEwDzENMAsGA1UEAwwEdDEwN6QRMA8xDTALBgNVBAMMBHQxMDikETAP --MQ0wCwYDVQQDDAR0MTA5pBEwDzENMAsGA1UEAwwEdDExMKQRMA8xDTALBgNVBAMM --BHQxMTGkETAPMQ0wCwYDVQQDDAR0MTEypBEwDzENMAsGA1UEAwwEdDExM6QRMA8x --DTALBgNVBAMMBHQxMTSkETAPMQ0wCwYDVQQDDAR0MTE1pBEwDzENMAsGA1UEAwwE --dDExNqQRMA8xDTALBgNVBAMMBHQxMTekETAPMQ0wCwYDVQQDDAR0MTE4pBEwDzEN --MAsGA1UEAwwEdDExOaQRMA8xDTALBgNVBAMMBHQxMjCkETAPMQ0wCwYDVQQDDAR0 --MTIxpBEwDzENMAsGA1UEAwwEdDEyMqQRMA8xDTALBgNVBAMMBHQxMjOkETAPMQ0w --CwYDVQQDDAR0MTI0pBEwDzENMAsGA1UEAwwEdDEyNaQRMA8xDTALBgNVBAMMBHQx --MjakETAPMQ0wCwYDVQQDDAR0MTI3pBEwDzENMAsGA1UEAwwEdDEyOKQRMA8xDTAL --BgNVBAMMBHQxMjmkETAPMQ0wCwYDVQQDDAR0MTMwpBEwDzENMAsGA1UEAwwEdDEz --MaQRMA8xDTALBgNVBAMMBHQxMzKkETAPMQ0wCwYDVQQDDAR0MTMzpBEwDzENMAsG --A1UEAwwEdDEzNKQRMA8xDTALBgNVBAMMBHQxMzWkETAPMQ0wCwYDVQQDDAR0MTM2 --pBEwDzENMAsGA1UEAwwEdDEzN6QRMA8xDTALBgNVBAMMBHQxMzikETAPMQ0wCwYD --VQQDDAR0MTM5pBEwDzENMAsGA1UEAwwEdDE0MKQRMA8xDTALBgNVBAMMBHQxNDGk --ETAPMQ0wCwYDVQQDDAR0MTQypBEwDzENMAsGA1UEAwwEdDE0M6QRMA8xDTALBgNV --BAMMBHQxNDSkETAPMQ0wCwYDVQQDDAR0MTQ1pBEwDzENMAsGA1UEAwwEdDE0NqQR --MA8xDTALBgNVBAMMBHQxNDekETAPMQ0wCwYDVQQDDAR0MTQ4pBEwDzENMAsGA1UE --AwwEdDE0OaQRMA8xDTALBgNVBAMMBHQxNTCkETAPMQ0wCwYDVQQDDAR0MTUxpBEw --DzENMAsGA1UEAwwEdDE1MqQRMA8xDTALBgNVBAMMBHQxNTOkETAPMQ0wCwYDVQQD --DAR0MTU0pBEwDzENMAsGA1UEAwwEdDE1NaQRMA8xDTALBgNVBAMMBHQxNTakETAP --MQ0wCwYDVQQDDAR0MTU3pBEwDzENMAsGA1UEAwwEdDE1OKQRMA8xDTALBgNVBAMM --BHQxNTmkETAPMQ0wCwYDVQQDDAR0MTYwpBEwDzENMAsGA1UEAwwEdDE2MaQRMA8x --DTALBgNVBAMMBHQxNjKkETAPMQ0wCwYDVQQDDAR0MTYzpBEwDzENMAsGA1UEAwwE --dDE2NKQRMA8xDTALBgNVBAMMBHQxNjWkETAPMQ0wCwYDVQQDDAR0MTY2pBEwDzEN --MAsGA1UEAwwEdDE2N6QRMA8xDTALBgNVBAMMBHQxNjikETAPMQ0wCwYDVQQDDAR0 --MTY5pBEwDzENMAsGA1UEAwwEdDE3MKQRMA8xDTALBgNVBAMMBHQxNzGkETAPMQ0w --CwYDVQQDDAR0MTcypBEwDzENMAsGA1UEAwwEdDE3M6QRMA8xDTALBgNVBAMMBHQx --NzSkETAPMQ0wCwYDVQQDDAR0MTc1pBEwDzENMAsGA1UEAwwEdDE3NqQRMA8xDTAL --BgNVBAMMBHQxNzekETAPMQ0wCwYDVQQDDAR0MTc4pBEwDzENMAsGA1UEAwwEdDE3 --OaQRMA8xDTALBgNVBAMMBHQxODCkETAPMQ0wCwYDVQQDDAR0MTgxpBEwDzENMAsG --A1UEAwwEdDE4MqQRMA8xDTALBgNVBAMMBHQxODOkETAPMQ0wCwYDVQQDDAR0MTg0 --pBEwDzENMAsGA1UEAwwEdDE4NaQRMA8xDTALBgNVBAMMBHQxODakETAPMQ0wCwYD --VQQDDAR0MTg3pBEwDzENMAsGA1UEAwwEdDE4OKQRMA8xDTALBgNVBAMMBHQxODmk --ETAPMQ0wCwYDVQQDDAR0MTkwpBEwDzENMAsGA1UEAwwEdDE5MaQRMA8xDTALBgNV --BAMMBHQxOTKkETAPMQ0wCwYDVQQDDAR0MTkzpBEwDzENMAsGA1UEAwwEdDE5NKQR --MA8xDTALBgNVBAMMBHQxOTWkETAPMQ0wCwYDVQQDDAR0MTk2pBEwDzENMAsGA1UE --AwwEdDE5N6QRMA8xDTALBgNVBAMMBHQxOTikETAPMQ0wCwYDVQQDDAR0MTk5pBEw --DzENMAsGA1UEAwwEdDIwMKQRMA8xDTALBgNVBAMMBHQyMDGkETAPMQ0wCwYDVQQD --DAR0MjAypBEwDzENMAsGA1UEAwwEdDIwM6QRMA8xDTALBgNVBAMMBHQyMDSkETAP --MQ0wCwYDVQQDDAR0MjA1pBEwDzENMAsGA1UEAwwEdDIwNqQRMA8xDTALBgNVBAMM --BHQyMDekETAPMQ0wCwYDVQQDDAR0MjA4pBEwDzENMAsGA1UEAwwEdDIwOaQRMA8x --DTALBgNVBAMMBHQyMTCkETAPMQ0wCwYDVQQDDAR0MjExpBEwDzENMAsGA1UEAwwE --dDIxMqQRMA8xDTALBgNVBAMMBHQyMTOkETAPMQ0wCwYDVQQDDAR0MjE0pBEwDzEN --MAsGA1UEAwwEdDIxNaQRMA8xDTALBgNVBAMMBHQyMTakETAPMQ0wCwYDVQQDDAR0 --MjE3pBEwDzENMAsGA1UEAwwEdDIxOKQRMA8xDTALBgNVBAMMBHQyMTmkETAPMQ0w --CwYDVQQDDAR0MjIwpBEwDzENMAsGA1UEAwwEdDIyMaQRMA8xDTALBgNVBAMMBHQy --MjKkETAPMQ0wCwYDVQQDDAR0MjIzpBEwDzENMAsGA1UEAwwEdDIyNKQRMA8xDTAL --BgNVBAMMBHQyMjWkETAPMQ0wCwYDVQQDDAR0MjI2pBEwDzENMAsGA1UEAwwEdDIy --N6QRMA8xDTALBgNVBAMMBHQyMjikETAPMQ0wCwYDVQQDDAR0MjI5pBEwDzENMAsG --A1UEAwwEdDIzMKQRMA8xDTALBgNVBAMMBHQyMzGkETAPMQ0wCwYDVQQDDAR0MjMy --pBEwDzENMAsGA1UEAwwEdDIzM6QRMA8xDTALBgNVBAMMBHQyMzSkETAPMQ0wCwYD --VQQDDAR0MjM1pBEwDzENMAsGA1UEAwwEdDIzNqQRMA8xDTALBgNVBAMMBHQyMzek --ETAPMQ0wCwYDVQQDDAR0MjM4pBEwDzENMAsGA1UEAwwEdDIzOaQRMA8xDTALBgNV --BAMMBHQyNDCkETAPMQ0wCwYDVQQDDAR0MjQxpBEwDzENMAsGA1UEAwwEdDI0MqQR --MA8xDTALBgNVBAMMBHQyNDOkETAPMQ0wCwYDVQQDDAR0MjQ0pBEwDzENMAsGA1UE --AwwEdDI0NaQRMA8xDTALBgNVBAMMBHQyNDakETAPMQ0wCwYDVQQDDAR0MjQ3pBEw --DzENMAsGA1UEAwwEdDI0OKQRMA8xDTALBgNVBAMMBHQyNDmkETAPMQ0wCwYDVQQD --DAR0MjUwpBEwDzENMAsGA1UEAwwEdDI1MaQRMA8xDTALBgNVBAMMBHQyNTKkETAP --MQ0wCwYDVQQDDAR0MjUzpBEwDzENMAsGA1UEAwwEdDI1NKQRMA8xDTALBgNVBAMM --BHQyNTWkETAPMQ0wCwYDVQQDDAR0MjU2pBEwDzENMAsGA1UEAwwEdDI1N6QRMA8x --DTALBgNVBAMMBHQyNTikETAPMQ0wCwYDVQQDDAR0MjU5pBEwDzENMAsGA1UEAwwE --dDI2MKQRMA8xDTALBgNVBAMMBHQyNjGkETAPMQ0wCwYDVQQDDAR0MjYypBEwDzEN --MAsGA1UEAwwEdDI2M6QRMA8xDTALBgNVBAMMBHQyNjSkETAPMQ0wCwYDVQQDDAR0 --MjY1pBEwDzENMAsGA1UEAwwEdDI2NqQRMA8xDTALBgNVBAMMBHQyNjekETAPMQ0w --CwYDVQQDDAR0MjY4pBEwDzENMAsGA1UEAwwEdDI2OaQRMA8xDTALBgNVBAMMBHQy --NzCkETAPMQ0wCwYDVQQDDAR0MjcxpBEwDzENMAsGA1UEAwwEdDI3MqQRMA8xDTAL --BgNVBAMMBHQyNzOkETAPMQ0wCwYDVQQDDAR0Mjc0pBEwDzENMAsGA1UEAwwEdDI3 --NaQRMA8xDTALBgNVBAMMBHQyNzakETAPMQ0wCwYDVQQDDAR0Mjc3pBEwDzENMAsG --A1UEAwwEdDI3OKQRMA8xDTALBgNVBAMMBHQyNzmkETAPMQ0wCwYDVQQDDAR0Mjgw --pBEwDzENMAsGA1UEAwwEdDI4MaQRMA8xDTALBgNVBAMMBHQyODKkETAPMQ0wCwYD --VQQDDAR0MjgzpBEwDzENMAsGA1UEAwwEdDI4NKQRMA8xDTALBgNVBAMMBHQyODWk --ETAPMQ0wCwYDVQQDDAR0Mjg2pBEwDzENMAsGA1UEAwwEdDI4N6QRMA8xDTALBgNV --BAMMBHQyODikETAPMQ0wCwYDVQQDDAR0Mjg5pBEwDzENMAsGA1UEAwwEdDI5MKQR --MA8xDTALBgNVBAMMBHQyOTGkETAPMQ0wCwYDVQQDDAR0MjkypBEwDzENMAsGA1UE --AwwEdDI5M6QRMA8xDTALBgNVBAMMBHQyOTSkETAPMQ0wCwYDVQQDDAR0Mjk1pBEw --DzENMAsGA1UEAwwEdDI5NqQRMA8xDTALBgNVBAMMBHQyOTekETAPMQ0wCwYDVQQD --DAR0Mjk4pBEwDzENMAsGA1UEAwwEdDI5OaQRMA8xDTALBgNVBAMMBHQzMDCkETAP --MQ0wCwYDVQQDDAR0MzAxpBEwDzENMAsGA1UEAwwEdDMwMqQRMA8xDTALBgNVBAMM --BHQzMDOkETAPMQ0wCwYDVQQDDAR0MzA0pBEwDzENMAsGA1UEAwwEdDMwNaQRMA8x --DTALBgNVBAMMBHQzMDakETAPMQ0wCwYDVQQDDAR0MzA3pBEwDzENMAsGA1UEAwwE --dDMwOKQRMA8xDTALBgNVBAMMBHQzMDmkETAPMQ0wCwYDVQQDDAR0MzEwpBEwDzEN --MAsGA1UEAwwEdDMxMaQRMA8xDTALBgNVBAMMBHQzMTKkETAPMQ0wCwYDVQQDDAR0 --MzEzpBEwDzENMAsGA1UEAwwEdDMxNKQRMA8xDTALBgNVBAMMBHQzMTWkETAPMQ0w --CwYDVQQDDAR0MzE2pBEwDzENMAsGA1UEAwwEdDMxN6QRMA8xDTALBgNVBAMMBHQz --MTikETAPMQ0wCwYDVQQDDAR0MzE5pBEwDzENMAsGA1UEAwwEdDMyMKQRMA8xDTAL --BgNVBAMMBHQzMjGkETAPMQ0wCwYDVQQDDAR0MzIypBEwDzENMAsGA1UEAwwEdDMy --M6QRMA8xDTALBgNVBAMMBHQzMjSkETAPMQ0wCwYDVQQDDAR0MzI1pBEwDzENMAsG --A1UEAwwEdDMyNqQRMA8xDTALBgNVBAMMBHQzMjekETAPMQ0wCwYDVQQDDAR0MzI4 --pBEwDzENMAsGA1UEAwwEdDMyOaQRMA8xDTALBgNVBAMMBHQzMzCkETAPMQ0wCwYD --VQQDDAR0MzMxpBEwDzENMAsGA1UEAwwEdDMzMqQRMA8xDTALBgNVBAMMBHQzMzOk --ETAPMQ0wCwYDVQQDDAR0MzM0pBEwDzENMAsGA1UEAwwEdDMzNaQRMA8xDTALBgNV --BAMMBHQzMzakETAPMQ0wCwYDVQQDDAR0MzM3pBEwDzENMAsGA1UEAwwEdDMzOKQR --MA8xDTALBgNVBAMMBHQzMzmkETAPMQ0wCwYDVQQDDAR0MzQwpBEwDzENMAsGA1UE --AwwEdDM0MaQRMA8xDTALBgNVBAMMBHQzNDKkETAPMQ0wCwYDVQQDDAR0MzQzpBEw --DzENMAsGA1UEAwwEdDM0NKQRMA8xDTALBgNVBAMMBHQzNDWkETAPMQ0wCwYDVQQD --DAR0MzQ2pBEwDzENMAsGA1UEAwwEdDM0N6QRMA8xDTALBgNVBAMMBHQzNDikETAP --MQ0wCwYDVQQDDAR0MzQ5pBEwDzENMAsGA1UEAwwEdDM1MKQRMA8xDTALBgNVBAMM --BHQzNTGkETAPMQ0wCwYDVQQDDAR0MzUypBEwDzENMAsGA1UEAwwEdDM1M6QRMA8x --DTALBgNVBAMMBHQzNTSkETAPMQ0wCwYDVQQDDAR0MzU1pBEwDzENMAsGA1UEAwwE --dDM1NqQRMA8xDTALBgNVBAMMBHQzNTekETAPMQ0wCwYDVQQDDAR0MzU4pBEwDzEN --MAsGA1UEAwwEdDM1OaQRMA8xDTALBgNVBAMMBHQzNjCkETAPMQ0wCwYDVQQDDAR0 --MzYxpBEwDzENMAsGA1UEAwwEdDM2MqQRMA8xDTALBgNVBAMMBHQzNjOkETAPMQ0w --CwYDVQQDDAR0MzY0pBEwDzENMAsGA1UEAwwEdDM2NaQRMA8xDTALBgNVBAMMBHQz --NjakETAPMQ0wCwYDVQQDDAR0MzY3pBEwDzENMAsGA1UEAwwEdDM2OKQRMA8xDTAL --BgNVBAMMBHQzNjmkETAPMQ0wCwYDVQQDDAR0MzcwpBEwDzENMAsGA1UEAwwEdDM3 --MaQRMA8xDTALBgNVBAMMBHQzNzKkETAPMQ0wCwYDVQQDDAR0MzczpBEwDzENMAsG --A1UEAwwEdDM3NKQRMA8xDTALBgNVBAMMBHQzNzWkETAPMQ0wCwYDVQQDDAR0Mzc2 --pBEwDzENMAsGA1UEAwwEdDM3N6QRMA8xDTALBgNVBAMMBHQzNzikETAPMQ0wCwYD --VQQDDAR0Mzc5pBEwDzENMAsGA1UEAwwEdDM4MKQRMA8xDTALBgNVBAMMBHQzODGk --ETAPMQ0wCwYDVQQDDAR0MzgypBEwDzENMAsGA1UEAwwEdDM4M6QRMA8xDTALBgNV --BAMMBHQzODSkETAPMQ0wCwYDVQQDDAR0Mzg1pBEwDzENMAsGA1UEAwwEdDM4NqQR --MA8xDTALBgNVBAMMBHQzODekETAPMQ0wCwYDVQQDDAR0Mzg4pBEwDzENMAsGA1UE --AwwEdDM4OaQRMA8xDTALBgNVBAMMBHQzOTCkETAPMQ0wCwYDVQQDDAR0MzkxpBEw --DzENMAsGA1UEAwwEdDM5MqQRMA8xDTALBgNVBAMMBHQzOTOkETAPMQ0wCwYDVQQD --DAR0Mzk0pBEwDzENMAsGA1UEAwwEdDM5NaQRMA8xDTALBgNVBAMMBHQzOTakETAP --MQ0wCwYDVQQDDAR0Mzk3pBEwDzENMAsGA1UEAwwEdDM5OKQRMA8xDTALBgNVBAMM --BHQzOTmkETAPMQ0wCwYDVQQDDAR0NDAwpBEwDzENMAsGA1UEAwwEdDQwMaQRMA8x --DTALBgNVBAMMBHQ0MDKkETAPMQ0wCwYDVQQDDAR0NDAzpBEwDzENMAsGA1UEAwwE --dDQwNKQRMA8xDTALBgNVBAMMBHQ0MDWkETAPMQ0wCwYDVQQDDAR0NDA2pBEwDzEN --MAsGA1UEAwwEdDQwN6QRMA8xDTALBgNVBAMMBHQ0MDikETAPMQ0wCwYDVQQDDAR0 --NDA5pBEwDzENMAsGA1UEAwwEdDQxMKQRMA8xDTALBgNVBAMMBHQ0MTGkETAPMQ0w --CwYDVQQDDAR0NDEypBEwDzENMAsGA1UEAwwEdDQxM6QRMA8xDTALBgNVBAMMBHQ0 --MTSkETAPMQ0wCwYDVQQDDAR0NDE1pBEwDzENMAsGA1UEAwwEdDQxNqQRMA8xDTAL --BgNVBAMMBHQ0MTcwDQYJKoZIhvcNAQELBQADggEBALLlevug25l7K2A7KQqWnipy --WvlZm+ivTh4QyyKmM9sYYtvG5+qbwoNO8Ii/2XBO1L0hCJmaDmvx7ftDY8QOIjPp --Z1xf01Fh390sUS/SpT9Bevvj/xac/nd8VyVsAoy85laO4Ns+LqL9kTD9fDqxA8vr --wXfAsuAa+bo95HVWjZhiYaHMjZBWNkQsopK+SCXH74ZUjtI+xxTW7wWCr4a1uxSk --gD8E4DZuD6sOnCe89EOhaUc66n97HiYULAo6AT/YBvca4Xxu6B4dwCRhVhAjauMm --VNkdSCsNOTt2oyC5oGrIz3dX19YyxLzSECgdqN/uvKMhdOlFW+x3CtWxtEEz4ws= -+c3SHBAoAAACHBAoAAAGHBAoAAAKHBAoAAAOHBAoAAASHBAoAAAWHBAoAAAaHBAoA -+AAeHBAoAAAiHBAoAAAmHBAoAAAqHBAoAAAuHBAoAAAyHBAoAAA2HBAoAAA6HBAoA -+AA+HBAoAABCHBAoAABGHBAoAABKHBAoAABOHBAoAABSHBAoAABWHBAoAABaHBAoA -+ABeHBAoAABiHBAoAABmHBAoAABqHBAoAABuHBAoAAByHBAoAAB2HBAoAAB6HBAoA -+AB+HBAoAACCHBAoAACGHBAoAACKHBAoAACOHBAoAACSHBAoAACWHBAoAACaHBAoA -+ACeHBAoAACiHBAoAACmHBAoAACqHBAoAACuHBAoAACyHBAoAAC2HBAoAAC6HBAoA -+AC+HBAoAADCHBAoAADGHBAoAADKHBAoAADOHBAoAADSHBAoAADWHBAoAADaHBAoA -+ADeHBAoAADiHBAoAADmHBAoAADqHBAoAADuHBAoAADyHBAoAAD2HBAoAAD6HBAoA -+AD+HBAoAAECHBAoAAEGHBAoAAEKHBAoAAEOHBAoAAESHBAoAAEWHBAoAAEaHBAoA -+AEeHBAoAAEiHBAoAAEmHBAoAAEqHBAoAAEuHBAoAAEyHBAoAAE2HBAoAAE6HBAoA -+AE+HBAoAAFCHBAoAAFGHBAoAAFKHBAoAAFOHBAoAAFSHBAoAAFWHBAoAAFaHBAoA -+AFeHBAoAAFiHBAoAAFmHBAoAAFqHBAoAAFuHBAoAAFyHBAoAAF2HBAoAAF6HBAoA -+AF+HBAoAAGCHBAoAAGGHBAoAAGKHBAoAAGOHBAoAAGSHBAoAAGWHBAoAAGaHBAoA -+AGeHBAoAAGiHBAoAAGmHBAoAAGqHBAoAAGuHBAoAAGyHBAoAAG2HBAoAAG6HBAoA -+AG+HBAoAAHCHBAoAAHGHBAoAAHKHBAoAAHOHBAoAAHSHBAoAAHWHBAoAAHaHBAoA -+AHeHBAoAAHiHBAoAAHmHBAoAAHqHBAoAAHuHBAoAAHyHBAoAAH2HBAoAAH6HBAoA -+AH+HBAoAAICHBAoAAIGHBAoAAIKHBAoAAIOHBAoAAISHBAoAAIWHBAoAAIaHBAoA -+AIeHBAoAAIiHBAoAAImHBAoAAIqHBAoAAIuHBAoAAIyHBAoAAI2HBAoAAI6HBAoA -+AI+HBAoAAJCHBAoAAJGHBAoAAJKHBAoAAJOHBAoAAJSHBAoAAJWHBAoAAJaHBAoA -+AJeHBAoAAJiHBAoAAJmHBAoAAJqHBAoAAJuHBAoAAJyHBAoAAJ2HBAoAAJ6HBAoA -+AJ+HBAoAAKCHBAoAAKGHBAoAAKKHBAoAAKOHBAoAAKSHBAoAAKWHBAoAAKaHBAoA -+AKeHBAoAAKiHBAoAAKmHBAoAAKqHBAoAAKuHBAoAAKyHBAoAAK2HBAoAAK6HBAoA -+AK+HBAoAALCHBAoAALGHBAoAALKHBAoAALOHBAoAALSHBAoAALWHBAoAALaHBAoA -+ALeHBAoAALiHBAoAALmHBAoAALqHBAoAALuHBAoAALyHBAoAAL2HBAoAAL6HBAoA -+AL+HBAoAAMCHBAoAAMGHBAoAAMKHBAoAAMOHBAoAAMSHBAoAAMWHBAoAAMaHBAoA -+AMeHBAoAAMiHBAoAAMmHBAoAAMqHBAoAAMuHBAoAAMyHBAoAAM2HBAoAAM6HBAoA -+AM+HBAoAANCHBAoAANGHBAoAANKHBAoAANOHBAoAANSHBAoAANWHBAoAANaHBAoA -+ANeHBAoAANiHBAoAANmHBAoAANqHBAoAANuHBAoAANyHBAoAAN2HBAoAAN6HBAoA -+AN+HBAoAAOCHBAoAAOGHBAoAAOKHBAoAAOOHBAoAAOSHBAoAAOWHBAoAAOaHBAoA -+AOeHBAoAAOiHBAoAAOmHBAoAAOqHBAoAAOuHBAoAAOyHBAoAAO2HBAoAAO6HBAoA -+AO+HBAoAAPCHBAoAAPGHBAoAAPKHBAoAAPOHBAoAAPSHBAoAAPWHBAoAAPaHBAoA -+APeHBAoAAPiHBAoAAPmHBAoAAPqHBAoAAPuHBAoAAPyHBAoAAP2HBAoAAP6HBAoA -+AP+HBAoAAQCHBAoAAQGHBAoAAQKHBAoAAQOHBAoAAQSHBAoAAQWHBAoAAQaHBAoA -+AQeHBAoAAQiHBAoAAQmHBAoAAQqHBAoAAQuHBAoAAQyHBAoAAQ2HBAoAAQ6HBAoA -+AQ+HBAoAARCHBAoAARGHBAoAARKHBAoAAROHBAoAARSHBAoAARWHBAoAARaHBAoA -+AReHBAoAARiHBAoAARmHBAoAARqHBAoAARuHBAoAARyHBAoAAR2HBAoAAR6HBAoA -+AR+HBAoAASCHBAoAASGHBAoAASKHBAoAASOHBAoAASSHBAoAASWHBAoAASaHBAoA -+ASeHBAoAASiHBAoAASmHBAoAASqHBAoAASuHBAoAASyHBAoAAS2HBAoAAS6HBAoA -+AS+HBAoAATCHBAoAATGHBAoAATKHBAoAATOHBAoAATSHBAoAATWHBAoAATaHBAoA -+ATeHBAoAATiHBAoAATmHBAoAATqHBAoAATuHBAoAATyHBAoAAT2HBAoAAT6HBAoA -+AT+HBAoAAUCHBAoAAUGHBAoAAUKHBAoAAUOHBAoAAUSHBAoAAUWHBAoAAUaHBAoA -+AUeHBAoAAUiHBAoAAUmHBAoAAUqHBAoAAUuHBAoAAUyHBAoAAU2HBAoAAU6HBAoA -+AU+HBAoAAVCHBAoAAVGHBAoAAVKHBAoAAVOHBAoAAVSkDzANMQswCQYDVQQDDAJ0 -+MKQPMA0xCzAJBgNVBAMMAnQxpA8wDTELMAkGA1UEAwwCdDKkDzANMQswCQYDVQQD -+DAJ0M6QPMA0xCzAJBgNVBAMMAnQ0pA8wDTELMAkGA1UEAwwCdDWkDzANMQswCQYD -+VQQDDAJ0NqQPMA0xCzAJBgNVBAMMAnQ3pA8wDTELMAkGA1UEAwwCdDikDzANMQsw -+CQYDVQQDDAJ0OaQQMA4xDDAKBgNVBAMMA3QxMKQQMA4xDDAKBgNVBAMMA3QxMaQQ -+MA4xDDAKBgNVBAMMA3QxMqQQMA4xDDAKBgNVBAMMA3QxM6QQMA4xDDAKBgNVBAMM -+A3QxNKQQMA4xDDAKBgNVBAMMA3QxNaQQMA4xDDAKBgNVBAMMA3QxNqQQMA4xDDAK -+BgNVBAMMA3QxN6QQMA4xDDAKBgNVBAMMA3QxOKQQMA4xDDAKBgNVBAMMA3QxOaQQ -+MA4xDDAKBgNVBAMMA3QyMKQQMA4xDDAKBgNVBAMMA3QyMaQQMA4xDDAKBgNVBAMM -+A3QyMqQQMA4xDDAKBgNVBAMMA3QyM6QQMA4xDDAKBgNVBAMMA3QyNKQQMA4xDDAK -+BgNVBAMMA3QyNaQQMA4xDDAKBgNVBAMMA3QyNqQQMA4xDDAKBgNVBAMMA3QyN6QQ -+MA4xDDAKBgNVBAMMA3QyOKQQMA4xDDAKBgNVBAMMA3QyOaQQMA4xDDAKBgNVBAMM -+A3QzMKQQMA4xDDAKBgNVBAMMA3QzMaQQMA4xDDAKBgNVBAMMA3QzMqQQMA4xDDAK -+BgNVBAMMA3QzM6QQMA4xDDAKBgNVBAMMA3QzNKQQMA4xDDAKBgNVBAMMA3QzNaQQ -+MA4xDDAKBgNVBAMMA3QzNqQQMA4xDDAKBgNVBAMMA3QzN6QQMA4xDDAKBgNVBAMM -+A3QzOKQQMA4xDDAKBgNVBAMMA3QzOaQQMA4xDDAKBgNVBAMMA3Q0MKQQMA4xDDAK -+BgNVBAMMA3Q0MaQQMA4xDDAKBgNVBAMMA3Q0MqQQMA4xDDAKBgNVBAMMA3Q0M6QQ -+MA4xDDAKBgNVBAMMA3Q0NKQQMA4xDDAKBgNVBAMMA3Q0NaQQMA4xDDAKBgNVBAMM -+A3Q0NqQQMA4xDDAKBgNVBAMMA3Q0N6QQMA4xDDAKBgNVBAMMA3Q0OKQQMA4xDDAK -+BgNVBAMMA3Q0OaQQMA4xDDAKBgNVBAMMA3Q1MKQQMA4xDDAKBgNVBAMMA3Q1MaQQ -+MA4xDDAKBgNVBAMMA3Q1MqQQMA4xDDAKBgNVBAMMA3Q1M6QQMA4xDDAKBgNVBAMM -+A3Q1NKQQMA4xDDAKBgNVBAMMA3Q1NaQQMA4xDDAKBgNVBAMMA3Q1NqQQMA4xDDAK -+BgNVBAMMA3Q1N6QQMA4xDDAKBgNVBAMMA3Q1OKQQMA4xDDAKBgNVBAMMA3Q1OaQQ -+MA4xDDAKBgNVBAMMA3Q2MKQQMA4xDDAKBgNVBAMMA3Q2MaQQMA4xDDAKBgNVBAMM -+A3Q2MqQQMA4xDDAKBgNVBAMMA3Q2M6QQMA4xDDAKBgNVBAMMA3Q2NKQQMA4xDDAK -+BgNVBAMMA3Q2NaQQMA4xDDAKBgNVBAMMA3Q2NqQQMA4xDDAKBgNVBAMMA3Q2N6QQ -+MA4xDDAKBgNVBAMMA3Q2OKQQMA4xDDAKBgNVBAMMA3Q2OaQQMA4xDDAKBgNVBAMM -+A3Q3MKQQMA4xDDAKBgNVBAMMA3Q3MaQQMA4xDDAKBgNVBAMMA3Q3MqQQMA4xDDAK -+BgNVBAMMA3Q3M6QQMA4xDDAKBgNVBAMMA3Q3NKQQMA4xDDAKBgNVBAMMA3Q3NaQQ -+MA4xDDAKBgNVBAMMA3Q3NqQQMA4xDDAKBgNVBAMMA3Q3N6QQMA4xDDAKBgNVBAMM -+A3Q3OKQQMA4xDDAKBgNVBAMMA3Q3OaQQMA4xDDAKBgNVBAMMA3Q4MKQQMA4xDDAK -+BgNVBAMMA3Q4MaQQMA4xDDAKBgNVBAMMA3Q4MqQQMA4xDDAKBgNVBAMMA3Q4M6QQ -+MA4xDDAKBgNVBAMMA3Q4NKQQMA4xDDAKBgNVBAMMA3Q4NaQQMA4xDDAKBgNVBAMM -+A3Q4NqQQMA4xDDAKBgNVBAMMA3Q4N6QQMA4xDDAKBgNVBAMMA3Q4OKQQMA4xDDAK -+BgNVBAMMA3Q4OaQQMA4xDDAKBgNVBAMMA3Q5MKQQMA4xDDAKBgNVBAMMA3Q5MaQQ -+MA4xDDAKBgNVBAMMA3Q5MqQQMA4xDDAKBgNVBAMMA3Q5M6QQMA4xDDAKBgNVBAMM -+A3Q5NKQQMA4xDDAKBgNVBAMMA3Q5NaQQMA4xDDAKBgNVBAMMA3Q5NqQQMA4xDDAK -+BgNVBAMMA3Q5N6QQMA4xDDAKBgNVBAMMA3Q5OKQQMA4xDDAKBgNVBAMMA3Q5OaQR -+MA8xDTALBgNVBAMMBHQxMDCkETAPMQ0wCwYDVQQDDAR0MTAxpBEwDzENMAsGA1UE -+AwwEdDEwMqQRMA8xDTALBgNVBAMMBHQxMDOkETAPMQ0wCwYDVQQDDAR0MTA0pBEw -+DzENMAsGA1UEAwwEdDEwNaQRMA8xDTALBgNVBAMMBHQxMDakETAPMQ0wCwYDVQQD -+DAR0MTA3pBEwDzENMAsGA1UEAwwEdDEwOKQRMA8xDTALBgNVBAMMBHQxMDmkETAP -+MQ0wCwYDVQQDDAR0MTEwpBEwDzENMAsGA1UEAwwEdDExMaQRMA8xDTALBgNVBAMM -+BHQxMTKkETAPMQ0wCwYDVQQDDAR0MTEzpBEwDzENMAsGA1UEAwwEdDExNKQRMA8x -+DTALBgNVBAMMBHQxMTWkETAPMQ0wCwYDVQQDDAR0MTE2pBEwDzENMAsGA1UEAwwE -+dDExN6QRMA8xDTALBgNVBAMMBHQxMTikETAPMQ0wCwYDVQQDDAR0MTE5pBEwDzEN -+MAsGA1UEAwwEdDEyMKQRMA8xDTALBgNVBAMMBHQxMjGkETAPMQ0wCwYDVQQDDAR0 -+MTIypBEwDzENMAsGA1UEAwwEdDEyM6QRMA8xDTALBgNVBAMMBHQxMjSkETAPMQ0w -+CwYDVQQDDAR0MTI1pBEwDzENMAsGA1UEAwwEdDEyNqQRMA8xDTALBgNVBAMMBHQx -+MjekETAPMQ0wCwYDVQQDDAR0MTI4pBEwDzENMAsGA1UEAwwEdDEyOaQRMA8xDTAL -+BgNVBAMMBHQxMzCkETAPMQ0wCwYDVQQDDAR0MTMxpBEwDzENMAsGA1UEAwwEdDEz -+MqQRMA8xDTALBgNVBAMMBHQxMzOkETAPMQ0wCwYDVQQDDAR0MTM0pBEwDzENMAsG -+A1UEAwwEdDEzNaQRMA8xDTALBgNVBAMMBHQxMzakETAPMQ0wCwYDVQQDDAR0MTM3 -+pBEwDzENMAsGA1UEAwwEdDEzOKQRMA8xDTALBgNVBAMMBHQxMzmkETAPMQ0wCwYD -+VQQDDAR0MTQwpBEwDzENMAsGA1UEAwwEdDE0MaQRMA8xDTALBgNVBAMMBHQxNDKk -+ETAPMQ0wCwYDVQQDDAR0MTQzpBEwDzENMAsGA1UEAwwEdDE0NKQRMA8xDTALBgNV -+BAMMBHQxNDWkETAPMQ0wCwYDVQQDDAR0MTQ2pBEwDzENMAsGA1UEAwwEdDE0N6QR -+MA8xDTALBgNVBAMMBHQxNDikETAPMQ0wCwYDVQQDDAR0MTQ5pBEwDzENMAsGA1UE -+AwwEdDE1MKQRMA8xDTALBgNVBAMMBHQxNTGkETAPMQ0wCwYDVQQDDAR0MTUypBEw -+DzENMAsGA1UEAwwEdDE1M6QRMA8xDTALBgNVBAMMBHQxNTSkETAPMQ0wCwYDVQQD -+DAR0MTU1pBEwDzENMAsGA1UEAwwEdDE1NqQRMA8xDTALBgNVBAMMBHQxNTekETAP -+MQ0wCwYDVQQDDAR0MTU4pBEwDzENMAsGA1UEAwwEdDE1OaQRMA8xDTALBgNVBAMM -+BHQxNjCkETAPMQ0wCwYDVQQDDAR0MTYxpBEwDzENMAsGA1UEAwwEdDE2MqQRMA8x -+DTALBgNVBAMMBHQxNjOkETAPMQ0wCwYDVQQDDAR0MTY0pBEwDzENMAsGA1UEAwwE -+dDE2NaQRMA8xDTALBgNVBAMMBHQxNjakETAPMQ0wCwYDVQQDDAR0MTY3pBEwDzEN -+MAsGA1UEAwwEdDE2OKQRMA8xDTALBgNVBAMMBHQxNjmkETAPMQ0wCwYDVQQDDAR0 -+MTcwpBEwDzENMAsGA1UEAwwEdDE3MaQRMA8xDTALBgNVBAMMBHQxNzKkETAPMQ0w -+CwYDVQQDDAR0MTczpBEwDzENMAsGA1UEAwwEdDE3NKQRMA8xDTALBgNVBAMMBHQx -+NzWkETAPMQ0wCwYDVQQDDAR0MTc2pBEwDzENMAsGA1UEAwwEdDE3N6QRMA8xDTAL -+BgNVBAMMBHQxNzikETAPMQ0wCwYDVQQDDAR0MTc5pBEwDzENMAsGA1UEAwwEdDE4 -+MKQRMA8xDTALBgNVBAMMBHQxODGkETAPMQ0wCwYDVQQDDAR0MTgypBEwDzENMAsG -+A1UEAwwEdDE4M6QRMA8xDTALBgNVBAMMBHQxODSkETAPMQ0wCwYDVQQDDAR0MTg1 -+pBEwDzENMAsGA1UEAwwEdDE4NqQRMA8xDTALBgNVBAMMBHQxODekETAPMQ0wCwYD -+VQQDDAR0MTg4pBEwDzENMAsGA1UEAwwEdDE4OaQRMA8xDTALBgNVBAMMBHQxOTCk -+ETAPMQ0wCwYDVQQDDAR0MTkxpBEwDzENMAsGA1UEAwwEdDE5MqQRMA8xDTALBgNV -+BAMMBHQxOTOkETAPMQ0wCwYDVQQDDAR0MTk0pBEwDzENMAsGA1UEAwwEdDE5NaQR -+MA8xDTALBgNVBAMMBHQxOTakETAPMQ0wCwYDVQQDDAR0MTk3pBEwDzENMAsGA1UE -+AwwEdDE5OKQRMA8xDTALBgNVBAMMBHQxOTmkETAPMQ0wCwYDVQQDDAR0MjAwpBEw -+DzENMAsGA1UEAwwEdDIwMaQRMA8xDTALBgNVBAMMBHQyMDKkETAPMQ0wCwYDVQQD -+DAR0MjAzpBEwDzENMAsGA1UEAwwEdDIwNKQRMA8xDTALBgNVBAMMBHQyMDWkETAP -+MQ0wCwYDVQQDDAR0MjA2pBEwDzENMAsGA1UEAwwEdDIwN6QRMA8xDTALBgNVBAMM -+BHQyMDikETAPMQ0wCwYDVQQDDAR0MjA5pBEwDzENMAsGA1UEAwwEdDIxMKQRMA8x -+DTALBgNVBAMMBHQyMTGkETAPMQ0wCwYDVQQDDAR0MjEypBEwDzENMAsGA1UEAwwE -+dDIxM6QRMA8xDTALBgNVBAMMBHQyMTSkETAPMQ0wCwYDVQQDDAR0MjE1pBEwDzEN -+MAsGA1UEAwwEdDIxNqQRMA8xDTALBgNVBAMMBHQyMTekETAPMQ0wCwYDVQQDDAR0 -+MjE4pBEwDzENMAsGA1UEAwwEdDIxOaQRMA8xDTALBgNVBAMMBHQyMjCkETAPMQ0w -+CwYDVQQDDAR0MjIxpBEwDzENMAsGA1UEAwwEdDIyMqQRMA8xDTALBgNVBAMMBHQy -+MjOkETAPMQ0wCwYDVQQDDAR0MjI0pBEwDzENMAsGA1UEAwwEdDIyNaQRMA8xDTAL -+BgNVBAMMBHQyMjakETAPMQ0wCwYDVQQDDAR0MjI3pBEwDzENMAsGA1UEAwwEdDIy -+OKQRMA8xDTALBgNVBAMMBHQyMjmkETAPMQ0wCwYDVQQDDAR0MjMwpBEwDzENMAsG -+A1UEAwwEdDIzMaQRMA8xDTALBgNVBAMMBHQyMzKkETAPMQ0wCwYDVQQDDAR0MjMz -+pBEwDzENMAsGA1UEAwwEdDIzNKQRMA8xDTALBgNVBAMMBHQyMzWkETAPMQ0wCwYD -+VQQDDAR0MjM2pBEwDzENMAsGA1UEAwwEdDIzN6QRMA8xDTALBgNVBAMMBHQyMzik -+ETAPMQ0wCwYDVQQDDAR0MjM5pBEwDzENMAsGA1UEAwwEdDI0MKQRMA8xDTALBgNV -+BAMMBHQyNDGkETAPMQ0wCwYDVQQDDAR0MjQypBEwDzENMAsGA1UEAwwEdDI0M6QR -+MA8xDTALBgNVBAMMBHQyNDSkETAPMQ0wCwYDVQQDDAR0MjQ1pBEwDzENMAsGA1UE -+AwwEdDI0NqQRMA8xDTALBgNVBAMMBHQyNDekETAPMQ0wCwYDVQQDDAR0MjQ4pBEw -+DzENMAsGA1UEAwwEdDI0OaQRMA8xDTALBgNVBAMMBHQyNTCkETAPMQ0wCwYDVQQD -+DAR0MjUxpBEwDzENMAsGA1UEAwwEdDI1MqQRMA8xDTALBgNVBAMMBHQyNTOkETAP -+MQ0wCwYDVQQDDAR0MjU0pBEwDzENMAsGA1UEAwwEdDI1NaQRMA8xDTALBgNVBAMM -+BHQyNTakETAPMQ0wCwYDVQQDDAR0MjU3pBEwDzENMAsGA1UEAwwEdDI1OKQRMA8x -+DTALBgNVBAMMBHQyNTmkETAPMQ0wCwYDVQQDDAR0MjYwpBEwDzENMAsGA1UEAwwE -+dDI2MaQRMA8xDTALBgNVBAMMBHQyNjKkETAPMQ0wCwYDVQQDDAR0MjYzpBEwDzEN -+MAsGA1UEAwwEdDI2NKQRMA8xDTALBgNVBAMMBHQyNjWkETAPMQ0wCwYDVQQDDAR0 -+MjY2pBEwDzENMAsGA1UEAwwEdDI2N6QRMA8xDTALBgNVBAMMBHQyNjikETAPMQ0w -+CwYDVQQDDAR0MjY5pBEwDzENMAsGA1UEAwwEdDI3MKQRMA8xDTALBgNVBAMMBHQy -+NzGkETAPMQ0wCwYDVQQDDAR0MjcypBEwDzENMAsGA1UEAwwEdDI3M6QRMA8xDTAL -+BgNVBAMMBHQyNzSkETAPMQ0wCwYDVQQDDAR0Mjc1pBEwDzENMAsGA1UEAwwEdDI3 -+NqQRMA8xDTALBgNVBAMMBHQyNzekETAPMQ0wCwYDVQQDDAR0Mjc4pBEwDzENMAsG -+A1UEAwwEdDI3OaQRMA8xDTALBgNVBAMMBHQyODCkETAPMQ0wCwYDVQQDDAR0Mjgx -+pBEwDzENMAsGA1UEAwwEdDI4MqQRMA8xDTALBgNVBAMMBHQyODOkETAPMQ0wCwYD -+VQQDDAR0Mjg0pBEwDzENMAsGA1UEAwwEdDI4NaQRMA8xDTALBgNVBAMMBHQyODak -+ETAPMQ0wCwYDVQQDDAR0Mjg3pBEwDzENMAsGA1UEAwwEdDI4OKQRMA8xDTALBgNV -+BAMMBHQyODmkETAPMQ0wCwYDVQQDDAR0MjkwpBEwDzENMAsGA1UEAwwEdDI5MaQR -+MA8xDTALBgNVBAMMBHQyOTKkETAPMQ0wCwYDVQQDDAR0MjkzpBEwDzENMAsGA1UE -+AwwEdDI5NKQRMA8xDTALBgNVBAMMBHQyOTWkETAPMQ0wCwYDVQQDDAR0Mjk2pBEw -+DzENMAsGA1UEAwwEdDI5N6QRMA8xDTALBgNVBAMMBHQyOTikETAPMQ0wCwYDVQQD -+DAR0Mjk5pBEwDzENMAsGA1UEAwwEdDMwMKQRMA8xDTALBgNVBAMMBHQzMDGkETAP -+MQ0wCwYDVQQDDAR0MzAypBEwDzENMAsGA1UEAwwEdDMwM6QRMA8xDTALBgNVBAMM -+BHQzMDSkETAPMQ0wCwYDVQQDDAR0MzA1pBEwDzENMAsGA1UEAwwEdDMwNqQRMA8x -+DTALBgNVBAMMBHQzMDekETAPMQ0wCwYDVQQDDAR0MzA4pBEwDzENMAsGA1UEAwwE -+dDMwOaQRMA8xDTALBgNVBAMMBHQzMTCkETAPMQ0wCwYDVQQDDAR0MzExpBEwDzEN -+MAsGA1UEAwwEdDMxMqQRMA8xDTALBgNVBAMMBHQzMTOkETAPMQ0wCwYDVQQDDAR0 -+MzE0pBEwDzENMAsGA1UEAwwEdDMxNaQRMA8xDTALBgNVBAMMBHQzMTakETAPMQ0w -+CwYDVQQDDAR0MzE3pBEwDzENMAsGA1UEAwwEdDMxOKQRMA8xDTALBgNVBAMMBHQz -+MTmkETAPMQ0wCwYDVQQDDAR0MzIwpBEwDzENMAsGA1UEAwwEdDMyMaQRMA8xDTAL -+BgNVBAMMBHQzMjKkETAPMQ0wCwYDVQQDDAR0MzIzpBEwDzENMAsGA1UEAwwEdDMy -+NKQRMA8xDTALBgNVBAMMBHQzMjWkETAPMQ0wCwYDVQQDDAR0MzI2pBEwDzENMAsG -+A1UEAwwEdDMyN6QRMA8xDTALBgNVBAMMBHQzMjikETAPMQ0wCwYDVQQDDAR0MzI5 -+pBEwDzENMAsGA1UEAwwEdDMzMKQRMA8xDTALBgNVBAMMBHQzMzGkETAPMQ0wCwYD -+VQQDDAR0MzMypBEwDzENMAsGA1UEAwwEdDMzM6QRMA8xDTALBgNVBAMMBHQzMzSk -+ETAPMQ0wCwYDVQQDDAR0MzM1pBEwDzENMAsGA1UEAwwEdDMzNqQRMA8xDTALBgNV -+BAMMBHQzMzekETAPMQ0wCwYDVQQDDAR0MzM4pBEwDzENMAsGA1UEAwwEdDMzOaQR -+MA8xDTALBgNVBAMMBHQzNDAwDQYJKoZIhvcNAQELBQADggEBAJDCV/aS6cdYTrW9 -+ESYz3bk9wh5tayF0BIUiHtIbCfuZJNjm7RxVFDS3GU7yzDcus9MmlvJtiNaNsnsa -+b+tm8dnzo0+wdlHSHOawrg8oOL/GlNV2cQ/2EZXIBya+gapVTRcXNpC7wrhAcqLP -+D9NVsWVQZ8hXS1S9W0J/1LRGDv6d8OuplsJTzrX7cTzaUTeUx3se1lvBG9quCbHa -+0C0nrkbGXtByy+App8hA6BiUJq3YUSFDJPb5pJ7xV9FLPnRxl4/eCS3ThbF5qJ3Q -+bDWQqGIv+0WsxVtczOpyBbAveTZW8nVbtDCMDJ/86Np+LN38XvwjBMFTMafizhgQ -+KLjUYI4= - -----END CERTIFICATE----- - - Certificate: -@@ -410,7 +353,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f7 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -631,253 +574,6 @@ Certificate: - DNS:t169.test - DNS:t170.test - DNS:t171.test -- DNS:t172.test -- DNS:t173.test -- DNS:t174.test -- DNS:t175.test -- DNS:t176.test -- DNS:t177.test -- DNS:t178.test -- DNS:t179.test -- DNS:t180.test -- DNS:t181.test -- DNS:t182.test -- DNS:t183.test -- DNS:t184.test -- DNS:t185.test -- DNS:t186.test -- DNS:t187.test -- DNS:t188.test -- DNS:t189.test -- DNS:t190.test -- DNS:t191.test -- DNS:t192.test -- DNS:t193.test -- DNS:t194.test -- DNS:t195.test -- DNS:t196.test -- DNS:t197.test -- DNS:t198.test -- DNS:t199.test -- DNS:t200.test -- DNS:t201.test -- DNS:t202.test -- DNS:t203.test -- DNS:t204.test -- DNS:t205.test -- DNS:t206.test -- DNS:t207.test -- DNS:t208.test -- DNS:t209.test -- DNS:t210.test -- DNS:t211.test -- DNS:t212.test -- DNS:t213.test -- DNS:t214.test -- DNS:t215.test -- DNS:t216.test -- DNS:t217.test -- DNS:t218.test -- DNS:t219.test -- DNS:t220.test -- DNS:t221.test -- DNS:t222.test -- DNS:t223.test -- DNS:t224.test -- DNS:t225.test -- DNS:t226.test -- DNS:t227.test -- DNS:t228.test -- DNS:t229.test -- DNS:t230.test -- DNS:t231.test -- DNS:t232.test -- DNS:t233.test -- DNS:t234.test -- DNS:t235.test -- DNS:t236.test -- DNS:t237.test -- DNS:t238.test -- DNS:t239.test -- DNS:t240.test -- DNS:t241.test -- DNS:t242.test -- DNS:t243.test -- DNS:t244.test -- DNS:t245.test -- DNS:t246.test -- DNS:t247.test -- DNS:t248.test -- DNS:t249.test -- DNS:t250.test -- DNS:t251.test -- DNS:t252.test -- DNS:t253.test -- DNS:t254.test -- DNS:t255.test -- DNS:t256.test -- DNS:t257.test -- DNS:t258.test -- DNS:t259.test -- DNS:t260.test -- DNS:t261.test -- DNS:t262.test -- DNS:t263.test -- DNS:t264.test -- DNS:t265.test -- DNS:t266.test -- DNS:t267.test -- DNS:t268.test -- DNS:t269.test -- DNS:t270.test -- DNS:t271.test -- DNS:t272.test -- DNS:t273.test -- DNS:t274.test -- DNS:t275.test -- DNS:t276.test -- DNS:t277.test -- DNS:t278.test -- DNS:t279.test -- DNS:t280.test -- DNS:t281.test -- DNS:t282.test -- DNS:t283.test -- DNS:t284.test -- DNS:t285.test -- DNS:t286.test -- DNS:t287.test -- DNS:t288.test -- DNS:t289.test -- DNS:t290.test -- DNS:t291.test -- DNS:t292.test -- DNS:t293.test -- DNS:t294.test -- DNS:t295.test -- DNS:t296.test -- DNS:t297.test -- DNS:t298.test -- DNS:t299.test -- DNS:t300.test -- DNS:t301.test -- DNS:t302.test -- DNS:t303.test -- DNS:t304.test -- DNS:t305.test -- DNS:t306.test -- DNS:t307.test -- DNS:t308.test -- DNS:t309.test -- DNS:t310.test -- DNS:t311.test -- DNS:t312.test -- DNS:t313.test -- DNS:t314.test -- DNS:t315.test -- DNS:t316.test -- DNS:t317.test -- DNS:t318.test -- DNS:t319.test -- DNS:t320.test -- DNS:t321.test -- DNS:t322.test -- DNS:t323.test -- DNS:t324.test -- DNS:t325.test -- DNS:t326.test -- DNS:t327.test -- DNS:t328.test -- DNS:t329.test -- DNS:t330.test -- DNS:t331.test -- DNS:t332.test -- DNS:t333.test -- DNS:t334.test -- DNS:t335.test -- DNS:t336.test -- DNS:t337.test -- DNS:t338.test -- DNS:t339.test -- DNS:t340.test -- DNS:t341.test -- DNS:t342.test -- DNS:t343.test -- DNS:t344.test -- DNS:t345.test -- DNS:t346.test -- DNS:t347.test -- DNS:t348.test -- DNS:t349.test -- DNS:t350.test -- DNS:t351.test -- DNS:t352.test -- DNS:t353.test -- DNS:t354.test -- DNS:t355.test -- DNS:t356.test -- DNS:t357.test -- DNS:t358.test -- DNS:t359.test -- DNS:t360.test -- DNS:t361.test -- DNS:t362.test -- DNS:t363.test -- DNS:t364.test -- DNS:t365.test -- DNS:t366.test -- DNS:t367.test -- DNS:t368.test -- DNS:t369.test -- DNS:t370.test -- DNS:t371.test -- DNS:t372.test -- DNS:t373.test -- DNS:t374.test -- DNS:t375.test -- DNS:t376.test -- DNS:t377.test -- DNS:t378.test -- DNS:t379.test -- DNS:t380.test -- DNS:t381.test -- DNS:t382.test -- DNS:t383.test -- DNS:t384.test -- DNS:t385.test -- DNS:t386.test -- DNS:t387.test -- DNS:t388.test -- DNS:t389.test -- DNS:t390.test -- DNS:t391.test -- DNS:t392.test -- DNS:t393.test -- DNS:t394.test -- DNS:t395.test -- DNS:t396.test -- DNS:t397.test -- DNS:t398.test -- DNS:t399.test -- DNS:t400.test -- DNS:t401.test -- DNS:t402.test -- DNS:t403.test -- DNS:t404.test -- DNS:t405.test -- DNS:t406.test -- DNS:t407.test -- DNS:t408.test -- DNS:t409.test -- DNS:t410.test -- DNS:t411.test -- DNS:t412.test -- DNS:t413.test -- DNS:t414.test -- DNS:t415.test -- DNS:t416.test -- DNS:t417.test -- DNS:t418.test - IP:10.0.0.0/255.255.255.255 - IP:10.0.0.1/255.255.255.255 - IP:10.0.0.2/255.255.255.255 -@@ -1049,673 +745,178 @@ Certificate: - IP:10.0.0.168/255.255.255.255 - IP:10.0.0.169/255.255.255.255 - IP:10.0.0.170/255.255.255.255 -- IP:10.0.0.171/255.255.255.255 -- IP:10.0.0.172/255.255.255.255 -- IP:10.0.0.173/255.255.255.255 -- IP:10.0.0.174/255.255.255.255 -- IP:10.0.0.175/255.255.255.255 -- IP:10.0.0.176/255.255.255.255 -- IP:10.0.0.177/255.255.255.255 -- IP:10.0.0.178/255.255.255.255 -- IP:10.0.0.179/255.255.255.255 -- IP:10.0.0.180/255.255.255.255 -- IP:10.0.0.181/255.255.255.255 -- IP:10.0.0.182/255.255.255.255 -- IP:10.0.0.183/255.255.255.255 -- IP:10.0.0.184/255.255.255.255 -- IP:10.0.0.185/255.255.255.255 -- IP:10.0.0.186/255.255.255.255 -- IP:10.0.0.187/255.255.255.255 -- IP:10.0.0.188/255.255.255.255 -- IP:10.0.0.189/255.255.255.255 -- IP:10.0.0.190/255.255.255.255 -- IP:10.0.0.191/255.255.255.255 -- IP:10.0.0.192/255.255.255.255 -- IP:10.0.0.193/255.255.255.255 -- IP:10.0.0.194/255.255.255.255 -- IP:10.0.0.195/255.255.255.255 -- IP:10.0.0.196/255.255.255.255 -- IP:10.0.0.197/255.255.255.255 -- IP:10.0.0.198/255.255.255.255 -- IP:10.0.0.199/255.255.255.255 -- IP:10.0.0.200/255.255.255.255 -- IP:10.0.0.201/255.255.255.255 -- IP:10.0.0.202/255.255.255.255 -- IP:10.0.0.203/255.255.255.255 -- IP:10.0.0.204/255.255.255.255 -- IP:10.0.0.205/255.255.255.255 -- IP:10.0.0.206/255.255.255.255 -- IP:10.0.0.207/255.255.255.255 -- IP:10.0.0.208/255.255.255.255 -- IP:10.0.0.209/255.255.255.255 -- IP:10.0.0.210/255.255.255.255 -- IP:10.0.0.211/255.255.255.255 -- IP:10.0.0.212/255.255.255.255 -- IP:10.0.0.213/255.255.255.255 -- IP:10.0.0.214/255.255.255.255 -- IP:10.0.0.215/255.255.255.255 -- IP:10.0.0.216/255.255.255.255 -- IP:10.0.0.217/255.255.255.255 -- IP:10.0.0.218/255.255.255.255 -- IP:10.0.0.219/255.255.255.255 -- IP:10.0.0.220/255.255.255.255 -- IP:10.0.0.221/255.255.255.255 -- IP:10.0.0.222/255.255.255.255 -- IP:10.0.0.223/255.255.255.255 -- IP:10.0.0.224/255.255.255.255 -- IP:10.0.0.225/255.255.255.255 -- IP:10.0.0.226/255.255.255.255 -- IP:10.0.0.227/255.255.255.255 -- IP:10.0.0.228/255.255.255.255 -- IP:10.0.0.229/255.255.255.255 -- IP:10.0.0.230/255.255.255.255 -- IP:10.0.0.231/255.255.255.255 -- IP:10.0.0.232/255.255.255.255 -- IP:10.0.0.233/255.255.255.255 -- IP:10.0.0.234/255.255.255.255 -- IP:10.0.0.235/255.255.255.255 -- IP:10.0.0.236/255.255.255.255 -- IP:10.0.0.237/255.255.255.255 -- IP:10.0.0.238/255.255.255.255 -- IP:10.0.0.239/255.255.255.255 -- IP:10.0.0.240/255.255.255.255 -- IP:10.0.0.241/255.255.255.255 -- IP:10.0.0.242/255.255.255.255 -- IP:10.0.0.243/255.255.255.255 -- IP:10.0.0.244/255.255.255.255 -- IP:10.0.0.245/255.255.255.255 -- IP:10.0.0.246/255.255.255.255 -- IP:10.0.0.247/255.255.255.255 -- IP:10.0.0.248/255.255.255.255 -- IP:10.0.0.249/255.255.255.255 -- IP:10.0.0.250/255.255.255.255 -- IP:10.0.0.251/255.255.255.255 -- IP:10.0.0.252/255.255.255.255 -- IP:10.0.0.253/255.255.255.255 -- IP:10.0.0.254/255.255.255.255 -- IP:10.0.0.255/255.255.255.255 -- IP:10.0.1.0/255.255.255.255 -- IP:10.0.1.1/255.255.255.255 -- IP:10.0.1.2/255.255.255.255 -- IP:10.0.1.3/255.255.255.255 -- IP:10.0.1.4/255.255.255.255 -- IP:10.0.1.5/255.255.255.255 -- IP:10.0.1.6/255.255.255.255 -- IP:10.0.1.7/255.255.255.255 -- IP:10.0.1.8/255.255.255.255 -- IP:10.0.1.9/255.255.255.255 -- IP:10.0.1.10/255.255.255.255 -- IP:10.0.1.11/255.255.255.255 -- IP:10.0.1.12/255.255.255.255 -- IP:10.0.1.13/255.255.255.255 -- IP:10.0.1.14/255.255.255.255 -- IP:10.0.1.15/255.255.255.255 -- IP:10.0.1.16/255.255.255.255 -- IP:10.0.1.17/255.255.255.255 -- IP:10.0.1.18/255.255.255.255 -- IP:10.0.1.19/255.255.255.255 -- IP:10.0.1.20/255.255.255.255 -- IP:10.0.1.21/255.255.255.255 -- IP:10.0.1.22/255.255.255.255 -- IP:10.0.1.23/255.255.255.255 -- IP:10.0.1.24/255.255.255.255 -- IP:10.0.1.25/255.255.255.255 -- IP:10.0.1.26/255.255.255.255 -- IP:10.0.1.27/255.255.255.255 -- IP:10.0.1.28/255.255.255.255 -- IP:10.0.1.29/255.255.255.255 -- IP:10.0.1.30/255.255.255.255 -- IP:10.0.1.31/255.255.255.255 -- IP:10.0.1.32/255.255.255.255 -- IP:10.0.1.33/255.255.255.255 -- IP:10.0.1.34/255.255.255.255 -- IP:10.0.1.35/255.255.255.255 -- IP:10.0.1.36/255.255.255.255 -- IP:10.0.1.37/255.255.255.255 -- IP:10.0.1.38/255.255.255.255 -- IP:10.0.1.39/255.255.255.255 -- IP:10.0.1.40/255.255.255.255 -- IP:10.0.1.41/255.255.255.255 -- IP:10.0.1.42/255.255.255.255 -- IP:10.0.1.43/255.255.255.255 -- IP:10.0.1.44/255.255.255.255 -- IP:10.0.1.45/255.255.255.255 -- IP:10.0.1.46/255.255.255.255 -- IP:10.0.1.47/255.255.255.255 -- IP:10.0.1.48/255.255.255.255 -- IP:10.0.1.49/255.255.255.255 -- IP:10.0.1.50/255.255.255.255 -- IP:10.0.1.51/255.255.255.255 -- IP:10.0.1.52/255.255.255.255 -- IP:10.0.1.53/255.255.255.255 -- IP:10.0.1.54/255.255.255.255 -- IP:10.0.1.55/255.255.255.255 -- IP:10.0.1.56/255.255.255.255 -- IP:10.0.1.57/255.255.255.255 -- IP:10.0.1.58/255.255.255.255 -- IP:10.0.1.59/255.255.255.255 -- IP:10.0.1.60/255.255.255.255 -- IP:10.0.1.61/255.255.255.255 -- IP:10.0.1.62/255.255.255.255 -- IP:10.0.1.63/255.255.255.255 -- IP:10.0.1.64/255.255.255.255 -- IP:10.0.1.65/255.255.255.255 -- IP:10.0.1.66/255.255.255.255 -- IP:10.0.1.67/255.255.255.255 -- IP:10.0.1.68/255.255.255.255 -- IP:10.0.1.69/255.255.255.255 -- IP:10.0.1.70/255.255.255.255 -- IP:10.0.1.71/255.255.255.255 -- IP:10.0.1.72/255.255.255.255 -- IP:10.0.1.73/255.255.255.255 -- IP:10.0.1.74/255.255.255.255 -- IP:10.0.1.75/255.255.255.255 -- IP:10.0.1.76/255.255.255.255 -- IP:10.0.1.77/255.255.255.255 -- IP:10.0.1.78/255.255.255.255 -- IP:10.0.1.79/255.255.255.255 -- IP:10.0.1.80/255.255.255.255 -- IP:10.0.1.81/255.255.255.255 -- IP:10.0.1.82/255.255.255.255 -- IP:10.0.1.83/255.255.255.255 -- IP:10.0.1.84/255.255.255.255 -- IP:10.0.1.85/255.255.255.255 -- IP:10.0.1.86/255.255.255.255 -- IP:10.0.1.87/255.255.255.255 -- IP:10.0.1.88/255.255.255.255 -- IP:10.0.1.89/255.255.255.255 -- IP:10.0.1.90/255.255.255.255 -- IP:10.0.1.91/255.255.255.255 -- IP:10.0.1.92/255.255.255.255 -- IP:10.0.1.93/255.255.255.255 -- IP:10.0.1.94/255.255.255.255 -- IP:10.0.1.95/255.255.255.255 -- IP:10.0.1.96/255.255.255.255 -- IP:10.0.1.97/255.255.255.255 -- IP:10.0.1.98/255.255.255.255 -- IP:10.0.1.99/255.255.255.255 -- IP:10.0.1.100/255.255.255.255 -- IP:10.0.1.101/255.255.255.255 -- IP:10.0.1.102/255.255.255.255 -- IP:10.0.1.103/255.255.255.255 -- IP:10.0.1.104/255.255.255.255 -- IP:10.0.1.105/255.255.255.255 -- IP:10.0.1.106/255.255.255.255 -- IP:10.0.1.107/255.255.255.255 -- IP:10.0.1.108/255.255.255.255 -- IP:10.0.1.109/255.255.255.255 -- IP:10.0.1.110/255.255.255.255 -- IP:10.0.1.111/255.255.255.255 -- IP:10.0.1.112/255.255.255.255 -- IP:10.0.1.113/255.255.255.255 -- IP:10.0.1.114/255.255.255.255 -- IP:10.0.1.115/255.255.255.255 -- IP:10.0.1.116/255.255.255.255 -- IP:10.0.1.117/255.255.255.255 -- IP:10.0.1.118/255.255.255.255 -- IP:10.0.1.119/255.255.255.255 -- IP:10.0.1.120/255.255.255.255 -- IP:10.0.1.121/255.255.255.255 -- IP:10.0.1.122/255.255.255.255 -- IP:10.0.1.123/255.255.255.255 -- IP:10.0.1.124/255.255.255.255 -- IP:10.0.1.125/255.255.255.255 -- IP:10.0.1.126/255.255.255.255 -- IP:10.0.1.127/255.255.255.255 -- IP:10.0.1.128/255.255.255.255 -- IP:10.0.1.129/255.255.255.255 -- IP:10.0.1.130/255.255.255.255 -- IP:10.0.1.131/255.255.255.255 -- IP:10.0.1.132/255.255.255.255 -- IP:10.0.1.133/255.255.255.255 -- IP:10.0.1.134/255.255.255.255 -- IP:10.0.1.135/255.255.255.255 -- IP:10.0.1.136/255.255.255.255 -- IP:10.0.1.137/255.255.255.255 -- IP:10.0.1.138/255.255.255.255 -- IP:10.0.1.139/255.255.255.255 -- IP:10.0.1.140/255.255.255.255 -- IP:10.0.1.141/255.255.255.255 -- IP:10.0.1.142/255.255.255.255 -- IP:10.0.1.143/255.255.255.255 -- IP:10.0.1.144/255.255.255.255 -- IP:10.0.1.145/255.255.255.255 -- IP:10.0.1.146/255.255.255.255 -- IP:10.0.1.147/255.255.255.255 -- IP:10.0.1.148/255.255.255.255 -- IP:10.0.1.149/255.255.255.255 -- IP:10.0.1.150/255.255.255.255 -- IP:10.0.1.151/255.255.255.255 -- IP:10.0.1.152/255.255.255.255 -- IP:10.0.1.153/255.255.255.255 -- IP:10.0.1.154/255.255.255.255 -- IP:10.0.1.155/255.255.255.255 -- IP:10.0.1.156/255.255.255.255 -- IP:10.0.1.157/255.255.255.255 -- IP:10.0.1.158/255.255.255.255 -- IP:10.0.1.159/255.255.255.255 -- IP:10.0.1.160/255.255.255.255 -- IP:10.0.1.161/255.255.255.255 -- IP:10.0.1.162/255.255.255.255 -- DirName:CN = t0 -- DirName:CN = t1 -- DirName:CN = t2 -- DirName:CN = t3 -- DirName:CN = t4 -- DirName:CN = t5 -- DirName:CN = t6 -- DirName:CN = t7 -- DirName:CN = t8 -- DirName:CN = t9 -- DirName:CN = t10 -- DirName:CN = t11 -- DirName:CN = t12 -- DirName:CN = t13 -- DirName:CN = t14 -- DirName:CN = t15 -- DirName:CN = t16 -- DirName:CN = t17 -- DirName:CN = t18 -- DirName:CN = t19 -- DirName:CN = t20 -- DirName:CN = t21 -- DirName:CN = t22 -- DirName:CN = t23 -- DirName:CN = t24 -- DirName:CN = t25 -- DirName:CN = t26 -- DirName:CN = t27 -- DirName:CN = t28 -- DirName:CN = t29 -- DirName:CN = t30 -- DirName:CN = t31 -- DirName:CN = t32 -- DirName:CN = t33 -- DirName:CN = t34 -- DirName:CN = t35 -- DirName:CN = t36 -- DirName:CN = t37 -- DirName:CN = t38 -- DirName:CN = t39 -- DirName:CN = t40 -- DirName:CN = t41 -- DirName:CN = t42 -- DirName:CN = t43 -- DirName:CN = t44 -- DirName:CN = t45 -- DirName:CN = t46 -- DirName:CN = t47 -- DirName:CN = t48 -- DirName:CN = t49 -- DirName:CN = t50 -- DirName:CN = t51 -- DirName:CN = t52 -- DirName:CN = t53 -- DirName:CN = t54 -- DirName:CN = t55 -- DirName:CN = t56 -- DirName:CN = t57 -- DirName:CN = t58 -- DirName:CN = t59 -- DirName:CN = t60 -- DirName:CN = t61 -- DirName:CN = t62 -- DirName:CN = t63 -- DirName:CN = t64 -- DirName:CN = t65 -- DirName:CN = t66 -- DirName:CN = t67 -- DirName:CN = t68 -- DirName:CN = t69 -- DirName:CN = t70 -- DirName:CN = t71 -- DirName:CN = t72 -- DirName:CN = t73 -- DirName:CN = t74 -- DirName:CN = t75 -- DirName:CN = t76 -- DirName:CN = t77 -- DirName:CN = t78 -- DirName:CN = t79 -- DirName:CN = t80 -- DirName:CN = t81 -- DirName:CN = t82 -- DirName:CN = t83 -- DirName:CN = t84 -- DirName:CN = t85 -- DirName:CN = t86 -- DirName:CN = t87 -- DirName:CN = t88 -- DirName:CN = t89 -- DirName:CN = t90 -- DirName:CN = t91 -- DirName:CN = t92 -- DirName:CN = t93 -- DirName:CN = t94 -- DirName:CN = t95 -- DirName:CN = t96 -- DirName:CN = t97 -- DirName:CN = t98 -- DirName:CN = t99 -- DirName:CN = t100 -- DirName:CN = t101 -- DirName:CN = t102 -- DirName:CN = t103 -- DirName:CN = t104 -- DirName:CN = t105 -- DirName:CN = t106 -- DirName:CN = t107 -- DirName:CN = t108 -- DirName:CN = t109 -- DirName:CN = t110 -- DirName:CN = t111 -- DirName:CN = t112 -- DirName:CN = t113 -- DirName:CN = t114 -- DirName:CN = t115 -- DirName:CN = t116 -- DirName:CN = t117 -- DirName:CN = t118 -- DirName:CN = t119 -- DirName:CN = t120 -- DirName:CN = t121 -- DirName:CN = t122 -- DirName:CN = t123 -- DirName:CN = t124 -- DirName:CN = t125 -- DirName:CN = t126 -- DirName:CN = t127 -- DirName:CN = t128 -- DirName:CN = t129 -- DirName:CN = t130 -- DirName:CN = t131 -- DirName:CN = t132 -- DirName:CN = t133 -- DirName:CN = t134 -- DirName:CN = t135 -- DirName:CN = t136 -- DirName:CN = t137 -- DirName:CN = t138 -- DirName:CN = t139 -- DirName:CN = t140 -- DirName:CN = t141 -- DirName:CN = t142 -- DirName:CN = t143 -- DirName:CN = t144 -- DirName:CN = t145 -- DirName:CN = t146 -- DirName:CN = t147 -- DirName:CN = t148 -- DirName:CN = t149 -- DirName:CN = t150 -- DirName:CN = t151 -- DirName:CN = t152 -- DirName:CN = t153 -- DirName:CN = t154 -- DirName:CN = t155 -- DirName:CN = t156 -- DirName:CN = t157 -- DirName:CN = t158 -- DirName:CN = t159 -- DirName:CN = t160 -- DirName:CN = t161 -- DirName:CN = t162 -- DirName:CN = t163 -- DirName:CN = t164 -- DirName:CN = t165 -- DirName:CN = t166 -- DirName:CN = t167 -- DirName:CN = t168 -- DirName:CN = t169 -- DirName:CN = t170 -- DirName:CN = t171 -- DirName:CN = t172 -- DirName:CN = t173 -- DirName:CN = t174 -- DirName:CN = t175 -- DirName:CN = t176 -- DirName:CN = t177 -- DirName:CN = t178 -- DirName:CN = t179 -- DirName:CN = t180 -- DirName:CN = t181 -- DirName:CN = t182 -- DirName:CN = t183 -- DirName:CN = t184 -- DirName:CN = t185 -- DirName:CN = t186 -- DirName:CN = t187 -- DirName:CN = t188 -- DirName:CN = t189 -- DirName:CN = t190 -- DirName:CN = t191 -- DirName:CN = t192 -- DirName:CN = t193 -- DirName:CN = t194 -- DirName:CN = t195 -- DirName:CN = t196 -- DirName:CN = t197 -- DirName:CN = t198 -- DirName:CN = t199 -- DirName:CN = t200 -- DirName:CN = t201 -- DirName:CN = t202 -- DirName:CN = t203 -- DirName:CN = t204 -- DirName:CN = t205 -- DirName:CN = t206 -- DirName:CN = t207 -- DirName:CN = t208 -- DirName:CN = t209 -- DirName:CN = t210 -- DirName:CN = t211 -- DirName:CN = t212 -- DirName:CN = t213 -- DirName:CN = t214 -- DirName:CN = t215 -- DirName:CN = t216 -- DirName:CN = t217 -- DirName:CN = t218 -- DirName:CN = t219 -- DirName:CN = t220 -- DirName:CN = t221 -- DirName:CN = t222 -- DirName:CN = t223 -- DirName:CN = t224 -- DirName:CN = t225 -- DirName:CN = t226 -- DirName:CN = t227 -- DirName:CN = t228 -- DirName:CN = t229 -- DirName:CN = t230 -- DirName:CN = t231 -- DirName:CN = t232 -- DirName:CN = t233 -- DirName:CN = t234 -- DirName:CN = t235 -- DirName:CN = t236 -- DirName:CN = t237 -- DirName:CN = t238 -- DirName:CN = t239 -- DirName:CN = t240 -- DirName:CN = t241 -- DirName:CN = t242 -- DirName:CN = t243 -- DirName:CN = t244 -- DirName:CN = t245 -- DirName:CN = t246 -- DirName:CN = t247 -- DirName:CN = t248 -- DirName:CN = t249 -- DirName:CN = t250 -- DirName:CN = t251 -- DirName:CN = t252 -- DirName:CN = t253 -- DirName:CN = t254 -- DirName:CN = t255 -- DirName:CN = t256 -- DirName:CN = t257 -- DirName:CN = t258 -- DirName:CN = t259 -- DirName:CN = t260 -- DirName:CN = t261 -- DirName:CN = t262 -- DirName:CN = t263 -- DirName:CN = t264 -- DirName:CN = t265 -- DirName:CN = t266 -- DirName:CN = t267 -- DirName:CN = t268 -- DirName:CN = t269 -- DirName:CN = t270 -- DirName:CN = t271 -- DirName:CN = t272 -- DirName:CN = t273 -- DirName:CN = t274 -- DirName:CN = t275 -- DirName:CN = t276 -- DirName:CN = t277 -- DirName:CN = t278 -- DirName:CN = t279 -- DirName:CN = t280 -- DirName:CN = t281 -- DirName:CN = t282 -- DirName:CN = t283 -- DirName:CN = t284 -- DirName:CN = t285 -- DirName:CN = t286 -- DirName:CN = t287 -- DirName:CN = t288 -- DirName:CN = t289 -- DirName:CN = t290 -- DirName:CN = t291 -- DirName:CN = t292 -- DirName:CN = t293 -- DirName:CN = t294 -- DirName:CN = t295 -- DirName:CN = t296 -- DirName:CN = t297 -- DirName:CN = t298 -- DirName:CN = t299 -- DirName:CN = t300 -- DirName:CN = t301 -- DirName:CN = t302 -- DirName:CN = t303 -- DirName:CN = t304 -- DirName:CN = t305 -- DirName:CN = t306 -- DirName:CN = t307 -- DirName:CN = t308 -- DirName:CN = t309 -- DirName:CN = t310 -- DirName:CN = t311 -- DirName:CN = t312 -- DirName:CN = t313 -- DirName:CN = t314 -- DirName:CN = t315 -- DirName:CN = t316 -- DirName:CN = t317 -- DirName:CN = t318 -- DirName:CN = t319 -- DirName:CN = t320 -- DirName:CN = t321 -- DirName:CN = t322 -- DirName:CN = t323 -- DirName:CN = t324 -- DirName:CN = t325 -- DirName:CN = t326 -- DirName:CN = t327 -- DirName:CN = t328 -- DirName:CN = t329 -- DirName:CN = t330 -- DirName:CN = t331 -- DirName:CN = t332 -- DirName:CN = t333 -- DirName:CN = t334 -- DirName:CN = t335 -- DirName:CN = t336 -- DirName:CN = t337 -- DirName:CN = t338 -- DirName:CN = t339 -- DirName:CN = t340 -- DirName:CN = t341 -- DirName:CN = t342 -- DirName:CN = t343 -- DirName:CN = t344 -- DirName:CN = t345 -- DirName:CN = t346 -- DirName:CN = t347 -- DirName:CN = t348 -- DirName:CN = t349 -- DirName:CN = t350 -- DirName:CN = t351 -- DirName:CN = t352 -- DirName:CN = t353 -- DirName:CN = t354 -- DirName:CN = t355 -- DirName:CN = t356 -- DirName:CN = t357 -- DirName:CN = t358 -- DirName:CN = t359 -- DirName:CN = t360 -- DirName:CN = t361 -- DirName:CN = t362 -- DirName:CN = t363 -- DirName:CN = t364 -- DirName:CN = t365 -- DirName:CN = t366 -- DirName:CN = t367 -- DirName:CN = t368 -- DirName:CN = t369 -- DirName:CN = t370 -- DirName:CN = t371 -- DirName:CN = t372 -- DirName:CN = t373 -- DirName:CN = t374 -- DirName:CN = t375 -- DirName:CN = t376 -- DirName:CN = t377 -- DirName:CN = t378 -- DirName:CN = t379 -- DirName:CN = t380 -- DirName:CN = t381 -- DirName:CN = t382 -- DirName:CN = t383 -- DirName:CN = t384 -- DirName:CN = t385 -- DirName:CN = t386 -- DirName:CN = t387 -- DirName:CN = t388 -- DirName:CN = t389 -- DirName:CN = t390 -- DirName:CN = t391 -- DirName:CN = t392 -- DirName:CN = t393 -- DirName:CN = t394 -- DirName:CN = t395 -- DirName:CN = t396 -- DirName:CN = t397 -- DirName:CN = t398 -- DirName:CN = t399 -- DirName:CN = t400 -- DirName:CN = t401 -- DirName:CN = t402 -- DirName:CN = t403 -- DirName:CN = t404 -- DirName:CN = t405 -- DirName:CN = t406 -- DirName:CN = t407 -- DirName:CN = t408 -- DirName:CN = t409 -- DirName:CN = t410 -- DirName:CN = t411 -- DirName:CN = t412 -- DirName:CN = t413 -- DirName:CN = t414 -- DirName:CN = t415 -- DirName:CN = t416 -- DirName:CN = t417 -- DirName:CN = t418 -+ DirName: CN = t0 -+ DirName: CN = t1 -+ DirName: CN = t2 -+ DirName: CN = t3 -+ DirName: CN = t4 -+ DirName: CN = t5 -+ DirName: CN = t6 -+ DirName: CN = t7 -+ DirName: CN = t8 -+ DirName: CN = t9 -+ DirName: CN = t10 -+ DirName: CN = t11 -+ DirName: CN = t12 -+ DirName: CN = t13 -+ DirName: CN = t14 -+ DirName: CN = t15 -+ DirName: CN = t16 -+ DirName: CN = t17 -+ DirName: CN = t18 -+ DirName: CN = t19 -+ DirName: CN = t20 -+ DirName: CN = t21 -+ DirName: CN = t22 -+ DirName: CN = t23 -+ DirName: CN = t24 -+ DirName: CN = t25 -+ DirName: CN = t26 -+ DirName: CN = t27 -+ DirName: CN = t28 -+ DirName: CN = t29 -+ DirName: CN = t30 -+ DirName: CN = t31 -+ DirName: CN = t32 -+ DirName: CN = t33 -+ DirName: CN = t34 -+ DirName: CN = t35 -+ DirName: CN = t36 -+ DirName: CN = t37 -+ DirName: CN = t38 -+ DirName: CN = t39 -+ DirName: CN = t40 -+ DirName: CN = t41 -+ DirName: CN = t42 -+ DirName: CN = t43 -+ DirName: CN = t44 -+ DirName: CN = t45 -+ DirName: CN = t46 -+ DirName: CN = t47 -+ DirName: CN = t48 -+ DirName: CN = t49 -+ DirName: CN = t50 -+ DirName: CN = t51 -+ DirName: CN = t52 -+ DirName: CN = t53 -+ DirName: CN = t54 -+ DirName: CN = t55 -+ DirName: CN = t56 -+ DirName: CN = t57 -+ DirName: CN = t58 -+ DirName: CN = t59 -+ DirName: CN = t60 -+ DirName: CN = t61 -+ DirName: CN = t62 -+ DirName: CN = t63 -+ DirName: CN = t64 -+ DirName: CN = t65 -+ DirName: CN = t66 -+ DirName: CN = t67 -+ DirName: CN = t68 -+ DirName: CN = t69 -+ DirName: CN = t70 -+ DirName: CN = t71 -+ DirName: CN = t72 -+ DirName: CN = t73 -+ DirName: CN = t74 -+ DirName: CN = t75 -+ DirName: CN = t76 -+ DirName: CN = t77 -+ DirName: CN = t78 -+ DirName: CN = t79 -+ DirName: CN = t80 -+ DirName: CN = t81 -+ DirName: CN = t82 -+ DirName: CN = t83 -+ DirName: CN = t84 -+ DirName: CN = t85 -+ DirName: CN = t86 -+ DirName: CN = t87 -+ DirName: CN = t88 -+ DirName: CN = t89 -+ DirName: CN = t90 -+ DirName: CN = t91 -+ DirName: CN = t92 -+ DirName: CN = t93 -+ DirName: CN = t94 -+ DirName: CN = t95 -+ DirName: CN = t96 -+ DirName: CN = t97 -+ DirName: CN = t98 -+ DirName: CN = t99 -+ DirName: CN = t100 -+ DirName: CN = t101 -+ DirName: CN = t102 -+ DirName: CN = t103 -+ DirName: CN = t104 -+ DirName: CN = t105 -+ DirName: CN = t106 -+ DirName: CN = t107 -+ DirName: CN = t108 -+ DirName: CN = t109 -+ DirName: CN = t110 -+ DirName: CN = t111 -+ DirName: CN = t112 -+ DirName: CN = t113 -+ DirName: CN = t114 -+ DirName: CN = t115 -+ DirName: CN = t116 -+ DirName: CN = t117 -+ DirName: CN = t118 -+ DirName: CN = t119 -+ DirName: CN = t120 -+ DirName: CN = t121 -+ DirName: CN = t122 -+ DirName: CN = t123 -+ DirName: CN = t124 -+ DirName: CN = t125 -+ DirName: CN = t126 -+ DirName: CN = t127 -+ DirName: CN = t128 -+ DirName: CN = t129 -+ DirName: CN = t130 -+ DirName: CN = t131 -+ DirName: CN = t132 -+ DirName: CN = t133 -+ DirName: CN = t134 -+ DirName: CN = t135 -+ DirName: CN = t136 -+ DirName: CN = t137 -+ DirName: CN = t138 -+ DirName: CN = t139 -+ DirName: CN = t140 -+ DirName: CN = t141 -+ DirName: CN = t142 -+ DirName: CN = t143 -+ DirName: CN = t144 -+ DirName: CN = t145 -+ DirName: CN = t146 -+ DirName: CN = t147 -+ DirName: CN = t148 -+ DirName: CN = t149 -+ DirName: CN = t150 -+ DirName: CN = t151 -+ DirName: CN = t152 -+ DirName: CN = t153 -+ DirName: CN = t154 -+ DirName: CN = t155 -+ DirName: CN = t156 -+ DirName: CN = t157 -+ DirName: CN = t158 -+ DirName: CN = t159 -+ DirName: CN = t160 -+ DirName: CN = t161 -+ DirName: CN = t162 -+ DirName: CN = t163 -+ DirName: CN = t164 -+ DirName: CN = t165 -+ DirName: CN = t166 -+ DirName: CN = t167 -+ DirName: CN = t168 -+ DirName: CN = t169 -+ DirName: CN = t170 -+ DirName: CN = t171 - Excluded: - DNS:x0.test - DNS:x1.test -@@ -1887,255 +1088,6 @@ Certificate: - DNS:x167.test - DNS:x168.test - DNS:x169.test -- DNS:x170.test -- DNS:x171.test -- DNS:x172.test -- DNS:x173.test -- DNS:x174.test -- DNS:x175.test -- DNS:x176.test -- DNS:x177.test -- DNS:x178.test -- DNS:x179.test -- DNS:x180.test -- DNS:x181.test -- DNS:x182.test -- DNS:x183.test -- DNS:x184.test -- DNS:x185.test -- DNS:x186.test -- DNS:x187.test -- DNS:x188.test -- DNS:x189.test -- DNS:x190.test -- DNS:x191.test -- DNS:x192.test -- DNS:x193.test -- DNS:x194.test -- DNS:x195.test -- DNS:x196.test -- DNS:x197.test -- DNS:x198.test -- DNS:x199.test -- DNS:x200.test -- DNS:x201.test -- DNS:x202.test -- DNS:x203.test -- DNS:x204.test -- DNS:x205.test -- DNS:x206.test -- DNS:x207.test -- DNS:x208.test -- DNS:x209.test -- DNS:x210.test -- DNS:x211.test -- DNS:x212.test -- DNS:x213.test -- DNS:x214.test -- DNS:x215.test -- DNS:x216.test -- DNS:x217.test -- DNS:x218.test -- DNS:x219.test -- DNS:x220.test -- DNS:x221.test -- DNS:x222.test -- DNS:x223.test -- DNS:x224.test -- DNS:x225.test -- DNS:x226.test -- DNS:x227.test -- DNS:x228.test -- DNS:x229.test -- DNS:x230.test -- DNS:x231.test -- DNS:x232.test -- DNS:x233.test -- DNS:x234.test -- DNS:x235.test -- DNS:x236.test -- DNS:x237.test -- DNS:x238.test -- DNS:x239.test -- DNS:x240.test -- DNS:x241.test -- DNS:x242.test -- DNS:x243.test -- DNS:x244.test -- DNS:x245.test -- DNS:x246.test -- DNS:x247.test -- DNS:x248.test -- DNS:x249.test -- DNS:x250.test -- DNS:x251.test -- DNS:x252.test -- DNS:x253.test -- DNS:x254.test -- DNS:x255.test -- DNS:x256.test -- DNS:x257.test -- DNS:x258.test -- DNS:x259.test -- DNS:x260.test -- DNS:x261.test -- DNS:x262.test -- DNS:x263.test -- DNS:x264.test -- DNS:x265.test -- DNS:x266.test -- DNS:x267.test -- DNS:x268.test -- DNS:x269.test -- DNS:x270.test -- DNS:x271.test -- DNS:x272.test -- DNS:x273.test -- DNS:x274.test -- DNS:x275.test -- DNS:x276.test -- DNS:x277.test -- DNS:x278.test -- DNS:x279.test -- DNS:x280.test -- DNS:x281.test -- DNS:x282.test -- DNS:x283.test -- DNS:x284.test -- DNS:x285.test -- DNS:x286.test -- DNS:x287.test -- DNS:x288.test -- DNS:x289.test -- DNS:x290.test -- DNS:x291.test -- DNS:x292.test -- DNS:x293.test -- DNS:x294.test -- DNS:x295.test -- DNS:x296.test -- DNS:x297.test -- DNS:x298.test -- DNS:x299.test -- DNS:x300.test -- DNS:x301.test -- DNS:x302.test -- DNS:x303.test -- DNS:x304.test -- DNS:x305.test -- DNS:x306.test -- DNS:x307.test -- DNS:x308.test -- DNS:x309.test -- DNS:x310.test -- DNS:x311.test -- DNS:x312.test -- DNS:x313.test -- DNS:x314.test -- DNS:x315.test -- DNS:x316.test -- DNS:x317.test -- DNS:x318.test -- DNS:x319.test -- DNS:x320.test -- DNS:x321.test -- DNS:x322.test -- DNS:x323.test -- DNS:x324.test -- DNS:x325.test -- DNS:x326.test -- DNS:x327.test -- DNS:x328.test -- DNS:x329.test -- DNS:x330.test -- DNS:x331.test -- DNS:x332.test -- DNS:x333.test -- DNS:x334.test -- DNS:x335.test -- DNS:x336.test -- DNS:x337.test -- DNS:x338.test -- DNS:x339.test -- DNS:x340.test -- DNS:x341.test -- DNS:x342.test -- DNS:x343.test -- DNS:x344.test -- DNS:x345.test -- DNS:x346.test -- DNS:x347.test -- DNS:x348.test -- DNS:x349.test -- DNS:x350.test -- DNS:x351.test -- DNS:x352.test -- DNS:x353.test -- DNS:x354.test -- DNS:x355.test -- DNS:x356.test -- DNS:x357.test -- DNS:x358.test -- DNS:x359.test -- DNS:x360.test -- DNS:x361.test -- DNS:x362.test -- DNS:x363.test -- DNS:x364.test -- DNS:x365.test -- DNS:x366.test -- DNS:x367.test -- DNS:x368.test -- DNS:x369.test -- DNS:x370.test -- DNS:x371.test -- DNS:x372.test -- DNS:x373.test -- DNS:x374.test -- DNS:x375.test -- DNS:x376.test -- DNS:x377.test -- DNS:x378.test -- DNS:x379.test -- DNS:x380.test -- DNS:x381.test -- DNS:x382.test -- DNS:x383.test -- DNS:x384.test -- DNS:x385.test -- DNS:x386.test -- DNS:x387.test -- DNS:x388.test -- DNS:x389.test -- DNS:x390.test -- DNS:x391.test -- DNS:x392.test -- DNS:x393.test -- DNS:x394.test -- DNS:x395.test -- DNS:x396.test -- DNS:x397.test -- DNS:x398.test -- DNS:x399.test -- DNS:x400.test -- DNS:x401.test -- DNS:x402.test -- DNS:x403.test -- DNS:x404.test -- DNS:x405.test -- DNS:x406.test -- DNS:x407.test -- DNS:x408.test -- DNS:x409.test -- DNS:x410.test -- DNS:x411.test -- DNS:x412.test -- DNS:x413.test -- DNS:x414.test -- DNS:x415.test -- DNS:x416.test -- DNS:x417.test -- DNS:x418.test - IP:11.0.0.0/255.255.255.255 - IP:11.0.0.1/255.255.255.255 - IP:11.0.0.2/255.255.255.255 -@@ -2306,693 +1258,195 @@ Certificate: - IP:11.0.0.167/255.255.255.255 - IP:11.0.0.168/255.255.255.255 - IP:11.0.0.169/255.255.255.255 -- IP:11.0.0.170/255.255.255.255 -- IP:11.0.0.171/255.255.255.255 -- IP:11.0.0.172/255.255.255.255 -- IP:11.0.0.173/255.255.255.255 -- IP:11.0.0.174/255.255.255.255 -- IP:11.0.0.175/255.255.255.255 -- IP:11.0.0.176/255.255.255.255 -- IP:11.0.0.177/255.255.255.255 -- IP:11.0.0.178/255.255.255.255 -- IP:11.0.0.179/255.255.255.255 -- IP:11.0.0.180/255.255.255.255 -- IP:11.0.0.181/255.255.255.255 -- IP:11.0.0.182/255.255.255.255 -- IP:11.0.0.183/255.255.255.255 -- IP:11.0.0.184/255.255.255.255 -- IP:11.0.0.185/255.255.255.255 -- IP:11.0.0.186/255.255.255.255 -- IP:11.0.0.187/255.255.255.255 -- IP:11.0.0.188/255.255.255.255 -- IP:11.0.0.189/255.255.255.255 -- IP:11.0.0.190/255.255.255.255 -- IP:11.0.0.191/255.255.255.255 -- IP:11.0.0.192/255.255.255.255 -- IP:11.0.0.193/255.255.255.255 -- IP:11.0.0.194/255.255.255.255 -- IP:11.0.0.195/255.255.255.255 -- IP:11.0.0.196/255.255.255.255 -- IP:11.0.0.197/255.255.255.255 -- IP:11.0.0.198/255.255.255.255 -- IP:11.0.0.199/255.255.255.255 -- IP:11.0.0.200/255.255.255.255 -- IP:11.0.0.201/255.255.255.255 -- IP:11.0.0.202/255.255.255.255 -- IP:11.0.0.203/255.255.255.255 -- IP:11.0.0.204/255.255.255.255 -- IP:11.0.0.205/255.255.255.255 -- IP:11.0.0.206/255.255.255.255 -- IP:11.0.0.207/255.255.255.255 -- IP:11.0.0.208/255.255.255.255 -- IP:11.0.0.209/255.255.255.255 -- IP:11.0.0.210/255.255.255.255 -- IP:11.0.0.211/255.255.255.255 -- IP:11.0.0.212/255.255.255.255 -- IP:11.0.0.213/255.255.255.255 -- IP:11.0.0.214/255.255.255.255 -- IP:11.0.0.215/255.255.255.255 -- IP:11.0.0.216/255.255.255.255 -- IP:11.0.0.217/255.255.255.255 -- IP:11.0.0.218/255.255.255.255 -- IP:11.0.0.219/255.255.255.255 -- IP:11.0.0.220/255.255.255.255 -- IP:11.0.0.221/255.255.255.255 -- IP:11.0.0.222/255.255.255.255 -- IP:11.0.0.223/255.255.255.255 -- IP:11.0.0.224/255.255.255.255 -- IP:11.0.0.225/255.255.255.255 -- IP:11.0.0.226/255.255.255.255 -- IP:11.0.0.227/255.255.255.255 -- IP:11.0.0.228/255.255.255.255 -- IP:11.0.0.229/255.255.255.255 -- IP:11.0.0.230/255.255.255.255 -- IP:11.0.0.231/255.255.255.255 -- IP:11.0.0.232/255.255.255.255 -- IP:11.0.0.233/255.255.255.255 -- IP:11.0.0.234/255.255.255.255 -- IP:11.0.0.235/255.255.255.255 -- IP:11.0.0.236/255.255.255.255 -- IP:11.0.0.237/255.255.255.255 -- IP:11.0.0.238/255.255.255.255 -- IP:11.0.0.239/255.255.255.255 -- IP:11.0.0.240/255.255.255.255 -- IP:11.0.0.241/255.255.255.255 -- IP:11.0.0.242/255.255.255.255 -- IP:11.0.0.243/255.255.255.255 -- IP:11.0.0.244/255.255.255.255 -- IP:11.0.0.245/255.255.255.255 -- IP:11.0.0.246/255.255.255.255 -- IP:11.0.0.247/255.255.255.255 -- IP:11.0.0.248/255.255.255.255 -- IP:11.0.0.249/255.255.255.255 -- IP:11.0.0.250/255.255.255.255 -- IP:11.0.0.251/255.255.255.255 -- IP:11.0.0.252/255.255.255.255 -- IP:11.0.0.253/255.255.255.255 -- IP:11.0.0.254/255.255.255.255 -- IP:11.0.0.255/255.255.255.255 -- IP:11.0.1.0/255.255.255.255 -- IP:11.0.1.1/255.255.255.255 -- IP:11.0.1.2/255.255.255.255 -- IP:11.0.1.3/255.255.255.255 -- IP:11.0.1.4/255.255.255.255 -- IP:11.0.1.5/255.255.255.255 -- IP:11.0.1.6/255.255.255.255 -- IP:11.0.1.7/255.255.255.255 -- IP:11.0.1.8/255.255.255.255 -- IP:11.0.1.9/255.255.255.255 -- IP:11.0.1.10/255.255.255.255 -- IP:11.0.1.11/255.255.255.255 -- IP:11.0.1.12/255.255.255.255 -- IP:11.0.1.13/255.255.255.255 -- IP:11.0.1.14/255.255.255.255 -- IP:11.0.1.15/255.255.255.255 -- IP:11.0.1.16/255.255.255.255 -- IP:11.0.1.17/255.255.255.255 -- IP:11.0.1.18/255.255.255.255 -- IP:11.0.1.19/255.255.255.255 -- IP:11.0.1.20/255.255.255.255 -- IP:11.0.1.21/255.255.255.255 -- IP:11.0.1.22/255.255.255.255 -- IP:11.0.1.23/255.255.255.255 -- IP:11.0.1.24/255.255.255.255 -- IP:11.0.1.25/255.255.255.255 -- IP:11.0.1.26/255.255.255.255 -- IP:11.0.1.27/255.255.255.255 -- IP:11.0.1.28/255.255.255.255 -- IP:11.0.1.29/255.255.255.255 -- IP:11.0.1.30/255.255.255.255 -- IP:11.0.1.31/255.255.255.255 -- IP:11.0.1.32/255.255.255.255 -- IP:11.0.1.33/255.255.255.255 -- IP:11.0.1.34/255.255.255.255 -- IP:11.0.1.35/255.255.255.255 -- IP:11.0.1.36/255.255.255.255 -- IP:11.0.1.37/255.255.255.255 -- IP:11.0.1.38/255.255.255.255 -- IP:11.0.1.39/255.255.255.255 -- IP:11.0.1.40/255.255.255.255 -- IP:11.0.1.41/255.255.255.255 -- IP:11.0.1.42/255.255.255.255 -- IP:11.0.1.43/255.255.255.255 -- IP:11.0.1.44/255.255.255.255 -- IP:11.0.1.45/255.255.255.255 -- IP:11.0.1.46/255.255.255.255 -- IP:11.0.1.47/255.255.255.255 -- IP:11.0.1.48/255.255.255.255 -- IP:11.0.1.49/255.255.255.255 -- IP:11.0.1.50/255.255.255.255 -- IP:11.0.1.51/255.255.255.255 -- IP:11.0.1.52/255.255.255.255 -- IP:11.0.1.53/255.255.255.255 -- IP:11.0.1.54/255.255.255.255 -- IP:11.0.1.55/255.255.255.255 -- IP:11.0.1.56/255.255.255.255 -- IP:11.0.1.57/255.255.255.255 -- IP:11.0.1.58/255.255.255.255 -- IP:11.0.1.59/255.255.255.255 -- IP:11.0.1.60/255.255.255.255 -- IP:11.0.1.61/255.255.255.255 -- IP:11.0.1.62/255.255.255.255 -- IP:11.0.1.63/255.255.255.255 -- IP:11.0.1.64/255.255.255.255 -- IP:11.0.1.65/255.255.255.255 -- IP:11.0.1.66/255.255.255.255 -- IP:11.0.1.67/255.255.255.255 -- IP:11.0.1.68/255.255.255.255 -- IP:11.0.1.69/255.255.255.255 -- IP:11.0.1.70/255.255.255.255 -- IP:11.0.1.71/255.255.255.255 -- IP:11.0.1.72/255.255.255.255 -- IP:11.0.1.73/255.255.255.255 -- IP:11.0.1.74/255.255.255.255 -- IP:11.0.1.75/255.255.255.255 -- IP:11.0.1.76/255.255.255.255 -- IP:11.0.1.77/255.255.255.255 -- IP:11.0.1.78/255.255.255.255 -- IP:11.0.1.79/255.255.255.255 -- IP:11.0.1.80/255.255.255.255 -- IP:11.0.1.81/255.255.255.255 -- IP:11.0.1.82/255.255.255.255 -- IP:11.0.1.83/255.255.255.255 -- IP:11.0.1.84/255.255.255.255 -- IP:11.0.1.85/255.255.255.255 -- IP:11.0.1.86/255.255.255.255 -- IP:11.0.1.87/255.255.255.255 -- IP:11.0.1.88/255.255.255.255 -- IP:11.0.1.89/255.255.255.255 -- IP:11.0.1.90/255.255.255.255 -- IP:11.0.1.91/255.255.255.255 -- IP:11.0.1.92/255.255.255.255 -- IP:11.0.1.93/255.255.255.255 -- IP:11.0.1.94/255.255.255.255 -- IP:11.0.1.95/255.255.255.255 -- IP:11.0.1.96/255.255.255.255 -- IP:11.0.1.97/255.255.255.255 -- IP:11.0.1.98/255.255.255.255 -- IP:11.0.1.99/255.255.255.255 -- IP:11.0.1.100/255.255.255.255 -- IP:11.0.1.101/255.255.255.255 -- IP:11.0.1.102/255.255.255.255 -- IP:11.0.1.103/255.255.255.255 -- IP:11.0.1.104/255.255.255.255 -- IP:11.0.1.105/255.255.255.255 -- IP:11.0.1.106/255.255.255.255 -- IP:11.0.1.107/255.255.255.255 -- IP:11.0.1.108/255.255.255.255 -- IP:11.0.1.109/255.255.255.255 -- IP:11.0.1.110/255.255.255.255 -- IP:11.0.1.111/255.255.255.255 -- IP:11.0.1.112/255.255.255.255 -- IP:11.0.1.113/255.255.255.255 -- IP:11.0.1.114/255.255.255.255 -- IP:11.0.1.115/255.255.255.255 -- IP:11.0.1.116/255.255.255.255 -- IP:11.0.1.117/255.255.255.255 -- IP:11.0.1.118/255.255.255.255 -- IP:11.0.1.119/255.255.255.255 -- IP:11.0.1.120/255.255.255.255 -- IP:11.0.1.121/255.255.255.255 -- IP:11.0.1.122/255.255.255.255 -- IP:11.0.1.123/255.255.255.255 -- IP:11.0.1.124/255.255.255.255 -- IP:11.0.1.125/255.255.255.255 -- IP:11.0.1.126/255.255.255.255 -- IP:11.0.1.127/255.255.255.255 -- IP:11.0.1.128/255.255.255.255 -- IP:11.0.1.129/255.255.255.255 -- IP:11.0.1.130/255.255.255.255 -- IP:11.0.1.131/255.255.255.255 -- IP:11.0.1.132/255.255.255.255 -- IP:11.0.1.133/255.255.255.255 -- IP:11.0.1.134/255.255.255.255 -- IP:11.0.1.135/255.255.255.255 -- IP:11.0.1.136/255.255.255.255 -- IP:11.0.1.137/255.255.255.255 -- IP:11.0.1.138/255.255.255.255 -- IP:11.0.1.139/255.255.255.255 -- IP:11.0.1.140/255.255.255.255 -- IP:11.0.1.141/255.255.255.255 -- IP:11.0.1.142/255.255.255.255 -- IP:11.0.1.143/255.255.255.255 -- IP:11.0.1.144/255.255.255.255 -- IP:11.0.1.145/255.255.255.255 -- IP:11.0.1.146/255.255.255.255 -- IP:11.0.1.147/255.255.255.255 -- IP:11.0.1.148/255.255.255.255 -- IP:11.0.1.149/255.255.255.255 -- IP:11.0.1.150/255.255.255.255 -- IP:11.0.1.151/255.255.255.255 -- IP:11.0.1.152/255.255.255.255 -- IP:11.0.1.153/255.255.255.255 -- IP:11.0.1.154/255.255.255.255 -- IP:11.0.1.155/255.255.255.255 -- IP:11.0.1.156/255.255.255.255 -- IP:11.0.1.157/255.255.255.255 -- IP:11.0.1.158/255.255.255.255 -- IP:11.0.1.159/255.255.255.255 -- IP:11.0.1.160/255.255.255.255 -- IP:11.0.1.161/255.255.255.255 -- IP:11.0.1.162/255.255.255.255 -- DirName:CN = x0 -- DirName:CN = x1 -- DirName:CN = x2 -- DirName:CN = x3 -- DirName:CN = x4 -- DirName:CN = x5 -- DirName:CN = x6 -- DirName:CN = x7 -- DirName:CN = x8 -- DirName:CN = x9 -- DirName:CN = x10 -- DirName:CN = x11 -- DirName:CN = x12 -- DirName:CN = x13 -- DirName:CN = x14 -- DirName:CN = x15 -- DirName:CN = x16 -- DirName:CN = x17 -- DirName:CN = x18 -- DirName:CN = x19 -- DirName:CN = x20 -- DirName:CN = x21 -- DirName:CN = x22 -- DirName:CN = x23 -- DirName:CN = x24 -- DirName:CN = x25 -- DirName:CN = x26 -- DirName:CN = x27 -- DirName:CN = x28 -- DirName:CN = x29 -- DirName:CN = x30 -- DirName:CN = x31 -- DirName:CN = x32 -- DirName:CN = x33 -- DirName:CN = x34 -- DirName:CN = x35 -- DirName:CN = x36 -- DirName:CN = x37 -- DirName:CN = x38 -- DirName:CN = x39 -- DirName:CN = x40 -- DirName:CN = x41 -- DirName:CN = x42 -- DirName:CN = x43 -- DirName:CN = x44 -- DirName:CN = x45 -- DirName:CN = x46 -- DirName:CN = x47 -- DirName:CN = x48 -- DirName:CN = x49 -- DirName:CN = x50 -- DirName:CN = x51 -- DirName:CN = x52 -- DirName:CN = x53 -- DirName:CN = x54 -- DirName:CN = x55 -- DirName:CN = x56 -- DirName:CN = x57 -- DirName:CN = x58 -- DirName:CN = x59 -- DirName:CN = x60 -- DirName:CN = x61 -- DirName:CN = x62 -- DirName:CN = x63 -- DirName:CN = x64 -- DirName:CN = x65 -- DirName:CN = x66 -- DirName:CN = x67 -- DirName:CN = x68 -- DirName:CN = x69 -- DirName:CN = x70 -- DirName:CN = x71 -- DirName:CN = x72 -- DirName:CN = x73 -- DirName:CN = x74 -- DirName:CN = x75 -- DirName:CN = x76 -- DirName:CN = x77 -- DirName:CN = x78 -- DirName:CN = x79 -- DirName:CN = x80 -- DirName:CN = x81 -- DirName:CN = x82 -- DirName:CN = x83 -- DirName:CN = x84 -- DirName:CN = x85 -- DirName:CN = x86 -- DirName:CN = x87 -- DirName:CN = x88 -- DirName:CN = x89 -- DirName:CN = x90 -- DirName:CN = x91 -- DirName:CN = x92 -- DirName:CN = x93 -- DirName:CN = x94 -- DirName:CN = x95 -- DirName:CN = x96 -- DirName:CN = x97 -- DirName:CN = x98 -- DirName:CN = x99 -- DirName:CN = x100 -- DirName:CN = x101 -- DirName:CN = x102 -- DirName:CN = x103 -- DirName:CN = x104 -- DirName:CN = x105 -- DirName:CN = x106 -- DirName:CN = x107 -- DirName:CN = x108 -- DirName:CN = x109 -- DirName:CN = x110 -- DirName:CN = x111 -- DirName:CN = x112 -- DirName:CN = x113 -- DirName:CN = x114 -- DirName:CN = x115 -- DirName:CN = x116 -- DirName:CN = x117 -- DirName:CN = x118 -- DirName:CN = x119 -- DirName:CN = x120 -- DirName:CN = x121 -- DirName:CN = x122 -- DirName:CN = x123 -- DirName:CN = x124 -- DirName:CN = x125 -- DirName:CN = x126 -- DirName:CN = x127 -- DirName:CN = x128 -- DirName:CN = x129 -- DirName:CN = x130 -- DirName:CN = x131 -- DirName:CN = x132 -- DirName:CN = x133 -- DirName:CN = x134 -- DirName:CN = x135 -- DirName:CN = x136 -- DirName:CN = x137 -- DirName:CN = x138 -- DirName:CN = x139 -- DirName:CN = x140 -- DirName:CN = x141 -- DirName:CN = x142 -- DirName:CN = x143 -- DirName:CN = x144 -- DirName:CN = x145 -- DirName:CN = x146 -- DirName:CN = x147 -- DirName:CN = x148 -- DirName:CN = x149 -- DirName:CN = x150 -- DirName:CN = x151 -- DirName:CN = x152 -- DirName:CN = x153 -- DirName:CN = x154 -- DirName:CN = x155 -- DirName:CN = x156 -- DirName:CN = x157 -- DirName:CN = x158 -- DirName:CN = x159 -- DirName:CN = x160 -- DirName:CN = x161 -- DirName:CN = x162 -- DirName:CN = x163 -- DirName:CN = x164 -- DirName:CN = x165 -- DirName:CN = x166 -- DirName:CN = x167 -- DirName:CN = x168 -- DirName:CN = x169 -- DirName:CN = x170 -- DirName:CN = x171 -- DirName:CN = x172 -- DirName:CN = x173 -- DirName:CN = x174 -- DirName:CN = x175 -- DirName:CN = x176 -- DirName:CN = x177 -- DirName:CN = x178 -- DirName:CN = x179 -- DirName:CN = x180 -- DirName:CN = x181 -- DirName:CN = x182 -- DirName:CN = x183 -- DirName:CN = x184 -- DirName:CN = x185 -- DirName:CN = x186 -- DirName:CN = x187 -- DirName:CN = x188 -- DirName:CN = x189 -- DirName:CN = x190 -- DirName:CN = x191 -- DirName:CN = x192 -- DirName:CN = x193 -- DirName:CN = x194 -- DirName:CN = x195 -- DirName:CN = x196 -- DirName:CN = x197 -- DirName:CN = x198 -- DirName:CN = x199 -- DirName:CN = x200 -- DirName:CN = x201 -- DirName:CN = x202 -- DirName:CN = x203 -- DirName:CN = x204 -- DirName:CN = x205 -- DirName:CN = x206 -- DirName:CN = x207 -- DirName:CN = x208 -- DirName:CN = x209 -- DirName:CN = x210 -- DirName:CN = x211 -- DirName:CN = x212 -- DirName:CN = x213 -- DirName:CN = x214 -- DirName:CN = x215 -- DirName:CN = x216 -- DirName:CN = x217 -- DirName:CN = x218 -- DirName:CN = x219 -- DirName:CN = x220 -- DirName:CN = x221 -- DirName:CN = x222 -- DirName:CN = x223 -- DirName:CN = x224 -- DirName:CN = x225 -- DirName:CN = x226 -- DirName:CN = x227 -- DirName:CN = x228 -- DirName:CN = x229 -- DirName:CN = x230 -- DirName:CN = x231 -- DirName:CN = x232 -- DirName:CN = x233 -- DirName:CN = x234 -- DirName:CN = x235 -- DirName:CN = x236 -- DirName:CN = x237 -- DirName:CN = x238 -- DirName:CN = x239 -- DirName:CN = x240 -- DirName:CN = x241 -- DirName:CN = x242 -- DirName:CN = x243 -- DirName:CN = x244 -- DirName:CN = x245 -- DirName:CN = x246 -- DirName:CN = x247 -- DirName:CN = x248 -- DirName:CN = x249 -- DirName:CN = x250 -- DirName:CN = x251 -- DirName:CN = x252 -- DirName:CN = x253 -- DirName:CN = x254 -- DirName:CN = x255 -- DirName:CN = x256 -- DirName:CN = x257 -- DirName:CN = x258 -- DirName:CN = x259 -- DirName:CN = x260 -- DirName:CN = x261 -- DirName:CN = x262 -- DirName:CN = x263 -- DirName:CN = x264 -- DirName:CN = x265 -- DirName:CN = x266 -- DirName:CN = x267 -- DirName:CN = x268 -- DirName:CN = x269 -- DirName:CN = x270 -- DirName:CN = x271 -- DirName:CN = x272 -- DirName:CN = x273 -- DirName:CN = x274 -- DirName:CN = x275 -- DirName:CN = x276 -- DirName:CN = x277 -- DirName:CN = x278 -- DirName:CN = x279 -- DirName:CN = x280 -- DirName:CN = x281 -- DirName:CN = x282 -- DirName:CN = x283 -- DirName:CN = x284 -- DirName:CN = x285 -- DirName:CN = x286 -- DirName:CN = x287 -- DirName:CN = x288 -- DirName:CN = x289 -- DirName:CN = x290 -- DirName:CN = x291 -- DirName:CN = x292 -- DirName:CN = x293 -- DirName:CN = x294 -- DirName:CN = x295 -- DirName:CN = x296 -- DirName:CN = x297 -- DirName:CN = x298 -- DirName:CN = x299 -- DirName:CN = x300 -- DirName:CN = x301 -- DirName:CN = x302 -- DirName:CN = x303 -- DirName:CN = x304 -- DirName:CN = x305 -- DirName:CN = x306 -- DirName:CN = x307 -- DirName:CN = x308 -- DirName:CN = x309 -- DirName:CN = x310 -- DirName:CN = x311 -- DirName:CN = x312 -- DirName:CN = x313 -- DirName:CN = x314 -- DirName:CN = x315 -- DirName:CN = x316 -- DirName:CN = x317 -- DirName:CN = x318 -- DirName:CN = x319 -- DirName:CN = x320 -- DirName:CN = x321 -- DirName:CN = x322 -- DirName:CN = x323 -- DirName:CN = x324 -- DirName:CN = x325 -- DirName:CN = x326 -- DirName:CN = x327 -- DirName:CN = x328 -- DirName:CN = x329 -- DirName:CN = x330 -- DirName:CN = x331 -- DirName:CN = x332 -- DirName:CN = x333 -- DirName:CN = x334 -- DirName:CN = x335 -- DirName:CN = x336 -- DirName:CN = x337 -- DirName:CN = x338 -- DirName:CN = x339 -- DirName:CN = x340 -- DirName:CN = x341 -- DirName:CN = x342 -- DirName:CN = x343 -- DirName:CN = x344 -- DirName:CN = x345 -- DirName:CN = x346 -- DirName:CN = x347 -- DirName:CN = x348 -- DirName:CN = x349 -- DirName:CN = x350 -- DirName:CN = x351 -- DirName:CN = x352 -- DirName:CN = x353 -- DirName:CN = x354 -- DirName:CN = x355 -- DirName:CN = x356 -- DirName:CN = x357 -- DirName:CN = x358 -- DirName:CN = x359 -- DirName:CN = x360 -- DirName:CN = x361 -- DirName:CN = x362 -- DirName:CN = x363 -- DirName:CN = x364 -- DirName:CN = x365 -- DirName:CN = x366 -- DirName:CN = x367 -- DirName:CN = x368 -- DirName:CN = x369 -- DirName:CN = x370 -- DirName:CN = x371 -- DirName:CN = x372 -- DirName:CN = x373 -- DirName:CN = x374 -- DirName:CN = x375 -- DirName:CN = x376 -- DirName:CN = x377 -- DirName:CN = x378 -- DirName:CN = x379 -- DirName:CN = x380 -- DirName:CN = x381 -- DirName:CN = x382 -- DirName:CN = x383 -- DirName:CN = x384 -- DirName:CN = x385 -- DirName:CN = x386 -- DirName:CN = x387 -- DirName:CN = x388 -- DirName:CN = x389 -- DirName:CN = x390 -- DirName:CN = x391 -- DirName:CN = x392 -- DirName:CN = x393 -- DirName:CN = x394 -- DirName:CN = x395 -- DirName:CN = x396 -- DirName:CN = x397 -- DirName:CN = x398 -- DirName:CN = x399 -- DirName:CN = x400 -- DirName:CN = x401 -- DirName:CN = x402 -- DirName:CN = x403 -- DirName:CN = x404 -- DirName:CN = x405 -- DirName:CN = x406 -- DirName:CN = x407 -- DirName:CN = x408 -- DirName:CN = x409 -- DirName:CN = x410 -- DirName:CN = x411 -- DirName:CN = x412 -- DirName:CN = x413 -- DirName:CN = x414 -- DirName:CN = x415 -- DirName:CN = x416 -- DirName:CN = x417 -- DirName:CN = x418 -+ DirName: CN = x0 -+ DirName: CN = x1 -+ DirName: CN = x2 -+ DirName: CN = x3 -+ DirName: CN = x4 -+ DirName: CN = x5 -+ DirName: CN = x6 -+ DirName: CN = x7 -+ DirName: CN = x8 -+ DirName: CN = x9 -+ DirName: CN = x10 -+ DirName: CN = x11 -+ DirName: CN = x12 -+ DirName: CN = x13 -+ DirName: CN = x14 -+ DirName: CN = x15 -+ DirName: CN = x16 -+ DirName: CN = x17 -+ DirName: CN = x18 -+ DirName: CN = x19 -+ DirName: CN = x20 -+ DirName: CN = x21 -+ DirName: CN = x22 -+ DirName: CN = x23 -+ DirName: CN = x24 -+ DirName: CN = x25 -+ DirName: CN = x26 -+ DirName: CN = x27 -+ DirName: CN = x28 -+ DirName: CN = x29 -+ DirName: CN = x30 -+ DirName: CN = x31 -+ DirName: CN = x32 -+ DirName: CN = x33 -+ DirName: CN = x34 -+ DirName: CN = x35 -+ DirName: CN = x36 -+ DirName: CN = x37 -+ DirName: CN = x38 -+ DirName: CN = x39 -+ DirName: CN = x40 -+ DirName: CN = x41 -+ DirName: CN = x42 -+ DirName: CN = x43 -+ DirName: CN = x44 -+ DirName: CN = x45 -+ DirName: CN = x46 -+ DirName: CN = x47 -+ DirName: CN = x48 -+ DirName: CN = x49 -+ DirName: CN = x50 -+ DirName: CN = x51 -+ DirName: CN = x52 -+ DirName: CN = x53 -+ DirName: CN = x54 -+ DirName: CN = x55 -+ DirName: CN = x56 -+ DirName: CN = x57 -+ DirName: CN = x58 -+ DirName: CN = x59 -+ DirName: CN = x60 -+ DirName: CN = x61 -+ DirName: CN = x62 -+ DirName: CN = x63 -+ DirName: CN = x64 -+ DirName: CN = x65 -+ DirName: CN = x66 -+ DirName: CN = x67 -+ DirName: CN = x68 -+ DirName: CN = x69 -+ DirName: CN = x70 -+ DirName: CN = x71 -+ DirName: CN = x72 -+ DirName: CN = x73 -+ DirName: CN = x74 -+ DirName: CN = x75 -+ DirName: CN = x76 -+ DirName: CN = x77 -+ DirName: CN = x78 -+ DirName: CN = x79 -+ DirName: CN = x80 -+ DirName: CN = x81 -+ DirName: CN = x82 -+ DirName: CN = x83 -+ DirName: CN = x84 -+ DirName: CN = x85 -+ DirName: CN = x86 -+ DirName: CN = x87 -+ DirName: CN = x88 -+ DirName: CN = x89 -+ DirName: CN = x90 -+ DirName: CN = x91 -+ DirName: CN = x92 -+ DirName: CN = x93 -+ DirName: CN = x94 -+ DirName: CN = x95 -+ DirName: CN = x96 -+ DirName: CN = x97 -+ DirName: CN = x98 -+ DirName: CN = x99 -+ DirName: CN = x100 -+ DirName: CN = x101 -+ DirName: CN = x102 -+ DirName: CN = x103 -+ DirName: CN = x104 -+ DirName: CN = x105 -+ DirName: CN = x106 -+ DirName: CN = x107 -+ DirName: CN = x108 -+ DirName: CN = x109 -+ DirName: CN = x110 -+ DirName: CN = x111 -+ DirName: CN = x112 -+ DirName: CN = x113 -+ DirName: CN = x114 -+ DirName: CN = x115 -+ DirName: CN = x116 -+ DirName: CN = x117 -+ DirName: CN = x118 -+ DirName: CN = x119 -+ DirName: CN = x120 -+ DirName: CN = x121 -+ DirName: CN = x122 -+ DirName: CN = x123 -+ DirName: CN = x124 -+ DirName: CN = x125 -+ DirName: CN = x126 -+ DirName: CN = x127 -+ DirName: CN = x128 -+ DirName: CN = x129 -+ DirName: CN = x130 -+ DirName: CN = x131 -+ DirName: CN = x132 -+ DirName: CN = x133 -+ DirName: CN = x134 -+ DirName: CN = x135 -+ DirName: CN = x136 -+ DirName: CN = x137 -+ DirName: CN = x138 -+ DirName: CN = x139 -+ DirName: CN = x140 -+ DirName: CN = x141 -+ DirName: CN = x142 -+ DirName: CN = x143 -+ DirName: CN = x144 -+ DirName: CN = x145 -+ DirName: CN = x146 -+ DirName: CN = x147 -+ DirName: CN = x148 -+ DirName: CN = x149 -+ DirName: CN = x150 -+ DirName: CN = x151 -+ DirName: CN = x152 -+ DirName: CN = x153 -+ DirName: CN = x154 -+ DirName: CN = x155 -+ DirName: CN = x156 -+ DirName: CN = x157 -+ DirName: CN = x158 -+ DirName: CN = x159 -+ DirName: CN = x160 -+ DirName: CN = x161 -+ DirName: CN = x162 -+ DirName: CN = x163 -+ DirName: CN = x164 -+ DirName: CN = x165 -+ DirName: CN = x166 -+ DirName: CN = x167 -+ DirName: CN = x168 -+ DirName: CN = x169 - - Signature Algorithm: sha256WithRSAEncryption -- 78:77:cf:93:5f:bd:ff:3f:90:a4:39:4b:72:18:90:72:32:7c: -- f7:dc:b3:6d:f4:ce:c9:99:72:d9:63:06:88:85:d8:91:20:35: -- 72:4d:09:b5:02:89:50:63:5e:69:59:5f:f9:c1:e7:0f:d6:55: -- 6b:67:0d:f7:b0:83:02:18:d5:75:ba:06:96:e5:3f:fa:c4:0f: -- 30:79:bc:43:9b:6e:e6:15:c2:87:bc:57:4f:3a:7c:37:bb:15: -- 90:f3:d7:ad:42:44:c3:ad:cb:f4:fa:0f:32:25:9b:5a:2a:0b: -- 7e:2a:f1:eb:35:7f:f2:7d:60:4b:e3:8f:fc:01:a6:be:cc:8b: -- 4a:e6:5f:ec:42:47:e4:66:5a:4f:20:b2:7b:cc:51:27:91:ea: -- b0:df:70:9f:e5:77:6a:62:25:12:da:7a:f2:54:4f:3e:b8:18: -- a9:63:4d:50:02:f0:4d:ec:1d:bc:7c:3a:7b:7e:0f:6b:b7:30: -- 61:e7:43:1c:ba:c5:8e:c6:9e:14:0d:7f:07:e0:66:6b:1d:32: -- d3:2e:a6:e1:16:f6:2e:d5:b1:56:ae:88:f9:e4:a8:1d:f7:67: -- ac:d0:2e:2c:ab:04:44:4b:67:7f:03:07:9d:f8:4d:b7:82:31: -- 4f:23:37:5e:8e:d7:e3:fa:52:94:a2:27:98:79:9b:4e:33:99: -- 45:a4:d6:98 -+ 9f:cb:83:7b:e2:3c:57:27:25:ec:82:3f:30:c2:ff:12:51:71: -+ 3f:d5:94:05:1a:5b:58:44:80:b4:89:1e:e0:89:45:e5:e3:72: -+ 8b:c4:d8:ca:54:a3:db:f2:a3:fd:16:00:c1:86:21:e2:ed:e3: -+ 6c:94:7e:09:ae:ed:36:1c:e3:97:6f:3d:0a:b1:39:78:7a:b3: -+ b9:ce:c3:68:ee:60:27:7c:cb:6b:33:3c:5f:a2:6a:99:d4:08: -+ 2a:e9:21:04:ea:12:d9:28:53:1f:cc:af:ab:41:a3:6e:34:fa: -+ 56:56:44:d5:c5:10:bd:f4:37:3b:45:94:74:19:b2:49:cf:0f: -+ 98:94:75:68:ec:4e:6f:b0:41:ac:f7:38:02:1d:dd:1f:14:f6: -+ b5:c6:0c:a2:b2:a7:07:75:99:54:4e:fe:68:0c:1d:ae:a0:90: -+ d7:d5:64:60:15:ff:c7:fd:31:da:ab:50:43:44:b7:cc:3f:d2: -+ ee:e4:03:3e:a0:9d:8e:81:48:21:86:34:66:27:be:b2:73:01: -+ 2b:65:ee:51:3b:57:3f:76:51:ad:82:fc:7e:c9:ce:89:38:04: -+ 5f:c9:f6:41:62:32:60:b2:b9:d1:fe:4e:78:d6:a5:79:56:7b: -+ 57:e4:1d:42:7a:1f:aa:f7:b0:d0:82:ba:d4:f1:bb:f9:9c:ec: -+ ca:e7:f7:09 - -----BEGIN CERTIFICATE----- --MIKYdzCCl1+gAwIBAgIUPOX8gYhZqFAWwX/X5Srlln/C9vcwDQYJKoZIhvcNAQEL -+MII/SzCCPjOgAwIBAgIUPOX8gYhZqFAWwX/X5Srlln/C9vcwDQYJKoZIhvcNAQEL - BQAwDzENMAsGA1UEAwwEUm9vdDAeFw0yMTEwMDUxMjAwMDBaFw0yMjEwMDUxMjAw - MDBaMBcxFTATBgNVBAMMDEludGVybWVkaWF0ZTCCASIwDQYJKoZIhvcNAQEBBQAD - ggEPADCCAQoCggEBALs72wRuF+BUUrojdyS8NONw2ZmeU10zC6nMSx2uBicYjlW6 -@@ -3000,12 +1454,12 @@ rRLHHTJZbcMWINtipneAEuCHWFFV42Z/0eA6ImXlcCaiBATwXflfVsja6A9XKHdu - mqBKUzQaYzeiQ6sOSs0HI91Vg0QADHBB3zVk0MUOaofbyvw11eJbrwug5nWl0uFy - TiJjAUFzuJVQLP3tw2G2NtSDlWHD4GH/9J6K6Lrc0faJ7Z0wRJUn9NGL5i8UZlbx - 2vHMBBt3kqWfWEAMnwwy1gXCTMDFn+WkMD1M6Z0DbEwGtuWVvSG45iuooL8Gu0Mz --GT17F1nxZE0kZ7FRDzWu8HF1ea5bAjQEMeNmhmUCAwEAAaOClcEwgpW9MB0GA1Ud -+GT17F1nxZE0kZ7FRDzWu8HF1ea5bAjQEMeNmhmUCAwEAAaOCPJUwgjyRMB0GA1Ud - DgQWBBSSET+sEZbHZjfPg1ok8Dp3rzONfzAfBgNVHSMEGDAWgBS2wu+f0SnLD4mM - TFLUvUC3Ebdx3TA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAKGG2h0dHA6Ly91 - cmwtZm9yLWFpYS9Sb290LmNlcjAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vdXJs - LWZvci1jcmwvUm9vdC5jcmwwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB --Af8wgpTxBgNVHR4EgpToMIKU5KCCSm4wCYIHdDAudGVzdDAJggd0MS50ZXN0MAmC -+Af8wgjvFBgNVHR4Egju8MII7uKCCHgAwCYIHdDAudGVzdDAJggd0MS50ZXN0MAmC - B3QyLnRlc3QwCYIHdDMudGVzdDAJggd0NC50ZXN0MAmCB3Q1LnRlc3QwCYIHdDYu - dGVzdDAJggd0Ny50ZXN0MAmCB3Q4LnRlc3QwCYIHdDkudGVzdDAKggh0MTAudGVz - dDAKggh0MTEudGVzdDAKggh0MTIudGVzdDAKggh0MTMudGVzdDAKggh0MTQudGVz -@@ -3049,763 +1503,287 @@ MTU0LnRlc3QwC4IJdDE1NS50ZXN0MAuCCXQxNTYudGVzdDALggl0MTU3LnRlc3Qw - C4IJdDE1OC50ZXN0MAuCCXQxNTkudGVzdDALggl0MTYwLnRlc3QwC4IJdDE2MS50 - ZXN0MAuCCXQxNjIudGVzdDALggl0MTYzLnRlc3QwC4IJdDE2NC50ZXN0MAuCCXQx - NjUudGVzdDALggl0MTY2LnRlc3QwC4IJdDE2Ny50ZXN0MAuCCXQxNjgudGVzdDAL --ggl0MTY5LnRlc3QwC4IJdDE3MC50ZXN0MAuCCXQxNzEudGVzdDALggl0MTcyLnRl --c3QwC4IJdDE3My50ZXN0MAuCCXQxNzQudGVzdDALggl0MTc1LnRlc3QwC4IJdDE3 --Ni50ZXN0MAuCCXQxNzcudGVzdDALggl0MTc4LnRlc3QwC4IJdDE3OS50ZXN0MAuC --CXQxODAudGVzdDALggl0MTgxLnRlc3QwC4IJdDE4Mi50ZXN0MAuCCXQxODMudGVz --dDALggl0MTg0LnRlc3QwC4IJdDE4NS50ZXN0MAuCCXQxODYudGVzdDALggl0MTg3 --LnRlc3QwC4IJdDE4OC50ZXN0MAuCCXQxODkudGVzdDALggl0MTkwLnRlc3QwC4IJ --dDE5MS50ZXN0MAuCCXQxOTIudGVzdDALggl0MTkzLnRlc3QwC4IJdDE5NC50ZXN0 --MAuCCXQxOTUudGVzdDALggl0MTk2LnRlc3QwC4IJdDE5Ny50ZXN0MAuCCXQxOTgu --dGVzdDALggl0MTk5LnRlc3QwC4IJdDIwMC50ZXN0MAuCCXQyMDEudGVzdDALggl0 --MjAyLnRlc3QwC4IJdDIwMy50ZXN0MAuCCXQyMDQudGVzdDALggl0MjA1LnRlc3Qw --C4IJdDIwNi50ZXN0MAuCCXQyMDcudGVzdDALggl0MjA4LnRlc3QwC4IJdDIwOS50 --ZXN0MAuCCXQyMTAudGVzdDALggl0MjExLnRlc3QwC4IJdDIxMi50ZXN0MAuCCXQy --MTMudGVzdDALggl0MjE0LnRlc3QwC4IJdDIxNS50ZXN0MAuCCXQyMTYudGVzdDAL --ggl0MjE3LnRlc3QwC4IJdDIxOC50ZXN0MAuCCXQyMTkudGVzdDALggl0MjIwLnRl --c3QwC4IJdDIyMS50ZXN0MAuCCXQyMjIudGVzdDALggl0MjIzLnRlc3QwC4IJdDIy --NC50ZXN0MAuCCXQyMjUudGVzdDALggl0MjI2LnRlc3QwC4IJdDIyNy50ZXN0MAuC --CXQyMjgudGVzdDALggl0MjI5LnRlc3QwC4IJdDIzMC50ZXN0MAuCCXQyMzEudGVz --dDALggl0MjMyLnRlc3QwC4IJdDIzMy50ZXN0MAuCCXQyMzQudGVzdDALggl0MjM1 --LnRlc3QwC4IJdDIzNi50ZXN0MAuCCXQyMzcudGVzdDALggl0MjM4LnRlc3QwC4IJ --dDIzOS50ZXN0MAuCCXQyNDAudGVzdDALggl0MjQxLnRlc3QwC4IJdDI0Mi50ZXN0 --MAuCCXQyNDMudGVzdDALggl0MjQ0LnRlc3QwC4IJdDI0NS50ZXN0MAuCCXQyNDYu --dGVzdDALggl0MjQ3LnRlc3QwC4IJdDI0OC50ZXN0MAuCCXQyNDkudGVzdDALggl0 --MjUwLnRlc3QwC4IJdDI1MS50ZXN0MAuCCXQyNTIudGVzdDALggl0MjUzLnRlc3Qw --C4IJdDI1NC50ZXN0MAuCCXQyNTUudGVzdDALggl0MjU2LnRlc3QwC4IJdDI1Ny50 --ZXN0MAuCCXQyNTgudGVzdDALggl0MjU5LnRlc3QwC4IJdDI2MC50ZXN0MAuCCXQy --NjEudGVzdDALggl0MjYyLnRlc3QwC4IJdDI2My50ZXN0MAuCCXQyNjQudGVzdDAL --ggl0MjY1LnRlc3QwC4IJdDI2Ni50ZXN0MAuCCXQyNjcudGVzdDALggl0MjY4LnRl --c3QwC4IJdDI2OS50ZXN0MAuCCXQyNzAudGVzdDALggl0MjcxLnRlc3QwC4IJdDI3 --Mi50ZXN0MAuCCXQyNzMudGVzdDALggl0Mjc0LnRlc3QwC4IJdDI3NS50ZXN0MAuC --CXQyNzYudGVzdDALggl0Mjc3LnRlc3QwC4IJdDI3OC50ZXN0MAuCCXQyNzkudGVz --dDALggl0MjgwLnRlc3QwC4IJdDI4MS50ZXN0MAuCCXQyODIudGVzdDALggl0Mjgz --LnRlc3QwC4IJdDI4NC50ZXN0MAuCCXQyODUudGVzdDALggl0Mjg2LnRlc3QwC4IJ --dDI4Ny50ZXN0MAuCCXQyODgudGVzdDALggl0Mjg5LnRlc3QwC4IJdDI5MC50ZXN0 --MAuCCXQyOTEudGVzdDALggl0MjkyLnRlc3QwC4IJdDI5My50ZXN0MAuCCXQyOTQu --dGVzdDALggl0Mjk1LnRlc3QwC4IJdDI5Ni50ZXN0MAuCCXQyOTcudGVzdDALggl0 --Mjk4LnRlc3QwC4IJdDI5OS50ZXN0MAuCCXQzMDAudGVzdDALggl0MzAxLnRlc3Qw --C4IJdDMwMi50ZXN0MAuCCXQzMDMudGVzdDALggl0MzA0LnRlc3QwC4IJdDMwNS50 --ZXN0MAuCCXQzMDYudGVzdDALggl0MzA3LnRlc3QwC4IJdDMwOC50ZXN0MAuCCXQz --MDkudGVzdDALggl0MzEwLnRlc3QwC4IJdDMxMS50ZXN0MAuCCXQzMTIudGVzdDAL --ggl0MzEzLnRlc3QwC4IJdDMxNC50ZXN0MAuCCXQzMTUudGVzdDALggl0MzE2LnRl --c3QwC4IJdDMxNy50ZXN0MAuCCXQzMTgudGVzdDALggl0MzE5LnRlc3QwC4IJdDMy --MC50ZXN0MAuCCXQzMjEudGVzdDALggl0MzIyLnRlc3QwC4IJdDMyMy50ZXN0MAuC --CXQzMjQudGVzdDALggl0MzI1LnRlc3QwC4IJdDMyNi50ZXN0MAuCCXQzMjcudGVz --dDALggl0MzI4LnRlc3QwC4IJdDMyOS50ZXN0MAuCCXQzMzAudGVzdDALggl0MzMx --LnRlc3QwC4IJdDMzMi50ZXN0MAuCCXQzMzMudGVzdDALggl0MzM0LnRlc3QwC4IJ --dDMzNS50ZXN0MAuCCXQzMzYudGVzdDALggl0MzM3LnRlc3QwC4IJdDMzOC50ZXN0 --MAuCCXQzMzkudGVzdDALggl0MzQwLnRlc3QwC4IJdDM0MS50ZXN0MAuCCXQzNDIu --dGVzdDALggl0MzQzLnRlc3QwC4IJdDM0NC50ZXN0MAuCCXQzNDUudGVzdDALggl0 --MzQ2LnRlc3QwC4IJdDM0Ny50ZXN0MAuCCXQzNDgudGVzdDALggl0MzQ5LnRlc3Qw --C4IJdDM1MC50ZXN0MAuCCXQzNTEudGVzdDALggl0MzUyLnRlc3QwC4IJdDM1My50 --ZXN0MAuCCXQzNTQudGVzdDALggl0MzU1LnRlc3QwC4IJdDM1Ni50ZXN0MAuCCXQz --NTcudGVzdDALggl0MzU4LnRlc3QwC4IJdDM1OS50ZXN0MAuCCXQzNjAudGVzdDAL --ggl0MzYxLnRlc3QwC4IJdDM2Mi50ZXN0MAuCCXQzNjMudGVzdDALggl0MzY0LnRl --c3QwC4IJdDM2NS50ZXN0MAuCCXQzNjYudGVzdDALggl0MzY3LnRlc3QwC4IJdDM2 --OC50ZXN0MAuCCXQzNjkudGVzdDALggl0MzcwLnRlc3QwC4IJdDM3MS50ZXN0MAuC --CXQzNzIudGVzdDALggl0MzczLnRlc3QwC4IJdDM3NC50ZXN0MAuCCXQzNzUudGVz --dDALggl0Mzc2LnRlc3QwC4IJdDM3Ny50ZXN0MAuCCXQzNzgudGVzdDALggl0Mzc5 --LnRlc3QwC4IJdDM4MC50ZXN0MAuCCXQzODEudGVzdDALggl0MzgyLnRlc3QwC4IJ --dDM4My50ZXN0MAuCCXQzODQudGVzdDALggl0Mzg1LnRlc3QwC4IJdDM4Ni50ZXN0 --MAuCCXQzODcudGVzdDALggl0Mzg4LnRlc3QwC4IJdDM4OS50ZXN0MAuCCXQzOTAu --dGVzdDALggl0MzkxLnRlc3QwC4IJdDM5Mi50ZXN0MAuCCXQzOTMudGVzdDALggl0 --Mzk0LnRlc3QwC4IJdDM5NS50ZXN0MAuCCXQzOTYudGVzdDALggl0Mzk3LnRlc3Qw --C4IJdDM5OC50ZXN0MAuCCXQzOTkudGVzdDALggl0NDAwLnRlc3QwC4IJdDQwMS50 --ZXN0MAuCCXQ0MDIudGVzdDALggl0NDAzLnRlc3QwC4IJdDQwNC50ZXN0MAuCCXQ0 --MDUudGVzdDALggl0NDA2LnRlc3QwC4IJdDQwNy50ZXN0MAuCCXQ0MDgudGVzdDAL --ggl0NDA5LnRlc3QwC4IJdDQxMC50ZXN0MAuCCXQ0MTEudGVzdDALggl0NDEyLnRl --c3QwC4IJdDQxMy50ZXN0MAuCCXQ0MTQudGVzdDALggl0NDE1LnRlc3QwC4IJdDQx --Ni50ZXN0MAuCCXQ0MTcudGVzdDALggl0NDE4LnRlc3QwCocICgAAAP////8wCocI --CgAAAf////8wCocICgAAAv////8wCocICgAAA/////8wCocICgAABP////8wCocI --CgAABf////8wCocICgAABv////8wCocICgAAB/////8wCocICgAACP////8wCocI --CgAACf////8wCocICgAACv////8wCocICgAAC/////8wCocICgAADP////8wCocI --CgAADf////8wCocICgAADv////8wCocICgAAD/////8wCocICgAAEP////8wCocI --CgAAEf////8wCocICgAAEv////8wCocICgAAE/////8wCocICgAAFP////8wCocI --CgAAFf////8wCocICgAAFv////8wCocICgAAF/////8wCocICgAAGP////8wCocI --CgAAGf////8wCocICgAAGv////8wCocICgAAG/////8wCocICgAAHP////8wCocI --CgAAHf////8wCocICgAAHv////8wCocICgAAH/////8wCocICgAAIP////8wCocI --CgAAIf////8wCocICgAAIv////8wCocICgAAI/////8wCocICgAAJP////8wCocI --CgAAJf////8wCocICgAAJv////8wCocICgAAJ/////8wCocICgAAKP////8wCocI --CgAAKf////8wCocICgAAKv////8wCocICgAAK/////8wCocICgAALP////8wCocI --CgAALf////8wCocICgAALv////8wCocICgAAL/////8wCocICgAAMP////8wCocI --CgAAMf////8wCocICgAAMv////8wCocICgAAM/////8wCocICgAANP////8wCocI --CgAANf////8wCocICgAANv////8wCocICgAAN/////8wCocICgAAOP////8wCocI --CgAAOf////8wCocICgAAOv////8wCocICgAAO/////8wCocICgAAPP////8wCocI --CgAAPf////8wCocICgAAPv////8wCocICgAAP/////8wCocICgAAQP////8wCocI --CgAAQf////8wCocICgAAQv////8wCocICgAAQ/////8wCocICgAARP////8wCocI --CgAARf////8wCocICgAARv////8wCocICgAAR/////8wCocICgAASP////8wCocI --CgAASf////8wCocICgAASv////8wCocICgAAS/////8wCocICgAATP////8wCocI --CgAATf////8wCocICgAATv////8wCocICgAAT/////8wCocICgAAUP////8wCocI --CgAAUf////8wCocICgAAUv////8wCocICgAAU/////8wCocICgAAVP////8wCocI --CgAAVf////8wCocICgAAVv////8wCocICgAAV/////8wCocICgAAWP////8wCocI --CgAAWf////8wCocICgAAWv////8wCocICgAAW/////8wCocICgAAXP////8wCocI --CgAAXf////8wCocICgAAXv////8wCocICgAAX/////8wCocICgAAYP////8wCocI --CgAAYf////8wCocICgAAYv////8wCocICgAAY/////8wCocICgAAZP////8wCocI --CgAAZf////8wCocICgAAZv////8wCocICgAAZ/////8wCocICgAAaP////8wCocI --CgAAaf////8wCocICgAAav////8wCocICgAAa/////8wCocICgAAbP////8wCocI --CgAAbf////8wCocICgAAbv////8wCocICgAAb/////8wCocICgAAcP////8wCocI --CgAAcf////8wCocICgAAcv////8wCocICgAAc/////8wCocICgAAdP////8wCocI --CgAAdf////8wCocICgAAdv////8wCocICgAAd/////8wCocICgAAeP////8wCocI --CgAAef////8wCocICgAAev////8wCocICgAAe/////8wCocICgAAfP////8wCocI --CgAAff////8wCocICgAAfv////8wCocICgAAf/////8wCocICgAAgP////8wCocI --CgAAgf////8wCocICgAAgv////8wCocICgAAg/////8wCocICgAAhP////8wCocI --CgAAhf////8wCocICgAAhv////8wCocICgAAh/////8wCocICgAAiP////8wCocI --CgAAif////8wCocICgAAiv////8wCocICgAAi/////8wCocICgAAjP////8wCocI --CgAAjf////8wCocICgAAjv////8wCocICgAAj/////8wCocICgAAkP////8wCocI --CgAAkf////8wCocICgAAkv////8wCocICgAAk/////8wCocICgAAlP////8wCocI --CgAAlf////8wCocICgAAlv////8wCocICgAAl/////8wCocICgAAmP////8wCocI --CgAAmf////8wCocICgAAmv////8wCocICgAAm/////8wCocICgAAnP////8wCocI --CgAAnf////8wCocICgAAnv////8wCocICgAAn/////8wCocICgAAoP////8wCocI --CgAAof////8wCocICgAAov////8wCocICgAAo/////8wCocICgAApP////8wCocI --CgAApf////8wCocICgAApv////8wCocICgAAp/////8wCocICgAAqP////8wCocI --CgAAqf////8wCocICgAAqv////8wCocICgAAq/////8wCocICgAArP////8wCocI --CgAArf////8wCocICgAArv////8wCocICgAAr/////8wCocICgAAsP////8wCocI --CgAAsf////8wCocICgAAsv////8wCocICgAAs/////8wCocICgAAtP////8wCocI --CgAAtf////8wCocICgAAtv////8wCocICgAAt/////8wCocICgAAuP////8wCocI --CgAAuf////8wCocICgAAuv////8wCocICgAAu/////8wCocICgAAvP////8wCocI --CgAAvf////8wCocICgAAvv////8wCocICgAAv/////8wCocICgAAwP////8wCocI --CgAAwf////8wCocICgAAwv////8wCocICgAAw/////8wCocICgAAxP////8wCocI --CgAAxf////8wCocICgAAxv////8wCocICgAAx/////8wCocICgAAyP////8wCocI --CgAAyf////8wCocICgAAyv////8wCocICgAAy/////8wCocICgAAzP////8wCocI --CgAAzf////8wCocICgAAzv////8wCocICgAAz/////8wCocICgAA0P////8wCocI --CgAA0f////8wCocICgAA0v////8wCocICgAA0/////8wCocICgAA1P////8wCocI --CgAA1f////8wCocICgAA1v////8wCocICgAA1/////8wCocICgAA2P////8wCocI --CgAA2f////8wCocICgAA2v////8wCocICgAA2/////8wCocICgAA3P////8wCocI --CgAA3f////8wCocICgAA3v////8wCocICgAA3/////8wCocICgAA4P////8wCocI --CgAA4f////8wCocICgAA4v////8wCocICgAA4/////8wCocICgAA5P////8wCocI --CgAA5f////8wCocICgAA5v////8wCocICgAA5/////8wCocICgAA6P////8wCocI --CgAA6f////8wCocICgAA6v////8wCocICgAA6/////8wCocICgAA7P////8wCocI --CgAA7f////8wCocICgAA7v////8wCocICgAA7/////8wCocICgAA8P////8wCocI --CgAA8f////8wCocICgAA8v////8wCocICgAA8/////8wCocICgAA9P////8wCocI --CgAA9f////8wCocICgAA9v////8wCocICgAA9/////8wCocICgAA+P////8wCocI --CgAA+f////8wCocICgAA+v////8wCocICgAA+/////8wCocICgAA/P////8wCocI --CgAA/f////8wCocICgAA/v////8wCocICgAA//////8wCocICgABAP////8wCocI --CgABAf////8wCocICgABAv////8wCocICgABA/////8wCocICgABBP////8wCocI --CgABBf////8wCocICgABBv////8wCocICgABB/////8wCocICgABCP////8wCocI --CgABCf////8wCocICgABCv////8wCocICgABC/////8wCocICgABDP////8wCocI --CgABDf////8wCocICgABDv////8wCocICgABD/////8wCocICgABEP////8wCocI --CgABEf////8wCocICgABEv////8wCocICgABE/////8wCocICgABFP////8wCocI --CgABFf////8wCocICgABFv////8wCocICgABF/////8wCocICgABGP////8wCocI --CgABGf////8wCocICgABGv////8wCocICgABG/////8wCocICgABHP////8wCocI --CgABHf////8wCocICgABHv////8wCocICgABH/////8wCocICgABIP////8wCocI --CgABIf////8wCocICgABIv////8wCocICgABI/////8wCocICgABJP////8wCocI --CgABJf////8wCocICgABJv////8wCocICgABJ/////8wCocICgABKP////8wCocI --CgABKf////8wCocICgABKv////8wCocICgABK/////8wCocICgABLP////8wCocI --CgABLf////8wCocICgABLv////8wCocICgABL/////8wCocICgABMP////8wCocI --CgABMf////8wCocICgABMv////8wCocICgABM/////8wCocICgABNP////8wCocI --CgABNf////8wCocICgABNv////8wCocICgABN/////8wCocICgABOP////8wCocI --CgABOf////8wCocICgABOv////8wCocICgABO/////8wCocICgABPP////8wCocI --CgABPf////8wCocICgABPv////8wCocICgABP/////8wCocICgABQP////8wCocI --CgABQf////8wCocICgABQv////8wCocICgABQ/////8wCocICgABRP////8wCocI --CgABRf////8wCocICgABRv////8wCocICgABR/////8wCocICgABSP////8wCocI --CgABSf////8wCocICgABSv////8wCocICgABS/////8wCocICgABTP////8wCocI --CgABTf////8wCocICgABTv////8wCocICgABT/////8wCocICgABUP////8wCocI --CgABUf////8wCocICgABUv////8wCocICgABU/////8wCocICgABVP////8wCocI --CgABVf////8wCocICgABVv////8wCocICgABV/////8wCocICgABWP////8wCocI --CgABWf////8wCocICgABWv////8wCocICgABW/////8wCocICgABXP////8wCocI --CgABXf////8wCocICgABXv////8wCocICgABX/////8wCocICgABYP////8wCocI --CgABYf////8wCocICgABYv////8wCocICgABY/////8wCocICgABZP////8wCocI --CgABZf////8wCocICgABZv////8wCocICgABZ/////8wCocICgABaP////8wCocI --CgABaf////8wCocICgABav////8wCocICgABa/////8wCocICgABbP////8wCocI --CgABbf////8wCocICgABbv////8wCocICgABb/////8wCocICgABcP////8wCocI --CgABcf////8wCocICgABcv////8wCocICgABc/////8wCocICgABdP////8wCocI --CgABdf////8wCocICgABdv////8wCocICgABd/////8wCocICgABeP////8wCocI --CgABef////8wCocICgABev////8wCocICgABe/////8wCocICgABfP////8wCocI --CgABff////8wCocICgABfv////8wCocICgABf/////8wCocICgABgP////8wCocI --CgABgf////8wCocICgABgv////8wCocICgABg/////8wCocICgABhP////8wCocI --CgABhf////8wCocICgABhv////8wCocICgABh/////8wCocICgABiP////8wCocI --CgABif////8wCocICgABiv////8wCocICgABi/////8wCocICgABjP////8wCocI --CgABjf////8wCocICgABjv////8wCocICgABj/////8wCocICgABkP////8wCocI --CgABkf////8wCocICgABkv////8wCocICgABk/////8wCocICgABlP////8wCocI --CgABlf////8wCocICgABlv////8wCocICgABl/////8wCocICgABmP////8wCocI --CgABmf////8wCocICgABmv////8wCocICgABm/////8wCocICgABnP////8wCocI --CgABnf////8wCocICgABnv////8wCocICgABn/////8wCocICgABoP////8wCocI --CgABof////8wCocICgABov////8wEaQPMA0xCzAJBgNVBAMMAnQwMBGkDzANMQsw --CQYDVQQDDAJ0MTARpA8wDTELMAkGA1UEAwwCdDIwEaQPMA0xCzAJBgNVBAMMAnQz --MBGkDzANMQswCQYDVQQDDAJ0NDARpA8wDTELMAkGA1UEAwwCdDUwEaQPMA0xCzAJ --BgNVBAMMAnQ2MBGkDzANMQswCQYDVQQDDAJ0NzARpA8wDTELMAkGA1UEAwwCdDgw --EaQPMA0xCzAJBgNVBAMMAnQ5MBKkEDAOMQwwCgYDVQQDDAN0MTAwEqQQMA4xDDAK --BgNVBAMMA3QxMTASpBAwDjEMMAoGA1UEAwwDdDEyMBKkEDAOMQwwCgYDVQQDDAN0 --MTMwEqQQMA4xDDAKBgNVBAMMA3QxNDASpBAwDjEMMAoGA1UEAwwDdDE1MBKkEDAO --MQwwCgYDVQQDDAN0MTYwEqQQMA4xDDAKBgNVBAMMA3QxNzASpBAwDjEMMAoGA1UE --AwwDdDE4MBKkEDAOMQwwCgYDVQQDDAN0MTkwEqQQMA4xDDAKBgNVBAMMA3QyMDAS --pBAwDjEMMAoGA1UEAwwDdDIxMBKkEDAOMQwwCgYDVQQDDAN0MjIwEqQQMA4xDDAK --BgNVBAMMA3QyMzASpBAwDjEMMAoGA1UEAwwDdDI0MBKkEDAOMQwwCgYDVQQDDAN0 --MjUwEqQQMA4xDDAKBgNVBAMMA3QyNjASpBAwDjEMMAoGA1UEAwwDdDI3MBKkEDAO --MQwwCgYDVQQDDAN0MjgwEqQQMA4xDDAKBgNVBAMMA3QyOTASpBAwDjEMMAoGA1UE --AwwDdDMwMBKkEDAOMQwwCgYDVQQDDAN0MzEwEqQQMA4xDDAKBgNVBAMMA3QzMjAS --pBAwDjEMMAoGA1UEAwwDdDMzMBKkEDAOMQwwCgYDVQQDDAN0MzQwEqQQMA4xDDAK --BgNVBAMMA3QzNTASpBAwDjEMMAoGA1UEAwwDdDM2MBKkEDAOMQwwCgYDVQQDDAN0 --MzcwEqQQMA4xDDAKBgNVBAMMA3QzODASpBAwDjEMMAoGA1UEAwwDdDM5MBKkEDAO --MQwwCgYDVQQDDAN0NDAwEqQQMA4xDDAKBgNVBAMMA3Q0MTASpBAwDjEMMAoGA1UE --AwwDdDQyMBKkEDAOMQwwCgYDVQQDDAN0NDMwEqQQMA4xDDAKBgNVBAMMA3Q0NDAS --pBAwDjEMMAoGA1UEAwwDdDQ1MBKkEDAOMQwwCgYDVQQDDAN0NDYwEqQQMA4xDDAK --BgNVBAMMA3Q0NzASpBAwDjEMMAoGA1UEAwwDdDQ4MBKkEDAOMQwwCgYDVQQDDAN0 --NDkwEqQQMA4xDDAKBgNVBAMMA3Q1MDASpBAwDjEMMAoGA1UEAwwDdDUxMBKkEDAO --MQwwCgYDVQQDDAN0NTIwEqQQMA4xDDAKBgNVBAMMA3Q1MzASpBAwDjEMMAoGA1UE --AwwDdDU0MBKkEDAOMQwwCgYDVQQDDAN0NTUwEqQQMA4xDDAKBgNVBAMMA3Q1NjAS --pBAwDjEMMAoGA1UEAwwDdDU3MBKkEDAOMQwwCgYDVQQDDAN0NTgwEqQQMA4xDDAK --BgNVBAMMA3Q1OTASpBAwDjEMMAoGA1UEAwwDdDYwMBKkEDAOMQwwCgYDVQQDDAN0 --NjEwEqQQMA4xDDAKBgNVBAMMA3Q2MjASpBAwDjEMMAoGA1UEAwwDdDYzMBKkEDAO --MQwwCgYDVQQDDAN0NjQwEqQQMA4xDDAKBgNVBAMMA3Q2NTASpBAwDjEMMAoGA1UE --AwwDdDY2MBKkEDAOMQwwCgYDVQQDDAN0NjcwEqQQMA4xDDAKBgNVBAMMA3Q2ODAS --pBAwDjEMMAoGA1UEAwwDdDY5MBKkEDAOMQwwCgYDVQQDDAN0NzAwEqQQMA4xDDAK --BgNVBAMMA3Q3MTASpBAwDjEMMAoGA1UEAwwDdDcyMBKkEDAOMQwwCgYDVQQDDAN0 --NzMwEqQQMA4xDDAKBgNVBAMMA3Q3NDASpBAwDjEMMAoGA1UEAwwDdDc1MBKkEDAO --MQwwCgYDVQQDDAN0NzYwEqQQMA4xDDAKBgNVBAMMA3Q3NzASpBAwDjEMMAoGA1UE --AwwDdDc4MBKkEDAOMQwwCgYDVQQDDAN0NzkwEqQQMA4xDDAKBgNVBAMMA3Q4MDAS --pBAwDjEMMAoGA1UEAwwDdDgxMBKkEDAOMQwwCgYDVQQDDAN0ODIwEqQQMA4xDDAK --BgNVBAMMA3Q4MzASpBAwDjEMMAoGA1UEAwwDdDg0MBKkEDAOMQwwCgYDVQQDDAN0 --ODUwEqQQMA4xDDAKBgNVBAMMA3Q4NjASpBAwDjEMMAoGA1UEAwwDdDg3MBKkEDAO --MQwwCgYDVQQDDAN0ODgwEqQQMA4xDDAKBgNVBAMMA3Q4OTASpBAwDjEMMAoGA1UE --AwwDdDkwMBKkEDAOMQwwCgYDVQQDDAN0OTEwEqQQMA4xDDAKBgNVBAMMA3Q5MjAS --pBAwDjEMMAoGA1UEAwwDdDkzMBKkEDAOMQwwCgYDVQQDDAN0OTQwEqQQMA4xDDAK --BgNVBAMMA3Q5NTASpBAwDjEMMAoGA1UEAwwDdDk2MBKkEDAOMQwwCgYDVQQDDAN0 --OTcwEqQQMA4xDDAKBgNVBAMMA3Q5ODASpBAwDjEMMAoGA1UEAwwDdDk5MBOkETAP --MQ0wCwYDVQQDDAR0MTAwMBOkETAPMQ0wCwYDVQQDDAR0MTAxMBOkETAPMQ0wCwYD --VQQDDAR0MTAyMBOkETAPMQ0wCwYDVQQDDAR0MTAzMBOkETAPMQ0wCwYDVQQDDAR0 --MTA0MBOkETAPMQ0wCwYDVQQDDAR0MTA1MBOkETAPMQ0wCwYDVQQDDAR0MTA2MBOk --ETAPMQ0wCwYDVQQDDAR0MTA3MBOkETAPMQ0wCwYDVQQDDAR0MTA4MBOkETAPMQ0w --CwYDVQQDDAR0MTA5MBOkETAPMQ0wCwYDVQQDDAR0MTEwMBOkETAPMQ0wCwYDVQQD --DAR0MTExMBOkETAPMQ0wCwYDVQQDDAR0MTEyMBOkETAPMQ0wCwYDVQQDDAR0MTEz --MBOkETAPMQ0wCwYDVQQDDAR0MTE0MBOkETAPMQ0wCwYDVQQDDAR0MTE1MBOkETAP --MQ0wCwYDVQQDDAR0MTE2MBOkETAPMQ0wCwYDVQQDDAR0MTE3MBOkETAPMQ0wCwYD --VQQDDAR0MTE4MBOkETAPMQ0wCwYDVQQDDAR0MTE5MBOkETAPMQ0wCwYDVQQDDAR0 --MTIwMBOkETAPMQ0wCwYDVQQDDAR0MTIxMBOkETAPMQ0wCwYDVQQDDAR0MTIyMBOk --ETAPMQ0wCwYDVQQDDAR0MTIzMBOkETAPMQ0wCwYDVQQDDAR0MTI0MBOkETAPMQ0w --CwYDVQQDDAR0MTI1MBOkETAPMQ0wCwYDVQQDDAR0MTI2MBOkETAPMQ0wCwYDVQQD --DAR0MTI3MBOkETAPMQ0wCwYDVQQDDAR0MTI4MBOkETAPMQ0wCwYDVQQDDAR0MTI5 --MBOkETAPMQ0wCwYDVQQDDAR0MTMwMBOkETAPMQ0wCwYDVQQDDAR0MTMxMBOkETAP --MQ0wCwYDVQQDDAR0MTMyMBOkETAPMQ0wCwYDVQQDDAR0MTMzMBOkETAPMQ0wCwYD --VQQDDAR0MTM0MBOkETAPMQ0wCwYDVQQDDAR0MTM1MBOkETAPMQ0wCwYDVQQDDAR0 --MTM2MBOkETAPMQ0wCwYDVQQDDAR0MTM3MBOkETAPMQ0wCwYDVQQDDAR0MTM4MBOk --ETAPMQ0wCwYDVQQDDAR0MTM5MBOkETAPMQ0wCwYDVQQDDAR0MTQwMBOkETAPMQ0w --CwYDVQQDDAR0MTQxMBOkETAPMQ0wCwYDVQQDDAR0MTQyMBOkETAPMQ0wCwYDVQQD --DAR0MTQzMBOkETAPMQ0wCwYDVQQDDAR0MTQ0MBOkETAPMQ0wCwYDVQQDDAR0MTQ1 --MBOkETAPMQ0wCwYDVQQDDAR0MTQ2MBOkETAPMQ0wCwYDVQQDDAR0MTQ3MBOkETAP --MQ0wCwYDVQQDDAR0MTQ4MBOkETAPMQ0wCwYDVQQDDAR0MTQ5MBOkETAPMQ0wCwYD --VQQDDAR0MTUwMBOkETAPMQ0wCwYDVQQDDAR0MTUxMBOkETAPMQ0wCwYDVQQDDAR0 --MTUyMBOkETAPMQ0wCwYDVQQDDAR0MTUzMBOkETAPMQ0wCwYDVQQDDAR0MTU0MBOk --ETAPMQ0wCwYDVQQDDAR0MTU1MBOkETAPMQ0wCwYDVQQDDAR0MTU2MBOkETAPMQ0w --CwYDVQQDDAR0MTU3MBOkETAPMQ0wCwYDVQQDDAR0MTU4MBOkETAPMQ0wCwYDVQQD --DAR0MTU5MBOkETAPMQ0wCwYDVQQDDAR0MTYwMBOkETAPMQ0wCwYDVQQDDAR0MTYx --MBOkETAPMQ0wCwYDVQQDDAR0MTYyMBOkETAPMQ0wCwYDVQQDDAR0MTYzMBOkETAP --MQ0wCwYDVQQDDAR0MTY0MBOkETAPMQ0wCwYDVQQDDAR0MTY1MBOkETAPMQ0wCwYD --VQQDDAR0MTY2MBOkETAPMQ0wCwYDVQQDDAR0MTY3MBOkETAPMQ0wCwYDVQQDDAR0 --MTY4MBOkETAPMQ0wCwYDVQQDDAR0MTY5MBOkETAPMQ0wCwYDVQQDDAR0MTcwMBOk --ETAPMQ0wCwYDVQQDDAR0MTcxMBOkETAPMQ0wCwYDVQQDDAR0MTcyMBOkETAPMQ0w --CwYDVQQDDAR0MTczMBOkETAPMQ0wCwYDVQQDDAR0MTc0MBOkETAPMQ0wCwYDVQQD --DAR0MTc1MBOkETAPMQ0wCwYDVQQDDAR0MTc2MBOkETAPMQ0wCwYDVQQDDAR0MTc3 --MBOkETAPMQ0wCwYDVQQDDAR0MTc4MBOkETAPMQ0wCwYDVQQDDAR0MTc5MBOkETAP --MQ0wCwYDVQQDDAR0MTgwMBOkETAPMQ0wCwYDVQQDDAR0MTgxMBOkETAPMQ0wCwYD --VQQDDAR0MTgyMBOkETAPMQ0wCwYDVQQDDAR0MTgzMBOkETAPMQ0wCwYDVQQDDAR0 --MTg0MBOkETAPMQ0wCwYDVQQDDAR0MTg1MBOkETAPMQ0wCwYDVQQDDAR0MTg2MBOk --ETAPMQ0wCwYDVQQDDAR0MTg3MBOkETAPMQ0wCwYDVQQDDAR0MTg4MBOkETAPMQ0w --CwYDVQQDDAR0MTg5MBOkETAPMQ0wCwYDVQQDDAR0MTkwMBOkETAPMQ0wCwYDVQQD --DAR0MTkxMBOkETAPMQ0wCwYDVQQDDAR0MTkyMBOkETAPMQ0wCwYDVQQDDAR0MTkz --MBOkETAPMQ0wCwYDVQQDDAR0MTk0MBOkETAPMQ0wCwYDVQQDDAR0MTk1MBOkETAP --MQ0wCwYDVQQDDAR0MTk2MBOkETAPMQ0wCwYDVQQDDAR0MTk3MBOkETAPMQ0wCwYD --VQQDDAR0MTk4MBOkETAPMQ0wCwYDVQQDDAR0MTk5MBOkETAPMQ0wCwYDVQQDDAR0 --MjAwMBOkETAPMQ0wCwYDVQQDDAR0MjAxMBOkETAPMQ0wCwYDVQQDDAR0MjAyMBOk --ETAPMQ0wCwYDVQQDDAR0MjAzMBOkETAPMQ0wCwYDVQQDDAR0MjA0MBOkETAPMQ0w --CwYDVQQDDAR0MjA1MBOkETAPMQ0wCwYDVQQDDAR0MjA2MBOkETAPMQ0wCwYDVQQD --DAR0MjA3MBOkETAPMQ0wCwYDVQQDDAR0MjA4MBOkETAPMQ0wCwYDVQQDDAR0MjA5 --MBOkETAPMQ0wCwYDVQQDDAR0MjEwMBOkETAPMQ0wCwYDVQQDDAR0MjExMBOkETAP --MQ0wCwYDVQQDDAR0MjEyMBOkETAPMQ0wCwYDVQQDDAR0MjEzMBOkETAPMQ0wCwYD --VQQDDAR0MjE0MBOkETAPMQ0wCwYDVQQDDAR0MjE1MBOkETAPMQ0wCwYDVQQDDAR0 --MjE2MBOkETAPMQ0wCwYDVQQDDAR0MjE3MBOkETAPMQ0wCwYDVQQDDAR0MjE4MBOk --ETAPMQ0wCwYDVQQDDAR0MjE5MBOkETAPMQ0wCwYDVQQDDAR0MjIwMBOkETAPMQ0w --CwYDVQQDDAR0MjIxMBOkETAPMQ0wCwYDVQQDDAR0MjIyMBOkETAPMQ0wCwYDVQQD --DAR0MjIzMBOkETAPMQ0wCwYDVQQDDAR0MjI0MBOkETAPMQ0wCwYDVQQDDAR0MjI1 --MBOkETAPMQ0wCwYDVQQDDAR0MjI2MBOkETAPMQ0wCwYDVQQDDAR0MjI3MBOkETAP --MQ0wCwYDVQQDDAR0MjI4MBOkETAPMQ0wCwYDVQQDDAR0MjI5MBOkETAPMQ0wCwYD --VQQDDAR0MjMwMBOkETAPMQ0wCwYDVQQDDAR0MjMxMBOkETAPMQ0wCwYDVQQDDAR0 --MjMyMBOkETAPMQ0wCwYDVQQDDAR0MjMzMBOkETAPMQ0wCwYDVQQDDAR0MjM0MBOk --ETAPMQ0wCwYDVQQDDAR0MjM1MBOkETAPMQ0wCwYDVQQDDAR0MjM2MBOkETAPMQ0w --CwYDVQQDDAR0MjM3MBOkETAPMQ0wCwYDVQQDDAR0MjM4MBOkETAPMQ0wCwYDVQQD --DAR0MjM5MBOkETAPMQ0wCwYDVQQDDAR0MjQwMBOkETAPMQ0wCwYDVQQDDAR0MjQx --MBOkETAPMQ0wCwYDVQQDDAR0MjQyMBOkETAPMQ0wCwYDVQQDDAR0MjQzMBOkETAP --MQ0wCwYDVQQDDAR0MjQ0MBOkETAPMQ0wCwYDVQQDDAR0MjQ1MBOkETAPMQ0wCwYD --VQQDDAR0MjQ2MBOkETAPMQ0wCwYDVQQDDAR0MjQ3MBOkETAPMQ0wCwYDVQQDDAR0 --MjQ4MBOkETAPMQ0wCwYDVQQDDAR0MjQ5MBOkETAPMQ0wCwYDVQQDDAR0MjUwMBOk --ETAPMQ0wCwYDVQQDDAR0MjUxMBOkETAPMQ0wCwYDVQQDDAR0MjUyMBOkETAPMQ0w --CwYDVQQDDAR0MjUzMBOkETAPMQ0wCwYDVQQDDAR0MjU0MBOkETAPMQ0wCwYDVQQD --DAR0MjU1MBOkETAPMQ0wCwYDVQQDDAR0MjU2MBOkETAPMQ0wCwYDVQQDDAR0MjU3 --MBOkETAPMQ0wCwYDVQQDDAR0MjU4MBOkETAPMQ0wCwYDVQQDDAR0MjU5MBOkETAP --MQ0wCwYDVQQDDAR0MjYwMBOkETAPMQ0wCwYDVQQDDAR0MjYxMBOkETAPMQ0wCwYD --VQQDDAR0MjYyMBOkETAPMQ0wCwYDVQQDDAR0MjYzMBOkETAPMQ0wCwYDVQQDDAR0 --MjY0MBOkETAPMQ0wCwYDVQQDDAR0MjY1MBOkETAPMQ0wCwYDVQQDDAR0MjY2MBOk --ETAPMQ0wCwYDVQQDDAR0MjY3MBOkETAPMQ0wCwYDVQQDDAR0MjY4MBOkETAPMQ0w --CwYDVQQDDAR0MjY5MBOkETAPMQ0wCwYDVQQDDAR0MjcwMBOkETAPMQ0wCwYDVQQD --DAR0MjcxMBOkETAPMQ0wCwYDVQQDDAR0MjcyMBOkETAPMQ0wCwYDVQQDDAR0Mjcz --MBOkETAPMQ0wCwYDVQQDDAR0Mjc0MBOkETAPMQ0wCwYDVQQDDAR0Mjc1MBOkETAP --MQ0wCwYDVQQDDAR0Mjc2MBOkETAPMQ0wCwYDVQQDDAR0Mjc3MBOkETAPMQ0wCwYD --VQQDDAR0Mjc4MBOkETAPMQ0wCwYDVQQDDAR0Mjc5MBOkETAPMQ0wCwYDVQQDDAR0 --MjgwMBOkETAPMQ0wCwYDVQQDDAR0MjgxMBOkETAPMQ0wCwYDVQQDDAR0MjgyMBOk --ETAPMQ0wCwYDVQQDDAR0MjgzMBOkETAPMQ0wCwYDVQQDDAR0Mjg0MBOkETAPMQ0w --CwYDVQQDDAR0Mjg1MBOkETAPMQ0wCwYDVQQDDAR0Mjg2MBOkETAPMQ0wCwYDVQQD --DAR0Mjg3MBOkETAPMQ0wCwYDVQQDDAR0Mjg4MBOkETAPMQ0wCwYDVQQDDAR0Mjg5 --MBOkETAPMQ0wCwYDVQQDDAR0MjkwMBOkETAPMQ0wCwYDVQQDDAR0MjkxMBOkETAP --MQ0wCwYDVQQDDAR0MjkyMBOkETAPMQ0wCwYDVQQDDAR0MjkzMBOkETAPMQ0wCwYD --VQQDDAR0Mjk0MBOkETAPMQ0wCwYDVQQDDAR0Mjk1MBOkETAPMQ0wCwYDVQQDDAR0 --Mjk2MBOkETAPMQ0wCwYDVQQDDAR0Mjk3MBOkETAPMQ0wCwYDVQQDDAR0Mjk4MBOk --ETAPMQ0wCwYDVQQDDAR0Mjk5MBOkETAPMQ0wCwYDVQQDDAR0MzAwMBOkETAPMQ0w --CwYDVQQDDAR0MzAxMBOkETAPMQ0wCwYDVQQDDAR0MzAyMBOkETAPMQ0wCwYDVQQD --DAR0MzAzMBOkETAPMQ0wCwYDVQQDDAR0MzA0MBOkETAPMQ0wCwYDVQQDDAR0MzA1 --MBOkETAPMQ0wCwYDVQQDDAR0MzA2MBOkETAPMQ0wCwYDVQQDDAR0MzA3MBOkETAP --MQ0wCwYDVQQDDAR0MzA4MBOkETAPMQ0wCwYDVQQDDAR0MzA5MBOkETAPMQ0wCwYD --VQQDDAR0MzEwMBOkETAPMQ0wCwYDVQQDDAR0MzExMBOkETAPMQ0wCwYDVQQDDAR0 --MzEyMBOkETAPMQ0wCwYDVQQDDAR0MzEzMBOkETAPMQ0wCwYDVQQDDAR0MzE0MBOk --ETAPMQ0wCwYDVQQDDAR0MzE1MBOkETAPMQ0wCwYDVQQDDAR0MzE2MBOkETAPMQ0w --CwYDVQQDDAR0MzE3MBOkETAPMQ0wCwYDVQQDDAR0MzE4MBOkETAPMQ0wCwYDVQQD --DAR0MzE5MBOkETAPMQ0wCwYDVQQDDAR0MzIwMBOkETAPMQ0wCwYDVQQDDAR0MzIx --MBOkETAPMQ0wCwYDVQQDDAR0MzIyMBOkETAPMQ0wCwYDVQQDDAR0MzIzMBOkETAP --MQ0wCwYDVQQDDAR0MzI0MBOkETAPMQ0wCwYDVQQDDAR0MzI1MBOkETAPMQ0wCwYD --VQQDDAR0MzI2MBOkETAPMQ0wCwYDVQQDDAR0MzI3MBOkETAPMQ0wCwYDVQQDDAR0 --MzI4MBOkETAPMQ0wCwYDVQQDDAR0MzI5MBOkETAPMQ0wCwYDVQQDDAR0MzMwMBOk --ETAPMQ0wCwYDVQQDDAR0MzMxMBOkETAPMQ0wCwYDVQQDDAR0MzMyMBOkETAPMQ0w --CwYDVQQDDAR0MzMzMBOkETAPMQ0wCwYDVQQDDAR0MzM0MBOkETAPMQ0wCwYDVQQD --DAR0MzM1MBOkETAPMQ0wCwYDVQQDDAR0MzM2MBOkETAPMQ0wCwYDVQQDDAR0MzM3 --MBOkETAPMQ0wCwYDVQQDDAR0MzM4MBOkETAPMQ0wCwYDVQQDDAR0MzM5MBOkETAP --MQ0wCwYDVQQDDAR0MzQwMBOkETAPMQ0wCwYDVQQDDAR0MzQxMBOkETAPMQ0wCwYD --VQQDDAR0MzQyMBOkETAPMQ0wCwYDVQQDDAR0MzQzMBOkETAPMQ0wCwYDVQQDDAR0 --MzQ0MBOkETAPMQ0wCwYDVQQDDAR0MzQ1MBOkETAPMQ0wCwYDVQQDDAR0MzQ2MBOk --ETAPMQ0wCwYDVQQDDAR0MzQ3MBOkETAPMQ0wCwYDVQQDDAR0MzQ4MBOkETAPMQ0w --CwYDVQQDDAR0MzQ5MBOkETAPMQ0wCwYDVQQDDAR0MzUwMBOkETAPMQ0wCwYDVQQD --DAR0MzUxMBOkETAPMQ0wCwYDVQQDDAR0MzUyMBOkETAPMQ0wCwYDVQQDDAR0MzUz --MBOkETAPMQ0wCwYDVQQDDAR0MzU0MBOkETAPMQ0wCwYDVQQDDAR0MzU1MBOkETAP --MQ0wCwYDVQQDDAR0MzU2MBOkETAPMQ0wCwYDVQQDDAR0MzU3MBOkETAPMQ0wCwYD --VQQDDAR0MzU4MBOkETAPMQ0wCwYDVQQDDAR0MzU5MBOkETAPMQ0wCwYDVQQDDAR0 --MzYwMBOkETAPMQ0wCwYDVQQDDAR0MzYxMBOkETAPMQ0wCwYDVQQDDAR0MzYyMBOk --ETAPMQ0wCwYDVQQDDAR0MzYzMBOkETAPMQ0wCwYDVQQDDAR0MzY0MBOkETAPMQ0w --CwYDVQQDDAR0MzY1MBOkETAPMQ0wCwYDVQQDDAR0MzY2MBOkETAPMQ0wCwYDVQQD --DAR0MzY3MBOkETAPMQ0wCwYDVQQDDAR0MzY4MBOkETAPMQ0wCwYDVQQDDAR0MzY5 --MBOkETAPMQ0wCwYDVQQDDAR0MzcwMBOkETAPMQ0wCwYDVQQDDAR0MzcxMBOkETAP --MQ0wCwYDVQQDDAR0MzcyMBOkETAPMQ0wCwYDVQQDDAR0MzczMBOkETAPMQ0wCwYD --VQQDDAR0Mzc0MBOkETAPMQ0wCwYDVQQDDAR0Mzc1MBOkETAPMQ0wCwYDVQQDDAR0 --Mzc2MBOkETAPMQ0wCwYDVQQDDAR0Mzc3MBOkETAPMQ0wCwYDVQQDDAR0Mzc4MBOk --ETAPMQ0wCwYDVQQDDAR0Mzc5MBOkETAPMQ0wCwYDVQQDDAR0MzgwMBOkETAPMQ0w --CwYDVQQDDAR0MzgxMBOkETAPMQ0wCwYDVQQDDAR0MzgyMBOkETAPMQ0wCwYDVQQD --DAR0MzgzMBOkETAPMQ0wCwYDVQQDDAR0Mzg0MBOkETAPMQ0wCwYDVQQDDAR0Mzg1 --MBOkETAPMQ0wCwYDVQQDDAR0Mzg2MBOkETAPMQ0wCwYDVQQDDAR0Mzg3MBOkETAP --MQ0wCwYDVQQDDAR0Mzg4MBOkETAPMQ0wCwYDVQQDDAR0Mzg5MBOkETAPMQ0wCwYD --VQQDDAR0MzkwMBOkETAPMQ0wCwYDVQQDDAR0MzkxMBOkETAPMQ0wCwYDVQQDDAR0 --MzkyMBOkETAPMQ0wCwYDVQQDDAR0MzkzMBOkETAPMQ0wCwYDVQQDDAR0Mzk0MBOk --ETAPMQ0wCwYDVQQDDAR0Mzk1MBOkETAPMQ0wCwYDVQQDDAR0Mzk2MBOkETAPMQ0w --CwYDVQQDDAR0Mzk3MBOkETAPMQ0wCwYDVQQDDAR0Mzk4MBOkETAPMQ0wCwYDVQQD --DAR0Mzk5MBOkETAPMQ0wCwYDVQQDDAR0NDAwMBOkETAPMQ0wCwYDVQQDDAR0NDAx --MBOkETAPMQ0wCwYDVQQDDAR0NDAyMBOkETAPMQ0wCwYDVQQDDAR0NDAzMBOkETAP --MQ0wCwYDVQQDDAR0NDA0MBOkETAPMQ0wCwYDVQQDDAR0NDA1MBOkETAPMQ0wCwYD --VQQDDAR0NDA2MBOkETAPMQ0wCwYDVQQDDAR0NDA3MBOkETAPMQ0wCwYDVQQDDAR0 --NDA4MBOkETAPMQ0wCwYDVQQDDAR0NDA5MBOkETAPMQ0wCwYDVQQDDAR0NDEwMBOk --ETAPMQ0wCwYDVQQDDAR0NDExMBOkETAPMQ0wCwYDVQQDDAR0NDEyMBOkETAPMQ0w --CwYDVQQDDAR0NDEzMBOkETAPMQ0wCwYDVQQDDAR0NDE0MBOkETAPMQ0wCwYDVQQD --DAR0NDE1MBOkETAPMQ0wCwYDVQQDDAR0NDE2MBOkETAPMQ0wCwYDVQQDDAR0NDE3 --MBOkETAPMQ0wCwYDVQQDDAR0NDE4oYJKbjAJggd4MC50ZXN0MAmCB3gxLnRlc3Qw --CYIHeDIudGVzdDAJggd4My50ZXN0MAmCB3g0LnRlc3QwCYIHeDUudGVzdDAJggd4 --Ni50ZXN0MAmCB3g3LnRlc3QwCYIHeDgudGVzdDAJggd4OS50ZXN0MAqCCHgxMC50 --ZXN0MAqCCHgxMS50ZXN0MAqCCHgxMi50ZXN0MAqCCHgxMy50ZXN0MAqCCHgxNC50 --ZXN0MAqCCHgxNS50ZXN0MAqCCHgxNi50ZXN0MAqCCHgxNy50ZXN0MAqCCHgxOC50 --ZXN0MAqCCHgxOS50ZXN0MAqCCHgyMC50ZXN0MAqCCHgyMS50ZXN0MAqCCHgyMi50 --ZXN0MAqCCHgyMy50ZXN0MAqCCHgyNC50ZXN0MAqCCHgyNS50ZXN0MAqCCHgyNi50 --ZXN0MAqCCHgyNy50ZXN0MAqCCHgyOC50ZXN0MAqCCHgyOS50ZXN0MAqCCHgzMC50 --ZXN0MAqCCHgzMS50ZXN0MAqCCHgzMi50ZXN0MAqCCHgzMy50ZXN0MAqCCHgzNC50 --ZXN0MAqCCHgzNS50ZXN0MAqCCHgzNi50ZXN0MAqCCHgzNy50ZXN0MAqCCHgzOC50 --ZXN0MAqCCHgzOS50ZXN0MAqCCHg0MC50ZXN0MAqCCHg0MS50ZXN0MAqCCHg0Mi50 --ZXN0MAqCCHg0My50ZXN0MAqCCHg0NC50ZXN0MAqCCHg0NS50ZXN0MAqCCHg0Ni50 --ZXN0MAqCCHg0Ny50ZXN0MAqCCHg0OC50ZXN0MAqCCHg0OS50ZXN0MAqCCHg1MC50 --ZXN0MAqCCHg1MS50ZXN0MAqCCHg1Mi50ZXN0MAqCCHg1My50ZXN0MAqCCHg1NC50 --ZXN0MAqCCHg1NS50ZXN0MAqCCHg1Ni50ZXN0MAqCCHg1Ny50ZXN0MAqCCHg1OC50 --ZXN0MAqCCHg1OS50ZXN0MAqCCHg2MC50ZXN0MAqCCHg2MS50ZXN0MAqCCHg2Mi50 --ZXN0MAqCCHg2My50ZXN0MAqCCHg2NC50ZXN0MAqCCHg2NS50ZXN0MAqCCHg2Ni50 --ZXN0MAqCCHg2Ny50ZXN0MAqCCHg2OC50ZXN0MAqCCHg2OS50ZXN0MAqCCHg3MC50 --ZXN0MAqCCHg3MS50ZXN0MAqCCHg3Mi50ZXN0MAqCCHg3My50ZXN0MAqCCHg3NC50 --ZXN0MAqCCHg3NS50ZXN0MAqCCHg3Ni50ZXN0MAqCCHg3Ny50ZXN0MAqCCHg3OC50 --ZXN0MAqCCHg3OS50ZXN0MAqCCHg4MC50ZXN0MAqCCHg4MS50ZXN0MAqCCHg4Mi50 --ZXN0MAqCCHg4My50ZXN0MAqCCHg4NC50ZXN0MAqCCHg4NS50ZXN0MAqCCHg4Ni50 --ZXN0MAqCCHg4Ny50ZXN0MAqCCHg4OC50ZXN0MAqCCHg4OS50ZXN0MAqCCHg5MC50 --ZXN0MAqCCHg5MS50ZXN0MAqCCHg5Mi50ZXN0MAqCCHg5My50ZXN0MAqCCHg5NC50 --ZXN0MAqCCHg5NS50ZXN0MAqCCHg5Ni50ZXN0MAqCCHg5Ny50ZXN0MAqCCHg5OC50 --ZXN0MAqCCHg5OS50ZXN0MAuCCXgxMDAudGVzdDALggl4MTAxLnRlc3QwC4IJeDEw --Mi50ZXN0MAuCCXgxMDMudGVzdDALggl4MTA0LnRlc3QwC4IJeDEwNS50ZXN0MAuC --CXgxMDYudGVzdDALggl4MTA3LnRlc3QwC4IJeDEwOC50ZXN0MAuCCXgxMDkudGVz --dDALggl4MTEwLnRlc3QwC4IJeDExMS50ZXN0MAuCCXgxMTIudGVzdDALggl4MTEz --LnRlc3QwC4IJeDExNC50ZXN0MAuCCXgxMTUudGVzdDALggl4MTE2LnRlc3QwC4IJ --eDExNy50ZXN0MAuCCXgxMTgudGVzdDALggl4MTE5LnRlc3QwC4IJeDEyMC50ZXN0 --MAuCCXgxMjEudGVzdDALggl4MTIyLnRlc3QwC4IJeDEyMy50ZXN0MAuCCXgxMjQu --dGVzdDALggl4MTI1LnRlc3QwC4IJeDEyNi50ZXN0MAuCCXgxMjcudGVzdDALggl4 --MTI4LnRlc3QwC4IJeDEyOS50ZXN0MAuCCXgxMzAudGVzdDALggl4MTMxLnRlc3Qw --C4IJeDEzMi50ZXN0MAuCCXgxMzMudGVzdDALggl4MTM0LnRlc3QwC4IJeDEzNS50 --ZXN0MAuCCXgxMzYudGVzdDALggl4MTM3LnRlc3QwC4IJeDEzOC50ZXN0MAuCCXgx --MzkudGVzdDALggl4MTQwLnRlc3QwC4IJeDE0MS50ZXN0MAuCCXgxNDIudGVzdDAL --ggl4MTQzLnRlc3QwC4IJeDE0NC50ZXN0MAuCCXgxNDUudGVzdDALggl4MTQ2LnRl --c3QwC4IJeDE0Ny50ZXN0MAuCCXgxNDgudGVzdDALggl4MTQ5LnRlc3QwC4IJeDE1 --MC50ZXN0MAuCCXgxNTEudGVzdDALggl4MTUyLnRlc3QwC4IJeDE1My50ZXN0MAuC --CXgxNTQudGVzdDALggl4MTU1LnRlc3QwC4IJeDE1Ni50ZXN0MAuCCXgxNTcudGVz --dDALggl4MTU4LnRlc3QwC4IJeDE1OS50ZXN0MAuCCXgxNjAudGVzdDALggl4MTYx --LnRlc3QwC4IJeDE2Mi50ZXN0MAuCCXgxNjMudGVzdDALggl4MTY0LnRlc3QwC4IJ --eDE2NS50ZXN0MAuCCXgxNjYudGVzdDALggl4MTY3LnRlc3QwC4IJeDE2OC50ZXN0 --MAuCCXgxNjkudGVzdDALggl4MTcwLnRlc3QwC4IJeDE3MS50ZXN0MAuCCXgxNzIu --dGVzdDALggl4MTczLnRlc3QwC4IJeDE3NC50ZXN0MAuCCXgxNzUudGVzdDALggl4 --MTc2LnRlc3QwC4IJeDE3Ny50ZXN0MAuCCXgxNzgudGVzdDALggl4MTc5LnRlc3Qw --C4IJeDE4MC50ZXN0MAuCCXgxODEudGVzdDALggl4MTgyLnRlc3QwC4IJeDE4My50 --ZXN0MAuCCXgxODQudGVzdDALggl4MTg1LnRlc3QwC4IJeDE4Ni50ZXN0MAuCCXgx --ODcudGVzdDALggl4MTg4LnRlc3QwC4IJeDE4OS50ZXN0MAuCCXgxOTAudGVzdDAL --ggl4MTkxLnRlc3QwC4IJeDE5Mi50ZXN0MAuCCXgxOTMudGVzdDALggl4MTk0LnRl --c3QwC4IJeDE5NS50ZXN0MAuCCXgxOTYudGVzdDALggl4MTk3LnRlc3QwC4IJeDE5 --OC50ZXN0MAuCCXgxOTkudGVzdDALggl4MjAwLnRlc3QwC4IJeDIwMS50ZXN0MAuC --CXgyMDIudGVzdDALggl4MjAzLnRlc3QwC4IJeDIwNC50ZXN0MAuCCXgyMDUudGVz --dDALggl4MjA2LnRlc3QwC4IJeDIwNy50ZXN0MAuCCXgyMDgudGVzdDALggl4MjA5 --LnRlc3QwC4IJeDIxMC50ZXN0MAuCCXgyMTEudGVzdDALggl4MjEyLnRlc3QwC4IJ --eDIxMy50ZXN0MAuCCXgyMTQudGVzdDALggl4MjE1LnRlc3QwC4IJeDIxNi50ZXN0 --MAuCCXgyMTcudGVzdDALggl4MjE4LnRlc3QwC4IJeDIxOS50ZXN0MAuCCXgyMjAu --dGVzdDALggl4MjIxLnRlc3QwC4IJeDIyMi50ZXN0MAuCCXgyMjMudGVzdDALggl4 --MjI0LnRlc3QwC4IJeDIyNS50ZXN0MAuCCXgyMjYudGVzdDALggl4MjI3LnRlc3Qw --C4IJeDIyOC50ZXN0MAuCCXgyMjkudGVzdDALggl4MjMwLnRlc3QwC4IJeDIzMS50 --ZXN0MAuCCXgyMzIudGVzdDALggl4MjMzLnRlc3QwC4IJeDIzNC50ZXN0MAuCCXgy --MzUudGVzdDALggl4MjM2LnRlc3QwC4IJeDIzNy50ZXN0MAuCCXgyMzgudGVzdDAL --ggl4MjM5LnRlc3QwC4IJeDI0MC50ZXN0MAuCCXgyNDEudGVzdDALggl4MjQyLnRl --c3QwC4IJeDI0My50ZXN0MAuCCXgyNDQudGVzdDALggl4MjQ1LnRlc3QwC4IJeDI0 --Ni50ZXN0MAuCCXgyNDcudGVzdDALggl4MjQ4LnRlc3QwC4IJeDI0OS50ZXN0MAuC --CXgyNTAudGVzdDALggl4MjUxLnRlc3QwC4IJeDI1Mi50ZXN0MAuCCXgyNTMudGVz --dDALggl4MjU0LnRlc3QwC4IJeDI1NS50ZXN0MAuCCXgyNTYudGVzdDALggl4MjU3 --LnRlc3QwC4IJeDI1OC50ZXN0MAuCCXgyNTkudGVzdDALggl4MjYwLnRlc3QwC4IJ --eDI2MS50ZXN0MAuCCXgyNjIudGVzdDALggl4MjYzLnRlc3QwC4IJeDI2NC50ZXN0 --MAuCCXgyNjUudGVzdDALggl4MjY2LnRlc3QwC4IJeDI2Ny50ZXN0MAuCCXgyNjgu --dGVzdDALggl4MjY5LnRlc3QwC4IJeDI3MC50ZXN0MAuCCXgyNzEudGVzdDALggl4 --MjcyLnRlc3QwC4IJeDI3My50ZXN0MAuCCXgyNzQudGVzdDALggl4Mjc1LnRlc3Qw --C4IJeDI3Ni50ZXN0MAuCCXgyNzcudGVzdDALggl4Mjc4LnRlc3QwC4IJeDI3OS50 --ZXN0MAuCCXgyODAudGVzdDALggl4MjgxLnRlc3QwC4IJeDI4Mi50ZXN0MAuCCXgy --ODMudGVzdDALggl4Mjg0LnRlc3QwC4IJeDI4NS50ZXN0MAuCCXgyODYudGVzdDAL --ggl4Mjg3LnRlc3QwC4IJeDI4OC50ZXN0MAuCCXgyODkudGVzdDALggl4MjkwLnRl --c3QwC4IJeDI5MS50ZXN0MAuCCXgyOTIudGVzdDALggl4MjkzLnRlc3QwC4IJeDI5 --NC50ZXN0MAuCCXgyOTUudGVzdDALggl4Mjk2LnRlc3QwC4IJeDI5Ny50ZXN0MAuC --CXgyOTgudGVzdDALggl4Mjk5LnRlc3QwC4IJeDMwMC50ZXN0MAuCCXgzMDEudGVz --dDALggl4MzAyLnRlc3QwC4IJeDMwMy50ZXN0MAuCCXgzMDQudGVzdDALggl4MzA1 --LnRlc3QwC4IJeDMwNi50ZXN0MAuCCXgzMDcudGVzdDALggl4MzA4LnRlc3QwC4IJ --eDMwOS50ZXN0MAuCCXgzMTAudGVzdDALggl4MzExLnRlc3QwC4IJeDMxMi50ZXN0 --MAuCCXgzMTMudGVzdDALggl4MzE0LnRlc3QwC4IJeDMxNS50ZXN0MAuCCXgzMTYu --dGVzdDALggl4MzE3LnRlc3QwC4IJeDMxOC50ZXN0MAuCCXgzMTkudGVzdDALggl4 --MzIwLnRlc3QwC4IJeDMyMS50ZXN0MAuCCXgzMjIudGVzdDALggl4MzIzLnRlc3Qw --C4IJeDMyNC50ZXN0MAuCCXgzMjUudGVzdDALggl4MzI2LnRlc3QwC4IJeDMyNy50 --ZXN0MAuCCXgzMjgudGVzdDALggl4MzI5LnRlc3QwC4IJeDMzMC50ZXN0MAuCCXgz --MzEudGVzdDALggl4MzMyLnRlc3QwC4IJeDMzMy50ZXN0MAuCCXgzMzQudGVzdDAL --ggl4MzM1LnRlc3QwC4IJeDMzNi50ZXN0MAuCCXgzMzcudGVzdDALggl4MzM4LnRl --c3QwC4IJeDMzOS50ZXN0MAuCCXgzNDAudGVzdDALggl4MzQxLnRlc3QwC4IJeDM0 --Mi50ZXN0MAuCCXgzNDMudGVzdDALggl4MzQ0LnRlc3QwC4IJeDM0NS50ZXN0MAuC --CXgzNDYudGVzdDALggl4MzQ3LnRlc3QwC4IJeDM0OC50ZXN0MAuCCXgzNDkudGVz --dDALggl4MzUwLnRlc3QwC4IJeDM1MS50ZXN0MAuCCXgzNTIudGVzdDALggl4MzUz --LnRlc3QwC4IJeDM1NC50ZXN0MAuCCXgzNTUudGVzdDALggl4MzU2LnRlc3QwC4IJ --eDM1Ny50ZXN0MAuCCXgzNTgudGVzdDALggl4MzU5LnRlc3QwC4IJeDM2MC50ZXN0 --MAuCCXgzNjEudGVzdDALggl4MzYyLnRlc3QwC4IJeDM2My50ZXN0MAuCCXgzNjQu --dGVzdDALggl4MzY1LnRlc3QwC4IJeDM2Ni50ZXN0MAuCCXgzNjcudGVzdDALggl4 --MzY4LnRlc3QwC4IJeDM2OS50ZXN0MAuCCXgzNzAudGVzdDALggl4MzcxLnRlc3Qw --C4IJeDM3Mi50ZXN0MAuCCXgzNzMudGVzdDALggl4Mzc0LnRlc3QwC4IJeDM3NS50 --ZXN0MAuCCXgzNzYudGVzdDALggl4Mzc3LnRlc3QwC4IJeDM3OC50ZXN0MAuCCXgz --NzkudGVzdDALggl4MzgwLnRlc3QwC4IJeDM4MS50ZXN0MAuCCXgzODIudGVzdDAL --ggl4MzgzLnRlc3QwC4IJeDM4NC50ZXN0MAuCCXgzODUudGVzdDALggl4Mzg2LnRl --c3QwC4IJeDM4Ny50ZXN0MAuCCXgzODgudGVzdDALggl4Mzg5LnRlc3QwC4IJeDM5 --MC50ZXN0MAuCCXgzOTEudGVzdDALggl4MzkyLnRlc3QwC4IJeDM5My50ZXN0MAuC --CXgzOTQudGVzdDALggl4Mzk1LnRlc3QwC4IJeDM5Ni50ZXN0MAuCCXgzOTcudGVz --dDALggl4Mzk4LnRlc3QwC4IJeDM5OS50ZXN0MAuCCXg0MDAudGVzdDALggl4NDAx --LnRlc3QwC4IJeDQwMi50ZXN0MAuCCXg0MDMudGVzdDALggl4NDA0LnRlc3QwC4IJ --eDQwNS50ZXN0MAuCCXg0MDYudGVzdDALggl4NDA3LnRlc3QwC4IJeDQwOC50ZXN0 --MAuCCXg0MDkudGVzdDALggl4NDEwLnRlc3QwC4IJeDQxMS50ZXN0MAuCCXg0MTIu --dGVzdDALggl4NDEzLnRlc3QwC4IJeDQxNC50ZXN0MAuCCXg0MTUudGVzdDALggl4 --NDE2LnRlc3QwC4IJeDQxNy50ZXN0MAuCCXg0MTgudGVzdDAKhwgLAAAA/////zAK --hwgLAAAB/////zAKhwgLAAAC/////zAKhwgLAAAD/////zAKhwgLAAAE/////zAK --hwgLAAAF/////zAKhwgLAAAG/////zAKhwgLAAAH/////zAKhwgLAAAI/////zAK --hwgLAAAJ/////zAKhwgLAAAK/////zAKhwgLAAAL/////zAKhwgLAAAM/////zAK --hwgLAAAN/////zAKhwgLAAAO/////zAKhwgLAAAP/////zAKhwgLAAAQ/////zAK --hwgLAAAR/////zAKhwgLAAAS/////zAKhwgLAAAT/////zAKhwgLAAAU/////zAK --hwgLAAAV/////zAKhwgLAAAW/////zAKhwgLAAAX/////zAKhwgLAAAY/////zAK --hwgLAAAZ/////zAKhwgLAAAa/////zAKhwgLAAAb/////zAKhwgLAAAc/////zAK --hwgLAAAd/////zAKhwgLAAAe/////zAKhwgLAAAf/////zAKhwgLAAAg/////zAK --hwgLAAAh/////zAKhwgLAAAi/////zAKhwgLAAAj/////zAKhwgLAAAk/////zAK --hwgLAAAl/////zAKhwgLAAAm/////zAKhwgLAAAn/////zAKhwgLAAAo/////zAK --hwgLAAAp/////zAKhwgLAAAq/////zAKhwgLAAAr/////zAKhwgLAAAs/////zAK --hwgLAAAt/////zAKhwgLAAAu/////zAKhwgLAAAv/////zAKhwgLAAAw/////zAK --hwgLAAAx/////zAKhwgLAAAy/////zAKhwgLAAAz/////zAKhwgLAAA0/////zAK --hwgLAAA1/////zAKhwgLAAA2/////zAKhwgLAAA3/////zAKhwgLAAA4/////zAK --hwgLAAA5/////zAKhwgLAAA6/////zAKhwgLAAA7/////zAKhwgLAAA8/////zAK --hwgLAAA9/////zAKhwgLAAA+/////zAKhwgLAAA//////zAKhwgLAABA/////zAK --hwgLAABB/////zAKhwgLAABC/////zAKhwgLAABD/////zAKhwgLAABE/////zAK --hwgLAABF/////zAKhwgLAABG/////zAKhwgLAABH/////zAKhwgLAABI/////zAK --hwgLAABJ/////zAKhwgLAABK/////zAKhwgLAABL/////zAKhwgLAABM/////zAK --hwgLAABN/////zAKhwgLAABO/////zAKhwgLAABP/////zAKhwgLAABQ/////zAK --hwgLAABR/////zAKhwgLAABS/////zAKhwgLAABT/////zAKhwgLAABU/////zAK --hwgLAABV/////zAKhwgLAABW/////zAKhwgLAABX/////zAKhwgLAABY/////zAK --hwgLAABZ/////zAKhwgLAABa/////zAKhwgLAABb/////zAKhwgLAABc/////zAK --hwgLAABd/////zAKhwgLAABe/////zAKhwgLAABf/////zAKhwgLAABg/////zAK --hwgLAABh/////zAKhwgLAABi/////zAKhwgLAABj/////zAKhwgLAABk/////zAK --hwgLAABl/////zAKhwgLAABm/////zAKhwgLAABn/////zAKhwgLAABo/////zAK --hwgLAABp/////zAKhwgLAABq/////zAKhwgLAABr/////zAKhwgLAABs/////zAK --hwgLAABt/////zAKhwgLAABu/////zAKhwgLAABv/////zAKhwgLAABw/////zAK --hwgLAABx/////zAKhwgLAABy/////zAKhwgLAABz/////zAKhwgLAAB0/////zAK --hwgLAAB1/////zAKhwgLAAB2/////zAKhwgLAAB3/////zAKhwgLAAB4/////zAK --hwgLAAB5/////zAKhwgLAAB6/////zAKhwgLAAB7/////zAKhwgLAAB8/////zAK --hwgLAAB9/////zAKhwgLAAB+/////zAKhwgLAAB//////zAKhwgLAACA/////zAK --hwgLAACB/////zAKhwgLAACC/////zAKhwgLAACD/////zAKhwgLAACE/////zAK --hwgLAACF/////zAKhwgLAACG/////zAKhwgLAACH/////zAKhwgLAACI/////zAK --hwgLAACJ/////zAKhwgLAACK/////zAKhwgLAACL/////zAKhwgLAACM/////zAK --hwgLAACN/////zAKhwgLAACO/////zAKhwgLAACP/////zAKhwgLAACQ/////zAK --hwgLAACR/////zAKhwgLAACS/////zAKhwgLAACT/////zAKhwgLAACU/////zAK --hwgLAACV/////zAKhwgLAACW/////zAKhwgLAACX/////zAKhwgLAACY/////zAK --hwgLAACZ/////zAKhwgLAACa/////zAKhwgLAACb/////zAKhwgLAACc/////zAK --hwgLAACd/////zAKhwgLAACe/////zAKhwgLAACf/////zAKhwgLAACg/////zAK --hwgLAACh/////zAKhwgLAACi/////zAKhwgLAACj/////zAKhwgLAACk/////zAK --hwgLAACl/////zAKhwgLAACm/////zAKhwgLAACn/////zAKhwgLAACo/////zAK --hwgLAACp/////zAKhwgLAACq/////zAKhwgLAACr/////zAKhwgLAACs/////zAK --hwgLAACt/////zAKhwgLAACu/////zAKhwgLAACv/////zAKhwgLAACw/////zAK --hwgLAACx/////zAKhwgLAACy/////zAKhwgLAACz/////zAKhwgLAAC0/////zAK --hwgLAAC1/////zAKhwgLAAC2/////zAKhwgLAAC3/////zAKhwgLAAC4/////zAK --hwgLAAC5/////zAKhwgLAAC6/////zAKhwgLAAC7/////zAKhwgLAAC8/////zAK --hwgLAAC9/////zAKhwgLAAC+/////zAKhwgLAAC//////zAKhwgLAADA/////zAK --hwgLAADB/////zAKhwgLAADC/////zAKhwgLAADD/////zAKhwgLAADE/////zAK --hwgLAADF/////zAKhwgLAADG/////zAKhwgLAADH/////zAKhwgLAADI/////zAK --hwgLAADJ/////zAKhwgLAADK/////zAKhwgLAADL/////zAKhwgLAADM/////zAK --hwgLAADN/////zAKhwgLAADO/////zAKhwgLAADP/////zAKhwgLAADQ/////zAK --hwgLAADR/////zAKhwgLAADS/////zAKhwgLAADT/////zAKhwgLAADU/////zAK --hwgLAADV/////zAKhwgLAADW/////zAKhwgLAADX/////zAKhwgLAADY/////zAK --hwgLAADZ/////zAKhwgLAADa/////zAKhwgLAADb/////zAKhwgLAADc/////zAK --hwgLAADd/////zAKhwgLAADe/////zAKhwgLAADf/////zAKhwgLAADg/////zAK --hwgLAADh/////zAKhwgLAADi/////zAKhwgLAADj/////zAKhwgLAADk/////zAK --hwgLAADl/////zAKhwgLAADm/////zAKhwgLAADn/////zAKhwgLAADo/////zAK --hwgLAADp/////zAKhwgLAADq/////zAKhwgLAADr/////zAKhwgLAADs/////zAK --hwgLAADt/////zAKhwgLAADu/////zAKhwgLAADv/////zAKhwgLAADw/////zAK --hwgLAADx/////zAKhwgLAADy/////zAKhwgLAADz/////zAKhwgLAAD0/////zAK --hwgLAAD1/////zAKhwgLAAD2/////zAKhwgLAAD3/////zAKhwgLAAD4/////zAK --hwgLAAD5/////zAKhwgLAAD6/////zAKhwgLAAD7/////zAKhwgLAAD8/////zAK --hwgLAAD9/////zAKhwgLAAD+/////zAKhwgLAAD//////zAKhwgLAAEA/////zAK --hwgLAAEB/////zAKhwgLAAEC/////zAKhwgLAAED/////zAKhwgLAAEE/////zAK --hwgLAAEF/////zAKhwgLAAEG/////zAKhwgLAAEH/////zAKhwgLAAEI/////zAK --hwgLAAEJ/////zAKhwgLAAEK/////zAKhwgLAAEL/////zAKhwgLAAEM/////zAK --hwgLAAEN/////zAKhwgLAAEO/////zAKhwgLAAEP/////zAKhwgLAAEQ/////zAK --hwgLAAER/////zAKhwgLAAES/////zAKhwgLAAET/////zAKhwgLAAEU/////zAK --hwgLAAEV/////zAKhwgLAAEW/////zAKhwgLAAEX/////zAKhwgLAAEY/////zAK --hwgLAAEZ/////zAKhwgLAAEa/////zAKhwgLAAEb/////zAKhwgLAAEc/////zAK --hwgLAAEd/////zAKhwgLAAEe/////zAKhwgLAAEf/////zAKhwgLAAEg/////zAK --hwgLAAEh/////zAKhwgLAAEi/////zAKhwgLAAEj/////zAKhwgLAAEk/////zAK --hwgLAAEl/////zAKhwgLAAEm/////zAKhwgLAAEn/////zAKhwgLAAEo/////zAK --hwgLAAEp/////zAKhwgLAAEq/////zAKhwgLAAEr/////zAKhwgLAAEs/////zAK --hwgLAAEt/////zAKhwgLAAEu/////zAKhwgLAAEv/////zAKhwgLAAEw/////zAK --hwgLAAEx/////zAKhwgLAAEy/////zAKhwgLAAEz/////zAKhwgLAAE0/////zAK --hwgLAAE1/////zAKhwgLAAE2/////zAKhwgLAAE3/////zAKhwgLAAE4/////zAK --hwgLAAE5/////zAKhwgLAAE6/////zAKhwgLAAE7/////zAKhwgLAAE8/////zAK --hwgLAAE9/////zAKhwgLAAE+/////zAKhwgLAAE//////zAKhwgLAAFA/////zAK --hwgLAAFB/////zAKhwgLAAFC/////zAKhwgLAAFD/////zAKhwgLAAFE/////zAK --hwgLAAFF/////zAKhwgLAAFG/////zAKhwgLAAFH/////zAKhwgLAAFI/////zAK --hwgLAAFJ/////zAKhwgLAAFK/////zAKhwgLAAFL/////zAKhwgLAAFM/////zAK --hwgLAAFN/////zAKhwgLAAFO/////zAKhwgLAAFP/////zAKhwgLAAFQ/////zAK --hwgLAAFR/////zAKhwgLAAFS/////zAKhwgLAAFT/////zAKhwgLAAFU/////zAK --hwgLAAFV/////zAKhwgLAAFW/////zAKhwgLAAFX/////zAKhwgLAAFY/////zAK --hwgLAAFZ/////zAKhwgLAAFa/////zAKhwgLAAFb/////zAKhwgLAAFc/////zAK --hwgLAAFd/////zAKhwgLAAFe/////zAKhwgLAAFf/////zAKhwgLAAFg/////zAK --hwgLAAFh/////zAKhwgLAAFi/////zAKhwgLAAFj/////zAKhwgLAAFk/////zAK --hwgLAAFl/////zAKhwgLAAFm/////zAKhwgLAAFn/////zAKhwgLAAFo/////zAK --hwgLAAFp/////zAKhwgLAAFq/////zAKhwgLAAFr/////zAKhwgLAAFs/////zAK --hwgLAAFt/////zAKhwgLAAFu/////zAKhwgLAAFv/////zAKhwgLAAFw/////zAK --hwgLAAFx/////zAKhwgLAAFy/////zAKhwgLAAFz/////zAKhwgLAAF0/////zAK --hwgLAAF1/////zAKhwgLAAF2/////zAKhwgLAAF3/////zAKhwgLAAF4/////zAK --hwgLAAF5/////zAKhwgLAAF6/////zAKhwgLAAF7/////zAKhwgLAAF8/////zAK --hwgLAAF9/////zAKhwgLAAF+/////zAKhwgLAAF//////zAKhwgLAAGA/////zAK --hwgLAAGB/////zAKhwgLAAGC/////zAKhwgLAAGD/////zAKhwgLAAGE/////zAK --hwgLAAGF/////zAKhwgLAAGG/////zAKhwgLAAGH/////zAKhwgLAAGI/////zAK --hwgLAAGJ/////zAKhwgLAAGK/////zAKhwgLAAGL/////zAKhwgLAAGM/////zAK --hwgLAAGN/////zAKhwgLAAGO/////zAKhwgLAAGP/////zAKhwgLAAGQ/////zAK --hwgLAAGR/////zAKhwgLAAGS/////zAKhwgLAAGT/////zAKhwgLAAGU/////zAK --hwgLAAGV/////zAKhwgLAAGW/////zAKhwgLAAGX/////zAKhwgLAAGY/////zAK --hwgLAAGZ/////zAKhwgLAAGa/////zAKhwgLAAGb/////zAKhwgLAAGc/////zAK --hwgLAAGd/////zAKhwgLAAGe/////zAKhwgLAAGf/////zAKhwgLAAGg/////zAK --hwgLAAGh/////zAKhwgLAAGi/////zARpA8wDTELMAkGA1UEAwwCeDAwEaQPMA0x --CzAJBgNVBAMMAngxMBGkDzANMQswCQYDVQQDDAJ4MjARpA8wDTELMAkGA1UEAwwC --eDMwEaQPMA0xCzAJBgNVBAMMAng0MBGkDzANMQswCQYDVQQDDAJ4NTARpA8wDTEL --MAkGA1UEAwwCeDYwEaQPMA0xCzAJBgNVBAMMAng3MBGkDzANMQswCQYDVQQDDAJ4 --ODARpA8wDTELMAkGA1UEAwwCeDkwEqQQMA4xDDAKBgNVBAMMA3gxMDASpBAwDjEM --MAoGA1UEAwwDeDExMBKkEDAOMQwwCgYDVQQDDAN4MTIwEqQQMA4xDDAKBgNVBAMM --A3gxMzASpBAwDjEMMAoGA1UEAwwDeDE0MBKkEDAOMQwwCgYDVQQDDAN4MTUwEqQQ --MA4xDDAKBgNVBAMMA3gxNjASpBAwDjEMMAoGA1UEAwwDeDE3MBKkEDAOMQwwCgYD --VQQDDAN4MTgwEqQQMA4xDDAKBgNVBAMMA3gxOTASpBAwDjEMMAoGA1UEAwwDeDIw --MBKkEDAOMQwwCgYDVQQDDAN4MjEwEqQQMA4xDDAKBgNVBAMMA3gyMjASpBAwDjEM --MAoGA1UEAwwDeDIzMBKkEDAOMQwwCgYDVQQDDAN4MjQwEqQQMA4xDDAKBgNVBAMM --A3gyNTASpBAwDjEMMAoGA1UEAwwDeDI2MBKkEDAOMQwwCgYDVQQDDAN4MjcwEqQQ --MA4xDDAKBgNVBAMMA3gyODASpBAwDjEMMAoGA1UEAwwDeDI5MBKkEDAOMQwwCgYD --VQQDDAN4MzAwEqQQMA4xDDAKBgNVBAMMA3gzMTASpBAwDjEMMAoGA1UEAwwDeDMy --MBKkEDAOMQwwCgYDVQQDDAN4MzMwEqQQMA4xDDAKBgNVBAMMA3gzNDASpBAwDjEM --MAoGA1UEAwwDeDM1MBKkEDAOMQwwCgYDVQQDDAN4MzYwEqQQMA4xDDAKBgNVBAMM --A3gzNzASpBAwDjEMMAoGA1UEAwwDeDM4MBKkEDAOMQwwCgYDVQQDDAN4MzkwEqQQ --MA4xDDAKBgNVBAMMA3g0MDASpBAwDjEMMAoGA1UEAwwDeDQxMBKkEDAOMQwwCgYD --VQQDDAN4NDIwEqQQMA4xDDAKBgNVBAMMA3g0MzASpBAwDjEMMAoGA1UEAwwDeDQ0 --MBKkEDAOMQwwCgYDVQQDDAN4NDUwEqQQMA4xDDAKBgNVBAMMA3g0NjASpBAwDjEM --MAoGA1UEAwwDeDQ3MBKkEDAOMQwwCgYDVQQDDAN4NDgwEqQQMA4xDDAKBgNVBAMM --A3g0OTASpBAwDjEMMAoGA1UEAwwDeDUwMBKkEDAOMQwwCgYDVQQDDAN4NTEwEqQQ --MA4xDDAKBgNVBAMMA3g1MjASpBAwDjEMMAoGA1UEAwwDeDUzMBKkEDAOMQwwCgYD --VQQDDAN4NTQwEqQQMA4xDDAKBgNVBAMMA3g1NTASpBAwDjEMMAoGA1UEAwwDeDU2 --MBKkEDAOMQwwCgYDVQQDDAN4NTcwEqQQMA4xDDAKBgNVBAMMA3g1ODASpBAwDjEM --MAoGA1UEAwwDeDU5MBKkEDAOMQwwCgYDVQQDDAN4NjAwEqQQMA4xDDAKBgNVBAMM --A3g2MTASpBAwDjEMMAoGA1UEAwwDeDYyMBKkEDAOMQwwCgYDVQQDDAN4NjMwEqQQ --MA4xDDAKBgNVBAMMA3g2NDASpBAwDjEMMAoGA1UEAwwDeDY1MBKkEDAOMQwwCgYD --VQQDDAN4NjYwEqQQMA4xDDAKBgNVBAMMA3g2NzASpBAwDjEMMAoGA1UEAwwDeDY4 --MBKkEDAOMQwwCgYDVQQDDAN4NjkwEqQQMA4xDDAKBgNVBAMMA3g3MDASpBAwDjEM --MAoGA1UEAwwDeDcxMBKkEDAOMQwwCgYDVQQDDAN4NzIwEqQQMA4xDDAKBgNVBAMM --A3g3MzASpBAwDjEMMAoGA1UEAwwDeDc0MBKkEDAOMQwwCgYDVQQDDAN4NzUwEqQQ --MA4xDDAKBgNVBAMMA3g3NjASpBAwDjEMMAoGA1UEAwwDeDc3MBKkEDAOMQwwCgYD --VQQDDAN4NzgwEqQQMA4xDDAKBgNVBAMMA3g3OTASpBAwDjEMMAoGA1UEAwwDeDgw --MBKkEDAOMQwwCgYDVQQDDAN4ODEwEqQQMA4xDDAKBgNVBAMMA3g4MjASpBAwDjEM --MAoGA1UEAwwDeDgzMBKkEDAOMQwwCgYDVQQDDAN4ODQwEqQQMA4xDDAKBgNVBAMM --A3g4NTASpBAwDjEMMAoGA1UEAwwDeDg2MBKkEDAOMQwwCgYDVQQDDAN4ODcwEqQQ --MA4xDDAKBgNVBAMMA3g4ODASpBAwDjEMMAoGA1UEAwwDeDg5MBKkEDAOMQwwCgYD --VQQDDAN4OTAwEqQQMA4xDDAKBgNVBAMMA3g5MTASpBAwDjEMMAoGA1UEAwwDeDky --MBKkEDAOMQwwCgYDVQQDDAN4OTMwEqQQMA4xDDAKBgNVBAMMA3g5NDASpBAwDjEM --MAoGA1UEAwwDeDk1MBKkEDAOMQwwCgYDVQQDDAN4OTYwEqQQMA4xDDAKBgNVBAMM --A3g5NzASpBAwDjEMMAoGA1UEAwwDeDk4MBKkEDAOMQwwCgYDVQQDDAN4OTkwE6QR --MA8xDTALBgNVBAMMBHgxMDAwE6QRMA8xDTALBgNVBAMMBHgxMDEwE6QRMA8xDTAL --BgNVBAMMBHgxMDIwE6QRMA8xDTALBgNVBAMMBHgxMDMwE6QRMA8xDTALBgNVBAMM --BHgxMDQwE6QRMA8xDTALBgNVBAMMBHgxMDUwE6QRMA8xDTALBgNVBAMMBHgxMDYw --E6QRMA8xDTALBgNVBAMMBHgxMDcwE6QRMA8xDTALBgNVBAMMBHgxMDgwE6QRMA8x --DTALBgNVBAMMBHgxMDkwE6QRMA8xDTALBgNVBAMMBHgxMTAwE6QRMA8xDTALBgNV --BAMMBHgxMTEwE6QRMA8xDTALBgNVBAMMBHgxMTIwE6QRMA8xDTALBgNVBAMMBHgx --MTMwE6QRMA8xDTALBgNVBAMMBHgxMTQwE6QRMA8xDTALBgNVBAMMBHgxMTUwE6QR --MA8xDTALBgNVBAMMBHgxMTYwE6QRMA8xDTALBgNVBAMMBHgxMTcwE6QRMA8xDTAL --BgNVBAMMBHgxMTgwE6QRMA8xDTALBgNVBAMMBHgxMTkwE6QRMA8xDTALBgNVBAMM --BHgxMjAwE6QRMA8xDTALBgNVBAMMBHgxMjEwE6QRMA8xDTALBgNVBAMMBHgxMjIw --E6QRMA8xDTALBgNVBAMMBHgxMjMwE6QRMA8xDTALBgNVBAMMBHgxMjQwE6QRMA8x --DTALBgNVBAMMBHgxMjUwE6QRMA8xDTALBgNVBAMMBHgxMjYwE6QRMA8xDTALBgNV --BAMMBHgxMjcwE6QRMA8xDTALBgNVBAMMBHgxMjgwE6QRMA8xDTALBgNVBAMMBHgx --MjkwE6QRMA8xDTALBgNVBAMMBHgxMzAwE6QRMA8xDTALBgNVBAMMBHgxMzEwE6QR --MA8xDTALBgNVBAMMBHgxMzIwE6QRMA8xDTALBgNVBAMMBHgxMzMwE6QRMA8xDTAL --BgNVBAMMBHgxMzQwE6QRMA8xDTALBgNVBAMMBHgxMzUwE6QRMA8xDTALBgNVBAMM --BHgxMzYwE6QRMA8xDTALBgNVBAMMBHgxMzcwE6QRMA8xDTALBgNVBAMMBHgxMzgw --E6QRMA8xDTALBgNVBAMMBHgxMzkwE6QRMA8xDTALBgNVBAMMBHgxNDAwE6QRMA8x --DTALBgNVBAMMBHgxNDEwE6QRMA8xDTALBgNVBAMMBHgxNDIwE6QRMA8xDTALBgNV --BAMMBHgxNDMwE6QRMA8xDTALBgNVBAMMBHgxNDQwE6QRMA8xDTALBgNVBAMMBHgx --NDUwE6QRMA8xDTALBgNVBAMMBHgxNDYwE6QRMA8xDTALBgNVBAMMBHgxNDcwE6QR --MA8xDTALBgNVBAMMBHgxNDgwE6QRMA8xDTALBgNVBAMMBHgxNDkwE6QRMA8xDTAL --BgNVBAMMBHgxNTAwE6QRMA8xDTALBgNVBAMMBHgxNTEwE6QRMA8xDTALBgNVBAMM --BHgxNTIwE6QRMA8xDTALBgNVBAMMBHgxNTMwE6QRMA8xDTALBgNVBAMMBHgxNTQw --E6QRMA8xDTALBgNVBAMMBHgxNTUwE6QRMA8xDTALBgNVBAMMBHgxNTYwE6QRMA8x --DTALBgNVBAMMBHgxNTcwE6QRMA8xDTALBgNVBAMMBHgxNTgwE6QRMA8xDTALBgNV --BAMMBHgxNTkwE6QRMA8xDTALBgNVBAMMBHgxNjAwE6QRMA8xDTALBgNVBAMMBHgx --NjEwE6QRMA8xDTALBgNVBAMMBHgxNjIwE6QRMA8xDTALBgNVBAMMBHgxNjMwE6QR --MA8xDTALBgNVBAMMBHgxNjQwE6QRMA8xDTALBgNVBAMMBHgxNjUwE6QRMA8xDTAL --BgNVBAMMBHgxNjYwE6QRMA8xDTALBgNVBAMMBHgxNjcwE6QRMA8xDTALBgNVBAMM --BHgxNjgwE6QRMA8xDTALBgNVBAMMBHgxNjkwE6QRMA8xDTALBgNVBAMMBHgxNzAw --E6QRMA8xDTALBgNVBAMMBHgxNzEwE6QRMA8xDTALBgNVBAMMBHgxNzIwE6QRMA8x --DTALBgNVBAMMBHgxNzMwE6QRMA8xDTALBgNVBAMMBHgxNzQwE6QRMA8xDTALBgNV --BAMMBHgxNzUwE6QRMA8xDTALBgNVBAMMBHgxNzYwE6QRMA8xDTALBgNVBAMMBHgx --NzcwE6QRMA8xDTALBgNVBAMMBHgxNzgwE6QRMA8xDTALBgNVBAMMBHgxNzkwE6QR --MA8xDTALBgNVBAMMBHgxODAwE6QRMA8xDTALBgNVBAMMBHgxODEwE6QRMA8xDTAL --BgNVBAMMBHgxODIwE6QRMA8xDTALBgNVBAMMBHgxODMwE6QRMA8xDTALBgNVBAMM --BHgxODQwE6QRMA8xDTALBgNVBAMMBHgxODUwE6QRMA8xDTALBgNVBAMMBHgxODYw --E6QRMA8xDTALBgNVBAMMBHgxODcwE6QRMA8xDTALBgNVBAMMBHgxODgwE6QRMA8x --DTALBgNVBAMMBHgxODkwE6QRMA8xDTALBgNVBAMMBHgxOTAwE6QRMA8xDTALBgNV --BAMMBHgxOTEwE6QRMA8xDTALBgNVBAMMBHgxOTIwE6QRMA8xDTALBgNVBAMMBHgx --OTMwE6QRMA8xDTALBgNVBAMMBHgxOTQwE6QRMA8xDTALBgNVBAMMBHgxOTUwE6QR --MA8xDTALBgNVBAMMBHgxOTYwE6QRMA8xDTALBgNVBAMMBHgxOTcwE6QRMA8xDTAL --BgNVBAMMBHgxOTgwE6QRMA8xDTALBgNVBAMMBHgxOTkwE6QRMA8xDTALBgNVBAMM --BHgyMDAwE6QRMA8xDTALBgNVBAMMBHgyMDEwE6QRMA8xDTALBgNVBAMMBHgyMDIw --E6QRMA8xDTALBgNVBAMMBHgyMDMwE6QRMA8xDTALBgNVBAMMBHgyMDQwE6QRMA8x --DTALBgNVBAMMBHgyMDUwE6QRMA8xDTALBgNVBAMMBHgyMDYwE6QRMA8xDTALBgNV --BAMMBHgyMDcwE6QRMA8xDTALBgNVBAMMBHgyMDgwE6QRMA8xDTALBgNVBAMMBHgy --MDkwE6QRMA8xDTALBgNVBAMMBHgyMTAwE6QRMA8xDTALBgNVBAMMBHgyMTEwE6QR --MA8xDTALBgNVBAMMBHgyMTIwE6QRMA8xDTALBgNVBAMMBHgyMTMwE6QRMA8xDTAL --BgNVBAMMBHgyMTQwE6QRMA8xDTALBgNVBAMMBHgyMTUwE6QRMA8xDTALBgNVBAMM --BHgyMTYwE6QRMA8xDTALBgNVBAMMBHgyMTcwE6QRMA8xDTALBgNVBAMMBHgyMTgw --E6QRMA8xDTALBgNVBAMMBHgyMTkwE6QRMA8xDTALBgNVBAMMBHgyMjAwE6QRMA8x --DTALBgNVBAMMBHgyMjEwE6QRMA8xDTALBgNVBAMMBHgyMjIwE6QRMA8xDTALBgNV --BAMMBHgyMjMwE6QRMA8xDTALBgNVBAMMBHgyMjQwE6QRMA8xDTALBgNVBAMMBHgy --MjUwE6QRMA8xDTALBgNVBAMMBHgyMjYwE6QRMA8xDTALBgNVBAMMBHgyMjcwE6QR --MA8xDTALBgNVBAMMBHgyMjgwE6QRMA8xDTALBgNVBAMMBHgyMjkwE6QRMA8xDTAL --BgNVBAMMBHgyMzAwE6QRMA8xDTALBgNVBAMMBHgyMzEwE6QRMA8xDTALBgNVBAMM --BHgyMzIwE6QRMA8xDTALBgNVBAMMBHgyMzMwE6QRMA8xDTALBgNVBAMMBHgyMzQw --E6QRMA8xDTALBgNVBAMMBHgyMzUwE6QRMA8xDTALBgNVBAMMBHgyMzYwE6QRMA8x --DTALBgNVBAMMBHgyMzcwE6QRMA8xDTALBgNVBAMMBHgyMzgwE6QRMA8xDTALBgNV --BAMMBHgyMzkwE6QRMA8xDTALBgNVBAMMBHgyNDAwE6QRMA8xDTALBgNVBAMMBHgy --NDEwE6QRMA8xDTALBgNVBAMMBHgyNDIwE6QRMA8xDTALBgNVBAMMBHgyNDMwE6QR --MA8xDTALBgNVBAMMBHgyNDQwE6QRMA8xDTALBgNVBAMMBHgyNDUwE6QRMA8xDTAL --BgNVBAMMBHgyNDYwE6QRMA8xDTALBgNVBAMMBHgyNDcwE6QRMA8xDTALBgNVBAMM --BHgyNDgwE6QRMA8xDTALBgNVBAMMBHgyNDkwE6QRMA8xDTALBgNVBAMMBHgyNTAw --E6QRMA8xDTALBgNVBAMMBHgyNTEwE6QRMA8xDTALBgNVBAMMBHgyNTIwE6QRMA8x --DTALBgNVBAMMBHgyNTMwE6QRMA8xDTALBgNVBAMMBHgyNTQwE6QRMA8xDTALBgNV --BAMMBHgyNTUwE6QRMA8xDTALBgNVBAMMBHgyNTYwE6QRMA8xDTALBgNVBAMMBHgy --NTcwE6QRMA8xDTALBgNVBAMMBHgyNTgwE6QRMA8xDTALBgNVBAMMBHgyNTkwE6QR --MA8xDTALBgNVBAMMBHgyNjAwE6QRMA8xDTALBgNVBAMMBHgyNjEwE6QRMA8xDTAL --BgNVBAMMBHgyNjIwE6QRMA8xDTALBgNVBAMMBHgyNjMwE6QRMA8xDTALBgNVBAMM --BHgyNjQwE6QRMA8xDTALBgNVBAMMBHgyNjUwE6QRMA8xDTALBgNVBAMMBHgyNjYw --E6QRMA8xDTALBgNVBAMMBHgyNjcwE6QRMA8xDTALBgNVBAMMBHgyNjgwE6QRMA8x --DTALBgNVBAMMBHgyNjkwE6QRMA8xDTALBgNVBAMMBHgyNzAwE6QRMA8xDTALBgNV --BAMMBHgyNzEwE6QRMA8xDTALBgNVBAMMBHgyNzIwE6QRMA8xDTALBgNVBAMMBHgy --NzMwE6QRMA8xDTALBgNVBAMMBHgyNzQwE6QRMA8xDTALBgNVBAMMBHgyNzUwE6QR --MA8xDTALBgNVBAMMBHgyNzYwE6QRMA8xDTALBgNVBAMMBHgyNzcwE6QRMA8xDTAL --BgNVBAMMBHgyNzgwE6QRMA8xDTALBgNVBAMMBHgyNzkwE6QRMA8xDTALBgNVBAMM --BHgyODAwE6QRMA8xDTALBgNVBAMMBHgyODEwE6QRMA8xDTALBgNVBAMMBHgyODIw --E6QRMA8xDTALBgNVBAMMBHgyODMwE6QRMA8xDTALBgNVBAMMBHgyODQwE6QRMA8x --DTALBgNVBAMMBHgyODUwE6QRMA8xDTALBgNVBAMMBHgyODYwE6QRMA8xDTALBgNV --BAMMBHgyODcwE6QRMA8xDTALBgNVBAMMBHgyODgwE6QRMA8xDTALBgNVBAMMBHgy --ODkwE6QRMA8xDTALBgNVBAMMBHgyOTAwE6QRMA8xDTALBgNVBAMMBHgyOTEwE6QR --MA8xDTALBgNVBAMMBHgyOTIwE6QRMA8xDTALBgNVBAMMBHgyOTMwE6QRMA8xDTAL --BgNVBAMMBHgyOTQwE6QRMA8xDTALBgNVBAMMBHgyOTUwE6QRMA8xDTALBgNVBAMM --BHgyOTYwE6QRMA8xDTALBgNVBAMMBHgyOTcwE6QRMA8xDTALBgNVBAMMBHgyOTgw --E6QRMA8xDTALBgNVBAMMBHgyOTkwE6QRMA8xDTALBgNVBAMMBHgzMDAwE6QRMA8x --DTALBgNVBAMMBHgzMDEwE6QRMA8xDTALBgNVBAMMBHgzMDIwE6QRMA8xDTALBgNV --BAMMBHgzMDMwE6QRMA8xDTALBgNVBAMMBHgzMDQwE6QRMA8xDTALBgNVBAMMBHgz --MDUwE6QRMA8xDTALBgNVBAMMBHgzMDYwE6QRMA8xDTALBgNVBAMMBHgzMDcwE6QR --MA8xDTALBgNVBAMMBHgzMDgwE6QRMA8xDTALBgNVBAMMBHgzMDkwE6QRMA8xDTAL --BgNVBAMMBHgzMTAwE6QRMA8xDTALBgNVBAMMBHgzMTEwE6QRMA8xDTALBgNVBAMM --BHgzMTIwE6QRMA8xDTALBgNVBAMMBHgzMTMwE6QRMA8xDTALBgNVBAMMBHgzMTQw --E6QRMA8xDTALBgNVBAMMBHgzMTUwE6QRMA8xDTALBgNVBAMMBHgzMTYwE6QRMA8x --DTALBgNVBAMMBHgzMTcwE6QRMA8xDTALBgNVBAMMBHgzMTgwE6QRMA8xDTALBgNV --BAMMBHgzMTkwE6QRMA8xDTALBgNVBAMMBHgzMjAwE6QRMA8xDTALBgNVBAMMBHgz --MjEwE6QRMA8xDTALBgNVBAMMBHgzMjIwE6QRMA8xDTALBgNVBAMMBHgzMjMwE6QR --MA8xDTALBgNVBAMMBHgzMjQwE6QRMA8xDTALBgNVBAMMBHgzMjUwE6QRMA8xDTAL --BgNVBAMMBHgzMjYwE6QRMA8xDTALBgNVBAMMBHgzMjcwE6QRMA8xDTALBgNVBAMM --BHgzMjgwE6QRMA8xDTALBgNVBAMMBHgzMjkwE6QRMA8xDTALBgNVBAMMBHgzMzAw --E6QRMA8xDTALBgNVBAMMBHgzMzEwE6QRMA8xDTALBgNVBAMMBHgzMzIwE6QRMA8x --DTALBgNVBAMMBHgzMzMwE6QRMA8xDTALBgNVBAMMBHgzMzQwE6QRMA8xDTALBgNV --BAMMBHgzMzUwE6QRMA8xDTALBgNVBAMMBHgzMzYwE6QRMA8xDTALBgNVBAMMBHgz --MzcwE6QRMA8xDTALBgNVBAMMBHgzMzgwE6QRMA8xDTALBgNVBAMMBHgzMzkwE6QR --MA8xDTALBgNVBAMMBHgzNDAwE6QRMA8xDTALBgNVBAMMBHgzNDEwE6QRMA8xDTAL --BgNVBAMMBHgzNDIwE6QRMA8xDTALBgNVBAMMBHgzNDMwE6QRMA8xDTALBgNVBAMM --BHgzNDQwE6QRMA8xDTALBgNVBAMMBHgzNDUwE6QRMA8xDTALBgNVBAMMBHgzNDYw --E6QRMA8xDTALBgNVBAMMBHgzNDcwE6QRMA8xDTALBgNVBAMMBHgzNDgwE6QRMA8x --DTALBgNVBAMMBHgzNDkwE6QRMA8xDTALBgNVBAMMBHgzNTAwE6QRMA8xDTALBgNV --BAMMBHgzNTEwE6QRMA8xDTALBgNVBAMMBHgzNTIwE6QRMA8xDTALBgNVBAMMBHgz --NTMwE6QRMA8xDTALBgNVBAMMBHgzNTQwE6QRMA8xDTALBgNVBAMMBHgzNTUwE6QR --MA8xDTALBgNVBAMMBHgzNTYwE6QRMA8xDTALBgNVBAMMBHgzNTcwE6QRMA8xDTAL --BgNVBAMMBHgzNTgwE6QRMA8xDTALBgNVBAMMBHgzNTkwE6QRMA8xDTALBgNVBAMM --BHgzNjAwE6QRMA8xDTALBgNVBAMMBHgzNjEwE6QRMA8xDTALBgNVBAMMBHgzNjIw --E6QRMA8xDTALBgNVBAMMBHgzNjMwE6QRMA8xDTALBgNVBAMMBHgzNjQwE6QRMA8x --DTALBgNVBAMMBHgzNjUwE6QRMA8xDTALBgNVBAMMBHgzNjYwE6QRMA8xDTALBgNV --BAMMBHgzNjcwE6QRMA8xDTALBgNVBAMMBHgzNjgwE6QRMA8xDTALBgNVBAMMBHgz --NjkwE6QRMA8xDTALBgNVBAMMBHgzNzAwE6QRMA8xDTALBgNVBAMMBHgzNzEwE6QR --MA8xDTALBgNVBAMMBHgzNzIwE6QRMA8xDTALBgNVBAMMBHgzNzMwE6QRMA8xDTAL --BgNVBAMMBHgzNzQwE6QRMA8xDTALBgNVBAMMBHgzNzUwE6QRMA8xDTALBgNVBAMM --BHgzNzYwE6QRMA8xDTALBgNVBAMMBHgzNzcwE6QRMA8xDTALBgNVBAMMBHgzNzgw --E6QRMA8xDTALBgNVBAMMBHgzNzkwE6QRMA8xDTALBgNVBAMMBHgzODAwE6QRMA8x --DTALBgNVBAMMBHgzODEwE6QRMA8xDTALBgNVBAMMBHgzODIwE6QRMA8xDTALBgNV --BAMMBHgzODMwE6QRMA8xDTALBgNVBAMMBHgzODQwE6QRMA8xDTALBgNVBAMMBHgz --ODUwE6QRMA8xDTALBgNVBAMMBHgzODYwE6QRMA8xDTALBgNVBAMMBHgzODcwE6QR --MA8xDTALBgNVBAMMBHgzODgwE6QRMA8xDTALBgNVBAMMBHgzODkwE6QRMA8xDTAL --BgNVBAMMBHgzOTAwE6QRMA8xDTALBgNVBAMMBHgzOTEwE6QRMA8xDTALBgNVBAMM --BHgzOTIwE6QRMA8xDTALBgNVBAMMBHgzOTMwE6QRMA8xDTALBgNVBAMMBHgzOTQw --E6QRMA8xDTALBgNVBAMMBHgzOTUwE6QRMA8xDTALBgNVBAMMBHgzOTYwE6QRMA8x --DTALBgNVBAMMBHgzOTcwE6QRMA8xDTALBgNVBAMMBHgzOTgwE6QRMA8xDTALBgNV --BAMMBHgzOTkwE6QRMA8xDTALBgNVBAMMBHg0MDAwE6QRMA8xDTALBgNVBAMMBHg0 --MDEwE6QRMA8xDTALBgNVBAMMBHg0MDIwE6QRMA8xDTALBgNVBAMMBHg0MDMwE6QR --MA8xDTALBgNVBAMMBHg0MDQwE6QRMA8xDTALBgNVBAMMBHg0MDUwE6QRMA8xDTAL --BgNVBAMMBHg0MDYwE6QRMA8xDTALBgNVBAMMBHg0MDcwE6QRMA8xDTALBgNVBAMM --BHg0MDgwE6QRMA8xDTALBgNVBAMMBHg0MDkwE6QRMA8xDTALBgNVBAMMBHg0MTAw --E6QRMA8xDTALBgNVBAMMBHg0MTEwE6QRMA8xDTALBgNVBAMMBHg0MTIwE6QRMA8x --DTALBgNVBAMMBHg0MTMwE6QRMA8xDTALBgNVBAMMBHg0MTQwE6QRMA8xDTALBgNV --BAMMBHg0MTUwE6QRMA8xDTALBgNVBAMMBHg0MTYwE6QRMA8xDTALBgNVBAMMBHg0 --MTcwE6QRMA8xDTALBgNVBAMMBHg0MTgwDQYJKoZIhvcNAQELBQADggEBAHh3z5Nf --vf8/kKQ5S3IYkHIyfPfcs230zsmZctljBoiF2JEgNXJNCbUCiVBjXmlZX/nB5w/W --VWtnDfewgwIY1XW6BpblP/rEDzB5vEObbuYVwoe8V086fDe7FZDz161CRMOty/T6 --DzIlm1oqC34q8es1f/J9YEvjj/wBpr7Mi0rmX+xCR+RmWk8gsnvMUSeR6rDfcJ/l --d2piJRLaevJUTz64GKljTVAC8E3sHbx8Ont+D2u3MGHnQxy6xY7GnhQNfwfgZmsd --MtMupuEW9i7VsVauiPnkqB33Z6zQLiyrBERLZ38DB534TbeCMU8jN16O1+P6UpSi --J5h5m04zmUWk1pg= -+ggl0MTY5LnRlc3QwC4IJdDE3MC50ZXN0MAuCCXQxNzEudGVzdDAKhwgKAAAA//// -+/zAKhwgKAAAB/////zAKhwgKAAAC/////zAKhwgKAAAD/////zAKhwgKAAAE//// -+/zAKhwgKAAAF/////zAKhwgKAAAG/////zAKhwgKAAAH/////zAKhwgKAAAI//// -+/zAKhwgKAAAJ/////zAKhwgKAAAK/////zAKhwgKAAAL/////zAKhwgKAAAM//// -+/zAKhwgKAAAN/////zAKhwgKAAAO/////zAKhwgKAAAP/////zAKhwgKAAAQ//// -+/zAKhwgKAAAR/////zAKhwgKAAAS/////zAKhwgKAAAT/////zAKhwgKAAAU//// -+/zAKhwgKAAAV/////zAKhwgKAAAW/////zAKhwgKAAAX/////zAKhwgKAAAY//// -+/zAKhwgKAAAZ/////zAKhwgKAAAa/////zAKhwgKAAAb/////zAKhwgKAAAc//// -+/zAKhwgKAAAd/////zAKhwgKAAAe/////zAKhwgKAAAf/////zAKhwgKAAAg//// -+/zAKhwgKAAAh/////zAKhwgKAAAi/////zAKhwgKAAAj/////zAKhwgKAAAk//// -+/zAKhwgKAAAl/////zAKhwgKAAAm/////zAKhwgKAAAn/////zAKhwgKAAAo//// -+/zAKhwgKAAAp/////zAKhwgKAAAq/////zAKhwgKAAAr/////zAKhwgKAAAs//// -+/zAKhwgKAAAt/////zAKhwgKAAAu/////zAKhwgKAAAv/////zAKhwgKAAAw//// -+/zAKhwgKAAAx/////zAKhwgKAAAy/////zAKhwgKAAAz/////zAKhwgKAAA0//// -+/zAKhwgKAAA1/////zAKhwgKAAA2/////zAKhwgKAAA3/////zAKhwgKAAA4//// -+/zAKhwgKAAA5/////zAKhwgKAAA6/////zAKhwgKAAA7/////zAKhwgKAAA8//// -+/zAKhwgKAAA9/////zAKhwgKAAA+/////zAKhwgKAAA//////zAKhwgKAABA//// -+/zAKhwgKAABB/////zAKhwgKAABC/////zAKhwgKAABD/////zAKhwgKAABE//// -+/zAKhwgKAABF/////zAKhwgKAABG/////zAKhwgKAABH/////zAKhwgKAABI//// -+/zAKhwgKAABJ/////zAKhwgKAABK/////zAKhwgKAABL/////zAKhwgKAABM//// -+/zAKhwgKAABN/////zAKhwgKAABO/////zAKhwgKAABP/////zAKhwgKAABQ//// -+/zAKhwgKAABR/////zAKhwgKAABS/////zAKhwgKAABT/////zAKhwgKAABU//// -+/zAKhwgKAABV/////zAKhwgKAABW/////zAKhwgKAABX/////zAKhwgKAABY//// -+/zAKhwgKAABZ/////zAKhwgKAABa/////zAKhwgKAABb/////zAKhwgKAABc//// -+/zAKhwgKAABd/////zAKhwgKAABe/////zAKhwgKAABf/////zAKhwgKAABg//// -+/zAKhwgKAABh/////zAKhwgKAABi/////zAKhwgKAABj/////zAKhwgKAABk//// -+/zAKhwgKAABl/////zAKhwgKAABm/////zAKhwgKAABn/////zAKhwgKAABo//// -+/zAKhwgKAABp/////zAKhwgKAABq/////zAKhwgKAABr/////zAKhwgKAABs//// -+/zAKhwgKAABt/////zAKhwgKAABu/////zAKhwgKAABv/////zAKhwgKAABw//// -+/zAKhwgKAABx/////zAKhwgKAABy/////zAKhwgKAABz/////zAKhwgKAAB0//// -+/zAKhwgKAAB1/////zAKhwgKAAB2/////zAKhwgKAAB3/////zAKhwgKAAB4//// -+/zAKhwgKAAB5/////zAKhwgKAAB6/////zAKhwgKAAB7/////zAKhwgKAAB8//// -+/zAKhwgKAAB9/////zAKhwgKAAB+/////zAKhwgKAAB//////zAKhwgKAACA//// -+/zAKhwgKAACB/////zAKhwgKAACC/////zAKhwgKAACD/////zAKhwgKAACE//// -+/zAKhwgKAACF/////zAKhwgKAACG/////zAKhwgKAACH/////zAKhwgKAACI//// -+/zAKhwgKAACJ/////zAKhwgKAACK/////zAKhwgKAACL/////zAKhwgKAACM//// -+/zAKhwgKAACN/////zAKhwgKAACO/////zAKhwgKAACP/////zAKhwgKAACQ//// -+/zAKhwgKAACR/////zAKhwgKAACS/////zAKhwgKAACT/////zAKhwgKAACU//// -+/zAKhwgKAACV/////zAKhwgKAACW/////zAKhwgKAACX/////zAKhwgKAACY//// -+/zAKhwgKAACZ/////zAKhwgKAACa/////zAKhwgKAACb/////zAKhwgKAACc//// -+/zAKhwgKAACd/////zAKhwgKAACe/////zAKhwgKAACf/////zAKhwgKAACg//// -+/zAKhwgKAACh/////zAKhwgKAACi/////zAKhwgKAACj/////zAKhwgKAACk//// -+/zAKhwgKAACl/////zAKhwgKAACm/////zAKhwgKAACn/////zAKhwgKAACo//// -+/zAKhwgKAACp/////zAKhwgKAACq/////zARpA8wDTELMAkGA1UEAwwCdDAwEaQP -+MA0xCzAJBgNVBAMMAnQxMBGkDzANMQswCQYDVQQDDAJ0MjARpA8wDTELMAkGA1UE -+AwwCdDMwEaQPMA0xCzAJBgNVBAMMAnQ0MBGkDzANMQswCQYDVQQDDAJ0NTARpA8w -+DTELMAkGA1UEAwwCdDYwEaQPMA0xCzAJBgNVBAMMAnQ3MBGkDzANMQswCQYDVQQD -+DAJ0ODARpA8wDTELMAkGA1UEAwwCdDkwEqQQMA4xDDAKBgNVBAMMA3QxMDASpBAw -+DjEMMAoGA1UEAwwDdDExMBKkEDAOMQwwCgYDVQQDDAN0MTIwEqQQMA4xDDAKBgNV -+BAMMA3QxMzASpBAwDjEMMAoGA1UEAwwDdDE0MBKkEDAOMQwwCgYDVQQDDAN0MTUw -+EqQQMA4xDDAKBgNVBAMMA3QxNjASpBAwDjEMMAoGA1UEAwwDdDE3MBKkEDAOMQww -+CgYDVQQDDAN0MTgwEqQQMA4xDDAKBgNVBAMMA3QxOTASpBAwDjEMMAoGA1UEAwwD -+dDIwMBKkEDAOMQwwCgYDVQQDDAN0MjEwEqQQMA4xDDAKBgNVBAMMA3QyMjASpBAw -+DjEMMAoGA1UEAwwDdDIzMBKkEDAOMQwwCgYDVQQDDAN0MjQwEqQQMA4xDDAKBgNV -+BAMMA3QyNTASpBAwDjEMMAoGA1UEAwwDdDI2MBKkEDAOMQwwCgYDVQQDDAN0Mjcw -+EqQQMA4xDDAKBgNVBAMMA3QyODASpBAwDjEMMAoGA1UEAwwDdDI5MBKkEDAOMQww -+CgYDVQQDDAN0MzAwEqQQMA4xDDAKBgNVBAMMA3QzMTASpBAwDjEMMAoGA1UEAwwD -+dDMyMBKkEDAOMQwwCgYDVQQDDAN0MzMwEqQQMA4xDDAKBgNVBAMMA3QzNDASpBAw -+DjEMMAoGA1UEAwwDdDM1MBKkEDAOMQwwCgYDVQQDDAN0MzYwEqQQMA4xDDAKBgNV -+BAMMA3QzNzASpBAwDjEMMAoGA1UEAwwDdDM4MBKkEDAOMQwwCgYDVQQDDAN0Mzkw -+EqQQMA4xDDAKBgNVBAMMA3Q0MDASpBAwDjEMMAoGA1UEAwwDdDQxMBKkEDAOMQww -+CgYDVQQDDAN0NDIwEqQQMA4xDDAKBgNVBAMMA3Q0MzASpBAwDjEMMAoGA1UEAwwD -+dDQ0MBKkEDAOMQwwCgYDVQQDDAN0NDUwEqQQMA4xDDAKBgNVBAMMA3Q0NjASpBAw -+DjEMMAoGA1UEAwwDdDQ3MBKkEDAOMQwwCgYDVQQDDAN0NDgwEqQQMA4xDDAKBgNV -+BAMMA3Q0OTASpBAwDjEMMAoGA1UEAwwDdDUwMBKkEDAOMQwwCgYDVQQDDAN0NTEw -+EqQQMA4xDDAKBgNVBAMMA3Q1MjASpBAwDjEMMAoGA1UEAwwDdDUzMBKkEDAOMQww -+CgYDVQQDDAN0NTQwEqQQMA4xDDAKBgNVBAMMA3Q1NTASpBAwDjEMMAoGA1UEAwwD -+dDU2MBKkEDAOMQwwCgYDVQQDDAN0NTcwEqQQMA4xDDAKBgNVBAMMA3Q1ODASpBAw -+DjEMMAoGA1UEAwwDdDU5MBKkEDAOMQwwCgYDVQQDDAN0NjAwEqQQMA4xDDAKBgNV -+BAMMA3Q2MTASpBAwDjEMMAoGA1UEAwwDdDYyMBKkEDAOMQwwCgYDVQQDDAN0NjMw -+EqQQMA4xDDAKBgNVBAMMA3Q2NDASpBAwDjEMMAoGA1UEAwwDdDY1MBKkEDAOMQww -+CgYDVQQDDAN0NjYwEqQQMA4xDDAKBgNVBAMMA3Q2NzASpBAwDjEMMAoGA1UEAwwD -+dDY4MBKkEDAOMQwwCgYDVQQDDAN0NjkwEqQQMA4xDDAKBgNVBAMMA3Q3MDASpBAw -+DjEMMAoGA1UEAwwDdDcxMBKkEDAOMQwwCgYDVQQDDAN0NzIwEqQQMA4xDDAKBgNV -+BAMMA3Q3MzASpBAwDjEMMAoGA1UEAwwDdDc0MBKkEDAOMQwwCgYDVQQDDAN0NzUw -+EqQQMA4xDDAKBgNVBAMMA3Q3NjASpBAwDjEMMAoGA1UEAwwDdDc3MBKkEDAOMQww -+CgYDVQQDDAN0NzgwEqQQMA4xDDAKBgNVBAMMA3Q3OTASpBAwDjEMMAoGA1UEAwwD -+dDgwMBKkEDAOMQwwCgYDVQQDDAN0ODEwEqQQMA4xDDAKBgNVBAMMA3Q4MjASpBAw -+DjEMMAoGA1UEAwwDdDgzMBKkEDAOMQwwCgYDVQQDDAN0ODQwEqQQMA4xDDAKBgNV -+BAMMA3Q4NTASpBAwDjEMMAoGA1UEAwwDdDg2MBKkEDAOMQwwCgYDVQQDDAN0ODcw -+EqQQMA4xDDAKBgNVBAMMA3Q4ODASpBAwDjEMMAoGA1UEAwwDdDg5MBKkEDAOMQww -+CgYDVQQDDAN0OTAwEqQQMA4xDDAKBgNVBAMMA3Q5MTASpBAwDjEMMAoGA1UEAwwD -+dDkyMBKkEDAOMQwwCgYDVQQDDAN0OTMwEqQQMA4xDDAKBgNVBAMMA3Q5NDASpBAw -+DjEMMAoGA1UEAwwDdDk1MBKkEDAOMQwwCgYDVQQDDAN0OTYwEqQQMA4xDDAKBgNV -+BAMMA3Q5NzASpBAwDjEMMAoGA1UEAwwDdDk4MBKkEDAOMQwwCgYDVQQDDAN0OTkw -+E6QRMA8xDTALBgNVBAMMBHQxMDAwE6QRMA8xDTALBgNVBAMMBHQxMDEwE6QRMA8x -+DTALBgNVBAMMBHQxMDIwE6QRMA8xDTALBgNVBAMMBHQxMDMwE6QRMA8xDTALBgNV -+BAMMBHQxMDQwE6QRMA8xDTALBgNVBAMMBHQxMDUwE6QRMA8xDTALBgNVBAMMBHQx -+MDYwE6QRMA8xDTALBgNVBAMMBHQxMDcwE6QRMA8xDTALBgNVBAMMBHQxMDgwE6QR -+MA8xDTALBgNVBAMMBHQxMDkwE6QRMA8xDTALBgNVBAMMBHQxMTAwE6QRMA8xDTAL -+BgNVBAMMBHQxMTEwE6QRMA8xDTALBgNVBAMMBHQxMTIwE6QRMA8xDTALBgNVBAMM -+BHQxMTMwE6QRMA8xDTALBgNVBAMMBHQxMTQwE6QRMA8xDTALBgNVBAMMBHQxMTUw -+E6QRMA8xDTALBgNVBAMMBHQxMTYwE6QRMA8xDTALBgNVBAMMBHQxMTcwE6QRMA8x -+DTALBgNVBAMMBHQxMTgwE6QRMA8xDTALBgNVBAMMBHQxMTkwE6QRMA8xDTALBgNV -+BAMMBHQxMjAwE6QRMA8xDTALBgNVBAMMBHQxMjEwE6QRMA8xDTALBgNVBAMMBHQx -+MjIwE6QRMA8xDTALBgNVBAMMBHQxMjMwE6QRMA8xDTALBgNVBAMMBHQxMjQwE6QR -+MA8xDTALBgNVBAMMBHQxMjUwE6QRMA8xDTALBgNVBAMMBHQxMjYwE6QRMA8xDTAL -+BgNVBAMMBHQxMjcwE6QRMA8xDTALBgNVBAMMBHQxMjgwE6QRMA8xDTALBgNVBAMM -+BHQxMjkwE6QRMA8xDTALBgNVBAMMBHQxMzAwE6QRMA8xDTALBgNVBAMMBHQxMzEw -+E6QRMA8xDTALBgNVBAMMBHQxMzIwE6QRMA8xDTALBgNVBAMMBHQxMzMwE6QRMA8x -+DTALBgNVBAMMBHQxMzQwE6QRMA8xDTALBgNVBAMMBHQxMzUwE6QRMA8xDTALBgNV -+BAMMBHQxMzYwE6QRMA8xDTALBgNVBAMMBHQxMzcwE6QRMA8xDTALBgNVBAMMBHQx -+MzgwE6QRMA8xDTALBgNVBAMMBHQxMzkwE6QRMA8xDTALBgNVBAMMBHQxNDAwE6QR -+MA8xDTALBgNVBAMMBHQxNDEwE6QRMA8xDTALBgNVBAMMBHQxNDIwE6QRMA8xDTAL -+BgNVBAMMBHQxNDMwE6QRMA8xDTALBgNVBAMMBHQxNDQwE6QRMA8xDTALBgNVBAMM -+BHQxNDUwE6QRMA8xDTALBgNVBAMMBHQxNDYwE6QRMA8xDTALBgNVBAMMBHQxNDcw -+E6QRMA8xDTALBgNVBAMMBHQxNDgwE6QRMA8xDTALBgNVBAMMBHQxNDkwE6QRMA8x -+DTALBgNVBAMMBHQxNTAwE6QRMA8xDTALBgNVBAMMBHQxNTEwE6QRMA8xDTALBgNV -+BAMMBHQxNTIwE6QRMA8xDTALBgNVBAMMBHQxNTMwE6QRMA8xDTALBgNVBAMMBHQx -+NTQwE6QRMA8xDTALBgNVBAMMBHQxNTUwE6QRMA8xDTALBgNVBAMMBHQxNTYwE6QR -+MA8xDTALBgNVBAMMBHQxNTcwE6QRMA8xDTALBgNVBAMMBHQxNTgwE6QRMA8xDTAL -+BgNVBAMMBHQxNTkwE6QRMA8xDTALBgNVBAMMBHQxNjAwE6QRMA8xDTALBgNVBAMM -+BHQxNjEwE6QRMA8xDTALBgNVBAMMBHQxNjIwE6QRMA8xDTALBgNVBAMMBHQxNjMw -+E6QRMA8xDTALBgNVBAMMBHQxNjQwE6QRMA8xDTALBgNVBAMMBHQxNjUwE6QRMA8x -+DTALBgNVBAMMBHQxNjYwE6QRMA8xDTALBgNVBAMMBHQxNjcwE6QRMA8xDTALBgNV -+BAMMBHQxNjgwE6QRMA8xDTALBgNVBAMMBHQxNjkwE6QRMA8xDTALBgNVBAMMBHQx -+NzAwE6QRMA8xDTALBgNVBAMMBHQxNzGhgh2wMAmCB3gwLnRlc3QwCYIHeDEudGVz -+dDAJggd4Mi50ZXN0MAmCB3gzLnRlc3QwCYIHeDQudGVzdDAJggd4NS50ZXN0MAmC -+B3g2LnRlc3QwCYIHeDcudGVzdDAJggd4OC50ZXN0MAmCB3g5LnRlc3QwCoIIeDEw -+LnRlc3QwCoIIeDExLnRlc3QwCoIIeDEyLnRlc3QwCoIIeDEzLnRlc3QwCoIIeDE0 -+LnRlc3QwCoIIeDE1LnRlc3QwCoIIeDE2LnRlc3QwCoIIeDE3LnRlc3QwCoIIeDE4 -+LnRlc3QwCoIIeDE5LnRlc3QwCoIIeDIwLnRlc3QwCoIIeDIxLnRlc3QwCoIIeDIy -+LnRlc3QwCoIIeDIzLnRlc3QwCoIIeDI0LnRlc3QwCoIIeDI1LnRlc3QwCoIIeDI2 -+LnRlc3QwCoIIeDI3LnRlc3QwCoIIeDI4LnRlc3QwCoIIeDI5LnRlc3QwCoIIeDMw -+LnRlc3QwCoIIeDMxLnRlc3QwCoIIeDMyLnRlc3QwCoIIeDMzLnRlc3QwCoIIeDM0 -+LnRlc3QwCoIIeDM1LnRlc3QwCoIIeDM2LnRlc3QwCoIIeDM3LnRlc3QwCoIIeDM4 -+LnRlc3QwCoIIeDM5LnRlc3QwCoIIeDQwLnRlc3QwCoIIeDQxLnRlc3QwCoIIeDQy -+LnRlc3QwCoIIeDQzLnRlc3QwCoIIeDQ0LnRlc3QwCoIIeDQ1LnRlc3QwCoIIeDQ2 -+LnRlc3QwCoIIeDQ3LnRlc3QwCoIIeDQ4LnRlc3QwCoIIeDQ5LnRlc3QwCoIIeDUw -+LnRlc3QwCoIIeDUxLnRlc3QwCoIIeDUyLnRlc3QwCoIIeDUzLnRlc3QwCoIIeDU0 -+LnRlc3QwCoIIeDU1LnRlc3QwCoIIeDU2LnRlc3QwCoIIeDU3LnRlc3QwCoIIeDU4 -+LnRlc3QwCoIIeDU5LnRlc3QwCoIIeDYwLnRlc3QwCoIIeDYxLnRlc3QwCoIIeDYy -+LnRlc3QwCoIIeDYzLnRlc3QwCoIIeDY0LnRlc3QwCoIIeDY1LnRlc3QwCoIIeDY2 -+LnRlc3QwCoIIeDY3LnRlc3QwCoIIeDY4LnRlc3QwCoIIeDY5LnRlc3QwCoIIeDcw -+LnRlc3QwCoIIeDcxLnRlc3QwCoIIeDcyLnRlc3QwCoIIeDczLnRlc3QwCoIIeDc0 -+LnRlc3QwCoIIeDc1LnRlc3QwCoIIeDc2LnRlc3QwCoIIeDc3LnRlc3QwCoIIeDc4 -+LnRlc3QwCoIIeDc5LnRlc3QwCoIIeDgwLnRlc3QwCoIIeDgxLnRlc3QwCoIIeDgy -+LnRlc3QwCoIIeDgzLnRlc3QwCoIIeDg0LnRlc3QwCoIIeDg1LnRlc3QwCoIIeDg2 -+LnRlc3QwCoIIeDg3LnRlc3QwCoIIeDg4LnRlc3QwCoIIeDg5LnRlc3QwCoIIeDkw -+LnRlc3QwCoIIeDkxLnRlc3QwCoIIeDkyLnRlc3QwCoIIeDkzLnRlc3QwCoIIeDk0 -+LnRlc3QwCoIIeDk1LnRlc3QwCoIIeDk2LnRlc3QwCoIIeDk3LnRlc3QwCoIIeDk4 -+LnRlc3QwCoIIeDk5LnRlc3QwC4IJeDEwMC50ZXN0MAuCCXgxMDEudGVzdDALggl4 -+MTAyLnRlc3QwC4IJeDEwMy50ZXN0MAuCCXgxMDQudGVzdDALggl4MTA1LnRlc3Qw -+C4IJeDEwNi50ZXN0MAuCCXgxMDcudGVzdDALggl4MTA4LnRlc3QwC4IJeDEwOS50 -+ZXN0MAuCCXgxMTAudGVzdDALggl4MTExLnRlc3QwC4IJeDExMi50ZXN0MAuCCXgx -+MTMudGVzdDALggl4MTE0LnRlc3QwC4IJeDExNS50ZXN0MAuCCXgxMTYudGVzdDAL -+ggl4MTE3LnRlc3QwC4IJeDExOC50ZXN0MAuCCXgxMTkudGVzdDALggl4MTIwLnRl -+c3QwC4IJeDEyMS50ZXN0MAuCCXgxMjIudGVzdDALggl4MTIzLnRlc3QwC4IJeDEy -+NC50ZXN0MAuCCXgxMjUudGVzdDALggl4MTI2LnRlc3QwC4IJeDEyNy50ZXN0MAuC -+CXgxMjgudGVzdDALggl4MTI5LnRlc3QwC4IJeDEzMC50ZXN0MAuCCXgxMzEudGVz -+dDALggl4MTMyLnRlc3QwC4IJeDEzMy50ZXN0MAuCCXgxMzQudGVzdDALggl4MTM1 -+LnRlc3QwC4IJeDEzNi50ZXN0MAuCCXgxMzcudGVzdDALggl4MTM4LnRlc3QwC4IJ -+eDEzOS50ZXN0MAuCCXgxNDAudGVzdDALggl4MTQxLnRlc3QwC4IJeDE0Mi50ZXN0 -+MAuCCXgxNDMudGVzdDALggl4MTQ0LnRlc3QwC4IJeDE0NS50ZXN0MAuCCXgxNDYu -+dGVzdDALggl4MTQ3LnRlc3QwC4IJeDE0OC50ZXN0MAuCCXgxNDkudGVzdDALggl4 -+MTUwLnRlc3QwC4IJeDE1MS50ZXN0MAuCCXgxNTIudGVzdDALggl4MTUzLnRlc3Qw -+C4IJeDE1NC50ZXN0MAuCCXgxNTUudGVzdDALggl4MTU2LnRlc3QwC4IJeDE1Ny50 -+ZXN0MAuCCXgxNTgudGVzdDALggl4MTU5LnRlc3QwC4IJeDE2MC50ZXN0MAuCCXgx -+NjEudGVzdDALggl4MTYyLnRlc3QwC4IJeDE2My50ZXN0MAuCCXgxNjQudGVzdDAL -+ggl4MTY1LnRlc3QwC4IJeDE2Ni50ZXN0MAuCCXgxNjcudGVzdDALggl4MTY4LnRl -+c3QwC4IJeDE2OS50ZXN0MAqHCAsAAAD/////MAqHCAsAAAH/////MAqHCAsAAAL/ -+////MAqHCAsAAAP/////MAqHCAsAAAT/////MAqHCAsAAAX/////MAqHCAsAAAb/ -+////MAqHCAsAAAf/////MAqHCAsAAAj/////MAqHCAsAAAn/////MAqHCAsAAAr/ -+////MAqHCAsAAAv/////MAqHCAsAAAz/////MAqHCAsAAA3/////MAqHCAsAAA7/ -+////MAqHCAsAAA//////MAqHCAsAABD/////MAqHCAsAABH/////MAqHCAsAABL/ -+////MAqHCAsAABP/////MAqHCAsAABT/////MAqHCAsAABX/////MAqHCAsAABb/ -+////MAqHCAsAABf/////MAqHCAsAABj/////MAqHCAsAABn/////MAqHCAsAABr/ -+////MAqHCAsAABv/////MAqHCAsAABz/////MAqHCAsAAB3/////MAqHCAsAAB7/ -+////MAqHCAsAAB//////MAqHCAsAACD/////MAqHCAsAACH/////MAqHCAsAACL/ -+////MAqHCAsAACP/////MAqHCAsAACT/////MAqHCAsAACX/////MAqHCAsAACb/ -+////MAqHCAsAACf/////MAqHCAsAACj/////MAqHCAsAACn/////MAqHCAsAACr/ -+////MAqHCAsAACv/////MAqHCAsAACz/////MAqHCAsAAC3/////MAqHCAsAAC7/ -+////MAqHCAsAAC//////MAqHCAsAADD/////MAqHCAsAADH/////MAqHCAsAADL/ -+////MAqHCAsAADP/////MAqHCAsAADT/////MAqHCAsAADX/////MAqHCAsAADb/ -+////MAqHCAsAADf/////MAqHCAsAADj/////MAqHCAsAADn/////MAqHCAsAADr/ -+////MAqHCAsAADv/////MAqHCAsAADz/////MAqHCAsAAD3/////MAqHCAsAAD7/ -+////MAqHCAsAAD//////MAqHCAsAAED/////MAqHCAsAAEH/////MAqHCAsAAEL/ -+////MAqHCAsAAEP/////MAqHCAsAAET/////MAqHCAsAAEX/////MAqHCAsAAEb/ -+////MAqHCAsAAEf/////MAqHCAsAAEj/////MAqHCAsAAEn/////MAqHCAsAAEr/ -+////MAqHCAsAAEv/////MAqHCAsAAEz/////MAqHCAsAAE3/////MAqHCAsAAE7/ -+////MAqHCAsAAE//////MAqHCAsAAFD/////MAqHCAsAAFH/////MAqHCAsAAFL/ -+////MAqHCAsAAFP/////MAqHCAsAAFT/////MAqHCAsAAFX/////MAqHCAsAAFb/ -+////MAqHCAsAAFf/////MAqHCAsAAFj/////MAqHCAsAAFn/////MAqHCAsAAFr/ -+////MAqHCAsAAFv/////MAqHCAsAAFz/////MAqHCAsAAF3/////MAqHCAsAAF7/ -+////MAqHCAsAAF//////MAqHCAsAAGD/////MAqHCAsAAGH/////MAqHCAsAAGL/ -+////MAqHCAsAAGP/////MAqHCAsAAGT/////MAqHCAsAAGX/////MAqHCAsAAGb/ -+////MAqHCAsAAGf/////MAqHCAsAAGj/////MAqHCAsAAGn/////MAqHCAsAAGr/ -+////MAqHCAsAAGv/////MAqHCAsAAGz/////MAqHCAsAAG3/////MAqHCAsAAG7/ -+////MAqHCAsAAG//////MAqHCAsAAHD/////MAqHCAsAAHH/////MAqHCAsAAHL/ -+////MAqHCAsAAHP/////MAqHCAsAAHT/////MAqHCAsAAHX/////MAqHCAsAAHb/ -+////MAqHCAsAAHf/////MAqHCAsAAHj/////MAqHCAsAAHn/////MAqHCAsAAHr/ -+////MAqHCAsAAHv/////MAqHCAsAAHz/////MAqHCAsAAH3/////MAqHCAsAAH7/ -+////MAqHCAsAAH//////MAqHCAsAAID/////MAqHCAsAAIH/////MAqHCAsAAIL/ -+////MAqHCAsAAIP/////MAqHCAsAAIT/////MAqHCAsAAIX/////MAqHCAsAAIb/ -+////MAqHCAsAAIf/////MAqHCAsAAIj/////MAqHCAsAAIn/////MAqHCAsAAIr/ -+////MAqHCAsAAIv/////MAqHCAsAAIz/////MAqHCAsAAI3/////MAqHCAsAAI7/ -+////MAqHCAsAAI//////MAqHCAsAAJD/////MAqHCAsAAJH/////MAqHCAsAAJL/ -+////MAqHCAsAAJP/////MAqHCAsAAJT/////MAqHCAsAAJX/////MAqHCAsAAJb/ -+////MAqHCAsAAJf/////MAqHCAsAAJj/////MAqHCAsAAJn/////MAqHCAsAAJr/ -+////MAqHCAsAAJv/////MAqHCAsAAJz/////MAqHCAsAAJ3/////MAqHCAsAAJ7/ -+////MAqHCAsAAJ//////MAqHCAsAAKD/////MAqHCAsAAKH/////MAqHCAsAAKL/ -+////MAqHCAsAAKP/////MAqHCAsAAKT/////MAqHCAsAAKX/////MAqHCAsAAKb/ -+////MAqHCAsAAKf/////MAqHCAsAAKj/////MAqHCAsAAKn/////MBGkDzANMQsw -+CQYDVQQDDAJ4MDARpA8wDTELMAkGA1UEAwwCeDEwEaQPMA0xCzAJBgNVBAMMAngy -+MBGkDzANMQswCQYDVQQDDAJ4MzARpA8wDTELMAkGA1UEAwwCeDQwEaQPMA0xCzAJ -+BgNVBAMMAng1MBGkDzANMQswCQYDVQQDDAJ4NjARpA8wDTELMAkGA1UEAwwCeDcw -+EaQPMA0xCzAJBgNVBAMMAng4MBGkDzANMQswCQYDVQQDDAJ4OTASpBAwDjEMMAoG -+A1UEAwwDeDEwMBKkEDAOMQwwCgYDVQQDDAN4MTEwEqQQMA4xDDAKBgNVBAMMA3gx -+MjASpBAwDjEMMAoGA1UEAwwDeDEzMBKkEDAOMQwwCgYDVQQDDAN4MTQwEqQQMA4x -+DDAKBgNVBAMMA3gxNTASpBAwDjEMMAoGA1UEAwwDeDE2MBKkEDAOMQwwCgYDVQQD -+DAN4MTcwEqQQMA4xDDAKBgNVBAMMA3gxODASpBAwDjEMMAoGA1UEAwwDeDE5MBKk -+EDAOMQwwCgYDVQQDDAN4MjAwEqQQMA4xDDAKBgNVBAMMA3gyMTASpBAwDjEMMAoG -+A1UEAwwDeDIyMBKkEDAOMQwwCgYDVQQDDAN4MjMwEqQQMA4xDDAKBgNVBAMMA3gy -+NDASpBAwDjEMMAoGA1UEAwwDeDI1MBKkEDAOMQwwCgYDVQQDDAN4MjYwEqQQMA4x -+DDAKBgNVBAMMA3gyNzASpBAwDjEMMAoGA1UEAwwDeDI4MBKkEDAOMQwwCgYDVQQD -+DAN4MjkwEqQQMA4xDDAKBgNVBAMMA3gzMDASpBAwDjEMMAoGA1UEAwwDeDMxMBKk -+EDAOMQwwCgYDVQQDDAN4MzIwEqQQMA4xDDAKBgNVBAMMA3gzMzASpBAwDjEMMAoG -+A1UEAwwDeDM0MBKkEDAOMQwwCgYDVQQDDAN4MzUwEqQQMA4xDDAKBgNVBAMMA3gz -+NjASpBAwDjEMMAoGA1UEAwwDeDM3MBKkEDAOMQwwCgYDVQQDDAN4MzgwEqQQMA4x -+DDAKBgNVBAMMA3gzOTASpBAwDjEMMAoGA1UEAwwDeDQwMBKkEDAOMQwwCgYDVQQD -+DAN4NDEwEqQQMA4xDDAKBgNVBAMMA3g0MjASpBAwDjEMMAoGA1UEAwwDeDQzMBKk -+EDAOMQwwCgYDVQQDDAN4NDQwEqQQMA4xDDAKBgNVBAMMA3g0NTASpBAwDjEMMAoG -+A1UEAwwDeDQ2MBKkEDAOMQwwCgYDVQQDDAN4NDcwEqQQMA4xDDAKBgNVBAMMA3g0 -+ODASpBAwDjEMMAoGA1UEAwwDeDQ5MBKkEDAOMQwwCgYDVQQDDAN4NTAwEqQQMA4x -+DDAKBgNVBAMMA3g1MTASpBAwDjEMMAoGA1UEAwwDeDUyMBKkEDAOMQwwCgYDVQQD -+DAN4NTMwEqQQMA4xDDAKBgNVBAMMA3g1NDASpBAwDjEMMAoGA1UEAwwDeDU1MBKk -+EDAOMQwwCgYDVQQDDAN4NTYwEqQQMA4xDDAKBgNVBAMMA3g1NzASpBAwDjEMMAoG -+A1UEAwwDeDU4MBKkEDAOMQwwCgYDVQQDDAN4NTkwEqQQMA4xDDAKBgNVBAMMA3g2 -+MDASpBAwDjEMMAoGA1UEAwwDeDYxMBKkEDAOMQwwCgYDVQQDDAN4NjIwEqQQMA4x -+DDAKBgNVBAMMA3g2MzASpBAwDjEMMAoGA1UEAwwDeDY0MBKkEDAOMQwwCgYDVQQD -+DAN4NjUwEqQQMA4xDDAKBgNVBAMMA3g2NjASpBAwDjEMMAoGA1UEAwwDeDY3MBKk -+EDAOMQwwCgYDVQQDDAN4NjgwEqQQMA4xDDAKBgNVBAMMA3g2OTASpBAwDjEMMAoG -+A1UEAwwDeDcwMBKkEDAOMQwwCgYDVQQDDAN4NzEwEqQQMA4xDDAKBgNVBAMMA3g3 -+MjASpBAwDjEMMAoGA1UEAwwDeDczMBKkEDAOMQwwCgYDVQQDDAN4NzQwEqQQMA4x -+DDAKBgNVBAMMA3g3NTASpBAwDjEMMAoGA1UEAwwDeDc2MBKkEDAOMQwwCgYDVQQD -+DAN4NzcwEqQQMA4xDDAKBgNVBAMMA3g3ODASpBAwDjEMMAoGA1UEAwwDeDc5MBKk -+EDAOMQwwCgYDVQQDDAN4ODAwEqQQMA4xDDAKBgNVBAMMA3g4MTASpBAwDjEMMAoG -+A1UEAwwDeDgyMBKkEDAOMQwwCgYDVQQDDAN4ODMwEqQQMA4xDDAKBgNVBAMMA3g4 -+NDASpBAwDjEMMAoGA1UEAwwDeDg1MBKkEDAOMQwwCgYDVQQDDAN4ODYwEqQQMA4x -+DDAKBgNVBAMMA3g4NzASpBAwDjEMMAoGA1UEAwwDeDg4MBKkEDAOMQwwCgYDVQQD -+DAN4ODkwEqQQMA4xDDAKBgNVBAMMA3g5MDASpBAwDjEMMAoGA1UEAwwDeDkxMBKk -+EDAOMQwwCgYDVQQDDAN4OTIwEqQQMA4xDDAKBgNVBAMMA3g5MzASpBAwDjEMMAoG -+A1UEAwwDeDk0MBKkEDAOMQwwCgYDVQQDDAN4OTUwEqQQMA4xDDAKBgNVBAMMA3g5 -+NjASpBAwDjEMMAoGA1UEAwwDeDk3MBKkEDAOMQwwCgYDVQQDDAN4OTgwEqQQMA4x -+DDAKBgNVBAMMA3g5OTATpBEwDzENMAsGA1UEAwwEeDEwMDATpBEwDzENMAsGA1UE -+AwwEeDEwMTATpBEwDzENMAsGA1UEAwwEeDEwMjATpBEwDzENMAsGA1UEAwwEeDEw -+MzATpBEwDzENMAsGA1UEAwwEeDEwNDATpBEwDzENMAsGA1UEAwwEeDEwNTATpBEw -+DzENMAsGA1UEAwwEeDEwNjATpBEwDzENMAsGA1UEAwwEeDEwNzATpBEwDzENMAsG -+A1UEAwwEeDEwODATpBEwDzENMAsGA1UEAwwEeDEwOTATpBEwDzENMAsGA1UEAwwE -+eDExMDATpBEwDzENMAsGA1UEAwwEeDExMTATpBEwDzENMAsGA1UEAwwEeDExMjAT -+pBEwDzENMAsGA1UEAwwEeDExMzATpBEwDzENMAsGA1UEAwwEeDExNDATpBEwDzEN -+MAsGA1UEAwwEeDExNTATpBEwDzENMAsGA1UEAwwEeDExNjATpBEwDzENMAsGA1UE -+AwwEeDExNzATpBEwDzENMAsGA1UEAwwEeDExODATpBEwDzENMAsGA1UEAwwEeDEx -+OTATpBEwDzENMAsGA1UEAwwEeDEyMDATpBEwDzENMAsGA1UEAwwEeDEyMTATpBEw -+DzENMAsGA1UEAwwEeDEyMjATpBEwDzENMAsGA1UEAwwEeDEyMzATpBEwDzENMAsG -+A1UEAwwEeDEyNDATpBEwDzENMAsGA1UEAwwEeDEyNTATpBEwDzENMAsGA1UEAwwE -+eDEyNjATpBEwDzENMAsGA1UEAwwEeDEyNzATpBEwDzENMAsGA1UEAwwEeDEyODAT -+pBEwDzENMAsGA1UEAwwEeDEyOTATpBEwDzENMAsGA1UEAwwEeDEzMDATpBEwDzEN -+MAsGA1UEAwwEeDEzMTATpBEwDzENMAsGA1UEAwwEeDEzMjATpBEwDzENMAsGA1UE -+AwwEeDEzMzATpBEwDzENMAsGA1UEAwwEeDEzNDATpBEwDzENMAsGA1UEAwwEeDEz -+NTATpBEwDzENMAsGA1UEAwwEeDEzNjATpBEwDzENMAsGA1UEAwwEeDEzNzATpBEw -+DzENMAsGA1UEAwwEeDEzODATpBEwDzENMAsGA1UEAwwEeDEzOTATpBEwDzENMAsG -+A1UEAwwEeDE0MDATpBEwDzENMAsGA1UEAwwEeDE0MTATpBEwDzENMAsGA1UEAwwE -+eDE0MjATpBEwDzENMAsGA1UEAwwEeDE0MzATpBEwDzENMAsGA1UEAwwEeDE0NDAT -+pBEwDzENMAsGA1UEAwwEeDE0NTATpBEwDzENMAsGA1UEAwwEeDE0NjATpBEwDzEN -+MAsGA1UEAwwEeDE0NzATpBEwDzENMAsGA1UEAwwEeDE0ODATpBEwDzENMAsGA1UE -+AwwEeDE0OTATpBEwDzENMAsGA1UEAwwEeDE1MDATpBEwDzENMAsGA1UEAwwEeDE1 -+MTATpBEwDzENMAsGA1UEAwwEeDE1MjATpBEwDzENMAsGA1UEAwwEeDE1MzATpBEw -+DzENMAsGA1UEAwwEeDE1NDATpBEwDzENMAsGA1UEAwwEeDE1NTATpBEwDzENMAsG -+A1UEAwwEeDE1NjATpBEwDzENMAsGA1UEAwwEeDE1NzATpBEwDzENMAsGA1UEAwwE -+eDE1ODATpBEwDzENMAsGA1UEAwwEeDE1OTATpBEwDzENMAsGA1UEAwwEeDE2MDAT -+pBEwDzENMAsGA1UEAwwEeDE2MTATpBEwDzENMAsGA1UEAwwEeDE2MjATpBEwDzEN -+MAsGA1UEAwwEeDE2MzATpBEwDzENMAsGA1UEAwwEeDE2NDATpBEwDzENMAsGA1UE -+AwwEeDE2NTATpBEwDzENMAsGA1UEAwwEeDE2NjATpBEwDzENMAsGA1UEAwwEeDE2 -+NzATpBEwDzENMAsGA1UEAwwEeDE2ODATpBEwDzENMAsGA1UEAwwEeDE2OTANBgkq -+hkiG9w0BAQsFAAOCAQEAn8uDe+I8Vycl7II/MML/ElFxP9WUBRpbWESAtIke4IlF -+5eNyi8TYylSj2/Kj/RYAwYYh4u3jbJR+Ca7tNhzjl289CrE5eHqzuc7DaO5gJ3zL -+azM8X6JqmdQIKukhBOoS2ShTH8yvq0GjbjT6VlZE1cUQvfQ3O0WUdBmySc8PmJR1 -+aOxOb7BBrPc4Ah3dHxT2tcYMorKnB3WZVE7+aAwdrqCQ19VkYBX/x/0x2qtQQ0S3 -+zD/S7uQDPqCdjoFIIYY0Zie+snMBK2XuUTtXP3ZRrYL8fsnOiTgEX8n2QWIyYLK5 -+0f5OeNaleVZ7V+QdQnofqvew0IK61PG7+Zzsyuf3CQ== - -----END CERTIFICATE----- - - Certificate: -@@ -3813,7 +1791,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -diff --git a/net/data/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.pem b/net/data/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.pem -index 80c8f81db55b7..5d15afebb118d 100644 ---- a/net/data/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.pem -+++ b/net/data/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.pem -@@ -1,4 +1,4 @@ --[Created by: generate-chains.py] -+[Created by: ./generate-chains.py] - - A chain containing a large number of excluded directory name - constraints and directory names, above the limit. -@@ -8,7 +8,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:d8 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Intermediate - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -505,7 +505,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:fa -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -554,1031 +554,1031 @@ Certificate: - CA:TRUE - X509v3 Name Constraints: - Excluded: -- DirName:CN = x0 -- DirName:CN = x1 -- DirName:CN = x2 -- DirName:CN = x3 -- DirName:CN = x4 -- DirName:CN = x5 -- DirName:CN = x6 -- DirName:CN = x7 -- DirName:CN = x8 -- DirName:CN = x9 -- DirName:CN = x10 -- DirName:CN = x11 -- DirName:CN = x12 -- DirName:CN = x13 -- DirName:CN = x14 -- DirName:CN = x15 -- DirName:CN = x16 -- DirName:CN = x17 -- DirName:CN = x18 -- DirName:CN = x19 -- DirName:CN = x20 -- DirName:CN = x21 -- DirName:CN = x22 -- DirName:CN = x23 -- DirName:CN = x24 -- DirName:CN = x25 -- DirName:CN = x26 -- DirName:CN = x27 -- DirName:CN = x28 -- DirName:CN = x29 -- DirName:CN = x30 -- DirName:CN = x31 -- DirName:CN = x32 -- DirName:CN = x33 -- DirName:CN = x34 -- DirName:CN = x35 -- DirName:CN = x36 -- DirName:CN = x37 -- DirName:CN = x38 -- DirName:CN = x39 -- DirName:CN = x40 -- DirName:CN = x41 -- DirName:CN = x42 -- DirName:CN = x43 -- DirName:CN = x44 -- DirName:CN = x45 -- DirName:CN = x46 -- DirName:CN = x47 -- DirName:CN = x48 -- DirName:CN = x49 -- DirName:CN = x50 -- DirName:CN = x51 -- DirName:CN = x52 -- DirName:CN = x53 -- DirName:CN = x54 -- DirName:CN = x55 -- DirName:CN = x56 -- DirName:CN = x57 -- DirName:CN = x58 -- DirName:CN = x59 -- DirName:CN = x60 -- DirName:CN = x61 -- DirName:CN = x62 -- DirName:CN = x63 -- DirName:CN = x64 -- DirName:CN = x65 -- DirName:CN = x66 -- DirName:CN = x67 -- DirName:CN = x68 -- DirName:CN = x69 -- DirName:CN = x70 -- DirName:CN = x71 -- DirName:CN = x72 -- DirName:CN = x73 -- DirName:CN = x74 -- DirName:CN = x75 -- DirName:CN = x76 -- DirName:CN = x77 -- DirName:CN = x78 -- DirName:CN = x79 -- DirName:CN = x80 -- DirName:CN = x81 -- DirName:CN = x82 -- DirName:CN = x83 -- DirName:CN = x84 -- DirName:CN = x85 -- DirName:CN = x86 -- DirName:CN = x87 -- DirName:CN = x88 -- DirName:CN = x89 -- DirName:CN = x90 -- DirName:CN = x91 -- DirName:CN = x92 -- DirName:CN = x93 -- DirName:CN = x94 -- DirName:CN = x95 -- DirName:CN = x96 -- DirName:CN = x97 -- DirName:CN = x98 -- DirName:CN = x99 -- DirName:CN = x100 -- DirName:CN = x101 -- DirName:CN = x102 -- DirName:CN = x103 -- DirName:CN = x104 -- DirName:CN = x105 -- DirName:CN = x106 -- DirName:CN = x107 -- DirName:CN = x108 -- DirName:CN = x109 -- DirName:CN = x110 -- DirName:CN = x111 -- DirName:CN = x112 -- DirName:CN = x113 -- DirName:CN = x114 -- DirName:CN = x115 -- DirName:CN = x116 -- DirName:CN = x117 -- DirName:CN = x118 -- DirName:CN = x119 -- DirName:CN = x120 -- DirName:CN = x121 -- DirName:CN = x122 -- DirName:CN = x123 -- DirName:CN = x124 -- DirName:CN = x125 -- DirName:CN = x126 -- DirName:CN = x127 -- DirName:CN = x128 -- DirName:CN = x129 -- DirName:CN = x130 -- DirName:CN = x131 -- DirName:CN = x132 -- DirName:CN = x133 -- DirName:CN = x134 -- DirName:CN = x135 -- DirName:CN = x136 -- DirName:CN = x137 -- DirName:CN = x138 -- DirName:CN = x139 -- DirName:CN = x140 -- DirName:CN = x141 -- DirName:CN = x142 -- DirName:CN = x143 -- DirName:CN = x144 -- DirName:CN = x145 -- DirName:CN = x146 -- DirName:CN = x147 -- DirName:CN = x148 -- DirName:CN = x149 -- DirName:CN = x150 -- DirName:CN = x151 -- DirName:CN = x152 -- DirName:CN = x153 -- DirName:CN = x154 -- DirName:CN = x155 -- DirName:CN = x156 -- DirName:CN = x157 -- DirName:CN = x158 -- DirName:CN = x159 -- DirName:CN = x160 -- DirName:CN = x161 -- DirName:CN = x162 -- DirName:CN = x163 -- DirName:CN = x164 -- DirName:CN = x165 -- DirName:CN = x166 -- DirName:CN = x167 -- DirName:CN = x168 -- DirName:CN = x169 -- DirName:CN = x170 -- DirName:CN = x171 -- DirName:CN = x172 -- DirName:CN = x173 -- DirName:CN = x174 -- DirName:CN = x175 -- DirName:CN = x176 -- DirName:CN = x177 -- DirName:CN = x178 -- DirName:CN = x179 -- DirName:CN = x180 -- DirName:CN = x181 -- DirName:CN = x182 -- DirName:CN = x183 -- DirName:CN = x184 -- DirName:CN = x185 -- DirName:CN = x186 -- DirName:CN = x187 -- DirName:CN = x188 -- DirName:CN = x189 -- DirName:CN = x190 -- DirName:CN = x191 -- DirName:CN = x192 -- DirName:CN = x193 -- DirName:CN = x194 -- DirName:CN = x195 -- DirName:CN = x196 -- DirName:CN = x197 -- DirName:CN = x198 -- DirName:CN = x199 -- DirName:CN = x200 -- DirName:CN = x201 -- DirName:CN = x202 -- DirName:CN = x203 -- DirName:CN = x204 -- DirName:CN = x205 -- DirName:CN = x206 -- DirName:CN = x207 -- DirName:CN = x208 -- DirName:CN = x209 -- DirName:CN = x210 -- DirName:CN = x211 -- DirName:CN = x212 -- DirName:CN = x213 -- DirName:CN = x214 -- DirName:CN = x215 -- DirName:CN = x216 -- DirName:CN = x217 -- DirName:CN = x218 -- DirName:CN = x219 -- DirName:CN = x220 -- DirName:CN = x221 -- DirName:CN = x222 -- DirName:CN = x223 -- DirName:CN = x224 -- DirName:CN = x225 -- DirName:CN = x226 -- DirName:CN = x227 -- DirName:CN = x228 -- DirName:CN = x229 -- DirName:CN = x230 -- DirName:CN = x231 -- DirName:CN = x232 -- DirName:CN = x233 -- DirName:CN = x234 -- DirName:CN = x235 -- DirName:CN = x236 -- DirName:CN = x237 -- DirName:CN = x238 -- DirName:CN = x239 -- DirName:CN = x240 -- DirName:CN = x241 -- DirName:CN = x242 -- DirName:CN = x243 -- DirName:CN = x244 -- DirName:CN = x245 -- DirName:CN = x246 -- DirName:CN = x247 -- DirName:CN = x248 -- DirName:CN = x249 -- DirName:CN = x250 -- DirName:CN = x251 -- DirName:CN = x252 -- DirName:CN = x253 -- DirName:CN = x254 -- DirName:CN = x255 -- DirName:CN = x256 -- DirName:CN = x257 -- DirName:CN = x258 -- DirName:CN = x259 -- DirName:CN = x260 -- DirName:CN = x261 -- DirName:CN = x262 -- DirName:CN = x263 -- DirName:CN = x264 -- DirName:CN = x265 -- DirName:CN = x266 -- DirName:CN = x267 -- DirName:CN = x268 -- DirName:CN = x269 -- DirName:CN = x270 -- DirName:CN = x271 -- DirName:CN = x272 -- DirName:CN = x273 -- DirName:CN = x274 -- DirName:CN = x275 -- DirName:CN = x276 -- DirName:CN = x277 -- DirName:CN = x278 -- DirName:CN = x279 -- DirName:CN = x280 -- DirName:CN = x281 -- DirName:CN = x282 -- DirName:CN = x283 -- DirName:CN = x284 -- DirName:CN = x285 -- DirName:CN = x286 -- DirName:CN = x287 -- DirName:CN = x288 -- DirName:CN = x289 -- DirName:CN = x290 -- DirName:CN = x291 -- DirName:CN = x292 -- DirName:CN = x293 -- DirName:CN = x294 -- DirName:CN = x295 -- DirName:CN = x296 -- DirName:CN = x297 -- DirName:CN = x298 -- DirName:CN = x299 -- DirName:CN = x300 -- DirName:CN = x301 -- DirName:CN = x302 -- DirName:CN = x303 -- DirName:CN = x304 -- DirName:CN = x305 -- DirName:CN = x306 -- DirName:CN = x307 -- DirName:CN = x308 -- DirName:CN = x309 -- DirName:CN = x310 -- DirName:CN = x311 -- DirName:CN = x312 -- DirName:CN = x313 -- DirName:CN = x314 -- DirName:CN = x315 -- DirName:CN = x316 -- DirName:CN = x317 -- DirName:CN = x318 -- DirName:CN = x319 -- DirName:CN = x320 -- DirName:CN = x321 -- DirName:CN = x322 -- DirName:CN = x323 -- DirName:CN = x324 -- DirName:CN = x325 -- DirName:CN = x326 -- DirName:CN = x327 -- DirName:CN = x328 -- DirName:CN = x329 -- DirName:CN = x330 -- DirName:CN = x331 -- DirName:CN = x332 -- DirName:CN = x333 -- DirName:CN = x334 -- DirName:CN = x335 -- DirName:CN = x336 -- DirName:CN = x337 -- DirName:CN = x338 -- DirName:CN = x339 -- DirName:CN = x340 -- DirName:CN = x341 -- DirName:CN = x342 -- DirName:CN = x343 -- DirName:CN = x344 -- DirName:CN = x345 -- DirName:CN = x346 -- DirName:CN = x347 -- DirName:CN = x348 -- DirName:CN = x349 -- DirName:CN = x350 -- DirName:CN = x351 -- DirName:CN = x352 -- DirName:CN = x353 -- DirName:CN = x354 -- DirName:CN = x355 -- DirName:CN = x356 -- DirName:CN = x357 -- DirName:CN = x358 -- DirName:CN = x359 -- DirName:CN = x360 -- DirName:CN = x361 -- DirName:CN = x362 -- DirName:CN = x363 -- DirName:CN = x364 -- DirName:CN = x365 -- DirName:CN = x366 -- DirName:CN = x367 -- DirName:CN = x368 -- DirName:CN = x369 -- DirName:CN = x370 -- DirName:CN = x371 -- DirName:CN = x372 -- DirName:CN = x373 -- DirName:CN = x374 -- DirName:CN = x375 -- DirName:CN = x376 -- DirName:CN = x377 -- DirName:CN = x378 -- DirName:CN = x379 -- DirName:CN = x380 -- DirName:CN = x381 -- DirName:CN = x382 -- DirName:CN = x383 -- DirName:CN = x384 -- DirName:CN = x385 -- DirName:CN = x386 -- DirName:CN = x387 -- DirName:CN = x388 -- DirName:CN = x389 -- DirName:CN = x390 -- DirName:CN = x391 -- DirName:CN = x392 -- DirName:CN = x393 -- DirName:CN = x394 -- DirName:CN = x395 -- DirName:CN = x396 -- DirName:CN = x397 -- DirName:CN = x398 -- DirName:CN = x399 -- DirName:CN = x400 -- DirName:CN = x401 -- DirName:CN = x402 -- DirName:CN = x403 -- DirName:CN = x404 -- DirName:CN = x405 -- DirName:CN = x406 -- DirName:CN = x407 -- DirName:CN = x408 -- DirName:CN = x409 -- DirName:CN = x410 -- DirName:CN = x411 -- DirName:CN = x412 -- DirName:CN = x413 -- DirName:CN = x414 -- DirName:CN = x415 -- DirName:CN = x416 -- DirName:CN = x417 -- DirName:CN = x418 -- DirName:CN = x419 -- DirName:CN = x420 -- DirName:CN = x421 -- DirName:CN = x422 -- DirName:CN = x423 -- DirName:CN = x424 -- DirName:CN = x425 -- DirName:CN = x426 -- DirName:CN = x427 -- DirName:CN = x428 -- DirName:CN = x429 -- DirName:CN = x430 -- DirName:CN = x431 -- DirName:CN = x432 -- DirName:CN = x433 -- DirName:CN = x434 -- DirName:CN = x435 -- DirName:CN = x436 -- DirName:CN = x437 -- DirName:CN = x438 -- DirName:CN = x439 -- DirName:CN = x440 -- DirName:CN = x441 -- DirName:CN = x442 -- DirName:CN = x443 -- DirName:CN = x444 -- DirName:CN = x445 -- DirName:CN = x446 -- DirName:CN = x447 -- DirName:CN = x448 -- DirName:CN = x449 -- DirName:CN = x450 -- DirName:CN = x451 -- DirName:CN = x452 -- DirName:CN = x453 -- DirName:CN = x454 -- DirName:CN = x455 -- DirName:CN = x456 -- DirName:CN = x457 -- DirName:CN = x458 -- DirName:CN = x459 -- DirName:CN = x460 -- DirName:CN = x461 -- DirName:CN = x462 -- DirName:CN = x463 -- DirName:CN = x464 -- DirName:CN = x465 -- DirName:CN = x466 -- DirName:CN = x467 -- DirName:CN = x468 -- DirName:CN = x469 -- DirName:CN = x470 -- DirName:CN = x471 -- DirName:CN = x472 -- DirName:CN = x473 -- DirName:CN = x474 -- DirName:CN = x475 -- DirName:CN = x476 -- DirName:CN = x477 -- DirName:CN = x478 -- DirName:CN = x479 -- DirName:CN = x480 -- DirName:CN = x481 -- DirName:CN = x482 -- DirName:CN = x483 -- DirName:CN = x484 -- DirName:CN = x485 -- DirName:CN = x486 -- DirName:CN = x487 -- DirName:CN = x488 -- DirName:CN = x489 -- DirName:CN = x490 -- DirName:CN = x491 -- DirName:CN = x492 -- DirName:CN = x493 -- DirName:CN = x494 -- DirName:CN = x495 -- DirName:CN = x496 -- DirName:CN = x497 -- DirName:CN = x498 -- DirName:CN = x499 -- DirName:CN = x500 -- DirName:CN = x501 -- DirName:CN = x502 -- DirName:CN = x503 -- DirName:CN = x504 -- DirName:CN = x505 -- DirName:CN = x506 -- DirName:CN = x507 -- DirName:CN = x508 -- DirName:CN = x509 -- DirName:CN = x510 -- DirName:CN = x511 -- DirName:CN = x512 -- DirName:CN = x513 -- DirName:CN = x514 -- DirName:CN = x515 -- DirName:CN = x516 -- DirName:CN = x517 -- DirName:CN = x518 -- DirName:CN = x519 -- DirName:CN = x520 -- DirName:CN = x521 -- DirName:CN = x522 -- DirName:CN = x523 -- DirName:CN = x524 -- DirName:CN = x525 -- DirName:CN = x526 -- DirName:CN = x527 -- DirName:CN = x528 -- DirName:CN = x529 -- DirName:CN = x530 -- DirName:CN = x531 -- DirName:CN = x532 -- DirName:CN = x533 -- DirName:CN = x534 -- DirName:CN = x535 -- DirName:CN = x536 -- DirName:CN = x537 -- DirName:CN = x538 -- DirName:CN = x539 -- DirName:CN = x540 -- DirName:CN = x541 -- DirName:CN = x542 -- DirName:CN = x543 -- DirName:CN = x544 -- DirName:CN = x545 -- DirName:CN = x546 -- DirName:CN = x547 -- DirName:CN = x548 -- DirName:CN = x549 -- DirName:CN = x550 -- DirName:CN = x551 -- DirName:CN = x552 -- DirName:CN = x553 -- DirName:CN = x554 -- DirName:CN = x555 -- DirName:CN = x556 -- DirName:CN = x557 -- DirName:CN = x558 -- DirName:CN = x559 -- DirName:CN = x560 -- DirName:CN = x561 -- DirName:CN = x562 -- DirName:CN = x563 -- DirName:CN = x564 -- DirName:CN = x565 -- DirName:CN = x566 -- DirName:CN = x567 -- DirName:CN = x568 -- DirName:CN = x569 -- DirName:CN = x570 -- DirName:CN = x571 -- DirName:CN = x572 -- DirName:CN = x573 -- DirName:CN = x574 -- DirName:CN = x575 -- DirName:CN = x576 -- DirName:CN = x577 -- DirName:CN = x578 -- DirName:CN = x579 -- DirName:CN = x580 -- DirName:CN = x581 -- DirName:CN = x582 -- DirName:CN = x583 -- DirName:CN = x584 -- DirName:CN = x585 -- DirName:CN = x586 -- DirName:CN = x587 -- DirName:CN = x588 -- DirName:CN = x589 -- DirName:CN = x590 -- DirName:CN = x591 -- DirName:CN = x592 -- DirName:CN = x593 -- DirName:CN = x594 -- DirName:CN = x595 -- DirName:CN = x596 -- DirName:CN = x597 -- DirName:CN = x598 -- DirName:CN = x599 -- DirName:CN = x600 -- DirName:CN = x601 -- DirName:CN = x602 -- DirName:CN = x603 -- DirName:CN = x604 -- DirName:CN = x605 -- DirName:CN = x606 -- DirName:CN = x607 -- DirName:CN = x608 -- DirName:CN = x609 -- DirName:CN = x610 -- DirName:CN = x611 -- DirName:CN = x612 -- DirName:CN = x613 -- DirName:CN = x614 -- DirName:CN = x615 -- DirName:CN = x616 -- DirName:CN = x617 -- DirName:CN = x618 -- DirName:CN = x619 -- DirName:CN = x620 -- DirName:CN = x621 -- DirName:CN = x622 -- DirName:CN = x623 -- DirName:CN = x624 -- DirName:CN = x625 -- DirName:CN = x626 -- DirName:CN = x627 -- DirName:CN = x628 -- DirName:CN = x629 -- DirName:CN = x630 -- DirName:CN = x631 -- DirName:CN = x632 -- DirName:CN = x633 -- DirName:CN = x634 -- DirName:CN = x635 -- DirName:CN = x636 -- DirName:CN = x637 -- DirName:CN = x638 -- DirName:CN = x639 -- DirName:CN = x640 -- DirName:CN = x641 -- DirName:CN = x642 -- DirName:CN = x643 -- DirName:CN = x644 -- DirName:CN = x645 -- DirName:CN = x646 -- DirName:CN = x647 -- DirName:CN = x648 -- DirName:CN = x649 -- DirName:CN = x650 -- DirName:CN = x651 -- DirName:CN = x652 -- DirName:CN = x653 -- DirName:CN = x654 -- DirName:CN = x655 -- DirName:CN = x656 -- DirName:CN = x657 -- DirName:CN = x658 -- DirName:CN = x659 -- DirName:CN = x660 -- DirName:CN = x661 -- DirName:CN = x662 -- DirName:CN = x663 -- DirName:CN = x664 -- DirName:CN = x665 -- DirName:CN = x666 -- DirName:CN = x667 -- DirName:CN = x668 -- DirName:CN = x669 -- DirName:CN = x670 -- DirName:CN = x671 -- DirName:CN = x672 -- DirName:CN = x673 -- DirName:CN = x674 -- DirName:CN = x675 -- DirName:CN = x676 -- DirName:CN = x677 -- DirName:CN = x678 -- DirName:CN = x679 -- DirName:CN = x680 -- DirName:CN = x681 -- DirName:CN = x682 -- DirName:CN = x683 -- DirName:CN = x684 -- DirName:CN = x685 -- DirName:CN = x686 -- DirName:CN = x687 -- DirName:CN = x688 -- DirName:CN = x689 -- DirName:CN = x690 -- DirName:CN = x691 -- DirName:CN = x692 -- DirName:CN = x693 -- DirName:CN = x694 -- DirName:CN = x695 -- DirName:CN = x696 -- DirName:CN = x697 -- DirName:CN = x698 -- DirName:CN = x699 -- DirName:CN = x700 -- DirName:CN = x701 -- DirName:CN = x702 -- DirName:CN = x703 -- DirName:CN = x704 -- DirName:CN = x705 -- DirName:CN = x706 -- DirName:CN = x707 -- DirName:CN = x708 -- DirName:CN = x709 -- DirName:CN = x710 -- DirName:CN = x711 -- DirName:CN = x712 -- DirName:CN = x713 -- DirName:CN = x714 -- DirName:CN = x715 -- DirName:CN = x716 -- DirName:CN = x717 -- DirName:CN = x718 -- DirName:CN = x719 -- DirName:CN = x720 -- DirName:CN = x721 -- DirName:CN = x722 -- DirName:CN = x723 -- DirName:CN = x724 -- DirName:CN = x725 -- DirName:CN = x726 -- DirName:CN = x727 -- DirName:CN = x728 -- DirName:CN = x729 -- DirName:CN = x730 -- DirName:CN = x731 -- DirName:CN = x732 -- DirName:CN = x733 -- DirName:CN = x734 -- DirName:CN = x735 -- DirName:CN = x736 -- DirName:CN = x737 -- DirName:CN = x738 -- DirName:CN = x739 -- DirName:CN = x740 -- DirName:CN = x741 -- DirName:CN = x742 -- DirName:CN = x743 -- DirName:CN = x744 -- DirName:CN = x745 -- DirName:CN = x746 -- DirName:CN = x747 -- DirName:CN = x748 -- DirName:CN = x749 -- DirName:CN = x750 -- DirName:CN = x751 -- DirName:CN = x752 -- DirName:CN = x753 -- DirName:CN = x754 -- DirName:CN = x755 -- DirName:CN = x756 -- DirName:CN = x757 -- DirName:CN = x758 -- DirName:CN = x759 -- DirName:CN = x760 -- DirName:CN = x761 -- DirName:CN = x762 -- DirName:CN = x763 -- DirName:CN = x764 -- DirName:CN = x765 -- DirName:CN = x766 -- DirName:CN = x767 -- DirName:CN = x768 -- DirName:CN = x769 -- DirName:CN = x770 -- DirName:CN = x771 -- DirName:CN = x772 -- DirName:CN = x773 -- DirName:CN = x774 -- DirName:CN = x775 -- DirName:CN = x776 -- DirName:CN = x777 -- DirName:CN = x778 -- DirName:CN = x779 -- DirName:CN = x780 -- DirName:CN = x781 -- DirName:CN = x782 -- DirName:CN = x783 -- DirName:CN = x784 -- DirName:CN = x785 -- DirName:CN = x786 -- DirName:CN = x787 -- DirName:CN = x788 -- DirName:CN = x789 -- DirName:CN = x790 -- DirName:CN = x791 -- DirName:CN = x792 -- DirName:CN = x793 -- DirName:CN = x794 -- DirName:CN = x795 -- DirName:CN = x796 -- DirName:CN = x797 -- DirName:CN = x798 -- DirName:CN = x799 -- DirName:CN = x800 -- DirName:CN = x801 -- DirName:CN = x802 -- DirName:CN = x803 -- DirName:CN = x804 -- DirName:CN = x805 -- DirName:CN = x806 -- DirName:CN = x807 -- DirName:CN = x808 -- DirName:CN = x809 -- DirName:CN = x810 -- DirName:CN = x811 -- DirName:CN = x812 -- DirName:CN = x813 -- DirName:CN = x814 -- DirName:CN = x815 -- DirName:CN = x816 -- DirName:CN = x817 -- DirName:CN = x818 -- DirName:CN = x819 -- DirName:CN = x820 -- DirName:CN = x821 -- DirName:CN = x822 -- DirName:CN = x823 -- DirName:CN = x824 -- DirName:CN = x825 -- DirName:CN = x826 -- DirName:CN = x827 -- DirName:CN = x828 -- DirName:CN = x829 -- DirName:CN = x830 -- DirName:CN = x831 -- DirName:CN = x832 -- DirName:CN = x833 -- DirName:CN = x834 -- DirName:CN = x835 -- DirName:CN = x836 -- DirName:CN = x837 -- DirName:CN = x838 -- DirName:CN = x839 -- DirName:CN = x840 -- DirName:CN = x841 -- DirName:CN = x842 -- DirName:CN = x843 -- DirName:CN = x844 -- DirName:CN = x845 -- DirName:CN = x846 -- DirName:CN = x847 -- DirName:CN = x848 -- DirName:CN = x849 -- DirName:CN = x850 -- DirName:CN = x851 -- DirName:CN = x852 -- DirName:CN = x853 -- DirName:CN = x854 -- DirName:CN = x855 -- DirName:CN = x856 -- DirName:CN = x857 -- DirName:CN = x858 -- DirName:CN = x859 -- DirName:CN = x860 -- DirName:CN = x861 -- DirName:CN = x862 -- DirName:CN = x863 -- DirName:CN = x864 -- DirName:CN = x865 -- DirName:CN = x866 -- DirName:CN = x867 -- DirName:CN = x868 -- DirName:CN = x869 -- DirName:CN = x870 -- DirName:CN = x871 -- DirName:CN = x872 -- DirName:CN = x873 -- DirName:CN = x874 -- DirName:CN = x875 -- DirName:CN = x876 -- DirName:CN = x877 -- DirName:CN = x878 -- DirName:CN = x879 -- DirName:CN = x880 -- DirName:CN = x881 -- DirName:CN = x882 -- DirName:CN = x883 -- DirName:CN = x884 -- DirName:CN = x885 -- DirName:CN = x886 -- DirName:CN = x887 -- DirName:CN = x888 -- DirName:CN = x889 -- DirName:CN = x890 -- DirName:CN = x891 -- DirName:CN = x892 -- DirName:CN = x893 -- DirName:CN = x894 -- DirName:CN = x895 -- DirName:CN = x896 -- DirName:CN = x897 -- DirName:CN = x898 -- DirName:CN = x899 -- DirName:CN = x900 -- DirName:CN = x901 -- DirName:CN = x902 -- DirName:CN = x903 -- DirName:CN = x904 -- DirName:CN = x905 -- DirName:CN = x906 -- DirName:CN = x907 -- DirName:CN = x908 -- DirName:CN = x909 -- DirName:CN = x910 -- DirName:CN = x911 -- DirName:CN = x912 -- DirName:CN = x913 -- DirName:CN = x914 -- DirName:CN = x915 -- DirName:CN = x916 -- DirName:CN = x917 -- DirName:CN = x918 -- DirName:CN = x919 -- DirName:CN = x920 -- DirName:CN = x921 -- DirName:CN = x922 -- DirName:CN = x923 -- DirName:CN = x924 -- DirName:CN = x925 -- DirName:CN = x926 -- DirName:CN = x927 -- DirName:CN = x928 -- DirName:CN = x929 -- DirName:CN = x930 -- DirName:CN = x931 -- DirName:CN = x932 -- DirName:CN = x933 -- DirName:CN = x934 -- DirName:CN = x935 -- DirName:CN = x936 -- DirName:CN = x937 -- DirName:CN = x938 -- DirName:CN = x939 -- DirName:CN = x940 -- DirName:CN = x941 -- DirName:CN = x942 -- DirName:CN = x943 -- DirName:CN = x944 -- DirName:CN = x945 -- DirName:CN = x946 -- DirName:CN = x947 -- DirName:CN = x948 -- DirName:CN = x949 -- DirName:CN = x950 -- DirName:CN = x951 -- DirName:CN = x952 -- DirName:CN = x953 -- DirName:CN = x954 -- DirName:CN = x955 -- DirName:CN = x956 -- DirName:CN = x957 -- DirName:CN = x958 -- DirName:CN = x959 -- DirName:CN = x960 -- DirName:CN = x961 -- DirName:CN = x962 -- DirName:CN = x963 -- DirName:CN = x964 -- DirName:CN = x965 -- DirName:CN = x966 -- DirName:CN = x967 -- DirName:CN = x968 -- DirName:CN = x969 -- DirName:CN = x970 -- DirName:CN = x971 -- DirName:CN = x972 -- DirName:CN = x973 -- DirName:CN = x974 -- DirName:CN = x975 -- DirName:CN = x976 -- DirName:CN = x977 -- DirName:CN = x978 -- DirName:CN = x979 -- DirName:CN = x980 -- DirName:CN = x981 -- DirName:CN = x982 -- DirName:CN = x983 -- DirName:CN = x984 -- DirName:CN = x985 -- DirName:CN = x986 -- DirName:CN = x987 -- DirName:CN = x988 -- DirName:CN = x989 -- DirName:CN = x990 -- DirName:CN = x991 -- DirName:CN = x992 -- DirName:CN = x993 -- DirName:CN = x994 -- DirName:CN = x995 -- DirName:CN = x996 -- DirName:CN = x997 -- DirName:CN = x998 -- DirName:CN = x999 -- DirName:CN = x1000 -- DirName:CN = x1001 -- DirName:CN = x1002 -- DirName:CN = x1003 -- DirName:CN = x1004 -- DirName:CN = x1005 -- DirName:CN = x1006 -- DirName:CN = x1007 -- DirName:CN = x1008 -- DirName:CN = x1009 -- DirName:CN = x1010 -- DirName:CN = x1011 -- DirName:CN = x1012 -- DirName:CN = x1013 -- DirName:CN = x1014 -- DirName:CN = x1015 -- DirName:CN = x1016 -- DirName:CN = x1017 -- DirName:CN = x1018 -- DirName:CN = x1019 -- DirName:CN = x1020 -- DirName:CN = x1021 -- DirName:CN = x1022 -- DirName:CN = x1023 -- DirName:CN = x1024 -+ DirName: CN = x0 -+ DirName: CN = x1 -+ DirName: CN = x2 -+ DirName: CN = x3 -+ DirName: CN = x4 -+ DirName: CN = x5 -+ DirName: CN = x6 -+ DirName: CN = x7 -+ DirName: CN = x8 -+ DirName: CN = x9 -+ DirName: CN = x10 -+ DirName: CN = x11 -+ DirName: CN = x12 -+ DirName: CN = x13 -+ DirName: CN = x14 -+ DirName: CN = x15 -+ DirName: CN = x16 -+ DirName: CN = x17 -+ DirName: CN = x18 -+ DirName: CN = x19 -+ DirName: CN = x20 -+ DirName: CN = x21 -+ DirName: CN = x22 -+ DirName: CN = x23 -+ DirName: CN = x24 -+ DirName: CN = x25 -+ DirName: CN = x26 -+ DirName: CN = x27 -+ DirName: CN = x28 -+ DirName: CN = x29 -+ DirName: CN = x30 -+ DirName: CN = x31 -+ DirName: CN = x32 -+ DirName: CN = x33 -+ DirName: CN = x34 -+ DirName: CN = x35 -+ DirName: CN = x36 -+ DirName: CN = x37 -+ DirName: CN = x38 -+ DirName: CN = x39 -+ DirName: CN = x40 -+ DirName: CN = x41 -+ DirName: CN = x42 -+ DirName: CN = x43 -+ DirName: CN = x44 -+ DirName: CN = x45 -+ DirName: CN = x46 -+ DirName: CN = x47 -+ DirName: CN = x48 -+ DirName: CN = x49 -+ DirName: CN = x50 -+ DirName: CN = x51 -+ DirName: CN = x52 -+ DirName: CN = x53 -+ DirName: CN = x54 -+ DirName: CN = x55 -+ DirName: CN = x56 -+ DirName: CN = x57 -+ DirName: CN = x58 -+ DirName: CN = x59 -+ DirName: CN = x60 -+ DirName: CN = x61 -+ DirName: CN = x62 -+ DirName: CN = x63 -+ DirName: CN = x64 -+ DirName: CN = x65 -+ DirName: CN = x66 -+ DirName: CN = x67 -+ DirName: CN = x68 -+ DirName: CN = x69 -+ DirName: CN = x70 -+ DirName: CN = x71 -+ DirName: CN = x72 -+ DirName: CN = x73 -+ DirName: CN = x74 -+ DirName: CN = x75 -+ DirName: CN = x76 -+ DirName: CN = x77 -+ DirName: CN = x78 -+ DirName: CN = x79 -+ DirName: CN = x80 -+ DirName: CN = x81 -+ DirName: CN = x82 -+ DirName: CN = x83 -+ DirName: CN = x84 -+ DirName: CN = x85 -+ DirName: CN = x86 -+ DirName: CN = x87 -+ DirName: CN = x88 -+ DirName: CN = x89 -+ DirName: CN = x90 -+ DirName: CN = x91 -+ DirName: CN = x92 -+ DirName: CN = x93 -+ DirName: CN = x94 -+ DirName: CN = x95 -+ DirName: CN = x96 -+ DirName: CN = x97 -+ DirName: CN = x98 -+ DirName: CN = x99 -+ DirName: CN = x100 -+ DirName: CN = x101 -+ DirName: CN = x102 -+ DirName: CN = x103 -+ DirName: CN = x104 -+ DirName: CN = x105 -+ DirName: CN = x106 -+ DirName: CN = x107 -+ DirName: CN = x108 -+ DirName: CN = x109 -+ DirName: CN = x110 -+ DirName: CN = x111 -+ DirName: CN = x112 -+ DirName: CN = x113 -+ DirName: CN = x114 -+ DirName: CN = x115 -+ DirName: CN = x116 -+ DirName: CN = x117 -+ DirName: CN = x118 -+ DirName: CN = x119 -+ DirName: CN = x120 -+ DirName: CN = x121 -+ DirName: CN = x122 -+ DirName: CN = x123 -+ DirName: CN = x124 -+ DirName: CN = x125 -+ DirName: CN = x126 -+ DirName: CN = x127 -+ DirName: CN = x128 -+ DirName: CN = x129 -+ DirName: CN = x130 -+ DirName: CN = x131 -+ DirName: CN = x132 -+ DirName: CN = x133 -+ DirName: CN = x134 -+ DirName: CN = x135 -+ DirName: CN = x136 -+ DirName: CN = x137 -+ DirName: CN = x138 -+ DirName: CN = x139 -+ DirName: CN = x140 -+ DirName: CN = x141 -+ DirName: CN = x142 -+ DirName: CN = x143 -+ DirName: CN = x144 -+ DirName: CN = x145 -+ DirName: CN = x146 -+ DirName: CN = x147 -+ DirName: CN = x148 -+ DirName: CN = x149 -+ DirName: CN = x150 -+ DirName: CN = x151 -+ DirName: CN = x152 -+ DirName: CN = x153 -+ DirName: CN = x154 -+ DirName: CN = x155 -+ DirName: CN = x156 -+ DirName: CN = x157 -+ DirName: CN = x158 -+ DirName: CN = x159 -+ DirName: CN = x160 -+ DirName: CN = x161 -+ DirName: CN = x162 -+ DirName: CN = x163 -+ DirName: CN = x164 -+ DirName: CN = x165 -+ DirName: CN = x166 -+ DirName: CN = x167 -+ DirName: CN = x168 -+ DirName: CN = x169 -+ DirName: CN = x170 -+ DirName: CN = x171 -+ DirName: CN = x172 -+ DirName: CN = x173 -+ DirName: CN = x174 -+ DirName: CN = x175 -+ DirName: CN = x176 -+ DirName: CN = x177 -+ DirName: CN = x178 -+ DirName: CN = x179 -+ DirName: CN = x180 -+ DirName: CN = x181 -+ DirName: CN = x182 -+ DirName: CN = x183 -+ DirName: CN = x184 -+ DirName: CN = x185 -+ DirName: CN = x186 -+ DirName: CN = x187 -+ DirName: CN = x188 -+ DirName: CN = x189 -+ DirName: CN = x190 -+ DirName: CN = x191 -+ DirName: CN = x192 -+ DirName: CN = x193 -+ DirName: CN = x194 -+ DirName: CN = x195 -+ DirName: CN = x196 -+ DirName: CN = x197 -+ DirName: CN = x198 -+ DirName: CN = x199 -+ DirName: CN = x200 -+ DirName: CN = x201 -+ DirName: CN = x202 -+ DirName: CN = x203 -+ DirName: CN = x204 -+ DirName: CN = x205 -+ DirName: CN = x206 -+ DirName: CN = x207 -+ DirName: CN = x208 -+ DirName: CN = x209 -+ DirName: CN = x210 -+ DirName: CN = x211 -+ DirName: CN = x212 -+ DirName: CN = x213 -+ DirName: CN = x214 -+ DirName: CN = x215 -+ DirName: CN = x216 -+ DirName: CN = x217 -+ DirName: CN = x218 -+ DirName: CN = x219 -+ DirName: CN = x220 -+ DirName: CN = x221 -+ DirName: CN = x222 -+ DirName: CN = x223 -+ DirName: CN = x224 -+ DirName: CN = x225 -+ DirName: CN = x226 -+ DirName: CN = x227 -+ DirName: CN = x228 -+ DirName: CN = x229 -+ DirName: CN = x230 -+ DirName: CN = x231 -+ DirName: CN = x232 -+ DirName: CN = x233 -+ DirName: CN = x234 -+ DirName: CN = x235 -+ DirName: CN = x236 -+ DirName: CN = x237 -+ DirName: CN = x238 -+ DirName: CN = x239 -+ DirName: CN = x240 -+ DirName: CN = x241 -+ DirName: CN = x242 -+ DirName: CN = x243 -+ DirName: CN = x244 -+ DirName: CN = x245 -+ DirName: CN = x246 -+ DirName: CN = x247 -+ DirName: CN = x248 -+ DirName: CN = x249 -+ DirName: CN = x250 -+ DirName: CN = x251 -+ DirName: CN = x252 -+ DirName: CN = x253 -+ DirName: CN = x254 -+ DirName: CN = x255 -+ DirName: CN = x256 -+ DirName: CN = x257 -+ DirName: CN = x258 -+ DirName: CN = x259 -+ DirName: CN = x260 -+ DirName: CN = x261 -+ DirName: CN = x262 -+ DirName: CN = x263 -+ DirName: CN = x264 -+ DirName: CN = x265 -+ DirName: CN = x266 -+ DirName: CN = x267 -+ DirName: CN = x268 -+ DirName: CN = x269 -+ DirName: CN = x270 -+ DirName: CN = x271 -+ DirName: CN = x272 -+ DirName: CN = x273 -+ DirName: CN = x274 -+ DirName: CN = x275 -+ DirName: CN = x276 -+ DirName: CN = x277 -+ DirName: CN = x278 -+ DirName: CN = x279 -+ DirName: CN = x280 -+ DirName: CN = x281 -+ DirName: CN = x282 -+ DirName: CN = x283 -+ DirName: CN = x284 -+ DirName: CN = x285 -+ DirName: CN = x286 -+ DirName: CN = x287 -+ DirName: CN = x288 -+ DirName: CN = x289 -+ DirName: CN = x290 -+ DirName: CN = x291 -+ DirName: CN = x292 -+ DirName: CN = x293 -+ DirName: CN = x294 -+ DirName: CN = x295 -+ DirName: CN = x296 -+ DirName: CN = x297 -+ DirName: CN = x298 -+ DirName: CN = x299 -+ DirName: CN = x300 -+ DirName: CN = x301 -+ DirName: CN = x302 -+ DirName: CN = x303 -+ DirName: CN = x304 -+ DirName: CN = x305 -+ DirName: CN = x306 -+ DirName: CN = x307 -+ DirName: CN = x308 -+ DirName: CN = x309 -+ DirName: CN = x310 -+ DirName: CN = x311 -+ DirName: CN = x312 -+ DirName: CN = x313 -+ DirName: CN = x314 -+ DirName: CN = x315 -+ DirName: CN = x316 -+ DirName: CN = x317 -+ DirName: CN = x318 -+ DirName: CN = x319 -+ DirName: CN = x320 -+ DirName: CN = x321 -+ DirName: CN = x322 -+ DirName: CN = x323 -+ DirName: CN = x324 -+ DirName: CN = x325 -+ DirName: CN = x326 -+ DirName: CN = x327 -+ DirName: CN = x328 -+ DirName: CN = x329 -+ DirName: CN = x330 -+ DirName: CN = x331 -+ DirName: CN = x332 -+ DirName: CN = x333 -+ DirName: CN = x334 -+ DirName: CN = x335 -+ DirName: CN = x336 -+ DirName: CN = x337 -+ DirName: CN = x338 -+ DirName: CN = x339 -+ DirName: CN = x340 -+ DirName: CN = x341 -+ DirName: CN = x342 -+ DirName: CN = x343 -+ DirName: CN = x344 -+ DirName: CN = x345 -+ DirName: CN = x346 -+ DirName: CN = x347 -+ DirName: CN = x348 -+ DirName: CN = x349 -+ DirName: CN = x350 -+ DirName: CN = x351 -+ DirName: CN = x352 -+ DirName: CN = x353 -+ DirName: CN = x354 -+ DirName: CN = x355 -+ DirName: CN = x356 -+ DirName: CN = x357 -+ DirName: CN = x358 -+ DirName: CN = x359 -+ DirName: CN = x360 -+ DirName: CN = x361 -+ DirName: CN = x362 -+ DirName: CN = x363 -+ DirName: CN = x364 -+ DirName: CN = x365 -+ DirName: CN = x366 -+ DirName: CN = x367 -+ DirName: CN = x368 -+ DirName: CN = x369 -+ DirName: CN = x370 -+ DirName: CN = x371 -+ DirName: CN = x372 -+ DirName: CN = x373 -+ DirName: CN = x374 -+ DirName: CN = x375 -+ DirName: CN = x376 -+ DirName: CN = x377 -+ DirName: CN = x378 -+ DirName: CN = x379 -+ DirName: CN = x380 -+ DirName: CN = x381 -+ DirName: CN = x382 -+ DirName: CN = x383 -+ DirName: CN = x384 -+ DirName: CN = x385 -+ DirName: CN = x386 -+ DirName: CN = x387 -+ DirName: CN = x388 -+ DirName: CN = x389 -+ DirName: CN = x390 -+ DirName: CN = x391 -+ DirName: CN = x392 -+ DirName: CN = x393 -+ DirName: CN = x394 -+ DirName: CN = x395 -+ DirName: CN = x396 -+ DirName: CN = x397 -+ DirName: CN = x398 -+ DirName: CN = x399 -+ DirName: CN = x400 -+ DirName: CN = x401 -+ DirName: CN = x402 -+ DirName: CN = x403 -+ DirName: CN = x404 -+ DirName: CN = x405 -+ DirName: CN = x406 -+ DirName: CN = x407 -+ DirName: CN = x408 -+ DirName: CN = x409 -+ DirName: CN = x410 -+ DirName: CN = x411 -+ DirName: CN = x412 -+ DirName: CN = x413 -+ DirName: CN = x414 -+ DirName: CN = x415 -+ DirName: CN = x416 -+ DirName: CN = x417 -+ DirName: CN = x418 -+ DirName: CN = x419 -+ DirName: CN = x420 -+ DirName: CN = x421 -+ DirName: CN = x422 -+ DirName: CN = x423 -+ DirName: CN = x424 -+ DirName: CN = x425 -+ DirName: CN = x426 -+ DirName: CN = x427 -+ DirName: CN = x428 -+ DirName: CN = x429 -+ DirName: CN = x430 -+ DirName: CN = x431 -+ DirName: CN = x432 -+ DirName: CN = x433 -+ DirName: CN = x434 -+ DirName: CN = x435 -+ DirName: CN = x436 -+ DirName: CN = x437 -+ DirName: CN = x438 -+ DirName: CN = x439 -+ DirName: CN = x440 -+ DirName: CN = x441 -+ DirName: CN = x442 -+ DirName: CN = x443 -+ DirName: CN = x444 -+ DirName: CN = x445 -+ DirName: CN = x446 -+ DirName: CN = x447 -+ DirName: CN = x448 -+ DirName: CN = x449 -+ DirName: CN = x450 -+ DirName: CN = x451 -+ DirName: CN = x452 -+ DirName: CN = x453 -+ DirName: CN = x454 -+ DirName: CN = x455 -+ DirName: CN = x456 -+ DirName: CN = x457 -+ DirName: CN = x458 -+ DirName: CN = x459 -+ DirName: CN = x460 -+ DirName: CN = x461 -+ DirName: CN = x462 -+ DirName: CN = x463 -+ DirName: CN = x464 -+ DirName: CN = x465 -+ DirName: CN = x466 -+ DirName: CN = x467 -+ DirName: CN = x468 -+ DirName: CN = x469 -+ DirName: CN = x470 -+ DirName: CN = x471 -+ DirName: CN = x472 -+ DirName: CN = x473 -+ DirName: CN = x474 -+ DirName: CN = x475 -+ DirName: CN = x476 -+ DirName: CN = x477 -+ DirName: CN = x478 -+ DirName: CN = x479 -+ DirName: CN = x480 -+ DirName: CN = x481 -+ DirName: CN = x482 -+ DirName: CN = x483 -+ DirName: CN = x484 -+ DirName: CN = x485 -+ DirName: CN = x486 -+ DirName: CN = x487 -+ DirName: CN = x488 -+ DirName: CN = x489 -+ DirName: CN = x490 -+ DirName: CN = x491 -+ DirName: CN = x492 -+ DirName: CN = x493 -+ DirName: CN = x494 -+ DirName: CN = x495 -+ DirName: CN = x496 -+ DirName: CN = x497 -+ DirName: CN = x498 -+ DirName: CN = x499 -+ DirName: CN = x500 -+ DirName: CN = x501 -+ DirName: CN = x502 -+ DirName: CN = x503 -+ DirName: CN = x504 -+ DirName: CN = x505 -+ DirName: CN = x506 -+ DirName: CN = x507 -+ DirName: CN = x508 -+ DirName: CN = x509 -+ DirName: CN = x510 -+ DirName: CN = x511 -+ DirName: CN = x512 -+ DirName: CN = x513 -+ DirName: CN = x514 -+ DirName: CN = x515 -+ DirName: CN = x516 -+ DirName: CN = x517 -+ DirName: CN = x518 -+ DirName: CN = x519 -+ DirName: CN = x520 -+ DirName: CN = x521 -+ DirName: CN = x522 -+ DirName: CN = x523 -+ DirName: CN = x524 -+ DirName: CN = x525 -+ DirName: CN = x526 -+ DirName: CN = x527 -+ DirName: CN = x528 -+ DirName: CN = x529 -+ DirName: CN = x530 -+ DirName: CN = x531 -+ DirName: CN = x532 -+ DirName: CN = x533 -+ DirName: CN = x534 -+ DirName: CN = x535 -+ DirName: CN = x536 -+ DirName: CN = x537 -+ DirName: CN = x538 -+ DirName: CN = x539 -+ DirName: CN = x540 -+ DirName: CN = x541 -+ DirName: CN = x542 -+ DirName: CN = x543 -+ DirName: CN = x544 -+ DirName: CN = x545 -+ DirName: CN = x546 -+ DirName: CN = x547 -+ DirName: CN = x548 -+ DirName: CN = x549 -+ DirName: CN = x550 -+ DirName: CN = x551 -+ DirName: CN = x552 -+ DirName: CN = x553 -+ DirName: CN = x554 -+ DirName: CN = x555 -+ DirName: CN = x556 -+ DirName: CN = x557 -+ DirName: CN = x558 -+ DirName: CN = x559 -+ DirName: CN = x560 -+ DirName: CN = x561 -+ DirName: CN = x562 -+ DirName: CN = x563 -+ DirName: CN = x564 -+ DirName: CN = x565 -+ DirName: CN = x566 -+ DirName: CN = x567 -+ DirName: CN = x568 -+ DirName: CN = x569 -+ DirName: CN = x570 -+ DirName: CN = x571 -+ DirName: CN = x572 -+ DirName: CN = x573 -+ DirName: CN = x574 -+ DirName: CN = x575 -+ DirName: CN = x576 -+ DirName: CN = x577 -+ DirName: CN = x578 -+ DirName: CN = x579 -+ DirName: CN = x580 -+ DirName: CN = x581 -+ DirName: CN = x582 -+ DirName: CN = x583 -+ DirName: CN = x584 -+ DirName: CN = x585 -+ DirName: CN = x586 -+ DirName: CN = x587 -+ DirName: CN = x588 -+ DirName: CN = x589 -+ DirName: CN = x590 -+ DirName: CN = x591 -+ DirName: CN = x592 -+ DirName: CN = x593 -+ DirName: CN = x594 -+ DirName: CN = x595 -+ DirName: CN = x596 -+ DirName: CN = x597 -+ DirName: CN = x598 -+ DirName: CN = x599 -+ DirName: CN = x600 -+ DirName: CN = x601 -+ DirName: CN = x602 -+ DirName: CN = x603 -+ DirName: CN = x604 -+ DirName: CN = x605 -+ DirName: CN = x606 -+ DirName: CN = x607 -+ DirName: CN = x608 -+ DirName: CN = x609 -+ DirName: CN = x610 -+ DirName: CN = x611 -+ DirName: CN = x612 -+ DirName: CN = x613 -+ DirName: CN = x614 -+ DirName: CN = x615 -+ DirName: CN = x616 -+ DirName: CN = x617 -+ DirName: CN = x618 -+ DirName: CN = x619 -+ DirName: CN = x620 -+ DirName: CN = x621 -+ DirName: CN = x622 -+ DirName: CN = x623 -+ DirName: CN = x624 -+ DirName: CN = x625 -+ DirName: CN = x626 -+ DirName: CN = x627 -+ DirName: CN = x628 -+ DirName: CN = x629 -+ DirName: CN = x630 -+ DirName: CN = x631 -+ DirName: CN = x632 -+ DirName: CN = x633 -+ DirName: CN = x634 -+ DirName: CN = x635 -+ DirName: CN = x636 -+ DirName: CN = x637 -+ DirName: CN = x638 -+ DirName: CN = x639 -+ DirName: CN = x640 -+ DirName: CN = x641 -+ DirName: CN = x642 -+ DirName: CN = x643 -+ DirName: CN = x644 -+ DirName: CN = x645 -+ DirName: CN = x646 -+ DirName: CN = x647 -+ DirName: CN = x648 -+ DirName: CN = x649 -+ DirName: CN = x650 -+ DirName: CN = x651 -+ DirName: CN = x652 -+ DirName: CN = x653 -+ DirName: CN = x654 -+ DirName: CN = x655 -+ DirName: CN = x656 -+ DirName: CN = x657 -+ DirName: CN = x658 -+ DirName: CN = x659 -+ DirName: CN = x660 -+ DirName: CN = x661 -+ DirName: CN = x662 -+ DirName: CN = x663 -+ DirName: CN = x664 -+ DirName: CN = x665 -+ DirName: CN = x666 -+ DirName: CN = x667 -+ DirName: CN = x668 -+ DirName: CN = x669 -+ DirName: CN = x670 -+ DirName: CN = x671 -+ DirName: CN = x672 -+ DirName: CN = x673 -+ DirName: CN = x674 -+ DirName: CN = x675 -+ DirName: CN = x676 -+ DirName: CN = x677 -+ DirName: CN = x678 -+ DirName: CN = x679 -+ DirName: CN = x680 -+ DirName: CN = x681 -+ DirName: CN = x682 -+ DirName: CN = x683 -+ DirName: CN = x684 -+ DirName: CN = x685 -+ DirName: CN = x686 -+ DirName: CN = x687 -+ DirName: CN = x688 -+ DirName: CN = x689 -+ DirName: CN = x690 -+ DirName: CN = x691 -+ DirName: CN = x692 -+ DirName: CN = x693 -+ DirName: CN = x694 -+ DirName: CN = x695 -+ DirName: CN = x696 -+ DirName: CN = x697 -+ DirName: CN = x698 -+ DirName: CN = x699 -+ DirName: CN = x700 -+ DirName: CN = x701 -+ DirName: CN = x702 -+ DirName: CN = x703 -+ DirName: CN = x704 -+ DirName: CN = x705 -+ DirName: CN = x706 -+ DirName: CN = x707 -+ DirName: CN = x708 -+ DirName: CN = x709 -+ DirName: CN = x710 -+ DirName: CN = x711 -+ DirName: CN = x712 -+ DirName: CN = x713 -+ DirName: CN = x714 -+ DirName: CN = x715 -+ DirName: CN = x716 -+ DirName: CN = x717 -+ DirName: CN = x718 -+ DirName: CN = x719 -+ DirName: CN = x720 -+ DirName: CN = x721 -+ DirName: CN = x722 -+ DirName: CN = x723 -+ DirName: CN = x724 -+ DirName: CN = x725 -+ DirName: CN = x726 -+ DirName: CN = x727 -+ DirName: CN = x728 -+ DirName: CN = x729 -+ DirName: CN = x730 -+ DirName: CN = x731 -+ DirName: CN = x732 -+ DirName: CN = x733 -+ DirName: CN = x734 -+ DirName: CN = x735 -+ DirName: CN = x736 -+ DirName: CN = x737 -+ DirName: CN = x738 -+ DirName: CN = x739 -+ DirName: CN = x740 -+ DirName: CN = x741 -+ DirName: CN = x742 -+ DirName: CN = x743 -+ DirName: CN = x744 -+ DirName: CN = x745 -+ DirName: CN = x746 -+ DirName: CN = x747 -+ DirName: CN = x748 -+ DirName: CN = x749 -+ DirName: CN = x750 -+ DirName: CN = x751 -+ DirName: CN = x752 -+ DirName: CN = x753 -+ DirName: CN = x754 -+ DirName: CN = x755 -+ DirName: CN = x756 -+ DirName: CN = x757 -+ DirName: CN = x758 -+ DirName: CN = x759 -+ DirName: CN = x760 -+ DirName: CN = x761 -+ DirName: CN = x762 -+ DirName: CN = x763 -+ DirName: CN = x764 -+ DirName: CN = x765 -+ DirName: CN = x766 -+ DirName: CN = x767 -+ DirName: CN = x768 -+ DirName: CN = x769 -+ DirName: CN = x770 -+ DirName: CN = x771 -+ DirName: CN = x772 -+ DirName: CN = x773 -+ DirName: CN = x774 -+ DirName: CN = x775 -+ DirName: CN = x776 -+ DirName: CN = x777 -+ DirName: CN = x778 -+ DirName: CN = x779 -+ DirName: CN = x780 -+ DirName: CN = x781 -+ DirName: CN = x782 -+ DirName: CN = x783 -+ DirName: CN = x784 -+ DirName: CN = x785 -+ DirName: CN = x786 -+ DirName: CN = x787 -+ DirName: CN = x788 -+ DirName: CN = x789 -+ DirName: CN = x790 -+ DirName: CN = x791 -+ DirName: CN = x792 -+ DirName: CN = x793 -+ DirName: CN = x794 -+ DirName: CN = x795 -+ DirName: CN = x796 -+ DirName: CN = x797 -+ DirName: CN = x798 -+ DirName: CN = x799 -+ DirName: CN = x800 -+ DirName: CN = x801 -+ DirName: CN = x802 -+ DirName: CN = x803 -+ DirName: CN = x804 -+ DirName: CN = x805 -+ DirName: CN = x806 -+ DirName: CN = x807 -+ DirName: CN = x808 -+ DirName: CN = x809 -+ DirName: CN = x810 -+ DirName: CN = x811 -+ DirName: CN = x812 -+ DirName: CN = x813 -+ DirName: CN = x814 -+ DirName: CN = x815 -+ DirName: CN = x816 -+ DirName: CN = x817 -+ DirName: CN = x818 -+ DirName: CN = x819 -+ DirName: CN = x820 -+ DirName: CN = x821 -+ DirName: CN = x822 -+ DirName: CN = x823 -+ DirName: CN = x824 -+ DirName: CN = x825 -+ DirName: CN = x826 -+ DirName: CN = x827 -+ DirName: CN = x828 -+ DirName: CN = x829 -+ DirName: CN = x830 -+ DirName: CN = x831 -+ DirName: CN = x832 -+ DirName: CN = x833 -+ DirName: CN = x834 -+ DirName: CN = x835 -+ DirName: CN = x836 -+ DirName: CN = x837 -+ DirName: CN = x838 -+ DirName: CN = x839 -+ DirName: CN = x840 -+ DirName: CN = x841 -+ DirName: CN = x842 -+ DirName: CN = x843 -+ DirName: CN = x844 -+ DirName: CN = x845 -+ DirName: CN = x846 -+ DirName: CN = x847 -+ DirName: CN = x848 -+ DirName: CN = x849 -+ DirName: CN = x850 -+ DirName: CN = x851 -+ DirName: CN = x852 -+ DirName: CN = x853 -+ DirName: CN = x854 -+ DirName: CN = x855 -+ DirName: CN = x856 -+ DirName: CN = x857 -+ DirName: CN = x858 -+ DirName: CN = x859 -+ DirName: CN = x860 -+ DirName: CN = x861 -+ DirName: CN = x862 -+ DirName: CN = x863 -+ DirName: CN = x864 -+ DirName: CN = x865 -+ DirName: CN = x866 -+ DirName: CN = x867 -+ DirName: CN = x868 -+ DirName: CN = x869 -+ DirName: CN = x870 -+ DirName: CN = x871 -+ DirName: CN = x872 -+ DirName: CN = x873 -+ DirName: CN = x874 -+ DirName: CN = x875 -+ DirName: CN = x876 -+ DirName: CN = x877 -+ DirName: CN = x878 -+ DirName: CN = x879 -+ DirName: CN = x880 -+ DirName: CN = x881 -+ DirName: CN = x882 -+ DirName: CN = x883 -+ DirName: CN = x884 -+ DirName: CN = x885 -+ DirName: CN = x886 -+ DirName: CN = x887 -+ DirName: CN = x888 -+ DirName: CN = x889 -+ DirName: CN = x890 -+ DirName: CN = x891 -+ DirName: CN = x892 -+ DirName: CN = x893 -+ DirName: CN = x894 -+ DirName: CN = x895 -+ DirName: CN = x896 -+ DirName: CN = x897 -+ DirName: CN = x898 -+ DirName: CN = x899 -+ DirName: CN = x900 -+ DirName: CN = x901 -+ DirName: CN = x902 -+ DirName: CN = x903 -+ DirName: CN = x904 -+ DirName: CN = x905 -+ DirName: CN = x906 -+ DirName: CN = x907 -+ DirName: CN = x908 -+ DirName: CN = x909 -+ DirName: CN = x910 -+ DirName: CN = x911 -+ DirName: CN = x912 -+ DirName: CN = x913 -+ DirName: CN = x914 -+ DirName: CN = x915 -+ DirName: CN = x916 -+ DirName: CN = x917 -+ DirName: CN = x918 -+ DirName: CN = x919 -+ DirName: CN = x920 -+ DirName: CN = x921 -+ DirName: CN = x922 -+ DirName: CN = x923 -+ DirName: CN = x924 -+ DirName: CN = x925 -+ DirName: CN = x926 -+ DirName: CN = x927 -+ DirName: CN = x928 -+ DirName: CN = x929 -+ DirName: CN = x930 -+ DirName: CN = x931 -+ DirName: CN = x932 -+ DirName: CN = x933 -+ DirName: CN = x934 -+ DirName: CN = x935 -+ DirName: CN = x936 -+ DirName: CN = x937 -+ DirName: CN = x938 -+ DirName: CN = x939 -+ DirName: CN = x940 -+ DirName: CN = x941 -+ DirName: CN = x942 -+ DirName: CN = x943 -+ DirName: CN = x944 -+ DirName: CN = x945 -+ DirName: CN = x946 -+ DirName: CN = x947 -+ DirName: CN = x948 -+ DirName: CN = x949 -+ DirName: CN = x950 -+ DirName: CN = x951 -+ DirName: CN = x952 -+ DirName: CN = x953 -+ DirName: CN = x954 -+ DirName: CN = x955 -+ DirName: CN = x956 -+ DirName: CN = x957 -+ DirName: CN = x958 -+ DirName: CN = x959 -+ DirName: CN = x960 -+ DirName: CN = x961 -+ DirName: CN = x962 -+ DirName: CN = x963 -+ DirName: CN = x964 -+ DirName: CN = x965 -+ DirName: CN = x966 -+ DirName: CN = x967 -+ DirName: CN = x968 -+ DirName: CN = x969 -+ DirName: CN = x970 -+ DirName: CN = x971 -+ DirName: CN = x972 -+ DirName: CN = x973 -+ DirName: CN = x974 -+ DirName: CN = x975 -+ DirName: CN = x976 -+ DirName: CN = x977 -+ DirName: CN = x978 -+ DirName: CN = x979 -+ DirName: CN = x980 -+ DirName: CN = x981 -+ DirName: CN = x982 -+ DirName: CN = x983 -+ DirName: CN = x984 -+ DirName: CN = x985 -+ DirName: CN = x986 -+ DirName: CN = x987 -+ DirName: CN = x988 -+ DirName: CN = x989 -+ DirName: CN = x990 -+ DirName: CN = x991 -+ DirName: CN = x992 -+ DirName: CN = x993 -+ DirName: CN = x994 -+ DirName: CN = x995 -+ DirName: CN = x996 -+ DirName: CN = x997 -+ DirName: CN = x998 -+ DirName: CN = x999 -+ DirName: CN = x1000 -+ DirName: CN = x1001 -+ DirName: CN = x1002 -+ DirName: CN = x1003 -+ DirName: CN = x1004 -+ DirName: CN = x1005 -+ DirName: CN = x1006 -+ DirName: CN = x1007 -+ DirName: CN = x1008 -+ DirName: CN = x1009 -+ DirName: CN = x1010 -+ DirName: CN = x1011 -+ DirName: CN = x1012 -+ DirName: CN = x1013 -+ DirName: CN = x1014 -+ DirName: CN = x1015 -+ DirName: CN = x1016 -+ DirName: CN = x1017 -+ DirName: CN = x1018 -+ DirName: CN = x1019 -+ DirName: CN = x1020 -+ DirName: CN = x1021 -+ DirName: CN = x1022 -+ DirName: CN = x1023 -+ DirName: CN = x1024 - - Signature Algorithm: sha256WithRSAEncryption - 75:8f:ad:5f:a0:8c:a2:05:18:d8:98:a6:c5:1d:7c:b9:11:f4: -@@ -2070,7 +2070,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -diff --git a/net/data/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.pem b/net/data/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.pem -index 44730ad8ea73c..91acca564e7ed 100644 ---- a/net/data/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.pem -+++ b/net/data/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.pem -@@ -1,4 +1,4 @@ --[Created by: generate-chains.py] -+[Created by: ./generate-chains.py] - - A chain containing a large number of permitted directory name - constraints and directory names, above the limit. -@@ -8,7 +8,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:db -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Intermediate - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -505,7 +505,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:fd -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -554,1031 +554,1031 @@ Certificate: - CA:TRUE - X509v3 Name Constraints: - Permitted: -- DirName:CN = t0 -- DirName:CN = t1 -- DirName:CN = t2 -- DirName:CN = t3 -- DirName:CN = t4 -- DirName:CN = t5 -- DirName:CN = t6 -- DirName:CN = t7 -- DirName:CN = t8 -- DirName:CN = t9 -- DirName:CN = t10 -- DirName:CN = t11 -- DirName:CN = t12 -- DirName:CN = t13 -- DirName:CN = t14 -- DirName:CN = t15 -- DirName:CN = t16 -- DirName:CN = t17 -- DirName:CN = t18 -- DirName:CN = t19 -- DirName:CN = t20 -- DirName:CN = t21 -- DirName:CN = t22 -- DirName:CN = t23 -- DirName:CN = t24 -- DirName:CN = t25 -- DirName:CN = t26 -- DirName:CN = t27 -- DirName:CN = t28 -- DirName:CN = t29 -- DirName:CN = t30 -- DirName:CN = t31 -- DirName:CN = t32 -- DirName:CN = t33 -- DirName:CN = t34 -- DirName:CN = t35 -- DirName:CN = t36 -- DirName:CN = t37 -- DirName:CN = t38 -- DirName:CN = t39 -- DirName:CN = t40 -- DirName:CN = t41 -- DirName:CN = t42 -- DirName:CN = t43 -- DirName:CN = t44 -- DirName:CN = t45 -- DirName:CN = t46 -- DirName:CN = t47 -- DirName:CN = t48 -- DirName:CN = t49 -- DirName:CN = t50 -- DirName:CN = t51 -- DirName:CN = t52 -- DirName:CN = t53 -- DirName:CN = t54 -- DirName:CN = t55 -- DirName:CN = t56 -- DirName:CN = t57 -- DirName:CN = t58 -- DirName:CN = t59 -- DirName:CN = t60 -- DirName:CN = t61 -- DirName:CN = t62 -- DirName:CN = t63 -- DirName:CN = t64 -- DirName:CN = t65 -- DirName:CN = t66 -- DirName:CN = t67 -- DirName:CN = t68 -- DirName:CN = t69 -- DirName:CN = t70 -- DirName:CN = t71 -- DirName:CN = t72 -- DirName:CN = t73 -- DirName:CN = t74 -- DirName:CN = t75 -- DirName:CN = t76 -- DirName:CN = t77 -- DirName:CN = t78 -- DirName:CN = t79 -- DirName:CN = t80 -- DirName:CN = t81 -- DirName:CN = t82 -- DirName:CN = t83 -- DirName:CN = t84 -- DirName:CN = t85 -- DirName:CN = t86 -- DirName:CN = t87 -- DirName:CN = t88 -- DirName:CN = t89 -- DirName:CN = t90 -- DirName:CN = t91 -- DirName:CN = t92 -- DirName:CN = t93 -- DirName:CN = t94 -- DirName:CN = t95 -- DirName:CN = t96 -- DirName:CN = t97 -- DirName:CN = t98 -- DirName:CN = t99 -- DirName:CN = t100 -- DirName:CN = t101 -- DirName:CN = t102 -- DirName:CN = t103 -- DirName:CN = t104 -- DirName:CN = t105 -- DirName:CN = t106 -- DirName:CN = t107 -- DirName:CN = t108 -- DirName:CN = t109 -- DirName:CN = t110 -- DirName:CN = t111 -- DirName:CN = t112 -- DirName:CN = t113 -- DirName:CN = t114 -- DirName:CN = t115 -- DirName:CN = t116 -- DirName:CN = t117 -- DirName:CN = t118 -- DirName:CN = t119 -- DirName:CN = t120 -- DirName:CN = t121 -- DirName:CN = t122 -- DirName:CN = t123 -- DirName:CN = t124 -- DirName:CN = t125 -- DirName:CN = t126 -- DirName:CN = t127 -- DirName:CN = t128 -- DirName:CN = t129 -- DirName:CN = t130 -- DirName:CN = t131 -- DirName:CN = t132 -- DirName:CN = t133 -- DirName:CN = t134 -- DirName:CN = t135 -- DirName:CN = t136 -- DirName:CN = t137 -- DirName:CN = t138 -- DirName:CN = t139 -- DirName:CN = t140 -- DirName:CN = t141 -- DirName:CN = t142 -- DirName:CN = t143 -- DirName:CN = t144 -- DirName:CN = t145 -- DirName:CN = t146 -- DirName:CN = t147 -- DirName:CN = t148 -- DirName:CN = t149 -- DirName:CN = t150 -- DirName:CN = t151 -- DirName:CN = t152 -- DirName:CN = t153 -- DirName:CN = t154 -- DirName:CN = t155 -- DirName:CN = t156 -- DirName:CN = t157 -- DirName:CN = t158 -- DirName:CN = t159 -- DirName:CN = t160 -- DirName:CN = t161 -- DirName:CN = t162 -- DirName:CN = t163 -- DirName:CN = t164 -- DirName:CN = t165 -- DirName:CN = t166 -- DirName:CN = t167 -- DirName:CN = t168 -- DirName:CN = t169 -- DirName:CN = t170 -- DirName:CN = t171 -- DirName:CN = t172 -- DirName:CN = t173 -- DirName:CN = t174 -- DirName:CN = t175 -- DirName:CN = t176 -- DirName:CN = t177 -- DirName:CN = t178 -- DirName:CN = t179 -- DirName:CN = t180 -- DirName:CN = t181 -- DirName:CN = t182 -- DirName:CN = t183 -- DirName:CN = t184 -- DirName:CN = t185 -- DirName:CN = t186 -- DirName:CN = t187 -- DirName:CN = t188 -- DirName:CN = t189 -- DirName:CN = t190 -- DirName:CN = t191 -- DirName:CN = t192 -- DirName:CN = t193 -- DirName:CN = t194 -- DirName:CN = t195 -- DirName:CN = t196 -- DirName:CN = t197 -- DirName:CN = t198 -- DirName:CN = t199 -- DirName:CN = t200 -- DirName:CN = t201 -- DirName:CN = t202 -- DirName:CN = t203 -- DirName:CN = t204 -- DirName:CN = t205 -- DirName:CN = t206 -- DirName:CN = t207 -- DirName:CN = t208 -- DirName:CN = t209 -- DirName:CN = t210 -- DirName:CN = t211 -- DirName:CN = t212 -- DirName:CN = t213 -- DirName:CN = t214 -- DirName:CN = t215 -- DirName:CN = t216 -- DirName:CN = t217 -- DirName:CN = t218 -- DirName:CN = t219 -- DirName:CN = t220 -- DirName:CN = t221 -- DirName:CN = t222 -- DirName:CN = t223 -- DirName:CN = t224 -- DirName:CN = t225 -- DirName:CN = t226 -- DirName:CN = t227 -- DirName:CN = t228 -- DirName:CN = t229 -- DirName:CN = t230 -- DirName:CN = t231 -- DirName:CN = t232 -- DirName:CN = t233 -- DirName:CN = t234 -- DirName:CN = t235 -- DirName:CN = t236 -- DirName:CN = t237 -- DirName:CN = t238 -- DirName:CN = t239 -- DirName:CN = t240 -- DirName:CN = t241 -- DirName:CN = t242 -- DirName:CN = t243 -- DirName:CN = t244 -- DirName:CN = t245 -- DirName:CN = t246 -- DirName:CN = t247 -- DirName:CN = t248 -- DirName:CN = t249 -- DirName:CN = t250 -- DirName:CN = t251 -- DirName:CN = t252 -- DirName:CN = t253 -- DirName:CN = t254 -- DirName:CN = t255 -- DirName:CN = t256 -- DirName:CN = t257 -- DirName:CN = t258 -- DirName:CN = t259 -- DirName:CN = t260 -- DirName:CN = t261 -- DirName:CN = t262 -- DirName:CN = t263 -- DirName:CN = t264 -- DirName:CN = t265 -- DirName:CN = t266 -- DirName:CN = t267 -- DirName:CN = t268 -- DirName:CN = t269 -- DirName:CN = t270 -- DirName:CN = t271 -- DirName:CN = t272 -- DirName:CN = t273 -- DirName:CN = t274 -- DirName:CN = t275 -- DirName:CN = t276 -- DirName:CN = t277 -- DirName:CN = t278 -- DirName:CN = t279 -- DirName:CN = t280 -- DirName:CN = t281 -- DirName:CN = t282 -- DirName:CN = t283 -- DirName:CN = t284 -- DirName:CN = t285 -- DirName:CN = t286 -- DirName:CN = t287 -- DirName:CN = t288 -- DirName:CN = t289 -- DirName:CN = t290 -- DirName:CN = t291 -- DirName:CN = t292 -- DirName:CN = t293 -- DirName:CN = t294 -- DirName:CN = t295 -- DirName:CN = t296 -- DirName:CN = t297 -- DirName:CN = t298 -- DirName:CN = t299 -- DirName:CN = t300 -- DirName:CN = t301 -- DirName:CN = t302 -- DirName:CN = t303 -- DirName:CN = t304 -- DirName:CN = t305 -- DirName:CN = t306 -- DirName:CN = t307 -- DirName:CN = t308 -- DirName:CN = t309 -- DirName:CN = t310 -- DirName:CN = t311 -- DirName:CN = t312 -- DirName:CN = t313 -- DirName:CN = t314 -- DirName:CN = t315 -- DirName:CN = t316 -- DirName:CN = t317 -- DirName:CN = t318 -- DirName:CN = t319 -- DirName:CN = t320 -- DirName:CN = t321 -- DirName:CN = t322 -- DirName:CN = t323 -- DirName:CN = t324 -- DirName:CN = t325 -- DirName:CN = t326 -- DirName:CN = t327 -- DirName:CN = t328 -- DirName:CN = t329 -- DirName:CN = t330 -- DirName:CN = t331 -- DirName:CN = t332 -- DirName:CN = t333 -- DirName:CN = t334 -- DirName:CN = t335 -- DirName:CN = t336 -- DirName:CN = t337 -- DirName:CN = t338 -- DirName:CN = t339 -- DirName:CN = t340 -- DirName:CN = t341 -- DirName:CN = t342 -- DirName:CN = t343 -- DirName:CN = t344 -- DirName:CN = t345 -- DirName:CN = t346 -- DirName:CN = t347 -- DirName:CN = t348 -- DirName:CN = t349 -- DirName:CN = t350 -- DirName:CN = t351 -- DirName:CN = t352 -- DirName:CN = t353 -- DirName:CN = t354 -- DirName:CN = t355 -- DirName:CN = t356 -- DirName:CN = t357 -- DirName:CN = t358 -- DirName:CN = t359 -- DirName:CN = t360 -- DirName:CN = t361 -- DirName:CN = t362 -- DirName:CN = t363 -- DirName:CN = t364 -- DirName:CN = t365 -- DirName:CN = t366 -- DirName:CN = t367 -- DirName:CN = t368 -- DirName:CN = t369 -- DirName:CN = t370 -- DirName:CN = t371 -- DirName:CN = t372 -- DirName:CN = t373 -- DirName:CN = t374 -- DirName:CN = t375 -- DirName:CN = t376 -- DirName:CN = t377 -- DirName:CN = t378 -- DirName:CN = t379 -- DirName:CN = t380 -- DirName:CN = t381 -- DirName:CN = t382 -- DirName:CN = t383 -- DirName:CN = t384 -- DirName:CN = t385 -- DirName:CN = t386 -- DirName:CN = t387 -- DirName:CN = t388 -- DirName:CN = t389 -- DirName:CN = t390 -- DirName:CN = t391 -- DirName:CN = t392 -- DirName:CN = t393 -- DirName:CN = t394 -- DirName:CN = t395 -- DirName:CN = t396 -- DirName:CN = t397 -- DirName:CN = t398 -- DirName:CN = t399 -- DirName:CN = t400 -- DirName:CN = t401 -- DirName:CN = t402 -- DirName:CN = t403 -- DirName:CN = t404 -- DirName:CN = t405 -- DirName:CN = t406 -- DirName:CN = t407 -- DirName:CN = t408 -- DirName:CN = t409 -- DirName:CN = t410 -- DirName:CN = t411 -- DirName:CN = t412 -- DirName:CN = t413 -- DirName:CN = t414 -- DirName:CN = t415 -- DirName:CN = t416 -- DirName:CN = t417 -- DirName:CN = t418 -- DirName:CN = t419 -- DirName:CN = t420 -- DirName:CN = t421 -- DirName:CN = t422 -- DirName:CN = t423 -- DirName:CN = t424 -- DirName:CN = t425 -- DirName:CN = t426 -- DirName:CN = t427 -- DirName:CN = t428 -- DirName:CN = t429 -- DirName:CN = t430 -- DirName:CN = t431 -- DirName:CN = t432 -- DirName:CN = t433 -- DirName:CN = t434 -- DirName:CN = t435 -- DirName:CN = t436 -- DirName:CN = t437 -- DirName:CN = t438 -- DirName:CN = t439 -- DirName:CN = t440 -- DirName:CN = t441 -- DirName:CN = t442 -- DirName:CN = t443 -- DirName:CN = t444 -- DirName:CN = t445 -- DirName:CN = t446 -- DirName:CN = t447 -- DirName:CN = t448 -- DirName:CN = t449 -- DirName:CN = t450 -- DirName:CN = t451 -- DirName:CN = t452 -- DirName:CN = t453 -- DirName:CN = t454 -- DirName:CN = t455 -- DirName:CN = t456 -- DirName:CN = t457 -- DirName:CN = t458 -- DirName:CN = t459 -- DirName:CN = t460 -- DirName:CN = t461 -- DirName:CN = t462 -- DirName:CN = t463 -- DirName:CN = t464 -- DirName:CN = t465 -- DirName:CN = t466 -- DirName:CN = t467 -- DirName:CN = t468 -- DirName:CN = t469 -- DirName:CN = t470 -- DirName:CN = t471 -- DirName:CN = t472 -- DirName:CN = t473 -- DirName:CN = t474 -- DirName:CN = t475 -- DirName:CN = t476 -- DirName:CN = t477 -- DirName:CN = t478 -- DirName:CN = t479 -- DirName:CN = t480 -- DirName:CN = t481 -- DirName:CN = t482 -- DirName:CN = t483 -- DirName:CN = t484 -- DirName:CN = t485 -- DirName:CN = t486 -- DirName:CN = t487 -- DirName:CN = t488 -- DirName:CN = t489 -- DirName:CN = t490 -- DirName:CN = t491 -- DirName:CN = t492 -- DirName:CN = t493 -- DirName:CN = t494 -- DirName:CN = t495 -- DirName:CN = t496 -- DirName:CN = t497 -- DirName:CN = t498 -- DirName:CN = t499 -- DirName:CN = t500 -- DirName:CN = t501 -- DirName:CN = t502 -- DirName:CN = t503 -- DirName:CN = t504 -- DirName:CN = t505 -- DirName:CN = t506 -- DirName:CN = t507 -- DirName:CN = t508 -- DirName:CN = t509 -- DirName:CN = t510 -- DirName:CN = t511 -- DirName:CN = t512 -- DirName:CN = t513 -- DirName:CN = t514 -- DirName:CN = t515 -- DirName:CN = t516 -- DirName:CN = t517 -- DirName:CN = t518 -- DirName:CN = t519 -- DirName:CN = t520 -- DirName:CN = t521 -- DirName:CN = t522 -- DirName:CN = t523 -- DirName:CN = t524 -- DirName:CN = t525 -- DirName:CN = t526 -- DirName:CN = t527 -- DirName:CN = t528 -- DirName:CN = t529 -- DirName:CN = t530 -- DirName:CN = t531 -- DirName:CN = t532 -- DirName:CN = t533 -- DirName:CN = t534 -- DirName:CN = t535 -- DirName:CN = t536 -- DirName:CN = t537 -- DirName:CN = t538 -- DirName:CN = t539 -- DirName:CN = t540 -- DirName:CN = t541 -- DirName:CN = t542 -- DirName:CN = t543 -- DirName:CN = t544 -- DirName:CN = t545 -- DirName:CN = t546 -- DirName:CN = t547 -- DirName:CN = t548 -- DirName:CN = t549 -- DirName:CN = t550 -- DirName:CN = t551 -- DirName:CN = t552 -- DirName:CN = t553 -- DirName:CN = t554 -- DirName:CN = t555 -- DirName:CN = t556 -- DirName:CN = t557 -- DirName:CN = t558 -- DirName:CN = t559 -- DirName:CN = t560 -- DirName:CN = t561 -- DirName:CN = t562 -- DirName:CN = t563 -- DirName:CN = t564 -- DirName:CN = t565 -- DirName:CN = t566 -- DirName:CN = t567 -- DirName:CN = t568 -- DirName:CN = t569 -- DirName:CN = t570 -- DirName:CN = t571 -- DirName:CN = t572 -- DirName:CN = t573 -- DirName:CN = t574 -- DirName:CN = t575 -- DirName:CN = t576 -- DirName:CN = t577 -- DirName:CN = t578 -- DirName:CN = t579 -- DirName:CN = t580 -- DirName:CN = t581 -- DirName:CN = t582 -- DirName:CN = t583 -- DirName:CN = t584 -- DirName:CN = t585 -- DirName:CN = t586 -- DirName:CN = t587 -- DirName:CN = t588 -- DirName:CN = t589 -- DirName:CN = t590 -- DirName:CN = t591 -- DirName:CN = t592 -- DirName:CN = t593 -- DirName:CN = t594 -- DirName:CN = t595 -- DirName:CN = t596 -- DirName:CN = t597 -- DirName:CN = t598 -- DirName:CN = t599 -- DirName:CN = t600 -- DirName:CN = t601 -- DirName:CN = t602 -- DirName:CN = t603 -- DirName:CN = t604 -- DirName:CN = t605 -- DirName:CN = t606 -- DirName:CN = t607 -- DirName:CN = t608 -- DirName:CN = t609 -- DirName:CN = t610 -- DirName:CN = t611 -- DirName:CN = t612 -- DirName:CN = t613 -- DirName:CN = t614 -- DirName:CN = t615 -- DirName:CN = t616 -- DirName:CN = t617 -- DirName:CN = t618 -- DirName:CN = t619 -- DirName:CN = t620 -- DirName:CN = t621 -- DirName:CN = t622 -- DirName:CN = t623 -- DirName:CN = t624 -- DirName:CN = t625 -- DirName:CN = t626 -- DirName:CN = t627 -- DirName:CN = t628 -- DirName:CN = t629 -- DirName:CN = t630 -- DirName:CN = t631 -- DirName:CN = t632 -- DirName:CN = t633 -- DirName:CN = t634 -- DirName:CN = t635 -- DirName:CN = t636 -- DirName:CN = t637 -- DirName:CN = t638 -- DirName:CN = t639 -- DirName:CN = t640 -- DirName:CN = t641 -- DirName:CN = t642 -- DirName:CN = t643 -- DirName:CN = t644 -- DirName:CN = t645 -- DirName:CN = t646 -- DirName:CN = t647 -- DirName:CN = t648 -- DirName:CN = t649 -- DirName:CN = t650 -- DirName:CN = t651 -- DirName:CN = t652 -- DirName:CN = t653 -- DirName:CN = t654 -- DirName:CN = t655 -- DirName:CN = t656 -- DirName:CN = t657 -- DirName:CN = t658 -- DirName:CN = t659 -- DirName:CN = t660 -- DirName:CN = t661 -- DirName:CN = t662 -- DirName:CN = t663 -- DirName:CN = t664 -- DirName:CN = t665 -- DirName:CN = t666 -- DirName:CN = t667 -- DirName:CN = t668 -- DirName:CN = t669 -- DirName:CN = t670 -- DirName:CN = t671 -- DirName:CN = t672 -- DirName:CN = t673 -- DirName:CN = t674 -- DirName:CN = t675 -- DirName:CN = t676 -- DirName:CN = t677 -- DirName:CN = t678 -- DirName:CN = t679 -- DirName:CN = t680 -- DirName:CN = t681 -- DirName:CN = t682 -- DirName:CN = t683 -- DirName:CN = t684 -- DirName:CN = t685 -- DirName:CN = t686 -- DirName:CN = t687 -- DirName:CN = t688 -- DirName:CN = t689 -- DirName:CN = t690 -- DirName:CN = t691 -- DirName:CN = t692 -- DirName:CN = t693 -- DirName:CN = t694 -- DirName:CN = t695 -- DirName:CN = t696 -- DirName:CN = t697 -- DirName:CN = t698 -- DirName:CN = t699 -- DirName:CN = t700 -- DirName:CN = t701 -- DirName:CN = t702 -- DirName:CN = t703 -- DirName:CN = t704 -- DirName:CN = t705 -- DirName:CN = t706 -- DirName:CN = t707 -- DirName:CN = t708 -- DirName:CN = t709 -- DirName:CN = t710 -- DirName:CN = t711 -- DirName:CN = t712 -- DirName:CN = t713 -- DirName:CN = t714 -- DirName:CN = t715 -- DirName:CN = t716 -- DirName:CN = t717 -- DirName:CN = t718 -- DirName:CN = t719 -- DirName:CN = t720 -- DirName:CN = t721 -- DirName:CN = t722 -- DirName:CN = t723 -- DirName:CN = t724 -- DirName:CN = t725 -- DirName:CN = t726 -- DirName:CN = t727 -- DirName:CN = t728 -- DirName:CN = t729 -- DirName:CN = t730 -- DirName:CN = t731 -- DirName:CN = t732 -- DirName:CN = t733 -- DirName:CN = t734 -- DirName:CN = t735 -- DirName:CN = t736 -- DirName:CN = t737 -- DirName:CN = t738 -- DirName:CN = t739 -- DirName:CN = t740 -- DirName:CN = t741 -- DirName:CN = t742 -- DirName:CN = t743 -- DirName:CN = t744 -- DirName:CN = t745 -- DirName:CN = t746 -- DirName:CN = t747 -- DirName:CN = t748 -- DirName:CN = t749 -- DirName:CN = t750 -- DirName:CN = t751 -- DirName:CN = t752 -- DirName:CN = t753 -- DirName:CN = t754 -- DirName:CN = t755 -- DirName:CN = t756 -- DirName:CN = t757 -- DirName:CN = t758 -- DirName:CN = t759 -- DirName:CN = t760 -- DirName:CN = t761 -- DirName:CN = t762 -- DirName:CN = t763 -- DirName:CN = t764 -- DirName:CN = t765 -- DirName:CN = t766 -- DirName:CN = t767 -- DirName:CN = t768 -- DirName:CN = t769 -- DirName:CN = t770 -- DirName:CN = t771 -- DirName:CN = t772 -- DirName:CN = t773 -- DirName:CN = t774 -- DirName:CN = t775 -- DirName:CN = t776 -- DirName:CN = t777 -- DirName:CN = t778 -- DirName:CN = t779 -- DirName:CN = t780 -- DirName:CN = t781 -- DirName:CN = t782 -- DirName:CN = t783 -- DirName:CN = t784 -- DirName:CN = t785 -- DirName:CN = t786 -- DirName:CN = t787 -- DirName:CN = t788 -- DirName:CN = t789 -- DirName:CN = t790 -- DirName:CN = t791 -- DirName:CN = t792 -- DirName:CN = t793 -- DirName:CN = t794 -- DirName:CN = t795 -- DirName:CN = t796 -- DirName:CN = t797 -- DirName:CN = t798 -- DirName:CN = t799 -- DirName:CN = t800 -- DirName:CN = t801 -- DirName:CN = t802 -- DirName:CN = t803 -- DirName:CN = t804 -- DirName:CN = t805 -- DirName:CN = t806 -- DirName:CN = t807 -- DirName:CN = t808 -- DirName:CN = t809 -- DirName:CN = t810 -- DirName:CN = t811 -- DirName:CN = t812 -- DirName:CN = t813 -- DirName:CN = t814 -- DirName:CN = t815 -- DirName:CN = t816 -- DirName:CN = t817 -- DirName:CN = t818 -- DirName:CN = t819 -- DirName:CN = t820 -- DirName:CN = t821 -- DirName:CN = t822 -- DirName:CN = t823 -- DirName:CN = t824 -- DirName:CN = t825 -- DirName:CN = t826 -- DirName:CN = t827 -- DirName:CN = t828 -- DirName:CN = t829 -- DirName:CN = t830 -- DirName:CN = t831 -- DirName:CN = t832 -- DirName:CN = t833 -- DirName:CN = t834 -- DirName:CN = t835 -- DirName:CN = t836 -- DirName:CN = t837 -- DirName:CN = t838 -- DirName:CN = t839 -- DirName:CN = t840 -- DirName:CN = t841 -- DirName:CN = t842 -- DirName:CN = t843 -- DirName:CN = t844 -- DirName:CN = t845 -- DirName:CN = t846 -- DirName:CN = t847 -- DirName:CN = t848 -- DirName:CN = t849 -- DirName:CN = t850 -- DirName:CN = t851 -- DirName:CN = t852 -- DirName:CN = t853 -- DirName:CN = t854 -- DirName:CN = t855 -- DirName:CN = t856 -- DirName:CN = t857 -- DirName:CN = t858 -- DirName:CN = t859 -- DirName:CN = t860 -- DirName:CN = t861 -- DirName:CN = t862 -- DirName:CN = t863 -- DirName:CN = t864 -- DirName:CN = t865 -- DirName:CN = t866 -- DirName:CN = t867 -- DirName:CN = t868 -- DirName:CN = t869 -- DirName:CN = t870 -- DirName:CN = t871 -- DirName:CN = t872 -- DirName:CN = t873 -- DirName:CN = t874 -- DirName:CN = t875 -- DirName:CN = t876 -- DirName:CN = t877 -- DirName:CN = t878 -- DirName:CN = t879 -- DirName:CN = t880 -- DirName:CN = t881 -- DirName:CN = t882 -- DirName:CN = t883 -- DirName:CN = t884 -- DirName:CN = t885 -- DirName:CN = t886 -- DirName:CN = t887 -- DirName:CN = t888 -- DirName:CN = t889 -- DirName:CN = t890 -- DirName:CN = t891 -- DirName:CN = t892 -- DirName:CN = t893 -- DirName:CN = t894 -- DirName:CN = t895 -- DirName:CN = t896 -- DirName:CN = t897 -- DirName:CN = t898 -- DirName:CN = t899 -- DirName:CN = t900 -- DirName:CN = t901 -- DirName:CN = t902 -- DirName:CN = t903 -- DirName:CN = t904 -- DirName:CN = t905 -- DirName:CN = t906 -- DirName:CN = t907 -- DirName:CN = t908 -- DirName:CN = t909 -- DirName:CN = t910 -- DirName:CN = t911 -- DirName:CN = t912 -- DirName:CN = t913 -- DirName:CN = t914 -- DirName:CN = t915 -- DirName:CN = t916 -- DirName:CN = t917 -- DirName:CN = t918 -- DirName:CN = t919 -- DirName:CN = t920 -- DirName:CN = t921 -- DirName:CN = t922 -- DirName:CN = t923 -- DirName:CN = t924 -- DirName:CN = t925 -- DirName:CN = t926 -- DirName:CN = t927 -- DirName:CN = t928 -- DirName:CN = t929 -- DirName:CN = t930 -- DirName:CN = t931 -- DirName:CN = t932 -- DirName:CN = t933 -- DirName:CN = t934 -- DirName:CN = t935 -- DirName:CN = t936 -- DirName:CN = t937 -- DirName:CN = t938 -- DirName:CN = t939 -- DirName:CN = t940 -- DirName:CN = t941 -- DirName:CN = t942 -- DirName:CN = t943 -- DirName:CN = t944 -- DirName:CN = t945 -- DirName:CN = t946 -- DirName:CN = t947 -- DirName:CN = t948 -- DirName:CN = t949 -- DirName:CN = t950 -- DirName:CN = t951 -- DirName:CN = t952 -- DirName:CN = t953 -- DirName:CN = t954 -- DirName:CN = t955 -- DirName:CN = t956 -- DirName:CN = t957 -- DirName:CN = t958 -- DirName:CN = t959 -- DirName:CN = t960 -- DirName:CN = t961 -- DirName:CN = t962 -- DirName:CN = t963 -- DirName:CN = t964 -- DirName:CN = t965 -- DirName:CN = t966 -- DirName:CN = t967 -- DirName:CN = t968 -- DirName:CN = t969 -- DirName:CN = t970 -- DirName:CN = t971 -- DirName:CN = t972 -- DirName:CN = t973 -- DirName:CN = t974 -- DirName:CN = t975 -- DirName:CN = t976 -- DirName:CN = t977 -- DirName:CN = t978 -- DirName:CN = t979 -- DirName:CN = t980 -- DirName:CN = t981 -- DirName:CN = t982 -- DirName:CN = t983 -- DirName:CN = t984 -- DirName:CN = t985 -- DirName:CN = t986 -- DirName:CN = t987 -- DirName:CN = t988 -- DirName:CN = t989 -- DirName:CN = t990 -- DirName:CN = t991 -- DirName:CN = t992 -- DirName:CN = t993 -- DirName:CN = t994 -- DirName:CN = t995 -- DirName:CN = t996 -- DirName:CN = t997 -- DirName:CN = t998 -- DirName:CN = t999 -- DirName:CN = t1000 -- DirName:CN = t1001 -- DirName:CN = t1002 -- DirName:CN = t1003 -- DirName:CN = t1004 -- DirName:CN = t1005 -- DirName:CN = t1006 -- DirName:CN = t1007 -- DirName:CN = t1008 -- DirName:CN = t1009 -- DirName:CN = t1010 -- DirName:CN = t1011 -- DirName:CN = t1012 -- DirName:CN = t1013 -- DirName:CN = t1014 -- DirName:CN = t1015 -- DirName:CN = t1016 -- DirName:CN = t1017 -- DirName:CN = t1018 -- DirName:CN = t1019 -- DirName:CN = t1020 -- DirName:CN = t1021 -- DirName:CN = t1022 -- DirName:CN = t1023 -- DirName:CN = t1024 -+ DirName: CN = t0 -+ DirName: CN = t1 -+ DirName: CN = t2 -+ DirName: CN = t3 -+ DirName: CN = t4 -+ DirName: CN = t5 -+ DirName: CN = t6 -+ DirName: CN = t7 -+ DirName: CN = t8 -+ DirName: CN = t9 -+ DirName: CN = t10 -+ DirName: CN = t11 -+ DirName: CN = t12 -+ DirName: CN = t13 -+ DirName: CN = t14 -+ DirName: CN = t15 -+ DirName: CN = t16 -+ DirName: CN = t17 -+ DirName: CN = t18 -+ DirName: CN = t19 -+ DirName: CN = t20 -+ DirName: CN = t21 -+ DirName: CN = t22 -+ DirName: CN = t23 -+ DirName: CN = t24 -+ DirName: CN = t25 -+ DirName: CN = t26 -+ DirName: CN = t27 -+ DirName: CN = t28 -+ DirName: CN = t29 -+ DirName: CN = t30 -+ DirName: CN = t31 -+ DirName: CN = t32 -+ DirName: CN = t33 -+ DirName: CN = t34 -+ DirName: CN = t35 -+ DirName: CN = t36 -+ DirName: CN = t37 -+ DirName: CN = t38 -+ DirName: CN = t39 -+ DirName: CN = t40 -+ DirName: CN = t41 -+ DirName: CN = t42 -+ DirName: CN = t43 -+ DirName: CN = t44 -+ DirName: CN = t45 -+ DirName: CN = t46 -+ DirName: CN = t47 -+ DirName: CN = t48 -+ DirName: CN = t49 -+ DirName: CN = t50 -+ DirName: CN = t51 -+ DirName: CN = t52 -+ DirName: CN = t53 -+ DirName: CN = t54 -+ DirName: CN = t55 -+ DirName: CN = t56 -+ DirName: CN = t57 -+ DirName: CN = t58 -+ DirName: CN = t59 -+ DirName: CN = t60 -+ DirName: CN = t61 -+ DirName: CN = t62 -+ DirName: CN = t63 -+ DirName: CN = t64 -+ DirName: CN = t65 -+ DirName: CN = t66 -+ DirName: CN = t67 -+ DirName: CN = t68 -+ DirName: CN = t69 -+ DirName: CN = t70 -+ DirName: CN = t71 -+ DirName: CN = t72 -+ DirName: CN = t73 -+ DirName: CN = t74 -+ DirName: CN = t75 -+ DirName: CN = t76 -+ DirName: CN = t77 -+ DirName: CN = t78 -+ DirName: CN = t79 -+ DirName: CN = t80 -+ DirName: CN = t81 -+ DirName: CN = t82 -+ DirName: CN = t83 -+ DirName: CN = t84 -+ DirName: CN = t85 -+ DirName: CN = t86 -+ DirName: CN = t87 -+ DirName: CN = t88 -+ DirName: CN = t89 -+ DirName: CN = t90 -+ DirName: CN = t91 -+ DirName: CN = t92 -+ DirName: CN = t93 -+ DirName: CN = t94 -+ DirName: CN = t95 -+ DirName: CN = t96 -+ DirName: CN = t97 -+ DirName: CN = t98 -+ DirName: CN = t99 -+ DirName: CN = t100 -+ DirName: CN = t101 -+ DirName: CN = t102 -+ DirName: CN = t103 -+ DirName: CN = t104 -+ DirName: CN = t105 -+ DirName: CN = t106 -+ DirName: CN = t107 -+ DirName: CN = t108 -+ DirName: CN = t109 -+ DirName: CN = t110 -+ DirName: CN = t111 -+ DirName: CN = t112 -+ DirName: CN = t113 -+ DirName: CN = t114 -+ DirName: CN = t115 -+ DirName: CN = t116 -+ DirName: CN = t117 -+ DirName: CN = t118 -+ DirName: CN = t119 -+ DirName: CN = t120 -+ DirName: CN = t121 -+ DirName: CN = t122 -+ DirName: CN = t123 -+ DirName: CN = t124 -+ DirName: CN = t125 -+ DirName: CN = t126 -+ DirName: CN = t127 -+ DirName: CN = t128 -+ DirName: CN = t129 -+ DirName: CN = t130 -+ DirName: CN = t131 -+ DirName: CN = t132 -+ DirName: CN = t133 -+ DirName: CN = t134 -+ DirName: CN = t135 -+ DirName: CN = t136 -+ DirName: CN = t137 -+ DirName: CN = t138 -+ DirName: CN = t139 -+ DirName: CN = t140 -+ DirName: CN = t141 -+ DirName: CN = t142 -+ DirName: CN = t143 -+ DirName: CN = t144 -+ DirName: CN = t145 -+ DirName: CN = t146 -+ DirName: CN = t147 -+ DirName: CN = t148 -+ DirName: CN = t149 -+ DirName: CN = t150 -+ DirName: CN = t151 -+ DirName: CN = t152 -+ DirName: CN = t153 -+ DirName: CN = t154 -+ DirName: CN = t155 -+ DirName: CN = t156 -+ DirName: CN = t157 -+ DirName: CN = t158 -+ DirName: CN = t159 -+ DirName: CN = t160 -+ DirName: CN = t161 -+ DirName: CN = t162 -+ DirName: CN = t163 -+ DirName: CN = t164 -+ DirName: CN = t165 -+ DirName: CN = t166 -+ DirName: CN = t167 -+ DirName: CN = t168 -+ DirName: CN = t169 -+ DirName: CN = t170 -+ DirName: CN = t171 -+ DirName: CN = t172 -+ DirName: CN = t173 -+ DirName: CN = t174 -+ DirName: CN = t175 -+ DirName: CN = t176 -+ DirName: CN = t177 -+ DirName: CN = t178 -+ DirName: CN = t179 -+ DirName: CN = t180 -+ DirName: CN = t181 -+ DirName: CN = t182 -+ DirName: CN = t183 -+ DirName: CN = t184 -+ DirName: CN = t185 -+ DirName: CN = t186 -+ DirName: CN = t187 -+ DirName: CN = t188 -+ DirName: CN = t189 -+ DirName: CN = t190 -+ DirName: CN = t191 -+ DirName: CN = t192 -+ DirName: CN = t193 -+ DirName: CN = t194 -+ DirName: CN = t195 -+ DirName: CN = t196 -+ DirName: CN = t197 -+ DirName: CN = t198 -+ DirName: CN = t199 -+ DirName: CN = t200 -+ DirName: CN = t201 -+ DirName: CN = t202 -+ DirName: CN = t203 -+ DirName: CN = t204 -+ DirName: CN = t205 -+ DirName: CN = t206 -+ DirName: CN = t207 -+ DirName: CN = t208 -+ DirName: CN = t209 -+ DirName: CN = t210 -+ DirName: CN = t211 -+ DirName: CN = t212 -+ DirName: CN = t213 -+ DirName: CN = t214 -+ DirName: CN = t215 -+ DirName: CN = t216 -+ DirName: CN = t217 -+ DirName: CN = t218 -+ DirName: CN = t219 -+ DirName: CN = t220 -+ DirName: CN = t221 -+ DirName: CN = t222 -+ DirName: CN = t223 -+ DirName: CN = t224 -+ DirName: CN = t225 -+ DirName: CN = t226 -+ DirName: CN = t227 -+ DirName: CN = t228 -+ DirName: CN = t229 -+ DirName: CN = t230 -+ DirName: CN = t231 -+ DirName: CN = t232 -+ DirName: CN = t233 -+ DirName: CN = t234 -+ DirName: CN = t235 -+ DirName: CN = t236 -+ DirName: CN = t237 -+ DirName: CN = t238 -+ DirName: CN = t239 -+ DirName: CN = t240 -+ DirName: CN = t241 -+ DirName: CN = t242 -+ DirName: CN = t243 -+ DirName: CN = t244 -+ DirName: CN = t245 -+ DirName: CN = t246 -+ DirName: CN = t247 -+ DirName: CN = t248 -+ DirName: CN = t249 -+ DirName: CN = t250 -+ DirName: CN = t251 -+ DirName: CN = t252 -+ DirName: CN = t253 -+ DirName: CN = t254 -+ DirName: CN = t255 -+ DirName: CN = t256 -+ DirName: CN = t257 -+ DirName: CN = t258 -+ DirName: CN = t259 -+ DirName: CN = t260 -+ DirName: CN = t261 -+ DirName: CN = t262 -+ DirName: CN = t263 -+ DirName: CN = t264 -+ DirName: CN = t265 -+ DirName: CN = t266 -+ DirName: CN = t267 -+ DirName: CN = t268 -+ DirName: CN = t269 -+ DirName: CN = t270 -+ DirName: CN = t271 -+ DirName: CN = t272 -+ DirName: CN = t273 -+ DirName: CN = t274 -+ DirName: CN = t275 -+ DirName: CN = t276 -+ DirName: CN = t277 -+ DirName: CN = t278 -+ DirName: CN = t279 -+ DirName: CN = t280 -+ DirName: CN = t281 -+ DirName: CN = t282 -+ DirName: CN = t283 -+ DirName: CN = t284 -+ DirName: CN = t285 -+ DirName: CN = t286 -+ DirName: CN = t287 -+ DirName: CN = t288 -+ DirName: CN = t289 -+ DirName: CN = t290 -+ DirName: CN = t291 -+ DirName: CN = t292 -+ DirName: CN = t293 -+ DirName: CN = t294 -+ DirName: CN = t295 -+ DirName: CN = t296 -+ DirName: CN = t297 -+ DirName: CN = t298 -+ DirName: CN = t299 -+ DirName: CN = t300 -+ DirName: CN = t301 -+ DirName: CN = t302 -+ DirName: CN = t303 -+ DirName: CN = t304 -+ DirName: CN = t305 -+ DirName: CN = t306 -+ DirName: CN = t307 -+ DirName: CN = t308 -+ DirName: CN = t309 -+ DirName: CN = t310 -+ DirName: CN = t311 -+ DirName: CN = t312 -+ DirName: CN = t313 -+ DirName: CN = t314 -+ DirName: CN = t315 -+ DirName: CN = t316 -+ DirName: CN = t317 -+ DirName: CN = t318 -+ DirName: CN = t319 -+ DirName: CN = t320 -+ DirName: CN = t321 -+ DirName: CN = t322 -+ DirName: CN = t323 -+ DirName: CN = t324 -+ DirName: CN = t325 -+ DirName: CN = t326 -+ DirName: CN = t327 -+ DirName: CN = t328 -+ DirName: CN = t329 -+ DirName: CN = t330 -+ DirName: CN = t331 -+ DirName: CN = t332 -+ DirName: CN = t333 -+ DirName: CN = t334 -+ DirName: CN = t335 -+ DirName: CN = t336 -+ DirName: CN = t337 -+ DirName: CN = t338 -+ DirName: CN = t339 -+ DirName: CN = t340 -+ DirName: CN = t341 -+ DirName: CN = t342 -+ DirName: CN = t343 -+ DirName: CN = t344 -+ DirName: CN = t345 -+ DirName: CN = t346 -+ DirName: CN = t347 -+ DirName: CN = t348 -+ DirName: CN = t349 -+ DirName: CN = t350 -+ DirName: CN = t351 -+ DirName: CN = t352 -+ DirName: CN = t353 -+ DirName: CN = t354 -+ DirName: CN = t355 -+ DirName: CN = t356 -+ DirName: CN = t357 -+ DirName: CN = t358 -+ DirName: CN = t359 -+ DirName: CN = t360 -+ DirName: CN = t361 -+ DirName: CN = t362 -+ DirName: CN = t363 -+ DirName: CN = t364 -+ DirName: CN = t365 -+ DirName: CN = t366 -+ DirName: CN = t367 -+ DirName: CN = t368 -+ DirName: CN = t369 -+ DirName: CN = t370 -+ DirName: CN = t371 -+ DirName: CN = t372 -+ DirName: CN = t373 -+ DirName: CN = t374 -+ DirName: CN = t375 -+ DirName: CN = t376 -+ DirName: CN = t377 -+ DirName: CN = t378 -+ DirName: CN = t379 -+ DirName: CN = t380 -+ DirName: CN = t381 -+ DirName: CN = t382 -+ DirName: CN = t383 -+ DirName: CN = t384 -+ DirName: CN = t385 -+ DirName: CN = t386 -+ DirName: CN = t387 -+ DirName: CN = t388 -+ DirName: CN = t389 -+ DirName: CN = t390 -+ DirName: CN = t391 -+ DirName: CN = t392 -+ DirName: CN = t393 -+ DirName: CN = t394 -+ DirName: CN = t395 -+ DirName: CN = t396 -+ DirName: CN = t397 -+ DirName: CN = t398 -+ DirName: CN = t399 -+ DirName: CN = t400 -+ DirName: CN = t401 -+ DirName: CN = t402 -+ DirName: CN = t403 -+ DirName: CN = t404 -+ DirName: CN = t405 -+ DirName: CN = t406 -+ DirName: CN = t407 -+ DirName: CN = t408 -+ DirName: CN = t409 -+ DirName: CN = t410 -+ DirName: CN = t411 -+ DirName: CN = t412 -+ DirName: CN = t413 -+ DirName: CN = t414 -+ DirName: CN = t415 -+ DirName: CN = t416 -+ DirName: CN = t417 -+ DirName: CN = t418 -+ DirName: CN = t419 -+ DirName: CN = t420 -+ DirName: CN = t421 -+ DirName: CN = t422 -+ DirName: CN = t423 -+ DirName: CN = t424 -+ DirName: CN = t425 -+ DirName: CN = t426 -+ DirName: CN = t427 -+ DirName: CN = t428 -+ DirName: CN = t429 -+ DirName: CN = t430 -+ DirName: CN = t431 -+ DirName: CN = t432 -+ DirName: CN = t433 -+ DirName: CN = t434 -+ DirName: CN = t435 -+ DirName: CN = t436 -+ DirName: CN = t437 -+ DirName: CN = t438 -+ DirName: CN = t439 -+ DirName: CN = t440 -+ DirName: CN = t441 -+ DirName: CN = t442 -+ DirName: CN = t443 -+ DirName: CN = t444 -+ DirName: CN = t445 -+ DirName: CN = t446 -+ DirName: CN = t447 -+ DirName: CN = t448 -+ DirName: CN = t449 -+ DirName: CN = t450 -+ DirName: CN = t451 -+ DirName: CN = t452 -+ DirName: CN = t453 -+ DirName: CN = t454 -+ DirName: CN = t455 -+ DirName: CN = t456 -+ DirName: CN = t457 -+ DirName: CN = t458 -+ DirName: CN = t459 -+ DirName: CN = t460 -+ DirName: CN = t461 -+ DirName: CN = t462 -+ DirName: CN = t463 -+ DirName: CN = t464 -+ DirName: CN = t465 -+ DirName: CN = t466 -+ DirName: CN = t467 -+ DirName: CN = t468 -+ DirName: CN = t469 -+ DirName: CN = t470 -+ DirName: CN = t471 -+ DirName: CN = t472 -+ DirName: CN = t473 -+ DirName: CN = t474 -+ DirName: CN = t475 -+ DirName: CN = t476 -+ DirName: CN = t477 -+ DirName: CN = t478 -+ DirName: CN = t479 -+ DirName: CN = t480 -+ DirName: CN = t481 -+ DirName: CN = t482 -+ DirName: CN = t483 -+ DirName: CN = t484 -+ DirName: CN = t485 -+ DirName: CN = t486 -+ DirName: CN = t487 -+ DirName: CN = t488 -+ DirName: CN = t489 -+ DirName: CN = t490 -+ DirName: CN = t491 -+ DirName: CN = t492 -+ DirName: CN = t493 -+ DirName: CN = t494 -+ DirName: CN = t495 -+ DirName: CN = t496 -+ DirName: CN = t497 -+ DirName: CN = t498 -+ DirName: CN = t499 -+ DirName: CN = t500 -+ DirName: CN = t501 -+ DirName: CN = t502 -+ DirName: CN = t503 -+ DirName: CN = t504 -+ DirName: CN = t505 -+ DirName: CN = t506 -+ DirName: CN = t507 -+ DirName: CN = t508 -+ DirName: CN = t509 -+ DirName: CN = t510 -+ DirName: CN = t511 -+ DirName: CN = t512 -+ DirName: CN = t513 -+ DirName: CN = t514 -+ DirName: CN = t515 -+ DirName: CN = t516 -+ DirName: CN = t517 -+ DirName: CN = t518 -+ DirName: CN = t519 -+ DirName: CN = t520 -+ DirName: CN = t521 -+ DirName: CN = t522 -+ DirName: CN = t523 -+ DirName: CN = t524 -+ DirName: CN = t525 -+ DirName: CN = t526 -+ DirName: CN = t527 -+ DirName: CN = t528 -+ DirName: CN = t529 -+ DirName: CN = t530 -+ DirName: CN = t531 -+ DirName: CN = t532 -+ DirName: CN = t533 -+ DirName: CN = t534 -+ DirName: CN = t535 -+ DirName: CN = t536 -+ DirName: CN = t537 -+ DirName: CN = t538 -+ DirName: CN = t539 -+ DirName: CN = t540 -+ DirName: CN = t541 -+ DirName: CN = t542 -+ DirName: CN = t543 -+ DirName: CN = t544 -+ DirName: CN = t545 -+ DirName: CN = t546 -+ DirName: CN = t547 -+ DirName: CN = t548 -+ DirName: CN = t549 -+ DirName: CN = t550 -+ DirName: CN = t551 -+ DirName: CN = t552 -+ DirName: CN = t553 -+ DirName: CN = t554 -+ DirName: CN = t555 -+ DirName: CN = t556 -+ DirName: CN = t557 -+ DirName: CN = t558 -+ DirName: CN = t559 -+ DirName: CN = t560 -+ DirName: CN = t561 -+ DirName: CN = t562 -+ DirName: CN = t563 -+ DirName: CN = t564 -+ DirName: CN = t565 -+ DirName: CN = t566 -+ DirName: CN = t567 -+ DirName: CN = t568 -+ DirName: CN = t569 -+ DirName: CN = t570 -+ DirName: CN = t571 -+ DirName: CN = t572 -+ DirName: CN = t573 -+ DirName: CN = t574 -+ DirName: CN = t575 -+ DirName: CN = t576 -+ DirName: CN = t577 -+ DirName: CN = t578 -+ DirName: CN = t579 -+ DirName: CN = t580 -+ DirName: CN = t581 -+ DirName: CN = t582 -+ DirName: CN = t583 -+ DirName: CN = t584 -+ DirName: CN = t585 -+ DirName: CN = t586 -+ DirName: CN = t587 -+ DirName: CN = t588 -+ DirName: CN = t589 -+ DirName: CN = t590 -+ DirName: CN = t591 -+ DirName: CN = t592 -+ DirName: CN = t593 -+ DirName: CN = t594 -+ DirName: CN = t595 -+ DirName: CN = t596 -+ DirName: CN = t597 -+ DirName: CN = t598 -+ DirName: CN = t599 -+ DirName: CN = t600 -+ DirName: CN = t601 -+ DirName: CN = t602 -+ DirName: CN = t603 -+ DirName: CN = t604 -+ DirName: CN = t605 -+ DirName: CN = t606 -+ DirName: CN = t607 -+ DirName: CN = t608 -+ DirName: CN = t609 -+ DirName: CN = t610 -+ DirName: CN = t611 -+ DirName: CN = t612 -+ DirName: CN = t613 -+ DirName: CN = t614 -+ DirName: CN = t615 -+ DirName: CN = t616 -+ DirName: CN = t617 -+ DirName: CN = t618 -+ DirName: CN = t619 -+ DirName: CN = t620 -+ DirName: CN = t621 -+ DirName: CN = t622 -+ DirName: CN = t623 -+ DirName: CN = t624 -+ DirName: CN = t625 -+ DirName: CN = t626 -+ DirName: CN = t627 -+ DirName: CN = t628 -+ DirName: CN = t629 -+ DirName: CN = t630 -+ DirName: CN = t631 -+ DirName: CN = t632 -+ DirName: CN = t633 -+ DirName: CN = t634 -+ DirName: CN = t635 -+ DirName: CN = t636 -+ DirName: CN = t637 -+ DirName: CN = t638 -+ DirName: CN = t639 -+ DirName: CN = t640 -+ DirName: CN = t641 -+ DirName: CN = t642 -+ DirName: CN = t643 -+ DirName: CN = t644 -+ DirName: CN = t645 -+ DirName: CN = t646 -+ DirName: CN = t647 -+ DirName: CN = t648 -+ DirName: CN = t649 -+ DirName: CN = t650 -+ DirName: CN = t651 -+ DirName: CN = t652 -+ DirName: CN = t653 -+ DirName: CN = t654 -+ DirName: CN = t655 -+ DirName: CN = t656 -+ DirName: CN = t657 -+ DirName: CN = t658 -+ DirName: CN = t659 -+ DirName: CN = t660 -+ DirName: CN = t661 -+ DirName: CN = t662 -+ DirName: CN = t663 -+ DirName: CN = t664 -+ DirName: CN = t665 -+ DirName: CN = t666 -+ DirName: CN = t667 -+ DirName: CN = t668 -+ DirName: CN = t669 -+ DirName: CN = t670 -+ DirName: CN = t671 -+ DirName: CN = t672 -+ DirName: CN = t673 -+ DirName: CN = t674 -+ DirName: CN = t675 -+ DirName: CN = t676 -+ DirName: CN = t677 -+ DirName: CN = t678 -+ DirName: CN = t679 -+ DirName: CN = t680 -+ DirName: CN = t681 -+ DirName: CN = t682 -+ DirName: CN = t683 -+ DirName: CN = t684 -+ DirName: CN = t685 -+ DirName: CN = t686 -+ DirName: CN = t687 -+ DirName: CN = t688 -+ DirName: CN = t689 -+ DirName: CN = t690 -+ DirName: CN = t691 -+ DirName: CN = t692 -+ DirName: CN = t693 -+ DirName: CN = t694 -+ DirName: CN = t695 -+ DirName: CN = t696 -+ DirName: CN = t697 -+ DirName: CN = t698 -+ DirName: CN = t699 -+ DirName: CN = t700 -+ DirName: CN = t701 -+ DirName: CN = t702 -+ DirName: CN = t703 -+ DirName: CN = t704 -+ DirName: CN = t705 -+ DirName: CN = t706 -+ DirName: CN = t707 -+ DirName: CN = t708 -+ DirName: CN = t709 -+ DirName: CN = t710 -+ DirName: CN = t711 -+ DirName: CN = t712 -+ DirName: CN = t713 -+ DirName: CN = t714 -+ DirName: CN = t715 -+ DirName: CN = t716 -+ DirName: CN = t717 -+ DirName: CN = t718 -+ DirName: CN = t719 -+ DirName: CN = t720 -+ DirName: CN = t721 -+ DirName: CN = t722 -+ DirName: CN = t723 -+ DirName: CN = t724 -+ DirName: CN = t725 -+ DirName: CN = t726 -+ DirName: CN = t727 -+ DirName: CN = t728 -+ DirName: CN = t729 -+ DirName: CN = t730 -+ DirName: CN = t731 -+ DirName: CN = t732 -+ DirName: CN = t733 -+ DirName: CN = t734 -+ DirName: CN = t735 -+ DirName: CN = t736 -+ DirName: CN = t737 -+ DirName: CN = t738 -+ DirName: CN = t739 -+ DirName: CN = t740 -+ DirName: CN = t741 -+ DirName: CN = t742 -+ DirName: CN = t743 -+ DirName: CN = t744 -+ DirName: CN = t745 -+ DirName: CN = t746 -+ DirName: CN = t747 -+ DirName: CN = t748 -+ DirName: CN = t749 -+ DirName: CN = t750 -+ DirName: CN = t751 -+ DirName: CN = t752 -+ DirName: CN = t753 -+ DirName: CN = t754 -+ DirName: CN = t755 -+ DirName: CN = t756 -+ DirName: CN = t757 -+ DirName: CN = t758 -+ DirName: CN = t759 -+ DirName: CN = t760 -+ DirName: CN = t761 -+ DirName: CN = t762 -+ DirName: CN = t763 -+ DirName: CN = t764 -+ DirName: CN = t765 -+ DirName: CN = t766 -+ DirName: CN = t767 -+ DirName: CN = t768 -+ DirName: CN = t769 -+ DirName: CN = t770 -+ DirName: CN = t771 -+ DirName: CN = t772 -+ DirName: CN = t773 -+ DirName: CN = t774 -+ DirName: CN = t775 -+ DirName: CN = t776 -+ DirName: CN = t777 -+ DirName: CN = t778 -+ DirName: CN = t779 -+ DirName: CN = t780 -+ DirName: CN = t781 -+ DirName: CN = t782 -+ DirName: CN = t783 -+ DirName: CN = t784 -+ DirName: CN = t785 -+ DirName: CN = t786 -+ DirName: CN = t787 -+ DirName: CN = t788 -+ DirName: CN = t789 -+ DirName: CN = t790 -+ DirName: CN = t791 -+ DirName: CN = t792 -+ DirName: CN = t793 -+ DirName: CN = t794 -+ DirName: CN = t795 -+ DirName: CN = t796 -+ DirName: CN = t797 -+ DirName: CN = t798 -+ DirName: CN = t799 -+ DirName: CN = t800 -+ DirName: CN = t801 -+ DirName: CN = t802 -+ DirName: CN = t803 -+ DirName: CN = t804 -+ DirName: CN = t805 -+ DirName: CN = t806 -+ DirName: CN = t807 -+ DirName: CN = t808 -+ DirName: CN = t809 -+ DirName: CN = t810 -+ DirName: CN = t811 -+ DirName: CN = t812 -+ DirName: CN = t813 -+ DirName: CN = t814 -+ DirName: CN = t815 -+ DirName: CN = t816 -+ DirName: CN = t817 -+ DirName: CN = t818 -+ DirName: CN = t819 -+ DirName: CN = t820 -+ DirName: CN = t821 -+ DirName: CN = t822 -+ DirName: CN = t823 -+ DirName: CN = t824 -+ DirName: CN = t825 -+ DirName: CN = t826 -+ DirName: CN = t827 -+ DirName: CN = t828 -+ DirName: CN = t829 -+ DirName: CN = t830 -+ DirName: CN = t831 -+ DirName: CN = t832 -+ DirName: CN = t833 -+ DirName: CN = t834 -+ DirName: CN = t835 -+ DirName: CN = t836 -+ DirName: CN = t837 -+ DirName: CN = t838 -+ DirName: CN = t839 -+ DirName: CN = t840 -+ DirName: CN = t841 -+ DirName: CN = t842 -+ DirName: CN = t843 -+ DirName: CN = t844 -+ DirName: CN = t845 -+ DirName: CN = t846 -+ DirName: CN = t847 -+ DirName: CN = t848 -+ DirName: CN = t849 -+ DirName: CN = t850 -+ DirName: CN = t851 -+ DirName: CN = t852 -+ DirName: CN = t853 -+ DirName: CN = t854 -+ DirName: CN = t855 -+ DirName: CN = t856 -+ DirName: CN = t857 -+ DirName: CN = t858 -+ DirName: CN = t859 -+ DirName: CN = t860 -+ DirName: CN = t861 -+ DirName: CN = t862 -+ DirName: CN = t863 -+ DirName: CN = t864 -+ DirName: CN = t865 -+ DirName: CN = t866 -+ DirName: CN = t867 -+ DirName: CN = t868 -+ DirName: CN = t869 -+ DirName: CN = t870 -+ DirName: CN = t871 -+ DirName: CN = t872 -+ DirName: CN = t873 -+ DirName: CN = t874 -+ DirName: CN = t875 -+ DirName: CN = t876 -+ DirName: CN = t877 -+ DirName: CN = t878 -+ DirName: CN = t879 -+ DirName: CN = t880 -+ DirName: CN = t881 -+ DirName: CN = t882 -+ DirName: CN = t883 -+ DirName: CN = t884 -+ DirName: CN = t885 -+ DirName: CN = t886 -+ DirName: CN = t887 -+ DirName: CN = t888 -+ DirName: CN = t889 -+ DirName: CN = t890 -+ DirName: CN = t891 -+ DirName: CN = t892 -+ DirName: CN = t893 -+ DirName: CN = t894 -+ DirName: CN = t895 -+ DirName: CN = t896 -+ DirName: CN = t897 -+ DirName: CN = t898 -+ DirName: CN = t899 -+ DirName: CN = t900 -+ DirName: CN = t901 -+ DirName: CN = t902 -+ DirName: CN = t903 -+ DirName: CN = t904 -+ DirName: CN = t905 -+ DirName: CN = t906 -+ DirName: CN = t907 -+ DirName: CN = t908 -+ DirName: CN = t909 -+ DirName: CN = t910 -+ DirName: CN = t911 -+ DirName: CN = t912 -+ DirName: CN = t913 -+ DirName: CN = t914 -+ DirName: CN = t915 -+ DirName: CN = t916 -+ DirName: CN = t917 -+ DirName: CN = t918 -+ DirName: CN = t919 -+ DirName: CN = t920 -+ DirName: CN = t921 -+ DirName: CN = t922 -+ DirName: CN = t923 -+ DirName: CN = t924 -+ DirName: CN = t925 -+ DirName: CN = t926 -+ DirName: CN = t927 -+ DirName: CN = t928 -+ DirName: CN = t929 -+ DirName: CN = t930 -+ DirName: CN = t931 -+ DirName: CN = t932 -+ DirName: CN = t933 -+ DirName: CN = t934 -+ DirName: CN = t935 -+ DirName: CN = t936 -+ DirName: CN = t937 -+ DirName: CN = t938 -+ DirName: CN = t939 -+ DirName: CN = t940 -+ DirName: CN = t941 -+ DirName: CN = t942 -+ DirName: CN = t943 -+ DirName: CN = t944 -+ DirName: CN = t945 -+ DirName: CN = t946 -+ DirName: CN = t947 -+ DirName: CN = t948 -+ DirName: CN = t949 -+ DirName: CN = t950 -+ DirName: CN = t951 -+ DirName: CN = t952 -+ DirName: CN = t953 -+ DirName: CN = t954 -+ DirName: CN = t955 -+ DirName: CN = t956 -+ DirName: CN = t957 -+ DirName: CN = t958 -+ DirName: CN = t959 -+ DirName: CN = t960 -+ DirName: CN = t961 -+ DirName: CN = t962 -+ DirName: CN = t963 -+ DirName: CN = t964 -+ DirName: CN = t965 -+ DirName: CN = t966 -+ DirName: CN = t967 -+ DirName: CN = t968 -+ DirName: CN = t969 -+ DirName: CN = t970 -+ DirName: CN = t971 -+ DirName: CN = t972 -+ DirName: CN = t973 -+ DirName: CN = t974 -+ DirName: CN = t975 -+ DirName: CN = t976 -+ DirName: CN = t977 -+ DirName: CN = t978 -+ DirName: CN = t979 -+ DirName: CN = t980 -+ DirName: CN = t981 -+ DirName: CN = t982 -+ DirName: CN = t983 -+ DirName: CN = t984 -+ DirName: CN = t985 -+ DirName: CN = t986 -+ DirName: CN = t987 -+ DirName: CN = t988 -+ DirName: CN = t989 -+ DirName: CN = t990 -+ DirName: CN = t991 -+ DirName: CN = t992 -+ DirName: CN = t993 -+ DirName: CN = t994 -+ DirName: CN = t995 -+ DirName: CN = t996 -+ DirName: CN = t997 -+ DirName: CN = t998 -+ DirName: CN = t999 -+ DirName: CN = t1000 -+ DirName: CN = t1001 -+ DirName: CN = t1002 -+ DirName: CN = t1003 -+ DirName: CN = t1004 -+ DirName: CN = t1005 -+ DirName: CN = t1006 -+ DirName: CN = t1007 -+ DirName: CN = t1008 -+ DirName: CN = t1009 -+ DirName: CN = t1010 -+ DirName: CN = t1011 -+ DirName: CN = t1012 -+ DirName: CN = t1013 -+ DirName: CN = t1014 -+ DirName: CN = t1015 -+ DirName: CN = t1016 -+ DirName: CN = t1017 -+ DirName: CN = t1018 -+ DirName: CN = t1019 -+ DirName: CN = t1020 -+ DirName: CN = t1021 -+ DirName: CN = t1022 -+ DirName: CN = t1023 -+ DirName: CN = t1024 - - Signature Algorithm: sha256WithRSAEncryption - 12:ce:60:d6:3b:b5:7e:7a:8e:9e:d0:f5:fd:a8:8a:33:24:95: -@@ -2070,7 +2070,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -diff --git a/net/data/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.pem b/net/data/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.pem -index c2b90f8160687..b6f3f79705072 100644 ---- a/net/data/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.pem -+++ b/net/data/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.pem -@@ -1,4 +1,4 @@ --[Created by: generate-chains.py] -+[Created by: ./generate-chains.py] - - A chain containing a large number of excluded DNS name - constraints and DNS names, above the limit. -@@ -8,7 +8,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:d6 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Intermediate - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -334,7 +334,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f8 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -1729,7 +1729,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -diff --git a/net/data/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.pem b/net/data/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.pem -index 2ec9a87d02f73..a11fcc874efab 100644 ---- a/net/data/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.pem -+++ b/net/data/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.pem -@@ -1,4 +1,4 @@ --[Created by: generate-chains.py] -+[Created by: ./generate-chains.py] - - A chain containing a large number of permitted DNS name - constraints and DNS names, above the limit. -@@ -8,7 +8,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:d9 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Intermediate - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -334,7 +334,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:fb -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -1729,7 +1729,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -diff --git a/net/data/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.pem b/net/data/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.pem -index 1199678d26041..9a0ca5bd26a5b 100644 ---- a/net/data/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.pem -+++ b/net/data/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.pem -@@ -1,4 +1,4 @@ --[Created by: generate-chains.py] -+[Created by: ./generate-chains.py] - - A chain containing a large number of excluded IP name - constraints and IP names, above the limit. -@@ -8,7 +8,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:d7 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Intermediate - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -229,7 +229,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f9 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -1604,7 +1604,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -diff --git a/net/data/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.pem b/net/data/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.pem -index efdbd5eaca095..56bc9c89c4c42 100644 ---- a/net/data/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.pem -+++ b/net/data/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.pem -@@ -1,4 +1,4 @@ --[Created by: generate-chains.py] -+[Created by: ./generate-chains.py] - - A chain containing a large number of permitted IP name - constraints and IP names, above the limit. -@@ -8,7 +8,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 2f:ab:b4:3d:dc:c0:77:80:2a:03:09:ad:43:74:02:bf:98:d8:da -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Intermediate - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -229,7 +229,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:fc -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT -@@ -1604,7 +1604,7 @@ Certificate: - Version: 3 (0x2) - Serial Number: - 3c:e5:fc:81:88:59:a8:50:16:c1:7f:d7:e5:2a:e5:96:7f:c2:f6:f5 -- Signature Algorithm: sha256WithRSAEncryption -+ Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Root - Validity - Not Before: Oct 5 12:00:00 2021 GMT --- -2.42.0.515.g380fc7ccd1-goog - diff --git a/src/pki/path_builder.cc b/src/pki/path_builder.cc index affaf25..a7fddd3 100644 --- a/src/pki/path_builder.cc +++ b/src/pki/path_builder.cc @@ -9,52 +9,51 @@ #include <set> #include <unordered_set> -#include "fillins/log.h" -#include "fillins/net_errors.h" +#include <openssl/base.h> +#include <openssl/sha.h> #include "cert_issuer_source.h" #include "certificate_policies.h" #include "common_cert_errors.h" #include "parse_certificate.h" #include "parse_name.h" // For CertDebugString. +#include "parser.h" #include "string_util.h" #include "trust_store.h" #include "verify_certificate_chain.h" #include "verify_name_match.h" -#include "parser.h" -#include "tag.h" -#include <openssl/base.h> -#include <openssl/sha.h> namespace bssl { namespace { -using CertIssuerSources = std::vector<CertIssuerSource*>; +using CertIssuerSources = std::vector<CertIssuerSource *>; // Returns a hex-encoded sha256 of the DER-encoding of |cert|. -std::string FingerPrintParsedCertificate(const bssl::ParsedCertificate* cert) { +std::string FingerPrintParsedCertificate(const bssl::ParsedCertificate *cert) { uint8_t digest[SHA256_DIGEST_LENGTH]; - SHA256(cert->der_cert().UnsafeData(), cert->der_cert().Length(), digest); - return bssl::string_util::HexEncode(digest, sizeof(digest)); + SHA256(cert->der_cert().data(), cert->der_cert().size(), digest); + return bssl::string_util::HexEncode(digest); } // TODO(mattm): decide how much debug logging to keep. -std::string CertDebugString(const ParsedCertificate* cert) { +std::string CertDebugString(const ParsedCertificate *cert) { RDNSequence subject; std::string subject_str; if (!ParseName(cert->tbs().subject_tlv, &subject) || - !ConvertToRFC2253(subject, &subject_str)) + !ConvertToRFC2253(subject, &subject_str)) { subject_str = "???"; + } return FingerPrintParsedCertificate(cert) + " " + subject_str; } -std::string PathDebugString(const ParsedCertificateList& certs) { +std::string PathDebugString(const ParsedCertificateList &certs) { std::string s; - for (const auto& cert : certs) { - if (!s.empty()) + for (const auto &cert : certs) { + if (!s.empty()) { s += "\n"; + } s += " " + CertDebugString(cert.get()); } return s; @@ -84,10 +83,10 @@ enum KeyIdentifierMatch { // subjectKeyIdentifier and |target|'s authorityKeyIdentifier. Lower return // values indicate higer priority. KeyIdentifierMatch CalculateKeyIdentifierMatch( - const ParsedCertificate* target, - const ParsedCertificate* issuer) { - if (!target->authority_key_identifier()) + const ParsedCertificate *target, const ParsedCertificate *issuer) { + if (!target->authority_key_identifier()) { return kNoData; + } // TODO(crbug.com/635205): If issuer does not have a subjectKeyIdentifier, // could try synthesizing one using the standard SHA-1 method. Ideally in a @@ -108,9 +107,9 @@ KeyIdentifierMatch CalculateKeyIdentifierMatch( // Returns an integer that represents the relative ordering of |issuer| based // on |issuer_trust| and authorityKeyIdentifier matching for prioritizing // certificates in path building. Lower return values indicate higer priority. -int TrustAndKeyIdentifierMatchToOrder(const ParsedCertificate* target, - const ParsedCertificate* issuer, - const CertificateTrust& issuer_trust) { +int TrustAndKeyIdentifierMatchToOrder(const ParsedCertificate *target, + const ParsedCertificate *issuer, + const CertificateTrust &issuer_trust) { enum { kTrustedAndKeyIdMatch = 0, kTrustedAndKeyIdNoData = 1, @@ -169,15 +168,15 @@ class CertIssuersIter { // Constructs the CertIssuersIter. |*cert_issuer_sources|, and // |*trust_store| must be valid for the lifetime of the CertIssuersIter. CertIssuersIter(std::shared_ptr<const ParsedCertificate> cert, - CertIssuerSources* cert_issuer_sources, - TrustStore* trust_store); + CertIssuerSources *cert_issuer_sources, + TrustStore *trust_store); - CertIssuersIter(const CertIssuersIter&) = delete; - CertIssuersIter& operator=(const CertIssuersIter&) = delete; + CertIssuersIter(const CertIssuersIter &) = delete; + CertIssuersIter &operator=(const CertIssuersIter &) = delete; // Gets the next candidate issuer, or clears |*out| when all issuers have been // exhausted. - void GetNextIssuer(IssuerEntry* out); + void GetNextIssuer(IssuerEntry *out); // Returns true if candidate issuers were found for |cert_|. bool had_non_skipped_issuers() const { @@ -187,7 +186,7 @@ class CertIssuersIter { void increment_skipped_issuer_count() { skipped_issuer_count_++; } // Returns the |cert| for which issuers are being retrieved. - const ParsedCertificate* cert() const { return cert_.get(); } + const ParsedCertificate *cert() const { return cert_.get(); } std::shared_ptr<const ParsedCertificate> reference_cert() const { return cert_; } @@ -204,8 +203,8 @@ class CertIssuersIter { void SortRemainingIssuers(); std::shared_ptr<const ParsedCertificate> cert_; - CertIssuerSources* cert_issuer_sources_; - TrustStore* trust_store_; + CertIssuerSources *cert_issuer_sources_; + TrustStore *trust_store_; // The list of issuers for |cert_|. This is added to incrementally (first // synchronous results, then possibly multiple times as asynchronous results @@ -242,18 +241,15 @@ class CertIssuersIter { CertIssuersIter::CertIssuersIter( std::shared_ptr<const ParsedCertificate> in_cert, - CertIssuerSources* cert_issuer_sources, - TrustStore* trust_store) + CertIssuerSources *cert_issuer_sources, TrustStore *trust_store) : cert_(std::move(in_cert)), cert_issuer_sources_(cert_issuer_sources), - trust_store_(trust_store) { - DVLOG(2) << "CertIssuersIter created for " << CertDebugString(cert()); -} + trust_store_(trust_store) {} -void CertIssuersIter::GetNextIssuer(IssuerEntry* out) { +void CertIssuersIter::GetNextIssuer(IssuerEntry *out) { if (!did_initial_query_) { did_initial_query_ = true; - for (auto* cert_issuer_source : *cert_issuer_sources_) { + for (auto *cert_issuer_source : *cert_issuer_sources_) { ParsedCertificateList new_issuers; cert_issuer_source->SyncGetIssuersOf(cert(), &new_issuers); AddIssuers(std::move(new_issuers)); @@ -286,8 +282,6 @@ void CertIssuersIter::GetNextIssuer(IssuerEntry* out) { if (HasCurrentIssuer()) { SortRemainingIssuers(); - DVLOG(2) << "CertIssuersIter returning issuer " << cur_issuer_ << " of " - << issuers_.size() << " for " << CertDebugString(cert()); // Still have issuers that haven't been returned yet, return the highest // priority one (head of remaining list). A reference to the returned issuer // is retained, since |present_issuers_| points to data owned by it. @@ -295,18 +289,17 @@ void CertIssuersIter::GetNextIssuer(IssuerEntry* out) { return; } - DVLOG(2) << "CertIssuersIter reached the end of all available issuers for " - << CertDebugString(cert()); // Reached the end of all available issuers. *out = IssuerEntry(); } void CertIssuersIter::AddIssuers(ParsedCertificateList new_issuers) { - for (std::shared_ptr<const ParsedCertificate>& issuer : new_issuers) { - if (present_issuers_.find(issuer->der_cert().AsStringView()) != - present_issuers_.end()) + for (std::shared_ptr<const ParsedCertificate> &issuer : new_issuers) { + if (present_issuers_.find(BytesAsStringView(issuer->der_cert())) != + present_issuers_.end()) { continue; - present_issuers_.insert(issuer->der_cert().AsStringView()); + } + present_issuers_.insert(BytesAsStringView(issuer->der_cert())); // Look up the trust for this issuer. IssuerEntry entry; @@ -324,23 +317,23 @@ void CertIssuersIter::DoAsyncIssuerQuery() { BSSL_CHECK(!did_async_issuer_query_); did_async_issuer_query_ = true; cur_async_request_ = 0; - for (auto* cert_issuer_source : *cert_issuer_sources_) { + for (auto *cert_issuer_source : *cert_issuer_sources_) { std::unique_ptr<CertIssuerSource::Request> request; cert_issuer_source->AsyncGetIssuersOf(cert(), &request); if (request) { - DVLOG(1) << "AsyncGetIssuersOf pending for " << CertDebugString(cert()); pending_async_requests_.push_back(std::move(request)); } } } void CertIssuersIter::SortRemainingIssuers() { - if (!issuers_needs_sort_) + if (!issuers_needs_sort_) { return; + } std::stable_sort( issuers_.begin() + cur_issuer_, issuers_.end(), - [](const IssuerEntry& issuer1, const IssuerEntry& issuer2) { + [](const IssuerEntry &issuer1, const IssuerEntry &issuer2) { // TODO(crbug.com/635205): Add other prioritization hints. (See big list // of possible sorting hints in RFC 4158.) const bool issuer1_self_issued = issuer1.cert->normalized_subject() == @@ -372,7 +365,7 @@ void CertIssuersIter::SortRemainingIssuers() { class CertIssuerIterPath { public: // Returns true if |cert| is already present in the path. - bool IsPresent(const ParsedCertificate* cert) const { + bool IsPresent(const ParsedCertificate *cert) const { return present_certs_.find(GetKey(cert)) != present_certs_.end(); } @@ -393,26 +386,28 @@ class CertIssuerIterPath { } // Copies the ParsedCertificate elements of the current path to |*out_path|. - void CopyPath(ParsedCertificateList* out_path) { + void CopyPath(ParsedCertificateList *out_path) { out_path->clear(); - for (const auto& node : cur_path_) + for (const auto &node : cur_path_) { out_path->push_back(node->reference_cert()); + } } // Returns true if the path is empty. bool Empty() const { return cur_path_.empty(); } // Returns the last CertIssuersIter in the path. - CertIssuersIter* back() { return cur_path_.back().get(); } + CertIssuersIter *back() { return cur_path_.back().get(); } // Returns the length of the path. size_t Length() const { return cur_path_.size(); } std::string PathDebugString() { std::string s; - for (const auto& node : cur_path_) { - if (!s.empty()) + for (const auto &node : cur_path_) { + if (!s.empty()) { s += "\n"; + } s += " " + CertDebugString(node->cert()); } return s; @@ -421,16 +416,16 @@ class CertIssuerIterPath { private: using Key = std::tuple<std::string_view, std::string_view, std::string_view>; - static Key GetKey(const ParsedCertificate* cert) { + static Key GetKey(const ParsedCertificate *cert) { // TODO(mattm): ideally this would use a normalized version of // SubjectAltName, but it's not that important just for LoopChecker. // // Note that subject_alt_names_extension().value will be empty if the cert // had no SubjectAltName extension, so there is no need for a condition on // has_subject_alt_names(). - return Key(cert->normalized_subject().AsStringView(), - cert->subject_alt_names_extension().value.AsStringView(), - cert->tbs().spki_tlv.AsStringView()); + return Key(BytesAsStringView(cert->normalized_subject()), + BytesAsStringView(cert->subject_alt_names_extension().value), + BytesAsStringView(cert->tbs().spki_tlv)); } std::vector<std::unique_ptr<CertIssuersIter>> cur_path_; @@ -442,9 +437,10 @@ class CertIssuerIterPath { } // namespace -const ParsedCertificate* CertPathBuilderResultPath::GetTrustedCert() const { - if (certs.empty()) +const ParsedCertificate *CertPathBuilderResultPath::GetTrustedCert() const { + if (certs.empty()) { return nullptr; + } switch (last_cert_trust.type) { case CertificateTrustType::TRUSTED_ANCHOR: @@ -466,15 +462,15 @@ const ParsedCertificate* CertPathBuilderResultPath::GetTrustedCert() const { class CertPathIter { public: CertPathIter(std::shared_ptr<const ParsedCertificate> cert, - TrustStore* trust_store); + TrustStore *trust_store); - CertPathIter(const CertPathIter&) = delete; - CertPathIter& operator=(const CertPathIter&) = delete; + CertPathIter(const CertPathIter &) = delete; + CertPathIter &operator=(const CertPathIter &) = delete; // Adds a CertIssuerSource to provide intermediates for use in path building. // The |*cert_issuer_source| must remain valid for the lifetime of the // CertPathIter. - void AddCertIssuerSource(CertIssuerSource* cert_issuer_source); + void AddCertIssuerSource(CertIssuerSource *cert_issuer_source); // Gets the next candidate path, and fills it into |out_certs| and // |out_last_cert_trust|. Note that the returned path is unverified and must @@ -485,11 +481,10 @@ class CertPathIter { // and continue path building. Once all paths have been exhausted returns // false. If deadline or iteration limit is exceeded, sets |out_certs| to the // current path being explored and returns false. - bool GetNextPath(ParsedCertificateList* out_certs, - CertificateTrust* out_last_cert_trust, - CertPathErrors* out_errors, - CertPathBuilderDelegate* delegate, - uint32_t* iteration_count, + bool GetNextPath(ParsedCertificateList *out_certs, + CertificateTrust *out_last_cert_trust, + CertPathErrors *out_errors, + CertPathBuilderDelegate *delegate, uint32_t *iteration_count, const uint32_t max_iteration_count, const uint32_t max_path_building_depth); @@ -504,26 +499,26 @@ class CertPathIter { // The CertIssuerSources for retrieving candidate issuers. CertIssuerSources cert_issuer_sources_; // The TrustStore for checking if a path ends in a trust anchor. - TrustStore* trust_store_; + TrustStore *trust_store_; }; CertPathIter::CertPathIter(std::shared_ptr<const ParsedCertificate> cert, - TrustStore* trust_store) + TrustStore *trust_store) : trust_store_(trust_store) { // Initialize |next_issuer_| to the target certificate. next_issuer_.cert = std::move(cert); next_issuer_.trust = trust_store_->GetTrust(next_issuer_.cert.get()); } -void CertPathIter::AddCertIssuerSource(CertIssuerSource* cert_issuer_source) { +void CertPathIter::AddCertIssuerSource(CertIssuerSource *cert_issuer_source) { cert_issuer_sources_.push_back(cert_issuer_source); } -bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, - CertificateTrust* out_last_cert_trust, - CertPathErrors* out_errors, - CertPathBuilderDelegate* delegate, - uint32_t* iteration_count, +bool CertPathIter::GetNextPath(ParsedCertificateList *out_certs, + CertificateTrust *out_last_cert_trust, + CertPathErrors *out_errors, + CertPathBuilderDelegate *delegate, + uint32_t *iteration_count, const uint32_t max_iteration_count, const uint32_t max_path_building_depth) { out_certs->clear(); @@ -535,8 +530,9 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, // If the deadline is already expired before the first call to // GetNextPath, cur_path_ will be empty. Return the leaf cert in that // case. - if (next_issuer_.cert) + if (next_issuer_.cert) { out_certs->push_back(next_issuer_.cert); + } } else { cur_path_.CopyPath(out_certs); } @@ -550,16 +546,21 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, cur_path_.Length() >= max_path_building_depth) { cur_path_.CopyPath(out_certs); out_errors->GetOtherErrors()->AddError(cert_errors::kDepthLimitExceeded); - DVLOG(1) << "CertPathIter reached depth limit. Returning partial path " - "and backtracking:\n" - << PathDebugString(*out_certs); + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog( + "CertPathIter reached depth limit. Returning " + "partial path and backtracking:\n" + + PathDebugString(*out_certs)); + } cur_path_.Pop(); return true; } if (!next_issuer_.cert) { if (cur_path_.Empty()) { - DVLOG(1) << "CertPathIter exhausted all paths..."; + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog("CertPathIter exhausted all paths..."); + } return false; } @@ -579,14 +580,19 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, cur_path_.CopyPath(out_certs); out_errors->GetErrorsForCert(out_certs->size() - 1) ->AddError(cert_errors::kNoIssuersFound); - DVLOG(1) << "CertPathIter returning partial path and backtracking:\n" - << PathDebugString(*out_certs); + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog( + "CertPathIter returning partial path and backtracking:\n" + + PathDebugString(*out_certs)); + } cur_path_.Pop(); return true; } else { // No more issuers for current chain, go back up and see if there are // any more for the previous cert. - DVLOG(1) << "CertPathIter backtracking..."; + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog("CertPathIter backtracking..."); + } cur_path_.Pop(); continue; } @@ -602,7 +608,10 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, // unspecified trust. This may allow a successful path to be built to a // different root (or to the same cert if it's self-signed). if (cur_path_.Empty()) { - DVLOG(1) << "Leaf is a trust anchor, considering as UNSPECIFIED"; + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog( + "Leaf is a trust anchor, considering as UNSPECIFIED"); + } next_issuer_.trust = CertificateTrust::ForUnspecified(); } break; @@ -611,7 +620,10 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, // unspecified trust. This may allow a successful path to be built to a // trusted root. if (!cur_path_.Empty()) { - DVLOG(1) << "Issuer is a trust leaf, considering as UNSPECIFIED"; + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog( + "Issuer is a trust leaf, considering as UNSPECIFIED"); + } next_issuer_.trust = CertificateTrust::ForUnspecified(); } break; @@ -631,8 +643,11 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, !VerifyCertificateIsSelfSigned(*next_issuer_.cert, delegate->GetVerifyCache(), /*errors=*/nullptr)) { - DVLOG(1) << "Leaf is trusted with require_leaf_selfsigned but is " - "not self-signed, considering as UNSPECIFIED"; + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog( + "Leaf is trusted with require_leaf_selfsigned but is " + "not self-signed, considering as UNSPECIFIED"); + } next_issuer_.trust = CertificateTrust::ForUnspecified(); } break; @@ -652,12 +667,12 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: case CertificateTrustType::TRUSTED_LEAF: { // If the issuer has a known trust level, can stop building the path. - DVLOG(2) << "CertPathIter got anchor: " - << CertDebugString(next_issuer_.cert.get()); cur_path_.CopyPath(out_certs); out_certs->push_back(std::move(next_issuer_.cert)); - DVLOG(1) << "CertPathIter returning path:\n" - << PathDebugString(*out_certs); + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog("CertPathIter returning path:\n" + + PathDebugString(*out_certs)); + } *out_last_cert_trust = next_issuer_.trust; next_issuer_ = IssuerEntry(); return true; @@ -666,8 +681,10 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, // Skip this cert if it is already in the chain. if (cur_path_.IsPresent(next_issuer_.cert.get())) { cur_path_.back()->increment_skipped_issuer_count(); - DVLOG(1) << "CertPathIter skipping dupe cert: " - << CertDebugString(next_issuer_.cert.get()); + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog("CertPathIter skipping dupe cert: " + + CertDebugString(next_issuer_.cert.get())); + } next_issuer_ = IssuerEntry(); continue; } @@ -675,7 +692,10 @@ bool CertPathIter::GetNextPath(ParsedCertificateList* out_certs, cur_path_.Append(std::make_unique<CertIssuersIter>( std::move(next_issuer_.cert), &cert_issuer_sources_, trust_store_)); next_issuer_ = IssuerEntry(); - DVLOG(1) << "CertPathIter cur_path_ =\n" << cur_path_.PathDebugString(); + if (delegate->IsDebugLogEnabled()) { + delegate->DebugLog("CertPathIter cur_path_ =\n" + + cur_path_.PathDebugString()); + } // Continue descending the tree. continue; } @@ -691,52 +711,53 @@ bool CertPathBuilderResultPath::IsValid() const { } CertPathBuilder::Result::Result() = default; -CertPathBuilder::Result::Result(Result&&) = default; +CertPathBuilder::Result::Result(Result &&) = default; CertPathBuilder::Result::~Result() = default; -CertPathBuilder::Result& CertPathBuilder::Result::operator=(Result&&) = default; +CertPathBuilder::Result &CertPathBuilder::Result::operator=(Result &&) = + default; bool CertPathBuilder::Result::HasValidPath() const { return GetBestValidPath() != nullptr; } bool CertPathBuilder::Result::AnyPathContainsError(CertErrorId error_id) const { - for (const auto& path : paths) { - if (path->errors.ContainsError(error_id)) + for (const auto &path : paths) { + if (path->errors.ContainsError(error_id)) { return true; + } } return false; } -const CertPathBuilderResultPath* CertPathBuilder::Result::GetBestValidPath() +const CertPathBuilderResultPath *CertPathBuilder::Result::GetBestValidPath() const { - const CertPathBuilderResultPath* result_path = GetBestPathPossiblyInvalid(); + const CertPathBuilderResultPath *result_path = GetBestPathPossiblyInvalid(); - if (result_path && result_path->IsValid()) + if (result_path && result_path->IsValid()) { return result_path; + } return nullptr; } -const CertPathBuilderResultPath* +const CertPathBuilderResultPath * CertPathBuilder::Result::GetBestPathPossiblyInvalid() const { BSSL_CHECK((paths.empty() && best_result_index == 0) || best_result_index < paths.size()); - if (best_result_index >= paths.size()) + if (best_result_index >= paths.size()) { return nullptr; + } return paths[best_result_index].get(); } CertPathBuilder::CertPathBuilder( - std::shared_ptr<const ParsedCertificate> cert, - TrustStore* trust_store, - CertPathBuilderDelegate* delegate, - const der::GeneralizedTime& time, - KeyPurpose key_purpose, - InitialExplicitPolicy initial_explicit_policy, - const std::set<der::Input>& user_initial_policy_set, + std::shared_ptr<const ParsedCertificate> cert, TrustStore *trust_store, + CertPathBuilderDelegate *delegate, const der::GeneralizedTime &time, + KeyPurpose key_purpose, InitialExplicitPolicy initial_explicit_policy, + const std::set<der::Input> &user_initial_policy_set, InitialPolicyMappingInhibit initial_policy_mapping_inhibit, InitialAnyPolicyInhibit initial_any_policy_inhibit) : cert_path_iter_( @@ -756,7 +777,7 @@ CertPathBuilder::CertPathBuilder( CertPathBuilder::~CertPathBuilder() = default; void CertPathBuilder::AddCertIssuerSource( - CertIssuerSource* cert_issuer_source) { + CertIssuerSource *cert_issuer_source) { cert_path_iter_->AddCertIssuerSource(cert_issuer_source); } @@ -768,8 +789,12 @@ void CertPathBuilder::SetDepthLimit(uint32_t limit) { max_path_building_depth_ = limit; } +void CertPathBuilder::SetValidPathLimit(size_t limit) { + valid_path_limit_ = limit; +} + void CertPathBuilder::SetExploreAllPaths(bool explore_all_paths) { - explore_all_paths_ = explore_all_paths; + valid_path_limit_ = explore_all_paths ? 0 : 1; } CertPathBuilder::Result CertPathBuilder::Run() { @@ -799,6 +824,12 @@ CertPathBuilder::Result CertPathBuilder::Run() { result_path->errors.GetOtherErrors()->AddError( cert_errors::kInternalError); } + + // Allow the delegate to do any processing or logging of the partial + // path. (This is for symmetry for the other CheckPathAfterVerification + // which also gets called on partial paths.) + delegate_->CheckPathAfterVerification(*this, result_path.get()); + AddResultPath(std::move(result_path)); } out_result_.iteration_count = iteration_count; @@ -821,9 +852,6 @@ CertPathBuilder::Result CertPathBuilder::Run() { &result_path->user_constrained_policy_set, &result_path->errors); } - DVLOG(1) << "CertPathBuilder VerifyCertificateChain errors:\n" - << result_path->errors.ToDebugString(result_path->certs); - // Give the delegate a chance to add errors to the path. delegate_->CheckPathAfterVerification(*this, result_path.get()); @@ -831,10 +859,13 @@ CertPathBuilder::Result CertPathBuilder::Run() { AddResultPath(std::move(result_path)); - if (path_is_good && !explore_all_paths_) { - out_result_.iteration_count = iteration_count; - // Found a valid path, return immediately. - return std::move(out_result_); + if (path_is_good) { + valid_path_count_++; + if (valid_path_limit_ > 0 && valid_path_count_ == valid_path_limit_) { + out_result_.iteration_count = iteration_count; + // Found enough paths, return immediately. + return std::move(out_result_); + } } // Path did not verify. Try more paths. } @@ -847,7 +878,7 @@ void CertPathBuilder::AddResultPath( // best_result_index based on prioritization (since due to AIA and such, the // actual order results were discovered may not match the ideal). if (!out_result_.HasValidPath()) { - const CertPathBuilderResultPath* old_best_path = + const CertPathBuilderResultPath *old_best_path = out_result_.GetBestPathPossiblyInvalid(); // If |result_path| is a valid path or if the previous best result did not // end in a trust anchor but the |result_path| does, then update the best @@ -864,4 +895,4 @@ void CertPathBuilder::AddResultPath( out_result_.paths.push_back(std::move(result_path)); } -} // namespace net +} // namespace bssl diff --git a/src/pki/path_builder.h b/src/pki/path_builder.h index ea11b43..05999b0 100644 --- a/src/pki/path_builder.h +++ b/src/pki/path_builder.h @@ -5,17 +5,17 @@ #ifndef BSSL_PKI_PATH_BUILDER_H_ #define BSSL_PKI_PATH_BUILDER_H_ -#include "fillins/openssl_util.h" #include <memory> #include <vector> +#include <openssl/base.h> #include "cert_errors.h" +#include "input.h" +#include "parse_values.h" #include "parsed_certificate.h" #include "trust_store.h" #include "verify_certificate_chain.h" -#include "input.h" -#include "parse_values.h" namespace bssl { @@ -51,7 +51,7 @@ struct OPENSSL_EXPORT CertPathBuilderResultPath { // Returns the chain's root certificate or nullptr if the chain doesn't // chain to a trust anchor. - const ParsedCertificate* GetTrustedCert() const; + const ParsedCertificate *GetTrustedCert() const; // Path in the forward direction: // @@ -88,17 +88,29 @@ struct OPENSSL_EXPORT CertPathBuilderResultPath { class OPENSSL_EXPORT CertPathBuilderDelegate : public VerifyCertificateChainDelegate { public: - // This is called during path building on candidate paths which have already - // been run through RFC 5280 verification. |path| may already have errors - // and warnings set on it. Delegates can "reject" a candidate path from path - // building by adding high severity errors. - virtual void CheckPathAfterVerification(const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path) = 0; + // This is called during path building on candidate paths. These are either + // paths which have already been run through RFC 5280 verification, or + // partial paths that the path builder cannot continue either due to not + // finding a matching issuer or reaching a configured pathbuilding limit. + // |path| may already have errors and warnings set on it. Delegates can + // "reject" a candidate path from path building by adding high severity + // errors. + virtual void CheckPathAfterVerification(const CertPathBuilder &path_builder, + CertPathBuilderResultPath *path) = 0; // This is called during path building in between attempts to build candidate // paths. Delegates can cause path building to stop and return indicating // the deadline was exceeded by returning true from this function. virtual bool IsDeadlineExpired() = 0; + + // This is called during path building to decide if debug logs will be + // sent to the delegate rom the path builder. No calls to DebugLog (below) + // will be made unless this returns true. + virtual bool IsDebugLogEnabled() = 0; + + // This is called to send a debug log string |msg| to the delegate. These are + // only called if IsDebugLogEnabled (above) returns true. + virtual void DebugLog(std::string_view msg) = 0; }; // Checks whether a certificate is trusted by building candidate paths to trust @@ -113,13 +125,13 @@ class OPENSSL_EXPORT CertPathBuilder { // were attempted. struct OPENSSL_EXPORT Result { Result(); - Result(Result&&); + Result(Result &&); - Result(const Result&) = delete; - Result& operator=(const Result&) = delete; + Result(const Result &) = delete; + Result &operator=(const Result &) = delete; ~Result(); - Result& operator=(Result&&); + Result &operator=(Result &&); // Returns true if there was a valid path. bool HasValidPath() const; @@ -129,10 +141,10 @@ class OPENSSL_EXPORT CertPathBuilder { // Returns the CertPathBuilderResultPath for the best valid path, or nullptr // if there was none. - const CertPathBuilderResultPath* GetBestValidPath() const; + const CertPathBuilderResultPath *GetBestValidPath() const; // Returns the best CertPathBuilderResultPath or nullptr if there was none. - const CertPathBuilderResultPath* GetBestPathPossiblyInvalid() const; + const CertPathBuilderResultPath *GetBestPathPossiblyInvalid() const; // List of paths that were attempted and the result for each. std::vector<std::unique_ptr<CertPathBuilderResultPath>> paths; @@ -171,17 +183,15 @@ class OPENSSL_EXPORT CertPathBuilder { // final chain. See CertPathBuilderDelegate and // VerifyCertificateChainDelegate for more information. CertPathBuilder(std::shared_ptr<const ParsedCertificate> cert, - TrustStore* trust_store, - CertPathBuilderDelegate* delegate, - const der::GeneralizedTime& time, - KeyPurpose key_purpose, + TrustStore *trust_store, CertPathBuilderDelegate *delegate, + const der::GeneralizedTime &time, KeyPurpose key_purpose, InitialExplicitPolicy initial_explicit_policy, - const std::set<der::Input>& user_initial_policy_set, + const std::set<der::Input> &user_initial_policy_set, InitialPolicyMappingInhibit initial_policy_mapping_inhibit, InitialAnyPolicyInhibit initial_any_policy_inhibit); - CertPathBuilder(const CertPathBuilder&) = delete; - CertPathBuilder& operator=(const CertPathBuilder&) = delete; + CertPathBuilder(const CertPathBuilder &) = delete; + CertPathBuilder &operator=(const CertPathBuilder &) = delete; ~CertPathBuilder(); @@ -192,7 +202,7 @@ class OPENSSL_EXPORT CertPathBuilder { // // (If no issuer sources are added, the target certificate will only verify if // it is a trust anchor or is directly signed by a trust anchor.) - void AddCertIssuerSource(CertIssuerSource* cert_issuer_source); + void AddCertIssuerSource(CertIssuerSource *cert_issuer_source); // Sets a limit to the number of times to repeat the process of considering a // new intermediate over all potential paths. Setting |limit| to 0 disables @@ -203,10 +213,16 @@ class OPENSSL_EXPORT CertPathBuilder { // to root. Setting |limit| to 0 disables this limit, which is the default. void SetDepthLimit(uint32_t limit); - // If |explore_all_paths| is false (the default), path building will stop as - // soon as a valid path is found. If |explore_all_paths| is true, path - // building will continue until all possible paths have been exhausted (or - // iteration limit / deadline is exceeded). + // Set the limit of valid paths returned by the path builder to |limit|. If + // |limit| is non zero, path building will stop once |limit| valid paths have + // been found. Setting |limit| to 0 disables the limit, meaning path building + // will continue until all possible paths have been exhausted (or iteration + // limit / deadline is exceeded). The default limit is 1. + void SetValidPathLimit(size_t limit); + + // If |explore_all_paths| is false, this is equivalent to calling + // SetValidPathLimit(1). If |explore_all_paths| is true, this is equivalent to + // calling SetValidPathLimit(0). void SetExploreAllPaths(bool explore_all_paths); // Executes verification of the target certificate. @@ -222,7 +238,7 @@ class OPENSSL_EXPORT CertPathBuilder { Result out_result_; std::unique_ptr<CertPathIter> cert_path_iter_; - CertPathBuilderDelegate* delegate_; + CertPathBuilderDelegate *delegate_; const der::GeneralizedTime time_; const KeyPurpose key_purpose_; const InitialExplicitPolicy initial_explicit_policy_; @@ -231,9 +247,10 @@ class OPENSSL_EXPORT CertPathBuilder { const InitialAnyPolicyInhibit initial_any_policy_inhibit_; uint32_t max_iteration_count_ = 0; uint32_t max_path_building_depth_ = 0; - bool explore_all_paths_ = false; + size_t valid_path_limit_ = 1; + size_t valid_path_count_ = 0; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_PATH_BUILDER_H_ diff --git a/src/pki/path_builder_pkits_unittest.cc b/src/pki/path_builder_pkits_unittest.cc index b797cd4..5bc0703 100644 --- a/src/pki/path_builder_pkits_unittest.cc +++ b/src/pki/path_builder_pkits_unittest.cc @@ -6,20 +6,17 @@ #include <cstdint> -#include "fillins/log.h" -#include "fillins/net_errors.h" - +#include <openssl/pool.h> #include "cert_issuer_source_static.h" #include "common_cert_errors.h" #include "crl.h" +#include "encode_values.h" +#include "input.h" #include "parse_certificate.h" #include "parsed_certificate.h" #include "simple_path_builder_delegate.h" #include "trust_store_in_memory.h" #include "verify_certificate_chain.h" -#include "encode_values.h" -#include "input.h" -#include <openssl/pool.h> #include "nist_pkits_unittest.h" @@ -31,9 +28,8 @@ namespace { class CrlCheckingPathBuilderDelegate : public SimplePathBuilderDelegate { public: - CrlCheckingPathBuilderDelegate(const std::vector<std::string>& der_crls, - int64_t verify_time, - int64_t max_age, + CrlCheckingPathBuilderDelegate(const std::vector<std::string> &der_crls, + int64_t verify_time, int64_t max_age, size_t min_rsa_modulus_length_bits, DigestPolicy digest_policy) : SimplePathBuilderDelegate(min_rsa_modulus_length_bits, digest_policy), @@ -41,25 +37,27 @@ class CrlCheckingPathBuilderDelegate : public SimplePathBuilderDelegate { verify_time_(verify_time), max_age_(max_age) {} - void CheckPathAfterVerification(const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path) override { + void CheckPathAfterVerification(const CertPathBuilder &path_builder, + CertPathBuilderResultPath *path) override { SimplePathBuilderDelegate::CheckPathAfterVerification(path_builder, path); - if (!path->IsValid()) + if (!path->IsValid()) { return; + } // It would be preferable if this test could use // CheckValidatedChainRevocation somehow, but that only supports getting // CRLs by http distributionPoints. So this just settles for writing a // little bit of wrapper code to test CheckCRL directly. - const ParsedCertificateList& certs = path->certs; + const ParsedCertificateList &certs = path->certs; for (size_t reverse_i = 0; reverse_i < certs.size(); ++reverse_i) { size_t i = certs.size() - reverse_i - 1; // Trust anchors bypass OCSP/CRL revocation checks. (The only way to // revoke trust anchors is via CRLSet or the built-in SPKI block list). - if (reverse_i == 0 && path->last_cert_trust.IsTrustAnchor()) + if (reverse_i == 0 && path->last_cert_trust.IsTrustAnchor()) { continue; + } // RFC 5280 6.3.3. [If the CRL was not specified in a distribution // point], assume a DP with both the reasons and the @@ -69,7 +67,7 @@ class CrlCheckingPathBuilderDelegate : public SimplePathBuilderDelegate { // points, this means a default-initialized ParsedDistributionPoint is // sufficient. ParsedDistributionPoint fake_cert_dp; - const ParsedDistributionPoint* cert_dp = &fake_cert_dp; + const ParsedDistributionPoint *cert_dp = &fake_cert_dp; // If the target cert does have a distribution point, use it. std::vector<ParsedDistributionPoint> distribution_points; @@ -85,7 +83,7 @@ class CrlCheckingPathBuilderDelegate : public SimplePathBuilderDelegate { // reasons.) // Look for a DistributionPoint without reasons. - for (const auto& dp : distribution_points) { + for (const auto &dp : distribution_points) { if (!dp.reasons) { cert_dp = &dp; break; @@ -93,13 +91,14 @@ class CrlCheckingPathBuilderDelegate : public SimplePathBuilderDelegate { } // If there were only DistributionPoints with reasons, just use the // first one. - if (cert_dp == &fake_cert_dp && !distribution_points.empty()) + if (cert_dp == &fake_cert_dp && !distribution_points.empty()) { cert_dp = &distribution_points[0]; + } } bool cert_good = false; - for (const auto& der_crl : der_crls_) { + for (const auto &der_crl : der_crls_) { CRLRevocationStatus crl_status = CheckCRL(der_crl, certs, i, *cert_dp, verify_time_, max_age_); if (crl_status == CRLRevocationStatus::REVOKED) { @@ -134,16 +133,16 @@ class PathBuilderPkitsTestDelegate { public: static void RunTest(std::vector<std::string> cert_ders, std::vector<std::string> crl_ders, - const PkitsTestInfo& orig_info) { + const PkitsTestInfo &orig_info) { PkitsTestInfo info = orig_info; ASSERT_FALSE(cert_ders.empty()); ParsedCertificateList certs; - for (const std::string& der : cert_ders) { + for (const std::string &der : cert_ders) { CertErrors errors; ASSERT_TRUE(ParsedCertificate::CreateAndAddToVector( bssl::UniquePtr<CRYPTO_BUFFER>( - CRYPTO_BUFFER_new(reinterpret_cast<const uint8_t*>(der.data()), + CRYPTO_BUFFER_new(reinterpret_cast<const uint8_t *>(der.data()), der.size(), nullptr)), {}, &certs, &errors)) << errors.ToDebugString(); @@ -156,8 +155,9 @@ class PathBuilderPkitsTestDelegate { // TODO(mattm): test with other irrelevant certs in cert_issuer_sources? CertIssuerSourceStatic cert_issuer_source; - for (size_t i = 1; i < cert_ders.size() - 1; ++i) + for (size_t i = 1; i < cert_ders.size() - 1; ++i) { cert_issuer_source.AddCert(certs[i]); + } std::shared_ptr<const ParsedCertificate> target_cert(certs.back()); @@ -233,16 +233,16 @@ class PathBuilderPkitsTestDelegate { CertPathBuilder::Result result = path_builder.Run(); if (info.should_validate != result.HasValidPath()) { + testing::Message msg; for (size_t i = 0; i < result.paths.size(); ++i) { - const bssl::CertPathBuilderResultPath* result_path = + const bssl::CertPathBuilderResultPath *result_path = result.paths[i].get(); - LOG(ERROR) << "path " << i << " errors:\n" - << result_path->errors.ToDebugString(result_path->certs); + msg << "path " << i << " errors:\n" + << result_path->errors.ToDebugString(result_path->certs) << "\n"; } + ASSERT_EQ(info.should_validate, result.HasValidPath()) << msg; } - ASSERT_EQ(info.should_validate, result.HasValidPath()); - if (result.HasValidPath()) { EXPECT_EQ(info.user_constrained_policy_set, result.GetBestValidPath()->user_constrained_policy_set); @@ -252,54 +252,41 @@ class PathBuilderPkitsTestDelegate { } // namespace -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest01SignatureVerification, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest01SignatureVerification, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest02ValidityPeriods, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest02ValidityPeriods, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest03VerifyingNameChaining, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest03VerifyingNameChaining, PathBuilderPkitsTestDelegate); INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest04BasicCertificateRevocationTests, PathBuilderPkitsTestDelegate); INSTANTIATE_TYPED_TEST_SUITE_P( - PathBuilder, - PkitsTest05VerifyingPathswithSelfIssuedCertificates, + PathBuilder, PkitsTest05VerifyingPathswithSelfIssuedCertificates, PathBuilderPkitsTestDelegate); INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest06VerifyingBasicConstraints, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest07KeyUsage, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest07KeyUsage, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest08CertificatePolicies, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest08CertificatePolicies, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest09RequireExplicitPolicy, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest09RequireExplicitPolicy, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest10PolicyMappings, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest10PolicyMappings, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest11InhibitPolicyMapping, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest11InhibitPolicyMapping, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest12InhibitAnyPolicy, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest12InhibitAnyPolicy, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest13NameConstraints, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest13NameConstraints, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest14DistributionPoints, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest14DistributionPoints, PathBuilderPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, - PkitsTest15DeltaCRLs, +INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest15DeltaCRLs, PathBuilderPkitsTestDelegate); INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest16PrivateCertificateExtensions, PathBuilderPkitsTestDelegate); -} // namespace net +} // namespace bssl diff --git a/src/pki/path_builder_unittest.cc b/src/pki/path_builder_unittest.cc index ef7ffca..624c0bc 100644 --- a/src/pki/path_builder_unittest.cc +++ b/src/pki/path_builder_unittest.cc @@ -6,12 +6,10 @@ #include <algorithm> -#include "fillins/path_service.h" -#include "fillins/file_util.h" - #include "cert_error_params.h" #include "cert_issuer_source_static.h" #include "common_cert_errors.h" +#include "input.h" #include "mock_signature_verify_cache.h" #include "parsed_certificate.h" #include "simple_path_builder_delegate.h" @@ -19,9 +17,7 @@ #include "trust_store_collection.h" #include "trust_store_in_memory.h" #include "verify_certificate_chain.h" -#include "input.h" -#include "testdata/test_certificate_data.h" #include <gmock/gmock.h> #include <gtest/gtest.h> #include <openssl/pool.h> @@ -33,13 +29,7 @@ namespace bssl { namespace { using ::testing::_; -using ::testing::ElementsAre; -using ::testing::Exactly; using ::testing::Invoke; -using ::testing::NiceMock; -using ::testing::Return; -using ::testing::SaveArg; -using ::testing::SetArgPointee; using ::testing::StrictMock; class TestPathBuilderDelegate : public SimplePathBuilderDelegate { @@ -54,7 +44,7 @@ class TestPathBuilderDelegate : public SimplePathBuilderDelegate { deadline_is_expired_ = deadline_is_expired; } - SignatureVerifyCache* GetVerifyCache() override { + SignatureVerifyCache *GetVerifyCache() override { return use_signature_cache_ ? &cache_ : nullptr; } @@ -62,32 +52,60 @@ class TestPathBuilderDelegate : public SimplePathBuilderDelegate { void DeActivateCache() { use_signature_cache_ = false; } - MockSignatureVerifyCache* GetMockVerifyCache() { return &cache_; } + MockSignatureVerifyCache *GetMockVerifyCache() { return &cache_; } - private: + void AllowPrecert() { allow_precertificate_ = true; } + + void DisallowPrecert() { allow_precertificate_ = false; } + + bool AcceptPreCertificates() override { + return allow_precertificate_; + } + +private: bool deadline_is_expired_ = false; bool use_signature_cache_ = false; + bool allow_precertificate_ = false; MockSignatureVerifyCache cache_; }; +class CertPathBuilderDelegateBase : public SimplePathBuilderDelegate { + public: + CertPathBuilderDelegateBase() + : SimplePathBuilderDelegate( + 1024, SimplePathBuilderDelegate::DigestPolicy::kWeakAllowSha1) {} + void CheckPathAfterVerification(const CertPathBuilder &path_builder, + CertPathBuilderResultPath *path) override { + ADD_FAILURE() << "Tests must override this"; + } +}; + +class MockPathBuilderDelegate : public CertPathBuilderDelegateBase { + public: + MOCK_METHOD2(CheckPathAfterVerification, + void(const CertPathBuilder &path_builder, + CertPathBuilderResultPath *path)); +}; + // AsyncCertIssuerSourceStatic always returns its certs asynchronously. class AsyncCertIssuerSourceStatic : public CertIssuerSource { public: class StaticAsyncRequest : public Request { public: - explicit StaticAsyncRequest(ParsedCertificateList&& issuers) { + explicit StaticAsyncRequest(ParsedCertificateList &&issuers) { issuers_.swap(issuers); issuers_iter_ = issuers_.begin(); } - StaticAsyncRequest(const StaticAsyncRequest&) = delete; - StaticAsyncRequest& operator=(const StaticAsyncRequest&) = delete; + StaticAsyncRequest(const StaticAsyncRequest &) = delete; + StaticAsyncRequest &operator=(const StaticAsyncRequest &) = delete; ~StaticAsyncRequest() override = default; - void GetNext(ParsedCertificateList* out_certs) override { - if (issuers_iter_ != issuers_.end()) + void GetNext(ParsedCertificateList *out_certs) override { + if (issuers_iter_ != issuers_.end()) { out_certs->push_back(std::move(*issuers_iter_++)); + } } ParsedCertificateList issuers_; @@ -104,10 +122,10 @@ class AsyncCertIssuerSourceStatic : public CertIssuerSource { static_cert_issuer_source_.AddCert(std::move(cert)); } - void SyncGetIssuersOf(const ParsedCertificate* cert, - ParsedCertificateList* issuers) override {} - void AsyncGetIssuersOf(const ParsedCertificate* cert, - std::unique_ptr<Request>* out_req) override { + void SyncGetIssuersOf(const ParsedCertificate *cert, + ParsedCertificateList *issuers) override {} + void AsyncGetIssuersOf(const ParsedCertificate *cert, + std::unique_ptr<Request> *out_req) override { num_async_gets_++; ParsedCertificateList issuers; static_cert_issuer_source_.SyncGetIssuersOf(cert, &issuers); @@ -126,9 +144,9 @@ class AsyncCertIssuerSourceStatic : public CertIssuerSource { std::function<void()> async_get_callback_ = nullptr; }; -::testing::AssertionResult ReadTestPem(const std::string& file_name, - const std::string& block_name, - std::string* result) { +::testing::AssertionResult ReadTestPem(const std::string &file_name, + const std::string &block_name, + std::string *result) { const PemBlockMapping mappings[] = { {block_name.c_str(), result}, }; @@ -137,17 +155,18 @@ class AsyncCertIssuerSourceStatic : public CertIssuerSource { } ::testing::AssertionResult ReadTestCert( - const std::string& file_name, - std::shared_ptr<const ParsedCertificate>* result) { + const std::string &file_name, + std::shared_ptr<const ParsedCertificate> *result) { std::string der; ::testing::AssertionResult r = ReadTestPem( - "testdata/ssl/certificates/" + file_name, "CERTIFICATE", &der); - if (!r) + "testdata/path_builder_unittest/" + file_name, "CERTIFICATE", &der); + if (!r) { return r; + } CertErrors errors; *result = ParsedCertificate::Create( bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(der.data()), der.size(), nullptr)), + reinterpret_cast<const uint8_t *>(der.data()), der.size(), nullptr)), {}, &errors); if (!*result) { return ::testing::AssertionFailure() @@ -211,7 +230,7 @@ TEST_F(PathBuilderMultiRootTest, TargetHasNameAndSpkiOfTrustAnchor) { auto result = path_builder.Run(); ASSERT_TRUE(result.HasValidPath()); - const auto& path = *result.GetBestValidPath(); + const auto &path = *result.GetBestValidPath(); ASSERT_EQ(2U, path.certs.size()); EXPECT_EQ(a_by_b_, path.certs[0]); EXPECT_EQ(b_by_f_, path.certs[1]); @@ -267,7 +286,7 @@ TEST_F(PathBuilderMultiRootTest, SelfSignedTrustAnchorSupplementalCert) { ASSERT_EQ(1U, result.paths.size()); EXPECT_FALSE(result.paths[0]->IsValid()); - const auto& path0 = *result.paths[0]; + const auto &path0 = *result.paths[0]; ASSERT_EQ(3U, path0.certs.size()); EXPECT_EQ(b_by_c_, path0.certs[0]); EXPECT_EQ(c_by_d_, path0.certs[1]); @@ -292,7 +311,7 @@ TEST_F(PathBuilderMultiRootTest, TargetIsSelfSignedTrustAnchor) { // Verifying a trusted leaf certificate is not permitted, however this // certificate is self-signed, and can chain to itself. - const auto& path = *result.GetBestValidPath(); + const auto &path = *result.GetBestValidPath(); ASSERT_EQ(2U, path.certs.size()); EXPECT_EQ(e_by_e_, path.certs[0]); EXPECT_EQ(e_by_e_, path.certs[1]); @@ -312,7 +331,7 @@ TEST_F(PathBuilderMultiRootTest, TargetDirectlySignedByTrustAnchor) { auto result = path_builder.Run(); ASSERT_TRUE(result.HasValidPath()); - const auto& path = *result.GetBestValidPath(); + const auto &path = *result.GetBestValidPath(); ASSERT_EQ(2U, path.certs.size()); EXPECT_EQ(a_by_b_, path.certs[0]); EXPECT_EQ(b_by_f_, path.certs[1]); @@ -446,7 +465,7 @@ TEST_F(PathBuilderMultiRootTest, TestBacktracking) { // The result path should be A(B) <- B(C) <- C(D) <- D(D) EXPECT_EQ(1U, result.best_result_index); EXPECT_TRUE(result.paths[1]->IsValid()); - const auto& path = *result.GetBestValidPath(); + const auto &path = *result.GetBestValidPath(); ASSERT_EQ(4U, path.certs.size()); EXPECT_EQ(a_by_b_, path.certs[0]); EXPECT_EQ(b_by_c_, path.certs[1]); @@ -573,7 +592,7 @@ TEST_F(PathBuilderMultiRootTest, TestDistrustedPathPreferredOverPartialPath) { // The result path should be A(B) <- B(C) <- C(D) <- D(D) EXPECT_EQ(1U, result.best_result_index); EXPECT_FALSE(result.paths[1]->IsValid()); - const auto& path = *result.GetBestPathPossiblyInvalid(); + const auto &path = *result.GetBestPathPossiblyInvalid(); ASSERT_EQ(4U, path.certs.size()); EXPECT_EQ(a_by_b_, path.certs[0]); EXPECT_EQ(b_by_c_, path.certs[1]); @@ -594,11 +613,13 @@ TEST_F(PathBuilderMultiRootTest, TestCertIssuerOrdering) { b_by_c_, b_by_f_, f_by_e_, c_by_d_, c_by_e_}; CertIssuerSourceStatic sync_certs; if (reverse_order) { - for (auto it = certs.rbegin(); it != certs.rend(); ++it) + for (auto it = certs.rbegin(); it != certs.rend(); ++it) { sync_certs.AddCert(*it); + } } else { - for (const auto& cert : certs) + for (const auto &cert : certs) { sync_certs.AddCert(cert); + } } CertPathBuilder path_builder( @@ -612,7 +633,7 @@ TEST_F(PathBuilderMultiRootTest, TestCertIssuerOrdering) { ASSERT_TRUE(result.HasValidPath()); // The result path should be A(B) <- B(C) <- C(D) <- D(D) - const auto& path = *result.GetBestValidPath(); + const auto &path = *result.GetBestValidPath(); ASSERT_EQ(4U, path.certs.size()); EXPECT_EQ(a_by_b_, path.certs[0]); EXPECT_EQ(b_by_c_, path.certs[1]); @@ -634,8 +655,13 @@ TEST_F(PathBuilderMultiRootTest, TestIterationLimit) { for (const bool insufficient_limit : {true, false}) { SCOPED_TRACE(insufficient_limit); + StrictMock<MockPathBuilderDelegate> mock_delegate; + // The CheckPathAfterVerification delegate should be called regardless if + // the iteration limit is reached. + EXPECT_CALL(mock_delegate, CheckPathAfterVerification(_, _)); + CertPathBuilder path_builder( - a_by_b_, &trust_store, &delegate_, time_, KeyPurpose::ANY_EKU, + a_by_b_, &trust_store, &mock_delegate, time_, KeyPurpose::ANY_EKU, initial_explicit_policy_, user_initial_policy_set_, initial_policy_mapping_inhibit_, initial_any_policy_inhibit_); path_builder.AddCertIssuerSource(&sync_certs); @@ -871,7 +897,7 @@ TEST_F(PathBuilderMultiRootTest, TestDepthLimitMultiplePaths) { ASSERT_EQ(result.paths.size(), 2u); - const CertPathBuilderResultPath* truncated_path = result.paths[0].get(); + const CertPathBuilderResultPath *truncated_path = result.paths[0].get(); EXPECT_FALSE(truncated_path->IsValid()); EXPECT_TRUE( truncated_path->errors.ContainsError(cert_errors::kDepthLimitExceeded)); @@ -880,7 +906,7 @@ TEST_F(PathBuilderMultiRootTest, TestDepthLimitMultiplePaths) { EXPECT_EQ(b_by_f_, truncated_path->certs[1]); EXPECT_EQ(f_by_e_, truncated_path->certs[2]); - const CertPathBuilderResultPath* valid_path = result.paths[1].get(); + const CertPathBuilderResultPath *valid_path = result.paths[1].get(); EXPECT_TRUE(valid_path->IsValid()); EXPECT_FALSE( valid_path->errors.ContainsError(cert_errors::kDepthLimitExceeded)); @@ -890,6 +916,46 @@ TEST_F(PathBuilderMultiRootTest, TestDepthLimitMultiplePaths) { EXPECT_EQ(c_by_d_, valid_path->certs[2]); } +TEST_F(PathBuilderMultiRootTest, TestPreCertificate) { + + std::string test_dir = + "testdata/path_builder_unittest/precertificate/"; + std::shared_ptr<const ParsedCertificate> root1 = + ReadCertFromFile(test_dir + "root.pem"); + ASSERT_TRUE(root1); + std::shared_ptr<const ParsedCertificate> target = + ReadCertFromFile(test_dir + "precertificate.pem"); + ASSERT_TRUE(target); + + der::GeneralizedTime precert_time = {2023, 10, 1, 0, 0, 0}; + + TrustStoreInMemory trust_store; + trust_store.AddTrustAnchor(root1); + + // PreCertificate should be rejected by default. + EXPECT_FALSE(delegate_.AcceptPreCertificates()); + CertPathBuilder path_builder( + target, &trust_store, &delegate_, precert_time, KeyPurpose::ANY_EKU, + initial_explicit_policy_, user_initial_policy_set_, + initial_policy_mapping_inhibit_, initial_any_policy_inhibit_); + auto result = path_builder.Run(); + ASSERT_EQ(1U, result.paths.size()); + ASSERT_FALSE(result.paths[0]->IsValid()) + << result.paths[0]->errors.ToDebugString(result.paths[0]->certs); + + // PreCertificate should be accepted if configured. + delegate_.AllowPrecert(); + EXPECT_TRUE(delegate_.AcceptPreCertificates()); + CertPathBuilder path_builder2( + target, &trust_store, &delegate_, precert_time, KeyPurpose::ANY_EKU, + initial_explicit_policy_, user_initial_policy_set_, + initial_policy_mapping_inhibit_, initial_any_policy_inhibit_); + auto result2 = path_builder2.Run(); + ASSERT_EQ(1U, result2.paths.size()); + ASSERT_TRUE(result2.paths[0]->IsValid()) + << result2.paths[0]->errors.ToDebugString(result.paths[0]->certs); +} + class PathBuilderKeyRolloverTest : public ::testing::Test { public: PathBuilderKeyRolloverTest() @@ -985,7 +1051,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestRolloverOnlyOldRootTrusted) { // attempt: target <- newintermediate <- newrootrollover <- oldroot // which will succeed. ASSERT_EQ(1U, result.paths.size()); - const auto& path0 = *result.paths[0]; + const auto &path0 = *result.paths[0]; EXPECT_EQ(0U, result.best_result_index); EXPECT_TRUE(path0.IsValid()); ASSERT_EQ(4U, path0.certs.size()); @@ -1020,7 +1086,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestRolloverBothRootsTrusted) { EXPECT_TRUE(result.HasValidPath()); ASSERT_EQ(1U, result.paths.size()); - const auto& path = *result.paths[0]; + const auto &path = *result.paths[0]; EXPECT_TRUE(result.paths[0]->IsValid()); ASSERT_EQ(3U, path.certs.size()); EXPECT_EQ(target_, path.certs[0]); @@ -1046,7 +1112,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestAnchorsNoMatchAndNoIssuerSources) { EXPECT_FALSE(result.HasValidPath()); ASSERT_EQ(1U, result.paths.size()); - const auto& path = *result.paths[0]; + const auto &path = *result.paths[0]; EXPECT_FALSE(result.paths[0]->IsValid()); ASSERT_EQ(1U, path.certs.size()); EXPECT_EQ(target_, path.certs[0]); @@ -1093,7 +1159,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestReturnsPartialPathEndedByLoopChecker) { // target->newintermediate->newrootrollover { - const auto& path = *result.paths[0]; + const auto &path = *result.paths[0]; EXPECT_FALSE(path.IsValid()); ASSERT_EQ(3U, path.certs.size()); EXPECT_EQ(target_, path.certs[0]); @@ -1103,7 +1169,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestReturnsPartialPathEndedByLoopChecker) { } { - const auto& path = *result.paths[1]; + const auto &path = *result.paths[1]; EXPECT_FALSE(path.IsValid()); ASSERT_EQ(3U, path.certs.size()); EXPECT_EQ(target_, path.certs[0]); @@ -1148,7 +1214,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestMultipleRootMatchesOnlyOneWorks) { // attempt: target <- old intermediate <- oldroot // which should succeed. EXPECT_TRUE(result.paths[result.best_result_index]->IsValid()); - const auto& path = *result.paths[result.best_result_index]; + const auto &path = *result.paths[result.best_result_index]; ASSERT_EQ(3U, path.certs.size()); EXPECT_EQ(target_, path.certs[0]); EXPECT_EQ(oldintermediate_, path.certs[1]); @@ -1189,7 +1255,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestRolloverLongChain) { // target <- newintermediate <- newroot <- oldroot // but it will fail since newroot is self-signed. EXPECT_FALSE(result.paths[0]->IsValid()); - const auto& path0 = *result.paths[0]; + const auto &path0 = *result.paths[0]; ASSERT_EQ(4U, path0.certs.size()); EXPECT_EQ(target_, path0.certs[0]); EXPECT_EQ(newintermediate_, path0.certs[1]); @@ -1199,7 +1265,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestRolloverLongChain) { // Path builder will next attempt: target <- newintermediate <- oldroot // but it will fail since newintermediate is signed by newroot. EXPECT_FALSE(result.paths[1]->IsValid()); - const auto& path1 = *result.paths[1]; + const auto &path1 = *result.paths[1]; ASSERT_EQ(3U, path1.certs.size()); EXPECT_EQ(target_, path1.certs[0]); EXPECT_EQ(newintermediate_, path1.certs[1]); @@ -1213,7 +1279,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestRolloverLongChain) { // target <- newintermediate <- newrootrollover <- oldroot EXPECT_EQ(2U, result.best_result_index); EXPECT_TRUE(result.paths[2]->IsValid()); - const auto& path2 = *result.paths[2]; + const auto &path2 = *result.paths[2]; ASSERT_EQ(4U, path2.certs.size()); EXPECT_EQ(target_, path2.certs[0]); EXPECT_EQ(newintermediate_, path2.certs[1]); @@ -1259,7 +1325,7 @@ TEST_F(PathBuilderKeyRolloverTest, ExploreAllPathsWithIterationLimit) { sync_certs.AddCert(oldintermediate_); sync_certs.AddCert(newintermediate_); - for (const auto& expectation : kExpectations) { + for (const auto &expectation : kExpectations) { SCOPED_TRACE(expectation.iteration_limit); CertPathBuilder path_builder( @@ -1281,7 +1347,7 @@ TEST_F(PathBuilderKeyRolloverTest, ExploreAllPathsWithIterationLimit) { ASSERT_EQ(expectation.expected_num_paths, result.paths.size()); } else { ASSERT_EQ(1 + expectation.expected_num_paths, result.paths.size()); - const auto& path = *result.paths[result.paths.size() - 1]; + const auto &path = *result.paths[result.paths.size() - 1]; EXPECT_FALSE(path.IsValid()); EXPECT_EQ(expectation.partial_path, path.certs); EXPECT_TRUE( @@ -1291,7 +1357,7 @@ TEST_F(PathBuilderKeyRolloverTest, ExploreAllPathsWithIterationLimit) { if (expectation.expected_num_paths > 0) { // Path builder will first build path: target <- newintermediate <- // newroot - const auto& path0 = *result.paths[0]; + const auto &path0 = *result.paths[0]; EXPECT_TRUE(path0.IsValid()); ASSERT_EQ(3U, path0.certs.size()); EXPECT_EQ(target_, path0.certs[0]); @@ -1302,7 +1368,7 @@ TEST_F(PathBuilderKeyRolloverTest, ExploreAllPathsWithIterationLimit) { if (expectation.expected_num_paths > 1) { // Next path: target <- newintermediate <- oldroot - const auto& path1 = *result.paths[1]; + const auto &path1 = *result.paths[1]; EXPECT_FALSE(path1.IsValid()); ASSERT_EQ(3U, path1.certs.size()); EXPECT_EQ(target_, path1.certs[0]); @@ -1313,7 +1379,7 @@ TEST_F(PathBuilderKeyRolloverTest, ExploreAllPathsWithIterationLimit) { if (expectation.expected_num_paths > 2) { // Next path: target <- oldintermediate <- oldroot - const auto& path2 = *result.paths[2]; + const auto &path2 = *result.paths[2]; EXPECT_TRUE(path2.IsValid()); ASSERT_EQ(3U, path2.certs.size()); EXPECT_EQ(target_, path2.certs[0]); @@ -1324,7 +1390,94 @@ TEST_F(PathBuilderKeyRolloverTest, ExploreAllPathsWithIterationLimit) { if (expectation.expected_num_paths > 3) { // Final path: target <- oldintermediate <- newroot - const auto& path3 = *result.paths[3]; + const auto &path3 = *result.paths[3]; + EXPECT_FALSE(path3.IsValid()); + ASSERT_EQ(3U, path3.certs.size()); + EXPECT_EQ(target_, path3.certs[0]); + EXPECT_EQ(oldintermediate_, path3.certs[1]); + EXPECT_EQ(newroot_, path3.certs[2]); + EXPECT_EQ(3U, result.max_depth_seen); + } + } +} + +// Tests that when SetValidPathLimit is used path builder returns the number of +// valid paths we expect before the valid path limit was reached. +TEST_F(PathBuilderKeyRolloverTest, ExplorePathsWithPathLimit) { + struct Expectation { + size_t valid_path_limit; + size_t expected_num_paths; + } kExpectations[] = { + {0, 4}, // No path limit. Three valid, one partial path should be built + {1, 1}, // One valid path + {2, 3}, // Two valid, one partial + {3, 4}, {4, 4}, {5, 4}, + }; + + // Trust both old and new roots. + TrustStoreInMemory trust_store; + trust_store.AddTrustAnchor(oldroot_); + trust_store.AddTrustAnchor(newroot_); + + // Intermediates and root rollover are all provided synchronously. + CertIssuerSourceStatic sync_certs; + sync_certs.AddCert(oldintermediate_); + sync_certs.AddCert(newintermediate_); + + for (const auto &expectation : kExpectations) { + SCOPED_TRACE(expectation.valid_path_limit); + + CertPathBuilder path_builder( + target_, &trust_store, &delegate_, time_, KeyPurpose::ANY_EKU, + initial_explicit_policy_, user_initial_policy_set_, + initial_policy_mapping_inhibit_, initial_any_policy_inhibit_); + path_builder.AddCertIssuerSource(&sync_certs); + + // Stop after finding enough valid paths. + path_builder.SetValidPathLimit(expectation.valid_path_limit); + + auto result = path_builder.Run(); + + EXPECT_TRUE(result.HasValidPath()); + ASSERT_EQ(expectation.expected_num_paths, result.paths.size()); + + if (result.paths.size() > 0) { + // Path builder will first build path: target <- newintermediate <- + // newroot + const auto &path0 = *result.paths[0]; + EXPECT_TRUE(path0.IsValid()); + ASSERT_EQ(3U, path0.certs.size()); + EXPECT_EQ(target_, path0.certs[0]); + EXPECT_EQ(newintermediate_, path0.certs[1]); + EXPECT_EQ(newroot_, path0.certs[2]); + EXPECT_EQ(3U, result.max_depth_seen); + } + + if (result.paths.size() > 1) { + // Next path: target <- newintermediate <- oldroot + const auto &path1 = *result.paths[1]; + EXPECT_FALSE(path1.IsValid()); + ASSERT_EQ(3U, path1.certs.size()); + EXPECT_EQ(target_, path1.certs[0]); + EXPECT_EQ(newintermediate_, path1.certs[1]); + EXPECT_EQ(oldroot_, path1.certs[2]); + EXPECT_EQ(3U, result.max_depth_seen); + } + + if (result.paths.size() > 2) { + // Next path: target <- oldintermediate <- oldroot + const auto &path2 = *result.paths[2]; + EXPECT_TRUE(path2.IsValid()); + ASSERT_EQ(3U, path2.certs.size()); + EXPECT_EQ(target_, path2.certs[0]); + EXPECT_EQ(oldintermediate_, path2.certs[1]); + EXPECT_EQ(oldroot_, path2.certs[2]); + EXPECT_EQ(3U, result.max_depth_seen); + } + + if (result.paths.size() > 3) { + // Final path: target <- oldintermediate <- newroot + const auto &path3 = *result.paths[3]; EXPECT_FALSE(path3.IsValid()); ASSERT_EQ(3U, path3.certs.size()); EXPECT_EQ(target_, path3.certs[0]); @@ -1401,7 +1554,7 @@ TEST_F(PathBuilderKeyRolloverTest, ASSERT_TRUE(result.HasValidPath()); - const CertPathBuilderResultPath* best_result = result.GetBestValidPath(); + const CertPathBuilderResultPath *best_result = result.GetBestValidPath(); // Newroot has same name+SPKI as newrootrollover, thus the path is valid and // only contains newroot. @@ -1417,9 +1570,9 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateIntermediates) { // Create a separate copy of oldintermediate. std::shared_ptr<const ParsedCertificate> oldintermediate_dupe( ParsedCertificate::Create( - bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - oldintermediate_->der_cert().UnsafeData(), - oldintermediate_->der_cert().Length(), nullptr)), + bssl::UniquePtr<CRYPTO_BUFFER>( + CRYPTO_BUFFER_new(oldintermediate_->der_cert().data(), + oldintermediate_->der_cert().size(), nullptr)), {}, nullptr)); // Only newroot is a trusted root. @@ -1457,7 +1610,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateIntermediates) { // Path builder will first attempt: target <- oldintermediate <- newroot // but it will fail since oldintermediate is signed by oldroot. EXPECT_FALSE(result.paths[0]->IsValid()); - const auto& path0 = *result.paths[0]; + const auto &path0 = *result.paths[0]; ASSERT_EQ(3U, path0.certs.size()); EXPECT_EQ(target_, path0.certs[0]); @@ -1470,7 +1623,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateIntermediates) { // which will succeed. EXPECT_EQ(1U, result.best_result_index); EXPECT_TRUE(result.paths[1]->IsValid()); - const auto& path1 = *result.paths[1]; + const auto &path1 = *result.paths[1]; ASSERT_EQ(3U, path1.certs.size()); EXPECT_EQ(target_, path1.certs[0]); EXPECT_EQ(newintermediate_, path1.certs[1]); @@ -1484,8 +1637,8 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateIntermediateAndRoot) { std::shared_ptr<const ParsedCertificate> newroot_dupe( ParsedCertificate::Create( bssl::UniquePtr<CRYPTO_BUFFER>( - CRYPTO_BUFFER_new(newroot_->der_cert().UnsafeData(), - newroot_->der_cert().Length(), nullptr)), + CRYPTO_BUFFER_new(newroot_->der_cert().data(), + newroot_->der_cert().size(), nullptr)), {}, nullptr)); // Only newroot is a trusted root. @@ -1511,7 +1664,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateIntermediateAndRoot) { // Path builder attempt: target <- oldintermediate <- newroot // but it will fail since oldintermediate is signed by oldroot. EXPECT_FALSE(result.paths[0]->IsValid()); - const auto& path = *result.paths[0]; + const auto &path = *result.paths[0]; ASSERT_EQ(3U, path.certs.size()); EXPECT_EQ(target_, path.certs[0]); EXPECT_EQ(oldintermediate_, path.certs[1]); @@ -1522,15 +1675,15 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateIntermediateAndRoot) { class MockCertIssuerSourceRequest : public CertIssuerSource::Request { public: - MOCK_METHOD1(GetNext, void(ParsedCertificateList*)); + MOCK_METHOD1(GetNext, void(ParsedCertificateList *)); }; class MockCertIssuerSource : public CertIssuerSource { public: MOCK_METHOD2(SyncGetIssuersOf, - void(const ParsedCertificate*, ParsedCertificateList*)); + void(const ParsedCertificate *, ParsedCertificateList *)); MOCK_METHOD2(AsyncGetIssuersOf, - void(const ParsedCertificate*, std::unique_ptr<Request>*)); + void(const ParsedCertificate *, std::unique_ptr<Request> *)); }; // Helper class to pass the Request to the PathBuilder when it calls @@ -1541,8 +1694,8 @@ class CertIssuerSourceRequestMover { explicit CertIssuerSourceRequestMover( std::unique_ptr<CertIssuerSource::Request> req) : request_(std::move(req)) {} - void MoveIt(const ParsedCertificate* cert, - std::unique_ptr<CertIssuerSource::Request>* out_req) { + void MoveIt(const ParsedCertificate *cert, + std::unique_ptr<CertIssuerSource::Request> *out_req) { *out_req = std::move(request_); } @@ -1555,10 +1708,10 @@ class CertIssuerSourceRequestMover { class AppendCertToList { public: explicit AppendCertToList( - const std::shared_ptr<const ParsedCertificate>& cert) + const std::shared_ptr<const ParsedCertificate> &cert) : cert_(cert) {} - void operator()(ParsedCertificateList* out) { out->push_back(cert_); } + void operator()(ParsedCertificateList *out) { out->push_back(cert_); } private: std::shared_ptr<const ParsedCertificate> cert_; @@ -1584,7 +1737,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestMultipleAsyncIssuersFromSingleSource) { auto target_issuers_req_owner = std::make_unique<StrictMock<MockCertIssuerSourceRequest>>(); // Keep a raw pointer to the Request... - StrictMock<MockCertIssuerSourceRequest>* target_issuers_req = + StrictMock<MockCertIssuerSourceRequest> *target_issuers_req = target_issuers_req_owner.get(); // Setup helper class to pass ownership of the Request to the PathBuilder when // it calls AsyncGetIssuersOf. @@ -1629,7 +1782,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestMultipleAsyncIssuersFromSingleSource) { // Path builder first attempts: target <- oldintermediate <- newroot // but it will fail since oldintermediate is signed by oldroot. EXPECT_FALSE(result.paths[0]->IsValid()); - const auto& path0 = *result.paths[0]; + const auto &path0 = *result.paths[0]; ASSERT_EQ(3U, path0.certs.size()); EXPECT_EQ(target_, path0.certs[0]); EXPECT_EQ(oldintermediate_, path0.certs[1]); @@ -1638,7 +1791,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestMultipleAsyncIssuersFromSingleSource) { // After the second batch of async results, path builder will attempt: // target <- newintermediate <- newroot which will succeed. EXPECT_TRUE(result.paths[1]->IsValid()); - const auto& path1 = *result.paths[1]; + const auto &path1 = *result.paths[1]; ASSERT_EQ(3U, path1.certs.size()); EXPECT_EQ(target_, path1.certs[0]); EXPECT_EQ(newintermediate_, path1.certs[1]); @@ -1664,7 +1817,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateAsyncIntermediates) { auto target_issuers_req_owner = std::make_unique<StrictMock<MockCertIssuerSourceRequest>>(); // Keep a raw pointer to the Request... - StrictMock<MockCertIssuerSourceRequest>* target_issuers_req = + StrictMock<MockCertIssuerSourceRequest> *target_issuers_req = target_issuers_req_owner.get(); // Setup helper class to pass ownership of the Request to the PathBuilder when // it calls AsyncGetIssuersOf. @@ -1678,9 +1831,9 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateAsyncIntermediates) { std::shared_ptr<const ParsedCertificate> oldintermediate_dupe( ParsedCertificate::Create( - bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - oldintermediate_->der_cert().UnsafeData(), - oldintermediate_->der_cert().Length(), nullptr)), + bssl::UniquePtr<CRYPTO_BUFFER>( + CRYPTO_BUFFER_new(oldintermediate_->der_cert().data(), + oldintermediate_->der_cert().size(), nullptr)), {}, nullptr)); EXPECT_CALL(*target_issuers_req, GetNext(_)) @@ -1716,7 +1869,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateAsyncIntermediates) { // Path builder first attempts: target <- oldintermediate <- newroot // but it will fail since oldintermediate is signed by oldroot. EXPECT_FALSE(result.paths[0]->IsValid()); - const auto& path0 = *result.paths[0]; + const auto &path0 = *result.paths[0]; ASSERT_EQ(3U, path0.certs.size()); EXPECT_EQ(target_, path0.certs[0]); EXPECT_EQ(oldintermediate_, path0.certs[1]); @@ -1727,7 +1880,7 @@ TEST_F(PathBuilderKeyRolloverTest, TestDuplicateAsyncIntermediates) { // After the third batch of async results, path builder will attempt: // target <- newintermediate <- newroot which will succeed. EXPECT_TRUE(result.paths[1]->IsValid()); - const auto& path1 = *result.paths[1]; + const auto &path1 = *result.paths[1]; ASSERT_EQ(3U, path1.certs.size()); EXPECT_EQ(target_, path1.certs[0]); EXPECT_EQ(newintermediate_, path1.certs[1]); @@ -1751,15 +1904,17 @@ class PathBuilderSimpleChainTest : public ::testing::Test { // Runs the path builder for the target certificate while |distrusted_cert| is // blocked, and |delegate| if non-null. CertPathBuilder::Result RunPathBuilder( - const std::shared_ptr<const ParsedCertificate>& distrusted_cert, - CertPathBuilderDelegate* optional_delegate) { + const std::shared_ptr<const ParsedCertificate> &distrusted_cert, + CertPathBuilderDelegate *optional_delegate) { // Set up the trust store such that |distrusted_cert| is blocked, and // the root is trusted (except if it was |distrusted_cert|). TrustStoreInMemory trust_store; - if (distrusted_cert != test_.chain.back()) + if (distrusted_cert != test_.chain.back()) { trust_store.AddTrustAnchor(test_.chain.back()); - if (distrusted_cert) + } + if (distrusted_cert) { trust_store.AddDistrustedCertificateForTest(distrusted_cert); + } // Add the single intermediate. CertIssuerSourceStatic intermediates; @@ -1767,7 +1922,7 @@ class PathBuilderSimpleChainTest : public ::testing::Test { SimplePathBuilderDelegate default_delegate( 1024, SimplePathBuilderDelegate::DigestPolicy::kWeakAllowSha1); - CertPathBuilderDelegate* delegate = + CertPathBuilderDelegate *delegate = optional_delegate ? optional_delegate : &default_delegate; const InitialExplicitPolicy initial_explicit_policy = @@ -1801,7 +1956,7 @@ class PathBuilderDistrustTest : public PathBuilderSimpleChainTest { // Runs the path builder for the target certificate while |distrusted_cert| is // blocked. CertPathBuilder::Result RunPathBuilderWithDistrustedCert( - const std::shared_ptr<const ParsedCertificate>& distrusted_cert) { + const std::shared_ptr<const ParsedCertificate> &distrusted_cert) { return RunPathBuilder(distrusted_cert, nullptr); } }; @@ -1815,10 +1970,11 @@ TEST_F(PathBuilderDistrustTest, TargetIntermediateRoot) { { ASSERT_TRUE(result.HasValidPath()); // The built path should be identical the the one read from disk. - const auto& path = *result.GetBestValidPath(); + const auto &path = *result.GetBestValidPath(); ASSERT_EQ(test_.chain.size(), path.certs.size()); - for (size_t i = 0; i < test_.chain.size(); ++i) + for (size_t i = 0; i < test_.chain.size(); ++i) { EXPECT_EQ(test_.chain[i], path.certs[i]); + } } // Try path building when only the target is blocked - should fail. @@ -1826,7 +1982,7 @@ TEST_F(PathBuilderDistrustTest, TargetIntermediateRoot) { { EXPECT_FALSE(result.HasValidPath()); ASSERT_LT(result.best_result_index, result.paths.size()); - const auto& best_path = result.paths[result.best_result_index]; + const auto &best_path = result.paths[result.best_result_index]; // The built chain has length 1 since path building stopped once // it encountered the blocked certificate (target). @@ -1841,7 +1997,7 @@ TEST_F(PathBuilderDistrustTest, TargetIntermediateRoot) { { EXPECT_FALSE(result.HasValidPath()); ASSERT_LT(result.best_result_index, result.paths.size()); - const auto& best_path = result.paths[result.best_result_index]; + const auto &best_path = result.paths[result.best_result_index]; // The built chain has length 2 since path building stopped once // it encountered the blocked certificate (intermediate). @@ -1857,7 +2013,7 @@ TEST_F(PathBuilderDistrustTest, TargetIntermediateRoot) { { EXPECT_FALSE(result.HasValidPath()); ASSERT_LT(result.best_result_index, result.paths.size()); - const auto& best_path = result.paths[result.best_result_index]; + const auto &best_path = result.paths[result.best_result_index]; // The built chain has length 3 since path building stopped once // it encountered the blocked certificate (root). @@ -1875,25 +2031,6 @@ TEST_F(PathBuilderDistrustTest, TargetIntermediateRoot) { class PathBuilderCheckPathAfterVerificationTest : public PathBuilderSimpleChainTest {}; -class CertPathBuilderDelegateBase : public SimplePathBuilderDelegate { - public: - CertPathBuilderDelegateBase() - : SimplePathBuilderDelegate( - 1024, - SimplePathBuilderDelegate::DigestPolicy::kWeakAllowSha1) {} - void CheckPathAfterVerification(const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path) override { - ADD_FAILURE() << "Tests must override this"; - } -}; - -class MockPathBuilderDelegate : public CertPathBuilderDelegateBase { - public: - MOCK_METHOD2(CheckPathAfterVerification, - void(const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path)); -}; - TEST_F(PathBuilderCheckPathAfterVerificationTest, NoOpToValidPath) { StrictMock<MockPathBuilderDelegate> delegate; // Just verify that the hook is called. @@ -1907,8 +2044,8 @@ DEFINE_CERT_ERROR_ID(kWarningFromDelegate, "Warning from delegate"); class AddWarningPathBuilderDelegate : public CertPathBuilderDelegateBase { public: - void CheckPathAfterVerification(const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path) override { + void CheckPathAfterVerification(const CertPathBuilder &path_builder, + CertPathBuilderResultPath *path) override { path->errors.GetErrorsForCert(1)->AddWarning(kWarningFromDelegate, nullptr); } }; @@ -1919,18 +2056,19 @@ TEST_F(PathBuilderCheckPathAfterVerificationTest, AddsWarningToValidPath) { ASSERT_TRUE(result.HasValidPath()); // A warning should have been added to certificate at index 1 in the path. - const CertErrors* cert1_errors = + const CertErrors *cert1_errors = result.GetBestValidPath()->errors.GetErrorsForCert(1); ASSERT_TRUE(cert1_errors); - EXPECT_TRUE(cert1_errors->ContainsError(kWarningFromDelegate)); + EXPECT_TRUE(cert1_errors->ContainsErrorWithSeverity( + kWarningFromDelegate, CertError::SEVERITY_WARNING)); } DEFINE_CERT_ERROR_ID(kErrorFromDelegate, "Error from delegate"); class AddErrorPathBuilderDelegate : public CertPathBuilderDelegateBase { public: - void CheckPathAfterVerification(const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path) override { + void CheckPathAfterVerification(const CertPathBuilder &path_builder, + CertPathBuilderResultPath *path) override { path->errors.GetErrorsForCert(2)->AddError(kErrorFromDelegate, nullptr); } }; @@ -1943,12 +2081,12 @@ TEST_F(PathBuilderCheckPathAfterVerificationTest, AddsErrorToValidPath) { ASSERT_FALSE(result.HasValidPath()); ASSERT_LT(result.best_result_index, result.paths.size()); - const CertPathBuilderResultPath* failed_path = + const CertPathBuilderResultPath *failed_path = result.paths[result.best_result_index].get(); ASSERT_TRUE(failed_path); // An error should have been added to certificate at index 2 in the path. - const CertErrors* cert2_errors = failed_path->errors.GetErrorsForCert(2); + const CertErrors *cert2_errors = failed_path->errors.GetErrorsForCert(2); ASSERT_TRUE(cert2_errors); EXPECT_TRUE(cert2_errors->ContainsError(kErrorFromDelegate)); } @@ -1969,8 +2107,8 @@ struct DelegateData : public CertPathBuilderDelegateData { class SetsDelegateDataPathBuilderDelegate : public CertPathBuilderDelegateBase { public: - void CheckPathAfterVerification(const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path) override { + void CheckPathAfterVerification(const CertPathBuilder &path_builder, + CertPathBuilderResultPath *path) override { path->delegate_data = std::make_unique<DelegateData>(); } }; @@ -1980,7 +2118,7 @@ TEST_F(PathBuilderCheckPathAfterVerificationTest, SetsDelegateData) { CertPathBuilder::Result result = RunPathBuilder(nullptr, &delegate); ASSERT_TRUE(result.HasValidPath()); - DelegateData* data = reinterpret_cast<DelegateData*>( + DelegateData *data = reinterpret_cast<DelegateData *>( result.GetBestValidPath()->delegate_data.get()); EXPECT_EQ(0xB33F, data->value); @@ -2261,7 +2399,7 @@ TEST(PathBuilderPrioritizationTest, TrustAndKeyIdPrioritization) { target, &trust_store, &delegate, verify_time, KeyPurpose::ANY_EKU, InitialExplicitPolicy::kFalse, {der::Input(kAnyPolicyOid)}, InitialPolicyMappingInhibit::kFalse, InitialAnyPolicyInhibit::kFalse); - path_builder.SetExploreAllPaths(true); + path_builder.SetValidPathLimit(0); CertPathBuilder::Result result = path_builder.Run(); EXPECT_TRUE(result.HasValidPath()); @@ -2437,7 +2575,7 @@ TEST(PathBuilderPrioritizationTest, SelfIssuedPrioritization) { target, &trust_store, &delegate, verify_time, KeyPurpose::ANY_EKU, InitialExplicitPolicy::kFalse, {der::Input(kAnyPolicyOid)}, InitialPolicyMappingInhibit::kFalse, InitialAnyPolicyInhibit::kFalse); - path_builder.SetExploreAllPaths(true); + path_builder.SetValidPathLimit(0); CertPathBuilder::Result result = path_builder.Run(); EXPECT_TRUE(result.HasValidPath()); @@ -2460,4 +2598,4 @@ TEST(PathBuilderPrioritizationTest, SelfIssuedPrioritization) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/path_builder_verify_certificate_chain_unittest.cc b/src/pki/path_builder_verify_certificate_chain_unittest.cc index b2cac64..a5aeef7 100644 --- a/src/pki/path_builder_verify_certificate_chain_unittest.cc +++ b/src/pki/path_builder_verify_certificate_chain_unittest.cc @@ -15,8 +15,8 @@ namespace { class PathBuilderTestDelegate { public: - static void Verify(const VerifyCertChainTest& test, - const std::string& test_file_path) { + static void Verify(const VerifyCertChainTest &test, + const std::string &test_file_path) { SimplePathBuilderDelegate path_builder_delegate(1024, test.digest_policy); ASSERT_FALSE(test.chain.empty()); @@ -24,8 +24,9 @@ class PathBuilderTestDelegate { trust_store.AddCertificate(test.chain.back(), test.last_cert_trust); CertIssuerSourceStatic intermediate_cert_issuer_source; - for (size_t i = 1; i < test.chain.size(); ++i) + for (size_t i = 1; i < test.chain.size(); ++i) { intermediate_cert_issuer_source.AddCert(test.chain[i]); + } // First cert in the |chain| is the target. CertPathBuilder path_builder( @@ -52,4 +53,4 @@ INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, VerifyCertificateChainSingleRootTest, PathBuilderTestDelegate); -} // namespace net +} // namespace bssl diff --git a/src/pki/pem.cc b/src/pki/pem.cc index 1c12448..63d7c45 100644 --- a/src/pki/pem.cc +++ b/src/pki/pem.cc @@ -2,14 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "string_util.h" #include "pem.h" +#include "string_util.h" -#include "fillins/fillins_base64.h" #include <string_view> -#include "fillins/fillins_string_util.h" - namespace { constexpr std::string_view kPEMHeaderBeginBlock = "-----BEGIN "; @@ -29,8 +26,7 @@ struct PEMTokenizer::PEMType { }; PEMTokenizer::PEMTokenizer( - std::string_view str, - const std::vector<std::string>& allowed_block_types) { + std::string_view str, const std::vector<std::string> &allowed_block_types) { Init(str, allowed_block_types); } @@ -40,14 +36,16 @@ bool PEMTokenizer::GetNext() { while (pos_ != std::string_view::npos) { // Scan for the beginning of the next PEM encoded block. pos_ = str_.find(kPEMHeaderBeginBlock, pos_); - if (pos_ == std::string_view::npos) + if (pos_ == std::string_view::npos) { return false; // No more PEM blocks + } std::vector<PEMType>::const_iterator it; // Check to see if it is of an acceptable block type. for (it = block_types_.begin(); it != block_types_.end(); ++it) { - if (!bssl::string_util::StartsWith(str_.substr(pos_), it->header)) + if (!bssl::string_util::StartsWith(str_.substr(pos_), it->header)) { continue; + } // Look for a footer matching the header. If none is found, then all // data following this point is invalid and should not be parsed. @@ -62,9 +60,10 @@ bool PEMTokenizer::GetNext() { pos_ = footer_pos + it->footer.size(); block_type_ = it->type; - std::string_view encoded = str_.substr(data_begin, footer_pos - data_begin); - if (!fillins::Base64Decode(fillins::CollapseWhitespaceASCII(encoded, true), - &data_)) { + std::string_view encoded = + str_.substr(data_begin, footer_pos - data_begin); + if (!string_util::Base64Decode( + string_util::CollapseWhitespaceASCII(encoded, true), &data_)) { // The most likely cause for a decode failure is a datatype that // includes PEM headers, which are not supported. break; @@ -77,21 +76,22 @@ bool PEMTokenizer::GetNext() { // continue the search. Otherwise, |pos_| has been updated to the most // appropriate search position to continue searching from and should not // be adjusted. - if (it == block_types_.end()) + if (it == block_types_.end()) { pos_ += kPEMHeaderBeginBlock.size(); + } } return false; } void PEMTokenizer::Init(std::string_view str, - const std::vector<std::string>& allowed_block_types) { + const std::vector<std::string> &allowed_block_types) { str_ = str; pos_ = 0; // Construct PEM header/footer strings for all the accepted types, to // reduce parsing later. - for (const auto& allowed_block_type : allowed_block_types) { + for (const auto &allowed_block_type : allowed_block_types) { PEMType allowed_type; allowed_type.type = allowed_block_type; allowed_type.header = kPEMHeaderBeginBlock; @@ -104,9 +104,9 @@ void PEMTokenizer::Init(std::string_view str, } } -std::string PEMEncode(std::string_view data, const std::string& type) { +std::string PEMEncode(std::string_view data, const std::string &type) { std::string b64_encoded; - fillins::Base64Encode(data, &b64_encoded); + string_util::Base64Encode(data, &b64_encoded); // Divide the Base-64 encoded data into 64-character chunks, as per // 4.3.2.4 of RFC 1421. @@ -140,4 +140,4 @@ std::string PEMEncode(std::string_view data, const std::string& type) { return pem_encoded; } -} // namespace net +} // namespace bssl diff --git a/src/pki/pem.h b/src/pki/pem.h index 6bd1e41..1fd28fb 100644 --- a/src/pki/pem.h +++ b/src/pki/pem.h @@ -5,15 +5,13 @@ #ifndef BSSL_PKI_PEM_H_ #define BSSL_PKI_PEM_H_ -#include "fillins/openssl_util.h" #include <stddef.h> #include <string> -#include <vector> - #include <string_view> +#include <vector> - +#include <openssl/base.h> namespace bssl { @@ -27,10 +25,10 @@ class OPENSSL_EXPORT PEMTokenizer { // instances of PEM encoded blocks that are of the |allowed_block_types|. // |str| must remain valid for the duration of the PEMTokenizer. PEMTokenizer(std::string_view str, - const std::vector<std::string>& allowed_block_types); + const std::vector<std::string> &allowed_block_types); - PEMTokenizer(const PEMTokenizer&) = delete; - PEMTokenizer& operator=(const PEMTokenizer&) = delete; + PEMTokenizer(const PEMTokenizer &) = delete; + PEMTokenizer &operator=(const PEMTokenizer &) = delete; ~PEMTokenizer(); @@ -42,16 +40,16 @@ class OPENSSL_EXPORT PEMTokenizer { // Returns the PEM block type (eg: CERTIFICATE) of the last successfully // decoded PEM block. // GetNext() must have returned true before calling this method. - const std::string& block_type() const { return block_type_; } + const std::string &block_type() const { return block_type_; } // Returns the raw, Base64-decoded data of the last successfully decoded // PEM block. // GetNext() must have returned true before calling this method. - const std::string& data() const { return data_; } + const std::string &data() const { return data_; } private: void Init(std::string_view str, - const std::vector<std::string>& allowed_block_types); + const std::vector<std::string> &allowed_block_types); // A simple cache of the allowed PEM header and footer for a given PEM // block type, so that it is only computed once. @@ -81,8 +79,8 @@ class OPENSSL_EXPORT PEMTokenizer { // Encodes |data| in the encapsulated message format described in RFC 1421, // with |type| as the PEM block type (eg: CERTIFICATE). OPENSSL_EXPORT std::string PEMEncode(std::string_view data, - const std::string& type); + const std::string &type); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_PEM_H_ diff --git a/src/pki/pem_unittest.cc b/src/pki/pem_unittest.cc index 12e05ec..a7f9eda 100644 --- a/src/pki/pem_unittest.cc +++ b/src/pki/pem_unittest.cc @@ -202,4 +202,4 @@ TEST(PEMEncodeTest, Wrapping) { "WRAPPED LINE")); } -} // namespace net +} // namespace bssl diff --git a/src/pki/revocation_util.cc b/src/pki/revocation_util.cc index 801a545..80779d7 100644 --- a/src/pki/revocation_util.cc +++ b/src/pki/revocation_util.cc @@ -16,8 +16,8 @@ constexpr int64_t kMaxValidTime = 253402300799; // 9999-12-31 23:59:59 UTC } // namespace -bool CheckRevocationDateValid(const der::GeneralizedTime& this_update, - const der::GeneralizedTime* next_update, +bool CheckRevocationDateValid(const der::GeneralizedTime &this_update, + const der::GeneralizedTime *next_update, int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds) { if (verify_time_epoch_seconds > kMaxValidTime || @@ -56,4 +56,4 @@ bool CheckRevocationDateValid(const der::GeneralizedTime& this_update, return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/revocation_util.h b/src/pki/revocation_util.h index 33c12ef..5b20f4c 100644 --- a/src/pki/revocation_util.h +++ b/src/pki/revocation_util.h @@ -5,11 +5,10 @@ #ifndef BSSL_PKI_REVOCATION_UTIL_H_ #define BSSL_PKI_REVOCATION_UTIL_H_ -#include "fillins/openssl_util.h" - +#include <cstdint> #include <optional> -#include <cstdint> +#include <openssl/base.h> namespace bssl { @@ -23,11 +22,10 @@ struct GeneralizedTime; // differently, returns true if |this_update <= verify_time < next_update|, and // |this_update >= verify_time - max_age|. [[nodiscard]] OPENSSL_EXPORT bool CheckRevocationDateValid( - const der::GeneralizedTime& this_update, - const der::GeneralizedTime* next_update, - int64_t verify_time_epoch_seconds, + const der::GeneralizedTime &this_update, + const der::GeneralizedTime *next_update, int64_t verify_time_epoch_seconds, std::optional<int64_t> max_age_seconds); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_REVOCATION_UTIL_H_ diff --git a/src/pki/signature_algorithm.cc b/src/pki/signature_algorithm.cc index e66ef12..73d8bc1 100644 --- a/src/pki/signature_algorithm.cc +++ b/src/pki/signature_algorithm.cc @@ -4,11 +4,12 @@ #include "signature_algorithm.h" +#include <openssl/bytestring.h> +#include <openssl/digest.h> + #include "input.h" #include "parse_values.h" #include "parser.h" -#include <openssl/bytestring.h> -#include <openssl/digest.h> namespace bssl { @@ -122,28 +123,25 @@ const uint8_t kOidRsaSsaPss[] = {0x2a, 0x86, 0x48, 0x86, 0xf7, const uint8_t kOidMgf1[] = {0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x08}; -// Returns true if |input| is empty. -[[nodiscard]] bool IsEmpty(const der::Input& input) { - return input.Length() == 0; -} - // Returns true if the entirety of the input is a NULL value. -[[nodiscard]] bool IsNull(const der::Input& input) { +[[nodiscard]] bool IsNull(der::Input input) { der::Parser parser(input); der::Input null_value; - if (!parser.ReadTag(der::kNull, &null_value)) + if (!parser.ReadTag(CBS_ASN1_NULL, &null_value)) { return false; + } // NULL values are TLV encoded; the value is expected to be empty. - if (!IsEmpty(null_value)) + if (!null_value.empty()) { return false; + } // By definition of this function, the entire input must be a NULL. return !parser.HasMore(); } -[[nodiscard]] bool IsNullOrEmpty(const der::Input& input) { - return IsNull(input) || IsEmpty(input); +[[nodiscard]] bool IsNullOrEmpty(der::Input input) { + return IsNull(input) || input.empty(); } // Parses a MaskGenAlgorithm as defined by RFC 5912: @@ -172,15 +170,17 @@ const uint8_t kOidMgf1[] = {0x2a, 0x86, 0x48, 0x86, 0xf7, // the only function supported is MGF1, as that is the singular mask gen // function defined by RFC 4055 / RFC 5912. [[nodiscard]] bool ParseMaskGenAlgorithm(const der::Input input, - DigestAlgorithm* mgf1_hash) { + DigestAlgorithm *mgf1_hash) { der::Input oid; der::Input params; - if (!ParseAlgorithmIdentifier(input, &oid, ¶ms)) + if (!ParseAlgorithmIdentifier(input, &oid, ¶ms)) { return false; + } // MGF1 is the only supported mask generation algorithm. - if (oid != der::Input(kOidMgf1)) + if (oid != der::Input(kOidMgf1)) { return false; + } return ParseHashAlgorithm(params, mgf1_hash); } @@ -211,7 +211,7 @@ const uint8_t kOidMgf1[] = {0x2a, 0x86, 0x48, 0x86, 0xf7, // Note also that DER encoding (ITU-T X.690 section 11.5) prohibits // specifying default values explicitly. The parameter should instead be // omitted to indicate a default value. -std::optional<SignatureAlgorithm> ParseRsaPss(const der::Input& params) { +std::optional<SignatureAlgorithm> ParseRsaPss(der::Input params) { der::Parser parser(params); der::Parser params_parser; if (!parser.ReadSequence(¶ms_parser)) { @@ -238,12 +238,15 @@ std::optional<SignatureAlgorithm> ParseRsaPss(const der::Input& params) { DigestAlgorithm hash, mgf1_hash; der::Parser salt_length_parser; uint64_t salt_length; - if (!params_parser.ReadTag(der::ContextSpecificConstructed(0), &field) || + if (!params_parser.ReadTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0, &field) || !ParseHashAlgorithm(field, &hash) || - !params_parser.ReadTag(der::ContextSpecificConstructed(1), &field) || + !params_parser.ReadTag( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 1, &field) || !ParseMaskGenAlgorithm(field, &mgf1_hash) || - !params_parser.ReadConstructed(der::ContextSpecificConstructed(2), - &salt_length_parser) || + !params_parser.ReadConstructed( + CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 2, + &salt_length_parser) || !salt_length_parser.ReadUint64(&salt_length) || salt_length_parser.HasMore() || params_parser.HasMore()) { return std::nullopt; @@ -269,23 +272,26 @@ std::optional<SignatureAlgorithm> ParseRsaPss(const der::Input& params) { } // namespace -[[nodiscard]] bool ParseAlgorithmIdentifier(const der::Input& input, - der::Input* algorithm, - der::Input* parameters) { +[[nodiscard]] bool ParseAlgorithmIdentifier(der::Input input, + der::Input *algorithm, + der::Input *parameters) { der::Parser parser(input); der::Parser algorithm_identifier_parser; - if (!parser.ReadSequence(&algorithm_identifier_parser)) + if (!parser.ReadSequence(&algorithm_identifier_parser)) { return false; + } // There shouldn't be anything after the sequence. This is by definition, // as the input to this function is expected to be a single // AlgorithmIdentifier. - if (parser.HasMore()) + if (parser.HasMore()) { return false; + } - if (!algorithm_identifier_parser.ReadTag(der::kOid, algorithm)) + if (!algorithm_identifier_parser.ReadTag(CBS_ASN1_OBJECT, algorithm)) { return false; + } // Read the optional parameters to a der::Input. The parameters can be at // most one TLV (for instance NULL or a sequence). @@ -301,11 +307,10 @@ std::optional<SignatureAlgorithm> ParseRsaPss(const der::Input& params) { return !algorithm_identifier_parser.HasMore(); } -[[nodiscard]] bool ParseHashAlgorithm(const der::Input& input, - DigestAlgorithm* out) { +[[nodiscard]] bool ParseHashAlgorithm(der::Input input, DigestAlgorithm *out) { CBS cbs; - CBS_init(&cbs, input.UnsafeData(), input.Length()); - const EVP_MD* md = EVP_parse_digest_algorithm(&cbs); + CBS_init(&cbs, input.data(), input.size()); + const EVP_MD *md = EVP_parse_digest_algorithm(&cbs); if (md == EVP_sha1()) { *out = DigestAlgorithm::Sha1; @@ -325,7 +330,7 @@ std::optional<SignatureAlgorithm> ParseRsaPss(const der::Input& params) { } std::optional<SignatureAlgorithm> ParseSignatureAlgorithm( - const der::Input& algorithm_identifier) { + der::Input algorithm_identifier) { der::Input oid; der::Input params; if (!ParseAlgorithmIdentifier(algorithm_identifier, &oid, ¶ms)) { @@ -358,16 +363,16 @@ std::optional<SignatureAlgorithm> ParseSignatureAlgorithm( // RFC 5912 requires that the parameters for ECDSA algorithms be absent // ("PARAMS TYPE NULL ARE absent"): - if (oid == der::Input(kOidEcdsaWithSha1) && IsEmpty(params)) { + if (oid == der::Input(kOidEcdsaWithSha1) && params.empty()) { return SignatureAlgorithm::kEcdsaSha1; } - if (oid == der::Input(kOidEcdsaWithSha256) && IsEmpty(params)) { + if (oid == der::Input(kOidEcdsaWithSha256) && params.empty()) { return SignatureAlgorithm::kEcdsaSha256; } - if (oid == der::Input(kOidEcdsaWithSha384) && IsEmpty(params)) { + if (oid == der::Input(kOidEcdsaWithSha384) && params.empty()) { return SignatureAlgorithm::kEcdsaSha384; } - if (oid == der::Input(kOidEcdsaWithSha512) && IsEmpty(params)) { + if (oid == der::Input(kOidEcdsaWithSha512) && params.empty()) { return SignatureAlgorithm::kEcdsaSha512; } @@ -417,4 +422,4 @@ std::optional<DigestAlgorithm> GetTlsServerEndpointDigestAlgorithm( return std::nullopt; } -} // namespace net +} // namespace bssl diff --git a/src/pki/signature_algorithm.h b/src/pki/signature_algorithm.h index bf7207f..2d65be2 100644 --- a/src/pki/signature_algorithm.h +++ b/src/pki/signature_algorithm.h @@ -5,11 +5,11 @@ #ifndef BSSL_PKI_SIGNATURE_ALGORITHM_H_ #define BSSL_PKI_SIGNATURE_ALGORITHM_H_ -#include "fillins/openssl_util.h" #include <stdint.h> - #include <optional> + +#include <openssl/base.h> #include <openssl/evp.h> namespace bssl { @@ -53,9 +53,8 @@ enum class SignatureAlgorithm { // AlgorithmIdentifier ::= SEQUENCE { // algorithm OBJECT IDENTIFIER, // parameters ANY DEFINED BY algorithm OPTIONAL } -[[nodiscard]] OPENSSL_EXPORT bool ParseAlgorithmIdentifier(const der::Input& input, - der::Input* algorithm, - der::Input* parameters); +[[nodiscard]] OPENSSL_EXPORT bool ParseAlgorithmIdentifier( + der::Input input, der::Input *algorithm, der::Input *parameters); // Parses a HashAlgorithm as defined by RFC 5912: // @@ -69,20 +68,19 @@ enum class SignatureAlgorithm { // { IDENTIFIER id-sha384 PARAMS TYPE NULL ARE preferredPresent } | // { IDENTIFIER id-sha512 PARAMS TYPE NULL ARE preferredPresent } // } -[[nodiscard]] bool ParseHashAlgorithm(const der::Input& input, - DigestAlgorithm* out); +[[nodiscard]] bool ParseHashAlgorithm(der::Input input, DigestAlgorithm *out); // Parses an AlgorithmIdentifier into a signature algorithm and returns it, or // returns `std::nullopt` if `algorithm_identifer` either cannot be parsed or // is not a recognized signature algorithm. OPENSSL_EXPORT std::optional<SignatureAlgorithm> ParseSignatureAlgorithm( - const der::Input& algorithm_identifier); + der::Input algorithm_identifier); // Returns the hash to be used with the tls-server-end-point channel binding // (RFC 5929) or `std::nullopt`, if not supported for this signature algorithm. -OPENSSL_EXPORT std::optional<DigestAlgorithm> GetTlsServerEndpointDigestAlgorithm( - SignatureAlgorithm alg); +OPENSSL_EXPORT std::optional<DigestAlgorithm> +GetTlsServerEndpointDigestAlgorithm(SignatureAlgorithm alg); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_SIGNATURE_ALGORITHM_H_ diff --git a/src/pki/signature_algorithm_unittest.cc b/src/pki/signature_algorithm_unittest.cc index 9673ab2..dc0bfa6 100644 --- a/src/pki/signature_algorithm_unittest.cc +++ b/src/pki/signature_algorithm_unittest.cc @@ -6,10 +6,9 @@ #include <memory> -#include "fillins/file_util.h" +#include <gtest/gtest.h> #include "input.h" #include "parser.h" -#include <gtest/gtest.h> namespace bssl { @@ -1154,7 +1153,7 @@ TEST(SignatureAlgorithmTest, ParseRsaPss) { 0x08, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0xa2, 0x03, 0x02, 0x01, 0x40}, SignatureAlgorithm::kRsaPssSha512}}; - for (const auto& t : kValidTests) { + for (const auto &t : kValidTests) { EXPECT_EQ(ParseSignatureAlgorithm(der::Input(t.data)), t.expected); } @@ -1344,7 +1343,7 @@ TEST(SignatureAlgorithmTest, ParseRsaPss) { 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, 0x00, 0xa2, 0x03, 0x02, 0x01, 0x41}}, }; - for (const auto& t : kInvalidTests) { + for (const auto &t : kInvalidTests) { EXPECT_FALSE(ParseSignatureAlgorithm(der::Input(t.data))); } } @@ -1449,4 +1448,4 @@ TEST(SignatureAlgorithmTest, ParseDerDsaWithSha256NoParams) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/signature_verify_cache.h b/src/pki/signature_verify_cache.h deleted file mode 100644 index f0d98cf..0000000 --- a/src/pki/signature_verify_cache.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_PKI_SIGNATURE_VERIFY_CACHE_H_ -#define BSSL_PKI_SIGNATURE_VERIFY_CACHE_H_ - -#include "fillins/openssl_util.h" -#include <string> - -namespace bssl { - -class OPENSSL_EXPORT SignatureVerifyCache { - public: - enum class Value { - kValid, // Cached as a valid signature result. - kInvalid, // Cached as an invalid signature result. - kUnknown, // Cache has no information. - }; - - virtual ~SignatureVerifyCache() = default; - - // This interface uses a const std::string reference instead of - // std::string_view because any implementation that may reasonably want to use - // std::unordered_map or similar can run into problems with std::hash before - // C++20. (https://en.cppreference.com/w/cpp/container/unordered_map/find) - - // |Store| is called to store the result of a verification for |key| as kValid - // or kInvalid after a signature check. - virtual void Store(const std::string& key, Value value) = 0; - - // |Check| is called to fetch a cached value for a verification for |key|. If - // the result is kValid, or kInvalid, signature checking is skipped and the - // corresponding cached result is used. If the result is kUnknown signature - // checking is performed and the corresponding result saved using |Store|. - virtual Value Check(const std::string& key) = 0; -}; - -} // namespace net - -#endif // BSSL_PKI_SIGNATURE_VERIFY_CACHE_H_ diff --git a/src/pki/simple_path_builder_delegate.cc b/src/pki/simple_path_builder_delegate.cc index cc173bf..822019b 100644 --- a/src/pki/simple_path_builder_delegate.cc +++ b/src/pki/simple_path_builder_delegate.cc @@ -4,11 +4,6 @@ #include "simple_path_builder_delegate.h" -#include "cert_error_params.h" -#include "cert_errors.h" -#include "signature_algorithm.h" -#include "signature_verify_cache.h" -#include "verify_signed_data.h" #include <openssl/bn.h> #include <openssl/bytestring.h> #include <openssl/digest.h> @@ -16,8 +11,14 @@ #include <openssl/ec_key.h> #include <openssl/evp.h> #include <openssl/nid.h> +#include <openssl/pki/signature_verify_cache.h> #include <openssl/rsa.h> +#include "cert_error_params.h" +#include "cert_errors.h" +#include "signature_algorithm.h" +#include "verify_signed_data.h" + namespace bssl { DEFINE_CERT_ERROR_ID(SimplePathBuilderDelegate::kRsaModulusTooSmall, @@ -42,28 +43,29 @@ bool IsAcceptableCurveForEcdsa(int curve_nid) { } // namespace SimplePathBuilderDelegate::SimplePathBuilderDelegate( - size_t min_rsa_modulus_length_bits, - DigestPolicy digest_policy) + size_t min_rsa_modulus_length_bits, DigestPolicy digest_policy) : min_rsa_modulus_length_bits_(min_rsa_modulus_length_bits), digest_policy_(digest_policy) {} void SimplePathBuilderDelegate::CheckPathAfterVerification( - const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path) { + const CertPathBuilder &path_builder, CertPathBuilderResultPath *path) { // Do nothing - consider all candidate paths valid. } -bool SimplePathBuilderDelegate::IsDeadlineExpired() { - return false; -} +bool SimplePathBuilderDelegate::IsDeadlineExpired() { return false; } + +bool SimplePathBuilderDelegate::IsDebugLogEnabled() { return false; } -SignatureVerifyCache* SimplePathBuilderDelegate::GetVerifyCache() { +bool SimplePathBuilderDelegate::AcceptPreCertificates() { return false; } + +void SimplePathBuilderDelegate::DebugLog(std::string_view msg) {} + +SignatureVerifyCache *SimplePathBuilderDelegate::GetVerifyCache() { return nullptr; } bool SimplePathBuilderDelegate::IsSignatureAlgorithmAcceptable( - SignatureAlgorithm algorithm, - CertErrors* errors) { + SignatureAlgorithm algorithm, CertErrors *errors) { switch (algorithm) { case SignatureAlgorithm::kRsaPkcs1Sha1: case SignatureAlgorithm::kEcdsaSha1: @@ -83,14 +85,15 @@ bool SimplePathBuilderDelegate::IsSignatureAlgorithmAcceptable( return false; } -bool SimplePathBuilderDelegate::IsPublicKeyAcceptable(EVP_PKEY* public_key, - CertErrors* errors) { +bool SimplePathBuilderDelegate::IsPublicKeyAcceptable(EVP_PKEY *public_key, + CertErrors *errors) { int pkey_id = EVP_PKEY_id(public_key); if (pkey_id == EVP_PKEY_RSA) { // Extract the modulus length from the key. - RSA* rsa = EVP_PKEY_get0_RSA(public_key); - if (!rsa) + RSA *rsa = EVP_PKEY_get0_RSA(public_key); + if (!rsa) { return false; + } unsigned int modulus_length_bits = RSA_bits(rsa); if (modulus_length_bits < min_rsa_modulus_length_bits_) { @@ -106,9 +109,10 @@ bool SimplePathBuilderDelegate::IsPublicKeyAcceptable(EVP_PKEY* public_key, if (pkey_id == EVP_PKEY_EC) { // Extract the curve name. - EC_KEY* ec = EVP_PKEY_get0_EC_KEY(public_key); - if (!ec) + EC_KEY *ec = EVP_PKEY_get0_EC_KEY(public_key); + if (!ec) { return false; // Unexpected. + } int curve_nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(ec)); if (!IsAcceptableCurveForEcdsa(curve_nid)) { @@ -123,4 +127,4 @@ bool SimplePathBuilderDelegate::IsPublicKeyAcceptable(EVP_PKEY* public_key, return false; } -} // namespace net +} // namespace bssl diff --git a/src/pki/simple_path_builder_delegate.h b/src/pki/simple_path_builder_delegate.h index ac22d45..6d95b0d 100644 --- a/src/pki/simple_path_builder_delegate.h +++ b/src/pki/simple_path_builder_delegate.h @@ -5,13 +5,13 @@ #ifndef BSSL_PKI_SIMPLE_PATH_BUILDER_DELEGATE_H_ #define BSSL_PKI_SIMPLE_PATH_BUILDER_DELEGATE_H_ -#include "fillins/openssl_util.h" #include <stddef.h> +#include <openssl/base.h> +#include <openssl/pki/signature_verify_cache.h> #include "path_builder.h" #include "signature_algorithm.h" -#include "signature_verify_cache.h" namespace bssl { @@ -26,7 +26,8 @@ class CertErrors; // * If the |digest_policy| was set to kAllowSha1, then SHA1 is // additionally accepted. // * EC named curve can be P-256, P-384, P-521. -class OPENSSL_EXPORT SimplePathBuilderDelegate : public CertPathBuilderDelegate { +class OPENSSL_EXPORT SimplePathBuilderDelegate + : public CertPathBuilderDelegate { public: enum class DigestPolicy { // Accepts digests of SHA256, SHA348 or SHA512 @@ -48,26 +49,35 @@ class OPENSSL_EXPORT SimplePathBuilderDelegate : public CertPathBuilderDelegate // Accepts RSA PKCS#1, RSASSA-PSS or ECDA using any of the SHA* digests // (including SHA1). bool IsSignatureAlgorithmAcceptable(SignatureAlgorithm signature_algorithm, - CertErrors* errors) override; + CertErrors *errors) override; // Requires RSA keys be >= |min_rsa_modulus_length_bits_|. - bool IsPublicKeyAcceptable(EVP_PKEY* public_key, CertErrors* errors) override; + bool IsPublicKeyAcceptable(EVP_PKEY *public_key, CertErrors *errors) override; // No-op implementation. - void CheckPathAfterVerification(const CertPathBuilder& path_builder, - CertPathBuilderResultPath* path) override; + void CheckPathAfterVerification(const CertPathBuilder &path_builder, + CertPathBuilderResultPath *path) override; // No-op implementation. bool IsDeadlineExpired() override; // No-op implementation. - SignatureVerifyCache* GetVerifyCache() override; + SignatureVerifyCache *GetVerifyCache() override; + + // No-op implementation. + bool IsDebugLogEnabled() override; + + // No-op implementation. + void DebugLog(std::string_view msg) override; + + // No-op implementation. + bool AcceptPreCertificates() override; private: const size_t min_rsa_modulus_length_bits_; const DigestPolicy digest_policy_; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_SIMPLE_PATH_BUILDER_DELEGATE_H_ diff --git a/src/pki/simple_path_builder_delegate_unittest.cc b/src/pki/simple_path_builder_delegate_unittest.cc index 7b6206c..f0131fa 100644 --- a/src/pki/simple_path_builder_delegate_unittest.cc +++ b/src/pki/simple_path_builder_delegate_unittest.cc @@ -6,24 +6,24 @@ #include <memory> #include <set> +#include <gtest/gtest.h> +#include <openssl/nid.h> #include "cert_errors.h" -#include "signature_algorithm.h" -#include "test_helpers.h" -#include "verify_signed_data.h" #include "input.h" #include "parse_values.h" #include "parser.h" -#include <gtest/gtest.h> -#include <openssl/nid.h> +#include "signature_algorithm.h" +#include "test_helpers.h" +#include "verify_signed_data.h" namespace bssl { namespace { // Reads the public key and algorithm from the test data at |file_name|. -void ReadTestCase(const char* file_name, - SignatureAlgorithm* signature_algorithm, - bssl::UniquePtr<EVP_PKEY>* public_key) { +void ReadTestCase(const char *file_name, + SignatureAlgorithm *signature_algorithm, + bssl::UniquePtr<EVP_PKEY> *public_key) { std::string path = std::string("testdata/verify_signed_data_unittest/") + file_name; @@ -46,17 +46,16 @@ void ReadTestCase(const char* file_name, } class SimplePathBuilderDelegate1024SuccessTest - : public ::testing::TestWithParam<const char*> {}; + : public ::testing::TestWithParam<const char *> {}; -const char* kSuccess1024Filenames[] = { +const char *kSuccess1024Filenames[] = { "rsa-pkcs1-sha1.pem", "rsa-pkcs1-sha256.pem", "rsa2048-pkcs1-sha512.pem", "ecdsa-secp384r1-sha256.pem", "ecdsa-prime256v1-sha512.pem", "rsa-pss-sha256.pem", "ecdsa-secp384r1-sha256.pem", "ecdsa-prime256v1-sha512.pem", }; -INSTANTIATE_TEST_SUITE_P(All, - SimplePathBuilderDelegate1024SuccessTest, +INSTANTIATE_TEST_SUITE_P(All, SimplePathBuilderDelegate1024SuccessTest, ::testing::ValuesIn(kSuccess1024Filenames)); TEST_P(SimplePathBuilderDelegate1024SuccessTest, IsAcceptableSignatureAndKey) { @@ -77,13 +76,12 @@ TEST_P(SimplePathBuilderDelegate1024SuccessTest, IsAcceptableSignatureAndKey) { } class SimplePathBuilderDelegate2048FailTest - : public ::testing::TestWithParam<const char*> {}; + : public ::testing::TestWithParam<const char *> {}; -const char* kFail2048Filenames[] = {"rsa-pkcs1-sha1.pem", +const char *kFail2048Filenames[] = {"rsa-pkcs1-sha1.pem", "rsa-pkcs1-sha256.pem"}; -INSTANTIATE_TEST_SUITE_P(All, - SimplePathBuilderDelegate2048FailTest, +INSTANTIATE_TEST_SUITE_P(All, SimplePathBuilderDelegate2048FailTest, ::testing::ValuesIn(kFail2048Filenames)); TEST_P(SimplePathBuilderDelegate2048FailTest, RsaKeySmallerThan2048) { @@ -105,4 +103,4 @@ TEST_P(SimplePathBuilderDelegate2048FailTest, RsaKeySmallerThan2048) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/string_util.cc b/src/pki/string_util.cc index 5e97eb5..423cd76 100644 --- a/src/pki/string_util.cc +++ b/src/pki/string_util.cc @@ -9,6 +9,7 @@ #include <sstream> #include <string> +#include <openssl/base64.h> #include <openssl/mem.h> namespace bssl::string_util { @@ -39,8 +40,7 @@ bool StartsWithNoCase(std::string_view str, std::string_view prefix) { IsEqualNoCase(prefix, str.substr(0, prefix.size())); } -std::string FindAndReplace(std::string_view str, - std::string_view find, +std::string FindAndReplace(std::string_view str, std::string_view find, std::string_view replace) { std::string ret; @@ -71,11 +71,11 @@ bool StartsWith(std::string_view str, std::string_view prefix) { return prefix.size() <= str.size() && prefix == str.substr(0, prefix.size()); } -std::string HexEncode(const uint8_t* data, size_t length) { +std::string HexEncode(Span<const uint8_t> data) { std::ostringstream out; - for (size_t i = 0; i < length; i++) { + for (uint8_t b : data) { out << std::hex << std::setfill('0') << std::setw(2) << std::uppercase - << int{data[i]}; + << int{b}; } return out.str(); } @@ -114,4 +114,80 @@ std::vector<std::string_view> SplitString(std::string_view str, return out; } +static bool IsUnicodeWhitespace(char c) { + return c == 9 || c == 10 || c == 11 || c == 12 || c == 13 || c == ' '; +} + +std::string CollapseWhitespaceASCII(std::string_view text, + bool trim_sequences_with_line_breaks) { + std::string result; + result.resize(text.size()); + + // Set flags to pretend we're already in a trimmed whitespace sequence, so we + // will trim any leading whitespace. + bool in_whitespace = true; + bool already_trimmed = true; + + int chars_written = 0; + for (auto i = text.begin(); i != text.end(); ++i) { + if (IsUnicodeWhitespace(*i)) { + if (!in_whitespace) { + // Reduce all whitespace sequences to a single space. + in_whitespace = true; + result[chars_written++] = L' '; + } + if (trim_sequences_with_line_breaks && !already_trimmed && + ((*i == '\n') || (*i == '\r'))) { + // Whitespace sequences containing CR or LF are eliminated entirely. + already_trimmed = true; + --chars_written; + } + } else { + // Non-whitespace chracters are copied straight across. + in_whitespace = false; + already_trimmed = false; + result[chars_written++] = *i; + } + } + + if (in_whitespace && !already_trimmed) { + // Any trailing whitespace is eliminated. + --chars_written; + } + + result.resize(chars_written); + return result; +} + +bool Base64Encode(const std::string_view &input, std::string *output) { + size_t len; + if (!EVP_EncodedLength(&len, input.size())) { + return false; + } + std::vector<char> encoded(len); + len = EVP_EncodeBlock(reinterpret_cast<uint8_t *>(encoded.data()), + reinterpret_cast<const uint8_t *>(input.data()), + input.size()); + if (!len) { + return false; + } + output->assign(encoded.data(), len); + return true; +} + +bool Base64Decode(const std::string_view &input, std::string *output) { + size_t len; + if (!EVP_DecodedLength(&len, input.size())) { + return false; + } + std::vector<char> decoded(len); + if (!EVP_DecodeBase64(reinterpret_cast<uint8_t *>(decoded.data()), &len, len, + reinterpret_cast<const uint8_t *>(input.data()), + input.size())) { + return false; + } + output->assign(decoded.data(), len); + return true; +} + } // namespace bssl::string_util diff --git a/src/pki/string_util.h b/src/pki/string_util.h index 635f9ea..27be485 100644 --- a/src/pki/string_util.h +++ b/src/pki/string_util.h @@ -5,15 +5,13 @@ #ifndef BSSL_PKI_STRING_UTIL_H_ #define BSSL_PKI_STRING_UTIL_H_ -#include "fillins/openssl_util.h" - - -#include <stdint.h> - #include <cstdint> #include <string_view> #include <vector> +#include <openssl/base.h> +#include <openssl/span.h> + namespace bssl::string_util { // Returns true if the characters in |str| are all ASCII, false otherwise. @@ -21,44 +19,55 @@ OPENSSL_EXPORT bool IsAscii(std::string_view str); // Compares |str1| and |str2| ASCII case insensitively (independent of locale). // Returns true if |str1| and |str2| match. -OPENSSL_EXPORT bool IsEqualNoCase(std::string_view str1, - std::string_view str2); +OPENSSL_EXPORT bool IsEqualNoCase(std::string_view str1, std::string_view str2); // Compares |str1| and |prefix| ASCII case insensitively (independent of // locale). Returns true if |str1| starts with |prefix|. OPENSSL_EXPORT bool StartsWithNoCase(std::string_view str, - std::string_view prefix); + std::string_view prefix); // Compares |str1| and |suffix| ASCII case insensitively (independent of // locale). Returns true if |str1| starts with |suffix|. OPENSSL_EXPORT bool EndsWithNoCase(std::string_view str, - std::string_view suffix); + std::string_view suffix); // Finds and replaces all occurrences of |find| of non zero length with // |replace| in |str|, returning the result. OPENSSL_EXPORT std::string FindAndReplace(std::string_view str, - std::string_view find, - std::string_view replace); + std::string_view find, + std::string_view replace); // TODO(bbe) transition below to c++20 // Compares |str1| and |prefix|. Returns true if |str1| starts with |prefix|. -OPENSSL_EXPORT bool StartsWith(std::string_view str, - std::string_view prefix); +OPENSSL_EXPORT bool StartsWith(std::string_view str, std::string_view prefix); // TODO(bbe) transition below to c++20 // Compares |str1| and |suffix|. Returns true if |str1| ends with |suffix|. OPENSSL_EXPORT bool EndsWith(std::string_view str, std::string_view suffix); -// Returns a hexadecimal string encoding |data| of length |length|. -OPENSSL_EXPORT std::string HexEncode(const uint8_t* data, size_t length); +// Returns a hexadecimal string encoding |data|. +OPENSSL_EXPORT std::string HexEncode(Span<const uint8_t> data); // Returns a decimal string representation of |i|. OPENSSL_EXPORT std::string NumberToDecimalString(int i); // Splits |str| on |split_char| returning the list of resulting strings. -OPENSSL_EXPORT std::vector<std::string_view> SplitString( - std::string_view str, - char split_char); +OPENSSL_EXPORT std::vector<std::string_view> SplitString(std::string_view str, + char split_char); + +// Collapess whitespace in |text| to a single space and returns the result. +OPENSSL_EXPORT std::string CollapseWhitespaceASCII( + std::string_view text, bool trim_sequences_with_line_breaks); + +// Base64 encodes |input| into |output| returning true on success, +// false otherwise. +OPENSSL_EXPORT bool Base64Encode(const std::string_view &input, + std::string *output); + +// Base64 decodes |input| into |output| returning true on success, +// false otherwise. +OPENSSL_EXPORT bool Base64Decode(const std::string_view &input, + std::string *output); } // namespace bssl::string_util diff --git a/src/pki/string_util_unittest.cc b/src/pki/string_util_unittest.cc index c8da4a5..32e446d 100644 --- a/src/pki/string_util_unittest.cc +++ b/src/pki/string_util_unittest.cc @@ -22,11 +22,11 @@ TEST(StringUtilTest, IsEqualNoCase) { EXPECT_TRUE( bssl::string_util::IsEqualNoCase("mail.google.com", "maIL.GOoGlE.cOm")); EXPECT_TRUE(bssl::string_util::IsEqualNoCase("MAil~-.google.cOm", - "maIL~-.gOoGlE.CoM")); + "maIL~-.gOoGlE.CoM")); EXPECT_TRUE(bssl::string_util::IsEqualNoCase("mail\x80.google.com", - "maIL\x80.GOoGlE.cOm")); + "maIL\x80.GOoGlE.cOm")); EXPECT_TRUE(bssl::string_util::IsEqualNoCase("mail\xFF.google.com", - "maIL\xFF.GOoGlE.cOm")); + "maIL\xFF.GOoGlE.cOm")); EXPECT_FALSE( bssl::string_util::IsEqualNoCase("mail.google.co", "maIL.GOoGlE.cOm")); EXPECT_FALSE( @@ -43,11 +43,11 @@ TEST(StringUtilTest, EndsWithNoCase) { EXPECT_TRUE( bssl::string_util::EndsWithNoCase("MAil~-.google.cOm", "-.gOoGlE.CoM")); EXPECT_TRUE(bssl::string_util::EndsWithNoCase("mail\x80.google.com", - "\x80.GOoGlE.cOm")); + "\x80.GOoGlE.cOm")); EXPECT_FALSE( bssl::string_util::EndsWithNoCase("mail.google.com", "pOoGlE.com")); EXPECT_FALSE(bssl::string_util::EndsWithNoCase("mail\x80.google.com", - "\x81.GOoGlE.cOm")); + "\x81.GOoGlE.cOm")); EXPECT_FALSE( bssl::string_util::EndsWithNoCase("mail.google.co", ".GOoGlE.cOm")); EXPECT_FALSE( @@ -77,8 +77,8 @@ TEST(StringUtilTest, FindAndReplace) { TEST(StringUtilTest, StartsWithNoCase) { EXPECT_TRUE(bssl::string_util::StartsWithNoCase("", "")); EXPECT_TRUE(bssl::string_util::StartsWithNoCase("mail.google.com", "")); - EXPECT_TRUE( - bssl::string_util::StartsWithNoCase("mail.google.com", "maIL.GOoGlE.cOm")); + EXPECT_TRUE(bssl::string_util::StartsWithNoCase("mail.google.com", + "maIL.GOoGlE.cOm")); EXPECT_TRUE(bssl::string_util::StartsWithNoCase("mail.google.com", "MaIL.")); EXPECT_TRUE( bssl::string_util::StartsWithNoCase("MAil~-.google.cOm", "maiL~-.Goo")); @@ -93,16 +93,16 @@ TEST(StringUtilTest, StartsWithNoCase) { EXPECT_FALSE( bssl::string_util::StartsWithNoCase("mail.google.com", "MaI.GooGLE")); EXPECT_FALSE(bssl::string_util::StartsWithNoCase("mail.google.com", - "mail.google.com1")); + "mail.google.com1")); EXPECT_FALSE(bssl::string_util::StartsWithNoCase("mail.google.com", - "1mail.google.com")); + "1mail.google.com")); } TEST(StringUtilTest, HexEncode) { - std::string hex(bssl::string_util::HexEncode(nullptr, 0)); + std::string hex(bssl::string_util::HexEncode({})); EXPECT_EQ(hex.length(), 0U); uint8_t bytes[] = {0x01, 0xff, 0x02, 0xfe, 0x03, 0x80, 0x81}; - hex = bssl::string_util::HexEncode(bytes, sizeof(bytes)); + hex = bssl::string_util::HexEncode(bytes); EXPECT_EQ(hex, "01FF02FE038081"); } @@ -152,4 +152,4 @@ TEST(StringUtilTest, SplitString) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/tag.cc b/src/pki/tag.cc deleted file mode 100644 index d2192ef..0000000 --- a/src/pki/tag.cc +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2015 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "tag.h" - -#include <openssl/base.h> - -namespace bssl::der { - -Tag ContextSpecificConstructed(uint8_t tag_number) { - BSSL_CHECK(tag_number == (tag_number & kTagNumberMask)); - return (tag_number & kTagNumberMask) | kTagConstructed | kTagContextSpecific; -} - -Tag ContextSpecificPrimitive(uint8_t base) { - BSSL_CHECK(base == (base & kTagNumberMask)); - return (base & kTagNumberMask) | kTagPrimitive | kTagContextSpecific; -} - -bool IsConstructed(Tag tag) { - return (tag & kTagConstructionMask) == kTagConstructed; -} - -} // namespace bssl::der diff --git a/src/pki/tag.h b/src/pki/tag.h deleted file mode 100644 index 986a805..0000000 --- a/src/pki/tag.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2015 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BSSL_DER_TAG_H_ -#define BSSL_DER_TAG_H_ - -#include "fillins/openssl_util.h" -#include <stdint.h> - - -#include <openssl/bytestring.h> - -namespace bssl::der { - -// This Tag type represents the identifier for an ASN.1 tag as encoded with -// DER. It matches the BoringSSL CBS and CBB in-memory representation for a -// tag. -// -// Callers must not assume it matches the DER representation for small tag -// numbers. Instead, constants are provided for universal class types, and -// functions are provided for building context specific tags. Tags can also be -// built from the provided constants and bitmasks. -using Tag = unsigned; - -// Universal class primitive types -const Tag kBool = CBS_ASN1_BOOLEAN; -const Tag kInteger = CBS_ASN1_INTEGER; -const Tag kBitString = CBS_ASN1_BITSTRING; -const Tag kOctetString = CBS_ASN1_OCTETSTRING; -const Tag kNull = CBS_ASN1_NULL; -const Tag kOid = CBS_ASN1_OBJECT; -const Tag kEnumerated = CBS_ASN1_ENUMERATED; -const Tag kUtf8String = CBS_ASN1_UTF8STRING; -const Tag kPrintableString = CBS_ASN1_PRINTABLESTRING; -const Tag kTeletexString = CBS_ASN1_T61STRING; -const Tag kIA5String = CBS_ASN1_IA5STRING; -const Tag kUtcTime = CBS_ASN1_UTCTIME; -const Tag kGeneralizedTime = CBS_ASN1_GENERALIZEDTIME; -const Tag kVisibleString = CBS_ASN1_VISIBLESTRING; -const Tag kUniversalString = CBS_ASN1_UNIVERSALSTRING; -const Tag kBmpString = CBS_ASN1_BMPSTRING; - -// Universal class constructed types -const Tag kSequence = CBS_ASN1_SEQUENCE; -const Tag kSet = CBS_ASN1_SET; - -// Primitive/constructed bits -const unsigned kTagPrimitive = 0x00; -const unsigned kTagConstructed = CBS_ASN1_CONSTRUCTED; - -// Tag classes -const unsigned kTagUniversal = 0x00; -const unsigned kTagApplication = CBS_ASN1_APPLICATION; -const unsigned kTagContextSpecific = CBS_ASN1_CONTEXT_SPECIFIC; -const unsigned kTagPrivate = CBS_ASN1_PRIVATE; - -// Masks for the 3 components of a tag (class, primitive/constructed, number) -const unsigned kTagNumberMask = CBS_ASN1_TAG_NUMBER_MASK; -const unsigned kTagConstructionMask = CBS_ASN1_CONSTRUCTED; -const unsigned kTagClassMask = CBS_ASN1_CLASS_MASK; - -// Creates the value for the outer tag of an explicitly tagged type. -// -// The ASN.1 keyword for this is: -// [tag_number] EXPLICIT -// -// (Note, the EXPLICIT may be omitted if the entire schema is in -// EXPLICIT mode, the default) -OPENSSL_EXPORT Tag ContextSpecificConstructed(uint8_t tag_number); - -OPENSSL_EXPORT Tag ContextSpecificPrimitive(uint8_t base); - -OPENSSL_EXPORT bool IsConstructed(Tag tag); - -} // namespace bssl::der - -#endif // BSSL_DER_TAG_H_ diff --git a/src/pki/test_helpers.cc b/src/pki/test_helpers.cc index 8b4e033..b6712af 100644 --- a/src/pki/test_helpers.cc +++ b/src/pki/test_helpers.cc @@ -4,34 +4,34 @@ #include "test_helpers.h" +#include <fstream> +#include <iostream> #include <sstream> +#include <streambuf> +#include <string> #include <string_view> -#include "fillins/path_service.h" -#include "fillins/file_util.h" - -#include "pem.h" +#include <gtest/gtest.h> +#include <openssl/bytestring.h> +#include <openssl/mem.h> +#include <openssl/pool.h> #include "cert_error_params.h" #include "cert_errors.h" +#include "parser.h" +#include "pem.h" #include "simple_path_builder_delegate.h" #include "string_util.h" #include "trust_store.h" -#include "parser.h" -#include <gtest/gtest.h> -#include <openssl/bytestring.h> -#include <openssl/mem.h> -#include <openssl/pool.h> namespace bssl { namespace { -bool GetValue(std::string_view prefix, - std::string_view line, - std::string* value, - bool* has_value) { - if (!bssl::string_util::StartsWith(line, prefix)) +bool GetValue(std::string_view prefix, std::string_view line, + std::string *value, bool *has_value) { + if (!bssl::string_util::StartsWith(line, prefix)) { return false; + } if (*has_value) { ADD_FAILURE() << "Duplicated " << prefix; @@ -47,18 +47,17 @@ bool GetValue(std::string_view prefix, // hex-encoded string on error. std::string OidToString(der::Input oid) { CBS cbs; - CBS_init(&cbs, oid.UnsafeData(), oid.Length()); + CBS_init(&cbs, oid.data(), oid.size()); bssl::UniquePtr<char> text(CBS_asn1_oid_to_text(&cbs)); if (!text) { - return "invalid:" + - bssl::string_util::HexEncode(oid.UnsafeData(), oid.Length()); + return "invalid:" + bssl::string_util::HexEncode(oid); } return text.get(); } -std::string StrSetToString(const std::set<std::string>& str_set) { +std::string StrSetToString(const std::set<std::string> &str_set) { std::string out; - for (const auto& s : str_set) { + for (const auto &s : str_set) { EXPECT_FALSE(s.empty()); if (!out.empty()) { out += ", "; @@ -85,24 +84,59 @@ std::vector<std::string> SplitString(std::string_view str) { std::vector<std::string_view> split = string_util::SplitString(str, ','); std::vector<std::string> out; - for (const auto& s : split) { + for (const auto &s : split) { out.push_back(StripString(s)); } return out; } +bool ReadFileToString(const std::string &path, std::string *out) { + std::ifstream file(path, std::ios::binary); + file.unsetf(std::ios::skipws); + + file.seekg(0, std::ios::end); + if (file.tellg() == -1) { + return false; + } + out->reserve(file.tellg()); + file.seekg(0, std::ios::beg); + + out->assign(std::istreambuf_iterator<char>(file), + std::istreambuf_iterator<char>()); + + return true; +} + +std::string AppendComponent(const std::string &path, + const std::string &component) { + // Append a path component to a path. Use the \ separator if this appears to + // be a Windows path, otherwise the Unix one. + if (path.find(":\\") != std::string::npos) { + return path + "\\" + component; + } + return path + "/" + component; +} + +std::string GetTestRoot(void) { + // We expect our test data to live in "pki" underneath a + // test root directory, or in the current directry. + char *root_from_env = getenv("BORINGSSL_TEST_DATA_ROOT"); + std::string root = root_from_env ? root_from_env : "."; + return AppendComponent(root, "pki"); +} + } // namespace namespace der { -void PrintTo(const Input& data, ::std::ostream* os) { +void PrintTo(Input data, ::std::ostream *os) { size_t len; - if (!EVP_EncodedLength(&len, data.Length())) { + if (!EVP_EncodedLength(&len, data.size())) { *os << "[]"; return; } std::vector<uint8_t> encoded(len); - len = EVP_EncodeBlock(encoded.data(), data.UnsafeData(), data.Length()); + len = EVP_EncodeBlock(encoded.data(), data.data(), data.size()); // Skip the trailing \0. std::string b64_encoded(encoded.begin(), encoded.begin() + len); *os << "[" << b64_encoded << "]"; @@ -113,7 +147,7 @@ void PrintTo(const Input& data, ::std::ostream* os) { der::Input SequenceValueFromString(std::string_view s) { der::Parser parser((der::Input(s))); der::Input data; - if (!parser.ReadTag(der::kSequence, &data)) { + if (!parser.ReadTag(CBS_ASN1_SEQUENCE, &data)) { ADD_FAILURE(); return der::Input(); } @@ -125,8 +159,7 @@ der::Input SequenceValueFromString(std::string_view s) { } ::testing::AssertionResult ReadTestDataFromPemFile( - const std::string& file_path_ascii, - const PemBlockMapping* mappings, + const std::string &file_path_ascii, const PemBlockMapping *mappings, size_t mappings_length) { std::string file_data = ReadTestFileToString(file_path_ascii); @@ -138,13 +171,13 @@ der::Input SequenceValueFromString(std::string_view s) { // Build the |pem_headers| vector needed for PEMTokenzier. std::vector<std::string> pem_headers; - for (const auto& mapping : mappings_copy) { + for (const auto &mapping : mappings_copy) { pem_headers.push_back(mapping.block_name); } PEMTokenizer pem_tokenizer(file_data, pem_headers); while (pem_tokenizer.GetNext()) { - for (auto& mapping : mappings_copy) { + for (auto &mapping : mappings_copy) { // Find the mapping for this block type. if (pem_tokenizer.block_type() == mapping.block_name) { if (!mapping.value) { @@ -162,7 +195,7 @@ der::Input SequenceValueFromString(std::string_view s) { } // Ensure that all specified blocks were found. - for (const auto& mapping : mappings_copy) { + for (const auto &mapping : mappings_copy) { if (mapping.value && !mapping.optional) { return ::testing::AssertionFailure() << "PEM block missing: " << mapping.block_name; @@ -192,25 +225,26 @@ bool VerifyCertChainTest::HasHighSeverityErrors() const { return expected_errors.find("ERROR: ") != std::string::npos; } -bool ReadCertChainFromFile(const std::string& file_path_ascii, - ParsedCertificateList* chain) { +bool ReadCertChainFromFile(const std::string &file_path_ascii, + ParsedCertificateList *chain) { // Reset all the out parameters to their defaults. *chain = ParsedCertificateList(); std::string file_data = ReadTestFileToString(file_path_ascii); - if (file_data.empty()) + if (file_data.empty()) { return false; + } std::vector<std::string> pem_headers = {"CERTIFICATE"}; PEMTokenizer pem_tokenizer(file_data, pem_headers); while (pem_tokenizer.GetNext()) { - const std::string& block_data = pem_tokenizer.data(); + const std::string &block_data = pem_tokenizer.data(); CertErrors errors; if (!ParsedCertificate::CreateAndAddToVector( bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(block_data.data()), + reinterpret_cast<const uint8_t *>(block_data.data()), block_data.size(), nullptr)), {}, chain, &errors)) { ADD_FAILURE() << errors.ToDebugString(); @@ -222,23 +256,26 @@ bool ReadCertChainFromFile(const std::string& file_path_ascii, } std::shared_ptr<const ParsedCertificate> ReadCertFromFile( - const std::string& file_path_ascii) { + const std::string &file_path_ascii) { ParsedCertificateList chain; - if (!ReadCertChainFromFile(file_path_ascii, &chain)) + if (!ReadCertChainFromFile(file_path_ascii, &chain)) { return nullptr; - if (chain.size() != 1) + } + if (chain.size() != 1) { return nullptr; + } return chain[0]; } -bool ReadVerifyCertChainTestFromFile(const std::string& file_path_ascii, - VerifyCertChainTest* test) { +bool ReadVerifyCertChainTestFromFile(const std::string &file_path_ascii, + VerifyCertChainTest *test) { // Reset all the out parameters to their defaults. *test = {}; std::string file_data = ReadTestFileToString(file_path_ascii); - if (file_data.empty()) + if (file_data.empty()) { return false; + } bool has_chain = false; bool has_trust = false; @@ -412,26 +449,25 @@ bool ReadVerifyCertChainTestFromFile(const std::string& file_path_ascii, return true; } -std::string ReadTestFileToString(const std::string& file_path_ascii) { +std::string ReadTestFileToString(const std::string &file_path_ascii) { // Compute the full path, relative to the src/ directory. - fillins::FilePath src_root; - bssl::fillins::PathService::Get(fillins::BSSL_TEST_DATA_ROOT, &src_root); - fillins::FilePath filepath = src_root.AppendASCII(file_path_ascii); + std::string src_root = GetTestRoot(); + std::string filepath = AppendComponent(src_root, file_path_ascii); // Read the full contents of the file. std::string file_data; - if (!fillins::ReadFileToString(filepath, &file_data)) { - ADD_FAILURE() << "Couldn't read file: " << filepath.value(); + if (!ReadFileToString(filepath, &file_data)) { + ADD_FAILURE() << "Couldn't read file: " << filepath; return std::string(); } return file_data; } -void VerifyCertPathErrors(const std::string& expected_errors_str, - const CertPathErrors& actual_errors, - const ParsedCertificateList& chain, - const std::string& errors_file_path) { +void VerifyCertPathErrors(const std::string &expected_errors_str, + const CertPathErrors &actual_errors, + const ParsedCertificateList &chain, + const std::string &errors_file_path) { std::string actual_errors_str = actual_errors.ToDebugString(chain); if (expected_errors_str != actual_errors_str) { @@ -442,14 +478,14 @@ void VerifyCertPathErrors(const std::string& expected_errors_str, << "ACTUAL:\n\n" << actual_errors_str << "\n" << "===> Use " - "testdata/verify_certificate_chain_unittest/" + "pki/testdata/verify_certificate_chain_unittest/" "rebase-errors.py to rebaseline.\n"; } } -void VerifyCertErrors(const std::string& expected_errors_str, - const CertErrors& actual_errors, - const std::string& errors_file_path) { +void VerifyCertErrors(const std::string &expected_errors_str, + const CertErrors &actual_errors, + const std::string &errors_file_path) { std::string actual_errors_str = actual_errors.ToDebugString(); if (expected_errors_str != actual_errors_str) { @@ -460,17 +496,17 @@ void VerifyCertErrors(const std::string& expected_errors_str, << "ACTUAL:\n\n" << actual_errors_str << "\n" << "===> Use " - "testdata/parse_certificate_unittest/" + "pki/testdata/parse_certificate_unittest/" "rebase-errors.py to rebaseline.\n"; } } void VerifyUserConstrainedPolicySet( - const std::set<std::string>& expected_user_constrained_policy_str_set, - const std::set<der::Input>& actual_user_constrained_policy_set, - const std::string& errors_file_path) { + const std::set<std::string> &expected_user_constrained_policy_str_set, + const std::set<der::Input> &actual_user_constrained_policy_set, + const std::string &errors_file_path) { std::set<std::string> actual_user_constrained_policy_str_set; - for (const der::Input& der_oid : actual_user_constrained_policy_set) { + for (der::Input der_oid : actual_user_constrained_policy_set) { actual_user_constrained_policy_str_set.insert(OidToString(der_oid)); } if (expected_user_constrained_policy_str_set != @@ -486,4 +522,4 @@ void VerifyUserConstrainedPolicySet( } } -} // namespace net +} // namespace bssl diff --git a/src/pki/test_helpers.h b/src/pki/test_helpers.h index 6857dd3..91d74ce 100644 --- a/src/pki/test_helpers.h +++ b/src/pki/test_helpers.h @@ -12,19 +12,19 @@ #include <string_view> #include <vector> +#include <gtest/gtest.h> +#include "input.h" #include "parsed_certificate.h" #include "simple_path_builder_delegate.h" #include "trust_store.h" #include "verify_certificate_chain.h" -#include "input.h" -#include <gtest/gtest.h> namespace bssl { namespace der { // This function is used by GTest to support EXPECT_EQ() for der::Input. -void PrintTo(const Input& data, ::std::ostream* os); +void PrintTo(Input data, ::std::ostream *os); } // namespace der @@ -40,10 +40,10 @@ der::Input SequenceValueFromString(std::string_view s); // the destination where the value for that block should be written. struct PemBlockMapping { // The name of the PEM header. Example "CERTIFICATE". - const char* block_name; + const char *block_name; // The destination where the read value should be written to. - std::string* value; + std::string *value; // True to indicate that the block is not required to be present. If the // block is optional and is not present, then |value| will not be modified. @@ -65,8 +65,7 @@ struct PemBlockMapping { // once. In other words, the header must be present (unless marked as // optional=true), have valid data, and appear no more than once. ::testing::AssertionResult ReadTestDataFromPemFile( - const std::string& file_path_ascii, - const PemBlockMapping* mappings, + const std::string &file_path_ascii, const PemBlockMapping *mappings, size_t mappings_length); // This is the same as the variant above, however it uses template magic so an @@ -74,8 +73,7 @@ struct PemBlockMapping { // inferred). template <size_t N> ::testing::AssertionResult ReadTestDataFromPemFile( - const std::string& file_path_ascii, - const PemBlockMapping (&mappings)[N]) { + const std::string &file_path_ascii, const PemBlockMapping (&mappings)[N]) { return ReadTestDataFromPemFile(file_path_ascii, mappings, N); } @@ -125,45 +123,45 @@ struct VerifyCertChainTest { // Reads a test case from |file_path_ascii| (which is relative to //src). // Generally |file_path_ascii| will start with: // net/data/verify_certificate_chain_unittest/ -bool ReadVerifyCertChainTestFromFile(const std::string& file_path_ascii, - VerifyCertChainTest* test); +bool ReadVerifyCertChainTestFromFile(const std::string &file_path_ascii, + VerifyCertChainTest *test); // Reads a certificate chain from |file_path_ascii| -bool ReadCertChainFromFile(const std::string& file_path_ascii, - ParsedCertificateList* chain); +bool ReadCertChainFromFile(const std::string &file_path_ascii, + ParsedCertificateList *chain); // Reads a certificate from |file_path_ascii|. Returns nullptr if the file // contained more that one certificate. std::shared_ptr<const ParsedCertificate> ReadCertFromFile( - const std::string& file_path_ascii); + const std::string &file_path_ascii); // Reads a data file relative to the src root directory. -std::string ReadTestFileToString(const std::string& file_path_ascii); +std::string ReadTestFileToString(const std::string &file_path_ascii); // Asserts that |actual_errors| matches |expected_errors_str|. // // This is a helper function to simplify rebasing the error expectations when // they originate from a test file. -void VerifyCertPathErrors(const std::string& expected_errors_str, - const CertPathErrors& actual_errors, - const ParsedCertificateList& chain, - const std::string& errors_file_path); +void VerifyCertPathErrors(const std::string &expected_errors_str, + const CertPathErrors &actual_errors, + const ParsedCertificateList &chain, + const std::string &errors_file_path); // Asserts that |actual_errors| matches |expected_errors_str|. // // This is a helper function to simplify rebasing the error expectations when // they originate from a test file. -void VerifyCertErrors(const std::string& expected_errors_str, - const CertErrors& actual_errors, - const std::string& errors_file_path); +void VerifyCertErrors(const std::string &expected_errors_str, + const CertErrors &actual_errors, + const std::string &errors_file_path); // Asserts that |actual_user_constrained_policy_set| matches // |expected_user_constrained_policy_set|. void VerifyUserConstrainedPolicySet( - const std::set<std::string>& expected_user_constrained_policy_str_set, - const std::set<der::Input>& actual_user_constrained_policy_set, - const std::string& errors_file_path); + const std::set<std::string> &expected_user_constrained_policy_str_set, + const std::set<der::Input> &actual_user_constrained_policy_set, + const std::string &errors_file_path); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_TEST_HELPERS_H_ diff --git a/src/pki/testdata/parse_certificate_unittest/rebase-errors.py b/src/pki/testdata/parse_certificate_unittest/rebase-errors.py index 412c985..0f3d920 100755 --- a/src/pki/testdata/parse_certificate_unittest/rebase-errors.py +++ b/src/pki/testdata/parse_certificate_unittest/rebase-errors.py @@ -11,8 +11,8 @@ error format. To use this run the affected tests, and then pass the input to this script (either via stdin, or as the first argument). For instance: - $ ./out/Release/net_unittests --gtest_filter="*ParseCertificate*" | \ - net/data/parse_certificate_unittest/rebase-errors.py + $ ./build/pki_test --gtest_filter="*ParseCertificate*:*ParsedCertificate*:" | \ + pki/testdata/parse_certificate_unittest/rebase-errors.py The script works by scanning the stdout looking for gtest failures having a particular format. The C++ test side should have been instrumented to dump @@ -21,17 +21,10 @@ out the test file's path on mismatch. This script will then update the corresponding .pem file """ -import sys -import os - -script_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path += [os.path.join(script_dir, '..')] - -import gencerts - +import base64 import os -import sys import re +import sys # Regular expression to find the failed errors in test stdout. # * Group 1 of the match is file path (relative to //src) where the @@ -46,7 +39,7 @@ EXPECTED: ACTUAL: ((?:.|\n)*?) -===> Use net/data/parse_certificate_unittest/rebase-errors.py to rebaseline. +===> Use pki/testdata/parse_certificate_unittest/rebase-errors.py to rebaseline. """, re.MULTILINE) @@ -81,11 +74,18 @@ def replace_string(original, start, end, replacement): return original[0:start] + replacement + original[end:] +def text_data_to_pem(block_header, text_data): + # b64encode takes in bytes and returns bytes. + pem_data = base64.b64encode(text_data.encode('utf8')).decode('utf8') + return '%s\n-----BEGIN %s-----\n%s\n-----END %s-----\n' % ( + text_data, block_header, pem_data, block_header) + + def fixup_pem_file(path, actual_errors): """Updates the ERRORS block in the test .pem file""" contents = read_file_to_string(path) - errors_block_text = '\n' + gencerts.text_data_to_pem('ERRORS', actual_errors) + errors_block_text = '\n' + text_data_to_pem('ERRORS', actual_errors) # Strip the trailing newline. errors_block_text = errors_block_text[:-1] @@ -102,15 +102,17 @@ def fixup_pem_file(path, actual_errors): def get_src_root(): - """Returns the path to the enclosing //src directory. This assumes the + """Returns the path to BoringSSL source tree. This assumes the current script is inside the source tree.""" cur_dir = os.path.dirname(os.path.realpath(__file__)) while True: - parent_dir, dirname = os.path.split(cur_dir) - # Check if it looks like the src/ root. - if dirname == "src" and os.path.isdir(os.path.join(cur_dir, "net")): + # Check if it looks like the BoringSSL root. + if os.path.isdir(os.path.join(cur_dir, "crypto")) and \ + os.path.isdir(os.path.join(cur_dir, "pki")) and \ + os.path.isdir(os.path.join(cur_dir, "ssl")): return cur_dir + parent_dir, _ = os.path.split(cur_dir) if not parent_dir or parent_dir == cur_dir: break cur_dir = parent_dir @@ -138,7 +140,7 @@ def main(): test_stdout = sys.stdin.read() for m in failed_test_regex.finditer(test_stdout): - src_relative_errors_path = m.group(1) + src_relative_errors_path = "pki/" + m.group(1) errors_path = get_abs_path(src_relative_errors_path) actual_errors = m.group(2) diff --git a/src/pki/testdata/ssl/certificates/multi-root-A-by-B.pem b/src/pki/testdata/path_builder_unittest/multi-root-A-by-B.pem index 451345d..451345d 100644 --- a/src/pki/testdata/ssl/certificates/multi-root-A-by-B.pem +++ b/src/pki/testdata/path_builder_unittest/multi-root-A-by-B.pem diff --git a/src/pki/testdata/ssl/certificates/multi-root-B-by-C.pem b/src/pki/testdata/path_builder_unittest/multi-root-B-by-C.pem index 98685b3..98685b3 100644 --- a/src/pki/testdata/ssl/certificates/multi-root-B-by-C.pem +++ b/src/pki/testdata/path_builder_unittest/multi-root-B-by-C.pem diff --git a/src/pki/testdata/ssl/certificates/multi-root-B-by-F.pem b/src/pki/testdata/path_builder_unittest/multi-root-B-by-F.pem index bcaa0da..bcaa0da 100644 --- a/src/pki/testdata/ssl/certificates/multi-root-B-by-F.pem +++ b/src/pki/testdata/path_builder_unittest/multi-root-B-by-F.pem diff --git a/src/pki/testdata/ssl/certificates/multi-root-C-by-D.pem b/src/pki/testdata/path_builder_unittest/multi-root-C-by-D.pem index ea171e2..ea171e2 100644 --- a/src/pki/testdata/ssl/certificates/multi-root-C-by-D.pem +++ b/src/pki/testdata/path_builder_unittest/multi-root-C-by-D.pem diff --git a/src/pki/testdata/ssl/certificates/multi-root-C-by-E.pem b/src/pki/testdata/path_builder_unittest/multi-root-C-by-E.pem index 1f8b76c..1f8b76c 100644 --- a/src/pki/testdata/ssl/certificates/multi-root-C-by-E.pem +++ b/src/pki/testdata/path_builder_unittest/multi-root-C-by-E.pem diff --git a/src/pki/testdata/ssl/certificates/multi-root-D-by-D.pem b/src/pki/testdata/path_builder_unittest/multi-root-D-by-D.pem index 7fd6fa9..7fd6fa9 100644 --- a/src/pki/testdata/ssl/certificates/multi-root-D-by-D.pem +++ b/src/pki/testdata/path_builder_unittest/multi-root-D-by-D.pem diff --git a/src/pki/testdata/ssl/certificates/multi-root-E-by-E.pem b/src/pki/testdata/path_builder_unittest/multi-root-E-by-E.pem index 4ccd307..4ccd307 100644 --- a/src/pki/testdata/ssl/certificates/multi-root-E-by-E.pem +++ b/src/pki/testdata/path_builder_unittest/multi-root-E-by-E.pem diff --git a/src/pki/testdata/ssl/certificates/multi-root-F-by-E.pem b/src/pki/testdata/path_builder_unittest/multi-root-F-by-E.pem index 2e1124d..2e1124d 100644 --- a/src/pki/testdata/ssl/certificates/multi-root-F-by-E.pem +++ b/src/pki/testdata/path_builder_unittest/multi-root-F-by-E.pem diff --git a/src/pki/testdata/path_builder_unittest/precertificate/precertificate.pem b/src/pki/testdata/path_builder_unittest/precertificate/precertificate.pem new file mode 100644 index 0000000..23b9900 --- /dev/null +++ b/src/pki/testdata/path_builder_unittest/precertificate/precertificate.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIIEfzCCA2egAwIBAgIQDIMDs7tv6W4RteOR0LnF9DANBgkqhkiG9w0BAQsFADBG +MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM +QzETMBEGA1UEAxMKR1RTIENBIDFQNTAeFw0yMzA5MTQwMDU5NTFaFw0yMzEyMTMw +MDU5NTBaMBkxFzAVBgNVBAMTDnJmYy1lZGl0b3Iub3JnMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA2jNKh7UQ/v36Qz/KV+QLBYwxI9+kzv3t6363d63V +3EkhIPTLZF8wQ7kfztmFKUuMcLcvEpY1jwxyBioGJN1b9QaxlLCsK8WvEyxnR+nq +pR1h+j+zceZIEZoDVcS2GIr7LoFtFUeGidQRYBRf9Wu6bRMaT2fHaI6FcZECH7Bn +TSe2e62BFejah3pA91+oVlnI9EjKtMQOGEaoyKjrKswVaWcFiUWKcvGnjygkYWRb +6jBUhGINamkCgrtAblHrwB0ym9VENj06fpnWbkxFtU6GmmRplHag5npRwWI439+9 +QNtqj6PgMsSMBLj7ljq8GlY81Y6TZTZ2F06b0NLkRdjetwIDAQABo4IBlDCCAZAw +DgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQC +MAAwHQYDVR0OBBYEFGMbD3hNq55udW3jdGHpx+v2rzbWMB8GA1UdIwQYMBaAFNX8 +ng3fHsrdCJeXbivFX8Ur9ey4MHgGCCsGAQUFBwEBBGwwajA1BggrBgEFBQcwAYYp +aHR0cDovL29jc3AucGtpLmdvb2cvcy9ndHMxcDUvZDJ5N2JUcElndEkwMQYIKwYB +BQUHMAKGJWh0dHA6Ly9wa2kuZ29vZy9yZXBvL2NlcnRzL2d0czFwNS5kZXIwKwYD +VR0RBCQwIoIOcmZjLWVkaXRvci5vcmeCECoucmZjLWVkaXRvci5vcmcwIQYDVR0g +BBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6Athito +dHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxcDUvZWV4a0MyUEp4YXcuY3JsMBMGCisG +AQQB1nkCBAMBAf8EAgUAMA0GCSqGSIb3DQEBCwUAA4IBAQAP3c64wNkNq6Nq7HrV +OzaygYS0dZ9gC8EuJsBe591AkPO8/B8y2kyPFRSHaG7IfRDDSyb9KqgtbknBDbHh +GWDF7CS6sid8ulT1kwDd8HKBVCfd37EODrHmzfJhtxMfEcB7FGjxHjcNZ7g5A4K1 +ph0AXHym+hPB0Jz/0MzDMeFpFp7llib3vAYfXz6bS4xYcBMqPmJV+okpHYjF4UXZ +0JIeMMSlypw5FgoMcsMydFW5X1KzoeKwSDhsVet03AM14QqlKv9p9u4MPzzVxYuW +syhj72JMl1YA01MZ06Org8SaLwUtKu0/kq4mysCNA3GYkKwUQIod/ilW65l6dZoS ++lRn +-----END CERTIFICATE----- diff --git a/src/pki/testdata/path_builder_unittest/precertificate/root.pem b/src/pki/testdata/path_builder_unittest/precertificate/root.pem new file mode 100644 index 0000000..ab573a0 --- /dev/null +++ b/src/pki/testdata/path_builder_unittest/precertificate/root.pem @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFjDCCA3SgAwIBAgINAgO8UKMnU/CRgCLt8TANBgkqhkiG9w0BAQsFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAw +MDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFQNTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBALOC8CSMvy2Hr7LZp676yrpE1ls+/rL3smUW3N4Q6E8tEFha +KIaHoe5qs6DZdU9/oVIBi1WoSlsGSMg2EiWrifnyI1+dYGX5XNq+OuhcbX2c0IQY +hTDNTpvsPNiz4ZbU88ULZduPsHTL9h7zePGslcXdc8MxiIGvdKpv/QzjBZXwxRBP +ZWP6oK/GGD3Fod+XedcFibMwsHSuPZIQa4wVd90LBFf7gQPd6iI01eVWsvDEjUGx +wwLbYuyA0P921IbkBBq2tgwrYnF92a/Z8V76wB7KoBlcVfCA0SoMB4aQnzXjKCtb +7yPIox2kozru/oPcgkwlsE3FUa2em9NbhMIaWukCAwEAAaOCAXYwggFyMA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0T +AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU1fyeDd8eyt0Il5duK8VfxSv17LgwHwYD +VR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYG +CCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcw +AoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQt +MCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsME0G +A1UdIARGMEQwOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3Br +aS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAgEA +bGMn7iPf5VJoTYFmkYXffWXlWzcxCCayB12avrHKAbmtv5139lEd15jFC0mhe6HX +02jlRA+LujbdQoJ30o3d9T/768gHmJPuWtC1Pd5LHC2MTex+jHv+TkD98LSzWQIQ +UVzjwCv9twZIUX4JXj8P3Kf+l+d5xQ5EiXjFaVkpoJo6SDYpppSTVS24R7XplrWf +B82mqz4yisCGg8XBQcifLzWODcAHeuGsyWW1y4qn3XHYYWU5hKwyPvd6NvFWn1ep +QW1akKfbOup1gAxjC2l0bwdMFfM3KKUZpG719iDNY7J+xCsJdYna0Twuck82GqGe +RNDNm6YjCD+XoaeeWqX3CZStXXZdKFbRGmZRUQd73j2wyO8weiQtvrizhvZL9/C1 +T//Oxvn2PyonCA8JPiNax+NCLXo25D2YlmA5mOrR22Mq63gJsU4hs463zj6S8ZVc +pDnQwCvIUxX10i+CzQZ0Z5mQdzcKly3FHB700FvpFePqAgnIE9cTcGW/+4ibWiW+ +dwnhp2pOEXW5Hk3xABtqZnmOw27YbaIiom0F+yzy8VDloNHYnzV9/HCrWSoC8b6w +0/H4zRK5aiWQW+OFIOb12stAHBk0IANhd7p/SA9JCynr52Fkx2PRR+sc4e6URu85 +c8zuTyuN3PtYp7NlIJmVuftVb9eWbpQ99HqSjmMd320= +-----END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-1024-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-1024-rsa-intermediate.pem deleted file mode 100644 index 99b3a7a..0000000 --- a/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-1024-rsa-intermediate.pem +++ /dev/null @@ -1,61 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=1024 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:9f:47:a7:c7:70:ba:de:3c:27:a1:38:8c:be:b4: - 25:fe:9d:68:cd:56:69:96:f3:5c:1b:4a:9e:bd:14: - f2:1c:fd:dd:59:ef:1c:9e:52:8a:55:78:ed:63:e1: - 19:a0:a3:92:bb:30:1a:1e:32:83:06:94:a9:80:e3: - 54:79:2e:79:4b:05:ba:6e:53:b0:e7:17:20:1f:cb: - c3:a4:30:a2:80:e3:9a:ac:8c:80:3f:be:97:24:fd: - ad:bd:98:9e:2b:8e:1b:cf:92:2a:02:25:a5:0f:d8: - 1c:1d:fa:e6:ce:76:75:2c:d1:0c:f1:1c:73:85:1c: - 9a:bb:cb:73:fa:95:bd:98:e3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 4F:B4:7F:BD:2E:4A:D8:3A:50:56:3A:5B:24:8A:28:DB:E3:BD:59:FF - X509v3 Authority Key Identifier: - keyid:AB:91:E6:2B:C9:C1:2E:7B:A0:65:F1:D4:8A:CE:03:4D:F4:7A:18:13 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 6e:db:0b:81:ea:0e:a3:bc:55:ba:09:f8:ec:b6:1e:b0:97:d6: - 53:b2:6b:44:b5:4e:d0:84:86:d1:37:5e:f6:24:28:8d:bf:f4: - 03:9e:e2:d2:9f:6d:19:17:97:51:c5:fe:f2:b8:95:67:bb:49: - 4d:d6:6e:0e:6e:9c:40:81:68:c1:44:fb:c3:30:13:e6:91:73: - 6e:09:a7:27:c8:7b:33:68:d4:ed:b2:81:33:21:63:a9:4f:25: - 05:2f:d5:20:d5:58:3c:6a:af:27:59:8e:ab:c7:b9:c9:89:d7: - cb:94:bd:ba:34:0d:e3:0a:68:1c:c2:d0:1d:b4:d0:8b:89:39: - 4b:a4 ------BEGIN CERTIFICATE----- -MIICfzCCAeigAwIBAgIBAjANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB0xMDI0 -IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTAeFw0xNjA0MjIyMDI4NDFaFw0yNjA0 -MjAyMDI4NDFaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw -FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQD -DAkxMjcuMC4wLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ9Hp8dwut48 -J6E4jL60Jf6daM1WaZbzXBtKnr0U8hz93VnvHJ5SilV47WPhGaCjkrswGh4ygwaU -qYDjVHkueUsFum5TsOcXIB/Lw6QwooDjmqyMgD++lyT9rb2YniuOG8+SKgIlpQ/Y -HB365s52dSzRDPEcc4UcmrvLc/qVvZjjAgMBAAGjgYAwfjAMBgNVHRMBAf8EAjAA -MB0GA1UdDgQWBBRPtH+9LkrYOlBWOlskiijb471Z/zAfBgNVHSMEGDAWgBSrkeYr -ycEue6Bl8dSKzgNN9HoYEzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw -DwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOBgQBu2wuB6g6jvFW6Cfjs -th6wl9ZTsmtEtU7QhIbRN172JCiNv/QDnuLSn20ZF5dRxf7yuJVnu0lN1m4ObpxA -gWjBRPvDMBPmkXNuCacnyHszaNTtsoEzIWOpTyUFL9Ug1Vg8aq8nWY6rx7nJidfL -lL26NA3jCmgcwtAdtNCLiTlLpA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-2048-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-2048-rsa-intermediate.pem deleted file mode 100644 index 7bf1bb9..0000000 --- a/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-2048-rsa-intermediate.pem +++ /dev/null @@ -1,71 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:e3:7f:ce:bc:d2:a2:33:36:a5:0b:f1:a3:08:f9: - 7d:82:62:0d:ad:f3:63:a7:49:50:ea:7b:eb:24:b6: - 9e:0e:8f:9a:63:87:fd:81:cb:17:65:30:f8:8a:27: - 59:dd:7b:f2:55:dc:1d:f1:ad:c6:33:ae:eb:d7:4e: - 57:47:0c:91:fb:3a:fe:85:13:14:d7:fb:b6:9e:68: - 15:d6:38:0e:3b:9e:51:ed:b9:7c:4d:4a:56:24:46: - 5a:13:f4:df:3a:16:91:b0:70:c4:dc:86:22:a7:f7: - 91:b6:93:35:f4:33:21:7c:eb:f4:90:e4:56:9c:20: - c6:02:6a:93:5d:a2:30:b0:77 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - F1:0B:57:46:80:DA:DF:AE:5F:99:7C:8E:C3:FA:3E:DC:4D:3D:75:6D - X509v3 Authority Key Identifier: - keyid:5C:C2:71:76:C1:26:B1:0C:31:73:C8:92:D3:1E:01:12:4B:CC:5A:14 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 6e:bf:10:0e:c0:2e:0c:7d:b6:4c:ed:e7:72:a4:2c:0d:07:e6: - d1:00:79:17:a0:5e:00:5e:94:54:10:2b:ba:94:b9:8e:f9:a5: - fa:6a:37:86:bd:b4:5b:47:b1:e7:8b:7a:86:2f:68:ad:af:db: - 71:bb:60:21:e4:69:19:72:26:90:61:48:d4:62:bf:e1:c0:45: - 96:29:f8:1c:c7:11:7d:d4:15:90:fb:7e:5f:56:5c:c4:6c:eb: - 3a:0f:82:fd:d4:d1:cc:42:b1:e9:fc:63:d4:ea:fb:52:0e:3d: - 54:a1:34:9a:73:66:f9:e7:3b:ca:6e:16:89:31:2a:ec:84:21: - ca:e8:4b:02:e8:90:d6:e0:1f:d1:4c:3e:1e:e1:d7:0a:1f:dd: - f3:32:b5:7e:c1:97:5c:ce:d7:8b:e1:1e:90:65:76:44:dd:59: - 8c:2b:67:6f:f0:2e:ee:79:f2:69:6a:75:81:03:85:24:de:d7: - 9f:12:28:e7:77:f4:49:cb:3a:9f:ec:3c:12:ac:d3:6c:71:31: - e7:32:4e:1f:94:1e:cc:0f:7a:02:5e:ce:94:c5:a9:e0:96:94: - 50:05:ac:df:3b:57:c5:0d:96:5a:b5:14:43:be:31:60:ef:b6: - ad:ec:a6:75:20:80:8b:8f:14:d9:6c:96:73:ca:05:10:3f:d5: - be:30:ae:37 ------BEGIN CERTIFICATE----- -MIIDADCCAeigAwIBAgIBAjANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB0yMDQ4 -IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTAeFw0xNjA0MjIyMDI4NDFaFw0yNjA0 -MjAyMDI4NDFaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw -FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQD -DAkxMjcuMC4wLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAON/zrzSojM2 -pQvxowj5fYJiDa3zY6dJUOp76yS2ng6PmmOH/YHLF2Uw+IonWd178lXcHfGtxjOu -69dOV0cMkfs6/oUTFNf7tp5oFdY4DjueUe25fE1KViRGWhP03zoWkbBwxNyGIqf3 -kbaTNfQzIXzr9JDkVpwgxgJqk12iMLB3AgMBAAGjgYAwfjAMBgNVHRMBAf8EAjAA -MB0GA1UdDgQWBBTxC1dGgNrfrl+ZfI7D+j7cTT11bTAfBgNVHSMEGDAWgBRcwnF2 -wSaxDDFzyJLTHgESS8xaFDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw -DwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEAbr8QDsAuDH22TO3n -cqQsDQfm0QB5F6BeAF6UVBArupS5jvml+mo3hr20W0ex54t6hi9ora/bcbtgIeRp -GXImkGFI1GK/4cBFlin4HMcRfdQVkPt+X1ZcxGzrOg+C/dTRzEKx6fxj1Or7Ug49 -VKE0mnNm+ec7ym4WiTEq7IQhyuhLAuiQ1uAf0Uw+HuHXCh/d8zK1fsGXXM7Xi+Ee -kGV2RN1ZjCtnb/Au7nnyaWp1gQOFJN7XnxIo53f0Scs6n+w8EqzTbHEx5zJOH5Qe -zA96Al7OlMWp4JaUUAWs3ztXxQ2WWrUUQ74xYO+2reymdSCAi48U2WyWc8oFED/V -vjCuNw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-768-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-768-rsa-intermediate.pem deleted file mode 100644 index 17c5f65..0000000 --- a/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-768-rsa-intermediate.pem +++ /dev/null @@ -1,58 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=768 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:df:d6:fb:c9:3c:e5:fd:2a:2a:4c:dd:75:6e:22: - c9:12:91:d5:b9:c2:a8:bd:7e:5c:97:90:3f:73:e9: - 9b:a6:96:91:83:4f:8e:09:5f:b0:ab:13:06:1c:c5: - 60:f9:1e:fc:c7:e2:69:02:ae:6e:7a:2a:50:3b:26: - 06:2b:40:91:16:a5:e0:e0:b1:aa:60:54:8c:25:69: - 58:54:d6:b4:8c:0b:43:41:b0:ca:2f:71:6d:f1:0c: - 03:8c:84:b0:aa:1c:ac:94:c0:e9:ca:0d:a8:18:9c: - e8:fa:84:f1:1a:67:e8:63:ae:d8:7f:06:94:17:11: - 29:41:62:a2:a5:0c:d0:0c:6d - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 02:4E:E8:A0:0B:C1:19:46:8E:1E:C9:9B:D8:AD:92:42:13:62:A3:AF - X509v3 Authority Key Identifier: - keyid:9E:E3:A7:83:B0:59:6F:91:9F:C7:D5:34:61:4A:1A:B3:66:C7:44:A0 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 65:e4:d9:6c:3e:76:68:02:02:8e:88:2c:de:36:11:d3:e0:b6: - 3a:6d:43:a1:d4:97:21:ad:7a:fa:b5:dd:a6:05:39:61:b3:04: - c2:3c:ea:4a:fb:4e:a2:c5:46:f8:a0:fd:d9:4e:c0:fa:dd:87: - c3:f8:dc:84:51:a8:72:61:bc:62:35:97:92:84:d1:54:c5:8b: - 9a:e9:5e:72:4c:2c:23:03:ab:c3:32:b4:a2:39:31:d1:4f:67: - f4:9e:7d:2f:d9:23 ------BEGIN CERTIFICATE----- -MIICXTCCAeegAwIBAgIBAjANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDDBw3Njgg -cnNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMB4XDTE2MDQyMjIwMjg0MVoXDTI2MDQy -MDIwMjg0MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAU -BgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMM -CTEyNy4wLjAuMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA39b7yTzl/Soq -TN11biLJEpHVucKovX5cl5A/c+mbppaRg0+OCV+wqxMGHMVg+R78x+JpAq5ueipQ -OyYGK0CRFqXg4LGqYFSMJWlYVNa0jAtDQbDKL3Ft8QwDjISwqhyslMDpyg2oGJzo -+oTxGmfoY67YfwaUFxEpQWKipQzQDG0CAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAw -HQYDVR0OBBYEFAJO6KALwRlGjh7Jm9itkkITYqOvMB8GA1UdIwQYMBaAFJ7jp4Ow -WW+Rn8fVNGFKGrNmx0SgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAP -BgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA2EAZeTZbD52aAICjogs3jYR -0+C2Om1DodSXIa16+rXdpgU5YbMEwjzqSvtOosVG+KD92U7A+t2Hw/jchFGocmG8 -YjWXkoTRVMWLmuleckwsIwOrwzK0ojkx0U9n9J59L9kj ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-prime256v1-ecdsa-intermediate.pem b/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-prime256v1-ecdsa-intermediate.pem deleted file mode 100644 index 45f0faa..0000000 --- a/src/pki/testdata/ssl/certificates/1024-rsa-ee-by-prime256v1-ecdsa-intermediate.pem +++ /dev/null @@ -1,56 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN=prime256v1 ecdsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:d0:22:14:bb:ad:90:dc:97:5c:0a:7e:a0:43:58: - 30:59:7b:41:33:a9:48:e4:06:c9:dd:5b:0c:3b:4a: - 2f:75:4a:5d:5b:44:b5:24:e7:ec:36:99:98:e0:56: - d2:9d:3f:d4:36:29:2f:87:27:05:3d:73:b9:9d:97: - 4c:39:79:3e:95:31:bc:e0:12:f3:26:ca:c7:33:86: - 27:a9:5f:b1:a2:66:25:3c:61:95:0c:8b:c8:03:b0: - 6a:62:bd:55:f8:07:d0:84:16:75:eb:71:ea:bd:b7: - 56:b9:14:e0:f2:41:72:92:72:36:4b:7c:23:d4:b5: - 99:85:cc:34:b8:19:69:1c:69 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 44:AD:EF:D9:05:03:83:91:FE:A0:F3:3F:1E:C2:CE:ED:99:FD:78:75 - X509v3 Authority Key Identifier: - keyid:0D:6B:B6:D7:DD:7F:CD:4E:AD:06:6B:22:E1:11:08:58:10:AB:16:2A - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: ecdsa-with-SHA256 - 30:44:02:20:56:76:a2:15:cf:3a:d3:54:7c:1b:7d:05:85:ea: - 58:2a:91:02:64:52:63:67:44:c2:ea:b3:74:02:c7:29:1c:ed: - 02:20:77:82:bf:d2:78:24:dc:a3:5a:77:be:5b:05:44:d2:6d: - f9:d4:78:ac:38:d9:69:8a:90:2c:f2:8f:41:d9:62:ad ------BEGIN CERTIFICATE----- -MIICRjCCAe2gAwIBAgIBAjAKBggqhkjOPQQDAjAwMS4wLAYDVQQDDCVwcmltZTI1 -NnYxIGVjZHNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMB4XDTE2MDQyMjIwMjg0MVoX -DTI2MDQyMDIwMjg0MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3Ju -aWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQ -BgNVBAMMCTEyNy4wLjAuMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0CIU -u62Q3JdcCn6gQ1gwWXtBM6lI5AbJ3VsMO0ovdUpdW0S1JOfsNpmY4FbSnT/UNikv -hycFPXO5nZdMOXk+lTG84BLzJsrHM4YnqV+xomYlPGGVDIvIA7BqYr1V+AfQhBZ1 -63HqvbdWuRTg8kFyknI2S3wj1LWZhcw0uBlpHGkCAwEAAaOBgDB+MAwGA1UdEwEB -/wQCMAAwHQYDVR0OBBYEFESt79kFA4OR/qDzPx7Czu2Z/Xh1MB8GA1UdIwQYMBaA -FA1rttfdf81OrQZrIuERCFgQqxYqMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF -BQcDAjAPBgNVHREECDAGhwR/AAABMAoGCCqGSM49BAMCA0cAMEQCIFZ2ohXPOtNU -fBt9BYXqWCqRAmRSY2dEwuqzdALHKRztAiB3gr/SeCTco1p3vlsFRNJt+dR4rDjZ -aYqQLPKPQdlirQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/1024-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/1024-rsa-intermediate.pem deleted file mode 100644 index d84308e..0000000 --- a/src/pki/testdata/ssl/certificates/1024-rsa-intermediate.pem +++ /dev/null @@ -1,63 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 RSA Test Root CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: CN=1024 rsa Test intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:cf:5f:2c:84:5d:36:f4:64:c4:92:14:fd:35:63: - e9:92:ff:93:bd:0d:18:5f:b3:1d:8c:2f:28:8f:f3: - 2f:8f:a1:4c:f1:1c:e4:15:66:3e:79:e7:aa:39:a0: - 46:32:4b:69:67:6b:cb:72:aa:90:e3:d0:d1:36:55: - c6:b5:49:39:7c:d2:16:97:8b:f2:6c:1b:83:ea:f3: - e2:18:6a:06:9f:49:4f:72:fd:4a:b8:42:c5:aa:0a: - 0d:2c:5c:74:97:d7:ee:4d:fc:3c:bf:1d:3f:ab:16: - 23:7a:28:32:b8:5d:c8:29:72:55:d5:ea:f1:52:37: - f1:9c:a7:6c:f4:6f:3b:79:69 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - AB:91:E6:2B:C9:C1:2E:7B:A0:65:F1:D4:8A:CE:03:4D:F4:7A:18:13 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 10:3b:22:dc:6a:83:3f:41:ba:27:2c:2a:ba:71:6b:9f:a5:db: - ad:5b:4f:e9:fc:27:c3:e7:76:8f:8a:39:c6:37:a0:15:c4:d4: - df:97:d5:af:61:4d:ea:82:59:da:83:a9:5d:7c:91:36:13:c0: - 6c:a8:b0:be:03:35:ef:2b:28:d3:40:fb:03:ba:f5:ff:d2:40: - 64:5d:b6:5d:30:a7:fa:3c:58:60:3f:64:96:bf:8a:b4:a8:06: - 06:e2:3f:86:0e:ea:d7:de:18:64:72:8e:c1:62:1f:a3:d0:fb: - c5:19:9b:62:0d:ae:61:36:7d:46:15:01:98:00:b2:c7:25:51: - 4d:f5:86:eb:a7:4b:15:4f:16:d2:04:f9:c4:b6:33:7a:9c:1d: - 77:a4:88:72:8d:9b:84:24:e6:9e:d7:e9:56:3e:23:39:74:6d: - cd:90:2f:d7:83:0d:87:c4:a6:5b:71:bc:bc:a2:55:9d:2d:a9: - 3b:05:ab:ac:82:fb:b9:8c:7d:97:24:97:aa:d9:9f:f9:25:ba: - 4e:90:1f:66:0f:cd:7e:8b:ea:df:73:83:9e:f6:cc:fc:03:47: - fc:43:cf:d6:a1:51:4e:dd:eb:c4:38:ca:22:b5:b8:75:0f:6d: - 88:9e:03:e3:5e:7f:85:8a:b4:e2:05:43:06:09:10:1e:24:93: - ae:e6:10:ac ------BEGIN CERTIFICATE----- -MIICgTCCAWmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBUyMDQ4 -IFJTQSBUZXN0IFJvb3QgQ0EwHhcNMTYwNDIyMjAyODQxWhcNMjYwNDIwMjAyODQx -WjAoMSYwJAYDVQQDDB0xMDI0IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAz18shF029GTEkhT9NWPpkv+TvQ0YX7Md -jC8oj/Mvj6FM8RzkFWY+eeeqOaBGMktpZ2vLcqqQ49DRNlXGtUk5fNIWl4vybBuD -6vPiGGoGn0lPcv1KuELFqgoNLFx0l9fuTfw8vx0/qxYjeigyuF3IKXJV1erxUjfx -nKds9G87eWkCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUq5Hm -K8nBLnugZfHUis4DTfR6GBMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUA -A4IBAQAQOyLcaoM/QbonLCq6cWufpdutW0/p/CfD53aPijnGN6AVxNTfl9WvYU3q -glnag6ldfJE2E8BsqLC+AzXvKyjTQPsDuvX/0kBkXbZdMKf6PFhgP2SWv4q0qAYG -4j+GDurX3hhkco7BYh+j0PvFGZtiDa5hNn1GFQGYALLHJVFN9Ybrp0sVTxbSBPnE -tjN6nB13pIhyjZuEJOae1+lWPiM5dG3NkC/Xgw2HxKZbcby8olWdLak7Bausgvu5 -jH2XJJeq2Z/5JbpOkB9mD81+i+rfc4Oe9sz8A0f8Q8/WoVFO3evEOMoitbh1D22I -ngPjXn+FirTiBUMGCRAeJJOu5hCs ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/10_year_validity.pem b/src/pki/testdata/ssl/certificates/10_year_validity.pem deleted file mode 100644 index c69664d..0000000 --- a/src/pki/testdata/ssl/certificates/10_year_validity.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:6f - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 30 00:00:00 2008 GMT - Not After : Oct 29 00:00:00 2018 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c1:ea:65:cb:12:00:be:84:08:b3:8e:d0:cc:b0: - 6c:cb:d7:22:2b:f8:f6:7c:e2:17:c9:fd:75:7b:52: - ce:57:24:36:2f:04:37:11:4a:9e:a0:f3:93:a9:5d: - 5e:40:23:97:c1:d0:50:10:c7:7d:c6:3d:9e:e2:96: - fb:63:ee:66:91:f1:df:6c:5e:ec:9d:22:5c:76:34: - 83:ed:ff:cc:f0:96:19:78:07:d2:e0:91:50:97:1e: - e7:af:94:19:3b:d8:00:d7:22:31:46:37:b2:56:19: - 6e:31:48:ef:f8:d7:ae:d2:0c:50:22:6f:7d:ea:a7: - cc:a1:ff:40:6e:60:91:1f:88:c8:a3:b3:a3:a1:08: - 67:7e:7e:c4:77:75:46:90:e9:d1:3b:2c:ed:cd:a9: - da:ff:8a:1e:ca:e4:ae:62:f2:a3:6b:e3:d8:50:4d: - 45:d7:fa:d0:93:9d:21:3d:7f:ea:c8:ef:ab:d8:2a: - 77:f1:84:98:2b:39:41:6c:72:4e:4f:0d:92:99:81: - fc:80:4b:94:79:61:69:7c:cf:96:fc:e6:fa:53:d5: - 9e:60:3f:51:d4:2b:52:1c:02:19:80:ae:a5:fb:2f: - 02:06:f2:70:95:d8:c6:4a:38:c8:78:4a:6e:a0:07: - cd:31:3b:8d:e0:1f:60:aa:c9:70:57:93:d2:4b:d4: - e8:3b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 9E:E1:B0:0F:6C:05:2E:6C:E6:37:0E:C9:A4:40:73:64:D5:E5:F6:13 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - ad:41:57:17:1a:be:16:cd:fd:74:01:b2:f1:f6:8c:5f:ee:7f: - e8:a0:fc:33:d5:9e:c0:40:5d:56:79:90:1f:a4:3f:56:2c:79: - 16:b8:9f:9a:17:77:9e:02:06:8c:d3:3e:fc:2e:0e:8c:13:f9: - 6c:d4:cc:1a:24:dc:04:b5:1a:45:57:c3:cf:13:04:97:51:fc: - 9b:ae:54:76:e6:24:c9:52:17:e9:24:36:ca:5f:7e:4d:13:f4: - 14:f3:09:6b:ef:59:2f:9d:94:43:50:64:81:b0:ab:52:60:f5: - 22:a9:2e:cf:a1:07:9b:52:e9:79:61:04:0d:2a:3f:5b:cb:32: - 32:b9:ce:00:74:b1:8a:85:b2:2d:99:42:45:d8:e5:2a:e3:d9: - 21:ff:26:5d:74:7d:f2:af:ae:28:02:0e:7a:36:70:5d:57:12: - 71:1c:12:b7:5f:27:ce:df:0a:db:51:fb:ce:fb:1c:41:8f:52: - 6d:e1:b9:69:a1:b9:7e:69:2a:85:1a:68:85:99:58:ec:ee:fd: - 2a:55:62:2a:38:06:fa:20:3c:e5:28:9c:b9:d6:93:fd:48:b2: - 15:24:e7:3e:84:7e:08:eb:1c:e8:47:cb:f7:e8:cc:7a:ed:79: - 0a:9c:6c:14:43:7f:92:56:bf:ed:b7:bd:89:bc:85:be:db:89: - ca:38:91:7b ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwm8wDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0wODEwMzAwMDAwMDBaFw0xODEwMjkwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDB6mXLEgC+hAizjtDMsGzL1yIr+PZ84hfJ -/XV7Us5XJDYvBDcRSp6g85OpXV5AI5fB0FAQx33GPZ7ilvtj7maR8d9sXuydIlx2 -NIPt/8zwlhl4B9LgkVCXHuevlBk72ADXIjFGN7JWGW4xSO/4167SDFAib33qp8yh -/0BuYJEfiMijs6OhCGd+fsR3dUaQ6dE7LO3Nqdr/ih7K5K5i8qNr49hQTUXX+tCT -nSE9f+rI76vYKnfxhJgrOUFsck5PDZKZgfyAS5R5YWl8z5b85vpT1Z5gP1HUK1Ic -AhmArqX7LwIG8nCV2MZKOMh4Sm6gB80xO43gH2CqyXBXk9JL1Og7AgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSe4bAPbAUubOY3DsmkQHNk1eX2EzAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEArUFXFxq+Fs39dAGy8faMX+5/6KD8M9WewEBdVnmQH6Q/Vix5Frifmhd3ngIG -jNM+/C4OjBP5bNTMGiTcBLUaRVfDzxMEl1H8m65UduYkyVIX6SQ2yl9+TRP0FPMJ -a+9ZL52UQ1BkgbCrUmD1Iqkuz6EHm1LpeWEEDSo/W8syMrnOAHSxioWyLZlCRdjl -KuPZIf8mXXR98q+uKAIOejZwXVcScRwSt18nzt8K21H7zvscQY9SbeG5aaG5fmkq -hRpohZlY7O79KlViKjgG+iA85SicudaT/UiyFSTnPoR+COsc6EfL9+jMeu15Cpxs -FEN/kla/7be9ibyFvtuJyjiRew== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/11_year_validity.pem b/src/pki/testdata/ssl/certificates/11_year_validity.pem deleted file mode 100644 index 837af75..0000000 --- a/src/pki/testdata/ssl/certificates/11_year_validity.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:70 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 30 00:00:00 2014 GMT - Not After : Oct 30 00:00:00 2025 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:9f:1f:36:a1:2e:5f:5a:92:b2:a7:41:8e:72:0f: - e5:c3:aa:1c:80:cf:b9:81:fc:e5:be:d5:80:9b:ee: - ae:c5:dc:69:d4:e4:e9:89:0a:1d:7a:f1:88:05:94: - 56:f6:03:b7:8a:5d:6b:77:0b:23:53:0d:a0:0f:ba: - 22:ee:70:9e:7e:f7:fb:76:27:94:9f:e6:13:c1:49: - bf:08:f1:5c:78:39:d0:22:33:00:f7:9c:55:58:d3: - e6:4d:8f:2b:90:26:f6:24:3f:40:8e:ee:04:01:64: - 36:8b:63:3e:51:99:f2:bd:6e:8a:cb:77:9f:e5:e8: - 25:46:ea:13:9c:3e:da:57:79:c1:fe:14:19:68:d2: - 20:72:56:30:1b:f7:11:be:5f:0c:ce:5f:25:e3:28: - 1d:bd:1d:50:5a:87:5f:f2:6d:e9:d6:76:0a:51:1c: - ed:29:c0:a3:39:42:fa:cb:77:f0:f2:03:07:d1:a6: - 52:fe:63:42:d4:a5:b5:53:fa:e2:88:85:9a:3f:58: - 5b:cf:5e:09:be:c4:08:72:5c:01:0c:ef:57:9f:a6: - b1:46:a0:52:43:ec:3c:4d:30:2c:64:37:07:4d:2b: - 4e:d0:0c:d8:30:e4:88:cf:11:63:9e:3b:17:3b:67: - be:22:99:36:d6:8e:96:84:ed:1d:8c:45:40:8f:63: - 91:15 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 1C:D3:60:F9:10:20:E7:CD:03:D7:36:7B:EC:A5:7B:4D:CB:C4:F2:1A - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 7c:16:35:6d:b3:80:02:dc:0f:c8:28:bb:44:52:8c:0b:9b:5c: - c6:36:8b:ce:f9:de:ab:99:ca:f6:b1:d6:f5:b6:ef:af:b9:40: - 9c:ee:fb:98:d4:17:e2:18:15:5f:39:8f:e9:02:d5:5d:f6:c4: - cb:bd:03:cb:54:3f:77:64:d8:fb:d4:60:b1:b9:9a:7d:b9:a0: - 1b:22:5f:2d:46:fa:f7:93:96:7e:13:ae:89:b1:68:c2:a5:e6: - 82:1f:af:08:67:36:d9:38:46:ef:33:3f:78:11:43:3b:04:9e: - 9a:68:97:a3:dd:29:73:6c:60:28:9d:d5:1a:ca:e3:20:39:b3: - eb:aa:ff:09:9d:7b:bc:18:a9:97:e1:58:7f:6b:1c:3b:50:8e: - 4d:9c:25:8b:b0:26:34:5f:69:8b:04:56:7c:4d:d9:53:31:ea: - c3:a2:30:20:4c:2a:8c:2f:f8:5b:b6:c2:3a:4f:b6:54:d7:6d: - e5:21:f6:81:59:1b:f4:4d:82:30:c9:a4:ce:fe:c8:97:d0:fe: - 48:c1:2d:89:96:96:23:e5:37:83:01:40:24:6d:7c:ab:29:9e: - 75:e8:ba:c0:c6:4b:1d:85:06:87:83:cd:3b:ae:c8:c3:b3:a6: - a8:77:54:b4:fb:32:42:22:b0:1d:08:ae:ba:a0:82:6a:56:db: - 4c:fd:05:ba ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnAwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNDEwMzAwMDAwMDBaFw0yNTEwMzAwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfHzahLl9akrKnQY5yD+XDqhyAz7mB/OW+ -1YCb7q7F3GnU5OmJCh168YgFlFb2A7eKXWt3CyNTDaAPuiLucJ5+9/t2J5Sf5hPB -Sb8I8Vx4OdAiMwD3nFVY0+ZNjyuQJvYkP0CO7gQBZDaLYz5RmfK9borLd5/l6CVG -6hOcPtpXecH+FBlo0iByVjAb9xG+XwzOXyXjKB29HVBah1/ybenWdgpRHO0pwKM5 -QvrLd/DyAwfRplL+Y0LUpbVT+uKIhZo/WFvPXgm+xAhyXAEM71efprFGoFJD7DxN -MCxkNwdNK07QDNgw5IjPEWOeOxc7Z74imTbWjpaE7R2MRUCPY5EVAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQc02D5ECDnzQPXNnvspXtNy8TyGjAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAfBY1bbOAAtwPyCi7RFKMC5tcxjaLzvneq5nK9rHW9bbvr7lAnO77mNQX4hgV -XzmP6QLVXfbEy70Dy1Q/d2TY+9RgsbmafbmgGyJfLUb695OWfhOuibFowqXmgh+v -CGc22ThG7zM/eBFDOwSemmiXo90pc2xgKJ3VGsrjIDmz66r/CZ17vBipl+FYf2sc -O1COTZwli7AmNF9piwRWfE3ZUzHqw6IwIEwqjC/4W7bCOk+2VNdt5SH2gVkb9E2C -MMmkzv7Il9D+SMEtiZaWI+U3gwFAJG18qymedei6wMZLHYUGh4PNO67Iw7OmqHdU -tPsyQiKwHQiuuqCCalbbTP0Fug== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/2029_globalsign_com_cert.pem b/src/pki/testdata/ssl/certificates/2029_globalsign_com_cert.pem deleted file mode 100644 index cd0d988..0000000 --- a/src/pki/testdata/ssl/certificates/2029_globalsign_com_cert.pem +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFTjCCBDagAwIBAgILAQAAAAABJbCbWRgwDQYJKoZIhvcNAQELBQAwcDEmMCQG -A1UECxMdRXh0ZW5kZWQgVmFsaWRhdGlvbiBTSEEyNTYgQ0ExEzARBgNVBAoTCkds -b2JhbFNpZ24xMTAvBgNVBAMTKEdsb2JhbFNpZ24gRXh0ZW5kZWQgVmFsaWRhdGlv -biBTSEEyNTYgQ0EwHhcNMDkxMjIxMDkwNTA4WhcNMTExMjIxMDkwNTA4WjCB4TEb -MBkGA1UEDxMSVjEuMCwgQ2xhdXNlIDUuKGIpMRcwFQYDVQQFEw4wMTEwLTAxLTA0 -MDE4MTETMBEGCysGAQQBgjc8AgEDEwJKUDELMAkGA1UEBhMCSlAxDjAMBgNVBAgT -BVRPS1lPMRAwDgYDVQQHEwdTaGlidXlhMRkwFwYDVQQJExAyMC0xIHNha3VyYWdh -b2thMRIwEAYDVQQLEwlUZWNobmljYWwxGDAWBgNVBAoTD0dsb2JhbFNpZ24gSy5L -LjEcMBoGA1UEAxMTMjAyOS5nbG9iYWxzaWduLmNvbTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAK1O+qRY8VTYBzAU+RkWEli4/0uTMtYJmR138O7iOrog -3rRPfAZouTz9zZf8aKCp2S1VAHufuxzn1GhQRdlI6fnyDEjJoUpDo4mJbJFUghLt -bwnFIsScSHdqaTKx0N99xRR9SJbEshfeIszBWTdLsUdBDzj64YiBg9qJMfPynPGC -dbbf4crM/28jXaiaB/AJ8lv1AAstW8bps+y6ZHrZqG9i3llfetpe+4Dg9XqUQAD4 -0OBNIn8fD2CXk916wiN2JfnZjSOStTKSsy5zXlx5mgMFkSMtOkqbJDgbjcYmajA2 -YDnzlSbz9oYL4jv/NZ+A2aJzoqbP7tef88P/cN+/XXECAwEAAaOCAXUwggFxMB0G -A1UdDgQWBBRZvNlp97Blu8g0xdLC7xd4pkceizAfBgNVHSMEGDAWgBSK/BQbPaNZ -Z6U74XOSpmKRf+R4MDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6 -Ly9zZWN1cmUuZ2xvYmFsc2lnbi5uZXQvY2FjZXJ0L1NIQTI1NmV4dGVuZHZhbDEu -Y3J0MD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQv -U0hBMjU2RXh0ZW5kVmFsMS5jcmwwCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCBPAw -HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEsGA1UdIAREMEIwQAYJKwYB -BAGgMgEBMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuZ2xvYmFsc2lnbi5uZXQv -cmVwb3NpdG9yeS8wEQYJYIZIAYb4QgEBBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IB -AQBCfnYnxZkYxp3amwmrrCAwac5SYVK4bDwxKtAHa9NbOGV6jAXFNIknttAuwy9I -w7h4E5HHnZeDVZpWQ1ncmMqkMPfYruThLGx8GOMThigkMHOZLPx+WmB4alDKj9Ra -SOISmiIHMfw7RKPZuL3dttzr477DVukILeUjfKeQ9dlQwAyeMNH840jrOmyVl54R -nfFnOL7O46NqJBrC0cNp5bdyzVJ77qZ29r7e3+uJ61OeCzovImyPrgGDy96rhxaB -ZjdXGKH2nlFQ3SpsH5QMVr8kn8a1etoIGexJ8L7FdSu3ywvyjaIPOANI/Y0gTlax -vIkF1Dc5EejvaEMyVwrVTbzJ ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-1024-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-1024-rsa-intermediate.pem deleted file mode 100644 index 1627541..0000000 --- a/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-1024-rsa-intermediate.pem +++ /dev/null @@ -1,73 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 3 (0x3) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=1024 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:d6:a4:94:54:db:41:d7:ce:11:35:61:ec:32:eb: - 6b:d7:17:92:f3:30:4c:43:67:f6:d1:7a:06:6c:7c: - 15:79:35:78:38:ac:5e:4d:87:b7:34:cb:99:f8:4f: - 15:f9:68:38:48:de:2e:dc:1e:67:82:f9:b6:f2:82: - bc:13:68:8f:14:fa:11:45:db:f6:fb:43:14:59:c3: - 16:e2:df:02:8a:a0:d3:9c:52:05:ff:1c:d1:2a:ab: - e2:bd:a3:f6:6b:1c:cd:e1:2c:97:7b:7c:d1:21:7e: - f1:0b:1c:39:4d:2f:63:fc:ae:f3:4a:8a:a1:04:67: - 9b:3c:bd:2d:4d:05:41:d9:16:6f:54:21:56:4c:d3: - 57:70:8b:4f:ad:68:96:f2:cb:84:81:c5:b1:e9:91: - 5d:22:64:d7:1c:37:b9:f7:ee:52:66:3a:51:5f:80: - e1:22:74:04:3f:6a:8b:c4:e5:be:f0:4e:26:96:44: - e9:e8:62:3a:86:4b:60:b7:31:a6:85:11:b8:6d:e6: - 14:3f:1e:ac:6c:7a:2a:64:12:e0:39:64:e3:c8:73: - 4b:9b:3d:a3:11:71:8b:c0:9d:2e:43:f2:6b:1f:4c: - 51:fb:8d:e7:25:a3:7b:9b:cb:4d:25:9b:d6:b3:44: - 36:1c:85:9a:d0:7b:82:73:a5:12:03:1c:0a:0c:72: - 5e:e3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 36:3E:3F:89:C5:E9:92:06:AE:84:D9:26:55:01:41:CC:51:2F:AF:D2 - X509v3 Authority Key Identifier: - keyid:AB:91:E6:2B:C9:C1:2E:7B:A0:65:F1:D4:8A:CE:03:4D:F4:7A:18:13 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 1f:19:60:43:08:f6:5f:a8:4a:b3:22:3f:5a:b7:d9:50:e9:18: - 3e:3e:f4:a4:84:43:63:61:92:8d:47:c4:6b:6b:a8:2e:c7:72: - e8:9b:35:5f:28:88:02:23:ff:e3:69:3e:c7:e4:b5:f8:e2:fd: - 8e:c4:2c:79:c3:d2:51:d6:83:75:d0:85:29:5a:68:0f:32:3d: - be:bb:06:9b:8b:ab:2a:61:44:f3:da:65:4c:ba:0d:c7:fa:52: - 7d:5b:70:44:b6:e4:84:78:bd:9f:ae:25:d3:b9:1f:4f:86:4d: - 74:2d:cf:1d:80:dc:7b:c1:a1:91:d7:1e:1a:a5:01:59:e3:2a: - 35:8a ------BEGIN CERTIFICATE----- -MIIDAzCCAmygAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB0xMDI0 -IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTAeFw0xNjA0MjIyMDI4NDFaFw0yNjA0 -MjAyMDI4NDFaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw -FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQD -DAkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWpJRU -20HXzhE1Yewy62vXF5LzMExDZ/bRegZsfBV5NXg4rF5Nh7c0y5n4TxX5aDhI3i7c -HmeC+bbygrwTaI8U+hFF2/b7QxRZwxbi3wKKoNOcUgX/HNEqq+K9o/ZrHM3hLJd7 -fNEhfvELHDlNL2P8rvNKiqEEZ5s8vS1NBUHZFm9UIVZM01dwi0+taJbyy4SBxbHp -kV0iZNccN7n37lJmOlFfgOEidAQ/aovE5b7wTiaWROnoYjqGS2C3MaaFEbht5hQ/ -HqxseipkEuA5ZOPIc0ubPaMRcYvAnS5D8msfTFH7jeclo3uby00lm9azRDYchZrQ -e4JzpRIDHAoMcl7jAgMBAAGjgYAwfjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ2 -Pj+JxemSBq6E2SZVAUHMUS+v0jAfBgNVHSMEGDAWgBSrkeYrycEue6Bl8dSKzgNN -9HoYEzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocE -fwAAATANBgkqhkiG9w0BAQsFAAOBgQAfGWBDCPZfqEqzIj9at9lQ6Rg+PvSkhENj -YZKNR8Rra6gux3LomzVfKIgCI//jaT7H5LX44v2OxCx5w9JR1oN10IUpWmgPMj2+ -uwabi6sqYUTz2mVMug3H+lJ9W3BEtuSEeL2friXTuR9Phk10Lc8dgNx7waGR1x4a -pQFZ4yo1ig== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-2048-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-2048-rsa-intermediate.pem deleted file mode 100644 index 6a59709..0000000 --- a/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-2048-rsa-intermediate.pem +++ /dev/null @@ -1,82 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 3 (0x3) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b4:72:22:05:11:c8:e7:3b:0d:1a:c2:7d:ce:14: - 07:8f:89:df:ea:29:77:b5:55:dc:eb:69:23:46:81: - fc:9f:8f:8b:ad:a1:f8:3b:a2:55:1e:d8:8d:ef:81: - fd:5d:ae:2e:9c:bb:69:e4:78:80:4a:9b:52:83:e7: - 4c:d0:32:f2:13:c8:ca:bc:71:4b:46:75:a7:b1:a1: - aa:f3:0e:1c:06:3a:27:0e:2e:3c:43:7d:38:e7:4f: - 03:bf:2b:a1:e3:60:31:bc:ff:31:88:d7:dc:83:8d: - e7:3d:18:5e:b1:10:7f:fe:43:b6:83:c6:c4:3a:56: - d0:f4:26:86:17:47:99:a0:4f:85:05:4e:5c:a5:66: - 42:4c:14:28:57:ff:d3:04:d9:2b:88:aa:5a:05:99: - 90:e7:50:af:4f:92:00:36:34:47:85:d0:82:63:80: - 2e:1a:bf:c4:9f:6b:23:3b:b4:2b:23:7f:bf:09:31: - da:23:06:0c:ab:73:e1:8d:38:a7:64:0d:1c:ef:18: - ed:33:3b:8c:48:e7:ef:67:3d:08:cc:66:27:80:1c: - 67:12:a2:a0:ec:fa:3f:84:d7:9b:60:73:fe:cb:6d: - 73:c6:fc:f7:4c:75:50:3e:d9:9a:c4:9a:41:c5:af: - c9:1c:d3:a1:b6:02:1f:61:cf:59:21:de:bb:92:3b: - dc:ab - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 22:2C:2F:EC:CC:84:35:E7:25:3D:64:7C:7D:31:75:BD:B5:B1:B3:2A - X509v3 Authority Key Identifier: - keyid:5C:C2:71:76:C1:26:B1:0C:31:73:C8:92:D3:1E:01:12:4B:CC:5A:14 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - b3:02:f9:ad:d2:ce:96:da:ae:ab:a5:f7:08:0f:c1:53:78:6a: - da:c1:2c:5b:97:df:ce:59:cb:98:a6:5a:a9:24:02:58:b8:c1: - a5:72:a6:e5:8e:25:2b:9b:09:c6:97:f8:2b:ed:1f:70:e5:e2: - 7b:f7:8d:42:0b:cb:8d:1b:d7:85:7c:ec:14:ac:27:6a:69:7c: - d7:e0:4c:af:8f:1a:47:0b:e1:fb:34:8c:dc:09:30:a6:ff:01: - 92:43:51:71:e2:a7:3b:55:ff:55:a3:a7:df:28:ef:d7:86:36: - e1:8d:c9:5e:69:e7:54:85:9c:09:cc:c6:66:64:b4:41:e9:1d: - 2d:7c:f2:91:dc:16:1b:f8:e6:b5:8d:14:1c:be:89:6f:da:85: - b0:fd:15:d5:a1:d4:21:1d:0f:b5:7e:91:84:68:ab:4d:ff:90: - b1:f0:ca:dc:6c:41:a7:f6:7d:3e:f5:e8:1f:24:78:ad:79:ce: - 03:69:bd:81:e3:d9:c8:8e:48:93:6a:24:7d:57:46:f4:6d:54: - 69:45:5a:86:8e:91:20:1f:e5:64:0d:f6:f4:b2:d2:df:c8:6d: - 1c:cb:f0:e5:65:b0:3d:cd:56:66:66:ce:d6:0d:5b:09:99:5e: - 34:58:6e:81:c7:fd:55:c8:c1:19:e8:cd:bd:df:74:1d:2a:96: - 5a:d9:27:4d ------BEGIN CERTIFICATE----- -MIIDhDCCAmygAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB0yMDQ4 -IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTAeFw0xNjA0MjIyMDI4NDFaFw0yNjA0 -MjAyMDI4NDFaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw -FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQD -DAkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0ciIF -EcjnOw0awn3OFAePid/qKXe1VdzraSNGgfyfj4utofg7olUe2I3vgf1dri6cu2nk -eIBKm1KD50zQMvITyMq8cUtGdaexoarzDhwGOicOLjxDfTjnTwO/K6HjYDG8/zGI -19yDjec9GF6xEH/+Q7aDxsQ6VtD0JoYXR5mgT4UFTlylZkJMFChX/9ME2SuIqloF -mZDnUK9PkgA2NEeF0IJjgC4av8SfayM7tCsjf78JMdojBgyrc+GNOKdkDRzvGO0z -O4xI5+9nPQjMZieAHGcSoqDs+j+E15tgc/7LbXPG/PdMdVA+2ZrEmkHFr8kc06G2 -Ah9hz1kh3ruSO9yrAgMBAAGjgYAwfjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQi -LC/szIQ15yU9ZHx9MXW9tbGzKjAfBgNVHSMEGDAWgBRcwnF2wSaxDDFzyJLTHgES -S8xaFDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocE -fwAAATANBgkqhkiG9w0BAQsFAAOCAQEAswL5rdLOltquq6X3CA/BU3hq2sEsW5ff -zlnLmKZaqSQCWLjBpXKm5Y4lK5sJxpf4K+0fcOXie/eNQgvLjRvXhXzsFKwnaml8 -1+BMr48aRwvh+zSM3Akwpv8BkkNRceKnO1X/VaOn3yjv14Y24Y3JXmnnVIWcCczG -ZmS0QekdLXzykdwWG/jmtY0UHL6Jb9qFsP0V1aHUIR0PtX6RhGirTf+QsfDK3GxB -p/Z9PvXoHyR4rXnOA2m9gePZyI5Ik2okfVdG9G1UaUVaho6RIB/lZA329LLS38ht -HMvw5WWwPc1WZmbO1g1bCZleNFhugcf9VcjBGejNvd90HSqWWtknTQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-768-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-768-rsa-intermediate.pem deleted file mode 100644 index 0035d83..0000000 --- a/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-768-rsa-intermediate.pem +++ /dev/null @@ -1,70 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 3 (0x3) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=768 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ba:3a:68:2e:28:8c:de:30:76:83:38:b6:db:fc: - 25:57:b3:f7:7d:49:63:3d:5a:0f:e4:d7:0a:d7:73: - 62:2c:a7:1e:4b:a3:f6:82:d7:68:b0:77:83:f7:77: - 1d:21:16:cf:86:8a:d3:ee:05:e8:85:0b:63:49:f5: - 72:aa:80:00:43:36:12:6c:c2:31:07:e5:b8:d8:83: - 4b:a7:ff:8a:06:58:c2:00:06:6b:b1:1e:b6:05:ae: - 02:8a:0b:71:5a:37:70:70:10:7a:3a:fe:20:e6:6a: - 24:fc:a5:93:78:fd:1d:26:bc:68:25:4a:19:41:9d: - 33:bb:65:c1:71:aa:b5:0a:cf:44:7a:88:66:2b:98: - d4:30:bd:dc:13:81:fe:c1:6e:04:38:d5:6c:cf:68: - 68:fc:d9:16:0d:7a:4d:4b:df:60:2b:af:87:33:48: - 6a:8a:11:f9:d8:a2:75:a8:d7:96:19:a2:68:3e:70: - 2b:4b:b8:32:a0:f1:6d:91:11:ea:1c:de:43:bb:b6: - 7b:ad:c5:bb:c2:76:9e:c2:39:60:fe:0b:c2:45:51: - 5e:8f:15:10:9f:31:d6:41:18:37:3f:55:99:81:7c: - 2b:49:f9:bd:b2:28:b5:fd:f2:88:11:2f:ba:83:2f: - 44:55:14:94:f7:15:36:4c:c4:57:9f:8e:b9:52:d1: - 28:8f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 2D:03:2A:82:88:41:B4:78:09:AD:65:4D:E4:95:80:A0:48:F7:06:45 - X509v3 Authority Key Identifier: - keyid:9E:E3:A7:83:B0:59:6F:91:9F:C7:D5:34:61:4A:1A:B3:66:C7:44:A0 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 89:8c:20:d3:4b:32:9a:6b:de:02:e8:73:5d:90:5c:1f:63:80: - 65:7e:08:9e:af:05:b0:41:d3:d9:44:5c:10:c4:4c:c9:93:d0: - ce:55:da:1a:06:30:0a:d3:ff:42:87:2d:83:98:e4:64:68:5b: - 5b:b5:df:2e:4f:1c:b8:7a:85:a9:3e:38:a8:b0:9a:fc:87:ec: - 97:27:43:ff:35:0f:13:9f:84:22:a0:27:a7:d4:9a:df:f6:b5: - b2:76:d3:71:02:f0 ------BEGIN CERTIFICATE----- -MIIC4TCCAmugAwIBAgIBAzANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDDBw3Njgg -cnNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMB4XDTE2MDQyMjIwMjg0MVoXDTI2MDQy -MDIwMjg0MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAU -BgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMM -CTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALo6aC4o -jN4wdoM4ttv8JVez931JYz1aD+TXCtdzYiynHkuj9oLXaLB3g/d3HSEWz4aK0+4F -6IULY0n1cqqAAEM2EmzCMQfluNiDS6f/igZYwgAGa7EetgWuAooLcVo3cHAQejr+ -IOZqJPylk3j9HSa8aCVKGUGdM7tlwXGqtQrPRHqIZiuY1DC93BOB/sFuBDjVbM9o -aPzZFg16TUvfYCuvhzNIaooR+diidajXlhmiaD5wK0u4MqDxbZER6hzeQ7u2e63F -u8J2nsI5YP4LwkVRXo8VEJ8x1kEYNz9VmYF8K0n5vbIotf3yiBEvuoMvRFUUlPcV -NkzEV5+OuVLRKI8CAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFC0D -KoKIQbR4Ca1lTeSVgKBI9wZFMB8GA1UdIwQYMBaAFJ7jp4OwWW+Rn8fVNGFKGrNm -x0SgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAPBgNVHREECDAGhwR/ -AAABMA0GCSqGSIb3DQEBCwUAA2EAiYwg00symmveAuhzXZBcH2OAZX4Inq8FsEHT -2URcEMRMyZPQzlXaGgYwCtP/Qoctg5jkZGhbW7XfLk8cuHqFqT44qLCa/IfslydD -/zUPE5+EIqAnp9Sa3/a1snbTcQLw ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-prime256v1-ecdsa-intermediate.pem b/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-prime256v1-ecdsa-intermediate.pem deleted file mode 100644 index 8c9bee9..0000000 --- a/src/pki/testdata/ssl/certificates/2048-rsa-ee-by-prime256v1-ecdsa-intermediate.pem +++ /dev/null @@ -1,67 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 3 (0x3) - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN=prime256v1 ecdsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:cf:f1:3b:6f:93:35:88:59:85:00:af:e7:96:90: - e2:58:0b:8f:f3:5f:b9:0c:10:47:8d:1d:18:0f:09: - 1d:4e:45:cf:36:25:5c:f8:43:06:30:ce:af:39:5b: - de:e9:c6:66:8b:e2:82:37:fc:8a:74:83:8b:8a:9f: - 88:2d:39:15:f4:b2:56:de:50:3a:c2:d4:aa:7c:d6: - a9:b4:1b:e4:4d:25:27:3a:40:bc:8d:07:c1:30:36: - fe:22:4a:68:1f:04:75:46:58:1a:a4:18:ae:57:34: - 93:57:04:65:fb:13:80:bd:04:91:8a:41:82:32:fd: - d7:b5:b6:f1:cb:33:16:20:98:47:a5:b4:0e:69:3e: - e2:07:70:d5:b6:47:9b:5a:49:44:6e:83:85:3f:b0: - 7c:db:c7:46:5b:99:66:f9:10:5b:8e:88:ea:66:3e: - 37:f2:0f:c9:06:8b:0e:3c:b7:fe:59:16:75:ff:3f: - ec:61:94:73:31:84:67:4f:b4:06:70:58:3a:ea:32: - 07:02:29:75:8c:d0:52:db:e3:0b:46:54:c6:5b:42: - 43:34:a5:92:d8:10:81:15:ad:fd:cf:41:f6:f5:ef: - 7d:8f:a0:40:f3:dc:64:17:d4:a3:83:63:9b:3f:af: - af:28:ed:e7:ed:5d:6d:2b:16:61:4d:d3:c3:d6:15: - 78:8d - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 52:FC:90:06:58:27:74:55:A2:49:6E:4E:BE:2B:81:E5:D1:E2:1A:14 - X509v3 Authority Key Identifier: - keyid:0D:6B:B6:D7:DD:7F:CD:4E:AD:06:6B:22:E1:11:08:58:10:AB:16:2A - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: ecdsa-with-SHA256 - 30:44:02:20:72:99:1c:a8:f4:a6:3d:cc:36:4c:ad:46:1e:bb: - e3:1e:d0:d5:a4:ec:99:e3:4a:f8:47:bd:7c:dd:12:cb:c0:d1: - 02:20:64:c7:e9:b1:8e:bd:3d:59:31:17:a1:dd:b3:f9:11:ff: - 83:f6:be:1d:46:d9:50:cf:b4:47:94:49:4a:06:94:2d ------BEGIN CERTIFICATE----- -MIICyjCCAnGgAwIBAgIBAzAKBggqhkjOPQQDAjAwMS4wLAYDVQQDDCVwcmltZTI1 -NnYxIGVjZHNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMB4XDTE2MDQyMjIwMjg0MVoX -DTI2MDQyMDIwMjg0MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3Ju -aWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQ -BgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AM/xO2+TNYhZhQCv55aQ4lgLj/NfuQwQR40dGA8JHU5FzzYlXPhDBjDOrzlb3unG -Zovigjf8inSDi4qfiC05FfSyVt5QOsLUqnzWqbQb5E0lJzpAvI0HwTA2/iJKaB8E -dUZYGqQYrlc0k1cEZfsTgL0EkYpBgjL917W28cszFiCYR6W0Dmk+4gdw1bZHm1pJ -RG6DhT+wfNvHRluZZvkQW46I6mY+N/IPyQaLDjy3/lkWdf8/7GGUczGEZ0+0BnBY -OuoyBwIpdYzQUtvjC0ZUxltCQzSlktgQgRWt/c9B9vXvfY+gQPPcZBfUo4Njmz+v -ryjt5+1dbSsWYU3Tw9YVeI0CAwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAwHQYDVR0O -BBYEFFL8kAZYJ3RVokluTr4rgeXR4hoUMB8GA1UdIwQYMBaAFA1rttfdf81OrQZr -IuERCFgQqxYqMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAPBgNVHREE -CDAGhwR/AAABMAoGCCqGSM49BAMCA0cAMEQCIHKZHKj0pj3MNkytRh674x7Q1aTs -meNK+Ee9fN0Sy8DRAiBkx+mxjr09WTEXod2z+RH/g/a+HUbZUM+0R5RJSgaULQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/2048-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/2048-rsa-intermediate.pem deleted file mode 100644 index bfb349b..0000000 --- a/src/pki/testdata/ssl/certificates/2048-rsa-intermediate.pem +++ /dev/null @@ -1,75 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 3 (0x3) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 RSA Test Root CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: CN=2048 rsa Test intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c2:7e:77:f6:cb:2f:92:95:d0:ee:f8:6e:01:9c: - 60:80:9c:49:fc:44:ff:d4:86:11:9a:18:4c:ce:d4: - 43:93:80:6a:f5:f3:a7:d6:88:a4:31:19:56:e1:17: - 06:dc:ed:6f:7b:12:cf:2e:77:f1:fc:44:a7:46:86: - 58:76:2c:86:e5:1f:8f:3c:60:cf:04:14:b5:58:04: - 64:81:9e:9c:36:97:0e:a1:ad:fd:a0:58:80:c0:b7: - 8e:49:16:d3:2e:9c:51:01:5a:13:0a:88:c5:35:b1: - 2d:1f:11:fd:b2:b4:ce:b6:b3:90:c8:8e:5d:2e:45: - ed:71:09:80:2e:99:76:f7:92:91:a8:ca:82:96:97: - 85:8a:ea:d6:9b:ac:36:a9:6a:52:9d:f3:28:b4:3c: - ff:22:75:fc:ad:3b:fc:6b:ee:9b:25:52:ec:63:6f: - ce:eb:64:6d:3f:39:ab:76:bf:76:b1:df:80:eb:28: - c5:b4:c8:cf:9a:2c:2a:76:c9:15:75:24:6a:fb:bf: - 4d:43:38:d8:ca:0d:12:64:7c:84:99:82:4c:ff:15: - 3b:e9:ef:d6:47:b4:99:93:c5:cb:47:45:df:a7:d5: - f9:c5:b9:d1:ec:e4:4e:bd:13:89:3b:2f:36:32:ff: - 0d:ed:a7:b3:88:ca:63:5b:57:58:9e:88:d6:97:6f: - 1b:13 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 5C:C2:71:76:C1:26:B1:0C:31:73:C8:92:D3:1E:01:12:4B:CC:5A:14 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 6c:e3:16:4f:09:81:d2:61:e3:c1:39:35:9d:f3:1e:2c:4f:77: - 40:26:e7:24:83:55:89:60:3d:6c:65:d4:9e:47:99:5f:09:ea: - 1a:1a:16:59:8d:82:85:c8:e5:52:cc:e2:89:b1:3f:d7:e2:51: - 43:5f:d1:ab:bc:5c:0d:22:c7:85:7f:95:db:a1:55:ee:7d:98: - c9:41:ee:8b:69:c0:e6:8c:29:3d:fb:d1:66:1f:5a:79:2d:6a: - 0e:6f:9d:84:60:56:3e:1f:7e:0a:b2:40:af:97:1d:a8:dd:92: - d8:b9:57:ee:62:98:f9:f1:0f:32:3c:a0:bd:30:6d:cf:b7:7b: - 17:83:fe:e8:09:7d:ca:a7:13:61:de:47:55:a5:d0:0d:0c:73: - 75:8a:34:e3:91:19:1f:e7:09:07:2b:8d:67:5c:1a:bf:83:9f: - d3:ca:dd:c5:28:3f:1e:0a:6b:7d:eb:da:60:bb:9a:6c:a2:30: - 8d:f7:3a:01:56:ba:9e:e1:5b:7a:bb:8d:ba:ff:3c:67:a7:b0: - 8c:09:42:52:03:ea:33:ff:e9:c4:c0:4f:7b:ad:48:26:f0:f1: - 11:a8:ba:1d:30:6e:9b:6e:31:b7:70:8a:5d:e7:37:21:c4:f3: - 38:96:8e:60:fb:19:d3:92:63:b8:8f:14:41:25:fb:62:29:34: - 11:c5:a0:a2 ------BEGIN CERTIFICATE----- -MIIDBTCCAe2gAwIBAgIBAzANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBUyMDQ4 -IFJTQSBUZXN0IFJvb3QgQ0EwHhcNMTYwNDIyMjAyODQxWhcNMjYwNDIwMjAyODQx -WjAoMSYwJAYDVQQDDB0yMDQ4IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJ+d/bLL5KV0O74bgGcYICcSfxE -/9SGEZoYTM7UQ5OAavXzp9aIpDEZVuEXBtztb3sSzy538fxEp0aGWHYshuUfjzxg -zwQUtVgEZIGenDaXDqGt/aBYgMC3jkkW0y6cUQFaEwqIxTWxLR8R/bK0zrazkMiO -XS5F7XEJgC6ZdveSkajKgpaXhYrq1pusNqlqUp3zKLQ8/yJ1/K07/GvumyVS7GNv -zutkbT85q3a/drHfgOsoxbTIz5osKnbJFXUkavu/TUM42MoNEmR8hJmCTP8VO+nv -1ke0mZPFy0dF36fV+cW50ezkTr0TiTsvNjL/De2ns4jKY1tXWJ6I1pdvGxMCAwEA -AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUXMJxdsEmsQwxc8iS0x4B -EkvMWhQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQBs4xZPCYHS -YePBOTWd8x4sT3dAJuckg1WJYD1sZdSeR5lfCeoaGhZZjYKFyOVSzOKJsT/X4lFD -X9GrvFwNIseFf5XboVXufZjJQe6LacDmjCk9+9FmH1p5LWoOb52EYFY+H34KskCv -lx2o3ZLYuVfuYpj58Q8yPKC9MG3Pt3sXg/7oCX3KpxNh3kdVpdANDHN1ijTjkRkf -5wkHK41nXBq/g5/Tyt3FKD8eCmt969pgu5psojCN9zoBVrqe4Vt6u426/zxnp7CM -CUJSA+oz/+nEwE97rUgm8PERqLodMG6bbjG3cIpd5zchxPM4lo5g+xnTkmO4jxRB -JftiKTQRxaCi ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/2048-rsa-root.pem b/src/pki/testdata/ssl/certificates/2048-rsa-root.pem deleted file mode 100644 index da02ece..0000000 --- a/src/pki/testdata/ssl/certificates/2048-rsa-root.pem +++ /dev/null @@ -1,75 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 14510385134211580431 (0xc95f3e6676ca420f) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 RSA Test Root CA - Validity - Not Before: Apr 22 20:28:40 2016 GMT - Not After : Apr 20 20:28:40 2026 GMT - Subject: CN=2048 RSA Test Root CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a0:0b:c9:40:3e:46:2d:4d:a1:38:35:9d:68:a5: - 9d:3e:8f:59:39:ba:8f:a5:42:74:7d:e8:17:3b:da: - 75:13:98:6b:73:f1:4b:a9:6d:5e:70:67:5c:7a:08: - 92:58:b2:64:a1:05:2d:53:41:bd:ab:a8:31:73:d4: - 56:07:ab:68:b9:39:39:52:65:6a:d7:1e:16:38:16: - c5:12:3c:f0:2a:50:59:43:31:4a:d0:fa:51:13:17: - 2a:89:84:42:91:1b:50:19:e8:ce:33:d8:a9:0a:ea: - c1:9a:00:9e:c1:14:58:40:51:a4:20:50:1b:a1:93: - b2:20:82:fe:80:b5:52:35:e7:e6:0b:72:b6:f5:a9: - 39:67:67:45:4b:be:c6:c0:2a:cd:b7:ef:77:2d:14: - c8:98:a5:8d:24:32:ed:db:1e:e4:6c:95:ee:a5:f0: - ca:39:c2:df:dd:1c:8e:9f:cb:9c:c1:00:9c:ef:48: - 09:97:a6:5a:d8:a8:3d:b9:15:95:35:6a:10:bf:40: - 58:0e:4a:f4:d8:9a:8a:4f:3e:ee:48:4a:fe:5f:f6: - 68:e2:75:3e:5a:32:73:c7:97:e7:0c:25:6f:a3:7d: - db:08:3d:b4:d3:5d:2f:49:e7:59:1f:5a:b9:7e:dc: - cb:e4:97:44:60:a1:d1:6b:2d:3c:79:1c:9f:b8:7b: - 6a:1b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - FD:5B:72:5F:28:F3:AB:A1:0F:21:EF:C3:F9:99:17:60:DC:BD:1F:BD - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 54:78:5d:70:a0:c3:44:48:93:2b:af:9e:41:26:b0:3e:7d:c7: - f0:ae:b1:37:d0:93:33:33:30:a6:d0:8c:20:cd:fe:fd:8b:1b: - bf:1d:72:25:fd:56:11:56:63:c0:3c:b3:6b:db:db:65:28:4f: - 6a:19:0b:2d:7c:1d:f1:46:50:14:9d:33:2e:75:dd:a7:45:15: - 44:54:61:6e:96:8f:a2:c4:60:8d:4e:49:08:07:32:d2:a9:c3: - c8:68:96:b2:50:85:3b:c2:4a:f9:e4:16:87:16:ea:47:4e:00: - 50:43:4d:78:99:c7:aa:ea:23:2a:b8:b8:7a:97:de:ba:97:8d: - e7:4b:74:e4:ed:53:5e:d1:5b:ed:5a:e2:95:a3:94:ad:d8:c4: - b1:62:25:29:93:8b:77:27:8f:71:51:64:b7:56:d5:33:82:5e: - 6f:39:56:cf:14:fd:1f:e2:46:9d:dd:2f:74:53:f1:27:87:f7: - fe:b0:6c:47:db:ff:fa:7b:17:97:a8:b9:ba:07:1e:dc:b5:47: - de:84:38:57:a4:47:6c:39:16:7f:1f:dd:63:99:1b:e1:28:90: - aa:42:07:2c:b2:e7:be:ef:8c:ca:a5:1e:33:5c:e5:73:cf:ba: - b3:33:d1:06:fb:c4:fa:f2:bc:f1:5c:92:69:fb:71:15:05:e3: - 99:a6:ba:cb ------BEGIN CERTIFICATE----- -MIIDBTCCAe2gAwIBAgIJAMlfPmZ2ykIPMA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV -BAMMFTIwNDggUlNBIFRlc3QgUm9vdCBDQTAeFw0xNjA0MjIyMDI4NDBaFw0yNjA0 -MjAyMDI4NDBaMCAxHjAcBgNVBAMMFTIwNDggUlNBIFRlc3QgUm9vdCBDQTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKALyUA+Ri1NoTg1nWilnT6PWTm6 -j6VCdH3oFzvadROYa3PxS6ltXnBnXHoIkliyZKEFLVNBvauoMXPUVgeraLk5OVJl -atceFjgWxRI88CpQWUMxStD6URMXKomEQpEbUBnozjPYqQrqwZoAnsEUWEBRpCBQ -G6GTsiCC/oC1UjXn5gtytvWpOWdnRUu+xsAqzbfvdy0UyJiljSQy7dse5GyV7qXw -yjnC390cjp/LnMEAnO9ICZemWtioPbkVlTVqEL9AWA5K9Niaik8+7khK/l/2aOJ1 -Ployc8eX5wwlb6N92wg9tNNdL0nnWR9auX7cy+SXRGCh0WstPHkcn7h7ahsCAwEA -AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU/VtyXyjzq6EPIe/D+ZkX -YNy9H70wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQBUeF1woMNE -SJMrr55BJrA+fcfwrrE30JMzMzCm0Iwgzf79ixu/HXIl/VYRVmPAPLNr29tlKE9q -GQstfB3xRlAUnTMudd2nRRVEVGFulo+ixGCNTkkIBzLSqcPIaJayUIU7wkr55BaH -FupHTgBQQ014mceq6iMquLh6l966l43nS3Tk7VNe0VvtWuKVo5St2MSxYiUpk4t3 -J49xUWS3VtUzgl5vOVbPFP0f4kad3S90U/Enh/f+sGxH2//6exeXqLm6Bx7ctUfe -hDhXpEdsORZ/H91jmRvhKJCqQgcssue+74zKpR4zXOVzz7qzM9EG+8T68rzxXJJp -+3EVBeOZprrL ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/398_days_1_second_after_2020_09_01.pem b/src/pki/testdata/ssl/certificates/398_days_1_second_after_2020_09_01.pem deleted file mode 100644 index 3fa2461..0000000 --- a/src/pki/testdata/ssl/certificates/398_days_1_second_after_2020_09_01.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:80 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Sep 2 00:00:00 2020 GMT - Not After : Oct 5 00:00:01 2021 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b3:2b:e0:a9:cb:53:7c:f1:9e:96:4e:70:a3:8d: - 32:7b:bc:e0:2f:71:83:08:9f:e3:56:5c:dd:38:65: - 2f:53:c0:0f:41:ef:cd:93:a9:bb:13:20:89:15:90: - 3a:38:68:d3:2f:c7:15:b4:7c:ba:77:76:ac:f8:da: - a9:bd:04:1b:5a:f6:b1:6c:36:71:fe:08:93:88:b3: - 47:35:39:2b:19:be:e4:f4:1a:bb:30:ea:95:12:1c: - cc:9f:17:be:6d:ab:0a:4e:91:61:78:46:da:3d:0a: - 47:fb:64:a8:74:de:e4:71:f8:e9:da:80:66:d2:8b: - 54:c4:39:2f:18:b2:03:a7:21:77:d0:a6:1f:c6:0c: - 12:13:58:fb:ed:7b:b3:d8:8e:bc:79:b4:ff:7a:c7: - 28:88:a0:c5:fb:35:05:29:54:9f:ed:a2:9d:d1:1b: - 35:74:67:28:17:ba:2c:63:42:2e:ce:5e:0a:07:13: - a6:d4:65:99:6b:b5:32:5f:05:74:ba:9c:f4:ef:b6: - 00:79:db:0d:e4:06:a3:a4:c6:45:b8:46:26:aa:2e: - 0a:42:53:e7:e6:23:7f:65:07:97:bc:c5:5c:df:b3: - b1:9f:f9:a3:35:93:7e:68:20:74:89:5f:bb:b7:ed: - af:b5:49:a7:fb:93:19:aa:e7:cc:39:5a:a9:4f:31: - 3b:b7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - DC:18:E7:85:9D:70:27:B8:2C:64:7D:A1:29:D9:F0:7C:BF:13:AA:A1 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 4b:d2:23:be:c9:f4:62:68:87:bf:f1:bd:1d:0f:05:ea:5f:95: - f0:34:85:1b:8f:4e:fd:86:34:f9:96:d7:5a:9c:5e:01:53:2a: - 47:d1:30:c5:1b:b7:29:f2:66:48:70:07:ac:75:77:ab:e7:b3: - 84:62:9e:35:7d:8b:37:b2:20:d2:7f:82:88:ee:f9:71:e4:ea: - bc:1d:4a:e7:22:a3:1c:c2:1a:33:e1:9b:fe:6e:0d:81:15:ef: - 2f:9d:75:75:0c:cd:00:b3:e6:47:52:32:bd:a0:5c:66:95:1c: - c6:5d:12:dd:f7:24:6e:fb:e9:2f:22:56:6d:3e:7d:41:9b:85: - 63:94:f7:0d:0d:1b:f9:18:8a:f4:e1:fa:f0:d3:b7:a7:38:ca: - e8:fc:09:c5:89:26:7d:95:db:66:23:38:3e:84:1b:23:08:8a: - af:4d:0e:89:12:6a:d3:d6:9f:7c:2c:ce:da:c3:c8:67:ff:d7: - 49:15:2f:26:0b:85:86:48:dc:2a:77:99:6f:47:86:3b:cb:30: - 36:95:ea:58:b4:c2:cd:b2:86:10:5f:03:a3:3d:de:ad:3e:7b: - 5f:7e:32:ae:67:fc:b8:23:10:ff:05:73:93:c5:a7:62:47:fa: - a0:a1:80:04:13:94:0c:29:ca:97:71:87:9f:78:2e:88:29:c8: - 3c:d6:a3:66 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwoAwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMDA5MDIwMDAwMDBaFw0yMTEwMDUwMDAwMDFaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzK+Cpy1N88Z6WTnCjjTJ7vOAvcYMIn+NW -XN04ZS9TwA9B782TqbsTIIkVkDo4aNMvxxW0fLp3dqz42qm9BBta9rFsNnH+CJOI -s0c1OSsZvuT0Grsw6pUSHMyfF75tqwpOkWF4Rto9Ckf7ZKh03uRx+OnagGbSi1TE -OS8YsgOnIXfQph/GDBITWPvte7PYjrx5tP96xyiIoMX7NQUpVJ/top3RGzV0ZygX -uixjQi7OXgoHE6bUZZlrtTJfBXS6nPTvtgB52w3kBqOkxkW4RiaqLgpCU+fmI39l -B5e8xVzfs7Gf+aM1k35oIHSJX7u37a+1Saf7kxmq58w5WqlPMTu3AgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTcGOeFnXAnuCxkfaEp2fB8vxOqoTAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAS9Ijvsn0YmiHv/G9HQ8F6l+V8DSFG49O/YY0+ZbXWpxeAVMqR9EwxRu3KfJm -SHAHrHV3q+ezhGKeNX2LN7Ig0n+CiO75ceTqvB1K5yKjHMIaM+Gb/m4NgRXvL511 -dQzNALPmR1IyvaBcZpUcxl0S3fckbvvpLyJWbT59QZuFY5T3DQ0b+RiK9OH68NO3 -pzjK6PwJxYkmfZXbZiM4PoQbIwiKr00OiRJq09affCzO2sPIZ//XSRUvJguFhkjc -KneZb0eGO8swNpXqWLTCzbKGEF8Doz3erT57X34yrmf8uCMQ/wVzk8WnYkf6oKGA -BBOUDCnKl3GHn3guiCnIPNajZg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/398_days_after_2020_09_01.pem b/src/pki/testdata/ssl/certificates/398_days_after_2020_09_01.pem deleted file mode 100644 index dd0eb1d..0000000 --- a/src/pki/testdata/ssl/certificates/398_days_after_2020_09_01.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:7f - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Sep 2 00:00:00 2020 GMT - Not After : Oct 5 00:00:00 2021 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:eb:66:84:1c:5d:7d:8a:59:9e:47:64:b9:09:e4: - 1a:6b:6b:e6:4f:ba:59:2e:a4:3c:57:cb:1a:11:85: - bd:38:08:e0:95:30:c9:02:64:16:35:f0:57:b5:6d: - 2a:7e:54:0c:74:cf:0d:ae:19:ec:f5:01:47:57:0d: - ef:70:f7:a2:35:49:65:e5:95:78:ad:18:00:7f:ec: - 94:94:95:c8:b2:86:7c:ec:b4:d3:b2:dd:c2:91:03: - 31:ee:46:d7:d8:ee:fd:ce:6f:cc:33:fa:ba:bb:2d: - a2:a2:0c:1b:1b:84:2e:3c:8d:a1:5b:24:25:72:5b: - d9:b4:67:98:0e:42:6b:39:f7:5a:da:c8:8f:6d:96: - a2:1a:ce:35:a8:d5:e8:1b:14:97:f2:5b:12:eb:94: - 53:a1:7a:8e:3e:67:2f:d7:91:72:8b:12:cf:ba:d5: - 54:9e:64:92:4c:f2:fc:00:ee:86:4e:df:55:71:25: - c0:88:9d:86:9e:9a:46:b8:f1:31:da:dc:78:fd:46: - 27:1c:ec:6b:84:14:25:8a:b2:c0:ce:75:8f:e9:84: - 27:97:75:f4:91:96:e7:c0:c9:8d:de:f2:f4:fb:fd: - 69:5e:6b:59:50:63:bb:d5:91:cc:7c:1b:0f:c2:b2: - d3:56:b4:e8:77:c6:57:fb:af:7a:af:16:f9:5b:32: - 42:ff - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 4A:78:19:FB:FB:DF:5F:98:EC:91:7A:31:C5:98:4C:B6:8D:50:DE:AD - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 3f:f0:e3:6b:61:f7:d4:c3:61:1f:94:8a:b9:bc:a0:1a:0c:26: - 2b:df:86:c5:39:93:a0:d0:77:9f:61:a8:ab:c1:1d:10:29:4b: - 2e:33:e2:97:46:00:c6:27:69:4c:fc:29:b6:4d:72:ab:4c:9a: - 96:e9:07:d2:d1:29:8e:39:ab:7c:00:c2:fb:7d:d7:04:f4:3e: - 00:f7:cd:16:38:21:82:79:ac:ce:f1:4c:56:fd:cc:64:8c:88: - 32:45:cb:3f:40:bb:86:0e:a3:9e:c1:f8:9a:16:57:ec:27:0e: - ee:cc:01:6f:d7:1d:2d:54:a9:99:6d:83:b0:b3:41:e6:57:31: - e1:65:a9:d2:a9:ea:ed:6f:e7:05:73:f1:27:ee:4b:da:56:c6: - af:ef:83:53:4e:7a:f9:54:00:58:11:c2:b2:bb:d8:7a:6c:1d: - 3a:0c:92:cf:23:12:ee:41:d3:32:24:36:0e:0e:e4:5a:d2:1b: - 6d:dc:85:93:ae:78:40:b3:11:81:d7:c9:e4:56:42:de:94:79: - da:6a:a6:fa:e3:71:96:17:51:f3:80:b2:d1:50:3a:98:9c:89: - 20:cc:4e:0a:69:ac:34:5c:53:aa:f7:4c:c3:cb:4b:fc:f7:bd: - 7c:82:53:9f:0c:3e:b8:ff:cb:72:44:2d:7e:19:24:a1:39:d0: - 6c:ab:db:38 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwn8wDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMDA5MDIwMDAwMDBaFw0yMTEwMDUwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrZoQcXX2KWZ5HZLkJ5Bpra+ZPulkupDxX -yxoRhb04COCVMMkCZBY18Fe1bSp+VAx0zw2uGez1AUdXDe9w96I1SWXllXitGAB/ -7JSUlciyhnzstNOy3cKRAzHuRtfY7v3Ob8wz+rq7LaKiDBsbhC48jaFbJCVyW9m0 -Z5gOQms591rayI9tlqIazjWo1egbFJfyWxLrlFOheo4+Zy/XkXKLEs+61VSeZJJM -8vwA7oZO31VxJcCInYaemka48THa3Hj9Ricc7GuEFCWKssDOdY/phCeXdfSRlufA -yY3e8vT7/Wlea1lQY7vVkcx8Gw/CstNWtOh3xlf7r3qvFvlbMkL/AgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRKeBn7+99fmOyRejHFmEy2jVDerTAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAP/Dja2H31MNhH5SKubygGgwmK9+GxTmToNB3n2Goq8EdEClLLjPil0YAxidp -TPwptk1yq0yalukH0tEpjjmrfADC+33XBPQ+APfNFjghgnmszvFMVv3MZIyIMkXL -P0C7hg6jnsH4mhZX7CcO7swBb9cdLVSpmW2DsLNB5lcx4WWp0qnq7W/nBXPxJ+5L -2lbGr++DU056+VQAWBHCsrvYemwdOgySzyMS7kHTMiQ2Dg7kWtIbbdyFk654QLMR -gdfJ5FZC3pR52mqm+uNxlhdR84Cy0VA6mJyJIMxOCmmsNFxTqvdMw8tL/Pe9fIJT -nww+uP/LckQtfhkkoTnQbKvbOA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/399_days_after_2020_09_01.pem b/src/pki/testdata/ssl/certificates/399_days_after_2020_09_01.pem deleted file mode 100644 index 2f6b7e1..0000000 --- a/src/pki/testdata/ssl/certificates/399_days_after_2020_09_01.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:7e - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Sep 2 00:00:00 2020 GMT - Not After : Oct 6 00:00:00 2021 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b3:19:fd:7b:2a:81:6b:16:2b:d8:73:ac:db:4e: - bb:d0:06:76:4f:f7:fc:73:62:d9:28:03:00:f2:75: - 28:56:b1:fe:d1:3f:08:11:f3:d8:77:62:38:85:89: - 72:4a:e1:7d:4b:72:c6:5f:01:49:ae:c3:b9:55:47: - 2e:45:78:43:20:ae:ed:b6:5d:7a:66:33:f1:98:3e: - fe:6b:a9:08:35:3c:54:a2:03:73:58:87:06:58:72: - fc:26:65:26:fe:78:fe:69:2e:26:55:63:e3:db:74: - 52:e0:6e:a4:b6:64:ab:76:54:77:88:c5:62:47:ff: - 44:0c:84:43:07:9b:86:de:3b:cc:2e:fb:46:f7:33: - ab:bd:00:b0:2e:1b:e3:55:15:ea:e6:c8:f5:3b:1a: - e2:79:12:38:32:4a:17:73:71:b9:dc:ea:43:57:98: - 9a:87:c0:fb:2d:b4:16:26:b4:a9:83:5e:b4:7e:73: - 21:93:6d:f2:35:b2:29:9d:eb:6f:90:54:45:1a:97: - 59:b5:6f:33:bb:17:79:b0:52:80:6a:2a:b9:6a:32: - 90:24:cf:9b:f1:32:82:cf:c8:fb:20:f2:a6:52:31: - dc:43:3a:ef:18:7f:3a:3c:65:b5:d5:9a:27:3c:10: - 2b:95:8a:d4:ec:e6:24:f0:29:bb:4c:d2:f3:a7:c7: - d1:33 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - CE:66:88:69:91:5E:F1:19:19:04:4B:56:72:0D:A7:79:68:0A:FB:B5 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - a9:34:16:bb:1e:64:c5:e7:34:0a:cd:73:cc:e5:2f:82:4d:ab: - d5:3e:e5:c5:ca:f3:7f:93:6a:bb:1e:1c:99:b8:6d:20:e8:2b: - 49:98:f5:1a:ae:09:fa:cf:fc:ed:ed:b9:4e:84:4d:44:01:ce: - 66:bb:cc:e8:26:04:94:ed:67:d9:fc:d9:68:41:09:ab:86:4d: - 6f:81:0f:75:6a:c9:b4:26:8d:01:32:4b:2c:03:1b:bd:40:75: - 1c:93:b3:cc:e8:66:28:e2:c9:a9:55:14:29:88:54:a3:b4:70: - 89:0a:a0:75:a4:36:b0:b2:7b:30:cd:74:9f:d5:83:32:f7:85: - 95:c0:c1:e4:da:e2:84:fe:52:ce:2d:6d:31:16:a9:d3:90:c4: - a5:3c:cc:ba:94:6b:b1:c2:02:d5:b7:c3:b1:3e:2c:05:ab:f6: - 6e:58:bb:e3:43:5f:f1:06:e6:44:d8:d7:48:2b:c5:b2:5f:6d: - ea:81:51:2f:15:6f:8a:15:4c:84:70:71:0b:db:8b:a8:72:49: - 4a:c2:d5:87:7f:98:c8:b4:ef:3c:34:c9:f4:8d:04:9f:1a:22: - 31:7f:e4:70:15:04:e2:ee:6b:38:cf:75:c3:a8:e8:66:87:0a: - a5:31:a0:4c:ea:d0:04:b3:0b:12:fe:25:53:b9:83:f7:13:55: - 00:03:17:84 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwn4wDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMDA5MDIwMDAwMDBaFw0yMTEwMDYwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzGf17KoFrFivYc6zbTrvQBnZP9/xzYtko -AwDydShWsf7RPwgR89h3YjiFiXJK4X1LcsZfAUmuw7lVRy5FeEMgru22XXpmM/GY -Pv5rqQg1PFSiA3NYhwZYcvwmZSb+eP5pLiZVY+PbdFLgbqS2ZKt2VHeIxWJH/0QM -hEMHm4beO8wu+0b3M6u9ALAuG+NVFermyPU7GuJ5EjgyShdzcbnc6kNXmJqHwPst -tBYmtKmDXrR+cyGTbfI1simd62+QVEUal1m1bzO7F3mwUoBqKrlqMpAkz5vxMoLP -yPsg8qZSMdxDOu8Yfzo8ZbXVmic8ECuVitTs5iTwKbtM0vOnx9EzAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTOZohpkV7xGRkES1ZyDad5aAr7tTAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAqTQWux5kxec0Cs1zzOUvgk2r1T7lxcrzf5Nqux4cmbhtIOgrSZj1Gq4J+s/8 -7e25ToRNRAHOZrvM6CYElO1n2fzZaEEJq4ZNb4EPdWrJtCaNATJLLAMbvUB1HJOz -zOhmKOLJqVUUKYhUo7RwiQqgdaQ2sLJ7MM10n9WDMveFlcDB5NrihP5Szi1tMRap -05DEpTzMupRrscIC1bfDsT4sBav2bli740Nf8QbmRNjXSCvFsl9t6oFRLxVvihVM -hHBxC9uLqHJJSsLVh3+YyLTvPDTJ9I0EnxoiMX/kcBUE4u5rOM91w6joZocKpTGg -TOrQBLMLEv4lU7mD9xNVAAMXhA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/39_months_after_2015_04.pem b/src/pki/testdata/ssl/certificates/39_months_after_2015_04.pem deleted file mode 100644 index d138fef..0000000 --- a/src/pki/testdata/ssl/certificates/39_months_after_2015_04.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:71 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Apr 2 00:00:00 2015 GMT - Not After : Jul 2 00:00:00 2018 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b1:08:9f:8e:29:52:ed:20:71:ae:d9:44:93:65: - c3:11:58:97:29:dc:e2:4a:54:65:ec:d9:0d:e3:75: - 9c:52:7d:2e:35:2a:cb:88:70:de:8f:ce:f4:23:13: - 16:1d:de:7d:e4:fb:7b:8a:1e:ba:a4:6a:38:bb:c5: - 89:69:49:17:9b:74:88:a8:c5:ee:65:4c:f1:96:82: - 8e:30:42:e7:9a:9b:9b:e1:e6:5e:b0:c5:3f:46:09: - fe:26:3a:02:b7:f9:a6:4b:43:0e:ed:80:d8:76:12: - e3:34:38:ad:b6:a8:cb:58:9f:0e:77:67:ff:91:77: - d5:63:0f:4c:2b:d4:35:22:68:08:8e:9b:5c:a6:77: - 51:ef:e7:3e:e0:8f:53:8f:13:c7:21:fa:c5:98:15: - 26:89:08:c0:c8:57:05:56:f5:52:b5:d3:6c:a6:a3: - 5f:3c:3c:b1:91:98:ec:0d:85:8c:d5:ad:18:30:9d: - 2e:91:f3:92:62:ae:9e:6d:64:4e:9d:ac:c8:88:30: - 64:d7:2f:d2:c3:46:fb:fd:f3:a2:69:9f:f0:ee:ef: - 6a:eb:e4:58:a2:37:16:46:e2:d0:53:ed:33:1e:ad: - 6a:5f:b2:7e:c8:e9:1d:c8:12:ed:ac:35:9d:ba:26: - 82:ea:04:be:e1:a5:34:fc:ee:ed:25:a6:6d:cb:fa: - e5:3f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 1C:10:69:49:A1:B6:07:E4:28:8A:C2:C9:80:88:80:93:91:5C:71:2E - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 36:a1:f7:1b:af:3c:49:fd:af:13:19:74:79:cf:77:20:92:bb: - e7:76:5e:ca:12:be:e2:8d:15:6c:45:5d:70:2a:84:05:c8:b8: - f8:3d:34:76:0b:e7:25:5e:f0:dd:fd:08:00:b9:31:b5:72:9b: - 18:e2:da:7a:bc:da:1a:b8:aa:80:37:ad:51:03:9f:c6:fb:e5: - 06:13:3e:41:d5:e2:9b:dd:16:43:ad:35:3a:c3:7a:7f:2c:35: - 6a:cb:bd:74:b9:57:93:1f:24:57:78:3c:9a:5c:f1:51:bd:5d: - cf:ae:f2:a9:cb:81:b4:20:93:b4:fd:bf:a3:68:68:ff:15:12: - 2f:05:1e:54:02:ce:4b:ee:38:c7:5b:fa:01:75:f7:bc:2f:08: - ae:6e:d1:ba:20:5b:03:74:80:89:75:80:9f:b5:50:3d:14:b6: - 94:73:84:2d:38:68:0b:d8:89:8f:42:bc:9b:e1:ed:e6:df:2f: - 15:ba:ec:41:c9:1e:dc:94:cc:4a:af:68:34:76:92:50:d8:45: - 47:57:6a:9e:c5:6f:20:59:9e:e6:f1:d8:56:bd:ee:9a:71:7e: - 4f:08:3c:dc:9b:51:cd:62:a8:c7:7f:df:21:76:6a:90:0c:15: - de:6f:b0:04:3b:16:4f:cc:19:7c:06:d0:55:0a:dd:cb:0d:08: - 59:d6:ac:a3 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnEwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNTA0MDIwMDAwMDBaFw0xODA3MDIwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCxCJ+OKVLtIHGu2USTZcMRWJcp3OJKVGXs -2Q3jdZxSfS41KsuIcN6PzvQjExYd3n3k+3uKHrqkaji7xYlpSRebdIioxe5lTPGW -go4wQueam5vh5l6wxT9GCf4mOgK3+aZLQw7tgNh2EuM0OK22qMtYnw53Z/+Rd9Vj -D0wr1DUiaAiOm1ymd1Hv5z7gj1OPE8ch+sWYFSaJCMDIVwVW9VK102ymo188PLGR -mOwNhYzVrRgwnS6R85Jirp5tZE6drMiIMGTXL9LDRvv986Jpn/Du72rr5FiiNxZG -4tBT7TMerWpfsn7I6R3IEu2sNZ26JoLqBL7hpTT87u0lpm3L+uU/AgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQcEGlJobYH5CiKwsmAiICTkVxxLjAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEANqH3G688Sf2vExl0ec93IJK753ZeyhK+4o0VbEVdcCqEBci4+D00dgvnJV7w -3f0IALkxtXKbGOLaerzaGriqgDetUQOfxvvlBhM+QdXim90WQ601OsN6fyw1asu9 -dLlXkx8kV3g8mlzxUb1dz67yqcuBtCCTtP2/o2ho/xUSLwUeVALOS+44x1v6AXX3 -vC8Irm7RuiBbA3SAiXWAn7VQPRS2lHOELThoC9iJj0K8m+Ht5t8vFbrsQcke3JTM -Sq9oNHaSUNhFR1dqnsVvIFme5vHYVr3umnF+Twg83JtRzWKox3/fIXZqkAwV3m+w -BDsWT8wZfAbQVQrdyw0IWdasow== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/39_months_based_on_last_day.pem b/src/pki/testdata/ssl/certificates/39_months_based_on_last_day.pem deleted file mode 100644 index 84b9ce1..0000000 --- a/src/pki/testdata/ssl/certificates/39_months_based_on_last_day.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:75 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Feb 28 00:00:00 2017 GMT - Not After : May 30 00:00:00 2020 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a6:fd:ce:a0:e7:68:1f:ec:48:5a:cd:9f:73:ee: - 17:d1:c5:ba:eb:d4:56:72:9a:d4:1d:94:fc:36:3c: - cb:05:d2:e8:7d:93:3a:49:34:03:3c:d2:72:98:3f: - 95:45:78:1a:0f:c9:be:70:f7:ab:91:9a:24:83:e8: - 46:10:80:52:af:06:a8:3c:8a:f5:f7:ea:4c:25:81: - f1:7a:62:ff:91:14:34:e7:ae:26:2d:c3:55:a8:46: - 34:33:1f:ee:87:4d:93:ae:7d:9b:8a:4c:85:02:c0: - 7e:b0:4c:a1:eb:cb:71:a3:9d:e2:0e:2b:b9:cb:80: - 76:3d:58:4c:1d:5f:0a:de:cc:14:f8:69:2f:ce:b5: - 43:55:f4:c6:8b:24:d6:55:4d:0d:74:62:d1:7f:e1: - 95:4c:c8:fc:99:ae:9a:1b:e7:07:d8:48:7c:f7:3c: - 1d:8a:8c:f0:20:99:88:ed:ca:aa:cc:c1:44:1e:10: - e8:95:05:ca:a2:0d:93:c0:40:bf:1f:bc:5b:b5:da: - 19:63:96:04:57:32:99:0f:f3:f7:f1:a3:ed:df:6c: - 32:df:94:71:41:fe:e7:9a:d8:c5:ab:24:6d:26:82: - eb:aa:2b:aa:6d:67:90:d4:cf:d9:11:e6:87:e1:b6: - e7:24:c0:47:7a:ee:55:ba:87:a9:2f:b0:93:79:a4: - 08:09 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E7:91:F7:13:99:EC:1E:9C:81:43:8A:DA:A5:63:5B:93:3C:79:07:B6 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 7e:4c:5b:7e:32:78:be:ee:68:bc:8c:de:1d:0e:d1:86:44:8d: - 40:d5:42:2e:79:89:18:88:b7:9c:b5:f8:b4:89:ef:f7:8a:dc: - 32:3d:6c:a9:b7:ef:2a:86:1f:72:fb:aa:7d:86:10:4f:b0:3e: - 7b:39:6f:ab:2b:f2:20:d9:dc:44:82:8b:d7:54:9c:a4:6f:9f: - bd:12:35:5d:29:56:53:b1:83:92:aa:bd:ea:3c:89:16:76:e9: - 15:64:5d:c5:cb:60:b2:ba:7c:88:c6:66:b3:8a:13:1a:f1:a8: - 03:c4:7b:8c:eb:11:86:e6:2f:28:87:55:6f:7d:94:e5:e7:a6: - 8f:1d:3a:b7:fa:de:da:53:54:27:8f:0f:14:f6:34:91:11:8a: - 29:18:a7:01:3c:b3:a0:94:57:6b:d2:c3:b7:e8:51:60:43:c3: - 40:20:5c:ee:be:04:27:4f:b9:0f:16:84:5d:91:43:ae:03:6d: - cd:81:f9:e4:ad:ff:ed:09:86:6f:4c:bb:3b:5f:6a:ef:2e:e9: - 2f:fc:ae:d8:b7:cd:f2:0e:49:ef:46:ef:7e:42:33:3b:c2:00: - a1:59:8e:07:6b:17:51:c2:62:1b:3e:92:70:58:7d:c9:22:4a: - 2d:f6:b9:49:87:93:b5:10:61:34:1c:65:ef:6b:de:30:7d:3f: - 68:45:cf:7a ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnUwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNzAyMjgwMDAwMDBaFw0yMDA1MzAwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCm/c6g52gf7EhazZ9z7hfRxbrr1FZymtQd -lPw2PMsF0uh9kzpJNAM80nKYP5VFeBoPyb5w96uRmiSD6EYQgFKvBqg8ivX36kwl -gfF6Yv+RFDTnriYtw1WoRjQzH+6HTZOufZuKTIUCwH6wTKHry3GjneIOK7nLgHY9 -WEwdXwrezBT4aS/OtUNV9MaLJNZVTQ10YtF/4ZVMyPyZrpob5wfYSHz3PB2KjPAg -mYjtyqrMwUQeEOiVBcqiDZPAQL8fvFu12hljlgRXMpkP8/fxo+3fbDLflHFB/uea -2MWrJG0mguuqK6ptZ5DUz9kR5ofhtuckwEd67lW6h6kvsJN5pAgJAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTnkfcTmewenIFDitqlY1uTPHkHtjAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAfkxbfjJ4vu5ovIzeHQ7RhkSNQNVCLnmJGIi3nLX4tInv94rcMj1sqbfvKoYf -cvuqfYYQT7A+ezlvqyvyINncRIKL11ScpG+fvRI1XSlWU7GDkqq96jyJFnbpFWRd -xctgsrp8iMZms4oTGvGoA8R7jOsRhuYvKIdVb32U5eemjx06t/re2lNUJ48PFPY0 -kRGKKRinATyzoJRXa9LDt+hRYEPDQCBc7r4EJ0+5DxaEXZFDrgNtzYH55K3/7QmG -b0y7O19q7y7pL/yu2LfN8g5J70bvfkIzO8IAoVmOB2sXUcJiGz6ScFh9ySJKLfa5 -SYeTtRBhNBxl72veMH0/aEXPeg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/40_months_after_2015_04.pem b/src/pki/testdata/ssl/certificates/40_months_after_2015_04.pem deleted file mode 100644 index c07d121..0000000 --- a/src/pki/testdata/ssl/certificates/40_months_after_2015_04.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:72 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Apr 2 00:00:00 2015 GMT - Not After : Aug 1 00:00:00 2018 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a5:0f:16:e1:16:18:40:db:ce:15:87:a1:aa:d3: - 1f:49:59:b6:38:e8:5d:f3:ed:f3:b0:29:04:c3:57: - ea:5a:7c:22:6b:ce:77:db:de:4d:d9:04:51:5c:f8: - 06:74:fb:ec:d2:87:b2:96:fe:b4:b3:34:81:ae:9f: - a1:a1:c0:49:4b:d7:e8:bf:68:91:d4:57:f2:8d:1d: - 0d:f5:92:c5:b5:fd:0b:bb:5f:51:8a:94:26:11:36: - 3c:56:5e:c4:86:2b:1a:f5:df:1e:02:f5:e4:50:da: - 76:b2:66:89:10:42:45:76:4a:32:09:fc:f7:13:2e: - cb:ff:e3:94:3e:80:64:0e:c7:84:b2:a1:8e:01:a0: - 30:4f:c0:bd:f3:20:36:7b:f6:b1:26:d7:c5:4f:17: - c9:be:fc:2a:aa:e7:bc:0c:57:71:82:a0:3e:39:15: - 0d:c5:95:79:44:1a:dd:ec:d3:e0:cc:ae:32:c8:00: - 26:ed:da:f3:74:6e:5e:02:7e:02:bb:c1:a7:9c:d9: - 3d:03:dc:b9:97:99:24:f3:72:58:8b:1d:0f:87:c2: - b2:15:2f:f9:27:77:6b:4d:d4:7d:1d:12:56:07:b9: - ad:bf:e8:93:af:92:fb:b3:83:76:f8:a8:7f:e3:d4: - 28:a8:20:55:3c:66:39:8a:e9:0e:71:a1:78:9a:3b: - da:e5 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 0C:63:B5:F8:FD:66:75:20:B7:40:9F:23:75:69:F4:49:D2:0E:BE:10 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 38:26:c3:05:63:87:a9:a0:3f:de:4a:c5:05:59:9a:3c:fe:7a: - b4:9b:83:a3:97:7a:55:9f:c1:41:8a:e6:dc:ee:5f:38:73:c6: - ab:23:ce:20:1b:a0:02:b4:1f:d3:02:41:d4:7d:0f:c5:ee:ad: - c2:e0:ba:3a:1a:1e:55:c6:24:6a:ac:f7:6a:fd:01:92:f6:fe: - 7e:e2:d1:d8:0a:8c:4e:fe:50:54:66:00:6f:fa:c7:fb:4d:29: - f7:8c:ac:37:0b:a4:24:94:ce:e4:65:6b:85:0f:c2:df:92:bb: - 7f:39:62:c3:49:30:c9:59:e4:6b:8b:97:9c:71:17:58:c0:fd: - b9:3b:cc:f5:d0:d9:cd:e7:6d:ac:7a:b4:5e:df:45:23:e9:77: - 4a:f5:dc:79:7f:a4:89:e9:26:bc:49:81:f1:52:76:b0:f5:2e: - 64:3f:ab:cc:e7:8b:92:6e:3d:d5:05:90:13:fc:8f:1f:26:4e: - 2f:2b:e9:a2:3f:39:88:98:36:b0:62:7c:65:3c:58:5c:c0:0f: - 98:97:fa:ac:6d:f2:27:94:20:1c:d8:5b:e2:17:95:8b:5b:c1: - c4:74:b2:90:b3:98:6e:be:79:bf:b1:c6:94:4a:7c:56:de:f3: - 99:04:cf:5c:5b:2a:79:8a:87:6e:68:17:4c:b4:19:42:8b:b6: - cd:2f:ea:cf ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnIwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNTA0MDIwMDAwMDBaFw0xODA4MDEwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQClDxbhFhhA284Vh6Gq0x9JWbY46F3z7fOw -KQTDV+pafCJrznfb3k3ZBFFc+AZ0++zSh7KW/rSzNIGun6GhwElL1+i/aJHUV/KN -HQ31ksW1/Qu7X1GKlCYRNjxWXsSGKxr13x4C9eRQ2nayZokQQkV2SjIJ/PcTLsv/ -45Q+gGQOx4SyoY4BoDBPwL3zIDZ79rEm18VPF8m+/Cqq57wMV3GCoD45FQ3FlXlE -Gt3s0+DMrjLIACbt2vN0bl4CfgK7waec2T0D3LmXmSTzcliLHQ+HwrIVL/knd2tN -1H0dElYHua2/6JOvkvuzg3b4qH/j1CioIFU8ZjmK6Q5xoXiaO9rlAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQMY7X4/WZ1ILdAnyN1afRJ0g6+EDAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAOCbDBWOHqaA/3krFBVmaPP56tJuDo5d6VZ/BQYrm3O5fOHPGqyPOIBugArQf -0wJB1H0Pxe6twuC6OhoeVcYkaqz3av0Bkvb+fuLR2AqMTv5QVGYAb/rH+00p94ys -NwukJJTO5GVrhQ/C35K7fzliw0kwyVnka4uXnHEXWMD9uTvM9dDZzedtrHq0Xt9F -I+l3SvXceX+kiekmvEmB8VJ2sPUuZD+rzOeLkm491QWQE/yPHyZOLyvpoj85iJg2 -sGJ8ZTxYXMAPmJf6rG3yJ5QgHNhb4heVi1vBxHSykLOYbr55v7HGlEp8Vt7zmQTP -XFsqeYqHbmgXTLQZQou2zS/qzw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/60_months_after_2012_07.pem b/src/pki/testdata/ssl/certificates/60_months_after_2012_07.pem deleted file mode 100644 index 4ca5f52..0000000 --- a/src/pki/testdata/ssl/certificates/60_months_after_2012_07.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:73 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 30 00:00:00 2014 GMT - Not After : Sep 30 00:00:00 2019 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:d4:fa:d1:99:fe:2d:7a:82:e4:72:af:58:76:bb: - bb:bc:04:03:a2:57:54:75:1b:f3:48:11:aa:eb:97: - 05:02:8c:71:49:ec:b5:5f:a6:d0:18:c5:60:e1:04: - 59:3f:64:a2:96:ca:45:8b:37:82:14:7f:d9:07:fb: - 97:0d:64:9d:7f:ce:19:56:0e:dc:2c:e0:40:7f:86: - a0:ad:9b:bf:f9:84:1e:7f:23:22:e8:35:0a:fb:ee: - 9a:ce:2b:00:48:53:71:86:b2:31:3e:b2:30:0d:79: - d7:05:56:72:e3:95:98:c3:1e:bf:cc:cf:90:54:8e: - 2d:39:c8:2f:bb:3c:05:41:36:4a:2c:b7:c1:0d:4a: - f6:44:02:da:d4:bf:84:9f:66:d7:30:bd:82:b1:92: - f1:73:4f:53:4d:c8:d3:74:73:42:69:bc:0b:18:e0: - 03:51:b7:85:ca:71:74:a1:17:5d:37:22:43:86:c0: - 92:25:98:a9:83:49:b9:d2:97:f8:15:eb:58:d2:13: - bd:4a:39:33:07:50:db:cb:fc:49:8b:ae:ab:df:42: - 14:c1:92:dd:93:da:c4:7a:c9:f8:4d:c2:d8:87:b6: - e4:f5:0e:92:09:4a:6d:f5:30:53:14:07:ea:c5:7c: - ef:93:84:09:25:e0:c7:8a:17:84:a6:76:91:1d:64: - 24:73 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 29:81:75:1D:D1:AE:EE:50:EB:91:E2:57:31:51:5D:3A:0E:99:10:1C - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 8d:b4:56:2d:06:e1:b6:68:00:d4:02:56:5f:a2:6e:b1:1a:58: - b7:66:98:05:9b:9a:56:20:db:17:f1:7a:5e:32:e5:7a:88:ef: - dd:ec:92:b3:41:02:f9:d6:ae:17:85:49:8d:e9:df:e4:69:ee: - c5:74:40:d4:3a:63:4d:99:cb:65:3c:f3:cc:83:82:c0:fe:3c: - bf:80:df:bf:7b:33:f1:b5:2e:04:b0:9f:31:9f:40:23:1c:5b: - 8f:dd:b1:7a:e9:4e:2c:81:ff:77:00:e8:04:f4:99:54:0d:be: - 0d:a8:44:71:9f:b7:62:ce:99:b3:10:c3:47:34:e1:42:e4:d6: - 07:e1:66:91:ae:0a:62:f8:b5:35:0b:ab:08:c8:da:be:5b:74: - 03:5c:ad:1e:2c:82:bf:9a:b1:3e:88:ed:47:26:18:ba:07:31: - 93:aa:ed:00:3f:89:c3:61:a6:7d:23:49:f3:47:4b:c5:72:cc: - ff:64:21:c7:5e:81:65:f7:6b:8f:03:a2:e9:b9:b7:b6:be:ed: - bf:51:4b:64:96:98:37:15:06:5f:17:33:85:46:15:e1:d7:04: - 65:e4:65:f1:ef:60:01:ca:82:70:7f:69:71:2f:fc:ca:8e:64: - b3:a4:0e:74:31:e7:61:28:89:48:b3:29:b6:66:52:69:f7:e1: - 1e:51:8d:09 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnMwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNDEwMzAwMDAwMDBaFw0xOTA5MzAwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDU+tGZ/i16guRyr1h2u7u8BAOiV1R1G/NI -EarrlwUCjHFJ7LVfptAYxWDhBFk/ZKKWykWLN4IUf9kH+5cNZJ1/zhlWDtws4EB/ -hqCtm7/5hB5/IyLoNQr77prOKwBIU3GGsjE+sjANedcFVnLjlZjDHr/Mz5BUji05 -yC+7PAVBNkost8ENSvZEAtrUv4SfZtcwvYKxkvFzT1NNyNN0c0JpvAsY4ANRt4XK -cXShF103IkOGwJIlmKmDSbnSl/gV61jSE71KOTMHUNvL/EmLrqvfQhTBkt2T2sR6 -yfhNwtiHtuT1DpIJSm31MFMUB+rFfO+ThAkl4MeKF4SmdpEdZCRzAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQpgXUd0a7uUOuR4lcxUV06DpkQHDAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAjbRWLQbhtmgA1AJWX6JusRpYt2aYBZuaViDbF/F6XjLleojv3eySs0EC+dau -F4VJjenf5GnuxXRA1DpjTZnLZTzzzIOCwP48v4Dfv3sz8bUuBLCfMZ9AIxxbj92x -eulOLIH/dwDoBPSZVA2+DahEcZ+3Ys6ZsxDDRzThQuTWB+Fmka4KYvi1NQurCMja -vlt0A1ytHiyCv5qxPojtRyYYugcxk6rtAD+Jw2GmfSNJ80dLxXLM/2Qhx16BZfdr -jwOi6bm3tr7tv1FLZJaYNxUGXxczhUYV4dcEZeRl8e9gAcqCcH9pcS/8yo5ks6QO -dDHnYSiJSLMptmZSaffhHlGNCQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/61_months_after_2012_07.pem b/src/pki/testdata/ssl/certificates/61_months_after_2012_07.pem deleted file mode 100644 index 8f9d360..0000000 --- a/src/pki/testdata/ssl/certificates/61_months_after_2012_07.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:74 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 30 00:00:00 2014 GMT - Not After : Nov 3 00:00:00 2019 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a0:11:b9:0c:12:b6:cc:db:8a:b7:7f:a4:c9:26: - b9:44:ef:2f:8f:9a:57:00:d2:21:c0:a3:6d:0d:88: - 59:12:62:19:ba:71:6c:c6:98:cc:44:d3:de:aa:88: - bc:64:38:cc:78:13:a5:5d:76:7a:4b:c8:d2:8e:67: - 64:61:81:61:4f:1e:69:11:ca:ec:c1:80:d0:ea:21: - a4:ab:56:8b:e5:74:e8:0d:05:f8:6a:dd:3b:c6:73: - c4:3f:b7:f1:ab:c1:55:f7:df:3f:7f:ba:36:d9:c1: - 6b:2d:6e:d7:93:96:87:9e:ee:00:57:d5:59:50:6d: - 82:9b:ab:2a:52:7e:c0:b8:be:34:8f:08:6b:ad:c6: - b5:90:0c:80:ff:3f:68:05:c9:a5:5c:9a:ba:8c:49: - 4a:d4:b9:87:42:1d:47:42:ff:17:8f:df:55:e1:b9: - f9:14:6b:08:8f:4f:de:65:59:71:1c:51:1a:58:56: - 96:de:ca:d1:09:0d:c1:0a:b0:19:74:45:46:38:16: - 7b:1a:0a:32:e0:35:34:60:83:c4:63:cb:53:34:2d: - 4b:f7:c8:8e:88:75:13:95:70:9f:ff:cf:f0:10:64: - b3:6c:22:ca:13:3e:65:fb:a2:fb:0c:01:80:b7:64: - d8:ee:0b:4c:18:fc:02:9d:fd:6c:ba:ba:46:cb:f8: - 05:d5 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 60:ED:A6:AB:09:02:D8:2C:54:39:D5:78:E5:E1:A1:09:44:B0:55:21 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - bc:7e:07:ce:f1:cf:0a:be:b5:27:bf:42:34:cf:8e:c4:19:e0: - 60:c2:f9:e2:a8:e8:73:b9:75:30:5b:34:6a:3d:5a:95:b8:e7: - 58:88:5e:48:62:70:06:7c:51:d8:17:d2:fb:4d:2c:48:4f:23: - 2a:c3:b9:ca:0c:6a:f6:a9:d8:8c:b1:78:a6:45:9d:d3:d7:03: - 1a:b5:64:c9:fc:92:05:ea:ea:da:e7:97:b8:67:53:d0:3b:46: - d8:00:28:16:ff:15:84:18:ac:c2:96:cf:df:f8:c6:bb:39:d2: - 79:9a:69:26:1e:c5:99:4b:ca:b4:bc:ca:a0:53:e0:11:43:e9: - b7:b6:8c:d8:8b:88:cd:4d:10:9b:12:18:0e:80:d1:ab:b3:24: - a4:f3:3b:ea:21:14:79:4b:64:17:49:0a:cd:1c:e4:fd:1b:11: - 79:46:ac:fe:c6:aa:73:12:95:fd:61:0d:b0:64:53:5c:6f:ce: - 0a:fe:07:2d:4d:42:5b:9e:dc:4a:19:dd:19:28:ee:bf:05:e2: - 62:61:6f:8b:83:50:17:6e:3f:31:5c:f2:d2:7d:fa:60:c3:03: - b9:ca:b5:16:d8:de:bb:00:09:9c:50:88:f4:00:f1:2b:00:f8: - 1b:34:40:94:94:2c:25:63:b1:84:96:00:3d:76:48:2d:f4:77: - 34:36:37:87 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnQwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNDEwMzAwMDAwMDBaFw0xOTExMDMwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCgEbkMErbM24q3f6TJJrlE7y+PmlcA0iHA -o20NiFkSYhm6cWzGmMxE096qiLxkOMx4E6VddnpLyNKOZ2RhgWFPHmkRyuzBgNDq -IaSrVovldOgNBfhq3TvGc8Q/t/GrwVX33z9/ujbZwWstbteTloee7gBX1VlQbYKb -qypSfsC4vjSPCGutxrWQDID/P2gFyaVcmrqMSUrUuYdCHUdC/xeP31XhufkUawiP -T95lWXEcURpYVpbeytEJDcEKsBl0RUY4FnsaCjLgNTRgg8Rjy1M0LUv3yI6IdROV -cJ//z/AQZLNsIsoTPmX7ovsMAYC3ZNjuC0wY/AKd/Wy6ukbL+AXVAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRg7aarCQLYLFQ51Xjl4aEJRLBVITAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAvH4HzvHPCr61J79CNM+OxBngYML54qjoc7l1MFs0aj1albjnWIheSGJwBnxR -2BfS+00sSE8jKsO5ygxq9qnYjLF4pkWd09cDGrVkyfySBerq2ueXuGdT0DtG2AAo -Fv8VhBiswpbP3/jGuznSeZppJh7FmUvKtLzKoFPgEUPpt7aM2IuIzU0QmxIYDoDR -q7MkpPM76iEUeUtkF0kKzRzk/RsReUas/saqcxKV/WENsGRTXG/OCv4HLU1CW57c -ShndGSjuvwXiYmFvi4NQF24/MVzy0n36YMMDucq1FtjeuwAJnFCI9ADxKwD4GzRA -lJQsJWOxhJYAPXZILfR3NDY3hw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/768-rsa-ee-by-1024-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/768-rsa-ee-by-1024-rsa-intermediate.pem deleted file mode 100644 index 725ca3a..0000000 --- a/src/pki/testdata/ssl/certificates/768-rsa-ee-by-1024-rsa-intermediate.pem +++ /dev/null @@ -1,58 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=1024 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (768 bit) - Modulus: - 00:a0:a2:fc:c2:cd:0e:5f:d9:64:7d:c9:6e:26:bc: - 04:5f:cb:c4:fb:01:66:5d:76:82:4b:60:11:12:0f: - 44:b4:e8:1e:41:86:df:63:22:34:1c:4f:da:80:40: - 51:fb:9d:a0:77:1e:af:dd:dd:dc:36:e4:67:d9:2f: - 45:56:48:38:58:d8:df:59:21:c6:64:01:eb:7a:e3: - 4f:ce:cc:e3:fe:53:98:12:86:c6:76:d1:c2:fb:06: - 0e:0c:b0:80:d1:c6:bf - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 85:06:8C:BA:66:3C:B8:5C:2D:85:7B:B2:22:A5:73:48:0F:1B:B7:55 - X509v3 Authority Key Identifier: - keyid:AB:91:E6:2B:C9:C1:2E:7B:A0:65:F1:D4:8A:CE:03:4D:F4:7A:18:13 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 4b:ce:06:5e:cf:bb:09:25:5f:43:b4:9d:08:f5:0e:85:99:d7: - b9:d7:c0:51:3e:8e:d2:ad:66:41:6a:a1:c1:cf:f4:0b:de:3c: - 9b:00:58:7a:7f:da:3f:18:8c:68:c3:35:29:42:94:31:2c:03: - a9:88:33:2b:cf:8b:5a:1e:36:8e:a9:ad:30:1f:14:2e:3a:81: - eb:c2:48:97:e4:8e:4c:63:8f:51:c2:12:4c:5b:17:bd:b5:18: - 26:d2:92:35:06:bb:3a:40:1b:b2:3a:35:a5:21:77:15:b4:2a: - a6:89:9f:54:7c:73:21:f0:e0:ab:44:46:e6:c2:0a:ed:c8:22: - 79:ad ------BEGIN CERTIFICATE----- -MIICWzCCAcSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB0xMDI0 -IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTAeFw0xNjA0MjIyMDI4NDFaFw0yNjA0 -MjAyMDI4NDFaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw -FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQD -DAkxMjcuMC4wLjEwfDANBgkqhkiG9w0BAQEFAANrADBoAmEAoKL8ws0OX9lkfclu -JrwEX8vE+wFmXXaCS2AREg9EtOgeQYbfYyI0HE/agEBR+52gdx6v3d3cNuRn2S9F -Vkg4WNjfWSHGZAHreuNPzszj/lOYEobGdtHC+wYODLCA0ca/AgMBAAGjgYAwfjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSFBoy6Zjy4XC2Fe7IipXNIDxu3VTAfBgNV -HSMEGDAWgBSrkeYrycEue6Bl8dSKzgNN9HoYEzAdBgNVHSUEFjAUBggrBgEFBQcD -AQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOBgQBL -zgZez7sJJV9DtJ0I9Q6Fmde518BRPo7SrWZBaqHBz/QL3jybAFh6f9o/GIxowzUp -QpQxLAOpiDMrz4taHjaOqa0wHxQuOoHrwkiX5I5MY49RwhJMWxe9tRgm0pI1Brs6 -QBuyOjWlIXcVtCqmiZ9UfHMh8OCrREbmwgrtyCJ5rQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/768-rsa-ee-by-2048-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/768-rsa-ee-by-2048-rsa-intermediate.pem deleted file mode 100644 index c661a13..0000000 --- a/src/pki/testdata/ssl/certificates/768-rsa-ee-by-2048-rsa-intermediate.pem +++ /dev/null @@ -1,68 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (768 bit) - Modulus: - 00:c3:4d:cf:b1:46:75:00:21:75:d4:6b:10:dd:a8: - 51:9e:90:ea:3a:5f:58:b5:23:a4:d9:30:bc:cb:08: - 31:bc:2d:88:64:37:56:67:f8:4b:c5:0f:9f:49:11: - bd:d7:c1:9e:07:46:cb:3b:fa:70:7a:7d:6f:51:3c: - 10:81:33:f8:59:98:ed:81:1c:5a:bd:6b:ee:71:97: - c8:0f:c7:a7:9a:d5:e0:3c:fb:ee:3a:0c:7f:69:63: - 61:cf:e2:de:44:b1:d7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 9B:F2:E7:0F:32:A4:54:B7:06:99:EC:CF:8B:5F:E1:BE:E7:09:32:8C - X509v3 Authority Key Identifier: - keyid:5C:C2:71:76:C1:26:B1:0C:31:73:C8:92:D3:1E:01:12:4B:CC:5A:14 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 4f:8d:a9:be:61:eb:90:8f:59:29:fe:15:40:1d:2d:27:0b:74: - 84:c0:0b:d6:c0:2a:23:bb:ed:4f:4d:8e:fa:f9:3e:8c:6d:c0: - ba:41:0c:b0:77:c8:eb:b5:72:ac:3e:42:07:f2:a5:8e:98:81: - 82:91:d2:80:63:5c:32:fb:4c:45:8f:70:d2:52:07:26:9a:3f: - 28:40:10:4d:71:28:eb:78:03:d1:ed:1e:14:c4:fd:74:49:4a: - 37:ad:59:e6:29:ef:bc:ae:8a:e1:8d:24:7c:34:7b:63:d4:53: - 6f:68:f7:08:b3:fe:d3:a1:05:d6:44:d2:37:fe:98:83:3d:15: - 70:a7:c6:d2:05:ea:72:21:eb:46:3f:3a:d8:6f:0e:7d:7d:75: - fc:ad:59:7c:28:d3:98:4b:ae:7b:d5:2e:b9:9c:ab:c5:ca:98: - 13:bd:1a:0d:63:9c:74:a6:f1:2e:16:2d:ba:b6:71:3e:22:6f: - b5:b9:e4:63:c4:c3:98:1d:31:76:ef:18:48:52:16:d1:8a:89: - 5f:a6:25:d6:c0:58:05:0d:57:6d:fa:03:54:87:ae:3f:d5:f0: - a0:a2:30:e1:67:da:09:5c:8b:43:14:6a:b8:31:43:c9:7f:1f: - 7b:73:3e:52:b2:d5:a7:cf:ce:ea:e8:88:ea:4c:0c:d3:41:7c: - c2:66:d6:3c ------BEGIN CERTIFICATE----- -MIIC3DCCAcSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB0yMDQ4 -IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTAeFw0xNjA0MjIyMDI4NDFaFw0yNjA0 -MjAyMDI4NDFaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw -FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQD -DAkxMjcuMC4wLjEwfDANBgkqhkiG9w0BAQEFAANrADBoAmEAw03PsUZ1ACF11GsQ -3ahRnpDqOl9YtSOk2TC8ywgxvC2IZDdWZ/hLxQ+fSRG918GeB0bLO/pwen1vUTwQ -gTP4WZjtgRxavWvucZfID8enmtXgPPvuOgx/aWNhz+LeRLHXAgMBAAGjgYAwfjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSb8ucPMqRUtwaZ7M+LX+G+5wkyjDAfBgNV -HSMEGDAWgBRcwnF2wSaxDDFzyJLTHgESS8xaFDAdBgNVHSUEFjAUBggrBgEFBQcD -AQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEA -T42pvmHrkI9ZKf4VQB0tJwt0hMAL1sAqI7vtT02O+vk+jG3AukEMsHfI67VyrD5C -B/KljpiBgpHSgGNcMvtMRY9w0lIHJpo/KEAQTXEo63gD0e0eFMT9dElKN61Z5inv -vK6K4Y0kfDR7Y9RTb2j3CLP+06EF1kTSN/6Ygz0VcKfG0gXqciHrRj862G8OfX11 -/K1ZfCjTmEuue9UuuZyrxcqYE70aDWOcdKbxLhYturZxPiJvtbnkY8TDmB0xdu8Y -SFIW0YqJX6Yl1sBYBQ1XbfoDVIeuP9XwoKIw4WfaCVyLQxRquDFDyX8fe3M+UrLV -p8/O6uiI6kwM00F8wmbWPA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/768-rsa-ee-by-768-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/768-rsa-ee-by-768-rsa-intermediate.pem deleted file mode 100644 index f9af743..0000000 --- a/src/pki/testdata/ssl/certificates/768-rsa-ee-by-768-rsa-intermediate.pem +++ /dev/null @@ -1,55 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=768 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (768 bit) - Modulus: - 00:b8:74:88:ef:f9:04:6b:00:fc:af:a5:c7:f2:10: - 0d:be:09:a7:f7:07:4a:a9:08:6d:99:84:84:41:c4: - cc:85:18:a2:c2:2c:ab:91:79:ed:05:42:e7:d2:8c: - b6:2e:19:80:b2:13:4e:fb:eb:8b:96:58:82:0d:02: - c5:9a:0f:54:f5:d5:61:04:6f:f2:8c:e3:48:b6:b6: - c1:28:43:60:0a:5b:ae:fb:8c:82:ca:ae:8a:51:b4: - 58:58:44:84:92:ea:63 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - D4:57:45:F6:6C:FA:DE:15:8B:2A:A1:D2:B1:2B:3F:5C:D3:8E:FA:3A - X509v3 Authority Key Identifier: - keyid:9E:E3:A7:83:B0:59:6F:91:9F:C7:D5:34:61:4A:1A:B3:66:C7:44:A0 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - c5:bc:64:9f:b6:c6:f5:d6:e8:cf:46:7b:bc:52:ae:6b:54:97: - ce:05:8d:94:81:a9:cb:4f:8d:9e:45:43:22:0a:54:8a:8f:eb: - 97:10:cf:c1:44:22:b7:e8:e0:a8:d2:ab:1c:be:eb:b8:b2:b1: - 36:10:62:d8:a4:4e:db:3b:1c:d3:0e:b2:03:ae:34:04:54:f0: - ea:2f:0b:e8:45:1d:14:af:8f:be:53:fd:9c:b4:32:92:2f:4a: - d3:3e:53:e1:c1:fc ------BEGIN CERTIFICATE----- -MIICOTCCAcOgAwIBAgIBATANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDDBw3Njgg -cnNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMB4XDTE2MDQyMjIwMjg0MVoXDTI2MDQy -MDIwMjg0MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAU -BgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMM -CTEyNy4wLjAuMTB8MA0GCSqGSIb3DQEBAQUAA2sAMGgCYQC4dIjv+QRrAPyvpcfy -EA2+Caf3B0qpCG2ZhIRBxMyFGKLCLKuRee0FQufSjLYuGYCyE07764uWWIINAsWa -D1T11WEEb/KM40i2tsEoQ2AKW677jILKropRtFhYRISS6mMCAwEAAaOBgDB+MAwG -A1UdEwEB/wQCMAAwHQYDVR0OBBYEFNRXRfZs+t4Viyqh0rErP1zTjvo6MB8GA1Ud -IwQYMBaAFJ7jp4OwWW+Rn8fVNGFKGrNmx0SgMB0GA1UdJQQWMBQGCCsGAQUFBwMB -BggrBgEFBQcDAjAPBgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA2EAxbxk -n7bG9dboz0Z7vFKua1SXzgWNlIGpy0+NnkVDIgpUio/rlxDPwUQit+jgqNKrHL7r -uLKxNhBi2KRO2zsc0w6yA640BFTw6i8L6EUdFK+PvlP9nLQyki9K0z5T4cH8 ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/768-rsa-ee-by-prime256v1-ecdsa-intermediate.pem b/src/pki/testdata/ssl/certificates/768-rsa-ee-by-prime256v1-ecdsa-intermediate.pem deleted file mode 100644 index f7b3887..0000000 --- a/src/pki/testdata/ssl/certificates/768-rsa-ee-by-prime256v1-ecdsa-intermediate.pem +++ /dev/null @@ -1,53 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN=prime256v1 ecdsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (768 bit) - Modulus: - 00:c4:7b:c8:e7:66:93:0b:ef:8d:13:38:7a:cb:2b: - d3:c5:6a:69:06:c6:66:fd:ed:f3:ae:38:ef:4f:81: - 84:79:08:93:6d:65:c3:ce:dc:17:23:7c:19:31:ea: - 97:ef:54:d7:46:2d:9c:f1:da:94:eb:5b:7b:98:eb: - ed:51:b8:a9:5e:50:6e:d6:2e:48:25:de:5f:26:6b: - dd:a5:a5:99:8c:af:15:a8:db:a7:9e:32:ba:c6:2c: - 17:52:59:27:29:67:6d - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 36:C8:ED:4D:53:9C:76:E1:7D:E1:84:A4:DA:DF:AD:6D:68:D0:B3:86 - X509v3 Authority Key Identifier: - keyid:0D:6B:B6:D7:DD:7F:CD:4E:AD:06:6B:22:E1:11:08:58:10:AB:16:2A - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: ecdsa-with-SHA256 - 30:45:02:20:12:3c:ec:48:76:df:9f:27:f2:73:60:05:9d:c0: - 24:0d:16:5e:33:43:bb:69:58:4b:c4:1c:0a:7a:e9:44:91:e8: - 02:21:00:f5:98:73:6a:f3:93:47:a8:89:99:d4:61:41:37:d6: - 09:e8:4f:a9:e3:72:eb:b4:0a:75:d7:c5:35:5b:8f:90:19 ------BEGIN CERTIFICATE----- -MIICIzCCAcmgAwIBAgIBATAKBggqhkjOPQQDAjAwMS4wLAYDVQQDDCVwcmltZTI1 -NnYxIGVjZHNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMB4XDTE2MDQyMjIwMjg0MVoX -DTI2MDQyMDIwMjg0MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3Ju -aWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQ -BgNVBAMMCTEyNy4wLjAuMTB8MA0GCSqGSIb3DQEBAQUAA2sAMGgCYQDEe8jnZpML -740TOHrLK9PFamkGxmb97fOuOO9PgYR5CJNtZcPO3BcjfBkx6pfvVNdGLZzx2pTr -W3uY6+1RuKleUG7WLkgl3l8ma92lpZmMrxWo26eeMrrGLBdSWScpZ20CAwEAAaOB -gDB+MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFDbI7U1TnHbhfeGEpNrfrW1o0LOG -MB8GA1UdIwQYMBaAFA1rttfdf81OrQZrIuERCFgQqxYqMB0GA1UdJQQWMBQGCCsG -AQUFBwMBBggrBgEFBQcDAjAPBgNVHREECDAGhwR/AAABMAoGCCqGSM49BAMCA0gA -MEUCIBI87Eh2358n8nNgBZ3AJA0WXjNDu2lYS8QcCnrpRJHoAiEA9ZhzavOTR6iJ -mdRhQTfWCehPqeNy67QKddfFNVuPkBk= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/768-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/768-rsa-intermediate.pem deleted file mode 100644 index 6d4a98c..0000000 --- a/src/pki/testdata/ssl/certificates/768-rsa-intermediate.pem +++ /dev/null @@ -1,60 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 RSA Test Root CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: CN=768 rsa Test intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (768 bit) - Modulus: - 00:c6:10:85:d9:ce:e4:cf:8a:1c:1e:51:62:dc:5e: - f4:0f:7a:25:67:90:e5:45:12:29:55:b0:b7:c0:b0: - 1b:37:33:02:5d:17:eb:44:bb:43:23:5f:c9:06:86: - 3f:e6:b1:71:76:0b:e1:42:0f:ac:98:e3:12:2a:b4: - 15:34:b8:dd:e8:2a:35:3f:62:d0:af:54:b7:e8:e5: - 3d:70:f9:fd:61:68:60:52:7b:15:b3:c5:17:75:0c: - a3:bb:df:b7:ca:8e:09 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 9E:E3:A7:83:B0:59:6F:91:9F:C7:D5:34:61:4A:1A:B3:66:C7:44:A0 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 29:62:c0:b7:c7:f2:25:3e:62:fe:ca:3d:46:40:25:ad:df:43: - 0d:4f:ee:7f:15:e7:ab:12:45:34:8a:e4:32:a7:4a:33:b8:ab: - 36:06:69:c5:4f:5a:29:05:5f:aa:11:61:16:cd:ba:18:b0:3c: - e5:0b:b7:75:07:b0:8d:46:01:19:2f:18:e1:91:f6:94:45:05: - 8b:ce:18:b1:b0:5b:19:fa:57:f2:ea:24:f7:6e:75:af:2b:4d: - 7c:c2:d0:2e:46:74:b9:de:fe:4a:b0:dd:29:74:ba:27:c9:45: - 01:55:65:d4:5b:61:b3:ce:95:8d:7c:73:84:21:50:20:b1:ac: - 98:0b:d7:c8:61:82:f1:d7:86:6c:cb:da:b4:ef:92:3e:83:90: - c4:5e:f3:1a:23:e3:8f:1e:75:d6:58:66:10:05:3c:9b:22:47: - 01:36:8e:4f:62:19:66:f2:ed:9c:50:f0:28:78:f5:21:ea:b1: - 6a:d7:7e:d8:24:4e:5e:be:51:3a:8d:1c:b3:d0:97:d0:a6:0a: - db:fa:19:0a:b4:ed:bd:22:d0:3f:91:f0:e8:4a:12:82:d1:6d: - 44:1a:26:ed:2e:aa:af:55:64:c9:bf:d3:0a:81:c2:34:54:5d: - 32:05:50:50:ea:fe:d8:52:04:5f:08:17:b2:f1:d6:90:87:15: - e0:c6:7c:c1 ------BEGIN CERTIFICATE----- -MIICXDCCAUSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBUyMDQ4 -IFJTQSBUZXN0IFJvb3QgQ0EwHhcNMTYwNDIyMjAyODQxWhcNMjYwNDIwMjAyODQx -WjAnMSUwIwYDVQQDDBw3NjggcnNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMHwwDQYJ -KoZIhvcNAQEBBQADawAwaAJhAMYQhdnO5M+KHB5RYtxe9A96JWeQ5UUSKVWwt8Cw -GzczAl0X60S7QyNfyQaGP+axcXYL4UIPrJjjEiq0FTS43egqNT9i0K9Ut+jlPXD5 -/WFoYFJ7FbPFF3UMo7vft8qOCQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0G -A1UdDgQWBBSe46eDsFlvkZ/H1TRhShqzZsdEoDAOBgNVHQ8BAf8EBAMCAQYwDQYJ -KoZIhvcNAQELBQADggEBACliwLfH8iU+Yv7KPUZAJa3fQw1P7n8V56sSRTSK5DKn -SjO4qzYGacVPWikFX6oRYRbNuhiwPOULt3UHsI1GARkvGOGR9pRFBYvOGLGwWxn6 -V/LqJPduda8rTXzC0C5GdLne/kqw3Sl0uifJRQFVZdRbYbPOlY18c4QhUCCxrJgL -18hhgvHXhmzL2rTvkj6DkMRe8xoj448eddZYZhAFPJsiRwE2jk9iGWby7ZxQ8Ch4 -9SHqsWrXftgkTl6+UTqNHLPQl9CmCtv6GQq07b0i0D+R8OhKEoLRbUQaJu0uqq9V -ZMm/0wqBwjRUXTIFUFDq/thSBF8IF7Lx1pCHFeDGfME= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/825_days_1_second_after_2018_03_01.pem b/src/pki/testdata/ssl/certificates/825_days_1_second_after_2018_03_01.pem deleted file mode 100644 index 11d7cd7..0000000 --- a/src/pki/testdata/ssl/certificates/825_days_1_second_after_2018_03_01.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:7c - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Mar 2 00:00:00 2018 GMT - Not After : Jun 4 00:00:01 2020 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a1:4f:d4:c4:81:eb:6b:72:1f:2c:7c:77:49:e6: - c8:29:76:f1:2a:36:d6:0c:dd:80:ed:07:83:bd:ff: - 76:de:d6:79:9b:ff:0f:6d:24:e3:cd:17:4d:ba:82: - e9:2d:37:bf:ec:78:b4:7d:b4:6d:d1:af:84:40:ea: - 50:a6:87:c3:4c:1c:11:f3:c9:54:f1:d9:d7:8a:4b: - a4:82:28:55:e4:b5:8a:fb:cb:c7:fa:da:07:d4:fd: - f9:3a:94:ab:89:cc:e1:22:ba:12:93:78:a3:dc:6d: - be:06:f7:b1:25:29:fe:0e:9f:37:08:35:5a:09:9f: - 4f:3e:27:b4:b9:d7:ec:10:74:c8:fe:a3:b3:97:1d: - 29:c2:33:eb:90:de:55:2e:77:ee:9f:60:c9:c9:1d: - 2a:eb:71:24:8c:fe:75:f6:88:d9:8a:00:4f:b6:9c: - 65:c1:8e:36:39:a4:c4:37:f3:fa:b3:5b:db:50:39: - 0d:8f:0b:c9:33:e2:bb:10:5c:11:3a:8a:aa:aa:16: - 22:f4:fe:ba:6d:ee:da:66:d9:6a:e3:b0:0b:79:78: - 06:5d:b7:60:9c:30:07:94:3d:45:d5:9e:95:14:49: - d0:b6:c1:4c:e6:5e:81:48:3e:eb:22:9d:e8:86:d1: - 5e:69:7b:43:8a:e7:05:93:f5:ad:c0:3d:63:c4:70: - d0:19 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - A6:14:80:2C:A5:12:49:3A:D8:66:20:1C:05:B8:44:46:E2:C0:80:12 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 18:c9:d9:fd:1f:2c:5c:c8:1d:d7:02:7f:b7:a9:52:3c:b4:46: - e6:80:aa:0c:95:3c:1e:8c:84:63:f9:37:3d:5e:c1:f3:f5:78: - 01:16:3e:fe:ef:6f:bc:38:a4:5b:28:b1:62:5d:8b:fc:68:e4: - 00:c2:b3:cc:4f:e0:6e:3e:6e:01:ee:47:5d:ec:04:a0:cf:ac: - 00:13:72:d1:5e:8c:a1:d8:14:9f:0a:9d:fd:91:76:40:0c:b5: - fb:a5:ad:d1:17:a8:cc:5a:79:dc:0d:65:4d:61:8d:1f:c1:99: - 08:db:23:d1:6d:48:21:19:15:56:91:32:eb:a9:11:3e:91:46: - 2d:1e:9a:af:f5:49:ae:d0:2a:19:55:51:3f:4a:a7:06:e2:d3: - b7:41:61:88:22:69:0a:1e:1e:d4:95:d7:53:5b:72:66:d0:08: - 48:26:bd:12:0f:29:34:57:9b:3a:0e:75:87:74:1d:f4:71:36: - 6c:cf:ae:2d:34:bc:a5:25:d3:07:d1:0f:60:85:e8:9c:23:fd: - 3c:6f:8a:b3:44:71:af:e8:5f:8c:a7:3c:bf:69:e8:7e:bf:0b: - 30:17:b7:78:55:e8:b0:a8:0a:6c:7b:f6:e4:95:b9:9d:d3:0e: - 6f:c6:18:da:d9:3b:67:ab:7b:dc:31:6f:96:ee:23:94:e0:87: - 40:73:c0:51 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnwwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xODAzMDIwMDAwMDBaFw0yMDA2MDQwMDAwMDFaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQChT9TEgetrch8sfHdJ5sgpdvEqNtYM3YDt -B4O9/3be1nmb/w9tJOPNF026guktN7/seLR9tG3Rr4RA6lCmh8NMHBHzyVTx2deK -S6SCKFXktYr7y8f62gfU/fk6lKuJzOEiuhKTeKPcbb4G97ElKf4OnzcINVoJn08+ -J7S51+wQdMj+o7OXHSnCM+uQ3lUud+6fYMnJHSrrcSSM/nX2iNmKAE+2nGXBjjY5 -pMQ38/qzW9tQOQ2PC8kz4rsQXBE6iqqqFiL0/rpt7tpm2WrjsAt5eAZdt2CcMAeU -PUXVnpUUSdC2wUzmXoFIPusineiG0V5pe0OK5wWT9a3APWPEcNAZAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSmFIAspRJJOthmIBwFuERG4sCAEjAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAGMnZ/R8sXMgd1wJ/t6lSPLRG5oCqDJU8HoyEY/k3PV7B8/V4ARY+/u9vvDik -WyixYl2L/GjkAMKzzE/gbj5uAe5HXewEoM+sABNy0V6ModgUnwqd/ZF2QAy1+6Wt -0ReozFp53A1lTWGNH8GZCNsj0W1IIRkVVpEy66kRPpFGLR6ar/VJrtAqGVVRP0qn -BuLTt0FhiCJpCh4e1JXXU1tyZtAISCa9Eg8pNFebOg51h3Qd9HE2bM+uLTS8pSXT -B9EPYIXonCP9PG+Ks0Rxr+hfjKc8v2nofr8LMBe3eFXosKgKbHv25JW5ndMOb8YY -2tk7Z6t73DFvlu4jlOCHQHPAUQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/825_days_after_2018_03_01.pem b/src/pki/testdata/ssl/certificates/825_days_after_2018_03_01.pem deleted file mode 100644 index 3d15cfc..0000000 --- a/src/pki/testdata/ssl/certificates/825_days_after_2018_03_01.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:7b - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Mar 2 00:00:00 2018 GMT - Not After : Jun 4 00:00:00 2020 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:9a:39:94:e3:67:d8:e3:a9:27:4d:88:89:70:99: - fd:9d:b8:a3:d5:6a:ff:f4:f0:6b:76:4f:d5:b1:a3: - 6c:9d:10:c1:e6:6c:ac:2e:71:86:b2:e3:91:25:d7: - 7e:f0:32:55:a4:b5:e2:f8:ac:d2:69:cb:c9:6e:25: - 12:32:f8:82:5a:8e:2d:46:30:c2:6c:d9:8e:cb:4c: - 69:1e:e8:c2:1e:8f:94:76:76:6a:c6:8c:a5:e7:b8: - 8e:79:e5:4b:6a:b1:98:cc:2f:2b:ba:35:6f:63:65: - 23:1c:6e:c3:9a:65:7f:fa:1e:6e:fe:a0:7d:8f:10: - 40:b7:30:1e:2e:41:0e:be:3b:8e:1f:ed:da:29:c0: - 44:63:10:e7:0f:b1:ed:7b:e9:0e:b7:2d:a0:ec:83: - 19:8e:a4:de:e5:2e:24:f8:4b:b8:92:63:37:ab:67: - d7:69:1c:8a:de:1c:d5:e4:59:42:b7:d8:ea:54:64: - cc:28:14:47:f6:a4:84:f1:7a:a4:9c:26:a1:95:4f: - 29:6e:c4:06:6c:b2:4e:9a:c5:ca:c7:ff:e9:6a:d9: - bb:95:0c:9b:5e:d1:cf:d2:0c:fc:1c:6a:f5:bb:46: - f5:e5:67:4f:2b:f8:a3:3e:3c:74:3c:cf:a8:a1:2d: - 53:ba:82:e3:f6:67:4c:44:71:1a:79:ff:91:40:41: - c7:43 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 21:4C:BB:C1:C9:E7:EC:9E:70:89:0F:F4:C5:25:86:86:B0:C8:31:B7 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 68:f9:e3:09:b5:35:6d:e8:fe:00:c8:92:6a:9c:16:c8:99:d4: - ba:bc:14:89:6c:a9:40:33:0e:33:f8:15:73:62:19:03:37:a1: - e0:af:ba:d2:9b:06:f9:33:16:c0:38:a8:40:2f:1d:8e:04:55: - 2d:3b:ae:7b:a2:91:9b:50:eb:fa:83:42:ec:ba:9a:7e:54:28: - 4b:95:5e:9d:64:c5:79:59:34:77:c7:d4:e4:c5:65:07:f0:63: - 36:c7:7a:2c:ee:00:75:63:e0:eb:5f:af:5c:41:f3:11:80:63: - 81:85:53:df:72:22:fc:4c:b8:c8:99:dc:86:e3:1e:b6:a9:37: - de:c9:df:23:30:2b:f3:d8:48:50:ae:40:3f:5a:92:83:64:03: - 41:b9:f7:43:ad:2e:2f:be:7f:60:98:af:92:65:7c:7a:05:6a: - bd:0a:7d:c4:83:1c:a5:8b:6a:18:c5:17:8c:2d:41:d7:97:29: - e3:5c:79:07:9d:11:43:c5:09:a5:fa:48:9b:be:39:41:7b:34: - 97:40:e3:84:8b:c7:bb:24:b5:9a:38:47:ca:43:56:ad:52:25: - 22:a8:aa:2e:64:26:a1:71:cf:0b:f0:47:d9:07:f4:cc:16:99: - b8:17:23:ea:d3:ad:e6:6e:08:e5:85:04:0c:c3:46:66:80:ec: - 28:cf:e1:db ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnswDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xODAzMDIwMDAwMDBaFw0yMDA2MDQwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCaOZTjZ9jjqSdNiIlwmf2duKPVav/08Gt2 -T9Wxo2ydEMHmbKwucYay45El137wMlWkteL4rNJpy8luJRIy+IJaji1GMMJs2Y7L -TGke6MIej5R2dmrGjKXnuI555UtqsZjMLyu6NW9jZSMcbsOaZX/6Hm7+oH2PEEC3 -MB4uQQ6+O44f7dopwERjEOcPse176Q63LaDsgxmOpN7lLiT4S7iSYzerZ9dpHIre -HNXkWUK32OpUZMwoFEf2pITxeqScJqGVTyluxAZssk6axcrH/+lq2buVDJte0c/S -DPwcavW7RvXlZ08r+KM+PHQ8z6ihLVO6guP2Z0xEcRp5/5FAQcdDAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQhTLvByefsnnCJD/TFJYaGsMgxtzAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAaPnjCbU1bej+AMiSapwWyJnUurwUiWypQDMOM/gVc2IZAzeh4K+60psG+TMW -wDioQC8djgRVLTuue6KRm1Dr+oNC7LqaflQoS5VenWTFeVk0d8fU5MVlB/BjNsd6 -LO4AdWPg61+vXEHzEYBjgYVT33Ii/Ey4yJnchuMetqk33snfIzAr89hIUK5AP1qS -g2QDQbn3Q60uL75/YJivkmV8egVqvQp9xIMcpYtqGMUXjC1B15cp41x5B50RQ8UJ -pfpIm745QXs0l0DjhIvHuyS1mjhHykNWrVIlIqiqLmQmoXHPC/BH2Qf0zBaZuBcj -6tOt5m4I5YUEDMNGZoDsKM/h2w== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/826_days_after_2018_03_01.pem b/src/pki/testdata/ssl/certificates/826_days_after_2018_03_01.pem deleted file mode 100644 index 1fb6bbd..0000000 --- a/src/pki/testdata/ssl/certificates/826_days_after_2018_03_01.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:7a - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Mar 2 00:00:00 2018 GMT - Not After : Jun 5 00:00:00 2020 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c6:48:5e:83:86:48:ec:31:7d:cc:2c:20:88:c3: - 5e:36:b5:bd:ba:4a:ed:1b:08:4c:30:4f:7c:f0:db: - 7f:c8:8a:31:ee:b5:58:18:8f:05:f5:85:fd:e0:e0: - 9c:3a:40:de:45:31:5f:94:1a:f7:67:26:9d:21:94: - 1f:73:96:30:0e:91:0c:96:2e:3f:40:9c:40:76:8e: - 27:de:23:24:a9:9f:6e:69:30:22:a7:62:ee:0f:72: - 5a:bb:1a:08:c8:49:f0:5b:53:e2:6a:e6:3e:5a:88: - 73:6d:03:c2:ec:43:8f:f2:dd:30:5f:b3:69:e6:7d: - 21:0c:a4:50:0a:78:3d:ba:2f:9f:dc:eb:a9:74:40: - 54:46:ef:c7:49:fc:24:25:ee:e9:18:3a:0d:37:86: - 90:5c:19:2b:17:4c:93:d2:11:45:78:20:c5:2b:ac: - 8c:23:d9:fe:2a:a5:3d:72:f0:a8:0d:29:76:23:73: - a8:a7:c8:ed:e1:52:4c:b9:ba:0a:ce:e5:07:e2:30: - 26:d2:07:8d:27:02:08:bd:41:6a:0f:bf:3f:43:11: - fa:17:01:0e:b1:b0:7b:df:8a:63:3d:59:41:6e:0f: - f5:53:cb:f9:be:ac:c4:a6:c3:6a:19:0b:36:38:ce: - 34:e3:9f:36:de:ed:bd:4a:d7:75:34:2a:b6:ed:53: - 7b:5d - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 56:75:5B:1E:72:EB:8C:14:EE:D6:78:E4:67:7B:7D:2D:D0:8F:6D:A1 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 3c:6f:26:8e:d6:8c:6b:01:bf:b0:8c:fc:06:9f:8c:b7:03:50: - 6d:45:42:de:e7:d0:a0:75:f2:b8:7e:12:13:96:9c:27:c1:ee: - 6e:b3:48:23:5b:1b:51:45:e7:89:71:62:de:4c:df:66:d3:81: - 87:64:72:55:d3:ec:da:3d:bb:5c:92:8a:1f:73:fa:5b:bb:b8: - 83:a9:52:b2:ce:4a:f7:19:68:f5:df:2b:cd:47:07:b7:75:4f: - 68:15:63:db:25:d3:6a:80:48:92:f2:e2:d4:9f:ae:73:86:c6: - 85:c9:35:66:65:8e:c4:b2:79:ea:64:ca:d2:d3:73:09:b9:22: - d5:b7:2a:28:d9:82:e4:85:cb:c8:82:1b:6c:95:80:62:18:21: - a7:2d:ae:8f:06:09:80:10:24:48:e0:2a:d5:4d:62:00:3e:ed: - 2c:7c:1e:9d:80:84:b1:de:3a:ab:95:78:b3:65:3a:1d:16:4f: - 82:b1:63:96:4c:75:3e:2a:0c:26:fc:60:fd:4c:b0:06:36:9a: - 1d:47:4a:51:47:b0:19:3c:79:f5:93:97:24:61:79:91:fe:7e: - 72:c6:cb:0a:74:00:a5:d2:ad:b8:bd:b3:45:0d:80:65:53:e5: - 90:98:14:d2:4b:b3:70:e1:96:c2:bf:7a:1b:66:ce:d4:e7:ae: - 8c:51:bc:c6 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnowDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xODAzMDIwMDAwMDBaFw0yMDA2MDUwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGSF6DhkjsMX3MLCCIw142tb26Su0bCEww -T3zw23/IijHutVgYjwX1hf3g4Jw6QN5FMV+UGvdnJp0hlB9zljAOkQyWLj9AnEB2 -jifeIySpn25pMCKnYu4Pclq7GgjISfBbU+Jq5j5aiHNtA8LsQ4/y3TBfs2nmfSEM -pFAKeD26L5/c66l0QFRG78dJ/CQl7ukYOg03hpBcGSsXTJPSEUV4IMUrrIwj2f4q -pT1y8KgNKXYjc6inyO3hUky5ugrO5QfiMCbSB40nAgi9QWoPvz9DEfoXAQ6xsHvf -imM9WUFuD/VTy/m+rMSmw2oZCzY4zjTjnzbe7b1K13U0KrbtU3tdAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRWdVsecuuMFO7WeORne30t0I9toTAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAPG8mjtaMawG/sIz8Bp+MtwNQbUVC3ufQoHXyuH4SE5acJ8HubrNII1sbUUXn -iXFi3kzfZtOBh2RyVdPs2j27XJKKH3P6W7u4g6lSss5K9xlo9d8rzUcHt3VPaBVj -2yXTaoBIkvLi1J+uc4bGhck1ZmWOxLJ56mTK0tNzCbki1bcqKNmC5IXLyIIbbJWA -Yhghpy2ujwYJgBAkSOAq1U1iAD7tLHwenYCEsd46q5V4s2U6HRZPgrFjlkx1PioM -Jvxg/UywBjaaHUdKUUewGTx59ZOXJGF5kf5+csbLCnQApdKtuL2zRQ2AZVPlkJgU -0kuzcOGWwr96G2bO1OeujFG8xg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/900_days_after_2019_07_01.pem b/src/pki/testdata/ssl/certificates/900_days_after_2019_07_01.pem deleted file mode 100644 index b2ab8c6..0000000 --- a/src/pki/testdata/ssl/certificates/900_days_after_2019_07_01.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:86 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:31 2022 GMT - Not After : Mar 21 17:20:31 2025 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c5:28:61:1e:94:d2:ed:5e:b3:fb:6c:35:e1:c5: - 1c:bb:78:67:d7:11:55:1c:38:db:67:4d:84:fa:39: - 73:81:ff:73:e4:10:a5:df:f4:21:43:14:c8:9f:4e: - f0:a7:45:82:2b:2c:79:34:df:db:3c:d0:07:fd:33: - eb:8a:be:49:dd:cf:22:7f:11:37:3f:3c:e3:be:fb: - ba:a0:b1:45:b4:bd:7c:d9:5b:7b:58:75:3e:fc:b8: - 9f:44:4f:cf:97:bf:70:1c:42:8b:1c:77:07:1e:5f: - 47:a8:78:5b:9f:0b:60:db:9b:58:63:81:db:1a:f1: - 37:bb:de:91:09:05:b0:3b:f2:e4:d9:a6:62:4b:ac: - 29:91:6e:04:c9:3d:85:8f:57:d6:d9:b6:be:fe:7a: - c8:e6:40:89:99:a4:c7:58:94:75:59:03:d8:bc:b1: - 8e:f0:d2:34:d7:c0:15:63:5c:bd:00:68:c1:2b:f4: - a6:c4:0d:94:df:38:cb:22:75:0c:2a:82:23:0e:13: - 82:76:bb:ff:73:66:c8:9c:b7:55:92:68:a4:04:73: - 92:ac:69:9c:3c:69:29:19:ad:57:e4:a9:59:c5:5d: - eb:ca:ba:6c:e2:86:01:6b:5c:ae:dc:35:c7:37:67: - 19:67:ee:37:f1:41:98:bd:02:54:87:f6:0a:c0:fd: - 82:9b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 84:86:46:35:36:B9:69:FE:CE:F1:0D:AF:A7:AE:1B:7E:07:F4:D5:38 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 4c:83:4a:91:36:3f:73:ff:1d:38:3e:9e:fb:44:87:42:80:82: - 2c:d9:3a:d7:4f:d9:a6:21:19:24:b5:b7:b8:42:71:23:2a:c8: - 81:17:28:95:95:c3:9f:72:b4:5d:c8:6e:6c:91:73:1a:88:68: - bd:d3:67:6c:72:97:fd:48:0f:2a:8c:06:8a:ed:ac:e2:a6:b2: - d4:e9:73:65:4f:71:f6:d8:62:a5:68:2d:2e:86:8e:ff:da:df: - ee:4b:bb:0e:50:89:a4:9d:27:62:fd:90:16:89:e9:12:7b:df: - a2:71:87:6e:99:28:3c:07:b7:81:86:73:7d:93:a0:3c:f0:a5: - e3:60:55:e0:0f:9f:c0:08:ad:ef:02:9a:ec:b5:ed:2b:e7:cd: - ec:c3:59:2b:20:24:05:da:f8:fd:97:67:27:bd:7d:58:ac:e4: - dd:1a:c0:28:9e:1a:4d:57:88:f2:39:bc:92:6a:43:75:4d:fd: - 59:9a:d9:f5:1c:49:57:ec:07:66:b2:06:e0:97:dc:44:fa:19: - 6f:3a:84:f7:ff:7a:c7:e7:2e:37:60:4a:23:fc:ef:00:98:4c: - 2b:d2:a1:8c:35:d3:d8:5a:2f:6e:f6:69:5c:f7:55:f1:49:f1: - e7:d4:9c:db:7c:6f:48:0d:5b:7a:1a:0d:6f:83:de:fd:29:d1: - d5:79:fc:c7 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwoYwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMzFaFw0yNTAzMjExNzIwMzFaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFKGEelNLtXrP7bDXhxRy7eGfXEVUcONtn -TYT6OXOB/3PkEKXf9CFDFMifTvCnRYIrLHk039s80Af9M+uKvkndzyJ/ETc/POO+ -+7qgsUW0vXzZW3tYdT78uJ9ET8+Xv3AcQoscdwceX0eoeFufC2Dbm1hjgdsa8Te7 -3pEJBbA78uTZpmJLrCmRbgTJPYWPV9bZtr7+esjmQImZpMdYlHVZA9i8sY7w0jTX -wBVjXL0AaMEr9KbEDZTfOMsidQwqgiMOE4J2u/9zZsict1WSaKQEc5KsaZw8aSkZ -rVfkqVnFXevKumzihgFrXK7cNcc3Zxln7jfxQZi9AlSH9grA/YKbAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSEhkY1Nrlp/s7xDa+nrht+B/TVODAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEATINKkTY/c/8dOD6e+0SHQoCCLNk610/ZpiEZJLW3uEJxIyrIgRcolZXDn3K0 -XchubJFzGohovdNnbHKX/UgPKowGiu2s4qay1OlzZU9x9thipWgtLoaO/9rf7ku7 -DlCJpJ0nYv2QFonpEnvfonGHbpkoPAe3gYZzfZOgPPCl42BV4A+fwAit7wKa7LXt -K+fN7MNZKyAkBdr4/ZdnJ719WKzk3RrAKJ4aTVeI8jm8kmpDdU39WZrZ9RxJV+wH -ZrIG4JfcRPoZbzqE9/96x+cuN2BKI/zvAJhMK9KhjDXT2FovbvZpXPdV8Unx59Sc -23xvSA1behoNb4Pe/SnR1Xn8xw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/BUILD.gn b/src/pki/testdata/ssl/certificates/BUILD.gn deleted file mode 100644 index c085596..0000000 --- a/src/pki/testdata/ssl/certificates/BUILD.gn +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2017 The Chromium Authors -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -action_foreach("generate_fuzzer_cert_includes") { - script = "//net/data/ssl/scripts/generate-fuzzer-cert-include.py" - sources = [ - "spdy_pooling.pem", - "wildcard.pem", - ] - outputs = [ "$target_gen_dir/{{source_name_part}}.inc" ] - args = [ "{{source}}" ] + rebase_path(outputs, root_build_dir) -} diff --git a/src/pki/testdata/ssl/certificates/README b/src/pki/testdata/ssl/certificates/README deleted file mode 100644 index dcc938b..0000000 --- a/src/pki/testdata/ssl/certificates/README +++ /dev/null @@ -1,310 +0,0 @@ -This directory contains various certificates for use with SSL-related -unit tests. - -===== Real-world certificates that need manual updating -- google.binary.p7b -- google.chain.pem -- google.pem_cert.p7b -- google.pem_pkcs7.p7b -- google.pkcs7.p7b -- google.single.der -- google.single.pem : Certificates for testing parsing of different formats. - -- mit.davidben.der : An expired MIT client certificate. - -- foaf.me.chromium-test-cert.der : A client certificate for a FOAF.ME identity - created for testing. - -- google_diginotar.pem -- diginotar_public_ca_2025.pem : A certificate chain for the regression test - of http://crbug.com/94673 - -- salesforce_com_test.pem -- verisign_intermediate_ca_2011.pem -- verisign_intermediate_ca_2016.pem : Certificates for testing two - X509Certificate objects that contain the same server certificate but - different intermediate CA certificates. The two intermediate CA - certificates actually represent the same intermediate CA but have - different validity periods. - -- ndn.ca.crt: "New Dream Network Certificate Authority" root certificate. - This is an X.509 v1 certificate that omits the version field. Used to - test that the certificate version gets the default value v1. - -- ct-test-embedded-cert.pem -- ct-test-embedded-with-intermediate-chain.pem -- ct-test-embedded-with-intermediate-preca-chain.pem -- ct-test-embedded-with-preca-chain.pem - Test certificate chains for Certificate Transparency: Each of these - files contains a leaf certificate as the first certificate, which has - embedded SCTs, followed by the issuer certificates chain. - All files are from the src/test/testdada directory in - https://code.google.com/p/certificate-transparency/ - -- leaf_from_known_root.pem : A certificate issued by a public trust anchor, - used for CertVerifyProcInternalTest.TestKnownRoot. Using for other - purposes is not recommended. This needs to be updated periodically so the - server name the cert is valid for may change. - -- lets-encrypt-dst-x3-root.pem: A chain that ends in the Lets encrypt DST X3 - root (https://crt.sh/?id=8395). Has the same leaf as - lets-encrypt-isrg-x1-root.pem. -- lets-encrypt-isrg-x1-root.pem: A chain that ends in the Lets encrypt ISRG X1 - root (https://crt.sh/?id=9314791). Has the same leaf as - lets-encrypt-dst-x3-root.pem. - -===== Manually generated certificates -- client.p12 : A PKCS #12 file containing a client certificate and a private - key created for testing. The password is "12345". - -- client-nokey.p12 : A PKCS #12 file containing a client certificate (the same - as the one in client.p12) but no private key. The password is "12345". - -- client-empty-password.p12 : A PKCS #12 file containing an unencrypted client - certificate and a encrypted private key. The password is the empty string, - encoded as two zero bytes. (PKCS#12 passwords are encoded as - NUL-terminated UTF-16.) - -- client-null-password.p12 : A PKCS #12 file containing an unencrypted client - certificate and a encrypted private key. The password is the empty string, - encoded as the empty byte string. - -- unittest.selfsigned.der : A self-signed certificate generated using private - key in unittest.key.bin. The common name is "unittest". - -- unittest.key.bin : private key stored unencrypted. - -- multivalue_rdn.pem : A regression test for http://crbug.com/101009. A - certificate with all of the AttributeTypeAndValues stored within a single - RelativeDistinguishedName, rather than one AVA per RDN as normally seen. - -- unescaped.pem : Regression test for http://crbug.com/102839. Contains - characters such as '=' and '"' that would normally be escaped when - converting a subject/issuer name to their stringized form. - -- websocket_cacert.pem : The testing root CA for testing WebSocket client - certificate authentication. - This file is used in SSLUITest.TestWSSClientCert. - -- websocket_client_cert.p12 : A PKCS #12 file containing a client certificate - and a private key created for WebSocket testing. The password is "". - This file is used in SSLUITest.TestWSSClientCert. - -- no_subject_common_name_cert.pem: Used to test the function that generates a - NSS certificate nickname for a user certificate. This certificate's Subject - field doesn't have a common name. - -- ct-test-embedded-with-uids.pem: A certificate with embedded SCT and - issuer/subject unique IDs. This certificate should only be used in parsing - tests and otherwise kept fixed. The signature, etc., are intentionally - invalid. - -- name_constrained_key.pem - The private key matching the public_key_hash of the kDomainsTest constraint - in CertVerifyProc::HasNameConstraintsViolation. - -===== From net/data/ssl/scripts/generate-quic-chain.sh -- quic-chain.pem -- quic-leaf-cert.key -- quic-leaf-cert.key.pkcs8.pem -- quic-root.pem - These certificates are used by integration tests that use QUIC. - -- quic-leaf-cert.key.sct - This isn't generated and just contains a simple text file (the contents - don't actually matter, just the presence of the file). - -===== From net/data/ssl/scripts/generate-test-certs.sh -- expired_cert.pem -- ok_cert.pem -- root_ca_cert.pem - These certificates are the common certificates used by the Python test - server for simulating HTTPS connections. - -- intermediate_ca_cert.pem -- ok_cert_by_intermediate.pem - These certificates simulate a more common chain of root (root_ca_cert.pem) - to intermediate (intermediate_ca_cert.pem) to leaf - (ok_cert_by_intermediate.pem). - -- wildcard_.pem - A certificate and private key valid for *.example.org, used in various - net unit tests. - -- test_names.pem - A certificate and private key valid for a number of test names. See - [test_names] in ee.cnf. Other names may be added as needed. - -- bad_validity.pem - A certificate and private key only valid on 0001-01-01. Windows refuses to - parse this certificate. - -- spdy_pooling.pem : Used to test the handling of spdy IP connection pooling - -- subjectAltName_sanity_check.pem : Used to test the handling of various types - within the subjectAltName extension of a certificate. - -- policies_sanity_check.pem : Used to test the parsing of various types of - certificatePolicies extension policyQualifiers. - -- punycodetest.pem : A test self-signed server certificate with punycode name. - The common name is "xn--wgv71a119e.com" (日本語.com) - -- sha1_2016.pem - Used to test the handling of SHA1 certificates expiring in 2016. - -- 10_year_validity.pem -- 11_year_validity.pem -- 39_months_after_2015_04.pem -- 40_months_after_2015_04.pem -- 60_months_after_2012_07.pem -- 61_months_after_2012_07.pem -- pre_br_validity_bad_121.pem -- pre_br_validity_bad_2020.pem -- pre_br_validity_ok.pem -- start_after_expiry.pem - Certs to test that the maximum validity durations set by the CA/Browser - Forum Baseline Requirements are enforced. - -- may_2018.pem - An 825-day certificate issued on May 1, 2018, the official start of - enforcement requiring Certificate Transparency for new certificates. This - certificate does not have any embedded SCTs. - -- x509_verify_results.chain.pem : A simple certificate chain used to test that - the correctly ordered, filtered certificate chain is returned during - verification, regardless of the order in which the intermediate/root CA - certificates are provided. - -- ev_test.pem -- ev_test_state_only.pem - Certificates for testing EV display (including regression test for - https://crbug.com/1069113). - -===== From net/data/ssl/scripts/generate-test-keys.sh -- rsa-{768,1024,2048}-{1..3}.key -- ec-prime256v1-{1..3}.key - Pre-generated keys of various types/sizes. - Useful for tests that generate RSA certificates with CertBuilder without - having to pay the cost of generating RSA keys at runtime. Multiple keys - of each size are provided. (EC keys are cheap to generate at runtime, but - having some as files simplifies test logic in cases where the test is - reading both RSA and EC keys from files.) - -===== From net/data/ssl/scripts/generate-redundant-test-chains.sh -- redundant-validated-chain.pem -- redundant-server-chain.pem -- redundant-validated-chain-root.pem - - Two chains, A -> B -> C -> D and A -> B -> C2 (C and C2 share the same - public key) to test that SSLInfo gets the reconstructed, re-ordered - chain instead of the chain as served. See - SSLClientSocketTest.VerifyReturnChainProperlyOrdered in - net/socket/ssl_client_socket_unittest.cc. These chains are valid until - 26 Feb 2022 and are generated by - net/data/ssl/scripts/generate-redundant-test-chains.sh. - -===== From net/data/ssl/scripts/generate-client-certificates.sh -- client_1.pem -- client_1.key -- client_1.pk8 -- client_1_ca.pem -- client_2.pem -- client_2.key -- client_2.pk8 -- client_2_ca.pem -- client_3.pem -- client_3.key -- client_3.pk8 -- client_3_ca.pem -- client_4.pem -- client_4.key -- client_4.pk8 -- client_4_ca.pem -- client_5.pem -- client_5.key -- client_5.pk8 -- client_5_ca.pem -- client_6.pem -- client_6.key -- client_6.pk8 -- client_6_ca.pem -- client_root_ca.pem - This is a set of files used to unit test SSL client certificate - authentication. - - client_1_ca.pem and client_2_ca.pem are the certificates of - two distinct signing CAs. - - client_1.pem and client_1.key correspond to the certificate and - private key for a first certificate signed by client_1_ca.pem. - - client_2.pem and client_2.key correspond to the certificate and - private key for a second certificate signed by client_2_ca.pem. - - each .pk8 file contains the same key as the corresponding .key file - as PKCS#8 PrivateKeyInfo in DER encoding. - - client_3.pem is nearly identical to client_2.pem, except it is used - to test wifi EAP-TLS authentication so it uses a different set - of X509v3 extensions. Specifically it includes two Subject - Alternative Name fields recognized by Chrome OS. - - client_4.pem is similar to client_2.pem but is a P-256 ECDSA key rather - than RSA. - - client_5.pem is similar to client_2.pem but is a P-384 ECDSA key rather - than RSA. - - client_6.pem is similar to client_2.pem but is a P-521 ECDSA key rather - than RSA. - - client_root_ca.pem is the CA certificate which signed client_*_ca.pem. - -===== From net/data/ssl/scripts/generate-bad-eku-certs.sh -- eku-test-root.pem -- non-crit-codeSigning-chain.pem -- crit-codeSigning-chain.pem - Two code-signing certificates (eKU: codeSigning; eKU: critical, - codeSigning) which we use to test that clients are making sure that web - server certs are checked for correct eKU fields (when an eKU field is - present). Since codeSigning is not valid for web server auth, the checks - should fail. - -===== From net/data/ssl/scripts/generate-multi-root-test-chains.sh -- multi-root-chain1.pem -- multi-root-chain2.pem - Two chains, A -> B -> C -> D and A -> B -> C2 -> E (C and C2 share the - same public key) to test that certificate validation caching does not - interfere with the chain_verify_callback used by CertVerifyProcChromeOS. - See CertVerifyProcChromeOSTest. - -===== From net/data/ssl/scripts/generate-multi-root-keychain.sh -- multi-root.keychain: An OSX Keychain containing the generated - certificates multi-root-*-by-*.pem - -===== From net/data/ssl/scripts/generate-duplicate-cn-certs.sh -- duplicate_cn_1.p12 -- duplicate_cn_1.pem -- duplicate_cn_2.p12 -- duplicate_cn_2.pem - Two certificates from the same issuer that share the same common name, - but have distinct subject names (namely, their O fields differ). NSS - requires that certificates have unique nicknames if they do not share the - same subject, and these certificates are used to test that the nickname - generation algorithm generates unique nicknames. - The .pem versions contain just the certs, while the .p12 versions contain - both the cert and a private key, since there are multiple ways to import - certificates into NSS. - -===== From net/data/ssl/scripts/generate-self-signed-certs.sh -- self-signed-invalid-name.pem -- self-signed-invalid-sig.pem - Two "self-signed" certificates with mismatched names or an invalid - signature, respectively. - -===== From net/data/ssl/scripts/generate-key-usage-certs.sh -- key_usage_rsa_no_extension.pem -- key_usage_rsa_keyencipherment.pem -- key_usage_rsa_digitalsignature.pem -- key_usage_rsa_both.pem - Self-signed RSA certificates with various combinations of keyUsage - flags. Their private key is key_usage_rsa.key. - -- key_usage_p256_no_extension.pem -- key_usage_p256_keyagreement.pem -- key_usage_p256_digitalsignature.pem -- key_usage_p256_both.pem - Self-signed P-256 certificates with various combinations of keyUsage - flags. Their private key is key_usage_p256.key. diff --git a/src/pki/testdata/ssl/certificates/bad_validity.pem b/src/pki/testdata/ssl/certificates/bad_validity.pem deleted file mode 100644 index 4b17a76..0000000 --- a/src/pki/testdata/ssl/certificates/bad_validity.pem +++ /dev/null @@ -1,112 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDgU/TzmMEUMwLI -pG3+qir3lD2mbwDfO95Mn6PqB9Ss5VsN0azg7fnFmB01LeWzSZcUhUQP3EzSZwiI -AaXYp+uT0Wqh91HnhH5SKn28bw7Y27amPt7c9aRolkQRhQLtRxLfuGBxlXtih2h6 -RFYJ1bTI8fbJRpKLaOiD1dWGcSPDgB6/bAHH0qS8QG3g48AuMHi9rd0lZtP1BwdW -187icsUlfQzhp28AqNqrS1RDCWSktlI4L7fMAd0cAycDR7/f5jew7RjcUQvUdSLf -UHs86zc5HJtvCHunBayMQ/fx2lEGs4JFPsiBc56wpc92lq+BLKwBKkpYSx2+/x+F -wife8XgLAgMBAAECggEAO0gUmHdKtvLQDoPdiYogtrKXJC97dILWuTsKzyLoohQu -XtWFMR/SfNQ5C7+oTxvocATTurlGF+ggigidckbV64dQ/aJlI6CQ3VfbSHu02bwe -ZYqBzLShkP382QBkiJ3asAKCgiG1rJEKHB2I+ypdjyjaRdB/k5XStFxDBDdL8zKe -kL1hytf1ALxYBQJ3TXcoIqlpzz6v+JnZTAuu4vrySfffyFTrytIwf/KGlBACBqXe -oV+DK586PiyC0m1Hhy1rLTi2/IT4t4j3KO+c/OnpWkMEg1G/Ojy1zPMsMHr1VO9t -UWxhEIYOLQVUOT+2ltO4bRJcgEPHSxlIY23qalJgqQKBgQD9oZwHPhLZg439Zr9O -Zgl5fFkPe4SxqLY+ggE5O81+3RgL8GyAuy9oDtUGcw8L9tpKcBflqH4jEvUvT1/m -8BGKIQteqcKbY0C+KfPvq77R4k2KqmxpKF5f4BS/9O7cgzJZwhSFKDLtcKtDIPUK -3eoERuPB4/cmhQyb+/TKofZpfwKBgQDibEm1+nYj3tIXDxK3hZHjPz0s9vYV84py -zg3HjuEmdacnhNPQQQpNG83RMjEnnBvHWH2vxRWyD+57r/FWeA60aUJo5WIP0rj8 -z6GqFT9IWaBrJtBU1YoxuyTH64yih6ljvm2skIEGlQYS+GBL9K/Tx4mh4lAKVzD5 -GXVqtyM/dQKBgFD0Ik8VewK+QLXe87TcUK3cCLkuXZ4vEWxGJonUErUpcKFu7dLw -7CK0iT3zv5u8ANS9joMZEpmzVVryZNPbUF3cSjq+yIS8W0/XKCsZkGCBcOqPlubB -oc3MQhM65HqxzYJkthQCTq8GxUM547zCNA2FavDaCGrdELdA5lM++t2VAoGAMLem -AH68bqlhwM5gc5ZMtn2D1ynn9v8oudz2AAsRDKph5dHhlTx5T+/8j9dh1ijznSfA -G1KngWGGKZzIq5c3ar//Jvy75bWsUdEG8saRkCqgpo16Y9ZyXpLqrg1TfCD+ZFSz -2l5ZNKZZ4TkJ1y31qvaS+X7tQ9xQ0DgXGHgBIIUCgYABBBddUXpOyG54HvFHIgxS -esBBkpM0uy3vOkyfMown2GCjKZaXS5kEmRwU9WQQKLPf2ieALgYEf87YGWmPNZNF -tG5DoNhTMsrYORB11tuuBR1e6lrG/aoOkP/4udWC8d4Yp9wnkEu0l6X/kMfq2lb1 -67bBVmHqKJ0t8rytHzkP0Q== ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:6b - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Jan 1 00:00:00 1 GMT - Not After : Jan 1 00:00:00 1 GMT - Subject: CN=Leaf Certificate - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e0:53:f4:f3:98:c1:14:33:02:c8:a4:6d:fe:aa: - 2a:f7:94:3d:a6:6f:00:df:3b:de:4c:9f:a3:ea:07: - d4:ac:e5:5b:0d:d1:ac:e0:ed:f9:c5:98:1d:35:2d: - e5:b3:49:97:14:85:44:0f:dc:4c:d2:67:08:88:01: - a5:d8:a7:eb:93:d1:6a:a1:f7:51:e7:84:7e:52:2a: - 7d:bc:6f:0e:d8:db:b6:a6:3e:de:dc:f5:a4:68:96: - 44:11:85:02:ed:47:12:df:b8:60:71:95:7b:62:87: - 68:7a:44:56:09:d5:b4:c8:f1:f6:c9:46:92:8b:68: - e8:83:d5:d5:86:71:23:c3:80:1e:bf:6c:01:c7:d2: - a4:bc:40:6d:e0:e3:c0:2e:30:78:bd:ad:dd:25:66: - d3:f5:07:07:56:d7:ce:e2:72:c5:25:7d:0c:e1:a7: - 6f:00:a8:da:ab:4b:54:43:09:64:a4:b6:52:38:2f: - b7:cc:01:dd:1c:03:27:03:47:bf:df:e6:37:b0:ed: - 18:dc:51:0b:d4:75:22:df:50:7b:3c:eb:37:39:1c: - 9b:6f:08:7b:a7:05:ac:8c:43:f7:f1:da:51:06:b3: - 82:45:3e:c8:81:73:9e:b0:a5:cf:76:96:af:81:2c: - ac:01:2a:4a:58:4b:1d:be:ff:1f:85:c2:27:de:f1: - 78:0b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E2:E0:A4:73:95:9B:E9:6E:FD:CE:29:C4:6F:07:81:0B:96:BD:47:BA - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - bf:da:fe:8f:5a:ca:5d:f5:9a:90:19:34:84:15:ab:46:80:62: - ed:95:c4:2e:04:ae:7b:0d:b7:a9:be:f6:28:8e:eb:a2:84:3e: - 04:a6:b5:d4:61:a3:69:5c:ce:02:1e:4b:9a:40:58:19:c9:5f: - 86:c2:a4:39:d9:c9:8e:ab:3a:b7:97:86:4e:96:73:dd:7c:84: - 05:e8:2b:0c:83:a4:d0:69:1a:bf:c0:c1:a9:ed:c6:71:ec:bd: - 94:56:4c:d4:0a:72:f2:62:69:57:67:b9:93:03:c5:43:a2:1b: - c2:20:36:6f:f1:ae:47:5d:7f:4f:65:a9:ad:30:60:93:50:34: - fe:8d:38:2a:b8:b3:a6:19:0c:de:30:e7:bd:61:cd:ff:b9:5e: - 5d:06:85:52:95:d5:a0:76:14:02:58:43:e6:83:72:31:b1:41: - 7d:20:7b:a8:db:7f:b2:36:ea:35:c0:70:c0:c1:c5:6f:fd:48: - 41:bf:ff:67:c9:16:c4:a4:77:99:94:0b:ec:55:bc:91:b9:3d: - dc:68:52:b0:ad:a4:e3:c7:55:e5:67:37:52:c0:ce:1f:3d:19: - bb:00:91:4a:44:bb:40:eb:f5:7e:a7:7c:49:fd:26:16:a7:cd: - 69:3d:d4:4b:37:5e:d9:cf:30:8a:8d:83:84:d5:5b:f7:4d:4d: - 85:11:26:78 ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIRALBrk5LjXI1+7Z3IllnFwmswDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAiGA8wMDAxMDEwMTAwMDAwMFoYDzAwMDEwMTAxMDAwMDAwWjAbMRkwFwYD -VQQDDBBMZWFmIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA4FP085jBFDMCyKRt/qoq95Q9pm8A3zveTJ+j6gfUrOVbDdGs4O35xZgd -NS3ls0mXFIVED9xM0mcIiAGl2Kfrk9FqofdR54R+Uip9vG8O2Nu2pj7e3PWkaJZE -EYUC7UcS37hgcZV7YodoekRWCdW0yPH2yUaSi2jog9XVhnEjw4Aev2wBx9KkvEBt -4OPALjB4va3dJWbT9QcHVtfO4nLFJX0M4advAKjaq0tUQwlkpLZSOC+3zAHdHAMn -A0e/3+Y3sO0Y3FEL1HUi31B7POs3ORybbwh7pwWsjEP38dpRBrOCRT7IgXOesKXP -dpavgSysASpKWEsdvv8fhcIn3vF4CwIDAQABo4GAMH4wDAYDVR0TAQH/BAIwADAd -BgNVHQ4EFgQU4uCkc5Wb6W79zinEbweBC5a9R7owHwYDVR0jBBgwFoAUmyYLipip -ux25HxzjGkAz7Y4XiKswHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8G -A1UdEQQIMAaHBH8AAAEwDQYJKoZIhvcNAQELBQADggEBAL/a/o9ayl31mpAZNIQV -q0aAYu2VxC4ErnsNt6m+9iiO66KEPgSmtdRho2lczgIeS5pAWBnJX4bCpDnZyY6r -OreXhk6Wc918hAXoKwyDpNBpGr/AwantxnHsvZRWTNQKcvJiaVdnuZMDxUOiG8Ig -Nm/xrkddf09lqa0wYJNQNP6NOCq4s6YZDN4w571hzf+5Xl0GhVKV1aB2FAJYQ+aD -cjGxQX0ge6jbf7I26jXAcMDBxW/9SEG//2fJFsSkd5mUC+xVvJG5PdxoUrCtpOPH -VeVnN1LAzh89GbsAkUpEu0Dr9X6nfEn9JhanzWk91Es3XtnPMIqNg4TVW/dNTYUR -Jng= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/can_sign_http_exchanges_draft_extension.pem b/src/pki/testdata/ssl/certificates/can_sign_http_exchanges_draft_extension.pem deleted file mode 100644 index 0bf4751..0000000 --- a/src/pki/testdata/ssl/certificates/can_sign_http_exchanges_draft_extension.pem +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIUZCoefl8RYqHLu2ziqedCbSAfH/4wDQYJKoZIhvcNAQEL -BQAwYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM -DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMMCTEyNy4w -LjAuMTAeFw0yMjEwMDMxNzIwMzBaFw0yMzEwMDMxNzIwMzBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHxaeis59fd/yaGhvGCkW7F+eUhXvZqOgc -SVvcudUmtxV5JAbLwXiQwKL820Wmm9VJ5gXoPtFdTNZYhbJkd324bSu/H71QDtgm -7ngGeipmAIYEvHpscBhRStIyBtcWrYNvdOXqmAQLJirtyxaAX5NkVrURkoaoJzv9 -yYKOfbZR9hPtLIL6mfT2NiLlLtUN6icLmJX6z4t2Eu55sAnJjCwKnvg9E976yoOn -wDXJDY3OnC3V/eYZZO9bBdlalXZ16l8xUXXhL8+xSrOgnleD2QHFLoSXecx5FEeZ -7gGdiWi8oXzkD6MiY1xOTwFlvgNNegjnWOlqpT0OJhYD2atYMH51AgMBAAGjRDBC -MA8GA1UdEQQIMAaHBH8AAAEwEAYKKwYBBAHWeQIBFgQCBQAwHQYDVR0OBBYEFJ4m -W3kENeZsH6FrlzETjZb0qj98MA0GCSqGSIb3DQEBCwUAA4IBAQDFl5sdC5X3jc3h -gFvu9w/Gg/8B4y2wyVQYk7FOWvFwQXOJ6fKo0gP01RtQ1BCUTTa4UC6yGxZSmI7D -Vubi8wLv9ut9Trjz0ZN/s+18OKWWPpknm6RPrtgz3lcSJUPijQBDj62ocWLr51uj -JS7k7OsvAQQ2BBh2auZDZQ6RmEJvce7Pl0wG3e7lrHo5sRU46bERvpiMctHy/x9M -IBryGjz58SvWECsFQC49nb1jLkYbPqDsU/GlemVPffiSUVjERZMLx8FmpKnZRy2a -tT7RY3/C0G9pNrp6ymYlhkSMOiXcjRJwPCOsXlczwQo1ACtmxXSifjSaC/3Rx/0Q -0jufLLMb ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/can_sign_http_exchanges_draft_extension_invalid.pem b/src/pki/testdata/ssl/certificates/can_sign_http_exchanges_draft_extension_invalid.pem deleted file mode 100644 index dd49c6d..0000000 --- a/src/pki/testdata/ssl/certificates/can_sign_http_exchanges_draft_extension_invalid.pem +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIUKI4gpE2u/33EvFq/n6Lu6en7OtEwDQYJKoZIhvcNAQEL -BQAwYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM -DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMMCTEyNy4w -LjAuMTAeFw0yMjEwMDMxNzIwMzBaFw0yMzEwMDMxNzIwMzBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYzHvl9+jL2fcnXxtL+Co0+pBwhi/JvBkl -XF9S5SNEualXFq4ajs1Mp6QEevTqSQYArAxHGtoVGBMSVeGsxQuD9mw5gizO/FTR -dcm6fpWhp6l8W66v49Gc9zm/vte51n27iqa3LATIUzW/P6eDbLR3adQCB2n36miE -kCvAbzwddPC6VkSeV+u/SOhccFvY5aluRuKWCOyfNi6lu4q5NCqNMF1+OplVTutW -aGo8xMRcNqnQ9u/rwPV9NzVnhlW6Rn1eQrSMnWTnlBytyZGkHvF0ZuJ7sk3/sF7M -+KRQQ32SIeZV3n6Ctw/GOtQz/yw1g+2Sp2cBZB+fNXb4EaOojLvLAgMBAAGjRDBC -MA8GA1UdEQQIMAaHBH8AAAEwEAYKKwYBBAHWeQIBFgQCMAAwHQYDVR0OBBYEFPPi -QMbqtGksJRPMpYH2NFpHtVnlMA0GCSqGSIb3DQEBCwUAA4IBAQBkJakWGDFVcOkh -MXRQBikBmnxalzrmB8ayHK6q4v65nyhi912e3wJ7RGih00ESsJtuSTZDaxhz/STI -jo88gWHKG2EUdwh4S9c9HpPcFvGmbVZx1x2gkvIfbQMPMYEyiSsD8FYUWOrc3NGS -gRj7/4t/IL+oeOjnKgzm2uVCIQHgGPMQWQUtsVszVcaBvegpR7SKA9ew3RdXi+WY -ObEXIonrWg6STiVENMpLFX6flNIXJxw2IwSjerf25FxGloNLjW2zJLPh9UeiCud6 -f3+EBU7p52j5jkEjcYTZt+L/350riO+lMDHKd+u8p9qXxnS9Q52oWZSx8KTcd1oh -24PS0WnY ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client-empty-password.p12 b/src/pki/testdata/ssl/certificates/client-empty-password.p12 Binary files differdeleted file mode 100644 index e0b514c..0000000 --- a/src/pki/testdata/ssl/certificates/client-empty-password.p12 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client-nokey.p12 b/src/pki/testdata/ssl/certificates/client-nokey.p12 Binary files differdeleted file mode 100644 index bd6bd7c..0000000 --- a/src/pki/testdata/ssl/certificates/client-nokey.p12 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client-null-password.p12 b/src/pki/testdata/ssl/certificates/client-null-password.p12 Binary files differdeleted file mode 100644 index a8c45a7..0000000 --- a/src/pki/testdata/ssl/certificates/client-null-password.p12 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client.p12 b/src/pki/testdata/ssl/certificates/client.p12 Binary files differdeleted file mode 100644 index ea1657a..0000000 --- a/src/pki/testdata/ssl/certificates/client.p12 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client_1.key b/src/pki/testdata/ssl/certificates/client_1.key deleted file mode 100644 index 5ceb7e9..0000000 --- a/src/pki/testdata/ssl/certificates/client_1.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDa+Dq7TTFSw1Ax -RkaftrCM8tuPbYH7NTxLdHil0F2y4G+PvrlqN0qB43tRaKJPQEYhG+RnppXeOk6/ -AbgOFXBQCPoVJWOjxwMX3ea3rSLM5C9xUP9Rsnf/fkngD6G6pOo2nYinfgpINQDh -GB/r8BJs69RNhvgdbN4aV7Bz8WGYqKF3DVhV+Di5zIOPNC9zoZQPey4duMS06OER -G7Op8fFws3QoCzEywVdAbe/R+m5oeg875vLVvmONwDi52mqv4rgbfl+aPhyyPzoR -3hdIPEi13AQB5hmyLAcTDtvcib3beNLw586NXcYgQZdcbLmDkjVRDK4uniE4QaRU -GeRJD2+xAgMBAAECggEABMvoYMcg2WGDuESZZ5u6nn0eZUlT4329H6ECQzg/KTEv -OGydhqUF6eD4B/vnsZ6POrVFSaZK76EtgukbJUcqcee0b1yljrDyvCXaoojgHjFc -aa90HE/Gvvm++AcXoZfwX826cILQtQK2OCK4EPTDY+U+6LYtaVruZZDTVxgr7V+v -4v1EDKEjQc+Ttupwo6aXSeiTKuqNsXuodoDvcv/uJgzMDCxi14TZTjaWOz7Xw2JZ -+NLbTrsiqTyzmyJousV6/+4sfTYt8/tz0gMt3Qaddvs+BpTTrYIKTpsGYwPkKDqU -dEkC87OQ6a2mXB1lpA7FMpZiiyJ1HpIXHkd+eLoNkQKBgQDlQtZdTlHu0YLM2WlO -RFYP8zyx/9k6rXZVVZLNBcZazEUkcgXJ7MS8pXieiXo6UJEf0PNCCY21ooOMPq6L -I0NNF/yDbvT9Ri7eRNZRZosXIDaB17S93vgZ4Ukri7JJv3Bx+V2Wwl3P2/g080sh -qx8ZZsg1aQqpKov9qsavyXAuGQKBgQD0gh2P+rt0jQ9SnJ8ETGzFAXmhZyt4my+v -BuFX8tFvByxMiUIxzsmHxCA6td/6KCWPwoo3xhe7r/+NHEFe6k9NR3KgrHOrHFcC -qOAHWYPuPCKaG0ycbEF3tjzuDbZUJzH4WBgQDEsPlwDYEpkR17FX6sIMaAPMRvlO -cZQZqnXRWQKBgQC6t0+c2E+UYB/WNG82ZiNthB13nrbNuj54y2PvBHgCtQDO6Opc -BTBJr75n5/GbEsjPD78+lkdKmdvnWZmQCh0i6ZkndjOjHwjGz2t5CjnXkM2zu/kg -9jo74aZVB8Yhl/+9Y2lcglojErS4czlKZ3LBnlsKXM1o7xTqeK6utjFd6QKBgQCA -aH0CClm8IgC0EBDq/v/4jofEHhyUYFuwfdqGh705o/i90S/0XHc2V+fdLXsNM1xW -nYJdPClmpk19XCNwp3kySp2GiErOyDlh6jKNaZOB4A8EA+Y+GBRhvFFPa+AfXd4+ -YHVyqCIbc+A7mbjNyAsY8u8p+M5Vz8hKTBfNStpJMQKBgH6YBNtXqyPDXgqyvRkj -Zt01I2ZYn2iIHBhHyDWE5j0QjhzF2kLpKIASO1uOTsaurAhPuyUTR+8EXu2OSP3R -oaJ5buwUb8yL2b8Q075WCSp+eXdU6ZmEYdfnKX+63I9QIWvTFsREZybFR4tPgsQJ -Gq/L8jNIxDxG9D0P1I2Zxrfd ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/client_1.pem b/src/pki/testdata/ssl/certificates/client_1.pem deleted file mode 100644 index 2778fcc..0000000 --- a/src/pki/testdata/ssl/certificates/client_1.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=B CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=Client Cert A - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:da:f8:3a:bb:4d:31:52:c3:50:31:46:46:9f:b6: - b0:8c:f2:db:8f:6d:81:fb:35:3c:4b:74:78:a5:d0: - 5d:b2:e0:6f:8f:be:b9:6a:37:4a:81:e3:7b:51:68: - a2:4f:40:46:21:1b:e4:67:a6:95:de:3a:4e:bf:01: - b8:0e:15:70:50:08:fa:15:25:63:a3:c7:03:17:dd: - e6:b7:ad:22:cc:e4:2f:71:50:ff:51:b2:77:ff:7e: - 49:e0:0f:a1:ba:a4:ea:36:9d:88:a7:7e:0a:48:35: - 00:e1:18:1f:eb:f0:12:6c:eb:d4:4d:86:f8:1d:6c: - de:1a:57:b0:73:f1:61:98:a8:a1:77:0d:58:55:f8: - 38:b9:cc:83:8f:34:2f:73:a1:94:0f:7b:2e:1d:b8: - c4:b4:e8:e1:11:1b:b3:a9:f1:f1:70:b3:74:28:0b: - 31:32:c1:57:40:6d:ef:d1:fa:6e:68:7a:0f:3b:e6: - f2:d5:be:63:8d:c0:38:b9:da:6a:af:e2:b8:1b:7e: - 5f:9a:3e:1c:b2:3f:3a:11:de:17:48:3c:48:b5:dc: - 04:01:e6:19:b2:2c:07:13:0e:db:dc:89:bd:db:78: - d2:f0:e7:ce:8d:5d:c6:20:41:97:5c:6c:b9:83:92: - 35:51:0c:ae:2e:9e:21:38:41:a4:54:19:e4:49:0f: - 6f:b1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Key Identifier: - 90:E3:67:93:7D:10:6E:6D:4D:49:29:65:38:E5:F5:9C:66:62:DD:69 - X509v3 Authority Key Identifier: - 6F:C5:EC:40:44:0F:5C:78:04:8E:66:11:4E:A1:EE:1E:38:38:FD:72 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 3e:f3:8a:9f:b7:8a:87:4f:64:56:08:e6:a0:07:e4:b9:f1:8a: - 88:50:a0:cc:95:bd:ab:7e:02:97:0f:ce:1b:fe:56:fc:44:3c: - fa:b2:98:f9:cf:b4:a6:07:9e:b4:c5:64:9a:49:90:4b:81:5c: - ed:ee:cc:3a:4f:ca:36:e8:dd:3c:e7:c1:2b:6b:b9:62:29:f8: - 6d:ca:61:53:40:20:32:1b:85:f9:55:0e:85:55:cf:bf:e9:b8: - 5d:ec:16:aa:8d:1d:85:d8:18:1a:6a:aa:e2:91:cf:ba:8b:46: - 2d:e8:d4:a9:24:98:20:b5:f7:e0:b9:fe:2e:ef:e9:94:17:c3: - 54:57:8f:7f:f8:04:91:6a:d3:0c:3a:1f:50:1c:18:c1:08:fe: - c9:83:4f:23:2f:c4:b8:8d:db:d3:f2:45:54:27:29:2b:f3:50: - 7d:79:1f:38:17:09:8a:38:90:63:8b:29:8c:12:7f:1b:da:0e: - 01:b5:c7:7d:9b:65:99:5b:3e:de:0b:b0:83:d7:81:b0:0d:b4: - 09:b4:63:6d:2a:b0:25:f5:1f:cf:df:b1:fc:8a:c4:29:29:3b: - d3:2c:ba:ad:83:21:56:dc:1e:7b:81:b8:77:4a:cb:09:e2:15: - 32:3b:78:69:33:97:ff:2f:e0:94:83:9d:6d:27:d0:8f:f4:ae: - 9d:7b:35:18 ------BEGIN CERTIFICATE----- -MIIDEjCCAfqgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwEQiBD -QTAeFw0yMjEwMTkxNjU4NTVaFw0zMjEwMTYxNjU4NTVaMBgxFjAUBgNVBAMMDUNs -aWVudCBDZXJ0IEEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa+Dq7 -TTFSw1AxRkaftrCM8tuPbYH7NTxLdHil0F2y4G+PvrlqN0qB43tRaKJPQEYhG+Rn -ppXeOk6/AbgOFXBQCPoVJWOjxwMX3ea3rSLM5C9xUP9Rsnf/fkngD6G6pOo2nYin -fgpINQDhGB/r8BJs69RNhvgdbN4aV7Bz8WGYqKF3DVhV+Di5zIOPNC9zoZQPey4d -uMS06OERG7Op8fFws3QoCzEywVdAbe/R+m5oeg875vLVvmONwDi52mqv4rgbfl+a -PhyyPzoR3hdIPEi13AQB5hmyLAcTDtvcib3beNLw586NXcYgQZdcbLmDkjVRDK4u -niE4QaRUGeRJD2+xAgMBAAGjbzBtMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBSQ42eTfRBubU1JKWU45fWcZmLd -aTAfBgNVHSMEGDAWgBRvxexARA9ceASOZhFOoe4eODj9cjANBgkqhkiG9w0BAQsF -AAOCAQEAPvOKn7eKh09kVgjmoAfkufGKiFCgzJW9q34Clw/OG/5W/EQ8+rKY+c+0 -pgeetMVkmkmQS4Fc7e7MOk/KNujdPOfBK2u5Yin4bcphU0AgMhuF+VUOhVXPv+m4 -XewWqo0dhdgYGmqq4pHPuotGLejUqSSYILX34Ln+Lu/plBfDVFePf/gEkWrTDDof -UBwYwQj+yYNPIy/EuI3b0/JFVCcpK/NQfXkfOBcJijiQY4spjBJ/G9oOAbXHfZtl -mVs+3guwg9eBsA20CbRjbSqwJfUfz9+x/IrEKSk70yy6rYMhVtwee4G4d0rLCeIV -Mjt4aTOX/y/glIOdbSfQj/SunXs1GA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_1.pk8 b/src/pki/testdata/ssl/certificates/client_1.pk8 Binary files differdeleted file mode 100644 index a65d7c5..0000000 --- a/src/pki/testdata/ssl/certificates/client_1.pk8 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client_1_ca.pem b/src/pki/testdata/ssl/certificates/client_1_ca.pem deleted file mode 100644 index bb2748f..0000000 --- a/src/pki/testdata/ssl/certificates/client_1_ca.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4097 (0x1001) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C Root CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=B CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:95:90:e0:38:21:62:04:9f:f1:97:f7:39:cc:d9: - 47:2b:99:0e:af:49:ea:ae:5b:cc:78:3b:b5:c6:63: - 5c:2d:44:7c:81:ed:a2:2d:f3:64:87:e7:e8:47:f9: - f4:a3:41:38:1d:fa:48:6c:3f:90:ad:39:4f:e2:32: - 57:f1:89:5f:d1:d2:af:e7:92:c3:0d:43:d3:70:c6: - 78:b2:2c:ac:e2:cd:34:49:7d:04:20:89:08:77:b4: - 37:c9:bc:a3:f7:84:48:31:2b:63:ed:01:ce:59:78: - c9:41:0f:2e:79:c4:34:41:8a:9f:7c:d0:61:ad:20: - db:75:ef:af:08:f5:78:a0:68:69:fe:88:27:35:b0: - 2f:5c:a6:eb:fb:1f:ab:e0:68:4c:bb:3a:be:9b:d1: - e6:ab:bf:3a:d5:df:d1:80:ee:89:63:dd:0e:03:f2: - 57:72:d0:0d:05:6e:71:b3:e1:a2:35:85:ae:c0:33: - e5:a8:43:a9:ed:4a:56:3f:f0:e8:1b:97:a7:65:69: - f9:3b:f1:42:31:09:db:c2:6b:8f:e3:7d:ec:02:58: - 76:29:32:64:c3:9f:78:d3:f4:96:f4:03:8c:14:84: - 50:43:4a:df:10:74:87:a1:31:29:a2:b6:3e:de:22: - 2b:6b:67:e8:ef:f0:9b:b5:64:a0:cf:c4:6c:c8:22: - d4:cb - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - 6F:C5:EC:40:44:0F:5C:78:04:8E:66:11:4E:A1:EE:1E:38:38:FD:72 - X509v3 Authority Key Identifier: - 33:7A:38:92:82:9E:B6:FD:44:FB:B5:BA:A7:C7:0B:4D:59:28:60:9A - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 00:fc:20:17:c8:1d:50:93:79:fc:1b:63:80:ee:95:a3:26:0d: - b8:29:f4:35:89:db:0d:15:ef:b8:b7:1b:e5:1d:0e:29:dd:9c: - c3:d9:37:37:2c:f8:9e:89:f5:3b:ff:70:0c:c1:54:cc:5f:50: - e4:27:92:9b:3c:73:8c:04:83:b9:2f:18:3e:cf:85:c3:5b:8c: - a9:76:56:4a:3d:e9:19:4a:ac:67:68:45:fd:b0:fe:f2:21:90: - e5:11:e5:bd:7a:a9:8d:3f:76:51:d7:dc:71:68:1e:fd:4e:97: - 56:7a:02:34:b8:ab:27:61:b8:a9:8a:20:ce:d7:ab:7e:ca:87: - 7d:fd:cc:ee:21:f0:f8:68:ce:1e:bb:e2:01:c8:a3:b7:8a:f4: - f1:af:97:63:e4:55:c9:23:bf:b6:54:95:a1:77:c6:27:af:6e: - fc:c3:dc:ff:12:8b:05:67:ef:ad:82:7f:4c:36:32:73:09:dd: - a5:f3:28:93:e8:16:00:2a:0f:2a:2a:64:d7:8c:fe:d2:4e:3a: - 6d:7e:f5:ca:3c:48:86:ef:18:20:a3:97:a6:03:32:76:34:4d: - cd:20:3f:6b:0a:d7:1a:3a:be:b6:90:08:3e:97:7b:71:b5:5b: - b5:98:df:f4:1e:59:f8:05:f7:e8:0c:7e:af:3d:a4:db:d0:92: - 4a:4a:65:c8 ------BEGIN CERTIFICATE----- -MIIDAjCCAeqgAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJQyBS -b290IENBMB4XDTIyMTAxOTE2NTg1NVoXDTMyMTAxNjE2NTg1NVowDzENMAsGA1UE -AwwEQiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJWQ4DghYgSf -8Zf3OczZRyuZDq9J6q5bzHg7tcZjXC1EfIHtoi3zZIfn6Ef59KNBOB36SGw/kK05 -T+IyV/GJX9HSr+eSww1D03DGeLIsrOLNNEl9BCCJCHe0N8m8o/eESDErY+0Bzll4 -yUEPLnnENEGKn3zQYa0g23Xvrwj1eKBoaf6IJzWwL1ym6/sfq+BoTLs6vpvR5qu/ -OtXf0YDuiWPdDgPyV3LQDQVucbPhojWFrsAz5ahDqe1KVj/w6BuXp2Vp+TvxQjEJ -28Jrj+N97AJYdikyZMOfeNP0lvQDjBSEUENK3xB0h6ExKaK2Pt4iK2tn6O/wm7Vk -oM/EbMgi1MsCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFG/F7EBED1x4BI5mEU6h7h44OP1yMB8GA1UdIwQYMBaAFDN6 -OJKCnrb9RPu1uqfHC01ZKGCaMA0GCSqGSIb3DQEBCwUAA4IBAQAA/CAXyB1Qk3n8 -G2OA7pWjJg24KfQ1idsNFe+4txvlHQ4p3ZzD2Tc3LPieifU7/3AMwVTMX1DkJ5Kb -PHOMBIO5Lxg+z4XDW4ypdlZKPekZSqxnaEX9sP7yIZDlEeW9eqmNP3ZR19xxaB79 -TpdWegI0uKsnYbipiiDO16t+yod9/czuIfD4aM4eu+IByKO3ivTxr5dj5FXJI7+2 -VJWhd8Ynr278w9z/EosFZ++tgn9MNjJzCd2l8yiT6BYAKg8qKmTXjP7STjptfvXK -PEiG7xggo5emAzJ2NE3NID9rCtcaOr62kAg+l3txtVu1mN/0Hln4BffoDH6vPaTb -0JJKSmXI ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_2.key b/src/pki/testdata/ssl/certificates/client_2.key deleted file mode 100644 index 9ab337c..0000000 --- a/src/pki/testdata/ssl/certificates/client_2.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCn6fF3nDenhKvP -6hqMzFxkp8LTIiQ61/u/hSAoEdZ5agEwSGQ75tg5SirIBsmCxe8D1Kxx0FjPgqpk -u8q19nkDhqQ5WvroYvjvZkcCge/0Xn5ZbRXhcGTFyUmYR7vgjwTZ0nHJMGilJoK/ -bLxrb0+uQEHwXCMFAtorL4M0nQfyrpwGqD3+Oaffnxy/9Zr0OiNlmEewVzshVpfp -JGQoMiIVfewrJ6Jdpv29DTh7OWY+XvG65IoRlRNZiDjteoP0ISmyHncuno6QEIL+ -3/hf+1f3VC4EzihOIunWC0eeZjbR1pg2lSLOx1AuP9Jm7glux6oqe9QQvLqmkGrL -m/X+fRGLAgMBAAECggEACh0txbobohP8M1hTBBMVJ5zxP71pOEAlMkqG/tLgO8z2 -SF27593GPWEpxYWfIqjgdjcbsflOOCWTNOEY2y/+5wb3olrIDTJU8zqSYWTJOsts -Sd+ntz4JW959d9YuS17h+GrUHr2zN+tjabtXeBMq1gCZ2Cv8kgMzd/FzMjqZLXVc -6IPAYXw2YIz6gaECpGSG3FHRXHf2h4KbyP9kgJRtlPwq4L8do0UynsXSpVib/vAK -VYd4FkD9DtzhXSGtGgajkcWhJ3HBkriyvdDiKPcHztz3rgEH7wv+yu8yTMxZE51i -kkdNbspS1tgLqdNTUO7fCztG07Ii1irhwhF4vAVoOQKBgQDkxeSXTpWZXRTrxtPm -h8N4sNIxT+rdFEJNRN6Uj/u/yOGL2sQe/qUnFF0QX9sXP37h0lPj2rMxnj5jB4+Y -lr0ei+GpcIAUytuny4ZlBZ3FD70KPndLshBiK5nng58oMnSmduiDR/ABwDlW0gtK -5/Qa57vaz60S5E9VwugeJuQmswKBgQC75dUioj43gt+YumMW8FwgUt6Ol5czo+G4 -jrsHh89Cl7mJJLY9A9ZMTQZRFPbIr49WVRLlM+0+L8Pe6WJ1GHiHxERUyllsm2Rt -TzIEl8y2B0jk3vgV9ykTfU6h5X4j3R+W6f908icx0c5rHiTZz+8XJlMFF10/ZMHR -CnBH8BoVyQKBgF+y5J/i0LO5+2Fx5/x8eGmJVjQooS/gJKgcEhwFayNcDfWqCvaI -QV/qpc+OuaCtAA/JIyyitOkhsClO5WPIUs5vZ3OwyvNntKEpg0vJIKlpnwOlA9RX -ZYEbiiMNrUtsZ92myjb4pc6lsZa/ANhR1YxXuf6bd2P6u7E9ekn6rN//AoGACsb4 -/Z6OsQJprsnqCxPIRPZb25PoUUbyGHLfWWQ5yBkJxEr9xOwma4Pze80XBpXDQ/Fn -PwxGbE2zD2MViZ/YsfjY7oAYtvkGvppPRSIr1LkAPlhnpGLj0UFbtD+Eh6wUNsS/ -KUcGZn4hN9WnyXJ6xTomguE/MPang0T1AbtM07kCgYBednwjjC5zSCjXDmYgB+ZW -rkI/wguNXjvrjLiA+eTsQgzk5gYiU8iMRahqmXjOF29O9pkKFUbNz6nDQTDkRUdK -q4utJx4nubsFKQn0VZbz9z2jiEgpxRVc2vIrfYNuG+a8WAbGsFO8mT+35kyLWiyN -hR3+Y4J+ghZQsZmtdctL9g== ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/client_2.pem b/src/pki/testdata/ssl/certificates/client_2.pem deleted file mode 100644 index fdae132..0000000 --- a/src/pki/testdata/ssl/certificates/client_2.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4098 (0x1002) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=E CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=Client Cert D - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a7:e9:f1:77:9c:37:a7:84:ab:cf:ea:1a:8c:cc: - 5c:64:a7:c2:d3:22:24:3a:d7:fb:bf:85:20:28:11: - d6:79:6a:01:30:48:64:3b:e6:d8:39:4a:2a:c8:06: - c9:82:c5:ef:03:d4:ac:71:d0:58:cf:82:aa:64:bb: - ca:b5:f6:79:03:86:a4:39:5a:fa:e8:62:f8:ef:66: - 47:02:81:ef:f4:5e:7e:59:6d:15:e1:70:64:c5:c9: - 49:98:47:bb:e0:8f:04:d9:d2:71:c9:30:68:a5:26: - 82:bf:6c:bc:6b:6f:4f:ae:40:41:f0:5c:23:05:02: - da:2b:2f:83:34:9d:07:f2:ae:9c:06:a8:3d:fe:39: - a7:df:9f:1c:bf:f5:9a:f4:3a:23:65:98:47:b0:57: - 3b:21:56:97:e9:24:64:28:32:22:15:7d:ec:2b:27: - a2:5d:a6:fd:bd:0d:38:7b:39:66:3e:5e:f1:ba:e4: - 8a:11:95:13:59:88:38:ed:7a:83:f4:21:29:b2:1e: - 77:2e:9e:8e:90:10:82:fe:df:f8:5f:fb:57:f7:54: - 2e:04:ce:28:4e:22:e9:d6:0b:47:9e:66:36:d1:d6: - 98:36:95:22:ce:c7:50:2e:3f:d2:66:ee:09:6e:c7: - aa:2a:7b:d4:10:bc:ba:a6:90:6a:cb:9b:f5:fe:7d: - 11:8b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Key Identifier: - D7:3C:2C:3F:BC:E3:23:9B:41:9E:BA:E7:65:C6:54:51:9F:FA:D6:F2 - X509v3 Authority Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 07:c9:48:cf:dd:91:07:75:be:03:de:3d:66:44:18:89:0c:ec: - 38:d7:9c:6b:6f:ce:f5:24:9f:33:cf:b9:88:2e:0b:94:ee:c5: - 9c:23:1d:c0:b3:41:34:6b:89:90:c0:2c:ef:e6:ac:a1:53:2a: - a0:01:c8:4e:26:d6:18:8b:d2:f2:f5:cc:06:fe:05:65:8b:1e: - 62:56:eb:39:dc:ac:95:70:d7:b7:52:c0:4c:57:a5:5b:01:a6: - 5f:75:76:8b:15:3e:f0:56:83:b7:62:d1:40:11:52:68:fb:fc: - 46:ec:a0:06:0e:a0:ba:e6:3f:7e:b6:01:bd:df:a8:37:1a:2a: - 08:00:b2:7b:1a:ca:2a:7f:47:d9:c9:7d:ac:fb:fb:84:fd:c0: - f1:d7:53:26:01:c3:04:38:ca:30:c6:01:e5:6a:24:e0:72:2b: - be:98:3b:af:ca:bb:b4:af:d0:ad:29:27:5d:63:99:0d:d5:0b: - 8a:43:8c:f4:32:5d:a2:24:44:de:af:b9:fb:fe:b7:92:17:a5: - a5:51:bb:30:b4:0b:1a:43:df:2b:80:d6:61:47:b0:31:36:38: - d9:39:e4:f0:2c:cf:01:e2:6a:9e:f5:77:72:ca:42:ef:64:11: - 5d:39:af:7e:25:52:a5:3f:dd:96:9a:79:f0:cf:1a:b4:34:80: - a1:e8:eb:31 ------BEGIN CERTIFICATE----- -MIIDEjCCAfqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwERSBD -QTAeFw0yMjEwMTkxNjU4NTVaFw0zMjEwMTYxNjU4NTVaMBgxFjAUBgNVBAMMDUNs -aWVudCBDZXJ0IEQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCn6fF3 -nDenhKvP6hqMzFxkp8LTIiQ61/u/hSAoEdZ5agEwSGQ75tg5SirIBsmCxe8D1Kxx -0FjPgqpku8q19nkDhqQ5WvroYvjvZkcCge/0Xn5ZbRXhcGTFyUmYR7vgjwTZ0nHJ -MGilJoK/bLxrb0+uQEHwXCMFAtorL4M0nQfyrpwGqD3+Oaffnxy/9Zr0OiNlmEew -VzshVpfpJGQoMiIVfewrJ6Jdpv29DTh7OWY+XvG65IoRlRNZiDjteoP0ISmyHncu -no6QEIL+3/hf+1f3VC4EzihOIunWC0eeZjbR1pg2lSLOx1AuP9Jm7glux6oqe9QQ -vLqmkGrLm/X+fRGLAgMBAAGjbzBtMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYI -KwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBTXPCw/vOMjm0GeuudlxlRRn/rW -8jAfBgNVHSMEGDAWgBT3lQK4R6uv75hNqPnIJNSlT0ZHyzANBgkqhkiG9w0BAQsF -AAOCAQEAB8lIz92RB3W+A949ZkQYiQzsONeca2/O9SSfM8+5iC4LlO7FnCMdwLNB -NGuJkMAs7+asoVMqoAHITibWGIvS8vXMBv4FZYseYlbrOdyslXDXt1LATFelWwGm -X3V2ixU+8FaDt2LRQBFSaPv8RuygBg6guuY/frYBvd+oNxoqCACyexrKKn9H2cl9 -rPv7hP3A8ddTJgHDBDjKMMYB5Wok4HIrvpg7r8q7tK/QrSknXWOZDdULikOM9DJd -oiRE3q+5+/63khelpVG7MLQLGkPfK4DWYUewMTY42Tnk8CzPAeJqnvV3cspC72QR -XTmvfiVSpT/dlpp58M8atDSAoejrMQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_2.pk8 b/src/pki/testdata/ssl/certificates/client_2.pk8 Binary files differdeleted file mode 100644 index c2a578f..0000000 --- a/src/pki/testdata/ssl/certificates/client_2.pk8 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client_2_ca.pem b/src/pki/testdata/ssl/certificates/client_2_ca.pem deleted file mode 100644 index 9709d46..0000000 --- a/src/pki/testdata/ssl/certificates/client_2_ca.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4098 (0x1002) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C Root CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=E CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a8:49:c7:44:8c:f4:90:52:36:4f:46:d7:68:0a: - 3d:dc:3a:13:3c:61:45:fb:cf:5e:8e:06:c1:35:5d: - 75:f1:33:d7:f0:5b:0e:34:99:19:9d:df:b5:81:40: - aa:1d:eb:f7:45:6e:7f:e2:b5:6e:70:42:5f:a5:bd: - 47:dd:d8:f9:4e:33:03:81:ea:40:c4:0f:ed:53:35: - ab:78:61:e5:aa:80:46:b6:1f:b9:a1:aa:80:c6:cd: - 4c:3c:a6:63:fd:ed:bf:fd:f2:df:1a:b9:de:e9:40: - 1b:cb:00:39:e9:dc:cd:78:70:3d:1b:20:32:49:6b: - 0b:eb:c5:31:27:50:4f:5f:fd:a7:7b:77:1e:d0:a1: - 20:01:56:5c:a6:2c:1d:4b:48:8d:8d:03:94:73:e6: - f6:94:39:59:3c:fc:07:ae:cb:dc:02:7f:2d:04:42: - 5c:d6:ff:86:76:a3:bc:7f:1e:0e:a0:4c:12:ce:58: - f7:42:2d:5b:9d:6b:ef:47:e2:ce:71:89:08:15:fd: - 2c:47:a5:a0:7e:73:ed:0c:b0:fc:b8:7c:0e:cf:fd: - e4:38:5f:ce:8e:80:f2:99:db:fc:fc:ad:9d:b4:be: - 28:4f:e5:5d:5c:93:36:75:4c:64:25:9f:53:64:a5: - 37:66:49:5b:bf:82:f4:01:77:d8:ef:cc:ce:bb:13: - 4c:01 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - X509v3 Authority Key Identifier: - 33:7A:38:92:82:9E:B6:FD:44:FB:B5:BA:A7:C7:0B:4D:59:28:60:9A - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 79:d6:b7:44:92:09:42:bc:96:d8:da:92:c1:cb:9b:19:eb:38: - 98:66:ec:3f:b6:14:a2:31:37:9b:0d:3f:83:cb:fa:80:75:19: - fa:1e:78:7b:05:55:43:a1:17:2d:9a:ad:f9:f2:1f:56:01:c1: - c8:78:02:1c:60:7b:40:95:a9:b3:82:52:65:d8:74:f4:46:b4: - 03:a0:98:db:b4:75:4d:f4:dd:73:84:33:9b:7d:91:78:7a:5b: - 50:08:12:d5:f1:d3:c0:90:fd:2b:14:61:76:96:a3:03:f2:ac: - 7a:b3:f6:9e:ab:a2:07:d1:ae:4d:be:e7:d1:1e:d6:a3:32:be: - 70:70:54:fc:d1:c9:3e:bd:7c:0e:1a:03:17:12:c6:78:3b:df: - 91:61:a9:0f:0a:65:bc:b2:c0:41:da:c3:32:8a:0e:ef:75:89: - 1b:11:27:0a:bb:47:91:c2:e4:71:ea:91:d4:4d:66:c1:a1:3b: - 06:8d:54:b6:da:6f:54:e6:d7:4f:f2:18:b8:d5:59:cb:47:0d: - 9f:d8:1c:6a:20:9c:e2:93:07:a3:dd:94:13:2c:ab:1d:1a:71: - eb:5b:62:12:20:e5:e1:cd:d1:e0:63:fd:94:34:b2:a5:b8:84: - ee:af:2d:11:3d:f2:91:74:f2:ef:bd:55:c6:cf:72:ff:b1:74: - e5:6e:6c:3e ------BEGIN CERTIFICATE----- -MIIDAjCCAeqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJQyBS -b290IENBMB4XDTIyMTAxOTE2NTg1NVoXDTMyMTAxNjE2NTg1NVowDzENMAsGA1UE -AwwERSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhJx0SM9JBS -Nk9G12gKPdw6EzxhRfvPXo4GwTVddfEz1/BbDjSZGZ3ftYFAqh3r90Vuf+K1bnBC -X6W9R93Y+U4zA4HqQMQP7VM1q3hh5aqARrYfuaGqgMbNTDymY/3tv/3y3xq53ulA -G8sAOenczXhwPRsgMklrC+vFMSdQT1/9p3t3HtChIAFWXKYsHUtIjY0DlHPm9pQ5 -WTz8B67L3AJ/LQRCXNb/hnajvH8eDqBMEs5Y90ItW51r70fiznGJCBX9LEeloH5z -7Qyw/Lh8Ds/95Dhfzo6A8pnb/PytnbS+KE/lXVyTNnVMZCWfU2SlN2ZJW7+C9AF3 -2O/MzrsTTAECAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFPeVArhHq6/vmE2o+cgk1KVPRkfLMB8GA1UdIwQYMBaAFDN6 -OJKCnrb9RPu1uqfHC01ZKGCaMA0GCSqGSIb3DQEBCwUAA4IBAQB51rdEkglCvJbY -2pLBy5sZ6ziYZuw/thSiMTebDT+Dy/qAdRn6Hnh7BVVDoRctmq358h9WAcHIeAIc -YHtAlamzglJl2HT0RrQDoJjbtHVN9N1zhDObfZF4eltQCBLV8dPAkP0rFGF2lqMD -8qx6s/aeq6IH0a5NvufRHtajMr5wcFT80ck+vXwOGgMXEsZ4O9+RYakPCmW8ssBB -2sMyig7vdYkbEScKu0eRwuRx6pHUTWbBoTsGjVS22m9U5tdP8hi41VnLRw2f2Bxq -IJzikwej3ZQTLKsdGnHrW2ISIOXhzdHgY/2UNLKluITury0RPfKRdPLvvVXGz3L/ -sXTlbmw+ ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_3.key b/src/pki/testdata/ssl/certificates/client_3.key deleted file mode 100644 index 0d63299..0000000 --- a/src/pki/testdata/ssl/certificates/client_3.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCfzCuI/9Gc9CqR -sv/uuBw1erHiCSrkvF80sO9WW9Y11byU6Iek160lKYXjfTI17mv4tMRsvwehSy+k -ira0sXi0V1l7hUvyHFSVwH0U1e7jmS3Fzat0i+3gU3qdG5WX15dwtkp4RuRc7QAn -selsyir6a4Kg3JivNCgH/VDlnnQwOB3QkBRsCpDNffMeHk7oj1JN/uJGZ536cpPI -u8DrubVYe0dhHeKClG2+PYATq4BE7Ix7A3KNGhv7en9CzLOA40OD5XCDb2jWCkJL -D0ME+1/TXDI7IuVXtHRl/ULwiWYcqZwQ1nF/qHWVCQVdQtP0RdQdJMgfm/vEiH56 -CP9SGHDnAgMBAAECggEAEcSK5q3DKdeAUDj9+hYglNWyp7ZrPYmwcFRoGEsX016T -nF8KjgqpJuOqDnRiO9rpyHqZCJppB8crYflGfWrqR+saeQCGREJgKVKA1es/p7Dl -hQPsV4YjifjePk/N31dKcG7kcuE3DRoRFVjT4pPMGZIQsUA1/e0nslO5Rf7LXn0B -4IeVYiAeY46+RJ+oDA0OBCaAuPxB/VL7tLKSbGNxuGEiszHy5uSdy6mGl4rRCXoI -y8G8oo7L3x3lwNCEyWJoKSAzrOgHK9BpJTNP1X2dI4o3tk85oOo3XJSlduWnHQyT -R5h/AmSNhmLsxWtFszDyGNrvuh5KC584XN9JXSp4GQKBgQDMclgNL9T10okUmyus -FdSJVk5PsJfRCUrofXiam41xjCjkHdH8cTogt0ey+Tc/cym8a7e2rk51qwnVET+n -/OJW4YFDUFhSMAcqLOU0qcESaIcfS61+9YpgoVGPFpKUaEXzYlprTeW+nDyBOJcD -/jeejm5W9HnOrDONI+717ffZmwKBgQDIF5bZnDR2j45l5MpaLrL7y4MDF8MefvHh -5hw4Xzax57GpDoHATrVfHCIFsnOrtn8tBhugLTpeH3m7su3YVUXDFzl21JkbFJ6M -8TcxoocuoxmJGQVVhABC9NXJuA79LBd7tTPPAeRxhRi1vHiNTR9pzemJjCo3JUks -omIwBPaQpQKBgFbFRPe70E/Q3ls/jGaKEV2EotIRqi2PGxrXfeNol7yUdxpySZgx -2jDeePDN8xPb5d/Re/RtwGESiabDnlfG7a1gIkOWixW+ypus2E7kqUwNzyOKNAWJ -YwSmEv5+3xFbvCyTFrsqIZMnrkpN4VJRh/ukidIgCr6buXlywc3hBOt3AoGBALY4 -5WRgYVbn/eLFrZLbnJy7BiE27rdDHL2BdonQDFuQibdQQtID3CE12bYegkEK/l7e -hSImjlVRjOdnWDv/zHyTFf4mNxj2ej4ZHw7Q2ROb7ZFxe+4ZPLO9jUUbnmrqUKiU -qQ4Ixyaq84nujksAxW7x25EsWPXHuxAvAgSBQJsRAoGBAJ1s8TSniokwMUBydO2F -Kupa3h85153Bu1X1nyehLQZw54jd8DkwDZnQSUx8YhcdMmiUp8He7G9egeE5w8qb -PeDQcp6JXH3Z9UuonIwxz086RUXf1C1xu2xLoH07SWjzBZCuJcbGI4+jF6RQCvEl -OwlLBF0aS7GzeQykN7zOf4E5 ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/client_3.pem b/src/pki/testdata/ssl/certificates/client_3.pem deleted file mode 100644 index 63d9cc0..0000000 --- a/src/pki/testdata/ssl/certificates/client_3.pem +++ /dev/null @@ -1,77 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4099 (0x1003) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=E CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=Client Cert F - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:9f:cc:2b:88:ff:d1:9c:f4:2a:91:b2:ff:ee:b8: - 1c:35:7a:b1:e2:09:2a:e4:bc:5f:34:b0:ef:56:5b: - d6:35:d5:bc:94:e8:87:a4:d7:ad:25:29:85:e3:7d: - 32:35:ee:6b:f8:b4:c4:6c:bf:07:a1:4b:2f:a4:8a: - b6:b4:b1:78:b4:57:59:7b:85:4b:f2:1c:54:95:c0: - 7d:14:d5:ee:e3:99:2d:c5:cd:ab:74:8b:ed:e0:53: - 7a:9d:1b:95:97:d7:97:70:b6:4a:78:46:e4:5c:ed: - 00:27:b1:e9:6c:ca:2a:fa:6b:82:a0:dc:98:af:34: - 28:07:fd:50:e5:9e:74:30:38:1d:d0:90:14:6c:0a: - 90:cd:7d:f3:1e:1e:4e:e8:8f:52:4d:fe:e2:46:67: - 9d:fa:72:93:c8:bb:c0:eb:b9:b5:58:7b:47:61:1d: - e2:82:94:6d:be:3d:80:13:ab:80:44:ec:8c:7b:03: - 72:8d:1a:1b:fb:7a:7f:42:cc:b3:80:e3:43:83:e5: - 70:83:6f:68:d6:0a:42:4b:0f:43:04:fb:5f:d3:5c: - 32:3b:22:e5:57:b4:74:65:fd:42:f0:89:66:1c:a9: - 9c:10:d6:71:7f:a8:75:95:09:05:5d:42:d3:f4:45: - d4:1d:24:c8:1f:9b:fb:c4:88:7e:7a:08:ff:52:18: - 70:e7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Alternative Name: - email:santest@example.com, othername: UPN::santest@ad.corp.example.com - X509v3 Subject Key Identifier: - 07:70:4F:5A:12:6A:60:B9:06:FE:53:36:97:23:3B:7F:AA:29:C7:59 - X509v3 Authority Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 90:82:56:b7:4b:e1:92:3a:b3:50:00:a9:ac:c2:92:45:b5:4a: - c1:2a:c7:b8:03:a2:c1:72:2f:eb:7e:48:4d:52:19:66:e0:2c: - fa:24:88:7b:b2:6b:58:3e:f7:79:14:04:b6:c6:46:9e:2c:da: - 93:ac:9e:89:4f:da:91:a5:b9:fc:9b:23:4b:cd:63:9e:bc:7f: - 64:cc:c3:66:09:39:2d:6e:26:84:a1:50:4e:e4:08:68:76:92: - 89:ff:07:6a:5e:6d:44:58:8c:d8:37:60:73:ae:b3:27:b4:9f: - e0:fe:48:4a:a7:78:c2:b0:5b:de:c6:bb:ec:b0:9e:43:00:e7: - dc:d3:8a:0e:ea:b8:de:b8:7c:f4:3a:2b:fd:9a:a0:1e:05:ac: - f2:ae:8d:42:15:c3:24:d2:7e:e4:bd:85:65:72:1b:2e:7f:3d: - 4f:cd:1c:43:2f:dd:94:e5:14:29:fb:af:75:7f:5b:7b:46:4e: - 05:df:b0:8f:be:5a:1b:a2:77:40:ba:ad:ad:87:1b:73:25:36: - 0f:b7:5a:c5:82:d6:20:69:fe:b9:bf:4c:4e:c9:d1:85:94:c3: - 43:e1:f3:1e:51:b8:6b:76:62:ab:fd:02:cf:c6:9e:2a:42:3c: - 58:75:b0:60:7f:e6:6b:26:d4:70:06:55:4e:af:33:6e:99:40: - 67:62:50:69 ------BEGIN CERTIFICATE----- -MIIDNDCCAhygAwIBAgICEAMwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwERSBD -QTAeFw0yMjEwMTkxNjU4NTVaFw0zMjEwMTYxNjU4NTVaMBgxFjAUBgNVBAMMDUNs -aWVudCBDZXJ0IEYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfzCuI -/9Gc9CqRsv/uuBw1erHiCSrkvF80sO9WW9Y11byU6Iek160lKYXjfTI17mv4tMRs -vwehSy+kira0sXi0V1l7hUvyHFSVwH0U1e7jmS3Fzat0i+3gU3qdG5WX15dwtkp4 -RuRc7QAnselsyir6a4Kg3JivNCgH/VDlnnQwOB3QkBRsCpDNffMeHk7oj1JN/uJG -Z536cpPIu8DrubVYe0dhHeKClG2+PYATq4BE7Ix7A3KNGhv7en9CzLOA40OD5XCD -b2jWCkJLD0ME+1/TXDI7IuVXtHRl/ULwiWYcqZwQ1nF/qHWVCQVdQtP0RdQdJMgf -m/vEiH56CP9SGHDnAgMBAAGjgZAwgY0wSwYDVR0RBEQwQoETc2FudGVzdEBleGFt -cGxlLmNvbaArBgorBgEEAYI3FAIDoB0MG3NhbnRlc3RAYWQuY29ycC5leGFtcGxl -LmNvbTAdBgNVHQ4EFgQUB3BPWhJqYLkG/lM2lyM7f6opx1kwHwYDVR0jBBgwFoAU -95UCuEerr++YTaj5yCTUpU9GR8swDQYJKoZIhvcNAQELBQADggEBAJCCVrdL4ZI6 -s1AAqazCkkW1SsEqx7gDosFyL+t+SE1SGWbgLPokiHuya1g+93kUBLbGRp4s2pOs -nolP2pGlufybI0vNY568f2TMw2YJOS1uJoShUE7kCGh2kon/B2pebURYjNg3YHOu -sye0n+D+SEqneMKwW97Gu+ywnkMA59zTig7quN64fPQ6K/2aoB4FrPKujUIVwyTS -fuS9hWVyGy5/PU/NHEMv3ZTlFCn7r3V/W3tGTgXfsI++Whuid0C6ra2HG3MlNg+3 -WsWC1iBp/rm/TE7J0YWUw0Ph8x5RuGt2Yqv9As/GnipCPFh1sGB/5msm1HAGVU6v -M26ZQGdiUGk= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_3.pk8 b/src/pki/testdata/ssl/certificates/client_3.pk8 Binary files differdeleted file mode 100644 index cf052ef..0000000 --- a/src/pki/testdata/ssl/certificates/client_3.pk8 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client_3_ca.pem b/src/pki/testdata/ssl/certificates/client_3_ca.pem deleted file mode 100644 index 9709d46..0000000 --- a/src/pki/testdata/ssl/certificates/client_3_ca.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4098 (0x1002) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C Root CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=E CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a8:49:c7:44:8c:f4:90:52:36:4f:46:d7:68:0a: - 3d:dc:3a:13:3c:61:45:fb:cf:5e:8e:06:c1:35:5d: - 75:f1:33:d7:f0:5b:0e:34:99:19:9d:df:b5:81:40: - aa:1d:eb:f7:45:6e:7f:e2:b5:6e:70:42:5f:a5:bd: - 47:dd:d8:f9:4e:33:03:81:ea:40:c4:0f:ed:53:35: - ab:78:61:e5:aa:80:46:b6:1f:b9:a1:aa:80:c6:cd: - 4c:3c:a6:63:fd:ed:bf:fd:f2:df:1a:b9:de:e9:40: - 1b:cb:00:39:e9:dc:cd:78:70:3d:1b:20:32:49:6b: - 0b:eb:c5:31:27:50:4f:5f:fd:a7:7b:77:1e:d0:a1: - 20:01:56:5c:a6:2c:1d:4b:48:8d:8d:03:94:73:e6: - f6:94:39:59:3c:fc:07:ae:cb:dc:02:7f:2d:04:42: - 5c:d6:ff:86:76:a3:bc:7f:1e:0e:a0:4c:12:ce:58: - f7:42:2d:5b:9d:6b:ef:47:e2:ce:71:89:08:15:fd: - 2c:47:a5:a0:7e:73:ed:0c:b0:fc:b8:7c:0e:cf:fd: - e4:38:5f:ce:8e:80:f2:99:db:fc:fc:ad:9d:b4:be: - 28:4f:e5:5d:5c:93:36:75:4c:64:25:9f:53:64:a5: - 37:66:49:5b:bf:82:f4:01:77:d8:ef:cc:ce:bb:13: - 4c:01 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - X509v3 Authority Key Identifier: - 33:7A:38:92:82:9E:B6:FD:44:FB:B5:BA:A7:C7:0B:4D:59:28:60:9A - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 79:d6:b7:44:92:09:42:bc:96:d8:da:92:c1:cb:9b:19:eb:38: - 98:66:ec:3f:b6:14:a2:31:37:9b:0d:3f:83:cb:fa:80:75:19: - fa:1e:78:7b:05:55:43:a1:17:2d:9a:ad:f9:f2:1f:56:01:c1: - c8:78:02:1c:60:7b:40:95:a9:b3:82:52:65:d8:74:f4:46:b4: - 03:a0:98:db:b4:75:4d:f4:dd:73:84:33:9b:7d:91:78:7a:5b: - 50:08:12:d5:f1:d3:c0:90:fd:2b:14:61:76:96:a3:03:f2:ac: - 7a:b3:f6:9e:ab:a2:07:d1:ae:4d:be:e7:d1:1e:d6:a3:32:be: - 70:70:54:fc:d1:c9:3e:bd:7c:0e:1a:03:17:12:c6:78:3b:df: - 91:61:a9:0f:0a:65:bc:b2:c0:41:da:c3:32:8a:0e:ef:75:89: - 1b:11:27:0a:bb:47:91:c2:e4:71:ea:91:d4:4d:66:c1:a1:3b: - 06:8d:54:b6:da:6f:54:e6:d7:4f:f2:18:b8:d5:59:cb:47:0d: - 9f:d8:1c:6a:20:9c:e2:93:07:a3:dd:94:13:2c:ab:1d:1a:71: - eb:5b:62:12:20:e5:e1:cd:d1:e0:63:fd:94:34:b2:a5:b8:84: - ee:af:2d:11:3d:f2:91:74:f2:ef:bd:55:c6:cf:72:ff:b1:74: - e5:6e:6c:3e ------BEGIN CERTIFICATE----- -MIIDAjCCAeqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJQyBS -b290IENBMB4XDTIyMTAxOTE2NTg1NVoXDTMyMTAxNjE2NTg1NVowDzENMAsGA1UE -AwwERSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhJx0SM9JBS -Nk9G12gKPdw6EzxhRfvPXo4GwTVddfEz1/BbDjSZGZ3ftYFAqh3r90Vuf+K1bnBC -X6W9R93Y+U4zA4HqQMQP7VM1q3hh5aqARrYfuaGqgMbNTDymY/3tv/3y3xq53ulA -G8sAOenczXhwPRsgMklrC+vFMSdQT1/9p3t3HtChIAFWXKYsHUtIjY0DlHPm9pQ5 -WTz8B67L3AJ/LQRCXNb/hnajvH8eDqBMEs5Y90ItW51r70fiznGJCBX9LEeloH5z -7Qyw/Lh8Ds/95Dhfzo6A8pnb/PytnbS+KE/lXVyTNnVMZCWfU2SlN2ZJW7+C9AF3 -2O/MzrsTTAECAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFPeVArhHq6/vmE2o+cgk1KVPRkfLMB8GA1UdIwQYMBaAFDN6 -OJKCnrb9RPu1uqfHC01ZKGCaMA0GCSqGSIb3DQEBCwUAA4IBAQB51rdEkglCvJbY -2pLBy5sZ6ziYZuw/thSiMTebDT+Dy/qAdRn6Hnh7BVVDoRctmq358h9WAcHIeAIc -YHtAlamzglJl2HT0RrQDoJjbtHVN9N1zhDObfZF4eltQCBLV8dPAkP0rFGF2lqMD -8qx6s/aeq6IH0a5NvufRHtajMr5wcFT80ck+vXwOGgMXEsZ4O9+RYakPCmW8ssBB -2sMyig7vdYkbEScKu0eRwuRx6pHUTWbBoTsGjVS22m9U5tdP8hi41VnLRw2f2Bxq -IJzikwej3ZQTLKsdGnHrW2ISIOXhzdHgY/2UNLKluITury0RPfKRdPLvvVXGz3L/ -sXTlbmw+ ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_4.key b/src/pki/testdata/ssl/certificates/client_4.key deleted file mode 100644 index 54ae5fc..0000000 --- a/src/pki/testdata/ssl/certificates/client_4.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN EC PRIVATE KEY----- -MHcCAQEEIAK4v0jF1vvMR4iTvXwB4m/KSIllNDTEufAy/oXSanFHoAoGCCqGSM49 -AwEHoUQDQgAEhWRFJ+xiDW79ytVAhbV0/BaTIytPuMebZAU78Qlb0qU7LC4uzWAe -kl7i52305fpCCcx13l3AKDqmYZzU2NoxqA== ------END EC PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/client_4.pem b/src/pki/testdata/ssl/certificates/client_4.pem deleted file mode 100644 index 0b14171..0000000 --- a/src/pki/testdata/ssl/certificates/client_4.pem +++ /dev/null @@ -1,62 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4100 (0x1004) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=E CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=Client Cert G - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:85:64:45:27:ec:62:0d:6e:fd:ca:d5:40:85:b5: - 74:fc:16:93:23:2b:4f:b8:c7:9b:64:05:3b:f1:09: - 5b:d2:a5:3b:2c:2e:2e:cd:60:1e:92:5e:e2:e7:6d: - f4:e5:fa:42:09:cc:75:de:5d:c0:28:3a:a6:61:9c: - d4:d8:da:31:a8 - ASN1 OID: prime256v1 - NIST CURVE: P-256 - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Key Identifier: - F4:DC:DA:D1:28:7E:11:52:81:D1:FF:8D:A0:F8:85:87:78:5F:6B:DC - X509v3 Authority Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 84:c0:ba:64:eb:32:97:8f:1c:d4:88:0a:94:0a:d3:12:e2:3f: - b1:8d:70:85:ad:7f:28:11:00:4f:76:04:66:e0:3f:dd:56:44: - 98:f5:f0:b6:c8:22:ff:04:77:70:f9:18:f2:9b:1e:6f:fd:2a: - 5c:fc:40:3a:8a:b2:af:8d:df:33:6b:46:26:4d:5a:23:29:cd: - 07:ef:06:f7:b2:13:61:f0:20:26:14:7b:79:c5:cf:76:04:01: - d6:f8:22:b1:05:22:6d:78:1d:8d:1b:f3:52:9c:4d:2b:c9:bf: - 3d:9c:48:88:9a:99:1f:1f:ea:27:b3:8b:81:62:f0:59:66:a8: - 7e:3f:fb:a6:05:a4:d3:5d:e3:d4:2e:b0:ba:f2:d9:dd:80:1b: - 08:fd:2b:e3:c5:76:9d:6e:62:d0:0d:41:dd:44:5b:b7:cc:14: - 44:5f:4e:58:e1:28:aa:63:3d:69:05:82:55:b5:51:2c:6d:bd: - ca:a5:ce:a6:5d:d6:02:cc:ca:77:e9:3e:a4:f8:05:61:eb:ef: - 23:eb:ac:b9:93:1e:b5:49:e9:40:9c:b1:3c:b7:c0:ea:20:bd: - 0f:58:64:82:ea:42:35:21:39:e8:c9:d0:66:d2:1d:e1:22:fa: - 7e:2c:b3:48:a0:ee:3b:55:f6:78:7b:ec:3e:66:75:6c:ae:48: - dd:3e:cd:f6 ------BEGIN CERTIFICATE----- -MIICRzCCAS+gAwIBAgICEAQwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwERSBD -QTAeFw0yMjEwMTkxNjU4NTVaFw0zMjEwMTYxNjU4NTVaMBgxFjAUBgNVBAMMDUNs -aWVudCBDZXJ0IEcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASFZEUn7GINbv3K -1UCFtXT8FpMjK0+4x5tkBTvxCVvSpTssLi7NYB6SXuLnbfTl+kIJzHXeXcAoOqZh -nNTY2jGoo28wbTAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr -BgEFBQcDAjAdBgNVHQ4EFgQU9Nza0Sh+EVKB0f+NoPiFh3hfa9wwHwYDVR0jBBgw -FoAU95UCuEerr++YTaj5yCTUpU9GR8swDQYJKoZIhvcNAQELBQADggEBAITAumTr -MpePHNSICpQK0xLiP7GNcIWtfygRAE92BGbgP91WRJj18LbIIv8Ed3D5GPKbHm/9 -Klz8QDqKsq+N3zNrRiZNWiMpzQfvBveyE2HwICYUe3nFz3YEAdb4IrEFIm14HY0b -81KcTSvJvz2cSIiamR8f6iezi4Fi8FlmqH4/+6YFpNNd49QusLry2d2AGwj9K+PF -dp1uYtANQd1EW7fMFERfTljhKKpjPWkFglW1USxtvcqlzqZd1gLMynfpPqT4BWHr -7yPrrLmTHrVJ6UCcsTy3wOogvQ9YZILqQjUhOejJ0GbSHeEi+n4ss0ig7jtV9nh7 -7D5mdWyuSN0+zfY= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_4.pk8 b/src/pki/testdata/ssl/certificates/client_4.pk8 Binary files differdeleted file mode 100644 index 5342e82..0000000 --- a/src/pki/testdata/ssl/certificates/client_4.pk8 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client_4_ca.pem b/src/pki/testdata/ssl/certificates/client_4_ca.pem deleted file mode 100644 index 9709d46..0000000 --- a/src/pki/testdata/ssl/certificates/client_4_ca.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4098 (0x1002) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C Root CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=E CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a8:49:c7:44:8c:f4:90:52:36:4f:46:d7:68:0a: - 3d:dc:3a:13:3c:61:45:fb:cf:5e:8e:06:c1:35:5d: - 75:f1:33:d7:f0:5b:0e:34:99:19:9d:df:b5:81:40: - aa:1d:eb:f7:45:6e:7f:e2:b5:6e:70:42:5f:a5:bd: - 47:dd:d8:f9:4e:33:03:81:ea:40:c4:0f:ed:53:35: - ab:78:61:e5:aa:80:46:b6:1f:b9:a1:aa:80:c6:cd: - 4c:3c:a6:63:fd:ed:bf:fd:f2:df:1a:b9:de:e9:40: - 1b:cb:00:39:e9:dc:cd:78:70:3d:1b:20:32:49:6b: - 0b:eb:c5:31:27:50:4f:5f:fd:a7:7b:77:1e:d0:a1: - 20:01:56:5c:a6:2c:1d:4b:48:8d:8d:03:94:73:e6: - f6:94:39:59:3c:fc:07:ae:cb:dc:02:7f:2d:04:42: - 5c:d6:ff:86:76:a3:bc:7f:1e:0e:a0:4c:12:ce:58: - f7:42:2d:5b:9d:6b:ef:47:e2:ce:71:89:08:15:fd: - 2c:47:a5:a0:7e:73:ed:0c:b0:fc:b8:7c:0e:cf:fd: - e4:38:5f:ce:8e:80:f2:99:db:fc:fc:ad:9d:b4:be: - 28:4f:e5:5d:5c:93:36:75:4c:64:25:9f:53:64:a5: - 37:66:49:5b:bf:82:f4:01:77:d8:ef:cc:ce:bb:13: - 4c:01 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - X509v3 Authority Key Identifier: - 33:7A:38:92:82:9E:B6:FD:44:FB:B5:BA:A7:C7:0B:4D:59:28:60:9A - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 79:d6:b7:44:92:09:42:bc:96:d8:da:92:c1:cb:9b:19:eb:38: - 98:66:ec:3f:b6:14:a2:31:37:9b:0d:3f:83:cb:fa:80:75:19: - fa:1e:78:7b:05:55:43:a1:17:2d:9a:ad:f9:f2:1f:56:01:c1: - c8:78:02:1c:60:7b:40:95:a9:b3:82:52:65:d8:74:f4:46:b4: - 03:a0:98:db:b4:75:4d:f4:dd:73:84:33:9b:7d:91:78:7a:5b: - 50:08:12:d5:f1:d3:c0:90:fd:2b:14:61:76:96:a3:03:f2:ac: - 7a:b3:f6:9e:ab:a2:07:d1:ae:4d:be:e7:d1:1e:d6:a3:32:be: - 70:70:54:fc:d1:c9:3e:bd:7c:0e:1a:03:17:12:c6:78:3b:df: - 91:61:a9:0f:0a:65:bc:b2:c0:41:da:c3:32:8a:0e:ef:75:89: - 1b:11:27:0a:bb:47:91:c2:e4:71:ea:91:d4:4d:66:c1:a1:3b: - 06:8d:54:b6:da:6f:54:e6:d7:4f:f2:18:b8:d5:59:cb:47:0d: - 9f:d8:1c:6a:20:9c:e2:93:07:a3:dd:94:13:2c:ab:1d:1a:71: - eb:5b:62:12:20:e5:e1:cd:d1:e0:63:fd:94:34:b2:a5:b8:84: - ee:af:2d:11:3d:f2:91:74:f2:ef:bd:55:c6:cf:72:ff:b1:74: - e5:6e:6c:3e ------BEGIN CERTIFICATE----- -MIIDAjCCAeqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJQyBS -b290IENBMB4XDTIyMTAxOTE2NTg1NVoXDTMyMTAxNjE2NTg1NVowDzENMAsGA1UE -AwwERSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhJx0SM9JBS -Nk9G12gKPdw6EzxhRfvPXo4GwTVddfEz1/BbDjSZGZ3ftYFAqh3r90Vuf+K1bnBC -X6W9R93Y+U4zA4HqQMQP7VM1q3hh5aqARrYfuaGqgMbNTDymY/3tv/3y3xq53ulA -G8sAOenczXhwPRsgMklrC+vFMSdQT1/9p3t3HtChIAFWXKYsHUtIjY0DlHPm9pQ5 -WTz8B67L3AJ/LQRCXNb/hnajvH8eDqBMEs5Y90ItW51r70fiznGJCBX9LEeloH5z -7Qyw/Lh8Ds/95Dhfzo6A8pnb/PytnbS+KE/lXVyTNnVMZCWfU2SlN2ZJW7+C9AF3 -2O/MzrsTTAECAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFPeVArhHq6/vmE2o+cgk1KVPRkfLMB8GA1UdIwQYMBaAFDN6 -OJKCnrb9RPu1uqfHC01ZKGCaMA0GCSqGSIb3DQEBCwUAA4IBAQB51rdEkglCvJbY -2pLBy5sZ6ziYZuw/thSiMTebDT+Dy/qAdRn6Hnh7BVVDoRctmq358h9WAcHIeAIc -YHtAlamzglJl2HT0RrQDoJjbtHVN9N1zhDObfZF4eltQCBLV8dPAkP0rFGF2lqMD -8qx6s/aeq6IH0a5NvufRHtajMr5wcFT80ck+vXwOGgMXEsZ4O9+RYakPCmW8ssBB -2sMyig7vdYkbEScKu0eRwuRx6pHUTWbBoTsGjVS22m9U5tdP8hi41VnLRw2f2Bxq -IJzikwej3ZQTLKsdGnHrW2ISIOXhzdHgY/2UNLKluITury0RPfKRdPLvvVXGz3L/ -sXTlbmw+ ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_5.key b/src/pki/testdata/ssl/certificates/client_5.key deleted file mode 100644 index 9ccea65..0000000 --- a/src/pki/testdata/ssl/certificates/client_5.key +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN EC PRIVATE KEY----- -MIGkAgEBBDBVFmKcwJaBTkzJWeFwUnFoOqLyFfsT+DKZ2XJRoD6GZC+1gGQ2xh43 -iyjP7j6robegBwYFK4EEACKhZANiAATLes9eGzHc4cqU0Q4XfaZCTEzPz/c/YAgY -xr14uQqfnx2Jbz8MoOnC73hBk+kYphb7lnS5p4mbOhrDQLqU8qRG1ADaBwVcUlre -QKOiBjp9CzKlRQ/e9pdVmVEx5IOQ/wY= ------END EC PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/client_5.pem b/src/pki/testdata/ssl/certificates/client_5.pem deleted file mode 100644 index 015af89..0000000 --- a/src/pki/testdata/ssl/certificates/client_5.pem +++ /dev/null @@ -1,64 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4101 (0x1005) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=E CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=Client Cert H - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (384 bit) - pub: - 04:cb:7a:cf:5e:1b:31:dc:e1:ca:94:d1:0e:17:7d: - a6:42:4c:4c:cf:cf:f7:3f:60:08:18:c6:bd:78:b9: - 0a:9f:9f:1d:89:6f:3f:0c:a0:e9:c2:ef:78:41:93: - e9:18:a6:16:fb:96:74:b9:a7:89:9b:3a:1a:c3:40: - ba:94:f2:a4:46:d4:00:da:07:05:5c:52:5a:de:40: - a3:a2:06:3a:7d:0b:32:a5:45:0f:de:f6:97:55:99: - 51:31:e4:83:90:ff:06 - ASN1 OID: secp384r1 - NIST CURVE: P-384 - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Key Identifier: - C0:0A:7F:F5:B4:49:4C:A5:97:C3:76:A2:A5:1D:F8:A5:C8:4D:65:94 - X509v3 Authority Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 93:d5:04:f0:17:b1:15:e9:40:5a:b0:1f:e1:11:0b:6b:a7:36: - 38:80:91:87:dd:eb:f0:dd:ed:7e:7c:77:09:12:e0:5b:09:ac: - 6a:66:a6:ce:44:38:21:41:b1:7a:56:df:b3:9c:75:88:dc:0d: - ad:5e:7d:b6:f4:84:4c:d0:ec:14:23:bc:09:81:6a:be:98:82: - e3:27:f3:ce:f5:0b:28:8f:01:46:b4:d4:d1:9a:ea:78:7f:9e: - 78:17:42:ca:59:bb:f1:43:8b:39:f0:7d:54:8d:a5:40:60:9f: - bc:90:cc:b2:72:76:4e:5a:55:b0:95:64:8d:dd:be:b4:35:16: - 68:af:95:3d:20:cf:07:42:dd:ec:a7:08:99:70:25:0f:4c:b8: - 1a:ef:34:72:0a:a3:ac:79:d7:02:94:2d:9b:e2:cd:ca:24:93: - 93:9a:92:e3:6f:51:89:35:74:7b:8b:bf:74:02:8c:66:57:eb: - 82:10:6e:9c:25:5e:d0:5b:55:4e:48:ff:27:a8:1b:5c:97:e7: - 99:03:d0:60:4a:e0:e6:f5:08:a4:c8:46:a6:3a:72:14:21:cb: - c1:40:e9:99:11:ef:e6:a2:6a:4e:e4:d7:99:d8:94:3f:13:f8: - 5e:b0:a9:29:e9:03:ea:41:38:5f:2a:9c:bd:1f:9b:f1:3d:66: - ee:9b:5a:3e ------BEGIN CERTIFICATE----- -MIICZDCCAUygAwIBAgICEAUwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwERSBD -QTAeFw0yMjEwMTkxNjU4NTVaFw0zMjEwMTYxNjU4NTVaMBgxFjAUBgNVBAMMDUNs -aWVudCBDZXJ0IEgwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATLes9eGzHc4cqU0Q4X -faZCTEzPz/c/YAgYxr14uQqfnx2Jbz8MoOnC73hBk+kYphb7lnS5p4mbOhrDQLqU -8qRG1ADaBwVcUlreQKOiBjp9CzKlRQ/e9pdVmVEx5IOQ/wajbzBtMAwGA1UdEwEB -/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBTA -Cn/1tElMpZfDdqKlHfilyE1llDAfBgNVHSMEGDAWgBT3lQK4R6uv75hNqPnIJNSl -T0ZHyzANBgkqhkiG9w0BAQsFAAOCAQEAk9UE8BexFelAWrAf4RELa6c2OICRh93r -8N3tfnx3CRLgWwmsamamzkQ4IUGxelbfs5x1iNwNrV59tvSETNDsFCO8CYFqvpiC -4yfzzvULKI8BRrTU0ZrqeH+eeBdCylm78UOLOfB9VI2lQGCfvJDMsnJ2TlpVsJVk -jd2+tDUWaK+VPSDPB0Ld7KcImXAlD0y4Gu80cgqjrHnXApQtm+LNyiSTk5qS429R -iTV0e4u/dAKMZlfrghBunCVe0FtVTkj/J6gbXJfnmQPQYErg5vUIpMhGpjpyFCHL -wUDpmRHv5qJqTuTXmdiUPxP4XrCpKekD6kE4XyqcvR+b8T1m7ptaPg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_5.pk8 b/src/pki/testdata/ssl/certificates/client_5.pk8 Binary files differdeleted file mode 100644 index 1a4f31a..0000000 --- a/src/pki/testdata/ssl/certificates/client_5.pk8 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client_5_ca.pem b/src/pki/testdata/ssl/certificates/client_5_ca.pem deleted file mode 100644 index 9709d46..0000000 --- a/src/pki/testdata/ssl/certificates/client_5_ca.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4098 (0x1002) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C Root CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=E CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a8:49:c7:44:8c:f4:90:52:36:4f:46:d7:68:0a: - 3d:dc:3a:13:3c:61:45:fb:cf:5e:8e:06:c1:35:5d: - 75:f1:33:d7:f0:5b:0e:34:99:19:9d:df:b5:81:40: - aa:1d:eb:f7:45:6e:7f:e2:b5:6e:70:42:5f:a5:bd: - 47:dd:d8:f9:4e:33:03:81:ea:40:c4:0f:ed:53:35: - ab:78:61:e5:aa:80:46:b6:1f:b9:a1:aa:80:c6:cd: - 4c:3c:a6:63:fd:ed:bf:fd:f2:df:1a:b9:de:e9:40: - 1b:cb:00:39:e9:dc:cd:78:70:3d:1b:20:32:49:6b: - 0b:eb:c5:31:27:50:4f:5f:fd:a7:7b:77:1e:d0:a1: - 20:01:56:5c:a6:2c:1d:4b:48:8d:8d:03:94:73:e6: - f6:94:39:59:3c:fc:07:ae:cb:dc:02:7f:2d:04:42: - 5c:d6:ff:86:76:a3:bc:7f:1e:0e:a0:4c:12:ce:58: - f7:42:2d:5b:9d:6b:ef:47:e2:ce:71:89:08:15:fd: - 2c:47:a5:a0:7e:73:ed:0c:b0:fc:b8:7c:0e:cf:fd: - e4:38:5f:ce:8e:80:f2:99:db:fc:fc:ad:9d:b4:be: - 28:4f:e5:5d:5c:93:36:75:4c:64:25:9f:53:64:a5: - 37:66:49:5b:bf:82:f4:01:77:d8:ef:cc:ce:bb:13: - 4c:01 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - X509v3 Authority Key Identifier: - 33:7A:38:92:82:9E:B6:FD:44:FB:B5:BA:A7:C7:0B:4D:59:28:60:9A - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 79:d6:b7:44:92:09:42:bc:96:d8:da:92:c1:cb:9b:19:eb:38: - 98:66:ec:3f:b6:14:a2:31:37:9b:0d:3f:83:cb:fa:80:75:19: - fa:1e:78:7b:05:55:43:a1:17:2d:9a:ad:f9:f2:1f:56:01:c1: - c8:78:02:1c:60:7b:40:95:a9:b3:82:52:65:d8:74:f4:46:b4: - 03:a0:98:db:b4:75:4d:f4:dd:73:84:33:9b:7d:91:78:7a:5b: - 50:08:12:d5:f1:d3:c0:90:fd:2b:14:61:76:96:a3:03:f2:ac: - 7a:b3:f6:9e:ab:a2:07:d1:ae:4d:be:e7:d1:1e:d6:a3:32:be: - 70:70:54:fc:d1:c9:3e:bd:7c:0e:1a:03:17:12:c6:78:3b:df: - 91:61:a9:0f:0a:65:bc:b2:c0:41:da:c3:32:8a:0e:ef:75:89: - 1b:11:27:0a:bb:47:91:c2:e4:71:ea:91:d4:4d:66:c1:a1:3b: - 06:8d:54:b6:da:6f:54:e6:d7:4f:f2:18:b8:d5:59:cb:47:0d: - 9f:d8:1c:6a:20:9c:e2:93:07:a3:dd:94:13:2c:ab:1d:1a:71: - eb:5b:62:12:20:e5:e1:cd:d1:e0:63:fd:94:34:b2:a5:b8:84: - ee:af:2d:11:3d:f2:91:74:f2:ef:bd:55:c6:cf:72:ff:b1:74: - e5:6e:6c:3e ------BEGIN CERTIFICATE----- -MIIDAjCCAeqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJQyBS -b290IENBMB4XDTIyMTAxOTE2NTg1NVoXDTMyMTAxNjE2NTg1NVowDzENMAsGA1UE -AwwERSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhJx0SM9JBS -Nk9G12gKPdw6EzxhRfvPXo4GwTVddfEz1/BbDjSZGZ3ftYFAqh3r90Vuf+K1bnBC -X6W9R93Y+U4zA4HqQMQP7VM1q3hh5aqARrYfuaGqgMbNTDymY/3tv/3y3xq53ulA -G8sAOenczXhwPRsgMklrC+vFMSdQT1/9p3t3HtChIAFWXKYsHUtIjY0DlHPm9pQ5 -WTz8B67L3AJ/LQRCXNb/hnajvH8eDqBMEs5Y90ItW51r70fiznGJCBX9LEeloH5z -7Qyw/Lh8Ds/95Dhfzo6A8pnb/PytnbS+KE/lXVyTNnVMZCWfU2SlN2ZJW7+C9AF3 -2O/MzrsTTAECAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFPeVArhHq6/vmE2o+cgk1KVPRkfLMB8GA1UdIwQYMBaAFDN6 -OJKCnrb9RPu1uqfHC01ZKGCaMA0GCSqGSIb3DQEBCwUAA4IBAQB51rdEkglCvJbY -2pLBy5sZ6ziYZuw/thSiMTebDT+Dy/qAdRn6Hnh7BVVDoRctmq358h9WAcHIeAIc -YHtAlamzglJl2HT0RrQDoJjbtHVN9N1zhDObfZF4eltQCBLV8dPAkP0rFGF2lqMD -8qx6s/aeq6IH0a5NvufRHtajMr5wcFT80ck+vXwOGgMXEsZ4O9+RYakPCmW8ssBB -2sMyig7vdYkbEScKu0eRwuRx6pHUTWbBoTsGjVS22m9U5tdP8hi41VnLRw2f2Bxq -IJzikwej3ZQTLKsdGnHrW2ISIOXhzdHgY/2UNLKluITury0RPfKRdPLvvVXGz3L/ -sXTlbmw+ ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_6.key b/src/pki/testdata/ssl/certificates/client_6.key deleted file mode 100644 index ae6c01a..0000000 --- a/src/pki/testdata/ssl/certificates/client_6.key +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN EC PRIVATE KEY----- -MIHcAgEBBEIBiAsgixDWk2fAV2gjcCk8H/CuY50RYV36uZfb9BXA2SjA/CHMjlHQ -xDjvZvp9s1vO2NzkvDTDpuGsSZzt/HkVEgugBwYFK4EEACOhgYkDgYYABAE/Y66g -7Qbz+GHRvHOzdYpFU4tOYla1MZmNTEQcpI+LyZELGc+DjFKBAmckzW9NKHiXATTd -fZNM5bj+GtJrx2EfdQEEbwMvUDX1u3bw1/EXyQQYWvFFCObq8CK3gEFDOzffLUDt -UFDwFKP8Sz0dh5KMCvgSh/w1X+H2xwpaBzQxydphIw== ------END EC PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/client_6.pem b/src/pki/testdata/ssl/certificates/client_6.pem deleted file mode 100644 index 68035da..0000000 --- a/src/pki/testdata/ssl/certificates/client_6.pem +++ /dev/null @@ -1,67 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4102 (0x1006) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=E CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=Client Cert I - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (521 bit) - pub: - 04:01:3f:63:ae:a0:ed:06:f3:f8:61:d1:bc:73:b3: - 75:8a:45:53:8b:4e:62:56:b5:31:99:8d:4c:44:1c: - a4:8f:8b:c9:91:0b:19:cf:83:8c:52:81:02:67:24: - cd:6f:4d:28:78:97:01:34:dd:7d:93:4c:e5:b8:fe: - 1a:d2:6b:c7:61:1f:75:01:04:6f:03:2f:50:35:f5: - bb:76:f0:d7:f1:17:c9:04:18:5a:f1:45:08:e6:ea: - f0:22:b7:80:41:43:3b:37:df:2d:40:ed:50:50:f0: - 14:a3:fc:4b:3d:1d:87:92:8c:0a:f8:12:87:fc:35: - 5f:e1:f6:c7:0a:5a:07:34:31:c9:da:61:23 - ASN1 OID: secp521r1 - NIST CURVE: P-521 - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Key Identifier: - C8:A5:B0:D4:13:AE:43:9C:31:DF:7E:40:BA:AF:2B:8E:EE:54:52:15 - X509v3 Authority Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 86:01:e1:dc:4e:d1:94:e3:d3:51:73:e4:cb:79:d5:b9:d0:68: - 34:a9:36:b1:51:02:45:a4:ce:98:44:cc:6e:90:07:7a:cd:b2: - 25:65:fc:7b:ca:03:1d:5e:9e:08:b8:70:56:35:65:f8:38:9b: - e1:59:58:52:47:8b:3a:83:53:c5:4e:53:24:92:e6:a2:3a:ca: - 0c:6f:5c:1b:f2:67:51:e8:35:d2:08:85:df:7d:2a:ad:5b:a0: - 5c:6d:8f:7c:28:e9:da:e4:a7:1a:79:be:4e:78:33:a5:e3:72: - 06:b8:21:97:44:02:ba:46:d4:b6:15:b0:79:95:b7:cf:85:9a: - ae:ee:6a:d2:a7:c0:2c:c9:4c:e1:fa:2c:29:e7:56:fc:8f:31: - 1e:6d:f5:23:67:60:ed:f7:74:7d:b2:f4:fe:e6:3c:0b:e4:59: - e7:15:1f:7b:db:38:da:a0:1c:ff:33:33:69:11:74:e6:cb:6f: - 8d:59:d0:cd:88:7e:9e:90:a0:0a:4d:09:35:bf:22:17:c0:64: - 42:f9:9c:20:3f:50:ce:6c:de:62:e6:fa:76:89:a9:16:6f:d5: - 36:ee:52:90:aa:5a:51:94:a8:ce:6b:1c:d2:77:6c:c3:0e:46: - 4b:24:85:ec:a7:9e:c8:ce:d1:3b:f2:d6:09:19:73:a2:d1:b1: - e1:cf:17:d5 ------BEGIN CERTIFICATE----- -MIICijCCAXKgAwIBAgICEAYwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwERSBD -QTAeFw0yMjEwMTkxNjU4NTVaFw0zMjEwMTYxNjU4NTVaMBgxFjAUBgNVBAMMDUNs -aWVudCBDZXJ0IEkwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAE/Y66g7Qbz+GHR -vHOzdYpFU4tOYla1MZmNTEQcpI+LyZELGc+DjFKBAmckzW9NKHiXATTdfZNM5bj+ -GtJrx2EfdQEEbwMvUDX1u3bw1/EXyQQYWvFFCObq8CK3gEFDOzffLUDtUFDwFKP8 -Sz0dh5KMCvgSh/w1X+H2xwpaBzQxydphI6NvMG0wDAYDVR0TAQH/BAIwADAdBgNV -HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHQYDVR0OBBYEFMilsNQTrkOcMd9+ -QLqvK47uVFIVMB8GA1UdIwQYMBaAFPeVArhHq6/vmE2o+cgk1KVPRkfLMA0GCSqG -SIb3DQEBCwUAA4IBAQCGAeHcTtGU49NRc+TLedW50Gg0qTaxUQJFpM6YRMxukAd6 -zbIlZfx7ygMdXp4IuHBWNWX4OJvhWVhSR4s6g1PFTlMkkuaiOsoMb1wb8mdR6DXS -CIXffSqtW6BcbY98KOna5Kcaeb5OeDOl43IGuCGXRAK6RtS2FbB5lbfPhZqu7mrS -p8AsyUzh+iwp51b8jzEebfUjZ2Dt93R9svT+5jwL5FnnFR972zjaoBz/MzNpEXTm -y2+NWdDNiH6ekKAKTQk1vyIXwGRC+ZwgP1DObN5i5vp2iakWb9U27lKQqlpRlKjO -axzSd2zDDkZLJIXsp57IztE78tYJGXOi0bHhzxfV ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_6.pk8 b/src/pki/testdata/ssl/certificates/client_6.pk8 Binary files differdeleted file mode 100644 index 8035bf8..0000000 --- a/src/pki/testdata/ssl/certificates/client_6.pk8 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client_6_ca.pem b/src/pki/testdata/ssl/certificates/client_6_ca.pem deleted file mode 100644 index 9709d46..0000000 --- a/src/pki/testdata/ssl/certificates/client_6_ca.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4098 (0x1002) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C Root CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=E CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a8:49:c7:44:8c:f4:90:52:36:4f:46:d7:68:0a: - 3d:dc:3a:13:3c:61:45:fb:cf:5e:8e:06:c1:35:5d: - 75:f1:33:d7:f0:5b:0e:34:99:19:9d:df:b5:81:40: - aa:1d:eb:f7:45:6e:7f:e2:b5:6e:70:42:5f:a5:bd: - 47:dd:d8:f9:4e:33:03:81:ea:40:c4:0f:ed:53:35: - ab:78:61:e5:aa:80:46:b6:1f:b9:a1:aa:80:c6:cd: - 4c:3c:a6:63:fd:ed:bf:fd:f2:df:1a:b9:de:e9:40: - 1b:cb:00:39:e9:dc:cd:78:70:3d:1b:20:32:49:6b: - 0b:eb:c5:31:27:50:4f:5f:fd:a7:7b:77:1e:d0:a1: - 20:01:56:5c:a6:2c:1d:4b:48:8d:8d:03:94:73:e6: - f6:94:39:59:3c:fc:07:ae:cb:dc:02:7f:2d:04:42: - 5c:d6:ff:86:76:a3:bc:7f:1e:0e:a0:4c:12:ce:58: - f7:42:2d:5b:9d:6b:ef:47:e2:ce:71:89:08:15:fd: - 2c:47:a5:a0:7e:73:ed:0c:b0:fc:b8:7c:0e:cf:fd: - e4:38:5f:ce:8e:80:f2:99:db:fc:fc:ad:9d:b4:be: - 28:4f:e5:5d:5c:93:36:75:4c:64:25:9f:53:64:a5: - 37:66:49:5b:bf:82:f4:01:77:d8:ef:cc:ce:bb:13: - 4c:01 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - X509v3 Authority Key Identifier: - 33:7A:38:92:82:9E:B6:FD:44:FB:B5:BA:A7:C7:0B:4D:59:28:60:9A - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 79:d6:b7:44:92:09:42:bc:96:d8:da:92:c1:cb:9b:19:eb:38: - 98:66:ec:3f:b6:14:a2:31:37:9b:0d:3f:83:cb:fa:80:75:19: - fa:1e:78:7b:05:55:43:a1:17:2d:9a:ad:f9:f2:1f:56:01:c1: - c8:78:02:1c:60:7b:40:95:a9:b3:82:52:65:d8:74:f4:46:b4: - 03:a0:98:db:b4:75:4d:f4:dd:73:84:33:9b:7d:91:78:7a:5b: - 50:08:12:d5:f1:d3:c0:90:fd:2b:14:61:76:96:a3:03:f2:ac: - 7a:b3:f6:9e:ab:a2:07:d1:ae:4d:be:e7:d1:1e:d6:a3:32:be: - 70:70:54:fc:d1:c9:3e:bd:7c:0e:1a:03:17:12:c6:78:3b:df: - 91:61:a9:0f:0a:65:bc:b2:c0:41:da:c3:32:8a:0e:ef:75:89: - 1b:11:27:0a:bb:47:91:c2:e4:71:ea:91:d4:4d:66:c1:a1:3b: - 06:8d:54:b6:da:6f:54:e6:d7:4f:f2:18:b8:d5:59:cb:47:0d: - 9f:d8:1c:6a:20:9c:e2:93:07:a3:dd:94:13:2c:ab:1d:1a:71: - eb:5b:62:12:20:e5:e1:cd:d1:e0:63:fd:94:34:b2:a5:b8:84: - ee:af:2d:11:3d:f2:91:74:f2:ef:bd:55:c6:cf:72:ff:b1:74: - e5:6e:6c:3e ------BEGIN CERTIFICATE----- -MIIDAjCCAeqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJQyBS -b290IENBMB4XDTIyMTAxOTE2NTg1NVoXDTMyMTAxNjE2NTg1NVowDzENMAsGA1UE -AwwERSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhJx0SM9JBS -Nk9G12gKPdw6EzxhRfvPXo4GwTVddfEz1/BbDjSZGZ3ftYFAqh3r90Vuf+K1bnBC -X6W9R93Y+U4zA4HqQMQP7VM1q3hh5aqARrYfuaGqgMbNTDymY/3tv/3y3xq53ulA -G8sAOenczXhwPRsgMklrC+vFMSdQT1/9p3t3HtChIAFWXKYsHUtIjY0DlHPm9pQ5 -WTz8B67L3AJ/LQRCXNb/hnajvH8eDqBMEs5Y90ItW51r70fiznGJCBX9LEeloH5z -7Qyw/Lh8Ds/95Dhfzo6A8pnb/PytnbS+KE/lXVyTNnVMZCWfU2SlN2ZJW7+C9AF3 -2O/MzrsTTAECAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFPeVArhHq6/vmE2o+cgk1KVPRkfLMB8GA1UdIwQYMBaAFDN6 -OJKCnrb9RPu1uqfHC01ZKGCaMA0GCSqGSIb3DQEBCwUAA4IBAQB51rdEkglCvJbY -2pLBy5sZ6ziYZuw/thSiMTebDT+Dy/qAdRn6Hnh7BVVDoRctmq358h9WAcHIeAIc -YHtAlamzglJl2HT0RrQDoJjbtHVN9N1zhDObfZF4eltQCBLV8dPAkP0rFGF2lqMD -8qx6s/aeq6IH0a5NvufRHtajMr5wcFT80ck+vXwOGgMXEsZ4O9+RYakPCmW8ssBB -2sMyig7vdYkbEScKu0eRwuRx6pHUTWbBoTsGjVS22m9U5tdP8hi41VnLRw2f2Bxq -IJzikwej3ZQTLKsdGnHrW2ISIOXhzdHgY/2UNLKluITury0RPfKRdPLvvVXGz3L/ -sXTlbmw+ ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_7.key b/src/pki/testdata/ssl/certificates/client_7.key deleted file mode 100644 index a22d48d..0000000 --- a/src/pki/testdata/ssl/certificates/client_7.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMS7Gq6DrnR7aoa7 -zDPgE3BVNyjLeWYsSOKkPrSO7G8IGAQKGvOld8k5K/SWkZAg5Rj1nHFtYEXavNd2 -QCHqeUO6gVJu2JAKcjkbjx1rsXBCzv4wAJnf4eoS7b/fFIZyZEmxEHKHx6sIn4Gd -ExEUjgzqqTJ5ogMyctqOVy5S/kAjAgMBAAECgYAzhsH1RV4S+iQrh9JzH9RXjqo0 -0B5KyXyJh/U4e1qnthn8LN1kRUl7dbLyi+EyO7tlbyb7emdFxIXDdSBVAcGiqw2n -M3la/jA290ADLxdl+sUdPymFJxM2l/ao9UL/5PknXTFAmkhqylQ5JS4csgAE0q3b -oMmfCvOG/yTs9jBEcQJBAOKBdeuBv5S0NW1bUOFPBnwc5UtQKlXBHdd+tJtGhHI/ -mz1Ay8Onv9TRIpiLgeK7oXg3KvaopLSmI80KO1nsFPkCQQDeWRp21TQ96nDrSmrK -zfUdpLByKuPzLWe1bVR+fgGknWu07oL+g1HniQ7z9MbloVcUNUtvgezDWbKGPfV6 -DzD7AkEAnbpzKBWJGH9JOSa+srb6GBFzJrfjUyYQptCH6hz3/CsI6mWlv1CgSA1+ -XuW/A+mO7ozUMUGMuHN9OLooTF0W2QJBANudEKmM3kPFevC7mQ1lLhSwZOLvACVh -lIy7RviFRuQr5IVaC6KNXGmfk1hcTdPjbtnz5eVmY89zmgRD0GFV/d8CQQDAT+wP -dsU8Qe1vAoxC6mRMfjQH0ght2efyVeBSfQE+n0a92DcbTiNPcEKRlAb1PagCC0PY -r7YlZqtIqBttWdgv ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/client_7.pem b/src/pki/testdata/ssl/certificates/client_7.pem deleted file mode 100644 index d4ac032..0000000 --- a/src/pki/testdata/ssl/certificates/client_7.pem +++ /dev/null @@ -1,66 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4103 (0x1007) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=E CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=Client Cert J - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:c4:bb:1a:ae:83:ae:74:7b:6a:86:bb:cc:33:e0: - 13:70:55:37:28:cb:79:66:2c:48:e2:a4:3e:b4:8e: - ec:6f:08:18:04:0a:1a:f3:a5:77:c9:39:2b:f4:96: - 91:90:20:e5:18:f5:9c:71:6d:60:45:da:bc:d7:76: - 40:21:ea:79:43:ba:81:52:6e:d8:90:0a:72:39:1b: - 8f:1d:6b:b1:70:42:ce:fe:30:00:99:df:e1:ea:12: - ed:bf:df:14:86:72:64:49:b1:10:72:87:c7:ab:08: - 9f:81:9d:13:11:14:8e:0c:ea:a9:32:79:a2:03:32: - 72:da:8e:57:2e:52:fe:40:23 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Key Identifier: - 45:86:46:CC:D4:64:F8:33:5A:7A:14:24:23:39:A7:65:D5:FE:D8:07 - X509v3 Authority Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - a0:3f:52:d0:e5:5c:4e:6a:51:fa:80:16:d1:3c:e4:7e:bf:ed: - 6c:32:d4:73:d2:89:71:ca:96:d3:3a:38:e1:ca:55:dc:23:31: - 5c:e9:9e:b4:1c:48:4c:9c:2e:f8:05:9f:61:f5:3d:24:ef:95: - 41:73:c2:f2:b6:51:c2:7f:6f:5c:d2:70:c2:6e:dd:0a:79:3f: - bf:18:48:ef:2d:23:3b:68:f2:a0:23:4c:4c:fa:ff:48:ab:26: - 11:20:9f:e2:3b:68:67:96:08:ce:56:69:ba:68:09:a0:0a:34: - fa:a1:4f:47:a0:be:2b:94:ad:57:02:43:09:13:52:28:1f:6a: - a2:59:58:7b:84:5e:c5:09:42:a1:7a:d4:88:88:46:54:5c:73: - 51:3a:ac:ca:b2:30:3e:1f:9b:06:f3:28:1b:f0:71:8d:97:42: - c9:42:1f:14:49:b5:57:f3:b2:35:64:44:9f:f7:14:2b:a6:0a: - 4e:cc:8a:c8:5d:5f:53:36:51:d7:55:0d:0a:bd:e4:d8:0d:b2: - 37:46:08:93:0c:cd:9d:10:32:58:37:52:10:15:f8:5a:98:ad: - 15:c7:e0:ba:40:43:a5:8c:44:dd:72:f8:cc:8c:a3:7f:33:6a: - d9:a5:dc:2d:0b:97:07:ad:1e:dd:0a:1c:12:6a:9d:92:13:f6: - 09:0d:16:4e ------BEGIN CERTIFICATE----- -MIICjjCCAXagAwIBAgICEAcwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwERSBD -QTAeFw0yMjEwMTkxNjU4NTVaFw0zMjEwMTYxNjU4NTVaMBgxFjAUBgNVBAMMDUNs -aWVudCBDZXJ0IEowgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMS7Gq6DrnR7 -aoa7zDPgE3BVNyjLeWYsSOKkPrSO7G8IGAQKGvOld8k5K/SWkZAg5Rj1nHFtYEXa -vNd2QCHqeUO6gVJu2JAKcjkbjx1rsXBCzv4wAJnf4eoS7b/fFIZyZEmxEHKHx6sI -n4GdExEUjgzqqTJ5ogMyctqOVy5S/kAjAgMBAAGjbzBtMAwGA1UdEwEB/wQCMAAw -HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBRFhkbM1GT4 -M1p6FCQjOadl1f7YBzAfBgNVHSMEGDAWgBT3lQK4R6uv75hNqPnIJNSlT0ZHyzAN -BgkqhkiG9w0BAQsFAAOCAQEAoD9S0OVcTmpR+oAW0Tzkfr/tbDLUc9KJccqW0zo4 -4cpV3CMxXOmetBxITJwu+AWfYfU9JO+VQXPC8rZRwn9vXNJwwm7dCnk/vxhI7y0j -O2jyoCNMTPr/SKsmESCf4jtoZ5YIzlZpumgJoAo0+qFPR6C+K5StVwJDCRNSKB9q -ollYe4RexQlCoXrUiIhGVFxzUTqsyrIwPh+bBvMoG/BxjZdCyUIfFEm1V/OyNWRE -n/cUK6YKTsyKyF1fUzZR11UNCr3k2A2yN0YIkwzNnRAyWDdSEBX4WpitFcfgukBD -pYxE3XL4zIyjfzNq2aXcLQuXB60e3QocEmqdkhP2CQ0WTg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_7.pk8 b/src/pki/testdata/ssl/certificates/client_7.pk8 Binary files differdeleted file mode 100644 index d13e582..0000000 --- a/src/pki/testdata/ssl/certificates/client_7.pk8 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/client_7_ca.pem b/src/pki/testdata/ssl/certificates/client_7_ca.pem deleted file mode 100644 index 9709d46..0000000 --- a/src/pki/testdata/ssl/certificates/client_7_ca.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4098 (0x1002) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C Root CA - Validity - Not Before: Oct 19 16:58:55 2022 GMT - Not After : Oct 16 16:58:55 2032 GMT - Subject: CN=E CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a8:49:c7:44:8c:f4:90:52:36:4f:46:d7:68:0a: - 3d:dc:3a:13:3c:61:45:fb:cf:5e:8e:06:c1:35:5d: - 75:f1:33:d7:f0:5b:0e:34:99:19:9d:df:b5:81:40: - aa:1d:eb:f7:45:6e:7f:e2:b5:6e:70:42:5f:a5:bd: - 47:dd:d8:f9:4e:33:03:81:ea:40:c4:0f:ed:53:35: - ab:78:61:e5:aa:80:46:b6:1f:b9:a1:aa:80:c6:cd: - 4c:3c:a6:63:fd:ed:bf:fd:f2:df:1a:b9:de:e9:40: - 1b:cb:00:39:e9:dc:cd:78:70:3d:1b:20:32:49:6b: - 0b:eb:c5:31:27:50:4f:5f:fd:a7:7b:77:1e:d0:a1: - 20:01:56:5c:a6:2c:1d:4b:48:8d:8d:03:94:73:e6: - f6:94:39:59:3c:fc:07:ae:cb:dc:02:7f:2d:04:42: - 5c:d6:ff:86:76:a3:bc:7f:1e:0e:a0:4c:12:ce:58: - f7:42:2d:5b:9d:6b:ef:47:e2:ce:71:89:08:15:fd: - 2c:47:a5:a0:7e:73:ed:0c:b0:fc:b8:7c:0e:cf:fd: - e4:38:5f:ce:8e:80:f2:99:db:fc:fc:ad:9d:b4:be: - 28:4f:e5:5d:5c:93:36:75:4c:64:25:9f:53:64:a5: - 37:66:49:5b:bf:82:f4:01:77:d8:ef:cc:ce:bb:13: - 4c:01 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - F7:95:02:B8:47:AB:AF:EF:98:4D:A8:F9:C8:24:D4:A5:4F:46:47:CB - X509v3 Authority Key Identifier: - 33:7A:38:92:82:9E:B6:FD:44:FB:B5:BA:A7:C7:0B:4D:59:28:60:9A - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 79:d6:b7:44:92:09:42:bc:96:d8:da:92:c1:cb:9b:19:eb:38: - 98:66:ec:3f:b6:14:a2:31:37:9b:0d:3f:83:cb:fa:80:75:19: - fa:1e:78:7b:05:55:43:a1:17:2d:9a:ad:f9:f2:1f:56:01:c1: - c8:78:02:1c:60:7b:40:95:a9:b3:82:52:65:d8:74:f4:46:b4: - 03:a0:98:db:b4:75:4d:f4:dd:73:84:33:9b:7d:91:78:7a:5b: - 50:08:12:d5:f1:d3:c0:90:fd:2b:14:61:76:96:a3:03:f2:ac: - 7a:b3:f6:9e:ab:a2:07:d1:ae:4d:be:e7:d1:1e:d6:a3:32:be: - 70:70:54:fc:d1:c9:3e:bd:7c:0e:1a:03:17:12:c6:78:3b:df: - 91:61:a9:0f:0a:65:bc:b2:c0:41:da:c3:32:8a:0e:ef:75:89: - 1b:11:27:0a:bb:47:91:c2:e4:71:ea:91:d4:4d:66:c1:a1:3b: - 06:8d:54:b6:da:6f:54:e6:d7:4f:f2:18:b8:d5:59:cb:47:0d: - 9f:d8:1c:6a:20:9c:e2:93:07:a3:dd:94:13:2c:ab:1d:1a:71: - eb:5b:62:12:20:e5:e1:cd:d1:e0:63:fd:94:34:b2:a5:b8:84: - ee:af:2d:11:3d:f2:91:74:f2:ef:bd:55:c6:cf:72:ff:b1:74: - e5:6e:6c:3e ------BEGIN CERTIFICATE----- -MIIDAjCCAeqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJQyBS -b290IENBMB4XDTIyMTAxOTE2NTg1NVoXDTMyMTAxNjE2NTg1NVowDzENMAsGA1UE -AwwERSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhJx0SM9JBS -Nk9G12gKPdw6EzxhRfvPXo4GwTVddfEz1/BbDjSZGZ3ftYFAqh3r90Vuf+K1bnBC -X6W9R93Y+U4zA4HqQMQP7VM1q3hh5aqARrYfuaGqgMbNTDymY/3tv/3y3xq53ulA -G8sAOenczXhwPRsgMklrC+vFMSdQT1/9p3t3HtChIAFWXKYsHUtIjY0DlHPm9pQ5 -WTz8B67L3AJ/LQRCXNb/hnajvH8eDqBMEs5Y90ItW51r70fiznGJCBX9LEeloH5z -7Qyw/Lh8Ds/95Dhfzo6A8pnb/PytnbS+KE/lXVyTNnVMZCWfU2SlN2ZJW7+C9AF3 -2O/MzrsTTAECAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFPeVArhHq6/vmE2o+cgk1KVPRkfLMB8GA1UdIwQYMBaAFDN6 -OJKCnrb9RPu1uqfHC01ZKGCaMA0GCSqGSIb3DQEBCwUAA4IBAQB51rdEkglCvJbY -2pLBy5sZ6ziYZuw/thSiMTebDT+Dy/qAdRn6Hnh7BVVDoRctmq358h9WAcHIeAIc -YHtAlamzglJl2HT0RrQDoJjbtHVN9N1zhDObfZF4eltQCBLV8dPAkP0rFGF2lqMD -8qx6s/aeq6IH0a5NvufRHtajMr5wcFT80ck+vXwOGgMXEsZ4O9+RYakPCmW8ssBB -2sMyig7vdYkbEScKu0eRwuRx6pHUTWbBoTsGjVS22m9U5tdP8hi41VnLRw2f2Bxq -IJzikwej3ZQTLKsdGnHrW2ISIOXhzdHgY/2UNLKluITury0RPfKRdPLvvVXGz3L/ -sXTlbmw+ ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/client_root_ca.pem b/src/pki/testdata/ssl/certificates/client_root_ca.pem deleted file mode 100644 index 97ddcb1..0000000 --- a/src/pki/testdata/ssl/certificates/client_root_ca.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC+DCCAeCgAwIBAgIUP1wLVZUv7x3bRdFOcu0C/oeN2WwwDQYJKoZIhvcNAQEL -BQAwFDESMBAGA1UEAwwJQyBSb290IENBMB4XDTIyMTAxOTE2NTg1NVoXDTMyMTAx -NjE2NTg1NVowFDESMBAGA1UEAwwJQyBSb290IENBMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAjec2+ZmcF1eiwxrtvoNJpiFY4ywRYD3RfHOcxEM+soBv -/6yP4hRK43YeQOPSOSHf8RSeD+kTy40wPFx4Z80XyIwIpv8xtlsPNNV0SKZfn7g+ -gt6HsfEqGq0iJPDoTQB7YY7ygvM5sOLbK4XvqQJsE7uWfxFC+3esFlxhGGd69HaK -ebUF0gEtom/0KoDNy0Md5Rdr4i2j4v032lkF+sLpWiz1BfIt10ewzknfI/Hpy39q -jdeq4LFou+UDKN7cK3zSEc7pJ2hbn5vMFpdzoUcmOi59V30Q9SvmDiOiAYdRecLM -F5IirvMzrYA740xxEFxYr9fLiMK2g5QjrbICYczsqQIDAQABo0IwQDAPBgNVHRMB -Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUM3o4koKetv1E+7W6 -p8cLTVkoYJowDQYJKoZIhvcNAQELBQADggEBABm+LYzj/+CGE6RHYWJxoGov5Qpn -tztPE7g66UU8TDgmC0TysRPk8WpFMTpXLdway7gdNFfhrUv179JJrP6vm7SyxAW1 -KXyfUIRJiBuKbPq4rSgs7O/QvChV33s6wWt6k8zPkgi3P2XhWLwMcYYh/gwAixrO -PXzonHNrAxb62kWgPucNblQIqy+HpelSHShssWtXlXWp1kmelR44eLsaIeXybIgA -9eRCtOolBlp6oLhiTFnbDUqyHCdSleNwlBGSQCTEO95zqPzfc9CzQX1h/SL6aWJG -pP6mw+rKwh8WG9fK2MnBQYzNCj/7WU+XGLdhwc63xrUiBzKB57S8PyvWPKM= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/common_name_only.pem b/src/pki/testdata/ssl/certificates/common_name_only.pem deleted file mode 100644 index 01d3258..0000000 --- a/src/pki/testdata/ssl/certificates/common_name_only.pem +++ /dev/null @@ -1,111 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDJABG+o501DlYn -pIeZGdbtxuX0hUvuhTCO/+u+ZajABJAsejJ8tm5qRURXOguSG2u3nKqR9cA3r/47 -aQHvkkYfLpF4lnL5X7lRmkOq8vWObvwaUuvwcsA3qwxWSd5u4sVOl/eSj0yzJDq0 -Lb6QVPWlbWgrZyEdDuAxg7glVTWeJagK5IMI8b2yiis7oxLXFudztUg2E3UVkIMz -Gw55unskWdOnViQ0N3kFyXfbFcnojWNm2iJfQtHxjfHN+ydGaH/z4SpYh/0SHqnC -rj46J2fojyH/LFgn2MnskeK3kOLShpEcAbnRibrbrNMcDUi5vANq3s2+bhoinS0U -fs2v53/nAgMBAAECggEAFTIjrOXWCyVC4pVQE04NQy/JShrQYgu7jijgtEhGHlGc -3oPYVRxr0lsRlN0zISoxFsC3oAK5TWYKujsdkCTtrhYcEwpSf4efpEJPRnSufmGn -xiLebJG9QWGRQHwzr5/MTLhrzBG+ddmpMxzrzo6XBOXfqUwLyuOpsq8AOTeeGtoP -kTWtvOS2ODx6ID27GNcSNGO3haeLKCZaXnlE9RKRLFnBD4IEMycivA63uEpMBe13 -PHjqc6cm5tL76TKmfZ5MCC9XRtK6NbqQpJwjet/oqr0TjM6Shz0HCSUufOqNsBjy -cnpCwb/GOvtDoV3ygUNvmUc3xZDf6e2eUc0eu1aYqQKBgQD+aXgQwUYklYreU5uK -dfOWvmR05E2ekJdsxyzxsuwpR0MaPPXiJlPYnChlvdSc+0SUDVmrv0xLrh0D0J54 -khDI3dOxTncNGEEzj0+/f9fHxpSH8CxHxsvfbzRNyLS/8QgN/24PfXTVw8o3xftn -1IsLg0mWk9m70BTKqDEZyKTZ7QKBgQDKQUCgj8/uuF1DeJL8HaP2O9HPdAjaymia -X39NeYQdYKqCGf28b6GyACcZMGemo8+s3Y1k3EheHEEnnvUMok+ULKJ6LnqLRyTU -IjoBQ8LOq8lAKTjDcvVYy6pF6wGG1YsDJsY4M1ED9Wrc87Ns1WnVZEY9P9FlhBNl -OQVD3sP2owKBgQDTr+hycI8vs6qX8ZNzc0+a95LY3HplXMRSg6w29HyioCQKefzS -DrgnfU/z0C9P65cVZcJeMM+IDTkhSn4Bru/+Yu1ZFAPlRnBCOZXOrs5Z8Tb3oXUG -yDgtEve/XShgqWrdUtM+WlJT6BSjsb3NmEGV88jQXPeH2czjD23DmXrpxQKBgG2x -ZjOuy79VDoABbPZ/vOVXHDu/Wu4OyRywnoKOXTDxtIhLQGpqwO+hVZM7xXuDbKb8 -oisJrdYczNmIRK9NeIuMibJqctwHAdprlboJ3iXo1YWO1dJrDtXR38973aAbQQG8 -jdT9P/s9p2+eXLmyJWwurkmZyx+bukkz278rmmyxAoGARoR/vqPlOj3TAcFsks1c -HeI3bqblWu/dpeZ7MhYM90Xf3e0RxigcPNkVm9H1wEragh/WVRQpunysxaTVcnAL -xKf++lCNDCPFOXAhOxTGBGpS/IbrnLfAhDCdqBX2xkyJWNGu00JGe6gfJyIQiX1Z -+919aWiM78TlJC8psjZviRs= ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:83 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Dec 20 00:00:00 2017 GMT - Not After : Dec 20 00:00:00 2020 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c9:00:11:be:a3:9d:35:0e:56:27:a4:87:99:19: - d6:ed:c6:e5:f4:85:4b:ee:85:30:8e:ff:eb:be:65: - a8:c0:04:90:2c:7a:32:7c:b6:6e:6a:45:44:57:3a: - 0b:92:1b:6b:b7:9c:aa:91:f5:c0:37:af:fe:3b:69: - 01:ef:92:46:1f:2e:91:78:96:72:f9:5f:b9:51:9a: - 43:aa:f2:f5:8e:6e:fc:1a:52:eb:f0:72:c0:37:ab: - 0c:56:49:de:6e:e2:c5:4e:97:f7:92:8f:4c:b3:24: - 3a:b4:2d:be:90:54:f5:a5:6d:68:2b:67:21:1d:0e: - e0:31:83:b8:25:55:35:9e:25:a8:0a:e4:83:08:f1: - bd:b2:8a:2b:3b:a3:12:d7:16:e7:73:b5:48:36:13: - 75:15:90:83:33:1b:0e:79:ba:7b:24:59:d3:a7:56: - 24:34:37:79:05:c9:77:db:15:c9:e8:8d:63:66:da: - 22:5f:42:d1:f1:8d:f1:cd:fb:27:46:68:7f:f3:e1: - 2a:58:87:fd:12:1e:a9:c2:ae:3e:3a:27:67:e8:8f: - 21:ff:2c:58:27:d8:c9:ec:91:e2:b7:90:e2:d2:86: - 91:1c:01:b9:d1:89:ba:db:ac:d3:1c:0d:48:b9:bc: - 03:6a:de:cd:be:6e:1a:22:9d:2d:14:7e:cd:af:e7: - 7f:e7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - ED:8D:2E:41:6F:59:A4:A8:A8:08:80:22:DA:52:E2:83:F8:05:A4:BE - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 86:c1:24:8e:a7:4d:26:27:8a:f6:12:62:6d:7f:de:aa:69:07: - 97:e4:3a:78:a6:37:73:fc:63:cb:68:1d:ab:90:32:7c:b2:bd: - b5:7c:c6:ba:a9:bf:55:22:4e:a2:ca:1e:25:a4:4b:3e:78:f7: - 5b:46:b7:04:83:99:57:82:82:fc:2f:c5:96:96:a3:da:8d:db: - df:26:e9:62:1a:24:22:9b:95:4c:cc:79:54:c9:bb:e3:1c:bc: - 87:bb:26:74:8f:89:c2:64:57:12:ca:7e:e9:e7:cb:aa:38:9f: - b0:96:4c:63:64:41:cc:03:e8:5e:13:2e:9c:79:73:bc:e7:b1: - 5b:54:80:51:48:eb:71:68:c7:21:fd:f9:2c:ee:a0:3f:52:06: - ae:96:1e:62:13:46:37:0e:a4:58:b2:45:1e:7d:ea:7f:7d:70: - 47:92:7c:7b:7c:90:a8:87:7c:1a:12:51:75:75:59:92:1c:4d: - a2:7f:7e:ad:fa:89:de:8f:ae:2f:d6:ca:c5:3b:55:a0:fb:f5: - e0:3e:0b:60:c5:2d:d1:7e:e9:c1:cb:3c:24:77:56:8f:af:4e: - cb:99:39:b7:53:99:07:8c:71:59:20:9c:bd:db:38:bb:cc:b8: - 5c:9a:51:66:18:46:39:96:c4:1a:ce:89:39:d3:6e:5f:79:17: - 84:92:74:16 ------BEGIN CERTIFICATE----- -MIIDvTCCAqWgAwIBAgIRALBrk5LjXI1+7Z3IllnFwoMwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNzEyMjAwMDAwMDBaFw0yMDEyMjAwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJABG+o501DlYnpIeZGdbtxuX0hUvuhTCO -/+u+ZajABJAsejJ8tm5qRURXOguSG2u3nKqR9cA3r/47aQHvkkYfLpF4lnL5X7lR -mkOq8vWObvwaUuvwcsA3qwxWSd5u4sVOl/eSj0yzJDq0Lb6QVPWlbWgrZyEdDuAx -g7glVTWeJagK5IMI8b2yiis7oxLXFudztUg2E3UVkIMzGw55unskWdOnViQ0N3kF -yXfbFcnojWNm2iJfQtHxjfHN+ydGaH/z4SpYh/0SHqnCrj46J2fojyH/LFgn2Mns -keK3kOLShpEcAbnRibrbrNMcDUi5vANq3s2+bhoinS0Ufs2v53/nAgMBAAGjbzBt -MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFO2NLkFvWaSoqAiAItpS4oP4BaS+MB8G -A1UdIwQYMBaAFJsmC4qYqbsduR8c4xpAM+2OF4irMB0GA1UdJQQWMBQGCCsGAQUF -BwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAhsEkjqdNJieK9hJibX/e -qmkHl+Q6eKY3c/xjy2gdq5AyfLK9tXzGuqm/VSJOosoeJaRLPnj3W0a3BIOZV4KC -/C/Flpaj2o3b3ybpYhokIpuVTMx5VMm74xy8h7smdI+JwmRXEsp+6efLqjifsJZM -Y2RBzAPoXhMunHlzvOexW1SAUUjrcWjHIf35LO6gP1IGrpYeYhNGNw6kWLJFHn3q -f31wR5J8e3yQqId8GhJRdXVZkhxNon9+rfqJ3o+uL9bKxTtVoPv14D4LYMUt0X7p -wcs8JHdWj69Oy5k5t1OZB4xxWSCcvds4u8y4XJpRZhhGOZbEGs6JOdNuX3kXhJJ0 -Fg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/crit-codeSigning-chain.pem b/src/pki/testdata/ssl/certificates/crit-codeSigning-chain.pem deleted file mode 100644 index 55d1e8c..0000000 --- a/src/pki/testdata/ssl/certificates/crit-codeSigning-chain.pem +++ /dev/null @@ -1,110 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDo54gDQT1qecev -bDsUAnrPdTnIFp0Da4tLIr+UCTyfMoF5ZEVfH7PDaS5pydczRr3O5SR7+VUNOaQc -nU3E2IWgb0tD/AeI6x6Q/rjFMM7DsNvHjvzuX9xjhwGeM5KVNb9jv59g7TmwYvoF -y6QUwEpV+gySaAfGQi0GsviEIyZR3kWqzalHk8EetSsEql7BEVjeAEoz5raMLukF -qfJ9lOVkvzPMUXQVEROlCzWePHe7lXkep9LUNIdguu92Qt2458BUgNR703RsJxy3 -HU0dz1pe83Pu4MrQk65Di851HAOYykkZ0NugmWFZn4zHit3KDJZJZ4cBiaq8ftgh -xPvpH2m1AgMBAAECggEAATjJG+r0Wmlf1MOlZbIhLEQil0XvZ3jXxGuj0s2khllu -SZtReuyxsJzI/fiLD/h0nK/6gyKZmjOBU3lByP6KQYkrUQcaGfC90x3nSCp3zksV -a3bu6g+Hri7BA+tBukH4CmnOW9Dt2qmcG/CFNC+958iPr6FmKLv8hkC937Uf9cL6 -nD29wvDuzRibDRV/yDk/dhbc2QTpDp8kkjDBI/Hpibj6GeQra5YDDafqs78w0jQh -jOl6+E4sn79+X4ZccOCXfgcXsa8gZcskIXdVGhtWnYGWdxcyXDhJrZzKr2tEhzAw -QFhpHjlGL9l6P/lDyn0qMxp9IEFLcWJk2YTrcaV4wQKBgQD4VLNJj+l2x4O7qGpb -X5GRYLBCqI76iXLxUaEQJxZpd5qngWKaSJyS9IO82k7fcCgsbhQQnXC59UIlUQ6A -YLPO4Nj/D6V8ewttCIbiRtddTZBj9wIHJFhOfcRoDBSTskhaJ4kVB1Nh+YchQf+8 -P6/wwkTcn9FRohdeHikYDnpqIQKBgQDwGN6pGMbrnIKv/+HHC55QPshUYjKIjU98 -Bd7TU3Kj8tSpxiKKXY9RtkAfzoSrgPzu5SJ3bSgXBXz+xOtN9b9z5beQHJyufHaO -NaVQ4ZStMjo3afXMNj7UUd9ZbFuH2K+K1FjXy99Ab5wN/u5snRiErh2KS/w3mxze -6kOComAVFQKBgQC7vP0WHhB4VfmHg5l0ntmkOJ7IpjoBuqwFOJs1ZPeSoHNxM2Xi -EgcdKnH18m0yis40WLwem4g/beWl5JO8Bl+phV9H5QJNC5Dly059/uSOizcf+/uy -fo2sOXSk3I0p49zDG6SNG060gTrhr82w+cz/jT8WNFTBDHPyGYcjwr5VQQKBgEHU -f9BbU8csHYUGIrCBlgGohSLl3bclD6MQtPy6R5d+MCLwiW3oozAjSUevRx8C+dbC -ioW2LyTIw3HTKjUw6TJszLy9q5QH2jW5rb8UasBmIiIpclRwlx9950BMfngryE3H -VSit5GN1dpM7z8GF/T/7wWu208unQu43yxTZUoDVAoGBANzJZijbb2JYdvDSi5aX -Akv5droXiJ9DG7wew7xGJcGRdmpRw+mas2j5hdIXwfKeN7yr8KFaYxv/DDqlTsv+ -sZPysvWc4TZ8NrNOL9VyAD/3QCjo9uBdd2rSssYMKHI8RXD+Jiold59AW3oMDwVk -OW8+EuyR+eoq9HueaKbjlJ5O ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 RSA Test Root CA - Validity - Not Before: Feb 17 17:08:51 2023 GMT - Not After : Feb 14 17:08:51 2033 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e8:e7:88:03:41:3d:6a:79:c7:af:6c:3b:14:02: - 7a:cf:75:39:c8:16:9d:03:6b:8b:4b:22:bf:94:09: - 3c:9f:32:81:79:64:45:5f:1f:b3:c3:69:2e:69:c9: - d7:33:46:bd:ce:e5:24:7b:f9:55:0d:39:a4:1c:9d: - 4d:c4:d8:85:a0:6f:4b:43:fc:07:88:eb:1e:90:fe: - b8:c5:30:ce:c3:b0:db:c7:8e:fc:ee:5f:dc:63:87: - 01:9e:33:92:95:35:bf:63:bf:9f:60:ed:39:b0:62: - fa:05:cb:a4:14:c0:4a:55:fa:0c:92:68:07:c6:42: - 2d:06:b2:f8:84:23:26:51:de:45:aa:cd:a9:47:93: - c1:1e:b5:2b:04:aa:5e:c1:11:58:de:00:4a:33:e6: - b6:8c:2e:e9:05:a9:f2:7d:94:e5:64:bf:33:cc:51: - 74:15:11:13:a5:0b:35:9e:3c:77:bb:95:79:1e:a7: - d2:d4:34:87:60:ba:ef:76:42:dd:b8:e7:c0:54:80: - d4:7b:d3:74:6c:27:1c:b7:1d:4d:1d:cf:5a:5e:f3: - 73:ee:e0:ca:d0:93:ae:43:8b:ce:75:1c:03:98:ca: - 49:19:d0:db:a0:99:61:59:9f:8c:c7:8a:dd:ca:0c: - 96:49:67:87:01:89:aa:bc:7e:d8:21:c4:fb:e9:1f: - 69:b5 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - CB:86:F3:FC:03:8D:82:4B:C6:63:57:8A:E6:9F:86:55:10:D9:00:B7 - X509v3 Extended Key Usage: critical - Code Signing - X509v3 Authority Key Identifier: - D5:28:55:87:C7:A3:BF:D7:C4:CE:BE:3D:01:D2:BE:8B:7C:E4:E2:E2 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 64:ff:92:1d:66:c5:2b:6c:b8:d6:82:39:80:8e:ef:55:cd:bb: - 6f:1c:16:20:a5:6b:90:fa:f3:20:c7:37:0d:7d:4f:da:f5:1f: - 9c:dc:28:3e:39:56:a7:17:eb:3b:09:53:d7:1e:1b:a1:eb:24: - f7:7f:04:38:77:e1:e4:39:60:bf:24:13:37:05:8b:9f:36:94: - 91:e4:fc:43:97:d6:0e:11:cb:ee:a9:f9:c1:05:6e:2f:ea:76: - af:f5:69:ae:06:97:5a:2d:97:0b:cd:3a:1d:01:30:26:ac:da: - f6:03:e4:df:32:08:64:81:ea:36:85:0c:03:41:6a:ef:10:6b: - 2a:a4:cb:f6:59:9b:bf:fa:1b:5a:9e:05:33:b0:54:30:d1:79: - dd:77:6b:e0:c8:be:52:37:58:7e:b0:53:23:fe:62:ce:5c:bb: - b5:06:85:18:e0:08:08:cd:48:bc:1d:d7:cb:92:55:33:57:fe: - 42:4a:81:0d:d3:ee:02:0a:e1:4b:d2:f1:de:81:5e:bb:fa:8b: - 9f:3f:ec:0a:1a:30:0b:de:15:d3:75:5e:11:f8:a9:7e:4f:7d: - 40:03:06:e4:2f:3b:e5:5e:ff:42:f5:e6:99:02:f3:26:c0:f7: - e2:b2:62:53:d3:e2:5b:2a:17:e3:78:5c:84:cc:14:bf:fa:0d: - ac:d7:d0:49 ------BEGIN CERTIFICATE----- -MIIDdDCCAlygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBUyMDQ4 -IFJTQSBUZXN0IFJvb3QgQ0EwHhcNMjMwMjE3MTcwODUxWhcNMzMwMjE0MTcwODUx -WjBgMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN -TW91bnRhaW4gVmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAu -MC4xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6OeIA0E9annHr2w7 -FAJ6z3U5yBadA2uLSyK/lAk8nzKBeWRFXx+zw2kuacnXM0a9zuUke/lVDTmkHJ1N -xNiFoG9LQ/wHiOsekP64xTDOw7Dbx4787l/cY4cBnjOSlTW/Y7+fYO05sGL6Bcuk -FMBKVfoMkmgHxkItBrL4hCMmUd5Fqs2pR5PBHrUrBKpewRFY3gBKM+a2jC7pBany -fZTlZL8zzFF0FRETpQs1njx3u5V5HqfS1DSHYLrvdkLduOfAVIDUe9N0bCcctx1N -Hc9aXvNz7uDK0JOuQ4vOdRwDmMpJGdDboJlhWZ+Mx4rdygyWSWeHAYmqvH7YIcT7 -6R9ptQIDAQABo3kwdzAPBgNVHREECDAGhwR/AAABMAwGA1UdEwEB/wQCMAAwHQYD -VR0OBBYEFMuG8/wDjYJLxmNXiuafhlUQ2QC3MBYGA1UdJQEB/wQMMAoGCCsGAQUF -BwMDMB8GA1UdIwQYMBaAFNUoVYfHo7/XxM6+PQHSvot85OLiMA0GCSqGSIb3DQEB -CwUAA4IBAQBk/5IdZsUrbLjWgjmAju9VzbtvHBYgpWuQ+vMgxzcNfU/a9R+c3Cg+ -OVanF+s7CVPXHhuh6yT3fwQ4d+HkOWC/JBM3BYufNpSR5PxDl9YOEcvuqfnBBW4v -6nav9WmuBpdaLZcLzTodATAmrNr2A+TfMghkgeo2hQwDQWrvEGsqpMv2WZu/+hta -ngUzsFQw0Xndd2vgyL5SN1h+sFMj/mLOXLu1BoUY4AgIzUi8HdfLklUzV/5CSoEN -0+4CCuFL0vHegV67+oufP+wKGjAL3hXTdV4R+Kl+T31AAwbkLzvlXv9C9eaZAvMm -wPfismJT0+JbKhfjeFyEzBS/+g2s19BJ ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/crlset_blocked_interception_by_intermediate.raw b/src/pki/testdata/ssl/certificates/crlset_blocked_interception_by_intermediate.raw Binary files differdeleted file mode 100644 index 5bac40a..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_blocked_interception_by_intermediate.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/crlset_blocked_interception_by_root.raw b/src/pki/testdata/ssl/certificates/crlset_blocked_interception_by_root.raw Binary files differdeleted file mode 100644 index 457c750..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_blocked_interception_by_root.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/crlset_by_intermediate_serial.raw b/src/pki/testdata/ssl/certificates/crlset_by_intermediate_serial.raw Binary files differdeleted file mode 100644 index 852f28f..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_by_intermediate_serial.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/crlset_by_leaf_spki.raw b/src/pki/testdata/ssl/certificates/crlset_by_leaf_spki.raw Binary files differdeleted file mode 100644 index 2d072ff..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_by_leaf_spki.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/crlset_by_leaf_subject_no_spki.raw b/src/pki/testdata/ssl/certificates/crlset_by_leaf_subject_no_spki.raw Binary files differdeleted file mode 100644 index 7fcdc37..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_by_leaf_subject_no_spki.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/crlset_by_root_serial.raw b/src/pki/testdata/ssl/certificates/crlset_by_root_serial.raw Binary files differdeleted file mode 100644 index c530e91..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_by_root_serial.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/crlset_by_root_spki.raw b/src/pki/testdata/ssl/certificates/crlset_by_root_spki.raw Binary files differdeleted file mode 100644 index 2cf8934..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_by_root_spki.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/crlset_by_root_subject.raw b/src/pki/testdata/ssl/certificates/crlset_by_root_subject.raw deleted file mode 100644 index dff3162..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_by_root_subject.raw +++ /dev/null @@ -1 +0,0 @@ -{"Version": 0, "ContentType": "CRLSet", "Sequence": 1, "NumParents": 0, "BlockedSPKIs": [], "LimitedSubjects": {"APZW1IJHguCRuMrfLCm88fpiNaGl562lAbs3i6JTQA0=": ["VypP3VWL7OaqTJ7mIBehWYlv8khPuFHpWiearZI2YjI="]}, "KnownInterceptionSPKIs": [], "BlockedInterceptionSPKIs": []}
\ No newline at end of file diff --git a/src/pki/testdata/ssl/certificates/crlset_by_root_subject_no_spki.raw b/src/pki/testdata/ssl/certificates/crlset_by_root_subject_no_spki.raw Binary files differdeleted file mode 100644 index 85d6399..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_by_root_subject_no_spki.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/crlset_known_interception_by_root.raw b/src/pki/testdata/ssl/certificates/crlset_known_interception_by_root.raw Binary files differdeleted file mode 100644 index f2a12d0..0000000 --- a/src/pki/testdata/ssl/certificates/crlset_known_interception_by_root.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/cronet-quic-chain.pem b/src/pki/testdata/ssl/certificates/cronet-quic-chain.pem deleted file mode 100644 index d40da79..0000000 --- a/src/pki/testdata/ssl/certificates/cronet-quic-chain.pem +++ /dev/null @@ -1,159 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Intermediate CA - Validity - Not Before: Jun 1 11:27:00 2023 GMT - Not After : May 29 11:27:00 2033 GMT - Subject: CN=localhost - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:f2:5e:81:dd:8a:91:07:17:5e:dc:89:e0:56:36: - 2d:5f:80:01:13:a6:64:48:04:79:3c:5e:08:23:75: - bd:12:f9:d4:00:fb:47:7b:25:11:21:12:0b:05:25: - 6e:9e:04:b9:70:dc:5d:be:c3:59:a9:55:ff:3c:d4: - 95:b0:77:39:d0:31:0b:b4:c9:a4:c9:53:30:21:e8: - 58:f0:70:1c:fd:26:07:24:0d:ae:c9:0e:73:99:3e: - e8:cb:cb:54:90:ae:49:90:90:89:c1:d3:82:23:d7: - b5:dd:2b:0a:77:d0:10:c7:6f:71:b9:1c:d4:0b:39: - f7:8d:ca:46:94:d4:cb:93:35:28:9d:36:90:cf:a8: - ac:e5:70:e8:66:16:7b:5a:8b:9f:c4:e8:d0:e2:de: - 87:7b:6f:fa:0d:81:90:e2:13:34:a5:bb:58:72:1d: - f1:51:1c:9d:4c:55:50:e5:98:21:bf:a9:b3:8b:fc: - e8:74:30:32:f8:81:6c:b0:b0:f4:0b:16:94:d8:af: - 18:aa:03:09:a4:77:2f:ed:d9:d9:dd:b3:84:1f:a6: - 59:f7:ba:a7:16:b2:38:e2:f4:c7:bc:16:e6:98:46: - 82:d1:ce:f6:45:b9:0c:b9:f1:98:9d:92:36:33:cc: - 3f:08:80:02:25:9a:a7:8b:ca:2e:ab:8e:7f:44:5e: - be:9b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - DNS:localhost - X509v3 Subject Key Identifier: - F8:F0:38:9F:09:35:40:22:F7:E3:30:D8:FC:E5:A8:5C:1F:8C:D1:8C - X509v3 Authority Key Identifier: - 19:A2:E3:C8:BC:6D:CA:84:54:09:B3:67:4D:3E:60:CF:C4:78:38:95 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 43:58:ea:e3:50:da:d4:50:9a:3e:d7:0a:82:c2:1c:ca:f8:05: - 4d:4a:96:bf:6e:ab:0a:0a:ae:d3:4e:c4:ce:73:73:ec:c5:45: - d2:9b:9f:4c:cd:32:f9:27:a7:6f:59:bf:66:e9:78:b5:6b:10: - 6a:e8:44:51:dc:f7:31:68:36:a8:d3:59:bc:90:94:48:d5:f5: - 30:67:7e:bf:22:58:ca:0c:0a:79:6d:94:d6:9f:70:68:e4:24: - 68:49:16:ea:d7:f9:1b:35:dc:93:49:56:d1:c1:1d:31:a5:c4: - 34:c7:88:e8:20:0f:de:ea:b5:0a:6d:da:10:df:5a:db:ca:e5: - 7d:1c:99:eb:f5:26:bf:cd:dd:67:31:8b:15:63:ea:90:68:fa: - 83:81:48:e2:b9:94:02:c2:61:74:71:06:fe:e8:97:e0:f0:d2: - da:79:06:14:a2:44:94:93:32:f6:00:7d:28:ef:21:89:2e:2b: - 69:45:cb:ae:a6:64:46:ae:db:36:d2:a3:fe:ed:8c:65:c0:c9: - 51:42:73:df:21:2e:2d:51:35:c3:e8:54:76:5b:4e:0f:39:9d: - 9f:f4:6e:9f:af:8c:9e:de:60:b2:e7:5d:5c:61:12:f3:4b:4b: - 2e:08:ec:cc:20:90:00:36:f3:c4:14:b3:43:a2:f9:19:33:e5: - c3:01:56:9b ------BEGIN CERTIFICATE----- -MIIDNTCCAh2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAfMR0wGwYDVQQDDBRUZXN0 -IEludGVybWVkaWF0ZSBDQTAeFw0yMzA2MDExMTI3MDBaFw0zMzA1MjkxMTI3MDBa -MBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAPJegd2KkQcXXtyJ4FY2LV+AAROmZEgEeTxeCCN1vRL51AD7R3slESES -CwUlbp4EuXDcXb7DWalV/zzUlbB3OdAxC7TJpMlTMCHoWPBwHP0mByQNrskOc5k+ -6MvLVJCuSZCQicHTgiPXtd0rCnfQEMdvcbkc1As5943KRpTUy5M1KJ02kM+orOVw -6GYWe1qLn8To0OLeh3tv+g2BkOITNKW7WHId8VEcnUxVUOWYIb+ps4v86HQwMviB -bLCw9AsWlNivGKoDCaR3L+3Z2d2zhB+mWfe6pxayOOL0x7wW5phGgtHO9kW5DLnx -mJ2SNjPMPwiAAiWap4vKLquOf0RevpsCAwEAAaOBhjCBgzAMBgNVHRMBAf8EAjAA -MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAUBgNVHREEDTALgglsb2Nh -bGhvc3QwHQYDVR0OBBYEFPjwOJ8JNUAi9+Mw2PzlqFwfjNGMMB8GA1UdIwQYMBaA -FBmi48i8bcqEVAmzZ00+YM/EeDiVMA0GCSqGSIb3DQEBCwUAA4IBAQBDWOrjUNrU -UJo+1wqCwhzK+AVNSpa/bqsKCq7TTsTOc3PsxUXSm59MzTL5J6dvWb9m6Xi1axBq -6ERR3PcxaDao01m8kJRI1fUwZ36/IljKDAp5bZTWn3Bo5CRoSRbq1/kbNdyTSVbR -wR0xpcQ0x4joIA/e6rUKbdoQ31rbyuV9HJnr9Sa/zd1nMYsVY+qQaPqDgUjiuZQC -wmF0cQb+6Jfg8NLaeQYUokSUkzL2AH0o7yGJLitpRcuupmRGrts20qP+7YxlwMlR -QnPfIS4tUTXD6FR2W04POZ2f9G6fr4ye3mCy511cYRLzS0suCOzMIJAANvPEFLND -ovkZM+XDAVab ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA - Validity - Not Before: Jun 1 11:27:00 2023 GMT - Not After : May 29 11:27:00 2033 GMT - Subject: CN=Test Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b7:e9:bb:fb:dd:c9:fc:be:5c:a7:8a:ed:d0:c6: - f8:89:33:d8:a7:81:db:85:43:dd:ba:46:7e:2a:44: - 76:58:81:f9:1d:e7:02:1c:11:8e:13:2c:51:c9:36: - 4b:a9:8f:d2:a7:d0:2d:0a:6e:16:33:08:a5:37:6e: - 75:56:12:70:6d:51:0e:83:a6:4c:91:b9:74:50:73: - c6:3a:bf:82:0d:8a:f2:df:9c:dd:a4:ea:42:3e:eb: - 04:4a:22:44:d0:1b:2a:0d:d6:18:f6:b1:95:73:8f: - f8:e5:c4:56:ff:5c:32:6a:5a:ec:42:93:79:18:a9: - 09:87:ff:40:d3:90:58:5b:9c:fa:5b:d5:46:b3:17: - 7c:e2:6f:9c:26:d1:18:18:0d:5a:3e:7f:7f:70:ca: - ee:f5:e3:b7:8c:9c:b7:9d:72:ad:cb:1b:42:3f:21: - 98:29:0f:9e:83:db:e0:54:4c:24:54:fc:84:b8:53: - 92:ed:26:d6:4a:f6:10:c5:7e:1c:5c:dc:3b:b2:eb: - 90:4c:a6:93:91:75:9c:b3:91:95:d2:6d:7c:97:3f: - 69:fc:16:86:9e:c9:30:f2:85:64:a1:88:7b:c0:d3: - 28:67:c1:e6:51:84:00:5b:ed:12:e5:5a:8f:4a:14: - 22:39:0f:1b:76:5f:3f:87:91:55:d9:39:91:50:41: - 98:2d - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - 19:A2:E3:C8:BC:6D:CA:84:54:09:B3:67:4D:3E:60:CF:C4:78:38:95 - X509v3 Authority Key Identifier: - 55:D5:CD:87:69:64:E7:5F:FA:84:C9:B3:D1:9F:8E:A4:87:BC:F9:FD - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 95:78:6d:c2:94:1d:1d:55:7f:91:01:57:a8:d6:9c:28:c2:13: - 26:b7:25:67:f3:ea:28:be:99:e8:fb:9b:12:f1:90:86:a8:c9: - b3:db:14:10:d8:cf:67:75:cc:f9:5e:e8:a0:f8:0e:dc:fe:de: - 78:13:63:b3:66:a5:a6:0e:2b:9b:8c:54:13:f0:14:de:26:55: - 38:73:cf:6a:37:10:dd:3c:07:5a:c3:6f:cd:c4:96:ee:bf:8c: - 35:bf:c6:9c:97:21:98:e0:5e:94:61:0d:3d:5c:f0:83:ce:29: - c0:2b:bf:b9:87:b8:c2:d1:b1:60:72:9a:ff:e6:8b:6b:89:e7: - db:2d:56:d8:a6:08:9c:6c:48:23:a4:da:d5:d7:17:b0:ef:4e: - ea:c2:df:ce:aa:dc:d7:12:4b:93:88:e5:d3:81:b7:8c:98:03: - 51:2c:11:6b:23:07:5c:60:07:df:93:30:53:d6:6d:a8:cc:dd: - ad:00:4b:e8:80:1b:71:1f:6c:51:32:01:f9:f5:f2:91:8e:b3: - d4:13:26:b0:e3:6c:fa:64:b0:94:af:e7:12:b5:b9:7a:4c:20: - 67:6e:bb:e7:c5:73:97:39:fe:1e:c9:0e:17:33:45:5b:90:f0: - da:6d:a8:49:cf:29:de:0a:cb:ac:0c:d0:59:0a:a5:d1:c8:0e: - 19:96:2d:63 ------BEGIN CERTIFICATE----- -MIIDFDCCAfygAwIBAgIBATANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMjMwNjAxMTEyNzAwWhcNMzMwNTI5MTEyNzAwWjAfMR0wGwYD -VQQDDBRUZXN0IEludGVybWVkaWF0ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBALfpu/vdyfy+XKeK7dDG+Ikz2KeB24VD3bpGfipEdliB+R3nAhwR -jhMsUck2S6mP0qfQLQpuFjMIpTdudVYScG1RDoOmTJG5dFBzxjq/gg2K8t+c3aTq -Qj7rBEoiRNAbKg3WGPaxlXOP+OXEVv9cMmpa7EKTeRipCYf/QNOQWFuc+lvVRrMX -fOJvnCbRGBgNWj5/f3DK7vXjt4yct51yrcsbQj8hmCkPnoPb4FRMJFT8hLhTku0m -1kr2EMV+HFzcO7LrkEymk5F1nLORldJtfJc/afwWhp7JMPKFZKGIe8DTKGfB5lGE -AFvtEuVaj0oUIjkPG3ZfP4eRVdk5kVBBmC0CAwEAAaNjMGEwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBmi48i8bcqEVAmzZ00+YM/E -eDiVMB8GA1UdIwQYMBaAFFXVzYdpZOdf+oTJs9GfjqSHvPn9MA0GCSqGSIb3DQEB -CwUAA4IBAQCVeG3ClB0dVX+RAVeo1pwowhMmtyVn8+oovpno+5sS8ZCGqMmz2xQQ -2M9ndcz5Xuig+A7c/t54E2OzZqWmDiubjFQT8BTeJlU4c89qNxDdPAdaw2/NxJbu -v4w1v8aclyGY4F6UYQ09XPCDzinAK7+5h7jC0bFgcpr/5otriefbLVbYpgicbEgj -pNrV1xew707qwt/OqtzXEkuTiOXTgbeMmANRLBFrIwdcYAffkzBT1m2ozN2tAEvo -gBtxH2xRMgH59fKRjrPUEyaw42z6ZLCUr+cStbl6TCBnbrvnxXOXOf4eyQ4XM0Vb -kPDabahJzyneCsusDNBZCqXRyA4Zli1j ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/cronet-quic-leaf-cert.key b/src/pki/testdata/ssl/certificates/cronet-quic-leaf-cert.key Binary files differdeleted file mode 100644 index 78e562b..0000000 --- a/src/pki/testdata/ssl/certificates/cronet-quic-leaf-cert.key +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/cronet-quic-leaf-cert.key.pkcs8.pem b/src/pki/testdata/ssl/certificates/cronet-quic-leaf-cert.key.pkcs8.pem deleted file mode 100644 index a0c66c8..0000000 --- a/src/pki/testdata/ssl/certificates/cronet-quic-leaf-cert.key.pkcs8.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDyXoHdipEHF17c -ieBWNi1fgAETpmRIBHk8Xggjdb0S+dQA+0d7JREhEgsFJW6eBLlw3F2+w1mpVf88 -1JWwdznQMQu0yaTJUzAh6FjwcBz9JgckDa7JDnOZPujLy1SQrkmQkInB04Ij17Xd -Kwp30BDHb3G5HNQLOfeNykaU1MuTNSidNpDPqKzlcOhmFntai5/E6NDi3od7b/oN -gZDiEzSlu1hyHfFRHJ1MVVDlmCG/qbOL/Oh0MDL4gWywsPQLFpTYrxiqAwmkdy/t -2dnds4Qfpln3uqcWsjji9Me8FuaYRoLRzvZFuQy58ZidkjYzzD8IgAIlmqeLyi6r -jn9EXr6bAgMBAAECggEAYptnu6I+KgPsoM5pmrm1ERcrmPqH7zL+vjxFlGO5FqjV -A8c4CFaG1w0XtbLKg/jJF61YaJ3i8z2dN/sHocGIIHdr21R0ukIhoZH96Wi7qpTX -r+fvNjauemk5XnytvaVjIbFkkprCZmHDSKXTvvZEdVeWjak4bg7Z9HKY78F5x7w8 -x4aChtcWo6bsB8N2oQxsGYHew9v7KKNUiuqXMnvBSSnH/GOCwsYzlLfFCjhOdOrT -7/J3VhtcP/7zMCARUosteOyjK8Mr8mt9KNNRjs1b0A1JU6yPdqsmkjEaYeeW/7K8 -SkxEzXwBJ9iBKPpVsAix25JCBxBpfDg7GYu0XGpcyQKBgQD5GMU8E6T5HOtB053C -FR9ooMPLtKzCCW52nGZnXn4KfMTppGyl6uKmxj5adUVIOkzWwadGBSUDmj3BEW6F -Tch/TbaPS2Mcsn7Vs9v9ZgzB4zJ2R0x0LJkkSncGy36uAQkdn/w7DyNru9Y7AelI -fS2VM4SQDgNE2YVmOhbz9vcfeQKBgQD5FgHymkUogvr9P90JluNNPSfnG4NWa+Fn -zq/oH+2X6VNcX1n69olmP4v4IirCKMMGWKS+xBplBVFExiMJj8RNhrAMDTzDUsip -rrtsJHo/KsL63xuEcLlcDb0Z7YvolOs9CtZQ/RNUmQeD5wE/dDR8RaGbWtGxWjli -I/MBkDFlswKBgQDaWQsy4SlgMChMGFoV8XwJs7pNSr+QisHoeKoO/DZRrRLSlw2h -1qX8eJPZqSgk6u3F5hRhfUr3wHFXVpdhhFA2vwFC1Fs5oYEqhDFXCugt4KCwK0lq -IFnRBPEW5LPThRbfgAiSIG/1FL7yFHfP0eJuAa22tIHLDT0w4cSS762pSQKBgQDC -vWgManyDbdQZR2Li6msPqi6WSzZlzLZP2JJC4yN4z1zzLUFGKpXFsQ0XlG7lmcTQ -I2G6G8ufC4c8Q8SE5zfMfO8KnRbShtiHgSrbI7HHzQDf7qqu4wqoY71ilgv6bON1 -uBFTBGmmjHYJtAOPvqSCPFZbBahIBogyqHSG1lsobQKBgQDTHrF6X0VDkR8V6rZg -fhxFcOf9zkZEKOFP2aWQ0s3s5N/QEeaIiWLCJu8yLxCe15WzaHSl0iR/piwplRhC -nqPufl86Yn6ztL1nI7Y9O/sCc0HBzAAntLW/L+ZCeqm28BWHCuMGySc/fUVUV04w -lUGD7/W2H+/yr/TZOqXZY1ZVHw== ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/cronet-quic-root.pem b/src/pki/testdata/ssl/certificates/cronet-quic-root.pem deleted file mode 100644 index 1d22b86..0000000 --- a/src/pki/testdata/ssl/certificates/cronet-quic-root.pem +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC/jCCAeagAwIBAgIUXOi6XoxnMUjJg4jeOwRhsdqEqEQwDQYJKoZIhvcNAQEL -BQAwFzEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTIzMDYwMTExMjcwMFoXDTMz -MDUyOTExMjcwMFowFzEVMBMGA1UEAwwMVGVzdCBSb290IENBMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl9xCMPMIvfmJWz25AG/VtgWbqNs67HXQbXWf -pDF2wjQpHVOYbfl7Zgly5O+5es1aUbJaGyZ9G6xuYSXKFnnYLoP7M86O05fQQBAj -K+IE5nO6136ksCAfxCFTFfn4vhPvK8Vba5rqox4WeIXYKvHYSoiHz0ELrnFOHcyN -Innyze7bLtkMCA1ShHpmvDCR+U3Uj6JwOfoirn29jjU/48/ORha7dcJYtYXk2eGo -RJfrtIx20tXAaKaGnXOCGYbEVXTeQkQPqKFVzqP7+KYS/Y8eNFV35ugpLNES+44T -bQ2QruTZdrNRjJkEoyiB/E53a0OUltB/R7Z0L0xstnKfsAf3OwIDAQABo0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUVdXNh2lk -51/6hMmz0Z+OpIe8+f0wDQYJKoZIhvcNAQELBQADggEBADNg7G8n6DUrQ5doXzm9 -kOp5siX6iPs0zFReXKhIT1Gef63l3tb7AdPedF03aj9XkUt0shhNOGG5SK2k5KBQ -MJc9muYRCAyo2xMr3rFUQdI5B51SCy5HeAMralgTHXN0Hv+TH04YfRrACVmr+5ke -pH3bF1gYaT+Zy5/pHJnV5lcwS6/H44g9XXWIopjWCwbfzKxIuWofqL4fiToPSIYu -MCUI4bKZipcJT5O6rdz/S9lbgYVjOJ4HAoT2icNQqNMMfULKevmF8SdJzfNd35yn -tAKTROhIE2aQRVCclrjo/T3eyjWGGoJlGmxKbeCf/rXzcn1BRtk/UzLnbUFFlg5l -axw= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/cross-signed-leaf.pem b/src/pki/testdata/ssl/certificates/cross-signed-leaf.pem deleted file mode 100644 index 0e5bda1..0000000 --- a/src/pki/testdata/ssl/certificates/cross-signed-leaf.pem +++ /dev/null @@ -1,82 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Dup-Hash Root CA - Validity - Not Before: Mar 31 04:22:42 2015 GMT - Not After : Mar 28 04:22:42 2025 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b2:98:4c:42:b8:4a:63:4e:e0:2d:ec:eb:57:b1: - 88:9f:c4:13:f0:7f:41:0f:c8:39:b3:1e:63:6b:67: - 4c:e7:07:8e:f5:a4:62:b0:4b:dd:75:5d:50:16:54: - fe:e5:ae:b1:76:aa:ba:c4:f3:55:79:b3:b4:fc:59: - 23:b3:09:2e:e8:ac:eb:cd:16:6f:c9:5b:88:c4:d0: - 94:29:05:0f:1b:68:cf:cd:80:b9:45:c7:37:4b:84: - ff:e5:a8:49:8d:5d:2f:59:ae:f6:ee:bb:5a:94:7b: - 3b:25:62:c4:3f:ab:8b:9e:58:af:31:ca:9e:26:9a: - 03:20:87:7b:c2:42:19:65:86:d8:7a:b3:dd:91:57: - f5:d2:4e:d4:20:2b:1d:ce:cb:25:e5:45:6e:e1:35: - 12:7b:bb:d7:23:c2:e9:a6:cf:f6:32:73:cf:e0:5b: - 75:73:6f:74:b5:7e:87:ce:98:ab:e8:b9:05:f6:f1: - 6c:94:26:62:f3:8c:cf:e1:ba:17:fc:a9:e4:fb:2f: - 1f:8f:ce:91:be:72:ba:e3:d0:a6:44:2e:89:7e:92: - 15:eb:c2:2d:a2:13:0a:83:6b:6c:09:3a:9c:9c:68: - 63:6b:16:7f:a3:d0:07:f9:8b:c3:bf:43:37:8d:70: - bc:a9:cf:a4:0d:c4:72:a1:c6:6b:b9:a9:bd:a9:8f: - 43:67 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 78:F8:09:99:91:78:5B:B0:8B:60:B2:C7:41:B1:0C:26:29:0F:ED:91 - X509v3 Authority Key Identifier: - keyid:C2:03:2C:7F:26:8E:42:C0:C9:99:2A:10:75:E6:13:94:12:60:48:E1 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 9c:6a:25:23:9f:10:dd:14:9c:37:d4:71:dd:86:d0:0b:5b:d7: - d0:2c:fc:a6:ec:c1:7a:aa:86:a4:87:ac:a3:5a:a7:a6:9c:8a: - 57:3d:2a:60:ca:2e:47:47:ce:12:30:1e:59:d5:e7:be:9f:be: - 89:44:8c:2e:ad:2a:62:da:07:13:84:d7:4f:a5:f8:fe:07:51: - 3a:32:6b:28:98:cf:1c:90:6d:26:64:d7:98:e5:c8:0b:03:91: - 3b:48:60:93:5f:67:b0:7a:08:93:b7:37:f9:56:e4:06:4d:fd: - ff:38:d2:72:d4:15:d4:6d:4f:6a:46:18:d9:24:ae:92:c8:65: - ef:49:f8:f7:4e:3b:2f:fa:f8:9a:a9:af:29:41:fb:cf:b6:36: - 41:5f:51:bb:40:e6:43:05:fd:ca:5f:b3:91:50:60:48:13:c5: - bf:f8:30:c5:1d:97:a6:d6:6b:77:0d:ff:9d:01:b1:8a:5e:b4: - 26:fd:42:f8:63:c1:cf:44:d0:09:d1:e4:ff:9a:75:7b:5a:32: - 7e:f9:64:12:f0:10:83:62:81:af:4c:ee:0c:25:c0:a8:b4:26: - a2:35:15:04:98:52:49:3e:ea:01:90:66:90:04:55:5e:5d:7d: - f8:4e:40:78:3c:b3:a0:d8:dc:5d:ff:0b:ed:d6:4e:2e:94:f7: - ac:84:b3:d0 ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBVUZXN0 -IER1cC1IYXNoIFJvb3QgQ0EwHhcNMTUwMzMxMDQyMjQyWhcNMjUwMzI4MDQyMjQy -WjBgMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN -TW91bnRhaW4gVmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAu -MC4xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsphMQrhKY07gLezr -V7GIn8QT8H9BD8g5sx5ja2dM5weO9aRisEvddV1QFlT+5a6xdqq6xPNVebO0/Fkj -swku6KzrzRZvyVuIxNCUKQUPG2jPzYC5Rcc3S4T/5ahJjV0vWa727rtalHs7JWLE -P6uLnlivMcqeJpoDIId7wkIZZYbYerPdkVf10k7UICsdzssl5UVu4TUSe7vXI8Lp -ps/2MnPP4Ft1c290tX6Hzpir6LkF9vFslCZi84zP4boX/Knk+y8fj86RvnK649Cm -RC6JfpIV68ItohMKg2tsCTqcnGhjaxZ/o9AH+YvDv0M3jXC8qc+kDcRyocZruam9 -qY9DZwIDAQABo4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUePgJmZF4W7CL -YLLHQbEMJikP7ZEwHwYDVR0jBBgwFoAUwgMsfyaOQsDJmSoQdeYTlBJgSOEwHQYD -VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJ -KoZIhvcNAQELBQADggEBAJxqJSOfEN0UnDfUcd2G0Atb19As/KbswXqqhqSHrKNa -p6acilc9KmDKLkdHzhIwHlnV576fvolEjC6tKmLaBxOE10+l+P4HUToyayiYzxyQ -bSZk15jlyAsDkTtIYJNfZ7B6CJO3N/lW5AZN/f840nLUFdRtT2pGGNkkrpLIZe9J -+PdOOy/6+JqprylB+8+2NkFfUbtA5kMF/cpfs5FQYEgTxb/4MMUdl6bWa3cN/50B -sYpetCb9Qvhjwc9E0AnR5P+adXtaMn75ZBLwEINiga9M7gwlwKi0JqI1FQSYUkk+ -6gGQZpAEVV5dffhOQHg8s6DY3F3/C+3WTi6U96yEs9A= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/cross-signed-root-md5.pem b/src/pki/testdata/ssl/certificates/cross-signed-root-md5.pem deleted file mode 100644 index 1b94975..0000000 --- a/src/pki/testdata/ssl/certificates/cross-signed-root-md5.pem +++ /dev/null @@ -1,75 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 10718220368358975735 (0x94bec4a33064a8f7) - Signature Algorithm: md5WithRSAEncryption - Issuer: CN=Test Dup-Hash Root CA - Validity - Not Before: Mar 31 04:22:42 2015 GMT - Not After : Mar 28 04:22:42 2025 GMT - Subject: CN=Test Dup-Hash Root CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:bf:c1:3a:b7:c8:7a:cc:0c:62:28:82:1d:5b:8d: - ca:14:09:aa:d2:80:fe:07:19:88:ff:1c:42:5f:39: - 5c:97:5d:34:7a:07:44:4d:78:6c:bf:7f:c3:b2:99: - 85:cd:21:94:a8:bf:f9:4e:51:5e:37:bf:19:31:30: - d4:c7:a3:f4:30:b1:48:c2:c3:b1:1b:ef:cd:0d:1b: - 7c:6d:3b:0c:18:2b:fe:c7:73:89:d2:15:64:c1:92: - 2c:23:33:cf:d4:25:71:f4:80:c7:23:4b:6e:68:80: - f6:11:c8:19:11:ff:97:6d:f0:d0:37:a2:eb:ff:88: - 93:60:59:aa:ea:b8:d1:b7:16:50:c1:0e:9a:aa:a1: - 1d:89:6e:88:0a:4b:fd:3d:69:4b:28:52:d4:4f:d0: - d3:47:a6:ca:7e:96:95:15:ca:8f:e1:39:0c:66:d8: - 87:8f:67:93:61:56:6c:28:ee:09:1f:64:8c:a3:e1: - 00:ae:d3:97:4a:5c:dd:ba:b0:70:05:5e:81:25:c6: - 79:05:56:87:d6:bf:cc:07:94:99:97:c7:b1:4b:5e: - d4:1c:52:07:dc:55:e5:ad:1c:34:31:41:b0:00:c1: - 65:22:73:79:35:0f:5d:9c:5b:9f:c9:b4:43:f0:ec: - 77:c3:8f:93:3d:d3:e2:90:07:5b:e2:51:d4:81:4f: - 45:85 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - C2:03:2C:7F:26:8E:42:C0:C9:99:2A:10:75:E6:13:94:12:60:48:E1 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: md5WithRSAEncryption - 3a:35:20:4c:8b:71:aa:d8:c4:d8:90:55:df:e1:f2:b7:e2:08: - 47:30:65:f4:e9:49:e9:54:20:8d:a9:97:52:70:5e:b5:6f:3e: - 31:12:0c:bc:ea:42:db:38:70:e6:05:03:78:6e:2d:21:a8:04: - ec:70:6b:c7:aa:ea:e6:ab:26:5b:5a:b2:a5:4a:44:48:fa:20: - 42:99:bb:e3:96:60:a9:1a:09:51:54:72:5c:27:05:59:1a:09: - f8:94:77:3c:ee:ab:08:68:e2:6d:ec:fb:74:5e:ec:f0:bf:76: - cd:6e:4a:9c:a1:7b:91:fc:8d:e9:1e:09:7e:60:8e:91:69:84: - 97:52:63:a0:0b:d6:ba:ec:48:c4:b3:c2:e2:fe:2d:0e:ef:48: - f3:f9:c3:c2:bd:40:e2:95:82:20:c9:63:81:35:b7:1e:18:08: - c0:38:bd:6c:df:e0:67:64:a4:c6:b2:93:1d:c5:c8:19:59:ab: - e0:fb:67:bc:dd:bd:4d:18:5f:04:de:a9:a5:c6:7e:fc:41:f6: - 53:07:91:1b:01:3c:cb:41:91:88:af:3f:86:b0:17:ab:40:b3: - 85:4a:88:12:3a:dc:1f:ac:c5:4c:0a:46:22:cb:98:8b:a7:85: - a7:c7:a4:44:69:82:60:93:dc:22:d5:55:5f:16:8f:ef:4f:ac: - f8:e6:84:4f ------BEGIN CERTIFICATE----- -MIIDBTCCAe2gAwIBAgIJAJS+xKMwZKj3MA0GCSqGSIb3DQEBBAUAMCAxHjAcBgNV -BAMMFVRlc3QgRHVwLUhhc2ggUm9vdCBDQTAeFw0xNTAzMzEwNDIyNDJaFw0yNTAz -MjgwNDIyNDJaMCAxHjAcBgNVBAMMFVRlc3QgRHVwLUhhc2ggUm9vdCBDQTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/BOrfIeswMYiiCHVuNyhQJqtKA -/gcZiP8cQl85XJddNHoHRE14bL9/w7KZhc0hlKi/+U5RXje/GTEw1Mej9DCxSMLD -sRvvzQ0bfG07DBgr/sdzidIVZMGSLCMzz9QlcfSAxyNLbmiA9hHIGRH/l23w0Dei -6/+Ik2BZquq40bcWUMEOmqqhHYluiApL/T1pSyhS1E/Q00emyn6WlRXKj+E5DGbY -h49nk2FWbCjuCR9kjKPhAK7Tl0pc3bqwcAVegSXGeQVWh9a/zAeUmZfHsUte1BxS -B9xV5a0cNDFBsADBZSJzeTUPXZxbn8m0Q/Dsd8OPkz3T4pAHW+JR1IFPRYUCAwEA -AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUwgMsfyaOQsDJmSoQdeYT -lBJgSOEwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBAUAA4IBAQA6NSBMi3Gq -2MTYkFXf4fK34ghHMGX06UnpVCCNqZdScF61bz4xEgy86kLbOHDmBQN4bi0hqATs -cGvHqurmqyZbWrKlSkRI+iBCmbvjlmCpGglRVHJcJwVZGgn4lHc87qsIaOJt7Pt0 -Xuzwv3bNbkqcoXuR/I3pHgl+YI6RaYSXUmOgC9a67EjEs8Li/i0O70jz+cPCvUDi -lYIgyWOBNbceGAjAOL1s3+BnZKTGspMdxcgZWavg+2e83b1NGF8E3qmlxn78QfZT -B5EbATzLQZGIrz+GsBerQLOFSogSOtwfrMVMCkYiy5iLp4Wnx6REaYJgk9wi1VVf -Fo/vT6z45oRP ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/cross-signed-root-sha256.pem b/src/pki/testdata/ssl/certificates/cross-signed-root-sha256.pem deleted file mode 100644 index 2ea6280..0000000 --- a/src/pki/testdata/ssl/certificates/cross-signed-root-sha256.pem +++ /dev/null @@ -1,75 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 14676396172197038779 (0xcbad088f4ab50abb) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Dup-Hash Root CA - Validity - Not Before: Mar 31 04:22:42 2015 GMT - Not After : Mar 28 04:22:42 2025 GMT - Subject: CN=Test Dup-Hash Root CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:bf:c1:3a:b7:c8:7a:cc:0c:62:28:82:1d:5b:8d: - ca:14:09:aa:d2:80:fe:07:19:88:ff:1c:42:5f:39: - 5c:97:5d:34:7a:07:44:4d:78:6c:bf:7f:c3:b2:99: - 85:cd:21:94:a8:bf:f9:4e:51:5e:37:bf:19:31:30: - d4:c7:a3:f4:30:b1:48:c2:c3:b1:1b:ef:cd:0d:1b: - 7c:6d:3b:0c:18:2b:fe:c7:73:89:d2:15:64:c1:92: - 2c:23:33:cf:d4:25:71:f4:80:c7:23:4b:6e:68:80: - f6:11:c8:19:11:ff:97:6d:f0:d0:37:a2:eb:ff:88: - 93:60:59:aa:ea:b8:d1:b7:16:50:c1:0e:9a:aa:a1: - 1d:89:6e:88:0a:4b:fd:3d:69:4b:28:52:d4:4f:d0: - d3:47:a6:ca:7e:96:95:15:ca:8f:e1:39:0c:66:d8: - 87:8f:67:93:61:56:6c:28:ee:09:1f:64:8c:a3:e1: - 00:ae:d3:97:4a:5c:dd:ba:b0:70:05:5e:81:25:c6: - 79:05:56:87:d6:bf:cc:07:94:99:97:c7:b1:4b:5e: - d4:1c:52:07:dc:55:e5:ad:1c:34:31:41:b0:00:c1: - 65:22:73:79:35:0f:5d:9c:5b:9f:c9:b4:43:f0:ec: - 77:c3:8f:93:3d:d3:e2:90:07:5b:e2:51:d4:81:4f: - 45:85 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - C2:03:2C:7F:26:8E:42:C0:C9:99:2A:10:75:E6:13:94:12:60:48:E1 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - b9:b4:6f:2a:c5:07:99:6c:be:11:32:7c:17:eb:d7:00:54:25: - 6a:24:65:0a:11:09:ff:d5:25:46:0b:07:f4:8c:f5:63:77:4b: - 5e:12:50:d4:1a:c1:57:44:d4:2b:de:a3:ce:75:29:1b:76:1a: - ed:5f:86:af:6c:be:aa:a0:66:e2:01:43:c6:0b:f4:2b:65:bc: - c5:79:83:71:05:d0:d7:57:2a:7f:32:30:4b:9c:18:81:a6:9e: - a2:02:b9:71:62:fe:f8:f0:86:59:0f:59:42:e7:87:94:29:39: - 7f:1d:bd:b1:b5:76:4e:41:47:9e:20:39:3d:60:c1:2b:7f:ec: - d6:47:e7:45:df:08:16:fa:f9:ff:90:c9:b1:94:e6:e8:60:b4: - 90:09:e0:a8:0f:96:c6:dc:9e:da:82:2d:d2:19:da:db:14:ec: - f3:39:20:da:f8:b4:31:45:36:77:c6:07:e9:d6:a1:0c:36:f7: - c5:66:95:7d:17:10:d2:b4:10:ac:f2:84:f2:81:f9:60:04:cc: - 9e:08:bd:9c:bd:0b:b5:78:8e:f3:5f:fd:7b:8e:e8:82:08:4f: - 64:69:c9:0f:a0:06:50:b8:92:a9:f2:ca:17:2d:19:fe:9a:fd: - c9:2a:c3:93:58:96:c6:9a:4a:a9:17:c9:ff:c0:3b:02:69:30: - e4:3a:6d:71 ------BEGIN CERTIFICATE----- -MIIDBTCCAe2gAwIBAgIJAMutCI9KtQq7MA0GCSqGSIb3DQEBCwUAMCAxHjAcBgNV -BAMMFVRlc3QgRHVwLUhhc2ggUm9vdCBDQTAeFw0xNTAzMzEwNDIyNDJaFw0yNTAz -MjgwNDIyNDJaMCAxHjAcBgNVBAMMFVRlc3QgRHVwLUhhc2ggUm9vdCBDQTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/BOrfIeswMYiiCHVuNyhQJqtKA -/gcZiP8cQl85XJddNHoHRE14bL9/w7KZhc0hlKi/+U5RXje/GTEw1Mej9DCxSMLD -sRvvzQ0bfG07DBgr/sdzidIVZMGSLCMzz9QlcfSAxyNLbmiA9hHIGRH/l23w0Dei -6/+Ik2BZquq40bcWUMEOmqqhHYluiApL/T1pSyhS1E/Q00emyn6WlRXKj+E5DGbY -h49nk2FWbCjuCR9kjKPhAK7Tl0pc3bqwcAVegSXGeQVWh9a/zAeUmZfHsUte1BxS -B9xV5a0cNDFBsADBZSJzeTUPXZxbn8m0Q/Dsd8OPkz3T4pAHW+JR1IFPRYUCAwEA -AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUwgMsfyaOQsDJmSoQdeYT -lBJgSOEwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQC5tG8qxQeZ -bL4RMnwX69cAVCVqJGUKEQn/1SVGCwf0jPVjd0teElDUGsFXRNQr3qPOdSkbdhrt -X4avbL6qoGbiAUPGC/QrZbzFeYNxBdDXVyp/MjBLnBiBpp6iArlxYv748IZZD1lC -54eUKTl/Hb2xtXZOQUeeIDk9YMErf+zWR+dF3wgW+vn/kMmxlOboYLSQCeCoD5bG -3J7agi3SGdrbFOzzOSDa+LQxRTZ3xgfp1qEMNvfFZpV9FxDStBCs8oTygflgBMye -CL2cvQu1eI7zX/17juiCCE9kackPoAZQuJKp8soXLRn+mv3JKsOTWJbGmkqpF8n/ -wDsCaTDkOm1x ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ct-test-embedded-cert.pem b/src/pki/testdata/ssl/certificates/ct-test-embedded-cert.pem deleted file mode 100644 index ff4875d..0000000 --- a/src/pki/testdata/ssl/certificates/ct-test-embedded-cert.pem +++ /dev/null @@ -1,126 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 7 (0x7) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:be:ef:98:e7:c2:68:77:ae:38:5f:75:32:5a:0c: - 1d:32:9b:ed:f1:8f:aa:f4:d7:96:bf:04:7e:b7:e1: - ce:15:c9:5b:a2:f8:0e:e4:58:bd:7d:b8:6f:8a:4b: - 25:21:91:a7:9b:d7:00:c3:8e:9c:03:89:b4:5c:d4: - dc:9a:12:0a:b2:1e:0c:b4:1c:d0:e7:28:05:a4:10: - cd:9c:5b:db:5d:49:27:72:6d:af:17:10:f6:01:87: - 37:7e:a2:5b:1a:1e:39:ee:d0:b8:81:19:dc:15:4d: - c6:8f:7d:a8:e3:0c:af:15:8a:33:e6:c9:50:9f:4a: - 05:b0:14:09:ff:5d:d8:7e:b5 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 20:31:54:1A:F2:5C:05:FF:D8:65:8B:68:43:79:4F:5E:90:36:F7:B4 - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:FALSE - 1.3.6.1.4.1.11129.2.4.2: - .z.x.v........RG.ah2].\yY..........?t.d...=.'.......G0E. H/gQ.5..T6...d.=..AB...E0(....>..!.....:.r.....jh.S.}.A.}....Q..... - Signature Algorithm: sha1WithRSAEncryption - 8a:0c:4b:ef:09:9d:47:92:79:af:a0:a2:8e:68:9f:91:e1:c4: - 42:1b:e2:d2:69:a2:ea:6c:a4:e8:21:5d:de:dd:ca:15:04:a1: - 1e:7c:87:c4:b7:7e:80:f0:e9:79:03:52:68:f2:7c:a2:0e:16: - 68:04:ae:55:6f:31:69:81:f9:6a:39:4a:b7:ab:fd:3e:25:5a: - c0:04:45:13:fe:76:57:0c:67:95:ab:e4:70:31:33:d3:03:f8: - 9f:3a:fa:6b:bc:fc:51:73:19:df:d9:5b:93:42:41:21:1f:63: - 40:35:c3:d0:78:30:7a:68:c6:07:5a:2e:20:c8:9f:36:b8:91: - 0c:a0 ------BEGIN CERTIFICATE----- -MIIDWTCCAsKgAwIBAgIBBzANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMFIxCzAJBgNVBAYTAkdCMSEwHwYDVQQKExhDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kxDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGfMA0G -CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+75jnwmh3rjhfdTJaDB0ym+3xj6r015a/ -BH634c4VyVui+A7kWL19uG+KSyUhkaeb1wDDjpwDibRc1NyaEgqyHgy0HNDnKAWk -EM2cW9tdSSdyba8XEPYBhzd+olsaHjnu0LiBGdwVTcaPfajjDK8VijPmyVCfSgWw -FAn/Xdh+tQIDAQABo4IBOjCCATYwHQYDVR0OBBYEFCAxVBryXAX/2GWLaEN5T16Q -Nve0MH0GA1UdIwR2MHSAFF+diA3Ic+ZU1PgN2OawwSS0R8NVoVmkVzBVMQswCQYD -VQQGEwJHQjEkMCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4w -DAYDVQQIEwVXYWxlczEQMA4GA1UEBxMHRXJ3IFdlboIBADAJBgNVHRMEAjAAMIGK -BgorBgEEAdZ5AgQCBHwEegB4AHYA3xwuwRUAlFJHqWFoMl3cXHlZ6PfG04j8AC4L -vT9012QAAAE92yffkwAABAMARzBFAiBIL2dRrzXbplQ2vh/WZA89v5pBQpSVkkUw -KI+j5eI+BgIhAOTtwNs6xXKx4vXoq2poBlOYfc9BAn3+/6EFUZ2J7b8IMA0GCSqG -SIb3DQEBBQUAA4GBAIoMS+8JnUeSea+goo5on5HhxEIb4tJpoupspOghXd7dyhUE -oR58h8S3foDw6XkDUmjyfKIOFmgErlVvMWmB+Wo5Srer/T4lWsAERRP+dlcMZ5Wr -5HAxM9MD+J86+mu8/FFzGd/ZW5NCQSEfY0A1w9B4MHpoxgdaLiDInza4kQyg ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 0 (0x0) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:d5:8a:68:53:62:10:a2:71:19:93:6e:77:83:21: - 18:1c:2a:40:13:c6:d0:7b:8c:76:eb:91:57:d3:d0: - fb:4b:3b:51:6e:ce:cb:d1:c9:8d:91:c5:2f:74:3f: - ab:63:5d:55:09:9c:d1:3a:ba:f3:1a:e5:41:44:24: - 51:a7:4c:78:16:f2:24:3c:f8:48:cf:28:31:cc:e6: - 7b:a0:4a:5a:23:81:9f:3c:ba:37:e6:24:d9:c3:bd: - b2:99:b8:39:dd:fe:26:31:d2:cb:3a:84:fc:7b:b2: - b5:c5:2f:cf:c1:4f:ff:40:6f:5c:d4:46:69:cb:b2: - f7:cf:df:86:fb:6a:b9:d1:b1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 06:08:cc:4a:6d:64:f2:20:5e:14:6c:04:b2:76:f9:2b:0e:fa: - 94:a5:da:f2:3a:fc:38:06:60:6d:39:90:d0:a1:ea:23:3d:40: - 29:57:69:46:3b:04:66:61:e7:fa:1d:17:99:15:20:9a:ea:2e: - 0a:77:51:76:41:12:27:d7:c0:03:07:c7:47:0e:61:58:4f:d7: - 33:42:24:72:7f:51:d6:90:bc:47:a9:df:35:4d:b0:f6:eb:25: - 95:5d:e1:89:3c:4d:d5:20:2b:24:a2:f3:e4:40:d2:74:b5:4e: - 1b:d3:76:26:9c:a9:62:89:b7:6e:ca:a4:10:90:e1:4f:3b:0a: - 94:2e ------BEGIN CERTIFICATE----- -MIIC0DCCAjmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMFUxCzAJBgNVBAYTAkdCMSQwIgYDVQQKExtDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kgQ0ExDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGf -MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVimhTYhCicRmTbneDIRgcKkATxtB7 -jHbrkVfT0PtLO1FuzsvRyY2RxS90P6tjXVUJnNE6uvMa5UFEJFGnTHgW8iQ8+EjP -KDHM5nugSlojgZ88ujfmJNnDvbKZuDnd/iYx0ss6hPx7srXFL8/BT/9Ab1zURmnL -svfP34b7arnRsQIDAQABo4GvMIGsMB0GA1UdDgQWBBRfnYgNyHPmVNT4DdjmsMEk -tEfDVTB9BgNVHSMEdjB0gBRfnYgNyHPmVNT4DdjmsMEktEfDVaFZpFcwVTELMAkG -A1UEBhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBDQTEO -MAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQAwDAYDVR0TBAUwAwEB -/zANBgkqhkiG9w0BAQUFAAOBgQAGCMxKbWTyIF4UbASydvkrDvqUpdryOvw4BmBt -OZDQoeojPUApV2lGOwRmYef6HReZFSCa6i4Kd1F2QRIn18ADB8dHDmFYT9czQiRy -f1HWkLxHqd81TbD26yWVXeGJPE3VICskovPkQNJ0tU4b03YmnKliibduyqQQkOFP -OwqULg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ct-test-embedded-with-intermediate-chain.pem b/src/pki/testdata/ssl/certificates/ct-test-embedded-with-intermediate-chain.pem deleted file mode 100644 index 2224461..0000000 --- a/src/pki/testdata/ssl/certificates/ct-test-embedded-with-intermediate-chain.pem +++ /dev/null @@ -1,188 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency Intermediate CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:bb:27:2b:26:e5:de:b5:45:9d:4a:cc:a0:27:e8: - f1:2a:4d:83:9a:c3:73:0a:6a:10:9f:f7:e2:54:98: - dd:bd:3f:18:95:d0:8b:a4:1f:8d:e3:49:67:a3:a0: - 86:ce:13:a9:0d:d5:ad:bb:54:18:4b:dc:08:e1:ac: - 78:26:ad:b8:dc:9c:71:7b:fd:7d:a5:b4:1b:4d:b1: - 73:6e:00:f1:da:c3:ce:c9:81:9c:cb:1a:28:ba:12: - 0b:02:0a:82:0e:94:0d:d6:1f:95:b5:43:2a:4b:c0: - 5d:08:18:f1:8c:e2:15:4e:b3:8d:2f:a7:d2:2d:72: - b9:76:e5:60:db:0c:7f:c7:7f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - B1:B1:48:E6:58:E7:03:F5:F7:F3:10:5F:20:B3:C3:84:D7:EF:F1:BF - X509v3 Authority Key Identifier: - keyid:96:55:08:05:02:78:47:9E:87:73:76:41:31:BC:14:3A:47:E2:29:AB - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:09 - - X509v3 Basic Constraints: - CA:FALSE - 1.3.6.1.4.1.11129.2.4.2: - .z.x.v........RG.ah2].\yY..........?t.d...=.'.......G0E.!...E..9-...W.....E.L..8V.......u.. ^&...."...)....4...O.......f...? - Signature Algorithm: sha1WithRSAEncryption - 0f:95:a5:b4:e1:28:a9:14:b1:e8:8b:e8:b3:29:64:22:1b:58: - f4:55:84:33:d0:20:a8:e2:46:cc:a6:5a:40:bc:bf:5f:2d:48: - 93:3e:bc:99:be:69:27:ca:75:64:72:fb:0b:dc:7f:50:5f:41: - f4:62:f2:bc:19:d0:b2:99:c9:90:91:8d:f8:82:0f:3d:31:db: - 37:97:9e:8b:ad:56:3b:17:f0:0a:e6:7b:0f:87:31:c1:06:c9: - 43:a7:3b:f5:36:af:16:8a:fe:21:ef:4a:df:ca:e1:9a:3c:c0: - 74:89:99:92:bf:50:6b:c5:ce:1d:ec:aa:f0:7f:fe:eb:c8:05: - c0:39 ------BEGIN CERTIFICATE----- -MIIDZjCCAs+gAwIBAgIBAjANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJHQjEx -MC8GA1UEChMoQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IEludGVybWVkaWF0ZSBD -QTEOMAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW4wHhcNMTIwNjAxMDAw -MDAwWhcNMjIwNjAxMDAwMDAwWjBSMQswCQYDVQQGEwJHQjEhMB8GA1UEChMYQ2Vy -dGlmaWNhdGUgVHJhbnNwYXJlbmN5MQ4wDAYDVQQIEwVXYWxlczEQMA4GA1UEBxMH -RXJ3IFdlbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuycrJuXetUWdSsyg -J+jxKk2DmsNzCmoQn/fiVJjdvT8YldCLpB+N40lno6CGzhOpDdWtu1QYS9wI4ax4 -Jq243Jxxe/19pbQbTbFzbgDx2sPOyYGcyxoouhILAgqCDpQN1h+VtUMqS8BdCBjx -jOIVTrONL6fSLXK5duVg2wx/x38CAwEAAaOCATowggE2MB0GA1UdDgQWBBSxsUjm -WOcD9ffzEF8gs8OE1+/xvzB9BgNVHSMEdjB0gBSWVQgFAnhHnodzdkExvBQ6R+Ip -q6FZpFcwVTELMAkGA1UEBhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5z -cGFyZW5jeSBDQTEOMAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQkw -CQYDVR0TBAIwADCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN8cLsEVAJRSR6lhaDJd -3Fx5Wej3xtOI/AAuC70/dNdkAAABPdsn4qQAAAQDAEcwRQIhAKbTRRfzOS2exdJX -rfHFl9xFvUzTtzhWxhap+5nlrnWoAiBeJsjRx+Ii/ozaKbrrBKg07pfTT9gXGPGq -4M1m9LipPzANBgkqhkiG9w0BAQUFAAOBgQAPlaW04SipFLHoi+izKWQiG1j0VYQz -0CCo4kbMplpAvL9fLUiTPryZvmknynVkcvsL3H9QX0H0YvK8GdCymcmQkY34gg89 -Mds3l56LrVY7F/AK5nsPhzHBBslDpzv1Nq8Wiv4h70rfyuGaPMB0iZmSv1Brxc4d -7Krwf/7ryAXAOQ== ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 9 (0x9) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency Intermediate CA, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:d7:6a:67:8d:11:6f:52:2e:55:ff:82:1c:90:64: - 25:08:b7:07:4b:14:d7:71:15:90:64:f7:92:7e:fd: - ed:b8:71:35:a1:36:5e:e7:de:18:cb:d5:ce:86:5f: - 86:0c:78:f4:33:b4:d0:d3:d3:40:77:02:e7:a3:ef: - 54:2b:1d:fe:9b:ba:a7:cd:f9:4d:c5:97:5f:c7:29: - f8:6f:10:5f:38:1b:24:35:35:cf:9c:80:0f:5c:a7: - 80:c1:d3:c8:44:00:ee:65:d1:6e:e9:cf:52:db:8a: - df:fe:50:f5:c4:93:35:0b:21:90:bf:50:d5:bc:36: - f3:ca:c5:a8:da:ae:92:cd:8b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 96:55:08:05:02:78:47:9E:87:73:76:41:31:BC:14:3A:47:E2:29:AB - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 22:06:da:b1:c6:6b:71:dc:e0:95:c3:f6:aa:2e:f7:2c:f7:76: - 1b:e7:ab:d7:fc:39:c3:1a:4c:fe:1b:d9:6d:67:34:ca:82:f2: - 2d:de:5a:0c:8b:bb:dd:82:5d:7b:6f:3e:76:12:ad:8d:b3:00: - a7:e2:11:69:88:60:23:26:22:84:c3:aa:5d:21:91:ef:da:10: - bf:92:35:d3:7b:3a:2a:34:0d:59:41:9b:94:a4:85:66:f3:fa: - c3:cd:8b:53:d5:a4:e9:82:70:ea:d2:97:b0:72:10:f9:ce:4a: - 21:38:b1:88:11:14:3b:93:fa:4e:7a:87:dd:37:e1:38:5f:2c: - 29:08 ------BEGIN CERTIFICATE----- -MIIC3TCCAkagAwIBAgIBCTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMGIxCzAJBgNVBAYTAkdCMTEwLwYDVQQKEyhDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kgSW50ZXJtZWRpYXRlIENBMQ4wDAYDVQQIEwVXYWxlczEQMA4GA1UE -BxMHRXJ3IFdlbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA12pnjRFvUi5V -/4IckGQlCLcHSxTXcRWQZPeSfv3tuHE1oTZe594Yy9XOhl+GDHj0M7TQ09NAdwLn -o+9UKx3+m7qnzflNxZdfxyn4bxBfOBskNTXPnIAPXKeAwdPIRADuZdFu6c9S24rf -/lD1xJM1CyGQv1DVvDbzysWo2q6SzYsCAwEAAaOBrzCBrDAdBgNVHQ4EFgQUllUI -BQJ4R56Hc3ZBMbwUOkfiKaswfQYDVR0jBHYwdIAUX52IDchz5lTU+A3Y5rDBJLRH -w1WhWaRXMFUxCzAJBgNVBAYTAkdCMSQwIgYDVQQKExtDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kgQ0ExDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuggEA -MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAIgbascZrcdzglcP2qi73 -LPd2G+er1/w5wxpM/hvZbWc0yoLyLd5aDIu73YJde28+dhKtjbMAp+IRaYhgIyYi -hMOqXSGR79oQv5I103s6KjQNWUGblKSFZvP6w82LU9Wk6YJw6tKXsHIQ+c5KITix -iBEUO5P6TnqH3TfhOF8sKQg= ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 0 (0x0) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:d5:8a:68:53:62:10:a2:71:19:93:6e:77:83:21: - 18:1c:2a:40:13:c6:d0:7b:8c:76:eb:91:57:d3:d0: - fb:4b:3b:51:6e:ce:cb:d1:c9:8d:91:c5:2f:74:3f: - ab:63:5d:55:09:9c:d1:3a:ba:f3:1a:e5:41:44:24: - 51:a7:4c:78:16:f2:24:3c:f8:48:cf:28:31:cc:e6: - 7b:a0:4a:5a:23:81:9f:3c:ba:37:e6:24:d9:c3:bd: - b2:99:b8:39:dd:fe:26:31:d2:cb:3a:84:fc:7b:b2: - b5:c5:2f:cf:c1:4f:ff:40:6f:5c:d4:46:69:cb:b2: - f7:cf:df:86:fb:6a:b9:d1:b1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 06:08:cc:4a:6d:64:f2:20:5e:14:6c:04:b2:76:f9:2b:0e:fa: - 94:a5:da:f2:3a:fc:38:06:60:6d:39:90:d0:a1:ea:23:3d:40: - 29:57:69:46:3b:04:66:61:e7:fa:1d:17:99:15:20:9a:ea:2e: - 0a:77:51:76:41:12:27:d7:c0:03:07:c7:47:0e:61:58:4f:d7: - 33:42:24:72:7f:51:d6:90:bc:47:a9:df:35:4d:b0:f6:eb:25: - 95:5d:e1:89:3c:4d:d5:20:2b:24:a2:f3:e4:40:d2:74:b5:4e: - 1b:d3:76:26:9c:a9:62:89:b7:6e:ca:a4:10:90:e1:4f:3b:0a: - 94:2e ------BEGIN CERTIFICATE----- -MIIC0DCCAjmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMFUxCzAJBgNVBAYTAkdCMSQwIgYDVQQKExtDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kgQ0ExDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGf -MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVimhTYhCicRmTbneDIRgcKkATxtB7 -jHbrkVfT0PtLO1FuzsvRyY2RxS90P6tjXVUJnNE6uvMa5UFEJFGnTHgW8iQ8+EjP -KDHM5nugSlojgZ88ujfmJNnDvbKZuDnd/iYx0ss6hPx7srXFL8/BT/9Ab1zURmnL -svfP34b7arnRsQIDAQABo4GvMIGsMB0GA1UdDgQWBBRfnYgNyHPmVNT4DdjmsMEk -tEfDVTB9BgNVHSMEdjB0gBRfnYgNyHPmVNT4DdjmsMEktEfDVaFZpFcwVTELMAkG -A1UEBhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBDQTEO -MAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQAwDAYDVR0TBAUwAwEB -/zANBgkqhkiG9w0BAQUFAAOBgQAGCMxKbWTyIF4UbASydvkrDvqUpdryOvw4BmBt -OZDQoeojPUApV2lGOwRmYef6HReZFSCa6i4Kd1F2QRIn18ADB8dHDmFYT9czQiRy -f1HWkLxHqd81TbD26yWVXeGJPE3VICskovPkQNJ0tU4b03YmnKliibduyqQQkOFP -OwqULg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ct-test-embedded-with-intermediate-preca-chain.pem b/src/pki/testdata/ssl/certificates/ct-test-embedded-with-intermediate-preca-chain.pem deleted file mode 100644 index 597cebc..0000000 --- a/src/pki/testdata/ssl/certificates/ct-test-embedded-with-intermediate-preca-chain.pem +++ /dev/null @@ -1,188 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 3 (0x3) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency Intermediate CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:d4:49:70:56:cd:fc:65:e1:34:2c:c3:df:6e:65: - 4b:8a:f0:10:47:02:ac:d2:27:5c:7d:3f:b1:fc:43: - 8a:89:b2:12:11:0d:64:19:bc:c1:3a:e4:7d:64:bb: - a2:41:e6:70:6b:9e:d6:27:f8:b3:4a:0d:7d:ff:1c: - 44:b9:62:87:c5:4b:ea:9d:10:dc:01:7b:ce:b6:4f: - 7b:6a:ff:3c:35:a4:74:af:ec:40:38:ab:36:40:b0: - cd:1f:b0:58:2e:c0:3b:17:9a:27:76:c8:c4:35:d1: - 4a:b4:88:2d:59:d7:b7:24:fa:37:7c:a6:db:08:39: - 21:73:f9:c6:05:6b:3a:ba:df - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 32:DA:55:18:D8:7F:1D:26:EA:27:67:97:3C:0B:EF:28:6E:78:6A:4A - X509v3 Authority Key Identifier: - keyid:96:55:08:05:02:78:47:9E:87:73:76:41:31:BC:14:3A:47:E2:29:AB - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:09 - - X509v3 Basic Constraints: - CA:FALSE - 1.3.6.1.4.1.11129.2.4.2: - .z.x.v........RG.ah2].\yY..........?t.d...=.'.......G0E.!.......!...<..p.3..7K ...e.^..C.0. .v.GQ8..v.810M..C....n..O..|.... - Signature Algorithm: sha1WithRSAEncryption - 88:ee:4e:9e:5e:ed:6b:11:2c:c7:64:b1:51:ed:92:94:00:e9: - 40:67:89:c1:5f:bb:cf:cd:ab:2f:10:b4:00:23:41:39:e6:ce: - 65:c1:e5:1b:47:bf:7c:89:50:f8:0b:cc:d5:71:68:56:79:54: - ed:35:b0:ce:93:46:06:5a:5e:ae:5b:f9:5d:41:da:8e:27:ce: - e9:ee:ac:68:8f:4b:d3:43:f9:c2:88:83:27:ab:d8:b9:f6:8d: - cb:1e:30:50:04:1d:31:bd:a8:e2:dd:6d:39:b3:66:4d:e5:ce: - 08:70:f5:fc:7e:6a:00:d6:ed:00:52:84:58:d9:53:d2:37:58: - 6d:73 ------BEGIN CERTIFICATE----- -MIIDZjCCAs+gAwIBAgIBAzANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJHQjEx -MC8GA1UEChMoQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IEludGVybWVkaWF0ZSBD -QTEOMAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW4wHhcNMTIwNjAxMDAw -MDAwWhcNMjIwNjAxMDAwMDAwWjBSMQswCQYDVQQGEwJHQjEhMB8GA1UEChMYQ2Vy -dGlmaWNhdGUgVHJhbnNwYXJlbmN5MQ4wDAYDVQQIEwVXYWxlczEQMA4GA1UEBxMH -RXJ3IFdlbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1ElwVs38ZeE0LMPf -bmVLivAQRwKs0idcfT+x/EOKibISEQ1kGbzBOuR9ZLuiQeZwa57WJ/izSg19/xxE -uWKHxUvqnRDcAXvOtk97av88NaR0r+xAOKs2QLDNH7BYLsA7F5ondsjENdFKtIgt -Wde3JPo3fKbbCDkhc/nGBWs6ut8CAwEAAaOCATowggE2MB0GA1UdDgQWBBQy2lUY -2H8dJuonZ5c8C+8obnhqSjB9BgNVHSMEdjB0gBSWVQgFAnhHnodzdkExvBQ6R+Ip -q6FZpFcwVTELMAkGA1UEBhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5z -cGFyZW5jeSBDQTEOMAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQkw -CQYDVR0TBAIwADCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN8cLsEVAJRSR6lhaDJd -3Fx5Wej3xtOI/AAuC70/dNdkAAABPdsn474AAAQDAEcwRQIhANn2Ggf+4CHjFZ88 -ovVw2DP/ATdLIJbLpWWMXhb7Q+swAiALdv5HUTjYz3aDODEwTavwQ+sSE8luE/9P -o39808jcHzANBgkqhkiG9w0BAQUFAAOBgQCI7k6eXu1rESzHZLFR7ZKUAOlAZ4nB -X7vPzasvELQAI0E55s5lweUbR798iVD4C8zVcWhWeVTtNbDOk0YGWl6uW/ldQdqO -J87p7qxoj0vTQ/nCiIMnq9i59o3LHjBQBB0xvaji3W05s2ZN5c4IcPX8fmoA1u0A -UoRY2VPSN1htcw== ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 9 (0x9) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency Intermediate CA, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:d7:6a:67:8d:11:6f:52:2e:55:ff:82:1c:90:64: - 25:08:b7:07:4b:14:d7:71:15:90:64:f7:92:7e:fd: - ed:b8:71:35:a1:36:5e:e7:de:18:cb:d5:ce:86:5f: - 86:0c:78:f4:33:b4:d0:d3:d3:40:77:02:e7:a3:ef: - 54:2b:1d:fe:9b:ba:a7:cd:f9:4d:c5:97:5f:c7:29: - f8:6f:10:5f:38:1b:24:35:35:cf:9c:80:0f:5c:a7: - 80:c1:d3:c8:44:00:ee:65:d1:6e:e9:cf:52:db:8a: - df:fe:50:f5:c4:93:35:0b:21:90:bf:50:d5:bc:36: - f3:ca:c5:a8:da:ae:92:cd:8b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 96:55:08:05:02:78:47:9E:87:73:76:41:31:BC:14:3A:47:E2:29:AB - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 22:06:da:b1:c6:6b:71:dc:e0:95:c3:f6:aa:2e:f7:2c:f7:76: - 1b:e7:ab:d7:fc:39:c3:1a:4c:fe:1b:d9:6d:67:34:ca:82:f2: - 2d:de:5a:0c:8b:bb:dd:82:5d:7b:6f:3e:76:12:ad:8d:b3:00: - a7:e2:11:69:88:60:23:26:22:84:c3:aa:5d:21:91:ef:da:10: - bf:92:35:d3:7b:3a:2a:34:0d:59:41:9b:94:a4:85:66:f3:fa: - c3:cd:8b:53:d5:a4:e9:82:70:ea:d2:97:b0:72:10:f9:ce:4a: - 21:38:b1:88:11:14:3b:93:fa:4e:7a:87:dd:37:e1:38:5f:2c: - 29:08 ------BEGIN CERTIFICATE----- -MIIC3TCCAkagAwIBAgIBCTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMGIxCzAJBgNVBAYTAkdCMTEwLwYDVQQKEyhDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kgSW50ZXJtZWRpYXRlIENBMQ4wDAYDVQQIEwVXYWxlczEQMA4GA1UE -BxMHRXJ3IFdlbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA12pnjRFvUi5V -/4IckGQlCLcHSxTXcRWQZPeSfv3tuHE1oTZe594Yy9XOhl+GDHj0M7TQ09NAdwLn -o+9UKx3+m7qnzflNxZdfxyn4bxBfOBskNTXPnIAPXKeAwdPIRADuZdFu6c9S24rf -/lD1xJM1CyGQv1DVvDbzysWo2q6SzYsCAwEAAaOBrzCBrDAdBgNVHQ4EFgQUllUI -BQJ4R56Hc3ZBMbwUOkfiKaswfQYDVR0jBHYwdIAUX52IDchz5lTU+A3Y5rDBJLRH -w1WhWaRXMFUxCzAJBgNVBAYTAkdCMSQwIgYDVQQKExtDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kgQ0ExDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuggEA -MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAIgbascZrcdzglcP2qi73 -LPd2G+er1/w5wxpM/hvZbWc0yoLyLd5aDIu73YJde28+dhKtjbMAp+IRaYhgIyYi -hMOqXSGR79oQv5I103s6KjQNWUGblKSFZvP6w82LU9Wk6YJw6tKXsHIQ+c5KITix -iBEUO5P6TnqH3TfhOF8sKQg= ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 0 (0x0) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:d5:8a:68:53:62:10:a2:71:19:93:6e:77:83:21: - 18:1c:2a:40:13:c6:d0:7b:8c:76:eb:91:57:d3:d0: - fb:4b:3b:51:6e:ce:cb:d1:c9:8d:91:c5:2f:74:3f: - ab:63:5d:55:09:9c:d1:3a:ba:f3:1a:e5:41:44:24: - 51:a7:4c:78:16:f2:24:3c:f8:48:cf:28:31:cc:e6: - 7b:a0:4a:5a:23:81:9f:3c:ba:37:e6:24:d9:c3:bd: - b2:99:b8:39:dd:fe:26:31:d2:cb:3a:84:fc:7b:b2: - b5:c5:2f:cf:c1:4f:ff:40:6f:5c:d4:46:69:cb:b2: - f7:cf:df:86:fb:6a:b9:d1:b1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 06:08:cc:4a:6d:64:f2:20:5e:14:6c:04:b2:76:f9:2b:0e:fa: - 94:a5:da:f2:3a:fc:38:06:60:6d:39:90:d0:a1:ea:23:3d:40: - 29:57:69:46:3b:04:66:61:e7:fa:1d:17:99:15:20:9a:ea:2e: - 0a:77:51:76:41:12:27:d7:c0:03:07:c7:47:0e:61:58:4f:d7: - 33:42:24:72:7f:51:d6:90:bc:47:a9:df:35:4d:b0:f6:eb:25: - 95:5d:e1:89:3c:4d:d5:20:2b:24:a2:f3:e4:40:d2:74:b5:4e: - 1b:d3:76:26:9c:a9:62:89:b7:6e:ca:a4:10:90:e1:4f:3b:0a: - 94:2e ------BEGIN CERTIFICATE----- -MIIC0DCCAjmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMFUxCzAJBgNVBAYTAkdCMSQwIgYDVQQKExtDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kgQ0ExDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGf -MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVimhTYhCicRmTbneDIRgcKkATxtB7 -jHbrkVfT0PtLO1FuzsvRyY2RxS90P6tjXVUJnNE6uvMa5UFEJFGnTHgW8iQ8+EjP -KDHM5nugSlojgZ88ujfmJNnDvbKZuDnd/iYx0ss6hPx7srXFL8/BT/9Ab1zURmnL -svfP34b7arnRsQIDAQABo4GvMIGsMB0GA1UdDgQWBBRfnYgNyHPmVNT4DdjmsMEk -tEfDVTB9BgNVHSMEdjB0gBRfnYgNyHPmVNT4DdjmsMEktEfDVaFZpFcwVTELMAkG -A1UEBhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBDQTEO -MAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQAwDAYDVR0TBAUwAwEB -/zANBgkqhkiG9w0BAQUFAAOBgQAGCMxKbWTyIF4UbASydvkrDvqUpdryOvw4BmBt -OZDQoeojPUApV2lGOwRmYef6HReZFSCa6i4Kd1F2QRIn18ADB8dHDmFYT9czQiRy -f1HWkLxHqd81TbD26yWVXeGJPE3VICskovPkQNJ0tU4b03YmnKliibduyqQQkOFP -OwqULg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ct-test-embedded-with-preca-chain.pem b/src/pki/testdata/ssl/certificates/ct-test-embedded-with-preca-chain.pem deleted file mode 100644 index 7c9a8cf..0000000 --- a/src/pki/testdata/ssl/certificates/ct-test-embedded-with-preca-chain.pem +++ /dev/null @@ -1,126 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 8 (0x8) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:af:ae:ea:ca:c5:1a:b7:ce:bd:f9:ea:ca:e7:dd: - 17:52:95:e1:93:95:5a:17:98:9a:ef:8d:97:ab:7c: - df:f7:76:10:93:c0:b8:23:d2:a4:e3:a5:1a:17:b8: - 6f:28:16:2b:66:a2:53:89:35:eb:ec:dc:10:36:23: - 3d:a2:dd:65:31:b0:c6:3b:cc:68:76:1e:bd:c8:54: - 03:7b:77:39:92:46:b8:70:a7:b7:2b:14:c9:b1:66: - 7d:e0:9a:96:40:ed:9f:3f:3c:72:5d:95:0b:4d:26: - 55:98:69:fe:7f:1e:91:9a:66:eb:76:d3:5c:01:17: - c6:bc:d0:d8:cf:d2:10:28:b1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 61:2C:64:EF:AC:79:B7:28:39:7C:9D:93:E6:DF:86:46:5F:A7:6A:88 - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:FALSE - 1.3.6.1.4.1.11129.2.4.2: - .z.x.v........RG.ah2].\yY..........?t.d...=.'.[.....G0E. z....t..r{.O....y......C.*)|.:5\.!......
dL..Ri..c..5l.P"O.......#. - Signature Algorithm: sha1WithRSAEncryption - a3:a8:6c:41:ad:00:88:a2:5a:ed:c4:e7:b5:29:a2:dd:bf:9e: - 18:7f:fb:36:21:57:e9:30:2d:96:1b:73:b4:3c:ba:0a:e1:e2: - 30:d9:e4:50:49:b7:e8:c9:24:79:2e:bb:e7:d1:75:ba:a8:7b: - 17:0d:fa:d8:ee:78:89:84:59:9d:05:25:79:94:08:4e:2e:0e: - 79:6f:ca:58:36:88:1c:3e:05:35:53:e0:6a:b2:30:f9:19:08: - 9b:91:4e:4a:8e:2d:a4:5f:8a:87:f2:c8:1a:25:a6:1f:04:fe: - 1c:ac:e6:01:55:65:38:27:d4:1f:ad:9f:06:58:f2:87:d0:58: - 19:2c ------BEGIN CERTIFICATE----- -MIIDWTCCAsKgAwIBAgIBCDANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMFIxCzAJBgNVBAYTAkdCMSEwHwYDVQQKExhDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kxDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGfMA0G -CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvrurKxRq3zr356srn3RdSleGTlVoXmJrv -jZerfN/3dhCTwLgj0qTjpRoXuG8oFitmolOJNevs3BA2Iz2i3WUxsMY7zGh2Hr3I -VAN7dzmSRrhwp7crFMmxZn3gmpZA7Z8/PHJdlQtNJlWYaf5/HpGaZut201wBF8a8 -0NjP0hAosQIDAQABo4IBOjCCATYwHQYDVR0OBBYEFGEsZO+sebcoOXydk+bfhkZf -p2qIMH0GA1UdIwR2MHSAFF+diA3Ic+ZU1PgN2OawwSS0R8NVoVmkVzBVMQswCQYD -VQQGEwJHQjEkMCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4w -DAYDVQQIEwVXYWxlczEQMA4GA1UEBxMHRXJ3IFdlboIBADAJBgNVHRMEAjAAMIGK -BgorBgEEAdZ5AgQCBHwEegB4AHYA3xwuwRUAlFJHqWFoMl3cXHlZ6PfG04j8AC4L -vT9012QAAAE92yfgWwAABAMARzBFAiB6p5YExHSA83J7CE+Qs5ifeQkYheAEhEMa -Kil8vzo1XAIhALSf2BILDWRM1+dSabTaYxepNWy5UCJPwRzClrLjmyOGMA0GCSqG -SIb3DQEBBQUAA4GBAKOobEGtAIiiWu3E57Upot2/nhh/+zYhV+kwLZYbc7Q8ugrh -4jDZ5FBJt+jJJHkuu+fRdbqoexcN+tjueImEWZ0FJXmUCE4uDnlvylg2iBw+BTVT -4GqyMPkZCJuRTkqOLaRfiofyyBolph8E/hys5gFVZTgn1B+tnwZY8ofQWBks ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 0 (0x0) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C=GB, O=Certificate Transparency CA, ST=Wales, L=Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:d5:8a:68:53:62:10:a2:71:19:93:6e:77:83:21: - 18:1c:2a:40:13:c6:d0:7b:8c:76:eb:91:57:d3:d0: - fb:4b:3b:51:6e:ce:cb:d1:c9:8d:91:c5:2f:74:3f: - ab:63:5d:55:09:9c:d1:3a:ba:f3:1a:e5:41:44:24: - 51:a7:4c:78:16:f2:24:3c:f8:48:cf:28:31:cc:e6: - 7b:a0:4a:5a:23:81:9f:3c:ba:37:e6:24:d9:c3:bd: - b2:99:b8:39:dd:fe:26:31:d2:cb:3a:84:fc:7b:b2: - b5:c5:2f:cf:c1:4f:ff:40:6f:5c:d4:46:69:cb:b2: - f7:cf:df:86:fb:6a:b9:d1:b1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 06:08:cc:4a:6d:64:f2:20:5e:14:6c:04:b2:76:f9:2b:0e:fa: - 94:a5:da:f2:3a:fc:38:06:60:6d:39:90:d0:a1:ea:23:3d:40: - 29:57:69:46:3b:04:66:61:e7:fa:1d:17:99:15:20:9a:ea:2e: - 0a:77:51:76:41:12:27:d7:c0:03:07:c7:47:0e:61:58:4f:d7: - 33:42:24:72:7f:51:d6:90:bc:47:a9:df:35:4d:b0:f6:eb:25: - 95:5d:e1:89:3c:4d:d5:20:2b:24:a2:f3:e4:40:d2:74:b5:4e: - 1b:d3:76:26:9c:a9:62:89:b7:6e:ca:a4:10:90:e1:4f:3b:0a: - 94:2e ------BEGIN CERTIFICATE----- -MIIC0DCCAjmgAwIBAgIBADANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMFUxCzAJBgNVBAYTAkdCMSQwIgYDVQQKExtDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kgQ0ExDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGf -MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVimhTYhCicRmTbneDIRgcKkATxtB7 -jHbrkVfT0PtLO1FuzsvRyY2RxS90P6tjXVUJnNE6uvMa5UFEJFGnTHgW8iQ8+EjP -KDHM5nugSlojgZ88ujfmJNnDvbKZuDnd/iYx0ss6hPx7srXFL8/BT/9Ab1zURmnL -svfP34b7arnRsQIDAQABo4GvMIGsMB0GA1UdDgQWBBRfnYgNyHPmVNT4DdjmsMEk -tEfDVTB9BgNVHSMEdjB0gBRfnYgNyHPmVNT4DdjmsMEktEfDVaFZpFcwVTELMAkG -A1UEBhMCR0IxJDAiBgNVBAoTG0NlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBDQTEO -MAwGA1UECBMFV2FsZXMxEDAOBgNVBAcTB0VydyBXZW6CAQAwDAYDVR0TBAUwAwEB -/zANBgkqhkiG9w0BAQUFAAOBgQAGCMxKbWTyIF4UbASydvkrDvqUpdryOvw4BmBt -OZDQoeojPUApV2lGOwRmYef6HReZFSCa6i4Kd1F2QRIn18ADB8dHDmFYT9czQiRy -f1HWkLxHqd81TbD26yWVXeGJPE3VICskovPkQNJ0tU4b03YmnKliibduyqQQkOFP -OwqULg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ct-test-embedded-with-uids.pem b/src/pki/testdata/ssl/certificates/ct-test-embedded-with-uids.pem deleted file mode 100644 index fa666e3..0000000 --- a/src/pki/testdata/ssl/certificates/ct-test-embedded-with-uids.pem +++ /dev/null @@ -1,81 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 7 (0x7) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C = GB, O = Certificate Transparency CA, ST = Wales, L = Erw Wen - Validity - Not Before: Jun 1 00:00:00 2012 GMT - Not After : Jun 1 00:00:00 2022 GMT - Subject: C = GB, O = Certificate Transparency, ST = Wales, L = Erw Wen - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (1024 bit) - Modulus: - 00:be:ef:98:e7:c2:68:77:ae:38:5f:75:32:5a:0c: - 1d:32:9b:ed:f1:8f:aa:f4:d7:96:bf:04:7e:b7:e1: - ce:15:c9:5b:a2:f8:0e:e4:58:bd:7d:b8:6f:8a:4b: - 25:21:91:a7:9b:d7:00:c3:8e:9c:03:89:b4:5c:d4: - dc:9a:12:0a:b2:1e:0c:b4:1c:d0:e7:28:05:a4:10: - cd:9c:5b:db:5d:49:27:72:6d:af:17:10:f6:01:87: - 37:7e:a2:5b:1a:1e:39:ee:d0:b8:81:19:dc:15:4d: - c6:8f:7d:a8:e3:0c:af:15:8a:33:e6:c9:50:9f:4a: - 05:b0:14:09:ff:5d:d8:7e:b5 - Exponent: 65537 (0x10001) - Issuer Unique ID: - 12:34:56 - Subject Unique ID: - 12:34:56 - X509v3 extensions: - X509v3 Subject Key Identifier: - 20:31:54:1A:F2:5C:05:FF:D8:65:8B:68:43:79:4F:5E:90:36:F7:B4 - X509v3 Authority Key Identifier: - keyid:5F:9D:88:0D:C8:73:E6:54:D4:F8:0D:D8:E6:B0:C1:24:B4:47:C3:55 - DirName:/C=GB/O=Certificate Transparency CA/ST=Wales/L=Erw Wen - serial:00 - - X509v3 Basic Constraints: - CA:FALSE - CT Precertificate SCTs: - Signed Certificate Timestamp: - Version : v1 (0x0) - Log ID : DF:1C:2E:C1:15:00:94:52:47:A9:61:68:32:5D:DC:5C: - 79:59:E8:F7:C6:D3:88:FC:00:2E:0B:BD:3F:74:D7:64 - Timestamp : Apr 5 17:04:16.275 2013 GMT - Extensions: none - Signature : ecdsa-with-SHA256 - 30:45:02:20:48:2F:67:51:AF:35:DB:A6:54:36:BE:1F: - D6:64:0F:3D:BF:9A:41:42:94:95:92:45:30:28:8F:A3: - E5:E2:3E:06:02:21:00:E4:ED:C0:DB:3A:C5:72:B1:E2: - F5:E8:AB:6A:68:06:53:98:7D:CF:41:02:7D:FE:FF:A1: - 05:51:9D:89:ED:BF:08 - Signature Algorithm: sha1WithRSAEncryption - 8a:0c:4b:ef:09:9d:47:92:79:af:a0:a2:8e:68:9f:91:e1:c4: - 42:1b:e2:d2:69:a2:ea:6c:a4:e8:21:5d:de:dd:ca:15:04:a1: - 1e:7c:87:c4:b7:7e:80:f0:e9:79:03:52:68:f2:7c:a2:0e:16: - 68:04:ae:55:6f:31:69:81:f9:6a:39:4a:b7:ab:fd:3e:25:5a: - c0:04:45:13:fe:76:57:0c:67:95:ab:e4:70:31:33:d3:03:f8: - 9f:3a:fa:6b:bc:fc:51:73:19:df:d9:5b:93:42:41:21:1f:63: - 40:35:c3:d0:78:30:7a:68:c6:07:5a:2e:20:c8:9f:36:b8:91: - 0c:a0 ------BEGIN CERTIFICATE----- -MIIDZTCCAs6gAwIBAgIBBzANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJHQjEk -MCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5IENBMQ4wDAYDVQQIEwVX -YWxlczEQMA4GA1UEBxMHRXJ3IFdlbjAeFw0xMjA2MDEwMDAwMDBaFw0yMjA2MDEw -MDAwMDBaMFIxCzAJBgNVBAYTAkdCMSEwHwYDVQQKExhDZXJ0aWZpY2F0ZSBUcmFu -c3BhcmVuY3kxDjAMBgNVBAgTBVdhbGVzMRAwDgYDVQQHEwdFcncgV2VuMIGfMA0G -CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+75jnwmh3rjhfdTJaDB0ym+3xj6r015a/ -BH634c4VyVui+A7kWL19uG+KSyUhkaeb1wDDjpwDibRc1NyaEgqyHgy0HNDnKAWk -EM2cW9tdSSdyba8XEPYBhzd+olsaHjnu0LiBGdwVTcaPfajjDK8VijPmyVCfSgWw -FAn/Xdh+tQIDAQABgQQAEjRWggQAEjRWo4IBOjCCATYwHQYDVR0OBBYEFCAxVBry -XAX/2GWLaEN5T16QNve0MH0GA1UdIwR2MHSAFF+diA3Ic+ZU1PgN2OawwSS0R8NV -oVmkVzBVMQswCQYDVQQGEwJHQjEkMCIGA1UEChMbQ2VydGlmaWNhdGUgVHJhbnNw -YXJlbmN5IENBMQ4wDAYDVQQIEwVXYWxlczEQMA4GA1UEBxMHRXJ3IFdlboIBADAJ -BgNVHRMEAjAAMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3xwuwRUAlFJHqWFoMl3c -XHlZ6PfG04j8AC4LvT9012QAAAE92yffkwAABAMARzBFAiBIL2dRrzXbplQ2vh/W -ZA89v5pBQpSVkkUwKI+j5eI+BgIhAOTtwNs6xXKx4vXoq2poBlOYfc9BAn3+/6EF -UZ2J7b8IMA0GCSqGSIb3DQEBBQUAA4GBAIoMS+8JnUeSea+goo5on5HhxEIb4tJp -oupspOghXd7dyhUEoR58h8S3foDw6XkDUmjyfKIOFmgErlVvMWmB+Wo5Srer/T4l -WsAERRP+dlcMZ5Wr5HAxM9MD+J86+mu8/FFzGd/ZW5NCQSEfY0A1w9B4MHpoxgda -LiDInza4kQyg ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/dec_2017.pem b/src/pki/testdata/ssl/certificates/dec_2017.pem deleted file mode 100644 index b033f8d..0000000 --- a/src/pki/testdata/ssl/certificates/dec_2017.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:84 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Dec 20 00:00:00 2017 GMT - Not After : Dec 20 00:00:00 2020 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:bb:d6:9f:20:ad:98:2d:32:9a:c8:58:d2:8f:c0: - e0:b0:1b:ff:5f:f9:20:93:f3:83:39:a6:5f:bd:cc: - 3f:84:de:cc:66:92:aa:ae:c3:6d:9e:c5:88:54:ca: - a5:3f:7f:4c:42:bc:42:fe:93:f5:d2:96:e3:d7:fa: - 5d:d5:bd:eb:4f:ec:a5:c2:86:95:86:de:08:c2:a9: - df:f8:ca:89:df:be:43:33:e6:4f:94:9e:a1:f2:57: - 85:f2:e5:58:bc:40:24:8e:86:4b:4a:c9:37:65:ee: - b9:7b:2d:a0:7a:89:03:62:de:b6:93:52:63:3a:16: - b2:81:17:3e:40:a9:1d:88:86:25:33:75:fa:75:c3: - 1b:d0:19:34:7f:20:ac:a3:cb:3b:30:14:d3:2a:f9: - 78:fa:33:f2:1d:4f:57:7b:c7:d6:67:f1:38:ff:97: - a1:7d:6a:42:25:15:b2:5b:d0:46:6f:6d:b7:86:e0: - 2f:70:dc:0c:f9:bd:75:08:2f:a3:28:3f:ee:4e:3b: - c8:00:92:96:e2:92:5b:91:56:ba:5a:11:be:f9:4f: - 30:64:e2:ab:52:26:b1:68:1e:34:d9:bb:6b:18:50: - 8a:b8:d4:1f:ee:2d:9f:55:ec:b0:88:93:db:3b:5a: - f6:f9:38:17:fe:59:dc:66:87:ef:2d:97:8d:db:7a: - 0f:bb - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 4F:93:BD:50:76:80:83:8F:B4:15:05:76:1D:40:1D:55:A4:4C:2C:53 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 4a:73:ad:73:ac:c9:a6:45:53:69:ea:d9:6b:30:9c:36:9a:6d: - ad:b4:ab:44:fe:8a:43:ad:df:df:95:28:8e:f3:73:f3:0c:4a: - 8c:d7:a0:48:3e:ed:d5:eb:79:74:60:cf:4b:2d:57:e8:f5:f3: - f0:8c:e1:45:8b:05:cf:2d:18:97:4d:ea:22:3c:a1:4b:01:89: - a3:d9:4f:c5:6d:86:0a:83:d3:4e:c2:d4:b7:0e:47:98:fa:81: - 13:fe:a9:5f:a5:79:73:34:4f:28:29:c6:a9:81:25:6d:db:18: - d8:f6:44:39:11:83:a9:d3:11:b5:b3:8d:85:b7:0b:a5:88:9a: - 3f:21:41:df:93:b8:73:b2:49:f1:c3:bd:94:57:df:bc:08:3d: - a2:e9:20:ed:13:ee:1f:62:f7:84:e5:0e:7f:79:2f:a0:d6:72: - 79:83:1c:5f:d4:6a:5d:c8:eb:a2:7b:b1:c2:6d:e2:cc:b2:fd: - 90:d0:5c:c1:e8:74:dc:20:e6:55:f7:6c:72:dc:05:a0:83:17: - 96:f9:85:c2:71:55:4c:4c:71:91:7d:a8:90:dd:88:eb:78:03: - 39:4e:24:e4:d4:66:ba:e4:50:5c:4d:f3:0b:aa:3a:1b:b3:e8: - 53:be:b5:10:76:ae:a2:e4:a0:d5:30:62:5b:9d:2c:1e:1e:2d: - 7c:2b:1d:d6 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwoQwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNzEyMjAwMDAwMDBaFw0yMDEyMjAwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC71p8grZgtMprIWNKPwOCwG/9f+SCT84M5 -pl+9zD+E3sxmkqquw22exYhUyqU/f0xCvEL+k/XSluPX+l3VvetP7KXChpWG3gjC -qd/4yonfvkMz5k+UnqHyV4Xy5Vi8QCSOhktKyTdl7rl7LaB6iQNi3raTUmM6FrKB -Fz5AqR2IhiUzdfp1wxvQGTR/IKyjyzswFNMq+Xj6M/IdT1d7x9Zn8Tj/l6F9akIl -FbJb0EZvbbeG4C9w3Az5vXUIL6MoP+5OO8gAkpbikluRVrpaEb75TzBk4qtSJrFo -HjTZu2sYUIq41B/uLZ9V7LCIk9s7Wvb5OBf+Wdxmh+8tl43beg+7AgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRPk71QdoCDj7QVBXYdQB1VpEwsUzAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEASnOtc6zJpkVTaerZazCcNpptrbSrRP6KQ63f35UojvNz8wxKjNegSD7t1et5 -dGDPSy1X6PXz8IzhRYsFzy0Yl03qIjyhSwGJo9lPxW2GCoPTTsLUtw5HmPqBE/6p -X6V5czRPKCnGqYElbdsY2PZEORGDqdMRtbONhbcLpYiaPyFB35O4c7JJ8cO9lFff -vAg9oukg7RPuH2L3hOUOf3kvoNZyeYMcX9RqXcjronuxwm3izLL9kNBcweh03CDm -VfdsctwFoIMXlvmFwnFVTExxkX2okN2I63gDOU4k5NRmuuRQXE3zC6o6G7PoU761 -EHauouSg1TBiW50sHh4tfCsd1g== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/diginotar_cyber_ca.pem b/src/pki/testdata/ssl/certificates/diginotar_cyber_ca.pem deleted file mode 100644 index 0abbd7c..0000000 --- a/src/pki/testdata/ssl/certificates/diginotar_cyber_ca.pem +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFWjCCBMOgAwIBAgIEBycQDTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV -UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU -cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds -b2JhbCBSb290MB4XDTA2MTAwNDEwNTQxMVoXDTExMTAwNDEwNTMxMVowYDELMAkG -A1UEBhMCTkwxEjAQBgNVBAoTCURpZ2lOb3RhcjEbMBkGA1UEAxMSRGlnaU5vdGFy -IEN5YmVyIENBMSAwHgYJKoZIhvcNAQkBFhFpbmZvQGRpZ2lub3Rhci5ubDCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANLOFQotqF6EZ639vu9Gx8i5z3P8 -9DS5+SxD52ATPXrjss87Z2yQrcC5P4RS8DVC3HTcKDu9UrSnrHJFF8bwieu0qiXy -XUte0dmHutZ9fPXOMp8QM8WxSrtekTHC0OlBwpFkfglBO9uLCDdqqspS3rU5HsCI -A6U/i5kTYUO1m4Kz7iBvz6FEouova0CfjytXraFTwoUiaZ2gP1HfC0GRDaXhqKpc -SQhdvd5wQbEPyWNr0380dAIvNFp4dRxoeoFnivPaQPBgY/SSINcDpj2jHmfEhBtB -pcmM5r3qSLYFFgizNxJa92E89zhvLpfgb1Y4VNMota0Ubi5LZLUnZbd1JQm2Bz2V -VgIKgmCyc0XgMyZRdJq51FAc9k1bW1JSE1qmf6cO4ehBVGeYjIfVydNsy9NUkgYJ -NEH3gW8/nsl8dVWw58Gzd+jDxAA1lUBwEEoF3iW7n1mlZLxHYL9g43aLE1Xd4XR6 -uc8kpmp/3mQiRFhogmoQ+T3lPhu5vfwi9GAEibtVbShV+t6OjRshFNc3izR7Tfay -shDPM7F9HGKZSMsrbHaWVb8ZDR0fu2WqG46ZtcYokOWCLXhQIJr9eS8kf/CJKWn0 -fc1zvrPtTsHR7VJej/e4142HrbLZG1ES/1az4a80fVykeIgQnp0DxqWqoiRR90kU -xbHuWUOV36toKDA/AgMBAAGjggGGMIIBgjASBgNVHRMBAf8ECDAGAQH/AgEBMFMG -A1UdIARMMEowSAYJKwYBBAGxPgEAMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93d3cu -cHVibGljLXRydXN0LmNvbS9DUFMvT21uaVJvb3QuaHRtbDAOBgNVHQ8BAf8EBAMC -AQYwgaAGA1UdIwSBmDCBlYAUpgwdn2H/Bxe1vzhG20Mw1Y6wUgaheaR3MHUxCzAJ -BgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdU -RSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVy -VHJ1c3QgR2xvYmFsIFJvb3SCAgGlMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly93 -d3cucHVibGljLXRydXN0LmNvbS9jZ2ktYmluL0NSTC8yMDE4L2NkcC5jcmwwHQYD -VR0OBBYEFKv5aN/PSjfXe0WMX3LeQETDZbvCMA0GCSqGSIb3DQEBBQUAA4GBAI9o -a6VbB7pEZg4cqFwwezPkCiYE/O+eGjjWLqEf0JlHwnVkJP2eOyh2uSYoYZEMbSz4 -BJ98UAHV42mv7xXSRZskCSpmBU8lgcpdvqrBWSeuM46C9990sFWzjvjnN8huqlZE -9r1TgSOWPbT6MopTZkQloiXGpjwljPDgKAYityZB ------END CERTIFICATE----- - diff --git a/src/pki/testdata/ssl/certificates/diginotar_pkioverheid.pem b/src/pki/testdata/ssl/certificates/diginotar_pkioverheid.pem deleted file mode 100644 index b41fa3e..0000000 --- a/src/pki/testdata/ssl/certificates/diginotar_pkioverheid.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEiDCCA3CgAwIBAgIEATFpsDANBgkqhkiG9w0BAQUFADBZMQswCQYDVQQGEwJO -TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSowKAYDVQQDEyFTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gT3ZlcmhlaWQgQ0EwHhcNMDcwNzA1MDg0MjA3WhcN -MTUwNzI3MDgzOTQ2WjBfMQswCQYDVQQGEwJOTDEXMBUGA1UEChMORGlnaU5vdGFy -IEIuVi4xNzA1BgNVBAMTLkRpZ2lOb3RhciBQS0lvdmVyaGVpZCBDQSBPdmVyaGVp -ZCBlbiBCZWRyaWp2ZW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDc -vdKnTmoKuzuiheF/AK2+tDBomAfNoHrElM9x+Yo35FPrV3bMi+Zs/u6HVcg+uwQ5 -AKeAeKxbT370vbhUuHE7BzFJOZNUfCA7eSuPu2GQfbGs5h+QLp1FAalkLU3DL7nn -UNVOKlyrdnY3Rtd57EKZ96LspIlw3Dgrh6aqJOadkiQbvvb91C8ZF3rmMgeUVAVT -Q+lsvK9Hy7zL/b07RBKB8WtLu+20z6slTxjSzAL8o0+1QjPLWc0J3NNQ/aB2jKx+ -ZopC9q0ckvO2+xRG603XLzDgbe5bNr5EdLcgBVeFTegAGaL2DOauocBC36esgl3H -aLcY5olLmmv6znn58yynAgMBAAGjggFQMIIBTDBIBgNVHSAEQTA/MD0GBFUdIAAw -NTAzBggrBgEFBQcCARYnaHR0cDovL3d3dy5kaWdpbm90YXIubmwvY3BzL3BraW92 -ZXJoZWlkMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMIGABgNVHSME -eTB3gBQLhtYPd6NosftkCcOIblwEHFfpPaFZpFcwVTELMAkGA1UEBhMCTkwxHjAc -BgNVBAoTFVN0YWF0IGRlciBOZWRlcmxhbmRlbjEmMCQGA1UEAxMdU3RhYXQgZGVy -IE5lZGVybGFuZGVuIFJvb3QgQ0GCBACYmnkwPQYDVR0fBDYwNDAyoDCgLoYsaHR0 -cDovL2NybC5wa2lvdmVyaGVpZC5ubC9Eb21PdkxhdGVzdENSTC5jcmwwHQYDVR0O -BBYEFEwIyY128ZjHPt881y91DbF2eZfMMA0GCSqGSIb3DQEBBQUAA4IBAQAMlIca -v03jheLu19hjeQ5Q38aEW9K72fUxCho1l3TfFPoqDz7toOMI9tVOW6+mriXiRWsi -D7dUKH6S3o0UbNEc5W50BJy37zRERd/Jgx0ZH8Apad+J1T/CsFNt5U4X5HNhIxMm -cUP9TFnLw98iqiEr2b+VERqKpOKrp11Lbyn1UtHk0hWxi/7wA8+nfemZhzizDXMU -5HIs4c71rQZIZPrTKbmi2Lv01QulQERDjqC/zlqlUkxk0xcxYczopIro5Ij76eUv -BjMzm5RmZrGrUDqhCYF0U1onuabSJc/Tw6f/ltAv6uAejVLpGBwgCkegllYOQJBR -RKwa/fHuhR/3Qlpl ------END CERTIFICATE----- - diff --git a/src/pki/testdata/ssl/certificates/diginotar_pkioverheid_g2.pem b/src/pki/testdata/ssl/certificates/diginotar_pkioverheid_g2.pem deleted file mode 100644 index 12570d2..0000000 --- a/src/pki/testdata/ssl/certificates/diginotar_pkioverheid_g2.pem +++ /dev/null @@ -1,38 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGnDCCBISgAwIBAgIEATE0vzANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMTIwMAYDVQQDDClTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gT3JnYW5pc2F0aWUgQ0EgLSBHMjAeFw0xMDA1MTIw -ODUxMzhaFw0yMDAzMjMwOTUwMDRaMFoxCzAJBgNVBAYTAk5MMRcwFQYDVQQKDA5E -aWdpTm90YXIgQi5WLjEyMDAGA1UEAwwpRGlnaU5vdGFyIFBLSW92ZXJoZWlkIENB -IE9yZ2FuaXNhdGllIC0gRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCxExkPJ+Zs1FWGS9DsiYpFkXisR71HK+T8RetPtCZzWzfTw3/2497Xo/gtaMUI -PkuU1uSHJTZrhLUYdPMoWHMvm2rPvAQe9t7dr/xLqvXbZmIlASWC3vKXWhBu3V2p -IrEEqSNzOvhxrR3PhETrR9Gvbch8KKvH8jd6dF9fxQIUiqNa4xtsAeNdjtlo1vQJ -GzLckbUs9SDrjANtJkm4k8SFXdjSm69WaswFM8ygQp40VUSca6DUEtArVM23iQ3l -9uvo+4UBM096a/GdcjOWDveyhKWlJ8Qn8VFzKXe6Z27+TNy04qGhgS85SY1DOBPO -0KVcwoc6AGdlQiPxNlkKHaNRyLyjlCox3+M88p0aPASw77EKMBNzttfzo0wBdRSF -eMDXijlYhVD6LubFvs+LP6+PNtQlCS3SD6xyk/K/i9RQs/kVUJuZ9RTZ+4uRozIm -JqD43ztggYaDeVsr6xM9KTrBbd29no6H1kquNJcF7hSm9tw4fkrpJFQHPZdoN0Zr -DceoIa8TVOQJavFNRgrJXfubT73e+7dUy7g4nKc5+2otwHuNq6WnV+xKkoozxeEg -XHPYkJIrgNUPhhhpfDlPhIa890xb89W0yqDC8DciynlSH1PmqvOQsDvd8ij9rOvF -BiSgydQvD1j9tZ7sD8+yWdCiBHo4aq5y+73wJWKUCacFCwIDAQABo4IBYTCCAV0w -SAYDVR0gBEEwPzA9BgRVHSAAMDUwMwYIKwYBBQUHAgEWJ2h0dHA6Ly93d3cuZGln -aW5vdGFyLm5sL2Nwcy9wa2lvdmVyaGVpZDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBBjCBhQYDVR0jBH4wfIAUORCLSZJc22ESIM1JnRqO2pxnQLmhXqRc -MFoxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4x -KzApBgNVBAMMIlN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENBIC0gRzKCBACY -lvQwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5wa2lvdmVyaGVpZC5ubC9E -b21PcmdhbmlzYXRpZUxhdGVzdENSTC1HMi5jcmwwHQYDVR0OBBYEFLxdlDvZq3sD -JXNhwtst7vyrj2WhMA0GCSqGSIb3DQEBCwUAA4ICAQCP/C1Mt9kt1R+978v0t2gX -dZ1O1ffdnPEqJu2forYcA9VTs+wIzzTi48P0tRYvyMO+19NzqwA2+RpKftZj6V5G -uqW2jhW3oyrYQx3vXcgfgYWzi/f/PPTZ9EYIP5y8HaDZqEzNJVJOCrEg9x/pQ9lU -RoETmsBedGwqmDLq/He7DaWiMZgifnx859qkrey3LhoZcfhIUNpDjyyE3cFAJ+O1 -8BVOltT4XOOGKUYr1zsH6zh/yIZXl9PvKjPEF1DVZGlrK2tFXl0vF8paTs/D1zk8 -9TufRrmb5w5Jl53W1eMbD+qPAU6aE5RZCgIHSEsaYKt/T+0L2FUNaG9VnGllFULs -wNzdbKzDFs4LHVabpMTE0i7gD+JEJytQaaTcYuiKISlCbMwAOpZ2m+9AwKRed4Qy -bCYqOWauXeO5ubIsaB8empADOfCqs6TMSYsYNOk3yXspx4R8b0QVL+xhWQTJRcui -1lKifH8pktZKxYtCqNT+6tjHhyMY5J16fXNAUpigrm7jBT8FD+Clxm1N7YM3iJzH -89xCmmq21yFJNnfy7xhPxXDZnunetyuL9Lx+KN8NQMmFXK6dxTH/0FwOtah+8Okv -uq+IruW10Vilr5xxpykBkINpN4IFuvwJwQhujHg7wzMCgD9EhQgd31VWCK0shS1d -sQPhrqp0xaTzTro3mHuCuQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/diginotar_public_ca_2025.pem b/src/pki/testdata/ssl/certificates/diginotar_public_ca_2025.pem deleted file mode 100644 index c81461a..0000000 --- a/src/pki/testdata/ssl/certificates/diginotar_public_ca_2025.pem +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGAzCCA+ugAwIBAgIQHn16Uz1FMEGWQA9xSB9FBDANBgkqhkiG9w0BAQUFADBf -MQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdp -Tm90YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmww -HhcNMDYwMjA2MTYwNzAyWhcNMjUwMzI4MTYwNzAyWjBmMQswCQYDVQQGEwJOTDES -MBAGA1UEChMJRGlnaU5vdGFyMSEwHwYDVQQDExhEaWdpTm90YXIgUHVibGljIENB -IDIwMjUxIDAeBgkqhkiG9w0BCQEWEWluZm9AZGlnaW5vdGFyLm5sMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs/2eu/I5fMG8lbvPph3e8zfJpZQtg/72 -Yx29+ivtKehiF6A3n785XyoY6IT3vlCrhy1CbMOY3M0x1n4YQlv17B0XZ/DqHyBA -SQvnDNbkM9j4NoSy/sRtGsP6PetIFFjrhE9whZuvuSUC1PY4PruEEJp8zOCx4+wU -Zt9xvjy4Xra+bSia5rwccQ/R5FYTGKrYCthOy9C9ud5Fhd++rlVhgdA/78w+Cs2s -xS4i0MAxG75P3/e/bATJKepbydHdDjkyz9o3RW/wdPUXhzEw4EwUjYg6XJrDzMad -6aL9M/eaxDjgz6o48EaWRDrGptaE2uJRuErVz7oOO0p/wYKq/BU+/wIDAQABo4IB -sjCCAa4wOgYIKwYBBQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vdmFsaWRh -dGlvbi5kaWdpbm90YXIubmwwHwYDVR0jBBgwFoAUiGi/4I41xDs4a2L3KDuEgcgM -100wEgYDVR0TAQH/BAgwBgEB/wIBADCBxgYDVR0gBIG+MIG7MIG4Bg5ghBABh2kB -AQEBBQIGBDCBpTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpbm90YXIubmwv -Y3BzMHoGCCsGAQUFBwICMG4abENvbmRpdGlvbnMsIGFzIG1lbnRpb25lZCBvbiBv -dXIgd2Vic2l0ZSAod3d3LmRpZ2lub3Rhci5ubCksIGFyZSBhcHBsaWNhYmxlIHRv -IGFsbCBvdXIgcHJvZHVjdHMgYW5kIHNlcnZpY2VzLjBDBgNVHR8EPDA6MDigNqA0 -hjJodHRwOi8vc2VydmljZS5kaWdpbm90YXIubmwvY3JsL3Jvb3QvbGF0ZXN0Q1JM -LmNybDAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFN8zwK+S/jf8ttgWFtDZsZHV -+m6lMA0GCSqGSIb3DQEBBQUAA4ICAQCfV1rmBd9QStEyQ40lT0tqby0/3ez0STuJ -ESBQLQD56XYdb4VFSuqA6xTtiuSVHLoiv2xyISN9FvX3A5VtifkJ00JEaLQJiSsE -wGDkYGl1DT7SsqtAVKdMAuCM+e0j0/RV3hZ6kcrM7/wFccHwM+/TiurR9lgZDzB4 -a7++A4XrYyKx9vc9ZwBEnD1nrAe7++gg9cuZgP7e+QL0FBHMjpw+gnCDjr2dzBZC -4r+b8SOqlbPRPexBuNghlc7PfcPIyFis2LJXDRMWiAd3TcfdALwRsuKMR/T+cwyr -asy69OEGHplLT57otQ524BDctDXNzlH9bHEh52QzqkWvIDqs42910IUy1nYNPIUG -yYJV/T7H8Jb6vfMZWe47iUFvtNZCi8+b542gRUwdi+ca+hGviBC9Qr4Wv1pl7CBQ -Hy1axTkHiQawUo/hgmoetCpftugl9yJTfvsBorUV1ZMxn9B1JLSGtWnbUsFRla7G -fNa0IsUkzmmha8XCzvNu0d1PDGtcQyUqmDOE1Hx4cIBeuF8ipuIXkrVCr9zAZ4ZC -hgz6aA1gDTW8whSRJqYEYEQ0pcMEFLyXE+Nz3O8NinO2AuxqKhjMk13203xA7lPY -MnBQ0v7S3qqbp/pvPMiUhOz/VaYted6QmOY5EATBnFiLCuw87JXoAyp382eJ3WX1 -hOiR4IX9Tg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/diginotar_root_ca.pem b/src/pki/testdata/ssl/certificates/diginotar_root_ca.pem deleted file mode 100644 index b972b4b..0000000 --- a/src/pki/testdata/ssl/certificates/diginotar_root_ca.pem +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFijCCA3KgAwIBAgIQDHbanJEMTiye/hXQWJM8TDANBgkqhkiG9w0BAQUFADBf -MQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdp -Tm90YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmww -HhcNMDcwNTE2MTcxOTM2WhcNMjUwMzMxMTgxOTIxWjBfMQswCQYDVQQGEwJOTDES -MBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90YXIgUm9vdCBDQTEg -MB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCssFjBAL3YIQgLK5r+blYwBZ8bd5AQQVzDDYcRd46B -8cp86Yxq7Th0Nbva3/m7wAk3tJZzgX0zGpg595NvlX89ubF1h7pRSOiLcD6VBMXY -tsMW2YiwsYcdcNqGtA8Ui3rPENF0NqISe3eGSnnme98CEWilToauNFibJBN4ViIl -HgGLS1Fx+4LMWZZpiFpoU8W5DQI3y0u8ZkqQfioLBQftFl9VkHXYRskbg+IIvvEj -zJkd1ioPgyAVWCeCLvriIsJJsbkBgWqdbZ1Ad2h2TiEqbYRAhU52mXyC8/O3AlnU -JgEbjt+tUwbRrhjd4rI6y9eIOI6sWym5GdOY+RgDz0iChmYLG2kPyes4iHomGgVM -ktck1JbyrFIto0fVUvY//s6EBnCmqj6i8rZWNBhXouSBbefK8GrTx5FrAoNBfBXv -a5pkXuPQPOWx63tdhvvL5ndJzaNl3Pe5nLjkC1+Tz8wwGjIczhxjlaX56uF0i57p -K6kwe6AYHw4YC+VbqdPRbB4HZ4+RS6mKvNJmqpMBiLKR+jFc1abBUggJzQpjotMi -puih2TkGl/VujQKQjBR7P4DNG5y6xFhyI6+2Vp/GekIzKQc/gsnmHwUNzUwoNovT -yD4cxojvXu6JZOkd69qJfjKmadHdzIif0dDJZiHcBmfFlHqabWJMfczgZICynkeO -owIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQUiGi/4I41xDs4a2L3KDuEgcgM100wDQYJKoZIhvcNAQEFBQADggIBADsC -jcs8MOhuoK3yc7NfniUTBAXT9uOLuwt5zlPe5JbF0a9zvNXD0EBVfEB/zRtfCdXy -fJ9oHbtdzno5wozWmHvFg1Wo1X1AyuAe94leY12hE8JdiraKfADzI8PthV9xdvBo -Y6pFITlIYXg23PFDk9Qlx/KAZeFTAnVR/Ho67zerhChXDNjU1JlWbOOi/lmEtDHo -M/hklJRRl6s5xUvt2t2AC298KQ3EjopyDedTFLJgQT2EkTFoPSdE2+Xe9PpjRchM -Ppj1P0G6Tss3DbpmmPHdy59c91Q2gmssvBNhl0L4eLvMyKKfyvBovWsdst+Nbwed -2o5nx0ceyrm/KkKRt2NTZvFCo+H0Wk1Ya7XkpDOtXHAd3ODy63MUkZoDweoAZbwH -/M8SESIsrqC9OuCiKthZ6SnTGDWkrBFfGbW1G/8iSlzGeuQX7yCpp/Q/rYqnmgQl -nQ7KN+ZQ/YxCKQSa7LnPS3K94gg2ryMvYuXKAdNw23yCIywWMQzGNgeQerEfZ1jE -O1hZibCMjFCz2IbLaKPECudpSyDOwR5WS5WpI2jYMNjD67BVUc3l/Su49bsRn1NU -9jQZjHkJNsphFyUXC4KYcwx3dMPVDceoEkzHp1RxRy4sGn3J4ys7SN4nhKdjNrN9 -j6BkOSQNPXuHr2ZcdBtLc7LljPCGmbjlxd+Ewbfr ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/diginotar_services_1024_ca.pem b/src/pki/testdata/ssl/certificates/diginotar_services_1024_ca.pem deleted file mode 100644 index d32de7a..0000000 --- a/src/pki/testdata/ssl/certificates/diginotar_services_1024_ca.pem +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDzTCCAzagAwIBAgIERpwssDANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC -VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u -ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc -KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u -ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNzA3 -MjYxNTU5MDBaFw0xMzA4MjYxNjI5MDBaMGgxCzAJBgNVBAYTAk5MMRIwEAYDVQQK -EwlEaWdpTm90YXIxIzAhBgNVBAMTGkRpZ2lOb3RhciBTZXJ2aWNlcyAxMDI0IENB -MSAwHgYJKoZIhvcNAQkBFhFpbmZvQGRpZ2lub3Rhci5ubDCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEA2ptNXTz50eKLxsYIIMXZHkjsZlhneWIrQWP0iY1o2q+4 -lDaLGSSkoJPSmQ+yrS01Tc0vauH5mxkrvAQafi09UmTN8T5nD4ku6PJPrqYIoYX+ -oakJ5sarPkP8r3oDkdqmOaZh7phPGKjTs69mgumfvN1y+QYEvRLZGCTnq5NTi1kC -AwEAAaOCASYwggEiMBIGA1UdEwEB/wQIMAYBAf8CAQAwJwYDVR0lBCAwHgYIKwYB -BQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDBDARBgNVHSAECjAIMAYGBFUdIAAwMwYI -KwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5l -dDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVudHJ1c3QubmV0L3NlcnZl -cjEuY3JsMB0GA1UdDgQWBBT+3JRJDG/vXH/G8RKZTxZJrfuCZTALBgNVHQ8EBAMC -AQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0BowGQYJKoZIhvZ9B0EA -BAwwChsEVjcuMQMCAIEwDQYJKoZIhvcNAQEFBQADgYEAY3RqN6k/lpxmyFisCcnv -9WWUf6MCxDgxvV0jh+zUVrLJsm7kBQb87PX6iHBZ1O7m3bV6oKNgLwIMq94SXa/w -NUuqikeRGvWFLELHHe+VQ7NeuJWTpdrFKKqtci0xrZlrbP+MISevrZqRK8fdWMNu -B8WfedLHjFW/TMcnXlEWKz4= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/duplicate_cn_1.p12 b/src/pki/testdata/ssl/certificates/duplicate_cn_1.p12 Binary files differdeleted file mode 100644 index 7d603dc..0000000 --- a/src/pki/testdata/ssl/certificates/duplicate_cn_1.p12 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/duplicate_cn_1.pem b/src/pki/testdata/ssl/certificates/duplicate_cn_1.pem deleted file mode 100644 index f68db18..0000000 --- a/src/pki/testdata/ssl/certificates/duplicate_cn_1.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=B Root CA - Validity - Not Before: Aug 14 02:46:40 2014 GMT - Not After : Aug 11 02:46:40 2024 GMT - Subject: O=Foo, CN=Duplicate - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ae:fc:af:a7:fa:a6:12:6f:5d:06:26:96:7c:33: - d1:9f:53:a3:6e:e3:ea:e4:ba:d4:28:3c:f5:c3:60: - 31:80:39:9b:df:ca:4f:08:0b:16:ee:fc:63:06:ae: - ad:dd:77:3a:3e:63:28:be:c3:96:f7:9a:64:6f:b9: - 6e:42:67:5b:12:3d:a3:97:d9:6f:5f:f4:06:a0:58: - 52:57:34:d3:4e:48:91:a6:89:87:1e:0f:d1:f7:ea: - 0e:40:67:bb:ac:c2:5f:bf:df:74:7a:55:42:e7:d5: - 3a:0d:83:15:48:f5:a7:dc:2f:e2:ad:14:32:a4:b0: - b0:c2:4f:1b:12:d4:d6:48:74:15:53:37:02:1b:5d: - b6:9b:00:2c:2c:5e:0a:38:5c:5b:54:71:05:8e:5c: - 76:7e:08:96:2f:44:5b:bd:4b:2e:c1:ce:b3:75:ce: - 87:d8:2c:bb:fa:7d:01:3b:7d:39:e5:c4:7b:98:1a: - a8:39:40:6a:f4:e8:5e:b0:f0:6b:3b:0e:5c:35:31: - ae:47:d7:f0:5d:a7:92:6d:92:19:03:4c:97:56:fc: - ce:7a:96:d6:14:e3:d2:23:53:76:99:2c:4a:5c:af: - 8b:7d:e0:3e:69:0f:5f:29:84:6d:91:89:10:66:83: - 03:4b:c2:86:20:95:68:b7:96:98:90:bd:56:ff:c9: - 84:9b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - D0:52:53:5F:31:41:A7:B9:87:82:9A:D8:41:83:68:CA:C6:09:DA:0E - X509v3 Authority Key Identifier: - keyid:BC:94:98:39:BF:60:C1:09:AB:08:89:D8:FA:2D:82:FF:15:2D:71:EC - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - Signature Algorithm: sha256WithRSAEncryption - 48:bc:05:2b:d3:f8:4c:bf:c3:d8:13:73:df:3d:d6:89:61:f5: - 40:61:e8:2a:cf:8d:f4:0e:6f:62:56:b3:66:70:05:11:2b:d9: - 22:b7:6e:5c:d5:a3:00:14:ba:ac:f1:bd:3b:34:58:bc:b5:36: - 8f:46:c6:73:38:3d:b5:52:62:7f:9d:cb:c4:9e:9f:ce:27:50: - 7a:e4:d0:7d:7c:d6:73:ec:da:3a:08:1f:65:85:6c:19:2b:b2: - 8a:09:3a:ba:78:09:73:c0:4f:00:a9:59:a3:11:91:42:9b:a7: - 21:52:2d:69:c3:bd:63:84:52:4d:06:9c:d9:6f:3a:e6:4d:e2: - aa:6f:e0:de:14:4b:62:33:bf:23:01:4f:68:09:5b:b4:4d:f5: - 5c:f6:c2:2a:40:db:cb:6f:d7:7d:41:5c:a3:49:8f:ff:bc:02: - c6:34:b2:73:ec:e5:7b:90:dd:ee:2e:82:1d:ea:d8:9c:e9:72: - cb:1c:9b:fe:1c:b7:61:dd:eb:49:dd:56:f4:f8:b8:b9:13:05: - 9e:ca:91:cb:e6:58:14:b5:69:e8:a7:66:e9:b9:7c:c1:a4:bf: - c9:4f:09:b1:be:5b:ab:53:6e:99:2a:9d:61:dc:a8:4c:ae:c1: - 40:68:8d:9c:c5:86:e3:bd:5d:78:0f:c0:31:1e:c5:08:b5:85: - 2d:c3:ea:8f ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBATANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAlCIFJv -b3QgQ0EwHhcNMTQwODE0MDI0NjQwWhcNMjQwODExMDI0NjQwWjAiMQwwCgYDVQQK -DANGb28xEjAQBgNVBAMMCUR1cGxpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAK78r6f6phJvXQYmlnwz0Z9To27j6uS61Cg89cNgMYA5m9/KTwgL -Fu78Ywaurd13Oj5jKL7DlveaZG+5bkJnWxI9o5fZb1/0BqBYUlc0005IkaaJhx4P -0ffqDkBnu6zCX7/fdHpVQufVOg2DFUj1p9wv4q0UMqSwsMJPGxLU1kh0FVM3Ahtd -tpsALCxeCjhcW1RxBY5cdn4Ili9EW71LLsHOs3XOh9gsu/p9ATt9OeXEe5gaqDlA -avToXrDwazsOXDUxrkfX8F2nkm2SGQNMl1b8znqW1hTj0iNTdpksSlyvi33gPmkP -XymEbZGJEGaDA0vChiCVaLeWmJC9Vv/JhJsCAwEAAaNvMG0wDAYDVR0TAQH/BAIw -ADAdBgNVHQ4EFgQU0FJTXzFBp7mHgprYQYNoysYJ2g4wHwYDVR0jBBgwFoAUvJSY -Ob9gwQmrCInY+i2C/xUtcewwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC -MA0GCSqGSIb3DQEBCwUAA4IBAQBIvAUr0/hMv8PYE3PfPdaJYfVAYegqz430Dm9i -VrNmcAURK9kit25c1aMAFLqs8b07NFi8tTaPRsZzOD21UmJ/ncvEnp/OJ1B65NB9 -fNZz7No6CB9lhWwZK7KKCTq6eAlzwE8AqVmjEZFCm6chUi1pw71jhFJNBpzZbzrm -TeKqb+DeFEtiM78jAU9oCVu0TfVc9sIqQNvLb9d9QVyjSY//vALGNLJz7OV7kN3u -LoId6tic6XLLHJv+HLdh3etJ3Vb0+Li5EwWeypHL5lgUtWnop2bpuXzBpL/JTwmx -vlurU26ZKp1h3KhMrsFAaI2cxYbjvV14D8AxHsUItYUtw+qP ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/duplicate_cn_2.p12 b/src/pki/testdata/ssl/certificates/duplicate_cn_2.p12 Binary files differdeleted file mode 100644 index 1966cfa..0000000 --- a/src/pki/testdata/ssl/certificates/duplicate_cn_2.p12 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/duplicate_cn_2.pem b/src/pki/testdata/ssl/certificates/duplicate_cn_2.pem deleted file mode 100644 index aad7daf..0000000 --- a/src/pki/testdata/ssl/certificates/duplicate_cn_2.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=B Root CA - Validity - Not Before: Aug 14 02:46:40 2014 GMT - Not After : Aug 11 02:46:40 2024 GMT - Subject: O=Bar, CN=Duplicate - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ae:fc:af:a7:fa:a6:12:6f:5d:06:26:96:7c:33: - d1:9f:53:a3:6e:e3:ea:e4:ba:d4:28:3c:f5:c3:60: - 31:80:39:9b:df:ca:4f:08:0b:16:ee:fc:63:06:ae: - ad:dd:77:3a:3e:63:28:be:c3:96:f7:9a:64:6f:b9: - 6e:42:67:5b:12:3d:a3:97:d9:6f:5f:f4:06:a0:58: - 52:57:34:d3:4e:48:91:a6:89:87:1e:0f:d1:f7:ea: - 0e:40:67:bb:ac:c2:5f:bf:df:74:7a:55:42:e7:d5: - 3a:0d:83:15:48:f5:a7:dc:2f:e2:ad:14:32:a4:b0: - b0:c2:4f:1b:12:d4:d6:48:74:15:53:37:02:1b:5d: - b6:9b:00:2c:2c:5e:0a:38:5c:5b:54:71:05:8e:5c: - 76:7e:08:96:2f:44:5b:bd:4b:2e:c1:ce:b3:75:ce: - 87:d8:2c:bb:fa:7d:01:3b:7d:39:e5:c4:7b:98:1a: - a8:39:40:6a:f4:e8:5e:b0:f0:6b:3b:0e:5c:35:31: - ae:47:d7:f0:5d:a7:92:6d:92:19:03:4c:97:56:fc: - ce:7a:96:d6:14:e3:d2:23:53:76:99:2c:4a:5c:af: - 8b:7d:e0:3e:69:0f:5f:29:84:6d:91:89:10:66:83: - 03:4b:c2:86:20:95:68:b7:96:98:90:bd:56:ff:c9: - 84:9b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - D0:52:53:5F:31:41:A7:B9:87:82:9A:D8:41:83:68:CA:C6:09:DA:0E - X509v3 Authority Key Identifier: - keyid:BC:94:98:39:BF:60:C1:09:AB:08:89:D8:FA:2D:82:FF:15:2D:71:EC - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - Signature Algorithm: sha256WithRSAEncryption - 39:4e:04:66:dd:24:5b:71:c4:aa:9b:e2:97:f1:02:63:43:aa: - 3c:b5:a0:cb:9a:da:40:f5:b7:30:6d:04:14:c4:7a:e6:9f:8a: - 89:23:3a:71:60:7e:8a:d8:07:aa:2c:fb:b3:27:1a:e6:cd:78: - 1f:03:7b:6d:be:d1:67:4e:39:77:43:a6:e4:b1:ab:89:31:14: - b5:b7:b0:88:fd:1f:e2:a8:9e:1f:b6:bf:f2:6e:a1:6b:13:3d: - 57:98:1e:7c:a9:39:c7:27:99:97:3f:d4:e1:11:43:26:aa:05: - 71:c2:9f:3f:92:b9:17:d5:3a:e1:ab:ca:59:06:fb:fd:18:b1: - a8:b9:76:69:da:40:d7:f9:e9:86:d7:9c:94:bc:5d:5c:4f:9a: - c6:80:15:05:da:d9:c8:9a:ad:7a:81:3f:a8:1f:63:db:14:04: - 9e:2b:10:4e:14:99:02:6f:72:73:f4:b4:8c:18:3d:52:9f:35: - 6d:48:c7:8d:55:8f:9b:68:c8:7e:a4:56:0b:e6:6a:19:b0:ab: - ab:76:19:d4:02:01:eb:dd:9b:e1:78:b0:1f:11:83:38:b0:bf: - 25:5a:0b:d7:c8:6f:f0:6f:1e:91:9a:62:8a:22:79:7d:1f:6e: - b6:e3:1a:5c:f9:aa:8e:f0:a4:d2:55:fc:ea:e5:48:3c:1e:6a: - e5:a4:4e:01 ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAlCIFJv -b3QgQ0EwHhcNMTQwODE0MDI0NjQwWhcNMjQwODExMDI0NjQwWjAiMQwwCgYDVQQK -DANCYXIxEjAQBgNVBAMMCUR1cGxpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAK78r6f6phJvXQYmlnwz0Z9To27j6uS61Cg89cNgMYA5m9/KTwgL -Fu78Ywaurd13Oj5jKL7DlveaZG+5bkJnWxI9o5fZb1/0BqBYUlc0005IkaaJhx4P -0ffqDkBnu6zCX7/fdHpVQufVOg2DFUj1p9wv4q0UMqSwsMJPGxLU1kh0FVM3Ahtd -tpsALCxeCjhcW1RxBY5cdn4Ili9EW71LLsHOs3XOh9gsu/p9ATt9OeXEe5gaqDlA -avToXrDwazsOXDUxrkfX8F2nkm2SGQNMl1b8znqW1hTj0iNTdpksSlyvi33gPmkP -XymEbZGJEGaDA0vChiCVaLeWmJC9Vv/JhJsCAwEAAaNvMG0wDAYDVR0TAQH/BAIw -ADAdBgNVHQ4EFgQU0FJTXzFBp7mHgprYQYNoysYJ2g4wHwYDVR0jBBgwFoAUvJSY -Ob9gwQmrCInY+i2C/xUtcewwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC -MA0GCSqGSIb3DQEBCwUAA4IBAQA5TgRm3SRbccSqm+KX8QJjQ6o8taDLmtpA9bcw -bQQUxHrmn4qJIzpxYH6K2AeqLPuzJxrmzXgfA3ttvtFnTjl3Q6bksauJMRS1t7CI -/R/iqJ4ftr/ybqFrEz1XmB58qTnHJ5mXP9ThEUMmqgVxwp8/krkX1Trhq8pZBvv9 -GLGouXZp2kDX+emG15yUvF1cT5rGgBUF2tnImq16gT+oH2PbFASeKxBOFJkCb3Jz -9LSMGD1SnzVtSMeNVY+baMh+pFYL5moZsKurdhnUAgHr3ZvheLAfEYM4sL8lWgvX -yG/wbx6RmmKKInl9H2624xpc+aqO8KTSVfzq5Ug8HmrlpE4B ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ec-prime256v1-1.key b/src/pki/testdata/ssl/certificates/ec-prime256v1-1.key deleted file mode 100644 index 43ba034..0000000 --- a/src/pki/testdata/ssl/certificates/ec-prime256v1-1.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8YeFfq6kLtUZziTV -eBxKf4sdzWhBIrmoa7R6IQ/L0g2hRANCAATwrGqIPnPdqDreHFlZqECUQ0AjHbyi -NWFYmGc3FkPsCS1MWu2WhMYdw7UuLDdMKge7Q6IWMsHum/4G04hRdTYL ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/ec-prime256v1-2.key b/src/pki/testdata/ssl/certificates/ec-prime256v1-2.key deleted file mode 100644 index bfdcc94..0000000 --- a/src/pki/testdata/ssl/certificates/ec-prime256v1-2.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgSCf4GodSLqPExkQ0 -Ik8+89ysmrauzOM+YOw7a6XXxpOhRANCAASTFjEdz9MMLzVvqiKJ6hiEmG7+tfn1 -6r5Odwu8dkIr69J5RljzPLAbHXN4kXF/ohZbBvKnX+1cEUDO+kBtAHMB ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/ec-prime256v1-3.key b/src/pki/testdata/ssl/certificates/ec-prime256v1-3.key deleted file mode 100644 index de0b671..0000000 --- a/src/pki/testdata/ssl/certificates/ec-prime256v1-3.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgSFwCrUE0q+J8WdaB -wuQtvtQuvSVy4xrVUVKbg/b8qmShRANCAAQ0MQNe+C3m+ZxRjUC2VHut66EhAqDQ -EXOCJ3se7ctMpdmVa2ml/4cjz3lnrfbSYe/mM5v3hDN8u8dYmk7zDoL3 ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/eku-test-root.pem b/src/pki/testdata/ssl/certificates/eku-test-root.pem deleted file mode 100644 index c233e40..0000000 --- a/src/pki/testdata/ssl/certificates/eku-test-root.pem +++ /dev/null @@ -1,77 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 55:72:d4:d8:57:fc:9c:cf:51:b8:6c:e7:a7:d1:a6:f3:b3:f1:25:fa - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = 2048 RSA Test Root CA - Validity - Not Before: Feb 17 17:08:50 2023 GMT - Not After : Feb 14 17:08:50 2033 GMT - Subject: CN = 2048 RSA Test Root CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:d0:bc:d5:52:0a:01:4c:04:65:37:00:73:17:af: - 1a:53:d5:0a:b1:9c:c0:5b:20:ff:c0:b4:bd:f2:d4: - b2:1d:2c:a5:c3:d7:eb:68:b7:f7:ab:2d:b3:6c:00: - c2:7a:b0:f7:5e:b1:8b:29:92:79:08:37:f6:ec:46: - 2d:66:29:7c:66:8c:d4:54:f0:35:4d:ad:1e:e6:ef: - 4f:43:9d:96:2f:78:49:66:eb:ea:4f:b9:e9:eb:27: - 33:6e:03:1f:3b:c1:e4:6d:bb:a9:68:62:1c:fd:78: - 0d:57:f2:58:89:16:4f:8d:1d:2d:94:2a:ea:b8:1a: - 1b:57:b8:ad:8f:67:44:23:04:7f:c9:1a:1c:4a:f3: - 19:15:1a:39:a6:fc:c9:17:ae:5e:40:97:e2:b3:ec: - 02:4c:1b:65:0e:99:6a:d4:fe:c7:04:56:14:0c:8e: - 0f:ee:e8:fb:4e:63:c4:cf:4a:36:ac:f5:a6:f7:1d: - 26:07:e9:33:a9:f3:31:ee:1d:27:fc:15:10:a5:83: - 7e:59:26:6e:24:32:87:af:19:31:6c:99:24:05:d9: - 55:71:03:b8:b3:b6:75:f8:ee:04:ff:04:7f:b0:b6: - 57:ad:24:e3:a6:f9:46:2c:f7:b5:53:31:d6:49:c6: - c3:1e:7f:a4:f0:6d:47:32:c9:8a:ff:f3:b6:7b:fd: - d3:7f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - D5:28:55:87:C7:A3:BF:D7:C4:CE:BE:3D:01:D2:BE:8B:7C:E4:E2:E2 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 17:28:d3:4e:0f:70:db:86:b8:08:e2:0d:92:d1:4c:f6:32:70: - 52:6b:3f:1f:96:a0:bd:a4:d4:f8:ed:b5:a4:9e:0a:ef:45:09: - e4:1f:8a:af:50:2d:03:4e:1c:ed:46:71:3d:91:d6:a9:0f:8f: - bb:4f:38:a4:3c:18:2f:ff:1f:07:9e:17:06:a6:9a:f9:4d:01: - f6:79:c9:aa:fe:01:90:79:dd:d3:eb:6d:ea:0b:b9:6c:df:9c: - 1f:4f:31:25:70:71:58:9c:62:6a:5a:85:7d:8f:20:ae:97:d4: - e0:69:8a:79:4d:48:34:fe:c0:99:98:c3:33:ce:f3:07:80:c2: - 4b:95:a3:2e:ba:cb:ee:d7:4d:a3:e1:88:9e:71:8b:64:47:83: - 02:02:72:b0:46:ca:4f:e3:b1:f4:2c:f1:65:58:09:7a:81:18: - b7:35:55:50:6a:37:0a:0f:87:d3:d2:b2:2f:6f:93:e1:7d:e2: - ca:50:1f:a9:a4:6d:bc:40:1a:6e:d4:55:5e:99:e0:9c:77:7c: - b0:06:d3:7b:0b:cb:a2:9a:3a:9a:06:b6:59:3d:50:d5:d0:7b: - e0:51:c4:88:38:24:ba:80:3c:f0:42:07:24:c3:5c:e2:b5:6e: - bf:8b:37:b1:df:e9:7e:6e:33:d6:b2:af:d5:51:62:eb:b0:5a: - 52:54:52:a3 ------BEGIN CERTIFICATE----- -MIIDEDCCAfigAwIBAgIUVXLU2Ff8nM9RuGznp9Gm87PxJfowDQYJKoZIhvcNAQEL -BQAwIDEeMBwGA1UEAwwVMjA0OCBSU0EgVGVzdCBSb290IENBMB4XDTIzMDIxNzE3 -MDg1MFoXDTMzMDIxNDE3MDg1MFowIDEeMBwGA1UEAwwVMjA0OCBSU0EgVGVzdCBS -b290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0LzVUgoBTARl -NwBzF68aU9UKsZzAWyD/wLS98tSyHSylw9fraLf3qy2zbADCerD3XrGLKZJ5CDf2 -7EYtZil8ZozUVPA1Ta0e5u9PQ52WL3hJZuvqT7np6yczbgMfO8HkbbupaGIc/XgN -V/JYiRZPjR0tlCrquBobV7itj2dEIwR/yRocSvMZFRo5pvzJF65eQJfis+wCTBtl -Dplq1P7HBFYUDI4P7uj7TmPEz0o2rPWm9x0mB+kzqfMx7h0n/BUQpYN+WSZuJDKH -rxkxbJkkBdlVcQO4s7Z1+O4E/wR/sLZXrSTjpvlGLPe1UzHWScbDHn+k8G1HMsmK -//O2e/3TfwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTVKFWH -x6O/18TOvj0B0r6LfOTi4jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQAD -ggEBABco004PcNuGuAjiDZLRTPYycFJrPx+WoL2k1PjttaSeCu9FCeQfiq9QLQNO -HO1GcT2R1qkPj7tPOKQ8GC//HweeFwammvlNAfZ5yar+AZB53dPrbeoLuWzfnB9P -MSVwcVicYmpahX2PIK6X1OBpinlNSDT+wJmYwzPO8weAwkuVoy66y+7XTaPhiJ5x -i2RHgwICcrBGyk/jsfQs8WVYCXqBGLc1VVBqNwoPh9PSsi9vk+F94spQH6mkbbxA -Gm7UVV6Z4Jx3fLAG03sLy6KaOpoGtlk9UNXQe+BRxIg4JLqAPPBCByTDXOK1br+L -N7Hf6X5uM9ayr9VRYuuwWlJUUqM= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ev_test.pem b/src/pki/testdata/ssl/certificates/ev_test.pem deleted file mode 100644 index 36fc814..0000000 --- a/src/pki/testdata/ssl/certificates/ev_test.pem +++ /dev/null @@ -1,70 +0,0 @@ -Certificate: - Data: - Version: 1 (0x0) - Serial Number: - 05:1a:d9:14:e2:4e:b8:9f:be:d0:25:9e:80:e4:f8:22:bc:71:9d:be - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, L = Mountain View, O = Test Org - Validity - Not Before: Oct 3 17:20:32 2022 GMT - Not After : Oct 2 17:20:32 2024 GMT - Subject: C = US, ST = California, L = Mountain View, O = Test Org - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:9f:e4:ed:a7:ff:2d:7e:3b:26:5a:d2:5f:5e:81: - 5d:b7:b0:c7:b6:7c:dc:0b:5c:b2:f5:0f:f6:ee:7b: - 34:cc:4b:91:c4:bf:36:ea:0c:4c:c2:b6:d8:8f:5d: - 35:cc:1e:63:43:a8:3f:e6:36:47:1a:fa:c7:30:89: - 8d:5f:cd:74:66:69:1c:50:69:6d:b6:ac:25:95:ef: - 49:fb:1b:7f:13:45:1b:8a:2d:88:06:4c:b4:36:20: - a2:6e:44:e5:f9:fe:e4:84:de:93:64:7f:22:22:46: - 3e:5c:f6:c3:6b:a2:66:05:27:a6:29:91:3d:70:8b: - b9:f3:07:85:01:e7:79:25:aa:8f:88:b4:8f:6a:17: - a7:5f:23:5a:50:5e:f0:ce:52:f5:1c:a5:b0:d2:76: - 8a:f7:75:7f:0e:57:e9:c3:74:2c:f1:ad:25:9a:4c: - 4b:ad:f9:91:a7:e2:18:db:19:79:7c:6f:1d:8f:c0: - ad:f7:39:ae:6b:1c:75:9e:30:70:04:81:f9:33:25: - 38:aa:df:0d:ad:73:2e:b1:5c:03:99:a0:7f:01:db: - 62:c9:77:ed:da:9b:e6:92:0c:a8:f9:51:f0:66:0b: - 8c:0f:00:a5:fa:5d:9b:14:e0:5f:57:0a:75:a5:cc: - a2:ba:f9:06:9b:bd:6b:d9:d7:c1:e0:02:b4:d0:c2: - b9:1f - Exponent: 65537 (0x10001) - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 42:f5:17:0a:da:d7:5c:2c:1f:af:04:99:e9:d9:d6:4c:0c:d6: - cb:ac:6d:0d:4c:0f:b0:3a:18:36:ab:68:d2:5f:8e:d9:e0:13: - a2:64:bf:72:33:7f:86:c2:26:d8:40:5c:af:38:0b:5b:22:30: - dc:88:4f:5f:73:b0:0b:60:b9:30:be:8d:b9:54:9e:f9:2d:c8: - fb:d1:07:49:56:16:7a:8f:f2:7e:c4:c0:9b:be:f4:2d:a7:4c: - de:eb:cc:d5:fe:6f:ab:cf:65:15:f6:ab:1f:ed:1f:5d:09:4a: - 65:aa:3e:5c:55:af:21:d9:ea:2c:4e:d4:f9:37:70:84:12:f5: - 99:fb:89:d0:eb:9d:d2:62:b6:03:43:0f:e7:72:22:16:58:58: - a3:7c:b8:ee:f1:fd:76:73:5d:31:08:82:68:78:9b:9c:88:3e: - 53:b8:76:0e:a4:9e:36:95:7f:f5:18:d5:32:fb:08:54:1c:89: - 8e:73:80:13:99:39:32:79:ba:c1:00:aa:d3:ab:05:a6:d1:27: - fb:22:95:68:2f:c1:7a:5a:92:73:6a:de:0e:b4:c5:c8:9f:e6: - 4e:8b:68:d2:23:5d:3c:16:54:02:dd:90:12:4e:fb:2c:a5:3b: - 42:46:bb:67:e6:bb:1b:f6:94:75:30:91:28:cd:a1:db:6e:1d: - be:db:be:f8 ------BEGIN CERTIFICATE----- -MIIDITCCAgkCFAUa2RTiTrifvtAlnoDk+CK8cZ2+MA0GCSqGSIb3DQEBCwUAME0x -CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3Vu -dGFpbiBWaWV3MREwDwYDVQQKDAhUZXN0IE9yZzAeFw0yMjEwMDMxNzIwMzJaFw0y -NDEwMDIxNzIwMzJaME0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh -MRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MREwDwYDVQQKDAhUZXN0IE9yZzCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ/k7af/LX47JlrSX16BXbewx7Z8 -3AtcsvUP9u57NMxLkcS/NuoMTMK22I9dNcweY0OoP+Y2Rxr6xzCJjV/NdGZpHFBp -bbasJZXvSfsbfxNFG4otiAZMtDYgom5E5fn+5ITek2R/IiJGPlz2w2uiZgUnpimR -PXCLufMHhQHneSWqj4i0j2oXp18jWlBe8M5S9RylsNJ2ivd1fw5X6cN0LPGtJZpM -S635kafiGNsZeXxvHY/Arfc5rmscdZ4wcASB+TMlOKrfDa1zLrFcA5mgfwHbYsl3 -7dqb5pIMqPlR8GYLjA8ApfpdmxTgX1cKdaXMorr5Bpu9a9nXweACtNDCuR8CAwEA -ATANBgkqhkiG9w0BAQsFAAOCAQEAQvUXCtrXXCwfrwSZ6dnWTAzWy6xtDUwPsDoY -Nqto0l+O2eATomS/cjN/hsIm2EBcrzgLWyIw3IhPX3OwC2C5ML6NuVSe+S3I+9EH -SVYWeo/yfsTAm770LadM3uvM1f5vq89lFfarH+0fXQlKZao+XFWvIdnqLE7U+Tdw -hBL1mfuJ0Oud0mK2A0MP53IiFlhYo3y47vH9dnNdMQiCaHibnIg+U7h2DqSeNpV/ -9RjVMvsIVByJjnOAE5k5Mnm6wQCq06sFptEn+yKVaC/BelqSc2reDrTFyJ/mToto -0iNdPBZUAt2QEk77LKU7Qka7Z+a7G/aUdTCRKM2h224dvtu++A== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ev_test_state_only.pem b/src/pki/testdata/ssl/certificates/ev_test_state_only.pem deleted file mode 100644 index 48f154b..0000000 --- a/src/pki/testdata/ssl/certificates/ev_test_state_only.pem +++ /dev/null @@ -1,69 +0,0 @@ -Certificate: - Data: - Version: 1 (0x0) - Serial Number: - 08:e7:72:d8:3b:cb:68:18:0b:32:f6:09:9f:39:d9:79:bd:af:c7:e0 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, O = Test Org - Validity - Not Before: Oct 3 17:20:32 2022 GMT - Not After : Oct 2 17:20:32 2024 GMT - Subject: C = US, ST = California, O = Test Org - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a4:1f:f6:07:e1:9b:b1:eb:c6:5a:45:70:e2:80: - c0:71:48:d3:2e:d8:1e:38:a0:4a:5e:d0:28:d0:81: - e8:3d:ec:bf:c9:94:c2:e8:1d:7c:c2:fd:30:e6:d3: - 72:f3:e5:83:95:df:ba:94:82:db:7b:c7:af:2e:c4: - 6e:96:fa:8b:75:7c:78:33:3b:69:8f:89:aa:68:14: - e5:d8:a8:22:51:85:90:65:9b:98:27:8d:f0:a7:ad: - 3f:b0:46:47:67:8c:a0:6f:65:de:c4:5c:f0:e3:4c: - ed:d4:63:21:dc:d4:77:f6:98:40:95:f3:38:c7:12: - fe:5a:b0:0e:78:3d:c4:ea:c6:b8:56:51:55:9f:64: - 08:22:63:a1:52:01:7c:a5:95:b4:17:61:27:a0:e0: - aa:28:df:21:22:c5:22:66:e9:a8:0e:7a:81:d1:c0: - b8:8d:95:17:9a:71:2c:67:2d:ef:51:cf:31:3b:19: - e2:b0:5f:3f:05:41:ac:7c:ee:4b:64:db:0e:56:97: - 93:f5:ce:9a:62:28:ef:e9:a2:15:91:10:0a:a6:67: - 08:ad:e3:e2:b4:9e:50:d7:c2:52:76:0d:ca:a4:36: - 8b:0b:41:f9:0d:c6:13:cb:6b:97:52:f3:02:19:aa: - 4f:96:83:9f:c6:ff:60:ef:ca:4e:59:ba:cd:c1:56: - 1e:55 - Exponent: 65537 (0x10001) - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 7a:50:d2:45:b9:8c:3c:1d:90:a4:fb:cf:15:fd:88:76:39:ed: - 9d:70:d5:81:58:1f:eb:ad:2f:dd:5d:cd:3b:be:bb:90:0f:5b: - c9:89:8d:d4:43:60:a9:2e:c1:38:f0:11:44:ab:c6:89:21:d3: - 46:75:1a:d9:bd:95:15:09:a0:82:b3:e2:86:e9:30:c1:41:4f: - 56:6c:3f:2d:b7:f8:15:7c:2e:67:b1:91:41:2b:63:77:2c:8e: - ee:66:00:c6:1f:5f:d2:38:49:2a:f3:38:6c:42:c6:26:b7:36: - a8:63:ac:89:ef:46:0a:c3:79:fd:b9:94:d9:37:7a:c2:2d:33: - 61:2b:6d:58:33:cb:bd:98:3c:70:37:e5:12:b9:b5:7a:8f:85: - 73:f5:fc:6a:7e:06:8c:91:2d:97:db:84:f6:ba:9f:39:5f:84: - f8:37:73:0f:29:35:bb:0c:bd:49:6e:b3:67:4c:f2:e2:c7:7b: - 27:45:78:19:fa:2b:ba:f8:fc:ce:31:9e:b5:91:61:27:b7:01: - 5f:ac:7a:41:c0:5b:da:f3:cc:72:21:3a:11:dd:08:8b:c3:d2: - d3:1e:6d:0e:e0:e9:3d:8b:aa:67:a2:6f:c6:02:ac:e8:b2:7e: - 69:60:e2:7e:40:56:32:d6:76:42:ed:e5:56:db:07:e6:4f:39: - 74:3f:de:8b ------BEGIN CERTIFICATE----- -MIIC8TCCAdkCFAjnctg7y2gYCzL2CZ852Xm9r8fgMA0GCSqGSIb3DQEBCwUAMDUx -CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQKDAhUZXN0 -IE9yZzAeFw0yMjEwMDMxNzIwMzJaFw0yNDEwMDIxNzIwMzJaMDUxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQKDAhUZXN0IE9yZzCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKQf9gfhm7HrxlpFcOKAwHFI0y7Y -HjigSl7QKNCB6D3sv8mUwugdfML9MObTcvPlg5XfupSC23vHry7Ebpb6i3V8eDM7 -aY+JqmgU5dioIlGFkGWbmCeN8KetP7BGR2eMoG9l3sRc8ONM7dRjIdzUd/aYQJXz -OMcS/lqwDng9xOrGuFZRVZ9kCCJjoVIBfKWVtBdhJ6DgqijfISLFImbpqA56gdHA -uI2VF5pxLGct71HPMTsZ4rBfPwVBrHzuS2TbDlaXk/XOmmIo7+miFZEQCqZnCK3j -4rSeUNfCUnYNyqQ2iwtB+Q3GE8trl1LzAhmqT5aDn8b/YO/KTlm6zcFWHlUCAwEA -ATANBgkqhkiG9w0BAQsFAAOCAQEAelDSRbmMPB2QpPvPFf2IdjntnXDVgVgf660v -3V3NO767kA9byYmN1ENgqS7BOPARRKvGiSHTRnUa2b2VFQmggrPihukwwUFPVmw/ -Lbf4FXwuZ7GRQStjdyyO7mYAxh9f0jhJKvM4bELGJrc2qGOsie9GCsN5/bmU2Td6 -wi0zYSttWDPLvZg8cDflErm1eo+Fc/X8an4GjJEtl9uE9rqfOV+E+DdzDyk1uwy9 -SW6zZ0zy4sd7J0V4Gforuvj8zjGetZFhJ7cBX6x6QcBb2vPMciE6Ed0Ii8PS0x5t -DuDpPYuqZ6JvxgKs6LJ+aWDifkBWMtZ2Qu3lVtsH5k85dD/eiw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/expired_cert.pem b/src/pki/testdata/ssl/certificates/expired_cert.pem deleted file mode 100644 index 0918e46..0000000 --- a/src/pki/testdata/ssl/certificates/expired_cert.pem +++ /dev/null @@ -1,113 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDRq7weUiGT7XM -lZAosAKK0m8PeYfDwrrz6wqTSmXpJS8BzINzyIBa6zoIETKvhcG84QeDdAoCAft9 -nV6uPLxzzmuRhWwiAarYIuSg7qiiNgD66IjA05sWPMHBuWSD7Eb2UyxLCME9kxH+ -LFcxDGBOrTf8NSKpr7hMaZkhpY8MyKqWKbaF1oXUH7CqQ+95HDgc2a05d9+xV2cy -EVTTG8VAvf8j0nVSxCcSrOfqH9+v488diuGdJqxt7yH3jvX9BfqzKlUEv7J2GIiB -F3zztOZUj8RLzbLy18eKMeCfjxjzxnxYmfT6chQadzaAUwxHlPSKskKIuFj8T/Fl -G4EBfabrAgMBAAECggEAOq5M97qajrH5Ycc4EOIDgZAHC9FreOpVn+LrxKNAyLUB -0TqR7gM8fxXc1HvGjXRWadn9lgUS1NOfrXnS7+0UfIB1Vr+PZRC3NEgYCDxvtH8i -AERMhBWSrzYGy55YlEQ2duM7ljjFSSme6JCOixC7CCmJf2LATdmeOmgpOjE0MZS9 -Cz6W1AEw949YIsNCyBuG54Pf50RR/uwk8a9bctOlL7fmMoHETslgmwVYHGoY2TQH -WsLHcjEpVPmyigbkGQs6xteCeKLo+SN+3cdlzZVkhrRm85zXoY9Fk08Ll21cRHOF -waGoGg9GYQDrE1aWXKZqMoAL26TvsFa4KRUcm7/ZEQKBgQDsBRjBzhprehSVaFeM -8JXL0DKAk8bLm+kFo2CoLmNphUNk43q7MnfM1Dp3HM4UEq2AIA8oKtrI1aqc7ChT -JDMKA57nNQ1SSlFhnR0maFRD32h8BlFW6qNpl1S0vh/clDT3keTXVXpiNtV4z0uL -r5kKE/j4ya91nJRoFuZZaQz0hQKBgQDTzpuTN+dMcI2r1GcTA6wonRshypRi8d1K -DsBPcGX/SuT8iyorGvJh1IG9FSYM+0liN99fA3xu3PC8NyL2WkaN+KWKJaCf0BqN -fLYZb9s2b4ae3qrTzGyIjS26DmX1ZuBkp2nvCLqlfBDaukn03ZiRQOe9zeUmYS7h -x0nnp+CArwKBgAzQQgXTkK+hExkBby9hqGBGT1eXrkVDk6UQt6Cp1A/Ygk4p43Hi -TYq7QulQkQeZ8/1uwCPoH7SjlP2r/Ix2/KZgh/H5eV2sVzq7cuew5lJBAMUq+qOD -XZfP9XNSlxw8l5uROiFOrLREUdabOni88cwQRYYMPRBfjdcQ1zSndWKZAoGBAIBy -i2Z8QIjauQ+7f8bIM19t50ZW1CYtB0YiK/4A69omUTfWLXx2mwc5GHTSnoDA43/s -4kl8k7mnw1ZhGZLMrHzsjXd52i8QxQmI1+YVL5uThtBRuMc48ZjeBR0QHkT0XqCr -5lJPuOEinBYJY1BcEmoEMoWol47u4L+LXAZgiIWBAoGAEm+mJyT22ajB4JK+Zizm -qyY2YF9+XU4aRN+zuAYX6yVulK6wLF4g3YWEEP2YdFICMZa7AbuQK9t6RXMXH9/C -n64w/TBNvihKkAb9NqFFjqAE1DqTPeeusoaJ7kHfdF12F7bUNFbvixk+x8bt9CQC -9p8zmBjX4cGflRSpat09lr4= ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:65 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Jan 1 00:00:00 2006 GMT - Not After : Jan 1 00:00:00 2007 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c3:46:ae:f0:79:48:86:4f:b5:cc:95:90:28:b0: - 02:8a:d2:6f:0f:79:87:c3:c2:ba:f3:eb:0a:93:4a: - 65:e9:25:2f:01:cc:83:73:c8:80:5a:eb:3a:08:11: - 32:af:85:c1:bc:e1:07:83:74:0a:02:01:fb:7d:9d: - 5e:ae:3c:bc:73:ce:6b:91:85:6c:22:01:aa:d8:22: - e4:a0:ee:a8:a2:36:00:fa:e8:88:c0:d3:9b:16:3c: - c1:c1:b9:64:83:ec:46:f6:53:2c:4b:08:c1:3d:93: - 11:fe:2c:57:31:0c:60:4e:ad:37:fc:35:22:a9:af: - b8:4c:69:99:21:a5:8f:0c:c8:aa:96:29:b6:85:d6: - 85:d4:1f:b0:aa:43:ef:79:1c:38:1c:d9:ad:39:77: - df:b1:57:67:32:11:54:d3:1b:c5:40:bd:ff:23:d2: - 75:52:c4:27:12:ac:e7:ea:1f:df:af:e3:cf:1d:8a: - e1:9d:26:ac:6d:ef:21:f7:8e:f5:fd:05:fa:b3:2a: - 55:04:bf:b2:76:18:88:81:17:7c:f3:b4:e6:54:8f: - c4:4b:cd:b2:f2:d7:c7:8a:31:e0:9f:8f:18:f3:c6: - 7c:58:99:f4:fa:72:14:1a:77:36:80:53:0c:47:94: - f4:8a:b2:42:88:b8:58:fc:4f:f1:65:1b:81:01:7d: - a6:eb - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - F3:9E:DE:55:DE:AD:DA:14:A3:B8:AA:E5:3A:D3:84:E6:88:B1:7E:C6 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 36:3c:43:bc:10:33:eb:68:3a:c5:9c:24:4c:b4:ce:59:6f:88: - 13:02:e4:a4:31:e4:f2:8d:cb:b3:f1:bb:56:a3:c5:bb:f9:e9: - 28:3b:88:97:c4:4a:fa:79:df:23:60:8b:7f:32:14:21:43:de: - 60:87:21:e9:de:9a:b6:42:8c:e5:fc:c5:bd:f2:08:f8:3a:82: - 00:b7:ed:14:3a:76:c1:4b:ca:6d:17:32:27:e3:4e:32:d7:08: - 17:03:79:77:3f:81:a1:39:c9:d3:4e:32:83:65:18:ca:f7:fb: - 1a:6c:54:27:2c:e2:1e:82:dd:c1:ef:a9:cf:01:d7:4e:e2:ca: - e1:2e:3f:64:7d:ce:4a:45:22:60:c3:cf:bd:96:91:54:99:9b: - 99:12:d7:1c:7d:3e:54:8a:00:f7:00:c4:e9:6b:61:2b:87:f0: - 6a:51:c0:62:ce:24:58:6a:af:bb:76:34:cd:6a:25:84:94:2b: - c2:66:9f:e2:50:f6:d0:6a:1b:6a:be:de:ed:db:ce:69:1b:17: - 87:91:36:46:8d:cf:6a:82:38:06:b2:99:c4:da:10:17:77:90: - 15:e1:c0:78:76:72:fd:12:65:06:1e:b6:26:eb:bb:99:a4:42: - b3:ef:14:73:2d:5d:03:ee:f7:b4:17:9d:c6:18:dd:71:d3:81: - 88:11:ba:7e ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwmUwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0wNjAxMDEwMDAwMDBaFw0wNzAxMDEwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDRq7weUiGT7XMlZAosAKK0m8PeYfDwrrz -6wqTSmXpJS8BzINzyIBa6zoIETKvhcG84QeDdAoCAft9nV6uPLxzzmuRhWwiAarY -IuSg7qiiNgD66IjA05sWPMHBuWSD7Eb2UyxLCME9kxH+LFcxDGBOrTf8NSKpr7hM -aZkhpY8MyKqWKbaF1oXUH7CqQ+95HDgc2a05d9+xV2cyEVTTG8VAvf8j0nVSxCcS -rOfqH9+v488diuGdJqxt7yH3jvX9BfqzKlUEv7J2GIiBF3zztOZUj8RLzbLy18eK -MeCfjxjzxnxYmfT6chQadzaAUwxHlPSKskKIuFj8T/FlG4EBfabrAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTznt5V3q3aFKO4quU604TmiLF+xjAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEANjxDvBAz62g6xZwkTLTOWW+IEwLkpDHk8o3Ls/G7VqPFu/npKDuIl8RK+nnf -I2CLfzIUIUPeYIch6d6atkKM5fzFvfII+DqCALftFDp2wUvKbRcyJ+NOMtcIFwN5 -dz+BoTnJ004yg2UYyvf7GmxUJyziHoLdwe+pzwHXTuLK4S4/ZH3OSkUiYMPPvZaR -VJmbmRLXHH0+VIoA9wDE6WthK4fwalHAYs4kWGqvu3Y0zWolhJQrwmaf4lD20Gob -ar7e7dvOaRsXh5E2Ro3PaoI4BrKZxNoQF3eQFeHAeHZy/RJlBh62Juu7maRCs+8U -cy1dA+73tBedxhjdcdOBiBG6fg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/foaf.me.chromium-test-cert.der b/src/pki/testdata/ssl/certificates/foaf.me.chromium-test-cert.der Binary files differdeleted file mode 100644 index da0afc6..0000000 --- a/src/pki/testdata/ssl/certificates/foaf.me.chromium-test-cert.der +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/google.binary.p7b b/src/pki/testdata/ssl/certificates/google.binary.p7b Binary files differdeleted file mode 100644 index 052e388..0000000 --- a/src/pki/testdata/ssl/certificates/google.binary.p7b +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/google.chain.pem b/src/pki/testdata/ssl/certificates/google.chain.pem deleted file mode 100644 index e78af71..0000000 --- a/src/pki/testdata/ssl/certificates/google.chain.pem +++ /dev/null @@ -1,38 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM -MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg -THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0x -MTEyMTgyMzU5NTlaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh -MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRcw -FQYDVQQDFA53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC -gYEA6PmGD5D6htffvXImttdEAoN4c9kCKO+IRTn7EOh8rqk41XXGOOsKFQebg+jN -gtXj9xVoRaELGYW84u+E593y17iYwqG7tcFR39SDAqc9BkJb4SLD3muFXxzW2k6L -05vuuWciKh0R73mkszeK9P4Y/bz5RiNQl/Os/CRGK1w7t0UCAwEAAaOB5zCB5DAM -BgNVHRMBAf8EAjAAMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwudGhhd3Rl -LmNvbS9UaGF3dGVTR0NDQS5jcmwwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUF -BwMCBglghkgBhvhCBAEwcgYIKwYBBQUHAQEEZjBkMCIGCCsGAQUFBzABhhZodHRw -Oi8vb2NzcC50aGF3dGUuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vd3d3LnRoYXd0 -ZS5jb20vcmVwb3NpdG9yeS9UaGF3dGVfU0dDX0NBLmNydDANBgkqhkiG9w0BAQUF -AAOBgQCfQ89bxFApsb/isJr/aiEdLRLDLE5a+RLizrmCUi3nHX4adpaQedEkUjh5 -u2ONgJd8IyAPkU0Wueru9G2Jysa9zCRo1kNbzipYvzwY4OA8Ys+WAi0oR1A04Se6 -z5nRUP8pJcA2NhUzUnC+MY+f6H/nEQyNv4SgQhqAibAxWEEHXw== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDIzCCAoygAwIBAgIEMAAAAjANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDMgUHVi -bGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNTEzMDAw -MDAwWhcNMTQwNTEyMjM1OTU5WjBMMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh -d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBD -QTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1NNn0I0Vf67NMf59HZGhPwtx -PKzMyGT7Y/wySweUvW+Aui/hBJPAM/wJMyPpC3QrccQDxtLN4i/1CWPN/0ilAL/g -5/OIty0y3pg25gqtAHvEZEo7hHUD8nCSfQ5i9SGraTaEMXWQ+L/HbIgbBpV8yeWo -3nWhLHpo39XKHIdYYBkCAwEAAaOB/jCB+zASBgNVHRMBAf8ECDAGAQH/AgEAMAsG -A1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAQYwKAYDVR0RBCEwH6QdMBsxGTAX -BgNVBAMTEFByaXZhdGVMYWJlbDMtMTUwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDov -L2NybC52ZXJpc2lnbi5jb20vcGNhMy5jcmwwMgYIKwYBBQUHAQEEJjAkMCIGCCsG -AQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMDQGA1UdJQQtMCsGCCsGAQUF -BwMBBggrBgEFBQcDAgYJYIZIAYb4QgQBBgpghkgBhvhFAQgBMA0GCSqGSIb3DQEB -BQUAA4GBAFWsY+reod3SkF+fC852vhNRj5PZBSvIG3dLrWlQoe7e3P3bB+noOZTc -q3J5Lwa/q4FwxKjt6lM07e8eU9kGx1Yr0Vz00YqOtCuxN5BICEIlxT6Ky3/rbwTR -bcV0oveifHtgPHfNDs5IAn8BL7abN+AqKjbc1YXWrOU/VG+WHgWv ------END CERTIFICATE-----
\ No newline at end of file diff --git a/src/pki/testdata/ssl/certificates/google.pem_cert.p7b b/src/pki/testdata/ssl/certificates/google.pem_cert.p7b deleted file mode 100644 index ba80fb0..0000000 --- a/src/pki/testdata/ssl/certificates/google.pem_cert.p7b +++ /dev/null @@ -1,37 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGeQYJKoZIhvcNAQcCoIIGajCCBmYCAQExADALBgkqhkiG9w0BBwGgggZMMIID -ITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBMMQsw -CQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRk -LjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0xMTEy -MTgyMzU5NTlaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYw -FAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRcwFQYD -VQQDFA53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA -6PmGD5D6htffvXImttdEAoN4c9kCKO+IRTn7EOh8rqk41XXGOOsKFQebg+jNgtXj -9xVoRaELGYW84u+E593y17iYwqG7tcFR39SDAqc9BkJb4SLD3muFXxzW2k6L05vu -uWciKh0R73mkszeK9P4Y/bz5RiNQl/Os/CRGK1w7t0UCAwEAAaOB5zCB5DAMBgNV -HRMBAf8EAjAAMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwudGhhd3RlLmNv -bS9UaGF3dGVTR0NDQS5jcmwwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMC -BglghkgBhvhCBAEwcgYIKwYBBQUHAQEEZjBkMCIGCCsGAQUFBzABhhZodHRwOi8v -b2NzcC50aGF3dGUuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vd3d3LnRoYXd0ZS5j -b20vcmVwb3NpdG9yeS9UaGF3dGVfU0dDX0NBLmNydDANBgkqhkiG9w0BAQUFAAOB -gQCfQ89bxFApsb/isJr/aiEdLRLDLE5a+RLizrmCUi3nHX4adpaQedEkUjh5u2ON -gJd8IyAPkU0Wueru9G2Jysa9zCRo1kNbzipYvzwY4OA8Ys+WAi0oR1A04Se6z5nR -UP8pJcA2NhUzUnC+MY+f6H/nEQyNv4SgQhqAibAxWEEHXzCCAyMwggKMoAMCAQIC -BDAAAAIwDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZl -cmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDUxMzAwMDAwMFoXDTE0MDUxMjIz -NTk1OVowTDELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5n -IChQdHkpIEx0ZC4xFjAUBgNVBAMTDVRoYXd0ZSBTR0MgQ0EwgZ8wDQYJKoZIhvcN -AQEBBQADgY0AMIGJAoGBANTTZ9CNFX+uzTH+fR2RoT8LcTyszMhk+2P8MksHlL1v -gLov4QSTwDP8CTMj6Qt0K3HEA8bSzeIv9Qljzf9IpQC/4OfziLctMt6YNuYKrQB7 -xGRKO4R1A/Jwkn0OYvUhq2k2hDF1kPi/x2yIGwaVfMnlqN51oSx6aN/VyhyHWGAZ -AgMBAAGjgf4wgfswEgYDVR0TAQH/BAgwBgEB/wIBADALBgNVHQ8EBAMCAQYwEQYJ -YIZIAYb4QgEBBAQDAgEGMCgGA1UdEQQhMB+kHTAbMRkwFwYDVQQDExBQcml2YXRl -TGFiZWwzLTE1MDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24u -Y29tL3BjYTMuY3JsMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDov -L29jc3AudGhhd3RlLmNvbTA0BgNVHSUELTArBggrBgEFBQcDAQYIKwYBBQUHAwIG -CWCGSAGG+EIEAQYKYIZIAYb4RQEIATANBgkqhkiG9w0BAQUFAAOBgQBVrGPq3qHd -0pBfnwvOdr4TUY+T2QUryBt3S61pUKHu3tz92wfp6DmU3KtyeS8Gv6uBcMSo7epT -NO3vHlPZBsdWK9Fc9NGKjrQrsTeQSAhCJcU+ist/628E0W3FdKL3onx7YDx3zQ7O -SAJ/AS+2mzfgKio23NWF1qzlP1Rvlh4Fr6EAMQA= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/google.pem_pkcs7.p7b b/src/pki/testdata/ssl/certificates/google.pem_pkcs7.p7b deleted file mode 100644 index 49e2eec..0000000 --- a/src/pki/testdata/ssl/certificates/google.pem_pkcs7.p7b +++ /dev/null @@ -1,37 +0,0 @@ ------BEGIN PKCS7----- -MIIGeQYJKoZIhvcNAQcCoIIGajCCBmYCAQExADALBgkqhkiG9w0BBwGgggZMMIID -ITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBMMQsw -CQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRk -LjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0xMTEy -MTgyMzU5NTlaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYw -FAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRcwFQYD -VQQDFA53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA -6PmGD5D6htffvXImttdEAoN4c9kCKO+IRTn7EOh8rqk41XXGOOsKFQebg+jNgtXj -9xVoRaELGYW84u+E593y17iYwqG7tcFR39SDAqc9BkJb4SLD3muFXxzW2k6L05vu -uWciKh0R73mkszeK9P4Y/bz5RiNQl/Os/CRGK1w7t0UCAwEAAaOB5zCB5DAMBgNV -HRMBAf8EAjAAMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwudGhhd3RlLmNv -bS9UaGF3dGVTR0NDQS5jcmwwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMC -BglghkgBhvhCBAEwcgYIKwYBBQUHAQEEZjBkMCIGCCsGAQUFBzABhhZodHRwOi8v -b2NzcC50aGF3dGUuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vd3d3LnRoYXd0ZS5j -b20vcmVwb3NpdG9yeS9UaGF3dGVfU0dDX0NBLmNydDANBgkqhkiG9w0BAQUFAAOB -gQCfQ89bxFApsb/isJr/aiEdLRLDLE5a+RLizrmCUi3nHX4adpaQedEkUjh5u2ON -gJd8IyAPkU0Wueru9G2Jysa9zCRo1kNbzipYvzwY4OA8Ys+WAi0oR1A04Se6z5nR -UP8pJcA2NhUzUnC+MY+f6H/nEQyNv4SgQhqAibAxWEEHXzCCAyMwggKMoAMCAQIC -BDAAAAIwDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZl -cmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDUxMzAwMDAwMFoXDTE0MDUxMjIz -NTk1OVowTDELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5n -IChQdHkpIEx0ZC4xFjAUBgNVBAMTDVRoYXd0ZSBTR0MgQ0EwgZ8wDQYJKoZIhvcN -AQEBBQADgY0AMIGJAoGBANTTZ9CNFX+uzTH+fR2RoT8LcTyszMhk+2P8MksHlL1v -gLov4QSTwDP8CTMj6Qt0K3HEA8bSzeIv9Qljzf9IpQC/4OfziLctMt6YNuYKrQB7 -xGRKO4R1A/Jwkn0OYvUhq2k2hDF1kPi/x2yIGwaVfMnlqN51oSx6aN/VyhyHWGAZ -AgMBAAGjgf4wgfswEgYDVR0TAQH/BAgwBgEB/wIBADALBgNVHQ8EBAMCAQYwEQYJ -YIZIAYb4QgEBBAQDAgEGMCgGA1UdEQQhMB+kHTAbMRkwFwYDVQQDExBQcml2YXRl -TGFiZWwzLTE1MDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24u -Y29tL3BjYTMuY3JsMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDov -L29jc3AudGhhd3RlLmNvbTA0BgNVHSUELTArBggrBgEFBQcDAQYIKwYBBQUHAwIG -CWCGSAGG+EIEAQYKYIZIAYb4RQEIATANBgkqhkiG9w0BAQUFAAOBgQBVrGPq3qHd -0pBfnwvOdr4TUY+T2QUryBt3S61pUKHu3tz92wfp6DmU3KtyeS8Gv6uBcMSo7epT -NO3vHlPZBsdWK9Fc9NGKjrQrsTeQSAhCJcU+ist/628E0W3FdKL3onx7YDx3zQ7O -SAJ/AS+2mzfgKio23NWF1qzlP1Rvlh4Fr6EAMQA= ------END PKCS7----- diff --git a/src/pki/testdata/ssl/certificates/google.single.der b/src/pki/testdata/ssl/certificates/google.single.der Binary files differdeleted file mode 100644 index f73df17..0000000 --- a/src/pki/testdata/ssl/certificates/google.single.der +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/google.single.pem b/src/pki/testdata/ssl/certificates/google.single.pem deleted file mode 100644 index a03adc4..0000000 --- a/src/pki/testdata/ssl/certificates/google.single.pem +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM -MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg -THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0x -MTEyMTgyMzU5NTlaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh -MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRcw -FQYDVQQDFA53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC -gYEA6PmGD5D6htffvXImttdEAoN4c9kCKO+IRTn7EOh8rqk41XXGOOsKFQebg+jN -gtXj9xVoRaELGYW84u+E593y17iYwqG7tcFR39SDAqc9BkJb4SLD3muFXxzW2k6L -05vuuWciKh0R73mkszeK9P4Y/bz5RiNQl/Os/CRGK1w7t0UCAwEAAaOB5zCB5DAM -BgNVHRMBAf8EAjAAMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwudGhhd3Rl -LmNvbS9UaGF3dGVTR0NDQS5jcmwwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUF -BwMCBglghkgBhvhCBAEwcgYIKwYBBQUHAQEEZjBkMCIGCCsGAQUFBzABhhZodHRw -Oi8vb2NzcC50aGF3dGUuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vd3d3LnRoYXd0 -ZS5jb20vcmVwb3NpdG9yeS9UaGF3dGVfU0dDX0NBLmNydDANBgkqhkiG9w0BAQUF -AAOBgQCfQ89bxFApsb/isJr/aiEdLRLDLE5a+RLizrmCUi3nHX4adpaQedEkUjh5 -u2ONgJd8IyAPkU0Wueru9G2Jysa9zCRo1kNbzipYvzwY4OA8Ys+WAi0oR1A04Se6 -z5nRUP8pJcA2NhUzUnC+MY+f6H/nEQyNv4SgQhqAibAxWEEHXw== ------END CERTIFICATE-----
\ No newline at end of file diff --git a/src/pki/testdata/ssl/certificates/google_diginotar.pem b/src/pki/testdata/ssl/certificates/google_diginotar.pem deleted file mode 100644 index 12bbcae..0000000 --- a/src/pki/testdata/ssl/certificates/google_diginotar.pem +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFKDCCBBCgAwIBAgIQBeLmpM0J6lTWZbB1/iKiVjANBgkqhkiG9w0BAQUFADBm -MQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMSEwHwYDVQQDExhEaWdp -Tm90YXIgUHVibGljIENBIDIwMjUxIDAeBgkqhkiG9w0BCQEWEWluZm9AZGlnaW5v -dGFyLm5sMB4XDTExMDcxMDE5MDYzMFoXDTEzMDcwOTE5MDYzMFowajELMAkGA1UE -BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxFjAUBgNVBAcTDU1vdW50YWluIFZp -ZXcxFzAVBgNVBAUTDlBLMDAwMjI5MjAwMDAyMRUwEwYDVQQDEwwqLmdvb2dsZS5j -b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNbeKubCV0aCxhOiOS -CSQ/w9HXTYuD5BLKuiqXNw3setdTymeJz2L8aWOHo3nicFNDVwWTgwWomGNr2J6Q -7g1iINNSW0rR4E1l2szRkcnAY6c6i/Eke93nF4i2hDsnIBveolF5yjpuRm73uQQD -ulHjA3BFRF/PTi0fw2/Yt+8ieoMuNcMWN6Eou5Gqt5YZkWv176ofeCbsBmMrP87x -OhhtTDckCapk4VQZG2XrfzZcV6tdzCp5TI8uHdu17cdzXm1imZ8tyvzFeiCEOQN8 -vPNzB/fIr3CJQ5q4uM5aKT3DD5PeVzf4rfJKQNgCTWiIBc9XcWEUuszwAsnmg7e2 -EJRdAgMBAAGjggHMMIIByDA6BggrBgEFBQcBAQQuMCwwKgYIKwYBBQUHMAGGHmh0 -dHA6Ly92YWxpZGF0aW9uLmRpZ2lub3Rhci5ubDAfBgNVHSMEGDAWgBTfM8Cvkv43 -/LbYFhbQ2bGR1fpupTAJBgNVHRMEAjAAMIHGBgNVHSAEgb4wgbswgbgGDmCEEAGH -aQEBAQIEAQICMIGlMCcGCCsGAQUFBwIBFhtodHRwOi8vd3d3LmRpZ2lub3Rhci5u -bC9jcHMwegYIKwYBBQUHAgIwbhpsQ29uZGl0aW9ucywgYXMgbWVudGlvbmVkIG9u -IG91ciB3ZWJzaXRlICh3d3cuZGlnaW5vdGFyLm5sKSwgYXJlIGFwcGxpY2FibGUg -dG8gYWxsIG91ciBwcm9kdWN0cyBhbmQgc2VydmljZXMuMEkGA1UdHwRCMEAwPqA8 -oDqGOGh0dHA6Ly9zZXJ2aWNlLmRpZ2lub3Rhci5ubC9jcmwvcHVibGljMjAyNS9s -YXRlc3RDUkwuY3JsMA4GA1UdDwEB/wQEAwIEsDAbBgNVHREEFDASgRBhZG1pbkBn -b29nbGUuY29tMB0GA1UdDgQWBBQHSn0WJzIo0eMBMQUNsMqN6eF/7TANBgkqhkiG -9w0BAQUFAAOCAQEAAs5dL7N9wzRJkI4Aq4lC5t8j5ZadqnqUcgYLADzSv4ExytNH -UY2nH6iVTihC0UPSsILWraoeApdT7Rphz/8DLQEBRGdeKWAptNM3EbiXtQaZT2uB -pidL8UoafX0kch3f71Y1scpBEjvu5ZZLnjg0A8AL0tnsereOVdDpU98bKqdbbrnM -FRmBlSf7xdaNca6JJHeEpga4E9Ty683CmccrSGXdU2tTCuHEJww+iOAUtPIZcsum -U7/eYeY1pMyGLyIjbNgRY7nDzRwvM/BsbL9eh4/mSQj/4nncqJd22sVQpCggQiVK -baB2sVGcVNBkK55bT8gPqnx8JypubyUvayzZGg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/intermediate_ca_cert.pem b/src/pki/testdata/ssl/certificates/intermediate_ca_cert.pem deleted file mode 100644 index 911d564..0000000 --- a/src/pki/testdata/ssl/certificates/intermediate_ca_cert.pem +++ /dev/null @@ -1,110 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCd6b3kPUov+8L5 -5iIqQhVGHIyPR0zpxVeVH2ZwkyLwlMO7tVvvpG/Ix4mVdboMNr9Oa6k1RwhDnilq -4sP7A7cftuFRa+17Gcf5zjvcZelmx4OUxNFO7u1kS4HxGupaZBgbak6T0BNskGDK -0k63JBb4sghYnY2nM0UVNIGtLS2cYO/5K5j+edONLEjbEpH0Lvq/9SbBggWA3Uyo -cL+nvBA0dznbRwQP7USyZUYiIIhZKA/HDKK0kaWiqsoFn4qbbqPL1KToJHWdIIEi -W193PsnxHq7rijOMJ1sevm0hG0JyleOeEwN1p1jUvmgS/mOOSxF6NOeja91zrj4Z -muyRi3OvAgMBAAECggEBAJwu2gyK/fw1YqNtlS78izP7+p2fZJf2AejQ1K3VKQKP -8IOQHW0I0zLe/9oeRTPdVhtG6mVyat8N6GL6A+IZy54HcBTqzUgquJn++z/CYDWy -cRbMD0SllY/UCqIf/9gFFb7PxwX1D7EZn1Ia7ZW/kSTKWOzkb30GfXY6p2NTwr/d -psacQ5v6+o8z3RD2N44gPvrGA2d1P83YT0oIYwKAHtpu6c46CBQmf54lhjs1LdxE -UgF8w+Y8T8DZQ5WekchIWBcGZLiqBkm49+uBoGtlfrcszZkC3pnX++HoZAYE9ms4 -OCdWhEBHUyhd/os7GjaX+CGUM4nNx0LmoqeJBhBt0qkCgYEAzcsWqVYruimpnES+ -lzFIiFZXI6rYd7hkJ+semFst4UFQM51TE0gXkrzZdIu/rgmRlb05to739V1i2z0B -TxGka+WzL6j4ZtJjy2WBl35GceoeL5Iwbjs8OiJFr8TAkq9v3TT2iymuUDGSHCCz -1T9GfS4/zoLNGiqKOxp7O6ZwaC0CgYEAxHBFRtQ1eeKYL5FZwWv2JklivutDWURK -0dzbzsvKaUf40ZdZe+A6cFomckm7xubHwMckY+8Y011pgF581JWWIaRs8u8jJuWA -ajjfmFSC0L5uuk6qYHa9eWQu8LvUGmKX9SMs7Mt2h7BS+l+ZDbgr6LngoK1CWGEK -DLo0/fp7OMsCgYAi++RVUx3J3u1DcHhJ8YnYC31yxcdYytLT6mdgFRf+lADTVWpa -+8VuH4aEBoHGT0AdiXZ3L2S9pGt6w6smSuR9pyXH81yO9jMaz52xKDlHgjoxchOj -mZRKeasJD1SBWyuUGj3TOHm2jka9W13W4ZPVEfis3ZWKXjLzizPp1wiC3QKBgEMX -ESIKsiTptg5w9xWveMdEwxvvn/Xp9B/O7aeoRH5GnX1/0okTYQIkWAMqmZ5qDYkS -uqQC8himS7UTEFFOsZLV5HvoHrpXIc+lkwAkxPTkRU8ONPRzOW0vQTTpAZztVXbc -x6gsKVRYbU6jvdNItn5qlYRrCEDFC7ijFBw2I0WXAoGARVYDlmIrSvnwqZ07YzPa -QeLueBBfnHqN+7XAGTctn0MOhE96OgURw0lWVnyoGtTmUAHtdho5EeDDUxQm/n1x -whGM72yqlFlslpnodQUqAYz1Eqe+RgP9V8KXdUVz652jqZwhuqLBjtAc9e9knwR8 -MTmwsskxSp9DWTu+tCjNrwM= ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:64 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Sep 30 17:20:08 2032 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:9d:e9:bd:e4:3d:4a:2f:fb:c2:f9:e6:22:2a:42: - 15:46:1c:8c:8f:47:4c:e9:c5:57:95:1f:66:70:93: - 22:f0:94:c3:bb:b5:5b:ef:a4:6f:c8:c7:89:95:75: - ba:0c:36:bf:4e:6b:a9:35:47:08:43:9e:29:6a:e2: - c3:fb:03:b7:1f:b6:e1:51:6b:ed:7b:19:c7:f9:ce: - 3b:dc:65:e9:66:c7:83:94:c4:d1:4e:ee:ed:64:4b: - 81:f1:1a:ea:5a:64:18:1b:6a:4e:93:d0:13:6c:90: - 60:ca:d2:4e:b7:24:16:f8:b2:08:58:9d:8d:a7:33: - 45:15:34:81:ad:2d:2d:9c:60:ef:f9:2b:98:fe:79: - d3:8d:2c:48:db:12:91:f4:2e:fa:bf:f5:26:c1:82: - 05:80:dd:4c:a8:70:bf:a7:bc:10:34:77:39:db:47: - 04:0f:ed:44:b2:65:46:22:20:88:59:28:0f:c7:0c: - a2:b4:91:a5:a2:aa:ca:05:9f:8a:9b:6e:a3:cb:d4: - a4:e8:24:75:9d:20:81:22:5b:5f:77:3e:c9:f1:1e: - ae:eb:8a:33:8c:27:5b:1e:be:6d:21:1b:42:72:95: - e3:9e:13:03:75:a7:58:d4:be:68:12:fe:63:8e:4b: - 11:7a:34:e7:a3:6b:dd:73:ae:3e:19:9a:ec:91:8b: - 73:af - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 25:54:8b:68:3b:3c:92:ed:1b:c7:a1:62:b3:7c:ff:7e:8c:57: - 7c:67:5c:ea:74:9f:e8:f1:b5:c8:e4:88:0e:c9:a3:f3:28:c4: - 05:af:8f:ad:51:32:66:ae:5d:7a:b1:77:7e:99:06:c8:30:26: - 5a:9f:1e:34:ea:aa:3e:0a:73:a2:40:e3:8f:1a:01:96:a2:6d: - 2f:6c:d9:36:65:98:c8:86:41:0e:ee:0d:aa:da:62:54:62:23: - c6:23:b0:f1:ca:35:7b:e5:4b:d1:ab:80:80:d6:00:2b:19:85: - 9d:e0:3c:3f:13:1e:90:d2:df:c3:31:90:0f:a8:40:08:33:4e: - f7:a4:d0:ed:3e:a4:41:cf:e8:37:49:d1:58:e8:07:3d:4b:a1: - c9:fe:12:07:9a:de:e0:c8:f3:68:d6:31:5d:03:77:2f:fa:b0: - e6:2c:f3:80:59:d0:9b:1b:59:22:cd:7e:58:c6:cf:82:92:c3: - 76:95:78:b2:75:c8:fa:59:9f:0e:c0:e3:6d:70:f9:82:ba:db: - 89:89:81:b7:b9:e1:41:63:51:56:8a:5a:d2:52:c2:19:2f:d9: - c0:9d:19:82:59:79:f9:56:1c:25:81:4d:0a:cd:77:1b:de:85: - 6e:51:04:08:0b:0c:33:65:52:f6:90:a8:82:25:77:a0:fa:5e: - 9c:2a:91:66 ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIRALBrk5LjXI1+7Z3IllnFwmQwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0zMjA5MzAxNzIwMDhaMGsxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMR0wGwYDVQQDDBRUZXN0IEludGVybWVkaWF0ZSBD -QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3pveQ9Si/7wvnmIipC -FUYcjI9HTOnFV5UfZnCTIvCUw7u1W++kb8jHiZV1ugw2v05rqTVHCEOeKWriw/sD -tx+24VFr7XsZx/nOO9xl6WbHg5TE0U7u7WRLgfEa6lpkGBtqTpPQE2yQYMrSTrck -FviyCFidjaczRRU0ga0tLZxg7/krmP55040sSNsSkfQu+r/1JsGCBYDdTKhwv6e8 -EDR3OdtHBA/tRLJlRiIgiFkoD8cMorSRpaKqygWfiptuo8vUpOgkdZ0ggSJbX3c+ -yfEeruuKM4wnWx6+bSEbQnKV454TA3WnWNS+aBL+Y45LEXo056Nr3XOuPhma7JGL -c68CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUF1xF89CsHBBM -i0NEIMTdk8XFGTswDgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFJsmC4qYqbsd -uR8c4xpAM+2OF4irMA0GCSqGSIb3DQEBCwUAA4IBAQAlVItoOzyS7RvHoWKzfP9+ -jFd8Z1zqdJ/o8bXI5IgOyaPzKMQFr4+tUTJmrl16sXd+mQbIMCZanx406qo+CnOi -QOOPGgGWom0vbNk2ZZjIhkEO7g2q2mJUYiPGI7DxyjV75UvRq4CA1gArGYWd4Dw/ -Ex6Q0t/DMZAPqEAIM073pNDtPqRBz+g3SdFY6Ac9S6HJ/hIHmt7gyPNo1jFdA3cv -+rDmLPOAWdCbG1kizX5Yxs+CksN2lXiydcj6WZ8OwONtcPmCutuJiYG3ueFBY1FW -ilrSUsIZL9nAnRmCWXn5VhwlgU0KzXcb3oVuUQQICwwzZVL2kKiCJXeg+l6cKpFm ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/invalid_key_usage_cert.der b/src/pki/testdata/ssl/certificates/invalid_key_usage_cert.der Binary files differdeleted file mode 100644 index 3a1be64..0000000 --- a/src/pki/testdata/ssl/certificates/invalid_key_usage_cert.der +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/key_usage_p256.key b/src/pki/testdata/ssl/certificates/key_usage_p256.key deleted file mode 100644 index 0143378..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_p256.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeor3507Mmwvc9idK -suXWTudE0GDlVmEc64H7acez5xShRANCAATzrZ6+AHOlorp9D4i4ZEuFW2IcT16D -RCr5q46eSP89CxqRkr4fDMaHCr0GRwtjBrcnuljjBWRtHTAo7u7yqXuT ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_p256_both.pem b/src/pki/testdata/ssl/certificates/key_usage_p256_both.pem deleted file mode 100644 index a7e82e8..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_p256_both.pem +++ /dev/null @@ -1,45 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeor3507Mmwvc9idK -suXWTudE0GDlVmEc64H7acez5xShRANCAATzrZ6+AHOlorp9D4i4ZEuFW2IcT16D -RCr5q46eSP89CxqRkr4fDMaHCr0GRwtjBrcnuljjBWRtHTAo7u7yqXuT ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 75:3d:62:cc:15:9d:78:a8:e2:fa:a7:5f:a2:62:83:12:c6:b5:50:bb - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN = P-256 keyAgreement and digitalSignature - Validity - Not Before: Jul 1 17:45:04 2020 GMT - Not After : Jun 29 17:45:04 2030 GMT - Subject: CN = P-256 keyAgreement and digitalSignature - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:f3:ad:9e:be:00:73:a5:a2:ba:7d:0f:88:b8:64: - 4b:85:5b:62:1c:4f:5e:83:44:2a:f9:ab:8e:9e:48: - ff:3d:0b:1a:91:92:be:1f:0c:c6:87:0a:bd:06:47: - 0b:63:06:b7:27:ba:58:e3:05:64:6d:1d:30:28:ee: - ee:f2:a9:7b:93 - ASN1 OID: prime256v1 - NIST CURVE: P-256 - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature, Key Agreement - Signature Algorithm: ecdsa-with-SHA256 - 30:45:02:20:3c:d9:e5:7a:d5:65:3b:93:62:80:1c:c4:26:d2: - 31:6b:fc:39:c9:bf:66:60:dd:06:89:e3:71:d4:2f:e2:d2:7d: - 02:21:00:c2:5b:1f:c6:73:8d:6e:ce:6e:e7:fa:db:88:55:be: - 08:8d:6f:8d:80:16:59:d7:73:26:0e:70:02:50:e6:41:35 ------BEGIN CERTIFICATE----- -MIIBeDCCAR6gAwIBAgIUdT1izBWdeKji+qdfomKDEsa1ULswCgYIKoZIzj0EAwIw -MjEwMC4GA1UEAwwnUC0yNTYga2V5QWdyZWVtZW50IGFuZCBkaWdpdGFsU2lnbmF0 -dXJlMB4XDTIwMDcwMTE3NDUwNFoXDTMwMDYyOTE3NDUwNFowMjEwMC4GA1UEAwwn -UC0yNTYga2V5QWdyZWVtZW50IGFuZCBkaWdpdGFsU2lnbmF0dXJlMFkwEwYHKoZI -zj0CAQYIKoZIzj0DAQcDQgAE862evgBzpaK6fQ+IuGRLhVtiHE9eg0Qq+auOnkj/ -PQsakZK+HwzGhwq9BkcLYwa3J7pY4wVkbR0wKO7u8ql7k6MSMBAwDgYDVR0PAQH/ -BAQDAgOIMAoGCCqGSM49BAMCA0gAMEUCIDzZ5XrVZTuTYoAcxCbSMWv8Ocm/ZmDd -BonjcdQv4tJ9AiEAwlsfxnONbs5u5/rbiFW+CI1vjYAWWddzJg5wAlDmQTU= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_p256_digitalsignature.pem b/src/pki/testdata/ssl/certificates/key_usage_p256_digitalsignature.pem deleted file mode 100644 index fb82da5..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_p256_digitalsignature.pem +++ /dev/null @@ -1,45 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeor3507Mmwvc9idK -suXWTudE0GDlVmEc64H7acez5xShRANCAATzrZ6+AHOlorp9D4i4ZEuFW2IcT16D -RCr5q46eSP89CxqRkr4fDMaHCr0GRwtjBrcnuljjBWRtHTAo7u7yqXuT ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 41:34:6d:4f:6a:37:a4:52:ee:07:2a:9e:a0:e2:db:63:55:b1:d8:32 - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN = P-256 digitalSignature - Validity - Not Before: Jul 1 17:45:04 2020 GMT - Not After : Jun 29 17:45:04 2030 GMT - Subject: CN = P-256 digitalSignature - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:f3:ad:9e:be:00:73:a5:a2:ba:7d:0f:88:b8:64: - 4b:85:5b:62:1c:4f:5e:83:44:2a:f9:ab:8e:9e:48: - ff:3d:0b:1a:91:92:be:1f:0c:c6:87:0a:bd:06:47: - 0b:63:06:b7:27:ba:58:e3:05:64:6d:1d:30:28:ee: - ee:f2:a9:7b:93 - ASN1 OID: prime256v1 - NIST CURVE: P-256 - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature - Signature Algorithm: ecdsa-with-SHA256 - 30:45:02:21:00:80:73:dd:d0:09:2c:51:44:37:bc:83:d4:b2: - 33:87:c5:70:ad:50:35:7c:bb:ba:f2:15:cc:31:83:d7:a2:c2: - 41:02:20:28:6b:40:d1:b5:20:68:e9:a0:b0:a9:32:37:4f:e9: - c8:f5:ac:ba:ec:22:94:ce:1c:37:26:1d:e2:43:b0:66:03 ------BEGIN CERTIFICATE----- -MIIBVTCB/KADAgECAhRBNG1PajekUu4HKp6g4ttjVbHYMjAKBggqhkjOPQQDAjAh -MR8wHQYDVQQDDBZQLTI1NiBkaWdpdGFsU2lnbmF0dXJlMB4XDTIwMDcwMTE3NDUw -NFoXDTMwMDYyOTE3NDUwNFowITEfMB0GA1UEAwwWUC0yNTYgZGlnaXRhbFNpZ25h -dHVyZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPOtnr4Ac6Wiun0PiLhkS4Vb -YhxPXoNEKvmrjp5I/z0LGpGSvh8MxocKvQZHC2MGtye6WOMFZG0dMCju7vKpe5Oj -EjAQMA4GA1UdDwEB/wQEAwIHgDAKBggqhkjOPQQDAgNIADBFAiEAgHPd0AksUUQ3 -vIPUsjOHxXCtUDV8u7ryFcwxg9eiwkECIChrQNG1IGjpoLCpMjdP6cj1rLrsIpTO -HDcmHeJDsGYD ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_p256_keyagreement.pem b/src/pki/testdata/ssl/certificates/key_usage_p256_keyagreement.pem deleted file mode 100644 index 1a17ea0..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_p256_keyagreement.pem +++ /dev/null @@ -1,45 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeor3507Mmwvc9idK -suXWTudE0GDlVmEc64H7acez5xShRANCAATzrZ6+AHOlorp9D4i4ZEuFW2IcT16D -RCr5q46eSP89CxqRkr4fDMaHCr0GRwtjBrcnuljjBWRtHTAo7u7yqXuT ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 29:16:18:ee:33:5e:08:0e:f8:68:83:0e:5f:3f:de:0a:f5:0e:46:b3 - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN = P-256 keyAgreement - Validity - Not Before: Jul 1 17:45:04 2020 GMT - Not After : Jun 29 17:45:04 2030 GMT - Subject: CN = P-256 keyAgreement - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:f3:ad:9e:be:00:73:a5:a2:ba:7d:0f:88:b8:64: - 4b:85:5b:62:1c:4f:5e:83:44:2a:f9:ab:8e:9e:48: - ff:3d:0b:1a:91:92:be:1f:0c:c6:87:0a:bd:06:47: - 0b:63:06:b7:27:ba:58:e3:05:64:6d:1d:30:28:ee: - ee:f2:a9:7b:93 - ASN1 OID: prime256v1 - NIST CURVE: P-256 - X509v3 extensions: - X509v3 Key Usage: critical - Key Agreement - Signature Algorithm: ecdsa-with-SHA256 - 30:45:02:21:00:ca:5e:82:62:84:49:72:35:04:6e:56:0c:3b: - 70:f6:ae:03:d9:74:e9:e5:a8:86:bd:7e:c9:4b:d5:59:2a:2b: - 52:02:20:40:27:b3:d5:08:39:05:f4:35:9c:5d:58:02:dd:70: - 11:97:a8:15:5e:21:09:3a:f4:d5:5b:f6:69:ad:7a:4f:61 ------BEGIN CERTIFICATE----- -MIIBTTCB9KADAgECAhQpFhjuM14IDvhogw5fP94K9Q5GszAKBggqhkjOPQQDAjAd -MRswGQYDVQQDDBJQLTI1NiBrZXlBZ3JlZW1lbnQwHhcNMjAwNzAxMTc0NTA0WhcN -MzAwNjI5MTc0NTA0WjAdMRswGQYDVQQDDBJQLTI1NiBrZXlBZ3JlZW1lbnQwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAATzrZ6+AHOlorp9D4i4ZEuFW2IcT16DRCr5 -q46eSP89CxqRkr4fDMaHCr0GRwtjBrcnuljjBWRtHTAo7u7yqXuToxIwEDAOBgNV -HQ8BAf8EBAMCAwgwCgYIKoZIzj0EAwIDSAAwRQIhAMpegmKESXI1BG5WDDtw9q4D -2XTp5aiGvX7JS9VZKitSAiBAJ7PVCDkF9DWcXVgC3XARl6gVXiEJOvTVW/ZprXpP -YQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_p256_no_extension.pem b/src/pki/testdata/ssl/certificates/key_usage_p256_no_extension.pem deleted file mode 100644 index cb8abd5..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_p256_no_extension.pem +++ /dev/null @@ -1,41 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeor3507Mmwvc9idK -suXWTudE0GDlVmEc64H7acez5xShRANCAATzrZ6+AHOlorp9D4i4ZEuFW2IcT16D -RCr5q46eSP89CxqRkr4fDMaHCr0GRwtjBrcnuljjBWRtHTAo7u7yqXuT ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 07:77:fa:ef:2d:fb:92:c6:49:d9:9a:42:5a:06:67:bf:e1:24:41:9d - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN = P-256 no keyUsage extension - Validity - Not Before: Jul 1 17:45:04 2020 GMT - Not After : Jun 29 17:45:04 2030 GMT - Subject: CN = P-256 no keyUsage extension - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:f3:ad:9e:be:00:73:a5:a2:ba:7d:0f:88:b8:64: - 4b:85:5b:62:1c:4f:5e:83:44:2a:f9:ab:8e:9e:48: - ff:3d:0b:1a:91:92:be:1f:0c:c6:87:0a:bd:06:47: - 0b:63:06:b7:27:ba:58:e3:05:64:6d:1d:30:28:ee: - ee:f2:a9:7b:93 - ASN1 OID: prime256v1 - NIST CURVE: P-256 - Signature Algorithm: ecdsa-with-SHA256 - 30:45:02:20:47:ab:e1:e2:b3:e7:96:d1:c5:c7:b6:b2:ac:fd: - 89:37:3c:7f:43:d2:ac:e5:b6:f7:90:ef:1f:a4:e8:10:62:73: - 02:21:00:d5:47:83:f1:88:be:e9:5c:e4:3f:7e:c9:3a:a5:70: - 6a:20:d5:a1:1f:e4:c5:20:ea:31:d1:11:aa:0a:0e:97:87 ------BEGIN CERTIFICATE----- -MIIBSzCB8qADAgECAhQHd/rvLfuSxknZmkJaBme/4SRBnTAKBggqhkjOPQQDAjAm -MSQwIgYDVQQDDBtQLTI1NiBubyBrZXlVc2FnZSBleHRlbnNpb24wHhcNMjAwNzAx -MTc0NTA0WhcNMzAwNjI5MTc0NTA0WjAmMSQwIgYDVQQDDBtQLTI1NiBubyBrZXlV -c2FnZSBleHRlbnNpb24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATzrZ6+AHOl -orp9D4i4ZEuFW2IcT16DRCr5q46eSP89CxqRkr4fDMaHCr0GRwtjBrcnuljjBWRt -HTAo7u7yqXuTMAoGCCqGSM49BAMCA0gAMEUCIEer4eKz55bRxce2sqz9iTc8f0PS -rOW295DvH6ToEGJzAiEA1UeD8Yi+6VzkP37JOqVwaiDVoR/kxSDqMdERqgoOl4c= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_rsa.key b/src/pki/testdata/ssl/certificates/key_usage_rsa.key deleted file mode 100644 index 6015a2c..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_rsa.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1DXXelAoZJiao -NVAj+VG+uFlhp5GJt4hwYTR1oxqXEgricS6ElM7W/VHEJuJv+2KFtRfYSi1xLVri -uRHZNALmLW40UDi1qKJdLMFiTqMg/BEXVM5L1bgAw4kfNm7EwZ64DCdYSPnPq+PN -tBAxnmvzp/7feKc33nq9pv9CUVVeVvIovd9un4e2jdqZh+p750Ly1Ujx+7bOGTox -Xzl5+IsJDIVF5vPGoSSazxrnpgIwFGwH2W69ySsMBM4KAFW6GFQiFFxOPI9a1gxj -sKHFfy2U/dHRymYqbm4w+afgo/lZjJv9l3eQALL+r4wQlr1kLq0FWpcUEpZDW40F -65UdYPbhAgMBAAECggEBAK90nvCXeH3MuhOyrrpeCDkSgBQiBul2QjPeD6+c48zZ -QFEXrCPx7czs6wtzP2eUL3Mx/yytHgKbGIO1JDXgsJqOFkl+IKbzCH3RPItfd7kk -bg+1MMLPF6Ut2Tm1T30/wefMZ2ioN+doRbh4MmVTiHw1Jss8Kpj68unN53tGRLvJ -VvamRDOrtfhuM2fiKap3FH0bBGQzLJ6ZX6Xpscf3flxQhjCm5XeViBWJUo1tgVGN -Sq8GgAy/ohVQqmUbvX3Zg/yTtVfoDU44OJ2RLhDoB+5VsMtzu0i4k4zoeR0YgT53 -C4VdSmxDSPlpc0xLTmxugGZBxYSAbnyA1cdeufI5F80CgYEA4KppyNukJKu1ZS2c -Fqx08cR+PQqTzMOdZE1ZYRNtULI0Y6ajceW/l78OYOzxFQEho4Y00UQZTKUxp5/O -RxalI7b1zPlW3jXJ+2j8JWH4AnPs4aDEDcJVeuCRwlEZ9C3q3cVcjv2Ty6sNe3pe -OhupkBwAe6WwT9soDOKTSMvB5hsCgYEAzk3ceZAPXGYnjkFF58rhdFdGV0NKKePD -kAQDjpsoISCbN0RM4vNA4UNWszRd+Js/2ePVIB/k6SPRXZbcOhu2etzk1tTbeynF -7EzG5FnMGYykQVz2X1JYA+UT5AnujANJUMH1jjDyHdMFS8/1oYT0OwnnbYZ8/sev -eYK3MJyAVrMCgYEAgM2SqmIqQA/lhmVYuLMUtMtnaI2Y4OtBYBDsbjhaEsqoOH1/ -9Tu31ULm9nDBYr5sT7kQrO0y5/tJdYWsGJuF/+zUDTjiMbF65FVzQedh7d4Sb+Tg -odbJdRIs3s/qZlCw94ZAI4aD5l9h8mncfcoAM6uqJzl91Lqbwo9fy3tt5gMCgYBG -kqYQQ7KthhiT9kpGn8V+OfjLEy7Eo7CbjHP3DaatpmzSfB/dJx+Tr6hyB0D6MYmn -LOQUaDSzeFg/rsLJcf97iiMSRqCKQmD9k8oaBYnnV5A89+Mj+pQ3SN8EDE25QcqL -wL4SlTXN9AkExTAev8+YfqvXcMFDmuWxKIEoNPFGNwKBgDEWCNvj86HZnQH+7ANc -84HzHNzBz3XEtn09FeLA69r+C9vLqodxgTvPNdif42Igw4mK640jUP5JruJZ0kq0 -jYsF2yzgpVFfYbo7hU4ZGCZM24WhHhaXLE6Oi/ExCAqstLwCpaVTS1FoljtcNV7P -mZfK4GN9JSGsRqiWK21Ly2bC ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_rsa_both.pem b/src/pki/testdata/ssl/certificates/key_usage_rsa_both.pem deleted file mode 100644 index 9d8d155..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_rsa_both.pem +++ /dev/null @@ -1,100 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1DXXelAoZJiao -NVAj+VG+uFlhp5GJt4hwYTR1oxqXEgricS6ElM7W/VHEJuJv+2KFtRfYSi1xLVri -uRHZNALmLW40UDi1qKJdLMFiTqMg/BEXVM5L1bgAw4kfNm7EwZ64DCdYSPnPq+PN -tBAxnmvzp/7feKc33nq9pv9CUVVeVvIovd9un4e2jdqZh+p750Ly1Ujx+7bOGTox -Xzl5+IsJDIVF5vPGoSSazxrnpgIwFGwH2W69ySsMBM4KAFW6GFQiFFxOPI9a1gxj -sKHFfy2U/dHRymYqbm4w+afgo/lZjJv9l3eQALL+r4wQlr1kLq0FWpcUEpZDW40F -65UdYPbhAgMBAAECggEBAK90nvCXeH3MuhOyrrpeCDkSgBQiBul2QjPeD6+c48zZ -QFEXrCPx7czs6wtzP2eUL3Mx/yytHgKbGIO1JDXgsJqOFkl+IKbzCH3RPItfd7kk -bg+1MMLPF6Ut2Tm1T30/wefMZ2ioN+doRbh4MmVTiHw1Jss8Kpj68unN53tGRLvJ -VvamRDOrtfhuM2fiKap3FH0bBGQzLJ6ZX6Xpscf3flxQhjCm5XeViBWJUo1tgVGN -Sq8GgAy/ohVQqmUbvX3Zg/yTtVfoDU44OJ2RLhDoB+5VsMtzu0i4k4zoeR0YgT53 -C4VdSmxDSPlpc0xLTmxugGZBxYSAbnyA1cdeufI5F80CgYEA4KppyNukJKu1ZS2c -Fqx08cR+PQqTzMOdZE1ZYRNtULI0Y6ajceW/l78OYOzxFQEho4Y00UQZTKUxp5/O -RxalI7b1zPlW3jXJ+2j8JWH4AnPs4aDEDcJVeuCRwlEZ9C3q3cVcjv2Ty6sNe3pe -OhupkBwAe6WwT9soDOKTSMvB5hsCgYEAzk3ceZAPXGYnjkFF58rhdFdGV0NKKePD -kAQDjpsoISCbN0RM4vNA4UNWszRd+Js/2ePVIB/k6SPRXZbcOhu2etzk1tTbeynF -7EzG5FnMGYykQVz2X1JYA+UT5AnujANJUMH1jjDyHdMFS8/1oYT0OwnnbYZ8/sev -eYK3MJyAVrMCgYEAgM2SqmIqQA/lhmVYuLMUtMtnaI2Y4OtBYBDsbjhaEsqoOH1/ -9Tu31ULm9nDBYr5sT7kQrO0y5/tJdYWsGJuF/+zUDTjiMbF65FVzQedh7d4Sb+Tg -odbJdRIs3s/qZlCw94ZAI4aD5l9h8mncfcoAM6uqJzl91Lqbwo9fy3tt5gMCgYBG -kqYQQ7KthhiT9kpGn8V+OfjLEy7Eo7CbjHP3DaatpmzSfB/dJx+Tr6hyB0D6MYmn -LOQUaDSzeFg/rsLJcf97iiMSRqCKQmD9k8oaBYnnV5A89+Mj+pQ3SN8EDE25QcqL -wL4SlTXN9AkExTAev8+YfqvXcMFDmuWxKIEoNPFGNwKBgDEWCNvj86HZnQH+7ANc -84HzHNzBz3XEtn09FeLA69r+C9vLqodxgTvPNdif42Igw4mK640jUP5JruJZ0kq0 -jYsF2yzgpVFfYbo7hU4ZGCZM24WhHhaXLE6Oi/ExCAqstLwCpaVTS1FoljtcNV7P -mZfK4GN9JSGsRqiWK21Ly2bC ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 49:e7:3e:c9:55:56:16:c5:a1:7f:f2:31:ce:1b:e9:ab:8c:5c:e7:92 - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = RSA-2048 keyEncipherment and digitalSignature - Validity - Not Before: Jul 1 17:45:04 2020 GMT - Not After : Jun 29 17:45:04 2030 GMT - Subject: CN = RSA-2048 keyEncipherment and digitalSignature - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:b5:0d:75:de:94:0a:19:26:26:a8:35:50:23:f9: - 51:be:b8:59:61:a7:91:89:b7:88:70:61:34:75:a3: - 1a:97:12:0a:e2:71:2e:84:94:ce:d6:fd:51:c4:26: - e2:6f:fb:62:85:b5:17:d8:4a:2d:71:2d:5a:e2:b9: - 11:d9:34:02:e6:2d:6e:34:50:38:b5:a8:a2:5d:2c: - c1:62:4e:a3:20:fc:11:17:54:ce:4b:d5:b8:00:c3: - 89:1f:36:6e:c4:c1:9e:b8:0c:27:58:48:f9:cf:ab: - e3:cd:b4:10:31:9e:6b:f3:a7:fe:df:78:a7:37:de: - 7a:bd:a6:ff:42:51:55:5e:56:f2:28:bd:df:6e:9f: - 87:b6:8d:da:99:87:ea:7b:e7:42:f2:d5:48:f1:fb: - b6:ce:19:3a:31:5f:39:79:f8:8b:09:0c:85:45:e6: - f3:c6:a1:24:9a:cf:1a:e7:a6:02:30:14:6c:07:d9: - 6e:bd:c9:2b:0c:04:ce:0a:00:55:ba:18:54:22:14: - 5c:4e:3c:8f:5a:d6:0c:63:b0:a1:c5:7f:2d:94:fd: - d1:d1:ca:66:2a:6e:6e:30:f9:a7:e0:a3:f9:59:8c: - 9b:fd:97:77:90:00:b2:fe:af:8c:10:96:bd:64:2e: - ad:05:5a:97:14:12:96:43:5b:8d:05:eb:95:1d:60: - f6:e1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature, Key Encipherment - Signature Algorithm: sha256WithRSAEncryption - 0f:5a:73:cc:20:c1:a3:e6:49:a4:08:4b:73:ec:c2:fd:43:9d: - a0:b2:7e:17:35:1a:7e:34:2d:68:99:2e:4a:5b:82:0a:20:9e: - 57:3a:b2:38:bd:57:08:c6:5c:7c:43:3e:5a:57:f0:bf:88:e4: - 55:fd:be:ae:3e:03:0d:17:cf:d0:e0:c6:0b:8c:de:ed:a6:06: - c1:6f:90:63:a2:de:e8:53:71:da:67:5a:f2:2a:8c:6f:c5:d9: - fc:f5:c6:ac:ee:07:b1:cd:b2:5f:42:b0:b2:b2:b0:e6:6d:a0: - c8:88:1a:f2:37:5d:cb:5f:b3:9d:66:98:32:1d:49:c4:b1:63: - 5f:44:83:25:b1:32:e5:8a:0e:ca:24:72:eb:c1:17:85:0b:79: - ce:3e:9f:78:41:c9:c6:45:cc:2f:3e:b2:1f:af:33:27:8c:75: - e9:8d:3f:6a:eb:54:34:68:0f:ff:9e:4e:21:88:76:f6:41:de: - c6:69:09:5a:38:05:a7:e3:6b:db:e3:4c:16:64:c9:1c:70:ad: - 00:1e:01:90:be:9b:f4:ed:42:b7:e8:b2:ff:2d:d5:ca:ba:7b: - bd:6e:57:51:a2:18:3c:79:43:42:a0:32:5c:df:74:db:41:a5: - 7c:99:0e:2b:24:6e:f3:e2:5e:b5:43:78:d7:43:c6:29:0d:77: - 4c:b4:b0:48 ------BEGIN CERTIFICATE----- -MIIDEDCCAfigAwIBAgIUSec+yVVWFsWhf/Ixzhvpq4xc55IwDQYJKoZIhvcNAQEL -BQAwODE2MDQGA1UEAwwtUlNBLTIwNDgga2V5RW5jaXBoZXJtZW50IGFuZCBkaWdp -dGFsU2lnbmF0dXJlMB4XDTIwMDcwMTE3NDUwNFoXDTMwMDYyOTE3NDUwNFowODE2 -MDQGA1UEAwwtUlNBLTIwNDgga2V5RW5jaXBoZXJtZW50IGFuZCBkaWdpdGFsU2ln -bmF0dXJlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtQ113pQKGSYm -qDVQI/lRvrhZYaeRibeIcGE0daMalxIK4nEuhJTO1v1RxCbib/tihbUX2EotcS1a -4rkR2TQC5i1uNFA4taiiXSzBYk6jIPwRF1TOS9W4AMOJHzZuxMGeuAwnWEj5z6vj -zbQQMZ5r86f+33inN956vab/QlFVXlbyKL3fbp+Hto3amYfqe+dC8tVI8fu2zhk6 -MV85efiLCQyFRebzxqEkms8a56YCMBRsB9luvckrDATOCgBVuhhUIhRcTjyPWtYM -Y7ChxX8tlP3R0cpmKm5uMPmn4KP5WYyb/Zd3kACy/q+MEJa9ZC6tBVqXFBKWQ1uN -BeuVHWD24QIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCBaAwDQYJKoZIhvcNAQELBQAD -ggEBAA9ac8wgwaPmSaQIS3Pswv1DnaCyfhc1Gn40LWiZLkpbggognlc6sji9VwjG -XHxDPlpX8L+I5FX9vq4+Aw0Xz9DgxguM3u2mBsFvkGOi3uhTcdpnWvIqjG/F2fz1 -xqzuB7HNsl9CsLKysOZtoMiIGvI3Xctfs51mmDIdScSxY19EgyWxMuWKDsokcuvB -F4ULec4+n3hBycZFzC8+sh+vMyeMdemNP2rrVDRoD/+eTiGIdvZB3sZpCVo4Bafj -a9vjTBZkyRxwrQAeAZC+m/TtQrfosv8t1cq6e71uV1GiGDx5Q0KgMlzfdNtBpXyZ -DiskbvPiXrVDeNdDxikNd0y0sEg= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_rsa_digitalsignature.pem b/src/pki/testdata/ssl/certificates/key_usage_rsa_digitalsignature.pem deleted file mode 100644 index 1a65ac8..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_rsa_digitalsignature.pem +++ /dev/null @@ -1,99 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1DXXelAoZJiao -NVAj+VG+uFlhp5GJt4hwYTR1oxqXEgricS6ElM7W/VHEJuJv+2KFtRfYSi1xLVri -uRHZNALmLW40UDi1qKJdLMFiTqMg/BEXVM5L1bgAw4kfNm7EwZ64DCdYSPnPq+PN -tBAxnmvzp/7feKc33nq9pv9CUVVeVvIovd9un4e2jdqZh+p750Ly1Ujx+7bOGTox -Xzl5+IsJDIVF5vPGoSSazxrnpgIwFGwH2W69ySsMBM4KAFW6GFQiFFxOPI9a1gxj -sKHFfy2U/dHRymYqbm4w+afgo/lZjJv9l3eQALL+r4wQlr1kLq0FWpcUEpZDW40F -65UdYPbhAgMBAAECggEBAK90nvCXeH3MuhOyrrpeCDkSgBQiBul2QjPeD6+c48zZ -QFEXrCPx7czs6wtzP2eUL3Mx/yytHgKbGIO1JDXgsJqOFkl+IKbzCH3RPItfd7kk -bg+1MMLPF6Ut2Tm1T30/wefMZ2ioN+doRbh4MmVTiHw1Jss8Kpj68unN53tGRLvJ -VvamRDOrtfhuM2fiKap3FH0bBGQzLJ6ZX6Xpscf3flxQhjCm5XeViBWJUo1tgVGN -Sq8GgAy/ohVQqmUbvX3Zg/yTtVfoDU44OJ2RLhDoB+5VsMtzu0i4k4zoeR0YgT53 -C4VdSmxDSPlpc0xLTmxugGZBxYSAbnyA1cdeufI5F80CgYEA4KppyNukJKu1ZS2c -Fqx08cR+PQqTzMOdZE1ZYRNtULI0Y6ajceW/l78OYOzxFQEho4Y00UQZTKUxp5/O -RxalI7b1zPlW3jXJ+2j8JWH4AnPs4aDEDcJVeuCRwlEZ9C3q3cVcjv2Ty6sNe3pe -OhupkBwAe6WwT9soDOKTSMvB5hsCgYEAzk3ceZAPXGYnjkFF58rhdFdGV0NKKePD -kAQDjpsoISCbN0RM4vNA4UNWszRd+Js/2ePVIB/k6SPRXZbcOhu2etzk1tTbeynF -7EzG5FnMGYykQVz2X1JYA+UT5AnujANJUMH1jjDyHdMFS8/1oYT0OwnnbYZ8/sev -eYK3MJyAVrMCgYEAgM2SqmIqQA/lhmVYuLMUtMtnaI2Y4OtBYBDsbjhaEsqoOH1/ -9Tu31ULm9nDBYr5sT7kQrO0y5/tJdYWsGJuF/+zUDTjiMbF65FVzQedh7d4Sb+Tg -odbJdRIs3s/qZlCw94ZAI4aD5l9h8mncfcoAM6uqJzl91Lqbwo9fy3tt5gMCgYBG -kqYQQ7KthhiT9kpGn8V+OfjLEy7Eo7CbjHP3DaatpmzSfB/dJx+Tr6hyB0D6MYmn -LOQUaDSzeFg/rsLJcf97iiMSRqCKQmD9k8oaBYnnV5A89+Mj+pQ3SN8EDE25QcqL -wL4SlTXN9AkExTAev8+YfqvXcMFDmuWxKIEoNPFGNwKBgDEWCNvj86HZnQH+7ANc -84HzHNzBz3XEtn09FeLA69r+C9vLqodxgTvPNdif42Igw4mK640jUP5JruJZ0kq0 -jYsF2yzgpVFfYbo7hU4ZGCZM24WhHhaXLE6Oi/ExCAqstLwCpaVTS1FoljtcNV7P -mZfK4GN9JSGsRqiWK21Ly2bC ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 34:89:46:9e:a3:b8:36:7b:92:51:76:f8:42:69:93:a7:cf:ce:50:e2 - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = RSA-2048 digitalSignature - Validity - Not Before: Jul 1 17:45:04 2020 GMT - Not After : Jun 29 17:45:04 2030 GMT - Subject: CN = RSA-2048 digitalSignature - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:b5:0d:75:de:94:0a:19:26:26:a8:35:50:23:f9: - 51:be:b8:59:61:a7:91:89:b7:88:70:61:34:75:a3: - 1a:97:12:0a:e2:71:2e:84:94:ce:d6:fd:51:c4:26: - e2:6f:fb:62:85:b5:17:d8:4a:2d:71:2d:5a:e2:b9: - 11:d9:34:02:e6:2d:6e:34:50:38:b5:a8:a2:5d:2c: - c1:62:4e:a3:20:fc:11:17:54:ce:4b:d5:b8:00:c3: - 89:1f:36:6e:c4:c1:9e:b8:0c:27:58:48:f9:cf:ab: - e3:cd:b4:10:31:9e:6b:f3:a7:fe:df:78:a7:37:de: - 7a:bd:a6:ff:42:51:55:5e:56:f2:28:bd:df:6e:9f: - 87:b6:8d:da:99:87:ea:7b:e7:42:f2:d5:48:f1:fb: - b6:ce:19:3a:31:5f:39:79:f8:8b:09:0c:85:45:e6: - f3:c6:a1:24:9a:cf:1a:e7:a6:02:30:14:6c:07:d9: - 6e:bd:c9:2b:0c:04:ce:0a:00:55:ba:18:54:22:14: - 5c:4e:3c:8f:5a:d6:0c:63:b0:a1:c5:7f:2d:94:fd: - d1:d1:ca:66:2a:6e:6e:30:f9:a7:e0:a3:f9:59:8c: - 9b:fd:97:77:90:00:b2:fe:af:8c:10:96:bd:64:2e: - ad:05:5a:97:14:12:96:43:5b:8d:05:eb:95:1d:60: - f6:e1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature - Signature Algorithm: sha256WithRSAEncryption - 8a:23:82:ea:a0:d9:96:ad:0b:3b:1f:b5:02:a9:bf:65:85:28: - fb:c5:a9:ca:bc:90:9e:65:48:80:ae:d0:92:a5:4b:d4:ac:0d: - 5c:72:4c:9b:e3:8e:29:e9:8d:04:81:ff:bb:86:92:3f:1e:63: - 77:51:ea:84:48:e6:50:37:b2:22:2f:36:19:40:f9:de:b0:3d: - bf:78:09:66:7a:33:66:f6:b9:87:60:e8:e9:76:a2:d3:70:91: - 1c:4a:3a:7a:21:71:5b:31:f1:7a:81:5d:fa:ce:ca:82:6d:f3: - 34:9e:ff:ba:2d:3d:84:a6:7b:6b:35:09:73:37:ee:09:f9:5d: - 67:41:2a:a7:97:20:00:06:9c:da:d4:fc:03:e2:1f:3d:84:0d: - a0:24:f0:00:87:79:7f:d6:6d:be:40:b1:d9:ab:a2:74:eb:f7: - 4a:d1:f6:d9:30:10:71:0e:56:34:f4:3c:8a:73:69:c1:2b:ce: - 6a:5f:a0:43:5d:89:35:fa:4a:8c:8b:8f:4a:df:e6:17:92:20: - b5:1a:13:da:11:d1:3b:10:f8:2f:7e:84:b7:13:e5:67:38:44: - 6b:04:ab:e6:bc:3c:48:46:f2:43:fb:79:2d:0c:3d:7d:35:12: - df:90:54:7b:93:ed:fa:c4:62:f3:5b:54:a8:88:0c:da:0f:e5: - 51:dc:84:fa ------BEGIN CERTIFICATE----- -MIIC6DCCAdCgAwIBAgIUNIlGnqO4NnuSUXb4QmmTp8/OUOIwDQYJKoZIhvcNAQEL -BQAwJDEiMCAGA1UEAwwZUlNBLTIwNDggZGlnaXRhbFNpZ25hdHVyZTAeFw0yMDA3 -MDExNzQ1MDRaFw0zMDA2MjkxNzQ1MDRaMCQxIjAgBgNVBAMMGVJTQS0yMDQ4IGRp -Z2l0YWxTaWduYXR1cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1 -DXXelAoZJiaoNVAj+VG+uFlhp5GJt4hwYTR1oxqXEgricS6ElM7W/VHEJuJv+2KF -tRfYSi1xLVriuRHZNALmLW40UDi1qKJdLMFiTqMg/BEXVM5L1bgAw4kfNm7EwZ64 -DCdYSPnPq+PNtBAxnmvzp/7feKc33nq9pv9CUVVeVvIovd9un4e2jdqZh+p750Ly -1Ujx+7bOGToxXzl5+IsJDIVF5vPGoSSazxrnpgIwFGwH2W69ySsMBM4KAFW6GFQi -FFxOPI9a1gxjsKHFfy2U/dHRymYqbm4w+afgo/lZjJv9l3eQALL+r4wQlr1kLq0F -WpcUEpZDW40F65UdYPbhAgMBAAGjEjAQMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG -9w0BAQsFAAOCAQEAiiOC6qDZlq0LOx+1Aqm/ZYUo+8WpyryQnmVIgK7QkqVL1KwN -XHJMm+OOKemNBIH/u4aSPx5jd1HqhEjmUDeyIi82GUD53rA9v3gJZnozZva5h2Do -6Xai03CRHEo6eiFxWzHxeoFd+s7Kgm3zNJ7/ui09hKZ7azUJczfuCfldZ0Eqp5cg -AAac2tT8A+IfPYQNoCTwAId5f9ZtvkCx2auidOv3StH22TAQcQ5WNPQ8inNpwSvO -al+gQ12JNfpKjIuPSt/mF5IgtRoT2hHROxD4L36EtxPlZzhEawSr5rw8SEbyQ/t5 -LQw9fTUS35BUe5Pt+sRi81tUqIgM2g/lUdyE+g== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_rsa_keyencipherment.pem b/src/pki/testdata/ssl/certificates/key_usage_rsa_keyencipherment.pem deleted file mode 100644 index 362b6b6..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_rsa_keyencipherment.pem +++ /dev/null @@ -1,99 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1DXXelAoZJiao -NVAj+VG+uFlhp5GJt4hwYTR1oxqXEgricS6ElM7W/VHEJuJv+2KFtRfYSi1xLVri -uRHZNALmLW40UDi1qKJdLMFiTqMg/BEXVM5L1bgAw4kfNm7EwZ64DCdYSPnPq+PN -tBAxnmvzp/7feKc33nq9pv9CUVVeVvIovd9un4e2jdqZh+p750Ly1Ujx+7bOGTox -Xzl5+IsJDIVF5vPGoSSazxrnpgIwFGwH2W69ySsMBM4KAFW6GFQiFFxOPI9a1gxj -sKHFfy2U/dHRymYqbm4w+afgo/lZjJv9l3eQALL+r4wQlr1kLq0FWpcUEpZDW40F -65UdYPbhAgMBAAECggEBAK90nvCXeH3MuhOyrrpeCDkSgBQiBul2QjPeD6+c48zZ -QFEXrCPx7czs6wtzP2eUL3Mx/yytHgKbGIO1JDXgsJqOFkl+IKbzCH3RPItfd7kk -bg+1MMLPF6Ut2Tm1T30/wefMZ2ioN+doRbh4MmVTiHw1Jss8Kpj68unN53tGRLvJ -VvamRDOrtfhuM2fiKap3FH0bBGQzLJ6ZX6Xpscf3flxQhjCm5XeViBWJUo1tgVGN -Sq8GgAy/ohVQqmUbvX3Zg/yTtVfoDU44OJ2RLhDoB+5VsMtzu0i4k4zoeR0YgT53 -C4VdSmxDSPlpc0xLTmxugGZBxYSAbnyA1cdeufI5F80CgYEA4KppyNukJKu1ZS2c -Fqx08cR+PQqTzMOdZE1ZYRNtULI0Y6ajceW/l78OYOzxFQEho4Y00UQZTKUxp5/O -RxalI7b1zPlW3jXJ+2j8JWH4AnPs4aDEDcJVeuCRwlEZ9C3q3cVcjv2Ty6sNe3pe -OhupkBwAe6WwT9soDOKTSMvB5hsCgYEAzk3ceZAPXGYnjkFF58rhdFdGV0NKKePD -kAQDjpsoISCbN0RM4vNA4UNWszRd+Js/2ePVIB/k6SPRXZbcOhu2etzk1tTbeynF -7EzG5FnMGYykQVz2X1JYA+UT5AnujANJUMH1jjDyHdMFS8/1oYT0OwnnbYZ8/sev -eYK3MJyAVrMCgYEAgM2SqmIqQA/lhmVYuLMUtMtnaI2Y4OtBYBDsbjhaEsqoOH1/ -9Tu31ULm9nDBYr5sT7kQrO0y5/tJdYWsGJuF/+zUDTjiMbF65FVzQedh7d4Sb+Tg -odbJdRIs3s/qZlCw94ZAI4aD5l9h8mncfcoAM6uqJzl91Lqbwo9fy3tt5gMCgYBG -kqYQQ7KthhiT9kpGn8V+OfjLEy7Eo7CbjHP3DaatpmzSfB/dJx+Tr6hyB0D6MYmn -LOQUaDSzeFg/rsLJcf97iiMSRqCKQmD9k8oaBYnnV5A89+Mj+pQ3SN8EDE25QcqL -wL4SlTXN9AkExTAev8+YfqvXcMFDmuWxKIEoNPFGNwKBgDEWCNvj86HZnQH+7ANc -84HzHNzBz3XEtn09FeLA69r+C9vLqodxgTvPNdif42Igw4mK640jUP5JruJZ0kq0 -jYsF2yzgpVFfYbo7hU4ZGCZM24WhHhaXLE6Oi/ExCAqstLwCpaVTS1FoljtcNV7P -mZfK4GN9JSGsRqiWK21Ly2bC ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 01:1f:2f:6e:e9:f3:7b:74:ba:87:90:bf:40:e4:a1:f0:fd:cd:35:7f - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = RSA-2048 keyEncipherment - Validity - Not Before: Jul 1 17:45:04 2020 GMT - Not After : Jun 29 17:45:04 2030 GMT - Subject: CN = RSA-2048 keyEncipherment - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:b5:0d:75:de:94:0a:19:26:26:a8:35:50:23:f9: - 51:be:b8:59:61:a7:91:89:b7:88:70:61:34:75:a3: - 1a:97:12:0a:e2:71:2e:84:94:ce:d6:fd:51:c4:26: - e2:6f:fb:62:85:b5:17:d8:4a:2d:71:2d:5a:e2:b9: - 11:d9:34:02:e6:2d:6e:34:50:38:b5:a8:a2:5d:2c: - c1:62:4e:a3:20:fc:11:17:54:ce:4b:d5:b8:00:c3: - 89:1f:36:6e:c4:c1:9e:b8:0c:27:58:48:f9:cf:ab: - e3:cd:b4:10:31:9e:6b:f3:a7:fe:df:78:a7:37:de: - 7a:bd:a6:ff:42:51:55:5e:56:f2:28:bd:df:6e:9f: - 87:b6:8d:da:99:87:ea:7b:e7:42:f2:d5:48:f1:fb: - b6:ce:19:3a:31:5f:39:79:f8:8b:09:0c:85:45:e6: - f3:c6:a1:24:9a:cf:1a:e7:a6:02:30:14:6c:07:d9: - 6e:bd:c9:2b:0c:04:ce:0a:00:55:ba:18:54:22:14: - 5c:4e:3c:8f:5a:d6:0c:63:b0:a1:c5:7f:2d:94:fd: - d1:d1:ca:66:2a:6e:6e:30:f9:a7:e0:a3:f9:59:8c: - 9b:fd:97:77:90:00:b2:fe:af:8c:10:96:bd:64:2e: - ad:05:5a:97:14:12:96:43:5b:8d:05:eb:95:1d:60: - f6:e1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Key Encipherment - Signature Algorithm: sha256WithRSAEncryption - 3c:1b:15:b3:72:84:5a:81:97:bf:64:f9:e6:73:e7:e3:50:6b: - df:f9:e3:c7:27:10:ce:8c:b1:c1:d4:67:75:68:c1:c1:7d:6c: - 24:e4:c4:1e:ca:a9:64:58:46:b8:5d:0f:ea:f0:ab:ed:97:f1: - 1e:f0:b7:48:60:71:1c:01:42:70:31:8e:19:af:51:f4:47:f3: - 26:00:b3:1c:25:5c:fa:22:83:51:8f:5c:f3:c1:e6:43:2d:d2: - b0:40:c6:c6:dd:87:58:2d:8e:71:da:a0:3c:32:3b:f5:b3:8b: - 88:94:50:cc:1e:51:a1:f8:cc:d9:aa:90:77:d7:95:59:29:dd: - ff:e9:fa:0e:94:8f:f7:77:c9:6c:29:b6:a2:e9:3f:59:99:12: - c1:78:06:d1:84:72:8e:14:c3:ca:51:4e:d7:47:8f:e1:c0:4c: - ea:94:70:1e:48:a7:0e:b2:0c:12:c9:08:c7:78:0f:aa:be:26: - 8b:fc:e8:58:cd:1e:89:01:a2:15:c8:0a:52:e0:6c:8f:90:c3: - 2b:d5:30:b6:37:c9:98:4f:34:e3:1e:21:e8:d5:0f:70:6b:7c: - 1f:d4:6e:99:4f:e3:50:78:61:ec:40:52:2f:d6:01:03:53:f1: - cd:97:94:1a:44:2b:71:ab:eb:07:45:16:50:dd:4c:96:1d:c8: - d5:7a:e9:3f ------BEGIN CERTIFICATE----- -MIIC5jCCAc6gAwIBAgIUAR8vbunze3S6h5C/QOSh8P3NNX8wDQYJKoZIhvcNAQEL -BQAwIzEhMB8GA1UEAwwYUlNBLTIwNDgga2V5RW5jaXBoZXJtZW50MB4XDTIwMDcw -MTE3NDUwNFoXDTMwMDYyOTE3NDUwNFowIzEhMB8GA1UEAwwYUlNBLTIwNDgga2V5 -RW5jaXBoZXJtZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtQ11 -3pQKGSYmqDVQI/lRvrhZYaeRibeIcGE0daMalxIK4nEuhJTO1v1RxCbib/tihbUX -2EotcS1a4rkR2TQC5i1uNFA4taiiXSzBYk6jIPwRF1TOS9W4AMOJHzZuxMGeuAwn -WEj5z6vjzbQQMZ5r86f+33inN956vab/QlFVXlbyKL3fbp+Hto3amYfqe+dC8tVI -8fu2zhk6MV85efiLCQyFRebzxqEkms8a56YCMBRsB9luvckrDATOCgBVuhhUIhRc -TjyPWtYMY7ChxX8tlP3R0cpmKm5uMPmn4KP5WYyb/Zd3kACy/q+MEJa9ZC6tBVqX -FBKWQ1uNBeuVHWD24QIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCBSAwDQYJKoZIhvcN -AQELBQADggEBADwbFbNyhFqBl79k+eZz5+NQa9/548cnEM6MscHUZ3VowcF9bCTk -xB7KqWRYRrhdD+rwq+2X8R7wt0hgcRwBQnAxjhmvUfRH8yYAsxwlXPoig1GPXPPB -5kMt0rBAxsbdh1gtjnHaoDwyO/Wzi4iUUMweUaH4zNmqkHfXlVkp3f/p+g6Uj/d3 -yWwptqLpP1mZEsF4BtGEco4Uw8pRTtdHj+HATOqUcB5Ipw6yDBLJCMd4D6q+Jov8 -6FjNHokBohXIClLgbI+QwyvVMLY3yZhPNOMeIejVD3BrfB/UbplP41B4YexAUi/W -AQNT8c2XlBpEK3Gr6wdFFlDdTJYdyNV66T8= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/key_usage_rsa_no_extension.pem b/src/pki/testdata/ssl/certificates/key_usage_rsa_no_extension.pem deleted file mode 100644 index a48854b..0000000 --- a/src/pki/testdata/ssl/certificates/key_usage_rsa_no_extension.pem +++ /dev/null @@ -1,96 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1DXXelAoZJiao -NVAj+VG+uFlhp5GJt4hwYTR1oxqXEgricS6ElM7W/VHEJuJv+2KFtRfYSi1xLVri -uRHZNALmLW40UDi1qKJdLMFiTqMg/BEXVM5L1bgAw4kfNm7EwZ64DCdYSPnPq+PN -tBAxnmvzp/7feKc33nq9pv9CUVVeVvIovd9un4e2jdqZh+p750Ly1Ujx+7bOGTox -Xzl5+IsJDIVF5vPGoSSazxrnpgIwFGwH2W69ySsMBM4KAFW6GFQiFFxOPI9a1gxj -sKHFfy2U/dHRymYqbm4w+afgo/lZjJv9l3eQALL+r4wQlr1kLq0FWpcUEpZDW40F -65UdYPbhAgMBAAECggEBAK90nvCXeH3MuhOyrrpeCDkSgBQiBul2QjPeD6+c48zZ -QFEXrCPx7czs6wtzP2eUL3Mx/yytHgKbGIO1JDXgsJqOFkl+IKbzCH3RPItfd7kk -bg+1MMLPF6Ut2Tm1T30/wefMZ2ioN+doRbh4MmVTiHw1Jss8Kpj68unN53tGRLvJ -VvamRDOrtfhuM2fiKap3FH0bBGQzLJ6ZX6Xpscf3flxQhjCm5XeViBWJUo1tgVGN -Sq8GgAy/ohVQqmUbvX3Zg/yTtVfoDU44OJ2RLhDoB+5VsMtzu0i4k4zoeR0YgT53 -C4VdSmxDSPlpc0xLTmxugGZBxYSAbnyA1cdeufI5F80CgYEA4KppyNukJKu1ZS2c -Fqx08cR+PQqTzMOdZE1ZYRNtULI0Y6ajceW/l78OYOzxFQEho4Y00UQZTKUxp5/O -RxalI7b1zPlW3jXJ+2j8JWH4AnPs4aDEDcJVeuCRwlEZ9C3q3cVcjv2Ty6sNe3pe -OhupkBwAe6WwT9soDOKTSMvB5hsCgYEAzk3ceZAPXGYnjkFF58rhdFdGV0NKKePD -kAQDjpsoISCbN0RM4vNA4UNWszRd+Js/2ePVIB/k6SPRXZbcOhu2etzk1tTbeynF -7EzG5FnMGYykQVz2X1JYA+UT5AnujANJUMH1jjDyHdMFS8/1oYT0OwnnbYZ8/sev -eYK3MJyAVrMCgYEAgM2SqmIqQA/lhmVYuLMUtMtnaI2Y4OtBYBDsbjhaEsqoOH1/ -9Tu31ULm9nDBYr5sT7kQrO0y5/tJdYWsGJuF/+zUDTjiMbF65FVzQedh7d4Sb+Tg -odbJdRIs3s/qZlCw94ZAI4aD5l9h8mncfcoAM6uqJzl91Lqbwo9fy3tt5gMCgYBG -kqYQQ7KthhiT9kpGn8V+OfjLEy7Eo7CbjHP3DaatpmzSfB/dJx+Tr6hyB0D6MYmn -LOQUaDSzeFg/rsLJcf97iiMSRqCKQmD9k8oaBYnnV5A89+Mj+pQ3SN8EDE25QcqL -wL4SlTXN9AkExTAev8+YfqvXcMFDmuWxKIEoNPFGNwKBgDEWCNvj86HZnQH+7ANc -84HzHNzBz3XEtn09FeLA69r+C9vLqodxgTvPNdif42Igw4mK640jUP5JruJZ0kq0 -jYsF2yzgpVFfYbo7hU4ZGCZM24WhHhaXLE6Oi/ExCAqstLwCpaVTS1FoljtcNV7P -mZfK4GN9JSGsRqiWK21Ly2bC ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 77:a5:a7:19:39:55:bf:33:16:38:f4:8a:36:a0:0b:09:ae:52:51:2c - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = RSA-2048 no keyUsage extension - Validity - Not Before: Jul 1 17:45:04 2020 GMT - Not After : Jun 29 17:45:04 2030 GMT - Subject: CN = RSA-2048 no keyUsage extension - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:b5:0d:75:de:94:0a:19:26:26:a8:35:50:23:f9: - 51:be:b8:59:61:a7:91:89:b7:88:70:61:34:75:a3: - 1a:97:12:0a:e2:71:2e:84:94:ce:d6:fd:51:c4:26: - e2:6f:fb:62:85:b5:17:d8:4a:2d:71:2d:5a:e2:b9: - 11:d9:34:02:e6:2d:6e:34:50:38:b5:a8:a2:5d:2c: - c1:62:4e:a3:20:fc:11:17:54:ce:4b:d5:b8:00:c3: - 89:1f:36:6e:c4:c1:9e:b8:0c:27:58:48:f9:cf:ab: - e3:cd:b4:10:31:9e:6b:f3:a7:fe:df:78:a7:37:de: - 7a:bd:a6:ff:42:51:55:5e:56:f2:28:bd:df:6e:9f: - 87:b6:8d:da:99:87:ea:7b:e7:42:f2:d5:48:f1:fb: - b6:ce:19:3a:31:5f:39:79:f8:8b:09:0c:85:45:e6: - f3:c6:a1:24:9a:cf:1a:e7:a6:02:30:14:6c:07:d9: - 6e:bd:c9:2b:0c:04:ce:0a:00:55:ba:18:54:22:14: - 5c:4e:3c:8f:5a:d6:0c:63:b0:a1:c5:7f:2d:94:fd: - d1:d1:ca:66:2a:6e:6e:30:f9:a7:e0:a3:f9:59:8c: - 9b:fd:97:77:90:00:b2:fe:af:8c:10:96:bd:64:2e: - ad:05:5a:97:14:12:96:43:5b:8d:05:eb:95:1d:60: - f6:e1 - Exponent: 65537 (0x10001) - Signature Algorithm: sha256WithRSAEncryption - 0f:6e:2d:5a:08:c5:3e:62:2a:77:1c:ab:d2:65:50:20:66:16: - 9e:43:2e:74:8d:38:5b:54:8a:56:85:37:9b:3c:1f:f2:f2:84: - 83:63:ac:00:da:cb:0f:4a:81:d4:d4:af:13:88:4c:c2:24:9c: - c1:cb:db:21:c7:b7:85:78:ff:12:ff:f4:63:99:40:9b:58:a0: - 23:25:5f:5f:dc:c7:64:46:47:4d:d8:ef:cc:96:38:e7:83:2a: - 1e:7b:fd:d1:39:3d:ff:a7:90:d7:66:53:6d:3a:ad:0f:0f:a2: - 8e:c5:71:95:33:18:89:79:1c:d4:bc:8e:0d:b7:ca:ab:25:03: - 45:c6:2d:6c:dc:52:7a:06:b5:b9:8a:18:3c:8c:50:9a:e6:d8: - 17:de:69:af:0d:d3:50:03:ee:99:53:be:aa:a3:08:7d:a0:30: - 0f:22:74:c8:8c:f3:c1:3c:c8:4a:84:ae:c0:aa:01:7f:6e:63: - a5:29:a6:03:a8:fb:25:77:d3:0f:e1:df:89:c1:9f:b3:1c:30: - 36:73:74:66:cf:1f:2d:91:c2:42:99:51:66:3f:c4:36:c4:71: - f0:01:33:aa:ba:18:9d:f8:24:ca:dd:53:a1:99:98:e8:95:a5: - 59:29:7d:cf:dc:93:9c:59:f9:85:f7:f3:98:cb:11:f0:b7:53: - df:3c:cb:07 ------BEGIN CERTIFICATE----- -MIIC3jCCAcagAwIBAgIUd6WnGTlVvzMWOPSKNqALCa5SUSwwDQYJKoZIhvcNAQEL -BQAwKTEnMCUGA1UEAwweUlNBLTIwNDggbm8ga2V5VXNhZ2UgZXh0ZW5zaW9uMB4X -DTIwMDcwMTE3NDUwNFoXDTMwMDYyOTE3NDUwNFowKTEnMCUGA1UEAwweUlNBLTIw -NDggbm8ga2V5VXNhZ2UgZXh0ZW5zaW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAtQ113pQKGSYmqDVQI/lRvrhZYaeRibeIcGE0daMalxIK4nEuhJTO -1v1RxCbib/tihbUX2EotcS1a4rkR2TQC5i1uNFA4taiiXSzBYk6jIPwRF1TOS9W4 -AMOJHzZuxMGeuAwnWEj5z6vjzbQQMZ5r86f+33inN956vab/QlFVXlbyKL3fbp+H -to3amYfqe+dC8tVI8fu2zhk6MV85efiLCQyFRebzxqEkms8a56YCMBRsB9luvckr -DATOCgBVuhhUIhRcTjyPWtYMY7ChxX8tlP3R0cpmKm5uMPmn4KP5WYyb/Zd3kACy -/q+MEJa9ZC6tBVqXFBKWQ1uNBeuVHWD24QIDAQABMA0GCSqGSIb3DQEBCwUAA4IB -AQAPbi1aCMU+Yip3HKvSZVAgZhaeQy50jThbVIpWhTebPB/y8oSDY6wA2ssPSoHU -1K8TiEzCJJzBy9shx7eFeP8S//RjmUCbWKAjJV9f3MdkRkdN2O/Mljjngyoee/3R -OT3/p5DXZlNtOq0PD6KOxXGVMxiJeRzUvI4Nt8qrJQNFxi1s3FJ6BrW5ihg8jFCa -5tgX3mmvDdNQA+6ZU76qowh9oDAPInTIjPPBPMhKhK7AqgF/bmOlKaYDqPsld9MP -4d+JwZ+zHDA2c3Rmzx8tkcJCmVFmP8Q2xHHwATOquhid+CTK3VOhmZjolaVZKX3P -3JOcWfmF9/OYyxHwt1PfPMsH ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/large_key.pem b/src/pki/testdata/ssl/certificates/large_key.pem deleted file mode 100644 index a5d367c..0000000 --- a/src/pki/testdata/ssl/certificates/large_key.pem +++ /dev/null @@ -1,196 +0,0 @@ -Certificate: - Data: - Version: 1 (0x0) - Serial Number: - 72:5e:0f:a7:45:eb:e6:7a:d2:0a:7d:88:4a:cb:be:44:34:11:3a:d2 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Validity - Not Before: Oct 3 17:20:25 2022 GMT - Not After : Sep 30 17:20:25 2032 GMT - Subject: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (8200 bit) - Modulus: - 00:a8:42:16:8f:ad:e3:47:23:3c:83:29:5c:42:44: - 06:fc:2a:99:48:d5:58:0f:98:49:cf:8b:2b:9f:04: - 24:77:2d:7c:a9:f8:47:4a:6c:74:ce:42:5c:c5:4a: - 31:13:2a:a9:83:53:28:83:a7:dc:4b:f0:7b:36:31: - 5b:20:48:9d:33:d6:dd:af:99:da:56:d1:fe:b7:d9: - 84:0f:40:87:a2:c4:57:bb:24:26:43:83:df:ed:47: - f6:78:e8:c9:6a:cd:e6:de:d4:e2:2d:b0:89:d4:ad: - 31:13:65:e2:c1:1e:e5:f2:2e:89:66:e6:37:25:24: - e2:51:27:31:72:1e:5d:b8:98:7a:a3:ab:94:f7:36: - fa:76:f1:fc:24:5e:04:9d:3b:6b:43:cc:71:75:20: - f6:09:4e:54:2b:33:2e:c2:ce:a2:64:af:cb:c0:e6: - 05:4d:76:1a:31:7a:f1:4d:d4:c4:b0:ea:ca:c5:a4: - 3c:ff:10:4e:79:eb:bd:b2:ec:57:6d:83:57:84:30: - 10:87:4f:ea:29:a7:73:73:61:d9:f2:54:14:37:00: - da:f6:4a:5e:06:d2:d6:6d:a5:61:9d:59:45:82:6e: - 0a:da:bf:91:c9:c1:af:4b:75:2a:bf:3d:af:7d:51: - 4d:d0:f5:2d:e7:b0:57:d1:37:0d:40:94:5a:76:7a: - a9:5d:84:83:9d:34:9f:54:86:f5:4c:f3:b7:ec:69: - 07:d0:27:80:7a:2e:c7:af:64:37:96:6d:40:31:53: - 48:cd:9e:5f:cc:8e:39:42:32:29:0b:72:22:58:25: - 56:a9:e9:81:1c:ee:18:77:d3:d9:bc:4f:c6:4b:a9: - 9a:9f:20:40:07:17:71:34:a1:f1:8c:ff:ad:bd:8d: - 60:fc:00:7e:b4:53:b4:ac:58:5f:99:9b:e1:46:05: - 7a:28:b0:09:f2:58:26:88:2c:67:91:19:d5:7e:9e: - c8:f0:a8:75:d5:e8:ff:23:9d:cd:0f:23:99:8f:1c: - 35:5e:dc:56:09:1f:71:a0:e0:32:77:e9:3b:db:99: - 3e:e2:05:97:38:7d:21:ad:9b:5c:40:0a:b1:36:12: - d9:cc:bc:a8:03:76:ad:26:04:97:3b:7c:27:09:c4: - 86:93:28:c0:a8:15:ca:4b:54:10:2b:50:4d:58:5f: - e1:4b:4a:04:66:4a:11:f3:ad:09:4a:07:df:7d:36: - ff:0e:5d:1c:b9:6b:8d:ea:1f:b9:83:32:33:ee:1e: - 5c:e7:5b:1c:7e:ae:b6:cf:08:83:4b:fe:5f:1f:70: - ba:56:24:b8:76:12:c5:2e:f5:d6:ef:9b:83:77:17: - 4c:90:63:bc:94:55:83:56:d3:94:14:5f:78:2a:37: - cf:e1:8d:c1:f2:e8:fd:70:e1:75:da:8f:f9:2a:ee: - 6a:5f:ef:b2:2e:6f:d7:fc:a0:8e:da:59:86:74:2e: - 21:31:bd:dd:f2:90:c1:82:6b:1e:1c:5f:b0:13:94: - da:4f:de:2e:30:75:a1:37:89:6b:52:8d:05:a1:24: - 65:5d:29:74:56:2e:95:98:ce:5a:cd:d8:ea:67:2f: - e3:b6:fd:0e:28:5d:65:3a:ff:f7:c6:ea:67:e4:8d: - 5a:84:d1:01:ad:58:19:8d:63:5f:c9:03:5a:b8:c3: - 36:73:ab:d7:54:fc:9f:82:7c:aa:ad:0f:78:b6:1a: - f2:87:6a:f8:ec:9e:84:bf:52:37:ef:d2:9f:d1:79: - 7f:dd:73:ad:06:28:6b:88:81:52:a6:e4:91:3e:36: - 39:77:be:75:32:3d:c9:c1:0d:05:b2:b2:59:73:f9: - 92:87:2f:29:98:57:cc:7d:bb:eb:ad:f3:50:b1:d6: - 82:73:54:cd:5d:a1:fa:45:73:7d:1e:59:ff:3e:a2: - de:93:f9:98:db:d4:d0:68:12:1b:27:11:85:01:8e: - 85:bb:ef:a9:33:9d:d1:6b:4f:08:38:b3:db:39:0e: - 10:c1:83:d9:1b:ca:43:57:81:81:fc:c0:cb:73:5b: - 12:73:f7:a8:57:cb:bf:bf:f0:39:7c:21:a2:a3:47: - ca:42:9e:a3:27:56:3f:7d:01:18:da:35:31:d3:9b: - ca:b6:79:24:1e:6e:67:47:7c:f1:06:78:f3:ff:f6: - f9:a2:18:9f:f1:ec:ac:f9:20:b7:10:f3:62:72:f7: - 5b:db:f4:b0:89:6b:33:e6:dd:5f:a3:1e:59:ed:fb: - f9:e2:d0:4d:8f:4c:9c:99:f0:4d:d6:3c:4a:9f:a0: - 06:c7:31:51:b8:60:58:38:1f:a6:74:f7:b4:59:f2: - 89:74:42:55:d8:d9:01:f1:22:b9:e9:11:45:93:c3: - 5d:22:cc:a0:a0:26:a8:38:d7:fd:8d:af:4c:1d:b2: - 46:6d:b7:ae:c9:b4:be:77:22:28:bc:4c:e0:76:de: - fe:69:9c:51:28:06:53:67:33:f0:52:64:ee:4a:b7: - 37:25:ce:f5:35:86:06:58:42:80:5e:65:87:78:db: - ec:fb:41:40:2c:d1:c0:1f:87:5e:83:59:5d:91:fe: - 40:e9:1e:e5:fc:23:62:fa:cc:5c:1b:f6:85:30:e8: - c6:28:0e:b8:4d:2c:c4:84:55:f8:fb:40:4d:89:46: - 2c:95:b6:84:c7:61:b7:a7:3b:ea:01:dd:33:cd:bc: - 9f:2c:3e:13:3d:b6:12:05:b2:de:bb:aa:d2:91:c4: - ad:c4:69:9c:0e:34:e1:77:6a:46:d5:d1:43:3d:aa: - 24:07:d8:5c:57:e7 - Exponent: 65537 (0x10001) - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - a3:87:11:43:6d:15:9d:52:66:13:06:87:28:ca:53:75:8e:53: - 2d:1d:1f:d7:95:a7:46:30:fe:e8:33:b4:72:4a:60:19:90:6b: - 26:77:f5:11:9e:fb:1a:53:24:96:fd:93:de:ef:ec:68:5a:7a: - 10:36:8d:5c:2d:35:5a:ea:69:30:bc:4d:3d:b2:9d:ec:c8:9c: - a0:c2:b5:60:b9:bc:12:aa:90:89:48:13:3e:b6:f9:7d:58:a4: - 38:bf:21:ab:7c:ad:97:4f:27:8c:40:c9:4a:86:31:28:6c:d2: - f7:da:79:ee:d9:7e:34:df:54:ad:71:44:a8:35:39:94:b8:69: - 1f:d3:30:ec:e6:96:21:76:ce:bb:1d:4c:d8:d1:f7:c8:94:89: - 8a:cf:86:de:9e:4a:ea:22:37:91:73:ee:67:63:35:f6:23:5b: - 3f:22:e7:43:06:9b:ce:b0:42:76:b0:fb:a4:30:ed:67:42:b3: - 66:dd:37:4d:cd:9b:5b:22:f6:39:cd:f2:f3:c6:d9:a0:60:00: - b8:66:2f:bf:d6:b9:7d:d2:1e:45:06:48:cc:d4:24:7b:2d:87: - 79:1a:a4:53:ba:6b:e2:c5:9a:d5:2a:57:58:ec:fe:a8:0c:df: - 85:79:d7:07:f2:6e:09:f7:f5:40:92:71:b3:73:f4:ea:78:c0: - 46:a0:e8:d2:c6:5e:d7:8a:ab:39:21:21:25:0d:fd:ea:72:cc: - b3:75:83:3c:cc:15:e0:7b:f9:25:77:62:ee:97:bc:a4:50:3d: - f3:29:8e:c4:8d:49:51:b2:e2:42:ac:a6:a9:7b:ba:f7:f8:8d: - c6:b1:15:9b:7f:61:50:f9:8d:61:66:25:6b:88:e5:2e:91:b3: - b2:2b:a7:f3:45:c5:3b:4f:65:95:f5:c2:15:a8:d2:3e:36:bb: - d6:70:0e:db:54:c4:d9:df:1c:03:81:79:49:b6:bd:50:00:85: - c3:12:4f:21:97:c9:77:25:93:bc:08:fb:98:54:60:b3:69:09: - 8e:a9:e3:8f:3b:06:f7:65:06:24:43:98:12:ad:b6:32:5a:4b: - 66:8a:47:c8:15:8c:ba:82:17:35:e0:99:cc:69:88:f5:42:59: - e0:84:e6:ac:80:96:a8:4d:2a:e6:35:62:3e:d0:b5:34:9a:68: - 83:29:31:47:a6:53:c0:b6:db:07:d8:b2:46:a2:bd:28:79:fa: - a3:49:17:30:77:91:0e:9c:36:b5:44:17:6c:e9:84:9b:a8:e8: - 19:65:94:3f:7b:dd:e1:2b:5c:2f:51:af:57:14:1f:cd:45:96: - 0e:86:bd:07:a3:4c:d8:bc:d2:cb:68:de:6b:6d:e5:dc:15:e7: - 47:64:11:74:27:c5:d1:41:7c:01:03:6f:bd:53:ba:57:32:ba: - 42:85:be:a4:c6:3a:c7:37:59:ed:af:ce:ae:29:09:47:16:95: - 12:38:ed:26:31:18:55:db:ac:ea:c9:85:10:e0:ea:d9:d7:8d: - 31:71:bb:8c:82:4d:a9:b4:96:ba:72:42:ad:98:5d:27:7d:da: - 9a:4d:27:69:49:26:26:55:48:fd:d5:01:39:e1:ac:31:92:b8: - ff:86:ed:ca:ec:57:cf:10:4b:10:c6:54:4f:6d:3f:e4:68:f1: - e7:94:d7:6f:cd:34:1c:55:bb:3a:b0:54:72:fc:39:41:6f:cf: - 0f:e9:80:a7:1a:6d:51:74:33:99:f5:71:87:ff:5a:79:59:79: - 72:fc:96:07:9c:f2:91:2e:95:8d:88:01:2c:b0:91:06:92:70: - 05:e8:56:dd:eb:7c:80:9d:e5:ac:40:56:2b:bf:ca:88:20:76: - 41:78:0c:27:1d:43:0f:c1:b5:53:6b:22:92:d6:73:5d:35:11: - 1a:d3:fe:19:dc:2c:c3:ba:ae:7e:23:ae:d7:e5:43:35:fd:1b: - cc:02:52:aa:da:33:97:5b:e0:26:33:d9:4b:39:5d:7e:2b:c6: - 5d:6d:af:64:90:bf:02:54:e0:bc:ff:41:c0:65:d7:7b:33:fc: - b5:71:8c:db:59:08:73:68:78:50:1f:85:a0:b2:01:91:6b:00: - e3:c1:f7:8c:df:3e:93:a6:fe:c9:4f:f5:70:22:f8:c9:03:30: - e1:b8:bd:42:d7:a5:bc:ca:af:09:80:ba:9a:c8:1a:9c:95:b1: - 68:60:5c:46:76:9b:4f:c2:51:81:15:b4:a4:dd:d5:c0:4c:66: - 40:94:d3:cd:77:10:64:a5:41:99:72:69:41:a7:e7:cd:ec:4d: - c9:38:24:4f:da:88:48:8c:57:b7:2c:65:e3:52:91:da:6c:34: - 00:8e:99:91:de:e2:67:03:9a:cb:55:08:f4:2d:58:81:08:e2: - e8:02:9c:75:da:93:29:0b:db:82:ca:b3:20:90:06:59:e9:23: - fb:28:aa:ef:c0:66:4d:9e:ba:c6:76:30:b5:e1:7c:aa:79:12: - c4:45:a4:c7:d0:5a:5f:9f:3b:13:13:90:73:bf:10:95:d8:6f: - fd:7f:74:f8:c9:90:e1:20:90:96:1d:b7:be:a4:70:c3:20:8e: - cd:78:1d:e4:58:b8:20:4f:bc:19:7b:71:91:09:95:2a:4c:66: - ee:5d:b4:ae:39:66:ac:e8:ba:12:76:43:9d:a5:92:c4:f9:70: - 20:2f:91:d7:11:d6:e3:50:e6:66:6a:20:5b:b6:7e:48:22:00: - 52:74:0c:44:2a:e8:57:85:89:63:3b:2f:b8:29:68:e6:0f ------BEGIN CERTIFICATE----- -MIIJSTCCBTACFHJeD6dF6+Z60gp9iErLvkQ0ETrSMA0GCSqGSIb3DQEBCwUAMGAx -CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3Vu -dGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEw -HhcNMjIxMDAzMTcyMDI1WhcNMzIwOTMwMTcyMDI1WjBgMQswCQYDVQQGEwJVUzET -MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G -A1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4xMIIEIzANBgkqhkiG9w0B -AQEFAAOCBBAAMIIECwKCBAIAqEIWj63jRyM8gylcQkQG/CqZSNVYD5hJz4srnwQk -dy18qfhHSmx0zkJcxUoxEyqpg1Mog6fcS/B7NjFbIEidM9bdr5naVtH+t9mED0CH -osRXuyQmQ4Pf7Uf2eOjJas3m3tTiLbCJ1K0xE2XiwR7l8i6JZuY3JSTiUScxch5d -uJh6o6uU9zb6dvH8JF4EnTtrQ8xxdSD2CU5UKzMuws6iZK/LwOYFTXYaMXrxTdTE -sOrKxaQ8/xBOeeu9suxXbYNXhDAQh0/qKadzc2HZ8lQUNwDa9kpeBtLWbaVhnVlF -gm4K2r+RycGvS3Uqvz2vfVFN0PUt57BX0TcNQJRadnqpXYSDnTSfVIb1TPO37GkH -0CeAei7Hr2Q3lm1AMVNIzZ5fzI45QjIpC3IiWCVWqemBHO4Yd9PZvE/GS6manyBA -BxdxNKHxjP+tvY1g/AB+tFO0rFhfmZvhRgV6KLAJ8lgmiCxnkRnVfp7I8Kh11ej/ -I53NDyOZjxw1XtxWCR9xoOAyd+k725k+4gWXOH0hrZtcQAqxNhLZzLyoA3atJgSX -O3wnCcSGkyjAqBXKS1QQK1BNWF/hS0oEZkoR860JSgfffTb/Dl0cuWuN6h+5gzIz -7h5c51scfq62zwiDS/5fH3C6ViS4dhLFLvXW75uDdxdMkGO8lFWDVtOUFF94KjfP -4Y3B8uj9cOF12o/5Ku5qX++yLm/X/KCO2lmGdC4hMb3d8pDBgmseHF+wE5TaT94u -MHWhN4lrUo0FoSRlXSl0Vi6VmM5azdjqZy/jtv0OKF1lOv/3xupn5I1ahNEBrVgZ -jWNfyQNauMM2c6vXVPyfgnyqrQ94thryh2r47J6Ev1I379Kf0Xl/3XOtBihriIFS -puSRPjY5d751Mj3JwQ0FsrJZc/mShy8pmFfMfbvrrfNQsdaCc1TNXaH6RXN9Hln/ -PqLek/mY29TQaBIbJxGFAY6Fu++pM53Ra08IOLPbOQ4QwYPZG8pDV4GB/MDLc1sS -c/eoV8u/v/A5fCGio0fKQp6jJ1Y/fQEY2jUx05vKtnkkHm5nR3zxBnjz//b5ohif -8eys+SC3EPNicvdb2/SwiWsz5t1fox5Z7fv54tBNj0ycmfBN1jxKn6AGxzFRuGBY -OB+mdPe0WfKJdEJV2NkB8SK56RFFk8NdIsygoCaoONf9ja9MHbJGbbeuybS+dyIo -vEzgdt7+aZxRKAZTZzPwUmTuSrc3Jc71NYYGWEKAXmWHeNvs+0FALNHAH4deg1ld -kf5A6R7l/CNi+sxcG/aFMOjGKA64TSzEhFX4+0BNiUYslbaEx2G3pzvqAd0zzbyf -LD4TPbYSBbLeu6rSkcStxGmcDjThd2pG1dFDPaokB9hcV+cCAwEAATANBgkqhkiG -9w0BAQsFAAOCBAIAo4cRQ20VnVJmEwaHKMpTdY5TLR0f15WnRjD+6DO0ckpgGZBr -Jnf1EZ77GlMklv2T3u/saFp6EDaNXC01WuppMLxNPbKd7MicoMK1YLm8EqqQiUgT -Prb5fVikOL8hq3ytl08njEDJSoYxKGzS99p57tl+NN9UrXFEqDU5lLhpH9Mw7OaW -IXbOux1M2NH3yJSJis+G3p5K6iI3kXPuZ2M19iNbPyLnQwabzrBCdrD7pDDtZ0Kz -Zt03Tc2bWyL2Oc3y88bZoGAAuGYvv9a5fdIeRQZIzNQkey2HeRqkU7pr4sWa1SpX -WOz+qAzfhXnXB/JuCff1QJJxs3P06njARqDo0sZe14qrOSEhJQ396nLMs3WDPMwV -4Hv5JXdi7pe8pFA98ymOxI1JUbLiQqymqXu69/iNxrEVm39hUPmNYWYla4jlLpGz -siun80XFO09llfXCFajSPja71nAO21TE2d8cA4F5Sba9UACFwxJPIZfJdyWTvAj7 -mFRgs2kJjqnjjzsG92UGJEOYEq22MlpLZopHyBWMuoIXNeCZzGmI9UJZ4ITmrICW -qE0q5jViPtC1NJpogykxR6ZTwLbbB9iyRqK9KHn6o0kXMHeRDpw2tUQXbOmEm6jo -GWWUP3vd4StcL1GvVxQfzUWWDoa9B6NM2LzSy2jea23l3BXnR2QRdCfF0UF8AQNv -vVO6VzK6QoW+pMY6xzdZ7a/OrikJRxaVEjjtJjEYVdus6smFEODq2deNMXG7jIJN -qbSWunJCrZhdJ33amk0naUkmJlVI/dUBOeGsMZK4/4btyuxXzxBLEMZUT20/5Gjx -55TXb800HFW7OrBUcvw5QW/PD+mApxptUXQzmfVxh/9aeVl5cvyWB5zykS6VjYgB -LLCRBpJwBehW3et8gJ3lrEBWK7/KiCB2QXgMJx1DD8G1U2siktZzXTURGtP+Gdws -w7qufiOu1+VDNf0bzAJSqtozl1vgJjPZSzldfivGXW2vZJC/AlTgvP9BwGXXezP8 -tXGM21kIc2h4UB+FoLIBkWsA48H3jN8+k6b+yU/1cCL4yQMw4bi9QtelvMqvCYC6 -msganJWxaGBcRnabT8JRgRW0pN3VwExmQJTTzXcQZKVBmXJpQafnzexNyTgkT9qI -SIxXtyxl41KR2mw0AI6Zkd7iZwOay1UI9C1YgQji6AKcddqTKQvbgsqzIJAGWekj -+yiq78BmTZ66xnYwteF8qnkSxEWkx9BaX587ExOQc78Qldhv/X90+MmQ4SCQlh23 -vqRwwyCOzXgd5Fi4IE+8GXtxkQmVKkxm7l20rjlmrOi6EnZDnaWSxPlwIC+R1xHW -41DmZmogW7Z+SCIAUnQMRCroV4WJYzsvuClo5g8= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/leaf_from_known_root.pem b/src/pki/testdata/ssl/certificates/leaf_from_known_root.pem deleted file mode 100644 index a3d6120..0000000 --- a/src/pki/testdata/ssl/certificates/leaf_from_known_root.pem +++ /dev/null @@ -1,666 +0,0 @@ -=========================================== -Certificate0: 43a7c7f7b28f92beac4b5e7e002c69801fd82c8656d9cb2993dba2bab0c4ec1e -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 5475531677529648189 (0x4bfcff0cd38dac3d) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", OU = http://certs.godaddy.com/repository/, CN = Go Daddy Secure Certificate Authority - G2 - Validity - Not Before: Jul 25 02:05:05 2023 GMT - Not After : Aug 24 00:14:22 2024 GMT - Subject: CN = tntpowerwashservices.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:af:a6:20:2e:e2:8f:f6:61:ba:78:bd:8c:c9:b4: - 84:6a:38:53:33:4a:28:e1:f6:9a:f8:be:45:14:18: - ef:0c:57:6c:ae:89:7b:8d:06:89:58:b4:76:21:2c: - 43:1f:b9:5d:e0:8d:4b:83:ad:3d:04:fb:e1:bf:76: - f2:e9:1a:80:42:f7:24:65:6d:c9:90:fc:fd:8e:82: - 0a:0e:5e:22:78:09:68:59:2a:4b:58:10:99:2d:f8: - 57:56:d9:92:a6:58:7e:89:c2:12:ea:c6:e2:43:86: - 07:6f:84:e2:c2:cd:1e:9d:4f:ee:62:58:35:a2:13: - d5:bc:20:cf:69:65:c4:74:2a:4d:b1:c2:7b:03:85: - b2:fc:dd:c7:36:30:c2:d6:59:02:e8:7c:41:26:ce: - 6b:f0:7a:55:1f:90:42:07:53:2e:a1:47:2e:53:42: - a6:48:1c:d0:d2:bb:9c:76:bf:89:4b:39:9d:69:f5: - 80:a4:38:b3:bd:e7:cd:41:0c:69:d7:3d:c1:78:27: - 88:05:ee:c7:f3:87:9d:01:e1:fd:70:e4:be:4d:97: - d3:2b:61:f3:0a:d3:2f:63:a9:ce:61:22:08:2e:a3: - d6:ba:de:fe:6b:df:69:ed:2f:50:dd:b8:72:c4:d6: - 6b:00:5e:a4:8b:9b:58:c0:43:32:ab:cc:44:55:d7: - 70:2f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Key Usage: critical - Digital Signature, Key Encipherment - X509v3 CRL Distribution Points: - Full Name: - URI:http://crl.godaddy.com/gdig2s1-7257.crl - X509v3 Certificate Policies: - Policy: 2.16.840.1.114413.1.7.23.1 - CPS: http://certificates.godaddy.com/repository/ - Policy: 2.23.140.1.2.1 - Authority Information Access: - OCSP - URI:http://ocsp.godaddy.com/ - CA Issuers - URI:http://certificates.godaddy.com/repository/gdig2.crt - X509v3 Authority Key Identifier: - 40:C2:BD:27:8E:CC:34:83:30:A2:33:D7:FB:6C:B3:F0:B4:2C:80:CE - X509v3 Subject Alternative Name: - DNS:tntpowerwashservices.com, DNS:www.tntpowerwashservices.com - X509v3 Subject Key Identifier: - 15:BE:40:63:3C:B1:6A:3C:27:52:B1:1E:43:06:A1:1C:0B:09:C7:C8 - CT Precertificate SCTs: - Signed Certificate Timestamp: - Version : v1 (0x0) - Log ID : EE:CD:D0:64:D5:DB:1A:CE:C5:5C:B7:9D:B4:CD:13:A2: - 32:87:46:7C:BC:EC:DE:C3:51:48:59:46:71:1F:B5:9B - Timestamp : Jul 25 02:05:06.473 2023 GMT - Extensions: none - Signature : ecdsa-with-SHA256 - 30:45:02:21:00:B6:D5:26:94:10:7C:69:75:D5:83:A6: - 4A:7F:4D:87:A3:86:3D:C6:AD:47:17:B7:04:9F:83:0B: - 51:7E:41:C5:06:02:20:1E:2C:1C:2F:03:D1:1B:AB:E2: - F5:A0:65:BC:EC:BE:15:D2:05:ED:CC:AC:1A:44:70:DC: - 19:B6:87:58:4E:DF:EA - Signed Certificate Timestamp: - Version : v1 (0x0) - Log ID : 48:B0:E3:6B:DA:A6:47:34:0F:E5:6A:02:FA:9D:30:EB: - 1C:52:01:CB:56:DD:2C:81:D9:BB:BF:AB:39:D8:84:73 - Timestamp : Jul 25 02:05:06.771 2023 GMT - Extensions: none - Signature : ecdsa-with-SHA256 - 30:45:02:20:6F:76:37:49:56:F0:9D:7F:F7:94:58:C9: - 9E:D3:D6:36:7D:BD:56:F4:92:41:0B:3E:97:0B:95:84: - 53:C6:68:24:02:21:00:87:45:7A:45:89:8E:C0:D9:44: - 82:56:24:C1:0D:A3:C4:FC:F8:C8:8E:1D:71:CC:0C:B5: - 6E:03:40:8D:3C:34:3A - Signed Certificate Timestamp: - Version : v1 (0x0) - Log ID : DA:B6:BF:6B:3F:B5:B6:22:9F:9B:C2:BB:5C:6B:E8:70: - 91:71:6C:BB:51:84:85:34:BD:A4:3D:30:48:D7:FB:AB - Timestamp : Jul 25 02:05:06.882 2023 GMT - Extensions: none - Signature : ecdsa-with-SHA256 - 30:46:02:21:00:A1:1F:15:0A:5A:5A:E7:ED:6D:61:5F: - 9C:13:0B:66:70:62:95:31:C8:ED:D0:8A:B9:58:B1:90: - 97:63:21:C8:2B:02:21:00:F9:67:A5:79:88:32:96:48: - CB:6C:B9:27:76:0D:B6:7C:3A:AE:CB:65:40:87:E3:A5: - A9:FA:03:CA:61:F3:C7:9D - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 26:c1:ee:ce:fb:7c:3d:bd:15:19:f7:6e:bc:f2:b0:d3:8b:a0: - d0:26:84:83:2c:06:65:50:68:0e:9a:1e:96:9e:2b:64:ae:7a: - 0a:05:e9:78:0a:cc:d5:0d:44:7a:d5:ae:4b:25:0c:a1:5d:a0: - b4:3a:1b:60:6c:6a:e2:30:7e:30:23:2e:eb:74:85:80:84:0f: - e6:cb:89:ee:b8:a9:9d:79:8a:da:dc:13:e1:6d:77:4f:81:7e: - 55:b4:0f:4f:41:6d:02:89:bf:73:95:7c:7f:b2:d8:9b:50:4a: - f8:60:36:11:e2:13:32:1f:e5:0f:3a:7d:0e:42:1e:b0:90:eb: - dd:41:57:0c:52:72:28:31:87:13:cb:39:9a:2f:23:66:9f:ca: - a9:4a:d3:26:30:71:ad:72:e2:83:b7:00:29:92:2c:b9:9f:c9: - a2:85:b2:90:29:c0:10:41:e4:6f:6e:d7:3c:ad:96:06:81:75: - 09:ff:7e:47:ff:3d:93:18:f5:e8:62:44:f9:8a:6c:37:db:5a: - a6:66:78:ae:3a:84:9b:7c:d0:f0:c9:9d:99:ce:8d:4a:9f:ab: - d6:e1:bd:7c:bc:9c:9d:f2:00:c9:17:aa:7d:97:9f:3f:27:9c: - 6c:91:16:a6:8e:39:c8:86:db:0c:14:ea:20:3d:f7:aa:7d:a3: - e2:67:9d:9a - -SEQUENCE { - SEQUENCE { - [0] { - INTEGER { 2 } - } - INTEGER { `4bfcff0cd38dac3d` } - SEQUENCE { - # sha256WithRSAEncryption - OBJECT_IDENTIFIER { 1.2.840.113549.1.1.11 } - NULL {} - } - SEQUENCE { - SET { - SEQUENCE { - # countryName - OBJECT_IDENTIFIER { 2.5.4.6 } - PrintableString { "US" } - } - } - SET { - SEQUENCE { - # stateOrProvinceName - OBJECT_IDENTIFIER { 2.5.4.8 } - PrintableString { "Arizona" } - } - } - SET { - SEQUENCE { - # localityName - OBJECT_IDENTIFIER { 2.5.4.7 } - PrintableString { "Scottsdale" } - } - } - SET { - SEQUENCE { - # organizationName - OBJECT_IDENTIFIER { 2.5.4.10 } - PrintableString { "GoDaddy.com, Inc." } - } - } - SET { - SEQUENCE { - # organizationUnitName - OBJECT_IDENTIFIER { 2.5.4.11 } - PrintableString { "http://certs.godaddy.com/repository/" } - } - } - SET { - SEQUENCE { - # commonName - OBJECT_IDENTIFIER { 2.5.4.3 } - PrintableString { "Go Daddy Secure Certificate Authority - G2" } - } - } - } - SEQUENCE { - UTCTime { "230725020505Z" } - UTCTime { "240824001422Z" } - } - SEQUENCE { - SET { - SEQUENCE { - # commonName - OBJECT_IDENTIFIER { 2.5.4.3 } - PrintableString { "tntpowerwashservices.com" } - } - } - } - SEQUENCE { - SEQUENCE { - # rsaEncryption - OBJECT_IDENTIFIER { 1.2.840.113549.1.1.1 } - NULL {} - } - BIT_STRING { - `00` - SEQUENCE { - INTEGER { `00afa6202ee28ff661ba78bd8cc9b4846a3853334a28e1f69af8be451418ef0c576cae897b8d068958b476212c431fb95de08d4b83ad3d04fbe1bf76f2e91a8042f724656dc990fcfd8e820a0e5e22780968592a4b5810992df85756d992a6587e89c212eac6e24386076f84e2c2cd1e9d4fee625835a213d5bc20cf6965c4742a4db1c27b0385b2fcddc73630c2d65902e87c4126ce6bf07a551f904207532ea1472e5342a6481cd0d2bb9c76bf894b399d69f580a438b3bde7cd410c69d73dc178278805eec7f3879d01e1fd70e4be4d97d32b61f30ad32f63a9ce6122082ea3d6badefe6bdf69ed2f50ddb872c4d66b005ea48b9b58c04332abcc4455d7702f` } - INTEGER { 65537 } - } - } - } - [3] { - SEQUENCE { - SEQUENCE { - # basicConstraints - OBJECT_IDENTIFIER { 2.5.29.19 } - BOOLEAN { TRUE } - OCTET_STRING { - SEQUENCE {} - } - } - SEQUENCE { - # extKeyUsage - OBJECT_IDENTIFIER { 2.5.29.37 } - OCTET_STRING { - SEQUENCE { - # serverAuth - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.3.1 } - # clientAuth - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.3.2 } - } - } - } - SEQUENCE { - # keyUsage - OBJECT_IDENTIFIER { 2.5.29.15 } - BOOLEAN { TRUE } - OCTET_STRING { - BIT_STRING { b`101` } - } - } - SEQUENCE { - # cRLDistributionPoints - OBJECT_IDENTIFIER { 2.5.29.31 } - OCTET_STRING { - SEQUENCE { - SEQUENCE { - [0] { - [0] { - [6 PRIMITIVE] { "http://crl.godaddy.com/gdig2s1-7257.crl" } - } - } - } - } - } - } - SEQUENCE { - # certificatePolicies - OBJECT_IDENTIFIER { 2.5.29.32 } - OCTET_STRING { - SEQUENCE { - SEQUENCE { - OBJECT_IDENTIFIER { 2.16.840.1.114413.1.7.23.1 } - SEQUENCE { - SEQUENCE { - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.2.1 } - IA5String { "http://certificates.godaddy.com/repository/" } - } - } - } - SEQUENCE { - # domain-validated - OBJECT_IDENTIFIER { 2.23.140.1.2.1 } - } - } - } - } - SEQUENCE { - # authorityInfoAccess - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.1.1 } - OCTET_STRING { - SEQUENCE { - SEQUENCE { - # ocsp - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.48.1 } - [6 PRIMITIVE] { "http://ocsp.godaddy.com/" } - } - SEQUENCE { - # caIssuers - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.48.2 } - [6 PRIMITIVE] { "http://certificates.godaddy.com/repository/gdig2.crt" } - } - } - } - } - SEQUENCE { - # authorityKeyIdentifier - OBJECT_IDENTIFIER { 2.5.29.35 } - OCTET_STRING { - SEQUENCE { - [0 PRIMITIVE] { `40c2bd278ecc348330a233d7fb6cb3f0b42c80ce` } - } - } - } - SEQUENCE { - # subjectAltName - OBJECT_IDENTIFIER { 2.5.29.17 } - OCTET_STRING { - SEQUENCE { - [2 PRIMITIVE] { "tntpowerwashservices.com" } - [2 PRIMITIVE] { "www.tntpowerwashservices.com" } - } - } - } - SEQUENCE { - # subjectKeyIdentifier - OBJECT_IDENTIFIER { 2.5.29.14 } - OCTET_STRING { - OCTET_STRING { `15be40633cb16a3c2752b11e4306a11c0b09c7c8` } - } - } - SEQUENCE { - # embeddedSCTList - OBJECT_IDENTIFIER { 1.3.6.1.4.1.11129.2.4.2 } - OCTET_STRING { - OCTET_STRING { `0169007600eecdd064d5db1acec55cb79db4cd13a23287467cbcecdec351485946711fb59b000001898acafe290000040300473045022100b6d52694107c6975d583a64a7f4d87a3863dc6ad4717b7049f830b517e41c50602201e2c1c2f03d11babe2f5a065bcecbe15d205edccac1a4470dc19b687584edfea00760048b0e36bdaa647340fe56a02fa9d30eb1c5201cb56dd2c81d9bbbfab39d88473000001898acaff53000004030047304502206f76374956f09d7ff79458c99ed3d6367dbd56f492410b3e970b958453c6682402210087457a45898ec0d944825624c10da3c4fcf8c88e1d71cc0cb56e03408d3c343a007700dab6bf6b3fb5b6229f9bc2bb5c6be87091716cbb51848534bda43d3048d7fbab000001898acaffc20000040300483046022100a11f150a5a5ae7ed6d615f9c130b6670629531c8edd08ab958b190976321c82b022100f967a57988329648cb6cb927760db67c3aaecb654087e3a5a9fa03ca61f3c79d` } - } - } - } - } - } - SEQUENCE { - # sha256WithRSAEncryption - OBJECT_IDENTIFIER { 1.2.840.113549.1.1.11 } - NULL {} - } - BIT_STRING { `00` `26c1eecefb7c3dbd1519f76ebcf2b0d38ba0d02684832c066550680e9a1e969e2b64ae7a0a05e9780accd50d447ad5ae4b250ca15da0b43a1b606c6ae2307e30232eeb748580840fe6cb89eeb8a99d798adadc13e16d774f817e55b40f4f416d0289bf73957c7fb2d89b504af8603611e213321fe50f3a7d0e421eb090ebdd41570c527228318713cb399a2f23669fcaa94ad3263071ad72e283b70029922cb99fc9a285b29029c01041e46f6ed73cad9606817509ff7e47ff3d9318f5e86244f98a6c37db5aa66678ae3a849b7cd0f0c99d99ce8d4a9fabd6e1bd7cbc9c9df200c917aa7d979f3f279c6c9116a68e39c886db0c14ea203df7aa7da3e2679d9a` } -} - ------BEGIN CERTIFICATE----- -MIIGtDCCBZygAwIBAgIIS/z/DNONrD0wDQYJKoZIhvcNAQELBQAwgbQxCzAJBgNV -BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRow -GAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UECxMkaHR0cDovL2NlcnRz -LmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQDEypHbyBEYWRkeSBTZWN1 -cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwHhcNMjMwNzI1MDIwNTA1WhcN -MjQwODI0MDAxNDIyWjAjMSEwHwYDVQQDExh0bnRwb3dlcndhc2hzZXJ2aWNlcy5j -b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvpiAu4o/2Ybp4vYzJ -tIRqOFMzSijh9pr4vkUUGO8MV2yuiXuNBolYtHYhLEMfuV3gjUuDrT0E++G/dvLp -GoBC9yRlbcmQ/P2OggoOXiJ4CWhZKktYEJkt+FdW2ZKmWH6JwhLqxuJDhgdvhOLC -zR6dT+5iWDWiE9W8IM9pZcR0Kk2xwnsDhbL83cc2MMLWWQLofEEmzmvwelUfkEIH -Uy6hRy5TQqZIHNDSu5x2v4lLOZ1p9YCkOLO9581BDGnXPcF4J4gF7sfzh50B4f1w -5L5Nl9MrYfMK0y9jqc5hIgguo9a63v5r32ntL1DduHLE1msAXqSLm1jAQzKrzERV -13AvAgMBAAGjggNYMIIDVDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUF -BwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCBaAwOAYDVR0fBDEwLzAtoCugKYYn -aHR0cDovL2NybC5nb2RhZGR5LmNvbS9nZGlnMnMxLTcyNTcuY3JsMF0GA1UdIARW -MFQwSAYLYIZIAYb9bQEHFwEwOTA3BggrBgEFBQcCARYraHR0cDovL2NlcnRpZmlj -YXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzAIBgZngQwBAgEwdgYIKwYBBQUH -AQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nb2RhZGR5LmNvbS8wQAYI -KwYBBQUHMAKGNGh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3Np -dG9yeS9nZGlnMi5jcnQwHwYDVR0jBBgwFoAUQMK9J47MNIMwojPX+2yz8LQsgM4w -QQYDVR0RBDowOIIYdG50cG93ZXJ3YXNoc2VydmljZXMuY29tghx3d3cudG50cG93 -ZXJ3YXNoc2VydmljZXMuY29tMB0GA1UdDgQWBBQVvkBjPLFqPCdSsR5DBqEcCwnH -yDCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHYA7s3QZNXbGs7FXLedtM0TojKH -Rny87N7DUUhZRnEftZsAAAGJisr+KQAABAMARzBFAiEAttUmlBB8aXXVg6ZKf02H -o4Y9xq1HF7cEn4MLUX5BxQYCIB4sHC8D0Rur4vWgZbzsvhXSBe3MrBpEcNwZtodY -Tt/qAHYASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGJisr/UwAA -BAMARzBFAiBvdjdJVvCdf/eUWMme09Y2fb1W9JJBCz6XC5WEU8ZoJAIhAIdFekWJ -jsDZRIJWJMENo8T8+MiOHXHMDLVuA0CNPDQ6AHcA2ra/az+1tiKfm8K7XGvocJFx -bLtRhIU0vaQ9MEjX+6sAAAGJisr/wgAABAMASDBGAiEAoR8VClpa5+1tYV+cEwtm -cGKVMcjt0Iq5WLGQl2MhyCsCIQD5Z6V5iDKWSMtsuSd2DbZ8Oq7LZUCH46Wp+gPK -YfPHnTANBgkqhkiG9w0BAQsFAAOCAQEAJsHuzvt8Pb0VGfduvPKw04ug0CaEgywG -ZVBoDpoelp4rZK56CgXpeArM1Q1EetWuSyUMoV2gtDobYGxq4jB+MCMu63SFgIQP -5suJ7ripnXmK2twT4W13T4F+VbQPT0FtAom/c5V8f7LYm1BK+GA2EeITMh/lDzp9 -DkIesJDr3UFXDFJyKDGHE8s5mi8jZp/KqUrTJjBxrXLig7cAKZIsuZ/JooWykCnA -EEHkb27XPK2WBoF1Cf9+R/89kxj16GJE+YpsN9tapmZ4rjqEm3zQ8Mmdmc6NSp+r -1uG9fLycnfIAyReqfZefPyecbJEWpo45yIbbDBTqID33qn2j4medmg== ------END CERTIFICATE----- - -=========================================== -Certificate1: 973a41276ffd01e027a2aad49e34c37846d3e976ff6a620b6712e33832041aa6 -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 7 (0x7) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", CN = Go Daddy Root Certificate Authority - G2 - Validity - Not Before: May 3 07:00:00 2011 GMT - Not After : May 3 07:00:00 2031 GMT - Subject: C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", OU = http://certs.godaddy.com/repository/, CN = Go Daddy Secure Certificate Authority - G2 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b9:e0:cb:10:d4:af:76:bd:d4:93:62:eb:30:64: - b8:81:08:6c:c3:04:d9:62:17:8e:2f:ff:3e:65:cf: - 8f:ce:62:e6:3c:52:1c:da:16:45:4b:55:ab:78:6b: - 63:83:62:90:ce:0f:69:6c:99:c8:1a:14:8b:4c:cc: - 45:33:ea:88:dc:9e:a3:af:2b:fe:80:61:9d:79:57: - c4:cf:2e:f4:3f:30:3c:5d:47:fc:9a:16:bc:c3:37: - 96:41:51:8e:11:4b:54:f8:28:be:d0:8c:be:f0:30: - 38:1e:f3:b0:26:f8:66:47:63:6d:de:71:26:47:8f: - 38:47:53:d1:46:1d:b4:e3:dc:00:ea:45:ac:bd:bc: - 71:d9:aa:6f:00:db:db:cd:30:3a:79:4f:5f:4c:47: - f8:1d:ef:5b:c2:c4:9d:60:3b:b1:b2:43:91:d8:a4: - 33:4e:ea:b3:d6:27:4f:ad:25:8a:a5:c6:f4:d5:d0: - a6:ae:74:05:64:57:88:b5:44:55:d4:2d:2a:3a:3e: - f8:b8:bd:e9:32:0a:02:94:64:c4:16:3a:50:f1:4a: - ae:e7:79:33:af:0c:20:07:7f:e8:df:04:39:c2:69: - 02:6c:63:52:fa:77:c1:1b:c8:74:87:c8:b9:93:18: - 50:54:35:4b:69:4e:bc:3b:d3:49:2e:1f:dc:c1:d2: - 52:fb - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - 40:C2:BD:27:8E:CC:34:83:30:A2:33:D7:FB:6C:B3:F0:B4:2C:80:CE - X509v3 Authority Key Identifier: - 3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE - Authority Information Access: - OCSP - URI:http://ocsp.godaddy.com/ - X509v3 CRL Distribution Points: - Full Name: - URI:http://crl.godaddy.com/gdroot-g2.crl - X509v3 Certificate Policies: - Policy: X509v3 Any Policy - CPS: https://certs.godaddy.com/repository/ - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 08:7e:6c:93:10:c8:38:b8:96:a9:90:4b:ff:a1:5f:4f:04:ef: - 6c:3e:9c:88:06:c9:50:8f:a6:73:f7:57:31:1b:be:bc:e4:2f: - db:f8:ba:d3:5b:e0:b4:e7:e6:79:62:0e:0c:a2:d7:6a:63:73: - 31:b5:f5:a8:48:a4:3b:08:2d:a2:5d:90:d7:b4:7c:25:4f:11: - 56:30:c4:b6:44:9d:7b:2c:9d:e5:5e:e6:ef:0c:61:aa:bf:e4: - 2a:1b:ee:84:9e:b8:83:7d:c1:43:ce:44:a7:13:70:0d:91:1f: - f4:c8:13:ad:83:60:d9:d8:72:a8:73:24:1e:b5:ac:22:0e:ca: - 17:89:62:58:44:1b:ab:89:25:01:00:0f:cd:c4:1b:62:db:51: - b4:d3:0f:51:2a:9b:f4:bc:73:fc:76:ce:36:a4:cd:d9:d8:2c: - ea:ae:9b:f5:2a:b2:90:d1:4d:75:18:8a:3f:8a:41:90:23:7d: - 5b:4b:fe:a4:03:58:9b:46:b2:c3:60:60:83:f8:7d:50:41:ce: - c2:a1:90:c3:bb:ef:02:2f:d2:15:54:ee:44:15:d9:0a:ae:a7: - 8a:33:ed:b1:2d:76:36:26:dc:04:eb:9f:f7:61:1f:15:dc:87: - 6f:ee:46:96:28:ad:a1:26:7d:0a:09:a7:2e:04:a3:8d:bc:f8: - bc:04:30:01 - -SEQUENCE { - SEQUENCE { - [0] { - INTEGER { 2 } - } - INTEGER { 7 } - SEQUENCE { - # sha256WithRSAEncryption - OBJECT_IDENTIFIER { 1.2.840.113549.1.1.11 } - NULL {} - } - SEQUENCE { - SET { - SEQUENCE { - # countryName - OBJECT_IDENTIFIER { 2.5.4.6 } - PrintableString { "US" } - } - } - SET { - SEQUENCE { - # stateOrProvinceName - OBJECT_IDENTIFIER { 2.5.4.8 } - PrintableString { "Arizona" } - } - } - SET { - SEQUENCE { - # localityName - OBJECT_IDENTIFIER { 2.5.4.7 } - PrintableString { "Scottsdale" } - } - } - SET { - SEQUENCE { - # organizationName - OBJECT_IDENTIFIER { 2.5.4.10 } - PrintableString { "GoDaddy.com, Inc." } - } - } - SET { - SEQUENCE { - # commonName - OBJECT_IDENTIFIER { 2.5.4.3 } - PrintableString { "Go Daddy Root Certificate Authority - G2" } - } - } - } - SEQUENCE { - UTCTime { "110503070000Z" } - UTCTime { "310503070000Z" } - } - SEQUENCE { - SET { - SEQUENCE { - # countryName - OBJECT_IDENTIFIER { 2.5.4.6 } - PrintableString { "US" } - } - } - SET { - SEQUENCE { - # stateOrProvinceName - OBJECT_IDENTIFIER { 2.5.4.8 } - PrintableString { "Arizona" } - } - } - SET { - SEQUENCE { - # localityName - OBJECT_IDENTIFIER { 2.5.4.7 } - PrintableString { "Scottsdale" } - } - } - SET { - SEQUENCE { - # organizationName - OBJECT_IDENTIFIER { 2.5.4.10 } - PrintableString { "GoDaddy.com, Inc." } - } - } - SET { - SEQUENCE { - # organizationUnitName - OBJECT_IDENTIFIER { 2.5.4.11 } - PrintableString { "http://certs.godaddy.com/repository/" } - } - } - SET { - SEQUENCE { - # commonName - OBJECT_IDENTIFIER { 2.5.4.3 } - PrintableString { "Go Daddy Secure Certificate Authority - G2" } - } - } - } - SEQUENCE { - SEQUENCE { - # rsaEncryption - OBJECT_IDENTIFIER { 1.2.840.113549.1.1.1 } - NULL {} - } - BIT_STRING { - `00` - SEQUENCE { - INTEGER { `00b9e0cb10d4af76bdd49362eb3064b881086cc304d962178e2fff3e65cf8fce62e63c521cda16454b55ab786b63836290ce0f696c99c81a148b4ccc4533ea88dc9ea3af2bfe80619d7957c4cf2ef43f303c5d47fc9a16bcc3379641518e114b54f828bed08cbef030381ef3b026f86647636dde7126478f384753d1461db4e3dc00ea45acbdbc71d9aa6f00dbdbcd303a794f5f4c47f81def5bc2c49d603bb1b24391d8a4334eeab3d6274fad258aa5c6f4d5d0a6ae7405645788b54455d42d2a3a3ef8b8bde9320a029464c4163a50f14aaee77933af0c20077fe8df0439c269026c6352fa77c11bc87487c8b993185054354b694ebc3bd3492e1fdcc1d252fb` } - INTEGER { 65537 } - } - } - } - [3] { - SEQUENCE { - SEQUENCE { - # basicConstraints - OBJECT_IDENTIFIER { 2.5.29.19 } - BOOLEAN { TRUE } - OCTET_STRING { - SEQUENCE { - BOOLEAN { TRUE } - } - } - } - SEQUENCE { - # keyUsage - OBJECT_IDENTIFIER { 2.5.29.15 } - BOOLEAN { TRUE } - OCTET_STRING { - BIT_STRING { b`0000011` } - } - } - SEQUENCE { - # subjectKeyIdentifier - OBJECT_IDENTIFIER { 2.5.29.14 } - OCTET_STRING { - OCTET_STRING { `40c2bd278ecc348330a233d7fb6cb3f0b42c80ce` } - } - } - SEQUENCE { - # authorityKeyIdentifier - OBJECT_IDENTIFIER { 2.5.29.35 } - OCTET_STRING { - SEQUENCE { - [0 PRIMITIVE] { `3a9a8507106728b6eff6bd05416e20c194da0fde` } - } - } - } - SEQUENCE { - # authorityInfoAccess - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.1.1 } - OCTET_STRING { - SEQUENCE { - SEQUENCE { - # ocsp - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.48.1 } - [6 PRIMITIVE] { "http://ocsp.godaddy.com/" } - } - } - } - } - SEQUENCE { - # cRLDistributionPoints - OBJECT_IDENTIFIER { 2.5.29.31 } - OCTET_STRING { - SEQUENCE { - SEQUENCE { - [0] { - [0] { - [6 PRIMITIVE] { "http://crl.godaddy.com/gdroot-g2.crl" } - } - } - } - } - } - } - SEQUENCE { - # certificatePolicies - OBJECT_IDENTIFIER { 2.5.29.32 } - OCTET_STRING { - SEQUENCE { - SEQUENCE { - # anyPolicy - OBJECT_IDENTIFIER { 2.5.29.32.0 } - SEQUENCE { - SEQUENCE { - OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.2.1 } - IA5String { "https://certs.godaddy.com/repository/" } - } - } - } - } - } - } - } - } - } - SEQUENCE { - # sha256WithRSAEncryption - OBJECT_IDENTIFIER { 1.2.840.113549.1.1.11 } - NULL {} - } - BIT_STRING { `00` `087e6c9310c838b896a9904bffa15f4f04ef6c3e9c8806c9508fa673f757311bbebce42fdbf8bad35be0b4e7e679620e0ca2d76a637331b5f5a848a43b082da25d90d7b47c254f115630c4b6449d7b2c9de55ee6ef0c61aabfe42a1bee849eb8837dc143ce44a713700d911ff4c813ad8360d9d872a873241eb5ac220eca17896258441bab892501000fcdc41b62db51b4d30f512a9bf4bc73fc76ce36a4cdd9d82ceaae9bf52ab290d14d75188a3f8a4190237d5b4bfea403589b46b2c3606083f87d5041cec2a190c3bbef022fd21554ee4415d90aaea78a33edb12d763626dc04eb9ff7611f15dc876fee469628ada1267d0a09a72e04a38dbcf8bc043001` } -} - ------BEGIN CERTIFICATE----- -MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT -EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp -ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3 -MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH -EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE -CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD -EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD -BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv -K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e -cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY -pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n -eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB -AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv -9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v -b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n -b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG -CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv -MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz -91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2 -RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi -DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11 -GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x -LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB ------END CERTIFICATE----- - diff --git a/src/pki/testdata/ssl/certificates/lets-encrypt-dst-x3-root.pem b/src/pki/testdata/ssl/certificates/lets-encrypt-dst-x3-root.pem deleted file mode 100644 index f07dc1d..0000000 --- a/src/pki/testdata/ssl/certificates/lets-encrypt-dst-x3-root.pem +++ /dev/null @@ -1,464 +0,0 @@ -=========================================== -Certificate0: 6091eceb0c7649bd2e446f4984f739c8c7284d1c55388b2313e3a8a27d4cef96 -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 04:7b:f4:fd:2c:fb:01:92:d5:30:c1:0f:c9:19:83:2a:49:ef - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, O = Let's Encrypt, CN = R3 - Validity - Not Before: Jan 1 19:45:05 2022 GMT - Not After : Apr 1 19:45:04 2022 GMT - Subject: CN = t.wayfair.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:e6:ad:89:9c:97:2e:b0:72:e8:dc:a5:4c:9c:2c: - 29:4f:4a:4f:f1:ce:b7:06:b2:a5:21:e3:6d:47:03: - c9:53:18:81:a9:0c:db:54:46:7a:1e:41:c9:89:12: - 72:dd:c2:b2:49:02:30:23:9d:b6:c9:d3:e0:22:45: - 31:d7:1d:48:38:30:31:b4:a6:12:72:6a:66:8c:51: - ba:48:b8:aa:cf:e9:4d:4c:ee:97:63:36:19:1a:79: - 3c:1e:be:6a:d4:a7:b4:15:5b:05:8e:e1:04:b3:7e: - 25:08:48:0b:bc:8f:f4:07:4a:98:e0:df:2e:a7:fc: - 74:06:43:77:3f:38:ba:bf:e3:18:65:87:68:62:5a: - 25:80:e4:5a:c8:b2:8a:cb:a2:05:67:f3:5f:0e:6e: - dc:4f:69:1f:69:98:cf:12:a4:db:f9:fe:9e:b6:7a: - 2b:d2:82:35:c9:eb:5b:12:94:aa:ff:89:b5:44:5f: - d7:7b:cd:a8:0e:da:92:ce:46:2f:eb:d5:be:28:4b: - b3:ee:a0:2f:5e:87:b2:a7:1e:9c:32:b6:57:cf:1c: - c3:02:09:a2:b1:a0:0a:c1:7c:1c:11:09:93:d5:70: - 32:11:98:9c:08:03:00:cc:00:d9:2c:af:48:ac:78: - 39:87:4e:91:07:1a:8f:fa:75:34:2a:a4:16:0e:93: - 1d:6b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature, Key Encipherment - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E7:58:20:5D:82:32:8D:06:2C:35:1C:97:EC:1D:F9:74:84:A9:46:D1 - X509v3 Authority Key Identifier: - keyid:14:2E:B3:17:B7:58:56:CB:AE:50:09:40:E6:1F:AF:9D:8B:14:C2:C6 - - Authority Information Access: - OCSP - URI:http://r3.o.lencr.org - CA Issuers - URI:http://r3.i.lencr.org/ - - X509v3 Subject Alternative Name: - DNS:magellan.wayfair.com, DNS:t.wayfair.com - X509v3 Certificate Policies: - Policy: 2.23.140.1.2.1 - Policy: 1.3.6.1.4.1.44947.1.1.1 - CPS: http://cps.letsencrypt.org - - CT Precertificate SCTs: - Signed Certificate Timestamp: - Version : v1 (0x0) - Log ID : 41:C8:CA:B1:DF:22:46:4A:10:C6:A1:3A:09:42:87:5E: - 4E:31:8B:1B:03:EB:EB:4B:C7:68:F0:90:62:96:06:F6 - Timestamp : Jan 1 20:45:05.213 2022 GMT - Extensions: none - Signature : ecdsa-with-SHA256 - 30:45:02:20:05:FB:47:45:BD:63:AD:FD:E7:AF:9E:7E: - D6:51:5A:1E:AB:62:FE:2A:27:4B:A0:ED:8A:4A:8F:B3: - C8:36:8C:BD:02:21:00:8B:07:10:4C:BF:07:1C:ED:54: - DF:28:2C:E3:B2:32:6B:43:48:E4:04:80:28:17:91:50: - 8D:28:FC:58:08:BF:7C - Signed Certificate Timestamp: - Version : v1 (0x0) - Log ID : 46:A5:55:EB:75:FA:91:20:30:B5:A2:89:69:F4:F3:7D: - 11:2C:41:74:BE:FD:49:B8:85:AB:F2:FC:70:FE:6D:47 - Timestamp : Jan 1 20:45:05.235 2022 GMT - Extensions: none - Signature : ecdsa-with-SHA256 - 30:44:02:20:73:8C:D6:ED:CC:59:2D:3D:5E:1A:37:E9: - 42:A2:74:6D:95:1B:20:0E:19:91:40:0E:AD:A3:80:66: - 48:FB:17:32:02:20:02:3A:61:DA:61:EF:CB:37:BB:97: - 5E:AC:79:08:2B:5E:71:EA:9B:7B:FC:B4:F5:50:04:2E: - E0:40:42:44:2C:79 - Signature Algorithm: sha256WithRSAEncryption - 9d:eb:00:3c:46:54:f1:6d:64:29:7e:64:b8:73:6e:b2:69:c8: - f9:bd:11:b1:46:a5:f6:4c:cd:77:ef:a3:51:24:65:bc:80:13: - 84:7c:07:6b:38:eb:37:7a:f3:77:79:ad:25:7a:7d:4b:43:f8: - 0d:e6:ad:4d:05:51:b6:b5:ba:6d:48:85:28:48:0b:13:eb:29: - 16:7d:e9:ad:dc:25:82:73:d5:68:7a:e5:de:2c:f2:c4:08:4f: - 84:e9:ba:db:e2:6d:31:7c:76:e0:95:85:0f:d9:cc:a8:f1:4a: - 79:58:18:23:dc:b0:21:ee:eb:36:13:d2:82:9a:34:8f:16:b2: - e1:c0:39:3a:85:2c:05:22:89:2c:ad:22:9a:dc:9a:98:77:44: - 11:30:6d:2c:5d:7f:8e:9d:d7:86:6e:a6:bc:12:ce:74:22:83: - 51:20:62:ba:69:e6:12:46:7d:75:b9:7b:8d:a2:78:66:94:a4: - dd:9e:b6:d4:9a:bf:d2:47:44:7f:0f:a3:cd:ce:4c:e8:80:b2: - 53:b8:ed:f7:96:16:0c:2d:04:16:63:e2:9d:07:c0:ea:6a:c8: - 31:78:cb:e2:81:cd:0a:12:e1:ff:a1:c4:05:00:32:4c:0f:68: - 04:11:7a:37:06:98:a8:34:26:b6:c3:b5:e8:14:93:8b:25:d5: - 27:2b:2a:a4 - ------BEGIN CERTIFICATE----- -MIIFNTCCBB2gAwIBAgISBHv0/Sz7AZLVMMEPyRmDKknvMA0GCSqGSIb3DQEBCwUA -MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD -EwJSMzAeFw0yMjAxMDExOTQ1MDVaFw0yMjA0MDExOTQ1MDRaMBgxFjAUBgNVBAMT -DXQud2F5ZmFpci5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDm -rYmcly6wcujcpUycLClPSk/xzrcGsqUh421HA8lTGIGpDNtURnoeQcmJEnLdwrJJ -AjAjnbbJ0+AiRTHXHUg4MDG0phJyamaMUbpIuKrP6U1M7pdjNhkaeTwevmrUp7QV -WwWO4QSzfiUISAu8j/QHSpjg3y6n/HQGQ3c/OLq/4xhlh2hiWiWA5FrIsorLogVn -818ObtxPaR9pmM8SpNv5/p62eivSgjXJ61sSlKr/ibVEX9d7zagO2pLORi/r1b4o -S7PuoC9eh7KnHpwytlfPHMMCCaKxoArBfBwRCZPVcDIRmJwIAwDMANksr0iseDmH -TpEHGo/6dTQqpBYOkx1rAgMBAAGjggJdMIICWTAOBgNVHQ8BAf8EBAMCBaAwHQYD -VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O -BBYEFOdYIF2CMo0GLDUcl+wd+XSEqUbRMB8GA1UdIwQYMBaAFBQusxe3WFbLrlAJ -QOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDovL3Iz -Lm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5vcmcv -MC4GA1UdEQQnMCWCFG1hZ2VsbGFuLndheWZhaXIuY29tgg10LndheWZhaXIuY29t -MEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUH -AgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBAwYKKwYBBAHWeQIEAgSB -9ASB8QDvAHYAQcjKsd8iRkoQxqE6CUKHXk4xixsD6+tLx2jwkGKWBvYAAAF+F2OF -PQAABAMARzBFAiAF+0dFvWOt/eevnn7WUVoeq2L+KidLoO2KSo+zyDaMvQIhAIsH -EEy/BxztVN8oLOOyMmtDSOQEgCgXkVCNKPxYCL98AHUARqVV63X6kSAwtaKJafTz -fREsQXS+/Um4havy/HD+bUcAAAF+F2OFUwAABAMARjBEAiBzjNbtzFktPV4aN+lC -onRtlRsgDhmRQA6to4BmSPsXMgIgAjph2mHvyze7l16seQgrXnHqm3v8tPVQBC7g -QEJELHkwDQYJKoZIhvcNAQELBQADggEBAJ3rADxGVPFtZCl+ZLhzbrJpyPm9EbFG -pfZMzXfvo1EkZbyAE4R8B2s46zd683d5rSV6fUtD+A3mrU0FUba1um1IhShICxPr -KRZ96a3cJYJz1Wh65d4s8sQIT4TputvibTF8duCVhQ/ZzKjxSnlYGCPcsCHu6zYT -0oKaNI8WsuHAOTqFLAUiiSytIprcmph3RBEwbSxdf46d14ZuprwSznQig1EgYrpp -5hJGfXW5e42ieGaUpN2ettSav9JHRH8Po83OTOiAslO47feWFgwtBBZj4p0HwOpq -yDF4y+KBzQoS4f+hxAUAMkwPaAQRejcGmKg0JrbDtegUk4sl1ScrKqQ= ------END CERTIFICATE----- - -=========================================== -Certificate1: 67add1166b020ae61b8f5fc96813c04c2aa589960796865572a3c7e737613dfd -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 91:2b:08:4a:cf:0c:18:a7:53:f6:d6:2e:25:a7:5f:5a - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, O = Internet Security Research Group, CN = ISRG Root X1 - Validity - Not Before: Sep 4 00:00:00 2020 GMT - Not After : Sep 15 16:00:00 2025 GMT - Subject: C = US, O = Let's Encrypt, CN = R3 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:bb:02:15:28:cc:f6:a0:94:d3:0f:12:ec:8d:55: - 92:c3:f8:82:f1:99:a6:7a:42:88:a7:5d:26:aa:b5: - 2b:b9:c5:4c:b1:af:8e:6b:f9:75:c8:a3:d7:0f:47: - 94:14:55:35:57:8c:9e:a8:a2:39:19:f5:82:3c:42: - a9:4e:6e:f5:3b:c3:2e:db:8d:c0:b0:5c:f3:59:38: - e7:ed:cf:69:f0:5a:0b:1b:be:c0:94:24:25:87:fa: - 37:71:b3:13:e7:1c:ac:e1:9b:ef:db:e4:3b:45:52: - 45:96:a9:c1:53:ce:34:c8:52:ee:b5:ae:ed:8f:de: - 60:70:e2:a5:54:ab:b6:6d:0e:97:a5:40:34:6b:2b: - d3:bc:66:eb:66:34:7c:fa:6b:8b:8f:57:29:99:f8: - 30:17:5d:ba:72:6f:fb:81:c5:ad:d2:86:58:3d:17: - c7:e7:09:bb:f1:2b:f7:86:dc:c1:da:71:5d:d4:46: - e3:cc:ad:25:c1:88:bc:60:67:75:66:b3:f1:18:f7: - a2:5c:e6:53:ff:3a:88:b6:47:a5:ff:13:18:ea:98: - 09:77:3f:9d:53:f9:cf:01:e5:f5:a6:70:17:14:af: - 63:a4:ff:99:b3:93:9d:dc:53:a7:06:fe:48:85:1d: - a1:69:ae:25:75:bb:13:cc:52:03:f5:ed:51:a1:8b: - db:15 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature, Certificate Sign, CRL Sign - X509v3 Extended Key Usage: - TLS Web Client Authentication, TLS Web Server Authentication - X509v3 Basic Constraints: critical - CA:TRUE, pathlen:0 - X509v3 Subject Key Identifier: - 14:2E:B3:17:B7:58:56:CB:AE:50:09:40:E6:1F:AF:9D:8B:14:C2:C6 - X509v3 Authority Key Identifier: - keyid:79:B4:59:E6:7B:B6:E5:E4:01:73:80:08:88:C8:1A:58:F6:E9:9B:6E - - Authority Information Access: - CA Issuers - URI:http://x1.i.lencr.org/ - - X509v3 CRL Distribution Points: - - Full Name: - URI:http://x1.c.lencr.org/ - - X509v3 Certificate Policies: - Policy: 2.23.140.1.2.1 - Policy: 1.3.6.1.4.1.44947.1.1.1 - - Signature Algorithm: sha256WithRSAEncryption - 85:ca:4e:47:3e:a3:f7:85:44:85:bc:d5:67:78:b2:98:63:ad: - 75:4d:1e:96:3d:33:65:72:54:2d:81:a0:ea:c3:ed:f8:20:bf: - 5f:cc:b7:70:00:b7:6e:3b:f6:5e:94:de:e4:20:9f:a6:ef:8b: - b2:03:e7:a2:b5:16:3c:91:ce:b4:ed:39:02:e7:7c:25:8a:47: - e6:65:6e:3f:46:f4:d9:f0:ce:94:2b:ee:54:ce:12:bc:8c:27: - 4b:b8:c1:98:2f:a2:af:cd:71:91:4a:08:b7:c8:b8:23:7b:04: - 2d:08:f9:08:57:3e:83:d9:04:33:0a:47:21:78:09:82:27:c3: - 2a:c8:9b:b9:ce:5c:f2:64:c8:c0:be:79:c0:4f:8e:6d:44:0c: - 5e:92:bb:2e:f7:8b:10:e1:e8:1d:44:29:db:59:20:ed:63:b9: - 21:f8:12:26:94:93:57:a0:1d:65:04:c1:0a:22:ae:10:0d:43: - 97:a1:18:1f:7e:e0:e0:86:37:b5:5a:b1:bd:30:bf:87:6e:2b: - 2a:ff:21:4e:1b:05:c3:f5:18:97:f0:5e:ac:c3:a5:b8:6a:f0: - 2e:bc:3b:33:b9:ee:4b:de:cc:fc:e4:af:84:0b:86:3f:c0:55: - 43:36:f6:68:e1:36:17:6a:8e:99:d1:ff:a5:40:a7:34:b7:c0: - d0:63:39:35:39:75:6e:f2:ba:76:c8:93:02:e9:a9:4b:6c:17: - ce:0c:02:d9:bd:81:fb:9f:b7:68:d4:06:65:b3:82:3d:77:53: - f8:8e:79:03:ad:0a:31:07:75:2a:43:d8:55:97:72:c4:29:0e: - f7:c4:5d:4e:c8:ae:46:84:30:d7:f2:85:5f:18:a1:79:bb:e7: - 5e:70:8b:07:e1:86:93:c3:b9:8f:dc:61:71:25:2a:af:df:ed: - 25:50:52:68:8b:92:dc:e5:d6:b5:e3:da:7d:d0:87:6c:84:21: - 31:ae:82:f5:fb:b9:ab:c8:89:17:3d:e1:4c:e5:38:0e:f6:bd: - 2b:bd:96:81:14:eb:d5:db:3d:20:a7:7e:59:d3:e2:f8:58:f9: - 5b:b8:48:cd:fe:5c:4f:16:29:fe:1e:55:23:af:c8:11:b0:8d: - ea:7c:93:90:17:2f:fd:ac:a2:09:47:46:3f:f0:e9:b0:b7:ff: - 28:4d:68:32:d6:67:5e:1e:69:a3:93:b8:f5:9d:8b:2f:0b:d2: - 52:43:a6:6f:32:57:65:4d:32:81:df:38:53:85:5d:7e:5d:66: - 29:ea:b8:dd:e4:95:b5:cd:b5:56:12:42:cd:c4:4e:c6:25:38: - 44:50:6d:ec:ce:00:55:18:fe:e9:49:64:d4:4e:ca:97:9c:b4: - 5b:c0:73:a8:ab:b8:47:c2 - ------BEGIN CERTIFICATE----- -MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw -WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg -RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP -R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx -sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm -NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg -Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG -/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB -Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA -FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw -AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw -Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB -gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W -PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl -ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz -CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm -lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 -avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 -yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O -yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids -hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ -HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv -MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX -nLRbwHOoq7hHwg== ------END CERTIFICATE----- - -=========================================== -Certificate2: 6d99fb265eb1c5b3744765fcbc648f3cd8e1bffafdc4c2f99b9d47cf7ff1c24f -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 40:01:77:21:37:d4:e9:42:b8:ee:76:aa:3c:64:0a:b7 - Signature Algorithm: sha256WithRSAEncryption - Issuer: O = Digital Signature Trust Co., CN = DST Root CA X3 - Validity - Not Before: Jan 20 19:14:03 2021 GMT - Not After : Sep 30 18:14:03 2024 GMT - Subject: C = US, O = Internet Security Research Group, CN = ISRG Root X1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (4096 bit) - Modulus: - 00:ad:e8:24:73:f4:14:37:f3:9b:9e:2b:57:28:1c: - 87:be:dc:b7:df:38:90:8c:6e:3c:e6:57:a0:78:f7: - 75:c2:a2:fe:f5:6a:6e:f6:00:4f:28:db:de:68:86: - 6c:44:93:b6:b1:63:fd:14:12:6b:bf:1f:d2:ea:31: - 9b:21:7e:d1:33:3c:ba:48:f5:dd:79:df:b3:b8:ff: - 12:f1:21:9a:4b:c1:8a:86:71:69:4a:66:66:6c:8f: - 7e:3c:70:bf:ad:29:22:06:f3:e4:c0:e6:80:ae:e2: - 4b:8f:b7:99:7e:94:03:9f:d3:47:97:7c:99:48:23: - 53:e8:38:ae:4f:0a:6f:83:2e:d1:49:57:8c:80:74: - b6:da:2f:d0:38:8d:7b:03:70:21:1b:75:f2:30:3c: - fa:8f:ae:dd:da:63:ab:eb:16:4f:c2:8e:11:4b:7e: - cf:0b:e8:ff:b5:77:2e:f4:b2:7b:4a:e0:4c:12:25: - 0c:70:8d:03:29:a0:e1:53:24:ec:13:d9:ee:19:bf: - 10:b3:4a:8c:3f:89:a3:61:51:de:ac:87:07:94:f4: - 63:71:ec:2e:e2:6f:5b:98:81:e1:89:5c:34:79:6c: - 76:ef:3b:90:62:79:e6:db:a4:9a:2f:26:c5:d0:10: - e1:0e:de:d9:10:8e:16:fb:b7:f7:a8:f7:c7:e5:02: - 07:98:8f:36:08:95:e7:e2:37:96:0d:36:75:9e:fb: - 0e:72:b1:1d:9b:bc:03:f9:49:05:d8:81:dd:05:b4: - 2a:d6:41:e9:ac:01:76:95:0a:0f:d8:df:d5:bd:12: - 1f:35:2f:28:17:6c:d2:98:c1:a8:09:64:77:6e:47: - 37:ba:ce:ac:59:5e:68:9d:7f:72:d6:89:c5:06:41: - 29:3e:59:3e:dd:26:f5:24:c9:11:a7:5a:a3:4c:40: - 1f:46:a1:99:b5:a7:3a:51:6e:86:3b:9e:7d:72:a7: - 12:05:78:59:ed:3e:51:78:15:0b:03:8f:8d:d0:2f: - 05:b2:3e:7b:4a:1c:4b:73:05:12:fc:c6:ea:e0:50: - 13:7c:43:93:74:b3:ca:74:e7:8e:1f:01:08:d0:30: - d4:5b:71:36:b4:07:ba:c1:30:30:5c:48:b7:82:3b: - 98:a6:7d:60:8a:a2:a3:29:82:cc:ba:bd:83:04:1b: - a2:83:03:41:a1:d6:05:f1:1b:c2:b6:f0:a8:7c:86: - 3b:46:a8:48:2a:88:dc:76:9a:76:bf:1f:6a:a5:3d: - 19:8f:eb:38:f3:64:de:c8:2b:0d:0a:28:ff:f7:db: - e2:15:42:d4:22:d0:27:5d:e1:79:fe:18:e7:70:88: - ad:4e:e6:d9:8b:3a:c6:dd:27:51:6e:ff:bc:64:f5: - 33:43:4f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Authority Information Access: - CA Issuers - URI:http://apps.identrust.com/roots/dstrootcax3.p7c - - X509v3 Authority Key Identifier: - keyid:C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10 - - X509v3 Certificate Policies: - Policy: 2.23.140.1.2.1 - Policy: 1.3.6.1.4.1.44947.1.1.1 - CPS: http://cps.root-x1.letsencrypt.org - - X509v3 CRL Distribution Points: - - Full Name: - URI:http://crl.identrust.com/DSTROOTCAX3CRL.crl - - X509v3 Subject Key Identifier: - 79:B4:59:E6:7B:B6:E5:E4:01:73:80:08:88:C8:1A:58:F6:E9:9B:6E - Signature Algorithm: sha256WithRSAEncryption - 0a:73:00:6c:96:6e:ff:0e:52:d0:ae:dd:8c:e7:5a:06:ad:2f: - a8:e3:8f:bf:c9:0a:03:15:50:c2:e5:6c:42:bb:6f:9b:f4:b4: - 4f:c2:44:88:08:75:cc:eb:07:9b:14:62:6e:78:de:ec:27:ba: - 39:5c:f5:a2:a1:6e:56:94:70:10:53:b1:bb:e4:af:d0:a2:c3: - 2b:01:d4:96:f4:c5:20:35:33:f9:d8:61:36:e0:71:8d:b4:b8: - b5:aa:82:45:95:c0:f2:a9:23:28:e7:d6:a1:cb:67:08:da:a0: - 43:2c:aa:1b:93:1f:c9:de:f5:ab:69:5d:13:f5:5b:86:58:22: - ca:4d:55:e4:70:67:6d:c2:57:c5:46:39:41:cf:8a:58:83:58: - 6d:99:fe:57:e8:36:0e:f0:0e:23:aa:fd:88:97:d0:e3:5c:0e: - 94:49:b5:b5:17:35:d2:2e:bf:4e:85:ef:18:e0:85:92:eb:06: - 3b:6c:29:23:09:60:dc:45:02:4c:12:18:3b:e9:fb:0e:de:dc: - 44:f8:58:98:ae:ea:bd:45:45:a1:88:5d:66:ca:fe:10:e9:6f: - 82:c8:11:42:0d:fb:e9:ec:e3:86:00:de:9d:10:e3:38:fa:a4: - 7d:b1:d8:e8:49:82:84:06:9b:2b:e8:6b:4f:01:0c:38:77:2e: - f9:dd:e7:39 - ------BEGIN CERTIFICATE----- -MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ -MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT -DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC -ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL -wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D -LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK -4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5 -bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y -sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ -Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4 -FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc -SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql -PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND -TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw -SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1 -c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx -+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB -ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu -b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E -U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu -MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC -5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW -9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG -WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O -he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC -Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5 ------END CERTIFICATE----- - -=========================================== -Certificate3: 0687260331a72403d909f105e69bcf0d32e1bd2493ffc6d9206d11bcd6770739 -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 44:af:b0:80:d6:a3:27:ba:89:30:39:86:2e:f8:40:6b - Signature Algorithm: sha1WithRSAEncryption - Issuer: O = Digital Signature Trust Co., CN = DST Root CA X3 - Validity - Not Before: Sep 30 21:12:19 2000 GMT - Not After : Sep 30 14:01:15 2021 GMT - Subject: O = Digital Signature Trust Co., CN = DST Root CA X3 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:df:af:e9:97:50:08:83:57:b4:cc:62:65:f6:90: - 82:ec:c7:d3:2c:6b:30:ca:5b:ec:d9:c3:7d:c7:40: - c1:18:14:8b:e0:e8:33:76:49:2a:e3:3f:21:49:93: - ac:4e:0e:af:3e:48:cb:65:ee:fc:d3:21:0f:65:d2: - 2a:d9:32:8f:8c:e5:f7:77:b0:12:7b:b5:95:c0:89: - a3:a9:ba:ed:73:2e:7a:0c:06:32:83:a2:7e:8a:14: - 30:cd:11:a0:e1:2a:38:b9:79:0a:31:fd:50:bd:80: - 65:df:b7:51:63:83:c8:e2:88:61:ea:4b:61:81:ec: - 52:6b:b9:a2:e2:4b:1a:28:9f:48:a3:9e:0c:da:09: - 8e:3e:17:2e:1e:dd:20:df:5b:c6:2a:8a:ab:2e:bd: - 70:ad:c5:0b:1a:25:90:74:72:c5:7b:6a:ab:34:d6: - 30:89:ff:e5:68:13:7b:54:0b:c8:d6:ae:ec:5a:9c: - 92:1e:3d:64:b3:8c:c6:df:bf:c9:41:70:ec:16:72: - d5:26:ec:38:55:39:43:d0:fc:fd:18:5c:40:f1:97: - eb:d5:9a:9b:8d:1d:ba:da:25:b9:c6:d8:df:c1:15: - 02:3a:ab:da:6e:f1:3e:2e:f5:5c:08:9c:3c:d6:83: - 69:e4:10:9b:19:2a:b6:29:57:e3:e5:3d:9b:9f:f0: - 02:5d - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Subject Key Identifier: - C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10 - Signature Algorithm: sha1WithRSAEncryption - a3:1a:2c:9b:17:00:5c:a9:1e:ee:28:66:37:3a:bf:83:c7:3f: - 4b:c3:09:a0:95:20:5d:e3:d9:59:44:d2:3e:0d:3e:bd:8a:4b: - a0:74:1f:ce:10:82:9c:74:1a:1d:7e:98:1a:dd:cb:13:4b:b3: - 20:44:e4:91:e9:cc:fc:7d:a5:db:6a:e5:fe:e6:fd:e0:4e:dd: - b7:00:3a:b5:70:49:af:f2:e5:eb:02:f1:d1:02:8b:19:cb:94: - 3a:5e:48:c4:18:1e:58:19:5f:1e:02:5a:f0:0c:f1:b1:ad:a9: - dc:59:86:8b:6e:e9:91:f5:86:ca:fa:b9:66:33:aa:59:5b:ce: - e2:a7:16:73:47:cb:2b:cc:99:b0:37:48:cf:e3:56:4b:f5:cf: - 0f:0c:72:32:87:c6:f0:44:bb:53:72:6d:43:f5:26:48:9a:52: - 67:b7:58:ab:fe:67:76:71:78:db:0d:a2:56:14:13:39:24:31: - 85:a2:a8:02:5a:30:47:e1:dd:50:07:bc:02:09:90:00:eb:64: - 63:60:9b:16:bc:88:c9:12:e6:d2:7d:91:8b:f9:3d:32:8d:65: - b4:e9:7c:b1:57:76:ea:c5:b6:28:39:bf:15:65:1c:c8:f6:77: - 96:6a:0a:8d:77:0b:d8:91:0b:04:8e:07:db:29:b6:0a:ee:9d: - 82:35:35:10 - ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ -MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT -DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow -PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD -Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O -rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq -OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b -xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw -7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD -aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG -SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 -ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr -AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz -R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 -JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo -Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- - diff --git a/src/pki/testdata/ssl/certificates/lets-encrypt-isrg-x1-root.pem b/src/pki/testdata/ssl/certificates/lets-encrypt-isrg-x1-root.pem deleted file mode 100644 index 7a254db..0000000 --- a/src/pki/testdata/ssl/certificates/lets-encrypt-isrg-x1-root.pem +++ /dev/null @@ -1,380 +0,0 @@ -=========================================== -Certificate0: 6091eceb0c7649bd2e446f4984f739c8c7284d1c55388b2313e3a8a27d4cef96 -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 04:7b:f4:fd:2c:fb:01:92:d5:30:c1:0f:c9:19:83:2a:49:ef - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, O = Let's Encrypt, CN = R3 - Validity - Not Before: Jan 1 19:45:05 2022 GMT - Not After : Apr 1 19:45:04 2022 GMT - Subject: CN = t.wayfair.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:e6:ad:89:9c:97:2e:b0:72:e8:dc:a5:4c:9c:2c: - 29:4f:4a:4f:f1:ce:b7:06:b2:a5:21:e3:6d:47:03: - c9:53:18:81:a9:0c:db:54:46:7a:1e:41:c9:89:12: - 72:dd:c2:b2:49:02:30:23:9d:b6:c9:d3:e0:22:45: - 31:d7:1d:48:38:30:31:b4:a6:12:72:6a:66:8c:51: - ba:48:b8:aa:cf:e9:4d:4c:ee:97:63:36:19:1a:79: - 3c:1e:be:6a:d4:a7:b4:15:5b:05:8e:e1:04:b3:7e: - 25:08:48:0b:bc:8f:f4:07:4a:98:e0:df:2e:a7:fc: - 74:06:43:77:3f:38:ba:bf:e3:18:65:87:68:62:5a: - 25:80:e4:5a:c8:b2:8a:cb:a2:05:67:f3:5f:0e:6e: - dc:4f:69:1f:69:98:cf:12:a4:db:f9:fe:9e:b6:7a: - 2b:d2:82:35:c9:eb:5b:12:94:aa:ff:89:b5:44:5f: - d7:7b:cd:a8:0e:da:92:ce:46:2f:eb:d5:be:28:4b: - b3:ee:a0:2f:5e:87:b2:a7:1e:9c:32:b6:57:cf:1c: - c3:02:09:a2:b1:a0:0a:c1:7c:1c:11:09:93:d5:70: - 32:11:98:9c:08:03:00:cc:00:d9:2c:af:48:ac:78: - 39:87:4e:91:07:1a:8f:fa:75:34:2a:a4:16:0e:93: - 1d:6b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature, Key Encipherment - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E7:58:20:5D:82:32:8D:06:2C:35:1C:97:EC:1D:F9:74:84:A9:46:D1 - X509v3 Authority Key Identifier: - keyid:14:2E:B3:17:B7:58:56:CB:AE:50:09:40:E6:1F:AF:9D:8B:14:C2:C6 - - Authority Information Access: - OCSP - URI:http://r3.o.lencr.org - CA Issuers - URI:http://r3.i.lencr.org/ - - X509v3 Subject Alternative Name: - DNS:magellan.wayfair.com, DNS:t.wayfair.com - X509v3 Certificate Policies: - Policy: 2.23.140.1.2.1 - Policy: 1.3.6.1.4.1.44947.1.1.1 - CPS: http://cps.letsencrypt.org - - CT Precertificate SCTs: - Signed Certificate Timestamp: - Version : v1 (0x0) - Log ID : 41:C8:CA:B1:DF:22:46:4A:10:C6:A1:3A:09:42:87:5E: - 4E:31:8B:1B:03:EB:EB:4B:C7:68:F0:90:62:96:06:F6 - Timestamp : Jan 1 20:45:05.213 2022 GMT - Extensions: none - Signature : ecdsa-with-SHA256 - 30:45:02:20:05:FB:47:45:BD:63:AD:FD:E7:AF:9E:7E: - D6:51:5A:1E:AB:62:FE:2A:27:4B:A0:ED:8A:4A:8F:B3: - C8:36:8C:BD:02:21:00:8B:07:10:4C:BF:07:1C:ED:54: - DF:28:2C:E3:B2:32:6B:43:48:E4:04:80:28:17:91:50: - 8D:28:FC:58:08:BF:7C - Signed Certificate Timestamp: - Version : v1 (0x0) - Log ID : 46:A5:55:EB:75:FA:91:20:30:B5:A2:89:69:F4:F3:7D: - 11:2C:41:74:BE:FD:49:B8:85:AB:F2:FC:70:FE:6D:47 - Timestamp : Jan 1 20:45:05.235 2022 GMT - Extensions: none - Signature : ecdsa-with-SHA256 - 30:44:02:20:73:8C:D6:ED:CC:59:2D:3D:5E:1A:37:E9: - 42:A2:74:6D:95:1B:20:0E:19:91:40:0E:AD:A3:80:66: - 48:FB:17:32:02:20:02:3A:61:DA:61:EF:CB:37:BB:97: - 5E:AC:79:08:2B:5E:71:EA:9B:7B:FC:B4:F5:50:04:2E: - E0:40:42:44:2C:79 - Signature Algorithm: sha256WithRSAEncryption - 9d:eb:00:3c:46:54:f1:6d:64:29:7e:64:b8:73:6e:b2:69:c8: - f9:bd:11:b1:46:a5:f6:4c:cd:77:ef:a3:51:24:65:bc:80:13: - 84:7c:07:6b:38:eb:37:7a:f3:77:79:ad:25:7a:7d:4b:43:f8: - 0d:e6:ad:4d:05:51:b6:b5:ba:6d:48:85:28:48:0b:13:eb:29: - 16:7d:e9:ad:dc:25:82:73:d5:68:7a:e5:de:2c:f2:c4:08:4f: - 84:e9:ba:db:e2:6d:31:7c:76:e0:95:85:0f:d9:cc:a8:f1:4a: - 79:58:18:23:dc:b0:21:ee:eb:36:13:d2:82:9a:34:8f:16:b2: - e1:c0:39:3a:85:2c:05:22:89:2c:ad:22:9a:dc:9a:98:77:44: - 11:30:6d:2c:5d:7f:8e:9d:d7:86:6e:a6:bc:12:ce:74:22:83: - 51:20:62:ba:69:e6:12:46:7d:75:b9:7b:8d:a2:78:66:94:a4: - dd:9e:b6:d4:9a:bf:d2:47:44:7f:0f:a3:cd:ce:4c:e8:80:b2: - 53:b8:ed:f7:96:16:0c:2d:04:16:63:e2:9d:07:c0:ea:6a:c8: - 31:78:cb:e2:81:cd:0a:12:e1:ff:a1:c4:05:00:32:4c:0f:68: - 04:11:7a:37:06:98:a8:34:26:b6:c3:b5:e8:14:93:8b:25:d5: - 27:2b:2a:a4 - ------BEGIN CERTIFICATE----- -MIIFNTCCBB2gAwIBAgISBHv0/Sz7AZLVMMEPyRmDKknvMA0GCSqGSIb3DQEBCwUA -MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD -EwJSMzAeFw0yMjAxMDExOTQ1MDVaFw0yMjA0MDExOTQ1MDRaMBgxFjAUBgNVBAMT -DXQud2F5ZmFpci5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDm -rYmcly6wcujcpUycLClPSk/xzrcGsqUh421HA8lTGIGpDNtURnoeQcmJEnLdwrJJ -AjAjnbbJ0+AiRTHXHUg4MDG0phJyamaMUbpIuKrP6U1M7pdjNhkaeTwevmrUp7QV -WwWO4QSzfiUISAu8j/QHSpjg3y6n/HQGQ3c/OLq/4xhlh2hiWiWA5FrIsorLogVn -818ObtxPaR9pmM8SpNv5/p62eivSgjXJ61sSlKr/ibVEX9d7zagO2pLORi/r1b4o -S7PuoC9eh7KnHpwytlfPHMMCCaKxoArBfBwRCZPVcDIRmJwIAwDMANksr0iseDmH -TpEHGo/6dTQqpBYOkx1rAgMBAAGjggJdMIICWTAOBgNVHQ8BAf8EBAMCBaAwHQYD -VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O -BBYEFOdYIF2CMo0GLDUcl+wd+XSEqUbRMB8GA1UdIwQYMBaAFBQusxe3WFbLrlAJ -QOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDovL3Iz -Lm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5vcmcv -MC4GA1UdEQQnMCWCFG1hZ2VsbGFuLndheWZhaXIuY29tgg10LndheWZhaXIuY29t -MEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUH -AgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBAwYKKwYBBAHWeQIEAgSB -9ASB8QDvAHYAQcjKsd8iRkoQxqE6CUKHXk4xixsD6+tLx2jwkGKWBvYAAAF+F2OF -PQAABAMARzBFAiAF+0dFvWOt/eevnn7WUVoeq2L+KidLoO2KSo+zyDaMvQIhAIsH -EEy/BxztVN8oLOOyMmtDSOQEgCgXkVCNKPxYCL98AHUARqVV63X6kSAwtaKJafTz -fREsQXS+/Um4havy/HD+bUcAAAF+F2OFUwAABAMARjBEAiBzjNbtzFktPV4aN+lC -onRtlRsgDhmRQA6to4BmSPsXMgIgAjph2mHvyze7l16seQgrXnHqm3v8tPVQBC7g -QEJELHkwDQYJKoZIhvcNAQELBQADggEBAJ3rADxGVPFtZCl+ZLhzbrJpyPm9EbFG -pfZMzXfvo1EkZbyAE4R8B2s46zd683d5rSV6fUtD+A3mrU0FUba1um1IhShICxPr -KRZ96a3cJYJz1Wh65d4s8sQIT4TputvibTF8duCVhQ/ZzKjxSnlYGCPcsCHu6zYT -0oKaNI8WsuHAOTqFLAUiiSytIprcmph3RBEwbSxdf46d14ZuprwSznQig1EgYrpp -5hJGfXW5e42ieGaUpN2ettSav9JHRH8Po83OTOiAslO47feWFgwtBBZj4p0HwOpq -yDF4y+KBzQoS4f+hxAUAMkwPaAQRejcGmKg0JrbDtegUk4sl1ScrKqQ= ------END CERTIFICATE----- - -=========================================== -Certificate1: 67add1166b020ae61b8f5fc96813c04c2aa589960796865572a3c7e737613dfd -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 91:2b:08:4a:cf:0c:18:a7:53:f6:d6:2e:25:a7:5f:5a - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, O = Internet Security Research Group, CN = ISRG Root X1 - Validity - Not Before: Sep 4 00:00:00 2020 GMT - Not After : Sep 15 16:00:00 2025 GMT - Subject: C = US, O = Let's Encrypt, CN = R3 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:bb:02:15:28:cc:f6:a0:94:d3:0f:12:ec:8d:55: - 92:c3:f8:82:f1:99:a6:7a:42:88:a7:5d:26:aa:b5: - 2b:b9:c5:4c:b1:af:8e:6b:f9:75:c8:a3:d7:0f:47: - 94:14:55:35:57:8c:9e:a8:a2:39:19:f5:82:3c:42: - a9:4e:6e:f5:3b:c3:2e:db:8d:c0:b0:5c:f3:59:38: - e7:ed:cf:69:f0:5a:0b:1b:be:c0:94:24:25:87:fa: - 37:71:b3:13:e7:1c:ac:e1:9b:ef:db:e4:3b:45:52: - 45:96:a9:c1:53:ce:34:c8:52:ee:b5:ae:ed:8f:de: - 60:70:e2:a5:54:ab:b6:6d:0e:97:a5:40:34:6b:2b: - d3:bc:66:eb:66:34:7c:fa:6b:8b:8f:57:29:99:f8: - 30:17:5d:ba:72:6f:fb:81:c5:ad:d2:86:58:3d:17: - c7:e7:09:bb:f1:2b:f7:86:dc:c1:da:71:5d:d4:46: - e3:cc:ad:25:c1:88:bc:60:67:75:66:b3:f1:18:f7: - a2:5c:e6:53:ff:3a:88:b6:47:a5:ff:13:18:ea:98: - 09:77:3f:9d:53:f9:cf:01:e5:f5:a6:70:17:14:af: - 63:a4:ff:99:b3:93:9d:dc:53:a7:06:fe:48:85:1d: - a1:69:ae:25:75:bb:13:cc:52:03:f5:ed:51:a1:8b: - db:15 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature, Certificate Sign, CRL Sign - X509v3 Extended Key Usage: - TLS Web Client Authentication, TLS Web Server Authentication - X509v3 Basic Constraints: critical - CA:TRUE, pathlen:0 - X509v3 Subject Key Identifier: - 14:2E:B3:17:B7:58:56:CB:AE:50:09:40:E6:1F:AF:9D:8B:14:C2:C6 - X509v3 Authority Key Identifier: - keyid:79:B4:59:E6:7B:B6:E5:E4:01:73:80:08:88:C8:1A:58:F6:E9:9B:6E - - Authority Information Access: - CA Issuers - URI:http://x1.i.lencr.org/ - - X509v3 CRL Distribution Points: - - Full Name: - URI:http://x1.c.lencr.org/ - - X509v3 Certificate Policies: - Policy: 2.23.140.1.2.1 - Policy: 1.3.6.1.4.1.44947.1.1.1 - - Signature Algorithm: sha256WithRSAEncryption - 85:ca:4e:47:3e:a3:f7:85:44:85:bc:d5:67:78:b2:98:63:ad: - 75:4d:1e:96:3d:33:65:72:54:2d:81:a0:ea:c3:ed:f8:20:bf: - 5f:cc:b7:70:00:b7:6e:3b:f6:5e:94:de:e4:20:9f:a6:ef:8b: - b2:03:e7:a2:b5:16:3c:91:ce:b4:ed:39:02:e7:7c:25:8a:47: - e6:65:6e:3f:46:f4:d9:f0:ce:94:2b:ee:54:ce:12:bc:8c:27: - 4b:b8:c1:98:2f:a2:af:cd:71:91:4a:08:b7:c8:b8:23:7b:04: - 2d:08:f9:08:57:3e:83:d9:04:33:0a:47:21:78:09:82:27:c3: - 2a:c8:9b:b9:ce:5c:f2:64:c8:c0:be:79:c0:4f:8e:6d:44:0c: - 5e:92:bb:2e:f7:8b:10:e1:e8:1d:44:29:db:59:20:ed:63:b9: - 21:f8:12:26:94:93:57:a0:1d:65:04:c1:0a:22:ae:10:0d:43: - 97:a1:18:1f:7e:e0:e0:86:37:b5:5a:b1:bd:30:bf:87:6e:2b: - 2a:ff:21:4e:1b:05:c3:f5:18:97:f0:5e:ac:c3:a5:b8:6a:f0: - 2e:bc:3b:33:b9:ee:4b:de:cc:fc:e4:af:84:0b:86:3f:c0:55: - 43:36:f6:68:e1:36:17:6a:8e:99:d1:ff:a5:40:a7:34:b7:c0: - d0:63:39:35:39:75:6e:f2:ba:76:c8:93:02:e9:a9:4b:6c:17: - ce:0c:02:d9:bd:81:fb:9f:b7:68:d4:06:65:b3:82:3d:77:53: - f8:8e:79:03:ad:0a:31:07:75:2a:43:d8:55:97:72:c4:29:0e: - f7:c4:5d:4e:c8:ae:46:84:30:d7:f2:85:5f:18:a1:79:bb:e7: - 5e:70:8b:07:e1:86:93:c3:b9:8f:dc:61:71:25:2a:af:df:ed: - 25:50:52:68:8b:92:dc:e5:d6:b5:e3:da:7d:d0:87:6c:84:21: - 31:ae:82:f5:fb:b9:ab:c8:89:17:3d:e1:4c:e5:38:0e:f6:bd: - 2b:bd:96:81:14:eb:d5:db:3d:20:a7:7e:59:d3:e2:f8:58:f9: - 5b:b8:48:cd:fe:5c:4f:16:29:fe:1e:55:23:af:c8:11:b0:8d: - ea:7c:93:90:17:2f:fd:ac:a2:09:47:46:3f:f0:e9:b0:b7:ff: - 28:4d:68:32:d6:67:5e:1e:69:a3:93:b8:f5:9d:8b:2f:0b:d2: - 52:43:a6:6f:32:57:65:4d:32:81:df:38:53:85:5d:7e:5d:66: - 29:ea:b8:dd:e4:95:b5:cd:b5:56:12:42:cd:c4:4e:c6:25:38: - 44:50:6d:ec:ce:00:55:18:fe:e9:49:64:d4:4e:ca:97:9c:b4: - 5b:c0:73:a8:ab:b8:47:c2 - ------BEGIN CERTIFICATE----- -MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw -WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg -RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP -R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx -sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm -NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg -Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG -/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB -Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA -FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw -AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw -Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB -gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W -PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl -ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz -CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm -lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 -avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 -yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O -yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids -hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ -HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv -MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX -nLRbwHOoq7hHwg== ------END CERTIFICATE----- - -=========================================== -Certificate2: 96bcec06264976f37460779acf28c5a7cfe8a3c0aae11a8ffcee05c0bddf08c6 -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 82:10:cf:b0:d2:40:e3:59:44:63:e0:bb:63:82:8b:00 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, O = Internet Security Research Group, CN = ISRG Root X1 - Validity - Not Before: Jun 4 11:04:38 2015 GMT - Not After : Jun 4 11:04:38 2035 GMT - Subject: C = US, O = Internet Security Research Group, CN = ISRG Root X1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (4096 bit) - Modulus: - 00:ad:e8:24:73:f4:14:37:f3:9b:9e:2b:57:28:1c: - 87:be:dc:b7:df:38:90:8c:6e:3c:e6:57:a0:78:f7: - 75:c2:a2:fe:f5:6a:6e:f6:00:4f:28:db:de:68:86: - 6c:44:93:b6:b1:63:fd:14:12:6b:bf:1f:d2:ea:31: - 9b:21:7e:d1:33:3c:ba:48:f5:dd:79:df:b3:b8:ff: - 12:f1:21:9a:4b:c1:8a:86:71:69:4a:66:66:6c:8f: - 7e:3c:70:bf:ad:29:22:06:f3:e4:c0:e6:80:ae:e2: - 4b:8f:b7:99:7e:94:03:9f:d3:47:97:7c:99:48:23: - 53:e8:38:ae:4f:0a:6f:83:2e:d1:49:57:8c:80:74: - b6:da:2f:d0:38:8d:7b:03:70:21:1b:75:f2:30:3c: - fa:8f:ae:dd:da:63:ab:eb:16:4f:c2:8e:11:4b:7e: - cf:0b:e8:ff:b5:77:2e:f4:b2:7b:4a:e0:4c:12:25: - 0c:70:8d:03:29:a0:e1:53:24:ec:13:d9:ee:19:bf: - 10:b3:4a:8c:3f:89:a3:61:51:de:ac:87:07:94:f4: - 63:71:ec:2e:e2:6f:5b:98:81:e1:89:5c:34:79:6c: - 76:ef:3b:90:62:79:e6:db:a4:9a:2f:26:c5:d0:10: - e1:0e:de:d9:10:8e:16:fb:b7:f7:a8:f7:c7:e5:02: - 07:98:8f:36:08:95:e7:e2:37:96:0d:36:75:9e:fb: - 0e:72:b1:1d:9b:bc:03:f9:49:05:d8:81:dd:05:b4: - 2a:d6:41:e9:ac:01:76:95:0a:0f:d8:df:d5:bd:12: - 1f:35:2f:28:17:6c:d2:98:c1:a8:09:64:77:6e:47: - 37:ba:ce:ac:59:5e:68:9d:7f:72:d6:89:c5:06:41: - 29:3e:59:3e:dd:26:f5:24:c9:11:a7:5a:a3:4c:40: - 1f:46:a1:99:b5:a7:3a:51:6e:86:3b:9e:7d:72:a7: - 12:05:78:59:ed:3e:51:78:15:0b:03:8f:8d:d0:2f: - 05:b2:3e:7b:4a:1c:4b:73:05:12:fc:c6:ea:e0:50: - 13:7c:43:93:74:b3:ca:74:e7:8e:1f:01:08:d0:30: - d4:5b:71:36:b4:07:ba:c1:30:30:5c:48:b7:82:3b: - 98:a6:7d:60:8a:a2:a3:29:82:cc:ba:bd:83:04:1b: - a2:83:03:41:a1:d6:05:f1:1b:c2:b6:f0:a8:7c:86: - 3b:46:a8:48:2a:88:dc:76:9a:76:bf:1f:6a:a5:3d: - 19:8f:eb:38:f3:64:de:c8:2b:0d:0a:28:ff:f7:db: - e2:15:42:d4:22:d0:27:5d:e1:79:fe:18:e7:70:88: - ad:4e:e6:d9:8b:3a:c6:dd:27:51:6e:ff:bc:64:f5: - 33:43:4f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 79:B4:59:E6:7B:B6:E5:E4:01:73:80:08:88:C8:1A:58:F6:E9:9B:6E - Signature Algorithm: sha256WithRSAEncryption - 55:1f:58:a9:bc:b2:a8:50:d0:0c:b1:d8:1a:69:20:27:29:08: - ac:61:75:5c:8a:6e:f8:82:e5:69:2f:d5:f6:56:4b:b9:b8:73: - 10:59:d3:21:97:7e:e7:4c:71:fb:b2:d2:60:ad:39:a8:0b:ea: - 17:21:56:85:f1:50:0e:59:eb:ce:e0:59:e9:ba:c9:15:ef:86: - 9d:8f:84:80:f6:e4:e9:91:90:dc:17:9b:62:1b:45:f0:66:95: - d2:7c:6f:c2:ea:3b:ef:1f:cf:cb:d6:ae:27:f1:a9:b0:c8:ae: - fd:7d:7e:9a:fa:22:04:eb:ff:d9:7f:ea:91:2b:22:b1:17:0e: - 8f:f2:8a:34:5b:58:d8:fc:01:c9:54:b9:b8:26:cc:8a:88:33: - 89:4c:2d:84:3c:82:df:ee:96:57:05:ba:2c:bb:f7:c4:b7:c7: - 4e:3b:82:be:31:c8:22:73:73:92:d1:c2:80:a4:39:39:10:33: - 23:82:4c:3c:9f:86:b2:55:98:1d:be:29:86:8c:22:9b:9e:e2: - 6b:3b:57:3a:82:70:4d:dc:09:c7:89:cb:0a:07:4d:6c:e8:5d: - 8e:c9:ef:ce:ab:c7:bb:b5:2b:4e:45:d6:4a:d0:26:cc:e5:72: - ca:08:6a:a5:95:e3:15:a1:f7:a4:ed:c9:2c:5f:a5:fb:ff:ac: - 28:02:2e:be:d7:7b:bb:e3:71:7b:90:16:d3:07:5e:46:53:7c: - 37:07:42:8c:d3:c4:96:9c:d5:99:b5:2a:e0:95:1a:80:48:ae: - 4c:39:07:ce:cc:47:a4:52:95:2b:ba:b8:fb:ad:d2:33:53:7d: - e5:1d:4d:6d:d5:a1:b1:c7:42:6f:e6:40:27:35:5c:a3:28:b7: - 07:8d:e7:8d:33:90:e7:23:9f:fb:50:9c:79:6c:46:d5:b4:15: - b3:96:6e:7e:9b:0c:96:3a:b8:52:2d:3f:d6:5b:e1:fb:08:c2: - 84:fe:24:a8:a3:89:da:ac:6a:e1:18:2a:b1:a8:43:61:5b:d3: - 1f:dc:3b:8d:76:f2:2d:e8:8d:75:df:17:33:6c:3d:53:fb:7b: - cb:41:5f:ff:dc:a2:d0:61:38:e1:96:b8:ac:5d:8b:37:d7:75: - d5:33:c0:99:11:ae:9d:41:c1:72:75:84:be:02:41:42:5f:67: - 24:48:94:d1:9b:27:be:07:3f:b9:b8:4f:81:74:51:e1:7a:b7: - ed:9d:23:e2:be:e0:d5:28:04:13:3c:31:03:9e:dd:7a:6c:8f: - c6:07:18:c6:7f:de:47:8e:3f:28:9e:04:06:cf:a5:54:34:77: - bd:ec:89:9b:e9:17:43:df:5b:db:5f:fe:8e:1e:57:a2:cd:40: - 9d:7e:62:22:da:de:18:27 - ------BEGIN CERTIFICATE----- -MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 -WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu -ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY -MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc -h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ -0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U -A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW -T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH -B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC -B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv -KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn -OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn -jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw -qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI -rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq -hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL -ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ -3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK -NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 -ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur -TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC -jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc -oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq -4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA -mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d -emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= ------END CERTIFICATE----- - diff --git a/src/pki/testdata/ssl/certificates/localhost_cert.pem b/src/pki/testdata/ssl/certificates/localhost_cert.pem deleted file mode 100644 index f8d3703..0000000 --- a/src/pki/testdata/ssl/certificates/localhost_cert.pem +++ /dev/null @@ -1,113 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDdMNTtFer7VSdt -l6zPVbTtl9+an2G7yIJJM/SxOmDfoxkgYKnuOfR8D45dcjVTDzyRQTxUQfIXfRWx -ZqzSjVA1ax2Jc7+nAQV58q7aIpXG1dUkxS23uYKXenkZLRdr7s97F1+xiTJxYuqB -KIIqI5q6H9TWHkgbsVbywc5hIlThH1DDPs7eopMnKfq3tK3QGemaviIhcVPFouh5 -OW97udBXzeRB9niLLyHbH9tlxdUmBm+eNZu+kZtFVGz+a9bleRFPnReevSomqLfD -DYbuuCSOyXKiGOjtaiJ+MZRkHZF+arHoGq4u4bElyQf7waJyfoxnJn8qE3Ek9jo7 -Ddy/g+CPAgMBAAECggEBANbEnVp/F6RmMFx3E3JV09GGz7SA4RLGQ8r0Sbjz6C/9 -W15WvWj0mPEE4cTWKfS2LKcVYpClX31zFOclvNTMJX9YvFtEKmjr0vdvrltbjXZ9 -FfIYCqYD2Etgvci2QbGpNYhdT6tAfdweoXg7bvefjpL+aVhmGrnY3YXkrJEgFq5m -PWoPflqmrBA7ktNI2crLa/ty/bIIH6srIJVpRRle1NdUMIv9W1vFsK0HLV+BuOoQ -TqkjMybqWapAhCfTj85fjeoMggRbJyq9+uDpZBYqIcb/qFkSnWyqEq3y+xvpQqN7 -oGPaeh4+Zyb6aHcQnVHBrhr5lbo6mgGYDw/yO/KDaIECgYEA9KX/xZb6z8on36kp -f9Kv8U/eq4rcyywxJtl+HPVLcSz/fIb5pAhtGbfG9VTjc/mVlrh/lB5w7qb/Lq+f -8oGUTv5eUzUXRI+d5AZwf2aTLeHWMSn02ouK1u8bJ8C2qv8FYu7Kb5lIDTJM7SEE -7hbdPF7FPlZAh59oLdUUXW8Aj+ECgYEA53QyIwbM4nMQVbeC4T+ahkLIYfZP+Yct -PMxW49VjDuZIQzeGMbxCMebsG2BHJ3n7vh9WUDEotb2ApFaBc7ChiJCOvH3vdJWM -ljBxVebaZsKSdv8ZzbYbpJR2tO2ZzifMN67JrM3Ge7k5sgJLhxsMfn7uXIO3aPQj -lsgdWc0NPm8CgYEArVCcLgKTlHkGXnCcsa00b6PBf41UdarM91TE/wbXd0oFhNaq -LAa8I6gKDusgZ5y82JXD687U+nzb8tsAWPBrfLq/X/sQjMWheVUGhXrJcYu4DgRH -LjwFE9c4SaVAw0r/KeM5Dm5smMy1qpflwjX4bThGS68W7/2B9FYrozVsFIECgYAk -vHqguJmYb67uC/yIB/Jc0QjBE7lJ37y8Y6p+6wWX/dEGai+wgTL4fLCI/9ULXP8q -BAtNGyBdCED81IYjeKuK43bkUBDLrljsFbBHdCbCHKvmm0LbNcZZbv8QZI3+/K4b -QHDeLqMMTC/uIxMd1Js9EKSApp9b1zQ24HhYIoWxnQKBgQDxsyI6BCxtLO8wzAjW -xWie6xH3o8MXi544URFhFs3Y/xCj4slha1yYb/CBzLN/IxKtBA2Kbox4/rWHaWLT -QUmcL8vcTRTx7yvrXuMXGunoF8q7adcfPDrAqaJ4OdkMy5W5VBhHqMjj+4cIy9Yq -LkC9LPJjUl2Ai8j8tLTVGB01HQ== ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:6a - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Oct 2 17:20:08 2024 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=localhost - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:dd:30:d4:ed:15:ea:fb:55:27:6d:97:ac:cf:55: - b4:ed:97:df:9a:9f:61:bb:c8:82:49:33:f4:b1:3a: - 60:df:a3:19:20:60:a9:ee:39:f4:7c:0f:8e:5d:72: - 35:53:0f:3c:91:41:3c:54:41:f2:17:7d:15:b1:66: - ac:d2:8d:50:35:6b:1d:89:73:bf:a7:01:05:79:f2: - ae:da:22:95:c6:d5:d5:24:c5:2d:b7:b9:82:97:7a: - 79:19:2d:17:6b:ee:cf:7b:17:5f:b1:89:32:71:62: - ea:81:28:82:2a:23:9a:ba:1f:d4:d6:1e:48:1b:b1: - 56:f2:c1:ce:61:22:54:e1:1f:50:c3:3e:ce:de:a2: - 93:27:29:fa:b7:b4:ad:d0:19:e9:9a:be:22:21:71: - 53:c5:a2:e8:79:39:6f:7b:b9:d0:57:cd:e4:41:f6: - 78:8b:2f:21:db:1f:db:65:c5:d5:26:06:6f:9e:35: - 9b:be:91:9b:45:54:6c:fe:6b:d6:e5:79:11:4f:9d: - 17:9e:bd:2a:26:a8:b7:c3:0d:86:ee:b8:24:8e:c9: - 72:a2:18:e8:ed:6a:22:7e:31:94:64:1d:91:7e:6a: - b1:e8:1a:ae:2e:e1:b1:25:c9:07:fb:c1:a2:72:7e: - 8c:67:26:7f:2a:13:71:24:f6:3a:3b:0d:dc:bf:83: - e0:8f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 82:64:D7:FB:A9:83:29:D9:3D:A4:7B:9E:A5:2F:1C:FB:C4:34:4D:CB - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - DNS:localhost - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 7c:c0:17:74:a4:4c:c8:0e:40:ca:d8:ae:3f:f3:f5:fb:e7:cb: - 40:59:46:48:5f:13:a3:c7:3a:13:d9:28:77:11:14:1b:66:c0: - 76:78:86:84:bb:ad:48:ad:ec:2f:fe:42:0e:37:0b:c9:90:16: - cd:23:72:e7:65:14:62:bb:04:06:a2:da:68:25:a4:47:a9:1c: - c3:a5:c2:2f:a5:7e:6a:8c:74:fd:34:5e:e2:ea:a3:89:48:12: - c0:09:96:1b:aa:0e:c1:d3:1c:a2:34:8b:74:52:00:be:e4:ee: - 8b:d4:2d:c0:80:fe:c4:fd:57:d7:19:a8:97:6d:2b:c0:a7:51: - 42:4f:9a:ee:81:4c:49:76:db:2b:20:fd:f0:11:96:6a:d7:f7: - 1c:42:b8:17:a8:d4:e1:73:1e:1c:65:e5:32:5f:86:36:dd:51: - 6e:92:53:1a:62:4a:bc:4d:92:bb:71:63:c7:00:1d:e2:72:98: - 2d:9c:52:6d:72:16:46:8b:c6:1f:86:80:23:44:e7:cc:45:08: - ee:f5:d5:a2:f7:a4:91:9e:2e:3f:07:2c:87:80:db:db:8e:43: - 00:24:d9:ad:23:ef:a1:23:33:e2:21:82:5f:db:3c:2c:64:02: - b6:2b:af:ad:6f:bc:2b:0d:4f:19:3c:5a:2a:96:dc:41:44:57: - dc:d0:5b:2c ------BEGIN CERTIFICATE----- -MIID1TCCAr2gAwIBAgIRALBrk5LjXI1+7Z3IllnFwmowDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0yNDEwMDIxNzIwMDhaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdMNTtFer7VSdtl6zPVbTtl9+an2G7yIJJ -M/SxOmDfoxkgYKnuOfR8D45dcjVTDzyRQTxUQfIXfRWxZqzSjVA1ax2Jc7+nAQV5 -8q7aIpXG1dUkxS23uYKXenkZLRdr7s97F1+xiTJxYuqBKIIqI5q6H9TWHkgbsVby -wc5hIlThH1DDPs7eopMnKfq3tK3QGemaviIhcVPFouh5OW97udBXzeRB9niLLyHb -H9tlxdUmBm+eNZu+kZtFVGz+a9bleRFPnReevSomqLfDDYbuuCSOyXKiGOjtaiJ+ -MZRkHZF+arHoGq4u4bElyQf7waJyfoxnJn8qE3Ek9jo7Ddy/g+CPAgMBAAGjgYYw -gYMwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUgmTX+6mDKdk9pHuepS8c+8Q0Tcsw -HwYDVR0jBBgwFoAUmyYLipipux25HxzjGkAz7Y4XiKswHQYDVR0lBBYwFAYIKwYB -BQUHAwEGCCsGAQUFBwMCMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0B -AQsFAAOCAQEAfMAXdKRMyA5AytiuP/P1++fLQFlGSF8To8c6E9kodxEUG2bAdniG -hLutSK3sL/5CDjcLyZAWzSNy52UUYrsEBqLaaCWkR6kcw6XCL6V+aox0/TRe4uqj -iUgSwAmWG6oOwdMcojSLdFIAvuTui9QtwID+xP1X1xmol20rwKdRQk+a7oFMSXbb -KyD98BGWatf3HEK4F6jU4XMeHGXlMl+GNt1RbpJTGmJKvE2Su3FjxwAd4nKYLZxS -bXIWRovGH4aAI0TnzEUI7vXVovekkZ4uPwcsh4Db245DACTZrSPvoSMz4iGCX9s8 -LGQCtiuvrW+8Kw1PGTxaKpbcQURX3NBbLA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/may_2018.pem b/src/pki/testdata/ssl/certificates/may_2018.pem deleted file mode 100644 index 037e004..0000000 --- a/src/pki/testdata/ssl/certificates/may_2018.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:85 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: May 1 00:00:00 2018 GMT - Not After : Aug 3 00:00:00 2020 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ea:e1:1f:7d:6f:ea:1e:9b:48:0b:ef:50:23:47: - bf:7d:b7:1e:bf:0f:21:96:f7:71:50:9c:8c:85:3e: - d8:c1:04:1e:77:bf:22:a1:86:98:c1:77:ce:b0:26: - 43:64:a5:0c:38:b5:a7:47:12:b1:15:d1:9e:c1:99: - 5c:bf:49:af:74:89:6f:6d:72:73:db:75:78:d6:59: - 26:de:56:f5:e7:bc:99:4f:3e:9e:56:57:37:fc:c8: - 47:19:ab:82:19:64:a8:20:50:2d:a9:1c:d3:0b:e1: - 0a:b9:ac:71:92:26:3a:cd:cc:e9:24:28:9c:0f:5a: - 3b:55:1f:4d:56:2d:70:c0:7c:f5:d2:22:42:a5:d5: - 2b:1c:69:a7:58:a2:13:ea:31:ef:0a:c7:83:22:19: - 63:bb:8a:69:0b:14:47:02:48:b1:e5:bf:86:53:57: - b8:66:8a:e5:96:99:4e:c5:aa:0b:a3:13:f5:a0:d5: - 46:92:d4:30:ea:04:59:d2:0d:88:05:83:d4:7f:ea: - 2a:6c:05:3d:c7:1f:ec:d4:e8:8e:cc:6c:65:e0:53: - a3:ce:60:85:ac:02:a8:e5:0d:93:22:33:f7:dc:fa: - d9:56:a5:cc:3b:6d:58:ad:6d:7b:82:ff:e9:78:2b: - 59:37:ff:01:a2:e0:3b:0f:71:86:b6:fa:0d:b4:0b: - 21:2f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 44:18:DF:A8:01:30:8C:D7:AE:44:06:6E:FA:98:D9:7D:43:35:92:07 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 35:bd:31:e9:2f:8f:24:03:63:ac:0f:eb:42:8c:79:3e:9a:2b: - a0:67:c3:a2:87:11:74:61:8a:f5:d4:5f:43:b4:9d:47:ff:86: - f8:52:66:b0:1f:f5:55:d2:e6:ba:11:cc:ca:2d:57:9a:90:e1: - 60:b4:3d:38:78:cf:9d:31:e2:8f:b0:b5:96:cc:2e:a4:bd:68: - 5a:dc:48:41:f8:d7:71:9f:bc:52:84:15:d9:5c:46:70:20:d0: - 57:d9:67:47:dd:b4:17:12:7f:0b:20:94:4b:6d:3d:66:fc:02: - 6b:43:a4:b5:db:a7:88:6e:91:c3:66:c1:1a:e5:ec:bb:c2:13: - 29:f1:3f:81:11:99:1a:58:88:de:b5:fc:d6:0e:c0:a6:31:df: - ba:e0:c0:3a:a3:1b:60:7a:c6:9c:e0:46:e4:98:a5:08:48:a8: - c6:83:c6:8a:3b:b9:8b:e1:2e:21:91:58:ad:8c:fc:e3:99:bb: - 68:70:15:19:13:38:89:0b:c9:b3:03:52:65:52:68:37:64:c5: - fd:50:99:90:74:d4:b3:29:8a:49:a6:65:e1:fb:df:14:5b:6f: - eb:ac:59:f8:91:68:07:c1:ea:e3:63:31:ec:66:d5:57:bd:82: - 34:b3:8a:75:80:f8:75:28:9e:92:33:84:d8:d8:7b:f1:85:14: - be:60:e6:33 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwoUwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xODA1MDEwMDAwMDBaFw0yMDA4MDMwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDq4R99b+oem0gL71AjR799tx6/DyGW93FQ -nIyFPtjBBB53vyKhhpjBd86wJkNkpQw4tadHErEV0Z7BmVy/Sa90iW9tcnPbdXjW -WSbeVvXnvJlPPp5WVzf8yEcZq4IZZKggUC2pHNML4Qq5rHGSJjrNzOkkKJwPWjtV -H01WLXDAfPXSIkKl1SscaadYohPqMe8Kx4MiGWO7imkLFEcCSLHlv4ZTV7hmiuWW -mU7FqgujE/Wg1UaS1DDqBFnSDYgFg9R/6ipsBT3HH+zU6I7MbGXgU6POYIWsAqjl -DZMiM/fc+tlWpcw7bVitbXuC/+l4K1k3/wGi4DsPcYa2+g20CyEvAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBREGN+oATCM165EBm76mNl9QzWSBzAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEANb0x6S+PJANjrA/rQox5PporoGfDoocRdGGK9dRfQ7SdR/+G+FJmsB/1VdLm -uhHMyi1XmpDhYLQ9OHjPnTHij7C1lswupL1oWtxIQfjXcZ+8UoQV2VxGcCDQV9ln -R920FxJ/CyCUS209ZvwCa0OktduniG6Rw2bBGuXsu8ITKfE/gRGZGliI3rX81g7A -pjHfuuDAOqMbYHrGnOBG5JilCEioxoPGiju5i+EuIZFYrYz845m7aHAVGRM4iQvJ -swNSZVJoN2TF/VCZkHTUsymKSaZl4fvfFFtv66xZ+JFoB8Hq42Mx7GbVV72CNLOK -dYD4dSiekjOE2Nh78YUUvmDmMw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/mit.davidben.der b/src/pki/testdata/ssl/certificates/mit.davidben.der Binary files differdeleted file mode 100644 index 4e26aa8..0000000 --- a/src/pki/testdata/ssl/certificates/mit.davidben.der +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/multi-root-chain1.pem b/src/pki/testdata/ssl/certificates/multi-root-chain1.pem deleted file mode 100644 index fb53c33..0000000 --- a/src/pki/testdata/ssl/certificates/multi-root-chain1.pem +++ /dev/null @@ -1,305 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=B CA - Multi-root - Validity - Not Before: Feb 28 23:46:47 2017 GMT - Not After : Feb 26 23:46:47 2027 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a4:18:86:3f:09:63:9c:d4:c0:06:45:a5:91:7f: - e7:a7:b8:3d:c7:ff:0d:e8:39:f5:43:27:a7:44:2a: - 3b:53:03:e3:cd:13:23:46:5f:e0:27:f0:a3:7a:25: - 82:b0:52:bb:03:4f:99:e3:2c:1b:6f:54:05:0f:7f: - 4f:74:f9:ad:b2:88:85:43:63:06:ac:91:f1:19:b7: - da:7a:42:68:6a:68:a5:e0:02:44:23:eb:d1:05:0d: - 3d:58:31:ee:ba:20:9e:16:11:f5:ae:b5:c3:21:cc: - 84:e7:1a:d2:c2:8c:7e:44:93:36:bd:6c:0c:07:35: - f2:4e:57:3f:b3:cf:21:5a:ff:16:02:e9:61:f4:cc: - 4a:5a:24:da:55:fc:c6:da:44:d6:b7:2a:4e:31:bf: - a0:80:24:55:ed:5c:bc:6b:84:12:a4:03:cc:b2:c2: - db:ef:1e:08:bd:a3:bf:ef:fc:3d:53:38:b9:00:8a: - d6:40:1a:cc:f2:6a:ab:e7:4b:67:1c:ae:ff:6d:43: - 12:08:c6:97:4b:73:df:85:cf:2a:a5:6e:ce:22:02: - cb:63:6c:3f:00:aa:3b:b0:87:9b:d5:13:09:32:4c: - bd:71:79:ff:04:b1:9a:8d:2d:a0:0a:65:d5:1e:53: - c4:eb:0e:14:c0:b9:f3:8f:6f:64:b4:1d:11:a7:40: - e7:61 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 28:6F:58:36:8F:1B:C5:99:18:5B:DC:A5:86:AF:89:F2:B4:3E:AF:51 - X509v3 Authority Key Identifier: - keyid:D0:8D:1F:B2:BC:29:96:73:EF:0C:7A:C2:A4:06:96:CF:D5:8C:31:DB - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 07:8f:f9:c6:33:3c:bc:74:20:21:92:46:7a:c5:df:76:18:47: - 63:0c:5e:e8:f3:97:ec:37:83:0b:4d:a4:1c:6b:0b:a2:28:db: - 5c:17:d9:91:77:00:4a:db:46:f9:68:ec:2a:f8:b5:82:0c:00: - d1:88:0c:7c:b4:2d:e9:48:f5:a2:9d:a9:d5:bb:db:9d:56:96: - c5:6c:46:da:23:a3:66:80:a5:9b:93:d0:df:9c:00:75:ac:48: - ea:48:b4:22:ee:ff:db:eb:bb:8f:f0:de:16:a1:99:98:85:4c: - b3:66:dd:22:96:96:97:48:ae:8a:2d:e9:a5:1c:5c:d9:dd:31: - 3f:58:7c:bb:2b:db:86:6a:53:e5:af:6d:85:3a:ca:92:5d:56: - e2:02:90:d7:eb:98:0f:d8:ba:2a:d1:26:bb:82:5b:80:d5:2d: - 52:d7:40:4d:0d:0d:1e:fe:c2:89:be:e2:80:4d:cd:91:dc:f3: - fa:19:25:3e:ba:a8:cf:48:d3:b6:35:a5:96:6e:a5:12:d1:65: - 65:a9:92:6b:d0:fc:05:25:7c:fb:76:48:38:15:7e:4f:95:03: - b0:c3:55:89:bc:59:be:de:3c:fb:4b:5a:f1:3b:00:c1:03:59: - 6c:b3:8b:21:7e:84:75:30:19:8c:19:f6:99:40:ec:87:43:3b: - 89:d0:f5:6d ------BEGIN CERTIFICATE----- -MIIDeTCCAmGgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwHDEaMBgGA1UEAwwRQiBD -QSAtIE11bHRpLXJvb3QwHhcNMTcwMjI4MjM0NjQ3WhcNMjcwMjI2MjM0NjQ3WjBg -MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91 -bnRhaW4gVmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4x -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApBiGPwljnNTABkWlkX/n -p7g9x/8N6Dn1QyenRCo7UwPjzRMjRl/gJ/CjeiWCsFK7A0+Z4ywbb1QFD39PdPmt -soiFQ2MGrJHxGbfaekJoamil4AJEI+vRBQ09WDHuuiCeFhH1rrXDIcyE5xrSwox+ -RJM2vWwMBzXyTlc/s88hWv8WAulh9MxKWiTaVfzG2kTWtypOMb+ggCRV7Vy8a4QS -pAPMssLb7x4IvaO/7/w9Uzi5AIrWQBrM8mqr50tnHK7/bUMSCMaXS3Pfhc8qpW7O -IgLLY2w/AKo7sIeb1RMJMky9cXn/BLGajS2gCmXVHlPE6w4UwLnzj29ktB0Rp0Dn -YQIDAQABo4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUKG9YNo8bxZkYW9yl -hq+J8rQ+r1EwHwYDVR0jBBgwFoAU0I0fsrwplnPvDHrCpAaWz9WMMdswHQYDVR0l -BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZI -hvcNAQELBQADggEBAAeP+cYzPLx0ICGSRnrF33YYR2MMXujzl+w3gwtNpBxrC6Io -21wX2ZF3AErbRvlo7Cr4tYIMANGIDHy0LelI9aKdqdW7251WlsVsRtojo2aApZuT -0N+cAHWsSOpItCLu/9vru4/w3hahmZiFTLNm3SKWlpdIroot6aUcXNndMT9YfLsr -24ZqU+WvbYU6ypJdVuICkNfrmA/YuirRJruCW4DVLVLXQE0NDR7+wom+4oBNzZHc -8/oZJT66qM9I07Y1pZZupRLRZWWpkmvQ/AUlfPt2SDgVfk+VA7DDVYm8Wb7ePPtL -WvE7AMEDWWyziyF+hHUwGYwZ9plA7IdDO4nQ9W0= ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C CA - Multi-root - Validity - Not Before: Jan 4 00:00:00 2016 GMT - Not After : Jan 2 00:00:00 2026 GMT - Subject: CN=B CA - Multi-root - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ca:6c:54:ab:3c:54:33:6c:d7:04:c4:4b:c4:39: - 32:db:7a:49:e4:e1:e7:60:c7:35:33:08:59:ba:62: - bf:49:d6:05:1f:07:b8:b6:bd:38:2f:6b:a7:e5:8d: - de:79:27:d8:36:58:92:69:cc:db:8e:6a:89:b4:79: - ab:cf:98:53:08:12:17:9e:51:15:bc:e7:8f:e5:93: - d9:1a:2e:68:a9:93:3c:d3:7a:75:a4:5c:c2:fc:16: - 9b:ba:df:49:5d:73:65:ec:b0:cc:1e:ba:cc:98:39: - d1:4e:b2:d6:5f:e8:7f:24:1a:fa:56:b0:0d:33:46: - 22:56:4f:5c:f3:16:ad:55:8a:62:3c:bc:50:c2:3a: - 58:3e:70:4d:5a:df:99:ec:c7:a6:2c:8f:2a:a5:2e: - 11:b8:58:c5:d5:e8:43:2f:40:a5:20:80:32:2a:76: - 5e:06:07:48:6d:44:60:ba:21:72:61:e2:1a:ec:64: - 5d:72:72:f1:21:9d:04:2f:61:35:0b:2f:f0:c0:fe: - 52:b8:c4:41:9c:b6:13:58:21:81:e3:28:27:4d:6c: - 24:a3:20:fb:0f:9c:d4:4f:34:3a:d0:d1:08:84:c4: - 40:71:44:4f:e8:be:c5:1f:5d:1c:34:64:0b:6c:1c: - 24:fa:a9:83:49:c6:f5:4d:7f:63:c0:1a:a9:77:8a: - c0:43 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - D0:8D:1F:B2:BC:29:96:73:EF:0C:7A:C2:A4:06:96:CF:D5:8C:31:DB - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 1e:16:7c:d7:d1:ee:63:a9:a2:b1:87:2c:8b:1e:d3:cf:51:14: - ed:12:0b:ec:67:2b:7f:3b:0e:8e:3c:50:bb:d1:dc:3b:40:1a: - ec:44:30:c4:f6:65:c2:c3:5d:d8:cb:c2:6c:13:2e:5a:2d:76: - c6:6b:5d:65:a5:7e:c2:bf:cb:fc:b1:50:b0:43:47:fc:a3:7b: - 07:d1:77:50:4f:d2:53:98:8f:a2:00:97:13:d9:b7:83:2e:d9: - c4:2a:e6:b1:fc:2d:6c:ce:d1:61:73:aa:40:e0:ce:87:74:43: - a2:f7:b5:d9:5f:46:79:97:28:c4:de:15:60:3b:3e:3f:3d:1d: - 14:f4:87:ef:b9:08:09:2a:fb:d0:d5:1b:4f:77:f9:0d:c9:4b: - 23:32:1c:06:04:a6:83:aa:00:9c:70:c2:2b:01:42:1e:f6:d6: - d3:5c:f9:a8:b7:84:9e:44:12:9a:9f:a8:2a:89:56:69:a6:2f: - e9:ee:67:e9:7e:32:b5:ef:6b:4e:f0:12:23:fa:85:3e:03:59: - 94:db:88:99:04:55:c4:d1:df:df:c6:e2:fd:61:c5:f6:af:dc: - 4c:e4:52:8f:f2:c8:07:39:dd:99:33:49:85:1e:df:e1:1f:08: - 6b:e0:d2:1b:93:db:32:05:4b:39:ee:b3:f1:b6:af:18:07:a7: - 24:9c:1e:75 ------BEGIN CERTIFICATE----- -MIIC9jCCAd6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwHDEaMBgGA1UEAwwRQyBD -QSAtIE11bHRpLXJvb3QwHhcNMTYwMTA0MDAwMDAwWhcNMjYwMTAyMDAwMDAwWjAc -MRowGAYDVQQDDBFCIENBIC0gTXVsdGktcm9vdDCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMpsVKs8VDNs1wTES8Q5Mtt6SeTh52DHNTMIWbpiv0nWBR8H -uLa9OC9rp+WN3nkn2DZYkmnM245qibR5q8+YUwgSF55RFbznj+WT2RouaKmTPNN6 -daRcwvwWm7rfSV1zZeywzB66zJg50U6y1l/ofyQa+lawDTNGIlZPXPMWrVWKYjy8 -UMI6WD5wTVrfmezHpiyPKqUuEbhYxdXoQy9ApSCAMip2XgYHSG1EYLohcmHiGuxk -XXJy8SGdBC9hNQsv8MD+UrjEQZy2E1ghgeMoJ01sJKMg+w+c1E80OtDRCITEQHFE -T+i+xR9dHDRkC2wcJPqpg0nG9U1/Y8AaqXeKwEMCAwEAAaNCMEAwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQU0I0fsrwplnPvDHrCpAaWz9WMMdswDgYDVR0PAQH/ -BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQAeFnzX0e5jqaKxhyyLHtPPURTtEgvs -Zyt/Ow6OPFC70dw7QBrsRDDE9mXCw13Yy8JsEy5aLXbGa11lpX7Cv8v8sVCwQ0f8 -o3sH0XdQT9JTmI+iAJcT2beDLtnEKuax/C1sztFhc6pA4M6HdEOi97XZX0Z5lyjE -3hVgOz4/PR0U9IfvuQgJKvvQ1RtPd/kNyUsjMhwGBKaDqgCccMIrAUIe9tbTXPmo -t4SeRBKan6gqiVZppi/p7mfpfjK172tO8BIj+oU+A1mU24iZBFXE0d/fxuL9YcX2 -r9xM5FKP8sgHOd2ZM0mFHt/hHwhr4NIbk9syBUs57rPxtq8YB6cknB51 ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4097 (0x1001) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=D Root CA - Multi-root - Validity - Not Before: Jan 3 00:00:00 2016 GMT - Not After : Jan 2 00:00:00 2026 GMT - Subject: CN=C CA - Multi-root - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b2:c4:16:dc:07:88:ec:7e:a6:b3:25:c8:7b:9c: - e0:07:1e:40:a9:40:c0:4d:c8:73:27:ea:88:d8:58: - 1a:1a:12:e3:9a:62:41:4c:a1:e9:b1:ce:c6:b2:f6: - 3a:f6:89:3f:40:e6:0f:fb:15:4b:cb:d2:8d:8e:b6: - 44:aa:63:fa:3b:c5:cc:af:86:05:70:aa:ec:f4:b3: - 79:04:e6:3e:25:ec:ec:29:d6:c9:8b:7b:13:05:a7: - ff:51:5b:ab:4c:bc:d0:e4:bd:61:1a:d2:27:f1:2e: - 5f:f4:51:81:c4:23:ba:20:c3:14:08:b4:be:78:49: - b5:13:1f:69:fd:f6:a7:59:91:84:a9:99:10:c8:9c: - 63:9e:99:c2:f2:3d:61:9d:6a:6e:d4:26:9b:88:aa: - da:66:b3:0d:c6:99:03:16:13:3a:a4:9a:ff:08:3e: - 59:df:a7:44:b7:17:99:3f:63:7f:3a:05:7e:ce:64: - 78:34:e6:00:77:69:e6:03:24:a7:12:f3:e8:a8:50: - 2b:55:16:fa:6e:65:c6:28:58:82:a4:20:7e:68:22: - e9:81:9e:a2:e8:0f:d6:87:c2:73:dd:c2:0c:cc:a3: - 47:54:11:f5:3d:dc:51:52:57:b2:ce:77:8b:7a:ac: - a7:f0:2a:26:36:e6:26:b9:6a:83:da:b2:6f:c0:f6: - 1e:f3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - E3:D1:05:98:4C:68:53:C2:DC:00:EE:AC:E5:A8:B8:FC:B9:72:D9:67 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 7e:5b:a7:f2:c7:15:33:73:ce:e4:1e:77:ba:35:8b:44:01:57: - b1:db:55:d3:54:95:c6:44:27:89:3f:e5:46:98:de:4a:7e:d9: - e7:6c:e8:0d:d5:e2:98:31:07:21:9c:bd:01:47:be:0c:e1:b3: - 22:1e:ea:da:d4:fc:b5:37:5d:94:de:06:9b:69:a5:77:22:d0: - 96:80:35:9f:02:a0:cd:41:35:b3:21:94:ca:9b:03:4f:68:18: - 5e:6d:0d:95:95:17:ab:bd:00:9b:d0:78:f7:38:5e:37:df:33: - 15:2f:3e:64:27:c8:67:5e:c4:14:92:08:90:55:34:8d:73:d9: - 66:0c:30:dd:42:ab:71:73:b4:26:28:b1:13:90:7b:0a:10:f2: - 7c:75:07:36:1f:a5:b6:a5:97:ac:20:c7:83:0c:15:cf:5c:34: - df:3f:8d:81:3e:c0:43:2a:ca:6f:c4:86:cc:2f:93:e1:5d:18: - 68:a4:bd:cc:5b:39:fa:40:fa:d4:a7:8b:7a:5d:b7:59:77:48: - 9b:ab:e0:71:b2:04:1f:79:ea:d1:cd:d3:24:52:5b:4b:21:2f: - 84:2e:b4:d6:87:1d:4f:fe:e7:6c:94:ff:d0:02:50:6b:bc:2a: - 1e:21:a5:ac:3e:73:b5:2f:ba:11:c5:6f:8f:f7:8e:eb:08:11: - 00:cb:e3:2d ------BEGIN CERTIFICATE----- -MIIC+zCCAeOgAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwITEfMB0GA1UEAwwWRCBS -b290IENBIC0gTXVsdGktcm9vdDAeFw0xNjAxMDMwMDAwMDBaFw0yNjAxMDIwMDAw -MDBaMBwxGjAYBgNVBAMMEUMgQ0EgLSBNdWx0aS1yb290MIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAssQW3AeI7H6msyXIe5zgBx5AqUDATchzJ+qI2Fga -GhLjmmJBTKHpsc7GsvY69ok/QOYP+xVLy9KNjrZEqmP6O8XMr4YFcKrs9LN5BOY+ -JezsKdbJi3sTBaf/UVurTLzQ5L1hGtIn8S5f9FGBxCO6IMMUCLS+eEm1Ex9p/fan -WZGEqZkQyJxjnpnC8j1hnWpu1CabiKraZrMNxpkDFhM6pJr/CD5Z36dEtxeZP2N/ -OgV+zmR4NOYAd2nmAySnEvPoqFArVRb6bmXGKFiCpCB+aCLpgZ6i6A/Wh8Jz3cIM -zKNHVBH1PdxRUleyzneLeqyn8ComNuYmuWqD2rJvwPYe8wIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBTj0QWYTGhTwtwA7qzlqLj8uXLZZzAOBgNV -HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAH5bp/LHFTNzzuQed7o1i0QB -V7HbVdNUlcZEJ4k/5UaY3kp+2eds6A3V4pgxByGcvQFHvgzhsyIe6trU/LU3XZTe -BptppXci0JaANZ8CoM1BNbMhlMqbA09oGF5tDZWVF6u9AJvQePc4XjffMxUvPmQn -yGdexBSSCJBVNI1z2WYMMN1Cq3FztCYosROQewoQ8nx1BzYfpball6wgx4MMFc9c -NN8/jYE+wEMqym/Ehswvk+FdGGikvcxbOfpA+tSni3pdt1l3SJur4HGyBB956tHN -0yRSW0shL4QutNaHHU/+52yU/9ACUGu8Kh4hpaw+c7UvuhHFb4/3jusIEQDL4y0= ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=D Root CA - Multi-root - Validity - Not Before: Jan 2 00:00:00 2016 GMT - Not After : Jan 2 00:00:00 2026 GMT - Subject: CN=D Root CA - Multi-root - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b4:b2:8e:83:7f:3b:8b:0f:9f:71:37:18:78:d0: - f5:bc:07:ac:d8:eb:bf:f6:7c:c0:65:dc:00:bf:83: - f7:e4:5e:97:9f:db:24:e4:c1:f9:31:70:b2:51:44: - 2c:27:05:6a:1f:1e:35:9c:ea:c4:eb:f8:0a:c4:4b: - 14:30:89:e8:75:93:fb:96:32:bc:0e:64:ca:11:74: - 4a:ac:26:a0:9c:09:cd:6e:43:cf:6c:56:03:44:ab: - 53:81:66:8d:5a:ad:75:1b:31:23:9f:fd:5e:8c:10: - cd:e9:e9:05:80:41:5e:b8:f1:96:3d:5b:17:b2:e1: - a8:47:44:eb:82:30:5e:7a:fe:8f:11:bb:b8:31:8e: - 98:4c:a9:f3:2c:91:59:78:f4:63:1c:47:ad:6a:96: - 5e:87:39:f3:17:9b:d6:9c:e9:e1:3c:0e:ef:8a:d8: - 7e:c3:2d:33:d9:eb:26:29:1d:8a:66:ef:b9:8d:c3: - b1:51:3a:75:56:1b:b8:a9:08:e7:10:db:37:70:c4: - 6c:32:c0:e1:2b:f4:84:12:a5:cf:49:83:e1:5a:40: - ab:db:f9:23:c5:7d:c0:03:ac:0e:3e:be:7c:42:92: - fb:b7:71:91:37:04:92:4e:d5:92:31:cf:1b:cd:e4: - 27:e5:85:98:ac:20:95:5d:6d:4e:90:fa:c7:6c:2b: - fd:41 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 69:E7:FF:33:A6:6B:A0:AD:5A:F1:D3:15:4F:9E:F7:C5:16:2E:C4:B6 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 55:ec:3a:cd:87:dc:96:54:23:68:65:f7:a6:91:3c:37:f0:44: - 94:2e:2f:3a:af:2c:0d:f4:09:f6:52:69:4f:ad:ac:83:6c:76: - 76:72:2b:c0:48:ea:c9:76:c0:f5:7a:1e:73:ba:3c:f3:41:93: - b4:4b:a5:6a:a3:87:f5:c7:6f:e9:55:ce:e0:8b:8c:83:e6:f0: - e0:1c:e8:6a:8f:3b:67:b6:cd:35:6d:0b:1c:16:bf:38:fd:9d: - d8:95:a9:3c:b9:4c:05:19:71:f4:a0:2c:1f:83:18:5a:f3:5a: - ea:80:49:70:cc:49:84:63:7c:a9:4d:cb:1f:df:96:f2:c4:2c: - 2c:e8:b0:75:69:8c:a9:71:7e:27:6a:fe:22:c6:77:e0:77:f4: - 98:05:29:45:18:75:a3:f0:43:40:b2:8d:52:cb:2e:46:fb:37: - bb:c6:68:20:c2:2e:01:82:51:f0:00:3a:89:40:9b:ab:9c:c3: - 5c:f2:a3:3b:f7:00:98:4d:bd:a7:74:37:f6:74:c7:6e:42:4b: - aa:8c:cc:c7:85:b2:4b:78:cb:8c:03:7c:e5:85:75:32:a9:89: - 49:da:ed:3d:9e:5b:a2:c9:b2:2a:08:06:6d:cf:df:83:d4:a9: - 3d:e9:44:de:70:9c:43:e3:35:24:dd:85:ed:7c:37:4e:02:44: - d2:5d:7a:ad ------BEGIN CERTIFICATE----- -MIIDADCCAeigAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwITEfMB0GA1UEAwwWRCBS -b290IENBIC0gTXVsdGktcm9vdDAeFw0xNjAxMDIwMDAwMDBaFw0yNjAxMDIwMDAw -MDBaMCExHzAdBgNVBAMMFkQgUm9vdCBDQSAtIE11bHRpLXJvb3QwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0so6DfzuLD59xNxh40PW8B6zY67/2fMBl -3AC/g/fkXpef2yTkwfkxcLJRRCwnBWofHjWc6sTr+ArESxQwieh1k/uWMrwOZMoR -dEqsJqCcCc1uQ89sVgNEq1OBZo1arXUbMSOf/V6MEM3p6QWAQV648ZY9Wxey4ahH -ROuCMF56/o8Ru7gxjphMqfMskVl49GMcR61qll6HOfMXm9ac6eE8Du+K2H7DLTPZ -6yYpHYpm77mNw7FROnVWG7ipCOcQ2zdwxGwywOEr9IQSpc9Jg+FaQKvb+SPFfcAD -rA4+vnxCkvu3cZE3BJJO1ZIxzxvN5CflhZisIJVdbU6Q+sdsK/1BAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGnn/zOma6CtWvHTFU+e98UWLsS2 -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAVew6zYfcllQjaGX3 -ppE8N/BElC4vOq8sDfQJ9lJpT62sg2x2dnIrwEjqyXbA9Xoec7o880GTtEulaqOH -9cdv6VXO4IuMg+bw4Bzoao87Z7bNNW0LHBa/OP2d2JWpPLlMBRlx9KAsH4MYWvNa -6oBJcMxJhGN8qU3LH9+W8sQsLOiwdWmMqXF+J2r+IsZ34Hf0mAUpRRh1o/BDQLKN -UssuRvs3u8ZoIMIuAYJR8AA6iUCbq5zDXPKjO/cAmE29p3Q39nTHbkJLqozMx4Wy -S3jLjAN85YV1MqmJSdrtPZ5bosmyKggGbc/fg9SpPelE3nCcQ+M1JN2F7Xw3TgJE -0l16rQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/multi-root-chain2.pem b/src/pki/testdata/ssl/certificates/multi-root-chain2.pem deleted file mode 100644 index ea5a7f0..0000000 --- a/src/pki/testdata/ssl/certificates/multi-root-chain2.pem +++ /dev/null @@ -1,305 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=B CA - Multi-root - Validity - Not Before: Feb 28 23:46:47 2017 GMT - Not After : Feb 26 23:46:47 2027 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a4:18:86:3f:09:63:9c:d4:c0:06:45:a5:91:7f: - e7:a7:b8:3d:c7:ff:0d:e8:39:f5:43:27:a7:44:2a: - 3b:53:03:e3:cd:13:23:46:5f:e0:27:f0:a3:7a:25: - 82:b0:52:bb:03:4f:99:e3:2c:1b:6f:54:05:0f:7f: - 4f:74:f9:ad:b2:88:85:43:63:06:ac:91:f1:19:b7: - da:7a:42:68:6a:68:a5:e0:02:44:23:eb:d1:05:0d: - 3d:58:31:ee:ba:20:9e:16:11:f5:ae:b5:c3:21:cc: - 84:e7:1a:d2:c2:8c:7e:44:93:36:bd:6c:0c:07:35: - f2:4e:57:3f:b3:cf:21:5a:ff:16:02:e9:61:f4:cc: - 4a:5a:24:da:55:fc:c6:da:44:d6:b7:2a:4e:31:bf: - a0:80:24:55:ed:5c:bc:6b:84:12:a4:03:cc:b2:c2: - db:ef:1e:08:bd:a3:bf:ef:fc:3d:53:38:b9:00:8a: - d6:40:1a:cc:f2:6a:ab:e7:4b:67:1c:ae:ff:6d:43: - 12:08:c6:97:4b:73:df:85:cf:2a:a5:6e:ce:22:02: - cb:63:6c:3f:00:aa:3b:b0:87:9b:d5:13:09:32:4c: - bd:71:79:ff:04:b1:9a:8d:2d:a0:0a:65:d5:1e:53: - c4:eb:0e:14:c0:b9:f3:8f:6f:64:b4:1d:11:a7:40: - e7:61 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 28:6F:58:36:8F:1B:C5:99:18:5B:DC:A5:86:AF:89:F2:B4:3E:AF:51 - X509v3 Authority Key Identifier: - keyid:D0:8D:1F:B2:BC:29:96:73:EF:0C:7A:C2:A4:06:96:CF:D5:8C:31:DB - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 07:8f:f9:c6:33:3c:bc:74:20:21:92:46:7a:c5:df:76:18:47: - 63:0c:5e:e8:f3:97:ec:37:83:0b:4d:a4:1c:6b:0b:a2:28:db: - 5c:17:d9:91:77:00:4a:db:46:f9:68:ec:2a:f8:b5:82:0c:00: - d1:88:0c:7c:b4:2d:e9:48:f5:a2:9d:a9:d5:bb:db:9d:56:96: - c5:6c:46:da:23:a3:66:80:a5:9b:93:d0:df:9c:00:75:ac:48: - ea:48:b4:22:ee:ff:db:eb:bb:8f:f0:de:16:a1:99:98:85:4c: - b3:66:dd:22:96:96:97:48:ae:8a:2d:e9:a5:1c:5c:d9:dd:31: - 3f:58:7c:bb:2b:db:86:6a:53:e5:af:6d:85:3a:ca:92:5d:56: - e2:02:90:d7:eb:98:0f:d8:ba:2a:d1:26:bb:82:5b:80:d5:2d: - 52:d7:40:4d:0d:0d:1e:fe:c2:89:be:e2:80:4d:cd:91:dc:f3: - fa:19:25:3e:ba:a8:cf:48:d3:b6:35:a5:96:6e:a5:12:d1:65: - 65:a9:92:6b:d0:fc:05:25:7c:fb:76:48:38:15:7e:4f:95:03: - b0:c3:55:89:bc:59:be:de:3c:fb:4b:5a:f1:3b:00:c1:03:59: - 6c:b3:8b:21:7e:84:75:30:19:8c:19:f6:99:40:ec:87:43:3b: - 89:d0:f5:6d ------BEGIN CERTIFICATE----- -MIIDeTCCAmGgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwHDEaMBgGA1UEAwwRQiBD -QSAtIE11bHRpLXJvb3QwHhcNMTcwMjI4MjM0NjQ3WhcNMjcwMjI2MjM0NjQ3WjBg -MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91 -bnRhaW4gVmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAuMC4x -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApBiGPwljnNTABkWlkX/n -p7g9x/8N6Dn1QyenRCo7UwPjzRMjRl/gJ/CjeiWCsFK7A0+Z4ywbb1QFD39PdPmt -soiFQ2MGrJHxGbfaekJoamil4AJEI+vRBQ09WDHuuiCeFhH1rrXDIcyE5xrSwox+ -RJM2vWwMBzXyTlc/s88hWv8WAulh9MxKWiTaVfzG2kTWtypOMb+ggCRV7Vy8a4QS -pAPMssLb7x4IvaO/7/w9Uzi5AIrWQBrM8mqr50tnHK7/bUMSCMaXS3Pfhc8qpW7O -IgLLY2w/AKo7sIeb1RMJMky9cXn/BLGajS2gCmXVHlPE6w4UwLnzj29ktB0Rp0Dn -YQIDAQABo4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUKG9YNo8bxZkYW9yl -hq+J8rQ+r1EwHwYDVR0jBBgwFoAU0I0fsrwplnPvDHrCpAaWz9WMMdswHQYDVR0l -BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZI -hvcNAQELBQADggEBAAeP+cYzPLx0ICGSRnrF33YYR2MMXujzl+w3gwtNpBxrC6Io -21wX2ZF3AErbRvlo7Cr4tYIMANGIDHy0LelI9aKdqdW7251WlsVsRtojo2aApZuT -0N+cAHWsSOpItCLu/9vru4/w3hahmZiFTLNm3SKWlpdIroot6aUcXNndMT9YfLsr -24ZqU+WvbYU6ypJdVuICkNfrmA/YuirRJruCW4DVLVLXQE0NDR7+wom+4oBNzZHc -8/oZJT66qM9I07Y1pZZupRLRZWWpkmvQ/AUlfPt2SDgVfk+VA7DDVYm8Wb7ePPtL -WvE7AMEDWWyziyF+hHUwGYwZ9plA7IdDO4nQ9W0= ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C CA - Multi-root - Validity - Not Before: Jan 4 00:00:00 2016 GMT - Not After : Jan 2 00:00:00 2026 GMT - Subject: CN=B CA - Multi-root - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ca:6c:54:ab:3c:54:33:6c:d7:04:c4:4b:c4:39: - 32:db:7a:49:e4:e1:e7:60:c7:35:33:08:59:ba:62: - bf:49:d6:05:1f:07:b8:b6:bd:38:2f:6b:a7:e5:8d: - de:79:27:d8:36:58:92:69:cc:db:8e:6a:89:b4:79: - ab:cf:98:53:08:12:17:9e:51:15:bc:e7:8f:e5:93: - d9:1a:2e:68:a9:93:3c:d3:7a:75:a4:5c:c2:fc:16: - 9b:ba:df:49:5d:73:65:ec:b0:cc:1e:ba:cc:98:39: - d1:4e:b2:d6:5f:e8:7f:24:1a:fa:56:b0:0d:33:46: - 22:56:4f:5c:f3:16:ad:55:8a:62:3c:bc:50:c2:3a: - 58:3e:70:4d:5a:df:99:ec:c7:a6:2c:8f:2a:a5:2e: - 11:b8:58:c5:d5:e8:43:2f:40:a5:20:80:32:2a:76: - 5e:06:07:48:6d:44:60:ba:21:72:61:e2:1a:ec:64: - 5d:72:72:f1:21:9d:04:2f:61:35:0b:2f:f0:c0:fe: - 52:b8:c4:41:9c:b6:13:58:21:81:e3:28:27:4d:6c: - 24:a3:20:fb:0f:9c:d4:4f:34:3a:d0:d1:08:84:c4: - 40:71:44:4f:e8:be:c5:1f:5d:1c:34:64:0b:6c:1c: - 24:fa:a9:83:49:c6:f5:4d:7f:63:c0:1a:a9:77:8a: - c0:43 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - D0:8D:1F:B2:BC:29:96:73:EF:0C:7A:C2:A4:06:96:CF:D5:8C:31:DB - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 1e:16:7c:d7:d1:ee:63:a9:a2:b1:87:2c:8b:1e:d3:cf:51:14: - ed:12:0b:ec:67:2b:7f:3b:0e:8e:3c:50:bb:d1:dc:3b:40:1a: - ec:44:30:c4:f6:65:c2:c3:5d:d8:cb:c2:6c:13:2e:5a:2d:76: - c6:6b:5d:65:a5:7e:c2:bf:cb:fc:b1:50:b0:43:47:fc:a3:7b: - 07:d1:77:50:4f:d2:53:98:8f:a2:00:97:13:d9:b7:83:2e:d9: - c4:2a:e6:b1:fc:2d:6c:ce:d1:61:73:aa:40:e0:ce:87:74:43: - a2:f7:b5:d9:5f:46:79:97:28:c4:de:15:60:3b:3e:3f:3d:1d: - 14:f4:87:ef:b9:08:09:2a:fb:d0:d5:1b:4f:77:f9:0d:c9:4b: - 23:32:1c:06:04:a6:83:aa:00:9c:70:c2:2b:01:42:1e:f6:d6: - d3:5c:f9:a8:b7:84:9e:44:12:9a:9f:a8:2a:89:56:69:a6:2f: - e9:ee:67:e9:7e:32:b5:ef:6b:4e:f0:12:23:fa:85:3e:03:59: - 94:db:88:99:04:55:c4:d1:df:df:c6:e2:fd:61:c5:f6:af:dc: - 4c:e4:52:8f:f2:c8:07:39:dd:99:33:49:85:1e:df:e1:1f:08: - 6b:e0:d2:1b:93:db:32:05:4b:39:ee:b3:f1:b6:af:18:07:a7: - 24:9c:1e:75 ------BEGIN CERTIFICATE----- -MIIC9jCCAd6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwHDEaMBgGA1UEAwwRQyBD -QSAtIE11bHRpLXJvb3QwHhcNMTYwMTA0MDAwMDAwWhcNMjYwMTAyMDAwMDAwWjAc -MRowGAYDVQQDDBFCIENBIC0gTXVsdGktcm9vdDCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMpsVKs8VDNs1wTES8Q5Mtt6SeTh52DHNTMIWbpiv0nWBR8H -uLa9OC9rp+WN3nkn2DZYkmnM245qibR5q8+YUwgSF55RFbznj+WT2RouaKmTPNN6 -daRcwvwWm7rfSV1zZeywzB66zJg50U6y1l/ofyQa+lawDTNGIlZPXPMWrVWKYjy8 -UMI6WD5wTVrfmezHpiyPKqUuEbhYxdXoQy9ApSCAMip2XgYHSG1EYLohcmHiGuxk -XXJy8SGdBC9hNQsv8MD+UrjEQZy2E1ghgeMoJ01sJKMg+w+c1E80OtDRCITEQHFE -T+i+xR9dHDRkC2wcJPqpg0nG9U1/Y8AaqXeKwEMCAwEAAaNCMEAwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQU0I0fsrwplnPvDHrCpAaWz9WMMdswDgYDVR0PAQH/ -BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQAeFnzX0e5jqaKxhyyLHtPPURTtEgvs -Zyt/Ow6OPFC70dw7QBrsRDDE9mXCw13Yy8JsEy5aLXbGa11lpX7Cv8v8sVCwQ0f8 -o3sH0XdQT9JTmI+iAJcT2beDLtnEKuax/C1sztFhc6pA4M6HdEOi97XZX0Z5lyjE -3hVgOz4/PR0U9IfvuQgJKvvQ1RtPd/kNyUsjMhwGBKaDqgCccMIrAUIe9tbTXPmo -t4SeRBKan6gqiVZppi/p7mfpfjK172tO8BIj+oU+A1mU24iZBFXE0d/fxuL9YcX2 -r9xM5FKP8sgHOd2ZM0mFHt/hHwhr4NIbk9syBUs57rPxtq8YB6cknB51 ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4097 (0x1001) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=E Root CA - Multi-root - Validity - Not Before: Jan 5 00:00:00 2016 GMT - Not After : Jan 2 00:00:00 2026 GMT - Subject: CN=C CA - Multi-root - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b2:c4:16:dc:07:88:ec:7e:a6:b3:25:c8:7b:9c: - e0:07:1e:40:a9:40:c0:4d:c8:73:27:ea:88:d8:58: - 1a:1a:12:e3:9a:62:41:4c:a1:e9:b1:ce:c6:b2:f6: - 3a:f6:89:3f:40:e6:0f:fb:15:4b:cb:d2:8d:8e:b6: - 44:aa:63:fa:3b:c5:cc:af:86:05:70:aa:ec:f4:b3: - 79:04:e6:3e:25:ec:ec:29:d6:c9:8b:7b:13:05:a7: - ff:51:5b:ab:4c:bc:d0:e4:bd:61:1a:d2:27:f1:2e: - 5f:f4:51:81:c4:23:ba:20:c3:14:08:b4:be:78:49: - b5:13:1f:69:fd:f6:a7:59:91:84:a9:99:10:c8:9c: - 63:9e:99:c2:f2:3d:61:9d:6a:6e:d4:26:9b:88:aa: - da:66:b3:0d:c6:99:03:16:13:3a:a4:9a:ff:08:3e: - 59:df:a7:44:b7:17:99:3f:63:7f:3a:05:7e:ce:64: - 78:34:e6:00:77:69:e6:03:24:a7:12:f3:e8:a8:50: - 2b:55:16:fa:6e:65:c6:28:58:82:a4:20:7e:68:22: - e9:81:9e:a2:e8:0f:d6:87:c2:73:dd:c2:0c:cc:a3: - 47:54:11:f5:3d:dc:51:52:57:b2:ce:77:8b:7a:ac: - a7:f0:2a:26:36:e6:26:b9:6a:83:da:b2:6f:c0:f6: - 1e:f3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - E3:D1:05:98:4C:68:53:C2:DC:00:EE:AC:E5:A8:B8:FC:B9:72:D9:67 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 0d:37:a8:9e:12:c9:fb:45:a2:b9:82:07:4a:2a:34:d2:3b:1d: - 84:70:b1:4a:85:37:7e:64:31:45:c3:02:9d:32:4e:92:a4:97: - 72:ed:1d:f2:c3:26:c8:3f:90:e4:24:f4:6e:4b:33:71:98:bc: - 68:25:26:cc:de:c1:46:a6:a8:83:60:fc:6e:c0:72:98:8f:ce: - 38:6e:69:9d:ab:d1:5a:f0:a6:c8:07:a1:09:b3:8c:03:09:7b: - 44:62:73:15:85:71:5f:2c:0a:33:78:f2:a3:10:85:1e:6b:46: - d1:a5:f1:9c:13:ba:f7:95:41:a0:fb:de:c9:09:e1:72:a4:92: - ff:33:e4:81:25:10:af:90:17:79:df:54:ea:b9:87:0e:f8:6d: - 09:55:10:46:4c:87:36:37:2f:c0:86:03:ee:7a:b4:d3:27:22: - 22:d5:9c:2e:e6:38:f0:f4:84:5c:ca:b7:9b:4d:6a:1c:57:7e: - 24:07:35:13:a0:f9:d6:a3:aa:29:cb:e0:8a:b0:86:1c:41:24: - b1:ed:04:30:71:2b:99:d7:0a:a4:51:53:b1:76:2e:be:63:5b: - 7c:8e:d5:8f:fa:f3:99:58:7d:ce:30:07:5d:1e:ed:e6:bc:0a: - d1:a7:cc:17:94:e7:d1:67:07:7c:37:6d:3f:c2:8b:04:9e:77: - fb:5b:9c:2d ------BEGIN CERTIFICATE----- -MIIC+zCCAeOgAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwITEfMB0GA1UEAwwWRSBS -b290IENBIC0gTXVsdGktcm9vdDAeFw0xNjAxMDUwMDAwMDBaFw0yNjAxMDIwMDAw -MDBaMBwxGjAYBgNVBAMMEUMgQ0EgLSBNdWx0aS1yb290MIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAssQW3AeI7H6msyXIe5zgBx5AqUDATchzJ+qI2Fga -GhLjmmJBTKHpsc7GsvY69ok/QOYP+xVLy9KNjrZEqmP6O8XMr4YFcKrs9LN5BOY+ -JezsKdbJi3sTBaf/UVurTLzQ5L1hGtIn8S5f9FGBxCO6IMMUCLS+eEm1Ex9p/fan -WZGEqZkQyJxjnpnC8j1hnWpu1CabiKraZrMNxpkDFhM6pJr/CD5Z36dEtxeZP2N/ -OgV+zmR4NOYAd2nmAySnEvPoqFArVRb6bmXGKFiCpCB+aCLpgZ6i6A/Wh8Jz3cIM -zKNHVBH1PdxRUleyzneLeqyn8ComNuYmuWqD2rJvwPYe8wIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBTj0QWYTGhTwtwA7qzlqLj8uXLZZzAOBgNV -HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAA03qJ4SyftFormCB0oqNNI7 -HYRwsUqFN35kMUXDAp0yTpKkl3LtHfLDJsg/kOQk9G5LM3GYvGglJszewUamqINg -/G7AcpiPzjhuaZ2r0VrwpsgHoQmzjAMJe0RicxWFcV8sCjN48qMQhR5rRtGl8ZwT -uveVQaD73skJ4XKkkv8z5IElEK+QF3nfVOq5hw74bQlVEEZMhzY3L8CGA+56tNMn -IiLVnC7mOPD0hFzKt5tNahxXfiQHNROg+dajqinL4IqwhhxBJLHtBDBxK5nXCqRR -U7F2Lr5jW3yO1Y/685lYfc4wB10e7ea8CtGnzBeU59FnB3w3bT/CiwSed/tbnC0= ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=E Root CA - Multi-root - Validity - Not Before: Jan 2 00:00:00 2016 GMT - Not After : Jan 2 00:00:00 2026 GMT - Subject: CN=E Root CA - Multi-root - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c0:14:71:12:fe:4f:36:78:5f:3a:b4:1e:d5:bb: - 22:92:3e:57:bf:4d:e0:cf:1e:a1:fb:19:6d:88:3a: - 59:93:79:57:42:bc:ab:7c:a0:0d:73:35:db:db:ba: - 80:ef:a9:80:5b:b0:90:f5:2f:ea:17:7d:2b:92:a4: - 5e:88:0a:16:f3:dc:f5:25:3d:7a:8d:8e:9b:e9:22: - 74:dc:49:6e:87:ff:67:ae:3a:b8:09:63:63:e7:c2: - bd:77:d7:1b:cb:93:c6:4a:1d:7b:51:25:05:31:cb: - 32:66:43:ea:2d:54:59:59:cd:de:d2:84:6f:d8:5a: - c1:5b:6c:2d:67:d5:57:23:25:a0:04:dc:45:64:02: - f0:de:1a:4a:62:c9:76:b5:f6:36:46:74:af:1f:18: - 6c:f7:38:cf:34:e3:e1:3f:ad:51:41:cf:92:ed:d5: - 27:f7:4a:e3:3c:d5:42:26:51:e3:b2:69:20:b1:1f: - 0a:f6:fd:19:3c:8e:98:94:64:eb:fe:e6:67:a0:12: - f6:78:98:0f:44:b8:24:60:7c:de:e2:67:b9:0d:6e: - 8c:06:80:43:8e:41:76:1d:09:40:0e:3b:e7:8d:0a: - d9:66:d7:34:6c:ce:7e:f9:25:6a:15:cf:9a:3e:ec: - 30:e0:a3:b1:d2:a3:b1:31:f1:62:50:5c:b4:fe:dd: - 54:61 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 15:FA:C3:A2:2A:E0:2C:25:C5:BE:D7:BE:91:51:DD:45:F0:F1:5D:64 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - bb:14:68:d2:09:0e:65:58:4d:d7:35:a0:a3:9b:e6:b4:2a:b4: - 80:32:3e:61:6d:87:19:a6:a8:d2:01:78:cd:07:0b:09:a9:de: - 5f:aa:86:43:dd:6f:d6:e0:3b:ab:60:71:d2:f0:aa:8f:14:93: - 42:37:12:55:02:e1:a7:ed:8e:db:c0:83:10:19:f0:f5:1e:35: - 77:84:9a:c1:79:9c:60:39:6f:50:00:66:73:6e:f0:b8:f7:75: - 67:3e:fa:3e:0c:d0:d6:54:4a:ae:da:38:06:92:57:39:cc:d9: - b1:fa:60:5e:99:07:e6:97:3b:69:4d:e3:02:50:8d:60:76:8e: - 7e:e3:60:d4:65:41:9b:6c:b8:cc:b2:c4:7a:61:32:cb:67:49: - b4:76:25:0c:7e:20:85:24:74:0a:90:0a:ce:73:f9:8e:ba:ce: - de:6e:0a:cf:6d:1c:50:67:fa:a2:4e:32:d0:ad:91:35:5e:aa: - b3:75:7e:23:14:29:a8:66:2a:82:ed:6c:ed:a9:9d:f6:77:20: - 3a:e1:0b:ab:1e:ee:1d:8a:20:ff:7f:4f:36:5a:0a:30:5a:c6: - 9c:aa:53:eb:3f:04:28:8a:6d:70:97:2a:99:d6:0c:db:a5:22: - 0b:e5:6b:24:cf:6e:2a:c7:4a:6b:cd:82:8e:13:84:18:b6:47: - 1b:9d:8b:83 ------BEGIN CERTIFICATE----- -MIIDADCCAeigAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwITEfMB0GA1UEAwwWRSBS -b290IENBIC0gTXVsdGktcm9vdDAeFw0xNjAxMDIwMDAwMDBaFw0yNjAxMDIwMDAw -MDBaMCExHzAdBgNVBAMMFkUgUm9vdCBDQSAtIE11bHRpLXJvb3QwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDAFHES/k82eF86tB7VuyKSPle/TeDPHqH7 -GW2IOlmTeVdCvKt8oA1zNdvbuoDvqYBbsJD1L+oXfSuSpF6IChbz3PUlPXqNjpvp -InTcSW6H/2euOrgJY2Pnwr131xvLk8ZKHXtRJQUxyzJmQ+otVFlZzd7ShG/YWsFb -bC1n1VcjJaAE3EVkAvDeGkpiyXa19jZGdK8fGGz3OM804+E/rVFBz5Lt1Sf3SuM8 -1UImUeOyaSCxHwr2/Rk8jpiUZOv+5megEvZ4mA9EuCRgfN7iZ7kNbowGgEOOQXYd -CUAOO+eNCtlm1zRszn75JWoVz5o+7DDgo7HSo7Ex8WJQXLT+3VRhAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBX6w6Iq4Cwlxb7XvpFR3UXw8V1k -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAuxRo0gkOZVhN1zWg -o5vmtCq0gDI+YW2HGaao0gF4zQcLCaneX6qGQ91v1uA7q2Bx0vCqjxSTQjcSVQLh -p+2O28CDEBnw9R41d4SawXmcYDlvUABmc27wuPd1Zz76PgzQ1lRKrto4BpJXOczZ -sfpgXpkH5pc7aU3jAlCNYHaOfuNg1GVBm2y4zLLEemEyy2dJtHYlDH4ghSR0CpAK -znP5jrrO3m4Kz20cUGf6ok4y0K2RNV6qs3V+IxQpqGYqgu1s7amd9ncgOuELqx7u -HYog/39PNloKMFrGnKpT6z8EKIptcJcqmdYM26UiC+VrJM9uKsdKa82CjhOEGLZH -G52Lgw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/multi-root-crlset-C.raw b/src/pki/testdata/ssl/certificates/multi-root-crlset-C.raw Binary files differdeleted file mode 100644 index c8ff83b..0000000 --- a/src/pki/testdata/ssl/certificates/multi-root-crlset-C.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/multi-root-crlset-CD-and-FE.raw b/src/pki/testdata/ssl/certificates/multi-root-crlset-CD-and-FE.raw Binary files differdeleted file mode 100644 index 4b04356..0000000 --- a/src/pki/testdata/ssl/certificates/multi-root-crlset-CD-and-FE.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/multi-root-crlset-D-and-E.raw b/src/pki/testdata/ssl/certificates/multi-root-crlset-D-and-E.raw Binary files differdeleted file mode 100644 index eacdb4a..0000000 --- a/src/pki/testdata/ssl/certificates/multi-root-crlset-D-and-E.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/multi-root-crlset-E.raw b/src/pki/testdata/ssl/certificates/multi-root-crlset-E.raw Binary files differdeleted file mode 100644 index 02051b8..0000000 --- a/src/pki/testdata/ssl/certificates/multi-root-crlset-E.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/multi-root-crlset-unrelated.raw b/src/pki/testdata/ssl/certificates/multi-root-crlset-unrelated.raw Binary files differdeleted file mode 100644 index 83fd62c..0000000 --- a/src/pki/testdata/ssl/certificates/multi-root-crlset-unrelated.raw +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/multi-root.keychain b/src/pki/testdata/ssl/certificates/multi-root.keychain Binary files differdeleted file mode 100644 index 40cbb7c..0000000 --- a/src/pki/testdata/ssl/certificates/multi-root.keychain +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/multivalue_rdn.pem b/src/pki/testdata/ssl/certificates/multivalue_rdn.pem deleted file mode 100644 index 6ffe161..0000000 --- a/src/pki/testdata/ssl/certificates/multivalue_rdn.pem +++ /dev/null @@ -1,59 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - ef:6c:2f:57:d9:fd:5a:0f - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=US, O=Chromium, DC=Chromium, CN=Multivalue RDN Test, OU=Chromium net_unittests - Validity - Not Before: Dec 2 03:47:39 2011 GMT - Not After : Jan 1 03:47:39 2012 GMT - Subject: C=US, O=Chromium, DC=Chromium, CN=Multivalue RDN Test, OU=Chromium net_unittests - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:9d:23:10:ed:87:82:b0:eb:a4:fb:49:f5:db:c1: - 7b:4d:f0:ed:1b:f5:f8:f2:c1:b5:d2:84:de:eb:94: - 82:f0:de:8b:04:b7:e8:ed:86:22:41:99:56:54:71: - 33:8e:c1:69:6a:2b:f4:77:1e:24:70:81:5b:56:08: - 57:02:4c:bf:af:9a:a0:33:55:e2:00:6b:b3:cc:5c: - 3b:47:6e:dc:05:30:bd:0c:f9:51:c0:70:2b:3f:70: - a2:10:a3:b7:8b:3f:22:fa:ab:bd:c7:48:a5:ff:d3: - 7b:d0:b7:12:48:0b:bf:90:62:f1:8a:40:db:1d:1a: - 0c:f5:dd:92:2a:1c:b6:2c:6b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 8D:5E:71:FA:2A:73:BA:9F:8E:63:32:1C:5D:AB:87:D0:AB:47:AB:B7 - X509v3 Authority Key Identifier: - keyid:8D:5E:71:FA:2A:73:BA:9F:8E:63:32:1C:5D:AB:87:D0:AB:47:AB:B7 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 18:ac:0d:d3:50:38:ee:7c:55:1c:e9:30:c0:57:5b:4f:cb:7d: - 14:59:18:de:92:20:e6:67:a8:a8:ed:da:01:33:5a:48:4c:e4: - 66:85:25:8d:6b:56:81:67:f3:af:e9:f8:12:5c:19:07:17:98: - bf:d7:0f:ba:b5:64:6b:ec:17:ca:0c:d6:ce:c3:b3:09:43:0a: - 04:8f:da:4b:c8:a3:45:ea:ef:ca:f8:7a:2e:91:a8:8c:f1:a7: - d4:7b:6d:9d:73:4b:9a:1c:be:04:b1:02:b3:b7:2a:e9:fd:19: - 86:f2:26:ac:45:a1:0f:9b:99:1a:53:b1:69:99:3e:6c:51:23: - 40:70 ------BEGIN CERTIFICATE----- -MIICsDCCAhmgAwIBAgIJAO9sL1fZ/VoPMA0GCSqGSIb3DQEBBQUAMHExbzAJBgNV -BAYTAlVTMA8GA1UECgwIQ2hyb21pdW0wFgYKCZImiZPyLGQBGRYIQ2hyb21pdW0w -GgYDVQQDDBNNdWx0aXZhbHVlIFJETiBUZXN0MB0GA1UECwwWQ2hyb21pdW0gbmV0 -X3VuaXR0ZXN0czAeFw0xMTEyMDIwMzQ3MzlaFw0xMjAxMDEwMzQ3MzlaMHExbzAJ -BgNVBAYTAlVTMA8GA1UECgwIQ2hyb21pdW0wFgYKCZImiZPyLGQBGRYIQ2hyb21p -dW0wGgYDVQQDDBNNdWx0aXZhbHVlIFJETiBUZXN0MB0GA1UECwwWQ2hyb21pdW0g -bmV0X3VuaXR0ZXN0czCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnSMQ7YeC -sOuk+0n128F7TfDtG/X48sG10oTe65SC8N6LBLfo7YYiQZlWVHEzjsFpaiv0dx4k -cIFbVghXAky/r5qgM1XiAGuzzFw7R27cBTC9DPlRwHArP3CiEKO3iz8i+qu9x0il -/9N70LcSSAu/kGLxikDbHRoM9d2SKhy2LGsCAwEAAaNQME4wHQYDVR0OBBYEFI1e -cfoqc7qfjmMyHF2rh9CrR6u3MB8GA1UdIwQYMBaAFI1ecfoqc7qfjmMyHF2rh9Cr -R6u3MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAGKwN01A47nxVHOkw -wFdbT8t9FFkY3pIg5meoqO3aATNaSEzkZoUljWtWgWfzr+n4ElwZBxeYv9cPurVk -a+wXygzWzsOzCUMKBI/aS8ijRervyvh6LpGojPGn1HttnXNLmhy+BLECs7cq6f0Z -hvImrEWhD5uZGlOxaZk+bFEjQHA= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/name_constrained_key.pem b/src/pki/testdata/ssl/certificates/name_constrained_key.pem deleted file mode 100644 index f7a9d37..0000000 --- a/src/pki/testdata/ssl/certificates/name_constrained_key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCwOdQrS3Jk6jJb -Na2O4BadbxtUobCnikBNFFHn+Lof7YXQmy0DMiHL0iOhzt9ZcuRTLFzoYUvJk3Tm -S8h7Vdj4sIvF1k8E0MCWwY2rsFbgZilV276UQr+hzMncbzU5cfgMcOlHfpycBg8U -i4ygVUgttEWzilGA6NH9Vi7e4cb9DJyAI4AZXJI+B7d2n9HYxAuF1V417dpADz5g -CznwFQI+i9uzITlAwWaIsZJ6GvvpSfnOFFFppbRLCLr8MTRLYv8efWYh9HcG0LFe -vxuhtzYIIi40tzXTEYYnFhrx+HpuAR/pza/ewtvX2sVkXhr4n1B2m4+XfWHoVE4Y -D725dY55AgMBAAECggEAVcLu5FsFQuNOumC3JC8eEmP98wP1SrPXcyuOaMv9GIip -dMnv7/w3wk90E8zvmUJ2p5uRY23mSiU+4MzEtnEi9HRGsXMIZZmKAFQVtBZPUUmm -mCgm6VRKml1lZ6efSWOTicpxXN/bK3svX5pCR8z5IXT37tZDr+6eMyH8EW/jPUZU -wA/LVpmfRkcLg8VF6J70yj60peU3234b5Z9QLkR80g9U9Sj1QQhuDRAO97zireru -QwFixeazgXzWPTk3iol6GiDbus9T0WGeUAWYZ8XyJ1voNHRNg9dfvpLAc0UBQ5Ho -7Au6fYWQ8cEmYFIC5X46k/fZhZNgludUlQLfMsI1AQKBgQDin873bebHXpoFGXR3 -Sn8obsieSWwHCDU2gp+K8JwPtip1PrVfA1KW/wBo938zqpBZDAOOFGGl4x08wLmm -WnlrPOsrcehDbiGTPheBPvOS11/v6IxoOVLLUnDaQIX9j8eOGG/WM0pan8wNG9Vz -WHQduZcBQlKoyXjjJ84avorh8QKBgQDHEaAJab8sK//lCYrCpTfbS2tYCfc9b7Nx -m/6GCJnxqVYfal9ocGd7U7RO7okDQAMyvwSpI9ejTDF8tO4BNHCgvi6rKK3Fj/CJ -bgw8rCP1BOKLvDK/7A7/v1KqvYHtODnCH0iTVK/R/Oq2Jws0m88uSkANm1w2t+SG -JVk/ymBtCQKBgC0L/RTbyKrKmCz5UVhA+6Oq2b/08j83l3Q9ZL82cp8A49GoZF79 -hxYym/9Bawx3E/hPVgmQ7ZQO4AnqeTyi8U2qr0hUfQmiQ5REHGH5hGsk2pISlI5H -DrkRqxMHDltHkDAjlV9rlJUM/H+Cj9w8seASuvxqFYotehUVHXfddjfRAoGAYUXj -hbX+jH8Tk7+N5n8FREseMO7tuT+T17f6L1SUpNmyE7fO1yHV7xV/zfIRUV0+MtXU -WTICdPEOXXmrszsErgdAlrJR92/WgdEcealECL5SVSWpRs76pU2//16K1nfbAVh4 -BkYjg+CqcEez2gkou93cXsnDzZkeOc6WRe2GIMECgYEApyMBng9jXOD1Qw2CpWeC -kO/GL98UXAvQAnQB1YepWDmbW2OxpXZ5TI5wQkJxE7z7EJkIm6Vq0fcHtDNwGWBq -2zLyUW+QdR53eGEkhHNzq0hFWVMCaDbO6UNa1OFZqN/WSBFB3z4F0XAZ1ZX+PaFm -NqcJRJ7sL5XqgAdRqcTTFcA= ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/ndn.ca.crt b/src/pki/testdata/ssl/certificates/ndn.ca.crt deleted file mode 100644 index 6da9fb2..0000000 --- a/src/pki/testdata/ssl/certificates/ndn.ca.crt +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGBjCCA+4CCQDbt8YGR683ojANBgkqhkiG9w0BAQUFADCBxDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC0xvcyBBbmdlbGVzMR8w -HQYDVQQKExZOZXcgRHJlYW0gTmV0d29yaywgTExDMREwDwYDVQQLEwhTZWN1cml0 -eTEwMC4GA1UEAxMnTmV3IERyZWFtIE5ldHdvcmsgQ2VydGlmaWNhdGUgQXV0aG9y -aXR5MSQwIgYJKoZIhvcNAQkBFhVzdXBwb3J0QGRyZWFtaG9zdC5jb20wHhcNMDYw -ODIyMjExMjU4WhcNMTYwODE5MjExMjU4WjCBxDELMAkGA1UEBhMCVVMxEzARBgNV -BAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC0xvcyBBbmdlbGVzMR8wHQYDVQQKExZO -ZXcgRHJlYW0gTmV0d29yaywgTExDMREwDwYDVQQLEwhTZWN1cml0eTEwMC4GA1UE -AxMnTmV3IERyZWFtIE5ldHdvcmsgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSQwIgYJ -KoZIhvcNAQkBFhVzdXBwb3J0QGRyZWFtaG9zdC5jb20wggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQDHykL2vz70nbj827iARXxgBK41yXUy7oBcoG5TA+MD -GjXVqV+szQWgQz6C6uPPp+O4cUVxnAIfXvCo7VjsYYsDcmCWAlV27ZRN3Ek7HvIv -4rHaht0y/E/DgKOZiiy7kJMvqDZSuD9NxSlIOTDBS6aDyORNZKubWdg0l+Axk3Yn -YhmVhPtqupO8HzQjR0s2wgwKdz3m96RqjJDBng0wLEv/iCGN0ogBBV1TePuKcodF -TQivkjvVcITRVWIBKNfg0uDeM+cHIYGp44WM3gBX0W3AaG9JH/1tYWmgVrk/cmwK -oMq3PKVr/Usp7nR3PTyn1rpcJjPZDSNOleO+KilI4vbwFgnydbm97eTf/BFy548j -SPi9HINufNDSajXCRvyQ04CQVpAzH2mPVcykoL6++M2u2nNO5tLWa2ix96RNPrV/ -K00KbmIODPoqRVmoL7UvD4w2AM26l7Ol20cLqU8G4bZGe1DoKpF1CxwQlBzY6iJN -PiEY+eAII54w7cnHdAp2mOKvJBVUzCROc7g4W0n3/JCHEaXDnfXlqevCckAaDbes -AM7w9epOd7rUWpbSxOuKsgIyXvhM9VwxI7L5TdgULqKXq57jMAK8irsOalEt+5pJ -8RGFDOgJsbR+eJ3En//11OJzgz1bdW0lSUD72hoNdLyJtP7dn8+FrIfGBw9mwWMG -MwIDAQABMA0GCSqGSIb3DQEBBQUAA4ICAQAVUa0xn7/bDpyxdqJrr3np5HKDKaL6 -CL4KNgBS1hKHLIqxwKGTO+nCm1sVgK9fIh7hF5sG7f5hc5ZPp9usOeqwewB5drYZ -jPyk2e5WX0fjdB2pFPxhPS8vzNJRBtpPnUoiOuwXI4K12V7xj3SC/S4tqNfBM/p9 -sk15XfWiS8rMqDGg6oMFeM4BZ7YaZOXY/upqofg+MEbVdLBngwUPI/a1rR8OYUBr -NhsSZpXwg22IwDE45M7wxgRvj0hojRAAxVS75ogitx040tf2Lp8DJgtSGvOHtuW9 -87MXd8Ev8xf/7d9EXw4ghwKvyWglrw0Bpoh9OP9DOwoRFIzdBz5aUmAx6PNIvZ0Y -xQ+QRUxj+Kx2Xl6hpsk8URsfxKDHR2sZwcSqjD+JJGJee26An7btAst1/grAYw5X -tEfcXyXiDBHXPY6t0NZOzfQUggwIU0fiWhvT43Skob6pCc0dUBeEhFK0dpyDE3AM -4LwF/ECGfPn/UzzB/Lax4WaY2yGccBrikRfIkZARrJbvBCAxchH+HCeBV0B0BlOi -2R0RxwH0gKBEHxhMaq5J/rTaE7V5wd8OsxzcxUgW+te6hc0bbuhPiYhtvQ0N7+oF -z89JuuwocsTbNekeBwHB5wpsCPA29mYId8uvVl7LThvut9+szsWetmVua7P9t10h -GX3cdJCMZUwypA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/nist.der b/src/pki/testdata/ssl/certificates/nist.der Binary files differdeleted file mode 100644 index 8add89d..0000000 --- a/src/pki/testdata/ssl/certificates/nist.der +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/no_subject_common_name_cert.pem b/src/pki/testdata/ssl/certificates/no_subject_common_name_cert.pem deleted file mode 100644 index f9d582e..0000000 --- a/src/pki/testdata/ssl/certificates/no_subject_common_name_cert.pem +++ /dev/null @@ -1,109 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - f0:1e:87:f4:fe:b6:f0:10:dc:7e:65:da:f4:fb:8f:e3 - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO Client Authentication and Secure Email CA - Validity - Not Before: Apr 25 00:00:00 2012 GMT - Not After : Apr 25 23:59:59 2013 GMT - Subject: emailAddress=wtc@google.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:f6:50:cf:80:32:ee:05:1b:6a:07:c5:5f:71:bc: - 67:81:40:63:46:35:a4:23:6c:77:32:57:ec:c8:b0: - 0b:16:0e:5f:b7:42:6e:de:6f:de:84:9f:cf:81:73: - ee:30:a9:ac:47:8c:47:27:78:89:eb:d1:14:e9:a9: - fd:08:74:01:2c:dc:ea:4f:0a:30:82:cd:b5:02:65: - 54:42:9c:af:14:18:a7:56:c7:c4:00:7d:c0:f6:4d: - 97:58:80:57:f5:fc:2c:36:78:69:d6:e3:7f:05:05: - ff:08:26:1e:f5:d5:60:3f:15:5d:06:16:28:11:a5: - 5d:b5:d0:59:d1:27:ab:38:8e:6b:68:b6:3d:c3:cb: - f5:0d:42:35:a1:6e:f5:3f:73:12:33:9f:47:a5:43: - 2f:f3:dc:00:61:18:3f:4a:74:e4:d2:e8:37:e7:19: - 18:84:34:49:78:d2:b5:4d:90:65:4e:6f:a0:13:5b: - 2f:47:3e:0c:04:2f:fe:bd:9c:c1:d1:d1:f2:36:fe: - df:07:e6:ec:b8:48:c7:1f:24:f6:af:9a:35:2a:a8: - 12:db:a9:a2:50:cc:0c:28:a4:fc:66:f2:28:a8:c2: - d1:fb:ea:1e:58:c3:14:70:e0:18:a4:2a:04:54:8c: - d3:f3:09:2e:b7:76:a3:eb:07:7a:f4:e8:3a:e3:2e: - 6b:b7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Authority Key Identifier: - keyid:7A:13:4E:00:74:5B:C6:78:63:64:27:C1:2F:E2:A0:5B:BC:79:C5:7B - - X509v3 Subject Key Identifier: - D7:D3:09:C6:62:34:E3:2A:2D:5D:F3:E9:B4:B0:DA:73:55:E9:75:28 - X509v3 Key Usage: critical - Digital Signature, Key Encipherment - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - E-mail Protection, 1.3.6.1.4.1.6449.1.3.5.2 - Netscape Cert Type: - S/MIME - X509v3 Certificate Policies: - Policy: 1.3.6.1.4.1.6449.1.2.1.1.1 - CPS: https://secure.comodo.net/CPS - - X509v3 CRL Distribution Points: - - Full Name: - URI:http://crl.comodoca.com/COMODOClientAuthenticationandSecureEmailCA.crl - - Authority Information Access: - CA Issuers - URI:http://crt.comodoca.com/COMODOClientAuthenticationandSecureEmailCA.crt - OCSP - URI:http://ocsp.comodoca.com - - X509v3 Subject Alternative Name: - email:wtc@google.com - Signature Algorithm: sha1WithRSAEncryption - 62:4c:6b:d9:de:0e:56:66:74:ac:b2:08:ef:d4:9f:f7:02:d7: - f0:80:7a:ad:91:19:d4:4e:1e:76:1d:34:fb:f9:c5:c3:5b:55: - 83:af:5f:da:12:43:bf:e2:d2:4a:3b:aa:91:d6:0e:07:4b:ab: - 57:c9:b8:d7:6b:cc:f9:33:85:d4:ea:40:06:09:30:15:8f:e9: - 1a:0f:9d:b7:a4:4b:b5:a1:f5:3a:90:71:93:ae:ab:e1:84:1c: - d8:d5:1c:2c:87:df:3a:5e:e8:5a:75:21:d8:45:41:5e:db:ba: - 9c:f3:50:c9:08:1f:e5:d5:e7:55:0a:25:cd:86:88:41:83:2f: - b3:ee:39:02:a6:34:52:fe:64:0a:72:6e:65:41:eb:f9:10:34: - 65:40:3d:93:3e:68:6a:ea:68:c5:cb:09:09:78:be:a7:1e:fa: - 6f:21:d8:0e:e3:8d:74:08:57:ef:17:f1:6d:50:66:a2:73:78: - 10:81:65:bf:96:e4:82:8d:46:7b:e8:a1:fa:6f:33:90:d8:4f: - ec:1f:fe:6f:4b:bf:b1:67:2d:cc:e3:90:ef:87:d3:af:ef:d7: - 3b:d7:14:56:b7:7a:1a:96:e4:8c:de:2b:a3:95:9d:a9:e5:31: - 7b:c9:2c:ec:1f:82:06:7c:80:fa:14:da:71:3b:d1:47:84:8f: - 01:e6:5a:8a ------BEGIN CERTIFICATE----- -MIIFHjCCBAagAwIBAgIRAPAeh/T+tvAQ3H5l2vT7j+MwDQYJKoZIhvcNAQEFBQAw -gZMxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO -BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTkwNwYD -VQQDEzBDT01PRE8gQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1h -aWwgQ0EwHhcNMTIwNDI1MDAwMDAwWhcNMTMwNDI1MjM1OTU5WjAfMR0wGwYJKoZI -hvcNAQkBFg53dGNAZ29vZ2xlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAPZQz4Ay7gUbagfFX3G8Z4FAY0Y1pCNsdzJX7MiwCxYOX7dCbt5v3oSf -z4Fz7jCprEeMRyd4ievRFOmp/Qh0ASzc6k8KMILNtQJlVEKcrxQYp1bHxAB9wPZN -l1iAV/X8LDZ4adbjfwUF/wgmHvXVYD8VXQYWKBGlXbXQWdEnqziOa2i2PcPL9Q1C -NaFu9T9zEjOfR6VDL/PcAGEYP0p05NLoN+cZGIQ0SXjStU2QZU5voBNbL0c+DAQv -/r2cwdHR8jb+3wfm7LhIxx8k9q+aNSqoEtupolDMDCik/GbyKKjC0fvqHljDFHDg -GKQqBFSM0/MJLrd2o+sHevToOuMua7cCAwEAAaOCAd4wggHaMB8GA1UdIwQYMBaA -FHoTTgB0W8Z4Y2QnwS/ioFu8ecV7MB0GA1UdDgQWBBTX0wnGYjTjKi1d8+m0sNpz -Vel1KDAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAgBgNVHSUEGTAXBggr -BgEFBQcDBAYLKwYBBAGyMQEDBQIwEQYJYIZIAYb4QgEBBAQDAgUgMEYGA1UdIAQ/ -MD0wOwYMKwYBBAGyMQECAQEBMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJl -LmNvbW9kby5uZXQvQ1BTMFcGA1UdHwRQME4wTKBKoEiGRmh0dHA6Ly9jcmwuY29t -b2RvY2EuY29tL0NPTU9ET0NsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1h -aWxDQS5jcmwwgYgGCCsGAQUFBwEBBHwwejBSBggrBgEFBQcwAoZGaHR0cDovL2Ny -dC5jb21vZG9jYS5jb20vQ09NT0RPQ2xpZW50QXV0aGVudGljYXRpb25hbmRTZWN1 -cmVFbWFpbENBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2Eu -Y29tMBkGA1UdEQQSMBCBDnd0Y0Bnb29nbGUuY29tMA0GCSqGSIb3DQEBBQUAA4IB -AQBiTGvZ3g5WZnSssgjv1J/3AtfwgHqtkRnUTh52HTT7+cXDW1WDr1/aEkO/4tJK -O6qR1g4HS6tXybjXa8z5M4XU6kAGCTAVj+kaD523pEu1ofU6kHGTrqvhhBzY1Rws -h986XuhadSHYRUFe27qc81DJCB/l1edVCiXNhohBgy+z7jkCpjRS/mQKcm5lQev5 -EDRlQD2TPmhq6mjFywkJeL6nHvpvIdgO4410CFfvF/FtUGaic3gQgWW/luSCjUZ7 -6KH6bzOQ2E/sH/5vS7+xZy3M45Dvh9Ov79c71xRWt3oaluSM3iujlZ2p5TF7ySzs -H4IGfID6FNpxO9FHhI8B5lqK ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/non-crit-codeSigning-chain.pem b/src/pki/testdata/ssl/certificates/non-crit-codeSigning-chain.pem deleted file mode 100644 index 6c539a6..0000000 --- a/src/pki/testdata/ssl/certificates/non-crit-codeSigning-chain.pem +++ /dev/null @@ -1,110 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCgluiYfh9lhgwx -d5rJhUpPoY+WJ67pPa1tdCTkeD3jowQ/MhNatUxMy/7O76pvBegUtrq29MPLcmvA -LeJYDcIJmh48pY/KrEUADZcDmrogQXQViCuaH/7ceKRxZu0FO7qBreyxgcu9nHkD -SP1X7ZefhEhOOKDsRXiQWpXTyDC/PeL/BMXkdoPGROEAx2RSyXETTCtby7HGsZ+w -nwXvdHUObpGmLErqiARhG39w7ZF40yV1hqy0DGw6CIV1q+JqLFMhZus+xSWkmFB4 -V06haO2D0Xgl7t2prN9c7OQHJ+fQP/D+cL2kzbdJO7MGq5biEoXMCsnpm0hCAu+v -Hl/kE5xJAgMBAAECggEAHjVtITx+evpdolORwE1s1nB5ooEqB9G0pVWXGAxfdgol -Ix8wIVzf8sVgFDzk5ngpuXXLR13hVAzc5JytCqvh360IeZeaZkGERFeKHCE32Jf/ -dop0S0ywBHjEVFnMhfK/qaPWVejo8uzznbDWCXuWDWmUsXQ5H2ENJjiIHTv4IY09 -0DXiySiaeI1iiyToiv6Dt9dVpPuleJbY0LlRfZ1WrkcEB9r1kQqzJOdqM5iuDYWa -dCO9u8fbWPGRacL3ystrZqB0Od3s9G6h09D5Iv8QXpYHWp4E/Oea3kYKyFUDgPpH -1wH6fE9fER6RKOKyG1HBZL12HlNZnPv1v033Rs6WRQKBgQC3LnaYo1TkHX0j4t1X -iQisRWtE8espt1ZsxIErqiz+fJlHhQCJq2Lqz/uLHmqaM6M2ffVuXoFM8vZzlyXw -v23EPc8HGEhvw6iTm3uCdTQ2nXZbb4Gbw5lYOF6PDJfAhnn3XwaUUVCL67PAZvwq -j4hWKzmrfrrv8KRgvso9NB6fHQKBgQDgbVxLGofqhoE/tuoCfZMCC0vI3PZ5503B -XvTXg/J9lKsycwx74qKWBDchqG+MF1GQOwufDvx44QAcW/gNsdd6SJ/yLlf69m6V -HSGh3S3pUfFwT4wzY/rKbh0g8DSXm6J7BrMwID+RAwMjKzst1tqjCBH6HnNEHIfP -HRrJAwgOHQKBgQCcFUkUckeJP987TrlPNwJe15+5VXENUJyhfSabMBu6lCx/FkMJ -CzHz5lftiHNJBSrS6azQ6FHAYV3BzE6VvmcnSYs3/mbqZIslitxIotlkl/Mbof2L -3bSxyQY5WX+MmokeUKfohQje0G2PSbEgCsEeuyIekJN0k1Vc4fStBdX5uQKBgAuG -0mSxGiX7fovtMxupo3FJbz0DzEz6ik3SOLUQ+9VjW1+d9RgvzbXyxXofEouZbwD/ -Z1tmA6WZuM28E4NwjOak8EIaCz7ChW93LZEIsSD4qnPgQg0pp2naOfjFHY5j2faD -o5RnM5yZEQIvaDy0ekpBUdsM0VLAPGFw1z1XwIQpAoGBALaN5OhHVZfy+RqTy+k/ -Sa+eO/vghkdapdZwfnFYhJzD+sZKRBUiNwzZrAcNfijN/sTIcnMWbMcD6TSdh1qZ -RLd2m/U0T9avw0/aog+IXldkm7VjKf7+V+RIzoGOxmtCI1zVP9uldDYJDKAMabiu -kdec1ozHgh6Pg2G2d5nkPgI9 ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 RSA Test Root CA - Validity - Not Before: Feb 17 17:08:50 2023 GMT - Not After : Feb 14 17:08:50 2033 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a0:96:e8:98:7e:1f:65:86:0c:31:77:9a:c9:85: - 4a:4f:a1:8f:96:27:ae:e9:3d:ad:6d:74:24:e4:78: - 3d:e3:a3:04:3f:32:13:5a:b5:4c:4c:cb:fe:ce:ef: - aa:6f:05:e8:14:b6:ba:b6:f4:c3:cb:72:6b:c0:2d: - e2:58:0d:c2:09:9a:1e:3c:a5:8f:ca:ac:45:00:0d: - 97:03:9a:ba:20:41:74:15:88:2b:9a:1f:fe:dc:78: - a4:71:66:ed:05:3b:ba:81:ad:ec:b1:81:cb:bd:9c: - 79:03:48:fd:57:ed:97:9f:84:48:4e:38:a0:ec:45: - 78:90:5a:95:d3:c8:30:bf:3d:e2:ff:04:c5:e4:76: - 83:c6:44:e1:00:c7:64:52:c9:71:13:4c:2b:5b:cb: - b1:c6:b1:9f:b0:9f:05:ef:74:75:0e:6e:91:a6:2c: - 4a:ea:88:04:61:1b:7f:70:ed:91:78:d3:25:75:86: - ac:b4:0c:6c:3a:08:85:75:ab:e2:6a:2c:53:21:66: - eb:3e:c5:25:a4:98:50:78:57:4e:a1:68:ed:83:d1: - 78:25:ee:dd:a9:ac:df:5c:ec:e4:07:27:e7:d0:3f: - f0:fe:70:bd:a4:cd:b7:49:3b:b3:06:ab:96:e2:12: - 85:cc:0a:c9:e9:9b:48:42:02:ef:af:1e:5f:e4:13: - 9c:49 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 01:1C:A6:B0:CB:64:17:AB:8E:90:63:E0:B6:16:19:C6:06:C1:C2:C7 - X509v3 Extended Key Usage: - Code Signing - X509v3 Authority Key Identifier: - D5:28:55:87:C7:A3:BF:D7:C4:CE:BE:3D:01:D2:BE:8B:7C:E4:E2:E2 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - bc:03:2d:ad:04:e4:0e:64:20:1e:bd:fb:04:6a:63:d5:8c:51: - a0:d6:2d:4d:7d:97:f5:0f:42:56:09:58:d6:f4:df:46:01:01: - f3:62:78:a7:57:76:28:5a:85:fd:b1:34:37:06:7f:1f:7e:d1: - d9:1a:54:78:a2:4a:ec:90:69:bf:08:3e:c7:df:63:1c:89:d3: - ca:30:61:e3:f6:0a:92:66:68:8f:6b:6a:0b:01:4c:ca:90:e5: - 13:b4:89:92:2e:56:bd:84:6f:9c:ff:19:5b:75:27:7f:9e:cc: - 62:1c:06:e6:94:30:fe:d3:59:1b:2c:10:79:7c:0e:1a:29:be: - c9:14:02:56:f9:eb:cd:a6:33:10:75:fa:d7:61:23:d0:16:cf: - c9:e9:58:7b:51:8c:1f:84:3f:32:ca:89:91:90:da:5f:7d:35: - 0c:f5:1c:c3:b6:03:ad:f9:5f:49:79:54:55:86:98:fa:69:b5: - fb:47:5b:b1:99:c8:f0:5f:b8:af:a6:b4:63:1b:53:e6:47:78: - e3:40:df:63:21:f2:51:88:c4:24:b5:51:33:bc:b1:f5:7e:42: - 89:b3:ff:3a:d7:e4:02:e2:23:c4:82:98:74:d2:2c:ee:8e:71: - 58:80:b7:0f:24:dc:11:83:02:13:91:7d:0f:8f:b4:81:20:c5: - ee:55:8c:7b ------BEGIN CERTIFICATE----- -MIIDcTCCAlmgAwIBAgIBATANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBUyMDQ4 -IFJTQSBUZXN0IFJvb3QgQ0EwHhcNMjMwMjE3MTcwODUwWhcNMzMwMjE0MTcwODUw -WjBgMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN -TW91bnRhaW4gVmlldzEQMA4GA1UECgwHVGVzdCBDQTESMBAGA1UEAwwJMTI3LjAu -MC4xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoJbomH4fZYYMMXea -yYVKT6GPlieu6T2tbXQk5Hg946MEPzITWrVMTMv+zu+qbwXoFLa6tvTDy3JrwC3i -WA3CCZoePKWPyqxFAA2XA5q6IEF0FYgrmh/+3HikcWbtBTu6ga3ssYHLvZx5A0j9 -V+2Xn4RITjig7EV4kFqV08gwvz3i/wTF5HaDxkThAMdkUslxE0wrW8uxxrGfsJ8F -73R1Dm6RpixK6ogEYRt/cO2ReNMldYastAxsOgiFdaviaixTIWbrPsUlpJhQeFdO -oWjtg9F4Je7dqazfXOzkByfn0D/w/nC9pM23STuzBquW4hKFzArJ6ZtIQgLvrx5f -5BOcSQIDAQABo3YwdDAPBgNVHREECDAGhwR/AAABMAwGA1UdEwEB/wQCMAAwHQYD -VR0OBBYEFAEcprDLZBerjpBj4LYWGcYGwcLHMBMGA1UdJQQMMAoGCCsGAQUFBwMD -MB8GA1UdIwQYMBaAFNUoVYfHo7/XxM6+PQHSvot85OLiMA0GCSqGSIb3DQEBCwUA -A4IBAQC8Ay2tBOQOZCAevfsEamPVjFGg1i1NfZf1D0JWCVjW9N9GAQHzYninV3Yo -WoX9sTQ3Bn8fftHZGlR4okrskGm/CD7H32McidPKMGHj9gqSZmiPa2oLAUzKkOUT -tImSLla9hG+c/xlbdSd/nsxiHAbmlDD+01kbLBB5fA4aKb7JFAJW+evNpjMQdfrX -YSPQFs/J6Vh7UYwfhD8yyomRkNpffTUM9RzDtgOt+V9JeVRVhpj6abX7R1uxmcjw -X7ivprRjG1PmR3jjQN9jIfJRiMQktVEzvLH1fkKJs/861+QC4iPEgph00izujnFY -gLcPJNwRgwITkX0Pj7SBIMXuVYx7 ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ok_cert.pem b/src/pki/testdata/ssl/certificates/ok_cert.pem deleted file mode 100644 index 15a299a..0000000 --- a/src/pki/testdata/ssl/certificates/ok_cert.pem +++ /dev/null @@ -1,113 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDgU/TzmMEUMwLI -pG3+qir3lD2mbwDfO95Mn6PqB9Ss5VsN0azg7fnFmB01LeWzSZcUhUQP3EzSZwiI -AaXYp+uT0Wqh91HnhH5SKn28bw7Y27amPt7c9aRolkQRhQLtRxLfuGBxlXtih2h6 -RFYJ1bTI8fbJRpKLaOiD1dWGcSPDgB6/bAHH0qS8QG3g48AuMHi9rd0lZtP1BwdW -187icsUlfQzhp28AqNqrS1RDCWSktlI4L7fMAd0cAycDR7/f5jew7RjcUQvUdSLf -UHs86zc5HJtvCHunBayMQ/fx2lEGs4JFPsiBc56wpc92lq+BLKwBKkpYSx2+/x+F -wife8XgLAgMBAAECggEAO0gUmHdKtvLQDoPdiYogtrKXJC97dILWuTsKzyLoohQu -XtWFMR/SfNQ5C7+oTxvocATTurlGF+ggigidckbV64dQ/aJlI6CQ3VfbSHu02bwe -ZYqBzLShkP382QBkiJ3asAKCgiG1rJEKHB2I+ypdjyjaRdB/k5XStFxDBDdL8zKe -kL1hytf1ALxYBQJ3TXcoIqlpzz6v+JnZTAuu4vrySfffyFTrytIwf/KGlBACBqXe -oV+DK586PiyC0m1Hhy1rLTi2/IT4t4j3KO+c/OnpWkMEg1G/Ojy1zPMsMHr1VO9t -UWxhEIYOLQVUOT+2ltO4bRJcgEPHSxlIY23qalJgqQKBgQD9oZwHPhLZg439Zr9O -Zgl5fFkPe4SxqLY+ggE5O81+3RgL8GyAuy9oDtUGcw8L9tpKcBflqH4jEvUvT1/m -8BGKIQteqcKbY0C+KfPvq77R4k2KqmxpKF5f4BS/9O7cgzJZwhSFKDLtcKtDIPUK -3eoERuPB4/cmhQyb+/TKofZpfwKBgQDibEm1+nYj3tIXDxK3hZHjPz0s9vYV84py -zg3HjuEmdacnhNPQQQpNG83RMjEnnBvHWH2vxRWyD+57r/FWeA60aUJo5WIP0rj8 -z6GqFT9IWaBrJtBU1YoxuyTH64yih6ljvm2skIEGlQYS+GBL9K/Tx4mh4lAKVzD5 -GXVqtyM/dQKBgFD0Ik8VewK+QLXe87TcUK3cCLkuXZ4vEWxGJonUErUpcKFu7dLw -7CK0iT3zv5u8ANS9joMZEpmzVVryZNPbUF3cSjq+yIS8W0/XKCsZkGCBcOqPlubB -oc3MQhM65HqxzYJkthQCTq8GxUM547zCNA2FavDaCGrdELdA5lM++t2VAoGAMLem -AH68bqlhwM5gc5ZMtn2D1ynn9v8oudz2AAsRDKph5dHhlTx5T+/8j9dh1ijznSfA -G1KngWGGKZzIq5c3ar//Jvy75bWsUdEG8saRkCqgpo16Y9ZyXpLqrg1TfCD+ZFSz -2l5ZNKZZ4TkJ1y31qvaS+X7tQ9xQ0DgXGHgBIIUCgYABBBddUXpOyG54HvFHIgxS -esBBkpM0uy3vOkyfMown2GCjKZaXS5kEmRwU9WQQKLPf2ieALgYEf87YGWmPNZNF -tG5DoNhTMsrYORB11tuuBR1e6lrG/aoOkP/4udWC8d4Yp9wnkEu0l6X/kMfq2lb1 -67bBVmHqKJ0t8rytHzkP0Q== ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:66 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Oct 2 17:20:08 2024 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e0:53:f4:f3:98:c1:14:33:02:c8:a4:6d:fe:aa: - 2a:f7:94:3d:a6:6f:00:df:3b:de:4c:9f:a3:ea:07: - d4:ac:e5:5b:0d:d1:ac:e0:ed:f9:c5:98:1d:35:2d: - e5:b3:49:97:14:85:44:0f:dc:4c:d2:67:08:88:01: - a5:d8:a7:eb:93:d1:6a:a1:f7:51:e7:84:7e:52:2a: - 7d:bc:6f:0e:d8:db:b6:a6:3e:de:dc:f5:a4:68:96: - 44:11:85:02:ed:47:12:df:b8:60:71:95:7b:62:87: - 68:7a:44:56:09:d5:b4:c8:f1:f6:c9:46:92:8b:68: - e8:83:d5:d5:86:71:23:c3:80:1e:bf:6c:01:c7:d2: - a4:bc:40:6d:e0:e3:c0:2e:30:78:bd:ad:dd:25:66: - d3:f5:07:07:56:d7:ce:e2:72:c5:25:7d:0c:e1:a7: - 6f:00:a8:da:ab:4b:54:43:09:64:a4:b6:52:38:2f: - b7:cc:01:dd:1c:03:27:03:47:bf:df:e6:37:b0:ed: - 18:dc:51:0b:d4:75:22:df:50:7b:3c:eb:37:39:1c: - 9b:6f:08:7b:a7:05:ac:8c:43:f7:f1:da:51:06:b3: - 82:45:3e:c8:81:73:9e:b0:a5:cf:76:96:af:81:2c: - ac:01:2a:4a:58:4b:1d:be:ff:1f:85:c2:27:de:f1: - 78:0b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E2:E0:A4:73:95:9B:E9:6E:FD:CE:29:C4:6F:07:81:0B:96:BD:47:BA - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 77:ef:82:85:f1:18:e6:5a:a4:fc:19:da:1a:f4:44:fc:83:03: - 99:0f:76:fa:40:9d:cf:91:9d:08:df:19:20:54:4e:a9:33:a5: - 49:5e:7f:3a:8f:6d:4a:73:bd:0f:98:83:b4:61:43:63:7c:87: - 2b:3a:59:f8:2e:22:3b:7b:39:00:83:0d:90:87:ea:06:78:59: - 73:37:d5:02:fe:94:af:f7:31:13:c6:44:21:72:dd:e8:69:34: - ab:83:ee:ac:58:ee:22:fa:aa:64:bc:65:31:e9:d1:4a:ec:e5: - 7d:6e:b9:1f:0f:5a:50:14:cc:d2:c5:32:fd:ba:74:dc:2d:a6: - 1a:ac:e7:2e:ce:68:22:c0:16:81:29:3f:4e:a2:84:8f:64:3b: - d6:e9:29:00:4a:62:e1:3c:cf:14:20:cd:c5:d5:06:9a:77:3e: - 27:ba:f3:b5:4c:c0:8c:e5:79:2d:df:8d:89:55:fa:e5:c3:ee: - a4:3c:61:1a:b4:68:17:4e:15:d6:be:6f:b6:d0:42:2c:18:69: - 17:2f:34:2d:0e:87:43:1c:51:e1:ca:b0:c4:ce:3b:c1:a8:89: - 56:97:fe:30:40:5f:0c:f4:2f:e3:ab:e1:4b:b9:55:71:44:82: - c2:d7:ec:58:63:20:55:c2:e5:fa:eb:8f:29:44:8d:65:fa:29: - 48:75:57:66 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwmYwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0yNDEwMDIxNzIwMDhaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDgU/TzmMEUMwLIpG3+qir3lD2mbwDfO95M -n6PqB9Ss5VsN0azg7fnFmB01LeWzSZcUhUQP3EzSZwiIAaXYp+uT0Wqh91HnhH5S -Kn28bw7Y27amPt7c9aRolkQRhQLtRxLfuGBxlXtih2h6RFYJ1bTI8fbJRpKLaOiD -1dWGcSPDgB6/bAHH0qS8QG3g48AuMHi9rd0lZtP1BwdW187icsUlfQzhp28AqNqr -S1RDCWSktlI4L7fMAd0cAycDR7/f5jew7RjcUQvUdSLfUHs86zc5HJtvCHunBayM -Q/fx2lEGs4JFPsiBc56wpc92lq+BLKwBKkpYSx2+/x+Fwife8XgLAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTi4KRzlZvpbv3OKcRvB4ELlr1HujAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAd++ChfEY5lqk/BnaGvRE/IMDmQ92+kCdz5GdCN8ZIFROqTOlSV5/Oo9tSnO9 -D5iDtGFDY3yHKzpZ+C4iO3s5AIMNkIfqBnhZczfVAv6Ur/cxE8ZEIXLd6Gk0q4Pu -rFjuIvqqZLxlMenRSuzlfW65Hw9aUBTM0sUy/bp03C2mGqznLs5oIsAWgSk/TqKE -j2Q71ukpAEpi4TzPFCDNxdUGmnc+J7rztUzAjOV5Ld+NiVX65cPupDxhGrRoF04V -1r5vttBCLBhpFy80LQ6HQxxR4cqwxM47waiJVpf+MEBfDPQv46vhS7lVcUSCwtfs -WGMgVcLl+uuPKUSNZfopSHVXZg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/ok_cert_by_intermediate.pem b/src/pki/testdata/ssl/certificates/ok_cert_by_intermediate.pem deleted file mode 100644 index 25be4eb..0000000 --- a/src/pki/testdata/ssl/certificates/ok_cert_by_intermediate.pem +++ /dev/null @@ -1,195 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDgU/TzmMEUMwLI -pG3+qir3lD2mbwDfO95Mn6PqB9Ss5VsN0azg7fnFmB01LeWzSZcUhUQP3EzSZwiI -AaXYp+uT0Wqh91HnhH5SKn28bw7Y27amPt7c9aRolkQRhQLtRxLfuGBxlXtih2h6 -RFYJ1bTI8fbJRpKLaOiD1dWGcSPDgB6/bAHH0qS8QG3g48AuMHi9rd0lZtP1BwdW -187icsUlfQzhp28AqNqrS1RDCWSktlI4L7fMAd0cAycDR7/f5jew7RjcUQvUdSLf -UHs86zc5HJtvCHunBayMQ/fx2lEGs4JFPsiBc56wpc92lq+BLKwBKkpYSx2+/x+F -wife8XgLAgMBAAECggEAO0gUmHdKtvLQDoPdiYogtrKXJC97dILWuTsKzyLoohQu -XtWFMR/SfNQ5C7+oTxvocATTurlGF+ggigidckbV64dQ/aJlI6CQ3VfbSHu02bwe -ZYqBzLShkP382QBkiJ3asAKCgiG1rJEKHB2I+ypdjyjaRdB/k5XStFxDBDdL8zKe -kL1hytf1ALxYBQJ3TXcoIqlpzz6v+JnZTAuu4vrySfffyFTrytIwf/KGlBACBqXe -oV+DK586PiyC0m1Hhy1rLTi2/IT4t4j3KO+c/OnpWkMEg1G/Ojy1zPMsMHr1VO9t -UWxhEIYOLQVUOT+2ltO4bRJcgEPHSxlIY23qalJgqQKBgQD9oZwHPhLZg439Zr9O -Zgl5fFkPe4SxqLY+ggE5O81+3RgL8GyAuy9oDtUGcw8L9tpKcBflqH4jEvUvT1/m -8BGKIQteqcKbY0C+KfPvq77R4k2KqmxpKF5f4BS/9O7cgzJZwhSFKDLtcKtDIPUK -3eoERuPB4/cmhQyb+/TKofZpfwKBgQDibEm1+nYj3tIXDxK3hZHjPz0s9vYV84py -zg3HjuEmdacnhNPQQQpNG83RMjEnnBvHWH2vxRWyD+57r/FWeA60aUJo5WIP0rj8 -z6GqFT9IWaBrJtBU1YoxuyTH64yih6ljvm2skIEGlQYS+GBL9K/Tx4mh4lAKVzD5 -GXVqtyM/dQKBgFD0Ik8VewK+QLXe87TcUK3cCLkuXZ4vEWxGJonUErUpcKFu7dLw -7CK0iT3zv5u8ANS9joMZEpmzVVryZNPbUF3cSjq+yIS8W0/XKCsZkGCBcOqPlubB -oc3MQhM65HqxzYJkthQCTq8GxUM547zCNA2FavDaCGrdELdA5lM++t2VAoGAMLem -AH68bqlhwM5gc5ZMtn2D1ynn9v8oudz2AAsRDKph5dHhlTx5T+/8j9dh1ijznSfA -G1KngWGGKZzIq5c3ar//Jvy75bWsUdEG8saRkCqgpo16Y9ZyXpLqrg1TfCD+ZFSz -2l5ZNKZZ4TkJ1y31qvaS+X7tQ9xQ0DgXGHgBIIUCgYABBBddUXpOyG54HvFHIgxS -esBBkpM0uy3vOkyfMown2GCjKZaXS5kEmRwU9WQQKLPf2ieALgYEf87YGWmPNZNF -tG5DoNhTMsrYORB11tuuBR1e6lrG/aoOkP/4udWC8d4Yp9wnkEu0l6X/kMfq2lb1 -67bBVmHqKJ0t8rytHzkP0Q== ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 9c:ac:13:39:97:f9:d0:e4:e8:7f:a3:f1:71:92:32:fa - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Oct 2 17:20:08 2024 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e0:53:f4:f3:98:c1:14:33:02:c8:a4:6d:fe:aa: - 2a:f7:94:3d:a6:6f:00:df:3b:de:4c:9f:a3:ea:07: - d4:ac:e5:5b:0d:d1:ac:e0:ed:f9:c5:98:1d:35:2d: - e5:b3:49:97:14:85:44:0f:dc:4c:d2:67:08:88:01: - a5:d8:a7:eb:93:d1:6a:a1:f7:51:e7:84:7e:52:2a: - 7d:bc:6f:0e:d8:db:b6:a6:3e:de:dc:f5:a4:68:96: - 44:11:85:02:ed:47:12:df:b8:60:71:95:7b:62:87: - 68:7a:44:56:09:d5:b4:c8:f1:f6:c9:46:92:8b:68: - e8:83:d5:d5:86:71:23:c3:80:1e:bf:6c:01:c7:d2: - a4:bc:40:6d:e0:e3:c0:2e:30:78:bd:ad:dd:25:66: - d3:f5:07:07:56:d7:ce:e2:72:c5:25:7d:0c:e1:a7: - 6f:00:a8:da:ab:4b:54:43:09:64:a4:b6:52:38:2f: - b7:cc:01:dd:1c:03:27:03:47:bf:df:e6:37:b0:ed: - 18:dc:51:0b:d4:75:22:df:50:7b:3c:eb:37:39:1c: - 9b:6f:08:7b:a7:05:ac:8c:43:f7:f1:da:51:06:b3: - 82:45:3e:c8:81:73:9e:b0:a5:cf:76:96:af:81:2c: - ac:01:2a:4a:58:4b:1d:be:ff:1f:85:c2:27:de:f1: - 78:0b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E2:E0:A4:73:95:9B:E9:6E:FD:CE:29:C4:6F:07:81:0B:96:BD:47:BA - X509v3 Authority Key Identifier: - 17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 93:a1:82:4b:78:ce:18:3a:0a:ae:c8:3b:04:4a:1e:2a:e0:e8: - c3:dd:15:cb:ed:4f:23:09:b8:d4:49:4f:3b:2c:98:bf:bd:7a: - 4e:de:6b:48:93:0c:17:50:d5:df:b0:8a:95:3a:f4:d2:3c:c4: - 71:cd:fc:d3:72:b1:99:dd:5c:82:74:df:42:d9:51:85:26:92: - 2b:c8:0d:1b:aa:e5:98:9f:9d:25:cd:82:f1:a5:42:20:9c:7f: - e9:b3:b8:1e:75:70:2a:07:ee:33:db:6d:b6:6a:cb:e0:80:e9: - fe:12:15:0f:4e:e6:78:99:a3:22:68:1a:bc:ce:77:45:f0:9f: - ce:23:25:bd:32:b6:8d:f4:1a:3a:8e:e9:a7:bd:da:e7:d5:ba: - 84:38:4f:db:bb:29:7f:ec:4f:56:1a:c4:43:1a:0e:a5:c9:db: - b1:69:9d:00:82:b6:b2:4b:67:e7:58:45:37:dc:30:81:93:5a: - 56:de:5e:0f:9c:d6:1a:73:9c:9e:f4:f1:8e:20:11:fc:f3:3f: - 77:7f:9a:f1:93:42:31:2b:5a:e2:70:f2:7a:f0:07:7e:28:c3: - 21:6a:c5:b3:fe:08:76:4b:a3:58:70:f6:44:22:a5:e1:b9:17: - ce:a4:90:35:5c:c7:9a:e0:12:b7:5f:24:d5:60:0c:bd:9d:b6: - 1b:78:17:16 ------BEGIN CERTIFICATE----- -MIID1zCCAr+gAwIBAgIRAJysEzmX+dDk6H+j8XGSMvowDQYJKoZIhvcNAQELBQAw -azELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExHTAbBgNVBAMMFFRlc3QgSW50 -ZXJtZWRpYXRlIENBMB4XDTIyMTAwMzE3MjAwOFoXDTI0MTAwMjE3MjAwOFowYDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50 -YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOBT9POYwRQzAsikbf6qKveU -PaZvAN873kyfo+oH1KzlWw3RrODt+cWYHTUt5bNJlxSFRA/cTNJnCIgBpdin65PR -aqH3UeeEflIqfbxvDtjbtqY+3tz1pGiWRBGFAu1HEt+4YHGVe2KHaHpEVgnVtMjx -9slGkoto6IPV1YZxI8OAHr9sAcfSpLxAbeDjwC4weL2t3SVm0/UHB1bXzuJyxSV9 -DOGnbwCo2qtLVEMJZKS2Ujgvt8wB3RwDJwNHv9/mN7DtGNxRC9R1It9QezzrNzkc -m28Ie6cFrIxD9/HaUQazgkU+yIFznrClz3aWr4EsrAEqSlhLHb7/H4XCJ97xeAsC -AwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOLgpHOVm+lu/c4pxG8H -gQuWvUe6MB8GA1UdIwQYMBaAFBdcRfPQrBwQTItDRCDE3ZPFxRk7MB0GA1UdJQQW -MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAPBgNVHREECDAGhwR/AAABMA0GCSqGSIb3 -DQEBCwUAA4IBAQCToYJLeM4YOgquyDsESh4q4OjD3RXL7U8jCbjUSU87LJi/vXpO -3mtIkwwXUNXfsIqVOvTSPMRxzfzTcrGZ3VyCdN9C2VGFJpIryA0bquWYn50lzYLx -pUIgnH/ps7gedXAqB+4z2222asvggOn+EhUPTuZ4maMiaBq8zndF8J/OIyW9MraN -9Bo6jumnvdrn1bqEOE/buyl/7E9WGsRDGg6lyduxaZ0AgrayS2fnWEU33DCBk1pW -3l4PnNYac5ye9PGOIBH88z93f5rxk0IxK1ricPJ68Ad+KMMhasWz/gh2S6NYcPZE -IqXhuRfOpJA1XMea4BK3XyTVYAy9nbYbeBcW ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:64 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Sep 30 17:20:08 2032 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:9d:e9:bd:e4:3d:4a:2f:fb:c2:f9:e6:22:2a:42: - 15:46:1c:8c:8f:47:4c:e9:c5:57:95:1f:66:70:93: - 22:f0:94:c3:bb:b5:5b:ef:a4:6f:c8:c7:89:95:75: - ba:0c:36:bf:4e:6b:a9:35:47:08:43:9e:29:6a:e2: - c3:fb:03:b7:1f:b6:e1:51:6b:ed:7b:19:c7:f9:ce: - 3b:dc:65:e9:66:c7:83:94:c4:d1:4e:ee:ed:64:4b: - 81:f1:1a:ea:5a:64:18:1b:6a:4e:93:d0:13:6c:90: - 60:ca:d2:4e:b7:24:16:f8:b2:08:58:9d:8d:a7:33: - 45:15:34:81:ad:2d:2d:9c:60:ef:f9:2b:98:fe:79: - d3:8d:2c:48:db:12:91:f4:2e:fa:bf:f5:26:c1:82: - 05:80:dd:4c:a8:70:bf:a7:bc:10:34:77:39:db:47: - 04:0f:ed:44:b2:65:46:22:20:88:59:28:0f:c7:0c: - a2:b4:91:a5:a2:aa:ca:05:9f:8a:9b:6e:a3:cb:d4: - a4:e8:24:75:9d:20:81:22:5b:5f:77:3e:c9:f1:1e: - ae:eb:8a:33:8c:27:5b:1e:be:6d:21:1b:42:72:95: - e3:9e:13:03:75:a7:58:d4:be:68:12:fe:63:8e:4b: - 11:7a:34:e7:a3:6b:dd:73:ae:3e:19:9a:ec:91:8b: - 73:af - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 25:54:8b:68:3b:3c:92:ed:1b:c7:a1:62:b3:7c:ff:7e:8c:57: - 7c:67:5c:ea:74:9f:e8:f1:b5:c8:e4:88:0e:c9:a3:f3:28:c4: - 05:af:8f:ad:51:32:66:ae:5d:7a:b1:77:7e:99:06:c8:30:26: - 5a:9f:1e:34:ea:aa:3e:0a:73:a2:40:e3:8f:1a:01:96:a2:6d: - 2f:6c:d9:36:65:98:c8:86:41:0e:ee:0d:aa:da:62:54:62:23: - c6:23:b0:f1:ca:35:7b:e5:4b:d1:ab:80:80:d6:00:2b:19:85: - 9d:e0:3c:3f:13:1e:90:d2:df:c3:31:90:0f:a8:40:08:33:4e: - f7:a4:d0:ed:3e:a4:41:cf:e8:37:49:d1:58:e8:07:3d:4b:a1: - c9:fe:12:07:9a:de:e0:c8:f3:68:d6:31:5d:03:77:2f:fa:b0: - e6:2c:f3:80:59:d0:9b:1b:59:22:cd:7e:58:c6:cf:82:92:c3: - 76:95:78:b2:75:c8:fa:59:9f:0e:c0:e3:6d:70:f9:82:ba:db: - 89:89:81:b7:b9:e1:41:63:51:56:8a:5a:d2:52:c2:19:2f:d9: - c0:9d:19:82:59:79:f9:56:1c:25:81:4d:0a:cd:77:1b:de:85: - 6e:51:04:08:0b:0c:33:65:52:f6:90:a8:82:25:77:a0:fa:5e: - 9c:2a:91:66 ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIRALBrk5LjXI1+7Z3IllnFwmQwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0zMjA5MzAxNzIwMDhaMGsxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMR0wGwYDVQQDDBRUZXN0IEludGVybWVkaWF0ZSBD -QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3pveQ9Si/7wvnmIipC -FUYcjI9HTOnFV5UfZnCTIvCUw7u1W++kb8jHiZV1ugw2v05rqTVHCEOeKWriw/sD -tx+24VFr7XsZx/nOO9xl6WbHg5TE0U7u7WRLgfEa6lpkGBtqTpPQE2yQYMrSTrck -FviyCFidjaczRRU0ga0tLZxg7/krmP55040sSNsSkfQu+r/1JsGCBYDdTKhwv6e8 -EDR3OdtHBA/tRLJlRiIgiFkoD8cMorSRpaKqygWfiptuo8vUpOgkdZ0ggSJbX3c+ -yfEeruuKM4wnWx6+bSEbQnKV454TA3WnWNS+aBL+Y45LEXo056Nr3XOuPhma7JGL -c68CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUF1xF89CsHBBM -i0NEIMTdk8XFGTswDgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFJsmC4qYqbsd -uR8c4xpAM+2OF4irMA0GCSqGSIb3DQEBCwUAA4IBAQAlVItoOzyS7RvHoWKzfP9+ -jFd8Z1zqdJ/o8bXI5IgOyaPzKMQFr4+tUTJmrl16sXd+mQbIMCZanx406qo+CnOi -QOOPGgGWom0vbNk2ZZjIhkEO7g2q2mJUYiPGI7DxyjV75UvRq4CA1gArGYWd4Dw/ -Ex6Q0t/DMZAPqEAIM073pNDtPqRBz+g3SdFY6Ac9S6HJ/hIHmt7gyPNo1jFdA3cv -+rDmLPOAWdCbG1kizX5Yxs+CksN2lXiydcj6WZ8OwONtcPmCutuJiYG3ueFBY1FW -ilrSUsIZL9nAnRmCWXn5VhwlgU0KzXcb3oVuUQQICwwzZVL2kKiCJXeg+l6cKpFm ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/policies_sanity_check.pem b/src/pki/testdata/ssl/certificates/policies_sanity_check.pem deleted file mode 100644 index 0366c54..0000000 --- a/src/pki/testdata/ssl/certificates/policies_sanity_check.pem +++ /dev/null @@ -1,93 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 3f:da:e4:08:b7:6c:7c:c7:71:61:c1:d6:0f:c0:95:bc:69:fb:bb:12 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Validity - Not Before: Oct 3 17:20:09 2022 GMT - Not After : Sep 30 17:20:09 2032 GMT - Subject: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:a4:cd:2c:e1:f6:f0:26:79:e1:27:a7:a6:45:21: - e1:8f:2a:40:82:18:cf:e0:2b:63:fa:7a:d9:eb:34: - 7a:1a:0c:eb:63:b9:73:5d:64:e0:3e:95:c7:6a:08: - ee:c5:85:d1:07:f2:9f:36:0e:79:13:bb:fd:26:80: - b7:1e:fc:63:2b:d8:a0:04:be:38:ac:e9:74:76:32: - 13:4d:0d:5b:b1:ba:4a:46:f1:3e:ae:1d:42:36:93: - 7f:1b:72:da:be:3b:c8:c6:d9:ac:57:2a:bb:69:60: - d7:45:3d:4d:5b:ee:ef:ce:c8:4a:1c:21:24:69:15: - c5:28:02:ec:48:1d:39:25:3b:09:d7:cb:9f:4c:c2: - 7a:c0:db:0b:c8:a3:86:ae:54:8c:1d:8b:a3:34:f8: - 4d:49:8b:9c:2b:98:00:9a:08:7b:b8:4c:6a:60:75: - cd:38:ac:f0:d2:b8:67:1b:88:cf:4c:2f:be:1c:e7: - 30:55:2e:db:ab:ec:01:f8:12:af:87:ee:16:f9:47: - 02:68:c6:2a:cb:a3:89:1d:39:bf:dc:9b:92:5f:60: - 6f:5b:8a:60:f7:2f:4c:0c:23:9b:f5:3c:f9:0f:3c: - 3c:46:88:35:12:5d:1f:34:52:e6:8b:f1:fc:6d:57: - ac:86:1f:f4:d2:21:eb:68:c3:0f:b4:62:9e:0f:4b: - ad:f7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Certificate Policies: - Policy: 1.2.3.4.5 - Policy: 1.3.5.8.12 - CPS: http://cps.example.com/foo - User Notice: - Organization: Organization Name - Numbers: 1, 2, 3, 4 - Explicit Text: Explicit Text Here - User Notice: - Explicit Text: Explicit Text Two - User Notice: - Organization: Organization Name Two - Number: 42 - X509v3 Subject Key Identifier: - 84:A7:AA:E2:63:F0:DF:98:C6:90:F3:67:27:49:0D:A8:F5:E2:EE:DF - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 91:ba:b8:c9:e1:a5:45:bf:dc:3e:30:39:e2:68:25:34:8b:d8: - 90:5a:30:11:7d:68:ce:8c:97:23:fb:fc:91:a5:37:a9:c1:24: - f2:7d:92:da:69:7b:f6:3c:2f:60:ed:b8:9b:cf:93:66:54:62: - 03:ee:3d:8c:6a:b4:4a:70:9a:ef:b1:9c:a2:a9:bb:79:9a:84: - 72:da:b3:44:64:8e:97:76:c6:1e:85:fa:10:3f:76:fd:14:17: - 11:7b:83:cf:82:68:5b:86:81:d8:a6:5d:26:b2:e2:cb:68:fe: - 96:27:bc:a6:99:71:30:35:df:de:67:ea:14:81:44:42:de:d8: - 55:17:ae:2e:c5:1a:a5:44:3c:f9:cd:02:55:93:c8:b4:88:80: - 05:f9:15:93:8e:f3:2a:0d:3d:32:f0:a1:60:d6:f3:02:df:cd: - fc:cb:d7:29:34:16:cc:c8:ac:48:2b:a4:03:c0:bb:df:a8:df: - b8:54:0f:8e:e9:7f:fa:91:fb:33:14:0f:d6:08:ae:b2:81:fe: - f3:63:1f:8b:0b:81:b9:44:70:c0:cd:34:58:a2:4b:d8:0f:8b: - 6f:15:5a:d2:10:34:c8:1d:18:f8:ba:d9:ea:b9:ce:8d:d4:a9: - e4:52:b5:cf:8a:3d:5a:eb:68:f3:db:c2:83:c2:98:d9:bc:d0: - 80:cf:1e:b8 ------BEGIN CERTIFICATE----- -MIIETTCCAzWgAwIBAgIUP9rkCLdsfMdxYcHWD8CVvGn7uxIwDQYJKoZIhvcNAQEL -BQAwYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM -DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMMCTEyNy4w -LjAuMTAeFw0yMjEwMDMxNzIwMDlaFw0zMjA5MzAxNzIwMDlaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkzSzh9vAmeeEnp6ZFIeGPKkCCGM/gK2P6 -etnrNHoaDOtjuXNdZOA+lcdqCO7FhdEH8p82DnkTu/0mgLce/GMr2KAEvjis6XR2 -MhNNDVuxukpG8T6uHUI2k38bctq+O8jG2axXKrtpYNdFPU1b7u/OyEocISRpFcUo -AuxIHTklOwnXy59MwnrA2wvIo4auVIwdi6M0+E1Ji5wrmACaCHu4TGpgdc04rPDS -uGcbiM9ML74c5zBVLtur7AH4Eq+H7hb5RwJoxirLo4kdOb/cm5JfYG9bimD3L0wM -I5v1PPkPPDxGiDUSXR80UuaL8fxtV6yGH/TSIetoww+0Yp4PS633AgMBAAGjgf4w -gfswgdkGA1UdIASB0TCBzjAGBgQqAwQFMIHDBgQrBQgMMIG6MCYGCCsGAQUFBwIB -FhpodHRwOi8vY3BzLmV4YW1wbGUuY29tL2ZvbzBDBggrBgEFBQcCAjA3MCEaEU9y -Z2FuaXphdGlvbiBOYW1lMAwCAQECAQICAQMCAQQaEkV4cGxpY2l0IFRleHQgSGVy -ZTAfBggrBgEFBQcCAjATGhFFeHBsaWNpdCBUZXh0IFR3bzAqBggrBgEFBQcCAjAe -MBwaFU9yZ2FuaXphdGlvbiBOYW1lIFR3bzADAgEqMB0GA1UdDgQWBBSEp6riY/Df -mMaQ82cnSQ2o9eLu3zANBgkqhkiG9w0BAQsFAAOCAQEAkbq4yeGlRb/cPjA54mgl -NIvYkFowEX1ozoyXI/v8kaU3qcEk8n2S2ml79jwvYO24m8+TZlRiA+49jGq0SnCa -77Gcoqm7eZqEctqzRGSOl3bGHoX6ED92/RQXEXuDz4JoW4aB2KZdJrLiy2j+lie8 -pplxMDXf3mfqFIFEQt7YVReuLsUapUQ8+c0CVZPItIiABfkVk47zKg09MvChYNbz -At/N/MvXKTQWzMisSCukA8C736jfuFQPjul/+pH7MxQP1giusoH+82MfiwuBuURw -wM00WKJL2A+LbxVa0hA0yB0Y+LrZ6rnOjdSp5FK1z4o9Wuto89vCg8KY2bzQgM8e -uA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/post_june_2016.pem b/src/pki/testdata/ssl/certificates/post_june_2016.pem deleted file mode 100644 index 0a74d9f..0000000 --- a/src/pki/testdata/ssl/certificates/post_june_2016.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:81 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Jun 1 00:00:00 2016 GMT - Not After : Jul 3 00:00:00 2017 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ac:bd:50:56:9a:11:59:5d:a3:61:c3:5b:0f:7b: - b7:73:68:87:c8:7a:2a:f6:97:e1:09:1f:35:bb:b4: - 30:ad:75:ab:6d:ae:ad:5e:81:b8:36:19:68:3b:63: - 1e:b8:08:67:b8:bf:fe:49:8c:5e:a6:20:f7:86:d1: - d4:42:db:4a:93:61:28:76:ed:86:2b:51:79:a8:bc: - 0e:68:8c:d2:2b:9b:5b:ef:a0:20:85:4c:94:36:6f: - 58:41:a5:5c:f3:2e:8d:8f:72:0b:f9:73:14:26:bf: - b7:cd:62:fd:3b:7d:cf:2a:7a:64:47:69:85:c1:97: - 08:b6:84:47:92:fc:32:8f:2c:c6:ad:5b:66:d5:d9: - 1d:a2:5b:46:08:15:4d:fb:22:e4:97:a2:f9:1a:f1: - 98:c2:56:05:f3:90:22:9d:3a:9e:bd:b0:62:b0:92: - 48:a5:fe:51:50:00:d2:c0:79:c9:b0:d7:8a:99:16: - 7c:e1:cb:03:75:7f:6f:ff:33:1d:55:37:fb:0b:13: - 0f:f1:9e:0b:42:06:9d:4e:45:49:5a:17:98:3b:e1: - a0:46:5a:55:8c:d6:f3:fa:4f:f0:e3:d1:52:2f:46: - e2:5e:b1:cc:c7:0e:05:dc:7d:73:66:f7:92:9c:62: - 02:87:fe:ca:bf:43:4a:be:a0:0f:41:4d:2d:47:ea: - 9a:09 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 77:54:D3:17:CC:0A:33:63:BC:8C:17:18:29:3D:27:8F:27:44:AC:23 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 51:f6:3a:89:7e:50:32:e0:d6:d3:9a:0a:6a:5d:65:22:97:e6: - fd:c6:cd:39:08:e8:ea:6d:68:f5:04:31:ba:70:26:15:9b:25: - 4c:24:55:33:6e:69:95:2a:22:07:2c:8a:b7:b5:43:f9:73:c5: - 8f:70:79:de:a9:f6:36:bb:f8:ba:c3:7c:d1:bf:d9:29:da:be: - 16:46:d6:5d:45:f1:b1:54:db:58:08:72:25:3e:be:15:1f:8b: - c7:91:a4:f2:9b:49:11:8b:1f:d0:99:fd:47:60:1b:ec:0e:2a: - 6b:e0:2b:2f:8d:a8:cd:2e:b1:af:72:fa:7d:15:8c:95:79:be: - c2:3e:83:60:84:f2:0e:3f:41:b5:3f:81:a5:04:ec:93:36:40: - 48:54:fd:8e:d8:ba:7d:6c:bc:e0:25:25:b8:74:d6:3f:e6:03: - 70:17:dc:ba:b6:48:fb:f0:e3:25:91:94:66:99:d9:4d:ad:c4: - 0e:bc:0b:03:63:f5:44:0b:cb:47:a4:ad:c3:c7:5e:30:d5:f4: - fc:f8:32:39:88:d5:79:65:49:3f:45:2f:1c:9c:b7:4d:08:12: - f3:c8:d8:87:fa:44:78:a1:41:ab:54:98:ad:43:48:8e:b3:0a: - 01:23:21:e3:84:0a:f8:5a:a8:ab:13:fb:f0:c9:54:74:ad:72: - 61:52:e9:d9 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwoEwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNjA2MDEwMDAwMDBaFw0xNzA3MDMwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsvVBWmhFZXaNhw1sPe7dzaIfIeir2l+EJ -HzW7tDCtdattrq1egbg2GWg7Yx64CGe4v/5JjF6mIPeG0dRC20qTYSh27YYrUXmo -vA5ojNIrm1vvoCCFTJQ2b1hBpVzzLo2Pcgv5cxQmv7fNYv07fc8qemRHaYXBlwi2 -hEeS/DKPLMatW2bV2R2iW0YIFU37IuSXovka8ZjCVgXzkCKdOp69sGKwkkil/lFQ -ANLAecmw14qZFnzhywN1f2//Mx1VN/sLEw/xngtCBp1ORUlaF5g74aBGWlWM1vP6 -T/Dj0VIvRuJesczHDgXcfXNm95KcYgKH/sq/Q0q+oA9BTS1H6poJAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBR3VNMXzAozY7yMFxgpPSePJ0SsIzAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAUfY6iX5QMuDW05oKal1lIpfm/cbNOQjo6m1o9QQxunAmFZslTCRVM25plSoi -ByyKt7VD+XPFj3B53qn2Nrv4usN80b/ZKdq+FkbWXUXxsVTbWAhyJT6+FR+Lx5Gk -8ptJEYsf0Jn9R2Ab7A4qa+ArL42ozS6xr3L6fRWMlXm+wj6DYITyDj9BtT+BpQTs -kzZASFT9jti6fWy84CUluHTWP+YDcBfcurZI+/DjJZGUZpnZTa3EDrwLA2P1RAvL -R6Stw8deMNX0/PgyOYjVeWVJP0UvHJy3TQgS88jYh/pEeKFBq1SYrUNIjrMKASMh -44QK+FqoqxP78MlUdK1yYVLp2Q== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/pre_br_validity_bad_121.pem b/src/pki/testdata/ssl/certificates/pre_br_validity_bad_121.pem deleted file mode 100644 index c0ac134..0000000 --- a/src/pki/testdata/ssl/certificates/pre_br_validity_bad_121.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:78 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Jan 1 00:00:00 2008 GMT - Not After : May 1 00:00:00 2018 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ba:d0:97:d7:72:13:ea:8f:1a:c0:2b:11:e7:a9: - d1:dd:7c:88:d2:a6:68:c0:51:1d:ff:b3:0b:88:de: - f3:95:12:5a:74:7e:21:25:aa:04:cf:e2:9f:8f:9c: - 0a:38:e5:df:77:7a:47:73:46:2b:c7:bf:b9:5a:6b: - 5a:0d:75:d4:32:59:6d:45:ba:02:10:34:ec:6b:6a: - 86:26:67:78:19:e7:a5:87:a4:88:4c:a9:a4:ec:94: - 19:d0:ee:b6:49:37:df:eb:63:e8:4d:f2:09:41:56: - be:7c:57:17:66:06:76:e9:35:1b:c2:9e:0e:b7:72: - 35:e7:82:6f:85:20:4a:75:6f:ff:84:09:fa:73:47: - e7:40:8c:3f:05:f6:73:8c:f7:56:fb:1e:53:a7:ba: - 6c:3f:12:e0:34:21:8e:e0:b4:19:36:6e:73:86:22: - 5e:b2:89:17:50:c3:a6:03:d1:e0:8e:d3:bf:4e:e9: - 11:08:21:61:f0:f1:42:ef:56:f1:ad:e4:d7:b3:4d: - 6a:8a:b2:0c:ea:99:ab:a2:e5:64:f5:d0:ef:7b:1d: - 98:f8:8d:20:29:46:91:0b:bc:a8:1b:b7:50:a3:2e: - 0f:c9:0a:a1:61:cb:7f:77:9d:a0:96:ee:b1:b1:ca: - 2d:cc:f3:f6:16:21:16:2a:ee:e8:10:7a:e9:e2:7d: - 4d:21 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 41:16:79:6C:BA:A5:55:A1:5B:53:B3:80:E8:62:C8:1B:CF:E9:A5:6C - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 7e:9b:7f:2c:42:3f:7e:34:6b:dc:31:35:cd:e6:b4:b0:ac:99: - 80:fb:90:37:73:b8:fb:50:8d:e5:d5:6f:e4:80:22:3e:89:d3: - fd:78:9e:8c:9e:6e:6d:32:3c:b7:97:ef:32:dd:86:a1:ed:44: - 91:fc:60:55:bd:46:c4:67:f4:00:ce:a7:e5:65:fb:58:b0:75: - 8e:81:51:b3:46:a5:b0:5f:fe:aa:69:17:5b:ce:da:7b:90:7b: - 07:4d:f6:eb:0b:3f:b6:bd:81:d5:e5:55:43:1e:de:82:30:5d: - ff:1c:49:df:4b:7f:e5:5c:5a:e7:d1:6a:6f:8f:ab:53:fc:18: - 38:8f:8e:07:ae:24:24:7f:10:73:2b:63:3e:9e:f7:dd:90:de: - 84:df:70:e2:bb:73:f5:77:04:aa:ab:b5:bb:e6:fa:5c:4a:2b: - 67:4a:61:2c:bb:58:9d:d3:42:6b:0d:90:b1:14:6a:ee:13:c2: - 9f:21:45:ba:c7:7c:7b:a0:20:0b:13:b5:81:36:ff:8f:32:2e: - f0:2b:4e:e7:6d:cd:28:9a:49:40:69:52:c5:5f:89:eb:04:10: - 07:3a:17:1e:f6:95:35:13:67:94:fe:65:17:4f:6e:bc:23:96: - d8:11:21:ce:70:af:97:ef:f5:c8:fa:e3:e3:01:72:1a:f7:4e: - 73:8d:10:a6 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwngwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0wODAxMDEwMDAwMDBaFw0xODA1MDEwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC60JfXchPqjxrAKxHnqdHdfIjSpmjAUR3/ -swuI3vOVElp0fiElqgTP4p+PnAo45d93ekdzRivHv7laa1oNddQyWW1FugIQNOxr -aoYmZ3gZ56WHpIhMqaTslBnQ7rZJN9/rY+hN8glBVr58VxdmBnbpNRvCng63cjXn -gm+FIEp1b/+ECfpzR+dAjD8F9nOM91b7HlOnumw/EuA0IY7gtBk2bnOGIl6yiRdQ -w6YD0eCO079O6REIIWHw8ULvVvGt5NezTWqKsgzqmaui5WT10O97HZj4jSApRpEL -vKgbt1CjLg/JCqFhy393naCW7rGxyi3M8/YWIRYq7ugQeunifU0hAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRBFnlsuqVVoVtTs4DoYsgbz+mlbDAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAfpt/LEI/fjRr3DE1zea0sKyZgPuQN3O4+1CN5dVv5IAiPonT/XiejJ5ubTI8 -t5fvMt2Goe1EkfxgVb1GxGf0AM6n5WX7WLB1joFRs0alsF/+qmkXW87ae5B7B032 -6ws/tr2B1eVVQx7egjBd/xxJ30t/5Vxa59Fqb4+rU/wYOI+OB64kJH8QcytjPp73 -3ZDehN9w4rtz9XcEqqu1u+b6XEorZ0phLLtYndNCaw2QsRRq7hPCnyFFusd8e6Ag -CxO1gTb/jzIu8CtO523NKJpJQGlSxV+J6wQQBzoXHvaVNRNnlP5lF09uvCOW2BEh -znCvl+/1yPrj4wFyGvdOc40Qpg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/pre_br_validity_bad_2020.pem b/src/pki/testdata/ssl/certificates/pre_br_validity_bad_2020.pem deleted file mode 100644 index 54ee311..0000000 --- a/src/pki/testdata/ssl/certificates/pre_br_validity_bad_2020.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:79 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: May 1 00:00:00 2012 GMT - Not After : Jul 3 00:00:00 2019 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e8:01:53:38:ac:8f:22:51:a3:e6:99:dc:5c:61: - 81:49:da:e3:d6:19:94:5e:20:32:1e:d9:0d:8a:ad: - d7:f6:76:fc:91:1a:1a:a0:82:77:6b:9c:22:7d:80: - 9a:bc:09:06:c6:16:4c:96:47:35:de:4a:63:0a:b2: - f4:b2:9d:c8:8e:9c:ba:de:0b:05:cb:16:53:c6:eb: - b1:97:d2:fd:ce:a9:9b:87:c6:f3:65:83:6f:02:d0: - a2:f6:70:93:0e:e4:b4:5a:ea:83:93:5d:db:16:da: - 54:e2:78:40:43:e6:c2:74:33:2a:f2:0f:18:a5:1f: - 78:95:36:b4:ab:b0:58:dc:e8:e8:2a:74:ae:45:d3: - 55:48:d2:64:39:d0:7d:f9:8f:96:d9:d1:77:a8:bb: - 54:1d:d0:01:12:f3:68:48:83:65:6a:22:86:4a:3c: - f2:28:a6:d4:a6:6c:27:1b:44:4e:67:60:36:64:10: - 54:e2:ad:f4:fb:b7:9a:a5:93:13:2d:9e:44:22:7b: - 84:f6:61:6a:6e:22:ff:cd:06:84:c8:e4:e2:14:fe: - d3:33:1a:f6:94:a3:6d:9d:af:e7:7e:da:02:31:1c: - c6:54:60:72:46:b7:5b:56:e5:31:f5:d8:57:33:d7: - 2e:2e:00:ae:2a:c9:be:f0:51:c4:8b:eb:59:43:12: - 90:fb - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 55:1A:0A:BD:6F:54:C0:58:F3:8A:C4:A3:2E:4D:39:9B:BB:E4:48:AD - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 8e:83:f2:8f:31:70:5a:ce:64:82:b3:9e:89:e8:0f:5a:d1:bc: - 55:c1:0d:40:7b:1b:21:94:ba:5a:e3:fc:16:28:b8:92:2b:aa: - 85:2b:66:8a:43:2e:05:f1:38:b2:20:f5:8e:e5:7a:ef:62:29: - 70:c5:03:c9:48:3f:1c:59:83:7d:8b:64:e6:db:0e:4c:c2:18: - a0:85:a7:3c:18:db:ac:92:46:96:c0:f2:83:3e:e7:53:ce:5a: - 13:90:4b:22:86:42:6b:a1:c4:1d:e6:b8:50:aa:51:c1:74:07: - 16:d8:fe:e2:3a:9a:79:52:4a:a7:40:bb:14:d4:56:ff:01:d5: - 0e:5c:c5:ec:1b:fa:4e:32:4a:1a:12:6d:d6:3f:0b:1c:e7:86: - 73:e2:24:97:90:ad:50:4e:c8:af:f6:b5:75:ce:91:91:e5:bd: - 92:c3:d4:d9:be:c0:82:8c:de:3c:98:eb:12:5b:a6:7b:d5:94: - 7d:69:2c:c2:fa:52:62:65:a7:67:76:4f:c7:73:6f:5d:47:b9: - 8d:39:1d:2f:80:bf:ee:5c:48:83:42:a9:09:5b:7d:a1:0a:4f: - c2:b6:4c:0d:ba:4a:01:25:95:f8:98:4b:93:be:dc:63:bf:aa: - f9:8f:77:11:ea:56:ea:12:d4:6d:57:7e:b1:e8:3b:6a:3f:69: - ee:ec:ea:66 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnkwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xMjA1MDEwMDAwMDBaFw0xOTA3MDMwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDoAVM4rI8iUaPmmdxcYYFJ2uPWGZReIDIe -2Q2Krdf2dvyRGhqggndrnCJ9gJq8CQbGFkyWRzXeSmMKsvSynciOnLreCwXLFlPG -67GX0v3OqZuHxvNlg28C0KL2cJMO5LRa6oOTXdsW2lTieEBD5sJ0MyryDxilH3iV -NrSrsFjc6OgqdK5F01VI0mQ50H35j5bZ0Xeou1Qd0AES82hIg2VqIoZKPPIoptSm -bCcbRE5nYDZkEFTirfT7t5qlkxMtnkQie4T2YWpuIv/NBoTI5OIU/tMzGvaUo22d -r+d+2gIxHMZUYHJGt1tW5TH12Fcz1y4uAK4qyb7wUcSL61lDEpD7AgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRVGgq9b1TAWPOKxKMuTTmbu+RIrTAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAjoPyjzFwWs5kgrOeiegPWtG8VcENQHsbIZS6WuP8Fii4kiuqhStmikMuBfE4 -siD1juV672IpcMUDyUg/HFmDfYtk5tsOTMIYoIWnPBjbrJJGlsDygz7nU85aE5BL -IoZCa6HEHea4UKpRwXQHFtj+4jqaeVJKp0C7FNRW/wHVDlzF7Bv6TjJKGhJt1j8L -HOeGc+Ikl5CtUE7Ir/a1dc6RkeW9ksPU2b7AgozePJjrElume9WUfWkswvpSYmWn -Z3ZPx3NvXUe5jTkdL4C/7lxIg0KpCVt9oQpPwrZMDbpKASWV+JhLk77cY7+q+Y93 -EepW6hLUbVd+seg7aj9p7uzqZg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/pre_br_validity_ok.pem b/src/pki/testdata/ssl/certificates/pre_br_validity_ok.pem deleted file mode 100644 index 94a5268..0000000 --- a/src/pki/testdata/ssl/certificates/pre_br_validity_ok.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:77 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Jan 1 00:00:00 2008 GMT - Not After : Jan 1 00:00:00 2015 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ba:59:8b:7c:51:b9:fa:d1:33:7f:52:6a:0e:e4: - f8:aa:d2:bc:ca:87:8e:ad:c5:23:5e:4f:64:c0:44: - 5a:68:c9:e3:b9:10:a0:ce:95:c5:96:14:3f:92:7b: - 19:d1:f4:a0:b5:1e:20:ad:10:6b:35:9d:87:06:a2: - d5:52:26:d8:12:9d:e4:9b:11:25:7c:7d:b8:16:b4: - 97:35:c8:31:e2:bc:6b:79:5b:d8:58:12:5a:ba:0a: - ab:98:d7:6e:96:56:cd:54:53:ea:49:12:be:7e:ef: - b5:a6:9e:f2:5a:7a:27:2e:71:40:38:94:dd:7a:e3: - a4:0e:ba:54:6d:6a:fd:00:c2:dd:15:81:74:83:56: - 5e:27:7e:3f:2e:47:0e:3b:ec:85:4b:f9:7a:f8:7b: - 1a:96:4c:d8:c9:ee:bb:20:8a:25:83:38:26:f1:d0: - 0c:f0:22:46:4b:9b:87:91:22:eb:a2:e3:84:57:e0: - a3:cc:90:de:3a:43:41:40:a0:8e:bd:c8:2d:24:ea: - 2a:92:11:bf:b7:7c:77:e9:9a:d3:22:da:83:d1:6b: - a6:29:f4:3b:cd:d9:6b:25:d7:2f:d4:67:60:65:da: - d5:ba:9e:36:1d:33:b2:e6:e2:b8:84:ea:99:1d:5d: - 69:43:99:af:35:63:4c:99:bc:d4:39:80:b4:88:f3: - 59:07 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 7C:9E:00:01:F2:2E:C7:FF:98:BA:C8:E9:DA:7D:77:F8:9D:91:B1:E9 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - c6:7c:e6:21:ca:91:23:8e:0c:28:5c:52:c8:99:9e:4a:0c:f0: - f9:53:ad:ce:30:0c:d3:46:f3:0a:03:11:3c:e8:80:38:4c:40: - ca:a3:de:21:9c:0f:c9:5d:35:ce:ca:b4:88:15:56:f3:3f:6b: - 7c:ac:2f:0b:54:69:2f:43:50:56:b9:6c:72:5e:d5:03:77:fe: - 18:25:bd:9b:5c:6f:70:20:52:aa:66:49:00:12:4c:89:54:eb: - da:c4:7e:55:1d:d7:46:db:d3:98:29:eb:56:f0:0b:e8:f8:03: - 4a:3f:21:25:e6:b9:e4:52:78:20:57:7c:33:2f:e2:24:e7:ae: - 1a:e9:45:ae:3f:17:d7:0b:38:2f:0e:c3:bf:b6:39:37:e8:f9: - ca:fe:d2:12:d4:d2:88:f8:d9:9e:3b:9b:fa:2e:18:3b:8b:ac: - ef:2e:2a:35:d5:5e:b8:f9:4f:ec:6f:0c:af:d6:f3:8e:ef:78: - b7:d1:29:0f:7f:f8:08:85:a6:56:83:84:a3:df:c4:41:95:84: - 3a:0d:10:31:36:d3:01:f9:ee:42:87:61:85:06:7f:e2:b6:2c: - d1:7b:ba:24:b9:34:a4:b1:ec:2a:6f:06:b3:b0:db:2b:c1:aa: - 82:a7:ae:9b:09:bb:36:22:76:76:55:0f:e5:2b:25:d8:34:1c: - b3:0a:f0:ec ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwncwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0wODAxMDEwMDAwMDBaFw0xNTAxMDEwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6WYt8Ubn60TN/UmoO5Piq0rzKh46txSNe -T2TARFpoyeO5EKDOlcWWFD+SexnR9KC1HiCtEGs1nYcGotVSJtgSneSbESV8fbgW -tJc1yDHivGt5W9hYElq6CquY126WVs1UU+pJEr5+77WmnvJaeicucUA4lN1646QO -ulRtav0Awt0VgXSDVl4nfj8uRw477IVL+Xr4exqWTNjJ7rsgiiWDOCbx0AzwIkZL -m4eRIuui44RX4KPMkN46Q0FAoI69yC0k6iqSEb+3fHfpmtMi2oPRa6Yp9DvN2Wsl -1y/UZ2Bl2tW6njYdM7Lm4riE6pkdXWlDma81Y0yZvNQ5gLSI81kHAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBR8ngAB8i7H/5i6yOnafXf4nZGx6TAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAxnzmIcqRI44MKFxSyJmeSgzw+VOtzjAM00bzCgMRPOiAOExAyqPeIZwPyV01 -zsq0iBVW8z9rfKwvC1RpL0NQVrlscl7VA3f+GCW9m1xvcCBSqmZJABJMiVTr2sR+ -VR3XRtvTmCnrVvAL6PgDSj8hJea55FJ4IFd8My/iJOeuGulFrj8X1ws4Lw7Dv7Y5 -N+j5yv7SEtTSiPjZnjub+i4YO4us7y4qNdVeuPlP7G8Mr9bzju94t9EpD3/4CIWm -VoOEo9/EQZWEOg0QMTbTAfnuQodhhQZ/4rYs0Xu6JLk0pLHsKm8Gs7DbK8Gqgqeu -mwm7NiJ2dlUP5Ssl2DQcswrw7A== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/pre_june_2016.pem b/src/pki/testdata/ssl/certificates/pre_june_2016.pem deleted file mode 100644 index 3d16179..0000000 --- a/src/pki/testdata/ssl/certificates/pre_june_2016.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:7d - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: May 1 00:00:00 2016 GMT - Not After : Jul 3 00:00:00 2017 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:8d:70:9b:0b:12:3d:e5:81:70:33:5f:fd:28:2d: - 06:31:54:c4:f3:b4:27:c0:34:e6:d1:04:c3:e3:62: - fc:1e:b1:54:81:07:f7:dd:a6:5d:31:74:6d:2d:a9: - f1:1b:e2:23:49:65:fe:1f:76:ab:5c:19:c2:ec:ae: - f0:98:5d:f6:38:06:79:70:e5:d2:d5:e3:b3:a4:35: - d5:cf:1b:fe:40:14:34:ec:4e:f3:3a:9f:95:de:d9: - a2:fe:b5:ae:55:66:96:6f:a2:e8:5b:8e:77:d6:e4: - 6f:58:46:dd:f7:4e:c9:94:fc:2c:68:e9:93:b3:e3: - 29:dc:b3:93:43:51:57:55:4d:83:97:46:76:6c:e5: - 6c:a8:04:cf:ab:7f:a4:dc:95:6b:53:7a:c4:03:bb: - 31:5a:1a:cc:21:94:c9:24:c4:de:7c:f5:97:9b:97: - 37:50:33:6c:26:30:f6:90:cb:46:e4:b2:c6:9b:d2: - 9c:19:2e:ce:25:78:df:ad:84:6c:d4:04:cf:7f:20: - 47:ad:d8:c1:b2:2b:4a:29:71:f0:f6:fa:fb:31:ca: - ca:f4:4c:a8:81:dd:8c:d4:e6:a0:ac:2a:22:9a:01: - 32:34:27:e3:8c:61:b1:1c:a9:d3:39:48:4c:13:42: - 44:2e:63:a2:f3:cf:54:e5:6b:af:ba:6e:06:49:a1: - 94:0f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 35:B7:03:06:47:D2:88:52:F9:CD:7F:E1:27:C4:4D:B9:22:04:19:75 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 3e:e6:74:d5:4a:48:14:04:4e:4a:c4:a2:40:28:27:87:55:72: - e5:e8:76:a7:2a:fa:7e:fe:e0:fc:20:60:97:7a:b5:80:4f:97: - 6e:bf:a8:21:05:61:6c:7b:ec:6c:b7:09:75:d4:45:ad:00:ae: - c8:ab:a9:8a:cd:53:c1:af:5b:61:1f:0d:7f:98:24:1f:28:cf: - 8f:78:ad:f0:41:02:9e:05:98:d8:2d:dc:c3:43:06:98:10:45: - 69:b9:fd:7e:f4:7a:19:62:26:b6:b3:be:8f:ef:33:1e:93:cc: - e7:3d:85:2c:05:5b:d6:69:e5:44:25:c4:cb:ed:40:14:e1:52: - c1:c9:b5:a9:3c:50:76:76:ca:82:b3:97:53:bc:87:3b:3c:1a: - 07:78:d0:e5:1d:57:1e:4d:a5:77:a9:97:f7:9b:ce:e1:ae:b7: - 38:3e:13:4c:3b:58:34:cf:7e:86:c1:37:a8:59:4f:09:64:7f: - d7:bc:d7:a9:a4:0f:1c:16:19:11:ec:ca:7b:f1:bc:4d:a6:aa: - 1f:f4:1b:a1:40:3d:bc:d4:35:f1:5b:ce:cd:66:aa:92:57:b4: - b1:61:da:3c:2e:9e:5c:68:fc:47:a6:4e:39:63:85:ba:d7:8e: - 1f:89:ca:7c:6b:a2:92:36:1b:c9:0b:86:aa:2d:1f:b4:79:cf: - af:0d:b4:48 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwn0wDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xNjA1MDEwMDAwMDBaFw0xNzA3MDMwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCNcJsLEj3lgXAzX/0oLQYxVMTztCfANObR -BMPjYvwesVSBB/fdpl0xdG0tqfEb4iNJZf4fdqtcGcLsrvCYXfY4Bnlw5dLV47Ok -NdXPG/5AFDTsTvM6n5Xe2aL+ta5VZpZvouhbjnfW5G9YRt33TsmU/Cxo6ZOz4ync -s5NDUVdVTYOXRnZs5WyoBM+rf6TclWtTesQDuzFaGswhlMkkxN589ZeblzdQM2wm -MPaQy0bkssab0pwZLs4leN+thGzUBM9/IEet2MGyK0opcfD2+vsxysr0TKiB3YzU -5qCsKiKaATI0J+OMYbEcqdM5SEwTQkQuY6Lzz1Tla6+6bgZJoZQPAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ1twMGR9KIUvnNf+EnxE25IgQZdTAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAPuZ01UpIFAROSsSiQCgnh1Vy5eh2pyr6fv7g/CBgl3q1gE+Xbr+oIQVhbHvs -bLcJddRFrQCuyKupis1Twa9bYR8Nf5gkHyjPj3it8EECngWY2C3cw0MGmBBFabn9 -fvR6GWImtrO+j+8zHpPM5z2FLAVb1mnlRCXEy+1AFOFSwcm1qTxQdnbKgrOXU7yH -OzwaB3jQ5R1XHk2ld6mX95vO4a63OD4TTDtYNM9+hsE3qFlPCWR/17zXqaQPHBYZ -EezKe/G8TaaqH/QboUA9vNQ18VvOzWaqkle0sWHaPC6eXGj8R6ZOOWOFuteOH4nK -fGuikjYbyQuGqi0ftHnPrw20SA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-1024-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-1024-rsa-intermediate.pem deleted file mode 100644 index 728be76..0000000 --- a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-1024-rsa-intermediate.pem +++ /dev/null @@ -1,55 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4 (0x4) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=1024 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:ff:00:45:d3:4d:47:ed:e4:11:26:af:71:52:b5: - e5:75:df:a6:54:84:39:14:97:6f:76:af:ef:3f:c3: - 77:a5:1f:69:30:b8:7b:ce:ef:fc:89:5e:f4:3f:80: - 77:66:35:24:67:16:bc:0f:94:51:99:e4:47:74:d3: - 53:5c:df:64:c7 - ASN1 OID: prime256v1 - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 2F:C0:D5:37:41:1C:7D:F1:C6:A4:61:44:77:D1:8F:63:EA:00:E2:12 - X509v3 Authority Key Identifier: - keyid:AB:91:E6:2B:C9:C1:2E:7B:A0:65:F1:D4:8A:CE:03:4D:F4:7A:18:13 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 10:cc:07:af:a0:dc:50:d7:9e:27:01:1c:39:69:1b:9b:a6:8e: - c6:18:75:4a:30:49:a8:7f:a7:4e:72:6a:e2:ef:72:b1:b2:40: - 32:11:9d:f0:71:df:64:7e:3d:8c:63:4a:a2:01:f8:4e:e4:15: - db:e3:5a:03:cf:d2:10:cf:19:36:e0:cd:2c:c3:56:45:78:86: - 5f:4e:54:36:fe:94:00:59:d8:8b:6b:6d:02:8f:f4:4b:d4:98: - 8a:6f:20:4c:5f:b5:72:0c:5f:f4:f8:c4:19:a7:1c:36:de:3b: - be:de:ef:2e:4f:96:7a:6a:f4:47:23:7f:cc:c6:8f:27:fe:81: - a6:85 ------BEGIN CERTIFICATE----- -MIICODCCAaGgAwIBAgIBBDANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB0xMDI0 -IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTAeFw0xNjA0MjIyMDI4NDFaFw0yNjA0 -MjAyMDI4NDFaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw -FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQD -DAkxMjcuMC4wLjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT/AEXTTUft5BEm -r3FSteV136ZUhDkUl292r+8/w3elH2kwuHvO7/yJXvQ/gHdmNSRnFrwPlFGZ5Ed0 -01Nc32THo4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUL8DVN0EcffHGpGFE -d9GPY+oA4hIwHwYDVR0jBBgwFoAUq5HmK8nBLnugZfHUis4DTfR6GBMwHQYDVR0l -BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZI -hvcNAQELBQADgYEAEMwHr6DcUNeeJwEcOWkbm6aOxhh1SjBJqH+nTnJq4u9ysbJA -MhGd8HHfZH49jGNKogH4TuQV2+NaA8/SEM8ZNuDNLMNWRXiGX05UNv6UAFnYi2tt -Ao/0S9SYim8gTF+1cgxf9PjEGaccNt47vt7vLk+Wemr0RyN/zMaPJ/6BpoU= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-2048-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-2048-rsa-intermediate.pem deleted file mode 100644 index 49bbf60..0000000 --- a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-2048-rsa-intermediate.pem +++ /dev/null @@ -1,65 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4 (0x4) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:36:60:16:6f:f7:3e:5f:1f:63:7e:43:cb:a5:a9: - 77:57:77:86:b7:94:b0:83:03:b4:7f:47:25:88:cf: - c3:12:53:85:40:65:49:6e:27:e7:93:0e:f9:88:df: - 8c:ac:1c:07:ef:21:c6:5f:8a:83:ad:de:a3:5a:eb: - 84:fc:8f:fa:56 - ASN1 OID: prime256v1 - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 18:19:4D:A1:C8:87:B6:49:A4:29:F5:DA:95:72:F3:64:41:24:96:C4 - X509v3 Authority Key Identifier: - keyid:5C:C2:71:76:C1:26:B1:0C:31:73:C8:92:D3:1E:01:12:4B:CC:5A:14 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 5d:97:40:70:07:0c:8a:2a:f8:5c:10:88:28:7d:a7:1a:db:19: - 2a:d1:dc:04:09:9e:ca:57:30:80:79:4f:81:d7:05:82:39:97: - 69:b8:19:7a:55:26:6f:43:d9:74:42:87:b5:1b:7b:d8:48:b1: - dd:68:36:a5:2c:04:29:5d:9b:9d:3d:53:98:b1:e9:f4:4d:89: - 8c:24:1a:24:e6:ca:c3:e3:67:a5:8d:19:b6:9b:52:4a:04:79: - db:ad:47:8c:f9:4f:61:6c:7f:ce:0e:50:1c:a9:d6:b2:a2:77: - b0:80:e1:f3:d0:a8:8e:e9:20:fa:c5:f5:70:29:3f:a4:0e:f3: - 07:29:94:93:d7:34:17:a3:17:39:50:e7:d9:7d:6c:f3:2c:a8: - 0f:87:19:cb:08:13:d8:e1:40:8c:91:95:4d:44:4b:e2:6b:97: - 74:65:62:fd:53:3b:73:ec:2a:86:f1:05:9e:17:14:60:22:d7: - 64:3f:f1:ff:1f:8b:7d:8e:b1:37:07:5b:a2:03:e1:18:61:89: - 3f:38:d2:07:4e:ae:d4:75:22:df:52:58:18:e1:e9:10:a1:8c: - 76:e3:63:43:96:df:59:74:09:57:54:a7:72:0c:48:d7:52:65: - ee:eb:bd:62:80:f7:90:12:91:ec:6b:2c:ea:1e:5c:20:77:96: - f8:2b:25:a5 ------BEGIN CERTIFICATE----- -MIICuTCCAaGgAwIBAgIBBDANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB0yMDQ4 -IHJzYSBUZXN0IGludGVybWVkaWF0ZSBDQTAeFw0xNjA0MjIyMDI4NDFaFw0yNjA0 -MjAyMDI4NDFaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw -FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQD -DAkxMjcuMC4wLjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ2YBZv9z5fH2N+ -Q8ulqXdXd4a3lLCDA7R/RyWIz8MSU4VAZUluJ+eTDvmI34ysHAfvIcZfioOt3qNa -64T8j/pWo4GAMH4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUGBlNociHtkmkKfXa -lXLzZEEklsQwHwYDVR0jBBgwFoAUXMJxdsEmsQwxc8iS0x4BEkvMWhQwHQYDVR0l -BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEQQIMAaHBH8AAAEwDQYJKoZI -hvcNAQELBQADggEBAF2XQHAHDIoq+FwQiCh9pxrbGSrR3AQJnspXMIB5T4HXBYI5 -l2m4GXpVJm9D2XRCh7Ube9hIsd1oNqUsBCldm509U5ix6fRNiYwkGiTmysPjZ6WN -GbabUkoEedutR4z5T2Fsf84OUByp1rKid7CA4fPQqI7pIPrF9XApP6QO8wcplJPX -NBejFzlQ59l9bPMsqA+HGcsIE9jhQIyRlU1ES+Jrl3RlYv1TO3PsKobxBZ4XFGAi -12Q/8f8fi32OsTcHW6ID4RhhiT840gdOrtR1It9SWBjh6RChjHbjY0OW31l0CVdU -p3IMSNdSZe7rvWKA95ASkexrLOoeXCB3lvgrJaU= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-768-rsa-intermediate.pem b/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-768-rsa-intermediate.pem deleted file mode 100644 index 65b81e5..0000000 --- a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-768-rsa-intermediate.pem +++ /dev/null @@ -1,53 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4 (0x4) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=768 rsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:b8:18:a6:f0:2e:2c:00:5c:33:a0:02:29:f4:8e: - 97:f8:c7:72:82:79:11:09:11:d5:30:95:7e:29:24: - 68:4b:71:90:3d:74:6b:cb:77:cb:ba:fd:5f:86:91: - 10:cf:29:28:8f:f1:1c:f6:ac:18:c4:86:ef:15:bb: - fb:dd:6d:c7:d7 - ASN1 OID: prime256v1 - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 16:7F:A6:9F:9D:78:A2:C0:63:49:1C:FF:FF:30:57:23:90:C1:99:10 - X509v3 Authority Key Identifier: - keyid:9E:E3:A7:83:B0:59:6F:91:9F:C7:D5:34:61:4A:1A:B3:66:C7:44:A0 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - bc:f2:7a:f2:cb:90:e4:e5:dc:ed:bb:69:e5:24:cd:a9:46:a4: - f9:ee:19:d1:73:08:6c:be:cb:90:7f:d1:1e:b8:09:07:83:4a: - 42:b7:12:11:ea:3e:ab:8b:e4:f7:cd:d9:94:db:c5:01:1b:d4: - f5:f9:be:22:b0:39:72:b6:89:6d:99:cc:43:fd:09:bb:00:a5: - 51:b0:ee:97:94:e9:d2:86:96:e4:52:f7:76:77:d2:40:37:96: - 38:cd:f3:59:38:54 ------BEGIN CERTIFICATE----- -MIICFjCCAaCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDDBw3Njgg -cnNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMB4XDTE2MDQyMjIwMjg0MVoXDTI2MDQy -MDIwMjg0MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAU -BgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMM -CTEyNy4wLjAuMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLgYpvAuLABcM6AC -KfSOl/jHcoJ5EQkR1TCVfikkaEtxkD10a8t3y7r9X4aREM8pKI/xHPasGMSG7xW7 -+91tx9ejgYAwfjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQWf6afnXiiwGNJHP// -MFcjkMGZEDAfBgNVHSMEGDAWgBSe46eDsFlvkZ/H1TRhShqzZsdEoDAdBgNVHSUE -FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG -9w0BAQsFAANhALzyevLLkOTl3O27aeUkzalGpPnuGdFzCGy+y5B/0R64CQeDSkK3 -EhHqPquL5PfN2ZTbxQEb1PX5viKwOXK2iW2ZzEP9CbsApVGw7peU6dKGluRS93Z3 -0kA3ljjN81k4VA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-prime256v1-ecdsa-intermediate.pem b/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-prime256v1-ecdsa-intermediate.pem deleted file mode 100644 index 763bec7..0000000 --- a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-ee-by-prime256v1-ecdsa-intermediate.pem +++ /dev/null @@ -1,50 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4 (0x4) - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN=prime256v1 ecdsa Test intermediate CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:f5:4f:70:de:c3:d2:11:bb:c8:08:6e:4c:63:d8: - 13:80:10:b0:b8:e9:df:9c:fa:d0:f4:e3:61:5e:1e: - 1f:fe:65:8e:4b:a9:3f:d4:47:9f:71:e9:89:82:82: - d8:10:63:fa:af:37:5b:3b:d1:da:56:05:da:a2:20: - e1:20:37:c3:c0 - ASN1 OID: prime256v1 - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 7E:DD:18:69:14:9C:D6:E5:9C:DD:47:DB:87:60:79:AD:01:07:9A:66 - X509v3 Authority Key Identifier: - keyid:0D:6B:B6:D7:DD:7F:CD:4E:AD:06:6B:22:E1:11:08:58:10:AB:16:2A - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: ecdsa-with-SHA256 - 30:45:02:20:25:fd:ba:76:81:1b:d3:25:17:82:31:ad:73:72: - 50:94:ac:e3:69:a6:b1:58:fe:b7:5e:48:ed:23:0d:a2:05:40: - 02:21:00:d5:0e:02:63:c9:1c:7a:5a:10:13:1e:b8:05:87:71: - 9c:b5:e2:66:cb:27:c8:17:b3:b1:68:29:c4:5e:b9:ac:5f ------BEGIN CERTIFICATE----- -MIICADCCAaagAwIBAgIBBDAKBggqhkjOPQQDAjAwMS4wLAYDVQQDDCVwcmltZTI1 -NnYxIGVjZHNhIFRlc3QgaW50ZXJtZWRpYXRlIENBMB4XDTE2MDQyMjIwMjg0MVoX -DTI2MDQyMDIwMjg0MVowYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3Ju -aWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQ -BgNVBAMMCTEyNy4wLjAuMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPVPcN7D -0hG7yAhuTGPYE4AQsLjp35z60PTjYV4eH/5ljkupP9RHn3HpiYKC2BBj+q83WzvR -2lYF2qIg4SA3w8CjgYAwfjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBR+3RhpFJzW -5ZzdR9uHYHmtAQeaZjAfBgNVHSMEGDAWgBQNa7bX3X/NTq0GayLhEQhYEKsWKjAd -BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATAK -BggqhkjOPQQDAgNIADBFAiAl/bp2gRvTJReCMa1zclCUrONpprFY/rdeSO0jDaIF -QAIhANUOAmPJHHpaEBMeuAWHcZy14mbLJ8gXs7FoKcReuaxf ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-intermediate.pem b/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-intermediate.pem deleted file mode 100644 index 79470be..0000000 --- a/src/pki/testdata/ssl/certificates/prime256v1-ecdsa-intermediate.pem +++ /dev/null @@ -1,58 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4 (0x4) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=2048 RSA Test Root CA - Validity - Not Before: Apr 22 20:28:41 2016 GMT - Not After : Apr 20 20:28:41 2026 GMT - Subject: CN=prime256v1 ecdsa Test intermediate CA - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:d5:c1:4a:32:95:95:c5:88:fa:01:fa:c5:9e:dc: - e2:99:62:eb:13:e5:35:42:b3:7a:fc:46:c0:fa:29: - 12:c8:2d:ea:30:0f:d2:9a:47:97:2c:7e:89:e6:ef: - 49:55:06:c9:37:c7:99:56:16:b2:2b:c9:7c:69:8e: - 10:7a:dd:1f:42 - ASN1 OID: prime256v1 - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 0D:6B:B6:D7:DD:7F:CD:4E:AD:06:6B:22:E1:11:08:58:10:AB:16:2A - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 58:01:f0:a4:cb:85:85:72:db:7c:15:af:95:9d:b0:8e:a9:1a: - 43:ef:d3:a8:15:1b:37:2c:c3:5b:9a:b3:c2:24:88:1b:58:7e: - 9c:9b:3e:8f:02:06:47:35:85:b7:65:8d:25:72:2d:d3:e9:5f: - 3a:f9:62:b1:af:43:bc:3d:d8:f9:ef:9d:c4:c7:65:96:db:67: - 20:ef:b7:3d:40:a0:d3:a4:ad:3e:f9:d1:2e:d7:fd:9d:25:72: - 82:f5:7f:ce:75:f7:86:77:c7:52:6d:c9:10:13:46:04:88:09: - cf:1a:f0:f2:e1:9c:2f:d7:c8:17:32:57:8a:5b:78:36:1c:76: - 31:24:be:3d:29:5b:3e:92:ca:d5:e0:2c:3e:1c:72:a9:b6:f3: - a9:28:72:8c:e4:cf:ea:fe:ca:af:21:8a:dc:6f:f9:84:7c:16: - 34:5b:d8:21:b5:ec:b5:84:dc:b7:ef:41:e8:5b:74:0b:19:c9: - d5:e1:ef:f2:05:33:de:92:24:27:9b:70:ad:e2:9d:8e:42:ca: - 98:30:5f:f4:32:81:aa:11:bb:10:dc:e6:86:f5:6f:75:70:22: - 62:29:47:84:36:17:e6:ee:ae:e9:7e:86:ae:dc:bf:81:52:7a: - 30:7e:f9:35:31:11:cb:ec:1c:8e:ed:32:9e:96:32:9f:05:6f: - 9c:cb:c9:db ------BEGIN CERTIFICATE----- -MIICQjCCASqgAwIBAgIBBDANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBUyMDQ4 -IFJTQSBUZXN0IFJvb3QgQ0EwHhcNMTYwNDIyMjAyODQxWhcNMjYwNDIwMjAyODQx -WjAwMS4wLAYDVQQDDCVwcmltZTI1NnYxIGVjZHNhIFRlc3QgaW50ZXJtZWRpYXRl -IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1cFKMpWVxYj6AfrFntzimWLr -E+U1QrN6/EbA+ikSyC3qMA/SmkeXLH6J5u9JVQbJN8eZVhayK8l8aY4Qet0fQqNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUDWu2191/zU6tBmsi4REIWBCr -FiowDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQBYAfCky4WFctt8 -Fa+VnbCOqRpD79OoFRs3LMNbmrPCJIgbWH6cmz6PAgZHNYW3ZY0lci3T6V86+WKx -r0O8Pdj5753Ex2WW22cg77c9QKDTpK0++dEu1/2dJXKC9X/OdfeGd8dSbckQE0YE -iAnPGvDy4Zwv18gXMleKW3g2HHYxJL49KVs+ksrV4Cw+HHKptvOpKHKM5M/q/sqv -IYrcb/mEfBY0W9ghtey1hNy370HoW3QLGcnV4e/yBTPekiQnm3Ct4p2OQsqYMF/0 -MoGqEbsQ3OaG9W91cCJiKUeENhfm7q7pfoau3L+BUnowfvk1MRHL7ByO7TKeljKf -BW+cy8nb ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/punycodetest.pem b/src/pki/testdata/ssl/certificates/punycodetest.pem deleted file mode 100644 index 59d3172..0000000 --- a/src/pki/testdata/ssl/certificates/punycodetest.pem +++ /dev/null @@ -1,78 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 44:ff:47:5b:37:71:65:69:6a:02:40:fd:0c:fb:7b:a0:70:f4:8d:5d - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = xn--wgv71a119e.com - Validity - Not Before: Oct 3 17:20:10 2022 GMT - Not After : Sep 30 17:20:10 2032 GMT - Subject: CN = xn--wgv71a119e.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b1:2e:20:9b:56:83:a2:e8:0e:6a:06:53:ea:8b: - a3:2e:a1:ca:a7:ad:f5:6f:66:3d:13:77:52:66:9d: - ec:63:1d:66:7e:58:90:56:7e:7d:32:a0:ec:43:14: - 29:90:9b:00:53:37:a9:bf:bc:bf:86:f0:89:5b:4f: - 64:98:4b:71:d8:b3:2d:75:10:28:67:b1:e4:80:f0: - 4e:3c:28:79:56:83:ab:a9:65:e7:fa:b8:d6:f6:b9: - 21:61:a2:a1:eb:a4:80:43:4e:ab:93:d1:95:00:03: - 91:c1:36:b0:66:47:f9:60:0a:70:37:08:cb:a4:cc: - 6e:85:1c:4e:c1:98:88:a8:18:5d:75:4e:7b:63:1d: - 4b:e9:1c:5f:f4:e0:72:be:c6:b0:cd:02:e8:25:4a: - 98:be:bf:9a:0d:93:74:4a:0b:bd:45:71:87:92:4a: - 39:d3:a3:96:d8:7f:2e:d4:e9:5a:3b:54:de:0f:87: - dc:d1:c6:cb:f7:73:d7:0f:3d:d1:ce:7c:5a:fc:64: - 91:15:ff:37:1b:25:05:83:0c:d3:d2:07:0a:7c:43: - 54:47:99:d2:fd:79:1e:35:a4:16:a4:b8:f1:f6:8b: - 37:b4:26:9d:07:63:33:d0:c9:18:50:d1:3a:ad:2c: - 62:90:d1:b8:36:58:51:77:6b:8a:ff:f1:bd:4e:fc: - 74:83 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Alternative Name: - DNS:xn--wgv71a119e.com, DNS:*.xn--wgv71a119e.com, DNS:blahblahblahblah.com - X509v3 Subject Key Identifier: - C6:0C:83:61:1D:BC:65:F4:0D:48:28:F5:00:9F:B3:84:0D:A4:B6:86 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 93:15:4f:06:9c:44:ae:f9:ce:f4:02:aa:81:94:7e:4e:38:4c: - 5d:cb:98:c2:e6:92:9f:bd:74:2a:43:af:d7:b6:68:cb:ff:49: - d5:ec:6f:4c:3b:1a:92:1f:8d:42:d0:98:2e:20:33:be:bb:06: - 9a:62:fa:6f:d5:de:a4:f6:d7:ad:64:c0:ef:c2:e6:7b:f9:59: - c3:97:be:95:ee:c8:ab:84:f0:a4:f5:99:aa:63:4b:bd:a6:0b: - 13:87:c8:17:5e:99:51:93:ec:88:38:4b:c3:91:92:af:5d:5d: - 05:5b:70:0c:de:fd:1a:89:ed:53:14:b3:05:04:bf:2c:5a:12: - c6:20:7e:c0:31:42:b2:98:84:3f:71:89:85:ba:8c:8f:8e:40: - c7:00:e6:b4:63:90:1e:0a:a1:e8:72:96:8a:ca:6b:a0:92:ec: - a6:b9:4f:ca:24:27:74:84:f6:f4:ac:e6:f1:12:6e:36:3c:1a: - a0:79:aa:ab:48:b3:db:a4:56:86:d8:30:14:e9:bc:2c:99:37: - a4:60:ea:2f:6d:5b:66:13:a3:20:f4:84:07:de:24:20:61:5c: - 51:b8:bf:28:89:a8:0d:c7:10:34:52:8e:53:49:af:92:b0:e0: - bf:31:9a:40:7d:dd:af:03:72:12:84:82:27:75:cf:0d:d7:bf: - 84:b9:b2:7c ------BEGIN CERTIFICATE----- -MIIDRTCCAi2gAwIBAgIURP9HWzdxZWlqAkD9DPt7oHD0jV0wDQYJKoZIhvcNAQEL -BQAwHTEbMBkGA1UEAwwSeG4tLXdndjcxYTExOWUuY29tMB4XDTIyMTAwMzE3MjAx -MFoXDTMyMDkzMDE3MjAxMFowHTEbMBkGA1UEAwwSeG4tLXdndjcxYTExOWUuY29t -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsS4gm1aDougOagZT6ouj -LqHKp631b2Y9E3dSZp3sYx1mfliQVn59MqDsQxQpkJsAUzepv7y/hvCJW09kmEtx -2LMtdRAoZ7HkgPBOPCh5VoOrqWXn+rjW9rkhYaKh66SAQ06rk9GVAAORwTawZkf5 -YApwNwjLpMxuhRxOwZiIqBhddU57Yx1L6Rxf9OByvsawzQLoJUqYvr+aDZN0Sgu9 -RXGHkko506OW2H8u1OlaO1TeD4fc0cbL93PXDz3Rznxa/GSRFf83GyUFgwzT0gcK -fENUR5nS/XkeNaQWpLjx9os3tCadB2Mz0MkYUNE6rSxikNG4NlhRd2uK//G9Tvx0 -gwIDAQABo30wezAPBgNVHRMBAf8EBTADAQH/MEkGA1UdEQRCMECCEnhuLS13Z3Y3 -MWExMTllLmNvbYIUKi54bi0td2d2NzFhMTE5ZS5jb22CFGJsYWhibGFoYmxhaGJs -YWguY29tMB0GA1UdDgQWBBTGDINhHbxl9A1IKPUAn7OEDaS2hjANBgkqhkiG9w0B -AQsFAAOCAQEAkxVPBpxErvnO9AKqgZR+TjhMXcuYwuaSn710KkOv17Zoy/9J1exv -TDsakh+NQtCYLiAzvrsGmmL6b9XepPbXrWTA78Lme/lZw5e+le7Iq4TwpPWZqmNL -vaYLE4fIF16ZUZPsiDhLw5GSr11dBVtwDN79GontUxSzBQS/LFoSxiB+wDFCspiE -P3GJhbqMj45AxwDmtGOQHgqh6HKWisproJLsprlPyiQndIT29Kzm8RJuNjwaoHmq -q0iz26RWhtgwFOm8LJk3pGDqL21bZhOjIPSEB94kIGFcUbi/KImoDccQNFKOU0mv -krDgvzGaQH3drwNyEoSCJ3XPDde/hLmyfA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/quic-chain.pem b/src/pki/testdata/ssl/certificates/quic-chain.pem deleted file mode 100644 index ab0893b..0000000 --- a/src/pki/testdata/ssl/certificates/quic-chain.pem +++ /dev/null @@ -1,147 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Intermediate CA - Validity - Not Before: Dec 18 23:44:03 2017 GMT - Not After : Dec 16 23:44:03 2027 GMT - Subject: CN=test.example.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b2:56:6f:7e:d4:b4:b6:4e:e3:15:8e:8a:e9:46: - 06:15:63:4c:6d:3a:32:67:c7:14:a4:17:fc:b7:04: - 98:fb:b5:11:ae:93:1c:20:73:15:cd:b3:bc:ee:61: - 82:8e:cb:b8:78:ca:6d:e6:57:73:f3:45:6e:1e:c3: - 27:5d:af:5e:52:6d:12:47:44:72:3d:7d:8a:c1:47: - 50:19:4a:21:a4:08:b4:cc:2e:9c:a2:2a:ce:1b:87: - 82:ae:3a:23:b0:dd:d2:3e:64:fe:ce:a6:35:34:93: - 07:f8:88:6e:c8:be:b2:0b:5f:9c:96:0e:79:1c:a3: - 2b:c9:23:5a:8a:1f:1e:17:e2:a9:d4:3c:49:22:29: - 43:fa:63:55:3c:72:62:4a:d1:72:5a:ae:75:a8:14: - 67:eb:58:88:ce:11:0c:bf:09:67:f2:bb:c8:80:3e: - 4a:f0:35:ad:d2:dc:43:a3:2f:da:c6:3b:1c:6e:76: - 70:31:73:cc:33:5b:4f:36:dc:f3:8f:9f:a6:07:6d: - 61:e0:66:6f:2c:76:bd:85:a3:8b:d0:8a:ce:c4:bc: - 97:e0:ed:e1:29:df:a1:62:b9:ad:d8:0f:1a:f8:ae: - 44:fe:a6:28:95:c4:cc:df:b5:f7:6d:46:ae:ef:9b: - af:73:50:1d:9f:f0:c7:a0:ef:37:4b:13:73:96:24: - 95:0f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - DNS:test.example.com - Signature Algorithm: sha256WithRSAEncryption - bd:55:54:e5:ac:2b:e6:6f:c9:45:b7:77:97:af:37:e6:6b:60: - cb:51:0f:b0:2c:40:71:39:73:7a:0b:6f:37:a5:cc:40:4f:d1: - 43:3d:8e:1d:37:ba:ff:2d:7b:80:21:fd:ec:e4:7c:20:6a:ce: - 6e:28:9b:c1:4e:9e:1e:17:1f:cb:04:61:c1:d0:72:0c:31:f6: - ee:2b:a9:9c:29:6b:45:bd:97:57:a6:25:f3:f0:6b:08:3f:4e: - 00:33:cf:47:3b:50:4a:15:a7:a0:c8:e0:8b:86:7b:48:3e:39: - 15:00:0a:aa:79:3c:8d:fd:d7:4a:68:2f:05:2b:60:2a:d1:7e: - 1c:bc:06:e9:b7:51:35:71:d7:6b:f4:b8:f3:17:d7:f1:d4:8d: - f8:0e:4a:11:34:4d:d9:19:70:33:0a:66:e6:4c:11:93:90:5c: - 5d:a1:f3:8a:1c:ce:0c:12:5e:a9:6b:e1:1f:eb:b3:65:b8:bc: - 1a:48:af:cc:af:fc:db:3e:0b:32:47:8d:fc:ed:b3:50:9a:65: - b8:19:eb:db:18:21:5f:e4:1d:c5:87:57:9b:5a:8a:59:16:84: - 8d:27:3e:f9:7a:c0:fa:e7:84:90:da:1a:03:98:b5:c6:a9:52: - ed:df:0e:7a:02:c7:e6:82:d2:06:cb:97:75:90:89:d6:d1:cf: - 43:74:09:f7 ------BEGIN CERTIFICATE----- -MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAfMR0wGwYDVQQDDBRUZXN0 -IEludGVybWVkaWF0ZSBDQTAeFw0xNzEyMTgyMzQ0MDNaFw0yNzEyMTYyMzQ0MDNa -MBsxGTAXBgNVBAMMEHRlc3QuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUA -A4IBDwAwggEKAoIBAQCyVm9+1LS2TuMVjorpRgYVY0xtOjJnxxSkF/y3BJj7tRGu -kxwgcxXNs7zuYYKOy7h4ym3mV3PzRW4ewyddr15SbRJHRHI9fYrBR1AZSiGkCLTM -LpyiKs4bh4KuOiOw3dI+ZP7OpjU0kwf4iG7IvrILX5yWDnkcoyvJI1qKHx4X4qnU -PEkiKUP6Y1U8cmJK0XJarnWoFGfrWIjOEQy/CWfyu8iAPkrwNa3S3EOjL9rGOxxu -dnAxc8wzW0823POPn6YHbWHgZm8sdr2Fo4vQis7EvJfg7eEp36Fiua3YDxr4rkT+ -piiVxMzftfdtRq7vm69zUB2f8Meg7zdLE3OWJJUPAgMBAAGjTDBKMAwGA1UdEwEB -/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBsGA1UdEQQUMBKC -EHRlc3QuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAL1VVOWsK+ZvyUW3 -d5evN+ZrYMtRD7AsQHE5c3oLbzelzEBP0UM9jh03uv8te4Ah/ezkfCBqzm4om8FO -nh4XH8sEYcHQcgwx9u4rqZwpa0W9l1emJfPwawg/TgAzz0c7UEoVp6DI4IuGe0g+ -ORUACqp5PI3910poLwUrYCrRfhy8Bum3UTVx12v0uPMX1/HUjfgOShE0TdkZcDMK -ZuZMEZOQXF2h84oczgwSXqlr4R/rs2W4vBpIr8yv/Ns+CzJHjfzts1CaZbgZ69sY -IV/kHcWHV5tailkWhI0nPvl6wPrnhJDaGgOYtcapUu3fDnoCx+aC0gbLl3WQidbR -z0N0Cfc= ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=Test Root CA - Validity - Not Before: Dec 18 23:44:03 2017 GMT - Not After : Dec 16 23:44:03 2027 GMT - Subject: CN=Test Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e4:cd:89:4c:65:4f:4d:68:bd:2a:7a:4f:0b:10: - 3f:02:d6:2a:5b:5b:76:c8:97:59:67:19:6e:95:45: - c3:38:a4:c7:29:f5:f7:95:52:97:a3:01:19:b2:b3: - ec:09:97:08:4f:f1:db:43:67:50:59:ac:ca:9a:05: - 56:fc:73:42:f3:90:e1:e5:3e:03:75:35:33:d2:df: - aa:3d:f8:ca:16:5e:7e:ef:01:9c:2a:30:eb:c7:cc: - 06:04:90:14:c0:54:f5:96:22:26:30:39:73:c5:c0: - 9d:0d:b0:9f:b0:e5:cf:f6:b1:0c:10:ab:f0:c9:54: - a6:30:d5:b4:fd:a7:23:7f:1e:57:7b:72:d7:af:0d: - a2:3e:4d:b2:c5:51:70:2a:06:2f:66:21:ca:7f:7d: - 6b:60:24:5e:ed:5f:74:ee:4b:b1:f1:ec:54:a0:fb: - 89:05:69:94:78:9b:a4:85:8c:ea:e6:b5:d6:fd:c5: - 6d:98:28:e4:1d:81:1b:26:3b:21:c2:e4:df:bd:a1: - 0d:51:35:40:43:a0:a4:00:66:fa:97:46:d6:9d:95: - ca:da:62:f8:c7:60:6c:e4:89:c2:d0:74:30:fe:2a: - db:54:95:5b:68:5f:ca:bd:e9:af:27:13:fc:c4:6f: - e6:5d:05:92:cc:bc:e4:76:8a:2e:34:0b:5e:39:11: - 75:57 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 60:4e:38:f3:7b:00:46:75:8f:d0:4e:08:76:2d:ed:9f:bf:cc: - 50:1b:bf:e4:6d:76:50:fe:fa:7d:46:90:1c:75:f1:3f:47:19: - eb:02:38:cb:3e:56:0f:8f:09:ae:a8:42:d0:e6:5a:31:54:24: - b2:fe:4b:a2:e4:44:14:64:44:d8:50:12:62:4a:06:60:29:22: - 95:bb:c8:7e:dd:d4:7d:a6:dd:3c:0d:fb:71:67:6f:9b:49:05: - 09:7c:5c:63:2b:df:71:aa:ae:92:28:98:73:c2:60:b6:54:10: - f6:f5:54:d6:93:0a:22:56:0a:fd:45:8a:a4:d7:a7:21:df:f5: - 53:07:1c:3b:63:c1:7c:4e:f0:3d:5c:c4:c9:cc:55:ae:ec:fb: - 2e:4f:b0:f9:5b:1d:c3:46:ba:38:f6:ff:8d:b3:3b:d0:7d:15: - 3f:fd:6a:bd:a1:59:18:ff:57:fc:d6:c0:3d:7e:75:61:ff:13: - 09:81:5f:38:82:22:78:78:97:5e:e6:7c:fb:16:a8:92:40:97: - eb:7c:a5:37:da:ca:5f:28:69:e4:63:b7:07:61:ad:e8:5a:e8: - 06:55:c0:34:7c:30:66:1e:9a:7e:ed:cb:c8:14:c1:e3:b3:ac: - 8d:89:9c:6b:b1:ea:eb:71:94:c0:1d:63:b7:d9:82:74:13:0c: - ee:8a:ca:dc ------BEGIN CERTIFICATE----- -MIIC1DCCAbygAwIBAgIBATANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IFJvb3QgQ0EwHhcNMTcxMjE4MjM0NDAzWhcNMjcxMjE2MjM0NDAzWjAfMR0wGwYD -VQQDDBRUZXN0IEludGVybWVkaWF0ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAOTNiUxlT01ovSp6TwsQPwLWKltbdsiXWWcZbpVFwzikxyn195VS -l6MBGbKz7AmXCE/x20NnUFmsypoFVvxzQvOQ4eU+A3U1M9Lfqj34yhZefu8BnCow -68fMBgSQFMBU9ZYiJjA5c8XAnQ2wn7Dlz/axDBCr8MlUpjDVtP2nI38eV3ty168N -oj5NssVRcCoGL2Yhyn99a2AkXu1fdO5LsfHsVKD7iQVplHibpIWM6ua11v3FbZgo -5B2BGyY7IcLk372hDVE1QEOgpABm+pdG1p2Vytpi+MdgbOSJwtB0MP4q21SVW2hf -yr3prycT/MRv5l0Fksy85HaKLjQLXjkRdVcCAwEAAaMjMCEwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAGBOOPN7AEZ1 -j9BOCHYt7Z+/zFAbv+RtdlD++n1GkBx18T9HGesCOMs+Vg+PCa6oQtDmWjFUJLL+ -S6LkRBRkRNhQEmJKBmApIpW7yH7d1H2m3TwN+3Fnb5tJBQl8XGMr33GqrpIomHPC -YLZUEPb1VNaTCiJWCv1FiqTXpyHf9VMHHDtjwXxO8D1cxMnMVa7s+y5PsPlbHcNG -ujj2/42zO9B9FT/9ar2hWRj/V/zWwD1+dWH/EwmBXziCInh4l17mfPsWqJJAl+t8 -pTfayl8oaeRjtwdhreha6AZVwDR8MGYemn7ty8gUweOzrI2JnGux6utxlMAdY7fZ -gnQTDO6Kytw= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/quic-ecdsa-leaf.key b/src/pki/testdata/ssl/certificates/quic-ecdsa-leaf.key Binary files differdeleted file mode 100644 index b3e47c7..0000000 --- a/src/pki/testdata/ssl/certificates/quic-ecdsa-leaf.key +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/quic-leaf-cert.key b/src/pki/testdata/ssl/certificates/quic-leaf-cert.key Binary files differdeleted file mode 100644 index e509d72..0000000 --- a/src/pki/testdata/ssl/certificates/quic-leaf-cert.key +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/quic-leaf-cert.key.pkcs8.pem b/src/pki/testdata/ssl/certificates/quic-leaf-cert.key.pkcs8.pem deleted file mode 100644 index 00983fc..0000000 --- a/src/pki/testdata/ssl/certificates/quic-leaf-cert.key.pkcs8.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCyVm9+1LS2TuMV -jorpRgYVY0xtOjJnxxSkF/y3BJj7tRGukxwgcxXNs7zuYYKOy7h4ym3mV3PzRW4e -wyddr15SbRJHRHI9fYrBR1AZSiGkCLTMLpyiKs4bh4KuOiOw3dI+ZP7OpjU0kwf4 -iG7IvrILX5yWDnkcoyvJI1qKHx4X4qnUPEkiKUP6Y1U8cmJK0XJarnWoFGfrWIjO -EQy/CWfyu8iAPkrwNa3S3EOjL9rGOxxudnAxc8wzW0823POPn6YHbWHgZm8sdr2F -o4vQis7EvJfg7eEp36Fiua3YDxr4rkT+piiVxMzftfdtRq7vm69zUB2f8Meg7zdL -E3OWJJUPAgMBAAECggEAWhFzcB/nQOfoonuCRrxZ2DV1ZPjueiE+mH2Q4bINvZo+ -WufrXawiB+jN86sFsC7NdRvvk1T5t5SKQDkZyaQHRCPYBmxYMhwUlvb4Sj15bgoD -ndewvepWe+rdoja0zd/KDj8dvaqN1oankOr+4J4G992LDPI0UrVKKOSVFosOvMqh -zAJy19KGzfSzBU40xnWk4MEq7ZPksdeMFN5Dv+C4lFCmd/ddTFQ7EcqeSRqv2JCC -fAH9wF6GFUXfYqU7h3CTt686kxhbgle4U5rzr126ByZjysAKv5OnNOEDlNi8D5og -SX/vjuek8eL3Ypmho1Wch+f3w315gs8KWQjx0lcv+QKBgQDlvCRPat/qu0v/hsE7 -iopkV5I3AghzfNXzaHFrwgkXFXu+pArTk3r22aY3strAXfiYp7Blz10+LUrZyvB6 -0wa//Mk3nZ67BcViy1HykJJd6hHXYXxqih8Ig0JQJrD12iEwo3RUZ/G+L4EVOcG/ -kS/C8sUbp3j6mqxJe18xgvCF0wKBgQDGugDL8xfzuqTT3XPhCTmUL1nAO3Xv0vRb -Vuzx0bFeGvAPHWFAb2FtEkXc4pDCPb+73q9ByBwukVB0nPpiaPzlJHGMocBANxh6 -tvO/XMcfmQmhQ+2yXgXEb7/RamULdjn7dlE+0l8kvCI37LYB/lPq2cdA1vnugxkB -55fls4GCVQKBgQC35snyQQ2KK/CEVmzsqtRpyqgjHJ+DQ1VJijvxFNyN/AaY71wz -TgXLASPLxoLSJudP3Dya40oy8bLPcWLcD32BxmuU97oO4GnH0haBZDWmtC8gCMu9 -xV9eQyScYLybsceL1ezTfHnJ0uE0Co4MOb7QAeLDZmazxYlRMU9cpQLBPQKBgQCT -yYwCIHy1kx41OUGOH3AklbonTZD9k2KJ8vEvPQSsuVfBxdWnN626kZZHGG8TJRzL -uGWZhBoBP6wXrQ4/1VgNiLaxITF6D/8yc5B9xZ+IDiWtOnkw5t9fIMQEFx2iEoA4 -U9tD3utGxGqmMHGCtgLuaprVy4n/KJuWYQcDmiU8KQKBgQClNWD+p5caD82Z4QB5 -Y/lTbjmmF4nLHlwfLpWI+nJ76kvFMnLYgJY8oZgBwBZsEkQG8so/nejBFsYvIDeR -5W7cQVJ+ED8GCF9O4H77U0R8rpuL4z61ni4rXHc9+rABaHBHJ1aF8h3SlceHVdow -FBU427jUeVKBN9UnFo4wrogjMA== ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/quic-leaf-cert.key.sct b/src/pki/testdata/ssl/certificates/quic-leaf-cert.key.sct Binary files differdeleted file mode 100644 index 0d19282..0000000 --- a/src/pki/testdata/ssl/certificates/quic-leaf-cert.key.sct +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/quic-root.pem b/src/pki/testdata/ssl/certificates/quic-root.pem deleted file mode 100644 index f25cd2e..0000000 --- a/src/pki/testdata/ssl/certificates/quic-root.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC1DCCAbygAwIBAgIJANU1FI5oBbmLMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV -BAMMDFRlc3QgUm9vdCBDQTAeFw0xNzEyMTgyMzQ0MDNaFw0yNzEyMTYyMzQ0MDNa -MBcxFTATBgNVBAMMDFRlc3QgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBALqSSRbDX0cmxTOeBh4qqMtw8BA7J8l6CYZqeUgigR67xAvJGEqx -WhYDBjodWIYucrwqkRuju1ufRXVNAD8rqs47db5NPDHH+FqN33RkSa9XIdOGdnHX -NfCQ13Vpq9tnvZ3zCzvSWXDVYz6GcCBJ51tjWNZtX8O8N179HcVef3LhBGweAJJv -+FkOLiClZ1y2A5hfdmuYmIYy2Iwc7we/R6jm+Ns0pVA8NrLicEHzrxJLMlMD5+zd -WjkY6Bv9OdPipmEr1/EP3957bZ7uIUZWEq79SnQ90sKkMVS+q7Ckz7PdMBJI+fZc -HsjucLXL0tysbcF+CtYqHsbrazye0yERUFECAwEAAaMjMCEwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAJZRG2cJGaGF -Tl8H6+SltT9dlZ//Z7ZNsWEfv8xehGrRHsV2kxXvuVf1K4EpP3FAEvDJgOvP1MkA -rmcpI9SsY4cr0Zy/s+Ez8SwespXkSKvtCXCmq9/kpadFPDWwR1NAXVzSEuhXJxDR -bA+boLCu6rMFbkoRi/aFYzro+9m8RsXlyYGVGspov411lu56huoJ3ooGTIfQM8or -N6ZNWkb+RTUUj29o3qr3kiQv73mB6h47/3IkYC5mITl+vK3OtwIRwjLzXZuS40/W -RlI+SRYG4/yTzgV1DB4JlVJl4qMsF3z1zY1P7WeCU4YqZoIam/Ig/ZzxfOFTczk8 -vw1/E4YbkfE= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/quic-short-lived.pem b/src/pki/testdata/ssl/certificates/quic-short-lived.pem deleted file mode 100644 index ef24357..0000000 --- a/src/pki/testdata/ssl/certificates/quic-short-lived.pem +++ /dev/null @@ -1,42 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 14:95:0e:b4:a9:33:04:9b:ed:a5:47:b9:c8:0f:12:14:57:d1:66:ff - Signature Algorithm: ecdsa-with-SHA256 - Issuer: CN = Short-lived Certificate - Validity - Not Before: Jun 5 19:49:12 2020 GMT - Not After : Jun 19 19:49:12 2020 GMT - Subject: CN = Short-lived Certificate - Subject Public Key Info: - Public Key Algorithm: id-ecPublicKey - Public-Key: (256 bit) - pub: - 04:42:8a:75:3b:89:02:17:c3:97:d9:35:3c:ac:9a: - 46:a4:46:fa:17:cc:5d:0a:4c:6a:a3:88:7c:ff:44: - c5:96:af:6d:3b:17:76:d1:59:54:23:cc:16:05:96: - 29:9e:2c:f4:a7:9b:c4:42:3b:21:4e:ac:bd:8f:57: - 92:2b:fe:8f:85 - ASN1 OID: prime256v1 - NIST CURVE: P-256 - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - X509v3 Subject Alternative Name: - DNS:example.org - Signature Algorithm: ecdsa-with-SHA256 - 30:45:02:20:73:ca:c3:64:38:04:ad:5e:f7:87:a6:1f:ac:62: - 03:7b:3a:11:5b:51:2a:11:b2:25:e3:24:1e:62:ec:72:39:be: - 02:21:00:f7:df:1b:83:07:a2:fd:d1:1f:c9:92:57:1f:ee:2c: - f2:27:b5:99:91:8f:8b:9d:02:a3:f7:5d:17:9e:d6:19:a6 ------BEGIN CERTIFICATE----- -MIIBazCCARGgAwIBAgIUFJUOtKkzBJvtpUe5yA8SFFfRZv8wCgYIKoZIzj0EAwIw -IjEgMB4GA1UEAwwXU2hvcnQtbGl2ZWQgQ2VydGlmaWNhdGUwHhcNMjAwNjA1MTk0 -OTEyWhcNMjAwNjE5MTk0OTEyWjAiMSAwHgYDVQQDDBdTaG9ydC1saXZlZCBDZXJ0 -aWZpY2F0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEKKdTuJAhfDl9k1PKya -RqRG+hfMXQpMaqOIfP9ExZavbTsXdtFZVCPMFgWWKZ4s9KebxEI7IU6svY9Xkiv+ -j4WjJTAjMAkGA1UdEwQCMAAwFgYDVR0RBA8wDYILZXhhbXBsZS5vcmcwCgYIKoZI -zj0EAwIDSAAwRQIgc8rDZDgErV73h6YfrGIDezoRW1EqEbIl4yQeYuxyOb4CIQD3 -3xuDB6L90R/Jklcf7izyJ7WZkY+LnQKj910XntYZpg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/redundant-server-chain.pem b/src/pki/testdata/ssl/certificates/redundant-server-chain.pem deleted file mode 100644 index 755b84d..0000000 --- a/src/pki/testdata/ssl/certificates/redundant-server-chain.pem +++ /dev/null @@ -1,333 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDsdrSxnyz5qQNr -JRBll0qjD5zDYW41+A+X2rDMDONOaLlO9OODtjvoCRBg5KUJ2y9a/Vsui77szkLD -7h4lJPTlxGyFNxgtfyzSuXEb5ZBP0kYD+RXfafIeTmQECIFwsmnc3ytonl+Hzr+g -6G2w12qNWOL3DqrxgOc/9UeZKuTf4ERM7x1cfBmA3keW0M8PqJ9rVSG7zzLreago -Q81pmlWVttFrZWt2PAq6DH7BEdN+cbIEa6bSFOmBW24r+TJxxDc9X95xXNdC/LYn -fb9tN+1gPDd1bcjeEdPIg0EMqb0BtfcaUjZojownuIt04fcaet4OaVoo/HNhy9XM -GqqoHQeHAgMBAAECggEAIBGZP92Og+1gAU/tgVmbTbH4WKcGA1u5AacvAv1cdm3N -c9/SWzKDvVw9VGat20BWk8h4bT+WjRcMBvZsMC1q6R5SeV6XcNQmiA2OQXJIuAqU -ZEWLqdj8dQ+8kK92nooTwVii0nVoD0sCwhfDiJAuayz62vaqSEZrFkl1hFhE4feN -jpNOjzU54nbtmAnT1umyO13pJxTcRjetTJioIsl/uvTGuIhBsY6gqYchtPtZ0c35 -0/YNOMtAWKERDgpyFwBNmUA9YunmS603ThA5SB7rbaMbANyxXoGRcRjNavI67ues -fgvRY/GghnY2sKroyc9CIsnghrGAITW6miQw3uWRQQKBgQD4mTh7g0DP3bfHUIqm -af7UmPV7gPrJItlvgrYRYy4zjnxvNk/kcfgrJATMAnqGX5KrbXFX6AdfanRRnJcP -gCojd1C3v3cotUVky9r91v/1Hn1fe2hDzy/qrbwh2WBATPKCJjL0PuXNhGsfqoKG -SMhvqy95sfFnqvy4f4pUPh6pIwKBgQDzgP7WUAVWUcmjjxq6QM8WfDD5RMuPfAL4 -skkpm3WB/H+xUeqax+KSKNDDrWTfhWpTucZt0v84aG6NQz4vzkc5DrRnWltkqFgR -NLU1esrgn1bnh/iNQt+bmw8OgH0puJsI82wBa7QjGYu3ocW043Avp1DS2ocMGMzu -S+hFvBG4TQKBgFDI8drpVzl1cpBZswTLMx2BK1zcGCMeqQwcrO/PjCcC6Zr2SlYR -VzUluk1VjN1312DP6uJHK4YtQOl4enp2CruFvXxIwv8+kPNlb5/Hq1vLcbCCmOpY -PNkFZjqVujqLBs+WfD505ha4LluW/F2I72GifoYMdkdbAE8wWxJvMWWDAoGADRQg -m+IwZzJ9YguNo/NXLB3/g2PuiwZeIn1w8IspBJJLSXrc3vNdd/w5OklV4auIynZv -8fYjPyRcy7mQ3YB20tm3VtXDkuR31nS+RuERhH8Ka+UhtHSjDfiGFoFQN61ypkhs -xKbERh5ZIsPNmqmcnPKfpLOYDU5Hs4TgNN6lFQECgYA/0Y25oCHqLH9MfPGs2gMJ -BTeMxzAIsA2lwhr2/WOANHA9cWnHtI3d1eNequZpNgxtKbw2mxbM+IfnO50czV7g -5PJPvU79T6d64u1AOtoKbCxgm9wTL8UmEPvEInnT8SfnECPxW9Pwey2rC39527jl -i5FkIsSiwU8YIZk73YCqDg== ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=B CA - Validity - Not Before: Oct 18 22:24:10 2019 GMT - Not After : Oct 15 22:24:10 2029 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:ec:76:b4:b1:9f:2c:f9:a9:03:6b:25:10:65:97: - 4a:a3:0f:9c:c3:61:6e:35:f8:0f:97:da:b0:cc:0c: - e3:4e:68:b9:4e:f4:e3:83:b6:3b:e8:09:10:60:e4: - a5:09:db:2f:5a:fd:5b:2e:8b:be:ec:ce:42:c3:ee: - 1e:25:24:f4:e5:c4:6c:85:37:18:2d:7f:2c:d2:b9: - 71:1b:e5:90:4f:d2:46:03:f9:15:df:69:f2:1e:4e: - 64:04:08:81:70:b2:69:dc:df:2b:68:9e:5f:87:ce: - bf:a0:e8:6d:b0:d7:6a:8d:58:e2:f7:0e:aa:f1:80: - e7:3f:f5:47:99:2a:e4:df:e0:44:4c:ef:1d:5c:7c: - 19:80:de:47:96:d0:cf:0f:a8:9f:6b:55:21:bb:cf: - 32:eb:79:a8:28:43:cd:69:9a:55:95:b6:d1:6b:65: - 6b:76:3c:0a:ba:0c:7e:c1:11:d3:7e:71:b2:04:6b: - a6:d2:14:e9:81:5b:6e:2b:f9:32:71:c4:37:3d:5f: - de:71:5c:d7:42:fc:b6:27:7d:bf:6d:37:ed:60:3c: - 37:75:6d:c8:de:11:d3:c8:83:41:0c:a9:bd:01:b5: - f7:1a:52:36:68:8e:8c:27:b8:8b:74:e1:f7:1a:7a: - de:0e:69:5a:28:fc:73:61:cb:d5:cc:1a:aa:a8:1d: - 07:87 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E7:8D:C4:21:0B:CE:12:A1:F7:05:E6:52:AF:3B:A6:10:BA:71:68:3D - X509v3 Authority Key Identifier: - keyid:77:3C:D2:AA:A1:C9:7D:FE:B6:90:3F:CB:1B:F6:38:37:0C:28:1A:F7 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 17:ff:16:47:18:ed:d0:b5:54:fb:b6:02:c7:e4:c1:9a:4d:99: - 54:cb:ca:df:75:25:d4:e5:b5:20:74:3d:ac:f9:e2:a1:87:a5: - d1:a2:da:48:c0:71:12:9f:84:9e:10:70:9c:bd:4c:74:85:90: - b8:15:9c:b2:fb:f2:4c:03:7c:7a:a6:6e:c4:91:19:93:79:a4: - 47:96:fa:30:15:a3:02:20:d0:07:23:70:16:db:73:aa:6e:61: - b9:b1:0f:a9:e5:f8:d4:4f:34:19:a1:2e:fa:d6:f0:97:76:8c: - ff:08:54:8e:dc:a3:49:c9:a3:d8:e0:c3:71:e9:8f:98:3d:dd: - 25:73:c4:da:c3:fa:43:19:48:39:5c:43:8c:30:7a:cf:de:5a: - c9:ee:8e:2e:88:b0:e7:84:74:5f:d4:91:a6:65:8d:bc:fd:10: - 51:3c:53:32:fe:dd:03:84:9b:b0:64:58:9d:99:b4:bc:5f:ce: - 30:af:67:58:f5:6c:02:67:20:f9:aa:dc:d6:96:fc:00:e8:6d: - 72:48:12:a9:f9:dc:4b:00:26:fb:ab:1f:00:ac:e2:11:f9:36: - 2c:bd:a9:1c:86:b5:77:c6:97:6d:29:ec:3f:d3:94:95:46:54: - a4:2d:66:7e:9d:d7:1b:ea:21:f7:39:a3:b4:fb:e9:b6:38:4d: - eb:49:1d:83 ------BEGIN CERTIFICATE----- -MIIDbDCCAlSgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwEQiBD -QTAeFw0xOTEwMTgyMjI0MTBaFw0yOTEwMTUyMjI0MTBaMGAxCzAJBgNVBAYTAlVT -MRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAw -DgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDsdrSxnyz5qQNrJRBll0qjD5zDYW41+A+X2rDM -DONOaLlO9OODtjvoCRBg5KUJ2y9a/Vsui77szkLD7h4lJPTlxGyFNxgtfyzSuXEb -5ZBP0kYD+RXfafIeTmQECIFwsmnc3ytonl+Hzr+g6G2w12qNWOL3DqrxgOc/9UeZ -KuTf4ERM7x1cfBmA3keW0M8PqJ9rVSG7zzLreagoQ81pmlWVttFrZWt2PAq6DH7B -EdN+cbIEa6bSFOmBW24r+TJxxDc9X95xXNdC/LYnfb9tN+1gPDd1bcjeEdPIg0EM -qb0BtfcaUjZojownuIt04fcaet4OaVoo/HNhy9XMGqqoHQeHAgMBAAGjgYAwfjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTnjcQhC84SofcF5lKvO6YQunFoPTAfBgNV -HSMEGDAWgBR3PNKqocl9/raQP8sb9jg3DCga9zAdBgNVHSUEFjAUBggrBgEFBQcD -AQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEA -F/8WRxjt0LVU+7YCx+TBmk2ZVMvK33Ul1OW1IHQ9rPnioYel0aLaSMBxEp+EnhBw -nL1MdIWQuBWcsvvyTAN8eqZuxJEZk3mkR5b6MBWjAiDQByNwFttzqm5hubEPqeX4 -1E80GaEu+tbwl3aM/whUjtyjScmj2ODDcemPmD3dJXPE2sP6QxlIOVxDjDB6z95a -ye6OLoiw54R0X9SRpmWNvP0QUTxTMv7dA4SbsGRYnZm0vF/OMK9nWPVsAmcg+arc -1pb8AOhtckgSqfncSwAm+6sfAKziEfk2LL2pHIa1d8aXbSnsP9OUlUZUpC1mfp3X -G+oh9zmjtPvptjhN60kdgw== ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4097 (0x1001) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C CA - Validity - Not Before: Oct 18 22:24:10 2019 GMT - Not After : Oct 15 22:24:10 2029 GMT - Subject: CN=B CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:96:bf:0b:a1:79:f7:12:d1:8c:ec:e3:63:4a:c7: - 30:53:10:0d:60:41:84:27:99:f0:9f:a4:9e:ec:19: - 24:28:80:0b:8e:55:0c:13:ab:16:72:2b:43:aa:ac: - fa:0f:b2:47:ae:a3:a2:8d:66:85:2b:2f:b1:c6:f2: - bd:b6:5e:3b:d1:2b:0d:c2:bc:96:4f:d9:5f:2c:74: - 7b:7f:2a:2c:52:84:f6:71:a7:87:df:d3:4e:be:e7: - 53:70:cd:f0:47:5b:e4:5b:5b:64:49:37:5b:93:99: - 09:78:22:f2:04:9e:af:aa:91:f6:22:a5:59:5d:9e: - c7:cd:c5:11:1a:9e:99:3b:19:ad:51:59:f5:0e:ec: - 30:f2:7e:64:33:91:cd:f0:26:12:fe:cb:f2:6e:67: - a2:ec:94:6e:b2:97:3e:51:c0:ca:0a:e4:8a:f3:c6: - fa:cd:55:95:11:57:5e:bd:9b:b9:70:d4:04:af:f2: - c8:5e:1e:fb:b3:d7:03:0a:0e:be:cf:fa:c7:97:63: - 7a:e0:b4:22:07:a7:18:b6:a7:1a:d5:23:26:c1:c4: - 39:83:3c:45:53:9d:fd:a4:17:62:8d:bd:f2:4b:40: - d3:85:1d:06:3a:24:4f:8f:65:77:cd:c9:e8:64:a4: - 55:16:20:8f:17:5c:f1:6b:75:db:8e:ac:eb:2c:97: - 28:09 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 77:3C:D2:AA:A1:C9:7D:FE:B6:90:3F:CB:1B:F6:38:37:0C:28:1A:F7 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 8c:35:9a:a4:61:08:6e:60:d9:9e:af:ab:22:89:ca:ca:39:03: - 9c:5d:4e:5f:dc:e5:dc:33:ce:19:af:19:fd:db:c9:a7:ca:d8: - 65:73:42:73:35:70:57:99:f0:e0:b5:c8:79:31:72:f4:85:d8: - 3d:20:04:cb:28:dc:22:bf:ce:43:7f:72:39:7e:b4:aa:c2:a4: - e4:25:dd:af:0e:8c:a9:fc:23:a8:4e:3d:52:fe:d4:27:dd:08: - de:4c:b6:6c:9c:9c:11:87:11:6e:cb:f0:43:38:4b:62:71:e7: - 09:d0:01:3f:5c:51:03:41:06:03:76:27:17:15:19:26:a4:6d: - 17:63:3e:00:d3:d4:02:17:33:17:87:57:9d:33:b5:7e:76:98: - 3c:a5:68:da:e6:08:76:c5:3b:ea:6a:58:4c:16:da:92:d4:b3: - a6:d0:2e:4d:07:7d:ed:57:fa:e1:2a:09:bc:1e:4c:94:3e:f2: - 11:41:4c:03:a8:08:a4:4c:7a:f1:42:f2:8f:ae:d5:15:5a:c5: - 22:d3:b0:d8:d5:1d:10:6a:ee:ed:a1:4d:b4:2c:33:e2:0b:c3: - 92:91:c7:c9:f4:f4:2c:53:8a:f6:1a:80:ff:dc:b3:91:2d:51: - 0d:cf:e8:d3:89:3f:b1:90:76:44:8f:b1:f9:c1:60:4d:03:28: - 74:72:ba:26 ------BEGIN CERTIFICATE----- -MIIC3DCCAcSgAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwEQyBD -QTAeFw0xOTEwMTgyMjI0MTBaFw0yOTEwMTUyMjI0MTBaMA8xDTALBgNVBAMMBEIg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWvwuhefcS0Yzs42NK -xzBTEA1gQYQnmfCfpJ7sGSQogAuOVQwTqxZyK0OqrPoPskeuo6KNZoUrL7HG8r22 -XjvRKw3CvJZP2V8sdHt/KixShPZxp4ff006+51NwzfBHW+RbW2RJN1uTmQl4IvIE -nq+qkfYipVldnsfNxREanpk7Ga1RWfUO7DDyfmQzkc3wJhL+y/JuZ6LslG6ylz5R -wMoK5IrzxvrNVZURV169m7lw1ASv8sheHvuz1wMKDr7P+seXY3rgtCIHpxi2pxrV -IybBxDmDPEVTnf2kF2KNvfJLQNOFHQY6JE+PZXfNyehkpFUWII8XXPFrdduOrOss -lygJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHc80qqhyX3+ -tpA/yxv2ODcMKBr3MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEA -jDWapGEIbmDZnq+rIonKyjkDnF1OX9zl3DPOGa8Z/dvJp8rYZXNCczVwV5nw4LXI -eTFy9IXYPSAEyyjcIr/OQ39yOX60qsKk5CXdrw6MqfwjqE49Uv7UJ90I3ky2bJyc -EYcRbsvwQzhLYnHnCdABP1xRA0EGA3YnFxUZJqRtF2M+ANPUAhczF4dXnTO1fnaY -PKVo2uYIdsU76mpYTBbaktSzptAuTQd97Vf64SoJvB5MlD7yEUFMA6gIpEx68ULy -j67VFVrFItOw2NUdEGru7aFNtCwz4gvDkpHHyfT0LFOK9hqA/9yzkS1RDc/o04k/ -sZB2RI+x+cFgTQModHK6Jg== ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4099 (0x1003) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=D Root CA - Validity - Not Before: Oct 18 22:24:10 2019 GMT - Not After : Oct 15 22:24:10 2029 GMT - Subject: CN=C CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:97:21:4e:ff:ff:22:dd:de:6d:cc:05:75:3b:37: - 80:28:9f:61:8b:a2:ac:9b:3b:b1:e6:3a:a4:35:ce: - 7b:95:ce:d2:2f:95:f1:c2:51:c2:9d:21:71:dd:06: - 3a:eb:67:68:59:2d:f6:19:b1:7d:98:06:c2:c4:19: - 34:2a:00:0a:f1:0a:0b:76:39:ba:0f:e9:69:bc:14: - c9:fa:38:b4:f6:38:55:45:3d:21:c7:b8:20:e3:47: - ac:5b:9e:ec:7f:a9:8b:72:00:79:5c:25:13:01:86: - a9:6a:d9:12:b1:d2:3a:a1:cc:e5:e0:63:b2:0d:ea: - aa:a7:42:f9:de:cf:de:e0:15:9b:6e:cd:86:81:d8: - 5f:3f:a1:7b:bc:97:31:40:0e:17:a3:aa:c4:48:5a: - 5c:c8:e5:89:92:68:85:08:6c:cb:31:35:9c:fb:1e: - d3:66:35:ee:d9:d7:ea:b8:5c:3e:d0:60:94:4c:3d: - 2b:21:6b:72:b8:3a:16:e4:f1:ea:97:74:0c:cf:27: - a5:03:c1:b7:c3:d9:4d:5a:3d:c5:8e:3f:ca:99:b4: - b6:59:c6:9f:22:38:0d:4d:c7:f7:11:f8:d0:71:99: - 5d:4b:e2:30:62:00:fb:01:c9:ca:3e:ed:6a:d8:6d: - 2d:0f:1a:77:33:02:b4:41:b3:ba:f6:1c:38:be:54: - c9:73 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 63:B1:47:26:FC:DB:79:3F:76:96:69:4D:EA:7E:D0:B7:6A:D2:3F:A8 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - b2:52:23:e9:38:02:24:58:bf:cb:b4:62:f3:97:74:9a:24:4a: - aa:c6:bd:59:5b:d7:33:a4:7e:8f:10:3a:09:44:a3:a1:90:f2: - 32:c2:e9:a7:e5:16:ca:c9:6c:a1:4e:94:8a:e6:f0:dd:f2:59: - 2c:7c:62:84:c8:28:e2:5f:f1:6f:c7:04:21:49:3f:24:8f:fb: - 4c:38:1c:3a:5d:18:e9:f2:5d:28:5c:a8:ce:01:12:aa:17:f2: - c0:bb:87:43:70:d7:8a:59:e7:80:38:ef:df:72:b3:1c:70:88: - a8:65:66:40:b3:25:1d:57:f4:a8:c1:34:e6:30:1e:2d:b5:b7: - fb:1f:99:4b:e1:fa:03:af:79:4e:5f:3c:39:02:14:e6:8b:06: - 1b:5b:34:c7:c1:c0:30:48:2e:1c:16:ab:6b:4f:25:37:1e:a7: - f1:fd:09:29:23:ae:89:21:31:fd:64:7c:67:37:ca:bc:26:47: - fd:aa:d5:45:84:e1:27:47:fb:cb:05:10:cc:5b:55:f2:fb:c1: - 08:55:89:43:0c:36:5e:4f:16:3b:35:3c:1c:61:59:90:ae:8a: - a3:53:4d:23:da:22:80:36:5c:e9:ff:49:9e:94:eb:4f:6c:15: - d0:4c:6c:8b:21:eb:18:24:44:d8:72:4e:de:5f:47:d2:6c:55: - dd:4f:c6:81 ------BEGIN CERTIFICATE----- -MIIC4TCCAcmgAwIBAgICEAMwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJRCBS -b290IENBMB4XDTE5MTAxODIyMjQxMFoXDTI5MTAxNTIyMjQxMFowDzENMAsGA1UE -AwwEQyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJchTv//It3e -bcwFdTs3gCifYYuirJs7seY6pDXOe5XO0i+V8cJRwp0hcd0GOutnaFkt9hmxfZgG -wsQZNCoACvEKC3Y5ug/pabwUyfo4tPY4VUU9Ice4IONHrFue7H+pi3IAeVwlEwGG -qWrZErHSOqHM5eBjsg3qqqdC+d7P3uAVm27NhoHYXz+he7yXMUAOF6OqxEhaXMjl -iZJohQhsyzE1nPse02Y17tnX6rhcPtBglEw9KyFrcrg6FuTx6pd0DM8npQPBt8PZ -TVo9xY4/ypm0tlnGnyI4DU3H9xH40HGZXUviMGIA+wHJyj7tathtLQ8adzMCtEGz -uvYcOL5UyXMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUY7FH -JvzbeT92lmlN6n7Qt2rSP6gwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUA -A4IBAQCyUiPpOAIkWL/LtGLzl3SaJEqqxr1ZW9czpH6PEDoJRKOhkPIywumn5RbK -yWyhTpSK5vDd8lksfGKEyCjiX/FvxwQhST8kj/tMOBw6XRjp8l0oXKjOARKqF/LA -u4dDcNeKWeeAOO/fcrMccIioZWZAsyUdV/SowTTmMB4ttbf7H5lL4foDr3lOXzw5 -AhTmiwYbWzTHwcAwSC4cFqtrTyU3Hqfx/QkpI66JITH9ZHxnN8q8Jkf9qtVFhOEn -R/vLBRDMW1Xy+8EIVYlDDDZeTxY7NTwcYVmQroqjU00j2iKANlzp/0melOtPbBXQ -TGyLIesYJETYck7eX0fSbFXdT8aB ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 37:4c:99:18:7e:b3:0c:6e:53:25:45:1c:0c:89:17:9a:88:0c:86:44 - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = D Root CA - Validity - Not Before: Oct 18 22:24:10 2019 GMT - Not After : Oct 15 22:24:10 2029 GMT - Subject: CN = D Root CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:dc:15:a5:eb:d7:9f:c0:de:cc:53:f2:2e:f2:d6: - e4:22:66:16:f9:39:25:0c:f9:c4:51:19:1c:7f:ca: - 16:64:fb:c1:8f:18:b4:77:cc:c1:6f:99:ce:54:59: - 2a:e8:5f:14:fc:2f:58:51:ed:01:bb:31:93:13:9a: - f5:49:07:f7:e8:ae:fa:34:78:1b:d2:1e:3a:c8:4a: - a4:30:c5:5c:22:09:ad:3d:b8:cc:0c:56:24:ba:fd: - ab:b8:2d:dd:92:e3:f4:88:a3:64:f0:e6:b6:f9:f2: - ac:86:3c:77:e0:19:26:4b:0e:dc:f1:97:05:9e:13: - de:0c:1d:72:47:ec:ed:1c:09:18:f8:f3:7d:55:ba: - 59:06:9f:3a:5f:08:ee:cd:35:b2:3c:29:e1:fb:4a: - a3:4d:1c:fa:59:62:da:ac:13:bc:ad:d2:da:9c:e8: - ee:10:e8:36:e2:97:04:e3:04:ca:af:d6:97:7e:e9: - 44:86:8d:46:9f:7d:58:2f:be:0a:1d:34:7c:e3:f0: - 0b:9a:50:78:ff:d2:ee:6d:4c:2a:b0:e6:a5:80:45: - 4c:9c:dd:a6:df:93:6d:ae:e7:98:c2:4b:c4:c5:d6: - 55:9a:d4:df:ba:00:a5:0f:1d:23:b4:63:75:cc:c7: - ff:08:8e:1c:77:bb:6b:cb:cc:b4:e0:81:ff:56:fa: - 45:b3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - EE:13:A0:76:5C:58:BE:8C:5A:67:31:CA:23:35:67:55:0D:51:0E:12 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 3d:ad:ea:a5:49:bb:c6:f0:0a:5c:2a:2a:8c:be:7f:24:9d:55: - 83:85:78:cb:c5:02:5a:eb:cd:f5:36:aa:df:32:8b:3f:19:f6: - c0:9e:66:20:12:81:e9:e1:39:48:31:e8:92:c8:b1:af:fa:1f: - b7:07:8b:54:2e:d2:55:79:c8:c8:44:75:b0:fe:d7:d2:8d:93: - 58:82:eb:ff:49:69:93:63:de:df:19:ba:e0:a3:79:41:48:2c: - 18:f4:33:a5:de:d9:00:da:e7:05:7e:88:74:8c:df:01:ec:17: - f8:37:81:eb:00:4e:03:9b:0a:09:15:4d:b1:f5:72:fe:8a:1f: - c0:f9:c6:26:3b:13:52:c3:59:c7:bf:cc:1e:79:a6:93:62:65: - 56:25:e2:58:8b:df:db:2a:4f:a7:6a:33:f7:f9:d1:99:42:be: - ee:dc:e4:a1:34:23:9b:40:77:d5:e4:45:b3:b1:93:9a:d0:48: - 0a:34:31:c8:f1:60:1c:fe:10:76:74:7e:f5:96:47:19:ef:3a: - 84:b2:0e:f3:74:23:91:9b:3f:51:7c:e4:3a:b5:40:50:ba:c6: - 58:f9:ea:c8:b6:5c:1d:76:ac:ac:23:d0:f1:13:86:fb:4d:19: - 1d:99:32:21:f7:56:8a:7f:c3:90:ca:51:3a:73:a1:27:64:6b: - 1d:9b:53:1d ------BEGIN CERTIFICATE----- -MIIC+DCCAeCgAwIBAgIUN0yZGH6zDG5TJUUcDIkXmogMhkQwDQYJKoZIhvcNAQEL -BQAwFDESMBAGA1UEAwwJRCBSb290IENBMB4XDTE5MTAxODIyMjQxMFoXDTI5MTAx -NTIyMjQxMFowFDESMBAGA1UEAwwJRCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA3BWl69efwN7MU/Iu8tbkImYW+TklDPnEURkcf8oWZPvB -jxi0d8zBb5nOVFkq6F8U/C9YUe0BuzGTE5r1SQf36K76NHgb0h46yEqkMMVcIgmt -PbjMDFYkuv2ruC3dkuP0iKNk8Oa2+fKshjx34BkmSw7c8ZcFnhPeDB1yR+ztHAkY -+PN9VbpZBp86XwjuzTWyPCnh+0qjTRz6WWLarBO8rdLanOjuEOg24pcE4wTKr9aX -fulEho1Gn31YL74KHTR84/ALmlB4/9LubUwqsOalgEVMnN2m35NtrueYwkvExdZV -mtTfugClDx0jtGN1zMf/CI4cd7try8y04IH/VvpFswIDAQABo0IwQDAPBgNVHRMB -Af8EBTADAQH/MB0GA1UdDgQWBBTuE6B2XFi+jFpnMcojNWdVDVEOEjAOBgNVHQ8B -Af8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAD2t6qVJu8bwClwqKoy+fySdVYOF -eMvFAlrrzfU2qt8yiz8Z9sCeZiASgenhOUgx6JLIsa/6H7cHi1Qu0lV5yMhEdbD+ -19KNk1iC6/9JaZNj3t8ZuuCjeUFILBj0M6Xe2QDa5wV+iHSM3wHsF/g3gesATgOb -CgkVTbH1cv6KH8D5xiY7E1LDWce/zB55ppNiZVYl4liL39sqT6dqM/f50ZlCvu7c -5KE0I5tAd9XkRbOxk5rQSAo0McjxYBz+EHZ0fvWWRxnvOoSyDvN0I5GbP1F85Dq1 -QFC6xlj56si2XB12rKwj0PEThvtNGR2ZMiH3Vop/w5DKUTpzoSdkax2bUx0= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/redundant-validated-chain-root.pem b/src/pki/testdata/ssl/certificates/redundant-validated-chain-root.pem deleted file mode 100644 index 6fadba0..0000000 --- a/src/pki/testdata/ssl/certificates/redundant-validated-chain-root.pem +++ /dev/null @@ -1,75 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 7d:19:e5:55:d1:85:7c:54:62:f6:56:00:7a:cf:78:a9:38:29:81:ff - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = C CA - Validity - Not Before: Oct 18 22:24:10 2019 GMT - Not After : Oct 15 22:24:10 2029 GMT - Subject: CN = C CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:97:21:4e:ff:ff:22:dd:de:6d:cc:05:75:3b:37: - 80:28:9f:61:8b:a2:ac:9b:3b:b1:e6:3a:a4:35:ce: - 7b:95:ce:d2:2f:95:f1:c2:51:c2:9d:21:71:dd:06: - 3a:eb:67:68:59:2d:f6:19:b1:7d:98:06:c2:c4:19: - 34:2a:00:0a:f1:0a:0b:76:39:ba:0f:e9:69:bc:14: - c9:fa:38:b4:f6:38:55:45:3d:21:c7:b8:20:e3:47: - ac:5b:9e:ec:7f:a9:8b:72:00:79:5c:25:13:01:86: - a9:6a:d9:12:b1:d2:3a:a1:cc:e5:e0:63:b2:0d:ea: - aa:a7:42:f9:de:cf:de:e0:15:9b:6e:cd:86:81:d8: - 5f:3f:a1:7b:bc:97:31:40:0e:17:a3:aa:c4:48:5a: - 5c:c8:e5:89:92:68:85:08:6c:cb:31:35:9c:fb:1e: - d3:66:35:ee:d9:d7:ea:b8:5c:3e:d0:60:94:4c:3d: - 2b:21:6b:72:b8:3a:16:e4:f1:ea:97:74:0c:cf:27: - a5:03:c1:b7:c3:d9:4d:5a:3d:c5:8e:3f:ca:99:b4: - b6:59:c6:9f:22:38:0d:4d:c7:f7:11:f8:d0:71:99: - 5d:4b:e2:30:62:00:fb:01:c9:ca:3e:ed:6a:d8:6d: - 2d:0f:1a:77:33:02:b4:41:b3:ba:f6:1c:38:be:54: - c9:73 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 63:B1:47:26:FC:DB:79:3F:76:96:69:4D:EA:7E:D0:B7:6A:D2:3F:A8 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 8e:4d:6c:49:c9:9c:f9:cb:a0:81:9b:65:31:c7:bc:8c:c0:75: - 4d:60:16:ef:bb:b6:b4:2a:5d:68:34:d7:e0:53:1f:3e:84:b6: - aa:7d:fd:a1:c9:29:88:83:2e:ab:f3:87:43:a8:d8:5c:a8:1b: - e0:58:50:84:03:05:15:03:01:07:30:d0:4a:f9:95:f1:86:be: - 45:5b:31:f0:88:12:22:d7:7a:fb:0b:9f:95:41:ba:df:40:e3: - b2:71:e7:4e:09:91:1c:5f:51:b3:ce:a5:00:0b:82:d1:04:f2: - 1c:5a:14:4b:1b:3f:2d:41:11:7c:33:37:89:56:b4:b7:fa:d8: - b9:20:8d:bd:a6:68:60:2a:3c:aa:61:38:74:d4:0a:16:41:70: - d8:75:c4:6d:04:a8:b6:a5:0f:e7:02:52:0b:7d:44:d6:1b:2f: - ca:06:aa:61:3d:8d:82:3f:34:c5:bb:08:69:6f:6c:b7:53:e5: - 52:3d:dd:7b:1c:1f:d3:7d:38:43:ca:c7:75:9a:a8:a1:93:27: - 13:b0:57:1a:ff:22:90:1f:b2:69:da:7a:a4:2f:16:51:fa:81: - 6c:ed:c0:19:42:58:b5:21:67:c1:54:93:db:55:86:c7:97:09: - 76:18:32:55:2a:b4:b1:ac:12:bc:3f:00:3d:b5:1c:ef:55:c4: - f0:6c:a1:17 ------BEGIN CERTIFICATE----- -MIIC7jCCAdagAwIBAgIUfRnlVdGFfFRi9lYAes94qTgpgf8wDQYJKoZIhvcNAQEL -BQAwDzENMAsGA1UEAwwEQyBDQTAeFw0xOTEwMTgyMjI0MTBaFw0yOTEwMTUyMjI0 -MTBaMA8xDTALBgNVBAMMBEMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCXIU7//yLd3m3MBXU7N4Aon2GLoqybO7HmOqQ1znuVztIvlfHCUcKdIXHd -BjrrZ2hZLfYZsX2YBsLEGTQqAArxCgt2OboP6Wm8FMn6OLT2OFVFPSHHuCDjR6xb -nux/qYtyAHlcJRMBhqlq2RKx0jqhzOXgY7IN6qqnQvnez97gFZtuzYaB2F8/oXu8 -lzFADhejqsRIWlzI5YmSaIUIbMsxNZz7HtNmNe7Z1+q4XD7QYJRMPSsha3K4Ohbk -8eqXdAzPJ6UDwbfD2U1aPcWOP8qZtLZZxp8iOA1Nx/cR+NBxmV1L4jBiAPsByco+ -7WrYbS0PGnczArRBs7r2HDi+VMlzAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8w -HQYDVR0OBBYEFGOxRyb823k/dpZpTep+0Ldq0j+oMA4GA1UdDwEB/wQEAwIBBjAN -BgkqhkiG9w0BAQsFAAOCAQEAjk1sScmc+cuggZtlMce8jMB1TWAW77u2tCpdaDTX -4FMfPoS2qn39ockpiIMuq/OHQ6jYXKgb4FhQhAMFFQMBBzDQSvmV8Ya+RVsx8IgS -Itd6+wuflUG630DjsnHnTgmRHF9Rs86lAAuC0QTyHFoUSxs/LUERfDM3iVa0t/rY -uSCNvaZoYCo8qmE4dNQKFkFw2HXEbQSotqUP5wJSC31E1hsvygaqYT2Ngj80xbsI -aW9st1PlUj3dexwf0304Q8rHdZqooZMnE7BXGv8ikB+yadp6pC8WUfqBbO3AGUJY -tSFnwVST21WGx5cJdhgyVSq0sawSvD8APbUc71XE8GyhFw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/redundant-validated-chain.pem b/src/pki/testdata/ssl/certificates/redundant-validated-chain.pem deleted file mode 100644 index 8239cdc..0000000 --- a/src/pki/testdata/ssl/certificates/redundant-validated-chain.pem +++ /dev/null @@ -1,259 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDsdrSxnyz5qQNr -JRBll0qjD5zDYW41+A+X2rDMDONOaLlO9OODtjvoCRBg5KUJ2y9a/Vsui77szkLD -7h4lJPTlxGyFNxgtfyzSuXEb5ZBP0kYD+RXfafIeTmQECIFwsmnc3ytonl+Hzr+g -6G2w12qNWOL3DqrxgOc/9UeZKuTf4ERM7x1cfBmA3keW0M8PqJ9rVSG7zzLreago -Q81pmlWVttFrZWt2PAq6DH7BEdN+cbIEa6bSFOmBW24r+TJxxDc9X95xXNdC/LYn -fb9tN+1gPDd1bcjeEdPIg0EMqb0BtfcaUjZojownuIt04fcaet4OaVoo/HNhy9XM -GqqoHQeHAgMBAAECggEAIBGZP92Og+1gAU/tgVmbTbH4WKcGA1u5AacvAv1cdm3N -c9/SWzKDvVw9VGat20BWk8h4bT+WjRcMBvZsMC1q6R5SeV6XcNQmiA2OQXJIuAqU -ZEWLqdj8dQ+8kK92nooTwVii0nVoD0sCwhfDiJAuayz62vaqSEZrFkl1hFhE4feN -jpNOjzU54nbtmAnT1umyO13pJxTcRjetTJioIsl/uvTGuIhBsY6gqYchtPtZ0c35 -0/YNOMtAWKERDgpyFwBNmUA9YunmS603ThA5SB7rbaMbANyxXoGRcRjNavI67ues -fgvRY/GghnY2sKroyc9CIsnghrGAITW6miQw3uWRQQKBgQD4mTh7g0DP3bfHUIqm -af7UmPV7gPrJItlvgrYRYy4zjnxvNk/kcfgrJATMAnqGX5KrbXFX6AdfanRRnJcP -gCojd1C3v3cotUVky9r91v/1Hn1fe2hDzy/qrbwh2WBATPKCJjL0PuXNhGsfqoKG -SMhvqy95sfFnqvy4f4pUPh6pIwKBgQDzgP7WUAVWUcmjjxq6QM8WfDD5RMuPfAL4 -skkpm3WB/H+xUeqax+KSKNDDrWTfhWpTucZt0v84aG6NQz4vzkc5DrRnWltkqFgR -NLU1esrgn1bnh/iNQt+bmw8OgH0puJsI82wBa7QjGYu3ocW043Avp1DS2ocMGMzu -S+hFvBG4TQKBgFDI8drpVzl1cpBZswTLMx2BK1zcGCMeqQwcrO/PjCcC6Zr2SlYR -VzUluk1VjN1312DP6uJHK4YtQOl4enp2CruFvXxIwv8+kPNlb5/Hq1vLcbCCmOpY -PNkFZjqVujqLBs+WfD505ha4LluW/F2I72GifoYMdkdbAE8wWxJvMWWDAoGADRQg -m+IwZzJ9YguNo/NXLB3/g2PuiwZeIn1w8IspBJJLSXrc3vNdd/w5OklV4auIynZv -8fYjPyRcy7mQ3YB20tm3VtXDkuR31nS+RuERhH8Ka+UhtHSjDfiGFoFQN61ypkhs -xKbERh5ZIsPNmqmcnPKfpLOYDU5Hs4TgNN6lFQECgYA/0Y25oCHqLH9MfPGs2gMJ -BTeMxzAIsA2lwhr2/WOANHA9cWnHtI3d1eNequZpNgxtKbw2mxbM+IfnO50czV7g -5PJPvU79T6d64u1AOtoKbCxgm9wTL8UmEPvEInnT8SfnECPxW9Pwey2rC39527jl -i5FkIsSiwU8YIZk73YCqDg== ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4096 (0x1000) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=B CA - Validity - Not Before: Oct 18 22:24:10 2019 GMT - Not After : Oct 15 22:24:10 2029 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:ec:76:b4:b1:9f:2c:f9:a9:03:6b:25:10:65:97: - 4a:a3:0f:9c:c3:61:6e:35:f8:0f:97:da:b0:cc:0c: - e3:4e:68:b9:4e:f4:e3:83:b6:3b:e8:09:10:60:e4: - a5:09:db:2f:5a:fd:5b:2e:8b:be:ec:ce:42:c3:ee: - 1e:25:24:f4:e5:c4:6c:85:37:18:2d:7f:2c:d2:b9: - 71:1b:e5:90:4f:d2:46:03:f9:15:df:69:f2:1e:4e: - 64:04:08:81:70:b2:69:dc:df:2b:68:9e:5f:87:ce: - bf:a0:e8:6d:b0:d7:6a:8d:58:e2:f7:0e:aa:f1:80: - e7:3f:f5:47:99:2a:e4:df:e0:44:4c:ef:1d:5c:7c: - 19:80:de:47:96:d0:cf:0f:a8:9f:6b:55:21:bb:cf: - 32:eb:79:a8:28:43:cd:69:9a:55:95:b6:d1:6b:65: - 6b:76:3c:0a:ba:0c:7e:c1:11:d3:7e:71:b2:04:6b: - a6:d2:14:e9:81:5b:6e:2b:f9:32:71:c4:37:3d:5f: - de:71:5c:d7:42:fc:b6:27:7d:bf:6d:37:ed:60:3c: - 37:75:6d:c8:de:11:d3:c8:83:41:0c:a9:bd:01:b5: - f7:1a:52:36:68:8e:8c:27:b8:8b:74:e1:f7:1a:7a: - de:0e:69:5a:28:fc:73:61:cb:d5:cc:1a:aa:a8:1d: - 07:87 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E7:8D:C4:21:0B:CE:12:A1:F7:05:E6:52:AF:3B:A6:10:BA:71:68:3D - X509v3 Authority Key Identifier: - keyid:77:3C:D2:AA:A1:C9:7D:FE:B6:90:3F:CB:1B:F6:38:37:0C:28:1A:F7 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - 17:ff:16:47:18:ed:d0:b5:54:fb:b6:02:c7:e4:c1:9a:4d:99: - 54:cb:ca:df:75:25:d4:e5:b5:20:74:3d:ac:f9:e2:a1:87:a5: - d1:a2:da:48:c0:71:12:9f:84:9e:10:70:9c:bd:4c:74:85:90: - b8:15:9c:b2:fb:f2:4c:03:7c:7a:a6:6e:c4:91:19:93:79:a4: - 47:96:fa:30:15:a3:02:20:d0:07:23:70:16:db:73:aa:6e:61: - b9:b1:0f:a9:e5:f8:d4:4f:34:19:a1:2e:fa:d6:f0:97:76:8c: - ff:08:54:8e:dc:a3:49:c9:a3:d8:e0:c3:71:e9:8f:98:3d:dd: - 25:73:c4:da:c3:fa:43:19:48:39:5c:43:8c:30:7a:cf:de:5a: - c9:ee:8e:2e:88:b0:e7:84:74:5f:d4:91:a6:65:8d:bc:fd:10: - 51:3c:53:32:fe:dd:03:84:9b:b0:64:58:9d:99:b4:bc:5f:ce: - 30:af:67:58:f5:6c:02:67:20:f9:aa:dc:d6:96:fc:00:e8:6d: - 72:48:12:a9:f9:dc:4b:00:26:fb:ab:1f:00:ac:e2:11:f9:36: - 2c:bd:a9:1c:86:b5:77:c6:97:6d:29:ec:3f:d3:94:95:46:54: - a4:2d:66:7e:9d:d7:1b:ea:21:f7:39:a3:b4:fb:e9:b6:38:4d: - eb:49:1d:83 ------BEGIN CERTIFICATE----- -MIIDbDCCAlSgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwEQiBD -QTAeFw0xOTEwMTgyMjI0MTBaFw0yOTEwMTUyMjI0MTBaMGAxCzAJBgNVBAYTAlVT -MRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAw -DgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDsdrSxnyz5qQNrJRBll0qjD5zDYW41+A+X2rDM -DONOaLlO9OODtjvoCRBg5KUJ2y9a/Vsui77szkLD7h4lJPTlxGyFNxgtfyzSuXEb -5ZBP0kYD+RXfafIeTmQECIFwsmnc3ytonl+Hzr+g6G2w12qNWOL3DqrxgOc/9UeZ -KuTf4ERM7x1cfBmA3keW0M8PqJ9rVSG7zzLreagoQ81pmlWVttFrZWt2PAq6DH7B -EdN+cbIEa6bSFOmBW24r+TJxxDc9X95xXNdC/LYnfb9tN+1gPDd1bcjeEdPIg0EM -qb0BtfcaUjZojownuIt04fcaet4OaVoo/HNhy9XMGqqoHQeHAgMBAAGjgYAwfjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTnjcQhC84SofcF5lKvO6YQunFoPTAfBgNV -HSMEGDAWgBR3PNKqocl9/raQP8sb9jg3DCga9zAdBgNVHSUEFjAUBggrBgEFBQcD -AQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEA -F/8WRxjt0LVU+7YCx+TBmk2ZVMvK33Ul1OW1IHQ9rPnioYel0aLaSMBxEp+EnhBw -nL1MdIWQuBWcsvvyTAN8eqZuxJEZk3mkR5b6MBWjAiDQByNwFttzqm5hubEPqeX4 -1E80GaEu+tbwl3aM/whUjtyjScmj2ODDcemPmD3dJXPE2sP6QxlIOVxDjDB6z95a -ye6OLoiw54R0X9SRpmWNvP0QUTxTMv7dA4SbsGRYnZm0vF/OMK9nWPVsAmcg+arc -1pb8AOhtckgSqfncSwAm+6sfAKziEfk2LL2pHIa1d8aXbSnsP9OUlUZUpC1mfp3X -G+oh9zmjtPvptjhN60kdgw== ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4097 (0x1001) - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=C CA - Validity - Not Before: Oct 18 22:24:10 2019 GMT - Not After : Oct 15 22:24:10 2029 GMT - Subject: CN=B CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:96:bf:0b:a1:79:f7:12:d1:8c:ec:e3:63:4a:c7: - 30:53:10:0d:60:41:84:27:99:f0:9f:a4:9e:ec:19: - 24:28:80:0b:8e:55:0c:13:ab:16:72:2b:43:aa:ac: - fa:0f:b2:47:ae:a3:a2:8d:66:85:2b:2f:b1:c6:f2: - bd:b6:5e:3b:d1:2b:0d:c2:bc:96:4f:d9:5f:2c:74: - 7b:7f:2a:2c:52:84:f6:71:a7:87:df:d3:4e:be:e7: - 53:70:cd:f0:47:5b:e4:5b:5b:64:49:37:5b:93:99: - 09:78:22:f2:04:9e:af:aa:91:f6:22:a5:59:5d:9e: - c7:cd:c5:11:1a:9e:99:3b:19:ad:51:59:f5:0e:ec: - 30:f2:7e:64:33:91:cd:f0:26:12:fe:cb:f2:6e:67: - a2:ec:94:6e:b2:97:3e:51:c0:ca:0a:e4:8a:f3:c6: - fa:cd:55:95:11:57:5e:bd:9b:b9:70:d4:04:af:f2: - c8:5e:1e:fb:b3:d7:03:0a:0e:be:cf:fa:c7:97:63: - 7a:e0:b4:22:07:a7:18:b6:a7:1a:d5:23:26:c1:c4: - 39:83:3c:45:53:9d:fd:a4:17:62:8d:bd:f2:4b:40: - d3:85:1d:06:3a:24:4f:8f:65:77:cd:c9:e8:64:a4: - 55:16:20:8f:17:5c:f1:6b:75:db:8e:ac:eb:2c:97: - 28:09 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 77:3C:D2:AA:A1:C9:7D:FE:B6:90:3F:CB:1B:F6:38:37:0C:28:1A:F7 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 8c:35:9a:a4:61:08:6e:60:d9:9e:af:ab:22:89:ca:ca:39:03: - 9c:5d:4e:5f:dc:e5:dc:33:ce:19:af:19:fd:db:c9:a7:ca:d8: - 65:73:42:73:35:70:57:99:f0:e0:b5:c8:79:31:72:f4:85:d8: - 3d:20:04:cb:28:dc:22:bf:ce:43:7f:72:39:7e:b4:aa:c2:a4: - e4:25:dd:af:0e:8c:a9:fc:23:a8:4e:3d:52:fe:d4:27:dd:08: - de:4c:b6:6c:9c:9c:11:87:11:6e:cb:f0:43:38:4b:62:71:e7: - 09:d0:01:3f:5c:51:03:41:06:03:76:27:17:15:19:26:a4:6d: - 17:63:3e:00:d3:d4:02:17:33:17:87:57:9d:33:b5:7e:76:98: - 3c:a5:68:da:e6:08:76:c5:3b:ea:6a:58:4c:16:da:92:d4:b3: - a6:d0:2e:4d:07:7d:ed:57:fa:e1:2a:09:bc:1e:4c:94:3e:f2: - 11:41:4c:03:a8:08:a4:4c:7a:f1:42:f2:8f:ae:d5:15:5a:c5: - 22:d3:b0:d8:d5:1d:10:6a:ee:ed:a1:4d:b4:2c:33:e2:0b:c3: - 92:91:c7:c9:f4:f4:2c:53:8a:f6:1a:80:ff:dc:b3:91:2d:51: - 0d:cf:e8:d3:89:3f:b1:90:76:44:8f:b1:f9:c1:60:4d:03:28: - 74:72:ba:26 ------BEGIN CERTIFICATE----- -MIIC3DCCAcSgAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAwwEQyBD -QTAeFw0xOTEwMTgyMjI0MTBaFw0yOTEwMTUyMjI0MTBaMA8xDTALBgNVBAMMBEIg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWvwuhefcS0Yzs42NK -xzBTEA1gQYQnmfCfpJ7sGSQogAuOVQwTqxZyK0OqrPoPskeuo6KNZoUrL7HG8r22 -XjvRKw3CvJZP2V8sdHt/KixShPZxp4ff006+51NwzfBHW+RbW2RJN1uTmQl4IvIE -nq+qkfYipVldnsfNxREanpk7Ga1RWfUO7DDyfmQzkc3wJhL+y/JuZ6LslG6ylz5R -wMoK5IrzxvrNVZURV169m7lw1ASv8sheHvuz1wMKDr7P+seXY3rgtCIHpxi2pxrV -IybBxDmDPEVTnf2kF2KNvfJLQNOFHQY6JE+PZXfNyehkpFUWII8XXPFrdduOrOss -lygJAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHc80qqhyX3+ -tpA/yxv2ODcMKBr3MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEA -jDWapGEIbmDZnq+rIonKyjkDnF1OX9zl3DPOGa8Z/dvJp8rYZXNCczVwV5nw4LXI -eTFy9IXYPSAEyyjcIr/OQ39yOX60qsKk5CXdrw6MqfwjqE49Uv7UJ90I3ky2bJyc -EYcRbsvwQzhLYnHnCdABP1xRA0EGA3YnFxUZJqRtF2M+ANPUAhczF4dXnTO1fnaY -PKVo2uYIdsU76mpYTBbaktSzptAuTQd97Vf64SoJvB5MlD7yEUFMA6gIpEx68ULy -j67VFVrFItOw2NUdEGru7aFNtCwz4gvDkpHHyfT0LFOK9hqA/9yzkS1RDc/o04k/ -sZB2RI+x+cFgTQModHK6Jg== ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 7d:19:e5:55:d1:85:7c:54:62:f6:56:00:7a:cf:78:a9:38:29:81:ff - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN = C CA - Validity - Not Before: Oct 18 22:24:10 2019 GMT - Not After : Oct 15 22:24:10 2029 GMT - Subject: CN = C CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:97:21:4e:ff:ff:22:dd:de:6d:cc:05:75:3b:37: - 80:28:9f:61:8b:a2:ac:9b:3b:b1:e6:3a:a4:35:ce: - 7b:95:ce:d2:2f:95:f1:c2:51:c2:9d:21:71:dd:06: - 3a:eb:67:68:59:2d:f6:19:b1:7d:98:06:c2:c4:19: - 34:2a:00:0a:f1:0a:0b:76:39:ba:0f:e9:69:bc:14: - c9:fa:38:b4:f6:38:55:45:3d:21:c7:b8:20:e3:47: - ac:5b:9e:ec:7f:a9:8b:72:00:79:5c:25:13:01:86: - a9:6a:d9:12:b1:d2:3a:a1:cc:e5:e0:63:b2:0d:ea: - aa:a7:42:f9:de:cf:de:e0:15:9b:6e:cd:86:81:d8: - 5f:3f:a1:7b:bc:97:31:40:0e:17:a3:aa:c4:48:5a: - 5c:c8:e5:89:92:68:85:08:6c:cb:31:35:9c:fb:1e: - d3:66:35:ee:d9:d7:ea:b8:5c:3e:d0:60:94:4c:3d: - 2b:21:6b:72:b8:3a:16:e4:f1:ea:97:74:0c:cf:27: - a5:03:c1:b7:c3:d9:4d:5a:3d:c5:8e:3f:ca:99:b4: - b6:59:c6:9f:22:38:0d:4d:c7:f7:11:f8:d0:71:99: - 5d:4b:e2:30:62:00:fb:01:c9:ca:3e:ed:6a:d8:6d: - 2d:0f:1a:77:33:02:b4:41:b3:ba:f6:1c:38:be:54: - c9:73 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 63:B1:47:26:FC:DB:79:3F:76:96:69:4D:EA:7E:D0:B7:6A:D2:3F:A8 - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - 8e:4d:6c:49:c9:9c:f9:cb:a0:81:9b:65:31:c7:bc:8c:c0:75: - 4d:60:16:ef:bb:b6:b4:2a:5d:68:34:d7:e0:53:1f:3e:84:b6: - aa:7d:fd:a1:c9:29:88:83:2e:ab:f3:87:43:a8:d8:5c:a8:1b: - e0:58:50:84:03:05:15:03:01:07:30:d0:4a:f9:95:f1:86:be: - 45:5b:31:f0:88:12:22:d7:7a:fb:0b:9f:95:41:ba:df:40:e3: - b2:71:e7:4e:09:91:1c:5f:51:b3:ce:a5:00:0b:82:d1:04:f2: - 1c:5a:14:4b:1b:3f:2d:41:11:7c:33:37:89:56:b4:b7:fa:d8: - b9:20:8d:bd:a6:68:60:2a:3c:aa:61:38:74:d4:0a:16:41:70: - d8:75:c4:6d:04:a8:b6:a5:0f:e7:02:52:0b:7d:44:d6:1b:2f: - ca:06:aa:61:3d:8d:82:3f:34:c5:bb:08:69:6f:6c:b7:53:e5: - 52:3d:dd:7b:1c:1f:d3:7d:38:43:ca:c7:75:9a:a8:a1:93:27: - 13:b0:57:1a:ff:22:90:1f:b2:69:da:7a:a4:2f:16:51:fa:81: - 6c:ed:c0:19:42:58:b5:21:67:c1:54:93:db:55:86:c7:97:09: - 76:18:32:55:2a:b4:b1:ac:12:bc:3f:00:3d:b5:1c:ef:55:c4: - f0:6c:a1:17 ------BEGIN CERTIFICATE----- -MIIC7jCCAdagAwIBAgIUfRnlVdGFfFRi9lYAes94qTgpgf8wDQYJKoZIhvcNAQEL -BQAwDzENMAsGA1UEAwwEQyBDQTAeFw0xOTEwMTgyMjI0MTBaFw0yOTEwMTUyMjI0 -MTBaMA8xDTALBgNVBAMMBEMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCXIU7//yLd3m3MBXU7N4Aon2GLoqybO7HmOqQ1znuVztIvlfHCUcKdIXHd -BjrrZ2hZLfYZsX2YBsLEGTQqAArxCgt2OboP6Wm8FMn6OLT2OFVFPSHHuCDjR6xb -nux/qYtyAHlcJRMBhqlq2RKx0jqhzOXgY7IN6qqnQvnez97gFZtuzYaB2F8/oXu8 -lzFADhejqsRIWlzI5YmSaIUIbMsxNZz7HtNmNe7Z1+q4XD7QYJRMPSsha3K4Ohbk -8eqXdAzPJ6UDwbfD2U1aPcWOP8qZtLZZxp8iOA1Nx/cR+NBxmV1L4jBiAPsByco+ -7WrYbS0PGnczArRBs7r2HDi+VMlzAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8w -HQYDVR0OBBYEFGOxRyb823k/dpZpTep+0Ldq0j+oMA4GA1UdDwEB/wQEAwIBBjAN -BgkqhkiG9w0BAQsFAAOCAQEAjk1sScmc+cuggZtlMce8jMB1TWAW77u2tCpdaDTX -4FMfPoS2qn39ockpiIMuq/OHQ6jYXKgb4FhQhAMFFQMBBzDQSvmV8Ya+RVsx8IgS -Itd6+wuflUG630DjsnHnTgmRHF9Rs86lAAuC0QTyHFoUSxs/LUERfDM3iVa0t/rY -uSCNvaZoYCo8qmE4dNQKFkFw2HXEbQSotqUP5wJSC31E1hsvygaqYT2Ngj80xbsI -aW9st1PlUj3dexwf0304Q8rHdZqooZMnE7BXGv8ikB+yadp6pC8WUfqBbO3AGUJY -tSFnwVST21WGx5cJdhgyVSq0sawSvD8APbUc71XE8GyhFw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/root_ca_cert.pem b/src/pki/testdata/ssl/certificates/root_ca_cert.pem deleted file mode 100644 index de3ce07..0000000 --- a/src/pki/testdata/ssl/certificates/root_ca_cert.pem +++ /dev/null @@ -1,108 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDGgR+Sc7ZYhdmN -rLcg/ce/QLLq+uULUgGPmsHreoDB84mkPtUbYcy1z4CxGtu7JeAYv5JpJlDN5z// -DTy0HxQSq2c33gcDbBJ0gjasw9TTZJ+R7Vv2qXqknJjoZWyU4ctVc674HVCweOV0 -/7E3LMsZPaSM53ZOhlw/37PtRSNPVJszxoleEx3dfVmlBzQohicf+p5TTyq2Qq03 -EmL1cja2AhJARP7HnpWJQ1FetG7HZ4BYQ77MByi9Wf8cTI2QQvTP/VQAT0hyK+Fn -PIQXaJW/ygd734adVuMy43CHt/g69+NuZRR8u3a3F/FCjG8qNGQQNRSMhfZXv/Nc -VZ2tAxDzAgMBAAECggEAFRDg897ZzB0wUEuzB4pHJ3HLSwqjQgdK6R2IVOAkR/D7 -e3W7kfNYETdbNfBev0auuJGkDQqm6qMO9JdICOl/bNfJ1XD3l5JhhwHGoaEKtgBo -usjQyKWFwXBo/ci9tDMeLAxh1izuQjwiRb9Y5D0ZtK0JCHcL5Bt4MMMhyh1bOPDW -xHm4VS7xa6sY9CRAjaDDHMv121xTkt4/fobClhky4TqklxnsGY0TzzRi1QSEYlVZ -pgu/lv9Wp5nsAxwdXuRvY2U360yDHE5sW14r/VEZ6YB3ZTtMNFBVuydr+EAjUxf9 -BFconwqwPcnp3rONY79JuUUGo49k3KAs+2tOqV/0+QKBgQDo3R95iOHhVJ/AkprA -ohmhVLsgfySVMGYYrik6ROxQ90NyqI8StD6Abwggk207znC+a3v2Kj8xA/8rRfiF -7jXK+oPW6/2H+ASs9k1l3FqHQ7Wzt/bwZEQBUso+7zYpIchuMcPI7kmNJmG0zl6t -033onQWflytl/1u6eilpMyQZjQKBgQDaOhJT24zK7CeYlaxvVVjgbn0xzu7PajBE -tNmomkyDtaJAROkT9UvvZpBc8uhUeS0WPNLEE73SSt9jNBLcpBVAOCviuWM4emQi -cx+B7PtQF1vP7hCnnFNCCW2geUDI5/YkzJRzVqtb++Ql+nBf3CdkWcwKrAfqC7gM -byx1rMD0fwKBgQCNvFm2Ddz+3BVIj3NmIMRc8Efd5cWMkSLzjr5FW0JDnd0N4w8C -oXcRkYNu4I0yQ9tX6/BNyzUfToF4A2TbkDxpycWJgaaVph6icGB3yYHIpyvnsee6 -Ni02aP/1AoEC1C8880lp+bAHG/+In7v9LaeLeFe95bNip+VbQZQHFju42QKBgQCq -OIHzR14bKvn320gVz8zzwzuEjpVY1MuxzB+7lB/63MMivp3QI5aHtskEt7Thr2Or -5OXCbGO0lRKKnyPXV2X8IdSZlWH/u/g/puz8u42Me6vyFRCIrTeEWzZX5jzSeZ1W -Nv3UudYQefsMZL0jCObxL9oouOezeFCn4lAbuhUIoQKBgAHbFk6ubgUTr+XAMqUy -Jkwyr7dhZ+gpZODQGxx8KBw4ky6eERf3DelbVOmrojg36XzU1UpufChQ0iZ8j4k3 -tVfGZH7DV96J6ulZIVevCwMh2nHngpVyG6g3v9xozRbW0QWtwwoPsQK8k7ogr++8 -H4w57rdYCq9osKtxR3XaqTgM ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 0b:cc:00:80:c9:a0:0b:a1:c7:09:7c:9f:71:0d:90:92:cf:ee:c7:f4 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, L = Mountain View, O = Test CA, CN = Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Sep 30 17:20:08 2032 GMT - Subject: C = US, ST = California, L = Mountain View, O = Test CA, CN = Test Root CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c6:81:1f:92:73:b6:58:85:d9:8d:ac:b7:20:fd: - c7:bf:40:b2:ea:fa:e5:0b:52:01:8f:9a:c1:eb:7a: - 80:c1:f3:89:a4:3e:d5:1b:61:cc:b5:cf:80:b1:1a: - db:bb:25:e0:18:bf:92:69:26:50:cd:e7:3f:ff:0d: - 3c:b4:1f:14:12:ab:67:37:de:07:03:6c:12:74:82: - 36:ac:c3:d4:d3:64:9f:91:ed:5b:f6:a9:7a:a4:9c: - 98:e8:65:6c:94:e1:cb:55:73:ae:f8:1d:50:b0:78: - e5:74:ff:b1:37:2c:cb:19:3d:a4:8c:e7:76:4e:86: - 5c:3f:df:b3:ed:45:23:4f:54:9b:33:c6:89:5e:13: - 1d:dd:7d:59:a5:07:34:28:86:27:1f:fa:9e:53:4f: - 2a:b6:42:ad:37:12:62:f5:72:36:b6:02:12:40:44: - fe:c7:9e:95:89:43:51:5e:b4:6e:c7:67:80:58:43: - be:cc:07:28:bd:59:ff:1c:4c:8d:90:42:f4:cf:fd: - 54:00:4f:48:72:2b:e1:67:3c:84:17:68:95:bf:ca: - 07:7b:df:86:9d:56:e3:32:e3:70:87:b7:f8:3a:f7: - e3:6e:65:14:7c:bb:76:b7:17:f1:42:8c:6f:2a:34: - 64:10:35:14:8c:85:f6:57:bf:f3:5c:55:9d:ad:03: - 10:f3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 39:9a:f6:0e:eb:08:4d:a0:f0:59:b9:91:fe:b5:d8:2e:4d:6b: - 69:69:c5:d2:86:fc:a3:c2:a2:6c:ca:8d:98:1b:d2:fc:64:9b: - 96:b4:47:f9:f4:ed:6f:52:3c:b5:13:f6:1e:71:51:3b:da:54: - 93:c4:1d:94:17:23:76:9a:98:f5:9b:b8:b1:c5:ab:cd:ab:bd: - 1a:c9:00:13:e0:e3:c7:5a:a7:21:71:eb:08:2b:ec:85:5c:08: - 80:33:25:0f:1f:52:41:c4:9b:22:58:01:24:55:ef:9a:a6:ce: - e4:85:a3:19:33:4d:7e:3f:04:32:15:d5:fc:63:5f:8b:dc:99: - 2b:10:63:56:ac:60:6e:f9:db:9f:63:7b:a8:df:ab:72:28:8a: - a9:e2:8e:9d:e6:6c:7e:5b:16:ba:94:b2:23:f2:d7:31:5b:de: - 58:a0:8b:be:f4:6a:d2:d3:b4:e6:40:06:78:7a:2d:20:4c:cd: - 9d:20:dd:3b:fc:b9:f3:94:13:b0:6b:18:d7:6b:e8:bf:14:cc: - 87:30:8b:64:3f:ad:59:93:e5:f6:7c:d1:2b:f0:8e:4a:9c:c3: - 34:18:4d:62:33:bd:a6:3a:b6:3f:1f:49:5b:63:b4:01:a8:5c: - f0:98:93:35:53:2e:b2:f2:19:7f:87:0d:db:b1:80:61:38:c8: - 47:01:85:b0 ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIUC8wAgMmgC6HHCXyfcQ2Qks/ux/QwDQYJKoZIhvcNAQEL -BQAwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM -DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3Qg -Um9vdCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0zMjA5MzAxNzIwMDhaMGMxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW -aWV3MRAwDgYDVQQKDAdUZXN0IENBMRUwEwYDVQQDDAxUZXN0IFJvb3QgQ0EwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGgR+Sc7ZYhdmNrLcg/ce/QLLq -+uULUgGPmsHreoDB84mkPtUbYcy1z4CxGtu7JeAYv5JpJlDN5z//DTy0HxQSq2c3 -3gcDbBJ0gjasw9TTZJ+R7Vv2qXqknJjoZWyU4ctVc674HVCweOV0/7E3LMsZPaSM -53ZOhlw/37PtRSNPVJszxoleEx3dfVmlBzQohicf+p5TTyq2Qq03EmL1cja2AhJA -RP7HnpWJQ1FetG7HZ4BYQ77MByi9Wf8cTI2QQvTP/VQAT0hyK+FnPIQXaJW/ygd7 -34adVuMy43CHt/g69+NuZRR8u3a3F/FCjG8qNGQQNRSMhfZXv/NcVZ2tAxDzAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJsmC4qYqbsduR8c4xpA -M+2OF4irMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAOZr2DusI -TaDwWbmR/rXYLk1raWnF0ob8o8KibMqNmBvS/GSblrRH+fTtb1I8tRP2HnFRO9pU -k8QdlBcjdpqY9Zu4scWrzau9GskAE+Djx1qnIXHrCCvshVwIgDMlDx9SQcSbIlgB -JFXvmqbO5IWjGTNNfj8EMhXV/GNfi9yZKxBjVqxgbvnbn2N7qN+rciiKqeKOneZs -flsWupSyI/LXMVveWKCLvvRq0tO05kAGeHotIEzNnSDdO/y585QTsGsY12vovxTM -hzCLZD+tWZPl9nzRK/COSpzDNBhNYjO9pjq2Px9JW2O0Aahc8JiTNVMusvIZf4cN -27GAYTjIRwGFsA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/rsa-1024-1.key b/src/pki/testdata/ssl/certificates/rsa-1024-1.key deleted file mode 100644 index 5355480..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-1024-1.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAL7mb78RnGZpGth3 -z5ilQTmz77Cc6YOqZPulE83+Vnjy39YzK0csTluvbWqVMUHtYGsRF8h+gYvywt8l -zITocpE0UyeXlzsoOI8h7SgUCrYPAl9l6VydsUQ3F14uJ4LWaQcz/R601LhYrvQc -XgpDr4U1rp108EAFG01BVFFiInCVAgMBAAECgYEAtGnxuCC7r+mrTmNE1d1wHEma -wE47Po0d7NlhMzAopxvaQYSQZS5RS8MqZC1lpQnjMqyvznMImauvUddWR1GrWz6T -jU7YJiq/NJZ26qzACKCJWj9UG37fzC3L7JDMz4Yz3K/iISH7iDLIrh4JWw8A6xQL -+cq8/u4ZhjtODbxYHu0CQQDuPMkrqPolGpy6mo18jP8QuNooZmpZ5z5C72GtqqRz -AMcfIOtluBBcFef7iZoKa+YcEldjpdiCK0I3qy86G9JLAkEAzSIg3A8qta3o/U2d -TwUq5BMGUotHmG/A1MwEK5GnRHj3L0nu/HpE3tjrKrkMC4i+zVTYBop90XFBPdy6 -d+v8nwJBAM6Qdf0dLoctY+eISlVMC3x8SuvsoRoCnsF6vb7OznfInN4otPIlfknZ -1KMM1DtlAsgkPxFvoyJ6T5flHbXMmbECQQCaKR/QwYUzbDNAyeeCzztgk/uYZRu1 -L6cXRQuNQrUV/GKno0R7cdf4McTqIo8uy+G4ph6DK+lKUXbaatun7C25AkEAsr/A -yOyChfU16iQMa45LhT9FoplbNbDvczJ3EUUsf8i1I/8FG/GM4AaUMUshdwCf7hdh -ZBHFE6S2PIUV9iZVbA== ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-1024-2.key b/src/pki/testdata/ssl/certificates/rsa-1024-2.key deleted file mode 100644 index 14feba2..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-1024-2.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAM3oM+IGvDDamzE+ -5cZRkeoH8PBYH5HSChJOcRepGpPMxsOjR3aomPCi0eI3cR4IOqaakpxDJswp+ioA -H4hEMDMoVZijvpXEto0QAy/2O7K7QzhQ1ylFNM8k6WD4xfM8W6PlrlxFHjH47QDq -k/njjASgxTfj6zHCwauQG4FYTmZNAgMBAAECgYBuds82yDQ35V9yuPKeRW6JZj89 -QZmWKl+a2JhVgDQw7KAJntQc9XAvULpWqTW3TeThMnXK/T+YMkDyPWStPx+3q9PR -AQS65Bz8BltepO5sdy2QWGnOss97fLG5DJgTHrAZYDKLxJah9hDOf5Tjq4d9GYka -D6cOgWErS3wv+ERZhQJBAOuVmTnEywk0TIGjIOWud+Yv2TUIc3IqBZnyF1RN8y1y -NFVGwpCb8aKLRawfDta/kNkQVOkYZCtZRdYb1NHqBJMCQQDfwDel33a3OnVdQNoB -GbfEJYqmgY7JCzFfH9EVzqB45x6yYvwAHStp1r5dYmwMUSIVs5B8SFA4bUN6cAMr -BJWfAkEA4xGOXuAP0w9Vrp5NVxSS/IuiEDvVCnT2cSum0NtRSLyLNKa/YiLtBH64 -6O4Gn3aFZrMXJJUd96pUZcrtlma5gQJAaUR0qdxNbPza1Km7JwNjequy5I1VkO5s -JvXAF8Njqh4KSiDZsHAIyb2XSDYS4WSWZaFaW65l13ZIZeUnCGkavwJAMn0mC5e4 -idlSe3QqaOa3haxAXquQkImH6pSI4jRPzTJxPd8BlShlZeVC4IyCwfz/o6Azce+W -w+5b/8VIMO2s9g== ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-1024-3.key b/src/pki/testdata/ssl/certificates/rsa-1024-3.key deleted file mode 100644 index 4a8af8f..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-1024-3.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMqUxHtJfHQ6709j -T1yMqY/JH/dg0Kl3DaddDScaVRiv2X+0mhxkFu4/rWEYslj1aSS8CgcdVxSdHsI0 -dXEsumoRFJl/EmfBAwQkukgpkjuE5uUORuxt2vzT1zGPutX0UlMiLINdZ1AB45D6 -c78SBTiIoXai7FZ+SayOf/3MQsYpAgMBAAECgYB7nbITpTD7X+cd43TO/cqOQeVu -t7Y8YriDMyXOgaQBr3SiF9uejXjsoxCyWjaiUAZ78v6PftjfbE0Tpp0vlWKeNo0q -iJ0rjbxf04bIpU7+Q+/I4hkXngu7WvmXS8ZjmamEvT1a9XN8bZ1QD+lglYAkZKj5 -iwlVpZfYokj+4sMIgQJBAOnkLBrmlaXhh3KbzLcKPMtmOlm8y2PuSziJN7JTdkb7 -gwaQAa1+5ToOEjAS64qP+BRp9uLTnPuVnbyd27nDElkCQQDduu9KbS2o9IazrVeR -FMqAitIWb9v/k98IfOc7/LKeyA7oVCzqAsq0nlYM4unGYSiIdlJLLnQCtbVABB4D -6rhRAkEApM49cbsWqWsQCObVSgixq9Tdusu4OTL4196AW2xKBFxHCAHC3OB0XwL5 -N9ytEda+RIwiBdR8Yh4bpoNJB0z4CQJBAI9yo+LztUmMQSU3LOK4n7X/maFYZuz3 -HqDgJb0iY/Djnvlhk9klSz0E/sjBeNqV+uImImFvQTCLnCI5R63jCbECQQDpeDiP -DcKOL773vayJixOvvSqruHGvM87KMkpW2zsLbxrlN2gKyf3iMkQX1Kat945qPD98 -kpnDpyVRVRxIc6Sg ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-2048-1.key b/src/pki/testdata/ssl/certificates/rsa-2048-1.key deleted file mode 100644 index 384bf68..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-2048-1.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCvBAyWDWogcaoH -kjhp9fmm7OognM/SNfIuEKMiqmFLz4GsiNa1I4By8kPqcI8u0KRBvX0F/DDfBvDy -8nm7gbfMliILkPTKlDqAKY51kV1qBkSQhhiQ7Tl3KXjB4tbdjJemv9TrXfwfr+k4 -9dP8oYLmVmyYRWMGybW7tA6MJewLYeAIBZpbcz0okrKD7izMEi7eCWvQ9O6PdVMG -atBfUbGrZ0oX0XzsJQgI6iJNq88WQCbfybQLDvXleneem8NHVYO8fCmgVzgsiVw5 -fgaeYWBfCVOGUHsoVwxTDThAfoIGHX1ldQ+3YP+pyph43h5e9jWHHwAjg45SFqkI -XRTu4I/HAgMBAAECggEASmt63J10qLocdl63TVtSXqg0QEzd1AGrauoZLGbtu3pP -pimDvv+LIZWhyoE1aU8/4VJtZMuhjlyZvXzcxZ45pS2b6XYomTGhlJjXImf/JFPo -+NmEfa/Z9TE1z6AhBJFBdR7yL2lGCcVX8ygZDb4x9rb+M1uh6aOA+wFsBC0l64pt -YNGaOtgR1DCqn6mtxFcUOMt6gWEbgu2gwieo4qSGPmGOwNxhEbMWPL+0CPemW+li -K+fB2RrYpGdSD8kyWHWqZTUT7SegcT2mO3F+eNwwy69srb/R/MAUfbYXbQhTrPuI -vavor2vT7++Ha2Z7FV+715Jsn2f8OkW0UyFzb7PQsQKBgQDUG5H0XR34wqAfNgaZ -lzJqDeh6Tg0v991t4imNd/yFBJEa4PyonM9m9ka9o13ySPyIuUyqvUDm0/geVH1g -dn7o3rTVCKbfeCeDWaU00elMjtCezeDUlnsTgcHpLEpb/5uxJhAL2/KcMlOvHzGv -ima5zj2tB0dvUfkCtzLthb/etwKBgQDTO4hNrTcNQBTg/XUG2TSERo6WslVOZjJ5 -70AlE9PYgqmoNUONg8XxGwj8n7lx+AY2BB0kfM9ANVc+BNjI2fqFLba2DYDGMpsq -XrxR2SiRe8UCjftFgHSElIx/mGplgAbElGrSd+pkONwnxtE3E0JD/+y+/dKQeg9z -iVraymnHcQKBgQC8/9gdU3/qcpo1VXGqGGTuxXfay4PKs2WWjUkTatATQw99UO8x -25CfoWFFh7Wlt812kw6ysTKMvGJBvG1/r/bDz/Z4QV5Yj/s9enrQRx9IfZV9e9wT -8ga3Sg8ck7+qnGgCAPWZa6KR9fJFgFlInt2MQS8J6AuKMRPejJmPtndSnwKBgFPP -dCZ1yrkMKvyWNB+ygL7XC+5I9cX0kKSGxCmx80UdmtktwQ7eMOSYOHmbmkXZBgXa -ngGDL+wm/eWSoL0Yl+jNmYgkVWrOW3h1PD0xb4JB3IpF8WPDMvgDxLc/rz90i7rl -tHirsalwUhHKNeqnToySd8nUBf7jH0xVPGJBG7VRAoGBAIty6nRYERJkdWgzrrU+ -TmSxTAFi4hqc/RXMa7kda40SBp3339+/KxaNCQ5YUJjDI/cggEc/Tnm2MjkheH5W -nBC1iP1A1g9wlk6Ak/RQIq8FRiQFdVwGU2Xa+dRQAyEj8Xq2KudmKkj1M630/kSg -3qCwc3kKPf2N5fjAtHUwLLHP ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-2048-2.key b/src/pki/testdata/ssl/certificates/rsa-2048-2.key deleted file mode 100644 index 3336ce7..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-2048-2.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCncOKXlHiC4cH7 -YiXsOMc3Vh3OBN26dK/c9tiVG7zQU9EbXbUWz9NNI8+wUDwyBtrR54zH+5R9+cj/ -9QOPd2Vsv3wfaSIaR3qfsag/TK2rooYAis11F17lUHx02KZlZodagEuLCMgdlyIL -F0RTW4+Nt9ZklEFMXHYxZW2odDiimaUl0tJ3//jGNEBQwHSS7BbA88vKBknjRP4d -0lFZGJPM7VyEkYElp4qcTBvn4VY89lbgUdVcZjaMOtoUnK6DUZN7GAsWr222y7kc -BEH5fFOWB2PrgKY//tb41fujm16u2r4jjHngZ8FSs5md3A7z1CP4ChpNF33k9z6s -AzWb+GNhAgMBAAECggEAFFJdDeyVG71un6Xv2FWjyBGJmIF6r7CNz5GeA6rUJaym -il27JsOeb5RTFqEGTUQLtsIVkgf0o713KamA/x6MjsBGvkEyRGI8fblAJD6YLWaS -QOqXuQhXGhnEoSHSQChLcS50/LDaKM048oOmZT+NkrOnL5nWuv/V0HTw9Cr23LT6 -wMuefBrN9cr8ZMmlOMNvJaoTKbCxr6bg4bKjfGr40QX05GnLXaOhg74wWPWMCFZQ -CfyFhCJvBcXk9Xifb2pMTk9GezfSd28JKy3XKjd2bUTD8KGStgnKvIB7FXVqaQb/ -QOTE0USkYn3l6g53fXWdgk9i87ZRHmMarTv4K8wvaQKBgQDbe6v0CS6ui5A4bliC -z8EoZVmxxT+vgOf56ZOE65lGcPHOtTMDDL2u8MxqyjnWc7dXrw8FvfpurIe/TEU9 -Y5kCj9NUA08940RKX/5u5RDaW9X2cGVlv7yJSDbA1JxpUjSzc98VFWQJrFkhHBfI -3eLdVLp+dHBBpGCgZuVQD2ymGwKBgQDDTJwspscuh9q9SWWgcyJv5ke+4MwosgkP -g8IC2dFFHr3j3GoFnVrrVP6w8zzezNb2ba+9xGaohNgHjmwC203ZcdDCUxem3t/L -GUM4+dCUC87nB/bGd772pu1jbZZ9bRUBvgf4x1zhlShQNnD+UL2/p/stzWl6SE47 -Yva2416kMwKBgCBZ7lKeN99KewuWWD2P2ezWY44sgOKhoY/YugHRqFoVs87ALrC4 -ZA0xOTBUdooBrHikORajlhJSJAAygdI2qAsUoBW2FywMH7jGxX4bDYziFHuqvYdt -56BkoI1zyUpM76+z2KIG8SPr34dd2LOm4RW2s3aIOzOxwvxhrlNKsr0ZAoGBALTH -4LUweKYo2aFoJKueiB0fBAC75CAzlVGIPHoZGK8r4sjfCkFCRJwcpFo1/n2bDc01 -AX3fJMwPlE2CV5dZW7nRslV/RyCPpIdDTkeab6nrOE4BwDw9MkbthEcKdUiLRevD -9WsjWGX0hUmi63tuUAbuPwNJ5r5r2gb897WZyMyjAoGAYcNgSL1udQE7pEqrAl0t -ffTbbTJQ487sZm3qhFNXtuitC3h6eXpJecsWRoB/Jnhi4cpSjWgYJzjV4rkZSF79 -es031jtdnPf6G94ZzjTKnkr4z34reDQusukuuD1SSsbURBGVacgZxkq0UaRAROfT -BTPraf9GfA9BnUEIFdjeKwI= ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-2048-3.key b/src/pki/testdata/ssl/certificates/rsa-2048-3.key deleted file mode 100644 index 9a6f499..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-2048-3.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDW8jowfwvUgEye -CyzXw4rrlw1+liz+s9nWucRN5t8dia9L9dQhT0aBg7mUKOQ7L1wcRwzPMVoyFF3G -KsJw829iMm65P4fy+L9/C1XFfJ9x4rMeya9bHZuKxr29Ieia9KFAaWtASSngF6Uc -zwvGJ4AZQzUIiE6Ku/ZpGBjki9k36LsufQIeOaEaoHlSPS1K6pMh9Br40xQ+FkB4 -OwFt7zNQygiSJt6NHvET4ib2i+0lZXRa32yl/dEJyf3aWT3iMxm4wLslLOI7Bud+ -y04bVYi6hw+JFUFmFCLkrMW/iZ69S3lUPoUO9xz8fuCR64KjwjSR4FFawZ7ZQUKf -OUOu3dcXAgMBAAECggEAMss1AwbSxdm3wVVEuIwmBPxCHRrh8SKRJNPrVrlrGjDS -MvIZufFg6PQ245MyM+ZCLxB/L2srNFBpxI2QO17bgGoIjlA8ESfFIQGNuEh16VS4 -HVtty+tYOVgzuEEOFagffvgqdxuTALi1tPQchSwKcm3WV3jWjqRSW41tPHzrzPEM -gNw6mlLIUxgaxJ31SytDPfLcCxhjyY1cLOseAtD37x8HZVw52cojmjn0Uy2+TeLu -6e34KqWzTcO8U7w4mBu6KyQYS5Q2GxR4eMfrja2nmQEJjjtL/MjPCr1RavzRmeO8 -j2w0GbTZaM2otzI21VbNpM+OmX3OkGmKiPNIm0HVKQKBgQDufzscdRfcJSng9Wb/ -kB1mr+AYZubzhHIVgN50UWnzqiLsVBWRGT6+y49z7dN3+4aGHXKjmV0Ceimi/6uC -nNsZ1kfJrHWXmTbTslQlBxOwyMuBsolWBSZdaqoX3dhDNu7EbUPgWqWjrv412EhH -UIH/mpmu8TgyA/SPT7BiHjuDcwKBgQDmuIkAYWseZ5iEWXPX2rH1XTtvKAHuzjf7 -yPk5QX+ZeTZiPZPzvn4I6x4kMjnpn5wrVkm5QMQVK2NKpaQwMtdkQcevVybXVJ/u -0SMRHgXiesF6pG4YgREEJjbHdwmRgAaLffOPVSOvEGPc8ha1tEE7ZwgpKfjnCStC -2VkmWpcczQKBgQDsn3MIUuxvULfyJ8ge+t8QyKIv07iEFv4Rc6BCC5xxUnX/v5T+ -NuvX5KLZRDaxLe5UFddtlXWARbAVtlB18CY5xi3HW8H3vN12v9FYQ2M33KB8d6Rm -oglkWbWUpFgyp8fRPw8/AvCgK7ivt3xOtQOlk7+yoEU+6kmz/j5jutcVHQKBgQDP -+ocdPbP3C4GzxIMlkHGc8fcyo0jiwSg8IxVuJHnmmhqJAmNNdGlelrtr+46y53s6 -oaUBhr17K8psrtZL0HjTWmyrxY8wyosFF6dZtcuuNeQVLwZDtozlRaFZuxd3/oVn -1xjoGuJ42/h5Yg1QrHWlG6KCoOBLO7uwnga8CStw/QKBgQDSzUAJaak3XFAfdou3 -GxWLQJcOXB/WxrZA7gq6K2aWvkY80AOPMGLhVFXA8k1fLI7jn2f9x7Ff6PNrzclf -mvvN6g6YH0vH9k+W6aHBnen8oGjW3XU4MHn7dPxfxPJ/MDT3toVAvD+6QnKFdd7o -xCDad5+lKr6f0yyPije/ZDkSSA== ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-768-1.key b/src/pki/testdata/ssl/certificates/rsa-768-1.key deleted file mode 100644 index 2ccd987..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-768-1.key +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIB5gIBADANBgkqhkiG9w0BAQEFAASCAdAwggHMAgEAAmEAn8Be4Q88Bif6duPK -vG+iyt96BFtCTUgjuNEwhcWoeSO6BeZPeu1VRqOHI7/GE4jHO6iVRCnhw9DJg5eb -+p6zX1IWytyhke/psWBl3RNGXOvLucVWUJctS5pgKN1FNsILAgMBAAECYQCDjRaU -nsb/CszmOo8ovYWBKqaAD+Z5XX6NIzah8jLaDuGRGic5Q1eF5APVHIcwbuDU2Fyv -NIJqf768Gx/lUzmAlcGjF9hIRh5vrE4zfeCa2wSUjWNZPmqdTzjkM3r0NYECMQDM -1ORCXgP/DYHQbCTRFvNA/jYaIXRjUs+HXefXe27jJD32W3Mf+lyIcBV/mR7lRkUC -MQDHqJMkx3TiRsP2cYmG8citPrEjEA0TwPg181Kvi3N6aE5QzNHHLvl2nVJi7VPl -VA8CMQCayYKY2J0if52K2D5WN4appbFSu9dNO4YSYJdT0jYwtfGRGvh7wOFuRW0p -mJetYRUCMQCN9fiZoBAli3duVRAaGPQ86mR8r778mqphgd763kZ/dIaqwNcvruDF -S9r2aBTM7FUCMD46f/dAx2EfxsAfn3lYQWVpuxFQpK+tIqYzjeKsu/zRaqEkcog5 -BOq06OV3qPYsVA== ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-768-2.key b/src/pki/testdata/ssl/certificates/rsa-768-2.key deleted file mode 100644 index 6c834c4..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-768-2.key +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIB5wIBADANBgkqhkiG9w0BAQEFAASCAdEwggHNAgEAAmEA4SDrD2C751/n+lHQ -UBn5YynSU9hrO9ttTcnvMgqiL0gv2lAsx0N9QM0dg8rHsQodUYZotUQ0qbzCxzEw -pRVTHcEYHSnjaO7OfsqpGke+66jK0VhsQBkGbU2RznY3at3fAgMBAAECYQCRzs4v -QYmxy03ltENk/c2lyhptL4gUVoOulBEVqgls8iX8EV1PGYjwBWkOSLGZGmC3u4KI -le1z9L9iZxO5GGO0SJ/bLW/pGofgHCikBjLmhhyLuV0oFsY6te/q21fWu2ECMQD0 -nbX+qhNgXYsZ96cb71ZfD80yGtu7dCVEYL/iC30P3BEztLabEIdVwmoUyBFfCDkC -MQDrmwnyqGx431YH3uyBrlwbJhRvAFfwACMy+6sY54BZdaPni9hHcQoKrAiQOe92 -ptcCMQDcS5AUefybQ4M7bpIbkU7aq7NjVVbgGbhaPTtximElwE3pn+z390m6TS0V -7Bvg1tkCMQCDkPdUJ1MziFvtV0IxBKHwkyoz9jglEJ6XWMxpwtT8n+HgakpjUq9t -2DWL/J5JXs8CMQDsP+WjN9GzsQtuUMXEUxc1wgMVRFwvQ55hmXfeWaT2bgX+jpAn -+SreMT1bErrH2M8= ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-768-3.key b/src/pki/testdata/ssl/certificates/rsa-768-3.key deleted file mode 100644 index fcf0680..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-768-3.key +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIB5AIBADANBgkqhkiG9w0BAQEFAASCAc4wggHKAgEAAmEAtngFrnpogJ4DAPMt -Jvxxl3vSNFdnNMlpRGlHpPqhtOHTzYzXvRvSmSGzpYhvzVCFujjTvtszd86yehxr -+081ZtQbhHGhPKnudoPfqfYGUB6djJX4+I1pm2cWTOIXiGL7AgMBAAECYE7lbId5 -tA/Qwrm5a8+Mnc0DI+uv0xc280Y6Q1kpaZwdfQhGms3Q5umBcfzkFntvEfgMJstC -KDWgH5Vo6v7oR/Hk8D0NzOyFNfEU10g72EG47PF2qFMlCZ3dTV5U3lPtOQIxAOfC -NB/LuHFiMA5LeFlfbV0Fyj4Kr+lqtGdwClmX3+KgfTUj9RcEMs+34z+UpYXt3wIx -AMmN/LkrZpwktp/iZuaKDvkA5foN660LguOt87/NdIN4l2hn8auEhwmh0Vno5gu2 -ZQIwf6kWFT2eh7ZSSk2AKZrLHyaFVM+GPsksPp4U1W03QhqtXYxFATyq0Ii2gNtc -of15AjEAvCh2HnM61lebuYTE5UFLGv/QsfBe7GvLpDsXSx5FQBrK1ef7f1A4NDDB -XLsETzjVAjAegTa8Fk65Qc3YODZhIcDRbJ195DLUaw7ETgpT0utLPH7Kkn1GNyZf -wzlUtrz3r58= ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/rsa-8200-1.key b/src/pki/testdata/ssl/certificates/rsa-8200-1.key deleted file mode 100644 index 74cf0d9..0000000 --- a/src/pki/testdata/ssl/certificates/rsa-8200-1.key +++ /dev/null @@ -1,100 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIISRQIBADANBgkqhkiG9w0BAQEFAASCEi8wghIrAgEAAoIEAgCryOGbBSSQ/E53 -duYJ8JpWms7zJk8+FpvZGW8CwGH2Qjs9UQmqMhGKTNySND6Gfk+tAGxd8zWGayyJ -rVhi5Sigr3+lPieGLt3TLke8LKysm0sSJU+xUUdZUTRjE3eff9Qb2NmgJ0uQIYic -jSUDznRiOpblzEhX4Rw1Kiw+fkqqsnXRg1+gonL9EmWl28zoeQFvcGRyknZCDpyR -K4Z667TuPoLk6F8S1IxyIEQPZciFbUnUTABbZTHQWZ33y7HmB3vc/P98PFilXsXH -41h4AdxzN/5pTI7flRP/bu+4NiVHE/rM1h+ag29R1McxzxoOi9ToYgVRenjSSkgs -/kjOELvBtIyivHNCwJjRrSXZi9fpZjgGTCqOg2mebU3qWDe0zL97jt9wGG612oFu -pqCBFnBSn6L/dc03K9Ckx9xuRYv3upc4xOMQnOXKLb9/k/TPpTmSQEk1qhEGOoKw -NC769IiTo69IxhJbB67gBVQzgJ5CVHfEzFid2SM1g59N3gNezjPb3y44ESlPJSfm -I/S9Yg/divrE7F4BvFGDP5TIaN3sYZf0IEN6140bz3gNhCP5vD64xFt+Mn3sUfWo -pAmUpKWY7u7YCn2B3XWg65jHelgzC+itLKHRMt0nSlKCLmIKS/UC/PnmRdNIekBh -46tS29d3vC9cbeTpeZwneOEP789KO0yqeckGmZyktw6VvF7bFKDyrFQONeYz85No -+dw3L54jnv4BV0bTwuv3CoU6MQI+DSfqaGxv5kmVxMDlLGpGJsezarUyrTseJBSE -DxungNAGktEawqkyk7ZRWdAUSZlgX/qanVenJ3pwrWWagqkyW5BKmzh+EhnGXnoM -t23+a2FjyoQRKYFhKL8pJ1QLBYJMNvqK+j2tUWHzgwwYV5YlOdDYz+U3+mQH7xOC -d0Egg61ci0RmRBRTwLqHWvKhMpOD6JEFhuCEALSe6b73faNkaTvUFV6y7SDkkAea -fLpBFosHCtGoC5ZwklD9rCKKxcdjJJESMi5RutOMYzA4Y9dayUBN7k1LVx0dw8ei -ZbWBvETGT3qIbMI9hjvRnJ3x35KyoKbvFXDtbKCQ58HbfO5kk4BAEoFhete+UsFO -KgMQoKue4Ps9sPNWVWwg7ZxrTKsHMje3dpklMNHdqtgHt69eio88z7zX4ZQPUEN6 -PVUPosX0qWtW/sHVet0iDt0BANKD9T8/iwrns9HbPd2d/LwAOyU0kywdNkplCFOP -vNHaeSjbrIQq5/SEszLSmbh1kaNOimVBFwjie5Ju5q+4n2FahMtKkEqBajj1f4eT -dR8hs4evuZaKkzs6jGvQyuI28lBfkz3M9cfumHAShfXoihZcwrb53CBmjN+UBe8l -LaV0kGIknQIDAQABAoIEAR7kr337fMn+NfZSEaiz9m2gxZsAxrt5wWlXo5kxE+z/ -mDu8uSo8et8OV5SLhLsXOCj6rIJw3K1h1M6luAGBCL9tEF2dQeplv0rdRdVXi243 -N1b6Eszmuxga/Hrc42Rxzql7ZBfjOTmgbjsJPyDiHhgURVLqXBBB0ZrWDMLoX3E3 -Suz03Vu8G0Xb6x/a2YztRg7OfaIFKPNUQV/yHes5PH6kC1IzX/W499EGcHb8bQVh -1Cczy9Sj7EN1+my32zRtIB9r+F5VU/PZiWQbRKvAWe72oPA67m7TFpeXUdElG6se -srnnwCM/g+OJipEwl5UKHK32AtLWXagj57r/uAQnCj0ZxTj2/xuAG3uJ0ga/mYLF -+UlYpUaf53ywV5TPbKU9NSp5VUGJg099Dk3h9XeBm42gW+XpP5CudoVL1B6Yr0VL -7yosblFshf7IH2pIJ3y4UBQ3L3NRNGKUXzBlEhXbqDw08a76wA5S4WY0TyI7/Toc -irV/smggxq43D40nYh/IoZbnGh7HJ1Cuc/B1guwUGJpVBigoAff58AbUhmNMSKzc -GEG1E62h2iSoOQTlQLsG2ZjM509YsUCwtKcxaO+sdIN+ZMHBkTSrqR3ZgM5O+FGl -0KBkKG3A4fjQ6umygbssUdHJwP9ii067fZydHxB1rNhBpZrPwJ0kW6rVmFQPYo4M -+1ENsX0AIz8hLx+10G602hcWu8MVgqO+E1Yoo5n6eNxCbKootZwSRQSwcUXgE9m0 -Q1NHKHsK+pvjR/QyvoEr7SRmcox4PHcYID7EMfPMu2UtsIdRKi4NkIvmzE9a52s1 -MPoanT+t9a4Zte4nQ+htFFFQFt10ue8Vqm16wPJ97gnpEM8keQhVYrttIKDVr2vs -QEcHJ/PgDeIihy44AbPTQKUYzZ4YEMAkDgoVsBq3Ktk8DTjxOZrZw7xq9xJPS9N3 -5oLaTcUX2670SZUpRAg4/wArQncuE2pfsYP+beaGnUATiYRd8GoDSYtPOSa7BcyN -Eexo8tB5Kzmvgcypk5N5jefLaVdUdczroIlSDlUcdAQb35Yvnd7F3HLWXJtUIPbh -LZTJwJWooQVJLDt2lzrg/HQnD+UaYNI1Z8/oMaZ+zUBvQ8gBzArO3SRGfRI7lzvk -wcJM4LqBO0pIO67NzhVCyhJn7Ua3P++W9d7LULb5fqy/O64W2J2o2Xd9hZEdA47A -6JidJ2yNsv0p3AUgtVebEhBRQs6bPX4/siYif3xgT1ZZb8fTtQBYWsW8LS4Itdf9 -WaJuUlfI7xdHpQnMVd5qiEjrDk02/x4JI4DmveO/pLyQAJ3qQpvGxXUZ70ecfSAk -ASn2OADu76TclVlQ4hvZ5913jxx8PWHFykK3w7N82xGZAoICAQ4FzISY+EaKydn8 -jOfOirjfct+0x0PYeDZ3XFEq1CcW7nHARMxlGBe9IwEgoAn/RtLmHtSrscPLpN+8 -mXS8ucPZwxIrbg2tCTZ2FktxAHldz3Fr7aGGeT4F7jE3e0gwYgU1h+CIMyDZZY/H -j/hANx1a+mAkDr7jafEuOe6nOfnWSuCaTPbyYcyGQ4pIe2Z5A0A6MFATT2Z2YOC6 -tW98BNtw9ucOFNo9ZNakB8ZZ4WOG4vpFSSoSO3xJ2STn5HwuO+j2UF0ptmt5H6Pc -LzYnbbengq5H0dsnyw/sKbTO4jzXfORjxPhwpvrwNlNvs9hmLB6IKzfiN1PXKITS -updr+Ts72zD1I95dF3F0TsefncBSY9qq8D0Nq08zF4yYanxPLOmqjc1iCoSWyx95 -RjNTiAoTWqmXvbtd4Z6OBU3M2m5QQYLu1mGcfKveRvW6KdueBhZwXEcY7Vb+pU3q -1J+Omh4wCQiyuuwsGu6QXmfkcVBOhLDoKxzAQJlch1l3zJdAQoul3iCYnptz6weR -47Ceg4cdP50KLvgboq4N1VJgI7ivMB9gfP+J/J7JogjUigoQNOLqb/X7Zwmv5ZIX -ZaKIB39HtKFvo1b/zpZagnx4y1K39pUFY8Nm3v0xZNU+keT3FCjOk44L+sXhdu5F -tbA81qb+7kBhZn9LMfz9sDTIUXq3OwKCAgEMQCGtq+7q0Scml0Ds5ORrymYX/zhh -xrkc/jbEHefvq50cCE7Sxmvm+NdFDz3JEpenWR4zPR0+39j8lNCWUK6azUhvqSK/ -HYLLI2EDeUyeCQyULoNT4qva6wnJNuufjaNsOOmwwuBAIgurFKYaTEMD+m+1hYG9 -Pe4drKMm3e3Xdg9IlJdKmY7MY+chxeCuiPfGO/MAm0Rz8pcKo1/cd308HuDL+CnE -LAFDYc7fa7oaj8i698m6QGeadltIPoggOTntoto659SK8ZLWOHsD3E2YC4Iq6dtQ -U8p8qWqn2kdWbLPnRhy5BXFcxeVFAbJOvgFMlSw1cCpoOySczBDlSpRjZV3ZP0R3 -gCG6Hjh5N8S+N7aLtQQvurMa/9qz6e1p54LCkXqevDp52wwM2DnjC05J+FaevvWW -FjIaE8SU+Que77xakQYu7Vk1T2MoTimDAjduqtSTIvDb4uX1WNjgkX66AWUCzbEt -Gp67cMYh0DjwaLgos6t9XdRp5964m4YPewhAcpVppFV45MOKcBWD99d3nYgOGYs1 -D8+4wXHpEJoU7r0pdz0buljZ1+bPmOiViShWmQgxIrKOCpOMuLKQJl2zJyVam8MN -dy8xYm3RZF3hCNyROeHp8lEt5dSOpw82LchW2f5ErVYatYzJu/opdu9ToczNuvdU -/U0liMxSEBr3RgcCggIBBHQzEarEsSNEGcjtuHMR/MZ8ZjG1WQdYp3QiDmXcHM5b -ziWTtJgnnuKkS6dhLcu3YyVUhZhDTj1QkQAGfd2z41E3dH325sEfO/0l97Bcxi/V -w+DUCYn82IZpsZg9wCAeAimOjvKzyqtCZvir8d3zo49SF1dcl6UD8WcNX5AeCgzW -m6Bm8cjq51t9+F4tU878CVpyHf0EKzdObhLfrhlmMY0f3yPJ28fET6iqD4Zc4I/n -aDa5lnNUEZYjMmW1XPwSa1xRCkZFer1uH03AcSL05nB+QXzuWv24scYBOTy8/zYy -pRhLZ93gK7RAjR/dr85EFS6LC6T+jdK5O/by7UWOVBIe/N3gFrDa0V5v51f7cyq4 -LKw+wiWlU/KWeEGxEOrVCSLzB1ksnhCHU+fhNExD2W9sTJG14d1f3EyfwqZeestj -A4N49GgP8UcYotQOl4MJy/bEWJDCUe9v8d+0yTkyGoSHWgvq8zjPFRcl5TnaA/fs -jYQwrWEjI5MQKoqyoRf4CwMUGqZfOmEHNdBQ0biHblML8YVahdPBSCd8qj1/GxoJ -3u12xnO9mXHR1ZwsfCXJpolwJmFDyP/lmxFzZrxuJS9RYDVlXCzEIV1+NKrpacyk -tZCQr2/tQ958eH73OBKChLOYinWjoVaLwALEQsYQJ9qxMiG9vJDVv9WUMi+uMZwh -AoICAQeazA1OfPrBqWcYX9Ju6KlNNIFTCsIPpZws5vxpgDBUvSvIsH3BdPwlnySc -qIMoioH1HX07Q+ti9AUfsDiPj0RDiOLgANTY0feeV7vbUceM4IUgNqAdRweX/jQt -ZqleOIOW9OKopqLJP6sNH2uVycgvb6ckYHyEdEtxfrpC7EFjZWtt6lkB6BZTMgjS -GH7gQceKMXg/6od7oW2WK4zllBV9KZkUzYCcvJACqHQjIJ0agsYlydFX57iIHnRD -dSdjvuUYwhXtEhDKk5dt6ldkK7rl8gEHuQAtc7ZdSPs30i8BPdCkwnHMwimQI5np -yrF827uZop7tqTWY+Upol1hvKpxlMZQJ5Uu1e7pYxj/hcb2PQj+JuDaU1Fg/WZlz -7tBeSdrUimT9feNlKh7TH2QlAY2Dnuneqv9neeScPt0nmKIqOieSfV8mMcmZJXnA -w54zAwws+db4ysIFITFj3QXS6/M1qGnMHF9edgjvod8drir3JtMFbcBePd0cdjLt -QJRdkKrJNp0kyXZJtGU83O5WLShw3yO5kaP307/iPf8rMisqZLzX61RKIpvgncRj -LIafZS4Uw3QVEPiB8kRZ52b6mhH7jAGqTbQPN3mVm4xvnKN0Z8+zOd2Lcf9m+8Mu -S5AbbZEUs/YYECp2ZxZYHZwd28Vz3HodxSm6MGjLeeK7YrH7gwKCAgBm0zD2DvKK -EfDQOk2DpnScdNkuYlRD7WADQfgKg6GheSWIvAi9Dh/Ks3ZIcVAcpQgWQoMlhTie -ZudfSjWxfFwlTAYKfF1kUnlrOACz04ZqsFMzx7Ks1HkvG1KEBTenAetcDPcL1b79 -U01tql7T6NIkxwtOR/nr1CvxgJa2wuuLYiUIAyIQYY0c18FkyFii1nJuneGb/Zvf -ctf+S5O+GuSOc+LjDSGIa8RZf5ScxRmKGj6OSrYRGrM7ZoS/psvGQSOJeITN5SNJ -umAA89mfpz8V87HHn520Vo7G9vmm5pQr27Nu1RBQJBXgrhC5fWXBXk/zmnyqskDM -Bcb1h3nppB6dr5263iy+HHMxS/L0m6kCUfxfj6A4d1/fTGbv1tRCtlR9Rq4EJxWr -8n49pbluSvL5XZoJJH2PGjjxNurSpnXVRFFOjpvl73wE/X/bH/Gs8AMtIrpnBRmM -viaX/AOym3DFU2RTgNIt8zmNtqq/NhAuQmYEhodODXtnzzquh4Z4EZmhfzq/do5e -nGTfN4hN7a9ODtP9Gt+w2CBCnE+7OnWo6Asj+wK0H59c2wfSD68d5n+V7U+BHHkN -E8uwIjFNZ+n3LRdH/iY7w4ujgIdZRcQuOMf00a3950mcJM0hz278FuDIipbMFCxG -qrLjqBtCTH9vu/Df2F0JNICD6Ro21WM/YQ== ------END PRIVATE KEY----- diff --git a/src/pki/testdata/ssl/certificates/salesforce_com_test.pem b/src/pki/testdata/ssl/certificates/salesforce_com_test.pem deleted file mode 100644 index 1522d0b..0000000 --- a/src/pki/testdata/ssl/certificates/salesforce_com_test.pem +++ /dev/null @@ -1,81 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 30:88:41:0a:28:b4:3e:3d:9a:f3:b3:90:a0:24:bc:d6 - Signature Algorithm: sha1WithRSAEncryption - Issuer: O=VeriSign Trust Network, OU=VeriSign, Inc., OU=VeriSign International Server CA - Class 3, OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign - Validity - Not Before: Sep 18 00:00:00 2010 GMT - Not After : Sep 18 23:59:59 2012 GMT - Subject: C=US, ST=California, L=San Francisco, O=Salesforce.com, Inc., OU=Applications, CN=prerelna1.pre.salesforce.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:b8:0d:04:b7:23:60:d2:ff:12:bb:29:43:81:30: - 0f:dd:8b:cd:cc:2c:8d:d0:14:de:5c:7b:a3:33:ea: - f2:7e:88:6e:04:42:17:70:67:91:a8:20:87:81:a8: - be:c4:57:d5:f5:3c:cf:34:96:cb:fb:7c:c3:db:ba: - 36:c2:08:9f:c1:1d:91:fa:b7:21:03:50:32:bb:30: - be:ff:f8:bf:8d:c0:7d:16:e4:d2:81:ef:e2:1a:89: - 13:7c:40:6d:dd:1f:32:9d:3f:ca:a2:ab:e6:ae:9f: - 96:91:66:32:e9:e5:ca:e3:9d:fc:62:31:aa:de:a6: - 50:21:ba:e2:8e:77:00:41:17 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - X509v3 Key Usage: - Digital Signature, Key Encipherment - X509v3 CRL Distribution Points: - URI:http://SVRIntl-crl.verisign.com/SVRIntl.crl - - X509v3 Certificate Policies: - Policy: 2.16.840.1.113733.1.7.23.3 - CPS: https://www.verisign.com/rpa - - X509v3 Extended Key Usage: - Netscape Server Gated Crypto, TLS Web Server Authentication, TLS Web Client Authentication - Authority Information Access: - OCSP - URI:http://ocsp.verisign.com - CA Issuers - URI:http://SVRIntl-aia.verisign.com/SVRIntl-aia.cer - - 1.3.6.1.5.5.7.1.12: - 0`.^.\0Z0X0V..image/gif0!0.0...+......Kk.(.....R8.).K..!..0&.$http://logo.verisign.com/vslogo1.gif - Signature Algorithm: sha1WithRSAEncryption - b8:e3:37:ba:5a:37:37:bf:e5:bc:88:fe:1e:fa:b4:4f:7d:52: - ca:26:b6:83:a1:de:28:6b:01:a8:cd:5d:f2:9a:2c:f0:6e:89: - 69:ab:94:b5:14:f2:c3:ca:d8:5d:2f:6d:13:9a:83:f1:ed:4e: - 85:87:93:69:19:53:3a:a4:f1:98:96:b7:28:13:32:7e:d2:e4: - 7a:7a:f2:8d:80:7d:af:89:64:43:7b:f6:05:3d:16:7c:f1:2a: - 6f:bb:9b:3a:57:a5:f1:f7:77:a0:07:68:92:39:bd:45:c7:c8: - 75:ed:ac:c6:ac:45:02:18:0b:41:ba:01:68:3e:c2:3b:f6:8b: - 4e:50 ------BEGIN CERTIFICATE----- -MIIEhzCCA/CgAwIBAgIQMIhBCii0Pj2a87OQoCS81jANBgkqhkiG9w0BAQUFADCB -ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy -aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy -dmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMg -SW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0x -MDA5MTgwMDAwMDBaFw0xMjA5MTgyMzU5NTlaMIGXMQswCQYDVQQGEwJVUzETMBEG -A1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxQNU2FuIEZyYW5jaXNjbzEdMBsGA1UE -ChQUU2FsZXNmb3JjZS5jb20sIEluYy4xFTATBgNVBAsUDEFwcGxpY2F0aW9uczEl -MCMGA1UEAxQccHJlcmVsbmExLnByZS5zYWxlc2ZvcmNlLmNvbTCBnzANBgkqhkiG -9w0BAQEFAAOBjQAwgYkCgYEAuA0EtyNg0v8SuylDgTAP3YvNzCyN0BTeXHujM+ry -fohuBEIXcGeRqCCHgai+xFfV9TzPNJbL+3zD27o2wgifwR2R+rchA1AyuzC+//i/ -jcB9FuTSge/iGokTfEBt3R8ynT/Koqvmrp+WkWYy6eXK4538YjGq3qZQIbrijncA -QRcCAwEAAaOCAa0wggGpMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMDwGA1UdHwQ1 -MDMwMaAvoC2GK2h0dHA6Ly9TVlJJbnRsLWNybC52ZXJpc2lnbi5jb20vU1ZSSW50 -bC5jcmwwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAqMCgGCCsGAQUFBwIBFhxo -dHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMCgGA1UdJQQhMB8GCWCGSAGG+EIE -AQYIKwYBBQUHAwEGCCsGAQUFBwMCMHEGCCsGAQUFBwEBBGUwYzAkBggrBgEFBQcw -AYYYaHR0cDovL29jc3AudmVyaXNpZ24uY29tMDsGCCsGAQUFBzAChi9odHRwOi8v -U1ZSSW50bC1haWEudmVyaXNpZ24uY29tL1NWUkludGwtYWlhLmNlcjBuBggrBgEF -BQcBDARiMGChXqBcMFowWDBWFglpbWFnZS9naWYwITAfMAcGBSsOAwIaBBRLa7ko -lgYMu9BSOJsprEsHiyEFGDAmFiRodHRwOi8vbG9nby52ZXJpc2lnbi5jb20vdnNs -b2dvMS5naWYwDQYJKoZIhvcNAQEFBQADgYEAuOM3ulo3N7/lvIj+Hvq0T31Syia2 -g6HeKGsBqM1d8pos8G6JaauUtRTyw8rYXS9tE5qD8e1OhYeTaRlTOqTxmJa3KBMy -ftLkenryjYB9r4lkQ3v2BT0WfPEqb7ubOlel8fd3oAdokjm9RcfIde2sxqxFAhgL -QboBaD7CO/aLTlA= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/self-signed-invalid-name.pem b/src/pki/testdata/ssl/certificates/self-signed-invalid-name.pem deleted file mode 100644 index cbec017..0000000 --- a/src/pki/testdata/ssl/certificates/self-signed-invalid-name.pem +++ /dev/null @@ -1,69 +0,0 @@ -Certificate: - Data: - Version: 1 (0x0) - Serial Number: 18181326976980170770 (0xfc510c8e88213812) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=Michigan, L=Ann Arbor, O=Test Self-Signed, CN=SS A - Validity - Not Before: May 27 18:37:25 2016 GMT - Not After : May 25 18:37:25 2026 GMT - Subject: C=US, ST=Michigan, L=Ann Arbor, O=Test Self-Signed, CN=SS B - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b0:5a:83:9c:fe:1b:46:24:0b:d9:b0:0a:f2:f1: - 47:bf:05:f1:68:49:6b:d2:50:f7:29:f5:f1:59:a8: - 28:04:e2:7e:c9:d5:e0:86:b5:8f:2f:f9:45:a5:88: - 02:04:cb:9a:c3:19:56:68:c8:eb:fe:c3:46:1a:44: - be:e2:c5:e5:34:5a:18:66:1b:8e:d7:d9:19:f2:22: - 43:6d:4c:28:56:25:48:42:b5:76:e5:d9:c0:86:40: - f7:e7:87:0c:2d:07:e6:bd:84:9e:60:36:97:a8:d3: - de:8a:37:a6:70:68:de:f1:d3:0a:db:fe:11:e8:f9: - 0b:bc:56:47:d3:d4:5a:e5:ce:af:e6:d8:30:de:11: - a3:7a:4d:c7:b5:0a:9c:9a:f6:4d:df:a1:46:6c:91: - 03:e3:c6:be:61:38:b5:cb:1a:b5:82:6d:4d:d2:c6: - 8b:32:25:b3:6d:01:d7:e7:da:2e:fe:a0:95:cf:9c: - a1:e0:89:9e:2b:2b:f3:3a:98:7b:2e:b1:77:b3:88: - 12:71:63:53:bf:b1:df:1e:de:da:13:e8:bd:d4:30: - ec:c2:c4:e7:f9:0a:31:b2:b4:5e:36:9a:90:74:ef: - 6a:45:e5:77:f3:97:8b:68:81:43:05:bc:e5:07:a6: - 2f:9b:b1:c0:59:43:ac:28:bb:36:6c:98:02:72:c4: - 77:3b - Exponent: 65537 (0x10001) - Signature Algorithm: sha256WithRSAEncryption - 9d:33:a4:6d:41:ba:9c:83:24:92:be:82:61:d0:fd:d8:f6:3d: - 68:38:49:80:15:09:56:27:8b:ad:ef:7b:b4:43:1f:bf:9a:cd: - 72:da:6c:99:5c:c9:65:88:fd:8e:fa:65:df:27:80:22:ae:85: - 15:b8:ec:b4:e1:92:57:f0:19:7c:8a:79:d4:54:87:97:a8:4f: - 64:18:7c:89:0d:85:3b:6b:db:21:90:00:0c:17:32:19:11:a5: - 79:1f:ec:43:3e:3e:ce:96:53:d1:c1:eb:96:c6:05:3d:52:19: - 6c:a1:9f:a7:96:6e:a1:6f:d5:f9:37:04:89:99:a5:55:59:83: - 1a:6a:e7:08:5e:20:41:13:9c:86:0f:b6:ae:5c:9f:e9:5b:41: - ad:9e:af:96:1b:5c:37:d0:88:45:a0:35:d0:10:e7:9e:f6:38: - cc:c2:4f:65:70:e7:cb:73:ae:6b:e6:60:73:be:31:ef:d6:24: - 3f:12:e5:24:8f:2b:db:e2:b1:de:3d:b4:c5:8b:1b:88:2c:ac: - a3:e2:f3:34:15:df:ca:e5:25:8a:0c:96:a9:16:28:0a:a7:48: - 4a:95:00:3a:45:d1:0c:ad:58:10:71:0d:2a:77:99:78:4d:a0: - fb:ba:36:8b:62:54:53:7d:81:21:11:46:fc:46:a4:99:42:32: - c8:1f:ed:6f ------BEGIN CERTIFICATE----- -MIIDODCCAiACCQD8UQyOiCE4EjANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJV -UzERMA8GA1UECAwITWljaGlnYW4xEjAQBgNVBAcMCUFubiBBcmJvcjEZMBcGA1UE -CgwQVGVzdCBTZWxmLVNpZ25lZDENMAsGA1UEAwwEU1MgQTAeFw0xNjA1MjcxODM3 -MjVaFw0yNjA1MjUxODM3MjVaMF4xCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhNaWNo -aWdhbjESMBAGA1UEBwwJQW5uIEFyYm9yMRkwFwYDVQQKDBBUZXN0IFNlbGYtU2ln -bmVkMQ0wCwYDVQQDDARTUyBCMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAsFqDnP4bRiQL2bAK8vFHvwXxaElr0lD3KfXxWagoBOJ+ydXghrWPL/lFpYgC -BMuawxlWaMjr/sNGGkS+4sXlNFoYZhuO19kZ8iJDbUwoViVIQrV25dnAhkD354cM -LQfmvYSeYDaXqNPeijemcGje8dMK2/4R6PkLvFZH09Ra5c6v5tgw3hGjek3HtQqc -mvZN36FGbJED48a+YTi1yxq1gm1N0saLMiWzbQHX59ou/qCVz5yh4ImeKyvzOph7 -LrF3s4gScWNTv7HfHt7aE+i91DDswsTn+QoxsrReNpqQdO9qReV385eLaIFDBbzl -B6Yvm7HAWUOsKLs2bJgCcsR3OwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCdM6Rt -QbqcgySSvoJh0P3Y9j1oOEmAFQlWJ4ut73u0Qx+/ms1y2myZXMlliP2O+mXfJ4Ai -roUVuOy04ZJX8Bl8innUVIeXqE9kGHyJDYU7a9shkAAMFzIZEaV5H+xDPj7OllPR -weuWxgU9UhlsoZ+nlm6hb9X5NwSJmaVVWYMaaucIXiBBE5yGD7auXJ/pW0Gtnq+W -G1w30IhFoDXQEOee9jjMwk9lcOfLc65r5mBzvjHv1iQ/EuUkjyvb4rHePbTFixuI -LKyj4vM0Fd/K5SWKDJapFigKp0hKlQA6RdEMrVgQcQ0qd5l4TaD7ujaLYlRTfYEh -EUb8RqSZQjLIH+1v ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/self-signed-invalid-sig.pem b/src/pki/testdata/ssl/certificates/self-signed-invalid-sig.pem deleted file mode 100644 index fd9b5a9..0000000 --- a/src/pki/testdata/ssl/certificates/self-signed-invalid-sig.pem +++ /dev/null @@ -1,69 +0,0 @@ -Certificate: - Data: - Version: 1 (0x0) - Serial Number: 14998008630224366850 (0xd023a162e6c42d02) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=Michigan, L=Ann Arbor, O=Test Self-Signed, CN=SS A - Validity - Not Before: May 27 18:37:25 2016 GMT - Not After : May 25 18:37:25 2026 GMT - Subject: C=US, ST=Michigan, L=Ann Arbor, O=Test Self-Signed, CN=SS A - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:b0:5a:83:9c:fe:1b:46:24:0b:d9:b0:0a:f2:f1: - 47:bf:05:f1:68:49:6b:d2:50:f7:29:f5:f1:59:a8: - 28:04:e2:7e:c9:d5:e0:86:b5:8f:2f:f9:45:a5:88: - 02:04:cb:9a:c3:19:56:68:c8:eb:fe:c3:46:1a:44: - be:e2:c5:e5:34:5a:18:66:1b:8e:d7:d9:19:f2:22: - 43:6d:4c:28:56:25:48:42:b5:76:e5:d9:c0:86:40: - f7:e7:87:0c:2d:07:e6:bd:84:9e:60:36:97:a8:d3: - de:8a:37:a6:70:68:de:f1:d3:0a:db:fe:11:e8:f9: - 0b:bc:56:47:d3:d4:5a:e5:ce:af:e6:d8:30:de:11: - a3:7a:4d:c7:b5:0a:9c:9a:f6:4d:df:a1:46:6c:91: - 03:e3:c6:be:61:38:b5:cb:1a:b5:82:6d:4d:d2:c6: - 8b:32:25:b3:6d:01:d7:e7:da:2e:fe:a0:95:cf:9c: - a1:e0:89:9e:2b:2b:f3:3a:98:7b:2e:b1:77:b3:88: - 12:71:63:53:bf:b1:df:1e:de:da:13:e8:bd:d4:30: - ec:c2:c4:e7:f9:0a:31:b2:b4:5e:36:9a:90:74:ef: - 6a:45:e5:77:f3:97:8b:68:81:43:05:bc:e5:07:a6: - 2f:9b:b1:c0:59:43:ac:28:bb:36:6c:98:02:72:c4: - 77:3b - Exponent: 65537 (0x10001) - Signature Algorithm: sha256WithRSAEncryption - aa:73:51:c6:c4:9b:8e:2d:a1:04:08:19:f9:c5:58:62:58:55: - c8:71:9c:4b:af:01:cd:c6:34:6d:02:36:d8:34:0d:7b:6b:e6: - 41:f6:eb:6c:be:a5:42:85:a9:fd:38:ee:a3:21:ba:b0:97:e6: - f1:8e:2f:8e:68:ac:87:94:bb:90:8c:e5:b7:02:04:a2:75:35: - df:1b:ea:51:ec:df:85:fb:9f:46:a2:03:5b:f0:02:92:72:f0: - a6:d3:c7:d5:84:78:3a:c2:77:82:eb:ed:e0:59:37:c7:f6:6e: - 2c:34:3a:4e:3c:7a:f2:71:92:51:81:1b:77:0b:27:67:cd:33: - a6:59:a8:c8:c3:38:cd:ad:e3:48:bb:fd:e4:92:4a:e5:73:93: - 15:1a:c9:fd:94:eb:11:6b:cd:45:dd:04:92:da:bb:e8:53:1d: - 65:76:13:ea:a9:3a:e2:7b:f7:a6:66:f7:02:fb:d4:7a:ac:2f: - 72:32:66:0e:b5:97:a0:10:d2:0e:31:fc:e5:3a:74:79:bc:cc: - 97:85:31:85:f3:89:8f:f5:7a:66:53:eb:77:98:51:c3:3f:ed: - 29:b7:e6:bc:30:83:b2:aa:b0:82:98:50:32:a1:4c:da:1e:6f: - a8:c8:49:51:f5:6b:c4:15:18:e6:32:33:d6:31:f6:0d:62:f6: - d2:db:de:ad ------BEGIN CERTIFICATE----- -MIIDODCCAiACCQDQI6Fi5sQtAjANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJV -UzERMA8GA1UECAwITWljaGlnYW4xEjAQBgNVBAcMCUFubiBBcmJvcjEZMBcGA1UE -CgwQVGVzdCBTZWxmLVNpZ25lZDENMAsGA1UEAwwEU1MgQTAeFw0xNjA1MjcxODM3 -MjVaFw0yNjA1MjUxODM3MjVaMF4xCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhNaWNo -aWdhbjESMBAGA1UEBwwJQW5uIEFyYm9yMRkwFwYDVQQKDBBUZXN0IFNlbGYtU2ln -bmVkMQ0wCwYDVQQDDARTUyBBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAsFqDnP4bRiQL2bAK8vFHvwXxaElr0lD3KfXxWagoBOJ+ydXghrWPL/lFpYgC -BMuawxlWaMjr/sNGGkS+4sXlNFoYZhuO19kZ8iJDbUwoViVIQrV25dnAhkD354cM -LQfmvYSeYDaXqNPeijemcGje8dMK2/4R6PkLvFZH09Ra5c6v5tgw3hGjek3HtQqc -mvZN36FGbJED48a+YTi1yxq1gm1N0saLMiWzbQHX59ou/qCVz5yh4ImeKyvzOph7 -LrF3s4gScWNTv7HfHt7aE+i91DDswsTn+QoxsrReNpqQdO9qReV385eLaIFDBbzl -B6Yvm7HAWUOsKLs2bJgCcsR3OwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCqc1HG -xJuOLaEECBn5xVhiWFXIcZxLrwHNxjRtAjbYNA17a+ZB9utsvqVChan9OO6jIbqw -l+bxji+OaKyHlLuQjOW3AgSidTXfG+pR7N+F+59GogNb8AKScvCm08fVhHg6wneC -6+3gWTfH9m4sNDpOPHrycZJRgRt3CydnzTOmWajIwzjNreNIu/3kkkrlc5MVGsn9 -lOsRa81F3QSS2rvoUx1ldhPqqTrie/emZvcC+9R6rC9yMmYOtZegENIOMfzlOnR5 -vMyXhTGF84mP9XpmU+t3mFHDP+0pt+a8MIOyqrCCmFAyoUzaHm+oyElR9WvEFRjm -MjPWMfYNYvbS296t ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/sha1_2016.pem b/src/pki/testdata/ssl/certificates/sha1_2016.pem deleted file mode 100644 index 081eba9..0000000 --- a/src/pki/testdata/ssl/certificates/sha1_2016.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:6e - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 30 00:00:00 2008 GMT - Not After : Dec 30 00:00:00 2016 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c5:5d:b5:e9:b8:f3:a2:a8:01:b7:3b:c0:e3:89: - 89:cc:60:04:36:1a:ea:d1:52:9a:4b:6b:6f:5c:80: - 09:e9:b9:89:49:53:4f:7c:c9:d3:04:2e:7c:91:4f: - b7:31:de:38:fc:18:37:53:9e:7f:4e:6a:03:68:df: - 53:1b:95:06:10:88:5c:12:61:a1:73:4e:c9:a4:e0: - 54:66:15:6f:f1:13:a8:ab:82:1d:f5:30:a4:f5:4c: - 3d:52:49:4a:8e:d4:65:16:f1:7e:c5:9a:2f:08:de: - 95:b5:02:54:24:ce:36:70:6c:48:07:a8:3b:ad:2e: - a0:41:d2:c6:84:06:62:c7:ec:e0:d0:9c:bf:a1:13: - 7c:51:df:ab:7c:da:1d:02:f7:70:9e:e6:7b:8a:af: - 75:f4:99:27:17:32:9f:b2:95:dc:3c:f8:80:4f:a3: - 1e:82:0b:48:79:6a:ba:11:e0:65:2e:07:fe:74:db: - 28:c0:99:f6:72:be:03:2a:5e:22:4d:25:43:6d:39: - 97:76:ae:d4:58:8d:0a:23:4c:5a:89:48:55:7d:2b: - 8e:7d:cc:95:5a:47:30:34:b3:4c:98:00:4f:30:28: - d9:c5:2d:2b:0f:79:b5:1a:19:73:58:fe:74:d2:50: - d8:5e:a0:40:0e:44:c3:ec:6d:5f:6e:ac:86:ab:43: - af:a7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 89:46:0C:BD:AB:A9:64:95:21:BF:40:3B:0A:35:60:B7:EA:20:4F:F9 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - Signature Value: - 17:78:1c:ee:69:6f:a9:3a:14:f6:48:e8:2f:c9:23:3c:f1:83: - c0:99:20:b6:21:cc:10:e1:22:06:cd:de:cc:e3:3c:fc:60:23: - 47:fa:df:03:7f:6a:1e:3b:6a:8c:fd:66:64:9d:3f:57:89:62: - 41:23:a7:30:c7:f2:58:40:aa:b9:dc:69:74:3e:b4:cd:fc:54: - 1e:2a:b5:6a:02:62:11:b6:d7:f9:6a:0f:31:37:45:9d:24:34: - a6:40:d5:82:1f:0c:a3:ec:53:32:b6:57:64:9d:49:60:bc:3c: - 4d:57:b1:f5:a0:3e:c0:50:c5:12:56:70:66:4b:bb:f6:19:3b: - a3:23:58:c3:c5:8e:51:5a:71:f6:a8:c6:e9:82:c8:d7:77:13: - 6d:27:d0:28:67:de:64:c9:df:db:2a:f1:0f:0d:e4:ba:5b:bc: - 46:5e:bb:a9:7a:50:b3:54:83:e4:fa:b2:3e:18:03:06:d1:d5: - 5c:50:45:25:47:9b:33:7e:3c:f3:c4:f4:c6:79:ad:e8:63:28: - f1:2c:05:08:de:83:db:3e:41:df:5d:eb:6e:53:12:51:f8:fb: - c4:e4:c5:dd:b1:72:e2:ae:f7:25:6c:e1:f4:aa:50:b8:b5:7c: - cf:78:f3:9b:dc:e3:7d:86:f3:54:79:2e:7e:b9:e4:3b:ce:e3: - 37:4b:9f:72 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwm4wDQYJKoZIhvcNAQEFBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0wODEwMzAwMDAwMDBaFw0xNjEyMzAwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFXbXpuPOiqAG3O8DjiYnMYAQ2GurRUppL -a29cgAnpuYlJU098ydMELnyRT7cx3jj8GDdTnn9OagNo31MblQYQiFwSYaFzTsmk -4FRmFW/xE6irgh31MKT1TD1SSUqO1GUW8X7Fmi8I3pW1AlQkzjZwbEgHqDutLqBB -0saEBmLH7ODQnL+hE3xR36t82h0C93Ce5nuKr3X0mScXMp+yldw8+IBPox6CC0h5 -aroR4GUuB/502yjAmfZyvgMqXiJNJUNtOZd2rtRYjQojTFqJSFV9K459zJVaRzA0 -s0yYAE8wKNnFLSsPebUaGXNY/nTSUNheoEAORMPsbV9urIarQ6+nAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSJRgy9q6lklSG/QDsKNWC36iBP+TAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQUFAAOC -AQEAF3gc7mlvqToU9kjoL8kjPPGDwJkgtiHMEOEiBs3ezOM8/GAjR/rfA39qHjtq -jP1mZJ0/V4liQSOnMMfyWECqudxpdD60zfxUHiq1agJiEbbX+WoPMTdFnSQ0pkDV -gh8Mo+xTMrZXZJ1JYLw8TVex9aA+wFDFElZwZku79hk7oyNYw8WOUVpx9qjG6YLI -13cTbSfQKGfeZMnf2yrxDw3kulu8Rl67qXpQs1SD5PqyPhgDBtHVXFBFJUebM348 -88T0xnmt6GMo8SwFCN6D2z5B313rblMSUfj7xOTF3bFy4q73JWzh9KpQuLV8z3jz -m9zjfYbzVHkufrnkO87jN0ufcg== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/sha1_leaf.pem b/src/pki/testdata/ssl/certificates/sha1_leaf.pem deleted file mode 100644 index 159eacd..0000000 --- a/src/pki/testdata/ssl/certificates/sha1_leaf.pem +++ /dev/null @@ -1,113 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC9o+TdWyQ2AkBd -6MXG42PIyEXvsufPWoZG2ZReNf3amGoh0CmUXffA7jFiJUDqBy/K/Cyuf7IBGgfG -SA9KM2kTUbvMMR0uXqrx0hlPDaZRg0DFwBBFl7WrRUjE6ivlI8XadwBKTc8EIZOr -xtm22PA2z1HCbE7pLvuA0s4kJ1kbhYkUQneEhqiahC2tsuOMj90lI0T6ChgjCb1r -8Odgr0MOH3hkhyo+NlRSKpI0ZKlwuAA4UdBxyII5YmCcd3U9dHYviEezZ4AQwWEd -CjUaNkrfNewDatDf97LTrPo9VY6BTq3g77LLlpW93roTiVhEQb8YjrKS4jjmIQEN -tzTnh7GxAgMBAAECggEBAJQqbTIVd6FK+QdmSsAuAVRqRVoWKc90Jt1MOgOxo3kb -BDEO9q2ZDW2LrMHF4YX3v3uUs0RTOLxrng9pVajfqgUSIuxSoz4LcPwm7uc4/u1I -416dxRjag3IhW82eOFV7MaaSu4NSb6AGq93WK1wU+vmX2YVSIgVGU/I+whi1NYWt -4Cq72f0E30F72G1+OrBZpdJpojSVOfRZY+VK8CIphNLtXlCzNv2omfTfvmyfEi02 -vsxFylck6ULmQNFbuIaVrAJx5giAW8VFnvs/6NatyO+xOdelrgYJ/q+UQwvtstD2 -qVoxV2a3mDQ0djoK6GZmFFwGy2BDlnFrEpugXjqgEdECgYEA+5SQuBLX1Xd4W7H6 -WLxljobf7ACLd9vpgPmhtEpWTHFRdvdYrhc8Gs/FIEIGNoIFimZJZ0+DzOfULep8 -2WYMheIahYOK+4nZfHyZbf2pdiXaNukX0C/wwTsACuTBOWC4GH0v1LYkYykDlCyf -MrFKuS9WjGFPB893s5M7lClpn3sCgYEAwPjDyGYmRif4ZGe4GfL1+vbmHJu0bd+3 -n4FfwEpvaBn2xrNjcT+tc9uANN6knAccT9krWtmthJ+SYQ21hlTinbpzYC6/4Olf -BcKA4EbQTr9EV3IeqI5PRkMMJ4VKzfbskLSrcO6YGZq7dVfhULRFGms7wHx+ijJP -xP7gsNOQdcMCgYEA9McvK7pBwBP2yhjYAQCFO3ClbEV3bY5NmkzIddeiMcxLvBmb -cf9vXpLrNKCo1N4bL/an0tn93h9uRaKSCSAObTF6Jo+/aVBNiJ7e1bLp7+eScrzG -i6wpbojOWMsL6ZzeYg1jvW3e55AfSEtGNhdkIdwaNIn1UB8fU1ycqmLEvwMCgYBj -ZwF7Flt64hYKqn7kJwpcp5grfm1397jf2kXXiMBQkKdU/Y0pBhM0TgqBsXp7wRHt -c8Hof57pZUWC5wvt0YYWl7fdANfoZG6FSgcXAINHPTFYFjoCu6PMXrdBGGFLLXn4 -pIh3mQASmGkd7hHrf6DlFf3mjnqkd3wtztkxXRnZ/wKBgQCBEMMJa19ONAdVWtP9 -G2QeqthDPoMJDbvUAbjPoxUwBhN8vIObeamWsaKU9zbuDPpNaKw5pq6PdEFPOttu -i4du0hSRW/tH8XBa8lKdbGak8/KMLesfd3BKKLhwLe8Zr7l7n0br920MTWKbKuqM -ZAEGf9m7isatL4lNdngVXV2aUA== ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:82 - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:30 2022 GMT - Not After : Oct 2 17:20:30 2024 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:bd:a3:e4:dd:5b:24:36:02:40:5d:e8:c5:c6:e3: - 63:c8:c8:45:ef:b2:e7:cf:5a:86:46:d9:94:5e:35: - fd:da:98:6a:21:d0:29:94:5d:f7:c0:ee:31:62:25: - 40:ea:07:2f:ca:fc:2c:ae:7f:b2:01:1a:07:c6:48: - 0f:4a:33:69:13:51:bb:cc:31:1d:2e:5e:aa:f1:d2: - 19:4f:0d:a6:51:83:40:c5:c0:10:45:97:b5:ab:45: - 48:c4:ea:2b:e5:23:c5:da:77:00:4a:4d:cf:04:21: - 93:ab:c6:d9:b6:d8:f0:36:cf:51:c2:6c:4e:e9:2e: - fb:80:d2:ce:24:27:59:1b:85:89:14:42:77:84:86: - a8:9a:84:2d:ad:b2:e3:8c:8f:dd:25:23:44:fa:0a: - 18:23:09:bd:6b:f0:e7:60:af:43:0e:1f:78:64:87: - 2a:3e:36:54:52:2a:92:34:64:a9:70:b8:00:38:51: - d0:71:c8:82:39:62:60:9c:77:75:3d:74:76:2f:88: - 47:b3:67:80:10:c1:61:1d:0a:35:1a:36:4a:df:35: - ec:03:6a:d0:df:f7:b2:d3:ac:fa:3d:55:8e:81:4e: - ad:e0:ef:b2:cb:96:95:bd:de:ba:13:89:58:44:41: - bf:18:8e:b2:92:e2:38:e6:21:01:0d:b7:34:e7:87: - b1:b1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 1F:90:87:C1:2E:EE:B4:70:94:B3:39:33:71:D2:37:34:19:46:7C:40 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - Signature Value: - 08:e7:3e:ac:bf:41:a5:98:43:ca:44:41:ad:8f:8c:1b:fe:b7: - 77:1e:cb:d4:fb:5b:a2:d9:ce:88:07:9e:ef:7b:91:3b:67:a2: - e4:3b:a4:11:b3:8a:54:40:42:ef:38:97:2b:ac:a8:8d:d4:0a: - 7c:e6:d4:a5:3b:d6:48:8d:af:29:e1:fb:e7:72:1b:7b:35:a6: - c3:1d:a5:89:9c:2d:e2:31:31:83:4c:eb:ed:8a:c5:42:71:6c: - 8e:50:4b:76:98:11:4d:48:3d:ad:14:d1:44:05:3d:70:91:83: - 13:d5:9d:85:fa:de:ea:a0:99:e8:3e:f0:fa:aa:59:93:ef:78: - 6e:c8:e8:ee:94:3c:8b:35:35:7a:2a:75:3a:53:55:2c:de:68: - 73:9a:7f:f3:b8:da:e4:4a:13:18:f6:46:53:7f:ad:65:29:13: - bb:23:84:56:08:77:f6:b7:84:fe:ca:2c:24:0d:4a:68:81:bf: - d2:44:bf:f6:1d:74:5d:dc:77:b1:1c:23:25:62:f0:b9:7a:62: - a7:15:4b:18:c4:19:9f:3c:4d:ef:33:49:17:a6:09:66:80:de: - 7b:50:f5:33:0a:7f:28:23:99:a3:ca:82:a1:a7:ba:f2:44:a9: - 17:a3:9c:75:86:f2:cd:3b:8c:af:61:28:cd:57:f0:ab:83:c8: - 12:87:59:f3 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwoIwDQYJKoZIhvcNAQEFBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMzBaFw0yNDEwMDIxNzIwMzBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9o+TdWyQ2AkBd6MXG42PIyEXvsufPWoZG -2ZReNf3amGoh0CmUXffA7jFiJUDqBy/K/Cyuf7IBGgfGSA9KM2kTUbvMMR0uXqrx -0hlPDaZRg0DFwBBFl7WrRUjE6ivlI8XadwBKTc8EIZOrxtm22PA2z1HCbE7pLvuA -0s4kJ1kbhYkUQneEhqiahC2tsuOMj90lI0T6ChgjCb1r8Odgr0MOH3hkhyo+NlRS -KpI0ZKlwuAA4UdBxyII5YmCcd3U9dHYviEezZ4AQwWEdCjUaNkrfNewDatDf97LT -rPo9VY6BTq3g77LLlpW93roTiVhEQb8YjrKS4jjmIQENtzTnh7GxAgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQfkIfBLu60cJSzOTNx0jc0GUZ8QDAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQUFAAOC -AQEACOc+rL9BpZhDykRBrY+MG/63dx7L1PtbotnOiAee73uRO2ei5DukEbOKVEBC -7ziXK6yojdQKfObUpTvWSI2vKeH753IbezWmwx2liZwt4jExg0zr7YrFQnFsjlBL -dpgRTUg9rRTRRAU9cJGDE9Wdhfre6qCZ6D7w+qpZk+94bsjo7pQ8izU1eip1OlNV -LN5oc5p/87ja5EoTGPZGU3+tZSkTuyOEVgh39reE/sosJA1KaIG/0kS/9h10Xdx3 -sRwjJWLwuXpipxVLGMQZnzxN7zNJF6YJZoDee1D1Mwp/KCOZo8qCoae68kSpF6Oc -dYbyzTuMr2EozVfwq4PIEodZ8w== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/spdy_pooling.pem b/src/pki/testdata/ssl/certificates/spdy_pooling.pem deleted file mode 100644 index b5eb200..0000000 --- a/src/pki/testdata/ssl/certificates/spdy_pooling.pem +++ /dev/null @@ -1,79 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 0a:30:58:00:41:4d:22:20:68:ab:c8:5e:5f:9d:57:82:9c:c3:a2:1e - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Validity - Not Before: Oct 3 17:20:09 2022 GMT - Not After : Sep 30 17:20:09 2032 GMT - Subject: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ec:e4:cc:ed:ab:60:cd:e3:0f:5c:3c:29:73:cf: - 6e:a4:52:c4:dc:49:d6:2f:d5:cd:26:56:3d:3d:aa: - c6:69:d7:ad:7a:47:ea:84:73:aa:85:b8:95:13:85: - ea:9b:01:5c:ef:53:62:4f:92:61:9a:bd:64:7d:fa: - ce:ea:08:06:b5:c0:48:9f:db:a6:90:c1:26:26:bc: - c2:44:47:18:37:16:d8:63:5a:e9:bf:23:f9:46:d6: - 65:0c:53:3b:b3:0e:d1:de:f7:d6:81:fe:0e:75:c4: - 5d:38:45:28:17:98:c8:99:bf:9a:60:ec:b0:36:38: - 9b:9e:36:57:e9:8a:51:d3:ee:1b:23:9b:18:db:31: - dc:3f:1c:02:b6:c5:73:2f:f5:90:71:7f:a1:ab:f3: - 24:d6:d5:b4:5c:4f:37:eb:ca:44:55:9a:86:65:24: - 78:56:04:b9:3a:63:f9:f7:26:2f:8d:bc:98:9c:19: - 68:4d:f8:30:df:6c:30:32:31:75:3b:54:e7:7c:d3: - b0:05:c5:98:66:1c:f9:73:c4:b0:c2:83:67:c3:30: - 79:6f:60:1f:0b:0c:67:6b:22:2c:cb:16:3d:73:1b: - 8c:a0:a3:30:f1:db:9a:fc:0e:45:bb:7e:b4:03:a2: - 33:d2:d3:cb:98:95:ec:66:f6:2e:51:e9:85:14:8d: - 13:89 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Alternative Name: - DNS:www.example.org, DNS:mail.example.org, DNS:mail.example.com, DNS:example.test - X509v3 Subject Key Identifier: - 21:E7:36:0A:62:36:97:A3:5E:52:97:4A:73:AE:2B:1C:3E:25:C7:6C - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 4b:83:37:e0:92:ee:31:5c:ed:d7:4f:c8:10:7c:82:49:82:72: - fd:d5:b0:b1:be:fb:a5:62:f8:9b:17:68:82:b9:f1:2a:d5:80: - 3a:e5:73:2c:f9:bc:86:c0:8c:3a:69:36:63:60:c5:fb:d3:b9: - 3b:87:8b:05:14:58:88:f5:87:50:e8:7c:c2:21:a7:66:ed:b4: - 7f:12:86:71:6b:93:cb:a8:68:4b:5b:a6:a9:1b:8a:f0:f2:41: - b5:eb:eb:62:a3:f8:b6:e4:97:f2:4b:5b:47:45:3f:a5:50:74: - a9:07:1d:2a:d7:7b:d5:57:91:6d:c2:ed:fa:2e:42:6d:19:2b: - eb:4b:d6:3c:2b:c9:ac:1d:5e:11:1e:b8:cb:d7:fa:b3:4f:39: - b6:1b:9f:b0:e0:27:96:a3:cc:7b:03:f0:0e:dc:34:3f:b6:fb: - 66:7b:d1:1b:a7:49:ec:f3:d5:fd:60:7c:54:ed:c1:ac:3c:a0: - 54:6f:62:d4:5b:99:39:09:e5:c2:9b:21:5e:8d:76:59:0f:b5: - 6d:8d:cb:b6:bb:21:ea:cb:33:9a:2c:14:ca:51:8b:26:3a:ce: - 9f:2d:5f:d2:ad:9d:8d:c7:2b:30:7e:40:40:43:94:83:c4:09: - 25:79:c0:fb:43:05:02:a8:93:b3:60:3f:fa:63:21:27:a3:eb: - 8b:0f:06:33 ------BEGIN CERTIFICATE----- -MIIDvTCCAqWgAwIBAgIUCjBYAEFNIiBoq8heX51XgpzDoh4wDQYJKoZIhvcNAQEL -BQAwYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM -DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMMCTEyNy4w -LjAuMTAeFw0yMjEwMDMxNzIwMDlaFw0zMjA5MzAxNzIwMDlaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDs5Mztq2DN4w9cPClzz26kUsTcSdYv1c0m -Vj09qsZp1616R+qEc6qFuJUTheqbAVzvU2JPkmGavWR9+s7qCAa1wEif26aQwSYm -vMJERxg3FthjWum/I/lG1mUMUzuzDtHe99aB/g51xF04RSgXmMiZv5pg7LA2OJue -NlfpilHT7hsjmxjbMdw/HAK2xXMv9ZBxf6Gr8yTW1bRcTzfrykRVmoZlJHhWBLk6 -Y/n3Ji+NvJicGWhN+DDfbDAyMXU7VOd807AFxZhmHPlzxLDCg2fDMHlvYB8LDGdr -IizLFj1zG4ygozDx25r8DkW7frQDojPS08uYlexm9i5R6YUUjROJAgMBAAGjbzBt -MEwGA1UdEQRFMEOCD3d3dy5leGFtcGxlLm9yZ4IQbWFpbC5leGFtcGxlLm9yZ4IQ -bWFpbC5leGFtcGxlLmNvbYIMZXhhbXBsZS50ZXN0MB0GA1UdDgQWBBQh5zYKYjaX -o15Sl0pzriscPiXHbDANBgkqhkiG9w0BAQsFAAOCAQEAS4M34JLuMVzt10/IEHyC -SYJy/dWwsb77pWL4mxdogrnxKtWAOuVzLPm8hsCMOmk2Y2DF+9O5O4eLBRRYiPWH -UOh8wiGnZu20fxKGcWuTy6hoS1umqRuK8PJBtevrYqP4tuSX8ktbR0U/pVB0qQcd -Ktd71VeRbcLt+i5CbRkr60vWPCvJrB1eER64y9f6s085thufsOAnlqPMewPwDtw0 -P7b7ZnvRG6dJ7PPV/WB8VO3BrDygVG9i1FuZOQnlwpshXo12WQ+1bY3Ltrsh6ssz -miwUylGLJjrOny1f0q2djccrMH5AQEOUg8QJJXnA+0MFAqiTs2A/+mMhJ6Priw8G -Mw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/start_after_expiry.pem b/src/pki/testdata/ssl/certificates/start_after_expiry.pem deleted file mode 100644 index bd6eacc..0000000 --- a/src/pki/testdata/ssl/certificates/start_after_expiry.pem +++ /dev/null @@ -1,85 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:76 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Sep 1 00:00:00 2018 GMT - Not After : Apr 2 00:00:00 2015 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e7:1f:c0:bc:e7:c2:07:2d:13:9c:c8:c9:8a:89: - a7:fd:63:87:c5:2a:b0:f5:e4:e0:08:af:e2:c3:f1: - 8c:02:f1:20:7a:9d:09:c0:c7:24:ef:61:04:e3:c9: - da:36:60:d5:8e:84:c9:4f:cc:ba:88:eb:00:a7:92: - 46:47:69:e2:89:50:90:63:55:49:9e:4c:fb:3a:c6: - 92:90:4d:69:b5:d8:85:3b:d6:dd:c5:62:e8:da:51: - 62:4e:0f:61:82:e1:72:6b:37:ac:34:f4:92:fb:17: - d9:d4:52:ec:c5:e5:96:f7:e3:8f:f1:c7:a0:f4:de: - bf:5d:d7:74:72:6f:41:60:9f:51:ed:93:08:48:7c: - c8:44:1d:6b:30:d4:1f:67:88:1b:1e:8e:bf:83:18: - d2:cd:46:78:62:e4:1c:ac:be:48:0b:56:db:7c:b9: - b9:4f:97:3a:51:c1:14:37:c9:87:56:c2:19:5e:93: - d6:fc:75:99:88:fd:9b:f5:bc:ab:0c:2f:77:86:bf: - 4d:2c:05:84:2e:82:61:f7:7d:0a:c3:fd:80:46:bd: - 1b:46:b8:15:6a:91:2f:de:5f:bd:c2:cb:76:77:59: - 03:90:c9:6d:e3:19:df:d2:f0:cc:6c:ef:ff:92:e9: - 27:39:5a:0f:e2:a6:49:5f:f9:0f:e4:10:d0:76:9b: - 5c:ff - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - F1:42:EA:7F:63:33:BE:07:0C:EE:F1:61:42:F0:3F:7D:1E:D5:26:52 - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - ac:f3:da:f2:75:15:ff:95:c9:14:47:22:c3:b6:fc:b2:93:3b: - 33:7a:c0:81:71:f3:95:33:90:55:08:89:c1:1b:b7:06:f5:9c: - 43:59:90:2a:b0:9c:4b:91:f1:40:c0:c5:71:80:64:1e:f1:b3: - 1c:45:b9:d3:05:f8:1a:2d:76:a5:47:5c:f9:bc:66:66:0c:11: - 04:af:f2:3b:ef:ff:50:46:1e:70:45:d3:14:b0:a4:4a:d3:8c: - 99:e4:e3:a1:c8:7d:83:18:29:b8:3d:ca:ad:5c:b0:cf:ea:47: - 73:eb:85:c2:85:99:b7:68:c5:c5:bd:f2:c6:75:b7:65:e7:74: - da:39:fa:b7:dc:9f:a9:f6:fd:e7:d4:70:91:b3:42:8a:71:38: - 2e:e3:c3:2a:35:6f:08:56:21:35:81:89:46:ca:e1:05:a7:f6: - 60:f5:b0:b3:44:3a:23:43:f3:e8:99:a3:7b:f8:42:2e:60:e5: - a6:ab:3f:06:20:70:2f:69:d7:bb:95:87:01:5d:16:31:c0:b7: - 97:09:0c:02:c4:20:b1:ab:15:ef:be:05:98:eb:41:a6:eb:eb: - e1:90:43:e6:b1:5f:d6:61:a4:18:bd:8a:6e:00:47:a7:58:a0: - 67:df:ea:09:a7:81:c3:5a:58:a9:ee:ac:f6:8b:2a:38:57:25: - b7:a6:38:36 ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIRALBrk5LjXI1+7Z3IllnFwnYwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0xODA5MDEwMDAwMDBaFw0xNTA0MDIwMDAwMDBaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDnH8C858IHLROcyMmKiaf9Y4fFKrD15OAI -r+LD8YwC8SB6nQnAxyTvYQTjydo2YNWOhMlPzLqI6wCnkkZHaeKJUJBjVUmeTPs6 -xpKQTWm12IU71t3FYujaUWJOD2GC4XJrN6w09JL7F9nUUuzF5Zb344/xx6D03r9d -13Ryb0Fgn1HtkwhIfMhEHWsw1B9niBsejr+DGNLNRnhi5BysvkgLVtt8ublPlzpR -wRQ3yYdWwhlek9b8dZmI/Zv1vKsML3eGv00sBYQugmH3fQrD/YBGvRtGuBVqkS/e -X73Cy3Z3WQOQyW3jGd/S8Mxs7/+S6Sc5Wg/ipklf+Q/kENB2m1z/AgMBAAGjgYAw -fjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTxQup/YzO+Bwzu8WFC8D99HtUmUjAf -BgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEArPPa8nUV/5XJFEciw7b8spM7M3rAgXHzlTOQVQiJwRu3BvWcQ1mQKrCcS5Hx -QMDFcYBkHvGzHEW50wX4Gi12pUdc+bxmZgwRBK/yO+//UEYecEXTFLCkStOMmeTj -och9gxgpuD3KrVywz+pHc+uFwoWZt2jFxb3yxnW3Zed02jn6t9yfqfb959RwkbNC -inE4LuPDKjVvCFYhNYGJRsrhBaf2YPWws0Q6I0Pz6Jmje/hCLmDlpqs/BiBwL2nX -u5WHAV0WMcC3lwkMAsQgsasV774FmOtBpuvr4ZBD5rFf1mGkGL2KbgBHp1igZ9/q -CaeBw1pYqe6s9osqOFclt6Y4Ng== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/subjectAltName_sanity_check.pem b/src/pki/testdata/ssl/certificates/subjectAltName_sanity_check.pem deleted file mode 100644 index 429273a..0000000 --- a/src/pki/testdata/ssl/certificates/subjectAltName_sanity_check.pem +++ /dev/null @@ -1,82 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 1a:3e:ff:08:8f:68:f4:e8:be:f8:a2:78:86:91:fa:b1:0b:a3:8c:1f - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Validity - Not Before: Oct 3 17:20:09 2022 GMT - Not After : Sep 30 17:20:09 2032 GMT - Subject: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e4:41:20:46:ee:74:19:2c:9b:0c:2e:e8:63:1b: - 40:7a:76:f9:3b:33:9f:bb:61:3b:dc:a1:71:fb:3d: - e4:df:7b:2f:0f:17:91:88:3f:9d:33:93:bc:12:29: - ab:7e:6f:4b:04:68:3c:33:b4:79:02:d8:3d:df:fb: - 9a:ee:29:de:24:7f:6d:49:00:76:5d:12:fe:d4:1b: - f8:3d:e5:08:e3:ea:22:ef:85:7e:5d:55:e1:e3:7b: - a1:84:c8:87:06:7b:08:97:ff:b9:cb:94:b9:c4:34: - fb:77:29:df:23:e3:19:96:8f:5f:5d:cd:95:5e:f0: - a5:ff:cf:91:b6:4d:a6:8a:f3:7d:7f:f8:22:8c:c9: - 27:0b:a5:37:37:a2:99:e4:79:ee:6d:73:1d:c9:a8: - 78:ba:f8:2a:aa:a0:3e:8b:8d:59:87:39:05:f1:eb: - 48:49:47:28:12:30:28:50:80:2a:67:3b:af:68:88: - bd:c0:f1:38:da:4f:d3:7b:15:86:6f:c8:b7:61:5f: - c5:af:ca:34:a2:72:b0:59:03:2c:8d:4d:f2:e7:ad: - d0:d7:1a:cc:8f:2d:5c:d1:41:ea:21:1a:e9:90:2e: - 63:99:90:28:1e:86:73:95:7d:7b:d7:eb:e7:af:2a: - 16:60:38:d7:b0:34:71:65:a6:d3:bd:53:91:99:20: - e0:39 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Alternative Name: - IP Address:127.0.0.2, IP Address:FE80:0:0:0:0:0:0:1, DNS:test.example, email:test@test.example, othername: 1.2.3.4::ignore me, DirName:/CN=127.0.0.3 - X509v3 Subject Key Identifier: - 67:95:3C:20:E0:D7:34:9E:D5:30:BE:B9:73:91:6F:0D:9B:96:3F:05 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 77:e7:81:56:2c:c2:10:36:0f:45:13:2c:9e:6d:9b:ef:ab:6d: - 50:e9:5f:3e:5f:93:9e:9a:81:24:76:5f:13:d3:b5:87:d5:c5: - d6:e4:55:3b:c1:18:35:a1:27:aa:91:fc:90:dd:8a:c8:2e:1f: - 1e:17:4b:20:92:6e:fb:13:40:54:02:ea:cb:be:27:cf:c5:c0: - a7:29:47:74:07:ff:10:a6:98:00:cd:38:19:b4:14:43:3f:ec: - a1:8b:ff:47:6b:2c:ae:4b:08:d5:a0:9b:95:e3:76:56:1e:05: - 6f:26:3e:00:92:4b:4b:b8:e0:db:71:7a:61:93:72:ed:a2:f6: - 91:13:59:cf:62:d5:03:a2:09:96:ba:27:3c:82:38:dc:2d:8c: - 83:f9:ff:df:19:6b:a5:1a:b2:98:74:48:9f:e2:46:c7:70:3f: - c9:f0:ef:3b:35:3b:03:bb:f0:a6:84:6c:c1:8b:67:fc:de:c7: - ce:1d:2c:15:5f:46:4e:0f:b3:78:51:a1:7c:48:08:2b:c1:63: - e8:95:ba:41:23:96:ef:f2:9c:53:be:ed:97:19:bd:f0:2f:bc: - d1:16:e8:be:c4:6e:08:8f:a1:3d:95:48:c8:ea:68:4c:82:4b: - 4c:21:da:07:60:d6:b7:6d:09:35:7d:53:83:cf:e6:49:28:00: - 16:12:ed:17 ------BEGIN CERTIFICATE----- -MIID8jCCAtqgAwIBAgIUGj7/CI9o9Oi++KJ4hpH6sQujjB8wDQYJKoZIhvcNAQEL -BQAwYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM -DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMMCTEyNy4w -LjAuMTAeFw0yMjEwMDMxNzIwMDlaFw0zMjA5MzAxNzIwMDlaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkQSBG7nQZLJsMLuhjG0B6dvk7M5+7YTvc -oXH7PeTfey8PF5GIP50zk7wSKat+b0sEaDwztHkC2D3f+5ruKd4kf21JAHZdEv7U -G/g95Qjj6iLvhX5dVeHje6GEyIcGewiX/7nLlLnENPt3Kd8j4xmWj19dzZVe8KX/ -z5G2TaaK831/+CKMyScLpTc3opnkee5tcx3JqHi6+CqqoD6LjVmHOQXx60hJRygS -MChQgCpnO69oiL3A8TjaT9N7FYZvyLdhX8WvyjSicrBZAyyNTfLnrdDXGsyPLVzR -QeohGumQLmOZkCgehnOVfXvX6+evKhZgONewNHFlptO9U5GZIOA5AgMBAAGjgaMw -gaAwDwYDVR0TAQH/BAUwAwEB/zBuBgNVHREEZzBlhwR/AAAChxD+gAAAAAAAAAAA -AAAAAAABggx0ZXN0LmV4YW1wbGWBEXRlc3RAdGVzdC5leGFtcGxloBIGAyoDBKAL -DAlpZ25vcmUgbWWkFjAUMRIwEAYDVQQDDAkxMjcuMC4wLjMwHQYDVR0OBBYEFGeV -PCDg1zSe1TC+uXORbw2blj8FMA0GCSqGSIb3DQEBCwUAA4IBAQB354FWLMIQNg9F -EyyebZvvq21Q6V8+X5OemoEkdl8T07WH1cXW5FU7wRg1oSeqkfyQ3YrILh8eF0sg -km77E0BUAurLvifPxcCnKUd0B/8QppgAzTgZtBRDP+yhi/9HayyuSwjVoJuV43ZW -HgVvJj4AkktLuODbcXphk3LtovaRE1nPYtUDogmWuic8gjjcLYyD+f/fGWulGrKY -dEif4kbHcD/J8O87NTsDu/CmhGzBi2f83sfOHSwVX0ZOD7N4UaF8SAgrwWPolbpB -I5bv8pxTvu2XGb3wL7zRFui+xG4Ij6E9lUjI6mhMgktMIdoHYNa3bQk1fVODz+ZJ -KAAWEu0X ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/subjectAltName_www_example_com.pem b/src/pki/testdata/ssl/certificates/subjectAltName_www_example_com.pem deleted file mode 100644 index 7ece351..0000000 --- a/src/pki/testdata/ssl/certificates/subjectAltName_www_example_com.pem +++ /dev/null @@ -1,80 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 3c:cb:fb:30:6a:43:63:80:cb:8a:91:20:df:86:df:d9:df:c5:35:d0 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Validity - Not Before: Oct 3 17:20:09 2022 GMT - Not After : Sep 30 17:20:09 2032 GMT - Subject: C = US, ST = California, L = Mountain View, O = Test CA, CN = 127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c3:d7:35:26:24:ab:bd:83:85:71:3e:dc:9e:41: - a6:d4:bf:b9:20:c6:ca:37:f5:0e:dc:4a:23:f3:74: - 24:c9:7a:e2:68:0c:13:2d:11:95:cd:f9:77:61:39: - db:42:c8:2c:b0:b3:eb:64:09:5c:a4:66:58:08:99: - 85:3c:45:a7:75:f3:08:87:90:78:bc:09:e9:29:62: - 54:da:15:57:4f:50:f1:6e:14:9e:f3:58:1e:d1:be: - 4e:a2:6f:0a:fa:1c:f5:7b:5f:05:28:74:69:6e:2a: - 10:fb:9b:aa:e2:30:fa:62:9a:ec:e1:28:ce:d8:38: - 79:99:f6:86:09:44:e4:4f:f4:39:26:04:b5:3d:4a: - e4:d0:58:71:e7:24:c7:94:7d:84:68:d8:48:b3:6f: - e6:99:41:e4:d7:b3:9a:d2:41:f6:14:5f:46:33:58: - cb:d4:ce:2c:46:17:2a:9e:17:9c:e4:c1:bd:57:33: - 5a:7c:b5:31:09:59:8c:a2:de:5b:ee:9d:1b:6a:b8: - ab:c0:b4:90:65:f9:2d:de:9e:d5:34:37:16:2f:84: - c7:23:1e:46:0b:66:d4:7a:73:80:bc:6c:f8:20:7b: - c3:6e:25:fb:27:4b:1f:82:3f:68:c6:fd:9f:a7:88: - be:3e:4a:e6:53:02:04:b6:dd:5c:3c:75:b2:5b:de: - 7f:f3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Alternative Name: - DNS:www.example.com - X509v3 Subject Key Identifier: - BF:A7:72:AF:07:02:68:D6:D1:00:15:E6:D3:03:9A:0E:91:38:27:2F - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 24:e4:5a:62:e3:13:50:78:d2:ff:c2:27:51:47:99:62:ac:93: - 43:b1:51:6f:e5:b6:49:86:50:88:9c:88:8e:a5:00:a9:48:39: - b7:c5:99:41:96:83:66:1a:40:6e:06:90:48:33:9a:74:fe:d4: - be:29:7e:d9:4d:e3:58:0e:17:47:1b:35:14:12:a9:09:ca:07: - 38:74:fd:59:e4:7a:b7:d8:70:91:6b:02:c9:01:97:77:59:ac: - 27:b5:7c:38:6c:59:83:2e:15:eb:25:27:b7:63:28:39:c8:9a: - 14:5a:4a:c9:35:b4:dd:1c:d8:a1:2d:89:12:94:ad:c2:11:70: - 2e:cb:3f:3d:c0:ad:66:f1:da:8f:d8:db:98:02:6f:e0:46:c6: - c1:cb:f3:86:ed:6f:7a:b6:6d:86:7e:12:8b:74:a5:06:87:3d: - d8:c4:08:9d:1b:e9:55:5c:49:80:33:b5:36:ec:3e:87:7b:4e: - 63:45:a0:28:c7:c8:ce:41:22:2b:d3:f9:3a:a5:20:ff:24:d6: - 19:41:a6:ee:20:40:12:ad:c9:e0:be:56:0a:b7:8f:60:db:47: - 80:50:46:f6:cf:d9:39:73:1a:25:e1:4a:62:2f:f5:5b:89:75: - 85:f6:ea:8a:18:59:8a:9d:1b:cf:5c:d4:9c:f2:9c:cd:1b:d0: - e9:d8:62:5f ------BEGIN CERTIFICATE----- -MIIDnDCCAoSgAwIBAgIUPMv7MGpDY4DLipEg34bf2d/FNdAwDQYJKoZIhvcNAQEL -BQAwYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM -DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMMCTEyNy4w -LjAuMTAeFw0yMjEwMDMxNzIwMDlaFw0zMjA5MzAxNzIwMDlaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDD1zUmJKu9g4VxPtyeQabUv7kgxso39Q7c -SiPzdCTJeuJoDBMtEZXN+XdhOdtCyCyws+tkCVykZlgImYU8Rad18wiHkHi8Cekp -YlTaFVdPUPFuFJ7zWB7Rvk6ibwr6HPV7XwUodGluKhD7m6riMPpimuzhKM7YOHmZ -9oYJRORP9DkmBLU9SuTQWHHnJMeUfYRo2Eizb+aZQeTXs5rSQfYUX0YzWMvUzixG -FyqeF5zkwb1XM1p8tTEJWYyi3lvunRtquKvAtJBl+S3entU0NxYvhMcjHkYLZtR6 -c4C8bPgge8NuJfsnSx+CP2jG/Z+niL4+SuZTAgS23Vw8dbJb3n/zAgMBAAGjTjBM -MA8GA1UdEwEB/wQFMAMBAf8wGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29tMB0G -A1UdDgQWBBS/p3KvBwJo1tEAFebTA5oOkTgnLzANBgkqhkiG9w0BAQsFAAOCAQEA -JORaYuMTUHjS/8InUUeZYqyTQ7FRb+W2SYZQiJyIjqUAqUg5t8WZQZaDZhpAbgaQ -SDOadP7Uvil+2U3jWA4XRxs1FBKpCcoHOHT9WeR6t9hwkWsCyQGXd1msJ7V8OGxZ -gy4V6yUnt2MoOciaFFpKyTW03RzYoS2JEpStwhFwLss/PcCtZvHaj9jbmAJv4EbG -wcvzhu1verZthn4Si3SlBoc92MQInRvpVVxJgDO1Nuw+h3tOY0WgKMfIzkEiK9P5 -OqUg/yTWGUGm7iBAEq3J4L5WCrePYNtHgFBG9s/ZOXMaJeFKYi/1W4l1hfbqihhZ -ip0bz1zUnPKczRvQ6dhiXw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/test_names.pem b/src/pki/testdata/ssl/certificates/test_names.pem deleted file mode 100644 index eb8f77c..0000000 --- a/src/pki/testdata/ssl/certificates/test_names.pem +++ /dev/null @@ -1,114 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/YhJcAr1m0ACU -h3Byf5G1zDF+1LurMi7E8SLbzYbBxv5nlPVQC2dEtmqcY2C8xgHaQ52lxWVH8sBJ -YzBpglpaBzt9YlbSvE7qXXWmErE/2Nb0EcRE9c5aJMd69b35l7TeebpO/Txba271 -ufRzbmi9EdsjL07f+ZGbzD2h/thmATcRIHvcDaNlmk8gpiRJlZn1KNdNYS5Ma5s8 -W9ddGkLFqRt9PbbWkBK7EdYV2g+1Cvdi2GjCtEX194n3Adx+UePAoXAdjGkAIRZS -supd8RcJkpyt+M3WCPhgHAZitf1ati/ngcTIH/xhe53LR4w7zUB6WqSTN4/3sYoU -9aikl9yZAgMBAAECggEADm3JbpByUScLdCdF7gv6I1eyv5owT/bnmceIVkQHjeJ/ -2bVcTV2euop6PTIs3+6Zwyfn4dChEyyVHLNSuhGu2CzFam2YmCjEVl0Xep7cKDEj -+6C/SGez2A3/0CBo40FxzHgm+L+U5luSMQqFCJLhaKfI+r0dWDuLo9BhMS5yiDYb -3Wgt6HfTdATZ0xiGGacN9iK1VZk/a0BBjtjonJWOcoTRqakFNpU0rd322Y30t87d -rZVwB/fk5a5OEOqDtYknlrD/cK3j9qLtxfidNgK7FzwdTgGTl5S7rGRpiBKAi/9c -7LqdmKNnYJFpOoAHSbrwx1r2Ep4Si1JtswMXKGVzpQKBgQDdw7BLE2AeF2jx1UUM -vh7ljqG8LOa1hS6Bwa0LF84PoHmWL7sOYiyRazO6u9TsbJeQ6WKbVE2oktK1RsfD -/qq60fNzXbRFJeY55BP5pXP8M9dXl4f6ucQbcEOWEStICP7KbTjPlp6Jq2LKVSb4 -hZbiDhpsjFT7eh9H/Xzw16P3RwKBgQDc7bBD0SMIcrQ/gXPJJSDSSSr2A5bdDytx -Fj+I/nZ56mrwXz8M/UCsn11eyH3ypPSk/MvHCZRsSsg0hymJFQg/em+0BeBK/ptq -jk8xc9d1ZyfJaFxUAktuDdb98hqBK8uOF9C9EYm8sw0TTDLTWUA9Cn8LO1zLcSNU -M+1I5ic9HwKBgArwmWTKuuYhH4M2kyZyxpFqfN4MlQEFZeruw/uVHAw3TWg0SJUI -EMzHrhCbLYDQRpXWfY/OE9qqC4z3xekMSh3XN5xMVhVHLllSwA2DtPoPEKN4jTO4 -ME1uN1dS14DBONiBlNjgxEdkVgZHNxnxdSUHrxQFxDd3qc1iWuSCrssHAoGBALM9 -G45JtHR8KwSC0B9WwgQZXINvcgwy7Hm5JR7N4+0RZGVTwOGW7cufF694VcZwUhMx -DVqTyRj6qucC6Y3PxHtLqCiTw97UJd8TSejDJQCZCkx7ILz/h5boH46zxxEZKPJF -HBLokajIU0levrV9aYKca2n/ZU+goJsF7fMA1sDdAoGAMwYcQQ9XJLIVR3c1+cPm -ZXwod+8SRf8cr9G9YxVg74+DzPoC4D6nLLoMztsIEbqs32BROhFAIPkxUx8t3B+w -BAD+gaC3vgesecqPKWY8a7OhyNYKxSAaMp9EH1ywNX456OabzXIrXi8h0UVeEjmL -lrUqZQ2VvXn8/MApYF+5AJg= ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:6c - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Oct 2 17:20:08 2024 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:bf:62:12:5c:02:bd:66:d0:00:94:87:70:72:7f: - 91:b5:cc:31:7e:d4:bb:ab:32:2e:c4:f1:22:db:cd: - 86:c1:c6:fe:67:94:f5:50:0b:67:44:b6:6a:9c:63: - 60:bc:c6:01:da:43:9d:a5:c5:65:47:f2:c0:49:63: - 30:69:82:5a:5a:07:3b:7d:62:56:d2:bc:4e:ea:5d: - 75:a6:12:b1:3f:d8:d6:f4:11:c4:44:f5:ce:5a:24: - c7:7a:f5:bd:f9:97:b4:de:79:ba:4e:fd:3c:5b:6b: - 6e:f5:b9:f4:73:6e:68:bd:11:db:23:2f:4e:df:f9: - 91:9b:cc:3d:a1:fe:d8:66:01:37:11:20:7b:dc:0d: - a3:65:9a:4f:20:a6:24:49:95:99:f5:28:d7:4d:61: - 2e:4c:6b:9b:3c:5b:d7:5d:1a:42:c5:a9:1b:7d:3d: - b6:d6:90:12:bb:11:d6:15:da:0f:b5:0a:f7:62:d8: - 68:c2:b4:45:f5:f7:89:f7:01:dc:7e:51:e3:c0:a1: - 70:1d:8c:69:00:21:16:52:b2:ea:5d:f1:17:09:92: - 9c:ad:f8:cd:d6:08:f8:60:1c:06:62:b5:fd:5a:b6: - 2f:e7:81:c4:c8:1f:fc:61:7b:9d:cb:47:8c:3b:cd: - 40:7a:5a:a4:93:37:8f:f7:b1:8a:14:f5:a8:a4:97: - dc:99 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 45:0D:FA:A4:6B:B9:A7:1C:93:E8:AE:AF:C4:13:39:12:D4:2F:E0:5D - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - DNS:a.test, DNS:*.a.test, DNS:b.test, DNS:*.b.test, DNS:c.test, DNS:*.c.test, DNS:d.test, DNS:*.d.test - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 1c:4e:4c:06:fc:2a:0a:89:2e:de:21:c3:46:99:51:84:89:c0: - 4e:66:10:73:a2:b0:cb:6b:12:e4:eb:bb:a4:56:17:2f:73:7c: - ea:ae:7a:a7:0a:0b:6c:4a:24:2b:f2:82:51:2d:f8:b6:d7:3c: - 03:69:43:cd:cc:1b:85:4b:d9:c4:aa:5e:f7:c6:24:56:1a:61: - 0e:83:89:8f:08:08:93:a9:53:d1:f9:85:e5:d1:2d:05:40:4a: - 90:e1:36:90:3a:4b:4e:5d:ea:dd:e5:b7:ac:07:f1:62:34:6a: - 69:0f:f0:68:cc:6a:cf:47:bd:a7:55:fd:7e:8f:bc:d5:5a:a0: - 1e:b5:0a:e6:4b:53:8a:6f:e9:48:1b:0d:5c:ae:0a:57:07:64: - a6:9e:ea:68:49:76:a3:a0:20:cf:f2:cb:b6:19:2b:2f:69:3f: - 41:50:71:27:db:32:9c:d8:4c:db:bc:c4:c2:c9:12:a4:4a:80: - 65:71:cc:18:06:eb:3c:64:63:31:b5:d2:dc:34:d6:49:70:b0: - bb:98:7a:e3:e2:d4:00:4e:2a:41:7c:d4:70:93:6e:9a:12:26: - c8:4f:3a:e6:4a:b2:04:23:0e:c5:f6:10:d7:9b:ec:86:44:4f: - c0:9d:8d:d1:95:e6:4a:da:5e:81:d2:45:2f:b3:ae:97:fa:0a: - fd:16:c2:2f ------BEGIN CERTIFICATE----- -MIIEEjCCAvqgAwIBAgIRALBrk5LjXI1+7Z3IllnFwmwwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0yNDEwMDIxNzIwMDhaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/YhJcAr1m0ACUh3Byf5G1zDF+1LurMi7E -8SLbzYbBxv5nlPVQC2dEtmqcY2C8xgHaQ52lxWVH8sBJYzBpglpaBzt9YlbSvE7q -XXWmErE/2Nb0EcRE9c5aJMd69b35l7TeebpO/Txba271ufRzbmi9EdsjL07f+ZGb -zD2h/thmATcRIHvcDaNlmk8gpiRJlZn1KNdNYS5Ma5s8W9ddGkLFqRt9PbbWkBK7 -EdYV2g+1Cvdi2GjCtEX194n3Adx+UePAoXAdjGkAIRZSsupd8RcJkpyt+M3WCPhg -HAZitf1ati/ngcTIH/xhe53LR4w7zUB6WqSTN4/3sYoU9aikl9yZAgMBAAGjgcMw -gcAwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQURQ36pGu5pxyT6K6vxBM5EtQv4F0w -HwYDVR0jBBgwFoAUmyYLipipux25HxzjGkAz7Y4XiKswHQYDVR0lBBYwFAYIKwYB -BQUHAwEGCCsGAQUFBwMCMFEGA1UdEQRKMEiCBmEudGVzdIIIKi5hLnRlc3SCBmIu -dGVzdIIIKi5iLnRlc3SCBmMudGVzdIIIKi5jLnRlc3SCBmQudGVzdIIIKi5kLnRl -c3QwDQYJKoZIhvcNAQELBQADggEBABxOTAb8KgqJLt4hw0aZUYSJwE5mEHOisMtr -EuTru6RWFy9zfOqueqcKC2xKJCvyglEt+LbXPANpQ83MG4VL2cSqXvfGJFYaYQ6D -iY8ICJOpU9H5heXRLQVASpDhNpA6S05d6t3lt6wH8WI0amkP8GjMas9HvadV/X6P -vNVaoB61CuZLU4pv6UgbDVyuClcHZKae6mhJdqOgIM/yy7YZKy9pP0FQcSfbMpzY -TNu8xMLJEqRKgGVxzBgG6zxkYzG10tw01klwsLuYeuPi1ABOKkF81HCTbpoSJshP -OuZKsgQjDsX2ENeb7IZET8CdjdGV5kraXoHSRS+zrpf6Cv0Wwi8= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/treadclimber.pem b/src/pki/testdata/ssl/certificates/treadclimber.pem deleted file mode 100644 index bfbf859..0000000 --- a/src/pki/testdata/ssl/certificates/treadclimber.pem +++ /dev/null @@ -1,227 +0,0 @@ -=========================================== -Certificate0: 2f3d743c3627324a11549a9e5cfd1845e6dfdd63771509f0903456411c60bda8 -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 8c:7f:32:24:e1:a7:ab:96:00:00:00:00:50:ed:50:f3 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, O = "Entrust, Inc.", OU = See www.entrust.net/legal-terms, OU = "(c) 2012 Entrust, Inc. - for authorized use only", CN = Entrust Certification Authority - L1K - Validity - Not Before: Feb 7 17:50:22 2019 GMT - Not After : Feb 7 18:20:21 2020 GMT - Subject: C = US, ST = Washington, L = Vancouver, O = "Nautilus, Inc.", CN = Treadclimber.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:c5:4a:d9:1b:cb:70:54:d7:7d:57:83:53:8e:22: - ad:aa:d2:41:4a:b7:39:4e:7f:99:66:a9:7e:4f:2b: - a7:ed:17:4c:da:3b:8d:07:bd:f1:90:0b:8d:05:4d: - e0:dc:3c:19:ef:2e:fe:a3:38:30:c4:9e:8d:56:34: - 91:fe:25:65:8d:ad:46:a2:f1:fb:d0:5f:63:73:8d: - 29:f8:09:f6:9c:4d:10:5e:63:5e:bf:66:24:0c:70: - 3b:88:8f:f4:c6:ee:8f:31:68:05:0e:89:7a:7a:96: - 3a:2b:50:71:97:d3:a0:f1:95:49:11:e2:f9:c8:78: - 54:63:e8:6a:db:96:87:2d:de:18:ea:f2:43:4c:8d: - 3f:a5:76:27:fa:d9:e3:25:ba:96:60:9c:9a:9a:a9: - d3:37:3c:9c:49:28:f4:54:ce:c0:2a:e1:ce:9f:de: - f8:b5:3f:d9:1c:aa:9c:3c:9c:d0:f7:67:84:3a:3a: - bf:19:bf:e2:44:b3:13:3a:d5:94:f3:db:eb:67:7e: - da:50:9a:4a:40:e9:46:f6:5f:65:b5:21:ae:e2:4e: - 4d:02:fe:33:7f:b3:aa:0c:9c:cf:97:44:fe:28:15: - 64:26:ca:fb:07:8c:4f:40:b9:df:f5:fb:7b:e4:81: - 0e:85:16:4b:7e:80:74:df:62:3a:dd:1e:30:e8:11: - 3a:bf - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Digital Signature, Key Encipherment - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 CRL Distribution Points: - - Full Name: - URI:http://crl.entrust.net/level1k.crl - - X509v3 Certificate Policies: - Policy: 2.16.840.1.114028.10.1.5 - CPS: http://www.entrust.net/rpa - Policy: 2.23.140.1.2.2 - - Authority Information Access: - OCSP - URI:http://ocsp.entrust.net - CA Issuers - URI:http://aia.entrust.net/l1k-chain256.cer - - X509v3 Subject Alternative Name: - DNS:Treadclimber.com, DNS:www.Treadclimber.com, DNS:bowflexcatalog.com, DNS:www.bowflexcatalog.com, DNS:bowflexhomegyms.com, DNS:www.bowflexhomegyms.com, DNS:bowflexmaxtrainer.com, DNS:www.bowflexmaxtrainer.com, DNS:bowflexselecttech.com, DNS:www.bowflexselecttech.com, DNS:bowflexhvt.com, DNS:www.bowflexhvt.com, DNS:meethvt.com, DNS:www.meethvt.com, DNS:universalhomefitness.com, DNS:www.universalhomefitness.com, DNS:bowflexmaxtrainer.ca, DNS:www.bowflexmaxtrainer.ca, DNS:treadclimber.ca, DNS:www.treadclimber.ca - X509v3 Authority Key Identifier: - keyid:82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF - - X509v3 Subject Key Identifier: - DB:F8:04:79:71:73:4C:9D:47:E0:52:C2:8A:24:7E:C4:A6:14:D2:90 - X509v3 Basic Constraints: - CA:FALSE - Signature Algorithm: sha256WithRSAEncryption - 29:86:2a:a0:6f:bf:b7:3b:7e:9e:c3:e1:bb:28:9f:45:9f:0d: - 97:fc:24:a0:9c:28:6e:7c:50:3d:c2:ee:24:50:d1:c3:55:79: - 7b:10:94:50:4c:47:91:f5:f7:b3:d9:05:62:73:26:6f:8d:8e: - 18:b5:44:ae:55:32:0d:9d:12:36:a5:3b:df:d0:c1:07:7b:f4: - a5:8b:7a:64:b6:8b:d1:de:4f:fb:6e:64:a1:e8:95:f4:69:d7: - d3:f3:5c:75:ff:24:da:4e:e5:94:4d:e2:06:dc:87:de:2f:48: - fe:69:8e:77:ac:7f:3c:6b:cc:57:08:a7:9a:c7:9d:b3:37:9b: - 0a:a6:54:0c:a4:08:e8:95:63:73:95:c5:d5:5a:7e:41:57:d2: - a7:ca:45:ba:2c:4d:46:00:2d:3d:95:02:e2:34:08:91:43:7b: - c5:aa:e1:af:cd:f1:f4:f4:b6:e2:43:f6:8d:ff:2d:7a:26:13: - f8:99:be:77:92:90:b9:86:5f:93:2c:c6:61:37:56:0f:2a:1b: - ed:ad:68:fc:16:aa:ef:b6:3e:3e:3c:97:b6:8e:e2:72:ef:cc: - 47:9a:4c:e6:55:ea:b7:81:60:bf:d7:c4:23:a8:06:6e:02:0f: - 85:2b:70:8c:0a:3d:fc:5c:be:21:46:e8:33:0f:dd:18:d3:ad: - 8b:d0:b6:6a - ------BEGIN CERTIFICATE----- -MIIG4zCCBcugAwIBAgIRAIx/MiThp6uWAAAAAFDtUPMwDQYJKoZIhvcNAQELBQAw -gboxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL -Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg -MjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxLjAs -BgNVBAMTJUVudHJ1c3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBMMUswHhcN -MTkwMjA3MTc1MDIyWhcNMjAwMjA3MTgyMDIxWjBqMQswCQYDVQQGEwJVUzETMBEG -A1UECBMKV2FzaGluZ3RvbjESMBAGA1UEBxMJVmFuY291dmVyMRcwFQYDVQQKEw5O -YXV0aWx1cywgSW5jLjEZMBcGA1UEAxMQVHJlYWRjbGltYmVyLmNvbTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVK2RvLcFTXfVeDU44irarSQUq3OU5/ -mWapfk8rp+0XTNo7jQe98ZALjQVN4Nw8Ge8u/qM4MMSejVY0kf4lZY2tRqLx+9Bf -Y3ONKfgJ9pxNEF5jXr9mJAxwO4iP9MbujzFoBQ6JenqWOitQcZfToPGVSRHi+ch4 -VGPoatuWhy3eGOryQ0yNP6V2J/rZ4yW6lmCcmpqp0zc8nEko9FTOwCrhzp/e+LU/ -2RyqnDyc0PdnhDo6vxm/4kSzEzrVlPPb62d+2lCaSkDpRvZfZbUhruJOTQL+M3+z -qgycz5dE/igVZCbK+weMT0C53/X7e+SBDoUWS36AdN9iOt0eMOgROr8CAwEAAaOC -AzEwggMtMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB -BQUHAwIwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5lbnRydXN0Lm5ldC9s -ZXZlbDFrLmNybDBLBgNVHSAERDBCMDYGCmCGSAGG+mwKAQUwKDAmBggrBgEFBQcC -ARYaaHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwCAYGZ4EMAQICMGgGCCsGAQUF -BwEBBFwwWjAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZW50cnVzdC5uZXQwMwYI -KwYBBQUHMAKGJ2h0dHA6Ly9haWEuZW50cnVzdC5uZXQvbDFrLWNoYWluMjU2LmNl -cjCCAcMGA1UdEQSCAbowggG2ghBUcmVhZGNsaW1iZXIuY29tghR3d3cuVHJlYWRj -bGltYmVyLmNvbYISYm93ZmxleGNhdGFsb2cuY29tghZ3d3cuYm93ZmxleGNhdGFs -b2cuY29tghNib3dmbGV4aG9tZWd5bXMuY29tghd3d3cuYm93ZmxleGhvbWVneW1z -LmNvbYIVYm93ZmxleG1heHRyYWluZXIuY29tghl3d3cuYm93ZmxleG1heHRyYWlu -ZXIuY29tghVib3dmbGV4c2VsZWN0dGVjaC5jb22CGXd3dy5ib3dmbGV4c2VsZWN0 -dGVjaC5jb22CDmJvd2ZsZXhodnQuY29tghJ3d3cuYm93ZmxleGh2dC5jb22CC21l -ZXRodnQuY29tgg93d3cubWVldGh2dC5jb22CGHVuaXZlcnNhbGhvbWVmaXRuZXNz -LmNvbYIcd3d3LnVuaXZlcnNhbGhvbWVmaXRuZXNzLmNvbYIUYm93ZmxleG1heHRy -YWluZXIuY2GCGHd3dy5ib3dmbGV4bWF4dHJhaW5lci5jYYIPdHJlYWRjbGltYmVy -LmNhghN3d3cudHJlYWRjbGltYmVyLmNhMB8GA1UdIwQYMBaAFIKicHTdvFM/z3vU -981/p2DGCky/MB0GA1UdDgQWBBTb+AR5cXNMnUfgUsKKJH7EphTSkDAJBgNVHRME -AjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAphiqgb7+3O36ew+G7KJ9Fnw2X/CSgnChu -fFA9wu4kUNHDVXl7EJRQTEeR9fez2QVicyZvjY4YtUSuVTINnRI2pTvf0MEHe/Sl -i3pktovR3k/7bmSh6JX0adfT81x1/yTaTuWUTeIG3IfeL0j+aY53rH88a8xXCKea -x52zN5sKplQMpAjolWNzlcXVWn5BV9KnykW6LE1GAC09lQLiNAiRQ3vFquGvzfH0 -9LbiQ/aN/y16JhP4mb53kpC5hl+TLMZhN1YPKhvtrWj8Fqrvtj4+PJe2juJy78xH -mkzmVeq3gWC/18QjqAZuAg+FK3CMCj38XL4hRugzD90Y062L0LZq ------END CERTIFICATE----- - -=========================================== -Certificate1: d6c3fc493bacd1df8a1ba30f4ae26254b2a4528e4876081eacc6a16a090aa36a -=========================================== -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1372455166 (0x51ce00fe) - Signature Algorithm: sha256WithRSAEncryption - Issuer: O = Entrust.net, OU = www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU = (c) 1999 Entrust.net Limited, CN = Entrust.net Certification Authority (2048) - Validity - Not Before: Oct 10 15:23:17 2014 GMT - Not After : Oct 11 06:22:47 2024 GMT - Subject: C = US, O = "Entrust, Inc.", OU = See www.entrust.net/legal-terms, OU = "(c) 2012 Entrust, Inc. - for authorized use only", CN = Entrust Certification Authority - L1K - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50: - ee:5c:a5:61:da:41:67:53:09:aa:00:9a:8e:57:7f: - 29:6b:db:c7:e1:21:24:aa:3a:d0:8d:47:23:d2:ed: - 72:16:f0:91:21:d2:5d:b7:b8:4b:a8:83:8f:b7:91: - 32:68:cf:ce:25:93:2c:b2:7d:97:c8:fe:c1:b4:17: - ba:09:9e:03:90:93:7b:7c:49:83:22:68:8a:9b:de: - 47:c3:31:98:7a:2e:7d:40:0b:d2:ef:3e:d3:b2:8c: - aa:8f:48:a9:ff:00:e8:29:58:06:f7:b6:93:5a:94: - 73:26:26:ad:58:0e:e5:42:b8:d5:ea:73:79:64:68: - 53:25:b8:84:cf:94:7a:ae:06:45:0c:a3:6b:4d:d0: - c6:be:ea:18:a4:36:f0:92:b2:ba:1c:88:8f:3a:52: - 7f:f7:5e:6d:83:1c:9d:f0:1f:e5:c3:d6:dd:a5:78: - 92:3d:b0:6d:2c:ea:c9:cf:94:41:19:71:44:68:ba: - 47:3c:04:e9:5d:ba:3e:f0:35:f7:15:b6:9e:f2:2e: - 15:1e:3f:47:c8:c8:38:a7:73:45:5d:4d:b0:3b:b1: - 8e:17:29:37:ea:dd:05:01:22:bb:94:36:2a:8d:5b: - 35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b: - d9:1b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Basic Constraints: critical - CA:TRUE, pathlen:0 - Authority Information Access: - OCSP - URI:http://ocsp.entrust.net - - X509v3 CRL Distribution Points: - - Full Name: - URI:http://crl.entrust.net/2048ca.crl - - X509v3 Certificate Policies: - Policy: X509v3 Any Policy - CPS: http://www.entrust.net/rpa - - X509v3 Subject Key Identifier: - 82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF - X509v3 Authority Key Identifier: - keyid:55:E4:81:D1:11:80:BE:D8:89:B9:08:A3:31:F9:A1:24:09:16:B9:70 - - Signature Algorithm: sha256WithRSAEncryption - 58:42:71:c1:3e:29:16:6e:75:58:77:b5:65:4d:9e:29:f5:ae: - 0b:1c:18:f9:a3:08:43:75:ef:7d:6d:f1:92:ea:fe:ce:68:5c: - e2:1f:be:a5:af:1a:4c:aa:83:3b:5f:a2:47:46:f7:7c:9e:c1: - 83:c4:7a:24:b0:e9:cc:e9:a2:9a:07:09:e8:1e:1d:77:56:49: - fc:53:73:a8:47:cc:c9:2d:5a:60:34:a7:1a:0b:e5:2b:b8:df: - ef:82:4a:dd:70:5e:10:18:08:3b:5d:dc:8a:84:3d:68:d8:00: - b4:c4:9e:43:78:4b:5e:f0:62:6a:8c:90:66:53:8a:ac:c5:7d: - 58:ff:4e:a9:ad:d7:a4:ca:12:47:29:e5:f3:22:21:40:32:60: - da:3a:fe:92:54:1e:43:a1:0d:a9:52:37:60:bf:87:c4:a1:c7: - 78:d5:87:1e:e5:77:e3:5f:5b:dc:71:6d:ba:44:87:31:05:80: - 58:0b:c5:de:74:28:81:83:08:84:d0:c8:46:5a:fe:8a:c6:bd: - a9:0e:3b:64:78:6d:26:dc:3c:4c:f7:81:5c:3c:11:7f:25:3a: - 93:62:a5:a3:91:05:25:23:73:b4:cd:ce:cc:39:a4:03:78:30: - 66:46:5e:a9:75:b0:b4:67:03:a9:b1:9f:57:f0:d3:76:cf:e1: - 93:e8:80:a2 - ------BEGIN CERTIFICATE----- -MIIE/jCCA+agAwIBAgIEUc4A/jANBgkqhkiG9w0BAQsFADCBtDEUMBIGA1UEChML -RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp -bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 -IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw0xNDEwMTAxNTIzMTdaFw0yNDEw -MTEwNjIyNDdaMIG6MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5j -LjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcG -A1UECxMwKGMpIDIwMTIgRW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVz -ZSBvbmx5MS4wLAYDVQQDEyVFbnRydXN0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -IC0gTDFLMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2j+W0E25L0Tn -2zlem1DuXKVh2kFnUwmqAJqOV38pa9vH4SEkqjrQjUcj0u1yFvCRIdJdt7hLqIOP -t5EyaM/OJZMssn2XyP7BtBe6CZ4DkJN7fEmDImiKm95HwzGYei59QAvS7z7Tsoyq -j0ip/wDoKVgG97aTWpRzJiatWA7lQrjV6nN5ZGhTJbiEz5R6rgZFDKNrTdDGvuoY -pDbwkrK6HIiPOlJ/915tgxyd8B/lw9bdpXiSPbBtLOrJz5RBGXFEaLpHPATpXbo+ -8DX3Fbae8i4VHj9HyMg4p3NFXU2wO7GOFyk36t0FASK7lDYqjVs1/lMZLwhGwSqz -GmIdTivZGwIDAQABo4IBDjCCAQowDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI -MAYBAf8CAQAwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz -cC5lbnRydXN0Lm5ldDAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vY3JsLmVudHJ1 -c3QubmV0LzIwNDhjYS5jcmwwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUH -AgEWGmh0dHA6Ly93d3cuZW50cnVzdC5uZXQvcnBhMB0GA1UdDgQWBBSConB03bxT -P8971PfNf6dgxgpMvzAfBgNVHSMEGDAWgBRV5IHREYC+2Im5CKMx+aEkCRa5cDAN -BgkqhkiG9w0BAQsFAAOCAQEAWEJxwT4pFm51WHe1ZU2eKfWuCxwY+aMIQ3XvfW3x -kur+zmhc4h++pa8aTKqDO1+iR0b3fJ7Bg8R6JLDpzOmimgcJ6B4dd1ZJ/FNzqEfM -yS1aYDSnGgvlK7jf74JK3XBeEBgIO13cioQ9aNgAtMSeQ3hLXvBiaoyQZlOKrMV9 -WP9Oqa3XpMoSRynl8yIhQDJg2jr+klQeQ6ENqVI3YL+HxKHHeNWHHuV3419b3HFt -ukSHMQWAWAvF3nQogYMIhNDIRlr+isa9qQ47ZHhtJtw8TPeBXDwRfyU6k2Klo5EF -JSNztM3OzDmkA3gwZkZeqXWwtGcDqbGfV/DTds/hk+iAog== ------END CERTIFICATE----- - diff --git a/src/pki/testdata/ssl/certificates/treadclimber.sctlist b/src/pki/testdata/ssl/certificates/treadclimber.sctlist Binary files differdeleted file mode 100644 index 268a0ac..0000000 --- a/src/pki/testdata/ssl/certificates/treadclimber.sctlist +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/unescaped.pem b/src/pki/testdata/ssl/certificates/unescaped.pem deleted file mode 100644 index 33dbb40..0000000 --- a/src/pki/testdata/ssl/certificates/unescaped.pem +++ /dev/null @@ -1,62 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - ed:cd:27:0f:4c:ca:cc:fc - Signature Algorithm: sha1WithRSAEncryption - Issuer: CN=127.0.0.1, L=Mountain View, ST=California/streetAddress=1600 Amphitheatre Parkway, C=US, O=Chromium = "net_unittests", OU=net_unittests, OU=Chromium - Validity - Not Before: Dec 2 03:56:43 2011 GMT - Not After : Jan 1 03:56:43 2012 GMT - Subject: CN=127.0.0.1, L=Mountain View, ST=California/streetAddress=1600 Amphitheatre Parkway, C=US, O=Chromium = "net_unittests", OU=net_unittests, OU=Chromium - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:ac:25:6c:de:22:4f:be:77:07:3a:6c:f9:5f:e6: - 0a:ce:69:f7:ca:c5:b8:08:2b:b8:b0:04:12:55:fe: - 65:4c:c2:aa:b9:3d:b2:87:f5:59:c3:72:ac:a9:d4: - 1e:0b:ec:7f:2e:df:4c:ad:e7:cc:52:93:b4:ed:0a: - 99:40:7e:6a:35:c3:b0:8b:93:c7:e5:97:54:b9:7f: - 68:26:04:17:a6:b4:50:9e:d6:d7:6b:19:a1:ce:0b: - 5e:73:80:a6:b9:ef:5d:34:8e:6f:f7:8c:de:cf:78: - cd:16:93:30:23:c3:5c:8c:9f:78:ce:18:c6:0f:e1: - 32:76:8a:c4:c4:54:30:56:39 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 38:85:CF:3E:10:D5:47:FC:08:81:FA:85:7F:84:7A:2F:3D:69:2B:A6 - X509v3 Authority Key Identifier: - keyid:38:85:CF:3E:10:D5:47:FC:08:81:FA:85:7F:84:7A:2F:3D:69:2B:A6 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 32:0a:90:29:b1:9f:c0:c7:55:da:37:8f:5b:b8:09:a0:97:65: - 15:3a:79:d1:3e:24:f4:44:ad:3f:eb:84:b4:ae:e3:7a:ba:43: - 8c:d4:df:ef:ca:46:c5:99:c4:99:b5:ae:7e:2c:a9:85:05:d0: - 8f:07:d2:ee:9e:72:b0:e0:87:51:5c:e8:f4:5a:a1:44:25:a5: - 47:6a:67:b3:79:2e:66:7d:93:7d:f7:cf:31:13:c1:fc:af:62: - c6:ec:22:14:50:7f:d2:38:ff:5d:11:d5:58:c8:5e:43:08:bb: - ca:9c:45:78:f4:28:08:cc:98:75:1d:4c:d2:43:a5:34:f0:86: - 56:37 ------BEGIN CERTIFICATE----- -MIIDVDCCAr2gAwIBAgIJAO3NJw9Mysz8MA0GCSqGSIb3DQEBBQUAMIHCMRIwEAYD -VQQDDAkxMjcuMC4wLjExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEzARBgNVBAgM -CkNhbGlmb3JuaWExIjAgBgNVBAkMGTE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXkx -CzAJBgNVBAYTAlVTMSMwIQYDVQQKDBpDaHJvbWl1bSA9ICJuZXRfdW5pdHRlc3Rz -IjEWMBQGA1UECwwNbmV0X3VuaXR0ZXN0czERMA8GA1UECwwIQ2hyb21pdW0wHhcN -MTExMjAyMDM1NjQzWhcNMTIwMTAxMDM1NjQzWjCBwjESMBAGA1UEAwwJMTI3LjAu -MC4xMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQIDApDYWxpZm9ybmlh -MSIwIAYDVQQJDBkxNjAwIEFtcGhpdGhlYXRyZSBQYXJrd2F5MQswCQYDVQQGEwJV -UzEjMCEGA1UECgwaQ2hyb21pdW0gPSAibmV0X3VuaXR0ZXN0cyIxFjAUBgNVBAsM -DW5ldF91bml0dGVzdHMxETAPBgNVBAsMCENocm9taXVtMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQCsJWzeIk++dwc6bPlf5grOaffKxbgIK7iwBBJV/mVMwqq5 -PbKH9VnDcqyp1B4L7H8u30yt58xSk7TtCplAfmo1w7CLk8fll1S5f2gmBBemtFCe -1tdrGaHOC15zgKa57100jm/3jN7PeM0WkzAjw1yMn3jOGMYP4TJ2isTEVDBWOQID -AQABo1AwTjAdBgNVHQ4EFgQUOIXPPhDVR/wIgfqFf4R6Lz1pK6YwHwYDVR0jBBgw -FoAUOIXPPhDVR/wIgfqFf4R6Lz1pK6YwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B -AQUFAAOBgQAyCpApsZ/Ax1XaN49buAmgl2UVOnnRPiT0RK0/64S0ruN6ukOM1N/v -ykbFmcSZta5+LKmFBdCPB9LunnKw4IdRXOj0WqFEJaVHamezeS5mfZN9988xE8H8 -r2LG7CIUUH/SOP9dEdVYyF5DCLvKnEV49CgIzJh1HUzSQ6U08IZWNw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/unittest.key.bin b/src/pki/testdata/ssl/certificates/unittest.key.bin Binary files differdeleted file mode 100644 index 2ec712b..0000000 --- a/src/pki/testdata/ssl/certificates/unittest.key.bin +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/unittest.selfsigned.der b/src/pki/testdata/ssl/certificates/unittest.selfsigned.der Binary files differdeleted file mode 100644 index 48c8d74..0000000 --- a/src/pki/testdata/ssl/certificates/unittest.selfsigned.der +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/verisign_intermediate_ca_2011.pem b/src/pki/testdata/ssl/certificates/verisign_intermediate_ca_2011.pem deleted file mode 100644 index 27dc85b..0000000 --- a/src/pki/testdata/ssl/certificates/verisign_intermediate_ca_2011.pem +++ /dev/null @@ -1,71 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 25:4b:8a:85:38:42:cc:e3:58:f8:c5:dd:ae:22:6e:a4 - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority - Validity - Not Before: Apr 17 00:00:00 1997 GMT - Not After : Oct 24 23:59:59 2011 GMT - Subject: O=VeriSign Trust Network, OU=VeriSign, Inc., OU=VeriSign International Server CA - Class 3, OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:d8:82:80:e8:d6:19:02:7d:1f:85:18:39:25:a2: - 65:2b:e1:bf:d4:05:d3:bc:e6:36:3b:aa:f0:4c:6c: - 5b:b6:e7:aa:3c:73:45:55:b2:f1:bd:ea:97:42:ed: - 9a:34:0a:15:d4:a9:5c:f5:40:25:dd:d9:07:c1:32: - b2:75:6c:c4:ca:bb:a3:fe:56:27:71:43:aa:63:f5: - 30:3e:93:28:e5:fa:f1:09:3b:f3:b7:4d:4e:39:f7: - 5c:49:5a:b8:c1:1d:d3:b2:8a:fe:70:30:95:42:cb: - fe:2b:51:8b:5a:3c:3a:f9:22:4f:90:b2:02:a7:53: - 9c:4f:34:e7:ab:04:b2:7b:6f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:TRUE, pathlen:0 - X509v3 Certificate Policies: - Policy: 2.16.840.1.113733.1.7.1.1 - CPS: https://www.verisign.com/CPS - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication, Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1 - X509v3 Key Usage: - Certificate Sign, CRL Sign - Netscape Cert Type: - SSL CA, S/MIME CA - X509v3 CRL Distribution Points: - URI:http://crl.verisign.com/pca3.crl - - Signature Algorithm: sha1WithRSAEncryption - 08:01:ec:e4:68:94:03:42:f1:73:f1:23:a2:3a:de:e9:f1:da: - c6:54:c4:23:3e:86:ea:cf:6a:3a:33:ab:ea:9c:04:14:07:36: - 06:0b:f9:88:6f:d5:13:ee:29:2b:c3:e4:72:8d:44:ed:d1:ac: - 20:09:2d:e1:f6:e1:19:05:38:b0:3d:0f:9f:7f:f8:9e:02:dc: - 86:02:86:61:4e:26:5f:5e:9f:92:1e:0c:24:a4:f5:d0:70:13: - cf:26:c3:43:3d:49:1d:9e:82:2e:52:5f:bc:3e:c6:66:29:01: - 8e:4e:92:2c:bc:46:75:03:82:ac:73:e9:d9:7e:0b:67:ef:54: - 52:1a ------BEGIN CERTIFICATE----- -MIIDgzCCAuygAwIBAgIQJUuKhThCzONY+MXdriJupDANBgkqhkiG9w0BAQUFADBf -MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT -LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw -HhcNOTcwNDE3MDAwMDAwWhcNMTExMDI0MjM1OTU5WjCBujEfMB0GA1UEChMWVmVy -aVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVyaVNpZ24sIEluYy4xMzAx -BgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gQ2xhc3Mg -MzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMgSW5jb3JwLmJ5IFJlZi4g -TElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjCBnzANBgkqhkiG9w0BAQEFAAOB -jQAwgYkCgYEA2IKA6NYZAn0fhRg5JaJlK+G/1AXTvOY2O6rwTGxbtueqPHNFVbLx -veqXQu2aNAoV1Klc9UAl3dkHwTKydWzEyruj/lYncUOqY/UwPpMo5frxCTvzt01O -OfdcSVq4wR3Tsor+cDCVQsv+K1GLWjw6+SJPkLICp1OcTzTnqwSye28CAwEAAaOB -4zCB4DAPBgNVHRMECDAGAQH/AgEAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHAQEw -KjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQUzA0BgNV -HSUELTArBggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEAQYKYIZIAYb4RQEI -ATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMDEGA1UdHwQqMCgwJqAk -oCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA0GCSqGSIb3DQEB -BQUAA4GBAAgB7ORolANC8XPxI6I63unx2sZUxCM+hurPajozq+qcBBQHNgYL+Yhv -1RPuKSvD5HKNRO3RrCAJLeH24RkFOLA9D59/+J4C3IYChmFOJl9en5IeDCSk9dBw -E88mw0M9SR2egi5SX7w+xmYpAY5Okiy8RnUDgqxz6dl+C2fvVFIa ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/verisign_intermediate_ca_2016.pem b/src/pki/testdata/ssl/certificates/verisign_intermediate_ca_2016.pem deleted file mode 100644 index 195133e..0000000 --- a/src/pki/testdata/ssl/certificates/verisign_intermediate_ca_2016.pem +++ /dev/null @@ -1,71 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 46:fc:eb:ba:b4:d0:2f:0f:92:60:98:23:3f:93:07:8f - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority - Validity - Not Before: Apr 17 00:00:00 1997 GMT - Not After : Oct 24 23:59:59 2016 GMT - Subject: O=VeriSign Trust Network, OU=VeriSign, Inc., OU=VeriSign International Server CA - Class 3, OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:d8:82:80:e8:d6:19:02:7d:1f:85:18:39:25:a2: - 65:2b:e1:bf:d4:05:d3:bc:e6:36:3b:aa:f0:4c:6c: - 5b:b6:e7:aa:3c:73:45:55:b2:f1:bd:ea:97:42:ed: - 9a:34:0a:15:d4:a9:5c:f5:40:25:dd:d9:07:c1:32: - b2:75:6c:c4:ca:bb:a3:fe:56:27:71:43:aa:63:f5: - 30:3e:93:28:e5:fa:f1:09:3b:f3:b7:4d:4e:39:f7: - 5c:49:5a:b8:c1:1d:d3:b2:8a:fe:70:30:95:42:cb: - fe:2b:51:8b:5a:3c:3a:f9:22:4f:90:b2:02:a7:53: - 9c:4f:34:e7:ab:04:b2:7b:6f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:TRUE, pathlen:0 - X509v3 Certificate Policies: - Policy: 2.16.840.1.113733.1.7.1.1 - CPS: https://www.verisign.com/CPS - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication, Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1 - X509v3 Key Usage: - Certificate Sign, CRL Sign - Netscape Cert Type: - SSL CA, S/MIME CA - X509v3 CRL Distribution Points: - URI:http://crl.verisign.com/pca3.crl - - Signature Algorithm: sha1WithRSAEncryption - 40:8e:49:97:96:8a:73:dd:8e:4d:ef:3e:61:b7:ca:a0:62:ad: - f4:0e:0a:bb:75:3d:e2:6e:d8:2c:c7:bf:f4:b9:8c:36:9b:ca: - a2:d0:9c:72:46:39:f6:a6:82:03:65:11:c4:bc:bf:2d:a6:f5: - d9:3b:0a:b5:98:fa:b3:78:b9:1e:f2:2b:4c:62:d5:fd:b2:7a: - 1d:df:33:fd:73:f9:a5:d8:2d:8c:2a:ea:d1:fc:b0:28:b6:e9: - 49:48:13:4b:83:8a:1b:48:7b:24:f7:38:de:6f:41:54:b8:ab: - 57:6b:06:df:c7:a2:d4:a9:f6:f1:36:62:80:88:f2:8b:75:d6: - 80:71 ------BEGIN CERTIFICATE----- -MIIDgzCCAuygAwIBAgIQRvzrurTQLw+SYJgjP5MHjzANBgkqhkiG9w0BAQUFADBf -MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT -LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw -HhcNOTcwNDE3MDAwMDAwWhcNMTYxMDI0MjM1OTU5WjCBujEfMB0GA1UEChMWVmVy -aVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVyaVNpZ24sIEluYy4xMzAx -BgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gQ2xhc3Mg -MzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMgSW5jb3JwLmJ5IFJlZi4g -TElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjCBnzANBgkqhkiG9w0BAQEFAAOB -jQAwgYkCgYEA2IKA6NYZAn0fhRg5JaJlK+G/1AXTvOY2O6rwTGxbtueqPHNFVbLx -veqXQu2aNAoV1Klc9UAl3dkHwTKydWzEyruj/lYncUOqY/UwPpMo5frxCTvzt01O -OfdcSVq4wR3Tsor+cDCVQsv+K1GLWjw6+SJPkLICp1OcTzTnqwSye28CAwEAAaOB -4zCB4DAPBgNVHRMECDAGAQH/AgEAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHAQEw -KjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQUzA0BgNV -HSUELTArBggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEAQYKYIZIAYb4RQEI -ATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMDEGA1UdHwQqMCgwJqAk -oCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA0GCSqGSIb3DQEB -BQUAA4GBAECOSZeWinPdjk3vPmG3yqBirfQOCrt1PeJu2CzHv/S5jDabyqLQnHJG -OfamggNlEcS8vy2m9dk7CrWY+rN4uR7yK0xi1f2yeh3fM/1z+aXYLYwq6tH8sCi2 -6UlIE0uDihtIeyT3ON5vQVS4q1drBt/HotSp9vE2YoCI8ot11oBx ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md2_ee.pem b/src/pki/testdata/ssl/certificates/weak_digest_md2_ee.pem deleted file mode 100644 index 6475ccc..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md2_ee.pem +++ /dev/null @@ -1,61 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4 (0x4) - Signature Algorithm: md2WithRSAEncryption - Issuer: CN=Test Deprecated Digest Intermediate CA - Validity - Not Before: Oct 26 03:46:49 2011 GMT - Not After : Oct 23 03:46:49 2021 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:c7:48:eb:5c:00:17:94:01:09:d3:bd:47:41:38: - 74:b8:4f:cb:ea:f1:15:eb:cb:e7:b5:6c:bd:fe:d9: - 97:6d:1e:1b:ee:75:9e:c1:6f:4a:5c:8c:d7:19:cf: - 51:89:48:e8:7d:79:41:ab:e3:a7:77:d1:de:f2:13: - be:36:e7:44:c2:10:dd:56:83:03:f1:cd:e1:13:8d: - fe:45:d6:1a:98:d8:8d:08:b9:32:10:36:0d:ec:ee: - 2d:66:22:eb:6a:0d:0e:f4:15:91:dd:9d:3e:92:db: - 9e:26:c8:af:4b:b7:fb:93:f8:68:07:c3:53:02:57: - dc:d0:de:df:29:72:45:6f:e3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 35:5C:C8:0F:21:D0:A2:F5:69:44:5C:9E:B0:DC:0F:75:74:24:7A:FD - X509v3 Authority Key Identifier: - keyid:A8:1D:06:8D:AD:3F:25:51:00:F0:3B:E9:35:C6:65:74:12:51:20:19 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: md2WithRSAEncryption - 87:d2:29:b3:6b:ba:36:99:ac:56:47:d8:7d:63:9e:74:a2:b5: - 42:5e:2b:96:08:f8:ab:e2:ce:ea:99:21:47:25:2c:55:f2:db: - 9d:d7:ed:d9:68:ba:09:90:b1:43:64:be:af:ef:9a:b4:10:86: - 99:85:7f:68:fe:aa:fd:d4:6a:f1:68:e9:8f:61:d8:46:21:e4: - 17:4c:89:db:82:37:36:8d:7f:93:4a:63:b1:da:ba:6b:19:ad: - 34:8b:f8:11:c3:25:14:2a:4e:7b:75:6b:03:79:c1:e5:1a:5b: - ff:b4:91:47:4f:48:91:68:33:c7:3e:a5:95:45:81:2b:0d:35: - 42:c4 ------BEGIN CERTIFICATE----- -MIICiDCCAfGgAwIBAgIBBDANBgkqhkiG9w0BAQIFADAxMS8wLQYDVQQDDCZUZXN0 -IERlcHJlY2F0ZWQgRGlnZXN0IEludGVybWVkaWF0ZSBDQTAeFw0xMTEwMjYwMzQ2 -NDlaFw0yMTEwMjMwMzQ2NDlaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxp -Zm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENB -MRIwEAYDVQQDDAkxMjcuMC4wLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB -AMdI61wAF5QBCdO9R0E4dLhPy+rxFevL57Vsvf7Zl20eG+51nsFvSlyM1xnPUYlI -6H15Qavjp3fR3vITvjbnRMIQ3VaDA/HN4RON/kXWGpjYjQi5MhA2DezuLWYi62oN -DvQVkd2dPpLbnibIr0u3+5P4aAfDUwJX3NDe3ylyRW/jAgMBAAGjgYAwfjAMBgNV -HRMBAf8EAjAAMB0GA1UdDgQWBBQ1XMgPIdCi9WlEXJ6w3A91dCR6/TAfBgNVHSME -GDAWgBSoHQaNrT8lUQDwO+k1xmV0ElEgGTAdBgNVHSUEFjAUBggrBgEFBQcDAQYI -KwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQIFAAOBgQCH0imz -a7o2maxWR9h9Y550orVCXiuWCPir4s7qmSFHJSxV8tud1+3ZaLoJkLFDZL6v75q0 -EIaZhX9o/qr91GrxaOmPYdhGIeQXTInbgjc2jX+TSmOx2rprGa00i/gRwyUUKk57 -dWsDecHlGlv/tJFHT0iRaDPHPqWVRYErDTVCxA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md2_intermediate.pem b/src/pki/testdata/ssl/certificates/weak_digest_md2_intermediate.pem deleted file mode 100644 index 2f2765d..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md2_intermediate.pem +++ /dev/null @@ -1,57 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 4 (0x4) - Signature Algorithm: md2WithRSAEncryption - Issuer: CN=Test Deprecated Digest Root CA - Validity - Not Before: Oct 26 03:46:49 2011 GMT - Not After : Oct 23 03:46:49 2021 GMT - Subject: CN=Test Deprecated Digest Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:ac:9b:c0:4b:fc:59:45:7a:d6:3f:a3:89:23:30: - 5b:70:ad:ab:78:62:4b:53:85:9f:f9:7d:7f:c1:26: - 08:23:80:61:0c:ba:6d:36:06:14:df:29:d4:9c:63: - 94:04:ee:14:b6:b9:81:06:2f:33:d8:35:9a:1a:89: - 17:ad:21:61:fa:24:75:b9:0c:ef:c1:15:6a:02:bd: - b2:a5:29:df:d8:5f:80:7c:4e:c9:c1:b4:bb:fd:78: - 44:63:34:b5:a5:51:aa:e9:23:77:44:53:f9:fa:58: - f6:46:6e:9d:d2:cd:00:a3:28:fe:51:e4:30:7e:49: - 62:d4:53:b0:d8:9c:34:47:07 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - A8:1D:06:8D:AD:3F:25:51:00:F0:3B:E9:35:C6:65:74:12:51:20:19 - X509v3 Authority Key Identifier: - keyid:79:82:C5:B4:EB:60:12:4B:B5:87:79:1B:E2:3A:9C:17:76:81:CB:43 - - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: md2WithRSAEncryption - 95:17:b3:5f:81:5b:9e:d6:e9:de:67:0e:a7:01:2f:b7:f8:db: - 13:25:6b:a3:15:2d:53:08:c6:20:65:9d:8f:e9:9e:e4:bc:87: - 78:59:f6:1f:f4:0e:85:c7:a8:c6:c8:6d:65:7e:b9:f4:73:9b: - 9f:70:2b:b2:0d:03:06:c5:52:5f:59:87:b5:2b:d0:5c:0d:ee: - 8f:40:cd:eb:95:f2:0e:f4:51:a8:e8:76:17:82:71:1a:d1:ea: - 99:54:e4:b7:75:27:54:76:36:6f:c0:4d:5d:fa:bb:98:08:1e: - d4:95:d1:9a:c7:35:83:d5:a1:79:2a:1f:78:b4:2b:de:17:93: - 0c:1b ------BEGIN CERTIFICATE----- -MIICMzCCAZygAwIBAgIBBDANBgkqhkiG9w0BAQIFADApMScwJQYDVQQDDB5UZXN0 -IERlcHJlY2F0ZWQgRGlnZXN0IFJvb3QgQ0EwHhcNMTExMDI2MDM0NjQ5WhcNMjEx -MDIzMDM0NjQ5WjAxMS8wLQYDVQQDDCZUZXN0IERlcHJlY2F0ZWQgRGlnZXN0IElu -dGVybWVkaWF0ZSBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArJvAS/xZ -RXrWP6OJIzBbcK2reGJLU4Wf+X1/wSYII4BhDLptNgYU3ynUnGOUBO4UtrmBBi8z -2DWaGokXrSFh+iR1uQzvwRVqAr2ypSnf2F+AfE7JwbS7/XhEYzS1pVGq6SN3RFP5 -+lj2Rm6d0s0Aoyj+UeQwfkli1FOw2Jw0RwcCAwEAAaNjMGEwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUqB0Gja0/JVEA8DvpNcZldBJRIBkwHwYDVR0jBBgwFoAU -eYLFtOtgEku1h3kb4jqcF3aBy0MwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -AgUAA4GBAJUXs1+BW57W6d5nDqcBL7f42xMla6MVLVMIxiBlnY/pnuS8h3hZ9h/0 -DoXHqMbIbWV+ufRzm59wK7INAwbFUl9Zh7Ur0FwN7o9AzeuV8g70UajodheCcRrR -6plU5Ld1J1R2Nm/ATV36u5gIHtSV0ZrHNYPVoXkqH3i0K94Xkwwb ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md2_root.pem b/src/pki/testdata/ssl/certificates/weak_digest_md2_root.pem deleted file mode 100644 index 140174d..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md2_root.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICEjCCAXugAwIBAgIJAMq0TW/f2gFbMA0GCSqGSIb3DQEBAgUAMCkxJzAlBgNV -BAMMHlRlc3QgRGVwcmVjYXRlZCBEaWdlc3QgUm9vdCBDQTAeFw0xMTEwMjYwMzQ2 -NDlaFw0yMTEwMjMwMzQ2NDlaMCkxJzAlBgNVBAMMHlRlc3QgRGVwcmVjYXRlZCBE -aWdlc3QgUm9vdCBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwFtzW+hj -BwMylx+rrgeKjltrzYabuJDdTDTYr1lViwO39m6CtHYdcFvZ1nU9oDjW4Lb1NQYv -HoR8+SD0X1R2Y0yF6AyS9NX5E9TQ8TJUSQEehfznbBovMkRaQQMRD6ksRIQr+s00 -P6n0lAYJyN32lmTCbJ+k1aGHPFtKhTNQF/cCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHmCxbTrYBJLtYd5G+I6nBd2 -gctDMA0GCSqGSIb3DQEBAgUAA4GBABnPJVnXJXtImcjcBj31JelbPkLgt8HHjxa+ -LOMNZKIc9d6KWdjMoTNz7Y9dAKiLAJmPp9QAKU4cu0voWRK27O8CjR9Ng7SpfuZ7 -bQ4P22TlcVViAq56+bz/DFRabwBAZtndoawyn04r4Lo/3n/nEONeVTIqsixjN5Au -0snKiMJj ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md4_ee.pem b/src/pki/testdata/ssl/certificates/weak_digest_md4_ee.pem deleted file mode 100644 index 6ea4b25..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md4_ee.pem +++ /dev/null @@ -1,61 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 3 (0x3) - Signature Algorithm: md4WithRSAEncryption - Issuer: CN=Test Deprecated Digest Intermediate CA - Validity - Not Before: Oct 26 03:46:49 2011 GMT - Not After : Oct 23 03:46:49 2021 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:c7:48:eb:5c:00:17:94:01:09:d3:bd:47:41:38: - 74:b8:4f:cb:ea:f1:15:eb:cb:e7:b5:6c:bd:fe:d9: - 97:6d:1e:1b:ee:75:9e:c1:6f:4a:5c:8c:d7:19:cf: - 51:89:48:e8:7d:79:41:ab:e3:a7:77:d1:de:f2:13: - be:36:e7:44:c2:10:dd:56:83:03:f1:cd:e1:13:8d: - fe:45:d6:1a:98:d8:8d:08:b9:32:10:36:0d:ec:ee: - 2d:66:22:eb:6a:0d:0e:f4:15:91:dd:9d:3e:92:db: - 9e:26:c8:af:4b:b7:fb:93:f8:68:07:c3:53:02:57: - dc:d0:de:df:29:72:45:6f:e3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 35:5C:C8:0F:21:D0:A2:F5:69:44:5C:9E:B0:DC:0F:75:74:24:7A:FD - X509v3 Authority Key Identifier: - keyid:A8:1D:06:8D:AD:3F:25:51:00:F0:3B:E9:35:C6:65:74:12:51:20:19 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: md4WithRSAEncryption - a5:f6:ae:83:a1:44:5a:dd:c4:91:a2:d6:88:d8:c6:d1:e5:6d: - c8:71:7a:43:3e:e2:ce:42:a4:7d:94:16:5d:0a:df:33:e3:ea: - c9:22:e3:52:9d:f7:72:3e:24:d5:78:38:67:9f:2d:46:cb:73: - c5:1f:eb:4b:02:5c:25:41:e0:c5:07:03:4c:4c:55:87:db:32: - d0:2e:3e:aa:d4:a6:69:75:12:75:2e:b6:98:24:0e:18:c4:1c: - 60:aa:c5:19:c1:1c:ad:ba:f4:c8:c0:55:2b:61:7d:a4:f4:c6: - 73:0d:61:7e:04:42:e2:69:8d:9c:9d:83:22:e4:cc:cc:3f:b5: - 2a:6d ------BEGIN CERTIFICATE----- -MIICiDCCAfGgAwIBAgIBAzANBgkqhkiG9w0BAQMFADAxMS8wLQYDVQQDDCZUZXN0 -IERlcHJlY2F0ZWQgRGlnZXN0IEludGVybWVkaWF0ZSBDQTAeFw0xMTEwMjYwMzQ2 -NDlaFw0yMTEwMjMwMzQ2NDlaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxp -Zm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENB -MRIwEAYDVQQDDAkxMjcuMC4wLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB -AMdI61wAF5QBCdO9R0E4dLhPy+rxFevL57Vsvf7Zl20eG+51nsFvSlyM1xnPUYlI -6H15Qavjp3fR3vITvjbnRMIQ3VaDA/HN4RON/kXWGpjYjQi5MhA2DezuLWYi62oN -DvQVkd2dPpLbnibIr0u3+5P4aAfDUwJX3NDe3ylyRW/jAgMBAAGjgYAwfjAMBgNV -HRMBAf8EAjAAMB0GA1UdDgQWBBQ1XMgPIdCi9WlEXJ6w3A91dCR6/TAfBgNVHSME -GDAWgBSoHQaNrT8lUQDwO+k1xmV0ElEgGTAdBgNVHSUEFjAUBggrBgEFBQcDAQYI -KwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQMFAAOBgQCl9q6D -oURa3cSRotaI2MbR5W3IcXpDPuLOQqR9lBZdCt8z4+rJIuNSnfdyPiTVeDhnny1G -y3PFH+tLAlwlQeDFBwNMTFWH2zLQLj6q1KZpdRJ1LraYJA4YxBxgqsUZwRytuvTI -wFUrYX2k9MZzDWF+BELiaY2cnYMi5MzMP7UqbQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md4_intermediate.pem b/src/pki/testdata/ssl/certificates/weak_digest_md4_intermediate.pem deleted file mode 100644 index 2ba01dd..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md4_intermediate.pem +++ /dev/null @@ -1,57 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 3 (0x3) - Signature Algorithm: md4WithRSAEncryption - Issuer: CN=Test Deprecated Digest Root CA - Validity - Not Before: Oct 26 03:46:49 2011 GMT - Not After : Oct 23 03:46:49 2021 GMT - Subject: CN=Test Deprecated Digest Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:ac:9b:c0:4b:fc:59:45:7a:d6:3f:a3:89:23:30: - 5b:70:ad:ab:78:62:4b:53:85:9f:f9:7d:7f:c1:26: - 08:23:80:61:0c:ba:6d:36:06:14:df:29:d4:9c:63: - 94:04:ee:14:b6:b9:81:06:2f:33:d8:35:9a:1a:89: - 17:ad:21:61:fa:24:75:b9:0c:ef:c1:15:6a:02:bd: - b2:a5:29:df:d8:5f:80:7c:4e:c9:c1:b4:bb:fd:78: - 44:63:34:b5:a5:51:aa:e9:23:77:44:53:f9:fa:58: - f6:46:6e:9d:d2:cd:00:a3:28:fe:51:e4:30:7e:49: - 62:d4:53:b0:d8:9c:34:47:07 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - A8:1D:06:8D:AD:3F:25:51:00:F0:3B:E9:35:C6:65:74:12:51:20:19 - X509v3 Authority Key Identifier: - keyid:79:82:C5:B4:EB:60:12:4B:B5:87:79:1B:E2:3A:9C:17:76:81:CB:43 - - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: md4WithRSAEncryption - 7e:ca:14:3d:14:04:f4:a4:1a:cf:b5:c6:c7:c2:d3:e7:68:08: - 55:1f:fa:93:28:fa:34:aa:97:29:f7:31:6f:30:a4:25:bd:c5: - fe:28:3d:a9:92:b0:4f:ca:24:3f:7b:1a:16:2e:0d:08:73:8e: - ca:9f:50:da:e9:64:4f:bd:31:c4:72:89:98:8d:55:55:57:96: - 6a:e0:5e:00:12:07:8b:3a:30:06:9a:47:a5:94:39:74:a0:f7: - e1:00:48:2a:90:08:84:80:e3:6b:83:91:c6:74:d8:d9:c2:72: - c7:b9:6e:33:7f:38:46:c1:26:14:5c:1b:85:a3:aa:bb:72:a0: - 84:b2 ------BEGIN CERTIFICATE----- -MIICMzCCAZygAwIBAgIBAzANBgkqhkiG9w0BAQMFADApMScwJQYDVQQDDB5UZXN0 -IERlcHJlY2F0ZWQgRGlnZXN0IFJvb3QgQ0EwHhcNMTExMDI2MDM0NjQ5WhcNMjEx -MDIzMDM0NjQ5WjAxMS8wLQYDVQQDDCZUZXN0IERlcHJlY2F0ZWQgRGlnZXN0IElu -dGVybWVkaWF0ZSBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArJvAS/xZ -RXrWP6OJIzBbcK2reGJLU4Wf+X1/wSYII4BhDLptNgYU3ynUnGOUBO4UtrmBBi8z -2DWaGokXrSFh+iR1uQzvwRVqAr2ypSnf2F+AfE7JwbS7/XhEYzS1pVGq6SN3RFP5 -+lj2Rm6d0s0Aoyj+UeQwfkli1FOw2Jw0RwcCAwEAAaNjMGEwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUqB0Gja0/JVEA8DvpNcZldBJRIBkwHwYDVR0jBBgwFoAU -eYLFtOtgEku1h3kb4jqcF3aBy0MwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -AwUAA4GBAH7KFD0UBPSkGs+1xsfC0+doCFUf+pMo+jSqlyn3MW8wpCW9xf4oPamS -sE/KJD97GhYuDQhzjsqfUNrpZE+9McRyiZiNVVVXlmrgXgASB4s6MAaaR6WUOXSg -9+EASCqQCISA42uDkcZ02NnCcse5bjN/OEbBJhRcG4WjqrtyoISy ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md4_root.pem b/src/pki/testdata/ssl/certificates/weak_digest_md4_root.pem deleted file mode 100644 index 4d5fc29..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md4_root.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICEjCCAXugAwIBAgIJAPqB3U0Vl/N1MA0GCSqGSIb3DQEBAwUAMCkxJzAlBgNV -BAMMHlRlc3QgRGVwcmVjYXRlZCBEaWdlc3QgUm9vdCBDQTAeFw0xMTEwMjYwMzQ2 -NDlaFw0yMTEwMjMwMzQ2NDlaMCkxJzAlBgNVBAMMHlRlc3QgRGVwcmVjYXRlZCBE -aWdlc3QgUm9vdCBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwFtzW+hj -BwMylx+rrgeKjltrzYabuJDdTDTYr1lViwO39m6CtHYdcFvZ1nU9oDjW4Lb1NQYv -HoR8+SD0X1R2Y0yF6AyS9NX5E9TQ8TJUSQEehfznbBovMkRaQQMRD6ksRIQr+s00 -P6n0lAYJyN32lmTCbJ+k1aGHPFtKhTNQF/cCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHmCxbTrYBJLtYd5G+I6nBd2 -gctDMA0GCSqGSIb3DQEBAwUAA4GBAEvEn5YHixuMeYW3TpCVpyvNocToAlHiy5xt -iXVN9V31w8X7I7vcUAgqWQYtB0qngQ28akmiY+yyfYkWB3H8B0DCr0STFCbMq0c6 -Ydt5pV3lBQpHUKZFvv5moVVWPXr0f0smZI26KGalHgxdrFJnnP4bp6VhYt8G3KFA -h+nxg1RW ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md5_ee.pem b/src/pki/testdata/ssl/certificates/weak_digest_md5_ee.pem deleted file mode 100644 index c5a1eb4..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md5_ee.pem +++ /dev/null @@ -1,61 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: md5WithRSAEncryption - Issuer: CN=Test Deprecated Digest Intermediate CA - Validity - Not Before: Oct 26 03:46:48 2011 GMT - Not After : Oct 23 03:46:48 2021 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:c7:48:eb:5c:00:17:94:01:09:d3:bd:47:41:38: - 74:b8:4f:cb:ea:f1:15:eb:cb:e7:b5:6c:bd:fe:d9: - 97:6d:1e:1b:ee:75:9e:c1:6f:4a:5c:8c:d7:19:cf: - 51:89:48:e8:7d:79:41:ab:e3:a7:77:d1:de:f2:13: - be:36:e7:44:c2:10:dd:56:83:03:f1:cd:e1:13:8d: - fe:45:d6:1a:98:d8:8d:08:b9:32:10:36:0d:ec:ee: - 2d:66:22:eb:6a:0d:0e:f4:15:91:dd:9d:3e:92:db: - 9e:26:c8:af:4b:b7:fb:93:f8:68:07:c3:53:02:57: - dc:d0:de:df:29:72:45:6f:e3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 35:5C:C8:0F:21:D0:A2:F5:69:44:5C:9E:B0:DC:0F:75:74:24:7A:FD - X509v3 Authority Key Identifier: - keyid:A8:1D:06:8D:AD:3F:25:51:00:F0:3B:E9:35:C6:65:74:12:51:20:19 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: md5WithRSAEncryption - 5c:36:ba:dd:8c:ae:4c:2d:00:32:d9:ed:4d:1d:4b:07:52:28: - 9c:16:18:3f:38:02:9d:d7:8e:16:e6:4b:2d:8c:84:cc:b1:90: - 6c:b4:42:55:56:7c:e6:ec:15:2b:90:0b:7e:89:08:15:5a:11: - 0e:5d:1b:a3:cc:81:79:1e:ea:96:82:75:d8:14:96:0f:17:a5: - cd:50:fd:50:f0:5b:7f:03:54:b3:e3:b5:66:03:c8:00:1d:61: - 36:f3:78:2d:07:82:61:0a:fd:d9:7c:8a:fe:cb:e1:09:df:fb: - b6:2f:09:7b:0b:62:d8:27:18:4e:6e:fe:92:1b:1a:2b:7d:56: - e0:87 ------BEGIN CERTIFICATE----- -MIICiDCCAfGgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAxMS8wLQYDVQQDDCZUZXN0 -IERlcHJlY2F0ZWQgRGlnZXN0IEludGVybWVkaWF0ZSBDQTAeFw0xMTEwMjYwMzQ2 -NDhaFw0yMTEwMjMwMzQ2NDhaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxp -Zm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENB -MRIwEAYDVQQDDAkxMjcuMC4wLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB -AMdI61wAF5QBCdO9R0E4dLhPy+rxFevL57Vsvf7Zl20eG+51nsFvSlyM1xnPUYlI -6H15Qavjp3fR3vITvjbnRMIQ3VaDA/HN4RON/kXWGpjYjQi5MhA2DezuLWYi62oN -DvQVkd2dPpLbnibIr0u3+5P4aAfDUwJX3NDe3ylyRW/jAgMBAAGjgYAwfjAMBgNV -HRMBAf8EAjAAMB0GA1UdDgQWBBQ1XMgPIdCi9WlEXJ6w3A91dCR6/TAfBgNVHSME -GDAWgBSoHQaNrT8lUQDwO+k1xmV0ElEgGTAdBgNVHSUEFjAUBggrBgEFBQcDAQYI -KwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQQFAAOBgQBcNrrd -jK5MLQAy2e1NHUsHUiicFhg/OAKd144W5kstjITMsZBstEJVVnzm7BUrkAt+iQgV -WhEOXRujzIF5HuqWgnXYFJYPF6XNUP1Q8Ft/A1Sz47VmA8gAHWE283gtB4JhCv3Z -fIr+y+EJ3/u2Lwl7C2LYJxhObv6SGxorfVbghw== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md5_intermediate.pem b/src/pki/testdata/ssl/certificates/weak_digest_md5_intermediate.pem deleted file mode 100644 index 6192ffe..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md5_intermediate.pem +++ /dev/null @@ -1,57 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: md5WithRSAEncryption - Issuer: CN=Test Deprecated Digest Root CA - Validity - Not Before: Oct 26 03:46:48 2011 GMT - Not After : Oct 23 03:46:48 2021 GMT - Subject: CN=Test Deprecated Digest Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:ac:9b:c0:4b:fc:59:45:7a:d6:3f:a3:89:23:30: - 5b:70:ad:ab:78:62:4b:53:85:9f:f9:7d:7f:c1:26: - 08:23:80:61:0c:ba:6d:36:06:14:df:29:d4:9c:63: - 94:04:ee:14:b6:b9:81:06:2f:33:d8:35:9a:1a:89: - 17:ad:21:61:fa:24:75:b9:0c:ef:c1:15:6a:02:bd: - b2:a5:29:df:d8:5f:80:7c:4e:c9:c1:b4:bb:fd:78: - 44:63:34:b5:a5:51:aa:e9:23:77:44:53:f9:fa:58: - f6:46:6e:9d:d2:cd:00:a3:28:fe:51:e4:30:7e:49: - 62:d4:53:b0:d8:9c:34:47:07 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - A8:1D:06:8D:AD:3F:25:51:00:F0:3B:E9:35:C6:65:74:12:51:20:19 - X509v3 Authority Key Identifier: - keyid:79:82:C5:B4:EB:60:12:4B:B5:87:79:1B:E2:3A:9C:17:76:81:CB:43 - - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: md5WithRSAEncryption - a3:9d:4e:8b:42:7b:c2:3a:71:5c:7a:a9:ec:9b:da:04:a4:7d: - f2:53:ba:b5:97:97:21:ae:94:03:23:7e:75:0e:c7:cc:1f:57: - f2:76:ec:aa:bf:4f:2f:d1:2d:d2:3d:10:55:ce:a0:1c:93:b6: - 8a:b6:65:9b:67:7a:a6:2f:04:62:e9:31:69:f4:26:08:a3:41: - d0:11:3a:21:31:b6:32:5e:a0:4c:32:2d:ca:f8:a0:76:be:f2: - a1:bf:15:98:73:26:41:2d:d5:8e:63:e7:5e:ef:61:08:f0:9d: - fb:af:55:1e:37:9c:2a:13:f7:7e:ab:5c:f4:d5:f8:7c:a7:fb: - c0:42 ------BEGIN CERTIFICATE----- -MIICMzCCAZygAwIBAgIBAjANBgkqhkiG9w0BAQQFADApMScwJQYDVQQDDB5UZXN0 -IERlcHJlY2F0ZWQgRGlnZXN0IFJvb3QgQ0EwHhcNMTExMDI2MDM0NjQ4WhcNMjEx -MDIzMDM0NjQ4WjAxMS8wLQYDVQQDDCZUZXN0IERlcHJlY2F0ZWQgRGlnZXN0IElu -dGVybWVkaWF0ZSBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArJvAS/xZ -RXrWP6OJIzBbcK2reGJLU4Wf+X1/wSYII4BhDLptNgYU3ynUnGOUBO4UtrmBBi8z -2DWaGokXrSFh+iR1uQzvwRVqAr2ypSnf2F+AfE7JwbS7/XhEYzS1pVGq6SN3RFP5 -+lj2Rm6d0s0Aoyj+UeQwfkli1FOw2Jw0RwcCAwEAAaNjMGEwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUqB0Gja0/JVEA8DvpNcZldBJRIBkwHwYDVR0jBBgwFoAU -eYLFtOtgEku1h3kb4jqcF3aBy0MwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BAUAA4GBAKOdTotCe8I6cVx6qeyb2gSkffJTurWXlyGulAMjfnUOx8wfV/J27Kq/ -Ty/RLdI9EFXOoByTtoq2ZZtneqYvBGLpMWn0JgijQdAROiExtjJeoEwyLcr4oHa+ -8qG/FZhzJkEt1Y5j517vYQjwnfuvVR43nCoT936rXPTV+Hyn+8BC ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_md5_root.pem b/src/pki/testdata/ssl/certificates/weak_digest_md5_root.pem deleted file mode 100644 index cea1d70..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_md5_root.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICEjCCAXugAwIBAgIJANhsW8HvYIVtMA0GCSqGSIb3DQEBBAUAMCkxJzAlBgNV -BAMMHlRlc3QgRGVwcmVjYXRlZCBEaWdlc3QgUm9vdCBDQTAeFw0xMTEwMjYwMzQ2 -NDhaFw0yMTEwMjMwMzQ2NDhaMCkxJzAlBgNVBAMMHlRlc3QgRGVwcmVjYXRlZCBE -aWdlc3QgUm9vdCBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwFtzW+hj -BwMylx+rrgeKjltrzYabuJDdTDTYr1lViwO39m6CtHYdcFvZ1nU9oDjW4Lb1NQYv -HoR8+SD0X1R2Y0yF6AyS9NX5E9TQ8TJUSQEehfznbBovMkRaQQMRD6ksRIQr+s00 -P6n0lAYJyN32lmTCbJ+k1aGHPFtKhTNQF/cCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHmCxbTrYBJLtYd5G+I6nBd2 -gctDMA0GCSqGSIb3DQEBBAUAA4GBAC1qyqlaaPzmY78GXsw1MY2VbSNmGyRxWw3W -dJVSkdKv8jeeZnVT6JaiHzmM0zQ9E8x0szILJlJ3r9CNKiuXgpCvbaWqiWwytFny -8Mea/xS8FwIfPoxiOt/MdjvnfUWi1ukZaOy88rg5V7/mVdObTzu4VouD4qxhpdTa -QRn7eFqR ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_sha1_ee.pem b/src/pki/testdata/ssl/certificates/weak_digest_sha1_ee.pem deleted file mode 100644 index 5368e62..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_sha1_ee.pem +++ /dev/null @@ -1,61 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption - Issuer: CN=Test Deprecated Digest Intermediate CA - Validity - Not Before: Oct 26 03:46:48 2011 GMT - Not After : Oct 23 03:46:48 2021 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:c7:48:eb:5c:00:17:94:01:09:d3:bd:47:41:38: - 74:b8:4f:cb:ea:f1:15:eb:cb:e7:b5:6c:bd:fe:d9: - 97:6d:1e:1b:ee:75:9e:c1:6f:4a:5c:8c:d7:19:cf: - 51:89:48:e8:7d:79:41:ab:e3:a7:77:d1:de:f2:13: - be:36:e7:44:c2:10:dd:56:83:03:f1:cd:e1:13:8d: - fe:45:d6:1a:98:d8:8d:08:b9:32:10:36:0d:ec:ee: - 2d:66:22:eb:6a:0d:0e:f4:15:91:dd:9d:3e:92:db: - 9e:26:c8:af:4b:b7:fb:93:f8:68:07:c3:53:02:57: - dc:d0:de:df:29:72:45:6f:e3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - 35:5C:C8:0F:21:D0:A2:F5:69:44:5C:9E:B0:DC:0F:75:74:24:7A:FD - X509v3 Authority Key Identifier: - keyid:A8:1D:06:8D:AD:3F:25:51:00:F0:3B:E9:35:C6:65:74:12:51:20:19 - - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - ab:a4:58:6a:d8:f4:87:00:11:45:23:ea:75:a9:0d:cd:87:73: - 0e:73:f2:97:d3:74:b0:cd:90:c9:45:83:03:c3:82:ee:2f:79: - 51:31:12:1c:39:a0:e2:45:f2:c2:4e:70:8c:e4:f3:af:15:4c: - be:5d:e7:c3:96:79:c8:a4:98:6d:37:8d:3f:9f:9e:89:32:ca: - a6:a7:e2:c8:f3:84:64:08:34:57:bd:10:22:96:78:39:b4:33: - dc:f2:db:83:ec:0c:20:58:ce:ba:98:44:dc:ca:a2:10:6c:5a: - d5:57:85:b9:3c:f0:48:99:98:e1:80:88:08:4c:cc:83:0d:40: - ff:8d ------BEGIN CERTIFICATE----- -MIICiDCCAfGgAwIBAgIBATANBgkqhkiG9w0BAQUFADAxMS8wLQYDVQQDDCZUZXN0 -IERlcHJlY2F0ZWQgRGlnZXN0IEludGVybWVkaWF0ZSBDQTAeFw0xMTEwMjYwMzQ2 -NDhaFw0yMTEwMjMwMzQ2NDhaMGAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxp -Zm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdUZXN0IENB -MRIwEAYDVQQDDAkxMjcuMC4wLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB -AMdI61wAF5QBCdO9R0E4dLhPy+rxFevL57Vsvf7Zl20eG+51nsFvSlyM1xnPUYlI -6H15Qavjp3fR3vITvjbnRMIQ3VaDA/HN4RON/kXWGpjYjQi5MhA2DezuLWYi62oN -DvQVkd2dPpLbnibIr0u3+5P4aAfDUwJX3NDe3ylyRW/jAgMBAAGjgYAwfjAMBgNV -HRMBAf8EAjAAMB0GA1UdDgQWBBQ1XMgPIdCi9WlEXJ6w3A91dCR6/TAfBgNVHSME -GDAWgBSoHQaNrT8lUQDwO+k1xmV0ElEgGTAdBgNVHSUEFjAUBggrBgEFBQcDAQYI -KwYBBQUHAwIwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQUFAAOBgQCrpFhq -2PSHABFFI+p1qQ3Nh3MOc/KX03SwzZDJRYMDw4LuL3lRMRIcOaDiRfLCTnCM5POv -FUy+XefDlnnIpJhtN40/n56JMsqmp+LI84RkCDRXvRAilng5tDPc8tuD7AwgWM66 -mETcyqIQbFrVV4W5PPBImZjhgIgITMyDDUD/jQ== ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_sha1_intermediate.pem b/src/pki/testdata/ssl/certificates/weak_digest_sha1_intermediate.pem deleted file mode 100644 index 478d116..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_sha1_intermediate.pem +++ /dev/null @@ -1,57 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption - Issuer: CN=Test Deprecated Digest Root CA - Validity - Not Before: Oct 26 03:46:48 2011 GMT - Not After : Oct 23 03:46:48 2021 GMT - Subject: CN=Test Deprecated Digest Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:ac:9b:c0:4b:fc:59:45:7a:d6:3f:a3:89:23:30: - 5b:70:ad:ab:78:62:4b:53:85:9f:f9:7d:7f:c1:26: - 08:23:80:61:0c:ba:6d:36:06:14:df:29:d4:9c:63: - 94:04:ee:14:b6:b9:81:06:2f:33:d8:35:9a:1a:89: - 17:ad:21:61:fa:24:75:b9:0c:ef:c1:15:6a:02:bd: - b2:a5:29:df:d8:5f:80:7c:4e:c9:c1:b4:bb:fd:78: - 44:63:34:b5:a5:51:aa:e9:23:77:44:53:f9:fa:58: - f6:46:6e:9d:d2:cd:00:a3:28:fe:51:e4:30:7e:49: - 62:d4:53:b0:d8:9c:34:47:07 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - A8:1D:06:8D:AD:3F:25:51:00:F0:3B:E9:35:C6:65:74:12:51:20:19 - X509v3 Authority Key Identifier: - keyid:79:82:C5:B4:EB:60:12:4B:B5:87:79:1B:E2:3A:9C:17:76:81:CB:43 - - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha1WithRSAEncryption - 4e:30:a8:25:da:ac:90:a9:5e:6c:23:7f:76:1e:2d:64:79:78: - 61:84:dc:06:12:43:72:a6:18:f1:f2:23:fa:e9:1f:de:3a:52: - 1c:ce:cd:f7:7e:3c:92:ce:7f:f3:1f:f5:bc:18:17:95:cb:57: - 34:f1:88:b1:c8:1f:51:e1:d3:3d:dd:17:c6:d4:af:f1:42:ec: - 85:d7:bf:16:22:e0:88:82:92:cc:94:89:e5:eb:9d:cc:fe:31: - 50:6f:ea:d8:70:f9:ef:6b:ca:3e:af:bd:61:42:33:ce:23:bf: - 50:5f:55:14:64:2b:f7:fd:a6:29:41:a8:65:c3:fa:c4:f0:c7: - 71:a5 ------BEGIN CERTIFICATE----- -MIICMzCCAZygAwIBAgIBATANBgkqhkiG9w0BAQUFADApMScwJQYDVQQDDB5UZXN0 -IERlcHJlY2F0ZWQgRGlnZXN0IFJvb3QgQ0EwHhcNMTExMDI2MDM0NjQ4WhcNMjEx -MDIzMDM0NjQ4WjAxMS8wLQYDVQQDDCZUZXN0IERlcHJlY2F0ZWQgRGlnZXN0IElu -dGVybWVkaWF0ZSBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArJvAS/xZ -RXrWP6OJIzBbcK2reGJLU4Wf+X1/wSYII4BhDLptNgYU3ynUnGOUBO4UtrmBBi8z -2DWaGokXrSFh+iR1uQzvwRVqAr2ypSnf2F+AfE7JwbS7/XhEYzS1pVGq6SN3RFP5 -+lj2Rm6d0s0Aoyj+UeQwfkli1FOw2Jw0RwcCAwEAAaNjMGEwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUqB0Gja0/JVEA8DvpNcZldBJRIBkwHwYDVR0jBBgwFoAU -eYLFtOtgEku1h3kb4jqcF3aBy0MwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4GBAE4wqCXarJCpXmwjf3YeLWR5eGGE3AYSQ3KmGPHyI/rpH946UhzOzfd+ -PJLOf/Mf9bwYF5XLVzTxiLHIH1Hh0z3dF8bUr/FC7IXXvxYi4IiCksyUieXrncz+ -MVBv6thw+e9ryj6vvWFCM84jv1BfVRRkK/f9pilBqGXD+sTwx3Gl ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/weak_digest_sha1_root.pem b/src/pki/testdata/ssl/certificates/weak_digest_sha1_root.pem deleted file mode 100644 index a10f009..0000000 --- a/src/pki/testdata/ssl/certificates/weak_digest_sha1_root.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICEjCCAXugAwIBAgIJAOojr7l1i8pcMA0GCSqGSIb3DQEBBQUAMCkxJzAlBgNV -BAMMHlRlc3QgRGVwcmVjYXRlZCBEaWdlc3QgUm9vdCBDQTAeFw0xMTEwMjYwMzQ2 -NDhaFw0yMTEwMjMwMzQ2NDhaMCkxJzAlBgNVBAMMHlRlc3QgRGVwcmVjYXRlZCBE -aWdlc3QgUm9vdCBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwFtzW+hj -BwMylx+rrgeKjltrzYabuJDdTDTYr1lViwO39m6CtHYdcFvZ1nU9oDjW4Lb1NQYv -HoR8+SD0X1R2Y0yF6AyS9NX5E9TQ8TJUSQEehfznbBovMkRaQQMRD6ksRIQr+s00 -P6n0lAYJyN32lmTCbJ+k1aGHPFtKhTNQF/cCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHmCxbTrYBJLtYd5G+I6nBd2 -gctDMA0GCSqGSIb3DQEBBQUAA4GBAFfvM72mFeBd4HfP/U0HTmeQsPTorL01BRGe -kIbHSBfliYF5fTXbHHjXqvnmNvCwfjO1+HyCxg3opwmDS5DiwkT2XtqYeF80h8/X -J+hsdo+wJJiD0G8V3wOkBjlS5N3WaH3vhPikLkvmr2UzeeO3ORaaDUlRpzzOS2Pn -28TAE0Wq ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/websocket_cacert.pem b/src/pki/testdata/ssl/certificates/websocket_cacert.pem deleted file mode 100644 index 50c5baa..0000000 --- a/src/pki/testdata/ssl/certificates/websocket_cacert.pem +++ /dev/null @@ -1,61 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 94:72:cf:87:d6:a3:b4:82 - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=JP, ST=Tokyo, O=pywebsocket, CN=pywebsocket - Validity - Not Before: Oct 16 04:53:09 2012 GMT - Not After : Apr 29 04:53:09 2033 GMT - Subject: C=JP, ST=Tokyo, O=pywebsocket, CN=pywebsocket - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:d8:f9:57:61:4a:d3:22:96:91:79:c5:1b:fa:43: - e1:f6:ac:ef:16:ca:5e:a3:b2:9e:11:3c:c7:bc:f7: - e3:86:2f:ef:1b:52:a0:86:79:b0:0e:89:b3:8b:f1: - 54:98:7c:b8:18:44:d5:0b:26:da:b7:31:de:9e:f1: - ba:01:99:f8:b1:e9:5c:aa:d9:ea:7f:46:6f:2d:03: - 8d:64:bb:e4:bc:c2:61:9b:47:bc:56:d1:aa:d1:b4: - e8:7c:7b:ad:83:c8:48:ef:56:c5:cf:01:22:56:75: - 48:07:a3:15:82:32:59:08:44:d1:eb:04:ea:02:34: - 22:7b:2b:41:6f:14:03:4e:07 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 33:BB:11:3D:8D:AF:1C:27:2B:F6:67:36:A7:53:4E:49:94:22:17:EB - X509v3 Authority Key Identifier: - keyid:33:BB:11:3D:8D:AF:1C:27:2B:F6:67:36:A7:53:4E:49:94:22:17:EB - DirName:/C=JP/ST=Tokyo/O=pywebsocket/CN=pywebsocket - serial:94:72:CF:87:D6:A3:B4:82 - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: sha1WithRSAEncryption - 4f:be:f4:12:fe:89:ff:bb:3b:1b:f3:78:6a:8b:ae:9c:da:31: - f0:76:b9:22:19:8d:4c:89:be:59:97:ff:0f:9f:0d:74:88:e2: - ca:4d:b2:d7:8e:9f:1d:3e:86:9d:40:84:fe:1a:57:53:ba:4b: - 35:91:f4:49:ba:16:3f:a1:bf:b1:a3:d8:55:f6:4d:5c:a7:2a: - 2d:e0:e1:ca:2b:44:67:c4:33:4f:31:0b:8d:3e:83:99:79:d1: - e3:50:4d:30:ab:29:d7:46:83:07:b5:9a:84:e5:3d:cb:92:05: - 49:93:2d:4e:92:a6:4b:a3:af:24:03:42:82:c6:26:76:f7:91: - c9:02 ------BEGIN CERTIFICATE----- -MIICvDCCAiWgAwIBAgIJAJRyz4fWo7SCMA0GCSqGSIb3DQEBBQUAMEkxCzAJBgNV -BAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzEUMBIGA1UEChMLcHl3ZWJzb2NrZXQxFDAS -BgNVBAMTC3B5d2Vic29ja2V0MB4XDTEyMTAxNjA0NTMwOVoXDTMzMDQyOTA0NTMw -OVowSTELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBVRva3lvMRQwEgYDVQQKEwtweXdl -YnNvY2tldDEUMBIGA1UEAxMLcHl3ZWJzb2NrZXQwgZ8wDQYJKoZIhvcNAQEBBQAD -gY0AMIGJAoGBANj5V2FK0yKWkXnFG/pD4fas7xbKXqOynhE8x7z344Yv7xtSoIZ5 -sA6Js4vxVJh8uBhE1Qsm2rcx3p7xugGZ+LHpXKrZ6n9Gby0DjWS75LzCYZtHvFbR -qtG06Hx7rYPISO9Wxc8BIlZ1SAejFYIyWQhE0esE6gI0InsrQW8UA04HAgMBAAGj -gaswgagwHQYDVR0OBBYEFDO7ET2NrxwnK/ZnNqdTTkmUIhfrMHkGA1UdIwRyMHCA -FDO7ET2NrxwnK/ZnNqdTTkmUIhfroU2kSzBJMQswCQYDVQQGEwJKUDEOMAwGA1UE -CBMFVG9reW8xFDASBgNVBAoTC3B5d2Vic29ja2V0MRQwEgYDVQQDEwtweXdlYnNv -Y2tldIIJAJRyz4fWo7SCMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEA -T770Ev6J/7s7G/N4aouunNox8Ha5IhmNTIm+WZf/D58NdIjiyk2y146fHT6GnUCE -/hpXU7pLNZH0SboWP6G/saPYVfZNXKcqLeDhyitEZ8QzTzELjT6DmXnR41BNMKsp -10aDB7WahOU9y5IFSZMtTpKmS6OvJANCgsYmdveRyQI= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/websocket_client_cert.p12 b/src/pki/testdata/ssl/certificates/websocket_client_cert.p12 Binary files differdeleted file mode 100644 index 1ec70b2..0000000 --- a/src/pki/testdata/ssl/certificates/websocket_client_cert.p12 +++ /dev/null diff --git a/src/pki/testdata/ssl/certificates/wildcard.pem b/src/pki/testdata/ssl/certificates/wildcard.pem deleted file mode 100644 index 2c3692e..0000000 --- a/src/pki/testdata/ssl/certificates/wildcard.pem +++ /dev/null @@ -1,113 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCtHZTAxIAlCLF+ -VUYlvmW9wv+VjrU1xuPIRo/NIzyEzuyB7yFVlI+/oaEnZNlW5f2g+nPEsFKCdre9 -A7K87eht+B8RYDowTdQqfgODOEIOWZ8MTL1WqenW+DKl6xNnVQKog6TdC9+hD/AY -YTin94DuHr2VC2zvEzrjspq7kf+FlTjU+MT86toS/t+cLhBpwBPbLmH18LEs5999 -aEdUtFZwcJMTQT1i9PqYpNwiDKT9fIhMDIoa9CumyY+gT7tQ+tGlojNQICswU99U -LiS2KIg1JxFQ/KJoproTnFuxgwQAg7iGmJx/OtcXdus7HdO6mIEF/Q4l75KHaDWp -bRTl92G9AgMBAAECggEAepmBeIdxLUkb0pl3pVFS4nIP6Y34fY5OUM7QFnqG6JNW -4apF1ELzDsbbx3dfiHA3D+NvS3OH64dCFqVg1vYx7neTIQ4iB4WG5VT7DdowxdLo -laBfUtnglnKOA/0Yb8y/pjIc9sLq7DjKU6m+ow3gjELPBpfh3OqkgQ9DD+WUrbfW -0zTRKPuKnz5xfs2Lv6kUz7AriePGt2pf860WMGqzRwGZ+968seXiKZLPWToDu7l5 -42YN8JAtDIwwe+87fp9Hxzv+sqembnl7Je8yklk6aCcNxg2zNfcWWCDvzV4YQ3FK -ocONxFXFipKk3dHx9G04AEC6uYqhMSyQlev9Rt/zoQKBgQDc2jbPmru5PmqGHtLa -Ih8KAvGcywSQsLqP2KbmDBR9Ajs9+yHa9IqNZPfE98fNtiiDSjEyOI0fZq3YHaLg -BZzFsrn4UuTJJYPX3rJBc1TmsS8aZ8RkqiVhWBdKasAPBDUUWEaWxbqAXhKjgrNw -K7xNmFASk7f1UjLvVE0LXd55dQKBgQDIqoMC6iXMQP7i/TW8P9jrvy3/dnVFdhN9 -d7sFasApdwGsJVb5XWWIqA62lcdi+0sNnMgw4SZbPJlWLgcDiahJJe8hhQbHgLYK -j90VIYYl1FXUvZ2RjpgiwTR2I+iPPAyNRiFxVLiYEn8sGckDDEDG+eiDg9jOZ0aB -0Q3cprJ2KQKBgQCgzen2wy1INeAOA8d2uD1tZrNRfKi4SVWtgwwSmF0aoFNOT9pY -uJFhXlDhg6Bhce6RmaW0cWSfpn2RzBJZlvyNHhM2cfTPWJdkyGt2KGl7ByvKyB9B -RHmvJRrgPlXVGTUkuRm8kf+3k8dycqoAVHfo76vtuszIvK8Ff5YRXqmsOQKBgGe8 -fm4LTe8BysLd0+G1wBZfhxAB1S5LlFfQhcaPIThOZXbw9r2DIvI6ryCE3ca10l7/ -Jh7exk10TnDW6plRmMX37l+Nvat1Rqa/KLO72PXFh3mrbMHKzatp5g0NEzS4/mQq -VS+ZdLRpG4VY7ym8M+CpYSJcDsDlcvW5dUkUhD3BAoGAWskpxGJtWs5MaxrCA7Cs -XFMA4kFzdavnEQXtdm3VkdlrpJW04Yt6YLSVzeLsfZdK8x7RAiIrsTwSRHnYjCBJ -PTUU5ibJPFj7pKEJkXnAYJy41fzbLHUuL+X8liKms1pXJmcbUVPZq+eem/J3omls -CgleVqA09PTkNcz+Xy6KQpY= ------END PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:67 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Sep 30 17:20:08 2032 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:ad:1d:94:c0:c4:80:25:08:b1:7e:55:46:25:be: - 65:bd:c2:ff:95:8e:b5:35:c6:e3:c8:46:8f:cd:23: - 3c:84:ce:ec:81:ef:21:55:94:8f:bf:a1:a1:27:64: - d9:56:e5:fd:a0:fa:73:c4:b0:52:82:76:b7:bd:03: - b2:bc:ed:e8:6d:f8:1f:11:60:3a:30:4d:d4:2a:7e: - 03:83:38:42:0e:59:9f:0c:4c:bd:56:a9:e9:d6:f8: - 32:a5:eb:13:67:55:02:a8:83:a4:dd:0b:df:a1:0f: - f0:18:61:38:a7:f7:80:ee:1e:bd:95:0b:6c:ef:13: - 3a:e3:b2:9a:bb:91:ff:85:95:38:d4:f8:c4:fc:ea: - da:12:fe:df:9c:2e:10:69:c0:13:db:2e:61:f5:f0: - b1:2c:e7:df:7d:68:47:54:b4:56:70:70:93:13:41: - 3d:62:f4:fa:98:a4:dc:22:0c:a4:fd:7c:88:4c:0c: - 8a:1a:f4:2b:a6:c9:8f:a0:4f:bb:50:fa:d1:a5:a2: - 33:50:20:2b:30:53:df:54:2e:24:b6:28:88:35:27: - 11:50:fc:a2:68:a6:ba:13:9c:5b:b1:83:04:00:83: - b8:86:98:9c:7f:3a:d7:17:76:eb:3b:1d:d3:ba:98: - 81:05:fd:0e:25:ef:92:87:68:35:a9:6d:14:e5:f7: - 61:bd - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E7:1B:C5:0D:E7:ED:C7:2B:2E:95:91:40:77:5A:57:DE:1C:F4:D7:FE - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - DNS:*.example.org - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 3b:28:28:79:3c:bf:0e:3f:54:71:1e:0b:cb:1d:96:15:b4:9e: - 34:1a:ea:ce:ad:4a:63:41:6f:bc:c3:0b:c6:89:db:23:72:88: - 85:cf:cf:43:c3:ba:49:aa:dd:a9:4b:ed:da:ce:17:e0:c9:ee: - c2:f2:38:2e:0a:e5:b6:85:58:2a:89:25:36:da:ba:17:e7:1e: - eb:63:ee:be:83:ce:ce:05:f7:2a:96:18:a6:fd:20:50:5b:9a: - 8d:1c:6e:11:f2:8e:11:c3:ae:86:5f:4d:d0:68:45:be:99:a9: - 3b:87:eb:a8:e6:99:62:f9:ea:8f:03:12:91:47:df:58:46:11: - 66:c1:57:9c:a5:a5:d2:75:ce:c8:8c:63:79:19:17:30:03:2e: - 58:3a:cf:82:63:e9:7f:9a:c2:8d:e2:4a:dc:7f:5d:3b:40:10: - 38:a4:45:46:3f:95:5c:48:97:7e:4e:85:82:48:e9:aa:89:c0: - 77:d8:f3:16:b3:7a:4d:bb:82:84:e8:54:59:dc:5b:97:3f:83: - b3:bd:f1:84:31:ae:02:17:92:84:e9:db:06:c0:97:0c:02:2b: - 4b:d7:99:7f:d7:9e:9a:3d:99:06:5e:3d:74:f6:b4:1f:22:f0: - 27:cb:4c:1f:ae:c4:24:c8:1a:9a:8d:21:7b:db:32:88:5d:a6: - 72:b4:5e:70 ------BEGIN CERTIFICATE----- -MIID2TCCAsGgAwIBAgIRALBrk5LjXI1+7Z3IllnFwmcwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0zMjA5MzAxNzIwMDhaMGAxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtHZTAxIAlCLF+VUYlvmW9wv+VjrU1xuPI -Ro/NIzyEzuyB7yFVlI+/oaEnZNlW5f2g+nPEsFKCdre9A7K87eht+B8RYDowTdQq -fgODOEIOWZ8MTL1WqenW+DKl6xNnVQKog6TdC9+hD/AYYTin94DuHr2VC2zvEzrj -spq7kf+FlTjU+MT86toS/t+cLhBpwBPbLmH18LEs5999aEdUtFZwcJMTQT1i9PqY -pNwiDKT9fIhMDIoa9CumyY+gT7tQ+tGlojNQICswU99ULiS2KIg1JxFQ/KJoproT -nFuxgwQAg7iGmJx/OtcXdus7HdO6mIEF/Q4l75KHaDWpbRTl92G9AgMBAAGjgYow -gYcwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU5xvFDeftxysulZFAd1pX3hz01/4w -HwYDVR0jBBgwFoAUmyYLipipux25HxzjGkAz7Y4XiKswHQYDVR0lBBYwFAYIKwYB -BQUHAwEGCCsGAQUFBwMCMBgGA1UdEQQRMA+CDSouZXhhbXBsZS5vcmcwDQYJKoZI -hvcNAQELBQADggEBADsoKHk8vw4/VHEeC8sdlhW0njQa6s6tSmNBb7zDC8aJ2yNy -iIXPz0PDukmq3alL7drOF+DJ7sLyOC4K5baFWCqJJTbauhfnHutj7r6Dzs4F9yqW -GKb9IFBbmo0cbhHyjhHDroZfTdBoRb6ZqTuH66jmmWL56o8DEpFH31hGEWbBV5yl -pdJ1zsiMY3kZFzADLlg6z4Jj6X+awo3iStx/XTtAEDikRUY/lVxIl35OhYJI6aqJ -wHfY8xazek27goToVFncW5c/g7O98YQxrgIXkoTp2wbAlwwCK0vXmX/Xnpo9mQZe -PXT2tB8i8CfLTB+uxCTIGpqNIXvbMohdpnK0XnA= ------END CERTIFICATE----- diff --git a/src/pki/testdata/ssl/certificates/x509_verify_results.chain.pem b/src/pki/testdata/ssl/certificates/x509_verify_results.chain.pem deleted file mode 100644 index 30c06ee..0000000 --- a/src/pki/testdata/ssl/certificates/x509_verify_results.chain.pem +++ /dev/null @@ -1,247 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 9c:ac:13:39:97:f9:d0:e4:e8:7f:a3:f1:71:92:32:fa - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Oct 2 17:20:08 2024 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=127.0.0.1 - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:e0:53:f4:f3:98:c1:14:33:02:c8:a4:6d:fe:aa: - 2a:f7:94:3d:a6:6f:00:df:3b:de:4c:9f:a3:ea:07: - d4:ac:e5:5b:0d:d1:ac:e0:ed:f9:c5:98:1d:35:2d: - e5:b3:49:97:14:85:44:0f:dc:4c:d2:67:08:88:01: - a5:d8:a7:eb:93:d1:6a:a1:f7:51:e7:84:7e:52:2a: - 7d:bc:6f:0e:d8:db:b6:a6:3e:de:dc:f5:a4:68:96: - 44:11:85:02:ed:47:12:df:b8:60:71:95:7b:62:87: - 68:7a:44:56:09:d5:b4:c8:f1:f6:c9:46:92:8b:68: - e8:83:d5:d5:86:71:23:c3:80:1e:bf:6c:01:c7:d2: - a4:bc:40:6d:e0:e3:c0:2e:30:78:bd:ad:dd:25:66: - d3:f5:07:07:56:d7:ce:e2:72:c5:25:7d:0c:e1:a7: - 6f:00:a8:da:ab:4b:54:43:09:64:a4:b6:52:38:2f: - b7:cc:01:dd:1c:03:27:03:47:bf:df:e6:37:b0:ed: - 18:dc:51:0b:d4:75:22:df:50:7b:3c:eb:37:39:1c: - 9b:6f:08:7b:a7:05:ac:8c:43:f7:f1:da:51:06:b3: - 82:45:3e:c8:81:73:9e:b0:a5:cf:76:96:af:81:2c: - ac:01:2a:4a:58:4b:1d:be:ff:1f:85:c2:27:de:f1: - 78:0b - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Subject Key Identifier: - E2:E0:A4:73:95:9B:E9:6E:FD:CE:29:C4:6F:07:81:0B:96:BD:47:BA - X509v3 Authority Key Identifier: - 17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B - X509v3 Extended Key Usage: - TLS Web Server Authentication, TLS Web Client Authentication - X509v3 Subject Alternative Name: - IP Address:127.0.0.1 - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 93:a1:82:4b:78:ce:18:3a:0a:ae:c8:3b:04:4a:1e:2a:e0:e8: - c3:dd:15:cb:ed:4f:23:09:b8:d4:49:4f:3b:2c:98:bf:bd:7a: - 4e:de:6b:48:93:0c:17:50:d5:df:b0:8a:95:3a:f4:d2:3c:c4: - 71:cd:fc:d3:72:b1:99:dd:5c:82:74:df:42:d9:51:85:26:92: - 2b:c8:0d:1b:aa:e5:98:9f:9d:25:cd:82:f1:a5:42:20:9c:7f: - e9:b3:b8:1e:75:70:2a:07:ee:33:db:6d:b6:6a:cb:e0:80:e9: - fe:12:15:0f:4e:e6:78:99:a3:22:68:1a:bc:ce:77:45:f0:9f: - ce:23:25:bd:32:b6:8d:f4:1a:3a:8e:e9:a7:bd:da:e7:d5:ba: - 84:38:4f:db:bb:29:7f:ec:4f:56:1a:c4:43:1a:0e:a5:c9:db: - b1:69:9d:00:82:b6:b2:4b:67:e7:58:45:37:dc:30:81:93:5a: - 56:de:5e:0f:9c:d6:1a:73:9c:9e:f4:f1:8e:20:11:fc:f3:3f: - 77:7f:9a:f1:93:42:31:2b:5a:e2:70:f2:7a:f0:07:7e:28:c3: - 21:6a:c5:b3:fe:08:76:4b:a3:58:70:f6:44:22:a5:e1:b9:17: - ce:a4:90:35:5c:c7:9a:e0:12:b7:5f:24:d5:60:0c:bd:9d:b6: - 1b:78:17:16 ------BEGIN CERTIFICATE----- -MIID1zCCAr+gAwIBAgIRAJysEzmX+dDk6H+j8XGSMvowDQYJKoZIhvcNAQELBQAw -azELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExHTAbBgNVBAMMFFRlc3QgSW50 -ZXJtZWRpYXRlIENBMB4XDTIyMTAwMzE3MjAwOFoXDTI0MTAwMjE3MjAwOFowYDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50 -YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExEjAQBgNVBAMMCTEyNy4wLjAuMTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOBT9POYwRQzAsikbf6qKveU -PaZvAN873kyfo+oH1KzlWw3RrODt+cWYHTUt5bNJlxSFRA/cTNJnCIgBpdin65PR -aqH3UeeEflIqfbxvDtjbtqY+3tz1pGiWRBGFAu1HEt+4YHGVe2KHaHpEVgnVtMjx -9slGkoto6IPV1YZxI8OAHr9sAcfSpLxAbeDjwC4weL2t3SVm0/UHB1bXzuJyxSV9 -DOGnbwCo2qtLVEMJZKS2Ujgvt8wB3RwDJwNHv9/mN7DtGNxRC9R1It9QezzrNzkc -m28Ie6cFrIxD9/HaUQazgkU+yIFznrClz3aWr4EsrAEqSlhLHb7/H4XCJ97xeAsC -AwEAAaOBgDB+MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOLgpHOVm+lu/c4pxG8H -gQuWvUe6MB8GA1UdIwQYMBaAFBdcRfPQrBwQTItDRCDE3ZPFxRk7MB0GA1UdJQQW -MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAPBgNVHREECDAGhwR/AAABMA0GCSqGSIb3 -DQEBCwUAA4IBAQCToYJLeM4YOgquyDsESh4q4OjD3RXL7U8jCbjUSU87LJi/vXpO -3mtIkwwXUNXfsIqVOvTSPMRxzfzTcrGZ3VyCdN9C2VGFJpIryA0bquWYn50lzYLx -pUIgnH/ps7gedXAqB+4z2222asvggOn+EhUPTuZ4maMiaBq8zndF8J/OIyW9MraN -9Bo6jumnvdrn1bqEOE/buyl/7E9WGsRDGg6lyduxaZ0AgrayS2fnWEU33DCBk1pW -3l4PnNYac5ye9PGOIBH88z93f5rxk0IxK1ricPJ68Ad+KMMhasWz/gh2S6NYcPZE -IqXhuRfOpJA1XMea4BK3XyTVYAy9nbYbeBcW ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b0:6b:93:92:e3:5c:8d:7e:ed:9d:c8:96:59:c5:c2:64 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Sep 30 17:20:08 2032 GMT - Subject: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Intermediate CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:9d:e9:bd:e4:3d:4a:2f:fb:c2:f9:e6:22:2a:42: - 15:46:1c:8c:8f:47:4c:e9:c5:57:95:1f:66:70:93: - 22:f0:94:c3:bb:b5:5b:ef:a4:6f:c8:c7:89:95:75: - ba:0c:36:bf:4e:6b:a9:35:47:08:43:9e:29:6a:e2: - c3:fb:03:b7:1f:b6:e1:51:6b:ed:7b:19:c7:f9:ce: - 3b:dc:65:e9:66:c7:83:94:c4:d1:4e:ee:ed:64:4b: - 81:f1:1a:ea:5a:64:18:1b:6a:4e:93:d0:13:6c:90: - 60:ca:d2:4e:b7:24:16:f8:b2:08:58:9d:8d:a7:33: - 45:15:34:81:ad:2d:2d:9c:60:ef:f9:2b:98:fe:79: - d3:8d:2c:48:db:12:91:f4:2e:fa:bf:f5:26:c1:82: - 05:80:dd:4c:a8:70:bf:a7:bc:10:34:77:39:db:47: - 04:0f:ed:44:b2:65:46:22:20:88:59:28:0f:c7:0c: - a2:b4:91:a5:a2:aa:ca:05:9f:8a:9b:6e:a3:cb:d4: - a4:e8:24:75:9d:20:81:22:5b:5f:77:3e:c9:f1:1e: - ae:eb:8a:33:8c:27:5b:1e:be:6d:21:1b:42:72:95: - e3:9e:13:03:75:a7:58:d4:be:68:12:fe:63:8e:4b: - 11:7a:34:e7:a3:6b:dd:73:ae:3e:19:9a:ec:91:8b: - 73:af - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 17:5C:45:F3:D0:AC:1C:10:4C:8B:43:44:20:C4:DD:93:C5:C5:19:3B - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - X509v3 Authority Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 25:54:8b:68:3b:3c:92:ed:1b:c7:a1:62:b3:7c:ff:7e:8c:57: - 7c:67:5c:ea:74:9f:e8:f1:b5:c8:e4:88:0e:c9:a3:f3:28:c4: - 05:af:8f:ad:51:32:66:ae:5d:7a:b1:77:7e:99:06:c8:30:26: - 5a:9f:1e:34:ea:aa:3e:0a:73:a2:40:e3:8f:1a:01:96:a2:6d: - 2f:6c:d9:36:65:98:c8:86:41:0e:ee:0d:aa:da:62:54:62:23: - c6:23:b0:f1:ca:35:7b:e5:4b:d1:ab:80:80:d6:00:2b:19:85: - 9d:e0:3c:3f:13:1e:90:d2:df:c3:31:90:0f:a8:40:08:33:4e: - f7:a4:d0:ed:3e:a4:41:cf:e8:37:49:d1:58:e8:07:3d:4b:a1: - c9:fe:12:07:9a:de:e0:c8:f3:68:d6:31:5d:03:77:2f:fa:b0: - e6:2c:f3:80:59:d0:9b:1b:59:22:cd:7e:58:c6:cf:82:92:c3: - 76:95:78:b2:75:c8:fa:59:9f:0e:c0:e3:6d:70:f9:82:ba:db: - 89:89:81:b7:b9:e1:41:63:51:56:8a:5a:d2:52:c2:19:2f:d9: - c0:9d:19:82:59:79:f9:56:1c:25:81:4d:0a:cd:77:1b:de:85: - 6e:51:04:08:0b:0c:33:65:52:f6:90:a8:82:25:77:a0:fa:5e: - 9c:2a:91:66 ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIRALBrk5LjXI1+7Z3IllnFwmQwDQYJKoZIhvcNAQELBQAw -YzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v -dW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9v -dCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0zMjA5MzAxNzIwMDhaMGsxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3 -MRAwDgYDVQQKDAdUZXN0IENBMR0wGwYDVQQDDBRUZXN0IEludGVybWVkaWF0ZSBD -QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3pveQ9Si/7wvnmIipC -FUYcjI9HTOnFV5UfZnCTIvCUw7u1W++kb8jHiZV1ugw2v05rqTVHCEOeKWriw/sD -tx+24VFr7XsZx/nOO9xl6WbHg5TE0U7u7WRLgfEa6lpkGBtqTpPQE2yQYMrSTrck -FviyCFidjaczRRU0ga0tLZxg7/krmP55040sSNsSkfQu+r/1JsGCBYDdTKhwv6e8 -EDR3OdtHBA/tRLJlRiIgiFkoD8cMorSRpaKqygWfiptuo8vUpOgkdZ0ggSJbX3c+ -yfEeruuKM4wnWx6+bSEbQnKV454TA3WnWNS+aBL+Y45LEXo056Nr3XOuPhma7JGL -c68CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUF1xF89CsHBBM -i0NEIMTdk8XFGTswDgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFJsmC4qYqbsd -uR8c4xpAM+2OF4irMA0GCSqGSIb3DQEBCwUAA4IBAQAlVItoOzyS7RvHoWKzfP9+ -jFd8Z1zqdJ/o8bXI5IgOyaPzKMQFr4+tUTJmrl16sXd+mQbIMCZanx406qo+CnOi -QOOPGgGWom0vbNk2ZZjIhkEO7g2q2mJUYiPGI7DxyjV75UvRq4CA1gArGYWd4Dw/ -Ex6Q0t/DMZAPqEAIM073pNDtPqRBz+g3SdFY6Ac9S6HJ/hIHmt7gyPNo1jFdA3cv -+rDmLPOAWdCbG1kizX5Yxs+CksN2lXiydcj6WZ8OwONtcPmCutuJiYG3ueFBY1FW -ilrSUsIZL9nAnRmCWXn5VhwlgU0KzXcb3oVuUQQICwwzZVL2kKiCJXeg+l6cKpFm ------END CERTIFICATE----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 0b:cc:00:80:c9:a0:0b:a1:c7:09:7c:9f:71:0d:90:92:cf:ee:c7:f4 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C = US, ST = California, L = Mountain View, O = Test CA, CN = Test Root CA - Validity - Not Before: Oct 3 17:20:08 2022 GMT - Not After : Sep 30 17:20:08 2032 GMT - Subject: C = US, ST = California, L = Mountain View, O = Test CA, CN = Test Root CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) - Modulus: - 00:c6:81:1f:92:73:b6:58:85:d9:8d:ac:b7:20:fd: - c7:bf:40:b2:ea:fa:e5:0b:52:01:8f:9a:c1:eb:7a: - 80:c1:f3:89:a4:3e:d5:1b:61:cc:b5:cf:80:b1:1a: - db:bb:25:e0:18:bf:92:69:26:50:cd:e7:3f:ff:0d: - 3c:b4:1f:14:12:ab:67:37:de:07:03:6c:12:74:82: - 36:ac:c3:d4:d3:64:9f:91:ed:5b:f6:a9:7a:a4:9c: - 98:e8:65:6c:94:e1:cb:55:73:ae:f8:1d:50:b0:78: - e5:74:ff:b1:37:2c:cb:19:3d:a4:8c:e7:76:4e:86: - 5c:3f:df:b3:ed:45:23:4f:54:9b:33:c6:89:5e:13: - 1d:dd:7d:59:a5:07:34:28:86:27:1f:fa:9e:53:4f: - 2a:b6:42:ad:37:12:62:f5:72:36:b6:02:12:40:44: - fe:c7:9e:95:89:43:51:5e:b4:6e:c7:67:80:58:43: - be:cc:07:28:bd:59:ff:1c:4c:8d:90:42:f4:cf:fd: - 54:00:4f:48:72:2b:e1:67:3c:84:17:68:95:bf:ca: - 07:7b:df:86:9d:56:e3:32:e3:70:87:b7:f8:3a:f7: - e3:6e:65:14:7c:bb:76:b7:17:f1:42:8c:6f:2a:34: - 64:10:35:14:8c:85:f6:57:bf:f3:5c:55:9d:ad:03: - 10:f3 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:TRUE - X509v3 Subject Key Identifier: - 9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB - X509v3 Key Usage: critical - Certificate Sign, CRL Sign - Signature Algorithm: sha256WithRSAEncryption - Signature Value: - 39:9a:f6:0e:eb:08:4d:a0:f0:59:b9:91:fe:b5:d8:2e:4d:6b: - 69:69:c5:d2:86:fc:a3:c2:a2:6c:ca:8d:98:1b:d2:fc:64:9b: - 96:b4:47:f9:f4:ed:6f:52:3c:b5:13:f6:1e:71:51:3b:da:54: - 93:c4:1d:94:17:23:76:9a:98:f5:9b:b8:b1:c5:ab:cd:ab:bd: - 1a:c9:00:13:e0:e3:c7:5a:a7:21:71:eb:08:2b:ec:85:5c:08: - 80:33:25:0f:1f:52:41:c4:9b:22:58:01:24:55:ef:9a:a6:ce: - e4:85:a3:19:33:4d:7e:3f:04:32:15:d5:fc:63:5f:8b:dc:99: - 2b:10:63:56:ac:60:6e:f9:db:9f:63:7b:a8:df:ab:72:28:8a: - a9:e2:8e:9d:e6:6c:7e:5b:16:ba:94:b2:23:f2:d7:31:5b:de: - 58:a0:8b:be:f4:6a:d2:d3:b4:e6:40:06:78:7a:2d:20:4c:cd: - 9d:20:dd:3b:fc:b9:f3:94:13:b0:6b:18:d7:6b:e8:bf:14:cc: - 87:30:8b:64:3f:ad:59:93:e5:f6:7c:d1:2b:f0:8e:4a:9c:c3: - 34:18:4d:62:33:bd:a6:3a:b6:3f:1f:49:5b:63:b4:01:a8:5c: - f0:98:93:35:53:2e:b2:f2:19:7f:87:0d:db:b1:80:61:38:c8: - 47:01:85:b0 ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIUC8wAgMmgC6HHCXyfcQ2Qks/ux/QwDQYJKoZIhvcNAQEL -BQAwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM -DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3Qg -Um9vdCBDQTAeFw0yMjEwMDMxNzIwMDhaFw0zMjA5MzAxNzIwMDhaMGMxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW -aWV3MRAwDgYDVQQKDAdUZXN0IENBMRUwEwYDVQQDDAxUZXN0IFJvb3QgQ0EwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGgR+Sc7ZYhdmNrLcg/ce/QLLq -+uULUgGPmsHreoDB84mkPtUbYcy1z4CxGtu7JeAYv5JpJlDN5z//DTy0HxQSq2c3 -3gcDbBJ0gjasw9TTZJ+R7Vv2qXqknJjoZWyU4ctVc674HVCweOV0/7E3LMsZPaSM -53ZOhlw/37PtRSNPVJszxoleEx3dfVmlBzQohicf+p5TTyq2Qq03EmL1cja2AhJA -RP7HnpWJQ1FetG7HZ4BYQ77MByi9Wf8cTI2QQvTP/VQAT0hyK+FnPIQXaJW/ygd7 -34adVuMy43CHt/g69+NuZRR8u3a3F/FCjG8qNGQQNRSMhfZXv/NcVZ2tAxDzAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJsmC4qYqbsduR8c4xpA -M+2OF4irMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAOZr2DusI -TaDwWbmR/rXYLk1raWnF0ob8o8KibMqNmBvS/GSblrRH+fTtb1I8tRP2HnFRO9pU -k8QdlBcjdpqY9Zu4scWrzau9GskAE+Djx1qnIXHrCCvshVwIgDMlDx9SQcSbIlgB -JFXvmqbO5IWjGTNNfj8EMhXV/GNfi9yZKxBjVqxgbvnbn2N7qN+rciiKqeKOneZs -flsWupSyI/LXMVveWKCLvvRq0tO05kAGeHotIEzNnSDdO/y585QTsGsY12vovxTM -hzCLZD+tWZPl9nzRK/COSpzDNBhNYjO9pjq2Px9JW2O0Aahc8JiTNVMusvIZf4cN -27GAYTjIRwGFsA== ------END CERTIFICATE----- diff --git a/src/pki/testdata/test_certificate_data.h b/src/pki/testdata/test_certificate_data.h deleted file mode 100644 index 7e35b37..0000000 --- a/src/pki/testdata/test_certificate_data.h +++ /dev/null @@ -1,619 +0,0 @@ -// Copyright 2012 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef NET_TEST_TEST_CERTIFICATE_DATA_H_ -#define NET_TEST_TEST_CERTIFICATE_DATA_H_ - -#include <stdint.h> - -namespace { - -// This is the SHA1 hash of the SubjectPublicKeyInfo of nist.der. -static const char kNistSPKIHash[] = - "\x15\x60\xde\x65\x4e\x03\x9f\xd0\x08\x82" - "\xa9\x6a\xc4\x65\x8e\x6f\x92\x06\x84\x35"; - -// Certificates for test data. They're obtained with: -// -// $ openssl s_client -connect [host]:443 -showcerts > /tmp/host.pem < /dev/null -// $ openssl x509 -inform PEM -outform DER < /tmp/host.pem > /tmp/host.der -// $ xxd -i /tmp/host.der -// -// TODO(wtc): move these certificates to data files in the -// src/net/data/ssl/certificates directory. - -// Google's 2009 cert. Lacks a SubjectAltName, but contains www.google.com in -// the Subject CN field. - -[[maybe_unused]] unsigned char google_der[] = { - 0x30, 0x82, 0x03, 0x21, 0x30, 0x82, 0x02, 0x8a, 0xa0, 0x03, 0x02, 0x01, - 0x02, 0x02, 0x10, 0x01, 0x2a, 0x39, 0x76, 0x0d, 0x3f, 0x4f, 0xc9, 0x0b, - 0xe7, 0xbd, 0x2b, 0xcf, 0x95, 0x2e, 0x7a, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4c, - 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x5a, - 0x41, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, - 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x50, 0x74, 0x79, 0x29, 0x20, - 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x13, 0x0d, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x47, - 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x39, 0x30, 0x33, - 0x32, 0x37, 0x32, 0x32, 0x32, 0x30, 0x30, 0x37, 0x5a, 0x17, 0x0d, 0x31, - 0x30, 0x30, 0x33, 0x32, 0x37, 0x32, 0x32, 0x32, 0x30, 0x30, 0x37, 0x5a, - 0x30, 0x68, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, - 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, - 0x13, 0x0a, 0x43, 0x61, 0x6c, 0x69, 0x66, 0x6f, 0x72, 0x6e, 0x69, 0x61, - 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0d, 0x4d, - 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x69, 0x65, 0x77, - 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0a, 0x47, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x17, 0x30, - 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0e, 0x77, 0x77, 0x77, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x81, - 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, - 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, - 0x81, 0x81, 0x00, 0xd6, 0xb9, 0xe1, 0xad, 0xb8, 0x61, 0x0b, 0x1f, 0x4e, - 0xb6, 0x3c, 0x09, 0x3d, 0xab, 0xe8, 0xe3, 0x2b, 0xb6, 0xe8, 0xa4, 0x3a, - 0x78, 0x2f, 0xd3, 0x51, 0x20, 0x22, 0x45, 0x95, 0xd8, 0x00, 0x91, 0x33, - 0x9a, 0xa7, 0xa2, 0x48, 0xea, 0x30, 0x57, 0x26, 0x97, 0x66, 0xc7, 0x5a, - 0xef, 0xf1, 0x9b, 0x0c, 0x3f, 0xe1, 0xb9, 0x7f, 0x7b, 0xc3, 0xc7, 0xcc, - 0xaf, 0x9c, 0xd0, 0x1f, 0x3c, 0x81, 0x15, 0x10, 0x58, 0xfc, 0x06, 0xb3, - 0xbf, 0xbc, 0x9c, 0x02, 0xb9, 0x51, 0xdc, 0xfb, 0xa6, 0xb9, 0x17, 0x42, - 0xe6, 0x46, 0xe7, 0x22, 0xcf, 0x6c, 0x27, 0x10, 0xfe, 0x54, 0xe6, 0x92, - 0x6c, 0x0c, 0x60, 0x76, 0x9a, 0xce, 0xf8, 0x7f, 0xac, 0xb8, 0x5a, 0x08, - 0x4a, 0xdc, 0xb1, 0x64, 0xbd, 0xa0, 0x74, 0x41, 0xb2, 0xac, 0x8f, 0x86, - 0x9d, 0x1a, 0xde, 0x58, 0x09, 0xfd, 0x6c, 0x0a, 0x25, 0xe0, 0x79, 0x02, - 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xe7, 0x30, 0x81, 0xe4, 0x30, 0x28, - 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, - 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, - 0xf8, 0x42, 0x04, 0x01, 0x30, 0x36, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, - 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27, 0x86, 0x25, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x74, 0x68, - 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, - 0x77, 0x74, 0x65, 0x53, 0x47, 0x43, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, - 0x30, 0x72, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, - 0x04, 0x66, 0x30, 0x64, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, - 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, - 0x05, 0x07, 0x30, 0x02, 0x86, 0x32, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x5f, 0x53, 0x47, - 0x43, 0x5f, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0c, 0x06, 0x03, - 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, - 0x00, 0x03, 0x81, 0x81, 0x00, 0x39, 0xb6, 0xfb, 0x11, 0xbc, 0x33, 0x2c, - 0xc3, 0x90, 0x48, 0xe3, 0x6e, 0xc3, 0x9b, 0x38, 0xb1, 0x42, 0xd1, 0x00, - 0x09, 0x58, 0x63, 0xa0, 0xe1, 0x98, 0x1c, 0x85, 0xf2, 0xef, 0x10, 0x1d, - 0x60, 0x4e, 0x51, 0x09, 0x62, 0xf5, 0x05, 0xbd, 0x9d, 0x4f, 0x87, 0x6c, - 0x98, 0x72, 0x07, 0x80, 0xc3, 0x59, 0x48, 0x14, 0xe2, 0xd6, 0xef, 0xd0, - 0x8f, 0x33, 0x6a, 0x68, 0x31, 0xfa, 0xb7, 0xbb, 0x85, 0xcc, 0xf7, 0xc7, - 0x47, 0x7b, 0x67, 0x93, 0x3c, 0xc3, 0x16, 0x51, 0x9b, 0x6f, 0x87, 0x20, - 0xfd, 0x67, 0x4c, 0x2b, 0xea, 0x6a, 0x49, 0xdb, 0x11, 0xd1, 0xbd, 0xd7, - 0x95, 0x22, 0x43, 0x7a, 0x06, 0x7b, 0x4e, 0xf6, 0x37, 0x8e, 0xa2, 0xb9, - 0xcf, 0x1f, 0xa5, 0xd2, 0xbd, 0x3b, 0x04, 0x97, 0x39, 0xb3, 0x0f, 0xfa, - 0x38, 0xb5, 0xaf, 0x55, 0x20, 0x88, 0x60, 0x93, 0xf2, 0xde, 0xdb, 0xff, - 0xdf}; - -// webkit.org's 2008 cert. Contains a SubjectAltName field with *.webkit.org and -// webkit.org. The Subject CN field contains *.webkit.org. - -[[maybe_unused]] unsigned char webkit_der[] = { - 0x30, 0x82, 0x05, 0x0d, 0x30, 0x82, 0x03, 0xf5, 0xa0, 0x03, 0x02, 0x01, - 0x02, 0x02, 0x03, 0x43, 0xdd, 0x63, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0xca, - 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, - 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, - 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, - 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, - 0x64, 0x61, 0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, - 0x0a, 0x13, 0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, - 0x6f, 0x6d, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x33, 0x30, 0x31, - 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x31, 0x30, 0x30, 0x2e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x27, - 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x53, 0x65, 0x63, - 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x05, - 0x13, 0x08, 0x30, 0x37, 0x39, 0x36, 0x39, 0x32, 0x38, 0x37, 0x30, 0x1e, - 0x17, 0x0d, 0x30, 0x38, 0x30, 0x33, 0x31, 0x38, 0x32, 0x33, 0x33, 0x35, - 0x31, 0x39, 0x5a, 0x17, 0x0d, 0x31, 0x31, 0x30, 0x33, 0x31, 0x38, 0x32, - 0x33, 0x33, 0x35, 0x31, 0x39, 0x5a, 0x30, 0x79, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, - 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x43, 0x61, 0x6c, 0x69, - 0x66, 0x6f, 0x72, 0x6e, 0x69, 0x61, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, - 0x55, 0x04, 0x07, 0x13, 0x09, 0x43, 0x75, 0x70, 0x65, 0x72, 0x74, 0x69, - 0x6e, 0x6f, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, - 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, - 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x61, - 0x63, 0x20, 0x4f, 0x53, 0x20, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x31, 0x15, - 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0c, 0x2a, 0x2e, 0x77, - 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2e, 0x6f, 0x72, 0x67, 0x30, 0x81, 0x9f, - 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, - 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, - 0x81, 0x00, 0xa7, 0x62, 0x79, 0x41, 0xda, 0x28, 0xf2, 0xc0, 0x4f, 0xe0, - 0x25, 0xaa, 0xa1, 0x2e, 0x3b, 0x30, 0x94, 0xb5, 0xc9, 0x26, 0x3a, 0x1b, - 0xe2, 0xd0, 0xcc, 0xa2, 0x95, 0xe2, 0x91, 0xc0, 0xf0, 0x40, 0x9e, 0x27, - 0x6e, 0xbd, 0x6e, 0xde, 0x7c, 0xb6, 0x30, 0x5c, 0xb8, 0x9b, 0x01, 0x2f, - 0x92, 0x04, 0xa1, 0xef, 0x4a, 0xb1, 0x6c, 0xb1, 0x7e, 0x8e, 0xcd, 0xa6, - 0xf4, 0x40, 0x73, 0x1f, 0x2c, 0x96, 0xad, 0xff, 0x2a, 0x6d, 0x0e, 0xba, - 0x52, 0x84, 0x83, 0xb0, 0x39, 0xee, 0xc9, 0x39, 0xdc, 0x1e, 0x34, 0xd0, - 0xd8, 0x5d, 0x7a, 0x09, 0xac, 0xa9, 0xee, 0xca, 0x65, 0xf6, 0x85, 0x3a, - 0x6b, 0xee, 0xe4, 0x5c, 0x5e, 0xf8, 0xda, 0xd1, 0xce, 0x88, 0x47, 0xcd, - 0x06, 0x21, 0xe0, 0xb9, 0x4b, 0xe4, 0x07, 0xcb, 0x57, 0xdc, 0xca, 0x99, - 0x54, 0xf7, 0x0e, 0xd5, 0x17, 0x95, 0x05, 0x2e, 0xe9, 0xb1, 0x02, 0x03, - 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xce, 0x30, 0x82, 0x01, 0xca, 0x30, - 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x0b, - 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x05, 0xa0, 0x30, - 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, - 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, - 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x57, 0x06, 0x03, 0x55, 0x1d, - 0x1f, 0x04, 0x50, 0x30, 0x4e, 0x30, 0x4c, 0xa0, 0x4a, 0xa0, 0x48, 0x86, - 0x46, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x67, 0x6f, 0x64, - 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x67, 0x6f, 0x64, 0x61, - 0x64, 0x64, 0x79, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x69, - 0x73, 0x73, 0x75, 0x69, 0x6e, 0x67, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, - 0x52, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4b, 0x30, 0x49, 0x30, 0x47, - 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01, 0x86, 0xfd, 0x6d, 0x01, 0x07, 0x17, - 0x02, 0x30, 0x38, 0x30, 0x36, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, - 0x07, 0x02, 0x01, 0x16, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, - 0x7f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, - 0x73, 0x30, 0x71, 0x30, 0x23, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, - 0x07, 0x30, 0x01, 0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, - 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, - 0x05, 0x07, 0x30, 0x02, 0x86, 0x3e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x2f, 0x67, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x65, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x1d, 0x06, 0x03, - 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x48, 0xdf, 0x60, 0x32, 0xcc, - 0x89, 0x01, 0xb6, 0xdc, 0x2f, 0xe3, 0x73, 0xb5, 0x9c, 0x16, 0x58, 0x32, - 0x68, 0xa9, 0xc3, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, - 0x30, 0x16, 0x80, 0x14, 0xfd, 0xac, 0x61, 0x32, 0x93, 0x6c, 0x45, 0xd6, - 0xe2, 0xee, 0x85, 0x5f, 0x9a, 0xba, 0xe7, 0x76, 0x99, 0x68, 0xcc, 0xe7, - 0x30, 0x23, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x1c, 0x30, 0x1a, 0x82, - 0x0c, 0x2a, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2e, 0x6f, 0x72, - 0x67, 0x82, 0x0a, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2e, 0x6f, 0x72, - 0x67, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, - 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x1e, 0x6a, 0xe7, - 0xe0, 0x4f, 0xe7, 0x4d, 0xd0, 0x69, 0x7c, 0xf8, 0x8f, 0x99, 0xb4, 0x18, - 0x95, 0x36, 0x24, 0x0f, 0x0e, 0xa3, 0xea, 0x34, 0x37, 0xf4, 0x7d, 0xd5, - 0x92, 0x35, 0x53, 0x72, 0x76, 0x3f, 0x69, 0xf0, 0x82, 0x56, 0xe3, 0x94, - 0x7a, 0x1d, 0x1a, 0x81, 0xaf, 0x9f, 0xc7, 0x43, 0x01, 0x64, 0xd3, 0x7c, - 0x0d, 0xc8, 0x11, 0x4e, 0x4a, 0xe6, 0x1a, 0xc3, 0x01, 0x74, 0xe8, 0x35, - 0x87, 0x5c, 0x61, 0xaa, 0x8a, 0x46, 0x06, 0xbe, 0x98, 0x95, 0x24, 0x9e, - 0x01, 0xe3, 0xe6, 0xa0, 0x98, 0xee, 0x36, 0x44, 0x56, 0x8d, 0x23, 0x9c, - 0x65, 0xea, 0x55, 0x6a, 0xdf, 0x66, 0xee, 0x45, 0xe8, 0xa0, 0xe9, 0x7d, - 0x9a, 0xba, 0x94, 0xc5, 0xc8, 0xc4, 0x4b, 0x98, 0xff, 0x9a, 0x01, 0x31, - 0x6d, 0xf9, 0x2b, 0x58, 0xe7, 0xe7, 0x2a, 0xc5, 0x4d, 0xbb, 0xbb, 0xcd, - 0x0d, 0x70, 0xe1, 0xad, 0x03, 0xf5, 0xfe, 0xf4, 0x84, 0x71, 0x08, 0xd2, - 0xbc, 0x04, 0x7b, 0x26, 0x1c, 0xa8, 0x0f, 0x9c, 0xd8, 0x12, 0x6a, 0x6f, - 0x2b, 0x67, 0xa1, 0x03, 0x80, 0x9a, 0x11, 0x0b, 0xe9, 0xe0, 0xb5, 0xb3, - 0xb8, 0x19, 0x4e, 0x0c, 0xa4, 0xd9, 0x2b, 0x3b, 0xc2, 0xca, 0x20, 0xd3, - 0x0c, 0xa4, 0xff, 0x93, 0x13, 0x1f, 0xfc, 0xba, 0x94, 0x93, 0x8c, 0x64, - 0x15, 0x2e, 0x28, 0xa9, 0x55, 0x8c, 0x2c, 0x48, 0xd3, 0xd3, 0xc1, 0x50, - 0x69, 0x19, 0xe8, 0x34, 0xd3, 0xf1, 0x04, 0x9f, 0x0a, 0x7a, 0x21, 0x87, - 0xbf, 0xb9, 0x59, 0x37, 0x2e, 0xf4, 0x71, 0xa5, 0x3e, 0xbe, 0xcd, 0x70, - 0x83, 0x18, 0xf8, 0x8a, 0x72, 0x85, 0x45, 0x1f, 0x08, 0x01, 0x6f, 0x37, - 0xf5, 0x2b, 0x7b, 0xea, 0xb9, 0x8b, 0xa3, 0xcc, 0xfd, 0x35, 0x52, 0xdd, - 0x66, 0xde, 0x4f, 0x30, 0xc5, 0x73, 0x81, 0xb6, 0xe8, 0x3c, 0xd8, 0x48, - 0x8a}; - -// thawte.com 2008 Extended Validation cert. Lacks a SubjectAltName, but -// contains www.thawte.com in the Subject CN field. - -[[maybe_unused]] unsigned char thawte_der[] = { - 0x30, 0x82, 0x04, 0xa5, 0x30, 0x82, 0x03, 0x8d, 0xa0, 0x03, 0x02, 0x01, - 0x02, 0x02, 0x10, 0x17, 0x76, 0x05, 0x88, 0x95, 0x58, 0xee, 0xbb, 0x00, - 0xda, 0x10, 0xe5, 0xf0, 0xf3, 0x9c, 0xf0, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, - 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, - 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, - 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x61, 0x74, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x20, 0x28, 0x63, 0x29, 0x30, 0x36, - 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x74, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, - 0x30, 0x38, 0x31, 0x31, 0x31, 0x39, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x5a, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x31, 0x31, 0x37, 0x32, 0x33, 0x35, - 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xc7, 0x31, 0x13, 0x30, 0x11, 0x06, - 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x3c, 0x02, 0x01, 0x03, - 0x13, 0x02, 0x55, 0x53, 0x31, 0x19, 0x30, 0x17, 0x06, 0x0b, 0x2b, 0x06, - 0x01, 0x04, 0x01, 0x82, 0x37, 0x3c, 0x02, 0x01, 0x02, 0x14, 0x08, 0x44, - 0x65, 0x6c, 0x61, 0x77, 0x61, 0x72, 0x65, 0x31, 0x1b, 0x30, 0x19, 0x06, - 0x03, 0x55, 0x04, 0x0f, 0x13, 0x12, 0x56, 0x31, 0x2e, 0x30, 0x2c, 0x20, - 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x20, 0x35, 0x2e, 0x28, 0x62, 0x29, - 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x14, 0x0a, 0x54, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x10, 0x30, - 0x0e, 0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x07, 0x33, 0x38, 0x39, 0x38, - 0x32, 0x36, 0x31, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x13, 0x0a, 0x43, 0x61, 0x6c, 0x69, 0x66, 0x6f, 0x72, 0x6e, 0x69, - 0x61, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x07, 0x14, 0x0d, - 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x69, 0x65, - 0x77, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x14, 0x0e, - 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, - 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, - 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xe7, 0x89, 0x68, 0xb5, 0x6e, - 0x1d, 0x38, 0x19, 0xf6, 0x2d, 0x61, 0xc2, 0x00, 0xba, 0x6e, 0xab, 0x66, - 0x92, 0xd6, 0x85, 0x87, 0x2d, 0xd5, 0xa8, 0x58, 0xa9, 0x7a, 0x75, 0x27, - 0x9d, 0xed, 0x9e, 0xfe, 0x06, 0x71, 0x70, 0x2d, 0x21, 0x70, 0x4c, 0x3e, - 0x9c, 0xb6, 0xd5, 0x5d, 0x44, 0x92, 0xb4, 0xe0, 0xee, 0x7c, 0x0a, 0x50, - 0x4c, 0x0d, 0x67, 0x98, 0xaa, 0x01, 0x0e, 0x37, 0xa3, 0x2a, 0xef, 0xe6, - 0xe0, 0x11, 0x7b, 0xee, 0xb0, 0xa2, 0xb4, 0x32, 0x64, 0xa7, 0x0d, 0xda, - 0x6c, 0x15, 0xf8, 0xc5, 0xa5, 0x5a, 0x2c, 0xfc, 0xc9, 0xa6, 0x3c, 0x88, - 0x88, 0xbf, 0xdf, 0xa7, 0x38, 0xf0, 0x78, 0xed, 0x81, 0x93, 0x29, 0x0c, - 0xae, 0xc7, 0xab, 0x51, 0x21, 0x5e, 0xca, 0x95, 0xe5, 0x48, 0x52, 0x41, - 0xb6, 0x18, 0x60, 0x04, 0x19, 0x6f, 0x3d, 0x80, 0x14, 0xd3, 0xaf, 0x23, - 0x03, 0x10, 0x95, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x49, - 0x30, 0x82, 0x01, 0x45, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, - 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x39, 0x06, 0x03, 0x55, 0x1d, - 0x1f, 0x04, 0x32, 0x30, 0x30, 0x30, 0x2e, 0xa0, 0x2c, 0xa0, 0x2a, 0x86, - 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, - 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x45, 0x56, 0x43, 0x41, 0x32, 0x30, 0x30, - 0x36, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d, 0x20, - 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01, - 0x86, 0xf8, 0x45, 0x01, 0x07, 0x30, 0x01, 0x30, 0x28, 0x30, 0x26, 0x06, - 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, - 0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, - 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, - 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x1f, 0x06, 0x03, - 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xcd, 0x32, 0xe2, - 0xf2, 0x5d, 0x25, 0x47, 0x02, 0xaa, 0x8f, 0x79, 0x4b, 0x32, 0xee, 0x03, - 0x99, 0xfd, 0x30, 0x49, 0xd1, 0x30, 0x76, 0x06, 0x08, 0x2b, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x6a, 0x30, 0x68, 0x30, 0x22, 0x06, - 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x42, 0x06, - 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x36, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, - 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x54, 0x68, 0x61, 0x77, - 0x74, 0x65, 0x5f, 0x45, 0x56, 0x5f, 0x43, 0x41, 0x5f, 0x32, 0x30, 0x30, - 0x36, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, - 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, - 0x00, 0xb2, 0xa0, 0x96, 0xdd, 0xec, 0x04, 0x38, 0x6b, 0xc3, 0x7a, 0xad, - 0x23, 0x44, 0x91, 0xe5, 0x62, 0x8c, 0xb1, 0xf6, 0x9c, 0x03, 0x21, 0x1f, - 0xef, 0x03, 0xd9, 0xca, 0x63, 0xb2, 0xf8, 0xdb, 0x5a, 0x93, 0xc2, 0xcc, - 0xf1, 0x7c, 0x6f, 0xeb, 0x0f, 0x51, 0x7b, 0x4b, 0xe7, 0xb5, 0xfc, 0xbc, - 0x9b, 0x87, 0x48, 0xcc, 0x5b, 0xf9, 0xc8, 0x66, 0xa4, 0x40, 0xac, 0xe9, - 0x42, 0x5d, 0xed, 0xf3, 0x53, 0x13, 0xe7, 0xbd, 0x6e, 0x7f, 0x50, 0x53, - 0x64, 0xb3, 0x95, 0xf1, 0x42, 0x4f, 0x36, 0x54, 0xb4, 0x1e, 0x7f, 0x18, - 0x37, 0x39, 0x3b, 0x06, 0x5b, 0xe5, 0x13, 0xd9, 0x57, 0xbc, 0xd5, 0x68, - 0xe3, 0x71, 0x5f, 0x5f, 0x2b, 0xf5, 0xa6, 0xc2, 0x8f, 0x67, 0x81, 0x3a, - 0x44, 0x63, 0x8c, 0x36, 0xfa, 0xa8, 0xed, 0xfd, 0xd7, 0x5e, 0xa2, 0x9f, - 0xb0, 0x9d, 0x47, 0x86, 0xfb, 0x71, 0x60, 0x8e, 0xc8, 0xd3, 0x45, 0x19, - 0xb7, 0xda, 0xcd, 0x9e, 0xea, 0x70, 0x10, 0x87, 0x37, 0x10, 0xdd, 0x2c, - 0x11, 0xdf, 0xee, 0x02, 0x21, 0xa6, 0x75, 0xe6, 0xd6, 0x9f, 0x54, 0x72, - 0x61, 0xe6, 0x5c, 0x1e, 0x6e, 0x16, 0xf6, 0x8e, 0xb8, 0xfc, 0x47, 0x80, - 0x05, 0x4b, 0xf7, 0x2d, 0x02, 0xee, 0x50, 0x26, 0xd1, 0x48, 0x01, 0x60, - 0xdc, 0x3c, 0xa7, 0xdb, 0xeb, 0xca, 0x8b, 0xa6, 0xff, 0x9e, 0x47, 0x5d, - 0x87, 0x40, 0xf8, 0xd2, 0x82, 0xd7, 0x13, 0x64, 0x0e, 0xd4, 0xb3, 0x29, - 0x22, 0xa7, 0xe0, 0xc8, 0xcd, 0x8c, 0x4d, 0xf5, 0x11, 0x21, 0x26, 0x02, - 0x43, 0x33, 0x8e, 0xa9, 0x3f, 0x91, 0xd4, 0x05, 0x97, 0xc9, 0xd3, 0x42, - 0x6b, 0x05, 0x99, 0xf6, 0x16, 0x71, 0x67, 0x65, 0xc7, 0x96, 0xdf, 0x2a, - 0xd7, 0x54, 0x63, 0x25, 0xc0, 0x28, 0xf7, 0x1c, 0xee, 0xcd, 0x8b, 0xe4, - 0x9d, 0x32, 0xa3, 0x81, 0x55}; - -// DER-encoded X.509 DistinguishedNames. -// -// To output the subject or issuer of a certificate: -// -// openssl asn1parse -i -inform DER -in <cert> -// -// The output will contain -// SEQUENCE [This is the issuer name] -// ... -// SEQUENCE [This is the validity period] -// UTCTIME (or GENERALTIME) -// UTCTIME -// SEQUENCE [This is the subject] -// ... -// -// The OFFSET is the first column before the column, e.g. for '21:d=2', the -// offset is 21 for the SEQUENCE you're interested in. -// The LENGTH is 'hl + l'. -// -// To generate the table, then use the following for a DER-encoded -// certificate: -// -// xxd -i -s $OFFSET -l $LENGTH <cert> -// -// For PEM certificates, convert them to DER before, as in: -// -// openssl x509 -inform PEM -outform DER -in <cert> | -// xxd -i -s $OFFSET -l $LENGTH -// - -// 0:d=0 hl=2 l= 95 cons: SEQUENCE -// 2:d=1 hl=2 l= 11 cons: SET -// 4:d=2 hl=2 l= 9 cons: SEQUENCE -// 6:d=3 hl=2 l= 3 prim: OBJECT :countryName -// 11:d=3 hl=2 l= 2 prim: PRINTABLESTRING :US -// 15:d=1 hl=2 l= 23 cons: SET -// 17:d=2 hl=2 l= 21 cons: SEQUENCE -// 19:d=3 hl=2 l= 3 prim: OBJECT :organizationName -// 24:d=3 hl=2 l= 14 prim: PRINTABLESTRING :VeriSign, Inc. -// 40:d=1 hl=2 l= 55 cons: SET -// 42:d=2 hl=2 l= 53 cons: SEQUENCE -// 44:d=3 hl=2 l= 3 prim: OBJECT :organizationalUnitName -// 49:d=3 hl=2 l= 46 prim: PRINTABLESTRING : -// Class 1 Public Primary Certification Authority -[[maybe_unused]] const uint8_t VerisignDN[] = { - 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, - 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, - 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, - 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2e, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x20, 0x31, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, - 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79}; - -// 0:d=0 hl=2 l= 125 cons: SEQUENCE -// 2:d=1 hl=2 l= 11 cons: SET -// 4:d=2 hl=2 l= 9 cons: SEQUENCE -// 6:d=3 hl=2 l= 3 prim: OBJECT :countryName -// 11:d=3 hl=2 l= 2 prim: PRINTABLESTRING :IL -// 15:d=1 hl=2 l= 22 cons: SET -// 17:d=2 hl=2 l= 20 cons: SEQUENCE -// 19:d=3 hl=2 l= 3 prim: OBJECT :organizationName -// 24:d=3 hl=2 l= 13 prim: PRINTABLESTRING :StartCom Ltd. -// 39:d=1 hl=2 l= 43 cons: SET -// 41:d=2 hl=2 l= 41 cons: SEQUENCE -// 43:d=3 hl=2 l= 3 prim: OBJECT :organizationalUnitName -// 48:d=3 hl=2 l= 34 prim: PRINTABLESTRING : -// Secure Digital Certificate Signing -// 84:d=1 hl=2 l= 41 cons: SET -// 86:d=2 hl=2 l= 39 cons: SEQUENCE -// 88:d=3 hl=2 l= 3 prim: OBJECT :commonName -// 93:d=3 hl=2 l= 32 prim: PRINTABLESTRING : -// StartCom Certification Authority -[[maybe_unused]] const uint8_t StartComDN[] = { - 0x30, 0x7d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, - 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, - 0x13, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, - 0x74, 0x64, 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, - 0x13, 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, 0x67, - 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, - 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79}; - -// 0:d=0 hl=3 l= 174 cons: SEQUENCE -// 3:d=1 hl=2 l= 11 cons: SET -// 5:d=2 hl=2 l= 9 cons: SEQUENCE -// 7:d=3 hl=2 l= 3 prim: OBJECT :countryName -// 12:d=3 hl=2 l= 2 prim: PRINTABLESTRING :US -// 16:d=1 hl=2 l= 11 cons: SET -// 18:d=2 hl=2 l= 9 cons: SEQUENCE -// 20:d=3 hl=2 l= 3 prim: OBJECT :stateOrProvinceName -// 25:d=3 hl=2 l= 2 prim: PRINTABLESTRING :UT -// 29:d=1 hl=2 l= 23 cons: SET -// 31:d=2 hl=2 l= 21 cons: SEQUENCE -// 33:d=3 hl=2 l= 3 prim: OBJECT :localityName -// 38:d=3 hl=2 l= 14 prim: PRINTABLESTRING :Salt Lake City -// 54:d=1 hl=2 l= 30 cons: SET -// 56:d=2 hl=2 l= 28 cons: SEQUENCE -// 58:d=3 hl=2 l= 3 prim: OBJECT :organizationName -// 63:d=3 hl=2 l= 21 prim: PRINTABLESTRING :The USERTRUST Network -// 86:d=1 hl=2 l= 33 cons: SET -// 88:d=2 hl=2 l= 31 cons: SEQUENCE -// 90:d=3 hl=2 l= 3 prim: OBJECT :organizationalUnitName -// 95:d=3 hl=2 l= 24 prim: PRINTABLESTRING :http://www.usertrust.com -//121:d=1 hl=2 l= 54 cons: SET -//123:d=2 hl=2 l= 52 cons: SEQUENCE -//125:d=3 hl=2 l= 3 prim: OBJECT :commonName -//130:d=3 hl=2 l= 45 prim: PRINTABLESTRING : -// UTN-USERFirst-Client Authentication and Email -[[maybe_unused]] const uint8_t UserTrustDN[] = { - 0x30, 0x81, 0xae, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x55, 0x53, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, - 0x08, 0x13, 0x02, 0x55, 0x54, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, - 0x04, 0x07, 0x13, 0x0e, 0x53, 0x61, 0x6c, 0x74, 0x20, 0x4c, 0x61, 0x6b, - 0x65, 0x20, 0x43, 0x69, 0x74, 0x79, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, - 0x55, 0x04, 0x0a, 0x13, 0x15, 0x54, 0x68, 0x65, 0x20, 0x55, 0x53, 0x45, - 0x52, 0x54, 0x52, 0x55, 0x53, 0x54, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, - 0x6d, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d, - 0x55, 0x54, 0x4e, 0x2d, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, - 0x74, 0x2d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x41, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x45, 0x6d, 0x61, 0x69, 0x6c}; - -// 0:d=0 hl=3 l= 190 cons: SEQUENCE -// 3:d=1 hl=2 l= 63 cons: SET -// 5:d=2 hl=2 l= 61 cons: SEQUENCE -// 7:d=3 hl=2 l= 3 prim: OBJECT :commonName -// 12:d=3 hl=2 l= 54 prim: UTF8STRING : -// TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı -// 68:d=1 hl=2 l= 11 cons: SET -// 70:d=2 hl=2 l= 9 cons: SEQUENCE -// 72:d=3 hl=2 l= 3 prim: OBJECT :countryName -// 77:d=3 hl=2 l= 2 prim: PRINTABLESTRING :TR -// 81:d=1 hl=2 l= 15 cons: SET -// 83:d=2 hl=2 l= 13 cons: SEQUENCE -// 85:d=3 hl=2 l= 3 prim: OBJECT :localityName -// 90:d=3 hl=2 l= 6 prim: UTF8STRING :Ankara -// 98:d=1 hl=2 l= 93 cons: SET -//100:d=2 hl=2 l= 91 cons: SEQUENCE -//102:d=3 hl=2 l= 3 prim: OBJECT :organizationName -//107:d=3 hl=2 l= 84 prim: UTF8STRING : -// TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. -// (c) Kasım 2005 -[[maybe_unused]] const uint8_t TurkTrustDN[] = { - 0x30, 0x81, 0xbe, 0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x0c, 0x36, 0x54, 0xc3, 0x9c, 0x52, 0x4b, 0x54, 0x52, 0x55, 0x53, 0x54, - 0x20, 0x45, 0x6c, 0x65, 0x6b, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x6b, 0x20, - 0x53, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x6b, 0x61, 0x20, 0x48, 0x69, - 0x7a, 0x6d, 0x65, 0x74, 0x20, 0x53, 0x61, 0xc4, 0x9f, 0x6c, 0x61, 0x79, - 0xc4, 0xb1, 0x63, 0xc4, 0xb1, 0x73, 0xc4, 0xb1, 0x31, 0x0b, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x54, 0x52, 0x31, 0x0f, 0x30, - 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x41, 0x6e, 0x6b, 0x61, - 0x72, 0x61, 0x31, 0x5d, 0x30, 0x5b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, - 0x54, 0x54, 0xc3, 0x9c, 0x52, 0x4b, 0x54, 0x52, 0x55, 0x53, 0x54, 0x20, - 0x42, 0x69, 0x6c, 0x67, 0x69, 0x20, 0xc4, 0xb0, 0x6c, 0x65, 0x74, 0x69, - 0xc5, 0x9f, 0x69, 0x6d, 0x20, 0x76, 0x65, 0x20, 0x42, 0x69, 0x6c, 0x69, - 0xc5, 0x9f, 0x69, 0x6d, 0x20, 0x47, 0xc3, 0xbc, 0x76, 0x65, 0x6e, 0x6c, - 0x69, 0xc4, 0x9f, 0x69, 0x20, 0x48, 0x69, 0x7a, 0x6d, 0x65, 0x74, 0x6c, - 0x65, 0x72, 0x69, 0x20, 0x41, 0x2e, 0xc5, 0x9e, 0x2e, 0x20, 0x28, 0x63, - 0x29, 0x20, 0x4b, 0x61, 0x73, 0xc4, 0xb1, 0x6d, 0x20, 0x32, 0x30, 0x30, - 0x35, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x35, 0x31, 0x31, 0x30, 0x37, 0x31, - 0x30, 0x30, 0x37, 0x35, 0x37}; - -// 33:d=2 hl=3 l= 207 cons: SEQUENCE -// 36:d=3 hl=2 l= 11 cons: SET -// 38:d=4 hl=2 l= 9 cons: SEQUENCE -// 40:d=5 hl=2 l= 3 prim: OBJECT :countryName -// 45:d=5 hl=2 l= 2 prim: PRINTABLESTRING :AT -// 49:d=3 hl=3 l= 139 cons: SET -// 52:d=4 hl=3 l= 136 cons: SEQUENCE -// 55:d=5 hl=2 l= 3 prim: OBJECT :organizationName -// 60:d=5 hl=3 l= 128 prim: BMPSTRING : -// A-Trust Ges. für Sicherheitssysteme im elektr. Datenverkehr GmbH -//191:d=3 hl=2 l= 24 cons: SET -//193:d=4 hl=2 l= 22 cons: SEQUENCE -//195:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName -//200:d=5 hl=2 l= 15 prim: PRINTABLESTRING :A-Trust-Qual-01 -//217:d=3 hl=2 l= 24 cons: SET -//219:d=4 hl=2 l= 22 cons: SEQUENCE -//221:d=5 hl=2 l= 3 prim: OBJECT :commonName -//226:d=5 hl=2 l= 15 prim: PRINTABLESTRING :A-Trust-Qual-01 -[[maybe_unused]] const uint8_t ATrustQual01DN[] = { - 0x30, 0x81, 0xcf, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x41, 0x54, 0x31, 0x81, 0x8b, 0x30, 0x81, 0x88, 0x06, 0x03, - 0x55, 0x04, 0x0a, 0x1e, 0x81, 0x80, 0x00, 0x41, 0x00, 0x2d, 0x00, 0x54, - 0x00, 0x72, 0x00, 0x75, 0x00, 0x73, 0x00, 0x74, 0x00, 0x20, 0x00, 0x47, - 0x00, 0x65, 0x00, 0x73, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x66, 0x00, 0xfc, - 0x00, 0x72, 0x00, 0x20, 0x00, 0x53, 0x00, 0x69, 0x00, 0x63, 0x00, 0x68, - 0x00, 0x65, 0x00, 0x72, 0x00, 0x68, 0x00, 0x65, 0x00, 0x69, 0x00, 0x74, - 0x00, 0x73, 0x00, 0x73, 0x00, 0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, - 0x00, 0x6d, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x20, - 0x00, 0x65, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x6b, 0x00, 0x74, 0x00, 0x72, - 0x00, 0x2e, 0x00, 0x20, 0x00, 0x44, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, - 0x00, 0x6e, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6b, 0x00, 0x65, - 0x00, 0x68, 0x00, 0x72, 0x00, 0x20, 0x00, 0x47, 0x00, 0x6d, 0x00, 0x62, - 0x00, 0x48, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, - 0x0f, 0x41, 0x2d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x2d, 0x51, 0x75, 0x61, - 0x6c, 0x2d, 0x30, 0x31, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x13, 0x0f, 0x41, 0x2d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x2d, 0x51, - 0x75, 0x61, 0x6c, 0x2d, 0x30, 0x31, 0x30, 0x1e, 0x17}; - -// 34:d=2 hl=3 l= 180 cons: SEQUENCE -// 37:d=3 hl=2 l= 20 cons: SET -// 39:d=4 hl=2 l= 18 cons: SEQUENCE -// 41:d=5 hl=2 l= 3 prim: OBJECT :organizationName -// 46:d=5 hl=2 l= 11 prim: PRINTABLESTRING :Entrust.net -// 59:d=3 hl=2 l= 64 cons: SET -// 61:d=4 hl=2 l= 62 cons: SEQUENCE -// 63:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName -// 68:d=5 hl=2 l= 55 prim: T61STRING : -// www.entrust.net/CPS_2048 incorp. by ref. (limits liab.) -//125:d=3 hl=2 l= 37 cons: SET -//127:d=4 hl=2 l= 35 cons: SEQUENCE -//129:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName -//134:d=5 hl=2 l= 28 prim: PRINTABLESTRING : -// (c) 1999 Entrust.net Limited -//164:d=3 hl=2 l= 51 cons: SET -//166:d=4 hl=2 l= 49 cons: SEQUENCE -//168:d=5 hl=2 l= 3 prim: OBJECT :commonName -//173:d=5 hl=2 l= 42 prim: PRINTABLESTRING : -// Entrust.net Certification Authority (2048) -[[maybe_unused]] const uint8_t EntrustDN[] = { - 0x30, 0x81, 0xb4, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, - 0x13, 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, - 0x74, 0x31, 0x40, 0x30, 0x3e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x14, 0x37, - 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, - 0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, - 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x20, 0x62, 0x79, 0x20, - 0x72, 0x65, 0x66, 0x2e, 0x20, 0x28, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, - 0x20, 0x6c, 0x69, 0x61, 0x62, 0x2e, 0x29, 0x31, 0x25, 0x30, 0x23, 0x06, - 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1c, 0x28, 0x63, 0x29, 0x20, 0x31, 0x39, - 0x39, 0x39, 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, - 0x65, 0x74, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x33, - 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2a, 0x45, 0x6e, 0x74, - 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x20, 0x43, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x28, 0x32, 0x30, - 0x34, 0x38, 0x29}; - -// 46:d=2 hl=2 l= 76 cons: SEQUENCE -// 48:d=3 hl=2 l= 11 cons: SET -// 50:d=4 hl=2 l= 9 cons: SEQUENCE -// 52:d=5 hl=2 l= 3 prim: OBJECT :countryName -// 57:d=5 hl=2 l= 2 prim: PRINTABLESTRING :ZA -// 61:d=3 hl=2 l= 37 cons: SET -// 63:d=4 hl=2 l= 35 cons: SEQUENCE -// 65:d=5 hl=2 l= 3 prim: OBJECT :organizationName -// 70:d=5 hl=2 l= 28 prim: PRINTABLESTRING : -// Thawte Consulting (Pty) Ltd. -// 100:d=3 hl=2 l= 22 cons: SET -// 102:d=4 hl=2 l= 20 cons: SEQUENCE -// 104:d=5 hl=2 l= 3 prim: OBJECT :commonName -// 109:d=5 hl=2 l= 13 prim: PRINTABLESTRING :Thawte SGC CA -[[maybe_unused]] const uint8_t ThawteDN[] = { - 0x30, 0x4C, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, - 0x02, 0x5A, 0x41, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0A, - 0x13, 0x1C, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x43, 0x6F, 0x6E, - 0x73, 0x75, 0x6C, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x28, 0x50, 0x74, 0x79, - 0x29, 0x20, 0x4C, 0x74, 0x64, 0x2E, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, - 0x55, 0x04, 0x03, 0x13, 0x0D, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, - 0x53, 0x47, 0x43, 0x20, 0x43, 0x41}; - -// 47:d=2 hl=2 l= 108 cons: SEQUENCE -// 49:d=3 hl=2 l= 11 cons: SET -// 51:d=4 hl=2 l= 9 cons: SEQUENCE -// 53:d=5 hl=2 l= 3 prim: OBJECT :countryName -// 58:d=5 hl=2 l= 2 prim: PRINTABLESTRING :US -// 62:d=3 hl=2 l= 22 cons: SET -// 64:d=4 hl=2 l= 20 cons: SEQUENCE -// 66:d=5 hl=2 l= 3 prim: OBJECT :stateOrProvinceName -// 71:d=5 hl=2 l= 13 prim: PRINTABLESTRING :Massachusetts -// 86:d=3 hl=2 l= 46 cons: SET -// 88:d=4 hl=2 l= 44 cons: SEQUENCE -// 90:d=5 hl=2 l= 3 prim: OBJECT :organizationName -// 95:d=5 hl=2 l= 37 prim: PRINTABLESTRING : -// Massachusetts Institute of Technology -// 134:d=3 hl=2 l= 21 cons: SET -// 136:d=4 hl=2 l= 19 cons: SEQUENCE -// 138:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName -// 143:d=5 hl=2 l= 12 prim: PRINTABLESTRING :Client CA v1 -[[maybe_unused]] const uint8_t MITDN[] = { - 0x30, 0x6C, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, - 0x04, 0x08, 0x13, 0x0D, 0x4D, 0x61, 0x73, 0x73, 0x61, 0x63, 0x68, - 0x75, 0x73, 0x65, 0x74, 0x74, 0x73, 0x31, 0x2E, 0x30, 0x2C, 0x06, - 0x03, 0x55, 0x04, 0x0A, 0x13, 0x25, 0x4D, 0x61, 0x73, 0x73, 0x61, - 0x63, 0x68, 0x75, 0x73, 0x65, 0x74, 0x74, 0x73, 0x20, 0x49, 0x6E, - 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x20, 0x6F, 0x66, 0x20, - 0x54, 0x65, 0x63, 0x68, 0x6E, 0x6F, 0x6C, 0x6F, 0x67, 0x79, 0x31, - 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x0C, 0x43, - 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x20, 0x43, 0x41, 0x20, 0x76, 0x31}; - -} // namespace - -#endif // NET_TEST_TEST_CERTIFICATE_DATA_H_ diff --git a/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth-strict.test b/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth-strict.test index b6a8a00..c6a7146 100644 --- a/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth-strict.test +++ b/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth-strict.test @@ -4,6 +4,5 @@ utc_time: DEFAULT key_purpose: SERVER_AUTH_STRICT expected_errors: ----- Certificate i=1 (CN=Intermediate) ----- -WARNING: The extended key usage does not include server auth but instead includes Netscape Server Gated Crypto ERROR: The extended key usage does not include server auth diff --git a/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth.test b/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth.test index 682897d..4afad8b 100644 --- a/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth.test +++ b/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth.test @@ -4,5 +4,5 @@ utc_time: DEFAULT key_purpose: SERVER_AUTH expected_errors: ----- Certificate i=1 (CN=Intermediate) ----- -WARNING: The extended key usage does not include server auth but instead includes Netscape Server Gated Crypto +ERROR: The extended key usage does not include server auth diff --git a/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test b/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test index acd23e6..75ec64f 100644 --- a/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test +++ b/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test @@ -4,6 +4,5 @@ utc_time: DEFAULT key_purpose: SERVER_AUTH_STRICT expected_errors: ----- Certificate i=1 (CN=Intermediate) ----- -WARNING: The extended key usage does not include server auth but instead includes Netscape Server Gated Crypto ERROR: The extended key usage does not include server auth diff --git a/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test b/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test index 1d3623a..f64c12b 100644 --- a/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test +++ b/src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test @@ -4,6 +4,5 @@ utc_time: DEFAULT key_purpose: SERVER_AUTH expected_errors: ----- Certificate i=1 (CN=Intermediate) ----- -WARNING: The extended key usage does not include server auth but instead includes Netscape Server Gated Crypto ERROR: The extended key usage does not include server auth diff --git a/src/pki/testdata/verify_certificate_chain_unittest/rebase-errors.py b/src/pki/testdata/verify_certificate_chain_unittest/rebase-errors.py index 3096c8c..7a5e868 100755 --- a/src/pki/testdata/verify_certificate_chain_unittest/rebase-errors.py +++ b/src/pki/testdata/verify_certificate_chain_unittest/rebase-errors.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -11,8 +11,8 @@ error format. To use this run the affected tests, and then pass the input to this script (either via stdin, or as the first argument). For instance: - $ ./out/Release/net_unittests --gtest_filter="*VerifyCertificateChain*" | \ - net/data/verify_certificate_chain_unittest/rebase-errors.py + $ ./build/pki_test --gtest_filter="*VerifyCertificateChain*" | \ + pki/testdata/verify_certificate_chain_unittest/rebase-errors.py The script works by scanning the stdout looking for gtest failures having a particular format. The C++ test side should have been instrumented to dump out @@ -39,7 +39,7 @@ EXPECTED: ACTUAL: ((?:.|\n)*?) -===> Use net/data/verify_certificate_chain_unittest/rebase-errors.py to rebaseline. +===> Use pki/testdata/verify_certificate_chain_unittest/rebase-errors.py to rebaseline. """, re.MULTILINE) @@ -57,15 +57,17 @@ def write_string_to_file(data, path): def get_src_root(): - """Returns the path to the enclosing //src directory. This assumes the + """Returns the path to BoringSSL source tree. This assumes the current script is inside the source tree.""" cur_dir = os.path.dirname(os.path.realpath(__file__)) while True: - parent_dir, dirname = os.path.split(cur_dir) - # Check if it looks like the src/ root. - if dirname == "src" and os.path.isdir(os.path.join(cur_dir, "net")): + # Check if it looks like the BoringSSL root. + if os.path.isdir(os.path.join(cur_dir, "crypto")) and \ + os.path.isdir(os.path.join(cur_dir, "pki")) and \ + os.path.isdir(os.path.join(cur_dir, "ssl")): return cur_dir + parent_dir, _ = os.path.split(cur_dir) if not parent_dir or parent_dir == cur_dir: break cur_dir = parent_dir @@ -109,7 +111,7 @@ def main(): test_stdout = sys.stdin.read() for m in failed_test_regex.finditer(test_stdout): - src_relative_errors_path = m.group(1) + src_relative_errors_path = "pki/" + m.group(1) errors_path = get_abs_path(src_relative_errors_path) actual_errors = m.group(2) diff --git a/src/pki/testdata/verify_unittest/google-leaf.der b/src/pki/testdata/verify_unittest/google-leaf.der Binary files differnew file mode 100644 index 0000000..01eea35 --- /dev/null +++ b/src/pki/testdata/verify_unittest/google-leaf.der diff --git a/src/pki/testdata/verify_unittest/self-issued.pem b/src/pki/testdata/verify_unittest/self-issued.pem new file mode 100644 index 0000000..e219b6d --- /dev/null +++ b/src/pki/testdata/verify_unittest/self-issued.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDrTCCApWgAwIBAgIUcu/NYcYTwG79IqzpuKoOf0Jyu1UwDQYJKoZIhvcNAQEL +BQAwZjELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEfMB0GA1UEAwwWSXNTZWxmSXNzdWVk +IHRlc3QgY2VydDAeFw0yMjA0MDcyMzIyMzRaFw0yMzA0MDcyMzIyMzRaMGYxCzAJ +BgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5l +dCBXaWRnaXRzIFB0eSBMdGQxHzAdBgNVBAMMFklzU2VsZklzc3VlZCB0ZXN0IGNl +cnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv6ueRHng0bJsKdDSg +YP1wfpao+dGZ6iY0wfDaLGY2SUgHn7HCvGeS1btZ7lCdCBdRTd6OjrMJkaoPXOCG +rqUVv9/WBPyYgpA+Zlm3F8Uf8vuYUZ96ZOdvHBeAO8Ac9wFoZhC3VNwVF0mynlVb +AhMu1T33Pi387jaE2OMMAle2w4zApcEMbMvlgEk1UdlpL0PBT4nT6XIoCbO04tEG +KLMnGutdHUmVW3L+77hjy/H4LhfsZb7PD3xqFkWpspP3OgfWJU0NUiAX/RIbgKTe +pYNVUElAGgchziGQyDJ8Si7rXslCIx6m/qMD9+JX4hZa+ANPf9psEAVjt8TKhozi +TCBHAgMBAAGjUzBRMB0GA1UdDgQWBBQludvSp1hD9JPiK6JyzuROz9S95zAfBgNV +HSMEGDAWgBQludvSp1hD9JPiK6JyzuROz9S95zAPBgNVHRMBAf8EBTADAQH/MA0G +CSqGSIb3DQEBCwUAA4IBAQA3a4h15aX4xbinxNUNDNRoqrHL5J/nwFgZxTKvzvC+ +I+evxJr3b2vWip70nepiDYW9XyzDD3rr18P/XlacxaBWy2L6iwAc0SDHHUwPJtid +7av3VjC3Qz8kk3gIuLb9SMJ9eQweKzox7UF6ZJhoEhSMDkyvbHmkMYmQGjIwuVvG +GZm0Df1XYiBQyqj6jqsTkZeqlWyFkpuFMOOSvFwWV5rOt0WrIYB/iIbHqXtePGU1 +aE2CZqTTTCldn4gvMjtAAJ5D/JXY788a0apaEG5FjU1XzVHzWbKm0bz7y1cEPBhQ +iEgWK2iloE3NzPABUZIcqdQF5NUiP45i396ccRGuNxY5 +-----END CERTIFICATE----- diff --git a/src/pki/trust_store.cc b/src/pki/trust_store.cc index 07ec965..fc373f7 100644 --- a/src/pki/trust_store.cc +++ b/src/pki/trust_store.cc @@ -126,7 +126,7 @@ std::string CertificateTrust::ToDebugString() const { // static std::optional<CertificateTrust> CertificateTrust::FromDebugString( - const std::string& trust_string) { + const std::string &trust_string) { std::vector<std::string_view> split = string_util::SplitString(trust_string, '+'); @@ -169,9 +169,9 @@ std::optional<CertificateTrust> CertificateTrust::FromDebugString( TrustStore::TrustStore() = default; -void TrustStore::AsyncGetIssuersOf(const ParsedCertificate* cert, - std::unique_ptr<Request>* out_req) { +void TrustStore::AsyncGetIssuersOf(const ParsedCertificate *cert, + std::unique_ptr<Request> *out_req) { out_req->reset(); } -} // namespace net +} // namespace bssl diff --git a/src/pki/trust_store.h b/src/pki/trust_store.h index bd8ccea..5493f6b 100644 --- a/src/pki/trust_store.h +++ b/src/pki/trust_store.h @@ -5,11 +5,12 @@ #ifndef BSSL_PKI_TRUST_STORE_H_ #define BSSL_PKI_TRUST_STORE_H_ -#include "fillins/openssl_util.h" +#include <optional> + +#include <openssl/base.h> #include "cert_issuer_source.h" #include "parsed_certificate.h" -#include <optional> namespace bssl { @@ -100,7 +101,7 @@ struct OPENSSL_EXPORT CertificateTrust { std::string ToDebugString() const; static std::optional<CertificateTrust> FromDebugString( - const std::string& trust_string); + const std::string &trust_string); // The overall type of trust. CertificateTrustType type = CertificateTrustType::UNSPECIFIED; @@ -127,17 +128,17 @@ class OPENSSL_EXPORT TrustStore : public CertIssuerSource { public: TrustStore(); - TrustStore(const TrustStore&) = delete; - TrustStore& operator=(const TrustStore&) = delete; + TrustStore(const TrustStore &) = delete; + TrustStore &operator=(const TrustStore &) = delete; // Returns the trusted of |cert|, which must be non-null. - virtual CertificateTrust GetTrust(const ParsedCertificate* cert) = 0; + virtual CertificateTrust GetTrust(const ParsedCertificate *cert) = 0; // Disable async issuers for TrustStore, as it isn't needed. - void AsyncGetIssuersOf(const ParsedCertificate* cert, - std::unique_ptr<Request>* out_req) final; + void AsyncGetIssuersOf(const ParsedCertificate *cert, + std::unique_ptr<Request> *out_req) final; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_TRUST_STORE_H_ diff --git a/src/pki/trust_store_collection.cc b/src/pki/trust_store_collection.cc index 27dd060..4c607b5 100644 --- a/src/pki/trust_store_collection.cc +++ b/src/pki/trust_store_collection.cc @@ -11,23 +11,23 @@ namespace bssl { TrustStoreCollection::TrustStoreCollection() = default; TrustStoreCollection::~TrustStoreCollection() = default; -void TrustStoreCollection::AddTrustStore(TrustStore* store) { +void TrustStoreCollection::AddTrustStore(TrustStore *store) { BSSL_CHECK(store); stores_.push_back(store); } -void TrustStoreCollection::SyncGetIssuersOf(const ParsedCertificate* cert, - ParsedCertificateList* issuers) { - for (auto* store : stores_) { +void TrustStoreCollection::SyncGetIssuersOf(const ParsedCertificate *cert, + ParsedCertificateList *issuers) { + for (auto *store : stores_) { store->SyncGetIssuersOf(cert, issuers); } } -CertificateTrust TrustStoreCollection::GetTrust(const ParsedCertificate* cert) { +CertificateTrust TrustStoreCollection::GetTrust(const ParsedCertificate *cert) { // The current aggregate result. CertificateTrust result = CertificateTrust::ForUnspecified(); - for (auto* store : stores_) { + for (auto *store : stores_) { CertificateTrust cur_trust = store->GetTrust(cert); // * If any stores distrust the certificate, consider it untrusted. @@ -35,12 +35,13 @@ CertificateTrust TrustStoreCollection::GetTrust(const ParsedCertificate* cert) { // last one if (!cur_trust.HasUnspecifiedTrust()) { result = cur_trust; - if (result.IsDistrusted()) + if (result.IsDistrusted()) { break; + } } } return result; } -} // namespace net +} // namespace bssl diff --git a/src/pki/trust_store_collection.h b/src/pki/trust_store_collection.h index 239d5e0..494909e 100644 --- a/src/pki/trust_store_collection.h +++ b/src/pki/trust_store_collection.h @@ -5,7 +5,7 @@ #ifndef BSSL_PKI_TRUST_STORE_COLLECTION_H_ #define BSSL_PKI_TRUST_STORE_COLLECTION_H_ -#include "fillins/openssl_util.h" +#include <openssl/base.h> #include "trust_store.h" @@ -20,24 +20,24 @@ class OPENSSL_EXPORT TrustStoreCollection : public TrustStore { public: TrustStoreCollection(); - TrustStoreCollection(const TrustStoreCollection&) = delete; - TrustStoreCollection& operator=(const TrustStoreCollection&) = delete; + TrustStoreCollection(const TrustStoreCollection &) = delete; + TrustStoreCollection &operator=(const TrustStoreCollection &) = delete; ~TrustStoreCollection() override; // Includes results from |store| in the combined output. |store| must // outlive the TrustStoreCollection. - void AddTrustStore(TrustStore* store); + void AddTrustStore(TrustStore *store); // TrustStore implementation: - void SyncGetIssuersOf(const ParsedCertificate* cert, - ParsedCertificateList* issuers) override; - CertificateTrust GetTrust(const ParsedCertificate* cert) override; + void SyncGetIssuersOf(const ParsedCertificate *cert, + ParsedCertificateList *issuers) override; + CertificateTrust GetTrust(const ParsedCertificate *cert) override; private: - std::vector<TrustStore*> stores_; + std::vector<TrustStore *> stores_; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_TRUST_STORE_COLLECTION_H_ diff --git a/src/pki/trust_store_collection_unittest.cc b/src/pki/trust_store_collection_unittest.cc index 80923ac..94989ba 100644 --- a/src/pki/trust_store_collection_unittest.cc +++ b/src/pki/trust_store_collection_unittest.cc @@ -4,9 +4,9 @@ #include "trust_store_collection.h" +#include <gtest/gtest.h> #include "test_helpers.h" #include "trust_store_in_memory.h" -#include <gtest/gtest.h> namespace bssl { @@ -185,4 +185,4 @@ TEST_F(TrustStoreCollectionTest, DistrustTakesPriority) { } // namespace -} // namespace net +} // namespace bssl diff --git a/src/pki/trust_store_in_memory.cc b/src/pki/trust_store_in_memory.cc index 07cb17a..1c77b63 100644 --- a/src/pki/trust_store_in_memory.cc +++ b/src/pki/trust_store_in_memory.cc @@ -9,13 +9,9 @@ namespace bssl { TrustStoreInMemory::TrustStoreInMemory() = default; TrustStoreInMemory::~TrustStoreInMemory() = default; -bool TrustStoreInMemory::IsEmpty() const { - return entries_.empty(); -} +bool TrustStoreInMemory::IsEmpty() const { return entries_.empty(); } -void TrustStoreInMemory::Clear() { - entries_.clear(); -} +void TrustStoreInMemory::Clear() { entries_.clear(); } void TrustStoreInMemory::AddTrustAnchor( std::shared_ptr<const ParsedCertificate> cert) { @@ -40,46 +36,58 @@ void TrustStoreInMemory::AddDistrustedCertificateForTest( AddCertificate(std::move(cert), CertificateTrust::ForDistrusted()); } +void TrustStoreInMemory::AddDistrustedCertificateBySPKI(std::string spki) { + distrusted_spkis_.insert(std::move(spki)); +} + void TrustStoreInMemory::AddCertificateWithUnspecifiedTrust( std::shared_ptr<const ParsedCertificate> cert) { AddCertificate(std::move(cert), CertificateTrust::ForUnspecified()); } -void TrustStoreInMemory::SyncGetIssuersOf(const ParsedCertificate* cert, - ParsedCertificateList* issuers) { - auto range = entries_.equal_range(cert->normalized_issuer().AsStringView()); - for (auto it = range.first; it != range.second; ++it) +void TrustStoreInMemory::SyncGetIssuersOf(const ParsedCertificate *cert, + ParsedCertificateList *issuers) { + auto range = + entries_.equal_range(BytesAsStringView(cert->normalized_issuer())); + for (auto it = range.first; it != range.second; ++it) { issuers->push_back(it->second.cert); + } } -CertificateTrust TrustStoreInMemory::GetTrust(const ParsedCertificate* cert) { - const Entry* entry = GetEntry(cert); +CertificateTrust TrustStoreInMemory::GetTrust(const ParsedCertificate *cert) { + // Check SPKI distrust first. + if (distrusted_spkis_.find(BytesAsStringView(cert->tbs().spki_tlv)) != + distrusted_spkis_.end()) { + return CertificateTrust::ForDistrusted(); + } + + const Entry *entry = GetEntry(cert); return entry ? entry->trust : CertificateTrust::ForUnspecified(); } -bool TrustStoreInMemory::Contains(const ParsedCertificate* cert) const { +bool TrustStoreInMemory::Contains(const ParsedCertificate *cert) const { return GetEntry(cert) != nullptr; } TrustStoreInMemory::Entry::Entry() = default; -TrustStoreInMemory::Entry::Entry(const Entry& other) = default; +TrustStoreInMemory::Entry::Entry(const Entry &other) = default; TrustStoreInMemory::Entry::~Entry() = default; void TrustStoreInMemory::AddCertificate( std::shared_ptr<const ParsedCertificate> cert, - const CertificateTrust& trust) { + const CertificateTrust &trust) { Entry entry; entry.cert = std::move(cert); entry.trust = trust; // TODO(mattm): should this check for duplicate certificates? - entries_.insert( - std::make_pair(entry.cert->normalized_subject().AsStringView(), entry)); + entries_.emplace(BytesAsStringView(entry.cert->normalized_subject()), entry); } -const TrustStoreInMemory::Entry* TrustStoreInMemory::GetEntry( - const ParsedCertificate* cert) const { - auto range = entries_.equal_range(cert->normalized_subject().AsStringView()); +const TrustStoreInMemory::Entry *TrustStoreInMemory::GetEntry( + const ParsedCertificate *cert) const { + auto range = + entries_.equal_range(BytesAsStringView(cert->normalized_subject())); for (auto it = range.first; it != range.second; ++it) { if (cert == it->second.cert.get() || cert->der_cert() == it->second.cert->der_cert()) { @@ -90,4 +98,4 @@ const TrustStoreInMemory::Entry* TrustStoreInMemory::GetEntry( return nullptr; } -} // namespace net +} // namespace bssl diff --git a/src/pki/trust_store_in_memory.h b/src/pki/trust_store_in_memory.h index e770510..4da26cd 100644 --- a/src/pki/trust_store_in_memory.h +++ b/src/pki/trust_store_in_memory.h @@ -5,9 +5,10 @@ #ifndef BSSL_PKI_TRUST_STORE_IN_MEMORY_H_ #define BSSL_PKI_TRUST_STORE_IN_MEMORY_H_ -#include "fillins/openssl_util.h" +#include <set> #include <unordered_map> +#include <openssl/base.h> #include "trust_store.h" @@ -19,8 +20,8 @@ class OPENSSL_EXPORT TrustStoreInMemory : public TrustStore { public: TrustStoreInMemory(); - TrustStoreInMemory(const TrustStoreInMemory&) = delete; - TrustStoreInMemory& operator=(const TrustStoreInMemory&) = delete; + TrustStoreInMemory(const TrustStoreInMemory &) = delete; + TrustStoreInMemory &operator=(const TrustStoreInMemory &) = delete; ~TrustStoreInMemory() override; @@ -33,7 +34,7 @@ class OPENSSL_EXPORT TrustStoreInMemory : public TrustStore { // Adds a certificate with the specified trust settings. Both trusted and // distrusted certificates require a full DER match. void AddCertificate(std::shared_ptr<const ParsedCertificate> cert, - const CertificateTrust& trust); + const CertificateTrust &trust); // Adds a certificate as a trust anchor (only the SPKI and subject will be // used during verification). @@ -55,23 +56,29 @@ class OPENSSL_EXPORT TrustStoreInMemory : public TrustStore { void AddDistrustedCertificateForTest( std::shared_ptr<const ParsedCertificate> cert); + // Distrusts the provided SPKI. This will override any other trust (e.g. if a + // certificate is passed into AddTrustAnchor() and the certificate's SPKI is + // passed into AddDistrustedCertificateBySPKI(), GetTrust() will return + // CertificateTrust::ForDistrusted()). + void AddDistrustedCertificateBySPKI(std::string spki); + // Adds a certificate to the store, that is neither trusted nor untrusted. void AddCertificateWithUnspecifiedTrust( std::shared_ptr<const ParsedCertificate> cert); // TrustStore implementation: - void SyncGetIssuersOf(const ParsedCertificate* cert, - ParsedCertificateList* issuers) override; - CertificateTrust GetTrust(const ParsedCertificate* cert) override; + void SyncGetIssuersOf(const ParsedCertificate *cert, + ParsedCertificateList *issuers) override; + CertificateTrust GetTrust(const ParsedCertificate *cert) override; // Returns true if the trust store contains the given ParsedCertificate // (matches by DER). - bool Contains(const ParsedCertificate* cert) const; + bool Contains(const ParsedCertificate *cert) const; private: struct Entry { Entry(); - Entry(const Entry& other); + Entry(const Entry &other); ~Entry(); std::shared_ptr<const ParsedCertificate> cert; @@ -81,11 +88,14 @@ class OPENSSL_EXPORT TrustStoreInMemory : public TrustStore { // Multimap from normalized subject -> Entry. std::unordered_multimap<std::string_view, Entry> entries_; + // Set of distrusted SPKIs. + std::set<std::string, std::less<>> distrusted_spkis_; + // Returns the `Entry` matching `cert`, or `nullptr` if not in the trust // store. - const Entry* GetEntry(const ParsedCertificate* cert) const; + const Entry *GetEntry(const ParsedCertificate *cert) const; }; -} // namespace net +} // namespace bssl #endif // BSSL_PKI_TRUST_STORE_IN_MEMORY_H_ diff --git a/src/pki/trust_store_in_memory_unittest.cc b/src/pki/trust_store_in_memory_unittest.cc new file mode 100644 index 0000000..4292675 --- /dev/null +++ b/src/pki/trust_store_in_memory_unittest.cc @@ -0,0 +1,112 @@ +/* Copyright (c) 2023, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#include "trust_store_in_memory.h" + +#include <gtest/gtest.h> +#include "test_helpers.h" + +namespace bssl { +namespace { + +class TrustStoreInMemoryTest : public testing::Test { + public: + void SetUp() override { + ParsedCertificateList chain; + ASSERT_TRUE(ReadCertChainFromFile( + "testdata/verify_certificate_chain_unittest/key-rollover/oldchain.pem", + &chain)); + + ASSERT_EQ(3U, chain.size()); + target_ = chain[0]; + oldintermediate_ = chain[1]; + oldroot_ = chain[2]; + ASSERT_TRUE(target_); + ASSERT_TRUE(oldintermediate_); + ASSERT_TRUE(oldroot_); + + ASSERT_TRUE( + ReadCertChainFromFile("testdata/verify_certificate_chain_unittest/" + "key-rollover/longrolloverchain.pem", + &chain)); + + ASSERT_EQ(5U, chain.size()); + newintermediate_ = chain[1]; + newroot_ = chain[2]; + newrootrollover_ = chain[3]; + ASSERT_TRUE(newintermediate_); + ASSERT_TRUE(newroot_); + ASSERT_TRUE(newrootrollover_); + } + + protected: + std::shared_ptr<const ParsedCertificate> oldroot_; + std::shared_ptr<const ParsedCertificate> newroot_; + std::shared_ptr<const ParsedCertificate> newrootrollover_; + + std::shared_ptr<const ParsedCertificate> target_; + std::shared_ptr<const ParsedCertificate> oldintermediate_; + std::shared_ptr<const ParsedCertificate> newintermediate_; +}; + +TEST_F(TrustStoreInMemoryTest, OneRootTrusted) { + TrustStoreInMemory in_memory; + in_memory.AddTrustAnchor(newroot_); + + // newroot_ is trusted. + CertificateTrust trust = in_memory.GetTrust(newroot_.get()); + EXPECT_EQ(CertificateTrust::ForTrustAnchor().ToDebugString(), + trust.ToDebugString()); + + // oldroot_ is not. + trust = in_memory.GetTrust(oldroot_.get()); + EXPECT_EQ(CertificateTrust::ForUnspecified().ToDebugString(), + trust.ToDebugString()); +} + +TEST_F(TrustStoreInMemoryTest, DistrustBySPKI) { + TrustStoreInMemory in_memory; + in_memory.AddDistrustedCertificateBySPKI( + std::string(BytesAsStringView(newroot_->tbs().spki_tlv))); + + // newroot_ is distrusted. + CertificateTrust trust = in_memory.GetTrust(newroot_.get()); + EXPECT_EQ(CertificateTrust::ForDistrusted().ToDebugString(), + trust.ToDebugString()); + + // oldroot_ is unspecified. + trust = in_memory.GetTrust(oldroot_.get()); + EXPECT_EQ(CertificateTrust::ForUnspecified().ToDebugString(), + trust.ToDebugString()); + + // newrootrollover_ is also distrusted because it has the same key. + trust = in_memory.GetTrust(newrootrollover_.get()); + EXPECT_EQ(CertificateTrust::ForDistrusted().ToDebugString(), + trust.ToDebugString()); +} + +TEST_F(TrustStoreInMemoryTest, DistrustBySPKIOverridesTrust) { + TrustStoreInMemory in_memory; + in_memory.AddTrustAnchor(newroot_); + in_memory.AddDistrustedCertificateBySPKI( + std::string(BytesAsStringView(newroot_->tbs().spki_tlv))); + + // newroot_ is distrusted. + CertificateTrust trust = in_memory.GetTrust(newroot_.get()); + EXPECT_EQ(CertificateTrust::ForDistrusted().ToDebugString(), + trust.ToDebugString()); +} + +} // namespace +} // namespace bssl diff --git a/src/pki/verify_certificate_chain.cc b/src/pki/verify_certificate_chain.cc index c7eb4ce..c42f757 100644 --- a/src/pki/verify_certificate_chain.cc +++ b/src/pki/verify_certificate_chain.cc @@ -7,37 +7,42 @@ #include <algorithm> #include <cassert> +#include <openssl/base.h> #include "cert_error_params.h" #include "cert_errors.h" #include "common_cert_errors.h" #include "extended_key_usage.h" +#include "input.h" #include "name_constraints.h" #include "parse_certificate.h" #include "signature_algorithm.h" #include "trust_store.h" #include "verify_signed_data.h" -#include "input.h" -#include <openssl/base.h> namespace bssl { namespace { -bool IsHandledCriticalExtension(const ParsedExtension& extension, - const ParsedCertificate& cert) { - if (extension.oid == der::Input(kBasicConstraintsOid)) +bool IsHandledCriticalExtension(const ParsedExtension &extension, + const ParsedCertificate &cert) { + if (extension.oid == der::Input(kBasicConstraintsOid)) { return true; + } // Key Usage is NOT processed for end-entity certificates (this is the // responsibility of callers), however it is considered "handled" here in // order to allow being marked as critical. - if (extension.oid == der::Input(kKeyUsageOid)) + if (extension.oid == der::Input(kKeyUsageOid)) { return true; - if (extension.oid == der::Input(kExtKeyUsageOid)) + } + if (extension.oid == der::Input(kExtKeyUsageOid)) { return true; - if (extension.oid == der::Input(kNameConstraintsOid)) + } + if (extension.oid == der::Input(kNameConstraintsOid)) { return true; - if (extension.oid == der::Input(kSubjectAltNameOid)) + } + if (extension.oid == der::Input(kSubjectAltNameOid)) { return true; + } if (extension.oid == der::Input(kCertificatePoliciesOid)) { // Policy qualifiers are skipped during processing, so if the // extension is marked critical need to ensure there weren't any @@ -56,12 +61,15 @@ bool IsHandledCriticalExtension(const ParsedExtension& extension, // TODO(eroman): Give a better error message. } - if (extension.oid == der::Input(kPolicyMappingsOid)) + if (extension.oid == der::Input(kPolicyMappingsOid)) { return true; - if (extension.oid == der::Input(kPolicyConstraintsOid)) + } + if (extension.oid == der::Input(kPolicyConstraintsOid)) { return true; - if (extension.oid == der::Input(kInhibitAnyPolicyOid)) + } + if (extension.oid == der::Input(kInhibitAnyPolicyOid)) { return true; + } if (extension.oid == der::Input(kMSApplicationPoliciesOid)) { // Per https://crbug.com/1439638 and // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/supported-extensions#msapplicationpolicies @@ -75,10 +83,14 @@ bool IsHandledCriticalExtension(const ParsedExtension& extension, // Adds errors to |errors| if the certificate contains unconsumed _critical_ // extensions. -void VerifyNoUnconsumedCriticalExtensions(const ParsedCertificate& cert, - CertErrors* errors) { - for (const auto& it : cert.extensions()) { - const ParsedExtension& extension = it.second; +void VerifyNoUnconsumedCriticalExtensions(const ParsedCertificate &cert, + CertErrors *errors, + bool allow_precertificate) { + for (const auto &it : cert.extensions()) { + const ParsedExtension &extension = it.second; + if (allow_precertificate && extension.oid == der::Input(kCtPoisonOid)) { + continue; + } if (extension.critical && !IsHandledCriticalExtension(extension, cert)) { errors->AddError(cert_errors::kUnconsumedCriticalExtension, CreateCertErrorParams2Der("oid", extension.oid, "value", @@ -98,7 +110,7 @@ void VerifyNoUnconsumedCriticalExtensions(const ParsedCertificate& cert, // support key rollover or changes in certificate policies. These // self-issued certificates are not counted when evaluating path length // or name constraints. -[[nodiscard]] bool IsSelfIssued(const ParsedCertificate& cert) { +[[nodiscard]] bool IsSelfIssued(const ParsedCertificate &cert) { return cert.normalized_subject() == cert.normalized_issuer(); } @@ -109,14 +121,15 @@ void VerifyNoUnconsumedCriticalExtensions(const ParsedCertificate& cert, // // The validity period for a certificate is the period of time from // notBefore through notAfter, inclusive. -void VerifyTimeValidity(const ParsedCertificate& cert, - const der::GeneralizedTime& time, - CertErrors* errors) { - if (time < cert.tbs().validity_not_before) +void VerifyTimeValidity(const ParsedCertificate &cert, + const der::GeneralizedTime &time, CertErrors *errors) { + if (time < cert.tbs().validity_not_before) { errors->AddError(cert_errors::kValidityFailedNotBefore); + } - if (cert.tbs().validity_not_after < time) + if (cert.tbs().validity_not_after < time) { errors->AddError(cert_errors::kValidityFailedNotAfter); + } } // Adds errors to |errors| if |cert| has internally inconsistent signature @@ -139,15 +152,16 @@ void VerifyTimeValidity(const ParsedCertificate& cert, // In practice however there are certificates which use different encodings for // specifying RSA with SHA1 (different OIDs). This is special-cased for // compatibility sake. -bool VerifySignatureAlgorithmsMatch(const ParsedCertificate& cert, - CertErrors* errors) { - const der::Input& alg1_tlv = cert.signature_algorithm_tlv(); - const der::Input& alg2_tlv = cert.tbs().signature_algorithm_tlv; +bool VerifySignatureAlgorithmsMatch(const ParsedCertificate &cert, + CertErrors *errors) { + der::Input alg1_tlv = cert.signature_algorithm_tlv(); + der::Input alg2_tlv = cert.tbs().signature_algorithm_tlv; // Ensure that the two DER-encoded signature algorithms are byte-for-byte // equal. - if (alg1_tlv == alg2_tlv) + if (alg1_tlv == alg2_tlv) { return true; + } // But make a compatibility concession if alternate encodings are used // TODO(eroman): Turn this warning into an error. @@ -179,11 +193,9 @@ bool VerifySignatureAlgorithmsMatch(const ParsedCertificate& cert, } // Verify that |cert| can be used for |required_key_purpose|. -void VerifyExtendedKeyUsage(const ParsedCertificate& cert, - KeyPurpose required_key_purpose, - CertErrors* errors, - bool is_target_cert, - bool is_target_cert_issuer) { +void VerifyExtendedKeyUsage(const ParsedCertificate &cert, + KeyPurpose required_key_purpose, CertErrors *errors, + bool is_target_cert, bool is_target_cert_issuer) { // We treat a required KeyPurpose of ANY_EKU to mean "Do not check EKU" if (required_key_purpose == KeyPurpose::ANY_EKU) { return; @@ -194,9 +206,8 @@ void VerifyExtendedKeyUsage(const ParsedCertificate& cert, bool has_code_signing_eku = false; bool has_time_stamping_eku = false; bool has_ocsp_signing_eku = false; - bool has_nsgc = false; if (cert.has_extended_key_usage()) { - for (const auto& key_purpose_oid : cert.extended_key_usage()) { + for (const auto &key_purpose_oid : cert.extended_key_usage()) { if (key_purpose_oid == der::Input(kAnyEKU)) { has_any_eku = true; } @@ -215,9 +226,6 @@ void VerifyExtendedKeyUsage(const ParsedCertificate& cert, if (key_purpose_oid == der::Input(kOCSPSigning)) { has_ocsp_signing_eku = true; } - if (key_purpose_oid == der::Input(kNetscapeServerGatedCrypto)) { - has_nsgc = true; - } } } @@ -296,7 +304,6 @@ void VerifyExtendedKeyUsage(const ParsedCertificate& cert, return; case KeyPurpose::SERVER_AUTH: case KeyPurpose::SERVER_AUTH_STRICT: { - bool nsgc_hack = false; if (has_any_eku && !has_server_auth_eku) { if (is_target_cert || is_target_cert_issuer) { errors->AddWarning(cert_errors::kEkuLacksServerAuthButHasAnyEKU); @@ -310,29 +317,10 @@ void VerifyExtendedKeyUsage(const ParsedCertificate& cert, // TODO(bbe): remove this once BR requirements catch up with CA's. has_server_auth_eku = true; } - if (has_nsgc && !has_server_auth_eku) { - errors->AddWarning(cert_errors::kEkuLacksServerAuthButHasGatedCrypto); - - // Allow NSGC for legacy RSA SHA1 intermediates, for compatibility - // with platform verifiers. - // - // In practice the chain will be rejected with or without this - // compatibility hack. The difference is whether the final error will - // be ERR_CERT_WEAK_SIGNATURE_ALGORITHM (with compatibility hack) vs - // ERR_CERT_INVALID (without hack). - // - // TODO(https://crbug.com/843735): Remove this once error-for-error - // equivalence between builtin verifier and platform verifier is less - // important. - if ((cert.has_basic_constraints() && cert.basic_constraints().is_ca) && - cert.signature_algorithm() == SignatureAlgorithm::kRsaPkcs1Sha1) { - nsgc_hack = true; - } - } if (required_key_purpose == KeyPurpose::SERVER_AUTH) { // Legacy compatible. if (cert.has_extended_key_usage() && !has_server_auth_eku && - !has_any_eku && !nsgc_hack) { + !has_any_eku) { errors->AddError(cert_errors::kEkuLacksServerAuth); } } else { @@ -392,8 +380,8 @@ class ValidPolicyGraph { public: ValidPolicyGraph() = default; - ValidPolicyGraph(const ValidPolicyGraph&) = delete; - ValidPolicyGraph& operator=(const ValidPolicyGraph&) = delete; + ValidPolicyGraph(const ValidPolicyGraph &) = delete; + ValidPolicyGraph &operator=(const ValidPolicyGraph &) = delete; // A Node is an entry in the policy graph. It contains information about some // policy asserted by a certificate in the chain. The policy OID itself is @@ -471,7 +459,7 @@ class ValidPolicyGraph { LevelDetails StartLevel() { // Finish building expected_policy_map for the previous level. if (!levels_.empty()) { - for (const auto& [policy, node] : levels_.back()) { + for (const auto &[policy, node] : levels_.back()) { if (!node.mapped) { current_level_.expected_policy_map[policy].push_back(policy); } @@ -491,7 +479,7 @@ class ValidPolicyGraph { // // This method may only be called once, after the policy graph is constructed. std::set<der::Input> GetUserConstrainedPolicySet( - const std::set<der::Input>& user_initial_policy_set) { + const std::set<der::Input> &user_initial_policy_set) { if (levels_.empty()) { return {}; } @@ -508,7 +496,7 @@ class ValidPolicyGraph { // The root's policy domain is determined by nodes with anyPolicy as a // parent. However, we must limit to those which are reachable from the // end-entity certificate because we defer some pruning steps. - for (auto& [policy, node] : levels_.back()) { + for (auto &[policy, node] : levels_.back()) { // GCC before 8.1 tracks individual unused bindings and does not support // marking them [[maybe_unused]]. (void)policy; @@ -516,7 +504,7 @@ class ValidPolicyGraph { } std::set<der::Input> policy_set; for (size_t i = levels_.size() - 1; i < levels_.size(); i--) { - for (auto& [policy, node] : levels_[i]) { + for (auto &[policy, node] : levels_[i]) { if (!node.reachable) { continue; } @@ -609,8 +597,7 @@ class ValidPolicyGraph { private: Level::iterator AddNodeReturningIterator( - der::Input policy, - std::vector<der::Input> parent_policies) { + der::Input policy, std::vector<der::Input> parent_policies) { assert(policy != der::Input(kAnyPolicyOid)); auto [iter, inserted] = levels_.back().insert( std::pair{policy, Node{std::move(parent_policies)}}); @@ -632,86 +619,83 @@ class ValidPolicyGraph { class PathVerifier { public: // Same parameters and meaning as VerifyCertificateChain(). - void Run(const ParsedCertificateList& certs, - const CertificateTrust& last_cert_trust, - VerifyCertificateChainDelegate* delegate, - const der::GeneralizedTime& time, - KeyPurpose required_key_purpose, + void Run(const ParsedCertificateList &certs, + const CertificateTrust &last_cert_trust, + VerifyCertificateChainDelegate *delegate, + const der::GeneralizedTime &time, KeyPurpose required_key_purpose, InitialExplicitPolicy initial_explicit_policy, - const std::set<der::Input>& user_initial_policy_set, + const std::set<der::Input> &user_initial_policy_set, InitialPolicyMappingInhibit initial_policy_mapping_inhibit, InitialAnyPolicyInhibit initial_any_policy_inhibit, - std::set<der::Input>* user_constrained_policy_set, - CertPathErrors* errors); + std::set<der::Input> *user_constrained_policy_set, + CertPathErrors *errors); private: // Verifies and updates the valid policies. This corresponds with RFC 5280 // section 6.1.3 steps d-f. - void VerifyPolicies(const ParsedCertificate& cert, - bool is_target_cert, - CertErrors* errors); + void VerifyPolicies(const ParsedCertificate &cert, bool is_target_cert, + CertErrors *errors); // Applies the policy mappings. This corresponds with RFC 5280 section 6.1.4 // steps a-b. - void VerifyPolicyMappings(const ParsedCertificate& cert, CertErrors* errors); + void VerifyPolicyMappings(const ParsedCertificate &cert, CertErrors *errors); // Applies policyConstraints and inhibitAnyPolicy. This corresponds with RFC // 5280 section 6.1.4 steps i-j. - void ApplyPolicyConstraints(const ParsedCertificate& cert); + void ApplyPolicyConstraints(const ParsedCertificate &cert); // This function corresponds to RFC 5280 section 6.1.3's "Basic Certificate // Processing" procedure. - void BasicCertificateProcessing(const ParsedCertificate& cert, + void BasicCertificateProcessing(const ParsedCertificate &cert, bool is_target_cert, bool is_target_cert_issuer, - const der::GeneralizedTime& time, + const der::GeneralizedTime &time, KeyPurpose required_key_purpose, - CertErrors* errors, - bool* shortcircuit_chain_validation); + CertErrors *errors, + bool *shortcircuit_chain_validation); // This function corresponds to RFC 5280 section 6.1.4's "Preparation for // Certificate i+1" procedure. |cert| is expected to be an intermediate. - void PrepareForNextCertificate(const ParsedCertificate& cert, - CertErrors* errors); + void PrepareForNextCertificate(const ParsedCertificate &cert, + CertErrors *errors); // This function corresponds with RFC 5280 section 6.1.5's "Wrap-Up // Procedure". It does processing for the final certificate (the target cert). - void WrapUp(const ParsedCertificate& cert, - KeyPurpose required_key_purpose, - const std::set<der::Input>& user_initial_policy_set, - CertErrors* errors); + void WrapUp(const ParsedCertificate &cert, KeyPurpose required_key_purpose, + const std::set<der::Input> &user_initial_policy_set, + bool allow_precertificate, CertErrors *errors); // Enforces trust anchor constraints compatibile with RFC 5937. // // Note that the anchor constraints are encoded via the attached certificate // itself. - void ApplyTrustAnchorConstraints(const ParsedCertificate& cert, + void ApplyTrustAnchorConstraints(const ParsedCertificate &cert, KeyPurpose required_key_purpose, - CertErrors* errors); + CertErrors *errors); // Initializes the path validation algorithm given anchor constraints. This // follows the description in RFC 5937 - void ProcessRootCertificate(const ParsedCertificate& cert, - const CertificateTrust& trust, - const der::GeneralizedTime& time, + void ProcessRootCertificate(const ParsedCertificate &cert, + const CertificateTrust &trust, + const der::GeneralizedTime &time, KeyPurpose required_key_purpose, - CertErrors* errors, - bool* shortcircuit_chain_validation); + CertErrors *errors, + bool *shortcircuit_chain_validation); // Processes verification when the input is a single certificate. This is not // defined by any standard. We attempt to match the de-facto behaviour of // Operating System verifiers. - void ProcessSingleCertChain(const ParsedCertificate& cert, - const CertificateTrust& trust, - const der::GeneralizedTime& time, + void ProcessSingleCertChain(const ParsedCertificate &cert, + const CertificateTrust &trust, + const der::GeneralizedTime &time, KeyPurpose required_key_purpose, - CertErrors* errors); + CertErrors *errors); // Parses |spki| to an EVP_PKEY and checks whether the public key is accepted // by |delegate_|. On failure parsing returns nullptr. If either parsing the // key or key policy failed, adds a high-severity error to |errors|. - bssl::UniquePtr<EVP_PKEY> ParseAndCheckPublicKey(const der::Input& spki, - CertErrors* errors); + bssl::UniquePtr<EVP_PKEY> ParseAndCheckPublicKey(der::Input spki, + CertErrors *errors); ValidPolicyGraph valid_policy_graph_; @@ -720,7 +704,7 @@ class PathVerifier { // Will contain a NameConstraints for each previous cert in the chain which // had nameConstraints. This corresponds to the permitted_subtrees and // excluded_subtrees state variables from RFC 5280. - std::vector<const NameConstraints*> name_constraints_list_; + std::vector<const NameConstraints *> name_constraints_list_; // |explicit_policy_| corresponds with the same named variable from RFC 5280 // section 6.1.2: @@ -799,12 +783,11 @@ class PathVerifier { // certificate. size_t max_path_length_; - VerifyCertificateChainDelegate* delegate_; + VerifyCertificateChainDelegate *delegate_; }; -void PathVerifier::VerifyPolicies(const ParsedCertificate& cert, - bool is_target_cert, - CertErrors* errors) { +void PathVerifier::VerifyPolicies(const ParsedCertificate &cert, + bool is_target_cert, CertErrors *errors) { // From RFC 5280 section 6.1.3: // // (d) If the certificate policies extension is present in the @@ -820,7 +803,7 @@ void PathVerifier::VerifyPolicies(const ParsedCertificate& cert, // for policy P and P-Q denote the qualifier set for policy // P. Perform the following steps in order: bool cert_has_any_policy = false; - for (const der::Input& p_oid : cert.policy_oids()) { + for (der::Input p_oid : cert.policy_oids()) { if (p_oid == der::Input(kAnyPolicyOid)) { cert_has_any_policy = true; continue; @@ -862,7 +845,7 @@ void PathVerifier::VerifyPolicies(const ParsedCertificate& cert, // this node. if (cert_has_any_policy && ((inhibit_any_policy_ > 0) || (!is_target_cert && IsSelfIssued(cert)))) { - for (auto& [p_oid, parent_policies] : + for (auto &[p_oid, parent_policies] : previous_level.expected_policy_map) { valid_policy_graph_.AddNode(p_oid, std::move(parent_policies)); } @@ -882,26 +865,29 @@ void PathVerifier::VerifyPolicies(const ParsedCertificate& cert, // (e) If the certificate policies extension is not present, set the // valid_policy_tree to NULL. - if (!cert.has_policy_oids()) + if (!cert.has_policy_oids()) { valid_policy_graph_.SetNull(); + } // (f) Verify that either explicit_policy is greater than 0 or the // valid_policy_tree is not equal to NULL; - if (!((explicit_policy_ > 0) || !valid_policy_graph_.IsNull())) + if (!((explicit_policy_ > 0) || !valid_policy_graph_.IsNull())) { errors->AddError(cert_errors::kNoValidPolicy); + } } -void PathVerifier::VerifyPolicyMappings(const ParsedCertificate& cert, - CertErrors* errors) { - if (!cert.has_policy_mappings()) +void PathVerifier::VerifyPolicyMappings(const ParsedCertificate &cert, + CertErrors *errors) { + if (!cert.has_policy_mappings()) { return; + } // From RFC 5280 section 6.1.4: // // (a) If a policy mappings extension is present, verify that the // special value anyPolicy does not appear as an // issuerDomainPolicy or a subjectDomainPolicy. - for (const ParsedPolicyMapping& mapping : cert.policy_mappings()) { + for (const ParsedPolicyMapping &mapping : cert.policy_mappings()) { if (mapping.issuer_domain_policy == der::Input(kAnyPolicyOid) || mapping.subject_domain_policy == der::Input(kAnyPolicyOid)) { // Because this implementation continues processing certificates after @@ -939,7 +925,7 @@ void PathVerifier::VerifyPolicyMappings(const ParsedCertificate& cert, // equivalent to ID-P by the policy mappings extension. // if (policy_mapping_ > 0) { - for (const ParsedPolicyMapping& mapping : cert.policy_mappings()) { + for (const ParsedPolicyMapping &mapping : cert.policy_mappings()) { valid_policy_graph_.AddPolicyMapping(mapping.issuer_domain_policy, mapping.subject_domain_policy); } @@ -962,13 +948,13 @@ void PathVerifier::VerifyPolicyMappings(const ParsedCertificate& cert, // // Step (ii) is deferred to part of GetUserConstrainedPolicySet(). if (policy_mapping_ == 0) { - for (const ParsedPolicyMapping& mapping : cert.policy_mappings()) { + for (const ParsedPolicyMapping &mapping : cert.policy_mappings()) { valid_policy_graph_.DeleteNode(mapping.issuer_domain_policy); } } } -void PathVerifier::ApplyPolicyConstraints(const ParsedCertificate& cert) { +void PathVerifier::ApplyPolicyConstraints(const ParsedCertificate &cert) { // RFC 5280 section 6.1.4 step i-j: // (i) If a policy constraints extension is included in the // certificate, modify the explicit_policy and policy_mapping @@ -1005,13 +991,10 @@ void PathVerifier::ApplyPolicyConstraints(const ParsedCertificate& cert) { } void PathVerifier::BasicCertificateProcessing( - const ParsedCertificate& cert, - bool is_target_cert, - bool is_target_cert_issuer, - const der::GeneralizedTime& time, - KeyPurpose required_key_purpose, - CertErrors* errors, - bool* shortcircuit_chain_validation) { + const ParsedCertificate &cert, bool is_target_cert, + bool is_target_cert_issuer, const der::GeneralizedTime &time, + KeyPurpose required_key_purpose, CertErrors *errors, + bool *shortcircuit_chain_validation) { *shortcircuit_chain_validation = false; // Check that the signature algorithms in Certificate vs TBSCertificate // match. This isn't part of RFC 5280 section 6.1.3, but is mandated by @@ -1041,8 +1024,9 @@ void PathVerifier::BasicCertificateProcessing( errors->AddError(cert_errors::kVerifySignedDataFailed); } } - if (*shortcircuit_chain_validation) + if (*shortcircuit_chain_validation) { return; + } // Check the time range for the certificate's validity, ensuring it is valid // at |time|. @@ -1055,15 +1039,16 @@ void PathVerifier::BasicCertificateProcessing( // Verify the certificate's issuer name matches the issuing certificate's // subject name. (RFC 5280 section 6.1.3 step a.4) - if (cert.normalized_issuer() != working_normalized_issuer_name_) + if (cert.normalized_issuer() != working_normalized_issuer_name_) { errors->AddError(cert_errors::kSubjectDoesNotMatchIssuer); + } // Name constraints (RFC 5280 section 6.1.3 step b & c) // If certificate i is self-issued and it is not the final certificate in the // path, skip this step for certificate i. if (!name_constraints_list_.empty() && (!IsSelfIssued(cert) || is_target_cert)) { - for (const NameConstraints* nc : name_constraints_list_) { + for (const NameConstraints *nc : name_constraints_list_) { nc->IsPermittedCert(cert.normalized_subject(), cert.subject_alt_names(), errors); } @@ -1080,8 +1065,8 @@ void PathVerifier::BasicCertificateProcessing( is_target_cert_issuer); } -void PathVerifier::PrepareForNextCertificate(const ParsedCertificate& cert, - CertErrors* errors) { +void PathVerifier::PrepareForNextCertificate(const ParsedCertificate &cert, + CertErrors *errors) { // RFC 5280 section 6.1.4 step a-b VerifyPolicyMappings(cert, errors); @@ -1100,24 +1085,28 @@ void PathVerifier::PrepareForNextCertificate(const ParsedCertificate& cert, // of |working_spki|. // From RFC 5280 section 6.1.4 step g: - if (cert.has_name_constraints()) + if (cert.has_name_constraints()) { name_constraints_list_.push_back(&cert.name_constraints()); + } // (h) If certificate i is not self-issued: if (!IsSelfIssued(cert)) { // (1) If explicit_policy is not 0, decrement explicit_policy by // 1. - if (explicit_policy_ > 0) + if (explicit_policy_ > 0) { explicit_policy_ -= 1; + } // (2) If policy_mapping is not 0, decrement policy_mapping by 1. - if (policy_mapping_ > 0) + if (policy_mapping_ > 0) { policy_mapping_ -= 1; + } // (3) If inhibit_anyPolicy is not 0, decrement inhibit_anyPolicy // by 1. - if (inhibit_any_policy_ > 0) + if (inhibit_any_policy_ > 0) { inhibit_any_policy_ -= 1; + } } // RFC 5280 section 6.1.4 step i-j: @@ -1180,14 +1169,15 @@ void PathVerifier::PrepareForNextCertificate(const ParsedCertificate& cert, // the certificate. Process any other recognized non-critical // extension present in the certificate that is relevant to path // processing. - VerifyNoUnconsumedCriticalExtensions(cert, errors); + VerifyNoUnconsumedCriticalExtensions(cert, errors, + delegate_->AcceptPreCertificates()); } // Checks if the target certificate has the CA bit set. If it does, add // the appropriate error or warning to |errors|. -void VerifyTargetCertIsNotCA(const ParsedCertificate& cert, +void VerifyTargetCertIsNotCA(const ParsedCertificate &cert, KeyPurpose required_key_purpose, - CertErrors* errors) { + CertErrors *errors) { if (cert.has_basic_constraints() && cert.basic_constraints().is_ca) { // In spite of RFC 5280 4.2.1.9 which says the CA properties MAY exist in // an end entity certificate, the CABF Baseline Requirements version @@ -1208,14 +1198,16 @@ void VerifyTargetCertIsNotCA(const ParsedCertificate& cert, } } -void PathVerifier::WrapUp(const ParsedCertificate& cert, +void PathVerifier::WrapUp(const ParsedCertificate &cert, KeyPurpose required_key_purpose, - const std::set<der::Input>& user_initial_policy_set, - CertErrors* errors) { + const std::set<der::Input> &user_initial_policy_set, + bool allow_precertificate, + CertErrors * errors) { // From RFC 5280 section 6.1.5: // (a) If explicit_policy is not 0, decrement explicit_policy by 1. - if (explicit_policy_ > 0) + if (explicit_policy_ > 0) { explicit_policy_ -= 1; + } // (b) If a policy constraints extension is included in the // certificate and requireExplicitPolicy is present and has a @@ -1238,7 +1230,7 @@ void PathVerifier::WrapUp(const ParsedCertificate& cert, // // Note that this is duplicated by PrepareForNextCertificate() so as to // directly match the procedures in RFC 5280's section 6.1. - VerifyNoUnconsumedCriticalExtensions(cert, errors); + VerifyNoUnconsumedCriticalExtensions(cert, errors, allow_precertificate); // This calculates the intersection from RFC 5280 section 6.1.5 step g, as // well as applying the deferred recursive node that were skipped earlier in @@ -1266,9 +1258,9 @@ void PathVerifier::WrapUp(const ParsedCertificate& cert, ParseAndCheckPublicKey(cert.tbs().spki_tlv, errors); } -void PathVerifier::ApplyTrustAnchorConstraints(const ParsedCertificate& cert, +void PathVerifier::ApplyTrustAnchorConstraints(const ParsedCertificate &cert, KeyPurpose required_key_purpose, - CertErrors* errors) { + CertErrors *errors) { // If certificatePolicies is present, process the policies. This matches the // handling for intermediates from RFC 5280 section 6.1.3.d (except that for // intermediates it is non-optional). It intentionally deviates from RFC 5937 @@ -1310,8 +1302,9 @@ void PathVerifier::ApplyTrustAnchorConstraints(const ParsedCertificate& cert, // The following enforcements follow from RFC 5937 (primarily section 3.2): // Initialize name constraints initial-permitted/excluded-subtrees. - if (cert.has_name_constraints()) + if (cert.has_name_constraints()) { name_constraints_list_.push_back(&cert.name_constraints()); + } if (cert.has_basic_constraints()) { // Enforce CA=true if basicConstraints is present. This matches behavior of @@ -1338,15 +1331,16 @@ void PathVerifier::ApplyTrustAnchorConstraints(const ParsedCertificate& cert, // Extensions may be marked critical or not critical. When trust anchor // constraints are enforced, clients MUST reject certification paths // containing a trust anchor with unrecognized critical extensions. - VerifyNoUnconsumedCriticalExtensions(cert, errors); + VerifyNoUnconsumedCriticalExtensions(cert, errors, + /*allow_precertificate=*/false); } -void PathVerifier::ProcessRootCertificate(const ParsedCertificate& cert, - const CertificateTrust& trust, - const der::GeneralizedTime& time, +void PathVerifier::ProcessRootCertificate(const ParsedCertificate &cert, + const CertificateTrust &trust, + const der::GeneralizedTime &time, KeyPurpose required_key_purpose, - CertErrors* errors, - bool* shortcircuit_chain_validation) { + CertErrors *errors, + bool *shortcircuit_chain_validation) { *shortcircuit_chain_validation = false; switch (trust.type) { case CertificateTrustType::UNSPECIFIED: @@ -1364,8 +1358,9 @@ void PathVerifier::ProcessRootCertificate(const ParsedCertificate& cert, case CertificateTrustType::TRUSTED_ANCHOR_OR_LEAF: break; } - if (*shortcircuit_chain_validation) + if (*shortcircuit_chain_validation) { return; + } if (trust.enforce_anchor_expiry) { VerifyTimeValidity(cert, time, errors); @@ -1390,11 +1385,11 @@ void PathVerifier::ProcessRootCertificate(const ParsedCertificate& cert, working_normalized_issuer_name_ = cert.normalized_subject(); } -void PathVerifier::ProcessSingleCertChain(const ParsedCertificate& cert, - const CertificateTrust& trust, - const der::GeneralizedTime& time, +void PathVerifier::ProcessSingleCertChain(const ParsedCertificate &cert, + const CertificateTrust &trust, + const der::GeneralizedTime &time, KeyPurpose required_key_purpose, - CertErrors* errors) { + CertErrors *errors) { switch (trust.type) { case CertificateTrustType::UNSPECIFIED: case CertificateTrustType::TRUSTED_ANCHOR: @@ -1439,12 +1434,12 @@ void PathVerifier::ProcessSingleCertChain(const ParsedCertificate& cert, // Checking for unknown critical extensions matches Windows, but is stricter // than the Mac verifier. - VerifyNoUnconsumedCriticalExtensions(cert, errors); + VerifyNoUnconsumedCriticalExtensions(cert, errors, + /*allow_precertificate=*/false); } bssl::UniquePtr<EVP_PKEY> PathVerifier::ParseAndCheckPublicKey( - const der::Input& spki, - CertErrors* errors) { + der::Input spki, CertErrors *errors) { // Parse the public key. bssl::UniquePtr<EVP_PKEY> pkey; if (!ParsePublicKey(spki, &pkey)) { @@ -1453,24 +1448,22 @@ bssl::UniquePtr<EVP_PKEY> PathVerifier::ParseAndCheckPublicKey( } // Check if the key is acceptable by the delegate. - if (!delegate_->IsPublicKeyAcceptable(pkey.get(), errors)) + if (!delegate_->IsPublicKeyAcceptable(pkey.get(), errors)) { errors->AddError(cert_errors::kUnacceptablePublicKey); + } return pkey; } void PathVerifier::Run( - const ParsedCertificateList& certs, - const CertificateTrust& last_cert_trust, - VerifyCertificateChainDelegate* delegate, - const der::GeneralizedTime& time, + const ParsedCertificateList &certs, const CertificateTrust &last_cert_trust, + VerifyCertificateChainDelegate *delegate, const der::GeneralizedTime &time, KeyPurpose required_key_purpose, InitialExplicitPolicy initial_explicit_policy, - const std::set<der::Input>& user_initial_policy_set, + const std::set<der::Input> &user_initial_policy_set, InitialPolicyMappingInhibit initial_policy_mapping_inhibit, InitialAnyPolicyInhibit initial_any_policy_inhibit, - std::set<der::Input>* user_constrained_policy_set, - CertPathErrors* errors) { + std::set<der::Input> *user_constrained_policy_set, CertPathErrors *errors) { // This implementation is structured to mimic the description of certificate // path verification given by RFC 5280 section 6.1. BSSL_CHECK(delegate); @@ -1544,11 +1537,11 @@ void PathVerifier::Run( const bool is_target_cert_issuer = index_into_certs == 1; const bool is_root_cert = i == 0; - const ParsedCertificate& cert = *certs[index_into_certs]; + const ParsedCertificate &cert = *certs[index_into_certs]; // Output errors for the current certificate into an error bucket that is // associated with that certificate. - CertErrors* cert_errors = errors->GetErrorsForCert(index_into_certs); + CertErrors *cert_errors = errors->GetErrorsForCert(index_into_certs); if (is_root_cert) { bool shortcircuit_chain_validation = false; @@ -1587,7 +1580,8 @@ void PathVerifier::Run( if (!is_target_cert) { PrepareForNextCertificate(cert, cert_errors); } else { - WrapUp(cert, required_key_purpose, user_initial_policy_set, cert_errors); + WrapUp(cert, required_key_purpose, user_initial_policy_set, + delegate->AcceptPreCertificates(), cert_errors); } } @@ -1606,17 +1600,14 @@ void PathVerifier::Run( VerifyCertificateChainDelegate::~VerifyCertificateChainDelegate() = default; void VerifyCertificateChain( - const ParsedCertificateList& certs, - const CertificateTrust& last_cert_trust, - VerifyCertificateChainDelegate* delegate, - const der::GeneralizedTime& time, + const ParsedCertificateList &certs, const CertificateTrust &last_cert_trust, + VerifyCertificateChainDelegate *delegate, const der::GeneralizedTime &time, KeyPurpose required_key_purpose, InitialExplicitPolicy initial_explicit_policy, - const std::set<der::Input>& user_initial_policy_set, + const std::set<der::Input> &user_initial_policy_set, InitialPolicyMappingInhibit initial_policy_mapping_inhibit, InitialAnyPolicyInhibit initial_any_policy_inhibit, - std::set<der::Input>* user_constrained_policy_set, - CertPathErrors* errors) { + std::set<der::Input> *user_constrained_policy_set, CertPathErrors *errors) { PathVerifier verifier; verifier.Run(certs, last_cert_trust, delegate, time, required_key_purpose, initial_explicit_policy, user_initial_policy_set, @@ -1624,9 +1615,9 @@ void VerifyCertificateChain( user_constrained_policy_set, errors); } -bool VerifyCertificateIsSelfSigned(const ParsedCertificate& cert, - SignatureVerifyCache* cache, - CertErrors* errors) { +bool VerifyCertificateIsSelfSigned(const ParsedCertificate &cert, + SignatureVerifyCache *cache, + CertErrors *errors) { if (cert.normalized_subject() != cert.normalized_issuer()) { if (errors) { errors->AddError(cert_errors::kSubjectDoesNotMatchIssuer); @@ -1656,4 +1647,4 @@ bool VerifyCertificateIsSelfSigned(const ParsedCertificate& cert, return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/verify_certificate_chain.h b/src/pki/verify_certificate_chain.h index e6f44d9..6c4cccf 100644 --- a/src/pki/verify_certificate_chain.h +++ b/src/pki/verify_certificate_chain.h @@ -5,15 +5,15 @@ #ifndef BSSL_PKI_VERIFY_CERTIFICATE_CHAIN_H_ #define BSSL_PKI_VERIFY_CERTIFICATE_CHAIN_H_ -#include "fillins/openssl_util.h" #include <set> +#include <openssl/base.h> +#include <openssl/evp.h> +#include <openssl/pki/signature_verify_cache.h> #include "cert_errors.h" -#include "parsed_certificate.h" -#include "signature_verify_cache.h" #include "input.h" -#include <openssl/evp.h> +#include "parsed_certificate.h" namespace bssl { @@ -58,8 +58,7 @@ class OPENSSL_EXPORT VerifyCertificateChainDelegate { // can optionally add high-severity errors to |errors| with details on why it // was rejected. virtual bool IsSignatureAlgorithmAcceptable( - SignatureAlgorithm signature_algorithm, - CertErrors* errors) = 0; + SignatureAlgorithm signature_algorithm, CertErrors *errors) = 0; // Implementations should return true if |public_key| is acceptable. This is // called for each certificate in the chain, including the target certificate. @@ -67,13 +66,20 @@ class OPENSSL_EXPORT VerifyCertificateChainDelegate { // errors to |errors| with details on why it was rejected. // // |public_key| can be assumed to be non-null. - virtual bool IsPublicKeyAcceptable(EVP_PKEY* public_key, - CertErrors* errors) = 0; + virtual bool IsPublicKeyAcceptable(EVP_PKEY *public_key, + CertErrors *errors) = 0; // This is called during verification to obtain a pointer to a signature // verification cache if one exists. nullptr may be returned indicating there // is no verification cache. - virtual SignatureVerifyCache* GetVerifyCache() = 0; + virtual SignatureVerifyCache *GetVerifyCache() = 0; + + // This is called to determine if PreCertificates should be accepted, for the + // purpose of validating issued PreCertificates in a path. Most callers should + // return false here. This should never return true for TLS certificate + // validation. If this function returns true the CT precertificate poison + // extension will not prevent the certificate from being validated. + virtual bool AcceptPreCertificates() = 0; virtual ~VerifyCertificateChainDelegate(); }; @@ -241,26 +247,23 @@ class OPENSSL_EXPORT VerifyCertificateChainDelegate { // The presence of any other unrecognized extension marked as critical fails // validation. OPENSSL_EXPORT void VerifyCertificateChain( - const ParsedCertificateList& certs, - const CertificateTrust& last_cert_trust, - VerifyCertificateChainDelegate* delegate, - const der::GeneralizedTime& time, + const ParsedCertificateList &certs, const CertificateTrust &last_cert_trust, + VerifyCertificateChainDelegate *delegate, const der::GeneralizedTime &time, KeyPurpose required_key_purpose, InitialExplicitPolicy initial_explicit_policy, - const std::set<der::Input>& user_initial_policy_set, + const std::set<der::Input> &user_initial_policy_set, InitialPolicyMappingInhibit initial_policy_mapping_inhibit, InitialAnyPolicyInhibit initial_any_policy_inhibit, - std::set<der::Input>* user_constrained_policy_set, - CertPathErrors* errors); + std::set<der::Input> *user_constrained_policy_set, CertPathErrors *errors); // Returns true if `cert` is self-signed. Returns false `cert` is not // self-signed or there was an error. If `errors` is non-null, it will contain // additional information about the problem. If `cache` is non-null, it will be // used to cache the signature verification step. -OPENSSL_EXPORT bool VerifyCertificateIsSelfSigned(const ParsedCertificate& cert, - SignatureVerifyCache* cache, - CertErrors* errors); +OPENSSL_EXPORT bool VerifyCertificateIsSelfSigned(const ParsedCertificate &cert, + SignatureVerifyCache *cache, + CertErrors *errors); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_VERIFY_CERTIFICATE_CHAIN_H_ diff --git a/src/pki/verify_certificate_chain_pkits_unittest.cc b/src/pki/verify_certificate_chain_pkits_unittest.cc index f36efa6..98d1504 100644 --- a/src/pki/verify_certificate_chain_pkits_unittest.cc +++ b/src/pki/verify_certificate_chain_pkits_unittest.cc @@ -4,11 +4,11 @@ #include "verify_certificate_chain.h" +#include <openssl/pool.h> +#include "input.h" #include "parsed_certificate.h" #include "simple_path_builder_delegate.h" #include "trust_store.h" -#include "input.h" -#include <openssl/pool.h> // These require CRL support, which is not implemented at the // VerifyCertificateChain level. @@ -27,7 +27,7 @@ class VerifyCertificateChainPkitsTestDelegate { public: static void RunTest(std::vector<std::string> cert_ders, std::vector<std::string> crl_ders, - const PkitsTestInfo& info) { + const PkitsTestInfo &info) { ASSERT_FALSE(cert_ders.empty()); // PKITS lists chains from trust anchor to target, whereas @@ -37,8 +37,9 @@ class VerifyCertificateChainPkitsTestDelegate { CertErrors parsing_errors; for (auto i = cert_ders.rbegin(); i != cert_ders.rend(); ++i) { ASSERT_TRUE(ParsedCertificate::CreateAndAddToVector( - bssl::UniquePtr<CRYPTO_BUFFER>(CRYPTO_BUFFER_new( - reinterpret_cast<const uint8_t*>(i->data()), i->size(), nullptr)), + bssl::UniquePtr<CRYPTO_BUFFER>( + CRYPTO_BUFFER_new(reinterpret_cast<const uint8_t *>(i->data()), + i->size(), nullptr)), {}, &input_chain, &parsing_errors)) << parsing_errors.ToDebugString(); } @@ -95,8 +96,7 @@ INSTANTIATE_TYPED_TEST_SUITE_P(VerifyCertificateChain, INSTANTIATE_TYPED_TEST_SUITE_P(VerifyCertificateChain, PkitsTest06VerifyingBasicConstraints, VerifyCertificateChainPkitsTestDelegate); -INSTANTIATE_TYPED_TEST_SUITE_P(VerifyCertificateChain, - PkitsTest07KeyUsage, +INSTANTIATE_TYPED_TEST_SUITE_P(VerifyCertificateChain, PkitsTest07KeyUsage, VerifyCertificateChainPkitsTestDelegate); INSTANTIATE_TYPED_TEST_SUITE_P(VerifyCertificateChain, PkitsTest08CertificatePolicies, @@ -126,4 +126,4 @@ INSTANTIATE_TYPED_TEST_SUITE_P(VerifyCertificateChain, // PkitsTest05VerifyingPathswithSelfIssuedCertificates, // PkitsTest14DistributionPoints, PkitsTest15DeltaCRLs -} // namespace net +} // namespace bssl diff --git a/src/pki/verify_certificate_chain_typed_unittest.h b/src/pki/verify_certificate_chain_typed_unittest.h index e253847..e22788c 100644 --- a/src/pki/verify_certificate_chain_typed_unittest.h +++ b/src/pki/verify_certificate_chain_typed_unittest.h @@ -5,20 +5,20 @@ #ifndef BSSL_PKI_VERIFY_CERTIFICATE_CHAIN_TYPED_UNITTEST_H_ #define BSSL_PKI_VERIFY_CERTIFICATE_CHAIN_TYPED_UNITTEST_H_ +#include <gtest/gtest.h> +#include "input.h" #include "parsed_certificate.h" #include "simple_path_builder_delegate.h" #include "test_helpers.h" #include "trust_store.h" #include "verify_certificate_chain.h" -#include "input.h" -#include <gtest/gtest.h> namespace bssl { template <typename TestDelegate> class VerifyCertificateChainTest : public ::testing::Test { public: - void RunTest(const char* file_name) { + void RunTest(const char *file_name) { VerifyCertChainTest test; std::string path = @@ -318,29 +318,17 @@ TYPED_TEST_P(VerifyCertificateChainSingleRootTest, TargetSelfSigned) { // TODO(eroman): Add test that invalid validity dates where the day or month // ordinal not in range, like "March 39, 2016" are rejected. -REGISTER_TYPED_TEST_SUITE_P(VerifyCertificateChainSingleRootTest, - Simple, - BasicConstraintsCa, - BasicConstraintsPathlen, - UnknownExtension, - MSApplicationPolicies, - WeakSignature, - WrongSignature, - LastCertificateNotTrusted, - WeakPublicKey, - TargetSignedUsingEcdsa, - Expired, - TargetNotEndEntity, - KeyUsage, - ExtendedKeyUsage, +REGISTER_TYPED_TEST_SUITE_P(VerifyCertificateChainSingleRootTest, Simple, + BasicConstraintsCa, BasicConstraintsPathlen, + UnknownExtension, MSApplicationPolicies, + WeakSignature, WrongSignature, + LastCertificateNotTrusted, WeakPublicKey, + TargetSignedUsingEcdsa, Expired, TargetNotEndEntity, + KeyUsage, ExtendedKeyUsage, IssuerAndSubjectNotByteForByteEqual, - TrustAnchorNotSelfSigned, - KeyRollover, - Policies, - ManyNames, - TargetOnly, - TargetSelfSigned); - -} // namespace net + TrustAnchorNotSelfSigned, KeyRollover, Policies, + ManyNames, TargetOnly, TargetSelfSigned); + +} // namespace bssl #endif // BSSL_PKI_VERIFY_CERTIFICATE_CHAIN_TYPED_UNITTEST_H_ diff --git a/src/pki/verify_certificate_chain_unittest.cc b/src/pki/verify_certificate_chain_unittest.cc index bebd4dd..5ea3e08 100644 --- a/src/pki/verify_certificate_chain_unittest.cc +++ b/src/pki/verify_certificate_chain_unittest.cc @@ -18,8 +18,8 @@ namespace { class VerifyCertificateChainTestDelegate { public: - static void Verify(const VerifyCertChainTest& test, - const std::string& test_file_path) { + static void Verify(const VerifyCertChainTest &test, + const std::string &test_file_path) { SimplePathBuilderDelegate delegate(1024, test.digest_policy); CertPathErrors errors; @@ -125,4 +125,4 @@ TEST(VerifyCertificateIsSelfSigned, SelfSigned) { EXPECT_EQ(cache.CacheStores(), 1U); } -} // namespace net +} // namespace bssl diff --git a/src/pki/verify_name_match.cc b/src/pki/verify_name_match.cc index 5d01ddf..09f6102 100644 --- a/src/pki/verify_name_match.cc +++ b/src/pki/verify_name_match.cc @@ -4,14 +4,14 @@ #include "verify_name_match.h" +#include <openssl/base.h> +#include <openssl/bytestring.h> + #include "cert_error_params.h" #include "cert_errors.h" -#include "parse_name.h" #include "input.h" +#include "parse_name.h" #include "parser.h" -#include "tag.h" -#include <openssl/base.h> -#include <openssl/bytestring.h> namespace bssl { @@ -55,8 +55,7 @@ enum CharsetEnforcement { // // NOTE: |output| will be modified regardless of the return. [[nodiscard]] bool NormalizeDirectoryString( - CharsetEnforcement charset_enforcement, - std::string* output) { + CharsetEnforcement charset_enforcement, std::string *output) { // Normalized version will always be equal or shorter than input. // Normalize in place and then truncate the output if necessary. std::string::const_iterator read_iter = output->begin(); @@ -73,8 +72,9 @@ enum CharsetEnforcement { // multiple whitespace chars to a single space, otherwise ignore trailing // whitespace. std::string::const_iterator next_iter = read_iter + 1; - if (next_iter != output->end() && *next_iter != ' ') + if (next_iter != output->end() && *next_iter != ' ') { *(write_iter++) = ' '; + } } else if (c >= 'A' && c <= 'Z') { // Fold case. *(write_iter++) = c + ('a' - 'A'); @@ -86,12 +86,14 @@ enum CharsetEnforcement { // See NormalizePrintableStringValue comment for the acceptable list // of characters. if (!((c >= 'a' && c <= 'z') || (c >= '\'' && c <= ':') || c == '=' || - c == '?')) + c == '?')) { return false; + } break; case ENFORCE_ASCII: - if (c > 0x7F) + if (c > 0x7F) { return false; + } break; case NO_ENFORCEMENT: break; @@ -99,8 +101,9 @@ enum CharsetEnforcement { *(write_iter++) = c; } } - if (write_iter != output->end()) + if (write_iter != output->end()) { output->erase(write_iter, output->end()); + } return true; } @@ -113,8 +116,7 @@ enum CharsetEnforcement { // is invalid, returns false. // NOTE: |output| will be modified regardless of the return. [[nodiscard]] bool NormalizeValue(X509NameAttribute attribute, - std::string* output, - CertErrors* errors) { + std::string *output, CertErrors *errors) { BSSL_CHECK(errors); if (!attribute.ValueAsStringUnsafe(output)) { @@ -125,15 +127,15 @@ enum CharsetEnforcement { bool success = false; switch (attribute.value_tag) { - case der::kPrintableString: + case CBS_ASN1_PRINTABLESTRING: success = NormalizeDirectoryString(ENFORCE_PRINTABLE_STRING, output); break; - case der::kBmpString: - case der::kUniversalString: - case der::kUtf8String: + case CBS_ASN1_BMPSTRING: + case CBS_ASN1_UNIVERSALSTRING: + case CBS_ASN1_UTF8STRING: success = NormalizeDirectoryString(NO_ENFORCEMENT, output); break; - case der::kIA5String: + case CBS_ASN1_IA5STRING: success = NormalizeDirectoryString(ENFORCE_ASCII, output); break; default: @@ -151,15 +153,15 @@ enum CharsetEnforcement { } // Returns true if |tag| is a string type that NormalizeValue can handle. -bool IsNormalizableDirectoryString(der::Tag tag) { +bool IsNormalizableDirectoryString(CBS_ASN1_TAG tag) { switch (tag) { - case der::kPrintableString: - case der::kUtf8String: + case CBS_ASN1_PRINTABLESTRING: + case CBS_ASN1_UTF8STRING: // RFC 5280 only requires handling IA5String for comparing domainComponent // values, but handling it here avoids the need to special case anything. - case der::kIA5String: - case der::kUniversalString: - case der::kBmpString: + case CBS_ASN1_IA5STRING: + case CBS_ASN1_UNIVERSALSTRING: + case CBS_ASN1_BMPSTRING: return true; // TeletexString isn't normalized. Section 8 of RFC 5280 briefly // describes the historical confusion between treating TeletexString @@ -179,13 +181,15 @@ bool VerifyValueMatch(X509NameAttribute a, X509NameAttribute b) { // TODO(eroman): Plumb this down. CertErrors unused_errors; if (!NormalizeValue(a, &a_normalized, &unused_errors) || - !NormalizeValue(b, &b_normalized, &unused_errors)) + !NormalizeValue(b, &b_normalized, &unused_errors)) { return false; + } return a_normalized == b_normalized; } // Attributes encoded with different types may be assumed to be unequal. - if (a.value_tag != b.value_tag) + if (a.value_tag != b.value_tag) { return false; + } // All other types use binary comparison. return a.value == b.value; } @@ -193,33 +197,36 @@ bool VerifyValueMatch(X509NameAttribute a, X509NameAttribute b) { // Verifies that |a_parser| and |b_parser| are the same length and that every // AttributeTypeAndValue in |a_parser| has a matching AttributeTypeAndValue in // |b_parser|. -bool VerifyRdnMatch(der::Parser* a_parser, der::Parser* b_parser) { +bool VerifyRdnMatch(der::Parser *a_parser, der::Parser *b_parser) { RelativeDistinguishedName a_type_and_values, b_type_and_values; if (!ReadRdn(a_parser, &a_type_and_values) || - !ReadRdn(b_parser, &b_type_and_values)) + !ReadRdn(b_parser, &b_type_and_values)) { return false; + } // RFC 5280 section 7.1: // Two relative distinguished names RDN1 and RDN2 match if they have the same // number of naming attributes and for each naming attribute in RDN1 there is // a matching naming attribute in RDN2. - if (a_type_and_values.size() != b_type_and_values.size()) + if (a_type_and_values.size() != b_type_and_values.size()) { return false; + } // The ordering of elements may differ due to denormalized values sorting // differently in the DER encoding. Since the number of elements should be // small, a naive linear search for each element should be fine. (Hostile // certificates already have ways to provoke pathological behavior.) - for (const auto& a : a_type_and_values) { + for (const auto &a : a_type_and_values) { auto b_iter = b_type_and_values.begin(); for (; b_iter != b_type_and_values.end(); ++b_iter) { - const auto& b = *b_iter; + const auto &b = *b_iter; if (a.type == b.type && VerifyValueMatch(a, b)) { break; } } - if (b_iter == b_type_and_values.end()) + if (b_iter == b_type_and_values.end()) { return false; + } // Remove the matched element from b_type_and_values to ensure duplicate // elements in a_type_and_values can't match the same element in // b_type_and_values multiple times. @@ -251,8 +258,7 @@ enum NameMatchType { // // RelativeDistinguishedName ::= // SET SIZE (1..MAX) OF AttributeTypeAndValue -bool VerifyNameMatchInternal(const der::Input& a, - const der::Input& b, +bool VerifyNameMatchInternal(der::Input a, der::Input b, NameMatchType match_type) { // Empty Names are allowed. RFC 5280 section 4.1.2.4 requires "The issuer // field MUST contain a non-empty distinguished name (DN)", while section @@ -268,30 +274,33 @@ bool VerifyNameMatchInternal(const der::Input& a, der::Parser a_rdn_sequence_counter(a); der::Parser b_rdn_sequence_counter(b); while (a_rdn_sequence_counter.HasMore() && b_rdn_sequence_counter.HasMore()) { - if (!a_rdn_sequence_counter.SkipTag(der::kSet) || - !b_rdn_sequence_counter.SkipTag(der::kSet)) { + if (!a_rdn_sequence_counter.SkipTag(CBS_ASN1_SET) || + !b_rdn_sequence_counter.SkipTag(CBS_ASN1_SET)) { return false; } } // If doing exact match and either of the sequences has more elements than the // other, not a match. If doing a subtree match, the first Name may have more // RDNs than the second. - if (b_rdn_sequence_counter.HasMore()) + if (b_rdn_sequence_counter.HasMore()) { return false; - if (match_type == EXACT_MATCH && a_rdn_sequence_counter.HasMore()) + } + if (match_type == EXACT_MATCH && a_rdn_sequence_counter.HasMore()) { return false; + } // Verify that RDNs in |a| and |b| match. der::Parser a_rdn_sequence(a); der::Parser b_rdn_sequence(b); while (a_rdn_sequence.HasMore() && b_rdn_sequence.HasMore()) { der::Parser a_rdn, b_rdn; - if (!a_rdn_sequence.ReadConstructed(der::kSet, &a_rdn) || - !b_rdn_sequence.ReadConstructed(der::kSet, &b_rdn)) { + if (!a_rdn_sequence.ReadConstructed(CBS_ASN1_SET, &a_rdn) || + !b_rdn_sequence.ReadConstructed(CBS_ASN1_SET, &b_rdn)) { return false; } - if (!VerifyRdnMatch(&a_rdn, &b_rdn)) + if (!VerifyRdnMatch(&a_rdn, &b_rdn)) { return false; + } } return true; @@ -299,9 +308,8 @@ bool VerifyNameMatchInternal(const der::Input& a, } // namespace -bool NormalizeName(const der::Input& name_rdn_sequence, - std::string* normalized_rdn_sequence, - CertErrors* errors) { +bool NormalizeName(der::Input name_rdn_sequence, + std::string *normalized_rdn_sequence, CertErrors *errors) { BSSL_CHECK(errors); // RFC 5280 section 4.1.2.4 @@ -309,23 +317,27 @@ bool NormalizeName(const der::Input& name_rdn_sequence, der::Parser rdn_sequence_parser(name_rdn_sequence); bssl::ScopedCBB cbb; - if (!CBB_init(cbb.get(), 0)) + if (!CBB_init(cbb.get(), 0)) { return false; + } while (rdn_sequence_parser.HasMore()) { // RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue der::Parser rdn_parser; - if (!rdn_sequence_parser.ReadConstructed(der::kSet, &rdn_parser)) + if (!rdn_sequence_parser.ReadConstructed(CBS_ASN1_SET, &rdn_parser)) { return false; + } RelativeDistinguishedName type_and_values; - if (!ReadRdn(&rdn_parser, &type_and_values)) + if (!ReadRdn(&rdn_parser, &type_and_values)) { return false; + } CBB rdn_cbb; - if (!CBB_add_asn1(cbb.get(), &rdn_cbb, CBS_ASN1_SET)) + if (!CBB_add_asn1(cbb.get(), &rdn_cbb, CBS_ASN1_SET)) { return false; + } - for (const auto& type_and_value : type_and_values) { + for (const auto &type_and_value : type_and_values) { // AttributeTypeAndValue ::= SEQUENCE { // type AttributeType, // value AttributeValue } @@ -338,38 +350,43 @@ bool NormalizeName(const der::Input& name_rdn_sequence, // AttributeType ::= OBJECT IDENTIFIER if (!CBB_add_asn1(&attribute_type_and_value_cbb, &type_cbb, CBS_ASN1_OBJECT) || - !CBB_add_bytes(&type_cbb, type_and_value.type.UnsafeData(), - type_and_value.type.Length())) { + !CBB_add_bytes(&type_cbb, type_and_value.type.data(), + type_and_value.type.size())) { return false; } // AttributeValue ::= ANY -- DEFINED BY AttributeType if (IsNormalizableDirectoryString(type_and_value.value_tag)) { std::string normalized_value; - if (!NormalizeValue(type_and_value, &normalized_value, errors)) + if (!NormalizeValue(type_and_value, &normalized_value, errors)) { return false; + } if (!CBB_add_asn1(&attribute_type_and_value_cbb, &value_cbb, CBS_ASN1_UTF8STRING) || !CBB_add_bytes( &value_cbb, - reinterpret_cast<const uint8_t*>(normalized_value.data()), - normalized_value.size())) + reinterpret_cast<const uint8_t *>(normalized_value.data()), + normalized_value.size())) { return false; + } } else { if (!CBB_add_asn1(&attribute_type_and_value_cbb, &value_cbb, type_and_value.value_tag) || - !CBB_add_bytes(&value_cbb, type_and_value.value.UnsafeData(), - type_and_value.value.Length())) + !CBB_add_bytes(&value_cbb, type_and_value.value.data(), + type_and_value.value.size())) { return false; + } } - if (!CBB_flush(&rdn_cbb)) + if (!CBB_flush(&rdn_cbb)) { return false; + } } // Ensure the encoded AttributeTypeAndValue values in the SET OF are sorted. - if (!CBB_flush_asn1_set_of(&rdn_cbb) || !CBB_flush(cbb.get())) + if (!CBB_flush_asn1_set_of(&rdn_cbb) || !CBB_flush(cbb.get())) { return false; + } } normalized_rdn_sequence->assign(CBB_data(cbb.get()), @@ -377,33 +394,34 @@ bool NormalizeName(const der::Input& name_rdn_sequence, return true; } -bool VerifyNameMatch(const der::Input& a_rdn_sequence, - const der::Input& b_rdn_sequence) { +bool VerifyNameMatch(der::Input a_rdn_sequence, der::Input b_rdn_sequence) { return VerifyNameMatchInternal(a_rdn_sequence, b_rdn_sequence, EXACT_MATCH); } -bool VerifyNameInSubtree(const der::Input& name_rdn_sequence, - const der::Input& parent_rdn_sequence) { +bool VerifyNameInSubtree(der::Input name_rdn_sequence, + der::Input parent_rdn_sequence) { return VerifyNameMatchInternal(name_rdn_sequence, parent_rdn_sequence, SUBTREE_MATCH); } bool FindEmailAddressesInName( - const der::Input& name_rdn_sequence, - std::vector<std::string>* contained_email_addresses) { + der::Input name_rdn_sequence, + std::vector<std::string> *contained_email_addresses) { contained_email_addresses->clear(); der::Parser rdn_sequence_parser(name_rdn_sequence); while (rdn_sequence_parser.HasMore()) { der::Parser rdn_parser; - if (!rdn_sequence_parser.ReadConstructed(der::kSet, &rdn_parser)) + if (!rdn_sequence_parser.ReadConstructed(CBS_ASN1_SET, &rdn_parser)) { return false; + } RelativeDistinguishedName type_and_values; - if (!ReadRdn(&rdn_parser, &type_and_values)) + if (!ReadRdn(&rdn_parser, &type_and_values)) { return false; + } - for (const auto& type_and_value : type_and_values) { + for (const auto &type_and_value : type_and_values) { if (type_and_value.type == der::Input(kTypeEmailAddressOid)) { std::string email_address; if (!type_and_value.ValueAsString(&email_address)) { @@ -417,4 +435,4 @@ bool FindEmailAddressesInName( return true; } -} // namespace net +} // namespace bssl diff --git a/src/pki/verify_name_match.h b/src/pki/verify_name_match.h index a328245..79c9ce8 100644 --- a/src/pki/verify_name_match.h +++ b/src/pki/verify_name_match.h @@ -5,11 +5,10 @@ #ifndef BSSL_PKI_VERIFY_NAME_MATCH_H_ #define BSSL_PKI_VERIFY_NAME_MATCH_H_ -#include "fillins/openssl_util.h" #include <string> #include <vector> - +#include <openssl/base.h> namespace bssl { @@ -25,24 +24,24 @@ class Input; // outer Sequence tag). Returns false if there was an error parsing or // normalizing the input, and adds error information to |errors|. |errors| must // be non-null. -OPENSSL_EXPORT bool NormalizeName(const der::Input& name_rdn_sequence, - std::string* normalized_rdn_sequence, - CertErrors* errors); +OPENSSL_EXPORT bool NormalizeName(der::Input name_rdn_sequence, + std::string *normalized_rdn_sequence, + CertErrors *errors); // Compares DER-encoded X.501 Name values according to RFC 5280 rules. // |a_rdn_sequence| and |b_rdn_sequence| should be the DER-encoded RDNSequence // values (not including the Sequence tag). // Returns true if |a_rdn_sequence| and |b_rdn_sequence| match. -OPENSSL_EXPORT bool VerifyNameMatch(const der::Input& a_rdn_sequence, - const der::Input& b_rdn_sequence); +OPENSSL_EXPORT bool VerifyNameMatch(der::Input a_rdn_sequence, + der::Input b_rdn_sequence); // Compares |name_rdn_sequence| and |parent_rdn_sequence| and return true if // |name_rdn_sequence| is within the subtree defined by |parent_rdn_sequence| as // defined by RFC 5280 section 7.1. |name_rdn_sequence| and // |parent_rdn_sequence| should be the DER-encoded sequence values (not // including the Sequence tag). -OPENSSL_EXPORT bool VerifyNameInSubtree(const der::Input& name_rdn_sequence, - const der::Input& parent_rdn_sequence); +OPENSSL_EXPORT bool VerifyNameInSubtree(der::Input name_rdn_sequence, + der::Input parent_rdn_sequence); // Helper functions: @@ -54,9 +53,9 @@ OPENSSL_EXPORT bool VerifyNameInSubtree(const der::Input& name_rdn_sequence, // tag, but otherwise have not been validated. // Returns false if there was a parsing error. [[nodiscard]] bool FindEmailAddressesInName( - const der::Input& name_rdn_sequence, - std::vector<std::string>* contained_email_addresses); + der::Input name_rdn_sequence, + std::vector<std::string> *contained_email_addresses); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_VERIFY_NAME_MATCH_H_ diff --git a/src/pki/verify_name_match_unittest.cc b/src/pki/verify_name_match_unittest.cc index 4e57250..53cd012 100644 --- a/src/pki/verify_name_match_unittest.cc +++ b/src/pki/verify_name_match_unittest.cc @@ -4,9 +4,9 @@ #include "verify_name_match.h" +#include <gtest/gtest.h> #include "string_util.h" #include "test_helpers.h" -#include <gtest/gtest.h> namespace bssl { namespace { @@ -17,10 +17,10 @@ namespace { // |value_type| indicates what ASN.1 type is used to encode the data. // |suffix| indicates any additional modifications, such as caseswapping, // whitespace adding, etc. -::testing::AssertionResult LoadTestData(const std::string& prefix, - const std::string& value_type, - const std::string& suffix, - std::string* result) { +::testing::AssertionResult LoadTestData(const std::string &prefix, + const std::string &value_type, + const std::string &suffix, + std::string *result) { std::string path = "testdata/verify_name_match_unittest/names/" + prefix + "-" + value_type + "-" + suffix + ".pem"; @@ -31,9 +31,10 @@ namespace { return ReadTestDataFromPemFile(path, mappings); } -bool TypesAreComparable(const std::string& type_1, const std::string& type_2) { - if (type_1 == type_2) +bool TypesAreComparable(const std::string &type_1, const std::string &type_2) { + if (type_1 == type_2) { return true; + } if ((type_1 == "PRINTABLESTRING" || type_1 == "UTF8" || type_1 == "BMPSTRING" || type_1 == "UNIVERSALSTRING") && (type_2 == "PRINTABLESTRING" || type_2 == "UTF8" || @@ -44,23 +45,23 @@ bool TypesAreComparable(const std::string& type_1, const std::string& type_2) { } // All string types. -static const char* kValueTypes[] = {"PRINTABLESTRING", "T61STRING", "UTF8", +static const char *kValueTypes[] = {"PRINTABLESTRING", "T61STRING", "UTF8", "BMPSTRING", "UNIVERSALSTRING"}; // String types that can encode the Unicode Basic Multilingual Plane. -static const char* kUnicodeBMPValueTypes[] = {"UTF8", "BMPSTRING", +static const char *kUnicodeBMPValueTypes[] = {"UTF8", "BMPSTRING", "UNIVERSALSTRING"}; // String types that can encode the Unicode Supplementary Planes. -static const char* kUnicodeSupplementaryValueTypes[] = {"UTF8", +static const char *kUnicodeSupplementaryValueTypes[] = {"UTF8", "UNIVERSALSTRING"}; -static const char* kMangleTypes[] = {"unmangled", "case_swap", +static const char *kMangleTypes[] = {"unmangled", "case_swap", "extra_whitespace"}; } // namespace class VerifyNameMatchSimpleTest : public ::testing::TestWithParam< - ::testing::tuple<const char*, const char*>> { + ::testing::tuple<const char *, const char *>> { public: std::string value_type() const { return ::testing::get<0>(GetParam()); } std::string suffix() const { return ::testing::get<1>(GetParam()); } @@ -136,13 +137,12 @@ TEST_P(VerifyNameMatchSimpleTest, ExtraRdnDoesNotMatch) { // Runs VerifyNameMatchSimpleTest for all combinations of value_type and and // suffix. -INSTANTIATE_TEST_SUITE_P(InstantiationName, - VerifyNameMatchSimpleTest, +INSTANTIATE_TEST_SUITE_P(InstantiationName, VerifyNameMatchSimpleTest, ::testing::Combine(::testing::ValuesIn(kValueTypes), ::testing::ValuesIn(kMangleTypes))); class VerifyNameMatchNormalizationTest - : public ::testing::TestWithParam<::testing::tuple<bool, const char*>> { + : public ::testing::TestWithParam<::testing::tuple<bool, const char *>> { public: bool expected_result() const { return ::testing::get<0>(GetParam()); } std::string value_type() const { return ::testing::get<1>(GetParam()); } @@ -182,20 +182,19 @@ TEST_P(VerifyNameMatchNormalizationTest, CollapseWhitespace) { // Runs VerifyNameMatchNormalizationTest for each (expected_result, value_type) // tuple. INSTANTIATE_TEST_SUITE_P( - InstantiationName, - VerifyNameMatchNormalizationTest, + InstantiationName, VerifyNameMatchNormalizationTest, ::testing::Values( ::testing::make_tuple(true, - static_cast<const char*>("PRINTABLESTRING")), - ::testing::make_tuple(false, static_cast<const char*>("T61STRING")), - ::testing::make_tuple(true, static_cast<const char*>("UTF8")), - ::testing::make_tuple(true, static_cast<const char*>("BMPSTRING")), + static_cast<const char *>("PRINTABLESTRING")), + ::testing::make_tuple(false, static_cast<const char *>("T61STRING")), + ::testing::make_tuple(true, static_cast<const char *>("UTF8")), + ::testing::make_tuple(true, static_cast<const char *>("BMPSTRING")), ::testing::make_tuple(true, - static_cast<const char*>("UNIVERSALSTRING")))); + static_cast<const char *>("UNIVERSALSTRING")))); class VerifyNameMatchDifferingTypesTest : public ::testing::TestWithParam< - ::testing::tuple<const char*, const char*>> { + ::testing::tuple<const char *, const char *>> { public: std::string value_type_1() const { return ::testing::get<0>(GetParam()); } std::string value_type_2() const { return ::testing::get<1>(GetParam()); } @@ -269,15 +268,13 @@ TEST_P(VerifyNameMatchDifferingTypesTest, NormalizableTypesInSubtrees) { // Runs VerifyNameMatchDifferingTypesTest for all combinations of value types in // value_type1 and value_type_2. -INSTANTIATE_TEST_SUITE_P(InstantiationName, - VerifyNameMatchDifferingTypesTest, +INSTANTIATE_TEST_SUITE_P(InstantiationName, VerifyNameMatchDifferingTypesTest, ::testing::Combine(::testing::ValuesIn(kValueTypes), ::testing::ValuesIn(kValueTypes))); class VerifyNameMatchUnicodeConversionTest - : public ::testing::TestWithParam< - ::testing::tuple<const char*, - ::testing::tuple<const char*, const char*>>> { + : public ::testing::TestWithParam<::testing::tuple< + const char *, ::testing::tuple<const char *, const char *>>> { public: std::string prefix() const { return ::testing::get<0>(GetParam()); } std::string value_type_1() const { @@ -301,8 +298,7 @@ TEST_P(VerifyNameMatchUnicodeConversionTest, UnicodeConversionsAreEqual) { // combinations of Basic Multilingual Plane-capable value types in value_type1 // and value_type_2. INSTANTIATE_TEST_SUITE_P( - BMPConversion, - VerifyNameMatchUnicodeConversionTest, + BMPConversion, VerifyNameMatchUnicodeConversionTest, ::testing::Combine( ::testing::Values("unicode_bmp"), ::testing::Combine(::testing::ValuesIn(kUnicodeBMPValueTypes), @@ -312,8 +308,7 @@ INSTANTIATE_TEST_SUITE_P( // for all combinations of Unicode Supplementary Plane-capable value types in // value_type1 and value_type_2. INSTANTIATE_TEST_SUITE_P( - SMPConversion, - VerifyNameMatchUnicodeConversionTest, + SMPConversion, VerifyNameMatchUnicodeConversionTest, ::testing::Combine( ::testing::Values("unicode_supplementary"), ::testing::Combine( @@ -610,4 +605,4 @@ TEST(NameNormalizationTest, NormalizeCustom) { EXPECT_EQ(SequenceValueFromString(raw_der), der::Input(normalized_der)); } -} // namespace net +} // namespace bssl diff --git a/src/pki/verify_signed_data.cc b/src/pki/verify_signed_data.cc index a7a2cf6..4502e2d 100644 --- a/src/pki/verify_signed_data.cc +++ b/src/pki/verify_signed_data.cc @@ -4,27 +4,27 @@ #include "verify_signed_data.h" -#include "fillins/openssl_util.h" -#include "cert_errors.h" -#include "signature_algorithm.h" -#include "signature_verify_cache.h" -#include "input.h" -#include "parse_values.h" -#include "parser.h" #include <openssl/bytestring.h> #include <openssl/digest.h> +#include <openssl/err.h> #include <openssl/evp.h> +#include <openssl/pki/signature_verify_cache.h> #include <openssl/rsa.h> #include <openssl/sha.h> +#include "cert_errors.h" +#include "input.h" +#include "parse_values.h" +#include "parser.h" +#include "signature_algorithm.h" + namespace bssl { namespace { -bool SHA256UpdateWithLengthPrefixedData(SHA256_CTX* s_ctx, - const uint8_t* data, +bool SHA256UpdateWithLengthPrefixedData(SHA256_CTX *s_ctx, const uint8_t *data, uint64_t length) { - return (SHA256_Update(s_ctx, reinterpret_cast<uint8_t*>(&length), + return (SHA256_Update(s_ctx, reinterpret_cast<uint8_t *>(&length), sizeof(length)) && SHA256_Update(s_ctx, data, length)); } @@ -34,9 +34,9 @@ bool SHA256UpdateWithLengthPrefixedData(SHA256_CTX* s_ctx, constexpr uint32_t VerifyCacheKeyVersion = 1; std::string SignatureVerifyCacheKey(std::string_view algorithm_name, - const der::Input& signed_data, - const der::Input& signature_value_bytes, - EVP_PKEY* public_key) { + der::Input signed_data, + der::Input signature_value_bytes, + EVP_PKEY *public_key) { SHA256_CTX s_ctx; bssl::ScopedCBB public_key_cbb; uint8_t digest[SHA256_DIGEST_LENGTH]; @@ -44,24 +44,32 @@ std::string SignatureVerifyCacheKey(std::string_view algorithm_name, if (CBB_init(public_key_cbb.get(), 128) && EVP_marshal_public_key(public_key_cbb.get(), public_key) && SHA256_Init(&s_ctx) && - SHA256_Update(&s_ctx, reinterpret_cast<uint8_t*>(&version), + SHA256_Update(&s_ctx, reinterpret_cast<uint8_t *>(&version), sizeof(version)) && SHA256UpdateWithLengthPrefixedData( - &s_ctx, reinterpret_cast<const uint8_t*>(algorithm_name.data()), + &s_ctx, reinterpret_cast<const uint8_t *>(algorithm_name.data()), algorithm_name.length()) && SHA256UpdateWithLengthPrefixedData(&s_ctx, CBB_data(public_key_cbb.get()), CBB_len(public_key_cbb.get())) && - SHA256UpdateWithLengthPrefixedData(&s_ctx, - signature_value_bytes.UnsafeData(), - signature_value_bytes.Length()) && - SHA256UpdateWithLengthPrefixedData(&s_ctx, signed_data.UnsafeData(), - signed_data.Length()) && + SHA256UpdateWithLengthPrefixedData(&s_ctx, signature_value_bytes.data(), + signature_value_bytes.size()) && + SHA256UpdateWithLengthPrefixedData(&s_ctx, signed_data.data(), + signed_data.size()) && SHA256_Final(digest, &s_ctx)) { - return std::string(reinterpret_cast<char*>(digest), sizeof(digest)); + return std::string(reinterpret_cast<char *>(digest), sizeof(digest)); } return std::string(); } +// Place an instance of this class on the call stack to automatically clear +// the OpenSSL error stack on function exit. +// TODO(crbug.com/boringssl/38): Remove this when the library is more robust to +// leaving things in the error queue. +class OpenSSLErrStackTracer { + public: + ~OpenSSLErrStackTracer() { ERR_clear_error(); }; +}; + } // namespace // Parses an RSA public key or EC public key from SPKI to an EVP_PKEY. Returns @@ -129,13 +137,13 @@ std::string SignatureVerifyCacheKey(std::string_view algorithm_name, // { ID secp521r1 } | { ID sect571k1 } | { ID sect571r1 }, // ... -- Extensible // } -bool ParsePublicKey(const der::Input& public_key_spki, - bssl::UniquePtr<EVP_PKEY>* public_key) { +bool ParsePublicKey(der::Input public_key_spki, + bssl::UniquePtr<EVP_PKEY> *public_key) { // Parse the SPKI to an EVP_PKEY. - fillins::OpenSSLErrStackTracer err_tracer; + OpenSSLErrStackTracer err_tracer; CBS cbs; - CBS_init(&cbs, public_key_spki.UnsafeData(), public_key_spki.Length()); + CBS_init(&cbs, public_key_spki.data(), public_key_spki.size()); public_key->reset(EVP_parse_public_key(&cbs)); if (!*public_key || CBS_len(&cbs) != 0) { public_key->reset(); @@ -144,13 +152,11 @@ bool ParsePublicKey(const der::Input& public_key_spki, return true; } -bool VerifySignedData(SignatureAlgorithm algorithm, - const der::Input& signed_data, - const der::BitString& signature_value, - EVP_PKEY* public_key, - SignatureVerifyCache* cache) { +bool VerifySignedData(SignatureAlgorithm algorithm, der::Input signed_data, + const der::BitString &signature_value, + EVP_PKEY *public_key, SignatureVerifyCache *cache) { int expected_pkey_id = 1; - const EVP_MD* digest = nullptr; + const EVP_MD *digest = nullptr; bool is_rsa_pss = false; std::string_view cache_algorithm_name; switch (algorithm) { @@ -216,14 +222,16 @@ bool VerifySignedData(SignatureAlgorithm algorithm, break; } - if (expected_pkey_id != EVP_PKEY_id(public_key)) + if (expected_pkey_id != EVP_PKEY_id(public_key)) { return false; + } // For the supported algorithms the signature value must be a whole // number of bytes. - if (signature_value.unused_bits() != 0) + if (signature_value.unused_bits() != 0) { return false; - const der::Input& signature_value_bytes = signature_value.bytes(); + } + der::Input signature_value_bytes = signature_value.bytes(); std::string cache_key; if (cache) { @@ -241,13 +249,14 @@ bool VerifySignedData(SignatureAlgorithm algorithm, } } - fillins::OpenSSLErrStackTracer err_tracer; + OpenSSLErrStackTracer err_tracer; bssl::ScopedEVP_MD_CTX ctx; - EVP_PKEY_CTX* pctx = nullptr; // Owned by |ctx|. + EVP_PKEY_CTX *pctx = nullptr; // Owned by |ctx|. - if (!EVP_DigestVerifyInit(ctx.get(), &pctx, digest, nullptr, public_key)) + if (!EVP_DigestVerifyInit(ctx.get(), &pctx, digest, nullptr, public_key)) { return false; + } if (is_rsa_pss) { // All supported RSASSA-PSS algorithms match signing and MGF-1 digest. They @@ -259,14 +268,9 @@ bool VerifySignedData(SignatureAlgorithm algorithm, } } - if (!EVP_DigestVerifyUpdate(ctx.get(), signed_data.UnsafeData(), - signed_data.Length())) { - return false; - } - - bool ret = - 1 == EVP_DigestVerifyFinal(ctx.get(), signature_value_bytes.UnsafeData(), - signature_value_bytes.Length()); + bool ret = 1 == EVP_DigestVerify(ctx.get(), signature_value_bytes.data(), + signature_value_bytes.size(), + signed_data.data(), signed_data.size()); if (!cache_key.empty()) { cache->Store(cache_key, ret ? SignatureVerifyCache::Value::kValid : SignatureVerifyCache::Value::kInvalid); @@ -275,16 +279,15 @@ bool VerifySignedData(SignatureAlgorithm algorithm, return ret; } -bool VerifySignedData(SignatureAlgorithm algorithm, - const der::Input& signed_data, - const der::BitString& signature_value, - const der::Input& public_key_spki, - SignatureVerifyCache* cache) { +bool VerifySignedData(SignatureAlgorithm algorithm, der::Input signed_data, + const der::BitString &signature_value, + der::Input public_key_spki, SignatureVerifyCache *cache) { bssl::UniquePtr<EVP_PKEY> public_key; - if (!ParsePublicKey(public_key_spki, &public_key)) + if (!ParsePublicKey(public_key_spki, &public_key)) { return false; + } return VerifySignedData(algorithm, signed_data, signature_value, public_key.get(), cache); } -} // namespace net +} // namespace bssl diff --git a/src/pki/verify_signed_data.h b/src/pki/verify_signed_data.h index 27b5af5..5ecfcea 100644 --- a/src/pki/verify_signed_data.h +++ b/src/pki/verify_signed_data.h @@ -5,12 +5,11 @@ #ifndef BSSL_PKI_VERIFY_SIGNED_DATA_H_ #define BSSL_PKI_VERIFY_SIGNED_DATA_H_ -#include "fillins/openssl_util.h" -#include "fillins/openssl_util.h" +#include <openssl/base.h> +#include <openssl/evp.h> +#include <openssl/pki/signature_verify_cache.h> #include "signature_algorithm.h" -#include "signature_verify_cache.h" -#include <openssl/evp.h> namespace bssl { @@ -29,25 +28,20 @@ class Input; // // Returns true if verification was successful. [[nodiscard]] OPENSSL_EXPORT bool VerifySignedData( - SignatureAlgorithm algorithm, - const der::Input& signed_data, - const der::BitString& signature_value, - EVP_PKEY* public_key, - SignatureVerifyCache* cache); + SignatureAlgorithm algorithm, der::Input signed_data, + const der::BitString &signature_value, EVP_PKEY *public_key, + SignatureVerifyCache *cache); // Same as above overload, only the public key is inputted as an SPKI and will // be parsed internally. [[nodiscard]] OPENSSL_EXPORT bool VerifySignedData( - SignatureAlgorithm algorithm, - const der::Input& signed_data, - const der::BitString& signature_value, - const der::Input& public_key_spki, - SignatureVerifyCache* cache); + SignatureAlgorithm algorithm, der::Input signed_data, + const der::BitString &signature_value, der::Input public_key_spki, + SignatureVerifyCache *cache); [[nodiscard]] OPENSSL_EXPORT bool ParsePublicKey( - const der::Input& public_key_spki, - bssl::UniquePtr<EVP_PKEY>* public_key); + der::Input public_key_spki, bssl::UniquePtr<EVP_PKEY> *public_key); -} // namespace net +} // namespace bssl #endif // BSSL_PKI_VERIFY_SIGNED_DATA_H_ diff --git a/src/pki/verify_signed_data_unittest.cc b/src/pki/verify_signed_data_unittest.cc index 6ab0878..1d94bb6 100644 --- a/src/pki/verify_signed_data_unittest.cc +++ b/src/pki/verify_signed_data_unittest.cc @@ -7,15 +7,15 @@ #include <memory> #include <set> +#include <gtest/gtest.h> +#include <optional> #include "cert_errors.h" -#include "mock_signature_verify_cache.h" -#include "signature_algorithm.h" -#include "test_helpers.h" #include "input.h" +#include "mock_signature_verify_cache.h" #include "parse_values.h" #include "parser.h" -#include <gtest/gtest.h> -#include <optional> +#include "signature_algorithm.h" +#include "test_helpers.h" namespace bssl { @@ -34,9 +34,8 @@ enum VerifyResult { // // If expected_result was FAILURE then the test will only succeed if // VerifySignedData() returns false. -void RunTestCase(VerifyResult expected_result, - const char* file_name, - SignatureVerifyCache* cache) { +void RunTestCase(VerifyResult expected_result, const char *file_name, + SignatureVerifyCache *cache) { std::string path = std::string("testdata/verify_signed_data_unittest/") + file_name; @@ -73,7 +72,7 @@ void RunTestCase(VerifyResult expected_result, EXPECT_EQ(expected_result_bool, result); } -void RunTestCase(VerifyResult expected_result, const char* file_name) { +void RunTestCase(VerifyResult expected_result, const char *file_name) { RunTestCase(expected_result, file_name, /*cache=*/nullptr); } @@ -239,4 +238,4 @@ TEST(VerifySignedDataTestWithCache, TestVerifyCache) { } // namespace -} // namespace net +} // namespace bssl |