public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] uefi-sct/SctPkg:Update the PKCS7Verify Test to add the VerifySignature() checkpoint
@ 2018-10-13 16:08 Eric Jin
  2018-10-15  2:03 ` Supreeth Venkatesh
  0 siblings, 1 reply; 3+ messages in thread
From: Eric Jin @ 2018-10-13 16:08 UTC (permalink / raw)
  To: edk2-devel; +Cc: Supreeth Venkatesh, Jiaxin Wu

Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Eric Jin <eric.jin@intel.com>
---
 .../Protocol/PKCS7Verify/BlackBoxTest/Guid.c  |   12 +-
 .../Protocol/PKCS7Verify/BlackBoxTest/Guid.h  |   30 +-
 .../BlackBoxTest/Pkcs7BBTestConformance.c     |  308 +++-
 .../BlackBoxTest/Pkcs7BBTestData.c            | 1468 +++++++++++------
 .../BlackBoxTest/Pkcs7BBTestFunction.c        |   89 +-
 .../BlackBoxTest/Pkcs7BBTestMain.c            |   28 +-
 .../BlackBoxTest/Pkcs7BBTestMain.h            |   26 +-
 7 files changed, 1400 insertions(+), 561 deletions(-)

diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Guid.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Guid.c
index c31d3d2d..f7b59623 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Guid.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Guid.c
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2016 Unified EFI, Inc.<BR>
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -36,9 +36,15 @@ EFI_GUID gPkcs7BBTestConformanceAssertionGuid007 = EFI_TEST_PKCS7BBTESTCONFORMAN
 EFI_GUID gPkcs7BBTestConformanceAssertionGuid008 = EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_008_GUID;
 EFI_GUID gPkcs7BBTestConformanceAssertionGuid009 = EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_009_GUID;
 EFI_GUID gPkcs7BBTestConformanceAssertionGuid010 = EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_010_GUID;
-
+EFI_GUID gPkcs7BBTestConformanceAssertionGuid011 = EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_011_GUID;
+EFI_GUID gPkcs7BBTestConformanceAssertionGuid012 = EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_012_GUID;
+EFI_GUID gPkcs7BBTestConformanceAssertionGuid013 = EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_013_GUID;
+EFI_GUID gPkcs7BBTestConformanceAssertionGuid014 = EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_014_GUID;
+EFI_GUID gPkcs7BBTestConformanceAssertionGuid015 = EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_015_GUID;
 
 EFI_GUID gPkcs7BBTestFunctionAssertionGuid001 = EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_001_GUID;
 EFI_GUID gPkcs7BBTestFunctionAssertionGuid002 = EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_002_GUID;
 EFI_GUID gPkcs7BBTestFunctionAssertionGuid003 = EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_003_GUID;
-EFI_GUID gPkcs7BBTestFunctionAssertionGuid004 = EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_004_GUID;
\ No newline at end of file
+EFI_GUID gPkcs7BBTestFunctionAssertionGuid004 = EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_004_GUID;
+EFI_GUID gPkcs7BBTestFunctionAssertionGuid005 = EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_005_GUID;
+EFI_GUID gPkcs7BBTestFunctionAssertionGuid006 = EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_006_GUID;
\ No newline at end of file
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Guid.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Guid.h
index 2165cce4..c6bc3c87 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Guid.h
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Guid.h
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2016 Unified EFI, Inc.<BR>
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -65,6 +65,27 @@ extern EFI_GUID gPkcs7BBTestConformanceAssertionGuid009;
 { 0xb136e016, 0x4f80, 0x44bd, {0xba, 0xb0, 0x1c, 0x34, 0x8a, 0x2d, 0xa1, 0x8a }}
 extern EFI_GUID gPkcs7BBTestConformanceAssertionGuid010;
 
+#define EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_011_GUID \
+{ 0xa58f3626, 0xf16e, 0x4cd5, { 0xba, 0x12, 0x7a, 0x9d, 0xd6, 0x9a, 0x7a, 0x71 }}
+extern EFI_GUID gPkcs7BBTestConformanceAssertionGuid011;
+
+#define EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_012_GUID \
+{ 0xbe4a0bf2, 0x2d46, 0x4d96, { 0xa6, 0x11, 0x21, 0x99, 0xa5, 0x5f, 0xa4, 0xee }}
+extern EFI_GUID gPkcs7BBTestConformanceAssertionGuid012;
+
+#define EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_013_GUID \
+{ 0xc0536a27, 0x304e, 0x497a, { 0xa5, 0xe3, 0x94, 0x11, 0x38, 0x53, 0x6e, 0x40 }}
+extern EFI_GUID gPkcs7BBTestConformanceAssertionGuid013;
+
+#define EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_014_GUID \
+{ 0x8c5aa0e8, 0x17ff, 0x49cd, { 0x8f, 0xec, 0x37, 0xc3, 0xfd, 0x5f, 0x77, 0x0 }}
+extern EFI_GUID gPkcs7BBTestConformanceAssertionGuid014;
+
+#define EFI_TEST_PKCS7BBTESTCONFORMANCE_ASSERTION_015_GUID \
+{ 0x5f83c45e, 0xce1d, 0x48cb, { 0x86, 0x80, 0xfe, 0x48, 0x63, 0x19, 0xc0, 0x1c  }}
+extern EFI_GUID gPkcs7BBTestConformanceAssertionGuid015;
+
+
 
 #define EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_001_GUID \
 { 0x5c0eec50, 0xa6ea, 0x413c, {0x8a, 0x46, 0x4a, 0xd1, 0x4a, 0x77, 0x76, 0xf1 }}
@@ -82,4 +103,11 @@ extern EFI_GUID gPkcs7BBTestFunctionAssertionGuid003;
 { 0x912e23ef, 0x299c, 0x41ab, {0xa0, 0xf5, 0xfc, 0xbc, 0xf6, 0xfd, 0xd3, 0x32 }}
 extern EFI_GUID gPkcs7BBTestFunctionAssertionGuid004;
 
+#define EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_005_GUID \
+{ 0x93740b06, 0xa186, 0x47ff, { 0xba, 0xc3, 0xdd, 0xa8, 0xcb, 0x7b, 0x18, 0x5e }}
+extern EFI_GUID gPkcs7BBTestFunctionAssertionGuid005;
+
+#define EFI_TEST_PKCS7BBTESTFUNCTION_ASSERTION_006_GUID \
+{ 0x37253616, 0xca42, 0x4082, { 0x90, 0xda, 0xdb, 0x69, 0x98, 0x22, 0xa0, 0xe6 }}
+extern EFI_GUID gPkcs7BBTestFunctionAssertionGuid006;
 
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestConformance.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestConformance.c
index a5a90f04..ea13248c 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestConformance.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestConformance.c
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2016 Unified EFI, Inc.<BR>
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -52,7 +52,7 @@ BBTestVerifyBufferConformanceTest (
 
   Pkcs7Verify = (EFI_PKCS7_VERIFY_PROTOCOL*)ClientInterface;
   if (Pkcs7Verify == NULL)
-  	return EFI_UNSUPPORTED;
+    return EFI_UNSUPPORTED;
 
   //
   // Get the Standard Library Interface
@@ -278,10 +278,6 @@ BBTestVerifyBufferConformanceTest (
                  Status
                  );
 
-
-  
-
-
   // Signed data embedded in SignedData but InData is not NULL
   AllowedDb[0] = DbEntry1;
   RevokedDb[0] = NULL;
@@ -507,4 +503,304 @@ BBTestVerifyBufferConformanceTest (
   return EFI_SUCCESS;
 }
 
+EFI_STATUS
+BBTestVerifySignatureConformanceTest (
+  IN EFI_BB_TEST_PROTOCOL    *This,
+  IN VOID                    *ClientInterface,
+  IN EFI_TEST_LEVEL          TestLevel,
+  IN EFI_HANDLE              SupportHandle
+  )
+{
+  EFI_STANDARD_TEST_LIBRARY_PROTOCOL    *StandardLib;
+  EFI_STATUS                            Status, Status1, Status2, Status3, Status4, Status5;
+  EFI_PKCS7_VERIFY_PROTOCOL             *Pkcs7Verify;
+  EFI_TEST_ASSERTION                    AssertionType;
+
+
+
+  Pkcs7Verify = (EFI_PKCS7_VERIFY_PROTOCOL*)ClientInterface;
+  if (Pkcs7Verify == NULL)
+  	return EFI_UNSUPPORTED;
+
+  //
+  // Get the Standard Library Interface
+  //
+  Status = gtBS->HandleProtocol (
+                   SupportHandle,
+                   &gEfiStandardTestLibraryGuid,
+                   (VOID **) &StandardLib
+                   );
+  if (EFI_ERROR(Status)) {
+    return Status;
+  }
+
+
+  AllowedDb[0] = DbEntry1;
+
+  //
+  // Checkpoint 1 - EFI_INVALID_PARAMETER
+  //
+
+  // Signature is NULL
+  Status1 = Pkcs7Verify->VerifySignature (Pkcs7Verify, NULL, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, NULL, NULL);
+
+  // SignatureSize is 0
+  Status2 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, 0, TestInHash, sizeof(TestInHash), AllowedDb, NULL, NULL);
+
+  // InHash is NULL.
+  Status3 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), NULL, sizeof(TestInHash), AllowedDb, NULL, NULL);
+
+  // InHashSize is 0.
+  Status4 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, 0, AllowedDb, NULL, NULL);
+  
+  // AllowedDb is NULL
+  Status5 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), NULL, NULL, NULL);
+  
+  
+  if ((Status1 == EFI_INVALID_PARAMETER) && (Status2 == EFI_INVALID_PARAMETER) && (Status3 == EFI_INVALID_PARAMETER) && (Status4 == EFI_INVALID_PARAMETER) &&
+  	(Status5 == EFI_INVALID_PARAMETER) )
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestConformanceAssertionGuid011 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_INVALID_PARAMETER.",
+                 L"%a:%d: Status1 - %r, Status2 - %r, Status3 - %r, Status4 - %r, Status5 - %r\n",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status1,
+                 Status2,
+                 Status3,
+                 Status4,
+                 Status5
+                 );
+
+  //
+  // Checkpoint 2 - EFI_UNSUPPORTED
+  //    NOTE: It's hard to distinguish unsupported Signature or security-violated signature for VerifySignature() interface
+  //          since we don't need to extra the attached content from input signature as VerifyBuffer() interface.
+  //          So it's OK to bypass this check or just check the EFI_SECURITY_VIOLATION result.
+  //
+
+  //
+  // Modify the Data in the Signature
+  //
+  P7TestSignature[0] = 0x40;
+  
+  Status = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, NULL, NULL);
+
+  if ((Status == EFI_UNSUPPORTED) || (Status == EFI_SECURITY_VIOLATION))
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestConformanceAssertionGuid012 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_UNSUPPORTED when Signature buffer was not clrrectly formatted.",
+                 L"%a:%d: Status - %r\n",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status
+                 );
+
+  //
+  // Restore the Signature
+  //
+  P7TestSignature[0] = 0x30;
+
+  //
+  // Checkpoint 3 - EFI_ABORTED
+  //
+#if 0
+  //
+  // Unsupported or invalid format in the AllowedDb
+  //
+  DbEntry6->SignatureListSize = 16;
+  AllowedDb[0] = DbEntry1; 
+  Status1 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+
+  //
+  // Restore the AllowedDb
+  //
+  AllowedDb[0] = NULL;
+  DbEntry1->SignatureListSize = sizeof (EFI_SIGNATURE_LIST) + 16 + sizeof (TestRootCert2);
+  
+  //
+  // Modify the Data in the RevokedDb
+  //
+  DbEntry1->SignatureListSize = 16;
+  RevokedDb[0] = DbEntry1;
+  
+  Status2 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+
+  //
+  // Restore the RevokedDb
+  //
+  RevokedDb[0] = NULL;
+  DbEntry1->SignatureListSize = sizeof (EFI_SIGNATURE_LIST) + 16 + sizeof (TestRootCert2);; 
+
+  //
+  // Modify the Data in the TimestampDb
+  //
+  DbEntry3->SignatureListSize = 16;
+  RevokedDb[0]   = DbEntry1;
+  AllowedDb[0]   = DbEntry1;
+  TimestampDb[0] = DbEntry3;
+
+  Status3 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+
+  //
+  // Restore the TimestampDb
+  //
+  RevokedDb[0]   = NULL;
+  AllowedDb[0]   = NULL;
+  TimestampDb[0] = NULL;
+  
+  DbEntry3->SignatureListSize = sizeof (EFI_SIGNATURE_LIST) + 16 + sizeof (TSRootCert2);  
+
+  if ((Status1 == EFI_ABORTED) && (Status2 == EFI_ABORTED) && (Status3 == EFI_ABORTED))
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestConformanceAssertionGuid013 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_ABORTED when Unsupported or invalid format in TimeStampDb, RevokedDb or AllowedDb list contents.",
+                 L"%a:%d: Status - %r\n",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status1, Status2, Status3
+                 );
+#endif
+  //
+  // Checkpoint 4 - EFI_COMPROMISED_DATA
+  //     NOTE: P7Verify leverage OpenSSL for pkcs7 signature verification. 
+  //           It's hard for EFI_COMPROMISED_DATA check. Just use EFI_SECURITY_VIOLATION for wrong InHash input.
+  //
+
+  //
+  // Modify the Data in the InHash
+  // 
+  TestInHash[0] = 0x3E;
+  Status1 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+  
+  //
+  // Restore the InHash
+  // 
+  TestInHash[0] = 0x3D;
+
+  Status2 = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash)- 2, AllowedDb, RevokedDb, TimestampDb);
+
+  if ((Status1 == EFI_SECURITY_VIOLATION) && (Status2 == EFI_SECURITY_VIOLATION))
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestConformanceAssertionGuid014 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_COMPROMISED_DATA when hash differs from signed hash.Or encrypted hash are different sizes.",
+                 L"%a:%d: Status - %r\n",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status1, Status2
+                 );
+
+  //
+  // Checkpoint 5 - EFI_SECURITY_VIOLATION
+  //
 
+  //
+  // The SignedData buffer was correctly formatted but signer was in RevokedDb 
+  //
+  AllowedDb[0] = DbEntry1;
+  RevokedDb[0] = DbEntry1;
+
+  Status = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+
+  AllowedDb[0] = NULL;
+  RevokedDb[0] = NULL;
+
+  if (Status == EFI_SECURITY_VIOLATION)
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestConformanceAssertionGuid015 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_SECURITY_VIOLATION when the SignedData buffer was correctly formatted but signer was in RevokedDb.",
+                 L"%a:%d: Status - %r\n",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status
+                 );
+
+
+  //
+  // The SignedData buffer was correctly formatted but signer was not in AllowedDb 
+  //
+  AllowedDb[0] = NULL;
+  
+  Status = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+
+  if (Status == EFI_SECURITY_VIOLATION)
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestConformanceAssertionGuid015 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_SECURITY_VIOLATION when the SignedData buffer was correctly formatted but signer was not in AllowedDb.",
+                 L"%a:%d: Status - %r\n",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status
+                 );
+  //
+  // Matching content hash found in the RevokedDb  
+  //
+  SctCopyMem ((UINT8 *)DbEntry4 + sizeof (EFI_SIGNATURE_LIST) + 16, TestInHash, 32);
+  RevokedDb[0] = DbEntry4;
+  AllowedDb[0] = DbEntry1;
+  Status = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+
+  RevokedDb[0] = NULL;
+  AllowedDb[0] = NULL;
+
+  if (Status == EFI_SECURITY_VIOLATION)
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestConformanceAssertionGuid015 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_SECURITY_VIOLATION when matching content hash found in the RevokedDb.",
+                 L"%a:%d: Status - %r\n",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status
+                 );
+
+  //
+  // Clean the Data in all Dbs
+  //
+  AllowedDb[0]   = NULL;
+  RevokedDb[0]   = NULL;
+  TimestampDb[0] = NULL;
+  
+  return EFI_SUCCESS;
+}  
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestData.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestData.c
index a164b54a..0945a758 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestData.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestData.c
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2016 Unified EFI, Inc.<BR>
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -24,542 +24,980 @@ Abstract:
 
 --*/
 
+//
+// Test Root Certificate ("TestRoot.cer")
+//
+GLOBAL_REMOVE_IF_UNREFERENCED UINT8 TestRootCert[781] = {
+  0x30, 0x82, 0x03, 0x09, 0x30, 0x82, 0x01, 0xF1, 0xA0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0xDE, 0x9F, 0x42, 0x91, 0x68, 0x16, 0xEA, 0x97, 0x4D,
+  0xA1, 0x8A, 0x32, 0x25, 0xD6, 0xEE, 0x8D, 0x30, 0x0D, 0x06, 0x09, 0x2A,
+  0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x13,
+  0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54,
+  0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31,
+  0x38, 0x30, 0x31, 0x32, 0x35, 0x30, 0x32, 0x30, 0x35, 0x35, 0x30, 0x5A,
+  0x17, 0x0D, 0x33, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39,
+  0x35, 0x39, 0x5A, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
+  0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00,
+  0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xA5, 0x97, 0x23,
+  0x48, 0xBE, 0xCA, 0xC8, 0xE0, 0x88, 0xC6, 0xA2, 0xAF, 0x78, 0x60, 0x94,
+  0x48, 0x3E, 0x82, 0xE7, 0xD5, 0x62, 0x01, 0x73, 0x00, 0xEA, 0x42, 0x7A,
+  0x32, 0x0A, 0xD7, 0x3F, 0x4D, 0x0B, 0x71, 0x6D, 0xD3, 0x50, 0x5E, 0x26,
+  0x20, 0xE8, 0xCC, 0xB6, 0x0A, 0xAF, 0xD9, 0x07, 0x22, 0x17, 0x45, 0xD8,
+  0x91, 0x75, 0x75, 0x52, 0xD8, 0x8C, 0xAB, 0x63, 0x0A, 0xF0, 0x23, 0x14,
+  0x34, 0x92, 0x3F, 0xE0, 0x05, 0x24, 0x28, 0xED, 0x74, 0x8E, 0x4D, 0x3E,
+  0xE9, 0xBA, 0xA8, 0x92, 0xB1, 0x0D, 0xCB, 0x60, 0x4B, 0xEA, 0x42, 0x84,
+  0x20, 0x25, 0x8E, 0x80, 0x1D, 0x57, 0xEE, 0xE7, 0xF4, 0xB8, 0x11, 0x3C,
+  0xDE, 0x51, 0x2F, 0xE1, 0xE8, 0xC0, 0x8B, 0x85, 0x7D, 0x54, 0x0F, 0x05,
+  0xBE, 0xD5, 0xAA, 0x70, 0xDD, 0xDE, 0x55, 0xEC, 0x78, 0x1F, 0x0B, 0xE6,
+  0x0D, 0xEF, 0xDB, 0xCD, 0x7A, 0x33, 0x17, 0xA3, 0xD5, 0xDB, 0x20, 0xC6,
+  0xF1, 0x48, 0xD6, 0x6E, 0x1F, 0xA1, 0x72, 0xD1, 0xA1, 0xF0, 0x47, 0x2D,
+  0xA2, 0xDC, 0x42, 0x11, 0x65, 0x3A, 0xE1, 0x32, 0x3E, 0x15, 0x25, 0xCA,
+  0x1F, 0x99, 0xE4, 0xA5, 0x01, 0x31, 0x0B, 0x84, 0xAC, 0xD2, 0x4B, 0x6B,
+  0xE3, 0xE8, 0x06, 0x19, 0xB6, 0xA6, 0xA8, 0xAB, 0xA9, 0x09, 0x72, 0x34,
+  0x4F, 0xDB, 0xA5, 0x3E, 0x11, 0x1B, 0xCA, 0xC3, 0x16, 0x69, 0x1D, 0x66,
+  0xC8, 0x2D, 0x7A, 0xF8, 0xBD, 0xE3, 0x96, 0x56, 0x26, 0xAB, 0xDE, 0x28,
+  0x8B, 0x86, 0x22, 0x0A, 0xAC, 0x96, 0xAE, 0x0D, 0x48, 0xA0, 0xEA, 0x15,
+  0xCD, 0xA0, 0x9F, 0xC4, 0xD8, 0x09, 0x67, 0x6A, 0x22, 0x24, 0x72, 0x69,
+  0xB4, 0xAB, 0x17, 0x13, 0xF3, 0x37, 0x68, 0x6A, 0xA7, 0xC6, 0x5F, 0x9A,
+  0xCE, 0x87, 0xB1, 0x28, 0x33, 0x66, 0xB3, 0x2A, 0xD2, 0xEF, 0xBF, 0x00,
+  0x85, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x59, 0x30, 0x57, 0x30, 0x0F,
+  0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x05, 0x30, 0x03,
+  0x01, 0x01, 0xFF, 0x30, 0x44, 0x06, 0x03, 0x55, 0x1D, 0x01, 0x04, 0x3D,
+  0x30, 0x3B, 0x80, 0x10, 0x7A, 0x73, 0xC4, 0xE1, 0x17, 0x5D, 0xA7, 0x53,
+  0x98, 0x6B, 0x7A, 0x61, 0x49, 0xBC, 0xE5, 0xE3, 0xA1, 0x15, 0x30, 0x13,
+  0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54,
+  0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x82, 0x10, 0xDE, 0x9F, 0x42,
+  0x91, 0x68, 0x16, 0xEA, 0x97, 0x4D, 0xA1, 0x8A, 0x32, 0x25, 0xD6, 0xEE,
+  0x8D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01,
+  0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x94, 0x21, 0x58,
+  0x01, 0xA5, 0xFC, 0xF7, 0x29, 0x03, 0x52, 0x7C, 0xCB, 0x5B, 0x52, 0xC7,
+  0x6C, 0x9C, 0xD5, 0xE9, 0xCB, 0xF4, 0x6D, 0xE8, 0xD5, 0xBE, 0xED, 0xF7,
+  0x35, 0x6C, 0x55, 0xAB, 0xDD, 0xA9, 0x66, 0xE8, 0x80, 0x5F, 0xBE, 0x4A,
+  0xCB, 0x81, 0xED, 0x9D, 0xD5, 0xC5, 0x1B, 0xEB, 0x37, 0x08, 0xEB, 0x8F,
+  0x47, 0xC1, 0x53, 0xC3, 0x94, 0x27, 0xEF, 0x57, 0xD4, 0xD8, 0x15, 0xB8,
+  0x3E, 0x2C, 0x3C, 0x17, 0x10, 0x1D, 0x8C, 0x88, 0xD0, 0xA5, 0x17, 0x46,
+  0x25, 0x2F, 0xDA, 0xE2, 0xF5, 0x97, 0x8E, 0xF8, 0x14, 0x40, 0x24, 0xC0,
+  0xE5, 0xC9, 0x36, 0x57, 0x41, 0xE9, 0xF7, 0x73, 0x74, 0xE8, 0x76, 0xB5,
+  0x9E, 0x85, 0xA8, 0x1E, 0x96, 0x27, 0x21, 0x4A, 0x8A, 0xFB, 0x9F, 0x81,
+  0x3B, 0x96, 0xAD, 0xFC, 0x73, 0x37, 0xCB, 0xDC, 0x70, 0x2B, 0x29, 0x7D,
+  0x53, 0x7C, 0xC0, 0xEC, 0x46, 0x86, 0x12, 0xDF, 0x95, 0x61, 0xAE, 0x76,
+  0x7E, 0xDE, 0x43, 0x23, 0x98, 0xD0, 0x7E, 0x29, 0x0E, 0xAB, 0xD9, 0x4A,
+  0xE2, 0xD0, 0x66, 0x45, 0xC6, 0xD0, 0x30, 0x02, 0x60, 0x09, 0xF3, 0xFB,
+  0xF1, 0x7F, 0xE8, 0xCE, 0x41, 0x4A, 0xE5, 0x64, 0xF6, 0x01, 0xCE, 0x04,
+  0xE4, 0x0B, 0xD0, 0x12, 0x2D, 0x90, 0x1D, 0x36, 0x97, 0xD5, 0x7B, 0xB3,
+  0xFD, 0xD9, 0x56, 0x64, 0x3C, 0x6E, 0x8B, 0xBC, 0x58, 0x3C, 0xC8, 0xE1,
+  0x5A, 0xDE, 0xB2, 0x29, 0x16, 0x30, 0x13, 0xB4, 0xC2, 0x07, 0x4C, 0x4F,
+  0x2E, 0x77, 0x20, 0xDC, 0x4A, 0xB7, 0x59, 0x21, 0x07, 0x32, 0x90, 0x80,
+  0x5D, 0x06, 0xBA, 0x5D, 0x1C, 0xDA, 0x01, 0xE5, 0x13, 0x91, 0x05, 0xE8,
+  0x71, 0x82, 0x68, 0x90, 0x6C, 0x8A, 0x93, 0x38, 0x67, 0x8E, 0x15, 0x5A,
+  0xD6, 0x3F, 0xB3, 0x9E, 0x54, 0xE2, 0x51, 0x7F, 0xEB, 0x20, 0x72, 0x62,
+  0x50
+  };
+
+//
+// Test Sub Certificate ("TestSub.cer", Issued by TestRoot Certificate)
+//
+UINT8 TestSubCert[780] = {
+  0x30, 0x82, 0x03, 0x08, 0x30, 0x82, 0x01, 0xF0, 0xA0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x87, 0xF0, 0xD2, 0x05, 0x0C, 0x57, 0x0C, 0x96, 0x48,
+  0x94, 0xBA, 0x6B, 0xEB, 0xA2, 0x97, 0x46, 0x30, 0x0D, 0x06, 0x09, 0x2A,
+  0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x13,
+  0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54,
+  0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31,
+  0x38, 0x30, 0x31, 0x32, 0x35, 0x30, 0x32, 0x30, 0x36, 0x34, 0x35, 0x5A,
+  0x17, 0x0D, 0x33, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39,
+  0x35, 0x39, 0x5A, 0x30, 0x12, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x07, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x62, 0x30,
+  0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7,
+  0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30,
+  0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0x9F, 0x97, 0xC4, 0x19,
+  0x70, 0x6C, 0x7D, 0x3D, 0x7F, 0x32, 0xC8, 0x01, 0xFA, 0xA9, 0x36, 0x84,
+  0xA2, 0xAF, 0xB6, 0xF5, 0xC6, 0x22, 0xF6, 0xF9, 0x98, 0xDB, 0xC9, 0xEF,
+  0xA0, 0xDF, 0x2E, 0x02, 0x8B, 0x76, 0xD0, 0x05, 0x72, 0x72, 0x0A, 0xBB,
+  0xAC, 0x45, 0xDA, 0x45, 0x96, 0x7E, 0x71, 0x69, 0x32, 0x1C, 0xA0, 0x73,
+  0x93, 0x91, 0xBA, 0x86, 0x6A, 0x86, 0xFC, 0x2B, 0x95, 0x57, 0x82, 0xD8,
+  0x67, 0x59, 0x43, 0xD8, 0xEE, 0xBE, 0x12, 0xF1, 0x9F, 0x95, 0x8E, 0x10,
+  0xA0, 0xFC, 0xF4, 0x47, 0x19, 0x49, 0xA3, 0xA0, 0xE5, 0x93, 0x3A, 0x7C,
+  0x0B, 0x03, 0xE5, 0x8E, 0xDF, 0xCD, 0x86, 0x98, 0x9C, 0xF4, 0x95, 0x67,
+  0x9D, 0xD8, 0xB8, 0xC2, 0x16, 0xED, 0x20, 0x7D, 0x07, 0x7F, 0xAD, 0xD0,
+  0x75, 0x5F, 0x7B, 0xB9, 0xA3, 0xC2, 0xD4, 0x2F, 0x42, 0x06, 0xE4, 0xBA,
+  0x8C, 0xF0, 0x69, 0x71, 0xA2, 0x3B, 0x68, 0x3A, 0x35, 0x10, 0x32, 0x0E,
+  0xDA, 0x91, 0xC6, 0x00, 0x83, 0x74, 0xAB, 0xF4, 0xB4, 0x55, 0xC2, 0x48,
+  0x9A, 0xCE, 0x89, 0xFE, 0x28, 0x10, 0x62, 0xEA, 0xC0, 0xC5, 0xC4, 0x15,
+  0x20, 0x78, 0xF9, 0xB0, 0xE9, 0x7B, 0xA3, 0x1B, 0xB8, 0xE7, 0xA5, 0x79,
+  0xA5, 0xFF, 0x1B, 0x68, 0xA3, 0xA4, 0x3A, 0x18, 0xA6, 0x77, 0xF6, 0x2F,
+  0xC8, 0xC4, 0xBD, 0xA6, 0xDC, 0xC6, 0xAF, 0x48, 0xF4, 0x44, 0xF9, 0x60,
+  0x00, 0xE7, 0x94, 0xBC, 0xE3, 0x70, 0x2E, 0x21, 0x8E, 0x6E, 0x90, 0xD0,
+  0x4B, 0xE1, 0xB6, 0x58, 0x81, 0x4E, 0x4E, 0xAA, 0xEB, 0x6A, 0xE8, 0xBC,
+  0xCE, 0xD7, 0x96, 0xB0, 0x6A, 0x99, 0x8D, 0x93, 0xF9, 0x79, 0xA3, 0xAD,
+  0x9A, 0x3C, 0x52, 0x0E, 0x87, 0x9B, 0x34, 0xBC, 0x1D, 0xD0, 0x6A, 0x77,
+  0xCC, 0x21, 0x2F, 0x5F, 0xCB, 0x60, 0x0A, 0xEF, 0xF5, 0xBD, 0xE9, 0x15,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x59, 0x30, 0x57, 0x30, 0x0F, 0x06,
+  0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x05, 0x30, 0x03, 0x01,
+  0x01, 0xFF, 0x30, 0x44, 0x06, 0x03, 0x55, 0x1D, 0x01, 0x04, 0x3D, 0x30,
+  0x3B, 0x80, 0x10, 0x7A, 0x73, 0xC4, 0xE1, 0x17, 0x5D, 0xA7, 0x53, 0x98,
+  0x6B, 0x7A, 0x61, 0x49, 0xBC, 0xE5, 0xE3, 0xA1, 0x15, 0x30, 0x13, 0x31,
+  0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65,
+  0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x82, 0x10, 0xDE, 0x9F, 0x42, 0x91,
+  0x68, 0x16, 0xEA, 0x97, 0x4D, 0xA1, 0x8A, 0x32, 0x25, 0xD6, 0xEE, 0x8D,
+  0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01,
+  0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x2A, 0x39, 0x32, 0xE5,
+  0xFA, 0x14, 0x03, 0x1A, 0x8B, 0xBD, 0xDF, 0xAB, 0x6D, 0x1C, 0xF7, 0x8B,
+  0xE5, 0x76, 0x4E, 0x02, 0xDF, 0x9D, 0x18, 0x7E, 0x1E, 0x73, 0xDC, 0x9C,
+  0xD5, 0x36, 0xA2, 0x91, 0xC7, 0xC0, 0xAC, 0xEE, 0x92, 0xE8, 0x3C, 0x88,
+  0x2A, 0xF5, 0x61, 0x6F, 0xB7, 0xC4, 0x21, 0xC3, 0xCD, 0xE5, 0xCF, 0x48,
+  0x46, 0x67, 0x5A, 0xC3, 0x16, 0x4E, 0xBE, 0xF0, 0x30, 0xD8, 0x3B, 0xBC,
+  0x8F, 0x84, 0xCD, 0x15, 0xD5, 0xB3, 0x11, 0xA0, 0xAD, 0xED, 0x81, 0x51,
+  0x49, 0x71, 0x7F, 0xF6, 0xCC, 0x4C, 0x44, 0x59, 0x13, 0x5E, 0x27, 0x98,
+  0x73, 0x5B, 0x74, 0xD6, 0xD6, 0x59, 0xFF, 0x81, 0x57, 0xBF, 0xF1, 0xF3,
+  0x01, 0x6C, 0xE6, 0x32, 0xE4, 0x05, 0xFE, 0x1B, 0x1E, 0x33, 0x03, 0x2E,
+  0x9A, 0xA1, 0x1E, 0xBE, 0xA3, 0x0E, 0xA5, 0x59, 0x50, 0x38, 0x3D, 0x0B,
+  0xF7, 0xD8, 0x25, 0x15, 0xCB, 0xFA, 0x73, 0x22, 0x24, 0xD2, 0x5E, 0x7F,
+  0xAE, 0x8B, 0x8F, 0x44, 0x29, 0x68, 0x49, 0x6A, 0x36, 0xA8, 0x29, 0x5B,
+  0xAE, 0xD3, 0xE4, 0x5E, 0xE1, 0xDB, 0xF1, 0x73, 0xEE, 0x15, 0x88, 0x03,
+  0x69, 0x0D, 0x53, 0xF4, 0x92, 0x93, 0xDF, 0xC9, 0x95, 0x22, 0xED, 0x0E,
+  0xEB, 0xCD, 0xB2, 0x1E, 0xFD, 0xCA, 0xEF, 0x53, 0x06, 0xF2, 0xE0, 0x85,
+  0xE2, 0x51, 0x6C, 0xE9, 0xAB, 0x8D, 0x30, 0x5A, 0xC3, 0xDC, 0x0A, 0xC2,
+  0xDC, 0x23, 0x47, 0xDD, 0x8F, 0x18, 0x06, 0x24, 0xFF, 0x77, 0xF8, 0xFA,
+  0x25, 0x2B, 0x68, 0x7A, 0xD1, 0xED, 0x41, 0xA2, 0x37, 0x95, 0xBC, 0x2B,
+  0xBB, 0x64, 0xBE, 0x9D, 0x6A, 0x6E, 0x5A, 0x85, 0xBF, 0x03, 0xC5, 0x4E,
+  0xA1, 0x5D, 0x82, 0xFE, 0x19, 0x85, 0xD7, 0x60, 0xE9, 0x01, 0xB3, 0x40,
+  0x1F, 0x8B, 0x16, 0xDD, 0xFD, 0x22, 0x55, 0x2F, 0x3D, 0xDF, 0xA7, 0x28
+  };
+
+//
+// The SHA256 Digest Value of Sample TBSCert in TestSub Certificate
+//
+GLOBAL_REMOVE_IF_UNREFERENCED UINT8 TestSubCertHash[32] = {
+  0x08, 0xae, 0xc4, 0xe2, 0xef, 0x27, 0x02, 0xe1, 0x52, 0xfc, 0x1a, 0x35,
+  0xa5, 0x33, 0x35, 0x04, 0xff, 0x86, 0x66, 0xf8, 0x46, 0xbf, 0xcc, 0x40,
+  0x8f, 0x0f, 0x57, 0x71, 0xa5, 0x8c, 0x21, 0x3f
+  };
+
+//
+// The Comodo Time Stamping Signer Certificate Used for the verification of TimeStamp signature
+// which was retrieved from signed-timestamped TestBin binary.
+//
+GLOBAL_REMOVE_IF_UNREFERENCED UINT8 TSRootCert[1181] = {
+  0x30, 0x82, 0x04, 0x99, 0x30, 0x82, 0x03, 0x81, 0xA0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0F, 0x16, 0x88, 0xF0, 0x39, 0x25, 0x5E, 0x63, 0x8E, 0x69,
+  0x14, 0x39, 0x07, 0xE6, 0x33, 0x0B, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86,
+  0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x95,
+  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, 0x1D,
+  0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x55, 0x54, 0x4E,
+  0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74, 0x2D, 0x4F,
+  0x62, 0x6A, 0x65, 0x63, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x35, 0x31,
+  0x32, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D,
+  0x31, 0x39, 0x30, 0x37, 0x30, 0x39, 0x31, 0x38, 0x34, 0x30, 0x33, 0x36,
+  0x5A, 0x30, 0x81, 0x84, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
+  0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30, 0x19, 0x06, 0x03, 0x55,
+  0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20,
+  0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10,
+  0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C,
+  0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04,
+  0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41,
+  0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2A, 0x30, 0x28,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x43, 0x4F, 0x4D, 0x4F, 0x44,
+  0x4F, 0x20, 0x53, 0x48, 0x41, 0x2D, 0x31, 0x20, 0x54, 0x69, 0x6D, 0x65,
+  0x20, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x69, 0x6E, 0x67, 0x20, 0x53, 0x69,
+  0x67, 0x6E, 0x65, 0x72, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09,
+  0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xE9, 0xE9, 0x3D, 0xDF, 0xD7, 0x37, 0x08, 0xC9, 0x1E, 0x38, 0xB2,
+  0x52, 0x53, 0x42, 0x6D, 0x22, 0xF1, 0xB1, 0xC4, 0x06, 0x04, 0x6B, 0x9E,
+  0xFD, 0x82, 0x74, 0x50, 0x43, 0x7D, 0xC6, 0xA0, 0xBB, 0x1F, 0x4E, 0xF9,
+  0x02, 0x71, 0x26, 0xB1, 0xEF, 0x43, 0xD8, 0x83, 0x8C, 0x48, 0xFC, 0xE7,
+  0x0F, 0x97, 0x7A, 0x9A, 0xEB, 0x9C, 0xDE, 0xA6, 0xA3, 0x0E, 0x3B, 0x1C,
+  0x44, 0x18, 0x75, 0x8E, 0x78, 0xA5, 0x17, 0x69, 0xFE, 0x49, 0x18, 0xA4,
+  0xE2, 0xBB, 0x5C, 0x4E, 0xFE, 0x8E, 0x2A, 0x54, 0x7A, 0x50, 0xF0, 0xD5,
+  0xF6, 0xCC, 0x91, 0xE7, 0x99, 0x79, 0xD7, 0xDE, 0x79, 0x94, 0xD7, 0x96,
+  0x33, 0xFE, 0x0E, 0x83, 0xBE, 0x22, 0xBF, 0x63, 0x16, 0x2C, 0xA3, 0xDD,
+  0x28, 0x1B, 0xAF, 0x3D, 0xAB, 0xEA, 0x97, 0xD2, 0xF1, 0xBF, 0x04, 0x10,
+  0xE7, 0x3D, 0x48, 0x45, 0xFD, 0x1F, 0x68, 0x65, 0xC1, 0x7F, 0x59, 0x99,
+  0x69, 0xC0, 0x22, 0x31, 0x0C, 0x62, 0x6E, 0xA7, 0x5C, 0x65, 0x01, 0x21,
+  0xB0, 0x63, 0xC4, 0x22, 0x18, 0x27, 0xEE, 0xE6, 0xFC, 0xD2, 0x00, 0x3D,
+  0x47, 0x2E, 0xA8, 0xB8, 0x86, 0x56, 0x5D, 0x04, 0xDC, 0x13, 0x17, 0x25,
+  0x6E, 0x1C, 0xDF, 0x44, 0x0F, 0x15, 0xCD, 0xB7, 0xDB, 0xA5, 0x57, 0x76,
+  0x42, 0x6F, 0x00, 0x68, 0x82, 0x99, 0xD2, 0xE3, 0xC1, 0xDE, 0xF0, 0x8B,
+  0x94, 0x57, 0x4C, 0xEC, 0x08, 0x90, 0x22, 0x21, 0xCE, 0x22, 0x2B, 0x98,
+  0x0C, 0x42, 0xE6, 0x42, 0x93, 0x94, 0x98, 0x93, 0xEF, 0xFD, 0x06, 0xD9,
+  0x3F, 0xBC, 0x5B, 0x9B, 0x54, 0x3C, 0x20, 0xB1, 0xEE, 0x6A, 0xD6, 0x47,
+  0x7A, 0xC5, 0xAB, 0x80, 0xE9, 0x30, 0x9A, 0xDE, 0xF1, 0xA4, 0x3F, 0x55,
+  0x4D, 0x0A, 0x09, 0x34, 0x8A, 0x75, 0x29, 0xD2, 0x69, 0xAD, 0x97, 0x0F,
+  0x50, 0xBF, 0xF8, 0xCA, 0x09, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x81,
+  0xF4, 0x30, 0x81, 0xF1, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0xDA, 0xED, 0x64, 0x74, 0x14, 0x9C, 0x14,
+  0x3C, 0xAB, 0xDD, 0x99, 0xA9, 0xBD, 0x5B, 0x28, 0x4D, 0x8B, 0x3C, 0xC9,
+  0xD8, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14,
+  0x8E, 0x6B, 0x2D, 0x33, 0x6B, 0xF4, 0x33, 0xA7, 0x93, 0xB3, 0x13, 0x9A,
+  0xA5, 0xE0, 0x0A, 0xF7, 0x12, 0x35, 0x6A, 0x88, 0x30, 0x0E, 0x06, 0x03,
+  0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02, 0x06, 0xC0,
+  0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x02,
+  0x30, 0x00, 0x30, 0x16, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x01, 0x01, 0xFF,
+  0x04, 0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x08, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x3B, 0x30,
+  0x39, 0x30, 0x37, 0xA0, 0x35, 0xA0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74,
+  0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x6C, 0x2E, 0x75, 0x73, 0x65, 0x72,
+  0x74, 0x72, 0x75, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x55, 0x54,
+  0x4E, 0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74, 0x2D,
+  0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x35,
+  0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x29,
+  0x30, 0x27, 0x30, 0x25, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6F,
+  0x63, 0x73, 0x70, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48,
+  0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+  0x00, 0xBA, 0x33, 0x24, 0x40, 0x40, 0x8C, 0x7C, 0xDB, 0x58, 0x9F, 0xB3,
+  0x60, 0x98, 0xB2, 0xF5, 0xC0, 0x31, 0xFE, 0xEB, 0x1F, 0x6E, 0x50, 0xF6,
+  0x0A, 0xE0, 0xE4, 0xE6, 0x81, 0xAD, 0x26, 0x87, 0xA2, 0xDF, 0xFD, 0xB3,
+  0xDA, 0xF4, 0x73, 0xF3, 0x00, 0xFB, 0x29, 0x1B, 0x89, 0x1B, 0x15, 0x3E,
+  0xDB, 0x6B, 0x52, 0x93, 0x2B, 0xC4, 0xAC, 0x39, 0x81, 0xD7, 0x3C, 0x67,
+  0x57, 0x9A, 0x39, 0x36, 0xE0, 0x28, 0x08, 0x9A, 0xE3, 0x39, 0x4F, 0x9B,
+  0x89, 0x09, 0x7F, 0x7B, 0xC5, 0x61, 0x7F, 0x59, 0x89, 0x32, 0x25, 0x0A,
+  0x6A, 0xAE, 0x1A, 0x3E, 0xF0, 0xA2, 0x27, 0xA8, 0xB6, 0xC3, 0xB8, 0x87,
+  0xF7, 0x16, 0x04, 0x48, 0x41, 0x3D, 0x5C, 0xD8, 0xEC, 0x9F, 0x4D, 0x20,
+  0x31, 0x04, 0xD9, 0x65, 0xA1, 0xED, 0xCD, 0x69, 0x07, 0x53, 0x16, 0x3D,
+  0xDD, 0x36, 0x02, 0x0A, 0x88, 0xEB, 0x40, 0xE5, 0x06, 0x30, 0x0B, 0xB8,
+  0x16, 0x4B, 0xDC, 0xEF, 0xBC, 0x55, 0x09, 0xFF, 0xC6, 0x3E, 0x12, 0x2E,
+  0x76, 0xB3, 0xDC, 0xCE, 0x42, 0xEF, 0xF9, 0x76, 0x57, 0xE1, 0xB7, 0x0A,
+  0x05, 0x40, 0x98, 0x58, 0x9A, 0x5D, 0x71, 0x16, 0x93, 0x71, 0x8C, 0x65,
+  0x81, 0xEA, 0x6F, 0xF3, 0x89, 0xF7, 0xFB, 0x73, 0xAD, 0xB4, 0xE7, 0xBF,
+  0xD9, 0x8E, 0x6F, 0xAA, 0x0B, 0x4F, 0x25, 0xF3, 0xB8, 0xE1, 0xD5, 0xDD,
+  0x75, 0x98, 0x68, 0x81, 0xF8, 0xAA, 0xC0, 0xD1, 0x80, 0xC2, 0xC4, 0xC4,
+  0x39, 0x89, 0xC1, 0xF6, 0xC9, 0x9E, 0x6C, 0xD7, 0x74, 0xF9, 0xD9, 0x97,
+  0xF8, 0x4F, 0xC2, 0x9A, 0x0A, 0xCD, 0x5E, 0x8F, 0xF8, 0x19, 0xE9, 0xE0,
+  0xA5, 0x9F, 0xC4, 0xF0, 0x92, 0x21, 0xE6, 0x2D, 0x79, 0x25, 0xC9, 0x22,
+  0xF9, 0xC3, 0xF0, 0x3A, 0x84, 0x57, 0xAD, 0x3A, 0x16, 0xF4, 0x63, 0x94,
+  0x10, 0x1D, 0x5D, 0xD0, 0xC6
+  };
+
 //
 // Sample Test Data for P7 Signing & Verification.
 //      "Hello World!
 //       Test for PKCS7 Blob Data Signing & Verification."
 //
 UINT8 TestBin[64] = {
-  0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21, 0x0d, 0x0a, 0x54, 0x65,
-  0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x50, 0x4b, 0x43, 0x53, 0x37, 0x20, 0x42, 0x6c, 0x6f,
-  0x62, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x26,
-  0x20, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0d, 0x0a
-};
+  0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x21,
+  0x0D, 0x0A, 0x54, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x50,
+  0x4B, 0x43, 0x53, 0x37, 0x20, 0x42, 0x6C, 0x6F, 0x62, 0x20, 0x44, 0x61,
+  0x74, 0x61, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x26,
+  0x20, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F,
+  0x6E, 0x2E, 0x0D, 0x0A
+  };
 
 //
 // The SHA256 Digest Value of Sample Test Data
 //
 UINT8 TestBinHash[32] = {
-  0x45, 0xce, 0x79, 0x80, 0xef, 0x43, 0x8f, 0x63, 0xd0, 0x75, 0x23, 0x48, 0x38, 0x2f, 0xd8, 0x48,
-  0x21, 0x5d, 0xcc, 0x37, 0x68, 0x97, 0x0f, 0xb4, 0x7c, 0xc1, 0xff, 0x91, 0xb2, 0x04, 0xf7, 0x0e
-};
-
-UINT8 TestSubCert[755] = {
-  0x30, 0x82, 0x02, 0xEF, 0x30, 0x82, 0x01, 0xDB, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0xF9,
-  0xCD, 0x3A, 0x06, 0x4D, 0x83, 0x34, 0xAB, 0x4A, 0x5C, 0xF2, 0x7D, 0xC8, 0x72, 0xD6, 0x28, 0x30,
-  0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1D, 0x05, 0x00, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F,
-  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x30,
-  0x1E, 0x17, 0x0D, 0x31, 0x35, 0x30, 0x38, 0x31, 0x33, 0x30, 0x36, 0x35, 0x32, 0x35, 0x32, 0x5A,
-  0x17, 0x0D, 0x33, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30,
-  0x12, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x07, 0x54, 0x65, 0x73, 0x74,
-  0x53, 0x75, 0x62, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7,
-  0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02,
-  0x82, 0x01, 0x01, 0x00, 0xB1, 0x6D, 0x01, 0x2E, 0xC2, 0xEA, 0x72, 0x83, 0xDA, 0x47, 0xCF, 0xC2,
-  0xB9, 0x03, 0xC5, 0x2D, 0x1E, 0x06, 0xA1, 0x36, 0xD2, 0x81, 0x7B, 0x51, 0xAA, 0x10, 0xDD, 0x74,
-  0xCB, 0x57, 0x41, 0x1F, 0xFE, 0x5A, 0x9C, 0xA1, 0x81, 0x0A, 0xDF, 0x0A, 0x54, 0x38, 0xA2, 0xA5,
-  0x35, 0xAF, 0xB3, 0xD0, 0x43, 0xC1, 0x11, 0xBB, 0xFD, 0x82, 0x4A, 0x64, 0xBF, 0x35, 0xE4, 0xC5,
-  0x95, 0x1A, 0x2B, 0x6D, 0x3D, 0xA7, 0x06, 0x26, 0xBF, 0xBA, 0x3A, 0x92, 0x39, 0xC2, 0xB5, 0x24,
-  0xA2, 0xE7, 0x91, 0x91, 0xD6, 0x83, 0x15, 0x4A, 0x45, 0x6A, 0x90, 0x43, 0xD5, 0x4E, 0x18, 0xD2,
-  0xCE, 0xA7, 0xCA, 0x0B, 0x0A, 0x1E, 0x80, 0xE2, 0x97, 0xB3, 0x62, 0xC3, 0xAC, 0x36, 0x5A, 0x10,
-  0x78, 0xB9, 0x87, 0xBA, 0xFB, 0x36, 0xE3, 0xC2, 0x39, 0x66, 0x68, 0x1C, 0x31, 0xD4, 0x32, 0xE3,
-  0x4F, 0x62, 0x3A, 0x32, 0x4B, 0xC6, 0xF4, 0x56, 0xCD, 0xC1, 0xDF, 0x76, 0x52, 0x43, 0x4F, 0xB4,
-  0x2E, 0x29, 0x06, 0x0A, 0x28, 0xB9, 0x03, 0xDD, 0x65, 0x81, 0x1A, 0x7A, 0x47, 0x2F, 0x86, 0xAB,
-  0x37, 0xD9, 0xE3, 0x83, 0x6C, 0xE0, 0x7D, 0x74, 0x26, 0x16, 0x8F, 0xCC, 0x2C, 0x12, 0xBB, 0x06,
-  0xD5, 0x7E, 0x3B, 0x5A, 0xE7, 0x22, 0x1B, 0x41, 0xB3, 0x9F, 0xA4, 0x8C, 0x09, 0xC6, 0x8B, 0x4C,
-  0x60, 0xF1, 0x9D, 0xDE, 0x94, 0x05, 0x19, 0xC4, 0xE3, 0x10, 0x31, 0x02, 0xE0, 0xEF, 0x4B, 0x7B,
-  0x76, 0xBF, 0xB2, 0xC3, 0xC8, 0x13, 0x67, 0xEF, 0x15, 0xF5, 0xAB, 0x17, 0xF9, 0x8B, 0x99, 0x09,
-  0xEC, 0x17, 0xC7, 0x94, 0xDB, 0x3E, 0xAE, 0x88, 0x49, 0x4B, 0xBC, 0x28, 0x02, 0x57, 0xF6, 0xED,
-  0xF7, 0xDE, 0x1F, 0xEA, 0x67, 0x86, 0xCA, 0x40, 0x61, 0x0F, 0x2C, 0xBA, 0xCD, 0xC0, 0x55, 0x5E,
-  0xDC, 0xF8, 0xCD, 0x53, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x48, 0x30, 0x46, 0x30, 0x44, 0x06,
-  0x03, 0x55, 0x1D, 0x01, 0x04, 0x3D, 0x30, 0x3B, 0x80, 0x10, 0x84, 0xB5, 0x25, 0xA3, 0xD7, 0x99,
-  0x43, 0xE5, 0x71, 0xD3, 0x1D, 0xEE, 0x15, 0x25, 0x0C, 0x6A, 0xA1, 0x15, 0x30, 0x13, 0x31, 0x11,
-  0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F,
-  0x74, 0x82, 0x10, 0x6F, 0xC8, 0x9C, 0x84, 0x28, 0x03, 0x85, 0x9B, 0x49, 0xA7, 0xD3, 0x63, 0x4F,
-  0xCC, 0x11, 0xF4, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1D, 0x05, 0x00, 0x03, 0x82,
-  0x01, 0x01, 0x00, 0x10, 0x5F, 0xC3, 0xCD, 0x68, 0x05, 0x16, 0x26, 0x94, 0xBE, 0xEC, 0x30, 0x4A,
-  0x78, 0x58, 0x7A, 0xC8, 0xAC, 0x9E, 0xDF, 0xF3, 0x8A, 0x31, 0x33, 0x92, 0x24, 0x18, 0xF5, 0x88,
-  0x1E, 0xBC, 0xFA, 0xA0, 0xC2, 0x14, 0x74, 0xE1, 0x7B, 0x98, 0x84, 0x8B, 0xF5, 0x27, 0x2C, 0x70,
-  0x99, 0x8E, 0x98, 0x11, 0x01, 0xF7, 0xC9, 0x52, 0xD2, 0x1B, 0x36, 0xC9, 0x9F, 0xC5, 0x80, 0x7C,
-  0xCF, 0xD8, 0xC1, 0xC9, 0x40, 0xF9, 0x91, 0x27, 0xD0, 0x90, 0x3D, 0x1A, 0xDB, 0x60, 0x58, 0x66,
-  0x4D, 0xD7, 0xA4, 0x98, 0x37, 0x21, 0x93, 0xB7, 0x87, 0xD3, 0x71, 0x6B, 0x36, 0xA2, 0x40, 0xFC,
-  0x19, 0x51, 0x80, 0x1D, 0xD6, 0xEF, 0x9E, 0x5B, 0xD9, 0x7B, 0x02, 0x04, 0xE4, 0x53, 0x40, 0x5F,
-  0x3E, 0xE2, 0x4D, 0xEB, 0x19, 0x9E, 0xAF, 0xC5, 0x5B, 0x8E, 0x4F, 0x6B, 0x7B, 0xC8, 0xB4, 0xC9,
-  0x35, 0xA3, 0x8B, 0xB4, 0x7B, 0x97, 0x08, 0x49, 0x3E, 0x9B, 0x20, 0x49, 0x81, 0x1C, 0x85, 0xE5,
-  0xEF, 0x58, 0x46, 0x4F, 0x63, 0xF7, 0x49, 0x3A, 0x1B, 0x83, 0xCD, 0x7C, 0x9B, 0xC2, 0xF8, 0xC2,
-  0x5D, 0x62, 0xD2, 0x4D, 0x18, 0xAD, 0x87, 0x77, 0x54, 0x6F, 0x8C, 0x6A, 0x31, 0x64, 0x2E, 0xFD,
-  0x29, 0x8F, 0xDF, 0xC8, 0xC7, 0x35, 0x91, 0xE4, 0x76, 0xA1, 0x0E, 0x03, 0x8F, 0xC1, 0xBF, 0x35,
-  0x4B, 0x2A, 0xF1, 0x7F, 0x8B, 0x0F, 0xC3, 0x9D, 0x5D, 0x41, 0x40, 0x8A, 0x05, 0xEB, 0x53, 0xE6,
-  0xF4, 0x03, 0x33, 0x07, 0xAB, 0x21, 0x51, 0x50, 0x37, 0xB5, 0x65, 0x43, 0x4D, 0x25, 0x8B, 0xB0,
-  0x77, 0x47, 0xA3, 0xC7, 0x1C, 0xC7, 0xE7, 0xB4, 0x8B, 0x4D, 0x9E, 0x5B, 0x77, 0xE3, 0x36, 0x69,
-  0xB4, 0x8F, 0x0D, 0x6C, 0xD0, 0xC5, 0x9D, 0x8D, 0xD2, 0x49, 0xED, 0x5B, 0x21, 0x61, 0xF6, 0x2C,
-  0x74, 0x84, 0xA1
-};
-
-UINT8 TestRootCert[756] = { 
-  0x30, 0x82, 0x02, 0xF0, 0x30, 0x82, 0x01, 0xDC, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x6F, 
-  0xC8, 0x9C, 0x84, 0x28, 0x03, 0x85, 0x9B, 0x49, 0xA7, 0xD3, 0x63, 0x4F, 0xCC, 0x11, 0xF4, 0x30, 
-  0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1D, 0x05, 0x00, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 
-  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x30, 
-  0x1E, 0x17, 0x0D, 0x31, 0x35, 0x30, 0x38, 0x31, 0x33, 0x30, 0x36, 0x35, 0x30, 0x31, 0x33, 0x5A, 
-  0x17, 0x0D, 0x33, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 
-  0x13, 0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 
-  0x52, 0x6F, 0x6F, 0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 
-  0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 
-  0x02, 0x82, 0x01, 0x01, 0x00, 0xD0, 0xCC, 0xC7, 0x8F, 0x69, 0xAB, 0x7C, 0xEE, 0xF4, 0xEC, 0xEE, 
-  0x82, 0x8A, 0xD3, 0xE0, 0x14, 0x19, 0x1F, 0xB8, 0xCC, 0xA8, 0x65, 0xF3, 0xF8, 0x93, 0xF6, 0xBA, 
-  0x23, 0x11, 0xA5, 0xDC, 0xD4, 0xBC, 0xB6, 0xAD, 0x6E, 0x06, 0xCC, 0x19, 0x1A, 0xCE, 0x16, 0xFA, 
-  0x0A, 0x36, 0x39, 0x2F, 0x90, 0x89, 0x90, 0xBB, 0x0A, 0xC3, 0xAF, 0x6E, 0x69, 0x6C, 0x0B, 0xB8, 
-  0xD2, 0xD6, 0xB9, 0xC0, 0x23, 0xD7, 0x3C, 0x15, 0xFC, 0x24, 0x06, 0x9D, 0xED, 0x60, 0xEF, 0x29, 
-  0xA3, 0x3B, 0xBA, 0x02, 0xC3, 0x5F, 0xA4, 0x36, 0xC6, 0xBF, 0x8B, 0x8F, 0x32, 0x95, 0xE0, 0x5C, 
-  0x80, 0xF5, 0x0E, 0x78, 0x45, 0xF5, 0xE1, 0x51, 0x19, 0x97, 0x1B, 0xDE, 0xD4, 0xBB, 0xF2, 0x9B, 
-  0xFF, 0x01, 0xE3, 0x4B, 0x9C, 0xEF, 0x7E, 0x3F, 0x1C, 0x97, 0x82, 0x21, 0x9A, 0xCA, 0x90, 0x36, 
-  0x7F, 0x83, 0xEA, 0x03, 0x1B, 0x79, 0x0B, 0x2F, 0xD7, 0xB3, 0x35, 0x79, 0x36, 0xD3, 0xE5, 0x40, 
-  0x9C, 0x52, 0xB0, 0x36, 0x52, 0x0E, 0x8A, 0x9D, 0xA9, 0x02, 0xE0, 0x8C, 0xF1, 0x02, 0x12, 0x70, 
-  0x29, 0x2C, 0xAE, 0x3E, 0x9C, 0x7F, 0x3A, 0xB7, 0x2D, 0x4B, 0xB9, 0x51, 0x68, 0x35, 0xCA, 0xBC, 
-  0xCC, 0x50, 0x46, 0xCE, 0xB9, 0x2C, 0x4F, 0xBE, 0x27, 0x0E, 0xD5, 0x8F, 0x31, 0x40, 0x61, 0xCC, 
-  0xE5, 0x7F, 0x89, 0x8B, 0xC7, 0x15, 0x13, 0xDA, 0x1A, 0x5A, 0xD0, 0xFE, 0xCE, 0x47, 0x10, 0xCC, 
-  0xBC, 0xE4, 0xDB, 0x34, 0x23, 0x0F, 0xFE, 0xE4, 0x23, 0xE7, 0x30, 0x70, 0xE2, 0xE4, 0xFC, 0x8F, 
-  0xBA, 0xD9, 0x49, 0xD0, 0xA0, 0xAB, 0x4D, 0x69, 0xA2, 0xE4, 0xBB, 0x2A, 0x53, 0x74, 0x08, 0xE5, 
-  0x98, 0x32, 0x24, 0x92, 0xE3, 0x27, 0x28, 0x93, 0xC0, 0xB0, 0xE6, 0x0F, 0xFA, 0x05, 0xEA, 0xCA, 
-  0x1D, 0x4F, 0x45, 0x67, 0xC9, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x48, 0x30, 0x46, 0x30, 0x44, 
-  0x06, 0x03, 0x55, 0x1D, 0x01, 0x04, 0x3D, 0x30, 0x3B, 0x80, 0x10, 0x84, 0xB5, 0x25, 0xA3, 0xD7, 
-  0x99, 0x43, 0xE5, 0x71, 0xD3, 0x1D, 0xEE, 0x15, 0x25, 0x0C, 0x6A, 0xA1, 0x15, 0x30, 0x13, 0x31, 
-  0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 
-  0x6F, 0x74, 0x82, 0x10, 0x6F, 0xC8, 0x9C, 0x84, 0x28, 0x03, 0x85, 0x9B, 0x49, 0xA7, 0xD3, 0x63, 
-  0x4F, 0xCC, 0x11, 0xF4, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1D, 0x05, 0x00, 0x03, 
-  0x82, 0x01, 0x01, 0x00, 0x07, 0x71, 0x55, 0x58, 0x31, 0xF5, 0x2D, 0xDA, 0x85, 0xDA, 0xF2, 0x62, 
-  0x2D, 0xC2, 0xD3, 0xD9, 0x86, 0x43, 0x50, 0xE8, 0xC5, 0x51, 0x6C, 0xA2, 0x6D, 0x5A, 0xFB, 0x10, 
-  0x57, 0xFA, 0x63, 0x8E, 0x58, 0xA2, 0x07, 0xFC, 0xB7, 0xA1, 0x5C, 0x6E, 0xF7, 0x6B, 0xD0, 0x11, 
-  0x4A, 0xCB, 0xF4, 0xC1, 0xA4, 0xDE, 0x43, 0x2D, 0x1A, 0xEF, 0xD8, 0x71, 0x44, 0xA3, 0xEA, 0xBF, 
-  0x1F, 0xFE, 0x20, 0xA3, 0x97, 0xEF, 0x30, 0xF9, 0x9F, 0x7C, 0xC5, 0x75, 0xF9, 0xDC, 0x29, 0xEC, 
-  0x72, 0xED, 0xD3, 0x58, 0xD2, 0x3C, 0xA3, 0x95, 0x64, 0xC9, 0xD4, 0xE0, 0xD8, 0xAF, 0xC2, 0x2E, 
-  0x21, 0x02, 0xE1, 0xFC, 0x29, 0xB0, 0x63, 0x9B, 0x46, 0x2C, 0xB4, 0x6C, 0x59, 0x7E, 0x51, 0xA8, 
-  0x0F, 0x33, 0x92, 0x94, 0x60, 0x99, 0x4D, 0x31, 0x9D, 0xA3, 0x4E, 0x23, 0x11, 0xAD, 0xD9, 0xC4, 
-  0x03, 0xB9, 0x3D, 0x0C, 0x9F, 0x37, 0x94, 0x6F, 0xC7, 0x3E, 0xCE, 0xCF, 0x49, 0x09, 0x64, 0x19, 
-  0xF6, 0x8F, 0xE2, 0xE5, 0xCA, 0x0A, 0x3C, 0x90, 0x41, 0xD2, 0xA4, 0x37, 0xEB, 0x47, 0xEC, 0x54, 
-  0x5A, 0xD0, 0xFD, 0xE4, 0x36, 0x5C, 0x8A, 0xB4, 0x8A, 0x94, 0xF9, 0x58, 0x07, 0xF5, 0xC8, 0x33, 
-  0x76, 0x62, 0xD2, 0xD5, 0x84, 0xCF, 0x85, 0xF9, 0x0C, 0x8F, 0xF6, 0xF7, 0xEC, 0xE8, 0xA8, 0xA3, 
-  0x17, 0x7C, 0xC1, 0x5D, 0x06, 0x19, 0x41, 0x06, 0xC6, 0x58, 0x54, 0xE0, 0x1B, 0x3B, 0x72, 0xA2, 
-  0x64, 0x89, 0xF5, 0x5E, 0x7C, 0x05, 0x2F, 0xE5, 0x2D, 0x98, 0x27, 0x61, 0x97, 0x41, 0x2C, 0x20, 
-  0x59, 0x81, 0x0C, 0x9D, 0xC1, 0x0F, 0xD9, 0x06, 0x75, 0x3D, 0x32, 0xFA, 0x0F, 0xBF, 0x74, 0xF4, 
-  0xE2, 0x9C, 0x7E, 0xDD, 0x67, 0x9F, 0x1B, 0x61, 0x89, 0xAB, 0xD6, 0x85, 0x87, 0x1F, 0xC9, 0xBF, 
-  0x07, 0x60, 0xF3, 0x33
-};
+  0x45, 0xce, 0x79, 0x80, 0xef, 0x43, 0x8f, 0x63, 0xd0, 0x75, 0x23, 0x48,
+  0x38, 0x2f, 0xd8, 0x48, 0x21, 0x5d, 0xcc, 0x37, 0x68, 0x97, 0x0f, 0xb4,
+  0x7c, 0xc1, 0xff, 0x91, 0xb2, 0x04, 0xf7, 0x0e
+  };
 
 //
-// Embedded PKCS7 signedData (by signing TestBin with TestSub Certificate, and Timestamped)
+// Embedded PKCS7 signedData (by signing Test.bin with TestSub Certificate, and Timestamped)
 //
-UINT8 P7Embedded[3330] = {
-  0x30, 0x82, 0x0C, 0xFE, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x02, 0xA0, 
-  0x82, 0x0C, 0xEF, 0x30, 0x82, 0x0C, 0xEB, 0x02, 0x01, 0x01, 0x31, 0x0F, 0x30, 0x0D, 0x06, 0x09, 
-  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x30, 0x4F, 0x06, 0x09, 0x2A, 
-  0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x01, 0xA0, 0x42, 0x04, 0x40, 0x48, 0x65, 0x6C, 0x6C, 
-  0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x21, 0x0D, 0x0A, 0x54, 0x65, 0x73, 0x74, 0x20, 0x66, 
-  0x6F, 0x72, 0x20, 0x50, 0x4B, 0x43, 0x53, 0x37, 0x20, 0x42, 0x6C, 0x6F, 0x62, 0x20, 0x44, 0x61, 
-  0x74, 0x61, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x26, 0x20, 0x56, 0x65, 0x72, 
-  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x0D, 0x0A, 0xA0, 0x82, 0x02, 0xF3, 
-  0x30, 0x82, 0x02, 0xEF, 0x30, 0x82, 0x01, 0xDB, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0xF9, 
-  0xCD, 0x3A, 0x06, 0x4D, 0x83, 0x34, 0xAB, 0x4A, 0x5C, 0xF2, 0x7D, 0xC8, 0x72, 0xD6, 0x28, 0x30, 
-  0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1D, 0x05, 0x00, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 
-  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x30, 
-  0x1E, 0x17, 0x0D, 0x31, 0x35, 0x30, 0x38, 0x31, 0x33, 0x30, 0x36, 0x35, 0x32, 0x35, 0x32, 0x5A, 
-  0x17, 0x0D, 0x33, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 
-  0x12, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x07, 0x54, 0x65, 0x73, 0x74, 
-  0x53, 0x75, 0x62, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 
-  0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 
-  0x82, 0x01, 0x01, 0x00, 0xB1, 0x6D, 0x01, 0x2E, 0xC2, 0xEA, 0x72, 0x83, 0xDA, 0x47, 0xCF, 0xC2, 
-  0xB9, 0x03, 0xC5, 0x2D, 0x1E, 0x06, 0xA1, 0x36, 0xD2, 0x81, 0x7B, 0x51, 0xAA, 0x10, 0xDD, 0x74, 
-  0xCB, 0x57, 0x41, 0x1F, 0xFE, 0x5A, 0x9C, 0xA1, 0x81, 0x0A, 0xDF, 0x0A, 0x54, 0x38, 0xA2, 0xA5, 
-  0x35, 0xAF, 0xB3, 0xD0, 0x43, 0xC1, 0x11, 0xBB, 0xFD, 0x82, 0x4A, 0x64, 0xBF, 0x35, 0xE4, 0xC5, 
-  0x95, 0x1A, 0x2B, 0x6D, 0x3D, 0xA7, 0x06, 0x26, 0xBF, 0xBA, 0x3A, 0x92, 0x39, 0xC2, 0xB5, 0x24, 
-  0xA2, 0xE7, 0x91, 0x91, 0xD6, 0x83, 0x15, 0x4A, 0x45, 0x6A, 0x90, 0x43, 0xD5, 0x4E, 0x18, 0xD2, 
-  0xCE, 0xA7, 0xCA, 0x0B, 0x0A, 0x1E, 0x80, 0xE2, 0x97, 0xB3, 0x62, 0xC3, 0xAC, 0x36, 0x5A, 0x10, 
-  0x78, 0xB9, 0x87, 0xBA, 0xFB, 0x36, 0xE3, 0xC2, 0x39, 0x66, 0x68, 0x1C, 0x31, 0xD4, 0x32, 0xE3, 
-  0x4F, 0x62, 0x3A, 0x32, 0x4B, 0xC6, 0xF4, 0x56, 0xCD, 0xC1, 0xDF, 0x76, 0x52, 0x43, 0x4F, 0xB4, 
-  0x2E, 0x29, 0x06, 0x0A, 0x28, 0xB9, 0x03, 0xDD, 0x65, 0x81, 0x1A, 0x7A, 0x47, 0x2F, 0x86, 0xAB, 
-  0x37, 0xD9, 0xE3, 0x83, 0x6C, 0xE0, 0x7D, 0x74, 0x26, 0x16, 0x8F, 0xCC, 0x2C, 0x12, 0xBB, 0x06, 
-  0xD5, 0x7E, 0x3B, 0x5A, 0xE7, 0x22, 0x1B, 0x41, 0xB3, 0x9F, 0xA4, 0x8C, 0x09, 0xC6, 0x8B, 0x4C, 
-  0x60, 0xF1, 0x9D, 0xDE, 0x94, 0x05, 0x19, 0xC4, 0xE3, 0x10, 0x31, 0x02, 0xE0, 0xEF, 0x4B, 0x7B, 
-  0x76, 0xBF, 0xB2, 0xC3, 0xC8, 0x13, 0x67, 0xEF, 0x15, 0xF5, 0xAB, 0x17, 0xF9, 0x8B, 0x99, 0x09, 
-  0xEC, 0x17, 0xC7, 0x94, 0xDB, 0x3E, 0xAE, 0x88, 0x49, 0x4B, 0xBC, 0x28, 0x02, 0x57, 0xF6, 0xED, 
-  0xF7, 0xDE, 0x1F, 0xEA, 0x67, 0x86, 0xCA, 0x40, 0x61, 0x0F, 0x2C, 0xBA, 0xCD, 0xC0, 0x55, 0x5E, 
-  0xDC, 0xF8, 0xCD, 0x53, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x48, 0x30, 0x46, 0x30, 0x44, 0x06, 
-  0x03, 0x55, 0x1D, 0x01, 0x04, 0x3D, 0x30, 0x3B, 0x80, 0x10, 0x84, 0xB5, 0x25, 0xA3, 0xD7, 0x99, 
-  0x43, 0xE5, 0x71, 0xD3, 0x1D, 0xEE, 0x15, 0x25, 0x0C, 0x6A, 0xA1, 0x15, 0x30, 0x13, 0x31, 0x11, 
-  0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 
-  0x74, 0x82, 0x10, 0x6F, 0xC8, 0x9C, 0x84, 0x28, 0x03, 0x85, 0x9B, 0x49, 0xA7, 0xD3, 0x63, 0x4F, 
-  0xCC, 0x11, 0xF4, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1D, 0x05, 0x00, 0x03, 0x82, 
-  0x01, 0x01, 0x00, 0x10, 0x5F, 0xC3, 0xCD, 0x68, 0x05, 0x16, 0x26, 0x94, 0xBE, 0xEC, 0x30, 0x4A, 
-  0x78, 0x58, 0x7A, 0xC8, 0xAC, 0x9E, 0xDF, 0xF3, 0x8A, 0x31, 0x33, 0x92, 0x24, 0x18, 0xF5, 0x88, 
-  0x1E, 0xBC, 0xFA, 0xA0, 0xC2, 0x14, 0x74, 0xE1, 0x7B, 0x98, 0x84, 0x8B, 0xF5, 0x27, 0x2C, 0x70, 
-  0x99, 0x8E, 0x98, 0x11, 0x01, 0xF7, 0xC9, 0x52, 0xD2, 0x1B, 0x36, 0xC9, 0x9F, 0xC5, 0x80, 0x7C, 
-  0xCF, 0xD8, 0xC1, 0xC9, 0x40, 0xF9, 0x91, 0x27, 0xD0, 0x90, 0x3D, 0x1A, 0xDB, 0x60, 0x58, 0x66, 
-  0x4D, 0xD7, 0xA4, 0x98, 0x37, 0x21, 0x93, 0xB7, 0x87, 0xD3, 0x71, 0x6B, 0x36, 0xA2, 0x40, 0xFC, 
-  0x19, 0x51, 0x80, 0x1D, 0xD6, 0xEF, 0x9E, 0x5B, 0xD9, 0x7B, 0x02, 0x04, 0xE4, 0x53, 0x40, 0x5F, 
-  0x3E, 0xE2, 0x4D, 0xEB, 0x19, 0x9E, 0xAF, 0xC5, 0x5B, 0x8E, 0x4F, 0x6B, 0x7B, 0xC8, 0xB4, 0xC9, 
-  0x35, 0xA3, 0x8B, 0xB4, 0x7B, 0x97, 0x08, 0x49, 0x3E, 0x9B, 0x20, 0x49, 0x81, 0x1C, 0x85, 0xE5, 
-  0xEF, 0x58, 0x46, 0x4F, 0x63, 0xF7, 0x49, 0x3A, 0x1B, 0x83, 0xCD, 0x7C, 0x9B, 0xC2, 0xF8, 0xC2, 
-  0x5D, 0x62, 0xD2, 0x4D, 0x18, 0xAD, 0x87, 0x77, 0x54, 0x6F, 0x8C, 0x6A, 0x31, 0x64, 0x2E, 0xFD, 
-  0x29, 0x8F, 0xDF, 0xC8, 0xC7, 0x35, 0x91, 0xE4, 0x76, 0xA1, 0x0E, 0x03, 0x8F, 0xC1, 0xBF, 0x35, 
-  0x4B, 0x2A, 0xF1, 0x7F, 0x8B, 0x0F, 0xC3, 0x9D, 0x5D, 0x41, 0x40, 0x8A, 0x05, 0xEB, 0x53, 0xE6, 
-  0xF4, 0x03, 0x33, 0x07, 0xAB, 0x21, 0x51, 0x50, 0x37, 0xB5, 0x65, 0x43, 0x4D, 0x25, 0x8B, 0xB0, 
-  0x77, 0x47, 0xA3, 0xC7, 0x1C, 0xC7, 0xE7, 0xB4, 0x8B, 0x4D, 0x9E, 0x5B, 0x77, 0xE3, 0x36, 0x69, 
-  0xB4, 0x8F, 0x0D, 0x6C, 0xD0, 0xC5, 0x9D, 0x8D, 0xD2, 0x49, 0xED, 0x5B, 0x21, 0x61, 0xF6, 0x2C, 
-  0x74, 0x84, 0xA1, 0x31, 0x82, 0x09, 0x8B, 0x30, 0x82, 0x09, 0x87, 0x02, 0x01, 0x01, 0x30, 0x27, 
-  0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 
-  0x74, 0x52, 0x6F, 0x6F, 0x74, 0x02, 0x10, 0xF9, 0xCD, 0x3A, 0x06, 0x4D, 0x83, 0x34, 0xAB, 0x4A, 
-  0x5C, 0xF2, 0x7D, 0xC8, 0x72, 0xD6, 0x28, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 
-  0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 
-  0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82, 0x01, 0x00, 0x22, 0xB9, 0x4A, 0x53, 0xA4, 0x35, 0xF3, 
-  0xDA, 0xF3, 0xA9, 0x37, 0x12, 0xF7, 0x5B, 0x8F, 0xFA, 0x14, 0x57, 0x86, 0x59, 0xA6, 0x9A, 0xC2, 
-  0x7C, 0x1C, 0x79, 0xC3, 0xD2, 0xF8, 0x84, 0x6C, 0x4E, 0x14, 0x44, 0x6C, 0x56, 0x45, 0x3C, 0x38, 
-  0xC3, 0x6B, 0x12, 0x02, 0x97, 0xB7, 0x86, 0xA7, 0xAC, 0x2E, 0x46, 0xA8, 0xF9, 0xA9, 0x57, 0x13, 
-  0x28, 0xCE, 0x37, 0x57, 0x1C, 0xC9, 0xCD, 0x8E, 0xC4, 0xFE, 0x56, 0xC6, 0x97, 0x11, 0x2E, 0xFA, 
-  0xE0, 0x09, 0x91, 0xF7, 0x30, 0xF9, 0x45, 0x2C, 0x41, 0xAA, 0xAF, 0xFF, 0x3D, 0x55, 0xCB, 0x89, 
-  0x0A, 0xFE, 0xF6, 0x60, 0xD4, 0xDF, 0x64, 0xF6, 0x1C, 0xDD, 0x8C, 0x84, 0x2F, 0xB6, 0x67, 0x1D, 
-  0xD7, 0xE2, 0xB9, 0x9A, 0x04, 0x07, 0xF8, 0xDC, 0x5B, 0xA3, 0x12, 0x91, 0x08, 0x00, 0x85, 0x95, 
-  0xA1, 0x17, 0x8D, 0x93, 0x49, 0x6A, 0xAA, 0x4E, 0xE4, 0xF5, 0x4B, 0xDE, 0x22, 0x21, 0xE2, 0x57, 
-  0x62, 0x7D, 0x6E, 0xC1, 0x31, 0x38, 0x2C, 0x89, 0x93, 0x07, 0x42, 0x5B, 0xDB, 0x56, 0x71, 0x39, 
-  0x1F, 0xED, 0xCA, 0x43, 0x67, 0x88, 0xC9, 0x8E, 0x23, 0x0D, 0x68, 0x5B, 0x7E, 0x38, 0x52, 0x5C, 
-  0x96, 0xE7, 0x5F, 0x32, 0x2F, 0x5F, 0x37, 0x4E, 0x9E, 0x27, 0xA5, 0x79, 0xF9, 0x03, 0xAB, 0x3C, 
-  0xB5, 0x20, 0x1E, 0x01, 0x48, 0x9B, 0xB8, 0x11, 0x12, 0xB2, 0xCA, 0x8B, 0x69, 0x08, 0x5F, 0x78, 
-  0x80, 0x09, 0x14, 0xA0, 0x3D, 0x57, 0x2B, 0xBB, 0x75, 0x9A, 0xFF, 0x33, 0xA2, 0x2B, 0x1C, 0x3B, 
-  0xEE, 0xBF, 0xE5, 0x8B, 0x34, 0xDB, 0x54, 0x15, 0xE2, 0x5E, 0x13, 0x56, 0x02, 0x5D, 0xB9, 0x3D, 
-  0x5A, 0x47, 0x59, 0x5D, 0x86, 0xC1, 0x75, 0xED, 0x4E, 0x12, 0xD7, 0x69, 0x76, 0xB2, 0xED, 0xBA, 
-  0x65, 0xA2, 0x1A, 0xDB, 0x01, 0x81, 0x62, 0x7E, 0x07, 0xA1, 0x82, 0x08, 0x35, 0x30, 0x82, 0x08, 
-  0x31, 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x03, 0x03, 0x01, 0x31, 0x82, 0x08, 
-  0x21, 0x30, 0x82, 0x08, 0x1D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x02, 
-  0xA0, 0x82, 0x08, 0x0E, 0x30, 0x82, 0x08, 0x0A, 0x02, 0x01, 0x03, 0x31, 0x0B, 0x30, 0x09, 0x06, 
-  0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x30, 0x81, 0xF5, 0x06, 0x0B, 0x2A, 0x86, 0x48, 
-  0x86, 0xF7, 0x0D, 0x01, 0x09, 0x10, 0x01, 0x04, 0xA0, 0x81, 0xE5, 0x04, 0x81, 0xE2, 0x30, 0x81, 
-  0xDF, 0x02, 0x01, 0x01, 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0xB2, 0x31, 0x02, 0x01, 0x01, 
-  0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x04, 0x14, 0x0B, 
-  0x23, 0xE5, 0xBC, 0x00, 0x34, 0x5B, 0x80, 0x78, 0x3D, 0xA8, 0x7F, 0x2A, 0xEA, 0x2B, 0xD1, 0xFF, 
-  0xA3, 0x5D, 0x26, 0x02, 0x14, 0x1D, 0xB9, 0x80, 0x23, 0xB7, 0x31, 0xAC, 0xC2, 0x54, 0x58, 0x3A, 
-  0xC7, 0x47, 0x58, 0x96, 0x28, 0x22, 0x2C, 0x88, 0x37, 0x18, 0x0F, 0x32, 0x30, 0x31, 0x35, 0x30, 
-  0x38, 0x31, 0x39, 0x30, 0x31, 0x35, 0x35, 0x32, 0x38, 0x5A, 0xA0, 0x81, 0x83, 0xA4, 0x81, 0x80, 
-  0x30, 0x7E, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 
-  0x1B, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 
-  0x72, 0x20, 0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 
-  0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 
-  0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 
-  0x43, 0x41, 0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 
-  0x55, 0x04, 0x03, 0x13, 0x1B, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x54, 0x69, 0x6D, 0x65, 
-  0x20, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x69, 0x6E, 0x67, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x65, 0x72, 
-  0xA0, 0x82, 0x04, 0x98, 0x30, 0x82, 0x04, 0x94, 0x30, 0x82, 0x03, 0x7C, 0xA0, 0x03, 0x02, 0x01, 
-  0x02, 0x02, 0x11, 0x00, 0x9F, 0xEA, 0xC8, 0x11, 0xB0, 0xF1, 0x62, 0x47, 0xA5, 0xFC, 0x20, 0xD8, 
-  0x05, 0x23, 0xAC, 0xE6, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 
-  0x05, 0x05, 0x00, 0x30, 0x81, 0x95, 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, 0x1D, 0x30, 0x1B, 
-  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x55, 0x54, 0x4E, 0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 
-  0x69, 0x72, 0x73, 0x74, 0x2D, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31, 
-  0x35, 0x30, 0x35, 0x30, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D, 0x31, 0x35, 
-  0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x7E, 0x31, 0x0B, 0x30, 
-  0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30, 0x19, 0x06, 0x03, 
-  0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x4D, 0x61, 0x6E, 
-  0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 
-  0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55, 
-  0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41, 0x20, 0x4C, 0x69, 
-  0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1B, 
-  0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6D, 
-  0x70, 0x69, 0x6E, 0x67, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x65, 0x72, 0x30, 0x82, 0x01, 0x22, 0x30, 
-  0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 
-  0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xBC, 0x35, 0xA0, 0x36, 
-  0x70, 0x22, 0x81, 0x11, 0xC3, 0xB2, 0x83, 0xB9, 0xD3, 0x28, 0xC6, 0x36, 0xCD, 0x25, 0x6B, 0xA9, 
-  0x7B, 0xB2, 0x1C, 0xF6, 0x9B, 0x51, 0x9C, 0xEF, 0x35, 0xF4, 0xED, 0x08, 0x8E, 0x5E, 0x38, 0x08, 
-  0xF8, 0x77, 0x3C, 0x0A, 0x42, 0xE0, 0xF3, 0x70, 0xDC, 0xA3, 0xD7, 0xCA, 0xF5, 0x4C, 0x0B, 0xCF, 
-  0xFF, 0x22, 0x9C, 0x0A, 0x7E, 0x68, 0xD6, 0x09, 0xA2, 0x2A, 0x84, 0x7B, 0xA6, 0x9D, 0xB4, 0xA9, 
-  0xC1, 0x33, 0xE2, 0xEF, 0x1F, 0x17, 0x48, 0xCA, 0x3A, 0xCD, 0x46, 0xE6, 0xC5, 0xAA, 0x77, 0xBD, 
-  0xE3, 0x77, 0x9A, 0xFA, 0x47, 0x53, 0x40, 0x28, 0x59, 0x43, 0x93, 0xF1, 0xA4, 0x81, 0xEA, 0xEF, 
-  0x80, 0xB5, 0x4F, 0xA7, 0x08, 0xCE, 0xBA, 0x6E, 0xBC, 0xCA, 0x76, 0x0C, 0x97, 0x64, 0x59, 0x86, 
-  0x24, 0xBB, 0x3D, 0x82, 0x90, 0xA8, 0x55, 0xB1, 0x92, 0xD3, 0xA0, 0xA7, 0x05, 0xAC, 0x9F, 0x53, 
-  0x25, 0x08, 0x10, 0x47, 0x99, 0xCD, 0x98, 0xDE, 0x68, 0xE5, 0xB4, 0x50, 0x78, 0xA3, 0xAF, 0x01, 
-  0xCC, 0x59, 0x43, 0x58, 0xE4, 0x76, 0x6E, 0x7E, 0xAC, 0xC7, 0xE2, 0x9E, 0x1F, 0x4F, 0xB0, 0x47, 
-  0x2D, 0xC8, 0x0C, 0xA3, 0x49, 0x27, 0x80, 0x75, 0x8C, 0xBB, 0x06, 0x91, 0x65, 0x0F, 0x90, 0x9B, 
-  0xF4, 0xBA, 0xD1, 0x81, 0xC8, 0x5C, 0x6A, 0xEC, 0x14, 0xE9, 0x25, 0x09, 0xBF, 0x23, 0x16, 0xF4, 
-  0x95, 0x46, 0x40, 0x40, 0x21, 0xBB, 0x83, 0x96, 0xFD, 0x86, 0x1F, 0x7A, 0xC8, 0x0D, 0x10, 0x8E, 
-  0xA2, 0xF8, 0x19, 0x07, 0x58, 0x7F, 0x9F, 0xBD, 0x37, 0x02, 0x60, 0xF2, 0xA4, 0xE9, 0x9D, 0x44, 
-  0x3F, 0x30, 0x05, 0xE4, 0xA7, 0x70, 0x99, 0x51, 0x9A, 0xE8, 0x17, 0xF1, 0x55, 0xCA, 0xB2, 0x61, 
-  0x89, 0x65, 0x46, 0xA7, 0x6A, 0xF2, 0x58, 0x46, 0x7E, 0xAA, 0xA0, 0x07, 0x02, 0x03, 0x01, 0x00, 
-  0x01, 0xA3, 0x81, 0xF4, 0x30, 0x81, 0xF1, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 
-  0x30, 0x16, 0x80, 0x14, 0xDA, 0xED, 0x64, 0x74, 0x14, 0x9C, 0x14, 0x3C, 0xAB, 0xDD, 0x99, 0xA9, 
-  0xBD, 0x5B, 0x28, 0x4D, 0x8B, 0x3C, 0xC9, 0xD8, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 
-  0x16, 0x04, 0x14, 0x2E, 0x2D, 0xB0, 0x0A, 0x44, 0x4A, 0xD3, 0x87, 0xC0, 0x02, 0x07, 0xCE, 0x97, 
-  0x7D, 0x50, 0x62, 0x20, 0xFD, 0x0F, 0x83, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 
-  0xFF, 0x04, 0x04, 0x03, 0x02, 0x06, 0xC0, 0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 
-  0xFF, 0x04, 0x02, 0x30, 0x00, 0x30, 0x16, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x01, 0x01, 0xFF, 0x04, 
-  0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x08, 0x30, 0x42, 0x06, 
-  0x03, 0x55, 0x1D, 0x1F, 0x04, 0x3B, 0x30, 0x39, 0x30, 0x37, 0xA0, 0x35, 0xA0, 0x33, 0x86, 0x31, 
-  0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x6C, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 
-  0x72, 0x75, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x55, 0x54, 0x4E, 0x2D, 0x55, 0x53, 0x45, 
-  0x52, 0x46, 0x69, 0x72, 0x73, 0x74, 0x2D, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x2E, 0x63, 0x72, 
-  0x6C, 0x30, 0x35, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x29, 0x30, 
-  0x27, 0x30, 0x25, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 
-  0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6F, 0x63, 0x73, 0x70, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 
-  0x72, 0x75, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 
-  0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x0D, 0xBB, 0xAD, 0x60, 
-  0x11, 0x1B, 0xB5, 0xF0, 0x0D, 0xCC, 0xE6, 0x48, 0x3A, 0x7A, 0x3E, 0x0E, 0x33, 0xDC, 0x1C, 0xB9, 
-  0xEA, 0xD6, 0x20, 0xFE, 0xA3, 0x4D, 0xD0, 0xCC, 0x76, 0x4E, 0xE8, 0x18, 0xD8, 0x79, 0xDF, 0xD3, 
-  0x4F, 0x9A, 0x42, 0x64, 0x23, 0x8A, 0x29, 0x72, 0x8A, 0x3A, 0x6C, 0x66, 0xA6, 0x3C, 0x3A, 0x17, 
-  0xA8, 0x70, 0x45, 0x65, 0xC6, 0x73, 0xC3, 0xD0, 0xCE, 0x89, 0x54, 0xFB, 0xAC, 0x69, 0x0F, 0x58, 
-  0xB0, 0x19, 0xCB, 0x86, 0x9F, 0x7E, 0xB9, 0x7E, 0xEB, 0x51, 0x92, 0xBF, 0x9B, 0xDD, 0xEB, 0xD1, 
-  0x65, 0xF0, 0x25, 0x7B, 0x88, 0x7C, 0xDE, 0xBD, 0xA5, 0xC8, 0xB5, 0x14, 0x51, 0xBC, 0xC0, 0x81, 
-  0x30, 0x8A, 0x85, 0x38, 0x7B, 0xE6, 0x79, 0xFE, 0x67, 0x55, 0x93, 0x87, 0xFE, 0x4F, 0xE8, 0x8D, 
-  0x0E, 0xED, 0xF3, 0x72, 0x92, 0xB5, 0xC2, 0x89, 0x80, 0x6D, 0xD1, 0x59, 0xE3, 0x1D, 0x0D, 0xEA, 
-  0xB1, 0x38, 0xEE, 0x03, 0x9D, 0x00, 0x19, 0xA5, 0xAB, 0x21, 0x9B, 0x79, 0xC3, 0xCC, 0xC2, 0x3E, 
-  0x68, 0x7E, 0xBD, 0xC9, 0x4D, 0x69, 0x4D, 0xB4, 0x64, 0x51, 0xFB, 0xB2, 0x28, 0x74, 0xE2, 0x53, 
-  0x89, 0xCE, 0x9D, 0xFA, 0xAD, 0xE2, 0xDB, 0xCE, 0xAB, 0x7B, 0x7E, 0x06, 0x44, 0x74, 0xFD, 0x0A, 
-  0xA3, 0xC9, 0xB7, 0xA7, 0x30, 0xCD, 0x49, 0xD2, 0x92, 0x64, 0xF1, 0x22, 0xA6, 0xB8, 0x28, 0x45, 
-  0x74, 0x79, 0xE9, 0xA7, 0xCE, 0x3B, 0x33, 0xF9, 0x83, 0x50, 0x94, 0x7D, 0x68, 0xC0, 0x1D, 0x49, 
-  0xC7, 0x60, 0x78, 0x7A, 0x3C, 0x64, 0x26, 0xD5, 0xBE, 0xFA, 0x0A, 0x6D, 0xE4, 0x1E, 0xE1, 0x09, 
-  0x53, 0x8F, 0xA9, 0xC5, 0x23, 0xAC, 0xC7, 0x9D, 0x61, 0x42, 0x21, 0xF0, 0x2C, 0x16, 0x71, 0x49, 
-  0x3B, 0x10, 0xAF, 0x2C, 0x6F, 0x1A, 0xE6, 0x31, 0xF1, 0x14, 0xFD, 0x6C, 0x31, 0x82, 0x02, 0x62, 
-  0x30, 0x82, 0x02, 0x5E, 0x02, 0x01, 0x01, 0x30, 0x81, 0xAB, 0x30, 0x81, 0x95, 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, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x55, 0x54, 
-  0x4E, 0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74, 0x2D, 0x4F, 0x62, 0x6A, 0x65, 
-  0x63, 0x74, 0x02, 0x11, 0x00, 0x9F, 0xEA, 0xC8, 0x11, 0xB0, 0xF1, 0x62, 0x47, 0xA5, 0xFC, 0x20, 
-  0xD8, 0x05, 0x23, 0xAC, 0xE6, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 
-  0xA0, 0x81, 0x8C, 0x30, 0x1A, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x03, 
-  0x31, 0x0D, 0x06, 0x0B, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x10, 0x01, 0x04, 0x30, 
-  0x1C, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x05, 0x31, 0x0F, 0x17, 0x0D, 
-  0x31, 0x35, 0x30, 0x38, 0x31, 0x39, 0x30, 0x31, 0x35, 0x35, 0x32, 0x38, 0x5A, 0x30, 0x23, 0x06, 
-  0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x04, 0x31, 0x16, 0x04, 0x14, 0xD4, 0xD6, 
-  0xA6, 0x46, 0x5F, 0x10, 0xF2, 0x3F, 0x76, 0x67, 0x5E, 0x37, 0xEB, 0x89, 0xDD, 0xCD, 0xA9, 0xD2, 
-  0x78, 0x2E, 0x30, 0x2B, 0x06, 0x0B, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x10, 0x02, 
-  0x0C, 0x31, 0x1C, 0x30, 0x1A, 0x30, 0x18, 0x30, 0x16, 0x04, 0x14, 0xDF, 0x94, 0x6A, 0x5E, 0x50, 
-  0x30, 0x15, 0x77, 0x7F, 0xD2, 0x2F, 0x46, 0xB5, 0x62, 0x4E, 0xCD, 0x27, 0xBE, 0xE3, 0x76, 0x30, 
-  0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82, 
-  0x01, 0x00, 0x60, 0x59, 0x47, 0x46, 0x6E, 0x02, 0x30, 0x14, 0x4D, 0xDE, 0xFB, 0x35, 0xF0, 0x88, 
-  0x85, 0x4F, 0xFF, 0x82, 0x25, 0x3B, 0x64, 0xDD, 0xC6, 0x4F, 0x76, 0xC7, 0x85, 0x8B, 0xD8, 0x36, 
-  0x23, 0x8B, 0xA4, 0x75, 0x75, 0xAD, 0xF2, 0x27, 0x00, 0xFB, 0x19, 0x83, 0xA0, 0x16, 0xEF, 0x45, 
-  0xAB, 0xF7, 0x18, 0xC9, 0x6F, 0xDE, 0xB8, 0xA5, 0xE6, 0x2C, 0xB0, 0xF2, 0x35, 0x6C, 0x90, 0x10, 
-  0xDC, 0x77, 0xB5, 0xC4, 0x0E, 0x88, 0x73, 0x01, 0x5B, 0xD5, 0x5A, 0x03, 0x3A, 0x76, 0x90, 0xFB, 
-  0x09, 0xAB, 0x36, 0x8D, 0xD3, 0x75, 0x21, 0xE7, 0xF4, 0x9A, 0x18, 0x37, 0x5B, 0x8A, 0xCA, 0xFF, 
-  0xC6, 0xD6, 0x00, 0xEA, 0xA9, 0x5B, 0xE6, 0xDB, 0xD5, 0x38, 0x89, 0x19, 0x77, 0x66, 0x86, 0x30, 
-  0x67, 0x06, 0x33, 0x49, 0xA6, 0x69, 0x60, 0x99, 0xA4, 0xB4, 0x53, 0x91, 0x31, 0x76, 0x0E, 0x6E, 
-  0x61, 0x7E, 0xDB, 0x37, 0xB5, 0x86, 0xA0, 0x47, 0x5E, 0x43, 0xAC, 0xFE, 0x44, 0xAA, 0x89, 0x65, 
-  0xB8, 0xAD, 0x7C, 0x7D, 0xA6, 0x1D, 0x69, 0x52, 0xB3, 0x3B, 0xB6, 0xD7, 0xCD, 0xA2, 0x44, 0x29, 
-  0x82, 0x22, 0xBD, 0x87, 0x4E, 0xA3, 0x3F, 0xFF, 0x85, 0x1D, 0xE7, 0xE4, 0xB1, 0xF6, 0xEB, 0xF8, 
-  0x32, 0xB1, 0x25, 0x6F, 0x14, 0x49, 0x10, 0x3E, 0x1E, 0x05, 0xED, 0x6C, 0x86, 0xC8, 0xFD, 0x79, 
-  0x2D, 0x45, 0xB1, 0x55, 0x19, 0xC2, 0x94, 0xE3, 0x8F, 0x31, 0x58, 0xCB, 0xBC, 0xA3, 0xAB, 0x89, 
-  0xFB, 0x94, 0xC5, 0x88, 0xE8, 0xA3, 0x28, 0xC4, 0xB0, 0xC5, 0x75, 0x15, 0xAA, 0xF4, 0xBB, 0x62, 
-  0x4B, 0xEE, 0x10, 0xA6, 0x13, 0x2E, 0x71, 0x29, 0xE6, 0x72, 0xD9, 0xFC, 0xA2, 0xF1, 0x0F, 0x65, 
-  0x58, 0xE1, 0xF0, 0x21, 0x31, 0x57, 0x8E, 0xF0, 0x3D, 0xF0, 0xC5, 0x69, 0xAC, 0xED, 0x7E, 0x1A, 
-  0x00, 0xA0
-};
+UINT8 P7Embedded[3365] = {
+  0x30, 0x82, 0x0D, 0x21, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
+  0x01, 0x07, 0x02, 0xA0, 0x82, 0x0D, 0x12, 0x30, 0x82, 0x0D, 0x0E, 0x02,
+  0x01, 0x01, 0x31, 0x0F, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
+  0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x30, 0x4F, 0x06, 0x09, 0x2A,
+  0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x01, 0xA0, 0x42, 0x04, 0x40,
+  0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x21,
+  0x0D, 0x0A, 0x54, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x50,
+  0x4B, 0x43, 0x53, 0x37, 0x20, 0x42, 0x6C, 0x6F, 0x62, 0x20, 0x44, 0x61,
+  0x74, 0x61, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x26,
+  0x20, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F,
+  0x6E, 0x2E, 0x0D, 0x0A, 0xA0, 0x82, 0x03, 0x0C, 0x30, 0x82, 0x03, 0x08,
+  0x30, 0x82, 0x01, 0xF0, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x87,
+  0xF0, 0xD2, 0x05, 0x0C, 0x57, 0x0C, 0x96, 0x48, 0x94, 0xBA, 0x6B, 0xEB,
+  0xA2, 0x97, 0x46, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7,
+  0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52,
+  0x6F, 0x6F, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x38, 0x30, 0x31, 0x32,
+  0x35, 0x30, 0x32, 0x30, 0x36, 0x34, 0x35, 0x5A, 0x17, 0x0D, 0x33, 0x39,
+  0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30,
+  0x12, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x07,
+  0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x62, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0x9F, 0x97, 0xC4, 0x19, 0x70, 0x6C, 0x7D, 0x3D,
+  0x7F, 0x32, 0xC8, 0x01, 0xFA, 0xA9, 0x36, 0x84, 0xA2, 0xAF, 0xB6, 0xF5,
+  0xC6, 0x22, 0xF6, 0xF9, 0x98, 0xDB, 0xC9, 0xEF, 0xA0, 0xDF, 0x2E, 0x02,
+  0x8B, 0x76, 0xD0, 0x05, 0x72, 0x72, 0x0A, 0xBB, 0xAC, 0x45, 0xDA, 0x45,
+  0x96, 0x7E, 0x71, 0x69, 0x32, 0x1C, 0xA0, 0x73, 0x93, 0x91, 0xBA, 0x86,
+  0x6A, 0x86, 0xFC, 0x2B, 0x95, 0x57, 0x82, 0xD8, 0x67, 0x59, 0x43, 0xD8,
+  0xEE, 0xBE, 0x12, 0xF1, 0x9F, 0x95, 0x8E, 0x10, 0xA0, 0xFC, 0xF4, 0x47,
+  0x19, 0x49, 0xA3, 0xA0, 0xE5, 0x93, 0x3A, 0x7C, 0x0B, 0x03, 0xE5, 0x8E,
+  0xDF, 0xCD, 0x86, 0x98, 0x9C, 0xF4, 0x95, 0x67, 0x9D, 0xD8, 0xB8, 0xC2,
+  0x16, 0xED, 0x20, 0x7D, 0x07, 0x7F, 0xAD, 0xD0, 0x75, 0x5F, 0x7B, 0xB9,
+  0xA3, 0xC2, 0xD4, 0x2F, 0x42, 0x06, 0xE4, 0xBA, 0x8C, 0xF0, 0x69, 0x71,
+  0xA2, 0x3B, 0x68, 0x3A, 0x35, 0x10, 0x32, 0x0E, 0xDA, 0x91, 0xC6, 0x00,
+  0x83, 0x74, 0xAB, 0xF4, 0xB4, 0x55, 0xC2, 0x48, 0x9A, 0xCE, 0x89, 0xFE,
+  0x28, 0x10, 0x62, 0xEA, 0xC0, 0xC5, 0xC4, 0x15, 0x20, 0x78, 0xF9, 0xB0,
+  0xE9, 0x7B, 0xA3, 0x1B, 0xB8, 0xE7, 0xA5, 0x79, 0xA5, 0xFF, 0x1B, 0x68,
+  0xA3, 0xA4, 0x3A, 0x18, 0xA6, 0x77, 0xF6, 0x2F, 0xC8, 0xC4, 0xBD, 0xA6,
+  0xDC, 0xC6, 0xAF, 0x48, 0xF4, 0x44, 0xF9, 0x60, 0x00, 0xE7, 0x94, 0xBC,
+  0xE3, 0x70, 0x2E, 0x21, 0x8E, 0x6E, 0x90, 0xD0, 0x4B, 0xE1, 0xB6, 0x58,
+  0x81, 0x4E, 0x4E, 0xAA, 0xEB, 0x6A, 0xE8, 0xBC, 0xCE, 0xD7, 0x96, 0xB0,
+  0x6A, 0x99, 0x8D, 0x93, 0xF9, 0x79, 0xA3, 0xAD, 0x9A, 0x3C, 0x52, 0x0E,
+  0x87, 0x9B, 0x34, 0xBC, 0x1D, 0xD0, 0x6A, 0x77, 0xCC, 0x21, 0x2F, 0x5F,
+  0xCB, 0x60, 0x0A, 0xEF, 0xF5, 0xBD, 0xE9, 0x15, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xA3, 0x59, 0x30, 0x57, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x13,
+  0x01, 0x01, 0xFF, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xFF, 0x30, 0x44,
+  0x06, 0x03, 0x55, 0x1D, 0x01, 0x04, 0x3D, 0x30, 0x3B, 0x80, 0x10, 0x7A,
+  0x73, 0xC4, 0xE1, 0x17, 0x5D, 0xA7, 0x53, 0x98, 0x6B, 0x7A, 0x61, 0x49,
+  0xBC, 0xE5, 0xE3, 0xA1, 0x15, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F,
+  0x6F, 0x74, 0x82, 0x10, 0xDE, 0x9F, 0x42, 0x91, 0x68, 0x16, 0xEA, 0x97,
+  0x4D, 0xA1, 0x8A, 0x32, 0x25, 0xD6, 0xEE, 0x8D, 0x30, 0x0D, 0x06, 0x09,
+  0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x2A, 0x39, 0x32, 0xE5, 0xFA, 0x14, 0x03, 0x1A,
+  0x8B, 0xBD, 0xDF, 0xAB, 0x6D, 0x1C, 0xF7, 0x8B, 0xE5, 0x76, 0x4E, 0x02,
+  0xDF, 0x9D, 0x18, 0x7E, 0x1E, 0x73, 0xDC, 0x9C, 0xD5, 0x36, 0xA2, 0x91,
+  0xC7, 0xC0, 0xAC, 0xEE, 0x92, 0xE8, 0x3C, 0x88, 0x2A, 0xF5, 0x61, 0x6F,
+  0xB7, 0xC4, 0x21, 0xC3, 0xCD, 0xE5, 0xCF, 0x48, 0x46, 0x67, 0x5A, 0xC3,
+  0x16, 0x4E, 0xBE, 0xF0, 0x30, 0xD8, 0x3B, 0xBC, 0x8F, 0x84, 0xCD, 0x15,
+  0xD5, 0xB3, 0x11, 0xA0, 0xAD, 0xED, 0x81, 0x51, 0x49, 0x71, 0x7F, 0xF6,
+  0xCC, 0x4C, 0x44, 0x59, 0x13, 0x5E, 0x27, 0x98, 0x73, 0x5B, 0x74, 0xD6,
+  0xD6, 0x59, 0xFF, 0x81, 0x57, 0xBF, 0xF1, 0xF3, 0x01, 0x6C, 0xE6, 0x32,
+  0xE4, 0x05, 0xFE, 0x1B, 0x1E, 0x33, 0x03, 0x2E, 0x9A, 0xA1, 0x1E, 0xBE,
+  0xA3, 0x0E, 0xA5, 0x59, 0x50, 0x38, 0x3D, 0x0B, 0xF7, 0xD8, 0x25, 0x15,
+  0xCB, 0xFA, 0x73, 0x22, 0x24, 0xD2, 0x5E, 0x7F, 0xAE, 0x8B, 0x8F, 0x44,
+  0x29, 0x68, 0x49, 0x6A, 0x36, 0xA8, 0x29, 0x5B, 0xAE, 0xD3, 0xE4, 0x5E,
+  0xE1, 0xDB, 0xF1, 0x73, 0xEE, 0x15, 0x88, 0x03, 0x69, 0x0D, 0x53, 0xF4,
+  0x92, 0x93, 0xDF, 0xC9, 0x95, 0x22, 0xED, 0x0E, 0xEB, 0xCD, 0xB2, 0x1E,
+  0xFD, 0xCA, 0xEF, 0x53, 0x06, 0xF2, 0xE0, 0x85, 0xE2, 0x51, 0x6C, 0xE9,
+  0xAB, 0x8D, 0x30, 0x5A, 0xC3, 0xDC, 0x0A, 0xC2, 0xDC, 0x23, 0x47, 0xDD,
+  0x8F, 0x18, 0x06, 0x24, 0xFF, 0x77, 0xF8, 0xFA, 0x25, 0x2B, 0x68, 0x7A,
+  0xD1, 0xED, 0x41, 0xA2, 0x37, 0x95, 0xBC, 0x2B, 0xBB, 0x64, 0xBE, 0x9D,
+  0x6A, 0x6E, 0x5A, 0x85, 0xBF, 0x03, 0xC5, 0x4E, 0xA1, 0x5D, 0x82, 0xFE,
+  0x19, 0x85, 0xD7, 0x60, 0xE9, 0x01, 0xB3, 0x40, 0x1F, 0x8B, 0x16, 0xDD,
+  0xFD, 0x22, 0x55, 0x2F, 0x3D, 0xDF, 0xA7, 0x28, 0x31, 0x82, 0x09, 0x95,
+  0x30, 0x82, 0x09, 0x91, 0x02, 0x01, 0x01, 0x30, 0x27, 0x30, 0x13, 0x31,
+  0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65,
+  0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x02, 0x10, 0x87, 0xF0, 0xD2, 0x05,
+  0x0C, 0x57, 0x0C, 0x96, 0x48, 0x94, 0xBA, 0x6B, 0xEB, 0xA2, 0x97, 0x46,
+  0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02,
+  0x01, 0x05, 0x00, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7,
+  0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82, 0x01, 0x00, 0x57, 0x8A,
+  0x23, 0xE1, 0x7C, 0x50, 0xEB, 0x86, 0xFE, 0x20, 0x58, 0xA1, 0x59, 0xE1,
+  0x65, 0xC4, 0x31, 0xDE, 0xC6, 0xB3, 0x00, 0x84, 0x5C, 0x6E, 0x7D, 0x83,
+  0x44, 0x02, 0xD8, 0xB0, 0x81, 0xCE, 0xC1, 0xA9, 0x26, 0x05, 0x85, 0x76,
+  0x43, 0x08, 0x15, 0x47, 0x61, 0x41, 0x72, 0xE1, 0x49, 0xBD, 0x6B, 0x1F,
+  0xC1, 0xC2, 0xBF, 0xA1, 0x54, 0xE2, 0xFA, 0x1D, 0xDD, 0x13, 0x14, 0x1C,
+  0x09, 0xF3, 0x0C, 0xBF, 0xE1, 0x4F, 0xBF, 0xF9, 0xD7, 0xF1, 0x21, 0x9A,
+  0xCC, 0x16, 0xA6, 0x08, 0x3C, 0x99, 0x50, 0x2F, 0x38, 0xF7, 0xFF, 0xB9,
+  0x1C, 0x63, 0x8C, 0xBD, 0xBD, 0x38, 0x11, 0xF5, 0x48, 0xB5, 0xD9, 0x6F,
+  0xC8, 0xFB, 0xC7, 0xE9, 0xB6, 0xA4, 0xBE, 0xDE, 0x22, 0xB2, 0xAA, 0x38,
+  0xE1, 0x58, 0x05, 0x06, 0xB9, 0xC4, 0x82, 0x6E, 0x14, 0x25, 0x87, 0xC2,
+  0x06, 0xD9, 0x73, 0x85, 0x19, 0xF4, 0x87, 0x9C, 0xFB, 0x8A, 0xD8, 0x2C,
+  0x13, 0x1A, 0xA3, 0x24, 0xC8, 0xEC, 0xA4, 0xBA, 0x81, 0xE1, 0x7E, 0x4A,
+  0x18, 0x9C, 0xE0, 0x98, 0xCF, 0xA5, 0x78, 0x40, 0xD0, 0xFD, 0xD9, 0xC0,
+  0x0E, 0x0C, 0x87, 0xBD, 0xDB, 0x06, 0x88, 0x7A, 0x09, 0xEE, 0x92, 0x22,
+  0xB0, 0xC8, 0x11, 0xB1, 0x12, 0x9D, 0x9B, 0x0D, 0xD5, 0x60, 0xED, 0x31,
+  0x5A, 0x38, 0x6C, 0x50, 0x55, 0x70, 0xD8, 0x5A, 0x51, 0x1A, 0xDA, 0x03,
+  0x53, 0x9A, 0x2D, 0x3F, 0x2A, 0xA5, 0xD6, 0x0F, 0x5E, 0x51, 0xDD, 0xE7,
+  0x48, 0xAE, 0xE3, 0x6C, 0x1D, 0x44, 0xC4, 0x16, 0xA2, 0x56, 0x8E, 0x80,
+  0xCB, 0x12, 0xB3, 0xA6, 0x12, 0x10, 0x66, 0x45, 0x3A, 0x56, 0x2B, 0x46,
+  0xFF, 0x33, 0x67, 0xBE, 0x32, 0x0B, 0x9B, 0x62, 0x2B, 0x8F, 0xD1, 0xB5,
+  0x03, 0xE2, 0x7B, 0x6F, 0x29, 0x8F, 0x63, 0x05, 0xB6, 0xB6, 0x65, 0xD7,
+  0x62, 0x70, 0xA1, 0x82, 0x08, 0x3F, 0x30, 0x82, 0x08, 0x3B, 0x06, 0x0A,
+  0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x03, 0x03, 0x01, 0x31, 0x82,
+  0x08, 0x2B, 0x30, 0x82, 0x08, 0x27, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
+  0xF7, 0x0D, 0x01, 0x07, 0x02, 0xA0, 0x82, 0x08, 0x18, 0x30, 0x82, 0x08,
+  0x14, 0x02, 0x01, 0x03, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E,
+  0x03, 0x02, 0x1A, 0x05, 0x00, 0x30, 0x81, 0xFC, 0x06, 0x0B, 0x2A, 0x86,
+  0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x10, 0x01, 0x04, 0xA0, 0x81, 0xEC,
+  0x04, 0x81, 0xE9, 0x30, 0x81, 0xE6, 0x02, 0x01, 0x01, 0x06, 0x0A, 0x2B,
+  0x06, 0x01, 0x04, 0x01, 0xB2, 0x31, 0x02, 0x01, 0x01, 0x30, 0x21, 0x30,
+  0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x04, 0x14,
+  0x26, 0x8D, 0xE9, 0xED, 0x54, 0x9D, 0x95, 0x6C, 0x86, 0x3F, 0xD6, 0x03,
+  0x03, 0xB9, 0x05, 0xA0, 0xA3, 0x66, 0x4E, 0x80, 0x02, 0x14, 0x0E, 0x1A,
+  0x65, 0x68, 0x2F, 0x86, 0xEB, 0x8C, 0xB8, 0x55, 0x73, 0x07, 0xB3, 0xD7,
+  0xFF, 0x4C, 0xA2, 0x94, 0x51, 0x80, 0x18, 0x0F, 0x32, 0x30, 0x31, 0x38,
+  0x30, 0x31, 0x33, 0x30, 0x31, 0x36, 0x34, 0x32, 0x31, 0x37, 0x5A, 0xA0,
+  0x81, 0x8A, 0xA4, 0x81, 0x87, 0x30, 0x81, 0x84, 0x31, 0x0B, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30,
+  0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61,
+  0x74, 0x65, 0x72, 0x20, 0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74,
+  0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,
+  0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18,
+  0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44,
+  0x4F, 0x20, 0x43, 0x41, 0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64,
+  0x31, 0x2A, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x43,
+  0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x53, 0x48, 0x41, 0x2D, 0x31, 0x20,
+  0x54, 0x69, 0x6D, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x69, 0x6E,
+  0x67, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x65, 0x72, 0xA0, 0x82, 0x04, 0x9D,
+  0x30, 0x82, 0x04, 0x99, 0x30, 0x82, 0x03, 0x81, 0xA0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0F, 0x16, 0x88, 0xF0, 0x39, 0x25, 0x5E, 0x63, 0x8E, 0x69,
+  0x14, 0x39, 0x07, 0xE6, 0x33, 0x0B, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86,
+  0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x95,
+  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, 0x1D,
+  0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x55, 0x54, 0x4E,
+  0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74, 0x2D, 0x4F,
+  0x62, 0x6A, 0x65, 0x63, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x35, 0x31,
+  0x32, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D,
+  0x31, 0x39, 0x30, 0x37, 0x30, 0x39, 0x31, 0x38, 0x34, 0x30, 0x33, 0x36,
+  0x5A, 0x30, 0x81, 0x84, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
+  0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30, 0x19, 0x06, 0x03, 0x55,
+  0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20,
+  0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10,
+  0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C,
+  0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04,
+  0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41,
+  0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2A, 0x30, 0x28,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x43, 0x4F, 0x4D, 0x4F, 0x44,
+  0x4F, 0x20, 0x53, 0x48, 0x41, 0x2D, 0x31, 0x20, 0x54, 0x69, 0x6D, 0x65,
+  0x20, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x69, 0x6E, 0x67, 0x20, 0x53, 0x69,
+  0x67, 0x6E, 0x65, 0x72, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09,
+  0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xE9, 0xE9, 0x3D, 0xDF, 0xD7, 0x37, 0x08, 0xC9, 0x1E, 0x38, 0xB2,
+  0x52, 0x53, 0x42, 0x6D, 0x22, 0xF1, 0xB1, 0xC4, 0x06, 0x04, 0x6B, 0x9E,
+  0xFD, 0x82, 0x74, 0x50, 0x43, 0x7D, 0xC6, 0xA0, 0xBB, 0x1F, 0x4E, 0xF9,
+  0x02, 0x71, 0x26, 0xB1, 0xEF, 0x43, 0xD8, 0x83, 0x8C, 0x48, 0xFC, 0xE7,
+  0x0F, 0x97, 0x7A, 0x9A, 0xEB, 0x9C, 0xDE, 0xA6, 0xA3, 0x0E, 0x3B, 0x1C,
+  0x44, 0x18, 0x75, 0x8E, 0x78, 0xA5, 0x17, 0x69, 0xFE, 0x49, 0x18, 0xA4,
+  0xE2, 0xBB, 0x5C, 0x4E, 0xFE, 0x8E, 0x2A, 0x54, 0x7A, 0x50, 0xF0, 0xD5,
+  0xF6, 0xCC, 0x91, 0xE7, 0x99, 0x79, 0xD7, 0xDE, 0x79, 0x94, 0xD7, 0x96,
+  0x33, 0xFE, 0x0E, 0x83, 0xBE, 0x22, 0xBF, 0x63, 0x16, 0x2C, 0xA3, 0xDD,
+  0x28, 0x1B, 0xAF, 0x3D, 0xAB, 0xEA, 0x97, 0xD2, 0xF1, 0xBF, 0x04, 0x10,
+  0xE7, 0x3D, 0x48, 0x45, 0xFD, 0x1F, 0x68, 0x65, 0xC1, 0x7F, 0x59, 0x99,
+  0x69, 0xC0, 0x22, 0x31, 0x0C, 0x62, 0x6E, 0xA7, 0x5C, 0x65, 0x01, 0x21,
+  0xB0, 0x63, 0xC4, 0x22, 0x18, 0x27, 0xEE, 0xE6, 0xFC, 0xD2, 0x00, 0x3D,
+  0x47, 0x2E, 0xA8, 0xB8, 0x86, 0x56, 0x5D, 0x04, 0xDC, 0x13, 0x17, 0x25,
+  0x6E, 0x1C, 0xDF, 0x44, 0x0F, 0x15, 0xCD, 0xB7, 0xDB, 0xA5, 0x57, 0x76,
+  0x42, 0x6F, 0x00, 0x68, 0x82, 0x99, 0xD2, 0xE3, 0xC1, 0xDE, 0xF0, 0x8B,
+  0x94, 0x57, 0x4C, 0xEC, 0x08, 0x90, 0x22, 0x21, 0xCE, 0x22, 0x2B, 0x98,
+  0x0C, 0x42, 0xE6, 0x42, 0x93, 0x94, 0x98, 0x93, 0xEF, 0xFD, 0x06, 0xD9,
+  0x3F, 0xBC, 0x5B, 0x9B, 0x54, 0x3C, 0x20, 0xB1, 0xEE, 0x6A, 0xD6, 0x47,
+  0x7A, 0xC5, 0xAB, 0x80, 0xE9, 0x30, 0x9A, 0xDE, 0xF1, 0xA4, 0x3F, 0x55,
+  0x4D, 0x0A, 0x09, 0x34, 0x8A, 0x75, 0x29, 0xD2, 0x69, 0xAD, 0x97, 0x0F,
+  0x50, 0xBF, 0xF8, 0xCA, 0x09, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x81,
+  0xF4, 0x30, 0x81, 0xF1, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0xDA, 0xED, 0x64, 0x74, 0x14, 0x9C, 0x14,
+  0x3C, 0xAB, 0xDD, 0x99, 0xA9, 0xBD, 0x5B, 0x28, 0x4D, 0x8B, 0x3C, 0xC9,
+  0xD8, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14,
+  0x8E, 0x6B, 0x2D, 0x33, 0x6B, 0xF4, 0x33, 0xA7, 0x93, 0xB3, 0x13, 0x9A,
+  0xA5, 0xE0, 0x0A, 0xF7, 0x12, 0x35, 0x6A, 0x88, 0x30, 0x0E, 0x06, 0x03,
+  0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02, 0x06, 0xC0,
+  0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x02,
+  0x30, 0x00, 0x30, 0x16, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x01, 0x01, 0xFF,
+  0x04, 0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x08, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x3B, 0x30,
+  0x39, 0x30, 0x37, 0xA0, 0x35, 0xA0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74,
+  0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x6C, 0x2E, 0x75, 0x73, 0x65, 0x72,
+  0x74, 0x72, 0x75, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x55, 0x54,
+  0x4E, 0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74, 0x2D,
+  0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x35,
+  0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x29,
+  0x30, 0x27, 0x30, 0x25, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6F,
+  0x63, 0x73, 0x70, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48,
+  0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+  0x00, 0xBA, 0x33, 0x24, 0x40, 0x40, 0x8C, 0x7C, 0xDB, 0x58, 0x9F, 0xB3,
+  0x60, 0x98, 0xB2, 0xF5, 0xC0, 0x31, 0xFE, 0xEB, 0x1F, 0x6E, 0x50, 0xF6,
+  0x0A, 0xE0, 0xE4, 0xE6, 0x81, 0xAD, 0x26, 0x87, 0xA2, 0xDF, 0xFD, 0xB3,
+  0xDA, 0xF4, 0x73, 0xF3, 0x00, 0xFB, 0x29, 0x1B, 0x89, 0x1B, 0x15, 0x3E,
+  0xDB, 0x6B, 0x52, 0x93, 0x2B, 0xC4, 0xAC, 0x39, 0x81, 0xD7, 0x3C, 0x67,
+  0x57, 0x9A, 0x39, 0x36, 0xE0, 0x28, 0x08, 0x9A, 0xE3, 0x39, 0x4F, 0x9B,
+  0x89, 0x09, 0x7F, 0x7B, 0xC5, 0x61, 0x7F, 0x59, 0x89, 0x32, 0x25, 0x0A,
+  0x6A, 0xAE, 0x1A, 0x3E, 0xF0, 0xA2, 0x27, 0xA8, 0xB6, 0xC3, 0xB8, 0x87,
+  0xF7, 0x16, 0x04, 0x48, 0x41, 0x3D, 0x5C, 0xD8, 0xEC, 0x9F, 0x4D, 0x20,
+  0x31, 0x04, 0xD9, 0x65, 0xA1, 0xED, 0xCD, 0x69, 0x07, 0x53, 0x16, 0x3D,
+  0xDD, 0x36, 0x02, 0x0A, 0x88, 0xEB, 0x40, 0xE5, 0x06, 0x30, 0x0B, 0xB8,
+  0x16, 0x4B, 0xDC, 0xEF, 0xBC, 0x55, 0x09, 0xFF, 0xC6, 0x3E, 0x12, 0x2E,
+  0x76, 0xB3, 0xDC, 0xCE, 0x42, 0xEF, 0xF9, 0x76, 0x57, 0xE1, 0xB7, 0x0A,
+  0x05, 0x40, 0x98, 0x58, 0x9A, 0x5D, 0x71, 0x16, 0x93, 0x71, 0x8C, 0x65,
+  0x81, 0xEA, 0x6F, 0xF3, 0x89, 0xF7, 0xFB, 0x73, 0xAD, 0xB4, 0xE7, 0xBF,
+  0xD9, 0x8E, 0x6F, 0xAA, 0x0B, 0x4F, 0x25, 0xF3, 0xB8, 0xE1, 0xD5, 0xDD,
+  0x75, 0x98, 0x68, 0x81, 0xF8, 0xAA, 0xC0, 0xD1, 0x80, 0xC2, 0xC4, 0xC4,
+  0x39, 0x89, 0xC1, 0xF6, 0xC9, 0x9E, 0x6C, 0xD7, 0x74, 0xF9, 0xD9, 0x97,
+  0xF8, 0x4F, 0xC2, 0x9A, 0x0A, 0xCD, 0x5E, 0x8F, 0xF8, 0x19, 0xE9, 0xE0,
+  0xA5, 0x9F, 0xC4, 0xF0, 0x92, 0x21, 0xE6, 0x2D, 0x79, 0x25, 0xC9, 0x22,
+  0xF9, 0xC3, 0xF0, 0x3A, 0x84, 0x57, 0xAD, 0x3A, 0x16, 0xF4, 0x63, 0x94,
+  0x10, 0x1D, 0x5D, 0xD0, 0xC6, 0x31, 0x82, 0x02, 0x60, 0x30, 0x82, 0x02,
+  0x5C, 0x02, 0x01, 0x01, 0x30, 0x81, 0xA9, 0x30, 0x81, 0x95, 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, 0x1D, 0x30, 0x1B,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x55, 0x54, 0x4E, 0x2D, 0x55,
+  0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74, 0x2D, 0x4F, 0x62, 0x6A,
+  0x65, 0x63, 0x74, 0x02, 0x0F, 0x16, 0x88, 0xF0, 0x39, 0x25, 0x5E, 0x63,
+  0x8E, 0x69, 0x14, 0x39, 0x07, 0xE6, 0x33, 0x0B, 0x30, 0x09, 0x06, 0x05,
+  0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0xA0, 0x81, 0x8C, 0x30, 0x1A,
+  0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x03, 0x31,
+  0x0D, 0x06, 0x0B, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x10,
+  0x01, 0x04, 0x30, 0x1C, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
+  0x01, 0x09, 0x05, 0x31, 0x0F, 0x17, 0x0D, 0x31, 0x38, 0x30, 0x31, 0x33,
+  0x30, 0x31, 0x36, 0x34, 0x32, 0x31, 0x37, 0x5A, 0x30, 0x23, 0x06, 0x09,
+  0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x04, 0x31, 0x16, 0x04,
+  0x14, 0x23, 0x69, 0x8A, 0x94, 0x7E, 0x58, 0x63, 0xA6, 0x40, 0xD3, 0xF7,
+  0x6C, 0xA3, 0xC4, 0xB7, 0x65, 0x42, 0xA9, 0xB5, 0xC4, 0x30, 0x2B, 0x06,
+  0x0B, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x10, 0x02, 0x0C,
+  0x31, 0x1C, 0x30, 0x1A, 0x30, 0x18, 0x30, 0x16, 0x04, 0x14, 0x03, 0xA5,
+  0xB1, 0x46, 0x63, 0xEB, 0x12, 0x02, 0x30, 0x91, 0xB8, 0x4A, 0x6D, 0x6A,
+  0x68, 0xBC, 0x87, 0x1D, 0xE6, 0x6B, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86,
+  0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82, 0x01,
+  0x00, 0x60, 0xF0, 0x30, 0x50, 0xDF, 0x3A, 0xAE, 0xE8, 0x21, 0xE7, 0x3F,
+  0x44, 0x8B, 0x2C, 0xDB, 0xEB, 0x1C, 0x66, 0x91, 0x90, 0xE5, 0x53, 0xD0,
+  0x3A, 0x52, 0x1A, 0xDE, 0xC3, 0x85, 0xBE, 0xB0, 0xAE, 0x78, 0x62, 0x7D,
+  0xF6, 0x0C, 0xA3, 0xDD, 0x6D, 0xA2, 0x9D, 0xC8, 0x3C, 0x47, 0x4A, 0xA4,
+  0x43, 0x5C, 0x7A, 0xD0, 0xC5, 0x93, 0xC0, 0x1E, 0xC0, 0xF6, 0x09, 0x69,
+  0xDB, 0xD6, 0xEE, 0xF7, 0xEE, 0x54, 0x77, 0xCE, 0xB4, 0x7B, 0x43, 0x7C,
+  0x81, 0xE2, 0xEB, 0x4F, 0x3F, 0xFD, 0xE2, 0xAC, 0x22, 0x41, 0x8B, 0x9B,
+  0x31, 0x3D, 0x4E, 0x37, 0xAF, 0x70, 0x52, 0x82, 0x45, 0xAC, 0xC2, 0x55,
+  0xA5, 0x64, 0x79, 0x8F, 0xF4, 0x4E, 0x92, 0x0A, 0xB7, 0xE2, 0x63, 0xC5,
+  0x1C, 0x6A, 0xCF, 0xCF, 0x4F, 0xEC, 0xCA, 0x8E, 0x1C, 0xDB, 0x94, 0x6A,
+  0xEC, 0x86, 0x0B, 0xBD, 0x43, 0xFA, 0x90, 0x8B, 0xCC, 0xD5, 0x47, 0xFF,
+  0x25, 0xE6, 0x28, 0x64, 0xEB, 0xC6, 0xD1, 0xB7, 0x15, 0x60, 0x2C, 0x4B,
+  0x88, 0xCB, 0x8F, 0x73, 0xC3, 0x6B, 0x69, 0xF2, 0xC5, 0xDC, 0x9A, 0xF3,
+  0x03, 0x37, 0xF9, 0x1B, 0xDD, 0xB2, 0x98, 0x37, 0xCC, 0x65, 0xAA, 0x57,
+  0x16, 0x50, 0x89, 0x30, 0x4A, 0x12, 0xAC, 0x83, 0x1E, 0xB4, 0x80, 0x0F,
+  0xC1, 0x83, 0xE6, 0x54, 0xB7, 0x42, 0xBC, 0x9F, 0x48, 0xE6, 0xCF, 0xFE,
+  0x7E, 0x76, 0x48, 0xD5, 0xFE, 0x37, 0x71, 0xAD, 0xB7, 0x56, 0xC1, 0x77,
+  0x05, 0x48, 0x02, 0x38, 0x9B, 0xF1, 0x78, 0x7C, 0x73, 0xAD, 0xDA, 0xF0,
+  0x91, 0xC7, 0x73, 0xF9, 0x12, 0xFA, 0x1A, 0x05, 0xA6, 0x1B, 0x75, 0xE8,
+  0x8D, 0x38, 0xC1, 0xD5, 0x94, 0x56, 0x56, 0x24, 0x69, 0xDE, 0x67, 0xC1,
+  0x53, 0xC8, 0x88, 0xE9, 0x17, 0xF6, 0x69, 0xA1, 0x9C, 0x45, 0x2F, 0xB8,
+  0x24, 0x83, 0xBC, 0x8C, 0x5F
+  };
 
 //
 // Detached PKCS7 signedData (by signing TestBin with TestSub Certificate)
 //
-UINT8 P7Detached[1138] = {
-0x30, 0x82, 0x04, 0x6E, 0x02, 0x01, 0x01, 0x31, 0x0F, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48,
-0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x30, 0x0B, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
-0xF7, 0x0D, 0x01, 0x07, 0x01, 0xA0, 0x82, 0x02, 0xF3, 0x30, 0x82, 0x02, 0xEF, 0x30, 0x82, 0x01,
-0xDB, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0xF9, 0xCD, 0x3A, 0x06, 0x4D, 0x83, 0x34, 0xAB,
-0x4A, 0x5C, 0xF2, 0x7D, 0xC8, 0x72, 0xD6, 0x28, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02,
-0x1D, 0x05, 0x00, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08,
-0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x35, 0x30, 0x38,
-0x31, 0x33, 0x30, 0x36, 0x35, 0x32, 0x35, 0x32, 0x5A, 0x17, 0x0D, 0x33, 0x39, 0x31, 0x32, 0x33,
-0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x12, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03,
-0x55, 0x04, 0x03, 0x13, 0x07, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x62, 0x30, 0x82, 0x01, 0x22,
-0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
-0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xB1, 0x6D, 0x01,
-0x2E, 0xC2, 0xEA, 0x72, 0x83, 0xDA, 0x47, 0xCF, 0xC2, 0xB9, 0x03, 0xC5, 0x2D, 0x1E, 0x06, 0xA1,
-0x36, 0xD2, 0x81, 0x7B, 0x51, 0xAA, 0x10, 0xDD, 0x74, 0xCB, 0x57, 0x41, 0x1F, 0xFE, 0x5A, 0x9C,
-0xA1, 0x81, 0x0A, 0xDF, 0x0A, 0x54, 0x38, 0xA2, 0xA5, 0x35, 0xAF, 0xB3, 0xD0, 0x43, 0xC1, 0x11,
-0xBB, 0xFD, 0x82, 0x4A, 0x64, 0xBF, 0x35, 0xE4, 0xC5, 0x95, 0x1A, 0x2B, 0x6D, 0x3D, 0xA7, 0x06,
-0x26, 0xBF, 0xBA, 0x3A, 0x92, 0x39, 0xC2, 0xB5, 0x24, 0xA2, 0xE7, 0x91, 0x91, 0xD6, 0x83, 0x15,
-0x4A, 0x45, 0x6A, 0x90, 0x43, 0xD5, 0x4E, 0x18, 0xD2, 0xCE, 0xA7, 0xCA, 0x0B, 0x0A, 0x1E, 0x80,
-0xE2, 0x97, 0xB3, 0x62, 0xC3, 0xAC, 0x36, 0x5A, 0x10, 0x78, 0xB9, 0x87, 0xBA, 0xFB, 0x36, 0xE3,
-0xC2, 0x39, 0x66, 0x68, 0x1C, 0x31, 0xD4, 0x32, 0xE3, 0x4F, 0x62, 0x3A, 0x32, 0x4B, 0xC6, 0xF4,
-0x56, 0xCD, 0xC1, 0xDF, 0x76, 0x52, 0x43, 0x4F, 0xB4, 0x2E, 0x29, 0x06, 0x0A, 0x28, 0xB9, 0x03,
-0xDD, 0x65, 0x81, 0x1A, 0x7A, 0x47, 0x2F, 0x86, 0xAB, 0x37, 0xD9, 0xE3, 0x83, 0x6C, 0xE0, 0x7D,
-0x74, 0x26, 0x16, 0x8F, 0xCC, 0x2C, 0x12, 0xBB, 0x06, 0xD5, 0x7E, 0x3B, 0x5A, 0xE7, 0x22, 0x1B,
-0x41, 0xB3, 0x9F, 0xA4, 0x8C, 0x09, 0xC6, 0x8B, 0x4C, 0x60, 0xF1, 0x9D, 0xDE, 0x94, 0x05, 0x19,
-0xC4, 0xE3, 0x10, 0x31, 0x02, 0xE0, 0xEF, 0x4B, 0x7B, 0x76, 0xBF, 0xB2, 0xC3, 0xC8, 0x13, 0x67,
-0xEF, 0x15, 0xF5, 0xAB, 0x17, 0xF9, 0x8B, 0x99, 0x09, 0xEC, 0x17, 0xC7, 0x94, 0xDB, 0x3E, 0xAE,
-0x88, 0x49, 0x4B, 0xBC, 0x28, 0x02, 0x57, 0xF6, 0xED, 0xF7, 0xDE, 0x1F, 0xEA, 0x67, 0x86, 0xCA,
-0x40, 0x61, 0x0F, 0x2C, 0xBA, 0xCD, 0xC0, 0x55, 0x5E, 0xDC, 0xF8, 0xCD, 0x53, 0x02, 0x03, 0x01,
-0x00, 0x01, 0xA3, 0x48, 0x30, 0x46, 0x30, 0x44, 0x06, 0x03, 0x55, 0x1D, 0x01, 0x04, 0x3D, 0x30,
-0x3B, 0x80, 0x10, 0x84, 0xB5, 0x25, 0xA3, 0xD7, 0x99, 0x43, 0xE5, 0x71, 0xD3, 0x1D, 0xEE, 0x15,
-0x25, 0x0C, 0x6A, 0xA1, 0x15, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03,
-0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x82, 0x10, 0x6F, 0xC8, 0x9C, 0x84,
-0x28, 0x03, 0x85, 0x9B, 0x49, 0xA7, 0xD3, 0x63, 0x4F, 0xCC, 0x11, 0xF4, 0x30, 0x09, 0x06, 0x05,
-0x2B, 0x0E, 0x03, 0x02, 0x1D, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x10, 0x5F, 0xC3, 0xCD,
-0x68, 0x05, 0x16, 0x26, 0x94, 0xBE, 0xEC, 0x30, 0x4A, 0x78, 0x58, 0x7A, 0xC8, 0xAC, 0x9E, 0xDF,
-0xF3, 0x8A, 0x31, 0x33, 0x92, 0x24, 0x18, 0xF5, 0x88, 0x1E, 0xBC, 0xFA, 0xA0, 0xC2, 0x14, 0x74,
-0xE1, 0x7B, 0x98, 0x84, 0x8B, 0xF5, 0x27, 0x2C, 0x70, 0x99, 0x8E, 0x98, 0x11, 0x01, 0xF7, 0xC9,
-0x52, 0xD2, 0x1B, 0x36, 0xC9, 0x9F, 0xC5, 0x80, 0x7C, 0xCF, 0xD8, 0xC1, 0xC9, 0x40, 0xF9, 0x91,
-0x27, 0xD0, 0x90, 0x3D, 0x1A, 0xDB, 0x60, 0x58, 0x66, 0x4D, 0xD7, 0xA4, 0x98, 0x37, 0x21, 0x93,
-0xB7, 0x87, 0xD3, 0x71, 0x6B, 0x36, 0xA2, 0x40, 0xFC, 0x19, 0x51, 0x80, 0x1D, 0xD6, 0xEF, 0x9E,
-0x5B, 0xD9, 0x7B, 0x02, 0x04, 0xE4, 0x53, 0x40, 0x5F, 0x3E, 0xE2, 0x4D, 0xEB, 0x19, 0x9E, 0xAF,
-0xC5, 0x5B, 0x8E, 0x4F, 0x6B, 0x7B, 0xC8, 0xB4, 0xC9, 0x35, 0xA3, 0x8B, 0xB4, 0x7B, 0x97, 0x08,
-0x49, 0x3E, 0x9B, 0x20, 0x49, 0x81, 0x1C, 0x85, 0xE5, 0xEF, 0x58, 0x46, 0x4F, 0x63, 0xF7, 0x49,
-0x3A, 0x1B, 0x83, 0xCD, 0x7C, 0x9B, 0xC2, 0xF8, 0xC2, 0x5D, 0x62, 0xD2, 0x4D, 0x18, 0xAD, 0x87,
-0x77, 0x54, 0x6F, 0x8C, 0x6A, 0x31, 0x64, 0x2E, 0xFD, 0x29, 0x8F, 0xDF, 0xC8, 0xC7, 0x35, 0x91,
-0xE4, 0x76, 0xA1, 0x0E, 0x03, 0x8F, 0xC1, 0xBF, 0x35, 0x4B, 0x2A, 0xF1, 0x7F, 0x8B, 0x0F, 0xC3,
-0x9D, 0x5D, 0x41, 0x40, 0x8A, 0x05, 0xEB, 0x53, 0xE6, 0xF4, 0x03, 0x33, 0x07, 0xAB, 0x21, 0x51,
-0x50, 0x37, 0xB5, 0x65, 0x43, 0x4D, 0x25, 0x8B, 0xB0, 0x77, 0x47, 0xA3, 0xC7, 0x1C, 0xC7, 0xE7,
-0xB4, 0x8B, 0x4D, 0x9E, 0x5B, 0x77, 0xE3, 0x36, 0x69, 0xB4, 0x8F, 0x0D, 0x6C, 0xD0, 0xC5, 0x9D,
-0x8D, 0xD2, 0x49, 0xED, 0x5B, 0x21, 0x61, 0xF6, 0x2C, 0x74, 0x84, 0xA1, 0x31, 0x82, 0x01, 0x52,
-0x30, 0x82, 0x01, 0x4E, 0x02, 0x01, 0x01, 0x30, 0x27, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 0x06,
-0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x02, 0x10,
-0xF9, 0xCD, 0x3A, 0x06, 0x4D, 0x83, 0x34, 0xAB, 0x4A, 0x5C, 0xF2, 0x7D, 0xC8, 0x72, 0xD6, 0x28,
-0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x30,
-0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82,
-0x01, 0x00, 0x22, 0xB9, 0x4A, 0x53, 0xA4, 0x35, 0xF3, 0xDA, 0xF3, 0xA9, 0x37, 0x12, 0xF7, 0x5B,
-0x8F, 0xFA, 0x14, 0x57, 0x86, 0x59, 0xA6, 0x9A, 0xC2, 0x7C, 0x1C, 0x79, 0xC3, 0xD2, 0xF8, 0x84,
-0x6C, 0x4E, 0x14, 0x44, 0x6C, 0x56, 0x45, 0x3C, 0x38, 0xC3, 0x6B, 0x12, 0x02, 0x97, 0xB7, 0x86,
-0xA7, 0xAC, 0x2E, 0x46, 0xA8, 0xF9, 0xA9, 0x57, 0x13, 0x28, 0xCE, 0x37, 0x57, 0x1C, 0xC9, 0xCD,
-0x8E, 0xC4, 0xFE, 0x56, 0xC6, 0x97, 0x11, 0x2E, 0xFA, 0xE0, 0x09, 0x91, 0xF7, 0x30, 0xF9, 0x45,
-0x2C, 0x41, 0xAA, 0xAF, 0xFF, 0x3D, 0x55, 0xCB, 0x89, 0x0A, 0xFE, 0xF6, 0x60, 0xD4, 0xDF, 0x64,
-0xF6, 0x1C, 0xDD, 0x8C, 0x84, 0x2F, 0xB6, 0x67, 0x1D, 0xD7, 0xE2, 0xB9, 0x9A, 0x04, 0x07, 0xF8,
-0xDC, 0x5B, 0xA3, 0x12, 0x91, 0x08, 0x00, 0x85, 0x95, 0xA1, 0x17, 0x8D, 0x93, 0x49, 0x6A, 0xAA,
-0x4E, 0xE4, 0xF5, 0x4B, 0xDE, 0x22, 0x21, 0xE2, 0x57, 0x62, 0x7D, 0x6E, 0xC1, 0x31, 0x38, 0x2C,
-0x89, 0x93, 0x07, 0x42, 0x5B, 0xDB, 0x56, 0x71, 0x39, 0x1F, 0xED, 0xCA, 0x43, 0x67, 0x88, 0xC9,
-0x8E, 0x23, 0x0D, 0x68, 0x5B, 0x7E, 0x38, 0x52, 0x5C, 0x96, 0xE7, 0x5F, 0x32, 0x2F, 0x5F, 0x37,
-0x4E, 0x9E, 0x27, 0xA5, 0x79, 0xF9, 0x03, 0xAB, 0x3C, 0xB5, 0x20, 0x1E, 0x01, 0x48, 0x9B, 0xB8,
-0x11, 0x12, 0xB2, 0xCA, 0x8B, 0x69, 0x08, 0x5F, 0x78, 0x80, 0x09, 0x14, 0xA0, 0x3D, 0x57, 0x2B,
-0xBB, 0x75, 0x9A, 0xFF, 0x33, 0xA2, 0x2B, 0x1C, 0x3B, 0xEE, 0xBF, 0xE5, 0x8B, 0x34, 0xDB, 0x54,
-0x15, 0xE2, 0x5E, 0x13, 0x56, 0x02, 0x5D, 0xB9, 0x3D, 0x5A, 0x47, 0x59, 0x5D, 0x86, 0xC1, 0x75,
-0xED, 0x4E, 0x12, 0xD7, 0x69, 0x76, 0xB2, 0xED, 0xBA, 0x65, 0xA2, 0x1A, 0xDB, 0x01, 0x81, 0x62,
-0x7E, 0x07
-};
-
-//
-// The Comodo Time Stamping Signer Certificate Used for the verification of TimeStamp signature
-// which was retrieved from signed-timestamped TestBin binary.
-//
-UINT8 TSRootCert[1176] = {
-  0x30, 0x82, 0x04, 0x94, 0x30, 0x82, 0x03, 0x7c, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x11, 0x00,
-  0x9f, 0xea, 0xc8, 0x11, 0xb0, 0xf1, 0x62, 0x47, 0xa5, 0xfc, 0x20, 0xd8, 0x05, 0x23, 0xac, 0xe6,
-  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30,
-  0x81, 0x95, 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, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
-  0x03, 0x13, 0x14, 0x55, 0x54, 0x4e, 0x2d, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74,
-  0x2d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x35, 0x30,
-  0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31,
-  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x7e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
-  0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
-  0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x4d, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73,
-  0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61,
-  0x6c, 0x66, 0x6f, 0x72, 0x64, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11,
-  0x43, 0x4f, 0x4d, 0x4f, 0x44, 0x4f, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65,
-  0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1b, 0x43, 0x4f, 0x4d, 0x4f,
-  0x44, 0x4f, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67,
-  0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
-  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
-  0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbc, 0x35, 0xa0, 0x36, 0x70, 0x22, 0x81, 0x11,
-  0xc3, 0xb2, 0x83, 0xb9, 0xd3, 0x28, 0xc6, 0x36, 0xcd, 0x25, 0x6b, 0xa9, 0x7b, 0xb2, 0x1c, 0xf6,
-  0x9b, 0x51, 0x9c, 0xef, 0x35, 0xf4, 0xed, 0x08, 0x8e, 0x5e, 0x38, 0x08, 0xf8, 0x77, 0x3c, 0x0a,
-  0x42, 0xe0, 0xf3, 0x70, 0xdc, 0xa3, 0xd7, 0xca, 0xf5, 0x4c, 0x0b, 0xcf, 0xff, 0x22, 0x9c, 0x0a,
-  0x7e, 0x68, 0xd6, 0x09, 0xa2, 0x2a, 0x84, 0x7b, 0xa6, 0x9d, 0xb4, 0xa9, 0xc1, 0x33, 0xe2, 0xef,
-  0x1f, 0x17, 0x48, 0xca, 0x3a, 0xcd, 0x46, 0xe6, 0xc5, 0xaa, 0x77, 0xbd, 0xe3, 0x77, 0x9a, 0xfa,
-  0x47, 0x53, 0x40, 0x28, 0x59, 0x43, 0x93, 0xf1, 0xa4, 0x81, 0xea, 0xef, 0x80, 0xb5, 0x4f, 0xa7,
-  0x08, 0xce, 0xba, 0x6e, 0xbc, 0xca, 0x76, 0x0c, 0x97, 0x64, 0x59, 0x86, 0x24, 0xbb, 0x3d, 0x82,
-  0x90, 0xa8, 0x55, 0xb1, 0x92, 0xd3, 0xa0, 0xa7, 0x05, 0xac, 0x9f, 0x53, 0x25, 0x08, 0x10, 0x47,
-  0x99, 0xcd, 0x98, 0xde, 0x68, 0xe5, 0xb4, 0x50, 0x78, 0xa3, 0xaf, 0x01, 0xcc, 0x59, 0x43, 0x58,
-  0xe4, 0x76, 0x6e, 0x7e, 0xac, 0xc7, 0xe2, 0x9e, 0x1f, 0x4f, 0xb0, 0x47, 0x2d, 0xc8, 0x0c, 0xa3,
-  0x49, 0x27, 0x80, 0x75, 0x8c, 0xbb, 0x06, 0x91, 0x65, 0x0f, 0x90, 0x9b, 0xf4, 0xba, 0xd1, 0x81,
-  0xc8, 0x5c, 0x6a, 0xec, 0x14, 0xe9, 0x25, 0x09, 0xbf, 0x23, 0x16, 0xf4, 0x95, 0x46, 0x40, 0x40,
-  0x21, 0xbb, 0x83, 0x96, 0xfd, 0x86, 0x1f, 0x7a, 0xc8, 0x0d, 0x10, 0x8e, 0xa2, 0xf8, 0x19, 0x07,
-  0x58, 0x7f, 0x9f, 0xbd, 0x37, 0x02, 0x60, 0xf2, 0xa4, 0xe9, 0x9d, 0x44, 0x3f, 0x30, 0x05, 0xe4,
-  0xa7, 0x70, 0x99, 0x51, 0x9a, 0xe8, 0x17, 0xf1, 0x55, 0xca, 0xb2, 0x61, 0x89, 0x65, 0x46, 0xa7,
-  0x6a, 0xf2, 0x58, 0x46, 0x7e, 0xaa, 0xa0, 0x07, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xf4,
-  0x30, 0x81, 0xf1, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
-  0xda, 0xed, 0x64, 0x74, 0x14, 0x9c, 0x14, 0x3c, 0xab, 0xdd, 0x99, 0xa9, 0xbd, 0x5b, 0x28, 0x4d,
-  0x8b, 0x3c, 0xc9, 0xd8, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2e,
-  0x2d, 0xb0, 0x0a, 0x44, 0x4a, 0xd3, 0x87, 0xc0, 0x02, 0x07, 0xce, 0x97, 0x7d, 0x50, 0x62, 0x20,
-  0xfd, 0x0f, 0x83, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
-  0x02, 0x06, 0xc0, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30,
-  0x00, 0x30, 0x16, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x01, 0x01, 0xff, 0x04, 0x0c, 0x30, 0x0a, 0x06,
-  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x08, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f,
-  0x04, 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70,
-  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74,
-  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x54, 0x4e, 0x2d, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72,
-  0x73, 0x74, 0x2d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x35, 0x06,
-  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0x06,
-  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3a,
-  0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74,
-  0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
-  0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x0d, 0xbb, 0xad, 0x60, 0x11, 0x1b, 0xb5, 0xf0,
-  0x0d, 0xcc, 0xe6, 0x48, 0x3a, 0x7a, 0x3e, 0x0e, 0x33, 0xdc, 0x1c, 0xb9, 0xea, 0xd6, 0x20, 0xfe,
-  0xa3, 0x4d, 0xd0, 0xcc, 0x76, 0x4e, 0xe8, 0x18, 0xd8, 0x79, 0xdf, 0xd3, 0x4f, 0x9a, 0x42, 0x64,
-  0x23, 0x8a, 0x29, 0x72, 0x8a, 0x3a, 0x6c, 0x66, 0xa6, 0x3c, 0x3a, 0x17, 0xa8, 0x70, 0x45, 0x65,
-  0xc6, 0x73, 0xc3, 0xd0, 0xce, 0x89, 0x54, 0xfb, 0xac, 0x69, 0x0f, 0x58, 0xb0, 0x19, 0xcb, 0x86,
-  0x9f, 0x7e, 0xb9, 0x7e, 0xeb, 0x51, 0x92, 0xbf, 0x9b, 0xdd, 0xeb, 0xd1, 0x65, 0xf0, 0x25, 0x7b,
-  0x88, 0x7c, 0xde, 0xbd, 0xa5, 0xc8, 0xb5, 0x14, 0x51, 0xbc, 0xc0, 0x81, 0x30, 0x8a, 0x85, 0x38,
-  0x7b, 0xe6, 0x79, 0xfe, 0x67, 0x55, 0x93, 0x87, 0xfe, 0x4f, 0xe8, 0x8d, 0x0e, 0xed, 0xf3, 0x72,
-  0x92, 0xb5, 0xc2, 0x89, 0x80, 0x6d, 0xd1, 0x59, 0xe3, 0x1d, 0x0d, 0xea, 0xb1, 0x38, 0xee, 0x03,
-  0x9d, 0x00, 0x19, 0xa5, 0xab, 0x21, 0x9b, 0x79, 0xc3, 0xcc, 0xc2, 0x3e, 0x68, 0x7e, 0xbd, 0xc9,
-  0x4d, 0x69, 0x4d, 0xb4, 0x64, 0x51, 0xfb, 0xb2, 0x28, 0x74, 0xe2, 0x53, 0x89, 0xce, 0x9d, 0xfa,
-  0xad, 0xe2, 0xdb, 0xce, 0xab, 0x7b, 0x7e, 0x06, 0x44, 0x74, 0xfd, 0x0a, 0xa3, 0xc9, 0xb7, 0xa7,
-  0x30, 0xcd, 0x49, 0xd2, 0x92, 0x64, 0xf1, 0x22, 0xa6, 0xb8, 0x28, 0x45, 0x74, 0x79, 0xe9, 0xa7,
-  0xce, 0x3b, 0x33, 0xf9, 0x83, 0x50, 0x94, 0x7d, 0x68, 0xc0, 0x1d, 0x49, 0xc7, 0x60, 0x78, 0x7a,
-  0x3c, 0x64, 0x26, 0xd5, 0xbe, 0xfa, 0x0a, 0x6d, 0xe4, 0x1e, 0xe1, 0x09, 0x53, 0x8f, 0xa9, 0xc5,
-  0x23, 0xac, 0xc7, 0x9d, 0x61, 0x42, 0x21, 0xf0, 0x2c, 0x16, 0x71, 0x49, 0x3b, 0x10, 0xaf, 0x2c,
-  0x6f, 0x1a, 0xe6, 0x31, 0xf1, 0x14, 0xfd, 0x6c
+UINT8 P7Detached[1163] = {
+  0x30, 0x82, 0x04, 0x87, 0x02, 0x01, 0x01, 0x31, 0x0F, 0x30, 0x0D, 0x06,
+  0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,
+  0x30, 0x0B, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07,
+  0x01, 0xA0, 0x82, 0x03, 0x0C, 0x30, 0x82, 0x03, 0x08, 0x30, 0x82, 0x01,
+  0xF0, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x87, 0xF0, 0xD2, 0x05,
+  0x0C, 0x57, 0x0C, 0x96, 0x48, 0x94, 0xBA, 0x6B, 0xEB, 0xA2, 0x97, 0x46,
+  0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01,
+  0x0B, 0x05, 0x00, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74,
+  0x30, 0x1E, 0x17, 0x0D, 0x31, 0x38, 0x30, 0x31, 0x32, 0x35, 0x30, 0x32,
+  0x30, 0x36, 0x34, 0x35, 0x5A, 0x17, 0x0D, 0x33, 0x39, 0x31, 0x32, 0x33,
+  0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x12, 0x31, 0x10,
+  0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x07, 0x54, 0x65, 0x73,
+  0x74, 0x53, 0x75, 0x62, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09,
+  0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0x9F, 0x97, 0xC4, 0x19, 0x70, 0x6C, 0x7D, 0x3D, 0x7F, 0x32, 0xC8,
+  0x01, 0xFA, 0xA9, 0x36, 0x84, 0xA2, 0xAF, 0xB6, 0xF5, 0xC6, 0x22, 0xF6,
+  0xF9, 0x98, 0xDB, 0xC9, 0xEF, 0xA0, 0xDF, 0x2E, 0x02, 0x8B, 0x76, 0xD0,
+  0x05, 0x72, 0x72, 0x0A, 0xBB, 0xAC, 0x45, 0xDA, 0x45, 0x96, 0x7E, 0x71,
+  0x69, 0x32, 0x1C, 0xA0, 0x73, 0x93, 0x91, 0xBA, 0x86, 0x6A, 0x86, 0xFC,
+  0x2B, 0x95, 0x57, 0x82, 0xD8, 0x67, 0x59, 0x43, 0xD8, 0xEE, 0xBE, 0x12,
+  0xF1, 0x9F, 0x95, 0x8E, 0x10, 0xA0, 0xFC, 0xF4, 0x47, 0x19, 0x49, 0xA3,
+  0xA0, 0xE5, 0x93, 0x3A, 0x7C, 0x0B, 0x03, 0xE5, 0x8E, 0xDF, 0xCD, 0x86,
+  0x98, 0x9C, 0xF4, 0x95, 0x67, 0x9D, 0xD8, 0xB8, 0xC2, 0x16, 0xED, 0x20,
+  0x7D, 0x07, 0x7F, 0xAD, 0xD0, 0x75, 0x5F, 0x7B, 0xB9, 0xA3, 0xC2, 0xD4,
+  0x2F, 0x42, 0x06, 0xE4, 0xBA, 0x8C, 0xF0, 0x69, 0x71, 0xA2, 0x3B, 0x68,
+  0x3A, 0x35, 0x10, 0x32, 0x0E, 0xDA, 0x91, 0xC6, 0x00, 0x83, 0x74, 0xAB,
+  0xF4, 0xB4, 0x55, 0xC2, 0x48, 0x9A, 0xCE, 0x89, 0xFE, 0x28, 0x10, 0x62,
+  0xEA, 0xC0, 0xC5, 0xC4, 0x15, 0x20, 0x78, 0xF9, 0xB0, 0xE9, 0x7B, 0xA3,
+  0x1B, 0xB8, 0xE7, 0xA5, 0x79, 0xA5, 0xFF, 0x1B, 0x68, 0xA3, 0xA4, 0x3A,
+  0x18, 0xA6, 0x77, 0xF6, 0x2F, 0xC8, 0xC4, 0xBD, 0xA6, 0xDC, 0xC6, 0xAF,
+  0x48, 0xF4, 0x44, 0xF9, 0x60, 0x00, 0xE7, 0x94, 0xBC, 0xE3, 0x70, 0x2E,
+  0x21, 0x8E, 0x6E, 0x90, 0xD0, 0x4B, 0xE1, 0xB6, 0x58, 0x81, 0x4E, 0x4E,
+  0xAA, 0xEB, 0x6A, 0xE8, 0xBC, 0xCE, 0xD7, 0x96, 0xB0, 0x6A, 0x99, 0x8D,
+  0x93, 0xF9, 0x79, 0xA3, 0xAD, 0x9A, 0x3C, 0x52, 0x0E, 0x87, 0x9B, 0x34,
+  0xBC, 0x1D, 0xD0, 0x6A, 0x77, 0xCC, 0x21, 0x2F, 0x5F, 0xCB, 0x60, 0x0A,
+  0xEF, 0xF5, 0xBD, 0xE9, 0x15, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x59,
+  0x30, 0x57, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF,
+  0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xFF, 0x30, 0x44, 0x06, 0x03, 0x55,
+  0x1D, 0x01, 0x04, 0x3D, 0x30, 0x3B, 0x80, 0x10, 0x7A, 0x73, 0xC4, 0xE1,
+  0x17, 0x5D, 0xA7, 0x53, 0x98, 0x6B, 0x7A, 0x61, 0x49, 0xBC, 0xE5, 0xE3,
+  0xA1, 0x15, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x82,
+  0x10, 0xDE, 0x9F, 0x42, 0x91, 0x68, 0x16, 0xEA, 0x97, 0x4D, 0xA1, 0x8A,
+  0x32, 0x25, 0xD6, 0xEE, 0x8D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48,
+  0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+  0x00, 0x2A, 0x39, 0x32, 0xE5, 0xFA, 0x14, 0x03, 0x1A, 0x8B, 0xBD, 0xDF,
+  0xAB, 0x6D, 0x1C, 0xF7, 0x8B, 0xE5, 0x76, 0x4E, 0x02, 0xDF, 0x9D, 0x18,
+  0x7E, 0x1E, 0x73, 0xDC, 0x9C, 0xD5, 0x36, 0xA2, 0x91, 0xC7, 0xC0, 0xAC,
+  0xEE, 0x92, 0xE8, 0x3C, 0x88, 0x2A, 0xF5, 0x61, 0x6F, 0xB7, 0xC4, 0x21,
+  0xC3, 0xCD, 0xE5, 0xCF, 0x48, 0x46, 0x67, 0x5A, 0xC3, 0x16, 0x4E, 0xBE,
+  0xF0, 0x30, 0xD8, 0x3B, 0xBC, 0x8F, 0x84, 0xCD, 0x15, 0xD5, 0xB3, 0x11,
+  0xA0, 0xAD, 0xED, 0x81, 0x51, 0x49, 0x71, 0x7F, 0xF6, 0xCC, 0x4C, 0x44,
+  0x59, 0x13, 0x5E, 0x27, 0x98, 0x73, 0x5B, 0x74, 0xD6, 0xD6, 0x59, 0xFF,
+  0x81, 0x57, 0xBF, 0xF1, 0xF3, 0x01, 0x6C, 0xE6, 0x32, 0xE4, 0x05, 0xFE,
+  0x1B, 0x1E, 0x33, 0x03, 0x2E, 0x9A, 0xA1, 0x1E, 0xBE, 0xA3, 0x0E, 0xA5,
+  0x59, 0x50, 0x38, 0x3D, 0x0B, 0xF7, 0xD8, 0x25, 0x15, 0xCB, 0xFA, 0x73,
+  0x22, 0x24, 0xD2, 0x5E, 0x7F, 0xAE, 0x8B, 0x8F, 0x44, 0x29, 0x68, 0x49,
+  0x6A, 0x36, 0xA8, 0x29, 0x5B, 0xAE, 0xD3, 0xE4, 0x5E, 0xE1, 0xDB, 0xF1,
+  0x73, 0xEE, 0x15, 0x88, 0x03, 0x69, 0x0D, 0x53, 0xF4, 0x92, 0x93, 0xDF,
+  0xC9, 0x95, 0x22, 0xED, 0x0E, 0xEB, 0xCD, 0xB2, 0x1E, 0xFD, 0xCA, 0xEF,
+  0x53, 0x06, 0xF2, 0xE0, 0x85, 0xE2, 0x51, 0x6C, 0xE9, 0xAB, 0x8D, 0x30,
+  0x5A, 0xC3, 0xDC, 0x0A, 0xC2, 0xDC, 0x23, 0x47, 0xDD, 0x8F, 0x18, 0x06,
+  0x24, 0xFF, 0x77, 0xF8, 0xFA, 0x25, 0x2B, 0x68, 0x7A, 0xD1, 0xED, 0x41,
+  0xA2, 0x37, 0x95, 0xBC, 0x2B, 0xBB, 0x64, 0xBE, 0x9D, 0x6A, 0x6E, 0x5A,
+  0x85, 0xBF, 0x03, 0xC5, 0x4E, 0xA1, 0x5D, 0x82, 0xFE, 0x19, 0x85, 0xD7,
+  0x60, 0xE9, 0x01, 0xB3, 0x40, 0x1F, 0x8B, 0x16, 0xDD, 0xFD, 0x22, 0x55,
+  0x2F, 0x3D, 0xDF, 0xA7, 0x28, 0x31, 0x82, 0x01, 0x52, 0x30, 0x82, 0x01,
+  0x4E, 0x02, 0x01, 0x01, 0x30, 0x27, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52,
+  0x6F, 0x6F, 0x74, 0x02, 0x10, 0x87, 0xF0, 0xD2, 0x05, 0x0C, 0x57, 0x0C,
+  0x96, 0x48, 0x94, 0xBA, 0x6B, 0xEB, 0xA2, 0x97, 0x46, 0x30, 0x0D, 0x06,
+  0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,
+  0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x04, 0x82, 0x01, 0x00, 0x57, 0x8A, 0x23, 0xE1, 0x7C,
+  0x50, 0xEB, 0x86, 0xFE, 0x20, 0x58, 0xA1, 0x59, 0xE1, 0x65, 0xC4, 0x31,
+  0xDE, 0xC6, 0xB3, 0x00, 0x84, 0x5C, 0x6E, 0x7D, 0x83, 0x44, 0x02, 0xD8,
+  0xB0, 0x81, 0xCE, 0xC1, 0xA9, 0x26, 0x05, 0x85, 0x76, 0x43, 0x08, 0x15,
+  0x47, 0x61, 0x41, 0x72, 0xE1, 0x49, 0xBD, 0x6B, 0x1F, 0xC1, 0xC2, 0xBF,
+  0xA1, 0x54, 0xE2, 0xFA, 0x1D, 0xDD, 0x13, 0x14, 0x1C, 0x09, 0xF3, 0x0C,
+  0xBF, 0xE1, 0x4F, 0xBF, 0xF9, 0xD7, 0xF1, 0x21, 0x9A, 0xCC, 0x16, 0xA6,
+  0x08, 0x3C, 0x99, 0x50, 0x2F, 0x38, 0xF7, 0xFF, 0xB9, 0x1C, 0x63, 0x8C,
+  0xBD, 0xBD, 0x38, 0x11, 0xF5, 0x48, 0xB5, 0xD9, 0x6F, 0xC8, 0xFB, 0xC7,
+  0xE9, 0xB6, 0xA4, 0xBE, 0xDE, 0x22, 0xB2, 0xAA, 0x38, 0xE1, 0x58, 0x05,
+  0x06, 0xB9, 0xC4, 0x82, 0x6E, 0x14, 0x25, 0x87, 0xC2, 0x06, 0xD9, 0x73,
+  0x85, 0x19, 0xF4, 0x87, 0x9C, 0xFB, 0x8A, 0xD8, 0x2C, 0x13, 0x1A, 0xA3,
+  0x24, 0xC8, 0xEC, 0xA4, 0xBA, 0x81, 0xE1, 0x7E, 0x4A, 0x18, 0x9C, 0xE0,
+  0x98, 0xCF, 0xA5, 0x78, 0x40, 0xD0, 0xFD, 0xD9, 0xC0, 0x0E, 0x0C, 0x87,
+  0xBD, 0xDB, 0x06, 0x88, 0x7A, 0x09, 0xEE, 0x92, 0x22, 0xB0, 0xC8, 0x11,
+  0xB1, 0x12, 0x9D, 0x9B, 0x0D, 0xD5, 0x60, 0xED, 0x31, 0x5A, 0x38, 0x6C,
+  0x50, 0x55, 0x70, 0xD8, 0x5A, 0x51, 0x1A, 0xDA, 0x03, 0x53, 0x9A, 0x2D,
+  0x3F, 0x2A, 0xA5, 0xD6, 0x0F, 0x5E, 0x51, 0xDD, 0xE7, 0x48, 0xAE, 0xE3,
+  0x6C, 0x1D, 0x44, 0xC4, 0x16, 0xA2, 0x56, 0x8E, 0x80, 0xCB, 0x12, 0xB3,
+  0xA6, 0x12, 0x10, 0x66, 0x45, 0x3A, 0x56, 0x2B, 0x46, 0xFF, 0x33, 0x67,
+  0xBE, 0x32, 0x0B, 0x9B, 0x62, 0x2B, 0x8F, 0xD1, 0xB5, 0x03, 0xE2, 0x7B,
+  0x6F, 0x29, 0x8F, 0x63, 0x05, 0xB6, 0xB6, 0x65, 0xD7, 0x62, 0x70
   };
 
 //
-//TBSCert in TestSub Certificate
+// The SHA256 Digest Value of "HelloWorld.efi"
+// (Follow the PE/COFF Image Hash Calculation process in MSFT Authenticode Specification)
 //
-UINT8 TBSCert[479] = {
-  0x30, 0x82, 0x01, 0xdb, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0xf9, 0xcd, 0x3a, 0x06, 0x4d,
-  0x83, 0x34, 0xab, 0x4a, 0x5c, 0xf2, 0x7d, 0xc8, 0x72, 0xd6, 0x28, 0x30, 0x09, 0x06, 0x05, 0x2b,
-  0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04,
-  0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31,
-  0x35, 0x30, 0x38, 0x31, 0x33, 0x30, 0x36, 0x35, 0x32, 0x35, 0x32, 0x5a, 0x17, 0x0d, 0x33, 0x39,
-  0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x12, 0x31, 0x10, 0x30,
-  0x0e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x07, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x62, 0x30,
-  0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
-  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
-  0xb1, 0x6d, 0x01, 0x2e, 0xc2, 0xea, 0x72, 0x83, 0xda, 0x47, 0xcf, 0xc2, 0xb9, 0x03, 0xc5, 0x2d,
-  0x1e, 0x06, 0xa1, 0x36, 0xd2, 0x81, 0x7b, 0x51, 0xaa, 0x10, 0xdd, 0x74, 0xcb, 0x57, 0x41, 0x1f,
-  0xfe, 0x5a, 0x9c, 0xa1, 0x81, 0x0a, 0xdf, 0x0a, 0x54, 0x38, 0xa2, 0xa5, 0x35, 0xaf, 0xb3, 0xd0,
-  0x43, 0xc1, 0x11, 0xbb, 0xfd, 0x82, 0x4a, 0x64, 0xbf, 0x35, 0xe4, 0xc5, 0x95, 0x1a, 0x2b, 0x6d,
-  0x3d, 0xa7, 0x06, 0x26, 0xbf, 0xba, 0x3a, 0x92, 0x39, 0xc2, 0xb5, 0x24, 0xa2, 0xe7, 0x91, 0x91,
-  0xd6, 0x83, 0x15, 0x4a, 0x45, 0x6a, 0x90, 0x43, 0xd5, 0x4e, 0x18, 0xd2, 0xce, 0xa7, 0xca, 0x0b,
-  0x0a, 0x1e, 0x80, 0xe2, 0x97, 0xb3, 0x62, 0xc3, 0xac, 0x36, 0x5a, 0x10, 0x78, 0xb9, 0x87, 0xba,
-  0xfb, 0x36, 0xe3, 0xc2, 0x39, 0x66, 0x68, 0x1c, 0x31, 0xd4, 0x32, 0xe3, 0x4f, 0x62, 0x3a, 0x32,
-  0x4b, 0xc6, 0xf4, 0x56, 0xcd, 0xc1, 0xdf, 0x76, 0x52, 0x43, 0x4f, 0xb4, 0x2e, 0x29, 0x06, 0x0a,
-  0x28, 0xb9, 0x03, 0xdd, 0x65, 0x81, 0x1a, 0x7a, 0x47, 0x2f, 0x86, 0xab, 0x37, 0xd9, 0xe3, 0x83,
-  0x6c, 0xe0, 0x7d, 0x74, 0x26, 0x16, 0x8f, 0xcc, 0x2c, 0x12, 0xbb, 0x06, 0xd5, 0x7e, 0x3b, 0x5a,
-  0xe7, 0x22, 0x1b, 0x41, 0xb3, 0x9f, 0xa4, 0x8c, 0x09, 0xc6, 0x8b, 0x4c, 0x60, 0xf1, 0x9d, 0xde,
-  0x94, 0x05, 0x19, 0xc4, 0xe3, 0x10, 0x31, 0x02, 0xe0, 0xef, 0x4b, 0x7b, 0x76, 0xbf, 0xb2, 0xc3,
-  0xc8, 0x13, 0x67, 0xef, 0x15, 0xf5, 0xab, 0x17, 0xf9, 0x8b, 0x99, 0x09, 0xec, 0x17, 0xc7, 0x94,
-  0xdb, 0x3e, 0xae, 0x88, 0x49, 0x4b, 0xbc, 0x28, 0x02, 0x57, 0xf6, 0xed, 0xf7, 0xde, 0x1f, 0xea,
-  0x67, 0x86, 0xca, 0x40, 0x61, 0x0f, 0x2c, 0xba, 0xcd, 0xc0, 0x55, 0x5e, 0xdc, 0xf8, 0xcd, 0x53,
-  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x48, 0x30, 0x46, 0x30, 0x44, 0x06, 0x03, 0x55, 0x1d, 0x01,
-  0x04, 0x3d, 0x30, 0x3b, 0x80, 0x10, 0x84, 0xb5, 0x25, 0xa3, 0xd7, 0x99, 0x43, 0xe5, 0x71, 0xd3,
-  0x1d, 0xee, 0x15, 0x25, 0x0c, 0x6a, 0xa1, 0x15, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03,
-  0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x82, 0x10, 0x6f,
-  0xc8, 0x9c, 0x84, 0x28, 0x03, 0x85, 0x9b, 0x49, 0xa7, 0xd3, 0x63, 0x4f, 0xcc, 0x11, 0xf4
-};
+GLOBAL_REMOVE_IF_UNREFERENCED UINT8 TestInHash[32] = {
+  0x3D, 0x39, 0xBB, 0x5D, 0xAC, 0x7F, 0x18, 0x94, 0x84, 0x4C, 0xC3, 0xD2,
+  0xEF, 0x6D, 0xD8, 0x0F, 0x4B, 0xBD, 0x1A, 0xE2, 0xC2, 0xE1, 0x98, 0x18,
+  0xED, 0x6A, 0x2C, 0x83, 0x5F, 0x93, 0xAA, 0x00
+  };
 
 //
-// The SHA256 Digest Value of Sample TBSCert in TestSub Certificate
+// Detached PKCS7 signedData 
+// (Authenticode-Signature part retrieved from signed HelloWorld.efi)
 //
-UINT8 TestSubHash[32] = {
-  0x04, 0xe7, 0x67, 0x7d, 0x45, 0x8b, 0x1a, 0x61, 0x3f, 0x9a, 0x27, 0xd0, 0x48, 0x92, 0xb4, 0xd5,
-  0xe9, 0x1e, 0xee, 0xf4, 0xed, 0x71, 0x1d, 0x30, 0x2d, 0x2e, 0x20, 0x2c, 0x34, 0x46, 0x5d, 0xaa
-};
\ No newline at end of file
+GLOBAL_REMOVE_IF_UNREFERENCED UINT8 P7TestSignature[3480] = {
+  0x30, 0x82, 0x0D, 0x8F, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
+  0x01, 0x07, 0x02, 0xA0, 0x82, 0x0D, 0x80, 0x30, 0x82, 0x0D, 0x7C, 0x02,
+  0x01, 0x01, 0x31, 0x0F, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
+  0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x30, 0x5C, 0x06, 0x0A, 0x2B,
+  0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x04, 0xA0, 0x4E, 0x30,
+  0x4C, 0x30, 0x17, 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37,
+  0x02, 0x01, 0x0F, 0x30, 0x09, 0x03, 0x01, 0x00, 0xA0, 0x04, 0xA2, 0x02,
+  0x80, 0x00, 0x30, 0x31, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
+  0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20, 0x3D, 0x39, 0xBB,
+  0x5D, 0xAC, 0x7F, 0x18, 0x94, 0x84, 0x4C, 0xC3, 0xD2, 0xEF, 0x6D, 0xD8,
+  0x0F, 0x4B, 0xBD, 0x1A, 0xE2, 0xC2, 0xE1, 0x98, 0x18, 0xED, 0x6A, 0x2C,
+  0x83, 0x5F, 0x93, 0xAA, 0x00, 0xA0, 0x82, 0x03, 0x0C, 0x30, 0x82, 0x03,
+  0x08, 0x30, 0x82, 0x01, 0xF0, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10,
+  0x87, 0xF0, 0xD2, 0x05, 0x0C, 0x57, 0x0C, 0x96, 0x48, 0x94, 0xBA, 0x6B,
+  0xEB, 0xA2, 0x97, 0x46, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
+  0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x13, 0x31, 0x11, 0x30,
+  0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74,
+  0x52, 0x6F, 0x6F, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x38, 0x30, 0x31,
+  0x32, 0x35, 0x30, 0x32, 0x30, 0x36, 0x34, 0x35, 0x5A, 0x17, 0x0D, 0x33,
+  0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A,
+  0x30, 0x12, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x07, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x62, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0x9F, 0x97, 0xC4, 0x19, 0x70, 0x6C, 0x7D,
+  0x3D, 0x7F, 0x32, 0xC8, 0x01, 0xFA, 0xA9, 0x36, 0x84, 0xA2, 0xAF, 0xB6,
+  0xF5, 0xC6, 0x22, 0xF6, 0xF9, 0x98, 0xDB, 0xC9, 0xEF, 0xA0, 0xDF, 0x2E,
+  0x02, 0x8B, 0x76, 0xD0, 0x05, 0x72, 0x72, 0x0A, 0xBB, 0xAC, 0x45, 0xDA,
+  0x45, 0x96, 0x7E, 0x71, 0x69, 0x32, 0x1C, 0xA0, 0x73, 0x93, 0x91, 0xBA,
+  0x86, 0x6A, 0x86, 0xFC, 0x2B, 0x95, 0x57, 0x82, 0xD8, 0x67, 0x59, 0x43,
+  0xD8, 0xEE, 0xBE, 0x12, 0xF1, 0x9F, 0x95, 0x8E, 0x10, 0xA0, 0xFC, 0xF4,
+  0x47, 0x19, 0x49, 0xA3, 0xA0, 0xE5, 0x93, 0x3A, 0x7C, 0x0B, 0x03, 0xE5,
+  0x8E, 0xDF, 0xCD, 0x86, 0x98, 0x9C, 0xF4, 0x95, 0x67, 0x9D, 0xD8, 0xB8,
+  0xC2, 0x16, 0xED, 0x20, 0x7D, 0x07, 0x7F, 0xAD, 0xD0, 0x75, 0x5F, 0x7B,
+  0xB9, 0xA3, 0xC2, 0xD4, 0x2F, 0x42, 0x06, 0xE4, 0xBA, 0x8C, 0xF0, 0x69,
+  0x71, 0xA2, 0x3B, 0x68, 0x3A, 0x35, 0x10, 0x32, 0x0E, 0xDA, 0x91, 0xC6,
+  0x00, 0x83, 0x74, 0xAB, 0xF4, 0xB4, 0x55, 0xC2, 0x48, 0x9A, 0xCE, 0x89,
+  0xFE, 0x28, 0x10, 0x62, 0xEA, 0xC0, 0xC5, 0xC4, 0x15, 0x20, 0x78, 0xF9,
+  0xB0, 0xE9, 0x7B, 0xA3, 0x1B, 0xB8, 0xE7, 0xA5, 0x79, 0xA5, 0xFF, 0x1B,
+  0x68, 0xA3, 0xA4, 0x3A, 0x18, 0xA6, 0x77, 0xF6, 0x2F, 0xC8, 0xC4, 0xBD,
+  0xA6, 0xDC, 0xC6, 0xAF, 0x48, 0xF4, 0x44, 0xF9, 0x60, 0x00, 0xE7, 0x94,
+  0xBC, 0xE3, 0x70, 0x2E, 0x21, 0x8E, 0x6E, 0x90, 0xD0, 0x4B, 0xE1, 0xB6,
+  0x58, 0x81, 0x4E, 0x4E, 0xAA, 0xEB, 0x6A, 0xE8, 0xBC, 0xCE, 0xD7, 0x96,
+  0xB0, 0x6A, 0x99, 0x8D, 0x93, 0xF9, 0x79, 0xA3, 0xAD, 0x9A, 0x3C, 0x52,
+  0x0E, 0x87, 0x9B, 0x34, 0xBC, 0x1D, 0xD0, 0x6A, 0x77, 0xCC, 0x21, 0x2F,
+  0x5F, 0xCB, 0x60, 0x0A, 0xEF, 0xF5, 0xBD, 0xE9, 0x15, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xA3, 0x59, 0x30, 0x57, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D,
+  0x13, 0x01, 0x01, 0xFF, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xFF, 0x30,
+  0x44, 0x06, 0x03, 0x55, 0x1D, 0x01, 0x04, 0x3D, 0x30, 0x3B, 0x80, 0x10,
+  0x7A, 0x73, 0xC4, 0xE1, 0x17, 0x5D, 0xA7, 0x53, 0x98, 0x6B, 0x7A, 0x61,
+  0x49, 0xBC, 0xE5, 0xE3, 0xA1, 0x15, 0x30, 0x13, 0x31, 0x11, 0x30, 0x0F,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54, 0x65, 0x73, 0x74, 0x52,
+  0x6F, 0x6F, 0x74, 0x82, 0x10, 0xDE, 0x9F, 0x42, 0x91, 0x68, 0x16, 0xEA,
+  0x97, 0x4D, 0xA1, 0x8A, 0x32, 0x25, 0xD6, 0xEE, 0x8D, 0x30, 0x0D, 0x06,
+  0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0x2A, 0x39, 0x32, 0xE5, 0xFA, 0x14, 0x03,
+  0x1A, 0x8B, 0xBD, 0xDF, 0xAB, 0x6D, 0x1C, 0xF7, 0x8B, 0xE5, 0x76, 0x4E,
+  0x02, 0xDF, 0x9D, 0x18, 0x7E, 0x1E, 0x73, 0xDC, 0x9C, 0xD5, 0x36, 0xA2,
+  0x91, 0xC7, 0xC0, 0xAC, 0xEE, 0x92, 0xE8, 0x3C, 0x88, 0x2A, 0xF5, 0x61,
+  0x6F, 0xB7, 0xC4, 0x21, 0xC3, 0xCD, 0xE5, 0xCF, 0x48, 0x46, 0x67, 0x5A,
+  0xC3, 0x16, 0x4E, 0xBE, 0xF0, 0x30, 0xD8, 0x3B, 0xBC, 0x8F, 0x84, 0xCD,
+  0x15, 0xD5, 0xB3, 0x11, 0xA0, 0xAD, 0xED, 0x81, 0x51, 0x49, 0x71, 0x7F,
+  0xF6, 0xCC, 0x4C, 0x44, 0x59, 0x13, 0x5E, 0x27, 0x98, 0x73, 0x5B, 0x74,
+  0xD6, 0xD6, 0x59, 0xFF, 0x81, 0x57, 0xBF, 0xF1, 0xF3, 0x01, 0x6C, 0xE6,
+  0x32, 0xE4, 0x05, 0xFE, 0x1B, 0x1E, 0x33, 0x03, 0x2E, 0x9A, 0xA1, 0x1E,
+  0xBE, 0xA3, 0x0E, 0xA5, 0x59, 0x50, 0x38, 0x3D, 0x0B, 0xF7, 0xD8, 0x25,
+  0x15, 0xCB, 0xFA, 0x73, 0x22, 0x24, 0xD2, 0x5E, 0x7F, 0xAE, 0x8B, 0x8F,
+  0x44, 0x29, 0x68, 0x49, 0x6A, 0x36, 0xA8, 0x29, 0x5B, 0xAE, 0xD3, 0xE4,
+  0x5E, 0xE1, 0xDB, 0xF1, 0x73, 0xEE, 0x15, 0x88, 0x03, 0x69, 0x0D, 0x53,
+  0xF4, 0x92, 0x93, 0xDF, 0xC9, 0x95, 0x22, 0xED, 0x0E, 0xEB, 0xCD, 0xB2,
+  0x1E, 0xFD, 0xCA, 0xEF, 0x53, 0x06, 0xF2, 0xE0, 0x85, 0xE2, 0x51, 0x6C,
+  0xE9, 0xAB, 0x8D, 0x30, 0x5A, 0xC3, 0xDC, 0x0A, 0xC2, 0xDC, 0x23, 0x47,
+  0xDD, 0x8F, 0x18, 0x06, 0x24, 0xFF, 0x77, 0xF8, 0xFA, 0x25, 0x2B, 0x68,
+  0x7A, 0xD1, 0xED, 0x41, 0xA2, 0x37, 0x95, 0xBC, 0x2B, 0xBB, 0x64, 0xBE,
+  0x9D, 0x6A, 0x6E, 0x5A, 0x85, 0xBF, 0x03, 0xC5, 0x4E, 0xA1, 0x5D, 0x82,
+  0xFE, 0x19, 0x85, 0xD7, 0x60, 0xE9, 0x01, 0xB3, 0x40, 0x1F, 0x8B, 0x16,
+  0xDD, 0xFD, 0x22, 0x55, 0x2F, 0x3D, 0xDF, 0xA7, 0x28, 0x31, 0x82, 0x09,
+  0xF6, 0x30, 0x82, 0x09, 0xF2, 0x02, 0x01, 0x01, 0x30, 0x27, 0x30, 0x13,
+  0x31, 0x11, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x54,
+  0x65, 0x73, 0x74, 0x52, 0x6F, 0x6F, 0x74, 0x02, 0x10, 0x87, 0xF0, 0xD2,
+  0x05, 0x0C, 0x57, 0x0C, 0x96, 0x48, 0x94, 0xBA, 0x6B, 0xEB, 0xA2, 0x97,
+  0x46, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04,
+  0x02, 0x01, 0x05, 0x00, 0xA0, 0x5E, 0x30, 0x10, 0x06, 0x0A, 0x2B, 0x06,
+  0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x0C, 0x31, 0x02, 0x30, 0x00,
+  0x30, 0x19, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09,
+  0x03, 0x31, 0x0C, 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37,
+  0x02, 0x01, 0x04, 0x30, 0x2F, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7,
+  0x0D, 0x01, 0x09, 0x04, 0x31, 0x22, 0x04, 0x20, 0xE0, 0xBF, 0xC4, 0x29,
+  0x84, 0x5C, 0xB0, 0x75, 0x3E, 0xFB, 0x5E, 0x90, 0x8B, 0x4B, 0x7C, 0x27,
+  0xD8, 0xD1, 0x39, 0x53, 0x5C, 0x00, 0x51, 0x1A, 0x6F, 0xB4, 0x65, 0x87,
+  0x2C, 0xF5, 0xF7, 0x0F, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
+  0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82, 0x01, 0x00, 0x9A,
+  0x01, 0x28, 0x23, 0x7F, 0xF1, 0x1D, 0xF2, 0x20, 0xD0, 0xC8, 0x92, 0x0A,
+  0x36, 0xE1, 0xA2, 0x0E, 0xE8, 0xDC, 0xD0, 0xEF, 0x31, 0x76, 0x22, 0xF7,
+  0x01, 0xC3, 0xCE, 0xF4, 0x48, 0x03, 0xEF, 0xEE, 0x67, 0x90, 0xDE, 0x4A,
+  0x04, 0xFF, 0x95, 0x64, 0x34, 0x55, 0x2F, 0xE5, 0xE7, 0x23, 0x3E, 0x40,
+  0x5C, 0xC4, 0xF8, 0x57, 0x32, 0xDB, 0x4E, 0x6F, 0x45, 0x68, 0x81, 0x76,
+  0xE9, 0x01, 0x7F, 0x43, 0xB2, 0x68, 0xA3, 0x0E, 0xD5, 0xA5, 0x7A, 0x71,
+  0x19, 0x59, 0x04, 0x55, 0x81, 0x1F, 0xE8, 0x87, 0x20, 0xAD, 0xD7, 0x28,
+  0x47, 0x2A, 0x84, 0x7F, 0x53, 0x11, 0xC2, 0xCE, 0xDD, 0xAB, 0x2E, 0xAF,
+  0x02, 0x27, 0x4A, 0x1B, 0x66, 0x81, 0x33, 0x75, 0xF9, 0x78, 0x0E, 0x1E,
+  0x8B, 0xEB, 0x1F, 0x22, 0x63, 0x9D, 0x6E, 0xA8, 0x6B, 0xB8, 0xBA, 0x48,
+  0x72, 0xF4, 0x0F, 0x64, 0xCE, 0x90, 0x8C, 0x84, 0xEA, 0x18, 0x24, 0x55,
+  0xE4, 0x3E, 0xF1, 0x87, 0x3B, 0x96, 0x12, 0x53, 0x25, 0xE4, 0xCB, 0xE2,
+  0x5F, 0x0C, 0xCC, 0xA1, 0x11, 0x6E, 0x62, 0xB7, 0x85, 0xA7, 0x09, 0x04,
+  0xD3, 0x6C, 0x93, 0x3F, 0x93, 0xCB, 0xF7, 0xE1, 0x76, 0x8C, 0x10, 0x78,
+  0x45, 0xC0, 0xF5, 0xCC, 0x8D, 0x72, 0x24, 0x9D, 0xB2, 0x6D, 0x88, 0x8C,
+  0x2B, 0x3D, 0x79, 0x01, 0x43, 0xD2, 0xD6, 0x16, 0xAD, 0xA3, 0x54, 0xAC,
+  0xAF, 0x33, 0x09, 0xFC, 0x1B, 0x79, 0xF1, 0xA8, 0xC6, 0x09, 0xA7, 0x50,
+  0xB6, 0x0F, 0x29, 0x3A, 0x9A, 0x9C, 0x99, 0x8D, 0x4A, 0x2D, 0xA3, 0xC2,
+  0x48, 0x93, 0x58, 0x75, 0x02, 0xA5, 0xAC, 0x6A, 0x8F, 0xB3, 0x6D, 0xA0,
+  0x29, 0xD8, 0xF4, 0x72, 0x00, 0x1C, 0x76, 0xEB, 0xFF, 0x65, 0x29, 0xDE,
+  0xA5, 0x57, 0xBF, 0xF3, 0xA4, 0xEF, 0x12, 0xB7, 0x7C, 0xC0, 0xC9, 0x7E,
+  0x90, 0xA2, 0xC5, 0xA1, 0x82, 0x08, 0x40, 0x30, 0x82, 0x08, 0x3C, 0x06,
+  0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x03, 0x03, 0x01, 0x31,
+  0x82, 0x08, 0x2C, 0x30, 0x82, 0x08, 0x28, 0x06, 0x09, 0x2A, 0x86, 0x48,
+  0x86, 0xF7, 0x0D, 0x01, 0x07, 0x02, 0xA0, 0x82, 0x08, 0x19, 0x30, 0x82,
+  0x08, 0x15, 0x02, 0x01, 0x03, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x05, 0x2B,
+  0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x30, 0x81, 0xFD, 0x06, 0x0B, 0x2A,
+  0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x10, 0x01, 0x04, 0xA0, 0x81,
+  0xED, 0x04, 0x81, 0xEA, 0x30, 0x81, 0xE7, 0x02, 0x01, 0x01, 0x06, 0x0A,
+  0x2B, 0x06, 0x01, 0x04, 0x01, 0xB2, 0x31, 0x02, 0x01, 0x01, 0x30, 0x21,
+  0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x04,
+  0x14, 0x47, 0xC1, 0xFA, 0x01, 0x27, 0x7D, 0xDC, 0x3F, 0xAF, 0x45, 0x31,
+  0x96, 0x6C, 0x5A, 0xBF, 0xB0, 0xB0, 0x9E, 0xA9, 0x55, 0x02, 0x15, 0x00,
+  0xD5, 0xA0, 0x83, 0x8B, 0x5F, 0x0E, 0x4B, 0x2F, 0x64, 0x28, 0x34, 0xC1,
+  0xBC, 0x13, 0x17, 0x03, 0xAB, 0xD1, 0xEF, 0x42, 0x18, 0x0F, 0x32, 0x30,
+  0x31, 0x38, 0x30, 0x31, 0x32, 0x35, 0x30, 0x38, 0x32, 0x39, 0x32, 0x34,
+  0x5A, 0xA0, 0x81, 0x8A, 0xA4, 0x81, 0x87, 0x30, 0x81, 0x84, 0x31, 0x0B,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31,
+  0x1B, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72,
+  0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65,
+  0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04,
+  0x07, 0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A,
+  0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D,
+  0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41, 0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74,
+  0x65, 0x64, 0x31, 0x2A, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x21, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x53, 0x48, 0x41, 0x2D,
+  0x31, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6D, 0x70,
+  0x69, 0x6E, 0x67, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x65, 0x72, 0xA0, 0x82,
+  0x04, 0x9D, 0x30, 0x82, 0x04, 0x99, 0x30, 0x82, 0x03, 0x81, 0xA0, 0x03,
+  0x02, 0x01, 0x02, 0x02, 0x0F, 0x16, 0x88, 0xF0, 0x39, 0x25, 0x5E, 0x63,
+  0x8E, 0x69, 0x14, 0x39, 0x07, 0xE6, 0x33, 0x0B, 0x30, 0x0D, 0x06, 0x09,
+  0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30,
+  0x81, 0x95, 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, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x55,
+  0x54, 0x4E, 0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74,
+  0x2D, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x30, 0x1E, 0x17, 0x0D, 0x31,
+  0x35, 0x31, 0x32, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A,
+  0x17, 0x0D, 0x31, 0x39, 0x30, 0x37, 0x30, 0x39, 0x31, 0x38, 0x34, 0x30,
+  0x33, 0x36, 0x5A, 0x30, 0x81, 0x84, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03,
+  0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30, 0x19, 0x06,
+  0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65,
+  0x72, 0x20, 0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72,
+  0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x53,
+  0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03,
+  0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20,
+  0x43, 0x41, 0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2A,
+  0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x43, 0x4F, 0x4D,
+  0x4F, 0x44, 0x4F, 0x20, 0x53, 0x48, 0x41, 0x2D, 0x31, 0x20, 0x54, 0x69,
+  0x6D, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x69, 0x6E, 0x67, 0x20,
+  0x53, 0x69, 0x67, 0x6E, 0x65, 0x72, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D,
+  0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0xE9, 0xE9, 0x3D, 0xDF, 0xD7, 0x37, 0x08, 0xC9, 0x1E,
+  0x38, 0xB2, 0x52, 0x53, 0x42, 0x6D, 0x22, 0xF1, 0xB1, 0xC4, 0x06, 0x04,
+  0x6B, 0x9E, 0xFD, 0x82, 0x74, 0x50, 0x43, 0x7D, 0xC6, 0xA0, 0xBB, 0x1F,
+  0x4E, 0xF9, 0x02, 0x71, 0x26, 0xB1, 0xEF, 0x43, 0xD8, 0x83, 0x8C, 0x48,
+  0xFC, 0xE7, 0x0F, 0x97, 0x7A, 0x9A, 0xEB, 0x9C, 0xDE, 0xA6, 0xA3, 0x0E,
+  0x3B, 0x1C, 0x44, 0x18, 0x75, 0x8E, 0x78, 0xA5, 0x17, 0x69, 0xFE, 0x49,
+  0x18, 0xA4, 0xE2, 0xBB, 0x5C, 0x4E, 0xFE, 0x8E, 0x2A, 0x54, 0x7A, 0x50,
+  0xF0, 0xD5, 0xF6, 0xCC, 0x91, 0xE7, 0x99, 0x79, 0xD7, 0xDE, 0x79, 0x94,
+  0xD7, 0x96, 0x33, 0xFE, 0x0E, 0x83, 0xBE, 0x22, 0xBF, 0x63, 0x16, 0x2C,
+  0xA3, 0xDD, 0x28, 0x1B, 0xAF, 0x3D, 0xAB, 0xEA, 0x97, 0xD2, 0xF1, 0xBF,
+  0x04, 0x10, 0xE7, 0x3D, 0x48, 0x45, 0xFD, 0x1F, 0x68, 0x65, 0xC1, 0x7F,
+  0x59, 0x99, 0x69, 0xC0, 0x22, 0x31, 0x0C, 0x62, 0x6E, 0xA7, 0x5C, 0x65,
+  0x01, 0x21, 0xB0, 0x63, 0xC4, 0x22, 0x18, 0x27, 0xEE, 0xE6, 0xFC, 0xD2,
+  0x00, 0x3D, 0x47, 0x2E, 0xA8, 0xB8, 0x86, 0x56, 0x5D, 0x04, 0xDC, 0x13,
+  0x17, 0x25, 0x6E, 0x1C, 0xDF, 0x44, 0x0F, 0x15, 0xCD, 0xB7, 0xDB, 0xA5,
+  0x57, 0x76, 0x42, 0x6F, 0x00, 0x68, 0x82, 0x99, 0xD2, 0xE3, 0xC1, 0xDE,
+  0xF0, 0x8B, 0x94, 0x57, 0x4C, 0xEC, 0x08, 0x90, 0x22, 0x21, 0xCE, 0x22,
+  0x2B, 0x98, 0x0C, 0x42, 0xE6, 0x42, 0x93, 0x94, 0x98, 0x93, 0xEF, 0xFD,
+  0x06, 0xD9, 0x3F, 0xBC, 0x5B, 0x9B, 0x54, 0x3C, 0x20, 0xB1, 0xEE, 0x6A,
+  0xD6, 0x47, 0x7A, 0xC5, 0xAB, 0x80, 0xE9, 0x30, 0x9A, 0xDE, 0xF1, 0xA4,
+  0x3F, 0x55, 0x4D, 0x0A, 0x09, 0x34, 0x8A, 0x75, 0x29, 0xD2, 0x69, 0xAD,
+  0x97, 0x0F, 0x50, 0xBF, 0xF8, 0xCA, 0x09, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xA3, 0x81, 0xF4, 0x30, 0x81, 0xF1, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xDA, 0xED, 0x64, 0x74, 0x14,
+  0x9C, 0x14, 0x3C, 0xAB, 0xDD, 0x99, 0xA9, 0xBD, 0x5B, 0x28, 0x4D, 0x8B,
+  0x3C, 0xC9, 0xD8, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16,
+  0x04, 0x14, 0x8E, 0x6B, 0x2D, 0x33, 0x6B, 0xF4, 0x33, 0xA7, 0x93, 0xB3,
+  0x13, 0x9A, 0xA5, 0xE0, 0x0A, 0xF7, 0x12, 0x35, 0x6A, 0x88, 0x30, 0x0E,
+  0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02,
+  0x06, 0xC0, 0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF,
+  0x04, 0x02, 0x30, 0x00, 0x30, 0x16, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x01,
+  0x01, 0xFF, 0x04, 0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x03, 0x08, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04,
+  0x3B, 0x30, 0x39, 0x30, 0x37, 0xA0, 0x35, 0xA0, 0x33, 0x86, 0x31, 0x68,
+  0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x6C, 0x2E, 0x75, 0x73,
+  0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
+  0x55, 0x54, 0x4E, 0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73,
+  0x74, 0x2D, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x2E, 0x63, 0x72, 0x6C,
+  0x30, 0x35, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F,
+  0x2F, 0x6F, 0x63, 0x73, 0x70, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A,
+  0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x01, 0x00, 0xBA, 0x33, 0x24, 0x40, 0x40, 0x8C, 0x7C, 0xDB, 0x58,
+  0x9F, 0xB3, 0x60, 0x98, 0xB2, 0xF5, 0xC0, 0x31, 0xFE, 0xEB, 0x1F, 0x6E,
+  0x50, 0xF6, 0x0A, 0xE0, 0xE4, 0xE6, 0x81, 0xAD, 0x26, 0x87, 0xA2, 0xDF,
+  0xFD, 0xB3, 0xDA, 0xF4, 0x73, 0xF3, 0x00, 0xFB, 0x29, 0x1B, 0x89, 0x1B,
+  0x15, 0x3E, 0xDB, 0x6B, 0x52, 0x93, 0x2B, 0xC4, 0xAC, 0x39, 0x81, 0xD7,
+  0x3C, 0x67, 0x57, 0x9A, 0x39, 0x36, 0xE0, 0x28, 0x08, 0x9A, 0xE3, 0x39,
+  0x4F, 0x9B, 0x89, 0x09, 0x7F, 0x7B, 0xC5, 0x61, 0x7F, 0x59, 0x89, 0x32,
+  0x25, 0x0A, 0x6A, 0xAE, 0x1A, 0x3E, 0xF0, 0xA2, 0x27, 0xA8, 0xB6, 0xC3,
+  0xB8, 0x87, 0xF7, 0x16, 0x04, 0x48, 0x41, 0x3D, 0x5C, 0xD8, 0xEC, 0x9F,
+  0x4D, 0x20, 0x31, 0x04, 0xD9, 0x65, 0xA1, 0xED, 0xCD, 0x69, 0x07, 0x53,
+  0x16, 0x3D, 0xDD, 0x36, 0x02, 0x0A, 0x88, 0xEB, 0x40, 0xE5, 0x06, 0x30,
+  0x0B, 0xB8, 0x16, 0x4B, 0xDC, 0xEF, 0xBC, 0x55, 0x09, 0xFF, 0xC6, 0x3E,
+  0x12, 0x2E, 0x76, 0xB3, 0xDC, 0xCE, 0x42, 0xEF, 0xF9, 0x76, 0x57, 0xE1,
+  0xB7, 0x0A, 0x05, 0x40, 0x98, 0x58, 0x9A, 0x5D, 0x71, 0x16, 0x93, 0x71,
+  0x8C, 0x65, 0x81, 0xEA, 0x6F, 0xF3, 0x89, 0xF7, 0xFB, 0x73, 0xAD, 0xB4,
+  0xE7, 0xBF, 0xD9, 0x8E, 0x6F, 0xAA, 0x0B, 0x4F, 0x25, 0xF3, 0xB8, 0xE1,
+  0xD5, 0xDD, 0x75, 0x98, 0x68, 0x81, 0xF8, 0xAA, 0xC0, 0xD1, 0x80, 0xC2,
+  0xC4, 0xC4, 0x39, 0x89, 0xC1, 0xF6, 0xC9, 0x9E, 0x6C, 0xD7, 0x74, 0xF9,
+  0xD9, 0x97, 0xF8, 0x4F, 0xC2, 0x9A, 0x0A, 0xCD, 0x5E, 0x8F, 0xF8, 0x19,
+  0xE9, 0xE0, 0xA5, 0x9F, 0xC4, 0xF0, 0x92, 0x21, 0xE6, 0x2D, 0x79, 0x25,
+  0xC9, 0x22, 0xF9, 0xC3, 0xF0, 0x3A, 0x84, 0x57, 0xAD, 0x3A, 0x16, 0xF4,
+  0x63, 0x94, 0x10, 0x1D, 0x5D, 0xD0, 0xC6, 0x31, 0x82, 0x02, 0x60, 0x30,
+  0x82, 0x02, 0x5C, 0x02, 0x01, 0x01, 0x30, 0x81, 0xA9, 0x30, 0x81, 0x95,
+  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, 0x1D,
+  0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x55, 0x54, 0x4E,
+  0x2D, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, 0x73, 0x74, 0x2D, 0x4F,
+  0x62, 0x6A, 0x65, 0x63, 0x74, 0x02, 0x0F, 0x16, 0x88, 0xF0, 0x39, 0x25,
+  0x5E, 0x63, 0x8E, 0x69, 0x14, 0x39, 0x07, 0xE6, 0x33, 0x0B, 0x30, 0x09,
+  0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0xA0, 0x81, 0x8C,
+  0x30, 0x1A, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09,
+  0x03, 0x31, 0x0D, 0x06, 0x0B, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01,
+  0x09, 0x10, 0x01, 0x04, 0x30, 0x1C, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
+  0xF7, 0x0D, 0x01, 0x09, 0x05, 0x31, 0x0F, 0x17, 0x0D, 0x31, 0x38, 0x30,
+  0x31, 0x32, 0x35, 0x30, 0x38, 0x32, 0x39, 0x32, 0x34, 0x5A, 0x30, 0x23,
+  0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x04, 0x31,
+  0x16, 0x04, 0x14, 0x2A, 0xA6, 0xAE, 0xCE, 0xC6, 0xB6, 0xA3, 0xF9, 0xA3,
+  0x2B, 0xC8, 0xB3, 0x40, 0x38, 0x02, 0xEF, 0x91, 0xC8, 0x0F, 0x4E, 0x30,
+  0x2B, 0x06, 0x0B, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x10,
+  0x02, 0x0C, 0x31, 0x1C, 0x30, 0x1A, 0x30, 0x18, 0x30, 0x16, 0x04, 0x14,
+  0x03, 0xA5, 0xB1, 0x46, 0x63, 0xEB, 0x12, 0x02, 0x30, 0x91, 0xB8, 0x4A,
+  0x6D, 0x6A, 0x68, 0xBC, 0x87, 0x1D, 0xE6, 0x6B, 0x30, 0x0D, 0x06, 0x09,
+  0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04,
+  0x82, 0x01, 0x00, 0x83, 0x12, 0xDC, 0x6F, 0x05, 0x84, 0xB5, 0xD4, 0x98,
+  0xE2, 0x00, 0x61, 0xD4, 0x9C, 0xC8, 0xD1, 0x93, 0xE9, 0x08, 0x23, 0x2C,
+  0x1A, 0xBC, 0xC1, 0xA7, 0xC4, 0x89, 0xEA, 0x48, 0x2F, 0xCF, 0xDB, 0xFA,
+  0x49, 0x9A, 0xAC, 0x30, 0x36, 0xC1, 0x32, 0x54, 0x4A, 0x2C, 0xD1, 0xA8,
+  0x8C, 0x93, 0x10, 0xB0, 0xFA, 0x39, 0x18, 0x47, 0x65, 0x6A, 0x37, 0x0B,
+  0xF8, 0x2D, 0x30, 0xCA, 0xC6, 0x1A, 0x49, 0x04, 0x3D, 0x62, 0xC5, 0x89,
+  0xD9, 0xA9, 0xD8, 0x08, 0x2D, 0xD8, 0x2A, 0x5A, 0x4A, 0x81, 0x69, 0x50,
+  0xEA, 0x71, 0x1F, 0xE9, 0x60, 0xE7, 0xB9, 0x02, 0x0A, 0x4E, 0xEE, 0xDF,
+  0xCC, 0xDD, 0x67, 0x48, 0x52, 0xE8, 0xB4, 0x4E, 0x9C, 0x55, 0xC4, 0x55,
+  0xEA, 0xBE, 0x71, 0x27, 0xEE, 0x73, 0x87, 0x41, 0xC0, 0xEC, 0x23, 0xC1,
+  0x82, 0x29, 0x9D, 0x30, 0x93, 0xA0, 0x3A, 0x77, 0x53, 0xAE, 0x6D, 0xB2,
+  0x61, 0x76, 0xCB, 0x1C, 0x15, 0x93, 0x25, 0x63, 0xFC, 0x07, 0xCE, 0x40,
+  0x0B, 0xA7, 0x40, 0xB5, 0x45, 0x2D, 0x52, 0x87, 0x27, 0xC8, 0xDF, 0x3C,
+  0x44, 0xBB, 0x4E, 0xEE, 0x72, 0x26, 0x08, 0x1B, 0xEE, 0xF9, 0xC8, 0x77,
+  0x65, 0x35, 0x6D, 0x59, 0xD2, 0x8B, 0x19, 0x4F, 0xAB, 0x80, 0x4F, 0xC7,
+  0x90, 0x9D, 0x35, 0xBE, 0x57, 0x9A, 0x75, 0x01, 0xAD, 0x2B, 0x40, 0x0A,
+  0x7D, 0xA7, 0x41, 0x9A, 0xD2, 0xF3, 0x52, 0x64, 0xDE, 0x83, 0x23, 0xAC,
+  0x59, 0x6A, 0x5D, 0x3E, 0x2F, 0x33, 0x59, 0x9B, 0x91, 0xB1, 0x3B, 0xE0,
+  0x41, 0x6A, 0x99, 0x90, 0xCF, 0x71, 0xBE, 0xC6, 0x41, 0x93, 0xCD, 0xE7,
+  0xF8, 0x0B, 0x7A, 0x10, 0x22, 0xC3, 0x33, 0x3A, 0x34, 0x67, 0x54, 0x3E,
+  0x61, 0x10, 0x54, 0x28, 0xC1, 0xB5, 0x6C, 0xC2, 0xC0, 0xD3, 0x37, 0x52,
+  0x4C, 0x5A, 0x1B, 0x47, 0x7C, 0xF1, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00
+  };
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestFunction.c
index c4f51c04..77d6bd2e 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestFunction.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestFunction.c
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2016 Unified EFI, Inc.<BR>
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -111,7 +111,6 @@ BBTestVerifyBufferFunctionTest (
                  Status
                  );  
 
-
   Content = SctAllocateZeroPool(ContentSize);
   Status = Pkcs7Verify->VerifyBuffer (Pkcs7Verify, P7Embedded, sizeof(P7Embedded), NULL, 0, AllowedDb, RevokedDb, TimestampDb, Content, &ContentSize);
 
@@ -205,7 +204,6 @@ BBTestVerifyBufferFunctionTest (
                  Status
                  );  
 
-
   Content = SctAllocateZeroPool(ContentSize);
   Status = Pkcs7Verify->VerifyBuffer (Pkcs7Verify, P7Detached, sizeof(P7Detached), TestBin, sizeof(TestBin), AllowedDb, RevokedDb, TimestampDb, Content, &ContentSize);
 
@@ -238,3 +236,88 @@ BBTestVerifyBufferFunctionTest (
   return EFI_SUCCESS;
 }
 
+
+EFI_STATUS
+BBTestVerifySignatureFunctionTest (
+  IN EFI_BB_TEST_PROTOCOL    *This,
+  IN VOID                    *ClientInterface,
+  IN EFI_TEST_LEVEL          TestLevel,
+  IN EFI_HANDLE              SupportHandle
+  )
+{
+  EFI_STANDARD_TEST_LIBRARY_PROTOCOL    *StandardLib;
+  EFI_STATUS                            Status;
+  EFI_TEST_ASSERTION                    AssertionType;
+  EFI_PKCS7_VERIFY_PROTOCOL             *Pkcs7Verify = NULL;
+
+  Pkcs7Verify = (EFI_PKCS7_VERIFY_PROTOCOL*)ClientInterface;
+  if (Pkcs7Verify == NULL)
+    return EFI_UNSUPPORTED;
+
+  //
+  // Get the Standard Library Interface
+  //
+  Status = gtBS->HandleProtocol (
+                   SupportHandle,
+                   &gEfiStandardTestLibraryGuid,
+                   (VOID **) &StandardLib
+                   );
+  if (EFI_ERROR(Status)) {
+    return Status;
+  }
+  
+  //
+  // Signed hash was verified against caller-provided hash of content, the signer's certificate was not found in RevokedDb, and was found in AllowedDb
+  //
+  AllowedDb[0] = DbEntry1;
+  
+  Status = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+
+  if (Status == EFI_SUCCESS)
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestFunctionAssertionGuid005 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_SUCCESS when Signed hash was verified against caller-provided hash of content, the signer's certificate was not found in RevokedDb, and was found in AllowedDb.",
+                 L"%a:%d: Status - %r",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status
+                 );
+
+  // signer is found in both AllowedDb and RevokedDb, the signing was allowed by reference to TimeStampDb, and no hash matching content hash was found in RevokedDb
+  AllowedDb[0]   = DbEntry1;
+  RevokedDb[0]   = DbEntry5;
+  TimestampDb[0] = DbEntry3;
+  
+  Status = Pkcs7Verify->VerifySignature (Pkcs7Verify, P7TestSignature, sizeof(P7TestSignature), TestInHash, sizeof(TestInHash), AllowedDb, RevokedDb, TimestampDb);
+
+  if (Status == EFI_SUCCESS)
+    AssertionType = EFI_TEST_ASSERTION_PASSED;
+  else
+    AssertionType = EFI_TEST_ASSERTION_FAILED;
+
+  StandardLib->RecordAssertion (
+                 StandardLib,
+                 AssertionType,
+                 gPkcs7BBTestFunctionAssertionGuid006 ,
+                 L"PKCS7_VERIFY_PROTOCOL.VerifySignature - VerifySignature() should returns EFI_SUCCESS when signer is found in both AllowedDb and RevokedDb, the signing was allowed by reference to TimeStampDb, and no hash matching content hash was found in RevokedDb.",
+                 L"%a:%d: Status - %r",
+                 __FILE__,
+                 (UINTN)__LINE__,
+                 Status
+                 );
+
+  //
+  // Clean the Data in all Dbs
+  //
+  AllowedDb[0]   = NULL;
+  RevokedDb[0]   = NULL;
+  TimestampDb[0] = NULL;
+  
+  return EFI_SUCCESS;
+}  
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestMain.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestMain.c
index 10adb435..faa50f93 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestMain.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestMain.c
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2016 - 2017 Unified EFI, Inc.<BR>
-  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -69,8 +69,7 @@ EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] = {
     gSupportProtocolGuid,
     EFI_TEST_CASE_AUTO,
     BBTestVerifyBufferFunctionTest
-  },
-#if 0  
+  }, 
   {
     EFI_PKCS7_VERIFY_PROTOCOL_TEST_ENTRY_GUID0102,
     L"VerifySignatureFunction",
@@ -79,8 +78,7 @@ EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] = {
     gSupportProtocolGuid,
     EFI_TEST_CASE_AUTO,
     BBTestVerifySignatureFunctionTest
-  },
-#endif  
+  },  
   {
     EFI_PKCS7_VERIFY_PROTOCOL_TEST_ENTRY_GUID0201,
     L"VerifyBufferConformance",
@@ -89,8 +87,7 @@ EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] = {
     gSupportProtocolGuid,
     EFI_TEST_CASE_AUTO,
     BBTestVerifyBufferConformanceTest
-  },
-#if 0   
+  },   
   {
     EFI_PKCS7_VERIFY_PROTOCOL_TEST_ENTRY_GUID0202,
     L"VerifySignatureConformance",
@@ -99,14 +96,12 @@ EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] = {
     gSupportProtocolGuid,
     EFI_TEST_CASE_AUTO,
     BBTestVerifySignatureConformanceTest
-  },
-#endif  
+  },  
   0
 };
 
 
 EFI_STATUS
-EFIAPI
 InitializePkcs7VerifyBBTest (
   IN EFI_HANDLE                   ImageHandle,
   IN EFI_SYSTEM_TABLE             *SystemTable
@@ -134,7 +129,7 @@ InitializePkcs7VerifyBBTest (
              );
 
   //
-  // Initialize Signature List Entry for testing.
+  // Initialize Signature List Entry for VerifyBuffer testing.
   //
   DbEntry1 = NULL;
   DbEntry2 = NULL;
@@ -191,18 +186,17 @@ InitializePkcs7VerifyBBTest (
   DbEntry5->SignatureListSize   = sizeof (EFI_SIGNATURE_LIST) + 16 + 48;
   DbEntry5->SignatureHeaderSize = 0;
   DbEntry5->SignatureSize       = 16 + 48;
-  SctCopyMem ((UINT8 *)DbEntry5 + sizeof (EFI_SIGNATURE_LIST) + 16, TestSubHash, 32);
+  SctCopyMem ((UINT8 *)DbEntry5 + sizeof (EFI_SIGNATURE_LIST) + 16, TestSubCertHash, 32);
   RevokedTime = (EFI_TIME *) ((UINT8 *)DbEntry5 + sizeof (EFI_SIGNATURE_LIST) + 16 + 32);
-  RevokedTime->Year  = 2015;
-  RevokedTime->Month = 8;
-  RevokedTime->Day   = 20;
+  RevokedTime->Year  = 2018;
+  RevokedTime->Month = 2;
+  RevokedTime->Day   = 1;
 
   return Status;
 }
 
 
 EFI_STATUS
-EFIAPI
 UnloadPkcs7VerifyBBTest (
   IN EFI_HANDLE                   ImageHandle
   )
@@ -228,5 +222,3 @@ UnloadPkcs7VerifyBBTest (
            gBBTestProtocolInterface
            );
 }
-
-
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestMain.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestMain.h
index 5a7667d1..44b8cea6 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestMain.h
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/PKCS7Verify/BlackBoxTest/Pkcs7BBTestMain.h
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2016 - 2017 Unified EFI, Inc.<BR>
-  Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -56,30 +56,29 @@ Abstract:
 { 0xaf5e33d1, 0x3e08, 0x451a, {0xb1, 0x92, 0xe7, 0xb9, 0x91, 0x67, 0x83, 0xae }}
 
 
-
+extern UINT8 TestRootCert[781];
+extern UINT8 TestSubCert[780];
+extern UINT8 TestSubCertHash[32];
+extern UINT8 TSRootCert[1181];
 
 extern UINT8 TestBin[64];
 extern UINT8 TestBinHash[32];
-extern UINT8 TestSubCert[755];
-extern UINT8 TestRootCert[756];
-extern UINT8 P7Embedded[3330];
-extern UINT8 P7Detached[1138];
-extern UINT8 TSRootCert[1176];
-extern UINT8 TBSCert[479];
-extern UINT8 TestSubHash[32];
+extern UINT8 TestInHash[32];
+
+extern UINT8 P7Embedded[3365];
+extern UINT8 P7Detached[1163];
+extern UINT8 P7TestSignature[3480];
 
 //
 //
 //
 EFI_STATUS
-EFIAPI
 InitializePkcs7VerifyBBTest (
   IN EFI_HANDLE                   ImageHandle,
   IN EFI_SYSTEM_TABLE             *SystemTable
   );
   
 EFI_STATUS
-EFIAPI
 UnloadPkcs7VerifyBBTest (
   IN EFI_HANDLE                   ImageHandle
   ); 
@@ -96,15 +95,13 @@ BBTestVerifyBufferConformanceTest (
   );
   
 EFI_STATUS
-BBTestHashConformanceTest (
+BBTestVerifySignatureConformanceTest (
   IN EFI_BB_TEST_PROTOCOL       *This,
   IN VOID                       *ClientInterface,
   IN EFI_TEST_LEVEL             TestLevel,
   IN EFI_HANDLE                 SupportHandle
   );
   
-
-  
 EFI_STATUS
 BBTestVerifyBufferFunctionTest (
   IN EFI_BB_TEST_PROTOCOL       *This,
@@ -122,4 +119,3 @@ BBTestVerifySignatureFunctionTest (
   );
   
 #endif
-
-- 
2.18.0.windows.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-10-16  9:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-13 16:08 [PATCH] uefi-sct/SctPkg:Update the PKCS7Verify Test to add the VerifySignature() checkpoint Eric Jin
2018-10-15  2:03 ` Supreeth Venkatesh
2018-10-15 13:10   ` Supreeth Venkatesh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox